@pixerate/editor 0.23.0 → 0.24.0

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 (155) hide show
  1. package/README.md +96 -1
  2. package/THIRD_PARTY_NOTICES.md +51 -0
  3. package/dist/agent/index.cjs +9 -8
  4. package/dist/agent/index.cjs.map +1 -1
  5. package/dist/agent/index.d.cts +4 -3
  6. package/dist/agent/index.d.ts +4 -3
  7. package/dist/agent/index.js +3 -2
  8. package/dist/agent/index.js.map +1 -1
  9. package/dist/canvas/index.cjs +1210 -17
  10. package/dist/canvas/index.cjs.map +1 -1
  11. package/dist/canvas/index.d.cts +318 -1
  12. package/dist/canvas/index.d.ts +318 -1
  13. package/dist/canvas/index.js +1199 -6
  14. package/dist/canvas/index.js.map +1 -1
  15. package/dist/{chunk-QBJ22YZR.js → chunk-3CN2WD3X.js} +1354 -206
  16. package/dist/chunk-3CN2WD3X.js.map +1 -0
  17. package/dist/{chunk-JJDLPEWL.js → chunk-3LV6RRPH.js} +2 -2
  18. package/dist/{chunk-MJZBNWG7.js → chunk-5S3Z4PPF.js} +78 -557
  19. package/dist/chunk-5S3Z4PPF.js.map +1 -0
  20. package/dist/chunk-664LQYFJ.js +115 -0
  21. package/dist/chunk-664LQYFJ.js.map +1 -0
  22. package/dist/{chunk-AA4ZEVCC.cjs → chunk-D27YFC46.cjs} +101 -580
  23. package/dist/chunk-D27YFC46.cjs.map +1 -0
  24. package/dist/chunk-D6FH2YAX.cjs +131 -0
  25. package/dist/chunk-D6FH2YAX.cjs.map +1 -0
  26. package/dist/{chunk-4SUNJZWB.cjs → chunk-FD4LPFAE.cjs} +48 -200
  27. package/dist/chunk-FD4LPFAE.cjs.map +1 -0
  28. package/dist/chunk-FODNLX5N.js +749 -0
  29. package/dist/chunk-FODNLX5N.js.map +1 -0
  30. package/dist/{chunk-OYXSKQFR.js → chunk-FPENXAEJ.js} +35 -187
  31. package/dist/chunk-FPENXAEJ.js.map +1 -0
  32. package/dist/chunk-HLIMTC6N.js +1 -0
  33. package/dist/chunk-HLIMTC6N.js.map +1 -0
  34. package/dist/{chunk-QGHGJ56O.js → chunk-ITBSKI26.js} +1483 -19
  35. package/dist/chunk-ITBSKI26.js.map +1 -0
  36. package/dist/{chunk-XDMXXC4Z.cjs → chunk-MA2F5KHF.cjs} +350 -227
  37. package/dist/chunk-MA2F5KHF.cjs.map +1 -0
  38. package/dist/{chunk-RIKBJLS2.cjs → chunk-MCSJFWAO.cjs} +1356 -208
  39. package/dist/chunk-MCSJFWAO.cjs.map +1 -0
  40. package/dist/chunk-MKA3AHLV.cjs +256 -0
  41. package/dist/chunk-MKA3AHLV.cjs.map +1 -0
  42. package/dist/chunk-OLZJXL4R.cjs +749 -0
  43. package/dist/chunk-OLZJXL4R.cjs.map +1 -0
  44. package/dist/chunk-OXSV64JX.js +689 -0
  45. package/dist/chunk-OXSV64JX.js.map +1 -0
  46. package/dist/chunk-P3RQ5UJE.cjs +689 -0
  47. package/dist/chunk-P3RQ5UJE.cjs.map +1 -0
  48. package/dist/chunk-P6ODPZ4W.js +256 -0
  49. package/dist/chunk-P6ODPZ4W.js.map +1 -0
  50. package/dist/chunk-PGNZKFQS.js +685 -0
  51. package/dist/chunk-PGNZKFQS.js.map +1 -0
  52. package/dist/chunk-PL4JB3BF.cjs +1 -0
  53. package/dist/chunk-PL4JB3BF.cjs.map +1 -0
  54. package/dist/{chunk-GVSMRPHB.cjs → chunk-SBCZ6RN5.cjs} +1568 -104
  55. package/dist/chunk-SBCZ6RN5.cjs.map +1 -0
  56. package/dist/{chunk-CL37JGFW.cjs → chunk-SML64VJG.cjs} +4 -4
  57. package/dist/{chunk-CL37JGFW.cjs.map → chunk-SML64VJG.cjs.map} +1 -1
  58. package/dist/chunk-TNNJXF46.cjs +115 -0
  59. package/dist/chunk-TNNJXF46.cjs.map +1 -0
  60. package/dist/chunk-U5HZSFCS.js +131 -0
  61. package/dist/chunk-U5HZSFCS.js.map +1 -0
  62. package/dist/{chunk-K3R5NG2D.js → chunk-U5KWZU4X.js} +251 -128
  63. package/dist/chunk-U5KWZU4X.js.map +1 -0
  64. package/dist/chunk-XNORY7M6.cjs +685 -0
  65. package/dist/chunk-XNORY7M6.cjs.map +1 -0
  66. package/dist/commands/index.d.cts +5 -353
  67. package/dist/commands/index.d.ts +5 -353
  68. package/dist/comment-store-BEMgVlAA.d.cts +135 -0
  69. package/dist/comment-store-BEMgVlAA.d.ts +135 -0
  70. package/dist/compare/index.cjs +15 -0
  71. package/dist/compare/index.cjs.map +1 -0
  72. package/dist/compare/index.d.cts +58 -0
  73. package/dist/compare/index.d.ts +58 -0
  74. package/dist/compare/index.js +15 -0
  75. package/dist/compare/index.js.map +1 -0
  76. package/dist/{controller-pePCJLT1.d.cts → controller-BhLLAoi8.d.cts} +45 -4
  77. package/dist/{controller-pePCJLT1.d.ts → controller-BhLLAoi8.d.ts} +45 -4
  78. package/dist/documents-BQjzJNe2.d.ts +76 -0
  79. package/dist/documents-KRTPhvst.d.cts +76 -0
  80. package/dist/extensions/index.cjs +53 -5
  81. package/dist/extensions/index.cjs.map +1 -1
  82. package/dist/extensions/index.d.cts +7 -3
  83. package/dist/extensions/index.d.ts +7 -3
  84. package/dist/extensions/index.js +52 -4
  85. package/dist/generation/index.cjs +1373 -0
  86. package/dist/generation/index.cjs.map +1 -0
  87. package/dist/generation/index.d.cts +554 -0
  88. package/dist/generation/index.d.ts +554 -0
  89. package/dist/generation/index.js +1373 -0
  90. package/dist/generation/index.js.map +1 -0
  91. package/dist/grammar/index.cjs +48 -3
  92. package/dist/grammar/index.cjs.map +1 -1
  93. package/dist/grammar/index.d.cts +322 -100
  94. package/dist/grammar/index.d.ts +322 -100
  95. package/dist/grammar/index.js +54 -9
  96. package/dist/image-editor/index.cjs +1831 -30
  97. package/dist/image-editor/index.cjs.map +1 -1
  98. package/dist/image-editor/index.d.cts +590 -3
  99. package/dist/image-editor/index.d.ts +590 -3
  100. package/dist/image-editor/index.js +1807 -6
  101. package/dist/image-editor/index.js.map +1 -1
  102. package/dist/{index-CCr_z9kF.d.cts → index-BhJBSm2d.d.cts} +370 -4
  103. package/dist/{index-Ck6ajwXh.d.ts → index-fJrlkJCd.d.ts} +370 -4
  104. package/dist/index.cjs +162 -25
  105. package/dist/index.cjs.map +1 -1
  106. package/dist/index.d.cts +14 -8
  107. package/dist/index.d.ts +14 -8
  108. package/dist/index.js +174 -37
  109. package/dist/index.js.map +1 -1
  110. package/dist/migrate-iTlm3a8h.d.cts +112 -0
  111. package/dist/migrate-iTlm3a8h.d.ts +112 -0
  112. package/dist/persistence/index.cjs +676 -0
  113. package/dist/persistence/index.cjs.map +1 -0
  114. package/dist/persistence/index.d.cts +347 -0
  115. package/dist/persistence/index.d.ts +347 -0
  116. package/dist/persistence/index.js +676 -0
  117. package/dist/persistence/index.js.map +1 -0
  118. package/dist/{registry-D5-R90p0.d.cts → registry-BDe-vlv3.d.ts} +2 -40
  119. package/dist/registry-D32LpIc4.d.cts +354 -0
  120. package/dist/{registry-D5-R90p0.d.ts → registry-DnzpgY27.d.cts} +2 -40
  121. package/dist/registry-evKTP4ls.d.ts +354 -0
  122. package/dist/schema-DYDGdYL9.d.cts +41 -0
  123. package/dist/schema-DYDGdYL9.d.ts +41 -0
  124. package/dist/serializers/index.cjs +4 -3
  125. package/dist/serializers/index.cjs.map +1 -1
  126. package/dist/serializers/index.d.cts +2 -1
  127. package/dist/serializers/index.d.ts +2 -1
  128. package/dist/serializers/index.js +3 -2
  129. package/dist/sourcemap-C8AH3MBQ.d.cts +91 -0
  130. package/dist/sourcemap-DA1Evhrv.d.ts +91 -0
  131. package/dist/spreadsheet/index.cjs +37 -3
  132. package/dist/spreadsheet/index.cjs.map +1 -1
  133. package/dist/spreadsheet/index.d.cts +188 -17
  134. package/dist/spreadsheet/index.d.ts +188 -17
  135. package/dist/spreadsheet/index.js +43 -9
  136. package/dist/{tokens-CyLZmIei.d.cts → tokens-D7yXvUU6.d.cts} +15 -2
  137. package/dist/{tokens-CyLZmIei.d.ts → tokens-D7yXvUU6.d.ts} +15 -2
  138. package/dist/{track-changes-BSF58RK0.d.ts → track-changes-BK5sVf4_.d.cts} +18 -136
  139. package/dist/{track-changes-BSF58RK0.d.cts → track-changes-CDjCrwKe.d.ts} +18 -136
  140. package/package.json +16 -1
  141. package/dist/chunk-4SUNJZWB.cjs.map +0 -1
  142. package/dist/chunk-AA4ZEVCC.cjs.map +0 -1
  143. package/dist/chunk-AXV2ZW34.cjs +0 -118
  144. package/dist/chunk-AXV2ZW34.cjs.map +0 -1
  145. package/dist/chunk-B2ZRLN4S.js +0 -118
  146. package/dist/chunk-B2ZRLN4S.js.map +0 -1
  147. package/dist/chunk-GVSMRPHB.cjs.map +0 -1
  148. package/dist/chunk-K3R5NG2D.js.map +0 -1
  149. package/dist/chunk-MJZBNWG7.js.map +0 -1
  150. package/dist/chunk-OYXSKQFR.js.map +0 -1
  151. package/dist/chunk-QBJ22YZR.js.map +0 -1
  152. package/dist/chunk-QGHGJ56O.js.map +0 -1
  153. package/dist/chunk-RIKBJLS2.cjs.map +0 -1
  154. package/dist/chunk-XDMXXC4Z.cjs.map +0 -1
  155. /package/dist/{chunk-JJDLPEWL.js.map → chunk-3LV6RRPH.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/index.cjs","../src/controller.ts","../src/import/controller.ts","../src/import/pdf.ts","../src/import/zip-export.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AC,CAAA;AACD,UAAA,MAAM,MAAA,EAAQ,aAAA,CAAc,IAAI,CAAA;AAChC,UAAA,GAAA,CAAI,OAAA,CAAQ,SAAA,IAAa,KAAA,EAAO;AAC9B,YAAA,KAAA,GAAQ,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,EAAI,0CAAA,KAAgB,CAAC,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,CAAA;AAClD,YAAA,KAAA,GAAQ,CAAA,EAAA;AAA2B;AAC1B,UAAA;AACD,YAAA;AACV,UAAA;AACQ,UAAA;AACA,UAAA;AACG,UAAA;AACJ,QAAA;AAED,UAAA;AACF,UAAA;AACI,UAAA;AACV,QAAA;AACF,MAAA;AACW,MAAA;AACC,QAAA;AACE,UAAA;AACX,QAAA;AACH,MAAA;AACe,MAAA;AACjB,IAAA;AACF,EAAA;AACF;AAGa;AJ4jBQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/editor/editor/packages/core/dist/index.cjs","sourcesContent":[null,"import { Editor, EditorOptions, Content, Extensions } from \"@tiptap/core\";\nimport { Slice } from \"@tiptap/pm/model\";\nimport { Token, tokenizePrompt } from \"./grammar\";\nimport {\n plainTextToTipTapHtml,\n plainTextToSlice,\n getEditorText,\n markdownToTipTapHtml,\n getEditorMarkdown,\n} from \"./serializers\";\n\nexport interface EditorControllerOptions extends Partial<\n Omit<EditorOptions, \"element\" | \"content\">\n> {\n element?: Element | HTMLElement | null;\n content?: string | Content;\n plainTextMode?: boolean;\n markdownMode?: boolean;\n extensions?: Extensions;\n onPlainTextChange?: (text: string) => void;\n onMarkdownChange?: (markdown: string) => void;\n onTokensChange?: (tokens: Token[]) => void;\n onSelectionChange?: (range: { from: number; to: number } | null) => void;\n}\n\n/**\n * UI-agnostic controller managing the lifecycle, commands, and plain-text/token\n * synchronization of a rich text or prompt editor.\n */\nexport class EditorController {\n public readonly editor: Editor;\n private readonly plainTextMode: boolean;\n private readonly markdownMode: boolean;\n private readonly onPlainTextChange?: (text: string) => void;\n private readonly onMarkdownChange?: (markdown: string) => void;\n private readonly onTokensChange?: (tokens: Token[]) => void;\n private readonly onSelectionChange?: (\n range: { from: number; to: number } | null,\n ) => void;\n private baselineContent: string;\n\n constructor(options: EditorControllerOptions = {}) {\n const {\n element,\n content,\n plainTextMode = false,\n markdownMode = false,\n extensions = [],\n onPlainTextChange,\n onMarkdownChange,\n onTokensChange,\n onSelectionChange,\n ...editorOptions\n } = options;\n\n this.plainTextMode = plainTextMode;\n this.markdownMode = markdownMode;\n this.onPlainTextChange = onPlainTextChange;\n this.onMarkdownChange = onMarkdownChange;\n this.onTokensChange = onTokensChange;\n this.onSelectionChange = onSelectionChange;\n\n const initialContent =\n plainTextMode && typeof content === \"string\"\n ? plainTextToTipTapHtml(content)\n : markdownMode && typeof content === \"string\"\n ? markdownToTipTapHtml(content)\n : content;\n\n this.editor = new Editor({\n element: element || undefined,\n content: initialContent,\n extensions,\n ...editorOptions,\n onUpdate: (props) => {\n editorOptions.onUpdate?.(props);\n this.handleUpdate();\n },\n onSelectionUpdate: (props) => {\n editorOptions.onSelectionUpdate?.(props);\n this.handleSelectionUpdate();\n },\n });\n\n if (plainTextMode) {\n this.enforcePlainTextClipboard();\n }\n\n this.baselineContent = this.getCurrentContentString();\n }\n\n private enforcePlainTextClipboard() {\n // Opt-in rich clipboard / file import must not bypass the plain-text invariant.\n const richClipboard = this.editor.storage?.richClipboard;\n if (richClipboard) richClipboard.plainTextMode = true;\n const fileImport = this.editor.extensionManager?.extensions.find(\n (ext) => ext.name === \"fileImport\",\n );\n if (fileImport) fileImport.options.asPlainText = true;\n\n this.editor.setOptions({\n editorProps: {\n ...this.editor.options.editorProps,\n clipboardTextParser: (\n text: string,\n context: any,\n _plain: boolean,\n view?: any,\n ) => {\n const schema =\n context?.doc?.type?.schema ||\n context?.schema ||\n view?.state?.schema ||\n this.editor.schema;\n\n if (!schema) return Slice.empty;\n\n return plainTextToSlice(text, schema);\n },\n },\n });\n }\n\n private handleUpdate() {\n if (this.plainTextMode || this.onPlainTextChange || this.onTokensChange) {\n const text = this.getPlainText();\n this.onPlainTextChange?.(text);\n\n if (this.onTokensChange) {\n const tokens = tokenizePrompt(text);\n this.onTokensChange(tokens);\n }\n }\n\n if (this.markdownMode || this.onMarkdownChange) {\n const markdown = this.getMarkdown();\n this.onMarkdownChange?.(markdown);\n }\n }\n\n private handleSelectionUpdate() {\n if (this.onSelectionChange) {\n const { from, to } = this.editor.state.selection;\n this.onSelectionChange({ from, to });\n }\n }\n\n public getPlainText(): string {\n return getEditorText(this.editor);\n }\n\n public setPlainText(text: string, emitUpdate = true) {\n const html = plainTextToTipTapHtml(text);\n this.editor.commands.setContent(html, emitUpdate);\n }\n\n public getMarkdown(): string {\n return getEditorMarkdown(this.editor);\n }\n\n public setMarkdown(markdown: string, emitUpdate = true) {\n if (this.editor.storage?.markdown?.parser) {\n this.editor.commands.setContent(markdown, emitUpdate);\n } else {\n const html = markdownToTipTapHtml(markdown);\n this.editor.commands.setContent(html, emitUpdate);\n }\n }\n\n /**\n * Replaces `from`..`to` with literal text: HTML in `text` is not parsed, and\n * newlines split paragraphs.\n */\n private insertPlainText(from: number, to: number, text: string) {\n const { state, view } = this.editor;\n const tr = text.includes(\"\\n\") || text.includes(\"\\r\")\n ? state.tr.replace(from, to, plainTextToSlice(text, state.schema))\n : text\n ? state.tr.insertText(text, from, to)\n : state.tr.delete(from, to);\n view.dispatch(tr.scrollIntoView());\n }\n\n /** Inserts text literally at the selection; HTML in `text` is not parsed. */\n public insertText(text: string) {\n const { from, to } = this.editor.state.selection;\n this.insertPlainText(from, to, text);\n }\n\n /** Inserts text literally at `pos`; HTML in `text` is not parsed. */\n public insertTextAt(pos: number, text: string) {\n this.insertPlainText(pos, pos, text);\n this.editor.commands.focus();\n }\n\n /** Replaces a range with literal text; HTML in `text` is not parsed. */\n public replaceRange(from: number, to: number, text: string) {\n this.insertPlainText(from, to, text);\n this.editor.commands.focus();\n }\n\n public getCurrentContentString(): string {\n if (this.plainTextMode) return this.getPlainText();\n if (this.markdownMode) return this.getMarkdown();\n return this.editor.getHTML();\n }\n\n public isDirty(): boolean {\n return this.getCurrentContentString() !== this.baselineContent;\n }\n\n public setCheckpoint(content?: string): void {\n this.baselineContent =\n content !== undefined ? content : this.getCurrentContentString();\n }\n\n public resetDirty(): void {\n this.setCheckpoint();\n }\n\n public getBaselineContent(): string {\n return this.baselineContent;\n }\n\n public destroy() {\n this.editor.destroy();\n }\n}\n\n/**\n * Creates and initializes an EditorController instance.\n */\nexport function createEditor(\n options: EditorControllerOptions = {},\n): EditorController {\n return new EditorController(options);\n}\n","import { defaultImportRegistry, type DocumentImport } from \"./adapters\";\nimport {\n importFilesIntoEditor,\n type ImportEditorTarget,\n type ImportFilesIntoEditorOptions,\n} from \"./editor\";\nimport type { FileLike, ImportOutcome } from \"./registry\";\n\n/**\n * Opens the browser file picker and resolves with the chosen files (an empty\n * array when the dialog is cancelled). `accept` defaults to every extension\n * and MIME type the default registry can import as a document.\n */\nexport function pickImportFiles(options: { accept?: string; multiple?: boolean } = {}): Promise<File[]> {\n if (typeof document === \"undefined\") return Promise.resolve([]);\n return new Promise((resolve) => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = options.accept ?? defaultImportRegistry.accept(\"document\");\n input.multiple = options.multiple ?? true;\n input.style.display = \"none\";\n const finish = (files: File[]) => {\n input.remove();\n resolve(files);\n };\n input.addEventListener(\"change\", () => finish(Array.from(input.files ?? [])), { once: true });\n input.addEventListener(\"cancel\", () => finish([]), { once: true });\n document.body.appendChild(input);\n input.click();\n });\n}\n\nexport interface FileImportState {\n isImporting: boolean;\n /** Last import error (cleared when a new import starts). */\n error: Error | null;\n /** Outcomes of the most recent import. */\n lastOutcomes: ImportOutcome<DocumentImport>[];\n}\n\nexport interface FileImportControllerOptions extends Omit<ImportFilesIntoEditorOptions, \"at\"> {\n /** Allow choosing several files in the picker (default `true`). */\n multiple?: boolean;\n}\n\n/**\n * Framework-agnostic state for a file-import button: tracks `isImporting` /\n * `error`, opens the file picker and inserts the imported content into the\n * editor returned by `getTarget`. React's `useFileImport` and Svelte's\n * `createFileImport` wrap it.\n */\nexport class FileImportController {\n private state: FileImportState = { isImporting: false, error: null, lastOutcomes: [] };\n private readonly listeners = new Set<(state: FileImportState) => void>();\n private pending = 0;\n\n constructor(\n private readonly getTarget: () => ImportEditorTarget | null | undefined,\n private options: FileImportControllerOptions = {},\n ) {}\n\n setOptions(options: FileImportControllerOptions): void {\n this.options = options;\n }\n\n /** `accept` attribute value for document imports. */\n get accept(): string {\n return (this.options.registry ?? defaultImportRegistry).accept(\"document\");\n }\n\n getState = (): FileImportState => this.state;\n\n subscribe = (listener: (state: FileImportState) => void): (() => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n private setState(patch: Partial<FileImportState>) {\n this.state = { ...this.state, ...patch };\n this.listeners.forEach((listener) => listener(this.state));\n }\n\n /** Imports files into the editor at `at` (default: the selection). */\n importFiles = async (\n files: Iterable<FileLike> | ArrayLike<FileLike>,\n at?: number,\n ): Promise<ImportOutcome<DocumentImport>[]> => {\n const target = this.getTarget();\n const list = Array.from(files as ArrayLike<FileLike>);\n if (!target || list.length === 0) return [];\n this.pending++;\n this.setState({ isImporting: true, error: null });\n let error: Error | null = null;\n try {\n const outcomes = await importFilesIntoEditor(target, list, {\n ...this.options,\n at,\n onError: (err, file) => {\n error = err;\n this.options.onError?.(err, file);\n },\n });\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error, lastOutcomes: outcomes });\n return outcomes;\n } catch (err) {\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error: err instanceof Error ? err : new Error(String(err)) });\n return [];\n }\n };\n\n /** Opens the file picker and imports the chosen files at the selection. */\n openFilePicker = async (): Promise<ImportOutcome<DocumentImport>[]> => {\n const files = await pickImportFiles({ accept: this.accept, multiple: this.options.multiple });\n return this.importFiles(files);\n };\n}\n\nexport function createFileImportController(\n getTarget: () => ImportEditorTarget | null | undefined,\n options?: FileImportControllerOptions,\n): FileImportController {\n return new FileImportController(getTarget, options);\n}\n","import { plainTextToParagraphHtml } from \"../serializers/html\";\nimport type { DocumentImportAdapter } from \"./adapters\";\n\n/**\n * PDF text import through an injected pdf.js-compatible library. The editor\n * ships no PDF parser; consumers that already bundle `pdfjs-dist` register\n * the adapter themselves:\n *\n * ```ts\n * import * as pdfjs from \"pdfjs-dist\";\n * registerImportAdapter(createPdfImportAdapter(pdfjs));\n * ```\n *\n * Text items are grouped into lines by baseline (`transform[5]`) and lines\n * into paragraphs by vertical gaps larger than the page's typical line\n * spacing (or blank `hasEOL` lines). Only text is imported: no images,\n * tables, links or styling.\n */\n\n/** A text item from `page.getTextContent()` (marked-content items have no `str`). */\nexport interface PdfJsTextItem {\n str: string;\n /** `[a, b, c, d, x, y]` transform; `x` / `y` are the baseline origin. */\n transform?: readonly number[];\n width?: number;\n height?: number;\n /** pdf.js sets this when a line break follows the item. */\n hasEOL?: boolean;\n}\n\nexport interface PdfJsTextContent {\n items: ReadonlyArray<PdfJsTextItem | { type: string }>;\n}\n\nexport interface PdfJsPage {\n getTextContent(): Promise<PdfJsTextContent>;\n cleanup?(): unknown;\n}\n\nexport interface PdfJsDocument {\n numPages: number;\n getPage(pageNumber: number): Promise<PdfJsPage>;\n destroy?(): unknown;\n}\n\n/** The subset of the pdf.js API the adapter uses (`pdfjs-dist` satisfies it). */\nexport interface PdfJsLike {\n getDocument(source: { data: Uint8Array; [option: string]: unknown }): { promise: Promise<PdfJsDocument> };\n}\n\nexport interface PdfTextOptions {\n /**\n * A line gap larger than this multiple of the page's typical line spacing\n * starts a new paragraph (default `1.4`).\n */\n paragraphGap?: number;\n}\n\nexport interface PdfImportOptions extends PdfTextOptions {\n /** Adapter id (default `\"pdf\"`). */\n id?: string;\n /** Import at most this many pages (default: all). */\n maxPages?: number;\n /** Extra `getDocument` parameters, e.g. `{ disableFontFace: true }`. */\n documentParams?: Record<string, unknown>;\n}\n\ninterface Line {\n text: string;\n y: number;\n height: number;\n /** A blank line (empty `hasEOL` item) follows this one. */\n blankAfter: boolean;\n}\n\nconst isTextItem = (item: PdfJsTextItem | { type: string }): item is PdfJsTextItem =>\n typeof (item as PdfJsTextItem).str === \"string\";\n\nfunction median(values: number[]): number {\n if (!values.length) return 0;\n const sorted = [...values].sort((a, b) => a - b);\n const mid = sorted.length >> 1;\n return sorted.length % 2 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;\n}\n\nfunction groupLines(items: ReadonlyArray<PdfJsTextItem | { type: string }>): Line[] {\n const lines: Line[] = [];\n let current: (Line & { endX?: number }) | null = null;\n let breakNext = false;\n for (const item of items) {\n if (!isTextItem(item)) continue;\n const x = item.transform?.[4] ?? 0;\n const y: number = item.transform?.[5] ?? (current?.y ?? 0);\n const height: number = item.height || Math.abs(item.transform?.[3] ?? 0) || current?.height || 10;\n const tolerance = Math.max(1, height * 0.5);\n if (!item.str) {\n // Empty items mark line ends; two in a row mean a blank line.\n if (item.hasEOL) {\n if (breakNext && current) current.blankAfter = true;\n breakNext = true;\n }\n continue;\n }\n if (!current || breakNext || Math.abs(y - current.y) > tolerance) {\n current = { text: \"\", y, height, blankAfter: false };\n lines.push(current);\n } else if (current.endX !== undefined && x - current.endX > height * 0.15) {\n // A horizontal gap without an explicit space item.\n if (!/\\s$/.test(current.text) && !/^\\s/.test(item.str)) current.text += \" \";\n }\n current.text += item.str;\n current.height = Math.max(current.height, height);\n current.endX = item.width !== undefined ? x + item.width : undefined;\n breakNext = !!item.hasEOL;\n }\n return lines;\n}\n\n/**\n * Groups one page's pdf.js text items into paragraphs. Exposed for custom\n * adapters and tests.\n */\nexport function pdfTextItemsToParagraphs(\n items: ReadonlyArray<PdfJsTextItem | { type: string }>,\n options: PdfTextOptions = {},\n): string[] {\n const lines = groupLines(items).filter((line) => line.text.trim() || line.blankAfter);\n const gaps: number[] = [];\n for (let i = 1; i < lines.length; i++) {\n const gap = lines[i - 1].y - lines[i].y;\n if (gap > 0) gaps.push(gap);\n }\n const typical = median(gaps);\n const factor = options.paragraphGap ?? 1.4;\n\n const paragraphs: string[] = [];\n let current: string[] = [];\n const flush = () => {\n const text = current.join(\" \").replace(/\\s+/g, \" \").trim();\n if (text) paragraphs.push(text);\n current = [];\n };\n lines.forEach((line, i) => {\n if (i > 0) {\n const prev = lines[i - 1];\n const gap = prev.y - line.y;\n const bigGap = typical > 0 ? gap > typical * factor : gap > prev.height * 1.8;\n // A line above the previous one (gap < 0) starts a new column or block.\n if (prev.blankAfter || bigGap || gap < -prev.height * 0.5) flush();\n }\n const text = line.text.trim();\n if (!text) return;\n if (current.length && /\\w-$/.test(current[current.length - 1]) && /^[a-z]/.test(text)) {\n // Re-join words hyphenated across lines.\n current[current.length - 1] = current[current.length - 1].slice(0, -1) + text;\n } else {\n current.push(text);\n }\n });\n flush();\n return paragraphs;\n}\n\n/** Creates a PDF `document` adapter backed by an injected pdf.js-compatible library. */\nexport function createPdfImportAdapter(pdfjs: PdfJsLike, options: PdfImportOptions = {}): DocumentImportAdapter {\n return {\n id: options.id ?? \"pdf\",\n label: \"PDF\",\n mimeTypes: [\"application/pdf\"],\n extensions: [\".pdf\"],\n target: \"document\",\n async import(_input, context) {\n // pdf.js may transfer (detach) the buffer it receives, so pass a copy.\n const data = new Uint8Array((await context.readArrayBuffer()).slice(0));\n const doc = await pdfjs.getDocument({ ...options.documentParams, data }).promise;\n const paragraphs: string[] = [];\n try {\n const pages = Math.min(doc.numPages, options.maxPages ?? Infinity);\n for (let n = 1; n <= pages; n++) {\n const page = await doc.getPage(n);\n const content = await page.getTextContent();\n paragraphs.push(...pdfTextItemsToParagraphs(content.items, options));\n page.cleanup?.();\n }\n } finally {\n await doc.destroy?.();\n }\n const text = paragraphs.join(\"\\n\");\n return { html: plainTextToParagraphHtml(text), text };\n },\n };\n}\n","import { escapeHtml } from \"../serializers/plain-text\";\nimport { defaultImportRegistry, type DocumentImport, type DocumentImportAdapter } from \"./adapters\";\nimport { ImportError, type ImportAdapterRegistry } from \"./registry\";\nimport { readZip, type ZipReadOptions } from \"./zip\";\n\n/**\n * Zipped document exports (Notion, Confluence, Obsidian, static-site dumps):\n * a `.zip` of markdown / HTML / text / DOCX files. Each entry is imported\n * with the registry's other `document` adapters and the results are\n * concatenated, with a heading per file.\n *\n * Not registered by default: `.zip` is a generic container, and claiming\n * every dropped archive as a document would steal drops from other handlers\n * (e.g. attachment uploads). Opt in with\n * `registerImportAdapter(zipImportAdapter)`.\n */\n\nexport interface ZipDocumentImport extends DocumentImport {\n /** Imported entries in document order, with the adapter that handled each. */\n files: { name: string; adapterId: string }[];\n /** Entries that were left out, with the reason. */\n skipped: { name: string; reason: string }[];\n}\n\nexport interface ZipImportOptions {\n /** Adapter id (default `\"zip\"`). */\n id?: string;\n /**\n * Registry used for the entries. Defaults to the registry running the\n * import (`context.registry`), then the default registry.\n */\n registry?: ImportAdapterRegistry;\n /** Add a heading with each file's title before its content (default `true`). */\n headings?: boolean;\n /** Heading level for file titles (default `2`). */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Import at most this many files (default 500); the rest are reported as skipped. */\n maxFiles?: number;\n /** Archive limits (default: 100 MiB extracted, 5 000 entries). */\n zip?: ZipReadOptions;\n}\n\nconst INDEX_NAMES = /^(index|readme|home|_index|start)$/i;\n\nconst baseName = (path: string) => path.slice(path.lastIndexOf(\"/\") + 1);\nconst stem = (name: string) => name.replace(/\\.[^./]+$/, \"\");\n\n/** File title: the name without extension, path or a trailing Notion-style id. */\nexport function zipEntryTitle(path: string): string {\n const title = stem(baseName(path))\n .replace(/\\s+[0-9a-f]{32}$/i, \"\")\n .replace(/[_]+/g, \" \")\n .trim();\n return title || baseName(path);\n}\n\n/**\n * Orders entries for import: index / README files first (shallowest first),\n * then by path with natural number ordering (`2` before `10`).\n */\nexport function sortZipEntryNames(names: readonly string[]): string[] {\n const isIndex = (name: string) => INDEX_NAMES.test(stem(baseName(name)));\n const depth = (name: string) => name.split(\"/\").length;\n return [...names].sort((a, b) => {\n const ai = isIndex(a);\n const bi = isIndex(b);\n if (ai !== bi) return ai ? -1 : 1;\n if (ai && bi && depth(a) !== depth(b)) return depth(a) - depth(b);\n return a.localeCompare(b, undefined, { numeric: true, sensitivity: \"base\" });\n });\n}\n\nconst isJunk = (name: string) =>\n name.startsWith(\"__MACOSX/\") || name.split(\"/\").some((segment) => segment.startsWith(\".\"));\n\n/** Creates a `document` adapter for zipped exports. */\nexport function createZipImportAdapter(options: ZipImportOptions = {}): DocumentImportAdapter {\n const id = options.id ?? \"zip\";\n return {\n id,\n label: \"Zipped documents\",\n mimeTypes: [\"application/zip\", \"application/x-zip-compressed\"],\n extensions: [\".zip\"],\n target: \"document\",\n async import(_input, context): Promise<ZipDocumentImport> {\n const registry = options.registry ?? context.registry ?? defaultImportRegistry;\n const zip = await readZip(await context.readArrayBuffer(), {\n maxTotalSize: 100 * 1024 * 1024,\n maxEntries: 5_000,\n ...options.zip,\n });\n const maxFiles = options.maxFiles ?? 500;\n const level = options.headingLevel ?? 2;\n const files: ZipDocumentImport[\"files\"] = [];\n const skipped: ZipDocumentImport[\"skipped\"] = [];\n let html = \"\";\n let text = \"\";\n\n const names = zip.entries.filter((entry) => !entry.isDirectory).map((entry) => entry.name);\n for (const name of sortZipEntryNames(names)) {\n if (isJunk(name)) continue;\n const adapter = registry.find({ fileName: name, target: \"document\" });\n if (!adapter) {\n skipped.push({ name, reason: \"unsupported type\" });\n continue;\n }\n if (adapter.id === id || adapter.extensions.some((ext) => ext.toLowerCase() === \".zip\")) {\n skipped.push({ name, reason: \"nested archive\" });\n continue;\n }\n if (files.length >= maxFiles) {\n skipped.push({ name, reason: \"file limit reached\" });\n continue;\n }\n try {\n const outcome = await registry.importFile<DocumentImport>(await zip.read(name), {\n fileName: name,\n adapterId: adapter.id,\n });\n const title = zipEntryTitle(name);\n if (options.headings !== false) {\n html += `<h${level}>${escapeHtml(title)}</h${level}>`;\n text += `${text ? \"\\n\" : \"\"}${title}\\n`;\n } else if (text) {\n text += \"\\n\";\n }\n html += outcome.result.html.trim();\n text += outcome.result.text;\n files.push({ name, adapterId: adapter.id });\n } catch (error) {\n // Archive-wide limits stop the whole import; other failures skip the entry.\n const code = (error as { code?: string })?.code;\n if (code === \"too_large\") throw error;\n skipped.push({ name, reason: error instanceof Error ? error.message : String(error) });\n }\n }\n if (!files.length) {\n throw new ImportError(\"invalid_file\", \"The archive contains no importable documents.\", {\n fileName: context.fileName,\n });\n }\n return { html, text, files, skipped };\n },\n };\n}\n\n/** Zipped-export adapter with default options. Opt in with `registerImportAdapter(zipImportAdapter)`. */\nexport const zipImportAdapter: DocumentImportAdapter = createZipImportAdapter();\n"]}
