@womp/kookie-ui 0.3.25 → 0.3.26

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 (543) hide show
  1. package/components.css +159 -114
  2. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  3. package/dist/cjs/components/_internal/base-button.js +1 -1
  4. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  5. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
  6. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +3 -3
  7. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  8. package/dist/cjs/components/_internal/shell-bottom.js.map +4 -4
  9. package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
  10. package/dist/cjs/components/_internal/shell-handles.js +1 -1
  11. package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
  12. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  13. package/dist/cjs/components/_internal/shell-inspector.js.map +4 -4
  14. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  15. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  16. package/dist/cjs/components/accordion.d.ts.map +1 -1
  17. package/dist/cjs/components/accordion.js +1 -1
  18. package/dist/cjs/components/accordion.js.map +4 -4
  19. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  20. package/dist/cjs/components/alert-dialog.js +1 -1
  21. package/dist/cjs/components/alert-dialog.js.map +4 -4
  22. package/dist/cjs/components/avatar.js +1 -1
  23. package/dist/cjs/components/avatar.js.map +4 -4
  24. package/dist/cjs/components/badge.d.ts.map +1 -1
  25. package/dist/cjs/components/badge.js +1 -1
  26. package/dist/cjs/components/badge.js.map +4 -4
  27. package/dist/cjs/components/blockquote.js +1 -1
  28. package/dist/cjs/components/blockquote.js.map +4 -4
  29. package/dist/cjs/components/box.js +1 -1
  30. package/dist/cjs/components/box.js.map +4 -4
  31. package/dist/cjs/components/button.js +1 -1
  32. package/dist/cjs/components/button.js.map +4 -4
  33. package/dist/cjs/components/callout.js +1 -1
  34. package/dist/cjs/components/callout.js.map +4 -4
  35. package/dist/cjs/components/card.js +1 -1
  36. package/dist/cjs/components/card.js.map +4 -4
  37. package/dist/cjs/components/chatbar.js +2 -2
  38. package/dist/cjs/components/chatbar.js.map +4 -4
  39. package/dist/cjs/components/checkbox-cards.js +1 -1
  40. package/dist/cjs/components/checkbox-cards.js.map +4 -4
  41. package/dist/cjs/components/checkbox-group.js +1 -1
  42. package/dist/cjs/components/checkbox-group.js.map +4 -4
  43. package/dist/cjs/components/checkbox.js +1 -1
  44. package/dist/cjs/components/checkbox.js.map +4 -4
  45. package/dist/cjs/components/code.js +1 -1
  46. package/dist/cjs/components/code.js.map +4 -4
  47. package/dist/cjs/components/combobox.js +1 -1
  48. package/dist/cjs/components/combobox.js.map +4 -4
  49. package/dist/cjs/components/container.js +1 -1
  50. package/dist/cjs/components/container.js.map +4 -4
  51. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  52. package/dist/cjs/components/context-menu.js +1 -1
  53. package/dist/cjs/components/context-menu.js.map +4 -4
  54. package/dist/cjs/components/data-list.js +1 -1
  55. package/dist/cjs/components/data-list.js.map +4 -4
  56. package/dist/cjs/components/dialog.d.ts.map +1 -1
  57. package/dist/cjs/components/dialog.js +1 -1
  58. package/dist/cjs/components/dialog.js.map +4 -4
  59. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  60. package/dist/cjs/components/dropdown-menu.js +1 -1
  61. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  62. package/dist/cjs/components/em.js +1 -1
  63. package/dist/cjs/components/em.js.map +4 -4
  64. package/dist/cjs/components/flex.js +1 -1
  65. package/dist/cjs/components/flex.js.map +4 -4
  66. package/dist/cjs/components/grid.js +1 -1
  67. package/dist/cjs/components/grid.js.map +4 -4
  68. package/dist/cjs/components/heading.js +1 -1
  69. package/dist/cjs/components/heading.js.map +4 -4
  70. package/dist/cjs/components/hover-card.js +1 -1
  71. package/dist/cjs/components/hover-card.js.map +4 -4
  72. package/dist/cjs/components/icon-button.js +2 -2
  73. package/dist/cjs/components/icon-button.js.map +4 -4
  74. package/dist/cjs/components/image.js +1 -1
  75. package/dist/cjs/components/image.js.map +4 -4
  76. package/dist/cjs/components/index.js +5 -5
  77. package/dist/cjs/components/index.js.map +4 -4
  78. package/dist/cjs/components/inset.js +1 -1
  79. package/dist/cjs/components/inset.js.map +4 -4
  80. package/dist/cjs/components/kbd.js +1 -1
  81. package/dist/cjs/components/kbd.js.map +4 -4
  82. package/dist/cjs/components/link.js +1 -1
  83. package/dist/cjs/components/link.js.map +4 -4
  84. package/dist/cjs/components/navbar.js +1 -1
  85. package/dist/cjs/components/navbar.js.map +4 -4
  86. package/dist/cjs/components/popover.js +1 -1
  87. package/dist/cjs/components/popover.js.map +4 -4
  88. package/dist/cjs/components/progress.js +1 -1
  89. package/dist/cjs/components/progress.js.map +4 -4
  90. package/dist/cjs/components/quote.js +1 -1
  91. package/dist/cjs/components/quote.js.map +4 -4
  92. package/dist/cjs/components/radio-cards.js +1 -1
  93. package/dist/cjs/components/radio-cards.js.map +4 -4
  94. package/dist/cjs/components/radio-group.js +1 -1
  95. package/dist/cjs/components/radio-group.js.map +4 -4
  96. package/dist/cjs/components/radio.js +1 -1
  97. package/dist/cjs/components/radio.js.map +4 -4
  98. package/dist/cjs/components/schemas/base-button.schema.d.ts +2 -2
  99. package/dist/cjs/components/schemas/button.schema.d.ts +2 -2
  100. package/dist/cjs/components/schemas/icon-button.schema.d.ts +4 -4
  101. package/dist/cjs/components/schemas/shell.schema.d.ts +2 -2
  102. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +6 -6
  103. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +8 -8
  104. package/dist/cjs/components/scroll-area.js +1 -1
  105. package/dist/cjs/components/scroll-area.js.map +4 -4
  106. package/dist/cjs/components/section.js +1 -1
  107. package/dist/cjs/components/section.js.map +4 -4
  108. package/dist/cjs/components/segmented-control.js +1 -1
  109. package/dist/cjs/components/segmented-control.js.map +4 -4
  110. package/dist/cjs/components/select.js +1 -1
  111. package/dist/cjs/components/select.js.map +4 -4
  112. package/dist/cjs/components/separator.js +1 -1
  113. package/dist/cjs/components/separator.js.map +4 -4
  114. package/dist/cjs/components/sheet.d.ts.map +1 -1
  115. package/dist/cjs/components/sheet.js +1 -1
  116. package/dist/cjs/components/sheet.js.map +4 -4
  117. package/dist/cjs/components/shell.js +1 -1
  118. package/dist/cjs/components/shell.js.map +4 -4
  119. package/dist/cjs/components/sidebar.js +1 -1
  120. package/dist/cjs/components/sidebar.js.map +4 -4
  121. package/dist/cjs/components/skeleton.js +1 -1
  122. package/dist/cjs/components/skeleton.js.map +4 -4
  123. package/dist/cjs/components/slider.js +1 -1
  124. package/dist/cjs/components/slider.js.map +4 -4
  125. package/dist/cjs/components/spinner.js +1 -1
  126. package/dist/cjs/components/spinner.js.map +4 -4
  127. package/dist/cjs/components/strong.js +1 -1
  128. package/dist/cjs/components/strong.js.map +4 -4
  129. package/dist/cjs/components/switch.js +1 -1
  130. package/dist/cjs/components/switch.js.map +4 -4
  131. package/dist/cjs/components/tab-nav.js +1 -1
  132. package/dist/cjs/components/tab-nav.js.map +4 -4
  133. package/dist/cjs/components/table.js +1 -1
  134. package/dist/cjs/components/table.js.map +4 -4
  135. package/dist/cjs/components/tabs.js +1 -1
  136. package/dist/cjs/components/tabs.js.map +4 -4
  137. package/dist/cjs/components/text-area.js +1 -1
  138. package/dist/cjs/components/text-area.js.map +4 -4
  139. package/dist/cjs/components/text-field.js +2 -2
  140. package/dist/cjs/components/text-field.js.map +4 -4
  141. package/dist/cjs/components/text.js +1 -1
  142. package/dist/cjs/components/text.js.map +4 -4
  143. package/dist/cjs/components/theme-panel.js +3 -3
  144. package/dist/cjs/components/theme-panel.js.map +4 -4
  145. package/dist/cjs/components/theme.d.ts.map +1 -1
  146. package/dist/cjs/components/theme.js +1 -1
  147. package/dist/cjs/components/theme.js.map +4 -4
  148. package/dist/cjs/components/toggle-button.js +2 -2
  149. package/dist/cjs/components/toggle-button.js.map +4 -4
  150. package/dist/cjs/components/toggle-icon-button.js +3 -3
  151. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  152. package/dist/cjs/components/toolbar.js +1 -1
  153. package/dist/cjs/components/toolbar.js.map +4 -4
  154. package/dist/cjs/components/tooltip.js +1 -1
  155. package/dist/cjs/components/tooltip.js.map +4 -4
  156. package/dist/cjs/components/user-card.js +1 -1
  157. package/dist/cjs/components/user-card.js.map +4 -4
  158. package/dist/cjs/helpers/compile-prop-defs.d.ts +49 -0
  159. package/dist/cjs/helpers/compile-prop-defs.d.ts.map +1 -0
  160. package/dist/cjs/helpers/compile-prop-defs.js +2 -0
  161. package/dist/cjs/helpers/compile-prop-defs.js.map +7 -0
  162. package/dist/cjs/helpers/extract-props.d.ts.map +1 -1
  163. package/dist/cjs/helpers/extract-props.js +1 -1
  164. package/dist/cjs/helpers/extract-props.js.map +4 -4
  165. package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -1
  166. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  167. package/dist/cjs/helpers/get-margin-styles.js.map +3 -3
  168. package/dist/cjs/helpers/get-responsive-styles.d.ts +5 -2
  169. package/dist/cjs/helpers/get-responsive-styles.d.ts.map +1 -1
  170. package/dist/cjs/helpers/get-responsive-styles.js +1 -1
  171. package/dist/cjs/helpers/get-responsive-styles.js.map +3 -3
  172. package/dist/cjs/helpers/index.js +2 -2
  173. package/dist/cjs/helpers/index.js.map +4 -4
  174. package/dist/cjs/helpers/use-deprecation-warning.d.ts +10 -0
  175. package/dist/cjs/helpers/use-deprecation-warning.d.ts.map +1 -0
  176. package/dist/cjs/helpers/use-deprecation-warning.js +2 -0
  177. package/dist/cjs/helpers/use-deprecation-warning.js.map +7 -0
  178. package/dist/cjs/hooks/index.js +2 -2
  179. package/dist/cjs/hooks/index.js.map +3 -3
  180. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  181. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +1 -1
  182. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +3 -3
  183. package/dist/cjs/hooks/use-breakpoint.d.ts +7 -3
  184. package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
  185. package/dist/cjs/hooks/use-breakpoint.js +1 -1
  186. package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
  187. package/dist/cjs/hooks/use-prop-synced-state.d.ts +14 -0
  188. package/dist/cjs/hooks/use-prop-synced-state.d.ts.map +1 -0
  189. package/dist/cjs/hooks/use-prop-synced-state.js +2 -0
  190. package/dist/cjs/hooks/use-prop-synced-state.js.map +7 -0
  191. package/dist/cjs/index.js +5 -5
  192. package/dist/cjs/index.js.map +4 -4
  193. package/dist/esm/{chunk-RQ2ZPMHJ.js → chunk-22HGLMPQ.js} +2 -2
  194. package/dist/esm/{chunk-WYA4IRU6.js → chunk-25WZA7ZU.js} +2 -2
  195. package/dist/esm/chunk-2UPAYDKR.js +2 -0
  196. package/dist/esm/chunk-2UPAYDKR.js.map +7 -0
  197. package/dist/esm/{chunk-XHQGMOXV.js → chunk-36ZQVP7F.js} +2 -2
  198. package/dist/esm/{chunk-K3R4AH3E.js → chunk-3MWWP4MW.js} +2 -2
  199. package/dist/esm/{chunk-HQ35PM4O.js → chunk-43A5GUSI.js} +2 -2
  200. package/dist/esm/{chunk-Z5DQ6FSA.js → chunk-4AQTUBVP.js} +2 -2
  201. package/dist/esm/{chunk-25U7DENY.js → chunk-4BBOHEF4.js} +2 -2
  202. package/dist/esm/{chunk-ARGX2ZZK.js → chunk-4CKDU6FY.js} +2 -2
  203. package/dist/esm/{chunk-ZSEFZM5H.js → chunk-4IY2PR6N.js} +2 -2
  204. package/dist/esm/{chunk-QLIELX4I.js → chunk-4ME6O27S.js} +2 -2
  205. package/dist/esm/chunk-4XJY6FIK.js +2 -0
  206. package/dist/esm/chunk-4XJY6FIK.js.map +7 -0
  207. package/dist/esm/{chunk-JQOFJNCV.js → chunk-4YFJWXL2.js} +2 -2
  208. package/dist/esm/{chunk-DNI4QRXQ.js → chunk-5IBGFL6O.js} +2 -2
  209. package/dist/esm/chunk-5TXQLK4G.js +2 -0
  210. package/dist/esm/chunk-5TXQLK4G.js.map +7 -0
  211. package/dist/esm/{chunk-IPJUHVM6.js → chunk-666GX7O5.js} +2 -2
  212. package/dist/esm/chunk-6FLLFCBU.js +2 -0
  213. package/dist/esm/chunk-6FLLFCBU.js.map +7 -0
  214. package/dist/esm/{chunk-DJBPM5QK.js → chunk-7FC7HF76.js} +2 -2
  215. package/dist/esm/{chunk-SVLY6B5F.js → chunk-7QDTSBJF.js} +2 -2
  216. package/dist/esm/chunk-AX5S56DS.js +2 -0
  217. package/dist/esm/chunk-AX5S56DS.js.map +7 -0
  218. package/dist/esm/{chunk-DK5MHD6I.js → chunk-B24BDVG2.js} +2 -2
  219. package/dist/esm/{chunk-WZCZHCVE.js → chunk-BJYUPIXO.js} +2 -2
  220. package/dist/esm/{chunk-BJTJUIYJ.js → chunk-CRWYCLTE.js} +2 -2
  221. package/dist/esm/{chunk-OHJVFZMH.js → chunk-CSKZZOI2.js} +2 -2
  222. package/dist/esm/chunk-D5N627TH.js +2 -0
  223. package/dist/esm/chunk-D5N627TH.js.map +7 -0
  224. package/dist/esm/{chunk-ADYTQCZX.js → chunk-D6B7IMZU.js} +2 -2
  225. package/dist/esm/chunk-DL2O3GKG.js +2 -0
  226. package/dist/esm/chunk-DL2O3GKG.js.map +7 -0
  227. package/dist/esm/{chunk-USGTBZ43.js → chunk-E67CIG6A.js} +2 -2
  228. package/dist/esm/{chunk-42HFGCHX.js → chunk-ETMLMDW4.js} +2 -2
  229. package/dist/esm/{chunk-7CBAHIVG.js → chunk-F2HYQ3ZR.js} +2 -2
  230. package/dist/esm/{chunk-YUZPSUJE.js → chunk-F7IYL2VW.js} +2 -2
  231. package/dist/esm/{chunk-FVCWNSRU.js → chunk-FHOCUZDR.js} +2 -2
  232. package/dist/esm/{chunk-7MURQ6CR.js → chunk-FLFAXVFB.js} +2 -2
  233. package/dist/esm/{chunk-APRBRAOT.js → chunk-FOEZLQTW.js} +2 -2
  234. package/dist/esm/{chunk-WNSPLWRV.js → chunk-GJSGKE7B.js} +2 -2
  235. package/dist/esm/{chunk-OGOOZLUD.js → chunk-GLERJXVS.js} +2 -2
  236. package/dist/esm/{chunk-6VGPTAHM.js → chunk-GWXVETMF.js} +2 -2
  237. package/dist/esm/{chunk-ES7MK2MM.js → chunk-GYBLXQ4R.js} +2 -2
  238. package/dist/esm/{chunk-4OBMRJHC.js → chunk-H7ST535H.js} +2 -2
  239. package/dist/esm/{chunk-QLZ5XAW6.js → chunk-HF5WY5YE.js} +2 -2
  240. package/dist/esm/chunk-ICIGZ3N7.js +2 -0
  241. package/dist/esm/chunk-ICIGZ3N7.js.map +7 -0
  242. package/dist/esm/{chunk-RDP4UQ42.js → chunk-IEWCQU2S.js} +2 -2
  243. package/dist/esm/{chunk-XLOHPURR.js → chunk-IHK3H2OM.js} +2 -2
  244. package/dist/esm/{chunk-3F6I7YOR.js → chunk-JDGJSNWT.js} +2 -2
  245. package/dist/esm/chunk-JQQIPEGY.js +2 -0
  246. package/dist/esm/chunk-JQQIPEGY.js.map +7 -0
  247. package/dist/esm/chunk-JR2YOGII.js +2 -0
  248. package/dist/esm/chunk-JR2YOGII.js.map +7 -0
  249. package/dist/esm/chunk-JUY7CBSL.js +2 -0
  250. package/dist/esm/chunk-JUY7CBSL.js.map +7 -0
  251. package/dist/esm/{chunk-VF5TRT3H.js → chunk-KKM6T5P7.js} +2 -2
  252. package/dist/esm/{chunk-ZHYOJNWV.js → chunk-LKAK5GXF.js} +2 -2
  253. package/dist/esm/chunk-LOGJJF4I.js +2 -0
  254. package/dist/esm/chunk-LOGJJF4I.js.map +7 -0
  255. package/dist/esm/{chunk-JCYI4NTV.js → chunk-MBCBP73P.js} +2 -2
  256. package/dist/esm/{chunk-UYNYUR7O.js → chunk-MBE2YSBU.js} +2 -2
  257. package/dist/esm/chunk-MHANZINI.js +2 -0
  258. package/dist/esm/chunk-MHANZINI.js.map +7 -0
  259. package/dist/esm/chunk-MRECKC4D.js +2 -0
  260. package/dist/esm/chunk-MRECKC4D.js.map +7 -0
  261. package/dist/esm/{chunk-H2G446JG.js → chunk-NMKPFUNP.js} +2 -2
  262. package/dist/esm/{chunk-4N5JU7XQ.js → chunk-O3CDWEZA.js} +2 -2
  263. package/dist/esm/{chunk-TEULZKBM.js → chunk-OGXZHAQL.js} +2 -2
  264. package/dist/esm/{chunk-2AEELIG6.js → chunk-OWAUCLRT.js} +2 -2
  265. package/dist/esm/{chunk-7CXVHFMQ.js → chunk-P7HYVJSU.js} +2 -2
  266. package/dist/esm/{chunk-4532RT2B.js → chunk-P7IAHW4V.js} +2 -2
  267. package/dist/esm/{chunk-M3ZYJANH.js → chunk-PQZXQ4ST.js} +2 -2
  268. package/dist/esm/{chunk-SGU4HUHF.js → chunk-PTLFMWCN.js} +2 -2
  269. package/dist/esm/chunk-S2HA3W3V.js +2 -0
  270. package/dist/esm/chunk-S2HA3W3V.js.map +7 -0
  271. package/dist/esm/{chunk-E6IWYD3U.js → chunk-S5C5YRBS.js} +2 -2
  272. package/dist/esm/{chunk-A24PYRVV.js → chunk-SO67YEVQ.js} +2 -2
  273. package/dist/esm/chunk-TLWTUKKL.js +2 -0
  274. package/dist/esm/chunk-TLWTUKKL.js.map +7 -0
  275. package/dist/esm/{chunk-HACQF6F4.js → chunk-TOOSHJOA.js} +2 -2
  276. package/dist/esm/{chunk-QOWA5LK5.js → chunk-U2X2CAW4.js} +2 -2
  277. package/dist/esm/{chunk-U7AASKZI.js → chunk-UVCH7QKO.js} +2 -2
  278. package/dist/esm/{chunk-GWYFT3EI.js → chunk-VLO7NXSP.js} +2 -2
  279. package/dist/esm/{chunk-DXI5P5O4.js → chunk-VX6ARMWP.js} +2 -2
  280. package/dist/esm/chunk-WAURCNAS.js +2 -0
  281. package/dist/esm/chunk-WAURCNAS.js.map +7 -0
  282. package/dist/esm/{chunk-EJWAAFCI.js → chunk-WO43WW3A.js} +2 -2
  283. package/dist/esm/{chunk-GLC4QJBF.js → chunk-WTYNFBFV.js} +2 -2
  284. package/dist/esm/{chunk-6FAICIYS.js → chunk-XMRIRFM7.js} +2 -2
  285. package/dist/esm/chunk-YV2KYHGR.js +2 -0
  286. package/dist/esm/chunk-YV2KYHGR.js.map +7 -0
  287. package/dist/esm/{chunk-UIEUZLZZ.js → chunk-ZY6SQWHT.js} +2 -2
  288. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  289. package/dist/esm/components/_internal/base-button.js +1 -1
  290. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
  291. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  292. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  293. package/dist/esm/components/_internal/shell-handles.js +1 -1
  294. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  295. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  296. package/dist/esm/components/accordion.d.ts.map +1 -1
  297. package/dist/esm/components/accordion.js +1 -1
  298. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  299. package/dist/esm/components/alert-dialog.js +1 -1
  300. package/dist/esm/components/avatar.js +1 -1
  301. package/dist/esm/components/badge.d.ts.map +1 -1
  302. package/dist/esm/components/badge.js +1 -1
  303. package/dist/esm/components/blockquote.js +1 -1
  304. package/dist/esm/components/box.js +1 -1
  305. package/dist/esm/components/button.js +1 -1
  306. package/dist/esm/components/callout.js +1 -1
  307. package/dist/esm/components/card.js +1 -1
  308. package/dist/esm/components/chatbar.js +1 -1
  309. package/dist/esm/components/checkbox-cards.js +1 -1
  310. package/dist/esm/components/checkbox-group.js +1 -1
  311. package/dist/esm/components/checkbox.js +1 -1
  312. package/dist/esm/components/code.js +1 -1
  313. package/dist/esm/components/combobox.js +1 -1
  314. package/dist/esm/components/container.js +1 -1
  315. package/dist/esm/components/context-menu.d.ts.map +1 -1
  316. package/dist/esm/components/context-menu.js +1 -1
  317. package/dist/esm/components/data-list.js +1 -1
  318. package/dist/esm/components/dialog.d.ts.map +1 -1
  319. package/dist/esm/components/dialog.js +1 -1
  320. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  321. package/dist/esm/components/dropdown-menu.js +1 -1
  322. package/dist/esm/components/em.js +1 -1
  323. package/dist/esm/components/flex.js +1 -1
  324. package/dist/esm/components/grid.js +1 -1
  325. package/dist/esm/components/heading.js +1 -1
  326. package/dist/esm/components/hover-card.js +1 -1
  327. package/dist/esm/components/icon-button.js +1 -1
  328. package/dist/esm/components/image.js +1 -1
  329. package/dist/esm/components/index.js +1 -1
  330. package/dist/esm/components/inset.js +1 -1
  331. package/dist/esm/components/kbd.js +1 -1
  332. package/dist/esm/components/link.js +1 -1
  333. package/dist/esm/components/navbar.js +1 -1
  334. package/dist/esm/components/popover.js +1 -1
  335. package/dist/esm/components/progress.js +1 -1
  336. package/dist/esm/components/quote.js +1 -1
  337. package/dist/esm/components/radio-cards.js +1 -1
  338. package/dist/esm/components/radio-group.js +1 -1
  339. package/dist/esm/components/radio.js +1 -1
  340. package/dist/esm/components/schemas/base-button.schema.d.ts +2 -2
  341. package/dist/esm/components/schemas/button.schema.d.ts +2 -2
  342. package/dist/esm/components/schemas/icon-button.schema.d.ts +4 -4
  343. package/dist/esm/components/schemas/shell.schema.d.ts +2 -2
  344. package/dist/esm/components/schemas/toggle-button.schema.d.ts +6 -6
  345. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +8 -8
  346. package/dist/esm/components/scroll-area.js +1 -1
  347. package/dist/esm/components/section.js +1 -1
  348. package/dist/esm/components/segmented-control.js +1 -1
  349. package/dist/esm/components/select.js +1 -1
  350. package/dist/esm/components/separator.js +1 -1
  351. package/dist/esm/components/sheet.d.ts.map +1 -1
  352. package/dist/esm/components/sheet.js +1 -1
  353. package/dist/esm/components/shell.js +1 -1
  354. package/dist/esm/components/sidebar.js +1 -1
  355. package/dist/esm/components/skeleton.js +1 -1
  356. package/dist/esm/components/slider.js +1 -1
  357. package/dist/esm/components/spinner.js +1 -1
  358. package/dist/esm/components/strong.js +1 -1
  359. package/dist/esm/components/switch.js +1 -1
  360. package/dist/esm/components/tab-nav.js +1 -1
  361. package/dist/esm/components/table.js +1 -1
  362. package/dist/esm/components/tabs.js +1 -1
  363. package/dist/esm/components/text-area.js +1 -1
  364. package/dist/esm/components/text-field.js +1 -1
  365. package/dist/esm/components/text.js +1 -1
  366. package/dist/esm/components/theme-panel.js +1 -1
  367. package/dist/esm/components/theme.d.ts.map +1 -1
  368. package/dist/esm/components/theme.js +1 -1
  369. package/dist/esm/components/toggle-button.js +1 -1
  370. package/dist/esm/components/toggle-icon-button.js +1 -1
  371. package/dist/esm/components/toolbar.js +1 -1
  372. package/dist/esm/components/tooltip.js +1 -1
  373. package/dist/esm/components/user-card.js +1 -1
  374. package/dist/esm/helpers/compile-prop-defs.d.ts +49 -0
  375. package/dist/esm/helpers/compile-prop-defs.d.ts.map +1 -0
  376. package/dist/esm/helpers/compile-prop-defs.js +2 -0
  377. package/dist/esm/helpers/compile-prop-defs.js.map +7 -0
  378. package/dist/esm/helpers/extract-props.d.ts.map +1 -1
  379. package/dist/esm/helpers/extract-props.js +1 -1
  380. package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -1
  381. package/dist/esm/helpers/get-margin-styles.js +1 -1
  382. package/dist/esm/helpers/get-responsive-styles.d.ts +5 -2
  383. package/dist/esm/helpers/get-responsive-styles.d.ts.map +1 -1
  384. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  385. package/dist/esm/helpers/index.js +1 -1
  386. package/dist/esm/helpers/use-deprecation-warning.d.ts +10 -0
  387. package/dist/esm/helpers/use-deprecation-warning.d.ts.map +1 -0
  388. package/dist/esm/helpers/use-deprecation-warning.js +2 -0
  389. package/dist/esm/helpers/use-deprecation-warning.js.map +7 -0
  390. package/dist/esm/hooks/index.js +1 -1
  391. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  392. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
  393. package/dist/esm/hooks/use-breakpoint.d.ts +7 -3
  394. package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
  395. package/dist/esm/hooks/use-breakpoint.js +1 -1
  396. package/dist/esm/hooks/use-prop-synced-state.d.ts +14 -0
  397. package/dist/esm/hooks/use-prop-synced-state.d.ts.map +1 -0
  398. package/dist/esm/hooks/use-prop-synced-state.js +2 -0
  399. package/dist/esm/hooks/use-prop-synced-state.js.map +7 -0
  400. package/dist/esm/index.js +1 -1
  401. package/package.json +2 -1
  402. package/schemas/base-button.json +0 -1
  403. package/schemas/button.json +0 -1
  404. package/schemas/icon-button.json +0 -1
  405. package/schemas/index.json +0 -6
  406. package/schemas/toggle-button.json +0 -1
  407. package/schemas/toggle-icon-button.json +0 -1
  408. package/src/components/_internal/base-button.css +2 -2
  409. package/src/components/_internal/base-button.tsx +3 -58
  410. package/src/components/_internal/base-card.css +19 -4
  411. package/src/components/_internal/base-checkbox.css +2 -2
  412. package/src/components/_internal/base-dialog.css +7 -0
  413. package/src/components/_internal/base-menu.css +7 -0
  414. package/src/components/_internal/base-radio.css +2 -2
  415. package/src/components/_internal/base-sidebar.css +7 -0
  416. package/src/components/_internal/base-tab-list.css +2 -2
  417. package/src/components/_internal/shell-handles.tsx +27 -0
  418. package/src/components/accordion.css +6 -6
  419. package/src/components/accordion.tsx +2 -8
  420. package/src/components/alert-dialog.tsx +22 -20
  421. package/src/components/avatar.css +2 -2
  422. package/src/components/badge.css +2 -2
  423. package/src/components/badge.tsx +2 -8
  424. package/src/components/callout.css +2 -2
  425. package/src/components/chatbar.css +1 -1
  426. package/src/components/context-menu.tsx +2 -8
  427. package/src/components/dialog.tsx +22 -20
  428. package/src/components/dropdown-menu.tsx +2 -8
  429. package/src/components/popover.css +7 -0
  430. package/src/components/progress.css +21 -8
  431. package/src/components/segmented-control.css +2 -2
  432. package/src/components/select.css +9 -2
  433. package/src/components/sheet.tsx +31 -28
  434. package/src/components/shell.css +106 -69
  435. package/src/components/slider.css +2 -2
  436. package/src/components/switch.css +2 -2
  437. package/src/components/table.css +7 -0
  438. package/src/components/text-area.css +2 -2
  439. package/src/components/text-field.css +2 -2
  440. package/src/components/theme.tsx +35 -34
  441. package/src/helpers/compile-prop-defs.ts +121 -0
  442. package/src/helpers/extract-props.ts +104 -83
  443. package/src/helpers/get-margin-styles.ts +38 -71
  444. package/src/helpers/get-responsive-styles.ts +37 -38
  445. package/src/helpers/use-deprecation-warning.ts +26 -0
  446. package/src/hooks/use-body-pointer-events-cleanup.ts +36 -6
  447. package/src/hooks/use-breakpoint.ts +94 -53
  448. package/src/hooks/use-prop-synced-state.ts +24 -0
  449. package/src/styles/tokens/blur.css +28 -0
  450. package/src/styles/tokens/color.css +3 -3
  451. package/src/styles/tokens/constants.css +11 -0
  452. package/styles.css +175 -117
  453. package/tokens/base.css +13 -3
  454. package/tokens.css +16 -3
  455. package/dist/esm/chunk-2SS3FA3N.js +0 -2
  456. package/dist/esm/chunk-2SS3FA3N.js.map +0 -7
  457. package/dist/esm/chunk-5U2Q23K3.js +0 -2
  458. package/dist/esm/chunk-5U2Q23K3.js.map +0 -7
  459. package/dist/esm/chunk-6ELPYR73.js +0 -2
  460. package/dist/esm/chunk-6ELPYR73.js.map +0 -7
  461. package/dist/esm/chunk-DZ4H2KTP.js +0 -2
  462. package/dist/esm/chunk-DZ4H2KTP.js.map +0 -7
  463. package/dist/esm/chunk-H4MMVAGQ.js +0 -2
  464. package/dist/esm/chunk-H4MMVAGQ.js.map +0 -7
  465. package/dist/esm/chunk-ITRVKLYU.js +0 -2
  466. package/dist/esm/chunk-ITRVKLYU.js.map +0 -7
  467. package/dist/esm/chunk-KCAFSCOV.js +0 -2
  468. package/dist/esm/chunk-KCAFSCOV.js.map +0 -7
  469. package/dist/esm/chunk-KMPBTEZH.js +0 -2
  470. package/dist/esm/chunk-KMPBTEZH.js.map +0 -7
  471. package/dist/esm/chunk-LN5SP46K.js +0 -2
  472. package/dist/esm/chunk-LN5SP46K.js.map +0 -7
  473. package/dist/esm/chunk-OKJNS7Z7.js +0 -2
  474. package/dist/esm/chunk-OKJNS7Z7.js.map +0 -7
  475. package/dist/esm/chunk-Q73Y5O5P.js +0 -2
  476. package/dist/esm/chunk-Q73Y5O5P.js.map +0 -7
  477. package/dist/esm/chunk-UUX42HBM.js +0 -2
  478. package/dist/esm/chunk-UUX42HBM.js.map +0 -7
  479. package/dist/esm/chunk-X7BD5FLE.js +0 -2
  480. package/dist/esm/chunk-X7BD5FLE.js.map +0 -7
  481. package/dist/esm/chunk-YEA646GM.js +0 -2
  482. package/dist/esm/chunk-YEA646GM.js.map +0 -7
  483. package/dist/esm/chunk-ZMEXIPWM.js +0 -2
  484. package/dist/esm/chunk-ZMEXIPWM.js.map +0 -7
  485. /package/dist/esm/{chunk-RQ2ZPMHJ.js.map → chunk-22HGLMPQ.js.map} +0 -0
  486. /package/dist/esm/{chunk-WYA4IRU6.js.map → chunk-25WZA7ZU.js.map} +0 -0
  487. /package/dist/esm/{chunk-XHQGMOXV.js.map → chunk-36ZQVP7F.js.map} +0 -0
  488. /package/dist/esm/{chunk-K3R4AH3E.js.map → chunk-3MWWP4MW.js.map} +0 -0
  489. /package/dist/esm/{chunk-HQ35PM4O.js.map → chunk-43A5GUSI.js.map} +0 -0
  490. /package/dist/esm/{chunk-Z5DQ6FSA.js.map → chunk-4AQTUBVP.js.map} +0 -0
  491. /package/dist/esm/{chunk-25U7DENY.js.map → chunk-4BBOHEF4.js.map} +0 -0
  492. /package/dist/esm/{chunk-ARGX2ZZK.js.map → chunk-4CKDU6FY.js.map} +0 -0
  493. /package/dist/esm/{chunk-ZSEFZM5H.js.map → chunk-4IY2PR6N.js.map} +0 -0
  494. /package/dist/esm/{chunk-QLIELX4I.js.map → chunk-4ME6O27S.js.map} +0 -0
  495. /package/dist/esm/{chunk-JQOFJNCV.js.map → chunk-4YFJWXL2.js.map} +0 -0
  496. /package/dist/esm/{chunk-DNI4QRXQ.js.map → chunk-5IBGFL6O.js.map} +0 -0
  497. /package/dist/esm/{chunk-IPJUHVM6.js.map → chunk-666GX7O5.js.map} +0 -0
  498. /package/dist/esm/{chunk-DJBPM5QK.js.map → chunk-7FC7HF76.js.map} +0 -0
  499. /package/dist/esm/{chunk-SVLY6B5F.js.map → chunk-7QDTSBJF.js.map} +0 -0
  500. /package/dist/esm/{chunk-DK5MHD6I.js.map → chunk-B24BDVG2.js.map} +0 -0
  501. /package/dist/esm/{chunk-WZCZHCVE.js.map → chunk-BJYUPIXO.js.map} +0 -0
  502. /package/dist/esm/{chunk-BJTJUIYJ.js.map → chunk-CRWYCLTE.js.map} +0 -0
  503. /package/dist/esm/{chunk-OHJVFZMH.js.map → chunk-CSKZZOI2.js.map} +0 -0
  504. /package/dist/esm/{chunk-ADYTQCZX.js.map → chunk-D6B7IMZU.js.map} +0 -0
  505. /package/dist/esm/{chunk-USGTBZ43.js.map → chunk-E67CIG6A.js.map} +0 -0
  506. /package/dist/esm/{chunk-42HFGCHX.js.map → chunk-ETMLMDW4.js.map} +0 -0
  507. /package/dist/esm/{chunk-7CBAHIVG.js.map → chunk-F2HYQ3ZR.js.map} +0 -0
  508. /package/dist/esm/{chunk-YUZPSUJE.js.map → chunk-F7IYL2VW.js.map} +0 -0
  509. /package/dist/esm/{chunk-FVCWNSRU.js.map → chunk-FHOCUZDR.js.map} +0 -0
  510. /package/dist/esm/{chunk-7MURQ6CR.js.map → chunk-FLFAXVFB.js.map} +0 -0
  511. /package/dist/esm/{chunk-APRBRAOT.js.map → chunk-FOEZLQTW.js.map} +0 -0
  512. /package/dist/esm/{chunk-WNSPLWRV.js.map → chunk-GJSGKE7B.js.map} +0 -0
  513. /package/dist/esm/{chunk-OGOOZLUD.js.map → chunk-GLERJXVS.js.map} +0 -0
  514. /package/dist/esm/{chunk-6VGPTAHM.js.map → chunk-GWXVETMF.js.map} +0 -0
  515. /package/dist/esm/{chunk-ES7MK2MM.js.map → chunk-GYBLXQ4R.js.map} +0 -0
  516. /package/dist/esm/{chunk-4OBMRJHC.js.map → chunk-H7ST535H.js.map} +0 -0
  517. /package/dist/esm/{chunk-QLZ5XAW6.js.map → chunk-HF5WY5YE.js.map} +0 -0
  518. /package/dist/esm/{chunk-RDP4UQ42.js.map → chunk-IEWCQU2S.js.map} +0 -0
  519. /package/dist/esm/{chunk-XLOHPURR.js.map → chunk-IHK3H2OM.js.map} +0 -0
  520. /package/dist/esm/{chunk-3F6I7YOR.js.map → chunk-JDGJSNWT.js.map} +0 -0
  521. /package/dist/esm/{chunk-VF5TRT3H.js.map → chunk-KKM6T5P7.js.map} +0 -0
  522. /package/dist/esm/{chunk-ZHYOJNWV.js.map → chunk-LKAK5GXF.js.map} +0 -0
  523. /package/dist/esm/{chunk-JCYI4NTV.js.map → chunk-MBCBP73P.js.map} +0 -0
  524. /package/dist/esm/{chunk-UYNYUR7O.js.map → chunk-MBE2YSBU.js.map} +0 -0
  525. /package/dist/esm/{chunk-H2G446JG.js.map → chunk-NMKPFUNP.js.map} +0 -0
  526. /package/dist/esm/{chunk-4N5JU7XQ.js.map → chunk-O3CDWEZA.js.map} +0 -0
  527. /package/dist/esm/{chunk-TEULZKBM.js.map → chunk-OGXZHAQL.js.map} +0 -0
  528. /package/dist/esm/{chunk-2AEELIG6.js.map → chunk-OWAUCLRT.js.map} +0 -0
  529. /package/dist/esm/{chunk-7CXVHFMQ.js.map → chunk-P7HYVJSU.js.map} +0 -0
  530. /package/dist/esm/{chunk-4532RT2B.js.map → chunk-P7IAHW4V.js.map} +0 -0
  531. /package/dist/esm/{chunk-M3ZYJANH.js.map → chunk-PQZXQ4ST.js.map} +0 -0
  532. /package/dist/esm/{chunk-SGU4HUHF.js.map → chunk-PTLFMWCN.js.map} +0 -0
  533. /package/dist/esm/{chunk-E6IWYD3U.js.map → chunk-S5C5YRBS.js.map} +0 -0
  534. /package/dist/esm/{chunk-A24PYRVV.js.map → chunk-SO67YEVQ.js.map} +0 -0
  535. /package/dist/esm/{chunk-HACQF6F4.js.map → chunk-TOOSHJOA.js.map} +0 -0
  536. /package/dist/esm/{chunk-QOWA5LK5.js.map → chunk-U2X2CAW4.js.map} +0 -0
  537. /package/dist/esm/{chunk-U7AASKZI.js.map → chunk-UVCH7QKO.js.map} +0 -0
  538. /package/dist/esm/{chunk-GWYFT3EI.js.map → chunk-VLO7NXSP.js.map} +0 -0
  539. /package/dist/esm/{chunk-DXI5P5O4.js.map → chunk-VX6ARMWP.js.map} +0 -0
  540. /package/dist/esm/{chunk-EJWAAFCI.js.map → chunk-WO43WW3A.js.map} +0 -0
  541. /package/dist/esm/{chunk-GLC4QJBF.js.map → chunk-WTYNFBFV.js.map} +0 -0
  542. /package/dist/esm/{chunk-6FAICIYS.js.map → chunk-XMRIRFM7.js.map} +0 -0
  543. /package/dist/esm/{chunk-UIEUZLZZ.js.map → chunk-ZY6SQWHT.js.map} +0 -0
