selva-shared 0.8.1

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 (506) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/dist/components/AppLayout.svelte +439 -0
  4. package/dist/components/AppLayout.svelte.d.ts +17 -0
  5. package/dist/components/CollapsedPanelStrip.svelte +67 -0
  6. package/dist/components/CollapsedPanelStrip.svelte.d.ts +11 -0
  7. package/dist/components/ComputeMessages.svelte +172 -0
  8. package/dist/components/ComputeMessages.svelte.d.ts +7 -0
  9. package/dist/components/ErrorScreen.svelte +55 -0
  10. package/dist/components/ErrorScreen.svelte.d.ts +9 -0
  11. package/dist/components/StateManager.svelte +318 -0
  12. package/dist/components/StateManager.svelte.d.ts +9 -0
  13. package/dist/components/Viewer.svelte +207 -0
  14. package/dist/components/Viewer.svelte.d.ts +12 -0
  15. package/dist/components/layout/FooterItemRenderer.svelte +20 -0
  16. package/dist/components/layout/FooterItemRenderer.svelte.d.ts +7 -0
  17. package/dist/components/layout/PageContainer.svelte +36 -0
  18. package/dist/components/layout/PageContainer.svelte.d.ts +12 -0
  19. package/dist/components/layout/PageFooter.svelte +223 -0
  20. package/dist/components/layout/PageFooter.svelte.d.ts +9 -0
  21. package/dist/components/layout/PageHeader.svelte +89 -0
  22. package/dist/components/layout/PageHeader.svelte.d.ts +12 -0
  23. package/dist/components/layout/index.d.ts +3 -0
  24. package/dist/components/layout/index.js +4 -0
  25. package/dist/components/preview/ChartOutput.svelte +257 -0
  26. package/dist/components/preview/ChartOutput.svelte.d.ts +8 -0
  27. package/dist/components/preview/Group.svelte +121 -0
  28. package/dist/components/preview/Group.svelte.d.ts +23 -0
  29. package/dist/components/preview/InputControl.svelte +119 -0
  30. package/dist/components/preview/InputControl.svelte.d.ts +11 -0
  31. package/dist/components/preview/OutputDisplay.svelte +296 -0
  32. package/dist/components/preview/OutputDisplay.svelte.d.ts +9 -0
  33. package/dist/components/preview/TabBar.svelte +36 -0
  34. package/dist/components/preview/TabBar.svelte.d.ts +8 -0
  35. package/dist/components/preview/TabContent.svelte +124 -0
  36. package/dist/components/preview/TabContent.svelte.d.ts +13 -0
  37. package/dist/components/preview/TabLayout.svelte +109 -0
  38. package/dist/components/preview/TabLayout.svelte.d.ts +13 -0
  39. package/dist/components/preview/index.d.ts +3 -0
  40. package/dist/components/preview/index.js +4 -0
  41. package/dist/components/preview/inputs/CheckboxInput.svelte +29 -0
  42. package/dist/components/preview/inputs/CheckboxInput.svelte.d.ts +10 -0
  43. package/dist/components/preview/inputs/ColorInput.svelte +21 -0
  44. package/dist/components/preview/inputs/ColorInput.svelte.d.ts +7 -0
  45. package/dist/components/preview/inputs/DropdownInput.svelte +40 -0
  46. package/dist/components/preview/inputs/DropdownInput.svelte.d.ts +10 -0
  47. package/dist/components/preview/inputs/FileInput.svelte +358 -0
  48. package/dist/components/preview/inputs/FileInput.svelte.d.ts +10 -0
  49. package/dist/components/preview/inputs/NumberInput.svelte +152 -0
  50. package/dist/components/preview/inputs/NumberInput.svelte.d.ts +11 -0
  51. package/dist/components/preview/inputs/TextInput.svelte +74 -0
  52. package/dist/components/preview/inputs/TextInput.svelte.d.ts +11 -0
  53. package/dist/components/preview/inputs/index.d.ts +6 -0
  54. package/dist/components/preview/inputs/index.js +6 -0
  55. package/dist/components/ui/CalculateButton.svelte +56 -0
  56. package/dist/components/ui/CalculateButton.svelte.d.ts +9 -0
  57. package/dist/components/ui/SolvingIndicator.svelte +55 -0
  58. package/dist/components/ui/SolvingIndicator.svelte.d.ts +6 -0
  59. package/dist/components/ui/StateDisplay.svelte +106 -0
  60. package/dist/components/ui/StateDisplay.svelte.d.ts +10 -0
  61. package/dist/components/ui/alert/alert-description.svelte +23 -0
  62. package/dist/components/ui/alert/alert-description.svelte.d.ts +5 -0
  63. package/dist/components/ui/alert/alert-title.svelte +20 -0
  64. package/dist/components/ui/alert/alert-title.svelte.d.ts +5 -0
  65. package/dist/components/ui/alert/alert.svelte +44 -0
  66. package/dist/components/ui/alert/alert.svelte.d.ts +26 -0
  67. package/dist/components/ui/alert/index.d.ts +5 -0
  68. package/dist/components/ui/alert/index.js +7 -0
  69. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +18 -0
  70. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte.d.ts +4 -0
  71. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +18 -0
  72. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte.d.ts +4 -0
  73. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +27 -0
  74. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte.d.ts +8 -0
  75. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +17 -0
  76. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte.d.ts +4 -0
  77. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +20 -0
  78. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte.d.ts +5 -0
  79. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +20 -0
  80. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte.d.ts +5 -0
  81. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +20 -0
  82. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte.d.ts +4 -0
  83. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +17 -0
  84. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte.d.ts +4 -0
  85. package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte +7 -0
  86. package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte.d.ts +4 -0
  87. package/dist/components/ui/alert-dialog/index.d.ts +12 -0
  88. package/dist/components/ui/alert-dialog/index.js +15 -0
  89. package/dist/components/ui/badge/badge.svelte +50 -0
  90. package/dist/components/ui/badge/badge.svelte.d.ts +32 -0
  91. package/dist/components/ui/badge/index.d.ts +2 -0
  92. package/dist/components/ui/badge/index.js +2 -0
  93. package/dist/components/ui/button/button.svelte +83 -0
  94. package/dist/components/ui/button/button.svelte.d.ts +67 -0
  95. package/dist/components/ui/button/index.d.ts +2 -0
  96. package/dist/components/ui/button/index.js +4 -0
  97. package/dist/components/ui/button-group/button-group-separator.svelte +20 -0
  98. package/dist/components/ui/button-group/button-group-separator.svelte.d.ts +13 -0
  99. package/dist/components/ui/button-group/button-group-text.svelte +30 -0
  100. package/dist/components/ui/button-group/button-group-text.svelte.d.ts +11 -0
  101. package/dist/components/ui/button-group/button-group.svelte +46 -0
  102. package/dist/components/ui/button-group/button-group.svelte.d.ts +26 -0
  103. package/dist/components/ui/button-group/index.d.ts +4 -0
  104. package/dist/components/ui/button-group/index.js +6 -0
  105. package/dist/components/ui/card/card-action.svelte +20 -0
  106. package/dist/components/ui/card/card-action.svelte.d.ts +5 -0
  107. package/dist/components/ui/card/card-content.svelte +15 -0
  108. package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
  109. package/dist/components/ui/card/card-description.svelte +20 -0
  110. package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
  111. package/dist/components/ui/card/card-footer.svelte +20 -0
  112. package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
  113. package/dist/components/ui/card/card-header.svelte +23 -0
  114. package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
  115. package/dist/components/ui/card/card-title.svelte +20 -0
  116. package/dist/components/ui/card/card-title.svelte.d.ts +5 -0
  117. package/dist/components/ui/card/card.svelte +23 -0
  118. package/dist/components/ui/card/card.svelte.d.ts +5 -0
  119. package/dist/components/ui/card/index.d.ts +8 -0
  120. package/dist/components/ui/card/index.js +10 -0
  121. package/dist/components/ui/checkbox/checkbox.svelte +36 -0
  122. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
  123. package/dist/components/ui/checkbox/index.d.ts +2 -0
  124. package/dist/components/ui/checkbox/index.js +4 -0
  125. package/dist/components/ui/collapsible/collapsible-content.svelte +7 -0
  126. package/dist/components/ui/collapsible/collapsible-content.svelte.d.ts +4 -0
  127. package/dist/components/ui/collapsible/collapsible-trigger.svelte +7 -0
  128. package/dist/components/ui/collapsible/collapsible-trigger.svelte.d.ts +4 -0
  129. package/dist/components/ui/collapsible/collapsible.svelte +11 -0
  130. package/dist/components/ui/collapsible/collapsible.svelte.d.ts +4 -0
  131. package/dist/components/ui/collapsible/index.d.ts +4 -0
  132. package/dist/components/ui/collapsible/index.js +6 -0
  133. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +38 -0
  134. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +9 -0
  135. package/dist/components/ui/context-menu/context-menu-content.svelte +25 -0
  136. package/dist/components/ui/context-menu/context-menu-content.svelte.d.ts +7 -0
  137. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +21 -0
  138. package/dist/components/ui/context-menu/context-menu-group-heading.svelte.d.ts +7 -0
  139. package/dist/components/ui/context-menu/context-menu-group.svelte +7 -0
  140. package/dist/components/ui/context-menu/context-menu-group.svelte.d.ts +4 -0
  141. package/dist/components/ui/context-menu/context-menu-item.svelte +27 -0
  142. package/dist/components/ui/context-menu/context-menu-item.svelte.d.ts +8 -0
  143. package/dist/components/ui/context-menu/context-menu-label.svelte +24 -0
  144. package/dist/components/ui/context-menu/context-menu-label.svelte.d.ts +8 -0
  145. package/dist/components/ui/context-menu/context-menu-radio-group.svelte +16 -0
  146. package/dist/components/ui/context-menu/context-menu-radio-group.svelte.d.ts +4 -0
  147. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +31 -0
  148. package/dist/components/ui/context-menu/context-menu-radio-item.svelte.d.ts +4 -0
  149. package/dist/components/ui/context-menu/context-menu-separator.svelte +17 -0
  150. package/dist/components/ui/context-menu/context-menu-separator.svelte.d.ts +4 -0
  151. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +20 -0
  152. package/dist/components/ui/context-menu/context-menu-shortcut.svelte.d.ts +5 -0
  153. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +20 -0
  154. package/dist/components/ui/context-menu/context-menu-sub-content.svelte.d.ts +4 -0
  155. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +29 -0
  156. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +8 -0
  157. package/dist/components/ui/context-menu/context-menu-trigger.svelte +7 -0
  158. package/dist/components/ui/context-menu/context-menu-trigger.svelte.d.ts +4 -0
  159. package/dist/components/ui/context-menu/index.d.ts +16 -0
  160. package/dist/components/ui/context-menu/index.js +19 -0
  161. package/dist/components/ui/dialog/dialog-close.svelte +7 -0
  162. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +4 -0
  163. package/dist/components/ui/dialog/dialog-content.svelte +43 -0
  164. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +11 -0
  165. package/dist/components/ui/dialog/dialog-description.svelte +17 -0
  166. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
  167. package/dist/components/ui/dialog/dialog-footer.svelte +20 -0
  168. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +5 -0
  169. package/dist/components/ui/dialog/dialog-header.svelte +20 -0
  170. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
  171. package/dist/components/ui/dialog/dialog-overlay.svelte +20 -0
  172. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
  173. package/dist/components/ui/dialog/dialog-title.svelte +17 -0
  174. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
  175. package/dist/components/ui/dialog/dialog-trigger.svelte +7 -0
  176. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
  177. package/dist/components/ui/dialog/index.d.ts +11 -0
  178. package/dist/components/ui/dialog/index.js +14 -0
  179. package/dist/components/ui/field/field-content.svelte +20 -0
  180. package/dist/components/ui/field/field-content.svelte.d.ts +5 -0
  181. package/dist/components/ui/field/field-description.svelte +25 -0
  182. package/dist/components/ui/field/field-description.svelte.d.ts +5 -0
  183. package/dist/components/ui/field/field-error.svelte +58 -0
  184. package/dist/components/ui/field/field-error.svelte.d.ts +12 -0
  185. package/dist/components/ui/field/field-group.svelte +23 -0
  186. package/dist/components/ui/field/field-group.svelte.d.ts +5 -0
  187. package/dist/components/ui/field/field-label.svelte +26 -0
  188. package/dist/components/ui/field/field-label.svelte.d.ts +10 -0
  189. package/dist/components/ui/field/field-legend.svelte +29 -0
  190. package/dist/components/ui/field/field-legend.svelte.d.ts +8 -0
  191. package/dist/components/ui/field/field-separator.svelte +38 -0
  192. package/dist/components/ui/field/field-separator.svelte.d.ts +9 -0
  193. package/dist/components/ui/field/field-set.svelte +24 -0
  194. package/dist/components/ui/field/field-set.svelte.d.ts +5 -0
  195. package/dist/components/ui/field/field-title.svelte +23 -0
  196. package/dist/components/ui/field/field-title.svelte.d.ts +5 -0
  197. package/dist/components/ui/field/field.svelte +53 -0
  198. package/dist/components/ui/field/field.svelte.d.ts +29 -0
  199. package/dist/components/ui/field/index.d.ts +11 -0
  200. package/dist/components/ui/field/index.js +13 -0
  201. package/dist/components/ui/index.d.ts +21 -0
  202. package/dist/components/ui/index.js +24 -0
  203. package/dist/components/ui/input/index.d.ts +2 -0
  204. package/dist/components/ui/input/index.js +4 -0
  205. package/dist/components/ui/input/input.svelte +52 -0
  206. package/dist/components/ui/input/input.svelte.d.ts +13 -0
  207. package/dist/components/ui/label/index.d.ts +2 -0
  208. package/dist/components/ui/label/index.js +4 -0
  209. package/dist/components/ui/label/label.svelte +20 -0
  210. package/dist/components/ui/label/label.svelte.d.ts +4 -0
  211. package/dist/components/ui/mode-toggle/index.d.ts +1 -0
  212. package/dist/components/ui/mode-toggle/index.js +1 -0
  213. package/dist/components/ui/mode-toggle/mode-toggle.svelte +16 -0
  214. package/dist/components/ui/mode-toggle/mode-toggle.svelte.d.ts +18 -0
  215. package/dist/components/ui/resizable/index.d.ts +4 -0
  216. package/dist/components/ui/resizable/index.js +6 -0
  217. package/dist/components/ui/resizable/resizable-handle.svelte +30 -0
  218. package/dist/components/ui/resizable/resizable-handle.svelte.d.ts +8 -0
  219. package/dist/components/ui/resizable/resizable-pane-group.svelte +20 -0
  220. package/dist/components/ui/resizable/resizable-pane-group.svelte.d.ts +7 -0
  221. package/dist/components/ui/scroll-area/index.d.ts +3 -0
  222. package/dist/components/ui/scroll-area/index.js +5 -0
  223. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  224. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
  225. package/dist/components/ui/scroll-area/scroll-area.svelte +43 -0
  226. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +11 -0
  227. package/dist/components/ui/select/index.d.ts +11 -0
  228. package/dist/components/ui/select/index.js +14 -0
  229. package/dist/components/ui/select/select-content.svelte +40 -0
  230. package/dist/components/ui/select/select-content.svelte.d.ts +8 -0
  231. package/dist/components/ui/select/select-group-heading.svelte +21 -0
  232. package/dist/components/ui/select/select-group-heading.svelte.d.ts +10 -0
  233. package/dist/components/ui/select/select-group.svelte +7 -0
  234. package/dist/components/ui/select/select-group.svelte.d.ts +4 -0
  235. package/dist/components/ui/select/select-item.svelte +38 -0
  236. package/dist/components/ui/select/select-item.svelte.d.ts +4 -0
  237. package/dist/components/ui/select/select-label.svelte +20 -0
  238. package/dist/components/ui/select/select-label.svelte.d.ts +6 -0
  239. package/dist/components/ui/select/select-scroll-down-button.svelte +20 -0
  240. package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +4 -0
  241. package/dist/components/ui/select/select-scroll-up-button.svelte +20 -0
  242. package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
  243. package/dist/components/ui/select/select-separator.svelte +18 -0
  244. package/dist/components/ui/select/select-separator.svelte.d.ts +4 -0
  245. package/dist/components/ui/select/select-trigger.svelte +29 -0
  246. package/dist/components/ui/select/select-trigger.svelte.d.ts +8 -0
  247. package/dist/components/ui/separator/index.d.ts +2 -0
  248. package/dist/components/ui/separator/index.js +4 -0
  249. package/dist/components/ui/separator/separator.svelte +21 -0
  250. package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
  251. package/dist/components/ui/slider/index.d.ts +2 -0
  252. package/dist/components/ui/slider/index.js +4 -0
  253. package/dist/components/ui/slider/slider.svelte +52 -0
  254. package/dist/components/ui/slider/slider.svelte.d.ts +5 -0
  255. package/dist/components/ui/sonner/index.d.ts +2 -0
  256. package/dist/components/ui/sonner/index.js +2 -0
  257. package/dist/components/ui/sonner/sonner.svelte +13 -0
  258. package/dist/components/ui/sonner/sonner.svelte.d.ts +4 -0
  259. package/dist/components/ui/switch/index.d.ts +2 -0
  260. package/dist/components/ui/switch/index.js +4 -0
  261. package/dist/components/ui/switch/switch.svelte +29 -0
  262. package/dist/components/ui/switch/switch.svelte.d.ts +4 -0
  263. package/dist/components/ui/tabs/index.d.ts +5 -0
  264. package/dist/components/ui/tabs/index.js +7 -0
  265. package/dist/components/ui/tabs/tabs-content.svelte +17 -0
  266. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
  267. package/dist/components/ui/tabs/tabs-list.svelte +16 -0
  268. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +4 -0
  269. package/dist/components/ui/tabs/tabs-trigger.svelte +20 -0
  270. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
  271. package/dist/components/ui/tabs/tabs.svelte +19 -0
  272. package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
  273. package/dist/components/ui/textarea/index.d.ts +2 -0
  274. package/dist/components/ui/textarea/index.js +4 -0
  275. package/dist/components/ui/textarea/textarea.svelte +23 -0
  276. package/dist/components/ui/textarea/textarea.svelte.d.ts +5 -0
  277. package/dist/components/ui/theme-switcher/ThemeSwitcher.svelte +39 -0
  278. package/dist/components/ui/theme-switcher/ThemeSwitcher.svelte.d.ts +3 -0
  279. package/dist/components/ui/theme-switcher/index.d.ts +1 -0
  280. package/dist/components/ui/theme-switcher/index.js +1 -0
  281. package/dist/composables/useFooterItem.svelte.d.ts +15 -0
  282. package/dist/composables/useFooterItem.svelte.js +31 -0
  283. package/dist/constants.d.ts +6 -0
  284. package/dist/constants.js +6 -0
  285. package/dist/contexts/FOOTER_USAGE.md +164 -0
  286. package/dist/contexts/footerContext.svelte.d.ts +17 -0
  287. package/dist/contexts/footerContext.svelte.js +24 -0
  288. package/dist/dummy-output-values.d.ts +3 -0
  289. package/dist/dummy-output-values.js +53 -0
  290. package/dist/dummy-surface-chart.json +13 -0
  291. package/dist/example-schema-left-only.json +367 -0
  292. package/dist/example-schema-right-only.json +322 -0
  293. package/dist/example-schema.json +1582 -0
  294. package/dist/features/preview/handlers.d.ts +55 -0
  295. package/dist/features/preview/handlers.js +175 -0
  296. package/dist/features/preview/index.d.ts +2 -0
  297. package/dist/features/preview/index.js +2 -0
  298. package/dist/features/preview/notifications.d.ts +11 -0
  299. package/dist/features/preview/notifications.js +41 -0
  300. package/dist/index.d.ts +29 -0
  301. package/dist/index.js +39 -0
  302. package/dist/stores/themeStore.svelte.d.ts +12 -0
  303. package/dist/stores/themeStore.svelte.js +42 -0
  304. package/dist/styles/base.css +142 -0
  305. package/dist/styles/themes/cyberpunk.css +98 -0
  306. package/dist/styles/themes/neutral.css +72 -0
  307. package/dist/styles/themes/ocean.css +75 -0
  308. package/dist/styles/themes/selva.css +105 -0
  309. package/dist/themes.d.ts +5 -0
  310. package/dist/themes.js +13 -0
  311. package/dist/types/generated/index.d.ts +6 -0
  312. package/dist/types/generated/index.js +6 -0
  313. package/dist/types/generated/preset.d.ts +80 -0
  314. package/dist/types/generated/preset.js +7 -0
  315. package/dist/types/generated/schema.d.ts +451 -0
  316. package/dist/types/generated/schema.js +48 -0
  317. package/dist/utils/computeThrottle.svelte.d.ts +28 -0
  318. package/dist/utils/computeThrottle.svelte.js +93 -0
  319. package/dist/utils/debounce.d.ts +14 -0
  320. package/dist/utils/debounce.js +25 -0
  321. package/dist/utils/file-download.d.ts +26 -0
  322. package/dist/utils/file-download.js +76 -0
  323. package/dist/utils/loadScript.d.ts +14 -0
  324. package/dist/utils/loadScript.js +41 -0
  325. package/dist/utils/param-exporter.d.ts +30 -0
  326. package/dist/utils/param-exporter.js +186 -0
  327. package/dist/utils/solving.svelte.d.ts +12 -0
  328. package/dist/utils/solving.svelte.js +86 -0
  329. package/dist/utils/utils-shared.d.ts +9 -0
  330. package/dist/utils/utils-shared.js +53 -0
  331. package/dist/utils/visibility-rules.d.ts +12 -0
  332. package/dist/utils/visibility-rules.js +52 -0
  333. package/dist/utils.d.ts +12 -0
  334. package/dist/utils.js +5 -0
  335. package/package.json +70 -0
  336. package/src/lib/components/AppLayout.svelte +439 -0
  337. package/src/lib/components/CollapsedPanelStrip.svelte +67 -0
  338. package/src/lib/components/ComputeMessages.svelte +172 -0
  339. package/src/lib/components/ErrorScreen.svelte +55 -0
  340. package/src/lib/components/StateManager.svelte +318 -0
  341. package/src/lib/components/Viewer.svelte +207 -0
  342. package/src/lib/components/layout/FooterItemRenderer.svelte +20 -0
  343. package/src/lib/components/layout/PageContainer.svelte +36 -0
  344. package/src/lib/components/layout/PageFooter.svelte +223 -0
  345. package/src/lib/components/layout/PageHeader.svelte +89 -0
  346. package/src/lib/components/layout/index.ts +4 -0
  347. package/src/lib/components/preview/ChartOutput.svelte +257 -0
  348. package/src/lib/components/preview/Group.svelte +121 -0
  349. package/src/lib/components/preview/InputControl.svelte +119 -0
  350. package/src/lib/components/preview/OutputDisplay.svelte +296 -0
  351. package/src/lib/components/preview/TabBar.svelte +36 -0
  352. package/src/lib/components/preview/TabContent.svelte +124 -0
  353. package/src/lib/components/preview/TabLayout.svelte +109 -0
  354. package/src/lib/components/preview/index.ts +4 -0
  355. package/src/lib/components/preview/inputs/CheckboxInput.svelte +29 -0
  356. package/src/lib/components/preview/inputs/ColorInput.svelte +21 -0
  357. package/src/lib/components/preview/inputs/DropdownInput.svelte +40 -0
  358. package/src/lib/components/preview/inputs/FileInput.svelte +358 -0
  359. package/src/lib/components/preview/inputs/NumberInput.svelte +152 -0
  360. package/src/lib/components/preview/inputs/TextInput.svelte +74 -0
  361. package/src/lib/components/preview/inputs/index.ts +6 -0
  362. package/src/lib/components/ui/CalculateButton.svelte +56 -0
  363. package/src/lib/components/ui/SolvingIndicator.svelte +55 -0
  364. package/src/lib/components/ui/StateDisplay.svelte +106 -0
  365. package/src/lib/components/ui/alert/alert-description.svelte +23 -0
  366. package/src/lib/components/ui/alert/alert-title.svelte +20 -0
  367. package/src/lib/components/ui/alert/alert.svelte +44 -0
  368. package/src/lib/components/ui/alert/index.ts +14 -0
  369. package/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte +18 -0
  370. package/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte +18 -0
  371. package/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte +27 -0
  372. package/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte +17 -0
  373. package/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte +20 -0
  374. package/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte +20 -0
  375. package/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte +20 -0
  376. package/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte +17 -0
  377. package/src/lib/components/ui/alert-dialog/alert-dialog-trigger.svelte +7 -0
  378. package/src/lib/components/ui/alert-dialog/index.ts +39 -0
  379. package/src/lib/components/ui/badge/badge.svelte +50 -0
  380. package/src/lib/components/ui/badge/index.ts +2 -0
  381. package/src/lib/components/ui/button/button.svelte +83 -0
  382. package/src/lib/components/ui/button/index.ts +17 -0
  383. package/src/lib/components/ui/button-group/button-group-separator.svelte +20 -0
  384. package/src/lib/components/ui/button-group/button-group-text.svelte +30 -0
  385. package/src/lib/components/ui/button-group/button-group.svelte +46 -0
  386. package/src/lib/components/ui/button-group/index.ts +13 -0
  387. package/src/lib/components/ui/card/card-action.svelte +20 -0
  388. package/src/lib/components/ui/card/card-content.svelte +15 -0
  389. package/src/lib/components/ui/card/card-description.svelte +20 -0
  390. package/src/lib/components/ui/card/card-footer.svelte +20 -0
  391. package/src/lib/components/ui/card/card-header.svelte +23 -0
  392. package/src/lib/components/ui/card/card-title.svelte +20 -0
  393. package/src/lib/components/ui/card/card.svelte +23 -0
  394. package/src/lib/components/ui/card/index.ts +25 -0
  395. package/src/lib/components/ui/checkbox/checkbox.svelte +36 -0
  396. package/src/lib/components/ui/checkbox/index.ts +6 -0
  397. package/src/lib/components/ui/collapsible/collapsible-content.svelte +7 -0
  398. package/src/lib/components/ui/collapsible/collapsible-trigger.svelte +7 -0
  399. package/src/lib/components/ui/collapsible/collapsible.svelte +11 -0
  400. package/src/lib/components/ui/collapsible/index.ts +13 -0
  401. package/src/lib/components/ui/context-menu/context-menu-checkbox-item.svelte +38 -0
  402. package/src/lib/components/ui/context-menu/context-menu-content.svelte +25 -0
  403. package/src/lib/components/ui/context-menu/context-menu-group-heading.svelte +21 -0
  404. package/src/lib/components/ui/context-menu/context-menu-group.svelte +7 -0
  405. package/src/lib/components/ui/context-menu/context-menu-item.svelte +27 -0
  406. package/src/lib/components/ui/context-menu/context-menu-label.svelte +24 -0
  407. package/src/lib/components/ui/context-menu/context-menu-radio-group.svelte +16 -0
  408. package/src/lib/components/ui/context-menu/context-menu-radio-item.svelte +31 -0
  409. package/src/lib/components/ui/context-menu/context-menu-separator.svelte +17 -0
  410. package/src/lib/components/ui/context-menu/context-menu-shortcut.svelte +20 -0
  411. package/src/lib/components/ui/context-menu/context-menu-sub-content.svelte +20 -0
  412. package/src/lib/components/ui/context-menu/context-menu-sub-trigger.svelte +29 -0
  413. package/src/lib/components/ui/context-menu/context-menu-trigger.svelte +7 -0
  414. package/src/lib/components/ui/context-menu/index.ts +51 -0
  415. package/src/lib/components/ui/dialog/dialog-close.svelte +7 -0
  416. package/src/lib/components/ui/dialog/dialog-content.svelte +43 -0
  417. package/src/lib/components/ui/dialog/dialog-description.svelte +17 -0
  418. package/src/lib/components/ui/dialog/dialog-footer.svelte +20 -0
  419. package/src/lib/components/ui/dialog/dialog-header.svelte +20 -0
  420. package/src/lib/components/ui/dialog/dialog-overlay.svelte +20 -0
  421. package/src/lib/components/ui/dialog/dialog-title.svelte +17 -0
  422. package/src/lib/components/ui/dialog/dialog-trigger.svelte +7 -0
  423. package/src/lib/components/ui/dialog/index.ts +37 -0
  424. package/src/lib/components/ui/field/field-content.svelte +20 -0
  425. package/src/lib/components/ui/field/field-description.svelte +25 -0
  426. package/src/lib/components/ui/field/field-error.svelte +58 -0
  427. package/src/lib/components/ui/field/field-group.svelte +23 -0
  428. package/src/lib/components/ui/field/field-label.svelte +26 -0
  429. package/src/lib/components/ui/field/field-legend.svelte +29 -0
  430. package/src/lib/components/ui/field/field-separator.svelte +38 -0
  431. package/src/lib/components/ui/field/field-set.svelte +24 -0
  432. package/src/lib/components/ui/field/field-title.svelte +23 -0
  433. package/src/lib/components/ui/field/field.svelte +53 -0
  434. package/src/lib/components/ui/field/index.ts +33 -0
  435. package/src/lib/components/ui/index.ts +33 -0
  436. package/src/lib/components/ui/input/index.ts +7 -0
  437. package/src/lib/components/ui/input/input.svelte +52 -0
  438. package/src/lib/components/ui/label/index.ts +7 -0
  439. package/src/lib/components/ui/label/label.svelte +20 -0
  440. package/src/lib/components/ui/mode-toggle/index.ts +1 -0
  441. package/src/lib/components/ui/mode-toggle/mode-toggle.svelte +16 -0
  442. package/src/lib/components/ui/resizable/index.ts +13 -0
  443. package/src/lib/components/ui/resizable/resizable-handle.svelte +30 -0
  444. package/src/lib/components/ui/resizable/resizable-pane-group.svelte +20 -0
  445. package/src/lib/components/ui/scroll-area/index.ts +10 -0
  446. package/src/lib/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  447. package/src/lib/components/ui/scroll-area/scroll-area.svelte +43 -0
  448. package/src/lib/components/ui/select/index.ts +37 -0
  449. package/src/lib/components/ui/select/select-content.svelte +40 -0
  450. package/src/lib/components/ui/select/select-group-heading.svelte +21 -0
  451. package/src/lib/components/ui/select/select-group.svelte +7 -0
  452. package/src/lib/components/ui/select/select-item.svelte +38 -0
  453. package/src/lib/components/ui/select/select-label.svelte +20 -0
  454. package/src/lib/components/ui/select/select-scroll-down-button.svelte +20 -0
  455. package/src/lib/components/ui/select/select-scroll-up-button.svelte +20 -0
  456. package/src/lib/components/ui/select/select-separator.svelte +18 -0
  457. package/src/lib/components/ui/select/select-trigger.svelte +29 -0
  458. package/src/lib/components/ui/separator/index.ts +7 -0
  459. package/src/lib/components/ui/separator/separator.svelte +21 -0
  460. package/src/lib/components/ui/slider/index.ts +7 -0
  461. package/src/lib/components/ui/slider/slider.svelte +52 -0
  462. package/src/lib/components/ui/sonner/index.ts +2 -0
  463. package/src/lib/components/ui/sonner/sonner.svelte +13 -0
  464. package/src/lib/components/ui/switch/index.ts +7 -0
  465. package/src/lib/components/ui/switch/switch.svelte +29 -0
  466. package/src/lib/components/ui/tabs/index.ts +16 -0
  467. package/src/lib/components/ui/tabs/tabs-content.svelte +17 -0
  468. package/src/lib/components/ui/tabs/tabs-list.svelte +16 -0
  469. package/src/lib/components/ui/tabs/tabs-trigger.svelte +20 -0
  470. package/src/lib/components/ui/tabs/tabs.svelte +19 -0
  471. package/src/lib/components/ui/textarea/index.ts +7 -0
  472. package/src/lib/components/ui/textarea/textarea.svelte +23 -0
  473. package/src/lib/components/ui/theme-switcher/ThemeSwitcher.svelte +39 -0
  474. package/src/lib/components/ui/theme-switcher/index.ts +1 -0
  475. package/src/lib/composables/useFooterItem.svelte.ts +39 -0
  476. package/src/lib/constants.ts +6 -0
  477. package/src/lib/contexts/FOOTER_USAGE.md +164 -0
  478. package/src/lib/contexts/footerContext.svelte.ts +52 -0
  479. package/src/lib/dummy-output-values.ts +62 -0
  480. package/src/lib/dummy-surface-chart.json +13 -0
  481. package/src/lib/example-schema-left-only.json +367 -0
  482. package/src/lib/example-schema-right-only.json +322 -0
  483. package/src/lib/example-schema.json +1582 -0
  484. package/src/lib/features/preview/handlers.ts +243 -0
  485. package/src/lib/features/preview/index.ts +2 -0
  486. package/src/lib/features/preview/notifications.ts +52 -0
  487. package/src/lib/index.ts +52 -0
  488. package/src/lib/stores/themeStore.svelte.ts +54 -0
  489. package/src/lib/styles/base.css +142 -0
  490. package/src/lib/styles/themes/cyberpunk.css +98 -0
  491. package/src/lib/styles/themes/neutral.css +72 -0
  492. package/src/lib/styles/themes/ocean.css +75 -0
  493. package/src/lib/styles/themes/selva.css +105 -0
  494. package/src/lib/themes.ts +18 -0
  495. package/src/lib/types/generated/index.ts +6 -0
  496. package/src/lib/types/generated/preset.ts +82 -0
  497. package/src/lib/types/generated/schema.ts +527 -0
  498. package/src/lib/utils/computeThrottle.svelte.ts +117 -0
  499. package/src/lib/utils/debounce.ts +30 -0
  500. package/src/lib/utils/file-download.ts +88 -0
  501. package/src/lib/utils/loadScript.ts +52 -0
  502. package/src/lib/utils/param-exporter.ts +242 -0
  503. package/src/lib/utils/solving.svelte.ts +100 -0
  504. package/src/lib/utils/utils-shared.ts +57 -0
  505. package/src/lib/utils/visibility-rules.ts +97 -0
  506. package/src/lib/utils.ts +13 -0
