@sewadah/selaras 0.1.1 → 0.3.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 (385) hide show
  1. package/README.md +67 -20
  2. package/dist/module.d.mts +10 -0
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +123 -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 +22 -12
  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 +8 -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/ProsePre.d.vue.ts +4 -2
  132. package/dist/runtime/components/ProsePre.vue +9 -3
  133. package/dist/runtime/components/ProsePre.vue.d.ts +4 -2
  134. package/dist/runtime/components/RadioGroup.d.vue.ts +2 -1
  135. package/dist/runtime/components/RadioGroup.vue +9 -5
  136. package/dist/runtime/components/RadioGroup.vue.d.ts +2 -1
  137. package/dist/runtime/components/Rating.d.vue.ts +2 -1
  138. package/dist/runtime/components/Rating.vue +4 -1
  139. package/dist/runtime/components/Rating.vue.d.ts +2 -1
  140. package/dist/runtime/components/ReadMore.d.vue.ts +3 -0
  141. package/dist/runtime/components/ReadMore.vue +24 -6
  142. package/dist/runtime/components/ReadMore.vue.d.ts +3 -0
  143. package/dist/runtime/components/Select.d.vue.ts +21 -57
  144. package/dist/runtime/components/Select.vue +58 -9
  145. package/dist/runtime/components/Select.vue.d.ts +21 -57
  146. package/dist/runtime/components/Separator.d.vue.ts +2 -1
  147. package/dist/runtime/components/Separator.vue +4 -2
  148. package/dist/runtime/components/Separator.vue.d.ts +2 -1
  149. package/dist/runtime/components/Slideover.d.vue.ts +2 -0
  150. package/dist/runtime/components/Slideover.vue +21 -8
  151. package/dist/runtime/components/Slideover.vue.d.ts +2 -0
  152. package/dist/runtime/components/SlideoverRenderer.vue +25 -18
  153. package/dist/runtime/components/Slider.d.vue.ts +2 -1
  154. package/dist/runtime/components/Slider.vue +4 -1
  155. package/dist/runtime/components/Slider.vue.d.ts +2 -1
  156. package/dist/runtime/components/SplitterResizeHandle.d.vue.ts +3 -0
  157. package/dist/runtime/components/SplitterResizeHandle.vue +5 -2
  158. package/dist/runtime/components/SplitterResizeHandle.vue.d.ts +3 -0
  159. package/dist/runtime/components/Stepper.d.vue.ts +2 -1
  160. package/dist/runtime/components/Stepper.vue +4 -1
  161. package/dist/runtime/components/Stepper.vue.d.ts +2 -1
  162. package/dist/runtime/components/Switch.d.vue.ts +2 -1
  163. package/dist/runtime/components/Switch.vue +4 -2
  164. package/dist/runtime/components/Switch.vue.d.ts +2 -1
  165. package/dist/runtime/components/Table.d.vue.ts +28 -80
  166. package/dist/runtime/components/Table.vue +25 -13
  167. package/dist/runtime/components/Table.vue.d.ts +28 -80
  168. package/dist/runtime/components/Tabs.d.vue.ts +3 -0
  169. package/dist/runtime/components/Tabs.vue +5 -1
  170. package/dist/runtime/components/Tabs.vue.d.ts +3 -0
  171. package/dist/runtime/components/Textarea.d.vue.ts +2 -1
  172. package/dist/runtime/components/Textarea.vue +11 -6
  173. package/dist/runtime/components/Textarea.vue.d.ts +2 -1
  174. package/dist/runtime/components/Theme.d.vue.ts +16 -5
  175. package/dist/runtime/components/Theme.vue +30 -5
  176. package/dist/runtime/components/Theme.vue.d.ts +16 -5
  177. package/dist/runtime/components/Toast.vue +11 -39
  178. package/dist/runtime/components/Toggle.d.vue.ts +2 -1
  179. package/dist/runtime/components/Toggle.vue +4 -1
  180. package/dist/runtime/components/Toggle.vue.d.ts +2 -1
  181. package/dist/runtime/components/ToggleGroup.d.vue.ts +2 -1
  182. package/dist/runtime/components/ToggleGroup.vue +4 -1
  183. package/dist/runtime/components/ToggleGroup.vue.d.ts +2 -1
  184. package/dist/runtime/components/Tooltip.vue +3 -2
  185. package/dist/runtime/components/Tree.d.vue.ts +5 -2
  186. package/dist/runtime/components/Tree.vue +5 -1
  187. package/dist/runtime/components/Tree.vue.d.ts +5 -2
  188. package/dist/runtime/composables/use-drawer.d.ts +1 -22
  189. package/dist/runtime/composables/use-drawer.js +12 -18
  190. package/dist/runtime/composables/use-form-field.d.ts +1 -0
  191. package/dist/runtime/composables/use-icons.d.ts +2 -2
  192. package/dist/runtime/composables/use-icons.js +1 -1
  193. package/dist/runtime/composables/use-locale.d.ts +2 -2
  194. package/dist/runtime/composables/use-locale.js +1 -1
  195. package/dist/runtime/composables/use-media-query.d.ts +6 -8
  196. package/dist/runtime/composables/use-media-query.js +7 -2
  197. package/dist/runtime/composables/use-messages.d.ts +2 -2
  198. package/dist/runtime/composables/use-messages.js +1 -1
  199. package/dist/runtime/composables/use-modal.d.ts +1 -17
  200. package/dist/runtime/composables/use-modal.js +12 -18
  201. package/dist/runtime/composables/use-ripple.d.ts +2 -2
  202. package/dist/runtime/composables/use-ripple.js +1 -1
  203. package/dist/runtime/composables/use-slideover.d.ts +1 -19
  204. package/dist/runtime/composables/use-slideover.js +12 -18
  205. package/dist/runtime/composables/use-table.d.ts +74 -17
  206. package/dist/runtime/composables/use-table.js +4 -1
  207. package/dist/runtime/composables/use-toast.d.ts +8 -8
  208. package/dist/runtime/composables/use-toast.js +9 -11
  209. package/dist/runtime/default-color-metadata.d.ts +4 -0
  210. package/dist/runtime/default-color-metadata.js +4 -0
  211. package/dist/runtime/default-colors.css +1 -0
  212. package/dist/runtime/internal/ColorPickerBody.d.vue.ts +1 -0
  213. package/dist/runtime/internal/ColorPickerBody.vue +24 -1
  214. package/dist/runtime/internal/ColorPickerBody.vue.d.ts +1 -0
  215. package/dist/runtime/internal/ComboboxSelectBase.d.vue.ts +50 -46
  216. package/dist/runtime/internal/ComboboxSelectBase.vue +340 -93
  217. package/dist/runtime/internal/ComboboxSelectBase.vue.d.ts +50 -46
  218. package/dist/runtime/internal/ComboboxSelectBody.d.vue.ts +29 -23
  219. package/dist/runtime/internal/ComboboxSelectBody.vue +74 -40
  220. package/dist/runtime/internal/ComboboxSelectBody.vue.d.ts +29 -23
  221. package/dist/runtime/internal/DatePickerCalendarBody.d.vue.ts +3 -5
  222. package/dist/runtime/internal/DatePickerCalendarBody.vue +2 -2
  223. package/dist/runtime/internal/DatePickerCalendarBody.vue.d.ts +3 -5
  224. package/dist/runtime/internal/DatePickerRangeCalendarBody.d.vue.ts +3 -5
  225. package/dist/runtime/internal/DatePickerRangeCalendarBody.vue +1 -1
  226. package/dist/runtime/internal/DatePickerRangeCalendarBody.vue.d.ts +3 -5
  227. package/dist/runtime/internal/DatePickerTimeBody.d.vue.ts +2 -4
  228. package/dist/runtime/internal/DatePickerTimeBody.vue.d.ts +2 -4
  229. package/dist/runtime/internal/ProgrammaticTheme.d.vue.ts +17 -0
  230. package/dist/runtime/internal/ProgrammaticTheme.vue +41 -0
  231. package/dist/runtime/internal/ProgrammaticTheme.vue.d.ts +17 -0
  232. package/dist/runtime/internal/TimeStepper.vue +1 -1
  233. package/dist/runtime/internal/ToastItemRenderer.d.vue.ts +14 -0
  234. package/dist/runtime/internal/ToastItemRenderer.vue +54 -0
  235. package/dist/runtime/internal/ToastItemRenderer.vue.d.ts +14 -0
  236. package/dist/runtime/internal/combobox-select.d.ts +52 -0
  237. package/dist/runtime/{composables/use-combobox-select.js → internal/combobox-select.js} +26 -11
  238. package/dist/runtime/internal/programmatic-services.d.ts +71 -0
  239. package/dist/runtime/internal/programmatic-services.js +61 -0
  240. package/dist/runtime/prose.css +1 -1
  241. package/dist/runtime/structural.css +1 -0
  242. package/dist/runtime/table.d.ts +3 -0
  243. package/dist/runtime/table.js +1 -0
  244. package/dist/runtime/theme/accordion.d.ts +27 -0
  245. package/dist/runtime/theme/accordion.js +15 -6
  246. package/dist/runtime/theme/alert-dialog.js +5 -5
  247. package/dist/runtime/theme/alert.js +6 -15
  248. package/dist/runtime/theme/avatar-group.js +2 -2
  249. package/dist/runtime/theme/avatar.js +12 -18
  250. package/dist/runtime/theme/badge.d.ts +39 -9
  251. package/dist/runtime/theme/badge.js +11 -40
  252. package/dist/runtime/theme/breadcrumb.d.ts +29 -47
  253. package/dist/runtime/theme/breadcrumb.js +16 -5
  254. package/dist/runtime/theme/button.d.ts +45 -15
  255. package/dist/runtime/theme/button.js +10 -57
  256. package/dist/runtime/theme/callout.js +7 -7
  257. package/dist/runtime/theme/card.js +7 -7
  258. package/dist/runtime/theme/checkbox.d.ts +21 -84
  259. package/dist/runtime/theme/checkbox.js +15 -36
  260. package/dist/runtime/theme/chip.js +4 -22
  261. package/dist/runtime/theme/code-button.js +2 -2
  262. package/dist/runtime/theme/code-tree.d.ts +3 -3
  263. package/dist/runtime/theme/code-tree.js +4 -4
  264. package/dist/runtime/theme/collapsible.d.ts +27 -0
  265. package/dist/runtime/theme/collapsible.js +12 -3
  266. package/dist/runtime/theme/color-picker.d.ts +18 -54
  267. package/dist/runtime/theme/color-picker.js +19 -18
  268. package/dist/runtime/theme/command-palette.d.ts +6 -6
  269. package/dist/runtime/theme/command-palette.js +12 -10
  270. package/dist/runtime/theme/content-navigation.d.ts +27 -0
  271. package/dist/runtime/theme/content-navigation.js +14 -5
  272. package/dist/runtime/theme/content-surround.d.ts +27 -0
  273. package/dist/runtime/theme/content-surround.js +13 -4
  274. package/dist/runtime/theme/content-toc.d.ts +27 -0
  275. package/dist/runtime/theme/content-toc.js +14 -5
  276. package/dist/runtime/theme/context-menu.js +7 -7
  277. package/dist/runtime/theme/dashboard-navbar.d.ts +6 -6
  278. package/dist/runtime/theme/dashboard-navbar.js +2 -2
  279. package/dist/runtime/theme/dashboard-resize-handle.js +3 -3
  280. package/dist/runtime/theme/dashboard-sidebar.js +3 -3
  281. package/dist/runtime/theme/date-picker.js +10 -10
  282. package/dist/runtime/theme/drawer.js +9 -9
  283. package/dist/runtime/theme/dropdown.js +7 -7
  284. package/dist/runtime/theme/file-tree.d.ts +27 -0
  285. package/dist/runtime/theme/file-tree.js +12 -3
  286. package/dist/runtime/theme/file-upload.d.ts +18 -72
  287. package/dist/runtime/theme/file-upload.js +20 -19
  288. package/dist/runtime/theme/form-field.js +5 -5
  289. package/dist/runtime/theme/header.d.ts +3 -3
  290. package/dist/runtime/theme/header.js +1 -1
  291. package/dist/runtime/theme/icon.d.ts +30 -57
  292. package/dist/runtime/theme/icon.js +19 -9
  293. package/dist/runtime/theme/input-number.d.ts +21 -63
  294. package/dist/runtime/theme/input-number.js +12 -12
  295. package/dist/runtime/theme/input.d.ts +21 -63
  296. package/dist/runtime/theme/input.js +12 -12
  297. package/dist/runtime/theme/kbd.js +1 -1
  298. package/dist/runtime/theme/modal.js +4 -4
  299. package/dist/runtime/theme/navigation-menu.d.ts +2 -0
  300. package/dist/runtime/theme/navigation-menu.js +17 -28
  301. package/dist/runtime/theme/page-header.js +3 -3
  302. package/dist/runtime/theme/pagination.js +1 -1
  303. package/dist/runtime/theme/pin-input.d.ts +21 -63
  304. package/dist/runtime/theme/pin-input.js +13 -11
  305. package/dist/runtime/theme/popover.js +2 -2
  306. package/dist/runtime/theme/progress.d.ts +21 -84
  307. package/dist/runtime/theme/progress.js +12 -12
  308. package/dist/runtime/theme/prose.d.ts +35 -50
  309. package/dist/runtime/theme/prose.js +24 -11
  310. package/dist/runtime/theme/radio-group.d.ts +21 -84
  311. package/dist/runtime/theme/radio-group.js +16 -22
  312. package/dist/runtime/theme/rating.d.ts +21 -63
  313. package/dist/runtime/theme/rating.js +10 -10
  314. package/dist/runtime/theme/read-more.d.ts +27 -0
  315. package/dist/runtime/theme/read-more.js +13 -4
  316. package/dist/runtime/theme/scroll-area.d.ts +3 -3
  317. package/dist/runtime/theme/scroll-area.js +2 -2
  318. package/dist/runtime/theme/select.d.ts +21 -54
  319. package/dist/runtime/theme/select.js +32 -24
  320. package/dist/runtime/theme/separator.d.ts +18 -54
  321. package/dist/runtime/theme/separator.js +16 -12
  322. package/dist/runtime/theme/skeleton.js +4 -4
  323. package/dist/runtime/theme/slideover.js +5 -5
  324. package/dist/runtime/theme/slider.d.ts +21 -84
  325. package/dist/runtime/theme/slider.js +14 -14
  326. package/dist/runtime/theme/splitter-resize-handle.d.ts +27 -0
  327. package/dist/runtime/theme/splitter-resize-handle.js +11 -1
  328. package/dist/runtime/theme/stepper.d.ts +21 -84
  329. package/dist/runtime/theme/stepper.js +12 -33
  330. package/dist/runtime/theme/switch.d.ts +21 -84
  331. package/dist/runtime/theme/switch.js +13 -13
  332. package/dist/runtime/theme/table.d.ts +27 -0
  333. package/dist/runtime/theme/table.js +31 -21
  334. package/dist/runtime/theme/tabs.d.ts +27 -0
  335. package/dist/runtime/theme/tabs.js +17 -7
  336. package/dist/runtime/theme/textarea.d.ts +21 -63
  337. package/dist/runtime/theme/textarea.js +12 -12
  338. package/dist/runtime/theme/toast.d.ts +12 -48
  339. package/dist/runtime/theme/toast.js +9 -9
  340. package/dist/runtime/theme/toggle-group.js +5 -11
  341. package/dist/runtime/theme/toggle.js +2 -12
  342. package/dist/runtime/theme/tooltip.d.ts +3 -3
  343. package/dist/runtime/theme/tooltip.js +3 -3
  344. package/dist/runtime/theme/tree.d.ts +27 -0
  345. package/dist/runtime/theme/tree.js +13 -3
  346. package/dist/runtime/theme-api.d.ts +15 -0
  347. package/dist/runtime/theme-api.js +12 -0
  348. package/dist/runtime/theme-config.d.ts +470 -0
  349. package/dist/runtime/theme-config.js +0 -0
  350. package/dist/runtime/theme.css +1 -1
  351. package/dist/runtime/types/app-config.d.ts +11 -8
  352. package/dist/runtime/types/index.d.ts +19 -1
  353. package/dist/runtime/utils/app-scoped-state.d.ts +2 -0
  354. package/dist/runtime/utils/app-scoped-state.js +13 -0
  355. package/dist/runtime/utils/autocomplete-contracts.d.ts +24 -0
  356. package/dist/runtime/utils/autocomplete-contracts.js +0 -0
  357. package/dist/runtime/utils/color-registry.d.ts +62 -0
  358. package/dist/runtime/utils/color-registry.js +191 -0
  359. package/dist/runtime/utils/dtcg-colors.d.ts +25 -0
  360. package/dist/runtime/utils/dtcg-colors.js +40 -0
  361. package/dist/runtime/utils/file-icons.d.ts +8 -0
  362. package/dist/runtime/utils/file-icons.js +131 -0
  363. package/dist/runtime/utils/functional-tokens.d.ts +26 -0
  364. package/dist/runtime/utils/functional-tokens.js +54 -0
  365. package/dist/runtime/utils/icons.d.ts +3 -0
  366. package/dist/runtime/utils/icons.js +4 -0
  367. package/dist/runtime/utils/injection-keys.d.ts +12 -3
  368. package/dist/runtime/utils/native-input.d.ts +5 -0
  369. package/dist/runtime/utils/native-input.js +32 -0
  370. package/dist/runtime/utils/navigation-menu.d.ts +3 -0
  371. package/dist/runtime/utils/programmatic-theme.d.ts +17 -0
  372. package/dist/runtime/utils/programmatic-theme.js +59 -0
  373. package/dist/runtime/utils/registered-colors.d.ts +3 -0
  374. package/dist/runtime/utils/registered-colors.js +14 -0
  375. package/dist/runtime/utils/seed-colors.d.ts +19 -0
  376. package/dist/runtime/utils/seed-colors.js +207 -0
  377. package/dist/runtime/utils/select-contracts.d.ts +101 -0
  378. package/dist/runtime/utils/select-contracts.js +0 -0
  379. package/dist/runtime/utils/table-contracts.d.ts +60 -0
  380. package/dist/runtime/utils/table-contracts.js +0 -0
  381. package/dist/runtime/utils/ui.d.ts +26 -4
  382. package/dist/runtime/utils/ui.js +38 -5
  383. package/dist/tokens/default-colors.tokens.json +879 -0
  384. package/package.json +83 -16
  385. package/dist/runtime/composables/use-combobox-select.d.ts +0 -45
