/** * rDocs applet definitions โ€” Doc Summary. */ import type { AppletDefinition, AppletLiveData } from "../../shared/applet-types"; const docSummary: AppletDefinition = { id: "doc-summary", label: "Doc Summary", icon: "๐Ÿ“„", accentColor: "#d97706", ports: [ { name: "doc-in", type: "json", direction: "input" }, { name: "text-out", type: "text", direction: "output" }, ], renderCompact(data: AppletLiveData): string { const { snapshot } = data; const title = (snapshot.title as string) || "Untitled"; const wordCount = (snapshot.wordCount as number) || 0; const lastEdit = (snapshot.lastEdit as string) || ""; const preview = (snapshot.preview as string) || "No content"; return `
${title}
${wordCount} words${lastEdit ? ` ยท ${lastEdit}` : ""}
${preview}
`; }, onInputReceived(portName, value, ctx) { if (portName === "doc-in" && value && typeof value === "object") { const doc = value as Record; ctx.emitOutput("text-out", (doc.content as string) || (doc.preview as string) || ""); } }, }; export const docsApplets: AppletDefinition[] = [docSummary];