@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
@@ -15,8 +15,17 @@ import type { GetPropDefTypes } from '../props/prop-def.js';
15
15
 
16
16
  interface AvatarProps extends MarginProps, AvatarImplProps {}
17
17
  const Avatar = React.forwardRef<AvatarImplElement, AvatarProps>((props, forwardedRef) => {
18
- const { asChild, children, className, style, color, radius, panelBackground, ...imageProps } =
19
- extractProps(props, avatarPropDefs, marginPropDefs);
18
+ const {
19
+ asChild,
20
+ children,
21
+ className,
22
+ style,
23
+ color,
24
+ radius,
25
+ material,
26
+ panelBackground,
27
+ ...imageProps
28
+ } = extractProps(props, avatarPropDefs, marginPropDefs);
20
29
 
21
30
  // Check if children contain a disabled element
22
31
  const isDisabled = React.useMemo(() => {
@@ -36,6 +45,7 @@ const Avatar = React.forwardRef<AvatarImplElement, AvatarProps>((props, forwarde
36
45
  <AvatarPrimitive.Root
37
46
  data-accent-color={color}
38
47
  data-radius={radius}
48
+ data-material={material}
39
49
  data-panel-background={panelBackground}
40
50
  data-disabled={isDisabled || undefined}
41
51
  className={classNames('rt-reset', 'rt-AvatarRoot', className)}
@@ -1,6 +1,3 @@
1
- /* stylelint-disable selector-max-type */
2
- /* Disable selector-max-type rule to target individual element types. */
3
-
4
1
  .rt-Badge {
5
2
  display: inline-flex;
6
3
  align-items: center;
@@ -21,10 +18,38 @@
21
18
  /* Force Chrome to recalculate styles when radius changes */
22
19
  will-change: border-radius;
23
20
 
21
+ /* Theme-level translucent override */
22
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
23
+ backdrop-filter: var(--backdrop-filter-components);
24
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
25
+ }
26
+
27
+ /* Prevent backdrop-filter stacking with parents */
28
+ isolation: isolate;
29
+
30
+ /* Component-level overrides */
31
+ &:where([data-panel-background='solid'], [data-material='solid']) {
32
+ backdrop-filter: none;
33
+ --backdrop-filter-components: none;
34
+ }
35
+
36
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
37
+ backdrop-filter: var(--backdrop-filter-components);
38
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
39
+ }
40
+
24
41
  /* Reduced motion support */
25
42
  @media (prefers-reduced-motion: reduce) {
26
43
  transition: none;
27
44
  }
45
+
46
+ /* Forced colors support */
47
+ @media (forced-colors: active) {
48
+ border: 1px solid CanvasText;
49
+ color: CanvasText;
50
+ background-color: Canvas;
51
+ }
52
+
28
53
  }
29
54
 
30
55
  /***************************************************************************************************
@@ -55,7 +80,7 @@
55
80
  letter-spacing: var(--letter-spacing-1);
56
81
  padding: var(--space-1) var(--space-2);
57
82
  gap: calc(var(--space-1) * 1.5);
58
- border-radius: max(var(--radius-2), var(--radius-full));
83
+ border-radius: max(var(--radius-1), var(--radius-full));
59
84
 
60
85
  /* Ghost variant gets reduced padding */
61
86
  &:where(.rt-variant-ghost) {
@@ -77,6 +102,20 @@
77
102
  gap: calc(var(--space-1) * 1.5);
78
103
  }
79
104
  }
105
+ &:where(.rt-r-size-4) {
106
+ font-size: var(--font-size-3);
107
+ line-height: var(--line-height-3);
108
+ letter-spacing: var(--letter-spacing-3);
109
+ padding: calc(var(--space-1) * 1.25) calc(var(--space-2) * 1.5);
110
+ gap: calc(var(--space-2) * 1.25);
111
+ border-radius: max(var(--radius-3), var(--radius-full));
112
+
113
+ /* Ghost variant gets reduced padding */
114
+ &:where(.rt-variant-ghost) {
115
+ padding: var(--space-1) calc(var(--space-2) * 1.25);
116
+ gap: var(--space-2);
117
+ }
118
+ }
80
119
  }
81
120
  }
82
121
 
@@ -89,22 +128,52 @@
89
128
  /* solid */
90
129
 
91
130
  .rt-Badge:where(.rt-variant-solid) {
131
+ /* Base state: solid color for solid panels */
92
132
  background-color: var(--accent-9);
93
133
  color: var(--accent-contrast);
94
134
 
95
- &::selection {
96
- background-color: var(--accent-7);
97
- color: var(--accent-12);
135
+ /* Theme-level translucent override */
136
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
137
+ background-color: color-mix(in srgb, var(--accent-a9), var(--accent-9) 10%);
98
138
  }
99
139
 
140
+ /* Component-level overrides (higher specificity) */
141
+ &:where([data-panel-background='solid'], [data-material='solid']) {
142
+ background-color: var(--accent-9);
143
+ }
144
+
145
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
146
+ background-color: color-mix(in srgb, var(--accent-a9), var(--accent-9) 10%);
147
+ }
148
+
149
+
100
150
  &:where(.rt-high-contrast) {
101
151
  background-color: var(--accent-12);
102
- color: var(--accent-1);
152
+ color: var(--gray-1);
103
153
 
104
- &::selection {
105
- background-color: var(--accent-a11);
106
- color: var(--accent-1);
154
+ /* Theme-level translucent override for high contrast */
155
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
156
+ background-color: color-mix(in srgb, var(--accent-a12), var(--accent-12) 10%);
107
157
  }
158
+
159
+ /* Component-level overrides for high contrast */
160
+ &:where([data-panel-background='solid'], [data-material='solid']) {
161
+ background-color: var(--accent-12);
162
+ }
163
+
164
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
165
+ background-color: color-mix(in srgb, var(--accent-a12), var(--accent-12) 10%);
166
+ }
167
+
168
+
169
+ }
170
+ &:where([data-disabled]) {
171
+ color: var(--gray-a8);
172
+ background-color: var(--gray-a3);
173
+ outline: none;
174
+ filter: none;
175
+ cursor: not-allowed;
176
+ pointer-events: none;
108
177
  }