@@ -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
 
@@ -27,7 +27,7 @@
27
27
  --material-blend: 60%;
28
28
  --material-alpha: 1;
29
29
  backdrop-filter: var(--backdrop-filter-components);
30
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
30
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
31
31
  }
32
32
 
33
33
  /* Prevent backdrop-filter stacking with parents */
@@ -45,7 +45,7 @@
45
45
  --material-blend: 60%;
46
46
  --material-alpha: 1;
47
47
  backdrop-filter: var(--backdrop-filter-components);
48
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
48
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
49
49
  }
50
50
 
51
51
  /* Reduced motion support */
@@ -10,6 +10,7 @@ import { Tooltip } from './tooltip.js';
10
10
  import type { MarginProps } from '../props/margin.props.js';
11
11
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
12
12
  import type { GetPropDefTypes } from '../props/prop-def.js';
13
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
13
14
 
14
15
  type BadgeElement = React.ElementRef<'span'>;
15
16
  type BadgeOwnProps = GetPropDefTypes<typeof badgePropDefs>;
@@ -52,14 +53,7 @@ const Badge = React.forwardRef<BadgeElement, BadgeProps>((props, forwardedRef) =
52
53
  [material, panelBackground],
53
54
  );
54
55
 
55
- // Show deprecation warning for panelBackground when used
56
- React.useEffect(() => {
57
- if (panelBackground !== undefined) {
58
- console.warn(
59
- 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
60
- );
61
- }
62
- }, [panelBackground]);
56
+ useDeprecatedPanelBackgroundWarning(panelBackground);
63
57
 
