@bendyline/squisq-editor-react 1.5.0 → 1.5.2

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 (401) hide show
  1. package/dist/index.d.ts +1991 -90
  2. package/dist/index.js +17088 -82
  3. package/dist/index.js.map +1 -1
  4. package/package.json +4 -4
  5. package/dist/DocumentSettingsDialog.d.ts +0 -26
  6. package/dist/DocumentSettingsDialog.d.ts.map +0 -1
  7. package/dist/DocumentSettingsDialog.js +0 -115
  8. package/dist/DocumentSettingsDialog.js.map +0 -1
  9. package/dist/DropZoneOverlay.d.ts +0 -24
  10. package/dist/DropZoneOverlay.d.ts.map +0 -1
  11. package/dist/DropZoneOverlay.js +0 -53
  12. package/dist/DropZoneOverlay.js.map +0 -1
  13. package/dist/EditorContext.d.ts +0 -391
  14. package/dist/EditorContext.d.ts.map +0 -1
  15. package/dist/EditorContext.js +0 -471
  16. package/dist/EditorContext.js.map +0 -1
  17. package/dist/EditorShell.d.ts +0 -328
  18. package/dist/EditorShell.d.ts.map +0 -1
  19. package/dist/EditorShell.js +0 -290
  20. package/dist/EditorShell.js.map +0 -1
  21. package/dist/EmojiPicker.d.ts +0 -50
  22. package/dist/EmojiPicker.d.ts.map +0 -1
  23. package/dist/EmojiPicker.js +0 -182
  24. package/dist/EmojiPicker.js.map +0 -1
  25. package/dist/ImageEditor.d.ts +0 -68
  26. package/dist/ImageEditor.d.ts.map +0 -1
  27. package/dist/ImageEditor.js +0 -166
  28. package/dist/ImageEditor.js.map +0 -1
  29. package/dist/ImageNodeView.d.ts +0 -27
  30. package/dist/ImageNodeView.d.ts.map +0 -1
  31. package/dist/ImageNodeView.js +0 -215
  32. package/dist/ImageNodeView.js.map +0 -1
  33. package/dist/ImageViewer.d.ts +0 -26
  34. package/dist/ImageViewer.d.ts.map +0 -1
  35. package/dist/ImageViewer.js +0 -119
  36. package/dist/ImageViewer.js.map +0 -1
  37. package/dist/InlineIcon.d.ts +0 -17
  38. package/dist/InlineIcon.d.ts.map +0 -1
  39. package/dist/InlineIcon.js +0 -72
  40. package/dist/InlineIcon.js.map +0 -1
  41. package/dist/InlinePreviewGutter.d.ts +0 -52
  42. package/dist/InlinePreviewGutter.d.ts.map +0 -1
  43. package/dist/InlinePreviewGutter.js +0 -397
  44. package/dist/InlinePreviewGutter.js.map +0 -1
  45. package/dist/LinkDialog.d.ts +0 -43
  46. package/dist/LinkDialog.d.ts.map +0 -1
  47. package/dist/LinkDialog.js +0 -102
  48. package/dist/LinkDialog.js.map +0 -1
  49. package/dist/MediaBin.d.ts +0 -29
  50. package/dist/MediaBin.d.ts.map +0 -1
  51. package/dist/MediaBin.js +0 -166
  52. package/dist/MediaBin.js.map +0 -1
  53. package/dist/MentionExtension.d.ts +0 -22
  54. package/dist/MentionExtension.d.ts.map +0 -1
  55. package/dist/MentionExtension.js +0 -245
  56. package/dist/MentionExtension.js.map +0 -1
  57. package/dist/OutlinePanel.d.ts +0 -17
  58. package/dist/OutlinePanel.d.ts.map +0 -1
  59. package/dist/OutlinePanel.js +0 -167
  60. package/dist/OutlinePanel.js.map +0 -1
  61. package/dist/PlainHtmlPreview.d.ts +0 -50
  62. package/dist/PlainHtmlPreview.d.ts.map +0 -1
  63. package/dist/PlainHtmlPreview.js +0 -155
  64. package/dist/PlainHtmlPreview.js.map +0 -1
  65. package/dist/PreviewControls.d.ts +0 -55
  66. package/dist/PreviewControls.d.ts.map +0 -1
  67. package/dist/PreviewControls.js +0 -277
  68. package/dist/PreviewControls.js.map +0 -1
  69. package/dist/PreviewPanel.d.ts +0 -29
  70. package/dist/PreviewPanel.d.ts.map +0 -1
  71. package/dist/PreviewPanel.js +0 -94
  72. package/dist/PreviewPanel.js.map +0 -1
  73. package/dist/RawEditor.d.ts +0 -32
  74. package/dist/RawEditor.d.ts.map +0 -1
  75. package/dist/RawEditor.js +0 -440
  76. package/dist/RawEditor.js.map +0 -1
  77. package/dist/RecorderEntry.d.ts +0 -24
  78. package/dist/RecorderEntry.d.ts.map +0 -1
  79. package/dist/RecorderEntry.js +0 -139
  80. package/dist/RecorderEntry.js.map +0 -1
  81. package/dist/StatusBar.d.ts +0 -15
  82. package/dist/StatusBar.d.ts.map +0 -1
  83. package/dist/StatusBar.js +0 -24
  84. package/dist/StatusBar.js.map +0 -1
  85. package/dist/TemplateAnnotation.d.ts +0 -20
  86. package/dist/TemplateAnnotation.d.ts.map +0 -1
  87. package/dist/TemplateAnnotation.js +0 -97
  88. package/dist/TemplateAnnotation.js.map +0 -1
  89. package/dist/TemplatePicker.d.ts +0 -53
  90. package/dist/TemplatePicker.d.ts.map +0 -1
  91. package/dist/TemplatePicker.js +0 -388
  92. package/dist/TemplatePicker.js.map +0 -1
  93. package/dist/ThemeCustomizerPanel.d.ts +0 -32
  94. package/dist/ThemeCustomizerPanel.d.ts.map +0 -1
  95. package/dist/ThemeCustomizerPanel.js +0 -256
  96. package/dist/ThemeCustomizerPanel.js.map +0 -1
  97. package/dist/ThemePicker.d.ts +0 -33
  98. package/dist/ThemePicker.d.ts.map +0 -1
  99. package/dist/ThemePicker.js +0 -148
  100. package/dist/ThemePicker.js.map +0 -1
  101. package/dist/Toolbar.d.ts +0 -36
  102. package/dist/Toolbar.d.ts.map +0 -1
  103. package/dist/Toolbar.js +0 -1001
  104. package/dist/Toolbar.js.map +0 -1
  105. package/dist/Tooltip.d.ts +0 -10
  106. package/dist/Tooltip.d.ts.map +0 -1
  107. package/dist/Tooltip.js +0 -104
  108. package/dist/Tooltip.js.map +0 -1
  109. package/dist/VersionHistoryPanel.d.ts +0 -14
  110. package/dist/VersionHistoryPanel.d.ts.map +0 -1
  111. package/dist/VersionHistoryPanel.js +0 -147
  112. package/dist/VersionHistoryPanel.js.map +0 -1
  113. package/dist/ViewMenuPanel.d.ts +0 -13
  114. package/dist/ViewMenuPanel.d.ts.map +0 -1
  115. package/dist/ViewMenuPanel.js +0 -58
  116. package/dist/ViewMenuPanel.js.map +0 -1
  117. package/dist/ViewSwitcher.d.ts +0 -14
  118. package/dist/ViewSwitcher.d.ts.map +0 -1
  119. package/dist/ViewSwitcher.js +0 -26
  120. package/dist/ViewSwitcher.js.map +0 -1
  121. package/dist/WysiwygEditor.d.ts +0 -39
  122. package/dist/WysiwygEditor.d.ts.map +0 -1
  123. package/dist/WysiwygEditor.js +0 -537
  124. package/dist/WysiwygEditor.js.map +0 -1
  125. package/dist/__tests__/detectMarkdown.test.d.ts +0 -2
  126. package/dist/__tests__/detectMarkdown.test.d.ts.map +0 -1
  127. package/dist/__tests__/detectMarkdown.test.js +0 -55
  128. package/dist/__tests__/detectMarkdown.test.js.map +0 -1
  129. package/dist/__tests__/documentSettingsDialog.test.d.ts +0 -2
  130. package/dist/__tests__/documentSettingsDialog.test.d.ts.map +0 -1
  131. package/dist/__tests__/documentSettingsDialog.test.js +0 -132
  132. package/dist/__tests__/documentSettingsDialog.test.js.map +0 -1
  133. package/dist/__tests__/emojiPicker.test.d.ts +0 -2
  134. package/dist/__tests__/emojiPicker.test.d.ts.map +0 -1
  135. package/dist/__tests__/emojiPicker.test.js +0 -111
  136. package/dist/__tests__/emojiPicker.test.js.map +0 -1
  137. package/dist/__tests__/fileKind.test.d.ts +0 -2
  138. package/dist/__tests__/fileKind.test.d.ts.map +0 -1
  139. package/dist/__tests__/fileKind.test.js +0 -94
  140. package/dist/__tests__/fileKind.test.js.map +0 -1
  141. package/dist/__tests__/imageEditAffordance.test.d.ts +0 -2
  142. package/dist/__tests__/imageEditAffordance.test.d.ts.map +0 -1
  143. package/dist/__tests__/imageEditAffordance.test.js +0 -188
  144. package/dist/__tests__/imageEditAffordance.test.js.map +0 -1
  145. package/dist/__tests__/imageEditorShell.test.d.ts +0 -2
  146. package/dist/__tests__/imageEditorShell.test.d.ts.map +0 -1
  147. package/dist/__tests__/imageEditorShell.test.js +0 -52
  148. package/dist/__tests__/imageEditorShell.test.js.map +0 -1
  149. package/dist/__tests__/imageEditorState.test.d.ts +0 -3
  150. package/dist/__tests__/imageEditorState.test.d.ts.map +0 -1
  151. package/dist/__tests__/imageEditorState.test.js +0 -148
  152. package/dist/__tests__/imageEditorState.test.js.map +0 -1
  153. package/dist/__tests__/inlinePreviewGutter.test.d.ts +0 -2
  154. package/dist/__tests__/inlinePreviewGutter.test.d.ts.map +0 -1
  155. package/dist/__tests__/inlinePreviewGutter.test.js +0 -51
  156. package/dist/__tests__/inlinePreviewGutter.test.js.map +0 -1
  157. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts +0 -2
  158. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts.map +0 -1
  159. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js +0 -63
  160. package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js.map +0 -1
  161. package/dist/__tests__/jsonEditor.test.d.ts +0 -2
  162. package/dist/__tests__/jsonEditor.test.d.ts.map +0 -1
  163. package/dist/__tests__/jsonEditor.test.js +0 -134
  164. package/dist/__tests__/jsonEditor.test.js.map +0 -1
  165. package/dist/__tests__/layersPanel.test.d.ts +0 -2
  166. package/dist/__tests__/layersPanel.test.d.ts.map +0 -1
  167. package/dist/__tests__/layersPanel.test.js +0 -84
  168. package/dist/__tests__/layersPanel.test.js.map +0 -1
  169. package/dist/__tests__/linkDialogDocPicker.test.d.ts +0 -7
  170. package/dist/__tests__/linkDialogDocPicker.test.d.ts.map +0 -1
  171. package/dist/__tests__/linkDialogDocPicker.test.js +0 -75
  172. package/dist/__tests__/linkDialogDocPicker.test.js.map +0 -1
  173. package/dist/__tests__/mediaAttachmentFlow.test.d.ts +0 -2
  174. package/dist/__tests__/mediaAttachmentFlow.test.d.ts.map +0 -1
  175. package/dist/__tests__/mediaAttachmentFlow.test.js +0 -99
  176. package/dist/__tests__/mediaAttachmentFlow.test.js.map +0 -1
  177. package/dist/__tests__/outlinePanel.test.d.ts +0 -2
  178. package/dist/__tests__/outlinePanel.test.d.ts.map +0 -1
  179. package/dist/__tests__/outlinePanel.test.js +0 -68
  180. package/dist/__tests__/outlinePanel.test.js.map +0 -1
  181. package/dist/__tests__/plainHtmlPreview.test.d.ts +0 -2
  182. package/dist/__tests__/plainHtmlPreview.test.d.ts.map +0 -1
  183. package/dist/__tests__/plainHtmlPreview.test.js +0 -87
  184. package/dist/__tests__/plainHtmlPreview.test.js.map +0 -1
  185. package/dist/__tests__/propertiesPanel.test.d.ts +0 -2
  186. package/dist/__tests__/propertiesPanel.test.d.ts.map +0 -1
  187. package/dist/__tests__/propertiesPanel.test.js +0 -64
  188. package/dist/__tests__/propertiesPanel.test.js.map +0 -1
  189. package/dist/__tests__/recorderFormats.test.d.ts +0 -2
  190. package/dist/__tests__/recorderFormats.test.d.ts.map +0 -1
  191. package/dist/__tests__/recorderFormats.test.js +0 -121
  192. package/dist/__tests__/recorderFormats.test.js.map +0 -1
  193. package/dist/__tests__/recorderTimingJson.test.d.ts +0 -2
  194. package/dist/__tests__/recorderTimingJson.test.d.ts.map +0 -1
  195. package/dist/__tests__/recorderTimingJson.test.js +0 -37
  196. package/dist/__tests__/recorderTimingJson.test.js.map +0 -1
  197. package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts +0 -2
  198. package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts.map +0 -1
  199. package/dist/__tests__/templateAnnotationRoundTrip.test.js +0 -31
  200. package/dist/__tests__/templateAnnotationRoundTrip.test.js.map +0 -1
  201. package/dist/__tests__/tiptapBridge.test.d.ts +0 -2
  202. package/dist/__tests__/tiptapBridge.test.d.ts.map +0 -1
  203. package/dist/__tests__/tiptapBridge.test.js +0 -303
  204. package/dist/__tests__/tiptapBridge.test.js.map +0 -1
  205. package/dist/__tests__/tiptapImageRoundTrip.test.d.ts +0 -2
  206. package/dist/__tests__/tiptapImageRoundTrip.test.d.ts.map +0 -1
  207. package/dist/__tests__/tiptapImageRoundTrip.test.js +0 -68
  208. package/dist/__tests__/tiptapImageRoundTrip.test.js.map +0 -1
  209. package/dist/__tests__/useImageEditor.test.d.ts +0 -2
  210. package/dist/__tests__/useImageEditor.test.d.ts.map +0 -1
  211. package/dist/__tests__/useImageEditor.test.js +0 -131
  212. package/dist/__tests__/useImageEditor.test.js.map +0 -1
  213. package/dist/__tests__/useMediaRecorder.test.d.ts +0 -2
  214. package/dist/__tests__/useMediaRecorder.test.d.ts.map +0 -1
  215. package/dist/__tests__/useMediaRecorder.test.js +0 -153
  216. package/dist/__tests__/useMediaRecorder.test.js.map +0 -1
  217. package/dist/__tests__/versionHistory.test.d.ts +0 -2
  218. package/dist/__tests__/versionHistory.test.d.ts.map +0 -1
  219. package/dist/__tests__/versionHistory.test.js +0 -124
  220. package/dist/__tests__/versionHistory.test.js.map +0 -1
  221. package/dist/blockSlice.d.ts +0 -24
  222. package/dist/blockSlice.d.ts.map +0 -1
  223. package/dist/blockSlice.js +0 -63
  224. package/dist/blockSlice.js.map +0 -1
  225. package/dist/buildPreviewDoc.d.ts +0 -22
  226. package/dist/buildPreviewDoc.d.ts.map +0 -1
  227. package/dist/buildPreviewDoc.js +0 -262
  228. package/dist/buildPreviewDoc.js.map +0 -1
  229. package/dist/detectMarkdown.d.ts +0 -20
  230. package/dist/detectMarkdown.d.ts.map +0 -1
  231. package/dist/detectMarkdown.js +0 -61
  232. package/dist/detectMarkdown.js.map +0 -1
  233. package/dist/emojiData.d.ts +0 -81
  234. package/dist/emojiData.d.ts.map +0 -1
  235. package/dist/emojiData.js +0 -1283
  236. package/dist/emojiData.js.map +0 -1
  237. package/dist/fileKind.d.ts +0 -34
  238. package/dist/fileKind.d.ts.map +0 -1
  239. package/dist/fileKind.js +0 -144
  240. package/dist/fileKind.js.map +0 -1
  241. package/dist/hooks/useFileDrop.d.ts +0 -41
  242. package/dist/hooks/useFileDrop.d.ts.map +0 -1
  243. package/dist/hooks/useFileDrop.js +0 -205
  244. package/dist/hooks/useFileDrop.js.map +0 -1
  245. package/dist/imageEditor/CanvasSurface.d.ts +0 -31
  246. package/dist/imageEditor/CanvasSurface.d.ts.map +0 -1
  247. package/dist/imageEditor/CanvasSurface.js +0 -264
  248. package/dist/imageEditor/CanvasSurface.js.map +0 -1
  249. package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts +0 -39
  250. package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts.map +0 -1
  251. package/dist/imageEditor/ImageVersionHistoryDropdown.js +0 -283
  252. package/dist/imageEditor/ImageVersionHistoryDropdown.js.map +0 -1
  253. package/dist/imageEditor/LayersPanel.d.ts +0 -14
  254. package/dist/imageEditor/LayersPanel.d.ts.map +0 -1
  255. package/dist/imageEditor/LayersPanel.js +0 -43
  256. package/dist/imageEditor/LayersPanel.js.map +0 -1
  257. package/dist/imageEditor/PropertiesPanel.d.ts +0 -14
  258. package/dist/imageEditor/PropertiesPanel.d.ts.map +0 -1
  259. package/dist/imageEditor/PropertiesPanel.js +0 -97
  260. package/dist/imageEditor/PropertiesPanel.js.map +0 -1
  261. package/dist/imageEditor/Toolbar.d.ts +0 -30
  262. package/dist/imageEditor/Toolbar.d.ts.map +0 -1
  263. package/dist/imageEditor/Toolbar.js +0 -108
  264. package/dist/imageEditor/Toolbar.js.map +0 -1
  265. package/dist/imageEditor/icons.d.ts +0 -24
  266. package/dist/imageEditor/icons.d.ts.map +0 -1
  267. package/dist/imageEditor/icons.js +0 -45
  268. package/dist/imageEditor/icons.js.map +0 -1
  269. package/dist/imageEditor/layers/EditorImageLayer.d.ts +0 -16
  270. package/dist/imageEditor/layers/EditorImageLayer.d.ts.map +0 -1
  271. package/dist/imageEditor/layers/EditorImageLayer.js +0 -37
  272. package/dist/imageEditor/layers/EditorImageLayer.js.map +0 -1
  273. package/dist/imageEditor/layers/EditorShapeLayer.d.ts +0 -15
  274. package/dist/imageEditor/layers/EditorShapeLayer.d.ts.map +0 -1
  275. package/dist/imageEditor/layers/EditorShapeLayer.js +0 -20
  276. package/dist/imageEditor/layers/EditorShapeLayer.js.map +0 -1
  277. package/dist/imageEditor/layers/EditorTextLayer.d.ts +0 -18
  278. package/dist/imageEditor/layers/EditorTextLayer.d.ts.map +0 -1
  279. package/dist/imageEditor/layers/EditorTextLayer.js +0 -13
  280. package/dist/imageEditor/layers/EditorTextLayer.js.map +0 -1
  281. package/dist/imageEditor/layers/SelectionHandles.d.ts +0 -17
  282. package/dist/imageEditor/layers/SelectionHandles.d.ts.map +0 -1
  283. package/dist/imageEditor/layers/SelectionHandles.js +0 -19
  284. package/dist/imageEditor/layers/SelectionHandles.js.map +0 -1
  285. package/dist/imageEditor/state.d.ts +0 -76
  286. package/dist/imageEditor/state.d.ts.map +0 -1
  287. package/dist/imageEditor/state.js +0 -87
  288. package/dist/imageEditor/state.js.map +0 -1
  289. package/dist/imageEditor/useImageEditor.d.ts +0 -53
  290. package/dist/imageEditor/useImageEditor.d.ts.map +0 -1
  291. package/dist/imageEditor/useImageEditor.js +0 -244
  292. package/dist/imageEditor/useImageEditor.js.map +0 -1
  293. package/dist/imageEditor/useImageEditorTokens.d.ts +0 -16
  294. package/dist/imageEditor/useImageEditorTokens.d.ts.map +0 -1
  295. package/dist/imageEditor/useImageEditorTokens.js +0 -45
  296. package/dist/imageEditor/useImageEditorTokens.js.map +0 -1
  297. package/dist/index.d.ts.map +0 -1
  298. package/dist/jsonEditor/EmbeddedRichTextField.d.ts +0 -15
  299. package/dist/jsonEditor/EmbeddedRichTextField.d.ts.map +0 -1
  300. package/dist/jsonEditor/EmbeddedRichTextField.js +0 -74
  301. package/dist/jsonEditor/EmbeddedRichTextField.js.map +0 -1
  302. package/dist/jsonEditor/JsonEditor.d.ts +0 -36
  303. package/dist/jsonEditor/JsonEditor.d.ts.map +0 -1
  304. package/dist/jsonEditor/JsonEditor.js +0 -15
  305. package/dist/jsonEditor/JsonEditor.js.map +0 -1
  306. package/dist/jsonEditor/JsonEditorContext.d.ts +0 -28
  307. package/dist/jsonEditor/JsonEditorContext.d.ts.map +0 -1
  308. package/dist/jsonEditor/JsonEditorContext.js +0 -41
  309. package/dist/jsonEditor/JsonEditorContext.js.map +0 -1
  310. package/dist/jsonEditor/RenderNode.d.ts +0 -16
  311. package/dist/jsonEditor/RenderNode.d.ts.map +0 -1
  312. package/dist/jsonEditor/RenderNode.js +0 -32
  313. package/dist/jsonEditor/RenderNode.js.map +0 -1
  314. package/dist/jsonEditor/editors.d.ts +0 -36
  315. package/dist/jsonEditor/editors.d.ts.map +0 -1
  316. package/dist/jsonEditor/editors.js +0 -347
  317. package/dist/jsonEditor/editors.js.map +0 -1
  318. package/dist/jsonEditor/index.d.ts +0 -3
  319. package/dist/jsonEditor/index.d.ts.map +0 -1
  320. package/dist/jsonEditor/index.js +0 -2
  321. package/dist/jsonEditor/index.js.map +0 -1
  322. package/dist/jsonEditor/useJsonEditorTokens.d.ts +0 -13
  323. package/dist/jsonEditor/useJsonEditorTokens.d.ts.map +0 -1
  324. package/dist/jsonEditor/useJsonEditorTokens.js +0 -38
  325. package/dist/jsonEditor/useJsonEditorTokens.js.map +0 -1
  326. package/dist/mediaDragMime.d.ts +0 -17
  327. package/dist/mediaDragMime.d.ts.map +0 -1
  328. package/dist/mediaDragMime.js +0 -22
  329. package/dist/mediaDragMime.js.map +0 -1
  330. package/dist/recorder/RecorderButton.d.ts +0 -31
  331. package/dist/recorder/RecorderButton.d.ts.map +0 -1
  332. package/dist/recorder/RecorderButton.js +0 -24
  333. package/dist/recorder/RecorderButton.js.map +0 -1
  334. package/dist/recorder/RecorderModal.d.ts +0 -59
  335. package/dist/recorder/RecorderModal.d.ts.map +0 -1
  336. package/dist/recorder/RecorderModal.js +0 -333
  337. package/dist/recorder/RecorderModal.js.map +0 -1
  338. package/dist/recorder/RecorderPanel.d.ts +0 -25
  339. package/dist/recorder/RecorderPanel.d.ts.map +0 -1
  340. package/dist/recorder/RecorderPanel.js +0 -30
  341. package/dist/recorder/RecorderPanel.js.map +0 -1
  342. package/dist/recorder/formats.d.ts +0 -51
  343. package/dist/recorder/formats.d.ts.map +0 -1
  344. package/dist/recorder/formats.js +0 -144
  345. package/dist/recorder/formats.js.map +0 -1
  346. package/dist/recorder/hooks/useMediaRecorder.d.ts +0 -90
  347. package/dist/recorder/hooks/useMediaRecorder.d.ts.map +0 -1
  348. package/dist/recorder/hooks/useMediaRecorder.js +0 -277
  349. package/dist/recorder/hooks/useMediaRecorder.js.map +0 -1
  350. package/dist/recorder/hooks/useStreamPreview.d.ts +0 -22
  351. package/dist/recorder/hooks/useStreamPreview.d.ts.map +0 -1
  352. package/dist/recorder/hooks/useStreamPreview.js +0 -44
  353. package/dist/recorder/hooks/useStreamPreview.js.map +0 -1
  354. package/dist/recorder/sources/cameraStream.d.ts +0 -22
  355. package/dist/recorder/sources/cameraStream.d.ts.map +0 -1
  356. package/dist/recorder/sources/cameraStream.js +0 -24
  357. package/dist/recorder/sources/cameraStream.js.map +0 -1
  358. package/dist/recorder/sources/micStream.d.ts +0 -15
  359. package/dist/recorder/sources/micStream.d.ts.map +0 -1
  360. package/dist/recorder/sources/micStream.js +0 -24
  361. package/dist/recorder/sources/micStream.js.map +0 -1
  362. package/dist/recorder/sources/screenStream.d.ts +0 -53
  363. package/dist/recorder/sources/screenStream.d.ts.map +0 -1
  364. package/dist/recorder/sources/screenStream.js +0 -114
  365. package/dist/recorder/sources/screenStream.js.map +0 -1
  366. package/dist/recorder/timingJson.d.ts +0 -51
  367. package/dist/recorder/timingJson.d.ts.map +0 -1
  368. package/dist/recorder/timingJson.js +0 -42
  369. package/dist/recorder/timingJson.js.map +0 -1
  370. package/dist/tiptap/TiptapAudio.d.ts +0 -26
  371. package/dist/tiptap/TiptapAudio.d.ts.map +0 -1
  372. package/dist/tiptap/TiptapAudio.js +0 -58
  373. package/dist/tiptap/TiptapAudio.js.map +0 -1
  374. package/dist/tiptap/TiptapVideo.d.ts +0 -30
  375. package/dist/tiptap/TiptapVideo.d.ts.map +0 -1
  376. package/dist/tiptap/TiptapVideo.js +0 -66
  377. package/dist/tiptap/TiptapVideo.js.map +0 -1
  378. package/dist/tiptap/useResolvedMediaSrc.d.ts +0 -2
  379. package/dist/tiptap/useResolvedMediaSrc.d.ts.map +0 -1
  380. package/dist/tiptap/useResolvedMediaSrc.js +0 -42
  381. package/dist/tiptap/useResolvedMediaSrc.js.map +0 -1
  382. package/dist/tiptapBridge.d.ts +0 -24
  383. package/dist/tiptapBridge.d.ts.map +0 -1
  384. package/dist/tiptapBridge.js +0 -749
  385. package/dist/tiptapBridge.js.map +0 -1
  386. package/dist/useHeadingLayout.d.ts +0 -54
  387. package/dist/useHeadingLayout.d.ts.map +0 -1
  388. package/dist/useHeadingLayout.js +0 -260
  389. package/dist/useHeadingLayout.js.map +0 -1
  390. package/dist/utils/collectInlineFontAwesomeCss.d.ts +0 -21
  391. package/dist/utils/collectInlineFontAwesomeCss.d.ts.map +0 -1
  392. package/dist/utils/collectInlineFontAwesomeCss.js +0 -68
  393. package/dist/utils/collectInlineFontAwesomeCss.js.map +0 -1
  394. package/dist/utils/dropUtils.d.ts +0 -55
  395. package/dist/utils/dropUtils.d.ts.map +0 -1
  396. package/dist/utils/dropUtils.js +0 -110
  397. package/dist/utils/dropUtils.js.map +0 -1
  398. package/dist/utils/normalizeMalformedAssetUrl.d.ts +0 -15
  399. package/dist/utils/normalizeMalformedAssetUrl.d.ts.map +0 -1
  400. package/dist/utils/normalizeMalformedAssetUrl.js +0 -27
  401. package/dist/utils/normalizeMalformedAssetUrl.js.map +0 -1
