@forgedevstack/ink 1.1.8 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/dist/common-components/Box/Box.cjs +1 -1
  3. package/dist/common-components/Box/Box.js +7 -6
  4. package/dist/common-components/Button/Button.cjs +1 -1
  5. package/dist/common-components/Button/Button.js +9 -8
  6. package/dist/common-components/Canvas/Canvas.cjs +1 -1
  7. package/dist/common-components/Canvas/Canvas.js +3 -2
  8. package/dist/common-components/ContextMenu/ContextMenu.cjs +1 -1
  9. package/dist/common-components/ContextMenu/ContextMenu.js +3 -2
  10. package/dist/common-components/Field/Field.cjs +1 -1
  11. package/dist/common-components/Field/Field.js +11 -10
  12. package/dist/common-components/icons/GripIcon.cjs +1 -1
  13. package/dist/common-components/icons/GripIcon.js +3 -2
  14. package/dist/components/InkEditor/InkEditor.cjs +1 -1
  15. package/dist/components/InkEditor/InkEditor.d.ts.map +1 -1
  16. package/dist/components/InkEditor/InkEditor.js +1301 -1006
  17. package/dist/components/InkEditor/components/AiPanel/AiPanel.cjs +1 -1
  18. package/dist/components/InkEditor/components/AiPanel/AiPanel.js +13 -12
  19. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.cjs +1 -0
  20. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.const.cjs +1 -0
  21. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.const.d.ts +20 -0
  22. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.const.d.ts.map +1 -0
  23. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.const.js +25 -0
  24. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.d.ts +4 -0
  25. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.d.ts.map +1 -0
  26. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.js +61 -0
  27. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.types.d.ts +11 -0
  28. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.types.d.ts.map +1 -0
  29. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.utils.cjs +1 -0
  30. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.utils.d.ts +19 -0
  31. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.utils.d.ts.map +1 -0
  32. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.utils.js +30 -0
  33. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.utils.test.d.ts +2 -0
  34. package/dist/components/InkEditor/components/AiSelectionBubble/AiSelectionBubble.utils.test.d.ts.map +1 -0
  35. package/dist/components/InkEditor/components/AiSelectionBubble/index.d.ts +4 -0
  36. package/dist/components/InkEditor/components/AiSelectionBubble/index.d.ts.map +1 -0
  37. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.cjs +1 -1
  38. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.js +7 -6
  39. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.cjs +1 -1
  40. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.d.ts +2 -0
  41. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.d.ts.map +1 -1
  42. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.js +16 -15
  43. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.cjs +1 -1
  44. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.js +14 -13
  45. package/dist/components/InkEditor/components/FindReplace/FindReplace.cjs +1 -1
  46. package/dist/components/InkEditor/components/FindReplace/FindReplace.js +21 -20
  47. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.cjs +1 -1
  48. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.js +17 -16
  49. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.cjs +1 -1
  50. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.js +3 -2
  51. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.cjs +1 -1
  52. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.js +7 -6
  53. package/dist/components/InkEditor/components/ImageFrame/ImageFrame.cjs +1 -0
  54. package/dist/components/InkEditor/components/ImageFrame/ImageFrame.d.ts +8 -0
  55. package/dist/components/InkEditor/components/ImageFrame/ImageFrame.d.ts.map +1 -0
  56. package/dist/components/InkEditor/components/ImageFrame/ImageFrame.js +54 -0
  57. package/dist/components/InkEditor/components/ImageFrame/index.d.ts +3 -0
  58. package/dist/components/InkEditor/components/ImageFrame/index.d.ts.map +1 -0
  59. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.cjs +1 -1
  60. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.js +11 -10
  61. package/dist/components/InkEditor/components/MentionMenu/MentionMenu.cjs +1 -0
  62. package/dist/components/InkEditor/components/MentionMenu/MentionMenu.d.ts +16 -0
  63. package/dist/components/InkEditor/components/MentionMenu/MentionMenu.d.ts.map +1 -0
  64. package/dist/components/InkEditor/components/MentionMenu/MentionMenu.js +21 -0
  65. package/dist/components/InkEditor/components/MentionMenu/index.d.ts +3 -0
  66. package/dist/components/InkEditor/components/MentionMenu/index.d.ts.map +1 -0
  67. package/dist/components/InkEditor/components/OutlineRail/OutlineRail.cjs +1 -1
  68. package/dist/components/InkEditor/components/OutlineRail/OutlineRail.js +11 -10
  69. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.cjs +1 -0
  70. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.cjs +1 -0
  71. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.d.ts +7 -0
  72. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.d.ts.map +1 -0
  73. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.js +9 -0
  74. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.d.ts +4 -0
  75. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.d.ts.map +1 -0
  76. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.js +83 -0
  77. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.types.d.ts +8 -0
  78. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.types.d.ts.map +1 -0
  79. package/dist/components/InkEditor/components/PresenceStack/index.d.ts +3 -0
  80. package/dist/components/InkEditor/components/PresenceStack/index.d.ts.map +1 -0
  81. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.cjs +1 -0
  82. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.cjs +1 -0
  83. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.d.ts +7 -0
  84. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.d.ts.map +1 -0
  85. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.js +10 -0
  86. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.d.ts +4 -0
  87. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.d.ts.map +1 -0
  88. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.js +66 -0
  89. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.types.d.ts +6 -0
  90. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.types.d.ts.map +1 -0
  91. package/dist/components/InkEditor/components/RemoteCursors/index.d.ts +3 -0
  92. package/dist/components/InkEditor/components/RemoteCursors/index.d.ts.map +1 -0
  93. package/dist/components/InkEditor/components/SignPad/SignPad.cjs +1 -1
  94. package/dist/components/InkEditor/components/SignPad/SignPad.js +7 -6
  95. package/dist/components/InkEditor/components/SlashMenu/SlashMenu.cjs +1 -1
  96. package/dist/components/InkEditor/components/SlashMenu/SlashMenu.js +7 -6
  97. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.cjs +1 -1
  98. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.cjs +1 -1
  99. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.js +8 -7
  100. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.js +7 -6
  101. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.cjs +1 -1
  102. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.js +7 -6
  103. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.cjs +1 -1
  104. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.js +3 -2
  105. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.cjs +1 -1
  106. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.js +13 -12
  107. package/dist/components/InkEditor/components/ToolbarColorPicker/ToolbarColorPicker.cjs +1 -1
  108. package/dist/components/InkEditor/components/ToolbarColorPicker/ToolbarColorPicker.js +9 -8
  109. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.cjs +1 -1
  110. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.const.cjs +1 -1
  111. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.const.js +9 -8
  112. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.js +9 -8
  113. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.cjs +1 -1
  114. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.js +19 -18
  115. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.cjs +1 -1
  116. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.js +6 -5
  117. package/dist/components/InkEditor/components/VersionHistory/VersionHistory.cjs +1 -0
  118. package/dist/components/InkEditor/components/VersionHistory/VersionHistory.d.ts +11 -0
  119. package/dist/components/InkEditor/components/VersionHistory/VersionHistory.d.ts.map +1 -0
  120. package/dist/components/InkEditor/components/VersionHistory/VersionHistory.js +22 -0
  121. package/dist/components/InkEditor/components/VersionHistory/index.d.ts +3 -0
  122. package/dist/components/InkEditor/components/VersionHistory/index.d.ts.map +1 -0
  123. package/dist/components/InkEditor/components/index.d.ts +11 -0
  124. package/dist/components/InkEditor/components/index.d.ts.map +1 -1
  125. package/dist/components/InkEditor/helpers/format.utils.cjs +3 -2
  126. package/dist/components/InkEditor/helpers/format.utils.d.ts +1 -0
  127. package/dist/components/InkEditor/helpers/format.utils.d.ts.map +1 -1
  128. package/dist/components/InkEditor/helpers/format.utils.js +106 -84
  129. package/dist/components/InkEditor/helpers/index.d.ts +1 -1
  130. package/dist/components/InkEditor/helpers/index.d.ts.map +1 -1
  131. package/dist/components/InkTabs/InkTabs.cjs +1 -0
  132. package/dist/components/InkTabs/InkTabs.d.ts +4 -0
  133. package/dist/components/InkTabs/InkTabs.d.ts.map +1 -0
  134. package/dist/components/InkTabs/InkTabs.js +104 -0
  135. package/dist/components/InkTabs/index.d.ts +2 -0
  136. package/dist/components/InkTabs/index.d.ts.map +1 -0
  137. package/dist/components/InkWorkspace/InkWorkspace.cjs +1 -0
  138. package/dist/components/InkWorkspace/InkWorkspace.d.ts +4 -0
  139. package/dist/components/InkWorkspace/InkWorkspace.d.ts.map +1 -0
  140. package/dist/components/InkWorkspace/InkWorkspace.js +309 -0
  141. package/dist/components/InkWorkspace/components/WorkspaceIcons.cjs +1 -0
  142. package/dist/components/InkWorkspace/components/WorkspaceIcons.d.ts +11 -0
  143. package/dist/components/InkWorkspace/components/WorkspaceIcons.d.ts.map +1 -0
  144. package/dist/components/InkWorkspace/components/WorkspaceIcons.js +39 -0
  145. package/dist/components/InkWorkspace/hooks/useInkWorkspace.cjs +1 -0
  146. package/dist/components/InkWorkspace/hooks/useInkWorkspace.d.ts +30 -0
  147. package/dist/components/InkWorkspace/hooks/useInkWorkspace.d.ts.map +1 -0
  148. package/dist/components/InkWorkspace/hooks/useInkWorkspace.js +73 -0
  149. package/dist/components/InkWorkspace/index.d.ts +4 -0
  150. package/dist/components/InkWorkspace/index.d.ts.map +1 -0
  151. package/dist/components/index.d.ts +2 -0
  152. package/dist/components/index.d.ts.map +1 -1
  153. package/dist/constants/collab.const.cjs +1 -0
  154. package/dist/constants/collab.const.d.ts +20 -0
  155. package/dist/constants/collab.const.d.ts.map +1 -0
  156. package/dist/constants/collab.const.js +54 -0
  157. package/dist/constants/contextMenu.const.cjs +1 -1
  158. package/dist/constants/contextMenu.const.d.ts +8 -0
  159. package/dist/constants/contextMenu.const.d.ts.map +1 -1
  160. package/dist/constants/contextMenu.const.js +30 -22
  161. package/dist/constants/defaultIcons.cjs +1 -1
  162. package/dist/constants/defaultIcons.js +6 -5
  163. package/dist/constants/defaults.const.cjs +1 -1
  164. package/dist/constants/defaults.const.d.ts.map +1 -1
  165. package/dist/constants/defaults.const.js +150 -138
  166. package/dist/constants/index.d.ts +2 -0
  167. package/dist/constants/index.d.ts.map +1 -1
  168. package/dist/constants/numbers.cjs +1 -1
  169. package/dist/constants/numbers.js +43 -37
  170. package/dist/constants/toolbar.const.cjs +1 -1
  171. package/dist/constants/toolbar.const.d.ts +7 -0
  172. package/dist/constants/toolbar.const.d.ts.map +1 -1
  173. package/dist/constants/toolbar.const.js +16 -9
  174. package/dist/constants/toolbarMenu.const.cjs +1 -1
  175. package/dist/constants/toolbarMenu.const.d.ts.map +1 -1
  176. package/dist/constants/toolbarMenu.const.js +25 -11
  177. package/dist/constants/workspace.const.cjs +1 -0
  178. package/dist/constants/workspace.const.d.ts +24 -0
  179. package/dist/constants/workspace.const.d.ts.map +1 -0
  180. package/dist/constants/workspace.const.js +23 -0
  181. package/dist/hooks/index.d.ts +2 -0
  182. package/dist/hooks/index.d.ts.map +1 -1
  183. package/dist/hooks/useInkCollaboration.cjs +1 -0
  184. package/dist/hooks/useInkCollaboration.d.ts +4 -0
  185. package/dist/hooks/useInkCollaboration.d.ts.map +1 -0
  186. package/dist/hooks/useInkCollaboration.js +87 -0
  187. package/dist/hooks/useToolbarOverflow.cjs +1 -1
  188. package/dist/hooks/useToolbarOverflow.js +12 -11
  189. package/dist/index.cjs +1 -1
  190. package/dist/index.d.ts +5 -3
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +151 -135
  193. package/dist/plugins/ai/demoProvider.cjs +1 -1
  194. package/dist/plugins/ai/demoProvider.js +3 -2
  195. package/dist/plugins/ai/index.cjs +1 -1
  196. package/dist/plugins/ai/index.js +25 -24
  197. package/dist/plugins/excel/excel.utils.cjs +1 -1
  198. package/dist/plugins/excel/excel.utils.js +17 -16
  199. package/dist/plugins/graph/graph.utils.cjs +1 -1
  200. package/dist/plugins/graph/graph.utils.js +7 -6
  201. package/dist/plugins/titles/titles.const.cjs +1 -1
  202. package/dist/plugins/titles/titles.const.js +9 -8
  203. package/dist/plugins/titles/titles.utils.cjs +1 -1
  204. package/dist/plugins/titles/titles.utils.js +3 -2
  205. package/dist/styles.css +1 -1
  206. package/dist/types/collab.types.d.ts +54 -0
  207. package/dist/types/collab.types.d.ts.map +1 -0
  208. package/dist/types/features.types.d.ts +1 -1
  209. package/dist/types/features.types.d.ts.map +1 -1
  210. package/dist/types/index.d.ts +2 -0
  211. package/dist/types/index.d.ts.map +1 -1
  212. package/dist/types/ink.types.d.ts +3 -1
  213. package/dist/types/ink.types.d.ts.map +1 -1
  214. package/dist/types/workspace.types.d.ts +54 -0
  215. package/dist/types/workspace.types.d.ts.map +1 -0
  216. package/dist/utils/blocks.utils.cjs +1 -1
  217. package/dist/utils/blocks.utils.js +19 -18
  218. package/dist/utils/collab.utils.cjs +1 -0
  219. package/dist/utils/collab.utils.d.ts +5 -0
  220. package/dist/utils/collab.utils.d.ts.map +1 -0
  221. package/dist/utils/collab.utils.js +33 -0
  222. package/dist/utils/collab.utils.test.d.ts +2 -0
  223. package/dist/utils/collab.utils.test.d.ts.map +1 -0
  224. package/dist/utils/comments.utils.cjs +1 -1
  225. package/dist/utils/comments.utils.d.ts +4 -0
  226. package/dist/utils/comments.utils.d.ts.map +1 -1
  227. package/dist/utils/comments.utils.js +26 -18
  228. package/dist/utils/comments.utils.test.d.ts +2 -0
  229. package/dist/utils/comments.utils.test.d.ts.map +1 -0
  230. package/dist/utils/exportDocument.utils.cjs +2 -0
  231. package/dist/utils/exportDocument.utils.d.ts +16 -0
  232. package/dist/utils/exportDocument.utils.d.ts.map +1 -0
  233. package/dist/utils/exportDocument.utils.js +85 -0
  234. package/dist/utils/exportDocument.utils.test.d.ts +2 -0
  235. package/dist/utils/exportDocument.utils.test.d.ts.map +1 -0
  236. package/dist/utils/formatPainter.utils.cjs +1 -0
  237. package/dist/utils/formatPainter.utils.d.ts +11 -0
  238. package/dist/utils/formatPainter.utils.d.ts.map +1 -0
  239. package/dist/utils/formatPainter.utils.js +20 -0
  240. package/dist/utils/formatPainter.utils.test.d.ts +2 -0
  241. package/dist/utils/formatPainter.utils.test.d.ts.map +1 -0
  242. package/dist/utils/history.utils.cjs +1 -1
  243. package/dist/utils/history.utils.js +3 -2
  244. package/dist/utils/image.utils.cjs +1 -0
  245. package/dist/utils/image.utils.d.ts +14 -0
  246. package/dist/utils/image.utils.d.ts.map +1 -0
  247. package/dist/utils/image.utils.js +33 -0
  248. package/dist/utils/image.utils.test.d.ts +2 -0
  249. package/dist/utils/image.utils.test.d.ts.map +1 -0
  250. package/dist/utils/index.d.ts +12 -3
  251. package/dist/utils/index.d.ts.map +1 -1
  252. package/dist/utils/ink.brand.test.d.ts +2 -0
  253. package/dist/utils/ink.brand.test.d.ts.map +1 -0
  254. package/dist/utils/license.utils.cjs +1 -1
  255. package/dist/utils/license.utils.js +8 -7
  256. package/dist/utils/markdown.utils.cjs +11 -0
  257. package/dist/utils/markdown.utils.d.ts +7 -0
  258. package/dist/utils/markdown.utils.d.ts.map +1 -0
  259. package/dist/utils/markdown.utils.js +87 -0
  260. package/dist/utils/markdown.utils.test.d.ts +2 -0
  261. package/dist/utils/markdown.utils.test.d.ts.map +1 -0
  262. package/dist/utils/mentions.utils.cjs +1 -0
  263. package/dist/utils/mentions.utils.d.ts +13 -0
  264. package/dist/utils/mentions.utils.d.ts.map +1 -0
  265. package/dist/utils/mentions.utils.js +23 -0
  266. package/dist/utils/mentions.utils.test.d.ts +2 -0
  267. package/dist/utils/mentions.utils.test.d.ts.map +1 -0
  268. package/dist/utils/outline.utils.cjs +1 -1
  269. package/dist/utils/outline.utils.js +9 -8
  270. package/dist/utils/paste.utils.cjs +1 -1
  271. package/dist/utils/paste.utils.d.ts +2 -0
  272. package/dist/utils/paste.utils.d.ts.map +1 -1
  273. package/dist/utils/paste.utils.js +53 -19
  274. package/dist/utils/paste.utils.test.d.ts +2 -0
  275. package/dist/utils/paste.utils.test.d.ts.map +1 -0
  276. package/dist/utils/premium.utils.cjs +1 -1
  277. package/dist/utils/premium.utils.js +12 -11
  278. package/dist/utils/selection.utils.cjs +1 -1
  279. package/dist/utils/selection.utils.js +3 -2
  280. package/dist/utils/slash.utils.cjs +1 -1
  281. package/dist/utils/slash.utils.js +10 -9
  282. package/dist/utils/table.utils.cjs +1 -1
  283. package/dist/utils/table.utils.d.ts +8 -0
  284. package/dist/utils/table.utils.d.ts.map +1 -1
  285. package/dist/utils/table.utils.js +78 -54
  286. package/dist/utils/toolbarStorage.utils.cjs +1 -1
  287. package/dist/utils/toolbarStorage.utils.js +15 -14
  288. package/dist/utils/trackChanges.utils.cjs +1 -1
  289. package/dist/utils/trackChanges.utils.js +9 -8
  290. package/dist/utils/typo.utils.cjs +1 -1
  291. package/dist/utils/typo.utils.js +8 -7
  292. package/dist/utils/versions.utils.cjs +1 -0
  293. package/dist/utils/versions.utils.d.ts +11 -0
  294. package/dist/utils/versions.utils.d.ts.map +1 -0
  295. package/dist/utils/versions.utils.js +36 -0
  296. package/dist/utils/versions.utils.test.d.ts +2 -0
  297. package/dist/utils/versions.utils.test.d.ts.map +1 -0
  298. package/dist/utils/words.utils.cjs +1 -1
  299. package/dist/utils/words.utils.js +3 -2
  300. package/dist/utils/workspace.utils.cjs +1 -0
  301. package/dist/utils/workspace.utils.d.ts +5 -0
  302. package/dist/utils/workspace.utils.d.ts.map +1 -0
  303. package/dist/utils/workspace.utils.js +26 -0
  304. package/dist/utils/workspace.utils.test.d.ts +2 -0
  305. package/dist/utils/workspace.utils.test.d.ts.map +1 -0
  306. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,30 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased]
