@r2digisolutions/components 0.1.7 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  2. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  3. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  4. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  5. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  6. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  7. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  8. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  9. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  10. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  11. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  12. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  13. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  14. package/dist/components/atoms/Playhead/Playhead.svelte +98 -0
  15. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +21 -0
  16. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  17. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  18. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  19. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +117 -0
  20. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +17 -0
  21. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  22. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  23. package/dist/components/atoms/TimelineGrid/TimelineGrid.stories.js +8 -0
  24. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte +39 -0
  25. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte.d.ts +11 -0
  26. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte +7 -0
  27. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte.d.ts +18 -0
  28. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  29. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  30. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  31. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  32. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  33. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  34. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  35. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  36. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  37. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  38. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  39. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  40. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +97 -61
  41. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  42. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  43. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  44. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  45. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  46. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  47. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  48. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  49. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  50. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  51. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  52. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  53. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  54. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  55. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  56. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  57. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  58. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +46 -5
  59. package/dist/components/molecules/ColorPicker/ColorPicker.svelte.d.ts +2 -0
  60. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  61. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  62. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  63. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  64. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  65. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  66. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  67. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  68. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  69. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  70. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  71. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -66
  72. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +9 -0
  73. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  74. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  75. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  76. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  77. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  78. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  79. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  80. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  81. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  82. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  83. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  84. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  85. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  86. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  87. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +109 -0
  88. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +20 -0
  89. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  90. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  91. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  92. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  93. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  94. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  95. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  96. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  97. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  98. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  99. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  100. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  101. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  102. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  103. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  104. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  105. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  106. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  107. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  108. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  109. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  110. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  111. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  112. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  113. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  114. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  115. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +441 -0
  116. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +39 -0
  117. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  118. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  119. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  120. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  121. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  122. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  123. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  124. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  125. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  126. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  127. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  128. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  129. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  130. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  131. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  132. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  133. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  134. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  135. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  136. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  137. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  138. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  139. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  140. package/dist/components/molecules/PdfViewer/PdfViewer.svelte.d.ts +1 -1
  141. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  142. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  143. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +794 -0
  144. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +25 -0
  145. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  146. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  147. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  148. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  149. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  150. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  151. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  152. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  153. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  154. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  155. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  156. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  157. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  158. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  159. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  160. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  161. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  162. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  163. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  164. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  165. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  166. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  167. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  168. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  169. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  170. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  171. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  172. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  173. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  174. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  175. package/dist/components/molecules/SplitPane/SplitPane.svelte +99 -40
  176. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  177. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  178. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  179. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  180. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  181. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  182. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  183. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  184. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +193 -0
  185. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +18 -0
  186. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  187. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  188. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  189. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +126 -0
  190. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +27 -0
  191. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  192. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  193. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  194. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  195. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  196. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  197. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  198. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  199. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  200. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  201. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  202. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  203. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  204. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  205. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  206. package/dist/components/molecules/TransportControls/TransportControls.svelte +135 -0
  207. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +24 -0
  208. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +40 -0
  209. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  210. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  211. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  212. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  213. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  214. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  215. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.stories.js +8 -0
  216. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte +213 -0
  217. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte.d.ts +22 -0
  218. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte +7 -0
  219. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte.d.ts +18 -0
  220. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.stories.js +8 -0
  221. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte +524 -0
  222. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte.d.ts +32 -0
  223. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte +7 -0
  224. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte.d.ts +18 -0
  225. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  226. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  227. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  228. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +112 -0
  229. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +15 -0
  230. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  231. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  232. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.stories.js +8 -0
  233. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte +113 -0
  234. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte.d.ts +18 -0
  235. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte +7 -0
  236. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte.d.ts +18 -0
  237. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  238. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  239. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  240. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  241. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  242. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  243. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  244. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  245. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  246. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  247. package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
  248. package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
  249. package/dist/components/organisms/AudioEditor/AudioEditor.svelte +324 -0
  250. package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
  251. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
  252. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
  253. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  254. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  255. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  256. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  257. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  258. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  259. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  260. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  261. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  262. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  263. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  264. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  265. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  266. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  267. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  268. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  269. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  270. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  271. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  272. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  273. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  274. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  275. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  276. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  277. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  278. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  279. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  280. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  281. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  282. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  283. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  284. package/dist/components/organisms/EditorShell/EditorShell.svelte +162 -57
  285. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  286. package/dist/components/organisms/FileUploader/FileUploader.stories.d.ts +10 -0
  287. package/dist/components/organisms/FileUploader/FileUploader.stories.js +21 -0
  288. package/dist/components/organisms/FileUploader/FileUploader.svelte +127 -25
  289. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +20 -0
  290. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte +7 -1
  291. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte.d.ts +3 -0
  292. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  293. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  294. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  295. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  296. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  297. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  298. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  299. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +1687 -0
  300. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +14 -0
  301. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +11 -0
  302. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  303. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  304. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  305. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  306. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  307. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  308. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  309. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  310. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  311. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  312. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  313. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  314. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  315. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  316. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  317. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  318. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  319. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  320. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  321. package/dist/index.d.ts +91 -1
  322. package/dist/index.js +64 -0
  323. package/dist/types/xyflow-svelte.d.ts +62 -0
  324. package/dist/utils/audioProject.d.ts +19 -0
  325. package/dist/utils/audioProject.js +70 -0
  326. package/dist/utils/blogDocument.d.ts +175 -0
  327. package/dist/utils/blogDocument.js +220 -0
  328. package/dist/utils/blueprintRuntime.d.ts +34 -0
  329. package/dist/utils/blueprintRuntime.js +289 -0
  330. package/dist/utils/canvasDocument.d.ts +239 -0
  331. package/dist/utils/canvasDocument.js +443 -0
  332. package/dist/utils/canvasExport.d.ts +10 -0
  333. package/dist/utils/canvasExport.js +469 -0
  334. package/dist/utils/canvasHierarchy.d.ts +189 -0
  335. package/dist/utils/canvasHierarchy.js +674 -0
  336. package/dist/utils/canvasHistory.d.ts +19 -0
  337. package/dist/utils/canvasHistory.js +48 -0
  338. package/dist/utils/canvasWidget.d.ts +81 -0
  339. package/dist/utils/canvasWidget.js +597 -0
  340. package/dist/utils/mediaTime.d.ts +26 -0
  341. package/dist/utils/mediaTime.js +76 -0
  342. package/dist/utils/mediaTracks.d.ts +215 -0
  343. package/dist/utils/mediaTracks.js +798 -0
  344. package/dist/utils/nodeGraph.d.ts +354 -0
  345. package/dist/utils/nodeGraph.js +1453 -0
  346. package/dist/utils/queryBridge.d.ts +18 -0
  347. package/dist/utils/queryBridge.js +118 -0
  348. package/dist/utils/videoSequence.d.ts +13 -0
  349. package/dist/utils/videoSequence.js +94 -0
  350. package/package.json +5 -2