@@ -1,94 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * PreviewPanel
4
- *
5
- * Renders a live preview of the current markdown document as a slideshow
6
- * using the DocPlayer component from @bendyline/squisq-react. The
7
- * markdown → player-Doc conversion is delegated to the shared
8
- * `buildPreviewDoc` helper so live preview and the export pipeline stay
9
- * in sync.
10
- */
11
- import { useState, useEffect } from 'react';
12
- import { DocPlayer, LinearDocView, useMediaProvider } from '@bendyline/squisq-react';
13
- import { applyTransform } from '@bendyline/squisq/transform';
14
- import { resolveAudioMapping } from '@bendyline/squisq/doc';
15
- import { useEditorContext } from './EditorContext';
16
- import { usePreviewSettings } from './PreviewControls';
17
- import { buildPreviewDoc } from './buildPreviewDoc';
18
- import { PlainHtmlPreview } from './PlainHtmlPreview';
19
- // ── Component ──────────────────────────────────────────────────────
20
- /**
21
- * Live preview panel that renders the current document as a slideshow
22
- * or document view. Controls (viewport, mode, theme, transform, captions)
23
- * are rendered in the main toolbar via PreviewToolbarControls.
24
- */
25
- export function PreviewPanel({ basePath = '/', className, workspaceContainer }) {
26
- const { doc, parseError, isParsing, markdownSource, mediaRevision } = useEditorContext();
27
- const mediaProvider = useMediaProvider();
28
- const { activeViewport, activeDisplayMode, activeTheme, activeTransformStyle, activeCaptionStyle, } = usePreviewSettings();
29
- // Build the player-ready Doc whenever the parsed doc changes.
30
- // Transform runs on the ORIGINAL doc (which has block.contents with
31
- // markdown body text) so the content extractor can analyze it.
32
- // Then buildPreviewDoc converts the result for DocPlayer.
33
- //
34
- // Audio mapping is async (reads container files), so we use a two-phase
35
- // approach: first build the base doc synchronously, then resolve audio
36
- // in an effect and update the state.
37
- const [previewDoc, setPreviewDoc] = useState(null);
38
- useEffect(() => {
39
- if (!doc || !doc.blocks.length) {
40
- setPreviewDoc(null);
41
- return;
42
- }
43
- let sourceDoc = doc;
44
- if (activeTransformStyle) {
45
- const result = applyTransform(doc, activeTransformStyle);
46
- sourceDoc = result.doc;
47
- }
48
- // If we have a workspace container, try to resolve audio mapping before building preview
49
- if (workspaceContainer) {
50
- let cancelled = false;
51
- resolveAudioMapping(sourceDoc, workspaceContainer).then((audioDoc) => {
52
- if (!cancelled) {
53
- setPreviewDoc(buildPreviewDoc(audioDoc));
54
- }
55
- });
56
- // Set an immediate preview without audio while mapping resolves
57
- setPreviewDoc(buildPreviewDoc(sourceDoc));
58
- return () => {
59
- cancelled = true;
60
- };
61
- }
62
- setPreviewDoc(buildPreviewDoc(sourceDoc));
63
- }, [doc, activeTransformStyle, workspaceContainer]);
64
- // Status overlays for non-ready states
65
- if (isParsing) {
66
- return (_jsx("div", { className: `squisq-preview-status ${className || ''}`, "data-testid": "preview-panel", children: _jsx("p", { children: "Parsing\u2026" }) }));
67
- }
68
- if (parseError) {
69
- return (_jsxs("div", { className: `squisq-preview-status ${className || ''}`, "data-testid": "preview-panel", children: [_jsx("h3", { children: "Parse Error" }), _jsx("pre", { children: parseError })] }));
70
- }
71
- // Page mode renders directly from markdown — it doesn't depend on the
72
- // parsed Doc tree or the player preview build, so let it fall through
73
- // even when those aren't ready yet.
74
- if (!previewDoc && activeDisplayMode !== 'page') {
75
- return (_jsx("div", { className: `squisq-preview-status ${className || ''}`, "data-testid": "preview-panel", children: _jsx("p", { children: "No content to preview. Start typing in the editor." }) }));
76
- }
77
- const fillsContainer = activeDisplayMode === 'linear' || activeDisplayMode === 'page' ? 'stretch' : 'center';
78
- return (_jsx("div", { className: `squisq-preview-container ${className || ''}`, "data-testid": "preview-panel", style: {
79
- width: '100%',
80
- height: '100%',
81
- display: 'flex',
82
- flexDirection: 'column',
83
- overflow: 'hidden',
84
- background: 'var(--squisq-bg, #f5f5f5)',
85
- }, children: _jsx("div", { className: "squisq-preview-player", style: {
86
- flex: 1,
87
- display: 'flex',
88
- alignItems: fillsContainer,
89
- justifyContent: 'center',
90
- overflow: 'hidden',
91
- minHeight: 0,
92
- }, children: activeDisplayMode === 'page' ? (_jsx(PlainHtmlPreview, { markdown: markdownSource, title: doc?.frontmatter?.title ?? undefined, mediaProvider: mediaProvider, mediaRevision: mediaRevision, theme: activeTheme })) : activeDisplayMode === 'linear' ? (_jsx(LinearDocView, { doc: doc, basePath: basePath, viewport: activeViewport, theme: activeTheme })) : (_jsx(DocPlayer, { script: previewDoc, basePath: basePath, showControls: true, muted: true, forceViewport: activeViewport, displayMode: activeDisplayMode, theme: activeTheme, captionStyle: activeCaptionStyle })) }) }));
93
- }
94
- //# sourceMappingURL=PreviewPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PreviewPanel.js","sourceRoot":"","sources":["../src/PreviewPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * RawEditor
3
- *
4
- * Monaco-based raw markdown editor. Provides full VS Code-like editing
5
- * experience with syntax highlighting, minimap, and bracket matching.
6
- * Syncs changes back to EditorContext on every keystroke (debounced).
7
- */
8
- export interface RawEditorProps {
9
- /** Monaco editor theme (default: 'vs-dark') */
10
- theme?: string;
11
- /** Show minimap (default: false) */
12
- minimap?: boolean;
13
- /** Font size in pixels (default: 14) */
14
- fontSize?: number;
15
- /** Word wrap setting (default: 'on') */
16
- wordWrap?: 'on' | 'off' | 'wordWrapColumn' | 'bounded';
17
- /** Additional class name for the container */
18
- className?: string;
19
- /**
20
- * Chat-composer mode: Enter fires this callback (submit) and Cmd/Ctrl+Enter
21
- * inserts a newline. When undefined, behaves normally.
22
- */
23
- submitOnEnter?: () => void;
24
- /** Make Monaco read-only (no edits, no cursor blink). */
25
- readOnly?: boolean;
26
- }
27
- /**
28
- * Raw markdown editor using Monaco Editor.
29
- * Binds to the shared EditorContext for source synchronization.
30
- */
31
- export declare function RawEditor({ theme, minimap, fontSize, wordWrap, className, submitOnEnter, readOnly, }: RawEditorProps): import("react/jsx-runtime").JSX.Element;
32
- //# sourceMappingURL=RawEditor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RawEditor.d.ts","sourceRoot":"","sources":["../src/RawEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4CH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACvD,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAY,EACZ,OAAe,EACf,QAAa,EACb,QAAe,EACf,SAAS,EACT,aAAa,EACb,QAAgB,GACjB,EAAE,cAAc,2CA4bhB"}
package/dist/RawEditor.js DELETED
@@ -1,440 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * RawEditor
4
- *
5
- * Monaco-based raw markdown editor. Provides full VS Code-like editing
6
- * experience with syntax highlighting, minimap, and bracket matching.
7
- * Syncs changes back to EditorContext on every keystroke (debounced).
8
- */
9
- import { useRef, useCallback, useEffect } from 'react';
10
- import Editor, { loader, } from '@monaco-editor/react';
11
- import * as monaco from 'monaco-editor';
12
- import { useEditorContext } from './EditorContext';
13
- import { getAvailableTemplates } from '@bendyline/squisq/doc';
14
- import { suggestIcons, resolveIcon, iconGlyph } from '@bendyline/squisq/icons';
15
- import { SQUISQ_MEDIA_MIME, parseSquisqMediaPayload } from './mediaDragMime';
16
- // Use locally installed monaco-editor instead of CDN.
17
- //
18
- // NOTE: By default this imports the full monaco-editor with all 80+ languages
19
- // and workers (~9MB). Consumers can dramatically reduce bundle size by aliasing
20
- // 'monaco-editor' to a slim entry in their bundler config. For example with Vite:
21
- //
22
- // resolve: { alias: [{ find: /^monaco-editor$/, replacement: './monaco-slim.ts' }] }
23
- //
24
- // Where monaco-slim.ts re-exports 'monaco-editor/esm/vs/editor/editor.api' plus
25
- // only the language contributions needed (e.g. markdown, javascript, etc.).
26
- loader.config({ monaco });
27
- // Squisq Monaco themes: same syntax highlighting as vs / vs-dark, but with
28
- // Monaco's internal gutter (line numbers + folding margin) and overview
29
- // ruler tinted to match the side-pane "desk" colors so the canvas's
30
- // internal furniture blends with its surroundings. The seam color is the
31
- // 1px line Monaco draws between the white canvas and the overview ruler;
32
- // matches the `::after` border on `.margin` so both sides of the canvas
33
- // frame look the same.
34
- const SQUISQ_LIGHT_GUTTER = '#dcd8d0';
35
- const SQUISQ_DARK_GUTTER = '#0f1219';
36
- const SQUISQ_LIGHT_SEAM = '#b0a99a';
37
- const SQUISQ_DARK_SEAM = '#2a3144';
38
- const SQUISQ_THEMES = {
39
- vs: 'squisq-light',
40
- 'vs-dark': 'squisq-dark',
41
- };
42
- /**
43
- * Raw markdown editor using Monaco Editor.
44
- * Binds to the shared EditorContext for source synchronization.
45
- */
46
- export function RawEditor({ theme = 'vs', minimap = false, fontSize = 14, wordWrap = 'on', className, submitOnEnter, readOnly = false, }) {
47
- const { markdownSource, setMarkdownSource, setMonacoEditor, language, mentionProvider } = useEditorContext();
48
- const editorRef = useRef(null);
49
- const isExternalUpdate = useRef(false);
50
- const completionDisposable = useRef(null);
51
- const mentionCompletionDisposable = useRef(null);
52
- const iconCompletionDisposable = useRef(null);
53
- const iconGlyphDecorations = useRef(null);
54
- const dropCleanupRef = useRef(null);
55
- const keyDisposable = useRef(null);
56
- // Ref so the keydown handler always sees the latest callback.
57
- const submitOnEnterRef = useRef(submitOnEnter);
58
- useEffect(() => {
59
- submitOnEnterRef.current = submitOnEnter;
60
- }, [submitOnEnter]);
61
- // Ref so the completion provider — registered once at mount — always
62
- // sees the latest mentionProvider without needing to unregister.
63
- const mentionProviderRef = useRef(mentionProvider);
64
- useEffect(() => {
65
- mentionProviderRef.current = mentionProvider;
66
- }, [mentionProvider]);
67
- const handleBeforeMount = useCallback((monaco) => {
68
- monaco.editor.defineTheme('squisq-light', {
69
- base: 'vs',
70
- inherit: true,
71
- rules: [],
72
- colors: {
73
- 'editorGutter.background': SQUISQ_LIGHT_GUTTER,
74
- 'editorOverviewRuler.background': SQUISQ_LIGHT_GUTTER,
75
- 'editorOverviewRuler.border': SQUISQ_LIGHT_SEAM,
76
- 'minimap.background': SQUISQ_LIGHT_GUTTER,
77
- },
78
- });
79
- monaco.editor.defineTheme('squisq-dark', {
80
- base: 'vs-dark',
81
- inherit: true,
82
- rules: [],
83
- colors: {
84
- 'editorGutter.background': SQUISQ_DARK_GUTTER,
85
- 'editorOverviewRuler.background': SQUISQ_DARK_GUTTER,
86
- 'editorOverviewRuler.border': SQUISQ_DARK_SEAM,
87
- 'minimap.background': SQUISQ_DARK_GUTTER,
88
- },
89
- });
90
- }, []);
91
- const handleMount = useCallback((editor, monaco) => {
92
- editorRef.current = editor;
93
- setMonacoEditor(editor);
94
- editor.focus();
95
- // Dispose any previous completion provider (from a prior mount)
96
- completionDisposable.current?.dispose();
97
- completionDisposable.current = null;
98
- mentionCompletionDisposable.current?.dispose();
99
- mentionCompletionDisposable.current = null;
100
- iconCompletionDisposable.current?.dispose();
101
- iconCompletionDisposable.current = null;
102
- // Register the `{[template]}` completion provider only for markdown
103
- // files — it's meaningless for TypeScript, JSON, Python, etc.
104
- if (language === 'markdown') {
105
- const templates = getAvailableTemplates();
106
- completionDisposable.current = monaco.languages.registerCompletionItemProvider('markdown', {
107
- triggerCharacters: ['['],
108
- provideCompletionItems(model, position) {
109
- const lineContent = model.getLineContent(position.lineNumber);
110
- // Only trigger inside a heading line that has {[ before the cursor
111
- if (!/^#{1,6}\s/.test(lineContent))
112
- return { suggestions: [] };
113
- const textBeforeCursor = lineContent.substring(0, position.column - 1);
114
- const textAfterCursor = lineContent.substring(position.column - 1);
115
- const bracketIdx = textBeforeCursor.lastIndexOf('{[');
116
- if (bracketIdx === -1)
117
- return { suggestions: [] };
118
- // When Monaco's bracket auto-pair has already produced the
119
- // closing `]}` we just leave it in place and skip the
120
- // suffix — otherwise accepting `sectionHeader` on
121
- // `{[gi]}` would yield `{[sectionHeader]}]}`.
122
- const closingMatch = textAfterCursor.match(/^\]\}/);
123
- const suffix = closingMatch ? '' : ']}';
124
- const startCol = bracketIdx + 3; // after {[
125
- const range = new monaco.Range(position.lineNumber, startCol, position.lineNumber, position.column);
126
- const suggestions = templates.map((name) => ({
127
- label: name,
128
- filterText: name,
129
- kind: monaco.languages.CompletionItemKind.Value,
130
- insertText: name + suffix,
131
- range,
132
- detail: 'Block template',
133
- sortText: name,
134
- }));
135
- return { suggestions };
136
- },
137
- });
138
- // `@mention` completion — queries the shared MentionProvider. Keep
139
- // this in its own registration so we can dispose it independently
140
- // of the template provider, and so the trigger character is just
141
- // `@` (not `[`).
142
- mentionCompletionDisposable.current = monaco.languages.registerCompletionItemProvider('markdown', {
143
- triggerCharacters: ['@'],
144
- async provideCompletionItems(model, position) {
145
- const provider = mentionProviderRef.current;
146
- if (!provider)
147
- return { suggestions: [] };
148
- const lineContent = model.getLineContent(position.lineNumber);
149
- const textBeforeCursor = lineContent.substring(0, position.column - 1);
150
- const atIdx = textBeforeCursor.lastIndexOf('@');
151
- if (atIdx === -1)
152
- return { suggestions: [] };
153
- // `@` must be at line start or preceded by whitespace/punct —
154
- // skip e.g. email addresses like `foo@bar`.
155
- if (atIdx > 0) {
156
- const prevChar = textBeforeCursor[atIdx - 1];
157
- if (!/[\s\p{P}]/u.test(prevChar))
158
- return { suggestions: [] };
159
- }
160
- const query = textBeforeCursor.slice(atIdx + 1);
161
- // Only fire for short queries — once the user has typed
162
- // a full word, the popover gets noisy.
163
- if (query.length > 40)
164
- return { suggestions: [] };
165
- if (/\s/.test(query))
166
- return { suggestions: [] };
167
- let candidates;
168
- try {
169
- candidates = await provider(query);
170
- }
171
- catch {
172
- return { suggestions: [] };
173
- }
174
- const range = new monaco.Range(position.lineNumber, atIdx + 1, position.lineNumber, position.column);
175
- return {
176
- suggestions: candidates.map((c) => ({
177
- label: `@${c.label}`,
178
- kind: monaco.languages.CompletionItemKind.User,
179
- insertText: `@[${c.label}](${c.scheme}:${c.id}) `,
180
- range,
181
- ...(c.description ? { detail: c.description } : {}),
182
- sortText: c.label,
183
- })),
184
- };
185
- },
186
- });
187
- // FontAwesome icon completion. Fires inside any `{[…]}` opener
188
- // anywhere in the doc (not just headings — icons are inline).
189
- // Suggestions cover the whole FA Free catalog filtered by the
190
- // partial token; we cap at 50 to keep the popup readable. The
191
- // template provider above still handles heading lines, so on
192
- // a `## Title {[…]}` the user sees both template names AND
193
- // icons interleaved by the regular Monaco filter.
194
- iconCompletionDisposable.current = monaco.languages.registerCompletionItemProvider('markdown', {
195
- triggerCharacters: ['['],
196
- provideCompletionItems(model, position) {
197
- const lineContent = model.getLineContent(position.lineNumber);
198
- const textBeforeCursor = lineContent.substring(0, position.column - 1);
199
- const textAfterCursor = lineContent.substring(position.column - 1);
200
- const bracketIdx = textBeforeCursor.lastIndexOf('{[');
201
- if (bracketIdx === -1)
202
- return { suggestions: [] };
203
- // Bail if any `]` already closes this annotation between
204
- // `{[` and the cursor — we'd be past the token, not in it.
205
- const between = textBeforeCursor.slice(bracketIdx + 2);
206
- if (between.includes(']'))
207
- return { suggestions: [] };
208
- // Tokens are alphanumeric + `-_:`; anything else means
209
- // we're not inside an icon (probably a code/link bracket).
210
- if (between && !/^[a-zA-Z0-9_:-]*$/.test(between)) {
211
- return { suggestions: [] };
212
- }
213
- const query = between.toLowerCase();
214
- // When Monaco's bracket auto-pair has already produced a
215
- // closing `]}` we don't want to insert another — but we
216
- // also don't want to consume the existing one, since
217
- // then we'd have to re-emit it and the round-trip is
218
- // brittle. Leave the closing in place and just insert
219
- // the bare token; if no closing exists yet, append it.
220
- const closingMatch = textAfterCursor.match(/^\]\}/);
221
- const suffix = closingMatch ? '' : ']}';
222
- const range = new monaco.Range(position.lineNumber, bracketIdx + 3, // after `{[`
223
- position.lineNumber, position.column);
224
- const top = suggestIcons(query, 50);
225
- return {
226
- suggestions: top.map((m, i) => ({
227
- // Embed the FA codepoint as the first character of
228
- // the label. CSS targets the suggest widget with
229
- // FontAwesome as a font fallback, so the codepoint
230
- // renders as the glyph and the name renders in the
231
- // editor's normal font.
232
- label: {
233
- label: `${iconGlyph(m.entry)} ${m.token}`,
234
- description: `fa-${m.entry.family}`,
235
- },
236
- // `filterText` excludes the glyph + spacing so Monaco
237
- // filters against the actual icon name only.
238
- filterText: m.token,
239
- kind: monaco.languages.CompletionItemKind.Constant,
240
- insertText: `${m.token}${suffix}`,
241
- range,
242
- detail: m.entry.label,
243
- // Documentation pane (rendered when Monaco's
244
- // suggestion preview is expanded) shows a large
245
- // version of the glyph alongside the canonical token.
246
- documentation: {
247
- value: `<i class="fa-${m.entry.family} fa-${m.entry.name}" style="font-size: 2em; display: inline-block; margin-right: 8px; vertical-align: middle"></i> **${m.token}** *(${m.entry.label})*`,
248
- isTrusted: true,
249
- supportHtml: true,
250
- },
251
- // Sort key: 1-digit score prefix keeps "starts with"
252
- // matches above "contains" / keyword matches.
253
- sortText: `${m.score}${String(i).padStart(4, '0')}`,
254
- })),
255
- };
256
- },
257
- });
258
- }
259
- // Chat-composer mode: intercept Enter before Monaco inserts a newline.
260
- // Cmd/Ctrl+Enter falls through so the native newline still works.
261
- keyDisposable.current?.dispose();
262
- keyDisposable.current = editor.onKeyDown((e) => {
263
- if (e.keyCode !== monaco.KeyCode.Enter)
264
- return;
265
- if (!submitOnEnterRef.current)
266
- return;
267
- if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey)
268
- return;
269
- e.preventDefault();
270
- e.stopPropagation();
271
- submitOnEnterRef.current();
272
- });
273
- // Attach native drop listeners for in-app MediaBin drags. Monaco's own
274
- // drop handling doesn't know about our custom MIME type, so we insert
275
- // markdown image syntax explicitly in the capture phase.
276
- dropCleanupRef.current?.();
277
- const domNode = editor.getDomNode();
278
- if (domNode) {
279
- const onDragOver = (e) => {
280
- if (e.dataTransfer?.types.includes(SQUISQ_MEDIA_MIME)) {
281
- e.preventDefault();
282
- e.dataTransfer.dropEffect = 'copy';
283
- }
284
- };
285
- const onDrop = (e) => {
286
- const dt = e.dataTransfer;
287
- if (!dt)
288
- return;
289
- const raw = dt.getData(SQUISQ_MEDIA_MIME);
290
- if (!raw)
291
- return;
292
- const payload = parseSquisqMediaPayload(raw);
293
- if (!payload || !payload.mimeType.startsWith('image/'))
294
- return;
295
- e.preventDefault();
296
- e.stopPropagation();
297
- const target = editor.getTargetAtClientPoint(e.clientX, e.clientY);
298
- const position = target?.position ?? editor.getPosition();
299
- if (!position)
300
- return;
301
- const markdown = `![${payload.alt}](${payload.name})`;
302
- editor.executeEdits('squisq-media-drop', [
303
- {
304
- range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column),
305
- text: markdown,
306
- forceMoveMarkers: true,
307
- },
308
- ]);
309
- editor.focus();
310
- };
311
- domNode.addEventListener('dragover', onDragOver, true);
312
- domNode.addEventListener('drop', onDrop, true);
313
- dropCleanupRef.current = () => {
314
- domNode.removeEventListener('dragover', onDragOver, true);
315
- domNode.removeEventListener('drop', onDrop, true);
316
- };
317
- }
318
- }, [setMonacoEditor, language]);
319
- // Unregister on unmount
320
- useEffect(() => {
321
- return () => {
322
- setMonacoEditor(null);
323
- completionDisposable.current?.dispose();
324
- completionDisposable.current = null;
325
- mentionCompletionDisposable.current?.dispose();
326
- mentionCompletionDisposable.current = null;
327
- iconCompletionDisposable.current?.dispose();
328
- iconCompletionDisposable.current = null;
329
- iconGlyphDecorations.current?.clear();
330
- iconGlyphDecorations.current = null;
331
- dropCleanupRef.current?.();
332
- dropCleanupRef.current = null;
333
- keyDisposable.current?.dispose();
334
- keyDisposable.current = null;
335
- };
336
- }, [setMonacoEditor]);
337
- const handleChange = useCallback((value) => {
338
- if (isExternalUpdate.current)
339
- return;
340
- if (value !== undefined) {
341
- setMarkdownSource(value);
342
- }
343
- }, [setMarkdownSource]);
344
- // When external changes happen (e.g. from WYSIWYG), update Monaco
345
- useEffect(() => {
346
- const editor = editorRef.current;
347
- if (editor) {
348
- const currentValue = editor.getValue();
349
- if (currentValue !== markdownSource) {
350
- isExternalUpdate.current = true;
351
- editor.setValue(markdownSource);
352
- isExternalUpdate.current = false;
353
- }
354
- }
355
- }, [markdownSource]);
356
- // ── Inline FontAwesome glyph decorations ────────────
357
- // Walk the markdown source on every change, find each resolvable
358
- // `{[icon-name]}` span, and overlay the actual glyph (via Monaco's
359
- // `before:` content decoration) just before the brackets. The CSS
360
- // classes `.fa-glyph-decoration-<family>` set the per-family font
361
- // and weight; the codepoint character is the decoration's content.
362
- useEffect(() => {
363
- const editor = editorRef.current;
364
- if (!editor)
365
- return;
366
- if (language !== 'markdown')
367
- return;
368
- const model = editor.getModel();
369
- if (!model)
370
- return;
371
- const decorations = [];
372
- const lines = model.getLineCount();
373
- const re = /\{\[([a-zA-Z0-9_:-]+)\]\}/g;
374
- for (let line = 1; line <= lines; line++) {
375
- const text = model.getLineContent(line);
376
- re.lastIndex = 0;
377
- let match;
378
- while ((match = re.exec(text)) !== null) {
379
- const icon = resolveIcon(match[1]);
380
- if (!icon)
381
- continue;
382
- const glyph = iconGlyph(icon);
383
- if (!glyph)
384
- continue;
385
- // Position the decoration as a zero-width range at the `{`
386
- // of the matched token. `before.contentText` renders the
387
- // glyph as content prepended visually to that position.
388
- const col = match.index + 1; // Monaco columns are 1-based
389
- decorations.push({
390
- range: new monaco.Range(line, col, line, col),
391
- options: {
392
- before: {
393
- content: glyph,
394
- inlineClassName: `fa-glyph-decoration-${icon.family}`,
395
- },
396
- },
397
- });
398
- }
399
- }
400
- if (!iconGlyphDecorations.current) {
401
- iconGlyphDecorations.current = editor.createDecorationsCollection(decorations);
402
- }
403
- else {
404
- iconGlyphDecorations.current.set(decorations);
405
- }
406
- }, [markdownSource, language]);
407
- const effectiveTheme = SQUISQ_THEMES[theme] ?? theme;
408
- return (_jsx("div", { className: className, style: { width: '100%', height: '100%' }, "data-testid": "raw-editor", children: _jsx(Editor, { defaultLanguage: language, value: markdownSource, theme: effectiveTheme, beforeMount: handleBeforeMount, onMount: handleMount, onChange: handleChange, options: {
409
- fontSize,
410
- wordWrap,
411
- minimap: { enabled: minimap },
412
- lineNumbers: 'on',
413
- scrollBeyondLastLine: false,
414
- automaticLayout: true,
415
- tabSize: 2,
416
- renderWhitespace: 'selection',
417
- bracketPairColorization: { enabled: true },
418
- guides: { indentation: true },
419
- padding: { top: 12, bottom: 12 },
420
- // Markdown's tokenizer classifies most body text as "string"
421
- // or "comment" context, which suppresses `quickSuggestions`
422
- // by default. Enable in all three so our `{[icon]}` and
423
- // `@mention` typeaheads keep firing as the user types past
424
- // the trigger character.
425
- quickSuggestions: { other: true, comments: true, strings: true },
426
- suggestOnTriggerCharacters: true,
427
- // Breathing room between the gutter and the first character.
428
- // Done via Monaco's own option so cursor + hit-testing stay in
429
- // sync — CSS-padding `.view-lines` shifts the text but not the
430
- // cursors layer, which causes the cursor to drift left of the
431
- // model column. Monaco's default is 10. We set 22 (12 extra),
432
- // and CSS paints the rightmost 12px of the gutter as canvas
433
- // color so the breathing room looks like it sits *inside* the
434
- // canvas rather than widening the gutter.
435
- lineDecorationsWidth: 22,
436
- readOnly,
437
- domReadOnly: readOnly,
438
- } }) }));
439
- }
440
- //# sourceMappingURL=RawEditor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RawEditor.js","sourceRoot":"","sources":["../src/RawEditor.tsx"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * RecorderEntry — toolbar slot that wires `RecorderPanel` from
3
- * `@bendyline/squisq-recorder-react` into the editor.
4
- *
5
- * Reads `mediaProvider`, `workspaceContainer`, `activeView`,
6
- * `tiptapEditor`, and the markdown editing helpers from
7
- * `useEditorContext()`. On a successful save it:
8
- * - inserts an HTML5 media element at the cursor — `<video>` for
9
- * camera / screen recordings, `<audio>` for narration / mic
10
- * recordings — which the markdown renderer turns into an inline
11
- * `<InlineVideoPlayer>` / `<InlineAudioPlayer>` with native
12
- * controls;
13
- * - for narration, also annotates the nearest heading with
14
- * `{[audio=filename]}` so `resolveAudioMapping()` continues to tie
15
- * the recording to that block during slideshow playback;
16
- * - bumps `mediaRevision` so any blob URLs the media bin cached for
17
- * the previous file list are invalidated.
18
- *
19
- * The component returns `null` when no `mediaProvider` is wired —
20
- * recording without a place to write the captured bytes is a
21
- * misconfiguration, not a feature.
22
- */
23
- export declare function RecorderEntry(): import("react/jsx-runtime").JSX.Element | null;
24
- //# sourceMappingURL=RecorderEntry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecorderEntry.d.ts","sourceRoot":"","sources":["../src/RecorderEntry.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAkDH,wBAAgB,aAAa,mDA4F5B"}