@bendyline/squisq-editor-react 1.5.1 → 1.5.3

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 (405) hide show
  1. package/dist/index.d.ts +1991 -90
  2. package/dist/index.js +17162 -82
  3. package/dist/index.js.map +1 -1
  4. package/package.json +4 -4
  5. package/src/RawEditor.tsx +49 -18
  6. package/src/VersionHistoryPanel.tsx +59 -17
  7. package/src/recorder/hooks/useMediaRecorder.ts +9 -1
  8. package/src/useMonacoLoader.ts +83 -0
  9. package/dist/DocumentSettingsDialog.d.ts +0 -26
  10. package/dist/DocumentSettingsDialog.d.ts.map +0 -1
  11. package/dist/DocumentSettingsDialog.js +0 -115
  12. package/dist/DocumentSettingsDialog.js.map +0 -1
  13. package/dist/DropZoneOverlay.d.ts +0 -24
  14. package/dist/DropZoneOverlay.d.ts.map +0 -1
  15. package/dist/DropZoneOverlay.js +0 -53
  16. package/dist/DropZoneOverlay.js.map +0 -1
  17. package/dist/EditorContext.d.ts +0 -391
  18. package/dist/EditorContext.d.ts.map +0 -1
  19. package/dist/EditorContext.js +0 -471
  20. package/dist/EditorContext.js.map +0 -1
  21. package/dist/EditorShell.d.ts +0 -328
  22. package/dist/EditorShell.d.ts.map +0 -1
  23. package/dist/EditorShell.js +0 -290
  24. package/dist/EditorShell.js.map +0 -1
  25. package/dist/EmojiPicker.d.ts +0 -50
  26. package/dist/EmojiPicker.d.ts.map +0 -1
  27. package/dist/EmojiPicker.js +0 -182
  28. package/dist/EmojiPicker.js.map +0 -1
  29. package/dist/ImageEditor.d.ts +0 -68
  30. package/dist/ImageEditor.d.ts.map +0 -1
  31. package/dist/ImageEditor.js +0 -166
  32. package/dist/ImageEditor.js.map +0 -1
  33. package/dist/ImageNodeView.d.ts +0 -27
  34. package/dist/ImageNodeView.d.ts.map +0 -1
  35. package/dist/ImageNodeView.js +0 -215
  36. package/dist/ImageNodeView.js.map +0 -1
  37. package/dist/ImageViewer.d.ts +0 -26
  38. package/dist/ImageViewer.d.ts.map +0 -1
  39. package/dist/ImageViewer.js +0 -119
  40. package/dist/ImageViewer.js.map +0 -1
  41. package/dist/InlineIcon.d.ts +0 -17
  42. package/dist/InlineIcon.d.ts.map +0 -1
  43. package/dist/InlineIcon.js +0 -72
  44. package/dist/InlineIcon.js.map +0 -1
  45. package/dist/InlinePreviewGutter.d.ts +0 -52
  46. package/dist/InlinePreviewGutter.d.ts.map +0 -1
  47. package/dist/InlinePreviewGutter.js +0 -397
  48. package/dist/InlinePreviewGutter.js.map +0 -1
  49. package/dist/LinkDialog.d.ts +0 -43
  50. package/dist/LinkDialog.d.ts.map +0 -1
  51. package/dist/LinkDialog.js +0 -102
  52. package/dist/LinkDialog.js.map +0 -1
  53. package/dist/MediaBin.d.ts +0 -29
  54. package/dist/MediaBin.d.ts.map +0 -1
  55. package/dist/MediaBin.js +0 -166
  56. package/dist/MediaBin.js.map +0 -1
  57. package/dist/MentionExtension.d.ts +0 -22
  58. package/dist/MentionExtension.d.ts.map +0 -1
  59. package/dist/MentionExtension.js +0 -245
  60. package/dist/MentionExtension.js.map +0 -1
  61. package/dist/OutlinePanel.d.ts +0 -17
  62. package/dist/OutlinePanel.d.ts.map +0 -1
  63. package/dist/OutlinePanel.js +0 -167
  64. package/dist/OutlinePanel.js.map +0 -1
  65. package/dist/PlainHtmlPreview.d.ts +0 -50
  66. package/dist/PlainHtmlPreview.d.ts.map +0 -1
  67. package/dist/PlainHtmlPreview.js +0 -155
  68. package/dist/PlainHtmlPreview.js.map +0 -1
  69. package/dist/PreviewControls.d.ts +0 -55
  70. package/dist/PreviewControls.d.ts.map +0 -1
  71. package/dist/PreviewControls.js +0 -277
  72. package/dist/PreviewControls.js.map +0 -1
  73. package/dist/PreviewPanel.d.ts +0 -29
  74. package/dist/PreviewPanel.d.ts.map +0 -1
  75. package/dist/PreviewPanel.js +0 -94
  76. package/dist/PreviewPanel.js.map +0 -1
  77. package/dist/RawEditor.d.ts +0 -32
  78. package/dist/RawEditor.d.ts.map +0 -1
  79. package/dist/RawEditor.js +0 -440
  80. package/dist/RawEditor.js.map +0 -1
  81. package/dist/RecorderEntry.d.ts +0 -24
  82. package/dist/RecorderEntry.d.ts.map +0 -1
  83. package/dist/RecorderEntry.js +0 -139
  84. package/dist/RecorderEntry.js.map +0 -1
  85. package/dist/StatusBar.d.ts +0 -15
  86. package/dist/StatusBar.d.ts.map +0 -1
  87. package/dist/StatusBar.js +0 -24
  88. package/dist/StatusBar.js.map +0 -1
  89. package/dist/TemplateAnnotation.d.ts +0 -20
  90. package/dist/TemplateAnnotation.d.ts.map +0 -1
  91. package/dist/TemplateAnnotation.js +0 -97
  92. package/dist/TemplateAnnotation.js.map +0 -1
  93. package/dist/TemplatePicker.d.ts +0 -53
  94. package/dist/TemplatePicker.d.ts.map +0 -1
  95. package/dist/TemplatePicker.js +0 -388
  96. package/dist/TemplatePicker.js.map +0 -1
  97. package/dist/ThemeCustomizerPanel.d.ts +0 -32
  98. package/dist/ThemeCustomizerPanel.d.ts.map +0 -1
  99. package/dist/ThemeCustomizerPanel.js +0 -256
  100. package/dist/ThemeCustomizerPanel.js.map +0 -1
  101. package/dist/ThemePicker.d.ts +0 -33
  102. package/dist/ThemePicker.d.ts.map +0 -1
  103. package/dist/ThemePicker.js +0 -148
  104. package/dist/ThemePicker.js.map +0 -1
  105. package/dist/Toolbar.d.ts +0 -36
  106. package/dist/Toolbar.d.ts.map +0 -1
  107. package/dist/Toolbar.js +0 -1001
  108. package/dist/Toolbar.js.map +0 -1
  109. package/dist/Tooltip.d.ts +0 -10
  110. package/dist/Tooltip.d.ts.map +0 -1
  111. package/dist/Tooltip.js +0 -104
  112. package/dist/Tooltip.js.map +0 -1
  113. package/dist/VersionHistoryPanel.d.ts +0 -14
  114. package/dist/VersionHistoryPanel.d.ts.map +0 -1
  115. package/dist/VersionHistoryPanel.js +0 -147
  116. package/dist/VersionHistoryPanel.js.map +0 -1
  117. package/dist/ViewMenuPanel.d.ts +0 -13
  118. package/dist/ViewMenuPanel.d.ts.map +0 -1
  119. package/dist/ViewMenuPanel.js +0 -58
  120. package/dist/ViewMenuPanel.js.map +0 -1
  121. package/dist/ViewSwitcher.d.ts +0 -14
  122. package/dist/ViewSwitcher.d.ts.map +0 -1
  123. package/dist/ViewSwitcher.js +0 -26
  124. package/dist/ViewSwitcher.js.map +0 -1
  125. package/dist/WysiwygEditor.d.ts +0 -39
  126. package/dist/WysiwygEditor.d.ts.map +0 -1
  127. package/dist/WysiwygEditor.js +0 -537
  128. package/dist/WysiwygEditor.js.map +0 -1
  129. package/dist/__tests__/detectMarkdown.test.d.ts +0 -2
  130. package/dist/__tests__/detectMarkdown.test.d.ts.map +0 -1
  131. package/dist/__tests__/detectMarkdown.test.js +0 -55
  132. package/dist/__tests__/detectMarkdown.test.js.map +0 -1
  133. package/dist/__tests__/documentSettingsDialog.test.d.ts +0 -2
  134. package/dist/__tests__/documentSettingsDialog.test.d.ts.map +0 -1
  135. package/dist/__tests__/documentSettingsDialog.test.js +0 -132
  136. package/dist/__tests__/documentSettingsDialog.test.js.map +0 -1
  137. package/dist/__tests__/emojiPicker.test.d.ts +0 -2
  138. package/dist/__tests__/emojiPicker.test.d.ts.map +0 -1
  139. package/dist/__tests__/emojiPicker.test.js +0 -111
  140. package/dist/__tests__/emojiPicker.test.js.map +0 -1
  141. package/dist/__tests__/fileKind.test.d.ts +0 -2
  142. package/dist/__tests__/fileKind.test.d.ts.map +0 -1
  143. package/dist/__tests__/fileKind.test.js +0 -94
  144. package/dist/__tests__/fileKind.test.js.map +0 -1
  145. package/dist/__tests__/imageEditAffordance.test.d.ts +0 -2
  146. package/dist/__tests__/imageEditAffordance.test.d.ts.map +0 -1
  147. package/dist/__tests__/imageEditAffordance.test.js +0 -188
  148. package/dist/__tests__/imageEditAffordance.test.js.map +0 -1
  149. package/dist/__tests__/imageEditorShell.test.d.ts +0 -2
  150. package/dist/__tests__/imageEditorShell.test.d.ts.map +0 -1
  151. package/dist/__tests__/imageEditorShell.test.js +0 -52
  152. package/dist/__tests__/imageEditorShell.test.js.map +0 -1
  153. package/dist/__tests__/imageEditorState.test.d.ts +0 -3
  154. package/dist/__tests__/imageEditorState.test.d.ts.map +0 -1
  155. package/dist/__tests__/imageEditorState.test.js +0 -148
  156. package/dist/__tests__/imageEditorState.test.js.map +0 -1
  157. package/dist/__tests__/inlinePreviewGutter.test.d.ts +0 -2
  158. package/dist/__tests__/inlinePreviewGutter.test.d.ts.map +0 -1
  159. package/dist/__tests__/inlinePreviewGutter.test.js +0 -51
  160. package/dist/__tests__/inlinePreviewGutter.test.js.map +0 -1
  161. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts +0 -2
  162. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts.map +0 -1
  163. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js +0 -63
  164. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js.map +0 -1
  165. package/dist/__tests__/jsonEditor.test.d.ts +0 -2
  166. package/dist/__tests__/jsonEditor.test.d.ts.map +0 -1
  167. package/dist/__tests__/jsonEditor.test.js +0 -134
  168. package/dist/__tests__/jsonEditor.test.js.map +0 -1
  169. package/dist/__tests__/layersPanel.test.d.ts +0 -2
  170. package/dist/__tests__/layersPanel.test.d.ts.map +0 -1
  171. package/dist/__tests__/layersPanel.test.js +0 -84
  172. package/dist/__tests__/layersPanel.test.js.map +0 -1
  173. package/dist/__tests__/linkDialogDocPicker.test.d.ts +0 -7
  174. package/dist/__tests__/linkDialogDocPicker.test.d.ts.map +0 -1
  175. package/dist/__tests__/linkDialogDocPicker.test.js +0 -75
  176. package/dist/__tests__/linkDialogDocPicker.test.js.map +0 -1
  177. package/dist/__tests__/mediaAttachmentFlow.test.d.ts +0 -2
  178. package/dist/__tests__/mediaAttachmentFlow.test.d.ts.map +0 -1
  179. package/dist/__tests__/mediaAttachmentFlow.test.js +0 -99
  180. package/dist/__tests__/mediaAttachmentFlow.test.js.map +0 -1
  181. package/dist/__tests__/outlinePanel.test.d.ts +0 -2
  182. package/dist/__tests__/outlinePanel.test.d.ts.map +0 -1
  183. package/dist/__tests__/outlinePanel.test.js +0 -68
  184. package/dist/__tests__/outlinePanel.test.js.map +0 -1
  185. package/dist/__tests__/plainHtmlPreview.test.d.ts +0 -2
  186. package/dist/__tests__/plainHtmlPreview.test.d.ts.map +0 -1
  187. package/dist/__tests__/plainHtmlPreview.test.js +0 -87
  188. package/dist/__tests__/plainHtmlPreview.test.js.map +0 -1
  189. package/dist/__tests__/propertiesPanel.test.d.ts +0 -2
  190. package/dist/__tests__/propertiesPanel.test.d.ts.map +0 -1
  191. package/dist/__tests__/propertiesPanel.test.js +0 -64
  192. package/dist/__tests__/propertiesPanel.test.js.map +0 -1
  193. package/dist/__tests__/recorderFormats.test.d.ts +0 -2
  194. package/dist/__tests__/recorderFormats.test.d.ts.map +0 -1
  195. package/dist/__tests__/recorderFormats.test.js +0 -121
  196. package/dist/__tests__/recorderFormats.test.js.map +0 -1
  197. package/dist/__tests__/recorderTimingJson.test.d.ts +0 -2
  198. package/dist/__tests__/recorderTimingJson.test.d.ts.map +0 -1
  199. package/dist/__tests__/recorderTimingJson.test.js +0 -37
  200. package/dist/__tests__/recorderTimingJson.test.js.map +0 -1
  201. package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts +0 -2
  202. package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts.map +0 -1
  203. package/dist/__tests__/templateAnnotationRoundTrip.test.js +0 -31
  204. package/dist/__tests__/templateAnnotationRoundTrip.test.js.map +0 -1
  205. package/dist/__tests__/tiptapBridge.test.d.ts +0 -2
  206. package/dist/__tests__/tiptapBridge.test.d.ts.map +0 -1
  207. package/dist/__tests__/tiptapBridge.test.js +0 -303
  208. package/dist/__tests__/tiptapBridge.test.js.map +0 -1
  209. package/dist/__tests__/tiptapImageRoundTrip.test.d.ts +0 -2
  210. package/dist/__tests__/tiptapImageRoundTrip.test.d.ts.map +0 -1
  211. package/dist/__tests__/tiptapImageRoundTrip.test.js +0 -68
  212. package/dist/__tests__/tiptapImageRoundTrip.test.js.map +0 -1
  213. package/dist/__tests__/useImageEditor.test.d.ts +0 -2
  214. package/dist/__tests__/useImageEditor.test.d.ts.map +0 -1
  215. package/dist/__tests__/useImageEditor.test.js +0 -131
  216. package/dist/__tests__/useImageEditor.test.js.map +0 -1
  217. package/dist/__tests__/useMediaRecorder.test.d.ts +0 -2
  218. package/dist/__tests__/useMediaRecorder.test.d.ts.map +0 -1
  219. package/dist/__tests__/useMediaRecorder.test.js +0 -153
  220. package/dist/__tests__/useMediaRecorder.test.js.map +0 -1
  221. package/dist/__tests__/versionHistory.test.d.ts +0 -2
  222. package/dist/__tests__/versionHistory.test.d.ts.map +0 -1
  223. package/dist/__tests__/versionHistory.test.js +0 -124
  224. package/dist/__tests__/versionHistory.test.js.map +0 -1
  225. package/dist/blockSlice.d.ts +0 -24
  226. package/dist/blockSlice.d.ts.map +0 -1
  227. package/dist/blockSlice.js +0 -63
  228. package/dist/blockSlice.js.map +0 -1
  229. package/dist/buildPreviewDoc.d.ts +0 -22
  230. package/dist/buildPreviewDoc.d.ts.map +0 -1
  231. package/dist/buildPreviewDoc.js +0 -262
  232. package/dist/buildPreviewDoc.js.map +0 -1
  233. package/dist/detectMarkdown.d.ts +0 -20
  234. package/dist/detectMarkdown.d.ts.map +0 -1
  235. package/dist/detectMarkdown.js +0 -61
  236. package/dist/detectMarkdown.js.map +0 -1
  237. package/dist/emojiData.d.ts +0 -81
  238. package/dist/emojiData.d.ts.map +0 -1
  239. package/dist/emojiData.js +0 -1283
  240. package/dist/emojiData.js.map +0 -1
  241. package/dist/fileKind.d.ts +0 -34
  242. package/dist/fileKind.d.ts.map +0 -1
  243. package/dist/fileKind.js +0 -144
  244. package/dist/fileKind.js.map +0 -1
  245. package/dist/hooks/useFileDrop.d.ts +0 -41
  246. package/dist/hooks/useFileDrop.d.ts.map +0 -1
  247. package/dist/hooks/useFileDrop.js +0 -205
  248. package/dist/hooks/useFileDrop.js.map +0 -1
  249. package/dist/imageEditor/CanvasSurface.d.ts +0 -31
  250. package/dist/imageEditor/CanvasSurface.d.ts.map +0 -1
  251. package/dist/imageEditor/CanvasSurface.js +0 -264
  252. package/dist/imageEditor/CanvasSurface.js.map +0 -1
  253. package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts +0 -39
  254. package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts.map +0 -1
  255. package/dist/imageEditor/ImageVersionHistoryDropdown.js +0 -283
  256. package/dist/imageEditor/ImageVersionHistoryDropdown.js.map +0 -1
  257. package/dist/imageEditor/LayersPanel.d.ts +0 -14
  258. package/dist/imageEditor/LayersPanel.d.ts.map +0 -1
  259. package/dist/imageEditor/LayersPanel.js +0 -43
  260. package/dist/imageEditor/LayersPanel.js.map +0 -1
  261. package/dist/imageEditor/PropertiesPanel.d.ts +0 -14
  262. package/dist/imageEditor/PropertiesPanel.d.ts.map +0 -1
  263. package/dist/imageEditor/PropertiesPanel.js +0 -97
  264. package/dist/imageEditor/PropertiesPanel.js.map +0 -1
  265. package/dist/imageEditor/Toolbar.d.ts +0 -30
  266. package/dist/imageEditor/Toolbar.d.ts.map +0 -1
  267. package/dist/imageEditor/Toolbar.js +0 -108
  268. package/dist/imageEditor/Toolbar.js.map +0 -1
  269. package/dist/imageEditor/icons.d.ts +0 -24
  270. package/dist/imageEditor/icons.d.ts.map +0 -1
  271. package/dist/imageEditor/icons.js +0 -45
  272. package/dist/imageEditor/icons.js.map +0 -1
  273. package/dist/imageEditor/layers/EditorImageLayer.d.ts +0 -16
  274. package/dist/imageEditor/layers/EditorImageLayer.d.ts.map +0 -1
  275. package/dist/imageEditor/layers/EditorImageLayer.js +0 -37
  276. package/dist/imageEditor/layers/EditorImageLayer.js.map +0 -1
  277. package/dist/imageEditor/layers/EditorShapeLayer.d.ts +0 -15
  278. package/dist/imageEditor/layers/EditorShapeLayer.d.ts.map +0 -1
  279. package/dist/imageEditor/layers/EditorShapeLayer.js +0 -20
  280. package/dist/imageEditor/layers/EditorShapeLayer.js.map +0 -1
  281. package/dist/imageEditor/layers/EditorTextLayer.d.ts +0 -18
  282. package/dist/imageEditor/layers/EditorTextLayer.d.ts.map +0 -1
  283. package/dist/imageEditor/layers/EditorTextLayer.js +0 -13
  284. package/dist/imageEditor/layers/EditorTextLayer.js.map +0 -1
  285. package/dist/imageEditor/layers/SelectionHandles.d.ts +0 -17
  286. package/dist/imageEditor/layers/SelectionHandles.d.ts.map +0 -1
  287. package/dist/imageEditor/layers/SelectionHandles.js +0 -19
  288. package/dist/imageEditor/layers/SelectionHandles.js.map +0 -1
  289. package/dist/imageEditor/state.d.ts +0 -76
  290. package/dist/imageEditor/state.d.ts.map +0 -1
  291. package/dist/imageEditor/state.js +0 -87
  292. package/dist/imageEditor/state.js.map +0 -1
  293. package/dist/imageEditor/useImageEditor.d.ts +0 -53
  294. package/dist/imageEditor/useImageEditor.d.ts.map +0 -1
  295. package/dist/imageEditor/useImageEditor.js +0 -244
  296. package/dist/imageEditor/useImageEditor.js.map +0 -1
  297. package/dist/imageEditor/useImageEditorTokens.d.ts +0 -16
  298. package/dist/imageEditor/useImageEditorTokens.d.ts.map +0 -1
  299. package/dist/imageEditor/useImageEditorTokens.js +0 -45
  300. package/dist/imageEditor/useImageEditorTokens.js.map +0 -1
  301. package/dist/index.d.ts.map +0 -1
  302. package/dist/jsonEditor/EmbeddedRichTextField.d.ts +0 -15
  303. package/dist/jsonEditor/EmbeddedRichTextField.d.ts.map +0 -1
  304. package/dist/jsonEditor/EmbeddedRichTextField.js +0 -74
  305. package/dist/jsonEditor/EmbeddedRichTextField.js.map +0 -1
  306. package/dist/jsonEditor/JsonEditor.d.ts +0 -36
  307. package/dist/jsonEditor/JsonEditor.d.ts.map +0 -1
  308. package/dist/jsonEditor/JsonEditor.js +0 -15
  309. package/dist/jsonEditor/JsonEditor.js.map +0 -1
  310. package/dist/jsonEditor/JsonEditorContext.d.ts +0 -28
  311. package/dist/jsonEditor/JsonEditorContext.d.ts.map +0 -1
  312. package/dist/jsonEditor/JsonEditorContext.js +0 -41
  313. package/dist/jsonEditor/JsonEditorContext.js.map +0 -1
  314. package/dist/jsonEditor/RenderNode.d.ts +0 -16
  315. package/dist/jsonEditor/RenderNode.d.ts.map +0 -1
  316. package/dist/jsonEditor/RenderNode.js +0 -32
  317. package/dist/jsonEditor/RenderNode.js.map +0 -1
  318. package/dist/jsonEditor/editors.d.ts +0 -36
  319. package/dist/jsonEditor/editors.d.ts.map +0 -1
  320. package/dist/jsonEditor/editors.js +0 -347
  321. package/dist/jsonEditor/editors.js.map +0 -1
  322. package/dist/jsonEditor/index.d.ts +0 -3
  323. package/dist/jsonEditor/index.d.ts.map +0 -1
  324. package/dist/jsonEditor/index.js +0 -2
  325. package/dist/jsonEditor/index.js.map +0 -1
  326. package/dist/jsonEditor/useJsonEditorTokens.d.ts +0 -13
  327. package/dist/jsonEditor/useJsonEditorTokens.d.ts.map +0 -1
  328. package/dist/jsonEditor/useJsonEditorTokens.js +0 -38
  329. package/dist/jsonEditor/useJsonEditorTokens.js.map +0 -1
  330. package/dist/mediaDragMime.d.ts +0 -17
  331. package/dist/mediaDragMime.d.ts.map +0 -1
  332. package/dist/mediaDragMime.js +0 -22
  333. package/dist/mediaDragMime.js.map +0 -1
  334. package/dist/recorder/RecorderButton.d.ts +0 -31
  335. package/dist/recorder/RecorderButton.d.ts.map +0 -1
  336. package/dist/recorder/RecorderButton.js +0 -24
  337. package/dist/recorder/RecorderButton.js.map +0 -1
  338. package/dist/recorder/RecorderModal.d.ts +0 -59
  339. package/dist/recorder/RecorderModal.d.ts.map +0 -1
  340. package/dist/recorder/RecorderModal.js +0 -333
  341. package/dist/recorder/RecorderModal.js.map +0 -1
  342. package/dist/recorder/RecorderPanel.d.ts +0 -25
  343. package/dist/recorder/RecorderPanel.d.ts.map +0 -1
  344. package/dist/recorder/RecorderPanel.js +0 -30
  345. package/dist/recorder/RecorderPanel.js.map +0 -1
  346. package/dist/recorder/formats.d.ts +0 -51
  347. package/dist/recorder/formats.d.ts.map +0 -1
  348. package/dist/recorder/formats.js +0 -144
  349. package/dist/recorder/formats.js.map +0 -1
  350. package/dist/recorder/hooks/useMediaRecorder.d.ts +0 -90
  351. package/dist/recorder/hooks/useMediaRecorder.d.ts.map +0 -1
  352. package/dist/recorder/hooks/useMediaRecorder.js +0 -277
  353. package/dist/recorder/hooks/useMediaRecorder.js.map +0 -1
  354. package/dist/recorder/hooks/useStreamPreview.d.ts +0 -22
  355. package/dist/recorder/hooks/useStreamPreview.d.ts.map +0 -1
  356. package/dist/recorder/hooks/useStreamPreview.js +0 -44
  357. package/dist/recorder/hooks/useStreamPreview.js.map +0 -1
  358. package/dist/recorder/sources/cameraStream.d.ts +0 -22
  359. package/dist/recorder/sources/cameraStream.d.ts.map +0 -1
  360. package/dist/recorder/sources/cameraStream.js +0 -24
  361. package/dist/recorder/sources/cameraStream.js.map +0 -1
  362. package/dist/recorder/sources/micStream.d.ts +0 -15
  363. package/dist/recorder/sources/micStream.d.ts.map +0 -1
  364. package/dist/recorder/sources/micStream.js +0 -24
  365. package/dist/recorder/sources/micStream.js.map +0 -1
  366. package/dist/recorder/sources/screenStream.d.ts +0 -53
  367. package/dist/recorder/sources/screenStream.d.ts.map +0 -1
  368. package/dist/recorder/sources/screenStream.js +0 -114
  369. package/dist/recorder/sources/screenStream.js.map +0 -1
  370. package/dist/recorder/timingJson.d.ts +0 -51
  371. package/dist/recorder/timingJson.d.ts.map +0 -1
  372. package/dist/recorder/timingJson.js +0 -42
  373. package/dist/recorder/timingJson.js.map +0 -1
  374. package/dist/tiptap/TiptapAudio.d.ts +0 -26
  375. package/dist/tiptap/TiptapAudio.d.ts.map +0 -1
  376. package/dist/tiptap/TiptapAudio.js +0 -58
  377. package/dist/tiptap/TiptapAudio.js.map +0 -1
  378. package/dist/tiptap/TiptapVideo.d.ts +0 -30
  379. package/dist/tiptap/TiptapVideo.d.ts.map +0 -1
  380. package/dist/tiptap/TiptapVideo.js +0 -66
  381. package/dist/tiptap/TiptapVideo.js.map +0 -1
  382. package/dist/tiptap/useResolvedMediaSrc.d.ts +0 -2
  383. package/dist/tiptap/useResolvedMediaSrc.d.ts.map +0 -1
  384. package/dist/tiptap/useResolvedMediaSrc.js +0 -42
  385. package/dist/tiptap/useResolvedMediaSrc.js.map +0 -1
  386. package/dist/tiptapBridge.d.ts +0 -24
  387. package/dist/tiptapBridge.d.ts.map +0 -1
  388. package/dist/tiptapBridge.js +0 -749
  389. package/dist/tiptapBridge.js.map +0 -1
  390. package/dist/useHeadingLayout.d.ts +0 -54
  391. package/dist/useHeadingLayout.d.ts.map +0 -1
  392. package/dist/useHeadingLayout.js +0 -260
  393. package/dist/useHeadingLayout.js.map +0 -1
  394. package/dist/utils/collectInlineFontAwesomeCss.d.ts +0 -21
  395. package/dist/utils/collectInlineFontAwesomeCss.d.ts.map +0 -1
  396. package/dist/utils/collectInlineFontAwesomeCss.js +0 -68
  397. package/dist/utils/collectInlineFontAwesomeCss.js.map +0 -1
  398. package/dist/utils/dropUtils.d.ts +0 -55
  399. package/dist/utils/dropUtils.d.ts.map +0 -1
  400. package/dist/utils/dropUtils.js +0 -110
  401. package/dist/utils/dropUtils.js.map +0 -1
  402. package/dist/utils/normalizeMalformedAssetUrl.d.ts +0 -15
  403. package/dist/utils/normalizeMalformedAssetUrl.d.ts.map +0 -1
  404. package/dist/utils/normalizeMalformedAssetUrl.js +0 -27
  405. package/dist/utils/normalizeMalformedAssetUrl.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq-editor-react",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "React editor shell with raw/WYSIWYG/preview modes for Squisq documents",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -47,9 +47,9 @@
