@kushagradhawan/kookie-ui 0.1.29 → 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 (522) hide show
  1. package/components.css +4083 -2224
  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.map +1 -1
  23. package/dist/cjs/components/accordion.js +1 -1
  24. package/dist/cjs/components/accordion.js.map +3 -3
  25. package/dist/cjs/components/accordion.props.d.ts +9 -0
  26. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  27. package/dist/cjs/components/accordion.props.js +1 -1
  28. package/dist/cjs/components/accordion.props.js.map +2 -2
  29. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  30. package/dist/cjs/components/alert-dialog.js +1 -1
  31. package/dist/cjs/components/alert-dialog.js.map +3 -3
  32. package/dist/cjs/components/alert-dialog.props.d.ts +69 -2
  33. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  34. package/dist/cjs/components/alert-dialog.props.js +1 -1
  35. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  36. package/dist/cjs/components/avatar.d.ts.map +1 -1
  37. package/dist/cjs/components/avatar.js +1 -1
  38. package/dist/cjs/components/avatar.js.map +3 -3
  39. package/dist/cjs/components/avatar.props.d.ts +9 -1
  40. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  41. package/dist/cjs/components/avatar.props.js +1 -1
  42. package/dist/cjs/components/avatar.props.js.map +3 -3
  43. package/dist/cjs/components/badge.d.ts +8 -1
  44. package/dist/cjs/components/badge.d.ts.map +1 -1
  45. package/dist/cjs/components/badge.js +1 -1
  46. package/dist/cjs/components/badge.js.map +3 -3
  47. package/dist/cjs/components/badge.props.d.ts +14 -6
  48. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  49. package/dist/cjs/components/badge.props.js +1 -1
  50. package/dist/cjs/components/badge.props.js.map +3 -3
  51. package/dist/cjs/components/blockquote.props.d.ts +1 -1
  52. package/dist/cjs/components/button.d.ts +53 -1
  53. package/dist/cjs/components/button.d.ts.map +1 -1
  54. package/dist/cjs/components/button.js +1 -1
  55. package/dist/cjs/components/button.js.map +3 -3
  56. package/dist/cjs/components/button.props.d.ts +17 -0
  57. package/dist/cjs/components/button.props.d.ts.map +1 -1
  58. package/dist/cjs/components/button.props.js.map +2 -2
  59. package/dist/cjs/components/callout.d.ts +4 -0
  60. package/dist/cjs/components/callout.d.ts.map +1 -1
  61. package/dist/cjs/components/callout.js +1 -1
  62. package/dist/cjs/components/callout.js.map +3 -3
  63. package/dist/cjs/components/callout.props.d.ts +9 -1
  64. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  65. package/dist/cjs/components/callout.props.js +1 -1
  66. package/dist/cjs/components/callout.props.js.map +3 -3
  67. package/dist/cjs/components/card.d.ts.map +1 -1
  68. package/dist/cjs/components/card.js +1 -1
  69. package/dist/cjs/components/card.js.map +3 -3
  70. package/dist/cjs/components/card.props.d.ts +5 -0
  71. package/dist/cjs/components/card.props.d.ts.map +1 -1
  72. package/dist/cjs/components/card.props.js +1 -1
  73. package/dist/cjs/components/card.props.js.map +3 -3
  74. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  75. package/dist/cjs/components/checkbox-cards.js +1 -1
  76. package/dist/cjs/components/checkbox-cards.js.map +3 -3
  77. package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
  78. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  79. package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
  80. package/dist/cjs/components/checkbox-group.props.d.ts +6 -1
  81. package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
  82. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  83. package/dist/cjs/components/checkbox.js +1 -1
  84. package/dist/cjs/components/checkbox.js.map +3 -3
  85. package/dist/cjs/components/code.js.map +1 -1
  86. package/dist/cjs/components/code.props.d.ts +1 -1
  87. package/dist/cjs/components/context-menu.d.ts +1 -1
  88. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  89. package/dist/cjs/components/context-menu.js +1 -1
  90. package/dist/cjs/components/context-menu.js.map +3 -3
  91. package/dist/cjs/components/dialog.d.ts.map +1 -1
  92. package/dist/cjs/components/dialog.js +1 -1
  93. package/dist/cjs/components/dialog.js.map +3 -3
  94. package/dist/cjs/components/dialog.props.d.ts +5 -0
  95. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  96. package/dist/cjs/components/dialog.props.js +1 -1
  97. package/dist/cjs/components/dialog.props.js.map +3 -3
  98. package/dist/cjs/components/dropdown-menu.d.ts +1 -1
  99. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  100. package/dist/cjs/components/dropdown-menu.js +1 -1
  101. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  102. package/dist/cjs/components/heading.props.d.ts +1 -1
  103. package/dist/cjs/components/icon-button.d.ts +79 -1
  104. package/dist/cjs/components/icon-button.d.ts.map +1 -1
  105. package/dist/cjs/components/icon-button.js +4 -1
  106. package/dist/cjs/components/icon-button.js.map +3 -3
  107. package/dist/cjs/components/image.d.ts +131 -12
  108. package/dist/cjs/components/image.d.ts.map +1 -1
  109. package/dist/cjs/components/image.js +1 -1
  110. package/dist/cjs/components/image.js.map +3 -3
  111. package/dist/cjs/components/image.props.d.ts +136 -21
  112. package/dist/cjs/components/image.props.d.ts.map +1 -1
  113. package/dist/cjs/components/image.props.js +1 -1
  114. package/dist/cjs/components/image.props.js.map +3 -3
  115. package/dist/cjs/components/link.props.d.ts +1 -1
  116. package/dist/cjs/components/progress.props.d.ts +2 -2
  117. package/dist/cjs/components/progress.props.js +1 -1
  118. package/dist/cjs/components/progress.props.js.map +2 -2
  119. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  120. package/dist/cjs/components/radio-cards.js +1 -1
  121. package/dist/cjs/components/radio-cards.js.map +3 -3
  122. package/dist/cjs/components/radio-cards.props.d.ts +2 -2
  123. package/dist/cjs/components/radio-cards.props.js +1 -1
  124. package/dist/cjs/components/radio-cards.props.js.map +2 -2
  125. package/dist/cjs/components/radio.d.ts.map +1 -1
  126. package/dist/cjs/components/radio.js +1 -1
  127. package/dist/cjs/components/radio.js.map +3 -3
  128. package/dist/cjs/components/segmented-control.props.d.ts +3 -3
  129. package/dist/cjs/components/segmented-control.props.js +1 -1
  130. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  131. package/dist/cjs/components/select.d.ts.map +1 -1
  132. package/dist/cjs/components/select.js +1 -1
  133. package/dist/cjs/components/select.js.map +3 -3
  134. package/dist/cjs/components/select.props.d.ts +12 -0
  135. package/dist/cjs/components/select.props.d.ts.map +1 -1
  136. package/dist/cjs/components/select.props.js +1 -1
  137. package/dist/cjs/components/select.props.js.map +2 -2
  138. package/dist/cjs/components/sidebar.d.ts +5 -0
  139. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  140. package/dist/cjs/components/sidebar.js +1 -1
  141. package/dist/cjs/components/sidebar.js.map +3 -3
  142. package/dist/cjs/components/slider.d.ts +5 -0
  143. package/dist/cjs/components/slider.d.ts.map +1 -1
  144. package/dist/cjs/components/slider.js +1 -1
  145. package/dist/cjs/components/slider.js.map +3 -3
  146. package/dist/cjs/components/slider.props.d.ts +10 -2
  147. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  148. package/dist/cjs/components/slider.props.js +1 -1
  149. package/dist/cjs/components/slider.props.js.map +2 -2
  150. package/dist/cjs/components/switch.d.ts.map +1 -1
  151. package/dist/cjs/components/switch.js +1 -1
  152. package/dist/cjs/components/switch.js.map +3 -3
  153. package/dist/cjs/components/switch.props.d.ts +17 -4
  154. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  155. package/dist/cjs/components/switch.props.js +1 -1
  156. package/dist/cjs/components/switch.props.js.map +3 -3
  157. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  158. package/dist/cjs/components/tab-nav.js +1 -1
  159. package/dist/cjs/components/tab-nav.js.map +3 -3
  160. package/dist/cjs/components/tabs.d.ts.map +1 -1
  161. package/dist/cjs/components/tabs.js +1 -1
  162. package/dist/cjs/components/tabs.js.map +2 -2
  163. package/dist/cjs/components/text-area.d.ts.map +1 -1
  164. package/dist/cjs/components/text-area.js +1 -1
  165. package/dist/cjs/components/text-area.js.map +3 -3
  166. package/dist/cjs/components/text-area.props.d.ts +29 -0
  167. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  168. package/dist/cjs/components/text-area.props.js +1 -1
  169. package/dist/cjs/components/text-area.props.js.map +3 -3
  170. package/dist/cjs/components/text-field.d.ts.map +1 -1
  171. package/dist/cjs/components/text-field.js +4 -4
  172. package/dist/cjs/components/text-field.js.map +3 -3
  173. package/dist/cjs/components/text-field.props.d.ts +29 -0
  174. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  175. package/dist/cjs/components/text-field.props.js +1 -1
  176. package/dist/cjs/components/text-field.props.js.map +3 -3
  177. package/dist/cjs/components/text.props.d.ts +1 -1
  178. package/dist/cjs/components/theme.d.ts +3 -0
  179. package/dist/cjs/components/theme.d.ts.map +1 -1
  180. package/dist/cjs/components/theme.js +1 -1
  181. package/dist/cjs/components/theme.js.map +3 -3
  182. package/dist/cjs/components/theme.props.d.ts +14 -0
  183. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  184. package/dist/cjs/components/theme.props.js +1 -1
  185. package/dist/cjs/components/theme.props.js.map +3 -3
  186. package/dist/cjs/components/toggle-button.d.ts +52 -0
  187. package/dist/cjs/components/toggle-button.d.ts.map +1 -1
  188. package/dist/cjs/components/toggle-button.js +1 -1
  189. package/dist/cjs/components/toggle-button.js.map +3 -3
  190. package/dist/cjs/components/toggle-icon-button.d.ts +84 -2
  191. package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
  192. package/dist/cjs/components/toggle-icon-button.js +1 -1
  193. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  194. package/dist/cjs/hooks/index.d.ts +2 -0
  195. package/dist/cjs/hooks/index.d.ts.map +1 -0
  196. package/dist/cjs/hooks/index.js +2 -0
  197. package/dist/cjs/hooks/index.js.map +7 -0
  198. package/dist/cjs/hooks/use-live-announcer.d.ts +6 -0
  199. package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -0
  200. package/dist/cjs/hooks/use-live-announcer.js +10 -0
  201. package/dist/cjs/hooks/use-live-announcer.js.map +7 -0
  202. package/dist/cjs/index.d.ts +1 -0
  203. package/dist/cjs/index.d.ts.map +1 -1
  204. package/dist/cjs/index.js +1 -1
  205. package/dist/cjs/index.js.map +2 -2
  206. package/dist/cjs/props/weight.prop.d.ts +1 -1
  207. package/dist/cjs/props/weight.prop.js +1 -1
  208. package/dist/cjs/props/weight.prop.js.map +2 -2
  209. package/dist/esm/components/_internal/base-button.d.ts +36 -0
  210. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  211. package/dist/esm/components/_internal/base-button.js +1 -1
  212. package/dist/esm/components/_internal/base-button.js.map +3 -3
  213. package/dist/esm/components/_internal/base-button.props.d.ts +61 -0
  214. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  215. package/dist/esm/components/_internal/base-button.props.js +1 -1
  216. package/dist/esm/components/_internal/base-button.props.js.map +3 -3
  217. package/dist/esm/components/_internal/base-checkbox.props.d.ts +6 -1
  218. package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
  219. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  220. package/dist/esm/components/_internal/base-checkbox.props.js.map +3 -3
  221. package/dist/esm/components/_internal/base-menu.props.d.ts +8 -0
  222. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  223. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  224. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  225. package/dist/esm/components/_internal/base-radio.props.d.ts +6 -1
  226. package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
  227. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  228. package/dist/esm/components/_internal/base-radio.props.js.map +3 -3
  229. package/dist/esm/components/accordion.d.ts.map +1 -1
  230. package/dist/esm/components/accordion.js +1 -1
  231. package/dist/esm/components/accordion.js.map +3 -3
  232. package/dist/esm/components/accordion.props.d.ts +9 -0
  233. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  234. package/dist/esm/components/accordion.props.js +1 -1
  235. package/dist/esm/components/accordion.props.js.map +2 -2
  236. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  237. package/dist/esm/components/alert-dialog.js +1 -1
  238. package/dist/esm/components/alert-dialog.js.map +3 -3
  239. package/dist/esm/components/alert-dialog.props.d.ts +69 -2
  240. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  241. package/dist/esm/components/alert-dialog.props.js +1 -1
  242. package/dist/esm/components/alert-dialog.props.js.map +3 -3
  243. package/dist/esm/components/avatar.d.ts.map +1 -1
  244. package/dist/esm/components/avatar.js +1 -1
  245. package/dist/esm/components/avatar.js.map +3 -3
  246. package/dist/esm/components/avatar.props.d.ts +9 -1
  247. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  248. package/dist/esm/components/avatar.props.js +1 -1
  249. package/dist/esm/components/avatar.props.js.map +3 -3
  250. package/dist/esm/components/badge.d.ts +8 -1
  251. package/dist/esm/components/badge.d.ts.map +1 -1
  252. package/dist/esm/components/badge.js +1 -1
  253. package/dist/esm/components/badge.js.map +3 -3
  254. package/dist/esm/components/badge.props.d.ts +14 -6
  255. package/dist/esm/components/badge.props.d.ts.map +1 -1
  256. package/dist/esm/components/badge.props.js +1 -1
  257. package/dist/esm/components/badge.props.js.map +3 -3
  258. package/dist/esm/components/blockquote.props.d.ts +1 -1
  259. package/dist/esm/components/button.d.ts +53 -1
  260. package/dist/esm/components/button.d.ts.map +1 -1
  261. package/dist/esm/components/button.js +1 -1
  262. package/dist/esm/components/button.js.map +3 -3
  263. package/dist/esm/components/button.props.d.ts +17 -0
  264. package/dist/esm/components/button.props.d.ts.map +1 -1
  265. package/dist/esm/components/button.props.js.map +2 -2
  266. package/dist/esm/components/callout.d.ts +4 -0
  267. package/dist/esm/components/callout.d.ts.map +1 -1
  268. package/dist/esm/components/callout.js +1 -1
  269. package/dist/esm/components/callout.js.map +3 -3
  270. package/dist/esm/components/callout.props.d.ts +9 -1
  271. package/dist/esm/components/callout.props.d.ts.map +1 -1
  272. package/dist/esm/components/callout.props.js +1 -1
  273. package/dist/esm/components/callout.props.js.map +3 -3
  274. package/dist/esm/components/card.d.ts.map +1 -1
  275. package/dist/esm/components/card.js +1 -1
  276. package/dist/esm/components/card.js.map +3 -3
  277. package/dist/esm/components/card.props.d.ts +5 -0
  278. package/dist/esm/components/card.props.d.ts.map +1 -1
  279. package/dist/esm/components/card.props.js +1 -1
  280. package/dist/esm/components/card.props.js.map +3 -3
  281. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  282. package/dist/esm/components/checkbox-cards.js +1 -1
  283. package/dist/esm/components/checkbox-cards.js.map +3 -3
  284. package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
  285. package/dist/esm/components/checkbox-cards.props.js +1 -1
  286. package/dist/esm/components/checkbox-cards.props.js.map +2 -2
  287. package/dist/esm/components/checkbox-group.props.d.ts +6 -1
  288. package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
  289. package/dist/esm/components/checkbox.d.ts.map +1 -1
  290. package/dist/esm/components/checkbox.js +1 -1
  291. package/dist/esm/components/checkbox.js.map +3 -3
  292. package/dist/esm/components/code.js.map +1 -1
  293. package/dist/esm/components/code.props.d.ts +1 -1
  294. package/dist/esm/components/context-menu.d.ts +1 -1
  295. package/dist/esm/components/context-menu.d.ts.map +1 -1
  296. package/dist/esm/components/context-menu.js +1 -1
  297. package/dist/esm/components/context-menu.js.map +3 -3
  298. package/dist/esm/components/dialog.d.ts.map +1 -1
  299. package/dist/esm/components/dialog.js +1 -1
  300. package/dist/esm/components/dialog.js.map +3 -3
  301. package/dist/esm/components/dialog.props.d.ts +5 -0
  302. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  303. package/dist/esm/components/dialog.props.js +1 -1
  304. package/dist/esm/components/dialog.props.js.map +3 -3
  305. package/dist/esm/components/dropdown-menu.d.ts +1 -1
  306. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  307. package/dist/esm/components/dropdown-menu.js +1 -1
  308. package/dist/esm/components/dropdown-menu.js.map +3 -3
  309. package/dist/esm/components/heading.props.d.ts +1 -1
  310. package/dist/esm/components/icon-button.d.ts +79 -1
  311. package/dist/esm/components/icon-button.d.ts.map +1 -1
  312. package/dist/esm/components/icon-button.js +4 -1
  313. package/dist/esm/components/icon-button.js.map +3 -3
  314. package/dist/esm/components/image.d.ts +131 -12
  315. package/dist/esm/components/image.d.ts.map +1 -1
  316. package/dist/esm/components/image.js +1 -1
  317. package/dist/esm/components/image.js.map +3 -3
  318. package/dist/esm/components/image.props.d.ts +136 -21
  319. package/dist/esm/components/image.props.d.ts.map +1 -1
  320. package/dist/esm/components/image.props.js +1 -1
  321. package/dist/esm/components/image.props.js.map +3 -3
  322. package/dist/esm/components/link.props.d.ts +1 -1
  323. package/dist/esm/components/progress.props.d.ts +2 -2
  324. package/dist/esm/components/progress.props.js +1 -1
  325. package/dist/esm/components/progress.props.js.map +2 -2
  326. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  327. package/dist/esm/components/radio-cards.js +1 -1
  328. package/dist/esm/components/radio-cards.js.map +3 -3
  329. package/dist/esm/components/radio-cards.props.d.ts +2 -2
  330. package/dist/esm/components/radio-cards.props.js +1 -1
  331. package/dist/esm/components/radio-cards.props.js.map +2 -2
  332. package/dist/esm/components/radio.d.ts.map +1 -1
  333. package/dist/esm/components/radio.js +1 -1
  334. package/dist/esm/components/radio.js.map +3 -3
  335. package/dist/esm/components/segmented-control.props.d.ts +3 -3
  336. package/dist/esm/components/segmented-control.props.js +1 -1
  337. package/dist/esm/components/segmented-control.props.js.map +2 -2
  338. package/dist/esm/components/select.d.ts.map +1 -1
  339. package/dist/esm/components/select.js +1 -1
  340. package/dist/esm/components/select.js.map +3 -3
  341. package/dist/esm/components/select.props.d.ts +12 -0
  342. package/dist/esm/components/select.props.d.ts.map +1 -1
  343. package/dist/esm/components/select.props.js +1 -1
  344. package/dist/esm/components/select.props.js.map +2 -2
  345. package/dist/esm/components/sidebar.d.ts +5 -0
  346. package/dist/esm/components/sidebar.d.ts.map +1 -1
  347. package/dist/esm/components/sidebar.js +1 -1
  348. package/dist/esm/components/sidebar.js.map +3 -3
  349. package/dist/esm/components/slider.d.ts +5 -0
  350. package/dist/esm/components/slider.d.ts.map +1 -1
  351. package/dist/esm/components/slider.js +1 -1
  352. package/dist/esm/components/slider.js.map +3 -3
  353. package/dist/esm/components/slider.props.d.ts +10 -2
  354. package/dist/esm/components/slider.props.d.ts.map +1 -1
  355. package/dist/esm/components/slider.props.js +1 -1
  356. package/dist/esm/components/slider.props.js.map +2 -2
  357. package/dist/esm/components/switch.d.ts.map +1 -1
  358. package/dist/esm/components/switch.js +1 -1
  359. package/dist/esm/components/switch.js.map +3 -3
  360. package/dist/esm/components/switch.props.d.ts +17 -4
  361. package/dist/esm/components/switch.props.d.ts.map +1 -1
  362. package/dist/esm/components/switch.props.js +1 -1
  363. package/dist/esm/components/switch.props.js.map +3 -3
  364. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  365. package/dist/esm/components/tab-nav.js +1 -1
  366. package/dist/esm/components/tab-nav.js.map +3 -3
  367. package/dist/esm/components/tabs.d.ts.map +1 -1
  368. package/dist/esm/components/tabs.js +1 -1
  369. package/dist/esm/components/tabs.js.map +2 -2
  370. package/dist/esm/components/text-area.d.ts.map +1 -1
  371. package/dist/esm/components/text-area.js +1 -1
  372. package/dist/esm/components/text-area.js.map +3 -3
  373. package/dist/esm/components/text-area.props.d.ts +29 -0
  374. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  375. package/dist/esm/components/text-area.props.js +1 -1
  376. package/dist/esm/components/text-area.props.js.map +3 -3
  377. package/dist/esm/components/text-field.d.ts.map +1 -1
  378. package/dist/esm/components/text-field.js +4 -4
  379. package/dist/esm/components/text-field.js.map +3 -3
  380. package/dist/esm/components/text-field.props.d.ts +29 -0
  381. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  382. package/dist/esm/components/text-field.props.js +1 -1
  383. package/dist/esm/components/text-field.props.js.map +3 -3
  384. package/dist/esm/components/text.props.d.ts +1 -1
  385. package/dist/esm/components/theme.d.ts +3 -0
  386. package/dist/esm/components/theme.d.ts.map +1 -1
  387. package/dist/esm/components/theme.js +1 -1
  388. package/dist/esm/components/theme.js.map +3 -3
  389. package/dist/esm/components/theme.props.d.ts +14 -0
  390. package/dist/esm/components/theme.props.d.ts.map +1 -1
  391. package/dist/esm/components/theme.props.js +1 -1
  392. package/dist/esm/components/theme.props.js.map +3 -3
  393. package/dist/esm/components/toggle-button.d.ts +52 -0
  394. package/dist/esm/components/toggle-button.d.ts.map +1 -1
  395. package/dist/esm/components/toggle-button.js +1 -1
  396. package/dist/esm/components/toggle-button.js.map +3 -3
  397. package/dist/esm/components/toggle-icon-button.d.ts +84 -2
  398. package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
  399. package/dist/esm/components/toggle-icon-button.js +1 -1
  400. package/dist/esm/components/toggle-icon-button.js.map +3 -3
  401. package/dist/esm/hooks/index.d.ts +2 -0
  402. package/dist/esm/hooks/index.d.ts.map +1 -0
  403. package/dist/esm/hooks/index.js +2 -0
  404. package/dist/esm/hooks/index.js.map +7 -0
  405. package/dist/esm/hooks/use-live-announcer.d.ts +6 -0
  406. package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -0
  407. package/dist/esm/hooks/use-live-announcer.js +10 -0
  408. package/dist/esm/hooks/use-live-announcer.js.map +7 -0
  409. package/dist/esm/index.d.ts +1 -0
  410. package/dist/esm/index.d.ts.map +1 -1
  411. package/dist/esm/index.js +1 -1
  412. package/dist/esm/index.js.map +2 -2
  413. package/dist/esm/props/weight.prop.d.ts +1 -1
  414. package/dist/esm/props/weight.prop.js +1 -1
  415. package/dist/esm/props/weight.prop.js.map +2 -2
  416. package/layout/components.css +1 -0
  417. package/layout.css +1 -0
  418. package/package.json +2 -1
  419. package/src/components/_internal/base-button.css +483 -284
  420. package/src/components/_internal/base-button.props.ts +87 -0
  421. package/src/components/_internal/base-button.tsx +127 -10
  422. package/src/components/_internal/base-card.css +866 -83
  423. package/src/components/_internal/base-checkbox.css +252 -52
  424. package/src/components/_internal/base-checkbox.props.ts +4 -1
  425. package/src/components/_internal/base-dialog.css +39 -8
  426. package/src/components/_internal/base-menu.css +55 -32
  427. package/src/components/_internal/base-menu.props.ts +10 -0
  428. package/src/components/_internal/base-radio.css +222 -52
  429. package/src/components/_internal/base-radio.props.ts +4 -1
  430. package/src/components/_internal/base-tab-list.css +16 -0
  431. package/src/components/accordion.css +465 -62
  432. package/src/components/accordion.props.tsx +6 -0
  433. package/src/components/accordion.tsx +54 -7
  434. package/src/components/alert-dialog.props.tsx +22 -2
  435. package/src/components/alert-dialog.tsx +94 -3
  436. package/src/components/avatar.css +294 -152
  437. package/src/components/avatar.props.tsx +7 -1
  438. package/src/components/avatar.tsx +12 -2
  439. package/src/components/badge.css +160 -138
  440. package/src/components/badge.props.tsx +10 -3
  441. package/src/components/badge.tsx +71 -9
  442. package/src/components/button.css +88 -0
  443. package/src/components/button.props.tsx +17 -0
  444. package/src/components/button.tsx +107 -5
  445. package/src/components/callout.css +122 -35
  446. package/src/components/callout.props.tsx +7 -1
  447. package/src/components/callout.tsx +32 -9
  448. package/src/components/card.css +0 -597
  449. package/src/components/card.props.tsx +3 -0
  450. package/src/components/card.tsx +4 -2
  451. package/src/components/checkbox-cards.css +27 -104
  452. package/src/components/checkbox-cards.props.tsx +2 -2
  453. package/src/components/checkbox-cards.tsx +21 -3
  454. package/src/components/checkbox.tsx +2 -0
  455. package/src/components/code.css +1 -1
  456. package/src/components/code.tsx +1 -1
  457. package/src/components/container.css +1 -0
  458. package/src/components/context-menu.tsx +54 -12
  459. package/src/components/dialog.props.tsx +3 -0
  460. package/src/components/dialog.tsx +93 -3
  461. package/src/components/dropdown-menu.tsx +49 -12
  462. package/src/components/icon-button.css +73 -4
  463. package/src/components/icon-button.tsx +125 -19
  464. package/src/components/image.css +160 -91
  465. package/src/components/image.props.ts +152 -15
  466. package/src/components/image.tsx +290 -247
  467. package/src/components/kbd.css +23 -44
  468. package/src/components/progress.css +130 -149
  469. package/src/components/progress.props.tsx +2 -2
  470. package/src/components/radio-cards.css +23 -113
  471. package/src/components/radio-cards.props.tsx +2 -2
  472. package/src/components/radio-cards.tsx +45 -18
  473. package/src/components/radio.tsx +4 -3
  474. package/src/components/scroll-area.css +1 -1
  475. package/src/components/segmented-control.css +83 -64
  476. package/src/components/segmented-control.props.tsx +3 -3
  477. package/src/components/select.css +502 -224
  478. package/src/components/select.props.tsx +8 -0
  479. package/src/components/select.tsx +45 -2
  480. package/src/components/sidebar.css +17 -6
  481. package/src/components/sidebar.tsx +61 -5
  482. package/src/components/slider.css +228 -88
  483. package/src/components/slider.props.tsx +6 -2
  484. package/src/components/slider.tsx +201 -24
  485. package/src/components/spinner.css +12 -0
  486. package/src/components/switch.css +135 -216
  487. package/src/components/switch.props.tsx +16 -4
  488. package/src/components/switch.tsx +5 -3
  489. package/src/components/tab-nav.tsx +6 -3
  490. package/src/components/tabs.tsx +2 -0
  491. package/src/components/text-area.css +222 -140
  492. package/src/components/text-area.props.tsx +18 -1
  493. package/src/components/text-area.tsx +58 -7
  494. package/src/components/text-field.css +214 -131
  495. package/src/components/text-field.props.tsx +17 -0
  496. package/src/components/text-field.tsx +79 -28
  497. package/src/components/theme.props.tsx +12 -0
  498. package/src/components/theme.tsx +31 -1
  499. package/src/components/toggle-button.tsx +102 -3
  500. package/src/components/toggle-icon-button.tsx +150 -7
  501. package/src/components/tooltip.css +3 -3
  502. package/src/hooks/index.ts +1 -0
  503. package/src/hooks/use-live-announcer.ts +52 -0
  504. package/src/index.ts +1 -0
  505. package/src/props/weight.prop.ts +1 -1
  506. package/src/styles/fonts.css +27 -13
  507. package/src/styles/index.css +1 -1
  508. package/src/styles/tokens/base.css +2 -0
  509. package/src/styles/tokens/blur.css +32 -0
  510. package/src/styles/tokens/color.css +9 -9
  511. package/src/styles/tokens/constants.css +88 -140
  512. package/src/styles/tokens/index.css +2 -0
  513. package/src/styles/tokens/opacity.css +32 -0
  514. package/src/styles/tokens/radius.css +6 -10
  515. package/src/styles/tokens/shadow.css +25 -25
  516. package/src/styles/tokens/transition.css +49 -13
  517. package/src/styles/tokens/typography.css +7 -3
  518. package/src/styles/utilities/font-weight.css +16 -0
  519. package/styles.css +10689 -8708
  520. package/tokens/base.css +127 -49
  521. package/tokens.css +158 -114
  522. package/utilities.css +72 -0
