@r2digisolutions/components 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/README.md +1 -1
  2. package/dist/components/atoms/Checkbox/Checkbox.svelte +10 -3
  3. package/dist/components/atoms/Checkbox/Checkbox.svelte.d.ts +3 -0
  4. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  5. package/dist/components/atoms/Input/Input.svelte +17 -2
  6. package/dist/components/atoms/Input/Input.svelte.d.ts +6 -1
  7. package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte +21 -0
  8. package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte.d.ts +8 -0
  9. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  10. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  11. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  12. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  13. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  14. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  15. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  16. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  17. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  18. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  19. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  20. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  21. package/dist/components/atoms/Playhead/Playhead.svelte +59 -0
  22. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +13 -0
  23. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  24. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  25. package/dist/components/atoms/Textarea/Textarea.svelte +4 -1
  26. package/dist/components/atoms/Textarea/Textarea.svelte.d.ts +1 -0
  27. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  28. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +58 -0
  29. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +10 -0
  30. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  31. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  32. package/dist/components/atoms/Toggle/Toggle.svelte +1 -1
  33. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  34. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  35. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  36. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  37. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  38. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  39. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  40. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  41. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  42. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  43. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  44. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  45. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +112 -62
  46. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  47. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  48. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  49. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  50. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  51. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  52. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  53. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  54. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  55. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  56. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  57. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  58. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  59. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  60. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  61. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  62. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  63. package/dist/components/molecules/CodeEditor/CodeEditor.svelte +13 -10
  64. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +167 -97
  65. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  66. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  67. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  68. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  69. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  70. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  71. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.d.ts +9 -0
  72. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.js +8 -0
  73. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte +412 -0
  74. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte.d.ts +14 -0
  75. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte +27 -0
  76. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte.d.ts +3 -0
  77. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  78. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  79. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  80. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  81. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  82. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -41
  83. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +17 -1
  84. package/dist/components/molecules/DateTimePicker/DateTimePicker.svelte.d.ts +1 -1
  85. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  86. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  87. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  88. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  89. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  90. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  91. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  92. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  93. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  94. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  95. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  96. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  97. package/dist/components/molecules/FormDateTimePicker/FormDateTimePicker.svelte.d.ts +1 -1
  98. package/dist/components/molecules/Gauge/Gauge.stories.d.ts +1 -1
  99. package/dist/components/molecules/InfiniteScroll/InfiniteScroll.stories.d.ts +1 -1
  100. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  101. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  102. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +94 -0
  103. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +15 -0
  104. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  105. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  106. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  107. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  108. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  109. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  110. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  111. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  112. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  113. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  114. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  115. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  116. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  117. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  118. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  119. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  120. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  121. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  122. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  123. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  124. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  125. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  126. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  127. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  128. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  129. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  130. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +131 -0
  131. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +19 -0
  132. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  133. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  134. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  135. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  136. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  137. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  138. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  139. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  140. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  141. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  142. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  143. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  144. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  145. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  146. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  147. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  148. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  149. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  150. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  151. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  152. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  153. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  154. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  155. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  156. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  157. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +72 -0
  158. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +12 -0
  159. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  160. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  161. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  162. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  163. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  164. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  165. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  166. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  167. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  168. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  169. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  170. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  171. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  172. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  173. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  174. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  175. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  176. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  177. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  178. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  179. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  180. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  181. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  182. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  183. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  184. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  185. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  186. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  187. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  188. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  189. package/dist/components/molecules/SplitPane/SplitPane.svelte +96 -37
  190. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  191. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  192. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  193. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  194. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  195. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  196. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  197. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  198. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +116 -0
  199. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +15 -0
  200. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  201. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  202. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  203. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +56 -0
  204. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +16 -0
  205. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  206. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  207. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  208. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  209. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  210. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  211. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  212. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  213. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  214. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  215. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  216. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  217. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  218. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  219. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  220. package/dist/components/molecules/TransportControls/TransportControls.svelte +53 -0
  221. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +12 -0
  222. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +18 -0
  223. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  224. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  225. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  226. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  227. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  228. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  229. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  230. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  231. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  232. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +59 -0
  233. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +9 -0
  234. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  235. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  236. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  237. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  238. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  239. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  240. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  241. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  242. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  243. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  244. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  245. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  246. package/dist/components/organisms/AssetPickerPage/AssetPickerPage.svelte.d.ts +1 -1
  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 +273 -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/BacklogPage/BacklogPage.svelte.d.ts +1 -1
  254. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  255. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  256. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  257. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  258. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  259. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  260. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  261. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  262. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  263. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  264. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  265. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  266. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  267. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  268. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  269. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  270. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  271. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  272. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  273. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  274. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  275. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  276. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  277. package/dist/components/organisms/CalendarApp/CalendarApp.svelte.d.ts +1 -1
  278. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  279. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  280. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  281. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  282. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  283. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  284. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  285. package/dist/components/organisms/DataGrid/DataGrid.stories.d.ts +65 -0
  286. package/dist/components/organisms/DataGrid/DataGrid.stories.js +95 -0
  287. package/dist/components/organisms/DataGrid/DataGrid.svelte +2264 -0
  288. package/dist/components/organisms/DataGrid/DataGrid.svelte.d.ts +99 -0
  289. package/dist/components/organisms/DataGrid/DataGridStory.svelte +659 -0
  290. package/dist/components/organisms/DataGrid/DataGridStory.svelte.d.ts +11 -0
  291. package/dist/components/organisms/DataGrid/breakpoints.d.ts +10 -0
  292. package/dist/components/organisms/DataGrid/breakpoints.js +20 -0
  293. package/dist/components/organisms/DataGrid/cellEditors.d.ts +8 -0
  294. package/dist/components/organisms/DataGrid/cellEditors.js +59 -0
  295. package/dist/components/organisms/DataGrid/conditionalFormat.d.ts +11 -0
  296. package/dist/components/organisms/DataGrid/conditionalFormat.js +98 -0
  297. package/dist/components/organisms/DataGrid/filterRows.d.ts +5 -0
  298. package/dist/components/organisms/DataGrid/filterRows.js +60 -0
  299. package/dist/components/organisms/DataGrid/marks.d.ts +9 -0
  300. package/dist/components/organisms/DataGrid/marks.js +91 -0
  301. package/dist/components/organisms/DataGrid/types.d.ts +126 -0
  302. package/dist/components/organisms/DataGrid/types.js +21 -0
  303. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  304. package/dist/components/organisms/EditorShell/EditorShell.svelte +123 -28
  305. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  306. package/dist/components/organisms/FileUploader/FileUploader.svelte +77 -15
  307. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +11 -0
  308. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  309. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  310. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  311. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  312. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  313. package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.d.ts +33 -0
  314. package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.js +56 -0
  315. package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte +830 -0
  316. package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte.d.ts +68 -0
  317. package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte +600 -0
  318. package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte.d.ts +7 -0
  319. package/dist/components/organisms/ResourceStudio/fieldsToColumns.d.ts +4 -0
  320. package/dist/components/organisms/ResourceStudio/fieldsToColumns.js +20 -0
  321. package/dist/components/organisms/ResourceStudio/fieldsToSchema.d.ts +6 -0
  322. package/dist/components/organisms/ResourceStudio/fieldsToSchema.js +53 -0
  323. package/dist/components/organisms/ResourceStudio/types.d.ts +69 -0
  324. package/dist/components/organisms/ResourceStudio/types.js +15 -0
  325. package/dist/components/organisms/Scheduler/Scheduler.svelte.d.ts +1 -1
  326. package/dist/components/organisms/SchemaForm/SchemaForm.svelte +10 -3
  327. package/dist/components/organisms/SchemaForm/SchemaForm.svelte.d.ts +1 -0
  328. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  329. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  330. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +308 -0
  331. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +13 -0
  332. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +10 -0
  333. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  334. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  335. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  336. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  337. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  338. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  339. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  340. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  341. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  342. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  343. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  344. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  345. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  346. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.d.ts +25 -0
  347. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.js +18 -0
  348. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte +192 -0
  349. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte.d.ts +62 -0
  350. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte +129 -0
  351. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte.d.ts +7 -0
  352. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  353. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  354. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  355. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  356. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  357. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  358. package/dist/index.d.ts +94 -1
  359. package/dist/index.js +68 -0
  360. package/dist/types/xyflow-svelte.d.ts +62 -0
  361. package/dist/utils/audioProject.d.ts +19 -0
  362. package/dist/utils/audioProject.js +70 -0
  363. package/dist/utils/blogDocument.d.ts +175 -0
  364. package/dist/utils/blogDocument.js +220 -0
  365. package/dist/utils/blueprintRuntime.d.ts +34 -0
  366. package/dist/utils/blueprintRuntime.js +289 -0
  367. package/dist/utils/canvasDocument.d.ts +239 -0
  368. package/dist/utils/canvasDocument.js +443 -0
  369. package/dist/utils/canvasExport.d.ts +10 -0
  370. package/dist/utils/canvasExport.js +469 -0
  371. package/dist/utils/canvasHierarchy.d.ts +189 -0
  372. package/dist/utils/canvasHierarchy.js +674 -0
  373. package/dist/utils/canvasHistory.d.ts +19 -0
  374. package/dist/utils/canvasHistory.js +48 -0
  375. package/dist/utils/canvasWidget.d.ts +81 -0
  376. package/dist/utils/canvasWidget.js +597 -0
  377. package/dist/utils/marqueeSelect.d.ts +48 -0
  378. package/dist/utils/marqueeSelect.js +189 -0
  379. package/dist/utils/mediaTime.d.ts +16 -0
  380. package/dist/utils/mediaTime.js +57 -0
  381. package/dist/utils/mediaTracks.d.ts +61 -0
  382. package/dist/utils/mediaTracks.js +102 -0
  383. package/dist/utils/nodeGraph.d.ts +354 -0
  384. package/dist/utils/nodeGraph.js +1453 -0
  385. package/dist/utils/queryBridge.d.ts +18 -0
  386. package/dist/utils/queryBridge.js +118 -0
  387. package/dist/utils/videoSequence.d.ts +13 -0
  388. package/dist/utils/videoSequence.js +63 -0
  389. package/package.json +5 -2