1
+ {"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/index.cjs","../src/controller.ts","../src/import/controller.ts","../src/import/pdf.ts","../src/import/zip-export.ts"],"names":[],"mappings":"AAAA,6tBAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;AC5WA,oCAA2D;AAC3D,yCAAsB;AA4Bf,IAAM,iBAAA,EAAN,MAAuB;AAAA,EACZ;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGT;AAAA,EAER,WAAA,CAAY,QAAA,EAAmC,CAAC,CAAA,EAAG;AACjD,IAAA,MAAM;AAAA,MACJ,OAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA,EAAgB,KAAA;AAAA,MAChB,aAAA,EAAe,KAAA;AAAA,MACf,WAAA,EAAa,CAAC,CAAA;AAAA,MACd,iBAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,iBAAA;AAAA,MACA,GAAG;AAAA,IACL,EAAA,EAAI,OAAA;AAEJ,IAAA,IAAA,CAAK,cAAA,EAAgB,aAAA;AACrB,IAAA,IAAA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/editor/editor/packages/core/dist/index.cjs","sourcesContent":[null,"import { Editor, EditorOptions, Content, Extensions } from \"@tiptap/core\";\nimport { Slice } from \"@tiptap/pm/model\";\nimport { Token, tokenizePrompt } from \"./grammar\";\nimport {\n plainTextToTipTapHtml,\n plainTextToSlice,\n getEditorText,\n markdownToTipTapHtml,\n getEditorMarkdown,\n} from \"./serializers\";\n\nexport interface EditorControllerOptions extends Partial<\n Omit<EditorOptions, \"element\" | \"content\">\n> {\n element?: Element | HTMLElement | null;\n content?: string | Content;\n plainTextMode?: boolean;\n markdownMode?: boolean;\n extensions?: Extensions;\n onPlainTextChange?: (text: string) => void;\n onMarkdownChange?: (markdown: string) => void;\n onTokensChange?: (tokens: Token[]) => void;\n onSelectionChange?: (range: { from: number; to: number } | null) => void;\n}\n\n/**\n * UI-agnostic controller managing the lifecycle, commands, and plain-text/token\n * synchronization of a rich text or prompt editor.\n */\nexport class EditorController {\n public readonly editor: Editor;\n private readonly plainTextMode: boolean;\n private readonly markdownMode: boolean;\n private readonly onPlainTextChange?: (text: string) => void;\n private readonly onMarkdownChange?: (markdown: string) => void;\n private readonly onTokensChange?: (tokens: Token[]) => void;\n private readonly onSelectionChange?: (\n range: { from: number; to: number } | null,\n ) => void;\n private baselineContent: string;\n\n constructor(options: EditorControllerOptions = {}) {\n const {\n element,\n content,\n plainTextMode = false,\n markdownMode = false,\n extensions = [],\n onPlainTextChange,\n onMarkdownChange,\n onTokensChange,\n onSelectionChange,\n ...editorOptions\n } = options;\n\n this.plainTextMode = plainTextMode;\n this.markdownMode = markdownMode;\n this.onPlainTextChange = onPlainTextChange;\n this.onMarkdownChange = onMarkdownChange;\n this.onTokensChange = onTokensChange;\n this.onSelectionChange = onSelectionChange;\n\n const initialContent =\n plainTextMode && typeof content === \"string\"\n ? plainTextToTipTapHtml(content)\n : markdownMode && typeof content === \"string\"\n ? markdownToTipTapHtml(content)\n : content;\n\n this.editor = new Editor({\n element: element || undefined,\n content: initialContent,\n extensions,\n ...editorOptions,\n onUpdate: (props) => {\n editorOptions.onUpdate?.(props);\n this.handleUpdate();\n },\n onSelectionUpdate: (props) => {\n editorOptions.onSelectionUpdate?.(props);\n this.handleSelectionUpdate();\n },\n });\n\n if (plainTextMode) {\n this.enforcePlainTextClipboard();\n }\n\n this.baselineContent = this.getCurrentContentString();\n }\n\n private enforcePlainTextClipboard() {\n // Opt-in rich clipboard / file import must not bypass the plain-text invariant.\n const richClipboard = this.editor.storage?.richClipboard;\n if (richClipboard) richClipboard.plainTextMode = true;\n const fileImport = this.editor.extensionManager?.extensions.find(\n (ext) => ext.name === \"fileImport\",\n );\n if (fileImport) fileImport.options.asPlainText = true;\n\n this.editor.setOptions({\n editorProps: {\n ...this.editor.options.editorProps,\n clipboardTextParser: (\n text: string,\n context: any,\n _plain: boolean,\n view?: any,\n ) => {\n const schema =\n context?.doc?.type?.schema ||\n context?.schema ||\n view?.state?.schema ||\n this.editor.schema;\n\n if (!schema) return Slice.empty;\n\n return plainTextToSlice(text, schema);\n },\n },\n });\n }\n\n private handleUpdate() {\n if (this.plainTextMode || this.onPlainTextChange || this.onTokensChange) {\n const text = this.getPlainText();\n this.onPlainTextChange?.(text);\n\n if (this.onTokensChange) {\n const tokens = tokenizePrompt(text);\n this.onTokensChange(tokens);\n }\n }\n\n if (this.markdownMode || this.onMarkdownChange) {\n const markdown = this.getMarkdown();\n this.onMarkdownChange?.(markdown);\n }\n }\n\n private handleSelectionUpdate() {\n if (this.onSelectionChange) {\n const { from, to } = this.editor.state.selection;\n this.onSelectionChange({ from, to });\n }\n }\n\n public getPlainText(): string {\n return getEditorText(this.editor);\n }\n\n public setPlainText(text: string, emitUpdate = true) {\n const html = plainTextToTipTapHtml(text);\n this.editor.commands.setContent(html, emitUpdate);\n }\n\n public getMarkdown(): string {\n return getEditorMarkdown(this.editor);\n }\n\n public setMarkdown(markdown: string, emitUpdate = true) {\n if (this.editor.storage?.markdown?.parser) {\n this.editor.commands.setContent(markdown, emitUpdate);\n } else {\n const html = markdownToTipTapHtml(markdown);\n this.editor.commands.setContent(html, emitUpdate);\n }\n }\n\n /**\n * Replaces `from`..`to` with literal text: HTML in `text` is not parsed, and\n * newlines split paragraphs.\n */\n private insertPlainText(from: number, to: number, text: string) {\n const { state, view } = this.editor;\n const tr = text.includes(\"\\n\") || text.includes(\"\\r\")\n ? state.tr.replace(from, to, plainTextToSlice(text, state.schema))\n : text\n ? state.tr.insertText(text, from, to)\n : state.tr.delete(from, to);\n view.dispatch(tr.scrollIntoView());\n }\n\n /** Inserts text literally at the selection; HTML in `text` is not parsed. */\n public insertText(text: string) {\n const { from, to } = this.editor.state.selection;\n this.insertPlainText(from, to, text);\n }\n\n /** Inserts text literally at `pos`; HTML in `text` is not parsed. */\n public insertTextAt(pos: number, text: string) {\n this.insertPlainText(pos, pos, text);\n this.editor.commands.focus();\n }\n\n /** Replaces a range with literal text; HTML in `text` is not parsed. */\n public replaceRange(from: number, to: number, text: string) {\n this.insertPlainText(from, to, text);\n this.editor.commands.focus();\n }\n\n public getCurrentContentString(): string {\n if (this.plainTextMode) return this.getPlainText();\n if (this.markdownMode) return this.getMarkdown();\n return this.editor.getHTML();\n }\n\n public isDirty(): boolean {\n return this.getCurrentContentString() !== this.baselineContent;\n }\n\n public setCheckpoint(content?: string): void {\n this.baselineContent =\n content !== undefined ? content : this.getCurrentContentString();\n }\n\n public resetDirty(): void {\n this.setCheckpoint();\n }\n\n public getBaselineContent(): string {\n return this.baselineContent;\n }\n\n public destroy() {\n this.editor.destroy();\n }\n}\n\n/**\n * Creates and initializes an EditorController instance.\n */\nexport function createEditor(\n options: EditorControllerOptions = {},\n): EditorController {\n return new EditorController(options);\n}\n","import { defaultImportRegistry, type DocumentImport } from \"./adapters\";\nimport {\n importFilesIntoEditor,\n type ImportEditorTarget,\n type ImportFilesIntoEditorOptions,\n} from \"./editor\";\nimport type { FileLike, ImportOutcome } from \"./registry\";\n\n/**\n * Opens the browser file picker and resolves with the chosen files (an empty\n * array when the dialog is cancelled). `accept` defaults to every extension\n * and MIME type the default registry can import as a document.\n */\nexport function pickImportFiles(options: { accept?: string; multiple?: boolean } = {}): Promise<File[]> {\n if (typeof document === \"undefined\") return Promise.resolve([]);\n return new Promise((resolve) => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = options.accept ?? defaultImportRegistry.accept(\"document\");\n input.multiple = options.multiple ?? true;\n input.style.display = \"none\";\n const finish = (files: File[]) => {\n input.remove();\n resolve(files);\n };\n input.addEventListener(\"change\", () => finish(Array.from(input.files ?? [])), { once: true });\n input.addEventListener(\"cancel\", () => finish([]), { once: true });\n document.body.appendChild(input);\n input.click();\n });\n}\n\nexport interface FileImportState {\n isImporting: boolean;\n /** Last import error (cleared when a new import starts). */\n error: Error | null;\n /** Outcomes of the most recent import. */\n lastOutcomes: ImportOutcome<DocumentImport>[];\n}\n\nexport interface FileImportControllerOptions extends Omit<ImportFilesIntoEditorOptions, \"at\"> {\n /** Allow choosing several files in the picker (default `true`). */\n multiple?: boolean;\n}\n\n/**\n * Framework-agnostic state for a file-import button: tracks `isImporting` /\n * `error`, opens the file picker and inserts the imported content into the\n * editor returned by `getTarget`. React's `useFileImport` and Svelte's\n * `createFileImport` wrap it.\n */\nexport class FileImportController {\n private state: FileImportState = { isImporting: false, error: null, lastOutcomes: [] };\n private readonly listeners = new Set<(state: FileImportState) => void>();\n private pending = 0;\n\n constructor(\n private readonly getTarget: () => ImportEditorTarget | null | undefined,\n private options: FileImportControllerOptions = {},\n ) {}\n\n setOptions(options: FileImportControllerOptions): void {\n this.options = options;\n }\n\n /** `accept` attribute value for document imports. */\n get accept(): string {\n return (this.options.registry ?? defaultImportRegistry).accept(\"document\");\n }\n\n getState = (): FileImportState => this.state;\n\n subscribe = (listener: (state: FileImportState) => void): (() => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n private setState(patch: Partial<FileImportState>) {\n this.state = { ...this.state, ...patch };\n this.listeners.forEach((listener) => listener(this.state));\n }\n\n /** Imports files into the editor at `at` (default: the selection). */\n importFiles = async (\n files: Iterable<FileLike> | ArrayLike<FileLike>,\n at?: number,\n ): Promise<ImportOutcome<DocumentImport>[]> => {\n const target = this.getTarget();\n const list = Array.from(files as ArrayLike<FileLike>);\n if (!target || list.length === 0) return [];\n this.pending++;\n this.setState({ isImporting: true, error: null });\n let error: Error | null = null;\n try {\n const outcomes = await importFilesIntoEditor(target, list, {\n ...this.options,\n at,\n onError: (err, file) => {\n error = err;\n this.options.onError?.(err, file);\n },\n });\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error, lastOutcomes: outcomes });\n return outcomes;\n } catch (err) {\n this.pending--;\n this.setState({ isImporting: this.pending > 0, error: err instanceof Error ? err : new Error(String(err)) });\n return [];\n }\n };\n\n /** Opens the file picker and imports the chosen files at the selection. */\n openFilePicker = async (): Promise<ImportOutcome<DocumentImport>[]> => {\n const files = await pickImportFiles({ accept: this.accept, multiple: this.options.multiple });\n return this.importFiles(files);\n };\n}\n\nexport function createFileImportController(\n getTarget: () => ImportEditorTarget | null | undefined,\n options?: FileImportControllerOptions,\n): FileImportController {\n return new FileImportController(getTarget, options);\n}\n","import { plainTextToParagraphHtml } from \"../serializers/html\";\nimport type { DocumentImportAdapter } from \"./adapters\";\n\n/**\n * PDF text import through an injected pdf.js-compatible library. The editor\n * ships no PDF parser; consumers that already bundle `pdfjs-dist` register\n * the adapter themselves:\n *\n * ```ts\n * import * as pdfjs from \"pdfjs-dist\";\n * registerImportAdapter(createPdfImportAdapter(pdfjs));\n * ```\n *\n * Text items are grouped into lines by baseline (`transform[5]`) and lines\n * into paragraphs by vertical gaps larger than the page's typical line\n * spacing (or blank `hasEOL` lines). Only text is imported: no images,\n * tables, links or styling.\n */\n\n/** A text item from `page.getTextContent()` (marked-content items have no `str`). */\nexport interface PdfJsTextItem {\n str: string;\n /** `[a, b, c, d, x, y]` transform; `x` / `y` are the baseline origin. */\n transform?: readonly number[];\n width?: number;\n height?: number;\n /** pdf.js sets this when a line break follows the item. */\n hasEOL?: boolean;\n}\n\nexport interface PdfJsTextContent {\n items: ReadonlyArray<PdfJsTextItem | { type: string }>;\n}\n\nexport interface PdfJsPage {\n getTextContent(): Promise<PdfJsTextContent>;\n cleanup?(): unknown;\n}\n\nexport interface PdfJsDocument {\n numPages: number;\n getPage(pageNumber: number): Promise<PdfJsPage>;\n destroy?(): unknown;\n}\n\n/** The subset of the pdf.js API the adapter uses (`pdfjs-dist` satisfies it). */\nexport interface PdfJsLike {\n getDocument(source: { data: Uint8Array; [option: string]: unknown }): { promise: Promise<PdfJsDocument> };\n}\n\nexport interface PdfTextOptions {\n /**\n * A line gap larger than this multiple of the page's typical line spacing\n * starts a new paragraph (default `1.4`).\n */\n paragraphGap?: number;\n}\n\nexport interface PdfImportOptions extends PdfTextOptions {\n /** Adapter id (default `\"pdf\"`). */\n id?: string;\n /** Import at most this many pages (default: all). */\n maxPages?: number;\n /** Extra `getDocument` parameters, e.g. `{ disableFontFace: true }`. */\n documentParams?: Record<string, unknown>;\n}\n\ninterface Line {\n text: string;\n y: number;\n height: number;\n /** A blank line (empty `hasEOL` item) follows this one. */\n blankAfter: boolean;\n}\n\nconst isTextItem = (item: PdfJsTextItem | { type: string }): item is PdfJsTextItem =>\n typeof (item as PdfJsTextItem).str === \"string\";\n\nfunction median(values: number[]): number {\n if (!values.length) return 0;\n const sorted = [...values].sort((a, b) => a - b);\n const mid = sorted.length >> 1;\n return sorted.length % 2 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;\n}\n\nfunction groupLines(items: ReadonlyArray<PdfJsTextItem | { type: string }>): Line[] {\n const lines: Line[] = [];\n let current: (Line & { endX?: number }) | null = null;\n let breakNext = false;\n for (const item of items) {\n if (!isTextItem(item)) continue;\n const x = item.transform?.[4] ?? 0;\n const y: number = item.transform?.[5] ?? (current?.y ?? 0);\n const height: number = item.height || Math.abs(item.transform?.[3] ?? 0) || current?.height || 10;\n const tolerance = Math.max(1, height * 0.5);\n if (!item.str) {\n // Empty items mark line ends; two in a row mean a blank line.\n if (item.hasEOL) {\n if (breakNext && current) current.blankAfter = true;\n breakNext = true;\n }\n continue;\n }\n if (!current || breakNext || Math.abs(y - current.y) > tolerance) {\n current = { text: \"\", y, height, blankAfter: false };\n lines.push(current);\n } else if (current.endX !== undefined && x - current.endX > height * 0.15) {\n // A horizontal gap without an explicit space item.\n if (!/\\s$/.test(current.text) && !/^\\s/.test(item.str)) current.text += \" \";\n }\n current.text += item.str;\n current.height = Math.max(current.height, height);\n current.endX = item.width !== undefined ? x + item.width : undefined;\n breakNext = !!item.hasEOL;\n }\n return lines;\n}\n\n/**\n * Groups one page's pdf.js text items into paragraphs. Exposed for custom\n * adapters and tests.\n */\nexport function pdfTextItemsToParagraphs(\n items: ReadonlyArray<PdfJsTextItem | { type: string }>,\n options: PdfTextOptions = {},\n): string[] {\n const lines = groupLines(items).filter((line) => line.text.trim() || line.blankAfter);\n const gaps: number[] = [];\n for (let i = 1; i < lines.length; i++) {\n const gap = lines[i - 1].y - lines[i].y;\n if (gap > 0) gaps.push(gap);\n }\n const typical = median(gaps);\n const factor = options.paragraphGap ?? 1.4;\n\n const paragraphs: string[] = [];\n let current: string[] = [];\n const flush = () => {\n const text = current.join(\" \").replace(/\\s+/g, \" \").trim();\n if (text) paragraphs.push(text);\n current = [];\n };\n lines.forEach((line, i) => {\n if (i > 0) {\n const prev = lines[i - 1];\n const gap = prev.y - line.y;\n const bigGap = typical > 0 ? gap > typical * factor : gap > prev.height * 1.8;\n // A line above the previous one (gap < 0) starts a new column or block.\n if (prev.blankAfter || bigGap || gap < -prev.height * 0.5) flush();\n }\n const text = line.text.trim();\n if (!text) return;\n if (current.length && /\\w-$/.test(current[current.length - 1]) && /^[a-z]/.test(text)) {\n // Re-join words hyphenated across lines.\n current[current.length - 1] = current[current.length - 1].slice(0, -1) + text;\n } else {\n current.push(text);\n }\n });\n flush();\n return paragraphs;\n}\n\n/** Creates a PDF `document` adapter backed by an injected pdf.js-compatible library. */\nexport function createPdfImportAdapter(pdfjs: PdfJsLike, options: PdfImportOptions = {}): DocumentImportAdapter {\n return {\n id: options.id ?? \"pdf\",\n label: \"PDF\",\n mimeTypes: [\"application/pdf\"],\n extensions: [\".pdf\"],\n target: \"document\",\n async import(_input, context) {\n // pdf.js may transfer (detach) the buffer it receives, so pass a copy.\n const data = new Uint8Array((await context.readArrayBuffer()).slice(0));\n const doc = await pdfjs.getDocument({ ...options.documentParams, data }).promise;\n const paragraphs: string[] = [];\n try {\n const pages = Math.min(doc.numPages, options.maxPages ?? Infinity);\n for (let n = 1; n <= pages; n++) {\n const page = await doc.getPage(n);\n const content = await page.getTextContent();\n paragraphs.push(...pdfTextItemsToParagraphs(content.items, options));\n page.cleanup?.();\n }\n } finally {\n await doc.destroy?.();\n }\n const text = paragraphs.join(\"\\n\");\n return { html: plainTextToParagraphHtml(text), text };\n },\n };\n}\n","import { escapeHtml } from \"../serializers/plain-text\";\nimport { defaultImportRegistry, type DocumentImport, type DocumentImportAdapter } from \"./adapters\";\nimport { ImportError, type ImportAdapterRegistry } from \"./registry\";\nimport { readZip, type ZipReadOptions } from \"./zip\";\n\n/**\n * Zipped document exports (Notion, Confluence, Obsidian, static-site dumps):\n * a `.zip` of markdown / HTML / text / DOCX files. Each entry is imported\n * with the registry's other `document` adapters and the results are\n * concatenated, with a heading per file.\n *\n * Not registered by default: `.zip` is a generic container, and claiming\n * every dropped archive as a document would steal drops from other handlers\n * (e.g. attachment uploads). Opt in with\n * `registerImportAdapter(zipImportAdapter)`.\n */\n\nexport interface ZipDocumentImport extends DocumentImport {\n /** Imported entries in document order, with the adapter that handled each. */\n files: { name: string; adapterId: string }[];\n /** Entries that were left out, with the reason. */\n skipped: { name: string; reason: string }[];\n}\n\nexport interface ZipImportOptions {\n /** Adapter id (default `\"zip\"`). */\n id?: string;\n /**\n * Registry used for the entries. Defaults to the registry running the\n * import (`context.registry`), then the default registry.\n */\n registry?: ImportAdapterRegistry;\n /** Add a heading with each file's title before its content (default `true`). */\n headings?: boolean;\n /** Heading level for file titles (default `2`). */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Import at most this many files (default 500); the rest are reported as skipped. */\n maxFiles?: number;\n /** Archive limits (default: 100 MiB extracted, 5 000 entries). */\n zip?: ZipReadOptions;\n}\n\nconst INDEX_NAMES = /^(index|readme|home|_index|start)$/i;\n\nconst baseName = (path: string) => path.slice(path.lastIndexOf(\"/\") + 1);\nconst stem = (name: string) => name.replace(/\\.[^./]+$/, \"\");\n\n/** File title: the name without extension, path or a trailing Notion-style id. */\nexport function zipEntryTitle(path: string): string {\n const title = stem(baseName(path))\n .replace(/\\s+[0-9a-f]{32}$/i, \"\")\n .replace(/[_]+/g, \" \")\n .trim();\n return title || baseName(path);\n}\n\n/**\n * Orders entries for import: index / README files first (shallowest first),\n * then by path with natural number ordering (`2` before `10`).\n */\nexport function sortZipEntryNames(names: readonly string[]): string[] {\n const isIndex = (name: string) => INDEX_NAMES.test(stem(baseName(name)));\n const depth = (name: string) => name.split(\"/\").length;\n return [...names].sort((a, b) => {\n const ai = isIndex(a);\n const bi = isIndex(b);\n if (ai !== bi) return ai ? -1 : 1;\n if (ai && bi && depth(a) !== depth(b)) return depth(a) - depth(b);\n return a.localeCompare(b, undefined, { numeric: true, sensitivity: \"base\" });\n });\n}\n\nconst isJunk = (name: string) =>\n name.startsWith(\"__MACOSX/\") || name.split(\"/\").some((segment) => segment.startsWith(\".\"));\n\n/** Creates a `document` adapter for zipped exports. */\nexport function createZipImportAdapter(options: ZipImportOptions = {}): DocumentImportAdapter {\n const id = options.id ?? \"zip\";\n return {\n id,\n label: \"Zipped documents\",\n mimeTypes: [\"application/zip\", \"application/x-zip-compressed\"],\n extensions: [\".zip\"],\n target: \"document\",\n async import(_input, context): Promise<ZipDocumentImport> {\n const registry = options.registry ?? context.registry ?? defaultImportRegistry;\n const zip = await readZip(await context.readArrayBuffer(), {\n maxTotalSize: 100 * 1024 * 1024,\n maxEntries: 5_000,\n ...options.zip,\n });\n const maxFiles = options.maxFiles ?? 500;\n const level = options.headingLevel ?? 2;\n const files: ZipDocumentImport[\"files\"] = [];\n const skipped: ZipDocumentImport[\"skipped\"] = [];\n let html = \"\";\n let text = \"\";\n\n const names = zip.entries.filter((entry) => !entry.isDirectory).map((entry) => entry.name);\n for (const name of sortZipEntryNames(names)) {\n if (isJunk(name)) continue;\n const adapter = registry.find({ fileName: name, target: \"document\" });\n if (!adapter) {\n skipped.push({ name, reason: \"unsupported type\" });\n continue;\n }\n if (adapter.id === id || adapter.extensions.some((ext) => ext.toLowerCase() === \".zip\")) {\n skipped.push({ name, reason: \"nested archive\" });\n continue;\n }\n if (files.length >= maxFiles) {\n skipped.push({ name, reason: \"file limit reached\" });\n continue;\n }\n try {\n const outcome = await registry.importFile<DocumentImport>(await zip.read(name), {\n fileName: name,\n adapterId: adapter.id,\n });\n const title = zipEntryTitle(name);\n if (options.headings !== false) {\n html += `<h${level}>${escapeHtml(title)}</h${level}>`;\n text += `${text ? \"\\n\" : \"\"}${title}\\n`;\n } else if (text) {\n text += \"\\n\";\n }\n html += outcome.result.html.trim();\n text += outcome.result.text;\n files.push({ name, adapterId: adapter.id });\n } catch (error) {\n // Archive-wide limits stop the whole import; other failures skip the entry.\n const code = (error as { code?: string })?.code;\n if (code === \"too_large\") throw error;\n skipped.push({ name, reason: error instanceof Error ? error.message : String(error) });\n }\n }\n if (!files.length) {\n throw new ImportError(\"invalid_file\", \"The archive contains no importable documents.\", {\n fileName: context.fileName,\n });\n }\n return { html, text, files, skipped };\n },\n };\n}\n\n/** Zipped-export adapter with default options. Opt in with `registerImportAdapter(zipImportAdapter)`. */\nexport const zipImportAdapter: DocumentImportAdapter = createZipImportAdapter();\n"]}
package/dist/index.d.cts CHANGED
@@ -1,23 +1,29 @@
1
- import { T as Token } from './tokens-CyLZmIei.cjs';
2
- export { C as ColorGradient, a as ConditionalKind, I as INSTRUCTION_REGEX, P as PromptDiagnostic, b as PromptDiagnosticCode, c as PromptValue, d as PromptValues, e as TEMPLATE_REGEX, f as Template, g as TemplateVersion, h as TokenType, V as VARIABLE_REGEX, i as instructionRegex, t as templateRegex, v as variableRegex } from './tokens-CyLZmIei.cjs';
3
- export { ConditionalTagLike, ConditionalTagMatch, EvaluatedToken, ExtractVariablesOptions, ParsedVariableBody, ResolvePromptOptions, ResolvePromptResult, ResolveTemplatesOptions, SourceMapSegment, TEMPLATE_DEPTH_ERROR, TEMPLATE_LOOP_ERROR, TokenizeResult, VariableDescriptor, VariableFormField, compactVariableValues, escapeVariableText, evaluateCondition, evaluatePromptTokens, extractInstructionNames, extractTemplateNames, extractVariableNames, extractVariables, getLatestVersion, getPromptDiagnostics, getSuppliedValue, getTemplateBody, getVariableFormFields, isPromptValueSet, mapRawOffsetToResolved, mapResolvedOffsetToRaw, matchConditionalTags, parseVariableBody, resolvePrompt, resolveTemplates, resolveTemplatesWithMapping, resolveVariables, tokenizePrompt, tokenizePromptWithDiagnostics, unescapeVariableText } from './grammar/index.cjs';
4
- import { D as DocumentImport, a as DocumentImportAdapter } from './index-CCr_z9kF.cjs';
5
- export { A as AddCommentOptions, b as Autocorrect, c as AutocorrectContext, d as AutocorrectCorrection, e as AutocorrectOptions, f as AutocorrectRule, g as AutocorrectStorage, B as BUILT_IN_IMPORT_ADAPTERS, h as Bookmark, i as BookmarkInfo, j as BookmarkOptions, C as COMMENT_MARK_NAME, k as ColorHighlighter, l as CommentRange, m as Comments, n as CommentsOptions, o as CommentsStorage, p as CreateImportAdapterRegistryOptions, q as CrossReference, r as CrossReferenceOptions, s as CrossReferenceTarget, t as CrossReferenceTargetType, u as DEFAULT_AUTOCORRECT_EXCEPTIONS, v as DocumentStructureCommandArgs, w as DocumentStructureCommandItem, F as FileImport, x as FileImportOptions, y as FocusHeadingOptions, z as FontSize, E as Footnote, G as FootnoteInfo, H as FootnoteReference, I as Footnotes, J as FootnotesOptions, K as GradientText, L as GradientTextOptions, M as Image, N as ImageOptions, O as InsertFootnoteOptions, P as InsertTableOfContentsOptions, Q as LoadingNode, R as Markdown, S as Outline, T as OutlineHeading, U as OutlineOptions, V as OutlineSnapshot, W as OutlineStorage, X as OutlineStore, Y as OutlineTreeItem, Z as RichClipboard, _ as RichClipboardOptions, $ as RichClipboardStorage, a0 as RichTextPresetOptions, a1 as SMILIE_REPLACEMENTS, a2 as SetBookmarkOptions, a3 as SlashCommandMatchData, a4 as SlashCommands, a5 as SlashCommandsOptions, a6 as SmilieReplacer, a7 as TableOfContents, a8 as TableOfContentsEntry, a9 as TableOfContentsOptions, aa as TemplateSuggestions, ab as TemplateSuggestionsOptions, ac as autocorrectPluginKey, ad as buildOutlineTree, ae as capitalizeSentenceRules, af as commentsPluginKey, ag as computeOutline, ah as createImportAdapterRegistry, ai as createOutlineStore, aj as createRichTextPreset, ak as crossReferencePluginKey, al as defaultAutocorrectRules, am as defaultImportRegistry, an as documentStructureCommandItems, ao as fileImportPluginKey, ap as findAutocorrection, aq as findCommentRanges, ar as findHexColors, as as findImportAdapter, at as footnotesMarkdownIt, au as footnotesPluginKey, av as fractionRules, aw as getActiveHeading, ax as getBookmarks, ay as getCommentAnchors, az as getCommentAuthor, aA as getCommentIdsAt, aB as getCommentStore, aC as getCrossReferenceTargets, aD as getDocumentStructureCommandItems, aE as getFootnotes, aF as getImportAccept, aG as getOutline, aH as getTableOfContentsEntries, aI as handleImageInsertion, aJ as htmlImportAdapter, aK as imagePastePluginKey, aL as importFile, aM as insertImageNode, aN as isInsidePromptToken, aO as markdownImportAdapter, aP as navigateToHeading, aQ as outlinePluginKey, aR as plainTextImportAdapter, aS as registerImportAdapter, aT as removeImageNode, aU as richClipboardPluginKey, aV as rtfImportAdapter, aW as smartQuoteRules, aX as smilieAutocorrectRules, aY as symbolRules, aZ as syncFootnotes, a_ as tableOfContentsMarkdownIt, a$ as tableOfContentsPluginKey, b0 as twoInitialCapitalsRules, b1 as unregisterImportAdapter, b2 as updateImageSrc, b3 as writeRichClipboard } from './index-CCr_z9kF.cjs';
6
- export { B as BLOCK_CHANGE_ATTRIBUTE, C as CommentAnchor, a as CommentReply, b as CommentStore, c as CommentStoreListener, d as CommentStoreOptions, e as CommentStoreSnapshot, f as CommentThread, g as CreateThreadInput, D as DELETION_MARK_NAME, F as FORMAT_CHANGE_MARK_NAME, I as INSERTION_MARK_NAME, M as Mention, h as MentionEntity, i as MentionOptions, R as ReviewAuthor, S as SerializedComments, T as TRACK_CHANGES_SKIP_META, j as TrackChanges, k as TrackChangesOptions, l as TrackChangesSnapshot, m as TrackChangesStorage, n as TrackChangesStore, o as TrackedBlockChangeAttributes, p as TrackedBlockSnapshot, q as TrackedChange, r as TrackedChangeAttributes, s as TrackedChangeType, t as TrackedChangesView, u as TrackedDeletion, v as TrackedFormatChange, w as TrackedFormatChangeAttributes, x as TrackedFormatSummary, y as TrackedInsertion, z as TrackedMark, A as createCommentStore, E as createMentionExtension, G as createReviewId, H as describeBlockChange, J as describeFormatChange, K as formatReviewTime, L as getTrackChangesStore, N as getTrackedChangeAt, O as getTrackedChanges, P as isTrackChangesEnabled, Q as resolveTrackedChanges, U as trackChangesPluginKey } from './track-changes-BSF58RK0.cjs';
1
+ import { b as Token } from './tokens-D7yXvUU6.cjs';
2
+ export { C as ColorGradient, c as ComparisonOperator, d as ConditionComparison, e as ConditionalKind, I as INSTRUCTION_REGEX, a as PromptDiagnostic, f as PromptDiagnosticCode, g as PromptValue, P as PromptValues, h as TEMPLATE_REGEX, T as Template, i as TemplateVersion, j as TokenType, V as VARIABLE_REGEX, k as instructionRegex, t as templateRegex, v as variableRegex } from './tokens-D7yXvUU6.cjs';
3
+ export { ConditionExpression, ConditionalTagLike, ConditionalTagMatch, DataSourceInput, DataSourceWarning, DataSourceWarningCode, EvaluatedToken, ExtractVariablesOptions, FIELD_ALIASES, FieldMapping, FieldMatch, FieldMatchKind, MAX_DATA_SOURCE_FIELDS, MAX_DATA_SOURCE_RECORDS, MAX_MERGE_LENGTH, MAX_MERGE_OUTPUTS, MatchFieldsOptions, MergeDataSource, MergeDiagnostic, MergeDiagnosticCode, MergeOutput, MergeRecord, MergeRecordsOptions, MergeRecordsResult, MergeSkip, ParseDataSourceOptions, ParsedComparison, ParsedVariableBody, RecordToValuesOptions, ResolvePromptOptions, ResolvePromptResult, TEMPLATE_DEPTH_ERROR, TEMPLATE_LOOP_ERROR, TokenizeResult, VariableDescriptor, VariableFormField, compactVariableValues, compareConditionValues, conditionSubject, describeConditionalTag, detectDelimiter, escapeVariableText, evaluateCondition, evaluateConditionExpression, evaluatePromptTokens, extractVariables, formatComparisonOperand, formatConditionalTag, getLatestVersion, getPromptDiagnostics, getSuppliedValue, getTemplateBody, getVariableFormFields, isPromptValueSet, matchConditionalTags, matchFields, mergeRecords, normalizeFieldKey, normalizeFieldNames, parseComparison, parseConditionExpression, parseDataSource, parseVariableBody, recordToValues, resolvePrompt, serializeMergeOutputs, tokenizePrompt, tokenizePromptWithDiagnostics, unescapeVariableText } from './grammar/index.cjs';
4
+ export { R as ResolveTemplatesOptions, S as SourceMapSegment, e as extractInstructionNames, a as extractTemplateNames, b as extractVariableNames, m as mapRawOffsetToResolved, c as mapResolvedOffsetToRaw, r as resolveTemplates, d as resolveTemplatesWithMapping, f as resolveVariables } from './sourcemap-C8AH3MBQ.cjs';
5
+ import { D as DocumentImport, a as DocumentImportAdapter } from './index-BhJBSm2d.cjs';
6
+ export { A as AddCommentOptions, b as Autocorrect, c as AutocorrectContext, d as AutocorrectCorrection, e as AutocorrectOptions, f as AutocorrectRule, g as AutocorrectStorage, B as BUILT_IN_IMPORT_ADAPTERS, h as Bookmark, i as BookmarkInfo, j as BookmarkOptions, C as COMMENT_MARK_NAME, k as ColorHighlighter, l as CommentRange, m as Comments, n as CommentsOptions, o as CommentsStorage, p as CompileFindPatternResult, q as CompiledFindPattern, r as CreateImportAdapterRegistryOptions, s as CrossReference, t as CrossReferenceOptions, u as CrossReferenceTarget, v as CrossReferenceTargetType, w as DEFAULT_AUTOCORRECT_EXCEPTIONS, x as DocumentCompare, y as DocumentCompareOptions, z as DocumentCompareStorage, E as DocumentSearchOptions, F as DocumentSearchResult, G as DocumentStructureCommandArgs, H as DocumentStructureCommandItem, I as EMPTY_FIND_REPLACE_SNAPSHOT, J as EditorCompareOptions, K as FIND_OPTION_TOGGLES, L as FIND_PARAGRAPH_MARK, M as FileImport, N as FileImportOptions, O as FindAllOptions, P as FindAllResult, Q as FindMatch, R as FindOptionToggle, S as FindOptions, T as FindPatternError, U as FindPatternErrorCode, V as FindReplace, W as FindReplaceCommandOptions, X as FindReplaceMode, Y as FindReplaceOptions, Z as FindReplaceSnapshot, _ as FindReplaceStorage, $ as FindReplaceStore, a0 as FocusHeadingOptions, a1 as FontSize, a2 as Footnote, a3 as FootnoteInfo, a4 as FootnoteReference, a5 as Footnotes, a6 as FootnotesOptions, a7 as GradientText, a8 as GradientTextOptions, a9 as Image, aa as ImageOptions, ab as InsertFootnoteOptions, ac as InsertTableOfContentsOptions, ad as LoadingNode, ae as MAX_FIND_PATTERN_LENGTH, af as Markdown, ag as OpenFindReplaceParams, ah as Outline, ai as OutlineHeading, aj as OutlineOptions, ak as OutlineSnapshot, al as OutlineStorage, am as OutlineStore, an as OutlineTreeItem, ao as PatternMatch, ap as ReplacePiece, aq as RichClipboard, ar as RichClipboardOptions, as as RichClipboardStorage, at as RichTextPresetOptions, au as SMILIE_REPLACEMENTS, av as SearchBudget, aw as SearchBudgetOptions, ax as SetBookmarkOptions, ay as SetSearchParams, az as SlashCommandMatchData, aA as SlashCommands, aB as SlashCommandsOptions, aC as SmilieReplacer, aD as TableOfContents, aE as TableOfContentsEntry, aF as TableOfContentsOptions, aG as TemplateSuggestions, aH as TemplateSuggestionsOptions, aI as applyDocumentComparison, aJ as applyReplacements, aK as autocorrectPluginKey, aL as buildOutlineTree, aM as capitalizeSentenceRules, aN as commentsPluginKey, aO as compareInEditor, aP as compileFindPattern, aQ as computeOutline, aR as createFindReplaceCommands, aS as createImportAdapterRegistry, aT as createOutlineStore, aU as createRichTextPreset, aV as createSearchBudget, aW as crossReferencePluginKey, aX as defaultAutocorrectRules, aY as defaultImportRegistry, aZ as documentStructureCommandItems, a_ as expandReplacement, a$ as fileImportPluginKey, b0 as findAllMatches, b1 as findAutocorrection, b2 as findCommentRanges, b3 as findHexColors, b4 as findImportAdapter, b5 as findReplacePluginKey, b6 as foldCodePoint, b7 as footnotesMarkdownIt, b8 as footnotesPluginKey, b9 as formatFindStatus, ba as fractionRules, bb as getActiveHeading, bc as getBookmarks, bd as getCommentAnchors, be as getCommentAuthor, bf as getCommentIdsAt, bg as getCommentStore, bh as getCrossReferenceTargets, bi as getDocumentStructureCommandItems, bj as getFindReplaceState, bk as getFindReplaceStore, bl as getFootnotes, bm as getImportAccept, bn as getOutline, bo as getTableOfContentsEntries, bp as handleImageInsertion, bq as htmlImportAdapter, br as imagePastePluginKey, bs as importFile, bt as insertImageNode, bu as isInsidePromptToken, bv as markdownImportAdapter, bw as navigateToHeading, bx as outlinePluginKey, by as parseReplacement, bz as plainTextImportAdapter, bA as registerImportAdapter, bB as removeImageNode, bC as richClipboardPluginKey, bD as rtfImportAdapter, bE as searchDocument, bF as smartQuoteRules, bG as smilieAutocorrectRules, bH as symbolRules, bI as syncFootnotes, bJ as tableOfContentsMarkdownIt, bK as tableOfContentsPluginKey, bL as twoInitialCapitalsRules, bM as unregisterImportAdapter, bN as updateImageSrc, bO as validateFindPattern, bP as writeRichClipboard } from './index-BhJBSm2d.cjs';
7
+ export { B as BLOCK_CHANGE_ATTRIBUTE, D as DELETION_MARK_NAME, F as FORMAT_CHANGE_MARK_NAME, I as INSERTION_MARK_NAME, M as Mention, a as MentionEntity, b as MentionOptions, T as TRACK_CHANGES_SKIP_META, c as TrackChanges, d as TrackChangesOptions, e as TrackChangesSnapshot, f as TrackChangesStorage, g as TrackChangesStore, h as TrackedBlockChangeAttributes, i as TrackedBlockOperation, j as TrackedBlockSnapshot, k as TrackedChange, l as TrackedChangeAttributes, m as TrackedChangeType, n as TrackedChangesView, o as TrackedDeletion, p as TrackedFormatChange, q as TrackedFormatChangeAttributes, r as TrackedFormatSummary, s as TrackedInsertion, t as TrackedMark, u as createMentionExtension, v as describeBlockChange, w as describeFormatChange, x as getTrackChangesStore, y as getTrackedChangeAt, z as getTrackedChanges, A as isTrackChangesEnabled, C as resolveTrackedChanges, E as trackChangesPluginKey } from './track-changes-BK5sVf4_.cjs';
8
+ export { C as CommentAnchor, a as CommentReply, b as CommentStore, c as CommentStoreListener, d as CommentStoreOptions, e as CommentStoreSnapshot, f as CommentThread, g as CreateThreadInput, R as ReviewAuthor, S as SerializedComments, h as createCommentStore, i as createReviewId, j as formatReviewTime } from './comment-store-BEMgVlAA.cjs';
7
9
  export { ClipboardDataLike, ExtractedMention, MARKDOWN_MENTION_SPLIT_REGEX, MENTION_REGEX, MarkdownToHtmlOptions, MentionSegment, PIXERATE_DOCUMENT_MIME, PlainTextOptions, PreprocessMarkdownMentionsOptions, RichClipboardPayload, SanitizeHtmlOptions, escapeHtml, extractMentions, extractMentionsFromDoc, getClipboardData, getEditorMarkdown, getEditorText, getSchemaSignature, htmlToPlainText, markdownToTipTapHtml, parseMentionSegments, parseRichClipboardPayload, plainTextToParagraphHtml, plainTextToSlice, plainTextToTipTapHtml, preprocessMarkdownFileLinks, preprocessMarkdownMentions, readRichClipboard, rtfToPlainText, sanitizeHtml, sanitizeImportedHtml, serializeRichClipboardPayload, stripMarkdownCode } from './serializers/index.cjs';