@@ -69,6 +69,18 @@
69
69
  }
70
70
  }
71
71
 
72
+ /* Enhanced reduced motion support */
73
+ @media (prefers-reduced-motion: reduce) {
74
+ .rt-Spinner {
75
+ animation: none;
76
+ }
77
+
78
+ .rt-SpinnerLeaf {
79
+ animation: none;
80
+ opacity: 0.5;
81
+ }
82
+ }
83
+
72
84
  /***************************************************************************************************
73
85
  * *
74
86
  * SIZES *
@@ -1,15 +1,4 @@
1
- :where(.radix-themes) {
2
- --switch-disabled-blend-mode: multiply;
3
- --switch-high-contrast-checked-color-overlay: var(--black-a8);
4
- --switch-high-contrast-checked-active-before-filter: contrast(0.82) saturate(1.2) brightness(1.16);
5
- }
6
-
7
- :is(.dark, .dark-theme),
8
- :is(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
9
- --switch-disabled-blend-mode: screen;
10
- --switch-high-contrast-checked-color-overlay: transparent;
11
- --switch-high-contrast-checked-active-before-filter: brightness(1.08);
12
- }
1
+ /* Disabled state uses simple opacity instead of complex blend modes */
13
2
 
14
3
  .rt-SwitchRoot {
15
4
  position: relative;
@@ -17,57 +6,55 @@
17
6
  align-items: center;
18
7
  vertical-align: top;
19
8
  flex-shrink: 0;
20
-
21
- /* Unless in a skeleton, align with text line height when possible and fall back to own height */
22
- height: var(--skeleton-height, var(--line-height, var(--switch-height)));
23
- --skeleton-height-override: var(--switch-height);
24
-
25
- /* Set root radius when in a skeleton */
26
- border-radius: var(--skeleton-radius);
27
- --skeleton-radius-override: var(--switch-border-radius);
9
+ height: var(--switch-height);
10
+ border-radius: 9999px;
28
11
 
29
12
  --switch-width: calc(var(--switch-height) * 1.75);
30
13
  --switch-thumb-inset: 1px;
31
14
  --switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);
