@kushagradhawan/kookie-ui 0.1.28 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/components.css +4742 -2680
  2. package/dist/cjs/components/_internal/base-button.d.ts +36 -0
  3. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-button.js +1 -1
  5. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  6. package/dist/cjs/components/_internal/base-button.props.d.ts +61 -0
  7. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  8. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  9. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  10. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +6 -1
  11. package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
  12. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  13. package/dist/cjs/components/_internal/base-checkbox.props.js.map +3 -3
  14. package/dist/cjs/components/_internal/base-menu.props.d.ts +8 -0
  15. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  16. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  17. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  18. package/dist/cjs/components/_internal/base-radio.props.d.ts +6 -1
  19. package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  21. package/dist/cjs/components/_internal/base-radio.props.js.map +3 -3
  22. package/dist/cjs/components/accordion.d.ts +22 -0
  23. package/dist/cjs/components/accordion.d.ts.map +1 -0
  24. package/dist/cjs/components/accordion.js +2 -0
  25. package/dist/cjs/components/accordion.js.map +7 -0
  26. package/dist/cjs/components/accordion.props.d.ts +97 -0
  27. package/dist/cjs/components/accordion.props.d.ts.map +1 -0
  28. package/dist/cjs/components/accordion.props.js +2 -0
  29. package/dist/cjs/components/accordion.props.js.map +7 -0
  30. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  31. package/dist/cjs/components/alert-dialog.js +1 -1
  32. package/dist/cjs/components/alert-dialog.js.map +3 -3
  33. package/dist/cjs/components/alert-dialog.props.d.ts +69 -2
  34. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  35. package/dist/cjs/components/alert-dialog.props.js +1 -1
  36. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  37. package/dist/cjs/components/avatar.d.ts.map +1 -1
  38. package/dist/cjs/components/avatar.js +1 -1
  39. package/dist/cjs/components/avatar.js.map +3 -3
  40. package/dist/cjs/components/avatar.props.d.ts +9 -1
  41. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  42. package/dist/cjs/components/avatar.props.js +1 -1
  43. package/dist/cjs/components/avatar.props.js.map +3 -3
  44. package/dist/cjs/components/badge.d.ts +8 -1
  45. package/dist/cjs/components/badge.d.ts.map +1 -1
  46. package/dist/cjs/components/badge.js +1 -1
  47. package/dist/cjs/components/badge.js.map +3 -3
  48. package/dist/cjs/components/badge.props.d.ts +14 -6
  49. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  50. package/dist/cjs/components/badge.props.js +1 -1
  51. package/dist/cjs/components/badge.props.js.map +3 -3
  52. package/dist/cjs/components/blockquote.props.d.ts +1 -1
  53. package/dist/cjs/components/button.d.ts +53 -1
  54. package/dist/cjs/components/button.d.ts.map +1 -1
  55. package/dist/cjs/components/button.js +1 -1
  56. package/dist/cjs/components/button.js.map +3 -3
  57. package/dist/cjs/components/button.props.d.ts +17 -0
  58. package/dist/cjs/components/button.props.d.ts.map +1 -1
  59. package/dist/cjs/components/button.props.js.map +2 -2
  60. package/dist/cjs/components/callout.d.ts +4 -0
  61. package/dist/cjs/components/callout.d.ts.map +1 -1
  62. package/dist/cjs/components/callout.js +1 -1
  63. package/dist/cjs/components/callout.js.map +3 -3
  64. package/dist/cjs/components/callout.props.d.ts +9 -1
  65. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  66. package/dist/cjs/components/callout.props.js +1 -1
  67. package/dist/cjs/components/callout.props.js.map +3 -3
  68. package/dist/cjs/components/card.d.ts.map +1 -1
  69. package/dist/cjs/components/card.js +1 -1
  70. package/dist/cjs/components/card.js.map +3 -3
  71. package/dist/cjs/components/card.props.d.ts +5 -0
  72. package/dist/cjs/components/card.props.d.ts.map +1 -1
  73. package/dist/cjs/components/card.props.js +1 -1
  74. package/dist/cjs/components/card.props.js.map +3 -3
  75. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  76. package/dist/cjs/components/checkbox-cards.js +1 -1
  77. package/dist/cjs/components/checkbox-cards.js.map +3 -3
  78. package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
  79. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  80. package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
  81. package/dist/cjs/components/checkbox-group.props.d.ts +6 -1
  82. package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
  83. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  84. package/dist/cjs/components/checkbox.js +1 -1
  85. package/dist/cjs/components/checkbox.js.map +3 -3
  86. package/dist/cjs/components/code.js.map +1 -1
  87. package/dist/cjs/components/code.props.d.ts +1 -1
  88. package/dist/cjs/components/context-menu.d.ts +1 -1
  89. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  90. package/dist/cjs/components/context-menu.js +1 -1
  91. package/dist/cjs/components/context-menu.js.map +3 -3
  92. package/dist/cjs/components/dialog.d.ts.map +1 -1
  93. package/dist/cjs/components/dialog.js +1 -1
  94. package/dist/cjs/components/dialog.js.map +3 -3
  95. package/dist/cjs/components/dialog.props.d.ts +6 -1
  96. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  97. package/dist/cjs/components/dialog.props.js +1 -1
  98. package/dist/cjs/components/dialog.props.js.map +3 -3
  99. package/dist/cjs/components/dropdown-menu.d.ts +1 -1
  100. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  101. package/dist/cjs/components/dropdown-menu.js +1 -1
  102. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  103. package/dist/cjs/components/heading.props.d.ts +1 -1
  104. package/dist/cjs/components/icon-button.d.ts +79 -1
  105. package/dist/cjs/components/icon-button.d.ts.map +1 -1
  106. package/dist/cjs/components/icon-button.js +4 -1
  107. package/dist/cjs/components/icon-button.js.map +3 -3
  108. package/dist/cjs/components/image.d.ts +131 -12
  109. package/dist/cjs/components/image.d.ts.map +1 -1
  110. package/dist/cjs/components/image.js +1 -1
  111. package/dist/cjs/components/image.js.map +3 -3
  112. package/dist/cjs/components/image.props.d.ts +136 -21
  113. package/dist/cjs/components/image.props.d.ts.map +1 -1
  114. package/dist/cjs/components/image.props.js +1 -1
  115. package/dist/cjs/components/image.props.js.map +3 -3
  116. package/dist/cjs/components/index.d.ts +1 -0
  117. package/dist/cjs/components/index.d.ts.map +1 -1
  118. package/dist/cjs/components/index.js +1 -1
  119. package/dist/cjs/components/index.js.map +3 -3
  120. package/dist/cjs/components/link.props.d.ts +1 -1
  121. package/dist/cjs/components/progress.props.d.ts +2 -2
  122. package/dist/cjs/components/progress.props.js +1 -1
  123. package/dist/cjs/components/progress.props.js.map +2 -2
  124. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  125. package/dist/cjs/components/radio-cards.js +1 -1
  126. package/dist/cjs/components/radio-cards.js.map +3 -3
  127. package/dist/cjs/components/radio-cards.props.d.ts +2 -2
  128. package/dist/cjs/components/radio-cards.props.js +1 -1
  129. package/dist/cjs/components/radio-cards.props.js.map +2 -2
  130. package/dist/cjs/components/radio.d.ts.map +1 -1
  131. package/dist/cjs/components/radio.js +1 -1
  132. package/dist/cjs/components/radio.js.map +3 -3
  133. package/dist/cjs/components/segmented-control.props.d.ts +3 -3
  134. package/dist/cjs/components/segmented-control.props.js +1 -1
  135. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  136. package/dist/cjs/components/select.d.ts.map +1 -1
  137. package/dist/cjs/components/select.js +1 -1
  138. package/dist/cjs/components/select.js.map +3 -3
  139. package/dist/cjs/components/select.props.d.ts +12 -0
  140. package/dist/cjs/components/select.props.d.ts.map +1 -1
  141. package/dist/cjs/components/select.props.js +1 -1
  142. package/dist/cjs/components/select.props.js.map +2 -2
  143. package/dist/cjs/components/sidebar.d.ts +5 -0
  144. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  145. package/dist/cjs/components/sidebar.js +1 -1
  146. package/dist/cjs/components/sidebar.js.map +3 -3
  147. package/dist/cjs/components/slider.d.ts +5 -0
  148. package/dist/cjs/components/slider.d.ts.map +1 -1
  149. package/dist/cjs/components/slider.js +1 -1
  150. package/dist/cjs/components/slider.js.map +3 -3
  151. package/dist/cjs/components/slider.props.d.ts +10 -2
  152. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  153. package/dist/cjs/components/slider.props.js +1 -1
  154. package/dist/cjs/components/slider.props.js.map +2 -2
  155. package/dist/cjs/components/switch.d.ts.map +1 -1
  156. package/dist/cjs/components/switch.js +1 -1
  157. package/dist/cjs/components/switch.js.map +3 -3
  158. package/dist/cjs/components/switch.props.d.ts +17 -4
  159. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  160. package/dist/cjs/components/switch.props.js +1 -1
  161. package/dist/cjs/components/switch.props.js.map +3 -3
  162. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  163. package/dist/cjs/components/tab-nav.js +1 -1
  164. package/dist/cjs/components/tab-nav.js.map +3 -3
  165. package/dist/cjs/components/tabs.d.ts.map +1 -1
  166. package/dist/cjs/components/tabs.js +1 -1
  167. package/dist/cjs/components/tabs.js.map +2 -2
  168. package/dist/cjs/components/text-area.d.ts.map +1 -1
  169. package/dist/cjs/components/text-area.js +1 -1
  170. package/dist/cjs/components/text-area.js.map +3 -3
  171. package/dist/cjs/components/text-area.props.d.ts +29 -0
  172. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  173. package/dist/cjs/components/text-area.props.js +1 -1
  174. package/dist/cjs/components/text-area.props.js.map +3 -3
  175. package/dist/cjs/components/text-field.d.ts.map +1 -1
  176. package/dist/cjs/components/text-field.js +4 -4
  177. package/dist/cjs/components/text-field.js.map +3 -3
  178. package/dist/cjs/components/text-field.props.d.ts +29 -0
  179. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  180. package/dist/cjs/components/text-field.props.js +1 -1
  181. package/dist/cjs/components/text-field.props.js.map +3 -3
  182. package/dist/cjs/components/text.props.d.ts +1 -1
  183. package/dist/cjs/components/theme.d.ts +3 -0
  184. package/dist/cjs/components/theme.d.ts.map +1 -1
  185. package/dist/cjs/components/theme.js +1 -1
  186. package/dist/cjs/components/theme.js.map +3 -3
  187. package/dist/cjs/components/theme.props.d.ts +14 -0
  188. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  189. package/dist/cjs/components/theme.props.js +1 -1
  190. package/dist/cjs/components/theme.props.js.map +3 -3
  191. package/dist/cjs/components/toggle-button.d.ts +52 -0
  192. package/dist/cjs/components/toggle-button.d.ts.map +1 -1
  193. package/dist/cjs/components/toggle-button.js +1 -1
  194. package/dist/cjs/components/toggle-button.js.map +3 -3
  195. package/dist/cjs/components/toggle-icon-button.d.ts +84 -2
  196. package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
  197. package/dist/cjs/components/toggle-icon-button.js +1 -1
  198. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  199. package/dist/cjs/helpers/extract-margin-props.d.ts +7 -7
  200. package/dist/cjs/hooks/index.d.ts +2 -0
  201. package/dist/cjs/hooks/index.d.ts.map +1 -0
  202. package/dist/cjs/hooks/index.js +2 -0
  203. package/dist/cjs/hooks/index.js.map +7 -0
  204. package/dist/cjs/hooks/use-live-announcer.d.ts +6 -0
  205. package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -0
  206. package/dist/cjs/hooks/use-live-announcer.js +10 -0
  207. package/dist/cjs/hooks/use-live-announcer.js.map +7 -0
  208. package/dist/cjs/index.d.ts +1 -0
  209. package/dist/cjs/index.d.ts.map +1 -1
  210. package/dist/cjs/index.js +1 -1
  211. package/dist/cjs/index.js.map +2 -2
  212. package/dist/cjs/props/weight.prop.d.ts +1 -1
  213. package/dist/cjs/props/weight.prop.js +1 -1
  214. package/dist/cjs/props/weight.prop.js.map +2 -2
  215. package/dist/esm/components/_internal/base-button.d.ts +36 -0
  216. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  217. package/dist/esm/components/_internal/base-button.js +1 -1
  218. package/dist/esm/components/_internal/base-button.js.map +3 -3
  219. package/dist/esm/components/_internal/base-button.props.d.ts +61 -0
  220. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  221. package/dist/esm/components/_internal/base-button.props.js +1 -1
  222. package/dist/esm/components/_internal/base-button.props.js.map +3 -3
  223. package/dist/esm/components/_internal/base-checkbox.props.d.ts +6 -1
  224. package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
  225. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  226. package/dist/esm/components/_internal/base-checkbox.props.js.map +3 -3
  227. package/dist/esm/components/_internal/base-menu.props.d.ts +8 -0
  228. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  229. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  230. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  231. package/dist/esm/components/_internal/base-radio.props.d.ts +6 -1
  232. package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
  233. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  234. package/dist/esm/components/_internal/base-radio.props.js.map +3 -3
  235. package/dist/esm/components/accordion.d.ts +22 -0
  236. package/dist/esm/components/accordion.d.ts.map +1 -0
  237. package/dist/esm/components/accordion.js +2 -0
  238. package/dist/esm/components/accordion.js.map +7 -0
  239. package/dist/esm/components/accordion.props.d.ts +97 -0
  240. package/dist/esm/components/accordion.props.d.ts.map +1 -0
  241. package/dist/esm/components/accordion.props.js +2 -0
  242. package/dist/esm/components/accordion.props.js.map +7 -0
  243. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  244. package/dist/esm/components/alert-dialog.js +1 -1
  245. package/dist/esm/components/alert-dialog.js.map +3 -3
  246. package/dist/esm/components/alert-dialog.props.d.ts +69 -2
  247. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  248. package/dist/esm/components/alert-dialog.props.js +1 -1
  249. package/dist/esm/components/alert-dialog.props.js.map +3 -3
  250. package/dist/esm/components/avatar.d.ts.map +1 -1
  251. package/dist/esm/components/avatar.js +1 -1
  252. package/dist/esm/components/avatar.js.map +3 -3
  253. package/dist/esm/components/avatar.props.d.ts +9 -1
  254. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  255. package/dist/esm/components/avatar.props.js +1 -1
  256. package/dist/esm/components/avatar.props.js.map +3 -3
  257. package/dist/esm/components/badge.d.ts +8 -1
  258. package/dist/esm/components/badge.d.ts.map +1 -1
  259. package/dist/esm/components/badge.js +1 -1
  260. package/dist/esm/components/badge.js.map +3 -3
  261. package/dist/esm/components/badge.props.d.ts +14 -6
  262. package/dist/esm/components/badge.props.d.ts.map +1 -1
  263. package/dist/esm/components/badge.props.js +1 -1
  264. package/dist/esm/components/badge.props.js.map +3 -3
  265. package/dist/esm/components/blockquote.props.d.ts +1 -1
  266. package/dist/esm/components/button.d.ts +53 -1
  267. package/dist/esm/components/button.d.ts.map +1 -1
  268. package/dist/esm/components/button.js +1 -1
  269. package/dist/esm/components/button.js.map +3 -3
  270. package/dist/esm/components/button.props.d.ts +17 -0
  271. package/dist/esm/components/button.props.d.ts.map +1 -1
  272. package/dist/esm/components/button.props.js.map +2 -2
  273. package/dist/esm/components/callout.d.ts +4 -0
  274. package/dist/esm/components/callout.d.ts.map +1 -1
  275. package/dist/esm/components/callout.js +1 -1
  276. package/dist/esm/components/callout.js.map +3 -3
  277. package/dist/esm/components/callout.props.d.ts +9 -1
  278. package/dist/esm/components/callout.props.d.ts.map +1 -1
  279. package/dist/esm/components/callout.props.js +1 -1
  280. package/dist/esm/components/callout.props.js.map +3 -3
  281. package/dist/esm/components/card.d.ts.map +1 -1
  282. package/dist/esm/components/card.js +1 -1
  283. package/dist/esm/components/card.js.map +3 -3
  284. package/dist/esm/components/card.props.d.ts +5 -0
  285. package/dist/esm/components/card.props.d.ts.map +1 -1
  286. package/dist/esm/components/card.props.js +1 -1
  287. package/dist/esm/components/card.props.js.map +3 -3
  288. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  289. package/dist/esm/components/checkbox-cards.js +1 -1
  290. package/dist/esm/components/checkbox-cards.js.map +3 -3
  291. package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
  292. package/dist/esm/components/checkbox-cards.props.js +1 -1
  293. package/dist/esm/components/checkbox-cards.props.js.map +2 -2
  294. package/dist/esm/components/checkbox-group.props.d.ts +6 -1
  295. package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
  296. package/dist/esm/components/checkbox.d.ts.map +1 -1
  297. package/dist/esm/components/checkbox.js +1 -1
  298. package/dist/esm/components/checkbox.js.map +3 -3
  299. package/dist/esm/components/code.js.map +1 -1
  300. package/dist/esm/components/code.props.d.ts +1 -1
  301. package/dist/esm/components/context-menu.d.ts +1 -1
  302. package/dist/esm/components/context-menu.d.ts.map +1 -1
  303. package/dist/esm/components/context-menu.js +1 -1
  304. package/dist/esm/components/context-menu.js.map +3 -3
  305. package/dist/esm/components/dialog.d.ts.map +1 -1
  306. package/dist/esm/components/dialog.js +1 -1
  307. package/dist/esm/components/dialog.js.map +3 -3
  308. package/dist/esm/components/dialog.props.d.ts +6 -1
  309. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  310. package/dist/esm/components/dialog.props.js +1 -1
  311. package/dist/esm/components/dialog.props.js.map +3 -3
  312. package/dist/esm/components/dropdown-menu.d.ts +1 -1
  313. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  314. package/dist/esm/components/dropdown-menu.js +1 -1
  315. package/dist/esm/components/dropdown-menu.js.map +3 -3
  316. package/dist/esm/components/heading.props.d.ts +1 -1
  317. package/dist/esm/components/icon-button.d.ts +79 -1
  318. package/dist/esm/components/icon-button.d.ts.map +1 -1
  319. package/dist/esm/components/icon-button.js +4 -1
  320. package/dist/esm/components/icon-button.js.map +3 -3
  321. package/dist/esm/components/image.d.ts +131 -12
  322. package/dist/esm/components/image.d.ts.map +1 -1
  323. package/dist/esm/components/image.js +1 -1
  324. package/dist/esm/components/image.js.map +3 -3
  325. package/dist/esm/components/image.props.d.ts +136 -21
  326. package/dist/esm/components/image.props.d.ts.map +1 -1
  327. package/dist/esm/components/image.props.js +1 -1
  328. package/dist/esm/components/image.props.js.map +3 -3
  329. package/dist/esm/components/index.d.ts +1 -0
  330. package/dist/esm/components/index.d.ts.map +1 -1
  331. package/dist/esm/components/index.js +1 -1
  332. package/dist/esm/components/index.js.map +3 -3
  333. package/dist/esm/components/link.props.d.ts +1 -1
  334. package/dist/esm/components/progress.props.d.ts +2 -2
  335. package/dist/esm/components/progress.props.js +1 -1
  336. package/dist/esm/components/progress.props.js.map +2 -2
  337. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  338. package/dist/esm/components/radio-cards.js +1 -1
  339. package/dist/esm/components/radio-cards.js.map +3 -3
  340. package/dist/esm/components/radio-cards.props.d.ts +2 -2
  341. package/dist/esm/components/radio-cards.props.js +1 -1
  342. package/dist/esm/components/radio-cards.props.js.map +2 -2
  343. package/dist/esm/components/radio.d.ts.map +1 -1
  344. package/dist/esm/components/radio.js +1 -1
  345. package/dist/esm/components/radio.js.map +3 -3
  346. package/dist/esm/components/segmented-control.props.d.ts +3 -3
  347. package/dist/esm/components/segmented-control.props.js +1 -1
  348. package/dist/esm/components/segmented-control.props.js.map +2 -2
  349. package/dist/esm/components/select.d.ts.map +1 -1
  350. package/dist/esm/components/select.js +1 -1
  351. package/dist/esm/components/select.js.map +3 -3
  352. package/dist/esm/components/select.props.d.ts +12 -0
  353. package/dist/esm/components/select.props.d.ts.map +1 -1
  354. package/dist/esm/components/select.props.js +1 -1
  355. package/dist/esm/components/select.props.js.map +2 -2
  356. package/dist/esm/components/sidebar.d.ts +5 -0
  357. package/dist/esm/components/sidebar.d.ts.map +1 -1
  358. package/dist/esm/components/sidebar.js +1 -1
  359. package/dist/esm/components/sidebar.js.map +3 -3
  360. package/dist/esm/components/slider.d.ts +5 -0
  361. package/dist/esm/components/slider.d.ts.map +1 -1
  362. package/dist/esm/components/slider.js +1 -1
  363. package/dist/esm/components/slider.js.map +3 -3
  364. package/dist/esm/components/slider.props.d.ts +10 -2
  365. package/dist/esm/components/slider.props.d.ts.map +1 -1
  366. package/dist/esm/components/slider.props.js +1 -1
  367. package/dist/esm/components/slider.props.js.map +2 -2
  368. package/dist/esm/components/switch.d.ts.map +1 -1
  369. package/dist/esm/components/switch.js +1 -1
  370. package/dist/esm/components/switch.js.map +3 -3
  371. package/dist/esm/components/switch.props.d.ts +17 -4
  372. package/dist/esm/components/switch.props.d.ts.map +1 -1
  373. package/dist/esm/components/switch.props.js +1 -1
  374. package/dist/esm/components/switch.props.js.map +3 -3
  375. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  376. package/dist/esm/components/tab-nav.js +1 -1
  377. package/dist/esm/components/tab-nav.js.map +3 -3
  378. package/dist/esm/components/tabs.d.ts.map +1 -1
  379. package/dist/esm/components/tabs.js +1 -1
  380. package/dist/esm/components/tabs.js.map +2 -2
  381. package/dist/esm/components/text-area.d.ts.map +1 -1
  382. package/dist/esm/components/text-area.js +1 -1
  383. package/dist/esm/components/text-area.js.map +3 -3
  384. package/dist/esm/components/text-area.props.d.ts +29 -0
  385. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  386. package/dist/esm/components/text-area.props.js +1 -1
  387. package/dist/esm/components/text-area.props.js.map +3 -3
  388. package/dist/esm/components/text-field.d.ts.map +1 -1
  389. package/dist/esm/components/text-field.js +4 -4
  390. package/dist/esm/components/text-field.js.map +3 -3
  391. package/dist/esm/components/text-field.props.d.ts +29 -0
  392. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  393. package/dist/esm/components/text-field.props.js +1 -1
  394. package/dist/esm/components/text-field.props.js.map +3 -3
  395. package/dist/esm/components/text.props.d.ts +1 -1
  396. package/dist/esm/components/theme.d.ts +3 -0
  397. package/dist/esm/components/theme.d.ts.map +1 -1
  398. package/dist/esm/components/theme.js +1 -1
  399. package/dist/esm/components/theme.js.map +3 -3
  400. package/dist/esm/components/theme.props.d.ts +14 -0
  401. package/dist/esm/components/theme.props.d.ts.map +1 -1
  402. package/dist/esm/components/theme.props.js +1 -1
  403. package/dist/esm/components/theme.props.js.map +3 -3
  404. package/dist/esm/components/toggle-button.d.ts +52 -0
  405. package/dist/esm/components/toggle-button.d.ts.map +1 -1
  406. package/dist/esm/components/toggle-button.js +1 -1
  407. package/dist/esm/components/toggle-button.js.map +3 -3
  408. package/dist/esm/components/toggle-icon-button.d.ts +84 -2
  409. package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
  410. package/dist/esm/components/toggle-icon-button.js +1 -1
  411. package/dist/esm/components/toggle-icon-button.js.map +3 -3
  412. package/dist/esm/helpers/extract-margin-props.d.ts +7 -7
  413. package/dist/esm/hooks/index.d.ts +2 -0
  414. package/dist/esm/hooks/index.d.ts.map +1 -0
  415. package/dist/esm/hooks/index.js +2 -0
  416. package/dist/esm/hooks/index.js.map +7 -0
  417. package/dist/esm/hooks/use-live-announcer.d.ts +6 -0
  418. package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -0
  419. package/dist/esm/hooks/use-live-announcer.js +10 -0
  420. package/dist/esm/hooks/use-live-announcer.js.map +7 -0
  421. package/dist/esm/index.d.ts +1 -0
  422. package/dist/esm/index.d.ts.map +1 -1
  423. package/dist/esm/index.js +1 -1
  424. package/dist/esm/index.js.map +2 -2
  425. package/dist/esm/props/weight.prop.d.ts +1 -1
  426. package/dist/esm/props/weight.prop.js +1 -1
  427. package/dist/esm/props/weight.prop.js.map +2 -2
  428. package/layout/components.css +1 -0
  429. package/layout.css +1 -0
  430. package/package.json +2 -1
  431. package/src/components/_internal/base-button.css +483 -284
  432. package/src/components/_internal/base-button.props.ts +87 -0
  433. package/src/components/_internal/base-button.tsx +127 -10
  434. package/src/components/_internal/base-card.css +866 -83
  435. package/src/components/_internal/base-checkbox.css +252 -52
  436. package/src/components/_internal/base-checkbox.props.ts +4 -1
  437. package/src/components/_internal/base-dialog.css +39 -8
  438. package/src/components/_internal/base-menu.css +55 -32
  439. package/src/components/_internal/base-menu.props.ts +10 -0
  440. package/src/components/_internal/base-radio.css +222 -52
  441. package/src/components/_internal/base-radio.props.ts +4 -1
  442. package/src/components/_internal/base-sidebar-menu.css +223 -0
  443. package/src/components/_internal/base-sidebar.css +141 -0
  444. package/src/components/_internal/base-tab-list.css +16 -0
  445. package/src/components/accordion.css +657 -0
  446. package/src/components/accordion.props.tsx +90 -0
  447. package/src/components/accordion.tsx +209 -0
  448. package/src/components/alert-dialog.props.tsx +22 -2
  449. package/src/components/alert-dialog.tsx +94 -3
  450. package/src/components/avatar.css +294 -152
  451. package/src/components/avatar.props.tsx +7 -1
  452. package/src/components/avatar.tsx +12 -2
  453. package/src/components/badge.css +160 -138
  454. package/src/components/badge.props.tsx +10 -3
  455. package/src/components/badge.tsx +71 -9
  456. package/src/components/button.css +88 -0
  457. package/src/components/button.props.tsx +17 -0
  458. package/src/components/button.tsx +107 -5
  459. package/src/components/callout.css +122 -35
  460. package/src/components/callout.props.tsx +7 -1
  461. package/src/components/callout.tsx +32 -9
  462. package/src/components/card.css +0 -597
  463. package/src/components/card.props.tsx +3 -0
  464. package/src/components/card.tsx +4 -2
  465. package/src/components/checkbox-cards.css +27 -104
  466. package/src/components/checkbox-cards.props.tsx +2 -2
  467. package/src/components/checkbox-cards.tsx +21 -3
  468. package/src/components/checkbox.tsx +2 -0
  469. package/src/components/code.css +1 -1
  470. package/src/components/code.tsx +1 -1
  471. package/src/components/container.css +1 -0
  472. package/src/components/context-menu.tsx +54 -12
  473. package/src/components/dialog.props.tsx +3 -0
  474. package/src/components/dialog.tsx +93 -3
  475. package/src/components/dropdown-menu.tsx +49 -12
  476. package/src/components/icon-button.css +73 -4
  477. package/src/components/icon-button.tsx +125 -19
  478. package/src/components/image.css +160 -91
  479. package/src/components/image.props.ts +152 -15
  480. package/src/components/image.tsx +290 -247
  481. package/src/components/index.css +1 -0
  482. package/src/components/index.tsx +1 -0
  483. package/src/components/kbd.css +23 -44
  484. package/src/components/progress.css +130 -149
  485. package/src/components/progress.props.tsx +2 -2
  486. package/src/components/radio-cards.css +23 -113
  487. package/src/components/radio-cards.props.tsx +2 -2
  488. package/src/components/radio-cards.tsx +45 -18
  489. package/src/components/radio.tsx +4 -3
  490. package/src/components/scroll-area.css +1 -1
  491. package/src/components/segmented-control.css +83 -64
  492. package/src/components/segmented-control.props.tsx +3 -3
  493. package/src/components/select.css +502 -224
  494. package/src/components/select.props.tsx +8 -0
  495. package/src/components/select.tsx +45 -2
  496. package/src/components/sidebar.css +186 -630
  497. package/src/components/sidebar.tsx +61 -5
  498. package/src/components/slider.css +228 -88
  499. package/src/components/slider.props.tsx +6 -2
  500. package/src/components/slider.tsx +201 -24
  501. package/src/components/spinner.css +12 -0
  502. package/src/components/switch.css +135 -216
  503. package/src/components/switch.props.tsx +16 -4
  504. package/src/components/switch.tsx +5 -3
  505. package/src/components/tab-nav.tsx +6 -3
  506. package/src/components/tabs.tsx +2 -0
  507. package/src/components/text-area.css +222 -140
  508. package/src/components/text-area.props.tsx +18 -1
  509. package/src/components/text-area.tsx +58 -7
  510. package/src/components/text-field.css +214 -131
  511. package/src/components/text-field.props.tsx +17 -0
  512. package/src/components/text-field.tsx +79 -28
  513. package/src/components/theme.props.tsx +12 -0
  514. package/src/components/theme.tsx +31 -1
  515. package/src/components/toggle-button.tsx +102 -3
  516. package/src/components/toggle-icon-button.tsx +150 -7
  517. package/src/components/tooltip.css +3 -3
  518. package/src/hooks/index.ts +1 -0
  519. package/src/hooks/use-live-announcer.ts +52 -0
  520. package/src/index.ts +1 -0
  521. package/src/props/weight.prop.ts +1 -1
  522. package/src/styles/fonts.css +27 -13
  523. package/src/styles/index.css +1 -1
  524. package/src/styles/tokens/base.css +2 -0
  525. package/src/styles/tokens/blur.css +32 -0
  526. package/src/styles/tokens/color.css +9 -9
  527. package/src/styles/tokens/constants.css +88 -140
  528. package/src/styles/tokens/index.css +2 -0
  529. package/src/styles/tokens/opacity.css +32 -0
  530. package/src/styles/tokens/radius.css +6 -10
  531. package/src/styles/tokens/shadow.css +25 -25
  532. package/src/styles/tokens/transition.css +49 -13
  533. package/src/styles/tokens/typography.css +7 -3
  534. package/src/styles/utilities/font-weight.css +16 -0
  535. package/styles.css +11129 -8945
  536. package/tokens/base.css +127 -49
  537. package/tokens.css +158 -114
  538. package/utilities.css +72 -0