8
10
  import { Editor, EditorOptions, Content, Extensions } from '@tiptap/core';
9
11
  export { Content, Editor, EditorOptions, Extensions } from '@tiptap/core';
10
- export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-pePCJLT1.cjs';
11
- export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, checkFormulaArgumentCount, clampMenuPosition, compareCellValues, computeFillTarget, csvImportAdapter, escapeCsvField, fillSeries, formatCellDisplay, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.cjs';
12
+ export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-BhLLAoi8.cjs';
13
+ export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormattedNumberValue, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, MAX_NUMBER_FORMAT_CODE_CHARS, NUMBER_FORMAT_PRESETS, NumberFormat, NumberFormatColor, NumberFormatKind, NumberFormatPreset, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, builtinNumberFormat, builtinNumberFormatId, cellFormatForNumberFormat, checkFormulaArgumentCount, clampMenuPosition, clearNumberFormatCache, compareCellValues, computeFillTarget, csvImportAdapter, dateValueToSerial, escapeCsvField, fillSeries, formatCellDisplay, formatCellForDisplay, formatGeneralFit, formatNumberFormatValue, formatTextFunction, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isGeneralNumberFormat, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, numberFormatColorToCss, numberFormatForCellFormat, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, runSpreadsheetMenuItem, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.cjs';
12
14
  export { BindDirtyToHistoryOptions, DirtyHistorySource, DirtyTracker, DirtyTrackerOptions, HistoryDirtyBinding, HistoryManager, bindDirtyToHistory, createDirtyTracker, createHistoryManager, defaultIsEqual, withoutDirty } from './history/index.cjs';
