@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,412 @@
1
+ <script lang="ts">
2
+ import Button from '../../atoms/Button/Button.svelte';
3
+ import Badge from '../../atoms/Badge/Badge.svelte';
4
+ import IconButton from '../../atoms/IconButton/IconButton.svelte';
5
+ import Text from '../../atoms/Text/Text.svelte';
6
+ import Divider from '../../atoms/Divider/Divider.svelte';
7
+ import ColorSwatch from '../../atoms/ColorSwatch/ColorSwatch.svelte';
8
+ import Toggle from '../../atoms/Toggle/Toggle.svelte';
9
+ import Input from '../../atoms/Input/Input.svelte';
10
+ import Card from '../Card/Card.svelte';
11
+ import Select from '../Select/Select.svelte';
12
+ import ColorPicker from '../ColorPicker/ColorPicker.svelte';
13
+ import EmptyState from '../EmptyState/EmptyState.svelte';
14
+ import type {
15
+ ConditionalFormatRule,
16
+ FormatCondition,
17
+ FormatTarget
18
+ } from '../../organisms/DataGrid/types.js';
19
+ import ArrowUp from '@lucide/svelte/icons/arrow-up';
20
+ import ArrowDown from '@lucide/svelte/icons/arrow-down';
21
+ import Pencil from '@lucide/svelte/icons/pencil';
22
+ import Trash2 from '@lucide/svelte/icons/trash-2';
23
+ import Palette from '@lucide/svelte/icons/palette';
24
+
25
+ interface ColumnOption {
26
+ id: string;
27
+ label: string;
28
+ }
29
+
30
+ interface ConditionalFormatPanelProps {
31
+ rules?: ConditionalFormatRule[];
32
+ columns?: ColumnOption[];
33
+ class?: string;
34
+ onchange?: (rules: ConditionalFormatRule[]) => void;
35
+ }
36
+
37
+ let {
38
+ rules = $bindable<ConditionalFormatRule[]>([]),
39
+ columns = [],
40
+ class: className = '',
41
+ onchange
42
+ }: ConditionalFormatPanelProps = $props();
43
+
44
+ let editingId = $state<string | null>(null);
45
+ let draftName = $state('');
46
+ let draftTarget = $state<string>('row');
47
+ let draftColumnId = $state('');
48
+ let draftOp = $state<string>('eq');
49
+ let draftValue = $state('');
50
+ let draftMin = $state('0');
51
+ let draftMax = $state('100');
52
+ let draftBg = $state('#fef3c7');
53
+ let draftFg = $state('#92400e');
54
+
55
+ const isEditing = $derived(editingId !== null);
56
+
57
+ const targetOptions = [
58
+ { value: 'row', label: 'Entire row' },
59
+ { value: 'cell', label: 'Cell only' }
60
+ ];
61
+
62
+ const ops = [
63
+ { value: 'eq', label: 'Equals' },
64
+ { value: 'neq', label: 'Not equals' },
65
+ { value: 'gt', label: 'Greater than' },
66
+ { value: 'gte', label: '≥ Greater or equal' },
67
+ { value: 'lt', label: 'Less than' },
68
+ { value: 'lte', label: '≤ Less or equal' },
69
+ { value: 'contains', label: 'Contains' },
70
+ { value: 'startsWith', label: 'Starts with' },
71
+ { value: 'empty', label: 'Is empty' },
72
+ { value: 'notEmpty', label: 'Is not empty' },
73
+ { value: 'between', label: 'Between' }
74
+ ];
75
+
76
+ const columnOptions = $derived(columns.map((c) => ({ value: c.id, label: c.label })));
77
+
78
+ const formatSwatches = [
79
+ '#fef3c7',
80
+ '#92400e',
81
+ '#fee2e2',
82
+ '#991b1b',
83
+ '#dcfce7',
84
+ '#166534',
85
+ '#dbeafe',
86
+ '#1e40af',
87
+ '#f3e8ff',
88
+ '#6b21a8',
89
+ '#f1f5f9',
90
+ '#0f172a'
91
+ ];
92
+
93
+ $effect(() => {
94
+ if (!draftColumnId && columns[0]) draftColumnId = columns[0].id;
95
+ });
96
+
97
+ function emit(next: ConditionalFormatRule[]) {
98
+ rules = next;
99
+ onchange?.(next);
100
+ }
101
+
102
+ function buildWhen(): FormatCondition | null {
103
+ const columnId = draftColumnId || columns[0]?.id;
104
+ if (!columnId) return null;
105
+ const op = draftOp as FormatCondition['op'];
106
+ if (op === 'empty' || op === 'notEmpty') return { op, columnId };
107
+ if (op === 'between') {
108
+ return { op: 'between', columnId, min: Number(draftMin), max: Number(draftMax) };
109
+ }
110
+ if (op === 'contains' || op === 'startsWith') {
111
+ return { op, columnId, value: draftValue };
112
+ }
113
+ const num = Number(draftValue);
114
+ const value =
115
+ draftValue !== '' && !Number.isNaN(num) && String(num) === draftValue.trim()
116
+ ? num
117
+ : draftValue;
118
+ return { op: op as 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte', columnId, value };
119
+ }
120
+
121
+ function resetDraft() {
122
+ editingId = null;
123
+ draftName = '';
124
+ draftTarget = 'row';
125
+ draftOp = 'eq';
126
+ draftValue = '';
127
+ draftMin = '0';
128
+ draftMax = '100';
129
+ draftBg = '#fef3c7';
130
+ draftFg = '#92400e';
131
+ draftColumnId = columns[0]?.id ?? '';
132
+ }
133
+
134
+ function loadRule(rule: ConditionalFormatRule) {
135
+ editingId = rule.id;
136
+ draftName = rule.name ?? '';
137
+ draftTarget = rule.target;
138
+ draftBg = rule.style.background ?? '#fef3c7';
139
+ draftFg = rule.style.color ?? '#92400e';
140
+ const w = rule.when;
141
+ draftColumnId = w.columnId;
142
+ draftOp = w.op;
143
+ draftValue = '';
144
+ draftMin = '0';
145
+ draftMax = '100';
146
+ if (w.op === 'between') {
147
+ draftMin = String(w.min);
148
+ draftMax = String(w.max);
149
+ } else if (w.op !== 'empty' && w.op !== 'notEmpty' && 'value' in w) {
150
+ draftValue = String(w.value);
151
+ }
152
+ }
153
+
154
+ function saveRule() {
155
+ const when = buildWhen();
156
+ if (!when) return;
157
+ const target = draftTarget as FormatTarget;
158
+ const style = { background: draftBg, color: draftFg };
159
+
160
+ if (editingId) {
161
+ emit(
162
+ rules.map((r) =>
163
+ r.id === editingId
164
+ ? {
165
+ ...r,
166
+ name: draftName || undefined,
167
+ target,
168
+ columnId: target === 'cell' ? when.columnId : undefined,
169
+ when,
170
+ style: { ...r.style, ...style }
171
+ }
172
+ : r
173
+ )
174
+ );
175
+ resetDraft();
176
+ return;
177
+ }
178
+
179
+ const maxPriority = rules.reduce((m, r) => Math.max(m, r.priority), 0);
180
+ const rule: ConditionalFormatRule = {
181
+ id: `rule-${Math.random().toString(36).slice(2, 9)}`,
182
+ name: draftName || undefined,
183
+ enabled: true,
184
+ target,
185
+ columnId: target === 'cell' ? when.columnId : undefined,
186
+ when,
187
+ style,
188
+ priority: maxPriority + 1
189
+ };
190
+ emit([...rules, rule]);
191
+ resetDraft();
192
+ }
193
+
194
+ function setEnabled(id: string, enabled: boolean) {
195
+ emit(rules.map((r) => (r.id === id ? { ...r, enabled } : r)));
196
+ }
197
+
198
+ function remove(id: string) {
199
+ if (editingId === id) resetDraft();
200
+ emit(rules.filter((r) => r.id !== id));
201
+ }
202
+
203
+ function move(id: string, dir: -1 | 1) {
204
+ const idx = rules.findIndex((r) => r.id === id);
205
+ if (idx < 0) return;
206
+ const next = [...rules];
207
+ const swap = idx + dir;
208
+ if (swap < 0 || swap >= next.length) return;
209
+ [next[idx], next[swap]] = [next[swap], next[idx]];
210
+ emit(next.map((r, i) => ({ ...r, priority: i + 1 })));
211
+ }
212
+
213
+ function describe(rule: ConditionalFormatRule): string {
214
+ const w = rule.when;
215
+ const col = columns.find((c) => c.id === w.columnId)?.label ?? w.columnId;
216
+ if (w.op === 'empty') return `${col} is empty`;
217
+ if (w.op === 'notEmpty') return `${col} is not empty`;
218
+ if (w.op === 'between') return `${col} between ${w.min}–${w.max}`;
219
+ if ('value' in w) return `${col} ${w.op} ${String(w.value)}`;
220
+ return `${col} ${w.op}`;
221
+ }
222
+ </script>
223
+
224
+ <Card variant="elevated" padding="md" class={className}>
225
+ {#snippet header()}
226
+ <div class="flex items-start justify-between gap-3">
227
+ <div class="min-w-0 space-y-0.5">
228
+ <p class="text-sm font-semibold text-primary">Conditional formatting</p>
229
+ <Text size="xs" tone="muted">Paint rows or cells when a condition matches.</Text>
230
+ </div>
231
+ <Badge variant="secondary">{rules.length}</Badge>
232
+ </div>
233
+ {/snippet}
234
+
235
+ <div class="space-y-3">
236
+ {#if rules.length === 0}
237
+ <EmptyState
238
+ title="No rules yet"
239
+ description="Add a rule below to highlight matching rows or cells."
240
+ class="!py-6"
241
+ >
242
+ {#snippet icon()}
243
+ <Palette class="h-6 w-6" strokeWidth={1.75} />
244
+ {/snippet}
245
+ </EmptyState>
246
+ {:else}
247
+ <ul class="divide-y divide-border overflow-hidden rounded-xl border border-border bg-surface">
248
+ {#each rules as rule (rule.id)}
249
+ <li
250
+ class={[
251
+ 'flex items-center gap-3 px-3 py-2.5 transition-opacity',
252
+ !rule.enabled && 'opacity-55',
253
+ editingId === rule.id && 'bg-brand-500/5'
254
+ ]}
255
+ >
256
+ <span
257
+ class="h-10 w-1.5 shrink-0 rounded-full"
258
+ style={`background:${rule.style.background ?? '#94a3b8'}`}
259
+ aria-hidden="true"
260
+ ></span>
261
+
262
+ <div class="min-w-0 flex-1">
263
+ <div class="flex flex-wrap items-center gap-2">
264
+ <span class="truncate text-sm font-medium text-primary">
265
+ {rule.name ?? describe(rule)}
266
+ </span>
267
+ <Badge size="sm" variant={rule.target === 'row' ? 'info' : 'primary'}>
268
+ {rule.target === 'row' ? 'Row' : 'Cell'}
269
+ </Badge>
270
+ </div>
271
+ <div class="mt-1 flex flex-wrap items-center gap-2">
272
+ <span
273
+ class="inline-flex items-center rounded-md px-2 py-0.5 text-[11px] font-medium"
274
+ style={`background-color:${rule.style.background ?? 'transparent'};color:${rule.style.color ?? 'inherit'};font-weight:${rule.style.fontWeight ?? 'medium'}`}
275
+ >
276
+ Aa preview
277
+ </span>
278
+ <Text as="span" size="xs" tone="muted">{describe(rule)}</Text>
279
+ </div>
280
+ </div>
281
+
282
+ <div class="flex shrink-0 items-center gap-1">
283
+ <Toggle
284
+ size="sm"
285
+ checked={rule.enabled}
286
+ label=""
287
+ onchange={(checked) => setEnabled(rule.id, checked)}
288
+ />
289
+ <IconButton
290
+ size="xs"
291
+ variant="ghost"
292
+ label="Edit rule"
293
+ onclick={() => loadRule(rule)}
294
+ >
295
+ <Pencil class="h-3.5 w-3.5" strokeWidth={2} />
296
+ </IconButton>
297
+ <IconButton
298
+ size="xs"
299
+ variant="ghost"
300
+ label="Move up"
301
+ disabled={rules[0]?.id === rule.id}
302
+ onclick={() => move(rule.id, -1)}
303
+ >
304
+ <ArrowUp class="h-3.5 w-3.5" strokeWidth={2} />
305
+ </IconButton>
306
+ <IconButton
307
+ size="xs"
308
+ variant="ghost"
309
+ label="Move down"
310
+ disabled={rules.at(-1)?.id === rule.id}
311
+ onclick={() => move(rule.id, 1)}
312
+ >
313
+ <ArrowDown class="h-3.5 w-3.5" strokeWidth={2} />
314
+ </IconButton>
315
+ <IconButton
316
+ size="xs"
317
+ variant="ghost"
318
+ label="Delete rule"
319
+ onclick={() => remove(rule.id)}
320
+ >
321
+ <Trash2 class="h-3.5 w-3.5" strokeWidth={2} />
322
+ </IconButton>
323
+ </div>
324
+ </li>
325
+ {/each}
326
+ </ul>
327
+ {/if}
328
+ </div>
329
+
330
+ {#snippet footer()}
331
+ <div class="space-y-4">
332
+ <Divider label={isEditing ? 'Edit rule' : 'New rule'} />
333
+
334
+ <div class="grid gap-3 sm:grid-cols-2">
335
+ <Input
336
+ label="Name"
337
+ placeholder="Optional"
338
+ size="sm"
339
+ bind:value={draftName}
340
+ />
341
+ <Select
342
+ label="Target"
343
+ size="sm"
344
+ options={targetOptions}
345
+ bind:value={draftTarget}
346
+ />
347
+ <Select
348
+ label="Column"
349
+ size="sm"
350
+ options={columnOptions}
351
+ bind:value={draftColumnId}
352
+ placeholder="Select column"
353
+ />
354
+ <Select
355
+ label="Operator"
356
+ size="sm"
357
+ options={ops}
358
+ bind:value={draftOp}
359
+ />
360
+ {#if draftOp === 'between'}
361
+ <Input label="Min" size="sm" type="number" bind:value={draftMin} />
362
+ <Input label="Max" size="sm" type="number" bind:value={draftMax} />
363
+ {:else if draftOp !== 'empty' && draftOp !== 'notEmpty'}
364
+ <div class="sm:col-span-2">
365
+ <Input
366
+ label="Value"
367
+ size="sm"
368
+ placeholder="Compare value"
369
+ bind:value={draftValue}
370
+ />
371
+ </div>
372
+ {/if}
373
+ </div>
374
+
375
+ <div class="grid gap-3 sm:grid-cols-2">
376
+ <ColorPicker
377
+ label="Background"
378
+ bind:value={draftBg}
379
+ swatches={formatSwatches}
380
+ format="hex"
381
+ />
382
+ <ColorPicker
383
+ label="Text"
384
+ bind:value={draftFg}
385
+ swatches={formatSwatches}
386
+ format="hex"
387
+ />
388
+ </div>
389
+
390
+ <div class="flex items-center justify-between gap-3">
391
+ <div class="flex items-center gap-2">
392
+ <ColorSwatch color={draftBg} size="sm" label="Background preview" />
393
+ <ColorSwatch color={draftFg} size="sm" label="Text preview" />
394
+ <span
395
+ class="rounded-md px-2 py-1 text-xs font-medium"
396
+ style={`background-color:${draftBg};color:${draftFg}`}
397
+ >
398
+ Preview
399
+ </span>
400
+ </div>
401
+ <div class="flex items-center gap-2">
402
+ {#if isEditing}
403
+ <Button size="sm" variant="ghost" onclick={resetDraft}>Cancel</Button>
404
+ {/if}
405
+ <Button size="sm" variant="primary" onclick={saveRule}>
406
+ {isEditing ? 'Update rule' : 'Add rule'}
407
+ </Button>
408
+ </div>
409
+ </div>
410
+ </div>
411
+ {/snippet}
412
+ </Card>
@@ -0,0 +1,14 @@
1
+ import type { ConditionalFormatRule } from '../../organisms/DataGrid/types.js';
2
+ interface ColumnOption {
3
+ id: string;
4
+ label: string;
5
+ }
6
+ interface ConditionalFormatPanelProps {
7
+ rules?: ConditionalFormatRule[];
8
+ columns?: ColumnOption[];
9
+ class?: string;
10
+ onchange?: (rules: ConditionalFormatRule[]) => void;
11
+ }
12
+ declare const ConditionalFormatPanel: import("svelte").Component<ConditionalFormatPanelProps, {}, "rules">;
13
+ type ConditionalFormatPanel = ReturnType<typeof ConditionalFormatPanel>;
14
+ export default ConditionalFormatPanel;
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import ConditionalFormatPanel from './ConditionalFormatPanel.svelte';
3
+ import type { ConditionalFormatRule } from '../../organisms/DataGrid/types.js';
4
+
5
+ let rules = $state<ConditionalFormatRule[]>([
6
+ {
7
+ id: 'r1',
8
+ name: 'Overdue',
9
+ enabled: true,
10
+ target: 'row',
11
+ when: { op: 'eq', columnId: 'status', value: 'overdue' },
12
+ style: { background: '#fee2e2', color: '#991b1b' },
13
+ priority: 1
14
+ }
15
+ ]);
16
+ </script>
17
+
18
+ <div class="max-w-lg">
19
+ <ConditionalFormatPanel
20
+ bind:rules
21
+ columns={[
22
+ { id: 'status', label: 'Status' },
23
+ { id: 'amount', label: 'Amount' },
24
+ { id: 'name', label: 'Name' }
25
+ ]}
26
+ />
27
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const ConditionalFormatPanelStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type ConditionalFormatPanelStory = ReturnType<typeof ConditionalFormatPanelStory>;
3
+ export default ConditionalFormatPanelStory;
@@ -0,0 +1,8 @@
1
+ import ConflictResolverStory from './ConflictResolverStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/ConflictResolver',
4
+ component: ConflictResolverStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,73 @@
1
+ <script lang="ts">
2
+ import Button from '../../atoms/Button/Button.svelte';
3
+ import DiffViewer from '../DiffViewer/DiffViewer.svelte';
4
+ import Textarea from '../../atoms/Textarea/Textarea.svelte';
5
+
6
+ export type ConflictResolution = 'mine' | 'theirs' | 'manual';
7
+
8
+ interface ConflictResolverProps {
9
+ mine?: string;
10
+ theirs?: string;
11
+ mineLabel?: string;
12
+ theirsLabel?: string;
13
+ title?: string;
14
+ class?: string;
15
+ onresolve?: (result: { resolution: ConflictResolution; value: string }) => void;
16
+ }
17
+
18
+ let {
19
+ mine = '',
20
+ theirs = '',
21
+ mineLabel = 'Yours',
22
+ theirsLabel = 'Theirs',
23
+ title = 'Resolve conflict',
24
+ class: className = '',
25
+ onresolve
26
+ }: ConflictResolverProps = $props();
27
+
28
+ let manual = $state(mine);
29
+ let mode = $state<'diff' | 'manual'>('diff');
30
+
31
+ function resolve(resolution: ConflictResolution) {
32
+ const value = resolution === 'mine' ? mine : resolution === 'theirs' ? theirs : manual;
33
+ onresolve?.({ resolution, value });
34
+ }
35
+ </script>
36
+
37
+ <div
38
+ class={['flex flex-col gap-3 rounded-xl border border-border bg-surface-elevated p-4', className]}
39
+ data-conflict-resolver
40
+ >
41
+ <div class="flex flex-wrap items-center justify-between gap-2">
42
+ <div>
43
+ <h3 class="text-sm font-semibold text-primary">{title}</h3>
44
+ <p class="text-xs text-muted">Choose a side or edit a merged version.</p>
45
+ </div>
46
+ <div class="flex flex-wrap gap-2">
47
+ <Button size="sm" variant="secondary" onclick={() => resolve('mine')}>Keep mine</Button>
48
+ <Button size="sm" variant="secondary" onclick={() => resolve('theirs')}>Keep theirs</Button>
49
+ <Button
50
+ size="sm"
51
+ variant={mode === 'manual' ? 'primary' : 'ghost'}
52
+ onclick={() => (mode = mode === 'manual' ? 'diff' : 'manual')}
53
+ >
54
+ Manual merge
55
+ </Button>
56
+ </div>
57
+ </div>
58
+
59
+ {#if mode === 'diff'}
60
+ <DiffViewer
61
+ before={theirs}
62
+ after={mine}
63
+ beforeLabel={theirsLabel}
64
+ afterLabel={mineLabel}
65
+ mode="split"
66
+ />
67
+ {:else}
68
+ <Textarea bind:value={manual} rows={12} class="font-mono text-xs" />
69
+ <div class="flex justify-end">
70
+ <Button size="sm" onclick={() => resolve('manual')}>Apply merge</Button>
71
+ </div>
72
+ {/if}
73
+ </div>
@@ -0,0 +1,16 @@
1
+ export type ConflictResolution = 'mine' | 'theirs' | 'manual';
2
+ interface ConflictResolverProps {
3
+ mine?: string;
4
+ theirs?: string;
5
+ mineLabel?: string;
6
+ theirsLabel?: string;
7
+ title?: string;
8
+ class?: string;
9
+ onresolve?: (result: {
10
+ resolution: ConflictResolution;
11
+ value: string;
12
+ }) => void;
13
+ }
14
+ declare const ConflictResolver: import("svelte").Component<ConflictResolverProps, {}, "">;
15
+ type ConflictResolver = ReturnType<typeof ConflictResolver>;
16
+ export default ConflictResolver;
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ import ConflictResolver from './ConflictResolver.svelte';
3
+ </script>
4
+
5
+ <div class="p-4">
6
+ <ConflictResolver
7
+ mine={`export function greet() {\n return 'hola';\n}`}
8
+ theirs={`export function greet() {\n return 'hello';\n}`}
9
+ onresolve={(r) => console.log(r)}
10
+ />
11
+ </div>
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const ConflictResolverStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type ConflictResolverStory = InstanceType<typeof ConflictResolverStory>;
18
+ export default ConflictResolverStory;