@@ -2,12 +2,33 @@
2
2
  display: flex;
3
3
  align-items: stretch;
4
4
  transition: var(--transition-text-field);
5
+ contain: paint;
5
6
 
6
7
  font-family: var(--default-font-family);
7
8
  font-weight: var(--font-weight-regular);
8
9
  font-style: normal;
9
10
  text-align: start;
10
11
 
12
+ /* Theme-level translucent override */
13
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
14
+ backdrop-filter: var(--backdrop-filter-components);
15
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
16
+ }
17
+
18
+ /* Prevent backdrop-filter stacking with parents */
19
+ isolation: isolate;
20
+
21
+ /* Component-level overrides */
22
+ &:where([data-panel-background='solid'], [data-material='solid']) {
23
+ backdrop-filter: none;
24
+ --backdrop-filter-components: none;
25
+ }
26
+
27
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
28
+ backdrop-filter: var(--backdrop-filter-components);
29
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
30
+ }
31
+
11
32
  @supports selector(:has(*)) {
12
33
  &:where(:has(.rt-TextFieldInput:focus)) {
13
34
  outline: 2px solid var(--text-field-focus-color);
@@ -307,32 +328,46 @@
307
328
  --text-field-focus-color: var(--focus-8);
308
329
  --text-field-border-width: 1px;
309
330
 
310
- /* Blend inner shadow with page background */
311
- background-clip: content-box;
312
- background-color: var(--color-surface);
313
- box-shadow: inset 0 0 0 var(--text-field-border-width) var(--gray-a6);
314
- color: var(--gray-12);
331
+ /* Base state: solid colors for solid panels */
332
+ box-shadow: inset 0 0 0 1px var(--accent-6);
333
+ transition: var(--transition-background-blur);
315
334
 
316
335
  /* Theme-level translucent override */
317
- :where([data-panel-background='translucent']) & {
318
- backdrop-filter: var(--backdrop-filter-components);
336
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
337
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
319
338
  }
320
339
 
321
- /* Component-level overrides for surface variant */
322
- &:where([data-panel-background='solid']) {
323
- --color-surface: var(--color-surface-solid);
324
- backdrop-filter: none;
340
+ /* Component-level overrides (higher specificity) */
341
+ &:where([data-panel-background='solid'], [data-material='solid']) {
342
+ box-shadow: inset 0 0 0 1px var(--accent-6);
325
343
  }
326
344
 
327
- &:where([data-panel-background='translucent']) {
328
- --color-surface: var(--color-surface-translucent);
329
- backdrop-filter: var(--backdrop-filter-components);
345
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
346
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
330
347
  }
331
348
 
332
349
  /* Hover effects */
333
350
  @media (hover: hover) {
334
351
  &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
335
- box-shadow: inset 0 0 0 var(--text-field-border-width) var(--gray-a8);
352
+ background-color: var(--accent-2);
353
+ box-shadow: inset 0 0 0 1px var(--accent-7);
354
+
355
+ /* Theme-level translucent override for hover */
356
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
357
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
358
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
359
+ }
360
+
361
+ /* Component-level overrides for hover */
362
+ &:where([data-panel-background='solid'], [data-material='solid']) {
363
+ background-color: var(--accent-2);
364
+ box-shadow: inset 0 0 0 1px var(--accent-7);
365
+ }
366
+
367
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
368
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
369
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
370
+ }
336
371
  }
337
372
  }
