@womp/kookie-ui 0.3.25 → 0.4.0

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 (582) hide show
  1. package/AUTHORS +27 -0
  2. package/LICENSE +29 -0
  3. package/README.md +21 -1
  4. package/components.css +163 -118
  5. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  6. package/dist/cjs/components/_internal/base-button.js +1 -1
  7. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  8. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
  9. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +3 -3
  10. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  11. package/dist/cjs/components/_internal/shell-bottom.js.map +4 -4
  12. package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
  13. package/dist/cjs/components/_internal/shell-handles.js +1 -1
  14. package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
  15. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  16. package/dist/cjs/components/_internal/shell-inspector.js.map +4 -4
  17. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  18. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  19. package/dist/cjs/components/accordion.d.ts.map +1 -1
  20. package/dist/cjs/components/accordion.js +1 -1
  21. package/dist/cjs/components/accordion.js.map +4 -4
  22. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  23. package/dist/cjs/components/alert-dialog.js +1 -1
  24. package/dist/cjs/components/alert-dialog.js.map +4 -4
  25. package/dist/cjs/components/avatar.js +1 -1
  26. package/dist/cjs/components/avatar.js.map +4 -4
  27. package/dist/cjs/components/badge.d.ts.map +1 -1
  28. package/dist/cjs/components/badge.js +1 -1
  29. package/dist/cjs/components/badge.js.map +4 -4
  30. package/dist/cjs/components/blockquote.js +1 -1
  31. package/dist/cjs/components/blockquote.js.map +4 -4
  32. package/dist/cjs/components/box.js +1 -1
  33. package/dist/cjs/components/box.js.map +4 -4
  34. package/dist/cjs/components/button.js +1 -1
  35. package/dist/cjs/components/button.js.map +4 -4
  36. package/dist/cjs/components/callout.js +1 -1
  37. package/dist/cjs/components/callout.js.map +4 -4
  38. package/dist/cjs/components/card.js +1 -1
  39. package/dist/cjs/components/card.js.map +4 -4
  40. package/dist/cjs/components/chatbar.js +2 -2
  41. package/dist/cjs/components/chatbar.js.map +4 -4
  42. package/dist/cjs/components/checkbox-cards.js +1 -1
  43. package/dist/cjs/components/checkbox-cards.js.map +4 -4
  44. package/dist/cjs/components/checkbox-group.js +1 -1
  45. package/dist/cjs/components/checkbox-group.js.map +4 -4
  46. package/dist/cjs/components/checkbox.js +1 -1
  47. package/dist/cjs/components/checkbox.js.map +4 -4
  48. package/dist/cjs/components/code.js +1 -1
  49. package/dist/cjs/components/code.js.map +4 -4
  50. package/dist/cjs/components/combobox.js +1 -1
  51. package/dist/cjs/components/combobox.js.map +4 -4
  52. package/dist/cjs/components/container.js +1 -1
  53. package/dist/cjs/components/container.js.map +4 -4
  54. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  55. package/dist/cjs/components/context-menu.js +1 -1
  56. package/dist/cjs/components/context-menu.js.map +4 -4
  57. package/dist/cjs/components/data-list.js +1 -1
  58. package/dist/cjs/components/data-list.js.map +4 -4
  59. package/dist/cjs/components/dialog.d.ts.map +1 -1
  60. package/dist/cjs/components/dialog.js +1 -1
  61. package/dist/cjs/components/dialog.js.map +4 -4
  62. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  63. package/dist/cjs/components/dropdown-menu.js +1 -1
  64. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  65. package/dist/cjs/components/em.js +1 -1
  66. package/dist/cjs/components/em.js.map +4 -4
  67. package/dist/cjs/components/flex.js +1 -1
  68. package/dist/cjs/components/flex.js.map +4 -4
  69. package/dist/cjs/components/grid.js +1 -1
  70. package/dist/cjs/components/grid.js.map +4 -4
  71. package/dist/cjs/components/heading.js +1 -1
  72. package/dist/cjs/components/heading.js.map +4 -4
  73. package/dist/cjs/components/hover-card.js +1 -1
  74. package/dist/cjs/components/hover-card.js.map +4 -4
  75. package/dist/cjs/components/icon-button.js +2 -2
  76. package/dist/cjs/components/icon-button.js.map +4 -4
  77. package/dist/cjs/components/image.js +1 -1
  78. package/dist/cjs/components/image.js.map +4 -4
  79. package/dist/cjs/components/index.js +5 -5
  80. package/dist/cjs/components/index.js.map +4 -4
  81. package/dist/cjs/components/inset.js +1 -1
  82. package/dist/cjs/components/inset.js.map +4 -4
  83. package/dist/cjs/components/kbd.js +1 -1
  84. package/dist/cjs/components/kbd.js.map +4 -4
  85. package/dist/cjs/components/link.js +1 -1
  86. package/dist/cjs/components/link.js.map +4 -4
  87. package/dist/cjs/components/navbar.js +1 -1
  88. package/dist/cjs/components/navbar.js.map +4 -4
  89. package/dist/cjs/components/popover.js +1 -1
  90. package/dist/cjs/components/popover.js.map +4 -4
  91. package/dist/cjs/components/progress.js +1 -1
  92. package/dist/cjs/components/progress.js.map +4 -4
  93. package/dist/cjs/components/quote.js +1 -1
  94. package/dist/cjs/components/quote.js.map +4 -4
  95. package/dist/cjs/components/radio-cards.js +1 -1
  96. package/dist/cjs/components/radio-cards.js.map +4 -4
  97. package/dist/cjs/components/radio-group.js +1 -1
  98. package/dist/cjs/components/radio-group.js.map +4 -4
  99. package/dist/cjs/components/radio.js +1 -1
  100. package/dist/cjs/components/radio.js.map +4 -4
  101. package/dist/cjs/components/schemas/base-button.schema.d.ts +2 -2
  102. package/dist/cjs/components/schemas/button.schema.d.ts +2 -2
  103. package/dist/cjs/components/schemas/icon-button.schema.d.ts +4 -4
  104. package/dist/cjs/components/schemas/shell.schema.d.ts +2 -2
  105. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +6 -6
  106. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +8 -8
  107. package/dist/cjs/components/scroll-area.js +1 -1
  108. package/dist/cjs/components/scroll-area.js.map +4 -4
  109. package/dist/cjs/components/section.js +1 -1
  110. package/dist/cjs/components/section.js.map +4 -4
  111. package/dist/cjs/components/segmented-control.js +1 -1
  112. package/dist/cjs/components/segmented-control.js.map +4 -4
  113. package/dist/cjs/components/select.js +1 -1
  114. package/dist/cjs/components/select.js.map +4 -4
  115. package/dist/cjs/components/separator.js +1 -1
  116. package/dist/cjs/components/separator.js.map +4 -4
  117. package/dist/cjs/components/sheet.d.ts.map +1 -1
  118. package/dist/cjs/components/sheet.js +1 -1
  119. package/dist/cjs/components/sheet.js.map +4 -4
  120. package/dist/cjs/components/shell.js +1 -1
  121. package/dist/cjs/components/shell.js.map +4 -4
  122. package/dist/cjs/components/sidebar.js +1 -1
  123. package/dist/cjs/components/sidebar.js.map +4 -4
  124. package/dist/cjs/components/skeleton.js +1 -1
  125. package/dist/cjs/components/skeleton.js.map +4 -4
  126. package/dist/cjs/components/slider.js +1 -1
  127. package/dist/cjs/components/slider.js.map +4 -4
  128. package/dist/cjs/components/spinner.js +1 -1
  129. package/dist/cjs/components/spinner.js.map +4 -4
  130. package/dist/cjs/components/strong.js +1 -1
  131. package/dist/cjs/components/strong.js.map +4 -4
  132. package/dist/cjs/components/switch.js +1 -1
  133. package/dist/cjs/components/switch.js.map +4 -4
  134. package/dist/cjs/components/tab-nav.js +1 -1
  135. package/dist/cjs/components/tab-nav.js.map +4 -4
  136. package/dist/cjs/components/table.js +1 -1
  137. package/dist/cjs/components/table.js.map +4 -4
  138. package/dist/cjs/components/tabs.js +1 -1
  139. package/dist/cjs/components/tabs.js.map +4 -4
  140. package/dist/cjs/components/text-area.js +1 -1
  141. package/dist/cjs/components/text-area.js.map +4 -4
  142. package/dist/cjs/components/text-field.js +2 -2
  143. package/dist/cjs/components/text-field.js.map +4 -4
  144. package/dist/cjs/components/text.js +1 -1
  145. package/dist/cjs/components/text.js.map +4 -4
  146. package/dist/cjs/components/theme-panel.js +3 -3
  147. package/dist/cjs/components/theme-panel.js.map +4 -4
  148. package/dist/cjs/components/theme.d.ts +3 -0
  149. package/dist/cjs/components/theme.d.ts.map +1 -1
  150. package/dist/cjs/components/theme.js +1 -1
  151. package/dist/cjs/components/theme.js.map +4 -4
  152. package/dist/cjs/components/theme.props.d.ts +15 -1
  153. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  154. package/dist/cjs/components/theme.props.js +1 -1
  155. package/dist/cjs/components/theme.props.js.map +2 -2
  156. package/dist/cjs/components/toggle-button.js +2 -2
  157. package/dist/cjs/components/toggle-button.js.map +4 -4
  158. package/dist/cjs/components/toggle-icon-button.js +3 -3
  159. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  160. package/dist/cjs/components/toolbar.js +1 -1
  161. package/dist/cjs/components/toolbar.js.map +4 -4
  162. package/dist/cjs/components/tooltip.js +1 -1
  163. package/dist/cjs/components/tooltip.js.map +4 -4
  164. package/dist/cjs/components/user-card.js +1 -1
  165. package/dist/cjs/components/user-card.js.map +4 -4
  166. package/dist/cjs/helpers/compile-prop-defs.d.ts +49 -0
  167. package/dist/cjs/helpers/compile-prop-defs.d.ts.map +1 -0
  168. package/dist/cjs/helpers/compile-prop-defs.js +2 -0
  169. package/dist/cjs/helpers/compile-prop-defs.js.map +7 -0
  170. package/dist/cjs/helpers/extract-props.d.ts.map +1 -1
  171. package/dist/cjs/helpers/extract-props.js +1 -1
  172. package/dist/cjs/helpers/extract-props.js.map +4 -4
  173. package/dist/cjs/helpers/font-config.d.ts +84 -77
  174. package/dist/cjs/helpers/font-config.d.ts.map +1 -1
  175. package/dist/cjs/helpers/font-config.js +5 -2
  176. package/dist/cjs/helpers/font-config.js.map +3 -3
  177. package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -1
  178. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  179. package/dist/cjs/helpers/get-margin-styles.js.map +3 -3
  180. package/dist/cjs/helpers/get-responsive-styles.d.ts +5 -2
  181. package/dist/cjs/helpers/get-responsive-styles.d.ts.map +1 -1
  182. package/dist/cjs/helpers/get-responsive-styles.js +1 -1
  183. package/dist/cjs/helpers/get-responsive-styles.js.map +3 -3
  184. package/dist/cjs/helpers/index.js +5 -2
  185. package/dist/cjs/helpers/index.js.map +4 -4
  186. package/dist/cjs/helpers/use-deprecation-warning.d.ts +10 -0
  187. package/dist/cjs/helpers/use-deprecation-warning.d.ts.map +1 -0
  188. package/dist/cjs/helpers/use-deprecation-warning.js +2 -0
  189. package/dist/cjs/helpers/use-deprecation-warning.js.map +7 -0
  190. package/dist/cjs/hooks/index.js +2 -2
  191. package/dist/cjs/hooks/index.js.map +3 -3
  192. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  193. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +1 -1
  194. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +3 -3
  195. package/dist/cjs/hooks/use-breakpoint.d.ts +7 -3
  196. package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
  197. package/dist/cjs/hooks/use-breakpoint.js +1 -1
  198. package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
  199. package/dist/cjs/hooks/use-prop-synced-state.d.ts +14 -0
  200. package/dist/cjs/hooks/use-prop-synced-state.d.ts.map +1 -0
  201. package/dist/cjs/hooks/use-prop-synced-state.js +2 -0
  202. package/dist/cjs/hooks/use-prop-synced-state.js.map +7 -0
  203. package/dist/cjs/index.js +5 -5
  204. package/dist/cjs/index.js.map +4 -4
  205. package/dist/cjs/props/index.js +1 -1
  206. package/dist/cjs/props/index.js.map +2 -2
  207. package/dist/esm/{chunk-WYA4IRU6.js → chunk-25WZA7ZU.js} +2 -2
  208. package/dist/esm/{chunk-ARGX2ZZK.js → chunk-2FYJTSOP.js} +2 -2
  209. package/dist/esm/chunk-2UPAYDKR.js +2 -0
  210. package/dist/esm/chunk-2UPAYDKR.js.map +7 -0
  211. package/dist/esm/chunk-374ZYJUP.js +2 -0
  212. package/dist/esm/chunk-374ZYJUP.js.map +7 -0
  213. package/dist/esm/{chunk-K3R4AH3E.js → chunk-3MWWP4MW.js} +2 -2
  214. package/dist/esm/{chunk-HQ35PM4O.js → chunk-43A5GUSI.js} +2 -2
  215. package/dist/esm/{chunk-Z5DQ6FSA.js → chunk-4AQTUBVP.js} +2 -2
  216. package/dist/esm/{chunk-QLIELX4I.js → chunk-4ME6O27S.js} +2 -2
  217. package/dist/esm/chunk-4XJY6FIK.js +2 -0
  218. package/dist/esm/chunk-4XJY6FIK.js.map +7 -0
  219. package/dist/esm/{chunk-JQOFJNCV.js → chunk-4YFJWXL2.js} +2 -2
  220. package/dist/esm/chunk-5TXQLK4G.js +2 -0
  221. package/dist/esm/chunk-5TXQLK4G.js.map +7 -0
  222. package/dist/esm/{chunk-IPJUHVM6.js → chunk-666GX7O5.js} +2 -2
  223. package/dist/esm/chunk-6FLLFCBU.js +2 -0
  224. package/dist/esm/chunk-6FLLFCBU.js.map +7 -0
  225. package/dist/esm/{chunk-7CBAHIVG.js → chunk-6IGTK4JE.js} +2 -2
  226. package/dist/esm/chunk-6XGZPIUT.js +2 -0
  227. package/dist/esm/{chunk-T27QHMW7.js.map → chunk-6XGZPIUT.js.map} +2 -2
  228. package/dist/esm/{chunk-DJBPM5QK.js → chunk-7FC7HF76.js} +2 -2
  229. package/dist/esm/{chunk-SVLY6B5F.js → chunk-7QDTSBJF.js} +2 -2
  230. package/dist/esm/{chunk-7MURQ6CR.js → chunk-A2RZGGMY.js} +2 -2
  231. package/dist/esm/{chunk-VF5TRT3H.js → chunk-AU3D6F42.js} +2 -2
  232. package/dist/esm/chunk-AX5S56DS.js +2 -0
  233. package/dist/esm/chunk-AX5S56DS.js.map +7 -0
  234. package/dist/esm/{chunk-DK5MHD6I.js → chunk-B24BDVG2.js} +2 -2
  235. package/dist/esm/{chunk-BJTJUIYJ.js → chunk-CRWYCLTE.js} +2 -2
  236. package/dist/esm/{chunk-OHJVFZMH.js → chunk-CSKZZOI2.js} +2 -2
  237. package/dist/esm/{chunk-4N5JU7XQ.js → chunk-CVWCKOHO.js} +2 -2
  238. package/dist/esm/chunk-CWRNW44F.js +2 -0
  239. package/dist/esm/chunk-CWRNW44F.js.map +7 -0
  240. package/dist/esm/{chunk-ADYTQCZX.js → chunk-D6B7IMZU.js} +2 -2
  241. package/dist/esm/{chunk-U7AASKZI.js → chunk-DNHUQLXO.js} +2 -2
  242. package/dist/esm/{chunk-USGTBZ43.js → chunk-E67CIG6A.js} +2 -2
  243. package/dist/esm/{chunk-YUZPSUJE.js → chunk-F7IYL2VW.js} +2 -2
  244. package/dist/esm/{chunk-FVCWNSRU.js → chunk-FHOCUZDR.js} +2 -2
  245. package/dist/esm/{chunk-APRBRAOT.js → chunk-FXUUI6Z2.js} +2 -2
  246. package/dist/esm/{chunk-WNSPLWRV.js → chunk-GJSGKE7B.js} +2 -2
  247. package/dist/esm/{chunk-OGOOZLUD.js → chunk-GLERJXVS.js} +2 -2
  248. package/dist/esm/{chunk-6VGPTAHM.js → chunk-GWXVETMF.js} +2 -2
  249. package/dist/esm/{chunk-ES7MK2MM.js → chunk-GYBLXQ4R.js} +2 -2
  250. package/dist/esm/{chunk-4OBMRJHC.js → chunk-H7ST535H.js} +2 -2
  251. package/dist/esm/{chunk-QLZ5XAW6.js → chunk-HF5WY5YE.js} +2 -2
  252. package/dist/esm/{chunk-RDP4UQ42.js → chunk-IEWCQU2S.js} +2 -2
  253. package/dist/esm/{chunk-XLOHPURR.js → chunk-IHK3H2OM.js} +2 -2
  254. package/dist/esm/{chunk-EJWAAFCI.js → chunk-IKSN4RNB.js} +2 -2
  255. package/dist/esm/{chunk-3F6I7YOR.js → chunk-JDGJSNWT.js} +2 -2
  256. package/dist/esm/chunk-JUY7CBSL.js +2 -0
  257. package/dist/esm/chunk-JUY7CBSL.js.map +7 -0
  258. package/dist/esm/{chunk-ZSEFZM5H.js → chunk-K6QZMNCD.js} +2 -2
  259. package/dist/esm/chunk-KKBP2CRH.js +2 -0
  260. package/dist/esm/chunk-KKBP2CRH.js.map +7 -0
  261. package/dist/esm/{chunk-ZHYOJNWV.js → chunk-LKAK5GXF.js} +2 -2
  262. package/dist/esm/{chunk-GWYFT3EI.js → chunk-M24UXMOQ.js} +2 -2
  263. package/dist/esm/{chunk-JCYI4NTV.js → chunk-MBCBP73P.js} +2 -2
  264. package/dist/esm/{chunk-UYNYUR7O.js → chunk-MBE2YSBU.js} +2 -2
  265. package/dist/esm/chunk-MHANZINI.js +2 -0
  266. package/dist/esm/chunk-MHANZINI.js.map +7 -0
  267. package/dist/esm/chunk-MK2R6DAU.js +2 -0
  268. package/dist/esm/chunk-MK2R6DAU.js.map +7 -0
  269. package/dist/esm/{chunk-DNI4QRXQ.js → chunk-MOR3NSXQ.js} +2 -2
  270. package/dist/esm/{chunk-H2G446JG.js → chunk-NMKPFUNP.js} +2 -2
  271. package/dist/esm/{chunk-TEULZKBM.js → chunk-OGXZHAQL.js} +2 -2
  272. package/dist/esm/{chunk-M3ZYJANH.js → chunk-OSRJRBKP.js} +2 -2
  273. package/dist/esm/{chunk-2AEELIG6.js → chunk-OWAUCLRT.js} +2 -2
  274. package/dist/esm/{chunk-7CXVHFMQ.js → chunk-P7HYVJSU.js} +2 -2
  275. package/dist/esm/{chunk-4532RT2B.js → chunk-P7IAHW4V.js} +2 -2
  276. package/dist/esm/{chunk-GLC4QJBF.js → chunk-PLWXTEVE.js} +2 -2
  277. package/dist/esm/{chunk-SGU4HUHF.js → chunk-PTLFMWCN.js} +2 -2
  278. package/dist/esm/{chunk-QOWA5LK5.js → chunk-QEOAXJLN.js} +2 -2
  279. package/dist/esm/{chunk-XHQGMOXV.js → chunk-RMKXWYOV.js} +2 -2
  280. package/dist/esm/chunk-S2HA3W3V.js +2 -0
  281. package/dist/esm/chunk-S2HA3W3V.js.map +7 -0
  282. package/dist/esm/{chunk-WZCZHCVE.js → chunk-S56YSRHP.js} +2 -2
  283. package/dist/esm/{chunk-E6IWYD3U.js → chunk-S5C5YRBS.js} +2 -2
  284. package/dist/esm/{chunk-A24PYRVV.js → chunk-SO67YEVQ.js} +2 -2
  285. package/dist/esm/chunk-TLWTUKKL.js +2 -0
  286. package/dist/esm/chunk-TLWTUKKL.js.map +7 -0
  287. package/dist/esm/{chunk-RQ2ZPMHJ.js → chunk-TOLLPRMM.js} +2 -2
  288. package/dist/esm/{chunk-HACQF6F4.js → chunk-TOOSHJOA.js} +2 -2
  289. package/dist/esm/{chunk-42HFGCHX.js → chunk-UGD7Z3L4.js} +2 -2
  290. package/dist/esm/chunk-VA5A4MHU.js +6 -0
  291. package/dist/esm/chunk-VA5A4MHU.js.map +7 -0
  292. package/dist/esm/{chunk-DXI5P5O4.js → chunk-VX6ARMWP.js} +2 -2
  293. package/dist/esm/{chunk-25U7DENY.js → chunk-W7N7V5YD.js} +2 -2
  294. package/dist/esm/chunk-WAURCNAS.js +2 -0
  295. package/dist/esm/chunk-WAURCNAS.js.map +7 -0
  296. package/dist/esm/chunk-WFMYNZXZ.js +2 -0
  297. package/dist/esm/chunk-WFMYNZXZ.js.map +7 -0
  298. package/dist/esm/{chunk-6FAICIYS.js → chunk-XMRIRFM7.js} +2 -2
  299. package/dist/esm/chunk-YEB3H7QN.js +2 -0
  300. package/dist/esm/chunk-YEB3H7QN.js.map +7 -0
  301. package/dist/esm/chunk-YUP6EICB.js +2 -0
  302. package/dist/esm/chunk-YUP6EICB.js.map +7 -0
  303. package/dist/esm/chunk-YV2KYHGR.js +2 -0
  304. package/dist/esm/chunk-YV2KYHGR.js.map +7 -0
  305. package/dist/esm/{chunk-UIEUZLZZ.js → chunk-ZY6SQWHT.js} +2 -2
  306. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  307. package/dist/esm/components/_internal/base-button.js +1 -1
  308. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
  309. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  310. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  311. package/dist/esm/components/_internal/shell-handles.js +1 -1
  312. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  313. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  314. package/dist/esm/components/accordion.d.ts.map +1 -1
  315. package/dist/esm/components/accordion.js +1 -1
  316. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  317. package/dist/esm/components/alert-dialog.js +1 -1
  318. package/dist/esm/components/avatar.js +1 -1
  319. package/dist/esm/components/badge.d.ts.map +1 -1
  320. package/dist/esm/components/badge.js +1 -1
  321. package/dist/esm/components/blockquote.js +1 -1
  322. package/dist/esm/components/box.js +1 -1
  323. package/dist/esm/components/button.js +1 -1
  324. package/dist/esm/components/callout.js +1 -1
  325. package/dist/esm/components/card.js +1 -1
  326. package/dist/esm/components/chatbar.js +1 -1
  327. package/dist/esm/components/checkbox-cards.js +1 -1
  328. package/dist/esm/components/checkbox-group.js +1 -1
  329. package/dist/esm/components/checkbox.js +1 -1
  330. package/dist/esm/components/code.js +1 -1
  331. package/dist/esm/components/combobox.js +1 -1
  332. package/dist/esm/components/container.js +1 -1
  333. package/dist/esm/components/context-menu.d.ts.map +1 -1
  334. package/dist/esm/components/context-menu.js +1 -1
  335. package/dist/esm/components/data-list.js +1 -1
  336. package/dist/esm/components/dialog.d.ts.map +1 -1
  337. package/dist/esm/components/dialog.js +1 -1
  338. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  339. package/dist/esm/components/dropdown-menu.js +1 -1
  340. package/dist/esm/components/em.js +1 -1
  341. package/dist/esm/components/flex.js +1 -1
  342. package/dist/esm/components/grid.js +1 -1
  343. package/dist/esm/components/heading.js +1 -1
  344. package/dist/esm/components/hover-card.js +1 -1
  345. package/dist/esm/components/icon-button.js +1 -1
  346. package/dist/esm/components/image.js +1 -1
  347. package/dist/esm/components/index.js +1 -1
  348. package/dist/esm/components/inset.js +1 -1
  349. package/dist/esm/components/kbd.js +1 -1
  350. package/dist/esm/components/link.js +1 -1
  351. package/dist/esm/components/navbar.js +1 -1
  352. package/dist/esm/components/popover.js +1 -1
  353. package/dist/esm/components/progress.js +1 -1
  354. package/dist/esm/components/quote.js +1 -1
  355. package/dist/esm/components/radio-cards.js +1 -1
  356. package/dist/esm/components/radio-group.js +1 -1
  357. package/dist/esm/components/radio.js +1 -1
  358. package/dist/esm/components/schemas/base-button.schema.d.ts +2 -2
  359. package/dist/esm/components/schemas/button.schema.d.ts +2 -2
  360. package/dist/esm/components/schemas/icon-button.schema.d.ts +4 -4
  361. package/dist/esm/components/schemas/shell.schema.d.ts +2 -2
  362. package/dist/esm/components/schemas/toggle-button.schema.d.ts +6 -6
  363. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +8 -8
  364. package/dist/esm/components/scroll-area.js +1 -1
  365. package/dist/esm/components/section.js +1 -1
  366. package/dist/esm/components/segmented-control.js +1 -1
  367. package/dist/esm/components/select.js +1 -1
  368. package/dist/esm/components/separator.js +1 -1
  369. package/dist/esm/components/sheet.d.ts.map +1 -1
  370. package/dist/esm/components/sheet.js +1 -1
  371. package/dist/esm/components/shell.js +1 -1
  372. package/dist/esm/components/sidebar.js +1 -1
  373. package/dist/esm/components/skeleton.js +1 -1
  374. package/dist/esm/components/slider.js +1 -1
  375. package/dist/esm/components/spinner.js +1 -1
  376. package/dist/esm/components/strong.js +1 -1
  377. package/dist/esm/components/switch.js +1 -1
  378. package/dist/esm/components/tab-nav.js +1 -1
  379. package/dist/esm/components/table.js +1 -1
  380. package/dist/esm/components/tabs.js +1 -1
  381. package/dist/esm/components/text-area.js +1 -1
  382. package/dist/esm/components/text-field.js +1 -1
  383. package/dist/esm/components/text.js +1 -1
  384. package/dist/esm/components/theme-panel.js +1 -1
  385. package/dist/esm/components/theme.d.ts +3 -0
  386. package/dist/esm/components/theme.d.ts.map +1 -1
  387. package/dist/esm/components/theme.js +1 -1
  388. package/dist/esm/components/theme.props.d.ts +15 -1
  389. package/dist/esm/components/theme.props.d.ts.map +1 -1
  390. package/dist/esm/components/theme.props.js +1 -1
  391. package/dist/esm/components/toggle-button.js +1 -1
  392. package/dist/esm/components/toggle-icon-button.js +1 -1
  393. package/dist/esm/components/toolbar.js +1 -1
  394. package/dist/esm/components/tooltip.js +1 -1
  395. package/dist/esm/components/user-card.js +1 -1
  396. package/dist/esm/helpers/compile-prop-defs.d.ts +49 -0
  397. package/dist/esm/helpers/compile-prop-defs.d.ts.map +1 -0
  398. package/dist/esm/helpers/compile-prop-defs.js +2 -0
  399. package/dist/esm/helpers/compile-prop-defs.js.map +7 -0
  400. package/dist/esm/helpers/extract-props.d.ts.map +1 -1
  401. package/dist/esm/helpers/extract-props.js +1 -1
  402. package/dist/esm/helpers/font-config.d.ts +84 -77
  403. package/dist/esm/helpers/font-config.d.ts.map +1 -1
  404. package/dist/esm/helpers/font-config.js +1 -1
  405. package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -1
  406. package/dist/esm/helpers/get-margin-styles.js +1 -1
  407. package/dist/esm/helpers/get-responsive-styles.d.ts +5 -2
  408. package/dist/esm/helpers/get-responsive-styles.d.ts.map +1 -1
  409. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  410. package/dist/esm/helpers/index.js +1 -1
  411. package/dist/esm/helpers/use-deprecation-warning.d.ts +10 -0
  412. package/dist/esm/helpers/use-deprecation-warning.d.ts.map +1 -0
  413. package/dist/esm/helpers/use-deprecation-warning.js +2 -0
  414. package/dist/esm/helpers/use-deprecation-warning.js.map +7 -0
  415. package/dist/esm/hooks/index.js +1 -1
  416. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  417. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
  418. package/dist/esm/hooks/use-breakpoint.d.ts +7 -3
  419. package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
  420. package/dist/esm/hooks/use-breakpoint.js +1 -1
  421. package/dist/esm/hooks/use-prop-synced-state.d.ts +14 -0
  422. package/dist/esm/hooks/use-prop-synced-state.d.ts.map +1 -0
  423. package/dist/esm/hooks/use-prop-synced-state.js +2 -0
  424. package/dist/esm/hooks/use-prop-synced-state.js.map +7 -0
  425. package/dist/esm/index.js +1 -1
  426. package/dist/esm/props/index.js +1 -1
  427. package/fonts.css +8 -0
  428. package/package.json +18 -7
  429. package/schemas/base-button.json +0 -1
  430. package/schemas/button.json +0 -1
  431. package/schemas/icon-button.json +0 -1
  432. package/schemas/index.json +0 -6
  433. package/schemas/toggle-button.json +0 -1
  434. package/schemas/toggle-icon-button.json +0 -1
  435. package/src/components/_internal/base-button.css +2 -2
  436. package/src/components/_internal/base-button.tsx +3 -58
  437. package/src/components/_internal/base-card.css +19 -4
  438. package/src/components/_internal/base-checkbox.css +2 -2
  439. package/src/components/_internal/base-dialog.css +7 -0
  440. package/src/components/_internal/base-menu.css +7 -0
  441. package/src/components/_internal/base-radio.css +2 -2
  442. package/src/components/_internal/base-sidebar.css +7 -0
  443. package/src/components/_internal/base-tab-list.css +2 -2
  444. package/src/components/_internal/shell-handles.tsx +27 -0
  445. package/src/components/accordion.css +6 -6
  446. package/src/components/accordion.tsx +2 -8
  447. package/src/components/alert-dialog.tsx +22 -20
  448. package/src/components/avatar.css +2 -2
  449. package/src/components/badge.css +2 -2
  450. package/src/components/badge.tsx +2 -8
  451. package/src/components/callout.css +2 -2
  452. package/src/components/chatbar.css +1 -1
  453. package/src/components/context-menu.tsx +2 -8
  454. package/src/components/dialog.tsx +22 -20
  455. package/src/components/dropdown-menu.tsx +2 -8
  456. package/src/components/heading.css +10 -3
  457. package/src/components/popover.css +7 -0
  458. package/src/components/progress.css +21 -8
  459. package/src/components/segmented-control.css +2 -2
  460. package/src/components/select.css +9 -2
  461. package/src/components/sheet.tsx +31 -28
  462. package/src/components/shell.css +106 -69
  463. package/src/components/slider.css +2 -2
  464. package/src/components/switch.css +2 -2
  465. package/src/components/table.css +7 -0
  466. package/src/components/text-area.css +2 -2
  467. package/src/components/text-field.css +2 -2
  468. package/src/components/text.css +10 -3
  469. package/src/components/theme.props.tsx +13 -1
  470. package/src/components/theme.tsx +53 -34
  471. package/src/helpers/compile-prop-defs.ts +121 -0
  472. package/src/helpers/extract-props.ts +104 -83
  473. package/src/helpers/font-config.ts +130 -148
  474. package/src/helpers/get-margin-styles.ts +38 -71
  475. package/src/helpers/get-responsive-styles.ts +37 -38
  476. package/src/helpers/use-deprecation-warning.ts +26 -0
  477. package/src/hooks/use-body-pointer-events-cleanup.ts +36 -6
  478. package/src/hooks/use-breakpoint.ts +94 -53
  479. package/src/hooks/use-prop-synced-state.ts +24 -0
  480. package/src/styles/fonts.css +24 -29
  481. package/src/styles/index.css +0 -1
  482. package/src/styles/tokens/base.css +1 -0
  483. package/src/styles/tokens/blur.css +28 -0
  484. package/src/styles/tokens/color.css +3 -3
  485. package/src/styles/tokens/constants.css +11 -0
  486. package/src/styles/tokens/font-family.css +263 -0
  487. package/src/styles/tokens/typography.css +2 -216
  488. package/styles.css +8776 -8727
  489. package/tokens/base.css +50 -30
  490. package/tokens.css +53 -30
  491. package/dist/esm/chunk-2SS3FA3N.js +0 -2
  492. package/dist/esm/chunk-2SS3FA3N.js.map +0 -7
  493. package/dist/esm/chunk-5U2Q23K3.js +0 -2
  494. package/dist/esm/chunk-5U2Q23K3.js.map +0 -7
  495. package/dist/esm/chunk-6ELPYR73.js +0 -2
  496. package/dist/esm/chunk-6ELPYR73.js.map +0 -7
  497. package/dist/esm/chunk-DZ4H2KTP.js +0 -2
  498. package/dist/esm/chunk-DZ4H2KTP.js.map +0 -7
  499. package/dist/esm/chunk-H4MMVAGQ.js +0 -2
  500. package/dist/esm/chunk-H4MMVAGQ.js.map +0 -7
  501. package/dist/esm/chunk-ITRVKLYU.js +0 -2
  502. package/dist/esm/chunk-ITRVKLYU.js.map +0 -7
  503. package/dist/esm/chunk-KCAFSCOV.js +0 -2
  504. package/dist/esm/chunk-KCAFSCOV.js.map +0 -7
  505. package/dist/esm/chunk-KMPBTEZH.js +0 -2
  506. package/dist/esm/chunk-KMPBTEZH.js.map +0 -7
  507. package/dist/esm/chunk-LN5SP46K.js +0 -2
  508. package/dist/esm/chunk-LN5SP46K.js.map +0 -7
  509. package/dist/esm/chunk-OKJNS7Z7.js +0 -2
  510. package/dist/esm/chunk-OKJNS7Z7.js.map +0 -7
  511. package/dist/esm/chunk-Q73Y5O5P.js +0 -2
  512. package/dist/esm/chunk-Q73Y5O5P.js.map +0 -7
  513. package/dist/esm/chunk-Q7P6BTVU.js +0 -3
  514. package/dist/esm/chunk-Q7P6BTVU.js.map +0 -7
  515. package/dist/esm/chunk-T27QHMW7.js +0 -2
  516. package/dist/esm/chunk-UUX42HBM.js +0 -2
  517. package/dist/esm/chunk-UUX42HBM.js.map +0 -7
  518. package/dist/esm/chunk-X7BD5FLE.js +0 -2
  519. package/dist/esm/chunk-X7BD5FLE.js.map +0 -7
  520. package/dist/esm/chunk-YEA646GM.js +0 -2
  521. package/dist/esm/chunk-YEA646GM.js.map +0 -7
  522. package/dist/esm/chunk-ZMEXIPWM.js +0 -2
  523. package/dist/esm/chunk-ZMEXIPWM.js.map +0 -7
  524. /package/dist/esm/{chunk-WYA4IRU6.js.map → chunk-25WZA7ZU.js.map} +0 -0
  525. /package/dist/esm/{chunk-ARGX2ZZK.js.map → chunk-2FYJTSOP.js.map} +0 -0
  526. /package/dist/esm/{chunk-K3R4AH3E.js.map → chunk-3MWWP4MW.js.map} +0 -0
  527. /package/dist/esm/{chunk-HQ35PM4O.js.map → chunk-43A5GUSI.js.map} +0 -0
  528. /package/dist/esm/{chunk-Z5DQ6FSA.js.map → chunk-4AQTUBVP.js.map} +0 -0
  529. /package/dist/esm/{chunk-QLIELX4I.js.map → chunk-4ME6O27S.js.map} +0 -0
  530. /package/dist/esm/{chunk-JQOFJNCV.js.map → chunk-4YFJWXL2.js.map} +0 -0
  531. /package/dist/esm/{chunk-IPJUHVM6.js.map → chunk-666GX7O5.js.map} +0 -0
  532. /package/dist/esm/{chunk-7CBAHIVG.js.map → chunk-6IGTK4JE.js.map} +0 -0
  533. /package/dist/esm/{chunk-DJBPM5QK.js.map → chunk-7FC7HF76.js.map} +0 -0
  534. /package/dist/esm/{chunk-SVLY6B5F.js.map → chunk-7QDTSBJF.js.map} +0 -0
  535. /package/dist/esm/{chunk-7MURQ6CR.js.map → chunk-A2RZGGMY.js.map} +0 -0
  536. /package/dist/esm/{chunk-VF5TRT3H.js.map → chunk-AU3D6F42.js.map} +0 -0
  537. /package/dist/esm/{chunk-DK5MHD6I.js.map → chunk-B24BDVG2.js.map} +0 -0
  538. /package/dist/esm/{chunk-BJTJUIYJ.js.map → chunk-CRWYCLTE.js.map} +0 -0
  539. /package/dist/esm/{chunk-OHJVFZMH.js.map → chunk-CSKZZOI2.js.map} +0 -0
  540. /package/dist/esm/{chunk-4N5JU7XQ.js.map → chunk-CVWCKOHO.js.map} +0 -0
  541. /package/dist/esm/{chunk-ADYTQCZX.js.map → chunk-D6B7IMZU.js.map} +0 -0
  542. /package/dist/esm/{chunk-U7AASKZI.js.map → chunk-DNHUQLXO.js.map} +0 -0
  543. /package/dist/esm/{chunk-USGTBZ43.js.map → chunk-E67CIG6A.js.map} +0 -0
  544. /package/dist/esm/{chunk-YUZPSUJE.js.map → chunk-F7IYL2VW.js.map} +0 -0
  545. /package/dist/esm/{chunk-FVCWNSRU.js.map → chunk-FHOCUZDR.js.map} +0 -0
  546. /package/dist/esm/{chunk-APRBRAOT.js.map → chunk-FXUUI6Z2.js.map} +0 -0
  547. /package/dist/esm/{chunk-WNSPLWRV.js.map → chunk-GJSGKE7B.js.map} +0 -0
  548. /package/dist/esm/{chunk-OGOOZLUD.js.map → chunk-GLERJXVS.js.map} +0 -0
  549. /package/dist/esm/{chunk-6VGPTAHM.js.map → chunk-GWXVETMF.js.map} +0 -0
  550. /package/dist/esm/{chunk-ES7MK2MM.js.map → chunk-GYBLXQ4R.js.map} +0 -0
  551. /package/dist/esm/{chunk-4OBMRJHC.js.map → chunk-H7ST535H.js.map} +0 -0
  552. /package/dist/esm/{chunk-QLZ5XAW6.js.map → chunk-HF5WY5YE.js.map} +0 -0
  553. /package/dist/esm/{chunk-RDP4UQ42.js.map → chunk-IEWCQU2S.js.map} +0 -0
  554. /package/dist/esm/{chunk-XLOHPURR.js.map → chunk-IHK3H2OM.js.map} +0 -0
  555. /package/dist/esm/{chunk-EJWAAFCI.js.map → chunk-IKSN4RNB.js.map} +0 -0
  556. /package/dist/esm/{chunk-3F6I7YOR.js.map → chunk-JDGJSNWT.js.map} +0 -0
  557. /package/dist/esm/{chunk-ZSEFZM5H.js.map → chunk-K6QZMNCD.js.map} +0 -0
  558. /package/dist/esm/{chunk-ZHYOJNWV.js.map → chunk-LKAK5GXF.js.map} +0 -0
  559. /package/dist/esm/{chunk-GWYFT3EI.js.map → chunk-M24UXMOQ.js.map} +0 -0
  560. /package/dist/esm/{chunk-JCYI4NTV.js.map → chunk-MBCBP73P.js.map} +0 -0
  561. /package/dist/esm/{chunk-UYNYUR7O.js.map → chunk-MBE2YSBU.js.map} +0 -0
  562. /package/dist/esm/{chunk-DNI4QRXQ.js.map → chunk-MOR3NSXQ.js.map} +0 -0
  563. /package/dist/esm/{chunk-H2G446JG.js.map → chunk-NMKPFUNP.js.map} +0 -0
  564. /package/dist/esm/{chunk-TEULZKBM.js.map → chunk-OGXZHAQL.js.map} +0 -0
  565. /package/dist/esm/{chunk-M3ZYJANH.js.map → chunk-OSRJRBKP.js.map} +0 -0
  566. /package/dist/esm/{chunk-2AEELIG6.js.map → chunk-OWAUCLRT.js.map} +0 -0
  567. /package/dist/esm/{chunk-7CXVHFMQ.js.map → chunk-P7HYVJSU.js.map} +0 -0
  568. /package/dist/esm/{chunk-4532RT2B.js.map → chunk-P7IAHW4V.js.map} +0 -0
  569. /package/dist/esm/{chunk-GLC4QJBF.js.map → chunk-PLWXTEVE.js.map} +0 -0
  570. /package/dist/esm/{chunk-SGU4HUHF.js.map → chunk-PTLFMWCN.js.map} +0 -0
  571. /package/dist/esm/{chunk-QOWA5LK5.js.map → chunk-QEOAXJLN.js.map} +0 -0
  572. /package/dist/esm/{chunk-XHQGMOXV.js.map → chunk-RMKXWYOV.js.map} +0 -0
  573. /package/dist/esm/{chunk-WZCZHCVE.js.map → chunk-S56YSRHP.js.map} +0 -0
  574. /package/dist/esm/{chunk-E6IWYD3U.js.map → chunk-S5C5YRBS.js.map} +0 -0
  575. /package/dist/esm/{chunk-A24PYRVV.js.map → chunk-SO67YEVQ.js.map} +0 -0
  576. /package/dist/esm/{chunk-RQ2ZPMHJ.js.map → chunk-TOLLPRMM.js.map} +0 -0
  577. /package/dist/esm/{chunk-HACQF6F4.js.map → chunk-TOOSHJOA.js.map} +0 -0
  578. /package/dist/esm/{chunk-42HFGCHX.js.map → chunk-UGD7Z3L4.js.map} +0 -0
  579. /package/dist/esm/{chunk-DXI5P5O4.js.map → chunk-VX6ARMWP.js.map} +0 -0
  580. /package/dist/esm/{chunk-25U7DENY.js.map → chunk-W7N7V5YD.js.map} +0 -0
  581. /package/dist/esm/{chunk-6FAICIYS.js.map → chunk-XMRIRFM7.js.map} +0 -0
  582. /package/dist/esm/{chunk-UIEUZLZZ.js.map → chunk-ZY6SQWHT.js.map} +0 -0
