@sewadah/selaras 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +31 -13
  2. package/dist/module.d.mts +10 -0
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +120 -36
  5. package/dist/runtime/components/Accordion.d.vue.ts +3 -0
  6. package/dist/runtime/components/Accordion.vue +5 -1
  7. package/dist/runtime/components/Accordion.vue.d.ts +3 -0
  8. package/dist/runtime/components/Alert.d.vue.ts +2 -1
  9. package/dist/runtime/components/Alert.vue +6 -3
  10. package/dist/runtime/components/Alert.vue.d.ts +2 -1
  11. package/dist/runtime/components/AlertDialog.d.vue.ts +2 -0
  12. package/dist/runtime/components/AlertDialog.vue +21 -8
  13. package/dist/runtime/components/AlertDialog.vue.d.ts +2 -0
  14. package/dist/runtime/components/App.vue +9 -2
  15. package/dist/runtime/components/Autocomplete.d.vue.ts +22 -58
  16. package/dist/runtime/components/Autocomplete.vue +50 -11
  17. package/dist/runtime/components/Autocomplete.vue.d.ts +22 -58
  18. package/dist/runtime/components/Avatar.d.vue.ts +2 -1
  19. package/dist/runtime/components/Avatar.vue +4 -2
  20. package/dist/runtime/components/Avatar.vue.d.ts +2 -1
  21. package/dist/runtime/components/Badge.d.vue.ts +3 -2
  22. package/dist/runtime/components/Badge.vue +8 -5
  23. package/dist/runtime/components/Badge.vue.d.ts +3 -2
  24. package/dist/runtime/components/Breadcrumb.d.vue.ts +3 -0
  25. package/dist/runtime/components/Breadcrumb.vue +5 -2
  26. package/dist/runtime/components/Breadcrumb.vue.d.ts +3 -0
  27. package/dist/runtime/components/Button.d.vue.ts +5 -2
  28. package/dist/runtime/components/Button.vue +5 -2
  29. package/dist/runtime/components/Button.vue.d.ts +5 -2
  30. package/dist/runtime/components/Checkbox.d.vue.ts +2 -1
  31. package/dist/runtime/components/Checkbox.vue +4 -2
  32. package/dist/runtime/components/Checkbox.vue.d.ts +2 -1
  33. package/dist/runtime/components/Chip.d.vue.ts +2 -1
  34. package/dist/runtime/components/Chip.vue +4 -2
  35. package/dist/runtime/components/Chip.vue.d.ts +2 -1
  36. package/dist/runtime/components/Collapsible.d.vue.ts +3 -0
  37. package/dist/runtime/components/Collapsible.vue +11 -6
  38. package/dist/runtime/components/Collapsible.vue.d.ts +3 -0
  39. package/dist/runtime/components/ColorPicker.d.vue.ts +13 -3
  40. package/dist/runtime/components/ColorPicker.vue +60 -14
  41. package/dist/runtime/components/ColorPicker.vue.d.ts +13 -3
  42. package/dist/runtime/components/Column.d.ts +1 -1
  43. package/dist/runtime/components/CommandPalette.vue +18 -16
  44. package/dist/runtime/components/ContentNavigation.d.vue.ts +3 -0
  45. package/dist/runtime/components/ContentNavigation.vue +6 -3
  46. package/dist/runtime/components/ContentNavigation.vue.d.ts +3 -0
  47. package/dist/runtime/components/ContentSurround.d.vue.ts +3 -0
  48. package/dist/runtime/components/ContentSurround.vue +7 -4
  49. package/dist/runtime/components/ContentSurround.vue.d.ts +3 -0
  50. package/dist/runtime/components/ContentToc.d.vue.ts +3 -0
  51. package/dist/runtime/components/ContentToc.vue +8 -5
  52. package/dist/runtime/components/ContentToc.vue.d.ts +3 -0
  53. package/dist/runtime/components/ContextMenu.vue +3 -2
  54. package/dist/runtime/components/DashboardSidebar.vue +1 -1
  55. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +1 -0
  56. package/dist/runtime/components/DashboardSidebarToggle.vue +3 -1
  57. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +1 -0
  58. package/dist/runtime/components/DatePicker.d.vue.ts +32 -23
  59. package/dist/runtime/components/DatePicker.vue +130 -60
  60. package/dist/runtime/components/DatePicker.vue.d.ts +32 -23
  61. package/dist/runtime/components/Drawer.d.vue.ts +2 -0
  62. package/dist/runtime/components/Drawer.vue +21 -8
  63. package/dist/runtime/components/Drawer.vue.d.ts +2 -0
  64. package/dist/runtime/components/DrawerRenderer.vue +28 -21
  65. package/dist/runtime/components/Dropdown.d.vue.ts +14 -4
  66. package/dist/runtime/components/Dropdown.vue +19 -4
  67. package/dist/runtime/components/Dropdown.vue.d.ts +14 -4
  68. package/dist/runtime/components/FileTree.d.vue.ts +3 -0
  69. package/dist/runtime/components/FileTree.vue +7 -3
  70. package/dist/runtime/components/FileTree.vue.d.ts +3 -0
  71. package/dist/runtime/components/FileUpload.d.vue.ts +2 -1
  72. package/dist/runtime/components/FileUpload.vue +75 -32
  73. package/dist/runtime/components/FileUpload.vue.d.ts +2 -1
  74. package/dist/runtime/components/FormField.d.vue.ts +2 -0
  75. package/dist/runtime/components/FormField.vue +12 -9
  76. package/dist/runtime/components/FormField.vue.d.ts +2 -0
  77. package/dist/runtime/components/Icon.d.vue.ts +2 -4
  78. package/dist/runtime/components/Icon.vue +7 -2
  79. package/dist/runtime/components/Icon.vue.d.ts +2 -4
  80. package/dist/runtime/components/Input.d.vue.ts +2 -1
  81. package/dist/runtime/components/Input.vue +12 -6
  82. package/dist/runtime/components/Input.vue.d.ts +2 -1
  83. package/dist/runtime/components/InputNumber.d.vue.ts +4 -1
  84. package/dist/runtime/components/InputNumber.vue +21 -8
  85. package/dist/runtime/components/InputNumber.vue.d.ts +4 -1
  86. package/dist/runtime/components/Modal.d.vue.ts +2 -0
  87. package/dist/runtime/components/Modal.vue +21 -8
  88. package/dist/runtime/components/Modal.vue.d.ts +2 -0
  89. package/dist/runtime/components/ModalRenderer.vue +23 -16
  90. package/dist/runtime/components/NavigationMenu.d.vue.ts +2 -4
  91. package/dist/runtime/components/NavigationMenu.vue +6 -4
  92. package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -4
  93. package/dist/runtime/components/NavigationMenuAccordionItem.d.vue.ts +2 -4
  94. package/dist/runtime/components/NavigationMenuAccordionItem.vue +5 -3
  95. package/dist/runtime/components/NavigationMenuAccordionItem.vue.d.ts +2 -4
  96. package/dist/runtime/components/NavigationMenuFlyoutList.d.vue.ts +2 -4
  97. package/dist/runtime/components/NavigationMenuFlyoutList.vue +7 -4
  98. package/dist/runtime/components/NavigationMenuFlyoutList.vue.d.ts +2 -4
  99. package/dist/runtime/components/NavigationMenuFlyoutTrigger.d.vue.ts +2 -4
  100. package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue +9 -2
  101. package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue.d.ts +2 -4
  102. package/dist/runtime/components/Pagination.d.vue.ts +3 -2
  103. package/dist/runtime/components/Pagination.vue.d.ts +3 -2
  104. package/dist/runtime/components/PinInput.d.vue.ts +2 -1
  105. package/dist/runtime/components/PinInput.vue +17 -6
  106. package/dist/runtime/components/PinInput.vue.d.ts +2 -1
  107. package/dist/runtime/components/Popover.d.vue.ts +2 -0
  108. package/dist/runtime/components/Popover.vue +14 -7
  109. package/dist/runtime/components/Popover.vue.d.ts +2 -0
  110. package/dist/runtime/components/Progress.d.vue.ts +2 -1
  111. package/dist/runtime/components/Progress.vue +6 -4
  112. package/dist/runtime/components/Progress.vue.d.ts +2 -1
  113. package/dist/runtime/components/ProseH1.d.vue.ts +2 -0
  114. package/dist/runtime/components/ProseH1.vue +7 -4
  115. package/dist/runtime/components/ProseH1.vue.d.ts +2 -0
  116. package/dist/runtime/components/ProseH2.d.vue.ts +2 -0
  117. package/dist/runtime/components/ProseH2.vue +7 -4
  118. package/dist/runtime/components/ProseH2.vue.d.ts +2 -0
  119. package/dist/runtime/components/ProseH3.d.vue.ts +2 -0
  120. package/dist/runtime/components/ProseH3.vue +7 -4
  121. package/dist/runtime/components/ProseH3.vue.d.ts +2 -0
  122. package/dist/runtime/components/ProseH4.d.vue.ts +2 -0
  123. package/dist/runtime/components/ProseH4.vue +7 -4
  124. package/dist/runtime/components/ProseH4.vue.d.ts +2 -0
  125. package/dist/runtime/components/ProseH5.d.vue.ts +2 -0
  126. package/dist/runtime/components/ProseH5.vue +7 -4
  127. package/dist/runtime/components/ProseH5.vue.d.ts +2 -0
  128. package/dist/runtime/components/ProseH6.d.vue.ts +2 -0
  129. package/dist/runtime/components/ProseH6.vue +7 -4
  130. package/dist/runtime/components/ProseH6.vue.d.ts +2 -0
  131. package/dist/runtime/components/RadioGroup.d.vue.ts +2 -1
  132. package/dist/runtime/components/RadioGroup.vue +9 -5
  133. package/dist/runtime/components/RadioGroup.vue.d.ts +2 -1
  134. package/dist/runtime/components/Rating.d.vue.ts +2 -1
  135. package/dist/runtime/components/Rating.vue +4 -1
  136. package/dist/runtime/components/Rating.vue.d.ts +2 -1
  137. package/dist/runtime/components/ReadMore.d.vue.ts +3 -0
  138. package/dist/runtime/components/ReadMore.vue +24 -6
  139. package/dist/runtime/components/ReadMore.vue.d.ts +3 -0
  140. package/dist/runtime/components/Select.d.vue.ts +21 -57
  141. package/dist/runtime/components/Select.vue +58 -9
  142. package/dist/runtime/components/Select.vue.d.ts +21 -57
  143. package/dist/runtime/components/Separator.d.vue.ts +2 -1
  144. package/dist/runtime/components/Separator.vue +4 -2
  145. package/dist/runtime/components/Separator.vue.d.ts +2 -1
  146. package/dist/runtime/components/Slideover.d.vue.ts +2 -0
  147. package/dist/runtime/components/Slideover.vue +21 -8
  148. package/dist/runtime/components/Slideover.vue.d.ts +2 -0
  149. package/dist/runtime/components/SlideoverRenderer.vue +25 -18
  150. package/dist/runtime/components/Slider.d.vue.ts +2 -1
  151. package/dist/runtime/components/Slider.vue +4 -1
  152. package/dist/runtime/components/Slider.vue.d.ts +2 -1
  153. package/dist/runtime/components/SplitterResizeHandle.d.vue.ts +3 -0
  154. package/dist/runtime/components/SplitterResizeHandle.vue +5 -2
  155. package/dist/runtime/components/SplitterResizeHandle.vue.d.ts +3 -0
  156. package/dist/runtime/components/Stepper.d.vue.ts +2 -1
  157. package/dist/runtime/components/Stepper.vue +4 -1
  158. package/dist/runtime/components/Stepper.vue.d.ts +2 -1
  159. package/dist/runtime/components/Switch.d.vue.ts +2 -1
  160. package/dist/runtime/components/Switch.vue +4 -2
  161. package/dist/runtime/components/Switch.vue.d.ts +2 -1
  162. package/dist/runtime/components/Table.d.vue.ts +28 -80
  163. package/dist/runtime/components/Table.vue +25 -13
  164. package/dist/runtime/components/Table.vue.d.ts +28 -80
  165. package/dist/runtime/components/Tabs.d.vue.ts +3 -0
  166. package/dist/runtime/components/Tabs.vue +5 -1
  167. package/dist/runtime/components/Tabs.vue.d.ts +3 -0
  168. package/dist/runtime/components/Textarea.d.vue.ts +2 -1
  169. package/dist/runtime/components/Textarea.vue +11 -6
  170. package/dist/runtime/components/Textarea.vue.d.ts +2 -1
  171. package/dist/runtime/components/Theme.d.vue.ts +16 -5
  172. package/dist/runtime/components/Theme.vue +30 -5
  173. package/dist/runtime/components/Theme.vue.d.ts +16 -5
  174. package/dist/runtime/components/Toast.vue +11 -39
  175. package/dist/runtime/components/Toggle.d.vue.ts +2 -1
  176. package/dist/runtime/components/Toggle.vue +4 -1
  177. package/dist/runtime/components/Toggle.vue.d.ts +2 -1
  178. package/dist/runtime/components/ToggleGroup.d.vue.ts +2 -1
  179. package/dist/runtime/components/ToggleGroup.vue +4 -1
  180. package/dist/runtime/components/ToggleGroup.vue.d.ts +2 -1
  181. package/dist/runtime/components/Tooltip.vue +3 -2
  182. package/dist/runtime/components/Tree.d.vue.ts +5 -2
  183. package/dist/runtime/components/Tree.vue +5 -1
  184. package/dist/runtime/components/Tree.vue.d.ts +5 -2
  185. package/dist/runtime/composables/use-drawer.d.ts +1 -22
  186. package/dist/runtime/composables/use-drawer.js +12 -18
  187. package/dist/runtime/composables/use-form-field.d.ts +1 -0
  188. package/dist/runtime/composables/use-icons.d.ts +2 -2
  189. package/dist/runtime/composables/use-icons.js +1 -1
  190. package/dist/runtime/composables/use-locale.d.ts +2 -2
  191. package/dist/runtime/composables/use-locale.js +1 -1
  192. package/dist/runtime/composables/use-media-query.d.ts +6 -8
  193. package/dist/runtime/composables/use-media-query.js +7 -2
  194. package/dist/runtime/composables/use-messages.d.ts +2 -2
  195. package/dist/runtime/composables/use-messages.js +1 -1
  196. package/dist/runtime/composables/use-modal.d.ts +1 -17
  197. package/dist/runtime/composables/use-modal.js +12 -18
  198. package/dist/runtime/composables/use-ripple.d.ts +2 -2
  199. package/dist/runtime/composables/use-ripple.js +1 -1
  200. package/dist/runtime/composables/use-slideover.d.ts +1 -19
  201. package/dist/runtime/composables/use-slideover.js +12 -18
  202. package/dist/runtime/composables/use-table.d.ts +74 -17
  203. package/dist/runtime/composables/use-table.js +4 -1
  204. package/dist/runtime/composables/use-toast.d.ts +8 -8
  205. package/dist/runtime/composables/use-toast.js +9 -11
  206. package/dist/runtime/default-color-metadata.d.ts +4 -0
  207. package/dist/runtime/default-color-metadata.js +4 -0
  208. package/dist/runtime/default-colors.css +1 -0
  209. package/dist/runtime/internal/ColorPickerBody.d.vue.ts +1 -0
  210. package/dist/runtime/internal/ColorPickerBody.vue +24 -1
  211. package/dist/runtime/internal/ColorPickerBody.vue.d.ts +1 -0
  212. package/dist/runtime/internal/ComboboxSelectBase.d.vue.ts +50 -46
  213. package/dist/runtime/internal/ComboboxSelectBase.vue +340 -93
  214. package/dist/runtime/internal/ComboboxSelectBase.vue.d.ts +50 -46
  215. package/dist/runtime/internal/ComboboxSelectBody.d.vue.ts +29 -23
  216. package/dist/runtime/internal/ComboboxSelectBody.vue +74 -40
  217. package/dist/runtime/internal/ComboboxSelectBody.vue.d.ts +29 -23
  218. package/dist/runtime/internal/DatePickerCalendarBody.d.vue.ts +3 -5
  219. package/dist/runtime/internal/DatePickerCalendarBody.vue +2 -2
  220. package/dist/runtime/internal/DatePickerCalendarBody.vue.d.ts +3 -5
  221. package/dist/runtime/internal/DatePickerRangeCalendarBody.d.vue.ts +3 -5
  222. package/dist/runtime/internal/DatePickerRangeCalendarBody.vue +1 -1
  223. package/dist/runtime/internal/DatePickerRangeCalendarBody.vue.d.ts +3 -5
  224. package/dist/runtime/internal/DatePickerTimeBody.d.vue.ts +2 -4
  225. package/dist/runtime/internal/DatePickerTimeBody.vue.d.ts +2 -4
  226. package/dist/runtime/internal/ProgrammaticTheme.d.vue.ts +17 -0
  227. package/dist/runtime/internal/ProgrammaticTheme.vue +41 -0
  228. package/dist/runtime/internal/ProgrammaticTheme.vue.d.ts +17 -0
  229. package/dist/runtime/internal/TimeStepper.vue +1 -1
  230. package/dist/runtime/internal/ToastItemRenderer.d.vue.ts +14 -0
  231. package/dist/runtime/internal/ToastItemRenderer.vue +54 -0
  232. package/dist/runtime/internal/ToastItemRenderer.vue.d.ts +14 -0
  233. package/dist/runtime/internal/combobox-select.d.ts +52 -0
  234. package/dist/runtime/{composables/use-combobox-select.js → internal/combobox-select.js} +26 -11
  235. package/dist/runtime/internal/programmatic-services.d.ts +71 -0
  236. package/dist/runtime/internal/programmatic-services.js +61 -0
  237. package/dist/runtime/prose.css +1 -1
  238. package/dist/runtime/structural.css +1 -0
  239. package/dist/runtime/table.d.ts +3 -0
  240. package/dist/runtime/table.js +1 -0
  241. package/dist/runtime/theme/accordion.d.ts +27 -0
  242. package/dist/runtime/theme/accordion.js +15 -6
  243. package/dist/runtime/theme/alert-dialog.js +5 -5
  244. package/dist/runtime/theme/alert.js +6 -15
  245. package/dist/runtime/theme/avatar-group.js +2 -2
  246. package/dist/runtime/theme/avatar.js +12 -18
  247. package/dist/runtime/theme/badge.d.ts +39 -9
  248. package/dist/runtime/theme/badge.js +11 -40
  249. package/dist/runtime/theme/breadcrumb.d.ts +29 -47
  250. package/dist/runtime/theme/breadcrumb.js +16 -5
  251. package/dist/runtime/theme/button.d.ts +45 -15
  252. package/dist/runtime/theme/button.js +10 -57
  253. package/dist/runtime/theme/callout.js +7 -7
  254. package/dist/runtime/theme/card.js +7 -7
  255. package/dist/runtime/theme/checkbox.d.ts +21 -84
  256. package/dist/runtime/theme/checkbox.js +15 -36
  257. package/dist/runtime/theme/chip.js +4 -22
  258. package/dist/runtime/theme/code-button.js +2 -2
  259. package/dist/runtime/theme/code-tree.d.ts +3 -3
  260. package/dist/runtime/theme/code-tree.js +4 -4
  261. package/dist/runtime/theme/collapsible.d.ts +27 -0
  262. package/dist/runtime/theme/collapsible.js +12 -3
  263. package/dist/runtime/theme/color-picker.d.ts +18 -54
  264. package/dist/runtime/theme/color-picker.js +19 -18
  265. package/dist/runtime/theme/command-palette.d.ts +6 -6
  266. package/dist/runtime/theme/command-palette.js +12 -10
  267. package/dist/runtime/theme/content-navigation.d.ts +27 -0
  268. package/dist/runtime/theme/content-navigation.js +14 -5
  269. package/dist/runtime/theme/content-surround.d.ts +27 -0
  270. package/dist/runtime/theme/content-surround.js +13 -4
  271. package/dist/runtime/theme/content-toc.d.ts +27 -0
  272. package/dist/runtime/theme/content-toc.js +14 -5
  273. package/dist/runtime/theme/context-menu.js +7 -7
  274. package/dist/runtime/theme/dashboard-navbar.d.ts +6 -6
  275. package/dist/runtime/theme/dashboard-navbar.js +2 -2
  276. package/dist/runtime/theme/dashboard-resize-handle.js +3 -3
  277. package/dist/runtime/theme/dashboard-sidebar.js +3 -3
  278. package/dist/runtime/theme/date-picker.js +10 -10
  279. package/dist/runtime/theme/drawer.js +9 -9
  280. package/dist/runtime/theme/dropdown.js +7 -7
  281. package/dist/runtime/theme/file-tree.d.ts +27 -0
  282. package/dist/runtime/theme/file-tree.js +12 -3
  283. package/dist/runtime/theme/file-upload.d.ts +18 -72
  284. package/dist/runtime/theme/file-upload.js +20 -19
  285. package/dist/runtime/theme/form-field.js +5 -5
  286. package/dist/runtime/theme/header.d.ts +3 -3
  287. package/dist/runtime/theme/header.js +1 -1
  288. package/dist/runtime/theme/icon.d.ts +30 -57
  289. package/dist/runtime/theme/icon.js +19 -9
  290. package/dist/runtime/theme/input-number.d.ts +21 -63
  291. package/dist/runtime/theme/input-number.js +12 -12
  292. package/dist/runtime/theme/input.d.ts +21 -63
  293. package/dist/runtime/theme/input.js +12 -12
  294. package/dist/runtime/theme/kbd.js +1 -1
  295. package/dist/runtime/theme/modal.js +4 -4
  296. package/dist/runtime/theme/navigation-menu.d.ts +2 -0
  297. package/dist/runtime/theme/navigation-menu.js +17 -28
  298. package/dist/runtime/theme/page-header.js +3 -3
  299. package/dist/runtime/theme/pagination.js +1 -1
  300. package/dist/runtime/theme/pin-input.d.ts +21 -63
  301. package/dist/runtime/theme/pin-input.js +13 -11
  302. package/dist/runtime/theme/popover.js +2 -2
  303. package/dist/runtime/theme/progress.d.ts +21 -84
  304. package/dist/runtime/theme/progress.js +12 -12
  305. package/dist/runtime/theme/prose.d.ts +29 -50
  306. package/dist/runtime/theme/prose.js +22 -11
  307. package/dist/runtime/theme/radio-group.d.ts +21 -84
  308. package/dist/runtime/theme/radio-group.js +16 -22
  309. package/dist/runtime/theme/rating.d.ts +21 -63
  310. package/dist/runtime/theme/rating.js +10 -10
  311. package/dist/runtime/theme/read-more.d.ts +27 -0
  312. package/dist/runtime/theme/read-more.js +13 -4
  313. package/dist/runtime/theme/scroll-area.d.ts +3 -3
  314. package/dist/runtime/theme/scroll-area.js +2 -2
  315. package/dist/runtime/theme/select.d.ts +21 -54
  316. package/dist/runtime/theme/select.js +32 -24
  317. package/dist/runtime/theme/separator.d.ts +18 -54
  318. package/dist/runtime/theme/separator.js +16 -12
  319. package/dist/runtime/theme/skeleton.js +4 -4
  320. package/dist/runtime/theme/slideover.js +5 -5
  321. package/dist/runtime/theme/slider.d.ts +21 -84
  322. package/dist/runtime/theme/slider.js +14 -14
  323. package/dist/runtime/theme/splitter-resize-handle.d.ts +27 -0
  324. package/dist/runtime/theme/splitter-resize-handle.js +11 -1
  325. package/dist/runtime/theme/stepper.d.ts +21 -84
  326. package/dist/runtime/theme/stepper.js +12 -33
  327. package/dist/runtime/theme/switch.d.ts +21 -84
  328. package/dist/runtime/theme/switch.js +13 -13
  329. package/dist/runtime/theme/table.d.ts +27 -0
  330. package/dist/runtime/theme/table.js +31 -21
  331. package/dist/runtime/theme/tabs.d.ts +27 -0
  332. package/dist/runtime/theme/tabs.js +17 -7
  333. package/dist/runtime/theme/textarea.d.ts +21 -63
  334. package/dist/runtime/theme/textarea.js +12 -12
  335. package/dist/runtime/theme/toast.d.ts +12 -48
  336. package/dist/runtime/theme/toast.js +9 -9
  337. package/dist/runtime/theme/toggle-group.js +5 -11
  338. package/dist/runtime/theme/toggle.js +2 -12
  339. package/dist/runtime/theme/tooltip.d.ts +3 -3
  340. package/dist/runtime/theme/tooltip.js +3 -3
  341. package/dist/runtime/theme/tree.d.ts +27 -0
  342. package/dist/runtime/theme/tree.js +13 -3
  343. package/dist/runtime/theme-api.d.ts +15 -0
  344. package/dist/runtime/theme-api.js +12 -0
  345. package/dist/runtime/theme-config.d.ts +470 -0
  346. package/dist/runtime/theme-config.js +0 -0
  347. package/dist/runtime/theme.css +1 -1
  348. package/dist/runtime/types/app-config.d.ts +11 -8
  349. package/dist/runtime/types/index.d.ts +19 -1
  350. package/dist/runtime/utils/app-scoped-state.d.ts +2 -0
  351. package/dist/runtime/utils/app-scoped-state.js +13 -0
  352. package/dist/runtime/utils/autocomplete-contracts.d.ts +24 -0
  353. package/dist/runtime/utils/autocomplete-contracts.js +0 -0
  354. package/dist/runtime/utils/color-registry.d.ts +60 -0
  355. package/dist/runtime/utils/color-registry.js +187 -0
  356. package/dist/runtime/utils/dtcg-colors.d.ts +25 -0
  357. package/dist/runtime/utils/dtcg-colors.js +40 -0
  358. package/dist/runtime/utils/functional-tokens.d.ts +26 -0
  359. package/dist/runtime/utils/functional-tokens.js +54 -0
  360. package/dist/runtime/utils/icons.d.ts +3 -0
  361. package/dist/runtime/utils/icons.js +4 -0
  362. package/dist/runtime/utils/injection-keys.d.ts +12 -3
  363. package/dist/runtime/utils/native-input.d.ts +5 -0
  364. package/dist/runtime/utils/native-input.js +32 -0
  365. package/dist/runtime/utils/programmatic-theme.d.ts +17 -0
  366. package/dist/runtime/utils/programmatic-theme.js +59 -0
  367. package/dist/runtime/utils/registered-colors.d.ts +3 -0
  368. package/dist/runtime/utils/registered-colors.js +14 -0
  369. package/dist/runtime/utils/seed-colors.d.ts +18 -0
  370. package/dist/runtime/utils/seed-colors.js +199 -0
  371. package/dist/runtime/utils/select-contracts.d.ts +101 -0
  372. package/dist/runtime/utils/select-contracts.js +0 -0
  373. package/dist/runtime/utils/table-contracts.d.ts +60 -0
  374. package/dist/runtime/utils/table-contracts.js +0 -0
  375. package/dist/runtime/utils/ui.d.ts +26 -4
  376. package/dist/runtime/utils/ui.js +38 -5
  377. package/dist/tokens/default-colors.tokens.json +879 -0
  378. package/package.json +66 -10
  379. package/dist/runtime/composables/use-combobox-select.d.ts +0 -45
