@ifhover/leaf-ui 0.6.0 → 0.7.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 (659) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/autocomplete/autocomplete.cjs +7 -3
  3. package/dist/cjs/autocomplete/autocomplete.cjs.map +1 -1
  4. package/dist/cjs/autocomplete/autocomplete.d.cts +2 -0
  5. package/dist/cjs/autocomplete/autocomplete.d.cts.map +1 -1
  6. package/dist/cjs/browser/modules/autocomplete/autocomplete.cjs +7 -3
  7. package/dist/cjs/browser/modules/autocomplete/autocomplete.cjs.map +1 -1
  8. package/dist/cjs/browser/modules/button/button.cjs.map +1 -1
  9. package/dist/cjs/browser/modules/cascader/cascader.cjs +9 -2
  10. package/dist/cjs/browser/modules/cascader/cascader.cjs.map +1 -1
  11. package/dist/cjs/browser/modules/colors.cjs +73 -7
  12. package/dist/cjs/browser/modules/colors.cjs.map +1 -1
  13. package/dist/cjs/browser/modules/commandpalette/commandpalette.cjs +10 -3
  14. package/dist/cjs/browser/modules/commandpalette/commandpalette.cjs.map +1 -1
  15. package/dist/cjs/browser/modules/config-provider/component-defaults.cjs.map +1 -1
  16. package/dist/cjs/browser/modules/config-provider/use-color-variables.cjs +18 -2
  17. package/dist/cjs/browser/modules/config-provider/use-color-variables.cjs.map +1 -1
  18. package/dist/cjs/browser/modules/drawer/drawer.cjs +7 -1
  19. package/dist/cjs/browser/modules/drawer/drawer.cjs.map +1 -1
  20. package/dist/cjs/browser/modules/dropdown/dropdown.cjs +25 -4
  21. package/dist/cjs/browser/modules/dropdown/dropdown.cjs.map +1 -1
  22. package/dist/cjs/browser/modules/form/form.cjs +38 -21
  23. package/dist/cjs/browser/modules/form/form.cjs.map +1 -1
  24. package/dist/cjs/browser/modules/image/viewer.cjs +8 -2
  25. package/dist/cjs/browser/modules/image/viewer.cjs.map +1 -1
  26. package/dist/cjs/browser/modules/index.cjs +3 -4
  27. package/dist/cjs/browser/modules/layout/layout.cjs +4 -1
  28. package/dist/cjs/browser/modules/layout/layout.cjs.map +1 -1
  29. package/dist/cjs/browser/modules/mentions/mentions.cjs +4 -2
  30. package/dist/cjs/browser/modules/mentions/mentions.cjs.map +1 -1
  31. package/dist/cjs/browser/modules/menu/index.cjs +5 -2
  32. package/dist/cjs/browser/modules/menu/menu.cjs +60 -18
  33. package/dist/cjs/browser/modules/menu/menu.cjs.map +1 -1
  34. package/dist/cjs/browser/modules/scrollbar/scrollbar.cjs +69 -19
  35. package/dist/cjs/browser/modules/scrollbar/scrollbar.cjs.map +1 -1
  36. package/dist/cjs/browser/modules/select/select.cjs +3 -3
  37. package/dist/cjs/browser/modules/select/select.cjs.map +1 -1
  38. package/dist/cjs/browser/modules/shared/floating.cjs +49 -20
  39. package/dist/cjs/browser/modules/shared/floating.cjs.map +1 -1
  40. package/dist/cjs/browser/modules/shared/scoped-portal.cjs +2 -23
  41. package/dist/cjs/browser/modules/shared/scoped-portal.cjs.map +1 -1
  42. package/dist/cjs/browser/modules/{segmented/index.cjs → shared/theme-variables.cjs} +27 -5
  43. package/dist/cjs/browser/modules/shared/theme-variables.cjs.map +1 -0
  44. package/dist/cjs/browser/modules/splitter/splitter.cjs +4 -1
  45. package/dist/cjs/browser/modules/splitter/splitter.cjs.map +1 -1
  46. package/dist/cjs/browser/modules/tabs/tabs.cjs +14 -8
  47. package/dist/cjs/browser/modules/tabs/tabs.cjs.map +1 -1
  48. package/dist/cjs/browser/modules/tailwind-tokens.cjs +1 -1
  49. package/dist/cjs/browser/modules/tailwind-tokens.cjs.map +1 -1
  50. package/dist/cjs/browser/modules/textarea/textarea.cjs +49 -21
  51. package/dist/cjs/browser/modules/textarea/textarea.cjs.map +1 -1
  52. package/dist/cjs/browser/modules/theme.cjs +53 -29
  53. package/dist/cjs/browser/modules/theme.cjs.map +1 -1
  54. package/dist/cjs/browser/modules/timeline/timeline.cjs +1 -1
  55. package/dist/cjs/browser/modules/timeline/timeline.cjs.map +1 -1
  56. package/dist/cjs/browser/modules/timepicker/time-panel.cjs +8 -2
  57. package/dist/cjs/browser/modules/timepicker/time-panel.cjs.map +1 -1
  58. package/dist/cjs/browser/modules/transfer/transfer.cjs +5 -5
  59. package/dist/cjs/browser/modules/transfer/transfer.cjs.map +1 -1
  60. package/dist/cjs/browser/modules/tree/tree.cjs +13 -6
  61. package/dist/cjs/browser/modules/tree/tree.cjs.map +1 -1
  62. package/dist/cjs/browser/modules/treeselect/treeselect.cjs +5 -4
  63. package/dist/cjs/browser/modules/treeselect/treeselect.cjs.map +1 -1
  64. package/dist/cjs/browser/modules/virtuallist/virtuallist.cjs +9 -3
  65. package/dist/cjs/browser/modules/virtuallist/virtuallist.cjs.map +1 -1
  66. package/dist/cjs/button/button.cjs.map +1 -1
  67. package/dist/cjs/button/button.d.cts +7 -2
  68. package/dist/cjs/button/button.d.cts.map +1 -1
  69. package/dist/cjs/cascader/cascader.cjs +9 -2
  70. package/dist/cjs/cascader/cascader.cjs.map +1 -1
  71. package/dist/cjs/cascader/cascader.d.cts +2 -0
  72. package/dist/cjs/cascader/cascader.d.cts.map +1 -1
  73. package/dist/cjs/colors.cjs +73 -7
  74. package/dist/cjs/colors.cjs.map +1 -1
  75. package/dist/cjs/colors.d.cts +3 -1
  76. package/dist/cjs/colors.d.cts.map +1 -1
  77. package/dist/cjs/commandpalette/commandpalette.cjs +10 -3
  78. package/dist/cjs/commandpalette/commandpalette.cjs.map +1 -1
  79. package/dist/cjs/commandpalette/commandpalette.d.cts.map +1 -1
  80. package/dist/cjs/config-provider/component-defaults.cjs.map +1 -1
  81. package/dist/cjs/config-provider/component-defaults.d.cts +3 -4
  82. package/dist/cjs/config-provider/component-defaults.d.cts.map +1 -1
  83. package/dist/cjs/config-provider/index.d.cts +1 -1
  84. package/dist/cjs/config-provider/index.d.cts.map +1 -1
  85. package/dist/cjs/config-provider/use-color-variables.cjs +18 -2
  86. package/dist/cjs/config-provider/use-color-variables.cjs.map +1 -1
  87. package/dist/cjs/config-provider/use-color-variables.d.cts.map +1 -1
  88. package/dist/cjs/drawer/drawer.cjs +7 -1
  89. package/dist/cjs/drawer/drawer.cjs.map +1 -1
  90. package/dist/cjs/drawer/drawer.d.cts.map +1 -1
  91. package/dist/cjs/dropdown/dropdown.cjs +25 -4
  92. package/dist/cjs/dropdown/dropdown.cjs.map +1 -1
  93. package/dist/cjs/dropdown/dropdown.d.cts +9 -1
  94. package/dist/cjs/dropdown/dropdown.d.cts.map +1 -1
  95. package/dist/cjs/form/form.cjs +38 -21
  96. package/dist/cjs/form/form.cjs.map +1 -1
  97. package/dist/cjs/form/form.d.cts +3 -1
  98. package/dist/cjs/form/form.d.cts.map +1 -1
  99. package/dist/cjs/image/viewer.cjs +8 -2
  100. package/dist/cjs/image/viewer.cjs.map +1 -1
  101. package/dist/cjs/image/viewer.d.cts.map +1 -1
  102. package/dist/cjs/index.cjs +3 -4
  103. package/dist/cjs/index.d.cts +3 -5
  104. package/dist/cjs/index.d.cts.map +1 -1
  105. package/dist/cjs/layout/layout.cjs +4 -1
  106. package/dist/cjs/layout/layout.cjs.map +1 -1
  107. package/dist/cjs/layout/layout.d.cts.map +1 -1
  108. package/dist/cjs/mentions/mentions.cjs +4 -2
  109. package/dist/cjs/mentions/mentions.cjs.map +1 -1
  110. package/dist/cjs/mentions/mentions.d.cts +2 -0
  111. package/dist/cjs/mentions/mentions.d.cts.map +1 -1
  112. package/dist/cjs/menu/index.cjs +5 -2
  113. package/dist/cjs/menu/index.d.cts +2 -2
  114. package/dist/cjs/menu/index.d.cts.map +1 -1
  115. package/dist/cjs/menu/menu.cjs +60 -18
  116. package/dist/cjs/menu/menu.cjs.map +1 -1
  117. package/dist/cjs/menu/menu.d.cts +4 -0
  118. package/dist/cjs/menu/menu.d.cts.map +1 -1
  119. package/dist/cjs/scrollbar/scrollbar.cjs +69 -19
  120. package/dist/cjs/scrollbar/scrollbar.cjs.map +1 -1
  121. package/dist/cjs/scrollbar/scrollbar.d.cts +12 -2
  122. package/dist/cjs/scrollbar/scrollbar.d.cts.map +1 -1
  123. package/dist/cjs/select/select.cjs +3 -3
  124. package/dist/cjs/select/select.cjs.map +1 -1
  125. package/dist/cjs/shared/floating.cjs +49 -20
  126. package/dist/cjs/shared/floating.cjs.map +1 -1
  127. package/dist/cjs/shared/floating.d.cts +3 -1
  128. package/dist/cjs/shared/floating.d.cts.map +1 -1
  129. package/dist/cjs/shared/scoped-portal.cjs +2 -23
  130. package/dist/cjs/shared/scoped-portal.cjs.map +1 -1
  131. package/dist/cjs/shared/scoped-portal.d.cts.map +1 -1
  132. package/dist/cjs/{segmented/index.cjs → shared/theme-variables.cjs} +27 -5
  133. package/dist/cjs/shared/theme-variables.cjs.map +1 -0
  134. package/dist/cjs/shared/theme-variables.d.cts +4 -0
  135. package/dist/cjs/shared/theme-variables.d.cts.map +1 -0
  136. package/dist/cjs/splitter/splitter.cjs +4 -1
  137. package/dist/cjs/splitter/splitter.cjs.map +1 -1
  138. package/dist/cjs/splitter/splitter.d.cts.map +1 -1
  139. package/dist/cjs/styles/alert.css +1 -1
  140. package/dist/cjs/styles/anchor.css +1 -1
  141. package/dist/cjs/styles/appbar.css +1 -1
  142. package/dist/cjs/styles/autocomplete.css +1 -1
  143. package/dist/cjs/styles/avatar.css +1 -1
  144. package/dist/cjs/styles/backtop.css +1 -1
  145. package/dist/cjs/styles/badge.css +1 -1
  146. package/dist/cjs/styles/breadcrumb.css +1 -1
  147. package/dist/cjs/styles/button.css +1 -1
  148. package/dist/cjs/styles/calendar.css +1 -1
  149. package/dist/cjs/styles/card.css +1 -1
  150. package/dist/cjs/styles/carousel.css +1 -1
  151. package/dist/cjs/styles/cascader.css +1 -1
  152. package/dist/cjs/styles/checkbox.css +1 -1
  153. package/dist/cjs/styles/collapse.css +1 -1
  154. package/dist/cjs/styles/colorpicker.css +1 -1
  155. package/dist/cjs/styles/commandpalette.css +1 -1
  156. package/dist/cjs/styles/components/alert.css +1 -1
  157. package/dist/cjs/styles/components/anchor.css +1 -1
  158. package/dist/cjs/styles/components/appbar.css +1 -1
  159. package/dist/cjs/styles/components/autocomplete.css +1 -1
  160. package/dist/cjs/styles/components/avatar.css +1 -1
  161. package/dist/cjs/styles/components/breadcrumb.css +1 -1
  162. package/dist/cjs/styles/components/button.css +1 -1
  163. package/dist/cjs/styles/components/calendar.css +1 -1
  164. package/dist/cjs/styles/components/card.css +1 -1
  165. package/dist/cjs/styles/components/carousel.css +1 -1
  166. package/dist/cjs/styles/components/cascader.css +1 -1
  167. package/dist/cjs/styles/components/checkbox.css +1 -1
  168. package/dist/cjs/styles/components/collapse.css +1 -1
  169. package/dist/cjs/styles/components/colorpicker.css +1 -1
  170. package/dist/cjs/styles/components/commandpalette.css +1 -1
  171. package/dist/cjs/styles/components/datepicker.css +1 -1
  172. package/dist/cjs/styles/components/descriptions.css +1 -1
  173. package/dist/cjs/styles/components/drawer.css +1 -1
  174. package/dist/cjs/styles/components/dropdown.css +1 -1
  175. package/dist/cjs/styles/components/errorboundary.css +1 -1
  176. package/dist/cjs/styles/components/filelist.css +1 -1
  177. package/dist/cjs/styles/components/form.css +1 -1
  178. package/dist/cjs/styles/components/image.css +1 -1
  179. package/dist/cjs/styles/components/input.css +1 -1
  180. package/dist/cjs/styles/components/inputnumber.css +1 -1
  181. package/dist/cjs/styles/components/inputotp.css +1 -1
  182. package/dist/cjs/styles/components/layout.css +1 -1
  183. package/dist/cjs/styles/components/loading.css +1 -1
  184. package/dist/cjs/styles/components/loadingbar.css +1 -1
  185. package/dist/cjs/styles/components/mentions.css +1 -1
  186. package/dist/cjs/styles/components/menu.css +1 -1
  187. package/dist/cjs/styles/components/message.css +1 -1
  188. package/dist/cjs/styles/components/modal.css +1 -1
  189. package/dist/cjs/styles/components/notification.css +1 -1
  190. package/dist/cjs/styles/components/pagination.css +1 -1
  191. package/dist/cjs/styles/components/popover.css +1 -1
  192. package/dist/cjs/styles/components/progress.css +1 -1
  193. package/dist/cjs/styles/components/radio.css +1 -1
  194. package/dist/cjs/styles/components/rate.css +1 -1
  195. package/dist/cjs/styles/components/scrollarea.css +1 -1
  196. package/dist/cjs/styles/components/scrollbar.css +1 -1
  197. package/dist/cjs/styles/components/select.css +1 -1
  198. package/dist/cjs/styles/components/shared-calendar.css +1 -1
  199. package/dist/cjs/styles/components/slider.css +1 -1
  200. package/dist/cjs/styles/components/splitter.css +1 -1
  201. package/dist/cjs/styles/components/steps.css +1 -1
  202. package/dist/cjs/styles/components/switch.css +1 -1
  203. package/dist/cjs/styles/components/table.css +1 -1
  204. package/dist/cjs/styles/components/tabletanstack.css +1 -1
  205. package/dist/cjs/styles/components/tabs.css +1 -1
  206. package/dist/cjs/styles/components/tag.css +1 -1
  207. package/dist/cjs/styles/components/textarea.css +1 -1
  208. package/dist/cjs/styles/components/timepicker.css +1 -1
  209. package/dist/cjs/styles/components/tooltip.css +1 -1
  210. package/dist/cjs/styles/components/tour.css +1 -1
  211. package/dist/cjs/styles/components/transfer.css +1 -1
  212. package/dist/cjs/styles/components/tree.css +1 -1
  213. package/dist/cjs/styles/components/treeselect.css +1 -1
  214. package/dist/cjs/styles/components/typography.css +1 -1
  215. package/dist/cjs/styles/components/upload.css +1 -1
  216. package/dist/cjs/styles/components/virtuallist.css +1 -1
  217. package/dist/cjs/styles/config-provider.css +1 -1
  218. package/dist/cjs/styles/confirm.css +1 -1
  219. package/dist/cjs/styles/datepicker.css +1 -1
  220. package/dist/cjs/styles/daterangepicker.css +1 -1
  221. package/dist/cjs/styles/datetimepicker.css +1 -1
  222. package/dist/cjs/styles/descriptions.css +1 -1
  223. package/dist/cjs/styles/divider.css +1 -1
  224. package/dist/cjs/styles/drawer.css +1 -1
  225. package/dist/cjs/styles/dropdown.css +1 -1
  226. package/dist/cjs/styles/empty.css +1 -1
  227. package/dist/cjs/styles/errorboundary.css +1 -1
  228. package/dist/cjs/styles/filelist.css +1 -1
  229. package/dist/cjs/styles/flex.css +1 -1
  230. package/dist/cjs/styles/floatbutton.css +1 -1
  231. package/dist/cjs/styles/form.css +1 -1
  232. package/dist/cjs/styles/foundation.css +1 -1
  233. package/dist/cjs/styles/grid.css +1 -1
  234. package/dist/cjs/styles/image.css +1 -1
  235. package/dist/cjs/styles/index.css +1380 -716
  236. package/dist/cjs/styles/index.css.map +1 -1
  237. package/dist/cjs/styles/infinitescroll.css +1 -1
  238. package/dist/cjs/styles/input.css +1 -1
  239. package/dist/cjs/styles/inputmask.css +1 -1
  240. package/dist/cjs/styles/inputnumber.css +1 -1
  241. package/dist/cjs/styles/inputotp.css +1 -1
  242. package/dist/cjs/styles/layout.css +1 -1
  243. package/dist/cjs/styles/loading.css +1 -1
  244. package/dist/cjs/styles/loadingbar.css +1 -1
  245. package/dist/cjs/styles/masonry.css +1 -1
  246. package/dist/cjs/styles/mentions.css +1 -1
  247. package/dist/cjs/styles/menu.css +1 -1
  248. package/dist/cjs/styles/message.css +1 -1
  249. package/dist/cjs/styles/modal.css +1 -1
  250. package/dist/cjs/styles/notification.css +1 -1
  251. package/dist/cjs/styles/pagination.css +1 -1
  252. package/dist/cjs/styles/popconfirm.css +1 -1
  253. package/dist/cjs/styles/popover.css +1 -1
  254. package/dist/cjs/styles/progress.css +1 -1
  255. package/dist/cjs/styles/qrcode.css +1 -1
  256. package/dist/cjs/styles/radio.css +1 -1
  257. package/dist/cjs/styles/rate.css +1 -1
  258. package/dist/cjs/styles/result.css +1 -1
  259. package/dist/cjs/styles/scrollarea.css +1 -1
  260. package/dist/cjs/styles/scrollbar.css +1 -1
  261. package/dist/cjs/styles/select.css +1 -1
  262. package/dist/cjs/styles/skeleton.css +1 -1
  263. package/dist/cjs/styles/slider.css +1 -1
  264. package/dist/cjs/styles/space.css +1 -1
  265. package/dist/cjs/styles/splitter.css +1 -1
  266. package/dist/cjs/styles/statistic.css +1 -1
  267. package/dist/cjs/styles/steps.css +1 -1
  268. package/dist/cjs/styles/switch.css +1 -1
  269. package/dist/cjs/styles/table.css +1 -1
  270. package/dist/cjs/styles/tabletanstack.css +1 -1
  271. package/dist/cjs/styles/tabs.css +1 -1
  272. package/dist/cjs/styles/tag.css +1 -1
  273. package/dist/cjs/styles/textarea.css +1 -1
  274. package/dist/cjs/styles/timeline.css +1 -1
  275. package/dist/cjs/styles/timepicker.css +1 -1
  276. package/dist/cjs/styles/timerangepicker.css +1 -1
  277. package/dist/cjs/styles/tooltip.css +1 -1
  278. package/dist/cjs/styles/tour.css +1 -1
  279. package/dist/cjs/styles/transfer.css +1 -1
  280. package/dist/cjs/styles/tree.css +1 -1
  281. package/dist/cjs/styles/treeselect.css +1 -1
  282. package/dist/cjs/styles/typography.css +1 -1
  283. package/dist/cjs/styles/upload.css +1 -1
  284. package/dist/cjs/styles/virtuallist.css +1 -1
  285. package/dist/cjs/tabs/tabs.cjs +14 -8
  286. package/dist/cjs/tabs/tabs.cjs.map +1 -1
  287. package/dist/cjs/tabs/tabs.d.cts +4 -2
  288. package/dist/cjs/tabs/tabs.d.cts.map +1 -1
  289. package/dist/cjs/tailwind-tokens.cjs +1 -1
  290. package/dist/cjs/tailwind-tokens.cjs.map +1 -1
  291. package/dist/cjs/tailwind-tokens.d.cts.map +1 -1
  292. package/dist/cjs/textarea/textarea.cjs +49 -21
  293. package/dist/cjs/textarea/textarea.cjs.map +1 -1
  294. package/dist/cjs/textarea/textarea.d.cts.map +1 -1
  295. package/dist/cjs/theme.cjs +53 -29
  296. package/dist/cjs/theme.cjs.map +1 -1
  297. package/dist/cjs/theme.d.cts +15 -0
  298. package/dist/cjs/theme.d.cts.map +1 -1
  299. package/dist/cjs/timeline/timeline.cjs +1 -1
  300. package/dist/cjs/timeline/timeline.cjs.map +1 -1
  301. package/dist/cjs/timeline/timeline.d.cts.map +1 -1
  302. package/dist/cjs/timepicker/time-panel.cjs +8 -2
  303. package/dist/cjs/timepicker/time-panel.cjs.map +1 -1
  304. package/dist/cjs/timepicker/time-panel.d.cts.map +1 -1
  305. package/dist/cjs/transfer/transfer.cjs +5 -5
  306. package/dist/cjs/transfer/transfer.cjs.map +1 -1
  307. package/dist/cjs/transfer/transfer.d.cts.map +1 -1
  308. package/dist/cjs/tree/tree.cjs +13 -6
  309. package/dist/cjs/tree/tree.cjs.map +1 -1
  310. package/dist/cjs/tree/tree.d.cts.map +1 -1
  311. package/dist/cjs/treeselect/treeselect.cjs +5 -4
  312. package/dist/cjs/treeselect/treeselect.cjs.map +1 -1
  313. package/dist/cjs/treeselect/treeselect.d.cts.map +1 -1
  314. package/dist/cjs/virtuallist/virtuallist.cjs +9 -3
  315. package/dist/cjs/virtuallist/virtuallist.cjs.map +1 -1
  316. package/dist/cjs/virtuallist/virtuallist.d.cts.map +1 -1
  317. package/dist/esm/autocomplete/autocomplete.d.ts +2 -0
  318. package/dist/esm/autocomplete/autocomplete.d.ts.map +1 -1
  319. package/dist/esm/autocomplete/autocomplete.js +7 -3
  320. package/dist/esm/autocomplete/autocomplete.js.map +1 -1
  321. package/dist/esm/browser/modules/autocomplete/autocomplete.js +7 -3
  322. package/dist/esm/browser/modules/autocomplete/autocomplete.js.map +1 -1
  323. package/dist/esm/browser/modules/button/button.js.map +1 -1
  324. package/dist/esm/browser/modules/cascader/cascader.js +9 -2
  325. package/dist/esm/browser/modules/cascader/cascader.js.map +1 -1
  326. package/dist/esm/browser/modules/colors.js +69 -6
  327. package/dist/esm/browser/modules/colors.js.map +1 -1
  328. package/dist/esm/browser/modules/commandpalette/commandpalette.js +10 -3
  329. package/dist/esm/browser/modules/commandpalette/commandpalette.js.map +1 -1
  330. package/dist/esm/browser/modules/config-provider/component-defaults.js.map +1 -1
  331. package/dist/esm/browser/modules/config-provider/use-color-variables.js +18 -2
  332. package/dist/esm/browser/modules/config-provider/use-color-variables.js.map +1 -1
  333. package/dist/esm/browser/modules/drawer/drawer.js +7 -1
  334. package/dist/esm/browser/modules/drawer/drawer.js.map +1 -1
  335. package/dist/esm/browser/modules/dropdown/dropdown.js +25 -4
  336. package/dist/esm/browser/modules/dropdown/dropdown.js.map +1 -1
  337. package/dist/esm/browser/modules/form/form.js +38 -21
  338. package/dist/esm/browser/modules/form/form.js.map +1 -1
  339. package/dist/esm/browser/modules/image/viewer.js +8 -2
  340. package/dist/esm/browser/modules/image/viewer.js.map +1 -1
  341. package/dist/esm/browser/modules/index.js +1 -2
  342. package/dist/esm/browser/modules/layout/layout.js +4 -1
  343. package/dist/esm/browser/modules/layout/layout.js.map +1 -1
  344. package/dist/esm/browser/modules/mentions/mentions.js +4 -2
  345. package/dist/esm/browser/modules/mentions/mentions.js.map +1 -1
  346. package/dist/esm/browser/modules/menu/index.js +1 -1
  347. package/dist/esm/browser/modules/menu/menu.js +57 -18
  348. package/dist/esm/browser/modules/menu/menu.js.map +1 -1
  349. package/dist/esm/browser/modules/scrollbar/scrollbar.js +69 -19
  350. package/dist/esm/browser/modules/scrollbar/scrollbar.js.map +1 -1
  351. package/dist/esm/browser/modules/select/select.js +3 -3
  352. package/dist/esm/browser/modules/select/select.js.map +1 -1
  353. package/dist/esm/browser/modules/shared/floating.js +49 -20
  354. package/dist/esm/browser/modules/shared/floating.js.map +1 -1
  355. package/dist/esm/browser/modules/shared/scoped-portal.js +2 -23
  356. package/dist/esm/browser/modules/shared/scoped-portal.js.map +1 -1
  357. package/dist/esm/browser/modules/shared/theme-variables.js +27 -0
  358. package/dist/esm/browser/modules/shared/theme-variables.js.map +1 -0
  359. package/dist/esm/browser/modules/splitter/splitter.js +4 -1
  360. package/dist/esm/browser/modules/splitter/splitter.js.map +1 -1
  361. package/dist/esm/browser/modules/tabs/tabs.js +14 -8
  362. package/dist/esm/browser/modules/tabs/tabs.js.map +1 -1
  363. package/dist/esm/browser/modules/tailwind-tokens.js +1 -1
  364. package/dist/esm/browser/modules/tailwind-tokens.js.map +1 -1
  365. package/dist/esm/browser/modules/textarea/textarea.js +50 -22
  366. package/dist/esm/browser/modules/textarea/textarea.js.map +1 -1
  367. package/dist/esm/browser/modules/theme.js +53 -29
  368. package/dist/esm/browser/modules/theme.js.map +1 -1
  369. package/dist/esm/browser/modules/timeline/timeline.js +1 -1
  370. package/dist/esm/browser/modules/timeline/timeline.js.map +1 -1
  371. package/dist/esm/browser/modules/timepicker/time-panel.js +8 -2
  372. package/dist/esm/browser/modules/timepicker/time-panel.js.map +1 -1
  373. package/dist/esm/browser/modules/transfer/transfer.js +5 -5
  374. package/dist/esm/browser/modules/transfer/transfer.js.map +1 -1
  375. package/dist/esm/browser/modules/tree/tree.js +13 -6
  376. package/dist/esm/browser/modules/tree/tree.js.map +1 -1
  377. package/dist/esm/browser/modules/treeselect/treeselect.js +5 -4
  378. package/dist/esm/browser/modules/treeselect/treeselect.js.map +1 -1
  379. package/dist/esm/browser/modules/virtuallist/virtuallist.js +9 -3
  380. package/dist/esm/browser/modules/virtuallist/virtuallist.js.map +1 -1
  381. package/dist/esm/button/button.d.ts +7 -2
  382. package/dist/esm/button/button.d.ts.map +1 -1
  383. package/dist/esm/button/button.js.map +1 -1
  384. package/dist/esm/cascader/cascader.d.ts +2 -0
  385. package/dist/esm/cascader/cascader.d.ts.map +1 -1
  386. package/dist/esm/cascader/cascader.js +9 -2
  387. package/dist/esm/cascader/cascader.js.map +1 -1
  388. package/dist/esm/colors.d.ts +3 -1
  389. package/dist/esm/colors.d.ts.map +1 -1
  390. package/dist/esm/colors.js +69 -6
  391. package/dist/esm/colors.js.map +1 -1
  392. package/dist/esm/commandpalette/commandpalette.d.ts.map +1 -1
  393. package/dist/esm/commandpalette/commandpalette.js +10 -3
  394. package/dist/esm/commandpalette/commandpalette.js.map +1 -1
  395. package/dist/esm/config-provider/component-defaults.d.ts +3 -4
  396. package/dist/esm/config-provider/component-defaults.d.ts.map +1 -1
  397. package/dist/esm/config-provider/component-defaults.js.map +1 -1
  398. package/dist/esm/config-provider/index.d.ts +1 -1
  399. package/dist/esm/config-provider/index.d.ts.map +1 -1
  400. package/dist/esm/config-provider/use-color-variables.d.ts.map +1 -1
  401. package/dist/esm/config-provider/use-color-variables.js +18 -2
  402. package/dist/esm/config-provider/use-color-variables.js.map +1 -1
  403. package/dist/esm/drawer/drawer.d.ts.map +1 -1
  404. package/dist/esm/drawer/drawer.js +7 -1
  405. package/dist/esm/drawer/drawer.js.map +1 -1
  406. package/dist/esm/dropdown/dropdown.d.ts +9 -1
  407. package/dist/esm/dropdown/dropdown.d.ts.map +1 -1
  408. package/dist/esm/dropdown/dropdown.js +25 -4
  409. package/dist/esm/dropdown/dropdown.js.map +1 -1
  410. package/dist/esm/form/form.d.ts +3 -1
  411. package/dist/esm/form/form.d.ts.map +1 -1
  412. package/dist/esm/form/form.js +38 -21
  413. package/dist/esm/form/form.js.map +1 -1
  414. package/dist/esm/image/viewer.d.ts.map +1 -1
  415. package/dist/esm/image/viewer.js +8 -2
  416. package/dist/esm/image/viewer.js.map +1 -1
  417. package/dist/esm/index.d.ts +3 -5
  418. package/dist/esm/index.d.ts.map +1 -1
  419. package/dist/esm/index.js +1 -2
  420. package/dist/esm/layout/layout.d.ts.map +1 -1
  421. package/dist/esm/layout/layout.js +4 -1
  422. package/dist/esm/layout/layout.js.map +1 -1
  423. package/dist/esm/mentions/mentions.d.ts +2 -0
  424. package/dist/esm/mentions/mentions.d.ts.map +1 -1
  425. package/dist/esm/mentions/mentions.js +4 -2
  426. package/dist/esm/mentions/mentions.js.map +1 -1
  427. package/dist/esm/menu/index.d.ts +2 -2
  428. package/dist/esm/menu/index.d.ts.map +1 -1
  429. package/dist/esm/menu/index.js +1 -1
  430. package/dist/esm/menu/menu.d.ts +4 -0
  431. package/dist/esm/menu/menu.d.ts.map +1 -1
  432. package/dist/esm/menu/menu.js +57 -18
  433. package/dist/esm/menu/menu.js.map +1 -1
  434. package/dist/esm/scrollbar/scrollbar.d.ts +12 -2
  435. package/dist/esm/scrollbar/scrollbar.d.ts.map +1 -1
  436. package/dist/esm/scrollbar/scrollbar.js +69 -19
  437. package/dist/esm/scrollbar/scrollbar.js.map +1 -1
  438. package/dist/esm/select/select.js +3 -3
  439. package/dist/esm/select/select.js.map +1 -1
  440. package/dist/esm/shared/floating.d.ts +3 -1
  441. package/dist/esm/shared/floating.d.ts.map +1 -1
  442. package/dist/esm/shared/floating.js +49 -20
  443. package/dist/esm/shared/floating.js.map +1 -1
  444. package/dist/esm/shared/scoped-portal.d.ts.map +1 -1
  445. package/dist/esm/shared/scoped-portal.js +2 -23
  446. package/dist/esm/shared/scoped-portal.js.map +1 -1
  447. package/dist/esm/shared/theme-variables.d.ts +4 -0
  448. package/dist/esm/shared/theme-variables.d.ts.map +1 -0
  449. package/dist/esm/shared/theme-variables.js +27 -0
  450. package/dist/esm/shared/theme-variables.js.map +1 -0
  451. package/dist/esm/splitter/splitter.d.ts.map +1 -1
  452. package/dist/esm/splitter/splitter.js +4 -1
  453. package/dist/esm/splitter/splitter.js.map +1 -1
  454. package/dist/esm/styles/alert.css +1 -1
  455. package/dist/esm/styles/anchor.css +1 -1
  456. package/dist/esm/styles/appbar.css +1 -1
  457. package/dist/esm/styles/autocomplete.css +1 -1
  458. package/dist/esm/styles/avatar.css +1 -1
  459. package/dist/esm/styles/backtop.css +1 -1
  460. package/dist/esm/styles/badge.css +1 -1
  461. package/dist/esm/styles/breadcrumb.css +1 -1
  462. package/dist/esm/styles/button.css +1 -1
  463. package/dist/esm/styles/calendar.css +1 -1
  464. package/dist/esm/styles/card.css +1 -1
  465. package/dist/esm/styles/carousel.css +1 -1
  466. package/dist/esm/styles/cascader.css +1 -1
  467. package/dist/esm/styles/checkbox.css +1 -1
  468. package/dist/esm/styles/collapse.css +1 -1
  469. package/dist/esm/styles/colorpicker.css +1 -1
  470. package/dist/esm/styles/commandpalette.css +1 -1
  471. package/dist/esm/styles/components/alert.css +1 -1
  472. package/dist/esm/styles/components/anchor.css +1 -1
  473. package/dist/esm/styles/components/appbar.css +1 -1
  474. package/dist/esm/styles/components/autocomplete.css +1 -1
  475. package/dist/esm/styles/components/avatar.css +1 -1
  476. package/dist/esm/styles/components/breadcrumb.css +1 -1
  477. package/dist/esm/styles/components/button.css +1 -1
  478. package/dist/esm/styles/components/calendar.css +1 -1
  479. package/dist/esm/styles/components/card.css +1 -1
  480. package/dist/esm/styles/components/carousel.css +1 -1
  481. package/dist/esm/styles/components/cascader.css +1 -1
  482. package/dist/esm/styles/components/checkbox.css +1 -1
  483. package/dist/esm/styles/components/collapse.css +1 -1
  484. package/dist/esm/styles/components/colorpicker.css +1 -1
  485. package/dist/esm/styles/components/commandpalette.css +1 -1
  486. package/dist/esm/styles/components/datepicker.css +1 -1
  487. package/dist/esm/styles/components/descriptions.css +1 -1
  488. package/dist/esm/styles/components/drawer.css +1 -1
  489. package/dist/esm/styles/components/dropdown.css +1 -1
  490. package/dist/esm/styles/components/errorboundary.css +1 -1
  491. package/dist/esm/styles/components/filelist.css +1 -1
  492. package/dist/esm/styles/components/form.css +1 -1
  493. package/dist/esm/styles/components/image.css +1 -1
  494. package/dist/esm/styles/components/input.css +1 -1
  495. package/dist/esm/styles/components/inputnumber.css +1 -1
  496. package/dist/esm/styles/components/inputotp.css +1 -1
  497. package/dist/esm/styles/components/layout.css +1 -1
  498. package/dist/esm/styles/components/loading.css +1 -1
  499. package/dist/esm/styles/components/loadingbar.css +1 -1
  500. package/dist/esm/styles/components/mentions.css +1 -1
  501. package/dist/esm/styles/components/menu.css +1 -1
  502. package/dist/esm/styles/components/message.css +1 -1
  503. package/dist/esm/styles/components/modal.css +1 -1
  504. package/dist/esm/styles/components/notification.css +1 -1
  505. package/dist/esm/styles/components/pagination.css +1 -1
  506. package/dist/esm/styles/components/popover.css +1 -1
  507. package/dist/esm/styles/components/progress.css +1 -1
  508. package/dist/esm/styles/components/radio.css +1 -1
  509. package/dist/esm/styles/components/rate.css +1 -1
  510. package/dist/esm/styles/components/scrollarea.css +1 -1
  511. package/dist/esm/styles/components/scrollbar.css +1 -1
  512. package/dist/esm/styles/components/select.css +1 -1
  513. package/dist/esm/styles/components/shared-calendar.css +1 -1
  514. package/dist/esm/styles/components/slider.css +1 -1
  515. package/dist/esm/styles/components/splitter.css +1 -1
  516. package/dist/esm/styles/components/steps.css +1 -1
  517. package/dist/esm/styles/components/switch.css +1 -1
  518. package/dist/esm/styles/components/table.css +1 -1
  519. package/dist/esm/styles/components/tabletanstack.css +1 -1
  520. package/dist/esm/styles/components/tabs.css +1 -1
  521. package/dist/esm/styles/components/tag.css +1 -1
  522. package/dist/esm/styles/components/textarea.css +1 -1
  523. package/dist/esm/styles/components/timepicker.css +1 -1
  524. package/dist/esm/styles/components/tooltip.css +1 -1
  525. package/dist/esm/styles/components/tour.css +1 -1
  526. package/dist/esm/styles/components/transfer.css +1 -1
  527. package/dist/esm/styles/components/tree.css +1 -1
  528. package/dist/esm/styles/components/treeselect.css +1 -1
  529. package/dist/esm/styles/components/typography.css +1 -1
  530. package/dist/esm/styles/components/upload.css +1 -1
  531. package/dist/esm/styles/components/virtuallist.css +1 -1
  532. package/dist/esm/styles/config-provider.css +1 -1
  533. package/dist/esm/styles/confirm.css +1 -1
  534. package/dist/esm/styles/datepicker.css +1 -1
  535. package/dist/esm/styles/daterangepicker.css +1 -1
  536. package/dist/esm/styles/datetimepicker.css +1 -1
  537. package/dist/esm/styles/descriptions.css +1 -1
  538. package/dist/esm/styles/divider.css +1 -1
  539. package/dist/esm/styles/drawer.css +1 -1
  540. package/dist/esm/styles/dropdown.css +1 -1
  541. package/dist/esm/styles/empty.css +1 -1
  542. package/dist/esm/styles/errorboundary.css +1 -1
  543. package/dist/esm/styles/filelist.css +1 -1
  544. package/dist/esm/styles/flex.css +1 -1
  545. package/dist/esm/styles/floatbutton.css +1 -1
  546. package/dist/esm/styles/form.css +1 -1
  547. package/dist/esm/styles/foundation.css +1 -1
  548. package/dist/esm/styles/grid.css +1 -1
  549. package/dist/esm/styles/image.css +1 -1
  550. package/dist/esm/styles/index.css +1380 -716
  551. package/dist/esm/styles/index.css.map +1 -1
  552. package/dist/esm/styles/infinitescroll.css +1 -1
  553. package/dist/esm/styles/input.css +1 -1
  554. package/dist/esm/styles/inputmask.css +1 -1
  555. package/dist/esm/styles/inputnumber.css +1 -1
  556. package/dist/esm/styles/inputotp.css +1 -1
  557. package/dist/esm/styles/layout.css +1 -1
  558. package/dist/esm/styles/loading.css +1 -1
  559. package/dist/esm/styles/loadingbar.css +1 -1
  560. package/dist/esm/styles/masonry.css +1 -1
  561. package/dist/esm/styles/mentions.css +1 -1
  562. package/dist/esm/styles/menu.css +1 -1
  563. package/dist/esm/styles/message.css +1 -1
  564. package/dist/esm/styles/modal.css +1 -1
  565. package/dist/esm/styles/notification.css +1 -1
  566. package/dist/esm/styles/pagination.css +1 -1
  567. package/dist/esm/styles/popconfirm.css +1 -1
  568. package/dist/esm/styles/popover.css +1 -1
  569. package/dist/esm/styles/progress.css +1 -1
  570. package/dist/esm/styles/qrcode.css +1 -1
  571. package/dist/esm/styles/radio.css +1 -1
  572. package/dist/esm/styles/rate.css +1 -1
  573. package/dist/esm/styles/result.css +1 -1
  574. package/dist/esm/styles/scrollarea.css +1 -1
  575. package/dist/esm/styles/scrollbar.css +1 -1
  576. package/dist/esm/styles/select.css +1 -1
  577. package/dist/esm/styles/skeleton.css +1 -1
  578. package/dist/esm/styles/slider.css +1 -1
  579. package/dist/esm/styles/space.css +1 -1
  580. package/dist/esm/styles/splitter.css +1 -1
  581. package/dist/esm/styles/statistic.css +1 -1
  582. package/dist/esm/styles/steps.css +1 -1
  583. package/dist/esm/styles/switch.css +1 -1
  584. package/dist/esm/styles/table.css +1 -1
  585. package/dist/esm/styles/tabletanstack.css +1 -1
  586. package/dist/esm/styles/tabs.css +1 -1
  587. package/dist/esm/styles/tag.css +1 -1
  588. package/dist/esm/styles/textarea.css +1 -1
  589. package/dist/esm/styles/timeline.css +1 -1
  590. package/dist/esm/styles/timepicker.css +1 -1
  591. package/dist/esm/styles/timerangepicker.css +1 -1
  592. package/dist/esm/styles/tooltip.css +1 -1
  593. package/dist/esm/styles/tour.css +1 -1
  594. package/dist/esm/styles/transfer.css +1 -1
  595. package/dist/esm/styles/tree.css +1 -1
  596. package/dist/esm/styles/treeselect.css +1 -1
  597. package/dist/esm/styles/typography.css +1 -1
  598. package/dist/esm/styles/upload.css +1 -1
  599. package/dist/esm/styles/virtuallist.css +1 -1
  600. package/dist/esm/tabs/tabs.d.ts +4 -2
  601. package/dist/esm/tabs/tabs.d.ts.map +1 -1
  602. package/dist/esm/tabs/tabs.js +14 -8
  603. package/dist/esm/tabs/tabs.js.map +1 -1
  604. package/dist/esm/tailwind-tokens.d.ts.map +1 -1
  605. package/dist/esm/tailwind-tokens.js +1 -1
  606. package/dist/esm/tailwind-tokens.js.map +1 -1
  607. package/dist/esm/textarea/textarea.d.ts.map +1 -1
  608. package/dist/esm/textarea/textarea.js +50 -22
  609. package/dist/esm/textarea/textarea.js.map +1 -1
  610. package/dist/esm/theme.d.ts +15 -0
  611. package/dist/esm/theme.d.ts.map +1 -1
  612. package/dist/esm/theme.js +53 -29
  613. package/dist/esm/theme.js.map +1 -1
  614. package/dist/esm/timeline/timeline.d.ts.map +1 -1
  615. package/dist/esm/timeline/timeline.js +1 -1
  616. package/dist/esm/timeline/timeline.js.map +1 -1
  617. package/dist/esm/timepicker/time-panel.d.ts.map +1 -1
  618. package/dist/esm/timepicker/time-panel.js +8 -2
  619. package/dist/esm/timepicker/time-panel.js.map +1 -1
  620. package/dist/esm/transfer/transfer.d.ts.map +1 -1
  621. package/dist/esm/transfer/transfer.js +5 -5
  622. package/dist/esm/transfer/transfer.js.map +1 -1
  623. package/dist/esm/tree/tree.d.ts.map +1 -1
  624. package/dist/esm/tree/tree.js +13 -6
  625. package/dist/esm/tree/tree.js.map +1 -1
  626. package/dist/esm/treeselect/treeselect.d.ts.map +1 -1
  627. package/dist/esm/treeselect/treeselect.js +5 -4
  628. package/dist/esm/treeselect/treeselect.js.map +1 -1
  629. package/dist/esm/virtuallist/virtuallist.d.ts.map +1 -1
  630. package/dist/esm/virtuallist/virtuallist.js +9 -3
  631. package/dist/esm/virtuallist/virtuallist.js.map +1 -1
  632. package/dist/tailwind.css +1 -1
  633. package/package.json +1 -22
  634. package/dist/cjs/browser/modules/segmented/index.cjs.map +0 -1
  635. package/dist/cjs/browser/modules/segmented/segmented.cjs +0 -127
  636. package/dist/cjs/browser/modules/segmented/segmented.cjs.map +0 -1
  637. package/dist/cjs/browser/segmented.cjs +0 -2
  638. package/dist/cjs/segmented/index.cjs.map +0 -1
  639. package/dist/cjs/segmented/index.d.cts +0 -3
  640. package/dist/cjs/segmented/index.d.cts.map +0 -1
  641. package/dist/cjs/segmented/segmented.cjs +0 -125
  642. package/dist/cjs/segmented/segmented.cjs.map +0 -1
  643. package/dist/cjs/segmented/segmented.d.cts +0 -21
  644. package/dist/cjs/segmented/segmented.d.cts.map +0 -1
  645. package/dist/cjs/styles/components/segmented.css +0 -1
  646. package/dist/cjs/styles/segmented.css +0 -1
  647. package/dist/esm/browser/modules/segmented/index.js +0 -2
  648. package/dist/esm/browser/modules/segmented/segmented.js +0 -89
  649. package/dist/esm/browser/modules/segmented/segmented.js.map +0 -1
  650. package/dist/esm/browser/segmented.js +0 -2
  651. package/dist/esm/segmented/index.d.ts +0 -3
  652. package/dist/esm/segmented/index.d.ts.map +0 -1
  653. package/dist/esm/segmented/index.js +0 -2
  654. package/dist/esm/segmented/segmented.d.ts +0 -21
  655. package/dist/esm/segmented/segmented.d.ts.map +0 -1
  656. package/dist/esm/segmented/segmented.js +0 -87
  657. package/dist/esm/segmented/segmented.js.map +0 -1
  658. package/dist/esm/styles/components/segmented.css +0 -1
  659. package/dist/esm/styles/segmented.css +0 -1