109
178
  }
110
179
 
@@ -113,29 +182,24 @@
113
182
  .rt-Badge:where(.rt-variant-surface) {
114
183
  /* Base state: solid accent for solid panels */
115
184
  background-color: var(--accent-2);
116
- box-shadow: inset 0 0 0 1px var(--accent-7);
185
+ box-shadow: inset 0 0 0 1px var(--accent-6);
117
186
  color: var(--accent-a11);
118
187
 
119
188
  /* Theme-level translucent override */
120
- :where([data-panel-background='translucent']) & {
121
- background-color: var(--accent-a2);
122
- box-shadow: inset 0 0 0 1px var(--accent-a7);
123
- backdrop-filter: var(--backdrop-filter-components);
189
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
190
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
191
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
124
192
  }
125
193
 
126
194
  /* Component-level overrides (higher specificity) */
127
- &:where([data-panel-background='solid']) {
195
+ &:where([data-panel-background='solid'], [data-material='solid']) {
128
196
  background-color: var(--accent-2);
129
- box-shadow: inset 0 0 0 1px var(--accent-7);
130
- backdrop-filter: none;
131
- --backdrop-filter-components: none;
197
+ box-shadow: inset 0 0 0 1px var(--accent-6);
132
198
  }
133
199
 
134
- &:where([data-panel-background='translucent']) {
135
- background-color: var(--accent-a2);
136
- box-shadow: inset 0 0 0 1px var(--accent-a7);
137
- backdrop-filter: var(--backdrop-filter-components);
138
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
200
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
201
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
202
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
139
203
  }
140
204
 
141
205
  &:where(.rt-high-contrast) {
@@ -143,73 +207,81 @@
143
207
  }
144
208
  }
145
209
 
146
- /* soft */
210
+ /* soft / ghost */
211
+
212
+ .rt-Badge:where(.rt-variant-soft, .rt-variant-ghost) {
213
+ color: var(--accent-a11);
214
+
215
+ &:where(.rt-high-contrast) {
216
+ color: var(--accent-12);
217
+ }
218
+ &:where([data-disabled]) {
219
+ color: var(--gray-a8);
220
+ background-color: var(--gray-a3);
221
+ cursor: not-allowed;
222
+ pointer-events: none;
223
+ }
224
+ }
147
225
 
148
226
  .rt-Badge:where(.rt-variant-soft) {
149
- /* Base state: solid accent for solid panels */
227
+ /* Base state: solid color for solid panels */
150
228
  background-color: var(--accent-3);
151
- color: var(--accent-a11);
152
229
 
153
230
  /* Theme-level translucent override */
154
- :where([data-panel-background='translucent']) & {
155
- background-color: var(--accent-a3);
231
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
232
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
156
233
  backdrop-filter: var(--backdrop-filter-components);
157
234
  }
158
235
 
159
236
  /* Component-level overrides (higher specificity) */
160
- &:where([data-panel-background='solid']) {
237
+ &:where([data-panel-background='solid'], [data-material='solid']) {
161
238
  background-color: var(--accent-3);
162
239
  backdrop-filter: none;
163
240
  --backdrop-filter-components: none;
164
241
  }
165
242
 
166
- &:where([data-panel-background='translucent']) {
167
- background-color: var(--accent-a3);
243
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
244
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
168
245
  backdrop-filter: var(--backdrop-filter-components);
169
246
  --backdrop-filter-components: blur(var(--backdrop-blur-components));
170
247
  }
171
248
 
172
- &:where(.rt-high-contrast) {
173
- color: var(--accent-12);
249
+
250
+ &:where([data-disabled]) {
251
+ color: var(--gray-a8);
252
+ background-color: var(--gray-a3);
253
+ cursor: not-allowed;
254
+ pointer-events: none;
174
255
  }
175
256
  }
176
257
 
177
258
  /* outline */
178
259
 
179
260
  .rt-Badge:where(.rt-variant-outline) {
180
- /* Base state: solid accent for solid panels */
181
- background-color: transparent;
182
- box-shadow: inset 0 0 0 1px var(--accent-7);
183
- color: var(--accent-a11);
261
+ /* Base state: solid colors for solid panels */
262
+ box-shadow: inset 0 0 0 1px var(--accent-6);
263
+ color: var(--accent-11);
264
+ transition: var(--transition-background-blur);
184
265
 
185
266
  /* Theme-level translucent override */
186
- :where([data-panel-background='translucent']) & {
187
- box-shadow: inset 0 0 0 1px var(--accent-a8);
188
- backdrop-filter: var(--backdrop-filter-components);
267
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
268
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
269
+ color: var(--accent-a11);
189
270
  }
190
271
 
191
272
  /* Component-level overrides (higher specificity) */
192
- &:where([data-panel-background='solid']) {
193
- box-shadow: inset 0 0 0 1px var(--accent-7);
194
- backdrop-filter: none;
195
- --backdrop-filter-components: none;
273
+ &:where([data-panel-background='solid'], [data-material='solid']) {
274
+ box-shadow: inset 0 0 0 1px var(--accent-6);
275
+ color: var(--accent-11);
196
276
  }
197
277
 
198
- &:where([data-panel-background='translucent']) {
199
- box-shadow: inset 0 0 0 1px var(--accent-a8);
200
- backdrop-filter: var(--backdrop-filter-components);
201
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
278
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
279
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
280
+ color: var(--accent-a11);
202
281
  }
203
282
 
204
283
  &:where(.rt-high-contrast) {
205
284
  color: var(--accent-12);
206
-
207
- /* High contrast adjustments */
208
- box-shadow: inset 0 0 0 1px var(--accent-a7), inset 0 0 0 1px var(--gray-a11);
209
-
210
- :where([data-panel-background='translucent']) & {
211
- box-shadow: inset 0 0 0 1px var(--accent-a7), inset 0 0 0 1px var(--gray-a11);
212
- }
213
285
  }
214
286
  }
215
287
 
@@ -231,94 +303,44 @@
231
303
  position: relative;
232
304
  top: var(--classic-elevation-offset);
233
305
  color: var(--accent-a11);
234
- background-color: var(--accent-2);
235
- /* prettier-ignore */
236
- box-shadow:
237
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a2),
238
- inset 0 var(--classic-border-width) var(--white-a12),
239
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
240
- inset 0 calc(-1 * var(--classic-border-width)) var(--accent-a6),
241
- 0 0 0 var(--classic-border-width) var(--accent-a5),
242
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--accent-a7);
243
-
244
- :where(.dark, .dark-theme) &,
245
- :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
246
- /* prettier-ignore */
247
- box-shadow:
248
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a3),
249
- inset 0 var(--classic-border-width) var(--accent-a11),
250
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
251
- inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
252
- 0 0 0 var(--classic-border-width-thick) var(--accent-a7),
253
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12);
306
+ background-color: var(--color-surface-solid);
307
+ box-shadow: var(--shadow-2);
308
+ transition: var(--transition-text-field);
309
+
310
+ /* Theme-level translucent override */
311
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
312
+ background-color: var(--color-surface-translucent);
313
+ }
314
+
315
+ /* Component-level overrides (higher specificity) */
316
+ &:where([data-panel-background='solid'], [data-material='solid']) {
317
+ background-color: var(--color-surface-solid);
318
+ }
319
+
320
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
321
+ background-color: var(--color-surface-translucent);
254
322
  }