338
373
 
@@ -371,53 +406,50 @@
371
406
  --text-field-focus-color: var(--focus-8);
372
407
  --text-field-border-width: 0px;
373
408
 
374
- position: relative;
375
- top: calc(var(--classic-elevation-offset) / 3); /* More pronounced than before */
376
- background-color: var(--color-surface);
377
- color: var(--gray-12);
378
-
379
- /* 3D inset effect - more pronounced but still subtle */
380
- /* prettier-ignore */
381
- box-shadow:
382
- inset 0 var(--classic-border-width) calc(var(--classic-shadow-blur-small) / 1.5) var(--gray-a4),
383
- inset 0 calc(-1 * var(--classic-border-width)) var(--gray-a2),
384
- inset 0 calc(var(--classic-border-width) * 2) calc(var(--classic-shadow-blur-medium) / 3) var(--gray-a3),
385
- 0 0 0 var(--classic-border-width) var(--gray-a5);
409
+ /* Base state: solid surface for solid panels */
410
+ background-color: var(--color-surface-solid);
411
+ box-shadow: var(--shadow-2);
412
+ transition: var(--transition-text-field);
386
413
 
387
414
  /* Theme-level translucent override */
388
- :where([data-panel-background='translucent']) & {
389
- backdrop-filter: var(--backdrop-filter-components);
415
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
416
+ background-color: var(--color-surface-translucent);
390
417
  }