package/README.md CHANGED
@@ -65,7 +65,7 @@ pnpm release
65
65
  Esto hace bump de versión, commit, tag `vX.Y.Z` y push. CI entonces:
66
66
 
67
67
  1. Publica `@r2digisolutions/components` en npm
68
- 2. Crea un **GitHub Release** con notas generadas desde los commits desde el tag anterior
68
+ 2. Crea un **GitHub Release** con el enlace a npm y la lista de commits desde el tag anterior
69
69
 
70
70
  Mismo flujo que usan muchas libs con `bumpp` / `release-it` (tag → CI → npm + GitHub Release).
71
71
 
@@ -10,7 +10,10 @@
10
10
  value?: string;
11
11
  size?: 'sm' | 'md' | 'lg';
12
12
  class?: string;
13
+ /** Accessible name when no visible label is provided. */
14
+ 'aria-label'?: string;
13
15
  onchange?: (checked: boolean) => void;
16
+ onclick?: (e: MouseEvent) => void;
14
17
  }
15
18
 
16
19
  let {
@@ -24,7 +27,9 @@
24
27
  value,
25
28
  size = 'md',
26
29
  class: className = '',
27
- onchange
30
+ 'aria-label': ariaLabel,
31
+ onchange,
32
+ onclick
28
33
  }: CheckboxProps = $props();
