@womp/kookie-ui 0.4.0 → 0.6.2

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 +783 -783
  2. package/dist/cjs/components/_internal/base-menu.utils.d.ts +48 -0
  3. package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -0
  4. package/dist/cjs/components/_internal/base-menu.utils.js +2 -0
  5. package/dist/cjs/components/_internal/base-menu.utils.js.map +7 -0
  6. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
  7. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  8. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
  9. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +4 -4
  10. package/dist/cjs/components/_internal/menu-context.d.ts +7 -3
  11. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  12. package/dist/cjs/components/_internal/menu-context.js +1 -1
  13. package/dist/cjs/components/_internal/menu-context.js.map +4 -4
  14. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  15. package/dist/cjs/components/_internal/shell-bottom.js.map +2 -2
  16. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  17. package/dist/cjs/components/_internal/shell-inspector.js.map +2 -2
  18. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  19. package/dist/cjs/components/_internal/shell-sidebar.js.map +2 -2
  20. package/dist/cjs/components/accordion.js +1 -1
  21. package/dist/cjs/components/alert-dialog.js +1 -1
  22. package/dist/cjs/components/alert-dialog.js.map +2 -2
  23. package/dist/cjs/components/badge.js +1 -1
  24. package/dist/cjs/components/badge.js.map +2 -2
  25. package/dist/cjs/components/blockquote.js +1 -1
  26. package/dist/cjs/components/button.js +1 -1
  27. package/dist/cjs/components/button.js.map +2 -2
  28. package/dist/cjs/components/callout.js +1 -1
  29. package/dist/cjs/components/callout.js.map +2 -2
  30. package/dist/cjs/components/card.js +1 -1
  31. package/dist/cjs/components/card.js.map +2 -2
  32. package/dist/cjs/components/chatbar.d.ts +46 -44
  33. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  34. package/dist/cjs/components/chatbar.js +2 -2
  35. package/dist/cjs/components/chatbar.js.map +3 -3
  36. package/dist/cjs/components/checkbox-cards.js +1 -1
  37. package/dist/cjs/components/checkbox-cards.js.map +2 -2
  38. package/dist/cjs/components/checkbox-group.js +1 -1
  39. package/dist/cjs/components/checkbox.js +1 -1
  40. package/dist/cjs/components/combobox.d.ts +28 -15
  41. package/dist/cjs/components/combobox.d.ts.map +1 -1
  42. package/dist/cjs/components/combobox.js +1 -1
  43. package/dist/cjs/components/combobox.js.map +4 -4
  44. package/dist/cjs/components/combobox.props.d.ts +48 -0
  45. package/dist/cjs/components/combobox.props.d.ts.map +1 -1
  46. package/dist/cjs/components/combobox.props.js +1 -1
  47. package/dist/cjs/components/combobox.props.js.map +4 -4
  48. package/dist/cjs/components/context-menu.d.ts +18 -5
  49. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  50. package/dist/cjs/components/context-menu.js +1 -1
  51. package/dist/cjs/components/context-menu.js.map +4 -4
  52. package/dist/cjs/components/context-menu.props.d.ts +1 -1
  53. package/dist/cjs/components/context-menu.props.d.ts.map +1 -1
  54. package/dist/cjs/components/context-menu.props.js +1 -1
  55. package/dist/cjs/components/context-menu.props.js.map +3 -3
  56. package/dist/cjs/components/dialog.js +1 -1
  57. package/dist/cjs/components/dialog.js.map +2 -2
  58. package/dist/cjs/components/dropdown-menu.d.ts +11 -18
  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/heading.js +1 -1
  63. package/dist/cjs/components/hover-card.js +1 -1
  64. package/dist/cjs/components/hover-card.js.map +2 -2
  65. package/dist/cjs/components/icon-button.js +1 -1
  66. package/dist/cjs/components/icon-button.js.map +2 -2
  67. package/dist/cjs/components/index.js +5 -5
  68. package/dist/cjs/components/index.js.map +4 -4
  69. package/dist/cjs/components/link.js +1 -1
  70. package/dist/cjs/components/popover.js +1 -1
  71. package/dist/cjs/components/popover.js.map +2 -2
  72. package/dist/cjs/components/radio-cards.js +1 -1
  73. package/dist/cjs/components/radio-cards.js.map +2 -2
  74. package/dist/cjs/components/radio.js +1 -1
  75. package/dist/cjs/components/radio.js.map +2 -2
  76. package/dist/cjs/components/schemas/base-button.schema.d.ts +111 -256
  77. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
  78. package/dist/cjs/components/schemas/button.schema.d.ts +136 -557
  79. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
  80. package/dist/cjs/components/schemas/icon-button.schema.d.ts +123 -240
  81. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
  82. package/dist/cjs/components/schemas/index.js +1 -1
  83. package/dist/cjs/components/schemas/index.js.map +2 -2
  84. package/dist/cjs/components/schemas/shell.schema.d.ts +592 -851
  85. package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
  86. package/dist/cjs/components/schemas/shell.schema.js +1 -1
  87. package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
  88. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +138 -1026
  89. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
  90. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +124 -465
  91. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  92. package/dist/cjs/components/scroll-area.js +1 -1
  93. package/dist/cjs/components/segmented-control.js +1 -1
  94. package/dist/cjs/components/select.js +1 -1
  95. package/dist/cjs/components/select.js.map +2 -2
  96. package/dist/cjs/components/sheet.js +1 -1
  97. package/dist/cjs/components/sheet.js.map +2 -2
  98. package/dist/cjs/components/shell.js +1 -1
  99. package/dist/cjs/components/shell.js.map +3 -3
  100. package/dist/cjs/components/sidebar.js +1 -1
  101. package/dist/cjs/components/sidebar.js.map +4 -4
  102. package/dist/cjs/components/slider.js +1 -1
  103. package/dist/cjs/components/slot.d.ts +6 -2
  104. package/dist/cjs/components/slot.d.ts.map +1 -1
  105. package/dist/cjs/components/switch.js +1 -1
  106. package/dist/cjs/components/tab-nav.js +1 -1
  107. package/dist/cjs/components/text-field.js +2 -2
  108. package/dist/cjs/components/text.js +1 -1
  109. package/dist/cjs/components/theme-panel.js +3 -3
  110. package/dist/cjs/components/theme-panel.js.map +2 -2
  111. package/dist/cjs/components/theme.js +1 -1
  112. package/dist/cjs/components/theme.js.map +2 -2
  113. package/dist/cjs/components/theme.props.d.ts +1 -1
  114. package/dist/cjs/components/theme.props.js +1 -1
  115. package/dist/cjs/components/theme.props.js.map +2 -2
  116. package/dist/cjs/components/toggle-button.js +1 -1
  117. package/dist/cjs/components/toggle-button.js.map +2 -2
  118. package/dist/cjs/components/toggle-icon-button.js +1 -1
  119. package/dist/cjs/components/toggle-icon-button.js.map +2 -2
  120. package/dist/cjs/components/tooltip.js +1 -1
  121. package/dist/cjs/components/tooltip.js.map +2 -2
  122. package/dist/cjs/components/user-card.js +1 -1
  123. package/dist/cjs/components/user-card.js.map +2 -2
  124. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  125. package/dist/cjs/components/virtual-menu.js +1 -1
  126. package/dist/cjs/components/virtual-menu.js.map +4 -4
  127. package/dist/cjs/helpers/extract-props.js +1 -1
  128. package/dist/cjs/helpers/extract-props.js.map +2 -2
  129. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  130. package/dist/cjs/helpers/get-margin-styles.js.map +2 -2
  131. package/dist/cjs/hooks/use-breakpoint.d.ts +4 -1
  132. package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
  133. package/dist/cjs/hooks/use-breakpoint.js +1 -1
  134. package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
  135. package/dist/cjs/index.js +5 -5
  136. package/dist/cjs/index.js.map +4 -4
  137. package/dist/cjs/props/index.js +1 -1
  138. package/dist/cjs/props/index.js.map +3 -3
  139. package/dist/esm/{chunk-P7HYVJSU.js → chunk-2TIADHPD.js} +2 -2
  140. package/dist/esm/chunk-37OGSEQR.js +2 -0
  141. package/dist/esm/chunk-37OGSEQR.js.map +7 -0
  142. package/dist/esm/{chunk-RMKXWYOV.js → chunk-3OBXZUFJ.js} +2 -2
  143. package/dist/esm/{chunk-S2HA3W3V.js → chunk-3R7XMRV5.js} +2 -2
  144. package/dist/esm/chunk-4SMJ7D4S.js +2 -0
  145. package/dist/esm/chunk-4SMJ7D4S.js.map +7 -0
  146. package/dist/esm/{chunk-S56YSRHP.js → chunk-56TS6OKQ.js} +2 -2
  147. package/dist/esm/{chunk-2FYJTSOP.js → chunk-5BYHEYO6.js} +2 -2
  148. package/dist/esm/{chunk-B24BDVG2.js → chunk-5MNBQROW.js} +2 -2
  149. package/dist/esm/{chunk-W7N7V5YD.js → chunk-7ESHXHHO.js} +2 -2
  150. package/dist/esm/{chunk-CRWYCLTE.js → chunk-ABSKRHVM.js} +2 -2
  151. package/dist/esm/chunk-ADBLURLJ.js +2 -0
  152. package/dist/esm/chunk-ADBLURLJ.js.map +7 -0
  153. package/dist/esm/{chunk-3MWWP4MW.js → chunk-BBJUB52V.js} +2 -2
  154. package/dist/esm/{chunk-PTLFMWCN.js → chunk-CQNPBTM5.js} +2 -2
  155. package/dist/esm/{chunk-GJSGKE7B.js → chunk-CTA5ODAO.js} +2 -2
  156. package/dist/esm/{chunk-GWXVETMF.js → chunk-DCAZPMOB.js} +2 -2
  157. package/dist/esm/{chunk-PLWXTEVE.js → chunk-DMJJM5IS.js} +2 -2
  158. package/dist/esm/{chunk-A2RZGGMY.js → chunk-DQAUX5ZL.js} +2 -2
  159. package/dist/esm/{chunk-6XGZPIUT.js → chunk-DX5JJYMZ.js} +2 -2
  160. package/dist/esm/{chunk-6XGZPIUT.js.map → chunk-DX5JJYMZ.js.map} +2 -2
  161. package/dist/esm/{chunk-YUP6EICB.js → chunk-DXL6V2A5.js} +2 -2
  162. package/dist/esm/{chunk-XMRIRFM7.js → chunk-FG7XM7KJ.js} +2 -2
  163. package/dist/esm/{chunk-IKSN4RNB.js → chunk-FIB3XATL.js} +3 -3
  164. package/dist/esm/chunk-FMBECDL4.js +2 -0
  165. package/dist/esm/{chunk-4XJY6FIK.js.map → chunk-FMBECDL4.js.map} +3 -3
  166. package/dist/esm/{chunk-374ZYJUP.js → chunk-HBR42MIX.js} +2 -2
  167. package/dist/esm/{chunk-2UPAYDKR.js → chunk-HIKVMKYQ.js} +2 -2
  168. package/dist/esm/{chunk-VX6ARMWP.js → chunk-HSAG7C53.js} +2 -2
  169. package/dist/esm/{chunk-OSRJRBKP.js → chunk-HW324FK3.js} +2 -2
  170. package/dist/esm/{chunk-DNHUQLXO.js → chunk-JBO5YOUM.js} +2 -2
  171. package/dist/esm/{chunk-HF5WY5YE.js → chunk-JGLAE5G7.js} +2 -2
  172. package/dist/esm/{chunk-4YFJWXL2.js → chunk-JJKQ7CGI.js} +2 -2
  173. package/dist/esm/chunk-JSW6J6RS.js +2 -0
  174. package/dist/esm/chunk-JSW6J6RS.js.map +7 -0
  175. package/dist/esm/chunk-KRDP5SQ7.js +2 -0
  176. package/dist/esm/chunk-KRDP5SQ7.js.map +7 -0
  177. package/dist/esm/{chunk-CWRNW44F.js → chunk-L6PVH3RM.js} +2 -2
  178. package/dist/esm/{chunk-MK2R6DAU.js → chunk-LAOMR7SE.js} +2 -2
  179. package/dist/esm/{chunk-FHOCUZDR.js → chunk-NIQT45PJ.js} +2 -2
  180. package/dist/esm/chunk-NKEJTTIL.js +2 -0
  181. package/dist/esm/chunk-NKEJTTIL.js.map +7 -0
  182. package/dist/esm/chunk-NVDXXGVW.js +2 -0
  183. package/dist/esm/chunk-NVDXXGVW.js.map +7 -0
  184. package/dist/esm/chunk-OS3FCYZY.js +2 -0
  185. package/dist/esm/{chunk-7QDTSBJF.js → chunk-OYF6YXH7.js} +2 -2
  186. package/dist/esm/{chunk-WFMYNZXZ.js → chunk-P5OSU4NX.js} +2 -2
  187. package/dist/esm/{chunk-QEOAXJLN.js → chunk-PTS6QYQW.js} +2 -2
  188. package/dist/esm/{chunk-CVWCKOHO.js → chunk-RLPKKCBL.js} +2 -2
  189. package/dist/esm/{chunk-LKAK5GXF.js → chunk-SPIU5JYC.js} +2 -2
  190. package/dist/esm/chunk-SZTZ2XLI.js +2 -0
  191. package/dist/esm/chunk-SZTZ2XLI.js.map +7 -0
  192. package/dist/esm/chunk-T2FZN7G3.js +2 -0
  193. package/dist/esm/chunk-T2FZN7G3.js.map +7 -0
  194. package/dist/esm/{chunk-4AQTUBVP.js → chunk-T4UHUQFJ.js} +2 -2
  195. package/dist/esm/{chunk-K6QZMNCD.js → chunk-TS623UPD.js} +2 -2
  196. package/dist/esm/{chunk-YV2KYHGR.js → chunk-UBOOUDS4.js} +2 -2
  197. package/dist/esm/{chunk-D6B7IMZU.js → chunk-UFI53QUC.js} +2 -2
  198. package/dist/esm/{chunk-AU3D6F42.js → chunk-UIRSGVJG.js} +2 -2
  199. package/dist/esm/{chunk-FXUUI6Z2.js → chunk-UUUZXUIP.js} +2 -2
  200. package/dist/esm/{chunk-25WZA7ZU.js → chunk-VA4CTVQL.js} +2 -2
  201. package/dist/esm/{chunk-TOLLPRMM.js → chunk-VNPNEJI6.js} +2 -2
  202. package/dist/esm/{chunk-6IGTK4JE.js → chunk-YMUGKYGW.js} +2 -2
  203. package/dist/esm/chunk-ZWYYPFZW.js +2 -0
  204. package/dist/esm/chunk-ZWYYPFZW.js.map +7 -0
  205. package/dist/esm/{chunk-M24UXMOQ.js → chunk-ZXZOH63L.js} +2 -2
  206. package/dist/esm/components/_internal/base-button.js +1 -1
  207. package/dist/esm/components/_internal/base-button.props.js +1 -1
  208. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  209. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  210. package/dist/esm/components/_internal/base-menu.utils.d.ts +48 -0
  211. package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -0
  212. package/dist/esm/components/_internal/base-menu.utils.js +2 -0
  213. package/dist/esm/components/_internal/base-menu.utils.js.map +7 -0
  214. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  215. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  216. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
  217. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  218. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
  219. package/dist/esm/components/_internal/menu-context.d.ts +7 -3
  220. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  221. package/dist/esm/components/_internal/menu-context.js +1 -1
  222. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  223. package/dist/esm/components/_internal/shell-handles.js +1 -1
  224. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  225. package/dist/esm/components/_internal/shell-prop-helpers.js +1 -1
  226. package/dist/esm/components/_internal/shell-resize.js +1 -1
  227. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  228. package/dist/esm/components/accessible-icon.js +1 -1
  229. package/dist/esm/components/accordion.js +1 -1
  230. package/dist/esm/components/accordion.props.js +1 -1
  231. package/dist/esm/components/alert-dialog.js +1 -1
  232. package/dist/esm/components/alert-dialog.props.js +1 -1
  233. package/dist/esm/components/aspect-ratio.js +1 -1
  234. package/dist/esm/components/avatar.js +1 -1
  235. package/dist/esm/components/avatar.props.js +1 -1
  236. package/dist/esm/components/badge.js +1 -1
  237. package/dist/esm/components/badge.props.js +1 -1
  238. package/dist/esm/components/blockquote.js +1 -1
  239. package/dist/esm/components/blockquote.props.js +1 -1
  240. package/dist/esm/components/box.js +1 -1
  241. package/dist/esm/components/box.props.js +1 -1
  242. package/dist/esm/components/button.js +1 -1
  243. package/dist/esm/components/button.props.js +1 -1
  244. package/dist/esm/components/callout.js +1 -1
  245. package/dist/esm/components/callout.props.js +1 -1
  246. package/dist/esm/components/card.js +1 -1
  247. package/dist/esm/components/card.props.js +1 -1
  248. package/dist/esm/components/chatbar.d.ts +46 -44
  249. package/dist/esm/components/chatbar.d.ts.map +1 -1
  250. package/dist/esm/components/chatbar.js +1 -1
  251. package/dist/esm/components/checkbox-cards.js +1 -1
  252. package/dist/esm/components/checkbox-cards.props.js +1 -1
  253. package/dist/esm/components/checkbox-group.js +1 -1
  254. package/dist/esm/components/checkbox-group.primitive.js +1 -1
  255. package/dist/esm/components/checkbox-group.props.js +1 -1
  256. package/dist/esm/components/checkbox.js +1 -1
  257. package/dist/esm/components/checkbox.props.js +1 -1
  258. package/dist/esm/components/code.js +1 -1
  259. package/dist/esm/components/code.props.js +1 -1
  260. package/dist/esm/components/combobox.d.ts +28 -15
  261. package/dist/esm/components/combobox.d.ts.map +1 -1
  262. package/dist/esm/components/combobox.js +1 -1
  263. package/dist/esm/components/combobox.props.d.ts +48 -0
  264. package/dist/esm/components/combobox.props.d.ts.map +1 -1
  265. package/dist/esm/components/combobox.props.js +1 -1
  266. package/dist/esm/components/container.js +1 -1
  267. package/dist/esm/components/container.props.js +1 -1
  268. package/dist/esm/components/context-menu.d.ts +18 -5
  269. package/dist/esm/components/context-menu.d.ts.map +1 -1
  270. package/dist/esm/components/context-menu.js +1 -1
  271. package/dist/esm/components/context-menu.props.d.ts +1 -1
  272. package/dist/esm/components/context-menu.props.d.ts.map +1 -1
  273. package/dist/esm/components/context-menu.props.js +1 -1
  274. package/dist/esm/components/data-list.js +1 -1
  275. package/dist/esm/components/data-list.props.js +1 -1
  276. package/dist/esm/components/dialog.js +1 -1
  277. package/dist/esm/components/dialog.props.js +1 -1
  278. package/dist/esm/components/dropdown-menu.d.ts +11 -18
  279. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  280. package/dist/esm/components/dropdown-menu.js +1 -1
  281. package/dist/esm/components/dropdown-menu.props.js +1 -1
  282. package/dist/esm/components/em.js +1 -1
  283. package/dist/esm/components/em.props.js +1 -1
  284. package/dist/esm/components/flex.js +1 -1
  285. package/dist/esm/components/flex.props.js +1 -1
  286. package/dist/esm/components/grid.js +1 -1
  287. package/dist/esm/components/grid.props.js +1 -1
  288. package/dist/esm/components/heading.js +1 -1
  289. package/dist/esm/components/heading.props.js +1 -1
  290. package/dist/esm/components/hover-card.js +1 -1
  291. package/dist/esm/components/hover-card.props.js +1 -1
  292. package/dist/esm/components/icon-button.js +1 -1
  293. package/dist/esm/components/icon-button.props.js +1 -1
  294. package/dist/esm/components/icons.js +1 -1
  295. package/dist/esm/components/image.js +1 -1
  296. package/dist/esm/components/image.props.js +1 -1
  297. package/dist/esm/components/index.js +1 -1
  298. package/dist/esm/components/inset.js +1 -1
  299. package/dist/esm/components/inset.props.js +1 -1
  300. package/dist/esm/components/kbd.js +1 -1
  301. package/dist/esm/components/kbd.props.js +1 -1
  302. package/dist/esm/components/link.js +1 -1
  303. package/dist/esm/components/link.props.js +1 -1
  304. package/dist/esm/components/navbar.js +1 -1
  305. package/dist/esm/components/navbar.props.js +1 -1
  306. package/dist/esm/components/popover.js +1 -1
  307. package/dist/esm/components/popover.props.js +1 -1
  308. package/dist/esm/components/portal.js +1 -1
  309. package/dist/esm/components/progress.js +1 -1
  310. package/dist/esm/components/progress.props.js +1 -1
  311. package/dist/esm/components/quote.js +1 -1
  312. package/dist/esm/components/quote.props.js +1 -1
  313. package/dist/esm/components/radio-cards.js +1 -1
  314. package/dist/esm/components/radio-cards.props.js +1 -1
  315. package/dist/esm/components/radio-group.js +1 -1
  316. package/dist/esm/components/radio-group.props.js +1 -1
  317. package/dist/esm/components/radio.js +1 -1
  318. package/dist/esm/components/radio.props.js +1 -1
  319. package/dist/esm/components/reset.js +1 -1
  320. package/dist/esm/components/schemas/base-button.schema.d.ts +111 -256
  321. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
  322. package/dist/esm/components/schemas/base-button.schema.js +1 -1
  323. package/dist/esm/components/schemas/button.schema.d.ts +136 -557
  324. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
  325. package/dist/esm/components/schemas/button.schema.js +1 -1
  326. package/dist/esm/components/schemas/icon-button.schema.d.ts +123 -240
  327. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
  328. package/dist/esm/components/schemas/icon-button.schema.js +1 -1
  329. package/dist/esm/components/schemas/index.js +1 -1
  330. package/dist/esm/components/schemas/shell.schema.d.ts +592 -851
  331. package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
  332. package/dist/esm/components/schemas/shell.schema.js +1 -1
  333. package/dist/esm/components/schemas/toggle-button.schema.d.ts +138 -1026
  334. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
  335. package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
  336. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +124 -465
  337. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  338. package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
  339. package/dist/esm/components/scroll-area.js +1 -1
  340. package/dist/esm/components/scroll-area.props.js +1 -1
  341. package/dist/esm/components/section.js +1 -1
  342. package/dist/esm/components/section.props.js +1 -1
  343. package/dist/esm/components/segmented-control.js +1 -1
  344. package/dist/esm/components/segmented-control.props.js +1 -1
  345. package/dist/esm/components/select.js +1 -1
  346. package/dist/esm/components/select.props.js +1 -1
  347. package/dist/esm/components/separator.js +1 -1
  348. package/dist/esm/components/separator.props.js +1 -1
  349. package/dist/esm/components/sheet.js +1 -1
  350. package/dist/esm/components/shell.context.js +1 -1
  351. package/dist/esm/components/shell.hooks.js +1 -1
  352. package/dist/esm/components/shell.js +1 -1
  353. package/dist/esm/components/shell.types.js +1 -1
  354. package/dist/esm/components/sidebar.js +1 -1
  355. package/dist/esm/components/sidebar.props.js +1 -1
  356. package/dist/esm/components/skeleton.js +1 -1
  357. package/dist/esm/components/skeleton.props.js +1 -1
  358. package/dist/esm/components/slider.js +1 -1
  359. package/dist/esm/components/slider.props.js +1 -1
  360. package/dist/esm/components/slot.d.ts +6 -2
  361. package/dist/esm/components/slot.d.ts.map +1 -1
  362. package/dist/esm/components/slot.js +1 -1
  363. package/dist/esm/components/spinner.js +1 -1
  364. package/dist/esm/components/spinner.props.js +1 -1
  365. package/dist/esm/components/strong.js +1 -1
  366. package/dist/esm/components/strong.props.js +1 -1
  367. package/dist/esm/components/switch.js +1 -1
  368. package/dist/esm/components/switch.props.js +1 -1
  369. package/dist/esm/components/tab-nav.js +1 -1
  370. package/dist/esm/components/tab-nav.props.js +1 -1
  371. package/dist/esm/components/table.js +1 -1
  372. package/dist/esm/components/table.props.js +1 -1
  373. package/dist/esm/components/tabs.js +1 -1
  374. package/dist/esm/components/tabs.props.js +1 -1
  375. package/dist/esm/components/text-area.js +1 -1
  376. package/dist/esm/components/text-area.props.js +1 -1
  377. package/dist/esm/components/text-field.js +1 -1
  378. package/dist/esm/components/text-field.props.js +1 -1
  379. package/dist/esm/components/text.js +1 -1
  380. package/dist/esm/components/text.props.js +1 -1
  381. package/dist/esm/components/theme-panel.js +1 -1
  382. package/dist/esm/components/theme.js +1 -1
  383. package/dist/esm/components/theme.props.d.ts +1 -1
  384. package/dist/esm/components/theme.props.js +1 -1
  385. package/dist/esm/components/toggle-button.js +1 -1
  386. package/dist/esm/components/toggle-icon-button.js +1 -1
  387. package/dist/esm/components/toolbar.js +1 -1
  388. package/dist/esm/components/tooltip.js +1 -1
  389. package/dist/esm/components/tooltip.props.js +1 -1
  390. package/dist/esm/components/user-card.js +1 -1
  391. package/dist/esm/components/user-card.props.js +1 -1
  392. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  393. package/dist/esm/components/virtual-menu.js +1 -1
  394. package/dist/esm/components/visually-hidden.js +1 -1
  395. package/dist/esm/helpers/compile-prop-defs.js +1 -1
  396. package/dist/esm/helpers/extract-margin-props.js +1 -1
  397. package/dist/esm/helpers/extract-props.js +1 -1
  398. package/dist/esm/helpers/font-config.js +1 -1
  399. package/dist/esm/helpers/get-margin-styles.js +1 -1
  400. package/dist/esm/helpers/get-matching-gray-color.js +1 -1
  401. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  402. package/dist/esm/helpers/get-subtree.js +1 -1
  403. package/dist/esm/helpers/has-own-property.js +1 -1
  404. package/dist/esm/helpers/index.js +1 -1
  405. package/dist/esm/helpers/inert.js +1 -1
  406. package/dist/esm/helpers/is-responsive-object.js +1 -1
  407. package/dist/esm/helpers/map-prop-values.js +1 -1
  408. package/dist/esm/helpers/merge-styles.js +1 -1
  409. package/dist/esm/helpers/normalize-to-px.js +1 -1
  410. package/dist/esm/helpers/require-react-element.js +1 -1
  411. package/dist/esm/helpers/use-deprecation-warning.js +1 -1
  412. package/dist/esm/hooks/index.js +1 -1
  413. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
  414. package/dist/esm/hooks/use-breakpoint.d.ts +4 -1
  415. package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
  416. package/dist/esm/hooks/use-breakpoint.js +1 -1
  417. package/dist/esm/hooks/use-live-announcer.js +1 -1
  418. package/dist/esm/hooks/use-prop-synced-state.js +1 -1
  419. package/dist/esm/hooks/use-toggle-state.js +1 -1
  420. package/dist/esm/hooks/use-tooltip-wrapper.js +1 -1
  421. package/dist/esm/index.js +1 -1
  422. package/dist/esm/props/as-child.prop.js +1 -1
  423. package/dist/esm/props/color.prop.js +1 -1
  424. package/dist/esm/props/font-family.prop.js +1 -1
  425. package/dist/esm/props/gap.props.js +1 -1
  426. package/dist/esm/props/height.props.js +1 -1
  427. package/dist/esm/props/high-contrast.prop.js +1 -1
  428. package/dist/esm/props/index.js +1 -1
  429. package/dist/esm/props/layout.props.js +1 -1
  430. package/dist/esm/props/leading-trim.prop.js +1 -1
  431. package/dist/esm/props/margin.props.js +1 -1
  432. package/dist/esm/props/padding.props.js +1 -1
  433. package/dist/esm/props/prop-def.js +1 -1
  434. package/dist/esm/props/radius.prop.js +1 -1
  435. package/dist/esm/props/shadow.props.js +1 -1
  436. package/dist/esm/props/text-align.prop.js +1 -1
  437. package/dist/esm/props/text-wrap.prop.js +1 -1
  438. package/dist/esm/props/truncate.prop.js +1 -1
  439. package/dist/esm/props/weight.prop.js +1 -1
  440. package/dist/esm/props/width.props.js +1 -1
  441. package/fonts.css +2 -0
  442. package/package.json +36 -36
  443. package/schemas/base-button.json +66 -60
  444. package/schemas/button.json +80 -74
  445. package/schemas/icon-button.json +78 -72
  446. package/schemas/index.json +390 -360
  447. package/schemas/toggle-button.json +84 -78
  448. package/schemas/toggle-icon-button.json +82 -76
  449. package/src/components/_internal/base-card.css +5 -5
  450. package/src/components/_internal/base-checkbox.css +17 -3
  451. package/src/components/_internal/base-dialog.css +4 -4
  452. package/src/components/_internal/base-menu.css +68 -143
  453. package/src/components/_internal/base-menu.utils.tsx +144 -0
  454. package/src/components/_internal/dropdown-menu-drill-down.tsx +281 -183
  455. package/src/components/_internal/menu-context.tsx +24 -15
  456. package/src/components/accordion.css +5 -5
  457. package/src/components/callout.css +5 -5
  458. package/src/components/chatbar.css +100 -32
  459. package/src/components/chatbar.tsx +739 -735
  460. package/src/components/checkbox-cards.css +30 -0
  461. package/src/components/combobox.css +62 -115
  462. package/src/components/combobox.props.tsx +14 -0
  463. package/src/components/combobox.tsx +440 -212
  464. package/src/components/context-menu.props.tsx +4 -1
  465. package/src/components/context-menu.tsx +108 -62
  466. package/src/components/dropdown-menu.css +41 -121
  467. package/src/components/dropdown-menu.tsx +430 -275
  468. package/src/components/hover-card.css +3 -3
  469. package/src/components/popover.css +4 -4
  470. package/src/components/radio-cards.css +30 -0
  471. package/src/components/schemas/shell.schema.ts +11 -18
  472. package/src/components/scroll-area.css +2 -3
  473. package/src/components/select.css +2 -2
  474. package/src/components/shell.css +1 -1
  475. package/src/components/table.css +5 -5
  476. package/src/components/theme.props.tsx +1 -1
  477. package/src/components/tooltip.css +1 -1
  478. package/src/components/virtual-menu.tsx +12 -8
  479. package/src/hooks/use-breakpoint.ts +19 -3
  480. package/src/styles/fonts.css +6 -1
  481. package/src/styles/tokens/font-family.css +13 -5
  482. package/src/styles/tokens/radius.css +47 -4
  483. package/styles.css +801 -784
  484. package/tokens/base.css +19 -2
  485. package/tokens.css +19 -2
  486. package/dist/esm/chunk-3XT5P2HO.js +0 -2
  487. package/dist/esm/chunk-4XJY6FIK.js +0 -2
  488. package/dist/esm/chunk-4Z33XHOK.js +0 -2
  489. package/dist/esm/chunk-4Z33XHOK.js.map +0 -7
  490. package/dist/esm/chunk-E2Z5IA2P.js +0 -2
  491. package/dist/esm/chunk-E2Z5IA2P.js.map +0 -7
  492. package/dist/esm/chunk-HVWEPVBH.js +0 -2
  493. package/dist/esm/chunk-HVWEPVBH.js.map +0 -7
  494. package/dist/esm/chunk-KKBP2CRH.js +0 -2
  495. package/dist/esm/chunk-KKBP2CRH.js.map +0 -7
  496. package/dist/esm/chunk-MOR3NSXQ.js +0 -2
  497. package/dist/esm/chunk-MOR3NSXQ.js.map +0 -7
  498. package/dist/esm/chunk-QCNUTT4R.js +0 -2
  499. package/dist/esm/chunk-QCNUTT4R.js.map +0 -7
  500. package/dist/esm/chunk-UGD7Z3L4.js +0 -2
  501. package/dist/esm/chunk-UGD7Z3L4.js.map +0 -7
  502. package/dist/esm/chunk-YEB3H7QN.js +0 -2
  503. package/dist/esm/chunk-YEB3H7QN.js.map +0 -7
  504. package/dist/esm/chunk-ZY6SQWHT.js +0 -2
  505. package/dist/esm/chunk-ZY6SQWHT.js.map +0 -7
  506. /package/dist/esm/{chunk-P7HYVJSU.js.map → chunk-2TIADHPD.js.map} +0 -0
  507. /package/dist/esm/{chunk-RMKXWYOV.js.map → chunk-3OBXZUFJ.js.map} +0 -0
  508. /package/dist/esm/{chunk-S2HA3W3V.js.map → chunk-3R7XMRV5.js.map} +0 -0
  509. /package/dist/esm/{chunk-S56YSRHP.js.map → chunk-56TS6OKQ.js.map} +0 -0
  510. /package/dist/esm/{chunk-2FYJTSOP.js.map → chunk-5BYHEYO6.js.map} +0 -0
  511. /package/dist/esm/{chunk-B24BDVG2.js.map → chunk-5MNBQROW.js.map} +0 -0
  512. /package/dist/esm/{chunk-W7N7V5YD.js.map → chunk-7ESHXHHO.js.map} +0 -0
  513. /package/dist/esm/{chunk-CRWYCLTE.js.map → chunk-ABSKRHVM.js.map} +0 -0
  514. /package/dist/esm/{chunk-3MWWP4MW.js.map → chunk-BBJUB52V.js.map} +0 -0
  515. /package/dist/esm/{chunk-PTLFMWCN.js.map → chunk-CQNPBTM5.js.map} +0 -0
  516. /package/dist/esm/{chunk-GJSGKE7B.js.map → chunk-CTA5ODAO.js.map} +0 -0
  517. /package/dist/esm/{chunk-GWXVETMF.js.map → chunk-DCAZPMOB.js.map} +0 -0
  518. /package/dist/esm/{chunk-PLWXTEVE.js.map → chunk-DMJJM5IS.js.map} +0 -0
  519. /package/dist/esm/{chunk-A2RZGGMY.js.map → chunk-DQAUX5ZL.js.map} +0 -0
  520. /package/dist/esm/{chunk-YUP6EICB.js.map → chunk-DXL6V2A5.js.map} +0 -0
  521. /package/dist/esm/{chunk-XMRIRFM7.js.map → chunk-FG7XM7KJ.js.map} +0 -0
  522. /package/dist/esm/{chunk-IKSN4RNB.js.map → chunk-FIB3XATL.js.map} +0 -0
  523. /package/dist/esm/{chunk-374ZYJUP.js.map → chunk-HBR42MIX.js.map} +0 -0
  524. /package/dist/esm/{chunk-2UPAYDKR.js.map → chunk-HIKVMKYQ.js.map} +0 -0
  525. /package/dist/esm/{chunk-VX6ARMWP.js.map → chunk-HSAG7C53.js.map} +0 -0
  526. /package/dist/esm/{chunk-OSRJRBKP.js.map → chunk-HW324FK3.js.map} +0 -0
  527. /package/dist/esm/{chunk-DNHUQLXO.js.map → chunk-JBO5YOUM.js.map} +0 -0
  528. /package/dist/esm/{chunk-HF5WY5YE.js.map → chunk-JGLAE5G7.js.map} +0 -0
  529. /package/dist/esm/{chunk-4YFJWXL2.js.map → chunk-JJKQ7CGI.js.map} +0 -0
  530. /package/dist/esm/{chunk-CWRNW44F.js.map → chunk-L6PVH3RM.js.map} +0 -0
  531. /package/dist/esm/{chunk-MK2R6DAU.js.map → chunk-LAOMR7SE.js.map} +0 -0
  532. /package/dist/esm/{chunk-FHOCUZDR.js.map → chunk-NIQT45PJ.js.map} +0 -0
  533. /package/dist/esm/{chunk-3XT5P2HO.js.map → chunk-OS3FCYZY.js.map} +0 -0
  534. /package/dist/esm/{chunk-7QDTSBJF.js.map → chunk-OYF6YXH7.js.map} +0 -0
  535. /package/dist/esm/{chunk-WFMYNZXZ.js.map → chunk-P5OSU4NX.js.map} +0 -0
  536. /package/dist/esm/{chunk-QEOAXJLN.js.map → chunk-PTS6QYQW.js.map} +0 -0
  537. /package/dist/esm/{chunk-CVWCKOHO.js.map → chunk-RLPKKCBL.js.map} +0 -0
  538. /package/dist/esm/{chunk-LKAK5GXF.js.map → chunk-SPIU5JYC.js.map} +0 -0
  539. /package/dist/esm/{chunk-4AQTUBVP.js.map → chunk-T4UHUQFJ.js.map} +0 -0
  540. /package/dist/esm/{chunk-K6QZMNCD.js.map → chunk-TS623UPD.js.map} +0 -0
  541. /package/dist/esm/{chunk-YV2KYHGR.js.map → chunk-UBOOUDS4.js.map} +0 -0
  542. /package/dist/esm/{chunk-D6B7IMZU.js.map → chunk-UFI53QUC.js.map} +0 -0
  543. /package/dist/esm/{chunk-AU3D6F42.js.map → chunk-UIRSGVJG.js.map} +0 -0
  544. /package/dist/esm/{chunk-FXUUI6Z2.js.map → chunk-UUUZXUIP.js.map} +0 -0
  545. /package/dist/esm/{chunk-25WZA7ZU.js.map → chunk-VA4CTVQL.js.map} +0 -0
  546. /package/dist/esm/{chunk-TOLLPRMM.js.map → chunk-VNPNEJI6.js.map} +0 -0
  547. /package/dist/esm/{chunk-6IGTK4JE.js.map → chunk-YMUGKYGW.js.map} +0 -0
  548. /package/dist/esm/{chunk-M24UXMOQ.js.map → chunk-ZXZOH63L.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as b}from"./chunk-PS6NEG5A.js";import{a as v}from"./chunk-GSTOGDAJ.js";import{a as N}from"./chunk-6FLLFCBU.js";import{a as f}from"./chunk-CBR3VIRS.js";import{a as P}from"./chunk-3XT5P2HO.js";var d={};P(d,{Link:()=>l,Root:()=>c});import*as a from"react";import T from"classnames";import{NavigationMenu as t}from"radix-ui";var c=a.forwardRef((r,n)=>{let{children:e,className:s,color:p,panelBackground:o,...i}=N(r,f,v);return a.createElement(t.Root,{className:"rt-TabNavRoot","data-accent-color":p,...i,asChild:!1,ref:n},a.createElement(t.List,{className:T("rt-reset","rt-BaseTabList","rt-TabNavList",s),"data-panel-background":o},e))});c.displayName="TabNav.Root";var l=a.forwardRef((r,n)=>{let{asChild:e,children:s,className:p,active:o,...i}=r;return a.createElement(t.Item,{className:"rt-TabNavItem"},a.createElement(t.Link,{...i,ref:n,className:T("rt-reset","rt-BaseTabListTrigger","rt-TabNavLink",p),onSelect:void 0,asChild:e,"aria-current":o?"page":void 0,"data-active":o||void 0},b({asChild:e,children:s},m=>a.createElement(a.Fragment,null,a.createElement("span",{className:"rt-BaseTabListTriggerInner rt-TabNavLinkInner"},m),a.createElement("span",{className:"rt-BaseTabListTriggerInnerHidden rt-TabNavLinkInnerHidden"},m)))))});l.displayName="TabNav.Link";export{c as a,l as b,d as c};
