@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 +0,0 @@
1
- {"version":3,"file":"LayersPanel.d.ts","sourceRoot":"","sources":["../../src/imageEditor/LayersPanel.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAWpD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,YAAY,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAyG/E"}
@@ -1,43 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ChevronDownIcon, ChevronUpIcon, CloseIcon, EyeIcon, EyeOffIcon, LockIcon, UnlockIcon, } from './icons.js';
3
- export function LayersPanel({ doc, selectedLayerId, dispatch }) {
4
- // Visual order: top of stack first.
5
- const ordered = doc.layers.slice().reverse();
6
- return (_jsxs("div", { className: "squisq-image-editor-layers", "data-testid": "image-editor-layers", children: [_jsx("div", { className: "squisq-image-editor-panel-header", children: "Layers" }), _jsxs("ul", { className: "squisq-image-editor-layer-list", children: [ordered.length === 0 && _jsx("li", { className: "squisq-image-editor-layer-empty", children: "No layers yet" }), ordered.map((layer) => {
7
- const visible = layer.visible !== false;
8
- const locked = !!layer.locked;
9
- const stackIndex = doc.layers.findIndex((l) => l.id === layer.id);
10
- const canMoveUp = stackIndex < doc.layers.length - 1;
11
- const canMoveDown = stackIndex > 0;
12
- const isSelected = selectedLayerId === layer.id;
13
- return (_jsxs("li", { className: [
14
- 'squisq-image-editor-layer-item',
15
- isSelected ? 'is-selected' : '',
16
- visible ? '' : 'is-hidden',
17
- ]
18
- .filter(Boolean)
19
- .join(' '), children: [_jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", onClick: () => dispatch({
20
- type: 'update-layer',
21
- layerId: layer.id,
22
- patch: { visible: !visible },
23
- }), "aria-label": visible ? 'Hide layer' : 'Show layer', title: visible ? 'Hide layer' : 'Show layer', children: visible ? _jsx(EyeIcon, {}) : _jsx(EyeOffIcon, {}) }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", onClick: () => dispatch({
24
- type: 'update-layer',
25
- layerId: layer.id,
26
- patch: { locked: !locked },
27
- }), "aria-label": locked ? 'Unlock layer' : 'Lock layer', title: locked ? 'Unlock layer' : 'Lock layer', children: locked ? _jsx(LockIcon, {}) : _jsx(UnlockIcon, {}) }), _jsxs("button", { type: "button", className: "squisq-image-editor-layer-name", onClick: () => dispatch({ type: 'select', layerId: layer.id }), children: [layer.name ?? defaultLayerName(layer), _jsx("span", { className: "squisq-image-editor-layer-kind", children: layer.type })] }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", disabled: !canMoveUp, onClick: () => dispatch({ type: 'reorder-layer', layerId: layer.id, toIndex: stackIndex + 1 }), "aria-label": "Move layer up", title: "Move layer up", children: _jsx(ChevronUpIcon, {}) }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", disabled: !canMoveDown, onClick: () => dispatch({ type: 'reorder-layer', layerId: layer.id, toIndex: stackIndex - 1 }), "aria-label": "Move layer down", title: "Move layer down", children: _jsx(ChevronDownIcon, {}) }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", onClick: () => dispatch({ type: 'remove-layer', layerId: layer.id }), "aria-label": "Delete layer", title: "Delete layer", children: _jsx(CloseIcon, {}) })] }, layer.id));
28
- })] })] }));
29
- }
30
- function defaultLayerName(layer) {
31
- if (layer.type === 'text') {
32
- const c = layer.content;
33
- return c?.text?.split('\n')[0]?.slice(0, 24) || 'Text';
34
- }
35
- if (layer.type === 'image')
36
- return 'Image';
37
- if (layer.type === 'shape') {
38
- const c = layer.content;
39
- return c?.shape ? c.shape[0].toUpperCase() + c.shape.slice(1) : 'Shape';
40
- }
41
- return layer.type;
42
- }
43
- //# sourceMappingURL=LayersPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LayersPanel.js","sourceRoot":"","sources":["../../src/imageEditor/LayersPanel.tsx"],"names":[],"mappings":";AAQA,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAQpB,MAAM,UAAU,WAAW,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAoB;IAC9E,oCAAoC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;IAE7C,OAAO,CACL,eAAK,SAAS,EAAC,4BAA4B,iBAAa,qBAAqB,aAC3E,cAAK,SAAS,EAAC,kCAAkC,uBAAa,EAC9D,cAAI,SAAS,EAAC,gCAAgC,aAC3C,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,aAAI,SAAS,EAAC,iCAAiC,8BAAmB,EAC1F,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC;wBACxC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;wBAClE,MAAM,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACrD,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;wBACnC,MAAM,UAAU,GAAG,eAAe,KAAK,KAAK,CAAC,EAAE,CAAC;wBAEhD,OAAO,CACL,cAEE,SAAS,EAAE;gCACT,gCAAgC;gCAChC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gCAC/B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;6BAC3B;iCACE,MAAM,CAAC,OAAO,CAAC;iCACf,IAAI,CAAC,GAAG,CAAC,aAEZ,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC;wCACP,IAAI,EAAE,cAAc;wCACpB,OAAO,EAAE,KAAK,CAAC,EAAE;wCACjB,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;qCAC7B,CAAC,gBAEQ,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,YAE3C,OAAO,CAAC,CAAC,CAAC,KAAC,OAAO,KAAG,CAAC,CAAC,CAAC,KAAC,UAAU,KAAG,GAChC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC;wCACP,IAAI,EAAE,cAAc;wCACpB,OAAO,EAAE,KAAK,CAAC,EAAE;wCACjB,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE;qCAC3B,CAAC,gBAEQ,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,EAClD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,YAE5C,MAAM,CAAC,CAAC,CAAC,KAAC,QAAQ,KAAG,CAAC,CAAC,CAAC,KAAC,UAAU,KAAG,GAChC,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAE7D,KAAK,CAAC,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,EACtC,eAAM,SAAS,EAAC,gCAAgC,YAAE,KAAK,CAAC,IAAI,GAAQ,IAC7D,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,gBAEtE,eAAe,EAC1B,KAAK,EAAC,eAAe,YAErB,KAAC,aAAa,KAAG,GACV,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,QAAQ,EAAE,CAAC,WAAW,EACtB,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,gBAEtE,iBAAiB,EAC5B,KAAK,EAAC,iBAAiB,YAEvB,KAAC,eAAe,KAAG,GACZ,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,gBACzD,cAAc,EACzB,KAAK,EAAC,cAAc,YAEpB,KAAC,SAAS,KAAG,GACN,KA/EJ,KAAK,CAAC,EAAE,CAgFV,CACN,CAAC;oBACJ,CAAC,CAAC,IACC,IACD,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA0C;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAwC,CAAC;QACzD,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAyC,CAAC;QAC1D,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * PropertiesPanel — kind-aware editors for the canvas and the selected
3
- * layer. Plain controls only (no JsonEditor dependency) so the panel
4
- * stays focused on the image-editing vocabulary.
5
- */
6
- import type { ImageEditDoc } from '@bendyline/squisq/schemas';
7
- import type { ImageEditorAction } from './state.js';
8
- export interface PropertiesPanelProps {
9
- doc: ImageEditDoc;
10
- selectedLayerId: string | null;
11
- dispatch: (action: ImageEditorAction) => void;
12
- }
13
- export declare function PropertiesPanel({ doc, selectedLayerId, dispatch }: PropertiesPanelProps): import("react/jsx-runtime").JSX.Element;
14
- //# sourceMappingURL=PropertiesPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertiesPanel.d.ts","sourceRoot":"","sources":["../../src/imageEditor/PropertiesPanel.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,YAAY,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAgBvF"}
@@ -1,97 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { NoneIcon } from './icons.js';
3
- export function PropertiesPanel({ doc, selectedLayerId, dispatch }) {
4
- const selected = selectedLayerId
5
- ? (doc.layers.find((l) => l.id === selectedLayerId) ?? null)
6
- : null;
7
- return (_jsxs("div", { className: "squisq-image-editor-properties", "data-testid": "image-editor-properties", children: [_jsx("div", { className: "squisq-image-editor-panel-header", children: "Properties" }), _jsx(CanvasSection, { doc: doc, dispatch: dispatch }), selected ? (_jsx(LayerSection, { layer: selected, dispatch: dispatch })) : (_jsx("div", { className: "squisq-image-editor-properties-empty", children: "No layer selected" }))] }));
8
- }
9
- // ============================================
10
- // Canvas section
11
- // ============================================
12
- function CanvasSection({ doc, dispatch, }) {
13
- const setCanvas = (patch) => {
14
- dispatch({ type: 'set-canvas', canvas: { ...doc.canvas, ...patch } });
15
- };
16
- return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Canvas" }), _jsx(NumberField, { label: "Width", value: doc.canvas.width, min: 1, onChange: (v) => setCanvas({ width: Math.round(v) }) }), _jsx(NumberField, { label: "Height", value: doc.canvas.height, min: 1, onChange: (v) => setCanvas({ height: Math.round(v) }) }), _jsx(ColorField, { label: "Background", value: doc.canvas.background ?? 'transparent', allowTransparent: true, onChange: (v) => setCanvas({ background: v }) })] }));
17
- }
18
- // ============================================
19
- // Layer section
20
- // ============================================
21
- function LayerSection({ layer, dispatch, }) {
22
- const update = (patch) => dispatch({ type: 'update-layer', layerId: layer.id, patch });
23
- return (_jsxs(_Fragment, { children: [_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Layer" }), _jsx(TextField, { label: "Name", value: layer.name ?? '', onChange: (name) => update({ name }) }), _jsx(NumberField, { label: "Opacity", value: layer.opacity ?? 1, min: 0, max: 1, step: 0.05, onChange: (opacity) => update({ opacity }) })] }), _jsx(PositionFields, { layer: layer, update: update }), layer.type === 'image' && _jsx(ImageFields, { layer: layer, update: update }), layer.type === 'text' && _jsx(TextFields, { layer: layer, update: update }), layer.type === 'shape' && _jsx(ShapeFields, { layer: layer, update: update })] }));
24
- }
25
- function PositionFields({ layer, update, }) {
26
- const p = layer.position;
27
- const setPos = (patch) => update({ position: { ...p, ...patch } });
28
- return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Position" }), _jsx(NumberField, { label: "X", value: typeof p.x === 'number' ? p.x : 0, onChange: (x) => setPos({ x: Math.round(x) }) }), _jsx(NumberField, { label: "Y", value: typeof p.y === 'number' ? p.y : 0, onChange: (y) => setPos({ y: Math.round(y) }) }), _jsx(NumberField, { label: "Width", value: typeof p.width === 'number' ? p.width : 0, onChange: (width) => setPos({ width: Math.round(width) }) }), _jsx(NumberField, { label: "Height", value: typeof p.height === 'number' ? p.height : 0, onChange: (height) => setPos({ height: Math.round(height) }) })] }));
29
- }
30
- function ImageFields({ layer, update, }) {
31
- const c = layer.content;
32
- const setContent = (patch) => update({ content: { ...c, ...patch } });
33
- return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Image" }), _jsx(TextField, { label: "Alt", value: c.alt ?? '', onChange: (alt) => setContent({ alt }) }), _jsx(SelectField, { label: "Fit", value: c.fit ?? 'fill', options: [
34
- ['fill', 'Fill'],
35
- ['contain', 'Contain'],
36
- ['cover', 'Cover'],
37
- ], onChange: (fit) => setContent({ fit: fit }) })] }));
38
- }
39
- function TextFields({ layer, update, }) {
40
- const c = layer.content;
41
- const setContent = (patch) => update({ content: { ...c, ...patch } });
42
- const setStyle = (patch) => setContent({ style: { ...c.style, ...patch } });
43
- return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Text" }), _jsx(TextAreaField, { label: "Text", value: c.text, onChange: (text) => setContent({ text }) }), _jsx(NumberField, { label: "Font size", value: c.style.fontSize, min: 1, onChange: (fontSize) => setStyle({ fontSize: Math.round(fontSize) }) }), _jsx(ColorField, { label: "Color", value: c.style.color, onChange: (color) => setStyle({ color }) }), _jsx(SelectField, { label: "Weight", value: c.style.fontWeight ?? 'normal', options: [
44
- ['normal', 'Normal'],
45
- ['bold', 'Bold'],
46
- ], onChange: (fontWeight) => setStyle({ fontWeight: fontWeight }) }), _jsx(SelectField, { label: "Align", value: c.style.textAlign ?? 'left', options: [
47
- ['left', 'Left'],
48
- ['center', 'Center'],
49
- ['right', 'Right'],
50
- ], onChange: (textAlign) => setStyle({ textAlign: textAlign }) })] }));
51
- }
52
- function ShapeFields({ layer, update, }) {
53
- const c = layer.content;
54
- const setContent = (patch) => update({ content: { ...c, ...patch } });
55
- return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Shape" }), _jsx(SelectField, { label: "Shape", value: c.shape, options: [
56
- ['rect', 'Rectangle'],
57
- ['circle', 'Circle'],
58
- ['line', 'Line'],
59
- ], onChange: (shape) => setContent({ shape: shape }) }), _jsx(ColorField, { label: "Fill", value: c.fill ?? '#000000', allowTransparent: true, onChange: (fill) => setContent({ fill }) }), _jsx(ColorField, { label: "Stroke", value: c.stroke ?? '#000000', allowTransparent: true, onChange: (stroke) => setContent({ stroke }) }), _jsx(NumberField, { label: "Stroke width", value: c.strokeWidth ?? 0, min: 0, onChange: (strokeWidth) => setContent({ strokeWidth }) }), c.shape === 'rect' && (_jsx(NumberField, { label: "Corner radius", value: c.borderRadius ?? 0, min: 0, onChange: (borderRadius) => setContent({ borderRadius: Math.round(borderRadius) }) }))] }));
60
- }
61
- // ============================================
62
- // Field primitives
63
- // ============================================
64
- function NumberField({ label, value, min, max, step, onChange, }) {
65
- return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsx("input", { type: "number", value: Number.isFinite(value) ? value : 0, min: min, max: max, step: step ?? 1, onChange: (e) => {
66
- const n = Number(e.target.value);
67
- if (Number.isFinite(n))
68
- onChange(n);
69
- } })] }));
70
- }
71
- function TextField({ label, value, onChange, }) {
72
- return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsx("input", { type: "text", value: value, onChange: (e) => onChange(e.target.value) })] }));
73
- }
74
- function TextAreaField({ label, value, onChange, }) {
75
- return (_jsxs("label", { className: "squisq-image-editor-field squisq-image-editor-field--multiline", children: [_jsx("span", { children: label }), _jsx("textarea", { rows: 3, value: value, onChange: (e) => onChange(e.target.value) })] }));
76
- }
77
- function SelectField({ label, value, options, onChange, }) {
78
- return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsx("select", { value: value, onChange: (e) => onChange(e.target.value), children: options.map(([v, l]) => (_jsx("option", { value: v, children: l }, v))) })] }));
79
- }
80
- function ColorField({ label, value, allowTransparent, onChange, }) {
81
- const isTransparent = value === 'transparent' || value === 'none';
82
- return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsxs("span", { className: "squisq-image-editor-color-row", children: [_jsx("input", { type: "color", value: isTransparent ? '#000000' : normalizeColor(value), onChange: (e) => onChange(e.target.value) }), _jsx("input", { type: "text", value: value, onChange: (e) => onChange(e.target.value), spellCheck: false }), allowTransparent && (_jsx("button", { type: "button", onClick: () => onChange('transparent'), title: "Set transparent", "aria-label": "Set transparent", className: "squisq-image-editor-color-clear", children: _jsx(NoneIcon, {}) }))] })] }));
83
- }
84
- function normalizeColor(v) {
85
- if (/^#[0-9a-f]{6}$/i.test(v))
86
- return v;
87
- if (/^#[0-9a-f]{3}$/i.test(v)) {
88
- return ('#' +
89
- v
90
- .slice(1)
91
- .split('')
92
- .map((c) => c + c)
93
- .join(''));
94
- }
95
- return '#000000';
96
- }
97
- //# sourceMappingURL=PropertiesPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertiesPanel.js","sourceRoot":"","sources":["../../src/imageEditor/PropertiesPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Toolbar — tool selector, layer-creation buttons, file-bin uploader,
3
- * and a Save/Export button. Versioning controls live in
4
- * `<ImageEditor>` so the toolbar stays purely about authoring tools.
5
- */
6
- import type { ImageEditDoc } from '@bendyline/squisq/schemas';
7
- import type { ImageEditorAction, ImageEditorTool } from './state.js';
8
- export interface ToolbarProps {
9
- doc: ImageEditDoc;
10
- tool: ImageEditorTool;
11
- dispatch: (a: ImageEditorAction) => void;
12
- /** Upload an image asset and return its sidecar-relative path. */
13
- uploadAsset: (file: Blob, suggestedName?: string) => Promise<string>;
14
- /** Trigger an export (PNG/JPEG/WebP) of the flattened canvas. */
15
- onExport: (format: 'png' | 'jpeg' | 'webp') => void;
16
- /** Force-flush the state.json (host's "save" button). */
17
- onSave?: () => void;
18
- /** Override the Save button label. Default: "Save". */
19
- saveLabel?: string;
20
- /** Override the Save button tooltip. Default: "Save state.json". */
21
- saveTitle?: string;
22
- /**
23
- * Optional extra controls rendered just before the Save / Export
24
- * buttons in the right-aligned tool group. Used by `<ImageEditor>` to
25
- * mount the version-history dropdown when versioning is enabled.
26
- */
27
- extraTools?: React.ReactNode;
28
- }
29
- export declare function Toolbar({ doc, tool, dispatch, uploadAsset, onExport, onSave, saveLabel, saveTitle, extraTools, }: ToolbarProps): import("react/jsx-runtime").JSX.Element;
30
- //# sourceMappingURL=Toolbar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/imageEditor/Toolbar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGrE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACzC,kEAAkE;IAClE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,iEAAiE;IACjE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACpD,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAaD,wBAAgB,OAAO,CAAC,EACtB,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAkB,EAClB,SAA6B,EAC7B,UAAU,GACX,EAAE,YAAY,2CA6Fd"}
@@ -1,108 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Toolbar — tool selector, layer-creation buttons, file-bin uploader,
4
- * and a Save/Export button. Versioning controls live in
5
- * `<ImageEditor>` so the toolbar stays purely about authoring tools.
6
- */
7
- import { useRef, useState, useEffect } from 'react';
8
- import { CropIcon, CursorIcon, PlusIcon, ShapeIcon, TextIcon } from './icons.js';
9
- const TOOLS = [
10
- { id: 'select', icon: _jsx(CursorIcon, {}), title: 'Select / move (V)' },
11
- { id: 'text', icon: _jsx(TextIcon, {}), title: 'Add text (T)' },
12
- { id: 'shape', icon: _jsx(ShapeIcon, {}), title: 'Add shape (S)' },
13
- { id: 'crop', icon: _jsx(CropIcon, {}), title: 'Crop (C)' },
14
- ];
15
- export function Toolbar({ doc, tool, dispatch, uploadAsset, onExport, onSave, saveLabel = 'Save', saveTitle = 'Save state.json', extraTools, }) {
16
- const fileInputRef = useRef(null);
17
- const onFilePicked = async (file) => {
18
- try {
19
- const path = await uploadAsset(file, file.name);
20
- // Place the imported image centered at its native size up to canvas.
21
- const dims = await probeDims(file);
22
- const w = Math.min(dims.width, doc.canvas.width);
23
- const h = Math.min(dims.height, doc.canvas.height);
24
- dispatch({
25
- type: 'add-layer',
26
- layer: {
27
- type: 'image',
28
- name: file.name,
29
- position: {
30
- x: Math.round((doc.canvas.width - w) / 2),
31
- y: Math.round((doc.canvas.height - h) / 2),
32
- width: w,
33
- height: h,
34
- },
35
- content: { src: path, alt: file.name, fit: 'fill' },
36
- },
37
- });
38
- }
39
- catch (err) {
40
- console.warn('[squisq-editor] image upload failed:', err instanceof Error ? err.message : err);
41
- }
42
- };
43
- return (_jsxs("div", { className: "squisq-image-editor-toolbar", "data-testid": "image-editor-toolbar", children: [_jsx("div", { className: "squisq-image-editor-tool-group", role: "radiogroup", "aria-label": "Tools", children: TOOLS.map((t) => (_jsx("button", { type: "button", role: "radio", "aria-checked": tool === t.id, className: ['squisq-image-editor-tool-button', tool === t.id ? 'is-active' : '']
44
- .filter(Boolean)
45
- .join(' '), onClick: () => dispatch({ type: 'set-tool', tool: t.id }), title: t.title, "aria-label": t.title, children: t.icon }, t.id))) }), _jsxs("div", { className: "squisq-image-editor-tool-group", children: [_jsxs("button", { type: "button", className: "squisq-image-editor-tool-button squisq-image-editor-tool-button--with-label", onClick: () => fileInputRef.current?.click(), title: "Import image as new layer", "aria-label": "Import image as new layer", children: [_jsx(PlusIcon, {}), _jsx("span", { children: "Image" })] }), _jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", hidden: true, onChange: (e) => {
46
- const file = e.target.files?.[0];
47
- if (file)
48
- void onFilePicked(file);
49
- e.target.value = '';
50
- } })] }), _jsxs("div", { className: "squisq-image-editor-tool-group squisq-image-editor-tool-group--right", children: [extraTools, onSave && (_jsx("button", { type: "button", className: "squisq-image-editor-tool-button", onClick: onSave, title: saveTitle, children: saveLabel })), _jsx(ExportDropdown, { onExport: onExport })] })] }));
51
- }
52
- /**
53
- * Single export dropdown listing all output formats. Replaces the
54
- * earlier split "Export PNG / Other format…" pair so the toolbar reads
55
- * as one Export control with a stable label and consistent sizing.
56
- */
57
- function ExportDropdown({ onExport }) {
58
- const [open, setOpen] = useState(false);
59
- const wrapRef = useRef(null);
60
- const triggerRef = useRef(null);
61
- useEffect(() => {
62
- if (!open)
63
- return;
64
- function onDocClick(e) {
65
- const t = e.target;
66
- if (!t)
67
- return;
68
- if (wrapRef.current?.contains(t))
69
- return;
70
- setOpen(false);
71
- }
72
- function onKey(e) {
73
- if (e.key === 'Escape')
74
- setOpen(false);
75
- }
76
- document.addEventListener('mousedown', onDocClick);
77
- document.addEventListener('keydown', onKey);
78
- return () => {
79
- document.removeEventListener('mousedown', onDocClick);
80
- document.removeEventListener('keydown', onKey);
81
- };
82
- }, [open]);
83
- const pick = (f) => {
84
- setOpen(false);
85
- onExport(f);
86
- };
87
- return (_jsxs("span", { ref: wrapRef, className: "squisq-image-editor-version-dropdown", children: [_jsxs("button", { ref: triggerRef, type: "button", className: "squisq-image-editor-tool-button squisq-image-editor-tool-button--with-label", onClick: () => setOpen((o) => !o), "aria-haspopup": "menu", "aria-expanded": open, title: "Export image", children: [_jsx("span", { children: "Export" }), _jsx("span", { "aria-hidden": "true", style: { fontSize: '0.8em' }, children: "\u25BE" })] }), open && (_jsx("div", { className: "squisq-image-editor-version-popover", role: "menu", style: { minWidth: 160 }, children: _jsx("ul", { className: "squisq-image-editor-version-popover__list", style: { maxHeight: 'none' }, children: [
88
- { f: 'png', label: 'PNG' },
89
- { f: 'jpeg', label: 'JPEG' },
90
- { f: 'webp', label: 'WebP' },
91
- ].map(({ f, label }) => (_jsx("li", { className: "squisq-image-editor-version-popover__row", children: _jsxs("button", { type: "button", role: "menuitem", className: "squisq-image-editor-tool-button squisq-image-editor-tool-button--menu", onClick: () => pick(f), children: ["Export as ", label] }) }, f))) }) }))] }));
92
- }
93
- function probeDims(file) {
94
- return new Promise((resolve) => {
95
- const url = URL.createObjectURL(file);
96
- const img = new Image();
97
- img.onload = () => {
98
- URL.revokeObjectURL(url);
99
- resolve({ width: img.naturalWidth, height: img.naturalHeight });
100
- };
101
- img.onerror = () => {
102
- URL.revokeObjectURL(url);
103
- resolve({ width: 200, height: 200 });
104
- };
105
- img.src = url;
106
- });
107
- }
108
- //# sourceMappingURL=Toolbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../src/imageEditor/Toolbar.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwBjF,MAAM,KAAK,GAIN;IACH,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAC,UAAU,KAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE;IAClE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,KAAK,EAAE,cAAc,EAAE;IACzD,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAC,SAAS,KAAG,EAAE,KAAK,EAAE,eAAe,EAAE;IAC5D,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,KAAK,EAAE,UAAU,EAAE;CACtD,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,EACtB,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAS,GAAG,MAAM,EAClB,SAAS,GAAG,iBAAiB,EAC7B,UAAU,GACG;IACb,MAAM,YAAY,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAE3D,MAAM,YAAY,GAAG,KAAK,EAAE,IAAU,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,qEAAqE;YACrE,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnD,QAAQ,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE;wBACR,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;wBACzC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1C,KAAK,EAAE,CAAC;wBACR,MAAM,EAAE,CAAC;qBACV;oBACD,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;iBACpD;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CACV,sCAAsC,EACtC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,6BAA6B,iBAAa,sBAAsB,aAC7E,cAAK,SAAS,EAAC,gCAAgC,EAAC,IAAI,EAAC,YAAY,gBAAY,OAAO,YACjF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,IAAI,KAAK,CAAC,CAAC,EAAE,EAC3B,SAAS,EAAE,CAAC,iCAAiC,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC7E,MAAM,CAAC,OAAO,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EACzD,KAAK,EAAE,CAAC,CAAC,KAAK,gBACF,CAAC,CAAC,KAAK,YAElB,CAAC,CAAC,IAAI,IAXF,CAAC,CAAC,EAAE,CAYF,CACV,CAAC,GACE,EAEN,eAAK,SAAS,EAAC,gCAAgC,aAC7C,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,6EAA6E,EACvF,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,EAC5C,KAAK,EAAC,2BAA2B,gBACtB,2BAA2B,aAEtC,KAAC,QAAQ,KAAG,EACZ,mCAAkB,IACX,EACT,gBACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,SAAS,EAChB,MAAM,QACN,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;4BACd,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;4BACjC,IAAI,IAAI;gCAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;4BAClC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;wBACtB,CAAC,GACD,IACE,EAEN,eAAK,SAAS,EAAC,sEAAsE,aAClF,UAAU,EACV,MAAM,IAAI,CACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iCAAiC,EAC3C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,YAEf,SAAS,GACH,CACV,EACD,KAAC,cAAc,IAAC,QAAQ,EAAE,QAAQ,GAAI,IAClC,IACF,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAsD;IACtF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,SAAS,UAAU,CAAC,CAAa;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAqB,CAAC;YAClC,IAAI,CAAC,CAAC;gBAAE,OAAO;YACf,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO;YACzC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,SAAS,KAAK,CAAC,CAAgB;YAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACnD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACtD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,IAAI,GAAG,CAAC,CAA0B,EAAE,EAAE;QAC1C,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CACL,gBAAM,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,sCAAsC,aAClE,kBACE,GAAG,EAAE,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,6EAA6E,EACvF,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,mBACnB,MAAM,mBACL,IAAI,EACnB,KAAK,EAAC,cAAc,aAEpB,oCAAmB,EACnB,8BAAkB,MAAM,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAE9C,IACA,EACR,IAAI,IAAI,CACP,cAAK,SAAS,EAAC,qCAAqC,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YACvF,aAAI,SAAS,EAAC,2CAA2C,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAElF;wBACE,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC1B,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC5B,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;qBAE/B,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACtB,aAAY,SAAS,EAAC,0CAA0C,YAC9D,kBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,SAAS,EAAC,uEAAuE,EACjF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAEX,KAAK,IACT,IARF,CAAC,CASL,CACN,CAAC,GACC,GACD,CACP,IACI,CACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YAChB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE;YACjB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Inline SVG line icons for the image editor chrome. Stroke-based,
3
- * `currentColor`-driven so they pick up `--squisq-image-editor-text` etc.
4
- * automatically. Sized via `font-size`/`em` so they scale with their
5
- * button label. Kept inline (no sprite, no font) so the package has zero
6
- * extra runtime cost and tree-shakes per-icon.
7
- */
8
- import type { SVGProps } from 'react';
9
- type IconProps = Omit<SVGProps<SVGSVGElement>, 'children'>;
10
- export declare function EyeIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
11
- export declare function EyeOffIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
12
- export declare function LockIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
13
- export declare function UnlockIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
14
- export declare function ChevronUpIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
15
- export declare function ChevronDownIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
16
- export declare function CloseIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
17
- export declare function CursorIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
18
- export declare function TextIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
19
- export declare function ShapeIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
20
- export declare function CropIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
21
- export declare function PlusIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
22
- export declare function NoneIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
23
- export {};
24
- //# sourceMappingURL=icons.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/imageEditor/icons.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;AAsB3D,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,2CAOvC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAS1C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAOxC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAO1C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,2CAM7C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,2CAM/C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAMzC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAM1C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAMxC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAMzC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAOxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAMxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAQxC"}
@@ -1,45 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- function Svg({ children, ...rest }) {
3
- return (_jsx("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false", ...rest, children: children }));
4
- }
5
- export function EyeIcon(props) {
6
- return (_jsxs(Svg, { ...props, children: [_jsx("path", { d: "M2.5 12s3.5-6.5 9.5-6.5S21.5 12 21.5 12s-3.5 6.5-9.5 6.5S2.5 12 2.5 12Z" }), _jsx("circle", { cx: "12", cy: "12", r: "2.75" })] }));
7
- }
8
- export function EyeOffIcon(props) {
9
- return (_jsxs(Svg, { ...props, children: [_jsx("path", { d: "M3.5 3.5l17 17" }), _jsx("path", { d: "M9.5 5.7A10.6 10.6 0 0 1 12 5.5c6 0 9.5 6.5 9.5 6.5a17 17 0 0 1-3.2 4" }), _jsx("path", { d: "M6.2 7.6A17 17 0 0 0 2.5 12s3.5 6.5 9.5 6.5a10.6 10.6 0 0 0 4.3-.9" }), _jsx("path", { d: "M9.9 9.9a3 3 0 0 0 4.2 4.2" })] }));
10
- }
11
- export function LockIcon(props) {
12
- return (_jsxs(Svg, { ...props, children: [_jsx("rect", { x: "5", y: "11", width: "14", height: "9", rx: "1.5" }), _jsx("path", { d: "M8 11V8a4 4 0 0 1 8 0v3" })] }));
13
- }
14
- export function UnlockIcon(props) {
15
- return (_jsxs(Svg, { ...props, children: [_jsx("rect", { x: "5", y: "11", width: "14", height: "9", rx: "1.5" }), _jsx("path", { d: "M8 11V8a4 4 0 0 1 7.6-1.7" })] }));
16
- }
17
- export function ChevronUpIcon(props) {
18
- return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M6 14l6-6 6 6" }) }));
19
- }
20
- export function ChevronDownIcon(props) {
21
- return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M6 10l6 6 6-6" }) }));
22
- }
23
- export function CloseIcon(props) {
24
- return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M6 6l12 12M18 6L6 18" }) }));
25
- }
26
- export function CursorIcon(props) {
27
- return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M5 4l6.5 14.5 2.2-6 6-2.2L5 4Z" }) }));
28
- }
29
- export function TextIcon(props) {
30
- return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M5 6h14M12 6v13M9 19h6" }) }));
31
- }
32
- export function ShapeIcon(props) {
33
- return (_jsx(Svg, { ...props, children: _jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" }) }));
34
- }
35
- export function CropIcon(props) {
36
- return (_jsxs(Svg, { ...props, children: [_jsx("path", { d: "M7 2v15a1 1 0 0 0 1 1h15" }), _jsx("path", { d: "M2 7h15a1 1 0 0 1 1 1v15" })] }));
37
- }
38
- export function PlusIcon(props) {
39
- return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M12 5v14M5 12h14" }) }));
40
- }
41
- export function NoneIcon(props) {
42
- // Used for "no fill / transparent" affordance.
43
- return (_jsxs(Svg, { ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "8" }), _jsx("path", { d: "M6.3 6.3l11.4 11.4" })] }));
44
- }
45
- //# sourceMappingURL=icons.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/imageEditor/icons.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * SVG renderer for an `ImageEditLayer` of kind `image` inside the editor.
3
- * Resolves the asset path to a blob URL via the host-supplied
4
- * `resolveAssetUrl` (typically backed by the sidecar container).
5
- */
6
- import type { ImageEditCanvas, ImageEditLayer } from '@bendyline/squisq/schemas';
7
- interface Props {
8
- layer: ImageEditLayer & {
9
- type: 'image';
10
- };
11
- canvas: ImageEditCanvas;
12
- resolveAssetUrl: (path: string) => Promise<string>;
13
- }
14
- export declare function EditorImageLayer({ layer, canvas, resolveAssetUrl }: Props): import("react/jsx-runtime").JSX.Element | null;
15
- export {};
16
- //# sourceMappingURL=EditorImageLayer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorImageLayer.d.ts","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorImageLayer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,kDA6BzE"}
@@ -1,37 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * SVG renderer for an `ImageEditLayer` of kind `image` inside the editor.
4
- * Resolves the asset path to a blob URL via the host-supplied
5
- * `resolveAssetUrl` (typically backed by the sidecar container).
6
- */
7
- import { useEffect, useState } from 'react';
8
- export function EditorImageLayer({ layer, canvas, resolveAssetUrl }) {
9
- const [href, setHref] = useState(null);
10
- const src = layer.content.src;
11
- useEffect(() => {
12
- let cancelled = false;
13
- resolveAssetUrl(src)
14
- .then((url) => {
15
- if (!cancelled)
16
- setHref(url);
17
- })
18
- .catch(() => {
19
- if (!cancelled)
20
- setHref(null);
21
- });
22
- return () => {
23
- cancelled = true;
24
- };
25
- }, [src, resolveAssetUrl]);
26
- if (!href)
27
- return null;
28
- const p = layer.position;
29
- const x = typeof p.x === 'number' ? p.x : 0;
30
- const y = typeof p.y === 'number' ? p.y : 0;
31
- const width = typeof p.width === 'number' ? p.width : canvas.width;
32
- const height = typeof p.height === 'number' ? p.height : canvas.height;
33
- const fit = layer.content.fit ?? 'fill';
34
- const par = fit === 'cover' ? 'xMidYMid slice' : fit === 'contain' ? 'xMidYMid meet' : 'none';
35
- return _jsx("image", { href: href, x: x, y: y, width: width, height: height, preserveAspectRatio: par });
36
- }
37
- //# sourceMappingURL=EditorImageLayer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorImageLayer.js","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorImageLayer.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAS5C,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAS;IACxE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,eAAe,CAAC,GAAG,CAAC;aACjB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9F,OAAO,gBAAO,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,GAAI,CAAC;AACnG,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * SVG renderer for an `ImageEditLayer` of kind `shape` inside the editor.
3
- * Mirrors `react/src/layers/ShapeLayer.tsx` minus the animation/anchor
4
- * logic since the editor authors layers with numeric, top-left positions.
5
- */
6
- import type { ImageEditCanvas, ImageEditLayer } from '@bendyline/squisq/schemas';
7
- interface Props {
8
- layer: ImageEditLayer & {
9
- type: 'shape';
10
- };
11
- canvas: ImageEditCanvas;
12
- }
13
- export declare function EditorShapeLayer({ layer, canvas: _canvas }: Props): import("react/jsx-runtime").JSX.Element;
14
- export {};
15
- //# sourceMappingURL=EditorShapeLayer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorShapeLayer.d.ts","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorShapeLayer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,2CAgDjE"}
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- export function EditorShapeLayer({ layer, canvas: _canvas }) {
3
- const p = layer.position;
4
- const x = typeof p.x === 'number' ? p.x : 0;
5
- const y = typeof p.y === 'number' ? p.y : 0;
6
- const width = typeof p.width === 'number' ? p.width : 100;
7
- const height = typeof p.height === 'number' ? p.height : 100;
8
- const c = layer.content;
9
- const fill = c.fill ?? 'none';
10
- const stroke = c.stroke;
11
- const strokeWidth = c.strokeWidth;
12
- if (c.shape === 'rect') {
13
- return (_jsx("rect", { x: x, y: y, width: width, height: height, rx: c.borderRadius, ry: c.borderRadius, fill: fill, stroke: stroke, strokeWidth: strokeWidth }));
14
- }
15
- if (c.shape === 'circle') {
16
- return (_jsx("circle", { cx: x + width / 2, cy: y + height / 2, r: Math.min(width, height) / 2, fill: fill, stroke: stroke, strokeWidth: strokeWidth }));
17
- }
18
- return (_jsx("line", { x1: x, y1: y, x2: x + width, y2: y + height, stroke: stroke ?? '#000', strokeWidth: strokeWidth ?? 1 }));
19
- }
20
- //# sourceMappingURL=EditorShapeLayer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorShapeLayer.js","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorShapeLayer.tsx"],"names":[],"mappings":";AAaA,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAS;IAChE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IACxB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAElC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CACL,eACE,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,CAAC,CAAC,YAAY,EAClB,EAAE,EAAE,CAAC,CAAC,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,iBACE,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EACjB,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAClB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAC9B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;IACJ,CAAC;IACD,OAAO,CACL,eACE,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,GAAG,KAAK,EACb,EAAE,EAAE,CAAC,GAAG,MAAM,EACd,MAAM,EAAE,MAAM,IAAI,MAAM,EACxB,WAAW,EAAE,WAAW,IAAI,CAAC,GAC7B,CACH,CAAC;AACJ,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * SVG renderer for an `ImageEditLayer` of kind `text` inside the editor.
3
- *
4
- * Multi-line text is laid out as a `<text>` element with one `<tspan>`
5
- * per line. The first line sits at `y + fontSize` so the visible top
6
- * of the glyph block aligns with the layer's `y` coordinate (matches
7
- * what users expect from a top-anchored bounding box).
8
- */
9
- import type { ImageEditCanvas, ImageEditLayer } from '@bendyline/squisq/schemas';
10
- interface Props {
11
- layer: ImageEditLayer & {
12
- type: 'text';
13
- };
14
- canvas: ImageEditCanvas;
15
- }
16
- export declare function EditorTextLayer({ layer, canvas: _canvas }: Props): import("react/jsx-runtime").JSX.Element;
17
- export {};
18
- //# sourceMappingURL=EditorTextLayer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorTextLayer.d.ts","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorTextLayer.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,2CA4BhE"}
@@ -1,13 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- export function EditorTextLayer({ layer, canvas: _canvas }) {
3
- const p = layer.position;
4
- const x = typeof p.x === 'number' ? p.x : 0;
5
- const y = typeof p.y === 'number' ? p.y : 0;
6
- const { text, style } = layer.content;
7
- const lineHeight = style.lineHeight ?? 1.4;
8
- const lineHeightPx = style.fontSize * lineHeight;
9
- const lines = (text ?? '').split('\n');
10
- const textAnchor = style.textAlign === 'center' ? 'middle' : style.textAlign === 'right' ? 'end' : 'start';
11
- return (_jsx("text", { x: x, y: y + style.fontSize, fontFamily: style.fontFamily ?? 'sans-serif', fontSize: style.fontSize, fontWeight: style.fontWeight ?? 'normal', fill: style.color, textAnchor: textAnchor, children: lines.map((line, i) => (_jsx("tspan", { x: x, dy: i === 0 ? 0 : lineHeightPx, children: line || '\u00A0' }, i))) }));
12
- }
13
- //# sourceMappingURL=EditorTextLayer.js.map