29
34
 
30
35
  const inputId = $derived(id ?? `checkbox-${Math.random().toString(36).slice(2, 9)}`);
@@ -48,7 +53,7 @@
48
53
  onchange?.(checked);
49
54
  }
50
55
 
51
- // Apply indeterminate state via action
56
+ /** Keep DOM indeterminate in sync without bind loops. */
52
57
  function setIndeterminate(node: HTMLInputElement) {
53
58
  $effect(() => {
54
59
  node.indeterminate = indeterminate;
@@ -64,7 +69,8 @@
64
69
  {name}
65
70
  {value}
66
71
  {disabled}
67
- bind:checked
72
+ checked={checked}
73
+ aria-label={ariaLabel ?? label}
68
74
  {@attach setIndeterminate}
69
75
  class={[
70
76
  'shrink-0 cursor-pointer border-2 border-border bg-surface-elevated appearance-none transition-all duration-150',
@@ -86,6 +92,7 @@
86
92
  background-repeat: no-repeat;
87
93
  "
88
94
  onchange={handleChange}
95
+ {onclick}
89
96
  />
90
97
  </div>
91
98
 
@@ -9,7 +9,10 @@ interface CheckboxProps {
9
9
  value?: string;
10
10
  size?: 'sm' | 'md' | 'lg';
11
11
  class?: string;
12
+ /** Accessible name when no visible label is provided. */
13
+ 'aria-label'?: string;
12
14
  onchange?: (checked: boolean) => void;
15
+ onclick?: (e: MouseEvent) => void;
13
16
  }
14
17
  declare const Checkbox: import("svelte").Component<CheckboxProps, {}, "checked" | "indeterminate">;
15
18
  type Checkbox = ReturnType<typeof Checkbox>;
@@ -35,7 +35,7 @@
35
35
  const isDisabled = $derived(disabled || loading);
36
36
 
37
37
  const baseClasses =
38
- 'relative inline-flex items-center justify-center transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 select-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-50';
38
+ 'relative inline-flex shrink-0 items-center justify-center transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 select-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-50';
39
39
 
40
40
  const variantClasses: Record<IconButtonVariant, string> = {
41
41
  primary:
@@ -10,7 +10,7 @@
10
10
  label?: string;
11
11
  placeholder?: string;
12
12
  value?: string;
13
- type?: 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
13
+ type?: 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url' | 'date';
14
14
  status?: InputStatus;
15
15
  helperText?: string;
16
16
  disabled?: boolean;
@@ -21,10 +21,15 @@
21
21
  leadIcon?: Snippet;
22
22
  trailIcon?: Snippet;
23
23
  class?: string;
24
+ autofocus?: boolean;
25
+ min?: number;
26
+ max?: number;
27
+ step?: number;
24
28
  oninput?: (e: Event) => void;
25
29
  onchange?: (e: Event) => void;
26
30
  onfocus?: (e: FocusEvent) => void;
27
31
  onblur?: (e: FocusEvent) => void;
32
+ onkeydown?: (e: KeyboardEvent) => void;
28
33
  }
29
34
 
30
35
  let {
@@ -40,6 +45,10 @@
40
45
  readonly = false,
41
46
  required = false,
42
47
  clearable = false,
48
+ autofocus = false,
49
+ min,
50
+ max,
51
+ step,
43
52
  size = 'md',
44
53
  leadIcon,
45
54
  trailIcon,
@@ -47,7 +56,8 @@
47
56
  oninput,
48
57
  onchange,
49
58
  onfocus,
50
- onblur
59
+ onblur,
60
+ onkeydown
51
61
  }: InputProps = $props();
52
62
 
53
63
  const inputId = $derived(id ?? `input-${Math.random().toString(36).slice(2, 9)}`);
@@ -132,6 +142,10 @@
132
142
  {disabled}
133
143
  {readonly}
134
144
  {required}
145
+ {autofocus}
146
+ {min}
147
+ {max}
148
+ {step}
135
149
  bind:value
136
150
  aria-describedby={helperText ? helperId : undefined}
137
151
  aria-invalid={status === 'error'}
@@ -144,6 +158,7 @@
144
158
  {onchange}
145
159
  {onfocus}
146
160
  {onblur}
161
+ {onkeydown}
147
162
  />
148
163
 
149
164
  {#if hasClear}
@@ -7,7 +7,7 @@ interface InputProps {
7
7
  label?: string;
8
8
  placeholder?: string;
9
9
  value?: string;
10
- type?: 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
10
+ type?: 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url' | 'date';
11
11
  status?: InputStatus;
12
12
  helperText?: string;
13
13
  disabled?: boolean;
@@ -18,10 +18,15 @@ interface InputProps {
18
18
  leadIcon?: Snippet;
19
19
  trailIcon?: Snippet;
20
20
  class?: string;
21
+ autofocus?: boolean;
22
+ min?: number;
23
+ max?: number;
24
+ step?: number;
21
25
  oninput?: (e: Event) => void;
22
26
  onchange?: (e: Event) => void;
23
27
  onfocus?: (e: FocusEvent) => void;
24
28
  onblur?: (e: FocusEvent) => void;
29
+ onkeydown?: (e: KeyboardEvent) => void;
25
30
  }
26
31
  declare const Input: import("svelte").Component<InputProps, {}, "value">;
27
32
  type Input = ReturnType<typeof Input>;
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import type { MarqueeRect as MarqueeRectBox } from '../../../utils/marqueeSelect.js';
3
+
4
+ interface MarqueeRectProps {
5
+ rect?: MarqueeRectBox | null;
6
+ class?: string;
7
+ }
8
+
9
+ let { rect = null, class: className = '' }: MarqueeRectProps = $props();
10
+ </script>
11
+
12
+ {#if rect && rect.width > 0 && rect.height > 0}
13
+ <div
14
+ class={[
15
+ 'pointer-events-none absolute z-50 rounded-sm border border-brand-500 bg-brand-500/15',
16
+ className
17
+ ]}
18
+ style={`left:${rect.x}px;top:${rect.y}px;width:${rect.width}px;height:${rect.height}px`}
19
+ aria-hidden="true"
20
+ ></div>
21
+ {/if}
@@ -0,0 +1,8 @@
1
+ import type { MarqueeRect as MarqueeRectBox } from '../../../utils/marqueeSelect.js';
2
+ interface MarqueeRectProps {
3
+ rect?: MarqueeRectBox | null;
4
+ class?: string;
5
+ }
6
+ declare const MarqueeRect: import("svelte").Component<MarqueeRectProps, {}, "">;
7
+ type MarqueeRect = ReturnType<typeof MarqueeRect>;
8
+ export default MarqueeRect;
@@ -0,0 +1,8 @@
1
+ import MediaKindIconStory from './MediaKindIconStory.svelte';
2
+ const meta = {
3
+ title: 'Atoms/MediaKindIcon',
4
+ component: MediaKindIconStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,122 @@
1
+ <script lang="ts">
2
+ import type { CanvasLayerKind } from '../../../utils/canvasDocument.js';
3
+ import type { MediaAssetKind } from '../../../utils/mediaTracks.js';
4
+ import ImageIcon from '@lucide/svelte/icons/image';
5
+ import Video from '@lucide/svelte/icons/video';
6
+ import AudioLines from '@lucide/svelte/icons/audio-lines';
7
+ import Type from '@lucide/svelte/icons/type';
8
+ import Square from '@lucide/svelte/icons/square';
9
+ import Circle from '@lucide/svelte/icons/circle';
10
+ import Minus from '@lucide/svelte/icons/minus';
11
+ import Triangle from '@lucide/svelte/icons/triangle';
12
+ import Star from '@lucide/svelte/icons/star';
13
+ import MoveRight from '@lucide/svelte/icons/move-right';
14
+ import SquareRoundCorner from '@lucide/svelte/icons/square-round-corner';
15
+ import Hexagon from '@lucide/svelte/icons/hexagon';
16
+ import Pentagon from '@lucide/svelte/icons/pentagon';
17
+ import Diamond from '@lucide/svelte/icons/diamond';
18
+ import Heart from '@lucide/svelte/icons/heart';
19
+ import StickyNote from '@lucide/svelte/icons/sticky-note';
20
+ import LayoutPanelLeft from '@lucide/svelte/icons/layout-panel-left';
21
+ import Layers from '@lucide/svelte/icons/layers';
22
+ import Group from '@lucide/svelte/icons/group';
23
+ import Columns2 from '@lucide/svelte/icons/columns-2';
24
+ import Rows2 from '@lucide/svelte/icons/rows-2';
25
+ import Scaling from '@lucide/svelte/icons/scaling';
26
+ import Box from '@lucide/svelte/icons/box';
27
+ import Component from '@lucide/svelte/icons/component';
28
+ import Frame from '@lucide/svelte/icons/frame';
29
+
30
+ export type MediaKindIconSize = 'sm' | 'md' | 'lg';
31
+
32
+ interface MediaKindIconProps {
33
+ kind: MediaAssetKind | CanvasLayerKind;
34
+ size?: MediaKindIconSize;
35
+ class?: string;
36
+ }
37
+
38
+ let { kind, size = 'md', class: className = '' }: MediaKindIconProps = $props();
39
+
40
+ const sizes: Record<MediaKindIconSize, string> = {
41
+ sm: 'h-3.5 w-3.5',
42
+ md: 'h-4 w-4',
43
+ lg: 'h-5 w-5'
44
+ };
45
+
46
+ const iconClass = $derived(`${sizes[size]} ${className}`.trim());
47
+ </script>
48
+
49
+ {#if kind === 'image'}
50
+ <ImageIcon class={iconClass} aria-hidden="true" />
51
+ {:else if kind === 'video'}
52
+ <Video class={iconClass} aria-hidden="true" />
53
+ {:else if kind === 'audio'}
54
+ <AudioLines class={iconClass} aria-hidden="true" />
55
+ {:else if kind === 'rect'}
56
+ <Square class={iconClass} aria-hidden="true" />
57
+ {:else if kind === 'roundRect' || kind === 'border'}
58
+ <SquareRoundCorner class={iconClass} aria-hidden="true" />
59
+ {:else if kind === 'ellipse'}
60
+ <Circle class={iconClass} aria-hidden="true" />
61
+ {:else if kind === 'triangle'}
62
+ <Triangle class={iconClass} aria-hidden="true" />
63
+ {:else if kind === 'star'}
64
+ <Star class={iconClass} aria-hidden="true" />
65
+ {:else if kind === 'hexagon'}
66
+ <Hexagon class={iconClass} aria-hidden="true" />
67
+ {:else if kind === 'pentagon'}
68
+ <Pentagon class={iconClass} aria-hidden="true" />
69
+ {:else if kind === 'diamond'}
70
+ <Diamond class={iconClass} aria-hidden="true" />
71
+ {:else if kind === 'heart'}
72
+ <Heart class={iconClass} aria-hidden="true" />
73
+ {:else if kind === 'line'}
74
+ <Minus class={iconClass} aria-hidden="true" />
75
+ {:else if kind === 'arrow'}
76
+ <MoveRight class={iconClass} aria-hidden="true" />
77
+ {:else if kind === 'path'}
78
+ <svg class={iconClass} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
79
+ <path stroke-linecap="round" stroke-linejoin="round" d="M4 16l5-8 4 5 3-4 4 7" />
80
+ </svg>
81
+ {:else if kind === 'sticky'}
82
+ <StickyNote class={iconClass} aria-hidden="true" />
83
+ {:else if kind === 'canvasPanel'}
84
+ <LayoutPanelLeft class={iconClass} aria-hidden="true" />
85
+ {:else if kind === 'overlay'}
86
+ <Layers class={iconClass} aria-hidden="true" />
87
+ {:else if kind === 'hBox'}
88
+ <Columns2 class={iconClass} aria-hidden="true" />
89
+ {:else if kind === 'vBox'}
90
+ <Rows2 class={iconClass} aria-hidden="true" />
91
+ {:else if kind === 'sizeBox'}
92
+ <Box class={iconClass} aria-hidden="true" />
93
+ {:else if kind === 'scaleBox'}
94
+ <Scaling class={iconClass} aria-hidden="true" />
95
+ {:else if kind === 'group'}
96
+ <Group class={iconClass} aria-hidden="true" />
97
+ {:else if kind === 'widget'}
98
+ <Component class={iconClass} aria-hidden="true" />
99
+ {:else if kind === 'namedSlot'}
100
+ <Frame class={iconClass} aria-hidden="true" />
101
+ {:else if kind === 'scrollBox'}
102
+ <svg class={iconClass} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
103
+ <rect x="4" y="3" width="16" height="18" rx="2" />
104
+ <path d="M16 8h2M16 12h2M16 16h2" stroke-linecap="round" />
105
+ </svg>
106
+ {:else if kind === 'wrapBox'}
107
+ <svg class={iconClass} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
108
+ <rect x="3" y="4" width="7" height="6" rx="1" />
109
+ <rect x="12" y="4" width="9" height="6" rx="1" />
110
+ <rect x="3" y="13" width="9" height="6" rx="1" />
111
+ <rect x="14" y="13" width="7" height="6" rx="1" />
112
+ </svg>
113
+ {:else if kind === 'uniformGrid'}
114
+ <svg class={iconClass} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
115
+ <rect x="3" y="3" width="7" height="7" rx="1" />
116
+ <rect x="14" y="3" width="7" height="7" rx="1" />
117
+ <rect x="3" y="14" width="7" height="7" rx="1" />
118
+ <rect x="14" y="14" width="7" height="7" rx="1" />
119
+ </svg>
120
+ {:else}
121
+ <Type class={iconClass} aria-hidden="true" />
122
+ {/if}
@@ -0,0 +1,11 @@
1
+ import type { CanvasLayerKind } from '../../../utils/canvasDocument.js';
2
+ import type { MediaAssetKind } from '../../../utils/mediaTracks.js';
3
+ export type MediaKindIconSize = 'sm' | 'md' | 'lg';
4
+ interface MediaKindIconProps {
5
+ kind: MediaAssetKind | CanvasLayerKind;
6
+ size?: MediaKindIconSize;
7
+ class?: string;
8
+ }
9
+ declare const MediaKindIcon: import("svelte").Component<MediaKindIconProps, {}, "">;
10
+ type MediaKindIcon = ReturnType<typeof MediaKindIcon>;
11
+ export default MediaKindIcon;
@@ -0,0 +1,12 @@
1
+ <script lang="ts">
2
+ import MediaKindIcon from './MediaKindIcon.svelte';
3
+ </script>
4
+
5
+ <div class="flex items-center gap-4 text-secondary">
6
+ {#each ['image', 'video', 'audio', 'text'] as kind (kind)}
7
+ <span class="inline-flex items-center gap-1.5 text-sm">
8
+ <MediaKindIcon kind={kind as 'image' | 'video' | 'audio' | 'text'} />
9
+ {kind}
10
+ </span>
11
+ {/each}
12
+ </div>
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const MediaKindIconStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type MediaKindIconStory = InstanceType<typeof MediaKindIconStory>;
18
+ export default MediaKindIconStory;
@@ -0,0 +1,9 @@
1
+ import type { StoryObj } from '@storybook/svelte';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("svelte").Component<Record<string, never>, {}, "">;
5
+ tags: string[];
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ export declare const Default: Story;
@@ -0,0 +1,8 @@
1
+ import PanKnobStory from './PanKnobStory.svelte';
2
+ const meta = {
3
+ title: 'Atoms/PanKnob',
4
+ component: PanKnobStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,218 @@
1
+ <script lang="ts">
2
+ export type PanKnobSize = 'sm' | 'md' | 'lg';
3
+
4
+ interface PanKnobProps {
5
+ /** Pan value from -1 (full L) to 1 (full R). 0 is center. */
6
+ value?: number;
7
+ min?: number;
8
+ max?: number;
9
+ step?: number;
10
+ size?: PanKnobSize;
11
+ disabled?: boolean;
12
+ showLabel?: boolean;
13
+ showValue?: boolean;
14
+ label?: string;
15
+ class?: string;
16
+ oninput?: (value: number) => void;
17
+ onchange?: (value: number) => void;
18
+ }
19
+
20
+ let {
21
+ value = $bindable(0),
22
+ min = -1,
23
+ max = 1,
24
+ step = 0.01,
25
+ size = 'md',
26
+ disabled = false,
27
+ showLabel = true,
28
+ showValue = true,
29
+ label = 'Pan',
30
+ class: className = '',
31
+ oninput,
32
+ onchange
33
+ }: PanKnobProps = $props();
34
+
35
+ /** Degrees of travel from center to either extreme (Logic-like). */
36
+ const SWEEP = 135;
37
+
38
+ const px = $derived({ sm: 28, md: 36, lg: 48 }[size]);
39
+ const stroke = $derived({ sm: 2.5, md: 3, lg: 3.5 }[size]);
40
+ const clamped = $derived(Math.min(max, Math.max(min, value)));
41
+ const norm = $derived(max === min ? 0 : (clamped - min) / (max - min)); // 0..1
42
+ const bipolar = $derived(norm * 2 - 1); // -1..1 relative to min/max
43
+ const rotation = $derived(bipolar * SWEEP);
44
+
45
+ const display = $derived.by(() => {
46
+ const abs = Math.round(Math.abs(bipolar) * 64);
47
+ if (abs === 0) return 'C';
48
+ return bipolar < 0 ? `L${abs}` : `R${abs}`;
49
+ });
50
+
51
+ let dragging = $state(false);
52
+ let startY = 0;
53
+ let startValue = 0;
54
+
55
+ function snap(v: number) {
56
+ const stepped = Math.round(v / step) * step;
57
+ return Math.min(max, Math.max(min, Number(stepped.toFixed(4))));
58
+ }
59
+
60
+ function commit(next: number, final = false) {
61
+ const v = snap(next);
62
+ value = v;
63
+ oninput?.(v);
64
+ if (final) onchange?.(v);
65
+ }
66
+
67
+ function onPointerDown(e: PointerEvent) {
68
+ if (disabled) return;
69
+ e.preventDefault();
70
+ (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);
71
+ dragging = true;
72
+ startY = e.clientY;
73
+ startValue = clamped;
74
+ }
75
+
76
+ function onPointerMove(e: PointerEvent) {
77
+ if (!dragging || disabled) return;
78
+ const sensitivity = e.shiftKey ? 300 : 100;
79
+ const delta = (startY - e.clientY) / sensitivity;
80
+ commit(startValue + delta * (max - min));
81
+ }
82
+
83
+ function onPointerUp(e: PointerEvent) {
84
+ if (!dragging) return;
85
+ dragging = false;
86
+ try {
87
+ (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);
88
+ } catch {
89
+ /* already released */
90
+ }
91
+ onchange?.(clamped);
92
+ }
93
+
94
+ function onDblClick() {
95
+ if (disabled) return;
96
+ commit(0, true);
97
+ }
98
+
99
+ function onKeyDown(e: KeyboardEvent) {
100
+ if (disabled) return;
101
+ const fine = e.shiftKey ? step : step * 5;
102
+ if (e.key === 'ArrowUp' || e.key === 'ArrowRight') {
103
+ e.preventDefault();
104
+ commit(clamped + fine, true);
105
+ } else if (e.key === 'ArrowDown' || e.key === 'ArrowLeft') {
106
+ e.preventDefault();
107
+ commit(clamped - fine, true);
108
+ } else if (e.key === 'Home') {
109
+ e.preventDefault();
110
+ commit(0, true);
111
+ }
112
+ }
113
+
114
+ /** Polar helper: angle 0 = 12 o'clock, positive clockwise. */
115
+ function polar(cx: number, cy: number, r: number, deg: number) {
116
+ const rad = ((deg - 90) * Math.PI) / 180;
117
+ return { x: cx + r * Math.cos(rad), y: cy + r * Math.sin(rad) };
118
+ }
119
+
120
+ function arcPath(r: number, fromDeg: number, toDeg: number) {
121
+ const c = px / 2;
122
+ const start = polar(c, c, r, fromDeg);
123
+ const end = polar(c, c, r, toDeg);
124
+ const delta = toDeg - fromDeg;
125
+ const large = Math.abs(delta) > 180 ? 1 : 0;
126
+ const sweep = delta >= 0 ? 1 : 0;
127
+ return `M ${start.x} ${start.y} A ${r} ${r} 0 ${large} ${sweep} ${end.x} ${end.y}`;
128
+ }
129
+
130
+ const trackR = $derived(px / 2 - stroke);
131
+ const trackPath = $derived(arcPath(trackR, -SWEEP, SWEEP));
132
+ const fillPath = $derived(
133
+ Math.abs(bipolar) < 0.001 ? '' : arcPath(trackR, 0, rotation)
134
+ );
135
+ const indicator = $derived(polar(px / 2, px / 2, trackR - stroke * 1.6, rotation));
136
+ </script>
137
+
138
+ <div class={['inline-flex flex-col items-center gap-0.5 select-none', className]}>
139
+ {#if showLabel}
140
+ <span class="text-[9px] font-medium uppercase tracking-wide text-muted">{label}</span>
141
+ {/if}
142
+
143
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
144
+ <div
145
+ role="slider"
146
+ tabindex={disabled ? -1 : 0}
147
+ aria-label={label}
148
+ aria-valuemin={min}
149
+ aria-valuemax={max}
150
+ aria-valuenow={clamped}
151
+ aria-valuetext={display}
152
+ aria-disabled={disabled || undefined}
153
+ class={[
154
+ 'relative touch-none rounded-full outline-none focus-visible:ring-2 focus-visible:ring-brand-500/30',
155
+ disabled ? 'cursor-not-allowed opacity-50' : 'cursor-ns-resize'
156
+ ]}
157
+ style:width="{px}px"
158
+ style:height="{px}px"
159
+ onpointerdown={onPointerDown}
160
+ onpointermove={onPointerMove}
161
+ onpointerup={onPointerUp}
162
+ onpointercancel={onPointerUp}
163
+ ondblclick={onDblClick}
164
+ onkeydown={onKeyDown}
165
+ >
166
+ <svg width={px} height={px} viewBox="0 0 {px} {px}" aria-hidden="true" class="block">
167
+ <!-- Track arc -->
168
+ <path
169
+ d={trackPath}
170
+ fill="none"
171
+ stroke="var(--color-border-strong, #d4d4d8)"
172
+ stroke-width={stroke}
173
+ stroke-linecap="round"
174
+ />
175
+
176
+ <!-- Bipolar fill from center -->
177
+ {#if fillPath}
178
+ <path
179
+ d={fillPath}
180
+ fill="none"
181
+ stroke="var(--color-brand-500, #3b82f6)"
182
+ stroke-width={stroke}
183
+ stroke-linecap="round"
184
+ />
185
+ {/if}
186
+
187
+ <!-- Knob body -->
188
+ <circle
189
+ cx={px / 2}
190
+ cy={px / 2}
191
+ r={trackR - stroke * 1.8}
192
+ fill="var(--surface-elevated, #fff)"
193
+ stroke="var(--border, #e4e4e7)"
194
+ stroke-width="1"
195
+ />
196
+
197
+ <!-- Center pip -->
198
+ <circle
199
+ cx={px / 2}
200
+ cy={px / 2}
201
+ r={1.5}
202
+ fill="var(--border-strong, #d4d4d8)"
203
+ />
204
+
205
+ <!-- Indicator notch -->
206
+ <circle
207
+ cx={indicator.x}
208
+ cy={indicator.y}
209
+ r={stroke * 0.85}
210
+ fill="var(--color-brand-500, #3b82f6)"
211
+ />
212
+ </svg>
213
+ </div>
214
+
215
+ {#if showValue}
216
+ <span class="font-mono text-[9px] tabular-nums text-secondary">{display}</span>
217
+ {/if}
218
+ </div>
@@ -0,0 +1,19 @@
1
+ export type PanKnobSize = 'sm' | 'md' | 'lg';
2
+ interface PanKnobProps {
3
+ /** Pan value from -1 (full L) to 1 (full R). 0 is center. */
4
+ value?: number;
5
+ min?: number;
6
+ max?: number;
7
+ step?: number;
8
+ size?: PanKnobSize;
9
+ disabled?: boolean;
10
+ showLabel?: boolean;
11
+ showValue?: boolean;
12
+ label?: string;
13
+ class?: string;
14
+ oninput?: (value: number) => void;
15
+ onchange?: (value: number) => void;
16
+ }
17
+ declare const PanKnob: import("svelte").Component<PanKnobProps, {}, "value">;
18
+ type PanKnob = ReturnType<typeof PanKnob>;
19
+ export default PanKnob;
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import PanKnob from './PanKnob.svelte';
3
+
4
+ let value = $state(-0.2);
5
+ let left = $state(-0.75);
6
+ let center = $state(0);
7
+ let right = $state(0.6);
8
+ </script>
9
+
10
+ <div class="flex flex-wrap items-end gap-8 p-4">
11
+ <PanKnob bind:value size="md" />
12
+ <PanKnob bind:value={left} size="sm" label="L" />
13
+ <PanKnob bind:value={center} size="md" label="C" />
14
+ <PanKnob bind:value={right} size="lg" label="R" />
15
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const PanKnobStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type PanKnobStory = ReturnType<typeof PanKnobStory>;
3
+ export default PanKnobStory;
@@ -0,0 +1,8 @@
1
+ import PlayheadStory from './PlayheadStory.svelte';
2
+ const meta = {
3
+ title: 'Atoms/Playhead',
4
+ component: PlayheadStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};