@dfosco/storyboard-core 4.2.0-beta.2 → 4.2.0-beta.21

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 (414) hide show
  1. package/commandpalette.config.json +109 -24
  2. package/dist/storyboard-ui.css +1 -1
  3. package/dist/storyboard-ui.js +17379 -28568
  4. package/dist/storyboard-ui.js.map +1 -1
  5. package/dist/tailwind.css +1 -1
  6. package/package.json +5 -2
  7. package/scaffold/agents/prompt-agent.agent.md +181 -0
  8. package/scaffold/agents/terminal-agent.agent.md +351 -0
  9. package/scaffold/codex/config.toml +246 -0
  10. package/scaffold/manifest.json +5 -0
  11. package/scaffold/skills/canvas/SKILL.md +5 -4
  12. package/scaffold/skills/ship/SKILL.md +1 -1
  13. package/scaffold/storyboard.config.json +14 -1
  14. package/scaffold/toolbar.config.json +1 -1
  15. package/src/ActionMenuButton.jsx +100 -0
  16. package/src/AutosyncMenuButton.css +67 -0
  17. package/src/AutosyncMenuButton.jsx +241 -0
  18. package/src/BranchSelect.jsx +29 -0
  19. package/src/BranchSelect.module.css +30 -0
  20. package/src/CanvasAgentsMenu.jsx +87 -0
  21. package/src/CanvasCreateMenu.jsx +609 -0
  22. package/src/CanvasSnap.css +27 -0
  23. package/src/CanvasSnap.jsx +51 -0
  24. package/src/CanvasUndoRedo.css +36 -0
  25. package/src/CanvasUndoRedo.jsx +62 -0
  26. package/src/CanvasZoomControl.css +53 -0
  27. package/src/CanvasZoomControl.jsx +49 -0
  28. package/src/CanvasZoomToFit.css +18 -0
  29. package/src/CanvasZoomToFit.jsx +26 -0
  30. package/src/CommandMenu.css +8 -0
  31. package/src/CommandMenu.jsx +286 -0
  32. package/src/CommandPalette.jsx +35 -0
  33. package/src/CommandPaletteTrigger.jsx +25 -0
  34. package/src/CommentsMenuButton.jsx +38 -0
  35. package/src/CoreUIBar.css +47 -0
  36. package/src/CoreUIBar.jsx +855 -0
  37. package/src/CreateMenuButton.jsx +116 -0
  38. package/src/HideChromeTrigger.jsx +40 -0
  39. package/src/InspectorPanel.css +109 -0
  40. package/src/InspectorPanel.jsx +629 -0
  41. package/src/PwaInstallBanner.css +42 -0
  42. package/src/PwaInstallBanner.jsx +124 -0
  43. package/src/SidePanel.jsx +260 -0
  44. package/src/ThemeMenuButton.jsx +136 -0
  45. package/src/autosync/server.js +202 -5
  46. package/src/autosync/server.test.js +112 -0
  47. package/src/canvas/__tests__/agent-integration.test.js +593 -0
  48. package/src/canvas/__tests__/helpers/browser.js +95 -0
  49. package/src/canvas/__tests__/helpers/canvas-api.js +129 -0
  50. package/src/canvas/__tests__/helpers/perf.js +118 -0
  51. package/src/canvas/__tests__/helpers/setup.js +176 -0
  52. package/src/canvas/__tests__/helpers/tmux.js +130 -0
  53. package/src/canvas/__tests__/helpers/transcript.js +129 -0
  54. package/src/canvas/__tests__/terminal-integration.test.js +175 -0
  55. package/src/canvas/hot-pool.js +757 -0
  56. package/src/canvas/materializer.js +31 -0
  57. package/src/canvas/materializer.test.js +56 -0
  58. package/src/canvas/selectedWidgets.js +65 -7
  59. package/src/canvas/server.js +1801 -22
  60. package/src/canvas/server.test.js +239 -0
  61. package/src/canvas/terminal-config.js +331 -0
  62. package/src/canvas/terminal-registry.js +38 -0
  63. package/src/canvas/terminal-server.js +1037 -29
  64. package/src/canvas/writeGuard.js +51 -3
  65. package/src/canvasConfig.js +67 -1
  66. package/src/canvasConfig.test.js +79 -1
  67. package/src/cli/agent.js +85 -0
  68. package/src/cli/branch.js +232 -0
  69. package/src/cli/canvasAdd.js +59 -12
  70. package/src/cli/canvasBatch.js +98 -0
  71. package/src/cli/canvasBounds.js +1 -1
  72. package/src/cli/canvasRead.js +1 -1
  73. package/src/cli/canvasUpdate.js +179 -0
  74. package/src/cli/create.js +38 -14
  75. package/src/cli/dev.js +157 -83
  76. package/src/cli/exit.js +23 -24
  77. package/src/cli/index.js +55 -2
  78. package/src/cli/proxy.js +96 -37
  79. package/src/cli/schemas.js +22 -4
  80. package/src/cli/server.js +148 -25
  81. package/src/cli/serverUrl.js +8 -3
  82. package/src/cli/sessions.js +131 -5
  83. package/src/cli/setup.js +109 -11
  84. package/src/cli/terminal-commands.js +16 -8
  85. package/src/cli/terminal-messaging.js +231 -0
  86. package/src/cli/terminal-welcome.js +365 -33
  87. package/src/commandActions.js +1 -0
  88. package/src/commandPaletteConfig.js +9 -0
  89. package/src/comments/auth.js +2 -1
  90. package/src/comments/ui/AuthModal.jsx +114 -0
  91. package/src/comments/ui/CommentWindow.jsx +329 -0
  92. package/src/comments/ui/CommentsDrawer.jsx +102 -0
  93. package/src/comments/ui/Composer.jsx +64 -0
  94. package/src/comments/ui/authModal.test.js +1 -1
  95. package/src/comments/ui/commentWindow.js +16 -17
  96. package/src/comments/ui/commentsDrawer.js +25 -26
  97. package/src/comments/ui/composer.js +23 -24
  98. package/src/comments/ui/index.js +2 -3
  99. package/src/configSchema.js +59 -1
  100. package/src/configStore.js +161 -0
  101. package/src/core-ui-colors.css +12 -0
  102. package/src/devtools.js +17 -19
  103. package/src/devtools.test.js +18 -9
  104. package/src/featureFlags.js +12 -5
  105. package/src/fuzzySearch.test.js +10 -0
  106. package/src/index.js +14 -2
  107. package/src/lib/components/ui/alert/alert-action.jsx +11 -0
  108. package/src/lib/components/ui/alert/alert-description.jsx +11 -0
  109. package/src/lib/components/ui/alert/alert-title.jsx +11 -0
  110. package/src/lib/components/ui/alert/alert.jsx +25 -0
  111. package/src/lib/components/ui/alert/index.js +15 -15
  112. package/src/lib/components/ui/avatar/avatar-badge.jsx +22 -0
  113. package/src/lib/components/ui/avatar/avatar-fallback.jsx +18 -0
  114. package/src/lib/components/ui/avatar/avatar-group-count.jsx +19 -0
  115. package/src/lib/components/ui/avatar/avatar-group.jsx +19 -0
  116. package/src/lib/components/ui/avatar/avatar-image.jsx +15 -0
  117. package/src/lib/components/ui/avatar/avatar.jsx +19 -0
  118. package/src/lib/components/ui/avatar/index.js +20 -20
  119. package/src/lib/components/ui/badge/badge.jsx +31 -0
  120. package/src/lib/components/ui/badge/index.js +2 -2
  121. package/src/lib/components/ui/button/button.jsx +100 -0
  122. package/src/lib/components/ui/button/index.js +9 -9
  123. package/src/lib/components/ui/card/card-action.jsx +11 -0
  124. package/src/lib/components/ui/card/card-content.jsx +11 -0
  125. package/src/lib/components/ui/card/card-description.jsx +11 -0
  126. package/src/lib/components/ui/card/card-footer.jsx +11 -0
  127. package/src/lib/components/ui/card/card-header.jsx +19 -0
  128. package/src/lib/components/ui/card/card-title.jsx +11 -0
  129. package/src/lib/components/ui/card/card.jsx +17 -0
  130. package/src/lib/components/ui/card/index.js +23 -23
  131. package/src/lib/components/ui/checkbox/checkbox.jsx +29 -0
  132. package/src/lib/components/ui/checkbox/index.js +5 -5
  133. package/src/lib/components/ui/collapsible/collapsible-content.jsx +7 -0
  134. package/src/lib/components/ui/collapsible/collapsible-trigger.jsx +7 -0
  135. package/src/lib/components/ui/collapsible/collapsible.jsx +7 -0
  136. package/src/lib/components/ui/collapsible/index.js +11 -11
  137. package/src/lib/components/ui/dialog/dialog-close.jsx +7 -0
  138. package/src/lib/components/ui/dialog/dialog-content.jsx +34 -0
  139. package/src/lib/components/ui/dialog/dialog-description.jsx +15 -0
  140. package/src/lib/components/ui/dialog/dialog-footer.jsx +23 -0
  141. package/src/lib/components/ui/dialog/dialog-header.jsx +11 -0
  142. package/src/lib/components/ui/dialog/dialog-overlay.jsx +15 -0
  143. package/src/lib/components/ui/dialog/dialog-portal.jsx +4 -0
  144. package/src/lib/components/ui/dialog/dialog-title.jsx +15 -0
  145. package/src/lib/components/ui/dialog/dialog-trigger.jsx +7 -0
  146. package/src/lib/components/ui/dialog/dialog.jsx +4 -0
  147. package/src/lib/components/ui/dialog/index.js +32 -32
  148. package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-group.jsx +8 -0
  149. package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.jsx +30 -0
  150. package/src/lib/components/ui/dropdown-menu/dropdown-menu-content.jsx +22 -0
  151. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group-heading.jsx +16 -0
  152. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group.jsx +7 -0
  153. package/src/lib/components/ui/dropdown-menu/dropdown-menu-item.jsx +20 -0
  154. package/src/lib/components/ui/dropdown-menu/dropdown-menu-label.jsx +17 -0
  155. package/src/lib/components/ui/dropdown-menu/dropdown-menu-portal.jsx +4 -0
  156. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.jsx +7 -0
  157. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.jsx +29 -0
  158. package/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.jsx +15 -0
  159. package/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.jsx +16 -0
  160. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.jsx +15 -0
  161. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.jsx +23 -0
  162. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub.jsx +4 -0
  163. package/src/lib/components/ui/dropdown-menu/dropdown-menu-trigger.jsx +7 -0
  164. package/src/lib/components/ui/dropdown-menu/dropdown-menu.jsx +4 -0
  165. package/src/lib/components/ui/dropdown-menu/index.js +52 -52
  166. package/src/lib/components/ui/input/index.js +5 -5
  167. package/src/lib/components/ui/input/input.jsx +19 -0
  168. package/src/lib/components/ui/label/index.js +5 -5
  169. package/src/lib/components/ui/label/label.jsx +19 -0
  170. package/src/lib/components/ui/panel/index.js +21 -21
  171. package/src/lib/components/ui/panel/panel-body.jsx +11 -0
  172. package/src/lib/components/ui/panel/panel-close.jsx +16 -0
  173. package/src/lib/components/ui/panel/panel-content.jsx +29 -0
  174. package/src/lib/components/ui/panel/panel-footer.jsx +11 -0
  175. package/src/lib/components/ui/panel/panel-header.jsx +11 -0
  176. package/src/lib/components/ui/panel/panel-title.jsx +12 -0
  177. package/src/lib/components/ui/panel/panel.jsx +4 -0
  178. package/src/lib/components/ui/popover/index.js +26 -26
  179. package/src/lib/components/ui/popover/popover-close.jsx +7 -0
  180. package/src/lib/components/ui/popover/popover-content.jsx +22 -0
  181. package/src/lib/components/ui/popover/popover-description.jsx +11 -0
  182. package/src/lib/components/ui/popover/popover-header.jsx +11 -0
  183. package/src/lib/components/ui/popover/popover-portal.jsx +4 -0
  184. package/src/lib/components/ui/popover/popover-title.jsx +11 -0
  185. package/src/lib/components/ui/popover/popover-trigger.jsx +8 -0
  186. package/src/lib/components/ui/popover/popover.jsx +4 -0
  187. package/src/lib/components/ui/searchable-list.jsx +159 -0
  188. package/src/lib/components/ui/select/index.js +35 -35
  189. package/src/lib/components/ui/select/select-content.jsx +30 -0
  190. package/src/lib/components/ui/select/select-group-heading.jsx +17 -0
  191. package/src/lib/components/ui/select/select-group.jsx +15 -0
  192. package/src/lib/components/ui/select/select-item.jsx +26 -0
  193. package/src/lib/components/ui/select/select-label.jsx +11 -0
  194. package/src/lib/components/ui/select/select-portal.jsx +4 -0
  195. package/src/lib/components/ui/select/select-scroll-down-button.jsx +18 -0
  196. package/src/lib/components/ui/select/select-scroll-up-button.jsx +18 -0
  197. package/src/lib/components/ui/select/select-separator.jsx +15 -0
  198. package/src/lib/components/ui/select/select-trigger.jsx +25 -0
  199. package/src/lib/components/ui/select/select.jsx +4 -0
  200. package/src/lib/components/ui/separator/index.js +5 -5
  201. package/src/lib/components/ui/separator/separator.jsx +22 -0
  202. package/src/lib/components/ui/sheet/index.js +32 -32
  203. package/src/lib/components/ui/sheet/sheet-close.jsx +7 -0
  204. package/src/lib/components/ui/sheet/sheet-content.jsx +35 -0
  205. package/src/lib/components/ui/sheet/sheet-description.jsx +15 -0
  206. package/src/lib/components/ui/sheet/sheet-footer.jsx +11 -0
  207. package/src/lib/components/ui/sheet/sheet-header.jsx +11 -0
  208. package/src/lib/components/ui/sheet/sheet-overlay.jsx +15 -0
  209. package/src/lib/components/ui/sheet/sheet-portal.jsx +4 -0
  210. package/src/lib/components/ui/sheet/sheet-title.jsx +15 -0
  211. package/src/lib/components/ui/sheet/sheet-trigger.jsx +7 -0
  212. package/src/lib/components/ui/sheet/sheet.jsx +4 -0
  213. package/src/lib/components/ui/textarea/index.js +5 -5
  214. package/src/lib/components/ui/textarea/textarea.jsx +18 -0
  215. package/src/lib/components/ui/toggle/index.js +6 -9
  216. package/src/lib/components/ui/toggle/toggle.jsx +36 -0
  217. package/src/lib/components/ui/toggle-group/index.js +8 -8
  218. package/src/lib/components/ui/toggle-group/toggle-group-item.jsx +29 -0
  219. package/src/lib/components/ui/toggle-group/toggle-group.jsx +43 -0
  220. package/src/lib/components/ui/tooltip/index.js +3 -3
  221. package/src/lib/components/ui/tooltip/tooltip-content.jsx +21 -0
  222. package/src/lib/components/ui/tooltip/tooltip-trigger.jsx +23 -0
  223. package/src/lib/components/ui/tooltip/tooltip.jsx +11 -0
  224. package/src/lib/components/ui/trigger-button/index.js +3 -3
  225. package/src/lib/components/ui/trigger-button/trigger-button.css +38 -0
  226. package/src/lib/components/ui/trigger-button/trigger-button.jsx +63 -0
  227. package/src/logger/devLogger.js +238 -0
  228. package/src/logger/devLogger.test.js +193 -0
  229. package/src/modes.test.js +4 -4
  230. package/src/mountStoryboardCore.js +123 -27
  231. package/src/paletteProviders.js +3 -0
  232. package/src/paletteProviders.test.js +2 -2
  233. package/src/server/index.js +98 -36
  234. package/src/sidepanel.css +214 -0
  235. package/src/styles/tailwind.css +1 -1
  236. package/src/svelte-plugin-ui/__tests__/ModeSwitch.test.ts +8 -8
  237. package/src/svelte-plugin-ui/__tests__/ToolbarShell.test.ts +11 -10
  238. package/src/svelte-plugin-ui/components/Icon.css +11 -0
  239. package/src/svelte-plugin-ui/components/Icon.jsx +281 -0
  240. package/src/svelte-plugin-ui/components/ModeSwitch.css +90 -0
  241. package/src/svelte-plugin-ui/components/ModeSwitch.jsx +47 -0
  242. package/src/svelte-plugin-ui/components/ToolbarShell.css +80 -0
  243. package/src/svelte-plugin-ui/components/ToolbarShell.jsx +84 -0
  244. package/src/svelte-plugin-ui/components/Viewfinder.css +412 -0
  245. package/src/svelte-plugin-ui/components/Viewfinder.jsx +512 -0
  246. package/src/svelte-plugin-ui/mount.ts +12 -16
  247. package/src/toolRegistry.js +4 -4
  248. package/src/toolbarConfigStore.js +30 -0
  249. package/src/tools/handlers/autosync.js +1 -1
  250. package/src/tools/handlers/canvasAddWidget.js +1 -1
  251. package/src/tools/handlers/canvasAgents.js +19 -0
  252. package/src/tools/handlers/canvasToolbar.js +8 -8
  253. package/src/tools/handlers/commandPalette.js +9 -0
  254. package/src/tools/handlers/comments.js +1 -1
  255. package/src/tools/handlers/create.js +1 -1
  256. package/src/tools/handlers/devtools.js +16 -0
  257. package/src/tools/handlers/devtools.test.js +38 -0
  258. package/src/tools/handlers/flows.js +1 -1
  259. package/src/tools/handlers/hideChrome.js +9 -0
  260. package/src/tools/handlers/paletteTheme.js +35 -0
  261. package/src/tools/handlers/theme.js +1 -1
  262. package/src/tools/registry.js +4 -1
  263. package/src/tools/surfaces/commandList.js +3 -3
  264. package/src/tools/surfaces/mainToolbar.js +3 -3
  265. package/src/tools/surfaces/registry.js +4 -4
  266. package/src/ui/design-modes.ts +2 -2
  267. package/src/ui/viewfinder.ts +1 -1
  268. package/src/vite/server-plugin.js +242 -60
  269. package/src/workshop/features/createCanvas/CreateCanvasForm.jsx +260 -0
  270. package/src/workshop/features/createCanvas/index.js +1 -1
  271. package/src/workshop/features/createFlow/CreateFlowForm.jsx +334 -0
  272. package/src/workshop/features/createFlow/index.js +1 -1
  273. package/src/workshop/features/createPage/CreatePageForm.jsx +304 -0
  274. package/src/workshop/features/createPage/index.js +1 -1
  275. package/src/workshop/features/createPrototype/CreatePrototypeForm.jsx +289 -0
  276. package/src/workshop/features/createPrototype/index.js +1 -1
  277. package/src/workshop/features/createPrototype/server.js +98 -0
  278. package/src/workshop/features/createStory/CreateStoryForm.jsx +208 -0
  279. package/src/workshop/features/createStory/index.js +1 -1
  280. package/src/workshop/ui/WorkshopPanel.jsx +98 -0
  281. package/src/workshop/ui/mount.ts +1 -1
  282. package/src/worktree/port.js +48 -0
  283. package/src/worktree/serverRegistry.js +120 -0
  284. package/toolbar.config.json +93 -42
  285. package/widgets.config.json +580 -12
  286. package/src/ActionMenuButton.svelte +0 -119
  287. package/src/AutosyncMenuButton.svelte +0 -397
  288. package/src/CanvasCreateMenu.svelte +0 -295
  289. package/src/CanvasSnap.svelte +0 -87
  290. package/src/CanvasUndoRedo.svelte +0 -108
  291. package/src/CanvasZoomControl.svelte +0 -111
  292. package/src/CanvasZoomToFit.svelte +0 -52
  293. package/src/CommandMenu.svelte +0 -249
  294. package/src/CommandPalette.svelte +0 -33
  295. package/src/CommentsMenuButton.svelte +0 -53
  296. package/src/CoreUIBar.svelte +0 -847
  297. package/src/CreateMenuButton.svelte +0 -133
  298. package/src/DocPanel.svelte +0 -299
  299. package/src/InspectorPanel.svelte +0 -745
  300. package/src/PwaInstallBanner.svelte +0 -124
  301. package/src/SidePanel.svelte +0 -480
  302. package/src/ThemeMenuButton.svelte +0 -132
  303. package/src/comments/ui/AuthModal.svelte +0 -108
  304. package/src/comments/ui/CommentWindow.svelte +0 -333
  305. package/src/comments/ui/CommentsDrawer.svelte +0 -96
  306. package/src/comments/ui/Composer.svelte +0 -65
  307. package/src/lib/components/ui/alert/alert-action.svelte +0 -19
  308. package/src/lib/components/ui/alert/alert-description.svelte +0 -22
  309. package/src/lib/components/ui/alert/alert-title.svelte +0 -22
  310. package/src/lib/components/ui/alert/alert.svelte +0 -38
  311. package/src/lib/components/ui/avatar/avatar-badge.svelte +0 -25
  312. package/src/lib/components/ui/avatar/avatar-fallback.svelte +0 -20
  313. package/src/lib/components/ui/avatar/avatar-group-count.svelte +0 -22
  314. package/src/lib/components/ui/avatar/avatar-group.svelte +0 -22
  315. package/src/lib/components/ui/avatar/avatar-image.svelte +0 -17
  316. package/src/lib/components/ui/avatar/avatar.svelte +0 -24
  317. package/src/lib/components/ui/badge/badge.svelte +0 -44
  318. package/src/lib/components/ui/button/button.svelte +0 -108
  319. package/src/lib/components/ui/card/card-action.svelte +0 -21
  320. package/src/lib/components/ui/card/card-content.svelte +0 -19
  321. package/src/lib/components/ui/card/card-description.svelte +0 -19
  322. package/src/lib/components/ui/card/card-footer.svelte +0 -18
  323. package/src/lib/components/ui/card/card-header.svelte +0 -21
  324. package/src/lib/components/ui/card/card-title.svelte +0 -14
  325. package/src/lib/components/ui/card/card.svelte +0 -21
  326. package/src/lib/components/ui/checkbox/checkbox.svelte +0 -39
  327. package/src/lib/components/ui/collapsible/collapsible-content.svelte +0 -7
  328. package/src/lib/components/ui/collapsible/collapsible-trigger.svelte +0 -7
  329. package/src/lib/components/ui/collapsible/collapsible.svelte +0 -11
  330. package/src/lib/components/ui/dialog/dialog-close.svelte +0 -11
  331. package/src/lib/components/ui/dialog/dialog-content.svelte +0 -42
  332. package/src/lib/components/ui/dialog/dialog-description.svelte +0 -17
  333. package/src/lib/components/ui/dialog/dialog-footer.svelte +0 -29
  334. package/src/lib/components/ui/dialog/dialog-header.svelte +0 -19
  335. package/src/lib/components/ui/dialog/dialog-overlay.svelte +0 -17
  336. package/src/lib/components/ui/dialog/dialog-portal.svelte +0 -7
  337. package/src/lib/components/ui/dialog/dialog-title.svelte +0 -17
  338. package/src/lib/components/ui/dialog/dialog-trigger.svelte +0 -11
  339. package/src/lib/components/ui/dialog/dialog.svelte +0 -7
  340. package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +0 -16
  341. package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -40
  342. package/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -27
  343. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +0 -18
  344. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group.svelte +0 -7
  345. package/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -24
  346. package/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte +0 -20
  347. package/src/lib/components/ui/dropdown-menu/dropdown-menu-portal.svelte +0 -7
  348. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +0 -16
  349. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +0 -34
  350. package/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -17
  351. package/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +0 -19
  352. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +0 -17
  353. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +0 -27
  354. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub.svelte +0 -7
  355. package/src/lib/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +0 -7
  356. package/src/lib/components/ui/dropdown-menu/dropdown-menu.svelte +0 -7
  357. package/src/lib/components/ui/input/input.svelte +0 -40
  358. package/src/lib/components/ui/label/label.svelte +0 -20
  359. package/src/lib/components/ui/panel/panel-body.svelte +0 -13
  360. package/src/lib/components/ui/panel/panel-close.svelte +0 -16
  361. package/src/lib/components/ui/panel/panel-content.svelte +0 -33
  362. package/src/lib/components/ui/panel/panel-footer.svelte +0 -13
  363. package/src/lib/components/ui/panel/panel-header.svelte +0 -16
  364. package/src/lib/components/ui/panel/panel-title.svelte +0 -14
  365. package/src/lib/components/ui/panel/panel.svelte +0 -15
  366. package/src/lib/components/ui/popover/popover-close.svelte +0 -7
  367. package/src/lib/components/ui/popover/popover-content.svelte +0 -27
  368. package/src/lib/components/ui/popover/popover-description.svelte +0 -19
  369. package/src/lib/components/ui/popover/popover-header.svelte +0 -19
  370. package/src/lib/components/ui/popover/popover-portal.svelte +0 -7
  371. package/src/lib/components/ui/popover/popover-title.svelte +0 -19
  372. package/src/lib/components/ui/popover/popover-trigger.svelte +0 -17
  373. package/src/lib/components/ui/popover/popover.svelte +0 -7
  374. package/src/lib/components/ui/select/select-content.svelte +0 -40
  375. package/src/lib/components/ui/select/select-group-heading.svelte +0 -19
  376. package/src/lib/components/ui/select/select-group.svelte +0 -17
  377. package/src/lib/components/ui/select/select-item.svelte +0 -38
  378. package/src/lib/components/ui/select/select-label.svelte +0 -18
  379. package/src/lib/components/ui/select/select-portal.svelte +0 -7
  380. package/src/lib/components/ui/select/select-scroll-down-button.svelte +0 -20
  381. package/src/lib/components/ui/select/select-scroll-up-button.svelte +0 -20
  382. package/src/lib/components/ui/select/select-separator.svelte +0 -17
  383. package/src/lib/components/ui/select/select-trigger.svelte +0 -27
  384. package/src/lib/components/ui/select/select.svelte +0 -11
  385. package/src/lib/components/ui/separator/separator.svelte +0 -23
  386. package/src/lib/components/ui/sheet/sheet-close.svelte +0 -7
  387. package/src/lib/components/ui/sheet/sheet-content.svelte +0 -43
  388. package/src/lib/components/ui/sheet/sheet-description.svelte +0 -17
  389. package/src/lib/components/ui/sheet/sheet-footer.svelte +0 -18
  390. package/src/lib/components/ui/sheet/sheet-header.svelte +0 -19
  391. package/src/lib/components/ui/sheet/sheet-overlay.svelte +0 -17
  392. package/src/lib/components/ui/sheet/sheet-portal.svelte +0 -7
  393. package/src/lib/components/ui/sheet/sheet-title.svelte +0 -17
  394. package/src/lib/components/ui/sheet/sheet-trigger.svelte +0 -7
  395. package/src/lib/components/ui/sheet/sheet.svelte +0 -7
  396. package/src/lib/components/ui/textarea/textarea.svelte +0 -21
  397. package/src/lib/components/ui/toggle/toggle.svelte +0 -45
  398. package/src/lib/components/ui/toggle-group/toggle-group-item.svelte +0 -35
  399. package/src/lib/components/ui/toggle-group/toggle-group.svelte +0 -63
  400. package/src/lib/components/ui/tooltip/tooltip-content.svelte +0 -24
  401. package/src/lib/components/ui/tooltip/tooltip-trigger.svelte +0 -27
  402. package/src/lib/components/ui/tooltip/tooltip.svelte +0 -9
  403. package/src/lib/components/ui/trigger-button/trigger-button.svelte +0 -106
  404. package/src/svelte-plugin-ui/components/Icon.svelte +0 -181
  405. package/src/svelte-plugin-ui/components/ModeSwitch.svelte +0 -121
  406. package/src/svelte-plugin-ui/components/ToolbarShell.svelte +0 -150
  407. package/src/svelte-plugin-ui/components/Viewfinder.svelte +0 -1001
  408. package/src/tools/handlers/docs.js +0 -11
  409. package/src/workshop/features/createCanvas/CreateCanvasForm.svelte +0 -139
  410. package/src/workshop/features/createFlow/CreateFlowForm.svelte +0 -314
  411. package/src/workshop/features/createPage/CreatePageForm.svelte +0 -249
  412. package/src/workshop/features/createPrototype/CreatePrototypeForm.svelte +0 -287
  413. package/src/workshop/features/createStory/CreateStoryForm.svelte +0 -161
  414. package/src/workshop/ui/WorkshopPanel.svelte +0 -97