64
58
  // Memoize component variable to prevent unnecessary re-renders
65
59
  const Comp = React.useMemo(() => (asChild ? Slot.Root : 'span'), [asChild]);
@@ -17,7 +17,7 @@
17
17
  --material-blend: 60%;
18
18
  --material-alpha: 1;
19
19
  backdrop-filter: var(--backdrop-filter-components);
20
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
20
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
21
21
  }
22
22
 
23
23
  /* Prevent backdrop-filter stacking with parents */
@@ -35,7 +35,7 @@
35
35
  --material-blend: 60%;
36
36
  --material-alpha: 1;
37
37
  backdrop-filter: var(--backdrop-filter-components);
38
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
38
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
39
39
  }
40
40
 
41
41
  &:where(.rt-high-contrast) {
@@ -173,7 +173,7 @@
173
173
  /* Theme-level translucent override for the visual shell */
174
174
  .rt-ChatbarRoot:where([data-panel-background='translucent'], [data-material='translucent']) .rt-ChatbarBox {
175
175
  backdrop-filter: var(--backdrop-filter-components);
176
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
176
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
177
177
  }
178
178
  .rt-ChatbarRoot:where([data-panel-background='solid'], [data-material='solid']) .rt-ChatbarBox {
179
179
  backdrop-filter: none;
@@ -23,6 +23,7 @@ import { Kbd } from './kbd.js';
23
23
 
24
24
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
25
25
  import type { GetPropDefTypes } from '../props/prop-def.js';
26
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
26
27
 
27
28
  interface ContextMenuRootProps
28
29
  extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Root> {}
@@ -56,14 +57,7 @@ const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMe
56
57
  (props, forwardedRef) => {
57
58
  const themeContext = useThemeContext();
58
59
 
59
- // Show deprecation warning for panelBackground when used
60
- React.useEffect(() => {
61
- if (props.panelBackground !== undefined) {
62
- console.warn(
63
- 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
64
- );
65
- }
66
- }, [props.panelBackground]);
60
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
67
61
 
68
62
  // Material takes precedence over panelBackground
69
63
  const effectiveMaterial =
@@ -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
  import { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';
12
13
 
@@ -33,6 +34,19 @@ const DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>
33
34
  );
34
35
  DialogTrigger.displayName = 'Dialog.Trigger';
35
36
 
37
+ // Split once at module scope. `extractProps` memoises on the identity of the
38
+ // prop def objects it is handed, so rebuilding these per render would recompile
39
+ // them on every render.
40
+ const {
41
+ align: alignPropDef,
42
+ panelBackground: panelBackgroundPropDef,
43
+ material: materialPropDef,
44
+ ...contentPropDefs
45
+ } = dialogContentPropDefs;
46
+ const alignPropDefs = { align: alignPropDef };
47
+ const panelBackgroundPropDefs = { panelBackground: panelBackgroundPropDef };
48
+ const materialPropDefs = { material: materialPropDef };
49
+
36
50
  type DialogContentElement = React.ElementRef<typeof DialogPrimitive.Content>;
37
51
  interface DialogContentProps
38
52
  extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,
@@ -41,35 +55,23 @@ interface DialogContentProps
41
55
  }
42
56
  const DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(
43
57
  ({ align, ...props }, forwardedRef) => {
44
- const {
45
- align: alignPropDef,
46
- panelBackground: panelBackgroundPropDef,
47
- material: materialPropDef,
48
- ...propDefs
49
- } = dialogContentPropDefs;
50
-
51
- const { className: alignClassName } = extractProps({ align }, { align: alignPropDef });
58
+ const { className: alignClassName } = extractProps({ align }, alignPropDefs);
52
59
 
53
60
  // Extract panelBackground and material from props
54
61
  const { panelBackground: extractedPanelBackground } = extractProps(
55
62
  { panelBackground: props.panelBackground },
56
- { panelBackground: panelBackgroundPropDef },
63
+ panelBackgroundPropDefs,
57
64
  );
58
65
 
59
66
  const { material: extractedMaterial } = extractProps(
60
67
  { material: props.material },
61
- { material: materialPropDef },
68
+ materialPropDefs,
62
69
  );
63
70
 
64
- // Handle material prop with panelBackground fallback
65
- const materialValue = React.useMemo(() => {
66
- if (extractedMaterial !== undefined) {
67
- console.warn(
68
- 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
69
- );
70
- }
71
- return extractedMaterial ?? extractedPanelBackground;
72
- }, [extractedMaterial, extractedPanelBackground]);
71
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
72
+
73
+ // Material takes precedence over the deprecated panelBackground
74
+ const materialValue = extractedMaterial ?? extractedPanelBackground;
73
75
 
74
76
  const {
75
77
  className,
@@ -78,7 +80,7 @@ const DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>
78
80
  panelBackground: _,
79
81
  material: __,
80
82
  ...contentProps
81
- } = extractProps(props, propDefs);
83
+ } = extractProps(props, contentPropDefs);
82
84
 
83
85
  // Focus management
84
86
  const contentRef = React.useRef<HTMLDivElement>(null);
@@ -30,6 +30,7 @@ import { Kbd } from './kbd.js';
30
30
  import type { IconProps } from './icons.js';
31
31
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
32
32
  import type { GetPropDefTypes, Responsive } from '../props/prop-def.js';
33
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
33
34
 
34
35
  interface DropdownMenuRootProps
35
36
  extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}
@@ -113,14 +114,7 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
113
114
  (props, forwardedRef) => {
114
115
  const themeContext = useThemeContext();
115
116
 
116
- // Show deprecation warning for panelBackground when used
117
- React.useEffect(() => {
118
- if (props.panelBackground !== undefined) {
119
- console.warn(
120
- 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
121
- );
122
- }
123
- }, [props.panelBackground]);
117
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
124
118
 
125
119
  // Material takes precedence over panelBackground
126
120
  const effectiveMaterial =
@@ -1,4 +1,11 @@
1
1
  .rt-PopoverContent {
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
  /* Base state: use --color-panel which adapts to theme context */
3
10
  background-color: var(--color-panel);
4
11
  backdrop-filter: var(--backdrop-filter-panel);
@@ -15,7 +15,7 @@
15
15
  */
16
16
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
17
17
  backdrop-filter: var(--backdrop-filter-components);
18
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
18
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
19
19
  }
20
20
 
21
21
  /* Prevent backdrop-filter stacking with parent elements */
@@ -32,7 +32,7 @@
32
32
 
33
33
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
34
34
  backdrop-filter: var(--backdrop-filter-components);
35
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
35
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
36
36
  }
37
37
  }
38
38
 
@@ -40,8 +40,21 @@
40
40
  .rt-ProgressIndicator {
41
41
  display: block;
42
42
  height: var(--position-full);
43
- width: max(calc(var(--progress-value) / var(--progress-max) * 100%), var(--progress-height));
43
+ width: var(--position-full);
44
44
  border-radius: var(--progress-indicator-radius);
45
+
46
+ /*
47
+ * The bar is full width and slid into place rather than grown. `width` is a
48
+ * layout property: animating it re-lays-out on every frame, and the
49
+ * indeterminate animation never stops, so a visible bar reflowed forever.
50
+ * `.rt-ProgressRoot` clips the overhang. `max()` keeps a sliver of the bar
51
+ * visible at very low values, as the width form did.
52
+ */
53
+ transform: translateX(
54
+ calc(
55
+ -100% + max(calc(var(--progress-value) / var(--progress-max) * 100%), var(--progress-height))
56
+ )
57
+ );
45
58
  transition: var(--transition-progress);
46
59
 
47
60
  &:where([data-state='indeterminate']) {
@@ -55,20 +68,20 @@
55
68
 
56
69
  @keyframes rt-progress-indicator-indeterminate-grow {
57
70
  0% {
58
- width: calc(var(--progress-scale-initial) * 100%);
71
+ transform: translateX(calc(-100% + var(--progress-scale-initial) * 100%));
59
72
  }
60
73
  20% {
61
- width: calc(var(--progress-scale-step-1) * 100%);
74
+ transform: translateX(calc(-100% + var(--progress-scale-step-1) * 100%));
62
75
  }
63
76
  30% {
64
- width: calc(var(--progress-scale-step-2) * 100%);
77
+ transform: translateX(calc(-100% + var(--progress-scale-step-2) * 100%));
65
78
  }
66
79
  40%,
67
80
  50% {
68
- width: calc(var(--progress-scale-step-3) * 100%);
81
+ transform: translateX(calc(-100% + var(--progress-scale-step-3) * 100%));
69
82
  }
70
83
  100% {
71
- width: calc(var(--progress-scale-final) * 100%);
84
+ transform: translateX(calc(-100% + var(--progress-scale-final) * 100%));
72
85
  }
73
86
  }
74
87
 
@@ -32,7 +32,7 @@
32
32
  */
33
33
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
34
34
  backdrop-filter: var(--backdrop-filter-components);
35
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
35
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
36
36
  }
37
37
 
38
38
  /*
@@ -46,7 +46,7 @@
46
46
 
47
47
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
48
48
  backdrop-filter: var(--backdrop-filter-components);
49
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
49
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
50
50
  }
51
51
 
52
52
  /* Disable backdrop-filter when inside elements that already have backdrop-filter */
@@ -16,7 +16,7 @@
16
16
  /* Theme-level translucent override */
17
17
  :where([data-panel-background='translucent'], [data-material='translucent']) & {
18
18
  backdrop-filter: var(--backdrop-filter-components);
19
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
19
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
20
20
  }
21
21
 
22
22
  /* Prevent backdrop-filter stacking with parents */
@@ -30,7 +30,7 @@
30
30
 
31
31
  &:where([data-panel-background='translucent'], [data-material='translucent']) {
32
32
  backdrop-filter: var(--backdrop-filter-components);
33
- --backdrop-filter-components: blur(var(--backdrop-blur-components));
33
+ --backdrop-filter-components: var(--backdrop-filter-components-enabled);
34
34
  }
35
35
 
36
36
  &:where(.rt-high-contrast) {
@@ -71,6 +71,13 @@
71
71
  }
72
72
 
73
73
  .rt-SelectContent {
74
+ /*
75
+ * This surface blurs its own backdrop, which makes it the backdrop root for
76
+ * everything inside it. A component nested here would re-blur an already
77
+ * blurred, already flat surface for the full cost of another blur pass, so
78
+ * switch the component filter off for the subtree. See tokens/blur.css.
79
+ */
80
+ --backdrop-filter-components-enabled: none;
74
81
  --scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);
75
82
  --scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);
76
83
  --scrollarea-scrollbar-horizontal-margin-left: var(--select-content-padding);
@@ -43,6 +43,7 @@ import { Theme } from './theme.js';
43
43
  import { Heading } from './heading.js';
44
44
  import { Text } from './text.js';
45
45
  import { extractProps } from '../helpers/extract-props.js';
46
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
46
47
  import { requireReactElement } from '../helpers/require-react-element.js';
47
48
  import { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';
48
49
 
@@ -85,6 +86,30 @@ Trigger.displayName = 'Sheet.Trigger';
85
86
 
86
87
  // Content
87
88
  /** Element type for `Sheet.Content`. */
89
+ // Reuse dialog content prop defs for size/width/height tokens, but handle
90
+ // material/panelBackground explicitly to avoid forwarding unknown DOM props.
91
+ // Built once at module scope: `extractProps` memoises on the identity of the
92
+ // prop def objects it is handed, so rebuilding these per render would recompile
93
+ // them every time a sheet renders.
94
+ const {
95
+ align: _alignPropDef,
96
+ panelBackground: panelBackgroundPropDef,
97
+ material: materialPropDef,
98
+ ...dialogPropDefsForSheet
99
+ } = dialogContentPropDefs;
100
+
101
+ const materialPropDefs = {
102
+ panelBackground: panelBackgroundPropDef,
103
+ material: materialPropDef,
104
+ };
105
+
106
+ // Override dialog's default maxWidth (600px) to avoid clamping Sheet by default
107
+ const { default: _mwDefault, ...maxWidthWithoutDefault } = dialogPropDefsForSheet.maxWidth;
108
+ const sheetPropDefs = {
109
+ ...dialogPropDefsForSheet,
110
+ maxWidth: maxWidthWithoutDefault,
111
+ } as typeof dialogPropDefsForSheet;
112
+
88
113
  type SheetContentElement = React.ElementRef<typeof DialogPrimitive.Content>;
89
114
  interface SheetContentProps
90
115
  extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,
@@ -120,40 +145,18 @@ const Content = React.forwardRef<SheetContentElement, SheetContentProps>(
120
145
  bottom: 'bottom',
121
146
  };
122
147
  const normalizedSide = normalizedSideMap[side];
123
- // Reuse dialog content prop defs for size/width/height tokens, but handle
124
- // material/panelBackground explicitly to avoid forwarding unknown DOM props.
125
- const {
126
- align: _alignPropDef,
127
- panelBackground: panelBackgroundPropDef,
128
- material: materialPropDef,
129
- ...propDefs
130
- } = dialogContentPropDefs;
131
-
132
148
  // Extract panelBackground and material together (remove from DOM props)
133
149
  const { panelBackground: resolvedPanelBackground, material: resolvedMaterial } = extractProps(
134
150
  { panelBackground: panelBackgroundProp, material: materialProp },
135
- { panelBackground: panelBackgroundPropDef, material: materialPropDef },
151
+ materialPropDefs,
136
152
  );
137
153
 
138
- const materialValue = React.useMemo(() => {
139
- if (resolvedPanelBackground !== undefined) {
140
- if (process.env.NODE_ENV !== 'production') {
141
- console.warn(
142
- 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use the `material` prop instead.',
143
- );
144
- }
145
- }
146
- return resolvedMaterial ?? resolvedPanelBackground;
147
- }, [resolvedMaterial, resolvedPanelBackground]);
154
+ useDeprecatedPanelBackgroundWarning(panelBackgroundProp);
155
+
156
+ // Material takes precedence over the deprecated panelBackground
157
+ const materialValue = resolvedMaterial ?? resolvedPanelBackground;
148
158
 
149
- // Now extract remaining props using dialog defs so size/width/height classnames are applied
150
- // Override dialog's default maxWidth (600px) to avoid clamping Sheet by default
151
- // Match dialog.tsx: extract once and avoid leaking panel/material
152
- const { default: _mwDefault, ...maxWidthWithoutDefault } = propDefs.maxWidth;
153
- const sheetPropDefs = {
154
- ...propDefs,
155
- maxWidth: maxWidthWithoutDefault,
156
- } as typeof propDefs;
159
+ // Size/width/height class names come from the dialog defs — see `sheetPropDefs`.
157
160
  const { className: extractedClassName, ...contentProps } = extractProps(
158
161
  restProps,
159
162
  sheetPropDefs,