391
418
 
392
- /* Component-level overrides for surface variant */
393
- &:where([data-panel-background='solid']) {
394
- --color-surface: var(--color-surface-solid);
395
- backdrop-filter: none;
419
+ /* Component-level overrides (higher specificity) */
420
+ &:where([data-panel-background='solid'], [data-material='solid']) {
421
+ background-color: var(--color-surface-solid);
396
422
  }
397
423
 
398
- &:where([data-panel-background='translucent']) {
399
- --color-surface: var(--color-surface-translucent);
400
- backdrop-filter: var(--backdrop-filter-components);
424
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
425
+ background-color: var(--color-surface-translucent);
401
426
  }
402
427
 
403
- /* Hover effects - slightly reduced inset */
428
+ /* Hover effects */
404
429
  @media (hover: hover) {
405
430
  &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
406
- /* prettier-ignore */
407
- box-shadow:
408
- inset 0 calc(var(--classic-border-width) / 1.5) calc(var(--classic-shadow-blur-small) / 2) var(--gray-a3),
409
- inset 0 calc(-1 * var(--classic-border-width) / 1.5) var(--gray-a2),
410
- inset 0 var(--classic-border-width) calc(var(--classic-shadow-blur-medium) / 4) var(--gray-a3),
411
- 0 0 0 var(--classic-border-width) var(--gray-a6);
431
+ background-color: var(--accent-2);
432
+ box-shadow: var(--shadow-2);
433
+
434
+ /* Theme-level translucent override for hover */
435
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
436
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
437
+ }
438
+
439
+ /* Component-level overrides for hover */
440
+ &:where([data-panel-background='solid'], [data-material='solid']) {
441
+ background-color: var(--accent-2);
442
+ }
443
+
444
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
445
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
446
+ }
412
447
  }