@@ -0,0 +1,18 @@
1
+ import { forwardRef } from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ import { ChevronDown } from "lucide-react";
4
+ import { cn } from "../../../utils/index.js";
5
+
6
+ const SelectScrollDownButton = forwardRef(function SelectScrollDownButton({ className, ...props }, ref) {
7
+ return (
8
+ <SelectPrimitive.ScrollDownButton
9
+ ref={ref}
10
+ data-slot="select-scroll-down-button"
11
+ className={cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4 bottom-0 w-full", className)}
12
+ {...props}
13
+ >
14
+ <ChevronDown />
15
+ </SelectPrimitive.ScrollDownButton>
16
+ );
17
+ });
18
+ export default SelectScrollDownButton;
@@ -0,0 +1,18 @@
1
+ import { forwardRef } from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ import { ChevronUp } from "lucide-react";
4
+ import { cn } from "../../../utils/index.js";
5
+
6
+ const SelectScrollUpButton = forwardRef(function SelectScrollUpButton({ className, ...props }, ref) {
7
+ return (
8
+ <SelectPrimitive.ScrollUpButton
9
+ ref={ref}
10
+ data-slot="select-scroll-up-button"
11
+ className={cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4 top-0 w-full", className)}
12
+ {...props}
13
+ >
14
+ <ChevronUp />
15
+ </SelectPrimitive.ScrollUpButton>
16
+ );
17
+ });
18
+ export default SelectScrollUpButton;
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ import { cn } from "../../../utils/index.js";
4
+
5
+ const SelectSeparator = forwardRef(function SelectSeparator({ className, ...props }, ref) {
6
+ return (
7
+ <SelectPrimitive.Separator
8
+ ref={ref}
9
+ data-slot="select-separator"
10
+ className={cn("bg-border -mx-1 my-1 h-px pointer-events-none", className)}
11
+ {...props}
12
+ />
13
+ );
14
+ });
15
+ export default SelectSeparator;
@@ -0,0 +1,25 @@
1
+ import { forwardRef } from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ import { ChevronDown } from "lucide-react";
4
+ import { cn } from "../../../utils/index.js";
5
+
6
+ const SelectTrigger = forwardRef(function SelectTrigger({ className, children, size = "default", ...props }, ref) {
7
+ return (
8
+ <SelectPrimitive.Trigger
9
+ ref={ref}
10
+ data-slot="select-trigger"
11
+ data-size={size}
12
+ className={cn(
13
+ "border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--sb--radius-md),10px)] *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
14
+ className
15
+ )}
16
+ {...props}
17
+ >
18
+ {children}
19
+ <SelectPrimitive.Icon asChild>
20
+ <ChevronDown className="text-muted-foreground size-4 pointer-events-none" />
21
+ </SelectPrimitive.Icon>
22
+ </SelectPrimitive.Trigger>
23
+ );
24
+ });
25
+ export default SelectTrigger;
@@ -0,0 +1,4 @@
1
+ import * as SelectPrimitive from "@radix-ui/react-select";
2
+ export default function Select({ children, ...props }) {
3
+ return <SelectPrimitive.Root {...props}>{children}</SelectPrimitive.Root>;
4
+ }
@@ -1,7 +1,7 @@
1
- import Root from "./separator.svelte";
1
+ import Root from "./separator.jsx";
2
2
 
3
3
  export {
4
- Root,
5
- //
6
- Root as Separator,
7
- };
4
+ Root,
5
+ //
6
+ Root as Separator,
7
+ };
@@ -0,0 +1,22 @@
1
+ import { forwardRef } from "react";
2
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
3
+ import { cn } from "../../../utils/index.js";
4
+
5
+ const Separator = forwardRef(function Separator({ className, orientation = "horizontal", decorative = true, "data-slot": dataSlot = "separator", ...props }, ref) {
6
+ return (
7
+ <SeparatorPrimitive.Root
8
+ ref={ref}
9
+ data-slot={dataSlot}
10
+ decorative={decorative}
11
+ orientation={orientation}
12
+ className={cn(
13
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px",
14
+ "data-[orientation=vertical]:h-full",
15
+ className
16
+ )}
17
+ {...props}
18
+ />
19
+ );
20
+ });
21
+
22
+ export default Separator;
@@ -1,34 +1,34 @@
1
- import Root from "./sheet.svelte";
2
- import Portal from "./sheet-portal.svelte";
3
- import Trigger from "./sheet-trigger.svelte";
4
- import Close from "./sheet-close.svelte";
5
- import Overlay from "./sheet-overlay.svelte";
6
- import Content from "./sheet-content.svelte";
7
- import Header from "./sheet-header.svelte";
8
- import Footer from "./sheet-footer.svelte";
9
- import Title from "./sheet-title.svelte";
10
- import Description from "./sheet-description.svelte";
1
+ import Root from "./sheet.jsx";
2
+ import Portal from "./sheet-portal.jsx";
3
+ import Trigger from "./sheet-trigger.jsx";
4
+ import Close from "./sheet-close.jsx";
5
+ import Overlay from "./sheet-overlay.jsx";
6
+ import Content from "./sheet-content.jsx";
7
+ import Header from "./sheet-header.jsx";
8
+ import Footer from "./sheet-footer.jsx";
9
+ import Title from "./sheet-title.jsx";
10
+ import Description from "./sheet-description.jsx";
11
11
 
12
12
  export {
13
- Root,
14
- Close,
15
- Trigger,
16
- Portal,
17
- Overlay,
18
- Content,
19
- Header,
20
- Footer,
21
- Title,
22
- Description,
23
- //
24
- Root as Sheet,
25
- Close as SheetClose,
26
- Trigger as SheetTrigger,
27
- Portal as SheetPortal,
28
- Overlay as SheetOverlay,
29
- Content as SheetContent,
30
- Header as SheetHeader,
31
- Footer as SheetFooter,
32
- Title as SheetTitle,
33
- Description as SheetDescription,
34
- };
13
+ Root,
14
+ Close,
15
+ Trigger,
16
+ Portal,
17
+ Overlay,
18
+ Content,
19
+ Header,
20
+ Footer,
21
+ Title,
22
+ Description,
23
+ //
24
+ Root as Sheet,
25
+ Close as SheetClose,
26
+ Trigger as SheetTrigger,
27
+ Portal as SheetPortal,
28
+ Overlay as SheetOverlay,
29
+ Content as SheetContent,
30
+ Header as SheetHeader,
31
+ Footer as SheetFooter,
32
+ Title as SheetTitle,
33
+ Description as SheetDescription,
34
+ };
@@ -0,0 +1,7 @@
1
+ import { forwardRef } from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+
4
+ const SheetClose = forwardRef(function SheetClose(props, ref) {
5
+ return <DialogPrimitive.Close ref={ref} data-slot="sheet-close" {...props} />;
6
+ });
7
+ export default SheetClose;
@@ -0,0 +1,35 @@
1
+ import { forwardRef } from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ import SheetOverlay from "./sheet-overlay.jsx";
4
+ import { cn } from "../../../utils/index.js";
5
+ import { Button } from "../../../components/ui/button/index.js";
6
+ import { X } from "lucide-react";
7
+
8
+ const SheetContent = forwardRef(function SheetContent({ className, side = "right", showCloseButton = true, children, ...props }, ref) {
9
+ return (
10
+ <DialogPrimitive.Portal>
11
+ <SheetOverlay />
12
+ <DialogPrimitive.Content
13
+ ref={ref}
14
+ data-slot="sheet-content"
15
+ data-side={side}
16
+ className={cn(
17
+ "bg-background fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[side=bottom]:data-[state=open]:slide-in-from-bottom-10 data-[side=left]:data-[state=open]:slide-in-from-left-10 data-[side=right]:data-[state=open]:slide-in-from-right-10 data-[side=top]:data-[state=open]:slide-in-from-top-10 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[side=bottom]:data-[state=closed]:slide-out-to-bottom-10 data-[side=left]:data-[state=closed]:slide-out-to-left-10 data-[side=right]:data-[state=closed]:slide-out-to-right-10 data-[side=top]:data-[state=closed]:slide-out-to-top-10",
18
+ className
19
+ )}
20
+ {...props}
21
+ >
22
+ {children}
23
+ {showCloseButton && (
24
+ <DialogPrimitive.Close asChild data-slot="sheet-close">
25
+ <Button variant="ghost" className="absolute top-3 right-3" size="icon-sm">
26
+ <X />
27
+ <span className="sr-only">Close</span>
28
+ </Button>
29
+ </DialogPrimitive.Close>
30
+ )}
31
+ </DialogPrimitive.Content>
32
+ </DialogPrimitive.Portal>
33
+ );
34
+ });
35
+ export default SheetContent;
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ import { cn } from "../../../utils/index.js";
4
+
5
+ const SheetDescription = forwardRef(function SheetDescription({ className, ...props }, ref) {
6
+ return (
7
+ <DialogPrimitive.Description
8
+ ref={ref}
9
+ data-slot="sheet-description"
10
+ className={cn("text-muted-foreground text-sm", className)}
11
+ {...props}
12
+ />
13
+ );
14
+ });
15
+ export default SheetDescription;
@@ -0,0 +1,11 @@
1
+ import { forwardRef } from "react";
2
+ import { cn } from "../../../utils/index.js";
3
+
4
+ const SheetFooter = forwardRef(function SheetFooter({ className, children, ...props }, ref) {
5
+ return (
6
+ <div ref={ref} data-slot="sheet-footer" className={cn("gap-2 p-4 mt-auto flex flex-col", className)} {...props}>
7
+ {children}
8
+ </div>
9
+ );
10
+ });
11
+ export default SheetFooter;
@@ -0,0 +1,11 @@
1
+ import { forwardRef } from "react";
2
+ import { cn } from "../../../utils/index.js";
3
+
4
+ const SheetHeader = forwardRef(function SheetHeader({ className, children, ...props }, ref) {
5
+ return (
6
+ <div ref={ref} data-slot="sheet-header" className={cn("gap-0.5 p-4 flex flex-col", className)} {...props}>
7
+ {children}
8
+ </div>
9
+ );
10
+ });
11
+ export default SheetHeader;
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ import { cn } from "../../../utils/index.js";
4
+
5
+ const SheetOverlay = forwardRef(function SheetOverlay({ className, ...props }, ref) {
6
+ return (
7
+ <DialogPrimitive.Overlay
8
+ ref={ref}
9
+ data-slot="sheet-overlay"
10
+ className={cn("bg-black/10 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className)}
11
+ {...props}
12
+ />
13
+ );
14
+ });
15
+ export default SheetOverlay;
@@ -0,0 +1,4 @@
1
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
2
+ export default function SheetPortal(props) {
3
+ return <DialogPrimitive.Portal {...props} />;
4
+ }
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ import { cn } from "../../../utils/index.js";
4
+
5
+ const SheetTitle = forwardRef(function SheetTitle({ className, ...props }, ref) {
6
+ return (
7
+ <DialogPrimitive.Title
8
+ ref={ref}
9
+ data-slot="sheet-title"
10
+ className={cn("text-foreground text-base font-medium", className)}
11
+ {...props}
12
+ />
13
+ );
14
+ });
15
+ export default SheetTitle;
@@ -0,0 +1,7 @@
1
+ import { forwardRef } from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+
4
+ const SheetTrigger = forwardRef(function SheetTrigger(props, ref) {
5
+ return <DialogPrimitive.Trigger ref={ref} data-slot="sheet-trigger" {...props} />;
6
+ });
7
+ export default SheetTrigger;
@@ -0,0 +1,4 @@
1
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
2
+ export default function Sheet({ children, ...props }) {
3
+ return <DialogPrimitive.Root {...props}>{children}</DialogPrimitive.Root>;
4
+ }
@@ -1,7 +1,7 @@
1
- import Root from "./textarea.svelte";
1
+ import Root from "./textarea.jsx";
2
2
 
3
3
  export {
4
- Root,
5
- //
6
- Root as Textarea,
7
- };
4
+ Root,
5
+ //
6
+ Root as Textarea,
7
+ };
@@ -0,0 +1,18 @@
1
+ import { forwardRef } from "react";
2
+ import { cn } from "../../../utils/index.js";
3
+
4
+ const Textarea = forwardRef(function Textarea({ className, "data-slot": dataSlot = "textarea", ...props }, ref) {
5
+ return (
6
+ <textarea
7
+ ref={ref}
8
+ data-slot={dataSlot}
9
+ className={cn(
10
+ "border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 rounded-lg border bg-transparent px-2.5 py-2 text-base transition-colors focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",
11
+ className
12
+ )}
13
+ {...props}
14
+ />
15
+ );
16
+ });
17
+
18
+ export default Textarea;
@@ -1,11 +1,8 @@
1
- import Root from "./toggle.svelte";
2
- export {
3
- toggleVariants,
4
-
5
- } from "./toggle.svelte";
1
+ import Root, { toggleVariants } from "./toggle.jsx";
6
2
 
7
3
  export {
8
- Root,
9
- //
10
- Root as Toggle,
11
- };
4
+ toggleVariants,
5
+ Root,
6
+ //
7
+ Root as Toggle,
8
+ };
@@ -0,0 +1,36 @@
1
+ import { forwardRef } from "react";
2
+ import * as TogglePrimitive from "@radix-ui/react-toggle";
3
+ import { cn } from "../../../utils/index.js";
4
+ import { tv } from "tailwind-variants";
5
+
6
+ export const toggleVariants = tv({
7
+ base: "hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[state=on]:bg-muted gap-1 rounded-lg text-sm font-medium transition-all [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
8
+ variants: {
9
+ variant: {
10
+ default: "bg-transparent",
11
+ outline: "border-input hover:bg-muted border bg-transparent",
12
+ },
13
+ size: {
14
+ default: "h-8 min-w-8 px-2",
15
+ sm: "h-7 min-w-7 rounded-[min(var(--sb--radius-md),12px)] px-1.5 text-[0.8rem]",
16
+ lg: "h-9 min-w-9 px-2.5",
17
+ },
18
+ },
19
+ defaultVariants: {
20
+ variant: "default",
21
+ size: "default",
22
+ },
23
+ });
24
+
25
+ const Toggle = forwardRef(function Toggle({ className, variant = "default", size = "default", ...props }, ref) {
26
+ return (
27
+ <TogglePrimitive.Root
28
+ ref={ref}
29
+ data-slot="toggle"
30
+ className={cn(toggleVariants({ variant, size }), className)}
31
+ {...props}
32
+ />
33
+ );
34
+ });
35
+
36
+ export default Toggle;
@@ -1,10 +1,10 @@
1
- import Root from "./toggle-group.svelte";
2
- import Item from "./toggle-group-item.svelte";
1
+ import Root from "./toggle-group.jsx";
2
+ import Item from "./toggle-group-item.jsx";
3
3
 