package/package.json CHANGED
@@ -1,16 +1,23 @@
1
1
  {
2
2
  "name": "@womp/kookie-ui",
3
- "version": "0.3.25",
4
- "description": "A modern React component library with beautiful design tokens, flexible theming, and comprehensive documentation",
3
+ "version": "0.4.0",
4
+ "description": "Kookie UI v1: a React component library with design tokens, flexible theming, a full layout shell, and comprehensive documentation.",
5
5
  "keywords": [
6
6
  "react",
7
7
  "ui",
8
8
  "components",
9
9
  "design-system",
10
10
  "themes",
11
- "radix"
11
+ "radix",
12
+ "kookie-ui",
13
+ "kookie-ui-v1",
14
+ "womp"
12
15
  ],
13
- "author": "Kushagra Dhawan",
16
+ "author": {
17
+ "name": "Kushagra Dhawan",
18
+ "url": "https://kushagradhawan.com"
19
+ },
20
+ "copyright": "Copyright (c) 2024-2026 Womp 3D Inc. Sole author: Kushagra Dhawan.",
14
21
  "license": "MIT",
15
22
  "engines": {
16
23
  "node": ">=16"
@@ -90,7 +97,8 @@
90
97
  "layout/**",
91
98
  "*.css",
92
99
  "postcss-breakpoints.cjs",
93
- "postcss-whitespace.cjs"
100
+ "postcss-whitespace.cjs",
101
+ "AUTHORS"
94
102
  ],
95
103
  "scripts": {
96
104
  "build": "pnpm clean:dist && pnpm build:js && pnpm build:schemas && pnpm build:css",
@@ -101,8 +109,9 @@
101
109
  "build:js:cjs:types": "tsc --outdir dist/cjs",
102
110
  "build:js:esm": "node scripts/esbuild-esm.js",
103
111
  "build:js:esm:types": "tsc --outdir dist/esm",
104
- "build:css": "pnpm build:css:index && pnpm build:css:tokens && pnpm build:css:components && pnpm build:css:utilities && pnpm build:css:layout",
112
+ "build:css": "pnpm build:css:index && pnpm build:css:fonts && pnpm build:css:tokens && pnpm build:css:components && pnpm build:css:utilities && pnpm build:css:layout",
105
113
  "build:css:index": "postcss src/styles/index.css -o styles.css",
114
+ "build:css:fonts": "postcss src/styles/fonts.css -o fonts.css",
106
115
  "build:css:components": "postcss src/components/index.css -o components.css",
107
116
  "build:css:utilities": "postcss src/styles/utilities/index.css -o utilities.css",
108
117
  "build:css:tokens": "pnpm build:css:tokens:index && pnpm build:css:tokens:base && pnpm build:css:tokens:colors",
@@ -115,12 +124,13 @@
115
124
  "build:css:layout:components": "postcss src/components/layout.css -o layout/components.css",
116
125
  "build:css:layout:utilities": "postcss src/styles/utilities/layout.css -o layout/utilities.css",
117
126
  "dev": "pnpm dev:js & pnpm dev:css",
127
+ "dev:css:fonts": "postcss src/styles/fonts.css -o fonts.css --watch",
118
128
  "dev:js": "pnpm dev:js:cjs & pnpm dev:js:esm & pnpm dev:js:cjs:types & pnpm dev:js:esm:types",
119
129
  "dev:js:cjs": "node scripts/esbuild-cjs.js watch=true",
120
130
  "dev:js:cjs:types": "tsc --watch --incremental --outdir dist/cjs",
121
131
  "dev:js:esm": "node scripts/esbuild-esm.js watch=true",
122
132
  "dev:js:esm:types": "tsc --watch --incremental --outdir dist/esm >/dev/null",
123
- "dev:css": "postcss src/styles/index.css -o styles.css --watch",
133
+ "dev:css": "postcss src/styles/index.css -o styles.css --watch & pnpm dev:css:fonts",
124
134
  "lint": "pnpm lint:js && pnpm lint:css && pnpm lint:ts",
125
135
  "lint:js": "eslint \"src/**/*.ts*\"",
126
136
  "lint:ts": "tsc --noEmit",
@@ -131,6 +141,7 @@
131
141
  "release:patch": "node scripts/release.js patch",
132
142
  "release:minor": "node scripts/release.js minor",
133
143
  "release:major": "node scripts/release.js major",
144
+ "bench": "vitest bench --run --config vitest.bench.config.ts",
134
145
  "test": "vitest run",
135
146
  "test:watch": "vitest",
136
147
  "test:ui": "vitest --ui",
@@ -279,6 +279,5 @@
279
279
  "title": "Base-button Component Props",
280
280
  "description": "Props schema for the base-button component in Kookie UI",
281
281
  "version": "1.0.0",
282
- "generatedAt": "2026-08-21T16:33:37.029Z",
283
282
  "source": "Zod schema"
284
283
  }
@@ -530,6 +530,5 @@
530
530
  "title": "Button Component Props",
531
531
  "description": "Props schema for the button component in Kookie UI",
532
532
  "version": "1.0.0",
533
- "generatedAt": "2026-08-21T16:33:37.036Z",
534
533
  "source": "Zod schema"
535
534
  }
