@womp/kookie-ui 0.24.0 → 0.25.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 (1118) hide show
  1. package/README.md +3 -3
  2. package/components.css +12854 -11866
  3. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-button.js +2 -1
  5. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  6. package/dist/cjs/components/_internal/base-button.props.js +1 -0
  7. package/dist/cjs/components/_internal/base-button.props.js.map +2 -2
  8. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -0
  9. package/dist/cjs/components/_internal/base-checkbox.props.js.map +1 -1
  10. package/dist/cjs/components/_internal/base-menu.props.js +1 -0
  11. package/dist/cjs/components/_internal/base-menu.props.js.map +1 -1
  12. package/dist/cjs/components/_internal/base-menu.utils.js +1 -0
  13. package/dist/cjs/components/_internal/base-menu.utils.js.map +1 -1
  14. package/dist/cjs/components/_internal/base-radio.props.js +1 -0
  15. package/dist/cjs/components/_internal/base-radio.props.js.map +1 -1
  16. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -0
  17. package/dist/cjs/components/_internal/base-tab-list.props.js.map +1 -1
  18. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  19. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +2 -1
  21. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +3 -3
  22. package/dist/cjs/components/_internal/menu-context.d.ts +10 -0
  23. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  24. package/dist/cjs/components/_internal/menu-context.js +2 -1
  25. package/dist/cjs/components/_internal/menu-context.js.map +3 -3
  26. package/dist/cjs/components/_internal/pane-chrome.d.ts +3 -1
  27. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  28. package/dist/cjs/components/_internal/pane-chrome.js +2 -1
  29. package/dist/cjs/components/_internal/pane-chrome.js.map +3 -3
  30. package/dist/cjs/components/_internal/shell-bottom.d.ts +1 -1
  31. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  32. package/dist/cjs/components/_internal/shell-bottom.js +2 -1
  33. package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
  34. package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
  35. package/dist/cjs/components/_internal/shell-handles.js +2 -1
  36. package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
  37. package/dist/cjs/components/_internal/shell-inspector.d.ts +1 -1
  38. package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
  39. package/dist/cjs/components/_internal/shell-inspector.js +2 -1
  40. package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
  41. package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -1
  42. package/dist/cjs/components/_internal/shell-pane.js +2 -1
  43. package/dist/cjs/components/_internal/shell-pane.js.map +3 -3
  44. package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -1
  45. package/dist/cjs/components/_internal/shell-resizable.js +2 -1
  46. package/dist/cjs/components/_internal/shell-resizable.js.map +3 -3
  47. package/dist/cjs/components/_internal/shell-resize.js +1 -0
  48. package/dist/cjs/components/_internal/shell-resize.js.map +1 -1
  49. package/dist/cjs/components/_internal/shell-rest.js +1 -0
  50. package/dist/cjs/components/_internal/shell-rest.js.map +1 -1
  51. package/dist/cjs/components/_internal/shell-sidebar.d.ts +1 -1
  52. package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
  53. package/dist/cjs/components/_internal/shell-sidebar.js +2 -1
  54. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  55. package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
  56. package/dist/cjs/components/_internal/shell-store.js +2 -1
  57. package/dist/cjs/components/_internal/shell-store.js.map +3 -3
  58. package/dist/cjs/components/accessible-icon.js +1 -0
  59. package/dist/cjs/components/accessible-icon.js.map +1 -1
  60. package/dist/cjs/components/accordion.d.ts.map +1 -1
  61. package/dist/cjs/components/accordion.js +2 -1
  62. package/dist/cjs/components/accordion.js.map +3 -3
  63. package/dist/cjs/components/accordion.props.js +1 -0
  64. package/dist/cjs/components/accordion.props.js.map +1 -1
  65. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  66. package/dist/cjs/components/alert-dialog.js +2 -1
  67. package/dist/cjs/components/alert-dialog.js.map +4 -4
  68. package/dist/cjs/components/alert-dialog.props.js +1 -0
  69. package/dist/cjs/components/alert-dialog.props.js.map +1 -1
  70. package/dist/cjs/components/avatar.d.ts.map +1 -1
  71. package/dist/cjs/components/avatar.js +2 -1
  72. package/dist/cjs/components/avatar.js.map +3 -3
  73. package/dist/cjs/components/avatar.props.js +1 -0
  74. package/dist/cjs/components/avatar.props.js.map +1 -1
  75. package/dist/cjs/components/blockquote.js +1 -0
  76. package/dist/cjs/components/blockquote.js.map +1 -1
  77. package/dist/cjs/components/blockquote.props.js +1 -0
  78. package/dist/cjs/components/blockquote.props.js.map +1 -1
  79. package/dist/cjs/components/box.js +1 -0
  80. package/dist/cjs/components/box.js.map +1 -1
  81. package/dist/cjs/components/box.props.js +1 -0
  82. package/dist/cjs/components/box.props.js.map +1 -1
  83. package/dist/cjs/components/button.d.ts.map +1 -1
  84. package/dist/cjs/components/button.js +2 -1
  85. package/dist/cjs/components/button.js.map +3 -3
  86. package/dist/cjs/components/button.props.js +1 -0
  87. package/dist/cjs/components/button.props.js.map +2 -2
  88. package/dist/cjs/components/card.js +1 -0
  89. package/dist/cjs/components/card.js.map +1 -1
  90. package/dist/cjs/components/card.props.js +1 -0
  91. package/dist/cjs/components/card.props.js.map +1 -1
  92. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  93. package/dist/cjs/components/chatbar.js +2 -1
  94. package/dist/cjs/components/chatbar.js.map +3 -3
  95. package/dist/cjs/components/checkbox-group.js +1 -0
  96. package/dist/cjs/components/checkbox-group.js.map +1 -1
  97. package/dist/cjs/components/checkbox-group.primitive.js +1 -0
  98. package/dist/cjs/components/checkbox-group.primitive.js.map +1 -1
  99. package/dist/cjs/components/checkbox-group.props.js +1 -0
  100. package/dist/cjs/components/checkbox-group.props.js.map +1 -1
  101. package/dist/cjs/components/checkbox.js +1 -0
  102. package/dist/cjs/components/checkbox.js.map +1 -1
  103. package/dist/cjs/components/checkbox.props.js +1 -0
  104. package/dist/cjs/components/checkbox.props.js.map +1 -1
  105. package/dist/cjs/components/chip.js +2 -1
  106. package/dist/cjs/components/chip.js.map +3 -3
  107. package/dist/cjs/components/chip.props.js +1 -0
  108. package/dist/cjs/components/chip.props.js.map +1 -1
  109. package/dist/cjs/components/code.js +1 -0
  110. package/dist/cjs/components/code.js.map +1 -1
  111. package/dist/cjs/components/code.props.js +1 -0
  112. package/dist/cjs/components/code.props.js.map +1 -1
  113. package/dist/cjs/components/combobox.d.ts.map +1 -1
  114. package/dist/cjs/components/combobox.js +2 -1
  115. package/dist/cjs/components/combobox.js.map +4 -4
  116. package/dist/cjs/components/combobox.props.js +1 -0
  117. package/dist/cjs/components/combobox.props.js.map +1 -1
  118. package/dist/cjs/components/context-menu.d.ts +1 -2
  119. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  120. package/dist/cjs/components/context-menu.js +2 -1
  121. package/dist/cjs/components/context-menu.js.map +4 -4
  122. package/dist/cjs/components/context-menu.props.js +1 -0
  123. package/dist/cjs/components/context-menu.props.js.map +1 -1
  124. package/dist/cjs/components/dialog.js +2 -1
  125. package/dist/cjs/components/dialog.js.map +3 -3
  126. package/dist/cjs/components/dialog.props.js +1 -0
  127. package/dist/cjs/components/dialog.props.js.map +1 -1
  128. package/dist/cjs/components/dropdown-menu.d.ts +1 -2
  129. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  130. package/dist/cjs/components/dropdown-menu.js +2 -1
  131. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  132. package/dist/cjs/components/dropdown-menu.props.js +1 -0
  133. package/dist/cjs/components/dropdown-menu.props.js.map +1 -1
  134. package/dist/cjs/components/flex.js +1 -0
  135. package/dist/cjs/components/flex.js.map +2 -2
  136. package/dist/cjs/components/flex.props.js +1 -0
  137. package/dist/cjs/components/flex.props.js.map +2 -2
  138. package/dist/cjs/components/grid.js +1 -0
  139. package/dist/cjs/components/grid.js.map +2 -2
  140. package/dist/cjs/components/grid.props.js +1 -0
  141. package/dist/cjs/components/grid.props.js.map +2 -2
  142. package/dist/cjs/components/heading.d.ts +2 -2
  143. package/dist/cjs/components/heading.d.ts.map +1 -1
  144. package/dist/cjs/components/heading.js +2 -1
  145. package/dist/cjs/components/heading.js.map +2 -2
  146. package/dist/cjs/components/heading.props.d.ts +1 -1
  147. package/dist/cjs/components/heading.props.js +2 -1
  148. package/dist/cjs/components/heading.props.js.map +2 -2
  149. package/dist/cjs/components/icons.js +1 -0
  150. package/dist/cjs/components/icons.js.map +1 -1
  151. package/dist/cjs/components/image.d.ts +9 -2
  152. package/dist/cjs/components/image.d.ts.map +1 -1
  153. package/dist/cjs/components/image.js +2 -1
  154. package/dist/cjs/components/image.js.map +3 -3
  155. package/dist/cjs/components/image.props.js +1 -0
  156. package/dist/cjs/components/image.props.js.map +1 -1
  157. package/dist/cjs/components/index.d.ts +1 -1
  158. package/dist/cjs/components/index.d.ts.map +1 -1
  159. package/dist/cjs/components/index.js +3 -2
  160. package/dist/cjs/components/index.js.map +4 -4
  161. package/dist/cjs/components/kbd.js +1 -0
  162. package/dist/cjs/components/kbd.js.map +1 -1
  163. package/dist/cjs/components/kbd.props.js +1 -0
  164. package/dist/cjs/components/kbd.props.js.map +1 -1
  165. package/dist/cjs/components/link.js +1 -0
  166. package/dist/cjs/components/link.js.map +1 -1
  167. package/dist/cjs/components/link.props.js +1 -0
  168. package/dist/cjs/components/link.props.js.map +1 -1
  169. package/dist/cjs/components/message-scroller.d.ts +2 -2
  170. package/dist/cjs/components/message-scroller.d.ts.map +1 -1
  171. package/dist/cjs/components/message-scroller.js +2 -1
  172. package/dist/cjs/components/message-scroller.js.map +3 -3
  173. package/dist/cjs/components/navbar.js +1 -0
  174. package/dist/cjs/components/navbar.js.map +2 -2
  175. package/dist/cjs/components/navbar.props.js +1 -0
  176. package/dist/cjs/components/navbar.props.js.map +1 -1
  177. package/dist/cjs/components/notice.js +2 -1
  178. package/dist/cjs/components/notice.js.map +3 -3
  179. package/dist/cjs/components/popover.d.ts +3 -1
  180. package/dist/cjs/components/popover.d.ts.map +1 -1
  181. package/dist/cjs/components/popover.js +2 -1
  182. package/dist/cjs/components/popover.js.map +3 -3
  183. package/dist/cjs/components/popover.props.js +1 -0
  184. package/dist/cjs/components/popover.props.js.map +1 -1
  185. package/dist/cjs/components/portal.js +1 -0
  186. package/dist/cjs/components/portal.js.map +1 -1
  187. package/dist/cjs/components/progress.d.ts.map +1 -1
  188. package/dist/cjs/components/progress.js +2 -1
  189. package/dist/cjs/components/progress.js.map +3 -3
  190. package/dist/cjs/components/progress.props.js +1 -0
  191. package/dist/cjs/components/progress.props.js.map +1 -1
  192. package/dist/cjs/components/radio-group.js +1 -0
  193. package/dist/cjs/components/radio-group.js.map +1 -1
  194. package/dist/cjs/components/radio-group.props.js +1 -0
  195. package/dist/cjs/components/radio-group.props.js.map +1 -1
  196. package/dist/cjs/components/radio.js +1 -0
  197. package/dist/cjs/components/radio.js.map +1 -1
  198. package/dist/cjs/components/radio.props.js +1 -0
  199. package/dist/cjs/components/radio.props.js.map +1 -1
  200. package/dist/cjs/components/reset.js +1 -0
  201. package/dist/cjs/components/reset.js.map +1 -1
  202. package/dist/cjs/components/schemas/base-button.schema.js +1 -0
  203. package/dist/cjs/components/schemas/base-button.schema.js.map +1 -1
  204. package/dist/cjs/components/schemas/button.schema.js +1 -0
  205. package/dist/cjs/components/schemas/button.schema.js.map +1 -1
  206. package/dist/cjs/components/schemas/index.js +1 -0
  207. package/dist/cjs/components/schemas/index.js.map +1 -1
  208. package/dist/cjs/components/schemas/shell.schema.js +1 -0
  209. package/dist/cjs/components/schemas/shell.schema.js.map +1 -1
  210. package/dist/cjs/components/schemas/toggle.schema.js +1 -0
  211. package/dist/cjs/components/schemas/toggle.schema.js.map +1 -1
  212. package/dist/cjs/components/scroll-area.js +1 -0
  213. package/dist/cjs/components/scroll-area.js.map +1 -1
  214. package/dist/cjs/components/scroll-area.props.js +1 -0
  215. package/dist/cjs/components/scroll-area.props.js.map +1 -1
  216. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  217. package/dist/cjs/components/segmented-control.js +2 -1
  218. package/dist/cjs/components/segmented-control.js.map +3 -3
  219. package/dist/cjs/components/segmented-control.props.d.ts +0 -1
  220. package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
  221. package/dist/cjs/components/segmented-control.props.js +2 -1
  222. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  223. package/dist/cjs/components/select.d.ts.map +1 -1
  224. package/dist/cjs/components/select.js +2 -1
  225. package/dist/cjs/components/select.js.map +4 -4
  226. package/dist/cjs/components/select.props.js +1 -0
  227. package/dist/cjs/components/select.props.js.map +1 -1
  228. package/dist/cjs/components/separator.d.ts.map +1 -1
  229. package/dist/cjs/components/separator.js +2 -1
  230. package/dist/cjs/components/separator.js.map +4 -4
  231. package/dist/cjs/components/separator.props.d.ts +1 -1
  232. package/dist/cjs/components/separator.props.js +2 -1
  233. package/dist/cjs/components/separator.props.js.map +2 -2
  234. package/dist/cjs/components/sheet.d.ts +1 -1
  235. package/dist/cjs/components/sheet.d.ts.map +1 -1
  236. package/dist/cjs/components/sheet.js +2 -1
  237. package/dist/cjs/components/sheet.js.map +3 -3
  238. package/dist/cjs/components/shell.context.js +2 -1
  239. package/dist/cjs/components/shell.context.js.map +3 -3
  240. package/dist/cjs/components/shell.d.ts +5 -2
  241. package/dist/cjs/components/shell.d.ts.map +1 -1
  242. package/dist/cjs/components/shell.hooks.js +2 -1
  243. package/dist/cjs/components/shell.hooks.js.map +3 -3
  244. package/dist/cjs/components/shell.js +2 -1
  245. package/dist/cjs/components/shell.js.map +3 -3
  246. package/dist/cjs/components/shell.types.js +1 -0
  247. package/dist/cjs/components/shell.types.js.map +1 -1
  248. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  249. package/dist/cjs/components/sidebar.js +2 -1
  250. package/dist/cjs/components/sidebar.js.map +4 -4
  251. package/dist/cjs/components/slider.d.ts.map +1 -1
  252. package/dist/cjs/components/slider.js +2 -1
  253. package/dist/cjs/components/slider.js.map +3 -3
  254. package/dist/cjs/components/slider.props.d.ts +0 -2
  255. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  256. package/dist/cjs/components/slider.props.js +2 -1
  257. package/dist/cjs/components/slider.props.js.map +2 -2
  258. package/dist/cjs/components/slot.js +1 -0
  259. package/dist/cjs/components/slot.js.map +1 -1
  260. package/dist/cjs/components/spinner.d.ts.map +1 -1
  261. package/dist/cjs/components/spinner.js +2 -1
  262. package/dist/cjs/components/spinner.js.map +2 -2
  263. package/dist/cjs/components/spinner.props.js +1 -0
  264. package/dist/cjs/components/spinner.props.js.map +1 -1
  265. package/dist/cjs/components/switch.js +1 -0
  266. package/dist/cjs/components/switch.js.map +1 -1
  267. package/dist/cjs/components/switch.props.js +1 -0
  268. package/dist/cjs/components/switch.props.js.map +1 -1
  269. package/dist/cjs/components/table.d.ts.map +1 -1
  270. package/dist/cjs/components/table.js +2 -1
  271. package/dist/cjs/components/table.js.map +3 -3
  272. package/dist/cjs/components/table.props.d.ts +0 -2
  273. package/dist/cjs/components/table.props.d.ts.map +1 -1
  274. package/dist/cjs/components/table.props.js +2 -1
  275. package/dist/cjs/components/table.props.js.map +3 -3
  276. package/dist/cjs/components/tabs.d.ts.map +1 -1
  277. package/dist/cjs/components/tabs.js +2 -1
  278. package/dist/cjs/components/tabs.js.map +3 -3
  279. package/dist/cjs/components/tabs.props.js +1 -0
  280. package/dist/cjs/components/tabs.props.js.map +1 -1
  281. package/dist/cjs/components/text-area.d.ts.map +1 -1
  282. package/dist/cjs/components/text-area.js +2 -1
  283. package/dist/cjs/components/text-area.js.map +2 -2
  284. package/dist/cjs/components/text-area.props.js +1 -0
  285. package/dist/cjs/components/text-area.props.js.map +1 -1
  286. package/dist/cjs/components/text-field.d.ts.map +1 -1
  287. package/dist/cjs/components/text-field.js +3 -2
  288. package/dist/cjs/components/text-field.js.map +3 -3
  289. package/dist/cjs/components/text-field.props.js +1 -0
  290. package/dist/cjs/components/text-field.props.js.map +2 -2
  291. package/dist/cjs/components/text.js +1 -0
  292. package/dist/cjs/components/text.js.map +1 -1
  293. package/dist/cjs/components/text.props.js +1 -0
  294. package/dist/cjs/components/text.props.js.map +1 -1
  295. package/dist/cjs/components/theme.d.ts.map +1 -1
  296. package/dist/cjs/components/theme.js +2 -1
  297. package/dist/cjs/components/theme.js.map +3 -3
  298. package/dist/cjs/components/theme.props.js +1 -0
  299. package/dist/cjs/components/theme.props.js.map +1 -1
  300. package/dist/cjs/components/toggle.js +2 -1
  301. package/dist/cjs/components/toggle.js.map +3 -3
  302. package/dist/cjs/components/toolbar.d.ts +4 -1
  303. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  304. package/dist/cjs/components/toolbar.js +2 -1
  305. package/dist/cjs/components/toolbar.js.map +4 -4
  306. package/dist/cjs/components/toolbar.props.js +1 -0
  307. package/dist/cjs/components/toolbar.props.js.map +1 -1
  308. package/dist/cjs/components/tooltip.d.ts +13 -2
  309. package/dist/cjs/components/tooltip.d.ts.map +1 -1
  310. package/dist/cjs/components/tooltip.js +2 -1
  311. package/dist/cjs/components/tooltip.js.map +3 -3
  312. package/dist/cjs/components/tooltip.props.js +1 -0
  313. package/dist/cjs/components/tooltip.props.js.map +1 -1
  314. package/dist/cjs/components/virtual-menu.d.ts +19 -12
  315. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  316. package/dist/cjs/components/virtual-menu.js +2 -1
  317. package/dist/cjs/components/virtual-menu.js.map +3 -3
  318. package/dist/cjs/components/visually-hidden.js +1 -0
  319. package/dist/cjs/components/visually-hidden.js.map +1 -1
  320. package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -1
  321. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  322. package/dist/cjs/helpers/get-margin-styles.js.map +3 -3
  323. package/dist/cjs/helpers/index.js +4 -4
  324. package/dist/cjs/helpers/index.js.map +3 -3
  325. package/dist/cjs/hooks/index.js +5 -4
  326. package/dist/cjs/hooks/index.js.map +3 -3
  327. package/dist/cjs/hooks/use-appearance.d.ts.map +1 -1
  328. package/dist/cjs/hooks/use-appearance.js +4 -3
  329. package/dist/cjs/hooks/use-appearance.js.map +3 -3
  330. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  331. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  332. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +2 -1
  333. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +3 -3
  334. package/dist/cjs/hooks/use-breakpoint.js +1 -0
  335. package/dist/cjs/hooks/use-breakpoint.js.map +1 -1
  336. package/dist/cjs/hooks/use-live-announcer.js +1 -0
  337. package/dist/cjs/hooks/use-live-announcer.js.map +1 -1
  338. package/dist/cjs/hooks/use-prop-synced-state.js +1 -0
  339. package/dist/cjs/hooks/use-prop-synced-state.js.map +1 -1
  340. package/dist/cjs/hooks/use-scroll-edges.js +1 -0
  341. package/dist/cjs/hooks/use-scroll-edges.js.map +1 -1
  342. package/dist/cjs/hooks/use-thumb-sync.js +1 -0
  343. package/dist/cjs/hooks/use-thumb-sync.js.map +1 -1
  344. package/dist/cjs/hooks/use-toggle-state.js +1 -0
  345. package/dist/cjs/hooks/use-toggle-state.js.map +1 -1
  346. package/dist/cjs/hooks/use-tooltip-wrapper.js +1 -0
  347. package/dist/cjs/hooks/use-tooltip-wrapper.js.map +1 -1
  348. package/dist/cjs/index.js +6 -5
  349. package/dist/cjs/index.js.map +4 -4
  350. package/dist/cjs/props/gap.props.d.ts +4 -4
  351. package/dist/cjs/props/gap.props.js.map +1 -1
  352. package/dist/cjs/props/index.js +1 -1
  353. package/dist/cjs/props/index.js.map +3 -3
  354. package/dist/esm/chunk-2EXOL2BR.js +3 -0
  355. package/dist/esm/chunk-2EXOL2BR.js.map +7 -0
  356. package/dist/esm/chunk-2IU5XPR2.js +3 -0
  357. package/dist/esm/chunk-2IU5XPR2.js.map +7 -0
  358. package/dist/esm/chunk-2IUGM657.js +3 -0
  359. package/dist/esm/chunk-2IUGM657.js.map +7 -0
  360. package/dist/esm/{chunk-JYQGCXXI.js → chunk-2VSRZ4IT.js} +2 -1
  361. package/dist/esm/{chunk-JYQGCXXI.js.map → chunk-2VSRZ4IT.js.map} +1 -1
  362. package/dist/esm/chunk-2XZ7477Y.js +3 -0
  363. package/dist/esm/{chunk-NC3CJUE3.js.map → chunk-2XZ7477Y.js.map} +1 -1
  364. package/dist/esm/{chunk-GNTNGLYR.js → chunk-2Z2I27ZS.js} +3 -2
  365. package/dist/esm/{chunk-GNTNGLYR.js.map → chunk-2Z2I27ZS.js.map} +1 -1
  366. package/dist/esm/{chunk-PALE5UWK.js → chunk-3223MHQK.js} +3 -2
  367. package/dist/esm/{chunk-PALE5UWK.js.map → chunk-3223MHQK.js.map} +1 -1
  368. package/dist/esm/{chunk-MPTTUBFU.js → chunk-3H23GRNQ.js} +3 -2
  369. package/dist/esm/{chunk-MPTTUBFU.js.map → chunk-3H23GRNQ.js.map} +2 -2
  370. package/dist/esm/chunk-3LIF53YY.js +13 -0
  371. package/dist/esm/chunk-3LIF53YY.js.map +7 -0
  372. package/dist/esm/chunk-3QWGSRYC.js +3 -0
  373. package/dist/esm/chunk-3QWGSRYC.js.map +7 -0
  374. package/dist/esm/chunk-3WZLXGUE.js +3 -0
  375. package/dist/esm/chunk-3WZLXGUE.js.map +7 -0
  376. package/dist/esm/chunk-45O3JZWQ.js +6 -0
  377. package/dist/esm/chunk-45O3JZWQ.js.map +7 -0
  378. package/dist/esm/chunk-4ABQ6CDI.js +3 -0
  379. package/dist/esm/chunk-4ABQ6CDI.js.map +7 -0
  380. package/dist/esm/{chunk-IAEAXIBI.js → chunk-4J7QDLKI.js} +3 -2
  381. package/dist/esm/{chunk-IAEAXIBI.js.map → chunk-4J7QDLKI.js.map} +1 -1
  382. package/dist/esm/{chunk-4QKZYCCH.js → chunk-4Q5PUIDJ.js} +3 -2
  383. package/dist/esm/{chunk-4QKZYCCH.js.map → chunk-4Q5PUIDJ.js.map} +1 -1
  384. package/dist/esm/chunk-54HUG34P.js +3 -0
  385. package/dist/esm/chunk-54HUG34P.js.map +7 -0
  386. package/dist/esm/chunk-5EP3UTM7.js +3 -0
  387. package/dist/esm/{chunk-Q4IA622Q.js.map → chunk-5EP3UTM7.js.map} +1 -1
  388. package/dist/esm/chunk-5JYSYTHA.js +3 -0
  389. package/dist/esm/chunk-5JYSYTHA.js.map +7 -0
  390. package/dist/esm/{chunk-FWB47YCH.js → chunk-5KMEUZWN.js} +2 -1
  391. package/dist/esm/{chunk-FWB47YCH.js.map → chunk-5KMEUZWN.js.map} +1 -1
  392. package/dist/esm/{chunk-7MC7N4BC.js → chunk-5KQCG7AV.js} +2 -1
  393. package/dist/esm/{chunk-7MC7N4BC.js.map → chunk-5KQCG7AV.js.map} +1 -1
  394. package/dist/esm/chunk-5RFDCAKC.js +3 -0
  395. package/dist/esm/{chunk-SKOYHBIE.js.map → chunk-5RFDCAKC.js.map} +1 -1
  396. package/dist/esm/{chunk-BIITGC3Z.js → chunk-5WTSKXAE.js} +3 -2
  397. package/dist/esm/{chunk-BIITGC3Z.js.map → chunk-5WTSKXAE.js.map} +1 -1
  398. package/dist/esm/{chunk-OSSNMF5U.js → chunk-647DRBXQ.js} +3 -2
  399. package/dist/esm/{chunk-OSSNMF5U.js.map → chunk-647DRBXQ.js.map} +1 -1
  400. package/dist/esm/{chunk-KKMOGHIY.js → chunk-64EFWPHI.js} +3 -2
  401. package/dist/esm/{chunk-KKMOGHIY.js.map → chunk-64EFWPHI.js.map} +1 -1
  402. package/dist/esm/{chunk-BWLCTTTN.js → chunk-65KD6WS6.js} +3 -2
  403. package/dist/esm/{chunk-BWLCTTTN.js.map → chunk-65KD6WS6.js.map} +2 -2
  404. package/dist/esm/{chunk-RWTSGUVJ.js → chunk-6AMWYEM7.js} +3 -2
  405. package/dist/esm/{chunk-RWTSGUVJ.js.map → chunk-6AMWYEM7.js.map} +1 -1
  406. package/dist/esm/{chunk-ELAW7ZUG.js → chunk-6FLLFCBU.js} +2 -2
  407. package/dist/esm/{chunk-4P6TKZCA.js → chunk-6UZT3ZLO.js} +3 -2
  408. package/dist/esm/{chunk-4P6TKZCA.js.map → chunk-6UZT3ZLO.js.map} +1 -1
  409. package/dist/esm/chunk-7IHBNDCE.js +3 -0
  410. package/dist/esm/{chunk-WMVR2XBR.js.map → chunk-7IHBNDCE.js.map} +2 -2
  411. package/dist/esm/chunk-7J7RPEPB.js +3 -0
  412. package/dist/esm/chunk-7J7RPEPB.js.map +7 -0
  413. package/dist/esm/chunk-7N2Q5WOM.js +3 -0
  414. package/dist/esm/chunk-7N2Q5WOM.js.map +7 -0
  415. package/dist/esm/{chunk-25FNCKUM.js → chunk-7ROKZHH2.js} +3 -2
  416. package/dist/esm/{chunk-25FNCKUM.js.map → chunk-7ROKZHH2.js.map} +1 -1
  417. package/dist/esm/chunk-7VJF6EXN.js +3 -0
  418. package/dist/esm/chunk-7VJF6EXN.js.map +7 -0
  419. package/dist/esm/chunk-A2OMWZI7.js +2 -0
  420. package/dist/esm/{chunk-FDJV5RXX.js → chunk-A7QRPXXB.js} +3 -2
  421. package/dist/esm/{chunk-FDJV5RXX.js.map → chunk-A7QRPXXB.js.map} +1 -1
  422. package/dist/esm/chunk-AG2YETE6.js +3 -0
  423. package/dist/esm/chunk-AG2YETE6.js.map +7 -0
  424. package/dist/esm/{chunk-4BU4R7UM.js → chunk-AOBY2OUZ.js} +3 -2
  425. package/dist/esm/{chunk-4BU4R7UM.js.map → chunk-AOBY2OUZ.js.map} +1 -1
  426. package/dist/esm/{chunk-XEZXKPLE.js → chunk-AXODGYRY.js} +2 -1
  427. package/dist/esm/{chunk-XEZXKPLE.js.map → chunk-AXODGYRY.js.map} +1 -1
  428. package/dist/esm/chunk-AYKOOEZR.js +2 -0
  429. package/dist/esm/{chunk-YHYPIJCR.js → chunk-AZHSPPBV.js} +3 -2
  430. package/dist/esm/{chunk-YHYPIJCR.js.map → chunk-AZHSPPBV.js.map} +1 -1
  431. package/dist/esm/{chunk-ERNM3KVF.js → chunk-B6YGNB3V.js} +2 -1
  432. package/dist/esm/{chunk-ERNM3KVF.js.map → chunk-B6YGNB3V.js.map} +1 -1
  433. package/dist/esm/chunk-BMKUGZ4I.js +3 -0
  434. package/dist/esm/{chunk-VPSMETY2.js.map → chunk-BMKUGZ4I.js.map} +1 -1
  435. package/dist/esm/chunk-BOLSK63X.js +3 -0
  436. package/dist/esm/{chunk-X4A3XRBY.js.map → chunk-BOLSK63X.js.map} +1 -1
  437. package/dist/esm/chunk-BUZGRMDD.js +3 -0
  438. package/dist/esm/chunk-BUZGRMDD.js.map +7 -0
  439. package/dist/esm/{chunk-IDOZJVO6.js → chunk-CAAEEHGQ.js} +3 -2
  440. package/dist/esm/{chunk-IDOZJVO6.js.map → chunk-CAAEEHGQ.js.map} +1 -1
  441. package/dist/esm/{chunk-3QZBWH2A.js → chunk-CKJXTEVO.js} +3 -2
  442. package/dist/esm/chunk-CKJXTEVO.js.map +7 -0
  443. package/dist/esm/chunk-CLJ6SEGP.js +3 -0
  444. package/dist/esm/chunk-CLJ6SEGP.js.map +7 -0
  445. package/dist/esm/chunk-CR65RYGM.js +3 -0
  446. package/dist/esm/chunk-CR65RYGM.js.map +7 -0
  447. package/dist/esm/{chunk-H5BYPX6V.js → chunk-CRCYUJMK.js} +3 -2
  448. package/dist/esm/{chunk-H5BYPX6V.js.map → chunk-CRCYUJMK.js.map} +1 -1
  449. package/dist/esm/chunk-CV7QQTI3.js +3 -0
  450. package/dist/esm/chunk-CV7QQTI3.js.map +7 -0
  451. package/dist/esm/chunk-CYTPMHSJ.js +3 -0
  452. package/dist/esm/chunk-CYTPMHSJ.js.map +7 -0
  453. package/dist/esm/{chunk-GYP66ZK2.js → chunk-D4P7332M.js} +3 -2
  454. package/dist/esm/{chunk-GYP66ZK2.js.map → chunk-D4P7332M.js.map} +1 -1
  455. package/dist/esm/chunk-DI7RUMLO.js +3 -0
  456. package/dist/esm/chunk-DI7RUMLO.js.map +7 -0
  457. package/dist/esm/{chunk-OY5NT7VT.js → chunk-DVXDFCCV.js} +3 -2
  458. package/dist/esm/{chunk-OY5NT7VT.js.map → chunk-DVXDFCCV.js.map} +1 -1
  459. package/dist/esm/chunk-E4EMG3RC.js +3 -0
  460. package/dist/esm/chunk-E4EMG3RC.js.map +7 -0
  461. package/dist/esm/chunk-EAIQIW23.js +3 -0
  462. package/dist/esm/{chunk-4ZOVV3TY.js.map → chunk-EAIQIW23.js.map} +3 -3
  463. package/dist/esm/chunk-ENAW44VE.js +3 -0
  464. package/dist/esm/chunk-ENAW44VE.js.map +7 -0
  465. package/dist/esm/chunk-EVCQ6TG5.js +3 -0
  466. package/dist/esm/{chunk-VUPIJNG2.js.map → chunk-EVCQ6TG5.js.map} +2 -2
  467. package/dist/esm/{chunk-RAVZ7F5L.js → chunk-EY6TCYGG.js} +3 -2
  468. package/dist/esm/{chunk-RAVZ7F5L.js.map → chunk-EY6TCYGG.js.map} +1 -1
  469. package/dist/esm/chunk-FFJE25TJ.js +3 -0
  470. package/dist/esm/chunk-FFJE25TJ.js.map +7 -0
  471. package/dist/esm/chunk-FI32HA4X.js +3 -0
  472. package/dist/esm/{chunk-YXLDRDHW.js.map → chunk-FI32HA4X.js.map} +3 -3
  473. package/dist/esm/{chunk-NA237RHQ.js → chunk-FJLYSZV3.js} +1 -1
  474. package/dist/esm/{chunk-NA237RHQ.js.map → chunk-FJLYSZV3.js.map} +1 -1
  475. package/dist/esm/{chunk-DNOQ6E3W.js → chunk-FM3GBCX5.js} +3 -2
  476. package/dist/esm/{chunk-DNOQ6E3W.js.map → chunk-FM3GBCX5.js.map} +1 -1
  477. package/dist/esm/chunk-G32GSPNO.js +3 -0
  478. package/dist/esm/chunk-G32GSPNO.js.map +7 -0
  479. package/dist/esm/{chunk-TBZO22XK.js → chunk-G66WDIIV.js} +3 -2
  480. package/dist/esm/{chunk-TBZO22XK.js.map → chunk-G66WDIIV.js.map} +1 -1
  481. package/dist/esm/{chunk-PN3RQFSU.js → chunk-GHUAUFG7.js} +2 -1
  482. package/dist/esm/{chunk-PN3RQFSU.js.map → chunk-GHUAUFG7.js.map} +1 -1
  483. package/dist/esm/chunk-GHWEXMF6.js +3 -0
  484. package/dist/esm/chunk-GHWEXMF6.js.map +7 -0
  485. package/dist/esm/{chunk-62ZGP4ET.js → chunk-GKDGNPBD.js} +2 -1
  486. package/dist/esm/{chunk-62ZGP4ET.js.map → chunk-GKDGNPBD.js.map} +1 -1
  487. package/dist/esm/{chunk-W6BN5QLH.js → chunk-GNPTPIL7.js} +3 -2
  488. package/dist/esm/{chunk-W6BN5QLH.js.map → chunk-GNPTPIL7.js.map} +1 -1
  489. package/dist/esm/chunk-GPQSC6GL.js +3 -0
  490. package/dist/esm/chunk-GPQSC6GL.js.map +7 -0
  491. package/dist/esm/{chunk-THUBY6L2.js → chunk-GZ333J7L.js} +3 -2
  492. package/dist/esm/{chunk-THUBY6L2.js.map → chunk-GZ333J7L.js.map} +1 -1
  493. package/dist/esm/chunk-HBWBPBSA.js +3 -0
  494. package/dist/esm/chunk-HBWBPBSA.js.map +7 -0
  495. package/dist/esm/chunk-I3SRUPUP.js +3 -0
  496. package/dist/esm/chunk-I3SRUPUP.js.map +7 -0
  497. package/dist/esm/{chunk-3XHTJZNP.js → chunk-I6SMGWS5.js} +3 -2
  498. package/dist/esm/{chunk-3XHTJZNP.js.map → chunk-I6SMGWS5.js.map} +1 -1
  499. package/dist/esm/chunk-ILWS2JUE.js +3 -0
  500. package/dist/esm/chunk-ILWS2JUE.js.map +7 -0
  501. package/dist/esm/{chunk-QWDCLL6R.js → chunk-IN2WND4B.js} +3 -2
  502. package/dist/esm/{chunk-QWDCLL6R.js.map → chunk-IN2WND4B.js.map} +1 -1
  503. package/dist/esm/chunk-IO43RGNR.js +3 -0
  504. package/dist/esm/chunk-IO43RGNR.js.map +7 -0
  505. package/dist/esm/{chunk-UY6WJUNA.js → chunk-IQ2RMFOM.js} +3 -2
  506. package/dist/esm/{chunk-UY6WJUNA.js.map → chunk-IQ2RMFOM.js.map} +2 -2
  507. package/dist/esm/{chunk-DCNHG6VN.js → chunk-IZIDRDQW.js} +3 -2
  508. package/dist/esm/{chunk-DCNHG6VN.js.map → chunk-IZIDRDQW.js.map} +1 -1
  509. package/dist/esm/{chunk-7FTUTUMD.js → chunk-IZXML75Y.js} +2 -2
  510. package/dist/esm/chunk-J3QIUJ6F.js +2 -0
  511. package/dist/esm/chunk-JIF77MRB.js +3 -0
  512. package/dist/esm/chunk-JIF77MRB.js.map +7 -0
  513. package/dist/esm/{chunk-PBFSBHBS.js → chunk-JUY7CBSL.js} +2 -2
  514. package/dist/esm/chunk-JZ5Z53MN.js +2 -0
  515. package/dist/esm/{chunk-YEHM3FZN.js → chunk-JZVLP2VF.js} +3 -2
  516. package/dist/esm/{chunk-YEHM3FZN.js.map → chunk-JZVLP2VF.js.map} +1 -1
  517. package/dist/esm/chunk-KNBSG2WA.js +3 -0
  518. package/dist/esm/chunk-KNBSG2WA.js.map +7 -0
  519. package/dist/esm/{chunk-IWCFJJBI.js → chunk-KOAWATCI.js} +2 -1
  520. package/dist/esm/{chunk-IWCFJJBI.js.map → chunk-KOAWATCI.js.map} +1 -1
  521. package/dist/esm/chunk-KRFXTPEW.js +3 -0
  522. package/dist/esm/{chunk-63PQNLFJ.js.map → chunk-KRFXTPEW.js.map} +1 -1
  523. package/dist/esm/chunk-KSYHZCLD.js +3 -0
  524. package/dist/esm/{chunk-EZYXYLR2.js.map → chunk-KSYHZCLD.js.map} +1 -1
  525. package/dist/esm/{chunk-VW46DG7H.js → chunk-L4NF3Q2T.js} +3 -2
  526. package/dist/esm/{chunk-VW46DG7H.js.map → chunk-L4NF3Q2T.js.map} +1 -1
  527. package/dist/esm/chunk-L54FWKJE.js +3 -0
  528. package/dist/esm/chunk-L54FWKJE.js.map +7 -0
  529. package/dist/esm/{chunk-XTDXXQTB.js → chunk-L66IUPDW.js} +3 -2
  530. package/dist/esm/{chunk-XTDXXQTB.js.map → chunk-L66IUPDW.js.map} +1 -1
  531. package/dist/esm/{chunk-WX7SX5BN.js → chunk-LB2HB4NG.js} +3 -2
  532. package/dist/esm/{chunk-WX7SX5BN.js.map → chunk-LB2HB4NG.js.map} +2 -2
  533. package/dist/esm/{chunk-VVWYAVHM.js → chunk-LCG3JZ3C.js} +3 -2
  534. package/dist/esm/{chunk-VVWYAVHM.js.map → chunk-LCG3JZ3C.js.map} +1 -1
  535. package/dist/esm/chunk-LPLW7OWA.js +3 -0
  536. package/dist/esm/chunk-LPLW7OWA.js.map +7 -0
  537. package/dist/esm/chunk-M37GE2TE.js +3 -0
  538. package/dist/esm/{chunk-UONSKZQT.js.map → chunk-M37GE2TE.js.map} +1 -1
  539. package/dist/esm/{chunk-5YLKKQFK.js → chunk-MAA6LEE2.js} +2 -1
  540. package/dist/esm/{chunk-5YLKKQFK.js.map → chunk-MAA6LEE2.js.map} +1 -1
  541. package/dist/esm/chunk-MXIVYALY.js +3 -0
  542. package/dist/esm/chunk-MXIVYALY.js.map +7 -0
  543. package/dist/esm/chunk-N53NJCEM.js +3 -0
  544. package/dist/esm/chunk-N53NJCEM.js.map +7 -0
  545. package/dist/esm/{chunk-LXTGEI62.js → chunk-NBVCQQSY.js} +3 -2
  546. package/dist/esm/{chunk-LXTGEI62.js.map → chunk-NBVCQQSY.js.map} +1 -1
  547. package/dist/esm/chunk-NG54K6FL.js +2 -0
  548. package/dist/esm/chunk-NMQGDBLD.js +3 -0
  549. package/dist/esm/chunk-NMQGDBLD.js.map +7 -0
  550. package/dist/esm/chunk-OAJ5DARR.js +3 -0
  551. package/dist/esm/chunk-OAJ5DARR.js.map +7 -0
  552. package/dist/esm/chunk-OKQAVYW4.js +3 -0
  553. package/dist/esm/chunk-OKQAVYW4.js.map +7 -0
  554. package/dist/esm/chunk-PF67GJ5D.js +3 -0
  555. package/dist/esm/chunk-PF67GJ5D.js.map +7 -0
  556. package/dist/esm/chunk-PHWT772P.js +3 -0
  557. package/dist/esm/{chunk-XZQSSRTG.js.map → chunk-PHWT772P.js.map} +1 -1
  558. package/dist/esm/{chunk-PM6QY3JO.js → chunk-PPQ7URZL.js} +3 -2
  559. package/dist/esm/chunk-PPQ7URZL.js.map +7 -0
  560. package/dist/esm/{chunk-FNAE6HUI.js → chunk-PT45Q47V.js} +3 -2
  561. package/dist/esm/{chunk-FNAE6HUI.js.map → chunk-PT45Q47V.js.map} +1 -1
  562. package/dist/esm/{chunk-HCBR74BW.js → chunk-PT4KBXXP.js} +3 -2
  563. package/dist/esm/{chunk-HCBR74BW.js.map → chunk-PT4KBXXP.js.map} +1 -1
  564. package/dist/esm/{chunk-CHPT42BY.js → chunk-PZ6Z7WTR.js} +3 -2
  565. package/dist/esm/{chunk-CHPT42BY.js.map → chunk-PZ6Z7WTR.js.map} +1 -1
  566. package/dist/esm/{chunk-PSPENFPH.js → chunk-PZCQDZVJ.js} +3 -2
  567. package/dist/esm/{chunk-PSPENFPH.js.map → chunk-PZCQDZVJ.js.map} +1 -1
  568. package/dist/esm/{chunk-I53SGTKV.js → chunk-QH64BDXO.js} +3 -2
  569. package/dist/esm/{chunk-I53SGTKV.js.map → chunk-QH64BDXO.js.map} +1 -1
  570. package/dist/esm/{chunk-LUNWI377.js → chunk-QQY4WFJL.js} +3 -2
  571. package/dist/esm/{chunk-LUNWI377.js.map → chunk-QQY4WFJL.js.map} +1 -1
  572. package/dist/esm/{chunk-BE7LMBBC.js → chunk-RIHTVZVJ.js} +3 -2
  573. package/dist/esm/{chunk-BE7LMBBC.js.map → chunk-RIHTVZVJ.js.map} +1 -1
  574. package/dist/esm/{chunk-3XZOE2IQ.js → chunk-RVPLXLRA.js} +3 -2
  575. package/dist/esm/{chunk-3XZOE2IQ.js.map → chunk-RVPLXLRA.js.map} +1 -1
  576. package/dist/esm/{chunk-GS2QSZUR.js → chunk-SCIFT27R.js} +2 -1
  577. package/dist/esm/{chunk-GS2QSZUR.js.map → chunk-SCIFT27R.js.map} +1 -1
  578. package/dist/esm/chunk-SGJKXIWG.js +3 -0
  579. package/dist/esm/{chunk-DFGY2NZB.js.map → chunk-SGJKXIWG.js.map} +1 -1
  580. package/dist/esm/chunk-SHLERRO3.js +3 -0
  581. package/dist/esm/chunk-SHLERRO3.js.map +7 -0
  582. package/dist/esm/chunk-SV3CYQY5.js +3 -0
  583. package/dist/esm/{chunk-LVCUY2OS.js.map → chunk-SV3CYQY5.js.map} +2 -2
  584. package/dist/esm/chunk-TDT2CNES.js +2 -0
  585. package/dist/esm/chunk-TDT2CNES.js.map +7 -0
  586. package/dist/esm/chunk-TGRHRMQI.js +3 -0
  587. package/dist/esm/chunk-TGRHRMQI.js.map +7 -0
  588. package/dist/esm/{chunk-HIEGLLY7.js → chunk-TGUWRU7N.js} +2 -1
  589. package/dist/esm/{chunk-HIEGLLY7.js.map → chunk-TGUWRU7N.js.map} +1 -1
  590. package/dist/esm/{chunk-7ZOGH5NT.js → chunk-U5GQ3IFS.js} +2 -1
  591. package/dist/esm/{chunk-7ZOGH5NT.js.map → chunk-U5GQ3IFS.js.map} +1 -1
  592. package/dist/esm/{chunk-RKZVXVBN.js → chunk-UFJGZUKK.js} +3 -2
  593. package/dist/esm/chunk-UFJGZUKK.js.map +7 -0
  594. package/dist/esm/chunk-UUQGOQ5H.js +3 -0
  595. package/dist/esm/{chunk-G2JD52O5.js.map → chunk-UUQGOQ5H.js.map} +1 -1
  596. package/dist/esm/chunk-UZAS4PYM.js +3 -0
  597. package/dist/esm/chunk-UZAS4PYM.js.map +7 -0
  598. package/dist/esm/{chunk-OS3FCYZY.js → chunk-VQPANPMI.js} +2 -1
  599. package/dist/esm/chunk-VVBSYWUA.js +3 -0
  600. package/dist/esm/chunk-VVBSYWUA.js.map +7 -0
  601. package/dist/esm/chunk-WCGQ4IDE.js +3 -0
  602. package/dist/esm/{chunk-H3IAGAEL.js.map → chunk-WCGQ4IDE.js.map} +1 -1
  603. package/dist/esm/{chunk-HWQ3NTJP.js → chunk-WEBNIUEX.js} +2 -1
  604. package/dist/esm/{chunk-HWQ3NTJP.js.map → chunk-WEBNIUEX.js.map} +1 -1
  605. package/dist/esm/chunk-WH7PQSSG.js +2 -0
  606. package/dist/esm/{chunk-KL73COYX.js → chunk-WMZLMZHB.js} +2 -1
  607. package/dist/esm/{chunk-KL73COYX.js.map → chunk-WMZLMZHB.js.map} +1 -1
  608. package/dist/esm/{chunk-GBQZ4Z2H.js → chunk-WN3WMFAM.js} +3 -2
  609. package/dist/esm/{chunk-GBQZ4Z2H.js.map → chunk-WN3WMFAM.js.map} +1 -1
  610. package/dist/esm/{chunk-ETQNRMHU.js → chunk-WT2SYGTU.js} +3 -2
  611. package/dist/esm/{chunk-ETQNRMHU.js.map → chunk-WT2SYGTU.js.map} +1 -1
  612. package/dist/esm/{chunk-SUPFDIJL.js → chunk-WTP2KIK3.js} +2 -1
  613. package/dist/esm/{chunk-SUPFDIJL.js.map → chunk-WTP2KIK3.js.map} +1 -1
  614. package/dist/esm/{chunk-AGAQC4HH.js → chunk-WUCBFB25.js} +2 -1
  615. package/dist/esm/{chunk-AGAQC4HH.js.map → chunk-WUCBFB25.js.map} +1 -1
  616. package/dist/esm/chunk-WZKSLTBH.js +3 -0
  617. package/dist/esm/{chunk-BJUCBOGU.js.map → chunk-WZKSLTBH.js.map} +1 -1
  618. package/dist/esm/chunk-X272YV2E.js +3 -0
  619. package/dist/esm/chunk-X272YV2E.js.map +7 -0
  620. package/dist/esm/{chunk-CN6F4REJ.js → chunk-XH2CRCXR.js} +2 -1
  621. package/dist/esm/{chunk-CN6F4REJ.js.map → chunk-XH2CRCXR.js.map} +1 -1
  622. package/dist/esm/{chunk-KZEZDBE7.js → chunk-XL5OHW6Z.js} +3 -2
  623. package/dist/esm/{chunk-KZEZDBE7.js.map → chunk-XL5OHW6Z.js.map} +1 -1
  624. package/dist/esm/chunk-XMHNOIPB.js +3 -0
  625. package/dist/esm/{chunk-3BUQ7ADW.js.map → chunk-XMHNOIPB.js.map} +1 -1
  626. package/dist/esm/chunk-XU74PNM2.js +3 -0
  627. package/dist/esm/chunk-XU74PNM2.js.map +7 -0
  628. package/dist/esm/{chunk-3J6AUDID.js → chunk-XUCR7L4G.js} +2 -1
  629. package/dist/esm/{chunk-3J6AUDID.js.map → chunk-XUCR7L4G.js.map} +1 -1
  630. package/dist/esm/chunk-XVDT6DQZ.js +3 -0
  631. package/dist/esm/{chunk-TZTUPQYK.js.map → chunk-XVDT6DQZ.js.map} +1 -1
  632. package/dist/esm/{chunk-2N2AQNJH.js → chunk-Y2DBXOLT.js} +2 -1
  633. package/dist/esm/{chunk-2N2AQNJH.js.map → chunk-Y2DBXOLT.js.map} +1 -1
  634. package/dist/esm/chunk-YD2D73LF.js +3 -0
  635. package/dist/esm/chunk-YD2D73LF.js.map +7 -0
  636. package/dist/esm/chunk-YIKLO2XL.js +3 -0
  637. package/dist/esm/chunk-YIKLO2XL.js.map +7 -0
  638. package/dist/esm/chunk-YNCI5PY6.js +3 -0
  639. package/dist/esm/chunk-YNCI5PY6.js.map +7 -0
  640. package/dist/esm/chunk-YOSLXJI5.js +3 -0
  641. package/dist/esm/chunk-YOSLXJI5.js.map +7 -0
  642. package/dist/esm/{chunk-I4FLQELQ.js → chunk-YVZTQA2L.js} +3 -2
  643. package/dist/esm/{chunk-I4FLQELQ.js.map → chunk-YVZTQA2L.js.map} +1 -1
  644. package/dist/esm/chunk-YWG476GC.js +3 -0
  645. package/dist/esm/{chunk-MGQ4A2FI.js.map → chunk-YWG476GC.js.map} +1 -1
  646. package/dist/esm/chunk-YZZMQ457.js +3 -0
  647. package/dist/esm/{chunk-S6GWR6EZ.js.map → chunk-YZZMQ457.js.map} +1 -1
  648. package/dist/esm/chunk-Z27REN6T.js +3 -0
  649. package/dist/esm/chunk-Z27REN6T.js.map +7 -0
  650. package/dist/esm/{chunk-FVY44PTM.js → chunk-ZFDHZEWN.js} +3 -2
  651. package/dist/esm/{chunk-FVY44PTM.js.map → chunk-ZFDHZEWN.js.map} +1 -1
  652. package/dist/esm/chunk-ZPWKWESI.js +3 -0
  653. package/dist/esm/chunk-ZPWKWESI.js.map +7 -0
  654. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  655. package/dist/esm/components/_internal/base-button.js +2 -1
  656. package/dist/esm/components/_internal/base-button.props.js +2 -1
  657. package/dist/esm/components/_internal/base-checkbox.props.js +2 -1
  658. package/dist/esm/components/_internal/base-menu.props.js +2 -1
  659. package/dist/esm/components/_internal/base-menu.utils.js +2 -1
  660. package/dist/esm/components/_internal/base-radio.props.js +2 -1
  661. package/dist/esm/components/_internal/base-tab-list.props.js +2 -1
  662. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  663. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  664. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +2 -1
  665. package/dist/esm/components/_internal/menu-context.d.ts +10 -0
  666. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  667. package/dist/esm/components/_internal/menu-context.js +2 -1
  668. package/dist/esm/components/_internal/pane-chrome.d.ts +3 -1
  669. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  670. package/dist/esm/components/_internal/pane-chrome.js +2 -1
  671. package/dist/esm/components/_internal/shell-bottom.d.ts +1 -1
  672. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  673. package/dist/esm/components/_internal/shell-bottom.js +2 -1
  674. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  675. package/dist/esm/components/_internal/shell-handles.js +2 -1
  676. package/dist/esm/components/_internal/shell-inspector.d.ts +1 -1
  677. package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
  678. package/dist/esm/components/_internal/shell-inspector.js +2 -1
  679. package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -1
  680. package/dist/esm/components/_internal/shell-pane.js +2 -1
  681. package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -1
  682. package/dist/esm/components/_internal/shell-resizable.js +2 -1
  683. package/dist/esm/components/_internal/shell-resize.js +2 -1
  684. package/dist/esm/components/_internal/shell-rest.js +2 -1
  685. package/dist/esm/components/_internal/shell-sidebar.d.ts +1 -1
  686. package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
  687. package/dist/esm/components/_internal/shell-sidebar.js +2 -1
  688. package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
  689. package/dist/esm/components/_internal/shell-store.js +2 -1
  690. package/dist/esm/components/accessible-icon.js +2 -1
  691. package/dist/esm/components/accordion.d.ts.map +1 -1
  692. package/dist/esm/components/accordion.js +2 -1
  693. package/dist/esm/components/accordion.props.js +2 -1
  694. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  695. package/dist/esm/components/alert-dialog.js +2 -1
  696. package/dist/esm/components/alert-dialog.props.js +2 -1
  697. package/dist/esm/components/avatar.d.ts.map +1 -1
  698. package/dist/esm/components/avatar.js +2 -1
  699. package/dist/esm/components/avatar.props.js +2 -1
  700. package/dist/esm/components/blockquote.js +2 -1
  701. package/dist/esm/components/blockquote.props.js +2 -1
  702. package/dist/esm/components/box.js +2 -1
  703. package/dist/esm/components/box.props.js +2 -1
  704. package/dist/esm/components/button.d.ts.map +1 -1
  705. package/dist/esm/components/button.js +2 -1
  706. package/dist/esm/components/button.props.js +2 -1
  707. package/dist/esm/components/card.js +2 -1
  708. package/dist/esm/components/card.props.js +2 -1
  709. package/dist/esm/components/chatbar.d.ts.map +1 -1
  710. package/dist/esm/components/chatbar.js +2 -1
  711. package/dist/esm/components/checkbox-group.js +2 -1
  712. package/dist/esm/components/checkbox-group.primitive.js +2 -1
  713. package/dist/esm/components/checkbox-group.props.js +2 -1
  714. package/dist/esm/components/checkbox.js +2 -1
  715. package/dist/esm/components/checkbox.props.js +2 -1
  716. package/dist/esm/components/chip.js +2 -1
  717. package/dist/esm/components/chip.props.js +2 -1
  718. package/dist/esm/components/code.js +2 -1
  719. package/dist/esm/components/code.props.js +2 -1
  720. package/dist/esm/components/combobox.d.ts.map +1 -1
  721. package/dist/esm/components/combobox.js +2 -1
  722. package/dist/esm/components/combobox.props.js +2 -1
  723. package/dist/esm/components/context-menu.d.ts +1 -2
  724. package/dist/esm/components/context-menu.d.ts.map +1 -1
  725. package/dist/esm/components/context-menu.js +2 -1
  726. package/dist/esm/components/context-menu.props.js +2 -1
  727. package/dist/esm/components/dialog.js +2 -1
  728. package/dist/esm/components/dialog.props.js +2 -1
  729. package/dist/esm/components/dropdown-menu.d.ts +1 -2
  730. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  731. package/dist/esm/components/dropdown-menu.js +2 -1
  732. package/dist/esm/components/dropdown-menu.props.js +2 -1
  733. package/dist/esm/components/flex.js +2 -1
  734. package/dist/esm/components/flex.props.js +2 -1
  735. package/dist/esm/components/grid.js +2 -1
  736. package/dist/esm/components/grid.props.js +2 -1
  737. package/dist/esm/components/heading.d.ts +2 -2
  738. package/dist/esm/components/heading.d.ts.map +1 -1
  739. package/dist/esm/components/heading.js +2 -1
  740. package/dist/esm/components/heading.props.d.ts +1 -1
  741. package/dist/esm/components/heading.props.js +2 -1
  742. package/dist/esm/components/icons.js +2 -1
  743. package/dist/esm/components/image.d.ts +9 -2
  744. package/dist/esm/components/image.d.ts.map +1 -1
  745. package/dist/esm/components/image.js +2 -1
  746. package/dist/esm/components/image.props.js +2 -1
  747. package/dist/esm/components/index.d.ts +1 -1
  748. package/dist/esm/components/index.d.ts.map +1 -1
  749. package/dist/esm/components/index.js +2 -1
  750. package/dist/esm/components/kbd.js +2 -1
  751. package/dist/esm/components/kbd.props.js +2 -1
  752. package/dist/esm/components/link.js +2 -1
  753. package/dist/esm/components/link.props.js +2 -1
  754. package/dist/esm/components/message-scroller.d.ts +2 -2
  755. package/dist/esm/components/message-scroller.d.ts.map +1 -1
  756. package/dist/esm/components/message-scroller.js +2 -1
  757. package/dist/esm/components/navbar.js +2 -1
  758. package/dist/esm/components/navbar.props.js +2 -1
  759. package/dist/esm/components/notice.js +2 -1
  760. package/dist/esm/components/popover.d.ts +3 -1
  761. package/dist/esm/components/popover.d.ts.map +1 -1
  762. package/dist/esm/components/popover.js +2 -1
  763. package/dist/esm/components/popover.props.js +2 -1
  764. package/dist/esm/components/portal.js +2 -1
  765. package/dist/esm/components/progress.d.ts.map +1 -1
  766. package/dist/esm/components/progress.js +2 -1
  767. package/dist/esm/components/progress.props.js +2 -1
  768. package/dist/esm/components/radio-group.js +2 -1
  769. package/dist/esm/components/radio-group.props.js +2 -1
  770. package/dist/esm/components/radio.js +2 -1
  771. package/dist/esm/components/radio.props.js +2 -1
  772. package/dist/esm/components/reset.js +2 -1
  773. package/dist/esm/components/schemas/base-button.schema.js +2 -1
  774. package/dist/esm/components/schemas/button.schema.js +2 -1
  775. package/dist/esm/components/schemas/index.js +2 -1
  776. package/dist/esm/components/schemas/index.js.map +1 -1
  777. package/dist/esm/components/schemas/shell.schema.js +2 -1
  778. package/dist/esm/components/schemas/toggle.schema.js +2 -1
  779. package/dist/esm/components/scroll-area.js +2 -1
  780. package/dist/esm/components/scroll-area.props.js +2 -1
  781. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  782. package/dist/esm/components/segmented-control.js +2 -1
  783. package/dist/esm/components/segmented-control.props.d.ts +0 -1
  784. package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
  785. package/dist/esm/components/segmented-control.props.js +2 -1
  786. package/dist/esm/components/select.d.ts.map +1 -1
  787. package/dist/esm/components/select.js +2 -1
  788. package/dist/esm/components/select.props.js +2 -1
  789. package/dist/esm/components/separator.d.ts.map +1 -1
  790. package/dist/esm/components/separator.js +2 -1
  791. package/dist/esm/components/separator.props.d.ts +1 -1
  792. package/dist/esm/components/separator.props.js +2 -1
  793. package/dist/esm/components/sheet.d.ts +1 -1
  794. package/dist/esm/components/sheet.d.ts.map +1 -1
  795. package/dist/esm/components/sheet.js +2 -1
  796. package/dist/esm/components/shell.context.js +2 -1
  797. package/dist/esm/components/shell.d.ts +5 -2
  798. package/dist/esm/components/shell.d.ts.map +1 -1
  799. package/dist/esm/components/shell.hooks.js +2 -1
  800. package/dist/esm/components/shell.js +2 -1
  801. package/dist/esm/components/shell.types.js +2 -1
  802. package/dist/esm/components/sidebar.d.ts.map +1 -1
  803. package/dist/esm/components/sidebar.js +2 -1
  804. package/dist/esm/components/slider.d.ts.map +1 -1
  805. package/dist/esm/components/slider.js +2 -1
  806. package/dist/esm/components/slider.props.d.ts +0 -2
  807. package/dist/esm/components/slider.props.d.ts.map +1 -1
  808. package/dist/esm/components/slider.props.js +2 -1
  809. package/dist/esm/components/slot.js +2 -1
  810. package/dist/esm/components/spinner.d.ts.map +1 -1
  811. package/dist/esm/components/spinner.js +2 -1
  812. package/dist/esm/components/spinner.props.js +2 -1
  813. package/dist/esm/components/switch.js +2 -1
  814. package/dist/esm/components/switch.props.js +2 -1
  815. package/dist/esm/components/table.d.ts.map +1 -1
  816. package/dist/esm/components/table.js +2 -1
  817. package/dist/esm/components/table.props.d.ts +0 -2
  818. package/dist/esm/components/table.props.d.ts.map +1 -1
  819. package/dist/esm/components/table.props.js +2 -1
  820. package/dist/esm/components/tabs.d.ts.map +1 -1
  821. package/dist/esm/components/tabs.js +2 -1
  822. package/dist/esm/components/tabs.props.js +2 -1
  823. package/dist/esm/components/text-area.d.ts.map +1 -1
  824. package/dist/esm/components/text-area.js +2 -1
  825. package/dist/esm/components/text-area.props.js +2 -1
  826. package/dist/esm/components/text-field.d.ts.map +1 -1
  827. package/dist/esm/components/text-field.js +2 -1
  828. package/dist/esm/components/text-field.props.js +2 -1
  829. package/dist/esm/components/text.js +2 -1
  830. package/dist/esm/components/text.props.js +2 -1
  831. package/dist/esm/components/theme.d.ts.map +1 -1
  832. package/dist/esm/components/theme.js +2 -1
  833. package/dist/esm/components/theme.props.js +2 -1
  834. package/dist/esm/components/toggle.js +2 -1
  835. package/dist/esm/components/toolbar.d.ts +4 -1
  836. package/dist/esm/components/toolbar.d.ts.map +1 -1
  837. package/dist/esm/components/toolbar.js +2 -1
  838. package/dist/esm/components/toolbar.props.js +2 -1
  839. package/dist/esm/components/tooltip.d.ts +13 -2
  840. package/dist/esm/components/tooltip.d.ts.map +1 -1
  841. package/dist/esm/components/tooltip.js +2 -1
  842. package/dist/esm/components/tooltip.props.js +2 -1
  843. package/dist/esm/components/virtual-menu.d.ts +19 -12
  844. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  845. package/dist/esm/components/virtual-menu.js +2 -1
  846. package/dist/esm/components/visually-hidden.js +2 -1
  847. package/dist/esm/helpers/compile-prop-defs.js +1 -1
  848. package/dist/esm/helpers/extract-margin-props.js +1 -1
  849. package/dist/esm/helpers/extract-props.js +1 -1
  850. package/dist/esm/helpers/font-config.js +1 -1
  851. package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -1
  852. package/dist/esm/helpers/get-margin-styles.js +1 -1
  853. package/dist/esm/helpers/get-matching-gray-color.js +1 -1
  854. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  855. package/dist/esm/helpers/get-subtree.js +1 -1
  856. package/dist/esm/helpers/has-own-property.js +1 -1
  857. package/dist/esm/helpers/index.js +1 -1
  858. package/dist/esm/helpers/inert.js +1 -1
  859. package/dist/esm/helpers/inert.js.map +1 -1
  860. package/dist/esm/helpers/is-responsive-object.js +1 -1
  861. package/dist/esm/helpers/map-prop-values.js +1 -1
  862. package/dist/esm/helpers/merge-styles.js +1 -1
  863. package/dist/esm/helpers/normalize-to-px.js +1 -1
  864. package/dist/esm/helpers/require-react-element.js +1 -1
  865. package/dist/esm/helpers/theme-size.js +1 -1
  866. package/dist/esm/helpers/warn-deprecated.js +1 -1
  867. package/dist/esm/helpers/warn-deprecated.js.map +4 -4
  868. package/dist/esm/hooks/appearance-script.js +11 -1
  869. package/dist/esm/hooks/appearance-script.js.map +4 -4
  870. package/dist/esm/hooks/index.js +2 -1
  871. package/dist/esm/hooks/use-appearance.d.ts.map +1 -1
  872. package/dist/esm/hooks/use-appearance.js +2 -1
  873. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  874. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  875. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +2 -1
  876. package/dist/esm/hooks/use-breakpoint.js +2 -1
  877. package/dist/esm/hooks/use-live-announcer.js +2 -1
  878. package/dist/esm/hooks/use-prop-synced-state.js +2 -1
  879. package/dist/esm/hooks/use-scroll-edges.js +2 -1
  880. package/dist/esm/hooks/use-thumb-sync.js +2 -1
  881. package/dist/esm/hooks/use-toggle-state.js +2 -1
  882. package/dist/esm/hooks/use-tooltip-wrapper.js +2 -1
  883. package/dist/esm/index.js +2 -1
  884. package/dist/esm/props/as-child.prop.js +1 -1
  885. package/dist/esm/props/color.prop.js +1 -1
  886. package/dist/esm/props/emphasis.prop.js +1 -1
  887. package/dist/esm/props/font-family.prop.js +1 -1
  888. package/dist/esm/props/gap.props.d.ts +4 -4
  889. package/dist/esm/props/gap.props.js +1 -1
  890. package/dist/esm/props/height.props.js +1 -1
  891. package/dist/esm/props/index.js +1 -1
  892. package/dist/esm/props/index.js.map +4 -4
  893. package/dist/esm/props/layout.props.js +1 -1
  894. package/dist/esm/props/leading-trim.prop.js +1 -1
  895. package/dist/esm/props/margin.props.js +1 -1
  896. package/dist/esm/props/padding.props.js +1 -1
  897. package/dist/esm/props/prop-def.js +1 -1
  898. package/dist/esm/props/radius.prop.js +1 -1
  899. package/dist/esm/props/shadow.props.js +1 -1
  900. package/dist/esm/props/text-align.prop.js +1 -1
  901. package/dist/esm/props/text-wrap.prop.js +1 -1
  902. package/dist/esm/props/truncate.prop.js +1 -1
  903. package/dist/esm/props/weight.prop.js +1 -1
  904. package/dist/esm/props/width.props.js +1 -1
  905. package/layout/utilities.css +2 -2
  906. package/layout.css +2 -2
  907. package/package.json +3 -7
  908. package/src/components/_internal/base-button.css +24 -6
  909. package/src/components/_internal/base-button.props.ts +1 -1
  910. package/src/components/_internal/base-button.tsx +80 -35
  911. package/src/components/_internal/base-checkbox.css +23 -0
  912. package/src/components/_internal/base-menu.css +9 -3
  913. package/src/components/_internal/base-radio.css +22 -0
  914. package/src/components/_internal/base-tab-list.css +5 -0
  915. package/src/components/_internal/dropdown-menu-drill-down.tsx +45 -26
  916. package/src/components/_internal/menu-context.tsx +36 -1
  917. package/src/components/_internal/pane-chrome.tsx +8 -6
  918. package/src/components/_internal/shell-bottom.tsx +2 -0
  919. package/src/components/_internal/shell-handles.tsx +10 -1
  920. package/src/components/_internal/shell-inspector.tsx +3 -0
  921. package/src/components/_internal/shell-pane.tsx +5 -4
  922. package/src/components/_internal/shell-resizable.tsx +17 -8
  923. package/src/components/_internal/shell-sidebar.tsx +3 -0
  924. package/src/components/_internal/shell-store.tsx +2 -1
  925. package/src/components/accordion.css +55 -69
  926. package/src/components/accordion.tsx +0 -26
  927. package/src/components/alert-dialog.tsx +4 -0
  928. package/src/components/avatar.css +6 -2
  929. package/src/components/avatar.tsx +36 -3
  930. package/src/components/blockquote.css +2 -2
  931. package/src/components/button.tsx +12 -5
  932. package/src/components/card.css +14 -3
  933. package/src/components/chatbar.css +20 -3
  934. package/src/components/chatbar.tsx +14 -11
  935. package/src/components/checkbox-group.css +1 -5
  936. package/src/components/checkbox.css +1 -5
  937. package/src/components/chip.css +0 -3
  938. package/src/components/combobox.tsx +25 -26
  939. package/src/components/context-menu.tsx +47 -27
  940. package/src/components/dropdown-menu.css +0 -6
  941. package/src/components/dropdown-menu.tsx +71 -34
  942. package/src/components/heading.props.tsx +1 -1
  943. package/src/components/heading.tsx +4 -4
  944. package/src/components/image.css +5 -0
  945. package/src/components/image.tsx +29 -3
  946. package/src/components/index.tsx +1 -1
  947. package/src/components/kbd.css +6 -5
  948. package/src/components/link.css +1 -5
  949. package/src/components/message-scroller.tsx +15 -26
  950. package/src/components/navbar.css +9 -1
  951. package/src/components/popover.css +14 -10
  952. package/src/components/popover.tsx +13 -11
  953. package/src/components/progress.css +33 -6
  954. package/src/components/progress.tsx +5 -3
  955. package/src/components/scroll-area.css +34 -4
  956. package/src/components/segmented-control.css +178 -148
  957. package/src/components/segmented-control.props.tsx +1 -1
  958. package/src/components/segmented-control.tsx +88 -63
  959. package/src/components/select.css +16 -29
  960. package/src/components/select.tsx +4 -15
  961. package/src/components/separator.css +8 -1
  962. package/src/components/separator.props.tsx +1 -1
  963. package/src/components/separator.tsx +22 -4
  964. package/src/components/sheet.css +4 -5
  965. package/src/components/sheet.tsx +3 -1
  966. package/src/components/shell.css +148 -21
  967. package/src/components/shell.tsx +18 -1
  968. package/src/components/sidebar.css +1 -135
  969. package/src/components/sidebar.tsx +178 -160
  970. package/src/components/slider.css +90 -21
  971. package/src/components/slider.props.tsx +2 -2
  972. package/src/components/slider.tsx +78 -91
  973. package/src/components/spinner.css +10 -2
  974. package/src/components/spinner.tsx +5 -1
  975. package/src/components/switch.css +40 -8
  976. package/src/components/table.css +5 -1
  977. package/src/components/table.props.tsx +0 -9
  978. package/src/components/table.tsx +2 -1
  979. package/src/components/tabs.tsx +10 -3
  980. package/src/components/text-area.css +17 -2
  981. package/src/components/text-area.tsx +20 -16
  982. package/src/components/text-field.css +51 -36
  983. package/src/components/text-field.tsx +100 -49
  984. package/src/components/theme.tsx +14 -44
  985. package/src/components/toolbar.tsx +35 -8
  986. package/src/components/tooltip.css +8 -1
  987. package/src/components/tooltip.tsx +30 -3
  988. package/src/components/virtual-menu.css +80 -0
  989. package/src/components/virtual-menu.tsx +103 -62
  990. package/src/helpers/get-margin-styles.ts +8 -10
  991. package/src/hooks/use-appearance.ts +32 -19
  992. package/src/hooks/use-body-pointer-events-cleanup.ts +123 -124
  993. package/src/props/gap.props.ts +4 -4
  994. package/src/styles/utilities/margin.css +2 -2
  995. package/src/styles/utilities/text-align.css +8 -0
  996. package/styles.css +1827 -803
  997. package/utilities.css +38 -2
  998. package/dist/esm/chunk-2E4P5XQL.js +0 -2
  999. package/dist/esm/chunk-2E4P5XQL.js.map +0 -7
  1000. package/dist/esm/chunk-2KZ4NI3X.js +0 -1
  1001. package/dist/esm/chunk-3BUQ7ADW.js +0 -2
  1002. package/dist/esm/chunk-3PTKPDSA.js +0 -2
  1003. package/dist/esm/chunk-3PTKPDSA.js.map +0 -7
  1004. package/dist/esm/chunk-3QZBWH2A.js.map +0 -7
  1005. package/dist/esm/chunk-3VTS4C63.js +0 -2
  1006. package/dist/esm/chunk-3VTS4C63.js.map +0 -7
  1007. package/dist/esm/chunk-3WE4E2WQ.js +0 -2
  1008. package/dist/esm/chunk-3WE4E2WQ.js.map +0 -7
  1009. package/dist/esm/chunk-3XUY5WFA.js +0 -2
  1010. package/dist/esm/chunk-3XUY5WFA.js.map +0 -7
  1011. package/dist/esm/chunk-432YLNB3.js +0 -2
  1012. package/dist/esm/chunk-432YLNB3.js.map +0 -7
  1013. package/dist/esm/chunk-4R5EMVB3.js +0 -2
  1014. package/dist/esm/chunk-4R5EMVB3.js.map +0 -7
  1015. package/dist/esm/chunk-4ZOVV3TY.js +0 -2
  1016. package/dist/esm/chunk-5ROQAZ7J.js +0 -2
  1017. package/dist/esm/chunk-5ROQAZ7J.js.map +0 -7
  1018. package/dist/esm/chunk-63PQNLFJ.js +0 -2
  1019. package/dist/esm/chunk-6DWDNKLS.js +0 -1
  1020. package/dist/esm/chunk-7CUQMU3T.js +0 -2
  1021. package/dist/esm/chunk-7CUQMU3T.js.map +0 -7
  1022. package/dist/esm/chunk-BGAJ2MDF.js +0 -2
  1023. package/dist/esm/chunk-BGAJ2MDF.js.map +0 -7
  1024. package/dist/esm/chunk-BJUCBOGU.js +0 -2
  1025. package/dist/esm/chunk-CLZW2IDD.js +0 -2
  1026. package/dist/esm/chunk-CLZW2IDD.js.map +0 -7
  1027. package/dist/esm/chunk-CMHUK7OG.js +0 -2
  1028. package/dist/esm/chunk-CMHUK7OG.js.map +0 -7
  1029. package/dist/esm/chunk-DFGY2NZB.js +0 -2
  1030. package/dist/esm/chunk-DUTZUWZP.js +0 -2
  1031. package/dist/esm/chunk-DUTZUWZP.js.map +0 -7
  1032. package/dist/esm/chunk-EZYXYLR2.js +0 -2
  1033. package/dist/esm/chunk-FDHWAC6W.js +0 -2
  1034. package/dist/esm/chunk-FDHWAC6W.js.map +0 -7
  1035. package/dist/esm/chunk-G2JD52O5.js +0 -2
  1036. package/dist/esm/chunk-G4ETY2NP.js +0 -2
  1037. package/dist/esm/chunk-G4ETY2NP.js.map +0 -7
  1038. package/dist/esm/chunk-GPOCLDBR.js +0 -2
  1039. package/dist/esm/chunk-GPOCLDBR.js.map +0 -7
  1040. package/dist/esm/chunk-H3IAGAEL.js +0 -2
  1041. package/dist/esm/chunk-H5G7UECV.js +0 -2
  1042. package/dist/esm/chunk-H5G7UECV.js.map +0 -7
  1043. package/dist/esm/chunk-HT7RFHLW.js +0 -2
  1044. package/dist/esm/chunk-HT7RFHLW.js.map +0 -7
  1045. package/dist/esm/chunk-IUER6BNH.js +0 -12
  1046. package/dist/esm/chunk-IUER6BNH.js.map +0 -7
  1047. package/dist/esm/chunk-IVQHRM33.js +0 -2
  1048. package/dist/esm/chunk-IVQHRM33.js.map +0 -7
  1049. package/dist/esm/chunk-KA5UE2VN.js +0 -2
  1050. package/dist/esm/chunk-KA5UE2VN.js.map +0 -7
  1051. package/dist/esm/chunk-KEGCX5VM.js +0 -2
  1052. package/dist/esm/chunk-KEGCX5VM.js.map +0 -7
  1053. package/dist/esm/chunk-KT2CMUS5.js +0 -2
  1054. package/dist/esm/chunk-KT2CMUS5.js.map +0 -7
  1055. package/dist/esm/chunk-KVHKPUZ2.js +0 -2
  1056. package/dist/esm/chunk-KVHKPUZ2.js.map +0 -7
  1057. package/dist/esm/chunk-LVCUY2OS.js +0 -2
  1058. package/dist/esm/chunk-M7I6ISPL.js +0 -2
  1059. package/dist/esm/chunk-M7I6ISPL.js.map +0 -7
  1060. package/dist/esm/chunk-MGQ4A2FI.js +0 -2
  1061. package/dist/esm/chunk-MHANZINI.js +0 -2
  1062. package/dist/esm/chunk-MHANZINI.js.map +0 -7
  1063. package/dist/esm/chunk-MYYXOFU5.js +0 -1
  1064. package/dist/esm/chunk-N3WBEQWL.js +0 -5
  1065. package/dist/esm/chunk-N3WBEQWL.js.map +0 -7
  1066. package/dist/esm/chunk-NC3CJUE3.js +0 -2
  1067. package/dist/esm/chunk-OA7C34MJ.js +0 -1
  1068. package/dist/esm/chunk-P2MV6HLA.js +0 -2
  1069. package/dist/esm/chunk-P2MV6HLA.js.map +0 -7
  1070. package/dist/esm/chunk-PDMCLVYT.js +0 -2
  1071. package/dist/esm/chunk-PDMCLVYT.js.map +0 -7
  1072. package/dist/esm/chunk-PJR6GRZC.js +0 -2
  1073. package/dist/esm/chunk-PJR6GRZC.js.map +0 -7
  1074. package/dist/esm/chunk-PM6QY3JO.js.map +0 -7
  1075. package/dist/esm/chunk-PPZY7PJA.js +0 -2
  1076. package/dist/esm/chunk-PPZY7PJA.js.map +0 -7
  1077. package/dist/esm/chunk-Q4IA622Q.js +0 -2
  1078. package/dist/esm/chunk-RKZVXVBN.js.map +0 -7
  1079. package/dist/esm/chunk-S6GWR6EZ.js +0 -2
  1080. package/dist/esm/chunk-SKOYHBIE.js +0 -2
  1081. package/dist/esm/chunk-STPMPY3X.js +0 -1
  1082. package/dist/esm/chunk-TXQZ5HLV.js +0 -2
  1083. package/dist/esm/chunk-TXQZ5HLV.js.map +0 -7
  1084. package/dist/esm/chunk-TZTUPQYK.js +0 -2
  1085. package/dist/esm/chunk-UICSVJ3B.js +0 -1
  1086. package/dist/esm/chunk-UKASIY6M.js +0 -2
  1087. package/dist/esm/chunk-UKASIY6M.js.map +0 -7
  1088. package/dist/esm/chunk-UONSKZQT.js +0 -2
  1089. package/dist/esm/chunk-V5O3TF57.js +0 -2
  1090. package/dist/esm/chunk-V5O3TF57.js.map +0 -7
  1091. package/dist/esm/chunk-VPSMETY2.js +0 -2
  1092. package/dist/esm/chunk-VUNCI6A6.js +0 -2
  1093. package/dist/esm/chunk-VUNCI6A6.js.map +0 -7
  1094. package/dist/esm/chunk-VUPIJNG2.js +0 -2
  1095. package/dist/esm/chunk-VXQQ6KXI.js +0 -2
  1096. package/dist/esm/chunk-VXQQ6KXI.js.map +0 -7
  1097. package/dist/esm/chunk-WG5ORTIW.js +0 -2
  1098. package/dist/esm/chunk-WG5ORTIW.js.map +0 -7
  1099. package/dist/esm/chunk-WMVR2XBR.js +0 -2
  1100. package/dist/esm/chunk-WOR3JCLX.js +0 -1
  1101. package/dist/esm/chunk-WOR3JCLX.js.map +0 -7
  1102. package/dist/esm/chunk-X4A3XRBY.js +0 -2
  1103. package/dist/esm/chunk-XOACTIBL.js +0 -2
  1104. package/dist/esm/chunk-XOACTIBL.js.map +0 -7
  1105. package/dist/esm/chunk-XZQSSRTG.js +0 -2
  1106. package/dist/esm/chunk-YIK4ACXS.js +0 -2
  1107. package/dist/esm/chunk-YIK4ACXS.js.map +0 -7
  1108. package/dist/esm/chunk-YXLDRDHW.js +0 -2
  1109. /package/dist/esm/{chunk-ELAW7ZUG.js.map → chunk-6FLLFCBU.js.map} +0 -0
  1110. /package/dist/esm/{chunk-2KZ4NI3X.js.map → chunk-A2OMWZI7.js.map} +0 -0
  1111. /package/dist/esm/{chunk-6DWDNKLS.js.map → chunk-AYKOOEZR.js.map} +0 -0
  1112. /package/dist/esm/{chunk-7FTUTUMD.js.map → chunk-IZXML75Y.js.map} +0 -0
  1113. /package/dist/esm/{chunk-MYYXOFU5.js.map → chunk-J3QIUJ6F.js.map} +0 -0
  1114. /package/dist/esm/{chunk-PBFSBHBS.js.map → chunk-JUY7CBSL.js.map} +0 -0
  1115. /package/dist/esm/{chunk-OA7C34MJ.js.map → chunk-JZ5Z53MN.js.map} +0 -0
  1116. /package/dist/esm/{chunk-OS3FCYZY.js.map → chunk-NG54K6FL.js.map} +0 -0
  1117. /package/dist/esm/{chunk-STPMPY3X.js.map → chunk-VQPANPMI.js.map} +0 -0
  1118. /package/dist/esm/{chunk-UICSVJ3B.js.map → chunk-WH7PQSSG.js.map} +0 -0