413
448
  }
414
449
 
415
450
  /* Focus state - accent ring with minimal inset */
416
451
  &:where(:has(.rt-TextFieldInput:focus)) {
417
- /* prettier-ignore */
418
- box-shadow:
419
- inset 0 calc(var(--classic-border-width) / 2) calc(var(--classic-shadow-blur-small) / 3) var(--gray-a2),
420
- 0 0 0 2px var(--focus-8);
452
+ box-shadow: var(--shadow-2), 0 0 0 2px var(--focus-8);
421
453
  }
422
454
 
423
455
  & :where(.rt-TextFieldInput) {
@@ -455,51 +487,41 @@
455
487
  --text-field-focus-color: var(--accent-8);
456
488
  --text-field-border-width: 0px;
457
489
 
458
- /* Base state: solid accent for solid panels */
490
+ /* Base state: solid color for solid panels */
459
491
  background-color: var(--accent-3);
460
- color: var(--accent-12);
492
+ transition: var(--transition-background-blur);
461
493
 
462
494
  /* Theme-level translucent override */
463
- :where([data-panel-background='translucent']) & {
464
- background-color: var(--accent-a3);
465
- backdrop-filter: var(--backdrop-filter-components);
495
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
496
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
466
497
  }
467
498
 
468
499
  /* Component-level overrides (higher specificity) */
469
- &:where([data-panel-background='solid']) {
500
+ &:where([data-panel-background='solid'], [data-material='solid']) {
470
501
  background-color: var(--accent-3);
471
- backdrop-filter: none;
472
- --backdrop-filter-components: none;
473
502
  }
474
503
 
475
- &:where([data-panel-background='translucent']) {
476
- background-color: var(--accent-a3);
477
- backdrop-filter: var(--backdrop-filter-components);
478
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
504
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
505
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
479
506
  }
480
507
 
481
508
  /* Hover effects */
482
509
  @media (hover: hover) {
483
510
  &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
484
- /* Base state: solid accent for solid panels */
485
511
  background-color: var(--accent-4);
486
-
512
+
487
513
  /* Theme-level translucent override for hover */
488
- :where([data-panel-background='translucent']) & {
489
- background-color: var(--accent-a4);
514
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
515
+ background-color: color-mix(in srgb, var(--accent-a4), var(--accent-4) 60%);
490
516
  }
491
517
 
492
518
  /* Component-level overrides for hover */
493
- &:where([data-panel-background='solid']) {
519
+ &:where([data-panel-background='solid'], [data-material='solid']) {
494
520
  background-color: var(--accent-4);
495
- backdrop-filter: none;
496
- --backdrop-filter-components: none;
497
521
  }
498
522
 
499
- &:where([data-panel-background='translucent']) {
500
- background-color: var(--accent-a4);
501
- backdrop-filter: var(--backdrop-filter-components);
502
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
523
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
524
+ background-color: color-mix(in srgb, var(--accent-a4), var(--accent-4) 60%);
503
525
  }
504
526
  }
505
527
  }
@@ -558,31 +580,26 @@
558
580
  @media (hover: hover) {
559
581
  &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
560
582
  /* Base state: solid accent for solid panels */
561
- background-color: var(--accent-2);
562
-
583
+ background-color: var(--accent-3);
584
+
563
585
  /* Theme-level translucent override for hover */
564
- :where([data-panel-background='translucent']) & {
565
- background-color: var(--accent-a2);
566
- backdrop-filter: var(--backdrop-filter-components);
586
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
587
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
567
588
  }
568
589
 
569
590
  /* Component-level overrides for hover */
570
- &:where([data-panel-background='solid']) {
571
- background-color: var(--accent-2);
572
- backdrop-filter: none;
573
- --backdrop-filter-components: none;
591
+ &:where([data-panel-background='solid'], [data-material='solid']) {
592
+ background-color: var(--accent-3);
574
593
  }
575
594
 
576
- &:where([data-panel-background='translucent']) {
577
- background-color: var(--accent-a2);
578
- backdrop-filter: var(--backdrop-filter-components);
579
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
595
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
596
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
580
597
  }
581
598
 
582
599
  /* Disable backdrop-filter when inside elements that already have backdrop-filter */
583
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
600
+ /* :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
584
601
  backdrop-filter: none !important;
585
- }
602
+ } */
586
603
  }
587
604
  }
588
605
 
@@ -592,26 +609,23 @@
592
609
  background-color: var(--accent-2);
593
610
 
594
611
  /* Theme-level translucent override */
595
- :where([data-panel-background='translucent']) & {
612
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
596
613
  background-color: var(--accent-a2);
597
- backdrop-filter: var(--backdrop-filter-components);
598
614
  }
599
615
 
600
616
  /* Component-level overrides */
601
- &:where([data-panel-background='solid']) {
617
+ &:where([data-panel-background='solid'], [data-material='solid']) {
602
618
  background-color: var(--accent-2);
603
- backdrop-filter: none;
604
619
  }
605
620
 
606
- &:where([data-panel-background='translucent']) {
621
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
607
622
  background-color: var(--accent-a2);
608
- backdrop-filter: var(--backdrop-filter-components);
609
623
  }
610
624
 
611
625
  /* Disable backdrop-filter when inside elements that already have backdrop-filter */
612
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
626
+ /* :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
613
627
  backdrop-filter: none !important;
614
- }
628
+ } */
615
629
  }
616
630
 
617
631
  /* prettier-ignore */
@@ -633,23 +647,26 @@
633
647
  --text-field-focus-color: var(--accent-8);
634
648
  --text-field-border-width: 1px;
635
649
 
636
- background-color: transparent;
637
- box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-7);
638
- color: var(--gray-12);
650
+ /* Base state: solid accent for solid panels */
651
+ background-color: var(--accent-2);
652
+ box-shadow: inset 0 0 0 1px var(--accent-6);
639
653
  transition: var(--transition-background-blur);
640
654
 
641
- /* Theme-level panel awareness (NO backdrop filter for true transparency) */
642
- :where([data-panel-background='translucent']) & {
643
- box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-a7);
655
+ /* Theme-level translucent override */
656
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
657
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
658
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
644
659
  }
