oasis-editor 0.0.1

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 (287) hide show
  1. package/README.md +1 -0
  2. package/dist/__tests__/app/PersistenceService.test.d.ts +1 -0
  3. package/dist/__tests__/app/footnoteUiCommands.test.d.ts +1 -0
  4. package/dist/__tests__/commands/text.test.d.ts +1 -0
  5. package/dist/__tests__/core/editorPluginIntegration.test.d.ts +1 -0
  6. package/dist/__tests__/core/editorState.test.d.ts +1 -0
  7. package/dist/__tests__/core/footnotes.test.d.ts +1 -0
  8. package/dist/__tests__/core/model.test.d.ts +1 -0
  9. package/dist/__tests__/core/pluginCollection.test.d.ts +1 -0
  10. package/dist/__tests__/core/tableCommands.test.d.ts +1 -0
  11. package/dist/__tests__/export/docxExport.test.d.ts +1 -0
  12. package/dist/__tests__/export/footnotesExport.test.d.ts +1 -0
  13. package/dist/__tests__/export/pdfWriter.test.d.ts +1 -0
  14. package/dist/__tests__/export/underlineStyle.test.d.ts +1 -0
  15. package/dist/__tests__/import/docxComplexSmoke.test.d.ts +1 -0
  16. package/dist/__tests__/import/docxImport.test.d.ts +1 -0
  17. package/dist/__tests__/import/footnotesImport.test.d.ts +1 -0
  18. package/dist/__tests__/integration/documentFlow.test.d.ts +1 -0
  19. package/dist/__tests__/ui/CanvasTableLayout.test.d.ts +1 -0
  20. package/dist/__tests__/ui/canvasHitTestService.test.d.ts +1 -0
  21. package/dist/__tests__/ui/canvasLayoutSnapshot.test.d.ts +1 -0
  22. package/dist/__tests__/ui/canvasSelectionGeometry.test.d.ts +1 -0
  23. package/dist/__tests__/ui/canvasTextRendering.test.d.ts +1 -0
  24. package/dist/__tests__/ui/composeMeasuredParagraphLines.test.d.ts +1 -0
  25. package/dist/__tests__/ui/dialog.test.d.ts +1 -0
  26. package/dist/__tests__/ui/fontDialog.test.d.ts +1 -0
  27. package/dist/__tests__/ui/footnotesLayout.test.d.ts +1 -0
  28. package/dist/__tests__/ui/layoutIdentity.test.d.ts +1 -0
  29. package/dist/__tests__/ui/layoutProjection.test.d.ts +1 -0
  30. package/dist/__tests__/ui/registry.test.d.ts +1 -0
  31. package/dist/__tests__/ui/tabs.test.d.ts +1 -0
  32. package/dist/__tests__/ui/textMeasurementAlignment.test.d.ts +1 -0
  33. package/dist/__tests__/word-parity/fixtures/corpus.d.ts +10 -0
  34. package/dist/__tests__/word-parity/fixtures/loremFixtures.d.ts +8 -0
  35. package/dist/__tests__/word-parity/wordLayout.word-parity.d.ts +1 -0
  36. package/dist/app/bootstrap/createOasisEditorApp.d.ts +6 -0
  37. package/dist/app/bootstrap/createOasisEditorContainer.d.ts +6 -0
  38. package/dist/app/clipboard/htmlClipboardParser.d.ts +3 -0
  39. package/dist/app/controllers/EditorCommandRegistry.d.ts +23 -0
  40. package/dist/app/controllers/EditorCommandsController.d.ts +53 -0
  41. package/dist/app/controllers/documentIO/DocumentExporter.d.ts +11 -0
  42. package/dist/app/controllers/documentIO/DocumentImporter.d.ts +17 -0
  43. package/dist/app/controllers/documentIO/ImageInsertionService.d.ts +14 -0
  44. package/dist/app/controllers/documentIO/downloadBlob.d.ts +1 -0
  45. package/dist/app/controllers/tableOpsCellSpanCommands.d.ts +21 -0
  46. package/dist/app/controllers/tableOpsGuards.d.ts +19 -0
  47. package/dist/app/controllers/tableOpsMutationCommands.d.ts +4 -0
  48. package/dist/app/controllers/tableOpsRowColumnCommands.d.ts +12 -0
  49. package/dist/app/controllers/tableOpsSelectionAwareCommands.d.ts +20 -0
  50. package/dist/app/controllers/tableOpsSelectionNavigation.d.ts +7 -0
  51. package/dist/app/controllers/tableOpsSelectionRanges.d.ts +34 -0
  52. package/dist/app/controllers/useEditorClipboard.d.ts +28 -0
  53. package/dist/app/controllers/useEditorDocumentIO.d.ts +31 -0
  54. package/dist/app/controllers/useEditorFindReplace.d.ts +28 -0
  55. package/dist/app/controllers/useEditorHistoryActions.d.ts +21 -0
  56. package/dist/app/controllers/useEditorImageOperations.d.ts +72 -0
  57. package/dist/app/controllers/useEditorKeyboard.d.ts +50 -0
  58. package/dist/app/controllers/useEditorLayout.d.ts +42 -0
  59. package/dist/app/controllers/useEditorNavigation.d.ts +22 -0
  60. package/dist/app/controllers/useEditorPersistence.d.ts +16 -0
  61. package/dist/app/controllers/useEditorRevision.d.ts +12 -0
  62. package/dist/app/controllers/useEditorStyle.d.ts +23 -0
  63. package/dist/app/controllers/useEditorSurfaceEvents.d.ts +44 -0
  64. package/dist/app/controllers/useEditorTableDrag.d.ts +29 -0
  65. package/dist/app/controllers/useEditorTableOperations.d.ts +45 -0
  66. package/dist/app/controllers/useEditorTableResize.d.ts +32 -0
  67. package/dist/app/controllers/useEditorTextDrag.d.ts +38 -0
  68. package/dist/app/controllers/useEditorTextInput.d.ts +27 -0
  69. package/dist/app/services/FindReplaceService.d.ts +12 -0
  70. package/dist/app/services/PersistenceService.d.ts +11 -0
  71. package/dist/assets/Arimo-Bold.ttf +0 -0
  72. package/dist/assets/Arimo-BoldItalic.ttf +0 -0
  73. package/dist/assets/Arimo-Italic.ttf +0 -0
  74. package/dist/assets/Arimo-Regular.ttf +0 -0
  75. package/dist/assets/Carlito-Bold.ttf +0 -0
  76. package/dist/assets/Carlito-BoldItalic.ttf +0 -0
  77. package/dist/assets/Carlito-Italic.ttf +0 -0
  78. package/dist/assets/Carlito-Regular.ttf +0 -0
  79. package/dist/assets/Roboto-Italic.ttf +0 -0
  80. package/dist/assets/Roboto-Medium.ttf +0 -0
  81. package/dist/assets/Roboto-MediumItalic.ttf +0 -0
  82. package/dist/assets/Roboto-Regular.ttf +0 -0
  83. package/dist/assets/Tinos-Bold.ttf +0 -0
  84. package/dist/assets/Tinos-BoldItalic.ttf +0 -0
  85. package/dist/assets/Tinos-Italic.ttf +0 -0
  86. package/dist/assets/Tinos-Regular.ttf +0 -0
  87. package/dist/assets/importDocxWorker-DIQ28Lka.js +12 -0
  88. package/dist/core/Editor.d.ts +33 -0
  89. package/dist/core/cloneState.d.ts +8 -0
  90. package/dist/core/commands/CommandBus.d.ts +9 -0
  91. package/dist/core/commands/CommandRef.d.ts +10 -0
  92. package/dist/core/commands/CommandRegistry.d.ts +10 -0
  93. package/dist/core/commands/block.d.ts +11 -0
  94. package/dist/core/commands/clipboard.d.ts +13 -0
  95. package/dist/core/commands/footnotes.d.ts +27 -0
  96. package/dist/core/commands/history.d.ts +7 -0
  97. package/dist/core/commands/image.d.ts +15 -0
  98. package/dist/core/commands/link.d.ts +4 -0
  99. package/dist/core/commands/list.d.ts +10 -0
  100. package/dist/core/commands/misc.d.ts +3 -0
  101. package/dist/core/commands/selection.d.ts +12 -0
  102. package/dist/core/commands/table.d.ts +10 -0
  103. package/dist/core/commands/text.d.ts +12 -0
  104. package/dist/core/commands/utils.d.ts +69 -0
  105. package/dist/core/editorCommands.d.ts +14 -0
  106. package/dist/core/editorState.d.ts +66 -0
  107. package/dist/core/engine.d.ts +13 -0
  108. package/dist/core/footnotes.d.ts +42 -0
  109. package/dist/core/headings.d.ts +9 -0
  110. package/dist/core/model/queries.d.ts +8 -0
  111. package/dist/core/model.d.ts +447 -0
  112. package/dist/core/plugin.d.ts +64 -0
  113. package/dist/core/plugins/PluginCollection.d.ts +16 -0
  114. package/dist/core/selection.d.ts +19 -0
  115. package/dist/core/tableLayout.d.ts +13 -0
  116. package/dist/core/textStyleMappings.d.ts +8 -0
  117. package/dist/core/wordBoundaries.d.ts +7 -0
  118. package/dist/demo/OasisSiteApp.d.ts +1 -0
  119. package/dist/export/docx/docxTypes.d.ts +66 -0
  120. package/dist/export/docx/exportEditorDocumentToDocx.d.ts +4 -0
  121. package/dist/export/docx/footnotesXml.d.ts +40 -0
  122. package/dist/export/docx/tableXml.d.ts +4 -0
  123. package/dist/export/docx/textXml.d.ts +6 -0
  124. package/dist/export/docx/xmlUtils.d.ts +10 -0
  125. package/dist/export/pdf/OasisPdfWriter.d.ts +93 -0
  126. package/dist/export/pdf/draw/drawBlockList.d.ts +5 -0
  127. package/dist/export/pdf/draw/drawFragment.d.ts +7 -0
  128. package/dist/export/pdf/draw/drawPageBackground.d.ts +3 -0
  129. package/dist/export/pdf/draw/drawParagraph.d.ts +5 -0
  130. package/dist/export/pdf/draw/drawTable.d.ts +5 -0
  131. package/dist/export/pdf/draw/fragmentGeometry.d.ts +12 -0
  132. package/dist/export/pdf/draw/lists.d.ts +6 -0
  133. package/dist/export/pdf/exportEditorDocumentToPdf.d.ts +4 -0
  134. package/dist/export/pdf/fonts/PdfFontRegistry.d.ts +28 -0
  135. package/dist/export/pdf/fonts/collectPdfFontFamilies.d.ts +3 -0
  136. package/dist/export/pdf/images.d.ts +4 -0
  137. package/dist/export/pdf/layout/PdfTextMeasurer.d.ts +24 -0
  138. package/dist/export/pdf/layout/layoutParagraph.d.ts +37 -0
  139. package/dist/export/pdf/units.d.ts +6 -0
  140. package/dist/i18n/index.d.ts +7 -0
  141. package/dist/i18n/locales/en.d.ts +251 -0
  142. package/dist/i18n/locales/pt-BR.d.ts +251 -0
  143. package/dist/import/docx/assetRegistry.d.ts +18 -0
  144. package/dist/import/docx/footnotes.d.ts +17 -0
  145. package/dist/import/docx/headerFooter.d.ts +7 -0
  146. package/dist/import/docx/importDocxInWorker.d.ts +8 -0
  147. package/dist/import/docx/importDocxToEditorDocument.d.ts +7 -0
  148. package/dist/import/docx/importDocxWorker.d.ts +1 -0
  149. package/dist/import/docx/numbering.d.ts +9 -0
  150. package/dist/import/docx/paragraphs.d.ts +12 -0
  151. package/dist/import/docx/relationships.d.ts +4 -0
  152. package/dist/import/docx/runs.d.ts +41 -0
  153. package/dist/import/docx/sectionProperties.d.ts +16 -0
  154. package/dist/import/docx/settings.d.ts +4 -0
  155. package/dist/import/docx/styles.d.ts +24 -0
  156. package/dist/import/docx/tables.d.ts +8 -0
  157. package/dist/import/docx/themeFonts.d.ts +12 -0
  158. package/dist/import/docx/units.d.ts +9 -0
  159. package/dist/import/docx/xmlHelpers.d.ts +15 -0
  160. package/dist/index.d.ts +43 -0
  161. package/dist/layoutProjection/blockHeights.d.ts +1 -0
  162. package/dist/layoutProjection/blocksPagination.d.ts +18 -0
  163. package/dist/layoutProjection/constants.d.ts +1 -0
  164. package/dist/layoutProjection/documentLayout.d.ts +7 -0
  165. package/dist/layoutProjection/footnotePagination.d.ts +21 -0
  166. package/dist/layoutProjection/headerFooterFootnotes.d.ts +4 -0
  167. package/dist/layoutProjection/headerFooterProjection.d.ts +14 -0
  168. package/dist/layoutProjection/index.d.ts +7 -0
  169. package/dist/layoutProjection/paragraphPagination.d.ts +20 -0
  170. package/dist/layoutProjection/paragraphProjection.d.ts +1 -0
  171. package/dist/layoutProjection/sectionPagination.d.ts +35 -0
  172. package/dist/layoutProjection/tablePagination.d.ts +14 -0
  173. package/dist/layoutProjection/tableProjection.d.ts +1 -0
  174. package/dist/main.d.ts +1 -0
  175. package/dist/oasis-editor.css +1 -0
  176. package/dist/oasis-editor.js +80464 -0
  177. package/dist/oasis-editor.umd.cjs +24 -0
  178. package/dist/plugins/internal/createEssentialsPlugin.d.ts +135 -0
  179. package/dist/plugins/internal/essentialsCommandBuilders.d.ts +10 -0
  180. package/dist/plugins/internal/essentialsCommandGroups.d.ts +39 -0
  181. package/dist/testing/wordLayoutParity.d.ts +62 -0
  182. package/dist/ui/OasisEditorApp.d.ts +4 -0
  183. package/dist/ui/OasisEditorAppProps.d.ts +49 -0
  184. package/dist/ui/OasisEditorContainer.d.ts +6 -0
  185. package/dist/ui/OasisEditorEditor.d.ts +103 -0
  186. package/dist/ui/app/EditorDialogsLayer.d.ts +26 -0
  187. package/dist/ui/app/EditorDragLayers.d.ts +20 -0
  188. package/dist/ui/app/EditorWorkspace.d.ts +37 -0
  189. package/dist/ui/app/buildEditorViewProps.d.ts +59 -0
  190. package/dist/ui/app/createEditorEssentialsPlugin.d.ts +42 -0
  191. package/dist/ui/app/createRuntimeCommandHost.d.ts +29 -0
  192. package/dist/ui/app/fontOptions.d.ts +5 -0
  193. package/dist/ui/app/shouldShowCaret.d.ts +9 -0
  194. package/dist/ui/app/useCanvasSurfaceHitResolver.d.ts +16 -0
  195. package/dist/ui/app/useEditorAppState.d.ts +11 -0
  196. package/dist/ui/app/useEditorContextMenuClipboard.d.ts +33 -0
  197. package/dist/ui/app/useEditorDialogs.d.ts +38 -0
  198. package/dist/ui/app/useEditorFocus.d.ts +11 -0
  199. package/dist/ui/app/useEditorFontOptions.d.ts +17 -0
  200. package/dist/ui/app/useEditorInteractionWiring.d.ts +64 -0
  201. package/dist/ui/app/useEditorRuntimeBootstrap.d.ts +33 -0
  202. package/dist/ui/app/useEditorRuntimePlugins.d.ts +14 -0
  203. package/dist/ui/app/useEditorTransactions.d.ts +20 -0
  204. package/dist/ui/app/useEditorUiOptions.d.ts +24 -0
  205. package/dist/ui/app/useFontDialogBridge.d.ts +31 -0
  206. package/dist/ui/canvas/CanvasDebug.d.ts +125 -0
  207. package/dist/ui/canvas/CanvasGeometry.d.ts +35 -0
  208. package/dist/ui/canvas/CanvasHitTestService.d.ts +37 -0
  209. package/dist/ui/canvas/CanvasLayoutSnapshot.d.ts +93 -0
  210. package/dist/ui/canvas/CanvasSelectionGeometry.d.ts +20 -0
  211. package/dist/ui/canvas/CanvasTableLayout.d.ts +65 -0
  212. package/dist/ui/canvas/canvasBlockPainter.d.ts +4 -0
  213. package/dist/ui/canvas/canvasImageCache.d.ts +1 -0
  214. package/dist/ui/canvas/canvasPageRenderer.d.ts +18 -0
  215. package/dist/ui/canvas/canvasParagraphPainter.d.ts +12 -0
  216. package/dist/ui/canvas/canvasTablePainter.d.ts +3 -0
  217. package/dist/ui/canvas/listNumbering.d.ts +3 -0
  218. package/dist/ui/caretGeometry.d.ts +30 -0
  219. package/dist/ui/clipboardImage.d.ts +2 -0
  220. package/dist/ui/components/CanvasEditorSurface.d.ts +5 -0
  221. package/dist/ui/components/CaretOverlay.d.ts +9 -0
  222. package/dist/ui/components/ContextMenu/ContextMenu.d.ts +19 -0
  223. package/dist/ui/components/Dialogs/Dialog.d.ts +17 -0
  224. package/dist/ui/components/Dialogs/FontDialog.d.ts +67 -0
  225. package/dist/ui/components/Dialogs/FontDialogModel.d.ts +15 -0
  226. package/dist/ui/components/Dialogs/ImageAltDialog.d.ts +8 -0
  227. package/dist/ui/components/Dialogs/LineSpacingDialog.d.ts +17 -0
  228. package/dist/ui/components/Dialogs/LinkDialog.d.ts +8 -0
  229. package/dist/ui/components/DropCaret.d.ts +16 -0
  230. package/dist/ui/components/FindReplace/FindReplaceDialog.d.ts +7 -0
  231. package/dist/ui/components/FloatingToolbar/FloatingTableToolbar.d.ts +11 -0
  232. package/dist/ui/components/Menubar/Menubar.d.ts +7 -0
  233. package/dist/ui/components/Menubar/defaultMenuItems.d.ts +3 -0
  234. package/dist/ui/components/Menubar/menuRegistry.d.ts +28 -0
  235. package/dist/ui/components/Outline/OutlinePanel.d.ts +10 -0
  236. package/dist/ui/components/PageBreak.d.ts +4 -0
  237. package/dist/ui/components/RevisionOverlay.d.ts +6 -0
  238. package/dist/ui/components/SelectionOverlay.d.ts +11 -0
  239. package/dist/ui/components/Tabs/Tabs.d.ts +18 -0
  240. package/dist/ui/components/TitleBar/TitleBar.d.ts +6 -0
  241. package/dist/ui/components/Toolbar/LineSpacingButton.d.ts +6 -0
  242. package/dist/ui/components/Toolbar/Toolbar.d.ts +15 -0
  243. package/dist/ui/components/Toolbar/ToolbarOverflowManager.d.ts +13 -0
  244. package/dist/ui/components/Toolbar/controls/ListOptionsControl.d.ts +7 -0
  245. package/dist/ui/components/Toolbar/controls/UnderlineControl.d.ts +10 -0
  246. package/dist/ui/components/Toolbar/groups/MetricGroup.d.ts +6 -0
  247. package/dist/ui/components/Toolbar/groups/SectionGroup.d.ts +6 -0
  248. package/dist/ui/components/Toolbar/groups/TableGroup.d.ts +6 -0
  249. package/dist/ui/components/Toolbar/presets/defaultPalette.d.ts +4 -0
  250. package/dist/ui/components/Toolbar/presets/defaultToolbar.d.ts +9 -0
  251. package/dist/ui/components/Toolbar/primitives/Button.d.ts +11 -0
  252. package/dist/ui/components/Toolbar/primitives/ColorPicker.d.ts +22 -0
  253. package/dist/ui/components/Toolbar/primitives/GridPicker.d.ts +12 -0
  254. package/dist/ui/components/Toolbar/primitives/Menu.d.ts +20 -0
  255. package/dist/ui/components/Toolbar/primitives/Popover.d.ts +34 -0
  256. package/dist/ui/components/Toolbar/primitives/Select.d.ts +12 -0
  257. package/dist/ui/components/Toolbar/primitives/Separator.d.ts +6 -0
  258. package/dist/ui/components/Toolbar/primitives/SplitButton.d.ts +30 -0
  259. package/dist/ui/components/Toolbar/primitives/useDismiss.d.ts +15 -0
  260. package/dist/ui/components/Toolbar/primitives/usePopoverPosition.d.ts +31 -0
  261. package/dist/ui/components/Toolbar/registry/ToolbarRegistry.d.ts +23 -0
  262. package/dist/ui/components/Toolbar/renderers/ToolbarItemRenderer.d.ts +13 -0
  263. package/dist/ui/components/Toolbar/renderers/renderers.d.ts +14 -0
  264. package/dist/ui/components/Toolbar/schema/items.d.ts +136 -0
  265. package/dist/ui/components/Toolbar/schema/palette.d.ts +15 -0
  266. package/dist/ui/components/Toolbar/state/bindItem.d.ts +28 -0
  267. package/dist/ui/components/Toolbar/state/createToolbarApi.d.ts +14 -0
  268. package/dist/ui/components/Toolbar/underlineStyles.d.ts +16 -0
  269. package/dist/ui/editorHistory.d.ts +25 -0
  270. package/dist/ui/editorUiTypes.d.ts +65 -0
  271. package/dist/ui/imageGeometry.d.ts +15 -0
  272. package/dist/ui/layoutIdentity.d.ts +23 -0
  273. package/dist/ui/layoutInvalidation.d.ts +9 -0
  274. package/dist/ui/mount.d.ts +10 -0
  275. package/dist/ui/shells/BalloonShell.d.ts +3 -0
  276. package/dist/ui/shells/DocumentShell.d.ts +29 -0
  277. package/dist/ui/shells/InlineShell.d.ts +3 -0
  278. package/dist/ui/tableGeometry.d.ts +16 -0
  279. package/dist/ui/tableUiUtils.d.ts +5 -0
  280. package/dist/ui/textMeasurement.d.ts +14 -0
  281. package/dist/ui/toolbarStyleState.d.ts +46 -0
  282. package/dist/ui/utils/IconManager.d.ts +2 -0
  283. package/dist/utils/indexeddb.d.ts +12 -0
  284. package/dist/utils/logger.d.ts +22 -0
  285. package/dist/utils/performanceMetrics.d.ts +58 -0
  286. package/dist/utils/throttle.d.ts +4 -0
  287. package/package.json +65 -0