@@ -1,27 +1,34 @@
1
1
  <script setup>
2
- import { useSlideover } from "../composables/use-slideover";
2
+ import { onUnmounted } from "vue";
3
+ import { useSlideoverService } from "../internal/programmatic-services";
4
+ import ProgrammaticTheme from "../internal/ProgrammaticTheme.vue";
3
5
  import Slideover from "./Slideover.vue";
4
- const { slideovers, close, remove } = useSlideover();
6
+ const { instances: slideovers, close, remove, dispose } = useSlideoverService();
7
+ onUnmounted(dispose);
5
8
  </script>
6
9
 
7
10
  <template>
8
- <Slideover
11
+ <ProgrammaticTheme
9
12
  v-for="instance in slideovers"
10
13
  :key="instance.id"
11
- :open="instance.isOpen"
12
- :title="instance.title"
13
- :description="instance.description"
14
- :side="instance.side"
15
- :inset="instance.inset"
16
- :dismissible="instance.dismissible"
17
- :modal="instance.modal"
18
- :overlay="instance.overlay"
19
- :transition="instance.transition"
20
- @update:open="(open) => !open && close(instance.id)"
21
- @after-leave="remove(instance.id)"
14
+ :snapshot="instance._theme"
22
15
  >
23
- <template #content>
24
- <component :is="instance.component" v-bind="instance.props" @close="(value) => close(instance.id, value)" />
25
- </template>
26
- </Slideover>
16
+ <Slideover
17
+ :open="instance.isOpen"
18
+ :title="instance.title"
19
+ :description="instance.description"
20
+ :side="instance.side"
21
+ :inset="instance.inset"
22
+ :dismissible="instance.dismissible"
23
+ :modal="instance.modal"
24
+ :overlay="instance.overlay"
25
+ :transition="instance.transition"
26
+ @update:open="(open) => !open && close(instance.id)"
27
+ @after-leave="remove(instance.id)"
28
+ >
29
+ <template #content>
30
+ <component :is="instance.component" v-bind="instance.props" @close="(value) => close(instance.id, value)" />
31
+ </template>
32
+ </Slideover>
33
+ </ProgrammaticTheme>
27
34
  </template>
