@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
@@ -0,0 +1,62 @@
1
+ <script lang="ts">
2
+ import QueryBuilder from './QueryBuilder.svelte';
3
+ import FilterList from '../FilterList/FilterList.svelte';
4
+ import QueryBar from '../QueryBar/QueryBar.svelte';
5
+ import {
6
+ emptyFilterGroup,
7
+ type AdvancedFilterGroup,
8
+ type FilterFieldDef
9
+ } from '../../../utils/advancedFilters.js';
10
+ import { queryStringToGroup, groupToQueryString } from '../../../utils/queryBridge.js';
11
+
12
+ const fields: FilterFieldDef[] = [
13
+ {
14
+ id: 'brand',
15
+ label: 'Brand',
16
+ type: 'select',
17
+ options: [
18
+ { value: 'nike', label: 'Nike' },
19
+ { value: 'adidas', label: 'Adidas' }
20
+ ]
21
+ },
22
+ { id: 'price', label: 'Price', type: 'number' },
23
+ {
24
+ id: 'status',
25
+ label: 'Status',
26
+ type: 'select',
27
+ options: [
28
+ { value: 'active', label: 'Active' },
29
+ { value: 'draft', label: 'Draft' }
30
+ ]
31
+ }
32
+ ];
33
+
34
+ let query = $state<AdvancedFilterGroup>(emptyFilterGroup());
35
+ let queryString = $state('brand:nike AND price>=100');
36
+
37
+ $effect(() => {
38
+ query = queryStringToGroup(queryString, fields);
39
+ });
40
+
41
+ function onSubmit(q: string) {
42
+ queryString = q;
43
+ query = queryStringToGroup(q, fields);
44
+ }
45
+
46
+ function onQueryChange(next: AdvancedFilterGroup) {
47
+ query = next;
48
+ queryString = groupToQueryString(next, fields);
49
+ }
50
+ </script>
51
+
52
+ <div class="mx-auto flex w-full max-w-3xl flex-col gap-4 p-4">
53
+ <QueryBar bind:value={queryString} {fields} onsubmit={onSubmit} />
54
+ <FilterList
55
+ bind:query
56
+ bind:queryString
57
+ {fields}
58
+ showQueryString
59
+ onchange={onQueryChange}
60
+ />
61
+ <QueryBuilder bind:query {fields} onchange={onQueryChange} />
62
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const QueryBuilderStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type QueryBuilderStory = ReturnType<typeof QueryBuilderStory>;
3
+ export default QueryBuilderStory;
@@ -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 RelationPickerStory from './RelationPickerStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/RelationPicker',
4
+ component: RelationPickerStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,180 @@
1
+ <script lang="ts">
2
+ import Input from '../../atoms/Input/Input.svelte';
3
+ import Chip from '../../atoms/Chip/Chip.svelte';
4
+ import EntityPreview from '../EntityPreview/EntityPreview.svelte';
5
+ import Spinner from '../../atoms/Spinner/Spinner.svelte';
6
+
7
+ export interface RelationOption {
8
+ id: string;
9
+ title: string;
10
+ subtitle?: string;
11
+ meta?: string;
12
+ image?: string;
13
+ kind?: string;
14
+ }
15
+
16
+ interface RelationPickerProps {
17
+ options?: RelationOption[];
18
+ value?: string | string[];
19
+ multiple?: boolean;
20
+ placeholder?: string;
21
+ loading?: boolean;
22
+ disabled?: boolean;
23
+ emptyLabel?: string;
24
+ class?: string;
25
+ onsearch?: (query: string) => void;
26
+ onchange?: (value: string | string[]) => void;
27
+ loadOptions?: (query: string) => Promise<RelationOption[]>;
28
+ }
29
+
30
+ let {
31
+ options = [],
32
+ value = $bindable<string | string[]>(''),
33
+ multiple = false,
34
+ placeholder = 'Search related records…',
35
+ loading = false,
36
+ disabled = false,
37
+ emptyLabel = 'No results',
38
+ class: className = '',
39
+ onsearch,
40
+ onchange,
41
+ loadOptions
42
+ }: RelationPickerProps = $props();
43
+
44
+ let query = $state('');
45
+ let open = $state(false);
46
+ let remote = $state<RelationOption[] | null>(null);
47
+ let busy = $state(false);
48
+
49
+ const selectedIds = $derived(
50
+ multiple
51
+ ? Array.isArray(value)
52
+ ? value
53
+ : value
54
+ ? [value]
55
+ : []
56
+ : typeof value === 'string' && value
57
+ ? [value]
58
+ : Array.isArray(value)
59
+ ? value.slice(0, 1)
60
+ : []
61
+ );
62
+
63
+ const pool = $derived(remote ?? options);
64
+
65
+ const filtered = $derived.by(() => {
66
+ const q = query.trim().toLowerCase();
67
+ if (!q) return pool;
68
+ return pool.filter(
69
+ (o) =>
70
+ o.title.toLowerCase().includes(q) ||
71
+ o.subtitle?.toLowerCase().includes(q) ||
72
+ o.id.toLowerCase().includes(q)
73
+ );
74
+ });
75
+
76
+ const selectedOptions = $derived(
77
+ selectedIds
78
+ .map((id) => pool.find((o) => o.id === id) ?? options.find((o) => o.id === id))
79
+ .filter(Boolean) as RelationOption[]
80
+ );
81
+
82
+ let searchTimer: ReturnType<typeof setTimeout> | undefined;
83
+
84
+ async function runSearch(q: string) {
85
+ onsearch?.(q);
86
+ if (!loadOptions) {
87
+ remote = null;
88
+ return;
89
+ }
90
+ busy = true;
91
+ try {
92
+ remote = await loadOptions(q);
93
+ } finally {
94
+ busy = false;
95
+ }
96
+ }
97
+
98
+ function onQueryInput(e: Event) {
99
+ query = (e.currentTarget as HTMLInputElement).value;
100
+ open = true;
101
+ clearTimeout(searchTimer);
102
+ searchTimer = setTimeout(() => runSearch(query), 200);
103
+ }
104
+
105
+ function toggle(id: string) {
106
+ if (multiple) {
107
+ const set = new Set(selectedIds);
108
+ if (set.has(id)) set.delete(id);
109
+ else set.add(id);
110
+ value = [...set];
111
+ } else {
112
+ value = id;
113
+ open = false;
114
+ query = '';
115
+ }
116
+ onchange?.(value);
117
+ }
118
+
119
+ function remove(id: string) {
120
+ if (multiple) {
121
+ value = selectedIds.filter((x) => x !== id);
122
+ } else {
123
+ value = '';
124
+ }
125
+ onchange?.(value);
126
+ }
127
+ </script>
128
+
129
+ <div class={['relative flex flex-col gap-2', className]} data-relation-picker>
130
+ {#if selectedOptions.length}
131
+ <div class="flex flex-wrap gap-1.5">
132
+ {#each selectedOptions as opt (opt.id)}
133
+ <Chip size="sm" variant="primary" dismissible ondismiss={() => remove(opt.id)}>
134
+ {opt.title}
135
+ </Chip>
136
+ {/each}
137
+ </div>
138
+ {/if}
139
+
140
+ <Input
141
+ value={query}
142
+ {placeholder}
143
+ {disabled}
144
+ oninput={onQueryInput}
145
+ onfocus={() => (open = true)}
146
+ />
147
+
148
+ {#if open && !disabled}
149
+ <div
150
+ class="absolute top-full z-20 mt-1 max-h-64 w-full overflow-auto rounded-xl border border-border bg-surface-elevated p-1 shadow-lg"
151
+ role="listbox"
152
+ >
153
+ {#if loading || busy}
154
+ <div class="flex items-center justify-center gap-2 px-3 py-6 text-sm text-muted">
155
+ <Spinner size="sm" /> Searching…
156
+ </div>
157
+ {:else if filtered.length === 0}
158
+ <p class="px-3 py-6 text-center text-sm text-muted">{emptyLabel}</p>
159
+ {:else}
160
+ {#each filtered as opt (opt.id)}
161
+ <button
162
+ type="button"
163
+ class="w-full rounded-lg p-1 text-left hover:bg-surface-overlay"
164
+ role="option"
165
+ aria-selected={selectedIds.includes(opt.id)}
166
+ onclick={() => toggle(opt.id)}
167
+ >
168
+ <EntityPreview
169
+ title={opt.title}
170
+ subtitle={opt.subtitle}
171
+ meta={opt.meta}
172
+ image={opt.image}
173
+ kind={opt.kind}
174
+ />
175
+ </button>
176
+ {/each}
177
+ {/if}
178
+ </div>
179
+ {/if}
180
+ </div>
@@ -0,0 +1,24 @@
1
+ export interface RelationOption {
2
+ id: string;
3
+ title: string;
4
+ subtitle?: string;
5
+ meta?: string;
6
+ image?: string;
7
+ kind?: string;
8
+ }
9
+ interface RelationPickerProps {
10
+ options?: RelationOption[];
11
+ value?: string | string[];
12
+ multiple?: boolean;
13
+ placeholder?: string;
14
+ loading?: boolean;
15
+ disabled?: boolean;
16
+ emptyLabel?: string;
17
+ class?: string;
18
+ onsearch?: (query: string) => void;
19
+ onchange?: (value: string | string[]) => void;
20
+ loadOptions?: (query: string) => Promise<RelationOption[]>;
21
+ }
22
+ declare const RelationPicker: import("svelte").Component<RelationPickerProps, {}, "value">;
23
+ type RelationPicker = ReturnType<typeof RelationPicker>;
24
+ export default RelationPicker;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import RelationPicker from './RelationPicker.svelte';
3
+ import type { RelationOption } from './RelationPicker.svelte';
4
+
5
+ const options: RelationOption[] = [
6
+ { id: '1', title: 'Acme Corp', subtitle: 'Customer', kind: 'org' },
7
+ { id: '2', title: 'Jane Doe', subtitle: 'jane@acme.com', kind: 'user' },
8
+ { id: '3', title: 'Project Atlas', subtitle: 'Active', kind: 'project' }
9
+ ];
10
+
11
+ let value = $state<string | string[]>('1');
12
+ </script>
13
+
14
+ <div class="mx-auto max-w-md p-6">
15
+ <RelationPicker bind:value {options} multiple={false} />
16
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const RelationPickerStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type RelationPickerStory = ReturnType<typeof RelationPickerStory>;
3
+ export default RelationPickerStory;
@@ -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 SchemaFieldBuilderStory from './SchemaFieldBuilderStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/SchemaFieldBuilder',
4
+ component: SchemaFieldBuilderStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,154 @@
1
+ <script lang="ts">
2
+ import Button from '../../atoms/Button/Button.svelte';
3
+ import Input from '../../atoms/Input/Input.svelte';
4
+ import Select from '../Select/Select.svelte';
5
+ import type { FieldType, ResourceField } from '../../organisms/ResourceStudio/types.js';
6
+
7
+ export type { ResourceField, FieldType };
8
+
9
+ const FIELD_TYPES: { value: FieldType; label: string }[] = [
10
+ { value: 'string', label: 'String' },
11
+ { value: 'text', label: 'Text' },
12
+ { value: 'number', label: 'Number' },
13
+ { value: 'boolean', label: 'Boolean' },
14
+ { value: 'date', label: 'Date' },
15
+ { value: 'datetime', label: 'DateTime' },
16
+ { value: 'enum', label: 'Enum' },
17
+ { value: 'json', label: 'JSON' },
18
+ { value: 'relation', label: 'Relation' },
19
+ { value: 'file', label: 'File' },
20
+ { value: 'custom', label: 'Custom' }
21
+ ];
22
+
23
+ interface SchemaFieldBuilderProps {
24
+ fields?: ResourceField[];
25
+ class?: string;
26
+ onchange?: (fields: ResourceField[]) => void;
27
+ }
28
+
29
+ let {
30
+ fields = $bindable<ResourceField[]>([]),
31
+ class: className = '',
32
+ onchange
33
+ }: SchemaFieldBuilderProps = $props();
34
+
35
+ function emit(next: ResourceField[]) {
36
+ fields = next;
37
+ onchange?.(next);
38
+ }
39
+
40
+ function addField() {
41
+ const id = `field_${fields.length + 1}`;
42
+ emit([
43
+ ...fields,
44
+ { id, label: `Field ${fields.length + 1}`, type: 'string', required: false }
45
+ ]);
46
+ }
47
+
48
+ function update(id: string, patch: Partial<ResourceField>) {
49
+ emit(fields.map((f) => (f.id === id ? { ...f, ...patch } : f)));
50
+ }
51
+
52
+ function remove(id: string) {
53
+ emit(fields.filter((f) => f.id !== id));
54
+ }
55
+
56
+ function move(id: string, dir: -1 | 1) {
57
+ const idx = fields.findIndex((f) => f.id === id);
58
+ const nextIdx = idx + dir;
59
+ if (idx < 0 || nextIdx < 0 || nextIdx >= fields.length) return;
60
+ const next = [...fields];
61
+ const [item] = next.splice(idx, 1);
62
+ next.splice(nextIdx, 0, item);
63
+ emit(next);
64
+ }
65
+
66
+ function setOptions(id: string, raw: string) {
67
+ const options = raw
68
+ .split('\n')
69
+ .map((l) => l.trim())
70
+ .filter(Boolean)
71
+ .map((line) => {
72
+ const [value, label] = line.split('|');
73
+ return { value: value.trim(), label: (label ?? value).trim() };
74
+ });
75
+ update(id, { options });
76
+ }
77
+ </script>
78
+
79
+ <div
80
+ class={['flex flex-col gap-3 rounded-xl border border-border bg-surface-elevated p-4', className]}
81
+ data-schema-field-builder
82
+ >
83
+ <div class="flex items-center justify-between gap-2">
84
+ <div>
85
+ <p class="text-sm font-semibold text-primary">Schema fields</p>
86
+ <p class="text-xs text-muted">{fields.length} fields</p>
87
+ </div>
88
+ <Button size="sm" onclick={addField}>Add field</Button>
89
+ </div>
90
+
91
+ {#if !fields.length}
92
+ <p class="rounded-lg border border-dashed border-border px-3 py-8 text-center text-sm text-muted">
93
+ No fields yet.
94
+ </p>
95
+ {:else}
96
+ <ul class="flex flex-col gap-2">
97
+ {#each fields as field, i (field.id)}
98
+ <li class="rounded-xl border border-border p-3">
99
+ <div class="mb-2 flex items-center justify-between gap-2">
100
+ <span class="font-mono text-[11px] text-muted">{field.id}</span>
101
+ <div class="flex gap-1">
102
+ <Button size="sm" variant="ghost" disabled={i === 0} onclick={() => move(field.id, -1)}>
103
+
104
+ </Button>
105
+ <Button
106
+ size="sm"
107
+ variant="ghost"
108
+ disabled={i === fields.length - 1}
109
+ onclick={() => move(field.id, 1)}
110
+ >
111
+
112
+ </Button>
113
+ <Button size="sm" variant="ghost" onclick={() => remove(field.id)}>Remove</Button>
114
+ </div>
115
+ </div>
116
+ <div class="grid gap-2 sm:grid-cols-2">
117
+ <Input
118
+ value={field.id}
119
+ placeholder="id"
120
+ oninput={(e) => update(field.id, { id: (e.currentTarget as HTMLInputElement).value })}
121
+ />
122
+ <Input
123
+ value={field.label}
124
+ placeholder="Label"
125
+ oninput={(e) => update(field.id, { label: (e.currentTarget as HTMLInputElement).value })}
126
+ />
127
+ <Select
128
+ value={field.type}
129
+ options={FIELD_TYPES}
130
+ onchange={(v) => update(field.id, { type: v as FieldType })}
131
+ />
132
+ <label class="flex items-center gap-2 text-sm text-secondary">
133
+ <input
134
+ type="checkbox"
135
+ checked={!!field.required}
136
+ onchange={(e) =>
137
+ update(field.id, { required: (e.currentTarget as HTMLInputElement).checked })}
138
+ />
139
+ Required
140
+ </label>
141
+ {#if field.type === 'enum'}
142
+ <textarea
143
+ class="col-span-full min-h-[72px] w-full rounded-lg border border-border bg-surface px-3 py-2 font-mono text-xs text-primary"
144
+ placeholder={'value|Label (one per line)'}
145
+ value={(field.options ?? []).map((o) => `${o.value}|${o.label}`).join('\n')}
146
+ oninput={(e) => setOptions(field.id, (e.currentTarget as HTMLTextAreaElement).value)}
147
+ ></textarea>
148
+ {/if}
149
+ </div>
150
+ </li>
151
+ {/each}
152
+ </ul>
153
+ {/if}
154
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { ResourceField } from '../../organisms/ResourceStudio/types.js';
2
+ interface SchemaFieldBuilderProps {
3
+ fields?: ResourceField[];
4
+ class?: string;
5
+ onchange?: (fields: ResourceField[]) => void;
6
+ }
7
+ declare const SchemaFieldBuilder: import("svelte").Component<SchemaFieldBuilderProps, {
8
+ ResourceField: typeof ResourceField;
9
+ FieldType: typeof FieldType;
10
+ }, "fields">;
11
+ type SchemaFieldBuilder = ReturnType<typeof SchemaFieldBuilder>;
12
+ export default SchemaFieldBuilder;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import SchemaFieldBuilder from './SchemaFieldBuilder.svelte';
3
+ import type { ResourceField } from '../../organisms/ResourceStudio/types.js';
4
+
5
+ let fields = $state<ResourceField[]>([
6
+ { id: 'name', label: 'Name', type: 'string', required: true },
7
+ { id: 'status', label: 'Status', type: 'enum', options: [
8
+ { value: 'active', label: 'Active' },
9
+ { value: 'draft', label: 'Draft' }
10
+ ]}
11
+ ]);
12
+ </script>
13
+
14
+ <div class="mx-auto max-w-xl p-4">
15
+ <SchemaFieldBuilder bind:fields />
16
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const SchemaFieldBuilderStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type SchemaFieldBuilderStory = ReturnType<typeof SchemaFieldBuilderStory>;
3
+ export default SchemaFieldBuilderStory;
@@ -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 SecretFieldStory from './SecretFieldStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/SecretField',
4
+ component: SecretFieldStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,58 @@
1
+ <script lang="ts">
2
+ import Input from '../../atoms/Input/Input.svelte';
3
+ import Button from '../../atoms/Button/Button.svelte';
4
+ import CopyButton from '../CopyButton/CopyButton.svelte';
5
+
6
+ interface SecretFieldProps {
7
+ value?: string;
8
+ label?: string;
9
+ placeholder?: string;
10
+ disabled?: boolean;
11
+ revealLabel?: string;
12
+ hideLabel?: string;
13
+ class?: string;
14
+ onchange?: (value: string) => void;
15
+ onreveal?: () => void;
16
+ oncopy?: () => void;
17
+ }
18
+
19
+ let {
20
+ value = $bindable(''),
21
+ label = 'Secret',
22
+ placeholder = '••••••••••••',
23
+ disabled = false,
24
+ revealLabel = 'Reveal',
25
+ hideLabel = 'Hide',
26
+ class: className = '',
27
+ onchange,
28
+ onreveal,
29
+ oncopy
30
+ }: SecretFieldProps = $props();
31
+
32
+ let revealed = $state(false);
33
+
34
+ function toggle() {
35
+ revealed = !revealed;
36
+ if (revealed) onreveal?.();
37
+ }
38
+ </script>
39
+
40
+ <div class={['flex flex-col gap-1.5', className]} data-secret-field>
41
+ {#if label}
42
+ <span class="text-xs font-medium text-secondary">{label}</span>
43
+ {/if}
44
+ <div class="flex items-center gap-2">
45
+ <Input
46
+ type={revealed ? 'text' : 'password'}
47
+ bind:value
48
+ {placeholder}
49
+ {disabled}
50
+ class="flex-1 font-mono"
51
+ oninput={(e) => onchange?.((e.currentTarget as HTMLInputElement).value)}
52
+ />
53
+ <Button size="sm" variant="secondary" {disabled} onclick={toggle}>
54
+ {revealed ? hideLabel : revealLabel}
55
+ </Button>
56
+ <CopyButton {value} size="sm" oncopy={oncopy} />
57
+ </div>
58
+ </div>
@@ -0,0 +1,15 @@
1
+ interface SecretFieldProps {
2
+ value?: string;
3
+ label?: string;
4
+ placeholder?: string;
5
+ disabled?: boolean;
6
+ revealLabel?: string;
7
+ hideLabel?: string;
8
+ class?: string;
9
+ onchange?: (value: string) => void;
10
+ onreveal?: () => void;
11
+ oncopy?: () => void;
12
+ }
13
+ declare const SecretField: import("svelte").Component<SecretFieldProps, {}, "value">;
14
+ type SecretField = ReturnType<typeof SecretField>;
15
+ export default SecretField;
@@ -0,0 +1,8 @@
1
+ <script lang="ts">
2
+ import SecretField from './SecretField.svelte';
3
+ let value = $state('sk_live_51Hx…demo');
4
+ </script>
5
+
6
+ <div class="mx-auto max-w-md p-4">
7
+ <SecretField bind:value label="API key" />
8
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const SecretFieldStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type SecretFieldStory = ReturnType<typeof SecretFieldStory>;
3
+ export default SecretFieldStory;