@@ -313,6 +313,5 @@
313
313
  "title": "Icon-button Component Props",
314
314
  "description": "Props schema for the icon-button component in Kookie UI",
315
315
  "version": "1.0.0",
316
- "generatedAt": "2026-08-21T16:33:37.037Z",
317
316
  "source": "Zod schema"
318
317
  }
@@ -3,7 +3,6 @@
3
3
  "title": "Kookie UI Button Components",
4
4
  "description": "Complete JSON Schema collection for all button components in Kookie UI",
5
5
  "version": "1.0.0",
6
- "generatedAt": "2026-08-21T16:33:37.040Z",
7
6
  "source": "Zod schemas",
8
7
  "components": {
9
8
  "base-button": {
@@ -287,7 +286,6 @@
287
286
  "title": "Base-button Component Props",
288
287
  "description": "Props schema for the base-button component in Kookie UI",
289
288
  "version": "1.0.0",
290
- "generatedAt": "2026-08-21T16:33:37.029Z",
291
289
  "source": "Zod schema"
292
290
  },
293
291
  "button": {
@@ -822,7 +820,6 @@
822
820
  "title": "Button Component Props",
823
821
  "description": "Props schema for the button component in Kookie UI",
824
822
  "version": "1.0.0",
825
- "generatedAt": "2026-08-21T16:33:37.036Z",
826
823
  "source": "Zod schema"
827
824
  },
828
825
  "icon-button": {
@@ -1140,7 +1137,6 @@
1140
1137
  "title": "Icon-button Component Props",
1141
1138
  "description": "Props schema for the icon-button component in Kookie UI",
1142
1139
  "version": "1.0.0",
1143
- "generatedAt": "2026-08-21T16:33:37.037Z",
1144
1140
  "source": "Zod schema"
1145
1141
  },
1146
1142
  "toggle-button": {
@@ -1683,7 +1679,6 @@
1683
1679
  "title": "Toggle-button Component Props",
1684
1680
  "description": "Props schema for the toggle-button component in Kookie UI",
1685
1681
  "version": "1.0.0",
1686
- "generatedAt": "2026-08-21T16:33:37.038Z",
1687
1682
  "source": "Zod schema"
1688
1683
  },
1689
1684
  "toggle-icon-button": {
@@ -2009,7 +2004,6 @@
2009
2004
  "title": "Toggle-icon-button Component Props",
2010
2005
  "description": "Props schema for the toggle-icon-button component in Kookie UI",
2011
2006
  "version": "1.0.0",
2012
- "generatedAt": "2026-08-21T16:33:37.039Z",
2013
2007
  "source": "Zod schema"
2014
2008
  }
2015
2009
  }