@@ -0,0 +1,858 @@
1
+ <script lang="ts" module>
2
+ import type { CanvasLayerKind } from '../../../utils/canvasDocument.js';
3
+
4
+ export const CANVAS_ELEMENT_MIME = 'application/x-r2-canvas-element';
5
+
6
+ export interface CanvasElementDef {
7
+ id: string;
8
+ label: string;
9
+ kind: CanvasLayerKind;
10
+ group: string;
11
+ swatch?: string;
12
+ /** Shown in the tile preview (emoji / glyph). */
13
+ glyph?: string;
14
+ partial?: {
15
+ name?: string;
16
+ text?: string;
17
+ fontSize?: number;
18
+ fontWeight?: number | string;
19
+ fontFamily?: string;
20
+ letterSpacing?: number;
21
+ fill?: string;
22
+ color?: string;
23
+ borderRadius?: number;
24
+ stroke?: string;
25
+ strokeWidth?: number;
26
+ textAlign?: 'left' | 'center' | 'right';
27
+ textBackground?: string;
28
+ clipChildren?: boolean;
29
+ gap?: number;
30
+ slotName?: string;
31
+ columns?: number;
32
+ rect?: { w: number; h: number };
33
+ };
34
+ /** Special tool action instead of placing a layer. */
35
+ tool?: 'pen';
36
+ }
37
+ </script>
38
+
39
+ <script lang="ts">
40
+ interface CanvasElementsPanelProps {
41
+ class?: string;
42
+ onadd?: (def: CanvasElementDef) => void;
43
+ }
44
+
45
+ let { class: className = '', onadd }: CanvasElementsPanelProps = $props();
46
+
47
+ const elements: CanvasElementDef[] = [
48
+ /* —— Text —— */
49
+ {
50
+ id: 'heading',
51
+ label: 'Heading',
52
+ kind: 'text',
53
+ group: 'Text',
54
+ partial: {
55
+ name: 'Heading',
56
+ text: 'Add a heading',
57
+ fontSize: 56,
58
+ fontWeight: 700,
59
+ rect: { w: 440, h: 80 }
60
+ }
61
+ },
62
+ {
63
+ id: 'subheading',
64
+ label: 'Subheading',
65
+ kind: 'text',
66
+ group: 'Text',
67
+ partial: {
68
+ name: 'Subheading',
69
+ text: 'Add a subheading',
70
+ fontSize: 32,
71
+ fontWeight: 600,
72
+ rect: { w: 360, h: 56 }
73
+ }
74
+ },
75
+ {
76
+ id: 'title',
77
+ label: 'Title',
78
+ kind: 'text',
79
+ group: 'Text',
80
+ partial: {
81
+ name: 'Title',
82
+ text: 'Title',
83
+ fontSize: 42,
84
+ fontWeight: 700,
85
+ rect: { w: 380, h: 64 }
86
+ }
87
+ },
88
+ {
89
+ id: 'body',
90
+ label: 'Body',
91
+ kind: 'text',
92
+ group: 'Text',
93
+ partial: {
94
+ name: 'Body',
95
+ text: 'Add a little bit of body text',
96
+ fontSize: 18,
97
+ fontWeight: 400,
98
+ rect: { w: 320, h: 96 }
99
+ }
100
+ },
101
+ {
102
+ id: 'caption',
103
+ label: 'Caption',
104
+ kind: 'text',
105
+ group: 'Text',
106
+ partial: {
107
+ name: 'Caption',
108
+ text: 'Caption text',
109
+ fontSize: 14,
110
+ fontWeight: 500,
111
+ color: '#64748b',
112
+ rect: { w: 280, h: 40 }
113
+ }
114
+ },
115
+ {
116
+ id: 'label',
117
+ label: 'Label',
118
+ kind: 'text',
119
+ group: 'Text',
120
+ partial: {
121
+ name: 'Label',
122
+ text: 'LABEL',
123
+ fontSize: 12,
124
+ fontWeight: 700,
125
+ color: '#94a3b8',
126
+ letterSpacing: 2,
127
+ rect: { w: 160, h: 28 }
128
+ }
129
+ },
130
+ {
131
+ id: 'quote',
132
+ label: 'Quote',
133
+ kind: 'text',
134
+ group: 'Text',
135
+ partial: {
136
+ name: 'Quote',
137
+ text: '“A short quote”',
138
+ fontSize: 28,
139
+ fontWeight: 500,
140
+ rect: { w: 400, h: 100 }
141
+ }
142
+ },
143
+ {
144
+ id: 'code',
145
+ label: 'Code',
146
+ kind: 'text',
147
+ group: 'Text',
148
+ partial: {
149
+ name: 'Code',
150
+ text: 'const x = 1;',
151
+ fontSize: 16,
152
+ fontWeight: 500,
153
+ fontFamily: 'ui-monospace, SFMono-Regular, Menlo, monospace',
154
+ color: '#e2e8f0',
155
+ textBackground: '#0f172a',
156
+ rect: { w: 280, h: 48 }
157
+ }
158
+ },
159
+
160
+ /* —— Stickies —— */
161
+ {
162
+ id: 'sticky-yellow',
163
+ label: 'Yellow',
164
+ kind: 'sticky',
165
+ group: 'Stickies',
166
+ swatch: '#fef08a',
167
+ partial: { fill: '#fef08a', text: 'Note', color: '#713f12', fontSize: 20 }
168
+ },
169
+ {
170
+ id: 'sticky-pink',
171
+ label: 'Pink',
172
+ kind: 'sticky',
173
+ group: 'Stickies',
174
+ swatch: '#fbcfe8',
175
+ partial: { fill: '#fbcfe8', text: 'Note', color: '#9d174d', fontSize: 20 }
176
+ },
177
+ {
178
+ id: 'sticky-green',
179
+ label: 'Green',
180
+ kind: 'sticky',
181
+ group: 'Stickies',
182
+ swatch: '#bbf7d0',
183
+ partial: { fill: '#bbf7d0', text: 'Note', color: '#14532d', fontSize: 20 }
184
+ },
185
+ {
186
+ id: 'sticky-blue',
187
+ label: 'Blue',
188
+ kind: 'sticky',
189
+ group: 'Stickies',
190
+ swatch: '#bae6fd',
191
+ partial: { fill: '#bae6fd', text: 'Note', color: '#0c4a6e', fontSize: 20 }
192
+ },
193
+ {
194
+ id: 'sticky-orange',
195
+ label: 'Orange',
196
+ kind: 'sticky',
197
+ group: 'Stickies',
198
+ swatch: '#fed7aa',
199
+ partial: { fill: '#fed7aa', text: 'Note', color: '#9a3412', fontSize: 20 }
200
+ },
201
+ {
202
+ id: 'sticky-purple',
203
+ label: 'Purple',
204
+ kind: 'sticky',
205
+ group: 'Stickies',
206
+ swatch: '#e9d5ff',
207
+ partial: { fill: '#e9d5ff', text: 'Note', color: '#6b21a8', fontSize: 20 }
208
+ },
209
+
210
+ /* —— Shapes —— */
211
+ {
212
+ id: 'rect',
213
+ label: 'Rectangle',
214
+ kind: 'rect',
215
+ group: 'Shapes',
216
+ swatch: '#3b82f6',
217
+ partial: { fill: '#3b82f6' }
218
+ },
219
+ {
220
+ id: 'square',
221
+ label: 'Square',
222
+ kind: 'rect',
223
+ group: 'Shapes',
224
+ swatch: '#2563eb',
225
+ partial: { name: 'Square', fill: '#2563eb', rect: { w: 200, h: 200 } }
226
+ },
227
+ {
228
+ id: 'roundRect',
229
+ label: 'Rounded',
230
+ kind: 'roundRect',
231
+ group: 'Shapes',
232
+ swatch: '#8b5cf6',
233
+ partial: { fill: '#8b5cf6', borderRadius: 28 }
234
+ },
235
+ {
236
+ id: 'ellipse',
237
+ label: 'Ellipse',
238
+ kind: 'ellipse',
239
+ group: 'Shapes',
240
+ swatch: '#22c55e',
241
+ partial: { fill: '#22c55e' }
242
+ },
243
+ {
244
+ id: 'circle',
245
+ label: 'Circle',
246
+ kind: 'ellipse',
247
+ group: 'Shapes',
248
+ swatch: '#16a34a',
249
+ partial: { name: 'Circle', fill: '#16a34a', rect: { w: 200, h: 200 } }
250
+ },
251
+ {
252
+ id: 'triangle',
253
+ label: 'Triangle',
254
+ kind: 'triangle',
255
+ group: 'Shapes',
256
+ swatch: '#f59e0b',
257
+ partial: { fill: '#f59e0b' }
258
+ },
259
+ {
260
+ id: 'star',
261
+ label: 'Star',
262
+ kind: 'star',
263
+ group: 'Shapes',
264
+ swatch: '#ef4444',
265
+ partial: { fill: '#ef4444' }
266
+ },
267
+ {
268
+ id: 'hexagon',
269
+ label: 'Hexagon',
270
+ kind: 'hexagon',
271
+ group: 'Shapes',
272
+ swatch: '#06b6d4',
273
+ partial: { fill: '#06b6d4' }
274
+ },
275
+ {
276
+ id: 'pentagon',
277
+ label: 'Pentagon',
278
+ kind: 'pentagon',
279
+ group: 'Shapes',
280
+ swatch: '#a855f7',
281
+ partial: { fill: '#a855f7' }
282
+ },
283
+ {
284
+ id: 'diamond',
285
+ label: 'Diamond',
286
+ kind: 'diamond',
287
+ group: 'Shapes',
288
+ swatch: '#f43f5e',
289
+ partial: { fill: '#f43f5e' }
290
+ },
291
+ {
292
+ id: 'heart',
293
+ label: 'Heart',
294
+ kind: 'heart',
295
+ group: 'Shapes',
296
+ swatch: '#ec4899',
297
+ partial: { fill: '#ec4899' }
298
+ },
299
+ {
300
+ id: 'shape-coral',
301
+ label: 'Coral',
302
+ kind: 'roundRect',
303
+ group: 'Shapes',
304
+ swatch: '#fb7185',
305
+ partial: { name: 'Coral', fill: '#fb7185', borderRadius: 20 }
306
+ },
307
+ {
308
+ id: 'shape-teal',
309
+ label: 'Teal',
310
+ kind: 'ellipse',
311
+ group: 'Shapes',
312
+ swatch: '#14b8a6',
313
+ partial: { name: 'Teal', fill: '#14b8a6' }
314
+ },
315
+ {
316
+ id: 'shape-indigo',
317
+ label: 'Indigo',
318
+ kind: 'hexagon',
319
+ group: 'Shapes',
320
+ swatch: '#6366f1',
321
+ partial: { name: 'Indigo', fill: '#6366f1' }
322
+ },
323
+ {
324
+ id: 'shape-slate',
325
+ label: 'Slate',
326
+ kind: 'rect',
327
+ group: 'Shapes',
328
+ swatch: '#64748b',
329
+ partial: { name: 'Slate', fill: '#64748b' }
330
+ },
331
+
332
+ /* —— Lines —— */
333
+ {
334
+ id: 'line',
335
+ label: 'Line',
336
+ kind: 'line',
337
+ group: 'Lines',
338
+ swatch: '#94a3b8',
339
+ partial: { fill: '#94a3b8', rect: { w: 320, h: 4 } }
340
+ },
341
+ {
342
+ id: 'line-thick',
343
+ label: 'Thick',
344
+ kind: 'line',
345
+ group: 'Lines',
346
+ swatch: '#475569',
347
+ partial: { name: 'Thick line', fill: '#475569', strokeWidth: 8, rect: { w: 320, h: 8 } }
348
+ },
349
+ {
350
+ id: 'line-v',
351
+ label: 'Vertical',
352
+ kind: 'line',
353
+ group: 'Lines',
354
+ swatch: '#94a3b8',
355
+ partial: { name: 'Vertical', fill: '#94a3b8', strokeWidth: 4, rect: { w: 4, h: 280 } }
356
+ },
357
+ {
358
+ id: 'arrow',
359
+ label: 'Arrow',
360
+ kind: 'arrow',
361
+ group: 'Lines',
362
+ swatch: '#0f172a',
363
+ partial: { fill: '#0f172a', strokeWidth: 4, rect: { w: 280, h: 28 } }
364
+ },
365
+ {
366
+ id: 'arrow-brand',
367
+ label: 'Brand',
368
+ kind: 'arrow',
369
+ group: 'Lines',
370
+ swatch: '#3b82f6',
371
+ partial: { name: 'Brand arrow', fill: '#3b82f6', rect: { w: 280, h: 28 } }
372
+ },
373
+ {
374
+ id: 'divider',
375
+ label: 'Divider',
376
+ kind: 'line',
377
+ group: 'Lines',
378
+ swatch: '#cbd5e1',
379
+ partial: { name: 'Divider', fill: '#cbd5e1', rect: { w: 480, h: 2 } }
380
+ },
381
+ {
382
+ id: 'pen-path',
383
+ label: 'Path',
384
+ kind: 'path',
385
+ group: 'Lines',
386
+ swatch: '#0f172a',
387
+ tool: 'pen',
388
+ partial: { name: 'Path', stroke: '#0f172a', strokeWidth: 3 }
389
+ },
390
+
391
+ /* —— Frames —— */
392
+ {
393
+ id: 'frame',
394
+ label: 'Frame',
395
+ kind: 'roundRect',
396
+ group: 'Frames',
397
+ swatch: '#e2e8f0',
398
+ partial: {
399
+ name: 'Frame',
400
+ fill: '#f8fafc',
401
+ borderRadius: 16,
402
+ stroke: '#cbd5e1',
403
+ strokeWidth: 2,
404
+ rect: { w: 360, h: 240 }
405
+ }
406
+ },
407
+ {
408
+ id: 'pill',
409
+ label: 'Pill',
410
+ kind: 'roundRect',
411
+ group: 'Frames',
412
+ swatch: '#0ea5e9',
413
+ partial: { name: 'Pill', fill: '#0ea5e9', borderRadius: 999, rect: { w: 200, h: 56 } }
414
+ },
415
+ {
416
+ id: 'card',
417
+ label: 'Card',
418
+ kind: 'roundRect',
419
+ group: 'Frames',
420
+ swatch: '#ffffff',
421
+ partial: {
422
+ name: 'Card',
423
+ fill: '#ffffff',
424
+ borderRadius: 20,
425
+ stroke: '#e2e8f0',
426
+ strokeWidth: 1,
427
+ rect: { w: 320, h: 200 }
428
+ }
429
+ },
430
+ {
431
+ id: 'badge',
432
+ label: 'Badge',
433
+ kind: 'roundRect',
434
+ group: 'Frames',
435
+ swatch: '#22c55e',
436
+ partial: { name: 'Badge', fill: '#22c55e', borderRadius: 999, rect: { w: 120, h: 36 } }
437
+ },
438
+ {
439
+ id: 'chip',
440
+ label: 'Chip',
441
+ kind: 'roundRect',
442
+ group: 'Frames',
443
+ swatch: '#f1f5f9',
444
+ partial: {
445
+ name: 'Chip',
446
+ fill: '#f1f5f9',
447
+ borderRadius: 999,
448
+ stroke: '#cbd5e1',
449
+ strokeWidth: 1,
450
+ rect: { w: 140, h: 36 }
451
+ }
452
+ },
453
+ {
454
+ id: 'banner',
455
+ label: 'Banner',
456
+ kind: 'rect',
457
+ group: 'Frames',
458
+ swatch: '#0f172a',
459
+ partial: { name: 'Banner', fill: '#0f172a', rect: { w: 640, h: 120 } }
460
+ },
461
+ {
462
+ id: 'avatar',
463
+ label: 'Avatar',
464
+ kind: 'ellipse',
465
+ group: 'Frames',
466
+ swatch: '#94a3b8',
467
+ partial: { name: 'Avatar', fill: '#94a3b8', rect: { w: 96, h: 96 } }
468
+ },
469
+ {
470
+ id: 'button',
471
+ label: 'Button',
472
+ kind: 'roundRect',
473
+ group: 'Frames',
474
+ swatch: '#2563eb',
475
+ partial: {
476
+ name: 'Button',
477
+ fill: '#2563eb',
478
+ borderRadius: 12,
479
+ rect: { w: 160, h: 48 }
480
+ }
481
+ },
482
+ {
483
+ id: 'panel',
484
+ label: 'Panel',
485
+ kind: 'roundRect',
486
+ group: 'Frames',
487
+ swatch: '#f8fafc',
488
+ partial: {
489
+ name: 'Panel',
490
+ fill: '#f8fafc',
491
+ borderRadius: 12,
492
+ stroke: '#e2e8f0',
493
+ strokeWidth: 1,
494
+ rect: { w: 420, h: 280 }
495
+ }
496
+ },
497
+
498
+ /* —— Panels (UMG) —— */
499
+ {
500
+ id: 'canvas-panel',
501
+ label: 'Canvas',
502
+ kind: 'canvasPanel',
503
+ group: 'Panels',
504
+ swatch: '#e2e8f0',
505
+ partial: {
506
+ name: 'Canvas Panel',
507
+ fill: 'transparent',
508
+ clipChildren: true,
509
+ rect: { w: 400, h: 300 }
510
+ }
511
+ },
512
+ {
513
+ id: 'overlay-panel',
514
+ label: 'Overlay',
515
+ kind: 'overlay',
516
+ group: 'Panels',
517
+ swatch: '#cbd5e1',
518
+ partial: {
519
+ name: 'Overlay',
520
+ fill: 'transparent',
521
+ clipChildren: true,
522
+ rect: { w: 320, h: 240 }
523
+ }
524
+ },
525
+ {
526
+ id: 'border-panel',
527
+ label: 'Border',
528
+ kind: 'border',
529
+ group: 'Panels',
530
+ swatch: '#ffffff',
531
+ partial: {
532
+ name: 'Border',
533
+ fill: '#ffffff',
534
+ borderRadius: 12,
535
+ clipChildren: true,
536
+ rect: { w: 320, h: 200 }
537
+ }
538
+ },
539
+ {
540
+ id: 'hbox-panel',
541
+ label: 'HBox',
542
+ kind: 'hBox',
543
+ group: 'Panels',
544
+ swatch: '#93c5fd',
545
+ partial: { name: 'Horizontal Box', fill: 'transparent', gap: 8, rect: { w: 360, h: 80 } }
546
+ },
547
+ {
548
+ id: 'vbox-panel',
549
+ label: 'VBox',
550
+ kind: 'vBox',
551
+ group: 'Panels',
552
+ swatch: '#86efac',
553
+ partial: { name: 'Vertical Box', fill: 'transparent', gap: 8, rect: { w: 200, h: 240 } }
554
+ },
555
+ {
556
+ id: 'sizebox-panel',
557
+ label: 'Size Box',
558
+ kind: 'sizeBox',
559
+ group: 'Panels',
560
+ swatch: '#fcd34d',
561
+ partial: {
562
+ name: 'Size Box',
563
+ fill: 'transparent',
564
+ clipChildren: true,
565
+ rect: { w: 200, h: 200 }
566
+ }
567
+ },
568
+ {
569
+ id: 'scalebox-panel',
570
+ label: 'Scale Box',
571
+ kind: 'scaleBox',
572
+ group: 'Panels',
573
+ swatch: '#c4b5fd',
574
+ partial: {
575
+ name: 'Scale Box',
576
+ fill: 'transparent',
577
+ clipChildren: true,
578
+ rect: { w: 240, h: 240 }
579
+ }
580
+ },
581
+ {
582
+ id: 'group-panel',
583
+ label: 'Group',
584
+ kind: 'group',
585
+ group: 'Panels',
586
+ swatch: '#94a3b8',
587
+ partial: { name: 'Group', fill: 'transparent', rect: { w: 280, h: 200 } }
588
+ },
589
+ {
590
+ id: 'named-slot',
591
+ label: 'Named Slot',
592
+ kind: 'namedSlot',
593
+ group: 'Panels',
594
+ swatch: '#3b82f6',
595
+ partial: {
596
+ name: 'Content',
597
+ slotName: 'Content',
598
+ fill: 'rgba(59,130,246,0.08)',
599
+ rect: { w: 240, h: 140 }
600
+ }
601
+ },
602
+ {
603
+ id: 'scroll-box',
604
+ label: 'Scroll Box',
605
+ kind: 'scrollBox',
606
+ group: 'Panels',
607
+ swatch: '#64748b',
608
+ partial: {
609
+ name: 'Scroll Box',
610
+ fill: 'transparent',
611
+ clipChildren: true,
612
+ rect: { w: 280, h: 320 }
613
+ }
614
+ },
615
+ {
616
+ id: 'wrap-box',
617
+ label: 'Wrap Box',
618
+ kind: 'wrapBox',
619
+ group: 'Panels',
620
+ swatch: '#f472b6',
621
+ partial: { name: 'Wrap Box', fill: 'transparent', gap: 8, rect: { w: 360, h: 200 } }
622
+ },
623
+ {
624
+ id: 'uniform-grid',
625
+ label: 'Grid',
626
+ kind: 'uniformGrid',
627
+ group: 'Panels',
628
+ swatch: '#38bdf8',
629
+ partial: {
630
+ name: 'Uniform Grid',
631
+ fill: 'transparent',
632
+ gap: 8,
633
+ columns: 2,
634
+ rect: { w: 320, h: 240 }
635
+ }
636
+ },
637
+
638
+ /* —— Icons (emoji text) —— */
639
+ {
640
+ id: 'icon-star',
641
+ label: 'Star',
642
+ kind: 'text',
643
+ group: 'Icons',
644
+ glyph: '⭐',
645
+ partial: { name: 'Star icon', text: '⭐', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
646
+ },
647
+ {
648
+ id: 'icon-heart',
649
+ label: 'Heart',
650
+ kind: 'text',
651
+ group: 'Icons',
652
+ glyph: '❤️',
653
+ partial: { name: 'Heart icon', text: '❤️', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
654
+ },
655
+ {
656
+ id: 'icon-check',
657
+ label: 'Check',
658
+ kind: 'text',
659
+ group: 'Icons',
660
+ glyph: '✅',
661
+ partial: { name: 'Check', text: '✅', fontSize: 56, textAlign: 'center', rect: { w: 72, h: 72 } }
662
+ },
663
+ {
664
+ id: 'icon-fire',
665
+ label: 'Fire',
666
+ kind: 'text',
667
+ group: 'Icons',
668
+ glyph: '🔥',
669
+ partial: { name: 'Fire', text: '🔥', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
670
+ },
671
+ {
672
+ id: 'icon-spark',
673
+ label: 'Spark',
674
+ kind: 'text',
675
+ group: 'Icons',
676
+ glyph: '✨',
677
+ partial: { name: 'Sparkles', text: '✨', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
678
+ },
679
+ {
680
+ id: 'icon-rocket',
681
+ label: 'Rocket',
682
+ kind: 'text',
683
+ group: 'Icons',
684
+ glyph: '🚀',
685
+ partial: { name: 'Rocket', text: '🚀', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
686
+ },
687
+ {
688
+ id: 'icon-idea',
689
+ label: 'Idea',
690
+ kind: 'text',
691
+ group: 'Icons',
692
+ glyph: '💡',
693
+ partial: { name: 'Idea', text: '💡', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
694
+ },
695
+ {
696
+ id: 'icon-target',
697
+ label: 'Target',
698
+ kind: 'text',
699
+ group: 'Icons',
700
+ glyph: '🎯',
701
+ partial: { name: 'Target', text: '🎯', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
702
+ },
703
+ {
704
+ id: 'icon-party',
705
+ label: 'Party',
706
+ kind: 'text',
707
+ group: 'Icons',
708
+ glyph: '🎉',
709
+ partial: { name: 'Party', text: '🎉', fontSize: 64, textAlign: 'center', rect: { w: 80, h: 80 } }
710
+ }
711
+ ];
712
+
713
+ const groupOrder = ['Text', 'Stickies', 'Shapes', 'Lines', 'Frames', 'Panels', 'Icons'];
714
+
715
+ const groups = $derived(
716
+ groupOrder.map((name) => ({
717
+ name,
718
+ items: elements.filter((e) => e.group === name)
719
+ }))
720
+ );
721
+
722
+ function beginDrag(e: DragEvent, el: CanvasElementDef) {
723
+ if (!e.dataTransfer) return;
724
+ e.dataTransfer.setData(CANVAS_ELEMENT_MIME, JSON.stringify(el));
725
+ e.dataTransfer.setData('text/plain', el.label);
726
+ e.dataTransfer.effectAllowed = 'copy';
727
+ }
728
+ </script>
729
+
730
+ <div class={['flex h-full min-h-0 flex-col gap-4 overflow-auto p-3', className]}>
731
+ <p class="text-[11px] text-muted">Click or drag onto the canvas</p>
732
+ {#each groups as group (group.name)}
733
+ <section class="flex flex-col gap-2">
734
+ <h3 class="text-[11px] font-semibold uppercase tracking-wide text-muted">{group.name}</h3>
735
+ <div class="grid grid-cols-3 gap-2">
736
+ {#each group.items as el (el.id)}
737
+ <button
738
+ type="button"
739
+ draggable="true"
740
+ class="flex cursor-grab flex-col items-center gap-1.5 rounded-lg border border-transparent bg-surface px-1.5 py-2.5 text-center transition-colors hover:border-border hover:bg-surface-overlay active:cursor-grabbing"
741
+ ondragstart={(e) => beginDrag(e, el)}
742
+ onclick={() => onadd?.(el)}
743
+ >
744
+ <span
745
+ class="flex h-11 w-full items-center justify-center rounded-md bg-[#eef1f5] dark:bg-surface-overlay"
746
+ >
747
+ {#if el.glyph}
748
+ <span class="text-xl leading-none">{el.glyph}</span>
749
+ {:else if el.kind === 'text'}
750
+ <span
751
+ class="font-semibold text-primary"
752
+ style:font-size={el.id === 'heading' || el.id === 'title'
753
+ ? '18px'
754
+ : el.id === 'subheading'
755
+ ? '14px'
756
+ : el.id === 'code'
757
+ ? '10px'
758
+ : '11px'}
759
+ >
760
+ {el.id === 'code' ? '</>' : 'Aa'}
761
+ </span>
762
+ {:else if el.kind === 'sticky'}
763
+ <span
764
+ class="flex h-8 w-8 items-center justify-center rounded-sm text-[9px] font-semibold"
765
+ style:background={el.swatch}
766
+ style:color={el.partial?.color ?? '#713f12'}
767
+ >
768
+ Note
769
+ </span>
770
+ {:else if el.kind === 'ellipse'}
771
+ <span
772
+ class="rounded-full"
773
+ class:h-7={el.id !== 'avatar'}
774
+ class:w-7={el.id !== 'avatar'}
775
+ class:h-8={el.id === 'avatar'}
776
+ class:w-8={el.id === 'avatar'}
777
+ style:background={el.swatch}
778
+ ></span>
779
+ {:else if el.kind === 'triangle'}
780
+ <span
781
+ class="h-0 w-0 border-x-[10px] border-b-[18px] border-x-transparent"
782
+ style:border-bottom-color={el.swatch}
783
+ ></span>
784
+ {:else if el.kind === 'star'}
785
+ <svg class="h-7 w-7" viewBox="0 0 24 24" fill={el.swatch}>
786
+ <path
787
+ d="M12 2.5l2.6 6.4 6.9.6-5.2 4.6 1.6 6.7L12 17.8 6.1 20.8l1.6-6.7L2.5 9.5l6.9-.6L12 2.5z"
788
+ />
789
+ </svg>
790
+ {:else if el.kind === 'hexagon'}
791
+ <svg class="h-7 w-7" viewBox="0 0 100 100" fill={el.swatch}>
792
+ <polygon points="25,5 75,5 95,50 75,95 25,95 5,50" />
793
+ </svg>
794
+ {:else if el.kind === 'pentagon'}
795
+ <svg class="h-7 w-7" viewBox="0 0 100 100" fill={el.swatch}>
796
+ <polygon points="50,5 95,38 78,95 22,95 5,38" />
797
+ </svg>
798
+ {:else if el.kind === 'diamond'}
799
+ <svg class="h-7 w-7" viewBox="0 0 100 100" fill={el.swatch}>
800
+ <polygon points="50,4 96,50 50,96 4,50" />
801
+ </svg>
802
+ {:else if el.kind === 'heart'}
803
+ <svg class="h-7 w-7" viewBox="0 0 24 24" fill={el.swatch}>
804
+ <path
805
+ d="M12 21s-6.7-4.35-9.33-7.6C.5 10.8 1.1 7.1 3.9 5.5 6.1 4.25 8.55 5 12 8.1c3.45-3.1 5.9-3.85 8.1-2.6 2.8 1.6 3.4 5.3 1.23 7.9C18.7 16.65 12 21 12 21z"
806
+ />
807
+ </svg>
808
+ {:else if el.tool === 'pen'}
809
+ <svg class="h-7 w-7" viewBox="0 0 24 24" fill="none" aria-hidden="true">
810
+ <path
811
+ d="M4 20 L8 6 L14 14 L20 4"
812
+ stroke={el.swatch}
813
+ stroke-width="2"
814
+ stroke-linecap="round"
815
+ stroke-linejoin="round"
816
+ />
817
+ <circle cx="4" cy="20" r="1.5" fill={el.swatch} />
818
+ <circle cx="8" cy="6" r="1.5" fill={el.swatch} />
819
+ <circle cx="14" cy="14" r="1.5" fill={el.swatch} />
820
+ <circle cx="20" cy="4" r="1.5" fill={el.swatch} />
821
+ </svg>
822
+ {:else if el.kind === 'line'}
823
+ <span
824
+ class="rounded-full"
825
+ class:h-0.5={el.id !== 'line-v' && el.id !== 'line-thick'}
826
+ class:w-10={el.id !== 'line-v'}
827
+ class:h-8={el.id === 'line-v'}
828
+ class:w-0.5={el.id === 'line-v'}
829
+ class:h-1.5={el.id === 'line-thick'}
830
+ style:background={el.swatch}
831
+ ></span>
832
+ {:else if el.kind === 'arrow'}
833
+ <svg class="h-4 w-10" viewBox="0 0 40 12" fill="none">
834
+ <path
835
+ d="M2 6h28M24 2l8 4-8 4"
836
+ stroke={el.swatch}
837
+ stroke-width="2"
838
+ stroke-linecap="round"
839
+ stroke-linejoin="round"
840
+ />
841
+ </svg>
842
+ {:else}
843
+ <span
844
+ class="h-7 w-9 border border-black/5"
845
+ style:background={el.swatch}
846
+ style:border-radius="{el.partial?.borderRadius
847
+ ? Math.min(12, el.partial.borderRadius / 2)
848
+ : 4}px"
849
+ ></span>
850
+ {/if}
851
+ </span>
852
+ <span class="text-[10px] font-medium text-secondary">{el.label}</span>
853
+ </button>
854
+ {/each}
855
+ </div>
856
+ </section>
857
+ {/each}
858
+ </div>