@kushagradhawan/kookie-ui 0.1.28 → 0.1.30

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 (538) hide show
  1. package/components.css +4742 -2680
  2. package/dist/cjs/components/_internal/base-button.d.ts +36 -0
  3. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-button.js +1 -1
  5. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  6. package/dist/cjs/components/_internal/base-button.props.d.ts +61 -0
  7. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  8. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  9. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  10. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +6 -1
  11. package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
  12. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  13. package/dist/cjs/components/_internal/base-checkbox.props.js.map +3 -3
  14. package/dist/cjs/components/_internal/base-menu.props.d.ts +8 -0
  15. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  16. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  17. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  18. package/dist/cjs/components/_internal/base-radio.props.d.ts +6 -1
  19. package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  21. package/dist/cjs/components/_internal/base-radio.props.js.map +3 -3
  22. package/dist/cjs/components/accordion.d.ts +22 -0
  23. package/dist/cjs/components/accordion.d.ts.map +1 -0
  24. package/dist/cjs/components/accordion.js +2 -0
  25. package/dist/cjs/components/accordion.js.map +7 -0
  26. package/dist/cjs/components/accordion.props.d.ts +97 -0
  27. package/dist/cjs/components/accordion.props.d.ts.map +1 -0
  28. package/dist/cjs/components/accordion.props.js +2 -0
  29. package/dist/cjs/components/accordion.props.js.map +7 -0
  30. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  31. package/dist/cjs/components/alert-dialog.js +1 -1
  32. package/dist/cjs/components/alert-dialog.js.map +3 -3
  33. package/dist/cjs/components/alert-dialog.props.d.ts +69 -2
  34. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  35. package/dist/cjs/components/alert-dialog.props.js +1 -1
  36. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  37. package/dist/cjs/components/avatar.d.ts.map +1 -1
  38. package/dist/cjs/components/avatar.js +1 -1
  39. package/dist/cjs/components/avatar.js.map +3 -3
  40. package/dist/cjs/components/avatar.props.d.ts +9 -1
  41. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  42. package/dist/cjs/components/avatar.props.js +1 -1
  43. package/dist/cjs/components/avatar.props.js.map +3 -3
  44. package/dist/cjs/components/badge.d.ts +8 -1
  45. package/dist/cjs/components/badge.d.ts.map +1 -1
  46. package/dist/cjs/components/badge.js +1 -1
  47. package/dist/cjs/components/badge.js.map +3 -3
  48. package/dist/cjs/components/badge.props.d.ts +14 -6
  49. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  50. package/dist/cjs/components/badge.props.js +1 -1
  51. package/dist/cjs/components/badge.props.js.map +3 -3
  52. package/dist/cjs/components/blockquote.props.d.ts +1 -1
  53. package/dist/cjs/components/button.d.ts +53 -1
  54. package/dist/cjs/components/button.d.ts.map +1 -1
  55. package/dist/cjs/components/button.js +1 -1
  56. package/dist/cjs/components/button.js.map +3 -3
  57. package/dist/cjs/components/button.props.d.ts +17 -0
  58. package/dist/cjs/components/button.props.d.ts.map +1 -1
  59. package/dist/cjs/components/button.props.js.map +2 -2
  60. package/dist/cjs/components/callout.d.ts +4 -0
  61. package/dist/cjs/components/callout.d.ts.map +1 -1
  62. package/dist/cjs/components/callout.js +1 -1
  63. package/dist/cjs/components/callout.js.map +3 -3
  64. package/dist/cjs/components/callout.props.d.ts +9 -1
  65. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  66. package/dist/cjs/components/callout.props.js +1 -1
  67. package/dist/cjs/components/callout.props.js.map +3 -3
  68. package/dist/cjs/components/card.d.ts.map +1 -1
  69. package/dist/cjs/components/card.js +1 -1
  70. package/dist/cjs/components/card.js.map +3 -3
  71. package/dist/cjs/components/card.props.d.ts +5 -0
  72. package/dist/cjs/components/card.props.d.ts.map +1 -1
  73. package/dist/cjs/components/card.props.js +1 -1
  74. package/dist/cjs/components/card.props.js.map +3 -3
  75. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  76. package/dist/cjs/components/checkbox-cards.js +1 -1
  77. package/dist/cjs/components/checkbox-cards.js.map +3 -3
  78. package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
  79. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  80. package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
  81. package/dist/cjs/components/checkbox-group.props.d.ts +6 -1
  82. package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
  83. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  84. package/dist/cjs/components/checkbox.js +1 -1
  85. package/dist/cjs/components/checkbox.js.map +3 -3
  86. package/dist/cjs/components/code.js.map +1 -1
  87. package/dist/cjs/components/code.props.d.ts +1 -1
  88. package/dist/cjs/components/context-menu.d.ts +1 -1
  89. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  90. package/dist/cjs/components/context-menu.js +1 -1
  91. package/dist/cjs/components/context-menu.js.map +3 -3
  92. package/dist/cjs/components/dialog.d.ts.map +1 -1
  93. package/dist/cjs/components/dialog.js +1 -1
  94. package/dist/cjs/components/dialog.js.map +3 -3
  95. package/dist/cjs/components/dialog.props.d.ts +6 -1
  96. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  97. package/dist/cjs/components/dialog.props.js +1 -1
  98. package/dist/cjs/components/dialog.props.js.map +3 -3
  99. package/dist/cjs/components/dropdown-menu.d.ts +1 -1
  100. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  101. package/dist/cjs/components/dropdown-menu.js +1 -1
  102. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  103. package/dist/cjs/components/heading.props.d.ts +1 -1
  104. package/dist/cjs/components/icon-button.d.ts +79 -1
  105. package/dist/cjs/components/icon-button.d.ts.map +1 -1
  106. package/dist/cjs/components/icon-button.js +4 -1
  107. package/dist/cjs/components/icon-button.js.map +3 -3
  108. package/dist/cjs/components/image.d.ts +131 -12
  109. package/dist/cjs/components/image.d.ts.map +1 -1
  110. package/dist/cjs/components/image.js +1 -1
  111. package/dist/cjs/components/image.js.map +3 -3
  112. package/dist/cjs/components/image.props.d.ts +136 -21
  113. package/dist/cjs/components/image.props.d.ts.map +1 -1
  114. package/dist/cjs/components/image.props.js +1 -1
  115. package/dist/cjs/components/image.props.js.map +3 -3
  116. package/dist/cjs/components/index.d.ts +1 -0
  117. package/dist/cjs/components/index.d.ts.map +1 -1
  118. package/dist/cjs/components/index.js +1 -1
  119. package/dist/cjs/components/index.js.map +3 -3
  120. package/dist/cjs/components/link.props.d.ts +1 -1
  121. package/dist/cjs/components/progress.props.d.ts +2 -2
  122. package/dist/cjs/components/progress.props.js +1 -1
  123. package/dist/cjs/components/progress.props.js.map +2 -2
  124. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  125. package/dist/cjs/components/radio-cards.js +1 -1
  126. package/dist/cjs/components/radio-cards.js.map +3 -3
  127. package/dist/cjs/components/radio-cards.props.d.ts +2 -2
  128. package/dist/cjs/components/radio-cards.props.js +1 -1
  129. package/dist/cjs/components/radio-cards.props.js.map +2 -2
  130. package/dist/cjs/components/radio.d.ts.map +1 -1
  131. package/dist/cjs/components/radio.js +1 -1
  132. package/dist/cjs/components/radio.js.map +3 -3
  133. package/dist/cjs/components/segmented-control.props.d.ts +3 -3
  134. package/dist/cjs/components/segmented-control.props.js +1 -1
  135. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  136. package/dist/cjs/components/select.d.ts.map +1 -1
  137. package/dist/cjs/components/select.js +1 -1
  138. package/dist/cjs/components/select.js.map +3 -3
  139. package/dist/cjs/components/select.props.d.ts +12 -0
  140. package/dist/cjs/components/select.props.d.ts.map +1 -1
  141. package/dist/cjs/components/select.props.js +1 -1
  142. package/dist/cjs/components/select.props.js.map +2 -2
  143. package/dist/cjs/components/sidebar.d.ts +5 -0
  144. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  145. package/dist/cjs/components/sidebar.js +1 -1
  146. package/dist/cjs/components/sidebar.js.map +3 -3
  147. package/dist/cjs/components/slider.d.ts +5 -0
  148. package/dist/cjs/components/slider.d.ts.map +1 -1
  149. package/dist/cjs/components/slider.js +1 -1
  150. package/dist/cjs/components/slider.js.map +3 -3
  151. package/dist/cjs/components/slider.props.d.ts +10 -2
  152. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  153. package/dist/cjs/components/slider.props.js +1 -1
  154. package/dist/cjs/components/slider.props.js.map +2 -2
  155. package/dist/cjs/components/switch.d.ts.map +1 -1
  156. package/dist/cjs/components/switch.js +1 -1
  157. package/dist/cjs/components/switch.js.map +3 -3
  158. package/dist/cjs/components/switch.props.d.ts +17 -4
  159. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  160. package/dist/cjs/components/switch.props.js +1 -1
  161. package/dist/cjs/components/switch.props.js.map +3 -3
  162. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  163. package/dist/cjs/components/tab-nav.js +1 -1
  164. package/dist/cjs/components/tab-nav.js.map +3 -3
  165. package/dist/cjs/components/tabs.d.ts.map +1 -1
  166. package/dist/cjs/components/tabs.js +1 -1
  167. package/dist/cjs/components/tabs.js.map +2 -2
  168. package/dist/cjs/components/text-area.d.ts.map +1 -1
  169. package/dist/cjs/components/text-area.js +1 -1
  170. package/dist/cjs/components/text-area.js.map +3 -3
  171. package/dist/cjs/components/text-area.props.d.ts +29 -0
  172. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  173. package/dist/cjs/components/text-area.props.js +1 -1
  174. package/dist/cjs/components/text-area.props.js.map +3 -3
  175. package/dist/cjs/components/text-field.d.ts.map +1 -1
  176. package/dist/cjs/components/text-field.js +4 -4
  177. package/dist/cjs/components/text-field.js.map +3 -3
  178. package/dist/cjs/components/text-field.props.d.ts +29 -0
  179. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  180. package/dist/cjs/components/text-field.props.js +1 -1
  181. package/dist/cjs/components/text-field.props.js.map +3 -3
  182. package/dist/cjs/components/text.props.d.ts +1 -1
  183. package/dist/cjs/components/theme.d.ts +3 -0
  184. package/dist/cjs/components/theme.d.ts.map +1 -1
  185. package/dist/cjs/components/theme.js +1 -1
  186. package/dist/cjs/components/theme.js.map +3 -3
  187. package/dist/cjs/components/theme.props.d.ts +14 -0
  188. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  189. package/dist/cjs/components/theme.props.js +1 -1
  190. package/dist/cjs/components/theme.props.js.map +3 -3
  191. package/dist/cjs/components/toggle-button.d.ts +52 -0
  192. package/dist/cjs/components/toggle-button.d.ts.map +1 -1
  193. package/dist/cjs/components/toggle-button.js +1 -1
  194. package/dist/cjs/components/toggle-button.js.map +3 -3
  195. package/dist/cjs/components/toggle-icon-button.d.ts +84 -2
  196. package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
  197. package/dist/cjs/components/toggle-icon-button.js +1 -1
  198. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  199. package/dist/cjs/helpers/extract-margin-props.d.ts +7 -7
  200. package/dist/cjs/hooks/index.d.ts +2 -0
  201. package/dist/cjs/hooks/index.d.ts.map +1 -0
  202. package/dist/cjs/hooks/index.js +2 -0
  203. package/dist/cjs/hooks/index.js.map +7 -0
  204. package/dist/cjs/hooks/use-live-announcer.d.ts +6 -0
  205. package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -0
  206. package/dist/cjs/hooks/use-live-announcer.js +10 -0
  207. package/dist/cjs/hooks/use-live-announcer.js.map +7 -0
  208. package/dist/cjs/index.d.ts +1 -0
  209. package/dist/cjs/index.d.ts.map +1 -1
  210. package/dist/cjs/index.js +1 -1
  211. package/dist/cjs/index.js.map +2 -2
  212. package/dist/cjs/props/weight.prop.d.ts +1 -1
  213. package/dist/cjs/props/weight.prop.js +1 -1
  214. package/dist/cjs/props/weight.prop.js.map +2 -2
  215. package/dist/esm/components/_internal/base-button.d.ts +36 -0
  216. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  217. package/dist/esm/components/_internal/base-button.js +1 -1
  218. package/dist/esm/components/_internal/base-button.js.map +3 -3
  219. package/dist/esm/components/_internal/base-button.props.d.ts +61 -0
  220. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  221. package/dist/esm/components/_internal/base-button.props.js +1 -1
  222. package/dist/esm/components/_internal/base-button.props.js.map +3 -3
  223. package/dist/esm/components/_internal/base-checkbox.props.d.ts +6 -1
  224. package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
  225. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  226. package/dist/esm/components/_internal/base-checkbox.props.js.map +3 -3
  227. package/dist/esm/components/_internal/base-menu.props.d.ts +8 -0
  228. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  229. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  230. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  231. package/dist/esm/components/_internal/base-radio.props.d.ts +6 -1
  232. package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
  233. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  234. package/dist/esm/components/_internal/base-radio.props.js.map +3 -3
  235. package/dist/esm/components/accordion.d.ts +22 -0
  236. package/dist/esm/components/accordion.d.ts.map +1 -0
  237. package/dist/esm/components/accordion.js +2 -0
  238. package/dist/esm/components/accordion.js.map +7 -0
  239. package/dist/esm/components/accordion.props.d.ts +97 -0
  240. package/dist/esm/components/accordion.props.d.ts.map +1 -0
  241. package/dist/esm/components/accordion.props.js +2 -0
  242. package/dist/esm/components/accordion.props.js.map +7 -0
  243. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  244. package/dist/esm/components/alert-dialog.js +1 -1
  245. package/dist/esm/components/alert-dialog.js.map +3 -3
  246. package/dist/esm/components/alert-dialog.props.d.ts +69 -2
  247. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  248. package/dist/esm/components/alert-dialog.props.js +1 -1
  249. package/dist/esm/components/alert-dialog.props.js.map +3 -3
  250. package/dist/esm/components/avatar.d.ts.map +1 -1
  251. package/dist/esm/components/avatar.js +1 -1
  252. package/dist/esm/components/avatar.js.map +3 -3
  253. package/dist/esm/components/avatar.props.d.ts +9 -1
  254. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  255. package/dist/esm/components/avatar.props.js +1 -1
  256. package/dist/esm/components/avatar.props.js.map +3 -3
  257. package/dist/esm/components/badge.d.ts +8 -1
  258. package/dist/esm/components/badge.d.ts.map +1 -1
  259. package/dist/esm/components/badge.js +1 -1
  260. package/dist/esm/components/badge.js.map +3 -3
  261. package/dist/esm/components/badge.props.d.ts +14 -6
  262. package/dist/esm/components/badge.props.d.ts.map +1 -1
  263. package/dist/esm/components/badge.props.js +1 -1
  264. package/dist/esm/components/badge.props.js.map +3 -3
  265. package/dist/esm/components/blockquote.props.d.ts +1 -1
  266. package/dist/esm/components/button.d.ts +53 -1
  267. package/dist/esm/components/button.d.ts.map +1 -1
  268. package/dist/esm/components/button.js +1 -1
  269. package/dist/esm/components/button.js.map +3 -3
  270. package/dist/esm/components/button.props.d.ts +17 -0
  271. package/dist/esm/components/button.props.d.ts.map +1 -1
  272. package/dist/esm/components/button.props.js.map +2 -2
  273. package/dist/esm/components/callout.d.ts +4 -0
  274. package/dist/esm/components/callout.d.ts.map +1 -1
  275. package/dist/esm/components/callout.js +1 -1
  276. package/dist/esm/components/callout.js.map +3 -3
  277. package/dist/esm/components/callout.props.d.ts +9 -1
  278. package/dist/esm/components/callout.props.d.ts.map +1 -1
  279. package/dist/esm/components/callout.props.js +1 -1
  280. package/dist/esm/components/callout.props.js.map +3 -3
  281. package/dist/esm/components/card.d.ts.map +1 -1
  282. package/dist/esm/components/card.js +1 -1
  283. package/dist/esm/components/card.js.map +3 -3
  284. package/dist/esm/components/card.props.d.ts +5 -0
  285. package/dist/esm/components/card.props.d.ts.map +1 -1
  286. package/dist/esm/components/card.props.js +1 -1
  287. package/dist/esm/components/card.props.js.map +3 -3
  288. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  289. package/dist/esm/components/checkbox-cards.js +1 -1
  290. package/dist/esm/components/checkbox-cards.js.map +3 -3
  291. package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
  292. package/dist/esm/components/checkbox-cards.props.js +1 -1
  293. package/dist/esm/components/checkbox-cards.props.js.map +2 -2
  294. package/dist/esm/components/checkbox-group.props.d.ts +6 -1
  295. package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
  296. package/dist/esm/components/checkbox.d.ts.map +1 -1
  297. package/dist/esm/components/checkbox.js +1 -1
  298. package/dist/esm/components/checkbox.js.map +3 -3
  299. package/dist/esm/components/code.js.map +1 -1
  300. package/dist/esm/components/code.props.d.ts +1 -1
  301. package/dist/esm/components/context-menu.d.ts +1 -1
  302. package/dist/esm/components/context-menu.d.ts.map +1 -1
  303. package/dist/esm/components/context-menu.js +1 -1
  304. package/dist/esm/components/context-menu.js.map +3 -3
  305. package/dist/esm/components/dialog.d.ts.map +1 -1
  306. package/dist/esm/components/dialog.js +1 -1
  307. package/dist/esm/components/dialog.js.map +3 -3
  308. package/dist/esm/components/dialog.props.d.ts +6 -1
  309. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  310. package/dist/esm/components/dialog.props.js +1 -1
  311. package/dist/esm/components/dialog.props.js.map +3 -3
  312. package/dist/esm/components/dropdown-menu.d.ts +1 -1
  313. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  314. package/dist/esm/components/dropdown-menu.js +1 -1
  315. package/dist/esm/components/dropdown-menu.js.map +3 -3
  316. package/dist/esm/components/heading.props.d.ts +1 -1
  317. package/dist/esm/components/icon-button.d.ts +79 -1
  318. package/dist/esm/components/icon-button.d.ts.map +1 -1
  319. package/dist/esm/components/icon-button.js +4 -1
  320. package/dist/esm/components/icon-button.js.map +3 -3
  321. package/dist/esm/components/image.d.ts +131 -12
  322. package/dist/esm/components/image.d.ts.map +1 -1
  323. package/dist/esm/components/image.js +1 -1
  324. package/dist/esm/components/image.js.map +3 -3
  325. package/dist/esm/components/image.props.d.ts +136 -21
  326. package/dist/esm/components/image.props.d.ts.map +1 -1
  327. package/dist/esm/components/image.props.js +1 -1
  328. package/dist/esm/components/image.props.js.map +3 -3
  329. package/dist/esm/components/index.d.ts +1 -0
  330. package/dist/esm/components/index.d.ts.map +1 -1
  331. package/dist/esm/components/index.js +1 -1
  332. package/dist/esm/components/index.js.map +3 -3
  333. package/dist/esm/components/link.props.d.ts +1 -1
  334. package/dist/esm/components/progress.props.d.ts +2 -2
  335. package/dist/esm/components/progress.props.js +1 -1
  336. package/dist/esm/components/progress.props.js.map +2 -2
  337. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  338. package/dist/esm/components/radio-cards.js +1 -1
  339. package/dist/esm/components/radio-cards.js.map +3 -3
  340. package/dist/esm/components/radio-cards.props.d.ts +2 -2
  341. package/dist/esm/components/radio-cards.props.js +1 -1
  342. package/dist/esm/components/radio-cards.props.js.map +2 -2
  343. package/dist/esm/components/radio.d.ts.map +1 -1
  344. package/dist/esm/components/radio.js +1 -1
  345. package/dist/esm/components/radio.js.map +3 -3
  346. package/dist/esm/components/segmented-control.props.d.ts +3 -3
  347. package/dist/esm/components/segmented-control.props.js +1 -1
  348. package/dist/esm/components/segmented-control.props.js.map +2 -2
  349. package/dist/esm/components/select.d.ts.map +1 -1
  350. package/dist/esm/components/select.js +1 -1
  351. package/dist/esm/components/select.js.map +3 -3
  352. package/dist/esm/components/select.props.d.ts +12 -0
  353. package/dist/esm/components/select.props.d.ts.map +1 -1
  354. package/dist/esm/components/select.props.js +1 -1
  355. package/dist/esm/components/select.props.js.map +2 -2
  356. package/dist/esm/components/sidebar.d.ts +5 -0
  357. package/dist/esm/components/sidebar.d.ts.map +1 -1
  358. package/dist/esm/components/sidebar.js +1 -1
  359. package/dist/esm/components/sidebar.js.map +3 -3
  360. package/dist/esm/components/slider.d.ts +5 -0
  361. package/dist/esm/components/slider.d.ts.map +1 -1
  362. package/dist/esm/components/slider.js +1 -1
  363. package/dist/esm/components/slider.js.map +3 -3
  364. package/dist/esm/components/slider.props.d.ts +10 -2
  365. package/dist/esm/components/slider.props.d.ts.map +1 -1
  366. package/dist/esm/components/slider.props.js +1 -1
  367. package/dist/esm/components/slider.props.js.map +2 -2
  368. package/dist/esm/components/switch.d.ts.map +1 -1
  369. package/dist/esm/components/switch.js +1 -1
  370. package/dist/esm/components/switch.js.map +3 -3
  371. package/dist/esm/components/switch.props.d.ts +17 -4
  372. package/dist/esm/components/switch.props.d.ts.map +1 -1
  373. package/dist/esm/components/switch.props.js +1 -1
  374. package/dist/esm/components/switch.props.js.map +3 -3
  375. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  376. package/dist/esm/components/tab-nav.js +1 -1
  377. package/dist/esm/components/tab-nav.js.map +3 -3
  378. package/dist/esm/components/tabs.d.ts.map +1 -1
  379. package/dist/esm/components/tabs.js +1 -1
  380. package/dist/esm/components/tabs.js.map +2 -2
  381. package/dist/esm/components/text-area.d.ts.map +1 -1
  382. package/dist/esm/components/text-area.js +1 -1
  383. package/dist/esm/components/text-area.js.map +3 -3
  384. package/dist/esm/components/text-area.props.d.ts +29 -0
  385. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  386. package/dist/esm/components/text-area.props.js +1 -1
  387. package/dist/esm/components/text-area.props.js.map +3 -3
  388. package/dist/esm/components/text-field.d.ts.map +1 -1
  389. package/dist/esm/components/text-field.js +4 -4
  390. package/dist/esm/components/text-field.js.map +3 -3
  391. package/dist/esm/components/text-field.props.d.ts +29 -0
  392. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  393. package/dist/esm/components/text-field.props.js +1 -1
  394. package/dist/esm/components/text-field.props.js.map +3 -3
  395. package/dist/esm/components/text.props.d.ts +1 -1
  396. package/dist/esm/components/theme.d.ts +3 -0
  397. package/dist/esm/components/theme.d.ts.map +1 -1
  398. package/dist/esm/components/theme.js +1 -1
  399. package/dist/esm/components/theme.js.map +3 -3
  400. package/dist/esm/components/theme.props.d.ts +14 -0
  401. package/dist/esm/components/theme.props.d.ts.map +1 -1
  402. package/dist/esm/components/theme.props.js +1 -1
  403. package/dist/esm/components/theme.props.js.map +3 -3
  404. package/dist/esm/components/toggle-button.d.ts +52 -0
  405. package/dist/esm/components/toggle-button.d.ts.map +1 -1
  406. package/dist/esm/components/toggle-button.js +1 -1
  407. package/dist/esm/components/toggle-button.js.map +3 -3
  408. package/dist/esm/components/toggle-icon-button.d.ts +84 -2
  409. package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
  410. package/dist/esm/components/toggle-icon-button.js +1 -1
  411. package/dist/esm/components/toggle-icon-button.js.map +3 -3
  412. package/dist/esm/helpers/extract-margin-props.d.ts +7 -7
  413. package/dist/esm/hooks/index.d.ts +2 -0
  414. package/dist/esm/hooks/index.d.ts.map +1 -0
  415. package/dist/esm/hooks/index.js +2 -0
  416. package/dist/esm/hooks/index.js.map +7 -0
  417. package/dist/esm/hooks/use-live-announcer.d.ts +6 -0
  418. package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -0
  419. package/dist/esm/hooks/use-live-announcer.js +10 -0
  420. package/dist/esm/hooks/use-live-announcer.js.map +7 -0
  421. package/dist/esm/index.d.ts +1 -0
  422. package/dist/esm/index.d.ts.map +1 -1
  423. package/dist/esm/index.js +1 -1
  424. package/dist/esm/index.js.map +2 -2
  425. package/dist/esm/props/weight.prop.d.ts +1 -1
  426. package/dist/esm/props/weight.prop.js +1 -1
  427. package/dist/esm/props/weight.prop.js.map +2 -2
  428. package/layout/components.css +1 -0
  429. package/layout.css +1 -0
  430. package/package.json +2 -1
  431. package/src/components/_internal/base-button.css +483 -284
  432. package/src/components/_internal/base-button.props.ts +87 -0
  433. package/src/components/_internal/base-button.tsx +127 -10
  434. package/src/components/_internal/base-card.css +866 -83
  435. package/src/components/_internal/base-checkbox.css +252 -52
  436. package/src/components/_internal/base-checkbox.props.ts +4 -1
  437. package/src/components/_internal/base-dialog.css +39 -8
  438. package/src/components/_internal/base-menu.css +55 -32
  439. package/src/components/_internal/base-menu.props.ts +10 -0
  440. package/src/components/_internal/base-radio.css +222 -52
  441. package/src/components/_internal/base-radio.props.ts +4 -1
  442. package/src/components/_internal/base-sidebar-menu.css +223 -0
  443. package/src/components/_internal/base-sidebar.css +141 -0
  444. package/src/components/_internal/base-tab-list.css +16 -0
  445. package/src/components/accordion.css +657 -0
  446. package/src/components/accordion.props.tsx +90 -0
  447. package/src/components/accordion.tsx +209 -0
  448. package/src/components/alert-dialog.props.tsx +22 -2
  449. package/src/components/alert-dialog.tsx +94 -3
  450. package/src/components/avatar.css +294 -152
  451. package/src/components/avatar.props.tsx +7 -1
  452. package/src/components/avatar.tsx +12 -2
  453. package/src/components/badge.css +160 -138
  454. package/src/components/badge.props.tsx +10 -3
  455. package/src/components/badge.tsx +71 -9
  456. package/src/components/button.css +88 -0
  457. package/src/components/button.props.tsx +17 -0
  458. package/src/components/button.tsx +107 -5
  459. package/src/components/callout.css +122 -35
  460. package/src/components/callout.props.tsx +7 -1
  461. package/src/components/callout.tsx +32 -9
  462. package/src/components/card.css +0 -597
  463. package/src/components/card.props.tsx +3 -0
  464. package/src/components/card.tsx +4 -2
  465. package/src/components/checkbox-cards.css +27 -104
  466. package/src/components/checkbox-cards.props.tsx +2 -2
  467. package/src/components/checkbox-cards.tsx +21 -3
  468. package/src/components/checkbox.tsx +2 -0
  469. package/src/components/code.css +1 -1
  470. package/src/components/code.tsx +1 -1
  471. package/src/components/container.css +1 -0
  472. package/src/components/context-menu.tsx +54 -12
  473. package/src/components/dialog.props.tsx +3 -0
  474. package/src/components/dialog.tsx +93 -3
  475. package/src/components/dropdown-menu.tsx +49 -12
  476. package/src/components/icon-button.css +73 -4
  477. package/src/components/icon-button.tsx +125 -19
  478. package/src/components/image.css +160 -91
  479. package/src/components/image.props.ts +152 -15
  480. package/src/components/image.tsx +290 -247
  481. package/src/components/index.css +1 -0
  482. package/src/components/index.tsx +1 -0
  483. package/src/components/kbd.css +23 -44
  484. package/src/components/progress.css +130 -149
  485. package/src/components/progress.props.tsx +2 -2
  486. package/src/components/radio-cards.css +23 -113
  487. package/src/components/radio-cards.props.tsx +2 -2
  488. package/src/components/radio-cards.tsx +45 -18
  489. package/src/components/radio.tsx +4 -3
  490. package/src/components/scroll-area.css +1 -1
  491. package/src/components/segmented-control.css +83 -64
  492. package/src/components/segmented-control.props.tsx +3 -3
  493. package/src/components/select.css +502 -224
  494. package/src/components/select.props.tsx +8 -0
  495. package/src/components/select.tsx +45 -2
  496. package/src/components/sidebar.css +186 -630
  497. package/src/components/sidebar.tsx +61 -5
  498. package/src/components/slider.css +228 -88
  499. package/src/components/slider.props.tsx +6 -2
  500. package/src/components/slider.tsx +201 -24
  501. package/src/components/spinner.css +12 -0
  502. package/src/components/switch.css +135 -216
  503. package/src/components/switch.props.tsx +16 -4
  504. package/src/components/switch.tsx +5 -3
  505. package/src/components/tab-nav.tsx +6 -3
  506. package/src/components/tabs.tsx +2 -0
  507. package/src/components/text-area.css +222 -140
  508. package/src/components/text-area.props.tsx +18 -1
  509. package/src/components/text-area.tsx +58 -7
  510. package/src/components/text-field.css +214 -131
  511. package/src/components/text-field.props.tsx +17 -0
  512. package/src/components/text-field.tsx +79 -28
  513. package/src/components/theme.props.tsx +12 -0
  514. package/src/components/theme.tsx +31 -1
  515. package/src/components/toggle-button.tsx +102 -3
  516. package/src/components/toggle-icon-button.tsx +150 -7
  517. package/src/components/tooltip.css +3 -3
  518. package/src/hooks/index.ts +1 -0
  519. package/src/hooks/use-live-announcer.ts +52 -0
  520. package/src/index.ts +1 -0
  521. package/src/props/weight.prop.ts +1 -1
  522. package/src/styles/fonts.css +27 -13
  523. package/src/styles/index.css +1 -1
  524. package/src/styles/tokens/base.css +2 -0
  525. package/src/styles/tokens/blur.css +32 -0
  526. package/src/styles/tokens/color.css +9 -9
  527. package/src/styles/tokens/constants.css +88 -140
  528. package/src/styles/tokens/index.css +2 -0
  529. package/src/styles/tokens/opacity.css +32 -0
  530. package/src/styles/tokens/radius.css +6 -10
  531. package/src/styles/tokens/shadow.css +25 -25
  532. package/src/styles/tokens/transition.css +49 -13
  533. package/src/styles/tokens/typography.css +7 -3
  534. package/src/styles/utilities/font-weight.css +16 -0
  535. package/styles.css +11129 -8945
  536. package/tokens/base.css +127 -49
  537. package/tokens.css +158 -114
  538. package/utilities.css +72 -0