13
15
  export { C as Command, a as HistoryEntry, b as HistoryManagerOptions, c as HistoryMark, H as HistoryState, M as MergedExecutionOptions, S as SnapshotCommandOptions } from './types-GT5a5YAX.cjs';
14
16
  import { I as ImportAdapterRegistry, a as ImportOutcome, F as FileLike } from './registry-GJI4gToU.cjs';
15
17
  export { b as FindImportAdapterQuery, c as ImportAdapter, d as ImportContext, e as ImportError, f as ImportErrorCode, g as ImportFileOptions, h as ImportInput, i as ImportTarget, R as RegisterImportAdapterOptions, j as createImportContext } from './registry-GJI4gToU.cjs';
16
18
  import { Schema, Slice } from '@tiptap/pm/model';
17
19
  import { EditorView } from '@tiptap/pm/view';
20
+ export { DiffChange, DiffOpType, DiffRun, DiffSequencesOptions, diffChanges, diffSequences } from './compare/index.cjs';
21
+ export { C as CompareDocumentsOptions, a as CompareDocumentsResult, b as CompareSource, c as CompareSummary, d as compareDocuments, e as compareHtml } from './documents-KRTPhvst.cjs';
18
22
  export { MarkdownOptions } from 'tiptap-markdown';
19
23
  import '@tiptap/pm/state';