@@ -2,8 +2,8 @@ import { tv } from "tailwind-variants";
2
2
  export const avatarGroupTheme = tv({
3
3
  slots: {
4
4
  root: "inline-flex flex-row-reverse justify-end",
5
- item: "relative rounded-full ring-[var(--ui-bg)]",
6
- count: "relative rounded-full bg-[var(--ui-bg-elevated)] text-[var(--ui-text-muted)] font-medium flex items-center justify-center"
5
+ item: "relative rounded-full ring-[var(--selaras-resolved-surface-default)]",
6
+ count: "relative rounded-full bg-[var(--selaras-resolved-surface-elevated)] text-[var(--selaras-resolved-text-muted)] font-medium flex items-center justify-center"
7
7
  },
8
8
  variants: {
9
9
  size: {
@@ -2,7 +2,7 @@ import { tv } from "tailwind-variants";
2
2
  export const avatarTheme = tv({
3
3
  slots: {
4
4
  // `relative` anchors the absolutely-positioned status dot to the corner.
5
- base: "relative inline-flex shrink-0 select-none items-center justify-center align-middle",
5
+ base: "relative inline-flex shrink-0 select-none items-center justify-center bg-[var(--_selaras-color-subtle)] align-middle",
6
6
  // `content` wraps image + fallback with overflow-hidden so text/images
7
7
  // can't escape the avatar bounds, while the status dot (a sibling, not
8
8
  // a child) stays unclipped outside this wrapper. items-center/
@@ -11,11 +11,11 @@ export const avatarTheme = tv({
11
11
  // fallback icon/text sits flush at the start corner instead of centered.
12
12
  content: "flex size-full items-center justify-center overflow-hidden",
13
13
  image: "h-full w-full object-cover",
14
- fallback: "flex h-full w-full items-center justify-center",
14
+ fallback: "flex h-full w-full items-center justify-center text-[var(--_selaras-color-text)]",
15
15
  icon: "shrink-0",
16
16
  // The ring separates the dot from the avatar itself, using the page
17
17
  // background so it reads as a clean offset indicator at any size.
18
- status: "absolute bottom-0 end-0 rounded-full ring-2 ring-[var(--ui-bg)]"
18
+ status: "absolute bottom-0 end-0 rounded-full ring-2 ring-[var(--selaras-resolved-surface-default)]"
19
19
  },
20
20
  variants: {
21
21
  color: {
@@ -31,13 +31,13 @@ export const avatarTheme = tv({
31
31
  // (online, offline, ...) rarely match the avatar's own identity color, so
32
32
  // it gets its own variant rather than tracking the avatar's.
33
33
  statusColor: {
34
- primary: { status: "bg-[var(--ui-primary)]" },
35
- neutral: { status: "bg-[var(--ui-text-muted)]" },
36
- secondary: { status: "bg-[var(--ui-secondary)]" },
37
- success: { status: "bg-[var(--ui-success)]" },
38
- danger: { status: "bg-[var(--ui-danger)]" },
39
- info: { status: "bg-[var(--ui-info)]" },
40
- warning: { status: "bg-[var(--ui-warning)]" }
34
+ primary: { status: "bg-[var(--selaras-resolved-color-primary-indicator)]" },
35
+ neutral: { status: "bg-[var(--selaras-resolved-color-neutral-indicator)]" },
36
+ secondary: { status: "bg-[var(--selaras-resolved-color-secondary-indicator)]" },
37
+ success: { status: "bg-[var(--selaras-resolved-color-success-indicator)]" },
38
+ danger: { status: "bg-[var(--selaras-resolved-color-danger-indicator)]" },
39
+ info: { status: "bg-[var(--selaras-resolved-color-info-indicator)]" },
40
+ warning: { status: "bg-[var(--selaras-resolved-color-warning-indicator)]" }
41
41
  },
42
42
  size: {
43
43
  sm: { base: "size-6", fallback: "text-[10px]", icon: "size-3", status: "size-1.5" },
@@ -46,17 +46,11 @@ export const avatarTheme = tv({
46
46
  },
47
47
  shape: {
48
48
  circle: { base: "rounded-full" },
49
- rounded: { base: "rounded-[var(--ui-radius-md)]" }
49
+ rounded: { base: "rounded-[var(--selaras-resolved-radius-md)]" }
50
50
  }
51
51
  },
52
52
  compoundVariants: [
53
- { color: "primary", class: { base: "bg-[var(--ui-primary-soft)]", fallback: "text-[var(--ui-primary)]" } },
54
- { color: "neutral", class: { base: "bg-[var(--ui-neutral-soft)]", fallback: "text-[var(--ui-text-muted)]" } },
55
- { color: "secondary", class: { base: "bg-[var(--ui-secondary-soft)]", fallback: "text-[var(--ui-secondary)]" } },
56
- { color: "success", class: { base: "bg-[var(--ui-success-soft)]", fallback: "text-[var(--ui-success)]" } },
57
- { color: "danger", class: { base: "bg-[var(--ui-danger-soft)]", fallback: "text-[var(--ui-danger)]" } },
58
- { color: "info", class: { base: "bg-[var(--ui-info-soft)]", fallback: "text-[var(--ui-info)]" } },
59
- { color: "warning", class: { base: "bg-[var(--ui-warning-soft)]", fallback: "text-[var(--ui-warning)]" } }
53
+ { color: "neutral", class: { fallback: "text-[var(--selaras-resolved-text-muted)]" } }
60
54
  ],
61
55
  defaultVariants: {
62
56
  color: "neutral",
@@ -9,9 +9,15 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
9
9
  warning: "";
10
10
  };
11
11
  variant: {
12
- solid: "";
13
- soft: "";
14
- outline: "";
12
+ solid: {
13
+ base: string;
14
+ };
15
+ soft: {
16
+ base: string;
17
+ };
18
+ outline: {
19
+ base: string;
20
+ };
15
21
  };
16
22
  size: {
17
23
  sm: {
@@ -33,6 +39,10 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
33
39
  dot: string;
34
40
  };
35
41
  };
42
+ dotOnly: {
43
+ true: "";
44
+ false: "";
45
+ };
36
46
  iconOnly: {
37
47
  true: {
38
48
  base: string;
@@ -55,9 +65,15 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
55
65
  warning: "";
56
66
  };
57
67
  variant: {
58
- solid: "";
59
- soft: "";
60
- outline: "";
68
+ solid: {
69
+ base: string;
70
+ };
71
+ soft: {
72
+ base: string;
73
+ };
74
+ outline: {
75
+ base: string;
76
+ };
61
77
  };
62
78
  size: {
63
79
  sm: {
@@ -79,6 +95,10 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
79
95
  dot: string;
80
96
  };
81
97
  };
98
+ dotOnly: {
99
+ true: "";
100
+ false: "";
101
+ };
82
102
  iconOnly: {
83
103
  true: {
84
104
  base: string;
@@ -101,9 +121,15 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
101
121
  warning: "";
102
122
  };
103
123
  variant: {
104
- solid: "";
105
- soft: "";
106
- outline: "";
124
+ solid: {
125
+ base: string;
126
+ };
127
+ soft: {
128
+ base: string;
129
+ };
130
+ outline: {
131
+ base: string;
132
+ };
107
133
  };
108
134
  size: {
109
135
  sm: {
@@ -125,6 +151,10 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
125
151
  dot: string;
126
152
  };
127
153
  };
154
+ dotOnly: {
155
+ true: "";
156
+ false: "";
157
+ };
128
158
  iconOnly: {
129
159
  true: {
130
160
  base: string;
@@ -5,15 +5,12 @@ export const badgeTheme = tv({
5
5
  // already defines the width, no slack to distribute) but is required
6
6
  // once iconOnly gives the root a fixed width wider than its one child -
7
7
  // without it the icon sits flush left, all the slack pushed right.
8
- base: "inline-flex items-center justify-center gap-1 font-medium rounded-[var(--ui-radius-sm)] whitespace-nowrap",
8
+ base: "inline-flex items-center justify-center gap-1 font-medium rounded-[var(--selaras-resolved-radius-sm)] whitespace-nowrap",
9
9
  leadingIcon: "shrink-0",
10
10
  label: "truncate",
11
11
  trailingIcon: "shrink-0",
12
- // Always the color's solid background, regardless of `variant` - a
13
- // pale "soft" dot barely reads as a status indicator at this size.
14
- // Used both inline (next to a label) and standalone (dot-only, no
15
- // padded base around it at all - see Badge.vue's dotOnly branch).
16
- dot: "shrink-0 rounded-full"
12
+ // Standalone dots are unpaired graphics; inline dots use the pill foreground.
13
+ dot: "shrink-0 rounded-full bg-[var(--_selaras-color-indicator)]"
17
14
  },
18
15
  variants: {
19
16
  color: {
@@ -26,15 +23,16 @@ export const badgeTheme = tv({
26
23
  warning: ""
27
24
  },
28
25
  variant: {
29
- solid: "",
30
- soft: "",
31
- outline: ""
26
+ solid: { base: "bg-[var(--_selaras-color-fill)] text-[var(--_selaras-color-on-fill)]" },
27
+ soft: { base: "bg-[var(--_selaras-color-subtle)] text-[var(--_selaras-color-on-subtle)]" },
28
+ outline: { base: "ring-1 ring-inset ring-[var(--_selaras-color-border)] text-[var(--_selaras-color-text)]" }
32
29
  },
33
30
  size: {
34
31
  sm: { base: "h-4 px-1 text-xs", leadingIcon: "size-2.5", trailingIcon: "size-2.5", dot: "size-1.5" },
35
32
  md: { base: "h-5 px-1.5 text-xs", leadingIcon: "size-3", trailingIcon: "size-3", dot: "size-2" },
36
33
  lg: { base: "h-6 px-2 text-sm", leadingIcon: "size-3.5", trailingIcon: "size-3.5", dot: "size-2.5" }
37
34
  },
35
+ dotOnly: { true: "", false: "" },
38
36
  // No label - just an icon (or nothing but a dot, handled separately in
39
37
  // Badge.vue) - reads better as a circle than a flat pill, doubling as
40
38
  // an avatar-adjacent status/count indicator. Chip stays a pill even
@@ -45,36 +43,8 @@ export const badgeTheme = tv({
45
43
  }
46
44
  },
47
45
  compoundVariants: [
48
- { color: "primary", variant: "solid", class: { base: "bg-[var(--ui-primary)] text-[var(--ui-primary-foreground)]" } },
49
- { color: "primary", variant: "soft", class: { base: "bg-[var(--ui-primary-soft)] text-[var(--ui-primary)]" } },
50
- { color: "primary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-primary)] text-[var(--ui-primary)]" } },
51
- { color: "neutral", variant: "solid", class: { base: "bg-[var(--ui-neutral)] text-[var(--ui-neutral-foreground)]" } },
52
- { color: "neutral", variant: "soft", class: { base: "bg-[var(--ui-neutral-soft)] text-[var(--ui-text)]" } },
53
- { color: "neutral", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-border)] text-[var(--ui-text)]" } },
54
- { color: "secondary", variant: "solid", class: { base: "bg-[var(--ui-secondary)] text-[var(--ui-secondary-foreground)]" } },
55
- { color: "secondary", variant: "soft", class: { base: "bg-[var(--ui-secondary-soft)] text-[var(--ui-secondary)]" } },
56
- { color: "secondary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-secondary)] text-[var(--ui-secondary)]" } },
57
- { color: "success", variant: "solid", class: { base: "bg-[var(--ui-success)] text-[var(--ui-success-foreground)]" } },
58
- { color: "success", variant: "soft", class: { base: "bg-[var(--ui-success-soft)] text-[var(--ui-success)]" } },
59
- { color: "success", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-success)] text-[var(--ui-success)]" } },
60
- { color: "danger", variant: "solid", class: { base: "bg-[var(--ui-danger)] text-[var(--ui-danger-foreground)]" } },
61
- { color: "danger", variant: "soft", class: { base: "bg-[var(--ui-danger-soft)] text-[var(--ui-danger)]" } },
62
- { color: "danger", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-danger)] text-[var(--ui-danger)]" } },
63
- { color: "info", variant: "solid", class: { base: "bg-[var(--ui-info)] text-[var(--ui-info-foreground)]" } },
64
- { color: "info", variant: "soft", class: { base: "bg-[var(--ui-info-soft)] text-[var(--ui-info)]" } },
65
- { color: "info", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-info)] text-[var(--ui-info)]" } },
66
- { color: "warning", variant: "solid", class: { base: "bg-[var(--ui-warning)] text-[var(--ui-warning-foreground)]" } },
67
- { color: "warning", variant: "soft", class: { base: "bg-[var(--ui-warning-soft)] text-[var(--ui-warning)]" } },
68
- { color: "warning", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-warning)] text-[var(--ui-warning)]" } },
69
- // The dot's own background always tracks the color's solid token,
70
- // independent of `variant` - see the `dot` slot comment above.
71
- { color: "primary", class: { dot: "bg-[var(--ui-primary)]" } },
72
- { color: "neutral", class: { dot: "bg-[var(--ui-text-muted)]" } },
73
- { color: "secondary", class: { dot: "bg-[var(--ui-secondary)]" } },
74
- { color: "success", class: { dot: "bg-[var(--ui-success)]" } },
75
- { color: "danger", class: { dot: "bg-[var(--ui-danger)]" } },
76
- { color: "info", class: { dot: "bg-[var(--ui-info)]" } },
77
- { color: "warning", class: { dot: "bg-[var(--ui-warning)]" } },
46
+ // Inline dots follow the foreground, remaining visible on filled pills.
47
+ { dotOnly: false, class: { dot: "bg-current" } },
78
48
  // iconOnly needs an equal width/height square-that-reads-as-a-circle -
79
49
  // same trick Button's own square variant uses: swap the size's
80
50
  // horizontal padding for a matching width instead.
@@ -85,6 +55,7 @@ export const badgeTheme = tv({
85
55
  defaultVariants: {
86
56
  color: "neutral",
87
57
  variant: "soft",
88
- size: "md"
58
+ size: "md",
59
+ dotOnly: false
89
60
  }
90
61
  });
@@ -1,36 +1,14 @@
1
1
  export declare const breadcrumbTheme: import("tailwind-variants").TVReturnType<{
2
- [key: string]: {
3
- [key: string]: import("tailwind-variants").ClassValue | {
4
- root?: import("tailwind-variants").ClassValue;
5
- item?: import("tailwind-variants").ClassValue;
6
- label?: import("tailwind-variants").ClassValue;
7
- list?: import("tailwind-variants").ClassValue;
8
- disabled?: import("tailwind-variants").ClassValue;
9
- link?: import("tailwind-variants").ClassValue;
10
- icon?: import("tailwind-variants").ClassValue;
11
- current?: import("tailwind-variants").ClassValue;
12
- separator?: import("tailwind-variants").ClassValue;
13
- separatorIcon?: import("tailwind-variants").ClassValue;
14
- ellipsis?: import("tailwind-variants").ClassValue;
15
- };
2
+ color: {
3
+ primary: "";
4
+ neutral: "";
5
+ secondary: "";
6
+ success: "";
7
+ danger: "";
8
+ info: "";
9
+ warning: "";
16
10
  };
17
- } | {
18
- [x: string]: {
19
- [x: string]: import("tailwind-variants").ClassValue | {
20
- root?: import("tailwind-variants").ClassValue;
21
- item?: import("tailwind-variants").ClassValue;
22
- label?: import("tailwind-variants").ClassValue;
23
- list?: import("tailwind-variants").ClassValue;
24
- disabled?: import("tailwind-variants").ClassValue;
25
- link?: import("tailwind-variants").ClassValue;
26
- icon?: import("tailwind-variants").ClassValue;
27
- current?: import("tailwind-variants").ClassValue;
28
- separator?: import("tailwind-variants").ClassValue;
29
- separatorIcon?: import("tailwind-variants").ClassValue;
30
- ellipsis?: import("tailwind-variants").ClassValue;
31
- };
32
- };
33
- } | {}, {
11
+ }, {
34
12
  root: string;
35
13
  list: string;
36
14
  item: string;
@@ -43,22 +21,16 @@ export declare const breadcrumbTheme: import("tailwind-variants").TVReturnType<{
43
21
  separatorIcon: string;
44
22
  ellipsis: string;
45
23
  }, undefined, {
46
- [key: string]: {
47
- [key: string]: import("tailwind-variants").ClassValue | {
48
- root?: import("tailwind-variants").ClassValue;
49
- item?: import("tailwind-variants").ClassValue;
50
- label?: import("tailwind-variants").ClassValue;
51
- list?: import("tailwind-variants").ClassValue;
52
- disabled?: import("tailwind-variants").ClassValue;
53
- link?: import("tailwind-variants").ClassValue;
54
- icon?: import("tailwind-variants").ClassValue;
55
- current?: import("tailwind-variants").ClassValue;
56
- separator?: import("tailwind-variants").ClassValue;
57
- separatorIcon?: import("tailwind-variants").ClassValue;
58
- ellipsis?: import("tailwind-variants").ClassValue;
59
- };
24
+ color: {
25
+ primary: "";
26
+ neutral: "";
27
+ secondary: "";
28
+ success: "";
29
+ danger: "";
30
+ info: "";
31
+ warning: "";
60
32
  };
61
- } | {}, {
33
+ }, {
62
34
  root: string;
63
35
  list: string;
64
36
  item: string;
@@ -70,7 +42,17 @@ export declare const breadcrumbTheme: import("tailwind-variants").TVReturnType<{
70
42
  separator: string;
71
43
  separatorIcon: string;
72
44
  ellipsis: string;
73
- }, import("tailwind-variants").TVReturnTypeLike<unknown, {
45
+ }, import("tailwind-variants").TVReturnTypeLike<{
46
+ color: {
47
+ primary: "";
48
+ neutral: "";
49
+ secondary: "";
50
+ success: "";
51
+ danger: "";
52
+ info: "";
53
+ warning: "";
54
+ };
55
+ }, {
74
56
  root: string;
75
57
  list: string;
76
58
  item: string;
@@ -4,19 +4,30 @@ export const breadcrumbTheme = tv({
4
4
  root: "",
5
5
  list: "flex items-center gap-1.5 text-sm",
6
6
  item: "flex items-center",
7
- link: "flex items-center gap-1 text-[var(--ui-text-muted)] transition-colors hover:text-[var(--ui-text)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ui-primary)]",
7
+ link: "flex items-center gap-1 text-[var(--selaras-resolved-text-muted)] transition-colors hover:text-[var(--selaras-resolved-text-default)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--_selaras-color-focus)]",
8
8
  // The trail's last item - "you are here", visually emphasized
9
9
  // rather than muted like the earlier, clickable steps.
10
- current: "flex items-center gap-1 font-medium text-[var(--ui-text)]",
10
+ current: "flex items-center gap-1 font-medium text-[var(--selaras-resolved-text-default)]",
11
11
  // An earlier item with neither `to` nor `disabled` unset - nothing
12
12
  // to link to, so it renders like `link` but inert.
13
- disabled: "flex items-center gap-1 text-[var(--ui-text-muted)] opacity-50",
13
+ disabled: "flex items-center gap-1 text-[var(--selaras-resolved-text-muted)] opacity-50",
14
14
  icon: "size-4 shrink-0",
15
15
  // `block` (not `inline`) so an inline-max-width set by the
16
16
  // `truncate` prop actually applies.
17
17
  label: "block truncate",
18
- separator: "flex items-center text-[var(--ui-text-muted)]",
18
+ separator: "flex items-center text-[var(--selaras-resolved-text-muted)]",
19
19
  separatorIcon: "size-4 shrink-0 rtl:rotate-180",
20
- ellipsis: "flex items-center text-[var(--ui-text-muted)] transition-colors hover:text-[var(--ui-text)]"
20
+ ellipsis: "flex items-center text-[var(--selaras-resolved-text-muted)] transition-colors hover:text-[var(--selaras-resolved-text-default)]"
21
+ },
22
+ variants: {
23
+ color: {
24
+ primary: "",
25
+ neutral: "",
26
+ secondary: "",
27
+ success: "",
28
+ danger: "",
29
+ info: "",
30
+ warning: ""
31
+ }
21
32
  }
22
33
  });
@@ -9,11 +9,21 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
9
9
  warning: "";
10
10
  };
11
11
  variant: {
12
- solid: "";
13
- soft: "";
14
- outline: "";
15
- ghost: "";
16
- text: "";
12
+ solid: {
13
+ base: string;
14
+ };
15
+ soft: {
16
+ base: string;
17
+ };
18
+ outline: {
19
+ base: string;
20
+ };
21
+ ghost: {
22
+ base: string;
23
+ };
24
+ text: {
25
+ base: string;
26
+ };
17
27
  };
18
28
  size: {
19
29
  sm: {
@@ -60,11 +70,21 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
60
70
  warning: "";
61
71
  };
62
72
  variant: {
63
- solid: "";
64
- soft: "";
65
- outline: "";
66
- ghost: "";
67
- text: "";
73
+ solid: {
74
+ base: string;
75
+ };
76
+ soft: {
77
+ base: string;
78
+ };
79
+ outline: {
80
+ base: string;
81
+ };
82
+ ghost: {
83
+ base: string;
84
+ };
85
+ text: {
86
+ base: string;
87
+ };
68
88
  };
69
89
  size: {
70
90
  sm: {
@@ -111,11 +131,21 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
111
131
  warning: "";
112
132
  };
113
133
  variant: {
114
- solid: "";
115
- soft: "";
116
- outline: "";
117
- ghost: "";
118
- text: "";
134
+ solid: {
135
+ base: string;
136
+ };
137
+ soft: {
138
+ base: string;
139
+ };
140
+ outline: {
141
+ base: string;
142
+ };
143
+ ghost: {
144
+ base: string;
145
+ };
146
+ text: {
147
+ base: string;
148
+ };
119
149
  };
120
150
  size: {
121
151
  sm: {
@@ -1,11 +1,12 @@
1
1
  import { tv } from "tailwind-variants";
2
2
  export const buttonTheme = tv({
3
3
  slots: {
4
- base: "inline-flex items-center justify-center gap-1.5 font-medium rounded-[var(--ui-radius-md)] transition-colors disabled:opacity-50 disabled:pointer-events-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ui-primary)]",
4
+ base: "inline-flex items-center justify-center gap-1.5 font-medium rounded-[var(--selaras-resolved-radius-md)] transition-colors disabled:opacity-50 disabled:pointer-events-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--_selaras-color-focus)]",
5
5
  leadingIcon: "shrink-0",
6
6
  trailingIcon: "shrink-0"
7
7
  },
8
8
  variants: {
9
+ // Keep color conditions available to recipe extensions; bindings own color CSS.
9
10
  color: {
10
11
  primary: "",
11
12
  neutral: "",
@@ -16,11 +17,12 @@ export const buttonTheme = tv({
16
17
  warning: ""
17
18
  },
18
19
  variant: {
19
- solid: "",
20
- soft: "",
21
- outline: "",
22
- ghost: "",
23
- text: ""
20
+ solid: { base: "bg-[var(--_selaras-color-fill)] text-[var(--_selaras-color-on-fill)] hover:bg-[var(--_selaras-color-fill-hover)] active:bg-[var(--_selaras-color-fill-pressed)]" },
21
+ soft: { base: "bg-[var(--_selaras-color-subtle)] text-[var(--_selaras-color-on-subtle)] hover:bg-[var(--_selaras-color-subtle-hover)] active:bg-[var(--_selaras-color-subtle-pressed)]" },
22
+ outline: { base: "ring-1 ring-inset ring-[var(--_selaras-color-border)] text-[var(--_selaras-color-text)] hover:bg-[var(--_selaras-color-subtle-hover)] active:bg-[var(--_selaras-color-subtle-pressed)]" },
23
+ ghost: { base: "text-[var(--_selaras-color-text)] hover:bg-[var(--_selaras-color-subtle-hover)] active:bg-[var(--_selaras-color-subtle-pressed)]" },
24
+ // Text actions never paint a background, including their interaction states.
25
+ text: { base: "text-[var(--_selaras-color-text)] hover:text-[var(--_selaras-color-text-hover)] active:text-[var(--_selaras-color-text-pressed)]" }
24
26
  },
25
27
  size: {
26
28
  sm: { base: "h-8 px-3 text-sm", leadingIcon: "size-4", trailingIcon: "size-4" },
@@ -31,65 +33,16 @@ export const buttonTheme = tv({
31
33
  true: { base: "w-full" }
32
34
  },
33
35
  raised: {
34
- true: { base: "shadow-[var(--ui-shadow-md)]" }
36
+ true: { base: "shadow-[var(--selaras-resolved-shadow-md)]" }
35
37
  },
36
38
  square: {
37
39
  true: {}
38
40
  }
39
41
  },
40
42
  compoundVariants: [
41
- // Icon-only: swap the size's text-oriented horizontal padding for an
42
- // equal-width square matching its own height.
43
43
  { size: "sm", square: true, class: { base: "w-8 px-0" } },
44
44
  { size: "md", square: true, class: { base: "w-10 px-0" } },
45
- { size: "lg", square: true, class: { base: "w-11 px-0" } },
46
- // :active (mouse-down) always goes one step further than :hover in the
47
- // same direction - solid presses to the -active (700) token, soft/
48
- // outline/ghost (which have no visible bg by default, or a pale -soft
49
- // one on hover) press to a stronger tint of the role's own main color
50
- // rather than a new token. Tailwind's default variant order puts
51
- // active after hover, so :active wins when both apply (mouse down
52
- // while hovering) - no extra specificity needed.
53
- { color: "primary", variant: "solid", class: { base: "bg-[var(--ui-primary)] text-[var(--ui-primary-foreground)] hover:bg-[var(--ui-primary-hover)] active:bg-[var(--ui-primary-active)]" } },
54
- { color: "primary", variant: "soft", class: { base: "bg-[var(--ui-primary-soft)] text-[var(--ui-primary)] hover:bg-[var(--ui-primary-soft)]/70 active:bg-[var(--ui-primary)]/20" } },
55
- { color: "primary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-primary)] text-[var(--ui-primary)] hover:bg-[var(--ui-primary-soft)] active:bg-[var(--ui-primary)]/10" } },
56
- { color: "primary", variant: "ghost", class: { base: "text-[var(--ui-primary)] hover:bg-[var(--ui-primary-soft)] active:bg-[var(--ui-primary)]/10" } },
57
- { color: "neutral", variant: "solid", class: { base: "bg-[var(--ui-neutral)] text-[var(--ui-neutral-foreground)] hover:bg-[var(--ui-neutral-hover)] active:bg-[var(--ui-neutral-active)]" } },
58
- { color: "neutral", variant: "soft", class: { base: "bg-[var(--ui-neutral-soft)] text-[var(--ui-text)] hover:bg-[var(--ui-neutral-soft)]/70 active:bg-[var(--ui-neutral)]/20" } },
59
- { color: "neutral", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-border)] text-[var(--ui-text)] hover:bg-[var(--ui-neutral-soft)] active:bg-[var(--ui-neutral)]/10" } },
60
- { color: "neutral", variant: "ghost", class: { base: "text-[var(--ui-text)] hover:bg-[var(--ui-neutral-soft)] active:bg-[var(--ui-neutral)]/10" } },
61
- { color: "secondary", variant: "solid", class: { base: "bg-[var(--ui-secondary)] text-[var(--ui-secondary-foreground)] hover:bg-[var(--ui-secondary-hover)] active:bg-[var(--ui-secondary-active)]" } },
62
- { color: "secondary", variant: "soft", class: { base: "bg-[var(--ui-secondary-soft)] text-[var(--ui-secondary)] hover:bg-[var(--ui-secondary-soft)]/70 active:bg-[var(--ui-secondary)]/20" } },
63
- { color: "secondary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-secondary)] text-[var(--ui-secondary)] hover:bg-[var(--ui-secondary-soft)] active:bg-[var(--ui-secondary)]/10" } },
64
- { color: "secondary", variant: "ghost", class: { base: "text-[var(--ui-secondary)] hover:bg-[var(--ui-secondary-soft)] active:bg-[var(--ui-secondary)]/10" } },
65
- { color: "success", variant: "solid", class: { base: "bg-[var(--ui-success)] text-[var(--ui-success-foreground)] hover:bg-[var(--ui-success-hover)] active:bg-[var(--ui-success-active)]" } },
66
- { color: "success", variant: "soft", class: { base: "bg-[var(--ui-success-soft)] text-[var(--ui-success)] hover:bg-[var(--ui-success-soft)]/70 active:bg-[var(--ui-success)]/20" } },
67
- { color: "success", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-success)] text-[var(--ui-success)] hover:bg-[var(--ui-success-soft)] active:bg-[var(--ui-success)]/10" } },
68
- { color: "success", variant: "ghost", class: { base: "text-[var(--ui-success)] hover:bg-[var(--ui-success-soft)] active:bg-[var(--ui-success)]/10" } },
69
- { color: "danger", variant: "solid", class: { base: "bg-[var(--ui-danger)] text-[var(--ui-danger-foreground)] hover:bg-[var(--ui-danger-hover)] active:bg-[var(--ui-danger-active)]" } },
70
- { color: "danger", variant: "soft", class: { base: "bg-[var(--ui-danger-soft)] text-[var(--ui-danger)] hover:bg-[var(--ui-danger-soft)]/70 active:bg-[var(--ui-danger)]/20" } },
71
- { color: "danger", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-danger)] text-[var(--ui-danger)] hover:bg-[var(--ui-danger-soft)] active:bg-[var(--ui-danger)]/10" } },
72
- { color: "danger", variant: "ghost", class: { base: "text-[var(--ui-danger)] hover:bg-[var(--ui-danger-soft)] active:bg-[var(--ui-danger)]/10" } },
73
- { color: "info", variant: "solid", class: { base: "bg-[var(--ui-info)] text-[var(--ui-info-foreground)] hover:bg-[var(--ui-info-hover)] active:bg-[var(--ui-info-active)]" } },
74
- { color: "info", variant: "soft", class: { base: "bg-[var(--ui-info-soft)] text-[var(--ui-info)] hover:bg-[var(--ui-info-soft)]/70 active:bg-[var(--ui-info)]/20" } },
75
- { color: "info", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-info)] text-[var(--ui-info)] hover:bg-[var(--ui-info-soft)] active:bg-[var(--ui-info)]/10" } },
76
- { color: "info", variant: "ghost", class: { base: "text-[var(--ui-info)] hover:bg-[var(--ui-info-soft)] active:bg-[var(--ui-info)]/10" } },
77
- { color: "warning", variant: "solid", class: { base: "bg-[var(--ui-warning)] text-[var(--ui-warning-foreground)] hover:bg-[var(--ui-warning-hover)] active:bg-[var(--ui-warning-active)]" } },
78
- { color: "warning", variant: "soft", class: { base: "bg-[var(--ui-warning-soft)] text-[var(--ui-warning)] hover:bg-[var(--ui-warning-soft)]/70 active:bg-[var(--ui-warning)]/20" } },
79
- { color: "warning", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-warning)] text-[var(--ui-warning)] hover:bg-[var(--ui-warning-soft)] active:bg-[var(--ui-warning)]/10" } },
80
- { color: "warning", variant: "ghost", class: { base: "text-[var(--ui-warning)] hover:bg-[var(--ui-warning-soft)] active:bg-[var(--ui-warning)]/10" } },
81
- // `text`: for an icon button sitting tight against another control's own
82
- // border (a field's clear button, a stepper) - `ghost`'s hover background
83
- // fill would visually compete with that adjacent border, so this variant
84
- // never paints a background at any state and only shifts the text/icon
85
- // color on hover.
86
- { color: "primary", variant: "text", class: { base: "text-[var(--ui-primary)] hover:text-[var(--ui-primary-hover)]" } },
87
- { color: "neutral", variant: "text", class: { base: "text-[var(--ui-text-muted)] hover:text-[var(--ui-text)]" } },
88
- { color: "secondary", variant: "text", class: { base: "text-[var(--ui-secondary)] hover:text-[var(--ui-secondary-hover)]" } },
89
- { color: "success", variant: "text", class: { base: "text-[var(--ui-success)] hover:text-[var(--ui-success-hover)]" } },
90
- { color: "danger", variant: "text", class: { base: "text-[var(--ui-danger)] hover:text-[var(--ui-danger-hover)]" } },
91
- { color: "info", variant: "text", class: { base: "text-[var(--ui-info)] hover:text-[var(--ui-info-hover)]" } },
92
- { color: "warning", variant: "text", class: { base: "text-[var(--ui-warning)] hover:text-[var(--ui-warning-hover)]" } }
45
+ { size: "lg", square: true, class: { base: "w-11 px-0" } }
93
46
  ],
94
47
  defaultVariants: {
95
48
  color: "primary",
@@ -4,17 +4,17 @@ export const calloutTheme = tv({
4
4
  // Border-only accent (not a filled background like Alert) - a callout
5
5
  // sits inline in a long stretch of prose, so it stays closer to a
6
6
  // styled blockquote than a standalone UI element.
7
- root: "flex gap-3 rounded-[var(--ui-radius-md)] border-s-4 bg-[var(--ui-bg-elevated)] p-4",
7
+ root: "flex gap-3 rounded-[var(--selaras-resolved-radius-md)] border-s-4 bg-[var(--selaras-resolved-surface-elevated)] p-4",
8
8
  icon: "mt-0.5 size-5 shrink-0",
9
- content: "min-w-0 flex-1 text-sm text-[var(--ui-text-muted)] [&>:first-child]:mt-0 [&>:last-child]:mb-0",
10
- title: "font-medium text-[var(--ui-text)]"
9
+ content: "min-w-0 flex-1 text-sm text-[var(--selaras-resolved-text-muted)] [&>:first-child]:mt-0 [&>:last-child]:mb-0",
10
+ title: "font-medium text-[var(--selaras-resolved-text-default)]"
11
11
  },
12
12
  variants: {
13
13
  type: {
14
- note: { root: "border-s-[var(--ui-info)]", icon: "text-[var(--ui-info)]" },
15
- tip: { root: "border-s-[var(--ui-success)]", icon: "text-[var(--ui-success)]" },
16
- warning: { root: "border-s-[var(--ui-warning)]", icon: "text-[var(--ui-warning)]" },
17
- danger: { root: "border-s-[var(--ui-danger)]", icon: "text-[var(--ui-danger)]" }
14
+ note: { root: "border-s-[var(--selaras-resolved-color-info-border)]", icon: "text-[var(--selaras-resolved-color-info-text)]" },
15
+ tip: { root: "border-s-[var(--selaras-resolved-color-success-border)]", icon: "text-[var(--selaras-resolved-color-success-text)]" },
16
+ warning: { root: "border-s-[var(--selaras-resolved-color-warning-border)]", icon: "text-[var(--selaras-resolved-color-warning-text)]" },
17
+ danger: { root: "border-s-[var(--selaras-resolved-color-danger-border)]", icon: "text-[var(--selaras-resolved-color-danger-text)]" }
18
18
  }
19
19
  },
20
20
  defaultVariants: {
@@ -1,20 +1,20 @@
1
1
  import { tv } from "tailwind-variants";
2
2
  export const cardTheme = tv({
3
3
  slots: {
4
- root: "rounded-[var(--ui-radius-md)] overflow-hidden",
5
- header: "p-4 border-b border-[var(--ui-border)]",
4
+ root: "rounded-[var(--selaras-resolved-radius-md)] overflow-hidden",
5
+ header: "p-4 border-b border-[var(--selaras-resolved-border-default)]",
6
6
  body: "p-4",
7
- footer: "p-4 border-t border-[var(--ui-border)]"
7
+ footer: "p-4 border-t border-[var(--selaras-resolved-border-default)]"
8
8
  },
9
9
  variants: {
10
10
  variant: {
11
- outline: { root: "bg-[var(--ui-bg)] ring-1 ring-[var(--ui-border)]" },
12
- solid: { root: "bg-[var(--ui-bg-elevated)] shadow-[var(--ui-shadow-md)]" },
13
- soft: { root: "bg-[var(--ui-bg-elevated)]" },
11
+ outline: { root: "bg-[var(--selaras-resolved-surface-default)] ring-1 ring-[var(--selaras-resolved-border-default)]" },
12
+ solid: { root: "bg-[var(--selaras-resolved-surface-elevated)] shadow-[var(--selaras-resolved-shadow-md)]" },
13
+ soft: { root: "bg-[var(--selaras-resolved-surface-elevated)]" },
14
14
  // Same elevated background as soft, plus outline's own border - a
15
15
  // middle ground between the two rather than a combination of their
16
16
  // literal classes, so it stays its own single, ordinary variant.
17
- subtle: { root: "bg-[var(--ui-bg-elevated)] ring-1 ring-[var(--ui-border)]" }
17
+ subtle: { root: "bg-[var(--selaras-resolved-surface-elevated)] ring-1 ring-[var(--selaras-resolved-border-default)]" }
18
18
  }
19
19
  },
20
20
  defaultVariants: {