@forgedevstack/ink 1.1.7 → 1.1.9
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.
- package/CHANGELOG.md +40 -0
- package/README.md +9 -1
- package/bin/ink.const.mjs +26 -0
- package/bin/ink.mjs +58 -0
- package/dist/components/InkEditor/InkEditor.cjs +1 -1
- package/dist/components/InkEditor/InkEditor.d.ts.map +1 -1
- package/dist/components/InkEditor/InkEditor.js +1193 -834
- package/dist/components/InkEditor/components/AiPanel/AiPanel.cjs +1 -1
- package/dist/components/InkEditor/components/AiPanel/AiPanel.d.ts.map +1 -1
- package/dist/components/InkEditor/components/AiPanel/AiPanel.js +58 -52
- package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.cjs +1 -0
- package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.d.ts +4 -0
- package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.js +223 -0
- package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.types.d.ts +10 -0
- package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ExcelSheetPanel/index.d.ts +3 -0
- package/dist/components/InkEditor/components/ExcelSheetPanel/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.cjs +1 -0
- package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.d.ts +4 -0
- package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.d.ts.map +1 -0
- package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.js +91 -0
- package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.types.d.ts +11 -0
- package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/GraphEditModal/index.d.ts +3 -0
- package/dist/components/InkEditor/components/GraphEditModal/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/GraphPicker/GraphPicker.cjs +1 -0
- package/dist/components/InkEditor/components/GraphPicker/GraphPicker.d.ts +4 -0
- package/dist/components/InkEditor/components/GraphPicker/GraphPicker.d.ts.map +1 -0
- package/dist/components/InkEditor/components/GraphPicker/GraphPicker.js +98 -0
- package/dist/components/InkEditor/components/GraphPicker/GraphPicker.types.d.ts +10 -0
- package/dist/components/InkEditor/components/GraphPicker/GraphPicker.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/GraphPicker/index.d.ts +3 -0
- package/dist/components/InkEditor/components/GraphPicker/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.cjs +1 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.d.ts +4 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.d.ts.map +1 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.js +27 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.types.d.ts +7 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/index.d.ts +3 -0
- package/dist/components/InkEditor/components/HtmlSourcePanel/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/OutlineRail/OutlineRail.cjs +1 -1
- package/dist/components/InkEditor/components/OutlineRail/OutlineRail.d.ts.map +1 -1
- package/dist/components/InkEditor/components/OutlineRail/OutlineRail.js +17 -12
- package/dist/components/InkEditor/components/OutlineRail/OutlineRail.types.d.ts +1 -0
- package/dist/components/InkEditor/components/OutlineRail/OutlineRail.types.d.ts.map +1 -1
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.cjs +1 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.cjs +1 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.d.ts +7 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.d.ts.map +1 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.js +9 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.d.ts +4 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.d.ts.map +1 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.js +82 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.types.d.ts +8 -0
- package/dist/components/InkEditor/components/PresenceStack/PresenceStack.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/PresenceStack/index.d.ts +3 -0
- package/dist/components/InkEditor/components/PresenceStack/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.cjs +1 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.cjs +1 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.d.ts +7 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.d.ts.map +1 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.js +10 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.d.ts +4 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.d.ts.map +1 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.js +65 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.types.d.ts +6 -0
- package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/RemoteCursors/index.d.ts +3 -0
- package/dist/components/InkEditor/components/RemoteCursors/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.cjs +1 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.cjs +1 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.d.ts +10 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.d.ts.map +1 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.js +18 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.d.ts +4 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.d.ts.map +1 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.js +96 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.types.d.ts +11 -0
- package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/TableSizePicker/index.d.ts +3 -0
- package/dist/components/InkEditor/components/TableSizePicker/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ThemePicker/ThemePicker.cjs +1 -0
- package/dist/components/InkEditor/components/ThemePicker/ThemePicker.d.ts +4 -0
- package/dist/components/InkEditor/components/ThemePicker/ThemePicker.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ThemePicker/ThemePicker.js +65 -0
- package/dist/components/InkEditor/components/ThemePicker/ThemePicker.types.d.ts +12 -0
- package/dist/components/InkEditor/components/ThemePicker/ThemePicker.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ThemePicker/hooks/index.d.ts +3 -0
- package/dist/components/InkEditor/components/ThemePicker/hooks/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.cjs +1 -0
- package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.d.ts +13 -0
- package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.js +39 -0
- package/dist/components/InkEditor/components/ThemePicker/index.d.ts +3 -0
- package/dist/components/InkEditor/components/ThemePicker/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/TitleGallery/TitleGallery.cjs +1 -0
- package/dist/components/InkEditor/components/TitleGallery/TitleGallery.d.ts +4 -0
- package/dist/components/InkEditor/components/TitleGallery/TitleGallery.d.ts.map +1 -0
- package/dist/components/InkEditor/components/TitleGallery/TitleGallery.js +79 -0
- package/dist/components/InkEditor/components/TitleGallery/TitleGallery.types.d.ts +10 -0
- package/dist/components/InkEditor/components/TitleGallery/TitleGallery.types.d.ts.map +1 -0
- package/dist/components/InkEditor/components/TitleGallery/index.d.ts +3 -0
- package/dist/components/InkEditor/components/TitleGallery/index.d.ts.map +1 -0
- package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.cjs +1 -1
- package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.d.ts.map +1 -1
- package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.js +41 -18
- package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.cjs +1 -1
- package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.d.ts.map +1 -1
- package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.js +25 -23
- package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.cjs +1 -1
- package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.d.ts +1 -1
- package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.d.ts.map +1 -1
- package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.js +7 -7
- package/dist/components/InkEditor/components/index.d.ts +18 -0
- package/dist/components/InkEditor/components/index.d.ts.map +1 -1
- package/dist/components/InkEditor/helpers/format.utils.cjs +2 -2
- package/dist/components/InkEditor/helpers/format.utils.d.ts +1 -1
- package/dist/components/InkEditor/helpers/format.utils.d.ts.map +1 -1
- package/dist/components/InkEditor/helpers/format.utils.js +72 -72
- package/dist/components/InkTabs/InkTabs.cjs +1 -0
- package/dist/components/InkTabs/InkTabs.d.ts +4 -0
- package/dist/components/InkTabs/InkTabs.d.ts.map +1 -0
- package/dist/components/InkTabs/InkTabs.js +104 -0
- package/dist/components/InkTabs/index.d.ts +2 -0
- package/dist/components/InkTabs/index.d.ts.map +1 -0
- package/dist/components/InkWorkspace/InkWorkspace.cjs +1 -0
- package/dist/components/InkWorkspace/InkWorkspace.d.ts +4 -0
- package/dist/components/InkWorkspace/InkWorkspace.d.ts.map +1 -0
- package/dist/components/InkWorkspace/InkWorkspace.js +317 -0
- package/dist/components/InkWorkspace/components/WorkspaceIcons.cjs +1 -0
- package/dist/components/InkWorkspace/components/WorkspaceIcons.d.ts +11 -0
- package/dist/components/InkWorkspace/components/WorkspaceIcons.d.ts.map +1 -0
- package/dist/components/InkWorkspace/components/WorkspaceIcons.js +39 -0
- package/dist/components/InkWorkspace/hooks/useInkWorkspace.cjs +1 -0
- package/dist/components/InkWorkspace/hooks/useInkWorkspace.d.ts +30 -0
- package/dist/components/InkWorkspace/hooks/useInkWorkspace.d.ts.map +1 -0
- package/dist/components/InkWorkspace/hooks/useInkWorkspace.js +72 -0
- package/dist/components/InkWorkspace/index.d.ts +4 -0
- package/dist/components/InkWorkspace/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/constants/collab.const.cjs +1 -0
- package/dist/constants/collab.const.d.ts +20 -0
- package/dist/constants/collab.const.d.ts.map +1 -0
- package/dist/constants/collab.const.js +54 -0
- package/dist/constants/colorMode.const.cjs +1 -1
- package/dist/constants/colorMode.const.d.ts +1 -1
- package/dist/constants/colorMode.const.d.ts.map +1 -1
- package/dist/constants/colorMode.const.js +4 -4
- package/dist/constants/contextMenu.const.cjs +1 -1
- package/dist/constants/contextMenu.const.d.ts +2 -0
- package/dist/constants/contextMenu.const.d.ts.map +1 -1
- package/dist/constants/contextMenu.const.js +17 -15
- package/dist/constants/defaultIcons.cjs +1 -1
- package/dist/constants/defaultIcons.d.ts.map +1 -1
- package/dist/constants/defaultIcons.js +20 -13
- package/dist/constants/defaults.const.cjs +1 -1
- package/dist/constants/defaults.const.d.ts +48 -0
- package/dist/constants/defaults.const.d.ts.map +1 -1
- package/dist/constants/defaults.const.js +201 -102
- package/dist/constants/generals.const.cjs +1 -1
- package/dist/constants/generals.const.d.ts +48 -0
- package/dist/constants/generals.const.d.ts.map +1 -1
- package/dist/constants/generals.const.js +71 -28
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/numbers.cjs +1 -1
- package/dist/constants/numbers.d.ts +14 -0
- package/dist/constants/numbers.d.ts.map +1 -1
- package/dist/constants/numbers.js +47 -28
- package/dist/constants/plugins.const.cjs +1 -0
- package/dist/constants/plugins.const.d.ts +13 -0
- package/dist/constants/plugins.const.d.ts.map +1 -0
- package/dist/constants/plugins.const.js +45 -0
- package/dist/constants/table.const.cjs +1 -1
- package/dist/constants/table.const.d.ts +4 -0
- package/dist/constants/table.const.d.ts.map +1 -1
- package/dist/constants/table.const.js +10 -6
- package/dist/constants/toolbar.const.cjs +1 -1
- package/dist/constants/toolbar.const.d.ts +7 -0
- package/dist/constants/toolbar.const.d.ts.map +1 -1
- package/dist/constants/toolbar.const.js +16 -9
- package/dist/constants/toolbarMenu.const.cjs +1 -1
- package/dist/constants/toolbarMenu.const.d.ts +2 -0
- package/dist/constants/toolbarMenu.const.d.ts.map +1 -1
- package/dist/constants/toolbarMenu.const.js +80 -19
- package/dist/constants/workspace.const.cjs +1 -0
- package/dist/constants/workspace.const.d.ts +24 -0
- package/dist/constants/workspace.const.d.ts.map +1 -0
- package/dist/constants/workspace.const.js +23 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useInkCollaboration.cjs +1 -0
- package/dist/hooks/useInkCollaboration.d.ts +4 -0
- package/dist/hooks/useInkCollaboration.d.ts.map +1 -0
- package/dist/hooks/useInkCollaboration.js +86 -0
- package/dist/hooks/useToolbarOverflow.cjs +1 -0
- package/dist/hooks/useToolbarOverflow.d.ts +8 -0
- package/dist/hooks/useToolbarOverflow.d.ts.map +1 -0
- package/dist/hooks/useToolbarOverflow.js +29 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +150 -104
- package/dist/plugins/excel/excel.utils.cjs +1 -0
- package/dist/plugins/excel/excel.utils.d.ts +13 -0
- package/dist/plugins/excel/excel.utils.d.ts.map +1 -0
- package/dist/plugins/excel/excel.utils.js +40 -0
- package/dist/plugins/excel/index.d.ts +3 -0
- package/dist/plugins/excel/index.d.ts.map +1 -0
- package/dist/plugins/graph/graph.const.cjs +1 -0
- package/dist/plugins/graph/graph.const.d.ts +14 -0
- package/dist/plugins/graph/graph.const.d.ts.map +1 -0
- package/dist/plugins/graph/graph.const.js +24 -0
- package/dist/plugins/graph/graph.types.d.ts +7 -0
- package/dist/plugins/graph/graph.types.d.ts.map +1 -0
- package/dist/plugins/graph/graph.utils.cjs +1 -0
- package/dist/plugins/graph/graph.utils.d.ts +11 -0
- package/dist/plugins/graph/graph.utils.d.ts.map +1 -0
- package/dist/plugins/graph/graph.utils.js +76 -0
- package/dist/plugins/graph/index.d.ts +4 -0
- package/dist/plugins/graph/index.d.ts.map +1 -0
- package/dist/plugins/host/index.d.ts +2 -0
- package/dist/plugins/host/index.d.ts.map +1 -0
- package/dist/plugins/host/inkPlugins.cjs +1 -0
- package/dist/plugins/host/inkPlugins.d.ts +16 -0
- package/dist/plugins/host/inkPlugins.d.ts.map +1 -0
- package/dist/plugins/host/inkPlugins.js +20 -0
- package/dist/plugins/index.d.ts +5 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/theme/index.d.ts +4 -0
- package/dist/plugins/theme/index.d.ts.map +1 -0
- package/dist/plugins/theme/inkTheme.cjs +1 -0
- package/dist/plugins/theme/inkTheme.d.ts +5 -0
- package/dist/plugins/theme/inkTheme.d.ts.map +1 -0
- package/dist/plugins/theme/inkTheme.js +27 -0
- package/dist/plugins/theme/theme.const.cjs +1 -0
- package/dist/plugins/theme/theme.const.d.ts +9 -0
- package/dist/plugins/theme/theme.const.d.ts.map +1 -0
- package/dist/plugins/theme/theme.const.js +15 -0
- package/dist/plugins/theme/theme.types.d.ts +12 -0
- package/dist/plugins/theme/theme.types.d.ts.map +1 -0
- package/dist/plugins/titles/index.d.ts +4 -0
- package/dist/plugins/titles/index.d.ts.map +1 -0
- package/dist/plugins/titles/titles.const.cjs +1 -0
- package/dist/plugins/titles/titles.const.d.ts +4 -0
- package/dist/plugins/titles/titles.const.d.ts.map +1 -0
- package/dist/plugins/titles/titles.const.js +15 -0
- package/dist/plugins/titles/titles.types.d.ts +2 -0
- package/dist/plugins/titles/titles.types.d.ts.map +1 -0
- package/dist/plugins/titles/titles.utils.cjs +1 -0
- package/dist/plugins/titles/titles.utils.d.ts +3 -0
- package/dist/plugins/titles/titles.utils.d.ts.map +1 -0
- package/dist/plugins/titles/titles.utils.js +14 -0
- package/dist/styles.css +1 -1
- package/dist/types/collab.types.d.ts +55 -0
- package/dist/types/collab.types.d.ts.map +1 -0
- package/dist/types/features.types.d.ts +1 -1
- package/dist/types/features.types.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/ink.types.d.ts +10 -2
- package/dist/types/ink.types.d.ts.map +1 -1
- package/dist/types/plugin.types.d.ts +8 -0
- package/dist/types/plugin.types.d.ts.map +1 -0
- package/dist/types/premium.types.d.ts +1 -1
- package/dist/types/premium.types.d.ts.map +1 -1
- package/dist/types/workspace.types.d.ts +54 -0
- package/dist/types/workspace.types.d.ts.map +1 -0
- package/dist/utils/collab.utils.cjs +1 -0
- package/dist/utils/collab.utils.d.ts +5 -0
- package/dist/utils/collab.utils.d.ts.map +1 -0
- package/dist/utils/collab.utils.js +32 -0
- package/dist/utils/collab.utils.test.d.ts +2 -0
- package/dist/utils/collab.utils.test.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/ink.brand.test.d.ts +2 -0
- package/dist/utils/ink.brand.test.d.ts.map +1 -0
- package/dist/utils/outline.utils.cjs +1 -1
- package/dist/utils/outline.utils.d.ts.map +1 -1
- package/dist/utils/outline.utils.js +32 -32
- package/dist/utils/table.utils.cjs +1 -1
- package/dist/utils/table.utils.d.ts +4 -0
- package/dist/utils/table.utils.d.ts.map +1 -1
- package/dist/utils/table.utils.js +84 -45
- package/dist/utils/workspace.utils.cjs +1 -0
- package/dist/utils/workspace.utils.d.ts +5 -0
- package/dist/utils/workspace.utils.d.ts.map +1 -0
- package/dist/utils/workspace.utils.js +26 -0
- package/dist/utils/workspace.utils.test.d.ts +2 -0
- package/dist/utils/workspace.utils.test.d.ts.map +1 -0
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
## 1.1.9
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Multi-Document Tabs (`InkTabs`)** (INK-77): Switch between multiple open document buffers, preserve isolated undo/redo history, dirty state indicator dot (●), and inline tab rename/close actions.
|
|
9
|
+
- **Workspace Document Tree & File Explorer (`InkWorkspace`)** (INK-78): Collapsible sidebar tree with document search, folder hierarchy, document create/rename/duplicate/delete, and status counters.
|
|
10
|
+
- **Real-Time Presence & Remote Collaborators** (INK-79): Avatar presence stack in the toolbar, remote colored collaborator carets and selection overlays with name tags, and `useInkCollaboration` hook.
|
|
11
|
+
- **Split-Screen Dual Buffer View** (INK-80): Side-by-side (vertical) or stacked (horizontal) split editing to view and edit two documents simultaneously.
|
|
12
|
+
- **Portal Workspace & Collaboration Integration** (INK-81): Multi-document workspace demo and live collaboration playground.
|
|
13
|
+
|
|
14
|
+
## 1.1.8
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- Sheet panel options between the grid and Insert (add/remove row and column, clear, import)
|
|
18
|
+
- `npx @forgedevstack/ink --plugin titles|graph|theme|excel` installer
|
|
19
|
+
- Responsive toolbar overflow (`⋯`) so extra tools open on a second row
|
|
20
|
+
- Fill-screen mode (toolbar, double-click the bar, or Lab next to Share)
|
|
21
|
+
- Graph color editing and Bear Modal for graph values
|
|
22
|
+
- Sheet grid column/row hover like a spreadsheet
|
|
23
|
+
- Theming plugin (`theme`) — paper, snow, ink, dark — portal dark mode no longer restyles the editor
|
|
24
|
+
- Toolbar hover hint row and colored pips on installed plugins
|
|
25
|
+
- Outline toolbar toggle (`outline`)
|
|
26
|
+
- Graph context menu: bar / line / pie, edit values, Ask Ink AI
|
|
27
|
+
- Plugin host `inkPlugins` plus standalone Titles and Graph packages
|
|
28
|
+
- HTML source view toggle (`htmlSource` toolbar option and `features.htmlSource`)
|
|
29
|
+
- Table size picker (hover grid) for insert
|
|
30
|
+
- Table column resize from the cell edge
|
|
31
|
+
- Context menu: toggle header row
|
|
32
|
+
- Titles plugin: 30 Word-era title styles in a gallery (`titles`)
|
|
33
|
+
- Sheet plugin: grid editor and CSV import (`excel`)
|
|
34
|
+
- Graph plugin: bar, line, and pie inserts (`graph`)
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- Sheet and Graph toolbar buttons no longer stretch the row or force overflow scroll
|
|
38
|
+
- Font and list dropdowns keep light tokens when the host page is dark (`data-color-mode` + forced-light menu)
|
|
39
|
+
- Linking selected text keeps the range after the URL prompt
|
|
40
|
+
- Ink AI tabs no longer overlap
|
|
41
|
+
- Outline lists titles and can be shown or hidden
|
|
42
|
+
|
|
3
43
|
## 1.1.7
|
|
4
44
|
|
|
5
45
|
### Added
|
package/README.md
CHANGED
|
@@ -16,7 +16,15 @@
|
|
|
16
16
|
## Install
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
|
|
19
|
+
npx i @forgedevstack/ink
|
|
20
|
+
npx @forgedevstack/ink --plugin titles graph theme excel
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx @forgedevstack/ink --plugin titles
|
|
25
|
+
npx @forgedevstack/ink --plugin graph
|
|
26
|
+
npx @forgedevstack/ink --plugin theme
|
|
27
|
+
npx @forgedevstack/ink --plugin excel
|
|
20
28
|
```
|
|
21
29
|
|
|
22
30
|
```tsx
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const INK_PACKAGE_NAME = '@forgedevstack/ink';
|
|
2
|
+
|
|
3
|
+
export const PLUGIN_FLAG = '--plugin';
|
|
4
|
+
|
|
5
|
+
export const PLUGIN_PACKAGE_BY_NAME = {
|
|
6
|
+
titles: '@forgedevstack/ink-titles',
|
|
7
|
+
graph: '@forgedevstack/ink-graph',
|
|
8
|
+
theme: '@forgedevstack/ink-theme',
|
|
9
|
+
excel: '@forgedevstack/ink-excel',
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const NPM_INSTALL = 'npm';
|
|
13
|
+
|
|
14
|
+
export const NPM_INSTALL_ARGS = ['install'];
|
|
15
|
+
|
|
16
|
+
export const USAGE_LINES = [
|
|
17
|
+
'npx i @forgedevstack/ink',
|
|
18
|
+
'npx @forgedevstack/ink --plugin titles',
|
|
19
|
+
'npx @forgedevstack/ink --plugin graph',
|
|
20
|
+
'npx @forgedevstack/ink --plugin theme',
|
|
21
|
+
'npx @forgedevstack/ink --plugin excel',
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
export const UNKNOWN_PLUGIN_PREFIX = 'Unknown plugin:';
|
|
25
|
+
|
|
26
|
+
export const INSTALL_FAILED = 'Install failed.';
|
package/bin/ink.mjs
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { spawnSync } from 'node:child_process';
|
|
4
|
+
import {
|
|
5
|
+
INK_PACKAGE_NAME,
|
|
6
|
+
INSTALL_FAILED,
|
|
7
|
+
NPM_INSTALL,
|
|
8
|
+
NPM_INSTALL_ARGS,
|
|
9
|
+
PLUGIN_FLAG,
|
|
10
|
+
PLUGIN_PACKAGE_BY_NAME,
|
|
11
|
+
UNKNOWN_PLUGIN_PREFIX,
|
|
12
|
+
USAGE_LINES,
|
|
13
|
+
} from './ink.const.mjs';
|
|
14
|
+
|
|
15
|
+
const collectPluginNames = (argv) => {
|
|
16
|
+
const names = [];
|
|
17
|
+
let taking = false;
|
|
18
|
+
argv.forEach((arg) => {
|
|
19
|
+
if (arg === PLUGIN_FLAG) {
|
|
20
|
+
taking = true;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (arg.startsWith(`${PLUGIN_FLAG}=`)) {
|
|
24
|
+
taking = false;
|
|
25
|
+
names.push(arg.slice(PLUGIN_FLAG.length + 1));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (arg.startsWith('-')) {
|
|
29
|
+
taking = false;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (taking) names.push(arg);
|
|
33
|
+
});
|
|
34
|
+
return names.filter(Boolean);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const pluginNames = collectPluginNames(process.argv.slice(2));
|
|
38
|
+
const unknown = pluginNames.filter((name) => !PLUGIN_PACKAGE_BY_NAME[name]);
|
|
39
|
+
if (unknown.length > 0) {
|
|
40
|
+
process.stderr.write(`${UNKNOWN_PLUGIN_PREFIX} ${unknown.join(', ')}\n`);
|
|
41
|
+
process.stderr.write(`${USAGE_LINES.join('\n')}\n`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const packages = [
|
|
46
|
+
INK_PACKAGE_NAME,
|
|
47
|
+
...pluginNames.map((name) => PLUGIN_PACKAGE_BY_NAME[name]),
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
const result = spawnSync(NPM_INSTALL, [...NPM_INSTALL_ARGS, ...packages], {
|
|
51
|
+
stdio: 'inherit',
|
|
52
|
+
shell: false,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
if (result.status !== 0) {
|
|
56
|
+
process.stderr.write(`${INSTALL_FAILED}\n`);
|
|
57
|
+
process.exit(result.status ?? 1);
|
|
58
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),r=require("react"),f=require("../../constants/numbers.cjs"),p=require("../../constants/generals.const.cjs"),N=require("../../constants/toolbar.const.cjs"),h=require("../../constants/toolbarMenu.const.cjs"),Zt=require("../../constants/colorMode.const.cjs"),ie=require("../../constants/keyboard.const.cjs"),Ze=require("../../constants/fonts.const.cjs"),Ye=require("../../constants/lists.const.cjs"),H=require("../../constants/findReplaceMenu.const.cjs"),ze=require("../../constants/blocks.const.cjs"),u=require("../../constants/defaults.const.cjs"),yo=require("../../constants/aiModels.const.cjs");require("../../constants/openai.const.cjs");const Yt=require("../../constants/defaultIcons.cjs"),d=require("../../constants/contextMenu.const.cjs"),Ko=require("../../utils/cn.utils.cjs"),vo=require("../../utils/typo.utils.cjs"),zt=require("../../utils/id.utils.cjs"),k=require("../../utils/table.utils.cjs"),L=require("../../utils/blocks.utils.cjs"),F=require("../../utils/trackChanges.utils.cjs"),$e=require("../../utils/comments.utils.cjs"),Qe=require("../../utils/history.utils.cjs"),$t=require("../../utils/slash.utils.cjs"),qo=require("../../utils/words.utils.cjs"),ae=require("../../utils/outline.utils.cjs"),v=require("../../utils/premium.utils.cjs"),Je=require("../../utils/paste.utils.cjs"),Qt=require("../../utils/memory.utils.cjs"),jo=require("../../utils/findReplace.utils.cjs"),et=require("../../utils/selection.utils.cjs"),Q=require("../../utils/toolbarStorage.utils.cjs"),Xo=require("../../common-components/Button/Button.cjs"),Jt=require("../../common-components/ContextMenu/ContextMenu.cjs"),c=require("./helpers/format.utils.cjs"),Wo=require("../../plugins/ai/aiPlugin.cjs"),A=require("./components/ToolbarButton/ToolbarButton.cjs"),Ce=require("./components/ToolbarDropdown/ToolbarDropdown.cjs"),en=require("./components/ToolbarColorPicker/ToolbarColorPicker.cjs"),Go=require("./components/CommentsPanel/CommentsPanel.cjs"),Vo=require("./components/AiPanel/AiPanel.cjs"),Zo=require("./components/AiAutocomplete/AiAutocomplete.cjs"),tn=require("./components/AiAutocomplete/AiAutocomplete.const.cjs"),tt=require("./components/AiAutocomplete/AiAutocomplete.utils.cjs"),Yo=require("./components/BlockHandles/BlockHandles.cjs"),Le=require("./components/BlockHandles/BlockHandles.const.cjs"),zo=require("./components/InlineToolbar/InlineToolbar.cjs"),Ne=require("./components/InlineToolbar/InlineToolbar.const.cjs"),nn=require("./components/InlineToolbar/InlineToolbar.utils.cjs"),$o=require("./components/SlashMenu/SlashMenu.cjs"),Qo=require("./components/OutlineRail/OutlineRail.cjs"),Jo=require("./components/TrackChangesBar/TrackChangesBar.cjs"),er=require("./components/SignPad/SignPad.cjs"),tr=require("./components/FindReplace/FindReplace.cjs"),nr=require("./components/ToolbarCustomize/ToolbarCustomize.cjs"),nt=()=>{const B=window.getSelection();if(!B||B.rangeCount===f.NUMBER_ZERO)return"";const R=B.getRangeAt(f.NUMBER_ZERO),S=document.createElement("div");return S.appendChild(R.cloneContents()),S.innerHTML},m=B=>{B==null||B.focus({preventScroll:!0})},or=B=>{var Wt;const{value:R,defaultValue:S="",onChange:D,placeholder:ot=u.INK_PLACEHOLDER_DEFAULT,disabled:i=!1,readOnly:a=!1,minHeight:Ie=f.INK_MIN_HEIGHT,maxHeight:me,toolbar:on,className:rn="",testId:sn,allowImagePaste:rt=!0,showCharCount:st=!1,charCountMax:lt,typoAutoFix:ln=!0,variant:ue=u.INK_DEFAULT_VARIANT,chrome:cn=u.INK_DEFAULT_CHROME,colorMode:ct=Zt.INK_DEFAULT_COLOR_MODE,features:an,author:q=u.INK_DEFAULT_AUTHOR,trackChanges:J,onTrackChangesChange:pe,trackChangesEnabled:_e,onTrackChangesEnabledChange:Ae,comments:ee,onCommentsChange:Re,showCommentsPanel:te,onShowCommentsPanelChange:be,ai:O,slashCommands:un,tableRows:_n=u.INK_TABLE_DEFAULT_ROWS,tableCols:dn=u.INK_TABLE_DEFAULT_COLS,premium:Tn,theme:En,icons:it,pasteMode:On="plain",onImageUpload:at,wysiwyg:fn=!1,keepInMemory:j=!1,memoryKey:X,onToolbarChange:ge,toolbarHidden:W,onToolbarHiddenChange:he,showOutline:Cn,style:Ln,...Nn}=B,de=on??(ue===u.INK_VARIANT_DOCUMENT?u.INK_CHROME_TOOLBAR:u.INK_DEFAULT_TOOLBAR),E={...u.INK_DEFAULT_FEATURES,...an},G=v.resolveInkPremium(Tn),In=v.hasInkPremiumFeature(G,"icons"),mn=v.hasInkPremiumFeature(G,"theme"),pn=v.hasInkPremiumFeature(G,"richPaste"),An=v.hasInkPremiumFeature(G,"imageUpload"),Rn=v.hasInkPremiumFeature(G,"wysiwyg")&&fn,C=In&&it?{...Yt.INK_DEFAULT_ICONS,...it}:Yt.INK_DEFAULT_ICONS,bn=mn?v.themeTokensToStyle(En):{},gn=pn&&On==="rich",n=r.useRef(null),ne=r.useRef(new Qe.InkHistoryStack(R??S)),V=r.useRef(null),w=r.useRef(null),[Be,hn]=r.useState(new Set),[Bn,ut]=r.useState("p"),[Sn,Dn]=r.useState(f.NUMBER_ZERO),[Mn,kn]=r.useState(f.NUMBER_ZERO),[Pn,_t]=r.useState(f.NUMBER_ONE),[xn,dt]=r.useState(f.NUMBER_ONE),[Un,Tt]=r.useState([]),[Hn,Fn]=r.useState(f.NUMBER_ZERO),[wn,Se]=r.useState(p.EMPTY_STRING),[yn,Kn]=r.useState(f.INK_DEFAULT_TEXT_COLOR),[vn,qn]=r.useState(f.INK_DEFAULT_HIGHLIGHT_COLOR),[Z,Et]=r.useState(_e??!1),[jn,Ot]=r.useState(J??[]),[Xn,ft]=r.useState(ee??[]),[Wn,Ct]=r.useState(te??!1),[Lt,Te]=r.useState(!!(O!=null&&O.enabled&&O.openOnInit)),[Ee,Gn]=r.useState(!1),Nt=r.useRef(!1),[P,oe]=r.useState({visible:!1,suggestion:"",top:f.NUMBER_ZERO,left:f.NUMBER_ZERO}),re=r.useRef(null),Y=r.useRef(f.NUMBER_ZERO),[It,Vn]=r.useState(""),[Zn,Yn]=r.useState(0),[zn,mt]=r.useState(!1),[$n,Oe]=r.useState([]),[pt,Qn]=r.useState({top:0,left:0}),[At,De]=r.useState(!1),[Me,fe]=r.useState(!1),[Jn,eo]=r.useState(H.FIND_REPLACE_FOCUS_FIND),[to,no]=r.useState(Ze.FONT_VALUE_SYSTEM),[oo,Rt]=r.useState(Ye.LIST_VALUE_BULLET),[ro,so]=r.useState(H.FIND_REPLACE_FOCUS_FIND),[ke,Pe]=r.useState({open:!1,x:f.NUMBER_ZERO,y:f.NUMBER_ZERO}),[lo,bt]=r.useState(!1),[xe,Ue]=r.useState({open:!1,x:f.NUMBER_ZERO,y:f.NUMBER_ZERO}),[He,z]=r.useState({open:!1,top:f.NUMBER_ZERO,left:f.NUMBER_ZERO}),[Fe,gt]=r.useState(()=>Q.readToolbarItems(j,X)??de),[co,ht]=r.useState(()=>W!==void 0?W:Q.readToolbarHidden(j,X)??!1),[io,Bt]=r.useState(!1),St=r.useRef(!0),ao=de.join(","),x=J??jn,se=ee??Xn,we=te??Wn,Dt=un??E.slash,ye=Cn??ue===u.INK_VARIANT_DOCUMENT,Mt=W??co,kt=de,uo=Q.listCustomizableToolbarOptions(kt),Ke=ct===Zt.COLOR_MODE_SYSTEM?void 0:ct,ve=!!(E.ai&&(O!=null&&O.enabled)&&O.autocomplete!==!1&&!i&&!a),qe=()=>{re.current!==null&&(window.clearTimeout(re.current),re.current=null)},M=()=>{qe(),Y.current+=1,oe(e=>e.visible||e.suggestion?{visible:!1,suggestion:"",top:f.NUMBER_ZERO,left:f.NUMBER_ZERO}:e)},_o=()=>{if(!ve||Ee||!n.current){M();return}const e=window.getSelection();if(!e||!e.isCollapsed){M();return}qe(),oe(o=>o.visible||o.suggestion?{...o,visible:!1,suggestion:""}:o);const t=(O==null?void 0:O.providerId)||yo.INK_AI_DEMO_PROVIDER_ID;re.current=window.setTimeout(()=>{if(re.current=null,!n.current||Nt.current)return;const o=window.getSelection();if(!o||!o.isCollapsed)return;const l=tt.getTextBeforeCaret(n.current),_=tt.getCaretPositionInRoot(n.current);if(!l.trim()||!_)return;const I=Y.current+1;Y.current=I;const g=n.current.innerHTML;Wo.inkAi.runProvider(t,{capability:"autocomplete",html:g,prompt:l,modelId:O==null?void 0:O.modelId}).then(K=>{var Vt;if(I!==Y.current)return;const U=((Vt=K.text)==null?void 0:Vt.trim())||"";if(!U){oe({visible:!1,suggestion:"",top:f.NUMBER_ZERO,left:f.NUMBER_ZERO});return}const Gt=n.current&&tt.getCaretPositionInRoot(n.current)||_;oe({visible:!0,suggestion:U,top:Gt.top,left:Gt.left})}).catch(()=>{I===Y.current&&oe({visible:!1,suggestion:"",top:f.NUMBER_ZERO,left:f.NUMBER_ZERO})})},tn.AI_AUTOCOMPLETE_DEBOUNCE_MS)};r.useEffect(()=>()=>{qe(),Y.current+=1},[]),r.useEffect(()=>{Nt.current=Ee,Ee&&M()},[Ee]),r.useEffect(()=>{_e!==void 0&&Et(_e)},[_e]),r.useEffect(()=>{J&&Ot(J)},[J]),r.useEffect(()=>{ee&&ft(ee)},[ee]),r.useEffect(()=>{te!==void 0&&Ct(te)},[te]),r.useEffect(()=>{W!==void 0&&ht(W)},[W]),r.useEffect(()=>{if(St.current){St.current=!1;return}gt(de)},[ao]),r.useEffect(()=>{if(!n.current||R===void 0||R===V.current)return;if(n.current.innerHTML===R){V.current=R;return}const e=document.activeElement===n.current;et.withPreservedSelection(e?n.current:null,()=>{n.current&&(n.current.innerHTML=R)}),V.current=R},[R]),r.useEffect(()=>{if(!n.current)return;const e=j?Qt.readInkMemory(X):"";if(e){n.current.innerHTML=e,V.current=e,ne.current=new Qe.InkHistoryStack(e),D==null||D(e);return}R===void 0&&S&&(n.current.innerHTML=S,V.current=S,ne.current=new Qe.InkHistoryStack(S),D==null||D(S))},[]);const je=e=>{if(ne.current.push(e),V.current=e,D==null||D(e),j&&Qt.writeInkMemory(e,X),st&&n.current){const o=n.current.textContent??p.EMPTY_STRING;Dn(o.length),kn(qo.countWords(o))}ye&&Tt(ae.collectOutlineItems(n.current));const t=ae.getCaretLineCol(n.current);_t(t.line),dt(t.col)},y=e=>{n.current&&(et.withPreservedSelection(n.current,()=>{n.current&&(n.current.innerHTML=e)}),je(e))},Xe=e=>{ht(e),he==null||he(e),Q.writeToolbarHidden(e,j,X)},To=e=>{gt(e),ge==null||ge(e),Q.writeToolbarItems(e,j,X)},Eo=(e,t)=>{if(e===h.TOOLBAR_OPTION_DIVIDER)return;const o=new Set(Fe.filter(l=>l!==h.TOOLBAR_OPTION_DIVIDER));t?o.add(e):o.delete(e),To(Q.buildVisibleToolbarItems(kt,o))},le=e=>{Ot(e),pe==null||pe(e)},We=e=>{ft(e),Re==null||Re(e)},Ge=e=>{Ct(e),be==null||be(e)},Oo=e=>{Et(e),Ae==null||Ae(e)},fo=()=>{if(i||a){z(_=>_.open?{..._,open:!1}:_);return}const e=window.getSelection();if(!e||e.isCollapsed||e.rangeCount===0||!nn.selectionIsInsideElement(e,n.current)){z(_=>_.open?{..._,open:!1}:_);return}const o=e.getRangeAt(0).getBoundingClientRect();if(o.width===0&&o.height===0){z(_=>_.open?{..._,open:!1}:_);return}const l=nn.clampInlineToolbarPosition({selectionRect:o,toolbarWidth:Ne.INLINE_TOOLBAR_ESTIMATED_WIDTH_PX,toolbarHeight:Ne.INLINE_TOOLBAR_ESTIMATED_HEIGHT_PX,viewport:{width:window.innerWidth,height:window.innerHeight},gap:Ne.INLINE_TOOLBAR_GAP_PX,edgePadding:Ne.INLINE_TOOLBAR_EDGE_PADDING_PX});z({open:!0,top:l.top,left:l.left})},ce=()=>{hn(c.getActiveFormats());const e=c.queryCommandValue("formatBlock");e&&ut(e.toLowerCase().replace(/[<>]/g,"")),Rt(c.detectListType()),Vn(nt()),fo();const t=ae.getCaretLineCol(n.current);if(_t(t.line),dt(t.col),ye&&Tt(ae.collectOutlineItems(n.current)),!n.current||!E.blocks)return;const o=window.getSelection(),l=(o==null?void 0:o.anchorNode)??null,_=L.getBlockElement(l,n.current);if(L.markActiveBlock(n.current,_),_){const I=n.current.getBoundingClientRect(),g=_.getBoundingClientRect();Yn(g.top-I.top+n.current.scrollTop),mt(!0)}else mt(!1)},T=()=>{var t,o,l;if(!n.current)return;let e=n.current.innerHTML;if(Z&&E.trackChanges){const _=window.getSelection();if(_&&!_.isCollapsed){const I=nt();if(I){const g=F.createTrackChange("delete",I,q);le([...x,g]),Co(g.id),e=n.current.innerHTML}}}if(je(e),ce(),Dt&&n.current){const _=((o=(t=window.getSelection())==null?void 0:t.anchorNode)==null?void 0:o.textContent)??"",I=$t.extractSlashQuery(_);if(I!==null){Se(I),Oe($t.filterSlashCommands(I));const g=(l=window.getSelection())==null?void 0:l.getRangeAt(0);if(g&&n.current){const K=g.getBoundingClientRect(),U=n.current.getBoundingClientRect();Qn({top:K.bottom-U.top+8,left:K.left-U.left})}}else Se(p.EMPTY_STRING),Oe([])}ve?_o():M()},Pt=()=>{const e=P.suggestion;if(!e){M();return}m(n.current),c.execCommand(tn.AI_AUTOCOMPLETE_COMMAND_INSERT_TEXT,e),M(),T()},Co=e=>{const t=window.getSelection();if(!t||t.rangeCount===0)return;const o=nt();o&&c.insertHTML(F.wrapDeleteHtml(o,e))},Lo=()=>{if(!n.current||!ln||!E.typoAutoFix||i||a)return;const e=n.current.innerHTML,t=vo.applyTypoAutoFix(e);t.html!==e&&(et.withPreservedSelection(n.current,()=>{n.current&&(n.current.innerHTML=t.html)}),je(t.html))},b=e=>{if(i||a)return;if(m(n.current),e==="clearFormat"){c.clearFormatDeep(),T();return}if(e==="directionLtr"&&n.current){c.setBlockDirection(n.current,ze.DIR_LTR),T();return}if(e==="directionRtl"&&n.current){c.setBlockDirection(n.current,ze.DIR_RTL),T();return}if(e===N.TOOLBAR_OPTION_CHECKLIST){c.insertHTML(u.INK_CHECKLIST_HTML),T();return}const t=u.INK_BUTTON_CONFIG[e];t&&(t.value?c.execCommand(t.command,t.value):c.execCommand(t.command),T())},No=e=>{i||a||(m(n.current),c.execCommand("formatBlock",e),ut(e),T())},Io=e=>{i||a||(m(n.current),c.applyFontFamily(e),no(e),T())},mo=e=>{i||a||(m(n.current),c.applyListType(e),Rt(e),T())},xt=e=>{eo(e),so(e),fe(!0)},po=e=>{if(i||a)return;const t=e===H.FIND_REPLACE_VALUE_REPLACE?H.FIND_REPLACE_FOCUS_REPLACE:H.FIND_REPLACE_FOCUS_FIND;xt(t)},Ve=()=>{if(i||a)return;const e=window.prompt("Enter URL:","https://");e&&(m(n.current),c.insertLink(e),T())},Ut=async e=>An&&at?at(e):c.fileToDataUrl(e),Ht=async()=>{if(i||a)return;const e=document.createElement("input");e.type="file",e.accept="image/*",e.onchange=async()=>{var l;const t=(l=e.files)==null?void 0:l[0];if(!t)return;const o=await Ut(t);m(n.current),c.insertImage(o,t.name),T()},e.click()},Ft=()=>{if(i||a||!E.table)return;m(n.current);const e=k.buildTableHtml(_n,dn);if(Z&&E.trackChanges){const t=F.createTrackChange("insert",e,q);le([...x,t]),c.insertHTML(F.wrapInsertHtml(e,t.id))}else c.insertHTML(e);T()},wt=()=>{const e=ne.current.undo();if(e===null||!n.current){c.execCommand("undo"),T();return}y(e)},yt=()=>{const e=ne.current.redo();if(e===null||!n.current){c.execCommand("redo"),T();return}y(e)},Ao=e=>{i||a||(e.preventDefault(),Ue(t=>t.open?{...t,open:!1}:t),bt(!!(E.table&&k.getTableCellFromSelection())),Pe({open:!0,x:e.clientX,y:e.clientY}))},Ro=e=>{i||a||(e.preventDefault(),Pe(t=>t.open?{...t,open:!1}:t),Ue({open:!0,x:e.clientX,y:e.clientY}))},Kt=()=>{if(i||a||!E.comments)return;const e=window.prompt("Comment:");if(!(e!=null&&e.trim()))return;const t=zt.createInkId("hl");if(m(n.current),!$e.wrapSelectionAsComment(t))return;const l=$e.createCommentThread(q,e.trim(),t);We([l,...se]),Ge(!0),T()},bo=[{id:h.TOOLBAR_CONTEXT_MENU_ID_CUSTOMIZE,label:h.TOOLBAR_CONTEXT_MENU_LABEL_CUSTOMIZE,onSelect:()=>Bt(!0)},{id:h.TOOLBAR_CONTEXT_MENU_ID_HIDE,label:h.TOOLBAR_CONTEXT_MENU_LABEL_HIDE,onSelect:()=>Xe(!0)}],$=e=>{const t=k.getTableCellFromSelection();!t||!E.table||e(t)&&T()},go=[...E.table&&lo?[{id:d.CONTEXT_MENU_ID_TABLE_ROW_ABOVE,label:d.CONTEXT_MENU_LABEL_TABLE_ROW_ABOVE,onSelect:()=>$(e=>k.insertTableRow(e,"before"))},{id:d.CONTEXT_MENU_ID_TABLE_ROW_BELOW,label:d.CONTEXT_MENU_LABEL_TABLE_ROW_BELOW,onSelect:()=>$(e=>k.insertTableRow(e,"after"))},{id:d.CONTEXT_MENU_ID_TABLE_COL_LEFT,label:d.CONTEXT_MENU_LABEL_TABLE_COL_LEFT,onSelect:()=>$(e=>k.insertTableColumn(e,"before"))},{id:d.CONTEXT_MENU_ID_TABLE_COL_RIGHT,label:d.CONTEXT_MENU_LABEL_TABLE_COL_RIGHT,onSelect:()=>$(e=>k.insertTableColumn(e,"after"))},{id:d.CONTEXT_MENU_ID_TABLE_DELETE_ROW,label:d.CONTEXT_MENU_LABEL_TABLE_DELETE_ROW,onSelect:()=>$(e=>k.deleteTableRow(e))},{id:d.CONTEXT_MENU_ID_TABLE_DELETE_COL,label:d.CONTEXT_MENU_LABEL_TABLE_DELETE_COL,onSelect:()=>$(e=>k.deleteTableColumn(e))}]:[],{id:d.CONTEXT_MENU_ID_BOLD,label:d.CONTEXT_MENU_LABEL_BOLD,onSelect:()=>b("bold")},{id:d.CONTEXT_MENU_ID_ITALIC,label:d.CONTEXT_MENU_LABEL_ITALIC,onSelect:()=>b("italic")},{id:d.CONTEXT_MENU_ID_UNDERLINE,label:d.CONTEXT_MENU_LABEL_UNDERLINE,onSelect:()=>b("underline")},{id:d.CONTEXT_MENU_ID_STRIKE,label:d.CONTEXT_MENU_LABEL_STRIKE,onSelect:()=>b("strikethrough")},{id:d.CONTEXT_MENU_ID_HEADING,label:d.CONTEXT_MENU_LABEL_HEADING,onSelect:()=>b("heading2")},{id:d.CONTEXT_MENU_ID_BULLET,label:d.CONTEXT_MENU_LABEL_BULLET,onSelect:()=>b("bulletList")},{id:d.CONTEXT_MENU_ID_ORDERED,label:d.CONTEXT_MENU_LABEL_ORDERED,onSelect:()=>b("orderedList")},{id:d.CONTEXT_MENU_ID_LINK,label:d.CONTEXT_MENU_LABEL_LINK,onSelect:()=>Ve()},{id:d.CONTEXT_MENU_ID_CLEAR,label:d.CONTEXT_MENU_LABEL_CLEAR,onSelect:()=>b("clearFormat")},{id:d.CONTEXT_MENU_ID_FIND,label:d.CONTEXT_MENU_LABEL_FIND,disabled:!E.findReplace,onSelect:()=>fe(!0)},{id:d.CONTEXT_MENU_ID_SIGNATURE,label:d.CONTEXT_MENU_LABEL_SIGNATURE,disabled:!E.signature,onSelect:()=>De(!0)},{id:d.CONTEXT_MENU_ID_COMMENT,label:d.CONTEXT_MENU_LABEL_COMMENT,disabled:!E.comments,onSelect:()=>Kt()},...Mt?[{id:h.CONTEXT_MENU_ID_SHOW_TOOLBAR,label:h.CONTEXT_MENU_LABEL_SHOW_TOOLBAR,onSelect:()=>Xe(!1)}]:[]],vt=e=>{if(!n.current)return;const t=F.acceptTrackChangeInHtml(n.current.innerHTML,e);y(t),le(x.map(o=>o.id===e?{...o,accepted:!0}:o))},qt=e=>{if(!n.current)return;const t=F.rejectTrackChangeInHtml(n.current.innerHTML,e);y(t),le(x.map(o=>o.id===e?{...o,rejected:!0}:o))},jt=async e=>{const t=await Ut(e),o=`<img src="${t}" alt="" style="max-width:100%;height:auto;" />`;if(Z&&E.trackChanges){const l=F.createTrackChange("insert",o,q);le([...x,l]),c.insertHTML(F.wrapInsertHtml(o,l.id))}else c.insertImage(t);T()},ho=async e=>{if(i||a)return;const t=e.clipboardData;if(!t)return;if(gn){const l=Je.extractClipboardHtml(t);if(l){e.preventDefault();const I=Je.sanitizePastedHtml(l);I&&(c.insertHTML(I),T());const g=t.items;if(rt&&g)for(const K of Array.from(g)){if(!K.type.startsWith("image/"))continue;const U=K.getAsFile();U&&await jt(U)}return}const _=Je.extractClipboardText(t);if(_){e.preventDefault(),c.insertHTML(_.replace(/\n/g,"<br />")),T();return}}if(!rt)return;const o=t.items;if(o)for(const l of Array.from(o)){if(!l.type.startsWith("image/"))continue;e.preventDefault();const _=l.getAsFile();_&&await jt(_)}},Bo=e=>{b(e)},So=e=>{if(e.key===ie.KEY_TAB&&P.visible&&P.suggestion){e.preventDefault(),Pt();return}if(e.key===ie.KEY_ENTER){M();return}if(c.tryConvertMarkdownListPrefix(e.nativeEvent)){T();return}if(e.key===ie.KEY_ESCAPE){if(P.visible){e.preventDefault(),M();return}Oe([]),z(t=>t.open?{...t,open:!1}:t)}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===ie.KEY_K){e.preventDefault(),E.ai&&(O!=null&&O.enabled)&&Te(!0);return}(e.metaKey||e.ctrlKey)&&e.key===ie.KEY_Z&&(e.preventDefault(),e.shiftKey?yt():wt())},Do=e=>{var o;m(n.current);const t=window.getSelection();if((o=t==null?void 0:t.anchorNode)!=null&&o.textContent){const _=t.anchorNode.textContent.replace(/(?:^|\s)\/[^\s]*$/," ");t.anchorNode.nodeType===Node.TEXT_NODE&&(t.anchorNode.textContent=_)}switch(Se(p.EMPTY_STRING),Oe([]),e.insert){case"heading1":c.execCommand("formatBlock",u.INK_FORMAT_BLOCK_H1);break;case"heading2":c.execCommand("formatBlock",u.INK_FORMAT_BLOCK_H2);break;case"heading3":c.execCommand("formatBlock",u.INK_FORMAT_BLOCK_H3);break;case"paragraph":c.execCommand("formatBlock",u.INK_FORMAT_BLOCK_P);break;case"bulletList":c.execCommand("insertUnorderedList");break;case"orderedList":c.execCommand("insertOrderedList");break;case"checklist":c.insertHTML(u.INK_CHECKLIST_HTML);break;case"quote":c.execCommand("formatBlock",u.INK_FORMAT_BLOCK_QUOTE);break;case"code":c.execCommand("formatBlock",u.INK_FORMAT_BLOCK_PRE);break;case"callout":c.insertHTML(u.INK_CALLOUT_HTML);break;case"table":Ft();return;case"image":Ht();return;case"ai":Te(!0);break}T()},Xt=e=>{if(!n.current)return;const t=window.getSelection(),o=L.getBlockElement((t==null?void 0:t.anchorNode)??null,n.current);o&&L.moveBlock(o,e)&&(T(),ce())},Mo=e=>{if(!n.current)return;const t=window.getSelection(),o=L.getBlockElement((t==null?void 0:t.anchorNode)??null,n.current),l=n.current.querySelector(`.${u.INK_CLASS_BLOCK_ACTIVE}`),_=o??(l instanceof HTMLElement?l:null);if(!_){e.preventDefault();return}w.current=_,L.clearBlockDragClasses(n.current),L.markActiveBlock(n.current,_),L.markDraggingBlock(_),e.dataTransfer.setData(Le.BLOCK_HANDLES_DRAG_MIME,Le.BLOCK_HANDLES_DRAG_PAYLOAD),e.dataTransfer.effectAllowed=Le.BLOCK_HANDLES_DRAG_EFFECT_MOVE},ko=e=>{if(!n.current||!w.current)return;e.preventDefault(),e.dataTransfer.dropEffect=Le.BLOCK_HANDLES_DRAG_EFFECT_MOVE;const t=L.getBlockElement(e.target,n.current);if(!t||t===w.current){L.markDropTarget(n.current,null,null);return}const o=L.resolveDropPosition(e.clientY,t);L.markDropTarget(n.current,t,o)},Po=e=>{if(!n.current||!w.current)return;e.preventDefault();const t=L.getBlockElement(e.target,n.current),o=w.current;t&&t!==o&&(L.resolveDropPosition(e.clientY,t)===ze.BLOCK_DROP_POSITION_BEFORE?L.reorderBlockBefore(o,t):L.reorderBlockAfter(o,t))&&(T(),ce()),L.clearBlockDragClasses(n.current),w.current=null},xo=()=>{n.current&&L.clearBlockDragClasses(n.current),w.current=null},Uo=(e,t)=>{if(e==="divider")return s.jsx("span",{className:u.INK_CLASS_DIVIDER},`divider-${t}`);if(e==="headingDropdown")return s.jsx(Ce.ToolbarDropdown,{title:"Heading",options:u.INK_HEADING_OPTIONS,value:Bn||"p",disabled:i||a,onChange:No},"heading");if(e===N.TOOLBAR_OPTION_FONT_DROPDOWN)return s.jsx(Ce.ToolbarDropdown,{title:Ze.FONT_DROPDOWN_TITLE,options:Ze.INK_FONT_OPTIONS,value:to,disabled:i||a,onChange:Io},N.TOOLBAR_OPTION_FONT_DROPDOWN);if(e===N.TOOLBAR_OPTION_LIST_DROPDOWN)return s.jsx(Ce.ToolbarDropdown,{title:Ye.LIST_DROPDOWN_TITLE,options:Ye.INK_LIST_OPTIONS,value:oo,disabled:i||a,onChange:mo},N.TOOLBAR_OPTION_LIST_DROPDOWN);if(e==="textColor")return s.jsx(en.ToolbarColorPicker,{title:"Text color",type:"text",value:yn,disabled:i||a,onChange:l=>{m(n.current),c.setTextColor(l),Kn(l),T()}},"textColor");if(e==="highlightColor")return s.jsx(en.ToolbarColorPicker,{title:"Highlight color",type:"highlight",value:vn,disabled:i||a,onChange:l=>{m(n.current),c.setHighlightColor(l),qn(l),T()}},"highlightColor");if(e==="link")return s.jsx(A.ToolbarButton,{icon:C.link,title:"Insert link",disabled:i||a,onClick:Ve},"link");if(e==="image")return s.jsx(A.ToolbarButton,{icon:C.image,title:"Insert image",disabled:i||a,onClick:()=>{Ht()}},"image");if(e===N.TOOLBAR_OPTION_CHECKLIST)return s.jsx(A.ToolbarButton,{icon:C.checklist,title:"Checklist",disabled:i||a,onClick:()=>b(N.TOOLBAR_OPTION_CHECKLIST)},N.TOOLBAR_OPTION_CHECKLIST);if(e==="table")return E.table?s.jsx(A.ToolbarButton,{icon:C.table,title:"Insert table",disabled:i||a,onClick:Ft},"table"):null;if(e===N.TOOLBAR_OPTION_SIGNATURE)return E.signature?s.jsx(A.ToolbarButton,{icon:C.signature,title:"Sign pad",active:At,disabled:i||a,onClick:()=>De(!0)},N.TOOLBAR_OPTION_SIGNATURE):null;if(e===N.TOOLBAR_OPTION_FIND_REPLACE)return E.findReplace?s.jsx(A.ToolbarButton,{icon:C.findReplace,title:"Find and replace",active:Me,disabled:i||a,onClick:()=>{Me?fe(!1):xt(H.FIND_REPLACE_FOCUS_FIND)}},N.TOOLBAR_OPTION_FIND_REPLACE):null;if(e===N.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN)return E.findReplace?s.jsx(Ce.ToolbarDropdown,{title:H.FIND_REPLACE_DROPDOWN_TITLE,options:H.INK_FIND_REPLACE_OPTIONS,value:ro,disabled:i||a,onChange:po},N.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN):null;if(e===N.TOOLBAR_OPTION_HORIZONTAL_RULE)return E.horizontalRule?s.jsx(A.ToolbarButton,{icon:C.horizontalRule,title:"Horizontal rule",disabled:i||a,onClick:()=>{m(n.current),c.insertHTML("<hr />"),T()}},N.TOOLBAR_OPTION_HORIZONTAL_RULE):null;if(e==="undo")return s.jsx(A.ToolbarButton,{icon:C.undo,title:"Undo",disabled:i||a,onClick:wt},"undo");if(e==="redo")return s.jsx(A.ToolbarButton,{icon:C.redo,title:"Redo",disabled:i||a,onClick:yt},"redo");if(e==="trackChanges")return E.trackChanges?s.jsx(A.ToolbarButton,{icon:C.trackChanges,title:"Track changes",active:Z,disabled:i||a,onClick:()=>Oo(!Z)},"trackChanges"):null;if(e==="comments")return E.comments?s.jsx(A.ToolbarButton,{icon:C.comments,title:"Comments",active:we,disabled:i||a,onClick:()=>{we?Ge(!1):Kt()}},"comments"):null;if(e==="code"){const l=u.INK_BUTTON_CONFIG.code;return s.jsx(A.ToolbarButton,{className:u.INK_CLASS_BUTTON_WIDE,icon:s.jsxs(s.Fragment,{children:[C.code,s.jsx("span",{className:u.INK_CLASS_BUTTON_LABEL,children:p.INK_CODE_LABEL})]}),title:l.title,active:Be.has(e),disabled:i||a,onClick:()=>b(e)},"code")}if(e==="ai")return!E.ai||!(O!=null&&O.enabled)?null:s.jsxs("button",{type:"button",className:u.INK_CLASS_AI_PILL,title:p.INK_AI_PILL_LABEL,"aria-label":p.INK_AI_PILL_LABEL,"aria-pressed":Lt,disabled:i||a,onMouseDown:l=>{l.preventDefault()},onClick:()=>Te(l=>!l),children:[s.jsx("span",{className:u.INK_CLASS_AI_PILL_DOT,"aria-hidden":"true"}),p.INK_AI_PILL_LABEL]},"ai");const o=u.INK_BUTTON_CONFIG[e];return o?s.jsx(A.ToolbarButton,{icon:C[e]??e.slice(0,1).toUpperCase(),title:o.title,active:Be.has(e),disabled:i||a,onClick:()=>b(e)},e):null},Ho=typeof Ie=="number"?`${Ie}px`:Ie,Fo=typeof me=="number"?`${me}px`:me,wo=!!(O!=null&&O.enabled&&Lt);return s.jsxs("div",{className:Ko.cn(u.INK_CLASS_ROOT,rn),"data-testid":sn,"data-disabled":i||void 0,"data-variant":ue,"data-chrome":cn,"data-color-mode":Ke,"data-premium":G.active||void 0,"data-wysiwyg":Rn||void 0,style:{...bn,...Ln},...Nn,children:[Mt?s.jsx("div",{className:u.INK_CLASS_TOOLBAR_SHOW,children:s.jsx(Xo.Button,{type:"button","aria-label":h.TOOLBAR_SHOW_CONTROL_ARIA_LABEL,onClick:()=>Xe(!1),children:h.TOOLBAR_SHOW_CONTROL_LABEL})}):s.jsx("div",{className:u.INK_CLASS_TOOLBAR,role:"toolbar","aria-label":"Ink formatting toolbar",onContextMenu:Ro,children:Fe.map(Uo)}),s.jsx(nr.ToolbarCustomize,{open:io,options:uo,visibleItems:Fe,onToggle:Eo,onClose:()=>Bt(!1)}),s.jsx(er.SignPad,{open:At,onClose:()=>De(!1),onConfirm:e=>{m(n.current),c.insertImage(e),T()}}),s.jsx(tr.FindReplace,{open:Me,focusField:Jn,onClose:()=>fe(!1),onReplace:(e,t,o)=>{if(!n.current)return;const l=jo.replaceInHtml(n.current.innerHTML,e,t,o);y(l)}}),Z&&E.trackChanges?s.jsx(Jo.TrackChangesBar,{changes:x,onAccept:vt,onReject:qt,onAcceptAll:()=>x.forEach(e=>vt(e.id)),onRejectAll:()=>x.forEach(e=>qt(e.id))}):null,ue==="agent"?s.jsx("div",{className:"Ink-Editor__agent-bar",role:"status",children:h.AGENT_BAR_PLACEHOLDER}):null,s.jsxs("div",{className:u.INK_CLASS_SHELL,children:[ye?s.jsx(Qo.OutlineRail,{items:Un,activeIndex:Hn,onSelect:e=>{n.current&&(ae.scrollOutlineHeading(n.current,e),Fn(e))}}):null,s.jsxs("div",{className:u.INK_CLASS_BODY,children:[E.blocks?s.jsx(Yo.BlockHandles,{visible:zn&&!i&&!a,top:Zn,onMoveUp:()=>Xt("up"),onMoveDown:()=>Xt("down"),onDragStart:Mo}):null,s.jsx("div",{ref:n,className:u.INK_CLASS_CONTENT,contentEditable:!i&&!a,role:"textbox","aria-multiline":"true","aria-placeholder":ot,"data-placeholder":ot,suppressContentEditableWarning:!0,style:{minHeight:Ho,maxHeight:Fo},onInput:T,onBlur:Lo,onKeyUp:ce,onKeyDown:So,onMouseUp:ce,onContextMenu:Ao,onDragOver:ko,onDrop:Po,onDragEnd:xo,onPaste:e=>{ho(e)}}),Dt?s.jsx($o.SlashMenu,{items:$n,top:pt.top,left:pt.left,query:wn,onSelect:Do}):null,ve?s.jsx(Zo.AiAutocomplete,{suggestion:P.suggestion,position:{top:P.top,left:P.left},visible:P.visible,onAccept:Pt,onDismiss:M}):null,s.jsx(zo.InlineToolbar,{open:He.open,top:He.top,left:He.left,icons:{bold:C.bold,italic:C.italic,underline:C.underline,code:C.code,link:C.link,clearFormat:C.clearFormat},activeFormats:Be,disabled:i||a,onFormat:Bo,onLink:Ve,onClose:()=>z(e=>({...e,open:!1}))}),s.jsx(Jt.ContextMenu,{open:ke.open,x:ke.x,y:ke.y,items:go,colorMode:Ke,onClose:()=>{bt(!1),Pe(e=>({...e,open:!1}))}}),s.jsx(Jt.ContextMenu,{open:xe.open,x:xe.x,y:xe.y,items:bo,colorMode:Ke,onClose:()=>Ue(e=>({...e,open:!1}))})]}),we&&E.comments?s.jsx(Go.CommentsPanel,{comments:se,author:q,onClose:()=>Ge(!1),onResolve:e=>{const t=se.find(o=>o.id===e);We(se.map(o=>o.id===e?{...o,resolved:!0}:o)),t&&n.current&&y($e.removeCommentMark(n.current.innerHTML,t.highlightId))},onAddReply:(e,t)=>{We(se.map(o=>o.id===e?{...o,replies:[...o.replies,{id:zt.createInkId("reply"),author:q,body:t,timestamp:Date.now()}]}:o))}}):null,wo&&O?s.jsx(Vo.AiPanel,{config:O,documentHtml:((Wt=n.current)==null?void 0:Wt.innerHTML)??R??"",selectionHtml:It,onBusyChange:Gn,onClose:()=>Te(!1),onApplyHtml:e=>{if(m(n.current),It)c.insertHTML(e);else{y(e);return}T()}}):null]}),st?s.jsxs("div",{className:u.INK_CLASS_FOOTER,children:[s.jsxs("span",{children:[Mn," ",p.INK_FOOTER_WORDS_LABEL," ",p.INK_FOOTER_DOT," ",Sn,lt?` / ${lt}`:""," ",p.INK_FOOTER_CHARS_LABEL]}),s.jsxs("span",{className:u.INK_CLASS_FOOTER_META,children:[s.jsxs("span",{children:[p.INK_FOOTER_LINE_LABEL," ",Pn,", ",p.INK_FOOTER_COL_LABEL," ",xn]}),s.jsx("span",{className:"Ink-Editor__footer-sync",children:p.INK_FOOTER_SYNCED_LABEL})]})]}):null]})};exports.InkEditor=or;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),r=require("react"),C=require("../../constants/numbers.cjs"),E=require("../../constants/generals.const.cjs"),f=require("../../constants/toolbar.const.cjs"),N=require("../../constants/toolbarMenu.const.cjs"),Sn=require("../../constants/colorMode.const.cjs"),Ce=require("../../constants/keyboard.const.cjs"),Lt=require("../../constants/fonts.const.cjs"),It=require("../../constants/lists.const.cjs"),y=require("../../constants/findReplaceMenu.const.cjs"),Nt=require("../../constants/blocks.const.cjs"),l=require("../../constants/defaults.const.cjs"),xr=require("../../constants/aiModels.const.cjs");require("../../constants/openai.const.cjs");const hn=require("../../constants/defaultIcons.cjs"),O=require("../../constants/contextMenu.const.cjs"),Ae=require("../../constants/table.const.cjs"),Ur=require("../../utils/cn.utils.cjs"),Kr=require("../../utils/typo.utils.cjs"),gn=require("../../utils/id.utils.cjs"),P=require("../../utils/table.utils.cjs"),h=require("../../utils/blocks.utils.cjs"),G=require("../../utils/trackChanges.utils.cjs"),ft=require("../../utils/comments.utils.cjs"),Ct=require("../../utils/history.utils.cjs"),Bn=require("../../utils/slash.utils.cjs"),Fr=require("../../utils/words.utils.cjs"),K=require("../../utils/outline.utils.cjs"),Z=require("../../utils/premium.utils.cjs"),At=require("../../utils/paste.utils.cjs"),bn=require("../../utils/memory.utils.cjs"),wr=require("../../utils/findReplace.utils.cjs"),Re=require("../../utils/selection.utils.cjs"),le=require("../../utils/toolbarStorage.utils.cjs"),vr=require("../../plugins/titles/titles.const.cjs"),Pn=require("../../plugins/titles/titles.utils.cjs"),Mn=require("../../plugins/excel/excel.utils.cjs"),ie=require("../../plugins/graph/graph.const.cjs"),q=require("../../plugins/graph/graph.utils.cjs"),yr=require("../../plugins/theme/theme.const.cjs"),Gr=require("../../plugins/theme/inkTheme.cjs"),me=require("../../plugins/host/inkPlugins.cjs"),qr=require("../../hooks/useToolbarOverflow.cjs"),Xr=require("../../common-components/Button/Button.cjs"),Hn=require("../../common-components/ContextMenu/ContextMenu.cjs"),_=require("./helpers/format.utils.cjs"),jr=require("../../plugins/ai/aiPlugin.cjs"),g=require("./components/ToolbarButton/ToolbarButton.cjs"),De=require("./components/ToolbarDropdown/ToolbarDropdown.cjs"),Dn=require("./components/ToolbarColorPicker/ToolbarColorPicker.cjs"),Wr=require("./components/CommentsPanel/CommentsPanel.cjs"),Zr=require("./components/AiPanel/AiPanel.cjs"),Vr=require("./components/AiAutocomplete/AiAutocomplete.cjs"),kn=require("./components/AiAutocomplete/AiAutocomplete.const.cjs"),Rt=require("./components/AiAutocomplete/AiAutocomplete.utils.cjs"),Yr=require("./components/BlockHandles/BlockHandles.cjs"),ke=require("./components/BlockHandles/BlockHandles.const.cjs"),zr=require("./components/InlineToolbar/InlineToolbar.cjs"),xe=require("./components/InlineToolbar/InlineToolbar.const.cjs"),xn=require("./components/InlineToolbar/InlineToolbar.utils.cjs"),$r=require("./components/SlashMenu/SlashMenu.cjs"),Qr=require("./components/OutlineRail/OutlineRail.cjs"),Jr=require("./components/TrackChangesBar/TrackChangesBar.cjs"),es=require("./components/SignPad/SignPad.cjs"),ts=require("./components/FindReplace/FindReplace.cjs"),ns=require("./components/ToolbarCustomize/ToolbarCustomize.cjs"),os=require("./components/HtmlSourcePanel/HtmlSourcePanel.cjs"),rs=require("./components/TableSizePicker/TableSizePicker.cjs"),ss=require("./components/TitleGallery/TitleGallery.cjs"),ls=require("./components/ExcelSheetPanel/ExcelSheetPanel.cjs"),is=require("./components/GraphPicker/GraphPicker.cjs"),cs=require("./components/GraphEditModal/GraphEditModal.cjs"),as=require("./components/ThemePicker/ThemePicker.cjs"),us=require("./components/PresenceStack/PresenceStack.cjs"),_s=require("./components/RemoteCursors/RemoteCursors.cjs"),mt=()=>{const D=window.getSelection();if(!D||D.rangeCount===C.NUMBER_ZERO)return"";const b=D.getRangeAt(C.NUMBER_ZERO),k=document.createElement("div");return k.appendChild(b.cloneContents()),k.innerHTML},B=D=>{D==null||D.focus({preventScroll:!0})},Ts=D=>{var mn;const{value:b,defaultValue:k="",onChange:x,placeholder:pt=l.INK_PLACEHOLDER_DEFAULT,disabled:c=!1,readOnly:a=!1,minHeight:Ue=C.INK_MIN_HEIGHT,maxHeight:Ke,toolbar:Un,className:Kn="",testId:Fn,allowImagePaste:St=!0,showCharCount:ht=!1,charCountMax:gt,typoAutoFix:wn=!0,variant:pe=l.INK_DEFAULT_VARIANT,chrome:vn=l.INK_DEFAULT_CHROME,colorMode:Bt=Sn.INK_DEFAULT_COLOR_MODE,features:yn,author:V=l.INK_DEFAULT_AUTHOR,trackChanges:ce,onTrackChangesChange:Fe,trackChangesEnabled:Se,onTrackChangesEnabledChange:we,comments:ae,onCommentsChange:ve,showCommentsPanel:ue,onShowCommentsPanelChange:ye,ai:A,slashCommands:Gn,tableRows:qn=l.INK_TABLE_DEFAULT_ROWS,tableCols:Xn=l.INK_TABLE_DEFAULT_COLS,premium:jn,theme:Wn,themeId:bt,onThemeChange:Ge,icons:Pt,pasteMode:Zn="plain",onImageUpload:Mt,wysiwyg:Vn=!1,keepInMemory:Y=!1,memoryKey:z,onToolbarChange:qe,toolbarHidden:$,onToolbarHiddenChange:Xe,showOutline:Yn,onOutlineChange:je,collaboration:M,style:zn,...$n}=D,he=Un??(pe===l.INK_VARIANT_DOCUMENT?l.INK_CHROME_TOOLBAR:l.INK_DEFAULT_TOOLBAR),u={...l.INK_DEFAULT_FEATURES,...yn},Q=Z.resolveInkPremium(jn),Qn=Z.hasInkPremiumFeature(Q,"icons"),Jn=Z.hasInkPremiumFeature(Q,"theme"),eo=Z.hasInkPremiumFeature(Q,"richPaste"),to=Z.hasInkPremiumFeature(Q,"imageUpload"),no=Z.hasInkPremiumFeature(Q,"wysiwyg")&&Vn,R=Qn&&Pt?{...hn.INK_DEFAULT_ICONS,...Pt}:hn.INK_DEFAULT_ICONS,oo=Jn?Z.themeTokensToStyle(Wn):{},ro=eo&&Zn==="rich",o=r.useRef(null),ge=r.useRef(null),_e=r.useRef(new Ct.InkHistoryStack(b??k)),J=r.useRef(null),X=r.useRef(null),Be=r.useRef(E.EMPTY_STRING),[We,so]=r.useState(new Set),[lo,Ht]=r.useState("p"),[io,co]=r.useState(C.NUMBER_ZERO),[ao,uo]=r.useState(C.NUMBER_ZERO),[_o,Dt]=r.useState(C.NUMBER_ONE),[To,kt]=r.useState(C.NUMBER_ONE),[Eo,ee]=r.useState([]),[Oo,Lo]=r.useState(C.NUMBER_ZERO),[Io,Ze]=r.useState(E.EMPTY_STRING),[No,fo]=r.useState(C.INK_DEFAULT_TEXT_COLOR),[Co,Ao]=r.useState(C.INK_DEFAULT_HIGHLIGHT_COLOR),[te,xt]=r.useState(Se??!1),[Ro,Ut]=r.useState(ce??[]),[mo,Kt]=r.useState(ae??[]),[po,Ft]=r.useState(ue??!1),[wt,Te]=r.useState(!!(A!=null&&A.enabled&&A.openOnInit)),[be,So]=r.useState(!1),vt=r.useRef(!1),[F,Ee]=r.useState({visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO}),Oe=r.useRef(null),ne=r.useRef(C.NUMBER_ZERO),[yt,ho]=r.useState(""),[go,Bo]=r.useState(0),[bo,Gt]=r.useState(!1),[Po,Pe]=r.useState([]),[qt,Mo]=r.useState({top:0,left:0}),[Xt,Ve]=r.useState(!1),[Ye,Me]=r.useState(!1),[de,jt]=r.useState(!1),[Wt,Zt]=r.useState(E.EMPTY_STRING),[Ho,Do]=r.useState(y.FIND_REPLACE_FOCUS_FIND),[ko,xo]=r.useState(Lt.FONT_VALUE_SYSTEM),[Uo,Vt]=r.useState(It.LIST_VALUE_BULLET),[Ko,Fo]=r.useState(y.FIND_REPLACE_FOCUS_FIND),[ze,$e]=r.useState({open:!1,x:C.NUMBER_ZERO,y:C.NUMBER_ZERO}),[wo,Yt]=r.useState(!1),[Qe,Je]=r.useState({open:!1,x:C.NUMBER_ZERO,y:C.NUMBER_ZERO}),[et,oe]=r.useState({open:!1,top:C.NUMBER_ZERO,left:C.NUMBER_ZERO}),[re,zt]=r.useState(()=>le.readToolbarItems(Y,z)??he),[vo,$t]=r.useState(()=>$!==void 0?$:le.readToolbarHidden(Y,z)??!1),[yo,Qt]=r.useState(!1),Jt=r.useRef(!0),Go=he.join(","),w=ce??Ro,Le=ae??mo,tt=ue??po,en=Gn??u.slash,[nt,qo]=r.useState(()=>Yn??pe===l.INK_VARIANT_DOCUMENT),[tn,m]=r.useState(E.EMPTY_STRING),[Xo,jo]=r.useState(!1),se=r.useRef(null),[Wo,ot]=r.useState(!1),[Zo,Vo]=r.useState("values"),[Yo,zo]=r.useState(ie.GRAPH_SAMPLE),[$o,Qo]=r.useState(()=>q.parseGraphColors(null)),[Jo,er]=r.useState(bt||yr.THEME_DEFAULT),nn=bt??Jo,[on,tr]=r.useState(!1),nr=!!(u.outline&&nt),j=qr.useToolbarOverflow(re.length),rn=$??vo,sn=he,or=le.listCustomizableToolbarOptions(sn),rt=Bt===Sn.COLOR_MODE_SYSTEM?void 0:Bt,st=!!(u.ai&&(A!=null&&A.enabled)&&A.autocomplete!==!1&&!c&&!a),lt=()=>{Oe.current!==null&&(window.clearTimeout(Oe.current),Oe.current=null)},U=()=>{lt(),ne.current+=1,Ee(e=>e.visible||e.suggestion?{visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO}:e)},rr=()=>{if(!st||be||!o.current){U();return}const e=window.getSelection();if(!e||!e.isCollapsed){U();return}lt(),Ee(n=>n.visible||n.suggestion?{...n,visible:!1,suggestion:""}:n);const t=(A==null?void 0:A.providerId)||xr.INK_AI_DEMO_PROVIDER_ID;Oe.current=window.setTimeout(()=>{if(Oe.current=null,!o.current||vt.current)return;const n=window.getSelection();if(!n||!n.isCollapsed)return;const i=Rt.getTextBeforeCaret(o.current),T=Rt.getCaretPositionInRoot(o.current);if(!i.trim()||!T)return;const I=ne.current+1;ne.current=I;const p=o.current.innerHTML;jr.inkAi.runProvider(t,{capability:"autocomplete",html:p,prompt:i,modelId:A==null?void 0:A.modelId}).then(d=>{var fe;if(I!==ne.current)return;const S=((fe=d.text)==null?void 0:fe.trim())||"";if(!S){Ee({visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO});return}const He=o.current&&Rt.getCaretPositionInRoot(o.current)||T;Ee({visible:!0,suggestion:S,top:He.top,left:He.left})}).catch(()=>{I===ne.current&&Ee({visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO})})},kn.AI_AUTOCOMPLETE_DEBOUNCE_MS)};r.useEffect(()=>()=>{lt(),ne.current+=1},[]),r.useEffect(()=>{vt.current=be,be&&U()},[be]),r.useEffect(()=>{Se!==void 0&&xt(Se)},[Se]),r.useEffect(()=>{ce&&Ut(ce)},[ce]),r.useEffect(()=>{ae&&Kt(ae)},[ae]),r.useEffect(()=>{ue!==void 0&&Ft(ue)},[ue]),r.useEffect(()=>{$!==void 0&&$t($)},[$]),r.useEffect(()=>{if(Jt.current){Jt.current=!1;return}zt(he)},[Go]),r.useEffect(()=>{if(!o.current||b===void 0||b===J.current)return;if(o.current.innerHTML===b){J.current=b;return}const e=document.activeElement===o.current;Re.withPreservedSelection(e?o.current:null,()=>{o.current&&(o.current.innerHTML=b)}),J.current=b},[b]),r.useEffect(()=>{if(!o.current)return;const e=Y?bn.readInkMemory(z):"";if(e){o.current.innerHTML=e,J.current=e,_e.current=new Ct.InkHistoryStack(e),x==null||x(e),u.outline&&ee(K.collectOutlineItems(o.current));return}if(b!==void 0){u.outline&&ee(K.collectOutlineItems(o.current));return}k&&(o.current.innerHTML=k,J.current=k,_e.current=new Ct.InkHistoryStack(k),x==null||x(k),u.outline&&ee(K.collectOutlineItems(o.current)))},[]),r.useEffect(()=>{const e=()=>{tr(document.fullscreenElement===ge.current)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const it=e=>{if(_e.current.push(e),J.current=e,x==null||x(e),Y&&bn.writeInkMemory(e,z),ht&&o.current){const n=o.current.textContent??E.EMPTY_STRING;co(n.length),uo(Fr.countWords(n))}u.outline&&ee(K.collectOutlineItems(o.current));const t=K.getCaretLineCol(o.current);Dt(t.line),kt(t.col)},v=e=>{o.current&&(Re.withPreservedSelection(o.current,()=>{o.current&&(o.current.innerHTML=e)}),it(e))},ct=e=>{$t(e),Xe==null||Xe(e),le.writeToolbarHidden(e,Y,z)},sr=e=>{zt(e),qe==null||qe(e),le.writeToolbarItems(e,Y,z)},lr=(e,t)=>{if(e===N.TOOLBAR_OPTION_DIVIDER)return;const n=new Set(re.filter(i=>i!==N.TOOLBAR_OPTION_DIVIDER));t?n.add(e):n.delete(e),sr(le.buildVisibleToolbarItems(sn,n))},Ie=e=>{Ut(e),Fe==null||Fe(e)},at=e=>{Kt(e),ve==null||ve(e)},ut=e=>{Ft(e),ye==null||ye(e)},ir=e=>{xt(e),we==null||we(e)},cr=()=>{if(c||a){oe(T=>T.open?{...T,open:!1}:T);return}const e=window.getSelection();if(!e||e.isCollapsed||e.rangeCount===0||!xn.selectionIsInsideElement(e,o.current)){oe(T=>T.open?{...T,open:!1}:T);return}const n=e.getRangeAt(0).getBoundingClientRect();if(n.width===0&&n.height===0){oe(T=>T.open?{...T,open:!1}:T);return}const i=xn.clampInlineToolbarPosition({selectionRect:n,toolbarWidth:xe.INLINE_TOOLBAR_ESTIMATED_WIDTH_PX,toolbarHeight:xe.INLINE_TOOLBAR_ESTIMATED_HEIGHT_PX,viewport:{width:window.innerWidth,height:window.innerHeight},gap:xe.INLINE_TOOLBAR_GAP_PX,edgePadding:xe.INLINE_TOOLBAR_EDGE_PADDING_PX});oe({open:!0,top:i.top,left:i.left})},Ne=()=>{var p;so(_.getActiveFormats());const e=_.queryCommandValue("formatBlock");e&&Ht(e.toLowerCase().replace(/[<>]/g,"")),Vt(_.detectListType()),ho(mt());const t=(p=window.getSelection())==null?void 0:p.toString().trim();t&&(Be.current=t),cr();const n=K.getCaretLineCol(o.current);if(Dt(n.line),kt(n.col),u.outline&&ee(K.collectOutlineItems(o.current)),!o.current||!u.blocks)return;const i=window.getSelection(),T=(i==null?void 0:i.anchorNode)??null,I=h.getBlockElement(T,o.current);if(h.markActiveBlock(o.current,I),I){const d=o.current.getBoundingClientRect(),S=I.getBoundingClientRect();Bo(S.top-d.top+o.current.scrollTop),Gt(!0)}else Gt(!1)},L=()=>{var t,n,i;if(!o.current)return;let e=o.current.innerHTML;if(te&&u.trackChanges){const T=window.getSelection();if(T&&!T.isCollapsed){const I=mt();if(I){const p=G.createTrackChange("delete",I,V);Ie([...w,p]),ar(p.id),e=o.current.innerHTML}}}if(it(e),Ne(),en&&o.current){const T=((n=(t=window.getSelection())==null?void 0:t.anchorNode)==null?void 0:n.textContent)??"",I=Bn.extractSlashQuery(T);if(I!==null){Ze(I),Pe(Bn.filterSlashCommands(I));const p=(i=window.getSelection())==null?void 0:i.getRangeAt(0);if(p&&o.current){const d=p.getBoundingClientRect(),S=o.current.getBoundingClientRect();Mo({top:d.bottom-S.top+8,left:d.left-S.left})}}else Ze(E.EMPTY_STRING),Pe([])}st?rr():U()};r.useEffect(()=>{const e=o.current;if(!e||c||a||!u.table)return;const t=i=>{const T=i.target;if(!(T instanceof Element))return;const I=T.closest(Ae.TABLE_CELL_SELECTOR);if(!I||!e.contains(I))return;const p=I.closest(Ae.TABLE_TAG);if(!p)return;const d=P.getColumnResizeIndex(i.clientX,I,C.INK_TABLE_COL_RESIZE_EDGE_PX);if(d===null)return;i.preventDefault();const S=i.clientX,He=I.getBoundingClientRect().width;p.classList.add(l.INK_CLASS_TABLE_RESIZE);const fe=kr=>{P.setTableColumnWidth(p,d,He+(kr.clientX-S))},pn=()=>{p.classList.remove(l.INK_CLASS_TABLE_RESIZE),document.removeEventListener("pointermove",fe),document.removeEventListener("pointerup",pn),L()};document.addEventListener("pointermove",fe),document.addEventListener("pointerup",pn)},n=i=>{const T=i.target;if(!(T instanceof Element))return;const I=T.closest(Ae.TABLE_CELL_SELECTOR);if(e.querySelectorAll(Ae.TABLE_TAG).forEach(S=>{S.classList.contains(l.INK_CLASS_TABLE_RESIZE)||S.classList.remove(l.INK_CLASS_TABLE_RESIZE)}),!I||!e.contains(I))return;const d=I.closest(Ae.TABLE_TAG);d&&P.getColumnResizeIndex(i.clientX,I,C.INK_TABLE_COL_RESIZE_EDGE_PX)!==null&&d.classList.add(l.INK_CLASS_TABLE_RESIZE)};return e.addEventListener("pointerdown",t),e.addEventListener("pointermove",n),()=>{e.removeEventListener("pointerdown",t),e.removeEventListener("pointermove",n)}},[c,a,u.table]);const ln=()=>{const e=F.suggestion;if(!e){U();return}B(o.current),_.execCommand(kn.AI_AUTOCOMPLETE_COMMAND_INSERT_TEXT,e),U(),L()},ar=e=>{const t=window.getSelection();if(!t||t.rangeCount===0)return;const n=mt();n&&_.insertHTML(G.wrapDeleteHtml(n,e))},ur=()=>{if(!o.current||!wn||!u.typoAutoFix||c||a)return;const e=o.current.innerHTML,t=Kr.applyTypoAutoFix(e);t.html!==e&&(Re.withPreservedSelection(o.current,()=>{o.current&&(o.current.innerHTML=t.html)}),it(t.html))},H=e=>{if(c||a)return;if(B(o.current),e==="clearFormat"){_.clearFormatDeep(),L();return}if(e==="directionLtr"&&o.current){_.setBlockDirection(o.current,Nt.DIR_LTR),L();return}if(e==="directionRtl"&&o.current){_.setBlockDirection(o.current,Nt.DIR_RTL),L();return}if(e===f.TOOLBAR_OPTION_CHECKLIST){_.insertHTML(l.INK_CHECKLIST_HTML),L();return}const t=l.INK_BUTTON_CONFIG[e];t&&(t.value?_.execCommand(t.command,t.value):_.execCommand(t.command),L())},_r=e=>{c||a||(B(o.current),_.execCommand("formatBlock",e),Ht(e),L())},Tr=e=>{c||a||(B(o.current),_.applyFontFamily(e),xo(e),L())},Er=e=>{c||a||(B(o.current),_.applyListType(e),Vt(e),L())},cn=e=>{Do(e),Fo(e),Me(!0)},Or=e=>{if(c||a)return;const t=e===y.FIND_REPLACE_VALUE_REPLACE?y.FIND_REPLACE_FOCUS_REPLACE:y.FIND_REPLACE_FOCUS_FIND;cn(t)},_t=()=>{var i;if(c||a)return;const e=Re.captureSelectionInRoot(o.current),t=((i=window.getSelection())==null?void 0:i.toString().trim())||Be.current,n=window.prompt(E.INK_LINK_PROMPT,E.INK_LINK_PROMPT_DEFAULT);n&&(B(o.current),Re.restoreSelectionInRoot(o.current,e),_.insertLink(n,t),L())},Tt=e=>{c||a||(B(o.current),_.insertHTML(e),L())},dr=e=>{var n;const t=((n=window.getSelection())==null?void 0:n.toString().trim())||Be.current;Tt(Pn.buildTitleHtml(e,t||E.INK_TITLES_DEFAULT_TEXT))},an=async e=>to&&Mt?Mt(e):_.fileToDataUrl(e),un=async()=>{if(c||a)return;const e=document.createElement("input");e.type="file",e.accept="image/*",e.onchange=async()=>{var i;const t=(i=e.files)==null?void 0:i[0];if(!t)return;const n=await an(t);B(o.current),_.insertImage(n,t.name),L()},e.click()},_n=(e=qn,t=Xn)=>{if(c||a||!u.table)return;B(o.current);const n=P.buildTableHtml(e,t);if(te&&u.trackChanges){const i=G.createTrackChange("insert",n,V);Ie([...w,i]),_.insertHTML(G.wrapInsertHtml(n,i.id))}else _.insertHTML(n);L()},Tn=()=>{const e=_e.current.undo();if(e===null||!o.current){_.execCommand("undo"),L();return}v(e)},En=()=>{const e=_e.current.redo();if(e===null||!o.current){_.execCommand("redo"),L();return}v(e)},Lr=e=>{if(c||a)return;e.preventDefault(),Je(n=>n.open?{...n,open:!1}:n);const t=u.graph?q.getGraphBlock(e.target):null;se.current=t,jo(!!t),Yt(!!(u.table&&P.getTableCellFromSelection())),$e({open:!0,x:e.clientX,y:e.clientY})},Et=e=>{const t=se.current;if(!t)return;const n=q.parseGraphPoints(t.getAttribute(l.INK_ATTR_GRAPH_POINTS));q.replaceGraphBlock(t,e,n.length?n:ie.GRAPH_SAMPLE),se.current=null,L()},On=e=>{const t=se.current;if(!t)return;const n=q.parseGraphPoints(t.getAttribute(l.INK_ATTR_GRAPH_POINTS));zo(n.length?n:ie.GRAPH_SAMPLE),Qo(q.parseGraphColors(t.getAttribute(l.INK_ATTR_GRAPH_COLORS))),Vo(e),ot(!0)},Ir=(e,t)=>{const n=se.current;if(!n)return;const i=n.getAttribute(l.INK_ATTR_GRAPH)??ie.GRAPH_KIND_DEFAULT;q.replaceGraphBlock(n,i,e,t),ot(!1),L()},dn=()=>{const e=ge.current;if(!(!e||!u.fullscreen)){if(document.fullscreenElement){document.exitFullscreen();return}e.requestFullscreen()}},Nr=()=>{const e=se.current;if(e){const t=document.createRange();t.selectNodeContents(e);const n=window.getSelection();n==null||n.removeAllRanges(),n==null||n.addRange(t)}Te(!0)},Ln=()=>{const e=!nt;qo(e),e&&o.current&&ee(K.collectOutlineItems(o.current)),je==null||je(e)},fr=e=>{c||a||(e.preventDefault(),$e(t=>t.open?{...t,open:!1}:t),Je({open:!0,x:e.clientX,y:e.clientY}))},In=()=>{if(c||a||!u.comments)return;const e=window.prompt("Comment:");if(!(e!=null&&e.trim()))return;const t=gn.createInkId("hl");if(B(o.current),!ft.wrapSelectionAsComment(t))return;const i=ft.createCommentThread(V,e.trim(),t);at([i,...Le]),ut(!0),L()},Cr=[{id:N.TOOLBAR_CONTEXT_MENU_ID_CUSTOMIZE,label:N.TOOLBAR_CONTEXT_MENU_LABEL_CUSTOMIZE,onSelect:()=>Qt(!0)},{id:N.TOOLBAR_CONTEXT_MENU_ID_HIDE,label:N.TOOLBAR_CONTEXT_MENU_LABEL_HIDE,onSelect:()=>ct(!0)}],W=e=>{const t=P.getTableCellFromSelection();!t||!u.table||e(t)&&L()},Ar=u.table&&wo?[{id:O.CONTEXT_MENU_ID_TABLE_ROW_ABOVE,label:O.CONTEXT_MENU_LABEL_TABLE_ROW_ABOVE,onSelect:()=>W(e=>P.insertTableRow(e,"before"))},{id:O.CONTEXT_MENU_ID_TABLE_ROW_BELOW,label:O.CONTEXT_MENU_LABEL_TABLE_ROW_BELOW,onSelect:()=>W(e=>P.insertTableRow(e,"after"))},{id:O.CONTEXT_MENU_ID_TABLE_COL_LEFT,label:O.CONTEXT_MENU_LABEL_TABLE_COL_LEFT,onSelect:()=>W(e=>P.insertTableColumn(e,"before"))},{id:O.CONTEXT_MENU_ID_TABLE_COL_RIGHT,label:O.CONTEXT_MENU_LABEL_TABLE_COL_RIGHT,onSelect:()=>W(e=>P.insertTableColumn(e,"after"))},{id:O.CONTEXT_MENU_ID_TABLE_DELETE_ROW,label:O.CONTEXT_MENU_LABEL_TABLE_DELETE_ROW,onSelect:()=>W(e=>P.deleteTableRow(e))},{id:O.CONTEXT_MENU_ID_TABLE_DELETE_COL,label:O.CONTEXT_MENU_LABEL_TABLE_DELETE_COL,onSelect:()=>W(e=>P.deleteTableColumn(e))},{id:O.CONTEXT_MENU_ID_TABLE_HEADER,label:O.CONTEXT_MENU_LABEL_TABLE_HEADER,onSelect:()=>W(e=>P.toggleTableHeaderRow(e))}]:[],Rr=[...u.graph&&Xo?[{id:E.CONTEXT_MENU_ID_GRAPH_BAR,label:E.CONTEXT_MENU_LABEL_GRAPH_BAR,onSelect:()=>Et("bar")},{id:E.CONTEXT_MENU_ID_GRAPH_LINE,label:E.CONTEXT_MENU_LABEL_GRAPH_LINE,onSelect:()=>Et("line")},{id:E.CONTEXT_MENU_ID_GRAPH_PIE,label:E.CONTEXT_MENU_LABEL_GRAPH_PIE,onSelect:()=>Et("pie")},{id:E.CONTEXT_MENU_ID_GRAPH_EDIT,label:E.CONTEXT_MENU_LABEL_GRAPH_EDIT,onSelect:()=>On("values")},{id:E.CONTEXT_MENU_ID_GRAPH_COLORS,label:E.CONTEXT_MENU_LABEL_GRAPH_COLORS,onSelect:()=>On("colors")},{id:E.CONTEXT_MENU_ID_GRAPH_AI,label:E.CONTEXT_MENU_LABEL_GRAPH_AI,onSelect:Nr}]:[],...Ar,{id:O.CONTEXT_MENU_ID_BOLD,label:O.CONTEXT_MENU_LABEL_BOLD,onSelect:()=>H("bold")},{id:O.CONTEXT_MENU_ID_ITALIC,label:O.CONTEXT_MENU_LABEL_ITALIC,onSelect:()=>H("italic")},{id:O.CONTEXT_MENU_ID_UNDERLINE,label:O.CONTEXT_MENU_LABEL_UNDERLINE,onSelect:()=>H("underline")},{id:O.CONTEXT_MENU_ID_STRIKE,label:O.CONTEXT_MENU_LABEL_STRIKE,onSelect:()=>H("strikethrough")},{id:O.CONTEXT_MENU_ID_HEADING,label:O.CONTEXT_MENU_LABEL_HEADING,onSelect:()=>H("heading2")},{id:O.CONTEXT_MENU_ID_BULLET,label:O.CONTEXT_MENU_LABEL_BULLET,onSelect:()=>H("bulletList")},{id:O.CONTEXT_MENU_ID_ORDERED,label:O.CONTEXT_MENU_LABEL_ORDERED,onSelect:()=>H("orderedList")},{id:O.CONTEXT_MENU_ID_LINK,label:O.CONTEXT_MENU_LABEL_LINK,onSelect:()=>_t()},{id:O.CONTEXT_MENU_ID_CLEAR,label:O.CONTEXT_MENU_LABEL_CLEAR,onSelect:()=>H("clearFormat")},{id:O.CONTEXT_MENU_ID_FIND,label:O.CONTEXT_MENU_LABEL_FIND,disabled:!u.findReplace,onSelect:()=>Me(!0)},{id:O.CONTEXT_MENU_ID_SIGNATURE,label:O.CONTEXT_MENU_LABEL_SIGNATURE,disabled:!u.signature,onSelect:()=>Ve(!0)},{id:O.CONTEXT_MENU_ID_COMMENT,label:O.CONTEXT_MENU_LABEL_COMMENT,disabled:!u.comments,onSelect:()=>In()},...rn?[{id:N.CONTEXT_MENU_ID_SHOW_TOOLBAR,label:N.CONTEXT_MENU_LABEL_SHOW_TOOLBAR,onSelect:()=>ct(!1)}]:[]],Nn=e=>{if(!o.current)return;const t=G.acceptTrackChangeInHtml(o.current.innerHTML,e);v(t),Ie(w.map(n=>n.id===e?{...n,accepted:!0}:n))},fn=e=>{if(!o.current)return;const t=G.rejectTrackChangeInHtml(o.current.innerHTML,e);v(t),Ie(w.map(n=>n.id===e?{...n,rejected:!0}:n))},Cn=async e=>{const t=await an(e),n=`<img src="${t}" alt="" style="max-width:100%;height:auto;" />`;if(te&&u.trackChanges){const i=G.createTrackChange("insert",n,V);Ie([...w,i]),_.insertHTML(G.wrapInsertHtml(n,i.id))}else _.insertImage(t);L()},mr=async e=>{if(c||a)return;const t=e.clipboardData;if(!t)return;if(ro){const i=At.extractClipboardHtml(t);if(i){e.preventDefault();const I=At.sanitizePastedHtml(i);I&&(_.insertHTML(I),L());const p=t.items;if(St&&p)for(const d of Array.from(p)){if(!d.type.startsWith("image/"))continue;const S=d.getAsFile();S&&await Cn(S)}return}const T=At.extractClipboardText(t);if(T){e.preventDefault(),_.insertHTML(T.replace(/\n/g,"<br />")),L();return}}if(!St)return;const n=t.items;if(n)for(const i of Array.from(n)){if(!i.type.startsWith("image/"))continue;e.preventDefault();const T=i.getAsFile();T&&await Cn(T)}},pr=e=>{H(e)},Sr=e=>{if(e.key===Ce.KEY_TAB&&F.visible&&F.suggestion){e.preventDefault(),ln();return}if(e.key===Ce.KEY_ENTER){U();return}if(_.tryConvertMarkdownListPrefix(e.nativeEvent)){L();return}if(e.key===Ce.KEY_ESCAPE){if(F.visible){e.preventDefault(),U();return}Pe([]),oe(t=>t.open?{...t,open:!1}:t)}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===Ce.KEY_K){e.preventDefault(),u.ai&&(A!=null&&A.enabled)&&Te(!0);return}(e.metaKey||e.ctrlKey)&&e.key===Ce.KEY_Z&&(e.preventDefault(),e.shiftKey?En():Tn())},hr=e=>{var n;B(o.current);const t=window.getSelection();if((n=t==null?void 0:t.anchorNode)!=null&&n.textContent){const T=t.anchorNode.textContent.replace(/(?:^|\s)\/[^\s]*$/," ");t.anchorNode.nodeType===Node.TEXT_NODE&&(t.anchorNode.textContent=T)}switch(Ze(E.EMPTY_STRING),Pe([]),e.insert){case"heading1":_.execCommand("formatBlock",l.INK_FORMAT_BLOCK_H1);break;case"heading2":_.execCommand("formatBlock",l.INK_FORMAT_BLOCK_H2);break;case"heading3":_.execCommand("formatBlock",l.INK_FORMAT_BLOCK_H3);break;case"paragraph":_.execCommand("formatBlock",l.INK_FORMAT_BLOCK_P);break;case"bulletList":_.execCommand("insertUnorderedList");break;case"orderedList":_.execCommand("insertOrderedList");break;case"checklist":_.insertHTML(l.INK_CHECKLIST_HTML);break;case"quote":_.execCommand("formatBlock",l.INK_FORMAT_BLOCK_QUOTE);break;case"code":_.execCommand("formatBlock",l.INK_FORMAT_BLOCK_PRE);break;case"callout":_.insertHTML(l.INK_CALLOUT_HTML);break;case"table":_n();return;case"image":un();return;case"ai":Te(!0);break;case"titles":_.insertHTML(Pn.buildTitleHtml(vr.TITLE_STYLE_DEFAULT,Be.current||E.INK_TITLES_DEFAULT_TEXT));break;case"excel":_.insertHTML(Mn.excelGridToTableHtml(Mn.createEmptyExcelGrid()));break;case"graph":_.insertHTML(q.buildGraphHtml(ie.GRAPH_KIND_DEFAULT,ie.GRAPH_SAMPLE));break}L()},An=e=>{if(!o.current)return;const t=window.getSelection(),n=h.getBlockElement((t==null?void 0:t.anchorNode)??null,o.current);n&&h.moveBlock(n,e)&&(L(),Ne())},gr=e=>{if(!o.current)return;const t=window.getSelection(),n=h.getBlockElement((t==null?void 0:t.anchorNode)??null,o.current),i=o.current.querySelector(`.${l.INK_CLASS_BLOCK_ACTIVE}`),T=n??(i instanceof HTMLElement?i:null);if(!T){e.preventDefault();return}X.current=T,h.clearBlockDragClasses(o.current),h.markActiveBlock(o.current,T),h.markDraggingBlock(T),e.dataTransfer.setData(ke.BLOCK_HANDLES_DRAG_MIME,ke.BLOCK_HANDLES_DRAG_PAYLOAD),e.dataTransfer.effectAllowed=ke.BLOCK_HANDLES_DRAG_EFFECT_MOVE},Br=e=>{if(!o.current||!X.current)return;e.preventDefault(),e.dataTransfer.dropEffect=ke.BLOCK_HANDLES_DRAG_EFFECT_MOVE;const t=h.getBlockElement(e.target,o.current);if(!t||t===X.current){h.markDropTarget(o.current,null,null);return}const n=h.resolveDropPosition(e.clientY,t);h.markDropTarget(o.current,t,n)},br=e=>{if(!o.current||!X.current)return;e.preventDefault();const t=h.getBlockElement(e.target,o.current),n=X.current;t&&t!==n&&(h.resolveDropPosition(e.clientY,t)===Nt.BLOCK_DROP_POSITION_BEFORE?h.reorderBlockBefore(n,t):h.reorderBlockAfter(n,t))&&(L(),Ne()),h.clearBlockDragClasses(o.current),X.current=null},Pr=()=>{o.current&&h.clearBlockDragClasses(o.current),X.current=null},Ot=(e,t)=>{var i,T,I,p;if(e==="divider")return s.jsx("span",{className:l.INK_CLASS_DIVIDER},`divider-${t}`);if(e==="headingDropdown")return s.jsx(De.ToolbarDropdown,{title:"Heading",options:l.INK_HEADING_OPTIONS,value:lo||"p",disabled:c||a,onChange:_r},"heading");if(e===f.TOOLBAR_OPTION_FONT_DROPDOWN)return s.jsx(De.ToolbarDropdown,{title:Lt.FONT_DROPDOWN_TITLE,options:Lt.INK_FONT_OPTIONS,value:ko,disabled:c||a,onChange:Tr},f.TOOLBAR_OPTION_FONT_DROPDOWN);if(e===f.TOOLBAR_OPTION_LIST_DROPDOWN)return s.jsx(De.ToolbarDropdown,{title:It.LIST_DROPDOWN_TITLE,options:It.INK_LIST_OPTIONS,value:Uo,disabled:c||a,onChange:Er},f.TOOLBAR_OPTION_LIST_DROPDOWN);if(e==="textColor")return s.jsx(Dn.ToolbarColorPicker,{title:"Text color",type:"text",value:No,disabled:c||a,onChange:d=>{B(o.current),_.setTextColor(d),fo(d),L()}},"textColor");if(e==="highlightColor")return s.jsx(Dn.ToolbarColorPicker,{title:"Highlight color",type:"highlight",value:Co,disabled:c||a,onChange:d=>{B(o.current),_.setHighlightColor(d),Ao(d),L()}},"highlightColor");if(e==="link")return s.jsx(g.ToolbarButton,{icon:R.link,title:"Insert link",hint:N.TOOLBAR_OPTION_HINTS.link,onHint:m,disabled:c||a,onClick:_t},"link");if(e==="image")return s.jsx(g.ToolbarButton,{hint:N.TOOLBAR_OPTION_HINTS.image,onHint:m,icon:R.image,title:"Insert image",disabled:c||a,onClick:()=>{un()}},"image");if(e===f.TOOLBAR_OPTION_CHECKLIST)return s.jsx(g.ToolbarButton,{icon:R.checklist,title:"Checklist",hint:N.TOOLBAR_OPTION_HINTS.checklist,onHint:m,disabled:c||a,onClick:()=>H(f.TOOLBAR_OPTION_CHECKLIST)},f.TOOLBAR_OPTION_CHECKLIST);if(e==="table")return u.table?s.jsx(rs.TableSizePicker,{icon:R.table,disabled:c||a,onSelect:_n},"table"):null;if(e===f.TOOLBAR_OPTION_TITLES)return u.titles?s.jsx(ss.TitleGallery,{icon:R.titles,disabled:c||a,pluginColor:(i=me.inkPlugins.get("titles"))==null?void 0:i.color,hint:N.TOOLBAR_OPTION_HINTS.titles,onHint:m,onSelect:dr},f.TOOLBAR_OPTION_TITLES):null;if(e===f.TOOLBAR_OPTION_EXCEL)return u.excel?s.jsx(ls.ExcelSheetPanel,{icon:R.excel,disabled:c||a,pluginColor:(T=me.inkPlugins.get("excel"))==null?void 0:T.color,hint:N.TOOLBAR_OPTION_HINTS.excel,onHint:m,onInsert:Tt},f.TOOLBAR_OPTION_EXCEL):null;if(e===f.TOOLBAR_OPTION_GRAPH)return u.graph?s.jsx(is.GraphPicker,{icon:R.graph,disabled:c||a,pluginColor:(I=me.inkPlugins.get("graph"))==null?void 0:I.color,hint:N.TOOLBAR_OPTION_HINTS.graph,onHint:m,onInsert:Tt},f.TOOLBAR_OPTION_GRAPH):null;if(e===f.TOOLBAR_OPTION_THEME)return u.theme?s.jsx(as.ThemePicker,{icon:R.theme,disabled:c,pluginColor:(p=me.inkPlugins.get("theme"))==null?void 0:p.color,hint:N.TOOLBAR_OPTION_HINTS.theme,onHint:m,value:nn,onChange:d=>{er(d),Ge==null||Ge(d),Gr.applyInkTheme(ge.current,d)}},f.TOOLBAR_OPTION_THEME):null;if(e===f.TOOLBAR_OPTION_FULLSCREEN)return u.fullscreen?s.jsx(g.ToolbarButton,{icon:R.fullscreen,title:on?E.INK_FULLSCREEN_EXIT_TITLE:E.INK_FULLSCREEN_TITLE,hint:N.TOOLBAR_OPTION_HINTS.fullscreen,onHint:m,active:on,disabled:c,onClick:dn},f.TOOLBAR_OPTION_FULLSCREEN):null;if(e===f.TOOLBAR_OPTION_OUTLINE)return u.outline?s.jsx(g.ToolbarButton,{icon:R.outline,title:E.INK_OUTLINE_TOGGLE_TITLE,hint:N.TOOLBAR_OPTION_HINTS.outline,onHint:m,active:nt,disabled:c,onClick:Ln},f.TOOLBAR_OPTION_OUTLINE):null;if(e===f.TOOLBAR_OPTION_HTML_SOURCE)return u.htmlSource?s.jsx(g.ToolbarButton,{className:l.INK_CLASS_BUTTON_WIDE,icon:s.jsx("span",{className:l.INK_CLASS_BUTTON_LABEL,children:E.INK_HTML_SOURCE_LABEL}),title:E.INK_HTML_SOURCE_TITLE,hint:N.TOOLBAR_OPTION_HINTS.htmlSource,onHint:m,active:de,disabled:c,onClick:()=>{var d;if(de){a||v(Wt),jt(!1);return}Zt(((d=o.current)==null?void 0:d.innerHTML)??b??E.EMPTY_STRING),jt(!0)}},f.TOOLBAR_OPTION_HTML_SOURCE):null;if(e===f.TOOLBAR_OPTION_SIGNATURE)return u.signature?s.jsx(g.ToolbarButton,{icon:R.signature,title:"Sign pad",hint:N.TOOLBAR_OPTION_HINTS.signature,onHint:m,active:Xt,disabled:c||a,onClick:()=>Ve(!0)},f.TOOLBAR_OPTION_SIGNATURE):null;if(e===f.TOOLBAR_OPTION_FIND_REPLACE)return u.findReplace?s.jsx(g.ToolbarButton,{icon:R.findReplace,title:"Find and replace",hint:N.TOOLBAR_OPTION_HINTS.findReplace,onHint:m,active:Ye,disabled:c||a,onClick:()=>{Ye?Me(!1):cn(y.FIND_REPLACE_FOCUS_FIND)}},f.TOOLBAR_OPTION_FIND_REPLACE):null;if(e===f.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN)return u.findReplace?s.jsx(De.ToolbarDropdown,{title:y.FIND_REPLACE_DROPDOWN_TITLE,options:y.INK_FIND_REPLACE_OPTIONS,value:Ko,disabled:c||a,onChange:Or},f.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN):null;if(e===f.TOOLBAR_OPTION_HORIZONTAL_RULE)return u.horizontalRule?s.jsx(g.ToolbarButton,{icon:R.horizontalRule,title:"Horizontal rule",hint:N.TOOLBAR_OPTION_HINTS.horizontalRule,onHint:m,disabled:c||a,onClick:()=>{B(o.current),_.insertHTML("<hr />"),L()}},f.TOOLBAR_OPTION_HORIZONTAL_RULE):null;if(e==="undo")return s.jsx(g.ToolbarButton,{icon:R.undo,title:"Undo",hint:N.TOOLBAR_OPTION_HINTS.undo,onHint:m,disabled:c||a,onClick:Tn},"undo");if(e==="redo")return s.jsx(g.ToolbarButton,{icon:R.redo,title:"Redo",hint:N.TOOLBAR_OPTION_HINTS.redo,onHint:m,disabled:c||a,onClick:En},"redo");if(e==="trackChanges")return u.trackChanges?s.jsx(g.ToolbarButton,{icon:R.trackChanges,title:"Track changes",hint:N.TOOLBAR_OPTION_HINTS.trackChanges,onHint:m,active:te,disabled:c||a,onClick:()=>ir(!te)},"trackChanges"):null;if(e==="comments")return u.comments?s.jsx(g.ToolbarButton,{icon:R.comments,title:"Comments",hint:N.TOOLBAR_OPTION_HINTS.comments,onHint:m,active:tt,disabled:c||a,onClick:()=>{tt?ut(!1):In()}},"comments"):null;if(e==="code"){const d=l.INK_BUTTON_CONFIG.code;return s.jsx(g.ToolbarButton,{className:l.INK_CLASS_BUTTON_WIDE,icon:s.jsxs(s.Fragment,{children:[R.code,s.jsx("span",{className:l.INK_CLASS_BUTTON_LABEL,children:E.INK_CODE_LABEL})]}),title:d.title,hint:N.TOOLBAR_OPTION_HINTS.code,onHint:m,active:We.has(e),disabled:c||a,onClick:()=>H(e)},"code")}if(e==="ai"){if(!u.ai||!(A!=null&&A.enabled))return null;const d=me.inkPlugins.get("ai");return s.jsxs("button",{type:"button",className:d?`${l.INK_CLASS_AI_PILL} ${l.INK_CLASS_AI_PILL_INSTALLED}`:l.INK_CLASS_AI_PILL,title:E.INK_AI_PILL_LABEL,style:d?{"--ink-plugin-color":d.color}:void 0,"aria-label":E.INK_AI_PILL_LABEL,"aria-pressed":wt,disabled:c||a,onMouseEnter:()=>m(N.TOOLBAR_OPTION_HINTS.ai),onMouseLeave:()=>m(E.EMPTY_STRING),onMouseDown:S=>{S.preventDefault()},onClick:()=>Te(S=>!S),children:[s.jsx("span",{className:l.INK_CLASS_AI_PILL_DOT,"aria-hidden":"true"}),E.INK_AI_PILL_LABEL]},"ai")}const n=l.INK_BUTTON_CONFIG[e];return n?s.jsx(g.ToolbarButton,{icon:R[e]??e.slice(0,1).toUpperCase(),title:n.title,hint:N.TOOLBAR_OPTION_HINTS[e],onHint:m,active:We.has(e),disabled:c||a,onClick:()=>H(e)},e):null},Rn=typeof Ue=="number"?`${Ue}px`:Ue,Mr=typeof Ke=="number"?`${Ke}px`:Ke,Hr=!!(A!=null&&A.enabled&&wt),Dr=re.slice(C.NUMBER_ZERO,j.fitCount),dt=re.slice(j.fitCount);return s.jsxs("div",{ref:ge,className:Ur.cn(l.INK_CLASS_ROOT,Kn),"data-testid":Fn,"data-disabled":c||void 0,"data-variant":pe,"data-chrome":vn,"data-color-mode":rt,"data-ink-theme":nn,"data-premium":Q.active||void 0,"data-wysiwyg":no||void 0,style:{...oo,...zn},...$n,children:[rn?s.jsx("div",{className:l.INK_CLASS_TOOLBAR_SHOW,children:s.jsx(Xr.Button,{type:"button","aria-label":N.TOOLBAR_SHOW_CONTROL_ARIA_LABEL,onClick:()=>ct(!1),children:N.TOOLBAR_SHOW_CONTROL_LABEL})}):s.jsxs("div",{className:l.INK_CLASS_TOOLBAR,role:"toolbar","aria-label":"Ink formatting toolbar",onContextMenu:fr,onDoubleClick:dn,onMouseOver:e=>{const t=e.target.closest("button");if(!(t instanceof HTMLElement))return;const n=t.getAttribute("title")||t.getAttribute("aria-label")||E.EMPTY_STRING;n&&m(n)},onMouseLeave:()=>m(E.EMPTY_STRING),children:[s.jsx("div",{className:l.INK_CLASS_TOOLBAR_MEASURE,ref:j.measureRef,"aria-hidden":!0,children:re.map(Ot)}),s.jsxs("div",{className:l.INK_CLASS_TOOLBAR_ROW,ref:j.rowRef,children:[Dr.map(Ot),M!=null&&M.collaborators&&M.showPresenceStack!==!1?s.jsx(us.PresenceStack,{collaborators:M.collaborators,maxAvatars:M.maxAvatars||4,onFollow:M.onFollow}):null,dt.length>C.NUMBER_ZERO?s.jsx("span",{[l.INK_ATTR_MORE]:"",children:s.jsx(g.ToolbarButton,{icon:"⋯",title:E.INK_TOOLBAR_MORE_TITLE,hint:E.INK_TOOLBAR_MORE_TITLE,onHint:m,active:j.overflowOpen,disabled:c,onClick:()=>j.setOverflowOpen(e=>!e)})}):null]}),j.overflowOpen&&dt.length>C.NUMBER_ZERO?s.jsx("div",{className:l.INK_CLASS_TOOLBAR_OVERFLOW,children:dt.map(Ot)}):null,tn?s.jsx("p",{className:l.INK_CLASS_TOOLBAR_HINT,children:tn}):null]}),s.jsx(ns.ToolbarCustomize,{open:yo,options:or,visibleItems:re,onToggle:lr,onClose:()=>Qt(!1)}),s.jsx(cs.GraphEditModal,{open:Wo,mode:Zo,points:Yo,colors:$o,onClose:()=>ot(!1),onApply:Ir}),s.jsx(es.SignPad,{open:Xt,onClose:()=>Ve(!1),onConfirm:e=>{B(o.current),_.insertImage(e),L()}}),s.jsx(ts.FindReplace,{open:Ye,focusField:Ho,onClose:()=>Me(!1),onReplace:(e,t,n)=>{if(!o.current)return;const i=wr.replaceInHtml(o.current.innerHTML,e,t,n);v(i)}}),te&&u.trackChanges?s.jsx(Jr.TrackChangesBar,{changes:w,onAccept:Nn,onReject:fn,onAcceptAll:()=>w.forEach(e=>Nn(e.id)),onRejectAll:()=>w.forEach(e=>fn(e.id))}):null,pe==="agent"?s.jsx("div",{className:"Ink-Editor__agent-bar",role:"status",children:N.AGENT_BAR_PLACEHOLDER}):null,s.jsxs("div",{className:l.INK_CLASS_SHELL,children:[nr?s.jsx(Qr.OutlineRail,{items:Eo,activeIndex:Oo,onHide:Ln,onSelect:e=>{o.current&&(K.scrollOutlineHeading(o.current,e),Lo(e))}}):null,s.jsxs("div",{className:l.INK_CLASS_BODY,children:[u.blocks?s.jsx(Yr.BlockHandles,{visible:bo&&!c&&!a,top:go,onMoveUp:()=>An("up"),onMoveDown:()=>An("down"),onDragStart:gr}):null,M!=null&&M.collaborators&&M.showRemoteCursors!==!1?s.jsx(_s.RemoteCursors,{collaborators:M.collaborators}):null,s.jsx("div",{ref:o,className:de?`${l.INK_CLASS_CONTENT} ${l.INK_CLASS_CONTENT_HIDDEN}`:l.INK_CLASS_CONTENT,contentEditable:!c&&!a&&!de,role:"textbox","aria-multiline":"true","aria-placeholder":pt,"data-placeholder":pt,suppressContentEditableWarning:!0,style:{minHeight:Rn,maxHeight:Mr},onInput:L,onBlur:ur,onKeyUp:Ne,onKeyDown:Sr,onMouseUp:Ne,onContextMenu:Lr,onDragOver:Br,onDrop:br,onDragEnd:Pr,onPaste:e=>{mr(e)}}),de?s.jsx(os.HtmlSourcePanel,{value:Wt,onChange:Zt,disabled:c||a,minHeight:Rn}):null,en?s.jsx($r.SlashMenu,{items:Po,top:qt.top,left:qt.left,query:Io,onSelect:hr}):null,st?s.jsx(Vr.AiAutocomplete,{suggestion:F.suggestion,position:{top:F.top,left:F.left},visible:F.visible,onAccept:ln,onDismiss:U}):null,s.jsx(zr.InlineToolbar,{open:et.open,top:et.top,left:et.left,icons:{bold:R.bold,italic:R.italic,underline:R.underline,code:R.code,link:R.link,clearFormat:R.clearFormat},activeFormats:We,disabled:c||a,onFormat:pr,onLink:_t,onClose:()=>oe(e=>({...e,open:!1}))}),s.jsx(Hn.ContextMenu,{open:ze.open,x:ze.x,y:ze.y,items:Rr,colorMode:rt,onClose:()=>{Yt(!1),$e(e=>({...e,open:!1}))}}),s.jsx(Hn.ContextMenu,{open:Qe.open,x:Qe.x,y:Qe.y,items:Cr,colorMode:rt,onClose:()=>Je(e=>({...e,open:!1}))})]}),tt&&u.comments?s.jsx(Wr.CommentsPanel,{comments:Le,author:V,onClose:()=>ut(!1),onResolve:e=>{const t=Le.find(n=>n.id===e);at(Le.map(n=>n.id===e?{...n,resolved:!0}:n)),t&&o.current&&v(ft.removeCommentMark(o.current.innerHTML,t.highlightId))},onAddReply:(e,t)=>{at(Le.map(n=>n.id===e?{...n,replies:[...n.replies,{id:gn.createInkId("reply"),author:V,body:t,timestamp:Date.now()}]}:n))}}):null,Hr&&A?s.jsx(Zr.AiPanel,{config:A,documentHtml:((mn=o.current)==null?void 0:mn.innerHTML)??b??"",selectionHtml:yt,onBusyChange:So,onClose:()=>Te(!1),onApplyHtml:e=>{if(B(o.current),yt)_.insertHTML(e);else{v(e);return}L()}}):null]}),ht?s.jsxs("div",{className:l.INK_CLASS_FOOTER,children:[s.jsxs("span",{children:[ao," ",E.INK_FOOTER_WORDS_LABEL," ",E.INK_FOOTER_DOT," ",io,gt?` / ${gt}`:""," ",E.INK_FOOTER_CHARS_LABEL]}),s.jsxs("span",{className:l.INK_CLASS_FOOTER_META,children:[s.jsxs("span",{children:[E.INK_FOOTER_LINE_LABEL," ",_o,", ",E.INK_FOOTER_COL_LABEL," ",To]}),s.jsx("span",{className:"Ink-Editor__footer-sync",children:E.INK_FOOTER_SYNCED_LABEL})]})]}):null]})};exports.InkEditor=Ts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InkEditor.d.ts","sourceRoot":"","sources":["../../../src/components/InkEditor/InkEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,EAAE,EAMR,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAEV,cAAc,EAKf,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"InkEditor.d.ts","sourceRoot":"","sources":["../../../src/components/InkEditor/InkEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,EAAE,EAMR,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAEV,cAAc,EAKf,MAAM,aAAa,CAAC;AAgUrB,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA2+DxC,CAAC"}
|