645
660
 
646
- /* Component-level overrides */
647
- &:where([data-panel-background='solid']) {
648
- box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-7);
661
+ /* Component-level overrides (higher specificity) */
662
+ &:where([data-panel-background='solid'], [data-material='solid']) {
663
+ background-color: var(--accent-2);
664
+ box-shadow: inset 0 0 0 1px var(--accent-6);
649
665
  }
650
666
 
651
- &:where([data-panel-background='translucent']) {
652
- box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-a7);
667
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
668
+ background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
669
+ box-shadow: inset 0 0 0 1px var(--accent-a6);
653
670
  }
654
671
 
655
672
  & :where(.rt-TextFieldInput) {
@@ -669,31 +686,24 @@
669
686
  /* Hover effects */
670
687
  @media (hover: hover) {
671
688
  &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
672
- /* Base state: solid accent for solid panels */
673
- background-color: var(--accent-2);
674
-
689
+ background-color: var(--accent-3);
690
+ box-shadow: inset 0 0 0 1px var(--accent-7);
691
+
675
692
  /* Theme-level translucent override for hover */
676
- :where([data-panel-background='translucent']) & {
677
- background-color: var(--accent-a2);
678
- backdrop-filter: var(--backdrop-filter-components);
693
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
694
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
695
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
679
696
  }
680
697
 
681
698
  /* Component-level overrides for hover */
682
- &:where([data-panel-background='solid']) {
683
- background-color: var(--accent-2);
684
- backdrop-filter: none;
685
- --backdrop-filter-components: none;
686
- }
687
-
688
- &:where([data-panel-background='translucent']) {
689
- background-color: var(--accent-a2);
690
- backdrop-filter: var(--backdrop-filter-components);
691
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
699
+ &:where([data-panel-background='solid'], [data-material='solid']) {
700
+ background-color: var(--accent-3);
701
+ box-shadow: inset 0 0 0 1px var(--accent-7);
692
702
  }
693
703
 
694
- /* Disable backdrop-filter when inside elements that already have backdrop-filter */
695
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
696
- backdrop-filter: none !important;
704
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
705
+ background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
706
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
697
707
  }
698
708
  }
699
709
  }