@@ -98,6 +98,7 @@ __webpack_require__.d(__webpack_exports__, {
98
98
  Masonry: ()=>external_masonry_index_cjs_namespaceObject.Masonry,
99
99
  Mentions: ()=>external_mentions_index_cjs_namespaceObject.Mentions,
100
100
  Menu: ()=>external_menu_index_cjs_namespaceObject.Menu,
101
+ MenuGroup: ()=>external_menu_index_cjs_namespaceObject.MenuGroup,
101
102
  Message: ()=>external_message_index_cjs_namespaceObject.Message,
102
103
  MessageProvider: ()=>external_message_index_cjs_namespaceObject.MessageProvider,
103
104
  Modal: ()=>external_modal_index_cjs_namespaceObject.Modal,
@@ -117,7 +118,6 @@ __webpack_require__.d(__webpack_exports__, {
117
118
  Row: ()=>external_grid_index_cjs_namespaceObject.Row,
118
119
  ScrollArea: ()=>external_scrollarea_index_cjs_namespaceObject.ScrollArea,
119
120
  Scrollbar: ()=>external_scrollbar_index_cjs_namespaceObject.Scrollbar,
120
- Segmented: ()=>external_segmented_index_cjs_namespaceObject.Segmented,
121
121
  Select: ()=>external_select_index_cjs_namespaceObject.Select,
122
122
  Skeleton: ()=>external_skeleton_index_cjs_namespaceObject.Skeleton,
123
123
  Slider: ()=>external_slider_index_cjs_namespaceObject.Slider,
@@ -229,7 +229,6 @@ const external_rate_index_cjs_namespaceObject = require("./rate/index.cjs");
229
229
  const external_result_index_cjs_namespaceObject = require("./result/index.cjs");
230
230
  const external_scrollarea_index_cjs_namespaceObject = require("./scrollarea/index.cjs");
231
231
  const external_scrollbar_index_cjs_namespaceObject = require("./scrollbar/index.cjs");
232
- const external_segmented_index_cjs_namespaceObject = require("./segmented/index.cjs");
233
232
  const external_select_index_cjs_namespaceObject = require("./select/index.cjs");
234
233
  const external_skeleton_index_cjs_namespaceObject = require("./skeleton/index.cjs");
235
234
  const external_slider_index_cjs_namespaceObject = require("./slider/index.cjs");
@@ -322,6 +321,7 @@ exports.LoadingBarProvider = __webpack_exports__.LoadingBarProvider;
322
321
  exports.Masonry = __webpack_exports__.Masonry;
323
322
  exports.Mentions = __webpack_exports__.Mentions;
324
323
  exports.Menu = __webpack_exports__.Menu;
324
+ exports.MenuGroup = __webpack_exports__.MenuGroup;
325
325
  exports.Message = __webpack_exports__.Message;
326
326
  exports.MessageProvider = __webpack_exports__.MessageProvider;
327
327
  exports.Modal = __webpack_exports__.Modal;
@@ -341,7 +341,6 @@ exports.Result = __webpack_exports__.Result;
341
341
  exports.Row = __webpack_exports__.Row;
342
342
  exports.ScrollArea = __webpack_exports__.ScrollArea;
343
343
  exports.Scrollbar = __webpack_exports__.Scrollbar;
344
- exports.Segmented = __webpack_exports__.Segmented;
345
344
  exports.Select = __webpack_exports__.Select;
346
345
  exports.Skeleton = __webpack_exports__.Skeleton;
347
346
  exports.Slider = __webpack_exports__.Slider;
@@ -462,6 +461,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
462
461
  "Masonry",
463
462
  "Mentions",
464
463
  "Menu",
464
+ "MenuGroup",
465
465
  "Message",
466
466
  "MessageProvider",
467
467
  "Modal",
@@ -481,7 +481,6 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
481
481
  "Row",
482
482
  "ScrollArea",
483
483
  "Scrollbar",
484
- "Segmented",
485
484
  "Select",
486
485
  "Skeleton",
487
486
  "Slider",
@@ -41,6 +41,7 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
41
41
  const external_react_namespaceObject = require("react");
42
42
  const button_cjs_namespaceObject = require("../button/button.cjs");
43
43
  const component_defaults_cjs_namespaceObject = require("../config-provider/component-defaults.cjs");
44
+ const scrollbar_cjs_namespaceObject = require("../scrollbar/scrollbar.cjs");
44
45
  const classes_cjs_namespaceObject = require("../shared/classes.cjs");
45
46
  const use_controllable_cjs_namespaceObject = require("../shared/use-controllable.cjs");
46
47
  const use_text_cjs_namespaceObject = require("../shared/use-text.cjs");
@@ -78,8 +79,10 @@ const layout_LayoutSider = /*#__PURE__*/ (0, external_react_namespaceObject.forw
78
79
  ...style
79
80
  },
80
81
  children: [
81
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
82
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(scrollbar_cjs_namespaceObject.ScrollbarControl, {
82
83
  className: "leaf-layout__sider-content",
84
+ role: "presentation",
85
+ tabIndex: -1,
83
86
  children: children
84
87
  }),
85
88
  collapsible && !narrow && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(button_cjs_namespaceObject.ButtonControl, {
@@ -1 +1 @@
1
- {"version":3,"file":"layout/layout.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/layout/layout.tsx"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { forwardRef, type HTMLAttributes, type ReactNode, useEffect, useState } from 'react';\nimport { ButtonControl } from '../button/button';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { classes } from '../shared/classes';\nimport { useControllable } from '../shared/use-controllable';\nimport { useText } from '../shared/use-text';\n\nexport interface LayoutProps extends HTMLAttributes<HTMLDivElement> {\n direction?: 'horizontal' | 'vertical';\n}\nconst LayoutRoot = forwardRef<HTMLDivElement, LayoutProps>(function Layout(rawProps, ref) {\n const { direction = 'vertical', className, ...props } = useComponentProps('Layout', rawProps);\n return (\n <div\n {...props}\n ref={ref}\n className={classes('leaf-layout', `leaf-layout--${direction}`, className)}\n />\n );\n});\nexport interface LayoutSiderProps extends HTMLAttributes<HTMLElement> {\n width?: number | string;\n collapsedWidth?: number | string;\n collapsed?: boolean;\n defaultCollapsed?: boolean;\n collapsible?: boolean;\n breakpoint?: number;\n onCollapse?: (collapsed: boolean) => void;\n trigger?: ReactNode;\n}\nexport const LayoutSider = forwardRef<HTMLElement, LayoutSiderProps>(function LayoutSider(\n rawProps: LayoutSiderProps,\n ref,\n) {\n const {\n width = 220,\n collapsedWidth = 64,\n collapsed,\n defaultCollapsed = false,\n collapsible = false,\n breakpoint,\n onCollapse,\n trigger,\n className,\n children,\n style,\n ...props\n } = useComponentProps('LayoutSider', rawProps);\n const t = useText();\n const [compact, setCompact] = useControllable(collapsed, defaultCollapsed, onCollapse);\n const [narrow, setNarrow] = useState(false);\n useEffect(() => {\n if (breakpoint === undefined) return;\n const query = matchMedia(`(max-width: ${breakpoint}px)`);\n const update = () => setNarrow(query.matches);\n update();\n query.addEventListener('change', update);\n return () => query.removeEventListener('change', update);\n }, [breakpoint]);\n const folded = compact || narrow;\n return (\n <aside\n {...props}\n ref={ref}\n className={classes('leaf-layout__sider', className)}\n data-collapsed={folded || undefined}\n style={{ width: folded ? collapsedWidth : width, ...style }}\n >\n <div className=\"leaf-layout__sider-content\">{children}</div>\n {collapsible && !narrow && (\n <ButtonControl\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setCompact(!compact)}\n aria-expanded={!folded}\n aria-label={folded ? t('layout.expandSidebar') : t('layout.collapseSidebar')}\n >\n {trigger ?? (folded ? t('layout.expandSidebar') : t('layout.collapseSidebar'))}\n </ButtonControl>\n )}\n </aside>\n );\n});\nexport const LayoutHeader = forwardRef<HTMLElement, HTMLAttributes<HTMLElement>>(\n function LayoutHeader(rawProps: HTMLAttributes<HTMLElement>, ref) {\n const { className, ...props } = useComponentProps('LayoutHeader', rawProps);\n return <header {...props} ref={ref} className={classes('leaf-layout__header', className)} />;\n },\n);\nexport const LayoutContent = forwardRef<HTMLElement, HTMLAttributes<HTMLElement>>(\n function LayoutContent(rawProps: HTMLAttributes<HTMLElement>, ref) {\n const { className, ...props } = useComponentProps('LayoutContent', rawProps);\n return <main {...props} ref={ref} className={classes('leaf-layout__content', className)} />;\n },\n);\nexport const LayoutFooter = forwardRef<HTMLElement, HTMLAttributes<HTMLElement>>(\n function LayoutFooter(rawProps: HTMLAttributes<HTMLElement>, ref) {\n const { className, ...props } = useComponentProps('LayoutFooter', rawProps);\n return <footer {...props} ref={ref} className={classes('leaf-layout__footer', className)} />;\n },\n);\nexport const Layout = Object.assign(LayoutRoot, {\n Header: LayoutHeader,\n Sider: LayoutSider,\n Content: LayoutContent,\n Footer: LayoutFooter,\n});\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","LayoutRoot","forwardRef","rawProps","ref","direction","className","props","useComponentProps","classes","LayoutSider","width","collapsedWidth","collapsed","defaultCollapsed","collapsible","breakpoint","onCollapse","trigger","children","style","t","useText","compact","setCompact","useControllable","narrow","setNarrow","useState","useEffect","undefined","query","matchMedia","update","folded","ButtonControl","LayoutHeader","LayoutContent","LayoutFooter","Layout"],"mappings":"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"}
1
+ {"version":3,"file":"layout/layout.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/layout/layout.tsx"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { forwardRef, type HTMLAttributes, type ReactNode, useEffect, useState } from 'react';\nimport { ButtonControl } from '../button/button';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { ScrollbarControl } from '../scrollbar/scrollbar';\nimport { classes } from '../shared/classes';\nimport { useControllable } from '../shared/use-controllable';\nimport { useText } from '../shared/use-text';\n\nexport interface LayoutProps extends HTMLAttributes<HTMLDivElement> {\n direction?: 'horizontal' | 'vertical';\n}\nconst LayoutRoot = forwardRef<HTMLDivElement, LayoutProps>(function Layout(rawProps, ref) {\n const { direction = 'vertical', className, ...props } = useComponentProps('Layout', rawProps);\n return (\n <div\n {...props}\n ref={ref}\n className={classes('leaf-layout', `leaf-layout--${direction}`, className)}\n />\n );\n});\nexport interface LayoutSiderProps extends HTMLAttributes<HTMLElement> {\n width?: number | string;\n collapsedWidth?: number | string;\n collapsed?: boolean;\n defaultCollapsed?: boolean;\n collapsible?: boolean;\n breakpoint?: number;\n onCollapse?: (collapsed: boolean) => void;\n trigger?: ReactNode;\n}\nexport const LayoutSider = forwardRef<HTMLElement, LayoutSiderProps>(function LayoutSider(\n rawProps: LayoutSiderProps,\n ref,\n) {\n const {\n width = 220,\n collapsedWidth = 64,\n collapsed,\n defaultCollapsed = false,\n collapsible = false,\n breakpoint,\n onCollapse,\n trigger,\n className,\n children,\n style,\n ...props\n } = useComponentProps('LayoutSider', rawProps);\n const t = useText();\n const [compact, setCompact] = useControllable(collapsed, defaultCollapsed, onCollapse);\n const [narrow, setNarrow] = useState(false);\n useEffect(() => {\n if (breakpoint === undefined) return;\n const query = matchMedia(`(max-width: ${breakpoint}px)`);\n const update = () => setNarrow(query.matches);\n update();\n query.addEventListener('change', update);\n return () => query.removeEventListener('change', update);\n }, [breakpoint]);\n const folded = compact || narrow;\n return (\n <aside\n {...props}\n ref={ref}\n className={classes('leaf-layout__sider', className)}\n data-collapsed={folded || undefined}\n style={{ width: folded ? collapsedWidth : width, ...style }}\n >\n <ScrollbarControl className=\"leaf-layout__sider-content\" role=\"presentation\" tabIndex={-1}>\n {children}\n </ScrollbarControl>\n {collapsible && !narrow && (\n <ButtonControl\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setCompact(!compact)}\n aria-expanded={!folded}\n aria-label={folded ? t('layout.expandSidebar') : t('layout.collapseSidebar')}\n >\n {trigger ?? (folded ? t('layout.expandSidebar') : t('layout.collapseSidebar'))}\n </ButtonControl>\n )}\n </aside>\n );\n});\nexport const LayoutHeader = forwardRef<HTMLElement, HTMLAttributes<HTMLElement>>(\n function LayoutHeader(rawProps: HTMLAttributes<HTMLElement>, ref) {\n const { className, ...props } = useComponentProps('LayoutHeader', rawProps);\n return <header {...props} ref={ref} className={classes('leaf-layout__header', className)} />;\n },\n);\nexport const LayoutContent = forwardRef<HTMLElement, HTMLAttributes<HTMLElement>>(\n function LayoutContent(rawProps: HTMLAttributes<HTMLElement>, ref) {\n const { className, ...props } = useComponentProps('LayoutContent', rawProps);\n return <main {...props} ref={ref} className={classes('leaf-layout__content', className)} />;\n },\n);\nexport const LayoutFooter = forwardRef<HTMLElement, HTMLAttributes<HTMLElement>>(\n function LayoutFooter(rawProps: HTMLAttributes<HTMLElement>, ref) {\n const { className, ...props } = useComponentProps('LayoutFooter', rawProps);\n return <footer {...props} ref={ref} className={classes('leaf-layout__footer', className)} />;\n },\n);\nexport const Layout = Object.assign(LayoutRoot, {\n Header: LayoutHeader,\n Sider: LayoutSider,\n Content: LayoutContent,\n Footer: LayoutFooter,\n});\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","LayoutRoot","forwardRef","rawProps","ref","direction","className","props","useComponentProps","classes","LayoutSider","width","collapsedWidth","collapsed","defaultCollapsed","collapsible","breakpoint","onCollapse","trigger","children","style","t","useText","compact","setCompact","useControllable","narrow","setNarrow","useState","useEffect","undefined","query","matchMedia","update","folded","ScrollbarControl","ButtonControl","LayoutHeader","LayoutContent","LayoutFooter","Layout"],"mappings":"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"}
@@ -46,7 +46,7 @@ const defaultPrefixes = [
46
46
  '@'
47
47
  ];
48
48
  const mentions_Mentions = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(function(rawProps, ref) {
49
- const { value, defaultValue = '', onChange, onSearch, onSelect, options, prefixes = defaultPrefixes, split = ' ', loading, notFoundContent, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('Mentions', rawProps);
49
+ const { value, defaultValue = '', onChange, onSearch, onSelect, options, prefixes = defaultPrefixes, split = ' ', loading, notFoundContent, popupWidth = 'trigger', popupMaxWidth, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('Mentions', rawProps);
50
50
  const input = (0, external_react_namespaceObject.useRef)(null), panel = (0, external_react_namespaceObject.useRef)(null), merged = (0, field_cjs_namespaceObject.useMergedRef)(input, ref), id = (0, external_react_namespaceObject.useId)(), field = (0, form_cjs_namespaceObject.useFormField)();
51
51
  const { messages } = (0, context_cjs_namespaceObject.useLeafConfig)();
52
52
  const [text, setText] = (0, field_cjs_namespaceObject.useFieldValue)(value, defaultValue, input, props.form);
@@ -147,7 +147,9 @@ const mentions_Mentions = /*#__PURE__*/ (0, external_react_namespaceObject.forwa
147
147
  open: open,
148
148
  triggerRef: input,
149
149
  panelRef: panel,
150
- matchWidth: true,
150
+ matchWidth: 'trigger' === popupWidth,
151
+ width: 'trigger' === popupWidth ? void 0 : 'auto' === popupWidth ? 'max-content' : popupWidth,
152
+ maxWidth: popupMaxWidth,
151
153
  placement: popupPlacement,
152
154
  style: popupStyle,
153
155
  render: popupRender,
@@ -1 +1 @@
1
- {"version":3,"file":"mentions/mentions.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/mentions/mentions.tsx"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { forwardRef, type ReactNode, useId, useRef, useState } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { useFormField } from '../form/form';\nimport { classes } from '../shared/classes';\nimport { useFieldValue, useMergedRef } from '../shared/field';\nimport { FloatingPanel, type PopupOptions, useFloatingDismiss } from '../shared/floating';\nimport type { TextareaProps } from '../textarea';\nimport { TextareaControl as Textarea } from '../textarea/textarea';\nexport interface MentionOption {\n value: string;\n label?: ReactNode;\n searchLabel?: string;\n disabled?: boolean;\n}\nexport interface MentionsProps\n extends Omit<TextareaProps, 'value' | 'defaultValue' | 'onChange' | 'onSelect'>,\n PopupOptions {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onSearch?: (query: string, prefix: string) => void;\n onSelect?: (option: MentionOption, prefix: string) => void;\n options: readonly MentionOption[];\n prefixes?: readonly string[];\n split?: string;\n loading?: boolean;\n notFoundContent?: ReactNode;\n}\nconst defaultPrefixes = ['@'];\nexport const Mentions = forwardRef<HTMLTextAreaElement, MentionsProps>(function Mentions(\n rawProps: MentionsProps,\n ref,\n) {\n const {\n value,\n defaultValue = '',\n onChange,\n onSearch,\n onSelect,\n options,\n prefixes = defaultPrefixes,\n split = ' ',\n loading,\n notFoundContent,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n ...props\n } = useComponentProps('Mentions', rawProps);\n const input = useRef<HTMLTextAreaElement>(null),\n panel = useRef<HTMLDivElement>(null),\n merged = useMergedRef(input, ref),\n id = useId(),\n field = useFormField();\n const { messages } = useLeafConfig();\n const [text, setText] = useFieldValue(value, defaultValue, input, props.form);\n const [match, setMatch] = useState<{\n start: number;\n end: number;\n prefix: string;\n query: string;\n } | null>(null),\n [active, setActive] = useState(0);\n const disabled = props.disabled || field?.disabled || props.readOnly;\n const find = (value: string, cursor: number) => {\n const before = value.slice(0, cursor);\n let found: typeof match = null;\n for (const prefix of prefixes) {\n const start = before.lastIndexOf(prefix);\n if (start < 0 || (start > 0 && !/\\s/.test(before[start - 1] ?? ''))) continue;\n const query = before.slice(start + prefix.length);\n if (/\\s/.test(query)) continue;\n if (!found || start > found.start) found = { start, end: cursor, prefix, query };\n }\n setMatch(found);\n setActive(0);\n if (found) onSearch?.(found.query, found.prefix);\n };\n const list = options.filter((option) =>\n (option.searchLabel ?? (typeof option.label === 'string' ? option.label : option.value))\n .toLocaleLowerCase()\n .includes(match?.query.toLocaleLowerCase() ?? ''),\n );\n const select = (option: MentionOption) => {\n if (!match || disabled || option.disabled) return;\n const insertion = match.prefix + option.value + split;\n const next = text.slice(0, match.start) + insertion + text.slice(match.end);\n setText(next);\n onChange?.(next);\n onSelect?.(option, match.prefix);\n setMatch(null);\n requestAnimationFrame(() => {\n input.current?.focus();\n input.current?.setSelectionRange(\n match.start + insertion.length,\n match.start + insertion.length,\n );\n });\n };\n const open = !!match && !disabled;\n useFloatingDismiss(open, () => setMatch(null), input, panel);\n return (\n <>\n <Textarea\n {...props}\n className={classes('leaf-mentions', props.className)}\n ref={merged}\n value={text}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? id : undefined}\n aria-activedescendant={open && list[active] ? `${id}-${active}` : undefined}\n onChange={(event) => {\n setText(event.target.value);\n onChange?.(event.target.value);\n if (!(event.nativeEvent as InputEvent).isComposing)\n find(event.target.value, event.target.selectionStart);\n }}\n onCompositionEnd={(event) => {\n props.onCompositionEnd?.(event);\n find(event.currentTarget.value, event.currentTarget.selectionStart);\n }}\n onClick={(event) => {\n props.onClick?.(event);\n find(event.currentTarget.value, event.currentTarget.selectionStart);\n }}\n onSelect={(event) => {\n find(event.currentTarget.value, event.currentTarget.selectionStart);\n }}\n onKeyDown={(event) => {\n props.onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || !open) return;\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n event.preventDefault();\n let next = active;\n for (let i = 0; i < list.length; i++) {\n next = (next + (event.key === 'ArrowDown' ? 1 : -1) + list.length) % list.length;\n if (!list[next]?.disabled) break;\n }\n setActive(next);\n }\n const option = list[active];\n if (event.key === 'Enter' && option) {\n event.preventDefault();\n select(option);\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n setMatch(null);\n }\n }}\n />\n <FloatingPanel\n open={open}\n triggerRef={input}\n panelRef={panel}\n matchWidth\n placement={popupPlacement}\n style={popupStyle}\n render={popupRender}\n container={getPopupContainer}\n className={classes('leaf-floating', 'leaf-mentions__panel', popupClassName)}\n data-selection=\"candidate\"\n role=\"listbox\"\n id={id}\n aria-label={messages.common.search}\n >\n {list.length ? (\n list.map((option, index) => (\n <button\n key={option.value}\n id={`${id}-${index}`}\n type=\"button\"\n role=\"option\"\n aria-selected={active === index}\n disabled={option.disabled}\n tabIndex={-1}\n className=\"leaf-floating__option\"\n onMouseDown={(event) => event.preventDefault()}\n onMouseEnter={() => !option.disabled && setActive(index)}\n onClick={() => select(option)}\n >\n <span className=\"leaf-mentions__prefix\" aria-hidden=\"true\">\n {match?.prefix}\n </span>\n {option.label ?? option.value}\n </button>\n ))\n ) : (\n <div className=\"leaf-floating__empty\">\n {loading ? messages.common.loading : (notFoundContent ?? messages.select.empty)}\n </div>\n )}\n </FloatingPanel>\n </>\n );\n});\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","defaultPrefixes","Mentions","forwardRef","rawProps","ref","value","defaultValue","onChange","onSearch","onSelect","options","prefixes","split","loading","notFoundContent","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","props","useComponentProps","input","useRef","panel","merged","useMergedRef","id","useId","field","useFormField","messages","useLeafConfig","text","setText","useFieldValue","match","setMatch","useState","active","setActive","disabled","find","cursor","before","found","prefix","start","query","list","option","select","insertion","next","requestAnimationFrame","open","useFloatingDismiss","Textarea","classes","undefined","event","i","FloatingPanel","index"],"mappings":"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"}
1
+ {"version":3,"file":"mentions/mentions.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/mentions/mentions.tsx"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { forwardRef, type ReactNode, useId, useRef, useState } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { useFormField } from '../form/form';\nimport { classes } from '../shared/classes';\nimport { useFieldValue, useMergedRef } from '../shared/field';\nimport { FloatingPanel, type PopupOptions, useFloatingDismiss } from '../shared/floating';\nimport type { TextareaProps } from '../textarea';\nimport { TextareaControl as Textarea } from '../textarea/textarea';\nexport interface MentionOption {\n value: string;\n label?: ReactNode;\n searchLabel?: string;\n disabled?: boolean;\n}\nexport interface MentionsProps\n extends Omit<TextareaProps, 'value' | 'defaultValue' | 'onChange' | 'onSelect'>,\n PopupOptions {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onSearch?: (query: string, prefix: string) => void;\n onSelect?: (option: MentionOption, prefix: string) => void;\n options: readonly MentionOption[];\n prefixes?: readonly string[];\n split?: string;\n loading?: boolean;\n notFoundContent?: ReactNode;\n popupWidth?: number | string;\n popupMaxWidth?: number | string;\n}\nconst defaultPrefixes = ['@'];\nexport const Mentions = forwardRef<HTMLTextAreaElement, MentionsProps>(function Mentions(\n rawProps: MentionsProps,\n ref,\n) {\n const {\n value,\n defaultValue = '',\n onChange,\n onSearch,\n onSelect,\n options,\n prefixes = defaultPrefixes,\n split = ' ',\n loading,\n notFoundContent,\n popupWidth = 'trigger',\n popupMaxWidth,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n ...props\n } = useComponentProps('Mentions', rawProps);\n const input = useRef<HTMLTextAreaElement>(null),\n panel = useRef<HTMLDivElement>(null),\n merged = useMergedRef(input, ref),\n id = useId(),\n field = useFormField();\n const { messages } = useLeafConfig();\n const [text, setText] = useFieldValue(value, defaultValue, input, props.form);\n const [match, setMatch] = useState<{\n start: number;\n end: number;\n prefix: string;\n query: string;\n } | null>(null),\n [active, setActive] = useState(0);\n const disabled = props.disabled || field?.disabled || props.readOnly;\n const find = (value: string, cursor: number) => {\n const before = value.slice(0, cursor);\n let found: typeof match = null;\n for (const prefix of prefixes) {\n const start = before.lastIndexOf(prefix);\n if (start < 0 || (start > 0 && !/\\s/.test(before[start - 1] ?? ''))) continue;\n const query = before.slice(start + prefix.length);\n if (/\\s/.test(query)) continue;\n if (!found || start > found.start) found = { start, end: cursor, prefix, query };\n }\n setMatch(found);\n setActive(0);\n if (found) onSearch?.(found.query, found.prefix);\n };\n const list = options.filter((option) =>\n (option.searchLabel ?? (typeof option.label === 'string' ? option.label : option.value))\n .toLocaleLowerCase()\n .includes(match?.query.toLocaleLowerCase() ?? ''),\n );\n const select = (option: MentionOption) => {\n if (!match || disabled || option.disabled) return;\n const insertion = match.prefix + option.value + split;\n const next = text.slice(0, match.start) + insertion + text.slice(match.end);\n setText(next);\n onChange?.(next);\n onSelect?.(option, match.prefix);\n setMatch(null);\n requestAnimationFrame(() => {\n input.current?.focus();\n input.current?.setSelectionRange(\n match.start + insertion.length,\n match.start + insertion.length,\n );\n });\n };\n const open = !!match && !disabled;\n useFloatingDismiss(open, () => setMatch(null), input, panel);\n return (\n <>\n <Textarea\n {...props}\n className={classes('leaf-mentions', props.className)}\n ref={merged}\n value={text}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? id : undefined}\n aria-activedescendant={open && list[active] ? `${id}-${active}` : undefined}\n onChange={(event) => {\n setText(event.target.value);\n onChange?.(event.target.value);\n if (!(event.nativeEvent as InputEvent).isComposing)\n find(event.target.value, event.target.selectionStart);\n }}\n onCompositionEnd={(event) => {\n props.onCompositionEnd?.(event);\n find(event.currentTarget.value, event.currentTarget.selectionStart);\n }}\n onClick={(event) => {\n props.onClick?.(event);\n find(event.currentTarget.value, event.currentTarget.selectionStart);\n }}\n onSelect={(event) => {\n find(event.currentTarget.value, event.currentTarget.selectionStart);\n }}\n onKeyDown={(event) => {\n props.onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || !open) return;\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n event.preventDefault();\n let next = active;\n for (let i = 0; i < list.length; i++) {\n next = (next + (event.key === 'ArrowDown' ? 1 : -1) + list.length) % list.length;\n if (!list[next]?.disabled) break;\n }\n setActive(next);\n }\n const option = list[active];\n if (event.key === 'Enter' && option) {\n event.preventDefault();\n select(option);\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n setMatch(null);\n }\n }}\n />\n <FloatingPanel\n open={open}\n triggerRef={input}\n panelRef={panel}\n matchWidth={popupWidth === 'trigger'}\n width={\n popupWidth === 'trigger' ? undefined : popupWidth === 'auto' ? 'max-content' : popupWidth\n }\n maxWidth={popupMaxWidth}\n placement={popupPlacement}\n style={popupStyle}\n render={popupRender}\n container={getPopupContainer}\n className={classes('leaf-floating', 'leaf-mentions__panel', popupClassName)}\n data-selection=\"candidate\"\n role=\"listbox\"\n id={id}\n aria-label={messages.common.search}\n >\n {list.length ? (\n list.map((option, index) => (\n <button\n key={option.value}\n id={`${id}-${index}`}\n type=\"button\"\n role=\"option\"\n aria-selected={active === index}\n disabled={option.disabled}\n tabIndex={-1}\n className=\"leaf-floating__option\"\n onMouseDown={(event) => event.preventDefault()}\n onMouseEnter={() => !option.disabled && setActive(index)}\n onClick={() => select(option)}\n >\n <span className=\"leaf-mentions__prefix\" aria-hidden=\"true\">\n {match?.prefix}\n </span>\n {option.label ?? option.value}\n </button>\n ))\n ) : (\n <div className=\"leaf-floating__empty\">\n {loading ? messages.common.loading : (notFoundContent ?? messages.select.empty)}\n </div>\n )}\n </FloatingPanel>\n </>\n );\n});\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","defaultPrefixes","Mentions","forwardRef","rawProps","ref","value","defaultValue","onChange","onSearch","onSelect","options","prefixes","split","loading","notFoundContent","popupWidth","popupMaxWidth","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","props","useComponentProps","input","useRef","panel","merged","useMergedRef","id","useId","field","useFormField","messages","useLeafConfig","text","setText","useFieldValue","match","setMatch","useState","active","setActive","disabled","find","cursor","before","found","prefix","start","query","list","option","select","insertion","next","requestAnimationFrame","open","useFloatingDismiss","Textarea","classes","undefined","event","i","FloatingPanel","index"],"mappings":";;;;;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC,SAASC;QAC1C,IAAIC,SAAS,CAACC,MAAMC;YACnB,IAAI,IAAIC,OAAOF,KACd,IAAGJ,oBAAoB,CAAC,CAACI,MAAME,QAAQ,CAACN,oBAAoB,CAAC,CAAC,UAASM,MACtEC,OAAO,cAAc,CAAC,UAASD,KAAK;gBAAE,YAAY;gBAAM,CAACD,KAAK,EAAED,IAAI,CAACE,IAAI;YAAC;QAG7E;QACAH,OAAOF,SAAS;QAChBE,OAAOD,QAAQ;IAChB;;;ICVAF,oBAAoB,CAAC,GAAG,CAACQ,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFT,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,MAAlB,OAAOU,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;;;;;;ACyBA,MAAMI,kBAAkB;IAAC;CAAI;AACtB,MAAMC,oBAAWC,AAAA,WAAHD,GAAGC,IAAAA,+BAAAA,UAAAA,AAAAA,EAA+C,SACrEC,QAAuB,EACvBC,GAAG;IAEH,MAAM,EACJC,KAAK,EACLC,eAAe,EAAE,EACjBC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,WAAWX,eAAe,EAC1BY,QAAQ,GAAG,EACXC,OAAO,EACPC,eAAe,EACfC,aAAa,SAAS,EACtBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjB,GAAGC,OACJ,GAAGC,AAAAA,IAAAA,uCAAAA,iBAAAA,AAAAA,EAAkB,YAAYpB;IAClC,MAAMqB,QAAQC,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAA4B,OACxCC,QAAQD,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAAuB,OAC/BE,SAASC,AAAAA,IAAAA,0BAAAA,YAAAA,AAAAA,EAAaJ,OAAOpB,MAC7ByB,KAAKC,AAAAA,IAAAA,+BAAAA,KAAAA,AAAAA,KACLC,QAAQC,AAAAA,IAAAA,yBAAAA,YAAAA,AAAAA;IACV,MAAM,EAAEC,QAAQ,EAAE,GAAGC,AAAAA,IAAAA,4BAAAA,aAAAA,AAAAA;IACrB,MAAM,CAACC,MAAMC,QAAQ,GAAGC,AAAAA,IAAAA,0BAAAA,aAAAA,AAAAA,EAAchC,OAAOC,cAAckB,OAAOF,MAAM,IAAI;IAC5E,MAAM,CAACgB,OAAOC,SAAS,GAAGC,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA,EAKd,OACV,CAACC,QAAQC,UAAU,GAAGF,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA,EAAS;IACjC,MAAMG,WAAWrB,MAAM,QAAQ,IAAIS,OAAO,YAAYT,MAAM,QAAQ;IACpE,MAAMsB,OAAO,CAACvC,OAAewC;QAC3B,MAAMC,SAASzC,MAAM,KAAK,CAAC,GAAGwC;QAC9B,IAAIE,QAAsB;QAC1B,KAAK,MAAMC,UAAUrC,SAAU;YAC7B,MAAMsC,QAAQH,OAAO,WAAW,CAACE;YACjC,IAAIC,QAAQ,KAAMA,QAAQ,KAAK,CAAC,KAAK,IAAI,CAACH,MAAM,CAACG,QAAQ,EAAE,IAAI,KAAM;YACrE,MAAMC,QAAQJ,OAAO,KAAK,CAACG,QAAQD,OAAO,MAAM;YAChD,KAAI,KAAK,IAAI,CAACE,QACd;gBAAA,IAAI,CAACH,SAASE,QAAQF,MAAM,KAAK,EAAEA,QAAQ;oBAAEE;oBAAO,KAAKJ;oBAAQG;oBAAQE;gBAAM;YAAC;QAClF;QACAX,SAASQ;QACTL,UAAU;QACV,IAAIK,OAAOvC,WAAWuC,MAAM,KAAK,EAAEA,MAAM,MAAM;IACjD;IACA,MAAMI,OAAOzC,QAAQ,MAAM,CAAC,CAAC0C,SAC1BA,AAAAA,CAAAA,OAAO,WAAW,IAAK,CAAwB,YAAxB,OAAOA,OAAO,KAAK,GAAgBA,OAAO,KAAK,GAAGA,OAAO,KAAI,GAClF,iBAAiB,GACjB,QAAQ,CAACd,OAAO,MAAM,uBAAuB;IAElD,MAAMe,SAAS,CAACD;QACd,IAAI,CAACd,SAASK,YAAYS,OAAO,QAAQ,EAAE;QAC3C,MAAME,YAAYhB,MAAM,MAAM,GAAGc,OAAO,KAAK,GAAGxC;QAChD,MAAM2C,OAAOpB,KAAK,KAAK,CAAC,GAAGG,MAAM,KAAK,IAAIgB,YAAYnB,KAAK,KAAK,CAACG,MAAM,GAAG;QAC1EF,QAAQmB;QACRhD,WAAWgD;QACX9C,WAAW2C,QAAQd,MAAM,MAAM;QAC/BC,SAAS;QACTiB,sBAAsB;YACpBhC,MAAM,OAAO,EAAE;YACfA,MAAM,OAAO,EAAE,kBACbc,MAAM,KAAK,GAAGgB,UAAU,MAAM,EAC9BhB,MAAM,KAAK,GAAGgB,UAAU,MAAM;QAElC;IACF;IACA,MAAMG,OAAO,CAAC,CAACnB,SAAS,CAACK;IACzBe,IAAAA,6BAAAA,kBAAAA,AAAAA,EAAmBD,MAAM,IAAMlB,SAAS,OAAOf,OAAOE;IACtD,OACE,AADK,WAAP,GACE;;0BACE,qCAACiC,6BAAAA,eAAQA,EAAAA;gBACN,GAAGrC,KAAK;gBACT,WAAWsC,AAAAA,IAAAA,4BAAAA,OAAAA,AAAAA,EAAQ,iBAAiBtC,MAAM,SAAS;gBACnD,KAAKK;gBACL,OAAOQ;gBACP,MAAK;gBACL,qBAAkB;gBAClB,iBAAc;gBACd,iBAAesB;gBACf,iBAAeA,OAAO5B,KAAKgC;gBAC3B,yBAAuBJ,QAAQN,IAAI,CAACV,OAAO,GAAG,GAAGZ,GAAG,CAAC,EAAEY,QAAQ,GAAGoB;gBAClE,UAAU,CAACC;oBACT1B,QAAQ0B,MAAM,MAAM,CAAC,KAAK;oBAC1BvD,WAAWuD,MAAM,MAAM,CAAC,KAAK;oBAC7B,IAAI,CAAEA,MAAM,WAAW,CAAgB,WAAW,EAChDlB,KAAKkB,MAAM,MAAM,CAAC,KAAK,EAAEA,MAAM,MAAM,CAAC,cAAc;gBACxD;gBACA,kBAAkB,CAACA;oBACjBxC,MAAM,gBAAgB,GAAGwC;oBACzBlB,KAAKkB,MAAM,aAAa,CAAC,KAAK,EAAEA,MAAM,aAAa,CAAC,cAAc;gBACpE;gBACA,SAAS,CAACA;oBACRxC,MAAM,OAAO,GAAGwC;oBAChBlB,KAAKkB,MAAM,aAAa,CAAC,KAAK,EAAEA,MAAM,aAAa,CAAC,cAAc;gBACpE;gBACA,UAAU,CAACA;oBACTlB,KAAKkB,MAAM,aAAa,CAAC,KAAK,EAAEA,MAAM,aAAa,CAAC,cAAc;gBACpE;gBACA,WAAW,CAACA;oBACVxC,MAAM,SAAS,GAAGwC;oBAClB,IAAIA,MAAM,gBAAgB,IAAIA,MAAM,WAAW,CAAC,WAAW,IAAI,CAACL,MAAM;oBACtE,IAAI;wBAAC;wBAAW;qBAAY,CAAC,QAAQ,CAACK,MAAM,GAAG,GAAG;wBAChDA,MAAM,cAAc;wBACpB,IAAIP,OAAOd;wBACX,IAAK,IAAIsB,IAAI,GAAGA,IAAIZ,KAAK,MAAM,EAAEY,IAAK;4BACpCR,OAAQA,AAAAA,CAAAA,OAAQO,CAAAA,AAAc,gBAAdA,MAAM,GAAG,GAAmB,IAAI,EAAC,IAAKX,KAAK,MAAK,IAAKA,KAAK,MAAM;4BAChF,IAAI,CAACA,IAAI,CAACI,KAAK,EAAE,UAAU;wBAC7B;wBACAb,UAAUa;oBACZ;oBACA,MAAMH,SAASD,IAAI,CAACV,OAAO;oBAC3B,IAAIqB,AAAc,YAAdA,MAAM,GAAG,IAAgBV,QAAQ;wBACnCU,MAAM,cAAc;wBACpBT,OAAOD;oBACT;oBACA,IAAIU,AAAc,aAAdA,MAAM,GAAG,EAAe;wBAC1BA,MAAM,cAAc;wBACpBvB,SAAS;oBACX;gBACF;;0BAEF,qCAACyB,6BAAAA,aAAaA,EAAAA;gBACZ,MAAMP;gBACN,YAAYjC;gBACZ,UAAUE;gBACV,YAAYX,AAAe,cAAfA;gBACZ,OACEA,AAAe,cAAfA,aAA2B8C,SAAY9C,AAAe,WAAfA,aAAwB,gBAAgBA;gBAEjF,UAAUC;gBACV,WAAWC;gBACX,OAAOE;gBACP,QAAQC;gBACR,WAAWC;gBACX,WAAWuC,AAAAA,IAAAA,4BAAAA,OAAAA,AAAAA,EAAQ,iBAAiB,wBAAwB1C;gBAC5D,kBAAe;gBACf,MAAK;gBACL,IAAIW;gBACJ,cAAYI,SAAS,MAAM,CAAC,MAAM;0BAEjCkB,KAAK,MAAM,GACVA,KAAK,GAAG,CAAC,CAACC,QAAQa,QAChB,AADgBA,WAAAA,GAChB,sCAAC;wBAEC,IAAI,GAAGpC,GAAG,CAAC,EAAEoC,OAAO;wBACpB,MAAK;wBACL,MAAK;wBACL,iBAAexB,WAAWwB;wBAC1B,UAAUb,OAAO,QAAQ;wBACzB,UAAU;wBACV,WAAU;wBACV,aAAa,CAACU,QAAUA,MAAM,cAAc;wBAC5C,cAAc,IAAM,CAACV,OAAO,QAAQ,IAAIV,UAAUuB;wBAClD,SAAS,IAAMZ,OAAOD;;0CAEtB,qCAAC;gCAAK,WAAU;gCAAwB,eAAY;0CACjDd,OAAO;;4BAETc,OAAO,KAAK,IAAIA,OAAO,KAAK;;uBAfxBA,OAAO,KAAK,KAmBrB,AAnBqB,cAmBrB,qCAAC;oBAAI,WAAU;8BACZvC,UAAUoB,SAAS,MAAM,CAAC,OAAO,GAAInB,mBAAmBmB,SAAS,MAAM,CAAC,KAAK;;;;;AAM1F"}
@@ -29,12 +29,15 @@ var __webpack_require__ = {};
29
29
  var __webpack_exports__ = {};
30
30
  __webpack_require__.r(__webpack_exports__);
31
31
  __webpack_require__.d(__webpack_exports__, {
32
- Menu: ()=>external_menu_cjs_namespaceObject.Menu
32
+ Menu: ()=>external_menu_cjs_namespaceObject.Menu,
33
+ MenuGroup: ()=>external_menu_cjs_namespaceObject.MenuGroup
33
34
  });
34
35
  const external_menu_cjs_namespaceObject = require("./menu.cjs");
35
36
  exports.Menu = __webpack_exports__.Menu;
37
+ exports.MenuGroup = __webpack_exports__.MenuGroup;
36
38
  for(var __rspack_i in __webpack_exports__)if (-1 === [
37
- "Menu"
39
+ "Menu",
40
+ "MenuGroup"
38
41
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
39
42
  Object.defineProperty(exports, '__esModule', {
40
43
  value: true
@@ -31,7 +31,8 @@ var __webpack_require__ = {};
31
31
  var __webpack_exports__ = {};
32
32
  __webpack_require__.r(__webpack_exports__);
33
33
  __webpack_require__.d(__webpack_exports__, {
34
- Menu: ()=>Menu
34
+ Menu: ()=>Menu,
35
+ MenuGroup: ()=>menu_MenuGroup
35
36
  });
36
37
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
37
38
  const external_lucide_react_namespaceObject = require("lucide-react");
@@ -44,6 +45,32 @@ const inert_cjs_namespaceObject = require("../shared/inert.cjs");
44
45
  const use_controllable_cjs_namespaceObject = require("../shared/use-controllable.cjs");
45
46
  const use_text_cjs_namespaceObject = require("../shared/use-text.cjs");
46
47
  const use_moving_indicator_cjs_namespaceObject = require("../tabs/use-moving-indicator.cjs");
48
+ const menu_MenuGroupControl = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(function({ title, children, className, ...props }, ref) {
49
+ const titleId = (0, external_react_namespaceObject.useId)();
50
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
51
+ role: "group",
52
+ "aria-labelledby": void 0 !== props['aria-label'] ? void 0 : titleId,
53
+ ...props,
54
+ ref: ref,
55
+ className: (0, classes_cjs_namespaceObject.classes)('leaf-menu__group', className),
56
+ children: [
57
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
58
+ id: titleId,
59
+ className: "leaf-menu__group-label",
60
+ children: title
61
+ }),
62
+ children
63
+ ]
64
+ });
65
+ });
66
+ const menu_MenuGroup = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(function(rawProps, ref) {
67
+ const props = (0, component_defaults_cjs_namespaceObject.useComponentProps)('MenuGroup', rawProps);
68
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(menu_MenuGroupControl, {
69
+ ...props,
70
+ ref: ref,
71
+ className: (0, classes_cjs_namespaceObject.classes)('leaf-menu-group', props.className)
72
+ });
73
+ });
47
74
  function MenuSubmenu({ open, id, label, children }) {
48
75
  const [visited, setVisited] = (0, external_react_namespaceObject.useState)(open);
49
76
  if (open && !visited) setVisited(true);
@@ -106,16 +133,9 @@ function Menu(rawProps) {
106
133
  if ('divider' === item.type) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("hr", {
107
134
  className: "leaf-menu__divider"
108
135
  }, item.key);
109
- if ('group' === item.type) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("fieldset", {
110
- "aria-label": 'string' == typeof item.label ? item.label : void 0,
111
- className: "leaf-menu__group",
112
- children: [
113
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("legend", {
114
- className: "leaf-menu__group-label",
115
- children: item.label
116
- }),
117
- renderItems(item.children ?? [], depth)
118
- ]
136
+ if ('group' === item.type) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(menu_MenuGroupControl, {
137
+ title: item.label,
138
+ children: renderItems(item.children ?? [], depth)
119
139
  }, item.key);
120
140
  const expanded = opened.includes(item.key);
121
141
  const hasChildren = Boolean(item.children?.length);
@@ -149,7 +169,7 @@ function Menu(rawProps) {
149
169
  'aria-disabled': item.disabled || void 0,
150
170
  'aria-expanded': hasChildren ? expanded : void 0,
151
171
  'aria-controls': hasChildren ? `${id}-${item.key}` : void 0,
152
- 'data-selected': selected === item.key || void 0,
172
+ 'data-selected': selected === item.key || ('horizontal' === mode || collapsed) && hasChildren && hasSelected(item) || void 0,
153
173
  'data-active-parent': hasChildren && hasSelected(item) || void 0,
154
174
  'data-danger': item.danger || void 0,
155
175
  className: (0, classes_cjs_namespaceObject.classes)('leaf-menu__item', 'function' == typeof itemClassName ? itemClassName(item) : itemClassName),
@@ -175,6 +195,12 @@ function Menu(rawProps) {
175
195
  className: "leaf-menu__entry",
176
196
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(dropdown_cjs_namespaceObject.DropdownControl, {
177
197
  items: convert(item.children ?? []),
198
+ navigation: {
199
+ selectedKey: selected,
200
+ title: collapsed ? item.label : void 0
201
+ },
202
+ popupWidth: 208,
203
+ popupPlacement: collapsed ? 'rtl' === direction ? 'left-start' : 'right-start' : 'bottom-start',
178
204
  open: expanded,
179
205
  disabled: item.disabled,
180
206
  onOpenChange: (next)=>setOpened(next ? [
@@ -183,6 +209,14 @@ function Menu(rawProps) {
183
209
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
184
210
  ...common,
185
211
  type: "button",
212
+ onKeyDown: (event)=>{
213
+ if (collapsed && event.key === ('rtl' === direction ? 'ArrowLeft' : 'ArrowRight')) {
214
+ event.preventDefault();
215
+ if (!item.disabled) setOpened([
216
+ item.key
217
+ ]);
218
+ }
219
+ },
186
220
  children: content
187
221
  })
188
222
  })
@@ -263,7 +297,13 @@ function Menu(rawProps) {
263
297
  if (event.key === ('rtl' === direction ? 'ArrowLeft' : 'ArrowRight')) {
264
298
  event.preventDefault();
265
299
  if (item.children?.length) if (opened.includes(item.key)) {
266
- const child = item.children.find((entry)=>!entry.disabled && 'divider' !== entry.type);
300
+ const firstEnabled = (entries)=>{
301
+ for (const entry of entries)if ('group' === entry.type) {
302
+ const child = firstEnabled(entry.children ?? []);
303
+ if (child) return child;
304
+ } else if (!entry.disabled && 'divider' !== entry.type) return entry;
305
+ };
306
+ const child = firstEnabled(item.children);
267
307
  if (child) focusItem(child.key);
268
308
  } else setOpened([
269
309
  ...opened,
@@ -275,15 +315,15 @@ function Menu(rawProps) {
275
315
  event.preventDefault();
276
316
  if (opened.includes(item.key)) toggle(item.key);
277
317
  else {
278
- const parentOf = (entries)=>{
318
+ const parentOf = (entries, parentItem)=>{
279
319
  for (const entry of entries){
280
- if (entry.children?.some((child)=>child.key === item.key)) return entry;
281
- const parent = parentOf(entry.children ?? []);
320
+ if (entry.key === item.key) return parentItem;
321
+ const parent = parentOf(entry.children ?? [], 'group' === entry.type ? parentItem : entry);
282
322
  if (parent) return parent;
283
323
  }
284
324
  };
285
325
  const parent = parentOf(items);
286
- if (parent && 'group' !== parent.type) focusItem(parent.key);
326
+ if (parent) focusItem(parent.key);
287
327
  }
288
328
  return;
289
329
  }
@@ -307,8 +347,10 @@ function Menu(rawProps) {
307
347
  });
308
348
  }
309
349
  exports.Menu = __webpack_exports__.Menu;
350
+ exports.MenuGroup = __webpack_exports__.MenuGroup;
310
351
  for(var __rspack_i in __webpack_exports__)if (-1 === [
311
- "Menu"
352
+ "Menu",
353
+ "MenuGroup"
312
354
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
313
355
  Object.defineProperty(exports, '__esModule', {
314
356
  value: true
@@ -1 +1 @@
1
- {"version":3,"file":"menu/menu.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/menu/menu.tsx"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { ChevronDown } from 'lucide-react';\nimport { type HTMLAttributes, type ReactNode, useId, useRef, useState } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport type { DropdownItem } from '../dropdown';\nimport { DropdownControl as Dropdown } from '../dropdown/dropdown';\nimport { classes } from '../shared/classes';\nimport { inertProps } from '../shared/inert';\nimport { useControllable } from '../shared/use-controllable';\nimport { useText } from '../shared/use-text';\nimport { useMovingIndicator } from '../tabs/use-moving-indicator';\nexport interface MenuItem {\n key: string;\n label: ReactNode;\n icon?: ReactNode;\n href?: string;\n disabled?: boolean;\n danger?: boolean;\n children?: readonly MenuItem[];\n type?: 'item' | 'group' | 'divider';\n}\nexport interface MenuProps extends Omit<HTMLAttributes<HTMLElement>, 'onSelect'> {\n items: readonly MenuItem[];\n mode?: 'vertical' | 'horizontal' | 'inline';\n selectedKey?: string;\n defaultSelectedKey?: string;\n onSelect?: (key: string, item: MenuItem) => void;\n openKeys?: readonly string[];\n defaultOpenKeys?: readonly string[];\n onOpenChange?: (keys: string[]) => void;\n collapsed?: boolean;\n itemRender?: (item: MenuItem, content: ReactNode) => ReactNode;\n linkRender?: (item: MenuItem, link: ReactNode) => ReactNode;\n itemClassName?: string | ((item: MenuItem) => string);\n}\nfunction MenuSubmenu({\n open,\n id,\n label,\n children,\n}: {\n open: boolean;\n id: string;\n label?: string;\n children: () => ReactNode;\n}) {\n const [visited, setVisited] = useState(open);\n if (open && !visited) setVisited(true);\n return (\n <div\n id={id}\n role=\"menu\"\n className=\"leaf-menu__submenu\"\n aria-label={label}\n aria-hidden={!open || undefined}\n {...inertProps(!open)}\n data-open={open || undefined}\n >\n <div className=\"leaf-menu__submenu-inner\">\n <div className=\"leaf-menu__submenu-content\">{visited && children()}</div>\n </div>\n </div>\n );\n}\nexport function Menu(rawProps: MenuProps) {\n const {\n items,\n mode = 'vertical',\n selectedKey,\n defaultSelectedKey = '',\n onSelect,\n openKeys,\n defaultOpenKeys = [],\n onOpenChange,\n collapsed = false,\n itemRender,\n linkRender,\n itemClassName,\n className,\n ...props\n } = useComponentProps('Menu', rawProps);\n const t = useText();\n const { direction } = useLeafConfig();\n const id = useId();\n const root = useRef<HTMLElement>(null);\n const indicator = useRef<HTMLSpanElement>(null);\n const [selected, setSelected] = useControllable(selectedKey, defaultSelectedKey);\n const [active, setActive] = useState<string | undefined>(undefined);\n const [opened, setOpened] = useControllable<readonly string[]>(\n openKeys,\n defaultOpenKeys,\n (keys) => onOpenChange?.([...keys]),\n );\n useMovingIndicator(\n root,\n indicator,\n '[data-selected=\"true\"]',\n `${selected}-${collapsed}-${mode}-${direction}-${opened.join(',')}`,\n );\n const toggle = (key: string) =>\n setOpened(opened.includes(key) ? opened.filter((value) => value !== key) : [...opened, key]);\n const hasSelected = (item: MenuItem): boolean =>\n item.key === selected || Boolean(item.children?.some(hasSelected));\n const visibleItems: MenuItem[] = [];\n const collect = (entries: readonly MenuItem[]) => {\n for (const item of entries) {\n if (item.type === 'group') collect(item.children ?? []);\n else if (item.type !== 'divider') {\n if (!item.disabled) visibleItems.push(item);\n if (opened.includes(item.key) && mode !== 'horizontal' && !collapsed)\n collect(item.children ?? []);\n }\n }\n };\n collect(items);\n const focusKey = visibleItems.some((item) => item.key === active)\n ? active\n : (visibleItems.find((item) => item.key === selected)?.key ?? visibleItems[0]?.key);\n const convert = (entries: readonly MenuItem[]): DropdownItem[] =>\n entries.map((item) => ({\n ...item,\n children: item.children ? convert(item.children) : undefined,\n onClick: () => {\n if (!item.children?.length) {\n setSelected(item.key);\n onSelect?.(item.key, item);\n }\n },\n }));\n const renderItems = (entries: readonly MenuItem[], depth: number): ReactNode =>\n entries.map((item) => {\n if (item.type === 'divider') return <hr className=\"leaf-menu__divider\" key={item.key} />;\n if (item.type === 'group')\n return (\n <fieldset\n aria-label={typeof item.label === 'string' ? item.label : undefined}\n key={item.key}\n className=\"leaf-menu__group\"\n >\n <legend className=\"leaf-menu__group-label\">{item.label}</legend>\n {renderItems(item.children ?? [], depth)}\n </fieldset>\n );\n const expanded = opened.includes(item.key);\n const hasChildren = Boolean(item.children?.length);\n const originalContent = (\n <>\n {item.icon && (\n <span className=\"leaf-menu__icon\" aria-hidden=\"true\">\n {item.icon}\n </span>\n )}\n {!item.icon && collapsed && (\n <span className=\"leaf-menu__icon\" aria-hidden=\"true\">\n {typeof item.label === 'string' ? item.label.slice(0, 1) : '·'}\n </span>\n )}\n <span className=\"leaf-menu__label\">{item.label}</span>\n {hasChildren && <ChevronDown className=\"leaf-menu__arrow\" size={14} aria-hidden=\"true\" />}\n </>\n );\n const content = itemRender?.(item, originalContent) ?? originalContent;\n const common = {\n role: 'menuitem',\n 'aria-current': selected === item.key ? ('page' as const) : undefined,\n 'aria-disabled': item.disabled || undefined,\n 'aria-expanded': hasChildren ? expanded : undefined,\n 'aria-controls': hasChildren ? `${id}-${item.key}` : undefined,\n 'data-selected': selected === item.key || undefined,\n 'data-active-parent': (hasChildren && hasSelected(item)) || undefined,\n 'data-danger': item.danger || undefined,\n className: classes(\n 'leaf-menu__item',\n typeof itemClassName === 'function' ? itemClassName(item) : itemClassName,\n ),\n tabIndex: !item.disabled && focusKey === item.key ? 0 : -1,\n 'data-menu-key': item.key,\n 'data-leaf-indicator-item': '',\n 'aria-label': collapsed && typeof item.label === 'string' ? item.label : undefined,\n onFocus: () => setActive(item.key),\n title: collapsed && typeof item.label === 'string' ? item.label : undefined,\n style: { paddingInlineStart: 12 + depth * 16 },\n };\n const activate = () => {\n if (item.disabled) return;\n if (hasChildren) toggle(item.key);\n else {\n setSelected(item.key);\n onSelect?.(item.key, item);\n }\n };\n if (hasChildren && (mode === 'horizontal' || collapsed))\n return (\n <div key={item.key} className=\"leaf-menu__entry\">\n <Dropdown\n items={convert(item.children ?? [])}\n open={expanded}\n disabled={item.disabled}\n onOpenChange={(next) => setOpened(next ? [item.key] : [])}\n >\n <button {...common} type=\"button\">\n {content}\n </button>\n </Dropdown>\n </div>\n );\n return (\n <div key={item.key} className=\"leaf-menu__entry\">\n {item.href && !hasChildren ? (\n ((link: ReactNode) => linkRender?.(item, link) ?? link)(\n <a\n {...common}\n href={item.disabled ? undefined : item.href}\n onClick={(event) => {\n if (item.disabled) event.preventDefault();\n else activate();\n }}\n >\n {content}\n </a>,\n )\n ) : (\n <button {...common} type=\"button\" disabled={item.disabled} onClick={activate}>\n {content}\n </button>\n )}\n {hasChildren && (\n <MenuSubmenu\n id={`${id}-${item.key}`}\n open={expanded}\n label={typeof item.label === 'string' ? item.label : undefined}\n >\n {() => renderItems(item.children ?? [], depth + 1)}\n </MenuSubmenu>\n )}\n </div>\n );\n });\n return (\n <nav\n {...props}\n ref={root}\n className={classes(\n 'leaf-menu',\n `leaf-menu--${mode}`,\n collapsed && 'leaf-menu--collapsed',\n className,\n )}\n aria-label={props['aria-label'] ?? t('menu.navigationMenu')}\n >\n <span ref={indicator} className=\"leaf-menu__indicator\" aria-hidden=\"true\" />\n {/* biome-ignore lint/a11y/noStaticElementInteractions: This container delegates arrow navigation for the menu or menubar role. */}\n <div\n role={mode === 'horizontal' ? 'menubar' : 'menu'}\n onKeyDown={(event) => {\n if (event.defaultPrevented) return;\n if (\n !['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End', 'Escape'].includes(\n event.key,\n )\n )\n return;\n const target = event.target as HTMLElement;\n if (event.key === 'Escape') {\n setOpened([]);\n root.current?.querySelector<HTMLElement>('[role=\"menuitem\"]')?.focus();\n return;\n }\n const choices = [\n ...(root.current?.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not([aria-disabled=\"true\"])',\n ) ?? []),\n ].filter((node) => visibleItems.some((item) => item.key === node.dataset.menuKey));\n const position = choices.indexOf(target.closest('[role=\"menuitem\"]') as HTMLElement);\n const key = choices[position]?.dataset.menuKey;\n const item = visibleItems.find((entry) => entry.key === key);\n const focusItem = (nextKey: string) => {\n setActive(nextKey);\n queueMicrotask(() => {\n const node = [\n ...(root.current?.querySelectorAll<HTMLElement>('[data-menu-key]') ?? []),\n ].find((entry) => entry.dataset.menuKey === nextKey);\n node?.focus();\n });\n };\n if (mode !== 'horizontal' && !collapsed && item) {\n if (event.key === (direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight')) {\n event.preventDefault();\n if (item.children?.length) {\n if (!opened.includes(item.key)) setOpened([...opened, item.key]);\n else {\n const child = item.children.find(\n (entry) => !entry.disabled && entry.type !== 'divider',\n );\n if (child) focusItem(child.key);\n }\n }\n return;\n }\n if (event.key === (direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft')) {\n event.preventDefault();\n if (opened.includes(item.key)) toggle(item.key);\n else {\n const parentOf = (entries: readonly MenuItem[]): MenuItem | undefined => {\n for (const entry of entries) {\n if (entry.children?.some((child) => child.key === item.key)) return entry;\n const parent = parentOf(entry.children ?? []);\n if (parent) return parent;\n }\n return undefined;\n };\n const parent = parentOf(items);\n if (parent && parent.type !== 'group') focusItem(parent.key);\n }\n return;\n }\n }\n if (mode === 'horizontal' && event.key === 'ArrowDown' && item?.children?.length) {\n event.preventDefault();\n setOpened([item.key]);\n return;\n }\n const next =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? choices.length - 1\n : (position +\n (event.key === 'ArrowUp' ||\n event.key === (direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft')\n ? -1\n : 1) +\n choices.length) %\n choices.length;\n event.preventDefault();\n const nextKey = choices[next]?.dataset.menuKey;\n if (nextKey) setActive(nextKey);\n choices[next]?.focus();\n }}\n >\n {renderItems(items, 0)}\n </div>\n </nav>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","MenuSubmenu","open","id","label","children","visited","setVisited","useState","undefined","inertProps","Menu","rawProps","items","mode","selectedKey","defaultSelectedKey","onSelect","openKeys","defaultOpenKeys","onOpenChange","collapsed","itemRender","linkRender","itemClassName","className","props","useComponentProps","t","useText","direction","useLeafConfig","useId","root","useRef","indicator","selected","setSelected","useControllable","active","setActive","opened","setOpened","keys","useMovingIndicator","toggle","value","hasSelected","item","Boolean","visibleItems","collect","entries","focusKey","convert","renderItems","depth","expanded","hasChildren","originalContent","ChevronDown","content","common","classes","activate","Dropdown","next","link","event","target","choices","node","position","entry","focusItem","nextKey","queueMicrotask","child","parentOf","parent"],"mappings":"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"}
1
+ {"version":3,"file":"menu/menu.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/menu/menu.tsx"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { ChevronDown } from 'lucide-react';\nimport { forwardRef, type HTMLAttributes, type ReactNode, useId, useRef, useState } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport type { DropdownItem } from '../dropdown';\nimport { DropdownControl as Dropdown } from '../dropdown/dropdown';\nimport { classes } from '../shared/classes';\nimport { inertProps } from '../shared/inert';\nimport { useControllable } from '../shared/use-controllable';\nimport { useText } from '../shared/use-text';\nimport { useMovingIndicator } from '../tabs/use-moving-indicator';\n\nexport interface MenuGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n title: ReactNode;\n}\n\nconst MenuGroupControl = forwardRef<HTMLDivElement, MenuGroupProps>(function MenuGroupControl(\n { title, children, className, ...props },\n ref,\n) {\n const titleId = useId();\n return (\n // biome-ignore lint/a11y/useSemanticElements: Menu groups and arbitrary sidebar content are not form fieldsets.\n <div\n role=\"group\"\n aria-labelledby={props['aria-label'] !== undefined ? undefined : titleId}\n {...props}\n ref={ref}\n className={classes('leaf-menu__group', className)}\n >\n <div id={titleId} className=\"leaf-menu__group-label\">\n {title}\n </div>\n {children}\n </div>\n );\n});\n\nexport const MenuGroup = forwardRef<HTMLDivElement, MenuGroupProps>(\n function MenuGroup(rawProps, ref) {\n const props = useComponentProps('MenuGroup', rawProps);\n return (\n <MenuGroupControl\n {...props}\n ref={ref}\n className={classes('leaf-menu-group', props.className)}\n />\n );\n },\n);\n\nexport interface MenuItem {\n key: string;\n label: ReactNode;\n icon?: ReactNode;\n href?: string;\n disabled?: boolean;\n danger?: boolean;\n children?: readonly MenuItem[];\n type?: 'item' | 'group' | 'divider';\n}\nexport interface MenuProps extends Omit<HTMLAttributes<HTMLElement>, 'onSelect'> {\n items: readonly MenuItem[];\n mode?: 'vertical' | 'horizontal' | 'inline';\n selectedKey?: string;\n defaultSelectedKey?: string;\n onSelect?: (key: string, item: MenuItem) => void;\n openKeys?: readonly string[];\n defaultOpenKeys?: readonly string[];\n onOpenChange?: (keys: string[]) => void;\n collapsed?: boolean;\n itemRender?: (item: MenuItem, content: ReactNode) => ReactNode;\n linkRender?: (item: MenuItem, link: ReactNode) => ReactNode;\n itemClassName?: string | ((item: MenuItem) => string);\n}\nfunction MenuSubmenu({\n open,\n id,\n label,\n children,\n}: {\n open: boolean;\n id: string;\n label?: string;\n children: () => ReactNode;\n}) {\n const [visited, setVisited] = useState(open);\n if (open && !visited) setVisited(true);\n return (\n <div\n id={id}\n role=\"menu\"\n className=\"leaf-menu__submenu\"\n aria-label={label}\n aria-hidden={!open || undefined}\n {...inertProps(!open)}\n data-open={open || undefined}\n >\n <div className=\"leaf-menu__submenu-inner\">\n <div className=\"leaf-menu__submenu-content\">{visited && children()}</div>\n </div>\n </div>\n );\n}\nexport function Menu(rawProps: MenuProps) {\n const {\n items,\n mode = 'vertical',\n selectedKey,\n defaultSelectedKey = '',\n onSelect,\n openKeys,\n defaultOpenKeys = [],\n onOpenChange,\n collapsed = false,\n itemRender,\n linkRender,\n itemClassName,\n className,\n ...props\n } = useComponentProps('Menu', rawProps);\n const t = useText();\n const { direction } = useLeafConfig();\n const id = useId();\n const root = useRef<HTMLElement>(null);\n const indicator = useRef<HTMLSpanElement>(null);\n const [selected, setSelected] = useControllable(selectedKey, defaultSelectedKey);\n const [active, setActive] = useState<string | undefined>(undefined);\n const [opened, setOpened] = useControllable<readonly string[]>(\n openKeys,\n defaultOpenKeys,\n (keys) => onOpenChange?.([...keys]),\n );\n useMovingIndicator(\n root,\n indicator,\n '[data-selected=\"true\"]',\n `${selected}-${collapsed}-${mode}-${direction}-${opened.join(',')}`,\n );\n const toggle = (key: string) =>\n setOpened(opened.includes(key) ? opened.filter((value) => value !== key) : [...opened, key]);\n const hasSelected = (item: MenuItem): boolean =>\n item.key === selected || Boolean(item.children?.some(hasSelected));\n const visibleItems: MenuItem[] = [];\n const collect = (entries: readonly MenuItem[]) => {\n for (const item of entries) {\n if (item.type === 'group') collect(item.children ?? []);\n else if (item.type !== 'divider') {\n if (!item.disabled) visibleItems.push(item);\n if (opened.includes(item.key) && mode !== 'horizontal' && !collapsed)\n collect(item.children ?? []);\n }\n }\n };\n collect(items);\n const focusKey = visibleItems.some((item) => item.key === active)\n ? active\n : (visibleItems.find((item) => item.key === selected)?.key ?? visibleItems[0]?.key);\n const convert = (entries: readonly MenuItem[]): DropdownItem[] =>\n entries.map((item) => ({\n ...item,\n children: item.children ? convert(item.children) : undefined,\n onClick: () => {\n if (!item.children?.length) {\n setSelected(item.key);\n onSelect?.(item.key, item);\n }\n },\n }));\n const renderItems = (entries: readonly MenuItem[], depth: number): ReactNode =>\n entries.map((item) => {\n if (item.type === 'divider') return <hr className=\"leaf-menu__divider\" key={item.key} />;\n if (item.type === 'group')\n return (\n <MenuGroupControl key={item.key} title={item.label}>\n {renderItems(item.children ?? [], depth)}\n </MenuGroupControl>\n );\n const expanded = opened.includes(item.key);\n const hasChildren = Boolean(item.children?.length);\n const originalContent = (\n <>\n {item.icon && (\n <span className=\"leaf-menu__icon\" aria-hidden=\"true\">\n {item.icon}\n </span>\n )}\n {!item.icon && collapsed && (\n <span className=\"leaf-menu__icon\" aria-hidden=\"true\">\n {typeof item.label === 'string' ? item.label.slice(0, 1) : '·'}\n </span>\n )}\n <span className=\"leaf-menu__label\">{item.label}</span>\n {hasChildren && <ChevronDown className=\"leaf-menu__arrow\" size={14} aria-hidden=\"true\" />}\n </>\n );\n const content = itemRender?.(item, originalContent) ?? originalContent;\n const common = {\n role: 'menuitem',\n 'aria-current': selected === item.key ? ('page' as const) : undefined,\n 'aria-disabled': item.disabled || undefined,\n 'aria-expanded': hasChildren ? expanded : undefined,\n 'aria-controls': hasChildren ? `${id}-${item.key}` : undefined,\n 'data-selected':\n selected === item.key ||\n ((mode === 'horizontal' || collapsed) && hasChildren && hasSelected(item)) ||\n undefined,\n 'data-active-parent': (hasChildren && hasSelected(item)) || undefined,\n 'data-danger': item.danger || undefined,\n className: classes(\n 'leaf-menu__item',\n typeof itemClassName === 'function' ? itemClassName(item) : itemClassName,\n ),\n tabIndex: !item.disabled && focusKey === item.key ? 0 : -1,\n 'data-menu-key': item.key,\n 'data-leaf-indicator-item': '',\n 'aria-label': collapsed && typeof item.label === 'string' ? item.label : undefined,\n onFocus: () => setActive(item.key),\n title: collapsed && typeof item.label === 'string' ? item.label : undefined,\n style: { paddingInlineStart: 12 + depth * 16 },\n };\n const activate = () => {\n if (item.disabled) return;\n if (hasChildren) toggle(item.key);\n else {\n setSelected(item.key);\n onSelect?.(item.key, item);\n }\n };\n if (hasChildren && (mode === 'horizontal' || collapsed))\n return (\n <div key={item.key} className=\"leaf-menu__entry\">\n <Dropdown\n items={convert(item.children ?? [])}\n navigation={{ selectedKey: selected, title: collapsed ? item.label : undefined }}\n popupWidth={208}\n popupPlacement={\n collapsed ? (direction === 'rtl' ? 'left-start' : 'right-start') : 'bottom-start'\n }\n open={expanded}\n disabled={item.disabled}\n onOpenChange={(next) => setOpened(next ? [item.key] : [])}\n >\n <button\n {...common}\n type=\"button\"\n onKeyDown={(event) => {\n if (\n collapsed &&\n event.key === (direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight')\n ) {\n event.preventDefault();\n if (!item.disabled) setOpened([item.key]);\n }\n }}\n >\n {content}\n </button>\n </Dropdown>\n </div>\n );\n return (\n <div key={item.key} className=\"leaf-menu__entry\">\n {item.href && !hasChildren ? (\n ((link: ReactNode) => linkRender?.(item, link) ?? link)(\n <a\n {...common}\n href={item.disabled ? undefined : item.href}\n onClick={(event) => {\n if (item.disabled) event.preventDefault();\n else activate();\n }}\n >\n {content}\n </a>,\n )\n ) : (\n <button {...common} type=\"button\" disabled={item.disabled} onClick={activate}>\n {content}\n </button>\n )}\n {hasChildren && (\n <MenuSubmenu\n id={`${id}-${item.key}`}\n open={expanded}\n label={typeof item.label === 'string' ? item.label : undefined}\n >\n {() => renderItems(item.children ?? [], depth + 1)}\n </MenuSubmenu>\n )}\n </div>\n );\n });\n return (\n <nav\n {...props}\n ref={root}\n className={classes(\n 'leaf-menu',\n `leaf-menu--${mode}`,\n collapsed && 'leaf-menu--collapsed',\n className,\n )}\n aria-label={props['aria-label'] ?? t('menu.navigationMenu')}\n >\n <span ref={indicator} className=\"leaf-menu__indicator\" aria-hidden=\"true\" />\n {/* biome-ignore lint/a11y/noStaticElementInteractions: This container delegates arrow navigation for the menu or menubar role. */}\n <div\n role={mode === 'horizontal' ? 'menubar' : 'menu'}\n onKeyDown={(event) => {\n if (event.defaultPrevented) return;\n if (\n !['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End', 'Escape'].includes(\n event.key,\n )\n )\n return;\n const target = event.target as HTMLElement;\n if (event.key === 'Escape') {\n setOpened([]);\n root.current?.querySelector<HTMLElement>('[role=\"menuitem\"]')?.focus();\n return;\n }\n const choices = [\n ...(root.current?.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not([aria-disabled=\"true\"])',\n ) ?? []),\n ].filter((node) => visibleItems.some((item) => item.key === node.dataset.menuKey));\n const position = choices.indexOf(target.closest('[role=\"menuitem\"]') as HTMLElement);\n const key = choices[position]?.dataset.menuKey;\n const item = visibleItems.find((entry) => entry.key === key);\n const focusItem = (nextKey: string) => {\n setActive(nextKey);\n queueMicrotask(() => {\n const node = [\n ...(root.current?.querySelectorAll<HTMLElement>('[data-menu-key]') ?? []),\n ].find((entry) => entry.dataset.menuKey === nextKey);\n node?.focus();\n });\n };\n if (mode !== 'horizontal' && !collapsed && item) {\n if (event.key === (direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight')) {\n event.preventDefault();\n if (item.children?.length) {\n if (!opened.includes(item.key)) setOpened([...opened, item.key]);\n else {\n const firstEnabled = (entries: readonly MenuItem[]): MenuItem | undefined => {\n for (const entry of entries) {\n if (entry.type === 'group') {\n const child = firstEnabled(entry.children ?? []);\n if (child) return child;\n } else if (!entry.disabled && entry.type !== 'divider') return entry;\n }\n return undefined;\n };\n const child = firstEnabled(item.children);\n if (child) focusItem(child.key);\n }\n }\n return;\n }\n if (event.key === (direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft')) {\n event.preventDefault();\n if (opened.includes(item.key)) toggle(item.key);\n else {\n const parentOf = (\n entries: readonly MenuItem[],\n parentItem?: MenuItem,\n ): MenuItem | undefined => {\n for (const entry of entries) {\n if (entry.key === item.key) return parentItem;\n const parent = parentOf(\n entry.children ?? [],\n entry.type === 'group' ? parentItem : entry,\n );\n if (parent) return parent;\n }\n return undefined;\n };\n const parent = parentOf(items);\n if (parent) focusItem(parent.key);\n }\n return;\n }\n }\n if (mode === 'horizontal' && event.key === 'ArrowDown' && item?.children?.length) {\n event.preventDefault();\n setOpened([item.key]);\n return;\n }\n const next =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? choices.length - 1\n : (position +\n (event.key === 'ArrowUp' ||\n event.key === (direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft')\n ? -1\n : 1) +\n choices.length) %\n choices.length;\n event.preventDefault();\n const nextKey = choices[next]?.dataset.menuKey;\n if (nextKey) setActive(nextKey);\n choices[next]?.focus();\n }}\n >\n {renderItems(items, 0)}\n </div>\n </nav>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","MenuGroupControl","forwardRef","title","children","className","props","ref","titleId","useId","undefined","classes","MenuGroup","rawProps","useComponentProps","MenuSubmenu","open","id","label","visited","setVisited","useState","inertProps","Menu","items","mode","selectedKey","defaultSelectedKey","onSelect","openKeys","defaultOpenKeys","onOpenChange","collapsed","itemRender","linkRender","itemClassName","t","useText","direction","useLeafConfig","root","useRef","indicator","selected","setSelected","useControllable","active","setActive","opened","setOpened","keys","useMovingIndicator","toggle","value","hasSelected","item","Boolean","visibleItems","collect","entries","focusKey","convert","renderItems","depth","expanded","hasChildren","originalContent","ChevronDown","content","common","activate","Dropdown","next","event","link","target","choices","node","position","entry","focusItem","nextKey","queueMicrotask","firstEnabled","child","parentOf","parentItem","parent"],"mappings":"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"}