@selvajs/ui 6.5.1-beta.0 → 6.6.0-beta.2

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 (348) hide show
  1. package/dist/components/ConfirmDialog.svelte +2 -10
  2. package/dist/components/ErrorScreen.svelte +16 -26
  3. package/dist/components/compute/AppLayout.svelte +7 -13
  4. package/dist/components/compute/ComputeApp.svelte +3 -3
  5. package/dist/components/compute/ComputeMessagesDialog.svelte +23 -49
  6. package/dist/components/compute/ParameterPresetManager.svelte +24 -68
  7. package/dist/components/compute/SolveMessages.svelte +23 -31
  8. package/dist/components/layout/Pagination.svelte +2 -4
  9. package/dist/components/layout/SideNav.svelte +1 -1
  10. package/dist/components/preview/ChartOutput.svelte +1 -5
  11. package/dist/components/preview/Group.svelte +71 -102
  12. package/dist/components/preview/Group.svelte.d.ts +1 -1
  13. package/dist/components/preview/HelpButton.svelte +34 -0
  14. package/dist/components/preview/HelpButton.svelte.d.ts +8 -0
  15. package/dist/components/preview/ImageOutput.svelte +2 -4
  16. package/dist/components/preview/InputControl.svelte +45 -45
  17. package/dist/components/preview/OutputDisplay.svelte +12 -22
  18. package/dist/components/preview/TabBar.svelte +106 -22
  19. package/dist/components/preview/TabBar.svelte.d.ts +1 -0
  20. package/dist/components/preview/TabContent.svelte +27 -56
  21. package/dist/components/preview/TabLayout.svelte +3 -3
  22. package/dist/components/preview/inputs/CheckboxInput.svelte +7 -7
  23. package/dist/components/preview/inputs/CheckboxInput.svelte.d.ts +3 -0
  24. package/dist/components/preview/inputs/ColorInput.svelte +1 -1
  25. package/dist/components/preview/inputs/FileInput.svelte +10 -13
  26. package/dist/components/preview/inputs/NumberInput.svelte +37 -57
  27. package/dist/components/preview/inputs/TextInput.svelte +0 -1
  28. package/dist/components/primitives/CalculateButton.svelte +1 -1
  29. package/dist/components/primitives/Callout.svelte +11 -18
  30. package/dist/components/primitives/DataTable.svelte +3 -4
  31. package/dist/components/primitives/FilterableDropdown.svelte +42 -129
  32. package/dist/components/primitives/FilterableDropdown.svelte.d.ts +1 -1
  33. package/dist/components/primitives/IssueList.svelte +56 -0
  34. package/dist/components/primitives/IssueList.svelte.d.ts +20 -0
  35. package/dist/components/primitives/SeverityIcon.svelte +15 -0
  36. package/dist/components/primitives/SeverityIcon.svelte.d.ts +8 -0
  37. package/dist/components/primitives/SolvingIndicator.svelte +1 -29
  38. package/dist/components/primitives/StateDisplay.svelte +19 -79
  39. package/dist/components/primitives/ViewToggle.svelte +18 -33
  40. package/dist/components/primitives/alert-dialog/alert-dialog-action.svelte +9 -3
  41. package/dist/components/primitives/alert-dialog/alert-dialog-action.svelte.d.ts +6 -1
  42. package/dist/components/primitives/alert-dialog/alert-dialog-content.svelte +1 -1
  43. package/dist/components/primitives/alert-dialog/alert-dialog-overlay.svelte +1 -1
  44. package/dist/components/primitives/badge/badge.svelte +2 -2
  45. package/dist/components/primitives/badge/badge.svelte.d.ts +4 -4
  46. package/dist/components/primitives/button/button.svelte +3 -2
  47. package/dist/components/primitives/button/button.svelte.d.ts +7 -4
  48. package/dist/components/primitives/card/card-header.svelte +1 -1
  49. package/dist/components/primitives/card/card.svelte +21 -5
  50. package/dist/components/primitives/card/card.svelte.d.ts +25 -1
  51. package/dist/components/primitives/card/index.d.ts +1 -2
  52. package/dist/components/primitives/card/index.js +2 -3
  53. package/dist/components/primitives/checkbox/checkbox.svelte +1 -1
  54. package/dist/components/primitives/command/command-dialog.svelte +42 -0
  55. package/dist/components/primitives/command/command-dialog.svelte.d.ts +14 -0
  56. package/dist/components/primitives/command/command-empty.svelte +17 -0
  57. package/dist/components/primitives/command/command-empty.svelte.d.ts +4 -0
  58. package/dist/components/primitives/command/command-group.svelte +33 -0
  59. package/dist/components/primitives/command/command-group.svelte.d.ts +7 -0
  60. package/dist/components/primitives/command/command-input.svelte +36 -0
  61. package/dist/components/primitives/command/command-input.svelte.d.ts +4 -0
  62. package/dist/components/primitives/command/command-item.svelte +28 -0
  63. package/dist/components/primitives/command/command-item.svelte.d.ts +4 -0
  64. package/dist/components/primitives/command/command-link-item.svelte +21 -0
  65. package/dist/components/primitives/command/command-link-item.svelte.d.ts +4 -0
  66. package/dist/components/primitives/command/command-list.svelte +20 -0
  67. package/dist/components/primitives/command/command-list.svelte.d.ts +4 -0
  68. package/dist/components/primitives/command/command-loading.svelte +7 -0
  69. package/dist/components/primitives/command/command-loading.svelte.d.ts +4 -0
  70. package/dist/components/primitives/command/command-separator.svelte +17 -0
  71. package/dist/components/primitives/command/command-separator.svelte.d.ts +4 -0
  72. package/dist/components/primitives/command/command-shortcut.svelte +23 -0
  73. package/dist/components/primitives/command/command-shortcut.svelte.d.ts +5 -0
  74. package/dist/components/primitives/command/command.svelte +28 -0
  75. package/dist/components/primitives/command/command.svelte.d.ts +8 -0
  76. package/dist/components/primitives/command/index.d.ts +12 -0
  77. package/dist/components/primitives/command/index.js +14 -0
  78. package/dist/components/primitives/context-menu/context-menu-content.svelte +1 -1
  79. package/dist/components/primitives/context-menu/context-menu-sub-content.svelte +1 -1
  80. package/dist/components/primitives/dialog/dialog-content.svelte +5 -1
  81. package/dist/components/primitives/dialog/dialog-content.svelte.d.ts +2 -0
  82. package/dist/components/primitives/dialog/dialog-overlay.svelte +1 -1
  83. package/dist/components/primitives/dialog/dialog-title.svelte +6 -2
  84. package/dist/components/primitives/dialog/dialog-title.svelte.d.ts +5 -1
  85. package/dist/components/primitives/drawer/Drawer.svelte +1 -1
  86. package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
  87. package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +4 -0
  88. package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte +46 -0
  89. package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  90. package/dist/components/primitives/dropdown-menu/dropdown-menu-content.svelte +31 -0
  91. package/dist/components/primitives/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -0
  92. package/dist/components/primitives/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
  93. package/dist/components/primitives/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
  94. package/dist/components/primitives/dropdown-menu/dropdown-menu-group.svelte +7 -0
  95. package/dist/components/primitives/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
  96. package/dist/components/primitives/dropdown-menu/dropdown-menu-item.svelte +27 -0
  97. package/dist/components/primitives/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
  98. package/dist/components/primitives/dropdown-menu/dropdown-menu-label.svelte +24 -0
  99. package/dist/components/primitives/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
  100. package/dist/components/primitives/dropdown-menu/dropdown-menu-portal.svelte +7 -0
  101. package/dist/components/primitives/dropdown-menu/dropdown-menu-portal.svelte.d.ts +3 -0
  102. package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  103. package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
  104. package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte +36 -0
  105. package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
  106. package/dist/components/primitives/dropdown-menu/dropdown-menu-separator.svelte +17 -0
  107. package/dist/components/primitives/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
  108. package/dist/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte +23 -0
  109. package/dist/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
  110. package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte +31 -0
  111. package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +10 -0
  112. package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
  113. package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
  114. package/dist/components/primitives/dropdown-menu/dropdown-menu-sub.svelte +7 -0
  115. package/dist/components/primitives/dropdown-menu/dropdown-menu-sub.svelte.d.ts +3 -0
  116. package/dist/components/primitives/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
  117. package/dist/components/primitives/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
  118. package/dist/components/primitives/dropdown-menu/dropdown-menu.svelte +7 -0
  119. package/dist/components/primitives/dropdown-menu/dropdown-menu.svelte.d.ts +3 -0
  120. package/dist/components/primitives/dropdown-menu/index.d.ts +18 -0
  121. package/dist/components/primitives/dropdown-menu/index.js +18 -0
  122. package/dist/components/primitives/{alert/alert-description.svelte → empty/empty-content.svelte} +3 -3
  123. package/dist/components/primitives/empty/empty-content.svelte.d.ts +5 -0
  124. package/dist/components/primitives/empty/empty-description.svelte +23 -0
  125. package/dist/components/primitives/{alert/alert-description.svelte.d.ts → empty/empty-description.svelte.d.ts} +4 -4
  126. package/dist/components/primitives/{alert/alert-title.svelte → empty/empty-header.svelte} +3 -3
  127. package/dist/components/primitives/empty/empty-header.svelte.d.ts +5 -0
  128. package/dist/components/primitives/empty/empty-media.svelte +41 -0
  129. package/dist/components/primitives/empty/empty-media.svelte.d.ts +26 -0
  130. package/dist/components/primitives/{card/card-action.svelte → empty/empty-title.svelte} +2 -2
  131. package/dist/components/primitives/{card/card-action.svelte.d.ts → empty/empty-title.svelte.d.ts} +3 -3
  132. package/dist/components/primitives/empty/empty.svelte +23 -0
  133. package/dist/components/primitives/empty/empty.svelte.d.ts +5 -0
  134. package/dist/components/primitives/empty/index.d.ts +7 -0
  135. package/dist/components/primitives/empty/index.js +9 -0
  136. package/dist/components/primitives/index.d.ts +10 -1
  137. package/dist/components/primitives/index.js +10 -1
  138. package/dist/components/primitives/input/input.svelte +4 -4
  139. package/dist/components/primitives/input-group/index.d.ts +7 -0
  140. package/dist/components/primitives/input-group/index.js +9 -0
  141. package/dist/components/primitives/input-group/input-group-addon.svelte +53 -0
  142. package/dist/components/primitives/input-group/input-group-addon.svelte.d.ts +32 -0
  143. package/dist/components/primitives/input-group/input-group-button.svelte +49 -0
  144. package/dist/components/primitives/input-group/input-group-button.svelte.d.ts +32 -0
  145. package/dist/components/primitives/input-group/input-group-input.svelte +25 -0
  146. package/dist/components/primitives/input-group/input-group-input.svelte.d.ts +11 -0
  147. package/dist/components/primitives/input-group/input-group-text.svelte +22 -0
  148. package/dist/components/primitives/input-group/input-group-text.svelte.d.ts +5 -0
  149. package/dist/components/primitives/input-group/input-group-textarea.svelte +23 -0
  150. package/dist/components/primitives/input-group/input-group-textarea.svelte.d.ts +3 -0
  151. package/dist/components/primitives/input-group/input-group.svelte +24 -0
  152. package/dist/components/primitives/{alert/alert-title.svelte.d.ts → input-group/input-group.svelte.d.ts} +4 -4
  153. package/dist/components/primitives/mode-toggle/mode-toggle.svelte +2 -6
  154. package/dist/components/primitives/popover/index.d.ts +9 -0
  155. package/dist/components/primitives/popover/index.js +11 -0
  156. package/dist/components/primitives/popover/popover-close.svelte +7 -0
  157. package/dist/components/primitives/popover/popover-close.svelte.d.ts +4 -0
  158. package/dist/components/primitives/popover/popover-content.svelte +31 -0
  159. package/dist/components/primitives/popover/popover-content.svelte.d.ts +10 -0
  160. package/dist/components/primitives/popover/popover-description.svelte +20 -0
  161. package/dist/components/primitives/popover/popover-description.svelte.d.ts +5 -0
  162. package/dist/components/primitives/popover/popover-header.svelte +20 -0
  163. package/dist/components/primitives/popover/popover-header.svelte.d.ts +5 -0
  164. package/dist/components/primitives/popover/popover-portal.svelte +7 -0
  165. package/dist/components/primitives/popover/popover-portal.svelte.d.ts +3 -0
  166. package/dist/components/primitives/popover/popover-title.svelte +15 -0
  167. package/dist/components/primitives/popover/popover-title.svelte.d.ts +5 -0
  168. package/dist/components/primitives/popover/popover-trigger.svelte +17 -0
  169. package/dist/components/primitives/popover/popover-trigger.svelte.d.ts +4 -0
  170. package/dist/components/primitives/popover/popover.svelte +7 -0
  171. package/dist/components/primitives/popover/popover.svelte.d.ts +3 -0
  172. package/dist/components/primitives/resizable/resizable-handle.svelte +6 -2
  173. package/dist/components/primitives/resizable/resizable-handle.svelte.d.ts +2 -0
  174. package/dist/components/primitives/resizable/resizable-pane-group.svelte +1 -4
  175. package/dist/components/primitives/scroll-area/scroll-area.svelte +1 -1
  176. package/dist/components/primitives/search/search.svelte +3 -3
  177. package/dist/components/primitives/select/select-content.svelte +1 -1
  178. package/dist/components/primitives/select/select-trigger.svelte +1 -1
  179. package/dist/components/primitives/severity.d.ts +7 -0
  180. package/dist/components/primitives/severity.js +19 -0
  181. package/dist/components/primitives/slider/slider.svelte +2 -2
  182. package/dist/components/primitives/sonner/sonner.svelte +1 -1
  183. package/dist/components/primitives/spinner/index.d.ts +1 -0
  184. package/dist/components/primitives/spinner/index.js +1 -0
  185. package/dist/components/primitives/spinner/spinner.svelte +29 -0
  186. package/dist/components/primitives/spinner/spinner.svelte.d.ts +4 -0
  187. package/dist/components/primitives/switch/switch.svelte +2 -2
  188. package/dist/components/primitives/tabs/tabs-list.svelte +27 -5
  189. package/dist/components/primitives/tabs/tabs-list.svelte.d.ts +22 -1
  190. package/dist/components/primitives/tabs/tabs-trigger.svelte +23 -5
  191. package/dist/components/primitives/tabs/tabs-trigger.svelte.d.ts +22 -1
  192. package/dist/components/primitives/tabs/tabs.svelte +6 -2
  193. package/dist/components/primitives/tabs/tabs.svelte.d.ts +5 -1
  194. package/dist/components/primitives/textarea/textarea.svelte +1 -1
  195. package/dist/components/primitives/theme-switcher/ThemeSwitcher.svelte +1 -1
  196. package/dist/components/primitives/toggle/index.d.ts +3 -0
  197. package/dist/components/primitives/toggle/index.js +5 -0
  198. package/dist/components/primitives/toggle/toggle.svelte +52 -0
  199. package/dist/components/primitives/toggle/toggle.svelte.d.ts +43 -0
  200. package/dist/components/primitives/toggle-group/index.d.ts +3 -0
  201. package/dist/components/primitives/toggle-group/index.js +5 -0
  202. package/dist/components/primitives/toggle-group/toggle-group-item.svelte +35 -0
  203. package/dist/components/primitives/toggle-group/toggle-group-item.svelte.d.ts +6 -0
  204. package/dist/components/primitives/toggle-group/toggle-group.svelte +75 -0
  205. package/dist/components/primitives/toggle-group/toggle-group.svelte.d.ts +17 -0
  206. package/dist/components/viewer/MeshMetadataDialog.svelte +3 -3
  207. package/dist/components/viewer/SceneManager.svelte +14 -5
  208. package/dist/components/viewer/Viewer.svelte +120 -171
  209. package/dist/i18n/messages.d.ts +2 -0
  210. package/dist/i18n/messages.js +4 -0
  211. package/dist/styles/base.css +43 -0
  212. package/package.json +8 -8
  213. package/src/lib/components/ConfirmDialog.svelte +2 -10
  214. package/src/lib/components/ErrorScreen.svelte +16 -26
  215. package/src/lib/components/compute/AppLayout.svelte +7 -13
  216. package/src/lib/components/compute/ComputeApp.svelte +3 -3
  217. package/src/lib/components/compute/ComputeMessagesDialog.svelte +23 -49
  218. package/src/lib/components/compute/ParameterPresetManager.svelte +24 -68
  219. package/src/lib/components/compute/SolveMessages.svelte +23 -31
  220. package/src/lib/components/layout/Pagination.svelte +2 -4
  221. package/src/lib/components/layout/SideNav.svelte +1 -1
  222. package/src/lib/components/preview/ChartOutput.svelte +1 -5
  223. package/src/lib/components/preview/Group.svelte +71 -102
  224. package/src/lib/components/preview/HelpButton.svelte +34 -0
  225. package/src/lib/components/preview/ImageOutput.svelte +2 -4
  226. package/src/lib/components/preview/InputControl.svelte +45 -45
  227. package/src/lib/components/preview/OutputDisplay.svelte +12 -22
  228. package/src/lib/components/preview/TabBar.svelte +106 -22
  229. package/src/lib/components/preview/TabContent.svelte +27 -56
  230. package/src/lib/components/preview/TabLayout.svelte +3 -3
  231. package/src/lib/components/preview/inputs/CheckboxInput.svelte +7 -7
  232. package/src/lib/components/preview/inputs/ColorInput.svelte +1 -1
  233. package/src/lib/components/preview/inputs/FileInput.svelte +10 -13
  234. package/src/lib/components/preview/inputs/NumberInput.svelte +37 -57
  235. package/src/lib/components/preview/inputs/TextInput.svelte +0 -1
  236. package/src/lib/components/primitives/CalculateButton.svelte +1 -1
  237. package/src/lib/components/primitives/Callout.svelte +11 -18
  238. package/src/lib/components/primitives/DataTable.svelte +3 -4
  239. package/src/lib/components/primitives/FilterableDropdown.svelte +42 -129
  240. package/src/lib/components/primitives/IssueList.svelte +56 -0
  241. package/src/lib/components/primitives/SeverityIcon.svelte +15 -0
  242. package/src/lib/components/primitives/SolvingIndicator.svelte +1 -29
  243. package/src/lib/components/primitives/StateDisplay.svelte +19 -79
  244. package/src/lib/components/primitives/ViewToggle.svelte +18 -33
  245. package/src/lib/components/primitives/alert-dialog/alert-dialog-action.svelte +9 -3
  246. package/src/lib/components/primitives/alert-dialog/alert-dialog-content.svelte +1 -1
  247. package/src/lib/components/primitives/alert-dialog/alert-dialog-overlay.svelte +1 -1
  248. package/src/lib/components/primitives/badge/badge.svelte +2 -2
  249. package/src/lib/components/primitives/button/button.svelte +3 -2
  250. package/src/lib/components/primitives/card/card-header.svelte +1 -1
  251. package/src/lib/components/primitives/card/card.svelte +21 -5
  252. package/src/lib/components/primitives/card/index.ts +1 -4
  253. package/src/lib/components/primitives/checkbox/checkbox.svelte +1 -1
  254. package/src/lib/components/primitives/command/command-dialog.svelte +42 -0
  255. package/src/lib/components/primitives/command/command-empty.svelte +17 -0
  256. package/src/lib/components/primitives/command/command-group.svelte +33 -0
  257. package/src/lib/components/primitives/command/command-input.svelte +36 -0
  258. package/src/lib/components/primitives/command/command-item.svelte +28 -0
  259. package/src/lib/components/primitives/command/command-link-item.svelte +21 -0
  260. package/src/lib/components/primitives/command/command-list.svelte +20 -0
  261. package/src/lib/components/primitives/command/command-loading.svelte +7 -0
  262. package/src/lib/components/primitives/command/command-separator.svelte +17 -0
  263. package/src/lib/components/primitives/command/command-shortcut.svelte +23 -0
  264. package/src/lib/components/primitives/command/command.svelte +28 -0
  265. package/src/lib/components/primitives/command/index.ts +37 -0
  266. package/src/lib/components/primitives/context-menu/context-menu-content.svelte +1 -1
  267. package/src/lib/components/primitives/context-menu/context-menu-sub-content.svelte +1 -1
  268. package/src/lib/components/primitives/dialog/dialog-content.svelte +5 -1
  269. package/src/lib/components/primitives/dialog/dialog-overlay.svelte +1 -1
  270. package/src/lib/components/primitives/dialog/dialog-title.svelte +6 -2
  271. package/src/lib/components/primitives/drawer/Drawer.svelte +1 -1
  272. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
  273. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte +46 -0
  274. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-content.svelte +31 -0
  275. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
  276. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-group.svelte +7 -0
  277. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-item.svelte +27 -0
  278. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-label.svelte +24 -0
  279. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-portal.svelte +7 -0
  280. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  281. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte +36 -0
  282. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-separator.svelte +17 -0
  283. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte +23 -0
  284. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte +31 -0
  285. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
  286. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub.svelte +7 -0
  287. package/src/lib/components/primitives/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
  288. package/src/lib/components/primitives/dropdown-menu/dropdown-menu.svelte +7 -0
  289. package/src/lib/components/primitives/dropdown-menu/index.ts +54 -0
  290. package/src/lib/components/primitives/{alert/alert-description.svelte → empty/empty-content.svelte} +3 -3
  291. package/src/lib/components/primitives/empty/empty-description.svelte +23 -0
  292. package/src/lib/components/primitives/{alert/alert-title.svelte → empty/empty-header.svelte} +3 -3
  293. package/src/lib/components/primitives/empty/empty-media.svelte +41 -0
  294. package/src/lib/components/primitives/{card/card-action.svelte → empty/empty-title.svelte} +2 -2
  295. package/src/lib/components/primitives/empty/empty.svelte +23 -0
  296. package/src/lib/components/primitives/empty/index.ts +22 -0
  297. package/src/lib/components/primitives/index.ts +10 -1
  298. package/src/lib/components/primitives/input/input.svelte +4 -4
  299. package/src/lib/components/primitives/input-group/index.ts +22 -0
  300. package/src/lib/components/primitives/input-group/input-group-addon.svelte +53 -0
  301. package/src/lib/components/primitives/input-group/input-group-button.svelte +49 -0
  302. package/src/lib/components/primitives/input-group/input-group-input.svelte +25 -0
  303. package/src/lib/components/primitives/input-group/input-group-text.svelte +22 -0
  304. package/src/lib/components/primitives/input-group/input-group-textarea.svelte +23 -0
  305. package/src/lib/components/primitives/input-group/input-group.svelte +24 -0
  306. package/src/lib/components/primitives/mode-toggle/mode-toggle.svelte +2 -6
  307. package/src/lib/components/primitives/popover/index.ts +28 -0
  308. package/src/lib/components/primitives/popover/popover-close.svelte +7 -0
  309. package/src/lib/components/primitives/popover/popover-content.svelte +31 -0
  310. package/src/lib/components/primitives/popover/popover-description.svelte +20 -0
  311. package/src/lib/components/primitives/popover/popover-header.svelte +20 -0
  312. package/src/lib/components/primitives/popover/popover-portal.svelte +7 -0
  313. package/src/lib/components/primitives/popover/popover-title.svelte +15 -0
  314. package/src/lib/components/primitives/popover/popover-trigger.svelte +17 -0
  315. package/src/lib/components/primitives/popover/popover.svelte +7 -0
  316. package/src/lib/components/primitives/resizable/resizable-handle.svelte +6 -2
  317. package/src/lib/components/primitives/resizable/resizable-pane-group.svelte +1 -4
  318. package/src/lib/components/primitives/scroll-area/scroll-area.svelte +1 -1
  319. package/src/lib/components/primitives/search/search.svelte +3 -3
  320. package/src/lib/components/primitives/select/select-content.svelte +1 -1
  321. package/src/lib/components/primitives/select/select-trigger.svelte +1 -1
  322. package/src/lib/components/primitives/severity.ts +26 -0
  323. package/src/lib/components/primitives/slider/slider.svelte +2 -2
  324. package/src/lib/components/primitives/sonner/sonner.svelte +1 -1
  325. package/src/lib/components/primitives/spinner/index.ts +1 -0
  326. package/src/lib/components/primitives/spinner/spinner.svelte +29 -0
  327. package/src/lib/components/primitives/switch/switch.svelte +2 -2
  328. package/src/lib/components/primitives/tabs/tabs-list.svelte +27 -5
  329. package/src/lib/components/primitives/tabs/tabs-trigger.svelte +23 -5
  330. package/src/lib/components/primitives/tabs/tabs.svelte +6 -2
  331. package/src/lib/components/primitives/textarea/textarea.svelte +1 -1
  332. package/src/lib/components/primitives/theme-switcher/ThemeSwitcher.svelte +1 -1
  333. package/src/lib/components/primitives/toggle/index.ts +13 -0
  334. package/src/lib/components/primitives/toggle/toggle.svelte +52 -0
  335. package/src/lib/components/primitives/toggle-group/index.ts +10 -0
  336. package/src/lib/components/primitives/toggle-group/toggle-group-item.svelte +35 -0
  337. package/src/lib/components/primitives/toggle-group/toggle-group.svelte +75 -0
  338. package/src/lib/components/viewer/MeshMetadataDialog.svelte +3 -3
  339. package/src/lib/components/viewer/SceneManager.svelte +14 -5
  340. package/src/lib/components/viewer/Viewer.svelte +120 -171
  341. package/src/lib/i18n/messages.ts +6 -0
  342. package/src/lib/styles/base.css +43 -0
  343. package/dist/components/primitives/alert/alert.svelte +0 -44
  344. package/dist/components/primitives/alert/alert.svelte.d.ts +0 -26
  345. package/dist/components/primitives/alert/index.d.ts +0 -5
  346. package/dist/components/primitives/alert/index.js +0 -7
  347. package/src/lib/components/primitives/alert/alert.svelte +0 -44
  348. package/src/lib/components/primitives/alert/index.ts +0 -14