255
323
 
324
+ /* Dark mode uses same styling as light mode for simplicity */
325
+
256
326
  &:where(.rt-high-contrast) {
257
327
  color: var(--accent-12);
258
- background-color: var(--accent-2);
259
- }
328
+ background-color: var(--color-surface-solid);
260
329
 
261
- &:where(:any-link, button) {
262
- @media (hover: hover) {
263
- &:where(:hover) {
264
- background-color: var(--accent-3);
265
- /* prettier-ignore */
266
- box-shadow:
267
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a2),
268
- inset 0 var(--classic-border-width) var(--white-a12),
269
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
270
- inset 0 calc(-1 * var(--classic-border-width)) var(--accent-a6),
271
- 0 0 0 var(--classic-border-width) var(--accent-a5),
272
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--accent-a7),
273
- 0 0 0 var(--classic-border-width) var(--accent-a5);
274
-
275
- :where(.dark, .dark-theme) &,
276
- :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
277
- /* prettier-ignore */
278
- box-shadow:
279
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a3),
280
- inset 0 var(--classic-border-width) var(--accent-a11),
281
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
282
- inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
283
- 0 0 0 var(--classic-border-width-thick) var(--accent-a7),
284
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12),
285
- 0 0 0 var(--classic-border-width) var(--accent-a5);
286
- }
287
- }
288
- }
289
- &:where([data-state='open']) {
290
- background-color: var(--accent-3);
291
- /* prettier-ignore */
292
- box-shadow:
293
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a2),
294
- inset 0 var(--classic-border-width) var(--white-a12),
295
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
296
- inset 0 calc(-1 * var(--classic-border-width)) var(--accent-a6),
297
- 0 0 0 var(--classic-border-width) var(--accent-a5),
298
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--accent-a7),
299
- 0 0 0 var(--classic-border-width) var(--accent-a5);
300
-
301
- :where(.dark, .dark-theme) &,
302
- :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
303
- /* prettier-ignore */
304
- box-shadow:
305
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a3),
306
- inset 0 var(--classic-border-width) var(--accent-a11),
307
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
308
- inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
309
- 0 0 0 var(--classic-border-width-thick) var(--accent-a7),
310
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12),
311
- 0 0 0 var(--classic-border-width) var(--accent-a5);
312
- }
330
+ /* Theme-level translucent override for high contrast */
331
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
332
+ background-color: var(--color-surface-translucent);
313
333
  }
