@arbidocs/blocks 0.4.157 → 0.4.159

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/{ConnectedNativeDocxComparison-S25BPUH5.cjs → ConnectedNativeDocxComparison-R6RU5TZE.cjs} +8 -7
  2. package/dist/{ConnectedNativeDocxComparison-S25BPUH5.cjs.map → ConnectedNativeDocxComparison-R6RU5TZE.cjs.map} +1 -1
  3. package/dist/{ConnectedNativeDocxComparison-2PLOOXSH.js → ConnectedNativeDocxComparison-XMZ5KLD4.js} +7 -6
  4. package/dist/{ConnectedNativeDocxComparison-2PLOOXSH.js.map → ConnectedNativeDocxComparison-XMZ5KLD4.js.map} +1 -1
  5. package/dist/{ConnectedNativeDocxEditor-YA4HWLY4.cjs → ConnectedNativeDocxEditor-LBATSM3M.cjs} +7 -6
  6. package/dist/{ConnectedNativeDocxEditor-YA4HWLY4.cjs.map → ConnectedNativeDocxEditor-LBATSM3M.cjs.map} +1 -1
  7. package/dist/{ConnectedNativeDocxEditor-JJAGMHZC.js → ConnectedNativeDocxEditor-NGUK2AX6.js} +5 -4
  8. package/dist/{ConnectedNativeDocxEditor-JJAGMHZC.js.map → ConnectedNativeDocxEditor-NGUK2AX6.js.map} +1 -1
  9. package/dist/{ConnectedStreamedWordArtifact-EXYZAU4Y.cjs → ConnectedStreamedWordArtifact-CWFR6A37.cjs} +8 -7
  10. package/dist/ConnectedStreamedWordArtifact-CWFR6A37.cjs.map +1 -0
  11. package/dist/{ConnectedStreamedWordArtifact-YAAXY5KY.js → ConnectedStreamedWordArtifact-IXRJ7MUE.js} +7 -6
  12. package/dist/{ConnectedStreamedWordArtifact-YAAXY5KY.js.map → ConnectedStreamedWordArtifact-IXRJ7MUE.js.map} +1 -1
  13. package/dist/{NativeDocxEditor-M3I776GD.cjs → NativeDocxEditor-T2PJIZMU.cjs} +9 -7
  14. package/dist/{NativeDocxEditor-M3I776GD.cjs.map → NativeDocxEditor-T2PJIZMU.cjs.map} +1 -1
  15. package/dist/{NativeDocxEditor-JBQMH3MP.js → NativeDocxEditor-TBTBD6TC.js} +5 -3
  16. package/dist/{NativeDocxEditor-JBQMH3MP.js.map → NativeDocxEditor-TBTBD6TC.js.map} +1 -1
  17. package/dist/{WorkspaceTableView-5OWX53R5.js → WorkspaceTableView-DWUE4VQF.js} +19 -9
  18. package/dist/WorkspaceTableView-DWUE4VQF.js.map +1 -0
  19. package/dist/{WorkspaceTableView-ZFMAYHUD.cjs → WorkspaceTableView-EYLEUZZT.cjs} +21 -11
  20. package/dist/WorkspaceTableView-EYLEUZZT.cjs.map +1 -0
  21. package/dist/{chunk-IJEISII2.cjs → chunk-2BHDRVVL.cjs} +17 -7
  22. package/dist/chunk-2BHDRVVL.cjs.map +1 -0
  23. package/dist/chunk-2R3GGNPA.js +151 -0
  24. package/dist/chunk-2R3GGNPA.js.map +1 -0
  25. package/dist/{chunk-F3EZDBDJ.js → chunk-3OCNUKGX.js} +4 -4
  26. package/dist/{chunk-F3EZDBDJ.js.map → chunk-3OCNUKGX.js.map} +1 -1
  27. package/dist/{chunk-D3WFIFRY.cjs → chunk-3VW7ZXQ6.cjs} +211 -5
  28. package/dist/chunk-3VW7ZXQ6.cjs.map +1 -0
  29. package/dist/{chunk-JSQEAPTC.cjs → chunk-4GITK3Q5.cjs} +398 -75
  30. package/dist/chunk-4GITK3Q5.cjs.map +1 -0
  31. package/dist/{chunk-2CWM2CFZ.js → chunk-7UENVUA6.js} +4 -4
  32. package/dist/{chunk-2CWM2CFZ.js.map → chunk-7UENVUA6.js.map} +1 -1
  33. package/dist/{chunk-EWCJXUBP.js → chunk-AVXRXPII.js} +3 -3
  34. package/dist/{chunk-EWCJXUBP.js.map → chunk-AVXRXPII.js.map} +1 -1
  35. package/dist/{chunk-7IRSCMNK.js → chunk-BGXWPVHR.js} +3 -3
  36. package/dist/{chunk-7IRSCMNK.js.map → chunk-BGXWPVHR.js.map} +1 -1
  37. package/dist/chunk-DAN7EJ4O.js +482 -0
  38. package/dist/chunk-DAN7EJ4O.js.map +1 -0
  39. package/dist/chunk-E4H5H2C3.cjs +18 -0
  40. package/dist/{chunk-OTU5KGQ6.cjs.map → chunk-E4H5H2C3.cjs.map} +1 -1
  41. package/dist/{chunk-VY4UFXTM.cjs → chunk-ETJFC6MO.cjs} +4 -4
  42. package/dist/{chunk-VY4UFXTM.cjs.map → chunk-ETJFC6MO.cjs.map} +1 -1
  43. package/dist/{chunk-TQIY2SVY.cjs → chunk-GFVIFXWT.cjs} +5 -5
  44. package/dist/{chunk-TQIY2SVY.cjs.map → chunk-GFVIFXWT.cjs.map} +1 -1
  45. package/dist/chunk-JPWPR6QU.cjs +485 -0
  46. package/dist/chunk-JPWPR6QU.cjs.map +1 -0
  47. package/dist/{chunk-KQYPP72K.js → chunk-JTJCCL2E.js} +212 -9
  48. package/dist/chunk-JTJCCL2E.js.map +1 -0
  49. package/dist/{chunk-PGOSIJ2I.js → chunk-KFMRBZQK.js} +15 -5
  50. package/dist/chunk-KFMRBZQK.js.map +1 -0
  51. package/dist/chunk-NMZI3K6R.cjs +159 -0
  52. package/dist/chunk-NMZI3K6R.cjs.map +1 -0
  53. package/dist/{chunk-53RCZPMR.cjs → chunk-P2YM67Y5.cjs} +5 -5
  54. package/dist/{chunk-53RCZPMR.cjs.map → chunk-P2YM67Y5.cjs.map} +1 -1
  55. package/dist/chunk-Q2XGM372.cjs +18 -0
  56. package/dist/{chunk-S74QMZVZ.cjs.map → chunk-Q2XGM372.cjs.map} +1 -1
  57. package/dist/{chunk-7HHYMDPE.js → chunk-RATEAOKT.js} +3 -3
  58. package/dist/{chunk-7HHYMDPE.js.map → chunk-RATEAOKT.js.map} +1 -1
  59. package/dist/{chunk-SN2GZ4ZM.cjs → chunk-TQUYWUEE.cjs} +10 -156
  60. package/dist/chunk-TQUYWUEE.cjs.map +1 -0
  61. package/dist/{chunk-ONTUMV74.js → chunk-XER3JLC7.js} +398 -78
  62. package/dist/chunk-XER3JLC7.js.map +1 -0
  63. package/dist/{chunk-HP2C4MD3.js → chunk-ZDOKJD44.js} +4 -143
  64. package/dist/chunk-ZDOKJD44.js.map +1 -0
  65. package/dist/connect/docx.cjs +11 -10
  66. package/dist/connect/docx.js +7 -6
  67. package/dist/connect/index.cjs +406 -384
  68. package/dist/connect/index.cjs.map +1 -1
  69. package/dist/connect/index.js +69 -47
  70. package/dist/connect/index.js.map +1 -1
  71. package/dist/connect/viewer.cjs +41 -20
  72. package/dist/connect/viewer.cjs.map +1 -1
  73. package/dist/connect/viewer.js +29 -8
  74. package/dist/connect/viewer.js.map +1 -1
  75. package/dist/connection/viewer/ViewerPdfPane.d.ts +7 -1
  76. package/dist/connection/workspace-list/ConnectedWorkspaceList.d.ts +4 -2
  77. package/dist/connection/workspace-list/WorkspaceCardsView.d.ts +3 -2
  78. package/dist/connection/workspace-list/WorkspaceTableView.d.ts +3 -2
  79. package/dist/connection/workspace-list/index.d.ts +1 -1
  80. package/dist/connection/workspace-list/useConnectedWorkspaceList.d.ts +19 -0
  81. package/dist/connection/workspace-list/workspaceTable.d.ts +3 -1
  82. package/dist/connection/workspace-settings/ConnectedWorkspaceSettings.d.ts +3 -1
  83. package/dist/document-tools/AdoptSignatureDialog.d.ts +39 -4
  84. package/dist/document-tools/PlaceMySignatureButton.d.ts +16 -0
  85. package/dist/document-tools/SavedSignatureSettings.d.ts +10 -0
  86. package/dist/document-tools/index.cjs +37 -22
  87. package/dist/document-tools/index.d.ts +2 -0
  88. package/dist/document-tools/index.js +5 -2
  89. package/dist/document-tools/viewer/AnnotatedPdfViewer.d.ts +10 -1
  90. package/dist/document-tools/viewer/SignatureRequestEditor.d.ts +7 -4
  91. package/dist/document-tools/viewer/index.cjs +184 -18
  92. package/dist/document-tools/viewer/index.cjs.map +1 -1
  93. package/dist/document-tools/viewer/index.js +184 -18
  94. package/dist/document-tools/viewer/index.js.map +1 -1
  95. package/dist/docx/NativeDocxEditor.d.ts +5 -0
  96. package/dist/docx/index.cjs +61 -47
  97. package/dist/docx/index.d.ts +1 -0
  98. package/dist/docx/index.js +5 -3
  99. package/dist/docx/signatures/SignatureFields.d.ts +50 -0
  100. package/dist/settings/index.cjs +183 -182
  101. package/dist/settings/index.js +2 -1
  102. package/node_modules/@arbidocs/coedit/dist/commands.cjs +109 -16
  103. package/node_modules/@arbidocs/coedit/dist/commands.cjs.map +1 -1
  104. package/node_modules/@arbidocs/coedit/dist/commands.d.cts +84 -1
  105. package/node_modules/@arbidocs/coedit/dist/commands.d.ts +84 -1
  106. package/node_modules/@arbidocs/coedit/dist/commands.js +99 -17
  107. package/node_modules/@arbidocs/coedit/dist/commands.js.map +1 -1
  108. package/node_modules/@arbidocs/coedit/package.json +1 -1
  109. package/package.json +5 -5
  110. package/src/docx/styles.css +50 -0
  111. package/dist/ConnectedStreamedWordArtifact-EXYZAU4Y.cjs.map +0 -1
  112. package/dist/WorkspaceTableView-5OWX53R5.js.map +0 -1
  113. package/dist/WorkspaceTableView-ZFMAYHUD.cjs.map +0 -1
  114. package/dist/chunk-6MG62I5B.cjs +0 -272
  115. package/dist/chunk-6MG62I5B.cjs.map +0 -1
  116. package/dist/chunk-D3WFIFRY.cjs.map +0 -1
  117. package/dist/chunk-EQB3WELX.js +0 -269
  118. package/dist/chunk-EQB3WELX.js.map +0 -1
  119. package/dist/chunk-HP2C4MD3.js.map +0 -1
  120. package/dist/chunk-IJEISII2.cjs.map +0 -1
  121. package/dist/chunk-JSQEAPTC.cjs.map +0 -1
  122. package/dist/chunk-KQYPP72K.js.map +0 -1
  123. package/dist/chunk-ONTUMV74.js.map +0 -1
  124. package/dist/chunk-OTU5KGQ6.cjs +0 -18
  125. package/dist/chunk-PGOSIJ2I.js.map +0 -1
  126. package/dist/chunk-S74QMZVZ.cjs +0 -18
  127. package/dist/chunk-SN2GZ4ZM.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/document-tools/AdoptSignatureDialog.tsx"],"names":["SignaturePad"],"mappings":"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","file":"chunk-DAN7EJ4O.js","sourcesContent":["/**\n * Adopt a signature once, before applying it at each field: type it (the name in a signature\n * face, as the signed PDF draws it), draw it, or upload an image of it; initials likewise typed or\n * drawn. A drawn or uploaded mark is handed on as a PNG (white made transparent); the server\n * re-encodes it.\n *\n * The drawing pad spans the screen's width on a phone and is a generous box on a tablet or desktop.\n * Its canvas is backed at the device's pixel ratio (crisp strokes on a retina screen), and it takes\n * every touch for itself (`touch-action: none`): drawing with a finger never scrolls or zooms the\n * page. Strokes are kept as points, so a resize (turning the phone) redraws them at the new size.\n *\n * With `onSave`, the person may also tick \"Save to my account for future use\": the signature and\n * initials are then sealed to their own key and kept for next time (`saved` prefills the dialog).\n * In `mode=\"save\"` (account settings) the dialog only saves.\n */\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n type PointerEvent,\n type ReactElement,\n} from 'react'\nimport {\n initialsOf,\n intentText,\n type AdoptedSignature,\n type SavedSignature,\n} from '@arbidocs/react/document-tools'\nimport {\n Button,\n Checkbox,\n Input,\n Label,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n cn,\n} from '@arbidocs/react/ui'\nimport { ModalScaffold } from '../settings/ModalScaffold'\n\nexport interface AdoptedMark {\n adopted: AdoptedSignature\n /** A data URL of the drawn/uploaded signature, for showing it at each field; null when typed. */\n signatureUrl: string | null\n /** A data URL of the drawn initials; null when typed. */\n initialsUrl?: string | null\n}\n\nexport interface AdoptSignatureDialogProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n defaultName: string\n onAdopt: (mark: AdoptedMark) => void\n /** The signature saved to the account: the dialog starts from it. */\n saved?: SavedSignature | null\n /** Present: offer \"Save to my account for future use\" (and save when ticked). */\n onSave?: (signature: SavedSignature) => Promise<void>\n /** `save`: account settings, the dialog only saves the signature (no signing). */\n mode?: 'adopt' | 'save'\n}\n\n/** Typed signatures look like the PDF will: an italic serif in ink blue. */\nexport const TYPED_SIGNATURE_STYLE = {\n fontFamily: '\"Times New Roman\", Times, serif',\n fontStyle: 'italic',\n color: '#0d1a59',\n} as const\n\ntype Style = AdoptedSignature['style']\ntype InitialsStyle = 'typed' | 'drawn'\ntype Point = { x: number; y: number }\n\nexport interface SignaturePadHandle {\n isBlank: () => boolean\n toDataUrl: () => string | null\n clear: () => void\n}\n\n/**\n * A drawing pad: strokes in fractions of the pad, painted on a canvas at the device's pixel ratio.\n * `onInk` fires when the first stroke lands or the pad is cleared.\n */\nexport const SignaturePad = forwardRef<\n SignaturePadHandle,\n { label: string; className?: string; onInk: (has: boolean) => void; testId?: string }\n>(function SignaturePad({ label, className, onInk, testId }, ref) {\n const canvas = useRef<HTMLCanvasElement>(null)\n const strokes = useRef<Point[][]>([])\n const drawing = useRef<Point[] | null>(null)\n\n const paint = useCallback(() => {\n const c = canvas.current\n const ctx = c?.getContext('2d')\n if (!c || !ctx) return\n const ratio = window.devicePixelRatio || 1\n const width = c.width / ratio\n const height = c.height / ratio\n ctx.setTransform(ratio, 0, 0, ratio, 0, 0)\n ctx.clearRect(0, 0, width, height)\n ctx.lineWidth = Math.min(4, Math.max(2, height * 0.018))\n ctx.lineCap = 'round'\n ctx.lineJoin = 'round'\n ctx.strokeStyle = TYPED_SIGNATURE_STYLE.color\n for (const stroke of strokes.current) {\n if (!stroke.length) continue\n ctx.beginPath()\n ctx.moveTo(stroke[0]!.x * width, stroke[0]!.y * height)\n // A dot is a stroke too.\n if (stroke.length === 1) ctx.lineTo(stroke[0]!.x * width + 0.1, stroke[0]!.y * height)\n for (const p of stroke.slice(1)) ctx.lineTo(p.x * width, p.y * height)\n ctx.stroke()\n }\n }, [])\n\n // Back the canvas at the device's pixel ratio, and redraw on every resize.\n useEffect(() => {\n const c = canvas.current\n if (!c) return\n const fit = () => {\n const rect = c.getBoundingClientRect()\n const ratio = window.devicePixelRatio || 1\n const width = Math.max(1, Math.round(rect.width * ratio))\n const height = Math.max(1, Math.round(rect.height * ratio))\n if (c.width !== width || c.height !== height) {\n c.width = width\n c.height = height\n }\n paint()\n }\n fit()\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(fit)\n observer?.observe(c)\n return () => observer?.disconnect()\n }, [paint])\n\n useImperativeHandle(\n ref,\n () => ({\n isBlank: () => strokes.current.every((s) => s.length === 0),\n toDataUrl: () =>\n strokes.current.some((s) => s.length)\n ? (canvas.current?.toDataURL('image/png') ?? null)\n : null,\n clear: () => {\n strokes.current = []\n paint()\n onInk(false)\n },\n }),\n [paint, onInk]\n )\n\n const at = (e: PointerEvent<HTMLCanvasElement>): Point => {\n const r = e.currentTarget.getBoundingClientRect()\n return {\n x: Math.min(1, Math.max(0, (e.clientX - r.left) / (r.width || 1))),\n y: Math.min(1, Math.max(0, (e.clientY - r.top) / (r.height || 1))),\n }\n }\n\n return (\n <canvas\n ref={canvas}\n className={cn(\n 'block touch-none rounded-md border bg-white select-none [overscroll-behavior:contain]',\n className\n )}\n style={{ touchAction: 'none' }}\n aria-label={label}\n role=\"img\"\n onPointerDown={(e) => {\n e.preventDefault()\n e.currentTarget.setPointerCapture?.(e.pointerId)\n drawing.current = [at(e)]\n strokes.current.push(drawing.current)\n paint()\n onInk(true)\n }}\n onPointerMove={(e) => {\n if (!drawing.current) return\n e.preventDefault()\n // Every sample the browser coalesced, for a smooth line from a fast finger or pen.\n const native = e.nativeEvent as globalThis.PointerEvent\n const samples = native.getCoalescedEvents?.() ?? []\n if (samples.length) {\n const r = e.currentTarget.getBoundingClientRect()\n for (const s of samples)\n drawing.current.push({\n x: Math.min(1, Math.max(0, (s.clientX - r.left) / (r.width || 1))),\n y: Math.min(1, Math.max(0, (s.clientY - r.top) / (r.height || 1))),\n })\n } else drawing.current.push(at(e))\n paint()\n }}\n onPointerUp={() => (drawing.current = null)}\n onPointerCancel={() => (drawing.current = null)}\n data-testid={testId}\n />\n )\n})\n\n/** Draw an uploaded image onto a fresh canvas, fitted, with near-white made transparent. */\nasync function uploadedPng(file: File): Promise<string> {\n const url = URL.createObjectURL(file)\n try {\n const img = new Image()\n await new Promise<void>((resolve, reject) => {\n img.onload = () => resolve()\n img.onerror = () => reject(new Error('That file is not an image'))\n img.src = url\n })\n const canvas = document.createElement('canvas')\n canvas.width = 900\n canvas.height = 300\n const ctx = canvas.getContext('2d')!\n const scale = Math.min(canvas.width / img.width, canvas.height / img.height)\n const w = img.width * scale\n const h = img.height * scale\n ctx.drawImage(img, (canvas.width - w) / 2, (canvas.height - h) / 2, w, h)\n const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height)\n for (let i = 0; i < pixels.data.length; i += 4) {\n const [r, g, b] = [pixels.data[i]!, pixels.data[i + 1]!, pixels.data[i + 2]!]\n if (r > 225 && g > 225 && b > 225) pixels.data[i + 3] = 0\n }\n ctx.putImageData(pixels, 0, 0)\n return canvas.toDataURL('image/png')\n } finally {\n URL.revokeObjectURL(url)\n }\n}\n\nconst base64Of = (dataUrl: string) => dataUrl.slice(dataUrl.indexOf(',') + 1)\nconst dataUrlOf = (png: string) => `data:image/png;base64,${png}`\n\n/** A typed mark as a picture (transparent, ink blue, the signature face): what is saved for it. */\nexport function typedPng(text: string, height = 120): string {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n if (!ctx) return ''\n const font = `italic ${Math.round(height * 0.6)}px ${TYPED_SIGNATURE_STYLE.fontFamily}`\n ctx.font = font\n const width = Math.max(height, Math.ceil(ctx.measureText(text).width + height * 0.4))\n canvas.width = width\n canvas.height = height\n ctx.font = font\n ctx.fillStyle = TYPED_SIGNATURE_STYLE.color\n ctx.textBaseline = 'middle'\n ctx.fillText(text, height * 0.2, height / 2)\n return base64Of(canvas.toDataURL('image/png'))\n}\n\n/** Full width of the screen on a phone (past the dialog's padding), a large box on wider screens. */\nconst PAD_SIGNATURE = '-mx-6 w-[calc(100%+3rem)] h-[44vw] min-h-36 sm:mx-0 sm:w-full sm:h-56'\nconst PAD_INITIALS = '-mx-6 w-[calc(100%+3rem)] h-[34vw] min-h-28 sm:mx-0 sm:w-80 sm:h-40'\n\nexport function AdoptSignatureDialog({\n open,\n onOpenChange,\n defaultName,\n onAdopt,\n saved = null,\n onSave,\n mode = 'adopt',\n}: AdoptSignatureDialogProps): ReactElement {\n const saving = mode === 'save'\n const [saveToAccount, setSaveToAccount] = useState(false)\n const [busy, setBusy] = useState(false)\n /** The saved drawing, shown on the pad until the person draws a new one. */\n const [savedDrawing, setSavedDrawing] = useState<string | null>(null)\n const [savedInitials, setSavedInitials] = useState<string | null>(null)\n const [name, setName] = useState(defaultName)\n const [initials, setInitials] = useState(() => initialsOf(defaultName))\n const [style, setStyle] = useState<Style>('typed')\n const [initialsStyle, setInitialsStyle] = useState<InitialsStyle>('typed')\n const [hasInk, setHasInk] = useState(false)\n const [hasInitialsInk, setHasInitialsInk] = useState(false)\n const [upload, setUpload] = useState<string | null>(null)\n const [error, setError] = useState<string | null>(null)\n const signaturePad = useRef<SignaturePadHandle>(null)\n const initialsPad = useRef<SignaturePadHandle>(null)\n\n useEffect(() => {\n if (!open) return\n setSaveToAccount(false)\n setError(null)\n if (saved) {\n setName(saved.name)\n setInitials(saved.initials)\n setStyle(saved.style)\n setInitialsStyle(saved.initials_style)\n setSavedDrawing(saved.style === 'drawn' ? dataUrlOf(saved.signature_png) : null)\n setUpload(saved.style === 'uploaded' ? dataUrlOf(saved.signature_png) : null)\n setSavedInitials(saved.initials_style === 'drawn' ? dataUrlOf(saved.initials_png) : null)\n } else {\n setName(defaultName)\n setInitials(initialsOf(defaultName))\n }\n }, [open, defaultName, saved])\n\n const adopt = async () => {\n setError(null)\n if (!name.trim() || !initials.trim()) return\n let signatureUrl: string | null = null\n if (style === 'drawn') {\n signatureUrl = signaturePad.current?.toDataUrl() ?? (hasInk ? null : savedDrawing)\n if (!signatureUrl) return setError('Draw your signature first.')\n } else if (style === 'uploaded') {\n signatureUrl = upload\n if (!signatureUrl) return setError('Choose an image first.')\n }\n let initialsUrl: string | null = null\n if (initialsStyle === 'drawn') {\n initialsUrl = initialsPad.current?.toDataUrl() ?? (hasInitialsInk ? null : savedInitials)\n if (!initialsUrl) return setError('Draw your initials first.')\n }\n if (onSave && (saving || saveToAccount)) {\n setBusy(true)\n try {\n await onSave({\n name: name.trim(),\n initials: initials.trim(),\n style,\n initials_style: initialsStyle,\n signature_png: signatureUrl ? base64Of(signatureUrl) : typedPng(name.trim()),\n initials_png: initialsUrl ? base64Of(initialsUrl) : typedPng(initials.trim()),\n })\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Your signature could not be saved')\n return\n } finally {\n setBusy(false)\n }\n }\n onAdopt({\n adopted: {\n name: name.trim(),\n initials: initials.trim(),\n style,\n ...(signatureUrl ? { signature_image: base64Of(signatureUrl) } : {}),\n ...(initialsUrl ? { initials_image: base64Of(initialsUrl) } : {}),\n },\n signatureUrl,\n initialsUrl,\n })\n }\n\n return (\n <ModalScaffold\n open={open}\n onOpenChange={onOpenChange}\n title={saving ? 'Your signature' : 'Adopt your signature'}\n description={\n saving\n ? 'Saved to your account, sealed with your own key, for placing in documents yourself.'\n : 'You adopt it once and apply it at each place you are asked to sign.'\n }\n showDescription\n size=\"lg\"\n testId=\"adopt-signature-dialog\"\n >\n <ModalScaffold.Body>\n <div className=\"grid grid-cols-[1fr_7rem] gap-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"adopt-name\">Full name</Label>\n <Input\n id=\"adopt-name\"\n value={name}\n onChange={(e) => {\n setName(e.target.value)\n setInitials(initialsOf(e.target.value))\n }}\n data-testid=\"adopt-signature-name\"\n />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"adopt-initials\">Initials</Label>\n <Input\n id=\"adopt-initials\"\n value={initials}\n maxLength={12}\n onChange={(e) => setInitials(e.target.value)}\n data-testid=\"adopt-signature-initials\"\n />\n </div>\n </div>\n <section className=\"space-y-1.5\" aria-label=\"Signature\">\n <h3 className=\"text-sm font-medium\">Signature</h3>\n <Tabs\n value={style}\n onValueChange={(v) => {\n setStyle(v as Style)\n setError(null)\n }}\n >\n <TabsList className=\"grid w-full grid-cols-3\">\n <TabsTrigger value=\"typed\" data-testid=\"adopt-tab-typed\">\n Type\n </TabsTrigger>\n <TabsTrigger value=\"drawn\" data-testid=\"adopt-tab-drawn\">\n Draw\n </TabsTrigger>\n <TabsTrigger value=\"uploaded\" data-testid=\"adopt-tab-uploaded\">\n Upload\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"typed\">\n <div\n className=\"flex h-28 items-center justify-center overflow-hidden rounded-md border bg-white px-4 text-4xl whitespace-nowrap\"\n style={TYPED_SIGNATURE_STYLE}\n data-testid=\"adopt-signature-typed-preview\"\n >\n {name.trim() || 'Your name'}\n </div>\n </TabsContent>\n <TabsContent value=\"drawn\" forceMount hidden={style !== 'drawn'}>\n <div className=\"relative\">\n <SignaturePad\n ref={signaturePad}\n label=\"Draw your signature\"\n className={PAD_SIGNATURE}\n onInk={setHasInk}\n testId=\"adopt-signature-canvas\"\n />\n {savedDrawing && !hasInk && (\n <img\n src={savedDrawing}\n alt=\"Your saved signature\"\n className=\"pointer-events-none absolute inset-0 h-full w-full object-contain p-2\"\n data-testid=\"adopt-signature-saved\"\n />\n )}\n </div>\n <div className=\"flex items-center justify-between pt-1 text-xs text-muted-foreground\">\n <span>Sign with your finger, a pen or the mouse.</span>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => signaturePad.current?.clear()}\n disabled={!hasInk}\n data-testid=\"adopt-signature-clear\"\n >\n Clear\n </Button>\n </div>\n </TabsContent>\n <TabsContent value=\"uploaded\" forceMount hidden={style !== 'uploaded'}>\n <div className=\"flex h-28 items-center justify-center rounded-md border bg-white\">\n {upload ? (\n <img src={upload} alt=\"Uploaded signature\" className=\"h-full object-contain\" />\n ) : (\n <span className=\"text-sm text-muted-foreground\">No image chosen</span>\n )}\n </div>\n <Input\n type=\"file\"\n accept=\"image/png,image/jpeg,image/webp\"\n className=\"mt-2\"\n onChange={async (e) => {\n const file = e.target.files?.[0]\n if (!file) return\n try {\n setUpload(await uploadedPng(file))\n setError(null)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'The image could not be read')\n }\n }}\n data-testid=\"adopt-signature-upload\"\n />\n </TabsContent>\n </Tabs>\n </section>\n <section className=\"space-y-1.5\" aria-label=\"Initials\">\n <h3 className=\"text-sm font-medium\">Initials</h3>\n <Tabs\n value={initialsStyle}\n onValueChange={(v) => {\n setInitialsStyle(v as InitialsStyle)\n setError(null)\n }}\n >\n <TabsList className=\"grid w-full grid-cols-2 sm:w-80\">\n <TabsTrigger value=\"typed\" data-testid=\"adopt-initials-tab-typed\">\n Type\n </TabsTrigger>\n <TabsTrigger value=\"drawn\" data-testid=\"adopt-initials-tab-drawn\">\n Draw\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"typed\">\n <div\n className=\"flex h-20 items-center justify-center rounded-md border bg-white px-4 text-3xl sm:w-80\"\n style={TYPED_SIGNATURE_STYLE}\n data-testid=\"adopt-initials-typed-preview\"\n >\n {initials.trim() || 'AB'}\n </div>\n </TabsContent>\n <TabsContent value=\"drawn\" forceMount hidden={initialsStyle !== 'drawn'}>\n <div className=\"relative sm:w-80\">\n <SignaturePad\n ref={initialsPad}\n label=\"Draw your initials\"\n className={PAD_INITIALS}\n onInk={setHasInitialsInk}\n testId=\"adopt-initials-canvas\"\n />\n {savedInitials && !hasInitialsInk && (\n <img\n src={savedInitials}\n alt=\"Your saved initials\"\n className=\"pointer-events-none absolute inset-0 h-full w-full object-contain p-2\"\n />\n )}\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => initialsPad.current?.clear()}\n disabled={!hasInitialsInk}\n >\n Clear\n </Button>\n </TabsContent>\n </Tabs>\n </section>\n {onSave && !saving && (\n <label className=\"flex items-center gap-2 text-sm\">\n <Checkbox\n checked={saveToAccount}\n onCheckedChange={(c) => setSaveToAccount(c === true)}\n data-testid=\"adopt-signature-save\"\n />\n Save to my account for future use\n </label>\n )}\n {name.trim() && !saving && (\n <p className=\"text-xs text-muted-foreground\">\n By adopting it you agree to sign electronically: “{intentText({ name })}”\n </p>\n )}\n {error && (\n <p className=\"text-sm text-red-text\" role=\"alert\">\n {error}\n </p>\n )}\n </ModalScaffold.Body>\n <ModalScaffold.Footer>\n <Button type=\"button\" variant=\"outline\" onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"button\"\n onClick={() => void adopt()}\n disabled={busy || !name.trim() || !initials.trim()}\n data-testid=\"adopt-signature-submit\"\n >\n {saving ? 'Save' : 'Adopt and sign'}\n </Button>\n </ModalScaffold.Footer>\n </ModalScaffold>\n )\n}\n"]}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunk2BHDRVVL_cjs = require('./chunk-2BHDRVVL.cjs');
5
+ var chunkETJFC6MO_cjs = require('./chunk-ETJFC6MO.cjs');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function ConnectedNativeDocxComparison({
9
+ fontBaseUrl,
10
+ ...props
11
+ }) {
12
+ const adapter = chunk2BHDRVVL_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
13
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkETJFC6MO_cjs.NativeDocxComparison, { ...props, adapter, onCompared: adapter.onVersionSaved });
14
+ }
15
+
16
+ exports.ConnectedNativeDocxComparison = ConnectedNativeDocxComparison;
17
+ //# sourceMappingURL=chunk-E4H5H2C3.cjs.map
18
+ //# sourceMappingURL=chunk-E4H5H2C3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection/docx/ConnectedNativeDocxComparison.tsx"],"names":["useConnectedNativeDocxAdapter","NativeDocxComparison"],"mappings":";;;;;;AAOO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyF;AACvF,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,sCAAQC,sCAAA,EAAA,EAAsB,GAAG,OAAO,OAAA,EAAkB,UAAA,EAAY,QAAQ,cAAA,EAAgB,CAAA;AAChG","file":"chunk-OTU5KGQ6.cjs","sourcesContent":["import {\n NativeDocxComparison,\n type NativeDocxComparisonProps,\n} from '../../docx/NativeDocxComparison'\nimport { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\n\n/** The Word redline of two documents or versions, on the signed-in session. */\nexport function ConnectedNativeDocxComparison({\n fontBaseUrl,\n ...props\n}: Omit<NativeDocxComparisonProps, 'adapter' | 'onCompared'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <NativeDocxComparison {...props} adapter={adapter} onCompared={adapter.onVersionSaved} />\n}\n"]}
1
+ {"version":3,"sources":["../src/connection/docx/ConnectedNativeDocxComparison.tsx"],"names":["useConnectedNativeDocxAdapter","NativeDocxComparison"],"mappings":";;;;;;AAOO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyF;AACvF,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,sCAAQC,sCAAA,EAAA,EAAsB,GAAG,OAAO,OAAA,EAAkB,UAAA,EAAY,QAAQ,cAAA,EAAgB,CAAA;AAChG","file":"chunk-E4H5H2C3.cjs","sourcesContent":["import {\n NativeDocxComparison,\n type NativeDocxComparisonProps,\n} from '../../docx/NativeDocxComparison'\nimport { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\n\n/** The Word redline of two documents or versions, on the signed-in session. */\nexport function ConnectedNativeDocxComparison({\n fontBaseUrl,\n ...props\n}: Omit<NativeDocxComparisonProps, 'adapter' | 'onCompared'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <NativeDocxComparison {...props} adapter={adapter} onCompared={adapter.onVersionSaved} />\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkJSQEAPTC_cjs = require('./chunk-JSQEAPTC.cjs');
4
+ var chunk4GITK3Q5_cjs = require('./chunk-4GITK3Q5.cjs');
5
5
  var react = require('react');
6
6
  var artifacts = require('@arbidocs/react/artifacts');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -52,7 +52,7 @@ function NativeDocxComparison({
52
52
  if (!documentId)
53
53
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "native-docx-error", role: "status", children: "Comparing Word documents\u2026" });
54
54
  return /* @__PURE__ */ jsxRuntime.jsx(
55
- chunkJSQEAPTC_cjs.NativeDocxEditor,
55
+ chunk4GITK3Q5_cjs.NativeDocxEditor,
56
56
  {
57
57
  adapter,
58
58
  documentId,
@@ -63,5 +63,5 @@ function NativeDocxComparison({
63
63
  }
64
64
 
65
65
  exports.NativeDocxComparison = NativeDocxComparison;
66
- //# sourceMappingURL=chunk-VY4UFXTM.cjs.map
67
- //# sourceMappingURL=chunk-VY4UFXTM.cjs.map
66
+ //# sourceMappingURL=chunk-ETJFC6MO.cjs.map
67
+ //# sourceMappingURL=chunk-ETJFC6MO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/docx/NativeDocxComparison.tsx"],"names":["parseVersionRef","useRef","useState","useEffect","error","jsxs","jsx","NativeDocxEditor"],"mappings":"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","file":"chunk-VY4UFXTM.cjs","sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface NativeDocxComparisonProps {\n adapter: NativeDocxAdapter\n baseId: string\n revisedId: string\n title: string\n onCompared?: (documentId: string) => void | Promise<void>\n}\n\n/** A `doc-…@v{n}` side names an older version: the endpoint takes its document and version apart. */\nfunction redlineQuery(baseId: string, revisedId: string): URLSearchParams {\n const base = parseVersionRef(baseId)\n const revised = parseVersionRef(revisedId)\n const query = new URLSearchParams({ base_ext_id: base.docId, revised_ext_id: revised.docId })\n if (base.version) query.set('base_version', String(base.version))\n if (revised.version) query.set('revised_version', String(revised.version))\n return query\n}\n\n/** Word comparison through the host's authenticated transport and LibreOffice service. */\nexport function NativeDocxComparison({\n adapter,\n baseId,\n revisedId,\n title,\n onCompared,\n}: NativeDocxComparisonProps) {\n const host = useRef({ adapter, onCompared })\n host.current = { adapter, onCompared }\n const [documentId, setDocumentId] = useState('')\n const [error, setError] = useState('')\n const [attempt, setAttempt] = useState(0)\n useEffect(() => {\n let cancelled = false\n setDocumentId('')\n setError('')\n void host.current.adapter\n .request(`/redline?${redlineQuery(baseId, revisedId)}`, { method: 'POST' })\n .then((response) => response.json())\n .then((result: { document_ext_id: string }) => {\n if (!result.document_ext_id) throw new Error('Comparison did not return a Word document.')\n if (!cancelled) {\n setDocumentId(result.document_ext_id)\n void Promise.resolve(host.current.onCompared?.(result.document_ext_id)).catch(() => {})\n }\n })\n .catch((error) => {\n if (!cancelled) setError(error instanceof Error ? error.message : String(error))\n })\n return () => {\n cancelled = true\n }\n }, [baseId, revisedId, attempt])\n if (error)\n return (\n <div className=\"native-docx-error\" role=\"alert\">\n <p>{error}</p>\n <button onClick={() => setAttempt((value) => value + 1)}>Retry comparison</button>\n </div>\n )\n if (!documentId)\n return (\n <div className=\"native-docx-error\" role=\"status\">\n Comparing Word documents…\n </div>\n )\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={`${title.replace(/\\.[^.]+$/, '')} (redline).docx`}\n />\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/docx/NativeDocxComparison.tsx"],"names":["parseVersionRef","useRef","useState","useEffect","error","jsxs","jsx","NativeDocxEditor"],"mappings":"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","file":"chunk-ETJFC6MO.cjs","sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface NativeDocxComparisonProps {\n adapter: NativeDocxAdapter\n baseId: string\n revisedId: string\n title: string\n onCompared?: (documentId: string) => void | Promise<void>\n}\n\n/** A `doc-…@v{n}` side names an older version: the endpoint takes its document and version apart. */\nfunction redlineQuery(baseId: string, revisedId: string): URLSearchParams {\n const base = parseVersionRef(baseId)\n const revised = parseVersionRef(revisedId)\n const query = new URLSearchParams({ base_ext_id: base.docId, revised_ext_id: revised.docId })\n if (base.version) query.set('base_version', String(base.version))\n if (revised.version) query.set('revised_version', String(revised.version))\n return query\n}\n\n/** Word comparison through the host's authenticated transport and LibreOffice service. */\nexport function NativeDocxComparison({\n adapter,\n baseId,\n revisedId,\n title,\n onCompared,\n}: NativeDocxComparisonProps) {\n const host = useRef({ adapter, onCompared })\n host.current = { adapter, onCompared }\n const [documentId, setDocumentId] = useState('')\n const [error, setError] = useState('')\n const [attempt, setAttempt] = useState(0)\n useEffect(() => {\n let cancelled = false\n setDocumentId('')\n setError('')\n void host.current.adapter\n .request(`/redline?${redlineQuery(baseId, revisedId)}`, { method: 'POST' })\n .then((response) => response.json())\n .then((result: { document_ext_id: string }) => {\n if (!result.document_ext_id) throw new Error('Comparison did not return a Word document.')\n if (!cancelled) {\n setDocumentId(result.document_ext_id)\n void Promise.resolve(host.current.onCompared?.(result.document_ext_id)).catch(() => {})\n }\n })\n .catch((error) => {\n if (!cancelled) setError(error instanceof Error ? error.message : String(error))\n })\n return () => {\n cancelled = true\n }\n }, [baseId, revisedId, attempt])\n if (error)\n return (\n <div className=\"native-docx-error\" role=\"alert\">\n <p>{error}</p>\n <button onClick={() => setAttempt((value) => value + 1)}>Retry comparison</button>\n </div>\n )\n if (!documentId)\n return (\n <div className=\"native-docx-error\" role=\"status\">\n Comparing Word documents…\n </div>\n )\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={`${title.replace(/\\.[^.]+$/, '')} (redline).docx`}\n />\n )\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkJSQEAPTC_cjs = require('./chunk-JSQEAPTC.cjs');
4
+ var chunk4GITK3Q5_cjs = require('./chunk-4GITK3Q5.cjs');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
7
7
  function StreamedWordArtifact({
@@ -15,7 +15,7 @@ function StreamedWordArtifact({
15
15
  }) {
16
16
  if (!busy && documentId) {
17
17
  return /* @__PURE__ */ jsxRuntime.jsx(
18
- chunkJSQEAPTC_cjs.NativeDocxEditor,
18
+ chunk4GITK3Q5_cjs.NativeDocxEditor,
19
19
  {
20
20
  adapter,
21
21
  documentId,
@@ -26,7 +26,7 @@ function StreamedWordArtifact({
26
26
  );
27
27
  }
28
28
  return /* @__PURE__ */ jsxRuntime.jsx(
29
- chunkJSQEAPTC_cjs.NativeDocxEditor,
29
+ chunk4GITK3Q5_cjs.NativeDocxEditor,
30
30
  {
31
31
  adapter,
32
32
  documentId: "stream-preview",
@@ -39,5 +39,5 @@ function StreamedWordArtifact({
39
39
  }
40
40
 
41
41
  exports.StreamedWordArtifact = StreamedWordArtifact;
42
- //# sourceMappingURL=chunk-TQIY2SVY.cjs.map
43
- //# sourceMappingURL=chunk-TQIY2SVY.cjs.map
42
+ //# sourceMappingURL=chunk-GFVIFXWT.cjs.map
43
+ //# sourceMappingURL=chunk-GFVIFXWT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/docx/StreamedWordArtifact.tsx"],"names":["jsx","NativeDocxEditor"],"mappings":";;;;;AAmBO,SAAS,oBAAA,CAAqB;AAAA,EACnC,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,IAAI,CAAC,QAAQ,UAAA,EAAY;AACvB,IAAA,uBACEA,cAAA;AAAA,MAACC,kCAAA;AAAA,MAAA;AAAA,QAEC,OAAA;AAAA,QACA,UAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OAAA;AAAA,MAJK;AAAA,KAKP;AAAA,EAEJ;AACA,EAAA,uBACED,cAAA;AAAA,IAACC,kCAAA;AAAA,IAAA;AAAA,MAEC,OAAA;AAAA,MACA,UAAA,EAAW,gBAAA;AAAA,MACX,KAAA;AAAA,MACA,YAAA,EAAa,EAAA;AAAA,MACb,MAAA,EAAQ,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA;AAAM,KAAA;AAAA,IAL3B;AAAA,GAMN;AAEJ","file":"chunk-TQIY2SVY.cjs","sourcesContent":["import { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface StreamedWordArtifactProps {\n adapter: NativeDocxAdapter\n /** Streamed Markdown, shown as a read-only preview while the draft is generated. */\n content: string\n title: string\n busy: boolean\n error?: string | null\n /** The DOCX draft the server stored for this generation (`doc-…`), once known. */\n documentId?: string\n onSaved?: (documentId: string) => void\n}\n\n/**\n * One drafting surface for an AI document draft. The server stores every draft as DOCX, so\n * this component never creates a document: it previews the streamed Markdown until generation\n * ends and the stored DOCX is known, then opens that DOCX in the live collaborative editor.\n */\nexport function StreamedWordArtifact({\n adapter,\n content,\n title,\n busy,\n error,\n documentId,\n onSaved,\n}: StreamedWordArtifactProps) {\n if (!busy && documentId) {\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={title}\n onSaved={onSaved}\n />\n )\n }\n return (\n <NativeDocxEditor\n key=\"stream-preview\"\n adapter={adapter}\n documentId=\"stream-preview\"\n title={title}\n draftContent=\"\"\n stream={{ content, busy, error }}\n />\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/docx/StreamedWordArtifact.tsx"],"names":["jsx","NativeDocxEditor"],"mappings":";;;;;AAmBO,SAAS,oBAAA,CAAqB;AAAA,EACnC,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,IAAI,CAAC,QAAQ,UAAA,EAAY;AACvB,IAAA,uBACEA,cAAA;AAAA,MAACC,kCAAA;AAAA,MAAA;AAAA,QAEC,OAAA;AAAA,QACA,UAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OAAA;AAAA,MAJK;AAAA,KAKP;AAAA,EAEJ;AACA,EAAA,uBACED,cAAA;AAAA,IAACC,kCAAA;AAAA,IAAA;AAAA,MAEC,OAAA;AAAA,MACA,UAAA,EAAW,gBAAA;AAAA,MACX,KAAA;AAAA,MACA,YAAA,EAAa,EAAA;AAAA,MACb,MAAA,EAAQ,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA;AAAM,KAAA;AAAA,IAL3B;AAAA,GAMN;AAEJ","file":"chunk-GFVIFXWT.cjs","sourcesContent":["import { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface StreamedWordArtifactProps {\n adapter: NativeDocxAdapter\n /** Streamed Markdown, shown as a read-only preview while the draft is generated. */\n content: string\n title: string\n busy: boolean\n error?: string | null\n /** The DOCX draft the server stored for this generation (`doc-…`), once known. */\n documentId?: string\n onSaved?: (documentId: string) => void\n}\n\n/**\n * One drafting surface for an AI document draft. The server stores every draft as DOCX, so\n * this component never creates a document: it previews the streamed Markdown until generation\n * ends and the stored DOCX is known, then opens that DOCX in the live collaborative editor.\n */\nexport function StreamedWordArtifact({\n adapter,\n content,\n title,\n busy,\n error,\n documentId,\n onSaved,\n}: StreamedWordArtifactProps) {\n if (!busy && documentId) {\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={title}\n onSaved={onSaved}\n />\n )\n }\n return (\n <NativeDocxEditor\n key=\"stream-preview\"\n adapter={adapter}\n documentId=\"stream-preview\"\n title={title}\n draftContent=\"\"\n stream={{ content, busy, error }}\n />\n )\n}\n"]}