@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
@@ -0,0 +1,90 @@
1
+ import { asChildPropDef } from '../props/as-child.prop.js';
2
+ import { colorPropDef } from '../props/color.prop.js';
3
+ import { highContrastPropDef } from '../props/high-contrast.prop.js';
4
+ import { radiusPropDef } from '../props/radius.prop.js';
5
+
6
+ import type { PropDef } from '../props/prop-def.js';
7
+
8
+ const sizes = ['1', '2', '3', '4'] as const;
9
+ const variants = ['classic', 'soft', 'surface', 'outline', 'ghost'] as const;
10
+ const panelBackgrounds = ['solid', 'translucent'] as const;
11
+
12
+ const accordionRootPropDefs = {
13
+ ...asChildPropDef,
14
+ size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },
15
+ variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },
16
+ ...colorPropDef,
17
+ ...highContrastPropDef,
18
+ ...radiusPropDef,
19
+ material: { type: 'enum', values: panelBackgrounds, default: undefined },
20
+ /**
21
+ * @deprecated Use `material` prop instead. This prop will be removed in a future version.
22
+ */
23
+ panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },
24
+ flush: { type: 'boolean', default: false },
25
+ } satisfies {
26
+ size: PropDef<(typeof sizes)[number]>;
27
+ variant: PropDef<(typeof variants)[number]>;
28
+ material: PropDef<(typeof panelBackgrounds)[number] | undefined>;
29
+ panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
30
+ flush: PropDef<boolean>;
31
+ };
32
+
33
+ const accordionItemPropDefs = {
34
+ ...asChildPropDef,
35
+ } satisfies {
36
+ asChild: PropDef<boolean>;
37
+ };
38
+
39
+ const accordionHeaderPropDefs = {
40
+ ...asChildPropDef,
41
+ } satisfies {
42
+ asChild: PropDef<boolean>;
43
+ };
44
+
45
+ const accordionTriggerPropDefs = {
46
+ ...asChildPropDef,
47
+ } satisfies {
48
+ asChild: PropDef<boolean>;
49
+ };
50
+
51
+ const accordionContentPropDefs = {
52
+ ...asChildPropDef,
53
+ } satisfies {
54
+ asChild: PropDef<boolean>;
55
+ };
56
+
57
+ export {
58
+ accordionRootPropDefs,
59
+ accordionItemPropDefs,
60
+ accordionHeaderPropDefs,
61
+ accordionTriggerPropDefs,
62
+ accordionContentPropDefs,
63
+ };
64
+
65
+ export type AccordionRootOwnProps = {
66
+ size?: (typeof sizes)[number];
67
+ variant?: (typeof variants)[number];
68
+ color?: string;
69
+ highContrast?: boolean;
70
+ radius?: string;
71
+ material?: (typeof panelBackgrounds)[number];
72
+ panelBackground?: (typeof panelBackgrounds)[number];
73
+ flush?: boolean;
74
+ };
75
+
76
+ export type AccordionItemOwnProps = {
77
+ asChild?: boolean;
78
+ };
79
+
80
+ export type AccordionHeaderOwnProps = {
81
+ asChild?: boolean;
82
+ };
83
+
84
+ export type AccordionTriggerOwnProps = {
85
+ asChild?: boolean;
86
+ };
87
+
88
+ export type AccordionContentOwnProps = {
89
+ asChild?: boolean;
90
+ };
@@ -0,0 +1,209 @@
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+ import { Accordion as AccordionPrimitive } from 'radix-ui';
4
+
5
+ import {
6
+ accordionRootPropDefs,
7
+ accordionItemPropDefs,
8
+ accordionHeaderPropDefs,
9
+ accordionTriggerPropDefs,
10
+ accordionContentPropDefs,
11
+ } from './accordion.props.js';
12
+ import { extractProps } from '../helpers/extract-props.js';
13
+
14
+ import type {
15
+ AccordionRootOwnProps,
16
+ AccordionItemOwnProps,
17
+ AccordionHeaderOwnProps,
18
+ AccordionTriggerOwnProps,
19
+ AccordionContentOwnProps,
20
+ } from './accordion.props.js';
21
+ import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
22
+
23
+ // Root component
24
+ type AccordionRootElement = React.ElementRef<typeof AccordionPrimitive.Root>;
25
+ interface AccordionRootProps
26
+ extends ComponentPropsWithout<typeof AccordionPrimitive.Root, RemovedProps>,
27
+ AccordionRootOwnProps {}
28
+
29
+ const AccordionRoot = React.forwardRef<AccordionRootElement, AccordionRootProps>(
30
+ (props, forwardedRef) => {
31
+ const { className, panelBackground, material, flush, radius, color, ...extractedRadixProps } =
32
+ extractProps(props, accordionRootPropDefs);
33
+
34
+ const radixProps = extractedRadixProps as React.ComponentPropsWithoutRef<
35
+ typeof AccordionPrimitive.Root
36
+ >;
37
+
38
+ // Show deprecation warning for panelBackground when used
39
+ React.useEffect(() => {
40
+ if (props.panelBackground !== undefined) {
41
+ console.warn(
42
+ 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
43
+ );
44
+ }
45
+ }, [props.panelBackground]);
46
+
47
+ // Material takes precedence over panelBackground
48
+ const effectiveMaterial = material ?? panelBackground;
49
+
50
+ // Ensure single accordions can collapse by default unless explicitly set
51
+ if (radixProps.type === 'single' && radixProps.collapsible === undefined) {
52
+ radixProps.collapsible = true;
53
+ }
54
+
55
+ // Handle Home/End key navigation for multi-item accordions
56
+ const handleKeyDown = React.useCallback(
57
+ (event: React.KeyboardEvent) => {
58
+ if (radixProps.type === 'multiple') {
59
+ const items = event.currentTarget.querySelectorAll('[data-radix-accordion-item]');
60
+
61
+ if (event.key === 'Home') {
62
+ event.preventDefault();
63
+ const firstTrigger = items[0]?.querySelector(
64
+ '[data-radix-accordion-trigger]',
65
+ ) as HTMLElement;
66
+ firstTrigger?.focus();
67
+ } else if (event.key === 'End') {
68
+ event.preventDefault();
69
+ const lastTrigger = items[items.length - 1]?.querySelector(
70
+ '[data-radix-accordion-trigger]',
71
+ ) as HTMLElement;
72
+ lastTrigger?.focus();
73
+ }
74
+ }
75
+ },
76
+ [radixProps.type],
77
+ );
78
+
79
+ return (
80
+ <AccordionPrimitive.Root
81
+ {...radixProps}
82
+ ref={forwardedRef}
83
+ className={classNames('rt-AccordionRoot', className)}
84
+ data-accent-color={color}
85
+ data-panel-background={effectiveMaterial}
86
+ data-material={effectiveMaterial}
87
+ data-flush={flush || undefined}
88
+ data-radius={radius}
89
+ onKeyDown={handleKeyDown}
90
+ />
91
+ );
92
+ },
93
+ );
94
+ AccordionRoot.displayName = 'Accordion.Root';
95
+
96
+ // Item component
97
+ type AccordionItemElement = React.ElementRef<typeof AccordionPrimitive.Item>;
98
+ interface AccordionItemProps
99
+ extends ComponentPropsWithout<typeof AccordionPrimitive.Item, RemovedProps>,
100
+ AccordionItemOwnProps {}
101
+
102
+ const AccordionItem = React.forwardRef<AccordionItemElement, AccordionItemProps>(
103
+ (props, forwardedRef) => {
104
+ const { className, ...itemProps } = extractProps(props, accordionItemPropDefs);
105
+
106
+ return (
107
+ <AccordionPrimitive.Item
108
+ {...itemProps}
109
+ ref={forwardedRef}
110
+ className={classNames('rt-AccordionItem', className)}
111
+ />
112
+ );
113
+ },
114
+ );
115
+ AccordionItem.displayName = 'Accordion.Item';
116
+
117
+ // Header component
118
+ type AccordionHeaderElement = React.ElementRef<typeof AccordionPrimitive.Header>;
119
+ interface AccordionHeaderProps
120
+ extends ComponentPropsWithout<typeof AccordionPrimitive.Header, RemovedProps>,
121
+ AccordionHeaderOwnProps {}
122
+
123
+ const AccordionHeader = React.forwardRef<AccordionHeaderElement, AccordionHeaderProps>(
124
+ (props, forwardedRef) => {
125
+ const { className, ...headerProps } = extractProps(props, accordionHeaderPropDefs);
126
+
127
+ return (
128
+ <AccordionPrimitive.Header
129
+ {...headerProps}
130
+ ref={forwardedRef}
131
+ className={classNames('rt-AccordionHeader', className)}
132
+ />
133
+ );
134
+ },
135
+ );
136
+ AccordionHeader.displayName = 'Accordion.Header';
137
+
138
+ // Trigger component
139
+ type AccordionTriggerElement = React.ElementRef<typeof AccordionPrimitive.Trigger>;
140
+ interface AccordionTriggerProps
141
+ extends ComponentPropsWithout<typeof AccordionPrimitive.Trigger, RemovedProps>,
142
+ AccordionTriggerOwnProps {}
143
+
144
+ const AccordionTrigger = React.forwardRef<AccordionTriggerElement, AccordionTriggerProps>(
145
+ ({ children, ...props }, forwardedRef) => {
146
+ const { className, ...triggerProps } = extractProps(props, accordionTriggerPropDefs);
147
+
148
+ // Radix UI handles focus management automatically
149
+ const triggerRef = React.useRef<HTMLButtonElement>(null);
150
+
151
+ return (
152
+ <AccordionPrimitive.Trigger
153
+ {...triggerProps}
154
+ ref={(node) => {
155
+ triggerRef.current = node;
156
+ if (typeof forwardedRef === 'function') {
157
+ forwardedRef(node);
158
+ } else if (forwardedRef) {
159
+ forwardedRef.current = node;
160
+ }
161
+ }}
162
+ className={classNames('rt-AccordionTrigger', className)}
163
+ >
164
+ {children}
165
+ </AccordionPrimitive.Trigger>
166
+ );
167
+ },
168
+ );
169
+ AccordionTrigger.displayName = 'Accordion.Trigger';
170
+
171
+ // Content component
172
+ type AccordionContentElement = React.ElementRef<typeof AccordionPrimitive.Content>;
173
+ interface AccordionContentProps
174
+ extends ComponentPropsWithout<typeof AccordionPrimitive.Content, RemovedProps>,
175
+ AccordionContentOwnProps {}
176
+
177
+ const AccordionContent = React.forwardRef<AccordionContentElement, AccordionContentProps>(
178
+ (props, forwardedRef) => {
179
+ const { className, children, ...contentProps } = extractProps(props, accordionContentPropDefs);
180
+
181
+ return (
182
+ <AccordionPrimitive.Content
183
+ {...contentProps}
184
+ ref={forwardedRef}
185
+ className={classNames('rt-AccordionContent', className)}
186
+ aria-live="polite"
187
+ >
188
+ <div className="rt-AccordionContentInner">{children}</div>
189
+ </AccordionPrimitive.Content>
190
+ );
191
+ },
192
+ );
193
+ AccordionContent.displayName = 'Accordion.Content';
194
+
195
+ export {
196
+ AccordionRoot as Root,
197
+ AccordionItem as Item,
198
+ AccordionHeader as Header,
199
+ AccordionTrigger as Trigger,
200
+ AccordionContent as Content,
201
+ };
202
+
203
+ export type {
204
+ AccordionRootProps as RootProps,
205
+ AccordionItemProps as ItemProps,
206
+ AccordionHeaderProps as HeaderProps,
207
+ AccordionTriggerProps as TriggerProps,
208
+ AccordionContentProps as ContentProps,
209
+ };
@@ -1,2 +1,22 @@
1
- export { dialogContentPropDefs as alertDialogContentPropDefs } from './dialog.props.js';
2
- export type { DialogContentOwnProps as AlertDialogContentOwnProps } from './dialog.props.js';
1
+ import { dialogContentPropDefs } from './dialog.props.js';
2
+ import type { PropDef, GetPropDefTypes } from '../props/prop-def.js';
3
+
4
+ const materials = ['solid', 'translucent'] as const;
5
+
6
+ const alertDialogContentPropDefs = {
7
+ ...dialogContentPropDefs,
8
+ material: { type: 'enum', values: materials, default: undefined },
9
+ } satisfies {
10
+ align: PropDef<'start' | 'center'>;
11
+ size: PropDef<'1' | '2' | '3' | '4'>;
12
+ panelBackground: PropDef<'solid' | 'translucent' | undefined>;
13
+ width: PropDef<string>;
14
+ minWidth: PropDef<string>;
15
+ maxWidth: PropDef<string>;
16
+ material: PropDef<'solid' | 'translucent' | undefined>;
17
+ };
18
+
19
+ type AlertDialogContentOwnProps = GetPropDefTypes<typeof alertDialogContentPropDefs>;
20
+
21
+ export { alertDialogContentPropDefs };
22
+ export type { AlertDialogContentOwnProps };
@@ -46,20 +46,99 @@ const AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDial
46
46
  const {
47
47
  align: alignPropDef,
48
48
  panelBackground: panelBackgroundPropDef,
49
+ material: materialPropDef,
49
50
  ...propDefs
50
51
  } = alertDialogContentPropDefs;