@@ -26,12 +26,9 @@
26
26
  Frame,
27
27
  Ruler,
28
28
  Grid3x3,
29
- Check,
30
- ChevronRight,
31
29
  Palette,
32
30
  Spline
33
31
  } from '@lucide/svelte';
34
- import { DropdownMenu } from 'bits-ui';
35
32
  import { SvelteSet } from 'svelte/reactivity';
36
33
  import type * as THREE from 'three';
37
34
  import type { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
@@ -39,6 +36,8 @@
39
36
  import SceneManager from './SceneManager.svelte';
40
37
  import MeshMetadataDialog from './MeshMetadataDialog.svelte';
41
38
  import * as Resizable from '$lib/components/primitives/resizable/index.js';
39
+ import * as DropdownMenu from '$lib/components/primitives/dropdown-menu/index.js';
40
+ import { Button } from '$lib/components/primitives/button/index.js';
42
41
  import type { Locale } from '$lib/i18n/messages';
43
42
  import { setLocaleContext, getLocaleContext } from '$lib/i18n/localeContext.svelte';
44
43
 
@@ -417,7 +416,7 @@
417
416
  <div
418
417
  class="min-h-64 sm:min-h-96 lg:min-h-125 relative h-full flex-1 border {isFullscreen
419
418
  ? 'fullscreen-viewer'
420
- : 'overflow-hidden rounded-[0.625rem]'}"
419
+ : 'overflow-hidden rounded-lg'}"
421
420
  >
