@r2digisolutions/components 0.1.7 → 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 (324) hide show
  1. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  2. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  3. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  4. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  5. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  6. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  7. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  8. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  9. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  10. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  11. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  12. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  13. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  14. package/dist/components/atoms/Playhead/Playhead.svelte +59 -0
  15. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +13 -0
  16. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  17. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  18. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  19. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +58 -0
  20. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +10 -0
  21. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  22. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  23. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  24. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  25. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  26. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  27. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  28. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  29. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  30. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  31. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  32. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  33. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  34. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  35. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +97 -61
  36. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  37. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  38. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  39. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  40. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  41. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  42. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  43. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  44. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  45. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  46. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  47. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  48. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  49. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  50. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  51. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  52. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  53. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +1 -1
  54. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  55. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  56. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  57. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  58. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  59. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  60. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  61. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  62. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  63. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  64. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  65. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +204 -60
  66. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +9 -0
  67. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  68. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  69. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  70. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  71. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  72. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  73. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  74. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  75. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  76. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  77. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  78. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  79. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  80. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  81. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +94 -0
  82. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +15 -0
  83. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  84. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  85. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  86. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  87. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  88. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  89. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  90. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  91. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  92. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  93. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  94. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  95. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  96. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  97. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  98. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  99. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  100. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  101. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  102. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  103. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  104. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  105. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  106. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  107. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  108. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  109. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +131 -0
  110. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +19 -0
  111. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  112. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  113. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  114. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  115. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  116. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  117. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  118. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  119. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  120. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  121. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  122. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  123. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  124. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  125. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  126. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  127. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  128. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  129. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  130. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  131. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  132. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  133. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  134. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  135. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  136. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +72 -0
  137. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +12 -0
  138. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  139. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  140. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  141. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  142. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  143. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  144. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  145. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  146. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  147. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  148. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  149. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  150. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  151. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  152. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  153. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  154. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  155. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  156. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  157. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  158. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  159. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  160. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  161. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  162. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  163. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  164. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  165. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  166. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  167. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  168. package/dist/components/molecules/SplitPane/SplitPane.svelte +96 -37
  169. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  170. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  171. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  172. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  173. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  174. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  175. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  176. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  177. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +116 -0
  178. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +15 -0
  179. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  180. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  181. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  182. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +56 -0
  183. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +16 -0
  184. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  185. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  186. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  187. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  188. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  189. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  190. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  191. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  192. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  193. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  194. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  195. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  196. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  197. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  198. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  199. package/dist/components/molecules/TransportControls/TransportControls.svelte +53 -0
  200. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +12 -0
  201. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +18 -0
  202. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  203. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  204. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  205. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  206. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  207. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  208. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  209. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  210. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  211. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +59 -0
  212. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +9 -0
  213. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  214. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  215. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  216. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  217. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  218. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  219. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  220. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  221. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  222. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  223. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  224. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  225. package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
  226. package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
  227. package/dist/components/organisms/AudioEditor/AudioEditor.svelte +273 -0
  228. package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
  229. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
  230. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
  231. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  232. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  233. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  234. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  235. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  236. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  237. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  238. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  239. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  240. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  241. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  242. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  243. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  244. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  245. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  246. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  247. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  248. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  249. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  250. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  251. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  252. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  253. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  254. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  255. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  256. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  257. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  258. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  259. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  260. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  261. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  262. package/dist/components/organisms/EditorShell/EditorShell.svelte +123 -28
  263. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  264. package/dist/components/organisms/FileUploader/FileUploader.svelte +77 -15
  265. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +11 -0
  266. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  267. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  268. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  269. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  270. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  271. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  272. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  273. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +308 -0
  274. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +13 -0
  275. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +10 -0
  276. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  277. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  278. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  279. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  280. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  281. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  282. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  283. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  284. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  285. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  286. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  287. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  288. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  289. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  290. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  291. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  292. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  293. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  294. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  295. package/dist/index.d.ts +83 -1
  296. package/dist/index.js +60 -0
  297. package/dist/types/xyflow-svelte.d.ts +62 -0
  298. package/dist/utils/audioProject.d.ts +19 -0
  299. package/dist/utils/audioProject.js +70 -0
  300. package/dist/utils/blogDocument.d.ts +175 -0
  301. package/dist/utils/blogDocument.js +220 -0
  302. package/dist/utils/blueprintRuntime.d.ts +34 -0
  303. package/dist/utils/blueprintRuntime.js +289 -0
  304. package/dist/utils/canvasDocument.d.ts +239 -0
  305. package/dist/utils/canvasDocument.js +443 -0
  306. package/dist/utils/canvasExport.d.ts +10 -0
  307. package/dist/utils/canvasExport.js +469 -0
  308. package/dist/utils/canvasHierarchy.d.ts +189 -0
  309. package/dist/utils/canvasHierarchy.js +674 -0
  310. package/dist/utils/canvasHistory.d.ts +19 -0
  311. package/dist/utils/canvasHistory.js +48 -0
  312. package/dist/utils/canvasWidget.d.ts +81 -0
  313. package/dist/utils/canvasWidget.js +597 -0
  314. package/dist/utils/mediaTime.d.ts +16 -0
  315. package/dist/utils/mediaTime.js +57 -0
  316. package/dist/utils/mediaTracks.d.ts +61 -0
  317. package/dist/utils/mediaTracks.js +102 -0
  318. package/dist/utils/nodeGraph.d.ts +354 -0
  319. package/dist/utils/nodeGraph.js +1453 -0
  320. package/dist/utils/queryBridge.d.ts +18 -0
  321. package/dist/utils/queryBridge.js +118 -0
  322. package/dist/utils/videoSequence.d.ts +13 -0
  323. package/dist/utils/videoSequence.js +63 -0
  324. 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;