@@ -0,0 +1,50 @@
1
+ import { EditorDocument, EditorPosition, EditorState } from '../../../../core/model.js';
2
+ import { BooleanStyleKey } from '../../../../ui/toolbarStyleState.js';
3
+ import { EditorCommandRegistry } from '../../EditorCommandRegistry.js';
4
+ import { SelectedImageRun } from '../../../../core/commands/image.js';
5
+
6
+ export interface EditorKeyboardDeps {
7
+ state: () => EditorState;
8
+ isReadOnly: () => boolean;
9
+ clearPreferredColumn: () => void;
10
+ resetTransactionGrouping: () => void;
11
+ applyState: (state: EditorState) => void;
12
+ applyTransactionalState: (transform: (state: EditorState) => EditorState) => void;
13
+ applyTableAwareParagraphEdit: (state: EditorState, edit: (state: EditorState) => EditorState) => EditorState;
14
+ applySelectionAwareParagraphCommand: (command: (state: EditorState) => EditorState) => void;
15
+ focusInput: () => void;
16
+ commandsController: {
17
+ promptForImageAlt: () => void;
18
+ promptForLink: () => void;
19
+ applyBooleanStyleCommand: (style: BooleanStyleKey) => void;
20
+ applyParagraphListCommand: (style: "bullet" | "ordered") => void;
21
+ applyInsertFootnoteCommand: () => void;
22
+ handleListEnter: () => boolean;
23
+ handleListBoundaryBackspace: (event: KeyboardEvent & {
24
+ currentTarget: HTMLTextAreaElement;
25
+ }) => boolean;
26
+ handleListTab: (direction: "indent" | "outdent") => boolean;
27
+ };
28
+ selectedImageRun: () => SelectedImageRun | null;
29
+ setForcePlainTextPaste: (value: boolean) => void;
30
+ moveSelectionByWord: (direction: "left" | "right", extend: boolean) => boolean;
31
+ moveSelectionToDocumentBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
32
+ moveSelectionToParagraphBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
33
+ moveSelectedImageByParagraph: (direction: -1 | 1) => boolean;
34
+ performUndo: () => void;
35
+ performRedo: () => void;
36
+ moveVerticalSelection: (direction: -1 | 1, extend: boolean) => boolean;
37
+ moveVerticalByBlock: (direction: -1 | 1) => boolean;
38
+ resolveAdjacentTableCellPosition: (document: EditorDocument, paragraphId: string, delta: -1 | 1) => EditorPosition | null;
39
+ applySelectionPreservingStructure: (selection: EditorState["selection"]) => void;
40
+ toggleFindReplace: (open?: boolean) => void;
41
+ toggleReplace: (open?: boolean) => void;
42
+ executeCommand?: (commandName: string, payload?: unknown) => unknown;
43
+ canExecuteCommand?: (commandName: string, payload?: unknown) => boolean;
44
+ }
45
+ export declare function createEditorKeyboardController(deps: EditorKeyboardDeps): {
46
+ handleKeyDown: (event: KeyboardEvent & {
47
+ currentTarget: HTMLTextAreaElement;
48
+ }) => void;
49
+ registry: EditorCommandRegistry;
50
+ };
@@ -0,0 +1,42 @@
1
+ import { EditorLayoutParagraph, EditorState } from '../../../../core/model.js';
2
+ import { CaretBox, InputBox, SelectionBox } from '../../../../ui/editorUiTypes.js';
3
+ import { SelectedImageSelectionBox } from '../../../../ui/canvas/CanvasSelectionGeometry.js';
4
+
5
+ interface UseEditorLayoutProps {
6
+ state: EditorState;
7
+ surfaceRef: () => HTMLDivElement | undefined;
8
+ viewportRef: () => HTMLDivElement | undefined;
9
+ isImporting?: () => boolean;
10
+ layoutMode?: "fast" | "wordParity";
11
+ }
12
+ type LayoutSyncReason = "selection" | "scroll" | "content-change" | "resize" | "import";
13
+ export interface LayoutInvalidation {
14
+ dirtyParagraphIds?: string[];
15
+ structureChanged?: boolean;
16
+ dirtyAll?: boolean;
17
+ }
18
+ export declare function useEditorLayout(props: UseEditorLayoutProps): {
19
+ measuredBlockHeights: import('../../solid-js').Accessor<Record<string, number>>;
20
+ measuredParagraphLayouts: import('../../solid-js').Accessor<Record<string, EditorLayoutParagraph>>;
21
+ inputBox: import('../../solid-js').Accessor<InputBox>;
22
+ selectionBoxes: import('../../solid-js').Accessor<SelectionBox[]>;
23
+ selectedImageBox: import('../../solid-js').Accessor<SelectedImageSelectionBox | null>;
24
+ caretBox: import('../../solid-js').Accessor<CaretBox>;
25
+ preferredColumnX: import('../../solid-js').Accessor<number | null>;
26
+ setPreferredColumnX: import('../../solid-js').Setter<number | null>;
27
+ clearPreferredColumn: () => null;
28
+ requestInputBoxSync: (reason?: LayoutSyncReason) => void;
29
+ scheduleDeferredLayoutMeasurement: (reason: LayoutSyncReason, options?: {
30
+ paragraphIds?: string[];
31
+ resolveWhenDone?: boolean;
32
+ blockHeightScope?: "all" | "visible";
33
+ }) => Promise<void> | null;
34
+ stabilizeLayoutAfterImport: () => Promise<void>;
35
+ syncMeasuredLayoutMetrics: (reason?: LayoutSyncReason) => boolean;
36
+ syncInputBox: (_reason?: LayoutSyncReason) => void;
37
+ setMeasuredBlockHeights: import('../../solid-js').Setter<Record<string, number>>;
38
+ setMeasuredParagraphLayouts: import('../../solid-js').Setter<Record<string, EditorLayoutParagraph>>;
39
+ applyInvalidation: (invalidation: LayoutInvalidation) => void;
40
+ onCleanupHook: () => void;
41
+ };
42
+ export {};
@@ -0,0 +1,22 @@
1
+ import { EditorState } from '../../../../core/model.js';
2
+ import { CaretBox } from '../../../../ui/editorUiTypes.js';
3
+
4
+ export interface UseEditorNavigationProps {
5
+ state: () => EditorState;
6
+ applyState: (state: EditorState) => void;
7
+ applyTransactionalState: (producer: (current: EditorState) => EditorState) => void;
8
+ surfaceRef: () => HTMLDivElement | null;
9
+ caretBox: () => CaretBox;
10
+ preferredColumnX: () => number | null;
11
+ setPreferredColumnX: (x: number | null) => void;
12
+ clearPreferredColumn: () => void;
13
+ resetTransactionGrouping: () => void;
14
+ focusInput: () => void;
15
+ }
16
+ export declare function createEditorNavigation(deps: UseEditorNavigationProps): {
17
+ moveSelectionToParagraphBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
18
+ moveSelectionToDocumentBoundary: (boundary: "start" | "end", extend: boolean) => boolean;
19
+ moveSelectionByWord: (direction: "left" | "right", extend: boolean) => boolean;
20
+ moveVerticalByBlock: (direction: -1 | 1) => boolean;
21
+ moveVerticalSelection: (direction: -1 | 1, extend: boolean) => boolean;
22
+ };
@@ -0,0 +1,16 @@
1
+ import { EditorDocument, EditorState } from '../../../../core/model.js';
2
+ import { EditorLogger } from '../../../../utils/logger.js';
3
+
4
+ export type PersistenceStatus = "Saved" | "Saving..." | "Error" | "Initial";
5
+ export interface UseEditorPersistenceResult {
6
+ status: () => PersistenceStatus;
7
+ }
8
+ export interface DocumentPersistence {
9
+ saveDocument(doc: EditorDocument): Promise<void>;
10
+ loadDocument(): Promise<EditorDocument | null>;
11
+ }
12
+ export declare function useEditorPersistence(state: EditorState, onLoaded: (doc: EditorDocument) => void, options: {
13
+ enabled?: boolean;
14
+ persistence: DocumentPersistence;
15
+ logger?: Pick<EditorLogger, "error">;
16
+ }): UseEditorPersistenceResult;
@@ -0,0 +1,12 @@
1
+ import { EditorState } from '../../../../core/model.js';
2
+ import { RevisionBox } from '../../../../ui/editorUiTypes.js';
3
+
4
+ export interface UseEditorRevisionProps {
5
+ state: () => EditorState;
6
+ surfaceRef: () => HTMLDivElement | null;
7
+ }
8
+ export declare function createEditorRevisionController(deps: UseEditorRevisionProps): {
9
+ hoveredRevision: import('../../solid-js').Accessor<RevisionBox | null>;
10
+ handleRevisionMouseEnter: (revisionId: string, event: MouseEvent) => void;
11
+ handleRevisionMouseLeave: () => void;
12
+ };
@@ -0,0 +1,23 @@
1
+ import { EditorState, EditorTextStyle } from '../../../../core/model.js';
2
+ import { ToolbarStyleState, BooleanStyleKey } from '../../../../ui/toolbarStyleState.js';
3
+ import { createEditorCommandsController } from '../../EditorCommandsController.js';
4
+
5
+ type ValueStyleKey = "fontFamily" | "fontSize" | "color" | "highlight" | "link" | "underlineStyle";
6
+ export interface UseEditorStyleProps {
7
+ state: () => EditorState;
8
+ commandsController: () => ReturnType<typeof createEditorCommandsController>;
9
+ clearPreferredColumn: () => void;
10
+ resetTransactionGrouping: () => void;
11
+ focusInput: () => void;
12
+ logger: {
13
+ info: (msg: string) => void;
14
+ };
15
+ }
16
+ export declare function createEditorStyleController(deps: UseEditorStyleProps): {
17
+ pendingCaretTextStyle: import('../../solid-js').Accessor<EditorTextStyle | undefined>;
18
+ clearPendingCaretTextStyle: () => void;
19
+ toolbarStyleState: () => ToolbarStyleState;
20
+ applyToolbarValueStyleCommand: <K extends ValueStyleKey>(key: K, value: EditorTextStyle[K] | null) => void;
21
+ applyToolbarBooleanStyleCommand: (key: BooleanStyleKey) => void;
22
+ };
23
+ export {};
@@ -0,0 +1,44 @@
1
+ import { EditorState, EditorParagraphNode } from '../../../../core/model.js';
2
+ import { SurfaceHit } from '../../../../ui/canvas/CanvasHitTestService.js';
3
+
4
+ export interface UseEditorSurfaceEventsProps {
5
+ state: () => EditorState;
6
+ applyState: (newState: EditorState) => void;
7
+ tableResize: {
8
+ handleMouseDown: (event: MouseEvent) => boolean;
9
+ };
10
+ imageOps: {
11
+ stopImageDrag: () => void;
12
+ stopImageResize: () => void;
13
+ startImageDrag: (paragraphId: string, paragraphOffset: number, event: MouseEvent, pointerBounds?: {
14
+ left: number;
15
+ top: number;
16
+ width: number;
17
+ height: number;
18
+ }) => void;
19
+ };
20
+ clearPendingCaretTextStyle: () => void;
21
+ clearPreferredColumn: () => void;
22
+ resetTransactionGrouping: () => void;
23
+ focusInputAfterPointerSelection: () => void;
24
+ resolveSurfaceHitAtPoint: (clientX: number, clientY: number, context?: {
25
+ forDrag?: boolean;
26
+ }) => SurfaceHit | null;
27
+ getParagraphById: (doc: EditorState["document"], id: string) => EditorParagraphNode | undefined;
28
+ textDrag?: {
29
+ tryStartTextDrag: (event: MouseEvent, hit: SurfaceHit | null) => boolean;
30
+ };
31
+ logger: {
32
+ debug: (msg: string) => void;
33
+ info: (msg: string, payload?: unknown) => void;
34
+ };
35
+ }
36
+ export declare function createEditorSurfaceEvents(deps: UseEditorSurfaceEventsProps): {
37
+ handleSurfaceMouseDown: (event: MouseEvent) => void;
38
+ handleSurfaceClick: (event: MouseEvent) => void;
39
+ handleSurfaceDblClick: (event: MouseEvent) => void;
40
+ handleParagraphMouseDown: (_paragraphId: string, event: MouseEvent & {
41
+ currentTarget: HTMLParagraphElement;
42
+ }) => void;
43
+ stopDragging: () => void;
44
+ };
@@ -0,0 +1,29 @@
1
+ import { EditorState, EditorPosition } from '../../../../core/model.js';
2
+
3
+ export interface TableDragOps {
4
+ dragging: () => boolean;
5
+ startClientY: () => number;
6
+ handleMouseDown: (tableId: string, event: MouseEvent) => void;
7
+ dropTargetPos: () => EditorPosition | null;
8
+ }
9
+ export declare function createEditorTableDrag(deps: {
10
+ state: () => EditorState;
11
+ applyTransactionalState: (producer: (current: EditorState) => EditorState) => void;
12
+ resolvePositionAtSurfacePoint: (clientX: number, clientY: number) => EditorPosition | null;
13
+ focusInput: () => void;
14
+ }): {
15
+ dragging: import('../../solid-js').Accessor<boolean>;
16
+ draggedTableInfo: import('../../solid-js').Accessor<{
17
+ tableId: string;
18
+ width: number;
19
+ height: number;
20
+ offsetX: number;
21
+ offsetY: number;
22
+ } | null>;
23
+ mousePos: import('../../solid-js').Accessor<{
24
+ x: number;
25
+ y: number;
26
+ }>;
27
+ dropTargetPos: import('../../solid-js').Accessor<EditorPosition | null>;
28
+ handleMouseDown: (tableId: string, event: MouseEvent) => void;
29
+ };
@@ -0,0 +1,45 @@
1
+ import { EditorBlockNode, EditorDocument, EditorPosition, EditorState, EditorEditingZone } from '../../../../core/model.js';
2
+ import { EditorLogger } from '../../../../utils/logger.js';
3
+
4
+ export interface EditorTableOperationsDeps {
5
+ applyTransactionalState: (producer: (current: EditorState) => EditorState, options?: {
6
+ mergeKey?: string;
7
+ }) => void;
8
+ applySelectionToStatePreservingStructure: (current: EditorState, nextSelection: EditorState["selection"]) => EditorState;
9
+ focusInput: () => void;
10
+ logger?: EditorLogger;
11
+ }
12
+ export declare function createEditorTableOperations(deps: EditorTableOperationsDeps): {
13
+ resolveTableCellRangeSelection: (current: EditorState) => EditorState["selection"] | null;
14
+ resolveHorizontalTableCellRange: (current: EditorState) => import('../../tableOpsSelectionRanges.js').HorizontalTableCellRange | null;
15
+ resolveVerticalTableCellRange: (current: EditorState) => import('../../tableOpsSelectionRanges.js').VerticalTableCellRange | null;
16
+ canMergeSelectedTableCells: (current: EditorState) => boolean;
17
+ canSplitSelectedTableCell: (current: EditorState) => boolean;
18
+ canMergeSelectedTableRows: (current: EditorState) => boolean;
19
+ canMergeSelectedTable: (current: EditorState) => boolean;
20
+ canSplitSelectedTableCellVertically: (current: EditorState) => boolean;
21
+ canSplitSelectedTable: (current: EditorState) => boolean;
22
+ canEditSelectedTableRow: (current: EditorState) => boolean;
23
+ canEditSelectedTableColumn: (current: EditorState) => boolean;
24
+ mergeSelectedTableCells: (current: EditorState) => EditorState;
25
+ mergeSelectedTableRows: (current: EditorState) => EditorState;
26
+ mergeSelectedTable: (current: EditorState) => EditorState;
27
+ splitSelectedTableCellVertically: (current: EditorState) => EditorState;
28
+ splitSelectedTableCell: (current: EditorState) => EditorState;
29
+ splitSelectedTable: (current: EditorState) => EditorState;
30
+ insertSelectedTableRow: (current: EditorState, direction: -1 | 1) => EditorState;
31
+ deleteSelectedTableRow: (current: EditorState) => EditorState;
32
+ insertSelectedTableColumn: (current: EditorState, direction: -1 | 1) => EditorState;
33
+ deleteSelectedTableColumn: (current: EditorState) => EditorState;
34
+ getRowVisualWidth: (row: import('../../../../core/model.js').EditorTableRowNode) => number;
35
+ getTableVisualWidth: (table: import('../../../../core/model.js').EditorTableNode) => number;
36
+ findCellAtVisualColumn: (row: import('../../../../core/model.js').EditorTableRowNode, visualColumn: number) => import('../../../../core/model.js').EditorTableCellNode | null;
37
+ findFirstNavigableParagraphInTable: (table: import('../../../../core/model.js').EditorTableNode) => import('../../../../core/model.js').EditorParagraphNode | null;
38
+ updateBlocksInCurrentSection: (current: EditorState, blocks: EditorBlockNode[], zone?: EditorEditingZone) => EditorState;
39
+ resolveAdjacentTableCellPosition: (document: EditorDocument, paragraphId: string, delta: -1 | 1) => EditorPosition | null;
40
+ applyTableAwareParagraphEdit: (current: EditorState, edit: (tempState: EditorState) => EditorState) => EditorState;
41
+ withExpandedTableCellSelection: (current: EditorState) => EditorState;
42
+ applySelectionAwareTextCommand: (command: (current: EditorState) => EditorState) => void;
43
+ applySelectionAwareParagraphCommand: (command: (current: EditorState) => EditorState) => void;
44
+ insertTableCommand: (rows: number, cols: number) => void;
45
+ };
@@ -0,0 +1,32 @@
1
+ import { EditorState } from '../../../../core/model.js';
2
+
3
+ export interface TableResizeOps {
4
+ resizing: () => {
5
+ type: "column" | "row";
6
+ tableId: string;
7
+ index: number;
8
+ initialPos: number;
9
+ currentPos: number;
10
+ initialRowHeightPx?: number;
11
+ minRowHeightPx?: number;
12
+ columnWidthsPt?: Record<number, number>;
13
+ maxColumnIndex?: number;
14
+ minColumnWidthsPx?: Record<number, number>;
15
+ resizeFromLeftEdge?: boolean;
16
+ initialTableIndentLeftPt?: number;
17
+ guideBounds: {
18
+ left: number;
19
+ top: number;
20
+ width: number;
21
+ height: number;
22
+ };
23
+ } | null;
24
+ handleMouseMove: (event: MouseEvent) => void;
25
+ handleMouseDown: (event: MouseEvent) => boolean;
26
+ }
27
+ export declare function createEditorTableResize(deps: {
28
+ state: () => EditorState;
29
+ applyTransactionalState: (producer: (current: EditorState) => EditorState) => void;
30
+ surfaceRef: () => HTMLElement | undefined;
31
+ viewportRef: () => HTMLElement | undefined;
32
+ }): TableResizeOps;
@@ -0,0 +1,38 @@
1
+ import { EditorPosition, EditorState } from '../../../../core/model.js';
2
+ import { SurfaceHit } from '../../../../ui/canvas/CanvasHitTestService.js';
3
+
4
+ export interface EditorTextDragDeps {
5
+ state: () => EditorState;
6
+ isReadOnly: () => boolean;
7
+ resolveSurfaceHitAtPoint: (clientX: number, clientY: number, context?: {
8
+ forDrag?: boolean;
9
+ }) => SurfaceHit | null;
10
+ applyTransactionalState: (producer: (current: EditorState) => EditorState, options?: {
11
+ mergeKey?: string;
12
+ }) => void;
13
+ applyTableAwareParagraphEdit: (state: EditorState, edit: (state: EditorState) => EditorState) => EditorState;
14
+ clearPreferredColumn: () => void;
15
+ resetTransactionGrouping: () => void;
16
+ focusInputAfterPointerSelection: () => void;
17
+ logger?: {
18
+ debug: (msg: string, payload?: unknown) => void;
19
+ info: (msg: string, payload?: unknown) => void;
20
+ warn?: (msg: string, payload?: unknown) => void;
21
+ };
22
+ }
23
+ export declare function createEditorTextDrag(deps: EditorTextDragDeps): {
24
+ dragging: import('../../solid-js').Accessor<boolean>;
25
+ dropTargetPos: import('../../solid-js').Accessor<EditorPosition | null>;
26
+ copyMode: import('../../solid-js').Accessor<boolean>;
27
+ pointerPos: import('../../solid-js').Accessor<{
28
+ x: number;
29
+ y: number;
30
+ } | null>;
31
+ caretViewport: import('../../solid-js').Accessor<{
32
+ left: number;
33
+ top: number;
34
+ height: number;
35
+ } | null>;
36
+ tryStartTextDrag: (event: MouseEvent, hit: SurfaceHit | null) => boolean;
37
+ stopDrag: () => void;
38
+ };
@@ -0,0 +1,27 @@
1
+ import { EditorState, EditorTextStyle } from '../../../../core/model.js';
2
+
3
+ export interface UseEditorTextInputProps {
4
+ state: () => EditorState;
5
+ isReadOnly: () => boolean;
6
+ logger: {
7
+ debug: (msg: string) => void;
8
+ info: (msg: string) => void;
9
+ };
10
+ clearPreferredColumn: () => void;
11
+ pendingCaretTextStyle: () => EditorTextStyle | undefined;
12
+ applyTransactionalState: (producer: (current: EditorState) => EditorState, options?: {
13
+ mergeKey?: string;
14
+ }) => void;
15
+ applyTableAwareParagraphEdit: (state: EditorState, edit: (temp: EditorState) => EditorState) => EditorState;
16
+ focusInput: () => void;
17
+ }
18
+ export declare function createEditorTextInput(deps: UseEditorTextInputProps): {
19
+ handleTextInput: (event: InputEvent & {
20
+ currentTarget: HTMLTextAreaElement;
21
+ }) => void;
22
+ handleCompositionStart: () => void;
23
+ handleCompositionEnd: (event: CompositionEvent & {
24
+ currentTarget: HTMLTextAreaElement;
25
+ }) => void;
26
+ composing: import('../../solid-js').Accessor<boolean>;
27
+ };
@@ -0,0 +1,12 @@
1
+ import { EditorDocument, EditorPosition } from '../../../../core/model.js';
2
+
3
+ export interface FindReplaceMatch {
4
+ anchor: EditorPosition;
5
+ focus: EditorPosition;
6
+ paragraphIndex: number;
7
+ }
8
+ export interface FindOptions {
9
+ matchCase?: boolean;
10
+ wholeWord?: boolean;
11
+ }
12
+ export declare function findMatchesInDocument(doc: EditorDocument, searchTerm: string, options?: FindOptions): FindReplaceMatch[];
@@ -0,0 +1,11 @@
1
+ import { EditorDocument } from '../../../../core/model.js';
2
+
3
+ export declare class PersistenceService {
4
+ private db;
5
+ private getDB;
6
+ saveDocument(doc: EditorDocument): Promise<void>;
7
+ loadDocument(): Promise<EditorDocument | null>;
8
+ clearDocument(): Promise<void>;
9
+ close(): void;
10
+ }
11
+ export declare const persistenceService: PersistenceService;
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file