20
24
  import '@tiptap/extension-image';
25
+ import './registry-D32LpIc4.cjs';
26
+ import './schema-DYDGdYL9.cjs';
21
27
  import '@tiptap/extension-mention';
22
28
  import '@tiptap/suggestion';
23
29
 
package/dist/index.d.ts CHANGED
@@ -1,23 +1,29 @@
1
- import { T as Token } from './tokens-CyLZmIei.js';
2
- export { C as ColorGradient, a as ConditionalKind, I as INSTRUCTION_REGEX, P as PromptDiagnostic, b as PromptDiagnosticCode, c as PromptValue, d as PromptValues, e as TEMPLATE_REGEX, f as Template, g as TemplateVersion, h as TokenType, V as VARIABLE_REGEX, i as instructionRegex, t as templateRegex, v as variableRegex } from './tokens-CyLZmIei.js';
3
- export { ConditionalTagLike, ConditionalTagMatch, EvaluatedToken, ExtractVariablesOptions, ParsedVariableBody, ResolvePromptOptions, ResolvePromptResult, ResolveTemplatesOptions, SourceMapSegment, TEMPLATE_DEPTH_ERROR, TEMPLATE_LOOP_ERROR, TokenizeResult, VariableDescriptor, VariableFormField, compactVariableValues, escapeVariableText, evaluateCondition, evaluatePromptTokens, extractInstructionNames, extractTemplateNames, extractVariableNames, extractVariables, getLatestVersion, getPromptDiagnostics, getSuppliedValue, getTemplateBody, getVariableFormFields, isPromptValueSet, mapRawOffsetToResolved, mapResolvedOffsetToRaw, matchConditionalTags, parseVariableBody, resolvePrompt, resolveTemplates, resolveTemplatesWithMapping, resolveVariables, tokenizePrompt, tokenizePromptWithDiagnostics, unescapeVariableText } from './grammar/index.js';
4
- import { D as DocumentImport, a as DocumentImportAdapter } from './index-Ck6ajwXh.js';
5
- export { A as AddCommentOptions, b as Autocorrect, c as AutocorrectContext, d as AutocorrectCorrection, e as AutocorrectOptions, f as AutocorrectRule, g as AutocorrectStorage, B as BUILT_IN_IMPORT_ADAPTERS, h as Bookmark, i as BookmarkInfo, j as BookmarkOptions, C as COMMENT_MARK_NAME, k as ColorHighlighter, l as CommentRange, m as Comments, n as CommentsOptions, o as CommentsStorage, p as CreateImportAdapterRegistryOptions, q as CrossReference, r as CrossReferenceOptions, s as CrossReferenceTarget, t as CrossReferenceTargetType, u as DEFAULT_AUTOCORRECT_EXCEPTIONS, v as DocumentStructureCommandArgs, w as DocumentStructureCommandItem, F as FileImport, x as FileImportOptions, y as FocusHeadingOptions, z as FontSize, E as Footnote, G as FootnoteInfo, H as FootnoteReference, I as Footnotes, J as FootnotesOptions, K as GradientText, L as GradientTextOptions, M as Image, N as ImageOptions, O as InsertFootnoteOptions, P as InsertTableOfContentsOptions, Q as LoadingNode, R as Markdown, S as Outline, T as OutlineHeading, U as OutlineOptions, V as OutlineSnapshot, W as OutlineStorage, X as OutlineStore, Y as OutlineTreeItem, Z as RichClipboard, _ as RichClipboardOptions, $ as RichClipboardStorage, a0 as RichTextPresetOptions, a1 as SMILIE_REPLACEMENTS, a2 as SetBookmarkOptions, a3 as SlashCommandMatchData, a4 as SlashCommands, a5 as SlashCommandsOptions, a6 as SmilieReplacer, a7 as TableOfContents, a8 as TableOfContentsEntry, a9 as TableOfContentsOptions, aa as TemplateSuggestions, ab as TemplateSuggestionsOptions, ac as autocorrectPluginKey, ad as buildOutlineTree, ae as capitalizeSentenceRules, af as commentsPluginKey, ag as computeOutline, ah as createImportAdapterRegistry, ai as createOutlineStore, aj as createRichTextPreset, ak as crossReferencePluginKey, al as defaultAutocorrectRules, am as defaultImportRegistry, an as documentStructureCommandItems, ao as fileImportPluginKey, ap as findAutocorrection, aq as findCommentRanges, ar as findHexColors, as as findImportAdapter, at as footnotesMarkdownIt, au as footnotesPluginKey, av as fractionRules, aw as getActiveHeading, ax as getBookmarks, ay as getCommentAnchors, az as getCommentAuthor, aA as getCommentIdsAt, aB as getCommentStore, aC as getCrossReferenceTargets, aD as getDocumentStructureCommandItems, aE as getFootnotes, aF as getImportAccept, aG as getOutline, aH as getTableOfContentsEntries, aI as handleImageInsertion, aJ as htmlImportAdapter, aK as imagePastePluginKey, aL as importFile, aM as insertImageNode, aN as isInsidePromptToken, aO as markdownImportAdapter, aP as navigateToHeading, aQ as outlinePluginKey, aR as plainTextImportAdapter, aS as registerImportAdapter, aT as removeImageNode, aU as richClipboardPluginKey, aV as rtfImportAdapter, aW as smartQuoteRules, aX as smilieAutocorrectRules, aY as symbolRules, aZ as syncFootnotes, a_ as tableOfContentsMarkdownIt, a$ as tableOfContentsPluginKey, b0 as twoInitialCapitalsRules, b1 as unregisterImportAdapter, b2 as updateImageSrc, b3 as writeRichClipboard } from './index-Ck6ajwXh.js';
6
- export { B as BLOCK_CHANGE_ATTRIBUTE, C as CommentAnchor, a as CommentReply, b as CommentStore, c as CommentStoreListener, d as CommentStoreOptions, e as CommentStoreSnapshot, f as CommentThread, g as CreateThreadInput, D as DELETION_MARK_NAME, F as FORMAT_CHANGE_MARK_NAME, I as INSERTION_MARK_NAME, M as Mention, h as MentionEntity, i as MentionOptions, R as ReviewAuthor, S as SerializedComments, T as TRACK_CHANGES_SKIP_META, j as TrackChanges, k as TrackChangesOptions, l as TrackChangesSnapshot, m as TrackChangesStorage, n as TrackChangesStore, o as TrackedBlockChangeAttributes, p as TrackedBlockSnapshot, q as TrackedChange, r as TrackedChangeAttributes, s as TrackedChangeType, t as TrackedChangesView, u as TrackedDeletion, v as TrackedFormatChange, w as TrackedFormatChangeAttributes, x as TrackedFormatSummary, y as TrackedInsertion, z as TrackedMark, A as createCommentStore, E as createMentionExtension, G as createReviewId, H as describeBlockChange, J as describeFormatChange, K as formatReviewTime, L as getTrackChangesStore, N as getTrackedChangeAt, O as getTrackedChanges, P as isTrackChangesEnabled, Q as resolveTrackedChanges, U as trackChangesPluginKey } from './track-changes-BSF58RK0.js';
1
+ import { b as Token } from './tokens-D7yXvUU6.js';
2
+ export { C as ColorGradient, c as ComparisonOperator, d as ConditionComparison, e as ConditionalKind, I as INSTRUCTION_REGEX, a as PromptDiagnostic, f as PromptDiagnosticCode, g as PromptValue, P as PromptValues, h as TEMPLATE_REGEX, T as Template, i as TemplateVersion, j as TokenType, V as VARIABLE_REGEX, k as instructionRegex, t as templateRegex, v as variableRegex } from './tokens-D7yXvUU6.js';
3
+ export { ConditionExpression, ConditionalTagLike, ConditionalTagMatch, DataSourceInput, DataSourceWarning, DataSourceWarningCode, EvaluatedToken, ExtractVariablesOptions, FIELD_ALIASES, FieldMapping, FieldMatch, FieldMatchKind, MAX_DATA_SOURCE_FIELDS, MAX_DATA_SOURCE_RECORDS, MAX_MERGE_LENGTH, MAX_MERGE_OUTPUTS, MatchFieldsOptions, MergeDataSource, MergeDiagnostic, MergeDiagnosticCode, MergeOutput, MergeRecord, MergeRecordsOptions, MergeRecordsResult, MergeSkip, ParseDataSourceOptions, ParsedComparison, ParsedVariableBody, RecordToValuesOptions, ResolvePromptOptions, ResolvePromptResult, TEMPLATE_DEPTH_ERROR, TEMPLATE_LOOP_ERROR, TokenizeResult, VariableDescriptor, VariableFormField, compactVariableValues, compareConditionValues, conditionSubject, describeConditionalTag, detectDelimiter, escapeVariableText, evaluateCondition, evaluateConditionExpression, evaluatePromptTokens, extractVariables, formatComparisonOperand, formatConditionalTag, getLatestVersion, getPromptDiagnostics, getSuppliedValue, getTemplateBody, getVariableFormFields, isPromptValueSet, matchConditionalTags, matchFields, mergeRecords, normalizeFieldKey, normalizeFieldNames, parseComparison, parseConditionExpression, parseDataSource, parseVariableBody, recordToValues, resolvePrompt, serializeMergeOutputs, tokenizePrompt, tokenizePromptWithDiagnostics, unescapeVariableText } from './grammar/index.js';
4
+ export { R as ResolveTemplatesOptions, S as SourceMapSegment, e as extractInstructionNames, a as extractTemplateNames, b as extractVariableNames, m as mapRawOffsetToResolved, c as mapResolvedOffsetToRaw, r as resolveTemplates, d as resolveTemplatesWithMapping, f as resolveVariables } from './sourcemap-DA1Evhrv.js';
5
+ import { D as DocumentImport, a as DocumentImportAdapter } from './index-fJrlkJCd.js';
6
+ export { A as AddCommentOptions, b as Autocorrect, c as AutocorrectContext, d as AutocorrectCorrection, e as AutocorrectOptions, f as AutocorrectRule, g as AutocorrectStorage, B as BUILT_IN_IMPORT_ADAPTERS, h as Bookmark, i as BookmarkInfo, j as BookmarkOptions, C as COMMENT_MARK_NAME, k as ColorHighlighter, l as CommentRange, m as Comments, n as CommentsOptions, o as CommentsStorage, p as CompileFindPatternResult, q as CompiledFindPattern, r as CreateImportAdapterRegistryOptions, s as CrossReference, t as CrossReferenceOptions, u as CrossReferenceTarget, v as CrossReferenceTargetType, w as DEFAULT_AUTOCORRECT_EXCEPTIONS, x as DocumentCompare, y as DocumentCompareOptions, z as DocumentCompareStorage, E as DocumentSearchOptions, F as DocumentSearchResult, G as DocumentStructureCommandArgs, H as DocumentStructureCommandItem, I as EMPTY_FIND_REPLACE_SNAPSHOT, J as EditorCompareOptions, K as FIND_OPTION_TOGGLES, L as FIND_PARAGRAPH_MARK, M as FileImport, N as FileImportOptions, O as FindAllOptions, P as FindAllResult, Q as FindMatch, R as FindOptionToggle, S as FindOptions, T as FindPatternError, U as FindPatternErrorCode, V as FindReplace, W as FindReplaceCommandOptions, X as FindReplaceMode, Y as FindReplaceOptions, Z as FindReplaceSnapshot, _ as FindReplaceStorage, $ as FindReplaceStore, a0 as FocusHeadingOptions, a1 as FontSize, a2 as Footnote, a3 as FootnoteInfo, a4 as FootnoteReference, a5 as Footnotes, a6 as FootnotesOptions, a7 as GradientText, a8 as GradientTextOptions, a9 as Image, aa as ImageOptions, ab as InsertFootnoteOptions, ac as InsertTableOfContentsOptions, ad as LoadingNode, ae as MAX_FIND_PATTERN_LENGTH, af as Markdown, ag as OpenFindReplaceParams, ah as Outline, ai as OutlineHeading, aj as OutlineOptions, ak as OutlineSnapshot, al as OutlineStorage, am as OutlineStore, an as OutlineTreeItem, ao as PatternMatch, ap as ReplacePiece, aq as RichClipboard, ar as RichClipboardOptions, as as RichClipboardStorage, at as RichTextPresetOptions, au as SMILIE_REPLACEMENTS, av as SearchBudget, aw as SearchBudgetOptions, ax as SetBookmarkOptions, ay as SetSearchParams, az as SlashCommandMatchData, aA as SlashCommands, aB as SlashCommandsOptions, aC as SmilieReplacer, aD as TableOfContents, aE as TableOfContentsEntry, aF as TableOfContentsOptions, aG as TemplateSuggestions, aH as TemplateSuggestionsOptions, aI as applyDocumentComparison, aJ as applyReplacements, aK as autocorrectPluginKey, aL as buildOutlineTree, aM as capitalizeSentenceRules, aN as commentsPluginKey, aO as compareInEditor, aP as compileFindPattern, aQ as computeOutline, aR as createFindReplaceCommands, aS as createImportAdapterRegistry, aT as createOutlineStore, aU as createRichTextPreset, aV as createSearchBudget, aW as crossReferencePluginKey, aX as defaultAutocorrectRules, aY as defaultImportRegistry, aZ as documentStructureCommandItems, a_ as expandReplacement, a$ as fileImportPluginKey, b0 as findAllMatches, b1 as findAutocorrection, b2 as findCommentRanges, b3 as findHexColors, b4 as findImportAdapter, b5 as findReplacePluginKey, b6 as foldCodePoint, b7 as footnotesMarkdownIt, b8 as footnotesPluginKey, b9 as formatFindStatus, ba as fractionRules, bb as getActiveHeading, bc as getBookmarks, bd as getCommentAnchors, be as getCommentAuthor, bf as getCommentIdsAt, bg as getCommentStore, bh as getCrossReferenceTargets, bi as getDocumentStructureCommandItems, bj as getFindReplaceState, bk as getFindReplaceStore, bl as getFootnotes, bm as getImportAccept, bn as getOutline, bo as getTableOfContentsEntries, bp as handleImageInsertion, bq as htmlImportAdapter, br as imagePastePluginKey, bs as importFile, bt as insertImageNode, bu as isInsidePromptToken, bv as markdownImportAdapter, bw as navigateToHeading, bx as outlinePluginKey, by as parseReplacement, bz as plainTextImportAdapter, bA as registerImportAdapter, bB as removeImageNode, bC as richClipboardPluginKey, bD as rtfImportAdapter, bE as searchDocument, bF as smartQuoteRules, bG as smilieAutocorrectRules, bH as symbolRules, bI as syncFootnotes, bJ as tableOfContentsMarkdownIt, bK as tableOfContentsPluginKey, bL as twoInitialCapitalsRules, bM as unregisterImportAdapter, bN as updateImageSrc, bO as validateFindPattern, bP as writeRichClipboard } from './index-fJrlkJCd.js';
7
+ export { B as BLOCK_CHANGE_ATTRIBUTE, D as DELETION_MARK_NAME, F as FORMAT_CHANGE_MARK_NAME, I as INSERTION_MARK_NAME, M as Mention, a as MentionEntity, b as MentionOptions, T as TRACK_CHANGES_SKIP_META, c as TrackChanges, d as TrackChangesOptions, e as TrackChangesSnapshot, f as TrackChangesStorage, g as TrackChangesStore, h as TrackedBlockChangeAttributes, i as TrackedBlockOperation, j as TrackedBlockSnapshot, k as TrackedChange, l as TrackedChangeAttributes, m as TrackedChangeType, n as TrackedChangesView, o as TrackedDeletion, p as TrackedFormatChange, q as TrackedFormatChangeAttributes, r as TrackedFormatSummary, s as TrackedInsertion, t as TrackedMark, u as createMentionExtension, v as describeBlockChange, w as describeFormatChange, x as getTrackChangesStore, y as getTrackedChangeAt, z as getTrackedChanges, A as isTrackChangesEnabled, C as resolveTrackedChanges, E as trackChangesPluginKey } from './track-changes-CDjCrwKe.js';
8
+ export { C as CommentAnchor, a as CommentReply, b as CommentStore, c as CommentStoreListener, d as CommentStoreOptions, e as CommentStoreSnapshot, f as CommentThread, g as CreateThreadInput, R as ReviewAuthor, S as SerializedComments, h as createCommentStore, i as createReviewId, j as formatReviewTime } from './comment-store-BEMgVlAA.js';
7
9
  export { ClipboardDataLike, ExtractedMention, MARKDOWN_MENTION_SPLIT_REGEX, MENTION_REGEX, MarkdownToHtmlOptions, MentionSegment, PIXERATE_DOCUMENT_MIME, PlainTextOptions, PreprocessMarkdownMentionsOptions, RichClipboardPayload, SanitizeHtmlOptions, escapeHtml, extractMentions, extractMentionsFromDoc, getClipboardData, getEditorMarkdown, getEditorText, getSchemaSignature, htmlToPlainText, markdownToTipTapHtml, parseMentionSegments, parseRichClipboardPayload, plainTextToParagraphHtml, plainTextToSlice, plainTextToTipTapHtml, preprocessMarkdownFileLinks, preprocessMarkdownMentions, readRichClipboard, rtfToPlainText, sanitizeHtml, sanitizeImportedHtml, serializeRichClipboardPayload, stripMarkdownCode } from './serializers/index.js';