422
421
  <Resizable.PaneGroup direction="horizontal" class="h-full w-full">
423
422
  <!-- `defaultSize` must sum to 100 across the live panes. Panes register a frame before the
@@ -426,7 +425,7 @@
426
425
  scene pane keeps a sliver of its intended width. Hence 85 + 15, and the explicit id/order
427
426
  so a conditionally-rendered pane keeps its slot. -->
428
427
  <Resizable.Pane id="viewport" order={1} defaultSize={sceneManagerOpen ? 85 : 100} minSize={40}>
429
- <div class="relative h-full w-full" style="touch-action: none;">
428
+ <div class="relative h-full w-full touch-none">
430
429
  <!-- Mesh count of the geometry currently in the scene. The canvas itself is opaque to
431
430
  the DOM, so this is the only observable proof a solve's geometry decoded and
432
431
  rendered; e2e asserts on it. -->
@@ -444,19 +443,18 @@
444
443
  ></div>
445
444
 
446
445
  {#if isSolving}
447
- <div
448
- class="inset-0 absolute z-10 animate-[selva-viewer-fade-in_0.2s_ease-out] backdrop-blur-[2px] transition-all duration-300"
449
- ></div>
446
+ <div class="inset-0 animate-in fade-in backdrop-blur-xs absolute z-10 duration-200"></div>
450
447
  {/if}
451
448
 
452
449
  {#if logoUrl}
453
450
  <!-- Bottom offset matches the tools menu so it clears the mobile drawer handle.
454
451
  Always pointer-events:none so it never intercepts canvas drags. -->
455
452
  <div
456
- class="right-4 {isFullscreen ? 'bottom-4' : 'bottom-16 sm:bottom-4'} absolute z-20"
457
- style={hideButton
458
- ? 'opacity: 0; pointer-events: none;'
459
- : 'opacity: 1; pointer-events: none;'}
453
+ class="right-4 {isFullscreen
454
+ ? 'bottom-4'
455
+ : 'bottom-16 sm:bottom-4'} pointer-events-none absolute z-20 {hideButton
456
+ ? 'opacity-0'
457
+ : ''}"
460
458
  >
461
459
  <img
462
460
  src={logoUrl}
@@ -467,171 +465,131 @@
467
465
  {/if}
468
466
 
469
467
  {#if config.showToolsMenu}
470
- {@const itemClass =
471
- 'gap-2 px-2 py-1.5 text-sm flex cursor-pointer select-none items-center rounded-sm outline-none transition-colors hover:bg-muted focus:bg-muted'}
472
468
  <div
473
469
  class="left-4 {isFullscreen
474
470
  ? 'bottom-4'
475
- : 'bottom-16 sm:bottom-4'} absolute z-50 flex items-center"
476
- style={hideButton
477
- ? 'opacity: 0; pointer-events: none;'
478
- : 'opacity: 1; pointer-events: auto;'}
471
+ : 'bottom-16 sm:bottom-4'} shadow-lg absolute z-50 flex items-center rounded-lg {hideButton
472
+ ? 'pointer-events-none opacity-0'
473
+ : ''}"
479
474
  >