@@ -1,5 +1,6 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { SliderThemeSlots } from '../theme/slider.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { sliderTheme } from '../theme/slider.js';
5
6
  type SliderVariants = VariantProps<typeof sliderTheme>;
@@ -19,7 +20,7 @@ export interface SliderProps {
19
20
  /** Shows a tick mark at every step along the track - own addition, Reka's primitive has no tick/mark concept of its own. */
20
21
  showTicks?: boolean;
21
22
  size?: SliderVariants['size'];
22
- color?: SliderVariants['color'];
23
+ color?: ColorRole;
23
24
  /** @default 'circle' */
24
25
  thumbVariant?: SliderVariants['thumbVariant'];
25
26
  /** Shows the current value in a tooltip on hover/focus of each thumb - reuses Tooltip, not a bespoke floating label. */
@@ -4,6 +4,7 @@ import { computed, ref, watch } from "vue";
4
4
  import { useIcons } from "../composables/use-icons";
5
5
  import { useMessages } from "../composables/use-messages";
6
6
  import { sliderTheme } from "../theme/slider";
7
+ import { resolveRegisteredColorRole } from "../utils/registered-colors";
7
8
  import { resolveSlot, useComponentTheme, useRootProps } from "../utils/ui";
8
9
  import Button from "./Button.vue";
9
10
  import Tooltip from "./Tooltip.vue";
@@ -83,9 +84,10 @@ const ticks = computed(() => {
83
84
  });
84
85
  });