32
15
  --switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height));
33
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
+
34
43
  &::before {
35
44
  content: '';
36
45
  display: block;
37
46
  width: var(--switch-width);
38
47
  height: var(--switch-height);
39
- border-radius: var(--switch-border-radius);
40
- transition: background-position, background-color, box-shadow, filter;
41
- transition-timing-function: linear, ease-in-out, ease-in-out, ease-in-out;
42
- background-repeat: no-repeat;
43
-
44
- /*
45
- * Length of the gradient is: switch width for the checked part, plus switch
46
- * height for the thumb part, plus another switch width for the unchecked part
47
- */
48
- background-size: calc(var(--switch-width) * 2 + var(--switch-height)) 100%;
48
+ border-radius: 9999px;
49
+ transition: background-color var(--transition-standard), box-shadow var(--transition-standard);
50
+ cursor: var(--cursor-switch);
49
51
  }
50
52
 
51
- &:where([data-state='unchecked'])::before {
52
- transition-duration: 120ms, 140ms, 140ms, 140ms;
53
- background-position-x: 100%;
54
- }
55
- &:where([data-state='checked'])::before {
56
- transition-duration: 160ms, 140ms, 140ms, 140ms;
57
- background-position: 0%;
58
- }
59
- &:where(:active)::before {
60
- transition-duration: 30ms;
61
- }
62
53
  &:where(:focus-visible)::before {
63
54
  outline: 2px solid var(--focus-8);
64
55
  outline-offset: 2px;
65
56
  }