314
- &:where(:active:not([data-state='open'])) {
315
- padding-top: calc(var(--space-1) * 0.75);
316
- padding-bottom: calc(var(--space-1) * 0.25);
317
- background-color: var(--accent-3);
318
- box-shadow: inset 0 var(--classic-border-width) var(--black-a3), 0 0 0 var(--classic-border-width) var(--accent-a7);
334
+
335
+ /* Component-level overrides for high contrast */
336
+ &:where([data-panel-background='solid'], [data-material='solid']) {
337
+ background-color: var(--color-surface-solid);
319
338
  }
320
- &:where(:focus-visible) {
321
- outline: 2px solid var(--focus-8);
339
+
340
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
341
+ background-color: var(--color-surface-translucent);
322
342
  }
323
343
  }
344
+
345
+
324
346
  }
@@ -5,21 +5,28 @@ import { radiusPropDef } from '../props/radius.prop.js';
5
5
 
6
6
  import type { PropDef } from '../props/prop-def.js';
7
7
 
8
- const sizes = ['1', '2', '3'] as const;
8
+ const sizes = ['1', '2', '3', '4'] as const;
9
9
  const variants = ['solid', 'soft', 'surface', 'outline', 'ghost', 'classic'] as const;
10
+ const panelBackgrounds = ['solid', 'translucent'] as const;
11
+ const materials = ['solid', 'translucent'] as const;
10
12
 
11
13
  const badgePropDefs = {
12
14
  ...asChildPropDef,
13
15
  size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '1', responsive: true },
14
16
  variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'soft' },
15
- panelBackground: { type: 'enum', values: ['solid', 'translucent'], default: undefined },
16
17
  ...accentColorPropDef,
17
18
  ...highContrastPropDef,
18
19
  ...radiusPropDef,