@@ -538,6 +538,5 @@
538
538
  "title": "Toggle-button Component Props",
539
539
  "description": "Props schema for the toggle-button component in Kookie UI",
540
540
  "version": "1.0.0",
541
- "generatedAt": "2026-08-21T16:33:37.038Z",
542
541
  "source": "Zod schema"
543
542
  }
@@ -321,6 +321,5 @@
321
321
  "title": "Toggle-icon-button Component Props",
322
322
  "description": "Props schema for the toggle-icon-button component in Kookie UI",
323
323
  "version": "1.0.0",
324
- "generatedAt": "2026-08-21T16:33:37.039Z",
325
324
  "source": "Zod schema"
326
325
  }
@@ -66,7 +66,7 @@
66
66
  /* Theme-level translucent override */
67
67
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
68
68
  backdrop-filter: var(--backdrop-filter-components);
69
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
69
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
70
70
  }
71
71
 
72
72
  /* Prevent backdrop-filter stacking with parent elements */
@@ -80,7 +80,7 @@
80
80
 
81
81
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
82
82
  backdrop-filter: var(--backdrop-filter-components);
83
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
83
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
84
84
  }
85
85
 
86
86
  /* Forced colors support for high contrast mode */
@@ -1,13 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { Slot } from 'radix-ui';
4
- import { composeRefs } from 'radix-ui/internal';
5
4
 