package/utilities.css CHANGED
@@ -6956,8 +6956,8 @@
6956
6956
  margin-right: var(--margin-right-override, var(--margin-right));
6957
6957
  }
6958
6958
  .sm\:kui-r-mx {
6959
- --margin-left: var(--ml-md);
6960
- --margin-right: var(--mr-md)
6959
+ --margin-left: var(--ml-sm);
6960
+ --margin-right: var(--mr-sm)
6961
6961
  }
6962
6962
  .sm\:kui-r-mx-0 {
6963
6963
  --margin-left: 0px;
@@ -13805,6 +13805,12 @@
13805
13805
  .kui-r-ta-right {
13806
13806
  text-align: right;
13807
13807
  }
13808
+ .kui-r-ta-start {
13809
+ text-align: start;
13810
+ }
13811
+ .kui-r-ta-end {
13812
+ text-align: end;
13813
+ }
13808
13814
  @media (min-width: 520px) {
13809
13815
  .xs\:kui-r-ta-left {
13810
13816
  text-align: left;
@@ -13815,6 +13821,12 @@
13815
13821
  .xs\:kui-r-ta-right {
13816
13822
  text-align: right;
13817
13823
  }
13824
+ .xs\:kui-r-ta-start {
13825
+ text-align: start;
13826
+ }
13827
+ .xs\:kui-r-ta-end {
13828
+ text-align: end;
13829
+ }
13818
13830
  }
13819
13831
  @media (min-width: 768px) {
13820
13832
  .sm\:kui-r-ta-left {
@@ -13826,6 +13838,12 @@
13826
13838
  .sm\:kui-r-ta-right {
13827
13839
  text-align: right;
13828
13840
  }
13841
+ .sm\:kui-r-ta-start {
13842
+ text-align: start;
13843
+ }
13844
+ .sm\:kui-r-ta-end {
13845
+ text-align: end;
13846
+ }
13829
13847
  }
13830
13848
  @media (min-width: 1024px) {
13831
13849
  .md\:kui-r-ta-left {
@@ -13837,6 +13855,12 @@
13837
13855
  .md\:kui-r-ta-right {
13838
13856
  text-align: right;
13839
13857
  }
13858
+ .md\:kui-r-ta-start {
13859
+ text-align: start;
13860
+ }
13861
+ .md\:kui-r-ta-end {
13862
+ text-align: end;
13863
+ }
13840
13864
  }
13841
13865
  @media (min-width: 1280px) {
13842
13866
  .lg\:kui-r-ta-left {
@@ -13848,6 +13872,12 @@
13848
13872
  .lg\:kui-r-ta-right {
13849
13873
  text-align: right;
13850
13874
  }
13875
+ .lg\:kui-r-ta-start {
13876
+ text-align: start;
13877
+ }
13878
+ .lg\:kui-r-ta-end {
13879
+ text-align: end;
13880
+ }
13851
13881
  }
13852
13882
  @media (min-width: 1640px) {
13853
13883
  .xl\:kui-r-ta-left {
@@ -13859,6 +13889,12 @@
13859
13889
  .xl\:kui-r-ta-right {
13860
13890
  text-align: right;
13861
13891
  }
13892
+ .xl\:kui-r-ta-start {
13893
+ text-align: start;
13894
+ }
13895
+ .xl\:kui-r-ta-end {
13896
+ text-align: end;
13897
+ }
13862
13898
  }
13863
13899
  .kui-r-tw-wrap {
13864
13900
  white-space: normal;
@@ -1,2 +0,0 @@
1
- import{b as r}from"./chunk-OS3FCYZY.js";import*as n from"react";var b={stack:[],direction:null,lastChange:null},C='[role^="menuitem"]:not([data-disabled])',w="kui-DropdownMenuDrillDownBackItem";function h(e){return e.replace(/["\\]/g,"\\$&")}var d=class{constructor(){r(this,"state",b);r(this,"listeners",new Set);r(this,"modality","keyboard");r(this,"rootElement",null);r(this,"setRootElement",t=>{this.rootElement=t});r(this,"getState",()=>this.state);r(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));r(this,"setModality",t=>{this.modality=t});r(this,"getModality",()=>this.modality);r(this,"getDepth",()=>this.state.stack.length);r(this,"isOpen",t=>this.state.stack.some(o=>o.id===t));r(this,"push",(t,o=this.modality)=>{let{stack:i}=this.state;if(i.some(c=>c.id===t))return;let l=this.getTrigger(t),s=(l?.dataset.drillDownName??l?.textContent??"").trim(),a=this.getScrollContainer()?.scrollTop??0;this.setState({stack:[...i,{id:t,name:s,scrollTop:a}],direction:"forward",lastChange:{type:"push",id:t,modality:o}})});r(this,"pop",(t=this.modality)=>{let{stack:o}=this.state,i=o[o.length-1];i&&this.setState({stack:o.slice(0,-1),direction:"backward",lastChange:{type:"pop",id:i.id,modality:t,scrollTop:i.scrollTop}})});r(this,"close",t=>{let{stack:o}=this.state,i=o.findIndex(l=>l.id===t);i!==-1&&this.setState({stack:o.slice(0,i),direction:"backward",lastChange:{type:"pop",id:t,modality:null,scrollTop:o[i].scrollTop}})});r(this,"reset",()=>{this.state.stack.length===0&&this.state.direction===null||this.setState({stack:[],direction:null,lastChange:{type:"reset"}})})}setState(t){this.state=t,this.listeners.forEach(o=>o())}getScrollContainer(){let t=this.rootElement;return t?t.closest(".kui-ScrollAreaViewport")??t.closest(".kui-BaseMenuViewport"):null}getTrigger(t){return this.rootElement?.querySelector(`[data-drill-down-trigger="${h(t)}"]`)}applyLastChange(){let t=this.state.lastChange,o=this.rootElement;if(!t||!o)return;this.state={...this.state,lastChange:null};let i=o.closest('[role="menu"]'),l=this.getScrollContainer(),s=a=>a?.focus({preventScroll:!0});if(t.type==="push"){l&&(l.scrollTop=0);let a=o.querySelector(`[data-drill-down-panel="${h(t.id)}"]`);if(t.modality==="keyboard"){let c=a?Array.from(a.querySelectorAll(C)):[];s(c.find(u=>!u.classList.contains(w))??c[0]??i)}else(t.modality==="pointer"||!o.contains(document.activeElement))&&s(i);return}if(t.type==="pop"){l&&(l.scrollTop=t.scrollTop);let a=this.getTrigger(t.id);t.modality==="keyboard"?s(a??i):(t.modality==="pointer"||!o.contains(document.activeElement))&&s(i);return}l&&(l.scrollTop=0)}},m=n.createContext(null),k=n.createContext(!0);function L(){return n.useContext(m)}function P(){let[e]=n.useState(()=>new d);return e}var E=e=>e.stack.length,R=e=>e.direction,v=()=>0,S=()=>null;function A({store:e,behavior:t,open:o,children:i}){let l=t==="drill-down",s=n.useSyncExternalStore(e.subscribe,()=>E(e.getState()),v),a=n.useSyncExternalStore(e.subscribe,()=>R(e.getState()),S),c=!l||s===0;n.useLayoutEffect(()=>{l||e.reset()},[l,e]);let u=n.useRef(o);n.useLayoutEffect(()=>{o&&!u.current&&e.reset(),u.current=o},[o,e]),n.useLayoutEffect(()=>{e.applyLastChange()},[s,e]);let g=n.useCallback(f=>e.setRootElement(f),[e]),y=n.useCallback(()=>e.setModality("keyboard"),[e]),D=n.useCallback(()=>e.setModality("pointer"),[e]);return n.createElement(m.Provider,{value:l?e:null},n.createElement("div",{ref:g,className:"kui-DropdownMenuDrillDownRoot","data-submenu-behavior":t,"data-drill-down-active":c?void 0:!0,"data-animation-direction":l?a??void 0:void 0,onKeyDownCapture:l?y:void 0,onPointerDownCapture:l?D:void 0},n.createElement(k.Provider,{value:c},i)))}function H(e,t){let o=n.useCallback(()=>{if(!e)return"closed";let{stack:i}=e.getState();return i.length>0&&i[i.length-1].id===t?"top":i.some(l=>l.id===t)?"open":"closed"},[e,t]);return n.useSyncExternalStore(e?.subscribe??p,o,T)}function B(e,t){let o=n.useCallback(()=>e?.getState().stack.find(i=>i.id===t),[e,t]);return n.useSyncExternalStore(e?.subscribe??p,o,M)}function I(e){let t=n.useCallback(()=>e?.getState().direction??null,[e]);return n.useSyncExternalStore(e?.subscribe??p,t,S)}var p=()=>()=>{},T=()=>"closed",M=()=>{},x=n.createContext(null);function N(){return n.useContext(x)}export{k as a,L as b,P as c,A as d,H as e,B as f,I as g,x as h,N as i};
2
- //# sourceMappingURL=chunk-2E4P5XQL.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/dropdown-menu-drill-down.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\n\nimport type { submenuBehaviors } from './base-menu.props.js';\n\ntype SubmenuBehavior = (typeof submenuBehaviors)[number];\n\n/*\n * Drill-down navigation for DropdownMenu.\n *\n * The stack of open submenus lives in a small external store rather than in\n * React state, so each part subscribes only to the slice it renders from:\n * a panel re-renders when it enters or leaves the stack, a Sub when its own\n * open state changes, and nothing else on the path re-renders on navigation.\n *\n * Only the levels on the stack mount their children, and only the top level\n * mounts its items (see `DrillDownLevelContext`). That keeps the Radix item\n * collection limited to what is on screen, so roving focus and typeahead\n * never land on a hidden item.\n */\n\ntype AnimationDirection = 'forward' | 'backward' | null;\ntype Modality = 'keyboard' | 'pointer';\n\ninterface StackEntry {\n id: string;\n /** Accessible name of the submenu, taken from its trigger text */\n name: string;\n /** Scroll position of the parent level when this entry was pushed */\n scrollTop: number;\n}\n\ntype LastChange =\n | { type: 'push'; id: string; modality: Modality | null }\n | { type: 'pop'; id: string; modality: Modality | null; scrollTop: number }\n | { type: 'reset' };\n\ninterface DrillDownState {\n stack: StackEntry[];\n direction: AnimationDirection;\n lastChange: LastChange | null;\n}\n\nconst INITIAL_STATE: DrillDownState = { stack: [], direction: null, lastChange: null };\n\nconst PANEL_ITEM_SELECTOR = '[role^=\"menuitem\"]:not([data-disabled])';\nconst BACK_ITEM_CLASS = 'kui-DropdownMenuDrillDownBackItem';\n\nfunction escapeAttributeValue(value: string) {\n return value.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\nclass DrillDownStore {\n private state = INITIAL_STATE;\n private listeners = new Set<() => void>();\n private modality: Modality = 'keyboard';\n /** The drill-down root element, set by the provider */\n rootElement: HTMLElement | null = null;\n\n setRootElement = (element: HTMLElement | null) => {\n this.rootElement = element;\n };\n\n getState = () => this.state;\n\n subscribe = (listener: () => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n private setState(next: DrillDownState) {\n this.state = next;\n this.listeners.forEach((listener) => listener());\n }\n\n /** Records how the user is interacting, so focus can follow the same model as Radix. */\n setModality = (modality: Modality) => {\n this.modality = modality;\n };\n\n getModality = () => this.modality;\n\n getDepth = () => this.state.stack.length;\n\n isOpen = (id: string) => this.state.stack.some((entry) => entry.id === id);\n\n private getScrollContainer() {\n const root = this.rootElement;\n if (!root) return null;\n return (\n root.closest<HTMLElement>('.kui-ScrollAreaViewport') ??\n root.closest<HTMLElement>('.kui-BaseMenuViewport')\n );\n }\n\n private getTrigger(id: string) {\n return this.rootElement?.querySelector<HTMLElement>(\n `[data-drill-down-trigger=\"${escapeAttributeValue(id)}\"]`,\n );\n }\n\n /**\n * Opens a submenu. `modality` decides where focus goes: the first item for\n * keyboard, the menu for pointer, and nowhere for a programmatic open\n * (`null`) unless focus was lost.\n */\n push = (id: string, modality: Modality | null = this.modality) => {\n const { stack } = this.state;\n if (stack.some((entry) => entry.id === id)) return;\n const trigger = this.getTrigger(id);\n const name = (trigger?.dataset.drillDownName ?? trigger?.textContent ?? '').trim();\n const scrollTop = this.getScrollContainer()?.scrollTop ?? 0;\n this.setState({\n stack: [...stack, { id, name, scrollTop }],\n direction: 'forward',\n lastChange: { type: 'push', id, modality },\n });\n };\n\n pop = (modality: Modality = this.modality) => {\n const { stack } = this.state;\n const top = stack[stack.length - 1];\n if (!top) return;\n this.setState({\n stack: stack.slice(0, -1),\n direction: 'backward',\n lastChange: { type: 'pop', id: top.id, modality, scrollTop: top.scrollTop },\n });\n };\n\n /** Closes a submenu and everything opened from it, without moving focus to its trigger. */\n close = (id: string) => {\n const { stack } = this.state;\n const index = stack.findIndex((entry) => entry.id === id);\n if (index === -1) return;\n this.setState({\n stack: stack.slice(0, index),\n direction: 'backward',\n lastChange: { type: 'pop', id, modality: null, scrollTop: stack[index].scrollTop },\n });\n };\n\n reset = () => {\n if (this.state.stack.length === 0 && this.state.direction === null) return;\n this.setState({ stack: [], direction: null, lastChange: { type: 'reset' } });\n };\n\n /**\n * Moves focus and scroll after a navigation step has been committed. Runs in\n * a layout effect, so the new level is already in the DOM and nothing paints\n * with focus on `<body>` or at the old scroll position.\n */\n applyLastChange() {\n const change = this.state.lastChange;\n const root = this.rootElement;\n if (!change || !root) return;\n this.state = { ...this.state, lastChange: null };\n\n const content = root.closest<HTMLElement>('[role=\"menu\"]');\n const scroller = this.getScrollContainer();\n const focus = (element: HTMLElement | null | undefined) => element?.focus({ preventScroll: true });\n\n if (change.type === 'push') {\n if (scroller) scroller.scrollTop = 0;\n const panel = root.querySelector<HTMLElement>(\n `[data-drill-down-panel=\"${escapeAttributeValue(change.id)}\"]`,\n );\n if (change.modality === 'keyboard') {\n // Land on the first real option; the back row stays one ArrowUp away.\n const items = panel ? Array.from(panel.querySelectorAll<HTMLElement>(PANEL_ITEM_SELECTOR)) : [];\n focus(items.find((item) => !item.classList.contains(BACK_ITEM_CLASS)) ?? items[0] ?? content);\n } else if (change.modality === 'pointer' || !root.contains(document.activeElement)) {\n // Match Radix: pointer users get focus on the menu, not a highlighted item.\n focus(content);\n }\n return;\n }\n\n if (change.type === 'pop') {\n if (scroller) scroller.scrollTop = change.scrollTop;\n const trigger = this.getTrigger(change.id);\n if (change.modality === 'keyboard') {\n focus(trigger ?? content);\n } else if (change.modality === 'pointer' || !root.contains(document.activeElement)) {\n focus(content);\n }\n return;\n }\n\n if (scroller) scroller.scrollTop = 0;\n }\n}\n\nconst DrillDownStoreContext = React.createContext<DrillDownStore | null>(null);\n\n/**\n * Whether the items of the current level are on screen. The root level and\n * every panel provide it; menu parts render nothing when it is false.\n */\nconst DrillDownLevelContext = React.createContext(true);\n\nfunction useDrillDownStore() {\n return React.useContext(DrillDownStoreContext);\n}\n\nfunction useCreateDrillDownStore() {\n const [store] = React.useState(() => new DrillDownStore());\n return store;\n}\n\nconst selectDepth = (state: DrillDownState) => state.stack.length;\nconst selectDirection = (state: DrillDownState) => state.direction;\nconst getServerDepth = () => 0;\nconst getServerDirection = (): AnimationDirection => null;\n\ninterface DrillDownRootProps {\n store: DrillDownStore;\n behavior: SubmenuBehavior;\n /** Open state of the menu; the stack resets every time the menu opens */\n open: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Provides the drill-down store and renders the root level. The wrapper is\n * the same element in both behaviors, so crossing a breakpoint that switches\n * between cascade and drill-down does not remount the items.\n */\nfunction DrillDownRoot({ store, behavior, open, children }: DrillDownRootProps) {\n const isDrillDown = behavior === 'drill-down';\n const depth = React.useSyncExternalStore(\n store.subscribe,\n () => selectDepth(store.getState()),\n getServerDepth,\n );\n const direction = React.useSyncExternalStore(\n store.subscribe,\n () => selectDirection(store.getState()),\n getServerDirection,\n );\n const isRoot = !isDrillDown || depth === 0;\n\n // Cascade mode has no stack. A reset while switching modes keeps the next\n // switch back to drill-down from resuming a stale level.\n React.useLayoutEffect(() => {\n if (!isDrillDown) store.reset();\n }, [isDrillDown, store]);\n\n // Start every opening at the root. Content usually remounts on open anyway;\n // this covers `forceMount`. Resetting on open rather than on close keeps the\n // closing animation on the level the user was looking at.\n const wasOpenRef = React.useRef(open);\n React.useLayoutEffect(() => {\n if (open && !wasOpenRef.current) store.reset();\n wasOpenRef.current = open;\n }, [open, store]);\n\n // Focus and scroll follow each navigation step once it is in the DOM.\n React.useLayoutEffect(() => {\n store.applyLastChange();\n }, [depth, store]);\n\n const rootRef = React.useCallback((element: HTMLDivElement | null) => store.setRootElement(element), [store]);\n const handleKeyDownCapture = React.useCallback(() => store.setModality('keyboard'), [store]);\n const handlePointerDownCapture = React.useCallback(() => store.setModality('pointer'), [store]);\n\n return (\n <DrillDownStoreContext.Provider value={isDrillDown ? store : null}>\n {/* Event capture only records the input modality; it does not handle interaction. */}\n <div\n ref={rootRef}\n className=\"kui-DropdownMenuDrillDownRoot\"\n data-submenu-behavior={behavior}\n data-drill-down-active={isRoot ? undefined : true}\n data-animation-direction={isDrillDown ? (direction ?? undefined) : undefined}\n onKeyDownCapture={isDrillDown ? handleKeyDownCapture : undefined}\n onPointerDownCapture={isDrillDown ? handlePointerDownCapture : undefined}\n >\n <DrillDownLevelContext.Provider value={isRoot}>{children}</DrillDownLevelContext.Provider>\n </div>\n </DrillDownStoreContext.Provider>\n );\n}\n\n/** Where a submenu sits in the stack: not open, open under another level, or on top. */\ntype PanelPosition = 'closed' | 'open' | 'top';\n\nfunction usePanelPosition(store: DrillDownStore | null, id: string): PanelPosition {\n const getSnapshot = React.useCallback((): PanelPosition => {\n if (!store) return 'closed';\n const { stack } = store.getState();\n if (stack.length > 0 && stack[stack.length - 1].id === id) return 'top';\n return stack.some((entry) => entry.id === id) ? 'open' : 'closed';\n }, [store, id]);\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getClosed);\n}\n\nfunction useStackEntry(store: DrillDownStore | null, id: string): StackEntry | undefined {\n const getSnapshot = React.useCallback(\n () => store?.getState().stack.find((entry) => entry.id === id),\n [store, id],\n );\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getUndefined);\n}\n\nfunction useDrillDownDirection(store: DrillDownStore | null): AnimationDirection {\n const getSnapshot = React.useCallback(() => store?.getState().direction ?? null, [store]);\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getServerDirection);\n}\n\nconst noopSubscribe = () => () => {};\nconst getClosed = (): PanelPosition => 'closed';\nconst getUndefined = () => undefined;\n\n// ============================================================================\n// Sub Context (for individual submenu instances)\n// ============================================================================\n\ninterface SubContextValue {\n /** Unique ID for this submenu */\n id: string;\n /** Label for the back button */\n label: React.ReactNode;\n}\n\nconst SubContext = React.createContext<SubContextValue | null>(null);\n\nfunction useSubContext() {\n return React.useContext(SubContext);\n}\n\nexport {\n DrillDownRoot,\n DrillDownLevelContext,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownStore,\n useDrillDownDirection,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n};\n\nexport type { SubmenuBehavior, DrillDownStore, PanelPosition, SubContextValue, AnimationDirection };\n"],
5
- "mappings": "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",
6
- "names": ["React", "INITIAL_STATE", "PANEL_ITEM_SELECTOR", "BACK_ITEM_CLASS", "escapeAttributeValue", "value", "DrillDownStore", "__publicField", "element", "listener", "modality", "id", "entry", "stack", "trigger", "name", "scrollTop", "top", "index", "next", "root", "change", "content", "scroller", "focus", "panel", "items", "item", "DrillDownStoreContext", "DrillDownLevelContext", "useDrillDownStore", "useCreateDrillDownStore", "store", "selectDepth", "state", "selectDirection", "getServerDepth", "getServerDirection", "DrillDownRoot", "behavior", "open", "children", "isDrillDown", "depth", "direction", "isRoot", "wasOpenRef", "rootRef", "handleKeyDownCapture", "handlePointerDownCapture", "usePanelPosition", "getSnapshot", "noopSubscribe", "getClosed", "useStackEntry", "getUndefined", "useDrillDownDirection", "SubContext", "useSubContext"]
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-2KZ4NI3X.js.map
@@ -1,2 +0,0 @@
1
- import{a as o}from"./chunk-KEWNXANF.js";import{a as s}from"./chunk-SBRPXQWH.js";import{a as p}from"./chunk-SJXV4BWZ.js";import{a as t}from"./chunk-N6KH2EOU.js";import{a as e}from"./chunk-NZJGC6ZW.js";import{d as r}from"./chunk-CUNKWFKA.js";var i=["1","2","3","4","5","6","7","8","9"],n=["auto","always","hover","none"],D={...e,size:{type:"enum",className:"kui-r-size",values:i,responsive:!0},...t,...o,...p,...s,underline:{type:"enum",className:"kui-underline",values:n,default:"auto"},...r};export{D as a};
2
- //# sourceMappingURL=chunk-3BUQ7ADW.js.map
@@ -1,2 +0,0 @@
1
- import{b as s}from"./chunk-5YLKKQFK.js";import*as r from"react";function l(e){return typeof e=="object"&&e!==null}function p(e,n){let t={},o=null;for(let i of s){if(e!==void 0&&!l(e)){t[i]=e;continue}let a=l(e)?e[i]:void 0;a!==void 0&&(o={value:a}),t[i]=o?o.value:n(i)}return t}function d(e){let n=e.initial;return s.every(t=>e[t]===n)?n:void 0}function h(e,n){let t=d(n);if(t!==void 0)return{[`data-${e}`]:t};let o={};for(let i of s)o[`data-${e}-${i}`]=n[i];return o}function P(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var T=p("fixed",()=>"fixed");function g(){return{entries:new Map,listeners:new Set,version:0,peek:null}}function f(e){e.version+=1;for(let n of e.listeners)n()}function c(e,n){return e.listeners.add(n),()=>{e.listeners.delete(n)}}function R(e,n){e.peek!==n&&(e.peek=n,f(e))}var S=r.createContext(null);function y(e){let n=r.useContext(S);if(!n)throw new Error(`${e} must be used within <Shell.Root>`);return n}function I(e,n){let t=r.useCallback(i=>c(e,i),[e]),o=r.useCallback(()=>e.entries.get(n),[e,n]);return r.useSyncExternalStore(t,o,()=>{})}function k(e,n){let t=r.useCallback(o=>c(e,o),[e]);return r.useSyncExternalStore(t,()=>e.peek===n,()=>!1)}var b=r.createContext(null);function m(e,n){let t=r.useContext(b);if(!t)throw new Error("Shell panes must be used within <Shell.Root>");let{registerInset:o,unregisterInset:i}=t;r.useLayoutEffect(()=>{if(n)return o(e),()=>i(e)},[e,n,o,i])}var u=new Set;function v(e){}export{p as a,d as b,h as c,P as d,T as e,g as f,f as g,c as h,R as i,S as j,y as k,I as l,k as m,b as n,m as o,v as p};
2
- //# sourceMappingURL=chunk-3PTKPDSA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/shell-store.tsx"],
4
- "sourcesContent": ["'use client';\n\n/**\n * The Shell's state model (0.8.0), ported from kookie-ui-v2's Shell.\n *\n * - State lives on the pane. Each pane holds `auto | open | closed`.\n * `auto` means untouched: the stylesheet decides what\n * it shows at each breakpoint, so first paint is right with no script, the\n * server and the client render the same markup, and no open-state callback\n * can fire on mount or on a resize.\n * - The one thing that crosses the Shell is a registry keyed by pane name.\n * Each pane registers what it is and how to drive it; a Trigger looks its\n * pane up, and the Root reads the set of live overlays. Nothing scans\n * children and nothing checks `displayName`.\n * - The responsive props are resolved into a table with one value per\n * breakpoint, from the props alone, with no window. The table is written to\n * the DOM as data attributes for the stylesheet, and read again in JS by the\n * mirror that sets `aria-expanded`. One table, two readers, so they agree by\n * construction.\n */\nimport * as React from 'react';\nimport { SHELL_BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\n\n/* \u2500\u2500 Breakpoint tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type Table<T> = Record<Breakpoint, T>;\n\n/** What a pane shows: open or closed. */\nexport type PaneValue = 'open' | 'closed';\n\ntype ResponsiveInput<T> = T | Partial<Record<Breakpoint, T>> | undefined;\n\nfunction isMap<T>(value: ResponsiveInput<T>): value is Partial<Record<Breakpoint, T>> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * A responsive value at every breakpoint. A breakpoint takes the largest key\n * at or below it, the same fallback `useResponsiveValue` used; a breakpoint\n * below every key takes `fallback`.\n */\nexport function tableOf<T>(value: ResponsiveInput<T>, fallback: (bp: Breakpoint) => T): Table<T> {\n const table = {} as Table<T>;\n let carried: { value: T } | null = null;\n for (const bp of SHELL_BREAKPOINTS) {\n if (value !== undefined && !isMap(value)) {\n table[bp] = value;\n continue;\n }\n const entry = isMap(value) ? value[bp] : undefined;\n if (entry !== undefined) carried = { value: entry };\n table[bp] = carried ? carried.value : fallback(bp);\n }\n return table;\n}\n\n/** The table's one value, when it has only one. */\nexport function constantOf<T>(table: Table<T>): T | undefined {\n const first = table.initial;\n return SHELL_BREAKPOINTS.every((bp) => table[bp] === first) ? first : undefined;\n}\n\n/**\n * The table as data attributes: `data-<name>` when it holds one value, one\n * `data-<name>-<bp>` per breakpoint when it holds several. The stylesheet has\n * a rule for each spelling.\n */\nexport function tableAttributes(name: string, table: Table<string>): Record<string, string> {\n const constant = constantOf(table);\n if (constant !== undefined) return { [`data-${name}`]: constant };\n const attributes: Record<string, string> = {};\n for (const bp of SHELL_BREAKPOINTS) attributes[`data-${name}-${bp}`] = table[bp];\n return attributes;\n}\n\n/**\n * A responsive prop object is usually an inline literal, a new identity every\n * render. Keying memoisation on its contents keeps the tables, and so the\n * registry entries, stable across renders that change nothing.\n */\nexport function useStableKey(value: unknown): string {\n return typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value);\n}\n\nexport const FIXED_TABLE: Table<PresentationValue> = tableOf<PresentationValue>('fixed', () => 'fixed');\n\n/* \u2500\u2500 The registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type OpenChangeReason = 'toggle' | 'dismiss';\n\nexport type PaneEntry = {\n name: PaneName;\n id: string;\n el: HTMLElement | null;\n /** What the pane shows now; `undefined` while an untouched pane cannot know (before the breakpoint is known). */\n value: PaneValue | undefined;\n /** How the pane is presented now, when known. */\n presentation: PresentationValue | undefined;\n /** The pane's own presentation at every breakpoint. A Panel with none of its own follows the Rail's. */\n presentationTable: Table<PresentationValue>;\n /** Open and presented as an overlay: what the scrim and Escape close, and what containment exempts. */\n overlayLive: boolean;\n /** The pane's designed open width, for panes that sit beside it when floating. */\n size: number;\n setValue: (value: PaneValue, reason: OpenChangeReason) => void;\n toggle: (reason: OpenChangeReason) => void;\n};\n\nexport type ShellStore = {\n entries: Map<PaneName, PaneEntry>;\n listeners: Set<() => void>;\n /**\n * What a subscriber reads. useSyncExternalStore needs a value that is stable\n * between notifications, and a number is; the Map, or anything derived from\n * it, would be a new identity on every read.\n */\n version: number;\n /** The pane a hovered Trigger is previewing, if any. Layout only. */\n peek: PaneName | null;\n};\n\nexport function createShellStore(): ShellStore {\n return { entries: new Map(), listeners: new Set(), version: 0, peek: null };\n}\n\nexport function notifyShellStore(store: ShellStore) {\n store.version += 1;\n for (const listener of store.listeners) listener();\n}\n\nexport function subscribeShellStore(store: ShellStore, listener: () => void) {\n store.listeners.add(listener);\n return () => {\n store.listeners.delete(listener);\n };\n}\n\nexport function setShellPeek(store: ShellStore, peek: PaneName | null) {\n if (store.peek === peek) return;\n store.peek = peek;\n notifyShellStore(store);\n}\n\nexport const ShellStoreContext = React.createContext<ShellStore | null>(null);\n\nexport function useShellStore(part: string): ShellStore {\n const store = React.useContext(ShellStoreContext);\n if (!store) throw new Error(`${part} must be used within <Shell.Root>`);\n return store;\n}\n\n/** One pane's registry entry. Re-renders only when that entry is replaced. */\nexport function usePaneEntry(store: ShellStore, name: PaneName): PaneEntry | undefined {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const getSnapshot = React.useCallback(() => store.entries.get(name), [store, name]);\n return React.useSyncExternalStore(subscribe, getSnapshot, () => undefined);\n}\n\n/**\n * Whether this pane is the one being previewed. A boolean per pane rather than\n * the peek target itself, so hovering one Trigger re-renders one pane, not all.\n */\nexport function usePeeking(store: ShellStore, name: PaneName): boolean {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.peek === name,\n () => false,\n );\n}\n\n/* \u2500\u2500 Inset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type InsetPaneId = 'rail' | 'panel' | 'sidebar' | 'content' | 'inspector' | 'bottom';\n\nexport const ShellInsetContext = React.createContext<{\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n} | null>(null);\n\n/** Registers a pane's `inset` with the Root, which paints the backdrop while any pane is inset. */\nexport function useInsetRegistration(id: InsetPaneId, inset: boolean | undefined) {\n const ctx = React.useContext(ShellInsetContext);\n if (!ctx) throw new Error('Shell panes must be used within <Shell.Root>');\n const { registerInset, unregisterInset } = ctx;\n React.useLayoutEffect(() => {\n if (!inset) return;\n registerInset(id);\n return () => unregisterInset(id);\n }, [id, inset, registerInset, unregisterInset]);\n}\n\n/* \u2500\u2500 Development warnings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nconst warned = new Set<string>();\n\n/** A deprecation warning, once per message per page load. Development only. */\nexport function warnOnce(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n"],
5
- "mappings": "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",
6
- "names": ["React", "isMap", "value", "tableOf", "fallback", "table", "carried", "bp", "SHELL_BREAKPOINTS", "entry", "constantOf", "first", "tableAttributes", "name", "constant", "attributes", "useStableKey", "FIXED_TABLE", "createShellStore", "notifyShellStore", "store", "listener", "subscribeShellStore", "setShellPeek", "peek", "ShellStoreContext", "useShellStore", "part", "usePaneEntry", "subscribe", "getSnapshot", "usePeeking", "ShellInsetContext", "useInsetRegistration", "id", "inset", "ctx", "registerInset", "unregisterInset", "warned", "warnOnce", "message"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/separator.props.tsx"],
4
- "sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst orientationValues = ['horizontal', 'vertical'] as const;\n\nconst separatorPropDefs = {\n orientation: {\n type: 'enum',\n className: 'kui-r-orientation',\n values: orientationValues,\n default: 'horizontal',\n responsive: true,\n },\n color: { ...colorPropDef.color, default: 'gray' },\n decorative: { type: 'boolean', default: true },\n light: { type: 'boolean', className: 'kui-light', default: false },\n} satisfies {\n orientation: PropDef<(typeof orientationValues)[number]>;\n color: typeof colorPropDef.color;\n decorative: PropDef<boolean>;\n light: PropDef<boolean>;\n};\n\nexport { separatorPropDefs };\n"],
5
- "mappings": "wCAIA,IAAMA,EAAoB,CAAC,aAAc,UAAU,EAE7CC,EAAoB,CACxB,YAAa,CACX,KAAM,OACN,UAAW,oBACX,OAAQD,EACR,QAAS,aACT,WAAY,EACd,EACA,MAAO,CAAE,GAAGE,EAAa,MAAO,QAAS,MAAO,EAChD,WAAY,CAAE,KAAM,UAAW,QAAS,EAAK,EAC7C,MAAO,CAAE,KAAM,UAAW,UAAW,YAAa,QAAS,EAAM,CACnE",
6
- "names": ["orientationValues", "separatorPropDefs", "colorPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as A}from"./chunk-3XUY5WFA.js";import{a as L}from"./chunk-MJJ7XDIP.js";import{b as V,c as S}from"./chunk-PPZY7PJA.js";import{c as h,e as D}from"./chunk-V5O3TF57.js";import{a as k}from"./chunk-3XZOE2IQ.js";import{b as E,d as G,f as w}from"./chunk-62ZGP4ET.js";import{e as B}from"./chunk-3YLYGKFB.js";import{c as C,d as z,e as O,f as W}from"./chunk-3XHTJZNP.js";import{b as R,c as b,d as I,e as v}from"./chunk-KZEZDBE7.js";import{a as f}from"./chunk-ELAW7ZUG.js";import{a as te}from"./chunk-OS3FCYZY.js";var ne={};te(ne,{CheckboxItem:()=>Q,Content:()=>_,Group:()=>U,Item:()=>K,Label:()=>q,RadioGroup:()=>H,RadioItem:()=>J,Root:()=>j,Separator:()=>$,Sub:()=>X,SubContent:()=>Z,SubTrigger:()=>Y,Trigger:()=>F,Virtual:()=>A});import*as e from"react";import s from"classnames";import{ContextMenu as a,Slot as g}from"radix-ui";import{useCallbackRef as oe}from"radix-ui/internal";var j=t=>{let{open:n,onOpenChange:o}=t,[u,r]=e.useState(!1),i=n??u,p=oe(o),c=e.useCallback(l=>{r(l),p(l)},[p]),m=e.useCallback(()=>c(!1),[c]);return e.createElement(D,{value:m},e.createElement(a.Root,{...t,open:i,onOpenChange:c}))};j.displayName="ContextMenu.Root";var F=e.forwardRef(({children:t,...n},o)=>e.createElement(a.Trigger,{...n,ref:o,asChild:!0},L(t)));F.displayName="ContextMenu.Trigger";var y=e.createContext({}),_=e.forwardRef((t,n)=>{let o=B(t,C.size),u=V(),{size:r=C.size.default}=o,{className:i,children:p,color:c,container:m,forceMount:l,submenuBehavior:T,virtualized:d=!1,...P}=f(o,C),x=c||u.accentColor,M=R(r,C.size.default),ee=e.useMemo(()=>({size:r,color:x}),[r,x]),N=e.createElement(h,{size:r},e.createElement(y.Provider,{value:ee},p));return e.createElement(a.Portal,{container:m,forceMount:l},e.createElement(S,{asChild:!0},e.createElement(a.Content,{"data-accent-color":x,alignOffset:b(M),collisionPadding:10,...P,asChild:!1,ref:n,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-ContextMenuContent",i)},d?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport","kui-virtualized")},N):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport")},N)))))});_.displayName="ContextMenu.Content";var q=e.forwardRef(({className:t,...n},o)=>e.createElement(a.Label,{...n,asChild:!1,ref:o,className:s("kui-BaseMenuLabel","kui-ContextMenuLabel",t)}));q.displayName="ContextMenu.Label";var K=e.forwardRef((t,n)=>{let{className:o,children:u,color:r=z.color.default,shortcut:i,...p}=t;return e.createElement(a.Item,{"data-accent-color":r,"aria-keyshortcuts":i?I(i):void 0,...p,ref:n,className:s("kui-reset","kui-BaseMenuItem","kui-ContextMenuItem",o)},e.createElement(g.Slottable,null,u),i&&e.createElement(v,{shortcut:i,className:"kui-ContextMenuShortcut"}))});K.displayName="ContextMenu.Item";var U=e.forwardRef(({className:t,...n},o)=>e.createElement(a.Group,{...n,asChild:!1,ref:o,className:s("kui-BaseMenuGroup","kui-ContextMenuGroup",t)}));U.displayName="ContextMenu.Group";var H=e.forwardRef(({className:t,...n},o)=>e.createElement(a.RadioGroup,{...n,asChild:!1,ref:o,className:s("kui-BaseMenuRadioGroup","kui-ContextMenuRadioGroup",t)}));H.displayName="ContextMenu.RadioGroup";var J=e.forwardRef((t,n)=>{let{children:o,className:u,color:r=W.color.default,...i}=t;return e.createElement(a.RadioItem,{...i,asChild:!1,ref:n,"data-accent-color":r,className:s("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-ContextMenuItem","kui-ContextMenuRadioItem",u)},e.createElement(g.Slottable,null,o),e.createElement(a.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator"},e.createElement(w,{className:"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon"})))});J.displayName="ContextMenu.RadioItem";var Q=e.forwardRef((t,n)=>{let{children:o,className:u,shortcut:r,color:i=O.color.default,...p}=t;return e.createElement(a.CheckboxItem,{"aria-keyshortcuts":r?I(r):void 0,...p,asChild:!1,ref:n,"data-accent-color":i,className:s("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-ContextMenuItem","kui-ContextMenuCheckboxItem",u)},e.createElement(g.Slottable,null,o),e.createElement(a.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator"},e.createElement(E,{className:"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon"})),r&&e.createElement(v,{shortcut:r,className:"kui-ContextMenuShortcut"}))});Q.displayName="ContextMenu.CheckboxItem";var X=t=>e.createElement(a.Sub,{...t});X.displayName="ContextMenu.Sub";var Y=e.forwardRef((t,n)=>{let{className:o,children:u,...r}=t;return e.createElement(a.SubTrigger,{...r,asChild:!1,ref:n,className:s("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-ContextMenuItem","kui-ContextMenuSubTrigger",o)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-ContextMenuShortcut"},e.createElement(G,{className:"kui-BaseMenuSubTriggerIcon kui-ContextMenuSubTriggerIcon"})))});Y.displayName="ContextMenu.SubTrigger";var Z=e.forwardRef((t,n)=>{let o=e.useContext(y),u=t.size??o.size,r=t.color??o.color,{className:i,children:p,container:c,forceMount:m,color:l,virtualized:T=!1,...d}=f({...t,size:u},C),P=R(u,C.size.default),x=e.useMemo(()=>({size:u,color:r}),[u,r]),M=e.createElement(h,{size:u},e.createElement(y.Provider,{value:x},p));return e.createElement(a.Portal,{container:c,forceMount:m},e.createElement(S,{asChild:!0},e.createElement(a.SubContent,{"data-accent-color":r,alignOffset:b(P),sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:n,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-ContextMenuContent","kui-ContextMenuSubContent",i)},T?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport","kui-virtualized")},M):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport")},M)))))});Z.displayName="ContextMenu.SubContent";var $=e.forwardRef(({className:t,...n},o)=>e.createElement(a.Separator,{...n,asChild:!1,ref:o,className:s("kui-BaseMenuSeparator","kui-ContextMenuSeparator",t)}));$.displayName="ContextMenu.Separator";export{j as a,F as b,_ as c,q as d,K as e,U as f,H as g,J as h,Q as i,X as j,Y as k,Z as l,$ as m,ne as n};
2
- //# sourceMappingURL=chunk-3VTS4C63.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/context-menu.tsx"],
4
- "sourcesContent": ["/**\n * Context Menu component that provides right-click menu functionality.\n * Requires client-side rendering due to event handling and portal usage.\n */\n'use client';\n\nimport * as React from 'react';\nimport { VirtualMenu } from './virtual-menu.js';\nimport classNames from 'classnames';\nimport { ContextMenu as ContextMenuPrimitive, Slot } from 'radix-ui';\nimport { useCallbackRef } from 'radix-ui/internal';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n contextMenuContentPropDefs,\n contextMenuSubContentPropDefs,\n contextMenuItemPropDefs,\n contextMenuCheckboxItemPropDefs,\n contextMenuRadioItemPropDefs,\n} from './context-menu.props.js';\nimport { Theme, useThemeContext } from './theme.js';\nimport { ThickCheckIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { MenuCloseProvider, MenuProvider } from './_internal/menu-context.js';\nimport {\n MenuShortcut,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\n\ninterface ContextMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Root> {}\nconst ContextMenuRoot: React.FC<ContextMenuRootProps> = (props) => {\n const { open: openProp, onOpenChange } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\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 const close = React.useCallback(() => handleOpenChange(false), [handleOpenChange]);\n\n return (\n <MenuCloseProvider value={close}>\n <ContextMenuPrimitive.Root {...props} open={open} onOpenChange={handleOpenChange} />\n </MenuCloseProvider>\n );\n};\nContextMenuRoot.displayName = 'ContextMenu.Root';\n\ntype ContextMenuTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.Trigger>;\ninterface ContextMenuTriggerProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Trigger, RemovedProps> {}\nconst ContextMenuTrigger = React.forwardRef<ContextMenuTriggerElement, ContextMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </ContextMenuPrimitive.Trigger>\n ),\n);\nContextMenuTrigger.displayName = 'ContextMenu.Trigger';\n\n/** Visual props shared by Content and SubContent. */\ntype ContextMenuSurfaceProps = GetPropDefTypes<typeof contextMenuContentPropDefs>;\n\ntype ContextMenuContentContextValue = {\n size?: ContextMenuSurfaceProps['size'];\n color?: ContextMenuSurfaceProps['color'];\n};\nconst ContextMenuContentContext = React.createContext<ContextMenuContentContextValue>({});\ntype ContextMenuContentElement = React.ElementRef<typeof ContextMenuPrimitive.Content>;\ninterface ContextMenuContentProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Content, RemovedProps>,\n ContextMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Portal>['container'];\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 context menu.\n */\n virtualized?: boolean;\n /**\n * @deprecated Has no effect. ContextMenu submenus always cascade.\n */\n submenuBehavior?: Responsive<'cascade' | 'drill-down'>;\n}\nconst ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, contextMenuContentPropDefs.size);\n const themeContext = useThemeContext();\n const {\n size = contextMenuContentPropDefs.size.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n submenuBehavior: _submenuBehavior,\n virtualized = false,\n ...contentProps\n } = extractProps(props, contextMenuContentPropDefs);\n\n const resolvedColor = color || themeContext.accentColor;\n const scalarSize = useResolvedResponsiveValue(size, contextMenuContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color: resolvedColor }),\n [size, resolvedColor],\n );\n\n const body = (\n <MenuProvider size={size}>\n <ContextMenuContentContext.Provider value={contextValue}>{children}</ContextMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <ContextMenuPrimitive.Content\n data-accent-color={resolvedColor}\n alignOffset={getMenuAlignOffset(scalarSize)}\n collisionPadding={10}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-ContextMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport', 'kui-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </ContextMenuPrimitive.Content>\n </Theme>\n </ContextMenuPrimitive.Portal>\n );\n },\n);\nContextMenuContent.displayName = 'ContextMenu.Content';\n\ntype ContextMenuLabelElement = React.ElementRef<typeof ContextMenuPrimitive.Label>;\ninterface ContextMenuLabelProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Label, RemovedProps> {}\nconst ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuLabel', 'kui-ContextMenuLabel', className)}\n />\n ),\n);\nContextMenuLabel.displayName = 'ContextMenu.Label';\n\ntype ContextMenuItemElement = React.ElementRef<typeof ContextMenuPrimitive.Item>;\ntype ContextMenuItemOwnProps = GetPropDefTypes<typeof contextMenuItemPropDefs>;\ninterface ContextMenuItemProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Item, RemovedProps>,\n ContextMenuItemOwnProps {}\nconst ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = contextMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n return (\n <ContextMenuPrimitive.Item\n data-accent-color={color}\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-ContextMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-ContextMenuShortcut\" />}\n </ContextMenuPrimitive.Item>\n );\n },\n);\nContextMenuItem.displayName = 'ContextMenu.Item';\n\ntype ContextMenuGroupElement = React.ElementRef<typeof ContextMenuPrimitive.Group>;\ninterface ContextMenuGroupProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Group, RemovedProps> {}\nconst ContextMenuGroup = React.forwardRef<ContextMenuGroupElement, ContextMenuGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuGroup', 'kui-ContextMenuGroup', className)}\n />\n ),\n);\nContextMenuGroup.displayName = 'ContextMenu.Group';\n\ntype ContextMenuRadioGroupElement = React.ElementRef<typeof ContextMenuPrimitive.RadioGroup>;\ninterface ContextMenuRadioGroupProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.RadioGroup, RemovedProps> {}\nconst ContextMenuRadioGroup = React.forwardRef<\n ContextMenuRadioGroupElement,\n ContextMenuRadioGroupProps\n>(({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.RadioGroup\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuRadioGroup', 'kui-ContextMenuRadioGroup', className)}\n />\n));\nContextMenuRadioGroup.displayName = 'ContextMenu.RadioGroup';\n\ntype ContextMenuRadioItemElement = React.ElementRef<typeof ContextMenuPrimitive.RadioItem>;\ntype ContextMenuRadioItemOwnProps = GetPropDefTypes<typeof contextMenuRadioItemPropDefs>;\ninterface ContextMenuRadioItemProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.RadioItem, RemovedProps>,\n ContextMenuRadioItemOwnProps {}\nconst ContextMenuRadioItem = React.forwardRef<\n ContextMenuRadioItemElement,\n ContextMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = contextMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <ContextMenuPrimitive.RadioItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuRadioItem',\n 'kui-ContextMenuItem',\n 'kui-ContextMenuRadioItem',\n className,\n )}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n <ContextMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator\">\n <ThickDotIcon className=\"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon\" />\n </ContextMenuPrimitive.ItemIndicator>\n </ContextMenuPrimitive.RadioItem>\n );\n});\nContextMenuRadioItem.displayName = 'ContextMenu.RadioItem';\n\ntype ContextMenuCheckboxItemElement = React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>;\ntype ContextMenuCheckboxItemOwnProps = GetPropDefTypes<typeof contextMenuCheckboxItemPropDefs>;\ninterface ContextMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.CheckboxItem, RemovedProps>,\n ContextMenuCheckboxItemOwnProps {}\nconst ContextMenuCheckboxItem = React.forwardRef<\n ContextMenuCheckboxItemElement,\n ContextMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = contextMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <ContextMenuPrimitive.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 'kui-BaseMenuItem',\n 'kui-BaseMenuCheckboxItem',\n 'kui-ContextMenuItem',\n 'kui-ContextMenuCheckboxItem',\n className,\n )}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n <ContextMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator\">\n <ThickCheckIcon className=\"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon\" />\n </ContextMenuPrimitive.ItemIndicator>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-ContextMenuShortcut\" />}\n </ContextMenuPrimitive.CheckboxItem>\n );\n});\nContextMenuCheckboxItem.displayName = 'ContextMenu.CheckboxItem';\n\ninterface ContextMenuSubProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Sub, RemovedProps> {}\nconst ContextMenuSub: React.FC<ContextMenuSubProps> = (props) => (\n <ContextMenuPrimitive.Sub {...props} />\n);\nContextMenuSub.displayName = 'ContextMenu.Sub';\n\ntype ContextMenuSubTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>;\ninterface ContextMenuSubTriggerProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.SubTrigger, RemovedProps> {}\nconst ContextMenuSubTrigger = React.forwardRef<\n ContextMenuSubTriggerElement,\n ContextMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, ...subTriggerProps } = props;\n return (\n <ContextMenuPrimitive.SubTrigger\n {...subTriggerProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-ContextMenuItem',\n 'kui-ContextMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-ContextMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-ContextMenuSubTriggerIcon\" />\n </div>\n </ContextMenuPrimitive.SubTrigger>\n );\n});\nContextMenuSubTrigger.displayName = 'ContextMenu.SubTrigger';\n\ntype ContextMenuSubContentElement = React.ElementRef<typeof ContextMenuPrimitive.SubContent>;\ninterface ContextMenuSubContentProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.SubContent, RemovedProps>,\n ContextMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Portal>['container'];\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n */\n virtualized?: boolean;\n}\nconst ContextMenuSubContent = React.forwardRef<\n ContextMenuSubContentElement,\n ContextMenuSubContentProps\n>((props, forwardedRef) => {\n const parent = React.useContext(ContextMenuContentContext);\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 }, contextMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, contextMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color }),\n [size, color],\n );\n\n const body = (\n <MenuProvider size={size}>\n <ContextMenuContentContext.Provider value={contextValue}>{children}</ContextMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <ContextMenuPrimitive.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 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-BaseMenuSubContent',\n 'kui-ContextMenuContent',\n 'kui-ContextMenuSubContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport', 'kui-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </ContextMenuPrimitive.SubContent>\n </Theme>\n </ContextMenuPrimitive.Portal>\n );\n});\nContextMenuSubContent.displayName = 'ContextMenu.SubContent';\n\ntype ContextMenuSeparatorElement = React.ElementRef<typeof ContextMenuPrimitive.Separator>;\ninterface ContextMenuSeparatorProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Separator, RemovedProps> {}\nconst ContextMenuSeparator = React.forwardRef<\n ContextMenuSeparatorElement,\n ContextMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuSeparator', 'kui-ContextMenuSeparator', className)}\n />\n));\nContextMenuSeparator.displayName = 'ContextMenu.Separator';\n\nexport {\n ContextMenuRoot as Root,\n ContextMenuTrigger as Trigger,\n ContextMenuContent as Content,\n ContextMenuLabel as Label,\n ContextMenuItem as Item,\n ContextMenuGroup as Group,\n ContextMenuRadioGroup as RadioGroup,\n ContextMenuRadioItem as RadioItem,\n ContextMenuCheckboxItem as CheckboxItem,\n ContextMenuSub as Sub,\n ContextMenuSubTrigger as SubTrigger,\n ContextMenuSubContent as SubContent,\n ContextMenuSeparator as Separator,\n VirtualMenu as Virtual,\n};\n\nexport type {\n ContextMenuRootProps as RootProps,\n ContextMenuTriggerProps as TriggerProps,\n ContextMenuContentProps as ContentProps,\n ContextMenuLabelProps as LabelProps,\n ContextMenuItemProps as ItemProps,\n ContextMenuGroupProps as GroupProps,\n ContextMenuRadioGroupProps as RadioGroupProps,\n ContextMenuRadioItemProps as RadioItemProps,\n ContextMenuCheckboxItemProps as CheckboxItemProps,\n ContextMenuSubProps as SubProps,\n ContextMenuSubTriggerProps as SubTriggerProps,\n ContextMenuSubContentProps as SubContentProps,\n ContextMenuSeparatorProps as SeparatorProps,\n};\n"],
5
- "mappings": "+fAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,kBAAAE,EAAA,YAAAC,EAAA,UAAAC,EAAA,SAAAC,EAAA,UAAAC,EAAA,eAAAC,EAAA,cAAAC,EAAA,SAAAC,EAAA,cAAAC,EAAA,QAAAC,EAAA,eAAAC,EAAA,eAAAC,EAAA,YAAAC,EAAA,YAAAC,IAMA,UAAYC,MAAW,QAEvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,EAAsB,QAAAC,MAAY,WAC1D,OAAS,kBAAAC,OAAsB,oBA4B/B,IAAMC,EAAmDC,GAAU,CACjE,GAAM,CAAE,KAAMC,EAAU,aAAAC,CAAa,EAAIF,EACnC,CAACG,EAAkBC,CAAmB,EAAU,WAAS,EAAK,EAC9DC,EAAOJ,GAAYE,EAEnBG,EAAuBC,GAAeL,CAAY,EAClDM,EAAyB,cAC5BC,GAAkB,CACjBL,EAAoBK,CAAI,EACxBH,EAAqBG,CAAI,CAC3B,EACA,CAACH,CAAoB,CACvB,EACMI,EAAc,cAAY,IAAMF,EAAiB,EAAK,EAAG,CAACA,CAAgB,CAAC,EAEjF,OACE,gBAACG,EAAA,CAAkB,MAAOD,GACxB,gBAACE,EAAqB,KAArB,CAA2B,GAAGZ,EAAO,KAAMK,EAAM,aAAcG,EAAkB,CACpF,CAEJ,EACAT,EAAgB,YAAc,mBAK9B,IAAMc,EAA2B,aAC/B,CAAC,CAAE,SAAAC,EAAU,GAAGd,CAAM,EAAGe,IACvB,gBAACH,EAAqB,QAArB,CAA8B,GAAGZ,EAAO,IAAKe,EAAc,QAAO,IAChEC,EAAoBF,CAAQ,CAC/B,CAEJ,EACAD,EAAmB,YAAc,sBASjC,IAAMI,EAAkC,gBAA8C,CAAC,CAAC,EAgBlFC,EAA2B,aAC/B,CAACC,EAAUJ,IAAiB,CAC1B,IAAMf,EAAQoB,EAAkBD,EAAUE,EAA2B,IAAI,EACnEC,EAAeC,EAAgB,EAC/B,CACJ,KAAAC,EAAOH,EAA2B,KAAK,OACzC,EAAIrB,EACE,CACJ,UAAAyB,EACA,SAAAX,EACA,MAAAY,EACA,UAAAC,EACA,WAAAC,EACA,gBAAiBC,EACjB,YAAAC,EAAc,GACd,GAAGC,CACL,EAAIC,EAAahC,EAAOqB,CAA0B,EAE5CY,EAAgBP,GAASJ,EAAa,YACtCY,EAAaC,EAA2BX,EAAMH,EAA2B,KAAK,OAAO,EAErFe,GAAqB,UACzB,KAAO,CAAE,KAAAZ,EAAM,MAAOS,CAAc,GACpC,CAACT,EAAMS,CAAa,CACtB,EAEMI,EACJ,gBAACC,EAAA,CAAa,KAAMd,GAClB,gBAACP,EAA0B,SAA1B,CAAmC,MAAOmB,IAAetB,CAAS,CACrE,EAGF,OACE,gBAACF,EAAqB,OAArB,CAA4B,UAAWe,EAAW,WAAYC,GAC7D,gBAACW,EAAA,CAAM,QAAO,IACZ,gBAAC3B,EAAqB,QAArB,CACC,oBAAmBqB,EACnB,YAAaO,EAAmBN,CAAU,EAC1C,iBAAkB,GACjB,GAAGH,EACJ,QAAS,GACT,IAAKhB,EACL,UAAW0B,EACT,oBACA,sBACJ,mBACI,yBACAhB,CACF,GAECK,EACC,gBAAC,OAAI,UAAWW,EAAW,uBAAwB,0BAA2B,iBAAiB,GAC5FJ,CACH,EAEA,gBAACK,EAAA,CAAW,KAAK,OAAO,WAAW,YACjC,gBAAC,OAAI,UAAWD,EAAW,uBAAwB,yBAAyB,GAAIJ,CAAK,CACvF,CAEJ,CACF,CACF,CAEJ,CACF,EACAnB,EAAmB,YAAc,sBAKjC,IAAMyB,EAAyB,aAC7B,CAAC,CAAE,UAAAlB,EAAW,GAAGzB,CAAM,EAAGe,IACxB,gBAACH,EAAqB,MAArB,CACE,GAAGZ,EACJ,QAAS,GACT,IAAKe,EACL,UAAW0B,EAAW,oBAAqB,uBAAwBhB,CAAS,EAC9E,CAEJ,EACAkB,EAAiB,YAAc,oBAO/B,IAAMC,EAAwB,aAC5B,CAAC5C,EAAOe,IAAiB,CACvB,GAAM,CACJ,UAAAU,EACA,SAAAX,EACA,MAAAY,EAAQmB,EAAwB,MAAM,QACtC,SAAAC,EACA,GAAGC,CACL,EAAI/C,EACJ,OACE,gBAACY,EAAqB,KAArB,CACC,oBAAmBc,EACnB,oBAAmBoB,EAAWE,EAAmBF,CAAQ,EAAI,OAC5D,GAAGC,EACJ,IAAKhC,EACL,UAAW0B,EAAW,YAAa,mBAAoB,sBAAuBhB,CAAS,GAEvF,gBAACwB,EAAK,UAAL,KAAgBnC,CAAS,EACzBgC,GAAY,gBAACI,EAAA,CAAa,SAAUJ,EAAU,UAAU,0BAA0B,CACrF,CAEJ,CACF,EACAF,EAAgB,YAAc,mBAK9B,IAAMO,EAAyB,aAC7B,CAAC,CAAE,UAAA1B,EAAW,GAAGzB,CAAM,EAAGe,IACxB,gBAACH,EAAqB,MAArB,CACE,GAAGZ,EACJ,QAAS,GACT,IAAKe,EACL,UAAW0B,EAAW,oBAAqB,uBAAwBhB,CAAS,EAC9E,CAEJ,EACA0B,EAAiB,YAAc,oBAK/B,IAAMC,EAA8B,aAGlC,CAAC,CAAE,UAAA3B,EAAW,GAAGzB,CAAM,EAAGe,IAC1B,gBAACH,EAAqB,WAArB,CACE,GAAGZ,EACJ,QAAS,GACT,IAAKe,EACL,UAAW0B,EAAW,yBAA0B,4BAA6BhB,CAAS,EACxF,CACD,EACD2B,EAAsB,YAAc,yBAOpC,IAAMC,EAA6B,aAGjC,CAACrD,EAAOe,IAAiB,CACzB,GAAM,CACJ,SAAAD,EACA,UAAAW,EACA,MAAAC,EAAQ4B,EAA6B,MAAM,QAC3C,GAAGP,CACL,EAAI/C,EACJ,OACE,gBAACY,EAAqB,UAArB,CACE,GAAGmC,EACJ,QAAS,GACT,IAAKhC,EACL,oBAAmBW,EACnB,UAAWe,EACT,mBACA,wBACA,sBACA,2BACAhB,CACF,GAEA,gBAACwB,EAAK,UAAL,KAAgBnC,CAAS,EAC1B,gBAACF,EAAqB,cAArB,CAAmC,UAAU,0DAC5C,gBAAC2C,EAAA,CAAa,UAAU,iEAAiE,CAC3F,CACF,CAEJ,CAAC,EACDF,EAAqB,YAAc,wBAOnC,IAAMG,EAAgC,aAGpC,CAACxD,EAAOe,IAAiB,CACzB,GAAM,CACJ,SAAAD,EACA,UAAAW,EACA,SAAAqB,EACA,MAAApB,EAAQ+B,EAAgC,MAAM,QAC9C,GAAGV,CACL,EAAI/C,EACJ,OACE,gBAACY,EAAqB,aAArB,CACC,oBAAmBkC,EAAWE,EAAmBF,CAAQ,EAAI,OAC5D,GAAGC,EACJ,QAAS,GACT,IAAKhC,EACL,oBAAmBW,EACnB,UAAWe,EACT,mBACA,2BACA,sBACA,8BACAhB,CACF,GAEA,gBAACwB,EAAK,UAAL,KAAgBnC,CAAS,EAC1B,gBAACF,EAAqB,cAArB,CAAmC,UAAU,0DAC5C,gBAAC8C,EAAA,CAAe,UAAU,iEAAiE,CAC7F,EACCZ,GAAY,gBAACI,EAAA,CAAa,SAAUJ,EAAU,UAAU,0BAA0B,CACrF,CAEJ,CAAC,EACDU,EAAwB,YAAc,2BAItC,IAAMG,EAAiD3D,GACrD,gBAACY,EAAqB,IAArB,CAA0B,GAAGZ,EAAO,EAEvC2D,EAAe,YAAc,kBAK7B,IAAMC,EAA8B,aAGlC,CAAC5D,EAAOe,IAAiB,CACzB,GAAM,CAAE,UAAAU,EAAW,SAAAX,EAAU,GAAG+C,CAAgB,EAAI7D,EACpD,OACE,gBAACY,EAAqB,WAArB,CACE,GAAGiD,EACJ,QAAS,GACT,IAAK9C,EACL,UAAW0B,EACT,mBACA,yBACA,sBACA,4BACAhB,CACF,GAECX,EACD,gBAAC,OAAI,UAAU,gDACb,gBAACgD,EAAA,CAAsB,UAAU,2DAA2D,CAC9F,CACF,CAEJ,CAAC,EACDF,EAAsB,YAAc,yBAYpC,IAAMG,EAA8B,aAGlC,CAAC/D,EAAOe,IAAiB,CACzB,IAAMiD,EAAe,aAAW/C,CAAyB,EAGnDO,EAAOxB,EAAM,MAAQgE,EAAO,KAC5BtC,EAAQ1B,EAAM,OAASgE,EAAO,MAE9B,CACJ,UAAAvC,EACA,SAAAX,EACA,UAAAa,EACA,WAAAC,EACA,MAAOqC,EACP,YAAAnC,EAAc,GACd,GAAGoC,CACL,EAAIlC,EAAa,CAAE,GAAGhC,EAAO,KAAAwB,CAAK,EAAGH,CAA6B,EAE5Da,EAAaC,EAA2BX,EAAMH,EAA8B,KAAK,OAAO,EAExFe,EAAqB,UACzB,KAAO,CAAE,KAAAZ,EAAM,MAAAE,CAAM,GACrB,CAACF,EAAME,CAAK,CACd,EAEMW,EACJ,gBAACC,EAAA,CAAa,KAAMd,GAClB,gBAACP,EAA0B,SAA1B,CAAmC,MAAOmB,GAAetB,CAAS,CACrE,EAGF,OACE,gBAACF,EAAqB,OAArB,CAA4B,UAAWe,EAAW,WAAYC,GAC7D,gBAACW,EAAA,CAAM,QAAO,IACZ,gBAAC3B,EAAqB,WAArB,CACC,oBAAmBc,EACnB,YAAac,EAAmBN,CAAU,EAE1C,WAAY,EACZ,iBAAkB,GACjB,GAAGgC,EACJ,QAAS,GACT,IAAKnD,EACL,UAAW0B,EACT,oBACA,sBACF,mBACE,yBACA,yBACA,4BACAhB,CACF,GAECK,EACC,gBAAC,OAAI,UAAWW,EAAW,uBAAwB,0BAA2B,iBAAiB,GAC5FJ,CACH,EAEA,gBAACK,EAAA,CAAW,KAAK,OAAO,WAAW,YACjC,gBAAC,OAAI,UAAWD,EAAW,uBAAwB,yBAAyB,GAAIJ,CAAK,CACvF,CAEJ,CACF,CACF,CAEJ,CAAC,EACD0B,EAAsB,YAAc,yBAKpC,IAAMI,EAA6B,aAGjC,CAAC,CAAE,UAAA1C,EAAW,GAAGzB,CAAM,EAAGe,IAC1B,gBAACH,EAAqB,UAArB,CACE,GAAGZ,EACJ,QAAS,GACT,IAAKe,EACL,UAAW0B,EAAW,wBAAyB,2BAA4BhB,CAAS,EACtF,CACD,EACD0C,EAAqB,YAAc",
6
- "names": ["context_menu_exports", "__export", "ContextMenuCheckboxItem", "ContextMenuContent", "ContextMenuGroup", "ContextMenuItem", "ContextMenuLabel", "ContextMenuRadioGroup", "ContextMenuRadioItem", "ContextMenuRoot", "ContextMenuSeparator", "ContextMenuSub", "ContextMenuSubContent", "ContextMenuSubTrigger", "ContextMenuTrigger", "VirtualMenu", "React", "classNames", "ContextMenuPrimitive", "Slot", "useCallbackRef", "ContextMenuRoot", "props", "openProp", "onOpenChange", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChangeProp", "useCallbackRef", "handleOpenChange", "next", "close", "MenuCloseProvider", "ContextMenuPrimitive", "ContextMenuTrigger", "children", "forwardedRef", "requireReactElement", "ContextMenuContentContext", "ContextMenuContent", "ownProps", "useThemeSizeProps", "baseMenuSubContentPropDefs", "themeContext", "useThemeContext", "size", "className", "color", "container", "forceMount", "_submenuBehavior", "virtualized", "contentProps", "extractProps", "resolvedColor", "scalarSize", "useResolvedResponsiveValue", "contextValue", "body", "MenuProvider", "Theme", "getMenuAlignOffset", "classNames", "ScrollArea", "ContextMenuLabel", "ContextMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "ContextMenuGroup", "ContextMenuRadioGroup", "ContextMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "ContextMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "ContextMenuSub", "ContextMenuSubTrigger", "subTriggerProps", "ThickChevronRightIcon", "ContextMenuSubContent", "parent", "_color", "subContentProps", "ContextMenuSeparator"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as U}from"./chunk-DUTZUWZP.js";import{a as K,b as F,c as j,e as D,f as O}from"./chunk-432YLNB3.js";import{a as k}from"./chunk-PALE5UWK.js";import{a as H,b as z,c as W}from"./chunk-FDHWAC6W.js";import{b as v}from"./chunk-4ZOVV3TY.js";import{d as G}from"./chunk-62ZGP4ET.js";import{b as L}from"./chunk-FWB47YCH.js";import{a as x}from"./chunk-RWTSGUVJ.js";import{a as ne}from"./chunk-OS3FCYZY.js";var ie={};ne(ie,{Group:()=>ee,GroupContent:()=>te,GroupLabel:()=>re,Menu:()=>$,MenuButton:()=>Q,MenuItem:()=>X,MenuSub:()=>Y,MenuSubContent:()=>_,MenuSubTrigger:()=>Z,Search:()=>ae,Separator:()=>V});import*as e from"react";import p from"classnames";import*as m from"@radix-ui/react-accordion";var V=e.forwardRef(({className:r,...t},n)=>e.createElement(U,{...t,ref:n,className:p("kui-SidebarSeparator",r)}));V.displayName="Sidebar.Separator";var $=e.forwardRef(({className:r,...t},n)=>e.createElement("ul",{...t,ref:n,className:p("kui-SidebarMenu",r)}));$.displayName="Sidebar.Menu";var X=e.forwardRef(({className:r,...t},n)=>e.createElement("li",{...t,ref:n,className:p("kui-SidebarMenuItem",r)}));X.displayName="Sidebar.MenuItem";function oe(r){let t=[],n=[];return e.Children.forEach(r,a=>{if(typeof a=="string"||typeof a=="number")n.push(e.createElement("span",{key:n.length,className:"kui-SidebarMenuLabel"},a));else if(e.isValidElement(a)){let i=a;i.type==="svg"||i.props&&i.props.icon||typeof i.type=="function"&&(i.type.displayName?.includes("Icon")||i.type.name?.includes("Icon"))?t.push(a):n.push(a)}else a&&n.push(a)}),{icons:t,labels:n}}function A(r){if(typeof r=="string"||typeof r=="number")return e.createElement("span",{className:"kui-SidebarMenuLabel"},r);if(Array.isArray(r))return r.map((t,n)=>e.createElement(e.Fragment,{key:n},A(t)));if(e.isValidElement(r)){let t=r,n=t.props&&t.props.className||"";if(typeof t.type=="string"&&n.split(" ").includes("kui-SidebarMenuLabel"))return t;let i=A(t.props?.children);return e.cloneElement(t,{...t.props},i)}return r}function J(r){if(r.key!=="ArrowDown"&&r.key!=="ArrowUp")return;let t=r.currentTarget.closest(".kui-SidebarContent, .kui-SidebarSearchPopover"),n=t?Array.from(t.querySelectorAll(".kui-SidebarMenuButton")).filter(d=>d.offsetParent!==null):[],a=n.indexOf(r.currentTarget),i=n[a+(r.key==="ArrowDown"?1:-1)];a!==-1&&i&&(r.preventDefault(),i.focus())}var Q=e.forwardRef(({asChild:r=!1,isActive:t=!1,shortcut:n,badge:a,className:i,children:d,onKeyDown:l,...f},s)=>{let u=v(),c=u?.size??"2",y=u?.presentation==="thin",C=r?L:"button",g=e.useCallback(o=>{J(o),l?.(o)},[l]),S=e.useMemo(()=>A(d),[d]),{icons:R,labels:N}=e.useMemo(()=>y?oe(d):{icons:[],labels:[]},[y,d]),T=e.useMemo(()=>{if(!r)return null;try{let o=e.Children.only(S),M=o.props?.children,P=e.createElement(e.Fragment,null,M,a&&e.createElement("div",{className:"kui-SidebarMenuBadge"},typeof a=="string"?e.createElement(k,{size:c,variant:"soft"},a):e.createElement(k,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"kui-BaseMenuShortcut kui-SidebarMenuShortcut"},e.createElement(x,{size:c},n)));return e.cloneElement(o,{...o.props},P)}catch{return S}},[r,S,a,n,c]);return e.createElement(C,{...f,ref:s,"aria-current":t?"page":void 0,className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton",i),"data-active":t||void 0,onKeyDown:g},r?T:y&&R.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},R),N.map((o,M)=>e.createElement(e.Fragment,{key:M},typeof o=="string"||typeof o=="number"?e.createElement("span",{className:"kui-SidebarMenuLabel"},o):o))):e.createElement(e.Fragment,null,S,a&&e.createElement("div",{className:"kui-SidebarMenuBadge"},typeof a=="string"?e.createElement(k,{size:c,variant:"soft"},a):e.createElement(k,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"kui-BaseMenuShortcut kui-SidebarMenuShortcut"},e.createElement(x,{size:c},n))))});Q.displayName="Sidebar.MenuButton";var I=e.createContext("accordion"),Y=e.forwardRef(({defaultOpen:r=!1,children:t,...n},a)=>(v()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:a},e.createElement(K,null,e.createElement(I.Provider,{value:"dropdown"},t))):e.createElement("div",{...n,ref:a},e.createElement(I.Provider,{value:"accordion"},e.createElement(m.Root,{type:"single",collapsible:!0,defaultValue:r?"item":void 0},e.createElement(m.Item,{value:"item"},t)))));Y.displayName="Sidebar.MenuSub";var Z=e.forwardRef(({asChild:r=!1,className:t,children:n,onKeyDown:a,...i},d)=>e.useContext(I)==="dropdown"?e.createElement(F,null,e.createElement("button",{...i,onKeyDown:a,ref:d,type:"button","aria-haspopup":"menu",className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",t)},n)):e.createElement(m.Header,{asChild:!0},e.createElement("div",null,e.createElement(m.Trigger,{...i,onKeyDown:f=>{J(f),a?.(f)},ref:d,asChild:r,className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",t)},r?n:e.createElement(e.Fragment,null,n,e.createElement(G,{className:p("kui-BaseMenuSubTriggerIcon","kui-SidebarMenuSubTriggerIcon")}))))));Z.displayName="Sidebar.MenuSubTrigger";var _=e.forwardRef(({className:r,children:t,...n},a)=>{let i=v();if(e.useContext(I)==="dropdown"){let l=s=>{if(Array.isArray(s))return s.map((u,c)=>e.createElement(e.Fragment,{key:c},l(u)));if(e.isValidElement(s)){if(s.type?.displayName==="Sidebar.MenuButton")return s.props?.children;let c=s.props?.children;if(c!==void 0)return e.cloneElement(s,{...s.props,children:l(c)})}return s},f=e.Children.map(t,(s,u)=>{if(e.isValidElement(s)&&s.type?.displayName==="Sidebar.MenuItem"){let c=s.props?.children,y=l(c);return e.createElement(D,{key:u,asChild:!0},y)}return e.createElement(D,{key:u,asChild:!0},l(s))});return e.createElement(j,{size:i?.size,className:p(r)},e.createElement(O,null,f))}return e.createElement(m.Content,{...n,ref:a,className:p("kui-SidebarMenuSubContent",r)},e.createElement("ul",{className:"kui-SidebarMenuSubList"},t))});_.displayName="Sidebar.MenuSubContent";var ee=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:p("kui-BaseMenuGroup","kui-SidebarGroup",r)}));ee.displayName="Sidebar.Group";var re=e.forwardRef(({asChild:r=!1,className:t,...n},a)=>e.createElement(r?L:"div",{...n,ref:a,className:p("kui-BaseMenuLabel","kui-SidebarGroupLabel",t)}));re.displayName="Sidebar.GroupLabel";var te=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:p("kui-SidebarGroupContent",r)}));te.displayName="Sidebar.GroupContent";var E=({className:r})=>e.createElement("svg",{className:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),q=({className:r})=>e.createElement("svg",{className:r,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),ae=e.forwardRef(({value:r,onValueChange:t,placeholder:n="Search...",children:a,className:i,...d},l)=>{let f=v(),s=f?.presentation==="thin",u=e.useRef(null),c=e.useRef(null),C=`${e.useId()}-results`,g=e.useRef(r);g.current=r;let S=e.useRef(t);S.current=t;let R=n.replace(/\.+$/,""),N=e.useCallback(o=>{o.key==="Escape"&&g.current&&(o.preventDefault(),o.stopPropagation(),S.current(""),u.current?.focus())},[]),T=e.useCallback(o=>{let M=c.current;if(!M)return;let P=M.querySelector('[role="group"]');if(!P)return;let b=Array.from(P.querySelectorAll("a, button"));if(b.length===0)return;let B=document.activeElement,w=B===u.current,h=b.indexOf(B);if(o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!w&&h!==-1){u.current?.focus();return}switch(o.key){case"ArrowDown":{o.preventDefault(),w||h===-1?b[0]?.focus():h<b.length-1&&b[h+1]?.focus();break}case"ArrowUp":{o.preventDefault(),h<=0?u.current?.focus():b[h-1]?.focus();break}case"Home":{w||(o.preventDefault(),b[0]?.focus());break}case"End":{w||(o.preventDefault(),b[b.length-1]?.focus());break}}},[]);return s?e.createElement("div",{...d,ref:l,className:p("kui-SidebarSearch","kui-SidebarSearch--thin",i)},e.createElement(H,null,e.createElement(z,null,e.createElement("button",{type:"button",className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarSearchTrigger"),"aria-label":R},e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},e.createElement(E,null)),e.createElement("span",{className:"kui-SidebarMenuLabel"},"Search"))),e.createElement(W,{side:"right",align:"start",size:"2",width:"280px","aria-label":R},e.createElement("div",{ref:c,className:"kui-SidebarSearchPopover",role:"search",onKeyDown:T},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(E,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:u,type:"search",className:"kui-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:N,placeholder:n,"aria-label":R,"aria-controls":a?C:void 0,autoFocus:!0}),r&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{t(""),u.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))),a&&e.createElement("div",{id:C,role:"group","aria-label":"Search results"},a))))):e.createElement("div",{...d,ref:l,className:p("kui-SidebarSearch","kui-SidebarSearch--expanded","kui-ShellPaneChrome",`kui-r-size-${f?.size??"2"}`,i),role:"search"},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(E,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:u,type:"search",className:"kui-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:N,placeholder:n,"aria-label":R}),r&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{t(""),u.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))))});ae.displayName="Sidebar.Search";export{V as a,$ as b,X as c,Q as d,Y as e,Z as f,_ as g,ee as h,re as i,te as j,ae as k,ie as l};
2
- //# sourceMappingURL=chunk-3WE4E2WQ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/sidebar.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from './slot.js';\nimport * as Accordion from '@radix-ui/react-accordion';\nimport * as DropdownMenu from './dropdown-menu.js';\nimport * as Popover from './popover.js';\n\nimport { Separator } from './separator.js';\nimport { ThickChevronRightIcon } from './icons.js';\nimport { Kbd } from './kbd.js';\nimport { Chip } from './chip.js';\nimport { useSidebarVisual } from './_internal/pane-chrome.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { ChipProps } from './chip.js';\n\n// Chip configuration for the `badge` slot of sidebar menu buttons\ntype BadgeConfig = {\n content: React.ReactNode;\n variant?: ChipProps['variant'];\n size?: ChipProps['size'];\n color?: ChipProps['color'];\n radius?: ChipProps['radius'];\n};\n\n// Sidebar separator\ninterface SidebarSeparatorProps extends ComponentPropsWithout<typeof Separator, RemovedProps> {}\n\nconst SidebarSeparator = React.forwardRef<React.ComponentRef<typeof Separator>, SidebarSeparatorProps>(({ className, ...props }, forwardedRef) => (\n <Separator {...props} ref={forwardedRef} className={classNames('kui-SidebarSeparator', className)} />\n));\nSidebarSeparator.displayName = 'Sidebar.Separator';\n\n// Menu components - styled like dropdown menus, but semantically a navigation list.\n// No menu/menuitem roles: those promise an application menu, which a list of links is not.\ninterface SidebarMenuProps extends React.ComponentPropsWithoutRef<'ul'> {}\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(({ className, ...props }, forwardedRef) => (\n <ul {...props} ref={forwardedRef} className={classNames('kui-SidebarMenu', className)} />\n));\nSidebarMenu.displayName = 'Sidebar.Menu';\n\ninterface SidebarMenuItemProps extends React.ComponentPropsWithoutRef<'li'> {}\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, SidebarMenuItemProps>(({ className, ...props }, forwardedRef) => (\n <li {...props} ref={forwardedRef} className={classNames('kui-SidebarMenuItem', className)} />\n));\nSidebarMenuItem.displayName = 'Sidebar.MenuItem';\n\ninterface SidebarMenuButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n asChild?: boolean;\n isActive?: boolean;\n shortcut?: React.ReactNode;\n badge?: string | BadgeConfig;\n}\n\n// Extracted to module scope to avoid re-creation on every render\nfunction separateIconsAndLabels(node: React.ReactNode): { icons: React.ReactNode[]; labels: React.ReactNode[] } {\n const icons: React.ReactNode[] = [];\n const labels: React.ReactNode[] = [];\n\n React.Children.forEach(node, (child) => {\n if (typeof child === 'string' || typeof child === 'number') {\n labels.push(<span key={labels.length} className=\"kui-SidebarMenuLabel\">{child}</span>);\n } else if (React.isValidElement(child)) {\n const el = child as React.ReactElement<any>;\n if (el.type === 'svg' || (el.props && el.props.icon) || (typeof el.type === 'function' && ((el.type as any).displayName?.includes('Icon') || (el.type as any).name?.includes('Icon')))) {\n icons.push(child);\n } else {\n labels.push(child);\n }\n } else if (child) {\n labels.push(child);\n }\n });\n\n return { icons, labels };\n}\n\nfunction wrapTextNodes(node: React.ReactNode): React.ReactNode {\n if (typeof node === 'string' || typeof node === 'number') {\n return <span className=\"kui-SidebarMenuLabel\">{node}</span>;\n }\n if (Array.isArray(node)) {\n return node.map((child, index) => <React.Fragment key={index}>{wrapTextNodes(child)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const el = node as React.ReactElement<any>;\n const className: string = (el.props && (el.props as any).className) || '';\n const isAlreadyLabel = typeof el.type === 'string' && className.split(' ').includes('kui-SidebarMenuLabel');\n if (isAlreadyLabel) return el;\n const newChildren = wrapTextNodes((el.props as any)?.children);\n return React.cloneElement(el, { ...(el.props as any) }, newChildren);\n }\n return node;\n}\n\n// Arrow Up and Down move between the visible buttons of the same sidebar, as a\n// convenience on top of Tab. Sub-menu triggers take part, so the one-item Accordion\n// behind each sub-menu doesn't keep focus on its own trigger.\nfunction focusAdjacentSidebarButton(event: React.KeyboardEvent<HTMLElement>) {\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') return;\n const scope = event.currentTarget.closest('.kui-SidebarContent, .kui-SidebarSearchPopover');\n const buttons = scope\n ? Array.from(scope.querySelectorAll<HTMLElement>('.kui-SidebarMenuButton')).filter((el) => el.offsetParent !== null)\n : [];\n const index = buttons.indexOf(event.currentTarget);\n const next = buttons[index + (event.key === 'ArrowDown' ? 1 : -1)];\n if (index !== -1 && next) {\n event.preventDefault();\n next.focus();\n }\n}\n\nconst SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n ({ asChild = false, isActive = false, shortcut, badge, className, children, onKeyDown, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const sidebarSize = visual?.size ?? '2';\n const isThinMode = visual?.presentation === 'thin';\n\n const Comp = asChild ? Slot : 'button';\n\n // Enter and Space are left to the native button or link.\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n focusAdjacentSidebarButton(event);\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n // Memoize child processing to avoid re-traversal on every render\n const processedChildren = React.useMemo(() => wrapTextNodes(children), [children]);\n\n // For thin mode, separate icons into a wrapper for targeted background styling\n const { icons, labels } = React.useMemo(\n () => isThinMode ? separateIconsAndLabels(children) : { icons: [] as React.ReactNode[], labels: [] as React.ReactNode[] },\n [isThinMode, children],\n );\n\n // When rendering asChild, Slot expects a single child element. We still want to\n // append optional badge/shortcut inside that element so they render with Link.\n const slottedChildren = React.useMemo(() => {\n if (!asChild) return null;\n try {\n const onlyChild = React.Children.only(processedChildren as React.ReactElement<any>) as React.ReactElement<any>;\n const originalInnerChildren = (onlyChild.props as any)?.children;\n const enhancedInnerChildren = (\n <>\n {originalInnerChildren}\n {badge && (\n <div className=\"kui-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Chip size={sidebarSize} variant=\"soft\">\n {badge}\n </Chip>\n ) : (\n <Chip size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Chip>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"kui-BaseMenuShortcut kui-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n );\n return React.cloneElement(onlyChild, { ...(onlyChild.props as any) }, enhancedInnerChildren);\n } catch {\n // Fallback: if multiple children were passed incorrectly, just return processedChildren\n return processedChildren as React.ReactNode;\n }\n }, [asChild, processedChildren, badge, shortcut, sidebarSize]);\n\n return (\n <Comp\n {...props}\n ref={forwardedRef}\n aria-current={isActive ? 'page' : undefined}\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-SidebarMenuButton', className)}\n data-active={isActive || undefined}\n onKeyDown={handleKeyDown}\n >\n {asChild ? (\n slottedChildren\n ) : isThinMode && icons.length > 0 ? (\n <>\n <span className=\"kui-SidebarMenuIconWrapper\">{icons}</span>\n {labels.map((label, index) => (\n <React.Fragment key={index}>\n {typeof label === 'string' || typeof label === 'number' ? (\n <span className=\"kui-SidebarMenuLabel\">{label}</span>\n ) : (\n label\n )}\n </React.Fragment>\n ))}\n </>\n ) : (\n <>\n {processedChildren}\n {badge && (\n <div className=\"kui-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Chip size={sidebarSize} variant=\"soft\">\n {badge}\n </Chip>\n ) : (\n <Chip size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Chip>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"kui-BaseMenuShortcut kui-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n )}\n </Comp>\n );\n },\n);\nSidebarMenuButton.displayName = 'Sidebar.MenuButton';\n\n// Sub-menu components: Accordion in expanded, Dropdown in thin\nconst SidebarSubMenuModeContext = React.createContext<'accordion' | 'dropdown'>('accordion');\ninterface SidebarMenuSubProps extends React.ComponentPropsWithoutRef<'div'> {\n defaultOpen?: boolean;\n}\n\nconst SidebarMenuSub = React.forwardRef<HTMLDivElement, SidebarMenuSubProps>(({ defaultOpen = false, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode: 'accordion' | 'dropdown' = visual?.presentation === 'thin' ? 'dropdown' : 'accordion';\n\n if (mode === 'dropdown') {\n return (\n <div {...props} ref={forwardedRef}>\n <DropdownMenu.Root>\n <SidebarSubMenuModeContext.Provider value=\"dropdown\">{children}</SidebarSubMenuModeContext.Provider>\n </DropdownMenu.Root>\n </div>\n );\n }\n\n return (\n <div {...props} ref={forwardedRef}>\n <SidebarSubMenuModeContext.Provider value=\"accordion\">\n <Accordion.Root type=\"single\" collapsible defaultValue={defaultOpen ? 'item' : undefined}>\n <Accordion.Item value=\"item\">{children}</Accordion.Item>\n </Accordion.Root>\n </SidebarSubMenuModeContext.Provider>\n </div>\n );\n});\nSidebarMenuSub.displayName = 'Sidebar.MenuSub';\n\ninterface SidebarMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof Accordion.Trigger> {\n asChild?: boolean;\n}\n\nconst SidebarMenuSubTrigger = React.forwardRef<React.ElementRef<typeof Accordion.Trigger>, SidebarMenuSubTriggerProps>(\n ({ asChild = false, className, children, onKeyDown, ...props }, forwardedRef) => {\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n return (\n <DropdownMenu.Trigger>\n <button\n {...(props as any)}\n onKeyDown={onKeyDown}\n ref={forwardedRef as any}\n type=\"button\"\n aria-haspopup=\"menu\"\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-SidebarMenuButton', 'kui-SidebarMenuSubTrigger', className)}\n >\n {children}\n </button>\n </DropdownMenu.Trigger>\n );\n }\n\n return (\n <Accordion.Header asChild>\n <div>\n <Accordion.Trigger\n {...props}\n onKeyDown={(event) => {\n // Runs before the Accordion's own arrow handling, which would keep focus here.\n focusAdjacentSidebarButton(event);\n onKeyDown?.(event);\n }}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-SidebarMenuButton', 'kui-SidebarMenuSubTrigger', className)}\n >\n {asChild ? (\n children\n ) : (\n <>\n {children}\n <ThickChevronRightIcon className={classNames('kui-BaseMenuSubTriggerIcon', 'kui-SidebarMenuSubTriggerIcon')} />\n </>\n )}\n </Accordion.Trigger>\n </div>\n </Accordion.Header>\n );\n },\n);\nSidebarMenuSubTrigger.displayName = 'Sidebar.MenuSubTrigger';\n\ninterface SidebarMenuSubContentProps extends React.ComponentPropsWithoutRef<typeof Accordion.Content> {}\n\nconst SidebarMenuSubContent = React.forwardRef<React.ElementRef<typeof Accordion.Content>, SidebarMenuSubContentProps>(({ className, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n const unwrapMenuButton = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n return node.map((n, i) => <React.Fragment key={i}>{unwrapMenuButton(n)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const typeDisplay = (node.type as any)?.displayName;\n if (typeDisplay === 'Sidebar.MenuButton') {\n return (node.props as any)?.children;\n }\n const child = (node.props as any)?.children;\n if (child !== undefined) {\n return React.cloneElement(node as any, { ...(node.props as any), children: unwrapMenuButton(child) });\n }\n }\n return node;\n };\n\n const normalized = React.Children.map(children as React.ReactNode, (child, index) => {\n if (React.isValidElement(child) && (child.type as any)?.displayName === 'Sidebar.MenuItem') {\n const itemChildren = (child.props as any)?.children;\n const content = unwrapMenuButton(itemChildren);\n return (\n <DropdownMenu.Item key={index} asChild>\n {content as any}\n </DropdownMenu.Item>\n );\n }\n // Fallback: wrap raw nodes too for consistent menu styling\n return (\n <DropdownMenu.Item key={index} asChild>\n {unwrapMenuButton(child) as any}\n </DropdownMenu.Item>\n );\n });\n\n return (\n <DropdownMenu.Content size={visual?.size} className={classNames(className)}>\n <DropdownMenu.Group>{normalized}</DropdownMenu.Group>\n </DropdownMenu.Content>\n );\n }\n\n return (\n <Accordion.Content {...props} ref={forwardedRef} className={classNames('kui-SidebarMenuSubContent', className)}>\n <ul className=\"kui-SidebarMenuSubList\">{children}</ul>\n </Accordion.Content>\n );\n});\nSidebarMenuSubContent.displayName = 'Sidebar.MenuSubContent';\n\n// Group components. The label is plain text: no role, so it isn't announced as an empty group.\ninterface SidebarGroupProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('kui-BaseMenuGroup', 'kui-SidebarGroup', className)} />\n));\nSidebarGroup.displayName = 'Sidebar.Group';\n\ninterface SidebarGroupLabelProps extends React.ComponentPropsWithoutRef<'div'> {\n asChild?: boolean;\n}\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, SidebarGroupLabelProps>(({ asChild = false, className, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'div';\n\n return <Comp {...props} ref={forwardedRef} className={classNames('kui-BaseMenuLabel', 'kui-SidebarGroupLabel', className)} />;\n});\nSidebarGroupLabel.displayName = 'Sidebar.GroupLabel';\n\ninterface SidebarGroupContentProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, SidebarGroupContentProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('kui-SidebarGroupContent', className)} />\n));\nSidebarGroupContent.displayName = 'Sidebar.GroupContent';\n\n// Search component: inline input in expanded, popover trigger in thin\ninterface SidebarSearchProps extends React.ComponentPropsWithoutRef<'div'> {\n value: string;\n onValueChange: (value: string) => void;\n placeholder?: string;\n children?: React.ReactNode;\n}\n\nconst SearchIcon = ({ className }: { className?: string }) => (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst ClearIcon = ({ className }: { className?: string }) => (\n <svg className={className} width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\nconst SidebarSearch = React.forwardRef<HTMLDivElement, SidebarSearchProps>(\n ({ value, onValueChange, placeholder = 'Search...', children, className, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const isThin = visual?.presentation === 'thin';\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const searchId = React.useId();\n const resultsId = `${searchId}-results`;\n\n // Stable refs for values used in callbacks \u2014 avoids recreating handlers on every keystroke\n const valueRef = React.useRef(value);\n valueRef.current = value;\n const onValueChangeRef = React.useRef(onValueChange);\n onValueChangeRef.current = onValueChange;\n\n // Derive a clean aria-label from placeholder (strip trailing dots/ellipsis)\n const searchLabel = placeholder.replace(/\\.+$/, '');\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape' && valueRef.current) {\n e.preventDefault();\n e.stopPropagation();\n onValueChangeRef.current('');\n inputRef.current?.focus();\n }\n },\n [],\n );\n\n // Arrow key navigation within the popover (input \u2194 results)\n const handlePopoverKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = popoverRef.current;\n if (!container) return;\n\n const resultsGroup = container.querySelector('[role=\"group\"]');\n if (!resultsGroup) return;\n\n const items = Array.from(\n resultsGroup.querySelectorAll<HTMLElement>('a, button'),\n );\n if (items.length === 0) return;\n\n const active = document.activeElement as HTMLElement;\n const isOnInput = active === inputRef.current;\n const currentIndex = items.indexOf(active);\n\n // Typing while a result is focused \u2192 redirect focus to input\n if (\n e.key.length === 1 &&\n !e.ctrlKey &&\n !e.metaKey &&\n !e.altKey &&\n !isOnInput &&\n currentIndex !== -1\n ) {\n inputRef.current?.focus();\n return;\n }\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n if (isOnInput || currentIndex === -1) {\n items[0]?.focus();\n } else if (currentIndex < items.length - 1) {\n items[currentIndex + 1]?.focus();\n }\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n if (currentIndex <= 0) {\n inputRef.current?.focus();\n } else {\n items[currentIndex - 1]?.focus();\n }\n break;\n }\n case 'Home': {\n // Only intercept when focused on a result, not the input (where Home moves cursor)\n if (!isOnInput) {\n e.preventDefault();\n items[0]?.focus();\n }\n break;\n }\n case 'End': {\n if (!isOnInput) {\n e.preventDefault();\n items[items.length - 1]?.focus();\n }\n break;\n }\n }\n },\n [],\n );\n\n if (isThin) {\n return (\n <div {...props} ref={forwardedRef} className={classNames('kui-SidebarSearch', 'kui-SidebarSearch--thin', className)}>\n <Popover.Root>\n <Popover.Trigger>\n <button\n type=\"button\"\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-SidebarMenuButton', 'kui-SidebarSearchTrigger')}\n aria-label={searchLabel}\n >\n <span className=\"kui-SidebarMenuIconWrapper\">\n <SearchIcon />\n </span>\n <span className=\"kui-SidebarMenuLabel\">Search</span>\n </button>\n </Popover.Trigger>\n <Popover.Content side=\"right\" align=\"start\" size=\"2\" width=\"280px\" aria-label={searchLabel}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- keyDown manages arrow-key navigation between input and results, which is accessibility-enhancing */}\n <div\n ref={popoverRef}\n className=\"kui-SidebarSearchPopover\"\n role=\"search\"\n onKeyDown={handlePopoverKeyDown}\n >\n <div className=\"kui-SidebarSearchInputWrapper\">\n <SearchIcon className=\"kui-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"kui-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n aria-controls={children ? resultsId : undefined}\n // eslint-disable-next-line jsx-a11y/no-autofocus -- intentional: popover opens on user action, focusing the input is expected UX\n autoFocus\n />\n {value && (\n <button\n type=\"button\"\n className=\"kui-reset kui-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n {children && (\n <div id={resultsId} role=\"group\" aria-label=\"Search results\">\n {children}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Root>\n </div>\n );\n }\n\n // Expanded mode: inline input\n return (\n <div {...props} ref={forwardedRef} className={classNames('kui-SidebarSearch', 'kui-SidebarSearch--expanded', 'kui-ShellPaneChrome', `kui-r-size-${visual?.size ?? '2'}`, className)} role=\"search\">\n <div className=\"kui-SidebarSearchInputWrapper\">\n <SearchIcon className=\"kui-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"kui-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n />\n {value && (\n <button\n type=\"button\"\n className=\"kui-reset kui-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n </div>\n );\n },\n);\nSidebarSearch.displayName = 'Sidebar.Search';\n\n// Export all components following shadcn's pattern\nexport {\n SidebarSeparator as Separator,\n SidebarMenu as Menu,\n SidebarMenuItem as MenuItem,\n SidebarMenuButton as MenuButton,\n SidebarMenuSub as MenuSub,\n SidebarMenuSubTrigger as MenuSubTrigger,\n SidebarMenuSubContent as MenuSubContent,\n SidebarGroup as Group,\n SidebarGroupLabel as GroupLabel,\n SidebarGroupContent as GroupContent,\n SidebarSearch as Search,\n};\n\nexport type { BadgeConfig };\n"],
5
- "mappings": "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",
6
- "names": ["sidebar_exports", "__export", "SidebarGroup", "SidebarGroupContent", "SidebarGroupLabel", "SidebarMenu", "SidebarMenuButton", "SidebarMenuItem", "SidebarMenuSub", "SidebarMenuSubContent", "SidebarMenuSubTrigger", "SidebarSearch", "SidebarSeparator", "React", "classNames", "Accordion", "SidebarSeparator", "className", "props", "forwardedRef", "Separator", "classNames", "SidebarMenu", "SidebarMenuItem", "separateIconsAndLabels", "node", "icons", "labels", "child", "el", "wrapTextNodes", "index", "newChildren", "focusAdjacentSidebarButton", "event", "scope", "buttons", "next", "SidebarMenuButton", "asChild", "isActive", "shortcut", "badge", "children", "onKeyDown", "visual", "useSidebarVisual", "sidebarSize", "isThinMode", "Comp", "Slot", "handleKeyDown", "processedChildren", "slottedChildren", "onlyChild", "originalInnerChildren", "enhancedInnerChildren", "Chip", "Kbd", "label", "SidebarSubMenuModeContext", "SidebarMenuSub", "defaultOpen", "DropdownMenuRoot", "SidebarMenuSubTrigger", "DropdownMenuTrigger", "ThickChevronRightIcon", "SidebarMenuSubContent", "unwrapMenuButton", "n", "i", "normalized", "itemChildren", "content", "DropdownMenuItem", "DropdownMenuContent", "DropdownMenuGroup", "SidebarGroup", "SidebarGroupLabel", "SidebarGroupContent", "SearchIcon", "ClearIcon", "SidebarSearch", "value", "onValueChange", "placeholder", "isThin", "inputRef", "popoverRef", "resultsId", "valueRef", "onValueChangeRef", "searchLabel", "e", "handlePopoverKeyDown", "container", "resultsGroup", "items", "active", "isOnInput", "currentIndex", "PopoverRoot", "PopoverTrigger", "PopoverContent"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as H,d as P,f as F}from"./chunk-V5O3TF57.js";import*as t from"react";import C from"classnames";import{useVirtualizer as ne}from"@tanstack/react-virtual";var re=t.memo(function({label:n,isHighlighted:c,id:s,style:d,tabIndex:m,"data-highlighted":o,"data-index":f,onMouseEnter:p,onMouseLeave:k,onClick:l,onKeyDown:y}){return t.createElement("div",{id:s,role:"menuitem",className:C("kui-reset","kui-BaseMenuItem","kui-VirtualMenuItem"),style:d,tabIndex:m,"data-highlighted":o,"data-index":f,onMouseEnter:p,onMouseLeave:k,onClick:l,onKeyDown:y},n)},(r,n)=>!(r.label!==n.label||r["data-highlighted"]!==n["data-highlighted"]||r.style.height!==n.style.height||r.style.transform!==n.style.transform||r.tabIndex!==n.tabIndex||r.id!==n.id));function ae(r,n,c){let[s,d]=t.useState(void 0);return t.useLayoutEffect(()=>{let m=r.current;if(!n||!m)return;let o=document.createElement("div");o.className="kui-reset kui-BaseMenuItem kui-VirtualMenuItem",o.setAttribute("aria-hidden","true"),o.style.visibility="hidden",o.textContent="\xA0",m.appendChild(o);let f=o.getBoundingClientRect().height;o.remove(),d(f>0?f:void 0)},[r,n,c]),n?s:void 0}function ie({items:r,itemLabel:n,renderItem:c,size:s,estimatedItemSize:d,overscan:m=5,onSelect:o,className:f,style:p,"aria-label":k},l){let y=t.useId(),E=t.useRef(null),[x,h]=t.useState(-1),{isInsideMenu:g,size:V,itemHeight:$}=P(),L=F(),j=t.useCallback(e=>{E.current=e,typeof l=="function"?l(e):l&&(l.current=e)},[l]),O=ae(E,g&&s==null&&d==null,V),I=d??(s?H(s):O??$??H(V??"2"));if(!n&&!c)throw new Error("VirtualMenu requires either itemLabel or renderItem prop");let _=t.useMemo(()=>n?typeof n=="function"?n:e=>e[n]:null,[n]),b=t.useMemo(()=>r.length===0||x<0?-1:Math.min(x,r.length-1),[x,r.length]),q=t.useMemo(()=>typeof I=="function"?I:()=>I,[I]),R=ne({count:r.length,getScrollElement:()=>E.current,estimateSize:q,overscan:m}),U=R.getVirtualItems();t.useLayoutEffect(()=>{R.measure()},[R,I]),t.useEffect(()=>{let e=E.current;if(!g||!e)return;let a=e.closest("[data-radix-menu-content]");if(!a)return;let u=i=>{i.target===a&&e.focus({preventScroll:!0})};return a.addEventListener("focusin",u),document.activeElement===a&&e.focus({preventScroll:!0}),()=>a.removeEventListener("focusin",u)},[g]);let T=t.useRef(r),D=t.useRef(o),N=t.useRef(L);T.current=r,D.current=o,N.current=L;let M=t.useCallback(e=>{let a=T.current;e<0||e>=a.length||(D.current?.(a[e],e),N.current?.())},[]),v=t.useRef(R.scrollToIndex);v.current=R.scrollToIndex;let S=t.useRef(b);S.current=b;let W=t.useCallback(e=>{let a=e.currentTarget.dataset.index;a!=null&&h(Number(a))},[]),Y=t.useCallback(e=>{let a=e.currentTarget.dataset.index;a!=null&&M(Number(a))},[M]),G=t.useCallback(()=>{},[]),J=t.useCallback(e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault(),e.stopPropagation();let a=e.currentTarget.dataset.index;a!=null&&M(Number(a))}},[M]),Q=t.useCallback(e=>{let a=T.current,u=S.current;switch(e.key){case"ArrowDown":{e.preventDefault();let i=u<a.length-1?u+1:0;h(i),v.current(i,{align:"auto"});break}case"ArrowUp":{e.preventDefault();let i=u>0?u-1:a.length-1;h(i),v.current(i,{align:"auto"});break}case"Home":{e.preventDefault(),h(0),v.current(0,{align:"start"});break}case"End":{e.preventDefault();let i=a.length-1;h(i),v.current(i,{align:"end"});break}case"Enter":case" ":{e.preventDefault(),M(u);break}case"Tab":{e.preventDefault();break}case"Escape":{g||e.currentTarget.blur();break}}},[M,g]),X=t.useCallback(e=>{e.target===e.currentTarget&&S.current<0&&T.current.length>0&&h(0)},[]),z=t.useCallback(e=>`${y}-item-${e}`,[y]),Z=t.useMemo(()=>({overflow:"auto",position:"relative",...p}),[p]),w=R.getTotalSize(),ee=t.useMemo(()=>({height:`${w}px`,width:"100%",position:"relative"}),[w]);return t.createElement("div",{ref:j,role:g?"group":"menu","aria-label":k,"aria-activedescendant":b>=0?z(b):void 0,tabIndex:0,onKeyDown:Q,onFocus:X,className:C("kui-VirtualMenuRoot",f),style:Z},t.createElement("div",{className:"kui-VirtualMenuViewport",style:ee},U.map(e=>{let a=r[e.index],u=e.index,i=b===u,te={height:e.size,transform:`translateY(${e.start}px)`},K={id:z(u),isHighlighted:i,style:te,tabIndex:i?0:-1,"data-highlighted":i?!0:void 0,"data-index":u,onMouseEnter:W,onMouseLeave:G,onClick:Y,onKeyDown:J};return c?t.createElement(c,{key:e.key,item:a,index:u,...K}):t.createElement(re,{key:e.key,label:_(a),...K})})))}var A=t.forwardRef(ie);A.displayName="VirtualMenu";var B=t.forwardRef(({className:r,children:n,...c},s)=>t.createElement("div",{ref:s,role:"menuitem",className:C("kui-reset","kui-BaseMenuItem","kui-VirtualMenuItem",r),...c},n));B.displayName="VirtualMenu.Item";var ue=t.memo(B,(r,n)=>{let c=r.style,s=n.style;return!(c?.height!==s?.height||c?.transform!==s?.transform||r["data-highlighted"]!==n["data-highlighted"]||r.tabIndex!==n.tabIndex||r.id!==n.id||r.className!==n.className||r.children!==n.children)}),le=Object.assign(A,{Item:ue});export{le as a};
2
- //# sourceMappingURL=chunk-3XUY5WFA.js.map
@@ -1,7 +0,0 @@
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, useMenuClose, getMenuItemHeight } from './_internal/menu-context.js';\n\nimport type { MenuSize } 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?: MenuSize;\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('kui-reset', 'kui-BaseMenuItem', 'kui-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\n/**\n * Measures the row height the menu's CSS draws (--base-menu-item-height), so rows follow\n * the theme scale instead of the fixed 100% table. Returns undefined until measured.\n */\nfunction useMeasuredRowHeight(\n rootRef: React.RefObject<HTMLDivElement | null>,\n enabled: boolean,\n size: MenuSize | undefined,\n) {\n const [height, setHeight] = React.useState<number | undefined>(undefined);\n React.useLayoutEffect(() => {\n const root = rootRef.current;\n if (!enabled || !root) return;\n const probe = document.createElement('div');\n probe.className = 'kui-reset kui-BaseMenuItem kui-VirtualMenuItem';\n probe.setAttribute('aria-hidden', 'true');\n probe.style.visibility = 'hidden';\n probe.textContent = '\\u00a0';\n root.appendChild(probe);\n const measured = probe.getBoundingClientRect().height;\n probe.remove();\n setHeight(measured > 0 ? measured : undefined);\n }, [rootRef, enabled, size]);\n return enabled ? height : undefined;\n}\n\nfunction VirtualMenuRootInner<T>(\n {\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 forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n const closeMenu = useMenuClose();\n\n const setRootRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n parentRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef],\n );\n\n // Inside a menu, the CSS row height is measured so it tracks the theme scale.\n const measuredItemHeight = useMeasuredRowHeight(\n parentRef,\n isInsideMenu && sizeProp == null && estimatedItemSizeProp == null,\n contextSize,\n );\n\n // Resolve item height: explicit prop > own size > measured CSS row > parent menu > default size '2'.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp)\n : (measuredItemHeight ?? 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 // Re-measure cached rows when the resolved row height changes.\n React.useLayoutEffect(() => {\n virtualizer.measure();\n }, [virtualizer, estimatedItemSize]);\n\n // Inside a menu, the menu focuses its own content on open (and a submenu on keyboard\n // open). Hand that focus to the list so arrow keys reach the rows.\n React.useEffect(() => {\n const root = parentRef.current;\n if (!isInsideMenu || !root) return;\n const content = root.closest<HTMLElement>('[data-radix-menu-content]');\n if (!content) return;\n const handleFocusIn = (event: FocusEvent) => {\n if (event.target === content) root.focus({ preventScroll: true });\n };\n content.addEventListener('focusin', handleFocusIn);\n if (document.activeElement === content) root.focus({ preventScroll: true });\n return () => content.removeEventListener('focusin', handleFocusIn);\n }, [isInsideMenu]);\n\n // Refs for stable handler references\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n const closeMenuRef = React.useRef(closeMenu);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n closeMenuRef.current = closeMenu;\n\n // Choosing a row calls onSelect, then closes the parent menu like a menu item does.\n const selectIndex = React.useCallback((idx: number) => {\n const currentItems = itemsRef.current;\n if (idx < 0 || idx >= currentItems.length) return;\n onSelectRef.current?.(currentItems[idx], idx);\n closeMenuRef.current?.();\n }, []);\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) selectIndex(Number(index));\n }, [selectIndex]);\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 e.stopPropagation();\n const index = e.currentTarget.dataset.index;\n if (index != null) selectIndex(Number(index));\n }\n }, [selectIndex]);\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 selectIndex(currentHighlightedIndex);\n break;\n }\n case 'Tab': {\n e.preventDefault();\n break;\n }\n case 'Escape': {\n // Inside a menu, the menu handles Escape and returns focus to its trigger.\n if (!isInsideMenu) (e.currentTarget as HTMLElement).blur();\n break;\n }\n }\n }, [selectIndex, isInsideMenu]);\n\n // Keyboard focus on the list highlights the first row when none is highlighted.\n const handleFocus = React.useCallback((e: React.FocusEvent<HTMLDivElement>) => {\n if (e.target !== e.currentTarget) return;\n if (highlightedIndexRef.current < 0 && itemsRef.current.length > 0) setHighlightedIndex(0);\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={setRootRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-label={ariaLabel}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n className={classNames('kui-VirtualMenuRoot', className)}\n style={rootStyle}\n >\n <div className=\"kui-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\nconst VirtualMenuRoot = React.forwardRef(VirtualMenuRootInner) as (<T>(\n props: VirtualMenuProps<T> & React.RefAttributes<HTMLDivElement>,\n) => React.ReactElement) & { displayName?: string };\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('kui-reset', 'kui-BaseMenuItem', 'kui-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": "sDAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,kBAAAC,OAAsB,0BAgI/B,IAAMC,GAAmB,OACvB,SAAoB,CAClB,MAAAC,EACA,cAAeC,EACf,GAAAC,EACA,MAAAC,EACA,SAAAC,EACA,mBAAoBC,EACpB,aAAcC,EACd,aAAAC,EACA,aAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAAoB,CAClB,OACE,gBAAC,OACC,GAAIR,EACJ,KAAK,WACL,UAAWS,EAAW,YAAa,mBAAoB,qBAAqB,EAC5E,MAAOR,EACP,SAAUC,EACV,mBAAkBC,EAClB,aAAYC,EACZ,aAAcC,EACd,aAAcC,EACd,QAASC,EACT,UAAWC,GAEVV,CACH,CAEJ,EACA,CAACY,EAAMC,IAED,EAAAD,EAAK,QAAUC,EAAK,OACpBD,EAAK,kBAAkB,IAAMC,EAAK,kBAAkB,GACpDD,EAAK,MAAM,SAAWC,EAAK,MAAM,QACjCD,EAAK,MAAM,YAAcC,EAAK,MAAM,WACpCD,EAAK,WAAaC,EAAK,UACvBD,EAAK,KAAOC,EAAK,GAIzB,EAUA,SAASC,GACPC,EACAC,EACAC,EACA,CACA,GAAM,CAACC,EAAQC,CAAS,EAAU,WAA6B,MAAS,EACxE,OAAM,kBAAgB,IAAM,CAC1B,IAAMC,EAAOL,EAAQ,QACrB,GAAI,CAACC,GAAW,CAACI,EAAM,OACvB,IAAMC,EAAQ,SAAS,cAAc,KAAK,EAC1CA,EAAM,UAAY,iDAClBA,EAAM,aAAa,cAAe,MAAM,EACxCA,EAAM,MAAM,WAAa,SACzBA,EAAM,YAAc,OACpBD,EAAK,YAAYC,CAAK,EACtB,IAAMC,EAAWD,EAAM,sBAAsB,EAAE,OAC/CA,EAAM,OAAO,EACbF,EAAUG,EAAW,EAAIA,EAAW,MAAS,CAC/C,EAAG,CAACP,EAASC,EAASC,CAAI,CAAC,EACpBD,EAAUE,EAAS,MAC5B,CAEA,SAASK,GACP,CACE,MAAAC,EACA,UAAAC,EACA,WAAYC,EACZ,KAAMC,EACN,kBAAmBC,EACnB,SAAAC,EAAW,EACX,SAAAC,EACA,UAAAC,EACA,MAAA5B,EACA,aAAc6B,CAChB,EACAC,EACA,CACA,IAAMC,EAAe,QAAM,EACrBC,EAAkB,SAAuB,IAAI,EAC7C,CAACC,EAAkBC,CAAmB,EAAU,WAAiB,EAAE,EACnE,CAAE,aAAAC,EAAc,KAAMC,EAAa,WAAYC,CAAkB,EAAIC,EAAe,EACpFC,EAAYC,EAAa,EAEzBC,EAAmB,cACtBC,GAAgC,CAC/BV,EAAU,QAAUU,EAChB,OAAOZ,GAAiB,WAAYA,EAAaY,CAAI,EAChDZ,IAAcA,EAAa,QAAUY,EAChD,EACA,CAACZ,CAAY,CACf,EAGMa,EAAqBhC,GACzBqB,EACAG,GAAgBX,GAAY,MAAQC,GAAyB,KAC7DW,CACF,EAGMQ,EACJnB,IACCD,EACGqB,EAAkBrB,CAAQ,EACzBmB,GAAsBN,GAAqBQ,EAAkBT,GAAe,GAAG,GAGtF,GAAI,CAACd,GAAa,CAACC,EACjB,MAAM,IAAI,MAAM,0DAA0D,EAI5E,IAAMuB,EAAiB,UAAQ,IACxBxB,EACD,OAAOA,GAAc,WAAmBA,EACpCyB,GAAYA,EAAKzB,CAAS,EAFX,KAGtB,CAACA,CAAS,CAAC,EAGR0B,EAA6B,UAAQ,IACrC3B,EAAM,SAAW,GACjBY,EAAmB,EAAU,GAC1B,KAAK,IAAIA,EAAkBZ,EAAM,OAAS,CAAC,EACjD,CAACY,EAAkBZ,EAAM,MAAM,CAAC,EAG7B4B,EAAoB,UACxB,IACE,OAAOL,GAAsB,WACzBA,EACA,IAAMA,EACZ,CAACA,CAAiB,CACpB,EAEMM,EAAcC,GAAe,CACjC,MAAO9B,EAAM,OACb,iBAAkB,IAAMW,EAAU,QAClC,aAAciB,EACd,SAAAvB,CACF,CAAC,EAEK0B,EAAeF,EAAY,gBAAgB,EAG3C,kBAAgB,IAAM,CAC1BA,EAAY,QAAQ,CACtB,EAAG,CAACA,EAAaN,CAAiB,CAAC,EAI7B,YAAU,IAAM,CACpB,IAAM3B,EAAOe,EAAU,QACvB,GAAI,CAACG,GAAgB,CAAClB,EAAM,OAC5B,IAAMoC,EAAUpC,EAAK,QAAqB,2BAA2B,EACrE,GAAI,CAACoC,EAAS,OACd,IAAMC,EAAiBC,GAAsB,CACvCA,EAAM,SAAWF,GAASpC,EAAK,MAAM,CAAE,cAAe,EAAK,CAAC,CAClE,EACA,OAAAoC,EAAQ,iBAAiB,UAAWC,CAAa,EAC7C,SAAS,gBAAkBD,GAASpC,EAAK,MAAM,CAAE,cAAe,EAAK,CAAC,EACnE,IAAMoC,EAAQ,oBAAoB,UAAWC,CAAa,CACnE,EAAG,CAACnB,CAAY,CAAC,EAGjB,IAAMqB,EAAiB,SAAOnC,CAAK,EAC7BoC,EAAoB,SAAO9B,CAAQ,EACnC+B,EAAqB,SAAOnB,CAAS,EAC3CiB,EAAS,QAAUnC,EACnBoC,EAAY,QAAU9B,EACtB+B,EAAa,QAAUnB,EAGvB,IAAMoB,EAAoB,cAAaC,GAAgB,CACrD,IAAMC,EAAeL,EAAS,QAC1BI,EAAM,GAAKA,GAAOC,EAAa,SACnCJ,EAAY,UAAUI,EAAaD,CAAG,EAAGA,CAAG,EAC5CF,EAAa,UAAU,EACzB,EAAG,CAAC,CAAC,EAECI,EAAyB,SAAOZ,EAAY,aAAa,EAC/DY,EAAiB,QAAUZ,EAAY,cAEvC,IAAMa,EAA4B,SAAOf,CAAoB,EAC7De,EAAoB,QAAUf,EAG9B,IAAMgB,EAA6B,cAAa,GAAqC,CACnF,IAAMC,EAAQ,EAAE,cAAc,QAAQ,MAClCA,GAAS,MACX/B,EAAoB,OAAO+B,CAAK,CAAC,CAErC,EAAG,CAAC,CAAC,EAECC,EAAwB,cAAa,GAAqC,CAC9E,IAAMD,EAAQ,EAAE,cAAc,QAAQ,MAClCA,GAAS,MAAMN,EAAY,OAAOM,CAAK,CAAC,CAC9C,EAAG,CAACN,CAAW,CAAC,EAEVQ,EAAa,cAAY,IAAM,CAAC,EAAG,CAAC,CAAC,EAGrCC,EAA0B,cAAa,GAAwC,CACnF,GAAI,EAAE,MAAQ,SAAW,EAAE,MAAQ,IAAK,CACtC,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,IAAMH,EAAQ,EAAE,cAAc,QAAQ,MAClCA,GAAS,MAAMN,EAAY,OAAOM,CAAK,CAAC,CAC9C,CACF,EAAG,CAACN,CAAW,CAAC,EAGVU,EAAsB,cAAa,GAA2B,CAClE,IAAMR,EAAeL,EAAS,QACxBc,EAA0BP,EAAoB,QAEpD,OAAQ,EAAE,IAAK,CACb,IAAK,YAAa,CAChB,EAAE,eAAe,EACjB,IAAMQ,EACJD,EAA0BT,EAAa,OAAS,EAAIS,EAA0B,EAAI,EACpFpC,EAAoBqC,CAAS,EAC7BT,EAAiB,QAAQS,EAAW,CAAE,MAAO,MAAO,CAAC,EACrD,KACF,CACA,IAAK,UAAW,CACd,EAAE,eAAe,EACjB,IAAMC,EACJF,EAA0B,EAAIA,EAA0B,EAAIT,EAAa,OAAS,EACpF3B,EAAoBsC,CAAS,EAC7BV,EAAiB,QAAQU,EAAW,CAAE,MAAO,MAAO,CAAC,EACrD,KACF,CACA,IAAK,OAAQ,CACX,EAAE,eAAe,EACjBtC,EAAoB,CAAC,EACrB4B,EAAiB,QAAQ,EAAG,CAAE,MAAO,OAAQ,CAAC,EAC9C,KACF,CACA,IAAK,MAAO,CACV,EAAE,eAAe,EACjB,IAAMW,EAAYZ,EAAa,OAAS,EACxC3B,EAAoBuC,CAAS,EAC7BX,EAAiB,QAAQW,EAAW,CAAE,MAAO,KAAM,CAAC,EACpD,KACF,CACA,IAAK,QACL,IAAK,IAAK,CACR,EAAE,eAAe,EACjBd,EAAYW,CAAuB,EACnC,KACF,CACA,IAAK,MAAO,CACV,EAAE,eAAe,EACjB,KACF,CACA,IAAK,SAAU,CAERnC,GAAe,EAAE,cAA8B,KAAK,EACzD,KACF,CACF,CACF,EAAG,CAACwB,EAAaxB,CAAY,CAAC,EAGxBuC,EAAoB,cAAa,GAAwC,CACzE,EAAE,SAAW,EAAE,eACfX,EAAoB,QAAU,GAAKP,EAAS,QAAQ,OAAS,GAAGtB,EAAoB,CAAC,CAC3F,EAAG,CAAC,CAAC,EAGCyC,EAAkB,cACrBV,GAAkB,GAAGlC,CAAM,SAASkC,CAAK,GAC1C,CAAClC,CAAM,CACT,EAGM6C,EAAkB,UACtB,KAAO,CACL,SAAU,OACV,SAAU,WACV,GAAG5E,CACL,GACA,CAACA,CAAK,CACR,EAEM6E,EAAY3B,EAAY,aAAa,EACrC4B,GAAsB,UAC1B,KAAO,CACL,OAAQ,GAAGD,CAAS,KACpB,MAAO,OACP,SAAU,UACZ,GACA,CAACA,CAAS,CACZ,EAEA,OACE,gBAAC,OACC,IAAKpC,EACL,KAAMN,EAAe,QAAU,OAC/B,aAAYN,EACZ,wBAAuBmB,GAAwB,EAAI2B,EAAU3B,CAAoB,EAAI,OACrF,SAAU,EACV,UAAWqB,EACX,QAASK,EACT,UAAWlE,EAAW,sBAAuBoB,CAAS,EACtD,MAAOgD,GAEP,gBAAC,OAAI,UAAU,0BAA0B,MAAOE,IAC7C1B,EAAa,IAAK2B,GAAe,CAChC,IAAMhC,EAAO1B,EAAM0D,EAAW,KAAK,EAC7Bd,EAAQc,EAAW,MACnBC,EAAgBhC,IAAyBiB,EAEzCgB,GAAiC,CACrC,OAAQF,EAAW,KACnB,UAAW,cAAcA,EAAW,KAAK,KAC3C,EAEMG,EAAc,CAClB,GAAIP,EAAUV,CAAK,EACnB,cAAAe,EACA,MAAOC,GACP,SAAUD,EAAgB,EAAI,GAC9B,mBAAoBA,EAAgB,GAAgB,OACpD,aAAcf,EACd,aAAcD,EACd,aAAcG,EACd,QAASD,EACT,UAAWE,CACb,EAGA,OAAI7C,EAEA,gBAACA,EAAA,CACC,IAAKwD,EAAW,IAChB,KAAMhC,EACN,MAAOkB,EACN,GAAGiB,EACN,EAKF,gBAACtF,GAAA,CACC,IAAKmF,EAAW,IAChB,MAAOjC,EAAUC,CAAI,EACpB,GAAGmC,EACN,CAEJ,CAAC,CACH,CACF,CAEJ,CAEA,IAAMC,EAAwB,aAAW/D,EAAoB,EAG7D+D,EAAgB,YAAc,cAc9B,IAAMC,EAA6B,aACjC,CAAC,CAAE,UAAAxD,EAAW,SAAAyD,EAAU,GAAGC,CAAM,EAAGxD,IAEhC,gBAAC,OACC,IAAKA,EACL,KAAK,WACL,UAAWtB,EAAW,YAAa,mBAAoB,sBAAuBoB,CAAS,EACtF,GAAG0D,GAEHD,CACH,CAGN,EAEAD,EAAqB,YAAc,mBAGnC,IAAMG,GAAwB,OAAKH,EAAsB,CAACI,EAAWC,IAAc,CACjF,IAAMC,EAAYF,EAAU,MACtBG,EAAYF,EAAU,MAO5B,MANI,EAAAC,GAAW,SAAWC,GAAW,QACjCD,GAAW,YAAcC,GAAW,WACpCH,EAAU,kBAAkB,IAAMC,EAAU,kBAAkB,GAC9DD,EAAU,WAAaC,EAAU,UACjCD,EAAU,KAAOC,EAAU,IAC3BD,EAAU,YAAcC,EAAU,WAClCD,EAAU,WAAaC,EAAU,SAEvC,CAAC,EAMKG,GAAc,OAAO,OAAOT,EAAiB,CACjD,KAAMI,EACR,CAAC",
6
- "names": ["React", "classNames", "useVirtualizer", "SimpleItem", "label", "_isHighlighted", "id", "style", "tabIndex", "dataHighlighted", "dataIndex", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "classNames", "prev", "next", "useMeasuredRowHeight", "rootRef", "enabled", "size", "height", "setHeight", "root", "probe", "measured", "VirtualMenuRootInner", "items", "itemLabel", "RenderItem", "sizeProp", "estimatedItemSizeProp", "overscan", "onSelect", "className", "ariaLabel", "forwardedRef", "menuId", "parentRef", "highlightedIndex", "setHighlightedIndex", "isInsideMenu", "contextSize", "contextItemHeight", "useMenuContext", "closeMenu", "useMenuClose", "setRootRef", "node", "measuredItemHeight", "estimatedItemSize", "getMenuItemHeight", "getLabel", "item", "safeHighlightedIndex", "getItemSize", "virtualizer", "useVirtualizer", "virtualItems", "content", "handleFocusIn", "event", "itemsRef", "onSelectRef", "closeMenuRef", "selectIndex", "idx", "currentItems", "scrollToIndexRef", "highlightedIndexRef", "handleItemMouseEnter", "index", "handleItemClick", "noop", "handleItemKeyDown", "handleKeyDown", "currentHighlightedIndex", "nextIndex", "prevIndex", "lastIndex", "handleFocus", "getItemId", "rootStyle", "totalSize", "viewportStyle", "virtualRow", "isHighlighted", "itemStyle", "commonProps", "VirtualMenuRoot", "VirtualMenuItemInner", "children", "props", "VirtualMenuItem", "prevProps", "nextProps", "prevStyle", "nextStyle", "VirtualMenu"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as re}from"./chunk-3XUY5WFA.js";import{a as ne}from"./chunk-MJJ7XDIP.js";import{b as oe,c as G}from"./chunk-PPZY7PJA.js";import{c as B,e as ee}from"./chunk-V5O3TF57.js";import{a as O}from"./chunk-3XZOE2IQ.js";import{b as W,c as V,d as k,e as A,f as F}from"./chunk-62ZGP4ET.js";import{e as j}from"./chunk-3YLYGKFB.js";import{b as v,c as h,d as H,e as U,f as Y}from"./chunk-3XHTJZNP.js";import{b as y,c as q,d as T,e as x}from"./chunk-KZEZDBE7.js";import{a as S}from"./chunk-ELAW7ZUG.js";import{a as f,b as I,c as X,d as $,e as E,f as J,g as Q,h as Z,i as N}from"./chunk-2E4P5XQL.js";import{a as he}from"./chunk-OS3FCYZY.js";var Be={};he(Be,{CheckboxItem:()=>De,Content:()=>pe,Group:()=>ce,Item:()=>le,Label:()=>de,RadioGroup:()=>me,RadioItem:()=>we,Root:()=>ae,Separator:()=>Pe,Sub:()=>Me,SubContent:()=>Re,SubTrigger:()=>fe,Trigger:()=>ue,TriggerIcon:()=>ge,Virtual:()=>re});import*as e from"react";import d from"classnames";import{DropdownMenu as s,Slot as z}from"radix-ui";import{useCallbackRef as te}from"radix-ui/internal";var ie=e.createContext(!1),ae=o=>{let{open:n,defaultOpen:r=!1,onOpenChange:a}=o,[i,t]=e.useState(r),u=n??i,l=te(a),p=e.useCallback(m=>{t(m),l(m)},[l]),w=e.useCallback(()=>p(!1),[p]);return e.createElement(ie.Provider,{value:u},e.createElement(ee,{value:w},e.createElement(s.Root,{...o,open:u,onOpenChange:p})))};ae.displayName="DropdownMenu.Root";var ue=e.forwardRef(({children:o,...n},r)=>e.createElement(s.Trigger,{...n,ref:r,asChild:!0},ne(o)));ue.displayName="DropdownMenu.Trigger";var L=e.createContext({}),ye={ltr:"ArrowLeft",rtl:"ArrowRight"},Te={ltr:"ArrowRight",rtl:"ArrowLeft"};function xe(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function se(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var pe=e.forwardRef((o,n)=>{let r=j(o,v.size),a=oe(),{size:i=v.size.default}=r,{className:t,children:u,color:l,container:p,forceMount:w,submenuBehavior:m,virtualized:c=!1,onEscapeKeyDown:R,onKeyDown:C,...P}=S(r,v),D=l||a.accentColor,b=y(m,"cascade"),_=b==="drill-down",Ie=e.useContext(ie),g=X(),ve=M=>{R?.(M),!(M.defaultPrevented||!_||g.getDepth()===0)&&(M.preventDefault(),g.pop("keyboard"))},Se=M=>{C?.(M),!(M.defaultPrevented||!_||g.getDepth()===0)&&(xe(M.target)||M.key===ye[se(M.currentTarget)]&&(M.preventDefault(),g.pop("keyboard")))},ke=e.useMemo(()=>({size:i,color:D}),[i,D]),K=e.createElement(B,{size:i},e.createElement(L.Provider,{value:ke},e.createElement($,{store:g,behavior:b,open:Ie},u)));return e.createElement(s.Portal,{container:p,forceMount:w},e.createElement(G,{asChild:!0},e.createElement(s.Content,{"data-accent-color":D,align:"start",sideOffset:4,collisionPadding:10,...P,onEscapeKeyDown:ve,onKeyDown:Se,asChild:!1,ref:n,className:d("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-DropdownMenuContent",t)},c?e.createElement("div",{className:d("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},K):e.createElement(O,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:d("kui-BaseMenuViewport","kui-DropdownMenuViewport")},K)))))});pe.displayName="DropdownMenu.Content";var de=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(s.Label,{...n,asChild:!1,ref:r,className:d("kui-BaseMenuLabel","kui-DropdownMenuLabel",o)}):null);de.displayName="DropdownMenu.Label";var le=e.forwardRef((o,n)=>{let{className:r,children:a,color:i=H.color.default,shortcut:t,...u}=o;return e.useContext(f)?e.createElement(s.Item,{"data-accent-color":i,"aria-keyshortcuts":t?T(t):void 0,...u,ref:n,className:d("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem",r)},e.createElement(z.Slottable,null,a),t&&e.createElement(x,{shortcut:t,className:"kui-DropdownMenuShortcut"})):null});le.displayName="DropdownMenu.Item";var ce=e.forwardRef(({className:o,...n},r)=>e.createElement(s.Group,{...n,asChild:!1,ref:r,className:d("kui-BaseMenuGroup","kui-DropdownMenuGroup",o)}));ce.displayName="DropdownMenu.Group";var me=e.forwardRef(({className:o,...n},r)=>e.createElement(s.RadioGroup,{...n,asChild:!1,ref:r,className:d("kui-BaseMenuRadioGroup","kui-DropdownMenuRadioGroup",o)}));me.displayName="DropdownMenu.RadioGroup";var we=e.forwardRef((o,n)=>{let{children:r,className:a,color:i=Y.color.default,...t}=o;return e.useContext(f)?e.createElement(s.RadioItem,{...t,asChild:!1,ref:n,"data-accent-color":i,className:d("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-DropdownMenuItem","kui-DropdownMenuRadioItem",a)},e.createElement(z.Slottable,null,r),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(F,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"}))):null});we.displayName="DropdownMenu.RadioItem";var De=e.forwardRef((o,n)=>{let{children:r,className:a,shortcut:i,color:t=U.color.default,...u}=o;return e.useContext(f)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":i?T(i):void 0,...u,asChild:!1,ref:n,"data-accent-color":t,className:d("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-DropdownMenuItem","kui-DropdownMenuCheckboxItem",a)},e.createElement(z.Slottable,null,r),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(W,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(x,{shortcut:i,className:"kui-DropdownMenuShortcut"})):null});De.displayName="DropdownMenu.CheckboxItem";var Me=({label:o="Back",open:n,defaultOpen:r,onOpenChange:a,children:i})=>{let t=I(),u=e.useId(),l=e.useMemo(()=>({id:u,label:o}),[u,o]),p=E(t,u)!=="closed";e.useLayoutEffect(()=>{!t||n===void 0||(n&&!t.isOpen(u)?t.push(u,null):!n&&t.isOpen(u)&&t.close(u))},[t,n,u]);let w=e.useRef(r);e.useLayoutEffect(()=>{t&&w.current&&n===void 0&&t.push(u,null)},[]);let m=te(a),c=e.useRef(p);return e.useEffect(()=>{!t||c.current===p||(c.current=p,m(p))},[t,p,m]),e.createElement(Z.Provider,{value:l},e.createElement(s.Sub,{open:n,defaultOpen:r,onOpenChange:t?void 0:a},i))};Me.displayName="DropdownMenu.Sub";var fe=e.forwardRef((o,n)=>{let{className:r,children:a,onKeyDown:i,...t}=o,u=I(),l=N(),p=e.useContext(f);if(u&&l){if(!p)return null;let w=c=>{c.preventDefault(),u.push(l.id)},m=c=>{i?.(c),!(c.defaultPrevented||t.disabled)&&c.key===Te[se(c.currentTarget)]&&(c.preventDefault(),u.push(l.id,"keyboard"))};return e.createElement(s.Item,{"aria-haspopup":"menu",...t,"data-drill-down-trigger":l.id,"data-drill-down-name":t.textValue,onSelect:w,onKeyDown:m,ref:n,className:d("kui-reset","kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger","kui-DropdownMenuDrillDownSubTrigger",r)},a,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...t,onKeyDown:i,asChild:!1,ref:n,className:d("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger",r)},a,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))});fe.displayName="DropdownMenu.SubTrigger";var Pe=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(s.Separator,{...n,asChild:!1,ref:r,className:d("kui-BaseMenuSeparator","kui-DropdownMenuSeparator",o)}):null);Pe.displayName="DropdownMenu.Separator";function Ee({label:o,name:n}){let r=I(),a=e.useCallback(u=>{u.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:d("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem","kui-DropdownMenuDrillDownBackItem")},e.createElement(A,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"kui-DropdownMenuDrillDownBackLabel"},o))}function Ne(o){let{loop:n,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:t,sideOffset:u,alignOffset:l,avoidCollisions:p,collisionBoundary:w,collisionPadding:m,arrowPadding:c,sticky:R,hideWhenDetached:C,updatePositionStrategy:P,...D}=o;return D}var Re=e.forwardRef((o,n)=>{let r=I(),a=N();return r&&a?e.createElement(be,{...o,ref:n,store:r,sub:a}):e.createElement(Ce,{...o,ref:n})});Re.displayName="DropdownMenu.SubContent";var Ce=e.forwardRef((o,n)=>{let r=e.useContext(L),a=o.size??r.size,i=o.color??r.color,{className:t,children:u,container:l,forceMount:p,color:w,virtualized:m=!1,...c}=S({...o,size:a},h),R=y(a,h.size.default),C=e.useMemo(()=>({size:a,color:i}),[a,i]),P=e.createElement(B,{size:a},e.createElement(L.Provider,{value:C},u));return e.createElement(s.Portal,{container:l,forceMount:p},e.createElement(G,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":i,alignOffset:q(R),sideOffset:1,collisionPadding:10,...c,asChild:!1,ref:n,className:d("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-DropdownMenuContent","kui-DropdownMenuSubContent",t)},m?e.createElement("div",{className:d("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},P):e.createElement(O,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:d("kui-BaseMenuViewport","kui-DropdownMenuViewport")},P)))))});Ce.displayName="DropdownMenu.CascadeSubContent";var be=e.forwardRef(({store:o,sub:n,...r},a)=>{let i=E(o,n.id),t=J(o,n.id),u=Q(i==="top"?o:null);if(i==="closed")return null;let{className:l,children:p,container:w,forceMount:m,virtualized:c,size:R,color:C,...P}=Ne(r),D=i==="top",b=t?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":b||void 0,...P,ref:a,"data-drill-down-panel":n.id,"data-drill-down-active":D?!0:void 0,"data-animation-direction":D?u??void 0:void 0,className:d("kui-DropdownMenuDrillDownPanel",l)},D&&e.createElement(e.Fragment,null,e.createElement(Ee,{label:n.label,name:b}),e.createElement(s.Separator,{className:"kui-BaseMenuSeparator kui-DropdownMenuSeparator"})),e.createElement(f.Provider,{value:D},p))});be.displayName="DropdownMenu.DrillDownPanel";var ge=e.forwardRef(({className:o,...n},r)=>e.createElement(V,{...n,ref:r,className:d("kui-DropdownMenuTriggerIcon",o)}));ge.displayName="DropdownMenu.TriggerIcon";export{ae as a,ue as b,pe as c,de as d,le as e,ce as f,me as g,we as h,De as i,Me as j,fe as k,Pe as l,Re as m,ge as n,Be as o};
2
- //# sourceMappingURL=chunk-432YLNB3.js.map