47
47
  "react-dom": "^18.0.0 || ^19.0.0"
48
48
  },
49
49
  "dependencies": {
50
- "@bendyline/squisq": "1.4.0",
51
- "@bendyline/squisq-formats": "1.3.0",
52
- "@bendyline/squisq-react": "1.3.1",
50
+ "@bendyline/squisq": "1.4.1",
51
+ "@bendyline/squisq-formats": "1.3.1",
52
+ "@bendyline/squisq-react": "1.3.2",
53
53
  "@fortawesome/fontawesome-free": "7.2.0",
54
54
  "@monaco-editor/react": "4.7.0",
55
55
  "@tiptap/extension-image": "2.27.2",
package/src/RawEditor.tsx CHANGED
@@ -7,29 +7,30 @@
7
7
  */
8
8
 
9
9
  import { useRef, useCallback, useEffect } from 'react';
10
- import Editor, {
11
- loader,
12
- type OnMount,
13
- type OnChange,
14
- type BeforeMount,
15
- } from '@monaco-editor/react';
16
- import * as monaco from 'monaco-editor';
10
+ import Editor, { type OnMount, type OnChange, type BeforeMount } from '@monaco-editor/react';
11
+ import type * as monaco from 'monaco-editor';
17
12
  import { useEditorContext } from './EditorContext';
18
13
  import { getAvailableTemplates } from '@bendyline/squisq/doc';
19
14
  import { suggestIcons, resolveIcon, iconGlyph } from '@bendyline/squisq/icons';
20
15
  import { SQUISQ_MEDIA_MIME, parseSquisqMediaPayload } from './mediaDragMime';
21
-
22
- // Use locally installed monaco-editor instead of CDN.
16
+ import { useMonacoLoader } from './useMonacoLoader';
17
+
18
+ // Monaco is loaded lazily through `useMonacoLoader` (see the hook for the
19
+ // rationale). The type-only `import type * as monaco from 'monaco-editor'`
20
+ // above gives us `monaco.editor.IStandaloneCodeEditor`, `monaco.Range`,
21
+ // etc. for typing without pulling the package into the static module
22
+ // graph — which is the whole point: a consumer importing `JsonEditor` or
23
+ // a type from the package barrel no longer drags ~9MB of language
24
+ // services into the resolver.
23
25
  //
24
- // NOTE: By default this imports the full monaco-editor with all 80+ languages
25
- // and workers (~9MB). Consumers can dramatically reduce bundle size by aliasing
26
- // 'monaco-editor' to a slim entry in their bundler config. For example with Vite:
26
+ // Consumers that *do* want the raw editor can still slim the bundle by
27
+ // aliasing `monaco-editor` to a custom entry in their bundler config.
28
+ // For example with Vite:
27
29
  //
28
30
  // resolve: { alias: [{ find: /^monaco-editor$/, replacement: './monaco-slim.ts' }] }
29
31
  //
30
- // Where monaco-slim.ts re-exports 'monaco-editor/esm/vs/editor/editor.api' plus
31
- // only the language contributions needed (e.g. markdown, javascript, etc.).
32
- loader.config({ monaco });
32
+ // Where monaco-slim.ts re-exports 'monaco-editor/esm/vs/editor/editor.api'
33
+ // plus only the language contributions needed (e.g. markdown, javascript).
33
34
 
34
35
  // Squisq Monaco themes: same syntax highlighting as vs / vs-dark, but with
35
36
  // Monaco's internal gutter (line numbers + folding margin) and overview
@@ -83,6 +84,7 @@ export function RawEditor({
83
84
  }: RawEditorProps) {
84
85
  const { markdownSource, setMarkdownSource, setMonacoEditor, language, mentionProvider } =
85
86
  useEditorContext();
87
+ const { monaco: monacoNs, ready: monacoReady } = useMonacoLoader();
86
88
  const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null);
87
89
  const isExternalUpdate = useRef(false);
88
90
  const completionDisposable = useRef<monaco.IDisposable | null>(null);
@@ -439,7 +441,10 @@ export function RawEditor({
439
441
  // and weight; the codepoint character is the decoration's content.
440
442
  useEffect(() => {
441
443
  const editor = editorRef.current;
442
- if (!editor) return;
444
+ // `monacoNs` is read from the lazy loader's state rather than a
445
+ // top-level import. Re-run when it transitions from null → loaded
446
+ // so decorations show up the moment monaco is in hand.
447
+ if (!editor || !monacoNs) return;
443
448
  if (language !== 'markdown') return;
444
449
  const model = editor.getModel();
445
450
  if (!model) return;
@@ -461,7 +466,7 @@ export function RawEditor({
461
466
  // glyph as content prepended visually to that position.
462
467
  const col = match.index + 1; // Monaco columns are 1-based
463
468
  decorations.push({
464
- range: new monaco.Range(line, col, line, col),
469
+ range: new monacoNs.Range(line, col, line, col),
465
470
  options: {
466
471
  before: {
467
472
  content: glyph,
@@ -477,10 +482,36 @@ export function RawEditor({
477
482
  } else {
478
483
  iconGlyphDecorations.current.set(decorations);
479
484
  }
480
- }, [markdownSource, language]);
485
+ }, [markdownSource, language, monacoNs]);
481
486
 
482
487
  const effectiveTheme = SQUISQ_THEMES[theme] ?? theme;
483
488
 
489
+ // Wait for the lazy monaco namespace + `loader.config()` to settle
490
+ // before mounting `<Editor>`. Without this gate, the @monaco-editor/
491
+ // react singleton loader would fall back to its built-in CDN fetch
492
+ // for any consumer that hasn't aliased monaco-editor — which is the
493
+ // exact regression the lazy-loading move is meant to avoid.
494
+ if (!monacoReady) {
495
+ return (
496
+ <div
497
+ className={className}
498
+ style={{
499
+ width: '100%',
500
+ height: '100%',
501
+ display: 'flex',
502
+ alignItems: 'center',
503
+ justifyContent: 'center',
504
+ color: 'var(--squisq-editor-muted-foreground, #6a6258)',
505
+ fontSize: 13,
506
+ }}
507
+ data-testid="raw-editor"
508
+ data-monaco-loading
509
+ >
510
+ Loading editor…
511
+ </div>
512
+ );
513
+ }
514
+
484
515
  return (
485
516
  <div className={className} style={{ width: '100%', height: '100%' }} data-testid="raw-editor">
486
517
  <Editor
@@ -11,10 +11,67 @@
11
11
  * a provider that has `allowVersioning` and a `container`.
12
12
  */
13
13
 
14
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
14
+ import { useCallback, useEffect, useMemo, useRef, useState, type CSSProperties } from 'react';
15
15
  import { DiffEditor } from '@monaco-editor/react';
16
16
  import type { Version } from '@bendyline/squisq/versions';
17
17
  import { useEditorContext } from './EditorContext';
18
+ import { useMonacoLoader } from './useMonacoLoader';
19
+
20
+ interface LazyDiffEditorProps {
21
+ original: string;
22
+ modified: string;
23
+ theme: 'vs' | 'vs-dark';
24
+ }
25
+
26
+ const lazyLoadingStyle: CSSProperties = {
27
+ display: 'flex',
28
+ alignItems: 'center',
29
+ justifyContent: 'center',
30
+ width: '100%',
31
+ height: '100%',
32
+ color: 'var(--squisq-editor-muted-foreground, #6a6258)',
33
+ fontSize: 12,
34
+ };
35
+
36
+ /**
37
+ * Defers the `<DiffEditor>` mount until the lazy monaco namespace +
38
+ * `loader.config()` are in place. Without the gate, the
39
+ * `@monaco-editor/react` singleton loader would fall back to its CDN
40
+ * default for any consumer that hasn't already mounted `<RawEditor>`.
41
+ *
42
+ * This wrapper is what makes `useMonacoLoader` worth using here —
43
+ * VersionHistoryPanel itself is always present in the toolbar, so
44
+ * subscribing at its level would defeat the lazy-load. The hook only
45
+ * fires when a snapshot is actually selected.
46
+ */
47
+ function LazyDiffEditor({ original, modified, theme }: LazyDiffEditorProps) {
48
+ const { ready } = useMonacoLoader();
49
+ if (!ready) {
50
+ return <div style={lazyLoadingStyle}>Loading diff…</div>;
51
+ }
52
+ return (
53
+ <DiffEditor
54
+ original={original}
55
+ modified={modified}
56
+ language="markdown"
57
+ theme={theme}
58
+ options={{
59
+ readOnly: true,
60
+ renderSideBySide: true,
61
+ minimap: { enabled: false },
62
+ scrollBeyondLastLine: false,
63
+ wordWrap: 'on',
64
+ automaticLayout: true,
65
+ fontSize: 12,
66
+ lineNumbers: 'off',
67
+ glyphMargin: false,
68
+ folding: false,
69
+ overviewRulerLanes: 0,
70
+ renderOverviewRuler: false,
71
+ }}
72
+ />
73
+ );
74
+ }
18
75
 
19
76
  interface PanelState {
20
77
  loading: boolean;
@@ -206,25 +263,10 @@ export function VersionHistoryPanel() {
206
263
  </span>
207
264
  </div>
208
265
  <div className="squisq-version-history-diff-body">
209
- <DiffEditor
266
+ <LazyDiffEditor
210
267
  original={state.selected.content}
211
268
  modified={markdownSource}
212
- language="markdown"
213
269
  theme={diffTheme}
214
- options={{
215
- readOnly: true,
216
- renderSideBySide: true,
217
- minimap: { enabled: false },
218
- scrollBeyondLastLine: false,
219
- wordWrap: 'on',
220
- automaticLayout: true,
221
- fontSize: 12,
222
- lineNumbers: 'off',
223
- glyphMargin: false,
224
- folding: false,
225
- overviewRulerLanes: 0,
226
- renderOverviewRuler: false,
227
- }}
228
270
  />
229
271
  </div>
230
272
  </div>
@@ -344,7 +344,15 @@ export function useMediaRecorder(options: UseMediaRecorderOptions): UseMediaReco
344
344
 
345
345
  // Final unmount cleanup — make sure we don't leak the camera light /
346
346
  // screen-capture indicator if the component disappears mid-recording.
347
+ //
348
+ // `stopResolversRef.current` is captured at effect-run time into a
349
+ // local. That ref is initialized once at construction and never
350
+ // reassigned, so the local handle stays a live view onto the same
351
+ // mutable array — entries pushed by later `stop()` calls still
352
+ // appear here on cleanup. Capturing keeps `react-hooks/exhaustive-deps`
353
+ // satisfied without changing the runtime behavior.
347
354
  useEffect(() => {
355
+ const pendingResolvers = stopResolversRef.current;
348
356
  return () => {
349
357
  const rec = recorderRef.current;
350
358
  if (rec && rec.state !== 'inactive') {
@@ -356,7 +364,7 @@ export function useMediaRecorder(options: UseMediaRecorderOptions): UseMediaReco
356
364
  }
357
365
  releaseStream();
358
366
  clearTicker();
359
- stopResolversRef.current.splice(0).forEach((resolve) => resolve(null));
367
+ pendingResolvers.splice(0).forEach((resolve) => resolve(null));
360
368
  };
361
369
  }, [releaseStream, clearTicker]);
362
370
 
@@ -0,0 +1,83 @@
1
+ /**
2
+ * useMonacoLoader
3
+ *
4
+ * Idempotently dynamic-imports `monaco-editor` and points the
5
+ * `@monaco-editor/react` singleton loader at the bundled copy. Replaces
6
+ * the historical top-of-module `import * as monaco from 'monaco-editor';
7
+ * loader.config({ monaco })` pattern, which forced every consumer of
8
+ * `@bendyline/squisq-editor-react` — including ones that only import
9
+ * `JsonEditor` or a type — to drag in monaco's ~9MB worth of language
10
+ * services and workers at module evaluation time.
11
+ *
12
+ * Hosts that want the smallest possible bundle can keep aliasing
13
+ * `monaco-editor` to a slim entry as before; the behavior is identical
14
+ * once the dynamic import settles.
15
+ *
16
+ * The promise is cached at module scope so the first subscriber
17
+ * anywhere in the app pays the import cost and every later subscriber
18
+ * reuses the same settled value.
19
+ */
20
+
21
+ import { useEffect, useState } from 'react';
22
+ import { loader } from '@monaco-editor/react';
23
+
24
+ /** In-flight (or settled) dynamic import shared across all callers. */
25
+ let monacoPromise: Promise<typeof import('monaco-editor')> | null = null;
26
+
27
+ /** Settled namespace once the promise resolves — read synchronously by mount-time consumers. */
28
+ let monacoNamespace: typeof import('monaco-editor') | null = null;
29
+
30
+ export interface UseMonacoLoaderResult {
31
+ /** The monaco namespace once loaded, or `null` while the import is in flight. */
32
+ monaco: typeof import('monaco-editor') | null;
33
+ /** Flips to `true` after the import settles. Gate `<Editor>` / `<DiffEditor>` renders on this. */
34
+ ready: boolean;
35
+ }
36
+
37
+ /**
38
+ * Subscribe to the lazy-loaded monaco namespace. The first caller
39
+ * triggers `import('monaco-editor')` and configures the
40
+ * `@monaco-editor/react` loader; subsequent callers receive the same
41
+ * cached value.
42
+ */
43
+ export function useMonacoLoader(): UseMonacoLoaderResult {
44
+ const [state, setState] = useState<UseMonacoLoaderResult>(() => ({
45
+ monaco: monacoNamespace,
46
+ ready: monacoNamespace !== null,
47
+ }));
48
+
49
+ useEffect(() => {
50
+ if (state.ready) return;
51
+ if (!monacoPromise) {
52
+ // Import the explicit ESM entry file rather than the bare
53
+ // package specifier `'monaco-editor'`. The package's
54
+ // `package.json` has no `main` / no `exports` (only `module`),
55
+ // which trips Vite's strict resolver on both static and
56
+ // dynamic imports of the bare name. Pointing at the file
57
+ // directly — the same path monaco's `module` field points at —
58
+ // turns this into a regular file-path resolve that doesn't
59
+ // care about the manifest's entry fields. Works identically
60
+ // in Vite dev / build, vitest's transform pipeline, and any
61
+ // bundler-using downstream consumer.
62
+ monacoPromise = (
63
+ import('monaco-editor/esm/vs/editor/editor.api.js') as unknown as Promise<
64
+ typeof import('monaco-editor')
65
+ >
66
+ ).then((m) => {
67
+ loader.config({ monaco: m });
68
+ monacoNamespace = m;
69
+ return m;
70
+ });
71
+ }
72
+ let cancelled = false;
73
+ void monacoPromise.then((m) => {
74
+ if (cancelled) return;
75
+ setState({ monaco: m, ready: true });
76
+ });
77
+ return () => {
78
+ cancelled = true;
79
+ };
80
+ }, [state.ready]);
81
+
82
+ return state;
83
+ }
@@ -1,26 +0,0 @@
1
- /**
2
- * DocumentSettingsDialog
3
- *
4
- * Modal editor for the frontmatter values that Squisq currently
5
- * understands: document title plus the persisted preview keys
6
- * (`squisq-theme`, `squisq-transform`, `squisq-captions`). Writes back
7
- * to the same `setFrontmatterValues` channel that `PreviewControls`
8
- * uses, so any change made here is reflected in the play-mode controls
9
- * (and vice versa).
10
- *
11
- * Title behavior: the placeholder shows the title that
12
- * `inferDocumentTitle()` would derive from frontmatter or headings.
13
- * When the user-entered title is empty or equal to the inferred title,
14
- * the `title:` key is removed from frontmatter — there's no point
15
- * storing a redundant value.
16
- */
17
- export interface DocumentSettingsDialogProps {
18
- /** Current markdown source string (frontmatter + body). */
19
- markdownSource: string;
20
- /** Called with the rewritten source after the user clicks Save. */
21
- onSave: (nextSource: string) => void;
22
- /** Called when the dialog is dismissed (Cancel, Escape, backdrop click). */
23
- onClose: () => void;
24
- }
25
- export declare function DocumentSettingsDialog({ markdownSource, onSave, onClose, }: DocumentSettingsDialogProps): import("react/jsx-runtime").JSX.Element;
26
- //# sourceMappingURL=DocumentSettingsDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocumentSettingsDialog.d.ts","sourceRoot":"","sources":["../src/DocumentSettingsDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuCH,MAAM,WAAW,2BAA2B;IAC1C,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,4EAA4E;IAC5E,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID,wBAAgB,sBAAsB,CAAC,EACrC,cAAc,EACd,MAAM,EACN,OAAO,GACR,EAAE,2BAA2B,2CAoM7B"}
@@ -1,115 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * DocumentSettingsDialog
4
- *
5
- * Modal editor for the frontmatter values that Squisq currently
6
- * understands: document title plus the persisted preview keys
7
- * (`squisq-theme`, `squisq-transform`, `squisq-captions`). Writes back
8
- * to the same `setFrontmatterValues` channel that `PreviewControls`
9
- * uses, so any change made here is reflected in the play-mode controls
10
- * (and vice versa).
11
- *
12
- * Title behavior: the placeholder shows the title that
13
- * `inferDocumentTitle()` would derive from frontmatter or headings.
14
- * When the user-entered title is empty or equal to the inferred title,
15
- * the `title:` key is removed from frontmatter — there's no point
16
- * storing a redundant value.
17
- */
18
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
19
- import { inferDocumentTitle, parseMarkdown, setFrontmatterValues, } from '@bendyline/squisq/markdown';
20
- import { getTransformStyleSummaries } from '@bendyline/squisq/transform';
21
- import { ThemePicker } from './ThemePicker';
22
- // ── Frontmatter key constants ─────────────────────────────────────
23
- /** Mirror of `FM_KEYS` in PreviewControls.tsx. Canonical names are the
24
- * ones we write; legacy aliases are still read so older docs work. */
25
- const FM = {
26
- theme: { canonical: 'squisq-theme', legacy: 'theme' },
27
- transform: { canonical: 'squisq-transform', legacy: 'transform-style' },
28
- captions: { canonical: 'squisq-captions', legacy: 'caption-style' },
29
- };
30
- function readFm(fm, canonical, legacy) {
31
- if (!fm)
32
- return '';
33
- const v = Object.prototype.hasOwnProperty.call(fm, canonical) ? fm[canonical] : fm[legacy];
34
- return typeof v === 'string' ? v : '';
35
- }
36
- const CAPTION_OPTIONS = [
37
- { key: '', label: 'Default (Standard)' },
38
- { key: 'standard', label: 'Standard' },
39
- { key: 'social', label: 'Social' },
40
- ];
41
- // ── Component ─────────────────────────────────────────────────────
42
- export function DocumentSettingsDialog({ markdownSource, onSave, onClose, }) {
43
- // Parse once at open; further edits flow through local form state and
44
- // are committed in a single `setFrontmatterValues` call on Save.
45
- const parsed = useMemo(() => parseMarkdown(markdownSource), [markdownSource]);
46
- const frontmatter = parsed.frontmatter;
47
- const inferredTitle = useMemo(() => inferDocumentTitle(parsed), [parsed]);
48
- const currentTitle = typeof frontmatter?.title === 'string' ? frontmatter.title : '';
49
- const currentTheme = readFm(frontmatter, FM.theme.canonical, FM.theme.legacy);
50
- const currentTransform = readFm(frontmatter, FM.transform.canonical, FM.transform.legacy);
51
- const currentCaptions = readFm(frontmatter, FM.captions.canonical, FM.captions.legacy);
52
- const [title, setTitle] = useState(currentTitle);
53
- const [theme, setTheme] = useState(currentTheme);
54
- const [transform, setTransform] = useState(currentTransform);
55
- const [captions, setCaptions] = useState(currentCaptions);
56
- const titleRef = useRef(null);
57
- useEffect(() => {
58
- titleRef.current?.focus();
59
- titleRef.current?.select();
60
- }, []);
61
- // Esc closes; click on backdrop closes (but not on dialog itself).
62
- useEffect(() => {
63
- const onKey = (e) => {
64
- if (e.key === 'Escape')
65
- onClose();
66
- };
67
- document.addEventListener('keydown', onKey);
68
- return () => document.removeEventListener('keydown', onKey);
69
- }, [onClose]);
70
- const handleBackdrop = useCallback((e) => {
71
- if (e.target === e.currentTarget)
72
- onClose();
73
- }, [onClose]);
74
- // Dropdown options — built once per render; cheap.
75
- const transformOptions = useMemo(() => [
76
- { key: '', label: 'None' },
77
- ...getTransformStyleSummaries().map((s) => ({ key: s.id, label: s.name })),
78
- ], []);
79
- const handleSave = useCallback((e) => {
80
- e.preventDefault();
81
- const trimmedTitle = title.trim();
82
- const titleMatchesInferred = !!inferredTitle && trimmedTitle === inferredTitle;
83
- // Empty input OR matches the value we'd infer otherwise → no
84
- // explicit title needed in frontmatter.
85
- const nextTitle = !trimmedTitle || titleMatchesInferred ? null : trimmedTitle;
86
- const updates = {
87
- title: nextTitle,
88
- [FM.theme.canonical]: theme || null,
89
- // Legacy `theme` key would shadow our canonical one — clear it
90
- // when the user changes the theme so the canonical write wins.
91
- ...(currentTheme && theme !== currentTheme ? { [FM.theme.legacy]: null } : {}),
92
- [FM.transform.canonical]: transform || null,
93
- ...(currentTransform && transform !== currentTransform
94
- ? { [FM.transform.legacy]: null }
95
- : {}),
96
- [FM.captions.canonical]: captions || null,
97
- ...(currentCaptions && captions !== currentCaptions ? { [FM.captions.legacy]: null } : {}),
98
- };
99
- const nextSource = setFrontmatterValues(markdownSource, updates);
100
- onSave(nextSource);
101
- }, [
102
- title,
103
- theme,
104
- transform,
105
- captions,
106
- inferredTitle,
107
- markdownSource,
108
- currentTheme,
109
- currentTransform,
110
- currentCaptions,
111
- onSave,
112
- ]);
113
- return (_jsx("div", { className: "squisq-doc-settings-overlay", onMouseDown: handleBackdrop, children: _jsxs("form", { className: "squisq-doc-settings-dialog", onSubmit: handleSave, children: [_jsxs("div", { className: "squisq-doc-settings-header", children: [_jsx("h2", { className: "squisq-doc-settings-title", children: "Document settings" }), _jsx("button", { type: "button", className: "squisq-doc-settings-close", onClick: onClose, "aria-label": "Close", children: "\u00D7" })] }), _jsxs("div", { className: "squisq-doc-settings-body", children: [_jsxs("div", { className: "squisq-doc-settings-field", children: [_jsx("label", { className: "squisq-doc-settings-label", htmlFor: "squisq-doc-settings-title", children: "Title" }), _jsx("input", { ref: titleRef, id: "squisq-doc-settings-title", type: "text", className: "squisq-doc-settings-input", value: title, onChange: (e) => setTitle(e.target.value), placeholder: inferredTitle ?? 'Document title', spellCheck: true }), inferredTitle ? (_jsxs("span", { className: "squisq-doc-settings-hint", children: ["Defaults to ", _jsx("strong", { children: inferredTitle }), " \u2014 leave blank to use it."] })) : (_jsx("span", { className: "squisq-doc-settings-hint", children: "No title heading found \u2014 set one here or add an H1 to the document." }))] }), _jsxs("div", { className: "squisq-doc-settings-field", children: [_jsx("span", { className: "squisq-doc-settings-label", children: "Theme" }), _jsx(ThemePicker, { value: theme, onChange: setTheme, includeDefault: true, variant: "full", ariaLabel: "Theme" })] }), _jsxs("div", { className: "squisq-doc-settings-field", children: [_jsx("label", { className: "squisq-doc-settings-label", htmlFor: "squisq-doc-settings-transform", children: "Transform" }), _jsx("select", { id: "squisq-doc-settings-transform", className: "squisq-doc-settings-input", value: transform, onChange: (e) => setTransform(e.target.value), children: transformOptions.map((o) => (_jsx("option", { value: o.key, children: o.label }, o.key))) })] }), _jsxs("div", { className: "squisq-doc-settings-field", children: [_jsx("label", { className: "squisq-doc-settings-label", htmlFor: "squisq-doc-settings-captions", children: "Captions" }), _jsx("select", { id: "squisq-doc-settings-captions", className: "squisq-doc-settings-input", value: captions, onChange: (e) => setCaptions(e.target.value), children: CAPTION_OPTIONS.map((o) => (_jsx("option", { value: o.key, children: o.label }, o.key))) })] })] }), _jsxs("div", { className: "squisq-doc-settings-footer", children: [_jsx("button", { type: "button", className: "squisq-doc-settings-btn squisq-doc-settings-btn--secondary", onClick: onClose, children: "Cancel" }), _jsx("button", { type: "submit", className: "squisq-doc-settings-btn squisq-doc-settings-btn--primary", children: "Save" })] })] }) }));
114
- }
115
- //# sourceMappingURL=DocumentSettingsDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocumentSettingsDialog.js","sourceRoot":"","sources":["../src/DocumentSettingsDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * DropZoneOverlay
3
- *
4
- * Full-editor overlay that appears when files are dragged over the editor.
5
- * Shows contextual drop zones depending on the type of files being dragged:
6
- * - Media files → single "Media" drop zone
7
- * - Text files → two zones: "Insert" (at cursor) and "Replace" (all content)
8
- * - Mixed files → all three zones
9
- */
10
- import type { DragContentType, UseFileDropResult } from './hooks/useFileDrop';
11
- export interface DropZoneOverlayProps {
12
- /** What kind of content is being dragged */
13
- dragContentType: DragContentType;
14
- /** Factory that creates event props for a specific drop target */
15
- zoneProps: UseFileDropResult['zoneProps'];
16
- /** Whether a MediaProvider is available (disables media zone when false) */
17
- hasMediaProvider: boolean;
18
- }
19
- /**
20
- * Full-size overlay with contextual drop targets for file uploads.
21
- * Rendered conditionally by EditorShell when files are dragged over the editor.
22
- */
23
- export declare function DropZoneOverlay({ dragContentType, zoneProps, hasMediaProvider, }: DropZoneOverlayProps): import("react/jsx-runtime").JSX.Element;
24
- //# sourceMappingURL=DropZoneOverlay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DropZoneOverlay.d.ts","sourceRoot":"","sources":["../src/DropZoneOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAc,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1F,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,eAAe,EAAE,eAAe,CAAC;IACjC,kEAAkE;IAClE,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,eAAe,EACf,SAAS,EACT,gBAAgB,GACjB,EAAE,oBAAoB,2CAyCtB"}
@@ -1,53 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * DropZoneOverlay
4
- *
5
- * Full-editor overlay that appears when files are dragged over the editor.
6
- * Shows contextual drop zones depending on the type of files being dragged:
7
- * - Media files → single "Media" drop zone
8
- * - Text files → two zones: "Insert" (at cursor) and "Replace" (all content)
9
- * - Mixed files → all three zones
10
- */
11
- import { useState } from 'react';
12
- /**
13
- * Full-size overlay with contextual drop targets for file uploads.
14
- * Rendered conditionally by EditorShell when files are dragged over the editor.
15
- */
16
- export function DropZoneOverlay({ dragContentType, zoneProps, hasMediaProvider, }) {
17
- const showMedia = dragContentType === 'media' || dragContentType === 'mixed';
18
- const showText = dragContentType === 'text' || dragContentType === 'mixed';
19
- return (_jsx("div", { className: "squisq-drop-overlay", children: _jsxs("div", { className: "squisq-drop-overlay-inner", children: [showMedia && (_jsx(DropZone, { target: "media", zoneProps: zoneProps, icon: "\uD83D\uDCF7", label: "Media", description: hasMediaProvider ? 'Add to file bin' : 'No file storage configured', disabled: !hasMediaProvider, variant: "media" })), showText && (_jsxs(_Fragment, { children: [_jsx(DropZone, { target: "insert", zoneProps: zoneProps, icon: "\uD83D\uDCCB", label: "Insert", description: "Insert content at cursor", variant: "insert" }), _jsx(DropZone, { target: "replace", zoneProps: zoneProps, icon: "\uD83D\uDD04", label: "Replace", description: "Replace all editor content", variant: "replace" })] }))] }) }));
20
- }
21
- function DropZone({ target, zoneProps, icon, label, description, disabled, variant, }) {
22
- const [isHovering, setIsHovering] = useState(false);
23
- const props = zoneProps(target);
24
- return (_jsxs("div", { className: [
25
- 'squisq-drop-zone',
26
- `squisq-drop-zone--${variant}`,
27
- isHovering && !disabled ? 'squisq-drop-zone--active' : '',
28
- disabled ? 'squisq-drop-zone--disabled' : '',
29
- ]
30
- .filter(Boolean)
31
- .join(' '), onDragOver: (e) => {
32
- if (disabled) {
33
- e.preventDefault();
34
- return;
35
- }
36
- props.onDragOver(e);
37
- }, onDragEnter: (e) => {
38
- e.preventDefault();
39
- if (!disabled)
40
- setIsHovering(true);
41
- }, onDragLeave: (e) => {
42
- e.preventDefault();
43
- setIsHovering(false);
44
- }, onDrop: (e) => {
45
- setIsHovering(false);
46
- if (disabled) {
47
- e.preventDefault();
48
- return;
49
- }
50
- props.onDrop(e);
51
- }, children: [_jsx("span", { className: "squisq-drop-zone-icon", children: icon }), _jsx("span", { className: "squisq-drop-zone-label", children: label }), _jsx("span", { className: "squisq-drop-zone-desc", children: description })] }));
52
- }
53
- //# sourceMappingURL=DropZoneOverlay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DropZoneOverlay.js","sourceRoot":"","sources":["../src/DropZoneOverlay.tsx"],"names":[],"mappings":"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"}