2
- //# sourceMappingURL=chunk-P7HYVJSU.js.map
1
+ import{a as b}from"./chunk-PS6NEG5A.js";import{a as v}from"./chunk-GSTOGDAJ.js";import{a as N}from"./chunk-6FLLFCBU.js";import{a as f}from"./chunk-CBR3VIRS.js";import{a as P}from"./chunk-OS3FCYZY.js";var d={};P(d,{Link:()=>l,Root:()=>c});import*as a from"react";import T from"classnames";import{NavigationMenu as t}from"radix-ui";var c=a.forwardRef((r,n)=>{let{children:e,className:s,color:p,panelBackground:o,...i}=N(r,f,v);return a.createElement(t.Root,{className:"rt-TabNavRoot","data-accent-color":p,...i,asChild:!1,ref:n},a.createElement(t.List,{className:T("rt-reset","rt-BaseTabList","rt-TabNavList",s),"data-panel-background":o},e))});c.displayName="TabNav.Root";var l=a.forwardRef((r,n)=>{let{asChild:e,children:s,className:p,active:o,...i}=r;return a.createElement(t.Item,{className:"rt-TabNavItem"},a.createElement(t.Link,{...i,ref:n,className:T("rt-reset","rt-BaseTabListTrigger","rt-TabNavLink",p),onSelect:void 0,asChild:e,"aria-current":o?"page":void 0,"data-active":o||void 0},b({asChild:e,children:s},m=>a.createElement(a.Fragment,null,a.createElement("span",{className:"rt-BaseTabListTriggerInner rt-TabNavLinkInner"},m),a.createElement("span",{className:"rt-BaseTabListTriggerInnerHidden rt-TabNavLinkInnerHidden"},m)))))});l.displayName="TabNav.Link";export{c as a,l as b,d as c};
2
+ //# sourceMappingURL=chunk-2TIADHPD.js.map
@@ -0,0 +1,2 @@
1
+ import{b as u}from"./chunk-DXL6V2A5.js";import{b as r}from"./chunk-NVDXXGVW.js";import*as e from"react";var s=e.createContext({isInsideMenu:!1}),p={1:24,2:32};function a(o,t){let n=t?parseFloat(t)/100:1;return p[o]*(Number.isFinite(n)?n:1)}function f({children:o,size:t}){let n=r(t,void 0),{scaling:c}=u(),i=n?a(n,c):void 0,d=e.useMemo(()=>({isInsideMenu:!0,size:n,itemHeight:i}),[n,i]);return e.createElement(s.Provider,{value:d},o)}function l(){return e.useContext(s)}export{p as a,a as b,f as c,l as d};
2
+ //# sourceMappingURL=chunk-37OGSEQR.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/_internal/menu-context.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\n\nimport { useThemeContext } from '../theme.js';\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/** Map menu size to item height in pixels at 100% scaling */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 24, // --space-5\n '2': 32, // --space-6\n};\n\n/** Item height in px for a size at the given theme scaling (\"100%\", \"110%\"\u2026). */\nexport function getMenuItemHeight(size: MenuSize, scaling: string | undefined): number {\n const scale = scaling ? parseFloat(scaling) / 100 : 1;\n return menuSizeToItemHeight[size] * (Number.isFinite(scale) ? scale : 1);\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const { scaling } = useThemeContext();\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize, scaling) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n"],
5
+ "mappings": "gFAEA,UAAYA,MAAW,QA0BvB,IAAMC,EAAoB,gBAAgC,CAAE,aAAc,EAAM,CAAC,EASpEC,EAAiD,CAC5D,EAAK,GACL,EAAK,EACP,EAGO,SAASC,EAAkBC,EAAgBC,EAAqC,CACrF,IAAMC,EAAQD,EAAU,WAAWA,CAAO,EAAI,IAAM,EACpD,OAAOH,EAAqBE,CAAI,GAAK,OAAO,SAASE,CAAK,EAAIA,EAAQ,EACxE,CAEO,SAASC,EAAa,CAAE,SAAAC,EAAU,KAAAJ,CAAK,EAAsB,CAClE,IAAMK,EAAeC,EAAiDN,EAAM,MAAS,EAC/E,CAAE,QAAAC,CAAQ,EAAIM,EAAgB,EAC9BC,EAAaH,EAAeN,EAAkBM,EAAcJ,CAAO,EAAI,OACvEQ,EAAc,UAClB,KAAO,CAAE,aAAc,GAAM,KAAMJ,EAAc,WAAAG,CAAW,GAC5D,CAACH,EAAcG,CAAU,CAC3B,EACA,OAAO,gBAACX,EAAY,SAAZ,CAAqB,MAAOY,GAAQL,CAAS,CACvD,CAEO,SAASM,GAAiB,CAC/B,OAAa,aAAWb,CAAW,CACrC",
6
+ "names": ["React", "MenuContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "scaling", "scale", "MenuProvider", "children", "resolvedSize", "useResolvedResponsiveValue", "useThemeContext", "itemHeight", "value", "useMenuContext"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as r}from"./chunk-BPVVFHYD.js";import{c as i}from"./chunk-YUP6EICB.js";import{a as p}from"./chunk-H7ST535H.js";import{a as e}from"./chunk-6FLLFCBU.js";import*as o from"react";import v from"classnames";import{Tooltip as t}from"radix-ui";var u=o.forwardRef((n,s)=>{let{children:l,className:m,open:a,defaultOpen:f,onOpenChange:P,delayDuration:T,disableHoverableContent:c,content:d,container:R,forceMount:C,...y}=e(n,r),h={open:a,defaultOpen:f,onOpenChange:P,delayDuration:T,disableHoverableContent:c};return o.createElement(t.Root,{...h},o.createElement(t.Trigger,{asChild:!0},l),o.createElement(t.Portal,{container:R,forceMount:C},o.createElement(i,{asChild:!0},o.createElement(t.Content,{sideOffset:4,collisionPadding:10,...y,asChild:!1,ref:s,className:v("rt-TooltipContent",m)},o.createElement(p,{as:"p",className:"rt-TooltipText",size:"1"},d),o.createElement(t.Arrow,{className:"rt-TooltipArrow"})))))});u.displayName="Tooltip";export{u as a};
2
- //# sourceMappingURL=chunk-RMKXWYOV.js.map
1
+ import{a as r}from"./chunk-BPVVFHYD.js";import{a as p}from"./chunk-H7ST535H.js";import{c as i}from"./chunk-DXL6V2A5.js";import{a as e}from"./chunk-6FLLFCBU.js";import*as o from"react";import v from"classnames";import{Tooltip as t}from"radix-ui";var u=o.forwardRef((n,s)=>{let{children:l,className:m,open:a,defaultOpen:f,onOpenChange:P,delayDuration:T,disableHoverableContent:c,content:d,container:R,forceMount:C,...y}=e(n,r),h={open:a,defaultOpen:f,onOpenChange:P,delayDuration:T,disableHoverableContent:c};return o.createElement(t.Root,{...h},o.createElement(t.Trigger,{asChild:!0},l),o.createElement(t.Portal,{container:R,forceMount:C},o.createElement(i,{asChild:!0},o.createElement(t.Content,{sideOffset:4,collisionPadding:10,...y,asChild:!1,ref:s,className:v("rt-TooltipContent",m)},o.createElement(p,{as:"p",className:"rt-TooltipText",size:"1"},d),o.createElement(t.Arrow,{className:"rt-TooltipArrow"})))))});u.displayName="Tooltip";export{u as a};
2
+ //# sourceMappingURL=chunk-3OBXZUFJ.js.map
@@ -1,2 +1,2 @@
1
- import{a as g,b as R,c as u,d as y,e as C}from"./chunk-BI7W34WW.js";import{a as f}from"./chunk-5TXQLK4G.js";import{a as i}from"./chunk-6FLLFCBU.js";import{a as D}from"./chunk-3XT5P2HO.js";var O={};D(O,{Content:()=>I,Header:()=>E,Item:()=>v,Root:()=>T,Trigger:()=>H});import*as o from"react";import p from"classnames";import{Accordion as m}from"radix-ui";var T=o.forwardRef((r,t)=>{let{className:e,panelBackground:c,material:a,flush:l,radius:s,color:N,...h}=i(r,g),n=h;f(r.panelBackground);let A=a??c;n.type==="single"&&n.collapsible===void 0&&(n.collapsible=!0);let w=o.useCallback(d=>{if(n.type==="multiple"){let P=d.currentTarget.querySelectorAll("[data-radix-accordion-item]");d.key==="Home"?(d.preventDefault(),P[0]?.querySelector("[data-radix-accordion-trigger]")?.focus()):d.key==="End"&&(d.preventDefault(),P[P.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":N,"data-panel-background":A,"data-material":A,"data-flush":l||void 0,"data-radius":s,onKeyDown:w})});T.displayName="Accordion.Root";var v=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,R);return o.createElement(m.Item,{...c,ref:t,className:p("rt-AccordionItem",e)})});v.displayName="Accordion.Item";var E=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,u);return o.createElement(m.Header,{...c,ref:t,className:p("rt-AccordionHeader",e)})});E.displayName="Accordion.Header";var H=o.forwardRef(({children:r,...t},e)=>{let{className:c,...a}=i(t,y),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)});H.displayName="Accordion.Trigger";var I=o.forwardRef((r,t)=>{let{className:e,children:c,...a}=i(r,C);return o.createElement(m.Content,{...a,ref:t,className:p("rt-AccordionContent",e),"aria-live":"polite"},o.createElement("div",{className:"rt-AccordionContentInner"},c))});I.displayName="Accordion.Content";export{T as a,v as b,E as c,H as d,I as e,O as f};
2
- //# sourceMappingURL=chunk-S2HA3W3V.js.map
1
+ import{a as g,b as R,c as u,d as y,e as C}from"./chunk-BI7W34WW.js";import{a as f}from"./chunk-5TXQLK4G.js";import{a as i}from"./chunk-6FLLFCBU.js";import{a as D}from"./chunk-OS3FCYZY.js";var O={};D(O,{Content:()=>I,Header:()=>E,Item:()=>v,Root:()=>T,Trigger:()=>H});import*as o from"react";import p from"classnames";import{Accordion as m}from"radix-ui";var T=o.forwardRef((r,t)=>{let{className:e,panelBackground:c,material:a,flush:l,radius:s,color:N,...h}=i(r,g),n=h;f(r.panelBackground);let A=a??c;n.type==="single"&&n.collapsible===void 0&&(n.collapsible=!0);let w=o.useCallback(d=>{if(n.type==="multiple"){let P=d.currentTarget.querySelectorAll("[data-radix-accordion-item]");d.key==="Home"?(d.preventDefault(),P[0]?.querySelector("[data-radix-accordion-trigger]")?.focus()):d.key==="End"&&(d.preventDefault(),P[P.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":N,"data-panel-background":A,"data-material":A,"data-flush":l||void 0,"data-radius":s,onKeyDown:w})});T.displayName="Accordion.Root";var v=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,R);return o.createElement(m.Item,{...c,ref:t,className:p("rt-AccordionItem",e)})});v.displayName="Accordion.Item";var E=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,u);return o.createElement(m.Header,{...c,ref:t,className:p("rt-AccordionHeader",e)})});E.displayName="Accordion.Header";var H=o.forwardRef(({children:r,...t},e)=>{let{className:c,...a}=i(t,y),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)});H.displayName="Accordion.Trigger";var I=o.forwardRef((r,t)=>{let{className:e,children:c,...a}=i(r,C);return o.createElement(m.Content,{...a,ref:t,className:p("rt-AccordionContent",e),"aria-live":"polite"},o.createElement("div",{className:"rt-AccordionContentInner"},c))});I.displayName="Accordion.Content";export{T as a,v as b,E as c,H as d,I as e,O as f};
2
+ //# sourceMappingURL=chunk-3R7XMRV5.js.map
@@ -0,0 +1,2 @@
1
+ import{a as A}from"./chunk-CTA5ODAO.js";import{b as ne,c as re,d as V,e as te,f as ae}from"./chunk-IX5HIHVI.js";import{c as K}from"./chunk-37OGSEQR.js";import{a as oe}from"./chunk-MJJ7XDIP.js";import{b as z,c as W}from"./chunk-DXL6V2A5.js";import{a as E}from"./chunk-5TXQLK4G.js";import{b as h,c as N,d as U,e as Y,f as q}from"./chunk-HUKPWYG2.js";import{b as B,c as k,d as X,e as O,f as G}from"./chunk-NVDXXGVW.js";import{a as x}from"./chunk-6FLLFCBU.js";import{a as P,b,c as $,d as J,e as _,f as Q,g as Z,h as ee,i as L}from"./chunk-JSW6J6RS.js";import{a as xe}from"./chunk-OS3FCYZY.js";var _e={};xe(_e,{CheckboxItem:()=>fe,Content:()=>le,Group:()=>we,Item:()=>me,Label:()=>ce,RadioGroup:()=>De,RadioItem:()=>Me,Root:()=>ue,Separator:()=>ge,Sub:()=>Pe,SubContent:()=>Ce,SubTrigger:()=>Re,Trigger:()=>pe,TriggerIcon:()=>ve});import*as e from"react";import l from"classnames";import{DropdownMenu as u,Slot as Ee}from"radix-ui";import{useCallbackRef as ie}from"radix-ui/internal";var se=e.createContext(!1),ue=o=>{let{open:n,defaultOpen:r=!1,onOpenChange:s}=o,[a,t]=e.useState(r),i=n??a,d=ie(s),p=e.useCallback(m=>{t(m),d(m)},[d]);return e.createElement(se.Provider,{value:i},e.createElement(u.Root,{...o,onOpenChange:p}))};ue.displayName="DropdownMenu.Root";var pe=e.forwardRef(({children:o,...n},r)=>e.createElement(u.Trigger,{...n,ref:r,asChild:!0},oe(o)));pe.displayName="DropdownMenu.Trigger";var F=e.createContext({}),Ne={ltr:"ArrowLeft",rtl:"ArrowRight"},Be={ltr:"ArrowRight",rtl:"ArrowLeft"};function ke(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function de(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var le=e.forwardRef((o,n)=>{let r=z();E(o.panelBackground);let s=k(o.material,o.panelBackground,r),{size:a=h.size.default,variant:t=h.variant.default,highContrast:i=h.highContrast.default}=o,{className:d,children:p,color:m,container:w,forceMount:c,material:v,panelBackground:T,submenuBehavior:I,virtualized:R=!1,onEscapeKeyDown:S,onKeyDown:y,...g}=x(o,h),D=m||r.accentColor,f=B(I,"cascade"),j=f==="drill-down",Ie=e.useContext(se),C=$(),Se=M=>{S?.(M),!(M.defaultPrevented||!j||C.getDepth()===0)&&(M.preventDefault(),C.pop("keyboard"))},ye=M=>{y?.(M),!(M.defaultPrevented||!j||C.getDepth()===0)&&(ke(M.target)||M.key===Ne[de(M.currentTarget)]&&(M.preventDefault(),C.pop("keyboard")))},Te=e.useMemo(()=>({size:a,variant:t,color:D,highContrast:i,material:s}),[a,t,D,i,s]),H=e.createElement(K,{size:a},e.createElement(F.Provider,{value:Te},e.createElement(J,{store:C,behavior:f,open:Ie},p)));return e.createElement(u.Portal,{container:w,forceMount:c},e.createElement(W,{asChild:!0},e.createElement(u.Content,{"data-accent-color":D,"data-material":s,"data-panel-background":s,align:"start",sideOffset:4,collisionPadding:10,...g,onEscapeKeyDown:Se,onKeyDown:ye,asChild:!1,ref:n,className:l("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",d)},R?e.createElement("div",{className:l("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},H):e.createElement(A,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("rt-BaseMenuViewport","rt-DropdownMenuViewport")},H)))))});le.displayName="DropdownMenu.Content";var ce=e.forwardRef(({className:o,...n},r)=>e.useContext(P)?e.createElement(u.Label,{...n,asChild:!1,ref:r,className:l("rt-BaseMenuLabel","rt-DropdownMenuLabel",o)}):null);ce.displayName="DropdownMenu.Label";var me=e.forwardRef((o,n)=>{let{className:r,children:s,color:a=U.color.default,shortcut:t,...i}=o;return e.useContext(P)?e.createElement(u.Item,{"data-accent-color":a,"aria-keyshortcuts":t?O(t):void 0,...i,ref:n,className:l("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",r)},e.createElement(Ee.Slottable,null,s),t&&e.createElement(G,{shortcut:t,className:"rt-DropdownMenuShortcut"})):null});me.displayName="DropdownMenu.Item";var we=e.forwardRef(({className:o,...n},r)=>e.createElement(u.Group,{...n,asChild:!1,ref:r,className:l("rt-BaseMenuGroup","rt-DropdownMenuGroup",o)}));we.displayName="DropdownMenu.Group";var De=e.forwardRef(({className:o,...n},r)=>e.createElement(u.RadioGroup,{...n,asChild:!1,ref:r,className:l("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",o)}));De.displayName="DropdownMenu.RadioGroup";var Me=e.forwardRef((o,n)=>{let{children:r,className:s,color:a=q.color.default,...t}=o;return e.useContext(P)?e.createElement(u.RadioItem,{...t,asChild:!1,ref:n,"data-accent-color":a,className:l("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",s)},r,e.createElement(u.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(ae,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"}))):null});Me.displayName="DropdownMenu.RadioItem";var fe=e.forwardRef((o,n)=>{let{children:r,className:s,shortcut:a,color:t=Y.color.default,...i}=o;return e.useContext(P)?e.createElement(u.CheckboxItem,{"aria-keyshortcuts":a?O(a):void 0,...i,asChild:!1,ref:n,"data-accent-color":t,className:l("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",s)},r,e.createElement(u.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(ne,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})),a&&e.createElement(G,{shortcut:a,className:"rt-DropdownMenuShortcut"})):null});fe.displayName="DropdownMenu.CheckboxItem";var Pe=({label:o="Back",open:n,defaultOpen:r,onOpenChange:s,children:a})=>{let t=b(),i=e.useId(),d=e.useMemo(()=>({id:i,label:o}),[i,o]),p=_(t,i)!=="closed";e.useLayoutEffect(()=>{!t||n===void 0||(n&&!t.isOpen(i)?t.push(i,null):!n&&t.isOpen(i)&&t.close(i))},[t,n,i]);let m=e.useRef(r);e.useLayoutEffect(()=>{t&&m.current&&n===void 0&&t.push(i,null)},[]);let w=ie(s),c=e.useRef(p);return e.useEffect(()=>{!t||c.current===p||(c.current=p,w(p))},[t,p,w]),e.createElement(ee.Provider,{value:d},e.createElement(u.Sub,{open:n,defaultOpen:r,onOpenChange:t?void 0:s},a))};Pe.displayName="DropdownMenu.Sub";var Re=e.forwardRef((o,n)=>{let{className:r,children:s,onKeyDown:a,...t}=o,i=b(),d=L(),p=e.useContext(P);if(i&&d){if(!p)return null;let m=c=>{c.preventDefault(),i.push(d.id)},w=c=>{a?.(c),!(c.defaultPrevented||t.disabled)&&c.key===Be[de(c.currentTarget)]&&(c.preventDefault(),i.push(d.id,"keyboard"))};return e.createElement(u.Item,{"aria-haspopup":"menu",...t,"data-drill-down-trigger":d.id,"data-drill-down-name":t.textValue,onSelect:m,onKeyDown:w,ref:n,className:l("rt-reset","rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger","rt-DropdownMenuDrillDownSubTrigger",r)},s,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(V,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))}return e.createElement(u.SubTrigger,{...t,onKeyDown:a,asChild:!1,ref:n,className:l("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",r)},s,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(V,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))});Re.displayName="DropdownMenu.SubTrigger";var ge=e.forwardRef(({className:o,...n},r)=>e.useContext(P)?e.createElement(u.Separator,{...n,asChild:!1,ref:r,className:l("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",o)}):null);ge.displayName="DropdownMenu.Separator";function Oe({label:o,name:n}){let r=b(),s=e.useCallback(i=>{i.preventDefault(),r?.pop()},[r]),a=typeof o=="string"?o:n,t=a&&a!=="Back"?`Back from ${a}`:void 0;return e.createElement(u.Item,{"aria-label":t,textValue:a||"Back",onSelect:s,className:l("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem","rt-DropdownMenuDrillDownBackItem")},e.createElement(te,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"rt-DropdownMenuDrillDownBackLabel"},o))}function Ge(o){let{loop:n,onEscapeKeyDown:r,onPointerDownOutside:s,onFocusOutside:a,onInteractOutside:t,sideOffset:i,alignOffset:d,avoidCollisions:p,collisionBoundary:m,collisionPadding:w,arrowPadding:c,sticky:v,hideWhenDetached:T,updatePositionStrategy:I,...R}=o;return R}var Ce=e.forwardRef((o,n)=>{let r=b(),s=L();return r&&s?e.createElement(be,{...o,ref:n,store:r,sub:s}):e.createElement(he,{...o,ref:n})});Ce.displayName="DropdownMenu.SubContent";var he=e.forwardRef((o,n)=>{let r=e.useContext(F),s=z();E(o.panelBackground);let a=o.size??r.size,t=o.variant??r.variant,i=o.color??r.color,d=o.highContrast??r.highContrast,p=o.material??o.panelBackground??r.material??k(void 0,void 0,s),{className:m,children:w,container:c,forceMount:v,color:T,material:I,panelBackground:R,virtualized:S=!1,...y}=x({...o,size:a,variant:t,highContrast:d},N),g=B(a,N.size.default),D=e.useMemo(()=>({size:a,variant:t,color:i,highContrast:d,material:p}),[a,t,i,d,p]),f=e.createElement(K,{size:a},e.createElement(F.Provider,{value:D},w));return e.createElement(u.Portal,{container:c,forceMount:v},e.createElement(W,{asChild:!0},e.createElement(u.SubContent,{"data-accent-color":i,"data-material":p,"data-panel-background":p,alignOffset:X(g,s.scaling),sideOffset:1,collisionPadding:10,...y,asChild:!1,ref:n,className:l("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",m)},S?e.createElement("div",{className:l("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},f):e.createElement(A,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("rt-BaseMenuViewport","rt-DropdownMenuViewport")},f)))))});he.displayName="DropdownMenu.CascadeSubContent";var be=e.forwardRef(({store:o,sub:n,...r},s)=>{let a=_(o,n.id),t=Q(o,n.id),i=Z(a==="top"?o:null);if(a==="closed")return null;let{className:d,children:p,container:m,forceMount:w,virtualized:c,size:v,variant:T,color:I,highContrast:R,material:S,panelBackground:y,...g}=Ge(r),D=a==="top",f=t?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":f||void 0,...g,ref:s,"data-drill-down-panel":n.id,"data-drill-down-active":D?!0:void 0,"data-animation-direction":D?i??void 0:void 0,className:l("rt-DropdownMenuDrillDownPanel",d)},D&&e.createElement(e.Fragment,null,e.createElement(Oe,{label:n.label,name:f}),e.createElement(u.Separator,{className:"rt-BaseMenuSeparator rt-DropdownMenuSeparator"})),e.createElement(P.Provider,{value:D},p))});be.displayName="DropdownMenu.DrillDownPanel";var ve=e.forwardRef(({className:o,...n},r)=>e.createElement(re,{...n,ref:r,className:l("rt-DropdownMenuTriggerIcon",o)}));ve.displayName="DropdownMenu.TriggerIcon";export{ue as a,pe as b,le as c,ce as d,me as e,we as f,De as g,Me as h,fe as i,Pe as j,Re as k,ge as l,Ce as m,ve as n,_e as o};
2
+ //# sourceMappingURL=chunk-4SMJ7D4S.js.map
@@ -0,0 +1,7 @@
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';\nimport { useCallbackRef } from 'radix-ui/internal';\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 DrillDownLevelContext,\n DrillDownRoot,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownDirection,\n useDrillDownStore,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport { MenuProvider } from './_internal/menu-context.js';\nimport {\n MenuShortcut,\n getMenuAlignOffset,\n resolveMenuMaterial,\n toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';\n\nimport type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';\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\n/**\n * Open state of the menu, mirrored from Root so Content can reset drill-down\n * navigation when a force-mounted menu opens again.\n */\nconst DropdownMenuOpenContext = React.createContext(false);\n\ninterface DropdownMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}\nconst DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => {\n const { open: openProp, defaultOpen = false, onOpenChange } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const open = openProp ?? uncontrolledOpen;\n\n const handleOpenChangeProp = useCallbackRef(onOpenChange);\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n handleOpenChangeProp(next);\n },\n [handleOpenChangeProp],\n );\n\n return (\n <DropdownMenuOpenContext.Provider value={open}>\n <DropdownMenuPrimitive.Root {...props} onOpenChange={handleOpenChange} />\n </DropdownMenuOpenContext.Provider>\n );\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/** Visual props shared by Content and SubContent. */\ntype DropdownMenuSurfaceProps = GetPropDefTypes<typeof dropdownMenuSubContentPropDefs>;\n\ntype DropdownMenuContentContextValue = {\n size?: DropdownMenuSurfaceProps['size'];\n variant?: DropdownMenuSurfaceProps['variant'];\n color?: DropdownMenuSurfaceProps['color'];\n highContrast?: DropdownMenuSurfaceProps['highContrast'];\n material?: DropdownMenuSurfaceProps['material'];\n};\nconst DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});\n\n/** Keys that navigate back one drill-down level, by writing direction. */\nconst BACK_KEYS = { ltr: 'ArrowLeft', rtl: 'ArrowRight' } as const;\nconst FORWARD_KEYS = { ltr: 'ArrowRight', rtl: 'ArrowLeft' } as const;\n\nfunction isTextEntryTarget(target: EventTarget | null) {\n return (\n target instanceof HTMLElement &&\n (target.isContentEditable || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')\n );\n}\n\nfunction getDirection(element: HTMLElement | null): 'ltr' | 'rtl' {\n return element?.closest('[dir]')?.getAttribute('dir') === 'rtl' ? 'rtl' : 'ltr';\n}\n\ntype DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;\ninterface DropdownMenuContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,\n DropdownMenuSurfaceProps {\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 useDeprecatedPanelBackgroundWarning(props.panelBackground);\n\n const material = resolveMenuMaterial(props.material, props.panelBackground, themeContext);\n const {\n size = dropdownMenuContentPropDefs.size.default,\n variant = dropdownMenuContentPropDefs.variant.default,\n highContrast = dropdownMenuContentPropDefs.highContrast.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n material: _material,\n panelBackground: _panelBackground,\n submenuBehavior,\n virtualized = false,\n onEscapeKeyDown,\n onKeyDown,\n ...contentProps\n } = extractProps(props, dropdownMenuContentPropDefs);\n\n const resolvedColor = color || themeContext.accentColor;\n const behavior = useResolvedResponsiveValue<SubmenuBehavior>(submenuBehavior, 'cascade');\n const isDrillDown = behavior === 'drill-down';\n const open = React.useContext(DropdownMenuOpenContext);\n const drillDownStore = useCreateDrillDownStore();\n\n // Escape goes back one drill-down level before it closes the menu.\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n onEscapeKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n event.preventDefault();\n drillDownStore.pop('keyboard');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n if (isTextEntryTarget(event.target)) return;\n if (event.key === BACK_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.pop('keyboard');\n }\n };\n\n const contextValue = React.useMemo(\n () => ({ size, variant, color: resolvedColor, highContrast, material }),\n [size, variant, resolvedColor, highContrast, material],\n );\n\n const contentBody = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>\n <DrillDownRoot store={drillDownStore} behavior={behavior} open={open}>\n {children}\n </DrillDownRoot>\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 onEscapeKeyDown={handleEscapeKeyDown}\n onKeyDown={handleKeyDown}\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\" scrollbars=\"vertical\">\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 if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuLabel', 'rt-DropdownMenuLabel', className)}\n />\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 // In drill-down mode, items of levels that are not on screen do not mount.\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Item\n data-accent-color={color}\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-DropdownMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"rt-DropdownMenuShortcut\" />}\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 if (!React.useContext(DrillDownLevelContext)) return null;\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 if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.CheckboxItem\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\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-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"rt-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\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> = ({\n label = 'Back',\n open,\n defaultOpen,\n onOpenChange,\n children,\n}) => {\n const drillDownStore = useDrillDownStore();\n const id = React.useId();\n const subContextValue = React.useMemo(() => ({ id, label }), [id, label]);\n const isOpenInDrillDown = usePanelPosition(drillDownStore, id) !== 'closed';\n\n // Drill-down: `open` and `defaultOpen` drive the stack; the stack drives\n // `onOpenChange`. A controlled `open` is applied when it changes.\n React.useLayoutEffect(() => {\n if (!drillDownStore || open === undefined) return;\n if (open && !drillDownStore.isOpen(id)) drillDownStore.push(id, null);\n else if (!open && drillDownStore.isOpen(id)) drillDownStore.close(id);\n }, [drillDownStore, open, id]);\n\n const defaultOpenRef = React.useRef(defaultOpen);\n React.useLayoutEffect(() => {\n if (drillDownStore && defaultOpenRef.current && open === undefined) drillDownStore.push(id, null);\n // Only on mount, like an uncontrolled default.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOpenChange = useCallbackRef(onOpenChange);\n const wasOpenRef = React.useRef(isOpenInDrillDown);\n React.useEffect(() => {\n if (!drillDownStore || wasOpenRef.current === isOpenInDrillDown) return;\n wasOpenRef.current = isOpenInDrillDown;\n handleOpenChange(isOpenInDrillDown);\n }, [drillDownStore, isOpenInDrillDown, handleOpenChange]);\n\n // Radix Sub stays mounted in both behaviors so switching behavior does not\n // remount the subtree. It only renders context; in drill-down its trigger\n // and content are never rendered, so it reports no open changes of its own.\n return (\n <SubContext.Provider value={subContextValue}>\n <DropdownMenuPrimitive.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={drillDownStore ? undefined : onOpenChange}\n >\n {children}\n </DropdownMenuPrimitive.Sub>\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, onKeyDown, ...subTriggerProps } = props;\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n\n if (drillDownStore && subContext) {\n if (!isLevelVisible) return null;\n\n const handleSelect = (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore.push(subContext.id);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || subTriggerProps.disabled) return;\n if (event.key === FORWARD_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.push(subContext.id, 'keyboard');\n }\n };\n\n return (\n <DropdownMenuPrimitive.Item\n aria-haspopup=\"menu\"\n {...subTriggerProps}\n data-drill-down-trigger={subContext.id}\n data-drill-down-name={subTriggerProps.textValue}\n onSelect={handleSelect}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\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 </DropdownMenuPrimitive.Item>\n );\n }\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n {...subTriggerProps}\n onKeyDown={onKeyDown}\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\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 if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuSeparator', 'rt-DropdownMenuSeparator', className)}\n />\n );\n});\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/** The row at the top of a drill-down panel that returns to the parent level. */\nfunction DrillDownBackItem({ label, name }: { label: React.ReactNode; name: string }) {\n const drillDownStore = useDrillDownStore();\n\n const handleSelect = React.useCallback(\n (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore?.pop();\n },\n [drillDownStore],\n );\n\n // The visible label is often the submenu title, so the accessible name says\n // what the row does while still containing the visible text.\n const labelText = typeof label === 'string' ? label : name;\n const ariaLabel = labelText && labelText !== 'Back' ? `Back from ${labelText}` : undefined;\n\n return (\n <DropdownMenuPrimitive.Item\n aria-label={ariaLabel}\n textValue={labelText || 'Back'}\n onSelect={handleSelect}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuDrillDownBackItem',\n )}\n >\n <ThickChevronLeftIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuDrillDownBackIcon\" />\n <span className=\"rt-DropdownMenuDrillDownBackLabel\">{label}</span>\n </DropdownMenuPrimitive.Item>\n );\n}\n\n/** Radix positioning and layer props that have no meaning for an inline drill-down panel. */\ntype PopperOnlyProps =\n | 'loop'\n | 'onEscapeKeyDown'\n | 'onPointerDownOutside'\n | 'onFocusOutside'\n | 'onInteractOutside'\n | 'sideOffset'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'updatePositionStrategy';\n\nfunction omitPopperProps<T extends Record<string, unknown>>(props: T): Omit<T, PopperOnlyProps> {\n const {\n loop: _loop,\n onEscapeKeyDown: _onEscapeKeyDown,\n onPointerDownOutside: _onPointerDownOutside,\n onFocusOutside: _onFocusOutside,\n onInteractOutside: _onInteractOutside,\n sideOffset: _sideOffset,\n alignOffset: _alignOffset,\n avoidCollisions: _avoidCollisions,\n collisionBoundary: _collisionBoundary,\n collisionPadding: _collisionPadding,\n arrowPadding: _arrowPadding,\n sticky: _sticky,\n hideWhenDetached: _hideWhenDetached,\n updatePositionStrategy: _updatePositionStrategy,\n ...rest\n } = props;\n return rest;\n}\n\ntype DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;\ninterface DropdownMenuSubContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * When true, skips the ScrollArea wrapper so a VirtualMenu can handle its own\n * scrolling. Applies to cascade submenus; a drill-down panel scrolls with the\n * root content.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props, forwardedRef) => {\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n\n if (drillDownStore && subContext) {\n return (\n <DrillDownPanel {...props} ref={forwardedRef} store={drillDownStore} sub={subContext} />\n );\n }\n return <CascadeSubContent {...props} ref={forwardedRef} />;\n});\nDropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';\n\nconst CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(\n (props, forwardedRef) => {\n const parent = React.useContext(DropdownMenuContentContext);\n const themeContext = useThemeContext();\n\n useDeprecatedPanelBackgroundWarning(props.panelBackground);\n\n // A submenu inherits the parent surface, and its own props win.\n const size = props.size ?? parent.size;\n const variant = props.variant ?? parent.variant;\n const color = props.color ?? parent.color;\n const highContrast = props.highContrast ?? parent.highContrast;\n const material =\n props.material ?? props.panelBackground ?? parent.material ?? resolveMenuMaterial(undefined, undefined, themeContext);\n\n const {\n className,\n children,\n container,\n forceMount,\n color: _color,\n material: _material,\n panelBackground: _panelBackground,\n virtualized = false,\n ...subContentProps\n } = extractProps({ ...props, size, variant, highContrast }, dropdownMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, dropdownMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, variant, color, highContrast, material }),\n [size, variant, color, highContrast, material],\n );\n\n const body = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>{children}</DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\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={getMenuAlignOffset(scalarSize, themeContext.scaling)}\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 {virtualized ? (\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport', 'rt-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.SubContent>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nCascadeSubContent.displayName = 'DropdownMenu.CascadeSubContent';\n\ninterface DrillDownPanelProps extends DropdownMenuSubContentProps {\n store: NonNullable<ReturnType<typeof useDrillDownStore>>;\n sub: NonNullable<ReturnType<typeof useSubContext>>;\n}\n\n/**\n * A submenu rendered inline in drill-down mode. It mounts its children only\n * while it is on the navigation stack, and shows its own items only while it\n * is the top level; deeper panels inside it stay mounted.\n */\nconst DrillDownPanel = React.forwardRef<DropdownMenuSubContentElement, DrillDownPanelProps>(\n ({ store, sub, ...props }, forwardedRef) => {\n const position = usePanelPosition(store, sub.id);\n const entry = useStackEntry(store, sub.id);\n const direction = useDrillDownDirection(position === 'top' ? store : null);\n\n if (position === 'closed') return null;\n\n const {\n className,\n children,\n container: _container,\n forceMount: _forceMount,\n virtualized: _virtualized,\n size: _size,\n variant: _variant,\n color: _color,\n highContrast: _highContrast,\n material: _material,\n panelBackground: _panelBackground,\n ...panelProps\n } = omitPopperProps(props);\n\n const isTop = position === 'top';\n const name = entry?.name || (typeof sub.label === 'string' ? sub.label : '');\n\n return (\n <div\n role=\"group\"\n aria-label={name || undefined}\n {...panelProps}\n ref={forwardedRef}\n data-drill-down-panel={sub.id}\n data-drill-down-active={isTop ? true : undefined}\n data-animation-direction={isTop ? (direction ?? undefined) : undefined}\n className={classNames('rt-DropdownMenuDrillDownPanel', className)}\n >\n {isTop && (\n <>\n <DrillDownBackItem label={sub.label} name={name} />\n <DropdownMenuPrimitive.Separator className=\"rt-BaseMenuSeparator rt-DropdownMenuSeparator\" />\n </>\n )}\n <DrillDownLevelContext.Provider value={isTop}>{children}</DrillDownLevelContext.Provider>\n </div>\n );\n },\n);\nDrillDownPanel.displayName = 'DropdownMenu.DrillDownPanel';\n\ntype DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;\ninterface DropdownMenuTriggerIconProps extends IconProps {}\nconst DropdownMenuTriggerIcon = React.forwardRef<\n DropdownMenuTriggerIconElement,\n DropdownMenuTriggerIconProps\n>(({ className, ...props }, forwardedRef) => (\n <ChevronDownIcon\n {...props}\n ref={forwardedRef}\n className={classNames('rt-DropdownMenuTriggerIcon', className)}\n />\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", "useCallbackRef", "DropdownMenuOpenContext", "DropdownMenuRoot", "props", "openProp", "defaultOpen", "onOpenChange", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChangeProp", "useCallbackRef", "handleOpenChange", "next", "DropdownMenuPrimitive", "DropdownMenuTrigger", "children", "forwardedRef", "requireReactElement", "DropdownMenuContentContext", "BACK_KEYS", "FORWARD_KEYS", "isTextEntryTarget", "target", "getDirection", "element", "DropdownMenuContent", "themeContext", "useThemeContext", "useDeprecatedPanelBackgroundWarning", "material", "resolveMenuMaterial", "size", "baseMenuContentPropDefs", "variant", "highContrast", "className", "color", "container", "forceMount", "_material", "_panelBackground", "submenuBehavior", "virtualized", "onEscapeKeyDown", "onKeyDown", "contentProps", "extractProps", "resolvedColor", "behavior", "useResolvedResponsiveValue", "isDrillDown", "drillDownStore", "useCreateDrillDownStore", "handleEscapeKeyDown", "event", "handleKeyDown", "contextValue", "contentBody", "MenuProvider", "DrillDownRoot", "Theme", "classNames", "ScrollArea", "DropdownMenuLabel", "DrillDownLevelContext", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "DropdownMenuGroup", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "DropdownMenuSub", "label", "useDrillDownStore", "id", "subContextValue", "isOpenInDrillDown", "usePanelPosition", "defaultOpenRef", "wasOpenRef", "SubContext", "DropdownMenuSubTrigger", "subTriggerProps", "subContext", "useSubContext", "isLevelVisible", "handleSelect", "ThickChevronRightIcon", "DropdownMenuSeparator", "DrillDownBackItem", "name", "labelText", "ariaLabel", "ThickChevronLeftIcon", "omitPopperProps", "_loop", "_onEscapeKeyDown", "_onPointerDownOutside", "_onFocusOutside", "_onInteractOutside", "_sideOffset", "_alignOffset", "_avoidCollisions", "_collisionBoundary", "_collisionPadding", "_arrowPadding", "_sticky", "_hideWhenDetached", "_updatePositionStrategy", "rest", "DropdownMenuSubContent", "DrillDownPanel", "CascadeSubContent", "parent", "_color", "subContentProps", "baseMenuSubContentPropDefs", "scalarSize", "body", "getMenuAlignOffset", "store", "sub", "position", "entry", "useStackEntry", "direction", "useDrillDownDirection", "_container", "_forceMount", "_virtualized", "_size", "_variant", "_highContrast", "panelProps", "isTop", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as m,b as T,c as N}from"./chunk-TGN5ZJU5.js";import{b as h,c as I}from"./chunk-IX5HIHVI.js";import{b as v,c as y}from"./chunk-YUP6EICB.js";import{a as g}from"./chunk-GSTOGDAJ.js";import{a as f}from"./chunk-6FLLFCBU.js";import{a as A}from"./chunk-3XT5P2HO.js";var M={};A(M,{Content:()=>w,Group:()=>G,Item:()=>E,Label:()=>L,Root:()=>x,Separator:()=>D,Trigger:()=>b});import*as e from"react";import c from"classnames";import{Select as a,ScrollArea as S}from"radix-ui";var u=e.createContext({}),x=t=>{let{children:o,size:r=m.size.default,...l}=t;return e.createElement(a.Root,{...l},e.createElement(u.Provider,{value:e.useMemo(()=>({size:r}),[r])},o))};x.displayName="Select.Root";var b=e.forwardRef((t,o)=>{let r=e.useContext(u),{children:l,className:i,color:n,radius:P,placeholder:d,error:p,loading:s,disabled:R,readOnly:C,...V}=f({size:r?.size,...t},{size:m.size},T,g),{panelBackground:z}=t,k=e.useMemo(()=>({"aria-invalid":p||void 0,"aria-busy":s||void 0,"aria-disabled":R||void 0,"aria-readonly":C||void 0}),[p,s,R,C]);return e.createElement(a.Trigger,{asChild:!0},e.createElement("button",{"data-accent-color":n,"data-radius":P,"data-panel-background":z,"data-error":p,"data-loading":s,...V,...k,ref:o,className:c("rt-reset","rt-SelectTrigger",i)},e.createElement("span",{className:"rt-SelectTriggerInner"},e.createElement(a.Value,{placeholder:d},l)),e.createElement(a.Icon,{asChild:!0},s?e.createElement("div",{className:"rt-SelectIcon rt-SelectLoadingIcon","aria-hidden":"true"},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e.createElement("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"32",strokeDashoffset:"32",className:"rt-SelectLoadingIconCircle"}))):e.createElement(I,{className:"rt-SelectIcon"}))))});b.displayName="Select.Trigger";var w=e.forwardRef((t,o)=>{let r=e.useContext(u),{className:l,children:i,color:n,container:P,...d}=f({size:r?.size,...t},{size:m.size},N),p=v(),s=n||p.accentColor;return e.createElement(a.Portal,{container:P},e.createElement(y,{asChild:!0},e.createElement(a.Content,{"data-accent-color":s,sideOffset:4,...d,asChild:!1,ref:o,className:c("rt-PopperContent","rt-BaseMenuContent","rt-SelectContent",l)},e.createElement(S.Root,{type:"auto",className:"rt-ScrollAreaRoot"},e.createElement(a.Viewport,{asChild:!0,className:c("rt-BaseMenuViewport","rt-SelectViewport")},e.createElement(S.Viewport,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),e.createElement(S.Scrollbar,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},e.createElement(S.Thumb,{className:"rt-ScrollAreaThumb"}))))))});w.displayName="Select.Content";var E=e.forwardRef((t,o)=>{let{className:r,children:l,...i}=t,n=typeof l!="string";return e.createElement(a.Item,{...i,asChild:!1,ref:o,className:c("rt-reset","rt-BaseMenuItem","rt-SelectItem",{"rt-SelectItemRich":n},r)},e.createElement(a.ItemIndicator,{className:"rt-SelectItemIndicator"},e.createElement(h,{className:"rt-SelectItemIndicatorIcon"})),e.createElement(a.ItemText,null,l))});E.displayName="Select.Item";var G=e.forwardRef(({className:t,...o},r)=>e.createElement(a.Group,{...o,asChild:!1,ref:r,className:c("rt-SelectGroup",t)}));G.displayName="Select.Group";var L=e.forwardRef(({className:t,...o},r)=>e.createElement(a.Label,{...o,asChild:!1,ref:r,className:c("rt-BaseMenuLabel","rt-SelectLabel",t)}));L.displayName="Select.Label";var D=e.forwardRef(({className:t,...o},r)=>e.createElement(a.Separator,{...o,asChild:!1,ref:r,className:c("rt-BaseMenuSeparator","rt-SelectSeparator",t)}));D.displayName="Select.Separator";export{x as a,b,w as c,E as d,G as e,L as f,D as g,M as h};
2
- //# sourceMappingURL=chunk-S56YSRHP.js.map
1
+ import{a as m,b as T,c as N}from"./chunk-TGN5ZJU5.js";import{b as h,c as I}from"./chunk-IX5HIHVI.js";import{b as v,c as y}from"./chunk-DXL6V2A5.js";import{a as g}from"./chunk-GSTOGDAJ.js";import{a as f}from"./chunk-6FLLFCBU.js";import{a as A}from"./chunk-OS3FCYZY.js";var M={};A(M,{Content:()=>w,Group:()=>G,Item:()=>E,Label:()=>L,Root:()=>x,Separator:()=>D,Trigger:()=>b});import*as e from"react";import c from"classnames";import{Select as a,ScrollArea as S}from"radix-ui";var u=e.createContext({}),x=t=>{let{children:o,size:r=m.size.default,...l}=t;return e.createElement(a.Root,{...l},e.createElement(u.Provider,{value:e.useMemo(()=>({size:r}),[r])},o))};x.displayName="Select.Root";var b=e.forwardRef((t,o)=>{let r=e.useContext(u),{children:l,className:i,color:n,radius:P,placeholder:d,error:p,loading:s,disabled:R,readOnly:C,...V}=f({size:r?.size,...t},{size:m.size},T,g),{panelBackground:z}=t,k=e.useMemo(()=>({"aria-invalid":p||void 0,"aria-busy":s||void 0,"aria-disabled":R||void 0,"aria-readonly":C||void 0}),[p,s,R,C]);return e.createElement(a.Trigger,{asChild:!0},e.createElement("button",{"data-accent-color":n,"data-radius":P,"data-panel-background":z,"data-error":p,"data-loading":s,...V,...k,ref:o,className:c("rt-reset","rt-SelectTrigger",i)},e.createElement("span",{className:"rt-SelectTriggerInner"},e.createElement(a.Value,{placeholder:d},l)),e.createElement(a.Icon,{asChild:!0},s?e.createElement("div",{className:"rt-SelectIcon rt-SelectLoadingIcon","aria-hidden":"true"},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e.createElement("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"32",strokeDashoffset:"32",className:"rt-SelectLoadingIconCircle"}))):e.createElement(I,{className:"rt-SelectIcon"}))))});b.displayName="Select.Trigger";var w=e.forwardRef((t,o)=>{let r=e.useContext(u),{className:l,children:i,color:n,container:P,...d}=f({size:r?.size,...t},{size:m.size},N),p=v(),s=n||p.accentColor;return e.createElement(a.Portal,{container:P},e.createElement(y,{asChild:!0},e.createElement(a.Content,{"data-accent-color":s,sideOffset:4,...d,asChild:!1,ref:o,className:c("rt-PopperContent","rt-BaseMenuContent","rt-SelectContent",l)},e.createElement(S.Root,{type:"auto",className:"rt-ScrollAreaRoot"},e.createElement(a.Viewport,{asChild:!0,className:c("rt-BaseMenuViewport","rt-SelectViewport")},e.createElement(S.Viewport,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),e.createElement(S.Scrollbar,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},e.createElement(S.Thumb,{className:"rt-ScrollAreaThumb"}))))))});w.displayName="Select.Content";var E=e.forwardRef((t,o)=>{let{className:r,children:l,...i}=t,n=typeof l!="string";return e.createElement(a.Item,{...i,asChild:!1,ref:o,className:c("rt-reset","rt-BaseMenuItem","rt-SelectItem",{"rt-SelectItemRich":n},r)},e.createElement(a.ItemIndicator,{className:"rt-SelectItemIndicator"},e.createElement(h,{className:"rt-SelectItemIndicatorIcon"})),e.createElement(a.ItemText,null,l))});E.displayName="Select.Item";var G=e.forwardRef(({className:t,...o},r)=>e.createElement(a.Group,{...o,asChild:!1,ref:r,className:c("rt-SelectGroup",t)}));G.displayName="Select.Group";var L=e.forwardRef(({className:t,...o},r)=>e.createElement(a.Label,{...o,asChild:!1,ref:r,className:c("rt-BaseMenuLabel","rt-SelectLabel",t)}));L.displayName="Select.Label";var D=e.forwardRef(({className:t,...o},r)=>e.createElement(a.Separator,{...o,asChild:!1,ref:r,className:c("rt-BaseMenuSeparator","rt-SelectSeparator",t)}));D.displayName="Select.Separator";export{x as a,b,w as c,E as d,G as e,L as f,D as g,M as h};
2
+ //# sourceMappingURL=chunk-56TS6OKQ.js.map
@@ -1,2 +1,2 @@
1
- import{a as Se}from"./chunk-W7N7V5YD.js";import{a as Ee}from"./chunk-CVWCKOHO.js";import{a as Me}from"./chunk-M24UXMOQ.js";import{a as cn}from"./chunk-2LYX5S7H.js";import{a as Le,c as ke}from"./chunk-5LXFJMFB.js";import{a as Re,b as je,c as Ue,d as We,e as $e,f as qe,g as Ge,h as Oe,i as Ke,j as Xe,k as Ye,l as Je,m as Qe,o as Ze,p as en,q as nn,r as tn,s as on,u as an,v as Te}from"./chunk-SNHEJU2S.js";import{a as Ve,c as He,d as Fe}from"./chunk-MK2R6DAU.js";import{a as ln,b as be}from"./chunk-TLWTUKKL.js";import{a as sn,b as dn,c as he}from"./chunk-CECQNGUL.js";import{a as rn}from"./chunk-NNO7M466.js";import{a as Ae}from"./chunk-AGAQC4HH.js";import{a as we}from"./chunk-4XJY6FIK.js";import{a as Ie}from"./chunk-KFA53SVQ.js";import{a as On}from"./chunk-3XT5P2HO.js";var Nn={};On(Nn,{Bottom:()=>Se,Content:()=>xe,Header:()=>ze,Inspector:()=>Ee,Left:()=>Ce,Panel:()=>ie,Rail:()=>de,Root:()=>fn,Sidebar:()=>Me,Trigger:()=>Rn,useResponsivePresentation:()=>Le,useShell:()=>Re,useSidebarMode:()=>Oe});import*as e from"react";import se from"classnames";var Tn=Symbol("rtShellSlot");function ce(n,a){return n[Tn]=a,n}var j=(n,a)=>e.isValidElement(n)&&(n.type===a||n.type?.displayName===a.displayName);ce(Me,"Shell.Sidebar");ce(Ee,"Shell.Inspector");ce(Se,"Shell.Bottom");function Ln(n,a){switch(a.type){case"SET_LEFT_MODE":return a.mode==="collapsed"?n.leftMode==="collapsed"&&n.panelMode==="collapsed"?n:{...n,leftMode:"collapsed",panelMode:"collapsed"}:n.leftMode===a.mode?n:{...n,leftMode:a.mode};case"SET_PANEL_MODE":return a.mode==="expanded"&&n.leftMode!=="expanded"?{...n,leftMode:"expanded",panelMode:"expanded"}:n.panelMode===a.mode?n:{...n,panelMode:a.mode};case"SET_SIDEBAR_MODE":return n.sidebarMode===a.mode?n:{...n,sidebarMode:a.mode};case"SET_INSPECTOR_MODE":return n.inspectorMode===a.mode?n:{...n,inspectorMode:a.mode};case"SET_BOTTOM_MODE":return n.bottomMode===a.mode?n:{...n,bottomMode:a.mode};case"TOGGLE_PANE":switch(a.target){case"left":case"rail":return{...n,leftMode:n.leftMode==="expanded"?"collapsed":"expanded",panelMode:n.leftMode==="expanded"?"collapsed":n.panelMode};case"panel":return n.leftMode==="collapsed"?{...n,leftMode:"expanded",panelMode:"expanded"}:{...n,panelMode:n.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{let p=n.sidebarMode==="collapsed"?"expanded":n.sidebarMode==="expanded"?"collapsed":"expanded";return{...n,sidebarMode:p}}case"inspector":return{...n,inspectorMode:n.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...n,bottomMode:n.bottomMode==="expanded"?"collapsed":"expanded"};default:return n}case"EXPAND_PANE":switch(a.target){case"left":case"rail":return n.leftMode==="expanded"?n:{...n,leftMode:"expanded"};case"panel":return n.leftMode==="expanded"&&n.panelMode==="expanded"?n:{...n,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return n.sidebarMode==="expanded"?n:{...n,sidebarMode:"expanded"};case"inspector":return n.inspectorMode==="expanded"?n:{...n,inspectorMode:"expanded"};case"bottom":return n.bottomMode==="expanded"?n:{...n,bottomMode:"expanded"};default:return n}case"COLLAPSE_PANE":switch(a.target){case"left":case"rail":return n.leftMode==="collapsed"&&n.panelMode==="collapsed"?n:{...n,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return n.panelMode==="collapsed"?n:{...n,panelMode:"collapsed"};case"sidebar":return n.sidebarMode==="collapsed"?n:{...n,sidebarMode:"collapsed"};case"inspector":return n.inspectorMode==="collapsed"?n:{...n,inspectorMode:"collapsed"};case"bottom":return n.bottomMode==="collapsed"?n:{...n,bottomMode:"collapsed"};default:return n}}return n}function pn(n,a){if(a===void 0)return n.initial??Object.values(n)[0];if(n[a]!==void 0)return n[a];let y=[...Object.keys(Ie)].reverse().concat("initial");for(let u=y.indexOf(a)+1;u<y.length;u++)if(n[y[u]]!==void 0)return n[y[u]]}function un(n,a){let p=e.Children.toArray(n),y=p.some(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Panel"&&!!s.props?.defaultOpen),u=p.find(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Rail"),f=u?u.props?.defaultOpen:void 0,T=u?f===void 0?!0:typeof f=="boolean"?f:typeof f=="object"?f.initial??Object.values(f)[0]??!0:!0:!1,L=p.some(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Inspector"&&!!s.props?.defaultOpen),i=p.some(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Inspector"&&typeof s.props?.open<"u"&&!!s.props?.open),R=p.some(s=>{if(!e.isValidElement(s)||s.type?.displayName!=="Shell.Panel")return!1;let d=s.props?.open;return typeof d>"u"?!1:typeof d=="boolean"?d:typeof d=="object"&&d!==null?d.initial??Object.values(d)[0]??!1:!1}),P=()=>{let s=p.find(h=>e.isValidElement(h)&&h.type?.displayName==="Shell.Sidebar");if(!s)return"expanded";let d=s.props;if(typeof d?.state<"u"){if(typeof d.state=="string")return d.state;if(typeof d.state=="object")return pn(d.state,a)??"expanded"}if(typeof d?.defaultState<"u"){if(typeof d.defaultState=="string")return d.defaultState;if(typeof d.defaultState=="object")return pn(d.defaultState,a)??"expanded"}return"expanded"},N=()=>{let s=p.find(h=>e.isValidElement(h)&&h.type?.displayName==="Shell.Bottom");if(!s)return"collapsed";let d=s.props;if(typeof d?.open<"u"){if(typeof d.open=="boolean")return d.open?"expanded":"collapsed";if(typeof d.open=="object")return d.open.initial??Object.values(d.open)[0]?"expanded":"collapsed"}return typeof d?.defaultOpen<"u"&&d.defaultOpen?"expanded":"collapsed"};return{hasPanelDefaultOpen:y,leftMode:y||R||T?"expanded":"collapsed",panelMode:y||R?"expanded":"collapsed",sidebarMode:P(),inspectorMode:L||i?"expanded":"collapsed",bottomMode:N()}}var fn=e.forwardRef(({className:n,children:a,height:p="full",...y},u)=>{let{breakpoint:f,ready:T}=we(),L=e.useRef(!1),[i,R]=e.useReducer(Ln,a,t=>{let{hasPanelDefaultOpen:l,...x}=un(t);return L.current=l,x}),P=e.useCallback(t=>R({type:"SET_LEFT_MODE",mode:t}),[]),N=e.useCallback(t=>R({type:"SET_PANEL_MODE",mode:t}),[]),s=e.useCallback(t=>R({type:"SET_SIDEBAR_MODE",mode:t}),[]),d=e.useCallback(t=>R({type:"SET_INSPECTOR_MODE",mode:t}),[]),h=e.useCallback(t=>R({type:"SET_BOTTOM_MODE",mode:t}),[]),[M,D]=e.useState(!1),[r,_]=e.useState(!1),V=e.useRef(t=>t==="collapsed"?"thin":t==="thin"?"expanded":"collapsed"),G=e.useCallback(t=>{V.current=t},[]);e.useLayoutEffect(()=>{r&&M&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[r,M]);let[H,Y]=e.useState(void 0),J=e.useCallback(t=>Y(t),[]),U=e.useRef(64),q=e.useRef(288),Q=e.useCallback(t=>{U.current=t},[]),Z=e.useCallback(t=>{q.current=t},[]),W=e.useMemo(()=>e.Children.toArray(a).some(l=>j(l,de)||j(l,ie)),[a]),k=e.useMemo(()=>e.Children.toArray(a).some(l=>j(l,Me)),[a]),B=e.useRef({left:W,sidebar:k});if(B.current.left!==W||B.current.sidebar!==k){let t=W&&!B.current.left,l=k&&!B.current.sidebar;if(B.current={left:W,sidebar:k},t||l){let{hasPanelDefaultOpen:x,...w}=un(a,f);t&&(L.current=x,w.leftMode!==i.leftMode&&R({type:"SET_LEFT_MODE",mode:w.leftMode}),w.panelMode!==i.panelMode&&R({type:"SET_PANEL_MODE",mode:w.panelMode})),l&&w.sidebarMode!==i.sidebarMode&&R({type:"SET_SIDEBAR_MODE",mode:w.sidebarMode})}}let c=e.useRef(i.sidebarMode);c.current=i.sidebarMode;let K=e.useCallback(t=>{if(t==="sidebar"){let l=V.current(c.current);s(l);return}R({type:"TOGGLE_PANE",target:t})},[s]),X=e.useCallback(t=>{if(t==="sidebar")return s("expanded");R({type:"EXPAND_PANE",target:t})},[s]),$=e.useCallback(t=>{if(t==="sidebar")return s("collapsed");R({type:"COLLAPSE_PANE",target:t})},[s]),le=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:P,panelMode:i.panelMode,setPanelMode:N,sidebarMode:i.sidebarMode,setSidebarMode:s,inspectorMode:i.inspectorMode,setInspectorMode:d,bottomMode:i.bottomMode,setBottomMode:h,hasLeft:M,setHasLeft:D,hasSidebar:r,setHasSidebar:_,currentBreakpoint:f,currentBreakpointReady:T,leftResolvedPresentation:H,togglePane:K,expandPane:X,collapsePane:$,setSidebarToggleComputer:G,onLeftPres:J,onRailDefaults:Q,onPanelDefaults:Z}),[i.leftMode,P,i.panelMode,N,i.sidebarMode,s,i.inspectorMode,d,i.bottomMode,h,M,r,f,T,H,K,X,$,G,J,Q,Z]),{headerEls:me,railEls:m,panelEls:S,sidebarEls:A,contentEls:I,inspectorEls:C,bottomEls:oe}=e.useMemo(()=>{let t={headerEls:[],railEls:[],panelEls:[],sidebarEls:[],contentEls:[],inspectorEls:[],bottomEls:[]};for(let l of e.Children.toArray(a))j(l,ze)?t.headerEls.push(l):j(l,de)?t.railEls.push(l):j(l,ie)?t.panelEls.push(l):j(l,Me)?t.sidebarEls.push(l):j(l,xe)?t.contentEls.push(l):j(l,Ee)?t.inspectorEls.push(l):j(l,Se)&&t.bottomEls.push(l);return t},[a]),z=m[0]?.props?.open,v=e.useMemo(()=>{if(typeof z>"u")return;if(typeof z=="boolean")return z;if(typeof z!="object"||z===null)return!!z;let t=z;if(t[f]!==void 0)return t[f];let l=["xl","lg","md","sm","xs","initial"],x=l.indexOf(f);for(let w=x+1;w<l.length;w++){let fe=l[w];if(t[fe]!==void 0)return t[fe]}},[z,f]),F=S[0]?.props?.open,E=e.useMemo(()=>{if(typeof F>"u")return;if(typeof F=="boolean")return F;if(typeof F!="object"||F===null)return!!F;let t=F;if(t[f]!==void 0)return t[f];let l=["xl","lg","md","sm","xs","initial"],x=l.indexOf(f);for(let w=x+1;w<l.length;w++){let fe=l[w];if(t[fe]!==void 0)return t[fe]}},[F,f]),pe=e.useRef(0),ee=e.useRef(0),ae=e.useRef(0),ue=e.useRef(v),o=e.useRef(E);e.useLayoutEffect(()=>{if(v===void 0){ue.current=void 0;return}ue.current!==v&&(ue.current=v,ee.current=++pe.current)},[v]),e.useLayoutEffect(()=>{if(E===void 0){o.current=void 0;return}o.current!==E&&(o.current=E,ae.current=++pe.current)},[E]),e.useLayoutEffect(()=>{typeof v>"u"||P(v?"expanded":"collapsed")},[v,P]);let b=m[0]?.props?.onOpenChange,g=S[0]?.props?.onOpenChange,O=e.useRef(null);e.useLayoutEffect(()=>{if(v!==!1||E!==!0){O.current=null;return}let t=ae.current>ee.current,l=t?"open-rail":"close-panel",x=O.current;x&&x.railSeq===ee.current&&x.panelSeq===ae.current&&x.action===l||(O.current={railSeq:ee.current,panelSeq:ae.current,action:l},t?b?.(!0,{reason:"panel"}):g?.(!1,{reason:"left"}))},[v,E,b,g]);let ne=v,Ne=e.useMemo(()=>p==="full"?{height:"100vh"}:p==="auto"?{height:"auto"}:typeof p=="string"?{height:p}:typeof p=="number"?{height:`${p}px`}:{},[p]),[re,te]=e.useState(null),Pe=e.useCallback(t=>te(t),[]),ye=e.useCallback(()=>te(null),[]),Mn=e.useMemo(()=>({currentBreakpoint:f,currentBreakpointReady:T,leftResolvedPresentation:H}),[f,T,H]),mn=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:P}),[i.leftMode,P]),Pn=e.useMemo(()=>({panelMode:i.panelMode,setPanelMode:N}),[i.panelMode,N]),yn=e.useMemo(()=>({sidebarMode:i.sidebarMode,setSidebarMode:s}),[i.sidebarMode,s]),bn=e.useMemo(()=>({inspectorMode:i.inspectorMode,setInspectorMode:d}),[i.inspectorMode,d]),hn=e.useMemo(()=>({bottomMode:i.bottomMode,setBottomMode:h}),[i.bottomMode,h]),Sn=e.useMemo(()=>({hasLeft:M,setHasLeft:D,hasSidebar:r,setHasSidebar:_}),[M,D,r,_]),[ve,De]=e.useState(new Set),_e=e.useCallback(t=>{De(l=>{if(l.has(t))return l;let x=new Set(l);return x.add(t),x})},[]),Be=e.useCallback(t=>{De(l=>{if(!l.has(t))return l;let x=new Set(l);return x.delete(t),x})},[]),ge=ve.size>0,En=e.useMemo(()=>({insetPanes:ve,registerInset:_e,unregisterInset:Be,hasAnyInset:ge}),[ve,_e,Be,ge]),Cn=e.useMemo(()=>({peekTarget:re,setPeekTarget:te,peekPane:Pe,clearPeek:ye}),[re,te,Pe,ye]),xn=e.useMemo(()=>({togglePane:K,expandPane:X,collapsePane:$,setSidebarToggleComputer:G}),[K,X,$,G]),vn=e.useMemo(()=>({...le,leftControlledOpen:ne,peekTarget:re,setPeekTarget:te,peekPane:Pe,clearPeek:ye}),[le,ne,re,te,Pe,ye]),gn=e.useMemo(()=>{if(!W||k)return null;let t=m[0],l=S[0],x=!!t?.props?.inset||!!l?.props?.inset,w=t?{onOpenChange:t.props?.onOpenChange,open:t.props?.open,defaultOpen:t.props?.defaultOpen,presentation:t.props?.presentation,collapsible:t.props?.collapsible,onExpand:t.props?.onExpand,onCollapse:t.props?.onCollapse,inset:x}:{defaultOpen:L.current?!0:void 0,inset:x};return e.createElement(Ce,{...w},m,S)},[W,k,m,S]);return e.createElement("div",{...y,ref:u,className:se("rt-ShellRoot",n),style:{...Ne,...y.style}},e.createElement(je,{value:vn},e.createElement(Qe.Provider,{value:Mn},e.createElement(Ue.Provider,{value:mn},e.createElement($e.Provider,{value:Pn},e.createElement(Ge.Provider,{value:yn},e.createElement(Ke.Provider,{value:bn},e.createElement(Ye.Provider,{value:hn},e.createElement(on.Provider,{value:Sn},e.createElement(Ze.Provider,{value:Cn},e.createElement(nn.Provider,{value:xn},e.createElement(an.Provider,{value:En},me,e.createElement("div",{className:"rt-ShellBody","data-peek-target":re??void 0,"data-has-inset":ge||void 0,style:re==="rail"||re==="panel"?{"--peek-rail-width":`${U.current}px`}:void 0},gn??A,I,C),oe))))))))))))});fn.displayName="Shell.Root";var ze=e.forwardRef(({className:n,height:a=64,style:p,...y},u)=>e.createElement("header",{...y,ref:u,className:se("rt-ShellHeader",n),style:{...p,"--shell-header-height":`${a}px`}}));ze.displayName="Shell.Header";var kn=["open","defaultOpen","onOpenChange","mode","defaultMode","onModeChange"],Ce=e.forwardRef((n,a)=>{let{className:p,presentation:y={initial:"fixed",sm:"fixed"},collapsible:u=!0,onExpand:f,onCollapse:T,children:L,style:i,inset:R,...P}=n,{registerInset:N,unregisterInset:s}=Te();e.useEffect(()=>{if(R)return N("left"),()=>s("left")},[R,N,s]);let d=P.open,h=P.defaultOpen,M=P.onOpenChange,D=sn(P,kn),r=Re(),{setHasLeft:_}=r,V=Le(y),G=V==="overlay",H=V==="stacked",Y=e.useRef(null);e.useEffect(()=>{r.onLeftPres?.(V)},[r,V]);let J=e.useCallback(m=>{Y.current=m,typeof a=="function"?a(m):a&&(a.current=m)},[a]);e.useEffect(()=>(_(!0),()=>_(!1)),[_]);let U=e.useRef(null),q=e.useRef(void 0),Q=e.useMemo(()=>{if(!(typeof d>"u"))return d?"expanded":"collapsed"},[d]),Z=e.useMemo(()=>he(h),[h]),W=e.useRef(M),k=e.useRef(d);e.useLayoutEffect(()=>{W.current=M,k.current=d});let{resolvedControlled:B}=ke({controlledValue:Q,defaultValue:Z,currentValue:r.leftMode,setValue:r.setLeftMode,breakpointReady:r.currentBreakpointReady,onInit:m=>W.current?.(m==="expanded",{reason:"init"})}),c=e.useRef(null);e.useEffect(()=>{let m=U.current,S=c.current,I=q.current!==B;if(m!==null&&m!==r.leftMode){let C=typeof k.current<"u",oe=B===void 0?void 0:B==="expanded",z=r.leftMode==="expanded";if(!C||!I&&z!==oe){let v="toggle";S!==null&&S!==r.panelMode&&m==="collapsed"&&r.leftMode==="expanded"&&r.panelMode==="expanded"&&(v="panel"),W.current?.(z,{reason:v})}}U.current=r.leftMode,c.current=r.panelMode,q.current=B},[r.leftMode,r.panelMode,B]);let K=e.useRef(f),X=e.useRef(T);e.useLayoutEffect(()=>{K.current=f,X.current=T});let $=e.useRef(null),le=e.useRef(!1);e.useEffect(()=>{let m=r.leftMode;if(!r.currentBreakpointReady){$.current=m;return}if(!le.current){le.current=!0,$.current=m;return}let S=$.current;S!==null&&S!==m&&(m==="expanded"?K.current?.():m==="collapsed"&&X.current?.(),$.current=m)},[r.leftMode,r.currentBreakpointReady]);let me=r.leftMode==="expanded";if(G){let m=r.leftMode==="expanded",S=e.Children.toArray(L),A=S.find(E=>j(E,de)),I=S.find(E=>j(E,ie)),C=typeof A?.props?.expandedSize=="number"?A.props.expandedSize:64,oe=typeof I?.props?.expandedSize=="number"?I.props.expandedSize:288,z=!!A,v=!!I,F=(z?C:0)+(r.panelMode==="expanded"&&v?oe:0);return e.createElement(Ve,{open:m,onOpenChange:E=>r.setLeftMode(E?"expanded":"collapsed")},e.createElement(He,{side:"start",style:{padding:0},"aria-label":"Navigation","aria-describedby":void 0,width:{initial:`${F}px`}},e.createElement(Ae,null,e.createElement(Fe,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},L)))}if(H){let m=r.leftMode==="expanded",S=e.Children.toArray(L),A=S.find(E=>j(E,de)),I=S.find(E=>j(E,ie)),C=typeof A?.props?.expandedSize=="number"?A.props.expandedSize:64,oe=typeof I?.props?.expandedSize=="number"?I.props.expandedSize:288,z=!!A,F=!!I&&(r.panelMode==="expanded"||r.peekTarget==="panel");return e.createElement("div",{...D,ref:J,className:se("rt-ShellLeft",p),"data-mode":r.leftMode,"data-peek":r.peekTarget==="left"||r.peekTarget==="rail"||r.peekTarget==="panel"||void 0,"data-presentation":V,"data-inset":R||void 0,style:{...i},"data-open":m||void 0},L)}return e.createElement("div",{...D,ref:J,className:se("rt-ShellLeft",p),"data-mode":r.leftMode,"data-peek":r.peekTarget==="left"||r.peekTarget==="rail"||r.peekTarget==="panel"||void 0,"data-presentation":V,"data-inset":R||void 0,style:{...i}},L)});Ce.displayName="Shell.Left";ce(Ce,"Shell.Left");var de=e.forwardRef((n,a)=>{let{className:p,presentation:y,expandedSize:u=64,collapsible:f,onExpand:T,onCollapse:L,children:i,style:R,open:P,defaultOpen:N,onOpenChange:s,inset:d,...h}=n,M=Re(),D=e.useRef(null);e.useEffect(()=>{let _=typeof P<"u";if(D.current===null){D.current=_;return}D.current!==_&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),D.current=_)},[P]),e.useEffect(()=>{M.onRailDefaults?.(u)},[M,u]);let r=M.leftMode==="expanded";return e.createElement("div",{...h,ref:a,className:se("rt-ShellRail",p),"data-mode":M.leftMode,"data-peek":M.currentBreakpointReady&&M.leftResolvedPresentation!=="overlay"&&M.peekTarget==="rail"||void 0,style:{...R,"--rail-size":`${u}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":M.currentBreakpointReady&&(r||M.leftResolvedPresentation!=="overlay"&&M.peekTarget==="rail")||void 0},i))});de.displayName="Shell.Rail";ce(de,"Shell.Rail");var zn=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style"],ie=ce(e.forwardRef((n,a)=>{let{className:p,defaultOpen:y,open:u,onOpenChange:f,size:T,defaultSize:L,expandedSize:i=288,minSize:R,maxSize:P,resizable:N,collapsible:s=!0,onExpand:d,onCollapse:h,onResize:M,onResizeStart:D,onResizeEnd:r,snapPoints:_,snapTolerance:V,collapseThreshold:G,paneId:H,persistence:Y,children:J,style:U,onSizeChange:q,sizeUpdate:Q,sizeUpdateMs:Z=50}=n,W=dn(n,zn),k=e.useRef(null);e.useLayoutEffect(()=>()=>{k.current&&(clearTimeout(k.current),k.current=null)},[q,Q,Z]);let B=e.useMemo(()=>{if(!q)return()=>{};if(Q==="debounce")return(b,g)=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{q?.(b,g),k.current=null},Z)};if(Q==="throttle"){let o=0;return(b,g)=>{let O=Date.now();O-o>=Z&&(o=O,q?.(b,g))}}return(o,b)=>q?.(o,b)},[q,Q,Z]),c=Re(),K=e.useRef(null),X=e.useRef(null),$=e.useRef(void 0),le=e.useMemo(()=>he(u),[u]),me=e.useMemo(()=>he(y),[y]),m=typeof u=="object"&&u!==null,S=e.useRef(f);e.useLayoutEffect(()=>{S.current=f});let{resolvedControlled:A}=ke({controlledValue:le,defaultValue:me,currentValue:c.panelMode,setValue:o=>{o==="expanded"&&c.leftMode!=="expanded"&&c.leftControlledOpen!==!1&&c.setLeftMode("expanded"),c.setPanelMode(o)},breakpointReady:c.currentBreakpointReady,controlledIsResponsive:m,onResponsiveChange:o=>S.current?.(o==="expanded",{reason:"responsive"}),onInit:o=>{typeof u>"u"&&S.current?.(o==="expanded",{reason:"init"})}}),I=e.useRef(null);e.useEffect(()=>{let o=typeof u<"u";if(I.current===null){I.current=o;return}I.current!==o&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),I.current=o)},[u]),e.useEffect(()=>{c.onPanelDefaults?.(i)},[c,i]);let C=e.useRef(null),oe=e.useCallback(o=>{C.current=o,typeof a=="function"?a(o):a&&(a.current=o)},[a]),z=e.Children.toArray(J),v=z.filter(o=>e.isValidElement(o)&&o.type===be),F=z.filter(o=>!(e.isValidElement(o)&&o.type===be)),E=c.leftResolvedPresentation==="overlay",pe=e.useCallback(o=>cn(o,"horizontal"),[]),ee=e.useMemo(()=>{if(!H||Y)return Y;let o=`kookie-ui:shell:panel:${H}`;return{load:()=>{if(!(typeof window>"u"))try{let g=window.localStorage.getItem(o);return g?Number(g):void 0}catch{return}},save:g=>{if(!(typeof window>"u"))try{window.localStorage.setItem(o,String(g))}catch{}}}},[H,Y]);e.useEffect(()=>{let o=!0;return(async()=>{if(!N||!ee?.load||E)return;let b=await ee.load();o&&typeof b=="number"&&C.current&&(C.current.style.setProperty("--panel-size",`${b}px`),M?.(b))})(),()=>{o=!1}},[N,ee,M,E]),e.useEffect(()=>{C.current&&E&&C.current.style.setProperty("--panel-size",`${i}px`)},[E,i]),e.useEffect(()=>{if(C.current&&typeof T>"u"&&typeof L<"u"){let o=pe(L);if(typeof o=="number"&&Number.isFinite(o)){let O=Math.min((typeof P=="number"?P:void 0)??o,Math.max((typeof R=="number"?R:void 0)??o,o));C.current.style.setProperty("--panel-size",`${O}px`),B(O,{reason:"init"})}}},[]),e.useEffect(()=>{if(!C.current||typeof T>"u")return;let o=pe(T);if(typeof o=="number"&&Number.isFinite(o)){let O=Math.min((typeof P=="number"?P:void 0)??o,Math.max((typeof R=="number"?R:void 0)??o,o));C.current.style.setProperty("--panel-size",`${O}px`),B(O,{reason:"controlled"})}},[T,R,P,pe,B]),e.useEffect(()=>{if(C.current&&c.leftResolvedPresentation!=="overlay"&&c.leftMode==="expanded"&&c.panelMode==="expanded"){let o=C.current.parentElement||null;try{o?.style.removeProperty("width")}catch{}}},[c.leftResolvedPresentation,c.leftMode,c.panelMode]);let ae=c.leftMode==="expanded"&&c.panelMode==="expanded";e.useEffect(()=>{let o=K.current,b=X.current,O=$.current!==A;if(o!==null&&o!==c.panelMode){let ne=c.panelMode==="expanded";if(!(typeof u<"u")||!O&&ne!==(A===void 0?void 0:A==="expanded")){let te="toggle";b!==c.leftMode&&c.leftMode==="collapsed"&&!ne&&(te="left"),S.current?.(ne,{reason:te})}}K.current=c.panelMode,X.current=c.leftMode,$.current=A},[c.panelMode,c.leftMode,u,A]);let ue=N&&c.leftResolvedPresentation!=="overlay"&&ae?e.createElement(rn.Provider,{value:{containerRef:C,cssVarName:"--panel-size",minSize:typeof R=="number"?R:100,maxSize:typeof P=="number"?P:800,defaultSize:i,orientation:"vertical",edge:"end",computeNext:(o,b,g)=>{let O=getComputedStyle(C.current).direction==="rtl",ne=o-b;return g+(O?-ne:ne)},onResize:M,onResizeStart:o=>{let g=C.current?.parentElement;try{g?.style.removeProperty("width")}catch{}D?.(o)},onResizeEnd:o=>{r?.(o),B(o,{reason:"resize"}),ee?.save?.(o)},target:"panel",collapsible:!!s,snapPoints:_,snapTolerance:V??8,collapseThreshold:G,requestCollapse:()=>c.setPanelMode("collapsed"),requestToggle:()=>c.togglePane("panel")}},v.length>0?v.map((o,b)=>e.cloneElement(o,{key:o.key??b})):e.createElement(ln,null)):null;return e.createElement("div",{...W,ref:oe,className:se("rt-ShellPanel",p),"data-mode":c.panelMode,"data-visible":c.currentBreakpointReady&&(ae||c.leftResolvedPresentation!=="overlay"&&c.peekTarget==="panel")||void 0,"data-peek":c.currentBreakpointReady&&c.leftResolvedPresentation!=="overlay"&&c.peekTarget==="panel"||void 0,style:{...U,"--panel-size":`${i}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":ae||void 0},F),ue)}),"Shell.Panel");ie.displayName="Shell.Panel";ie.Handle=be;var xe=e.forwardRef(({className:n,inset:a,...p},y)=>{let{registerInset:u,unregisterInset:f}=Te();return e.useEffect(()=>{if(a)return u("content"),()=>f("content")},[a,u,f]),e.createElement("main",{...p,ref:y,className:se("rt-ShellContent",n),"data-inset":a||void 0})});xe.displayName="Shell.Content";ce(xe,"Shell.Content");var Rn=e.forwardRef(({target:n,action:a="toggle",peekOnHover:p,onClick:y,onMouseEnter:u,onMouseLeave:f,children:T,...L},i)=>{let{leftMode:R}=We(),{panelMode:P}=qe(),{sidebarMode:N}=Oe(),{inspectorMode:s}=Xe(),{bottomMode:d}=Je(),{peekTarget:h,clearPeek:M,peekPane:D}=en(),{togglePane:r,expandPane:_,collapsePane:V}=tn(),G=e.useCallback(U=>{switch(y?.(U),h===n&&M(),a){case"toggle":r(n);break;case"expand":_(n);break;case"collapse":V(n);break}},[h,M,r,_,V,n,a,y]),H=(()=>{switch(n){case"left":case"rail":return R==="collapsed";case"panel":return R==="collapsed"||P==="collapsed";case"sidebar":return N==="collapsed";case"inspector":return s==="collapsed";case"bottom":return d==="collapsed"}})(),Y=e.useCallback(U=>{u?.(U),!(!p||!H)&&D(n)},[u,p,H,D,n]),J=e.useCallback(U=>{f?.(U),p&&h===n&&M()},[f,p,h,M,n]);return e.createElement("button",{...L,ref:i,onClick:G,onMouseEnter:Y,onMouseLeave:J,"data-shell-trigger":n,"data-shell-action":a,"aria-expanded":!H},T)});Rn.displayName="Shell.Trigger";export{fn as a,ze as b,Ce as c,de as d,ie as e,xe as f,Rn as g,Nn as h};
2
- //# sourceMappingURL=chunk-2FYJTSOP.js.map
1
+ import{a as Se}from"./chunk-7ESHXHHO.js";import{a as Ee}from"./chunk-RLPKKCBL.js";import{a as Me}from"./chunk-ZXZOH63L.js";import{a as cn}from"./chunk-2LYX5S7H.js";import{a as Ve,c as He,d as Fe}from"./chunk-LAOMR7SE.js";import{a as Le,c as ke}from"./chunk-5LXFJMFB.js";import{a as Re,b as je,c as Ue,d as We,e as $e,f as qe,g as Ge,h as Oe,i as Ke,j as Xe,k as Ye,l as Je,m as Qe,o as Ze,p as en,q as nn,r as tn,s as on,u as an,v as Te}from"./chunk-SNHEJU2S.js";import{a as ln,b as be}from"./chunk-TLWTUKKL.js";import{a as sn,b as dn,c as he}from"./chunk-CECQNGUL.js";import{a as rn}from"./chunk-NNO7M466.js";import{a as Ae}from"./chunk-AGAQC4HH.js";import{a as we}from"./chunk-FMBECDL4.js";import{a as Ie}from"./chunk-KFA53SVQ.js";import{a as On}from"./chunk-OS3FCYZY.js";var Nn={};On(Nn,{Bottom:()=>Se,Content:()=>xe,Header:()=>ze,Inspector:()=>Ee,Left:()=>Ce,Panel:()=>ie,Rail:()=>de,Root:()=>fn,Sidebar:()=>Me,Trigger:()=>Rn,useResponsivePresentation:()=>Le,useShell:()=>Re,useSidebarMode:()=>Oe});import*as e from"react";import se from"classnames";var Tn=Symbol("rtShellSlot");function ce(n,a){return n[Tn]=a,n}var j=(n,a)=>e.isValidElement(n)&&(n.type===a||n.type?.displayName===a.displayName);ce(Me,"Shell.Sidebar");ce(Ee,"Shell.Inspector");ce(Se,"Shell.Bottom");function Ln(n,a){switch(a.type){case"SET_LEFT_MODE":return a.mode==="collapsed"?n.leftMode==="collapsed"&&n.panelMode==="collapsed"?n:{...n,leftMode:"collapsed",panelMode:"collapsed"}:n.leftMode===a.mode?n:{...n,leftMode:a.mode};case"SET_PANEL_MODE":return a.mode==="expanded"&&n.leftMode!=="expanded"?{...n,leftMode:"expanded",panelMode:"expanded"}:n.panelMode===a.mode?n:{...n,panelMode:a.mode};case"SET_SIDEBAR_MODE":return n.sidebarMode===a.mode?n:{...n,sidebarMode:a.mode};case"SET_INSPECTOR_MODE":return n.inspectorMode===a.mode?n:{...n,inspectorMode:a.mode};case"SET_BOTTOM_MODE":return n.bottomMode===a.mode?n:{...n,bottomMode:a.mode};case"TOGGLE_PANE":switch(a.target){case"left":case"rail":return{...n,leftMode:n.leftMode==="expanded"?"collapsed":"expanded",panelMode:n.leftMode==="expanded"?"collapsed":n.panelMode};case"panel":return n.leftMode==="collapsed"?{...n,leftMode:"expanded",panelMode:"expanded"}:{...n,panelMode:n.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{let p=n.sidebarMode==="collapsed"?"expanded":n.sidebarMode==="expanded"?"collapsed":"expanded";return{...n,sidebarMode:p}}case"inspector":return{...n,inspectorMode:n.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...n,bottomMode:n.bottomMode==="expanded"?"collapsed":"expanded"};default:return n}case"EXPAND_PANE":switch(a.target){case"left":case"rail":return n.leftMode==="expanded"?n:{...n,leftMode:"expanded"};case"panel":return n.leftMode==="expanded"&&n.panelMode==="expanded"?n:{...n,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return n.sidebarMode==="expanded"?n:{...n,sidebarMode:"expanded"};case"inspector":return n.inspectorMode==="expanded"?n:{...n,inspectorMode:"expanded"};case"bottom":return n.bottomMode==="expanded"?n:{...n,bottomMode:"expanded"};default:return n}case"COLLAPSE_PANE":switch(a.target){case"left":case"rail":return n.leftMode==="collapsed"&&n.panelMode==="collapsed"?n:{...n,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return n.panelMode==="collapsed"?n:{...n,panelMode:"collapsed"};case"sidebar":return n.sidebarMode==="collapsed"?n:{...n,sidebarMode:"collapsed"};case"inspector":return n.inspectorMode==="collapsed"?n:{...n,inspectorMode:"collapsed"};case"bottom":return n.bottomMode==="collapsed"?n:{...n,bottomMode:"collapsed"};default:return n}}return n}function pn(n,a){if(a===void 0)return n.initial??Object.values(n)[0];if(n[a]!==void 0)return n[a];let y=[...Object.keys(Ie)].reverse().concat("initial");for(let u=y.indexOf(a)+1;u<y.length;u++)if(n[y[u]]!==void 0)return n[y[u]]}function un(n,a){let p=e.Children.toArray(n),y=p.some(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Panel"&&!!s.props?.defaultOpen),u=p.find(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Rail"),f=u?u.props?.defaultOpen:void 0,T=u?f===void 0?!0:typeof f=="boolean"?f:typeof f=="object"?f.initial??Object.values(f)[0]??!0:!0:!1,L=p.some(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Inspector"&&!!s.props?.defaultOpen),i=p.some(s=>e.isValidElement(s)&&s.type?.displayName==="Shell.Inspector"&&typeof s.props?.open<"u"&&!!s.props?.open),R=p.some(s=>{if(!e.isValidElement(s)||s.type?.displayName!=="Shell.Panel")return!1;let d=s.props?.open;return typeof d>"u"?!1:typeof d=="boolean"?d:typeof d=="object"&&d!==null?d.initial??Object.values(d)[0]??!1:!1}),P=()=>{let s=p.find(h=>e.isValidElement(h)&&h.type?.displayName==="Shell.Sidebar");if(!s)return"expanded";let d=s.props;if(typeof d?.state<"u"){if(typeof d.state=="string")return d.state;if(typeof d.state=="object")return pn(d.state,a)??"expanded"}if(typeof d?.defaultState<"u"){if(typeof d.defaultState=="string")return d.defaultState;if(typeof d.defaultState=="object")return pn(d.defaultState,a)??"expanded"}return"expanded"},N=()=>{let s=p.find(h=>e.isValidElement(h)&&h.type?.displayName==="Shell.Bottom");if(!s)return"collapsed";let d=s.props;if(typeof d?.open<"u"){if(typeof d.open=="boolean")return d.open?"expanded":"collapsed";if(typeof d.open=="object")return d.open.initial??Object.values(d.open)[0]?"expanded":"collapsed"}return typeof d?.defaultOpen<"u"&&d.defaultOpen?"expanded":"collapsed"};return{hasPanelDefaultOpen:y,leftMode:y||R||T?"expanded":"collapsed",panelMode:y||R?"expanded":"collapsed",sidebarMode:P(),inspectorMode:L||i?"expanded":"collapsed",bottomMode:N()}}var fn=e.forwardRef(({className:n,children:a,height:p="full",...y},u)=>{let{breakpoint:f,ready:T}=we(),L=e.useRef(!1),[i,R]=e.useReducer(Ln,a,t=>{let{hasPanelDefaultOpen:l,...x}=un(t);return L.current=l,x}),P=e.useCallback(t=>R({type:"SET_LEFT_MODE",mode:t}),[]),N=e.useCallback(t=>R({type:"SET_PANEL_MODE",mode:t}),[]),s=e.useCallback(t=>R({type:"SET_SIDEBAR_MODE",mode:t}),[]),d=e.useCallback(t=>R({type:"SET_INSPECTOR_MODE",mode:t}),[]),h=e.useCallback(t=>R({type:"SET_BOTTOM_MODE",mode:t}),[]),[M,D]=e.useState(!1),[r,_]=e.useState(!1),V=e.useRef(t=>t==="collapsed"?"thin":t==="thin"?"expanded":"collapsed"),G=e.useCallback(t=>{V.current=t},[]);e.useLayoutEffect(()=>{r&&M&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[r,M]);let[H,Y]=e.useState(void 0),J=e.useCallback(t=>Y(t),[]),U=e.useRef(64),q=e.useRef(288),Q=e.useCallback(t=>{U.current=t},[]),Z=e.useCallback(t=>{q.current=t},[]),W=e.useMemo(()=>e.Children.toArray(a).some(l=>j(l,de)||j(l,ie)),[a]),k=e.useMemo(()=>e.Children.toArray(a).some(l=>j(l,Me)),[a]),B=e.useRef({left:W,sidebar:k});if(B.current.left!==W||B.current.sidebar!==k){let t=W&&!B.current.left,l=k&&!B.current.sidebar;if(B.current={left:W,sidebar:k},t||l){let{hasPanelDefaultOpen:x,...w}=un(a,f);t&&(L.current=x,w.leftMode!==i.leftMode&&R({type:"SET_LEFT_MODE",mode:w.leftMode}),w.panelMode!==i.panelMode&&R({type:"SET_PANEL_MODE",mode:w.panelMode})),l&&w.sidebarMode!==i.sidebarMode&&R({type:"SET_SIDEBAR_MODE",mode:w.sidebarMode})}}let c=e.useRef(i.sidebarMode);c.current=i.sidebarMode;let K=e.useCallback(t=>{if(t==="sidebar"){let l=V.current(c.current);s(l);return}R({type:"TOGGLE_PANE",target:t})},[s]),X=e.useCallback(t=>{if(t==="sidebar")return s("expanded");R({type:"EXPAND_PANE",target:t})},[s]),$=e.useCallback(t=>{if(t==="sidebar")return s("collapsed");R({type:"COLLAPSE_PANE",target:t})},[s]),le=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:P,panelMode:i.panelMode,setPanelMode:N,sidebarMode:i.sidebarMode,setSidebarMode:s,inspectorMode:i.inspectorMode,setInspectorMode:d,bottomMode:i.bottomMode,setBottomMode:h,hasLeft:M,setHasLeft:D,hasSidebar:r,setHasSidebar:_,currentBreakpoint:f,currentBreakpointReady:T,leftResolvedPresentation:H,togglePane:K,expandPane:X,collapsePane:$,setSidebarToggleComputer:G,onLeftPres:J,onRailDefaults:Q,onPanelDefaults:Z}),[i.leftMode,P,i.panelMode,N,i.sidebarMode,s,i.inspectorMode,d,i.bottomMode,h,M,r,f,T,H,K,X,$,G,J,Q,Z]),{headerEls:me,railEls:m,panelEls:S,sidebarEls:A,contentEls:I,inspectorEls:C,bottomEls:oe}=e.useMemo(()=>{let t={headerEls:[],railEls:[],panelEls:[],sidebarEls:[],contentEls:[],inspectorEls:[],bottomEls:[]};for(let l of e.Children.toArray(a))j(l,ze)?t.headerEls.push(l):j(l,de)?t.railEls.push(l):j(l,ie)?t.panelEls.push(l):j(l,Me)?t.sidebarEls.push(l):j(l,xe)?t.contentEls.push(l):j(l,Ee)?t.inspectorEls.push(l):j(l,Se)&&t.bottomEls.push(l);return t},[a]),z=m[0]?.props?.open,v=e.useMemo(()=>{if(typeof z>"u")return;if(typeof z=="boolean")return z;if(typeof z!="object"||z===null)return!!z;let t=z;if(t[f]!==void 0)return t[f];let l=["xl","lg","md","sm","xs","initial"],x=l.indexOf(f);for(let w=x+1;w<l.length;w++){let fe=l[w];if(t[fe]!==void 0)return t[fe]}},[z,f]),F=S[0]?.props?.open,E=e.useMemo(()=>{if(typeof F>"u")return;if(typeof F=="boolean")return F;if(typeof F!="object"||F===null)return!!F;let t=F;if(t[f]!==void 0)return t[f];let l=["xl","lg","md","sm","xs","initial"],x=l.indexOf(f);for(let w=x+1;w<l.length;w++){let fe=l[w];if(t[fe]!==void 0)return t[fe]}},[F,f]),pe=e.useRef(0),ee=e.useRef(0),ae=e.useRef(0),ue=e.useRef(v),o=e.useRef(E);e.useLayoutEffect(()=>{if(v===void 0){ue.current=void 0;return}ue.current!==v&&(ue.current=v,ee.current=++pe.current)},[v]),e.useLayoutEffect(()=>{if(E===void 0){o.current=void 0;return}o.current!==E&&(o.current=E,ae.current=++pe.current)},[E]),e.useLayoutEffect(()=>{typeof v>"u"||P(v?"expanded":"collapsed")},[v,P]);let b=m[0]?.props?.onOpenChange,g=S[0]?.props?.onOpenChange,O=e.useRef(null);e.useLayoutEffect(()=>{if(v!==!1||E!==!0){O.current=null;return}let t=ae.current>ee.current,l=t?"open-rail":"close-panel",x=O.current;x&&x.railSeq===ee.current&&x.panelSeq===ae.current&&x.action===l||(O.current={railSeq:ee.current,panelSeq:ae.current,action:l},t?b?.(!0,{reason:"panel"}):g?.(!1,{reason:"left"}))},[v,E,b,g]);let ne=v,Ne=e.useMemo(()=>p==="full"?{height:"100vh"}:p==="auto"?{height:"auto"}:typeof p=="string"?{height:p}:typeof p=="number"?{height:`${p}px`}:{},[p]),[re,te]=e.useState(null),Pe=e.useCallback(t=>te(t),[]),ye=e.useCallback(()=>te(null),[]),Mn=e.useMemo(()=>({currentBreakpoint:f,currentBreakpointReady:T,leftResolvedPresentation:H}),[f,T,H]),mn=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:P}),[i.leftMode,P]),Pn=e.useMemo(()=>({panelMode:i.panelMode,setPanelMode:N}),[i.panelMode,N]),yn=e.useMemo(()=>({sidebarMode:i.sidebarMode,setSidebarMode:s}),[i.sidebarMode,s]),bn=e.useMemo(()=>({inspectorMode:i.inspectorMode,setInspectorMode:d}),[i.inspectorMode,d]),hn=e.useMemo(()=>({bottomMode:i.bottomMode,setBottomMode:h}),[i.bottomMode,h]),Sn=e.useMemo(()=>({hasLeft:M,setHasLeft:D,hasSidebar:r,setHasSidebar:_}),[M,D,r,_]),[ve,De]=e.useState(new Set),_e=e.useCallback(t=>{De(l=>{if(l.has(t))return l;let x=new Set(l);return x.add(t),x})},[]),Be=e.useCallback(t=>{De(l=>{if(!l.has(t))return l;let x=new Set(l);return x.delete(t),x})},[]),ge=ve.size>0,En=e.useMemo(()=>({insetPanes:ve,registerInset:_e,unregisterInset:Be,hasAnyInset:ge}),[ve,_e,Be,ge]),Cn=e.useMemo(()=>({peekTarget:re,setPeekTarget:te,peekPane:Pe,clearPeek:ye}),[re,te,Pe,ye]),xn=e.useMemo(()=>({togglePane:K,expandPane:X,collapsePane:$,setSidebarToggleComputer:G}),[K,X,$,G]),vn=e.useMemo(()=>({...le,leftControlledOpen:ne,peekTarget:re,setPeekTarget:te,peekPane:Pe,clearPeek:ye}),[le,ne,re,te,Pe,ye]),gn=e.useMemo(()=>{if(!W||k)return null;let t=m[0],l=S[0],x=!!t?.props?.inset||!!l?.props?.inset,w=t?{onOpenChange:t.props?.onOpenChange,open:t.props?.open,defaultOpen:t.props?.defaultOpen,presentation:t.props?.presentation,collapsible:t.props?.collapsible,onExpand:t.props?.onExpand,onCollapse:t.props?.onCollapse,inset:x}:{defaultOpen:L.current?!0:void 0,inset:x};return e.createElement(Ce,{...w},m,S)},[W,k,m,S]);return e.createElement("div",{...y,ref:u,className:se("rt-ShellRoot",n),style:{...Ne,...y.style}},e.createElement(je,{value:vn},e.createElement(Qe.Provider,{value:Mn},e.createElement(Ue.Provider,{value:mn},e.createElement($e.Provider,{value:Pn},e.createElement(Ge.Provider,{value:yn},e.createElement(Ke.Provider,{value:bn},e.createElement(Ye.Provider,{value:hn},e.createElement(on.Provider,{value:Sn},e.createElement(Ze.Provider,{value:Cn},e.createElement(nn.Provider,{value:xn},e.createElement(an.Provider,{value:En},me,e.createElement("div",{className:"rt-ShellBody","data-peek-target":re??void 0,"data-has-inset":ge||void 0,style:re==="rail"||re==="panel"?{"--peek-rail-width":`${U.current}px`}:void 0},gn??A,I,C),oe))))))))))))});fn.displayName="Shell.Root";var ze=e.forwardRef(({className:n,height:a=64,style:p,...y},u)=>e.createElement("header",{...y,ref:u,className:se("rt-ShellHeader",n),style:{...p,"--shell-header-height":`${a}px`}}));ze.displayName="Shell.Header";var kn=["open","defaultOpen","onOpenChange","mode","defaultMode","onModeChange"],Ce=e.forwardRef((n,a)=>{let{className:p,presentation:y={initial:"fixed",sm:"fixed"},collapsible:u=!0,onExpand:f,onCollapse:T,children:L,style:i,inset:R,...P}=n,{registerInset:N,unregisterInset:s}=Te();e.useEffect(()=>{if(R)return N("left"),()=>s("left")},[R,N,s]);let d=P.open,h=P.defaultOpen,M=P.onOpenChange,D=sn(P,kn),r=Re(),{setHasLeft:_}=r,V=Le(y),G=V==="overlay",H=V==="stacked",Y=e.useRef(null);e.useEffect(()=>{r.onLeftPres?.(V)},[r,V]);let J=e.useCallback(m=>{Y.current=m,typeof a=="function"?a(m):a&&(a.current=m)},[a]);e.useEffect(()=>(_(!0),()=>_(!1)),[_]);let U=e.useRef(null),q=e.useRef(void 0),Q=e.useMemo(()=>{if(!(typeof d>"u"))return d?"expanded":"collapsed"},[d]),Z=e.useMemo(()=>he(h),[h]),W=e.useRef(M),k=e.useRef(d);e.useLayoutEffect(()=>{W.current=M,k.current=d});let{resolvedControlled:B}=ke({controlledValue:Q,defaultValue:Z,currentValue:r.leftMode,setValue:r.setLeftMode,breakpointReady:r.currentBreakpointReady,onInit:m=>W.current?.(m==="expanded",{reason:"init"})}),c=e.useRef(null);e.useEffect(()=>{let m=U.current,S=c.current,I=q.current!==B;if(m!==null&&m!==r.leftMode){let C=typeof k.current<"u",oe=B===void 0?void 0:B==="expanded",z=r.leftMode==="expanded";if(!C||!I&&z!==oe){let v="toggle";S!==null&&S!==r.panelMode&&m==="collapsed"&&r.leftMode==="expanded"&&r.panelMode==="expanded"&&(v="panel"),W.current?.(z,{reason:v})}}U.current=r.leftMode,c.current=r.panelMode,q.current=B},[r.leftMode,r.panelMode,B]);let K=e.useRef(f),X=e.useRef(T);e.useLayoutEffect(()=>{K.current=f,X.current=T});let $=e.useRef(null),le=e.useRef(!1);e.useEffect(()=>{let m=r.leftMode;if(!r.currentBreakpointReady){$.current=m;return}if(!le.current){le.current=!0,$.current=m;return}let S=$.current;S!==null&&S!==m&&(m==="expanded"?K.current?.():m==="collapsed"&&X.current?.(),$.current=m)},[r.leftMode,r.currentBreakpointReady]);let me=r.leftMode==="expanded";if(G){let m=r.leftMode==="expanded",S=e.Children.toArray(L),A=S.find(E=>j(E,de)),I=S.find(E=>j(E,ie)),C=typeof A?.props?.expandedSize=="number"?A.props.expandedSize:64,oe=typeof I?.props?.expandedSize=="number"?I.props.expandedSize:288,z=!!A,v=!!I,F=(z?C:0)+(r.panelMode==="expanded"&&v?oe:0);return e.createElement(Ve,{open:m,onOpenChange:E=>r.setLeftMode(E?"expanded":"collapsed")},e.createElement(He,{side:"start",style:{padding:0},"aria-label":"Navigation","aria-describedby":void 0,width:{initial:`${F}px`}},e.createElement(Ae,null,e.createElement(Fe,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},L)))}if(H){let m=r.leftMode==="expanded",S=e.Children.toArray(L),A=S.find(E=>j(E,de)),I=S.find(E=>j(E,ie)),C=typeof A?.props?.expandedSize=="number"?A.props.expandedSize:64,oe=typeof I?.props?.expandedSize=="number"?I.props.expandedSize:288,z=!!A,F=!!I&&(r.panelMode==="expanded"||r.peekTarget==="panel");return e.createElement("div",{...D,ref:J,className:se("rt-ShellLeft",p),"data-mode":r.leftMode,"data-peek":r.peekTarget==="left"||r.peekTarget==="rail"||r.peekTarget==="panel"||void 0,"data-presentation":V,"data-inset":R||void 0,style:{...i},"data-open":m||void 0},L)}return e.createElement("div",{...D,ref:J,className:se("rt-ShellLeft",p),"data-mode":r.leftMode,"data-peek":r.peekTarget==="left"||r.peekTarget==="rail"||r.peekTarget==="panel"||void 0,"data-presentation":V,"data-inset":R||void 0,style:{...i}},L)});Ce.displayName="Shell.Left";ce(Ce,"Shell.Left");var de=e.forwardRef((n,a)=>{let{className:p,presentation:y,expandedSize:u=64,collapsible:f,onExpand:T,onCollapse:L,children:i,style:R,open:P,defaultOpen:N,onOpenChange:s,inset:d,...h}=n,M=Re(),D=e.useRef(null);e.useEffect(()=>{let _=typeof P<"u";if(D.current===null){D.current=_;return}D.current!==_&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),D.current=_)},[P]),e.useEffect(()=>{M.onRailDefaults?.(u)},[M,u]);let r=M.leftMode==="expanded";return e.createElement("div",{...h,ref:a,className:se("rt-ShellRail",p),"data-mode":M.leftMode,"data-peek":M.currentBreakpointReady&&M.leftResolvedPresentation!=="overlay"&&M.peekTarget==="rail"||void 0,style:{...R,"--rail-size":`${u}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":M.currentBreakpointReady&&(r||M.leftResolvedPresentation!=="overlay"&&M.peekTarget==="rail")||void 0},i))});de.displayName="Shell.Rail";ce(de,"Shell.Rail");var zn=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style"],ie=ce(e.forwardRef((n,a)=>{let{className:p,defaultOpen:y,open:u,onOpenChange:f,size:T,defaultSize:L,expandedSize:i=288,minSize:R,maxSize:P,resizable:N,collapsible:s=!0,onExpand:d,onCollapse:h,onResize:M,onResizeStart:D,onResizeEnd:r,snapPoints:_,snapTolerance:V,collapseThreshold:G,paneId:H,persistence:Y,children:J,style:U,onSizeChange:q,sizeUpdate:Q,sizeUpdateMs:Z=50}=n,W=dn(n,zn),k=e.useRef(null);e.useLayoutEffect(()=>()=>{k.current&&(clearTimeout(k.current),k.current=null)},[q,Q,Z]);let B=e.useMemo(()=>{if(!q)return()=>{};if(Q==="debounce")return(b,g)=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{q?.(b,g),k.current=null},Z)};if(Q==="throttle"){let o=0;return(b,g)=>{let O=Date.now();O-o>=Z&&(o=O,q?.(b,g))}}return(o,b)=>q?.(o,b)},[q,Q,Z]),c=Re(),K=e.useRef(null),X=e.useRef(null),$=e.useRef(void 0),le=e.useMemo(()=>he(u),[u]),me=e.useMemo(()=>he(y),[y]),m=typeof u=="object"&&u!==null,S=e.useRef(f);e.useLayoutEffect(()=>{S.current=f});let{resolvedControlled:A}=ke({controlledValue:le,defaultValue:me,currentValue:c.panelMode,setValue:o=>{o==="expanded"&&c.leftMode!=="expanded"&&c.leftControlledOpen!==!1&&c.setLeftMode("expanded"),c.setPanelMode(o)},breakpointReady:c.currentBreakpointReady,controlledIsResponsive:m,onResponsiveChange:o=>S.current?.(o==="expanded",{reason:"responsive"}),onInit:o=>{typeof u>"u"&&S.current?.(o==="expanded",{reason:"init"})}}),I=e.useRef(null);e.useEffect(()=>{let o=typeof u<"u";if(I.current===null){I.current=o;return}I.current!==o&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),I.current=o)},[u]),e.useEffect(()=>{c.onPanelDefaults?.(i)},[c,i]);let C=e.useRef(null),oe=e.useCallback(o=>{C.current=o,typeof a=="function"?a(o):a&&(a.current=o)},[a]),z=e.Children.toArray(J),v=z.filter(o=>e.isValidElement(o)&&o.type===be),F=z.filter(o=>!(e.isValidElement(o)&&o.type===be)),E=c.leftResolvedPresentation==="overlay",pe=e.useCallback(o=>cn(o,"horizontal"),[]),ee=e.useMemo(()=>{if(!H||Y)return Y;let o=`kookie-ui:shell:panel:${H}`;return{load:()=>{if(!(typeof window>"u"))try{let g=window.localStorage.getItem(o);return g?Number(g):void 0}catch{return}},save:g=>{if(!(typeof window>"u"))try{window.localStorage.setItem(o,String(g))}catch{}}}},[H,Y]);e.useEffect(()=>{let o=!0;return(async()=>{if(!N||!ee?.load||E)return;let b=await ee.load();o&&typeof b=="number"&&C.current&&(C.current.style.setProperty("--panel-size",`${b}px`),M?.(b))})(),()=>{o=!1}},[N,ee,M,E]),e.useEffect(()=>{C.current&&E&&C.current.style.setProperty("--panel-size",`${i}px`)},[E,i]),e.useEffect(()=>{if(C.current&&typeof T>"u"&&typeof L<"u"){let o=pe(L);if(typeof o=="number"&&Number.isFinite(o)){let O=Math.min((typeof P=="number"?P:void 0)??o,Math.max((typeof R=="number"?R:void 0)??o,o));C.current.style.setProperty("--panel-size",`${O}px`),B(O,{reason:"init"})}}},[]),e.useEffect(()=>{if(!C.current||typeof T>"u")return;let o=pe(T);if(typeof o=="number"&&Number.isFinite(o)){let O=Math.min((typeof P=="number"?P:void 0)??o,Math.max((typeof R=="number"?R:void 0)??o,o));C.current.style.setProperty("--panel-size",`${O}px`),B(O,{reason:"controlled"})}},[T,R,P,pe,B]),e.useEffect(()=>{if(C.current&&c.leftResolvedPresentation!=="overlay"&&c.leftMode==="expanded"&&c.panelMode==="expanded"){let o=C.current.parentElement||null;try{o?.style.removeProperty("width")}catch{}}},[c.leftResolvedPresentation,c.leftMode,c.panelMode]);let ae=c.leftMode==="expanded"&&c.panelMode==="expanded";e.useEffect(()=>{let o=K.current,b=X.current,O=$.current!==A;if(o!==null&&o!==c.panelMode){let ne=c.panelMode==="expanded";if(!(typeof u<"u")||!O&&ne!==(A===void 0?void 0:A==="expanded")){let te="toggle";b!==c.leftMode&&c.leftMode==="collapsed"&&!ne&&(te="left"),S.current?.(ne,{reason:te})}}K.current=c.panelMode,X.current=c.leftMode,$.current=A},[c.panelMode,c.leftMode,u,A]);let ue=N&&c.leftResolvedPresentation!=="overlay"&&ae?e.createElement(rn.Provider,{value:{containerRef:C,cssVarName:"--panel-size",minSize:typeof R=="number"?R:100,maxSize:typeof P=="number"?P:800,defaultSize:i,orientation:"vertical",edge:"end",computeNext:(o,b,g)=>{let O=getComputedStyle(C.current).direction==="rtl",ne=o-b;return g+(O?-ne:ne)},onResize:M,onResizeStart:o=>{let g=C.current?.parentElement;try{g?.style.removeProperty("width")}catch{}D?.(o)},onResizeEnd:o=>{r?.(o),B(o,{reason:"resize"}),ee?.save?.(o)},target:"panel",collapsible:!!s,snapPoints:_,snapTolerance:V??8,collapseThreshold:G,requestCollapse:()=>c.setPanelMode("collapsed"),requestToggle:()=>c.togglePane("panel")}},v.length>0?v.map((o,b)=>e.cloneElement(o,{key:o.key??b})):e.createElement(ln,null)):null;return e.createElement("div",{...W,ref:oe,className:se("rt-ShellPanel",p),"data-mode":c.panelMode,"data-visible":c.currentBreakpointReady&&(ae||c.leftResolvedPresentation!=="overlay"&&c.peekTarget==="panel")||void 0,"data-peek":c.currentBreakpointReady&&c.leftResolvedPresentation!=="overlay"&&c.peekTarget==="panel"||void 0,style:{...U,"--panel-size":`${i}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":ae||void 0},F),ue)}),"Shell.Panel");ie.displayName="Shell.Panel";ie.Handle=be;var xe=e.forwardRef(({className:n,inset:a,...p},y)=>{let{registerInset:u,unregisterInset:f}=Te();return e.useEffect(()=>{if(a)return u("content"),()=>f("content")},[a,u,f]),e.createElement("main",{...p,ref:y,className:se("rt-ShellContent",n),"data-inset":a||void 0})});xe.displayName="Shell.Content";ce(xe,"Shell.Content");var Rn=e.forwardRef(({target:n,action:a="toggle",peekOnHover:p,onClick:y,onMouseEnter:u,onMouseLeave:f,children:T,...L},i)=>{let{leftMode:R}=We(),{panelMode:P}=qe(),{sidebarMode:N}=Oe(),{inspectorMode:s}=Xe(),{bottomMode:d}=Je(),{peekTarget:h,clearPeek:M,peekPane:D}=en(),{togglePane:r,expandPane:_,collapsePane:V}=tn(),G=e.useCallback(U=>{switch(y?.(U),h===n&&M(),a){case"toggle":r(n);break;case"expand":_(n);break;case"collapse":V(n);break}},[h,M,r,_,V,n,a,y]),H=(()=>{switch(n){case"left":case"rail":return R==="collapsed";case"panel":return R==="collapsed"||P==="collapsed";case"sidebar":return N==="collapsed";case"inspector":return s==="collapsed";case"bottom":return d==="collapsed"}})(),Y=e.useCallback(U=>{u?.(U),!(!p||!H)&&D(n)},[u,p,H,D,n]),J=e.useCallback(U=>{f?.(U),p&&h===n&&M()},[f,p,h,M,n]);return e.createElement("button",{...L,ref:i,onClick:G,onMouseEnter:Y,onMouseLeave:J,"data-shell-trigger":n,"data-shell-action":a,"aria-expanded":!H},T)});Rn.displayName="Shell.Trigger";export{fn as a,ze as b,Ce as c,de as d,ie as e,xe as f,Rn as g,Nn as h};
2
+ //# sourceMappingURL=chunk-5BYHEYO6.js.map
@@ -1,2 +1,2 @@
1
- import{a as R}from"./chunk-3DC63EZP.js";import{a as f}from"./chunk-H7ST535H.js";import{a as n}from"./chunk-GSTOGDAJ.js";import{a as u}from"./chunk-6FLLFCBU.js";import{a as N}from"./chunk-3XT5P2HO.js";var _={};N(_,{Item:()=>x,Root:()=>y});import*as o from"react";import G from"classnames";import{Context as v}from"radix-ui/internal";import{RadioGroup as d}from"radix-ui";var P="RadioGroup",[S]=v.createContextScope(P,[d.createRadioGroupScope]),l=d.createRadioGroupScope(),[E,I]=S(P),y=o.forwardRef(({color:a=R.color.default,highContrast:e=R.highContrast.default,size:t=R.size.default,variant:r=R.variant.default,...i},s)=>{let{__scopeRadioGroup:p,className:m,...C}=u(i,n),h=l(p);return o.createElement(E,{scope:p,color:a,highContrast:e,size:t,variant:r},o.createElement(d.Root,{...h,...C,ref:s,className:G("rt-RadioGroupRoot",m)}))});y.displayName="RadioGroup.Root";var x=o.forwardRef((a,e)=>{let{__scopeRadioGroup:t,children:r,className:i,style:s,...p}=a,{size:m}=I("RadioGroupItem",t);return r?o.createElement(f,{as:"label",size:m,className:G("rt-RadioGroupItem",i),style:s},o.createElement(c,{__scopeRadioGroup:t,...p,ref:e}),r&&o.createElement("span",{className:"rt-RadioGroupItemInner"},r)):o.createElement(c,{__scopeRadioGroup:t,...p,ref:e,className:i,style:s})});x.displayName="RadioGroup.Item";var c=o.forwardRef(({__scopeRadioGroup:a,...e},t)=>{let r=I("RadioGroupItemRadio",a),i=l(a),{color:s,className:p}=u({...e,...r},R,n);return o.createElement(d.Item,{...i,"data-accent-color":s,...e,asChild:!1,ref:t,className:G("rt-reset","rt-BaseRadioRoot",p)})});c.displayName="RadioGroup.ItemRadio";export{y as a,x as b,_ as c};
2
- //# sourceMappingURL=chunk-B24BDVG2.js.map
1
+ import{a as R}from"./chunk-3DC63EZP.js";import{a as f}from"./chunk-H7ST535H.js";import{a as n}from"./chunk-GSTOGDAJ.js";import{a as u}from"./chunk-6FLLFCBU.js";import{a as N}from"./chunk-OS3FCYZY.js";var _={};N(_,{Item:()=>x,Root:()=>y});import*as o from"react";import G from"classnames";import{Context as v}from"radix-ui/internal";import{RadioGroup as d}from"radix-ui";var P="RadioGroup",[S]=v.createContextScope(P,[d.createRadioGroupScope]),l=d.createRadioGroupScope(),[E,I]=S(P),y=o.forwardRef(({color:a=R.color.default,highContrast:e=R.highContrast.default,size:t=R.size.default,variant:r=R.variant.default,...i},s)=>{let{__scopeRadioGroup:p,className:m,...C}=u(i,n),h=l(p);return o.createElement(E,{scope:p,color:a,highContrast:e,size:t,variant:r},o.createElement(d.Root,{...h,...C,ref:s,className:G("rt-RadioGroupRoot",m)}))});y.displayName="RadioGroup.Root";var x=o.forwardRef((a,e)=>{let{__scopeRadioGroup:t,children:r,className:i,style:s,...p}=a,{size:m}=I("RadioGroupItem",t);return r?o.createElement(f,{as:"label",size:m,className:G("rt-RadioGroupItem",i),style:s},o.createElement(c,{__scopeRadioGroup:t,...p,ref:e}),r&&o.createElement("span",{className:"rt-RadioGroupItemInner"},r)):o.createElement(c,{__scopeRadioGroup:t,...p,ref:e,className:i,style:s})});x.displayName="RadioGroup.Item";var c=o.forwardRef(({__scopeRadioGroup:a,...e},t)=>{let r=I("RadioGroupItemRadio",a),i=l(a),{color:s,className:p}=u({...e,...r},R,n);return o.createElement(d.Item,{...i,"data-accent-color":s,...e,asChild:!1,ref:t,className:G("rt-reset","rt-BaseRadioRoot",p)})});c.displayName="RadioGroup.ItemRadio";export{y as a,x as b,_ as c};
2
+ //# sourceMappingURL=chunk-5MNBQROW.js.map
@@ -1,2 +1,2 @@
1
- import{a as be}from"./chunk-2LYX5S7H.js";import{a as pe,c as fe}from"./chunk-5LXFJMFB.js";import{l as ie,n as le,p as de,r as ce,v as ue}from"./chunk-SNHEJU2S.js";import{a as re,c as se,d as ae}from"./chunk-MK2R6DAU.js";import{a as Re,e as S}from"./chunk-TLWTUKKL.js";import{b as he,c as I}from"./chunk-CECQNGUL.js";import{a as me}from"./chunk-NNO7M466.js";import{a as oe}from"./chunk-AGAQC4HH.js";import*as t from"react";import Ue from"classnames";var Le=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style","inset"],ye=t.forwardRef((U,p)=>{let{className:ze,presentation:Pe="fixed",defaultOpen:L,open:a,onOpenChange:_,expandedSize:C=200,minSize:l=100,maxSize:d=400,resizable:B=!1,collapsible:Se=!0,onExpand:$,onCollapse:A,onResize:v,onResizeStart:Ce,onResizeEnd:Be,snapPoints:ve,snapTolerance:ge,collapseThreshold:xe,paneId:g,persistence:x,children:Me,style:Ee,size:j,defaultSize:F,onSizeChange:M,sizeUpdate:E,sizeUpdateMs:O=50,inset:T}=U,Oe=he(U,Le),{bottomMode:s,setBottomMode:N}=ie(),{currentBreakpointReady:f}=le(),{peekTarget:Te}=de(),{togglePane:Ne}=ce(),{registerInset:q,unregisterInset:K}=ue();t.useLayoutEffect(()=>{if(T)return q("bottom"),()=>K("bottom")},[T,q,K]);let w=pe(Pe),R=w==="overlay",we=w==="stacked",i=t.useRef(null),ke=t.useCallback(e=>{i.current=e,typeof p=="function"?p(e):p&&(p.current=e)},[p]),W=t.Children.toArray(Me),Y=W.filter(e=>t.isValidElement(e)&&e.type===S),G=W.filter(e=>!(t.isValidElement(e)&&e.type===S)),h=t.useRef(_),k=t.useRef(a);t.useLayoutEffect(()=>{h.current=_,k.current=a});let De=t.useMemo(()=>I(a),[a]),Ve=t.useMemo(()=>I(L),[L]),He=typeof a=="object"&&a!==null,{resolvedControlled:m}=fe({controlledValue:De,defaultValue:Ve,currentValue:s,setValue:N,breakpointReady:f,controlledIsResponsive:He,onResponsiveChange:e=>h.current?.(e==="expanded",{reason:"responsive"}),onInit:e=>{typeof k.current>"u"&&h.current?.(e==="expanded",{reason:"init"})}}),c=t.useRef(null);t.useEffect(()=>()=>{c.current&&(clearTimeout(c.current),c.current=null)},[M,E,O]);let b=t.useMemo(()=>{let e=M,o=E,r=O??50;if(!e)return()=>{};if(o==="debounce")return(n,u)=>{c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{e(n,u),c.current=null},r)};if(o==="throttle"){let n=0;return(u,te)=>{let ne=Date.now();ne-n>=r&&(n=ne,e(u,te))}}return(n,u)=>e(n,u)},[M,E,O]),y=t.useRef(null);t.useEffect(()=>{let e=typeof a<"u";if(y.current===null){y.current=e;return}y.current!==e&&(console.warn("Shell.Bottom: Switching between controlled and uncontrolled `open` is not supported."),y.current=e)},[a]);let J=t.useRef(null),Q=t.useRef(void 0);t.useEffect(()=>{let e=J.current,r=Q.current!==m;if(e!==null&&e!==s){let n=s==="expanded";(!(typeof k.current<"u")||!r&&n!==(m===void 0?void 0:m==="expanded"))&&h.current?.(n,{reason:"toggle"})}J.current=s,Q.current=m},[s,m]);let X=t.useRef($),Z=t.useRef(A);t.useLayoutEffect(()=>{X.current=$,Z.current=A});let z=t.useRef(null),ee=t.useRef(!1);t.useEffect(()=>{let e=s;if(!f){z.current=e;return}if(!ee.current){ee.current=!0,z.current=e;return}let o=z.current;o!==null&&o!==e&&(e==="expanded"?X.current?.():e==="collapsed"&&Z.current?.(),z.current=e)},[s,f]);let D=s==="expanded",P=t.useMemo(()=>{if(!g||x)return x;let e=`kookie-ui:shell:bottom:${g}`;return{load:()=>{if(!(typeof window>"u"))try{let r=window.localStorage.getItem(e);return r?Number(r):void 0}catch{return}},save:r=>{if(!(typeof window>"u"))try{window.localStorage.setItem(e,String(r))}catch{}}}},[g,x]);t.useEffect(()=>{let e=!0;if(!B||!P?.load||R)return;let o=P.load(),r=n=>{!e||typeof n!="number"||!i.current||(i.current.style.setProperty("--bottom-size",`${n}px`),v?.(n))};return o instanceof Promise?o.then(r).catch(n=>{}):r(o),()=>{e=!1}},[B,P,v,R]);let Ie=B&&!R&&D?t.createElement(me.Provider,{value:{containerRef:i,cssVarName:"--bottom-size",minSize:l,maxSize:d,defaultSize:C,orientation:"horizontal",edge:"start",computeNext:(e,o,r)=>{let n=e-o;return r-n},onResize:v,onResizeStart:Ce,onResizeEnd:e=>{Be?.(e),b(e,{reason:"resize"}),P?.save?.(e)},target:"bottom",collapsible:Se,snapPoints:ve,snapTolerance:ge??8,collapseThreshold:xe,requestCollapse:()=>N("collapsed"),requestToggle:()=>Ne("bottom")}},Y.length>0?Y.map((e,o)=>t.cloneElement(e,{key:e.key??o})):t.createElement(Re,null)):null,V=t.useCallback(e=>be(e,"vertical"),[]);t.useEffect(()=>{if(i.current&&typeof j>"u"&&typeof F<"u"){let e=V(F);if(typeof e=="number"&&Number.isFinite(e)){let n=Math.min((typeof d=="number"?d:void 0)??e,Math.max((typeof l=="number"?l:void 0)??e,e));i.current.style.setProperty("--bottom-size",`${n}px`),b(n,{reason:"init"})}}},[]);let H=j;return t.useEffect(()=>{if(!i.current||typeof H>"u")return;let e=V(H);if(typeof e=="number"&&Number.isFinite(e)){let n=Math.min((typeof d=="number"?d:void 0)??e,Math.max((typeof l=="number"?l:void 0)??e,e));i.current.style.setProperty("--bottom-size",`${n}px`),b(n,{reason:"controlled"})}},[H,l,d,V,b]),R?t.createElement(re,{open:s==="expanded",onOpenChange:o=>N(o?"expanded":"collapsed")},t.createElement(se,{side:"bottom",style:{padding:0},"aria-label":"Bottom panel","aria-describedby":void 0,height:{initial:`${C}px`}},t.createElement(oe,null,t.createElement(ae,null,"Bottom panel")),G)):t.createElement("div",{...Oe,ref:ke,className:Ue("rt-ShellBottom",ze),"data-mode":s,"data-peek":Te==="bottom"||void 0,"data-presentation":f?w:void 0,"data-open":f&&we&&D||void 0,"data-inset":T||void 0,style:{...Ee,"--bottom-size":`${C}px`,"--bottom-min-size":`${l}px`,"--bottom-max-size":`${d}px`}},t.createElement("div",{className:"rt-ShellBottomContent","data-visible":D||void 0},G),Ie)});ye.displayName="Shell.Bottom";ye.Handle=S;export{ye as a};
2
- //# sourceMappingURL=chunk-W7N7V5YD.js.map
1
+ import{a as be}from"./chunk-2LYX5S7H.js";import{a as re,c as se,d as ae}from"./chunk-LAOMR7SE.js";import{a as pe,c as fe}from"./chunk-5LXFJMFB.js";import{l as ie,n as le,p as de,r as ce,v as ue}from"./chunk-SNHEJU2S.js";import{a as Re,e as S}from"./chunk-TLWTUKKL.js";import{b as he,c as I}from"./chunk-CECQNGUL.js";import{a as me}from"./chunk-NNO7M466.js";import{a as oe}from"./chunk-AGAQC4HH.js";import*as t from"react";import Ue from"classnames";var Le=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style","inset"],ye=t.forwardRef((U,p)=>{let{className:ze,presentation:Pe="fixed",defaultOpen:L,open:a,onOpenChange:_,expandedSize:C=200,minSize:l=100,maxSize:d=400,resizable:B=!1,collapsible:Se=!0,onExpand:$,onCollapse:A,onResize:v,onResizeStart:Ce,onResizeEnd:Be,snapPoints:ve,snapTolerance:ge,collapseThreshold:xe,paneId:g,persistence:x,children:Me,style:Ee,size:j,defaultSize:F,onSizeChange:M,sizeUpdate:E,sizeUpdateMs:O=50,inset:T}=U,Oe=he(U,Le),{bottomMode:s,setBottomMode:N}=ie(),{currentBreakpointReady:f}=le(),{peekTarget:Te}=de(),{togglePane:Ne}=ce(),{registerInset:q,unregisterInset:K}=ue();t.useLayoutEffect(()=>{if(T)return q("bottom"),()=>K("bottom")},[T,q,K]);let w=pe(Pe),R=w==="overlay",we=w==="stacked",i=t.useRef(null),ke=t.useCallback(e=>{i.current=e,typeof p=="function"?p(e):p&&(p.current=e)},[p]),W=t.Children.toArray(Me),Y=W.filter(e=>t.isValidElement(e)&&e.type===S),G=W.filter(e=>!(t.isValidElement(e)&&e.type===S)),h=t.useRef(_),k=t.useRef(a);t.useLayoutEffect(()=>{h.current=_,k.current=a});let De=t.useMemo(()=>I(a),[a]),Ve=t.useMemo(()=>I(L),[L]),He=typeof a=="object"&&a!==null,{resolvedControlled:m}=fe({controlledValue:De,defaultValue:Ve,currentValue:s,setValue:N,breakpointReady:f,controlledIsResponsive:He,onResponsiveChange:e=>h.current?.(e==="expanded",{reason:"responsive"}),onInit:e=>{typeof k.current>"u"&&h.current?.(e==="expanded",{reason:"init"})}}),c=t.useRef(null);t.useEffect(()=>()=>{c.current&&(clearTimeout(c.current),c.current=null)},[M,E,O]);let b=t.useMemo(()=>{let e=M,o=E,r=O??50;if(!e)return()=>{};if(o==="debounce")return(n,u)=>{c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{e(n,u),c.current=null},r)};if(o==="throttle"){let n=0;return(u,te)=>{let ne=Date.now();ne-n>=r&&(n=ne,e(u,te))}}return(n,u)=>e(n,u)},[M,E,O]),y=t.useRef(null);t.useEffect(()=>{let e=typeof a<"u";if(y.current===null){y.current=e;return}y.current!==e&&(console.warn("Shell.Bottom: Switching between controlled and uncontrolled `open` is not supported."),y.current=e)},[a]);let J=t.useRef(null),Q=t.useRef(void 0);t.useEffect(()=>{let e=J.current,r=Q.current!==m;if(e!==null&&e!==s){let n=s==="expanded";(!(typeof k.current<"u")||!r&&n!==(m===void 0?void 0:m==="expanded"))&&h.current?.(n,{reason:"toggle"})}J.current=s,Q.current=m},[s,m]);let X=t.useRef($),Z=t.useRef(A);t.useLayoutEffect(()=>{X.current=$,Z.current=A});let z=t.useRef(null),ee=t.useRef(!1);t.useEffect(()=>{let e=s;if(!f){z.current=e;return}if(!ee.current){ee.current=!0,z.current=e;return}let o=z.current;o!==null&&o!==e&&(e==="expanded"?X.current?.():e==="collapsed"&&Z.current?.(),z.current=e)},[s,f]);let D=s==="expanded",P=t.useMemo(()=>{if(!g||x)return x;let e=`kookie-ui:shell:bottom:${g}`;return{load:()=>{if(!(typeof window>"u"))try{let r=window.localStorage.getItem(e);return r?Number(r):void 0}catch{return}},save:r=>{if(!(typeof window>"u"))try{window.localStorage.setItem(e,String(r))}catch{}}}},[g,x]);t.useEffect(()=>{let e=!0;if(!B||!P?.load||R)return;let o=P.load(),r=n=>{!e||typeof n!="number"||!i.current||(i.current.style.setProperty("--bottom-size",`${n}px`),v?.(n))};return o instanceof Promise?o.then(r).catch(n=>{}):r(o),()=>{e=!1}},[B,P,v,R]);let Ie=B&&!R&&D?t.createElement(me.Provider,{value:{containerRef:i,cssVarName:"--bottom-size",minSize:l,maxSize:d,defaultSize:C,orientation:"horizontal",edge:"start",computeNext:(e,o,r)=>{let n=e-o;return r-n},onResize:v,onResizeStart:Ce,onResizeEnd:e=>{Be?.(e),b(e,{reason:"resize"}),P?.save?.(e)},target:"bottom",collapsible:Se,snapPoints:ve,snapTolerance:ge??8,collapseThreshold:xe,requestCollapse:()=>N("collapsed"),requestToggle:()=>Ne("bottom")}},Y.length>0?Y.map((e,o)=>t.cloneElement(e,{key:e.key??o})):t.createElement(Re,null)):null,V=t.useCallback(e=>be(e,"vertical"),[]);t.useEffect(()=>{if(i.current&&typeof j>"u"&&typeof F<"u"){let e=V(F);if(typeof e=="number"&&Number.isFinite(e)){let n=Math.min((typeof d=="number"?d:void 0)??e,Math.max((typeof l=="number"?l:void 0)??e,e));i.current.style.setProperty("--bottom-size",`${n}px`),b(n,{reason:"init"})}}},[]);let H=j;return t.useEffect(()=>{if(!i.current||typeof H>"u")return;let e=V(H);if(typeof e=="number"&&Number.isFinite(e)){let n=Math.min((typeof d=="number"?d:void 0)??e,Math.max((typeof l=="number"?l:void 0)??e,e));i.current.style.setProperty("--bottom-size",`${n}px`),b(n,{reason:"controlled"})}},[H,l,d,V,b]),R?t.createElement(re,{open:s==="expanded",onOpenChange:o=>N(o?"expanded":"collapsed")},t.createElement(se,{side:"bottom",style:{padding:0},"aria-label":"Bottom panel","aria-describedby":void 0,height:{initial:`${C}px`}},t.createElement(oe,null,t.createElement(ae,null,"Bottom panel")),G)):t.createElement("div",{...Oe,ref:ke,className:Ue("rt-ShellBottom",ze),"data-mode":s,"data-peek":Te==="bottom"||void 0,"data-presentation":f?w:void 0,"data-open":f&&we&&D||void 0,"data-inset":T||void 0,style:{...Ee,"--bottom-size":`${C}px`,"--bottom-min-size":`${l}px`,"--bottom-max-size":`${d}px`}},t.createElement("div",{className:"rt-ShellBottomContent","data-visible":D||void 0},G),Ie)});ye.displayName="Shell.Bottom";ye.Handle=S;export{ye as a};
2
+ //# sourceMappingURL=chunk-7ESHXHHO.js.map
@@ -1,2 +1,2 @@
1
- import{a as p,b as R,c as n}from"./chunk-BALS3AVM.js";import{a as b}from"./chunk-GJSGKE7B.js";import{a as d}from"./chunk-GSTOGDAJ.js";import{a as s}from"./chunk-6FLLFCBU.js";import{b as m}from"./chunk-JUY7CBSL.js";import{a as h}from"./chunk-3XT5P2HO.js";var v={};h(v,{Body:()=>c,Cell:()=>C,ColumnHeaderCell:()=>y,Header:()=>T,Root:()=>P,Row:()=>f,RowHeaderCell:()=>i});import*as e from"react";import t from"classnames";var P=e.forwardRef((o,l)=>{let{layout:a,...r}=p,{className:w,children:u,layout:H,...N}=s(o,r,d),E=m({value:H,className:p.layout.className,propValues:p.layout.values});return e.createElement("div",{ref:l,className:t("rt-TableRoot",w),...N},e.createElement(b,null,e.createElement("table",{className:t("rt-TableRootTable",E)},u)))});P.displayName="Table.Root";var T=e.forwardRef(({className:o,...l},a)=>e.createElement("thead",{...l,ref:a,className:t("rt-TableHeader",o)}));T.displayName="Table.Header";var c=e.forwardRef(({className:o,...l},a)=>e.createElement("tbody",{...l,ref:a,className:t("rt-TableBody",o)}));c.displayName="Table.Body";var f=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,R);return e.createElement("tr",{...r,ref:l,className:t("rt-TableRow",a)})});f.displayName="Table.Row";var C=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("td",{className:t("rt-TableCell",a),ref:l,...r})});C.displayName="Table.Cell";var y=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("th",{className:t("rt-TableCell","rt-TableColumnHeaderCell",a),scope:"col",ref:l,...r})});y.displayName="Table.ColumnHeaderCell";var i=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("th",{className:t("rt-TableCell","rt-TableRowHeaderCell",a),scope:"row",ref:l,...r})});i.displayName="Table.RowHeaderCell";export{P as a,T as b,c,f as d,C as e,y as f,i as g,v as h};
2
- //# sourceMappingURL=chunk-CRWYCLTE.js.map
1
+ import{a as p,b as R,c as n}from"./chunk-BALS3AVM.js";import{a as b}from"./chunk-CTA5ODAO.js";import{a as d}from"./chunk-GSTOGDAJ.js";import{a as s}from"./chunk-6FLLFCBU.js";import{b as m}from"./chunk-JUY7CBSL.js";import{a as h}from"./chunk-OS3FCYZY.js";var v={};h(v,{Body:()=>c,Cell:()=>C,ColumnHeaderCell:()=>y,Header:()=>T,Root:()=>P,Row:()=>f,RowHeaderCell:()=>i});import*as e from"react";import t from"classnames";var P=e.forwardRef((o,l)=>{let{layout:a,...r}=p,{className:w,children:u,layout:H,...N}=s(o,r,d),E=m({value:H,className:p.layout.className,propValues:p.layout.values});return e.createElement("div",{ref:l,className:t("rt-TableRoot",w),...N},e.createElement(b,null,e.createElement("table",{className:t("rt-TableRootTable",E)},u)))});P.displayName="Table.Root";var T=e.forwardRef(({className:o,...l},a)=>e.createElement("thead",{...l,ref:a,className:t("rt-TableHeader",o)}));T.displayName="Table.Header";var c=e.forwardRef(({className:o,...l},a)=>e.createElement("tbody",{...l,ref:a,className:t("rt-TableBody",o)}));c.displayName="Table.Body";var f=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,R);return e.createElement("tr",{...r,ref:l,className:t("rt-TableRow",a)})});f.displayName="Table.Row";var C=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("td",{className:t("rt-TableCell",a),ref:l,...r})});C.displayName="Table.Cell";var y=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("th",{className:t("rt-TableCell","rt-TableColumnHeaderCell",a),scope:"col",ref:l,...r})});y.displayName="Table.ColumnHeaderCell";var i=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("th",{className:t("rt-TableCell","rt-TableRowHeaderCell",a),scope:"row",ref:l,...r})});i.displayName="Table.RowHeaderCell";export{P as a,T as b,c,f as d,C as e,y as f,i as g,v as h};
2
+ //# sourceMappingURL=chunk-ABSKRHVM.js.map
@@ -0,0 +1,2 @@
1
+ import{b as E,d as L}from"./chunk-37OGSEQR.js";import{b as N}from"./chunk-DXL6V2A5.js";import*as e from"react";import S from"classnames";import{useVirtualizer as J}from"@tanstack/react-virtual";var Q=e.memo(function({label:r,isHighlighted:o,id:u,style:x,tabIndex:y,"data-highlighted":m,"data-index":p,onMouseEnter:f,onMouseLeave:v,onClick:h,onKeyDown:g}){return e.createElement("div",{id:u,role:"menuitem",className:S("rt-reset","rt-BaseMenuItem","rt-VirtualMenuItem"),style:x,tabIndex:y,"data-highlighted":m,"data-index":p,onMouseEnter:f,onMouseLeave:v,onClick:h,onKeyDown:g},r)},(n,r)=>!(n.label!==r.label||n["data-highlighted"]!==r["data-highlighted"]||n.style.height!==r.style.height||n.style.transform!==r.style.transform||n.tabIndex!==r.tabIndex||n.id!==r.id));function w({items:n,itemLabel:r,renderItem:o,size:u,estimatedItemSize:x,overscan:y=5,onSelect:m,className:p,style:f,"aria-label":v}){let h=e.useId(),g=e.useRef(null),[T,l]=e.useState(-1),{isInsideMenu:K,size:P,itemHeight:$}=L(),{scaling:k}=N(),I=x??(u?E(u,k):$??E(P??"2",k));if(!r&&!o)throw new Error("VirtualMenu requires either itemLabel or renderItem prop");let A=e.useMemo(()=>r?typeof r=="function"?r:t=>t[r]:null,[r]),c=e.useMemo(()=>n.length===0||T<0?-1:Math.min(T,n.length-1),[T,n.length]),B=e.useMemo(()=>typeof I=="function"?I:()=>I,[I]),M=J({count:n.length,getScrollElement:()=>g.current,estimateSize:B,overscan:y}),j=M.getVirtualItems(),R=e.useRef(n),b=e.useRef(m);R.current=n,b.current=m;let d=e.useRef(M.scrollToIndex);d.current=M.scrollToIndex;let H=e.useRef(c);H.current=c;let q=e.useCallback(t=>{let s=t.currentTarget.dataset.index;s!=null&&l(Number(s))},[]),O=e.useCallback(t=>{let s=t.currentTarget.dataset.index;if(s!=null){let a=Number(s),i=R.current;a>=0&&a<i.length&&b.current?.(i[a],a)}},[]),U=e.useCallback(()=>{},[]),W=e.useCallback(t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();let s=t.currentTarget.dataset.index;if(s!=null){let a=Number(s),i=R.current;a>=0&&a<i.length&&b.current?.(i[a],a)}}},[]),Y=e.useCallback(t=>{let s=R.current,a=H.current;switch(t.key){case"ArrowDown":{t.preventDefault();let i=a<s.length-1?a+1:0;l(i),d.current(i,{align:"auto"});break}case"ArrowUp":{t.preventDefault();let i=a>0?a-1:s.length-1;l(i),d.current(i,{align:"auto"});break}case"Home":{t.preventDefault(),l(0),d.current(0,{align:"start"});break}case"End":{t.preventDefault();let i=s.length-1;l(i),d.current(i,{align:"end"});break}case"Enter":case" ":{t.preventDefault(),a>=0&&a<s.length&&b.current?.(s[a],a);break}case"Tab":{t.preventDefault();break}case"Escape":{t.currentTarget.blur();break}}},[]),V=e.useCallback(t=>`${h}-item-${t}`,[h]),_=e.useMemo(()=>({overflow:"auto",position:"relative",...f}),[f]),C=M.getTotalSize(),F=e.useMemo(()=>({height:`${C}px`,width:"100%",position:"relative"}),[C]);return e.createElement("div",{ref:g,role:K?"group":"menu","aria-label":v,"aria-activedescendant":c>=0?V(c):void 0,tabIndex:0,onKeyDown:Y,className:S("rt-VirtualMenuRoot",p),style:_},e.createElement("div",{className:"rt-VirtualMenuViewport",style:F},j.map(t=>{let s=n[t.index],a=t.index,i=c===a,G={height:t.size,transform:`translateY(${t.start}px)`},D={id:V(a),isHighlighted:i,style:G,tabIndex:i?0:-1,"data-highlighted":i?!0:void 0,"data-index":a,onMouseEnter:q,onMouseLeave:U,onClick:O,onKeyDown:W};return o?e.createElement(o,{key:t.key,item:s,index:a,...D}):e.createElement(Q,{key:t.key,label:A(s),...D})})))}w.displayName="VirtualMenu";var z=e.forwardRef(({className:n,children:r,...o},u)=>e.createElement("div",{ref:u,role:"menuitem",className:S("rt-reset","rt-BaseMenuItem","rt-VirtualMenuItem",n),...o},r));z.displayName="VirtualMenu.Item";var X=e.memo(z,(n,r)=>{let o=n.style,u=r.style;return!(o?.height!==u?.height||o?.transform!==u?.transform||n["data-highlighted"]!==r["data-highlighted"]||n.tabIndex!==r.tabIndex||n.id!==r.id||n.className!==r.className||n.children!==r.children)}),re=Object.assign(w,{Item:X});export{re as a};
2
+ //# sourceMappingURL=chunk-ADBLURLJ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/virtual-menu.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { useMenuContext, getMenuItemHeight } from './_internal/menu-context.js';\nimport { useThemeContext } from './theme.js';\n\n/**\n * VirtualMenu - A virtualized menu component for rendering large lists efficiently.\n *\n * Uses TanStack Virtual to render only visible items.\n * Works inside any container (DropdownMenu.Content, Popover.Content, etc.)\n *\n * @example\n * // Simple usage with itemLabel\n * <VirtualMenu\n * items={items}\n * itemLabel={(item) => item.name}\n * onSelect={handleSelect}\n * />\n *\n * @example\n * // Custom rendering with renderItem\n * const UserItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>\n * <Avatar src={item.avatar} />\n * {item.name}\n * </VirtualMenu.Item>\n * ));\n *\n * <VirtualMenu items={users} renderItem={UserItem} onSelect={handleSelect} />\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Props passed to custom renderItem components */\ninterface VirtualMenuRenderItemProps<T> {\n /** The item data */\n item: T;\n /** Index in the items array */\n index: number;\n /** Whether this item is currently highlighted */\n isHighlighted: boolean;\n /** Unique ID for accessibility */\n id: string;\n /** Positioning styles - must be applied */\n style: React.CSSProperties;\n /** Tab index for focus management */\n tabIndex: number;\n /** Data attribute for CSS styling */\n 'data-highlighted': true | undefined;\n /** Data attribute for event delegation */\n 'data-index': number;\n /** Mouse enter handler */\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n /** Mouse leave handler */\n onMouseLeave: () => void;\n /** Click handler */\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n /** Keyboard handler for Enter/Space activation */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface VirtualMenuProps<T> {\n /** Array of items to render */\n items: T[];\n /**\n * Simple label accessor for basic text items.\n * Can be a property key or a function.\n * @example\n * itemLabel=\"name\"\n * itemLabel={(item) => item.name}\n */\n itemLabel?: keyof T | ((item: T) => React.ReactNode);\n /**\n * Custom component for rendering items.\n * Must be memoized (React.memo) for optimal performance.\n * @example\n * const MyItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>{item.name}</VirtualMenu.Item>\n * ));\n * <VirtualMenu items={items} renderItem={MyItem} />\n */\n renderItem?: React.ComponentType<VirtualMenuRenderItemProps<T>>;\n /**\n * Menu size - controls item height.\n * Automatically inherited from parent DropdownMenu.Content/ContextMenu.Content.\n * Only set manually when using VirtualMenu outside of a menu context.\n * @default '2' (or inherited from context)\n */\n size?: '1' | '2';\n /**\n * Estimated height of each item in pixels.\n * Can be a number (same for all) or a function (per-item).\n * Usually not needed - height is automatically derived from size prop/context.\n * Use this only for custom item heights (e.g., variable height items).\n */\n estimatedItemSize?: number | ((index: number) => number);\n /** Number of items to render outside visible area */\n overscan?: number;\n /** Callback when an item is selected */\n onSelect?: (item: T, index: number) => void;\n /** Additional class name */\n className?: string;\n /** Additional styles */\n style?: React.CSSProperties;\n /** Accessible label for the menu */\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Internal Memoized Item Component\n// ============================================================================\n\ninterface SimpleItemProps {\n label: React.ReactNode;\n isHighlighted: boolean;\n id: string;\n style: React.CSSProperties;\n tabIndex: number;\n 'data-highlighted': true | undefined;\n 'data-index': number;\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nconst SimpleItem = React.memo(\n function SimpleItem({\n label,\n isHighlighted: _isHighlighted,\n id,\n style,\n tabIndex,\n 'data-highlighted': dataHighlighted,\n 'data-index': dataIndex,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n }: SimpleItemProps) {\n return (\n <div\n id={id}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem')}\n style={style}\n tabIndex={tabIndex}\n data-highlighted={dataHighlighted}\n data-index={dataIndex}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {label}\n </div>\n );\n },\n (prev, next) => {\n // Custom comparison - only re-render if these change\n if (prev.label !== next.label) return false;\n if (prev['data-highlighted'] !== next['data-highlighted']) return false;\n if (prev.style.height !== next.style.height) return false;\n if (prev.style.transform !== next.style.transform) return false;\n if (prev.tabIndex !== next.tabIndex) return false;\n if (prev.id !== next.id) return false;\n // Event handlers are stable, skip comparison\n return true;\n },\n);\n\n// ============================================================================\n// VirtualMenu Component\n// ============================================================================\n\nfunction VirtualMenuRoot<T>({\n items,\n itemLabel,\n renderItem: RenderItem,\n size: sizeProp,\n estimatedItemSize: estimatedItemSizeProp,\n overscan = 5,\n onSelect,\n className,\n style,\n 'aria-label': ariaLabel,\n}: VirtualMenuProps<T>) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n const { scaling } = useThemeContext();\n\n // Resolve item height: explicit prop > own size > parent menu > default size '2'.\n // Heights follow the theme scaling, like the --base-menu-item-height token.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp, scaling)\n : (contextItemHeight ?? getMenuItemHeight(contextSize ?? '2', scaling)));\n\n // Validate props\n if (!itemLabel && !RenderItem) {\n throw new Error('VirtualMenu requires either itemLabel or renderItem prop');\n }\n\n // Normalize itemLabel to a function\n const getLabel = React.useMemo(() => {\n if (!itemLabel) return null;\n if (typeof itemLabel === 'function') return itemLabel;\n return (item: T) => item[itemLabel] as React.ReactNode;\n }, [itemLabel]);\n\n // Derive safe highlighted index\n const safeHighlightedIndex = React.useMemo(() => {\n if (items.length === 0) return -1;\n if (highlightedIndex < 0) return -1;\n return Math.min(highlightedIndex, items.length - 1);\n }, [highlightedIndex, items.length]);\n\n // Normalize estimatedItemSize to a function\n const getItemSize = React.useMemo(\n () =>\n typeof estimatedItemSize === 'function'\n ? estimatedItemSize\n : () => estimatedItemSize,\n [estimatedItemSize],\n );\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: getItemSize,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n // Refs for stable handler references\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n\n const scrollToIndexRef = React.useRef(virtualizer.scrollToIndex);\n scrollToIndexRef.current = virtualizer.scrollToIndex;\n\n const highlightedIndexRef = React.useRef(safeHighlightedIndex);\n highlightedIndexRef.current = safeHighlightedIndex;\n\n // Stable event handlers\n const handleItemMouseEnter = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n setHighlightedIndex(Number(index));\n }\n }, []);\n\n const handleItemClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }, []);\n\n const noop = React.useCallback(() => {}, []);\n\n // Item-level keyboard handler for Enter/Space activation (satisfies a11y lint rule)\n const handleItemKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }\n }, []);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n const currentItems = itemsRef.current;\n const currentHighlightedIndex = highlightedIndexRef.current;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex =\n currentHighlightedIndex < currentItems.length - 1 ? currentHighlightedIndex + 1 : 0;\n setHighlightedIndex(nextIndex);\n scrollToIndexRef.current(nextIndex, { align: 'auto' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex =\n currentHighlightedIndex > 0 ? currentHighlightedIndex - 1 : currentItems.length - 1;\n setHighlightedIndex(prevIndex);\n scrollToIndexRef.current(prevIndex, { align: 'auto' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setHighlightedIndex(0);\n scrollToIndexRef.current(0, { align: 'start' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastIndex = currentItems.length - 1;\n setHighlightedIndex(lastIndex);\n scrollToIndexRef.current(lastIndex, { align: 'end' });\n break;\n }\n case 'Enter':\n case ' ': {\n e.preventDefault();\n if (currentHighlightedIndex >= 0 && currentHighlightedIndex < currentItems.length) {\n onSelectRef.current?.(currentItems[currentHighlightedIndex], currentHighlightedIndex);\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n break;\n }\n case 'Escape': {\n (e.currentTarget as HTMLElement).blur();\n break;\n }\n }\n }, []);\n\n // Item ID generator\n const getItemId = React.useCallback(\n (index: number) => `${menuId}-item-${index}`,\n [menuId],\n );\n\n // Memoize styles\n const rootStyle = React.useMemo(\n () => ({\n overflow: 'auto' as const,\n position: 'relative' as const,\n ...style,\n }),\n [style],\n );\n\n const totalSize = virtualizer.getTotalSize();\n const viewportStyle = React.useMemo(\n () => ({\n height: `${totalSize}px`,\n width: '100%' as const,\n position: 'relative' as const,\n }),\n [totalSize],\n );\n\n return (\n <div\n ref={parentRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-label={ariaLabel}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={classNames('rt-VirtualMenuRoot', className)}\n style={rootStyle}\n >\n <div className=\"rt-VirtualMenuViewport\" style={viewportStyle}>\n {virtualItems.map((virtualRow) => {\n const item = items[virtualRow.index];\n const index = virtualRow.index;\n const isHighlighted = safeHighlightedIndex === index;\n\n const itemStyle: React.CSSProperties = {\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n };\n\n const commonProps = {\n id: getItemId(index),\n isHighlighted,\n style: itemStyle,\n tabIndex: isHighlighted ? 0 : -1,\n 'data-highlighted': isHighlighted ? true as const : undefined,\n 'data-index': index,\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: noop,\n onClick: handleItemClick,\n onKeyDown: handleItemKeyDown,\n };\n\n // Use renderItem if provided, otherwise use SimpleItem with itemLabel\n if (RenderItem) {\n return (\n <RenderItem\n key={virtualRow.key}\n item={item}\n index={index}\n {...commonProps}\n />\n );\n }\n\n return (\n <SimpleItem\n key={virtualRow.key}\n label={getLabel!(item)}\n {...commonProps}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nVirtualMenuRoot.displayName = 'VirtualMenu';\n\n// ============================================================================\n// VirtualMenu.Item Component (for custom renderItem usage)\n// ============================================================================\n\ninterface VirtualMenuItemProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n /** Data attribute for highlight styling */\n 'data-highlighted'?: true | undefined;\n /** Data attribute for event delegation */\n 'data-index'?: number;\n}\n\nconst VirtualMenuItemInner = React.forwardRef<HTMLDivElement, VirtualMenuItemProps>(\n ({ className, children, ...props }, forwardedRef) => {\n return (\n <div\n ref={forwardedRef}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nVirtualMenuItemInner.displayName = 'VirtualMenu.Item';\n\n// Memoized with custom comparison\nconst VirtualMenuItem = React.memo(VirtualMenuItemInner, (prevProps, nextProps) => {\n const prevStyle = prevProps.style as React.CSSProperties | undefined;\n const nextStyle = nextProps.style as React.CSSProperties | undefined;\n if (prevStyle?.height !== nextStyle?.height) return false;\n if (prevStyle?.transform !== nextStyle?.transform) return false;\n if (prevProps['data-highlighted'] !== nextProps['data-highlighted']) return false;\n if (prevProps.tabIndex !== nextProps.tabIndex) return false;\n if (prevProps.id !== nextProps.id) return false;\n if (prevProps.className !== nextProps.className) return false;\n if (prevProps.children !== nextProps.children) return false;\n return true;\n});\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst VirtualMenu = Object.assign(VirtualMenuRoot, {\n Item: VirtualMenuItem,\n});\n\nexport { VirtualMenu };\nexport type { VirtualMenuProps, VirtualMenuItemProps, VirtualMenuRenderItemProps };\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "classNames", "useVirtualizer", "SimpleItem", "label", "_isHighlighted", "id", "style", "tabIndex", "dataHighlighted", "dataIndex", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "classNames", "prev", "next", "VirtualMenuRoot", "items", "itemLabel", "RenderItem", "sizeProp", "estimatedItemSizeProp", "overscan", "onSelect", "className", "ariaLabel", "menuId", "parentRef", "highlightedIndex", "setHighlightedIndex", "isInsideMenu", "contextSize", "contextItemHeight", "useMenuContext", "scaling", "useThemeContext", "estimatedItemSize", "getMenuItemHeight", "getLabel", "item", "safeHighlightedIndex", "getItemSize", "virtualizer", "useVirtualizer", "virtualItems", "itemsRef", "onSelectRef", "scrollToIndexRef", "highlightedIndexRef", "handleItemMouseEnter", "e", "index", "handleItemClick", "idx", "currentItems", "noop", "handleItemKeyDown", "handleKeyDown", "currentHighlightedIndex", "nextIndex", "prevIndex", "lastIndex", "getItemId", "rootStyle", "totalSize", "viewportStyle", "virtualRow", "isHighlighted", "itemStyle", "commonProps", "VirtualMenuItemInner", "children", "props", "forwardedRef", "VirtualMenuItem", "prevProps", "nextProps", "prevStyle", "nextStyle", "VirtualMenu"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as c}from"./chunk-Y3A6ZU24.js";import{a as N}from"./chunk-FHOCUZDR.js";import{b as v}from"./chunk-FWB47YCH.js";import{a as m}from"./chunk-6FLLFCBU.js";import{a as R}from"./chunk-3XT5P2HO.js";var d={};R(d,{Actions:()=>P,Logo:()=>b,Navigation:()=>f,Root:()=>l});import*as o from"react";import p from"classnames";var l=o.forwardRef((e,s)=>{let{children:i,className:n,...a}=m(e,c),r=e.position??"fixed",t=e.size??"2";return o.createElement("header",{...a,ref:s,className:p("rt-NavbarRoot",n),"data-position":r,"data-size":t},o.createElement("div",{className:"rt-NavbarContainer"},i))});l.displayName="Navbar.Root";var b=o.forwardRef(({asChild:e,gap:s="2",align:i="center",justify:n="start",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarLogo",a),...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarLogo",a),...r}));b.displayName="Navbar.Logo";var f=o.forwardRef(({asChild:e,gap:s="4",align:i="center",justify:n="center",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarNavigation",a),role:"navigation",...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarNavigation",a),role:"navigation",...r}));f.displayName="Navbar.Navigation";var P=o.forwardRef(({asChild:e,gap:s="4",align:i="center",justify:n="end",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarActions",a),...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarActions",a),...r}));P.displayName="Navbar.Actions";export{l as a,b,f as c,P as d,d as e};
2
- //# sourceMappingURL=chunk-3MWWP4MW.js.map
1
+ import{a as c}from"./chunk-Y3A6ZU24.js";import{a as N}from"./chunk-NIQT45PJ.js";import{b as v}from"./chunk-FWB47YCH.js";import{a as m}from"./chunk-6FLLFCBU.js";import{a as R}from"./chunk-OS3FCYZY.js";var d={};R(d,{Actions:()=>P,Logo:()=>b,Navigation:()=>f,Root:()=>l});import*as o from"react";import p from"classnames";var l=o.forwardRef((e,s)=>{let{children:i,className:n,...a}=m(e,c),r=e.position??"fixed",t=e.size??"2";return o.createElement("header",{...a,ref:s,className:p("rt-NavbarRoot",n),"data-position":r,"data-size":t},o.createElement("div",{className:"rt-NavbarContainer"},i))});l.displayName="Navbar.Root";var b=o.forwardRef(({asChild:e,gap:s="2",align:i="center",justify:n="start",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarLogo",a),...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarLogo",a),...r}));b.displayName="Navbar.Logo";var f=o.forwardRef(({asChild:e,gap:s="4",align:i="center",justify:n="center",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarNavigation",a),role:"navigation",...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarNavigation",a),role:"navigation",...r}));f.displayName="Navbar.Navigation";var P=o.forwardRef(({asChild:e,gap:s="4",align:i="center",justify:n="end",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarActions",a),...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarActions",a),...r}));P.displayName="Navbar.Actions";export{l as a,b,f as c,P as d,d as e};
2
+ //# sourceMappingURL=chunk-BBJUB52V.js.map
@@ -1,5 +1,5 @@
1
- import{a as U,b as _}from"./chunk-YVBCDTTD.js";import{a as G}from"./chunk-GSTOGDAJ.js";import{a as q}from"./chunk-6FLLFCBU.js";import{a as se}from"./chunk-3XT5P2HO.js";var ie={};se(ie,{Root:()=>Q,Slot:()=>$});import*as e from"react";import*as z from"react-dom";import Z from"classnames";import{composeRefs as J}from"radix-ui/internal";var Q=e.forwardRef((P,x)=>{let o=e.useRef(null),{children:h,className:E,color:w,radius:L,panelBackground:C,material:k,style:I,...s}=q(P,U,G),D=k||C,y=e.useId(),v=s.error||s.isInvalid,{"aria-describedby":g,"aria-labelledby":S}=s,f=e.useMemo(()=>{let i=[];return s.errorMessage&&i.push(y),g&&i.push(g),i.length>0?i.join(" "):void 0},[s.errorMessage,g,y]),n=e.useMemo(()=>({"aria-invalid":v,"aria-describedby":f,"aria-labelledby":S}),[v,f,S]),{error:N,errorMessage:V,isInvalid:j,required:m,"aria-describedby":p,"aria-labelledby":a,...b}=s,M=e.useCallback(i=>{let X=i.target;if(X.closest("input, button, a"))return;let d=o.current;if(!d)return;let A=X.closest(`
1
+ import{a as U,b as _}from"./chunk-YVBCDTTD.js";import{a as G}from"./chunk-GSTOGDAJ.js";import{a as q}from"./chunk-6FLLFCBU.js";import{a as se}from"./chunk-OS3FCYZY.js";var ie={};se(ie,{Root:()=>Q,Slot:()=>$});import*as e from"react";import*as z from"react-dom";import Z from"classnames";import{composeRefs as J}from"radix-ui/internal";var Q=e.forwardRef((P,x)=>{let o=e.useRef(null),{children:h,className:E,color:w,radius:L,panelBackground:C,material:k,style:I,...s}=q(P,U,G),D=k||C,y=e.useId(),v=s.error||s.isInvalid,{"aria-describedby":g,"aria-labelledby":S}=s,f=e.useMemo(()=>{let i=[];return s.errorMessage&&i.push(y),g&&i.push(g),i.length>0?i.join(" "):void 0},[s.errorMessage,g,y]),n=e.useMemo(()=>({"aria-invalid":v,"aria-describedby":f,"aria-labelledby":S}),[v,f,S]),{error:N,errorMessage:V,isInvalid:j,required:m,"aria-describedby":p,"aria-labelledby":a,...b}=s,M=e.useCallback(i=>{let X=i.target;if(X.closest("input, button, a"))return;let d=o.current;if(!d)return;let A=X.closest(`
2
2
  .rt-TextFieldSlot[data-side='right'],
3
3
  .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left'])
4
4
  `)?d.value.length:0;requestAnimationFrame(()=>{try{d.setSelectionRange(A,A)}catch{}d.focus()})},[]);return e.createElement("div",{"data-accent-color":w,"data-radius":L,"data-panel-background":D,"data-material":D,style:I,className:Z("rt-TextFieldRoot",E,{"rt-error":v}),onPointerDown:M},e.createElement("input",{spellCheck:"false",...b,...n,ref:J(o,x),className:"rt-reset rt-TextFieldInput"}),h,s.errorMessage&&e.createElement("div",{id:y,className:"rt-TextFieldErrorMessage",role:"alert","aria-live":"polite"},s.errorMessage))});Q.displayName="TextField.Root";var R=(()=>{if(typeof navigator>"u")return!1;let P=navigator.userAgent,x=/^((?!chrome|android).)*safari/i.test(P),o=/firefox/i.test(P);return x||o})(),$=e.forwardRef((P,x)=>{let{scrub:o,scrubValue:h,scrubStep:E=1,scrubSensitivity:w=1,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k=10,scrubAltMultiplier:I=.1,onScrub:s,...D}=P,{className:y,color:v,side:g,...S}=q(D,_),f=e.useRef(null),[n,N]=e.useState(!1),[V,j]=e.useState({x:0,y:0}),m=e.useRef(0),p=e.useRef(0),a=e.useRef(0),b=e.useRef(null),M=e.useRef(0),i=e.useRef({scrubValue:h,scrubStep:E,scrubSensitivity:w,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k,scrubAltMultiplier:I,onScrub:s});i.current={scrubValue:h,scrubStep:E,scrubSensitivity:w,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k,scrubAltMultiplier:I,onScrub:s};let X=e.useCallback(t=>{if(!o||t.target.closest("input, button, a"))return;t.preventDefault(),m.current=0,p.current=h??0,a.current=t.clientX,j({x:t.clientX,y:t.clientY});let c=f.current;c&&(R?(b.current=t.pointerId,M.current=t.clientX,c.setPointerCapture(t.pointerId),N(!0)):c.requestPointerLock())},[o,h]);e.useEffect(()=>{if(R)return;let t=()=>{let r=document.pointerLockElement===f.current;N(r),r||(i.current.onScrub?.(0,!1),m.current=0,p.current=0)};return document.addEventListener("pointerlockchange",t),()=>{document.removeEventListener("pointerlockchange",t)}},[]);let d=e.useCallback((t,r,c,oe)=>{let l=i.current,H=window.innerWidth,O=window.innerHeight;a.current+=t,a.current>H?a.current=a.current%H:a.current<0&&(a.current=H+a.current%H),j(F=>{let u=F.y+r;return u>O?u=u%O:u<0&&(u=O+u%O),{x:a.current,y:u}}),m.current+=t;let W=m.current/l.scrubSensitivity;if(Math.abs(W)>=1){let F=1;c?F=l.scrubShiftMultiplier:oe&&(F=l.scrubAltMultiplier);let u=Math.trunc(W),K=u*l.scrubStep*F,Y=K;if(l.scrubMin!==void 0||l.scrubMax!==void 0){let ne=p.current+K,B=Math.max(l.scrubMin??-1/0,Math.min(l.scrubMax??1/0,ne));Y=B-p.current,p.current=B}else p.current+=K;Y!==0&&l.onScrub?.(Y,!0),m.current=(W-u)*l.scrubSensitivity}},[]),T=e.useCallback(()=>{i.current.onScrub?.(0,!1),m.current=0,p.current=0,b.current=null,N(!1)},[]),A=e.useCallback(t=>{if(!n||!R)return;let r=t.clientX-M.current;M.current=t.clientX,d(r,t.movementY,t.shiftKey,t.altKey)},[n,d]),ee=e.useCallback(t=>{if(!R||b.current!==t.pointerId)return;let r=f.current;r&&b.current!==null&&r.releasePointerCapture(b.current),T()},[T]),te=e.useCallback(()=>{R&&n&&T()},[n,T]);e.useEffect(()=>{if(!n||R)return;let t=c=>{d(c.movementX,c.movementY,c.shiftKey,c.altKey)},r=()=>{document.exitPointerLock()};return document.addEventListener("mousemove",t),document.addEventListener("mouseup",r),document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),document.body.style.userSelect=""}},[n,d]),e.useEffect(()=>{if(!n||!R)return;let t=document.createElement("style");return t.textContent="* { cursor: none !important; user-select: none !important; }",document.head.appendChild(t),()=>{document.head.removeChild(t)}},[n]);let re=n?z.createPortal(e.createElement("img",{className:"rt-TextFieldSlotScrubCursor",src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E",alt:"",style:{position:"fixed",left:V.x,top:V.y,transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:99999,width:24,height:24},"aria-hidden":"true"}),document.body):null;return e.createElement("div",{"data-accent-color":v,"data-side":g,"data-scrub":o||void 0,"data-scrubbing":n||void 0,...S,ref:J(f,x),className:Z("rt-TextFieldSlot",y),onPointerDown:o?X:void 0,onPointerMove:o?A:void 0,onPointerUp:o?ee:void 0,onLostPointerCapture:o?te:void 0},S.children,re)});$.displayName="TextField.Slot";export{Q as a,$ as b,ie as c};
5
- //# sourceMappingURL=chunk-PTLFMWCN.js.map
5
+ //# sourceMappingURL=chunk-CQNPBTM5.js.map
@@ -1,2 +1,2 @@
1
- import{a as S}from"./chunk-5GXFBLBJ.js";import{a as f}from"./chunk-YV2KYHGR.js";import{a as o}from"./chunk-5KICSAT7.js";import{a as n}from"./chunk-PS6NEG5A.js";import{a as c}from"./chunk-E23RKOQJ.js";import{b as a}from"./chunk-JUY7CBSL.js";import*as r from"react";import t from"classnames";import{ScrollArea as e}from"radix-ui";var C=r.forwardRef((P,u)=>{let{rest:A,...d}=S(P),[y,v]=f(d),{asChild:s,children:N,className:R,style:b,type:i,scrollHideDelay:g=i!=="scroll"?0:void 0,dir:z,size:p=o.size.default,radius:m=o.radius.default,scrollbars:l=o.scrollbars.default,...h}=A;return r.createElement(e.Root,{type:i,scrollHideDelay:g,className:t("rt-ScrollAreaRoot",y,R),style:c(v,b),asChild:s},n({asChild:s,children:N},w=>r.createElement(r.Fragment,null,r.createElement(e.Viewport,{...h,ref:u,className:"rt-ScrollAreaViewport"},w),r.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),l!=="vertical"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"horizontal",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l!=="horizontal"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"vertical",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l==="both"?r.createElement(e.Corner,{className:"rt-ScrollAreaCorner"}):null)))});C.displayName="ScrollArea";export{C as a};
2
- //# sourceMappingURL=chunk-GJSGKE7B.js.map
1
+ import{a as S}from"./chunk-5GXFBLBJ.js";import{a as f}from"./chunk-UBOOUDS4.js";import{a as o}from"./chunk-5KICSAT7.js";import{a as n}from"./chunk-PS6NEG5A.js";import{a as c}from"./chunk-E23RKOQJ.js";import{b as a}from"./chunk-JUY7CBSL.js";import*as r from"react";import t from"classnames";import{ScrollArea as e}from"radix-ui";var C=r.forwardRef((P,u)=>{let{rest:A,...d}=S(P),[y,v]=f(d),{asChild:s,children:N,className:R,style:b,type:i,scrollHideDelay:g=i!=="scroll"?0:void 0,dir:z,size:p=o.size.default,radius:m=o.radius.default,scrollbars:l=o.scrollbars.default,...h}=A;return r.createElement(e.Root,{type:i,scrollHideDelay:g,className:t("rt-ScrollAreaRoot",y,R),style:c(v,b),asChild:s},n({asChild:s,children:N},w=>r.createElement(r.Fragment,null,r.createElement(e.Viewport,{...h,ref:u,className:"rt-ScrollAreaViewport"},w),r.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),l!=="vertical"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"horizontal",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l!=="horizontal"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"vertical",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l==="both"?r.createElement(e.Corner,{className:"rt-ScrollAreaCorner"}):null)))});C.displayName="ScrollArea";export{C as a};
2
+ //# sourceMappingURL=chunk-CTA5ODAO.js.map