3
+ ## 1.2.0
4
+
5
+ ### Added
6
+ - Selection AI bubble (FORGE-168): Improve, Shorter, Longer, Fix, Tone, and Translate on a text selection, then apply the suggestion.
7
+ - Markdown import and export (FORGE-167), plus `# `, `## `, `### `, `> `, and `1. ` shortcuts.
8
+ - Word and PDF export (FORGE-169). Word downloads a `.docx`. PDF opens the browser print dialog.
9
+ - Word and Google Docs paste cleanup (FORGE-170). Headings, links, tables, and lists stay. Office styles are dropped.
10
+ - Local version history (FORGE-171). Save a named snapshot, restore it, or compare it beside the current document.
11
+ - @mentions (FORGE-172). Typing `@` lists collaborators and inserts a mention chip.
12
+ - Image resize, alignment, alt text, and caption (FORGE-173). Click an image to edit it.
13
+ - Comment resolve keeps the highlight, can be reopened, and clicking a thread scrolls to it (FORGE-174).
14
+ - Format painter and change case (FORGE-175). Copy bold, italic, and underline onto the next selection, or switch the selection to UPPER, lower, or Title Case.
15
+ - Table cell merge, split, background, and vertical align (FORGE-176) from the table context menu.
16
+
17
+ ### Fixed
18
+ - Selection AI menu sits on the highlighted sentence instead of dropping to the bottom of the selection.
19
+
20
+ ## 1.1.9
21
+
22
+ ### Added
23
+ - **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.
24
+ - **Workspace Document Tree & File Explorer (`InkWorkspace`)** (INK-78): Collapsible sidebar tree with document search, folder hierarchy, document create/rename/duplicate/delete, and status counters.
25
+ - **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.
26
+ - **Split-Screen Dual Buffer View** (INK-80): Side-by-side (vertical) or stacked (horizontal) split editing to view and edit two documents simultaneously.
27
+ - **Portal Workspace & Collaboration Integration** (INK-81): Multi-document workspace demo and live collaboration playground.
4
28
 
5
29
  ## 1.1.8