4
4
  export {
5
- Root,
6
- Item,
7
- //
8
- Root as ToggleGroup,
9
- Item as ToggleGroupItem,
10
- };
5
+ Root,
6
+ Item,
7
+ //
8
+ Root as ToggleGroup,
9
+ Item as ToggleGroupItem,
10
+ };
@@ -0,0 +1,29 @@
1
+ import { forwardRef } from "react";
2
+ import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
3
+ import { useToggleGroupCtx } from "./toggle-group.jsx";
4
+ import { cn } from "../../../utils/index.js";
5
+ import { toggleVariants } from "../../../components/ui/toggle/index.js";
6
+
7
+ const ToggleGroupItem = forwardRef(function ToggleGroupItem({ className, variant, size, ...props }, ref) {
8
+ const ctx = useToggleGroupCtx();
9
+
10
+ return (
11
+ <ToggleGroupPrimitive.Item
12
+ ref={ref}
13
+ data-slot="toggle-group-item"
14
+ data-variant={ctx.variant || variant}
15
+ data-size={ctx.size || size}
16
+ data-spacing={ctx.spacing}
17
+ className={cn(
18
+ "group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
19
+ toggleVariants({
20
+ variant: ctx.variant || variant,
21
+ size: ctx.size || size,
22
+ }),
23
+ className
24
+ )}
25
+ {...props}
26
+ />
27
+ );
28
+ });
29
+ export default ToggleGroupItem;
@@ -0,0 +1,43 @@
1
+ import { forwardRef, createContext, useContext, useMemo } from "react";
2
+ import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
3
+ import { cn } from "../../../utils/index.js";
4
+
5
+ export const ToggleGroupContext = createContext({
6
+ variant: "default",
7
+ size: "default",
8
+ spacing: 0,
9
+ orientation: "horizontal",
10
+ });
11
+
12
+ export function useToggleGroupCtx() {
13
+ return useContext(ToggleGroupContext);
14
+ }
15
+
16
+ const ToggleGroup = forwardRef(function ToggleGroup(
17
+ { className, variant = "default", size = "default", spacing = 0, orientation = "horizontal", children, ...props },
18
+ ref
19
+ ) {
20
+ const ctx = useMemo(() => ({ variant, size, spacing, orientation }), [variant, size, spacing, orientation]);
21
+
22
+ return (
23
+ <ToggleGroupContext.Provider value={ctx}>
24
+ <ToggleGroupPrimitive.Root
25
+ ref={ref}
26
+ orientation={orientation}
27
+ data-slot="toggle-group"
28
+ data-variant={variant}
29
+ data-size={size}
30
+ data-spacing={spacing}
31
+ style={{ '--sb--gap': spacing }}
32
+ className={cn(
33
+ "rounded-lg data-[size=sm]:rounded-[min(var(--sb--radius-md),10px)] group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--sb--gap))] data-vertical:flex-col data-vertical:items-stretch",
34
+ className
35
+ )}
36
+ {...props}
37
+ >
38
+ {children}
39
+ </ToggleGroupPrimitive.Root>
40
+ </ToggleGroupContext.Provider>
41
+ );
42
+ });
43
+ export default ToggleGroup;
@@ -1,3 +1,3 @@
1
- export { default as Root } from "./tooltip.svelte";
2
- export { default as Trigger } from "./tooltip-trigger.svelte";
3
- export { default as Content } from "./tooltip-content.svelte";
1
+ export { default as Root } from "./tooltip.jsx";
2
+ export { default as Trigger } from "./tooltip-trigger.jsx";
3
+ export { default as Content } from "./tooltip-content.jsx";
@@ -0,0 +1,21 @@
1
+ import { forwardRef } from "react";
2
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3
+ import { cn } from "../../../utils/index.js";
4
+
5
+ const TooltipContent = forwardRef(function TooltipContent({ className, sideOffset = 8, ...props }, ref) {
6
+ return (
7
+ <TooltipPrimitive.Portal>
8
+ <TooltipPrimitive.Content
9
+ ref={ref}
10
+ data-slot="tooltip-content"
11
+ sideOffset={sideOffset}
12
+ className={cn(
13
+ "font-sans bg-slate-700 text-white text-xs px-2.5 py-1.5 rounded-lg shadow-lg z-[10001] animate-in fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
14
+ className
15
+ )}
16
+ {...props}
17
+ />
18
+ </TooltipPrimitive.Portal>
19
+ );
20
+ });
21
+ export default TooltipContent;
@@ -0,0 +1,23 @@
1
+ import { forwardRef } from "react";
2
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3
+
4
+ const TooltipTrigger = forwardRef(function TooltipTrigger({ asChild, children, ...props }, ref) {
5
+ if (asChild) {
6
+ return (
7
+ <TooltipPrimitive.Trigger ref={ref} asChild {...props}>
8
+ {children}
9
+ </TooltipPrimitive.Trigger>
10
+ );
11
+ }
12
+ return (
13
+ <TooltipPrimitive.Trigger ref={ref} asChild {...props}>
14
+ <span
15
+ tabIndex={-1}
16
+ style={{ display: "inline-flex" }}
17
+ >
18
+ {children}
19
+ </span>
20
+ </TooltipPrimitive.Trigger>
21
+ );
22
+ });
23
+ export default TooltipTrigger;
@@ -0,0 +1,11 @@
1
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
2
+
3
+ export default function Tooltip({ children, ...props }) {
4
+ return (
5
+ <TooltipPrimitive.Provider delayDuration={50}>
6
+ <TooltipPrimitive.Root {...props}>
7
+ {children}
8
+ </TooltipPrimitive.Root>
9
+ </TooltipPrimitive.Provider>
10
+ );
11
+ }
@@ -1,6 +1,6 @@
1
- import Root from "./trigger-button.svelte";
1
+ import Root from "./trigger-button.jsx";
2
2
 