66
57
 
67
- /* Cursors */
68
- &::before {
69
- cursor: var(--cursor-switch);
70
- }
71
58
  &:where([data-disabled])::before {
72
59
  cursor: var(--cursor-disabled);
73
60
  }
@@ -79,8 +66,9 @@
79
66
  left: var(--switch-thumb-inset);
80
67
  width: var(--switch-thumb-size);
81
68
  height: var(--switch-thumb-size);
82
- border-radius: calc(var(--switch-border-radius) - var(--switch-thumb-inset));
83
- transition: transform 140ms cubic-bezier(0.45, 0.05, 0.55, 0.95), box-shadow 140ms ease-in-out;
69
+ border-radius: 9999px;
70
+ box-shadow: var(--shadow-2);
71
+ transition: transform var(--transition-standard), box-shadow var(--transition-standard);
84
72
 
85
73
  &:where([data-state='checked']) {
86
74
  transform: translateX(var(--switch-thumb-translate-x));
@@ -97,15 +85,15 @@
97
85
  .rt-SwitchRoot {
98
86
  &:where(.rt-r-size-1) {
99
87
  --switch-height: var(--space-4);
100
- --switch-border-radius: max(var(--radius-1), var(--radius-thumb));
101
88
  }
102
89
  &:where(.rt-r-size-2) {
103
- --switch-height: calc(var(--space-5) * 5 / 6);
104
- --switch-border-radius: max(var(--radius-2), var(--radius-thumb));
90
+ --switch-height: calc(var(--space-5));
105
91
  }
106
92
  &:where(.rt-r-size-3) {
107
- --switch-height: var(--space-5);
108
- --switch-border-radius: max(var(--radius-2), var(--radius-thumb));
93
+ --switch-height: var(--space-6);
94
+ }
95
+ &:where(.rt-r-size-4) {
96
+ --switch-height: var(--space-7);
109
97
  }
110
98
  }
111
99
  }