@@ -0,0 +1,17 @@
1
+ import Root, {
2
+ type ButtonProps,
3
+ type ButtonSize,
4
+ type ButtonVariant,
5
+ buttonVariants
6
+ } from './button.svelte';
7
+
8
+ export {
9
+ Root,
10
+ type ButtonProps as Props,
11
+ //
12
+ Root as Button,
13
+ buttonVariants,
14
+ type ButtonProps,
15
+ type ButtonSize,
16
+ type ButtonVariant
17
+ };
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { cn } from "$lib/utils.js";
3
+ import type { ComponentProps } from "svelte";
4
+ import { Separator } from "$lib/components/ui/separator/index.js";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ orientation = "vertical",
10
+ ...restProps
11
+ }: ComponentProps<typeof Separator> = $props();
12
+ </script>
13
+
14
+ <Separator
15
+ bind:ref
16
+ data-slot="button-group-separator"
17
+ {orientation}
18
+ class={cn("bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto", className)}
19
+ {...restProps}
20
+ />
@@ -0,0 +1,30 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from "$lib/utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import type { Snippet } from "svelte";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ child,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
12
+ child?: Snippet<[{ props: Record<string, unknown> }]>;
13
+ } = $props();
14
+
15
+ const mergedProps = $derived({
16
+ ...restProps,
17
+ class: cn(
18
+ "bg-muted flex items-center gap-2 rounded-md border px-4 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
19
+ className
20
+ ),
21
+ });
22
+ </script>
23
+
24
+ {#if child}
25
+ {@render child({ props: mergedProps })}
26
+ {:else}
27
+ <div bind:this={ref} {...mergedProps}>
28
+ {@render mergedProps.children?.()}
29
+ </div>
30
+ {/if}
@@ -0,0 +1,46 @@
1
+ <script lang="ts" module>
2
+ import { tv, type VariantProps } from "tailwind-variants";
3
+
4
+ export const buttonGroupVariants = tv({
5
+ base: "flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-e-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
6
+ variants: {
7
+ orientation: {
8
+ horizontal:
9
+ "[&>*:not(:first-child)]:rounded-s-none [&>*:not(:first-child)]:border-s-0 [&>*:not(:last-child)]:rounded-e-none",
10
+ vertical:
11
+ "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ orientation: "horizontal",
16
+ },
17
+ });
18
+
19
+ export type ButtonGroupOrientation = VariantProps<typeof buttonGroupVariants>["orientation"];
20
+ </script>
21
+
22
+ <script lang="ts">
23
+ import { cn, type WithElementRef } from "$lib/utils.js";
24
+ import type { HTMLAttributes } from "svelte/elements";
25
+
26
+ let {
27
+ ref = $bindable(null),
28
+ class: className,
29
+ children,
30
+ orientation = "horizontal",
31
+ ...restProps
32
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
33
+ orientation?: ButtonGroupOrientation;
34
+ } = $props();
35
+ </script>
36
+
37
+ <div
38
+ bind:this={ref}
39
+ role="group"
40
+ data-slot="button-group"
41
+ data-orientation={orientation}
42
+ class={cn(buttonGroupVariants({ orientation }), className)}
43
+ {...restProps}
44
+ >
45
+ {@render children?.()}
46
+ </div>
@@ -0,0 +1,13 @@
1
+ import Root from "./button-group.svelte";
2
+ import Text from "./button-group-text.svelte";
3
+ import Separator from "./button-group-separator.svelte";
4
+
5
+ export {
6
+ Root,
7
+ Text,
8
+ Separator,
9
+ //
10
+ Root as ButtonGroup,
11
+ Text as ButtonGroupText,
12
+ Separator as ButtonGroupSeparator,
13
+ };
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from '$lib/utils.js';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card-action"
16
+ class={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </div>
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { cn, type WithElementRef } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div bind:this={ref} data-slot="card-content" class={cn('px-6', className)} {...restProps}>
14
+ {@render children?.()}
15
+ </div>
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { cn, type WithElementRef } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLParagraphElement>> = $props();
11
+ </script>
12
+
13
+ <p
14
+ bind:this={ref}
15
+ data-slot="card-description"
16
+ class={cn('text-sm text-muted-foreground', className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </p>
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from '$lib/utils.js';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card-footer"
16
+ class={cn('px-6 [.border-t]:pt-6 flex items-center', className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </div>
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from '$lib/utils.js';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card-header"
16
+ class={cn(
17
+ 'gap-1.5 px-6 [.border-b]:pb-6 @container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start has-data-[slot=card-action]:grid-cols-[1fr_auto]',
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { cn, type WithElementRef } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card-title"
16
+ class={cn('font-semibold leading-none', className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </div>
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { cn, type WithElementRef } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card"
16
+ class={cn(
17
+ 'gap-6 py-6 shadow-sm flex flex-col rounded-xl border bg-card text-card-foreground',
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,25 @@
1
+ import Root from './card.svelte';
2
+ import Content from './card-content.svelte';
3
+ import Description from './card-description.svelte';
4
+ import Footer from './card-footer.svelte';
5
+ import Header from './card-header.svelte';
6
+ import Title from './card-title.svelte';
7
+ import Action from './card-action.svelte';
8
+
9
+ export {
10
+ Root,
11
+ Content,
12
+ Description,
13
+ Footer,
14
+ Header,
15
+ Title,
16
+ Action,
17
+ //
18
+ Root as Card,
19
+ Content as CardContent,
20
+ Description as CardDescription,
21
+ Footer as CardFooter,
22
+ Header as CardHeader,
23
+ Title as CardTitle,
24
+ Action as CardAction
25
+ };
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import { Checkbox as CheckboxPrimitive } from 'bits-ui';
3
+ import CheckIcon from '@lucide/svelte/icons/check';
4
+ import MinusIcon from '@lucide/svelte/icons/minus';
5
+ import { cn, type WithoutChildrenOrChild } from '$lib/utils.js';
6
+
7
+ let {
8
+ ref = $bindable(null),
9
+ checked = $bindable(false),
10
+ indeterminate = $bindable(false),
11
+ class: className,
12
+ ...restProps
13
+ }: WithoutChildrenOrChild<CheckboxPrimitive.RootProps> = $props();
14
+ </script>
15
+
16
+ <CheckboxPrimitive.Root
17
+ bind:ref
18
+ data-slot="checkbox"
19
+ class={cn(
20
+ 'peer size-4 shadow-xs flex shrink-0 items-center justify-center rounded-[4px] border border-input transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary',
21
+ className
22
+ )}
23
+ bind:checked
24
+ bind:indeterminate
25
+ {...restProps}
26
+ >
27
+ {#snippet children({ checked, indeterminate })}
28
+ <div data-slot="checkbox-indicator" class="text-current transition-none">
29
+ {#if checked}
30
+ <CheckIcon class="size-3.5" />
31
+ {:else if indeterminate}
32
+ <MinusIcon class="size-3.5" />
33
+ {/if}
34
+ </div>
35
+ {/snippet}
36
+ </CheckboxPrimitive.Root>
@@ -0,0 +1,6 @@
1
+ import Root from './checkbox.svelte';
2
+ export {
3
+ Root,
4
+ //
5
+ Root as Checkbox
6
+ };
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { Collapsible as CollapsiblePrimitive } from 'bits-ui';
3
+
4
+ let { ref = $bindable(null), ...restProps }: CollapsiblePrimitive.ContentProps = $props();
5
+ </script>
6
+
7
+ <CollapsiblePrimitive.Content bind:ref data-slot="collapsible-content" {...restProps} />
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { Collapsible as CollapsiblePrimitive } from 'bits-ui';
3
+
4
+ let { ref = $bindable(null), ...restProps }: CollapsiblePrimitive.TriggerProps = $props();
5
+ </script>
6
+
7
+ <CollapsiblePrimitive.Trigger bind:ref data-slot="collapsible-trigger" {...restProps} />
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ import { Collapsible as CollapsiblePrimitive } from 'bits-ui';
3
+
4
+ let {
5
+ ref = $bindable(null),
6
+ open = $bindable(false),
7
+ ...restProps
8
+ }: CollapsiblePrimitive.RootProps = $props();
9
+ </script>
10
+
11
+ <CollapsiblePrimitive.Root bind:ref bind:open data-slot="collapsible" {...restProps} />
@@ -0,0 +1,13 @@
1
+ import Root from './collapsible.svelte';
2
+ import Trigger from './collapsible-trigger.svelte';
3
+ import Content from './collapsible-content.svelte';
4
+
5
+ export {
6
+ Root,
7
+ Content,
8
+ Trigger,
9
+ //
10
+ Root as Collapsible,
11
+ Content as CollapsibleContent,
12
+ Trigger as CollapsibleTrigger
13
+ };
@@ -0,0 +1,38 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+ import CheckIcon from '@lucide/svelte/icons/check';
4
+ import { cn, type WithoutChildrenOrChild } from '$lib/utils.js';
5
+ import type { Snippet } from 'svelte';
6
+
7
+ let {
8
+ ref = $bindable(null),
9
+ checked = $bindable(false),
10
+ indeterminate = $bindable(false),
11
+ class: className,
12
+ children: childrenProp,
13
+ ...restProps
14
+ }: WithoutChildrenOrChild<ContextMenuPrimitive.CheckboxItemProps> & {
15
+ children?: Snippet;
16
+ } = $props();
17
+ </script>
18
+
19
+ <ContextMenuPrimitive.CheckboxItem
20
+ bind:ref
21
+ bind:checked
22
+ bind:indeterminate
23
+ data-slot="context-menu-checkbox-item"
24
+ class={cn(
25
+ "gap-2 py-1.5 pe-2 ps-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center rounded-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
26
+ className
27
+ )}
28
+ {...restProps}
29
+ >
30
+ {#snippet children({ checked })}
31
+ <span class="start-2 size-3.5 pointer-events-none absolute flex items-center justify-center">
32
+ {#if checked}
33
+ <CheckIcon class="size-4" />
34
+ {/if}
35
+ </span>
36
+ {@render childrenProp?.()}
37
+ {/snippet}
38
+ </ContextMenuPrimitive.CheckboxItem>
@@ -0,0 +1,25 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+ import { cn } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ portalProps,
8
+ class: className,
9
+ ...restProps
10
+ }: ContextMenuPrimitive.ContentProps & {
11
+ portalProps?: ContextMenuPrimitive.PortalProps;
12
+ } = $props();
13
+ </script>
14
+
15
+ <ContextMenuPrimitive.Portal {...portalProps}>
16
+ <ContextMenuPrimitive.Content
17
+ bind:ref
18
+ data-slot="context-menu-content"
19
+ class={cn(
20
+ 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 p-1 shadow-md z-50 max-h-(--bits-context-menu-content-available-height) min-w-[8rem] origin-(--bits-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground',
21
+ className
22
+ )}
23
+ {...restProps}
24
+ />
25
+ </ContextMenuPrimitive.Portal>
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+ import { cn } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ inset,
9
+ ...restProps
10
+ }: ContextMenuPrimitive.GroupHeadingProps & {
11
+ inset?: boolean;
12
+ } = $props();
13
+ </script>
14
+
15
+ <ContextMenuPrimitive.GroupHeading
16
+ bind:ref
17
+ data-slot="context-menu-group-heading"
18
+ data-inset={inset}
19
+ class={cn('px-2 py-1.5 text-sm font-medium data-[inset]:ps-8 text-foreground', className)}
20
+ {...restProps}
21
+ />
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+
4
+ let { ref = $bindable(null), ...restProps }: ContextMenuPrimitive.GroupProps = $props();
5
+ </script>
6
+
7
+ <ContextMenuPrimitive.Group bind:ref data-slot="context-menu-group" {...restProps} />
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+ import { cn } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ inset,
9
+ variant = 'default',
10
+ ...restProps
11
+ }: ContextMenuPrimitive.ItemProps & {
12
+ inset?: boolean;
13
+ variant?: 'default' | 'destructive';
14
+ } = $props();
15
+ </script>
16
+
17
+ <ContextMenuPrimitive.Item
18
+ bind:ref
19
+ data-slot="context-menu-item"
20
+ data-inset={inset}
21
+ data-variant={variant}
22
+ class={cn(
23
+ "gap-2 px-2 py-1.5 text-sm data-[inset]:ps-8 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center rounded-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[variant=destructive]:text-destructive data-[variant=destructive]:data-highlighted:bg-destructive/10 data-[variant=destructive]:data-highlighted:text-destructive dark:data-[variant=destructive]:data-highlighted:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive",
24
+ className
25
+ )}
26
+ {...restProps}
27
+ />
@@ -0,0 +1,24 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from '$lib/utils.js';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ inset,
9
+ children,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
12
+ inset?: boolean;
13
+ } = $props();
14
+ </script>
15
+
16
+ <div
17
+ bind:this={ref}
18
+ data-slot="context-menu-label"
19
+ data-inset={inset}
20
+ class={cn('px-2 py-1.5 text-sm font-medium data-[inset]:ps-8 text-foreground', className)}
21
+ {...restProps}
22
+ >
23
+ {@render children?.()}
24
+ </div>
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+
4
+ let {
5
+ ref = $bindable(null),
6
+ value = $bindable(''),
7
+ ...restProps
8
+ }: ContextMenuPrimitive.RadioGroupProps = $props();
9
+ </script>
10
+
11
+ <ContextMenuPrimitive.RadioGroup
12
+ bind:ref
13
+ bind:value
14
+ data-slot="context-menu-radio-group"
15
+ {...restProps}
16
+ />
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+ import CircleIcon from '@lucide/svelte/icons/circle';
4
+ import { cn, type WithoutChild } from '$lib/utils.js';
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ children: childrenProp,
10
+ ...restProps
11
+ }: WithoutChild<ContextMenuPrimitive.RadioItemProps> = $props();
12
+ </script>
13
+
14
+ <ContextMenuPrimitive.RadioItem
15
+ bind:ref
16
+ data-slot="context-menu-radio-item"
17
+ class={cn(
18
+ "gap-2 py-1.5 pe-2 ps-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center rounded-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
19
+ className
20
+ )}
21
+ {...restProps}
22
+ >
23
+ {#snippet children({ checked })}
24
+ <span class="start-2 size-3.5 pointer-events-none absolute flex items-center justify-center">
25
+ {#if checked}
26
+ <CircleIcon class="size-2 fill-current" />
27
+ {/if}
28
+ </span>
29
+ {@render childrenProp?.({ checked })}
30
+ {/snippet}
31
+ </ContextMenuPrimitive.RadioItem>
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+ import { cn } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ ...restProps
9
+ }: ContextMenuPrimitive.SeparatorProps = $props();
10
+ </script>
11
+
12
+ <ContextMenuPrimitive.Separator
13
+ bind:ref
14
+ data-slot="context-menu-separator"
15
+ class={cn('-mx-1 my-1 h-px bg-border', className)}
16
+ {...restProps}
17
+ />
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from '$lib/utils.js';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLSpanElement>> = $props();
11
+ </script>
12
+
13
+ <span
14
+ bind:this={ref}
15
+ data-slot="context-menu-shortcut"
16
+ class={cn('text-xs tracking-widest ms-auto text-muted-foreground', className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </span>
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
3
+ import { cn } from '$lib/utils.js';
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ ...restProps
9
+ }: ContextMenuPrimitive.SubContentProps = $props();
10
+ </script>
11
+
12
+ <ContextMenuPrimitive.SubContent
13
+ bind:ref
14
+ data-slot="context-menu-sub-content"
15
+ class={cn(
16
+ 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 p-1 shadow-lg z-50 min-w-[8rem] origin-(--bits-context-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover text-popover-foreground',
17
+ className
18
+ )}
19
+ {...restProps}
20
+ />