52
+
51
53
  const { className: alignClassName } = extractProps({ align }, { align: alignPropDef });
52
- const { panelBackground } = extractProps(
54
+
55
+ // Extract panelBackground and material from props
56
+ const { panelBackground: extractedPanelBackground } = extractProps(
53
57
  { panelBackground: props.panelBackground },
54
58
  { panelBackground: panelBackgroundPropDef },
55
59
  );
60
+
61
+ const { material: extractedMaterial } = extractProps(
62
+ { material: props.material },
63
+ { material: materialPropDef },
64
+ );
65
+
66
+ // Handle material prop with panelBackground fallback
67
+ const materialValue = React.useMemo(() => {
68
+ if (extractedMaterial !== undefined) {
69
+ console.warn(
70
+ 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
71
+ );
72
+ }
73
+ return extractedMaterial ?? extractedPanelBackground;
74
+ }, [extractedMaterial, extractedPanelBackground]);
75
+
56
76
  const {
57
77
  className,
58
78
  forceMount,
59
79
  container,
60
80
  panelBackground: _,
81
+ material: __,
61
82
  ...contentProps
62
83
  } = extractProps(props, propDefs);
84
+
85
+ // Focus management
86
+ const contentRef = React.useRef<HTMLDivElement>(null);
87
+ const combinedRef = React.useMemo(
88
+ () => (node: HTMLDivElement | null) => {
89
+ contentRef.current = node;
90
+ if (typeof forwardedRef === 'function') {
91
+ forwardedRef(node);
92
+ } else if (forwardedRef) {
93
+ forwardedRef.current = node;
94
+ }
95
+ },
96
+ [forwardedRef],
97
+ );
98
+
99
+ // Focus trap effect
100
+ React.useEffect(() => {
101
+ // SSR safety - only run on client
102
+ if (typeof window === 'undefined') return;
103
+
104
+ const content = contentRef.current;
105
+ if (!content) return;
106
+
107
+ const focusableElements = content.querySelectorAll(
108
+ 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',
109
+ );
110
+
111
+ if (focusableElements.length === 0) return;
112
+
113
+ const firstElement = focusableElements[0] as HTMLElement;
114
+ const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;
115
+
116
+ const handleKeyDown = (event: KeyboardEvent) => {
117
+ if (event.key === 'Tab') {
118
+ if (event.shiftKey) {
119
+ if (document.activeElement === firstElement) {
120
+ event.preventDefault();
121
+ lastElement.focus();
122
+ }
123
+ } else {
124
+ if (document.activeElement === lastElement) {
125
+ event.preventDefault();
126
+ firstElement.focus();
127
+ }
128
+ }
129
+ }
130
+ };
131
+
132
+ content.addEventListener('keydown', handleKeyDown);
133
+
134
+ // Focus first element when dialog opens
135
+ firstElement.focus();
136
+
137
+ return () => {
138
+ content.removeEventListener('keydown', handleKeyDown);
139
+ };
140
+ }, []);
141
+
63
142
  return (
64
143
  <AlertDialogPrimitive.Portal container={container} forceMount={forceMount}>
65
144
  <Theme asChild>
@@ -70,9 +149,21 @@ const AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDial
70
149
  >
71
150
  <AlertDialogPrimitive.Content
72
151
  {...contentProps}
73
- ref={forwardedRef}
152
+ ref={combinedRef}
74
153
  className={classNames('rt-BaseDialogContent', 'rt-AlertDialogContent', className)}
75
- data-panel-background={panelBackground}
154
+ data-material={materialValue}
155
+ data-panel-background={materialValue}
156
+ tabIndex={-1}
157
+ role="alertdialog"
158
+ aria-modal="true"
159
+ aria-describedby="alert-dialog-description"
160
+ />
161
+ {/* ARIA live region for screen reader announcements */}
162
+ <div
163
+ aria-live="assertive"
164
+ aria-atomic="true"
165
+ className="rt-sr-only"
166
+ id="alert-dialog-announcement"
76
167
  />
77
168
  </div>
78
169
  </div>