3
3
  export {
4
- Root,
5
- Root as TriggerButton,
4
+ Root,
5
+ Root as TriggerButton,
6
6
  };
@@ -0,0 +1,38 @@
1
+ [data-trigger-button] {
2
+ display: inline-flex;
3
+ position: relative;
4
+ }
5
+ [data-trigger-button] [data-slot="button-wrapper"] {
6
+ --sb--sc-border-color: var(--sb--trigger-border, var(--color-slate-400));
7
+ --sb--sc-border-width: var(--sb--trigger-border-width, 3px);
8
+ }
9
+ /* Accent-colored border/gap on focus — follows the superellipse shape */
10
+ [data-trigger-button] [data-slot="button-wrapper"]:has([data-slot="button"]:focus-visible) {
11
+ --sb--sc-border-color: hsl(212 92% 45%);
12
+ }
13
+ [data-trigger-button] [data-slot="button"] {
14
+ background-color: var(--sb--trigger-bg, var(--color-slate-100));
15
+ color: var(--sb--trigger-text, var(--color-slate-600));
16
+ }
17
+ [data-trigger-button] [data-slot="button"]:hover,
18
+ [data-trigger-button] [data-slot="button"]:focus-visible,
19
+ [data-trigger-button] [data-slot="button"][aria-expanded="true"],
20
+ [data-trigger-button][data-active] [data-slot="button"] {
21
+ background-color: var(--sb--trigger-bg-hover, var(--color-slate-300));
22
+ }
23
+
24
+ /* Inactive: disabled-looking, no interaction */
25
+ [data-trigger-button][data-inactive] {
26
+ opacity: 0.45;
27
+ pointer-events: none;
28
+ }
29
+
30
+ /* Dimmed: reduced visibility, interactive on hover/focus */
31
+ [data-trigger-button][data-dimmed] {
32
+ opacity: 0.3;
33
+ transition: opacity 200ms;
34
+ }
35
+ [data-trigger-button][data-dimmed]:hover,
36
+ [data-trigger-button][data-dimmed]:focus-within {
37
+ opacity: 1;
38
+ }