6
5
  import { baseButtonPropDefs } from './base-button.props.js';
7
6
  import { Flex } from '../flex.js';
8
7
  import { Spinner } from '../spinner.js';
9
8
  import { VisuallyHidden } from '../visually-hidden.js';
10
9
  import { extractProps } from '../../helpers/extract-props.js';
10
+ import { useDeprecatedPanelBackgroundWarning } from '../../helpers/use-deprecation-warning.js';
11
11
  import { mapResponsiveProp, mapButtonSizeToSpinnerSize } from '../../helpers/map-prop-values.js';
12
12
  import { marginPropDefs } from '../../props/margin.props.js';
13
13
 
@@ -80,66 +80,11 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
80
80
  ...baseButtonProps
81
81
  } = extractProps(props, baseButtonPropDefs, marginPropDefs);
82
82
 
83
- // Show deprecation warning for panelBackground when used
84
- // This helps developers migrate to the new material prop
85
- React.useEffect(() => {
86
- if (props.panelBackground !== undefined) {
87
- console.warn('Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.');
88
- }
89
- }, [props.panelBackground]);
83
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
90
84
 
91
85
  // Material takes precedence over panelBackground for backward compatibility
92
86
  const effectiveMaterial = material ?? panelBackground;
93
87
 
94
- // Will-change cleanup for backdrop-filter performance optimization
95
- // This prevents layout thrashing when using translucent materials
96
- const buttonRef = React.useRef<HTMLElement>(null);
97
-
98
- // Use a ref to track current material value to avoid stale closures in setTimeout
99
- const materialRef = React.useRef(effectiveMaterial);
100
- materialRef.current = effectiveMaterial;
101
-
102
- React.useEffect(() => {
103
- const button = buttonRef.current;
104
- if (!button) return;
105
-
106
- const hasTranslucentMaterial = effectiveMaterial === 'translucent';
107
-
108
- if (hasTranslucentMaterial) {
109
- // Add will-change when material is translucent to optimize rendering
110
- button.style.setProperty('will-change', 'backdrop-filter');
111
-
112
- // Track timeout for cleanup
113
- let timeoutId: ReturnType<typeof setTimeout> | undefined;
114
-
115
- // Clean up will-change after transition completes to prevent memory leaks
116
- const cleanup = () => {
117
- const transitionDuration = getComputedStyle(button).getPropertyValue('--duration-2') || '75ms';
118
- const duration = parseInt(transitionDuration) || 75;
119
-
120
- timeoutId = setTimeout(() => {
121
- // Use ref to get current value, not stale closure value
122
- if (button && materialRef.current !== 'translucent') {
123
- button.style.setProperty('will-change', 'auto');
124
- }
125
- }, duration);
126
- };
127
-
128
- // Listen for material changes to clean up will-change property
129
- const observer = new MutationObserver(cleanup);
130
- observer.observe(button, { attributes: true, attributeFilter: ['data-material'] });
131
-
132
- return () => {
133
- if (timeoutId) clearTimeout(timeoutId);
134
- observer.disconnect();
135
- button.style.setProperty('will-change', 'auto');
136
- };
137
- } else {
138
- // Remove will-change when material is not translucent
139
- button.style.setProperty('will-change', 'auto');
140
- }
141
- }, [effectiveMaterial]);
142
-
143
88
  // asChild takes precedence over as prop for Radix Slot integration