8
10
  import { Editor, EditorOptions, Content, Extensions } from '@tiptap/core';
9
11
  export { Content, Editor, EditorOptions, Extensions } from '@tiptap/core';
10
- export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-pePCJLT1.js';
11
- export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, checkFormulaArgumentCount, clampMenuPosition, compareCellValues, computeFillTarget, csvImportAdapter, escapeCsvField, fillSeries, formatCellDisplay, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.js';
12
+ export { A as ASTNode, B as BinaryOpNode, C as CellCoordinate, a as CellData, b as CellDep, c as CellFormat, d as CellPosition, e as CellRange, f as CellRefNode, g as CellValueReader, h as ColumnBinding, i as ColumnType, j as CsvExportOptions, k as CsvImportOptions, D as DEFAULT_COLUMN_WIDTH, l as DEFAULT_ROW_HEIGHT, m as DataSourceBinder, n as DependencyGraph, E as EvaluationContext, F as FORMULA_ERRORS, o as FilterOperator, p as FilterRule, q as FormulaDiagnostic, r as FormulaErrorCode, s as FormulaEvaluationResult, t as FormulaEvaluator, u as FormulaParser, v as FormulaRange, w as FormulaToken, x as FormulaTokenType, y as FunctionCallNode, G as GroupAggregate, z as GroupSummary, L as LiteralNode, M as MAX_FORMULA_ARRAY_SIZE, N as NameNode, H as NewFilterRule, P as ParsedSpreadsheetClipboard, I as PropertyRefNode, R as RangeNode, J as RowType, K as SPREADSHEET_CLIPBOARD_MIME, O as SortDirection, Q as SortKey, T as SpillRefNode, U as SpreadsheetCellSpan, V as SpreadsheetClipboardCell, W as SpreadsheetClipboardData, X as SpreadsheetClipboardPayload, Y as SpreadsheetClipboardSource, Z as SpreadsheetColumn, S as SpreadsheetController, _ as SpreadsheetControllerOptions, $ as SpreadsheetDataSource, a0 as SpreadsheetDataSourceField, a1 as SpreadsheetDocument, a2 as SpreadsheetFilterState, a3 as SpreadsheetGrouping, a4 as SpreadsheetRow, a5 as SpreadsheetRowGroup, a6 as SpreadsheetRowSection, a7 as SpreadsheetSpill, a8 as SpreadsheetTableSettings, a9 as SpreadsheetViewColumn, aa as SpreadsheetViewModel, ab as SpreadsheetViewRow, ac as StructuralChange, ad as UnaryOpNode, ae as WHOLE_COLUMN_END_ROW, af as buildSpreadsheetView, ag as colNameToIndex, ah as columnDependencyKey, ai as compareNumbers, aj as compareValues, ak as computeRowGroups, al as createSpreadsheetClipboardData, am as describeFormulaError, an as extractCellDependencies, ao as getRowSection, ap as getTableSections, aq as indexToColName, ar as isFormulaError, as as mapFormulaReferences, at as numberToText, au as offsetFormulaReferences, av as parseCellReference, aw as parseFormula, ax as parseHtmlTable, ay as parseRange, az as readSpreadsheetClipboard, aA as rebaseClipboardRows, aB as remapFormulaReferences, aC as rowPassesFilters, aD as serializeHtmlTable, aE as shiftFormulaReferences, aF as sortCompareValues, aG as tokenizeFormula } from './controller-BhLLAoi8.js';
13
+ export { CellInputFormatKind, CsvParseOptions, CsvSerializeOptions, FillDirection, FormattedNumberValue, FormulaActiveCall, FormulaArgument, FormulaArgumentSpec, FormulaArgumentType, FormulaCaretContext, FormulaCriteriaPredicate, FormulaFunctionCategory, FormulaFunctionContext, FormulaFunctionDefinition, FormulaFunctionSuggestion, FormulaHints, FormulaSignaturePart, ImportFileIntoSpreadsheetOptions, MAX_NUMBER_FORMAT_CODE_CHARS, NUMBER_FORMAT_PRESETS, NumberFormat, NumberFormatColor, NumberFormatKind, NumberFormatPreset, ParsedCellInput, SPREADSHEET_IMPORT_ADAPTERS, SPREADSHEET_TABLE_ACTIONS, SpreadsheetImport, SpreadsheetImportAdapter, SpreadsheetMenuItem, SpreadsheetTableActionName, SpreadsheetTableActions, aggregateValues, applyFormulaSuggestion, bindSpreadsheetTableActions, builtinNumberFormat, builtinNumberFormatId, cellFormatForNumberFormat, checkFormulaArgumentCount, clampMenuPosition, clearNumberFormatCache, compareCellValues, computeFillTarget, csvImportAdapter, dateValueToSerial, escapeCsvField, fillSeries, formatCellDisplay, formatCellForDisplay, formatGeneralFit, formatNumberFormatValue, formatTextFunction, formatValueWithCode, getFillDirection, getFormulaArgumentSpecIndex, getFormulaCaretContext, getFormulaFunction, getFormulaHints, getFormulaSignature, getFormulaSignatureParts, getSpreadsheetMenuItems, importFileIntoSpreadsheet, isBlankValue, isGeneralNumberFormat, isSingleCellRange, listFormulaFunctions, matchesFilterRule, normalizeRange, numberFormatColorToCss, numberFormatForCellFormat, parseCellInput, parseCriteria, parseCsv, parseNumberText, parseTsv, rangeContains, rangeContainsRange, rangesIntersect, registerFormulaFunction, registerSpreadsheetImportAdapters, roundFloat, runSpreadsheetMenuItem, searchFormulaFunctions, serialFromYmd, serializeCsv, serializeTsv, toNumber, tsvImportAdapter, unregisterFormulaFunction, wildcardToRegExp } from './spreadsheet/index.js';
12
14
  export { BindDirtyToHistoryOptions, DirtyHistorySource, DirtyTracker, DirtyTrackerOptions, HistoryDirtyBinding, HistoryManager, bindDirtyToHistory, createDirtyTracker, createHistoryManager, defaultIsEqual, withoutDirty } from './history/index.js';