@@ -118,205 +106,136 @@
118
106
 
119
107
  /* surface */
120
108
 
121
- :where(.radix-themes) {
122
- --switch-surface-checked-active-filter: brightness(0.92) saturate(1.1);
123
- }
124
-
125
- :is(.dark, .dark-theme),
126
- :is(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
127
- --switch-surface-checked-active-filter: brightness(1.08);
128
- }
129
-
130
109
  .rt-SwitchRoot:where(.rt-variant-surface) {
131
110
  &::before {
132
- background-color: var(--gray-a3);
133
- background-image: linear-gradient(to right, var(--accent-track) 40%, transparent 60%);
134
- box-shadow: inset 0 0 0 1px var(--gray-a5);
135
- }
136
- &:where(:active)::before {
137
- background-color: var(--gray-a4);
138
- }
139
- &:where([data-state='checked']:active)::before {
140
- filter: var(--switch-surface-checked-active-filter);
141
- }
142
- &:where(.rt-high-contrast) {
143
- &::before {
144
- /* prettier-ignore */
145
- background-image:
146
- linear-gradient(to right, var(--switch-high-contrast-checked-color-overlay) 40%, transparent 60%),
147
- linear-gradient(to right, var(--accent-track) 40%, transparent 60%);
111
+ background-color: var(--gray-2);
112
+ box-shadow: inset 0 0 0 1px var(--gray-6);
113
+
114
+ /* Theme-level translucent override */
115
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
116
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
117
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
148
118
  }
149
- &:where([data-state='checked']:active)::before {
150
- filter: var(--switch-high-contrast-checked-active-before-filter);
119
+
120
+ /* Component-level overrides */
121
+ &:where([data-panel-background='solid'], [data-material='solid']) {
122
+ background-color: var(--gray-2);
123
+ box-shadow: inset 0 0 0 1px var(--gray-6);
151
124
  }
152
- }
153
- &:where([data-disabled]) {
154
- mix-blend-mode: var(--switch-disabled-blend-mode);
155
-
156
- &::before {
157
- filter: none;
158
- background-image: none;
159
- background-color: var(--gray-a3);
160
- box-shadow: inset 0 0 0 1px var(--gray-a3);
125
+
126
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
127
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
128
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
161
129
  }
162
130
  }
131
+
132
+ &:where([data-state='checked'])::before {
133
+ background-color: var(--accent-9);
134
+ box-shadow: none;
135
+ }
163
136
 
164
- & :where(.rt-SwitchThumb) {
165
- &:where([data-state='unchecked']) {
166
- box-shadow: 0 0 1px 1px var(--black-a2), 0 1px 1px var(--black-a1), 0 2px 4px -1px var(--black-a1);
167
- }
168
- &:where([data-state='checked']) {
169
- box-shadow: 0 1px 3px var(--black-a2), 0 2px 4px -1px var(--black-a1), 0 0 0 1px var(--black-a1),
170
- 0 0 0 1px var(--accent-a4), -1px 0 1px var(--black-a2);
171
-
172
- &:where(.rt-high-contrast) {
173
- box-shadow: 0 1px 3px var(--black-a2), 0 2px 4px -1px var(--black-a1), 0 0 0 1px var(--black-a2),
174
- -1px 0 1px var(--black-a2);
175
- }
176
- }
177
- &:where([data-disabled]) {
178
- background-color: var(--gray-2);
179
- box-shadow: 0 0 0 1px var(--gray-a2), 0 1px 3px var(--black-a1);
180
- /* Avoid the Chrome P3 bug with transition through red when changing light/dark mode */
181
- transition: none;
137
+ &:where(.rt-high-contrast) {
138
+ &:where([data-state='checked'])::before {
139
+ background-color: var(--accent-12);
140
+ box-shadow: none;
182
141
  }
183
142
  }
184
- }
143
+
144
+
185
145
 
186
- /* classic */
187
146
 
188
- :where(.radix-themes) {
189
- --switch-surface-checked-active-filter: brightness(0.92) saturate(1.1);
190
- }
191
- :is(.dark, .dark-theme),
192
- :is(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
193
- --switch-surface-checked-active-filter: brightness(1.08);
194
147
  }
195
148
 
196
- .rt-SwitchRoot:where(.rt-variant-classic) {
149
+ /* soft */
150
+
151
+ .rt-SwitchRoot:where(.rt-variant-soft) {
197
152
  &::before {
198
- background-image: linear-gradient(to right, var(--accent-track) 40%, transparent 60%);
199
- background-color: var(--gray-a4);
200
- box-shadow: var(--classic-inset-shadow-dark);
201
- }
202
- &:where([data-state='unchecked']:active)::before {
203
- background-color: var(--gray-a5);
204
- }
205
- &:where([data-state='checked'])::before {
206
- 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),
207
- inset 0 var(--slider-classic-inset-offset) 2px 0 var(--black-a2);
208
- }
209
- &:where([data-state='checked']:active)::before {
210
- filter: var(--switch-surface-checked-active-filter);
211
- }
212
- &:where(.rt-high-contrast) {
213
- &::before {
214
- 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);
153
+ background-color: var(--gray-3);
215
154
 
216
- /* prettier-ignore */
217
- background-image:
218
- linear-gradient(to right, var(--switch-high-contrast-checked-color-overlay) 40%, transparent 60%),
219
- linear-gradient(to right, var(--accent-track) 40%, transparent 60%);
155
+ /* Theme-level translucent override */
156
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
157
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
220
158
  }
221
- &:where([data-state='checked']:active)::before {
222
- filter: var(--switch-high-contrast-checked-active-before-filter);
159
+
160
+ /* Component-level overrides */
161
+ &:where([data-panel-background='solid'], [data-material='solid']) {
162
+ background-color: var(--gray-3);
223
163
  }
224
- }
225
- &:where([data-disabled]) {
226
- mix-blend-mode: var(--switch-disabled-blend-mode);
227
-
228
- &::before {
229
- filter: none;
230
- background-image: none;
231
- background-color: var(--gray-a5);
232
- box-shadow: var(--classic-inset-shadow-dark);
233
- opacity: var(--opacity-disabled);
164
+
165
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
166
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
234
167
  }
235
168
  }
169
+
170
+ &:where([data-state='checked'])::before {
171
+ background-color: var(--accent-9);
172
+ }
236
173
 
237
- & :where(.rt-SwitchThumb) {
238
- &:where([data-state='unchecked']) {
239
- box-shadow: 0 1px 3px var(--black-a3), 0 2px 4px -1px var(--black-a1), 0 0 0 1px var(--black-a2);
240
- }
241
- &:where([data-state='checked']) {
242
- box-shadow: 0 1px 3px var(--black-a2), 0 2px 4px -1px var(--black-a1), 0 0 0 1px var(--black-a1),
243
- 0 0 0 1px var(--accent-a4), -1px 0 1px var(--black-a2);
244
-
245
- &:where(.rt-high-contrast) {
246
- box-shadow: 0 1px 3px var(--black-a2), 0 2px 4px -1px var(--black-a1), 0 0 0 1px var(--black-a2),
247
- -1px 0 1px var(--black-a2);
248
- }
249
- }
250
- &:where([data-disabled]) {
251
- background-color: var(--gray-2);
252
- box-shadow: 0 0 0 1px var(--gray-a2), 0 1px 3px var(--black-a1);
253
- /* Avoid the Chrome P3 bug with transition through red when changing light/dark mode */
254
- transition: none;
174
+ &:where(.rt-high-contrast) {
175
+ &:where([data-state='checked'])::before {
176
+ background-color: var(--accent-12);
255
177
  }
256
178
  }
257
179
  }
258
180
 
259
- /* soft */
181
+ /* outline */
260
182
 
261
- .rt-SwitchRoot:where(.rt-variant-soft) {
262
- /* prettier-ignore */
183
+ .rt-SwitchRoot:where(.rt-variant-outline) {
263
184
  &::before {
264
- background-image:
265
- linear-gradient(to right, var(--accent-a4) 40%, transparent 60%),
266
- linear-gradient(to right, var(--accent-a4) 40%, transparent 60%),
267
- /* Blend with white to increase contrast in dark mode */
268
- linear-gradient(to right, var(--accent-a4) 40%, var(--white-a1) 60%),
269
- linear-gradient(to right, var(--gray-a2) 40%, var(--gray-a3) 60%);
270
- }
271
- &:where([data-state='unchecked'])::before {
272
- background-color: var(--gray-a3);
273
- }
274
- &:where(:active)::before {
275
- background-color: var(--gray-a4);
276
- }
277
- &:where(.rt-high-contrast) {
278
- &::before {
279
- /* prettier-ignore */
280
- background-image:
281
- linear-gradient(to right, var(--switch-high-contrast-checked-color-overlay) 40%, transparent 60%),
282
- linear-gradient(to right, var(--accent-a6) 40%, transparent 60%),
283
- linear-gradient(to right, var(--accent-a6) 40%, transparent 60%),
284
- linear-gradient(to right, var(--accent-a6) 40%, var(--white-a1) 60%),
285
- linear-gradient(to right, var(--accent-a3) 40%, var(--gray-a3) 60%);
185
+ /* Base state: no background, just border */
186
+ box-shadow: inset 0 0 0 1px var(--gray-6);
187
+
188
+ /* Theme-level translucent override */
189
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
190
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
286
191
  }
287
- &:where([data-state='checked']:active)::before {
288
- filter: var(--switch-high-contrast-checked-active-before-filter);
192
+
193
+ /* Component-level overrides */
194
+ &:where([data-panel-background='solid'], [data-material='solid']) {
195
+ box-shadow: inset 0 0 0 1px var(--gray-6);
196
+ }
197
+
198
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
199
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
289
200
  }
290
201
  }
291
- &:where([data-disabled]) {
292
- mix-blend-mode: var(--switch-disabled-blend-mode);
202
+
203
+ &:where([data-state='checked'])::before {
204
+ background-color: var(--accent-9);
205
+ box-shadow: none;
206
+ }
293
207
 
294
- &::before {
295
- filter: none;
296
- background-image: none;
297
- background-color: var(--gray-a4);
208
+ &:where(.rt-high-contrast) {
209
+ &:where([data-state='checked'])::before {
210
+ background-color: var(--accent-12);
211
+ box-shadow: none;
298
212
  }
299
213
  }
214
+
300
215
 
301
- & :where(.rt-SwitchThumb) {
302
- filter: saturate(0.45);
303
216
 
304
- &:where([data-state='unchecked']) {
305
- box-shadow: 0 0 0 1px var(--black-a1), 0 1px 3px var(--black-a1), 0 1px 3px var(--black-a1),
306
- 0 2px 4px -1px var(--black-a1);
307
- }
308
217
 
309
- &:where([data-state='checked']) {
310
- box-shadow: 0 0 0 1px var(--black-a1), 0 1px 3px var(--black-a2), 0 1px 3px var(--accent-a3),
311
- 0 2px 4px -1px var(--accent-a3);
312
- }
218
+ }
313
219
 
314
- &:where([data-disabled]) {
315
- filter: none;
316
- background-color: var(--gray-2);
317
- box-shadow: 0 0 0 1px var(--gray-a2), 0 1px 3px var(--black-a1);
318
- /* Avoid the Chrome P3 bug with transition through red when changing light/dark mode */
319
- transition: none;
320
- }
220
+ /* all disabled Switches */
221
+
222
+ [data-disabled] {
223
+ .rt-SwitchRoot:where(&) {
224
+ cursor: var(--cursor-disabled);
321
225
  }
226
+ .rt-SwitchRoot:where(&)::before {
227
+ background-color: var(--gray-a3) !important;
228
+ box-shadow: none !important;
229
+ outline: none !important;
230
+ }
231
+ .rt-SwitchThumb:where(&) {
232
+ cursor: var(--cursor-disabled);
233
+ box-shadow: none !important;
234
+ outline: none !important;
235
+ }
236
+ }
237
+
238
+ /* Disabled checked state - lighter accent color */
239
+ .rt-SwitchRoot:where([data-disabled][data-state='checked'])::before {
240
+ background-color: var(--accent-a3) !important;
322
241
  }
@@ -1,21 +1,33 @@
1
1
  import { colorPropDef } from '../props/color.prop.js';
2
2
  import { highContrastPropDef } from '../props/high-contrast.prop.js';
3
- import { radiusPropDef } from '../props/radius.prop.js';
4
3
 
5
4
  import type { PropDef } from '../props/prop-def.js';
6
5
 
7
- const sizes = ['1', '2', '3'] as const;
8
- const variants = ['classic', 'surface', 'soft'] as const;
6
+ const sizes = ['1', '2', '3', '4'] as const;
7
+ const variants = ['surface', 'soft', 'outline'] as const;
8
+ const panelBackgrounds = ['solid', 'translucent'] as const;
9
+ const materials = ['solid', 'translucent'] as const;
9
10
 
10
11
  const switchPropDefs = {
11
12
  size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },
12
13
  variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },
13
14
  ...colorPropDef,
14
15
  ...highContrastPropDef,
15
- ...radiusPropDef,
16
+ /**
17
+ * Material type for visual rendering and depth effects
18
+ * Controls how the switch renders its visual elements
19
+ */
20
+ material: { type: 'enum', values: materials, default: undefined },
21
+ /**
22
+ * Panel background type (deprecated)
23
+ * @deprecated Use `material` prop instead. This prop will be removed in a future version.
24
+ */
25
+ panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },
16
26
  } satisfies {
17
27
  size: PropDef<(typeof sizes)[number]>;
18
28
  variant: PropDef<(typeof variants)[number]>;
29
+ material: PropDef<(typeof materials)[number] | undefined>;
30
+ panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
19
31
  };
20
32
 
21
33
  export { switchPropDefs };
@@ -20,15 +20,17 @@ interface SwitchProps
20
20
  MarginProps,
21
21
  SwitchOwnProps {}
22
22
  const Switch = React.forwardRef<SwitchElement, SwitchProps>((props, forwardedRef) => {
23
- const { className, color, radius, ...switchProps } = extractProps(
23
+ const { className, color, panelBackground, material, ...switchProps } = extractProps(
24
24
  props,
25
25
  switchPropDefs,
26
- marginPropDefs
26
+ marginPropDefs,
27
27
  );
28
+ const effectiveMaterial = material || panelBackground;
28
29
  return (
29
30
  <SwitchPrimitive.Root
30
31
  data-accent-color={color}
31
- data-radius={radius}
32
+ data-panel-background={effectiveMaterial}
33
+ data-material={effectiveMaterial}
32
34
  {...switchProps}
33
35
  asChild={false}
34
36
  ref={forwardedRef}
@@ -20,10 +20,10 @@ interface TabNavRootProps
20
20
  MarginProps,
21
21
  TabNavOwnProps {}
22
22
  const TabNavRoot = React.forwardRef<TabNavRootElement, TabNavRootProps>((props, forwardedRef) => {
23
- const { children, className, color, ...rootProps } = extractProps(
23
+ const { children, className, color, panelBackground, ...rootProps } = extractProps(
24
24
  props,
25
25
  tabNavRootPropDefs,
26
- marginPropDefs
26
+ marginPropDefs,
27
27
  );
28
28
  return (
29
29
  <NavigationMenu.Root
@@ -35,6 +35,7 @@ const TabNavRoot = React.forwardRef<TabNavRootElement, TabNavRootProps>((props,
35
35
  >
36
36
  <NavigationMenu.List
37
37
  className={classNames('rt-reset', 'rt-BaseTabList', 'rt-TabNavList', className)}
38
+ data-panel-background={panelBackground}
38
39
  >
39
40
  {children}
40
41
  </NavigationMenu.List>
@@ -49,7 +50,7 @@ interface TabNavLinkProps
49
50
  extends ComponentPropsWithout<typeof NavigationMenu.Link, RemovedProps | 'onSelect'>,
50
51
  TabNavLinkOwnProps {}
51
52
  const TabNavLink = React.forwardRef<TabNavLinkElement, TabNavLinkProps>((props, forwardedRef) => {
52
- const { asChild, children, className, ...linkProps } = props;
53
+ const { asChild, children, className, active, ...linkProps } = props;
53
54
 
54
55
  return (
55
56
  <NavigationMenu.Item className="rt-TabNavItem">
@@ -59,6 +60,8 @@ const TabNavLink = React.forwardRef<TabNavLinkElement, TabNavLinkProps>((props,
59
60
  className={classNames('rt-reset', 'rt-BaseTabListTrigger', 'rt-TabNavLink', className)}
60
61
  onSelect={undefined}
61
62
  asChild={asChild}
63
+ aria-current={active ? 'page' : undefined}
64
+ data-active={active || undefined}
62
65
  >
63
66
  {getSubtree({ asChild, children }, (children) => (
64
67
  <>
@@ -91,6 +91,8 @@ const TabsContent = React.forwardRef<TabsContentElement, TabsContentProps>(
91
91
  {...contentProps}
92
92
  ref={forwardedRef}
93
93
  className={classNames('rt-TabsContent', className)}
94
+ aria-live="polite"
95
+ aria-atomic="true"
94
96
  />
95
97
  );
96
98
  },