144
89
  // When asChild is true, we use Slot.Root to merge props onto the child element
145
90
  // When asChild is false, we render as the specified element (or button by default)
@@ -194,7 +139,7 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
194
139
  data-flush={flush ? 'true' : undefined}
195
140
  {...baseButtonProps}
196
141
  {...accessibilityProps}
197
- ref={composeRefs(buttonRef, forwardedRef)}
142
+ ref={forwardedRef}
198
143
  className={classNames('rt-reset', 'rt-BaseButton', className)}
199
144
  {...(shouldPassDisabled && { disabled })}
200
145
  {...(isNativeButtonElement && !hasExplicitTypeAttribute ? { type: 'button' } : {})}
@@ -88,7 +88,7 @@
88
88
  /* Backdrop-filter for ::before - applies to outline, soft, surface */
89
89
  :where([data-panel-background='translucent'], [data-material='translucent']) &::before {
90
90
  backdrop-filter: var(--backdrop-filter-panel);
91
- --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
91
+ --backdrop-filter-panel: var(--backdrop-filter-panel-enabled);
92
92
  }
93
93
 
94
94
  &:where([data-material='solid'], [data-panel-background='solid'])::before {
@@ -97,7 +97,7 @@
97
97
 
98
98
  &:where([data-material='translucent'], [data-panel-background='translucent'])::before {
99
99
  backdrop-filter: var(--backdrop-filter-panel);
100
- --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
100
+ --backdrop-filter-panel: var(--backdrop-filter-panel-enabled);
101
101
  }
102
102
 
103
103
  /* Interactive scale - applies to all interactive cards */
@@ -413,6 +413,21 @@
413
413
  ***************************************************************************************************/
414
414
 
415
415
  .rt-BaseCard:where(.rt-variant-ghost) {
416
+ /*
417
+ * Ghost is the only card variant whose backdrop filter sits on the element
418
+ * rather than on ::before, which makes it — and only it — the backdrop root
419
+ * for its contents. A component nested here would re-blur an already blurred
420
+ * surface, so switch the component filter off for the subtree.
421
+ *
422
+ * The other variants deliberately do not do this: their filter is on
423
+ * ::before, so the card element is not a backdrop root and a nested
424
+ * component is still blurring the page itself. Measured over a textured
425
+ * background, dropping it there is a visible change (max 82/255 channel
426
+ * delta) rather than the imperceptible one it is on a real backdrop root
427
+ * (max 7/255).
428
+ */
429
+ --backdrop-filter-components-enabled: none;
430
+
416
431
  --card-border-width: 0px;
417
432
  --v-bg-hover: var(--gray-3);
418
433
  --v-bg-hover-a: var(--gray-a3);
@@ -454,7 +469,7 @@
454
469
  /* Backdrop-filter handling for ghost - on element, not ::before */
455
470
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
456
471
  backdrop-filter: var(--backdrop-filter-panel);
457
- --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
472
+ --backdrop-filter-panel: var(--backdrop-filter-panel-enabled);
458
473
  }
459
474
 
460
475
  &:where([data-panel-background='solid'], [data-material='solid']) {
@@ -463,7 +478,7 @@
463
478
 
464
479
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
465
480
  backdrop-filter: var(--backdrop-filter-panel);
466
- --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
481
+ --backdrop-filter-panel: var(--backdrop-filter-panel-enabled);
467
482
  }
468
483
 
469
484
  /* Interactive states - background on element, not ::before */
@@ -19,7 +19,7 @@
19
19
  /* Theme-level translucent override */
20
20
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
21
21
  backdrop-filter: var(--backdrop-filter-components);
22
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
22
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
23
23
  }