@@ -705,29 +715,26 @@
705
715
  box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-8);
706
716
 
707
717
  /* Theme-level translucent override */
708
- :where([data-panel-background='translucent']) & {
718
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
709
719
  background-color: var(--accent-a2);
710
720
  box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-a8);
711
- backdrop-filter: var(--backdrop-filter-components);
712
721
  }
713
722
 
714
723
  /* Component-level overrides */
715
- &:where([data-panel-background='solid']) {
724
+ &:where([data-panel-background='solid'], [data-material='solid']) {
716
725
  background-color: var(--accent-2);
717
726
  box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-8);
718
- backdrop-filter: none;
719
727
  }
720
728
 
721
- &:where([data-panel-background='translucent']) {
729
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
722
730
  background-color: var(--accent-a2);
723
731
  box-shadow: inset 0 0 0 var(--text-field-border-width) var(--accent-a8);
724
- backdrop-filter: var(--backdrop-filter-components);
725
732
  }
726
733
 
727
734
  /* Disable backdrop-filter when inside elements that already have backdrop-filter */
728
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
735
+ /* :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
729
736
  backdrop-filter: none !important;
730
- }
737
+ } */
731
738
  }
732
739
 
733
740
  /* prettier-ignore */
@@ -769,3 +776,79 @@
769
776
  }