@@ -160,7 +160,7 @@ interface SidebarProps extends ComponentPropsWithout<'div', RemovedProps>, Sideb
160
160
 
161
161
  const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>((props, forwardedRef) => {
162
162
  const themeContext = useThemeContext();
163
- const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
163
+ const { isMobile, state, openMobile } = useSidebar();
164
164
 
165
165
  const {
166
166
  size = sidebarPropDefs.size.default,
@@ -172,7 +172,7 @@ const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>((props, forwarded
172
172
  panelBackground,
173
173
  color,
174
174
  highContrast = sidebarPropDefs.highContrast.default,
175
- asChild,
175
+
176
176
  } = props;
177
177
 
178
178
  const { className, children, ...rootProps } = extractProps(props, sidebarPropDefs);
@@ -285,10 +285,19 @@ const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>((props, forwarded
285
285
  Sidebar.displayName = 'Sidebar.Root';
286
286
 
287
287
  // Sidebar content area
288
- interface SidebarContentProps extends React.ComponentPropsWithoutRef<'div'> {}
288
+ interface SidebarContentProps extends React.ComponentPropsWithoutRef<'div'> {
289
+ /**
290
+ * Accessible label for the navigation region.
291
+ * @default "Main navigation"
292
+ */
293
+ 'aria-label'?: string;
294
+ }
289
295
 
290
296
  const SidebarContent = React.forwardRef<HTMLDivElement, SidebarContentProps>(
291
- ({ className, children, ...props }, forwardedRef) => {
297
+ (
298
+ { className, children, 'aria-label': ariaLabel = 'Main navigation', ...props },
299
+ forwardedRef,
300
+ ) => {
292
301
  const context = React.useContext(SidebarContext);
293
302
  const {
294
303
  size = '2',
@@ -302,6 +311,9 @@ const SidebarContent = React.forwardRef<HTMLDivElement, SidebarContentProps>(
302
311
  <div
303
312
  {...props}
304
313
  ref={forwardedRef}
314
+ id="sidebar-navigation"
315
+ role="navigation"
316
+ aria-label={ariaLabel}
305
317
  className={classNames(
306
318
  'rt-BaseMenuContent',
307
319
  'rt-SidebarContent',
@@ -391,13 +403,16 @@ interface SidebarTriggerProps extends ComponentPropsWithout<typeof IconButton, R
391
403
 
392
404
  const SidebarTrigger = React.forwardRef<React.ElementRef<typeof IconButton>, SidebarTriggerProps>(
393
405
  ({ onClick, children, ...props }, forwardedRef) => {
394
- const { toggleSidebar } = useSidebar();
406
+ const { toggleSidebar, state } = useSidebar();
395
407
 
396
408
  return (
397
409
  <IconButton
398
410
  {...props}
399
411
  ref={forwardedRef}
400
412
  variant="ghost"
413
+ aria-label={state === 'expanded' ? 'Collapse sidebar' : 'Expand sidebar'}
414
+ aria-expanded={state === 'expanded'}
415
+ aria-controls="sidebar-navigation"
401
416
  onClick={(event) => {
402
417
  onClick?.(event);
403
418
  toggleSidebar();
@@ -435,6 +450,7 @@ const SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(
435
450
  <ul
436
451
  {...props}
437
452
  ref={forwardedRef}
453
+ role="menu"
438
454
  className={classNames('rt-BaseMenuViewport', 'rt-SidebarMenu', className)}
439
455
  />
440
456
  ),
@@ -468,6 +484,7 @@ const SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonP
468
484
  children,
469
485
  onMouseEnter,
470
486
  onMouseLeave,
487
+ onKeyDown,
471
488
  ...props
472
489
  },
473
490
  forwardedRef,
@@ -478,13 +495,49 @@ const SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonP
478
495
 
479
496
  const Comp = asChild ? Slot : 'button';
480
497
 
498
+ const { onClick } = props;
499
+ const handleKeyDown = React.useCallback(
500
+ (event: React.KeyboardEvent<HTMLButtonElement>) => {
501
+ switch (event.key) {
502
+ case 'Enter':
503
+ case ' ':
504
+ event.preventDefault();
505
+ if (onClick) onClick(event as any);
506
+ break;
507
+ case 'ArrowDown': {
508
+ event.preventDefault();
509
+ // Focus next menu item
510
+ const nextItem = (event.currentTarget as HTMLElement).nextElementSibling?.querySelector(
511
+ '[role="menuitem"]',
512
+ ) as HTMLElement;
513
+ if (nextItem) nextItem.focus();
514
+ break;
515
+ }
516
+ case 'ArrowUp': {
517
+ event.preventDefault();
518
+ // Focus previous menu item
519
+ const prevItem = (
520
+ event.currentTarget as HTMLElement
521
+ ).previousElementSibling?.querySelector('[role="menuitem"]') as HTMLElement;
522
+ if (prevItem) prevItem.focus();
523
+ break;
524
+ }
525
+ }
526
+ onKeyDown?.(event);
527
+ },
528
+ [onClick, onKeyDown],
529
+ );
530
+
481
531
  return (
482
532
  <Comp
483
533
  {...props}
484
534
  ref={forwardedRef}
535
+ role="menuitem"
536
+ aria-current={isActive ? 'page' : undefined}
485
537
  className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', className)}
486
538
  data-active={isActive || undefined}
487
539
  data-highlighted={isHighlighted || undefined}
540
+ onKeyDown={handleKeyDown}
488
541
  onMouseEnter={(event) => {
489
542
  setIsHighlighted(true);
490
543
  onMouseEnter?.(event);
@@ -572,6 +625,8 @@ const SidebarMenuSubTrigger = React.forwardRef<
572
625
  {...props}
573
626
  ref={forwardedRef}
574
627
  asChild={asChild}
628
+ role="menuitem"
629
+ aria-haspopup="true"
575
630
  className={classNames(
576
631
  'rt-reset',
577
632
  'rt-BaseMenuItem',
@@ -655,6 +710,7 @@ const SidebarGroupLabel = React.forwardRef<HTMLDivElement, SidebarGroupLabelProp
655
710
  <Comp
656
711
  {...props}
657
712
  ref={forwardedRef}
713
+ role="group"
658
714
  className={classNames('rt-BaseMenuLabel', 'rt-SidebarGroupLabel', className)}
659
715
  />
660
716
  );
@@ -1,21 +1,45 @@
1
1
  .rt-SliderRoot {
2
- --slider-thumb-size: calc(var(--slider-track-size) + var(--space-1));
2
+ --slider-thumb-width: var(--space-3);
3
+ --slider-thumb-height: var(--space-2);
3
4
 
4
5
  position: relative;
5
6
  display: flex;
6
7
  align-items: center;
7
8
  flex-grow: 1;
8
9
 
9
- border-radius: max(
10
- calc(var(--radius-factor) * var(--slider-track-size) / var(--slider-track-radius-factor)),
11
- calc(var(--radius-factor) * var(--radius-thumb))
12
- );
10
+ border-radius: var(--slider-radius);
13
11
 
14
12
  /* ensures no selection */
15
13
  user-select: none;
16
14
  /* disable browser handling of all panning and zooming gestures on touch devices */
17
15
  touch-action: none;
18
16
 
17
+ /*
18
+ * Theme-level translucent override
19
+ * Applies backdrop filter for elevated visual effects
20
+ */
21
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
22
+ backdrop-filter: var(--backdrop-filter-components);
23
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
24
+ }
25
+
26
+ /* Prevent backdrop-filter stacking with parent elements */
27
+ isolation: isolate;
28
+
29
+ /*
30
+ * Component-level material overrides
31
+ * These ensure proper rendering based on material setting
32
+ */
33
+ &:where([data-panel-background='solid'], [data-material='solid']) {
34
+ backdrop-filter: none;
35
+ --backdrop-filter-components: none;
36
+ }
37
+
38
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
39
+ backdrop-filter: var(--backdrop-filter-components);
40
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
41
+ }
42
+
19
43
  &:where([data-orientation='horizontal']) {
20
44
  width: stretch;
21
45
  height: var(--slider-track-size);
@@ -57,8 +81,8 @@
57
81
 
58
82
  .rt-SliderThumb {
59
83
  display: block;
60
- width: var(--slider-thumb-size);
61
- height: var(--slider-thumb-size);
84
+ width: var(--slider-thumb-width);
85
+ height: var(--slider-thumb-height);
62
86
 
63
87
  /* Safari */
64
88
  outline: 0;
@@ -67,8 +91,8 @@
67
91
  content: '';
68
92
  position: absolute;
69
93
  z-index: -1;
70
- width: calc(var(--slider-thumb-size) * var(--slider-thumb-hit-area-multiplier));
71
- height: calc(var(--slider-thumb-size) * var(--slider-thumb-hit-area-multiplier));
94
+ width: calc(var(--slider-thumb-width) * var(--slider-thumb-hit-area-multiplier));
95
+ height: calc(var(--slider-thumb-height) * var(--slider-thumb-hit-area-multiplier));
72
96
  top: var(--position-center);
73
97
  left: var(--position-center);
74
98
  transform: translate(-50%, -50%);
@@ -80,13 +104,13 @@
80
104
  position: absolute;
81
105
  inset: calc(var(--slider-thumb-inset-factor) * var(--slider-track-size) * -1);
82
106
  background-color: white;
83
- border-radius: max(var(--radius-1), var(--radius-thumb));
84
- box-shadow: var(--slider-thumb-box-shadow);
85
- cursor: var(--cursor-slider-thumb);
107
+ border-radius: var(--slider-thumb-radius);
108
+ box-shadow: var(--shadow-2);
109
+ cursor: pointer;
86
110
  }
87
111
 
88
112
  &:where(:focus-visible)::after {
89
- box-shadow: var(--slider-thumb-box-shadow), 0 0 0 var(--slider-focus-ring-inner) var(--accent-3), 0 0 0 var(--slider-focus-ring-outer) var(--focus-8);
113
+ box-shadow: var(--shadow-3), 0 0 0 var(--slider-focus-ring-inner) var(--accent-3), 0 0 0 var(--slider-focus-ring-outer) var(--focus-8);
90
114
  }
91
115
 
92
116
  &:where(:active) {
@@ -103,13 +127,32 @@
103
127
  @breakpoints {
104
128
  .rt-SliderRoot {
105
129
  &:where(.rt-r-size-1) {
106
- --slider-track-size: calc(var(--space-2) * var(--size-multiplier-small));
130
+ --slider-track-size: var(--progress-slider-height-1);
131
+ --slider-radius: var(--progress-slider-radius-1);
132
+ --slider-thumb-width: var(--space-3);
133
+ --slider-thumb-height: var(--space-2);
134
+ --slider-thumb-radius: calc(var(--radius-1) * 0.75);
107
135
  }
108
136
  &:where(.rt-r-size-2) {
109
- --slider-track-size: var(--space-2);
137
+ --slider-track-size: var(--progress-slider-height-2);
138
+ --slider-radius: var(--progress-slider-radius-2);
139
+ --slider-thumb-width: var(--space-4);
140
+ --slider-thumb-height: calc(var(--space-2) + var(--space-1));
141
+ --slider-thumb-radius: calc(var(--radius-2) * 0.75);
110
142
  }
111
143
  &:where(.rt-r-size-3) {
112
- --slider-track-size: calc(var(--space-2) * var(--size-multiplier-large));
144
+ --slider-track-size: var(--progress-slider-height-3);
145
+ --slider-radius: var(--progress-slider-radius-3);
146
+ --slider-thumb-width: var(--space-4);
147
+ --slider-thumb-height: var(--space-3);
148
+ --slider-thumb-radius: calc(var(--radius-3) * 0.75);
149
+ }
150
+ &:where(.rt-r-size-4) {
151
+ --slider-track-size: var(--progress-slider-height-4);
152
+ --slider-radius: var(--progress-slider-radius-4);
153
+ --slider-thumb-width: calc(var(--space-4) + var(--space-1));
154
+ --slider-thumb-height: calc(var(--space-3) + var(--space-1));
155
+ --slider-thumb-radius: calc(var(--radius-4) * 0.75);
113
156
  }
114
157
  }
115
158
  }
@@ -124,103 +167,115 @@
124
167
 
125
168
  .rt-SliderRoot:where(.rt-variant-surface) {
126
169
  & :where(.rt-SliderTrack) {
127
- background-color: var(--gray-a3);
128
- box-shadow: inset 0 0 0 var(--border-width-standard) var(--gray-a5);
170
+ background-color: var(--gray-2);
171
+ box-shadow: inset 0 0 0 1px var(--gray-6);
172
+
173
+ /* Theme-level translucent override */
174
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
175
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
176
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
177
+ }
178
+
179
+ /* Component-level overrides */
180
+ &:where([data-panel-background='solid'], [data-material='solid']) {
181
+ background-color: var(--gray-2);
182
+ box-shadow: inset 0 0 0 1px var(--gray-6);
183
+ }
184
+
185
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
186
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
187
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
188
+ }
129
189
 
130
190
  &:where([data-disabled]) {
131
- box-shadow: inset 0 0 0 var(--border-width-standard) var(--gray-a4);
191
+ box-shadow: inset 0 0 0 1px var(--gray-5);
132
192
  }
133
193
  }
134
194
 
135
195
  & :where(.rt-SliderRange) {
136
- background-color: var(--accent-track);
137
- background-image: var(--slider-range-high-contrast-background-image);
138
- box-shadow: inset 0 0 0 var(--border-width-standard) var(--gray-a5);
196
+ background-color: var(--accent-9);
139
197
  }
140
198
 
141
- & :where(.rt-SliderThumb) {
142
- --slider-thumb-box-shadow: 0 0 0 1px var(--black-a4);
143
-
144
- &:where([data-disabled])::after {
145
- background-color: var(--gray-1);
146
- box-shadow: 0 0 0 1px var(--gray-6);
199
+ &:where(.rt-high-contrast) {
200
+ & :where(.rt-SliderRange) {
201
+ background-color: var(--accent-12);
147
202
  }
148
203
  }
204
+
205
+
149
206
  }
150
207
 
151
- /* classic */
208
+ /* soft */
152
209
 
153
- .rt-SliderRoot:where(.rt-variant-classic) {
210
+ .rt-SliderRoot:where(.rt-variant-soft) {
154
211
  & :where(.rt-SliderTrack) {
155
- background-color: var(--gray-a3);
156
- position: relative;
157
-
158
- &::before {
159
- content: '';
160
- inset: 0;
161
- position: absolute;
162
- border-radius: inherit;
163
- box-shadow: var(--classic-inset-shadow-dark);
212
+ background-color: var(--gray-3);
213
+
214
+ /* Theme-level translucent override */
215
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
216
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
164
217
  }
165
- &:where([data-disabled])::before {
166
- opacity: var(--opacity-disabled);
218
+
219
+ /* Component-level overrides */
220
+ &:where([data-panel-background='solid'], [data-material='solid']) {
221
+ background-color: var(--gray-3);
222
+ }
223
+
224
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
225
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
167
226
  }
168
227
  }
169
228
 
170
229
  & :where(.rt-SliderRange) {
171
- background-color: var(--accent-track);
172
- background-image: var(--slider-range-high-contrast-background-image);
173
- box-shadow: inset 0 0 0 var(--border-width-standard) var(--gray-a3), inset 0 0 0 var(--border-width-standard) var(--accent-a4), inset 0 0 0 var(--border-width-standard) var(--black-a1),
174
- inset 0 var(--slider-classic-inset-offset) 2px 0 var(--black-a2);
230
+ background-color: var(--accent-9);
231
+ }
175
232
 
176
- &:where(.rt-high-contrast) {
177
- box-shadow: inset 0 0 0 var(--border-width-standard) var(--gray-a3), inset 0 0 0 var(--border-width-standard) var(--black-a2), inset 0 var(--slider-classic-inset-offset) 2px 0 var(--black-a2);
233
+ &:where(.rt-high-contrast) {
234
+ & :where(.rt-SliderRange) {
235
+ background-color: var(--accent-12);
178
236
  }
179
237
  }
180
238
 
181
239
  & :where(.rt-SliderThumb) {
182
- /* prettier-ignore */
183
- --slider-thumb-box-shadow:
184
- 0 0 0 1px var(--black-a3),
185
- 0 1px 3px var(--black-a1),
186
- 0 2px 4px -1px var(--black-a1);
187
-
188
- &:where([data-disabled])::after {
189
- background-color: var(--gray-1);
190
- box-shadow: 0 0 0 1px var(--gray-6);
191
- }
240
+ --slider-thumb-box-shadow: var(--shadow-3);
192
241
  }
193
242
  }
194
243
 
195
- /* soft */
244
+ /* outline */
196
245
 
197
- .rt-SliderRoot:where(.rt-variant-soft) {
246
+ .rt-SliderRoot:where(.rt-variant-outline) {
198
247
  & :where(.rt-SliderTrack) {
199
- background-color: var(--gray-a4);
200
- /* Blend with white to increase contrast in dark mode */
201
- background-image: linear-gradient(var(--white-a1), var(--white-a1));
248
+ /* Base state: no background, just border */
249
+ box-shadow: inset 0 0 0 1px var(--gray-6);
202
250
 
203
- &:where([data-disabled]) {
204
- background-color: var(--gray-a4);
205
- background-image: none;
251
+ /* Theme-level translucent override */
252
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
253
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
254
+ }
255
+
256
+ /* Component-level overrides */
257
+ &:where([data-panel-background='solid'], [data-material='solid']) {
258
+ box-shadow: inset 0 0 0 1px var(--gray-6);
259
+ }
260
+
261
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
262
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
206
263
  }
207
264
  }
208
265
 
209
266
  & :where(.rt-SliderRange) {
210
- background-image: linear-gradient(var(--accent-a5), var(--accent-a5)),
211
- var(--slider-range-high-contrast-background-image);
212
- background-color: var(--accent-6);
267
+ background-color: var(--accent-9);
213
268
  }
214
269
 
215
- & :where(.rt-SliderThumb) {
216
- --slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 0 0 1px var(--gray-a2), 0 0 0 1px var(--accent-a2),
217
- 0 1px 2px var(--gray-a4), 0 1px 3px -0.5px var(--gray-a3);
218
-
219
- &:where([data-disabled])::after {
220
- background-color: var(--gray-1);
221
- box-shadow: 0 0 0 1px var(--gray-5);
270
+ &:where(.rt-high-contrast) {
271
+ & :where(.rt-SliderRange) {
272
+ background-color: var(--accent-12);
222
273
  }
223
274
  }
275
+
276
+ & :where(.rt-SliderThumb) {
277
+ --slider-thumb-box-shadow: var(--shadow-3);
278
+ }
224
279
  }
225
280
 
226
281
  /* all high-contrast */
@@ -236,28 +291,113 @@
236
291
  --slider-range-high-contrast-background-image: none;
237
292
  }
238
293
 
239
- :where(.radix-themes) {
240
- --slider-disabled-blend-mode: multiply;
241
- }
242
- :is(.dark, .dark-theme),
243
- :is(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
244
- --slider-disabled-blend-mode: screen;
245
- }
294
+
246
295
 
247
296
  /* all disabled Sliders */
248
297
 
249
298
  [data-disabled] {
250
299
  .rt-SliderRoot:where(&) {
251
300
  cursor: var(--cursor-disabled);
252
- mix-blend-mode: var(--slider-disabled-blend-mode);
301
+ }
302
+ .rt-SliderTrack:where(&) {
303
+ background-color: var(--gray-a3) !important;
304
+ box-shadow: none !important;
253
305
  }
254
306
  .rt-SliderRange:where(&) {
255
- background-color: transparent;
256
- background-image: none;
257
- box-shadow: none;
307
+ background-color: var(--accent-a3) !important;
258
308
  }
259
- .rt-SliderThumb:where(&),
260
- .rt-SliderThumb:where(&)::after {
309
+ .rt-SliderThumb:where(&) {
261
310
  cursor: var(--cursor-disabled);
262
311
  }
312
+ .rt-SliderThumb:where(&)::after {
313
+ background-color: var(--gray-3) !important;
314
+ box-shadow: none !important;
315
+ }
316
+ }
317
+
318
+ /***************************************************************************************************
319
+ * *
320
+ * TICKS *
321
+ * *
322
+ ***************************************************************************************************/
323
+
324
+ .rt-SliderContainer {
325
+ position: relative;
326
+ }
327
+
328
+ .rt-SliderTicks {
329
+ position: absolute;
330
+ top: 100%;
331
+ left: 0;
332
+ right: 0;
333
+ margin-top: var(--space-2);
334
+ pointer-events: auto;
335
+ height: 44px;
336
+ }
337
+
338
+ .rt-SliderTick {
339
+ position: absolute;
340
+ top: 0;
341
+ display: flex;
342
+ flex-direction: column;
343
+ align-items: center;
344
+ gap: var(--space-1);
345
+ background: none;
346
+ border: none;
347
+ padding: var(--space-2);
348
+ cursor: pointer;
349
+ min-height: 44px;
350
+ min-width: 44px;
351
+ border-radius: var(--radius-2);
352
+ transition: background-color var(--transition-standard);
353
+ z-index: 1;
354
+ pointer-events: auto;
355
+ }
356
+
357
+ .rt-SliderTick:where(:hover) {
358
+ :where(.rt-SliderTickMark) {
359
+ background-color: var(--gray-12) !important;
360
+ }
361
+
362
+ :where(.rt-SliderTickLabel) {
363
+ color: var(--gray-12) !important;
364
+ font-weight: var(--font-weight-medium);
365
+ }
366
+ }
367
+
368
+ .rt-SliderTick:where(:active) {
369
+ :where(.rt-SliderTickMark) {
370
+ background-color: var(--gray-12) !important;
371
+ }
372
+
373
+ :where(.rt-SliderTickLabel) {
374
+ color: var(--gray-12) !important;
375
+ font-weight: var(--font-weight-medium);
376
+ }
377
+ }
378
+
379
+ .rt-SliderTick:where(:focus-visible) {
380
+ outline: 2px solid var(--focus-8);
381
+ outline-offset: 2px;
382
+ }
383
+
384
+ .rt-SliderTickMark {
385
+ width: 1px;
386
+ height: var(--space-2);
387
+ background-color: var(--gray-6);
388
+ border-radius: 1px;
389
+ transition: background-color var(--transition-standard);
390
+ }
391
+
392
+ .rt-SliderTickLabel {
393
+ font-size: var(--font-size-0);
394
+ line-height: var(--line-height-0);
395
+ color: var(--gray-11);
396
+ font-weight: var(--font-weight-regular);
397
+ white-space: nowrap;
398
+ overflow: hidden;
399
+ text-overflow: ellipsis;
400
+ max-width: 60px;
401
+ text-align: center;
402
+ transition: color var(--transition-standard), font-weight var(--transition-standard);
263
403
  }
@@ -4,18 +4,22 @@ import { radiusPropDef } from '../props/radius.prop.js';
4
4
 
5
5
  import type { PropDef } from '../props/prop-def.js';
6
6
 
7
- const sizes = ['1', '2', '3'] as const;
8
- const variants = ['classic', 'surface', 'soft'] as const;
7
+ const sizes = ['1', '2', '3', '4'] as const;
8
+ const variants = ['surface', 'soft', 'outline'] as const;
9
9
 
10
10
  const sliderPropDefs = {
11
11
  size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },
12
12
  variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },
13
+ showTickLabels: { type: 'boolean', className: 'rt-show-tick-labels' },
14
+ snapToTicks: { type: 'boolean', className: 'rt-snap-to-ticks' },
13
15
  ...colorPropDef,
14
16
  ...highContrastPropDef,
15
17
  ...radiusPropDef,
16
18
  } satisfies {
17
19
  size: PropDef<(typeof sizes)[number]>;
18
20
  variant: PropDef<(typeof variants)[number]>;
21
+ showTickLabels: PropDef<boolean>;
22
+ snapToTicks: PropDef<boolean>;
19
23
  };
20
24
 
21
25
  export { sliderPropDefs };