13
15
  export { C as Command, a as HistoryEntry, b as HistoryManagerOptions, c as HistoryMark, H as HistoryState, M as MergedExecutionOptions, S as SnapshotCommandOptions } from './types-GT5a5YAX.js';
14
16
  import { I as ImportAdapterRegistry, a as ImportOutcome, F as FileLike } from './registry-GJI4gToU.js';
15
17
  export { b as FindImportAdapterQuery, c as ImportAdapter, d as ImportContext, e as ImportError, f as ImportErrorCode, g as ImportFileOptions, h as ImportInput, i as ImportTarget, R as RegisterImportAdapterOptions, j as createImportContext } from './registry-GJI4gToU.js';
16
18
  import { Schema, Slice } from '@tiptap/pm/model';
17
19
  import { EditorView } from '@tiptap/pm/view';
20
+ export { DiffChange, DiffOpType, DiffRun, DiffSequencesOptions, diffChanges, diffSequences } from './compare/index.js';
21
+ export { C as CompareDocumentsOptions, a as CompareDocumentsResult, b as CompareSource, c as CompareSummary, d as compareDocuments, e as compareHtml } from './documents-BQjzJNe2.js';
18
22
  export { MarkdownOptions } from 'tiptap-markdown';
19
23
  import '@tiptap/pm/state';
20
24
  import '@tiptap/extension-image';
25
+ import './registry-evKTP4ls.js';
26
+ import './schema-DYDGdYL9.js';
21
27
  import '@tiptap/extension-mention';
22
28
  import '@tiptap/suggestion';
23
29