6
30
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),o=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const e=require("./Box.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const u=r=>{const{as:s=e.BOX_DEFAULT_AS,className:t,children:c,...i}=r;return n.jsx(s,{className:o.cn(e.BOX_CLASS,t),...i,children:c})};exports.Box=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),n=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const e=require("./Box.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const o=r=>{const{as:s=e.BOX_DEFAULT_AS,className:t,children:i,...u}=r;return c.jsx(s,{className:n.cn(e.BOX_CLASS,t),...u,children:i})};exports.Box=o;
@@ -1,14 +1,15 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { cn as p } from "../../utils/cn.utils.js";
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { cn as s } from "../../utils/cn.utils.js";
3
3
  import "../../constants/openai.const.js";
4
4
  import { BOX_DEFAULT_AS as a, BOX_CLASS as c } from "./Box.const.js";
5
5
  import "react";
6
6
  import "react-dom";
7
7
  import "../../utils/paste.utils.js";
8
- const S = (r) => {
9
- const { as: o = a, className: m, children: t, ...s } = r;
10
- return /* @__PURE__ */ i(o, { className: p(c, m), ...s, children: t });
8
+ import "../../utils/exportDocument.utils.js";
9
+ const _ = (r) => {
10
+ const { as: o = a, className: m, children: t, ...i } = r;
11
+ return /* @__PURE__ */ p(o, { className: s(c, m), ...i, children: t });
11
12
  };
12
13
  export {
13
- S as Box
14
+ _ as Box
14
15
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),i=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const e=require("./Button.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const T=r=>{const{active:t=!1,className:n,children:u,type:s="button",...o}=r;return c.jsx("button",{type:s,className:i.cn(e.BUTTON_CLASS,e.BUTTON_EDITOR_CLASS,t&&e.BUTTON_ACTIVE_CLASS,t&&e.BUTTON_EDITOR_ACTIVE_CLASS,n),...o,children:u})};exports.Button=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),c=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const e=require("./Button.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const T=r=>{const{active:t=!1,className:u,children:n,type:s="button",...i}=r;return o.jsx("button",{type:s,className:c.cn(e.BUTTON_CLASS,e.BUTTON_EDITOR_CLASS,t&&e.BUTTON_ACTIVE_CLASS,t&&e.BUTTON_EDITOR_ACTIVE_CLASS,u),...i,children:n})};exports.Button=T;
@@ -1,28 +1,29 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { cn as p } from "../../utils/cn.utils.js";
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { cn as e } from "../../utils/cn.utils.js";
3
3
  import "../../constants/openai.const.js";
4
4
  import { BUTTON_EDITOR_ACTIVE_CLASS as s, BUTTON_ACTIVE_CLASS as n, BUTTON_EDITOR_CLASS as S, BUTTON_CLASS as _ } from "./Button.const.js";
5
5
  import "react";
6
6
  import "react-dom";
7
7
  import "../../utils/paste.utils.js";
8
- const f = (o) => {
9
- const { active: t = !1, className: r, children: m, type: T = "button", ...e } = o;
10
- return /* @__PURE__ */ i(
8
+ import "../../utils/exportDocument.utils.js";
9
+ const l = (o) => {
10
+ const { active: t = !1, className: r, children: m, type: T = "button", ...i } = o;
11
+ return /* @__PURE__ */ p(
11
12
  "button",
12
13
  {
13
14
  type: T,
14
- className: p(
15
+ className: e(
15
16
  _,
16
17
  S,
17
18
  t && n,
18
19
  t && s,
19
20
  r
20
21
  ),
21
- ...e,
22
+ ...i,
22
23
  children: m
23
24
  }
24
25
  );
25
26
  };
26
27
  export {
27
- f as Button
28
+ l as Button
28
29
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const c=require("./Canvas.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const u=e=>{const{canvasRef:r,className:s,...n}=e;return a.jsx("canvas",{ref:r,className:t.cn(c.CANVAS_CLASS,s),...n})};exports.Canvas=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const c=require("./Canvas.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const u=e=>{const{canvasRef:r,className:s,...n}=e;return a.jsx("canvas",{ref:r,className:t.cn(c.CANVAS_CLASS,s),...n})};exports.Canvas=u;
@@ -5,10 +5,11 @@ import { CANVAS_CLASS as p } from "./Canvas.const.js";
5
5
  import "react";
6
6
  import "react-dom";
7
7
  import "../../utils/paste.utils.js";
8
- const C = (r) => {
8
+ import "../../utils/exportDocument.utils.js";
9
+ const N = (r) => {
9
10
  const { canvasRef: o, className: m, ...t } = r;
10
11
  return /* @__PURE__ */ s("canvas", { ref: o, className: a(p, m), ...t });
11
12
  };
12
13
  export {
13
- C as Canvas
14
+ N as Canvas
14
15
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),c=require("react"),O=require("react-dom"),e=require("./ContextMenu.const.cjs"),w=require("./ContextMenu.utils.cjs"),X=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("../../utils/paste.utils.cjs");const P=u=>{const{open:o,x:d,y:l,items:a,onClose:n,colorMode:M}=u,E=c.useRef(null);if(c.useEffect(()=>{if(!o)return;const t=r=>{var T;const s=r.target;if(!(s instanceof Node)){n();return}(T=E.current)!=null&&T.contains(s)||n()},_=r=>{r.key===e.CONTEXT_MENU_KEY_ESCAPE&&n()};return window.addEventListener(e.CONTEXT_MENU_EVENT_POINTER_DOWN,t),window.addEventListener(e.CONTEXT_MENU_EVENT_KEY_DOWN,_),()=>{window.removeEventListener(e.CONTEXT_MENU_EVENT_POINTER_DOWN,t),window.removeEventListener(e.CONTEXT_MENU_EVENT_KEY_DOWN,_)}},[o,n]),!o)return null;const i=w.clampContextMenuPosition({x:d,y:l,menuWidth:e.CONTEXT_MENU_ESTIMATED_WIDTH_PX,menuHeight:e.CONTEXT_MENU_ESTIMATED_HEIGHT_PX,viewport:{width:window.innerWidth,height:window.innerHeight},edgePadding:e.CONTEXT_MENU_EDGE_PADDING_PX}),C=t=>{t.stopPropagation()};return O.createPortal(N.jsx("div",{ref:E,className:e.CONTEXT_MENU_CLASS,role:e.CONTEXT_MENU_ROLE,"data-color-mode":M,style:{left:i.x,top:i.y},onPointerDown:C,children:a.map(t=>N.jsx("button",{type:"button",role:e.CONTEXT_MENU_ITEM_ROLE,className:X.cn(e.CONTEXT_MENU_ITEM_CLASS),disabled:t.disabled,onClick:()=>{t.onSelect(),n()},children:t.label},t.id))}),document.body)};exports.ContextMenu=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),c=require("react"),O=require("react-dom"),e=require("./ContextMenu.const.cjs"),w=require("./ContextMenu.utils.cjs"),X=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const P=u=>{const{open:o,x:d,y:l,items:a,onClose:n,colorMode:M}=u,E=c.useRef(null);if(c.useEffect(()=>{if(!o)return;const t=r=>{var T;const s=r.target;if(!(s instanceof Node)){n();return}(T=E.current)!=null&&T.contains(s)||n()},_=r=>{r.key===e.CONTEXT_MENU_KEY_ESCAPE&&n()};return window.addEventListener(e.CONTEXT_MENU_EVENT_POINTER_DOWN,t),window.addEventListener(e.CONTEXT_MENU_EVENT_KEY_DOWN,_),()=>{window.removeEventListener(e.CONTEXT_MENU_EVENT_POINTER_DOWN,t),window.removeEventListener(e.CONTEXT_MENU_EVENT_KEY_DOWN,_)}},[o,n]),!o)return null;const i=w.clampContextMenuPosition({x:d,y:l,menuWidth:e.CONTEXT_MENU_ESTIMATED_WIDTH_PX,menuHeight:e.CONTEXT_MENU_ESTIMATED_HEIGHT_PX,viewport:{width:window.innerWidth,height:window.innerHeight},edgePadding:e.CONTEXT_MENU_EDGE_PADDING_PX}),C=t=>{t.stopPropagation()};return O.createPortal(N.jsx("div",{ref:E,className:e.CONTEXT_MENU_CLASS,role:e.CONTEXT_MENU_ROLE,"data-color-mode":M,style:{left:i.x,top:i.y},onPointerDown:C,children:a.map(t=>N.jsx("button",{type:"button",role:e.CONTEXT_MENU_ITEM_ROLE,className:X.cn(e.CONTEXT_MENU_ITEM_CLASS),disabled:t.disabled,onClick:()=>{t.onSelect(),n()},children:t.label},t.id))}),document.body)};exports.ContextMenu=P;
@@ -6,7 +6,8 @@ import { clampContextMenuPosition as v } from "./ContextMenu.utils.js";
6
6
  import { cn as I } from "../../utils/cn.utils.js";
7
7
  import "../../constants/openai.const.js";
8
8
  import "../../utils/paste.utils.js";
9
- const W = (l) => {
9
+ import "../../utils/exportDocument.utils.js";
10
+ const G = (l) => {
10
11
  const { open: t, x: a, y: c, items: m, onClose: o, colorMode: p } = l, r = u(null);
11
12
  if (C(() => {
12
13
  if (!t) return;
@@ -65,5 +66,5 @@ const W = (l) => {
65
66
  );
66
67
  };
67
68
  export {
68
- W as ContextMenu
69
+ G as ContextMenu
69
70
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../Box/Box.cjs"),r=require("./Field.const.cjs"),q=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const d=s=>{const{label:n,value:t,onChange:i,autoFocus:u=!1,className:a,inputProps:l}=s;return e.jsxs("label",{className:q.cn(r.FIELD_CLASS,a),children:[e.jsx(c.Box,{as:"span",className:r.FIELD_LABEL_CLASS,children:n}),e.jsx("input",{value:t,onChange:o=>i(o.target.value),autoFocus:u,...l})]})};exports.Field=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../Box/Box.cjs"),r=require("./Field.const.cjs"),q=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const d=s=>{const{label:n,value:i,onChange:t,autoFocus:u=!1,className:a,inputProps:l}=s;return e.jsxs("label",{className:q.cn(r.FIELD_CLASS,a),children:[e.jsx(c.Box,{as:"span",className:r.FIELD_LABEL_CLASS,children:n}),e.jsx("input",{value:i,onChange:o=>t(o.target.value),autoFocus:u,...l})]})};exports.Field=d;
@@ -1,26 +1,27 @@
1
- import { jsxs as n, jsx as o } from "react/jsx-runtime";
2
- import { Box as p } from "../Box/Box.js";
1
+ import { jsxs as l, jsx as o } from "react/jsx-runtime";
2
+ import { Box as n } from "../Box/Box.js";
3
3
  import { FIELD_LABEL_CLASS as c, FIELD_CLASS as u } from "./Field.const.js";
4
4
  import { cn as L } from "../../utils/cn.utils.js";
5
5
  import "../../constants/openai.const.js";
6
6
  import "react";
7
7
  import "react-dom";
8
8
  import "../../utils/paste.utils.js";
9
- const A = (r) => {
10
- const { label: a, value: t, onChange: e, autoFocus: s = !1, className: m, inputProps: i } = r;
11
- return /* @__PURE__ */ n("label", { className: L(u, m), children: [
12
- /* @__PURE__ */ o(p, { as: "span", className: c, children: a }),
9
+ import "../../utils/exportDocument.utils.js";
10
+ const E = (r) => {
11
+ const { label: t, value: a, onChange: e, autoFocus: m = !1, className: s, inputProps: i } = r;
12
+ return /* @__PURE__ */ l("label", { className: L(u, s), children: [
13
+ /* @__PURE__ */ o(n, { as: "span", className: c, children: t }),
13
14
  /* @__PURE__ */ o(
14
15
  "input",
15
16
  {
16
- value: t,
17
- onChange: (l) => e(l.target.value),
18
- autoFocus: s,
17
+ value: a,
18
+ onChange: (p) => e(p.target.value),
19
+ autoFocus: m,
19
20
  ...i
20
21
  }
21
22
  )
22
23
  ] });
23
24
  };
24
25
  export {
25
- A as Field
26
+ E as Field
26
27
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),e=require("./Icon.const.cjs"),s=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const c=()=>r.jsx("span",{className:s.cn(e.ICON_CLASS,e.ICON_CLASS_GRIP),"aria-hidden":"true",children:r.jsx("svg",{viewBox:e.ICON_VIEWBOX,children:e.GRIP_DOT_ROWS.flatMap(i=>e.GRIP_DOT_COLS.map(n=>r.jsx("circle",{cx:n,cy:i,r:e.GRIP_DOT_RADIUS},`${n}-${i}`)))})});exports.GripIcon=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),e=require("./Icon.const.cjs"),s=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const c=()=>r.jsx("span",{className:s.cn(e.ICON_CLASS,e.ICON_CLASS_GRIP),"aria-hidden":"true",children:r.jsx("svg",{viewBox:e.ICON_VIEWBOX,children:e.GRIP_DOT_ROWS.flatMap(i=>e.GRIP_DOT_COLS.map(n=>r.jsx("circle",{cx:n,cy:i,r:e.GRIP_DOT_RADIUS},`${n}-${i}`)))})});exports.GripIcon=c;
@@ -5,9 +5,10 @@ import "../../constants/openai.const.js";
5
5
  import "react";
6
6
  import "react-dom";
7
7
  import "../../utils/paste.utils.js";
8
- const l = () => /* @__PURE__ */ r("span", { className: a(O, _), "aria-hidden": "true", children: /* @__PURE__ */ r("svg", { viewBox: m, children: p.flatMap(
8
+ import "../../utils/exportDocument.utils.js";
9
+ const G = () => /* @__PURE__ */ r("span", { className: a(O, _), "aria-hidden": "true", children: /* @__PURE__ */ r("svg", { viewBox: m, children: p.flatMap(
9
10
  (i) => t.map((o) => /* @__PURE__ */ r("circle", { cx: o, cy: i, r: I }, `${o}-${i}`))
10
11
  ) }) });
11
12
  export {
12
- l as GripIcon
13
+ G as GripIcon
13
14
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),r=require("react"),C=require("../../constants/numbers.cjs"),E=require("../../constants/generals.const.cjs"),f=require("../../constants/toolbar.const.cjs"),I=require("../../constants/toolbarMenu.const.cjs"),An=require("../../constants/colorMode.const.cjs"),fe=require("../../constants/keyboard.const.cjs"),Ot=require("../../constants/fonts.const.cjs"),dt=require("../../constants/lists.const.cjs"),v=require("../../constants/findReplaceMenu.const.cjs"),Lt=require("../../constants/blocks.const.cjs"),s=require("../../constants/defaults.const.cjs"),Mr=require("../../constants/aiModels.const.cjs");require("../../constants/openai.const.cjs");const Rn=require("../../constants/defaultIcons.cjs"),O=require("../../constants/contextMenu.const.cjs"),Ce=require("../../constants/table.const.cjs"),Hr=require("../../utils/cn.utils.cjs"),Dr=require("../../utils/typo.utils.cjs"),mn=require("../../utils/id.utils.cjs"),P=require("../../utils/table.utils.cjs"),h=require("../../utils/blocks.utils.cjs"),y=require("../../utils/trackChanges.utils.cjs"),Nt=require("../../utils/comments.utils.cjs"),It=require("../../utils/history.utils.cjs"),pn=require("../../utils/slash.utils.cjs"),kr=require("../../utils/words.utils.cjs"),x=require("../../utils/outline.utils.cjs"),W=require("../../utils/premium.utils.cjs"),ft=require("../../utils/paste.utils.cjs"),Sn=require("../../utils/memory.utils.cjs"),Ur=require("../../utils/findReplace.utils.cjs"),Ae=require("../../utils/selection.utils.cjs"),le=require("../../utils/toolbarStorage.utils.cjs"),xr=require("../../plugins/titles/titles.const.cjs"),hn=require("../../plugins/titles/titles.utils.cjs"),gn=require("../../plugins/excel/excel.utils.cjs"),se=require("../../plugins/graph/graph.const.cjs"),G=require("../../plugins/graph/graph.utils.cjs"),Kr=require("../../plugins/theme/theme.const.cjs"),Fr=require("../../plugins/theme/inkTheme.cjs"),Re=require("../../plugins/host/inkPlugins.cjs"),wr=require("../../hooks/useToolbarOverflow.cjs"),vr=require("../../common-components/Button/Button.cjs"),Bn=require("../../common-components/ContextMenu/ContextMenu.cjs"),_=require("./helpers/format.utils.cjs"),yr=require("../../plugins/ai/aiPlugin.cjs"),g=require("./components/ToolbarButton/ToolbarButton.cjs"),He=require("./components/ToolbarDropdown/ToolbarDropdown.cjs"),bn=require("./components/ToolbarColorPicker/ToolbarColorPicker.cjs"),Gr=require("./components/CommentsPanel/CommentsPanel.cjs"),qr=require("./components/AiPanel/AiPanel.cjs"),Xr=require("./components/AiAutocomplete/AiAutocomplete.cjs"),Pn=require("./components/AiAutocomplete/AiAutocomplete.const.cjs"),Ct=require("./components/AiAutocomplete/AiAutocomplete.utils.cjs"),jr=require("./components/BlockHandles/BlockHandles.cjs"),De=require("./components/BlockHandles/BlockHandles.const.cjs"),Wr=require("./components/InlineToolbar/InlineToolbar.cjs"),ke=require("./components/InlineToolbar/InlineToolbar.const.cjs"),Mn=require("./components/InlineToolbar/InlineToolbar.utils.cjs"),Zr=require("./components/SlashMenu/SlashMenu.cjs"),Vr=require("./components/OutlineRail/OutlineRail.cjs"),Yr=require("./components/TrackChangesBar/TrackChangesBar.cjs"),zr=require("./components/SignPad/SignPad.cjs"),$r=require("./components/FindReplace/FindReplace.cjs"),Qr=require("./components/ToolbarCustomize/ToolbarCustomize.cjs"),Jr=require("./components/HtmlSourcePanel/HtmlSourcePanel.cjs"),el=require("./components/TableSizePicker/TableSizePicker.cjs"),tl=require("./components/TitleGallery/TitleGallery.cjs"),nl=require("./components/ExcelSheetPanel/ExcelSheetPanel.cjs"),ol=require("./components/GraphPicker/GraphPicker.cjs"),rl=require("./components/GraphEditModal/GraphEditModal.cjs"),ll=require("./components/ThemePicker/ThemePicker.cjs"),At=()=>{const H=window.getSelection();if(!H||H.rangeCount===C.NUMBER_ZERO)return"";const b=H.getRangeAt(C.NUMBER_ZERO),D=document.createElement("div");return D.appendChild(b.cloneContents()),D.innerHTML},B=H=>{H==null||H.focus({preventScroll:!0})},sl=H=>{var fn;const{value:b,defaultValue:D="",onChange:k,placeholder:Rt=s.INK_PLACEHOLDER_DEFAULT,disabled:c=!1,readOnly:a=!1,minHeight:Ue=C.INK_MIN_HEIGHT,maxHeight:xe,toolbar:Hn,className:Dn="",testId:kn,allowImagePaste:mt=!0,showCharCount:pt=!1,charCountMax:St,typoAutoFix:Un=!0,variant:me=s.INK_DEFAULT_VARIANT,chrome:xn=s.INK_DEFAULT_CHROME,colorMode:ht=An.INK_DEFAULT_COLOR_MODE,features:Kn,author:Z=s.INK_DEFAULT_AUTHOR,trackChanges:ie,onTrackChangesChange:Ke,trackChangesEnabled:pe,onTrackChangesEnabledChange:Fe,comments:ce,onCommentsChange:we,showCommentsPanel:ae,onShowCommentsPanelChange:ve,ai:A,slashCommands:Fn,tableRows:wn=s.INK_TABLE_DEFAULT_ROWS,tableCols:vn=s.INK_TABLE_DEFAULT_COLS,premium:yn,theme:Gn,icons:gt,pasteMode:qn="plain",onImageUpload:Bt,wysiwyg:Xn=!1,keepInMemory:V=!1,memoryKey:Y,onToolbarChange:ye,toolbarHidden:z,onToolbarHiddenChange:Ge,showOutline:jn,onOutlineChange:qe,style:Wn,...Zn}=H,Se=Hn??(me===s.INK_VARIANT_DOCUMENT?s.INK_CHROME_TOOLBAR:s.INK_DEFAULT_TOOLBAR),u={...s.INK_DEFAULT_FEATURES,...Kn},$=W.resolveInkPremium(yn),Vn=W.hasInkPremiumFeature($,"icons"),Yn=W.hasInkPremiumFeature($,"theme"),zn=W.hasInkPremiumFeature($,"richPaste"),$n=W.hasInkPremiumFeature($,"imageUpload"),Qn=W.hasInkPremiumFeature($,"wysiwyg")&&Xn,R=Vn&&gt?{...Rn.INK_DEFAULT_ICONS,...gt}:Rn.INK_DEFAULT_ICONS,Jn=Yn?W.themeTokensToStyle(Gn):{},eo=zn&&qn==="rich",o=r.useRef(null),he=r.useRef(null),ue=r.useRef(new It.InkHistoryStack(b??D)),Q=r.useRef(null),q=r.useRef(null),ge=r.useRef(E.EMPTY_STRING),[Xe,to]=r.useState(new Set),[no,bt]=r.useState("p"),[oo,ro]=r.useState(C.NUMBER_ZERO),[lo,so]=r.useState(C.NUMBER_ZERO),[io,Pt]=r.useState(C.NUMBER_ONE),[co,Mt]=r.useState(C.NUMBER_ONE),[ao,J]=r.useState([]),[uo,_o]=r.useState(C.NUMBER_ZERO),[To,je]=r.useState(E.EMPTY_STRING),[Eo,Oo]=r.useState(C.INK_DEFAULT_TEXT_COLOR),[Lo,No]=r.useState(C.INK_DEFAULT_HIGHLIGHT_COLOR),[ee,Ht]=r.useState(pe??!1),[Io,Dt]=r.useState(ie??[]),[fo,kt]=r.useState(ce??[]),[Co,Ut]=r.useState(ae??!1),[xt,_e]=r.useState(!!(A!=null&&A.enabled&&A.openOnInit)),[Be,Ao]=r.useState(!1),Kt=r.useRef(!1),[K,Te]=r.useState({visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO}),Ee=r.useRef(null),te=r.useRef(C.NUMBER_ZERO),[Ft,Ro]=r.useState(""),[mo,po]=r.useState(0),[So,wt]=r.useState(!1),[ho,be]=r.useState([]),[vt,go]=r.useState({top:0,left:0}),[yt,We]=r.useState(!1),[Ze,Pe]=r.useState(!1),[Oe,Gt]=r.useState(!1),[qt,Xt]=r.useState(E.EMPTY_STRING),[Bo,bo]=r.useState(v.FIND_REPLACE_FOCUS_FIND),[Po,Mo]=r.useState(Ot.FONT_VALUE_SYSTEM),[Ho,jt]=r.useState(dt.LIST_VALUE_BULLET),[Do,ko]=r.useState(v.FIND_REPLACE_FOCUS_FIND),[Ve,Ye]=r.useState({open:!1,x:C.NUMBER_ZERO,y:C.NUMBER_ZERO}),[Uo,Wt]=r.useState(!1),[ze,$e]=r.useState({open:!1,x:C.NUMBER_ZERO,y:C.NUMBER_ZERO}),[Qe,ne]=r.useState({open:!1,top:C.NUMBER_ZERO,left:C.NUMBER_ZERO}),[oe,Zt]=r.useState(()=>le.readToolbarItems(V,Y)??Se),[xo,Vt]=r.useState(()=>z!==void 0?z:le.readToolbarHidden(V,Y)??!1),[Ko,Yt]=r.useState(!1),zt=r.useRef(!0),Fo=Se.join(","),F=ie??Io,de=ce??fo,Je=ae??Co,$t=Fn??u.slash,[et,wo]=r.useState(()=>jn??me===s.INK_VARIANT_DOCUMENT),[Qt,m]=r.useState(E.EMPTY_STRING),[vo,yo]=r.useState(!1),re=r.useRef(null),[Go,tt]=r.useState(!1),[qo,Xo]=r.useState("values"),[jo,Wo]=r.useState(se.GRAPH_SAMPLE),[Zo,Vo]=r.useState(()=>G.parseGraphColors(null)),[Yo,zo]=r.useState(Kr.THEME_DEFAULT),[Jt,$o]=r.useState(!1),Qo=!!(u.outline&&et),X=wr.useToolbarOverflow(oe.length),en=z??xo,tn=Se,Jo=le.listCustomizableToolbarOptions(tn),nt=ht===An.COLOR_MODE_SYSTEM?void 0:ht,ot=!!(u.ai&&(A!=null&&A.enabled)&&A.autocomplete!==!1&&!c&&!a),rt=()=>{Ee.current!==null&&(window.clearTimeout(Ee.current),Ee.current=null)},U=()=>{rt(),te.current+=1,Te(e=>e.visible||e.suggestion?{visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO}:e)},er=()=>{if(!ot||Be||!o.current){U();return}const e=window.getSelection();if(!e||!e.isCollapsed){U();return}rt(),Te(n=>n.visible||n.suggestion?{...n,visible:!1,suggestion:""}:n);const t=(A==null?void 0:A.providerId)||Mr.INK_AI_DEMO_PROVIDER_ID;Ee.current=window.setTimeout(()=>{if(Ee.current=null,!o.current||Kt.current)return;const n=window.getSelection();if(!n||!n.isCollapsed)return;const i=Ct.getTextBeforeCaret(o.current),T=Ct.getCaretPositionInRoot(o.current);if(!i.trim()||!T)return;const N=te.current+1;te.current=N;const p=o.current.innerHTML;yr.inkAi.runProvider(t,{capability:"autocomplete",html:p,prompt:i,modelId:A==null?void 0:A.modelId}).then(L=>{var Ie;if(N!==te.current)return;const S=((Ie=L.text)==null?void 0:Ie.trim())||"";if(!S){Te({visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO});return}const Me=o.current&&Ct.getCaretPositionInRoot(o.current)||T;Te({visible:!0,suggestion:S,top:Me.top,left:Me.left})}).catch(()=>{N===te.current&&Te({visible:!1,suggestion:"",top:C.NUMBER_ZERO,left:C.NUMBER_ZERO})})},Pn.AI_AUTOCOMPLETE_DEBOUNCE_MS)};r.useEffect(()=>()=>{rt(),te.current+=1},[]),r.useEffect(()=>{Kt.current=Be,Be&&U()},[Be]),r.useEffect(()=>{pe!==void 0&&Ht(pe)},[pe]),r.useEffect(()=>{ie&&Dt(ie)},[ie]),r.useEffect(()=>{ce&&kt(ce)},[ce]),r.useEffect(()=>{ae!==void 0&&Ut(ae)},[ae]),r.useEffect(()=>{z!==void 0&&Vt(z)},[z]),r.useEffect(()=>{if(zt.current){zt.current=!1;return}Zt(Se)},[Fo]),r.useEffect(()=>{if(!o.current||b===void 0||b===Q.current)return;if(o.current.innerHTML===b){Q.current=b;return}const e=document.activeElement===o.current;Ae.withPreservedSelection(e?o.current:null,()=>{o.current&&(o.current.innerHTML=b)}),Q.current=b},[b]),r.useEffect(()=>{if(!o.current)return;const e=V?Sn.readInkMemory(Y):"";if(e){o.current.innerHTML=e,Q.current=e,ue.current=new It.InkHistoryStack(e),k==null||k(e),u.outline&&J(x.collectOutlineItems(o.current));return}if(b!==void 0){u.outline&&J(x.collectOutlineItems(o.current));return}D&&(o.current.innerHTML=D,Q.current=D,ue.current=new It.InkHistoryStack(D),k==null||k(D),u.outline&&J(x.collectOutlineItems(o.current)))},[]),r.useEffect(()=>{const e=()=>{$o(document.fullscreenElement===he.current)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const lt=e=>{if(ue.current.push(e),Q.current=e,k==null||k(e),V&&Sn.writeInkMemory(e,Y),pt&&o.current){const n=o.current.textContent??E.EMPTY_STRING;ro(n.length),so(kr.countWords(n))}u.outline&&J(x.collectOutlineItems(o.current));const t=x.getCaretLineCol(o.current);Pt(t.line),Mt(t.col)},w=e=>{o.current&&(Ae.withPreservedSelection(o.current,()=>{o.current&&(o.current.innerHTML=e)}),lt(e))},st=e=>{Vt(e),Ge==null||Ge(e),le.writeToolbarHidden(e,V,Y)},tr=e=>{Zt(e),ye==null||ye(e),le.writeToolbarItems(e,V,Y)},nr=(e,t)=>{if(e===I.TOOLBAR_OPTION_DIVIDER)return;const n=new Set(oe.filter(i=>i!==I.TOOLBAR_OPTION_DIVIDER));t?n.add(e):n.delete(e),tr(le.buildVisibleToolbarItems(tn,n))},Le=e=>{Dt(e),Ke==null||Ke(e)},it=e=>{kt(e),we==null||we(e)},ct=e=>{Ut(e),ve==null||ve(e)},or=e=>{Ht(e),Fe==null||Fe(e)},rr=()=>{if(c||a){ne(T=>T.open?{...T,open:!1}:T);return}const e=window.getSelection();if(!e||e.isCollapsed||e.rangeCount===0||!Mn.selectionIsInsideElement(e,o.current)){ne(T=>T.open?{...T,open:!1}:T);return}const n=e.getRangeAt(0).getBoundingClientRect();if(n.width===0&&n.height===0){ne(T=>T.open?{...T,open:!1}:T);return}const i=Mn.clampInlineToolbarPosition({selectionRect:n,toolbarWidth:ke.INLINE_TOOLBAR_ESTIMATED_WIDTH_PX,toolbarHeight:ke.INLINE_TOOLBAR_ESTIMATED_HEIGHT_PX,viewport:{width:window.innerWidth,height:window.innerHeight},gap:ke.INLINE_TOOLBAR_GAP_PX,edgePadding:ke.INLINE_TOOLBAR_EDGE_PADDING_PX});ne({open:!0,top:i.top,left:i.left})},Ne=()=>{var p;to(_.getActiveFormats());const e=_.queryCommandValue("formatBlock");e&&bt(e.toLowerCase().replace(/[<>]/g,"")),jt(_.detectListType()),Ro(At());const t=(p=window.getSelection())==null?void 0:p.toString().trim();t&&(ge.current=t),rr();const n=x.getCaretLineCol(o.current);if(Pt(n.line),Mt(n.col),u.outline&&J(x.collectOutlineItems(o.current)),!o.current||!u.blocks)return;const i=window.getSelection(),T=(i==null?void 0:i.anchorNode)??null,N=h.getBlockElement(T,o.current);if(h.markActiveBlock(o.current,N),N){const L=o.current.getBoundingClientRect(),S=N.getBoundingClientRect();po(S.top-L.top+o.current.scrollTop),wt(!0)}else wt(!1)},d=()=>{var t,n,i;if(!o.current)return;let e=o.current.innerHTML;if(ee&&u.trackChanges){const T=window.getSelection();if(T&&!T.isCollapsed){const N=At();if(N){const p=y.createTrackChange("delete",N,Z);Le([...F,p]),lr(p.id),e=o.current.innerHTML}}}if(lt(e),Ne(),$t&&o.current){const T=((n=(t=window.getSelection())==null?void 0:t.anchorNode)==null?void 0:n.textContent)??"",N=pn.extractSlashQuery(T);if(N!==null){je(N),be(pn.filterSlashCommands(N));const p=(i=window.getSelection())==null?void 0:i.getRangeAt(0);if(p&&o.current){const L=p.getBoundingClientRect(),S=o.current.getBoundingClientRect();go({top:L.bottom-S.top+8,left:L.left-S.left})}}else je(E.EMPTY_STRING),be([])}ot?er():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 N=T.closest(Ce.TABLE_CELL_SELECTOR);if(!N||!e.contains(N))return;const p=N.closest(Ce.TABLE_TAG);if(!p)return;const L=P.getColumnResizeIndex(i.clientX,N,C.INK_TABLE_COL_RESIZE_EDGE_PX);if(L===null)return;i.preventDefault();const S=i.clientX,Me=N.getBoundingClientRect().width;p.classList.add(s.INK_CLASS_TABLE_RESIZE);const Ie=Pr=>{P.setTableColumnWidth(p,L,Me+(Pr.clientX-S))},Cn=()=>{p.classList.remove(s.INK_CLASS_TABLE_RESIZE),document.removeEventListener("pointermove",Ie),document.removeEventListener("pointerup",Cn),d()};document.addEventListener("pointermove",Ie),document.addEventListener("pointerup",Cn)},n=i=>{const T=i.target;if(!(T instanceof Element))return;const N=T.closest(Ce.TABLE_CELL_SELECTOR);if(e.querySelectorAll(Ce.TABLE_TAG).forEach(S=>{S.classList.contains(s.INK_CLASS_TABLE_RESIZE)||S.classList.remove(s.INK_CLASS_TABLE_RESIZE)}),!N||!e.contains(N))return;const L=N.closest(Ce.TABLE_TAG);L&&P.getColumnResizeIndex(i.clientX,N,C.INK_TABLE_COL_RESIZE_EDGE_PX)!==null&&L.classList.add(s.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 nn=()=>{const e=K.suggestion;if(!e){U();return}B(o.current),_.execCommand(Pn.AI_AUTOCOMPLETE_COMMAND_INSERT_TEXT,e),U(),d()},lr=e=>{const t=window.getSelection();if(!t||t.rangeCount===0)return;const n=At();n&&_.insertHTML(y.wrapDeleteHtml(n,e))},sr=()=>{if(!o.current||!Un||!u.typoAutoFix||c||a)return;const e=o.current.innerHTML,t=Dr.applyTypoAutoFix(e);t.html!==e&&(Ae.withPreservedSelection(o.current,()=>{o.current&&(o.current.innerHTML=t.html)}),lt(t.html))},M=e=>{if(c||a)return;if(B(o.current),e==="clearFormat"){_.clearFormatDeep(),d();return}if(e==="directionLtr"&&o.current){_.setBlockDirection(o.current,Lt.DIR_LTR),d();return}if(e==="directionRtl"&&o.current){_.setBlockDirection(o.current,Lt.DIR_RTL),d();return}if(e===f.TOOLBAR_OPTION_CHECKLIST){_.insertHTML(s.INK_CHECKLIST_HTML),d();return}const t=s.INK_BUTTON_CONFIG[e];t&&(t.value?_.execCommand(t.command,t.value):_.execCommand(t.command),d())},ir=e=>{c||a||(B(o.current),_.execCommand("formatBlock",e),bt(e),d())},cr=e=>{c||a||(B(o.current),_.applyFontFamily(e),Mo(e),d())},ar=e=>{c||a||(B(o.current),_.applyListType(e),jt(e),d())},on=e=>{bo(e),ko(e),Pe(!0)},ur=e=>{if(c||a)return;const t=e===v.FIND_REPLACE_VALUE_REPLACE?v.FIND_REPLACE_FOCUS_REPLACE:v.FIND_REPLACE_FOCUS_FIND;on(t)},at=()=>{var i;if(c||a)return;const e=Ae.captureSelectionInRoot(o.current),t=((i=window.getSelection())==null?void 0:i.toString().trim())||ge.current,n=window.prompt(E.INK_LINK_PROMPT,E.INK_LINK_PROMPT_DEFAULT);n&&(B(o.current),Ae.restoreSelectionInRoot(o.current,e),_.insertLink(n,t),d())},ut=e=>{c||a||(B(o.current),_.insertHTML(e),d())},_r=e=>{var n;const t=((n=window.getSelection())==null?void 0:n.toString().trim())||ge.current;ut(hn.buildTitleHtml(e,t||E.INK_TITLES_DEFAULT_TEXT))},rn=async e=>$n&&Bt?Bt(e):_.fileToDataUrl(e),ln=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 rn(t);B(o.current),_.insertImage(n,t.name),d()},e.click()},sn=(e=wn,t=vn)=>{if(c||a||!u.table)return;B(o.current);const n=P.buildTableHtml(e,t);if(ee&&u.trackChanges){const i=y.createTrackChange("insert",n,Z);Le([...F,i]),_.insertHTML(y.wrapInsertHtml(n,i.id))}else _.insertHTML(n);d()},cn=()=>{const e=ue.current.undo();if(e===null||!o.current){_.execCommand("undo"),d();return}w(e)},an=()=>{const e=ue.current.redo();if(e===null||!o.current){_.execCommand("redo"),d();return}w(e)},Tr=e=>{if(c||a)return;e.preventDefault(),$e(n=>n.open?{...n,open:!1}:n);const t=u.graph?G.getGraphBlock(e.target):null;re.current=t,yo(!!t),Wt(!!(u.table&&P.getTableCellFromSelection())),Ye({open:!0,x:e.clientX,y:e.clientY})},_t=e=>{const t=re.current;if(!t)return;const n=G.parseGraphPoints(t.getAttribute(s.INK_ATTR_GRAPH_POINTS));G.replaceGraphBlock(t,e,n.length?n:se.GRAPH_SAMPLE),re.current=null,d()},un=e=>{const t=re.current;if(!t)return;const n=G.parseGraphPoints(t.getAttribute(s.INK_ATTR_GRAPH_POINTS));Wo(n.length?n:se.GRAPH_SAMPLE),Vo(G.parseGraphColors(t.getAttribute(s.INK_ATTR_GRAPH_COLORS))),Xo(e),tt(!0)},Er=(e,t)=>{const n=re.current;if(!n)return;const i=n.getAttribute(s.INK_ATTR_GRAPH)??se.GRAPH_KIND_DEFAULT;G.replaceGraphBlock(n,i,e,t),tt(!1),d()},_n=()=>{const e=he.current;if(!(!e||!u.fullscreen)){if(document.fullscreenElement){document.exitFullscreen();return}e.requestFullscreen()}},Or=()=>{const e=re.current;if(e){const t=document.createRange();t.selectNodeContents(e);const n=window.getSelection();n==null||n.removeAllRanges(),n==null||n.addRange(t)}_e(!0)},Tn=()=>{const e=!et;wo(e),e&&o.current&&J(x.collectOutlineItems(o.current)),qe==null||qe(e)},dr=e=>{c||a||(e.preventDefault(),Ye(t=>t.open?{...t,open:!1}:t),$e({open:!0,x:e.clientX,y:e.clientY}))},En=()=>{if(c||a||!u.comments)return;const e=window.prompt("Comment:");if(!(e!=null&&e.trim()))return;const t=mn.createInkId("hl");if(B(o.current),!Nt.wrapSelectionAsComment(t))return;const i=Nt.createCommentThread(Z,e.trim(),t);it([i,...de]),ct(!0),d()},Lr=[{id:I.TOOLBAR_CONTEXT_MENU_ID_CUSTOMIZE,label:I.TOOLBAR_CONTEXT_MENU_LABEL_CUSTOMIZE,onSelect:()=>Yt(!0)},{id:I.TOOLBAR_CONTEXT_MENU_ID_HIDE,label:I.TOOLBAR_CONTEXT_MENU_LABEL_HIDE,onSelect:()=>st(!0)}],j=e=>{const t=P.getTableCellFromSelection();!t||!u.table||e(t)&&d()},Nr=u.table&&Uo?[{id:O.CONTEXT_MENU_ID_TABLE_ROW_ABOVE,label:O.CONTEXT_MENU_LABEL_TABLE_ROW_ABOVE,onSelect:()=>j(e=>P.insertTableRow(e,"before"))},{id:O.CONTEXT_MENU_ID_TABLE_ROW_BELOW,label:O.CONTEXT_MENU_LABEL_TABLE_ROW_BELOW,onSelect:()=>j(e=>P.insertTableRow(e,"after"))},{id:O.CONTEXT_MENU_ID_TABLE_COL_LEFT,label:O.CONTEXT_MENU_LABEL_TABLE_COL_LEFT,onSelect:()=>j(e=>P.insertTableColumn(e,"before"))},{id:O.CONTEXT_MENU_ID_TABLE_COL_RIGHT,label:O.CONTEXT_MENU_LABEL_TABLE_COL_RIGHT,onSelect:()=>j(e=>P.insertTableColumn(e,"after"))},{id:O.CONTEXT_MENU_ID_TABLE_DELETE_ROW,label:O.CONTEXT_MENU_LABEL_TABLE_DELETE_ROW,onSelect:()=>j(e=>P.deleteTableRow(e))},{id:O.CONTEXT_MENU_ID_TABLE_DELETE_COL,label:O.CONTEXT_MENU_LABEL_TABLE_DELETE_COL,onSelect:()=>j(e=>P.deleteTableColumn(e))},{id:O.CONTEXT_MENU_ID_TABLE_HEADER,label:O.CONTEXT_MENU_LABEL_TABLE_HEADER,onSelect:()=>j(e=>P.toggleTableHeaderRow(e))}]:[],Ir=[...u.graph&&vo?[{id:E.CONTEXT_MENU_ID_GRAPH_BAR,label:E.CONTEXT_MENU_LABEL_GRAPH_BAR,onSelect:()=>_t("bar")},{id:E.CONTEXT_MENU_ID_GRAPH_LINE,label:E.CONTEXT_MENU_LABEL_GRAPH_LINE,onSelect:()=>_t("line")},{id:E.CONTEXT_MENU_ID_GRAPH_PIE,label:E.CONTEXT_MENU_LABEL_GRAPH_PIE,onSelect:()=>_t("pie")},{id:E.CONTEXT_MENU_ID_GRAPH_EDIT,label:E.CONTEXT_MENU_LABEL_GRAPH_EDIT,onSelect:()=>un("values")},{id:E.CONTEXT_MENU_ID_GRAPH_COLORS,label:E.CONTEXT_MENU_LABEL_GRAPH_COLORS,onSelect:()=>un("colors")},{id:E.CONTEXT_MENU_ID_GRAPH_AI,label:E.CONTEXT_MENU_LABEL_GRAPH_AI,onSelect:Or}]:[],...Nr,{id:O.CONTEXT_MENU_ID_BOLD,label:O.CONTEXT_MENU_LABEL_BOLD,onSelect:()=>M("bold")},{id:O.CONTEXT_MENU_ID_ITALIC,label:O.CONTEXT_MENU_LABEL_ITALIC,onSelect:()=>M("italic")},{id:O.CONTEXT_MENU_ID_UNDERLINE,label:O.CONTEXT_MENU_LABEL_UNDERLINE,onSelect:()=>M("underline")},{id:O.CONTEXT_MENU_ID_STRIKE,label:O.CONTEXT_MENU_LABEL_STRIKE,onSelect:()=>M("strikethrough")},{id:O.CONTEXT_MENU_ID_HEADING,label:O.CONTEXT_MENU_LABEL_HEADING,onSelect:()=>M("heading2")},{id:O.CONTEXT_MENU_ID_BULLET,label:O.CONTEXT_MENU_LABEL_BULLET,onSelect:()=>M("bulletList")},{id:O.CONTEXT_MENU_ID_ORDERED,label:O.CONTEXT_MENU_LABEL_ORDERED,onSelect:()=>M("orderedList")},{id:O.CONTEXT_MENU_ID_LINK,label:O.CONTEXT_MENU_LABEL_LINK,onSelect:()=>at()},{id:O.CONTEXT_MENU_ID_CLEAR,label:O.CONTEXT_MENU_LABEL_CLEAR,onSelect:()=>M("clearFormat")},{id:O.CONTEXT_MENU_ID_FIND,label:O.CONTEXT_MENU_LABEL_FIND,disabled:!u.findReplace,onSelect:()=>Pe(!0)},{id:O.CONTEXT_MENU_ID_SIGNATURE,label:O.CONTEXT_MENU_LABEL_SIGNATURE,disabled:!u.signature,onSelect:()=>We(!0)},{id:O.CONTEXT_MENU_ID_COMMENT,label:O.CONTEXT_MENU_LABEL_COMMENT,disabled:!u.comments,onSelect:()=>En()},...en?[{id:I.CONTEXT_MENU_ID_SHOW_TOOLBAR,label:I.CONTEXT_MENU_LABEL_SHOW_TOOLBAR,onSelect:()=>st(!1)}]:[]],On=e=>{if(!o.current)return;const t=y.acceptTrackChangeInHtml(o.current.innerHTML,e);w(t),Le(F.map(n=>n.id===e?{...n,accepted:!0}:n))},dn=e=>{if(!o.current)return;const t=y.rejectTrackChangeInHtml(o.current.innerHTML,e);w(t),Le(F.map(n=>n.id===e?{...n,rejected:!0}:n))},Ln=async e=>{const t=await rn(e),n=`<img src="${t}" alt="" style="max-width:100%;height:auto;" />`;if(ee&&u.trackChanges){const i=y.createTrackChange("insert",n,Z);Le([...F,i]),_.insertHTML(y.wrapInsertHtml(n,i.id))}else _.insertImage(t);d()},fr=async e=>{if(c||a)return;const t=e.clipboardData;if(!t)return;if(eo){const i=ft.extractClipboardHtml(t);if(i){e.preventDefault();const N=ft.sanitizePastedHtml(i);N&&(_.insertHTML(N),d());const p=t.items;if(mt&&p)for(const L of Array.from(p)){if(!L.type.startsWith("image/"))continue;const S=L.getAsFile();S&&await Ln(S)}return}const T=ft.extractClipboardText(t);if(T){e.preventDefault(),_.insertHTML(T.replace(/\n/g,"<br />")),d();return}}if(!mt)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 Ln(T)}},Cr=e=>{M(e)},Ar=e=>{if(e.key===fe.KEY_TAB&&K.visible&&K.suggestion){e.preventDefault(),nn();return}if(e.key===fe.KEY_ENTER){U();return}if(_.tryConvertMarkdownListPrefix(e.nativeEvent)){d();return}if(e.key===fe.KEY_ESCAPE){if(K.visible){e.preventDefault(),U();return}be([]),ne(t=>t.open?{...t,open:!1}:t)}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===fe.KEY_K){e.preventDefault(),u.ai&&(A!=null&&A.enabled)&&_e(!0);return}(e.metaKey||e.ctrlKey)&&e.key===fe.KEY_Z&&(e.preventDefault(),e.shiftKey?an():cn())},Rr=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(je(E.EMPTY_STRING),be([]),e.insert){case"heading1":_.execCommand("formatBlock",s.INK_FORMAT_BLOCK_H1);break;case"heading2":_.execCommand("formatBlock",s.INK_FORMAT_BLOCK_H2);break;case"heading3":_.execCommand("formatBlock",s.INK_FORMAT_BLOCK_H3);break;case"paragraph":_.execCommand("formatBlock",s.INK_FORMAT_BLOCK_P);break;case"bulletList":_.execCommand("insertUnorderedList");break;case"orderedList":_.execCommand("insertOrderedList");break;case"checklist":_.insertHTML(s.INK_CHECKLIST_HTML);break;case"quote":_.execCommand("formatBlock",s.INK_FORMAT_BLOCK_QUOTE);break;case"code":_.execCommand("formatBlock",s.INK_FORMAT_BLOCK_PRE);break;case"callout":_.insertHTML(s.INK_CALLOUT_HTML);break;case"table":sn();return;case"image":ln();return;case"ai":_e(!0);break;case"titles":_.insertHTML(hn.buildTitleHtml(xr.TITLE_STYLE_DEFAULT,ge.current||E.INK_TITLES_DEFAULT_TEXT));break;case"excel":_.insertHTML(gn.excelGridToTableHtml(gn.createEmptyExcelGrid()));break;case"graph":_.insertHTML(G.buildGraphHtml(se.GRAPH_KIND_DEFAULT,se.GRAPH_SAMPLE));break}d()},Nn=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)&&(d(),Ne())},mr=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(`.${s.INK_CLASS_BLOCK_ACTIVE}`),T=n??(i instanceof HTMLElement?i:null);if(!T){e.preventDefault();return}q.current=T,h.clearBlockDragClasses(o.current),h.markActiveBlock(o.current,T),h.markDraggingBlock(T),e.dataTransfer.setData(De.BLOCK_HANDLES_DRAG_MIME,De.BLOCK_HANDLES_DRAG_PAYLOAD),e.dataTransfer.effectAllowed=De.BLOCK_HANDLES_DRAG_EFFECT_MOVE},pr=e=>{if(!o.current||!q.current)return;e.preventDefault(),e.dataTransfer.dropEffect=De.BLOCK_HANDLES_DRAG_EFFECT_MOVE;const t=h.getBlockElement(e.target,o.current);if(!t||t===q.current){h.markDropTarget(o.current,null,null);return}const n=h.resolveDropPosition(e.clientY,t);h.markDropTarget(o.current,t,n)},Sr=e=>{if(!o.current||!q.current)return;e.preventDefault();const t=h.getBlockElement(e.target,o.current),n=q.current;t&&t!==n&&(h.resolveDropPosition(e.clientY,t)===Lt.BLOCK_DROP_POSITION_BEFORE?h.reorderBlockBefore(n,t):h.reorderBlockAfter(n,t))&&(d(),Ne()),h.clearBlockDragClasses(o.current),q.current=null},hr=()=>{o.current&&h.clearBlockDragClasses(o.current),q.current=null},Tt=(e,t)=>{var i,T,N,p;if(e==="divider")return l.jsx("span",{className:s.INK_CLASS_DIVIDER},`divider-${t}`);if(e==="headingDropdown")return l.jsx(He.ToolbarDropdown,{title:"Heading",options:s.INK_HEADING_OPTIONS,value:no||"p",disabled:c||a,onChange:ir},"heading");if(e===f.TOOLBAR_OPTION_FONT_DROPDOWN)return l.jsx(He.ToolbarDropdown,{title:Ot.FONT_DROPDOWN_TITLE,options:Ot.INK_FONT_OPTIONS,value:Po,disabled:c||a,onChange:cr},f.TOOLBAR_OPTION_FONT_DROPDOWN);if(e===f.TOOLBAR_OPTION_LIST_DROPDOWN)return l.jsx(He.ToolbarDropdown,{title:dt.LIST_DROPDOWN_TITLE,options:dt.INK_LIST_OPTIONS,value:Ho,disabled:c||a,onChange:ar},f.TOOLBAR_OPTION_LIST_DROPDOWN);if(e==="textColor")return l.jsx(bn.ToolbarColorPicker,{title:"Text color",type:"text",value:Eo,disabled:c||a,onChange:L=>{B(o.current),_.setTextColor(L),Oo(L),d()}},"textColor");if(e==="highlightColor")return l.jsx(bn.ToolbarColorPicker,{title:"Highlight color",type:"highlight",value:Lo,disabled:c||a,onChange:L=>{B(o.current),_.setHighlightColor(L),No(L),d()}},"highlightColor");if(e==="link")return l.jsx(g.ToolbarButton,{icon:R.link,title:"Insert link",hint:I.TOOLBAR_OPTION_HINTS.link,onHint:m,disabled:c||a,onClick:at},"link");if(e==="image")return l.jsx(g.ToolbarButton,{hint:I.TOOLBAR_OPTION_HINTS.image,onHint:m,icon:R.image,title:"Insert image",disabled:c||a,onClick:()=>{ln()}},"image");if(e===f.TOOLBAR_OPTION_CHECKLIST)return l.jsx(g.ToolbarButton,{icon:R.checklist,title:"Checklist",hint:I.TOOLBAR_OPTION_HINTS.checklist,onHint:m,disabled:c||a,onClick:()=>M(f.TOOLBAR_OPTION_CHECKLIST)},f.TOOLBAR_OPTION_CHECKLIST);if(e==="table")return u.table?l.jsx(el.TableSizePicker,{icon:R.table,disabled:c||a,onSelect:sn},"table"):null;if(e===f.TOOLBAR_OPTION_TITLES)return u.titles?l.jsx(tl.TitleGallery,{icon:R.titles,disabled:c||a,pluginColor:(i=Re.inkPlugins.get("titles"))==null?void 0:i.color,hint:I.TOOLBAR_OPTION_HINTS.titles,onHint:m,onSelect:_r},f.TOOLBAR_OPTION_TITLES):null;if(e===f.TOOLBAR_OPTION_EXCEL)return u.excel?l.jsx(nl.ExcelSheetPanel,{icon:R.excel,disabled:c||a,pluginColor:(T=Re.inkPlugins.get("excel"))==null?void 0:T.color,hint:I.TOOLBAR_OPTION_HINTS.excel,onHint:m,onInsert:ut},f.TOOLBAR_OPTION_EXCEL):null;if(e===f.TOOLBAR_OPTION_GRAPH)return u.graph?l.jsx(ol.GraphPicker,{icon:R.graph,disabled:c||a,pluginColor:(N=Re.inkPlugins.get("graph"))==null?void 0:N.color,hint:I.TOOLBAR_OPTION_HINTS.graph,onHint:m,onInsert:ut},f.TOOLBAR_OPTION_GRAPH):null;if(e===f.TOOLBAR_OPTION_THEME)return u.theme?l.jsx(ll.ThemePicker,{icon:R.theme,disabled:c,pluginColor:(p=Re.inkPlugins.get("theme"))==null?void 0:p.color,hint:I.TOOLBAR_OPTION_HINTS.theme,onHint:m,value:Yo,onChange:L=>{zo(L),Fr.applyInkTheme(he.current,L)}},f.TOOLBAR_OPTION_THEME):null;if(e===f.TOOLBAR_OPTION_FULLSCREEN)return u.fullscreen?l.jsx(g.ToolbarButton,{icon:R.fullscreen,title:Jt?E.INK_FULLSCREEN_EXIT_TITLE:E.INK_FULLSCREEN_TITLE,hint:I.TOOLBAR_OPTION_HINTS.fullscreen,onHint:m,active:Jt,disabled:c,onClick:_n},f.TOOLBAR_OPTION_FULLSCREEN):null;if(e===f.TOOLBAR_OPTION_OUTLINE)return u.outline?l.jsx(g.ToolbarButton,{icon:R.outline,title:E.INK_OUTLINE_TOGGLE_TITLE,hint:I.TOOLBAR_OPTION_HINTS.outline,onHint:m,active:et,disabled:c,onClick:Tn},f.TOOLBAR_OPTION_OUTLINE):null;if(e===f.TOOLBAR_OPTION_HTML_SOURCE)return u.htmlSource?l.jsx(g.ToolbarButton,{className:s.INK_CLASS_BUTTON_WIDE,icon:l.jsx("span",{className:s.INK_CLASS_BUTTON_LABEL,children:E.INK_HTML_SOURCE_LABEL}),title:E.INK_HTML_SOURCE_TITLE,hint:I.TOOLBAR_OPTION_HINTS.htmlSource,onHint:m,active:Oe,disabled:c,onClick:()=>{var L;if(Oe){a||w(qt),Gt(!1);return}Xt(((L=o.current)==null?void 0:L.innerHTML)??b??E.EMPTY_STRING),Gt(!0)}},f.TOOLBAR_OPTION_HTML_SOURCE):null;if(e===f.TOOLBAR_OPTION_SIGNATURE)return u.signature?l.jsx(g.ToolbarButton,{icon:R.signature,title:"Sign pad",hint:I.TOOLBAR_OPTION_HINTS.signature,onHint:m,active:yt,disabled:c||a,onClick:()=>We(!0)},f.TOOLBAR_OPTION_SIGNATURE):null;if(e===f.TOOLBAR_OPTION_FIND_REPLACE)return u.findReplace?l.jsx(g.ToolbarButton,{icon:R.findReplace,title:"Find and replace",hint:I.TOOLBAR_OPTION_HINTS.findReplace,onHint:m,active:Ze,disabled:c||a,onClick:()=>{Ze?Pe(!1):on(v.FIND_REPLACE_FOCUS_FIND)}},f.TOOLBAR_OPTION_FIND_REPLACE):null;if(e===f.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN)return u.findReplace?l.jsx(He.ToolbarDropdown,{title:v.FIND_REPLACE_DROPDOWN_TITLE,options:v.INK_FIND_REPLACE_OPTIONS,value:Do,disabled:c||a,onChange:ur},f.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN):null;if(e===f.TOOLBAR_OPTION_HORIZONTAL_RULE)return u.horizontalRule?l.jsx(g.ToolbarButton,{icon:R.horizontalRule,title:"Horizontal rule",hint:I.TOOLBAR_OPTION_HINTS.horizontalRule,onHint:m,disabled:c||a,onClick:()=>{B(o.current),_.insertHTML("<hr />"),d()}},f.TOOLBAR_OPTION_HORIZONTAL_RULE):null;if(e==="undo")return l.jsx(g.ToolbarButton,{icon:R.undo,title:"Undo",hint:I.TOOLBAR_OPTION_HINTS.undo,onHint:m,disabled:c||a,onClick:cn},"undo");if(e==="redo")return l.jsx(g.ToolbarButton,{icon:R.redo,title:"Redo",hint:I.TOOLBAR_OPTION_HINTS.redo,onHint:m,disabled:c||a,onClick:an},"redo");if(e==="trackChanges")return u.trackChanges?l.jsx(g.ToolbarButton,{icon:R.trackChanges,title:"Track changes",hint:I.TOOLBAR_OPTION_HINTS.trackChanges,onHint:m,active:ee,disabled:c||a,onClick:()=>or(!ee)},"trackChanges"):null;if(e==="comments")return u.comments?l.jsx(g.ToolbarButton,{icon:R.comments,title:"Comments",hint:I.TOOLBAR_OPTION_HINTS.comments,onHint:m,active:Je,disabled:c||a,onClick:()=>{Je?ct(!1):En()}},"comments"):null;if(e==="code"){const L=s.INK_BUTTON_CONFIG.code;return l.jsx(g.ToolbarButton,{className:s.INK_CLASS_BUTTON_WIDE,icon:l.jsxs(l.Fragment,{children:[R.code,l.jsx("span",{className:s.INK_CLASS_BUTTON_LABEL,children:E.INK_CODE_LABEL})]}),title:L.title,hint:I.TOOLBAR_OPTION_HINTS.code,onHint:m,active:Xe.has(e),disabled:c||a,onClick:()=>M(e)},"code")}if(e==="ai"){if(!u.ai||!(A!=null&&A.enabled))return null;const L=Re.inkPlugins.get("ai");return l.jsxs("button",{type:"button",className:L?`${s.INK_CLASS_AI_PILL} ${s.INK_CLASS_AI_PILL_INSTALLED}`:s.INK_CLASS_AI_PILL,title:E.INK_AI_PILL_LABEL,style:L?{"--ink-plugin-color":L.color}:void 0,"aria-label":E.INK_AI_PILL_LABEL,"aria-pressed":xt,disabled:c||a,onMouseEnter:()=>m(I.TOOLBAR_OPTION_HINTS.ai),onMouseLeave:()=>m(E.EMPTY_STRING),onMouseDown:S=>{S.preventDefault()},onClick:()=>_e(S=>!S),children:[l.jsx("span",{className:s.INK_CLASS_AI_PILL_DOT,"aria-hidden":"true"}),E.INK_AI_PILL_LABEL]},"ai")}const n=s.INK_BUTTON_CONFIG[e];return n?l.jsx(g.ToolbarButton,{icon:R[e]??e.slice(0,1).toUpperCase(),title:n.title,hint:I.TOOLBAR_OPTION_HINTS[e],onHint:m,active:Xe.has(e),disabled:c||a,onClick:()=>M(e)},e):null},In=typeof Ue=="number"?`${Ue}px`:Ue,gr=typeof xe=="number"?`${xe}px`:xe,Br=!!(A!=null&&A.enabled&&xt),br=oe.slice(C.NUMBER_ZERO,X.fitCount),Et=oe.slice(X.fitCount);return l.jsxs("div",{ref:he,className:Hr.cn(s.INK_CLASS_ROOT,Dn),"data-testid":kn,"data-disabled":c||void 0,"data-variant":me,"data-chrome":xn,"data-color-mode":nt,"data-premium":$.active||void 0,"data-wysiwyg":Qn||void 0,style:{...Jn,...Wn},...Zn,children:[en?l.jsx("div",{className:s.INK_CLASS_TOOLBAR_SHOW,children:l.jsx(vr.Button,{type:"button","aria-label":I.TOOLBAR_SHOW_CONTROL_ARIA_LABEL,onClick:()=>st(!1),children:I.TOOLBAR_SHOW_CONTROL_LABEL})}):l.jsxs("div",{className:s.INK_CLASS_TOOLBAR,role:"toolbar","aria-label":"Ink formatting toolbar",onContextMenu:dr,onDoubleClick:_n,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:[l.jsx("div",{className:s.INK_CLASS_TOOLBAR_MEASURE,ref:X.measureRef,"aria-hidden":!0,children:oe.map(Tt)}),l.jsxs("div",{className:s.INK_CLASS_TOOLBAR_ROW,ref:X.rowRef,children:[br.map(Tt),Et.length>C.NUMBER_ZERO?l.jsx("span",{[s.INK_ATTR_MORE]:"",children:l.jsx(g.ToolbarButton,{icon:"⋯",title:E.INK_TOOLBAR_MORE_TITLE,hint:E.INK_TOOLBAR_MORE_TITLE,onHint:m,active:X.overflowOpen,disabled:c,onClick:()=>X.setOverflowOpen(e=>!e)})}):null]}),X.overflowOpen&&Et.length>C.NUMBER_ZERO?l.jsx("div",{className:s.INK_CLASS_TOOLBAR_OVERFLOW,children:Et.map(Tt)}):null,Qt?l.jsx("p",{className:s.INK_CLASS_TOOLBAR_HINT,children:Qt}):null]}),l.jsx(Qr.ToolbarCustomize,{open:Ko,options:Jo,visibleItems:oe,onToggle:nr,onClose:()=>Yt(!1)}),l.jsx(rl.GraphEditModal,{open:Go,mode:qo,points:jo,colors:Zo,onClose:()=>tt(!1),onApply:Er}),l.jsx(zr.SignPad,{open:yt,onClose:()=>We(!1),onConfirm:e=>{B(o.current),_.insertImage(e),d()}}),l.jsx($r.FindReplace,{open:Ze,focusField:Bo,onClose:()=>Pe(!1),onReplace:(e,t,n)=>{if(!o.current)return;const i=Ur.replaceInHtml(o.current.innerHTML,e,t,n);w(i)}}),ee&&u.trackChanges?l.jsx(Yr.TrackChangesBar,{changes:F,onAccept:On,onReject:dn,onAcceptAll:()=>F.forEach(e=>On(e.id)),onRejectAll:()=>F.forEach(e=>dn(e.id))}):null,me==="agent"?l.jsx("div",{className:"Ink-Editor__agent-bar",role:"status",children:I.AGENT_BAR_PLACEHOLDER}):null,l.jsxs("div",{className:s.INK_CLASS_SHELL,children:[Qo?l.jsx(Vr.OutlineRail,{items:ao,activeIndex:uo,onHide:Tn,onSelect:e=>{o.current&&(x.scrollOutlineHeading(o.current,e),_o(e))}}):null,l.jsxs("div",{className:s.INK_CLASS_BODY,children:[u.blocks?l.jsx(jr.BlockHandles,{visible:So&&!c&&!a,top:mo,onMoveUp:()=>Nn("up"),onMoveDown:()=>Nn("down"),onDragStart:mr}):null,l.jsx("div",{ref:o,className:Oe?`${s.INK_CLASS_CONTENT} ${s.INK_CLASS_CONTENT_HIDDEN}`:s.INK_CLASS_CONTENT,contentEditable:!c&&!a&&!Oe,role:"textbox","aria-multiline":"true","aria-placeholder":Rt,"data-placeholder":Rt,suppressContentEditableWarning:!0,style:{minHeight:In,maxHeight:gr},onInput:d,onBlur:sr,onKeyUp:Ne,onKeyDown:Ar,onMouseUp:Ne,onContextMenu:Tr,onDragOver:pr,onDrop:Sr,onDragEnd:hr,onPaste:e=>{fr(e)}}),Oe?l.jsx(Jr.HtmlSourcePanel,{value:qt,onChange:Xt,disabled:c||a,minHeight:In}):null,$t?l.jsx(Zr.SlashMenu,{items:ho,top:vt.top,left:vt.left,query:To,onSelect:Rr}):null,ot?l.jsx(Xr.AiAutocomplete,{suggestion:K.suggestion,position:{top:K.top,left:K.left},visible:K.visible,onAccept:nn,onDismiss:U}):null,l.jsx(Wr.InlineToolbar,{open:Qe.open,top:Qe.top,left:Qe.left,icons:{bold:R.bold,italic:R.italic,underline:R.underline,code:R.code,link:R.link,clearFormat:R.clearFormat},activeFormats:Xe,disabled:c||a,onFormat:Cr,onLink:at,onClose:()=>ne(e=>({...e,open:!1}))}),l.jsx(Bn.ContextMenu,{open:Ve.open,x:Ve.x,y:Ve.y,items:Ir,colorMode:nt,onClose:()=>{Wt(!1),Ye(e=>({...e,open:!1}))}}),l.jsx(Bn.ContextMenu,{open:ze.open,x:ze.x,y:ze.y,items:Lr,colorMode:nt,onClose:()=>$e(e=>({...e,open:!1}))})]}),Je&&u.comments?l.jsx(Gr.CommentsPanel,{comments:de,author:Z,onClose:()=>ct(!1),onResolve:e=>{const t=de.find(n=>n.id===e);it(de.map(n=>n.id===e?{...n,resolved:!0}:n)),t&&o.current&&w(Nt.removeCommentMark(o.current.innerHTML,t.highlightId))},onAddReply:(e,t)=>{it(de.map(n=>n.id===e?{...n,replies:[...n.replies,{id:mn.createInkId("reply"),author:Z,body:t,timestamp:Date.now()}]}:n))}}):null,Br&&A?l.jsx(qr.AiPanel,{config:A,documentHtml:((fn=o.current)==null?void 0:fn.innerHTML)??b??"",selectionHtml:Ft,onBusyChange:Ao,onClose:()=>_e(!1),onApplyHtml:e=>{if(B(o.current),Ft)_.insertHTML(e);else{w(e);return}d()}}):null]}),pt?l.jsxs("div",{className:s.INK_CLASS_FOOTER,children:[l.jsxs("span",{children:[lo," ",E.INK_FOOTER_WORDS_LABEL," ",E.INK_FOOTER_DOT," ",oo,St?` / ${St}`:""," ",E.INK_FOOTER_CHARS_LABEL]}),l.jsxs("span",{className:s.INK_CLASS_FOOTER_META,children:[l.jsxs("span",{children:[E.INK_FOOTER_LINE_LABEL," ",io,", ",E.INK_FOOTER_COL_LABEL," ",co]}),l.jsx("span",{className:"Ink-Editor__footer-sync",children:E.INK_FOOTER_SYNCED_LABEL})]})]}):null]})};exports.InkEditor=sl;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),l=require("react"),R=require("../../constants/numbers.cjs"),E=require("../../constants/generals.const.cjs"),L=require("../../constants/toolbar.const.cjs"),A=require("../../constants/toolbarMenu.const.cjs"),Wn=require("../../constants/colorMode.const.cjs"),Se=require("../../constants/keyboard.const.cjs"),Mt=require("../../constants/fonts.const.cjs"),Ht=require("../../constants/lists.const.cjs"),W=require("../../constants/findReplaceMenu.const.cjs"),Dt=require("../../constants/blocks.const.cjs"),i=require("../../constants/defaults.const.cjs"),Vn=require("../../constants/aiModels.const.cjs");require("../../constants/openai.const.cjs");const Zn=require("../../constants/defaultIcons.cjs"),O=require("../../constants/contextMenu.const.cjs"),he=require("../../constants/table.const.cjs"),_l=require("../../utils/cn.utils.cjs"),Tl=require("../../utils/typo.utils.cjs"),Yn=require("../../utils/id.utils.cjs"),g=require("../../utils/table.utils.cjs"),B=require("../../utils/blocks.utils.cjs"),V=require("../../utils/trackChanges.utils.cjs"),Be=require("../../utils/comments.utils.cjs"),kt=require("../../utils/history.utils.cjs"),zn=require("../../utils/slash.utils.cjs"),Ol=require("../../utils/words.utils.cjs"),y=require("../../utils/outline.utils.cjs"),$=require("../../utils/premium.utils.cjs"),Xe=require("../../utils/paste.utils.cjs"),$n=require("../../utils/memory.utils.cjs"),El=require("../../utils/findReplace.utils.cjs"),je=require("../../utils/versions.utils.cjs"),ce=require("../../utils/markdown.utils.cjs"),ge=require("../../utils/exportDocument.utils.cjs"),We=require("../../utils/mentions.utils.cjs"),be=require("../../utils/formatPainter.utils.cjs"),Pe=require("../../utils/selection.utils.cjs"),ae=require("../../utils/toolbarStorage.utils.cjs"),dl=require("../../plugins/titles/titles.const.cjs"),Qn=require("../../plugins/titles/titles.utils.cjs"),Jn=require("../../plugins/excel/excel.utils.cjs"),ue=require("../../plugins/graph/graph.const.cjs"),Z=require("../../plugins/graph/graph.utils.cjs"),Ll=require("../../plugins/theme/theme.const.cjs"),Nl=require("../../plugins/theme/inkTheme.cjs"),Me=require("../../plugins/host/inkPlugins.cjs"),Il=require("../../hooks/useToolbarOverflow.cjs"),fl=require("../../common-components/Button/Button.cjs"),eo=require("../../common-components/ContextMenu/ContextMenu.cjs"),T=require("./helpers/format.utils.cjs"),to=require("../../plugins/ai/aiPlugin.cjs"),h=require("./components/ToolbarButton/ToolbarButton.cjs"),Ve=require("./components/ToolbarDropdown/ToolbarDropdown.cjs"),no=require("./components/ToolbarColorPicker/ToolbarColorPicker.cjs"),Al=require("./components/CommentsPanel/CommentsPanel.cjs"),Cl=require("./components/AiPanel/AiPanel.cjs"),Rl=require("./components/AiSelectionBubble/AiSelectionBubble.cjs"),Ze=require("./components/AiSelectionBubble/AiSelectionBubble.utils.cjs"),pl=require("./components/AiAutocomplete/AiAutocomplete.cjs"),oo=require("./components/AiAutocomplete/AiAutocomplete.const.cjs"),He=require("./components/AiAutocomplete/AiAutocomplete.utils.cjs"),ml=require("./components/BlockHandles/BlockHandles.cjs"),Ye=require("./components/BlockHandles/BlockHandles.const.cjs"),Sl=require("./components/InlineToolbar/InlineToolbar.cjs"),ze=require("./components/InlineToolbar/InlineToolbar.const.cjs"),ro=require("./components/InlineToolbar/InlineToolbar.utils.cjs"),hl=require("./components/SlashMenu/SlashMenu.cjs"),Bl=require("./components/OutlineRail/OutlineRail.cjs"),gl=require("./components/TrackChangesBar/TrackChangesBar.cjs"),bl=require("./components/VersionHistory/VersionHistory.cjs"),Pl=require("./components/MentionMenu/MentionMenu.cjs"),Ml=require("./components/ImageFrame/ImageFrame.cjs"),Hl=require("./components/SignPad/SignPad.cjs"),Dl=require("./components/FindReplace/FindReplace.cjs"),kl=require("./components/ToolbarCustomize/ToolbarCustomize.cjs"),xl=require("./components/HtmlSourcePanel/HtmlSourcePanel.cjs"),Ul=require("./components/TableSizePicker/TableSizePicker.cjs"),vl=require("./components/TitleGallery/TitleGallery.cjs"),wl=require("./components/ExcelSheetPanel/ExcelSheetPanel.cjs"),Fl=require("./components/GraphPicker/GraphPicker.cjs"),Kl=require("./components/GraphEditModal/GraphEditModal.cjs"),yl=require("./components/ThemePicker/ThemePicker.cjs"),Gl=require("./components/PresenceStack/PresenceStack.cjs"),ql=require("./components/RemoteCursors/RemoteCursors.cjs"),xt=()=>{const U=window.getSelection();if(!U||U.rangeCount===R.NUMBER_ZERO)return"";const M=U.getRangeAt(R.NUMBER_ZERO),v=document.createElement("div");return v.appendChild(M.cloneContents()),v.innerHTML},b=U=>{U==null||U.focus({preventScroll:!0})},Xl=U=>{var Xn;const{value:M,defaultValue:v="",onChange:w,placeholder:Ut=i.INK_PLACEHOLDER_DEFAULT,disabled:c=!1,readOnly:_=!1,minHeight:$e=R.INK_MIN_HEIGHT,maxHeight:Qe,toolbar:lo,className:so="",testId:io,allowImagePaste:vt=!0,showCharCount:wt=!1,charCountMax:Ft,typoAutoFix:co=!0,variant:De=i.INK_DEFAULT_VARIANT,chrome:ao=i.INK_DEFAULT_CHROME,colorMode:Kt=Wn.INK_DEFAULT_COLOR_MODE,features:uo,author:G=i.INK_DEFAULT_AUTHOR,trackChanges:_e,onTrackChangesChange:Je,trackChangesEnabled:ke,onTrackChangesEnabledChange:et,comments:Te,onCommentsChange:tt,showCommentsPanel:Oe,onShowCommentsPanelChange:nt,ai:C,slashCommands:_o,tableRows:To=i.INK_TABLE_DEFAULT_ROWS,tableCols:Oo=i.INK_TABLE_DEFAULT_COLS,premium:Eo,theme:Lo,icons:yt,pasteMode:No="plain",onImageUpload:Gt,wysiwyg:Io=!1,keepInMemory:Q=!1,memoryKey:k,onToolbarChange:ot,toolbarHidden:J,onToolbarHiddenChange:rt,showOutline:fo,onOutlineChange:lt,collaboration:P,style:Ao,...Co}=U,xe=lo??(De===i.INK_VARIANT_DOCUMENT?i.INK_CHROME_TOOLBAR:i.INK_DEFAULT_TOOLBAR),a={...i.INK_DEFAULT_FEATURES,...uo},ee=$.resolveInkPremium(Eo),Ro=$.hasInkPremiumFeature(ee,"icons"),po=$.hasInkPremiumFeature(ee,"theme"),mo=$.hasInkPremiumFeature(ee,"richPaste"),So=$.hasInkPremiumFeature(ee,"imageUpload"),ho=$.hasInkPremiumFeature(ee,"wysiwyg")&&Io,S=Ro&&yt?{...Zn.INK_DEFAULT_ICONS,...yt}:Zn.INK_DEFAULT_ICONS,Bo=po?$.themeTokensToStyle(Lo):{},go=mo&&No==="rich",o=l.useRef(null),qt=l.useRef(null),Ue=l.useRef(null),Ee=l.useRef(new kt.InkHistoryStack(M??v)),te=l.useRef(null),Y=l.useRef(null),ve=l.useRef(E.EMPTY_STRING),[st,bo]=l.useState(new Set),[Po,Xt]=l.useState("p"),[Mo,Ho]=l.useState(R.NUMBER_ZERO),[Do,ko]=l.useState(R.NUMBER_ZERO),[xo,jt]=l.useState(R.NUMBER_ONE),[Uo,Wt]=l.useState(R.NUMBER_ONE),[vo,ne]=l.useState([]),[wo,Fo]=l.useState(R.NUMBER_ZERO),[Ko,it]=l.useState(E.EMPTY_STRING),[yo,Go]=l.useState(R.INK_DEFAULT_TEXT_COLOR),[qo,Xo]=l.useState(R.INK_DEFAULT_HIGHLIGHT_COLOR),[oe,Vt]=l.useState(ke??!1),[jo,Zt]=l.useState(_e??[]),[Wo,Yt]=l.useState(Te??[]),[Vo,zt]=l.useState(Oe??!1),[$t,de]=l.useState(!!(C!=null&&C.enabled&&C.openOnInit)),[we,Zo]=l.useState(!1),Qt=l.useRef(!1),[q,Le]=l.useState({visible:!1,suggestion:"",top:R.NUMBER_ZERO,left:R.NUMBER_ZERO}),Ne=l.useRef(null),re=l.useRef(R.NUMBER_ZERO),[Ie,Yo]=l.useState(""),[zo,$o]=l.useState(0),[Qo,Jt]=l.useState(!1),[Jo,Fe]=l.useState([]),[en,er]=l.useState({top:0,left:0}),[tn,ct]=l.useState(!1),[at,Ke]=l.useState(!1),[fe,nn]=l.useState(!1),[on,rn]=l.useState(!1),[tr,ln]=l.useState(()=>je.listVersions(k)),[sn,ut]=l.useState(""),[Ae,_t]=l.useState(null),[cn,nr]=l.useState({top:R.NUMBER_ZERO,left:R.NUMBER_ZERO}),[an,un]=l.useState(null),[ye,_n]=l.useState(null),[Tn,or]=l.useState(!1),[On,En]=l.useState(E.EMPTY_STRING),[rr,lr]=l.useState(W.FIND_REPLACE_FOCUS_FIND),[sr,ir]=l.useState(Mt.FONT_VALUE_SYSTEM),[cr,dn]=l.useState(Ht.LIST_VALUE_BULLET),[ar,ur]=l.useState(W.FIND_REPLACE_FOCUS_FIND),[Tt,Ot]=l.useState({open:!1,x:R.NUMBER_ZERO,y:R.NUMBER_ZERO}),[_r,Ln]=l.useState(!1),[Et,dt]=l.useState({open:!1,x:R.NUMBER_ZERO,y:R.NUMBER_ZERO}),[Ge,le]=l.useState({open:!1,top:R.NUMBER_ZERO,left:R.NUMBER_ZERO}),[Tr,Nn]=l.useState(!1),[Lt,Ce]=l.useState(""),[In,Or]=l.useState({top:R.NUMBER_ZERO,left:R.NUMBER_ZERO}),[se,fn]=l.useState(()=>ae.readToolbarItems(Q,k)??xe),[Er,An]=l.useState(()=>J!==void 0?J:ae.readToolbarHidden(Q,k)??!1),[dr,Cn]=l.useState(!1),Rn=l.useRef(!0),Lr=xe.join(","),X=_e??jo,j=Te??Wo,Nt=Oe??Vo,pn=_o??a.slash,[It,Nr]=l.useState(()=>fo??De===i.INK_VARIANT_DOCUMENT),[mn,m]=l.useState(E.EMPTY_STRING),[Ir,fr]=l.useState(!1),ie=l.useRef(null),[Ar,ft]=l.useState(!1),[Cr,Rr]=l.useState("values"),[pr,mr]=l.useState(ue.GRAPH_SAMPLE),[Sr,hr]=l.useState(()=>Z.parseGraphColors(null)),[Br,gr]=l.useState(Ll.THEME_DEFAULT),[Sn,br]=l.useState(!1),Pr=!!(a.outline&&It),z=Il.useToolbarOverflow(se.length),hn=J??Er,Bn=xe,Mr=ae.listCustomizableToolbarOptions(Bn),At=Kt===Wn.COLOR_MODE_SYSTEM?void 0:Kt,Ct=!!(a.ai&&(C!=null&&C.enabled)&&C.autocomplete!==!1&&!c&&!_),Rt=()=>{Ne.current!==null&&(window.clearTimeout(Ne.current),Ne.current=null)},F=()=>{Rt(),re.current+=1,Le(e=>e.visible||e.suggestion?{visible:!1,suggestion:"",top:R.NUMBER_ZERO,left:R.NUMBER_ZERO}:e)},Hr=()=>{if(!Ct||we||!o.current){F();return}const e=window.getSelection();if(!e||!e.isCollapsed){F();return}Rt(),Le(n=>n.visible||n.suggestion?{...n,visible:!1,suggestion:""}:n);const t=(C==null?void 0:C.providerId)||Vn.INK_AI_DEMO_PROVIDER_ID;Ne.current=window.setTimeout(()=>{if(Ne.current=null,!o.current||Qt.current)return;const n=window.getSelection();if(!n||!n.isCollapsed)return;const s=He.getTextBeforeCaret(o.current),f=He.getCaretPositionInRoot(o.current);if(!s.trim()||!f)return;const N=re.current+1;re.current=N;const I=o.current.innerHTML;to.inkAi.runProvider(t,{capability:"autocomplete",html:I,prompt:s,modelId:C==null?void 0:C.modelId}).then(u=>{var me;if(N!==re.current)return;const p=((me=u.text)==null?void 0:me.trim())||"";if(!p){Le({visible:!1,suggestion:"",top:R.NUMBER_ZERO,left:R.NUMBER_ZERO});return}const x=o.current&&He.getCaretPositionInRoot(o.current)||f;Le({visible:!0,suggestion:p,top:x.top,left:x.left})}).catch(()=>{N===re.current&&Le({visible:!1,suggestion:"",top:R.NUMBER_ZERO,left:R.NUMBER_ZERO})})},oo.AI_AUTOCOMPLETE_DEBOUNCE_MS)};l.useEffect(()=>()=>{Rt(),re.current+=1},[]),l.useEffect(()=>{Qt.current=we,we&&F()},[we]),l.useEffect(()=>{ke!==void 0&&Vt(ke)},[ke]),l.useEffect(()=>{_e&&Zt(_e)},[_e]),l.useEffect(()=>{Te&&Yt(Te)},[Te]),l.useEffect(()=>{Oe!==void 0&&zt(Oe)},[Oe]),l.useEffect(()=>{J!==void 0&&An(J)},[J]),l.useEffect(()=>{if(Rn.current){Rn.current=!1;return}fn(xe)},[Lr]),l.useEffect(()=>{if(!o.current||M===void 0||M===te.current)return;if(o.current.innerHTML===M){te.current=M;return}const e=document.activeElement===o.current;Pe.withPreservedSelection(e?o.current:null,()=>{o.current&&(o.current.innerHTML=M)}),te.current=M},[M]),l.useEffect(()=>{if(!o.current)return;const e=Q?$n.readInkMemory(k):"";if(e){o.current.innerHTML=e,te.current=e,Ee.current=new kt.InkHistoryStack(e),w==null||w(e),a.outline&&ne(y.collectOutlineItems(o.current));return}if(M!==void 0){a.outline&&ne(y.collectOutlineItems(o.current));return}v&&(o.current.innerHTML=v,te.current=v,Ee.current=new kt.InkHistoryStack(v),w==null||w(v),a.outline&&ne(y.collectOutlineItems(o.current)))},[]),l.useEffect(()=>{const e=()=>{br(document.fullscreenElement===Ue.current)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const pt=e=>{if(Ee.current.push(e),te.current=e,w==null||w(e),Q&&$n.writeInkMemory(e,k),wt&&o.current){const n=o.current.textContent??E.EMPTY_STRING;Ho(n.length),ko(Ol.countWords(n))}a.outline&&ne(y.collectOutlineItems(o.current));const t=y.getCaretLineCol(o.current);jt(t.line),Wt(t.col)},K=e=>{o.current&&(Pe.withPreservedSelection(o.current,()=>{o.current&&(o.current.innerHTML=e)}),pt(e))},mt=e=>{An(e),rt==null||rt(e),ae.writeToolbarHidden(e,Q,k)},Dr=e=>{fn(e),ot==null||ot(e),ae.writeToolbarItems(e,Q,k)},kr=(e,t)=>{if(e===A.TOOLBAR_OPTION_DIVIDER)return;const n=new Set(se.filter(s=>s!==A.TOOLBAR_OPTION_DIVIDER));t?n.add(e):n.delete(e),Dr(ae.buildVisibleToolbarItems(Bn,n))},Re=e=>{Zt(e),Je==null||Je(e)},qe=e=>{Yt(e),tt==null||tt(e)},St=e=>{zt(e),nt==null||nt(e)},xr=e=>{Vt(e),et==null||et(e)},Ur=()=>{if(c||_){le(I=>I.open?{...I,open:!1}:I);return}const e=window.getSelection();if(!e||e.isCollapsed||e.rangeCount===0||!ro.selectionIsInsideElement(e,o.current)){le(I=>I.open?{...I,open:!1}:I);return}const t=e.getRangeAt(0),s=Array.from(t.getClientRects()).filter(I=>I.width>0||I.height>0)[0]??t.getBoundingClientRect();if(s.width===0&&s.height===0){le(I=>I.open?{...I,open:!1}:I);return}const f={width:window.innerWidth,height:window.innerHeight},N=ro.clampInlineToolbarPosition({selectionRect:s,toolbarWidth:ze.INLINE_TOOLBAR_ESTIMATED_WIDTH_PX,toolbarHeight:ze.INLINE_TOOLBAR_ESTIMATED_HEIGHT_PX,viewport:f,gap:ze.INLINE_TOOLBAR_GAP_PX,edgePadding:ze.INLINE_TOOLBAR_EDGE_PADDING_PX});le({open:!0,top:N.top,left:N.left}),Or(Ze.placeAiSelectionBubble({top:s.top,left:s.left,bottom:s.bottom,width:s.width},f))},pe=()=>{var I;bo(T.getActiveFormats());const e=T.queryCommandValue("formatBlock");if(e&&Xt(e.toLowerCase().replace(/[<>]/g,"")),dn(T.detectListType()),Yo(xt()),a.mentions&&o.current){const u=We.extractMentionQuery(He.getTextBeforeCaret(o.current));if(_t(u),u!==null){const p=He.getCaretPositionInRoot(o.current);p&&nr({top:p.top,left:p.left})}}else Ae!==null&&_t(null);const t=(I=window.getSelection())==null?void 0:I.toString().trim();t&&(ve.current=t),Ur();const n=y.getCaretLineCol(o.current);if(jt(n.line),Wt(n.col),a.outline&&ne(y.collectOutlineItems(o.current)),!o.current||!a.blocks)return;const s=window.getSelection(),f=(s==null?void 0:s.anchorNode)??null,N=B.getBlockElement(f,o.current);if(B.markActiveBlock(o.current,N),N){const u=o.current.getBoundingClientRect(),p=N.getBoundingClientRect();$o(p.top-u.top+o.current.scrollTop),Jt(!0)}else Jt(!1)},d=()=>{var t,n,s;if(!o.current)return;let e=o.current.innerHTML;if(oe&&a.trackChanges){const f=window.getSelection();if(f&&!f.isCollapsed){const N=xt();if(N){const I=V.createTrackChange("delete",N,G);Re([...X,I]),vr(I.id),e=o.current.innerHTML}}}if(pt(e),pe(),pn&&o.current){const f=((n=(t=window.getSelection())==null?void 0:t.anchorNode)==null?void 0:n.textContent)??"",N=zn.extractSlashQuery(f);if(N!==null){it(N),Fe(zn.filterSlashCommands(N));const I=(s=window.getSelection())==null?void 0:s.getRangeAt(0);if(I&&o.current){const u=I.getBoundingClientRect(),p=o.current.getBoundingClientRect();er({top:u.bottom-p.top+8,left:u.left-p.left})}}else it(E.EMPTY_STRING),Fe([])}Ct?Hr():F()};l.useEffect(()=>{const e=o.current;if(!e||c||_||!a.table)return;const t=s=>{const f=s.target;if(!(f instanceof Element))return;const N=f.closest(he.TABLE_CELL_SELECTOR);if(!N||!e.contains(N))return;const I=N.closest(he.TABLE_TAG);if(!I)return;const u=g.getColumnResizeIndex(s.clientX,N,R.INK_TABLE_COL_RESIZE_EDGE_PX);if(u===null)return;s.preventDefault();const p=s.clientX,x=N.getBoundingClientRect().width;I.classList.add(i.INK_CLASS_TABLE_RESIZE);const me=ul=>{g.setTableColumnWidth(I,u,x+(ul.clientX-p))},jn=()=>{I.classList.remove(i.INK_CLASS_TABLE_RESIZE),document.removeEventListener("pointermove",me),document.removeEventListener("pointerup",jn),d()};document.addEventListener("pointermove",me),document.addEventListener("pointerup",jn)},n=s=>{const f=s.target;if(!(f instanceof Element))return;const N=f.closest(he.TABLE_CELL_SELECTOR);if(e.querySelectorAll(he.TABLE_TAG).forEach(p=>{p.classList.contains(i.INK_CLASS_TABLE_RESIZE)||p.classList.remove(i.INK_CLASS_TABLE_RESIZE)}),!N||!e.contains(N))return;const u=N.closest(he.TABLE_TAG);u&&g.getColumnResizeIndex(s.clientX,N,R.INK_TABLE_COL_RESIZE_EDGE_PX)!==null&&u.classList.add(i.INK_CLASS_TABLE_RESIZE)};return e.addEventListener("pointerdown",t),e.addEventListener("pointermove",n),()=>{e.removeEventListener("pointerdown",t),e.removeEventListener("pointermove",n)}},[c,_,a.table]);const gn=()=>{const e=q.suggestion;if(!e){F();return}b(o.current),T.execCommand(oo.AI_AUTOCOMPLETE_COMMAND_INSERT_TEXT,e),F(),d()},vr=e=>{const t=window.getSelection();if(!t||t.rangeCount===0)return;const n=xt();n&&T.insertHTML(V.wrapDeleteHtml(n,e))},wr=()=>{if(!o.current||!co||!a.typoAutoFix||c||_)return;const e=o.current.innerHTML,t=Tl.applyTypoAutoFix(e);t.html!==e&&(Pe.withPreservedSelection(o.current,()=>{o.current&&(o.current.innerHTML=t.html)}),pt(t.html))},H=e=>{if(c||_)return;if(b(o.current),e==="clearFormat"){T.clearFormatDeep(),d();return}if(e==="directionLtr"&&o.current){T.setBlockDirection(o.current,Dt.DIR_LTR),d();return}if(e==="directionRtl"&&o.current){T.setBlockDirection(o.current,Dt.DIR_RTL),d();return}if(e===L.TOOLBAR_OPTION_CHECKLIST){T.insertHTML(i.INK_CHECKLIST_HTML),d();return}const t=i.INK_BUTTON_CONFIG[e];t&&(t.value?T.execCommand(t.command,t.value):T.execCommand(t.command),d())},Fr=e=>{c||_||(b(o.current),T.execCommand("formatBlock",e),Xt(e),d())},Kr=e=>{c||_||(b(o.current),T.applyFontFamily(e),ir(e),d())},yr=e=>{c||_||(b(o.current),T.applyListType(e),dn(e),d())},bn=e=>{lr(e),ur(e),Ke(!0)},Gr=e=>{if(c||_)return;const t=e===W.FIND_REPLACE_VALUE_REPLACE?W.FIND_REPLACE_FOCUS_REPLACE:W.FIND_REPLACE_FOCUS_FIND;bn(t)},ht=()=>{var s;if(c||_)return;const e=Pe.captureSelectionInRoot(o.current),t=((s=window.getSelection())==null?void 0:s.toString().trim())||ve.current,n=window.prompt(E.INK_LINK_PROMPT,E.INK_LINK_PROMPT_DEFAULT);n&&(b(o.current),Pe.restoreSelectionInRoot(o.current,e),T.insertLink(n,t),d())},Bt=e=>{c||_||(b(o.current),T.insertHTML(e),d())},qr=e=>{var n;const t=((n=window.getSelection())==null?void 0:n.toString().trim())||ve.current;Bt(Qn.buildTitleHtml(e,t||E.INK_TITLES_DEFAULT_TEXT))},Pn=async e=>So&&Gt?Gt(e):T.fileToDataUrl(e),Mn=async()=>{if(c||_)return;const e=document.createElement("input");e.type="file",e.accept="image/*",e.onchange=async()=>{var s;const t=(s=e.files)==null?void 0:s[0];if(!t)return;const n=await Pn(t);b(o.current),T.insertImage(n,t.name),d()},e.click()},Hn=(e=To,t=Oo)=>{if(c||_||!a.table)return;b(o.current);const n=g.buildTableHtml(e,t);if(oe&&a.trackChanges){const s=V.createTrackChange("insert",n,G);Re([...X,s]),T.insertHTML(V.wrapInsertHtml(n,s.id))}else T.insertHTML(n);d()},Dn=()=>{const e=Ee.current.undo();if(e===null||!o.current){T.execCommand("undo"),d();return}K(e)},kn=()=>{const e=Ee.current.redo();if(e===null||!o.current){T.execCommand("redo"),d();return}K(e)},Xr=e=>{if(c||_)return;e.preventDefault(),dt(n=>n.open?{...n,open:!1}:n);const t=a.graph?Z.getGraphBlock(e.target):null;ie.current=t,fr(!!t),Ln(!!(a.table&&g.getTableCellFromSelection())),Ot({open:!0,x:e.clientX,y:e.clientY})},gt=e=>{const t=ie.current;if(!t)return;const n=Z.parseGraphPoints(t.getAttribute(i.INK_ATTR_GRAPH_POINTS));Z.replaceGraphBlock(t,e,n.length?n:ue.GRAPH_SAMPLE),ie.current=null,d()},xn=e=>{const t=ie.current;if(!t)return;const n=Z.parseGraphPoints(t.getAttribute(i.INK_ATTR_GRAPH_POINTS));mr(n.length?n:ue.GRAPH_SAMPLE),hr(Z.parseGraphColors(t.getAttribute(i.INK_ATTR_GRAPH_COLORS))),Rr(e),ft(!0)},jr=(e,t)=>{const n=ie.current;if(!n)return;const s=n.getAttribute(i.INK_ATTR_GRAPH)??ue.GRAPH_KIND_DEFAULT;Z.replaceGraphBlock(n,s,e,t),ft(!1),d()},Un=()=>{const e=Ue.current;if(!(!e||!a.fullscreen)){if(document.fullscreenElement){document.exitFullscreen();return}e.requestFullscreen()}},Wr=()=>{const e=ie.current;if(e){const t=document.createRange();t.selectNodeContents(e);const n=window.getSelection();n==null||n.removeAllRanges(),n==null||n.addRange(t)}de(!0)},vn=()=>{const e=!It;Nr(e),e&&o.current&&ne(y.collectOutlineItems(o.current)),lt==null||lt(e)},Vr=e=>{c||_||(e.preventDefault(),Ot(t=>t.open?{...t,open:!1}:t),dt({open:!0,x:e.clientX,y:e.clientY}))},wn=()=>{if(c||_||!a.comments)return;const e=window.prompt("Comment:");if(!(e!=null&&e.trim()))return;const t=Yn.createInkId("hl");if(b(o.current),!Be.wrapSelectionAsComment(t))return;const s=Be.createCommentThread(G,e.trim(),t);qe([s,...j]),St(!0),d()},Zr=[{id:A.TOOLBAR_CONTEXT_MENU_ID_CUSTOMIZE,label:A.TOOLBAR_CONTEXT_MENU_LABEL_CUSTOMIZE,onSelect:()=>Cn(!0)},{id:A.TOOLBAR_CONTEXT_MENU_ID_HIDE,label:A.TOOLBAR_CONTEXT_MENU_LABEL_HIDE,onSelect:()=>mt(!0)}],D=e=>{const t=g.getTableCellFromSelection();!t||!a.table||e(t)&&d()},Yr=a.table&&_r?[{id:O.CONTEXT_MENU_ID_TABLE_ROW_ABOVE,label:O.CONTEXT_MENU_LABEL_TABLE_ROW_ABOVE,onSelect:()=>D(e=>g.insertTableRow(e,"before"))},{id:O.CONTEXT_MENU_ID_TABLE_ROW_BELOW,label:O.CONTEXT_MENU_LABEL_TABLE_ROW_BELOW,onSelect:()=>D(e=>g.insertTableRow(e,"after"))},{id:O.CONTEXT_MENU_ID_TABLE_COL_LEFT,label:O.CONTEXT_MENU_LABEL_TABLE_COL_LEFT,onSelect:()=>D(e=>g.insertTableColumn(e,"before"))},{id:O.CONTEXT_MENU_ID_TABLE_COL_RIGHT,label:O.CONTEXT_MENU_LABEL_TABLE_COL_RIGHT,onSelect:()=>D(e=>g.insertTableColumn(e,"after"))},{id:O.CONTEXT_MENU_ID_TABLE_DELETE_ROW,label:O.CONTEXT_MENU_LABEL_TABLE_DELETE_ROW,onSelect:()=>D(e=>g.deleteTableRow(e))},{id:O.CONTEXT_MENU_ID_TABLE_DELETE_COL,label:O.CONTEXT_MENU_LABEL_TABLE_DELETE_COL,onSelect:()=>D(e=>g.deleteTableColumn(e))},{id:O.CONTEXT_MENU_ID_TABLE_HEADER,label:O.CONTEXT_MENU_LABEL_TABLE_HEADER,onSelect:()=>D(e=>g.toggleTableHeaderRow(e))},{id:O.CONTEXT_MENU_ID_TABLE_MERGE,label:O.CONTEXT_MENU_LABEL_TABLE_MERGE,onSelect:()=>D(e=>g.mergeTableCellRight(e))},{id:O.CONTEXT_MENU_ID_TABLE_SPLIT,label:O.CONTEXT_MENU_LABEL_TABLE_SPLIT,onSelect:()=>D(e=>g.splitTableCell(e))},{id:O.CONTEXT_MENU_ID_TABLE_BACKGROUND,label:O.CONTEXT_MENU_LABEL_TABLE_BACKGROUND,onSelect:()=>D(e=>g.setTableCellBackground(e))},{id:O.CONTEXT_MENU_ID_TABLE_VALIGN,label:O.CONTEXT_MENU_LABEL_TABLE_VALIGN,onSelect:()=>D(e=>g.setTableCellVerticalAlign(e))}]:[],zr=[...a.graph&&Ir?[{id:E.CONTEXT_MENU_ID_GRAPH_BAR,label:E.CONTEXT_MENU_LABEL_GRAPH_BAR,onSelect:()=>gt("bar")},{id:E.CONTEXT_MENU_ID_GRAPH_LINE,label:E.CONTEXT_MENU_LABEL_GRAPH_LINE,onSelect:()=>gt("line")},{id:E.CONTEXT_MENU_ID_GRAPH_PIE,label:E.CONTEXT_MENU_LABEL_GRAPH_PIE,onSelect:()=>gt("pie")},{id:E.CONTEXT_MENU_ID_GRAPH_EDIT,label:E.CONTEXT_MENU_LABEL_GRAPH_EDIT,onSelect:()=>xn("values")},{id:E.CONTEXT_MENU_ID_GRAPH_COLORS,label:E.CONTEXT_MENU_LABEL_GRAPH_COLORS,onSelect:()=>xn("colors")},{id:E.CONTEXT_MENU_ID_GRAPH_AI,label:E.CONTEXT_MENU_LABEL_GRAPH_AI,onSelect:Wr}]:[],...Yr,{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:()=>ht()},{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:!a.findReplace,onSelect:()=>Ke(!0)},{id:O.CONTEXT_MENU_ID_SIGNATURE,label:O.CONTEXT_MENU_LABEL_SIGNATURE,disabled:!a.signature,onSelect:()=>ct(!0)},{id:O.CONTEXT_MENU_ID_COMMENT,label:O.CONTEXT_MENU_LABEL_COMMENT,disabled:!a.comments,onSelect:()=>wn()},...hn?[{id:A.CONTEXT_MENU_ID_SHOW_TOOLBAR,label:A.CONTEXT_MENU_LABEL_SHOW_TOOLBAR,onSelect:()=>mt(!1)}]:[]],Fn=e=>{if(!o.current)return;const t=V.acceptTrackChangeInHtml(o.current.innerHTML,e);K(t),Re(X.map(n=>n.id===e?{...n,accepted:!0}:n))},Kn=e=>{if(!o.current)return;const t=V.rejectTrackChangeInHtml(o.current.innerHTML,e);K(t),Re(X.map(n=>n.id===e?{...n,rejected:!0}:n))},yn=async e=>{const t=await Pn(e),n=`<img src="${t}" alt="" style="max-width:100%;height:auto;" />`;if(oe&&a.trackChanges){const s=V.createTrackChange("insert",n,G);Re([...X,s]),T.insertHTML(V.wrapInsertHtml(n,s.id))}else T.insertImage(t);d()},$r=async e=>{if(c||_)return;const t=e.clipboardData;if(!t)return;const n=Xe.extractClipboardHtml(t);if(go||Xe.isOfficeHtml(n)){const f=n;if(f){e.preventDefault();const I=Xe.sanitizePastedHtml(f);I&&(T.insertHTML(I),d());const u=t.items;if(vt&&u)for(const p of Array.from(u)){if(!p.type.startsWith("image/"))continue;const x=p.getAsFile();x&&await yn(x)}return}const N=Xe.extractClipboardText(t);if(N){e.preventDefault(),T.insertHTML(N.replace(/\n/g,"<br />")),d();return}}if(!vt)return;const s=t.items;if(s)for(const f of Array.from(s)){if(!f.type.startsWith("image/"))continue;e.preventDefault();const N=f.getAsFile();N&&await yn(N)}},Qr=e=>{H(e)},Jr=async e=>{const t=Ze.capabilityForSelectionAction(e);if(!(!t||!o.current||!Ie)){Nn(!0),Ce("");try{const n=await to.inkAi.runProvider((C==null?void 0:C.providerId)||Vn.INK_AI_DEMO_PROVIDER_ID,{capability:t,html:o.current.innerHTML,selectionHtml:Ie,options:Ze.optionsForSelectionAction(e),modelId:C==null?void 0:C.modelId});Ce(Ze.htmlFromAiResponse(n))}catch{Ce("")}finally{Nn(!1)}}},el=()=>{Lt&&(b(o.current),T.insertHTML(Lt),Ce(""),d())},tl=e=>{if(e.key===Se.KEY_TAB&&q.visible&&q.suggestion){e.preventDefault(),gn();return}if(e.key===Se.KEY_ENTER){F();return}if(T.tryConvertMarkdownBlockPrefix(e.nativeEvent)||T.tryConvertMarkdownListPrefix(e.nativeEvent)){d();return}if(e.key===Se.KEY_ESCAPE){if(q.visible){e.preventDefault(),F();return}Fe([]),le(t=>t.open?{...t,open:!1}:t)}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===Se.KEY_K){e.preventDefault(),a.ai&&(C!=null&&C.enabled)&&de(!0);return}(e.metaKey||e.ctrlKey)&&e.key===Se.KEY_Z&&(e.preventDefault(),e.shiftKey?kn():Dn())},nl=e=>{var n;b(o.current);const t=window.getSelection();if((n=t==null?void 0:t.anchorNode)!=null&&n.textContent){const f=t.anchorNode.textContent.replace(/(?:^|\s)\/[^\s]*$/," ");t.anchorNode.nodeType===Node.TEXT_NODE&&(t.anchorNode.textContent=f)}switch(it(E.EMPTY_STRING),Fe([]),e.insert){case"heading1":T.execCommand("formatBlock",i.INK_FORMAT_BLOCK_H1);break;case"heading2":T.execCommand("formatBlock",i.INK_FORMAT_BLOCK_H2);break;case"heading3":T.execCommand("formatBlock",i.INK_FORMAT_BLOCK_H3);break;case"paragraph":T.execCommand("formatBlock",i.INK_FORMAT_BLOCK_P);break;case"bulletList":T.execCommand("insertUnorderedList");break;case"orderedList":T.execCommand("insertOrderedList");break;case"checklist":T.insertHTML(i.INK_CHECKLIST_HTML);break;case"quote":T.execCommand("formatBlock",i.INK_FORMAT_BLOCK_QUOTE);break;case"code":T.execCommand("formatBlock",i.INK_FORMAT_BLOCK_PRE);break;case"callout":T.insertHTML(i.INK_CALLOUT_HTML);break;case"table":Hn();return;case"image":Mn();return;case"ai":de(!0);break;case"titles":T.insertHTML(Qn.buildTitleHtml(dl.TITLE_STYLE_DEFAULT,ve.current||E.INK_TITLES_DEFAULT_TEXT));break;case"excel":T.insertHTML(Jn.excelGridToTableHtml(Jn.createEmptyExcelGrid()));break;case"graph":T.insertHTML(Z.buildGraphHtml(ue.GRAPH_KIND_DEFAULT,ue.GRAPH_SAMPLE));break}d()},Gn=e=>{if(!o.current)return;const t=window.getSelection(),n=B.getBlockElement((t==null?void 0:t.anchorNode)??null,o.current);n&&B.moveBlock(n,e)&&(d(),pe())},ol=e=>{if(!o.current)return;const t=window.getSelection(),n=B.getBlockElement((t==null?void 0:t.anchorNode)??null,o.current),s=o.current.querySelector(`.${i.INK_CLASS_BLOCK_ACTIVE}`),f=n??(s instanceof HTMLElement?s:null);if(!f){e.preventDefault();return}Y.current=f,B.clearBlockDragClasses(o.current),B.markActiveBlock(o.current,f),B.markDraggingBlock(f),e.dataTransfer.setData(Ye.BLOCK_HANDLES_DRAG_MIME,Ye.BLOCK_HANDLES_DRAG_PAYLOAD),e.dataTransfer.effectAllowed=Ye.BLOCK_HANDLES_DRAG_EFFECT_MOVE},rl=e=>{if(!o.current||!Y.current)return;e.preventDefault(),e.dataTransfer.dropEffect=Ye.BLOCK_HANDLES_DRAG_EFFECT_MOVE;const t=B.getBlockElement(e.target,o.current);if(!t||t===Y.current){B.markDropTarget(o.current,null,null);return}const n=B.resolveDropPosition(e.clientY,t);B.markDropTarget(o.current,t,n)},ll=e=>{if(!o.current||!Y.current)return;e.preventDefault();const t=B.getBlockElement(e.target,o.current),n=Y.current;t&&t!==n&&(B.resolveDropPosition(e.clientY,t)===Dt.BLOCK_DROP_POSITION_BEFORE?B.reorderBlockBefore(n,t):B.reorderBlockAfter(n,t))&&(d(),pe()),B.clearBlockDragClasses(o.current),Y.current=null},sl=()=>{o.current&&B.clearBlockDragClasses(o.current),Y.current=null},bt=(e,t)=>{var s,f,N,I;if(e==="divider")return r.jsx("span",{className:i.INK_CLASS_DIVIDER},`divider-${t}`);if(e==="headingDropdown")return r.jsx(Ve.ToolbarDropdown,{title:"Heading",options:i.INK_HEADING_OPTIONS,value:Po||"p",disabled:c||_,onChange:Fr},"heading");if(e===L.TOOLBAR_OPTION_FONT_DROPDOWN)return r.jsx(Ve.ToolbarDropdown,{title:Mt.FONT_DROPDOWN_TITLE,options:Mt.INK_FONT_OPTIONS,value:sr,disabled:c||_,onChange:Kr},L.TOOLBAR_OPTION_FONT_DROPDOWN);if(e===L.TOOLBAR_OPTION_LIST_DROPDOWN)return r.jsx(Ve.ToolbarDropdown,{title:Ht.LIST_DROPDOWN_TITLE,options:Ht.INK_LIST_OPTIONS,value:cr,disabled:c||_,onChange:yr},L.TOOLBAR_OPTION_LIST_DROPDOWN);if(e==="textColor")return r.jsx(no.ToolbarColorPicker,{title:"Text color",type:"text",value:yo,disabled:c||_,onChange:u=>{b(o.current),T.setTextColor(u),Go(u),d()}},"textColor");if(e==="highlightColor")return r.jsx(no.ToolbarColorPicker,{title:"Highlight color",type:"highlight",value:qo,disabled:c||_,onChange:u=>{b(o.current),T.setHighlightColor(u),Xo(u),d()}},"highlightColor");if(e==="link")return r.jsx(h.ToolbarButton,{icon:S.link,title:"Insert link",hint:A.TOOLBAR_OPTION_HINTS.link,onHint:m,disabled:c||_,onClick:ht},"link");if(e==="image")return r.jsx(h.ToolbarButton,{hint:A.TOOLBAR_OPTION_HINTS.image,onHint:m,icon:S.image,title:"Insert image",disabled:c||_,onClick:()=>{Mn()}},"image");if(e===L.TOOLBAR_OPTION_CHECKLIST)return r.jsx(h.ToolbarButton,{icon:S.checklist,title:"Checklist",hint:A.TOOLBAR_OPTION_HINTS.checklist,onHint:m,disabled:c||_,onClick:()=>H(L.TOOLBAR_OPTION_CHECKLIST)},L.TOOLBAR_OPTION_CHECKLIST);if(e==="table")return a.table?r.jsx(Ul.TableSizePicker,{icon:S.table,disabled:c||_,onSelect:Hn},"table"):null;if(e===L.TOOLBAR_OPTION_TITLES)return a.titles?r.jsx(vl.TitleGallery,{icon:S.titles,disabled:c||_,pluginColor:(s=Me.inkPlugins.get("titles"))==null?void 0:s.color,hint:A.TOOLBAR_OPTION_HINTS.titles,onHint:m,onSelect:qr},L.TOOLBAR_OPTION_TITLES):null;if(e===L.TOOLBAR_OPTION_EXCEL)return a.excel?r.jsx(wl.ExcelSheetPanel,{icon:S.excel,disabled:c||_,pluginColor:(f=Me.inkPlugins.get("excel"))==null?void 0:f.color,hint:A.TOOLBAR_OPTION_HINTS.excel,onHint:m,onInsert:Bt},L.TOOLBAR_OPTION_EXCEL):null;if(e===L.TOOLBAR_OPTION_GRAPH)return a.graph?r.jsx(Fl.GraphPicker,{icon:S.graph,disabled:c||_,pluginColor:(N=Me.inkPlugins.get("graph"))==null?void 0:N.color,hint:A.TOOLBAR_OPTION_HINTS.graph,onHint:m,onInsert:Bt},L.TOOLBAR_OPTION_GRAPH):null;if(e===L.TOOLBAR_OPTION_THEME)return a.theme?r.jsx(yl.ThemePicker,{icon:S.theme,disabled:c,pluginColor:(I=Me.inkPlugins.get("theme"))==null?void 0:I.color,hint:A.TOOLBAR_OPTION_HINTS.theme,onHint:m,value:Br,onChange:u=>{gr(u),Nl.applyInkTheme(Ue.current,u)}},L.TOOLBAR_OPTION_THEME):null;if(e===L.TOOLBAR_OPTION_FULLSCREEN)return a.fullscreen?r.jsx(h.ToolbarButton,{icon:S.fullscreen,title:Sn?E.INK_FULLSCREEN_EXIT_TITLE:E.INK_FULLSCREEN_TITLE,hint:A.TOOLBAR_OPTION_HINTS.fullscreen,onHint:m,active:Sn,disabled:c,onClick:Un},L.TOOLBAR_OPTION_FULLSCREEN):null;if(e===L.TOOLBAR_OPTION_OUTLINE)return a.outline?r.jsx(h.ToolbarButton,{icon:S.outline,title:E.INK_OUTLINE_TOGGLE_TITLE,hint:A.TOOLBAR_OPTION_HINTS.outline,onHint:m,active:It,disabled:c,onClick:vn},L.TOOLBAR_OPTION_OUTLINE):null;if(e===L.TOOLBAR_OPTION_IMPORT_MARKDOWN||e===L.TOOLBAR_OPTION_EXPORT_MARKDOWN){if(!a.markdown)return null;const u=e===L.TOOLBAR_OPTION_EXPORT_MARKDOWN;return r.jsx(h.ToolbarButton,{icon:u?"Md":"In",title:u?"Export Markdown":"Import Markdown",hint:A.TOOLBAR_OPTION_HINTS[e],onHint:m,disabled:c||(u?!1:_),onClick:()=>{var p;if(u){if(!o.current)return;ce.downloadTextFile(ce.MARKDOWN_EXPORT_FILENAME,ce.htmlToMarkdown(o.current.innerHTML),ce.MARKDOWN_MIME);return}(p=qt.current)==null||p.click()}},e)}if(e===L.TOOLBAR_OPTION_EXPORT_DOCX||e===L.TOOLBAR_OPTION_EXPORT_PDF){if(!a.export)return null;const u=e===L.TOOLBAR_OPTION_EXPORT_PDF;return r.jsx(h.ToolbarButton,{icon:u?"PDF":"W",title:u?"Export PDF":"Export Word",hint:A.TOOLBAR_OPTION_HINTS[e],onHint:m,disabled:c,onClick:()=>{var x;const p=((x=o.current)==null?void 0:x.innerHTML)??"";if(u){ge.printHtmlDocument(p);return}ge.downloadBytes(ge.DOCX_FILENAME,ge.buildDocx(p),ge.DOCX_MIME)}},e)}if(e===L.TOOLBAR_OPTION_VERSIONS)return a.versionHistory?r.jsx(h.ToolbarButton,{icon:"V",title:"Version history",hint:A.TOOLBAR_OPTION_HINTS.versions,onHint:m,active:on,disabled:c,onClick:()=>{ln(je.listVersions(k)),rn(u=>!u)}},L.TOOLBAR_OPTION_VERSIONS):null;if(e===L.TOOLBAR_OPTION_FORMAT_PAINTER||e===L.TOOLBAR_OPTION_CHANGE_CASE){if(!a.formatPainter)return null;const u=e===L.TOOLBAR_OPTION_FORMAT_PAINTER;return r.jsx(h.ToolbarButton,{icon:u?"P":"Aa",title:u?"Format painter":"Change case",hint:A.TOOLBAR_OPTION_HINTS[e],onHint:m,active:u?!!ye:Tn,disabled:c||_,onClick:()=>{if(u){_n(ye?null:be.readPaintedFormat());return}or(p=>!p)}},e)}if(e===L.TOOLBAR_OPTION_HTML_SOURCE)return a.htmlSource?r.jsx(h.ToolbarButton,{className:i.INK_CLASS_BUTTON_WIDE,icon:r.jsx("span",{className:i.INK_CLASS_BUTTON_LABEL,children:E.INK_HTML_SOURCE_LABEL}),title:E.INK_HTML_SOURCE_TITLE,hint:A.TOOLBAR_OPTION_HINTS.htmlSource,onHint:m,active:fe,disabled:c,onClick:()=>{var u;if(fe){_||K(On),nn(!1);return}En(((u=o.current)==null?void 0:u.innerHTML)??M??E.EMPTY_STRING),nn(!0)}},L.TOOLBAR_OPTION_HTML_SOURCE):null;if(e===L.TOOLBAR_OPTION_SIGNATURE)return a.signature?r.jsx(h.ToolbarButton,{icon:S.signature,title:"Sign pad",hint:A.TOOLBAR_OPTION_HINTS.signature,onHint:m,active:tn,disabled:c||_,onClick:()=>ct(!0)},L.TOOLBAR_OPTION_SIGNATURE):null;if(e===L.TOOLBAR_OPTION_FIND_REPLACE)return a.findReplace?r.jsx(h.ToolbarButton,{icon:S.findReplace,title:"Find and replace",hint:A.TOOLBAR_OPTION_HINTS.findReplace,onHint:m,active:at,disabled:c||_,onClick:()=>{at?Ke(!1):bn(W.FIND_REPLACE_FOCUS_FIND)}},L.TOOLBAR_OPTION_FIND_REPLACE):null;if(e===L.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN)return a.findReplace?r.jsx(Ve.ToolbarDropdown,{title:W.FIND_REPLACE_DROPDOWN_TITLE,options:W.INK_FIND_REPLACE_OPTIONS,value:ar,disabled:c||_,onChange:Gr},L.TOOLBAR_OPTION_FIND_REPLACE_DROPDOWN):null;if(e===L.TOOLBAR_OPTION_HORIZONTAL_RULE)return a.horizontalRule?r.jsx(h.ToolbarButton,{icon:S.horizontalRule,title:"Horizontal rule",hint:A.TOOLBAR_OPTION_HINTS.horizontalRule,onHint:m,disabled:c||_,onClick:()=>{b(o.current),T.insertHTML("<hr />"),d()}},L.TOOLBAR_OPTION_HORIZONTAL_RULE):null;if(e==="undo")return r.jsx(h.ToolbarButton,{icon:S.undo,title:"Undo",hint:A.TOOLBAR_OPTION_HINTS.undo,onHint:m,disabled:c||_,onClick:Dn},"undo");if(e==="redo")return r.jsx(h.ToolbarButton,{icon:S.redo,title:"Redo",hint:A.TOOLBAR_OPTION_HINTS.redo,onHint:m,disabled:c||_,onClick:kn},"redo");if(e==="trackChanges")return a.trackChanges?r.jsx(h.ToolbarButton,{icon:S.trackChanges,title:"Track changes",hint:A.TOOLBAR_OPTION_HINTS.trackChanges,onHint:m,active:oe,disabled:c||_,onClick:()=>xr(!oe)},"trackChanges"):null;if(e==="comments")return a.comments?r.jsx(h.ToolbarButton,{icon:S.comments,title:"Comments",hint:A.TOOLBAR_OPTION_HINTS.comments,onHint:m,active:Nt,disabled:c||_,onClick:()=>{Nt?St(!1):wn()}},"comments"):null;if(e==="code"){const u=i.INK_BUTTON_CONFIG.code;return r.jsx(h.ToolbarButton,{className:i.INK_CLASS_BUTTON_WIDE,icon:r.jsxs(r.Fragment,{children:[S.code,r.jsx("span",{className:i.INK_CLASS_BUTTON_LABEL,children:E.INK_CODE_LABEL})]}),title:u.title,hint:A.TOOLBAR_OPTION_HINTS.code,onHint:m,active:st.has(e),disabled:c||_,onClick:()=>H(e)},"code")}if(e==="ai"){if(!a.ai||!(C!=null&&C.enabled))return null;const u=Me.inkPlugins.get("ai");return r.jsxs("button",{type:"button",className:u?`${i.INK_CLASS_AI_PILL} ${i.INK_CLASS_AI_PILL_INSTALLED}`:i.INK_CLASS_AI_PILL,title:E.INK_AI_PILL_LABEL,style:u?{"--ink-plugin-color":u.color}:void 0,"aria-label":E.INK_AI_PILL_LABEL,"aria-pressed":$t,disabled:c||_,onMouseEnter:()=>m(A.TOOLBAR_OPTION_HINTS.ai),onMouseLeave:()=>m(E.EMPTY_STRING),onMouseDown:p=>{p.preventDefault()},onClick:()=>de(p=>!p),children:[r.jsx("span",{className:i.INK_CLASS_AI_PILL_DOT,"aria-hidden":"true"}),E.INK_AI_PILL_LABEL]},"ai")}const n=i.INK_BUTTON_CONFIG[e];return n?r.jsx(h.ToolbarButton,{icon:S[e]??e.slice(0,1).toUpperCase(),title:n.title,hint:A.TOOLBAR_OPTION_HINTS[e],onHint:m,active:st.has(e),disabled:c||_,onClick:()=>H(e)},e):null},qn=typeof $e=="number"?`${$e}px`:$e,il=typeof Qe=="number"?`${Qe}px`:Qe,cl=!!(C!=null&&C.enabled&&$t),al=se.slice(R.NUMBER_ZERO,z.fitCount),Pt=se.slice(z.fitCount);return r.jsxs("div",{ref:Ue,className:_l.cn(i.INK_CLASS_ROOT,so),"data-testid":io,"data-disabled":c||void 0,"data-variant":De,"data-chrome":ao,"data-color-mode":At,"data-premium":ee.active||void 0,"data-wysiwyg":ho||void 0,style:{...Bo,...Ao},...Co,children:[hn?r.jsx("div",{className:i.INK_CLASS_TOOLBAR_SHOW,children:r.jsx(fl.Button,{type:"button","aria-label":A.TOOLBAR_SHOW_CONTROL_ARIA_LABEL,onClick:()=>mt(!1),children:A.TOOLBAR_SHOW_CONTROL_LABEL})}):r.jsxs("div",{className:i.INK_CLASS_TOOLBAR,role:"toolbar","aria-label":"Ink formatting toolbar",onContextMenu:Vr,onDoubleClick:Un,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:[r.jsx("div",{className:i.INK_CLASS_TOOLBAR_MEASURE,ref:z.measureRef,"aria-hidden":!0,children:se.map(bt)}),r.jsxs("div",{className:i.INK_CLASS_TOOLBAR_ROW,ref:z.rowRef,children:[al.map(bt),P!=null&&P.collaborators&&P.showPresenceStack!==!1?r.jsx(Gl.PresenceStack,{collaborators:P.collaborators,maxAvatars:P.maxAvatars||4}):null,Pt.length>R.NUMBER_ZERO?r.jsx("span",{[i.INK_ATTR_MORE]:"",children:r.jsx(h.ToolbarButton,{icon:"⋯",title:E.INK_TOOLBAR_MORE_TITLE,hint:E.INK_TOOLBAR_MORE_TITLE,onHint:m,active:z.overflowOpen,disabled:c,onClick:()=>z.setOverflowOpen(e=>!e)})}):null]}),z.overflowOpen&&Pt.length>R.NUMBER_ZERO?r.jsx("div",{className:i.INK_CLASS_TOOLBAR_OVERFLOW,children:Pt.map(bt)}):null,mn?r.jsx("p",{className:i.INK_CLASS_TOOLBAR_HINT,children:mn}):null]}),r.jsx(kl.ToolbarCustomize,{open:dr,options:Mr,visibleItems:se,onToggle:kr,onClose:()=>Cn(!1)}),r.jsx(Kl.GraphEditModal,{open:Ar,mode:Cr,points:pr,colors:Sr,onClose:()=>ft(!1),onApply:jr}),r.jsx(Hl.SignPad,{open:tn,onClose:()=>ct(!1),onConfirm:e=>{b(o.current),T.insertImage(e),d()}}),r.jsx(Dl.FindReplace,{open:at,focusField:rr,onClose:()=>Ke(!1),onReplace:(e,t,n)=>{if(!o.current)return;const s=El.replaceInHtml(o.current.innerHTML,e,t,n);K(s)}}),oe&&a.trackChanges?r.jsx(gl.TrackChangesBar,{changes:X,onAccept:Fn,onReject:Kn,onAcceptAll:()=>X.forEach(e=>Fn(e.id)),onRejectAll:()=>X.forEach(e=>Kn(e.id))}):null,De==="agent"?r.jsx("div",{className:"Ink-Editor__agent-bar",role:"status",children:A.AGENT_BAR_PLACEHOLDER}):null,r.jsxs("div",{className:i.INK_CLASS_SHELL,children:[Pr?r.jsx(Bl.OutlineRail,{items:vo,activeIndex:wo,onHide:vn,onSelect:e=>{o.current&&(y.scrollOutlineHeading(o.current,e),Fo(e))}}):null,r.jsxs("div",{className:i.INK_CLASS_BODY,children:[a.blocks?r.jsx(ml.BlockHandles,{visible:Qo&&!c&&!_,top:zo,onMoveUp:()=>Gn("up"),onMoveDown:()=>Gn("down"),onDragStart:ol}):null,P!=null&&P.collaborators&&P.showRemoteCursors!==!1?r.jsx(ql.RemoteCursors,{collaborators:P.collaborators}):null,r.jsx("input",{ref:qt,type:"file",accept:ce.MARKDOWN_ACCEPT,hidden:!0,onChange:e=>{var n;const t=(n=e.target.files)==null?void 0:n[0];e.target.value="",t&&t.text().then(s=>{K(ce.markdownToHtml(s))})}}),sn?r.jsxs("div",{className:"Ink-Versions__compare","aria-label":"Previous version",children:[r.jsx("button",{type:"button",className:"Ink-Editor__button",onClick:()=>ut(""),children:"Close compare"}),r.jsx("div",{dangerouslySetInnerHTML:{__html:sn}})]}):null,r.jsx("div",{ref:o,className:fe?`${i.INK_CLASS_CONTENT} ${i.INK_CLASS_CONTENT_HIDDEN}`:i.INK_CLASS_CONTENT,contentEditable:!c&&!_&&!fe,role:"textbox","aria-multiline":"true","aria-placeholder":Ut,"data-placeholder":Ut,suppressContentEditableWarning:!0,style:{minHeight:qn,maxHeight:il},onInput:d,onBlur:wr,onKeyUp:pe,onKeyDown:tl,onMouseUp:()=>{ye&&(be.applyPaintedFormat(ye),_n(null),d()),pe()},onContextMenu:Xr,onDragOver:rl,onDrop:ll,onDragEnd:sl,onClick:e=>{const t=e.target;un(t instanceof HTMLImageElement?t:null)},onPaste:e=>{$r(e)}}),fe?r.jsx(xl.HtmlSourcePanel,{value:On,onChange:En,disabled:c||_,minHeight:qn}):null,a.mentions?r.jsx(Pl.MentionMenu,{open:Ae!==null,top:cn.top,left:cn.left,people:We.filterMentionPeople(P!=null&&P.collaborators&&P.collaborators.length>0?P.collaborators.map(e=>({id:e.id,label:e.name})):[{id:G,label:G}],Ae??""),onSelect:e=>{Ae!==null&&(We.deleteMentionQuery(Ae),T.insertHTML(We.buildMentionHtml(e.id,e.label)),_t(null),d())}}):null,an?r.jsx(Ml.ImageFrame,{image:an,onChange:d,onClose:()=>un(null)}):null,Tn?r.jsxs("div",{className:"Ink-CaseMenu",role:"menu","aria-label":"Change case",children:[r.jsx("button",{type:"button",className:"Ink-Editor__button",onMouseDown:e=>e.preventDefault(),onClick:()=>{be.applyCaseToSelection("upper"),d()},children:"UPPER"}),r.jsx("button",{type:"button",className:"Ink-Editor__button",onMouseDown:e=>e.preventDefault(),onClick:()=>{be.applyCaseToSelection("lower"),d()},children:"lower"}),r.jsx("button",{type:"button",className:"Ink-Editor__button",onMouseDown:e=>e.preventDefault(),onClick:()=>{be.applyCaseToSelection("title"),d()},children:"Title Case"})]}):null,pn?r.jsx(hl.SlashMenu,{items:Jo,top:en.top,left:en.left,query:Ko,onSelect:nl}):null,Ct?r.jsx(pl.AiAutocomplete,{suggestion:q.suggestion,position:{top:q.top,left:q.left},visible:q.visible,onAccept:gn,onDismiss:F}):null,r.jsx(Sl.InlineToolbar,{open:Ge.open,top:Ge.top,left:Ge.left,icons:{bold:S.bold,italic:S.italic,underline:S.underline,code:S.code,link:S.link,clearFormat:S.clearFormat},activeFormats:st,disabled:c||_,onFormat:Qr,onLink:ht,onClose:()=>le(e=>({...e,open:!1}))}),a.ai&&(C!=null&&C.enabled)?r.jsx(Rl.AiSelectionBubble,{open:Ge.open&&!!Ie,top:In.top,left:In.left,busy:Tr,preview:Lt,onAction:e=>{Jr(e)},onApply:el,onDismiss:()=>Ce("")}):null,r.jsx(eo.ContextMenu,{open:Tt.open,x:Tt.x,y:Tt.y,items:zr,colorMode:At,onClose:()=>{Ln(!1),Ot(e=>({...e,open:!1}))}}),r.jsx(eo.ContextMenu,{open:Et.open,x:Et.x,y:Et.y,items:Zr,colorMode:At,onClose:()=>dt(e=>({...e,open:!1}))})]}),on&&a.versionHistory?r.jsx(bl.VersionHistory,{versions:tr,onClose:()=>rn(!1),onSave:()=>{o.current&&(je.saveVersion(k,o.current.innerHTML),ln(je.listVersions(k)))},onRestore:e=>{K(e.html),ut("")},onCompare:e=>ut(e.html)}):null,Nt&&a.comments?r.jsx(Al.CommentsPanel,{comments:j,author:G,onClose:()=>St(!1),onFocus:e=>{const t=j.find(n=>n.id===e);t&&o.current&&Be.scrollToComment(o.current,t.highlightId)},onReopen:e=>{const t=j.find(n=>n.id===e);qe(j.map(n=>n.id===e?{...n,resolved:!1}:n)),t&&o.current&&(Be.setCommentResolvedMark(o.current,t.highlightId,!1),d())},onResolve:e=>{const t=j.find(n=>n.id===e);qe(j.map(n=>n.id===e?{...n,resolved:!0}:n)),t&&o.current&&(Be.setCommentResolvedMark(o.current,t.highlightId,!0),d())},onAddReply:(e,t)=>{qe(j.map(n=>n.id===e?{...n,replies:[...n.replies,{id:Yn.createInkId("reply"),author:G,body:t,timestamp:Date.now()}]}:n))}}):null,cl&&C?r.jsx(Cl.AiPanel,{config:C,documentHtml:((Xn=o.current)==null?void 0:Xn.innerHTML)??M??"",selectionHtml:Ie,onBusyChange:Zo,onClose:()=>de(!1),onApplyHtml:e=>{if(b(o.current),Ie)T.insertHTML(e);else{K(e);return}d()}}):null]}),wt?r.jsxs("div",{className:i.INK_CLASS_FOOTER,children:[r.jsxs("span",{children:[Do," ",E.INK_FOOTER_WORDS_LABEL," ",E.INK_FOOTER_DOT," ",Mo,Ft?` / ${Ft}`:""," ",E.INK_FOOTER_CHARS_LABEL]}),r.jsxs("span",{className:i.INK_CLASS_FOOTER_META,children:[r.jsxs("span",{children:[E.INK_FOOTER_LINE_LABEL," ",xo,", ",E.INK_FOOTER_COL_LABEL," ",Uo]}),r.jsx("span",{className:"Ink-Editor__footer-sync",children:E.INK_FOOTER_SYNCED_LABEL})]})]}):null]})};exports.InkEditor=Xl;
@@ -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;AA8TrB,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA29DxC,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;AAEf,OAAO,KAAK,EAEV,cAAc,EAKf,MAAM,aAAa,CAAC;AAkXrB,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA+xExC,CAAC"}