20
+ material: { type: 'enum', values: materials, default: undefined },
21
+ /**
22
+ * @deprecated Use `material` prop instead. This prop will be removed in a future version.
23
+ */
24
+ panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },
19
25
  } satisfies {
20
26
  size: PropDef<(typeof sizes)[number]>;
21
27
  variant: PropDef<(typeof variants)[number]>;
22
- panelBackground: PropDef<'solid' | 'translucent'>;
28
+ material: PropDef<(typeof materials)[number] | undefined>;
29
+ panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
23
30
  };
24
31
 
25
32
  export { badgePropDefs };
@@ -5,6 +5,7 @@ import { Slot } from 'radix-ui';
5
5
  import { badgePropDefs } from './badge.props.js';
6
6
  import { extractProps } from '../helpers/extract-props.js';
7
7
  import { marginPropDefs } from '../props/margin.props.js';
8
+ import { Tooltip } from './tooltip.js';
8
9
 
9
10
  import type { MarginProps } from '../props/margin.props.js';
10
11
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
@@ -12,26 +13,87 @@ import type { GetPropDefTypes } from '../props/prop-def.js';
12
13
 
13
14
  type BadgeElement = React.ElementRef<'span'>;
14
15
  type BadgeOwnProps = GetPropDefTypes<typeof badgePropDefs>;
16
+
17
+ // Tooltip props that can be passed to Badge
18
+ interface BadgeTooltipProps {
19
+ tooltip?: React.ReactNode;
20
+ tooltipSide?: 'top' | 'right' | 'bottom' | 'left';
21
+ tooltipAlign?: 'start' | 'center' | 'end';
22
+ tooltipDelayDuration?: number;
23
+ tooltipDisableHoverableContent?: boolean;
24
+ }
25
+
15
26
  interface BadgeProps
16
27
  extends ComponentPropsWithout<'span', RemovedProps>,
17
28
  MarginProps,
18
- BadgeOwnProps {}
29
+ BadgeOwnProps,
30
+ BadgeTooltipProps {}
31
+
19
32
  const Badge = React.forwardRef<BadgeElement, BadgeProps>((props, forwardedRef) => {
20
- const { asChild, className, color, radius, panelBackground, ...badgeProps } = extractProps(
21
- props,
22
- badgePropDefs,
23
- marginPropDefs,
33
+ const {
34
+ asChild,
35
+ className,
36
+ children,
37
+ color,
38
+ radius,
39
+ material,
40
+ panelBackground,
41
+ tooltip,
42
+ tooltipSide = 'top',
43
+ tooltipAlign = 'center',
44
+ tooltipDelayDuration,
45
+ tooltipDisableHoverableContent,
46
+ ...badgeProps
47
+ } = extractProps(props, badgePropDefs, marginPropDefs);
48
+
49
+ // Memoize material calculation for performance
50
+ const effectiveMaterial = React.useMemo(
51
+ () => material ?? panelBackground,
52
+ [material, panelBackground],
24
53
  );
25
- const Comp = asChild ? Slot.Root : 'span';
26
- return (
54
+
55
+ // Show deprecation warning for panelBackground when used
56
+ React.useEffect(() => {
57
+ if (panelBackground !== undefined) {
58
+ console.warn(
59
+ 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
60
+ );
61
+ }
62
+ }, [panelBackground]);
63
+
64
+ // Memoize component variable to prevent unnecessary re-renders
65
+ const Comp = React.useMemo(() => (asChild ? Slot.Root : 'span'), [asChild]);
66
+
67
+ const badge = (
27
68
  <Comp
28
69
  data-accent-color={color}
29
70
  data-radius={radius}
30
- data-panel-background={panelBackground}
71
+ data-material={effectiveMaterial}
72
+ data-panel-background={effectiveMaterial}
31
73
  {...badgeProps}
32
74
  ref={forwardedRef}
33
75
  className={classNames('rt-reset', 'rt-Badge', className)}
34
- />
76
+ >
77
+ {children}
78
+ </Comp>
79
+ );
80
+
81
+ // If no tooltip is provided, return the badge as-is
82
+ if (!tooltip) {
83
+ return badge;
84
+ }
85
+
86
+ // Wrap with Tooltip when tooltip content is provided
87
+ return (
88
+ <Tooltip
89
+ content={tooltip}
90
+ side={tooltipSide}
91
+ align={tooltipAlign}
92
+ delayDuration={tooltipDelayDuration}
93
+ disableHoverableContent={tooltipDisableHoverableContent}
94
+ >
95
+ {badge}
96
+ </Tooltip>
35
97
  );
36
98
  });
37
99
  Badge.displayName = 'Badge';