480
475
  <DropdownMenu.Root>
481
- <DropdownMenu.Trigger
482
- class="h-10 w-10 shadow-lg hover:shadow-xl flex items-center justify-center rounded-lg border border-border bg-card/90 transition-all hover:bg-card active:scale-95 data-[state=open]:bg-secondary/60"
483
- title={t.toolsMenu}
484
- aria-label={t.toolsMenu}
485
- >
486
- <Settings2 class="h-5 w-5 text-card-foreground" />
476
+ <DropdownMenu.Trigger>
477
+ {#snippet child({ props })}
478
+ <Button
479
+ {...props}
480
+ variant="outline"
481
+ size="icon-lg"
482
+ title={t.toolsMenu}
483
+ aria-label={t.toolsMenu}
484
+ >
485
+ <Settings2 />
486
+ </Button>
487
+ {/snippet}
487
488
  </DropdownMenu.Trigger>
488
- <DropdownMenu.Portal>
489
- <DropdownMenu.Content
490
- sideOffset={6}
491
- align="start"
492
- class="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 min-w-44 p-1 shadow-md z-10001 rounded-md border bg-popover text-popover-foreground"
493
- >
494
- <DropdownMenu.Item class={itemClass} onSelect={toggleProjection}>
495
- {#if projection === 'perspective'}
496
- <Square class="h-4 w-4" />
497
- {t.switchToOrthographic}
498
- {:else}
499
- <Box class="h-4 w-4" />
500
- {t.switchToPerspective}
501
- {/if}
502
- </DropdownMenu.Item>
503
-
504
- <DropdownMenu.Item class={itemClass} onSelect={() => fitToView?.()}>
505
- <Frame class="h-4 w-4" />
506
- {t.fitToView}
507
- </DropdownMenu.Item>
489
+ <!-- Above the fullscreen viewer, which sits at z-index 10000. -->
490
+ <DropdownMenu.Content sideOffset={6} class="min-w-44 z-10001 w-auto">
491
+ <DropdownMenu.Item onSelect={toggleProjection}>
492
+ {#if projection === 'perspective'}
493
+ <Square />
494
+ {t.switchToOrthographic}
495
+ {:else}
496
+ <Box />
497
+ {t.switchToPerspective}
498
+ {/if}
499
+ </DropdownMenu.Item>
500
+ <DropdownMenu.Item onSelect={() => fitToView?.()}>
501
+ <Frame />
502
+ {t.fitToView}
503
+ </DropdownMenu.Item>
504
+
505
+ <DropdownMenu.Sub>
506
+ <DropdownMenu.SubTrigger>
507
+ <Box />
508
+ {t.views}
509
+ </DropdownMenu.SubTrigger>
510
+ <DropdownMenu.SubContent class="z-10001">
511
+ {#each VIEW_PRESETS as { preset, label } (preset)}
512
+ <DropdownMenu.Item onSelect={() => setView(preset)}
513
+ >{label()}</DropdownMenu.Item
514
+ >
515
+ {/each}
516
+ </DropdownMenu.SubContent>
517
+ </DropdownMenu.Sub>
508
518
 
519
+ {#if config.showDisplayMenu}
509
520
  <DropdownMenu.Sub>
510
- <DropdownMenu.SubTrigger class="{itemClass} data-[state=open]:bg-muted">
511
- <Box class="h-4 w-4" />
512
- <span class="flex-1">{t.views}</span>
513
- <ChevronRight class="h-4 w-4 text-muted-foreground" />
521
+ <DropdownMenu.SubTrigger>
522
+ <Palette />
523
+ {t.display}
514
524
  </DropdownMenu.SubTrigger>
515
- <DropdownMenu.SubContent
516
- sideOffset={4}
517
- class="min-w-32 p-1 shadow-md z-10001 rounded-md border bg-popover text-popover-foreground"
518
- >
519
- {#each VIEW_PRESETS as { preset, label } (preset)}
520
- <DropdownMenu.Item
521
- class="px-2 py-1.5 text-sm flex cursor-pointer items-center rounded-sm transition-colors outline-none select-none hover:bg-muted focus:bg-muted"
522
- onSelect={() => setView(preset)}
523
- >
524
- {label()}
525
- </DropdownMenu.Item>
526
- {/each}
527
- </DropdownMenu.SubContent>
528
- </DropdownMenu.Sub>
529
-
530
- {#if config.showDisplayMenu}
531
- <DropdownMenu.Sub>
532
- <DropdownMenu.SubTrigger class="{itemClass} data-[state=open]:bg-muted">
533
- <Palette class="h-4 w-4" />
534
- <span class="flex-1">{t.display}</span>
535
- <ChevronRight class="h-4 w-4 text-muted-foreground" />
536
- </DropdownMenu.SubTrigger>
537
- <DropdownMenu.SubContent
538
- sideOffset={4}
539
- class="min-w-40 p-1 shadow-md z-10001 rounded-md border bg-popover text-popover-foreground"
525
+ <DropdownMenu.SubContent class="min-w-40 z-10001">
526
+ <DropdownMenu.RadioGroup
527
+ value={renderStyle}
528
+ onValueChange={(look) => setRenderStyle(look as typeof renderStyle)}
540
529
  >
541
530
  {#each STYLE_OPTIONS as { look, label } (look)}
542
- <DropdownMenu.Item
543
- closeOnSelect={false}
544
- class="{itemClass} {renderStyle === look ? 'text-primary' : ''}"
545
- onSelect={() => setRenderStyle(look)}
546
- >
547
- <span class="flex-1">{label}</span>
548
- {#if renderStyle === look}
549
- <Check class="h-4 w-4" />
550
- {/if}
551
- </DropdownMenu.Item>
531
+ <DropdownMenu.RadioItem value={look} closeOnSelect={false}>
532
+ {label}
533
+ </DropdownMenu.RadioItem>
552
534
  {/each}
553
-
554
- <DropdownMenu.Separator class="my-1 h-px bg-border" />
555
-
556
- <DropdownMenu.Item
557
- closeOnSelect={false}
558
- class="{itemClass} {edgesVisible ? 'text-primary' : ''}"
559
- onSelect={toggleEdges}
560
- >
561
- <Spline class="h-4 w-4" />
562
- <span class="flex-1">{t.edges}</span>
563
- {#if edgesVisible}
564
- <Check class="h-4 w-4" />
565
- {/if}
566
- </DropdownMenu.Item>
567
- </DropdownMenu.SubContent>
568
- </DropdownMenu.Sub>
569
- {/if}
570
-
571
- <DropdownMenu.Item
572
- closeOnSelect={false}
573
- class="{itemClass} {measureActive ? 'text-primary' : ''}"
574
- onSelect={toggleMeasure}
535
+ </DropdownMenu.RadioGroup>
536
+ <DropdownMenu.Separator />
537
+ <DropdownMenu.CheckboxItem
538
+ checked={edgesVisible}
539
+ onCheckedChange={toggleEdges}
540
+ >
541
+ <Spline />
542
+ {t.edges}
543
+ </DropdownMenu.CheckboxItem>
544
+ </DropdownMenu.SubContent>
545
+ </DropdownMenu.Sub>
546
+ {/if}
547
+
548
+ <DropdownMenu.CheckboxItem checked={measureActive} onCheckedChange={toggleMeasure}>
549
+ <Ruler />
550
+ {t.measure}
551
+ </DropdownMenu.CheckboxItem>
552
+
553
+ {#if config.showGridToggle}
554
+ <DropdownMenu.CheckboxItem checked={gridVisible} onCheckedChange={toggleGrid}>
555
+ <Grid3x3 />
556
+ {t.grid}
557
+ </DropdownMenu.CheckboxItem>
558
+ {/if}
559
+
560
+ {#if config.showSceneManager || config.showScreenshotButton || config.showFullscreenButton}
561
+ <DropdownMenu.Separator />
562
+ {/if}
563
+
564
+ {#if config.showSceneManager}
565
+ <DropdownMenu.CheckboxItem
566
+ checked={sceneManagerOpen}
567
+ onCheckedChange={() => (sceneManagerOpen = !sceneManagerOpen)}
575
568
  >
576
- <Ruler class="h-4 w-4" />
577
- <span class="flex-1">{t.measure}</span>
578
- {#if measureActive}
579
- <Check class="h-4 w-4" />
580
- {/if}
569
+ <Layers />
570
+ {t.sceneManager}
571
+ </DropdownMenu.CheckboxItem>
572
+ {/if}
573
+
574
+ {#if config.showScreenshotButton}
575
+ <DropdownMenu.Item onSelect={downloadScreenshot}>
576
+ <Camera />
577
+ {t.screenshot}
581
578
  </DropdownMenu.Item>
579
+ {/if}
582
580
 
583
- {#if config.showGridToggle}
584
- <DropdownMenu.Item
585
- closeOnSelect={false}
586
- class="{itemClass} {gridVisible ? 'text-primary' : ''}"
587
- onSelect={toggleGrid}
588
- >
589
- <Grid3x3 class="h-4 w-4" />
590
- <span class="flex-1">{t.grid}</span>
591
- {#if gridVisible}
592
- <Check class="h-4 w-4" />
593
- {/if}
594
- </DropdownMenu.Item>
595
- {/if}
596
-
597
- {#if config.showSceneManager || config.showScreenshotButton || config.showFullscreenButton}
598
- <DropdownMenu.Separator class="my-1 h-px bg-border" />
599
- {/if}
600
-
601
- {#if config.showSceneManager}
602
- <DropdownMenu.Item
603
- closeOnSelect={false}
604
- class="{itemClass} {sceneManagerOpen ? 'text-primary' : ''}"
605
- onSelect={() => (sceneManagerOpen = !sceneManagerOpen)}
606
- >
607
- <Layers class="h-4 w-4" />
608
- <span class="flex-1">{t.sceneManager}</span>
609
- {#if sceneManagerOpen}
610
- <Check class="h-4 w-4" />
611
- {/if}
612
- </DropdownMenu.Item>
613
- {/if}
614
-
615
- {#if config.showScreenshotButton}
616
- <DropdownMenu.Item class={itemClass} onSelect={downloadScreenshot}>
617
- <Camera class="h-4 w-4" />
618
- {t.screenshot}
619
- </DropdownMenu.Item>
620
- {/if}
621
-
622
- {#if config.showFullscreenButton}
623
- <DropdownMenu.Item class={itemClass} onSelect={toggleFullscreen}>
624
- {#if isFullscreen}
625
- <Minimize class="h-4 w-4" />
626
- {t.exitFullscreen}
627
- {:else}
628
- <Maximize class="h-4 w-4" />
629
- {t.fullscreen}
630
- {/if}
631
- </DropdownMenu.Item>
632
- {/if}
633
- </DropdownMenu.Content>
634
- </DropdownMenu.Portal>
581
+ {#if config.showFullscreenButton}
582
+ <DropdownMenu.Item onSelect={toggleFullscreen}>
583
+ {#if isFullscreen}
584
+ <Minimize />
585
+ {t.exitFullscreen}
586
+ {:else}
587
+ <Maximize />
588
+ {t.fullscreen}
589
+ {/if}
590
+ </DropdownMenu.Item>
591
+ {/if}
592
+ </DropdownMenu.Content>
635
593
  </DropdownMenu.Root>
636
594
  </div>
637
595
  {/if}
@@ -699,13 +657,4 @@
699
657
  backdrop-filter: blur(0px);
700
658
  }
701
659
  }
702
-
703
- @keyframes selva-viewer-fade-in {
704
- from {
705
- opacity: 0;
706
- }
707
- to {
708
- opacity: 1;
709
- }
710
- }
711
660
  </style>
@@ -65,6 +65,8 @@ export interface ViewerMessages {
65
65
  solveSolving: string;
66
66
  parametersTab: string;
67
67
  moreTab: string;
68
+ scrollTabsBack: string;
69
+ scrollTabsForward: string;
68
70
  expandPanel: string;
69
71
  collapsePanel: string;
70
72
  /** `{side}` is replaced with `panelSideLeft` / `panelSideRight`. */
@@ -133,6 +135,8 @@ const en: ViewerMessages = {
133
135
  solveSolving: 'Solving…',
134
136
  parametersTab: 'Parameters',
135
137
  moreTab: 'More',
138
+ scrollTabsBack: 'Previous tabs',
139
+ scrollTabsForward: 'More tabs',
136
140
  expandPanel: 'Expand panel',
137
141
  collapsePanel: 'Collapse panel',
138
142
  expandSidePanel: 'Expand {side} panel',
@@ -200,6 +204,8 @@ const de: ViewerMessages = {
200
204
  solveSolving: 'Berechnung läuft…',
201
205
  parametersTab: 'Parameter',
202
206
  moreTab: 'Mehr',
207
+ scrollTabsBack: 'Vorherige Tabs',
208
+ scrollTabsForward: 'Weitere Tabs',
203
209
  expandPanel: 'Bereich aufklappen',
204
210
  collapsePanel: 'Bereich zuklappen',
205
211
  expandSidePanel: '{side} Bereich aufklappen',
@@ -20,6 +20,7 @@
20
20
  --accent: oklch(0.93 0 0);
21
21
  --accent-foreground: oklch(0.3 0 0);
22
22
  --destructive: oklch(0.6 0.18 27);
23
+ --destructive-foreground: oklch(0.985 0 0);
23
24
  --border: oklch(0.86 0 0);
24
25
  --input: oklch(0.91 0 0);
25
26
  --ring: oklch(0.67 0 0);
@@ -44,6 +45,8 @@
44
45
  --sidebar-ring: oklch(0.67 0 0);
45
46
  --inputparam: oklch(1 0 0);
46
47
  --outputparam: oklch(1 0 0);
48
+ /* Scrim behind modal dialogs and drawers. */
49
+ --overlay: oklch(0 0 0 / 50%);
47
50
  }
48
51
 
49
52
  .dark {
@@ -62,6 +65,7 @@
62
65
  --accent: oklch(0.36 0 0);
63
66
  --accent-foreground: oklch(0.92 0 0);
64
67
  --destructive: oklch(0.7 0.17 22);
68
+ --destructive-foreground: oklch(0.985 0 0);
65
69
  --border: oklch(1 0 0 / 14%);
66
70
  --input: oklch(1 0 0 / 12%);
67
71
  --ring: oklch(0.74 0 0);
@@ -108,6 +112,8 @@
108
112
  --color-accent: var(--accent);
109
113
  --color-accent-foreground: var(--accent-foreground);
110
114
  --color-destructive: var(--destructive);
115
+ --color-destructive-foreground: var(--destructive-foreground);
116
+ --color-overlay: var(--overlay);
111
117
  --color-border: var(--border);
112
118
  --color-input: var(--input);
113
119
  --color-ring: var(--ring);
@@ -134,6 +140,43 @@
134
140
  --color-outputparam: var(--outputparam);
135
141
  }
136
142
 
143
+ /* Design tokens beyond Tailwind's defaults. Reach for these before an arbitrary value: the
144
+ design-system lint rejects `text-[10px]`, `max-h-[85dvh]` and the like. */
145
+ @theme {
146
+ /* Type tags, counters and other dense labels. */
147
+ --text-2xs: 0.625rem;
148
+ --text-2xs--line-height: calc(0.875 / 0.625);
149
+ /* Bottom sheets cast their shadow upward. */
150
+ --shadow-sheet: 0 -4px 24px oklch(0 0 0 / 12%);
151
+ /* Width of anything that must keep a 1rem gutter on each side of the viewport. */
152
+ --container-screen-inset: calc(100% - 2rem);
153
+ }
154
+
155
+ @utility max-h-dialog {
156
+ max-height: 85dvh;
157
+ }
158
+
159
+ @utility no-scrollbar {
160
+ scrollbar-width: none;
161
+ &::-webkit-scrollbar {
162
+ display: none;
163
+ }
164
+ }
165
+
166
+ /* Number fields whose value is set elsewhere (a slider, a stepper) drop the browser's spinner. */
167
+ @utility no-spinner {
168
+ appearance: textfield;
169
+ &::-webkit-inner-spin-button,
170
+ &::-webkit-outer-spin-button {
171
+ appearance: none;
172
+ margin: 0;
173
+ }
174
+ }
175
+
176
+ @utility rounded-inherit {
177
+ border-radius: inherit;
178
+ }
179
+
137
180
  @layer base {
138
181
  * {
139
182
  @apply border-border outline-ring/50;
@@ -1,44 +0,0 @@
1
- <script lang="ts" module>
2
- import { type VariantProps, tv } from 'tailwind-variants';
3
-
4
- export const alertVariants = tv({
5
- base: 'relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',
6
- variants: {
7
- variant: {
8
- default: 'bg-card text-card-foreground',
9
- destructive:
10
- 'text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current'
11
- }
12
- },
13
- defaultVariants: {
14
- variant: 'default'
15
- }
16
- });
17
-
18
- export type AlertVariant = VariantProps<typeof alertVariants>['variant'];
19
- </script>
20
-
21
- <script lang="ts">
22
- import type { HTMLAttributes } from 'svelte/elements';
23
- import { cn, type WithElementRef } from '../../../utils.js';
24
-
25
- let {
26
- ref = $bindable(null),
27
- class: className,
28
- variant = 'default',
29
- children,
30
- ...restProps
31
- }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
32
- variant?: AlertVariant;
33
- } = $props();
34
- </script>
35
-
36
- <div
37
- bind:this={ref}
38
- data-slot="alert"
39
- class={cn(alertVariants({ variant }), className)}
40
- {...restProps}
41
- role="alert"
42
- >
43
- {@render children?.()}
44
- </div>
@@ -1,26 +0,0 @@
1
- import { type VariantProps } from 'tailwind-variants';
2
- export declare const alertVariants: import("tailwind-variants").TVReturnType<{
3
- variant: {
4
- default: "bg-card text-card-foreground";
5
- destructive: "text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current";
6
- };
7
- }, undefined, "relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current", {
8
- variant: {
9
- default: "bg-card text-card-foreground";
10
- destructive: "text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current";
11
- };
12
- }, undefined, import("tailwind-variants").TVReturnTypeLike<{
13
- variant: {
14
- default: "bg-card text-card-foreground";
15
- destructive: "text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current";
16
- };
17
- }, undefined>>;
18
- export type AlertVariant = VariantProps<typeof alertVariants>['variant'];
19
- import type { HTMLAttributes } from 'svelte/elements';
20
- import { type WithElementRef } from '../../../utils.js';
21
- type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
22
- variant?: AlertVariant;
23
- };
24
- declare const Alert: import("svelte").Component<$$ComponentProps, {}, "ref">;
25
- type Alert = ReturnType<typeof Alert>;
26
- export default Alert;
@@ -1,5 +0,0 @@
1
- import Root from './alert.svelte';
2
- import Description from './alert-description.svelte';
3
- import Title from './alert-title.svelte';
4
- export { alertVariants, type AlertVariant } from './alert.svelte';
5
- export { Root, Description, Title, Root as Alert, Description as AlertDescription, Title as AlertTitle };
@@ -1,7 +0,0 @@
1
- import Root from './alert.svelte';
2
- import Description from './alert-description.svelte';
3
- import Title from './alert-title.svelte';
4
- export { alertVariants } from './alert.svelte';
5
- export { Root, Description, Title,
6
- //
7
- Root as Alert, Description as AlertDescription, Title as AlertTitle };
@@ -1,44 +0,0 @@
1
- <script lang="ts" module>
2
- import { type VariantProps, tv } from 'tailwind-variants';
3
-
4
- export const alertVariants = tv({
5
- base: 'relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',
6
- variants: {
7
- variant: {
8
- default: 'bg-card text-card-foreground',
9
- destructive:
10
- 'text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current'
11
- }
12
- },
13
- defaultVariants: {
14
- variant: 'default'
15
- }
16
- });
17
-
18
- export type AlertVariant = VariantProps<typeof alertVariants>['variant'];
19
- </script>
20
-
21
- <script lang="ts">
22
- import type { HTMLAttributes } from 'svelte/elements';
23
- import { cn, type WithElementRef } from '$lib/utils.js';
24
-
25
- let {
26
- ref = $bindable(null),
27
- class: className,
28
- variant = 'default',
29
- children,
30
- ...restProps
31
- }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
32
- variant?: AlertVariant;
33
- } = $props();
34
- </script>
35
-
36
- <div
37
- bind:this={ref}
38
- data-slot="alert"
39
- class={cn(alertVariants({ variant }), className)}
40
- {...restProps}
41
- role="alert"
42
- >
43
- {@render children?.()}
44
- </div>
@@ -1,14 +0,0 @@
1
- import Root from './alert.svelte';
2
- import Description from './alert-description.svelte';
3
- import Title from './alert-title.svelte';
4
- export { alertVariants, type AlertVariant } from './alert.svelte';
5
-
6
- export {
7
- Root,
8
- Description,
9
- Title,
10
- //
11
- Root as Alert,
12
- Description as AlertDescription,
13
- Title as AlertTitle
14
- };