24
24
 
25
25
  /* Prevent backdrop-filter stacking with parents */
@@ -33,7 +33,7 @@
33
33
 
34
34
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
35
35
  backdrop-filter: var(--backdrop-filter-components);
36
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
36
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
37
37
  }
38
38
 
39
39
 
@@ -37,6 +37,13 @@
37
37
  }
38
38
 
39
39
  .rt-BaseDialogContent {
40
+ /*
41
+ * This surface blurs its own backdrop, which makes it the backdrop root for
42
+ * everything inside it. A component nested here would re-blur an already
43
+ * blurred, already flat surface for the full cost of another blur pass, so
44
+ * switch the component filter off for the subtree. See tokens/blur.css.
45
+ */
46
+ --backdrop-filter-components-enabled: none;
40
47
  margin: auto;
41
48
  width: 100%;
42
49
  z-index: 1;
@@ -1,4 +1,11 @@
1
1
  .rt-BaseMenuContent {
2
+ /*
3
+ * This surface blurs its own backdrop, which makes it the backdrop root for
4
+ * everything inside it. A component nested here would re-blur an already
5
+ * blurred, already flat surface for the full cost of another blur pass, so
6
+ * switch the component filter off for the subtree. See tokens/blur.css.
7
+ */
8
+ --backdrop-filter-components-enabled: none;
2
9
  --scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);
3
10
  --scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);
4
11
  --scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);
@@ -19,7 +19,7 @@
19
19
  /* Theme-level translucent override */
20
20
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
21
21
  backdrop-filter: var(--backdrop-filter-components);
22
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
22
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
23
23
  }
24
24
 
25
25
  /* Prevent backdrop-filter stacking with parents */
@@ -33,7 +33,7 @@
33
33
 
34
34
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
35
35
  backdrop-filter: var(--backdrop-filter-components);
36
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
36
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
37
37
  }
38
38
 