770
777
  }
771
778
  }
779
+
780
+ /* Error state styling */
781
+ .rt-TextFieldRoot:where(.rt-error) {
782
+ --text-field-selection-color: var(--red-a5);
783
+ --text-field-focus-color: var(--red-8);
784
+ }
785
+
786
+ .rt-TextFieldRoot:where(.rt-error.rt-variant-outline) {
787
+ box-shadow: inset 0 0 0 1px var(--red-6);
788
+
789
+ @media (hover: hover) {
790
+ &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
791
+ box-shadow: inset 0 0 0 1px var(--red-7);
792
+ }
793
+ }
794
+ }
795
+
796
+ .rt-TextFieldRoot:where(.rt-error.rt-variant-surface) {
797
+ box-shadow: inset 0 0 0 1px var(--red-6);
798
+
799
+ @media (hover: hover) {
800
+ &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
801
+ box-shadow: inset 0 0 0 1px var(--red-7);
802
+ }
803
+ }
804
+ }
805
+
806
+ .rt-TextFieldRoot:where(.rt-error.rt-variant-classic) {
807
+ box-shadow: var(--shadow-2), inset 0 0 0 1px var(--red-6);
808
+
809
+ @media (hover: hover) {
810
+ &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
811
+ box-shadow: var(--shadow-3), inset 0 0 0 1px var(--red-7);
812
+ }
813
+ }
814
+ }
815
+
816
+ .rt-TextFieldRoot:where(.rt-error.rt-variant-soft) {
817
+ background-color: var(--red-2);
818
+
819
+ @media (hover: hover) {
820
+ &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
821
+ background-color: var(--red-4);
822
+ }
823
+ }
824
+ }
825
+
826
+ .rt-TextFieldRoot:where(.rt-error.rt-variant-ghost) {
827
+ @media (hover: hover) {
828
+ &:where(:hover:not(:has(.rt-TextFieldInput:focus))) {
829
+ background-color: var(--red-3);
830
+ }
831
+ }
832
+
833
+ &:where(:focus-within) {
834
+ background-color: var(--red-2);
835
+ }
836
+ }
837
+
838
+ /* Error message styling */
839
+ .rt-TextFieldErrorMessage {
840
+ color: var(--red-11);
841
+ font-size: var(--font-size-1);
842
+ line-height: var(--line-height-1);
843
+ margin-top: var(--space-1);
844
+ display: flex;
845
+ align-items: center;
846
+ gap: var(--space-1);
847
+ }
848
+
849
+ .rt-TextFieldErrorMessage::before {
850
+ content: "⚠";
851
+ color: var(--red-9);
852
+ font-size: var(--font-size-1);
853
+ line-height: 1;
854
+ }
@@ -8,17 +8,34 @@ import type { PropDef } from '../props/prop-def.js';
8
8
  const sizes = ['1', '2', '3'] as const;
9
9
  const variants = ['classic', 'surface', 'soft', 'ghost', 'outline'] as const;
10
10
  const panelBackgrounds = ['solid', 'translucent'] as const;
11
+ const materials = ['solid', 'translucent'] as const;
11
12
 
12
13
  const textFieldRootPropDefs = {
13
14
  size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },
14
15
  variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },
16
+ // Error and validation props
17
+ error: { type: 'boolean', default: false },
18
+ errorMessage: { type: 'string', default: undefined },
19
+ isInvalid: { type: 'boolean', default: false },
20
+ required: { type: 'boolean', default: false },
21
+ // Accessibility props
22
+ 'aria-describedby': { type: 'string', default: undefined },
23
+ 'aria-labelledby': { type: 'string', default: undefined },
15
24
  ...colorPropDef,
16
25
  ...radiusPropDef,
17
26
  panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },
27
+ material: { type: 'enum', values: materials, default: undefined },
18
28
  } satisfies {
19
29
  size: PropDef<(typeof sizes)[number]>;
20
30
  variant: PropDef<(typeof variants)[number]>;
31
+ error: PropDef<boolean>;
32
+ errorMessage: PropDef<string | undefined>;
33
+ isInvalid: PropDef<boolean>;
34
+ required: PropDef<boolean>;
35
+ 'aria-describedby': PropDef<string | undefined>;
36
+ 'aria-labelledby': PropDef<string | undefined>;
21
37
  panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
38
+ material: PropDef<(typeof materials)[number] | undefined>;
22
39
  };
23
40
 
24
41
  const sides = ['left', 'right'] as const;