85
86
  const theme = useComponentTheme("slider", sliderTheme);
87
+ const effectiveColor = computed(() => resolveRegisteredColorRole(props.color ?? "primary", "primary"));
86
88
  const ui = computed(() => theme.value({
87
89
  size: props.size,
88
- color: props.color,
90
+ color: effectiveColor.value,
89
91
  orientation: props.orientation,
90
92
  thumbVariant: props.thumbVariant
91
93
  }));
@@ -109,6 +111,7 @@ const endProps = computed(() => resolveSlot(ui.value.end, props.ui?.end));
109
111
  :orientation="orientation"
110
112
  :inverted="inverted"
111
113
  :name="name"
114
+ :data-selaras-color="effectiveColor"
112
115
  v-bind="rootProps"
113
116
  @update:model-value="onUpdateModelValue"
114
117
  @value-commit="onValueCommit"
@@ -1,5 +1,6 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { SliderThemeSlots } from '../theme/slider.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { sliderTheme } from '../theme/slider.js';
5
6
  type SliderVariants = VariantProps<typeof sliderTheme>;
@@ -19,7 +20,7 @@ export interface SliderProps {
19
20
  /** Shows a tick mark at every step along the track - own addition, Reka's primitive has no tick/mark concept of its own. */
20
21
  showTicks?: boolean;
21
22
  size?: SliderVariants['size'];
22
- color?: SliderVariants['color'];
23
+ color?: ColorRole;
23
24
  /** @default 'circle' */
24
25
  thumbVariant?: SliderVariants['thumbVariant'];
25
26
  /** Shows the current value in a tooltip on hover/focus of each thumb - reuses Tooltip, not a bespoke floating label. */
@@ -1,11 +1,14 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { SplitterResizeHandleThemeSlots } from '../theme/splitter-resize-handle.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { splitterResizeHandleTheme } from '../theme/splitter-resize-handle.js';
5
6
  type SplitterResizeHandleVariants = VariantProps<typeof splitterResizeHandleTheme>;
6
7
  export interface SplitterResizeHandleProps {
7
8
  /** Match the parent Splitter's own `direction` - this isn't read from it automatically. @default 'horizontal' */
8
9
  direction?: SplitterResizeHandleVariants['direction'];
10
+ /** The hover and drag accent. @default 'primary' */
11
+ color?: ColorRole;
9
12
  disabled?: boolean;
10
13
  ui?: UiProp<SplitterResizeHandleThemeSlots>;
11
14
  }
@@ -2,21 +2,24 @@
2
2
  import { SplitterResizeHandle as RekaSplitterResizeHandle } from "reka-ui";
3
3
  import { computed } from "vue";
4
4
  import { splitterResizeHandleTheme } from "../theme/splitter-resize-handle";
5
+ import { resolveRegisteredColorRole } from "../utils/registered-colors";
5
6
  import { resolveSlot, useComponentTheme, useRootProps } from "../utils/ui";
6
7
  defineOptions({ inheritAttrs: false });
7
8
  const props = defineProps({
8
9
  direction: { type: null, required: false, default: "horizontal" },
10
+ color: { type: null, required: false },
9
11
  disabled: { type: Boolean, required: false },
10
12
  ui: { type: Object, required: false }
11
13
  });
12
14
  const theme = useComponentTheme("splitterResizeHandle", splitterResizeHandleTheme);
13
- const ui = computed(() => theme.value({ direction: props.direction }));
15
+ const effectiveColor = computed(() => resolveRegisteredColorRole(props.color ?? "primary", "primary"));
16
+ const ui = computed(() => theme.value({ direction: props.direction, color: effectiveColor.value }));
14
17
  const rootProps = useRootProps(() => ui.value.root, () => props.ui?.root);
15
18
  const lineProps = computed(() => resolveSlot(ui.value.line, props.ui?.line));
16
19
  </script>
17
20
 
18
21
  <template>
19
- <RekaSplitterResizeHandle :disabled="disabled" v-bind="rootProps">
22
+ <RekaSplitterResizeHandle :disabled="disabled" :data-selaras-color="effectiveColor" v-bind="rootProps">
20
23
  <div v-bind="lineProps" />
21
24
  </RekaSplitterResizeHandle>
22
25
  </template>
@@ -1,11 +1,14 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { SplitterResizeHandleThemeSlots } from '../theme/splitter-resize-handle.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { splitterResizeHandleTheme } from '../theme/splitter-resize-handle.js';
5
6
  type SplitterResizeHandleVariants = VariantProps<typeof splitterResizeHandleTheme>;
6
7
  export interface SplitterResizeHandleProps {
7
8
  /** Match the parent Splitter's own `direction` - this isn't read from it automatically. @default 'horizontal' */
8
9
  direction?: SplitterResizeHandleVariants['direction'];
10
+ /** The hover and drag accent. @default 'primary' */
11
+ color?: ColorRole;
9
12
  disabled?: boolean;
10
13
  ui?: UiProp<SplitterResizeHandleThemeSlots>;
11
14
  }
@@ -1,5 +1,6 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { StepperThemeSlots } from '../theme/stepper.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { stepperTheme } from '../theme/stepper.js';
5
6
  type StepperVariants = VariantProps<typeof stepperTheme>;
@@ -19,7 +20,7 @@ export interface StepperProps {
19
20
  linear?: boolean;
20
21
  orientation?: StepperVariants['orientation'];
21
22
  size?: StepperVariants['size'];
22
- color?: StepperVariants['color'];
23
+ color?: ColorRole;
23
24
  ui?: UiProp<StepperThemeSlots>;
24
25
  }
25
26
  export interface StepperEmits {
@@ -3,6 +3,7 @@ import { StepperDescription, StepperIndicator, StepperItem, StepperRoot, Stepper
3
3
  import { computed } from "vue";
4
4
  import { useIcons } from "../composables/use-icons";
5
5
  import { stepperTheme } from "../theme/stepper";
6
+ import { resolveRegisteredColorRole } from "../utils/registered-colors";
6
7
  import { resolveSlot, useComponentTheme, useRootProps } from "../utils/ui";
7
8
  import Icon from "./Icon.vue";
8
9
  defineOptions({ inheritAttrs: false });
@@ -20,10 +21,11 @@ const emit = defineEmits(["update:modelValue"]);
20
21
  defineSlots();
21
22
  const icons = useIcons();
22
23
  const theme = useComponentTheme("stepper", stepperTheme);
24
+ const effectiveColor = computed(() => resolveRegisteredColorRole(props.color ?? "primary", "primary"));
23
25
  const ui = computed(() => theme.value({
24
26
  orientation: props.orientation,
25
27
  size: props.size,
26
- color: props.color
28
+ color: effectiveColor.value
27
29
  }));
28
30
  const rootProps = useRootProps(() => ui.value.root, () => props.ui?.root);
29
31
  const itemProps = computed(() => resolveSlot(ui.value.item, props.ui?.item));
@@ -43,6 +45,7 @@ const separatorProps = computed(() => resolveSlot(ui.value.separator, props.ui?.
43
45
  :default-value="defaultValue"
44
46
  :linear="linear"
45
47
  :orientation="orientation"
48
+ :data-selaras-color="effectiveColor"
46
49
  v-bind="rootProps"
47
50
  @update:model-value="(value) => emit('update:modelValue', value)"
48
51
  >
@@ -1,5 +1,6 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { StepperThemeSlots } from '../theme/stepper.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { stepperTheme } from '../theme/stepper.js';
5
6
  type StepperVariants = VariantProps<typeof stepperTheme>;
@@ -19,7 +20,7 @@ export interface StepperProps {
19
20
  linear?: boolean;
20
21
  orientation?: StepperVariants['orientation'];
21
22
  size?: StepperVariants['size'];
22
- color?: StepperVariants['color'];
23
+ color?: ColorRole;
23
24
  ui?: UiProp<StepperThemeSlots>;
24
25
  }
25
26
  export interface StepperEmits {
@@ -1,5 +1,6 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { SwitchThemeSlots } from '../theme/switch.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { switchTheme } from '../theme/switch.js';
5
6
  type SwitchVariants = VariantProps<typeof switchTheme>;
@@ -14,7 +15,7 @@ export interface SwitchProps {
14
15
  invalid?: boolean;
15
16
  required?: boolean;
16
17
  size?: SwitchVariants['size'];
17
- color?: SwitchVariants['color'];
18
+ color?: ColorRole;
18
19
  /** Shows a spinner in the thumb. Doesn't imply `disabled` - combine `:loading="x" :disabled="x"` if a busy switch shouldn't be touchable. Takes precedence over checkedIcon/uncheckedIcon. */
19
20
  loading?: boolean;
20
21
  /** Icon shown in the thumb when on. */
@@ -4,6 +4,7 @@ import { computed } from "vue";
4
4
  import { useFormField } from "../composables/use-form-field";
5
5
  import { useIcons } from "../composables/use-icons";
6
6
  import { switchTheme } from "../theme/switch";
7
+ import { resolveRegisteredColorRole } from "../utils/registered-colors";
7
8
  import { applyClassPrefix, resolveSlot, useComponentTheme, useRootProps, withFallthroughClass } from "../utils/ui";
8
9
  import Icon from "./Icon.vue";
9
10
  defineOptions({ inheritAttrs: false });
@@ -30,7 +31,8 @@ const switchInvalid = computed(() => props.invalid || (field?.invalid.value ?? f
30
31
  const effectiveSize = computed(() => props.size ?? field?.size ?? "md");
31
32
  const describedBy = computed(() => field?.describedBy.value);
32
33
  const theme = useComponentTheme("switch", switchTheme);
33
- const ui = computed(() => theme.value({ invalid: switchInvalid.value, size: effectiveSize.value, color: props.color }));
34
+ const effectiveColor = computed(() => resolveRegisteredColorRole(props.color ?? "primary", "primary"));
35
+ const ui = computed(() => theme.value({ invalid: switchInvalid.value, size: effectiveSize.value, color: effectiveColor.value }));
34
36
  const rootProps = useRootProps(() => ui.value.root, () => withFallthroughClass(props.description ? "items-start" : void 0, props.ui?.root));
35
37
  const trackProps = computed(() => resolveSlot(ui.value.track, withFallthroughClass(props.description ? "mt-0.5" : void 0, props.ui?.track)));
36
38
  const thumbProps = computed(() => resolveSlot(ui.value.thumb, props.ui?.thumb));
@@ -42,7 +44,7 @@ const icons = useIcons();
42
44
  </script>
43
45
 
44
46
  <template>
45
- <label v-bind="rootProps">
47
+ <label :data-selaras-color="switchInvalid ? 'danger' : effectiveColor" v-bind="rootProps">
46
48
  <SwitchRoot
47
49
  :id="switchId"
48
50
  :model-value="modelValue"
@@ -1,5 +1,6 @@
1
1
  import type { VariantProps } from 'tailwind-variants';
2
2
  import type { SwitchThemeSlots } from '../theme/switch.js';
3
+ import type { ColorRole } from '../utils/color-registry.js';
3
4
  import type { UiProp } from '../utils/ui.js';
4
5
  import { switchTheme } from '../theme/switch.js';
5
6
  type SwitchVariants = VariantProps<typeof switchTheme>;
@@ -14,7 +15,7 @@ export interface SwitchProps {
14
15
  invalid?: boolean;
15
16
  required?: boolean;
16
17
  size?: SwitchVariants['size'];
17
- color?: SwitchVariants['color'];
18
+ color?: ColorRole;
18
19
  /** Shows a spinner in the thumb. Doesn't imply `disabled` - combine `:loading="x" :disabled="x"` if a busy switch shouldn't be touchable. Takes precedence over checkedIcon/uncheckedIcon. */
19
20
  loading?: boolean;
20
21
  /** Icon shown in the thumb when on. */
@@ -1,83 +1,31 @@
1
- import type { TableThemeSlots } from '../theme/table.js';
2
- import type { UiProp } from '../utils/ui.js';
3
- export interface TableProps {
4
- data: unknown[];
5
- columns?: any[];
6
- selectable?: boolean;
7
- pageSize?: number;
8
- loading?: boolean;
9
- sorting?: any[];
10
- defaultSorting?: any[];
11
- rowSelection?: Record<string, boolean>;
12
- globalFilter?: string;
13
- pageIndex?: number;
14
- size?: 'sm' | 'md' | 'lg';
15
- gridlines?: boolean;
16
- striped?: boolean;
17
- expandable?: boolean;
18
- expanded?: any;
19
- columnVisibility?: Record<string, boolean>;
20
- columnToggle?: boolean;
21
- /** Enables vertical scroll with a sticky header, capped at this CSS height (e.g. '24rem'). */
22
- scrollHeight?: string;
23
- virtualize?: boolean | {
24
- estimateSize?: number;
25
- overscan?: number;
26
- };
27
- /** Opts out of the local sorted/filtered/paginated row models - set when `data` is already sorted/filtered/paginated server-side, so this table doesn't redundantly (and incorrectly) reprocess an already-server-processed slice. `sorting`/`globalFilter`/`pageIndex` still drive the UI and still emit their `update:*` events the same way - only the *local row model* is skipped, not the state itself. `manualPagination` also suppresses the built-in Pagination UI entirely (there's no way to know the real page count from a server-paginated slice) - bring your own `SPagination`, bound to your own server metadata, the same way this table already expects you to bring your own search input for `globalFilter`. */
28
- manualSorting?: boolean;
29
- manualFiltering?: boolean;
30
- manualPagination?: boolean;
31
- /** Adds a class to a body row based on its own data - e.g. highlighting a flagged row. Called per row, not per render, so keep it cheap. */
32
- rowClass?: (row: unknown) => string | undefined;
33
- /** Same as `rowClass`, for inline styles. */
34
- rowStyle?: (row: unknown) => Record<string, string> | undefined;
35
- ui?: UiProp<TableThemeSlots>;
36
- }
37
- export interface TableEmits {
38
- 'update:sorting': [value: any[]];
39
- 'update:rowSelection': [value: Record<string, boolean>];
40
- 'update:globalFilter': [value: string];
41
- 'update:pageIndex': [value: number];
42
- 'update:expanded': [value: any];
43
- 'update:columnVisibility': [value: Record<string, boolean>];
44
- 'rowClick': [row: unknown, event: MouseEvent];
45
- 'rowContextmenu': [row: unknown, event: MouseEvent];
46
- }
47
- declare var __VLS_44: {
48
- row: import("@tanstack/vue-table").RowData;
49
- }, __VLS_51: {};
50
- type __VLS_Slots = {} & {
51
- expanded?: (props: typeof __VLS_44) => any;
52
- } & {
53
- empty?: (props: typeof __VLS_51) => any;
1
+ import type { RowData } from '@tanstack/vue-table';
2
+ import type { TableProps, TableSlots } from '../utils/table-contracts.js';
3
+ declare const __VLS_export: <TData extends RowData = RowData>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<TableProps<TData> & {
5
+ "onUpdate:sorting"?: ((value: import("@tanstack/vue-table").SortingState) => any) | undefined;
6
+ "onUpdate:rowSelection"?: ((value: import("@tanstack/vue-table").RowSelectionState) => any) | undefined;
7
+ "onUpdate:globalFilter"?: ((value: string) => any) | undefined;
8
+ "onUpdate:pageIndex"?: ((value: number) => any) | undefined;
9
+ "onUpdate:expanded"?: ((value: import("@tanstack/vue-table").ExpandedState) => any) | undefined;
10
+ "onUpdate:columnVisibility"?: ((value: import("@tanstack/vue-table").ColumnVisibilityState) => any) | undefined;
11
+ onRowClick?: ((row: TData, event: MouseEvent) => any) | undefined;
12
+ onRowContextmenu?: ((row: TData, event: MouseEvent) => any) | undefined;
13
+ }> & (typeof globalThis extends {
14
+ __VLS_PROPS_FALLBACK: infer P;
15
+ } ? P : {});
16
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
17
+ exportCsv: (filename?: string) => void;
18
+ }>) => void;
19
+ attrs: any;
20
+ slots: TableSlots<TData>;
21
+ emit: ((evt: "update:sorting", value: import("@tanstack/vue-table").SortingState) => void) & ((evt: "update:rowSelection", value: import("@tanstack/vue-table").RowSelectionState) => void) & ((evt: "update:globalFilter", value: string) => void) & ((evt: "update:pageIndex", value: number) => void) & ((evt: "update:expanded", value: import("@tanstack/vue-table").ExpandedState) => void) & ((evt: "update:columnVisibility", value: import("@tanstack/vue-table").ColumnVisibilityState) => void) & ((evt: "rowClick", row: TData, event: MouseEvent) => void) & ((evt: "rowContextmenu", row: TData, event: MouseEvent) => void);
22
+ }>) => import("vue").VNode & {
23
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
54
24
  };
55
- declare const __VLS_base: import("vue").DefineComponent<TableProps, {
56
- exportCsv: (filename?: string) => void;
57
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
58
- "update:sorting": (value: any[]) => any;
59
- "update:rowSelection": (value: Record<string, boolean>) => any;
60
- "update:globalFilter": (value: string) => any;
61
- "update:pageIndex": (value: number) => any;
62
- "update:expanded": (value: any) => any;
63
- "update:columnVisibility": (value: Record<string, boolean>) => any;
64
- rowClick: (row: unknown, event: MouseEvent) => any;
65
- rowContextmenu: (row: unknown, event: MouseEvent) => any;
66
- }, string, import("vue").PublicProps, Readonly<TableProps> & Readonly<{
67
- "onUpdate:sorting"?: ((value: any[]) => any) | undefined;
68
- "onUpdate:rowSelection"?: ((value: Record<string, boolean>) => any) | undefined;
69
- "onUpdate:globalFilter"?: ((value: string) => any) | undefined;
70
- "onUpdate:pageIndex"?: ((value: number) => any) | undefined;
71
- "onUpdate:expanded"?: ((value: any) => any) | undefined;
72
- "onUpdate:columnVisibility"?: ((value: Record<string, boolean>) => any) | undefined;
73
- onRowClick?: ((row: unknown, event: MouseEvent) => any) | undefined;
74
- onRowContextmenu?: ((row: unknown, event: MouseEvent) => any) | undefined;
75
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
76
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
77
25
  declare const _default: typeof __VLS_export;
78
26
  export default _default;
79
- type __VLS_WithSlots<T, S> = T & {
80
- new (): {
81
- $slots: S;
82
- };
83
- };
27
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
28
+ [K in keyof T]: T[K];
29
+ } : {
30
+ [K in keyof T as K]: T[K];
31
+ }) & {};
@@ -1,11 +1,12 @@
1
1
  <script setup>
2
2
  import { FlexRender } from "@tanstack/vue-table";
3
3
  import { useVirtualizer } from "@tanstack/vue-virtual";
4
- import { computed, getCurrentInstance, h, nextTick, onMounted, onUnmounted, ref, useSlots, watch, watchEffect } from "vue";
4
+ import { computed, getCurrentInstance, h, nextTick, onMounted, onUnmounted, ref, watch, watchEffect } from "vue";
5
5
  import { useIcons } from "../composables/use-icons";
6
6
  import { useMessages } from "../composables/use-messages";
7
7
  import { useTable } from "../composables/use-table";
8
8
  import { tableTheme } from "../theme/table";
9
+ import { resolveRegisteredColorRole } from "../utils/registered-colors";
9
10
  import { collectColumnPinning, convertChildrenToColumns } from "../utils/table-columns";
10
11
  import { exportTableToCsv } from "../utils/table-export";
11
12
  import { applyClassPrefix, resolveSlot, useComponentTheme, useRootProps, withFallthroughClass } from "../utils/ui";
@@ -21,33 +22,42 @@ const props = defineProps({
21
22
  selectable: { type: Boolean, required: false },
22
23
  pageSize: { type: Number, required: false },
23
24
  loading: { type: Boolean, required: false },
24
- sorting: { type: Array, required: false },
25
- defaultSorting: { type: Array, required: false },
26
- rowSelection: { type: Object, required: false },
25
+ sorting: { type: null, required: false },
26
+ defaultSorting: { type: null, required: false },
27
+ rowSelection: { type: null, required: false },
27
28
  globalFilter: { type: String, required: false },
28
29
  pageIndex: { type: Number, required: false },
29
30
  size: { type: String, required: false, default: "md" },
31
+ color: { type: null, required: false },
30
32
  gridlines: { type: Boolean, required: false },
31
33
  striped: { type: Boolean, required: false },
32
34
  expandable: { type: Boolean, required: false },
33
35
  expanded: { type: null, required: false },
34
- columnVisibility: { type: Object, required: false },
36
+ columnVisibility: { type: null, required: false },
35
37
  columnToggle: { type: Boolean, required: false },
36
38
  scrollHeight: { type: String, required: false },
37
39
  virtualize: { type: [Boolean, Object], required: false },
38
40
  manualSorting: { type: Boolean, required: false },
39
41
  manualFiltering: { type: Boolean, required: false },
40
42
  manualPagination: { type: Boolean, required: false },
43
+ getRowId: { type: Function, required: false },
41
44
  rowClass: { type: Function, required: false },
42
45
  rowStyle: { type: Function, required: false },
43
46
  ui: { type: Object, required: false }
44
47
  });
45
48
  const emit = defineEmits(["update:sorting", "update:rowSelection", "update:globalFilter", "update:pageIndex", "update:expanded", "update:columnVisibility", "rowClick", "rowContextmenu"]);
46
- const slots = useSlots();
49
+ const slots = defineSlots();
47
50
  const icons = useIcons();
48
51
  const messages = useMessages();
49
52
  const theme = useComponentTheme("table", tableTheme);
50
- const ui = computed(() => theme.value({ size: props.size, gridlines: props.gridlines, striped: props.striped, scrollable: !!props.scrollHeight }));
53
+ const effectiveColor = computed(() => resolveRegisteredColorRole(props.color ?? "primary", "primary"));
54
+ const ui = computed(() => theme.value({
55
+ size: props.size,
56
+ color: effectiveColor.value,
57
+ gridlines: props.gridlines,
58
+ striped: props.striped,
59
+ scrollable: !!props.scrollHeight
60
+ }));
51
61
  const selectColumn = {
52
62
  id: "__select__",
53
63
  header: ({ table: table2 }) => h(Checkbox, {
@@ -64,13 +74,15 @@ const selectColumn = {
64
74
  };
65
75
  const expandColumn = {
66
76
  id: "__expand__",
67
- header: "",
77
+ // An empty-string component root has no SSR text node to hydrate. Render
78
+ // no content explicitly so Vue preserves a stable comment anchor instead.
79
+ header: () => null,
68
80
  cell: ({ row }) => h("button", {
69
81
  "type": "button",
70
- "class": ui.value.expandButton(),
82
+ ...resolveSlot(ui.value.expandButton, props.ui?.expandButton),
71
83
  "aria-label": row.getIsExpanded() ? messages.value.collapseRow : messages.value.expandRow,
72
84
  "onClick": () => row.toggleExpanded()
73
- }, [h(Icon, { "name": icons.value.chevronRight, "class": ui.value.expandChevron(), "data-expanded": row.getIsExpanded() || void 0 })]),
85
+ }, [h(Icon, { "name": icons.value.chevronRight, ...resolveSlot(ui.value.expandChevron, props.ui?.expandChevron), "data-expanded": row.getIsExpanded() || void 0 })]),
74
86
  enableSorting: false,
75
87
  enableColumnFilter: false
76
88
  };
@@ -87,7 +99,7 @@ if (import.meta.dev) {
87
99
  if (!firstRow)
88
100
  return;
89
101
  for (const column of columns.value) {
90
- if (column.accessorKey && !(column.accessorKey in firstRow))
102
+ if ("accessorKey" in column && typeof column.accessorKey === "string" && !(column.accessorKey in firstRow))
91
103
  console.warn(`[SColumn] field "${column.accessorKey}" was not found on the first row of data.`);
92
104
  }
93
105
  });
@@ -117,7 +129,7 @@ function onRowContextmenu(rowOriginal, event) {
117
129
  emit("rowContextmenu", rowOriginal, event);
118
130
  }
119
131
  const thProps = computed(() => resolveSlot(ui.value.th, props.ui?.th));
120
- const thSortableClass = computed(() => ui.value.thSortable());
132
+ const thSortableClass = computed(() => resolveSlot(ui.value.thSortable, props.ui?.thSortable).class);
121
133
  const sortIconProps = computed(() => resolveSlot(ui.value.sortIcon, props.ui?.sortIcon));
122
134
  const tdProps = computed(() => resolveSlot(ui.value.td, props.ui?.td));
123
135
  const tfootProps = computed(() => resolveSlot(ui.value.tfoot, props.ui?.tfoot));
@@ -207,7 +219,7 @@ defineExpose({
207
219
  </script>
208
220
 
209
221
  <template>
210
- <div v-bind="rootProps">
222
+ <div :data-selaras-color="effectiveColor" v-bind="rootProps">
211
223
  <div v-if="columnToggle" :class="applyClassPrefix('mb-2 flex justify-end')">
212
224
  <div data-column-toggle v-bind="columnToggleProps">
213
225
  <Button variant="outline" size="sm" :icon="icons.columns" @click="showColumnTogglePanel = !showColumnTogglePanel">