@womp/kookie-ui 0.3.24 → 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 (548) 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.d.ts.map +1 -1
  118. package/dist/cjs/components/shell.js +1 -1
  119. package/dist/cjs/components/shell.js.map +4 -4
  120. package/dist/cjs/components/sidebar.js +1 -1
  121. package/dist/cjs/components/sidebar.js.map +4 -4
  122. package/dist/cjs/components/skeleton.js +1 -1
  123. package/dist/cjs/components/skeleton.js.map +4 -4
  124. package/dist/cjs/components/slider.js +1 -1
  125. package/dist/cjs/components/slider.js.map +4 -4
  126. package/dist/cjs/components/spinner.js +1 -1
  127. package/dist/cjs/components/spinner.js.map +4 -4
  128. package/dist/cjs/components/strong.js +1 -1
  129. package/dist/cjs/components/strong.js.map +4 -4
  130. package/dist/cjs/components/switch.js +1 -1
  131. package/dist/cjs/components/switch.js.map +4 -4
  132. package/dist/cjs/components/tab-nav.js +1 -1
  133. package/dist/cjs/components/tab-nav.js.map +4 -4
  134. package/dist/cjs/components/table.js +1 -1
  135. package/dist/cjs/components/table.js.map +4 -4
  136. package/dist/cjs/components/tabs.js +1 -1
  137. package/dist/cjs/components/tabs.js.map +4 -4
  138. package/dist/cjs/components/text-area.js +1 -1
  139. package/dist/cjs/components/text-area.js.map +4 -4
  140. package/dist/cjs/components/text-field.js +2 -2
  141. package/dist/cjs/components/text-field.js.map +4 -4
  142. package/dist/cjs/components/text.js +1 -1
  143. package/dist/cjs/components/text.js.map +4 -4
  144. package/dist/cjs/components/theme-panel.js +3 -3
  145. package/dist/cjs/components/theme-panel.js.map +4 -4
  146. package/dist/cjs/components/theme.d.ts.map +1 -1
  147. package/dist/cjs/components/theme.js +1 -1
  148. package/dist/cjs/components/theme.js.map +4 -4
  149. package/dist/cjs/components/toggle-button.js +2 -2
  150. package/dist/cjs/components/toggle-button.js.map +4 -4
  151. package/dist/cjs/components/toggle-icon-button.js +3 -3
  152. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  153. package/dist/cjs/components/toolbar.js +1 -1
  154. package/dist/cjs/components/toolbar.js.map +4 -4
  155. package/dist/cjs/components/tooltip.js +1 -1
  156. package/dist/cjs/components/tooltip.js.map +4 -4
  157. package/dist/cjs/components/user-card.js +1 -1
  158. package/dist/cjs/components/user-card.js.map +4 -4
  159. package/dist/cjs/helpers/compile-prop-defs.d.ts +49 -0
  160. package/dist/cjs/helpers/compile-prop-defs.d.ts.map +1 -0
  161. package/dist/cjs/helpers/compile-prop-defs.js +2 -0
  162. package/dist/cjs/helpers/compile-prop-defs.js.map +7 -0
  163. package/dist/cjs/helpers/extract-props.d.ts.map +1 -1
  164. package/dist/cjs/helpers/extract-props.js +1 -1
  165. package/dist/cjs/helpers/extract-props.js.map +4 -4
  166. package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -1
  167. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  168. package/dist/cjs/helpers/get-margin-styles.js.map +3 -3
  169. package/dist/cjs/helpers/get-responsive-styles.d.ts +5 -2
  170. package/dist/cjs/helpers/get-responsive-styles.d.ts.map +1 -1
  171. package/dist/cjs/helpers/get-responsive-styles.js +1 -1
  172. package/dist/cjs/helpers/get-responsive-styles.js.map +3 -3
  173. package/dist/cjs/helpers/index.js +2 -2
  174. package/dist/cjs/helpers/index.js.map +4 -4
  175. package/dist/cjs/helpers/use-deprecation-warning.d.ts +10 -0
  176. package/dist/cjs/helpers/use-deprecation-warning.d.ts.map +1 -0
  177. package/dist/cjs/helpers/use-deprecation-warning.js +2 -0
  178. package/dist/cjs/helpers/use-deprecation-warning.js.map +7 -0
  179. package/dist/cjs/hooks/index.js +2 -2
  180. package/dist/cjs/hooks/index.js.map +3 -3
  181. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  182. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +1 -1
  183. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +3 -3
  184. package/dist/cjs/hooks/use-breakpoint.d.ts +7 -3
  185. package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
  186. package/dist/cjs/hooks/use-breakpoint.js +1 -1
  187. package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
  188. package/dist/cjs/hooks/use-prop-synced-state.d.ts +14 -0
  189. package/dist/cjs/hooks/use-prop-synced-state.d.ts.map +1 -0
  190. package/dist/cjs/hooks/use-prop-synced-state.js +2 -0
  191. package/dist/cjs/hooks/use-prop-synced-state.js.map +7 -0
  192. package/dist/cjs/index.js +5 -5
  193. package/dist/cjs/index.js.map +4 -4
  194. package/dist/esm/{chunk-RQ2ZPMHJ.js → chunk-22HGLMPQ.js} +2 -2
  195. package/dist/esm/{chunk-WYA4IRU6.js → chunk-25WZA7ZU.js} +2 -2
  196. package/dist/esm/chunk-2UPAYDKR.js +2 -0
  197. package/dist/esm/chunk-2UPAYDKR.js.map +7 -0
  198. package/dist/esm/{chunk-XHQGMOXV.js → chunk-36ZQVP7F.js} +2 -2
  199. package/dist/esm/{chunk-K3R4AH3E.js → chunk-3MWWP4MW.js} +2 -2
  200. package/dist/esm/{chunk-HQ35PM4O.js → chunk-43A5GUSI.js} +2 -2
  201. package/dist/esm/{chunk-Z5DQ6FSA.js → chunk-4AQTUBVP.js} +2 -2
  202. package/dist/esm/{chunk-25U7DENY.js → chunk-4BBOHEF4.js} +2 -2
  203. package/dist/esm/chunk-4CKDU6FY.js +2 -0
  204. package/dist/esm/chunk-4CKDU6FY.js.map +7 -0
  205. package/dist/esm/{chunk-ZSEFZM5H.js → chunk-4IY2PR6N.js} +2 -2
  206. package/dist/esm/{chunk-QLIELX4I.js → chunk-4ME6O27S.js} +2 -2
  207. package/dist/esm/chunk-4XJY6FIK.js +2 -0
  208. package/dist/esm/chunk-4XJY6FIK.js.map +7 -0
  209. package/dist/esm/{chunk-JQOFJNCV.js → chunk-4YFJWXL2.js} +2 -2
  210. package/dist/esm/{chunk-DNI4QRXQ.js → chunk-5IBGFL6O.js} +2 -2
  211. package/dist/esm/chunk-5TXQLK4G.js +2 -0
  212. package/dist/esm/chunk-5TXQLK4G.js.map +7 -0
  213. package/dist/esm/{chunk-IPJUHVM6.js → chunk-666GX7O5.js} +2 -2
  214. package/dist/esm/chunk-6FLLFCBU.js +2 -0
  215. package/dist/esm/chunk-6FLLFCBU.js.map +7 -0
  216. package/dist/esm/{chunk-DJBPM5QK.js → chunk-7FC7HF76.js} +2 -2
  217. package/dist/esm/{chunk-SVLY6B5F.js → chunk-7QDTSBJF.js} +2 -2
  218. package/dist/esm/chunk-AX5S56DS.js +2 -0
  219. package/dist/esm/chunk-AX5S56DS.js.map +7 -0
  220. package/dist/esm/{chunk-DK5MHD6I.js → chunk-B24BDVG2.js} +2 -2
  221. package/dist/esm/{chunk-WZCZHCVE.js → chunk-BJYUPIXO.js} +2 -2
  222. package/dist/esm/{chunk-BJTJUIYJ.js → chunk-CRWYCLTE.js} +2 -2
  223. package/dist/esm/{chunk-OHJVFZMH.js → chunk-CSKZZOI2.js} +2 -2
  224. package/dist/esm/chunk-D5N627TH.js +2 -0
  225. package/dist/esm/chunk-D5N627TH.js.map +7 -0
  226. package/dist/esm/{chunk-ADYTQCZX.js → chunk-D6B7IMZU.js} +2 -2
  227. package/dist/esm/chunk-DL2O3GKG.js +2 -0
  228. package/dist/esm/chunk-DL2O3GKG.js.map +7 -0
  229. package/dist/esm/{chunk-USGTBZ43.js → chunk-E67CIG6A.js} +2 -2
  230. package/dist/esm/{chunk-42HFGCHX.js → chunk-ETMLMDW4.js} +2 -2
  231. package/dist/esm/{chunk-7CBAHIVG.js → chunk-F2HYQ3ZR.js} +2 -2
  232. package/dist/esm/{chunk-YUZPSUJE.js → chunk-F7IYL2VW.js} +2 -2
  233. package/dist/esm/{chunk-FVCWNSRU.js → chunk-FHOCUZDR.js} +2 -2
  234. package/dist/esm/{chunk-7MURQ6CR.js → chunk-FLFAXVFB.js} +2 -2
  235. package/dist/esm/{chunk-APRBRAOT.js → chunk-FOEZLQTW.js} +2 -2
  236. package/dist/esm/{chunk-WNSPLWRV.js → chunk-GJSGKE7B.js} +2 -2
  237. package/dist/esm/{chunk-OGOOZLUD.js → chunk-GLERJXVS.js} +2 -2
  238. package/dist/esm/{chunk-6VGPTAHM.js → chunk-GWXVETMF.js} +2 -2
  239. package/dist/esm/{chunk-ES7MK2MM.js → chunk-GYBLXQ4R.js} +2 -2
  240. package/dist/esm/{chunk-4OBMRJHC.js → chunk-H7ST535H.js} +2 -2
  241. package/dist/esm/{chunk-QLZ5XAW6.js → chunk-HF5WY5YE.js} +2 -2
  242. package/dist/esm/chunk-ICIGZ3N7.js +2 -0
  243. package/dist/esm/chunk-ICIGZ3N7.js.map +7 -0
  244. package/dist/esm/{chunk-RDP4UQ42.js → chunk-IEWCQU2S.js} +2 -2
  245. package/dist/esm/{chunk-XLOHPURR.js → chunk-IHK3H2OM.js} +2 -2
  246. package/dist/esm/{chunk-3F6I7YOR.js → chunk-JDGJSNWT.js} +2 -2
  247. package/dist/esm/chunk-JQQIPEGY.js +2 -0
  248. package/dist/esm/chunk-JQQIPEGY.js.map +7 -0
  249. package/dist/esm/chunk-JR2YOGII.js +2 -0
  250. package/dist/esm/chunk-JR2YOGII.js.map +7 -0
  251. package/dist/esm/chunk-JUY7CBSL.js +2 -0
  252. package/dist/esm/chunk-JUY7CBSL.js.map +7 -0
  253. package/dist/esm/{chunk-VF5TRT3H.js → chunk-KKM6T5P7.js} +2 -2
  254. package/dist/esm/{chunk-ZHYOJNWV.js → chunk-LKAK5GXF.js} +2 -2
  255. package/dist/esm/chunk-LOGJJF4I.js +2 -0
  256. package/dist/esm/chunk-LOGJJF4I.js.map +7 -0
  257. package/dist/esm/{chunk-JCYI4NTV.js → chunk-MBCBP73P.js} +2 -2
  258. package/dist/esm/{chunk-UYNYUR7O.js → chunk-MBE2YSBU.js} +2 -2
  259. package/dist/esm/chunk-MHANZINI.js +2 -0
  260. package/dist/esm/chunk-MHANZINI.js.map +7 -0
  261. package/dist/esm/chunk-MRECKC4D.js +2 -0
  262. package/dist/esm/chunk-MRECKC4D.js.map +7 -0
  263. package/dist/esm/{chunk-H2G446JG.js → chunk-NMKPFUNP.js} +2 -2
  264. package/dist/esm/{chunk-4N5JU7XQ.js → chunk-O3CDWEZA.js} +2 -2
  265. package/dist/esm/{chunk-TEULZKBM.js → chunk-OGXZHAQL.js} +2 -2
  266. package/dist/esm/{chunk-2AEELIG6.js → chunk-OWAUCLRT.js} +2 -2
  267. package/dist/esm/{chunk-7CXVHFMQ.js → chunk-P7HYVJSU.js} +2 -2
  268. package/dist/esm/{chunk-4532RT2B.js → chunk-P7IAHW4V.js} +2 -2
  269. package/dist/esm/{chunk-M3ZYJANH.js → chunk-PQZXQ4ST.js} +2 -2
  270. package/dist/esm/{chunk-SGU4HUHF.js → chunk-PTLFMWCN.js} +2 -2
  271. package/dist/esm/chunk-S2HA3W3V.js +2 -0
  272. package/dist/esm/chunk-S2HA3W3V.js.map +7 -0
  273. package/dist/esm/{chunk-E6IWYD3U.js → chunk-S5C5YRBS.js} +2 -2
  274. package/dist/esm/{chunk-A24PYRVV.js → chunk-SO67YEVQ.js} +2 -2
  275. package/dist/esm/chunk-TLWTUKKL.js +2 -0
  276. package/dist/esm/chunk-TLWTUKKL.js.map +7 -0
  277. package/dist/esm/{chunk-HACQF6F4.js → chunk-TOOSHJOA.js} +2 -2
  278. package/dist/esm/{chunk-QOWA5LK5.js → chunk-U2X2CAW4.js} +2 -2
  279. package/dist/esm/{chunk-U7AASKZI.js → chunk-UVCH7QKO.js} +2 -2
  280. package/dist/esm/{chunk-GWYFT3EI.js → chunk-VLO7NXSP.js} +2 -2
  281. package/dist/esm/{chunk-DXI5P5O4.js → chunk-VX6ARMWP.js} +2 -2
  282. package/dist/esm/chunk-WAURCNAS.js +2 -0
  283. package/dist/esm/chunk-WAURCNAS.js.map +7 -0
  284. package/dist/esm/{chunk-EJWAAFCI.js → chunk-WO43WW3A.js} +2 -2
  285. package/dist/esm/{chunk-GLC4QJBF.js → chunk-WTYNFBFV.js} +2 -2
  286. package/dist/esm/{chunk-6FAICIYS.js → chunk-XMRIRFM7.js} +2 -2
  287. package/dist/esm/chunk-YV2KYHGR.js +2 -0
  288. package/dist/esm/chunk-YV2KYHGR.js.map +7 -0
  289. package/dist/esm/{chunk-UIEUZLZZ.js → chunk-ZY6SQWHT.js} +2 -2
  290. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  291. package/dist/esm/components/_internal/base-button.js +1 -1
  292. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
  293. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  294. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  295. package/dist/esm/components/_internal/shell-handles.js +1 -1
  296. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  297. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  298. package/dist/esm/components/accordion.d.ts.map +1 -1
  299. package/dist/esm/components/accordion.js +1 -1
  300. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  301. package/dist/esm/components/alert-dialog.js +1 -1
  302. package/dist/esm/components/avatar.js +1 -1
  303. package/dist/esm/components/badge.d.ts.map +1 -1
  304. package/dist/esm/components/badge.js +1 -1
  305. package/dist/esm/components/blockquote.js +1 -1
  306. package/dist/esm/components/box.js +1 -1
  307. package/dist/esm/components/button.js +1 -1
  308. package/dist/esm/components/callout.js +1 -1
  309. package/dist/esm/components/card.js +1 -1
  310. package/dist/esm/components/chatbar.js +1 -1
  311. package/dist/esm/components/checkbox-cards.js +1 -1
  312. package/dist/esm/components/checkbox-group.js +1 -1
  313. package/dist/esm/components/checkbox.js +1 -1
  314. package/dist/esm/components/code.js +1 -1
  315. package/dist/esm/components/combobox.js +1 -1
  316. package/dist/esm/components/container.js +1 -1
  317. package/dist/esm/components/context-menu.d.ts.map +1 -1
  318. package/dist/esm/components/context-menu.js +1 -1
  319. package/dist/esm/components/data-list.js +1 -1
  320. package/dist/esm/components/dialog.d.ts.map +1 -1
  321. package/dist/esm/components/dialog.js +1 -1
  322. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  323. package/dist/esm/components/dropdown-menu.js +1 -1
  324. package/dist/esm/components/em.js +1 -1
  325. package/dist/esm/components/flex.js +1 -1
  326. package/dist/esm/components/grid.js +1 -1
  327. package/dist/esm/components/heading.js +1 -1
  328. package/dist/esm/components/hover-card.js +1 -1
  329. package/dist/esm/components/icon-button.js +1 -1
  330. package/dist/esm/components/image.js +1 -1
  331. package/dist/esm/components/index.js +1 -1
  332. package/dist/esm/components/inset.js +1 -1
  333. package/dist/esm/components/kbd.js +1 -1
  334. package/dist/esm/components/link.js +1 -1
  335. package/dist/esm/components/navbar.js +1 -1
  336. package/dist/esm/components/popover.js +1 -1
  337. package/dist/esm/components/progress.js +1 -1
  338. package/dist/esm/components/quote.js +1 -1
  339. package/dist/esm/components/radio-cards.js +1 -1
  340. package/dist/esm/components/radio-group.js +1 -1
  341. package/dist/esm/components/radio.js +1 -1
  342. package/dist/esm/components/schemas/base-button.schema.d.ts +2 -2
  343. package/dist/esm/components/schemas/button.schema.d.ts +2 -2
  344. package/dist/esm/components/schemas/icon-button.schema.d.ts +4 -4
  345. package/dist/esm/components/schemas/shell.schema.d.ts +2 -2
  346. package/dist/esm/components/schemas/toggle-button.schema.d.ts +6 -6
  347. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +8 -8
  348. package/dist/esm/components/scroll-area.js +1 -1
  349. package/dist/esm/components/section.js +1 -1
  350. package/dist/esm/components/segmented-control.js +1 -1
  351. package/dist/esm/components/select.js +1 -1
  352. package/dist/esm/components/separator.js +1 -1
  353. package/dist/esm/components/sheet.d.ts.map +1 -1
  354. package/dist/esm/components/sheet.js +1 -1
  355. package/dist/esm/components/shell.d.ts.map +1 -1
  356. package/dist/esm/components/shell.js +1 -1
  357. package/dist/esm/components/sidebar.js +1 -1
  358. package/dist/esm/components/skeleton.js +1 -1
  359. package/dist/esm/components/slider.js +1 -1
  360. package/dist/esm/components/spinner.js +1 -1
  361. package/dist/esm/components/strong.js +1 -1
  362. package/dist/esm/components/switch.js +1 -1
  363. package/dist/esm/components/tab-nav.js +1 -1
  364. package/dist/esm/components/table.js +1 -1
  365. package/dist/esm/components/tabs.js +1 -1
  366. package/dist/esm/components/text-area.js +1 -1
  367. package/dist/esm/components/text-field.js +1 -1
  368. package/dist/esm/components/text.js +1 -1
  369. package/dist/esm/components/theme-panel.js +1 -1
  370. package/dist/esm/components/theme.d.ts.map +1 -1
  371. package/dist/esm/components/theme.js +1 -1
  372. package/dist/esm/components/toggle-button.js +1 -1
  373. package/dist/esm/components/toggle-icon-button.js +1 -1
  374. package/dist/esm/components/toolbar.js +1 -1
  375. package/dist/esm/components/tooltip.js +1 -1
  376. package/dist/esm/components/user-card.js +1 -1
  377. package/dist/esm/helpers/compile-prop-defs.d.ts +49 -0
  378. package/dist/esm/helpers/compile-prop-defs.d.ts.map +1 -0
  379. package/dist/esm/helpers/compile-prop-defs.js +2 -0
  380. package/dist/esm/helpers/compile-prop-defs.js.map +7 -0
  381. package/dist/esm/helpers/extract-props.d.ts.map +1 -1
  382. package/dist/esm/helpers/extract-props.js +1 -1
  383. package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -1
  384. package/dist/esm/helpers/get-margin-styles.js +1 -1
  385. package/dist/esm/helpers/get-responsive-styles.d.ts +5 -2
  386. package/dist/esm/helpers/get-responsive-styles.d.ts.map +1 -1
  387. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  388. package/dist/esm/helpers/index.js +1 -1
  389. package/dist/esm/helpers/use-deprecation-warning.d.ts +10 -0
  390. package/dist/esm/helpers/use-deprecation-warning.d.ts.map +1 -0
  391. package/dist/esm/helpers/use-deprecation-warning.js +2 -0
  392. package/dist/esm/helpers/use-deprecation-warning.js.map +7 -0
  393. package/dist/esm/hooks/index.js +1 -1
  394. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  395. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
  396. package/dist/esm/hooks/use-breakpoint.d.ts +7 -3
  397. package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
  398. package/dist/esm/hooks/use-breakpoint.js +1 -1
  399. package/dist/esm/hooks/use-prop-synced-state.d.ts +14 -0
  400. package/dist/esm/hooks/use-prop-synced-state.d.ts.map +1 -0
  401. package/dist/esm/hooks/use-prop-synced-state.js +2 -0
  402. package/dist/esm/hooks/use-prop-synced-state.js.map +7 -0
  403. package/dist/esm/index.js +1 -1
  404. package/package.json +2 -1
  405. package/schemas/base-button.json +0 -1
  406. package/schemas/button.json +0 -1
  407. package/schemas/icon-button.json +0 -1
  408. package/schemas/index.json +0 -6
  409. package/schemas/toggle-button.json +0 -1
  410. package/schemas/toggle-icon-button.json +0 -1
  411. package/src/components/_internal/base-button.css +2 -2
  412. package/src/components/_internal/base-button.tsx +3 -58
  413. package/src/components/_internal/base-card.css +19 -4
  414. package/src/components/_internal/base-checkbox.css +2 -2
  415. package/src/components/_internal/base-dialog.css +7 -0
  416. package/src/components/_internal/base-menu.css +7 -0
  417. package/src/components/_internal/base-radio.css +2 -2
  418. package/src/components/_internal/base-sidebar.css +7 -0
  419. package/src/components/_internal/base-tab-list.css +2 -2
  420. package/src/components/_internal/shell-handles.tsx +27 -0
  421. package/src/components/accordion.css +6 -6
  422. package/src/components/accordion.tsx +2 -8
  423. package/src/components/alert-dialog.tsx +22 -20
  424. package/src/components/avatar.css +2 -2
  425. package/src/components/badge.css +2 -2
  426. package/src/components/badge.tsx +2 -8
  427. package/src/components/callout.css +2 -2
  428. package/src/components/chatbar.css +1 -1
  429. package/src/components/context-menu.tsx +2 -8
  430. package/src/components/dialog.tsx +22 -20
  431. package/src/components/dropdown-menu.tsx +2 -8
  432. package/src/components/popover.css +7 -0
  433. package/src/components/progress.css +21 -8
  434. package/src/components/segmented-control.css +2 -2
  435. package/src/components/select.css +9 -2
  436. package/src/components/sheet.tsx +31 -28
  437. package/src/components/shell.css +106 -69
  438. package/src/components/shell.tsx +28 -4
  439. package/src/components/slider.css +2 -2
  440. package/src/components/switch.css +2 -2
  441. package/src/components/table.css +7 -0
  442. package/src/components/text-area.css +2 -2
  443. package/src/components/text-field.css +2 -2
  444. package/src/components/theme.tsx +35 -34
  445. package/src/helpers/compile-prop-defs.ts +121 -0
  446. package/src/helpers/extract-props.ts +104 -83
  447. package/src/helpers/get-margin-styles.ts +38 -71
  448. package/src/helpers/get-responsive-styles.ts +37 -38
  449. package/src/helpers/use-deprecation-warning.ts +26 -0
  450. package/src/hooks/use-body-pointer-events-cleanup.ts +36 -6
  451. package/src/hooks/use-breakpoint.ts +94 -53
  452. package/src/hooks/use-prop-synced-state.ts +24 -0
  453. package/src/styles/tokens/blur.css +28 -0
  454. package/src/styles/tokens/color.css +3 -3
  455. package/src/styles/tokens/constants.css +11 -0
  456. package/styles.css +175 -117
  457. package/tokens/base.css +13 -3
  458. package/tokens.css +16 -3
  459. package/dist/esm/chunk-2SS3FA3N.js +0 -2
  460. package/dist/esm/chunk-2SS3FA3N.js.map +0 -7
  461. package/dist/esm/chunk-5U2Q23K3.js +0 -2
  462. package/dist/esm/chunk-5U2Q23K3.js.map +0 -7
  463. package/dist/esm/chunk-6ELPYR73.js +0 -2
  464. package/dist/esm/chunk-6ELPYR73.js.map +0 -7
  465. package/dist/esm/chunk-D2IX5LU6.js +0 -2
  466. package/dist/esm/chunk-D2IX5LU6.js.map +0 -7
  467. package/dist/esm/chunk-DZ4H2KTP.js +0 -2
  468. package/dist/esm/chunk-DZ4H2KTP.js.map +0 -7
  469. package/dist/esm/chunk-H4MMVAGQ.js +0 -2
  470. package/dist/esm/chunk-H4MMVAGQ.js.map +0 -7
  471. package/dist/esm/chunk-ITRVKLYU.js +0 -2
  472. package/dist/esm/chunk-ITRVKLYU.js.map +0 -7
  473. package/dist/esm/chunk-KCAFSCOV.js +0 -2
  474. package/dist/esm/chunk-KCAFSCOV.js.map +0 -7
  475. package/dist/esm/chunk-KMPBTEZH.js +0 -2
  476. package/dist/esm/chunk-KMPBTEZH.js.map +0 -7
  477. package/dist/esm/chunk-LN5SP46K.js +0 -2
  478. package/dist/esm/chunk-LN5SP46K.js.map +0 -7
  479. package/dist/esm/chunk-OKJNS7Z7.js +0 -2
  480. package/dist/esm/chunk-OKJNS7Z7.js.map +0 -7
  481. package/dist/esm/chunk-Q73Y5O5P.js +0 -2
  482. package/dist/esm/chunk-Q73Y5O5P.js.map +0 -7
  483. package/dist/esm/chunk-UUX42HBM.js +0 -2
  484. package/dist/esm/chunk-UUX42HBM.js.map +0 -7
  485. package/dist/esm/chunk-X7BD5FLE.js +0 -2
  486. package/dist/esm/chunk-X7BD5FLE.js.map +0 -7
  487. package/dist/esm/chunk-YEA646GM.js +0 -2
  488. package/dist/esm/chunk-YEA646GM.js.map +0 -7
  489. package/dist/esm/chunk-ZMEXIPWM.js +0 -2
  490. package/dist/esm/chunk-ZMEXIPWM.js.map +0 -7
  491. /package/dist/esm/{chunk-RQ2ZPMHJ.js.map → chunk-22HGLMPQ.js.map} +0 -0
  492. /package/dist/esm/{chunk-WYA4IRU6.js.map → chunk-25WZA7ZU.js.map} +0 -0
  493. /package/dist/esm/{chunk-XHQGMOXV.js.map → chunk-36ZQVP7F.js.map} +0 -0
  494. /package/dist/esm/{chunk-K3R4AH3E.js.map → chunk-3MWWP4MW.js.map} +0 -0
  495. /package/dist/esm/{chunk-HQ35PM4O.js.map → chunk-43A5GUSI.js.map} +0 -0
  496. /package/dist/esm/{chunk-Z5DQ6FSA.js.map → chunk-4AQTUBVP.js.map} +0 -0
  497. /package/dist/esm/{chunk-25U7DENY.js.map → chunk-4BBOHEF4.js.map} +0 -0
  498. /package/dist/esm/{chunk-ZSEFZM5H.js.map → chunk-4IY2PR6N.js.map} +0 -0
  499. /package/dist/esm/{chunk-QLIELX4I.js.map → chunk-4ME6O27S.js.map} +0 -0
  500. /package/dist/esm/{chunk-JQOFJNCV.js.map → chunk-4YFJWXL2.js.map} +0 -0
  501. /package/dist/esm/{chunk-DNI4QRXQ.js.map → chunk-5IBGFL6O.js.map} +0 -0
  502. /package/dist/esm/{chunk-IPJUHVM6.js.map → chunk-666GX7O5.js.map} +0 -0
  503. /package/dist/esm/{chunk-DJBPM5QK.js.map → chunk-7FC7HF76.js.map} +0 -0
  504. /package/dist/esm/{chunk-SVLY6B5F.js.map → chunk-7QDTSBJF.js.map} +0 -0
  505. /package/dist/esm/{chunk-DK5MHD6I.js.map → chunk-B24BDVG2.js.map} +0 -0
  506. /package/dist/esm/{chunk-WZCZHCVE.js.map → chunk-BJYUPIXO.js.map} +0 -0
  507. /package/dist/esm/{chunk-BJTJUIYJ.js.map → chunk-CRWYCLTE.js.map} +0 -0
  508. /package/dist/esm/{chunk-OHJVFZMH.js.map → chunk-CSKZZOI2.js.map} +0 -0
  509. /package/dist/esm/{chunk-ADYTQCZX.js.map → chunk-D6B7IMZU.js.map} +0 -0
  510. /package/dist/esm/{chunk-USGTBZ43.js.map → chunk-E67CIG6A.js.map} +0 -0
  511. /package/dist/esm/{chunk-42HFGCHX.js.map → chunk-ETMLMDW4.js.map} +0 -0
  512. /package/dist/esm/{chunk-7CBAHIVG.js.map → chunk-F2HYQ3ZR.js.map} +0 -0
  513. /package/dist/esm/{chunk-YUZPSUJE.js.map → chunk-F7IYL2VW.js.map} +0 -0
  514. /package/dist/esm/{chunk-FVCWNSRU.js.map → chunk-FHOCUZDR.js.map} +0 -0
  515. /package/dist/esm/{chunk-7MURQ6CR.js.map → chunk-FLFAXVFB.js.map} +0 -0
  516. /package/dist/esm/{chunk-APRBRAOT.js.map → chunk-FOEZLQTW.js.map} +0 -0
  517. /package/dist/esm/{chunk-WNSPLWRV.js.map → chunk-GJSGKE7B.js.map} +0 -0
  518. /package/dist/esm/{chunk-OGOOZLUD.js.map → chunk-GLERJXVS.js.map} +0 -0
  519. /package/dist/esm/{chunk-6VGPTAHM.js.map → chunk-GWXVETMF.js.map} +0 -0
  520. /package/dist/esm/{chunk-ES7MK2MM.js.map → chunk-GYBLXQ4R.js.map} +0 -0
  521. /package/dist/esm/{chunk-4OBMRJHC.js.map → chunk-H7ST535H.js.map} +0 -0
  522. /package/dist/esm/{chunk-QLZ5XAW6.js.map → chunk-HF5WY5YE.js.map} +0 -0
  523. /package/dist/esm/{chunk-RDP4UQ42.js.map → chunk-IEWCQU2S.js.map} +0 -0
  524. /package/dist/esm/{chunk-XLOHPURR.js.map → chunk-IHK3H2OM.js.map} +0 -0
  525. /package/dist/esm/{chunk-3F6I7YOR.js.map → chunk-JDGJSNWT.js.map} +0 -0
  526. /package/dist/esm/{chunk-VF5TRT3H.js.map → chunk-KKM6T5P7.js.map} +0 -0
  527. /package/dist/esm/{chunk-ZHYOJNWV.js.map → chunk-LKAK5GXF.js.map} +0 -0
  528. /package/dist/esm/{chunk-JCYI4NTV.js.map → chunk-MBCBP73P.js.map} +0 -0
  529. /package/dist/esm/{chunk-UYNYUR7O.js.map → chunk-MBE2YSBU.js.map} +0 -0
  530. /package/dist/esm/{chunk-H2G446JG.js.map → chunk-NMKPFUNP.js.map} +0 -0
  531. /package/dist/esm/{chunk-4N5JU7XQ.js.map → chunk-O3CDWEZA.js.map} +0 -0
  532. /package/dist/esm/{chunk-TEULZKBM.js.map → chunk-OGXZHAQL.js.map} +0 -0
  533. /package/dist/esm/{chunk-2AEELIG6.js.map → chunk-OWAUCLRT.js.map} +0 -0
  534. /package/dist/esm/{chunk-7CXVHFMQ.js.map → chunk-P7HYVJSU.js.map} +0 -0
  535. /package/dist/esm/{chunk-4532RT2B.js.map → chunk-P7IAHW4V.js.map} +0 -0
  536. /package/dist/esm/{chunk-M3ZYJANH.js.map → chunk-PQZXQ4ST.js.map} +0 -0
  537. /package/dist/esm/{chunk-SGU4HUHF.js.map → chunk-PTLFMWCN.js.map} +0 -0
  538. /package/dist/esm/{chunk-E6IWYD3U.js.map → chunk-S5C5YRBS.js.map} +0 -0
  539. /package/dist/esm/{chunk-A24PYRVV.js.map → chunk-SO67YEVQ.js.map} +0 -0
  540. /package/dist/esm/{chunk-HACQF6F4.js.map → chunk-TOOSHJOA.js.map} +0 -0
  541. /package/dist/esm/{chunk-QOWA5LK5.js.map → chunk-U2X2CAW4.js.map} +0 -0
  542. /package/dist/esm/{chunk-U7AASKZI.js.map → chunk-UVCH7QKO.js.map} +0 -0
  543. /package/dist/esm/{chunk-GWYFT3EI.js.map → chunk-VLO7NXSP.js.map} +0 -0
  544. /package/dist/esm/{chunk-DXI5P5O4.js.map → chunk-VX6ARMWP.js.map} +0 -0
  545. /package/dist/esm/{chunk-EJWAAFCI.js.map → chunk-WO43WW3A.js.map} +0 -0
  546. /package/dist/esm/{chunk-GLC4QJBF.js.map → chunk-WTYNFBFV.js.map} +0 -0
  547. /package/dist/esm/{chunk-6FAICIYS.js.map → chunk-XMRIRFM7.js.map} +0 -0
  548. /package/dist/esm/{chunk-UIEUZLZZ.js.map → chunk-ZY6SQWHT.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{a as T}from"./chunk-USGTBZ43.js";import{a as y}from"./chunk-WNSPLWRV.js";import{b as H,c as K,d as S,e as A,f as j}from"./chunk-IX5HIHVI.js";import{a as V}from"./chunk-MJJ7XDIP.js";import{b as z,c as h}from"./chunk-LN5SP46K.js";import{a as C}from"./chunk-KMPBTEZH.js";import{b as M,c as B,d as G,e as L,f as W}from"./chunk-HUKPWYG2.js";import{d as O,g as b,h as f,i as I,j as g}from"./chunk-UIEUZLZZ.js";import{a as _}from"./chunk-QCNUTT4R.js";import{a as ie}from"./chunk-3XT5P2HO.js";var ce={};ie(ce,{CheckboxItem:()=>ee,Content:()=>J,Group:()=>Y,Item:()=>X,Label:()=>Q,RadioGroup:()=>Z,RadioItem:()=>$,Root:()=>F,Separator:()=>x,Sub:()=>oe,SubContent:()=>re,SubTrigger:()=>ne,Trigger:()=>q,TriggerIcon:()=>te});import*as e from"react";import d from"classnames";import{DropdownMenu as u,Slot as pe}from"radix-ui";var F=o=>e.createElement(u.Root,{...o});F.displayName="DropdownMenu.Root";var q=e.forwardRef(({children:o,...n},r)=>e.createElement(u.Trigger,{...n,ref:r,asChild:!0},V(o)));q.displayName="DropdownMenu.Trigger";function ue({children:o}){let n=f();return!n||n.behavior==="cascade"?e.createElement(e.Fragment,null,o):e.createElement("div",{className:"rt-DropdownMenuDrillDownRoot","data-drill-down-active":n.isRoot?void 0:!0,"data-animation-direction":n.animationDirection??void 0},o)}var U=e.createContext({}),J=e.forwardRef((o,n)=>{let r=z();e.useEffect(()=>{o.panelBackground!==void 0&&console.warn("Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.")},[o.panelBackground]);let a=o.material??o.panelBackground??r.panelBackground,t=e.useMemo(()=>({material:a,accentColor:r.accentColor}),[a,r.accentColor]),{size:s=M.size.default,variant:p=M.variant.default,highContrast:l=M.highContrast.default,material:i=t.material,submenuBehavior:m,virtualized:w=!1}=o,{className:D,children:c,color:P,container:N,forceMount:R,material:E,panelBackground:le,submenuBehavior:me,virtualized:we,...ae}=C(o,M),v=e.useMemo(()=>P||t.accentColor,[P,t.accentColor]),k=e.createElement(_,{size:s},e.createElement(U.Provider,{value:e.useMemo(()=>({size:s,variant:p,color:v,highContrast:l,material:i}),[s,p,v,l,i])},e.createElement(O,{submenuBehavior:m},e.createElement(ue,null,c))));return e.createElement(u.Portal,{container:N,forceMount:R},e.createElement(h,{asChild:!0},e.createElement(u.Content,{"data-accent-color":v,"data-material":i,"data-panel-background":i,align:"start",sideOffset:4,collisionPadding:10,...ae,asChild:!1,ref:n,className:d("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",D)},w?e.createElement("div",{className:d("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},k):e.createElement(y,{type:"auto"},e.createElement("div",{className:d("rt-BaseMenuViewport","rt-DropdownMenuViewport")},k)))))});J.displayName="DropdownMenu.Content";var Q=e.forwardRef(({className:o,...n},r)=>e.createElement(u.Label,{...n,asChild:!1,ref:r,className:d("rt-BaseMenuLabel","rt-DropdownMenuLabel",o)}));Q.displayName="DropdownMenu.Label";var X=e.forwardRef((o,n)=>{let{className:r,children:a,color:t=G.color.default,shortcut:s,...p}=o;return e.createElement(u.Item,{"data-accent-color":t,...p,ref:n,className:d("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",r)},e.createElement(pe.Slottable,null,a),s&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(T,{size:"1"},s)))});X.displayName="DropdownMenu.Item";var Y=e.forwardRef(({className:o,...n},r)=>e.createElement(u.Group,{...n,asChild:!1,ref:r,className:d("rt-BaseMenuGroup","rt-DropdownMenuGroup",o)}));Y.displayName="DropdownMenu.Group";var Z=e.forwardRef(({className:o,...n},r)=>e.createElement(u.RadioGroup,{...n,asChild:!1,ref:r,className:d("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",o)}));Z.displayName="DropdownMenu.RadioGroup";var $=e.forwardRef((o,n)=>{let{children:r,className:a,color:t=W.color.default,...s}=o;return e.createElement(u.RadioItem,{...s,asChild:!1,ref:n,"data-accent-color":t,className:d("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",a)},r,e.createElement(u.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(j,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});$.displayName="DropdownMenu.RadioItem";var ee=e.forwardRef((o,n)=>{let{children:r,className:a,shortcut:t,color:s=L.color.default,...p}=o;return e.createElement(u.CheckboxItem,{...p,asChild:!1,ref:n,"data-accent-color":s,className:d("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",a)},r,e.createElement(u.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(H,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),t&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(T,{size:"1"},t)))});ee.displayName="DropdownMenu.CheckboxItem";function de(){return e.useId()}var oe=({label:o="Back",...n})=>{let r=f(),a=de(),t=e.useMemo(()=>({id:a,label:o}),[a,o]);return r?.behavior==="drill-down"?e.createElement(I.Provider,{value:t},n.children):e.createElement(I.Provider,{value:t},e.createElement(u.Sub,{...n}))};oe.displayName="DropdownMenu.Sub";var ne=e.forwardRef((o,n)=>{let{className:r,children:a,onClick:t,...s}=o,p=b(),l=f(),i=g(),m=e.useRef(t);m.current=t;let w=e.useCallback(c=>{c.preventDefault(),i&&p&&p.push(i.id),m.current?.(c)},[i,p]),D=e.useCallback(c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),i&&p&&p.push(i.id))},[i,p]);return l?.behavior==="drill-down"&&i?e.createElement("div",{role:"menuitem",tabIndex:0,ref:n,onClick:w,onKeyDown:D,className:d("rt-reset","rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger","rt-DropdownMenuDrillDownSubTrigger",r)},a,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(S,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"}))):e.createElement(u.SubTrigger,{...s,onClick:t,asChild:!1,ref:n,className:d("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",r)},a,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(S,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});ne.displayName="DropdownMenu.SubTrigger";var x=e.forwardRef(({className:o,...n},r)=>e.createElement(u.Separator,{...n,asChild:!1,ref:r,className:d("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",o)}));x.displayName="DropdownMenu.Separator";function se({label:o}){let{pop:n}=b()??{},r=e.useCallback(t=>{t.preventDefault(),n?.()},[n]),a=e.useCallback(t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),n?.())},[n]);return e.createElement("div",{role:"menuitem",tabIndex:0,onClick:r,onKeyDown:a,className:d("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem","rt-DropdownMenuDrillDownBackItem")},e.createElement(A,{className:"rt-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"rt-DropdownMenuDrillDownBackLabel"},o))}var re=e.forwardRef((o,n)=>{let{size:r,variant:a,color:t,highContrast:s,material:p}=e.useContext(U),l=f(),i=g(),{className:m,children:w,container:D,forceMount:c,material:P,panelBackground:N,...R}=C({size:r,variant:a,color:t,highContrast:s,material:p,...o},B);if(l?.behavior==="drill-down"&&i){let E=l.isActive(i.id);return e.createElement("div",{ref:n,role:"menu","aria-label":typeof i.label=="string"?i.label:void 0,"data-drill-down-active":E?!0:void 0,"data-animation-direction":l.animationDirection??void 0,className:d("rt-DropdownMenuDrillDownPanel",m)},e.createElement(se,{label:i.label}),e.createElement(x,null),w)}return e.createElement(u.Portal,{container:D,forceMount:c},e.createElement(h,{asChild:!0},e.createElement(u.SubContent,{"data-accent-color":t,"data-material":p,"data-panel-background":p,alignOffset:-Number(r)*4,sideOffset:1,collisionPadding:10,...R,asChild:!1,ref:n,className:d("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",m)},e.createElement(y,{type:"auto"},e.createElement("div",{className:d("rt-BaseMenuViewport","rt-DropdownMenuViewport")},w)))))});re.displayName="DropdownMenu.SubContent";var te=e.forwardRef((o,n)=>e.createElement(K,{...o,ref:n,className:"rt-DropdownMenuTriggerIcon"}));te.displayName="DropdownMenu.TriggerIcon";export{F as a,q as b,J as c,Q as d,X as e,Y as f,Z as g,$ as h,ee as i,oe as j,ne as k,x as l,re as m,te as n,ce as o};
2
- //# sourceMappingURL=chunk-H4MMVAGQ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/dropdown-menu.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { DropdownMenu as DropdownMenuPrimitive, Slot } from 'radix-ui';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n dropdownMenuContentPropDefs,\n dropdownMenuSubContentPropDefs,\n dropdownMenuItemPropDefs,\n dropdownMenuCheckboxItemPropDefs,\n dropdownMenuRadioItemPropDefs,\n} from './dropdown-menu.props.js';\nimport { Theme, useThemeContext } from './theme.js';\nimport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport {\n DrillDownProvider,\n SubContext,\n useDrillDownActionsOptional,\n useDrillDownStateOptional,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport { MenuProvider } from './_internal/menu-context.js';\nimport type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { Kbd } from './kbd.js';\n\nimport type { IconProps } from './icons.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\n\ninterface DropdownMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}\nconst DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => (\n <DropdownMenuPrimitive.Root {...props} />\n);\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\ntype DropdownMenuTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\ninterface DropdownMenuTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Trigger, RemovedProps> {}\nconst DropdownMenuTrigger = React.forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\n/**\n * Internal component that wraps root menu items and handles visibility in drill-down mode.\n * In drill-down mode, this hides when a submenu is active.\n * Uses state-only hook to subscribe only to state changes, not action changes.\n */\nfunction DrillDownRoot({ children }: { children: React.ReactNode }) {\n const drillDownState = useDrillDownStateOptional();\n\n // In cascade mode or when no drill-down context, always show\n if (!drillDownState || drillDownState.behavior === 'cascade') {\n return <>{children}</>;\n }\n\n // In drill-down mode, hide root when a submenu is active\n return (\n <div\n className=\"rt-DropdownMenuDrillDownRoot\"\n data-drill-down-active={drillDownState.isRoot ? undefined : true}\n data-animation-direction={drillDownState.animationDirection ?? undefined}\n >\n {children}\n </div>\n );\n}\n\ntype DropdownMenuContentOwnProps = GetPropDefTypes<typeof dropdownMenuContentPropDefs> & {\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n};\ntype DropdownMenuContentContextValue = Omit<DropdownMenuContentOwnProps, 'submenuBehavior'>;\nconst DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});\ntype DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;\ninterface DropdownMenuContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,\n DropdownMenuContentContextValue {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(\n (props, forwardedRef) => {\n const themeContext = useThemeContext();\n\n // Show deprecation warning for panelBackground when used\n React.useEffect(() => {\n if (props.panelBackground !== undefined) {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',\n );\n }\n }, [props.panelBackground]);\n\n // Material takes precedence over panelBackground\n const effectiveMaterial =\n props.material ?? props.panelBackground ?? themeContext.panelBackground;\n\n // Memoize theme context values to prevent unnecessary re-renders\n const memoizedThemeContext = React.useMemo(\n () => ({\n material: effectiveMaterial,\n accentColor: themeContext.accentColor,\n }),\n [effectiveMaterial, themeContext.accentColor],\n );\n\n const {\n size = dropdownMenuContentPropDefs.size.default,\n variant = dropdownMenuContentPropDefs.variant.default,\n highContrast = dropdownMenuContentPropDefs.highContrast.default,\n material = memoizedThemeContext.material,\n submenuBehavior,\n virtualized = false,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n material: _,\n panelBackground: __,\n submenuBehavior: ___,\n virtualized: ____,\n ...contentProps\n } = extractProps(props, dropdownMenuContentPropDefs);\n\n // Memoize color resolution to prevent unnecessary re-renders\n const resolvedColor = React.useMemo(\n () => color || memoizedThemeContext.accentColor,\n [color, memoizedThemeContext.accentColor],\n );\n const contentBody = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider\n value={React.useMemo(\n () => ({ size, variant, color: resolvedColor, highContrast, material }),\n [size, variant, resolvedColor, highContrast, material],\n )}\n >\n <DrillDownProvider submenuBehavior={submenuBehavior}>\n <DrillDownRoot>{children}</DrillDownRoot>\n </DrillDownProvider>\n </DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.Content\n data-accent-color={resolvedColor}\n data-material={material}\n data-panel-background={material}\n align=\"start\"\n sideOffset={4}\n collisionPadding={10}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-DropdownMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport', 'rt-virtualized')}>\n {contentBody}\n </div>\n ) : (\n <ScrollArea type=\"auto\">\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>\n {contentBody}\n </div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.Content>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nDropdownMenuContent.displayName = 'DropdownMenu.Content';\n\ntype DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.Label>;\ninterface DropdownMenuLabelProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Label, RemovedProps> {}\nconst DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuLabel', 'rt-DropdownMenuLabel', className)}\n />\n ),\n);\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\ntype DropdownMenuItemElement = React.ElementRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemOwnProps = GetPropDefTypes<typeof dropdownMenuItemPropDefs>;\ninterface DropdownMenuItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Item, RemovedProps>,\n DropdownMenuItemOwnProps {}\nconst DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = dropdownMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n return (\n <DropdownMenuPrimitive.Item\n data-accent-color={color}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-DropdownMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <Kbd size=\"1\">{shortcut}</Kbd>\n </div>\n )}\n </DropdownMenuPrimitive.Item>\n );\n },\n);\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\ntype DropdownMenuGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.Group>;\ninterface DropdownMenuGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Group, RemovedProps> {}\nconst DropdownMenuGroup = React.forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuGroup', 'rt-DropdownMenuGroup', className)}\n />\n ),\n);\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>;\ninterface DropdownMenuRadioGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioGroup, RemovedProps> {}\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>(({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.RadioGroup\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuRadioGroup', 'rt-DropdownMenuRadioGroup', className)}\n />\n));\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\ntype DropdownMenuRadioItemElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>;\ntype DropdownMenuRadioItemOwnProps = GetPropDefTypes<typeof dropdownMenuRadioItemPropDefs>;\ninterface DropdownMenuRadioItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioItem, RemovedProps>,\n DropdownMenuRadioItemOwnProps {}\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = dropdownMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <DropdownMenuPrimitive.RadioItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuRadioItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuRadioItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator\">\n <ThickDotIcon className=\"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </DropdownMenuPrimitive.RadioItem>\n );\n});\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>;\ntype DropdownMenuCheckboxItemOwnProps = GetPropDefTypes<typeof dropdownMenuCheckboxItemPropDefs>;\ninterface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.CheckboxItem, RemovedProps>,\n DropdownMenuCheckboxItemOwnProps {}\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = dropdownMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <DropdownMenuPrimitive.CheckboxItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuCheckboxItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuCheckboxItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator\">\n <ThickCheckIcon className=\"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <Kbd size=\"1\">{shortcut}</Kbd>\n </div>\n )}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\n// Generate unique submenu IDs using React 18's useId for SSR safety\nfunction useSubId() {\n return React.useId();\n}\n\ninterface DropdownMenuSubProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub> {\n /**\n * Label displayed in the back button when using drill-down mode.\n * If not provided, defaults to \"Back\".\n */\n label?: React.ReactNode;\n}\nconst DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({ label = 'Back', ...props }) => {\n // Use state-only hook since we only need behavior check\n const drillDownState = useDrillDownStateOptional();\n const subId = useSubId();\n\n // Create context value for SubContent and SubTrigger\n const subContextValue = React.useMemo(\n () => ({ id: subId, label }),\n [subId, label]\n );\n\n // In drill-down mode, we don't use Radix's Sub component\n // We just provide the SubContext and render children\n if (drillDownState?.behavior === 'drill-down') {\n return (\n <SubContext.Provider value={subContextValue}>\n {props.children}\n </SubContext.Provider>\n );\n }\n\n // In cascade mode, use Radix's Sub component normally\n return (\n <SubContext.Provider value={subContextValue}>\n <DropdownMenuPrimitive.Sub {...props} />\n </SubContext.Provider>\n );\n};\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\ntype DropdownMenuSubTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>;\ninterface DropdownMenuSubTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubTrigger, RemovedProps> {}\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, onClick, ...subTriggerProps } = props;\n // Use split hooks: actions for stable push callback, state only for behavior check\n const drillDownActions = useDrillDownActionsOptional();\n const drillDownState = useDrillDownStateOptional();\n const subContext = useSubContext();\n\n // Store onClick in ref to avoid recreating handlers when onClick changes\n const onClickRef = React.useRef(onClick);\n onClickRef.current = onClick;\n\n // Stable click handler - only depends on stable refs\n const handleClick = React.useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (subContext && drillDownActions) {\n drillDownActions.push(subContext.id);\n }\n (onClickRef.current as React.MouseEventHandler<HTMLDivElement> | undefined)?.(e);\n }, [subContext, drillDownActions]);\n\n // Stable keydown handler\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (subContext && drillDownActions) {\n drillDownActions.push(subContext.id);\n }\n }\n }, [subContext, drillDownActions]);\n\n // In drill-down mode, render a button that navigates to the submenu\n if (drillDownState?.behavior === 'drill-down' && subContext) {\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-BaseMenuSubTrigger',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuSubTrigger',\n 'rt-DropdownMenuDrillDownSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon\" />\n </div>\n </div>\n );\n }\n\n // In cascade mode, use Radix's SubTrigger\n return (\n <DropdownMenuPrimitive.SubTrigger\n {...subTriggerProps}\n onClick={onClick as React.MouseEventHandler<HTMLDivElement> | undefined}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuSubTrigger',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.SubTrigger>\n );\n});\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\n// Separator is defined here (before SubContent) because it's used in drill-down mode\ntype DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;\ninterface DropdownMenuSeparatorProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Separator, RemovedProps> {}\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuSeparator', 'rt-DropdownMenuSeparator', className)}\n />\n));\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/**\n * Internal component for the drill-down back button.\n * Uses actions-only hook since it only needs to call pop(), never reads state.\n * This prevents re-renders when drill-down state changes.\n */\nfunction DrillDownBackItem({ label }: { label: React.ReactNode }) {\n // Use actions-only hook for stable pop callback - prevents re-renders on stack changes\n const { pop } = useDrillDownActionsOptional() ?? {};\n\n // Stable click handler\n const handleClick = React.useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n pop?.();\n }, [pop]);\n\n // Stable keydown handler\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n pop?.();\n }\n }, [pop]);\n\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuDrillDownBackItem',\n )}\n >\n <ThickChevronLeftIcon className=\"rt-DropdownMenuDrillDownBackIcon\" />\n <span className=\"rt-DropdownMenuDrillDownBackLabel\">{label}</span>\n </div>\n );\n}\n\ntype DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;\ninterface DropdownMenuSubContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,\n DropdownMenuContentContextValue {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n}\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props, forwardedRef) => {\n // Get context values directly - memoization at provider level handles stability\n const { size, variant, color, highContrast, material } = React.useContext(\n DropdownMenuContentContext,\n );\n // Use state-only hook since we only need behavior and isActive (no actions)\n const drillDownState = useDrillDownStateOptional();\n const subContext = useSubContext();\n\n const {\n className,\n children,\n container,\n forceMount,\n material: _,\n panelBackground: __,\n ...subContentProps\n } = extractProps(\n { size, variant, color, highContrast, material, ...props },\n dropdownMenuSubContentPropDefs,\n );\n\n // In drill-down mode, render inline instead of in a portal\n if (drillDownState?.behavior === 'drill-down' && subContext) {\n const isActive = drillDownState.isActive(subContext.id);\n\n return (\n <div\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n role=\"menu\"\n aria-label={typeof subContext.label === 'string' ? subContext.label : undefined}\n data-drill-down-active={isActive ? true : undefined}\n data-animation-direction={drillDownState.animationDirection ?? undefined}\n className={classNames(\n 'rt-DropdownMenuDrillDownPanel',\n className,\n )}\n >\n <DrillDownBackItem label={subContext.label} />\n <DropdownMenuSeparator />\n {children}\n </div>\n );\n }\n\n // In cascade mode, use Portal and Radix's SubContent\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.SubContent\n data-accent-color={color}\n data-material={material}\n data-panel-background={material}\n alignOffset={-Number(size) * 4}\n // Side offset accounts for the outer solid box-shadow\n sideOffset={1}\n collisionPadding={10}\n {...subContentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-BaseMenuSubContent',\n 'rt-DropdownMenuContent',\n 'rt-DropdownMenuSubContent',\n className,\n )}\n >\n <ScrollArea type=\"auto\">\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>\n {children}\n </div>\n </ScrollArea>\n </DropdownMenuPrimitive.SubContent>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n});\nDropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';\n\ntype DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;\ninterface DropdownMenuTriggerIconProps extends IconProps {}\nconst DropdownMenuTriggerIcon = React.forwardRef<\n DropdownMenuTriggerIconElement,\n DropdownMenuTriggerIconProps\n>((props, forwardedRef) => (\n <ChevronDownIcon {...props} ref={forwardedRef} className=\"rt-DropdownMenuTriggerIcon\" />\n));\nDropdownMenuTriggerIcon.displayName = 'DropdownMenu.TriggerIcon';\n\nexport {\n DropdownMenuRoot as Root,\n DropdownMenuTrigger as Trigger,\n DropdownMenuTriggerIcon as TriggerIcon,\n DropdownMenuContent as Content,\n DropdownMenuLabel as Label,\n DropdownMenuItem as Item,\n DropdownMenuGroup as Group,\n DropdownMenuRadioGroup as RadioGroup,\n DropdownMenuRadioItem as RadioItem,\n DropdownMenuCheckboxItem as CheckboxItem,\n DropdownMenuSub as Sub,\n DropdownMenuSubTrigger as SubTrigger,\n DropdownMenuSubContent as SubContent,\n DropdownMenuSeparator as Separator,\n};\n\nexport type {\n DropdownMenuRootProps as RootProps,\n DropdownMenuTriggerProps as TriggerProps,\n DropdownMenuTriggerIconProps as TriggerIconProps,\n DropdownMenuContentProps as ContentProps,\n DropdownMenuLabelProps as LabelProps,\n DropdownMenuItemProps as ItemProps,\n DropdownMenuGroupProps as GroupProps,\n DropdownMenuRadioGroupProps as RadioGroupProps,\n DropdownMenuRadioItemProps as RadioItemProps,\n DropdownMenuCheckboxItemProps as CheckboxItemProps,\n DropdownMenuSubProps as SubProps,\n DropdownMenuSubTriggerProps as SubTriggerProps,\n DropdownMenuSubContentProps as SubContentProps,\n DropdownMenuSeparatorProps as SeparatorProps,\n SubmenuBehavior,\n};\n"],
5
- "mappings": "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",
6
- "names": ["dropdown_menu_exports", "__export", "DropdownMenuCheckboxItem", "DropdownMenuContent", "DropdownMenuGroup", "DropdownMenuItem", "DropdownMenuLabel", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "DropdownMenuRoot", "DropdownMenuSeparator", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuTrigger", "DropdownMenuTriggerIcon", "React", "classNames", "DropdownMenuPrimitive", "Slot", "DropdownMenuRoot", "props", "DropdownMenuPrimitive", "DropdownMenuTrigger", "children", "forwardedRef", "requireReactElement", "DrillDownRoot", "drillDownState", "useDrillDownStateOptional", "DropdownMenuContentContext", "DropdownMenuContent", "themeContext", "useThemeContext", "effectiveMaterial", "memoizedThemeContext", "size", "baseMenuContentPropDefs", "variant", "highContrast", "material", "submenuBehavior", "virtualized", "className", "color", "container", "forceMount", "_", "__", "___", "____", "contentProps", "extractProps", "resolvedColor", "contentBody", "MenuProvider", "DrillDownProvider", "Theme", "classNames", "ScrollArea", "DropdownMenuLabel", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "Slot", "Kbd", "DropdownMenuGroup", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "useSubId", "DropdownMenuSub", "label", "subId", "subContextValue", "SubContext", "DropdownMenuSubTrigger", "onClick", "subTriggerProps", "drillDownActions", "useDrillDownActionsOptional", "subContext", "useSubContext", "onClickRef", "handleClick", "e", "handleKeyDown", "ThickChevronRightIcon", "DropdownMenuSeparator", "DrillDownBackItem", "pop", "ThickChevronLeftIcon", "DropdownMenuSubContent", "subContentProps", "baseMenuSubContentPropDefs", "isActive", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
7
- }
@@ -1,2 +0,0 @@
1
- import*as d from"react";var s=!1;function m(){d.useEffect(()=>{if(typeof document>"u"||s)return;s=!0;let r=()=>{let e=!!document.querySelector('[role="dialog"][aria-modal="true"], [role="alertdialog"][aria-modal="true"]'),t=!!document.querySelector('[data-radix-popper-content-wrapper], [data-state="open"]');return e||t},a=()=>{document.body.style.pointerEvents==="none"&&(console.log("[KookieUI] Force cleaning stuck pointer-events: none from body"),document.body.style.pointerEvents="",document.body.removeAttribute("data-scroll-locked"),document.body.removeAttribute("data-remove-scroll"),document.body.classList.remove("ReactModal__Body--open"))},o=()=>{document.body.style.pointerEvents==="none"&&!r()&&(console.log("[KookieUI] Safe cleaning stuck pointer-events: none from body"),document.body.style.pointerEvents="")},c=e=>{let t=e.target;t&&!t.closest('[role="dialog"], [role="alertdialog"], [data-radix-popper-content-wrapper]')&&setTimeout(a,100)},i=e=>{e.key==="Escape"&&setTimeout(a,200)},n=()=>{setTimeout(o,50)};document.addEventListener("click",c,!0),document.addEventListener("keydown",i,!0),document.addEventListener("pointerup",n,!0),document.addEventListener("transitionend",n,!0),document.addEventListener("animationend",n,!0),new MutationObserver(()=>{setTimeout(o,0)}).observe(document.body,{childList:!0,subtree:!0,attributes:!0});let l=setInterval(()=>{document.body.style.pointerEvents==="none"&&!r()&&(console.log("[KookieUI] Periodic cleanup of stuck pointer-events"),document.body.style.pointerEvents="")},1e3);return setTimeout(o,100),()=>{clearInterval(l)}},[])}export{m as a};
2
- //# sourceMappingURL=chunk-ITRVKLYU.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/hooks/use-body-pointer-events-cleanup.ts"],
4
- "sourcesContent": ["import * as React from 'react';\n\nlet cleanupInstalled = false;\n\n/**\n * Hook to cleanup stuck pointer-events: none on document.body\n *\n * This addresses an issue where react-remove-scroll (used by Radix UI Dialog)\n * sometimes fails to restore body pointer-events after dialog closes,\n * leaving the page unclickable.\n */\nexport function useBodyPointerEventsCleanup() {\n React.useEffect(() => {\n if (typeof document === 'undefined') return;\n if (cleanupInstalled) return;\n\n cleanupInstalled = true;\n\n const hasOpenModal = (): boolean => {\n // Check for open dialogs/alertdialogs\n const hasDialogs = Boolean(\n document.querySelector(\n '[role=\"dialog\"][aria-modal=\"true\"], [role=\"alertdialog\"][aria-modal=\"true\"]',\n ),\n );\n\n // Also check for any Radix overlays that are still mounted\n const hasRadixOverlays = Boolean(\n document.querySelector('[data-radix-popper-content-wrapper], [data-state=\"open\"]'),\n );\n\n return hasDialogs || hasRadixOverlays;\n };\n\n const forceCleanup = () => {\n // Aggressive cleanup - remove pointer-events regardless\n if (document.body.style.pointerEvents === 'none') {\n console.log('[KookieUI] Force cleaning stuck pointer-events: none from body');\n document.body.style.pointerEvents = '';\n\n // Also remove any scroll-lock related attributes\n document.body.removeAttribute('data-scroll-locked');\n document.body.removeAttribute('data-remove-scroll');\n\n // Remove any classes that might be causing issues\n document.body.classList.remove('ReactModal__Body--open');\n }\n };\n\n const safeCleanup = () => {\n if (document.body.style.pointerEvents === 'none' && !hasOpenModal()) {\n console.log('[KookieUI] Safe cleaning stuck pointer-events: none from body');\n document.body.style.pointerEvents = '';\n }\n };\n\n // Force cleanup on any click outside modal content\n const onDocumentClick = (event: Event) => {\n const target = event.target as Element;\n if (\n target &&\n !target.closest(\n '[role=\"dialog\"], [role=\"alertdialog\"], [data-radix-popper-content-wrapper]',\n )\n ) {\n // Clicked outside any modal - force cleanup after a short delay\n setTimeout(forceCleanup, 100);\n }\n };\n\n // Force cleanup on ESC key\n const onEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setTimeout(forceCleanup, 200);\n }\n };\n\n // Safe cleanup on other interactions\n const onInteraction = () => {\n setTimeout(safeCleanup, 50);\n };\n\n // Install global listeners\n document.addEventListener('click', onDocumentClick, true);\n document.addEventListener('keydown', onEscapeKey, true);\n document.addEventListener('pointerup', onInteraction, true);\n document.addEventListener('transitionend', onInteraction, true);\n document.addEventListener('animationend', onInteraction, true);\n\n // Watch for DOM changes that might indicate overlay removal\n const observer = new MutationObserver(() => {\n setTimeout(safeCleanup, 0);\n });\n observer.observe(document.body, { childList: true, subtree: true, attributes: true });\n\n // Fallback periodic cleanup\n const intervalId = setInterval(() => {\n if (document.body.style.pointerEvents === 'none' && !hasOpenModal()) {\n console.log('[KookieUI] Periodic cleanup of stuck pointer-events');\n document.body.style.pointerEvents = '';\n }\n }, 1000);\n\n // Initial cleanup\n setTimeout(safeCleanup, 100);\n\n // Cleanup function (keep listeners for app lifetime)\n return () => {\n clearInterval(intervalId);\n };\n }, []);\n}\n"],
5
- "mappings": "AAAA,UAAYA,MAAW,QAEvB,IAAIC,EAAmB,GAShB,SAASC,GAA8B,CACtC,YAAU,IAAM,CAEpB,GADI,OAAO,SAAa,KACpBD,EAAkB,OAEtBA,EAAmB,GAEnB,IAAME,EAAe,IAAe,CAElC,IAAMC,EAAa,EACjB,SAAS,cACP,6EACF,EAIIC,EAAmB,EACvB,SAAS,cAAc,0DAA0D,EAGnF,OAAOD,GAAcC,CACvB,EAEMC,EAAe,IAAM,CAErB,SAAS,KAAK,MAAM,gBAAkB,SACxC,QAAQ,IAAI,gEAAgE,EAC5E,SAAS,KAAK,MAAM,cAAgB,GAGpC,SAAS,KAAK,gBAAgB,oBAAoB,EAClD,SAAS,KAAK,gBAAgB,oBAAoB,EAGlD,SAAS,KAAK,UAAU,OAAO,wBAAwB,EAE3D,EAEMC,EAAc,IAAM,CACpB,SAAS,KAAK,MAAM,gBAAkB,QAAU,CAACJ,EAAa,IAChE,QAAQ,IAAI,+DAA+D,EAC3E,SAAS,KAAK,MAAM,cAAgB,GAExC,EAGMK,EAAmBC,GAAiB,CACxC,IAAMC,EAASD,EAAM,OAEnBC,GACA,CAACA,EAAO,QACN,4EACF,GAGA,WAAWJ,EAAc,GAAG,CAEhC,EAGMK,EAAeF,GAAyB,CACxCA,EAAM,MAAQ,UAChB,WAAWH,EAAc,GAAG,CAEhC,EAGMM,EAAgB,IAAM,CAC1B,WAAWL,EAAa,EAAE,CAC5B,EAGA,SAAS,iBAAiB,QAASC,EAAiB,EAAI,EACxD,SAAS,iBAAiB,UAAWG,EAAa,EAAI,EACtD,SAAS,iBAAiB,YAAaC,EAAe,EAAI,EAC1D,SAAS,iBAAiB,gBAAiBA,EAAe,EAAI,EAC9D,SAAS,iBAAiB,eAAgBA,EAAe,EAAI,EAG5C,IAAI,iBAAiB,IAAM,CAC1C,WAAWL,EAAa,CAAC,CAC3B,CAAC,EACQ,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,GAAM,WAAY,EAAK,CAAC,EAGpF,IAAMM,EAAa,YAAY,IAAM,CAC/B,SAAS,KAAK,MAAM,gBAAkB,QAAU,CAACV,EAAa,IAChE,QAAQ,IAAI,qDAAqD,EACjE,SAAS,KAAK,MAAM,cAAgB,GAExC,EAAG,GAAI,EAGP,kBAAWI,EAAa,GAAG,EAGpB,IAAM,CACX,cAAcM,CAAU,CAC1B,CACF,EAAG,CAAC,CAAC,CACP",
6
- "names": ["React", "cleanupInstalled", "useBodyPointerEventsCleanup", "hasOpenModal", "hasDialogs", "hasRadixOverlays", "forceCleanup", "safeCleanup", "onDocumentClick", "event", "target", "onEscapeKey", "onInteraction", "intervalId"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as A,b as g,c as R,d as u,e as y}from"./chunk-BI7W34WW.js";import{a as i}from"./chunk-KMPBTEZH.js";import{a as x}from"./chunk-3XT5P2HO.js";var O={};x(O,{Content:()=>H,Header:()=>v,Item:()=>T,Root:()=>C,Trigger:()=>E});import*as o from"react";import p from"classnames";import{Accordion as m}from"radix-ui";var C=o.forwardRef((r,t)=>{let{className:e,panelBackground:c,material:a,flush:l,radius:s,color:I,...N}=i(r,A),n=N;o.useEffect(()=>{r.panelBackground!==void 0&&console.warn("Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.")},[r.panelBackground]);let P=a??c;n.type==="single"&&n.collapsible===void 0&&(n.collapsible=!0);let w=o.useCallback(d=>{if(n.type==="multiple"){let f=d.currentTarget.querySelectorAll("[data-radix-accordion-item]");d.key==="Home"?(d.preventDefault(),f[0]?.querySelector("[data-radix-accordion-trigger]")?.focus()):d.key==="End"&&(d.preventDefault(),f[f.length-1]?.querySelector("[data-radix-accordion-trigger]")?.focus())}},[n.type]);return o.createElement(m.Root,{...n,ref:t,className:p("rt-AccordionRoot",e),"data-accent-color":I,"data-panel-background":P,"data-material":P,"data-flush":l||void 0,"data-radius":s,onKeyDown:w})});C.displayName="Accordion.Root";var T=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,g);return o.createElement(m.Item,{...c,ref:t,className:p("rt-AccordionItem",e)})});T.displayName="Accordion.Item";var v=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,R);return o.createElement(m.Header,{...c,ref:t,className:p("rt-AccordionHeader",e)})});v.displayName="Accordion.Header";var E=o.forwardRef(({children:r,...t},e)=>{let{className:c,...a}=i(t,u),l=o.useRef(null);return o.createElement(m.Trigger,{...a,ref:s=>{l.current=s,typeof e=="function"?e(s):e&&(e.current=s)},className:p("rt-AccordionTrigger",c)},r)});E.displayName="Accordion.Trigger";var H=o.forwardRef((r,t)=>{let{className:e,children:c,...a}=i(r,y);return o.createElement(m.Content,{...a,ref:t,className:p("rt-AccordionContent",e),"aria-live":"polite"},o.createElement("div",{className:"rt-AccordionContentInner"},c))});H.displayName="Accordion.Content";export{C as a,T as b,v as c,E as d,H as e,O as f};
2
- //# sourceMappingURL=chunk-KCAFSCOV.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/accordion.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Accordion as AccordionPrimitive } from 'radix-ui';\n\nimport {\n accordionRootPropDefs,\n accordionItemPropDefs,\n accordionHeaderPropDefs,\n accordionTriggerPropDefs,\n accordionContentPropDefs,\n} from './accordion.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\n\nimport type {\n AccordionRootOwnProps,\n AccordionItemOwnProps,\n AccordionHeaderOwnProps,\n AccordionTriggerOwnProps,\n AccordionContentOwnProps,\n} from './accordion.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\n// Root component\ntype AccordionRootElement = React.ElementRef<typeof AccordionPrimitive.Root>;\ninterface AccordionRootProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Root, RemovedProps>,\n AccordionRootOwnProps {}\n\nconst AccordionRoot = React.forwardRef<AccordionRootElement, AccordionRootProps>(\n (props, forwardedRef) => {\n const { className, panelBackground, material, flush, radius, color, ...extractedRadixProps } =\n extractProps(props, accordionRootPropDefs);\n\n const radixProps = extractedRadixProps as React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n >;\n\n // Show deprecation warning for panelBackground when used\n React.useEffect(() => {\n if (props.panelBackground !== undefined) {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',\n );\n }\n }, [props.panelBackground]);\n\n // Material takes precedence over panelBackground\n const effectiveMaterial = material ?? panelBackground;\n\n // Ensure single accordions can collapse by default unless explicitly set\n if (radixProps.type === 'single' && radixProps.collapsible === undefined) {\n radixProps.collapsible = true;\n }\n\n // Handle Home/End key navigation for multi-item accordions\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (radixProps.type === 'multiple') {\n const items = event.currentTarget.querySelectorAll('[data-radix-accordion-item]');\n\n if (event.key === 'Home') {\n event.preventDefault();\n const firstTrigger = items[0]?.querySelector(\n '[data-radix-accordion-trigger]',\n ) as HTMLElement;\n firstTrigger?.focus();\n } else if (event.key === 'End') {\n event.preventDefault();\n const lastTrigger = items[items.length - 1]?.querySelector(\n '[data-radix-accordion-trigger]',\n ) as HTMLElement;\n lastTrigger?.focus();\n }\n }\n },\n [radixProps.type],\n );\n\n return (\n <AccordionPrimitive.Root\n {...radixProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionRoot', className)}\n data-accent-color={color}\n data-panel-background={effectiveMaterial}\n data-material={effectiveMaterial}\n data-flush={flush || undefined}\n data-radius={radius}\n onKeyDown={handleKeyDown}\n />\n );\n },\n);\nAccordionRoot.displayName = 'Accordion.Root';\n\n// Item component\ntype AccordionItemElement = React.ElementRef<typeof AccordionPrimitive.Item>;\ninterface AccordionItemProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Item, RemovedProps>,\n AccordionItemOwnProps {}\n\nconst AccordionItem = React.forwardRef<AccordionItemElement, AccordionItemProps>(\n (props, forwardedRef) => {\n const { className, ...itemProps } = extractProps(props, accordionItemPropDefs);\n\n return (\n <AccordionPrimitive.Item\n {...itemProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionItem', className)}\n />\n );\n },\n);\nAccordionItem.displayName = 'Accordion.Item';\n\n// Header component\ntype AccordionHeaderElement = React.ElementRef<typeof AccordionPrimitive.Header>;\ninterface AccordionHeaderProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Header, RemovedProps>,\n AccordionHeaderOwnProps {}\n\nconst AccordionHeader = React.forwardRef<AccordionHeaderElement, AccordionHeaderProps>(\n (props, forwardedRef) => {\n const { className, ...headerProps } = extractProps(props, accordionHeaderPropDefs);\n\n return (\n <AccordionPrimitive.Header\n {...headerProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionHeader', className)}\n />\n );\n },\n);\nAccordionHeader.displayName = 'Accordion.Header';\n\n// Trigger component\ntype AccordionTriggerElement = React.ElementRef<typeof AccordionPrimitive.Trigger>;\ninterface AccordionTriggerProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Trigger, RemovedProps>,\n AccordionTriggerOwnProps {}\n\nconst AccordionTrigger = React.forwardRef<AccordionTriggerElement, AccordionTriggerProps>(\n ({ children, ...props }, forwardedRef) => {\n const { className, ...triggerProps } = extractProps(props, accordionTriggerPropDefs);\n\n // Radix UI handles focus management automatically\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n return (\n <AccordionPrimitive.Trigger\n {...triggerProps}\n ref={(node) => {\n triggerRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n }}\n className={classNames('rt-AccordionTrigger', className)}\n >\n {children}\n </AccordionPrimitive.Trigger>\n );\n },\n);\nAccordionTrigger.displayName = 'Accordion.Trigger';\n\n// Content component\ntype AccordionContentElement = React.ElementRef<typeof AccordionPrimitive.Content>;\ninterface AccordionContentProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Content, RemovedProps>,\n AccordionContentOwnProps {}\n\nconst AccordionContent = React.forwardRef<AccordionContentElement, AccordionContentProps>(\n (props, forwardedRef) => {\n const { className, children, ...contentProps } = extractProps(props, accordionContentPropDefs);\n\n return (\n <AccordionPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionContent', className)}\n aria-live=\"polite\"\n >\n <div className=\"rt-AccordionContentInner\">{children}</div>\n </AccordionPrimitive.Content>\n );\n },\n);\nAccordionContent.displayName = 'Accordion.Content';\n\nexport {\n AccordionRoot as Root,\n AccordionItem as Item,\n AccordionHeader as Header,\n AccordionTrigger as Trigger,\n AccordionContent as Content,\n};\n\nexport type {\n AccordionRootProps as RootProps,\n AccordionItemProps as ItemProps,\n AccordionHeaderProps as HeaderProps,\n AccordionTriggerProps as TriggerProps,\n AccordionContentProps as ContentProps,\n};\n"],
5
- "mappings": "oJAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,EAAA,SAAAC,EAAA,SAAAC,EAAA,YAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,aAAaC,MAA0B,WA0BhD,IAAMC,EAAsB,aAC1B,CAACC,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,gBAAAC,EAAiB,SAAAC,EAAU,MAAAC,EAAO,OAAAC,EAAQ,MAAAC,EAAO,GAAGC,CAAoB,EACzFC,EAAaT,EAAOU,CAAqB,EAErCC,EAAaH,EAKb,YAAU,IAAM,CAChBR,EAAM,kBAAoB,QAC5B,QAAQ,KACN,yHACF,CAEJ,EAAG,CAACA,EAAM,eAAe,CAAC,EAG1B,IAAMY,EAAoBR,GAAYD,EAGlCQ,EAAW,OAAS,UAAYA,EAAW,cAAgB,SAC7DA,EAAW,YAAc,IAI3B,IAAME,EAAsB,cACzBC,GAA+B,CAC9B,GAAIH,EAAW,OAAS,WAAY,CAClC,IAAMI,EAAQD,EAAM,cAAc,iBAAiB,6BAA6B,EAE5EA,EAAM,MAAQ,QAChBA,EAAM,eAAe,EACAC,EAAM,CAAC,GAAG,cAC7B,gCACF,GACc,MAAM,GACXD,EAAM,MAAQ,QACvBA,EAAM,eAAe,EACDC,EAAMA,EAAM,OAAS,CAAC,GAAG,cAC3C,gCACF,GACa,MAAM,EAEvB,CACF,EACA,CAACJ,EAAW,IAAI,CAClB,EAEA,OACE,gBAACK,EAAmB,KAAnB,CACE,GAAGL,EACJ,IAAKV,EACL,UAAWgB,EAAW,mBAAoBf,CAAS,EACnD,oBAAmBK,EACnB,wBAAuBK,EACvB,gBAAeA,EACf,aAAYP,GAAS,OACrB,cAAaC,EACb,UAAWO,EACb,CAEJ,CACF,EACAd,EAAc,YAAc,iBAQ5B,IAAMmB,EAAsB,aAC1B,CAAClB,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,GAAGiB,CAAU,EAAIV,EAAaT,EAAOoB,CAAqB,EAE7E,OACE,gBAACJ,EAAmB,KAAnB,CACE,GAAGG,EACJ,IAAKlB,EACL,UAAWgB,EAAW,mBAAoBf,CAAS,EACrD,CAEJ,CACF,EACAgB,EAAc,YAAc,iBAQ5B,IAAMG,EAAwB,aAC5B,CAACrB,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,GAAGoB,CAAY,EAAIb,EAAaT,EAAOuB,CAAuB,EAEjF,OACE,gBAACP,EAAmB,OAAnB,CACE,GAAGM,EACJ,IAAKrB,EACL,UAAWgB,EAAW,qBAAsBf,CAAS,EACvD,CAEJ,CACF,EACAmB,EAAgB,YAAc,mBAQ9B,IAAMG,EAAyB,aAC7B,CAAC,CAAE,SAAAC,EAAU,GAAGzB,CAAM,EAAGC,IAAiB,CACxC,GAAM,CAAE,UAAAC,EAAW,GAAGwB,CAAa,EAAIjB,EAAaT,EAAO2B,CAAwB,EAG7EC,EAAmB,SAA0B,IAAI,EAEvD,OACE,gBAACZ,EAAmB,QAAnB,CACE,GAAGU,EACJ,IAAMG,GAAS,CACbD,EAAW,QAAUC,EACjB,OAAO5B,GAAiB,WAC1BA,EAAa4B,CAAI,EACR5B,IACTA,EAAa,QAAU4B,EAE3B,EACA,UAAWZ,EAAW,sBAAuBf,CAAS,GAErDuB,CACH,CAEJ,CACF,EACAD,EAAiB,YAAc,oBAQ/B,IAAMM,EAAyB,aAC7B,CAAC9B,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,SAAAuB,EAAU,GAAGM,CAAa,EAAItB,EAAaT,EAAOgC,CAAwB,EAE7F,OACE,gBAAChB,EAAmB,QAAnB,CACE,GAAGe,EACJ,IAAK9B,EACL,UAAWgB,EAAW,sBAAuBf,CAAS,EACtD,YAAU,UAEV,gBAAC,OAAI,UAAU,4BAA4BuB,CAAS,CACtD,CAEJ,CACF,EACAK,EAAiB,YAAc",
6
- "names": ["accordion_exports", "__export", "AccordionContent", "AccordionHeader", "AccordionItem", "AccordionRoot", "AccordionTrigger", "React", "classNames", "AccordionPrimitive", "AccordionRoot", "props", "forwardedRef", "className", "panelBackground", "material", "flush", "radius", "color", "extractedRadixProps", "extractProps", "accordionRootPropDefs", "radixProps", "effectiveMaterial", "handleKeyDown", "event", "items", "AccordionPrimitive", "classNames", "AccordionItem", "itemProps", "accordionItemPropDefs", "AccordionHeader", "headerProps", "accordionHeaderPropDefs", "AccordionTrigger", "children", "triggerProps", "accordionTriggerPropDefs", "triggerRef", "node", "AccordionContent", "contentProps", "accordionContentPropDefs"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as f}from"./chunk-E23RKOQJ.js";import{a as m,b as d}from"./chunk-ZMEXIPWM.js";import{a as o}from"./chunk-RZCX6IBE.js";import l from"classnames";function N(...r){return Object.assign({},...r)}function x(r,...y){let t,p,a={...r},u=N(...y);for(let n in u){let s=a[n],e=u[n];if(e.default!==void 0&&s===void 0&&(s=e.default),e.type==="enum"&&![e.default,...e.values].includes(s)&&!o(s)&&(s=e.default),a[n]=s,"className"in e&&e.className){delete a[n];let c="responsive"in e;if(!s||o(s)&&!c)continue;if(o(s)&&(e.default!==void 0&&s.initial===void 0&&(s.initial=e.default),e.type==="enum"&&([e.default,...e.values].includes(s.initial)||(s.initial=e.default))),e.type==="enum"){let i=d({allowArbitraryValues:!1,value:s,className:e.className,propValues:e.values,parseValue:e.parseValue});t=l(t,i);continue}if(e.type==="string"||e.type==="enum | string"){let i=e.type==="string"?[]:e.values,[P,g]=m({className:e.className,customProperties:e.customProperties,propValues:i,parseValue:e.parseValue,value:s});p=f(p,g),t=l(t,P);continue}if(e.type==="boolean"&&s){t=l(t,e.className);continue}}}return a.className=l(t,r.className),a.style=f(p,r.style),a}export{x as a};
2
- //# sourceMappingURL=chunk-KMPBTEZH.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/helpers/extract-props.ts"],
4
- "sourcesContent": ["import classNames from 'classnames';\n\nimport { getResponsiveClassNames, getResponsiveStyles } from './get-responsive-styles.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\nimport { mergeStyles } from './merge-styles.js';\n\nimport type * as React from 'react';\nimport type { PropDef } from '../props/prop-def.js';\n\ntype PropDefsWithClassName<T> = T extends Record<string, PropDef>\n ? { [K in keyof T]: T[K] extends { className: string } ? K : never }[keyof T]\n : never;\n\nfunction mergePropDefs<T extends Record<string, PropDef>[]>(...args: T): Record<string, PropDef> {\n return Object.assign({}, ...args);\n}\n\n/**\n * Takes props, checks them against prop defs that have a `className` on them,\n * adds necessary CSS classes and inline styles, and returns the props without\n * the corresponding prop defs that were used to formulate the new `className`\n * and `style` values. Also applies prop def defaults to every prop.\n */\nfunction extractProps<\n P extends { className?: string; style?: React.CSSProperties; [key: string]: any },\n T extends Record<string, PropDef>[]\n>(\n props: P,\n ...propDefs: T\n): Omit<P & { className?: string; style?: React.CSSProperties }, PropDefsWithClassName<T[number]>> {\n let className: string | undefined;\n let style: ReturnType<typeof mergeStyles>;\n const extractedProps = { ...props };\n const allPropDefs = mergePropDefs(...propDefs);\n\n for (const key in allPropDefs) {\n let value = extractedProps[key];\n const propDef = allPropDefs[key];\n\n // Apply prop def defaults\n if (propDef.default !== undefined && value === undefined) {\n value = propDef.default;\n }\n\n // Apply the default value if the value is not a valid enum value\n if (propDef.type === 'enum') {\n const values = [propDef.default, ...propDef.values];\n\n if (!values.includes(value) && !isResponsiveObject(value)) {\n value = propDef.default;\n }\n }\n\n // Apply the value with defaults\n (extractedProps as Record<string, any>)[key] = value;\n\n if ('className' in propDef && propDef.className) {\n delete extractedProps[key];\n\n const isResponsivePropDef = 'responsive' in propDef;\n // Make sure we are not threading through responsive values for non-responsive prop defs\n if (!value || (isResponsiveObject(value) && !isResponsivePropDef)) {\n continue;\n }\n\n if (isResponsiveObject(value)) {\n // Apply prop def defaults to the `initial` breakpoint\n if (propDef.default !== undefined && value.initial === undefined) {\n value.initial = propDef.default;\n }\n\n // Apply the default value to the `initial` breakpoint when it is not a valid enum value\n if (propDef.type === 'enum') {\n const values = [propDef.default, ...propDef.values];\n\n if (!values.includes(value.initial)) {\n value.initial = propDef.default;\n }\n }\n }\n\n if (propDef.type === 'enum') {\n const propClassName = getResponsiveClassNames({\n allowArbitraryValues: false,\n value,\n className: propDef.className,\n propValues: propDef.values,\n parseValue: propDef.parseValue,\n });\n\n className = classNames(className, propClassName);\n continue;\n }\n\n if (propDef.type === 'string' || propDef.type === 'enum | string') {\n const propDefValues = propDef.type === 'string' ? [] : propDef.values;\n\n const [propClassNames, propCustomProperties] = getResponsiveStyles({\n className: propDef.className,\n customProperties: propDef.customProperties,\n propValues: propDefValues,\n parseValue: propDef.parseValue,\n value,\n });\n\n style = mergeStyles(style, propCustomProperties);\n className = classNames(className, propClassNames);\n continue;\n }\n\n if (propDef.type === 'boolean' && value) {\n // TODO handle responsive boolean props\n className = classNames(className, propDef.className);\n continue;\n }\n }\n }\n\n extractedProps.className = classNames(className, props.className);\n extractedProps.style = mergeStyles(style, props.style);\n return extractedProps;\n}\n\nexport { extractProps };\n"],
5
- "mappings": "+HAAA,OAAOA,MAAgB,aAavB,SAASC,KAAsDC,EAAkC,CAC/F,OAAO,OAAO,OAAO,CAAC,EAAG,GAAGA,CAAI,CAClC,CAQA,SAASC,EAIPC,KACGC,EAC8F,CACjG,IAAIC,EACAC,EACEC,EAAiB,CAAE,GAAGJ,CAAM,EAC5BK,EAAcR,EAAc,GAAGI,CAAQ,EAE7C,QAAWK,KAAOD,EAAa,CAC7B,IAAIE,EAAQH,EAAeE,CAAG,EACxBE,EAAUH,EAAYC,CAAG,EAmB/B,GAhBIE,EAAQ,UAAY,QAAaD,IAAU,SAC7CA,EAAQC,EAAQ,SAIdA,EAAQ,OAAS,QAGf,CAFW,CAACA,EAAQ,QAAS,GAAGA,EAAQ,MAAM,EAEtC,SAASD,CAAK,GAAK,CAACE,EAAmBF,CAAK,IACtDA,EAAQC,EAAQ,SAKnBJ,EAAuCE,CAAG,EAAIC,EAE3C,cAAeC,GAAWA,EAAQ,UAAW,CAC/C,OAAOJ,EAAeE,CAAG,EAEzB,IAAMI,EAAsB,eAAgBF,EAE5C,GAAI,CAACD,GAAUE,EAAmBF,CAAK,GAAK,CAACG,EAC3C,SAmBF,GAhBID,EAAmBF,CAAK,IAEtBC,EAAQ,UAAY,QAAaD,EAAM,UAAY,SACrDA,EAAM,QAAUC,EAAQ,SAItBA,EAAQ,OAAS,SACJ,CAACA,EAAQ,QAAS,GAAGA,EAAQ,MAAM,EAEtC,SAASD,EAAM,OAAO,IAChCA,EAAM,QAAUC,EAAQ,WAK1BA,EAAQ,OAAS,OAAQ,CAC3B,IAAMG,EAAgBC,EAAwB,CAC5C,qBAAsB,GACtB,MAAAL,EACA,UAAWC,EAAQ,UACnB,WAAYA,EAAQ,OACpB,WAAYA,EAAQ,UACtB,CAAC,EAEDN,EAAYW,EAAWX,EAAWS,CAAa,EAC/C,QACF,CAEA,GAAIH,EAAQ,OAAS,UAAYA,EAAQ,OAAS,gBAAiB,CACjE,IAAMM,EAAgBN,EAAQ,OAAS,SAAW,CAAC,EAAIA,EAAQ,OAEzD,CAACO,EAAgBC,CAAoB,EAAIC,EAAoB,CACjE,UAAWT,EAAQ,UACnB,iBAAkBA,EAAQ,iBAC1B,WAAYM,EACZ,WAAYN,EAAQ,WACpB,MAAAD,CACF,CAAC,EAEDJ,EAAQe,EAAYf,EAAOa,CAAoB,EAC/Cd,EAAYW,EAAWX,EAAWa,CAAc,EAChD,QACF,CAEA,GAAIP,EAAQ,OAAS,WAAaD,EAAO,CAEvCL,EAAYW,EAAWX,EAAWM,EAAQ,SAAS,EACnD,QACF,CACF,CACF,CAEA,OAAAJ,EAAe,UAAYS,EAAWX,EAAWF,EAAM,SAAS,EAChEI,EAAe,MAAQc,EAAYf,EAAOH,EAAM,KAAK,EAC9CI,CACT",
6
- "names": ["classNames", "mergePropDefs", "args", "extractProps", "props", "propDefs", "className", "style", "extractedProps", "allPropDefs", "key", "value", "propDef", "isResponsiveObject", "isResponsivePropDef", "propClassName", "getResponsiveClassNames", "classNames", "propDefValues", "propClassNames", "propCustomProperties", "getResponsiveStyles", "mergeStyles"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as M}from"./chunk-F22ZRNWL.js";import{a}from"./chunk-T27QHMW7.js";import*as e from"react";import N from"classnames";import{Direction as O,Slot as V,Tooltip as W}from"radix-ui";var n=()=>{},H={appearance:a.appearance.default,accentColor:a.accentColor.default,grayColor:a.grayColor.default,resolvedGrayColor:a.grayColor.default,material:a.material.default,panelBackground:a.panelBackground.default,radius:a.radius.default,scaling:a.scaling.default,fontFamily:a.fontFamily.default,onAppearanceChange:n,onAccentColorChange:n,onGrayColorChange:n,onMaterialChange:n,onPanelBackgroundChange:n,onRadiusChange:n,onScalingChange:n,onFontFamilyChange:n},b=e.createContext(void 0);function K(){return e.useContext(b)??H}var j=e.forwardRef((o,u)=>e.useContext(b)===void 0?e.createElement(W.Provider,{delayDuration:200},e.createElement(O.Provider,{dir:"ltr"},e.createElement(w,{...o,ref:u}))):e.createElement(D,{...o,ref:u}));j.displayName="Theme";var w=e.forwardRef((o,u)=>{let{appearance:t=a.appearance.default,accentColor:m=a.accentColor.default,grayColor:r=a.grayColor.default,material:g=a.material.default,panelBackground:i=a.panelBackground.default,radius:l=a.radius.default,scaling:c=a.scaling.default,fontFamily:s=a.fontFamily.default,hasBackground:C=a.hasBackground.default,...y}=o;e.useEffect(()=>{o.panelBackground!==void 0&&console.warn("Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.")},[o.panelBackground]);let[T,d]=e.useState(t);e.useEffect(()=>d(t),[t]);let[B,P]=e.useState(m);e.useEffect(()=>P(m),[m]);let[F,R]=e.useState(r);e.useEffect(()=>R(r),[r]);let p=g!==a.material.default?g:i,[f,v]=e.useState(p);e.useEffect(()=>v(p),[p]);let[x,k]=e.useState(i);e.useEffect(()=>k(f),[f]);let[E,h]=e.useState(l);e.useEffect(()=>h(l),[l]);let[G,S]=e.useState(c);e.useEffect(()=>S(c),[c]);let[I,A]=e.useState(s);return e.useEffect(()=>A(s),[s]),e.createElement(D,{...y,ref:u,isRoot:!0,hasBackground:C,appearance:T,accentColor:B,grayColor:F,material:f,panelBackground:x,radius:E,scaling:G,fontFamily:I,onAppearanceChange:d,onAccentColorChange:P,onGrayColorChange:R,onMaterialChange:v,onPanelBackgroundChange:k,onRadiusChange:h,onScalingChange:S,onFontFamilyChange:A})});w.displayName="ThemeRoot";function L(){if(typeof navigator>"u")return;let o=navigator.userAgent;if(o.includes("Win"))return"windows";if(o.includes("Mac"))return"macos";if(o.includes("Linux"))return"linux"}var D=e.forwardRef((o,u)=>{let t=e.useContext(b),{asChild:m,isRoot:r,hasBackground:g,appearance:i=o.appearance??t?.appearance??a.appearance.default,accentColor:l=o.accentColor??t?.accentColor??a.accentColor.default,grayColor:c=o.grayColor??t?.resolvedGrayColor??a.grayColor.default,material:s=o.material??t?.material??a.material.default,panelBackground:C=o.panelBackground??t?.panelBackground??a.panelBackground.default,radius:y=o.radius??t?.radius??a.radius.default,scaling:T=o.scaling??t?.scaling??a.scaling.default,fontFamily:d=o.fontFamily??t?.fontFamily??a.fontFamily.default,onAppearanceChange:B=n,onAccentColorChange:P=n,onGrayColorChange:F=n,onMaterialChange:R=n,onPanelBackgroundChange:p=n,onRadiusChange:f=n,onScalingChange:v=n,onFontFamilyChange:x=n,...k}=o,E=m?V.Root:"div",h=c==="auto"?M(l):c,G=o.appearance==="light"||o.appearance==="dark",S=g===void 0?r||G:g,[I,A]=e.useState(void 0);return e.useEffect(()=>{r&&A(L())},[r]),e.createElement(b.Provider,{value:e.useMemo(()=>({appearance:i,accentColor:l,grayColor:c,resolvedGrayColor:h,material:s,panelBackground:C,radius:y,scaling:T,fontFamily:d,onAppearanceChange:B,onAccentColorChange:P,onGrayColorChange:F,onMaterialChange:R,onPanelBackgroundChange:p,onRadiusChange:f,onScalingChange:v,onFontFamilyChange:x}),[i,l,c,h,s,C,y,T,d,B,P,F,R,p,f,v,x])},e.createElement(E,{"data-is-root-theme":r?"true":"false","data-accent-color":l,"data-gray-color":h,"data-has-background":S?"true":"false","data-material":s,"data-panel-background":C,"data-radius":y,"data-scaling":T,"data-font-family":d,"data-os":r?I:void 0,ref:u,...k,className:N("radix-themes",{light:i==="light",dark:i==="dark"},k.className)}))});D.displayName="ThemeImpl";export{b as a,K as b,j as c};
2
- //# sourceMappingURL=chunk-LN5SP46K.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/theme.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot, Tooltip as TooltipPrimitive } from 'radix-ui';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeMaterial = (typeof themePropDefs.material.values)[number];\ntype ThemePanelBackground = (typeof themePropDefs.panelBackground.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeScaling = (typeof themePropDefs.scaling.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onMaterialChange: (material: ThemeMaterial) => void;\n onPanelBackgroundChange: (panelBackground: ThemePanelBackground) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onScalingChange: (scaling: ThemeScaling) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n material: ThemeMaterial;\n panelBackground: ThemePanelBackground;\n radius: ThemeRadius;\n scaling: ThemeScaling;\n fontFamily: ThemeFontFamily;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n material: themePropDefs.material.default,\n panelBackground: themePropDefs.panelBackground.default,\n radius: themePropDefs.radius.default,\n scaling: themePropDefs.scaling.default,\n fontFamily: themePropDefs.fontFamily.default,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onMaterialChange: noop,\n onPanelBackgroundChange: noop,\n onRadiusChange: noop,\n onScalingChange: noop,\n onFontFamilyChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <TooltipPrimitive.Provider delayDuration={200}>\n <Direction.Provider dir=\"ltr\">\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n </TooltipPrimitive.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>(\n (props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n material: materialProp = themePropDefs.material.default,\n panelBackground: panelBackgroundProp = themePropDefs.panelBackground.default,\n radius: radiusProp = themePropDefs.radius.default,\n scaling: scalingProp = themePropDefs.scaling.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n // Show deprecation warning for panelBackground when used\n React.useEffect(() => {\n if (props.panelBackground !== undefined) {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',\n );\n }\n }, [props.panelBackground]);\n\n const [appearance, setAppearance] = React.useState(appearanceProp);\n React.useEffect(() => setAppearance(appearanceProp), [appearanceProp]);\n\n const [accentColor, setAccentColor] = React.useState(accentColorProp);\n React.useEffect(() => setAccentColor(accentColorProp), [accentColorProp]);\n\n const [grayColor, setGrayColor] = React.useState(grayColorProp);\n React.useEffect(() => setGrayColor(grayColorProp), [grayColorProp]);\n\n // Material takes precedence over panelBackground\n const effectiveMaterial =\n materialProp !== themePropDefs.material.default ? materialProp : panelBackgroundProp;\n const [material, setMaterial] = React.useState(effectiveMaterial);\n React.useEffect(() => setMaterial(effectiveMaterial), [effectiveMaterial]);\n\n // Keep panelBackground in sync with material for backward compatibility\n const [panelBackground, setPanelBackground] = React.useState(panelBackgroundProp);\n React.useEffect(() => setPanelBackground(material), [material]);\n\n const [radius, setRadius] = React.useState(radiusProp);\n React.useEffect(() => setRadius(radiusProp), [radiusProp]);\n\n const [scaling, setScaling] = React.useState(scalingProp);\n React.useEffect(() => setScaling(scalingProp), [scalingProp]);\n\n const [fontFamily, setFontFamily] = React.useState(fontFamilyProp);\n React.useEffect(() => setFontFamily(fontFamilyProp), [fontFamilyProp]);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n material={material}\n panelBackground={panelBackground}\n radius={radius}\n scaling={scaling}\n fontFamily={fontFamily}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onMaterialChange={setMaterial}\n onPanelBackgroundChange={setPanelBackground}\n onRadiusChange={setRadius}\n onScalingChange={setScaling}\n onFontFamilyChange={setFontFamily}\n />\n );\n },\n);\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nfunction getClientOS(): 'windows' | 'macos' | 'linux' | undefined {\n if (typeof navigator === 'undefined') return undefined;\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'windows';\n if (ua.includes('Mac')) return 'macos';\n if (ua.includes('Linux')) return 'linux';\n return undefined;\n}\n\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n material = props.material ?? context?.material ?? themePropDefs.material.default,\n panelBackground = props.panelBackground ??\n context?.panelBackground ??\n themePropDefs.panelBackground.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n scaling = props.scaling ?? context?.scaling ?? themePropDefs.scaling.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n //\n onAppearanceChange = noop,\n onAccentColorChange = noop,\n onGrayColorChange = noop,\n onMaterialChange = noop,\n onPanelBackgroundChange = noop,\n onRadiusChange = noop,\n onScalingChange = noop,\n onFontFamilyChange = noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground =\n hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n const [clientOS, setClientOS] = React.useState<ReturnType<typeof getClientOS>>(undefined);\n React.useEffect(() => {\n if (isRoot) setClientOS(getClientOS());\n }, [isRoot]);\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n ],\n )}\n >\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-material={material}\n data-panel-background={panelBackground}\n data-radius={radius}\n data-scaling={scaling}\n data-font-family={fontFamily}\n data-os={isRoot ? clientOS : undefined}\n ref={forwardedRef}\n {...themeProps}\n className={classNames(\n 'radix-themes',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n"],
5
- "mappings": "2EAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,aAAAC,EAAW,QAAAC,EAAM,WAAWC,MAAwB,WAQ7D,IAAMC,EAAO,IAAM,CAAC,EAkCdC,EAAyC,CAC7C,WAAYC,EAAc,WAAW,QACrC,YAAaA,EAAc,YAAY,QACvC,UAAWA,EAAc,UAAU,QACnC,kBAAmBA,EAAc,UAAU,QAC3C,SAAUA,EAAc,SAAS,QACjC,gBAAiBA,EAAc,gBAAgB,QAC/C,OAAQA,EAAc,OAAO,QAC7B,QAASA,EAAc,QAAQ,QAC/B,WAAYA,EAAc,WAAW,QACrC,mBAAoBF,EACpB,oBAAqBA,EACrB,kBAAmBA,EACnB,iBAAkBA,EAClB,wBAAyBA,EACzB,eAAgBA,EAChB,gBAAiBA,EACjB,mBAAoBA,CACtB,EAEMG,EAAqB,gBAA6C,MAAS,EAEjF,SAASC,GAAkB,CAGzB,OAFsB,aAAWD,CAAY,GAE3BF,CACpB,CAGA,IAAMI,EAAc,aAAyC,CAACC,EAAOC,IAC7C,aAAWJ,CAAY,IAClB,OAGvB,gBAACK,EAAiB,SAAjB,CAA0B,cAAe,KACxC,gBAACC,EAAU,SAAV,CAAmB,IAAI,OACtB,gBAACC,EAAA,CAAW,GAAGJ,EAAO,IAAKC,EAAc,CAC3C,CACF,EAGG,gBAACI,EAAA,CAAW,GAAGL,EAAO,IAAKC,EAAc,CACjD,EACDF,EAAM,YAAc,QAEpB,IAAMK,EAAkB,aACtB,CAACJ,EAAOC,IAAiB,CACvB,GAAM,CACJ,WAAYK,EAAiBV,EAAc,WAAW,QACtD,YAAaW,EAAkBX,EAAc,YAAY,QACzD,UAAWY,EAAgBZ,EAAc,UAAU,QACnD,SAAUa,EAAeb,EAAc,SAAS,QAChD,gBAAiBc,EAAsBd,EAAc,gBAAgB,QACrE,OAAQe,EAAaf,EAAc,OAAO,QAC1C,QAASgB,EAAchB,EAAc,QAAQ,QAC7C,WAAYiB,EAAiBjB,EAAc,WAAW,QACtD,cAAAkB,EAAgBlB,EAAc,cAAc,QAC5C,GAAGmB,CACL,EAAIf,EAGE,YAAU,IAAM,CAChBA,EAAM,kBAAoB,QAC5B,QAAQ,KACN,yHACF,CAEJ,EAAG,CAACA,EAAM,eAAe,CAAC,EAE1B,GAAM,CAACgB,EAAYC,CAAa,EAAU,WAASX,CAAc,EAC3D,YAAU,IAAMW,EAAcX,CAAc,EAAG,CAACA,CAAc,CAAC,EAErE,GAAM,CAACY,EAAaC,CAAc,EAAU,WAASZ,CAAe,EAC9D,YAAU,IAAMY,EAAeZ,CAAe,EAAG,CAACA,CAAe,CAAC,EAExE,GAAM,CAACa,EAAWC,CAAY,EAAU,WAASb,CAAa,EACxD,YAAU,IAAMa,EAAab,CAAa,EAAG,CAACA,CAAa,CAAC,EAGlE,IAAMc,EACJb,IAAiBb,EAAc,SAAS,QAAUa,EAAeC,EAC7D,CAACa,EAAUC,CAAW,EAAU,WAASF,CAAiB,EAC1D,YAAU,IAAME,EAAYF,CAAiB,EAAG,CAACA,CAAiB,CAAC,EAGzE,GAAM,CAACG,EAAiBC,CAAkB,EAAU,WAAShB,CAAmB,EAC1E,YAAU,IAAMgB,EAAmBH,CAAQ,EAAG,CAACA,CAAQ,CAAC,EAE9D,GAAM,CAACI,EAAQC,CAAS,EAAU,WAASjB,CAAU,EAC/C,YAAU,IAAMiB,EAAUjB,CAAU,EAAG,CAACA,CAAU,CAAC,EAEzD,GAAM,CAACkB,EAASC,CAAU,EAAU,WAASlB,CAAW,EAClD,YAAU,IAAMkB,EAAWlB,CAAW,EAAG,CAACA,CAAW,CAAC,EAE5D,GAAM,CAACmB,EAAYC,CAAa,EAAU,WAASnB,CAAc,EACjE,OAAM,YAAU,IAAMmB,EAAcnB,CAAc,EAAG,CAACA,CAAc,CAAC,EAGnE,gBAACR,EAAA,CACE,GAAGU,EACJ,IAAKd,EACL,OAAM,GACN,cAAea,EAEf,WAAYE,EACZ,YAAaE,EACb,UAAWE,EACX,SAAUG,EACV,gBAAiBE,EACjB,OAAQE,EACR,QAASE,EACT,WAAYE,EAEZ,mBAAoBd,EACpB,oBAAqBE,EACrB,kBAAmBE,EACnB,iBAAkBG,EAClB,wBAAyBE,EACzB,eAAgBE,EAChB,gBAAiBE,EACjB,mBAAoBE,EACtB,CAEJ,CACF,EACA5B,EAAU,YAAc,YAUxB,SAAS6B,GAAyD,CAChE,GAAI,OAAO,UAAc,IAAa,OACtC,IAAMC,EAAK,UAAU,UACrB,GAAIA,EAAG,SAAS,KAAK,EAAG,MAAO,UAC/B,GAAIA,EAAG,SAAS,KAAK,EAAG,MAAO,QAC/B,GAAIA,EAAG,SAAS,OAAO,EAAG,MAAO,OAEnC,CAEA,IAAM7B,EAAkB,aAA6C,CAACL,EAAOC,IAAiB,CAC5F,IAAMkC,EAAgB,aAAWtC,CAAY,EACvC,CACJ,QAAAuC,EACA,OAAAC,EACA,cAAeC,EAEf,WAAAtB,EAAahB,EAAM,YAAcmC,GAAS,YAAcvC,EAAc,WAAW,QACjF,YAAAsB,EAAclB,EAAM,aAAemC,GAAS,aAAevC,EAAc,YAAY,QACrF,UAAAwB,EAAYpB,EAAM,WAAamC,GAAS,mBAAqBvC,EAAc,UAAU,QACrF,SAAA2B,EAAWvB,EAAM,UAAYmC,GAAS,UAAYvC,EAAc,SAAS,QACzE,gBAAA6B,EAAkBzB,EAAM,iBACtBmC,GAAS,iBACTvC,EAAc,gBAAgB,QAChC,OAAA+B,EAAS3B,EAAM,QAAUmC,GAAS,QAAUvC,EAAc,OAAO,QACjE,QAAAiC,EAAU7B,EAAM,SAAWmC,GAAS,SAAWvC,EAAc,QAAQ,QACrE,WAAAmC,EAAa/B,EAAM,YAAcmC,GAAS,YAAcvC,EAAc,WAAW,QAEjF,mBAAA2C,EAAqB7C,EACrB,oBAAA8C,EAAsB9C,EACtB,kBAAA+C,EAAoB/C,EACpB,iBAAAgD,EAAmBhD,EACnB,wBAAAiD,EAA0BjD,EAC1B,eAAAkD,EAAiBlD,EACjB,gBAAAmD,EAAkBnD,EAClB,mBAAAoD,EAAqBpD,EAErB,GAAGqD,CACL,EAAI/C,EACEgD,EAAOZ,EAAUa,EAAK,KAAO,MAC7BC,EAAoB9B,IAAc,OAAS+B,EAAqBjC,CAAW,EAAIE,EAC/EgC,EAAuBpD,EAAM,aAAe,SAAWA,EAAM,aAAe,OAC5Ec,EACJwB,IAAsB,OAAYD,GAAUe,EAAuBd,EAE/D,CAACe,EAAUC,CAAW,EAAU,WAAyC,MAAS,EACxF,OAAM,YAAU,IAAM,CAChBjB,GAAQiB,EAAYrB,EAAY,CAAC,CACvC,EAAG,CAACI,CAAM,CAAC,EAGT,gBAACxC,EAAa,SAAb,CACC,MAAa,UACX,KAAO,CACL,WAAAmB,EACA,YAAAE,EACA,UAAAE,EACA,kBAAA8B,EACA,SAAA3B,EACA,gBAAAE,EACA,OAAAE,EACA,QAAAE,EACA,WAAAE,EAEA,mBAAAQ,EACA,oBAAAC,EACA,kBAAAC,EACA,iBAAAC,EACA,wBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,mBAAAC,CACF,GACA,CACE9B,EACAE,EACAE,EACA8B,EACA3B,EACAE,EACAE,EACAE,EACAE,EAEAQ,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CACF,CACF,GAEA,gBAACE,EAAA,CACC,qBAAoBX,EAAS,OAAS,QACtC,oBAAmBnB,EACnB,kBAAiBgC,EAEjB,sBAAqBpC,EAAgB,OAAS,QAC9C,gBAAeS,EACf,wBAAuBE,EACvB,cAAaE,EACb,eAAcE,EACd,mBAAkBE,EAClB,UAASM,EAASgB,EAAW,OAC7B,IAAKpD,EACJ,GAAG8C,EACJ,UAAWQ,EACT,eACA,CACE,MAAOvC,IAAe,QACtB,KAAMA,IAAe,MACvB,EACA+B,EAAW,SACb,EACF,CACF,CAEJ,CAAC,EACD1C,EAAU,YAAc",
6
- "names": ["React", "classNames", "Direction", "Slot", "TooltipPrimitive", "noop", "defaultThemeContext", "themePropDefs", "ThemeContext", "useThemeContext", "Theme", "props", "forwardedRef", "TooltipPrimitive", "Direction", "ThemeRoot", "ThemeImpl", "appearanceProp", "accentColorProp", "grayColorProp", "materialProp", "panelBackgroundProp", "radiusProp", "scalingProp", "fontFamilyProp", "hasBackground", "rootProps", "appearance", "setAppearance", "accentColor", "setAccentColor", "grayColor", "setGrayColor", "effectiveMaterial", "material", "setMaterial", "panelBackground", "setPanelBackground", "radius", "setRadius", "scaling", "setScaling", "fontFamily", "setFontFamily", "getClientOS", "ua", "context", "asChild", "isRoot", "hasBackgroundProp", "onAppearanceChange", "onAccentColorChange", "onGrayColorChange", "onMaterialChange", "onPanelBackgroundChange", "onRadiusChange", "onScalingChange", "onFontFamilyChange", "themeProps", "Comp", "Slot", "resolvedGrayColor", "getMatchingGrayColor", "isExplicitAppearance", "clientOS", "setClientOS", "classNames"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as R}from"./chunk-ITRVKLYU.js";import{a as y}from"./chunk-HACQF6F4.js";import{a as g}from"./chunk-MJJ7XDIP.js";import{a as u}from"./chunk-GCUGJXI2.js";import{c as C}from"./chunk-LN5SP46K.js";import{a as v}from"./chunk-4OBMRJHC.js";import{a as n}from"./chunk-KMPBTEZH.js";import{a as K}from"./chunk-3XT5P2HO.js";var j={};K(j,{Close:()=>B,Content:()=>h,Description:()=>N,Root:()=>T,Title:()=>x,Trigger:()=>E});import*as e from"react";import _ from"classnames";import{Dialog as r}from"radix-ui";var T=o=>e.createElement(r.Root,{...o,modal:!0});T.displayName="Dialog.Root";var E=e.forwardRef(({children:o,...t},a)=>e.createElement(r.Trigger,{...t,ref:a,asChild:!0},g(o)));E.displayName="Dialog.Trigger";var h=e.forwardRef(({align:o,...t},a)=>{let{align:k,panelBackground:b,material:w,...M}=u,{className:H}=n({align:o},{align:k}),{panelBackground:c}=n({panelBackground:t.panelBackground},{panelBackground:b}),{material:p}=n({material:t.material},{material:w}),D=e.useMemo(()=>(p!==void 0&&console.warn("Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead."),p??c),[p,c]),{className:W,forceMount:L,container:O,panelBackground:q,material:z,...S}=n(t,M),f=e.useRef(null),A=e.useMemo(()=>i=>{f.current=i,typeof a=="function"?a(i):a&&(a.current=i)},[a]);return R(),e.useEffect(()=>{if(typeof window>"u")return;let i=f.current;if(!i)return;let l=i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(l.length===0)return;let m=l[0],d=l[l.length-1],P=s=>{s.key==="Tab"&&(s.shiftKey?document.activeElement===m&&(s.preventDefault(),d.focus()):document.activeElement===d&&(s.preventDefault(),m.focus()))};return i.addEventListener("keydown",P),m.focus(),()=>{i.removeEventListener("keydown",P)}},[]),e.createElement(r.Portal,{container:O,forceMount:L},e.createElement(C,{asChild:!0},e.createElement(r.Overlay,{className:"rt-BaseDialogOverlay rt-DialogOverlay"},e.createElement("div",{className:"rt-BaseDialogScroll rt-DialogScroll"},e.createElement("div",{className:`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${H}`},e.createElement(r.Content,{...S,ref:A,className:_("rt-BaseDialogContent","rt-DialogContent",W),"data-material":D,"data-panel-background":D,tabIndex:-1,role:"dialog","aria-modal":"true",onCloseAutoFocus:i=>{i.preventDefault(),document.body.style.pointerEvents=""}}),e.createElement("div",{"aria-live":"polite","aria-atomic":"true",className:"rt-sr-only",id:"dialog-announcement"}))))))});h.displayName="Dialog.Content";var x=e.forwardRef((o,t)=>e.createElement(r.Title,{asChild:!0},e.createElement(y,{size:"5",mb:"3",trim:"start",...o,asChild:!1,ref:t})));x.displayName="Dialog.Title";var N=e.forwardRef((o,t)=>e.createElement(r.Description,{asChild:!0},e.createElement(v,{as:"p",size:"3",...o,asChild:!1,ref:t})));N.displayName="Dialog.Description";var B=e.forwardRef(({children:o,...t},a)=>e.createElement(r.Close,{...t,ref:a,asChild:!0},g(o)));B.displayName="Dialog.Close";export{T as a,E as b,h as c,x as d,N as e,B as f,j as g};
2
- //# sourceMappingURL=chunk-OKJNS7Z7.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/dialog.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { dialogContentPropDefs } from './dialog.props.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { Theme } from './theme.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { DialogContentOwnProps } from './dialog.props.js';\nimport type {\n ComponentPropsWithout,\n RemovedProps,\n ComponentPropsAs,\n} from '../helpers/component-props.js';\n\ninterface DialogRootProps extends ComponentPropsWithout<typeof DialogPrimitive.Root, 'modal'> {}\nconst DialogRoot: React.FC<DialogRootProps> = (props) => <DialogPrimitive.Root {...props} modal />;\nDialogRoot.displayName = 'Dialog.Root';\n\ntype DialogTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\ninterface DialogTriggerProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Trigger, RemovedProps> {}\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <DialogPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Trigger>\n ),\n);\nDialogTrigger.displayName = 'Dialog.Trigger';\n\ntype DialogContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ninterface DialogContentProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,\n DialogContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>['container'];\n}\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(\n ({ align, ...props }, forwardedRef) => {\n const {\n align: alignPropDef,\n panelBackground: panelBackgroundPropDef,\n material: materialPropDef,\n ...propDefs\n } = dialogContentPropDefs;\n\n const { className: alignClassName } = extractProps({ align }, { align: alignPropDef });\n\n // Extract panelBackground and material from props\n const { panelBackground: extractedPanelBackground } = extractProps(\n { panelBackground: props.panelBackground },\n { panelBackground: panelBackgroundPropDef },\n );\n\n const { material: extractedMaterial } = extractProps(\n { material: props.material },\n { material: materialPropDef },\n );\n\n // Handle material prop with panelBackground fallback\n const materialValue = React.useMemo(() => {\n if (extractedMaterial !== undefined) {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',\n );\n }\n return extractedMaterial ?? extractedPanelBackground;\n }, [extractedMaterial, extractedPanelBackground]);\n\n const {\n className,\n forceMount,\n container,\n panelBackground: _,\n material: __,\n ...contentProps\n } = extractProps(props, propDefs);\n\n // Focus management\n const contentRef = React.useRef<HTMLDivElement>(null);\n const combinedRef = React.useMemo(\n () => (node: HTMLDivElement | null) => {\n contentRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef],\n );\n\n // Cleanup stuck pointer-events on body\n useBodyPointerEventsCleanup();\n\n // Focus trap effect\n React.useEffect(() => {\n // SSR safety - only run on client\n if (typeof window === 'undefined') return;\n\n const content = contentRef.current;\n if (!content) return;\n\n const focusableElements = content.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else {\n if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n }\n };\n\n content.addEventListener('keydown', handleKeyDown);\n\n // Focus first element when dialog opens\n firstElement.focus();\n\n return () => {\n content.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n\n return (\n <DialogPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DialogPrimitive.Overlay className=\"rt-BaseDialogOverlay rt-DialogOverlay\">\n <div className=\"rt-BaseDialogScroll rt-DialogScroll\">\n <div\n className={`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${alignClassName}`}\n >\n <DialogPrimitive.Content\n {...contentProps}\n ref={combinedRef}\n className={classNames('rt-BaseDialogContent', 'rt-DialogContent', className)}\n data-material={materialValue}\n data-panel-background={materialValue}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n onCloseAutoFocus={(event) => {\n // Prevent default focus behavior\n event.preventDefault();\n // Restore pointer-events to body (Radix UI fix for issue #1241)\n document.body.style.pointerEvents = '';\n }}\n />\n {/* ARIA live region for screen reader announcements */}\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"rt-sr-only\"\n id=\"dialog-announcement\"\n />\n </div>\n </div>\n </DialogPrimitive.Overlay>\n </Theme>\n </DialogPrimitive.Portal>\n );\n },\n);\nDialogContent.displayName = 'Dialog.Content';\n\ntype DialogTitleElement = React.ElementRef<typeof Heading>;\ntype DialogTitleProps = ComponentPropsWithout<typeof Heading, 'asChild'>;\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props, forwardedRef) => (\n <DialogPrimitive.Title asChild>\n <Heading size=\"5\" mb=\"3\" trim=\"start\" {...props} asChild={false} ref={forwardedRef} />\n </DialogPrimitive.Title>\n ),\n);\nDialogTitle.displayName = 'Dialog.Title';\n\ntype DialogDescriptionElement = HTMLParagraphElement;\ntype DialogDescriptionProps = ComponentPropsAs<typeof Text, 'p'>;\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props, forwardedRef) => (\n <DialogPrimitive.Description asChild>\n <Text as=\"p\" size=\"3\" {...props} asChild={false} ref={forwardedRef} />\n </DialogPrimitive.Description>\n ),\n);\nDialogDescription.displayName = 'Dialog.Description';\n\ntype DialogCloseElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface DialogCloseProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Close, RemovedProps> {}\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n ({ children, ...props }, forwardedRef) => (\n <DialogPrimitive.Close {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Close>\n ),\n);\nDialogClose.displayName = 'Dialog.Close';\n\nexport {\n DialogRoot as Root,\n DialogTrigger as Trigger,\n DialogContent as Content,\n DialogTitle as Title,\n DialogDescription as Description,\n DialogClose as Close,\n};\n\nexport type {\n DialogRootProps as RootProps,\n DialogTriggerProps as TriggerProps,\n DialogContentProps as ContentProps,\n DialogTitleProps as TitleProps,\n DialogDescriptionProps as DescriptionProps,\n DialogCloseProps as CloseProps,\n};\n"],
5
- "mappings": "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",
6
- "names": ["dialog_exports", "__export", "DialogClose", "DialogContent", "DialogDescription", "DialogRoot", "DialogTitle", "DialogTrigger", "React", "classNames", "DialogPrimitive", "DialogRoot", "props", "DialogPrimitive", "DialogTrigger", "children", "forwardedRef", "requireReactElement", "DialogContent", "align", "alignPropDef", "panelBackgroundPropDef", "materialPropDef", "propDefs", "dialogContentPropDefs", "alignClassName", "extractProps", "extractedPanelBackground", "extractedMaterial", "materialValue", "className", "forceMount", "container", "_", "__", "contentProps", "contentRef", "combinedRef", "node", "useBodyPointerEventsCleanup", "content", "focusableElements", "firstElement", "lastElement", "handleKeyDown", "event", "Theme", "classNames", "DialogTitle", "Heading", "DialogDescription", "Text", "DialogClose"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as W}from"./chunk-NNO7M466.js";import*as n from"react";import O from"classnames";var S=n.forwardRef(({className:c,children:d,...F},K)=>{let{containerRef:P,cssVarName:u,minSize:x,maxSize:H,defaultSize:C,orientation:E,edge:T,computeNext:U,onResize:R,onResizeStart:M,onResizeEnd:h,snapPoints:D,snapTolerance:V,collapseThreshold:z,collapsible:A,target:N,requestCollapse:q,requestToggle:B}=W(),g=n.useRef(null);n.useEffect(()=>()=>{try{g.current?.()}catch{}g.current=null},[]);let X=E,Y=`Resize ${N.charAt(0).toUpperCase()+N.slice(1)} pane`;return n.createElement("div",{...F,ref:K,className:O("rt-ShellResizer",c),"data-orientation":E,"data-edge":T,role:"slider","aria-label":Y,"aria-orientation":X,"aria-valuemin":x,"aria-valuemax":H,"aria-valuenow":C,tabIndex:0,onPointerDown:e=>{if(!P.current)return;e.preventDefault();let r=P.current,l=e.currentTarget,b=e.pointerId;try{g.current?.()}catch{}r.setAttribute("data-resizing","");try{l.setPointerCapture(b)}catch{}let f=E==="vertical"?e.clientX:e.clientY,v=parseFloat(getComputedStyle(r).getPropertyValue(u)||`${C}`),p=i=>Math.min(Math.max(i,x),H),o=document.body,t=o.style.cursor,m=o.style.userSelect;o.style.cursor=E==="vertical"?"col-resize":"row-resize",o.style.userSelect="none",M?.(v);let a=i=>{let L=E==="vertical"?i.clientX:i.clientY,w=p(U(L,f,v));r.style.setProperty(u,`${w}px`),l.setAttribute("aria-valuenow",String(w)),R?.(w)},y=()=>{try{l.releasePointerCapture(b)}catch{}window.removeEventListener("pointermove",a),document.removeEventListener("pointermove",a),window.removeEventListener("mousemove",a),document.removeEventListener("mousemove",a),l.removeEventListener("pointermove",a),window.removeEventListener("pointerup",s),document.removeEventListener("pointerup",s),window.removeEventListener("mouseup",s),document.removeEventListener("mouseup",s),window.removeEventListener("pointercancel",s),document.removeEventListener("pointercancel",s),window.removeEventListener("keydown",k),l.removeEventListener("lostpointercapture",s),r.removeAttribute("data-resizing"),o.style.cursor=t,o.style.userSelect=m,g.current=null},s=()=>{let i=parseFloat(getComputedStyle(r).getPropertyValue(u)||`${C}`),L=i;if(D&&D.length){let w=D.reduce(($,I)=>Math.abs(I-i)<Math.abs($-i)?I:$,D[0]);Math.abs(w-i)<=(V??8)&&(L=w,r.style.setProperty(u,`${L}px`),l.setAttribute("aria-valuenow",String(L)),R?.(L))}A&&typeof z=="number"&&i<=z&&q?.(),h?.(L),y()},k=i=>{i.key==="Escape"&&(r.style.setProperty(u,`${v}px`),l.setAttribute("aria-valuenow",String(v)),h?.(v),y())};window.addEventListener("pointermove",a),document.addEventListener("pointermove",a),window.addEventListener("mousemove",a),document.addEventListener("mousemove",a),l.addEventListener("pointermove",a),window.addEventListener("pointerup",s),document.addEventListener("pointerup",s),window.addEventListener("mouseup",s),document.addEventListener("mouseup",s),window.addEventListener("pointercancel",s),document.addEventListener("pointercancel",s),window.addEventListener("keydown",k),l.addEventListener("lostpointercapture",s),g.current=y},onDoubleClick:()=>{A&&B?.()},onKeyDown:e=>{if(!P.current)return;let r=P.current,l=getComputedStyle(r).getPropertyValue(u),b=Number.parseFloat(l.trim()),f=Number.isFinite(b)?b:C,v=t=>Math.min(Math.max(t,x),H),p=e.shiftKey?32:8,o=0;if(E==="vertical"){let t=typeof document<"u"?document.dir:void 0,m=getComputedStyle(r).direction,a=!!(r.closest&&r.closest('[dir="rtl"]')),y=t==="rtl"||m==="rtl"||a;e.key==="ArrowRight"?o=y?-p:p:e.key==="ArrowLeft"&&(o=y?p:-p)}else e.key==="ArrowDown"?o=p:e.key==="ArrowUp"&&(o=-p);if(e.key==="Home"){e.preventDefault(),M?.(f);let t=v(x);r.style.setProperty(u,`${t}px`),e.currentTarget.setAttribute("aria-valuenow",String(t)),R?.(t),h?.(t);return}if(e.key==="End"){e.preventDefault(),M?.(f);let t=v(H);r.style.setProperty(u,`${t}px`),e.currentTarget.setAttribute("aria-valuenow",String(t)),R?.(t),h?.(t);return}if(o!==0){e.preventDefault(),M?.(f);let t=E==="vertical"&&T==="start"?-o:o,m=v(f+t);r.style.setProperty(u,`${m}px`),e.currentTarget.setAttribute("aria-valuenow",String(m)),R?.(m),h?.(m)}}},d)});S.displayName="Shell.Handle";var j=n.forwardRef((c,d)=>n.createElement(S,{...c,ref:d}));j.displayName="Shell.Panel.Handle";var G=n.forwardRef((c,d)=>n.createElement(S,{...c,ref:d}));G.displayName="Shell.Sidebar.Handle";var J=n.forwardRef((c,d)=>n.createElement(S,{...c,ref:d}));J.displayName="Shell.Inspector.Handle";var Q=n.forwardRef((c,d)=>n.createElement(S,{...c,ref:d}));Q.displayName="Shell.Bottom.Handle";export{S as a,j as b,G as c,J as d,Q as e};
2
- //# sourceMappingURL=chunk-Q73Y5O5P.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/shell-handles.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { usePaneResize } from './shell-resize.js';\n\nexport const PaneHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(({ className, children, ...props }, ref) => {\n const {\n containerRef,\n cssVarName,\n minSize,\n maxSize,\n defaultSize,\n orientation,\n edge,\n computeNext,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n collapsible,\n target,\n requestCollapse,\n requestToggle,\n } = usePaneResize();\n\n const activeCleanupRef = React.useRef<(() => void) | null>(null);\n React.useEffect(\n () => () => {\n try {\n activeCleanupRef.current?.();\n } catch {}\n activeCleanupRef.current = null;\n },\n [],\n );\n\n const ariaOrientation = orientation;\n\n // Generate accessible label from target\n const targetLabel = target.charAt(0).toUpperCase() + target.slice(1);\n const ariaLabel = `Resize ${targetLabel} pane`;\n\n return (\n <div\n {...props}\n ref={ref}\n className={classNames('rt-ShellResizer', className)}\n data-orientation={orientation}\n data-edge={edge}\n role=\"slider\"\n aria-label={ariaLabel}\n aria-orientation={ariaOrientation}\n aria-valuemin={minSize}\n aria-valuemax={maxSize}\n aria-valuenow={defaultSize}\n tabIndex={0}\n onPointerDown={(e) => {\n if (!containerRef.current) return;\n e.preventDefault();\n const container = containerRef.current;\n const handleEl = e.currentTarget as HTMLElement;\n const pointerId = e.pointerId;\n try {\n activeCleanupRef.current?.();\n } catch {}\n container.setAttribute('data-resizing', '');\n try {\n handleEl.setPointerCapture(pointerId);\n } catch {}\n const startClient = orientation === 'vertical' ? e.clientX : e.clientY;\n const startSize = parseFloat(getComputedStyle(container).getPropertyValue(cssVarName) || `${defaultSize}`);\n const clamp = (v: number) => Math.min(Math.max(v, minSize), maxSize);\n const body = document.body;\n const prevCursor = body.style.cursor;\n const prevUserSelect = body.style.userSelect;\n body.style.cursor = orientation === 'vertical' ? 'col-resize' : 'row-resize';\n body.style.userSelect = 'none';\n onResizeStart?.(startSize);\n const handleMove = (ev: PointerEvent) => {\n const client = orientation === 'vertical' ? ev.clientX : ev.clientY;\n const next = clamp(computeNext(client, startClient, startSize));\n container.style.setProperty(cssVarName, `${next}px`);\n handleEl.setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n };\n const cleanup = () => {\n try {\n handleEl.releasePointerCapture(pointerId);\n } catch {}\n window.removeEventListener('pointermove', handleMove as EventListener);\n document.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('mousemove', handleMove as EventListener);\n document.removeEventListener('mousemove', handleMove as EventListener);\n handleEl.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('pointerup', handleUp as EventListener);\n document.removeEventListener('pointerup', handleUp as EventListener);\n window.removeEventListener('mouseup', handleUp as EventListener);\n document.removeEventListener('mouseup', handleUp as EventListener);\n window.removeEventListener('pointercancel', handleUp as EventListener);\n document.removeEventListener('pointercancel', handleUp as EventListener);\n window.removeEventListener('keydown', handleKey as EventListener);\n handleEl.removeEventListener('lostpointercapture', handleUp as EventListener);\n container.removeAttribute('data-resizing');\n body.style.cursor = prevCursor;\n body.style.userSelect = prevUserSelect;\n activeCleanupRef.current = null;\n };\n const handleUp = () => {\n const finalSize = parseFloat(getComputedStyle(container).getPropertyValue(cssVarName) || `${defaultSize}`);\n let snapped = finalSize;\n if (snapPoints && snapPoints.length) {\n const nearest = snapPoints.reduce((acc, p) => (Math.abs(p - finalSize) < Math.abs(acc - finalSize) ? p : acc), snapPoints[0]);\n if (Math.abs(nearest - finalSize) <= (snapTolerance ?? 8)) {\n snapped = nearest;\n container.style.setProperty(cssVarName, `${snapped}px`);\n handleEl.setAttribute('aria-valuenow', String(snapped));\n onResize?.(snapped);\n }\n }\n if (collapsible && typeof collapseThreshold === 'number' && finalSize <= collapseThreshold) {\n requestCollapse?.();\n }\n onResizeEnd?.(snapped);\n cleanup();\n };\n const handleKey = (kev: KeyboardEvent) => {\n if (kev.key === 'Escape') {\n container.style.setProperty(cssVarName, `${startSize}px`);\n handleEl.setAttribute('aria-valuenow', String(startSize));\n onResizeEnd?.(startSize);\n cleanup();\n }\n };\n window.addEventListener('pointermove', handleMove as EventListener);\n document.addEventListener('pointermove', handleMove as EventListener);\n // Fallbacks for environments that don't fully support PointerEvent on window\n window.addEventListener('mousemove', handleMove as EventListener);\n document.addEventListener('mousemove', handleMove as EventListener);\n handleEl.addEventListener('pointermove', handleMove as EventListener);\n window.addEventListener('pointerup', handleUp as EventListener);\n document.addEventListener('pointerup', handleUp as EventListener);\n window.addEventListener('mouseup', handleUp as EventListener);\n document.addEventListener('mouseup', handleUp as EventListener);\n window.addEventListener('pointercancel', handleUp as EventListener);\n document.addEventListener('pointercancel', handleUp as EventListener);\n window.addEventListener('keydown', handleKey as EventListener);\n handleEl.addEventListener('lostpointercapture', handleUp as EventListener);\n activeCleanupRef.current = cleanup;\n }}\n onDoubleClick={() => {\n if (collapsible) requestToggle?.();\n }}\n onKeyDown={(e) => {\n if (!containerRef.current) return;\n const container = containerRef.current;\n const rawCurrent = getComputedStyle(container).getPropertyValue(cssVarName);\n const parsedCurrent = Number.parseFloat(rawCurrent.trim());\n const current = Number.isFinite(parsedCurrent) ? parsedCurrent : defaultSize;\n const clamp = (v: number) => Math.min(Math.max(v, minSize), maxSize);\n const step = e.shiftKey ? 32 : 8;\n let delta = 0;\n if (orientation === 'vertical') {\n const docDir = typeof document !== 'undefined' ? document.dir : undefined;\n const cssDir = getComputedStyle(container).direction;\n const hasRtlAncestor = !!(container.closest && container.closest('[dir=\"rtl\"]'));\n const isRtl = docDir === 'rtl' || cssDir === 'rtl' || hasRtlAncestor;\n if (e.key === 'ArrowRight')\n delta = isRtl ? -step : step; // inline-end\n else if (e.key === 'ArrowLeft') delta = isRtl ? step : -step; // inline-start\n } else {\n if (e.key === 'ArrowDown') delta = step;\n else if (e.key === 'ArrowUp') delta = -step;\n }\n if (e.key === 'Home') {\n e.preventDefault();\n onResizeStart?.(current);\n const next = clamp(minSize);\n container.style.setProperty(cssVarName, `${next}px`);\n (e.currentTarget as HTMLElement).setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n onResizeEnd?.(next);\n return;\n }\n if (e.key === 'End') {\n e.preventDefault();\n onResizeStart?.(current);\n const next = clamp(maxSize);\n container.style.setProperty(cssVarName, `${next}px`);\n (e.currentTarget as HTMLElement).setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n onResizeEnd?.(next);\n return;\n }\n if (delta !== 0) {\n e.preventDefault();\n onResizeStart?.(current);\n const signedDelta = orientation === 'vertical' ? (edge === 'start' ? -delta : delta) : delta;\n const next = clamp(current + signedDelta);\n container.style.setProperty(cssVarName, `${next}px`);\n (e.currentTarget as HTMLElement).setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n onResizeEnd?.(next);\n }\n }}\n >\n {children}\n </div>\n );\n});\nPaneHandle.displayName = 'Shell.Handle';\n\nexport const PanelHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nPanelHandle.displayName = 'Shell.Panel.Handle';\n\nexport const SidebarHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nSidebarHandle.displayName = 'Shell.Sidebar.Handle';\n\nexport const InspectorHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nInspectorHandle.displayName = 'Shell.Inspector.Handle';\n\nexport const BottomHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nBottomHandle.displayName = 'Shell.Bottom.Handle';\n"],
5
- "mappings": "wCAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aAGhB,IAAMC,EAAmB,aAAkE,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAM,EAAGC,IAAQ,CAC5I,GAAM,CACJ,aAAAC,EACA,WAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,KAAAC,EACA,YAAAC,EACA,SAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,YAAAC,EACA,OAAAC,EACA,gBAAAC,EACA,cAAAC,CACF,EAAIC,EAAc,EAEZC,EAAyB,SAA4B,IAAI,EACzD,YACJ,IAAM,IAAM,CACV,GAAI,CACFA,EAAiB,UAAU,CAC7B,MAAQ,CAAC,CACTA,EAAiB,QAAU,IAC7B,EACA,CAAC,CACH,EAEA,IAAMC,EAAkBf,EAIlBgB,EAAY,UADEN,EAAO,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAO,MAAM,CAAC,CAC5B,QAEvC,OACE,gBAAC,OACE,GAAGjB,EACJ,IAAKC,EACL,UAAWuB,EAAW,kBAAmB1B,CAAS,EAClD,mBAAkBS,EAClB,YAAWC,EACX,KAAK,SACL,aAAYe,EACZ,mBAAkBD,EAClB,gBAAelB,EACf,gBAAeC,EACf,gBAAeC,EACf,SAAU,EACV,cAAgB,GAAM,CACpB,GAAI,CAACJ,EAAa,QAAS,OAC3B,EAAE,eAAe,EACjB,IAAMuB,EAAYvB,EAAa,QACzBwB,EAAW,EAAE,cACbC,EAAY,EAAE,UACpB,GAAI,CACFN,EAAiB,UAAU,CAC7B,MAAQ,CAAC,CACTI,EAAU,aAAa,gBAAiB,EAAE,EAC1C,GAAI,CACFC,EAAS,kBAAkBC,CAAS,CACtC,MAAQ,CAAC,CACT,IAAMC,EAAcrB,IAAgB,WAAa,EAAE,QAAU,EAAE,QACzDsB,EAAY,WAAW,iBAAiBJ,CAAS,EAAE,iBAAiBtB,CAAU,GAAK,GAAGG,CAAW,EAAE,EACnGwB,EAASC,GAAc,KAAK,IAAI,KAAK,IAAIA,EAAG3B,CAAO,EAAGC,CAAO,EAC7D2B,EAAO,SAAS,KAChBC,EAAaD,EAAK,MAAM,OACxBE,EAAiBF,EAAK,MAAM,WAClCA,EAAK,MAAM,OAASzB,IAAgB,WAAa,aAAe,aAChEyB,EAAK,MAAM,WAAa,OACxBrB,IAAgBkB,CAAS,EACzB,IAAMM,EAAcC,GAAqB,CACvC,IAAMC,EAAS9B,IAAgB,WAAa6B,EAAG,QAAUA,EAAG,QACtDE,EAAOR,EAAMrB,EAAY4B,EAAQT,EAAaC,CAAS,CAAC,EAC9DJ,EAAU,MAAM,YAAYtB,EAAY,GAAGmC,CAAI,IAAI,EACnDZ,EAAS,aAAa,gBAAiB,OAAOY,CAAI,CAAC,EACnD5B,IAAW4B,CAAI,CACjB,EACMC,EAAU,IAAM,CACpB,GAAI,CACFb,EAAS,sBAAsBC,CAAS,CAC1C,MAAQ,CAAC,CACT,OAAO,oBAAoB,cAAeQ,CAA2B,EACrE,SAAS,oBAAoB,cAAeA,CAA2B,EACvE,OAAO,oBAAoB,YAAaA,CAA2B,EACnE,SAAS,oBAAoB,YAAaA,CAA2B,EACrET,EAAS,oBAAoB,cAAeS,CAA2B,EACvE,OAAO,oBAAoB,YAAaK,CAAyB,EACjE,SAAS,oBAAoB,YAAaA,CAAyB,EACnE,OAAO,oBAAoB,UAAWA,CAAyB,EAC/D,SAAS,oBAAoB,UAAWA,CAAyB,EACjE,OAAO,oBAAoB,gBAAiBA,CAAyB,EACrE,SAAS,oBAAoB,gBAAiBA,CAAyB,EACvE,OAAO,oBAAoB,UAAWC,CAA0B,EAChEf,EAAS,oBAAoB,qBAAsBc,CAAyB,EAC5Ef,EAAU,gBAAgB,eAAe,EACzCO,EAAK,MAAM,OAASC,EACpBD,EAAK,MAAM,WAAaE,EACxBb,EAAiB,QAAU,IAC7B,EACMmB,EAAW,IAAM,CACrB,IAAME,EAAY,WAAW,iBAAiBjB,CAAS,EAAE,iBAAiBtB,CAAU,GAAK,GAAGG,CAAW,EAAE,EACrGqC,EAAUD,EACd,GAAI7B,GAAcA,EAAW,OAAQ,CACnC,IAAM+B,EAAU/B,EAAW,OAAO,CAACgC,EAAKC,IAAO,KAAK,IAAIA,EAAIJ,CAAS,EAAI,KAAK,IAAIG,EAAMH,CAAS,EAAII,EAAID,EAAMhC,EAAW,CAAC,CAAC,EACxH,KAAK,IAAI+B,EAAUF,CAAS,IAAM5B,GAAiB,KACrD6B,EAAUC,EACVnB,EAAU,MAAM,YAAYtB,EAAY,GAAGwC,CAAO,IAAI,EACtDjB,EAAS,aAAa,gBAAiB,OAAOiB,CAAO,CAAC,EACtDjC,IAAWiC,CAAO,EAEtB,CACI3B,GAAe,OAAOD,GAAsB,UAAY2B,GAAa3B,GACvEG,IAAkB,EAEpBN,IAAc+B,CAAO,EACrBJ,EAAQ,CACV,EACME,EAAaM,GAAuB,CACpCA,EAAI,MAAQ,WACdtB,EAAU,MAAM,YAAYtB,EAAY,GAAG0B,CAAS,IAAI,EACxDH,EAAS,aAAa,gBAAiB,OAAOG,CAAS,CAAC,EACxDjB,IAAciB,CAAS,EACvBU,EAAQ,EAEZ,EACA,OAAO,iBAAiB,cAAeJ,CAA2B,EAClE,SAAS,iBAAiB,cAAeA,CAA2B,EAEpE,OAAO,iBAAiB,YAAaA,CAA2B,EAChE,SAAS,iBAAiB,YAAaA,CAA2B,EAClET,EAAS,iBAAiB,cAAeS,CAA2B,EACpE,OAAO,iBAAiB,YAAaK,CAAyB,EAC9D,SAAS,iBAAiB,YAAaA,CAAyB,EAChE,OAAO,iBAAiB,UAAWA,CAAyB,EAC5D,SAAS,iBAAiB,UAAWA,CAAyB,EAC9D,OAAO,iBAAiB,gBAAiBA,CAAyB,EAClE,SAAS,iBAAiB,gBAAiBA,CAAyB,EACpE,OAAO,iBAAiB,UAAWC,CAA0B,EAC7Df,EAAS,iBAAiB,qBAAsBc,CAAyB,EACzEnB,EAAiB,QAAUkB,CAC7B,EACA,cAAe,IAAM,CACfvB,GAAaG,IAAgB,CACnC,EACA,UAAY,GAAM,CAChB,GAAI,CAACjB,EAAa,QAAS,OAC3B,IAAMuB,EAAYvB,EAAa,QACzB8C,EAAa,iBAAiBvB,CAAS,EAAE,iBAAiBtB,CAAU,EACpE8C,EAAgB,OAAO,WAAWD,EAAW,KAAK,CAAC,EACnDE,EAAU,OAAO,SAASD,CAAa,EAAIA,EAAgB3C,EAC3DwB,EAASC,GAAc,KAAK,IAAI,KAAK,IAAIA,EAAG3B,CAAO,EAAGC,CAAO,EAC7D8C,EAAO,EAAE,SAAW,GAAK,EAC3BC,EAAQ,EACZ,GAAI7C,IAAgB,WAAY,CAC9B,IAAM8C,EAAS,OAAO,SAAa,IAAc,SAAS,IAAM,OAC1DC,EAAS,iBAAiB7B,CAAS,EAAE,UACrC8B,EAAiB,CAAC,EAAE9B,EAAU,SAAWA,EAAU,QAAQ,aAAa,GACxE+B,EAAQH,IAAW,OAASC,IAAW,OAASC,EAClD,EAAE,MAAQ,aACZH,EAAQI,EAAQ,CAACL,EAAOA,EACjB,EAAE,MAAQ,cAAaC,EAAQI,EAAQL,EAAO,CAACA,EAC1D,MACM,EAAE,MAAQ,YAAaC,EAAQD,EAC1B,EAAE,MAAQ,YAAWC,EAAQ,CAACD,GAEzC,GAAI,EAAE,MAAQ,OAAQ,CACpB,EAAE,eAAe,EACjBxC,IAAgBuC,CAAO,EACvB,IAAMZ,EAAOR,EAAM1B,CAAO,EAC1BqB,EAAU,MAAM,YAAYtB,EAAY,GAAGmC,CAAI,IAAI,EAClD,EAAE,cAA8B,aAAa,gBAAiB,OAAOA,CAAI,CAAC,EAC3E5B,IAAW4B,CAAI,EACf1B,IAAc0B,CAAI,EAClB,MACF,CACA,GAAI,EAAE,MAAQ,MAAO,CACnB,EAAE,eAAe,EACjB3B,IAAgBuC,CAAO,EACvB,IAAMZ,EAAOR,EAAMzB,CAAO,EAC1BoB,EAAU,MAAM,YAAYtB,EAAY,GAAGmC,CAAI,IAAI,EAClD,EAAE,cAA8B,aAAa,gBAAiB,OAAOA,CAAI,CAAC,EAC3E5B,IAAW4B,CAAI,EACf1B,IAAc0B,CAAI,EAClB,MACF,CACA,GAAIc,IAAU,EAAG,CACf,EAAE,eAAe,EACjBzC,IAAgBuC,CAAO,EACvB,IAAMO,EAAclD,IAAgB,YAAcC,IAAS,QAAU,CAAC4C,EAAiBA,EACjFd,EAAOR,EAAMoB,EAAUO,CAAW,EACxChC,EAAU,MAAM,YAAYtB,EAAY,GAAGmC,CAAI,IAAI,EAClD,EAAE,cAA8B,aAAa,gBAAiB,OAAOA,CAAI,CAAC,EAC3E5B,IAAW4B,CAAI,EACf1B,IAAc0B,CAAI,CACpB,CACF,GAECvC,CACH,CAEJ,CAAC,EACDF,EAAW,YAAc,eAElB,IAAM6D,EAAoB,aAAkE,CAAC1D,EAAOC,IAAQ,gBAACJ,EAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EACtJyD,EAAY,YAAc,qBAEnB,IAAMC,EAAsB,aAAkE,CAAC3D,EAAOC,IAAQ,gBAACJ,EAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EACxJ0D,EAAc,YAAc,uBAErB,IAAMC,EAAwB,aAAkE,CAAC5D,EAAOC,IAAQ,gBAACJ,EAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EAC1J2D,EAAgB,YAAc,yBAEvB,IAAMC,EAAqB,aAAkE,CAAC7D,EAAOC,IAAQ,gBAACJ,EAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EACvJ4D,EAAa,YAAc",
6
- "names": ["React", "classNames", "PaneHandle", "className", "children", "props", "ref", "containerRef", "cssVarName", "minSize", "maxSize", "defaultSize", "orientation", "edge", "computeNext", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "collapsible", "target", "requestCollapse", "requestToggle", "usePaneResize", "activeCleanupRef", "ariaOrientation", "ariaLabel", "classNames", "container", "handleEl", "pointerId", "startClient", "startSize", "clamp", "v", "body", "prevCursor", "prevUserSelect", "handleMove", "ev", "client", "next", "cleanup", "handleUp", "handleKey", "finalSize", "snapped", "nearest", "acc", "p", "kev", "rawCurrent", "parsedCurrent", "current", "step", "delta", "docDir", "cssDir", "hasRtlAncestor", "isRtl", "signedDelta", "PanelHandle", "SidebarHandle", "InspectorHandle", "BottomHandle"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as v}from"./chunk-ITRVKLYU.js";import{a as S}from"./chunk-HACQF6F4.js";import{a as f}from"./chunk-MJJ7XDIP.js";import{a as R}from"./chunk-GCUGJXI2.js";import{c as D}from"./chunk-LN5SP46K.js";import{a as C}from"./chunk-4OBMRJHC.js";import{a as d}from"./chunk-KMPBTEZH.js";import{a as q}from"./chunk-3XT5P2HO.js";var F={};q(F,{Close:()=>k,Content:()=>b,Description:()=>N,Root:()=>T,Title:()=>x,Trigger:()=>E});import*as e from"react";import I from"classnames";import{Dialog as n}from"radix-ui";var T=o=>e.createElement(n.Root,{...o,modal:!0});T.displayName="Sheet.Root";var E=e.forwardRef(({children:o,...t},r)=>e.createElement(n.Trigger,{...t,ref:r,asChild:!0},f(o)));E.displayName="Sheet.Trigger";var b=e.forwardRef((o,t)=>{let{side:r="start",forceMount:a,container:M,className:w,panelBackground:B,material:W,...O}=o,H={left:"start",right:"end",start:"start",end:"end",top:"top",bottom:"bottom"}[r],{align:G,panelBackground:L,material:z,...h}=R,{panelBackground:c,material:g}=d({panelBackground:B,material:W},{panelBackground:L,material:z}),P=e.useMemo(()=>g??c,[g,c]),{default:J,...j}=h.maxWidth,A={...h,maxWidth:j},{className:V,..._}=d(O,A),u=e.useRef(null),K=e.useMemo(()=>i=>{u.current=i,typeof t=="function"?t(i):t&&(t.current=i)},[t]);return v(),e.useEffect(()=>{if(typeof window>"u")return;let i=u.current;if(!i)return;let s=i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(s.length===0)return;let l=s[0],m=s[s.length-1],y=p=>{p.key==="Tab"&&(p.shiftKey?document.activeElement===l&&(p.preventDefault(),m.focus()):document.activeElement===m&&(p.preventDefault(),l.focus()))};return i.addEventListener("keydown",y),l.focus(),()=>{i.removeEventListener("keydown",y)}},[]),e.createElement(n.Portal,{container:M,forceMount:a},e.createElement(D,{asChild:!0},e.createElement(n.Overlay,{className:"rt-BaseDialogOverlay rt-DialogOverlay rt-SheetOverlay"},e.createElement(n.Content,{..._,ref:K,className:I("rt-BaseDialogContent","rt-SheetContent",w,V),"data-side":H,"data-material":P,"data-panel-background":P,tabIndex:-1,role:"dialog","aria-modal":"true"}))))});b.displayName="Sheet.Content";var x=e.forwardRef(({size:o="4",weight:t="medium",...r},a)=>e.createElement(n.Title,{asChild:!0},e.createElement(S,{ref:a,size:o,weight:t,...r})));x.displayName="Sheet.Title";var N=e.forwardRef(({size:o="2",color:t="gray",...r},a)=>e.createElement(n.Description,{asChild:!0},e.createElement(C,{ref:a,size:o,color:t,...r})));N.displayName="Sheet.Description";var k=e.forwardRef(({children:o,...t},r)=>e.createElement(n.Close,{...t,ref:r,asChild:!0},f(o)));k.displayName="Sheet.Close";export{T as a,E as b,b as c,x as d,N as e,k as f,F as g};
2
- //# sourceMappingURL=chunk-UUX42HBM.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/sheet.tsx"],
4
- "sourcesContent": ["'use client';\n\n/**\n * Sheet\n *\n * A side-placed overlay built on top of Radix Dialog. It inherits accessibility,\n * focus management, overlay behavior, and sizing scales from the base dialog, and\n * adds side placement and slide motion suited for navigation panels and drawers.\n *\n * Structure mirrors Dialog:\n * - Root, Trigger, Content, Title, Description, Close\n *\n * Notes\n * - Side: set with `side` on `Sheet.Content`. Aliases: `left` \u2192 `start`, `right` \u2192 `end`.\n * - Sizing: reuses Dialog content prop defs (width/min/max/height/size). Default Dialog\n * maxWidth clamping is removed for Sheets.\n * - Material: use `material` (solid | translucent). Deprecated `panelBackground` falls back\n * in dev with a warning.\n * - A11y: provide an accessible name via `Sheet.Title` or `aria-label` on `Sheet.Content`.\n *\n * Example\n * <Sheet.Root>\n * <Sheet.Trigger>\n * <Button>Open</Button>\n * </Sheet.Trigger>\n * <Sheet.Content side=\"end\" width={{ initial: '280px', md: '360px' }}>\n * <Sheet.Title>Details</Sheet.Title>\n * ...\n * <Sheet.Close>\n * <Button>Close</Button>\n * </Sheet.Close>\n * </Sheet.Content>\n * </Sheet.Root>\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { dialogContentPropDefs } from './dialog.props.js';\nimport type { DialogContentOwnProps } from './dialog.props.js';\nimport { Theme } from './theme.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { HeadingProps } from './heading.js';\n\n/**\n * Supported sides for the Sheet.\n * Aliases are normalized RTL-aware: `left` \u2192 `start`, `right` \u2192 `end`.\n */\ntype SheetSide = 'start' | 'end' | 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Sheet is a side-placed overlay built on the Dialog primitive.\n * It reuses Dialog's accessibility, focus, overlay, and size scales, while adding side placement and slide motion.\n */\n\n// Root\n/**\n * Props for `Sheet.Root` (Radix Dialog root with `modal` forced on).\n */\ninterface SheetRootProps extends ComponentPropsWithout<typeof DialogPrimitive.Root, 'modal'> {}\nconst Root: React.FC<SheetRootProps> = (props) => <DialogPrimitive.Root {...props} modal />;\nRoot.displayName = 'Sheet.Root';\n\n// Trigger\n/** Element type for `Sheet.Trigger`. */\ntype SheetTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\n/** Props for `Sheet.Trigger` (expects a single element child). */\ninterface SheetTriggerProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Trigger, RemovedProps> {}\nconst Trigger = React.forwardRef<SheetTriggerElement, SheetTriggerProps>(\n ({ children, ...props }, ref) => (\n <DialogPrimitive.Trigger {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Trigger>\n ),\n);\nTrigger.displayName = 'Sheet.Trigger';\n\n// Content\n/** Element type for `Sheet.Content`. */\ntype SheetContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ninterface SheetContentProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,\n DialogContentOwnProps {\n /** Side where the Sheet should appear. `left`/`right` alias to `start`/`end`. */\n side?: SheetSide;\n /** Optional DOM container to portal into. Defaults to `document.body`. */\n container?: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>['container'];\n}\n\n/**\n * Renders the Sheet panel. Normalizes left/right to logical start/end and\n * forwards dialog sizing props. Provide an accessible name via `Sheet.Title`\n * or `aria-label`.\n */\nconst Content = React.forwardRef<SheetContentElement, SheetContentProps>(\n (allProps, forwardedRef) => {\n const {\n side = 'start',\n forceMount,\n container,\n className,\n panelBackground: panelBackgroundProp,\n material: materialProp,\n ...restProps\n } = allProps;\n const normalizedSideMap: Record<SheetSide, 'start' | 'end' | 'top' | 'bottom'> = {\n left: 'start',\n right: 'end',\n start: 'start',\n end: 'end',\n top: 'top',\n bottom: 'bottom',\n };\n const normalizedSide = normalizedSideMap[side];\n // Reuse dialog content prop defs for size/width/height tokens, but handle\n // material/panelBackground explicitly to avoid forwarding unknown DOM props.\n const {\n align: _alignPropDef,\n panelBackground: panelBackgroundPropDef,\n material: materialPropDef,\n ...propDefs\n } = dialogContentPropDefs;\n\n // Extract panelBackground and material together (remove from DOM props)\n const { panelBackground: resolvedPanelBackground, material: resolvedMaterial } = extractProps(\n { panelBackground: panelBackgroundProp, material: materialProp },\n { panelBackground: panelBackgroundPropDef, material: materialPropDef },\n );\n\n const materialValue = React.useMemo(() => {\n if (resolvedPanelBackground !== undefined) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use the `material` prop instead.',\n );\n }\n }\n return resolvedMaterial ?? resolvedPanelBackground;\n }, [resolvedMaterial, resolvedPanelBackground]);\n\n // Now extract remaining props using dialog defs so size/width/height classnames are applied\n // Override dialog's default maxWidth (600px) to avoid clamping Sheet by default\n // Match dialog.tsx: extract once and avoid leaking panel/material\n const { default: _mwDefault, ...maxWidthWithoutDefault } = propDefs.maxWidth;\n const sheetPropDefs = {\n ...propDefs,\n maxWidth: maxWidthWithoutDefault,\n } as typeof propDefs;\n const { className: extractedClassName, ...contentProps } = extractProps(\n restProps,\n sheetPropDefs,\n );\n\n // Dev-only a11y guard: ensure label is provided via Title or aria-label\n if (process.env.NODE_ENV !== 'production') {\n const children = (contentProps as any).children as React.ReactNode;\n const hasAriaLabel = typeof (contentProps as any)['aria-label'] === 'string';\n let hasTitle = false;\n if (children) {\n for (const child of React.Children.toArray(children)) {\n if (React.isValidElement(child) && child.type === Title) {\n hasTitle = true;\n break;\n }\n }\n }\n if (!hasTitle && !hasAriaLabel) {\n console.warn(\n 'Sheet.Content: Missing accessible name. Include Sheet.Title as a child or provide aria-label.',\n );\n }\n }\n\n // Focus management and stuck pointer-events cleanup like Dialog\n const contentRef = React.useRef<HTMLDivElement>(null);\n const combinedRef = React.useMemo(\n () => (node: HTMLDivElement | null) => {\n contentRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [forwardedRef],\n );\n\n useBodyPointerEventsCleanup();\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n const content = contentRef.current;\n if (!content) return;\n\n const focusableElements = content.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n content.addEventListener('keydown', handleKeyDown);\n firstElement.focus();\n\n return () => {\n content.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n\n return (\n <DialogPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DialogPrimitive.Overlay className=\"rt-BaseDialogOverlay rt-DialogOverlay rt-SheetOverlay\">\n <DialogPrimitive.Content\n {...contentProps}\n ref={combinedRef}\n className={classNames(\n 'rt-BaseDialogContent',\n 'rt-SheetContent',\n className,\n extractedClassName,\n )}\n data-side={normalizedSide}\n data-material={materialValue}\n data-panel-background={materialValue}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n />\n </DialogPrimitive.Overlay>\n </Theme>\n </DialogPrimitive.Portal>\n );\n },\n);\nContent.displayName = 'Sheet.Content';\n\n// Title - renders as Heading with sensible defaults\ntype SheetTitleElement = React.ElementRef<typeof Heading>;\ntype SheetTitleProps = HeadingProps;\n/** Accessible title for the Sheet. Renders as Heading with sensible defaults. */\nconst Title = React.forwardRef<SheetTitleElement, SheetTitleProps>(\n ({ size = '4', weight = 'medium', ...props }, ref) => (\n <DialogPrimitive.Title asChild>\n <Heading ref={ref} size={size} weight={weight} {...props} />\n </DialogPrimitive.Title>\n ),\n);\nTitle.displayName = 'Sheet.Title';\n\n// Description - renders as Text with sensible defaults\ntype SheetDescriptionElement = React.ElementRef<typeof Text>;\ntype SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof Text>;\n/** Supplementary description text for Sheet content. Renders as Text with sensible defaults. */\nconst Description = React.forwardRef<SheetDescriptionElement, SheetDescriptionProps>(\n ({ size = '2', color = 'gray', ...rest }, ref) => (\n <DialogPrimitive.Description asChild>\n <Text ref={ref} size={size} color={color} {...rest} />\n </DialogPrimitive.Description>\n ),\n);\nDescription.displayName = 'Sheet.Description';\n\ntype SheetCloseElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface SheetCloseProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Close, RemovedProps> {}\n/** Close button for the Sheet. Expects a single element child rendered via `asChild`. */\nconst Close = React.forwardRef<SheetCloseElement, SheetCloseProps>(\n ({ children, ...props }, ref) => (\n <DialogPrimitive.Close {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Close>\n ),\n);\nClose.displayName = 'Sheet.Close';\n\nexport { Root, Trigger, Content, Title, Description, Close };\nexport type {\n SheetRootProps as RootProps,\n SheetTriggerProps as TriggerProps,\n SheetContentProps as ContentProps,\n SheetTitleProps as TitleProps,\n SheetDescriptionProps as DescriptionProps,\n SheetCloseProps as CloseProps,\n};\n"],
5
- "mappings": "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",
6
- "names": ["sheet_exports", "__export", "Close", "Content", "Description", "Root", "Title", "Trigger", "React", "classNames", "DialogPrimitive", "Root", "props", "DialogPrimitive", "Trigger", "children", "ref", "requireReactElement", "Content", "allProps", "forwardedRef", "side", "forceMount", "container", "className", "panelBackgroundProp", "materialProp", "restProps", "normalizedSide", "_alignPropDef", "panelBackgroundPropDef", "materialPropDef", "propDefs", "dialogContentPropDefs", "resolvedPanelBackground", "resolvedMaterial", "extractProps", "materialValue", "_mwDefault", "maxWidthWithoutDefault", "sheetPropDefs", "extractedClassName", "contentProps", "contentRef", "combinedRef", "node", "useBodyPointerEventsCleanup", "content", "focusableElements", "firstElement", "lastElement", "handleKeyDown", "event", "Theme", "classNames", "Title", "size", "weight", "Heading", "Description", "color", "rest", "Text", "Close"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as y}from"./chunk-XKBLNVOD.js";import{a as u}from"./chunk-HACQF6F4.js";import{a as p}from"./chunk-MJJ7XDIP.js";import{c as P}from"./chunk-LN5SP46K.js";import{a as C}from"./chunk-4OBMRJHC.js";import{a}from"./chunk-KMPBTEZH.js";import{a as K}from"./chunk-3XT5P2HO.js";var j={};K(j,{Action:()=>x,Cancel:()=>N,Content:()=>T,Description:()=>h,Root:()=>R,Title:()=>E,Trigger:()=>v});import*as e from"react";import _ from"classnames";import{AlertDialog as l}from"radix-ui";var R=t=>e.createElement(l.Root,{...t});R.displayName="AlertDialog.Root";var v=e.forwardRef(({children:t,...o},r)=>e.createElement(l.Trigger,{...o,ref:r,asChild:!0},p(t)));v.displayName="AlertDialog.Trigger";var T=e.forwardRef(({align:t,...o},r)=>{let{align:b,panelBackground:k,material:B,...w}=y,{className:M}=a({align:t},{align:b}),{panelBackground:m}=a({panelBackground:o.panelBackground},{panelBackground:k}),{material:c}=a({material:o.material},{material:B}),D=e.useMemo(()=>(c!==void 0&&console.warn("Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead."),c??m),[c,m]),{className:W,forceMount:H,container:L,panelBackground:q,material:z,...O}=a(o,w),A=e.useRef(null),S=e.useMemo(()=>i=>{A.current=i,typeof r=="function"?r(i):r&&(r.current=i)},[r]);return e.useEffect(()=>{if(typeof window>"u")return;let i=A.current;if(!i)return;let n=i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(n.length===0)return;let g=n[0],f=n[n.length-1],d=s=>{s.key==="Tab"&&(s.shiftKey?document.activeElement===g&&(s.preventDefault(),f.focus()):document.activeElement===f&&(s.preventDefault(),g.focus()))};return i.addEventListener("keydown",d),g.focus(),()=>{i.removeEventListener("keydown",d)}},[]),e.createElement(l.Portal,{container:L,forceMount:H},e.createElement(P,{asChild:!0},e.createElement(l.Overlay,{className:"rt-BaseDialogOverlay rt-AlertDialogOverlay"},e.createElement("div",{className:"rt-BaseDialogScroll rt-AlertDialogScroll"},e.createElement("div",{className:`rt-BaseDialogScrollPadding rt-AlertDialogScrollPadding ${M}`},e.createElement(l.Content,{...O,ref:S,className:_("rt-BaseDialogContent","rt-AlertDialogContent",W),"data-material":D,"data-panel-background":D,tabIndex:-1,role:"alertdialog","aria-modal":"true","aria-describedby":"alert-dialog-description",onCloseAutoFocus:i=>{i.preventDefault(),document.body.style.pointerEvents=""}}),e.createElement("div",{"aria-live":"assertive","aria-atomic":"true",className:"rt-sr-only",id:"alert-dialog-announcement"}))))))});T.displayName="AlertDialog.Content";var E=e.forwardRef((t,o)=>e.createElement(l.Title,{asChild:!0},e.createElement(u,{size:"5",mb:"3",trim:"start",...t,asChild:!1,ref:o})));E.displayName="AlertDialog.Title";var h=e.forwardRef((t,o)=>e.createElement(l.Description,{asChild:!0},e.createElement(C,{as:"p",size:"3",...t,asChild:!1,ref:o})));h.displayName="AlertDialog.Description";var x=e.forwardRef(({children:t,...o},r)=>e.createElement(l.Action,{...o,ref:r,asChild:!0},p(t)));x.displayName="AlertDialog.Action";var N=e.forwardRef(({children:t,...o},r)=>e.createElement(l.Cancel,{...o,ref:r,asChild:!0},p(t)));N.displayName="AlertDialog.Cancel";export{R as a,v as b,T as c,E as d,h as e,x as f,N as g,j as h};
2
- //# sourceMappingURL=chunk-X7BD5FLE.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/alert-dialog.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\n\nimport { alertDialogContentPropDefs } from './alert-dialog.props.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { Theme } from './theme.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\n\nimport type { AlertDialogContentOwnProps } from './alert-dialog.props.js';\nimport type {\n ComponentPropsWithout,\n RemovedProps,\n ComponentPropsAs,\n} from '../helpers/component-props.js';\n\ninterface AlertDialogRootProps\n extends React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Root> {}\nconst AlertDialogRoot: React.FC<AlertDialogRootProps> = (props) => (\n <AlertDialogPrimitive.Root {...props} />\n);\nAlertDialogRoot.displayName = 'AlertDialog.Root';\n\ntype AlertDialogTriggerElement = React.ElementRef<typeof AlertDialogPrimitive.Trigger>;\ninterface AlertDialogTriggerProps\n extends ComponentPropsWithout<typeof AlertDialogPrimitive.Trigger, RemovedProps> {}\nconst AlertDialogTrigger = React.forwardRef<AlertDialogTriggerElement, AlertDialogTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <AlertDialogPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </AlertDialogPrimitive.Trigger>\n ),\n);\nAlertDialogTrigger.displayName = 'AlertDialog.Trigger';\n\ntype AlertDialogContentElement = React.ElementRef<typeof AlertDialogPrimitive.Content>;\ninterface AlertDialogContentProps\n extends ComponentPropsWithout<typeof AlertDialogPrimitive.Content, RemovedProps>,\n AlertDialogContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Portal>['container'];\n}\nconst AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDialogContentProps>(\n ({ align, ...props }, forwardedRef) => {\n const {\n align: alignPropDef,\n panelBackground: panelBackgroundPropDef,\n material: materialPropDef,\n ...propDefs\n } = alertDialogContentPropDefs;\n\n const { className: alignClassName } = extractProps({ align }, { align: alignPropDef });\n\n // Extract panelBackground and material from props\n const { panelBackground: extractedPanelBackground } = extractProps(\n { panelBackground: props.panelBackground },\n { panelBackground: panelBackgroundPropDef },\n );\n\n const { material: extractedMaterial } = extractProps(\n { material: props.material },\n { material: materialPropDef },\n );\n\n // Handle material prop with panelBackground fallback\n const materialValue = React.useMemo(() => {\n if (extractedMaterial !== undefined) {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',\n );\n }\n return extractedMaterial ?? extractedPanelBackground;\n }, [extractedMaterial, extractedPanelBackground]);\n\n const {\n className,\n forceMount,\n container,\n panelBackground: _,\n material: __,\n ...contentProps\n } = extractProps(props, propDefs);\n\n // Focus management\n const contentRef = React.useRef<HTMLDivElement>(null);\n const combinedRef = React.useMemo(\n () => (node: HTMLDivElement | null) => {\n contentRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef],\n );\n\n // Focus trap effect\n React.useEffect(() => {\n // SSR safety - only run on client\n if (typeof window === 'undefined') return;\n\n const content = contentRef.current;\n if (!content) return;\n\n const focusableElements = content.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else {\n if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n }\n };\n\n content.addEventListener('keydown', handleKeyDown);\n\n // Focus first element when dialog opens\n firstElement.focus();\n\n return () => {\n content.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n\n return (\n <AlertDialogPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <AlertDialogPrimitive.Overlay className=\"rt-BaseDialogOverlay rt-AlertDialogOverlay\">\n <div className=\"rt-BaseDialogScroll rt-AlertDialogScroll\">\n <div\n className={`rt-BaseDialogScrollPadding rt-AlertDialogScrollPadding ${alignClassName}`}\n >\n <AlertDialogPrimitive.Content\n {...contentProps}\n ref={combinedRef}\n className={classNames('rt-BaseDialogContent', 'rt-AlertDialogContent', className)}\n data-material={materialValue}\n data-panel-background={materialValue}\n tabIndex={-1}\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-describedby=\"alert-dialog-description\"\n onCloseAutoFocus={(event) => {\n // Prevent default focus behavior\n event.preventDefault();\n // Restore pointer-events to body (Radix UI fix for issue #1241)\n document.body.style.pointerEvents = '';\n }}\n />\n {/* ARIA live region for screen reader announcements */}\n <div\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n className=\"rt-sr-only\"\n id=\"alert-dialog-announcement\"\n />\n </div>\n </div>\n </AlertDialogPrimitive.Overlay>\n </Theme>\n </AlertDialogPrimitive.Portal>\n );\n },\n);\nAlertDialogContent.displayName = 'AlertDialog.Content';\n\ntype AlertDialogTitleElement = React.ElementRef<typeof Heading>;\ntype AlertDialogTitleProps = ComponentPropsWithout<typeof Heading, 'asChild'>;\nconst AlertDialogTitle = React.forwardRef<AlertDialogTitleElement, AlertDialogTitleProps>(\n (props, forwardedRef) => (\n <AlertDialogPrimitive.Title asChild>\n <Heading size=\"5\" mb=\"3\" trim=\"start\" {...props} asChild={false} ref={forwardedRef} />\n </AlertDialogPrimitive.Title>\n ),\n);\nAlertDialogTitle.displayName = 'AlertDialog.Title';\n\ntype AlertDialogDescriptionElement = HTMLParagraphElement;\ntype AlertDialogDescriptionProps = ComponentPropsAs<typeof Text, 'p'>;\nconst AlertDialogDescription = React.forwardRef<\n AlertDialogDescriptionElement,\n AlertDialogDescriptionProps\n>((props, forwardedRef) => (\n <AlertDialogPrimitive.Description asChild>\n <Text as=\"p\" size=\"3\" {...props} asChild={false} ref={forwardedRef} />\n </AlertDialogPrimitive.Description>\n));\nAlertDialogDescription.displayName = 'AlertDialog.Description';\n\ntype AlertDialogActionElement = React.ElementRef<typeof AlertDialogPrimitive.Action>;\ninterface AlertDialogActionProps\n extends ComponentPropsWithout<typeof AlertDialogPrimitive.Action, RemovedProps> {}\nconst AlertDialogAction = React.forwardRef<AlertDialogActionElement, AlertDialogActionProps>(\n ({ children, ...props }, forwardedRef) => (\n <AlertDialogPrimitive.Action {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </AlertDialogPrimitive.Action>\n ),\n);\nAlertDialogAction.displayName = 'AlertDialog.Action';\n\ntype AlertDialogCancelElement = React.ElementRef<typeof AlertDialogPrimitive.Cancel>;\ninterface AlertDialogCancelProps\n extends ComponentPropsWithout<typeof AlertDialogPrimitive.Cancel, RemovedProps> {}\nconst AlertDialogCancel = React.forwardRef<AlertDialogCancelElement, AlertDialogCancelProps>(\n ({ children, ...props }, forwardedRef) => (\n <AlertDialogPrimitive.Cancel {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </AlertDialogPrimitive.Cancel>\n ),\n);\nAlertDialogCancel.displayName = 'AlertDialog.Cancel';\n\nexport {\n AlertDialogRoot as Root,\n AlertDialogTrigger as Trigger,\n AlertDialogContent as Content,\n AlertDialogTitle as Title,\n AlertDialogDescription as Description,\n AlertDialogAction as Action,\n AlertDialogCancel as Cancel,\n};\n\nexport type {\n AlertDialogRootProps as RootProps,\n AlertDialogTriggerProps as TriggerProps,\n AlertDialogContentProps as ContentProps,\n AlertDialogTitleProps as TitleProps,\n AlertDialogDescriptionProps as DescriptionProps,\n AlertDialogActionProps as ActionProps,\n AlertDialogCancelProps as CancelProps,\n};\n"],
5
- "mappings": "mRAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,WAAAC,EAAA,YAAAC,EAAA,gBAAAC,EAAA,SAAAC,EAAA,UAAAC,EAAA,YAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,MAA4B,WAkBpD,IAAMC,EAAmDC,GACvD,gBAACC,EAAqB,KAArB,CAA2B,GAAGD,EAAO,EAExCD,EAAgB,YAAc,mBAK9B,IAAMG,EAA2B,aAC/B,CAAC,CAAE,SAAAC,EAAU,GAAGH,CAAM,EAAGI,IACvB,gBAACH,EAAqB,QAArB,CAA8B,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAChEC,EAAoBF,CAAQ,CAC/B,CAEJ,EACAD,EAAmB,YAAc,sBAQjC,IAAMI,EAA2B,aAC/B,CAAC,CAAE,MAAAC,EAAO,GAAGP,CAAM,EAAGI,IAAiB,CACrC,GAAM,CACJ,MAAOI,EACP,gBAAiBC,EACjB,SAAUC,EACV,GAAGC,CACL,EAAIC,EAEE,CAAE,UAAWC,CAAe,EAAIC,EAAa,CAAE,MAAAP,CAAM,EAAG,CAAE,MAAOC,CAAa,CAAC,EAG/E,CAAE,gBAAiBO,CAAyB,EAAID,EACpD,CAAE,gBAAiBd,EAAM,eAAgB,EACzC,CAAE,gBAAiBS,CAAuB,CAC5C,EAEM,CAAE,SAAUO,CAAkB,EAAIF,EACtC,CAAE,SAAUd,EAAM,QAAS,EAC3B,CAAE,SAAUU,CAAgB,CAC9B,EAGMO,EAAsB,UAAQ,KAC9BD,IAAsB,QACxB,QAAQ,KACN,yHACF,EAEKA,GAAqBD,GAC3B,CAACC,EAAmBD,CAAwB,CAAC,EAE1C,CACJ,UAAAG,EACA,WAAAC,EACA,UAAAC,EACA,gBAAiBC,EACjB,SAAUC,EACV,GAAGC,CACL,EAAIT,EAAad,EAAOW,CAAQ,EAG1Ba,EAAmB,SAAuB,IAAI,EAC9CC,EAAoB,UACxB,IAAOC,GAAgC,CACrCF,EAAW,QAAUE,EACjB,OAAOtB,GAAiB,WAC1BA,EAAasB,CAAI,EACRtB,IACTA,EAAa,QAAUsB,EAE3B,EACA,CAACtB,CAAY,CACf,EAGA,OAAM,YAAU,IAAM,CAEpB,GAAI,OAAO,OAAW,IAAa,OAEnC,IAAMuB,EAAUH,EAAW,QAC3B,GAAI,CAACG,EAAS,OAEd,IAAMC,EAAoBD,EAAQ,iBAChC,0EACF,EAEA,GAAIC,EAAkB,SAAW,EAAG,OAEpC,IAAMC,EAAeD,EAAkB,CAAC,EAClCE,EAAcF,EAAkBA,EAAkB,OAAS,CAAC,EAE5DG,EAAiBC,GAAyB,CAC1CA,EAAM,MAAQ,QACZA,EAAM,SACJ,SAAS,gBAAkBH,IAC7BG,EAAM,eAAe,EACrBF,EAAY,MAAM,GAGhB,SAAS,gBAAkBA,IAC7BE,EAAM,eAAe,EACrBH,EAAa,MAAM,GAI3B,EAEA,OAAAF,EAAQ,iBAAiB,UAAWI,CAAa,EAGjDF,EAAa,MAAM,EAEZ,IAAM,CACXF,EAAQ,oBAAoB,UAAWI,CAAa,CACtD,CACF,EAAG,CAAC,CAAC,EAGH,gBAAC9B,EAAqB,OAArB,CAA4B,UAAWmB,EAAW,WAAYD,GAC7D,gBAACc,EAAA,CAAM,QAAO,IACZ,gBAAChC,EAAqB,QAArB,CAA6B,UAAU,8CACtC,gBAAC,OAAI,UAAU,4CACb,gBAAC,OACC,UAAW,0DAA0DY,CAAc,IAEnF,gBAACZ,EAAqB,QAArB,CACE,GAAGsB,EACJ,IAAKE,EACL,UAAWS,EAAW,uBAAwB,wBAAyBhB,CAAS,EAChF,gBAAeD,EACf,wBAAuBA,EACvB,SAAU,GACV,KAAK,cACL,aAAW,OACX,mBAAiB,2BACjB,iBAAmBe,GAAU,CAE3BA,EAAM,eAAe,EAErB,SAAS,KAAK,MAAM,cAAgB,EACtC,EACF,EAEA,gBAAC,OACC,YAAU,YACV,cAAY,OACZ,UAAU,aACV,GAAG,4BACL,CACF,CACF,CACF,CACF,CACF,CAEJ,CACF,EACA1B,EAAmB,YAAc,sBAIjC,IAAM6B,EAAyB,aAC7B,CAACnC,EAAOI,IACN,gBAACH,EAAqB,MAArB,CAA2B,QAAO,IACjC,gBAACmC,EAAA,CAAQ,KAAK,IAAI,GAAG,IAAI,KAAK,QAAS,GAAGpC,EAAO,QAAS,GAAO,IAAKI,EAAc,CACtF,CAEJ,EACA+B,EAAiB,YAAc,oBAI/B,IAAME,EAA+B,aAGnC,CAACrC,EAAOI,IACR,gBAACH,EAAqB,YAArB,CAAiC,QAAO,IACvC,gBAACqC,EAAA,CAAK,GAAG,IAAI,KAAK,IAAK,GAAGtC,EAAO,QAAS,GAAO,IAAKI,EAAc,CACtE,CACD,EACDiC,EAAuB,YAAc,0BAKrC,IAAME,EAA0B,aAC9B,CAAC,CAAE,SAAApC,EAAU,GAAGH,CAAM,EAAGI,IACvB,gBAACH,EAAqB,OAArB,CAA6B,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAC/DC,EAAoBF,CAAQ,CAC/B,CAEJ,EACAoC,EAAkB,YAAc,qBAKhC,IAAMC,EAA0B,aAC9B,CAAC,CAAE,SAAArC,EAAU,GAAGH,CAAM,EAAGI,IACvB,gBAACH,EAAqB,OAArB,CAA6B,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAC/DC,EAAoBF,CAAQ,CAC/B,CAEJ,EACAqC,EAAkB,YAAc",
6
- "names": ["alert_dialog_exports", "__export", "AlertDialogAction", "AlertDialogCancel", "AlertDialogContent", "AlertDialogDescription", "AlertDialogRoot", "AlertDialogTitle", "AlertDialogTrigger", "React", "classNames", "AlertDialogPrimitive", "AlertDialogRoot", "props", "AlertDialogPrimitive", "AlertDialogTrigger", "children", "forwardedRef", "requireReactElement", "AlertDialogContent", "align", "alignPropDef", "panelBackgroundPropDef", "materialPropDef", "propDefs", "alertDialogContentPropDefs", "alignClassName", "extractProps", "extractedPanelBackground", "extractedMaterial", "materialValue", "className", "forceMount", "container", "_", "__", "contentProps", "contentRef", "combinedRef", "node", "content", "focusableElements", "firstElement", "lastElement", "handleKeyDown", "event", "Theme", "classNames", "AlertDialogTitle", "Heading", "AlertDialogDescription", "Text", "AlertDialogAction", "AlertDialogCancel"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-KFA53SVQ.js";import*as i from"react";function m(){let[c,d]=i.useState("initial"),[u,p]=i.useState(!1);return i.useEffect(()=>{if(typeof window>"u")return;let s=Object.entries(a).map(([t,e])=>[t,window.matchMedia(e)]),n=t=>{let e=s.filter(([,o])=>o.matches).map(([o])=>o),v=e[e.length-1]??"initial";d(v),p(!0)};n();let r=[];return s.forEach(([,t])=>{let e=t;typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?(e.addEventListener("change",n),r.push(()=>e.removeEventListener?.("change",n))):typeof e.addListener=="function"&&typeof e.removeListener=="function"&&(e.addListener(n),r.push(()=>e.removeListener?.(n)))}),()=>{r.forEach(t=>{try{t()}catch{}})}},[]),{breakpoint:c,ready:u}}export{m as a};
2
- //# sourceMappingURL=chunk-YEA646GM.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/hooks/use-breakpoint.ts"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { _BREAKPOINTS, type Breakpoint } from '../components/shell.types.js';\n\n/**\n * Hook to get the current breakpoint based on window width.\n * Returns 'initial' on the server and during initial hydration.\n * Uses shared breakpoint values from shell.types.js.\n */\nexport function useBreakpoint(): { breakpoint: Breakpoint; ready: boolean } {\n const [currentBp, setCurrentBp] = React.useState<Breakpoint>('initial');\n const [ready, setReady] = React.useState(false);\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const queries = Object.entries(_BREAKPOINTS) as [keyof typeof _BREAKPOINTS, string][];\n const mqls = queries.map(([k, q]) => [k, window.matchMedia(q)] as const);\n\n // Accept optional event param to satisfy MediaQueryList listener signature\n const compute = (_e?: MediaQueryListEvent) => {\n // Highest matched wins\n const matched = mqls.filter(([, m]) => m.matches).map(([k]) => k);\n const next = (matched[matched.length - 1] as Breakpoint | undefined) ?? 'initial';\n setCurrentBp(next);\n setReady(true);\n };\n\n compute();\n const cleanups: Array<() => void> = [];\n mqls.forEach(([, m]) => {\n const mm = m as MediaQueryList & {\n addEventListener?: (type: 'change', listener: (e: MediaQueryListEvent) => void) => void;\n removeEventListener?: (type: 'change', listener: (e: MediaQueryListEvent) => void) => void;\n addListener?: (listener: (e: MediaQueryListEvent) => void) => void;\n removeListener?: (listener: (e: MediaQueryListEvent) => void) => void;\n };\n if (typeof mm.addEventListener === 'function' && typeof mm.removeEventListener === 'function') {\n mm.addEventListener('change', compute);\n cleanups.push(() => mm.removeEventListener?.('change', compute));\n } else if (typeof mm.addListener === 'function' && typeof mm.removeListener === 'function') {\n mm.addListener(compute);\n cleanups.push(() => mm.removeListener?.(compute));\n }\n });\n\n return () => {\n cleanups.forEach((fn) => {\n try {\n fn();\n } catch (e) {\n // MediaQueryList cleanup can fail in edge cases (e.g., already removed)\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[useBreakpoint] MediaQueryList cleanup warning:', e);\n }\n }\n });\n };\n }, []);\n\n return { breakpoint: currentBp, ready };\n}\n"],
5
- "mappings": "mCAEA,UAAYA,MAAW,QAQhB,SAASC,GAA4D,CAC1E,GAAM,CAACC,EAAWC,CAAY,EAAU,WAAqB,SAAS,EAChE,CAACC,EAAOC,CAAQ,EAAU,WAAS,EAAK,EAE9C,OAAM,YAAU,IAAM,CACpB,GAAI,OAAO,OAAW,IAAa,OAGnC,IAAMC,EADU,OAAO,QAAQC,CAAY,EACtB,IAAI,CAAC,CAACC,EAAGC,CAAC,IAAM,CAACD,EAAG,OAAO,WAAWC,CAAC,CAAC,CAAU,EAGjEC,EAAWC,GAA6B,CAE5C,IAAMC,EAAUN,EAAK,OAAO,CAAC,CAAC,CAAEO,CAAC,IAAMA,EAAE,OAAO,EAAE,IAAI,CAAC,CAACL,CAAC,IAAMA,CAAC,EAC1DM,EAAQF,EAAQA,EAAQ,OAAS,CAAC,GAAgC,UACxET,EAAaW,CAAI,EACjBT,EAAS,EAAI,CACf,EAEAK,EAAQ,EACR,IAAMK,EAA8B,CAAC,EACrC,OAAAT,EAAK,QAAQ,CAAC,CAAC,CAAEO,CAAC,IAAM,CACtB,IAAMG,EAAKH,EAMP,OAAOG,EAAG,kBAAqB,YAAc,OAAOA,EAAG,qBAAwB,YACjFA,EAAG,iBAAiB,SAAUN,CAAO,EACrCK,EAAS,KAAK,IAAMC,EAAG,sBAAsB,SAAUN,CAAO,CAAC,GACtD,OAAOM,EAAG,aAAgB,YAAc,OAAOA,EAAG,gBAAmB,aAC9EA,EAAG,YAAYN,CAAO,EACtBK,EAAS,KAAK,IAAMC,EAAG,iBAAiBN,CAAO,CAAC,EAEpD,CAAC,EAEM,IAAM,CACXK,EAAS,QAASE,GAAO,CACvB,GAAI,CACFA,EAAG,CACL,MAAY,CAKZ,CACF,CAAC,CACH,CACF,EAAG,CAAC,CAAC,EAEE,CAAE,WAAYf,EAAW,MAAAE,CAAM,CACxC",
6
- "names": ["React", "useBreakpoint", "currentBp", "setCurrentBp", "ready", "setReady", "mqls", "_BREAKPOINTS", "k", "q", "compute", "_e", "matched", "m", "next", "cleanups", "mm", "fn"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as a}from"./chunk-WRWNN2NW.js";import{a as c}from"./chunk-QM3RCK5P.js";import{a as d}from"./chunk-RZCX6IBE.js";function C({className:r,customProperties:n,...i}){let p=m({allowArbitraryValues:!0,className:r,...i}),s=v({customProperties:n,...i});return[p,s]}function m({allowArbitraryValues:r,value:n,className:i,propValues:p,parseValue:s=e=>e}){let e=[];if(n){if(typeof n=="string"&&p.includes(n))return g(i,n,s);if(d(n)){let t=n;for(let o in t){if(!c(t,o)||!a.has(o))continue;let u=t[o];if(u!==void 0){if(p.includes(u)){let f=g(i,u,s),l=o==="initial"?f:`${o}:${f}`;e.push(l)}else if(r){let f=o==="initial"?i:`${o}:${i}`;e.push(f)}}}return e.join(" ")}if(r)return i}}function g(r,n,i){let p=r?"-":"",s=i(n),e=s?.startsWith("-"),t=e?"-":"",o=e?s?.substring(1):s;return`${t}${r}${p}${o}`}function v({customProperties:r,value:n,propValues:i,parseValue:p=s=>s}){let s={};if(!(!n||typeof n=="string"&&i.includes(n))){if(typeof n=="string"&&(s=Object.fromEntries(r.map(e=>[e,n]))),d(n)){let e=n;for(let t in e){if(!c(e,t)||!a.has(t))continue;let o=e[t];if(!i.includes(o))for(let u of r){let f=t==="initial"?u:`${u}-${t}`;s[f]=o}}}for(let e in s){let t=s[e];t!==void 0&&(s[e]=p(t))}return s}}export{C as a,m as b,v as c};
2
- //# sourceMappingURL=chunk-ZMEXIPWM.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/helpers/get-responsive-styles.ts"],
4
- "sourcesContent": ["import { breakpointSet } from '../props/prop-def.js';\nimport { hasOwnProperty } from './has-own-property.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\n\nimport type { Responsive, Union } from '../props/prop-def.js';\n\ninterface GetResponsiveStylesOptions {\n className: string;\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveStyles({ className, customProperties, ...args }: GetResponsiveStylesOptions) {\n const responsiveClassNames = getResponsiveClassNames({\n allowArbitraryValues: true,\n className,\n ...args,\n });\n\n const responsiveCustomProperties = getResponsiveCustomProperties({ customProperties, ...args });\n return [responsiveClassNames, responsiveCustomProperties] as const;\n}\n\ninterface GetResponsiveClassNamesOptions {\n allowArbitraryValues?: boolean;\n className: string;\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveClassNames({\n allowArbitraryValues,\n value,\n className,\n propValues,\n parseValue = (value) => value,\n}: GetResponsiveClassNamesOptions): string | undefined {\n const classNames: string[] = [];\n\n if (!value) {\n return undefined;\n }\n\n if (typeof value === 'string' && propValues.includes(value)) {\n return getBaseClassName(className, value, parseValue);\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n if (value !== undefined) {\n if (propValues.includes(value)) {\n const baseClassName = getBaseClassName(className, value, parseValue);\n const bpClassName = bp === 'initial' ? baseClassName : `${bp}:${baseClassName}`;\n classNames.push(bpClassName);\n } else if (allowArbitraryValues) {\n const bpClassName = bp === 'initial' ? className : `${bp}:${className}`;\n classNames.push(bpClassName);\n }\n }\n }\n\n return classNames.join(' ');\n }\n\n if (allowArbitraryValues) {\n return className;\n }\n}\n\nfunction getBaseClassName(\n className: string,\n value: string,\n parseValue: (value: string) => string | undefined\n): string {\n const delimiter = className ? '-' : '';\n const matchedValue = parseValue(value);\n const isNegative = matchedValue?.startsWith('-');\n const minus = isNegative ? '-' : '';\n const absoluteValue = isNegative ? matchedValue?.substring(1) : matchedValue;\n return `${minus}${className}${delimiter}${absoluteValue}`;\n}\n\ninterface GetResponsiveCustomPropertiesOptions {\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveCustomProperties({\n customProperties,\n value,\n propValues,\n parseValue = (value) => value,\n}: GetResponsiveCustomPropertiesOptions) {\n let styles: Record<string, string | undefined> = {};\n\n // Don't generate custom properties if the value is not arbitrary\n if (!value || (typeof value === 'string' && propValues.includes(value))) {\n return undefined;\n }\n\n if (typeof value === 'string') {\n styles = Object.fromEntries(customProperties.map((prop) => [prop, value]));\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n // Don't generate a custom property if the value is not arbitrary\n if (propValues.includes(value)) {\n continue;\n }\n\n for (const customProperty of customProperties) {\n const bpProperty = bp === 'initial' ? customProperty : `${customProperty}-${bp}`;\n styles[bpProperty] = value;\n }\n }\n }\n\n for (const key in styles) {\n const value = styles[key];\n if (value !== undefined) {\n styles[key] = parseValue(value);\n }\n }\n\n return styles;\n}\n\nexport { getResponsiveStyles, getResponsiveCustomProperties, getResponsiveClassNames };\n"],
5
- "mappings": "wHAcA,SAASA,EAAoB,CAAE,UAAAC,EAAW,iBAAAC,EAAkB,GAAGC,CAAK,EAA+B,CACjG,IAAMC,EAAuBC,EAAwB,CACnD,qBAAsB,GACtB,UAAAJ,EACA,GAAGE,CACL,CAAC,EAEKG,EAA6BC,EAA8B,CAAE,iBAAAL,EAAkB,GAAGC,CAAK,CAAC,EAC9F,MAAO,CAACC,EAAsBE,CAA0B,CAC1D,CAUA,SAASD,EAAwB,CAC/B,qBAAAG,EACA,MAAAC,EACA,UAAAR,EACA,WAAAS,EACA,WAAAC,EAAcF,GAAUA,CAC1B,EAAuD,CACrD,IAAMG,EAAuB,CAAC,EAE9B,GAAKH,EAIL,IAAI,OAAOA,GAAU,UAAYC,EAAW,SAASD,CAAK,EACxD,OAAOI,EAAiBZ,EAAWQ,EAAOE,CAAU,EAGtD,GAAIG,EAAmBL,CAAK,EAAG,CAC7B,IAAMM,EAASN,EAEf,QAAWO,KAAMD,EAAQ,CAEvB,GAAI,CAACE,EAAeF,EAAQC,CAAE,GAAK,CAACE,EAAc,IAAIF,CAAE,EACtD,SAGF,IAAMP,EAAQM,EAAOC,CAAE,EAEvB,GAAIP,IAAU,QACZ,GAAIC,EAAW,SAASD,CAAK,EAAG,CAC9B,IAAMU,EAAgBN,EAAiBZ,EAAWQ,EAAOE,CAAU,EAC7DS,EAAcJ,IAAO,UAAYG,EAAgB,GAAGH,CAAE,IAAIG,CAAa,GAC7EP,EAAW,KAAKQ,CAAW,CAC7B,SAAWZ,EAAsB,CAC/B,IAAMY,EAAcJ,IAAO,UAAYf,EAAY,GAAGe,CAAE,IAAIf,CAAS,GACrEW,EAAW,KAAKQ,CAAW,CAC7B,EAEJ,CAEA,OAAOR,EAAW,KAAK,GAAG,CAC5B,CAEA,GAAIJ,EACF,OAAOP,EAEX,CAEA,SAASY,EACPZ,EACAQ,EACAE,EACQ,CACR,IAAMU,EAAYpB,EAAY,IAAM,GAC9BqB,EAAeX,EAAWF,CAAK,EAC/Bc,EAAaD,GAAc,WAAW,GAAG,EACzCE,EAAQD,EAAa,IAAM,GAC3BE,EAAgBF,EAAaD,GAAc,UAAU,CAAC,EAAIA,EAChE,MAAO,GAAGE,CAAK,GAAGvB,CAAS,GAAGoB,CAAS,GAAGI,CAAa,EACzD,CASA,SAASlB,EAA8B,CACrC,iBAAAL,EACA,MAAAO,EACA,WAAAC,EACA,WAAAC,EAAcF,GAAUA,CAC1B,EAAyC,CACvC,IAAIiB,EAA6C,CAAC,EAGlD,GAAI,GAACjB,GAAU,OAAOA,GAAU,UAAYC,EAAW,SAASD,CAAK,GAQrE,IAJI,OAAOA,GAAU,WACnBiB,EAAS,OAAO,YAAYxB,EAAiB,IAAKyB,GAAS,CAACA,EAAMlB,CAAK,CAAC,CAAC,GAGvEK,EAAmBL,CAAK,EAAG,CAC7B,IAAMM,EAASN,EAEf,QAAWO,KAAMD,EAAQ,CAEvB,GAAI,CAACE,EAAeF,EAAQC,CAAE,GAAK,CAACE,EAAc,IAAIF,CAAE,EACtD,SAGF,IAAMP,EAAQM,EAAOC,CAAE,EAGvB,GAAI,CAAAN,EAAW,SAASD,CAAK,EAI7B,QAAWmB,KAAkB1B,EAAkB,CAC7C,IAAM2B,EAAab,IAAO,UAAYY,EAAiB,GAAGA,CAAc,IAAIZ,CAAE,GAC9EU,EAAOG,CAAU,EAAIpB,CACvB,CACF,CACF,CAEA,QAAWqB,KAAOJ,EAAQ,CACxB,IAAMjB,EAAQiB,EAAOI,CAAG,EACpBrB,IAAU,SACZiB,EAAOI,CAAG,EAAInB,EAAWF,CAAK,EAElC,CAEA,OAAOiB,EACT",
6
- "names": ["getResponsiveStyles", "className", "customProperties", "args", "responsiveClassNames", "getResponsiveClassNames", "responsiveCustomProperties", "getResponsiveCustomProperties", "allowArbitraryValues", "value", "propValues", "parseValue", "classNames", "getBaseClassName", "isResponsiveObject", "object", "bp", "hasOwnProperty", "breakpointSet", "baseClassName", "bpClassName", "delimiter", "matchedValue", "isNegative", "minus", "absoluteValue", "styles", "prop", "customProperty", "bpProperty", "key"]
7
- }