39
39
  &:where(:disabled, [data-disabled]) {
@@ -28,6 +28,13 @@
28
28
 
29
29
  /* Sidebar Container */
30
30
  .rt-SidebarContainer {
31
+ /*
32
+ * This surface blurs its own backdrop, which makes it the backdrop root for
33
+ * everything inside it. A component nested here would re-blur an already
34
+ * blurred, already flat surface for the full cost of another blur pass, so
35
+ * switch the component filter off for the subtree. See tokens/blur.css.
36
+ */
37
+ --backdrop-filter-components-enabled: none;
31
38
  --sidebar-base-border-radius: 0; /* Default to no radius */
32
39
  display: flex;
33
40
  flex-direction: column;
@@ -161,7 +161,7 @@
161
161
  :where(.rt-BaseTabList[data-panel-background='translucent']) & {
162
162
  background-color: var(--gray-a3);
163
163
  backdrop-filter: var(--backdrop-filter-components);
164
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
164
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
165
165
  }
166
166
 
167
167
  /* Disable backdrop-filter when inside elements that already have backdrop-filter */
@@ -189,7 +189,7 @@
189
189
  :where(.rt-BaseTabList[data-panel-background='translucent']) & {
190
190
  background-color: var(--accent-a3);
191
191
  backdrop-filter: var(--backdrop-filter-components);
192
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
192
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
193
193
  }
194
194
  }
195
195
  }
@@ -77,7 +77,30 @@ export const PaneHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsW
77
77
  body.style.cursor = orientation === 'vertical' ? 'col-resize' : 'row-resize';
78
78
  body.style.userSelect = 'none';
79
79
  onResizeStart?.(startSize);
80
+
81
+ // The move handler is attached to the handle, the document and the
82
+ // window so the drag survives environments where PointerEvent does not
83
+ // reach all three. A real move therefore arrives here several times:
84
+ // once per node it propagates through, plus again as the compatibility
85
+ // mouse event. Doing the work more than once per movement is pure waste
86
+ // on the most latency-sensitive interaction in the shell, so ignore the
87
+ // repeats.
88
+ let lastHandledMove: Event | null = null;
89
+ let seenPointerEvent = false;
90
+
91
+ const shouldHandle = (ev: Event, pointerType: string) => {
92
+ if (ev.type === pointerType) seenPointerEvent = true;
93
+ // Once pointer events are known to work, the mouse fallbacks are
94
+ // duplicates of an event we have already handled.
95
+ else if (seenPointerEvent) return false;
96
+ return true;
97
+ };
98
+
80
99
  const handleMove = (ev: PointerEvent) => {
100
+ if (!shouldHandle(ev, 'pointermove')) return;
101
+ if (ev === lastHandledMove) return;
102
+ lastHandledMove = ev;
103
+
81
104
  const client = orientation === 'vertical' ? ev.clientX : ev.clientY;
82
105
  const next = clamp(computeNext(client, startClient, startSize));
83
106
  container.style.setProperty(cssVarName, `${next}px`);
@@ -106,7 +129,11 @@ export const PaneHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsW
106
129
  body.style.userSelect = prevUserSelect;
107
130
  activeCleanupRef.current = null;
108
131
  };
132
+ let finished = false;
109
133
  const handleUp = () => {
134
+ if (finished) return;
135
+ finished = true;
136
+
110
137
  const finalSize = parseFloat(getComputedStyle(container).getPropertyValue(cssVarName) || `${defaultSize}`);
111
138
  let snapped = finalSize;
112
139
  if (snapPoints && snapPoints.length) {
@@ -7,7 +7,7 @@
7
7
  /* Theme-level translucent override */
8
8
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
9
9
  backdrop-filter: var(--backdrop-filter-components);
10
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
10
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
11
11
  }
12
12
 
13
13
  /* Prevent backdrop-filter stacking with parents */
@@ -21,7 +21,7 @@
21
21
 
22
22
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
23
23
  backdrop-filter: var(--backdrop-filter-components);
24
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
24
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
25
25
  }
26
26
  }
27
27
 
@@ -68,7 +68,7 @@
68
68
  background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
69
69
  box-shadow: inset 0 0 0 1px var(--accent-a6);
70
70
  backdrop-filter: var(--backdrop-filter-components);
71
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
71
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
72
72
  }
73
73
  }
74
74
 
@@ -94,7 +94,7 @@
94
94
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
95
95
  background-color: var(--color-surface-translucent);
96
96
  backdrop-filter: var(--backdrop-filter-components);
97
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
97
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
98
98
  }
99
99
  }
100
100
 
@@ -119,7 +119,7 @@
119
119
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
120
120
  background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
121
121
  backdrop-filter: var(--backdrop-filter-components);
122
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
122
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
123
123
  }
124
124
  }
125
125
 
@@ -143,7 +143,7 @@
143
143
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
144
144
  box-shadow: inset 0 0 0 1px var(--accent-a6);
145
145
  backdrop-filter: var(--backdrop-filter-components);
146
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
146
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
147
147
  }
148
148
  }
149
149
 
@@ -19,6 +19,7 @@ import type {
19
19
  AccordionContentOwnProps,
20
20
  } from './accordion.props.js';
21
21
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
22
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
22
23
 
23
24
  // Root component
24
25
  type AccordionRootElement = React.ElementRef<typeof AccordionPrimitive.Root>;
@@ -35,14 +36,7 @@ const AccordionRoot = React.forwardRef<AccordionRootElement, AccordionRootProps>
35
36
  typeof AccordionPrimitive.Root
36
37
  >;
37
38
 
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]);
39
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
46
40
 
47
41
  // Material takes precedence over panelBackground
48
42
  const effectiveMaterial = material ?? panelBackground;
@@ -7,6 +7,7 @@ import { Heading } from './heading.js';
7
7
  import { Text } from './text.js';
8
8
  import { Theme } from './theme.js';
9
9
  import { extractProps } from '../helpers/extract-props.js';
10
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
10
11
  import { requireReactElement } from '../helpers/require-react-element.js';
11
12
 
12
13
  import type { AlertDialogContentOwnProps } from './alert-dialog.props.js';
@@ -35,6 +36,19 @@ const AlertDialogTrigger = React.forwardRef<AlertDialogTriggerElement, AlertDial
35
36
  );
36
37
  AlertDialogTrigger.displayName = 'AlertDialog.Trigger';
37
38
 
39
+ // Split once at module scope. `extractProps` memoises on the identity of the
40
+ // prop def objects it is handed, so rebuilding these per render would recompile
41
+ // them on every render.
42
+ const {
43
+ align: alignPropDef,
44
+ panelBackground: panelBackgroundPropDef,
45
+ material: materialPropDef,
46
+ ...contentPropDefs
47
+ } = alertDialogContentPropDefs;
48
+ const alignPropDefs = { align: alignPropDef };
49
+ const panelBackgroundPropDefs = { panelBackground: panelBackgroundPropDef };
50
+ const materialPropDefs = { material: materialPropDef };
51
+
38
52
  type AlertDialogContentElement = React.ElementRef<typeof AlertDialogPrimitive.Content>;
39
53
  interface AlertDialogContentProps
40
54
  extends ComponentPropsWithout<typeof AlertDialogPrimitive.Content, RemovedProps>,
@@ -43,35 +57,23 @@ interface AlertDialogContentProps
43
57
  }
44
58
  const AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDialogContentProps>(
45
59
  ({ align, ...props }, forwardedRef) => {
46
- const {
47
- align: alignPropDef,
48
- panelBackground: panelBackgroundPropDef,
49
- material: materialPropDef,
50
- ...propDefs
51
- } = alertDialogContentPropDefs;
52
-
53
- const { className: alignClassName } = extractProps({ align }, { align: alignPropDef });
60
+ const { className: alignClassName } = extractProps({ align }, alignPropDefs);
54
61
 
55
62
  // Extract panelBackground and material from props
56
63
  const { panelBackground: extractedPanelBackground } = extractProps(
57
64
  { panelBackground: props.panelBackground },
58
- { panelBackground: panelBackgroundPropDef },
65
+ panelBackgroundPropDefs,
59
66
  );
60
67
 
61
68
  const { material: extractedMaterial } = extractProps(
62
69
  { material: props.material },
63
- { material: materialPropDef },
70
+ materialPropDefs,
64
71
  );
65
72
 
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]);
73
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
74
+
75
+ // Material takes precedence over the deprecated panelBackground
76
+ const materialValue = extractedMaterial ?? extractedPanelBackground;
75
77
 
76
78
  const {
77
79
  className,
@@ -80,7 +82,7 @@ const AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDial
80
82
  panelBackground: _,
81
83
  material: __,
82
84
  ...contentProps
83
- } = extractProps(props, propDefs);
85
+ } = extractProps(props, contentPropDefs);
84
86
 
85
87
  // Focus management
86
88
  const contentRef = React.useRef<HTMLDivElement>(null);
@@ -44,7 +44,7 @@
44
44
  /* Theme-level translucent override */
45
45
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
46
46
  backdrop-filter: var(--backdrop-filter-components);
47
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
47
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
48
48
  }
49
49
 
50
50
  /* Prevent backdrop-filter stacking with parents */
@@ -58,7 +58,7 @@
58
58
 
59
59
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
60
60
  backdrop-filter: var(--backdrop-filter-components);
61
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
61
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
62
62
  }
63
63
  }
64
64