@womp/kookie-ui 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/codemods/space-0.17.py +71 -0
  2. package/components.css +2159 -3085
  3. package/dist/cjs/components/_internal/base-button.d.ts +0 -2
  4. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  5. package/dist/cjs/components/_internal/base-button.js +1 -1
  6. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  7. package/dist/cjs/components/_internal/base-button.props.d.ts +0 -17
  8. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  9. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  10. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  11. package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -10
  12. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  13. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  14. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  15. package/dist/cjs/components/_internal/base-menu.utils.d.ts +3 -9
  16. package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -1
  17. package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
  18. package/dist/cjs/components/_internal/base-menu.utils.js.map +3 -3
  19. package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -5
  20. package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
  21. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
  22. package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
  23. package/dist/cjs/components/_internal/menu-context.d.ts +2 -3
  24. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  25. package/dist/cjs/components/_internal/menu-context.js +1 -1
  26. package/dist/cjs/components/_internal/menu-context.js.map +4 -4
  27. package/dist/cjs/components/_internal/pane-chrome.d.ts +14 -2
  28. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  29. package/dist/cjs/components/_internal/pane-chrome.js +1 -1
  30. package/dist/cjs/components/_internal/pane-chrome.js.map +3 -3
  31. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  32. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  33. package/dist/cjs/components/accordion.d.ts.map +1 -1
  34. package/dist/cjs/components/accordion.js +1 -1
  35. package/dist/cjs/components/accordion.js.map +3 -3
  36. package/dist/cjs/components/accordion.props.d.ts +0 -7
  37. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  38. package/dist/cjs/components/accordion.props.js +1 -1
  39. package/dist/cjs/components/accordion.props.js.map +3 -3
  40. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  41. package/dist/cjs/components/alert-dialog.js +1 -1
  42. package/dist/cjs/components/alert-dialog.js.map +3 -3
  43. package/dist/cjs/components/alert-dialog.props.d.ts +0 -5
  44. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  45. package/dist/cjs/components/alert-dialog.props.js +1 -1
  46. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  47. package/dist/cjs/components/badge.js +1 -1
  48. package/dist/cjs/components/badge.js.map +3 -3
  49. package/dist/cjs/components/button.js +2 -2
  50. package/dist/cjs/components/button.js.map +3 -3
  51. package/dist/cjs/components/button.props.js +1 -1
  52. package/dist/cjs/components/button.props.js.map +3 -3
  53. package/dist/cjs/components/card.d.ts.map +1 -1
  54. package/dist/cjs/components/card.js +1 -1
  55. package/dist/cjs/components/card.js.map +3 -3
  56. package/dist/cjs/components/card.props.d.ts +0 -5
  57. package/dist/cjs/components/card.props.d.ts.map +1 -1
  58. package/dist/cjs/components/card.props.js +1 -1
  59. package/dist/cjs/components/card.props.js.map +3 -3
  60. package/dist/cjs/components/chatbar.d.ts +0 -2
  61. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  62. package/dist/cjs/components/chatbar.js +2 -2
  63. package/dist/cjs/components/chatbar.js.map +3 -3
  64. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  65. package/dist/cjs/components/checkbox-cards.js +1 -1
  66. package/dist/cjs/components/checkbox-cards.js.map +4 -4
  67. package/dist/cjs/components/checkbox-cards.props.d.ts +0 -5
  68. package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
  69. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  70. package/dist/cjs/components/checkbox-cards.props.js.map +3 -3
  71. package/dist/cjs/components/combobox.d.ts.map +1 -1
  72. package/dist/cjs/components/combobox.js +1 -1
  73. package/dist/cjs/components/combobox.js.map +3 -3
  74. package/dist/cjs/components/combobox.props.d.ts +0 -9
  75. package/dist/cjs/components/combobox.props.d.ts.map +1 -1
  76. package/dist/cjs/components/combobox.props.js +1 -1
  77. package/dist/cjs/components/combobox.props.js.map +3 -3
  78. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  79. package/dist/cjs/components/context-menu.js +1 -1
  80. package/dist/cjs/components/context-menu.js.map +4 -4
  81. package/dist/cjs/components/context-menu.props.js +1 -1
  82. package/dist/cjs/components/context-menu.props.js.map +3 -3
  83. package/dist/cjs/components/dialog.d.ts.map +1 -1
  84. package/dist/cjs/components/dialog.js +1 -1
  85. package/dist/cjs/components/dialog.js.map +3 -3
  86. package/dist/cjs/components/dialog.props.d.ts +0 -5
  87. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  88. package/dist/cjs/components/dialog.props.js +1 -1
  89. package/dist/cjs/components/dialog.props.js.map +3 -3
  90. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  91. package/dist/cjs/components/dropdown-menu.js +1 -1
  92. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  93. package/dist/cjs/components/dropdown-menu.props.js +1 -1
  94. package/dist/cjs/components/dropdown-menu.props.js.map +3 -3
  95. package/dist/cjs/components/hover-card.js +1 -1
  96. package/dist/cjs/components/hover-card.js.map +3 -3
  97. package/dist/cjs/components/icon-button.js +2 -2
  98. package/dist/cjs/components/icon-button.js.map +3 -3
  99. package/dist/cjs/components/icon-button.props.js +1 -1
  100. package/dist/cjs/components/icon-button.props.js.map +3 -3
  101. package/dist/cjs/components/index.js +5 -5
  102. package/dist/cjs/components/index.js.map +4 -4
  103. package/dist/cjs/components/message-scroller.js +2 -2
  104. package/dist/cjs/components/message-scroller.js.map +3 -3
  105. package/dist/cjs/components/notice.d.ts +0 -2
  106. package/dist/cjs/components/notice.d.ts.map +1 -1
  107. package/dist/cjs/components/notice.js +2 -2
  108. package/dist/cjs/components/notice.js.map +3 -3
  109. package/dist/cjs/components/popover.d.ts.map +1 -1
  110. package/dist/cjs/components/popover.js +1 -1
  111. package/dist/cjs/components/popover.js.map +3 -3
  112. package/dist/cjs/components/popover.props.d.ts +0 -5
  113. package/dist/cjs/components/popover.props.d.ts.map +1 -1
  114. package/dist/cjs/components/popover.props.js +1 -1
  115. package/dist/cjs/components/popover.props.js.map +3 -3
  116. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  117. package/dist/cjs/components/radio-cards.js +1 -1
  118. package/dist/cjs/components/radio-cards.js.map +4 -4
  119. package/dist/cjs/components/radio-cards.props.d.ts +0 -5
  120. package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
  121. package/dist/cjs/components/radio-cards.props.js +1 -1
  122. package/dist/cjs/components/radio-cards.props.js.map +3 -3
  123. package/dist/cjs/components/schemas/base-button.schema.d.ts +0 -4
  124. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
  125. package/dist/cjs/components/schemas/base-button.schema.js +1 -1
  126. package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
  127. package/dist/cjs/components/schemas/button.schema.d.ts +0 -4
  128. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
  129. package/dist/cjs/components/schemas/button.schema.js +1 -1
  130. package/dist/cjs/components/schemas/button.schema.js.map +2 -2
  131. package/dist/cjs/components/schemas/icon-button.schema.d.ts +0 -4
  132. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
  133. package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
  134. package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
  135. package/dist/cjs/components/schemas/index.js +1 -1
  136. package/dist/cjs/components/schemas/index.js.map +2 -2
  137. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +0 -4
  138. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
  139. package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
  140. package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
  141. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +0 -4
  142. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  143. package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
  144. package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
  145. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  146. package/dist/cjs/components/segmented-control.js +1 -1
  147. package/dist/cjs/components/segmented-control.js.map +3 -3
  148. package/dist/cjs/components/segmented-control.props.d.ts +0 -4
  149. package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
  150. package/dist/cjs/components/segmented-control.props.js +1 -1
  151. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  152. package/dist/cjs/components/select.d.ts.map +1 -1
  153. package/dist/cjs/components/select.js +1 -1
  154. package/dist/cjs/components/select.js.map +3 -3
  155. package/dist/cjs/components/select.props.d.ts +0 -4
  156. package/dist/cjs/components/select.props.d.ts.map +1 -1
  157. package/dist/cjs/components/select.props.js +1 -1
  158. package/dist/cjs/components/select.props.js.map +2 -2
  159. package/dist/cjs/components/sheet.d.ts +0 -1
  160. package/dist/cjs/components/sheet.d.ts.map +1 -1
  161. package/dist/cjs/components/sheet.js +1 -1
  162. package/dist/cjs/components/sheet.js.map +3 -3
  163. package/dist/cjs/components/shell.js +1 -1
  164. package/dist/cjs/components/shell.js.map +3 -3
  165. package/dist/cjs/components/sidebar.js +1 -1
  166. package/dist/cjs/components/sidebar.js.map +4 -4
  167. package/dist/cjs/components/switch.js.map +2 -2
  168. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  169. package/dist/cjs/components/switch.props.js.map +2 -2
  170. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  171. package/dist/cjs/components/tab-nav.js +1 -1
  172. package/dist/cjs/components/tab-nav.js.map +3 -3
  173. package/dist/cjs/components/tab-nav.props.js +1 -1
  174. package/dist/cjs/components/tab-nav.props.js.map +3 -3
  175. package/dist/cjs/components/tabs.d.ts.map +1 -1
  176. package/dist/cjs/components/tabs.js +1 -1
  177. package/dist/cjs/components/tabs.js.map +3 -3
  178. package/dist/cjs/components/tabs.props.js +1 -1
  179. package/dist/cjs/components/tabs.props.js.map +3 -3
  180. package/dist/cjs/components/text-area.d.ts.map +1 -1
  181. package/dist/cjs/components/text-area.js +1 -1
  182. package/dist/cjs/components/text-area.js.map +3 -3
  183. package/dist/cjs/components/text-area.props.d.ts +0 -5
  184. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  185. package/dist/cjs/components/text-area.props.js +1 -1
  186. package/dist/cjs/components/text-area.props.js.map +3 -3
  187. package/dist/cjs/components/text-field.d.ts.map +1 -1
  188. package/dist/cjs/components/text-field.js +2 -2
  189. package/dist/cjs/components/text-field.js.map +3 -3
  190. package/dist/cjs/components/text-field.props.d.ts +0 -5
  191. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  192. package/dist/cjs/components/text-field.props.js +1 -1
  193. package/dist/cjs/components/text-field.props.js.map +3 -3
  194. package/dist/cjs/components/theme-panel.d.ts.map +1 -1
  195. package/dist/cjs/components/theme-panel.js +3 -3
  196. package/dist/cjs/components/theme-panel.js.map +4 -4
  197. package/dist/cjs/components/theme.d.ts +0 -6
  198. package/dist/cjs/components/theme.d.ts.map +1 -1
  199. package/dist/cjs/components/theme.js +1 -1
  200. package/dist/cjs/components/theme.js.map +3 -3
  201. package/dist/cjs/components/theme.props.d.ts +0 -19
  202. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  203. package/dist/cjs/components/theme.props.js +1 -1
  204. package/dist/cjs/components/theme.props.js.map +3 -3
  205. package/dist/cjs/components/toggle-button.js +3 -3
  206. package/dist/cjs/components/toggle-button.js.map +3 -3
  207. package/dist/cjs/components/toggle-icon-button.js +3 -3
  208. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  209. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  210. package/dist/cjs/components/toolbar.js +2 -2
  211. package/dist/cjs/components/toolbar.js.map +4 -4
  212. package/dist/cjs/components/toolbar.props.d.ts +2 -1
  213. package/dist/cjs/components/toolbar.props.d.ts.map +1 -1
  214. package/dist/cjs/components/toolbar.props.js.map +2 -2
  215. package/dist/cjs/components/tooltip.js +1 -1
  216. package/dist/cjs/components/tooltip.js.map +3 -3
  217. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  218. package/dist/cjs/components/virtual-menu.js +1 -1
  219. package/dist/cjs/components/virtual-menu.js.map +4 -4
  220. package/dist/cjs/index.js +7 -7
  221. package/dist/cjs/index.js.map +4 -4
  222. package/dist/cjs/props/index.js +1 -1
  223. package/dist/cjs/props/index.js.map +3 -3
  224. package/dist/esm/chunk-2CNQGDY3.js +2 -0
  225. package/dist/esm/{chunk-MNC2O6QW.js.map → chunk-2CNQGDY3.js.map} +3 -3
  226. package/dist/esm/chunk-2HUAVZZL.js +2 -0
  227. package/dist/esm/chunk-2HUAVZZL.js.map +7 -0
  228. package/dist/esm/chunk-2O3WL25H.js +2 -0
  229. package/dist/esm/chunk-2O3WL25H.js.map +7 -0
  230. package/dist/esm/{chunk-MD3QCXRD.js → chunk-4STOJSJZ.js} +2 -2
  231. package/dist/esm/{chunk-R4CN4Q3G.js → chunk-534LGOWC.js} +2 -2
  232. package/dist/esm/chunk-5LGWS5QS.js +2 -0
  233. package/dist/esm/chunk-5LGWS5QS.js.map +7 -0
  234. package/dist/esm/{chunk-7UW7D77E.js → chunk-5UU2IMGX.js} +2 -2
  235. package/dist/esm/chunk-655TAWHX.js +2 -0
  236. package/dist/esm/chunk-655TAWHX.js.map +7 -0
  237. package/dist/esm/{chunk-MQT3YJKY.js → chunk-6HRBG5H2.js} +2 -2
  238. package/dist/esm/chunk-6VPYP3VN.js +2 -0
  239. package/dist/esm/chunk-6VPYP3VN.js.map +7 -0
  240. package/dist/esm/{chunk-PTEAQFHI.js → chunk-6WFEMPCF.js} +2 -2
  241. package/dist/esm/chunk-6XHM724Y.js +2 -0
  242. package/dist/esm/chunk-6XHM724Y.js.map +7 -0
  243. package/dist/esm/chunk-6YWJUNMB.js +2 -0
  244. package/dist/esm/chunk-6YWJUNMB.js.map +7 -0
  245. package/dist/esm/chunk-AHOUZS3V.js +2 -0
  246. package/dist/esm/chunk-AHOUZS3V.js.map +7 -0
  247. package/dist/esm/chunk-B6RH4CTY.js +2 -0
  248. package/dist/esm/chunk-B6RH4CTY.js.map +7 -0
  249. package/dist/esm/chunk-BOLRYGFQ.js +2 -0
  250. package/dist/esm/chunk-BOLRYGFQ.js.map +7 -0
  251. package/dist/esm/chunk-BUEYZEAY.js +2 -0
  252. package/dist/esm/chunk-BUEYZEAY.js.map +7 -0
  253. package/dist/esm/chunk-CC4GNSKL.js +2 -0
  254. package/dist/esm/chunk-CC4GNSKL.js.map +7 -0
  255. package/dist/esm/chunk-CG54MBMW.js +2 -0
  256. package/dist/esm/chunk-CG54MBMW.js.map +7 -0
  257. package/dist/esm/{chunk-2PO6TZ7L.js → chunk-COSHAOEK.js} +2 -2
  258. package/dist/esm/{chunk-F2XQYWBE.js → chunk-CRYT55SY.js} +2 -2
  259. package/dist/esm/chunk-DKALDTCN.js +2 -0
  260. package/dist/esm/chunk-DKALDTCN.js.map +7 -0
  261. package/dist/esm/{chunk-ELZEAEN2.js → chunk-DP3OWU5T.js} +2 -2
  262. package/dist/esm/{chunk-UI2EFF6F.js → chunk-E3754NJZ.js} +2 -2
  263. package/dist/esm/chunk-EJOVE3JH.js +2 -0
  264. package/dist/esm/chunk-EJOVE3JH.js.map +7 -0
  265. package/dist/esm/chunk-ENPQJYXZ.js +2 -0
  266. package/dist/esm/chunk-ENPQJYXZ.js.map +7 -0
  267. package/dist/esm/chunk-EO7WQYFO.js +2 -0
  268. package/dist/esm/chunk-EO7WQYFO.js.map +7 -0
  269. package/dist/esm/chunk-EUSKAXHP.js +2 -0
  270. package/dist/esm/chunk-EUSKAXHP.js.map +7 -0
  271. package/dist/esm/chunk-FPDLBLO3.js +2 -0
  272. package/dist/esm/chunk-FPDLBLO3.js.map +7 -0
  273. package/dist/esm/{chunk-6ERCPRXX.js → chunk-FSKZAL5H.js} +2 -2
  274. package/dist/esm/chunk-GOYI2U6F.js +2 -0
  275. package/dist/esm/chunk-GOYI2U6F.js.map +7 -0
  276. package/dist/esm/chunk-HSFQO4QM.js +2 -0
  277. package/dist/esm/chunk-HSFQO4QM.js.map +7 -0
  278. package/dist/esm/chunk-IF4PYIUV.js +2 -0
  279. package/dist/esm/chunk-IF4PYIUV.js.map +7 -0
  280. package/dist/esm/chunk-IGBEDJBC.js +2 -0
  281. package/dist/esm/chunk-IGBEDJBC.js.map +7 -0
  282. package/dist/esm/chunk-JCOALADA.js +5 -0
  283. package/dist/esm/chunk-JCOALADA.js.map +7 -0
  284. package/dist/esm/{chunk-ZUOK3KFY.js → chunk-K7VO7TND.js} +1 -1
  285. package/dist/esm/{chunk-ZUOK3KFY.js.map → chunk-K7VO7TND.js.map} +2 -2
  286. package/dist/esm/{chunk-DIGT74P3.js → chunk-KPACVWV4.js} +1 -1
  287. package/dist/esm/{chunk-DIGT74P3.js.map → chunk-KPACVWV4.js.map} +2 -2
  288. package/dist/esm/chunk-KU3LLWFU.js +2 -0
  289. package/dist/esm/{chunk-UPCRXJB2.js.map → chunk-KU3LLWFU.js.map} +2 -2
  290. package/dist/esm/chunk-M55KFXYV.js +2 -0
  291. package/dist/esm/chunk-M55KFXYV.js.map +7 -0
  292. package/dist/esm/chunk-MAI7FEU7.js +2 -0
  293. package/dist/esm/chunk-MAI7FEU7.js.map +7 -0
  294. package/dist/esm/chunk-MDHXSEGH.js +2 -0
  295. package/dist/esm/chunk-MDHXSEGH.js.map +7 -0
  296. package/dist/esm/{chunk-YKGLZEXX.js → chunk-MJC4NKYG.js} +2 -2
  297. package/dist/esm/chunk-MOYLXCMW.js +2 -0
  298. package/dist/esm/chunk-MOYLXCMW.js.map +7 -0
  299. package/dist/esm/{chunk-Y4IB7KDZ.js → chunk-MZQDDG5K.js} +2 -2
  300. package/dist/esm/chunk-NCDOMH5I.js +2 -0
  301. package/dist/esm/chunk-NCDOMH5I.js.map +7 -0
  302. package/dist/esm/{chunk-DDYII5NA.js → chunk-NOSR2XWD.js} +2 -2
  303. package/dist/esm/chunk-OMUUPPJO.js +2 -0
  304. package/dist/esm/chunk-OMUUPPJO.js.map +7 -0
  305. package/dist/esm/{chunk-J43ZS6TI.js → chunk-ORMCQAPS.js} +2 -2
  306. package/dist/esm/chunk-PNIVUG5D.js +2 -0
  307. package/dist/esm/chunk-PNIVUG5D.js.map +7 -0
  308. package/dist/esm/chunk-PYYI64XK.js +2 -0
  309. package/dist/esm/chunk-PYYI64XK.js.map +7 -0
  310. package/dist/esm/chunk-Q7S5LQBQ.js +2 -0
  311. package/dist/esm/chunk-Q7S5LQBQ.js.map +7 -0
  312. package/dist/esm/chunk-QOPRXQGR.js +2 -0
  313. package/dist/esm/chunk-QOPRXQGR.js.map +7 -0
  314. package/dist/esm/{chunk-MLJLEOZ5.js → chunk-R2FUNQTI.js} +2 -2
  315. package/dist/esm/{chunk-MLJLEOZ5.js.map → chunk-R2FUNQTI.js.map} +2 -2
  316. package/dist/esm/chunk-RFURPE7W.js +10 -0
  317. package/dist/esm/chunk-RFURPE7W.js.map +7 -0
  318. package/dist/esm/chunk-RJ6SA7AY.js +2 -0
  319. package/dist/esm/chunk-RJ6SA7AY.js.map +7 -0
  320. package/dist/esm/chunk-RSJSVJ6A.js +2 -0
  321. package/dist/esm/chunk-RSJSVJ6A.js.map +7 -0
  322. package/dist/esm/chunk-SM27AC7E.js +2 -0
  323. package/dist/esm/chunk-SM27AC7E.js.map +7 -0
  324. package/dist/esm/chunk-WKMJIWFP.js +2 -0
  325. package/dist/esm/chunk-WKMJIWFP.js.map +7 -0
  326. package/dist/esm/{chunk-5RHODJDJ.js → chunk-X5KCVLKG.js} +2 -2
  327. package/dist/esm/chunk-YDRFILTX.js +2 -0
  328. package/dist/esm/chunk-YDRFILTX.js.map +7 -0
  329. package/dist/esm/chunk-YGPUKJEB.js +2 -0
  330. package/dist/esm/chunk-YGPUKJEB.js.map +7 -0
  331. package/dist/esm/{chunk-PAB6HVKC.js → chunk-YZABQ4LS.js} +2 -2
  332. package/dist/esm/components/_internal/base-button.d.ts +0 -2
  333. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  334. package/dist/esm/components/_internal/base-button.js +1 -1
  335. package/dist/esm/components/_internal/base-button.props.d.ts +0 -17
  336. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  337. package/dist/esm/components/_internal/base-button.props.js +1 -1
  338. package/dist/esm/components/_internal/base-menu.props.d.ts +0 -10
  339. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  340. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  341. package/dist/esm/components/_internal/base-menu.utils.d.ts +3 -9
  342. package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -1
  343. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  344. package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -5
  345. package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
  346. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  347. package/dist/esm/components/_internal/menu-context.d.ts +2 -3
  348. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  349. package/dist/esm/components/_internal/menu-context.js +1 -1
  350. package/dist/esm/components/_internal/pane-chrome.d.ts +14 -2
  351. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  352. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  353. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  354. package/dist/esm/components/accordion.d.ts.map +1 -1
  355. package/dist/esm/components/accordion.js +1 -1
  356. package/dist/esm/components/accordion.props.d.ts +0 -7
  357. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  358. package/dist/esm/components/accordion.props.js +1 -1
  359. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  360. package/dist/esm/components/alert-dialog.js +1 -1
  361. package/dist/esm/components/alert-dialog.props.d.ts +0 -5
  362. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  363. package/dist/esm/components/alert-dialog.props.js +1 -1
  364. package/dist/esm/components/badge.js +1 -1
  365. package/dist/esm/components/button.js +1 -1
  366. package/dist/esm/components/button.props.js +1 -1
  367. package/dist/esm/components/card.d.ts.map +1 -1
  368. package/dist/esm/components/card.js +1 -1
  369. package/dist/esm/components/card.props.d.ts +0 -5
  370. package/dist/esm/components/card.props.d.ts.map +1 -1
  371. package/dist/esm/components/card.props.js +1 -1
  372. package/dist/esm/components/chatbar.d.ts +0 -2
  373. package/dist/esm/components/chatbar.d.ts.map +1 -1
  374. package/dist/esm/components/chatbar.js +1 -1
  375. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  376. package/dist/esm/components/checkbox-cards.js +1 -1
  377. package/dist/esm/components/checkbox-cards.props.d.ts +0 -5
  378. package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
  379. package/dist/esm/components/checkbox-cards.props.js +1 -1
  380. package/dist/esm/components/combobox.d.ts.map +1 -1
  381. package/dist/esm/components/combobox.js +1 -1
  382. package/dist/esm/components/combobox.props.d.ts +0 -9
  383. package/dist/esm/components/combobox.props.d.ts.map +1 -1
  384. package/dist/esm/components/combobox.props.js +1 -1
  385. package/dist/esm/components/context-menu.d.ts.map +1 -1
  386. package/dist/esm/components/context-menu.js +1 -1
  387. package/dist/esm/components/context-menu.props.js +1 -1
  388. package/dist/esm/components/dialog.d.ts.map +1 -1
  389. package/dist/esm/components/dialog.js +1 -1
  390. package/dist/esm/components/dialog.props.d.ts +0 -5
  391. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  392. package/dist/esm/components/dialog.props.js +1 -1
  393. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  394. package/dist/esm/components/dropdown-menu.js +1 -1
  395. package/dist/esm/components/dropdown-menu.props.js +1 -1
  396. package/dist/esm/components/hover-card.js +1 -1
  397. package/dist/esm/components/icon-button.js +1 -1
  398. package/dist/esm/components/icon-button.props.js +1 -1
  399. package/dist/esm/components/index.js +1 -1
  400. package/dist/esm/components/message-scroller.js +1 -1
  401. package/dist/esm/components/notice.d.ts +0 -2
  402. package/dist/esm/components/notice.d.ts.map +1 -1
  403. package/dist/esm/components/notice.js +1 -1
  404. package/dist/esm/components/popover.d.ts.map +1 -1
  405. package/dist/esm/components/popover.js +1 -1
  406. package/dist/esm/components/popover.props.d.ts +0 -5
  407. package/dist/esm/components/popover.props.d.ts.map +1 -1
  408. package/dist/esm/components/popover.props.js +1 -1
  409. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  410. package/dist/esm/components/radio-cards.js +1 -1
  411. package/dist/esm/components/radio-cards.props.d.ts +0 -5
  412. package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
  413. package/dist/esm/components/radio-cards.props.js +1 -1
  414. package/dist/esm/components/schemas/base-button.schema.d.ts +0 -4
  415. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
  416. package/dist/esm/components/schemas/base-button.schema.js +1 -1
  417. package/dist/esm/components/schemas/button.schema.d.ts +0 -4
  418. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
  419. package/dist/esm/components/schemas/button.schema.js +1 -1
  420. package/dist/esm/components/schemas/icon-button.schema.d.ts +0 -4
  421. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
  422. package/dist/esm/components/schemas/icon-button.schema.js +1 -1
  423. package/dist/esm/components/schemas/index.js +1 -1
  424. package/dist/esm/components/schemas/toggle-button.schema.d.ts +0 -4
  425. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
  426. package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
  427. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +0 -4
  428. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  429. package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
  430. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  431. package/dist/esm/components/segmented-control.js +1 -1
  432. package/dist/esm/components/segmented-control.props.d.ts +0 -4
  433. package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
  434. package/dist/esm/components/segmented-control.props.js +1 -1
  435. package/dist/esm/components/select.d.ts.map +1 -1
  436. package/dist/esm/components/select.js +1 -1
  437. package/dist/esm/components/select.props.d.ts +0 -4
  438. package/dist/esm/components/select.props.d.ts.map +1 -1
  439. package/dist/esm/components/select.props.js +1 -1
  440. package/dist/esm/components/sheet.d.ts +0 -1
  441. package/dist/esm/components/sheet.d.ts.map +1 -1
  442. package/dist/esm/components/sheet.js +1 -1
  443. package/dist/esm/components/shell.js +1 -1
  444. package/dist/esm/components/sidebar.js +1 -1
  445. package/dist/esm/components/switch.js +1 -1
  446. package/dist/esm/components/switch.props.d.ts.map +1 -1
  447. package/dist/esm/components/switch.props.js +1 -1
  448. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  449. package/dist/esm/components/tab-nav.js +1 -1
  450. package/dist/esm/components/tab-nav.props.js +1 -1
  451. package/dist/esm/components/tabs.d.ts.map +1 -1
  452. package/dist/esm/components/tabs.js +1 -1
  453. package/dist/esm/components/tabs.props.js +1 -1
  454. package/dist/esm/components/text-area.d.ts.map +1 -1
  455. package/dist/esm/components/text-area.js +1 -1
  456. package/dist/esm/components/text-area.props.d.ts +0 -5
  457. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  458. package/dist/esm/components/text-area.props.js +1 -1
  459. package/dist/esm/components/text-field.d.ts.map +1 -1
  460. package/dist/esm/components/text-field.js +1 -1
  461. package/dist/esm/components/text-field.props.d.ts +0 -5
  462. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  463. package/dist/esm/components/text-field.props.js +1 -1
  464. package/dist/esm/components/theme-panel.d.ts.map +1 -1
  465. package/dist/esm/components/theme-panel.js +1 -1
  466. package/dist/esm/components/theme.d.ts +0 -6
  467. package/dist/esm/components/theme.d.ts.map +1 -1
  468. package/dist/esm/components/theme.js +1 -1
  469. package/dist/esm/components/theme.props.d.ts +0 -19
  470. package/dist/esm/components/theme.props.d.ts.map +1 -1
  471. package/dist/esm/components/theme.props.js +1 -1
  472. package/dist/esm/components/toggle-button.js +1 -1
  473. package/dist/esm/components/toggle-icon-button.js +1 -1
  474. package/dist/esm/components/toolbar.d.ts.map +1 -1
  475. package/dist/esm/components/toolbar.js +1 -1
  476. package/dist/esm/components/toolbar.props.d.ts +2 -1
  477. package/dist/esm/components/toolbar.props.d.ts.map +1 -1
  478. package/dist/esm/components/toolbar.props.js +1 -1
  479. package/dist/esm/components/tooltip.js +1 -1
  480. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  481. package/dist/esm/components/virtual-menu.js +1 -1
  482. package/dist/esm/helpers/index.js +1 -1
  483. package/dist/esm/index.js +1 -1
  484. package/dist/esm/props/index.js +1 -1
  485. package/layout/components.css +48 -48
  486. package/layout/tokens.css +65 -31
  487. package/layout.css +113 -79
  488. package/package.json +2 -1
  489. package/schemas/base-button.json +0 -8
  490. package/schemas/button.json +0 -8
  491. package/schemas/icon-button.json +0 -8
  492. package/schemas/index.json +0 -40
  493. package/schemas/toggle-button.json +0 -8
  494. package/schemas/toggle-icon-button.json +0 -8
  495. package/src/components/_internal/base-button.css +19 -100
  496. package/src/components/_internal/base-button.props.ts +0 -26
  497. package/src/components/_internal/base-button.tsx +0 -6
  498. package/src/components/_internal/base-card.css +32 -194
  499. package/src/components/_internal/base-checkbox.css +16 -53
  500. package/src/components/_internal/base-dialog.css +13 -45
  501. package/src/components/_internal/base-menu.css +24 -57
  502. package/src/components/_internal/base-menu.props.ts +0 -8
  503. package/src/components/_internal/base-menu.utils.tsx +4 -15
  504. package/src/components/_internal/base-radio.css +14 -51
  505. package/src/components/_internal/base-sidebar-menu.css +21 -19
  506. package/src/components/_internal/base-sidebar.css +2 -3
  507. package/src/components/_internal/base-tab-list.css +14 -61
  508. package/src/components/_internal/base-tab-list.props.ts +0 -3
  509. package/src/components/_internal/menu-context.tsx +6 -10
  510. package/src/components/_internal/pane-chrome.tsx +40 -8
  511. package/src/components/accordion.css +17 -263
  512. package/src/components/accordion.props.tsx +0 -4
  513. package/src/components/accordion.tsx +1 -4
  514. package/src/components/alert-dialog.props.tsx +0 -4
  515. package/src/components/alert-dialog.tsx +1 -14
  516. package/src/components/avatar.css +19 -57
  517. package/src/components/badge.css +28 -41
  518. package/src/components/blockquote.css +2 -2
  519. package/src/components/button.css +13 -13
  520. package/src/components/card.props.tsx +0 -3
  521. package/src/components/card.tsx +1 -3
  522. package/src/components/chatbar.css +44 -124
  523. package/src/components/chatbar.tsx +1 -7
  524. package/src/components/checkbox-cards.css +11 -11
  525. package/src/components/checkbox-cards.props.tsx +0 -3
  526. package/src/components/checkbox-cards.tsx +0 -5
  527. package/src/components/checkbox-group.css +1 -1
  528. package/src/components/combobox.css +4 -9
  529. package/src/components/combobox.props.tsx +0 -5
  530. package/src/components/combobox.tsx +1 -11
  531. package/src/components/context-menu.tsx +6 -19
  532. package/src/components/data-list.css +4 -4
  533. package/src/components/dialog.css +0 -12
  534. package/src/components/dialog.props.tsx +0 -3
  535. package/src/components/dialog.tsx +1 -14
  536. package/src/components/dropdown-menu.css +1 -1
  537. package/src/components/dropdown-menu.tsx +5 -19
  538. package/src/components/hover-card.css +3 -3
  539. package/src/components/icon-button.css +4 -4
  540. package/src/components/image.css +1 -1
  541. package/src/components/kbd.css +14 -14
  542. package/src/components/message-scroller.css +1 -1
  543. package/src/components/navbar.css +6 -6
  544. package/src/components/notice.css +9 -15
  545. package/src/components/notice.tsx +1 -4
  546. package/src/components/popover.css +15 -37
  547. package/src/components/popover.props.tsx +0 -3
  548. package/src/components/popover.tsx +0 -5
  549. package/src/components/progress.css +0 -69
  550. package/src/components/radio-cards.css +6 -6
  551. package/src/components/radio-cards.props.tsx +0 -3
  552. package/src/components/radio-cards.tsx +0 -5
  553. package/src/components/radio-group.css +1 -1
  554. package/src/components/schemas/base-button.schema.ts +0 -9
  555. package/src/components/scroll-area.css +14 -14
  556. package/src/components/section.css +8 -8
  557. package/src/components/segmented-control.css +25 -68
  558. package/src/components/segmented-control.props.tsx +0 -2
  559. package/src/components/segmented-control.tsx +0 -4
  560. package/src/components/select.css +24 -363
  561. package/src/components/select.props.tsx +0 -2
  562. package/src/components/select.tsx +0 -2
  563. package/src/components/separator.css +3 -3
  564. package/src/components/sheet.css +0 -11
  565. package/src/components/sheet.tsx +1 -18
  566. package/src/components/shell.css +45 -30
  567. package/src/components/sidebar.css +108 -198
  568. package/src/components/skeleton.css +1 -1
  569. package/src/components/slider.css +16 -87
  570. package/src/components/spinner.css +6 -6
  571. package/src/components/switch.css +10 -37
  572. package/src/components/switch.props.tsx +0 -8
  573. package/src/components/tab-nav.tsx +1 -3
  574. package/src/components/table.css +10 -18
  575. package/src/components/tabs.tsx +1 -3
  576. package/src/components/text-area.css +41 -154
  577. package/src/components/text-area.props.tsx +0 -3
  578. package/src/components/text-area.tsx +1 -3
  579. package/src/components/text-field.css +36 -244
  580. package/src/components/text-field.props.tsx +0 -3
  581. package/src/components/text-field.tsx +1 -3
  582. package/src/components/theme-panel.css +4 -4
  583. package/src/components/theme-panel.tsx +19 -236
  584. package/src/components/theme.props.tsx +0 -15
  585. package/src/components/theme.tsx +0 -35
  586. package/src/components/toolbar.css +9 -9
  587. package/src/components/toolbar.props.tsx +2 -1
  588. package/src/components/toolbar.tsx +5 -2
  589. package/src/components/tooltip.css +1 -1
  590. package/src/components/virtual-menu.tsx +2 -4
  591. package/src/styles/tokens/base.css +0 -2
  592. package/src/styles/tokens/color.css +4 -32
  593. package/src/styles/tokens/constants.css +23 -51
  594. package/src/styles/tokens/layout.css +1 -1
  595. package/src/styles/tokens/radius.css +24 -24
  596. package/src/styles/tokens/space.css +88 -21
  597. package/src/styles/tokens/typography.css +39 -39
  598. package/styles.css +2418 -3410
  599. package/tokens/base.css +229 -283
  600. package/tokens.css +252 -318
  601. package/dist/esm/chunk-23WDP4JG.js +0 -2
  602. package/dist/esm/chunk-23WDP4JG.js.map +0 -7
  603. package/dist/esm/chunk-2IWL4V4H.js +0 -2
  604. package/dist/esm/chunk-2IWL4V4H.js.map +0 -7
  605. package/dist/esm/chunk-2MYYU7ST.js +0 -2
  606. package/dist/esm/chunk-2MYYU7ST.js.map +0 -7
  607. package/dist/esm/chunk-2NNB4ZZ5.js +0 -2
  608. package/dist/esm/chunk-2NNB4ZZ5.js.map +0 -7
  609. package/dist/esm/chunk-2NNCZM7P.js +0 -2
  610. package/dist/esm/chunk-2NNCZM7P.js.map +0 -7
  611. package/dist/esm/chunk-3PT3AOD5.js +0 -2
  612. package/dist/esm/chunk-3PT3AOD5.js.map +0 -7
  613. package/dist/esm/chunk-4EBCFKNC.js +0 -2
  614. package/dist/esm/chunk-4EBCFKNC.js.map +0 -7
  615. package/dist/esm/chunk-5PG5YGIW.js +0 -2
  616. package/dist/esm/chunk-5PG5YGIW.js.map +0 -7
  617. package/dist/esm/chunk-BDOMLGLZ.js +0 -2
  618. package/dist/esm/chunk-BDOMLGLZ.js.map +0 -7
  619. package/dist/esm/chunk-CAUFRKTK.js +0 -2
  620. package/dist/esm/chunk-CAUFRKTK.js.map +0 -7
  621. package/dist/esm/chunk-CJ4UZDW5.js +0 -2
  622. package/dist/esm/chunk-CJ4UZDW5.js.map +0 -7
  623. package/dist/esm/chunk-DD5QHU6R.js +0 -2
  624. package/dist/esm/chunk-DD5QHU6R.js.map +0 -7
  625. package/dist/esm/chunk-DQTJMIRO.js +0 -2
  626. package/dist/esm/chunk-DQTJMIRO.js.map +0 -7
  627. package/dist/esm/chunk-E5DJILUI.js +0 -2
  628. package/dist/esm/chunk-E5DJILUI.js.map +0 -7
  629. package/dist/esm/chunk-EJG2UNTM.js +0 -2
  630. package/dist/esm/chunk-EJG2UNTM.js.map +0 -7
  631. package/dist/esm/chunk-FK6F6ROH.js +0 -2
  632. package/dist/esm/chunk-FK6F6ROH.js.map +0 -7
  633. package/dist/esm/chunk-HI3JY3DJ.js +0 -2
  634. package/dist/esm/chunk-HI3JY3DJ.js.map +0 -7
  635. package/dist/esm/chunk-IMYZP5OY.js +0 -2
  636. package/dist/esm/chunk-IMYZP5OY.js.map +0 -7
  637. package/dist/esm/chunk-IYXR46Q6.js +0 -5
  638. package/dist/esm/chunk-IYXR46Q6.js.map +0 -7
  639. package/dist/esm/chunk-JGB6LNTP.js +0 -2
  640. package/dist/esm/chunk-JGB6LNTP.js.map +0 -7
  641. package/dist/esm/chunk-JLHJHYVQ.js +0 -2
  642. package/dist/esm/chunk-JLHJHYVQ.js.map +0 -7
  643. package/dist/esm/chunk-LRFAOQK6.js +0 -2
  644. package/dist/esm/chunk-LRFAOQK6.js.map +0 -7
  645. package/dist/esm/chunk-LXSARUXD.js +0 -2
  646. package/dist/esm/chunk-LXSARUXD.js.map +0 -7
  647. package/dist/esm/chunk-MNC2O6QW.js +0 -2
  648. package/dist/esm/chunk-MOMYWKIO.js +0 -2
  649. package/dist/esm/chunk-MOMYWKIO.js.map +0 -7
  650. package/dist/esm/chunk-PRRJ4WRE.js +0 -2
  651. package/dist/esm/chunk-PRRJ4WRE.js.map +0 -7
  652. package/dist/esm/chunk-QE2EF7A7.js +0 -2
  653. package/dist/esm/chunk-QE2EF7A7.js.map +0 -7
  654. package/dist/esm/chunk-QJSSCW3B.js +0 -2
  655. package/dist/esm/chunk-QJSSCW3B.js.map +0 -7
  656. package/dist/esm/chunk-QPNYHS6A.js +0 -2
  657. package/dist/esm/chunk-QPNYHS6A.js.map +0 -7
  658. package/dist/esm/chunk-RA4U6VVZ.js +0 -2
  659. package/dist/esm/chunk-RA4U6VVZ.js.map +0 -7
  660. package/dist/esm/chunk-ULSNYQOY.js +0 -2
  661. package/dist/esm/chunk-ULSNYQOY.js.map +0 -7
  662. package/dist/esm/chunk-UPCRXJB2.js +0 -2
  663. package/dist/esm/chunk-URLG45A4.js +0 -2
  664. package/dist/esm/chunk-URLG45A4.js.map +0 -7
  665. package/dist/esm/chunk-UZS3BA2Z.js +0 -2
  666. package/dist/esm/chunk-UZS3BA2Z.js.map +0 -7
  667. package/dist/esm/chunk-W7VAP3WE.js +0 -2
  668. package/dist/esm/chunk-W7VAP3WE.js.map +0 -7
  669. package/dist/esm/chunk-WGNIFXUE.js +0 -2
  670. package/dist/esm/chunk-WGNIFXUE.js.map +0 -7
  671. package/dist/esm/chunk-WNSG5P3U.js +0 -2
  672. package/dist/esm/chunk-WNSG5P3U.js.map +0 -7
  673. package/dist/esm/chunk-X3UTLDGG.js +0 -2
  674. package/dist/esm/chunk-X3UTLDGG.js.map +0 -7
  675. package/dist/esm/chunk-XCDXQLWS.js +0 -2
  676. package/dist/esm/chunk-XCDXQLWS.js.map +0 -7
  677. package/dist/esm/chunk-XKAWVGBL.js +0 -2
  678. package/dist/esm/chunk-XKAWVGBL.js.map +0 -7
  679. package/dist/esm/chunk-Y3FVBAN2.js +0 -2
  680. package/dist/esm/chunk-Y3FVBAN2.js.map +0 -7
  681. package/dist/esm/chunk-YSHEXVBI.js +0 -10
  682. package/dist/esm/chunk-YSHEXVBI.js.map +0 -7
  683. package/dist/esm/chunk-Z2LGVLUB.js +0 -2
  684. package/dist/esm/chunk-Z2LGVLUB.js.map +0 -7
  685. package/src/styles/tokens/blur.css +0 -63
  686. package/src/styles/tokens/opacity.css +0 -32
  687. package/src/styles/tokens/scaling.css +0 -17
  688. /package/dist/esm/{chunk-MD3QCXRD.js.map → chunk-4STOJSJZ.js.map} +0 -0
  689. /package/dist/esm/{chunk-R4CN4Q3G.js.map → chunk-534LGOWC.js.map} +0 -0
  690. /package/dist/esm/{chunk-7UW7D77E.js.map → chunk-5UU2IMGX.js.map} +0 -0
  691. /package/dist/esm/{chunk-MQT3YJKY.js.map → chunk-6HRBG5H2.js.map} +0 -0
  692. /package/dist/esm/{chunk-PTEAQFHI.js.map → chunk-6WFEMPCF.js.map} +0 -0
  693. /package/dist/esm/{chunk-2PO6TZ7L.js.map → chunk-COSHAOEK.js.map} +0 -0
  694. /package/dist/esm/{chunk-F2XQYWBE.js.map → chunk-CRYT55SY.js.map} +0 -0
  695. /package/dist/esm/{chunk-ELZEAEN2.js.map → chunk-DP3OWU5T.js.map} +0 -0
  696. /package/dist/esm/{chunk-UI2EFF6F.js.map → chunk-E3754NJZ.js.map} +0 -0
  697. /package/dist/esm/{chunk-6ERCPRXX.js.map → chunk-FSKZAL5H.js.map} +0 -0
  698. /package/dist/esm/{chunk-YKGLZEXX.js.map → chunk-MJC4NKYG.js.map} +0 -0
  699. /package/dist/esm/{chunk-Y4IB7KDZ.js.map → chunk-MZQDDG5K.js.map} +0 -0
  700. /package/dist/esm/{chunk-DDYII5NA.js.map → chunk-NOSR2XWD.js.map} +0 -0
  701. /package/dist/esm/{chunk-J43ZS6TI.js.map → chunk-ORMCQAPS.js.map} +0 -0
  702. /package/dist/esm/{chunk-5RHODJDJ.js.map → chunk-X5KCVLKG.js.map} +0 -0
  703. /package/dist/esm/{chunk-PAB6HVKC.js.map → chunk-YZABQ4LS.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/sheet.tsx"],
4
+ "sourcesContent": ["'use client';\n\n/**\n * Sheet\n *\n * A side-placed overlay built on top of Radix Dialog. It inherits accessibility,\n * focus management, overlay behavior, and sizing scales from the base dialog, and\n * adds side placement and slide motion suited for navigation panels and drawers.\n *\n * Structure mirrors Dialog:\n * - Root, Trigger, Content, Title, Description, Close\n *\n * Notes\n * - Side: set with `side` on `Sheet.Content`. Aliases: `left` \u2192 `start`, `right` \u2192 `end`.\n * - Sizing: reuses Dialog content prop defs (width/min/max/height/size). Default Dialog\n * maxWidth clamping is removed for Sheets.\n * - A11y: provide an accessible name via `Sheet.Title` or `aria-label` on `Sheet.Content`.\n *\n * Example\n * <Sheet.Root>\n * <Sheet.Trigger>\n * <Button>Open</Button>\n * </Sheet.Trigger>\n * <Sheet.Content side=\"end\" width={{ initial: '280px', md: '360px' }}>\n * <Sheet.Title>Details</Sheet.Title>\n * ...\n * <Sheet.Close>\n * <Button>Close</Button>\n * </Sheet.Close>\n * </Sheet.Content>\n * </Sheet.Root>\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { dialogContentPropDefs } from './dialog.props.js';\nimport type { DialogContentOwnProps } from './dialog.props.js';\nimport { Theme } from './theme.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { HeadingProps } from './heading.js';\n\n/**\n * Supported sides for the Sheet.\n * Aliases are normalized RTL-aware: `left` \u2192 `start`, `right` \u2192 `end`.\n */\ntype SheetSide = 'start' | 'end' | 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Sheet is a side-placed overlay built on the Dialog primitive.\n * It reuses Dialog's accessibility, focus, overlay, and size scales, while adding side placement and slide motion.\n */\n\n// Root\n/**\n * Props for `Sheet.Root` (Radix Dialog root with `modal` forced on).\n */\ninterface SheetRootProps extends ComponentPropsWithout<typeof DialogPrimitive.Root, 'modal'> {}\nconst Root: React.FC<SheetRootProps> = (props) => <DialogPrimitive.Root {...props} modal />;\nRoot.displayName = 'Sheet.Root';\n\n// Trigger\n/** Element type for `Sheet.Trigger`. */\ntype SheetTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\n/** Props for `Sheet.Trigger` (expects a single element child). */\ninterface SheetTriggerProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Trigger, RemovedProps> {}\nconst Trigger = React.forwardRef<SheetTriggerElement, SheetTriggerProps>(\n ({ children, ...props }, ref) => (\n <DialogPrimitive.Trigger {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Trigger>\n ),\n);\nTrigger.displayName = 'Sheet.Trigger';\n\n// Content\n/** Element type for `Sheet.Content`. */\n// Reuse dialog content prop defs for size/width/height tokens.\n// Built once at module scope: `extractProps` memoises on the identity of the\n// prop def objects it is handed, so rebuilding these per render would recompile\n// them every time a sheet renders.\nconst {\n align: _alignPropDef,\n ...dialogPropDefsForSheet\n} = dialogContentPropDefs;\n\n// Override dialog's default maxWidth (600px) to avoid clamping Sheet by default\nconst { default: _mwDefault, ...maxWidthWithoutDefault } = dialogPropDefsForSheet.maxWidth;\nconst sheetPropDefs = {\n ...dialogPropDefsForSheet,\n maxWidth: maxWidthWithoutDefault,\n} as typeof dialogPropDefsForSheet;\n\ntype SheetContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ninterface SheetContentProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,\n DialogContentOwnProps {\n /** Side where the Sheet should appear. `left`/`right` alias to `start`/`end`. */\n side?: SheetSide;\n /** Optional DOM container to portal into. Defaults to `document.body`. */\n container?: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>['container'];\n}\n\n/**\n * Renders the Sheet panel. Normalizes left/right to logical start/end and\n * forwards dialog sizing props. Provide an accessible name via `Sheet.Title`\n * or `aria-label`.\n */\nconst Content = React.forwardRef<SheetContentElement, SheetContentProps>(\n (allProps, forwardedRef) => {\n const {\n side = 'start',\n forceMount,\n container,\n className,\n ...restProps\n } = allProps;\n const normalizedSideMap: Record<SheetSide, 'start' | 'end' | 'top' | 'bottom'> = {\n left: 'start',\n right: 'end',\n start: 'start',\n end: 'end',\n top: 'top',\n bottom: 'bottom',\n };\n const normalizedSide = normalizedSideMap[side];\n // Size/width/height class names come from the dialog defs \u2014 see `sheetPropDefs`.\n const { className: extractedClassName, ...contentProps } = extractProps(\n restProps,\n sheetPropDefs,\n );\n\n // Dev-only a11y guard: ensure label is provided via Title or aria-label\n if (process.env.NODE_ENV !== 'production') {\n const children = (contentProps as any).children as React.ReactNode;\n const hasAriaLabel = typeof (contentProps as any)['aria-label'] === 'string';\n let hasTitle = false;\n if (children) {\n for (const child of React.Children.toArray(children)) {\n if (React.isValidElement(child) && child.type === Title) {\n hasTitle = true;\n break;\n }\n }\n }\n if (!hasTitle && !hasAriaLabel) {\n console.warn(\n 'Sheet.Content: Missing accessible name. Include Sheet.Title as a child or provide aria-label.',\n );\n }\n }\n\n // Focus management and stuck pointer-events cleanup like Dialog\n const contentRef = React.useRef<HTMLDivElement>(null);\n const combinedRef = React.useMemo(\n () => (node: HTMLDivElement | null) => {\n contentRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [forwardedRef],\n );\n\n useBodyPointerEventsCleanup();\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n const content = contentRef.current;\n if (!content) return;\n\n const focusableElements = content.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n content.addEventListener('keydown', handleKeyDown);\n firstElement.focus();\n\n return () => {\n content.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n\n return (\n <DialogPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DialogPrimitive.Overlay className=\"rt-BaseDialogOverlay rt-DialogOverlay rt-SheetOverlay\">\n <DialogPrimitive.Content\n {...contentProps}\n ref={combinedRef}\n className={classNames(\n 'rt-BaseDialogContent',\n 'rt-SheetContent',\n className,\n extractedClassName,\n )}\n data-side={normalizedSide}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n />\n </DialogPrimitive.Overlay>\n </Theme>\n </DialogPrimitive.Portal>\n );\n },\n);\nContent.displayName = 'Sheet.Content';\n\n// Title - renders as Heading with sensible defaults\ntype SheetTitleElement = React.ElementRef<typeof Heading>;\ntype SheetTitleProps = HeadingProps;\n/** Accessible title for the Sheet. Renders as Heading with sensible defaults. */\nconst Title = React.forwardRef<SheetTitleElement, SheetTitleProps>(\n ({ size = '4', weight = 'medium', ...props }, ref) => (\n <DialogPrimitive.Title asChild>\n <Heading ref={ref} size={size} weight={weight} {...props} />\n </DialogPrimitive.Title>\n ),\n);\nTitle.displayName = 'Sheet.Title';\n\n// Description - renders as Text with sensible defaults\ntype SheetDescriptionElement = React.ElementRef<typeof Text>;\ntype SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof Text>;\n/** Supplementary description text for Sheet content. Renders as Text with sensible defaults. */\nconst Description = React.forwardRef<SheetDescriptionElement, SheetDescriptionProps>(\n ({ size = '2', emphasis = 'medium', ...rest }, ref) => (\n <DialogPrimitive.Description asChild>\n <Text ref={ref} size={size} emphasis={emphasis} {...rest} />\n </DialogPrimitive.Description>\n ),\n);\nDescription.displayName = 'Sheet.Description';\n\ntype SheetCloseElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface SheetCloseProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Close, RemovedProps> {}\n/** Close button for the Sheet. Expects a single element child rendered via `asChild`. */\nconst Close = React.forwardRef<SheetCloseElement, SheetCloseProps>(\n ({ children, ...props }, ref) => (\n <DialogPrimitive.Close {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Close>\n ),\n);\nClose.displayName = 'Sheet.Close';\n\nexport { Root, Trigger, Content, Title, Description, Close };\nexport type {\n SheetRootProps as RootProps,\n SheetTriggerProps as TriggerProps,\n SheetContentProps as ContentProps,\n SheetTitleProps as TitleProps,\n SheetDescriptionProps as DescriptionProps,\n SheetCloseProps as CloseProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["sheet_exports", "__export", "Close", "Content", "Description", "Root", "Title", "Trigger", "React", "classNames", "DialogPrimitive", "Root", "props", "DialogPrimitive", "Trigger", "children", "ref", "requireReactElement", "_alignPropDef", "dialogPropDefsForSheet", "dialogContentPropDefs", "_mwDefault", "maxWidthWithoutDefault", "sheetPropDefs", "Content", "allProps", "forwardedRef", "side", "forceMount", "container", "className", "restProps", "normalizedSide", "extractedClassName", "contentProps", "extractProps", "contentRef", "combinedRef", "node", "useBodyPointerEventsCleanup", "content", "focusableElements", "firstElement", "lastElement", "handleKeyDown", "event", "Theme", "classNames", "Title", "size", "weight", "Heading", "Description", "emphasis", "rest", "Text", "Close"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as u}from"./chunk-VK7RNXUO.js";import{a as l}from"./chunk-Y4IB7KDZ.js";import*as e from"react";import{Toggle as B}from"radix-ui";var d=e.forwardRef(({pressed:a,onPressedChange:g,defaultPressed:p,children:t,...s},f)=>{let{"aria-label":r,"aria-labelledby":o,iconOnly:i}=s,n=e.useRef(null);e.useEffect(()=>{n.current=null},[o]);let c=e.useCallback(()=>r||(o?(n.current===null&&(n.current=document.getElementById(o)?.textContent||"Toggle button"),n.current):typeof t=="string"?t:e.isValidElement(t)&&typeof t.props?.children=="string"?t.props.children:"Toggle button"),[r,o,t]),{handlePressedChange:m}=u({pressed:a,onPressedChange:g,getAccessibleName:c,componentName:i?"ToggleIconButton":"ToggleButton"});return e.createElement(B.Root,{pressed:a,onPressedChange:m,defaultPressed:p,asChild:!0},e.createElement(l,{...s,ref:f},t))});d.displayName="ToggleButton";export{d as a};
2
- //# sourceMappingURL=chunk-2PO6TZ7L.js.map
1
+ import{a as u}from"./chunk-VK7RNXUO.js";import{a as l}from"./chunk-MZQDDG5K.js";import*as e from"react";import{Toggle as B}from"radix-ui";var d=e.forwardRef(({pressed:a,onPressedChange:g,defaultPressed:p,children:t,...s},f)=>{let{"aria-label":r,"aria-labelledby":o,iconOnly:i}=s,n=e.useRef(null);e.useEffect(()=>{n.current=null},[o]);let c=e.useCallback(()=>r||(o?(n.current===null&&(n.current=document.getElementById(o)?.textContent||"Toggle button"),n.current):typeof t=="string"?t:e.isValidElement(t)&&typeof t.props?.children=="string"?t.props.children:"Toggle button"),[r,o,t]),{handlePressedChange:m}=u({pressed:a,onPressedChange:g,getAccessibleName:c,componentName:i?"ToggleIconButton":"ToggleButton"});return e.createElement(B.Root,{pressed:a,onPressedChange:m,defaultPressed:p,asChild:!0},e.createElement(l,{...s,ref:f},t))});d.displayName="ToggleButton";export{d as a};
2
+ //# sourceMappingURL=chunk-COSHAOEK.js.map
@@ -1,2 +1,2 @@
1
- import{a as e}from"./chunk-2PO6TZ7L.js";import*as o from"react";import"radix-ui";var r=o.forwardRef((t,n)=>o.createElement(e,{...t,iconOnly:!0,ref:n}));r.displayName="ToggleIconButton";export{r as a};
2
- //# sourceMappingURL=chunk-F2XQYWBE.js.map
1
+ import{a as e}from"./chunk-COSHAOEK.js";import*as o from"react";import"radix-ui";var r=o.forwardRef((t,n)=>o.createElement(e,{...t,iconOnly:!0,ref:n}));r.displayName="ToggleIconButton";export{r as a};
2
+ //# sourceMappingURL=chunk-CRYT55SY.js.map
@@ -0,0 +1,2 @@
1
+ import{a as A,b as f,c as g,d as R,e as y}from"./chunk-QOPRXQGR.js";import{a as i}from"./chunk-UBSLEGQZ.js";import{a as N}from"./chunk-OS3FCYZY.js";var h={};N(h,{Content:()=>E,Header:()=>T,Item:()=>C,Root:()=>u,Trigger:()=>v});import*as o from"react";import p from"classnames";import{Accordion as m}from"radix-ui";var u=o.forwardRef((r,t)=>{let{className:e,flush:c,radius:s,color:l,...a}=i(r,A),n=a;n.type==="single"&&n.collapsible===void 0&&(n.collapsible=!0);let H=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":l,"data-flush":c||void 0,"data-radius":s,onKeyDown:H})});u.displayName="Accordion.Root";var C=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,f);return o.createElement(m.Item,{...c,ref:t,className:p("rt-AccordionItem",e)})});C.displayName="Accordion.Item";var T=o.forwardRef((r,t)=>{let{className:e,...c}=i(r,g);return o.createElement(m.Header,{...c,ref:t,className:p("rt-AccordionHeader",e)})});T.displayName="Accordion.Header";var v=o.forwardRef(({children:r,...t},e)=>{let{className:c,...s}=i(t,R),l=o.useRef(null);return o.createElement(m.Trigger,{...s,ref:a=>{l.current=a,typeof e=="function"?e(a):e&&(e.current=a)},className:p("rt-AccordionTrigger",c)},r)});v.displayName="Accordion.Trigger";var E=o.forwardRef((r,t)=>{let{className:e,children:c,...s}=i(r,y);return o.createElement(m.Content,{...s,ref:t,className:p("rt-AccordionContent",e),"aria-live":"polite"},o.createElement("div",{className:"rt-AccordionContentInner"},c))});E.displayName="Accordion.Content";export{u as a,C as b,T as c,v as d,E as e,h as f};
2
+ //# sourceMappingURL=chunk-DKALDTCN.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/accordion.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Accordion as AccordionPrimitive } from 'radix-ui';\n\nimport {\n accordionRootPropDefs,\n accordionItemPropDefs,\n accordionHeaderPropDefs,\n accordionTriggerPropDefs,\n accordionContentPropDefs,\n} from './accordion.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\n\nimport type {\n AccordionRootOwnProps,\n AccordionItemOwnProps,\n AccordionHeaderOwnProps,\n AccordionTriggerOwnProps,\n AccordionContentOwnProps,\n} from './accordion.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\n// Root component\ntype AccordionRootElement = React.ElementRef<typeof AccordionPrimitive.Root>;\ninterface AccordionRootProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Root, RemovedProps>,\n AccordionRootOwnProps {}\n\nconst AccordionRoot = React.forwardRef<AccordionRootElement, AccordionRootProps>(\n (props, forwardedRef) => {\n const { className, flush, radius, color, ...extractedRadixProps } =\n extractProps(props, accordionRootPropDefs);\n\n const radixProps = extractedRadixProps as React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n >;\n\n\n // Ensure single accordions can collapse by default unless explicitly set\n if (radixProps.type === 'single' && radixProps.collapsible === undefined) {\n radixProps.collapsible = true;\n }\n\n // Handle Home/End key navigation for multi-item accordions\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (radixProps.type === 'multiple') {\n const items = event.currentTarget.querySelectorAll('[data-radix-accordion-item]');\n\n if (event.key === 'Home') {\n event.preventDefault();\n const firstTrigger = items[0]?.querySelector(\n '[data-radix-accordion-trigger]',\n ) as HTMLElement;\n firstTrigger?.focus();\n } else if (event.key === 'End') {\n event.preventDefault();\n const lastTrigger = items[items.length - 1]?.querySelector(\n '[data-radix-accordion-trigger]',\n ) as HTMLElement;\n lastTrigger?.focus();\n }\n }\n },\n [radixProps.type],\n );\n\n return (\n <AccordionPrimitive.Root\n {...radixProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionRoot', className)}\n data-accent-color={color}\n data-flush={flush || undefined}\n data-radius={radius}\n onKeyDown={handleKeyDown}\n />\n );\n },\n);\nAccordionRoot.displayName = 'Accordion.Root';\n\n// Item component\ntype AccordionItemElement = React.ElementRef<typeof AccordionPrimitive.Item>;\ninterface AccordionItemProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Item, RemovedProps>,\n AccordionItemOwnProps {}\n\nconst AccordionItem = React.forwardRef<AccordionItemElement, AccordionItemProps>(\n (props, forwardedRef) => {\n const { className, ...itemProps } = extractProps(props, accordionItemPropDefs);\n\n return (\n <AccordionPrimitive.Item\n {...itemProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionItem', className)}\n />\n );\n },\n);\nAccordionItem.displayName = 'Accordion.Item';\n\n// Header component\ntype AccordionHeaderElement = React.ElementRef<typeof AccordionPrimitive.Header>;\ninterface AccordionHeaderProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Header, RemovedProps>,\n AccordionHeaderOwnProps {}\n\nconst AccordionHeader = React.forwardRef<AccordionHeaderElement, AccordionHeaderProps>(\n (props, forwardedRef) => {\n const { className, ...headerProps } = extractProps(props, accordionHeaderPropDefs);\n\n return (\n <AccordionPrimitive.Header\n {...headerProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionHeader', className)}\n />\n );\n },\n);\nAccordionHeader.displayName = 'Accordion.Header';\n\n// Trigger component\ntype AccordionTriggerElement = React.ElementRef<typeof AccordionPrimitive.Trigger>;\ninterface AccordionTriggerProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Trigger, RemovedProps>,\n AccordionTriggerOwnProps {}\n\nconst AccordionTrigger = React.forwardRef<AccordionTriggerElement, AccordionTriggerProps>(\n ({ children, ...props }, forwardedRef) => {\n const { className, ...triggerProps } = extractProps(props, accordionTriggerPropDefs);\n\n // Radix UI handles focus management automatically\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n return (\n <AccordionPrimitive.Trigger\n {...triggerProps}\n ref={(node) => {\n triggerRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n }}\n className={classNames('rt-AccordionTrigger', className)}\n >\n {children}\n </AccordionPrimitive.Trigger>\n );\n },\n);\nAccordionTrigger.displayName = 'Accordion.Trigger';\n\n// Content component\ntype AccordionContentElement = React.ElementRef<typeof AccordionPrimitive.Content>;\ninterface AccordionContentProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Content, RemovedProps>,\n AccordionContentOwnProps {}\n\nconst AccordionContent = React.forwardRef<AccordionContentElement, AccordionContentProps>(\n (props, forwardedRef) => {\n const { className, children, ...contentProps } = extractProps(props, accordionContentPropDefs);\n\n return (\n <AccordionPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\n className={classNames('rt-AccordionContent', className)}\n aria-live=\"polite\"\n >\n <div className=\"rt-AccordionContentInner\">{children}</div>\n </AccordionPrimitive.Content>\n );\n },\n);\nAccordionContent.displayName = 'Accordion.Content';\n\nexport {\n AccordionRoot as Root,\n AccordionItem as Item,\n AccordionHeader as Header,\n AccordionTrigger as Trigger,\n AccordionContent as Content,\n};\n\nexport type {\n AccordionRootProps as RootProps,\n AccordionItemProps as ItemProps,\n AccordionHeaderProps as HeaderProps,\n AccordionTriggerProps as TriggerProps,\n AccordionContentProps as ContentProps,\n};\n"],
5
+ "mappings": "oJAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,EAAA,SAAAC,EAAA,SAAAC,EAAA,YAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,aAAaC,MAA0B,WA0BhD,IAAMC,EAAsB,aAC1B,CAACC,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,MAAAC,EAAO,OAAAC,EAAQ,MAAAC,EAAO,GAAGC,CAAoB,EAC9DC,EAAaP,EAAOQ,CAAqB,EAErCC,EAAaH,EAMfG,EAAW,OAAS,UAAYA,EAAW,cAAgB,SAC7DA,EAAW,YAAc,IAI3B,IAAMC,EAAsB,cACzBC,GAA+B,CAC9B,GAAIF,EAAW,OAAS,WAAY,CAClC,IAAMG,EAAQD,EAAM,cAAc,iBAAiB,6BAA6B,EAE5EA,EAAM,MAAQ,QAChBA,EAAM,eAAe,EACAC,EAAM,CAAC,GAAG,cAC7B,gCACF,GACc,MAAM,GACXD,EAAM,MAAQ,QACvBA,EAAM,eAAe,EACDC,EAAMA,EAAM,OAAS,CAAC,GAAG,cAC3C,gCACF,GACa,MAAM,EAEvB,CACF,EACA,CAACH,EAAW,IAAI,CAClB,EAEA,OACE,gBAACI,EAAmB,KAAnB,CACE,GAAGJ,EACJ,IAAKR,EACL,UAAWa,EAAW,mBAAoBZ,CAAS,EACnD,oBAAmBG,EACnB,aAAYF,GAAS,OACrB,cAAaC,EACb,UAAWM,EACb,CAEJ,CACF,EACAX,EAAc,YAAc,iBAQ5B,IAAMgB,EAAsB,aAC1B,CAACf,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,GAAGc,CAAU,EAAIT,EAAaP,EAAOiB,CAAqB,EAE7E,OACE,gBAACJ,EAAmB,KAAnB,CACE,GAAGG,EACJ,IAAKf,EACL,UAAWa,EAAW,mBAAoBZ,CAAS,EACrD,CAEJ,CACF,EACAa,EAAc,YAAc,iBAQ5B,IAAMG,EAAwB,aAC5B,CAAClB,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,GAAGiB,CAAY,EAAIZ,EAAaP,EAAOoB,CAAuB,EAEjF,OACE,gBAACP,EAAmB,OAAnB,CACE,GAAGM,EACJ,IAAKlB,EACL,UAAWa,EAAW,qBAAsBZ,CAAS,EACvD,CAEJ,CACF,EACAgB,EAAgB,YAAc,mBAQ9B,IAAMG,EAAyB,aAC7B,CAAC,CAAE,SAAAC,EAAU,GAAGtB,CAAM,EAAGC,IAAiB,CACxC,GAAM,CAAE,UAAAC,EAAW,GAAGqB,CAAa,EAAIhB,EAAaP,EAAOwB,CAAwB,EAG7EC,EAAmB,SAA0B,IAAI,EAEvD,OACE,gBAACZ,EAAmB,QAAnB,CACE,GAAGU,EACJ,IAAMG,GAAS,CACbD,EAAW,QAAUC,EACjB,OAAOzB,GAAiB,WAC1BA,EAAayB,CAAI,EACRzB,IACTA,EAAa,QAAUyB,EAE3B,EACA,UAAWZ,EAAW,sBAAuBZ,CAAS,GAErDoB,CACH,CAEJ,CACF,EACAD,EAAiB,YAAc,oBAQ/B,IAAMM,EAAyB,aAC7B,CAAC3B,EAAOC,IAAiB,CACvB,GAAM,CAAE,UAAAC,EAAW,SAAAoB,EAAU,GAAGM,CAAa,EAAIrB,EAAaP,EAAO6B,CAAwB,EAE7F,OACE,gBAAChB,EAAmB,QAAnB,CACE,GAAGe,EACJ,IAAK3B,EACL,UAAWa,EAAW,sBAAuBZ,CAAS,EACtD,YAAU,UAEV,gBAAC,OAAI,UAAU,4BAA4BoB,CAAS,CACtD,CAEJ,CACF,EACAK,EAAiB,YAAc",
6
+ "names": ["accordion_exports", "__export", "AccordionContent", "AccordionHeader", "AccordionItem", "AccordionRoot", "AccordionTrigger", "React", "classNames", "AccordionPrimitive", "AccordionRoot", "props", "forwardedRef", "className", "flush", "radius", "color", "extractedRadixProps", "extractProps", "accordionRootPropDefs", "radixProps", "handleKeyDown", "event", "items", "AccordionPrimitive", "classNames", "AccordionItem", "itemProps", "accordionItemPropDefs", "AccordionHeader", "headerProps", "accordionHeaderPropDefs", "AccordionTrigger", "children", "triggerProps", "accordionTriggerPropDefs", "triggerRef", "node", "AccordionContent", "contentProps", "accordionContentPropDefs"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as r}from"./chunk-BPVVFHYD.js";import{a as p}from"./chunk-O6K6RZXY.js";import{c as i}from"./chunk-PRRJ4WRE.js";import{a as e}from"./chunk-UBSLEGQZ.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-ELZEAEN2.js.map
1
+ import{a as r}from"./chunk-BPVVFHYD.js";import{c as p}from"./chunk-2HUAVZZL.js";import{a as i}from"./chunk-O6K6RZXY.js";import{a as e}from"./chunk-UBSLEGQZ.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(p,{asChild:!0},o.createElement(t.Content,{sideOffset:4,collisionPadding:10,...y,asChild:!1,ref:s,className:v("rt-TooltipContent",m)},o.createElement(i,{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-DP3OWU5T.js.map
@@ -1,2 +1,2 @@
1
- import{a as o}from"./chunk-5PG5YGIW.js";import{z as t}from"zod";var l=o.extend({tooltip:t.string().optional().describe("Content to display in the tooltip on hover/focus"),tooltipSide:t.enum(["top","right","bottom","left"]).optional().default("top").describe("Side of the button where the tooltip should appear"),emphasis:t.enum(["loud","medium","quiet"]).optional().describe("The button's rank: loud (solid), medium (raised) or quiet (ghost). Not with variant."),iconOnly:t.boolean().optional().default(!1).describe("Square button holding only an icon; needs aria-label"),fullWidth:t.boolean().optional().default(!1).describe("Expands the button to fill its container"),tooltipAlign:t.enum(["start","center","end"]).optional().default("center").describe("Alignment of the tooltip relative to the button"),tooltipDelayDuration:t.number().optional().describe("Delay before showing the tooltip (in milliseconds)"),tooltipDisableHoverableContent:t.boolean().optional().default(!1).describe("Whether to disable hoverable content behavior")}).strict();function a(e){return e}export{l as a,a as b};
2
- //# sourceMappingURL=chunk-UI2EFF6F.js.map
1
+ import{a as o}from"./chunk-CC4GNSKL.js";import{z as t}from"zod";var l=o.extend({tooltip:t.string().optional().describe("Content to display in the tooltip on hover/focus"),tooltipSide:t.enum(["top","right","bottom","left"]).optional().default("top").describe("Side of the button where the tooltip should appear"),emphasis:t.enum(["loud","medium","quiet"]).optional().describe("The button's rank: loud (solid), medium (raised) or quiet (ghost). Not with variant."),iconOnly:t.boolean().optional().default(!1).describe("Square button holding only an icon; needs aria-label"),fullWidth:t.boolean().optional().default(!1).describe("Expands the button to fill its container"),tooltipAlign:t.enum(["start","center","end"]).optional().default("center").describe("Alignment of the tooltip relative to the button"),tooltipDelayDuration:t.number().optional().describe("Delay before showing the tooltip (in milliseconds)"),tooltipDisableHoverableContent:t.boolean().optional().default(!1).describe("Whether to disable hoverable content behavior")}).strict();function a(e){return e}export{l as a,a as b};
2
+ //# sourceMappingURL=chunk-E3754NJZ.js.map
@@ -0,0 +1,2 @@
1
+ import{a as Z}from"./chunk-IF4PYIUV.js";import{b as X,c as $,d as G,e as J,f as Q}from"./chunk-IX5HIHVI.js";import{a as q}from"./chunk-MJJ7XDIP.js";import{b as Y,c as O}from"./chunk-2HUAVZZL.js";import{c as B}from"./chunk-RSJSVJ6A.js";import{a as k}from"./chunk-HKRQ3E3I.js";import{b as h,c as y,d as z,e as K,f as W}from"./chunk-EUSKAXHP.js";import{b as S,c as V,d as T,e as x}from"./chunk-WKMJIWFP.js";import{a as v}from"./chunk-UBSLEGQZ.js";import{a as P,b as I,c as A,d as F,e as E,f as j,g as H,h as U,i as N}from"./chunk-JSW6J6RS.js";import{a as Ie}from"./chunk-OS3FCYZY.js";var Ee={};Ie(Ee,{CheckboxItem:()=>le,Content:()=>ae,Group:()=>se,Item:()=>pe,Label:()=>ie,RadioGroup:()=>ue,RadioItem:()=>de,Root:()=>ne,Separator:()=>we,Sub:()=>ce,SubContent:()=>De,SubTrigger:()=>me,Trigger:()=>re,TriggerIcon:()=>Pe,Virtual:()=>Z});import*as e from"react";import u from"classnames";import{DropdownMenu as s,Slot as ve}from"radix-ui";import{useCallbackRef as ee}from"radix-ui/internal";var oe=e.createContext(!1),ne=o=>{let{open:n,defaultOpen:r=!1,onOpenChange:a}=o,[i,t]=e.useState(r),p=n??i,d=ee(a),l=e.useCallback(m=>{t(m),d(m)},[d]);return e.createElement(oe.Provider,{value:p},e.createElement(s.Root,{...o,onOpenChange:l}))};ne.displayName="DropdownMenu.Root";var re=e.forwardRef(({children:o,...n},r)=>e.createElement(s.Trigger,{...n,ref:r,asChild:!0},q(o)));re.displayName="DropdownMenu.Trigger";var L=e.createContext({}),he={ltr:"ArrowLeft",rtl:"ArrowRight"},ye={ltr:"ArrowRight",rtl:"ArrowLeft"};function Se(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function te(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var ae=e.forwardRef((o,n)=>{let r=Y(),{size:a=h.size.default}=o,{className:i,children:t,color:p,container:d,forceMount:l,submenuBehavior:m,virtualized:w=!1,onEscapeKeyDown:c,onKeyDown:R,...C}=v(o,h),M=p||r.accentColor,f=S(m,"cascade"),g=f==="drill-down",Re=e.useContext(oe),b=A(),Ce=D=>{c?.(D),!(D.defaultPrevented||!g||b.getDepth()===0)&&(D.preventDefault(),b.pop("keyboard"))},ge=D=>{R?.(D),!(D.defaultPrevented||!g||b.getDepth()===0)&&(Se(D.target)||D.key===he[te(D.currentTarget)]&&(D.preventDefault(),b.pop("keyboard")))},be=e.useMemo(()=>({size:a,color:M}),[a,M]),_=e.createElement(B,{size:a},e.createElement(L.Provider,{value:be},e.createElement(F,{store:b,behavior:f,open:Re},t)));return e.createElement(s.Portal,{container:d,forceMount:l},e.createElement(O,{asChild:!0},e.createElement(s.Content,{"data-accent-color":M,align:"start",sideOffset:4,collisionPadding:10,...C,onEscapeKeyDown:Ce,onKeyDown:ge,asChild:!1,ref:n,className:u("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-DropdownMenuContent",i)},w?e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},_):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport")},_)))))});ae.displayName="DropdownMenu.Content";var ie=e.forwardRef(({className:o,...n},r)=>e.useContext(P)?e.createElement(s.Label,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuLabel","rt-DropdownMenuLabel",o)}):null);ie.displayName="DropdownMenu.Label";var pe=e.forwardRef((o,n)=>{let{className:r,children:a,color:i=z.color.default,shortcut:t,...p}=o;return e.useContext(P)?e.createElement(s.Item,{"data-accent-color":i,"aria-keyshortcuts":t?T(t):void 0,...p,ref:n,className:u("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",r)},e.createElement(ve.Slottable,null,a),t&&e.createElement(x,{shortcut:t,className:"rt-DropdownMenuShortcut"})):null});pe.displayName="DropdownMenu.Item";var se=e.forwardRef(({className:o,...n},r)=>e.createElement(s.Group,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuGroup","rt-DropdownMenuGroup",o)}));se.displayName="DropdownMenu.Group";var ue=e.forwardRef(({className:o,...n},r)=>e.createElement(s.RadioGroup,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",o)}));ue.displayName="DropdownMenu.RadioGroup";var de=e.forwardRef((o,n)=>{let{children:r,className:a,color:i=W.color.default,...t}=o;return e.useContext(P)?e.createElement(s.RadioItem,{...t,asChild:!1,ref:n,"data-accent-color":i,className:u("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",a)},r,e.createElement(s.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(Q,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"}))):null});de.displayName="DropdownMenu.RadioItem";var le=e.forwardRef((o,n)=>{let{children:r,className:a,shortcut:i,color:t=K.color.default,...p}=o;return e.useContext(P)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":i?T(i):void 0,...p,asChild:!1,ref:n,"data-accent-color":t,className:u("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",a)},r,e.createElement(s.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(X,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(x,{shortcut:i,className:"rt-DropdownMenuShortcut"})):null});le.displayName="DropdownMenu.CheckboxItem";var ce=({label:o="Back",open:n,defaultOpen:r,onOpenChange:a,children:i})=>{let t=I(),p=e.useId(),d=e.useMemo(()=>({id:p,label:o}),[p,o]),l=E(t,p)!=="closed";e.useLayoutEffect(()=>{!t||n===void 0||(n&&!t.isOpen(p)?t.push(p,null):!n&&t.isOpen(p)&&t.close(p))},[t,n,p]);let m=e.useRef(r);e.useLayoutEffect(()=>{t&&m.current&&n===void 0&&t.push(p,null)},[]);let w=ee(a),c=e.useRef(l);return e.useEffect(()=>{!t||c.current===l||(c.current=l,w(l))},[t,l,w]),e.createElement(U.Provider,{value:d},e.createElement(s.Sub,{open:n,defaultOpen:r,onOpenChange:t?void 0:a},i))};ce.displayName="DropdownMenu.Sub";var me=e.forwardRef((o,n)=>{let{className:r,children:a,onKeyDown:i,...t}=o,p=I(),d=N(),l=e.useContext(P);if(p&&d){if(!l)return null;let m=c=>{c.preventDefault(),p.push(d.id)},w=c=>{i?.(c),!(c.defaultPrevented||t.disabled)&&c.key===ye[te(c.currentTarget)]&&(c.preventDefault(),p.push(d.id,"keyboard"))};return e.createElement(s.Item,{"aria-haspopup":"menu",...t,"data-drill-down-trigger":d.id,"data-drill-down-name":t.textValue,onSelect:m,onKeyDown:w,ref:n,className:u("rt-reset","rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger","rt-DropdownMenuDrillDownSubTrigger",r)},a,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(G,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...t,onKeyDown:i,asChild:!1,ref:n,className:u("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",r)},a,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(G,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))});me.displayName="DropdownMenu.SubTrigger";var we=e.forwardRef(({className:o,...n},r)=>e.useContext(P)?e.createElement(s.Separator,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",o)}):null);we.displayName="DropdownMenu.Separator";function Te({label:o,name:n}){let r=I(),a=e.useCallback(p=>{p.preventDefault(),r?.pop()},[r]),i=typeof o=="string"?o:n,t=i&&i!=="Back"?`Back from ${i}`:void 0;return e.createElement(s.Item,{"aria-label":t,textValue:i||"Back",onSelect:a,className:u("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem","rt-DropdownMenuDrillDownBackItem")},e.createElement(J,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"rt-DropdownMenuDrillDownBackLabel"},o))}function xe(o){let{loop:n,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:t,sideOffset:p,alignOffset:d,avoidCollisions:l,collisionBoundary:m,collisionPadding:w,arrowPadding:c,sticky:R,hideWhenDetached:C,updatePositionStrategy:M,...f}=o;return f}var De=e.forwardRef((o,n)=>{let r=I(),a=N();return r&&a?e.createElement(fe,{...o,ref:n,store:r,sub:a}):e.createElement(Me,{...o,ref:n})});De.displayName="DropdownMenu.SubContent";var Me=e.forwardRef((o,n)=>{let r=e.useContext(L),a=o.size??r.size,i=o.color??r.color,{className:t,children:p,container:d,forceMount:l,color:m,virtualized:w=!1,...c}=v({...o,size:a},y),R=S(a,y.size.default),C=e.useMemo(()=>({size:a,color:i}),[a,i]),M=e.createElement(B,{size:a},e.createElement(L.Provider,{value:C},p));return e.createElement(s.Portal,{container:d,forceMount:l},e.createElement(O,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":i,alignOffset:V(R),sideOffset:1,collisionPadding:10,...c,asChild:!1,ref:n,className:u("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",t)},w?e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},M):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport")},M)))))});Me.displayName="DropdownMenu.CascadeSubContent";var fe=e.forwardRef(({store:o,sub:n,...r},a)=>{let i=E(o,n.id),t=j(o,n.id),p=H(i==="top"?o:null);if(i==="closed")return null;let{className:d,children:l,container:m,forceMount:w,virtualized:c,size:R,color:C,...M}=xe(r),f=i==="top",g=t?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":g||void 0,...M,ref:a,"data-drill-down-panel":n.id,"data-drill-down-active":f?!0:void 0,"data-animation-direction":f?p??void 0:void 0,className:u("rt-DropdownMenuDrillDownPanel",d)},f&&e.createElement(e.Fragment,null,e.createElement(Te,{label:n.label,name:g}),e.createElement(s.Separator,{className:"rt-BaseMenuSeparator rt-DropdownMenuSeparator"})),e.createElement(P.Provider,{value:f},l))});fe.displayName="DropdownMenu.DrillDownPanel";var Pe=e.forwardRef(({className:o,...n},r)=>e.createElement($,{...n,ref:r,className:u("rt-DropdownMenuTriggerIcon",o)}));Pe.displayName="DropdownMenu.TriggerIcon";export{ne as a,re as b,ae as c,ie as d,pe as e,se as f,ue as g,de as h,le as i,ce as j,me as k,we as l,De as m,Pe as n,Ee as o};
2
+ //# sourceMappingURL=chunk-EJOVE3JH.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/dropdown-menu.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport { VirtualMenu } from './virtual-menu.js';\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 toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\nimport { requireReactElement } from '../helpers/require-react-element.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 color?: DropdownMenuSurfaceProps['color'];\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 const {\n size = dropdownMenuContentPropDefs.size.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\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, color: resolvedColor }),\n [size, resolvedColor],\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 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-variant-soft',\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\n // A submenu inherits the parent surface, and its own props win.\n const size = props.size ?? parent.size;\n const color = props.color ?? parent.color;\n\n const {\n className,\n children,\n container,\n forceMount,\n color: _color,\n virtualized = false,\n ...subContentProps\n } = extractProps({ ...props, size }, dropdownMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, dropdownMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color }),\n [size, color],\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 alignOffset={getMenuAlignOffset(scalarSize)}\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-variant-soft',\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 color: _color,\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 VirtualMenu as Virtual,\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", "VirtualMenu", "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", "size", "baseMenuContentPropDefs", "className", "color", "container", "forceMount", "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", "panelProps", "isTop", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as o}from"./chunk-VX44UTQ5.js";import{a as e}from"./chunk-ERGJN7FJ.js";import{a as t}from"./chunk-NZJGC6ZW.js";var p=["1","2","3","4"],f={...t,size:{type:"enum",className:"rt-r-size",values:p,default:"2",responsive:!0},width:e.width,minWidth:e.minWidth,maxWidth:{...e.maxWidth,default:"480px"},...o};export{f as a};
2
+ //# sourceMappingURL=chunk-ENPQJYXZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/popover.props.tsx"],
4
+ "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { heightPropDefs } from '../props/height.props.js';\nimport { widthPropDefs } from '../props/width.props.js';\n\nimport type { PropDef, GetPropDefTypes } from '../props/prop-def.js';\n\nconst contentSizes = ['1', '2', '3', '4'] as const;\n\nconst popoverContentPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: contentSizes,\n default: '2',\n responsive: true,\n },\n width: widthPropDefs.width,\n minWidth: widthPropDefs.minWidth,\n maxWidth: { ...widthPropDefs.maxWidth, default: '480px' },\n ...heightPropDefs,\n} satisfies {\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n size: PropDef<(typeof contentSizes)[number]>;\n};\n\ntype PopoverContentOwnProps = GetPropDefTypes<\n typeof popoverContentPropDefs &\n typeof asChildPropDef &\n typeof widthPropDefs &\n typeof heightPropDefs\n>;\n\nexport { popoverContentPropDefs };\nexport type { PopoverContentOwnProps };\n"],
5
+ "mappings": "wHAMA,IAAMA,EAAe,CAAC,IAAK,IAAK,IAAK,GAAG,EAElCC,EAAyB,CAC7B,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,EACR,QAAS,IACT,WAAY,EACd,EACA,MAAOG,EAAc,MACrB,SAAUA,EAAc,SACxB,SAAU,CAAE,GAAGA,EAAc,SAAU,QAAS,OAAQ,EACxD,GAAGC,CACL",
6
+ "names": ["contentSizes", "popoverContentPropDefs", "asChildPropDef", "widthPropDefs", "heightPropDefs"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as e}from"./chunk-HAGKI7NA.js";import{a as s}from"./chunk-RJ6SA7AY.js";import{a as r}from"./chunk-NZJGC6ZW.js";import{c as o}from"./chunk-34KVYDF6.js";var a=["1","2","3","4","5"],p=s.variant.values,n={...r,size:{type:"enum",className:"rt-r-size",values:a,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:p,default:"raised"},...o,columns:{...e.columns,default:"repeat(auto-fit, minmax(200px, 1fr))"},gap:{...e.gap,default:"4"}};export{n as a};
2
+ //# sourceMappingURL=chunk-EO7WQYFO.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/checkbox-cards.props.tsx"],
4
+ "sourcesContent": ["import { cardPropDefs } from './card.props.js';\nimport { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { gridPropDefs } from './grid.props.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5'] as const;\n// The same list as Card: a selectable card looks like any other card.\nconst variants = cardPropDefs.variant.values;\n\nconst checkboxCardsRootPropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'raised' },\n ...colorPropDef,\n columns: { ...gridPropDefs.columns, default: 'repeat(auto-fit, minmax(200px, 1fr))' },\n gap: { ...gridPropDefs.gap, default: '4' },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n columns: PropDef<(typeof gridPropDefs.columns.values)[number]>;\n gap: PropDef<(typeof gridPropDefs.gap.values)[number]>;\n};\n\nexport { checkboxCardsRootPropDefs };\n"],
5
+ "mappings": "gKAOA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,EAEhCC,EAAWC,EAAa,QAAQ,OAEhCC,EAA4B,CAChC,GAAGC,EACH,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQJ,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,QAAS,EACtF,GAAGI,EACH,QAAS,CAAE,GAAGC,EAAa,QAAS,QAAS,sCAAuC,EACpF,IAAK,CAAE,GAAGA,EAAa,IAAK,QAAS,GAAI,CAC3C",
6
+ "names": ["sizes", "variants", "cardPropDefs", "checkboxCardsRootPropDefs", "asChildPropDef", "colorPropDef", "gridPropDefs"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as s}from"./chunk-NZJGC6ZW.js";import{c as e}from"./chunk-34KVYDF6.js";var t=["1","2"],r=["cascade","drill-down"],o={size:{type:"enum",className:"rt-r-size",values:t,default:"2",responsive:!0},...e},i={...o,submenuBehavior:{type:"enum",values:r,default:"cascade",responsive:!0}},u=o,a={...s,...e,shortcut:{type:"string"}},f={...e,shortcut:{type:"string"}},c={...e};export{r as a,i as b,u as c,a as d,f as e,c as f};
2
+ //# sourceMappingURL=chunk-EUSKAXHP.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/_internal/base-menu.props.ts"],
4
+ "sourcesContent": ["import { asChildPropDef } from '../../props/as-child.prop.js';\nimport { colorPropDef } from '../../props/color.prop.js';\n\nimport type { PropDef } from '../../props/prop-def.js';\n\nconst contentSizes = ['1', '2'] as const;\nconst submenuBehaviors = ['cascade', 'drill-down'] as const;\n\n// Base props shared between Content and SubContent\nconst baseMenuSharedPropDefs = {\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: contentSizes,\n default: '2',\n responsive: true,\n },\n ...colorPropDef,\n} satisfies {\n size: PropDef<(typeof contentSizes)[number]>;\n};\n\n// Content-specific props (includes submenuBehavior)\nconst baseMenuContentPropDefs = {\n ...baseMenuSharedPropDefs,\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: {\n type: 'enum',\n values: submenuBehaviors,\n default: 'cascade',\n responsive: true,\n },\n} satisfies {\n size: PropDef<(typeof contentSizes)[number]>;\n submenuBehavior: PropDef<(typeof submenuBehaviors)[number]>;\n};\n\n// SubContent props (no submenuBehavior)\nconst baseMenuSubContentPropDefs = baseMenuSharedPropDefs;\n\nconst baseMenuItemPropDefs = {\n ...asChildPropDef,\n ...colorPropDef,\n shortcut: { type: 'string' },\n} satisfies {\n shortcut: PropDef<string>;\n};\n\nconst baseMenuCheckboxItemPropDefs = {\n ...colorPropDef,\n shortcut: { type: 'string' },\n} satisfies {\n shortcut: PropDef<string>;\n};\n\nconst baseMenuRadioItemPropDefs = {\n ...colorPropDef,\n};\n\nexport {\n baseMenuContentPropDefs,\n baseMenuSubContentPropDefs,\n baseMenuItemPropDefs,\n baseMenuCheckboxItemPropDefs,\n baseMenuRadioItemPropDefs,\n submenuBehaviors,\n};\n"],
5
+ "mappings": "gFAKA,IAAMA,EAAe,CAAC,IAAK,GAAG,EACxBC,EAAmB,CAAC,UAAW,YAAY,EAG3CC,EAAyB,CAC7B,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,EACR,QAAS,IACT,WAAY,EACd,EACA,GAAGG,CACL,EAKMC,EAA0B,CAC9B,GAAGF,EAOH,gBAAiB,CACf,KAAM,OACN,OAAQD,EACR,QAAS,UACT,WAAY,EACd,CACF,EAMMI,EAA6BH,EAE7BI,EAAuB,CAC3B,GAAGC,EACH,GAAGJ,EACH,SAAU,CAAE,KAAM,QAAS,CAC7B,EAIMK,EAA+B,CACnC,GAAGL,EACH,SAAU,CAAE,KAAM,QAAS,CAC7B,EAIMM,EAA4B,CAChC,GAAGN,CACL",
6
+ "names": ["contentSizes", "submenuBehaviors", "baseMenuSharedPropDefs", "colorPropDef", "baseMenuContentPropDefs", "baseMenuSubContentPropDefs", "baseMenuItemPropDefs", "asChildPropDef", "baseMenuCheckboxItemPropDefs", "baseMenuRadioItemPropDefs"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as b}from"./chunk-K7VO7TND.js";import{a as S}from"./chunk-6HRBG5H2.js";import{a as v}from"./chunk-MZQDDG5K.js";import{a as x}from"./chunk-O6K6RZXY.js";import{f as B}from"./chunk-SM27AC7E.js";import{a as R}from"./chunk-UBSLEGQZ.js";import{a as y}from"./chunk-GSTOGDAJ.js";import*as o from"react";import T from"classnames";import{Toolbar as P}from"radix-ui";var C=o.createContext(null),G=o.createContext(null);function u(t){let r=o.useContext(C);if(!r)throw new Error(`${t} must be rendered inside a Toolbar.`);return r}var m=o.forwardRef((t,r)=>{let e=B(),a=t.size??e??b.size.default,s=t.orientation??b.orientation.default,{className:n,orientation:l,backdrop:i=!1,children:c,...d}=R({...t,size:a},b,y),p=o.useMemo(()=>({size:a,orientation:s,backdrop:i}),[a,s,i]);return o.createElement(P.Root,{...d,ref:r,orientation:s,"data-backdrop":i||void 0,className:T("rt-Toolbar",n)},o.createElement(C.Provider,{value:p},c))});m.displayName="Toolbar";var N=o.forwardRef(({className:t,disabled:r=!1,children:e,...a},s)=>{let{orientation:n}=u("ToolbarGroup"),l=o.useMemo(()=>({disabled:r}),[r]);return o.createElement("div",{role:"group","data-orientation":n,"data-disabled":r||void 0,...a,ref:s,className:T("rt-ToolbarGroup",t)},o.createElement(G.Provider,{value:l},e))});N.displayName="Toolbar.Group";function w(t){return t===!0||t==="true"}var z=o.forwardRef((t,r)=>{let e=u("ToolbarButton"),a=o.useContext(G),{iconOnly:s,size:n,variant:l,emphasis:i,color:c,disabled:d,...p}=t,O=w(t["aria-pressed"]),D="data-state"in t||t["aria-pressed"]===void 0?{}:{"data-state":O?"on":"off"},f={size:n??e.size,...i!==void 0?{emphasis:i}:{variant:l??(a?"ghost":e.backdrop?"raised":"soft")},color:c??(l||i?void 0:"gray"),...D};return o.createElement(P.Button,{asChild:!0,ref:r,disabled:d||a?.disabled||void 0},s?o.createElement(S,{...p,...f}):o.createElement(v,{...p,...f}))});z.displayName="Toolbar.Button";var g=o.forwardRef(({className:t,...r},e)=>(u("ToolbarSeparator"),o.createElement(P.Separator,{...r,ref:e,className:T("rt-ToolbarSeparator",t)})));g.displayName="Toolbar.Separator";var M={1:"2",2:"3",3:"4",4:"5"},h=o.forwardRef(({className:t,children:r,style:e,id:a},s)=>{let{size:n}=u("ToolbarTitle");return r==null||r===!1?null:o.createElement(x,{ref:s,as:"span",size:M[n],weight:"medium",truncate:!0,id:a,style:e,className:T("rt-ToolbarTitle",t)},r)});h.displayName="Toolbar.Title";var _=Object.assign(m,{Root:m,Group:N,Button:z,Separator:g,Title:h});export{m as a,N as b,z as c,g as d,h as e,_ as f};
2
+ //# sourceMappingURL=chunk-FPDLBLO3.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/toolbar.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Toolbar as ToolbarPrimitive } from 'radix-ui';\n\nimport { toolbarRootPropDefs } from './toolbar.props.js';\nimport { Button } from './button.js';\nimport { IconButton } from './icon-button.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { usePaneBandSize } from './_internal/pane-chrome.js';\n\nimport type { ButtonProps } from './button.js';\nimport type { TextProps } from './text.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ButtonRankProps } from './button.js';\n\n/*\n * Toolbar takes Kookie UI v2's contract (v2: components/toolbar), built on Radix instead of\n * Base UI. A toolbar is a row of controls with ONE tab stop: `role=\"toolbar\"`, and the arrow\n * keys move focus between its controls. That keyboard is the reason it is a component.\n *\n * Its `size` reaches every control inside it that does not state its own. The row itself paints\n * nothing; a `ToolbarGroup` draws a quiet well around controls that belong together, and a\n * `ToolbarSeparator` draws a gray hairline between clusters. Use a `Flex` to cluster controls\n * without a well: the row spaces the clusters with `space-between`.\n */\n\ntype ToolbarSize = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['size']>;\ntype ToolbarOrientation = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['orientation']>;\n\ninterface ToolbarContextValue {\n size: ToolbarSize;\n orientation: ToolbarOrientation;\n backdrop: boolean;\n}\n\nconst ToolbarContext = React.createContext<ToolbarContextValue | null>(null);\n\n/** Set by a `ToolbarGroup`: its children rest quiet, and `disabled` turns them all off. */\nconst ToolbarGroupContext = React.createContext<{ disabled: boolean } | null>(null);\n\nfunction useToolbarContext(consumer: string): ToolbarContextValue {\n const context = React.useContext(ToolbarContext);\n if (!context) {\n throw new Error(`${consumer} must be rendered inside a Toolbar.`);\n }\n return context;\n}\n\n// ============================================================================\n// Toolbar (root)\n// ============================================================================\n\ntype ToolbarOwnProps = GetPropDefTypes<typeof toolbarRootPropDefs>;\n\ninterface ToolbarProps\n extends ComponentPropsWithout<typeof ToolbarPrimitive.Root, RemovedProps | 'orientation'>,\n ToolbarOwnProps,\n MarginProps {\n /**\n * Gives every control a surface of its own, for a row that content passes behind, such as\n * `Shell.PaneHeader float`. Buttons rest `raised` instead of `soft`, and a group's well is\n * solid and raised.\n */\n backdrop?: boolean;\n}\n\n/**\n * A row of controls with one keyboard tab stop. The arrow keys move focus between the controls.\n *\n * Give it an `aria-label` (or `aria-labelledby`) that says what the controls act on.\n *\n * @example\n * ```tsx\n * <Toolbar aria-label=\"Formatting\">\n * <ToolbarGroup>\n * <ToolbarButton iconOnly aria-label=\"Bold\" aria-pressed={bold} onClick={toggleBold}>\n * <HugeiconsIcon icon={TextBoldIcon} strokeWidth={1.75} />\n * </ToolbarButton>\n * </ToolbarGroup>\n * <ToolbarSeparator />\n * <ToolbarButton>Share</ToolbarButton>\n * </Toolbar>\n * ```\n */\nconst ToolbarRoot = React.forwardRef<HTMLDivElement, ToolbarProps>((props, forwardedRef) => {\n // In a Shell pane's header or footer, a toolbar with no size rests one step above the Shell's.\n const band = usePaneBandSize();\n const size: ToolbarSize = props.size ?? band ?? toolbarRootPropDefs.size.default;\n const orientation: ToolbarOrientation = props.orientation ?? toolbarRootPropDefs.orientation.default;\n const { className, orientation: _orientation, backdrop = false, children, ...rootProps } = extractProps(\n { ...props, size },\n toolbarRootPropDefs,\n marginPropDefs,\n );\n\n const context = React.useMemo(() => ({ size, orientation, backdrop }), [size, orientation, backdrop]);\n\n return (\n <ToolbarPrimitive.Root\n {...rootProps}\n ref={forwardedRef}\n orientation={orientation}\n data-backdrop={backdrop || undefined}\n className={classNames('rt-Toolbar', className)}\n >\n <ToolbarContext.Provider value={context}>{children}</ToolbarContext.Provider>\n </ToolbarPrimitive.Root>\n );\n});\nToolbarRoot.displayName = 'Toolbar';\n\n// ============================================================================\n// ToolbarGroup\n// ============================================================================\n\ninterface ToolbarGroupProps extends ComponentPropsWithout<'div', RemovedProps> {\n /** Turns every control in the group off at once. */\n disabled?: boolean;\n}\n\n/**\n * Controls that belong together, drawn as one quiet well that stands level with a button\n * beside it. Buttons inside it rest as `ghost` unless they state a `variant`.\n * To cluster controls without a well, use a `Flex`.\n */\nconst ToolbarGroup = React.forwardRef<HTMLDivElement, ToolbarGroupProps>(\n ({ className, disabled = false, children, ...props }, forwardedRef) => {\n const { orientation } = useToolbarContext('ToolbarGroup');\n const group = React.useMemo(() => ({ disabled }), [disabled]);\n return (\n <div\n role=\"group\"\n data-orientation={orientation}\n data-disabled={disabled || undefined}\n {...props}\n ref={forwardedRef}\n className={classNames('rt-ToolbarGroup', className)}\n >\n <ToolbarGroupContext.Provider value={group}>{children}</ToolbarGroupContext.Provider>\n </div>\n );\n },\n);\nToolbarGroup.displayName = 'Toolbar.Group';\n\n// ============================================================================\n// ToolbarButton\n// ============================================================================\n\ntype ToolbarButtonBaseProps = Omit<ButtonProps, 'as' | 'asChild' | 'variant' | 'emphasis'>;\n\n/** A labelled button: takes every `Button` prop. */\ntype ToolbarTextButtonProps = ToolbarButtonBaseProps &\n ButtonRankProps & {\n iconOnly?: false;\n};\n\n/** An icon-only button: renders an `IconButton`, and the type requires an `aria-label`. */\ntype ToolbarIconButtonProps = Omit<ToolbarButtonBaseProps, 'aria-label' | 'aria-labelledby' | 'fullWidth'> &\n ButtonRankProps & {\n iconOnly: true;\n /** The control's accessible name. An icon has no words of its own, so this is required. */\n 'aria-label': string;\n};\n\ntype ToolbarButtonProps = ToolbarTextButtonProps | ToolbarIconButtonProps;\n\nfunction isPressed(value: React.AriaAttributes['aria-pressed']) {\n return value === true || value === 'true';\n}\n\n/**\n * A `Button` that joins the toolbar's keyboard navigation, so a row of them is one tab stop.\n *\n * Set `iconOnly` (with an `aria-label`) for a symbol-only control. Set `aria-pressed` for a\n * control that toggles; a pressed button wears Button's pressed look.\n *\n * It takes the toolbar's `size`, and rests as a gray `soft` button (`raised` in a toolbar with\n * `backdrop`, gray `ghost` inside a `ToolbarGroup`). A stated `size`, `variant` or `color` wins; a stated `variant` without a\n * `color` takes Button's own default colour. It throws outside a `Toolbar`.\n */\nconst ToolbarButton = React.forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n const toolbar = useToolbarContext('ToolbarButton');\n const group = React.useContext(ToolbarGroupContext);\n const { iconOnly, size, variant, emphasis, color, disabled, ...rest } = props;\n\n const pressed = isPressed(props['aria-pressed']);\n const stateProps =\n 'data-state' in props || props['aria-pressed'] === undefined ? {} : { 'data-state': pressed ? 'on' : 'off' };\n\n const shared = {\n size: size ?? toolbar.size,\n // A caller states the look by `variant` or the rank by `emphasis`, never both.\n ...(emphasis !== undefined ? { emphasis } : { variant: variant ?? (group ? 'ghost' : toolbar.backdrop ? 'raised' : 'soft') }),\n // The gray rest is a pair with the default variant: a caller who states a variant or an\n // emphasis gets Button's own colour for it unless they state a colour too.\n color: color ?? (variant || emphasis ? undefined : 'gray'),\n ...stateProps,\n } as const;\n\n return (\n <ToolbarPrimitive.Button asChild ref={forwardedRef} disabled={disabled || group?.disabled || undefined}>\n {iconOnly ? (\n <IconButton {...(rest as Omit<ToolbarIconButtonProps, 'iconOnly' | 'variant' | 'emphasis'>)} {...shared} />\n ) : (\n <Button {...(rest as Omit<ToolbarTextButtonProps, 'iconOnly' | 'variant' | 'emphasis'>)} {...shared} />\n )}\n </ToolbarPrimitive.Button>\n );\n});\nToolbarButton.displayName = 'Toolbar.Button';\n\n// ============================================================================\n// ToolbarSeparator\n// ============================================================================\n\ntype ToolbarSeparatorProps = ComponentPropsWithout<typeof ToolbarPrimitive.Separator, RemovedProps | 'orientation'>;\n\n/**\n * A gray hairline between two clusters, announced as a separator. Its direction is always\n * opposite to the toolbar's.\n */\nconst ToolbarSeparator = React.forwardRef<HTMLDivElement, ToolbarSeparatorProps>(\n ({ className, ...props }, forwardedRef) => {\n useToolbarContext('ToolbarSeparator');\n return (\n <ToolbarPrimitive.Separator\n {...props}\n ref={forwardedRef}\n className={classNames('rt-ToolbarSeparator', className)}\n />\n );\n },\n);\nToolbarSeparator.displayName = 'Toolbar.Separator';\n\n// ============================================================================\n// ToolbarTitle\n// ============================================================================\n\n/** The title's text step: one step above the label of a button at the same size. */\nconst TITLE_SIZE = { '1': '2', '2': '3', '3': '4', '4': '5' } as const satisfies Record<ToolbarSize, TextProps['size']>;\n\ninterface ToolbarTitleProps {\n /** The title text. With none, the title renders nothing. */\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n /** The id of the title, so that the toolbar's `aria-labelledby` can point at it. */\n id?: string;\n}\n\n/**\n * What the row is about, at its leading edge. One line: it truncates rather than wrapping.\n * Its text step follows the toolbar's `size`, and it takes more air from the controls beside it\n * than they take from each other.\n */\nconst ToolbarTitle = React.forwardRef<HTMLSpanElement, ToolbarTitleProps>(\n ({ className, children, style, id }, forwardedRef) => {\n const { size } = useToolbarContext('ToolbarTitle');\n if (children === undefined || children === null || children === false) return null;\n return (\n <Text\n ref={forwardedRef}\n as=\"span\"\n size={TITLE_SIZE[size]}\n weight=\"medium\"\n truncate\n id={id}\n style={style}\n className={classNames('rt-ToolbarTitle', className)}\n >\n {children}\n </Text>\n );\n },\n);\nToolbarTitle.displayName = 'Toolbar.Title';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst Toolbar = Object.assign(ToolbarRoot, {\n Root: ToolbarRoot,\n Group: ToolbarGroup,\n Button: ToolbarButton,\n Separator: ToolbarSeparator,\n Title: ToolbarTitle,\n});\n\nexport {\n Toolbar,\n ToolbarGroup,\n ToolbarButton,\n ToolbarSeparator,\n ToolbarTitle,\n ToolbarRoot as Root,\n ToolbarGroup as Group,\n ToolbarButton as Button,\n ToolbarSeparator as Separator,\n ToolbarTitle as Title,\n};\nexport type {\n ToolbarProps,\n ToolbarGroupProps,\n ToolbarButtonProps,\n ToolbarSeparatorProps,\n ToolbarTitleProps,\n ToolbarProps as RootProps,\n ToolbarGroupProps as GroupProps,\n ToolbarButtonProps as ButtonProps,\n ToolbarSeparatorProps as SeparatorProps,\n ToolbarTitleProps as TitleProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "classNames", "ToolbarPrimitive", "ToolbarContext", "ToolbarGroupContext", "useToolbarContext", "consumer", "context", "ToolbarRoot", "props", "forwardedRef", "band", "usePaneBandSize", "size", "toolbarRootPropDefs", "orientation", "className", "_orientation", "backdrop", "children", "rootProps", "extractProps", "marginPropDefs", "ToolbarPrimitive", "classNames", "ToolbarGroup", "disabled", "group", "isPressed", "value", "ToolbarButton", "toolbar", "iconOnly", "variant", "emphasis", "color", "rest", "pressed", "stateProps", "shared", "IconButton", "Button", "ToolbarSeparator", "TITLE_SIZE", "ToolbarTitle", "style", "id", "Text", "Toolbar"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-UI2EFF6F.js";import{z as o}from"zod";var t=s.extend({pressed:o.boolean().optional().describe("Controlled pressed state"),onPressedChange:o.function().optional().describe("Callback when pressed state changes"),defaultPressed:o.boolean().optional().describe("Default pressed state for uncontrolled usage")}).refine(e=>!(e.pressed!==void 0&&e.onPressedChange===void 0),{message:"When using controlled mode (pressed prop), onPressedChange must also be provided",path:["onPressedChange"]}).refine(e=>!(e.pressed!==void 0&&e.defaultPressed!==void 0),{message:"Cannot use both controlled (pressed) and uncontrolled (defaultPressed) props together",path:["pressed","defaultPressed"]});function d(e){return e}export{t as a,d as b};
2
- //# sourceMappingURL=chunk-6ERCPRXX.js.map
1
+ import{a as s}from"./chunk-E3754NJZ.js";import{z as o}from"zod";var t=s.extend({pressed:o.boolean().optional().describe("Controlled pressed state"),onPressedChange:o.function().optional().describe("Callback when pressed state changes"),defaultPressed:o.boolean().optional().describe("Default pressed state for uncontrolled usage")}).refine(e=>!(e.pressed!==void 0&&e.onPressedChange===void 0),{message:"When using controlled mode (pressed prop), onPressedChange must also be provided",path:["onPressedChange"]}).refine(e=>!(e.pressed!==void 0&&e.defaultPressed!==void 0),{message:"Cannot use both controlled (pressed) and uncontrolled (defaultPressed) props together",path:["pressed","defaultPressed"]});function d(e){return e}export{t as a,d as b};
2
+ //# sourceMappingURL=chunk-FSKZAL5H.js.map
@@ -0,0 +1,2 @@
1
+ import{a as S,b as N,c as b}from"./chunk-KU3LLWFU.js";import{b as I,c as T}from"./chunk-IX5HIHVI.js";import{b as y,c as h}from"./chunk-2HUAVZZL.js";import{a as v}from"./chunk-DDFONGSM.js";import{a as u}from"./chunk-UBSLEGQZ.js";import{a as g}from"./chunk-GSTOGDAJ.js";import{a as A}from"./chunk-OS3FCYZY.js";var W={};A(W,{Content:()=>E,Group:()=>G,Item:()=>L,Label:()=>D,Root:()=>x,Separator:()=>V,Trigger:()=>w});import*as e from"react";import s from"classnames";import{Select as a,ScrollArea as P}from"radix-ui";var R=e.createContext({}),x=r=>{let{children:o,size:t=S.size.default,...l}=r;return e.createElement(a.Root,{...l},e.createElement(R.Provider,{value:e.useMemo(()=>({size:t}),[t])},o))};x.displayName="Select.Root";var w=e.forwardRef((r,o)=>{let t=e.useContext(R),{children:l,className:i,color:n,radius:f,placeholder:d,error:p,loading:c,disabled:m,readOnly:C,...z}=u({size:t?.size,...r},{size:S.size},N,g),M=e.useMemo(()=>({"aria-invalid":p||void 0,"aria-busy":c||void 0,"aria-disabled":m||void 0,"aria-readonly":C||void 0}),[p,c,m,C]);return e.createElement(a.Trigger,{asChild:!0},e.createElement("button",{"data-accent-color":n,"data-radius":f,"data-error":p,"data-loading":c,...z,...M,ref:o,className:s("rt-reset","rt-SelectTrigger",i)},e.createElement("span",{className:"rt-SelectTriggerInner"},e.createElement(a.Value,{placeholder:d},l)),e.createElement(a.Icon,{asChild:!0},c?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(T,{className:"rt-SelectIcon"}))))});w.displayName="Select.Trigger";var E=e.forwardRef((r,o)=>{let t=e.useContext(R),{className:l,children:i,color:n,container:f,...d}=u({size:t?.size,...r},{size:S.size},b),p=y(),c=n||p.accentColor,m=v();return e.createElement(a.Portal,{container:f},e.createElement(h,{asChild:!0},e.createElement(a.Content,{"data-accent-color":c,sideOffset:4,...d,asChild:!1,ref:o,className:s("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-SelectContent",l)},e.createElement(P.Root,{type:"auto",className:"rt-ScrollAreaRoot"},e.createElement(a.Viewport,{asChild:!0,className:s("rt-BaseMenuViewport","rt-SelectViewport")},e.createElement(P.Viewport,{ref:m,className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),e.createElement(P.Scrollbar,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},e.createElement(P.Thumb,{className:"rt-ScrollAreaThumb"}))))))});E.displayName="Select.Content";var L=e.forwardRef((r,o)=>{let{className:t,children:l,...i}=r,n=typeof l!="string";return e.createElement(a.Item,{...i,asChild:!1,ref:o,className:s("rt-reset","rt-BaseMenuItem","rt-SelectItem",{"rt-SelectItemRich":n},t)},e.createElement(a.ItemIndicator,{className:"rt-SelectItemIndicator"},e.createElement(I,{className:"rt-SelectItemIndicatorIcon"})),e.createElement(a.ItemText,null,l))});L.displayName="Select.Item";var G=e.forwardRef(({className:r,...o},t)=>e.createElement(a.Group,{...o,asChild:!1,ref:t,className:s("rt-SelectGroup",r)}));G.displayName="Select.Group";var D=e.forwardRef(({className:r,...o},t)=>e.createElement(a.Label,{...o,asChild:!1,ref:t,className:s("rt-BaseMenuLabel","rt-SelectLabel",r)}));D.displayName="Select.Label";var V=e.forwardRef(({className:r,...o},t)=>e.createElement(a.Separator,{...o,asChild:!1,ref:t,className:s("rt-BaseMenuSeparator","rt-SelectSeparator",r)}));V.displayName="Select.Separator";export{x as a,w as b,E as c,L as d,G as e,D as f,V as g,W as h};
2
+ //# sourceMappingURL=chunk-GOYI2U6F.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/select.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Select as SelectPrimitive, ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { ChevronDownIcon, ThickCheckIcon } from './icons.js';\nimport {\n selectRootPropDefs,\n selectTriggerPropDefs,\n selectContentPropDefs,\n} from './select.props.js';\nimport { useThemeContext, Theme } from './theme.js';\nimport { useThumbSync } from '../hooks/use-thumb-sync.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype SelectRootOwnProps = GetPropDefTypes<typeof selectRootPropDefs>;\n\ntype SelectContextValue = SelectRootOwnProps;\nconst SelectContext = React.createContext<SelectContextValue>({});\n\ninterface SelectRootProps extends SelectPrimitive.SelectProps, SelectContextValue {}\nconst SelectRoot: React.FC<SelectRootProps> = (props) => {\n const { children, size = selectRootPropDefs.size.default, ...rootProps } = props;\n return (\n <SelectPrimitive.Root {...rootProps}>\n <SelectContext.Provider value={React.useMemo(() => ({ size }), [size])}>\n {children}\n </SelectContext.Provider>\n </SelectPrimitive.Root>\n );\n};\nSelectRoot.displayName = 'Select.Root';\n\ntype SelectTriggerElement = React.ElementRef<typeof SelectPrimitive.Trigger>;\ntype SelectTriggerOwnProps = GetPropDefTypes<typeof selectTriggerPropDefs>;\ninterface SelectTriggerProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Trigger, RemovedProps>,\n MarginProps,\n SelectTriggerOwnProps {}\nconst SelectTrigger = React.forwardRef<SelectTriggerElement, SelectTriggerProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const {\n children,\n className,\n color,\n radius,\n placeholder,\n error,\n loading,\n disabled,\n readOnly,\n ...triggerProps\n } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n { size: selectRootPropDefs.size },\n selectTriggerPropDefs,\n marginPropDefs,\n );\n\n\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': error || undefined,\n 'aria-busy': loading || undefined,\n 'aria-disabled': disabled || undefined,\n 'aria-readonly': readOnly || undefined,\n }),\n [error, loading, disabled, readOnly],\n );\n\n return (\n <SelectPrimitive.Trigger asChild>\n <button\n data-accent-color={color}\n data-radius={radius}\n data-error={error}\n data-loading={loading}\n {...triggerProps}\n {...ariaProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-SelectTrigger', className)}\n >\n <span className=\"rt-SelectTriggerInner\">\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n </span>\n <SelectPrimitive.Icon asChild>\n {loading ? (\n <div className=\"rt-SelectIcon rt-SelectLoadingIcon\" aria-hidden=\"true\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"32\"\n strokeDashoffset=\"32\"\n className=\"rt-SelectLoadingIconCircle\"\n />\n </svg>\n </div>\n ) : (\n <ChevronDownIcon className=\"rt-SelectIcon\" />\n )}\n </SelectPrimitive.Icon>\n </button>\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'Select.Trigger';\n\ntype SelectContentElement = React.ElementRef<typeof SelectPrimitive.Content>;\ntype SelectContentOwnProps = GetPropDefTypes<typeof selectContentPropDefs>;\ninterface SelectContentProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Content, RemovedProps>,\n SelectContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Portal>['container'];\n}\nconst SelectContent = React.forwardRef<SelectContentElement, SelectContentProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const { className, children, color, container, ...contentProps } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n { size: selectRootPropDefs.size },\n selectContentPropDefs,\n );\n const themeContext = useThemeContext();\n const resolvedColor = color || themeContext.accentColor;\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n return (\n <SelectPrimitive.Portal container={container}>\n <Theme asChild>\n <SelectPrimitive.Content\n data-accent-color={resolvedColor}\n sideOffset={4}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-variant-soft',\n 'rt-SelectContent',\n className,\n )}\n >\n <ScrollAreaPrimitive.Root type=\"auto\" className=\"rt-ScrollAreaRoot\">\n <SelectPrimitive.Viewport\n asChild\n className={classNames('rt-BaseMenuViewport', 'rt-SelectViewport')}\n >\n <ScrollAreaPrimitive.Viewport\n ref={setThumbViewport}\n className=\"rt-ScrollAreaViewport\"\n style={{ overflowY: undefined }}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n </SelectPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar\n className=\"rt-ScrollAreaScrollbar rt-r-size-1\"\n orientation=\"vertical\"\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n </SelectPrimitive.Content>\n </Theme>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'Select.Content';\n\ntype SelectItemElement = React.ElementRef<typeof SelectPrimitive.Item>;\ninterface SelectItemProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Item, RemovedProps> {}\nconst SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>((props, forwardedRef) => {\n const { className, children, ...itemProps } = props;\n\n // Detect if this is rich content (not just a string)\n const isRichContent = typeof children !== 'string';\n\n return (\n <SelectPrimitive.Item\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-SelectItem',\n { 'rt-SelectItemRich': isRichContent },\n className,\n )}\n >\n <SelectPrimitive.ItemIndicator className=\"rt-SelectItemIndicator\">\n <ThickCheckIcon className=\"rt-SelectItemIndicatorIcon\" />\n </SelectPrimitive.ItemIndicator>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n});\nSelectItem.displayName = 'Select.Item';\n\ntype SelectGroupElement = React.ElementRef<typeof SelectPrimitive.Group>;\ninterface SelectGroupProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Group, RemovedProps> {}\nconst SelectGroup = React.forwardRef<SelectGroupElement, SelectGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-SelectGroup', className)}\n />\n ),\n);\nSelectGroup.displayName = 'Select.Group';\n\ntype SelectLabelElement = React.ElementRef<typeof SelectPrimitive.Label>;\ninterface SelectLabelProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Label, RemovedProps> {}\nconst SelectLabel = React.forwardRef<SelectLabelElement, SelectLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuLabel', 'rt-SelectLabel', className)}\n />\n ),\n);\nSelectLabel.displayName = 'Select.Label';\n\ntype SelectSeparatorElement = React.ElementRef<typeof SelectPrimitive.Separator>;\ninterface SelectSeparatorProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Separator, RemovedProps> {}\nconst SelectSeparator = React.forwardRef<SelectSeparatorElement, SelectSeparatorProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuSeparator', 'rt-SelectSeparator', className)}\n />\n ),\n);\nSelectSeparator.displayName = 'Select.Separator';\n\nexport {\n SelectRoot as Root,\n SelectTrigger as Trigger,\n SelectContent as Content,\n SelectItem as Item,\n SelectGroup as Group,\n SelectLabel as Label,\n SelectSeparator as Separator,\n};\n\nexport type {\n SelectRootProps as RootProps,\n SelectTriggerProps as TriggerProps,\n SelectContentProps as ContentProps,\n SelectItemProps as ItemProps,\n SelectGroupProps as GroupProps,\n SelectLabelProps as LabelProps,\n SelectSeparatorProps as SeparatorProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["select_exports", "__export", "SelectContent", "SelectGroup", "SelectItem", "SelectLabel", "SelectRoot", "SelectSeparator", "SelectTrigger", "React", "classNames", "SelectPrimitive", "ScrollAreaPrimitive", "SelectContext", "SelectRoot", "props", "children", "size", "selectRootPropDefs", "rootProps", "SelectPrimitive", "SelectTrigger", "forwardedRef", "context", "className", "color", "radius", "placeholder", "error", "loading", "disabled", "readOnly", "triggerProps", "extractProps", "selectTriggerPropDefs", "marginPropDefs", "ariaProps", "classNames", "ChevronDownIcon", "SelectContent", "container", "contentProps", "selectContentPropDefs", "themeContext", "useThemeContext", "resolvedColor", "setThumbViewport", "useThumbSync", "Theme", "ScrollAreaPrimitive", "SelectItem", "itemProps", "isRichContent", "ThickCheckIcon", "SelectGroup", "SelectLabel", "SelectSeparator"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as f}from"./chunk-PS6NEG5A.js";import{a as m}from"./chunk-UBSLEGQZ.js";import{a as N}from"./chunk-GSTOGDAJ.js";import{a as v}from"./chunk-5LGWS5QS.js";import{a as P}from"./chunk-OS3FCYZY.js";var R={};P(R,{Link:()=>c,Root:()=>T});import*as a from"react";import b from"classnames";import{NavigationMenu as t}from"radix-ui";var T=a.forwardRef((r,n)=>{let{children:e,className:s,color:p,...o}=m(r,v,N);return a.createElement(t.Root,{className:"rt-TabNavRoot","data-accent-color":p,...o,asChild:!1,ref:n},a.createElement(t.List,{className:b("rt-reset","rt-BaseTabList","rt-TabNavList",s)},e))});T.displayName="TabNav.Root";var c=a.forwardRef((r,n)=>{let{asChild:e,children:s,className:p,active:o,...l}=r;return a.createElement(t.Item,{className:"rt-TabNavItem"},a.createElement(t.Link,{...l,ref:n,className:b("rt-reset","rt-BaseTabListTrigger","rt-TabNavLink",p),onSelect:void 0,asChild:e,"aria-current":o?"page":void 0,"data-active":o||void 0},f({asChild:e,children:s},i=>a.createElement(a.Fragment,null,a.createElement("span",{className:"rt-BaseTabListTriggerInner rt-TabNavLinkInner"},i),a.createElement("span",{className:"rt-BaseTabListTriggerInnerHidden rt-TabNavLinkInnerHidden"},i)))))});c.displayName="TabNav.Link";export{T as a,c as b,R as c};
2
+ //# sourceMappingURL=chunk-HSFQO4QM.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/tab-nav.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { NavigationMenu } from 'radix-ui';\n\nimport { tabNavRootPropDefs } from './tab-nav.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { getSubtree } from '../helpers/get-subtree.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { tabNavLinkPropDefs } from './tab-nav.props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TabNavRootElement = React.ElementRef<typeof NavigationMenu.Root>;\ntype TabNavRootElementProps = ComponentPropsWithout<'nav', RemovedProps>;\ntype TabNavOwnProps = GetPropDefTypes<typeof tabNavRootPropDefs>;\ninterface TabNavRootProps\n extends Omit<TabNavRootElementProps, 'defaultValue' | 'dir' | 'color'>,\n MarginProps,\n TabNavOwnProps {}\nconst TabNavRoot = React.forwardRef<TabNavRootElement, TabNavRootProps>((props, forwardedRef) => {\n const { children, className, color, ...rootProps } = extractProps(\n props,\n tabNavRootPropDefs,\n marginPropDefs,\n );\n return (\n <NavigationMenu.Root\n className=\"rt-TabNavRoot\"\n data-accent-color={color}\n {...rootProps}\n asChild={false}\n ref={forwardedRef}\n >\n <NavigationMenu.List\n className={classNames('rt-reset', 'rt-BaseTabList', 'rt-TabNavList', className)}\n >\n {children}\n </NavigationMenu.List>\n </NavigationMenu.Root>\n );\n});\nTabNavRoot.displayName = 'TabNav.Root';\n\ntype TabNavLinkElement = React.ElementRef<typeof NavigationMenu.Link>;\ntype TabNavLinkOwnProps = GetPropDefTypes<typeof tabNavLinkPropDefs>;\ninterface TabNavLinkProps\n extends ComponentPropsWithout<typeof NavigationMenu.Link, RemovedProps | 'onSelect'>,\n TabNavLinkOwnProps {}\nconst TabNavLink = React.forwardRef<TabNavLinkElement, TabNavLinkProps>((props, forwardedRef) => {\n const { asChild, children, className, active, ...linkProps } = props;\n\n return (\n <NavigationMenu.Item className=\"rt-TabNavItem\">\n <NavigationMenu.Link\n {...linkProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseTabListTrigger', 'rt-TabNavLink', className)}\n onSelect={undefined}\n asChild={asChild}\n aria-current={active ? 'page' : undefined}\n data-active={active || undefined}\n >\n {getSubtree({ asChild, children }, (children) => (\n <>\n <span className=\"rt-BaseTabListTriggerInner rt-TabNavLinkInner\">{children}</span>\n <span className=\"rt-BaseTabListTriggerInnerHidden rt-TabNavLinkInnerHidden\">\n {children}\n </span>\n </>\n ))}\n </NavigationMenu.Link>\n </NavigationMenu.Item>\n );\n});\nTabNavLink.displayName = 'TabNav.Link';\n\nexport { TabNavRoot as Root, TabNavLink as Link };\nexport type { TabNavRootProps as RootProps, TabNavLinkProps as LinkProps };\n"],
5
+ "mappings": "wMAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,kBAAAC,MAAsB,WAmB/B,IAAMC,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAC/F,GAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,MAAAC,EAAO,GAAGC,CAAU,EAAIC,EACnDN,EACAO,EACAC,CACF,EACA,OACE,gBAACC,EAAe,KAAf,CACC,UAAU,gBACV,oBAAmBL,EAClB,GAAGC,EACJ,QAAS,GACT,IAAKJ,GAEL,gBAACQ,EAAe,KAAf,CACC,UAAWC,EAAW,WAAY,iBAAkB,gBAAiBP,CAAS,GAE7ED,CACH,CACF,CAEJ,CAAC,EACDH,EAAW,YAAc,cAOzB,IAAMY,EAAmB,aAA+C,CAACX,EAAOC,IAAiB,CAC/F,GAAM,CAAE,QAAAW,EAAS,SAAAV,EAAU,UAAAC,EAAW,OAAAU,EAAQ,GAAGC,CAAU,EAAId,EAE/D,OACE,gBAACS,EAAe,KAAf,CAAoB,UAAU,iBAC7B,gBAACA,EAAe,KAAf,CACE,GAAGK,EACJ,IAAKb,EACL,UAAWS,EAAW,WAAY,wBAAyB,gBAAiBP,CAAS,EACrF,SAAU,OACV,QAASS,EACT,eAAcC,EAAS,OAAS,OAChC,cAAaA,GAAU,QAEtBE,EAAW,CAAE,QAAAH,EAAS,SAAAV,CAAS,EAAIA,GAClC,gCACE,gBAAC,QAAK,UAAU,iDAAiDA,CAAS,EAC1E,gBAAC,QAAK,UAAU,6DACbA,CACH,CACF,CACD,CACH,CACF,CAEJ,CAAC,EACDS,EAAW,YAAc",
6
+ "names": ["tab_nav_exports", "__export", "TabNavLink", "TabNavRoot", "React", "classNames", "NavigationMenu", "TabNavRoot", "props", "forwardedRef", "children", "className", "color", "rootProps", "extractProps", "baseTabListPropDefs", "marginPropDefs", "NavigationMenu", "classNames", "TabNavLink", "asChild", "active", "linkProps", "getSubtree"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{b as T,d as D}from"./chunk-RSJSVJ6A.js";import*as e from"react";import S from"classnames";import{useVirtualizer as F}from"@tanstack/react-virtual";var G=e.memo(function({label:r,isHighlighted:o,id:u,style:y,tabIndex:x,"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:y,tabIndex:x,"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 N({items:n,itemLabel:r,renderItem:o,size:u,estimatedItemSize:y,overscan:x=5,onSelect:m,className:p,style:f,"aria-label":v}){let h=e.useId(),g=e.useRef(null),[E,l]=e.useState(-1),{isInsideMenu:w,size:z,itemHeight:K}=D(),I=y??(u?T(u):K??T(z??"2"));if(!r&&!o)throw new Error("VirtualMenu requires either itemLabel or renderItem prop");let P=e.useMemo(()=>r?typeof r=="function"?r:t=>t[r]:null,[r]),c=e.useMemo(()=>n.length===0||E<0?-1:Math.min(E,n.length-1),[E,n.length]),$=e.useMemo(()=>typeof I=="function"?I:()=>I,[I]),M=F({count:n.length,getScrollElement:()=>g.current,estimateSize:$,overscan:x}),A=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 k=e.useRef(c);k.current=c;let B=e.useCallback(t=>{let s=t.currentTarget.dataset.index;s!=null&&l(Number(s))},[]),j=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)}},[]),q=e.useCallback(()=>{},[]),O=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)}}},[]),U=e.useCallback(t=>{let s=R.current,a=k.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}}},[]),H=e.useCallback(t=>`${h}-item-${t}`,[h]),W=e.useMemo(()=>({overflow:"auto",position:"relative",...f}),[f]),V=M.getTotalSize(),Y=e.useMemo(()=>({height:`${V}px`,width:"100%",position:"relative"}),[V]);return e.createElement("div",{ref:g,role:w?"group":"menu","aria-label":v,"aria-activedescendant":c>=0?H(c):void 0,tabIndex:0,onKeyDown:U,className:S("rt-VirtualMenuRoot",p),style:W},e.createElement("div",{className:"rt-VirtualMenuViewport",style:Y},A.map(t=>{let s=n[t.index],a=t.index,i=c===a,_={height:t.size,transform:`translateY(${t.start}px)`},C={id:H(a),isHighlighted:i,style:_,tabIndex:i?0:-1,"data-highlighted":i?!0:void 0,"data-index":a,onMouseEnter:B,onMouseLeave:q,onClick:j,onKeyDown:O};return o?e.createElement(o,{key:t.key,item:s,index:a,...C}):e.createElement(G,{key:t.key,label:P(s),...C})})))}N.displayName="VirtualMenu";var L=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));L.displayName="VirtualMenu.Item";var J=e.memo(L,(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)}),ee=Object.assign(N,{Item:J});export{ee as a};
2
+ //# sourceMappingURL=chunk-IF4PYIUV.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';\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\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)\n : (contextItemHeight ?? getMenuItemHeight(contextSize ?? '2')));\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", "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
+ }
@@ -0,0 +1,2 @@
1
+ import{a as l}from"./chunk-TGRRQHLQ.js";import{a as i,e as k,f as P,g as f}from"./chunk-V32EP3S7.js";import{b as h}from"./chunk-IX5HIHVI.js";import{a as b}from"./chunk-EO7WQYFO.js";import{a as d}from"./chunk-5GYIQIPW.js";import{a as C}from"./chunk-UBSLEGQZ.js";import{a as x}from"./chunk-GSTOGDAJ.js";import{a as z}from"./chunk-OS3FCYZY.js";var _={};z(_,{Item:()=>y,Root:()=>v});import*as o from"react";import m from"classnames";import{Context as D}from"radix-ui/internal";var R="CheckboxCards",[S]=D.createContextScope(R,[i]),u=i(),[E,g]=S(R),v=o.forwardRef((r,s)=>{let{__scopeCheckboxCards:t,className:a,color:c,...p}=C(r,b,x),e=u(t);return o.createElement(E,{scope:t,size:r.size,variant:r.variant},o.createElement(l,{asChild:!0},o.createElement(k,{...e,"data-accent-color":c,...p,ref:s,className:m("rt-CheckboxCardsRoot",a)})))});v.displayName="CheckboxCards.Root";var y=o.forwardRef(({__scopeCheckboxCards:r,children:s,className:t,style:a,...c},p)=>{let e=g("CheckboxCardsItem",r),n=u(r),{className:G}=C({size:e?.size,variant:e?.variant||"solid"},d),I=e?.variant?`rt-variant-${e.variant}`:void 0,N=e?.size?`rt-r-size-${e.size}`:void 0;return o.createElement("label",{className:m("rt-BaseCard","rt-CheckboxCardsItem",I,N,t),style:a},s,o.createElement(P,{...n,...c,ref:p,className:m("rt-reset","rt-BaseCheckboxRoot","rt-CheckboxCardCheckbox",G)},o.createElement(f,{...n,asChild:!0,className:"rt-BaseCheckboxIndicator"},o.createElement(h,null))))});y.displayName="CheckboxCards.Item";export{v as a,y as b,_ as c};
2
+ //# sourceMappingURL=chunk-IGBEDJBC.js.map