@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
package/README.md CHANGED
@@ -51,7 +51,7 @@ Browser component entries automatically load theme variables, shared popup style
51
51
  - Alert: inline success, info, warning and error feedback.
52
52
  - Message / useMessage: transient feedback, loading and keyed updates.
53
53
  - Layout / Grid / Row / Col / Space / ScrollArea / Masonry: page structure, responsive columns, spacing and scrolling.
54
- - Segmented / Menu / BackTop: compact selection, nested navigation and scroll-to-top.
54
+ - Tabs / Menu / BackTop: content and view switching, nested navigation and scroll-to-top.
55
55
  - Descriptions / Timeline / QRCode: details, event histories, QR codes.
56
56
  - Image / ImagePreview / ImagePreviewGroup: loading and error states, zoom, galleries, thumbnails and fullscreen.
57
57
  - VirtualList / InfiniteScroll: measured virtual rows and abortable loading.
@@ -46,7 +46,7 @@ const floating_feedback_cjs_namespaceObject = require("../shared/floating-feedba
46
46
  const floating_highlight_cjs_namespaceObject = require("../shared/floating-highlight.cjs");
47
47
  const use_formatted_text_cjs_namespaceObject = require("../shared/use-formatted-text.cjs");
48
48
  const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(function(rawProps, forwardedRef) {
49
- const { options: entries, value, defaultValue = '', size = 'md', status: statusProp, filterOption, disabled: disabledProp, readOnly, className, style, form, onChange, onSelect, onSearch, open: controlledOpen, defaultOpen, onOpenChange, loading, notFoundContent, errorContent, optionRender, allowClear, virtual: virtualProp, listHeight = 248, optionHeight: optionHeightProp, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, onKeyDown, onFocus, autoComplete = 'off', 'aria-label': ariaLabel, 'aria-invalid': ariaInvalid, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('AutoComplete', rawProps);
49
+ const { options: entries, value, defaultValue = '', size = 'md', status: statusProp, filterOption, disabled: disabledProp, readOnly, className, style, form, onChange, onSelect, onSearch, open: controlledOpen, defaultOpen, onOpenChange, loading, notFoundContent, errorContent, optionRender, allowClear, virtual: virtualProp, listHeight = 248, optionHeight: optionHeightProp, popupWidth = 'trigger', popupMaxWidth, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, onKeyDown, onFocus, autoComplete = 'off', 'aria-label': ariaLabel, 'aria-invalid': ariaInvalid, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('AutoComplete', rawProps);
50
50
  const field = (0, form_cjs_namespaceObject.useFormField)();
51
51
  const disabled = disabledProp || field?.disabled;
52
52
  const status = statusProp ?? (field?.error ? 'error' : void 0);
@@ -54,6 +54,7 @@ const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObje
54
54
  const format = (0, use_formatted_text_cjs_namespaceObject.useFormattedText)();
55
55
  const optionHeight = optionHeightProp ?? Math.max(24, (0, external_density_cjs_namespaceObject.estimateControlHeight)(theme, density) - 4);
56
56
  const inputRef = (0, external_react_namespaceObject.useRef)(null);
57
+ const rootRef = (0, external_react_namespaceObject.useRef)(null);
57
58
  const panelRef = (0, external_react_namespaceObject.useRef)(null);
58
59
  const ref = (0, field_cjs_namespaceObject.useMergedRef)(inputRef, forwardedRef);
59
60
  const [text, setText] = (0, field_cjs_namespaceObject.useFieldValue)(value, defaultValue, inputRef, form);
@@ -129,6 +130,7 @@ const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObje
129
130
  }
130
131
  };
131
132
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
133
+ ref: rootRef,
132
134
  className: (0, classes_cjs_namespaceObject.classes)('leaf-autocomplete', `leaf-autocomplete--${size}`, className),
133
135
  style: style,
134
136
  "data-status": status,
@@ -201,9 +203,11 @@ const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObje
201
203
  }),
202
204
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(floating_cjs_namespaceObject.FloatingPanel, {
203
205
  open: expanded,
204
- triggerRef: inputRef,
206
+ triggerRef: rootRef,
205
207
  panelRef: panelRef,
206
- matchWidth: true,
208
+ matchWidth: 'trigger' === popupWidth,
209
+ width: 'trigger' === popupWidth ? void 0 : 'auto' === popupWidth ? 'max-content' : popupWidth,
210
+ maxWidth: popupMaxWidth,
207
211
  ...hasSuggestions ? listboxProps : {},
208
212
  className: (0, classes_cjs_namespaceObject.classes)('leaf-floating', 'leaf-autocomplete__panel', popupClassName),
209
213
  "data-hover-motion": "",
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete/autocomplete.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/autocomplete/autocomplete.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 { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n forwardRef,\n type InputHTMLAttributes,\n type ReactNode,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { estimateControlHeight } from '../density';\nimport { useFormField } from '../form/form';\nimport { classes } from '../shared/classes';\nimport { ClearButton } from '../shared/clear-button';\nimport { useFieldValue, useMergedRef } from '../shared/field';\nimport type { PopupOptions } from '../shared/floating';\nimport {\n FloatingPanel,\n useActiveOption,\n useFloatingDismiss,\n usePopupState,\n} from '../shared/floating';\nimport { FloatingFeedback } from '../shared/floating-feedback';\nimport { FloatingHighlight, useFloatingHighlight } from '../shared/floating-highlight';\nimport type { ControlSize, ControlStatus } from '../shared/types';\nimport { useFormattedText } from '../shared/use-formatted-text';\n\nexport interface AutoCompleteOption {\n value: string;\n label?: ReactNode;\n searchLabel?: string;\n disabled?: boolean;\n}\nexport interface AutoCompleteOptionGroup {\n label: ReactNode;\n options: readonly AutoCompleteOption[];\n}\n\nexport interface AutoCompleteProps\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'value' | 'defaultValue' | 'onChange' | 'onSelect' | 'type' | 'list' | 'children'\n > {\n options: readonly (AutoCompleteOption | AutoCompleteOptionGroup)[];\n value?: string;\n defaultValue?: string;\n size?: ControlSize;\n status?: ControlStatus;\n filterOption?: false | ((query: string, option: AutoCompleteOption) => boolean);\n onChange?: (value: string) => void;\n onSelect?: (value: string, option: AutoCompleteOption) => void;\n onSearch?: (query: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n loading?: boolean;\n notFoundContent?: ReactNode;\n errorContent?: ReactNode;\n optionRender?: (option: AutoCompleteOption) => ReactNode;\n allowClear?: boolean;\n virtual?: boolean;\n listHeight?: number;\n optionHeight?: number;\n popupPlacement?: PopupOptions['popupPlacement'];\n popupClassName?: string;\n popupStyle?: PopupOptions['popupStyle'];\n popupRender?: PopupOptions['popupRender'];\n getPopupContainer?: PopupOptions['getPopupContainer'];\n}\n\nexport const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>(function AutoComplete(\n rawProps: AutoCompleteProps,\n forwardedRef,\n) {\n const {\n options: entries,\n value,\n defaultValue = '',\n size = 'md',\n status: statusProp,\n filterOption,\n disabled: disabledProp,\n readOnly,\n className,\n style,\n form,\n onChange,\n onSelect,\n onSearch,\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n loading,\n notFoundContent,\n errorContent,\n optionRender,\n allowClear,\n virtual: virtualProp,\n listHeight = 248,\n optionHeight: optionHeightProp,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n onKeyDown,\n onFocus,\n autoComplete = 'off',\n 'aria-label': ariaLabel,\n 'aria-invalid': ariaInvalid,\n ...props\n } = useComponentProps('AutoComplete', rawProps);\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const status = statusProp ?? (field?.error ? 'error' : undefined);\n const { messages, theme, density } = useLeafConfig();\n const format = useFormattedText();\n const optionHeight = optionHeightProp ?? Math.max(24, estimateControlHeight(theme, density) - 4);\n const inputRef = useRef<HTMLInputElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const ref = useMergedRef(inputRef, forwardedRef);\n const [text, setText] = useFieldValue(value, defaultValue, inputRef, form);\n const [open, setOpen] = usePopupState(\n disabled || readOnly,\n onOpenChange,\n controlledOpen,\n defaultOpen,\n );\n const [active, setActive] = useState(-1);\n const listId = `${useId()}-suggestions`;\n const options = entries.flatMap((entry) => ('options' in entry ? [...entry.options] : [entry]));\n const groups = new Map(\n entries.flatMap((entry) =>\n 'options' in entry ? entry.options.map((option) => [option.value, entry.label] as const) : [],\n ),\n );\n const visibleOptions = options.filter((option) => {\n if (filterOption === false) return true;\n if (filterOption) return filterOption(text, option);\n return (option.searchLabel ?? (typeof option.label === 'string' ? option.label : option.value))\n .toLocaleLowerCase()\n .includes(text.toLocaleLowerCase());\n });\n const virtual = virtualProp ?? visibleOptions.length > 100;\n const virtualizer = useVirtualizer({\n count: visibleOptions.length,\n getScrollElement: () => panelRef.current,\n estimateSize: () => optionHeight,\n enabled: open && virtual,\n initialRect: { height: listHeight, width: 240 },\n overscan: 5,\n });\n useEffect(() => {\n if (open && virtual && active >= 0) virtualizer.scrollToIndex(active, { align: 'auto' });\n }, [open, virtual, active, virtualizer]);\n const expanded = open && !disabled && !readOnly;\n const hasSuggestions = visibleOptions.length > 0 && !errorContent;\n const listboxProps = {\n id: listId,\n role: 'listbox' as const,\n 'aria-busy': loading || undefined,\n 'aria-label': ariaLabel\n ? format('autoComplete.suggestions', { label: ariaLabel })\n : messages.autoComplete.empty,\n };\n useFloatingDismiss(expanded, () => setOpen(false), inputRef, panelRef);\n useActiveOption(expanded, visibleOptions[active] ? `${listId}-${active}` : undefined, panelRef);\n const highlight = useFloatingHighlight(\n expanded,\n panelRef,\n visibleOptions[active] ? `${listId}-${active}` : undefined,\n `${text}:${visibleOptions[active]?.value}:${visibleOptions.length}:${virtualizer.range?.startIndex}:${virtualizer.range?.endIndex}`,\n );\n\n const select = (option: AutoCompleteOption) => {\n if (option.disabled || readOnly || disabled) return;\n setText(option.value);\n onChange?.(option.value);\n onSelect?.(option.value, option);\n setOpen(false);\n setActive(-1);\n inputRef.current?.focus();\n };\n\n const move = (direction: number) => {\n let index = active < 0 ? (direction > 0 ? -1 : visibleOptions.length) : active;\n for (let step = 0; step < visibleOptions.length; step += 1) {\n index = (index + direction + visibleOptions.length) % visibleOptions.length;\n if (!visibleOptions[index]?.disabled) {\n setActive(index);\n break;\n }\n }\n };\n\n return (\n <div\n className={classes('leaf-autocomplete', `leaf-autocomplete--${size}`, className)}\n style={style}\n data-status={status}\n data-disabled={disabled ? '' : undefined}\n data-open={open ? '' : undefined}\n data-clearable={allowClear && text && !disabled && !readOnly ? '' : undefined}\n >\n <input\n {...props}\n id={props.id ?? field?.id}\n required={props.required ?? field?.required}\n aria-describedby={\n [props['aria-describedby'], field?.descriptionId].filter(Boolean).join(' ') || undefined\n }\n ref={ref}\n type=\"text\"\n form={form}\n className=\"leaf-autocomplete__input\"\n disabled={disabled}\n readOnly={readOnly}\n value={text}\n autoComplete={autoComplete}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-controls={listId}\n aria-activedescendant={\n expanded && visibleOptions[active] ? `${listId}-${active}` : undefined\n }\n aria-label={ariaLabel}\n aria-invalid={status === 'error' ? true : ariaInvalid}\n onFocus={(event) => {\n onFocus?.(event);\n if (!event.defaultPrevented && !readOnly) setOpen(true);\n }}\n onChange={(event) => {\n const next = event.target.value;\n setText(next);\n setActive(-1);\n setOpen(true);\n onChange?.(next);\n onSearch?.(next);\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || readOnly) return;\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setOpen(true);\n move(event.key === 'ArrowDown' ? 1 : -1);\n } else if (event.key === 'Enter' && expanded && visibleOptions[active]) {\n event.preventDefault();\n const option = visibleOptions[active];\n if (option) select(option);\n } else if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n } else if (event.key === 'Tab') setOpen(false);\n }}\n />\n {allowClear && text && !disabled && !readOnly && (\n <ClearButton\n label={messages.input.clear}\n onClear={() => {\n setText('');\n onChange?.('');\n onSearch?.('');\n inputRef.current?.focus();\n }}\n />\n )}\n <FloatingPanel\n open={expanded}\n triggerRef={inputRef}\n panelRef={panelRef}\n matchWidth\n {...(hasSuggestions ? listboxProps : {})}\n className={classes('leaf-floating', 'leaf-autocomplete__panel', popupClassName)}\n data-hover-motion=\"\"\n data-selection=\"candidate\"\n placement={popupPlacement}\n style={{ maxHeight: listHeight, ...popupStyle }}\n container={getPopupContainer}\n render={popupRender}\n >\n {!hasSuggestions && <div {...listboxProps} />}\n <FloatingHighlight style={highlight} />\n {loading && !visibleOptions.length ? (\n <FloatingFeedback loading>{messages.common.loading}</FloatingFeedback>\n ) : errorContent ? (\n <div className=\"leaf-floating__empty\" role=\"alert\">\n {errorContent}\n </div>\n ) : visibleOptions.length ? (\n <div\n className={virtual ? undefined : 'leaf-floating__options'}\n style={\n virtual ? { height: virtualizer.getTotalSize(), position: 'relative' } : undefined\n }\n >\n {(virtual\n ? virtualizer.getVirtualItems().map((item) => ({\n option: visibleOptions[item.index],\n index: item.index,\n start: item.start,\n }))\n : visibleOptions.map((option, index) => ({ option, index, start: 0 }))\n ).map(\n ({ option, index, start }) =>\n option && (\n <div\n key={option.value}\n ref={virtual ? virtualizer.measureElement : undefined}\n data-index={virtual ? index : undefined}\n style={\n virtual\n ? {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n transform: `translateY(${start}px)`,\n }\n : undefined\n }\n >\n {groups.has(option.value) &&\n (index === 0 ||\n groups.get(visibleOptions[index - 1]?.value ?? '') !==\n groups.get(option.value)) && (\n <div className=\"leaf-select__group\">{groups.get(option.value)}</div>\n )}\n <button\n key={option.value}\n id={`${listId}-${index}`}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n aria-selected={active === index}\n disabled={option.disabled}\n aria-disabled={option.disabled || undefined}\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-floating__option-label\">\n {optionRender?.(option) ?? option.label ?? option.value}\n </span>\n </button>\n </div>\n ),\n )}\n </div>\n ) : (\n <FloatingFeedback>{notFoundContent ?? messages.autoComplete.empty}</FloatingFeedback>\n )}\n </FloatingPanel>\n </div>\n );\n});\nAutoComplete.displayName = 'AutoComplete';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","AutoComplete","forwardRef","rawProps","forwardedRef","entries","value","defaultValue","size","statusProp","filterOption","disabledProp","readOnly","className","style","form","onChange","onSelect","onSearch","controlledOpen","defaultOpen","onOpenChange","loading","notFoundContent","errorContent","optionRender","allowClear","virtualProp","listHeight","optionHeightProp","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","onKeyDown","onFocus","autoComplete","ariaLabel","ariaInvalid","props","useComponentProps","field","useFormField","disabled","status","undefined","messages","theme","density","useLeafConfig","format","useFormattedText","optionHeight","Math","estimateControlHeight","inputRef","useRef","panelRef","ref","useMergedRef","text","setText","useFieldValue","open","setOpen","usePopupState","active","setActive","useState","listId","useId","options","entry","groups","Map","option","visibleOptions","virtual","virtualizer","useVirtualizer","useEffect","expanded","hasSuggestions","listboxProps","useFloatingDismiss","useActiveOption","highlight","useFloatingHighlight","select","move","direction","index","step","classes","Boolean","event","next","ClearButton","FloatingPanel","FloatingHighlight","FloatingFeedback","item","start"],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete/autocomplete.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/autocomplete/autocomplete.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 { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n forwardRef,\n type InputHTMLAttributes,\n type ReactNode,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { estimateControlHeight } from '../density';\nimport { useFormField } from '../form/form';\nimport { classes } from '../shared/classes';\nimport { ClearButton } from '../shared/clear-button';\nimport { useFieldValue, useMergedRef } from '../shared/field';\nimport type { PopupOptions } from '../shared/floating';\nimport {\n FloatingPanel,\n useActiveOption,\n useFloatingDismiss,\n usePopupState,\n} from '../shared/floating';\nimport { FloatingFeedback } from '../shared/floating-feedback';\nimport { FloatingHighlight, useFloatingHighlight } from '../shared/floating-highlight';\nimport type { ControlSize, ControlStatus } from '../shared/types';\nimport { useFormattedText } from '../shared/use-formatted-text';\n\nexport interface AutoCompleteOption {\n value: string;\n label?: ReactNode;\n searchLabel?: string;\n disabled?: boolean;\n}\nexport interface AutoCompleteOptionGroup {\n label: ReactNode;\n options: readonly AutoCompleteOption[];\n}\n\nexport interface AutoCompleteProps\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'value' | 'defaultValue' | 'onChange' | 'onSelect' | 'type' | 'list' | 'children'\n > {\n options: readonly (AutoCompleteOption | AutoCompleteOptionGroup)[];\n value?: string;\n defaultValue?: string;\n size?: ControlSize;\n status?: ControlStatus;\n filterOption?: false | ((query: string, option: AutoCompleteOption) => boolean);\n onChange?: (value: string) => void;\n onSelect?: (value: string, option: AutoCompleteOption) => void;\n onSearch?: (query: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n loading?: boolean;\n notFoundContent?: ReactNode;\n errorContent?: ReactNode;\n optionRender?: (option: AutoCompleteOption) => ReactNode;\n allowClear?: boolean;\n virtual?: boolean;\n listHeight?: number;\n optionHeight?: number;\n popupWidth?: number | string;\n popupMaxWidth?: number | string;\n popupPlacement?: PopupOptions['popupPlacement'];\n popupClassName?: string;\n popupStyle?: PopupOptions['popupStyle'];\n popupRender?: PopupOptions['popupRender'];\n getPopupContainer?: PopupOptions['getPopupContainer'];\n}\n\nexport const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>(function AutoComplete(\n rawProps: AutoCompleteProps,\n forwardedRef,\n) {\n const {\n options: entries,\n value,\n defaultValue = '',\n size = 'md',\n status: statusProp,\n filterOption,\n disabled: disabledProp,\n readOnly,\n className,\n style,\n form,\n onChange,\n onSelect,\n onSearch,\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n loading,\n notFoundContent,\n errorContent,\n optionRender,\n allowClear,\n virtual: virtualProp,\n listHeight = 248,\n optionHeight: optionHeightProp,\n popupWidth = 'trigger',\n popupMaxWidth,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n onKeyDown,\n onFocus,\n autoComplete = 'off',\n 'aria-label': ariaLabel,\n 'aria-invalid': ariaInvalid,\n ...props\n } = useComponentProps('AutoComplete', rawProps);\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const status = statusProp ?? (field?.error ? 'error' : undefined);\n const { messages, theme, density } = useLeafConfig();\n const format = useFormattedText();\n const optionHeight = optionHeightProp ?? Math.max(24, estimateControlHeight(theme, density) - 4);\n const inputRef = useRef<HTMLInputElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const ref = useMergedRef(inputRef, forwardedRef);\n const [text, setText] = useFieldValue(value, defaultValue, inputRef, form);\n const [open, setOpen] = usePopupState(\n disabled || readOnly,\n onOpenChange,\n controlledOpen,\n defaultOpen,\n );\n const [active, setActive] = useState(-1);\n const listId = `${useId()}-suggestions`;\n const options = entries.flatMap((entry) => ('options' in entry ? [...entry.options] : [entry]));\n const groups = new Map(\n entries.flatMap((entry) =>\n 'options' in entry ? entry.options.map((option) => [option.value, entry.label] as const) : [],\n ),\n );\n const visibleOptions = options.filter((option) => {\n if (filterOption === false) return true;\n if (filterOption) return filterOption(text, option);\n return (option.searchLabel ?? (typeof option.label === 'string' ? option.label : option.value))\n .toLocaleLowerCase()\n .includes(text.toLocaleLowerCase());\n });\n const virtual = virtualProp ?? visibleOptions.length > 100;\n const virtualizer = useVirtualizer({\n count: visibleOptions.length,\n getScrollElement: () => panelRef.current,\n estimateSize: () => optionHeight,\n enabled: open && virtual,\n initialRect: { height: listHeight, width: 240 },\n overscan: 5,\n });\n useEffect(() => {\n if (open && virtual && active >= 0) virtualizer.scrollToIndex(active, { align: 'auto' });\n }, [open, virtual, active, virtualizer]);\n const expanded = open && !disabled && !readOnly;\n const hasSuggestions = visibleOptions.length > 0 && !errorContent;\n const listboxProps = {\n id: listId,\n role: 'listbox' as const,\n 'aria-busy': loading || undefined,\n 'aria-label': ariaLabel\n ? format('autoComplete.suggestions', { label: ariaLabel })\n : messages.autoComplete.empty,\n };\n useFloatingDismiss(expanded, () => setOpen(false), inputRef, panelRef);\n useActiveOption(expanded, visibleOptions[active] ? `${listId}-${active}` : undefined, panelRef);\n const highlight = useFloatingHighlight(\n expanded,\n panelRef,\n visibleOptions[active] ? `${listId}-${active}` : undefined,\n `${text}:${visibleOptions[active]?.value}:${visibleOptions.length}:${virtualizer.range?.startIndex}:${virtualizer.range?.endIndex}`,\n );\n\n const select = (option: AutoCompleteOption) => {\n if (option.disabled || readOnly || disabled) return;\n setText(option.value);\n onChange?.(option.value);\n onSelect?.(option.value, option);\n setOpen(false);\n setActive(-1);\n inputRef.current?.focus();\n };\n\n const move = (direction: number) => {\n let index = active < 0 ? (direction > 0 ? -1 : visibleOptions.length) : active;\n for (let step = 0; step < visibleOptions.length; step += 1) {\n index = (index + direction + visibleOptions.length) % visibleOptions.length;\n if (!visibleOptions[index]?.disabled) {\n setActive(index);\n break;\n }\n }\n };\n\n return (\n <div\n ref={rootRef}\n className={classes('leaf-autocomplete', `leaf-autocomplete--${size}`, className)}\n style={style}\n data-status={status}\n data-disabled={disabled ? '' : undefined}\n data-open={open ? '' : undefined}\n data-clearable={allowClear && text && !disabled && !readOnly ? '' : undefined}\n >\n <input\n {...props}\n id={props.id ?? field?.id}\n required={props.required ?? field?.required}\n aria-describedby={\n [props['aria-describedby'], field?.descriptionId].filter(Boolean).join(' ') || undefined\n }\n ref={ref}\n type=\"text\"\n form={form}\n className=\"leaf-autocomplete__input\"\n disabled={disabled}\n readOnly={readOnly}\n value={text}\n autoComplete={autoComplete}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-controls={listId}\n aria-activedescendant={\n expanded && visibleOptions[active] ? `${listId}-${active}` : undefined\n }\n aria-label={ariaLabel}\n aria-invalid={status === 'error' ? true : ariaInvalid}\n onFocus={(event) => {\n onFocus?.(event);\n if (!event.defaultPrevented && !readOnly) setOpen(true);\n }}\n onChange={(event) => {\n const next = event.target.value;\n setText(next);\n setActive(-1);\n setOpen(true);\n onChange?.(next);\n onSearch?.(next);\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || readOnly) return;\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setOpen(true);\n move(event.key === 'ArrowDown' ? 1 : -1);\n } else if (event.key === 'Enter' && expanded && visibleOptions[active]) {\n event.preventDefault();\n const option = visibleOptions[active];\n if (option) select(option);\n } else if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n } else if (event.key === 'Tab') setOpen(false);\n }}\n />\n {allowClear && text && !disabled && !readOnly && (\n <ClearButton\n label={messages.input.clear}\n onClear={() => {\n setText('');\n onChange?.('');\n onSearch?.('');\n inputRef.current?.focus();\n }}\n />\n )}\n <FloatingPanel\n open={expanded}\n triggerRef={rootRef}\n panelRef={panelRef}\n matchWidth={popupWidth === 'trigger'}\n width={\n popupWidth === 'trigger' ? undefined : popupWidth === 'auto' ? 'max-content' : popupWidth\n }\n maxWidth={popupMaxWidth}\n {...(hasSuggestions ? listboxProps : {})}\n className={classes('leaf-floating', 'leaf-autocomplete__panel', popupClassName)}\n data-hover-motion=\"\"\n data-selection=\"candidate\"\n placement={popupPlacement}\n style={{ maxHeight: listHeight, ...popupStyle }}\n container={getPopupContainer}\n render={popupRender}\n >\n {!hasSuggestions && <div {...listboxProps} />}\n <FloatingHighlight style={highlight} />\n {loading && !visibleOptions.length ? (\n <FloatingFeedback loading>{messages.common.loading}</FloatingFeedback>\n ) : errorContent ? (\n <div className=\"leaf-floating__empty\" role=\"alert\">\n {errorContent}\n </div>\n ) : visibleOptions.length ? (\n <div\n className={virtual ? undefined : 'leaf-floating__options'}\n style={\n virtual ? { height: virtualizer.getTotalSize(), position: 'relative' } : undefined\n }\n >\n {(virtual\n ? virtualizer.getVirtualItems().map((item) => ({\n option: visibleOptions[item.index],\n index: item.index,\n start: item.start,\n }))\n : visibleOptions.map((option, index) => ({ option, index, start: 0 }))\n ).map(\n ({ option, index, start }) =>\n option && (\n <div\n key={option.value}\n ref={virtual ? virtualizer.measureElement : undefined}\n data-index={virtual ? index : undefined}\n style={\n virtual\n ? {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n transform: `translateY(${start}px)`,\n }\n : undefined\n }\n >\n {groups.has(option.value) &&\n (index === 0 ||\n groups.get(visibleOptions[index - 1]?.value ?? '') !==\n groups.get(option.value)) && (\n <div className=\"leaf-select__group\">{groups.get(option.value)}</div>\n )}\n <button\n key={option.value}\n id={`${listId}-${index}`}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n aria-selected={active === index}\n disabled={option.disabled}\n aria-disabled={option.disabled || undefined}\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-floating__option-label\">\n {optionRender?.(option) ?? option.label ?? option.value}\n </span>\n </button>\n </div>\n ),\n )}\n </div>\n ) : (\n <FloatingFeedback>{notFoundContent ?? messages.autoComplete.empty}</FloatingFeedback>\n )}\n </FloatingPanel>\n </div>\n );\n});\nAutoComplete.displayName = 'AutoComplete';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","AutoComplete","forwardRef","rawProps","forwardedRef","entries","value","defaultValue","size","statusProp","filterOption","disabledProp","readOnly","className","style","form","onChange","onSelect","onSearch","controlledOpen","defaultOpen","onOpenChange","loading","notFoundContent","errorContent","optionRender","allowClear","virtualProp","listHeight","optionHeightProp","popupWidth","popupMaxWidth","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","onKeyDown","onFocus","autoComplete","ariaLabel","ariaInvalid","props","useComponentProps","field","useFormField","disabled","status","undefined","messages","theme","density","useLeafConfig","format","useFormattedText","optionHeight","Math","estimateControlHeight","inputRef","useRef","rootRef","panelRef","ref","useMergedRef","text","setText","useFieldValue","open","setOpen","usePopupState","active","setActive","useState","listId","useId","options","entry","groups","Map","option","visibleOptions","virtual","virtualizer","useVirtualizer","useEffect","expanded","hasSuggestions","listboxProps","useFloatingDismiss","useActiveOption","highlight","useFloatingHighlight","select","move","direction","index","step","classes","Boolean","event","next","ClearButton","FloatingPanel","FloatingHighlight","FloatingFeedback","item","start"],"mappings":"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"}
@@ -32,6 +32,8 @@ export interface AutoCompleteProps extends Omit<InputHTMLAttributes<HTMLInputEle
32
32
  virtual?: boolean;
33
33
  listHeight?: number;
34
34
  optionHeight?: number;
35
+ popupWidth?: number | string;
36
+ popupMaxWidth?: number | string;
35
37
  popupPlacement?: PopupOptions['popupPlacement'];
36
38
  popupClassName?: string;
37
39
  popupStyle?: PopupOptions['popupStyle'];
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.d.cts","sourceRoot":"","sources":["../../../src/autocomplete/autocomplete.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASvD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGlE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAC3F;IACD,OAAO,EAAE,SAAS,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,EAAE,CAAC;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,YAAY,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC;IAChF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAC1C,iBAAiB,CAAC,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,YAAY,gHAiSvB,CAAC"}
1
+ {"version":3,"file":"autocomplete.d.cts","sourceRoot":"","sources":["../../../src/autocomplete/autocomplete.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASvD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGlE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAC3F;IACD,OAAO,EAAE,SAAS,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,EAAE,CAAC;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,YAAY,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC;IAChF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAC1C,iBAAiB,CAAC,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,YAAY,gHAySvB,CAAC"}
@@ -48,7 +48,7 @@ const floating_feedback_cjs_namespaceObject = require("../shared/floating-feedba
48
48
  const floating_highlight_cjs_namespaceObject = require("../shared/floating-highlight.cjs");
49
49
  const use_formatted_text_cjs_namespaceObject = require("../shared/use-formatted-text.cjs");
50
50
  const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(function(rawProps, forwardedRef) {
51
- const { options: entries, value, defaultValue = '', size = 'md', status: statusProp, filterOption, disabled: disabledProp, readOnly, className, style, form, onChange, onSelect, onSearch, open: controlledOpen, defaultOpen, onOpenChange, loading, notFoundContent, errorContent, optionRender, allowClear, virtual: virtualProp, listHeight = 248, optionHeight: optionHeightProp, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, onKeyDown, onFocus, autoComplete = 'off', 'aria-label': ariaLabel, 'aria-invalid': ariaInvalid, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('AutoComplete', rawProps);
51
+ const { options: entries, value, defaultValue = '', size = 'md', status: statusProp, filterOption, disabled: disabledProp, readOnly, className, style, form, onChange, onSelect, onSearch, open: controlledOpen, defaultOpen, onOpenChange, loading, notFoundContent, errorContent, optionRender, allowClear, virtual: virtualProp, listHeight = 248, optionHeight: optionHeightProp, popupWidth = 'trigger', popupMaxWidth, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, onKeyDown, onFocus, autoComplete = 'off', 'aria-label': ariaLabel, 'aria-invalid': ariaInvalid, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('AutoComplete', rawProps);
52
52
  const field = (0, form_cjs_namespaceObject.useFormField)();
53
53
  const disabled = disabledProp || field?.disabled;
54
54
  const status = statusProp ?? (field?.error ? 'error' : void 0);
@@ -56,6 +56,7 @@ const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObje
56
56
  const format = (0, use_formatted_text_cjs_namespaceObject.useFormattedText)();
57
57
  const optionHeight = optionHeightProp ?? Math.max(24, (0, external_density_cjs_namespaceObject.estimateControlHeight)(theme, density) - 4);
58
58
  const inputRef = (0, external_react_namespaceObject.useRef)(null);
59
+ const rootRef = (0, external_react_namespaceObject.useRef)(null);
59
60
  const panelRef = (0, external_react_namespaceObject.useRef)(null);
60
61
  const ref = (0, field_cjs_namespaceObject.useMergedRef)(inputRef, forwardedRef);
61
62
  const [text, setText] = (0, field_cjs_namespaceObject.useFieldValue)(value, defaultValue, inputRef, form);
@@ -131,6 +132,7 @@ const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObje
131
132
  }
132
133
  };
133
134
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
135
+ ref: rootRef,
134
136
  className: (0, classes_cjs_namespaceObject.classes)('leaf-autocomplete', `leaf-autocomplete--${size}`, className),
135
137
  style: style,
136
138
  "data-status": status,
@@ -203,9 +205,11 @@ const autocomplete_AutoComplete = /*#__PURE__*/ (0, external_react_namespaceObje
203
205
  }),
204
206
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(floating_cjs_namespaceObject.FloatingPanel, {
205
207
  open: expanded,
206
- triggerRef: inputRef,
208
+ triggerRef: rootRef,
207
209
  panelRef: panelRef,
208
- matchWidth: true,
210
+ matchWidth: 'trigger' === popupWidth,
211
+ width: 'trigger' === popupWidth ? void 0 : 'auto' === popupWidth ? 'max-content' : popupWidth,
212
+ maxWidth: popupMaxWidth,
209
213
  ...hasSuggestions ? listboxProps : {},
210
214
  className: (0, classes_cjs_namespaceObject.classes)('leaf-floating', 'leaf-autocomplete__panel', popupClassName),
211
215
  "data-hover-motion": "",
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete/autocomplete.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/autocomplete/autocomplete.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 { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n forwardRef,\n type InputHTMLAttributes,\n type ReactNode,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { estimateControlHeight } from '../density';\nimport { useFormField } from '../form/form';\nimport { classes } from '../shared/classes';\nimport { ClearButton } from '../shared/clear-button';\nimport { useFieldValue, useMergedRef } from '../shared/field';\nimport type { PopupOptions } from '../shared/floating';\nimport {\n FloatingPanel,\n useActiveOption,\n useFloatingDismiss,\n usePopupState,\n} from '../shared/floating';\nimport { FloatingFeedback } from '../shared/floating-feedback';\nimport { FloatingHighlight, useFloatingHighlight } from '../shared/floating-highlight';\nimport type { ControlSize, ControlStatus } from '../shared/types';\nimport { useFormattedText } from '../shared/use-formatted-text';\n\nexport interface AutoCompleteOption {\n value: string;\n label?: ReactNode;\n searchLabel?: string;\n disabled?: boolean;\n}\nexport interface AutoCompleteOptionGroup {\n label: ReactNode;\n options: readonly AutoCompleteOption[];\n}\n\nexport interface AutoCompleteProps\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'value' | 'defaultValue' | 'onChange' | 'onSelect' | 'type' | 'list' | 'children'\n > {\n options: readonly (AutoCompleteOption | AutoCompleteOptionGroup)[];\n value?: string;\n defaultValue?: string;\n size?: ControlSize;\n status?: ControlStatus;\n filterOption?: false | ((query: string, option: AutoCompleteOption) => boolean);\n onChange?: (value: string) => void;\n onSelect?: (value: string, option: AutoCompleteOption) => void;\n onSearch?: (query: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n loading?: boolean;\n notFoundContent?: ReactNode;\n errorContent?: ReactNode;\n optionRender?: (option: AutoCompleteOption) => ReactNode;\n allowClear?: boolean;\n virtual?: boolean;\n listHeight?: number;\n optionHeight?: number;\n popupPlacement?: PopupOptions['popupPlacement'];\n popupClassName?: string;\n popupStyle?: PopupOptions['popupStyle'];\n popupRender?: PopupOptions['popupRender'];\n getPopupContainer?: PopupOptions['getPopupContainer'];\n}\n\nexport const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>(function AutoComplete(\n rawProps: AutoCompleteProps,\n forwardedRef,\n) {\n const {\n options: entries,\n value,\n defaultValue = '',\n size = 'md',\n status: statusProp,\n filterOption,\n disabled: disabledProp,\n readOnly,\n className,\n style,\n form,\n onChange,\n onSelect,\n onSearch,\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n loading,\n notFoundContent,\n errorContent,\n optionRender,\n allowClear,\n virtual: virtualProp,\n listHeight = 248,\n optionHeight: optionHeightProp,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n onKeyDown,\n onFocus,\n autoComplete = 'off',\n 'aria-label': ariaLabel,\n 'aria-invalid': ariaInvalid,\n ...props\n } = useComponentProps('AutoComplete', rawProps);\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const status = statusProp ?? (field?.error ? 'error' : undefined);\n const { messages, theme, density } = useLeafConfig();\n const format = useFormattedText();\n const optionHeight = optionHeightProp ?? Math.max(24, estimateControlHeight(theme, density) - 4);\n const inputRef = useRef<HTMLInputElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const ref = useMergedRef(inputRef, forwardedRef);\n const [text, setText] = useFieldValue(value, defaultValue, inputRef, form);\n const [open, setOpen] = usePopupState(\n disabled || readOnly,\n onOpenChange,\n controlledOpen,\n defaultOpen,\n );\n const [active, setActive] = useState(-1);\n const listId = `${useId()}-suggestions`;\n const options = entries.flatMap((entry) => ('options' in entry ? [...entry.options] : [entry]));\n const groups = new Map(\n entries.flatMap((entry) =>\n 'options' in entry ? entry.options.map((option) => [option.value, entry.label] as const) : [],\n ),\n );\n const visibleOptions = options.filter((option) => {\n if (filterOption === false) return true;\n if (filterOption) return filterOption(text, option);\n return (option.searchLabel ?? (typeof option.label === 'string' ? option.label : option.value))\n .toLocaleLowerCase()\n .includes(text.toLocaleLowerCase());\n });\n const virtual = virtualProp ?? visibleOptions.length > 100;\n const virtualizer = useVirtualizer({\n count: visibleOptions.length,\n getScrollElement: () => panelRef.current,\n estimateSize: () => optionHeight,\n enabled: open && virtual,\n initialRect: { height: listHeight, width: 240 },\n overscan: 5,\n });\n useEffect(() => {\n if (open && virtual && active >= 0) virtualizer.scrollToIndex(active, { align: 'auto' });\n }, [open, virtual, active, virtualizer]);\n const expanded = open && !disabled && !readOnly;\n const hasSuggestions = visibleOptions.length > 0 && !errorContent;\n const listboxProps = {\n id: listId,\n role: 'listbox' as const,\n 'aria-busy': loading || undefined,\n 'aria-label': ariaLabel\n ? format('autoComplete.suggestions', { label: ariaLabel })\n : messages.autoComplete.empty,\n };\n useFloatingDismiss(expanded, () => setOpen(false), inputRef, panelRef);\n useActiveOption(expanded, visibleOptions[active] ? `${listId}-${active}` : undefined, panelRef);\n const highlight = useFloatingHighlight(\n expanded,\n panelRef,\n visibleOptions[active] ? `${listId}-${active}` : undefined,\n `${text}:${visibleOptions[active]?.value}:${visibleOptions.length}:${virtualizer.range?.startIndex}:${virtualizer.range?.endIndex}`,\n );\n\n const select = (option: AutoCompleteOption) => {\n if (option.disabled || readOnly || disabled) return;\n setText(option.value);\n onChange?.(option.value);\n onSelect?.(option.value, option);\n setOpen(false);\n setActive(-1);\n inputRef.current?.focus();\n };\n\n const move = (direction: number) => {\n let index = active < 0 ? (direction > 0 ? -1 : visibleOptions.length) : active;\n for (let step = 0; step < visibleOptions.length; step += 1) {\n index = (index + direction + visibleOptions.length) % visibleOptions.length;\n if (!visibleOptions[index]?.disabled) {\n setActive(index);\n break;\n }\n }\n };\n\n return (\n <div\n className={classes('leaf-autocomplete', `leaf-autocomplete--${size}`, className)}\n style={style}\n data-status={status}\n data-disabled={disabled ? '' : undefined}\n data-open={open ? '' : undefined}\n data-clearable={allowClear && text && !disabled && !readOnly ? '' : undefined}\n >\n <input\n {...props}\n id={props.id ?? field?.id}\n required={props.required ?? field?.required}\n aria-describedby={\n [props['aria-describedby'], field?.descriptionId].filter(Boolean).join(' ') || undefined\n }\n ref={ref}\n type=\"text\"\n form={form}\n className=\"leaf-autocomplete__input\"\n disabled={disabled}\n readOnly={readOnly}\n value={text}\n autoComplete={autoComplete}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-controls={listId}\n aria-activedescendant={\n expanded && visibleOptions[active] ? `${listId}-${active}` : undefined\n }\n aria-label={ariaLabel}\n aria-invalid={status === 'error' ? true : ariaInvalid}\n onFocus={(event) => {\n onFocus?.(event);\n if (!event.defaultPrevented && !readOnly) setOpen(true);\n }}\n onChange={(event) => {\n const next = event.target.value;\n setText(next);\n setActive(-1);\n setOpen(true);\n onChange?.(next);\n onSearch?.(next);\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || readOnly) return;\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setOpen(true);\n move(event.key === 'ArrowDown' ? 1 : -1);\n } else if (event.key === 'Enter' && expanded && visibleOptions[active]) {\n event.preventDefault();\n const option = visibleOptions[active];\n if (option) select(option);\n } else if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n } else if (event.key === 'Tab') setOpen(false);\n }}\n />\n {allowClear && text && !disabled && !readOnly && (\n <ClearButton\n label={messages.input.clear}\n onClear={() => {\n setText('');\n onChange?.('');\n onSearch?.('');\n inputRef.current?.focus();\n }}\n />\n )}\n <FloatingPanel\n open={expanded}\n triggerRef={inputRef}\n panelRef={panelRef}\n matchWidth\n {...(hasSuggestions ? listboxProps : {})}\n className={classes('leaf-floating', 'leaf-autocomplete__panel', popupClassName)}\n data-hover-motion=\"\"\n data-selection=\"candidate\"\n placement={popupPlacement}\n style={{ maxHeight: listHeight, ...popupStyle }}\n container={getPopupContainer}\n render={popupRender}\n >\n {!hasSuggestions && <div {...listboxProps} />}\n <FloatingHighlight style={highlight} />\n {loading && !visibleOptions.length ? (\n <FloatingFeedback loading>{messages.common.loading}</FloatingFeedback>\n ) : errorContent ? (\n <div className=\"leaf-floating__empty\" role=\"alert\">\n {errorContent}\n </div>\n ) : visibleOptions.length ? (\n <div\n className={virtual ? undefined : 'leaf-floating__options'}\n style={\n virtual ? { height: virtualizer.getTotalSize(), position: 'relative' } : undefined\n }\n >\n {(virtual\n ? virtualizer.getVirtualItems().map((item) => ({\n option: visibleOptions[item.index],\n index: item.index,\n start: item.start,\n }))\n : visibleOptions.map((option, index) => ({ option, index, start: 0 }))\n ).map(\n ({ option, index, start }) =>\n option && (\n <div\n key={option.value}\n ref={virtual ? virtualizer.measureElement : undefined}\n data-index={virtual ? index : undefined}\n style={\n virtual\n ? {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n transform: `translateY(${start}px)`,\n }\n : undefined\n }\n >\n {groups.has(option.value) &&\n (index === 0 ||\n groups.get(visibleOptions[index - 1]?.value ?? '') !==\n groups.get(option.value)) && (\n <div className=\"leaf-select__group\">{groups.get(option.value)}</div>\n )}\n <button\n key={option.value}\n id={`${listId}-${index}`}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n aria-selected={active === index}\n disabled={option.disabled}\n aria-disabled={option.disabled || undefined}\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-floating__option-label\">\n {optionRender?.(option) ?? option.label ?? option.value}\n </span>\n </button>\n </div>\n ),\n )}\n </div>\n ) : (\n <FloatingFeedback>{notFoundContent ?? messages.autoComplete.empty}</FloatingFeedback>\n )}\n </FloatingPanel>\n </div>\n );\n});\nAutoComplete.displayName = 'AutoComplete';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","AutoComplete","forwardRef","rawProps","forwardedRef","entries","value","defaultValue","size","statusProp","filterOption","disabledProp","readOnly","className","style","form","onChange","onSelect","onSearch","controlledOpen","defaultOpen","onOpenChange","loading","notFoundContent","errorContent","optionRender","allowClear","virtualProp","listHeight","optionHeightProp","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","onKeyDown","onFocus","autoComplete","ariaLabel","ariaInvalid","props","useComponentProps","field","useFormField","disabled","status","undefined","messages","theme","density","useLeafConfig","format","useFormattedText","optionHeight","Math","estimateControlHeight","inputRef","useRef","panelRef","ref","useMergedRef","text","setText","useFieldValue","open","setOpen","usePopupState","active","setActive","useState","listId","useId","options","entry","groups","Map","option","visibleOptions","virtual","virtualizer","useVirtualizer","useEffect","expanded","hasSuggestions","listboxProps","useFloatingDismiss","useActiveOption","highlight","useFloatingHighlight","select","move","direction","index","step","classes","Boolean","event","next","ClearButton","FloatingPanel","FloatingHighlight","FloatingFeedback","item","start"],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete/autocomplete.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/autocomplete/autocomplete.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 { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n forwardRef,\n type InputHTMLAttributes,\n type ReactNode,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { estimateControlHeight } from '../density';\nimport { useFormField } from '../form/form';\nimport { classes } from '../shared/classes';\nimport { ClearButton } from '../shared/clear-button';\nimport { useFieldValue, useMergedRef } from '../shared/field';\nimport type { PopupOptions } from '../shared/floating';\nimport {\n FloatingPanel,\n useActiveOption,\n useFloatingDismiss,\n usePopupState,\n} from '../shared/floating';\nimport { FloatingFeedback } from '../shared/floating-feedback';\nimport { FloatingHighlight, useFloatingHighlight } from '../shared/floating-highlight';\nimport type { ControlSize, ControlStatus } from '../shared/types';\nimport { useFormattedText } from '../shared/use-formatted-text';\n\nexport interface AutoCompleteOption {\n value: string;\n label?: ReactNode;\n searchLabel?: string;\n disabled?: boolean;\n}\nexport interface AutoCompleteOptionGroup {\n label: ReactNode;\n options: readonly AutoCompleteOption[];\n}\n\nexport interface AutoCompleteProps\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'value' | 'defaultValue' | 'onChange' | 'onSelect' | 'type' | 'list' | 'children'\n > {\n options: readonly (AutoCompleteOption | AutoCompleteOptionGroup)[];\n value?: string;\n defaultValue?: string;\n size?: ControlSize;\n status?: ControlStatus;\n filterOption?: false | ((query: string, option: AutoCompleteOption) => boolean);\n onChange?: (value: string) => void;\n onSelect?: (value: string, option: AutoCompleteOption) => void;\n onSearch?: (query: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n loading?: boolean;\n notFoundContent?: ReactNode;\n errorContent?: ReactNode;\n optionRender?: (option: AutoCompleteOption) => ReactNode;\n allowClear?: boolean;\n virtual?: boolean;\n listHeight?: number;\n optionHeight?: number;\n popupWidth?: number | string;\n popupMaxWidth?: number | string;\n popupPlacement?: PopupOptions['popupPlacement'];\n popupClassName?: string;\n popupStyle?: PopupOptions['popupStyle'];\n popupRender?: PopupOptions['popupRender'];\n getPopupContainer?: PopupOptions['getPopupContainer'];\n}\n\nexport const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>(function AutoComplete(\n rawProps: AutoCompleteProps,\n forwardedRef,\n) {\n const {\n options: entries,\n value,\n defaultValue = '',\n size = 'md',\n status: statusProp,\n filterOption,\n disabled: disabledProp,\n readOnly,\n className,\n style,\n form,\n onChange,\n onSelect,\n onSearch,\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n loading,\n notFoundContent,\n errorContent,\n optionRender,\n allowClear,\n virtual: virtualProp,\n listHeight = 248,\n optionHeight: optionHeightProp,\n popupWidth = 'trigger',\n popupMaxWidth,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n onKeyDown,\n onFocus,\n autoComplete = 'off',\n 'aria-label': ariaLabel,\n 'aria-invalid': ariaInvalid,\n ...props\n } = useComponentProps('AutoComplete', rawProps);\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const status = statusProp ?? (field?.error ? 'error' : undefined);\n const { messages, theme, density } = useLeafConfig();\n const format = useFormattedText();\n const optionHeight = optionHeightProp ?? Math.max(24, estimateControlHeight(theme, density) - 4);\n const inputRef = useRef<HTMLInputElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const ref = useMergedRef(inputRef, forwardedRef);\n const [text, setText] = useFieldValue(value, defaultValue, inputRef, form);\n const [open, setOpen] = usePopupState(\n disabled || readOnly,\n onOpenChange,\n controlledOpen,\n defaultOpen,\n );\n const [active, setActive] = useState(-1);\n const listId = `${useId()}-suggestions`;\n const options = entries.flatMap((entry) => ('options' in entry ? [...entry.options] : [entry]));\n const groups = new Map(\n entries.flatMap((entry) =>\n 'options' in entry ? entry.options.map((option) => [option.value, entry.label] as const) : [],\n ),\n );\n const visibleOptions = options.filter((option) => {\n if (filterOption === false) return true;\n if (filterOption) return filterOption(text, option);\n return (option.searchLabel ?? (typeof option.label === 'string' ? option.label : option.value))\n .toLocaleLowerCase()\n .includes(text.toLocaleLowerCase());\n });\n const virtual = virtualProp ?? visibleOptions.length > 100;\n const virtualizer = useVirtualizer({\n count: visibleOptions.length,\n getScrollElement: () => panelRef.current,\n estimateSize: () => optionHeight,\n enabled: open && virtual,\n initialRect: { height: listHeight, width: 240 },\n overscan: 5,\n });\n useEffect(() => {\n if (open && virtual && active >= 0) virtualizer.scrollToIndex(active, { align: 'auto' });\n }, [open, virtual, active, virtualizer]);\n const expanded = open && !disabled && !readOnly;\n const hasSuggestions = visibleOptions.length > 0 && !errorContent;\n const listboxProps = {\n id: listId,\n role: 'listbox' as const,\n 'aria-busy': loading || undefined,\n 'aria-label': ariaLabel\n ? format('autoComplete.suggestions', { label: ariaLabel })\n : messages.autoComplete.empty,\n };\n useFloatingDismiss(expanded, () => setOpen(false), inputRef, panelRef);\n useActiveOption(expanded, visibleOptions[active] ? `${listId}-${active}` : undefined, panelRef);\n const highlight = useFloatingHighlight(\n expanded,\n panelRef,\n visibleOptions[active] ? `${listId}-${active}` : undefined,\n `${text}:${visibleOptions[active]?.value}:${visibleOptions.length}:${virtualizer.range?.startIndex}:${virtualizer.range?.endIndex}`,\n );\n\n const select = (option: AutoCompleteOption) => {\n if (option.disabled || readOnly || disabled) return;\n setText(option.value);\n onChange?.(option.value);\n onSelect?.(option.value, option);\n setOpen(false);\n setActive(-1);\n inputRef.current?.focus();\n };\n\n const move = (direction: number) => {\n let index = active < 0 ? (direction > 0 ? -1 : visibleOptions.length) : active;\n for (let step = 0; step < visibleOptions.length; step += 1) {\n index = (index + direction + visibleOptions.length) % visibleOptions.length;\n if (!visibleOptions[index]?.disabled) {\n setActive(index);\n break;\n }\n }\n };\n\n return (\n <div\n ref={rootRef}\n className={classes('leaf-autocomplete', `leaf-autocomplete--${size}`, className)}\n style={style}\n data-status={status}\n data-disabled={disabled ? '' : undefined}\n data-open={open ? '' : undefined}\n data-clearable={allowClear && text && !disabled && !readOnly ? '' : undefined}\n >\n <input\n {...props}\n id={props.id ?? field?.id}\n required={props.required ?? field?.required}\n aria-describedby={\n [props['aria-describedby'], field?.descriptionId].filter(Boolean).join(' ') || undefined\n }\n ref={ref}\n type=\"text\"\n form={form}\n className=\"leaf-autocomplete__input\"\n disabled={disabled}\n readOnly={readOnly}\n value={text}\n autoComplete={autoComplete}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-controls={listId}\n aria-activedescendant={\n expanded && visibleOptions[active] ? `${listId}-${active}` : undefined\n }\n aria-label={ariaLabel}\n aria-invalid={status === 'error' ? true : ariaInvalid}\n onFocus={(event) => {\n onFocus?.(event);\n if (!event.defaultPrevented && !readOnly) setOpen(true);\n }}\n onChange={(event) => {\n const next = event.target.value;\n setText(next);\n setActive(-1);\n setOpen(true);\n onChange?.(next);\n onSearch?.(next);\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || readOnly) return;\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setOpen(true);\n move(event.key === 'ArrowDown' ? 1 : -1);\n } else if (event.key === 'Enter' && expanded && visibleOptions[active]) {\n event.preventDefault();\n const option = visibleOptions[active];\n if (option) select(option);\n } else if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n } else if (event.key === 'Tab') setOpen(false);\n }}\n />\n {allowClear && text && !disabled && !readOnly && (\n <ClearButton\n label={messages.input.clear}\n onClear={() => {\n setText('');\n onChange?.('');\n onSearch?.('');\n inputRef.current?.focus();\n }}\n />\n )}\n <FloatingPanel\n open={expanded}\n triggerRef={rootRef}\n panelRef={panelRef}\n matchWidth={popupWidth === 'trigger'}\n width={\n popupWidth === 'trigger' ? undefined : popupWidth === 'auto' ? 'max-content' : popupWidth\n }\n maxWidth={popupMaxWidth}\n {...(hasSuggestions ? listboxProps : {})}\n className={classes('leaf-floating', 'leaf-autocomplete__panel', popupClassName)}\n data-hover-motion=\"\"\n data-selection=\"candidate\"\n placement={popupPlacement}\n style={{ maxHeight: listHeight, ...popupStyle }}\n container={getPopupContainer}\n render={popupRender}\n >\n {!hasSuggestions && <div {...listboxProps} />}\n <FloatingHighlight style={highlight} />\n {loading && !visibleOptions.length ? (\n <FloatingFeedback loading>{messages.common.loading}</FloatingFeedback>\n ) : errorContent ? (\n <div className=\"leaf-floating__empty\" role=\"alert\">\n {errorContent}\n </div>\n ) : visibleOptions.length ? (\n <div\n className={virtual ? undefined : 'leaf-floating__options'}\n style={\n virtual ? { height: virtualizer.getTotalSize(), position: 'relative' } : undefined\n }\n >\n {(virtual\n ? virtualizer.getVirtualItems().map((item) => ({\n option: visibleOptions[item.index],\n index: item.index,\n start: item.start,\n }))\n : visibleOptions.map((option, index) => ({ option, index, start: 0 }))\n ).map(\n ({ option, index, start }) =>\n option && (\n <div\n key={option.value}\n ref={virtual ? virtualizer.measureElement : undefined}\n data-index={virtual ? index : undefined}\n style={\n virtual\n ? {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n transform: `translateY(${start}px)`,\n }\n : undefined\n }\n >\n {groups.has(option.value) &&\n (index === 0 ||\n groups.get(visibleOptions[index - 1]?.value ?? '') !==\n groups.get(option.value)) && (\n <div className=\"leaf-select__group\">{groups.get(option.value)}</div>\n )}\n <button\n key={option.value}\n id={`${listId}-${index}`}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n aria-selected={active === index}\n disabled={option.disabled}\n aria-disabled={option.disabled || undefined}\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-floating__option-label\">\n {optionRender?.(option) ?? option.label ?? option.value}\n </span>\n </button>\n </div>\n ),\n )}\n </div>\n ) : (\n <FloatingFeedback>{notFoundContent ?? messages.autoComplete.empty}</FloatingFeedback>\n )}\n </FloatingPanel>\n </div>\n );\n});\nAutoComplete.displayName = 'AutoComplete';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","AutoComplete","forwardRef","rawProps","forwardedRef","entries","value","defaultValue","size","statusProp","filterOption","disabledProp","readOnly","className","style","form","onChange","onSelect","onSearch","controlledOpen","defaultOpen","onOpenChange","loading","notFoundContent","errorContent","optionRender","allowClear","virtualProp","listHeight","optionHeightProp","popupWidth","popupMaxWidth","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","onKeyDown","onFocus","autoComplete","ariaLabel","ariaInvalid","props","useComponentProps","field","useFormField","disabled","status","undefined","messages","theme","density","useLeafConfig","format","useFormattedText","optionHeight","Math","estimateControlHeight","inputRef","useRef","rootRef","panelRef","ref","useMergedRef","text","setText","useFieldValue","open","setOpen","usePopupState","active","setActive","useState","listId","useId","options","entry","groups","Map","option","visibleOptions","virtual","virtualizer","useVirtualizer","useEffect","expanded","hasSuggestions","listboxProps","useFloatingDismiss","useActiveOption","highlight","useFloatingHighlight","select","move","direction","index","step","classes","Boolean","event","next","ClearButton","FloatingPanel","FloatingHighlight","FloatingFeedback","item","start"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"button/button.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/button/button.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 { LoaderCircle } from 'lucide-react';\nimport { type ButtonHTMLAttributes, forwardRef, type ReactNode } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { classes } from '../shared/classes';\nimport type { ControlSize } from '../shared/types';\nimport { useButtonWave } from './wave';\n\nexport type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link';\nexport type ButtonSize = ControlSize;\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style. @default 'solid' */\n variant?: ButtonVariant;\n /** Shared control size. @default 'md' (36px) */\n size?: ButtonSize;\n /** Uses the semantic danger color in every variant. */\n danger?: boolean;\n /** Displays a spinner and prevents repeated interactions. */\n loading?: boolean;\n /** Expands the button to the width of its container. */\n fullWidth?: boolean;\n /** Content before the label. Use aria-label for icon-only buttons. */\n startIcon?: ReactNode;\n /** Content after the label. */\n endIcon?: ReactNode;\n}\n\n/** Internal rendering primitive; its owner resolves defaults and interaction constraints. */\nexport const ButtonControl = forwardRef<HTMLButtonElement, ButtonProps>(function ButtonControl(\n rawProps: ButtonProps,\n ref,\n) {\n const {\n variant = 'solid',\n size = 'md',\n danger = false,\n loading = false,\n fullWidth = false,\n disabled = false,\n type = 'button',\n className,\n children,\n startIcon,\n endIcon,\n onClick,\n 'aria-busy': ariaBusy,\n ...props\n } = rawProps;\n const hasLabel =\n children !== undefined && children !== null && children !== false && children !== '';\n const iconOnly = !hasLabel && Boolean(startIcon || endIcon || loading);\n const hasWave = variant === 'solid' || variant === 'outline';\n const { wave, play } = useButtonWave(disabled || loading || !hasWave);\n\n return (\n <button\n {...props}\n ref={ref}\n type={type}\n className={classes(\n 'leaf-button',\n `leaf-button--${variant}`,\n `leaf-button--${size}`,\n danger && 'leaf-button--danger',\n iconOnly && 'leaf-button--icon-only',\n fullWidth && 'leaf-button--full-width',\n className,\n )}\n disabled={disabled || loading}\n aria-busy={loading || ariaBusy}\n data-loading={loading ? '' : undefined}\n onClick={(event) => {\n play(event.currentTarget);\n onClick?.(event);\n }}\n >\n {hasWave && <span ref={wave} className=\"leaf-button__wave\" aria-hidden=\"true\" />}\n <span className=\"leaf-button__content\">\n {startIcon && (\n <span className=\"leaf-button__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n )}\n {hasLabel && <span className=\"leaf-button__label\">{children}</span>}\n {endIcon && (\n <span className=\"leaf-button__icon\" aria-hidden=\"true\">\n {endIcon}\n </span>\n )}\n </span>\n <span className=\"leaf-button__loading\" aria-hidden=\"true\">\n <LoaderCircle className=\"leaf-button__spinner\" />\n </span>\n </button>\n );\n});\nButtonControl.displayName = 'ButtonControl';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(rawProps, ref) {\n const props = useComponentProps('Button', rawProps);\n return <ButtonControl {...props} ref={ref} />;\n});\nButton.displayName = 'Button';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","ButtonControl","forwardRef","rawProps","ref","variant","size","danger","loading","fullWidth","disabled","type","className","children","startIcon","endIcon","onClick","ariaBusy","props","hasLabel","iconOnly","Boolean","hasWave","wave","play","useButtonWave","classes","undefined","event","LoaderCircle","Button","useComponentProps"],"mappings":"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"}
1
+ {"version":3,"file":"button/button.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/button/button.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 { LoaderCircle } from 'lucide-react';\nimport { type ButtonHTMLAttributes, forwardRef, type ReactNode } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { classes } from '../shared/classes';\nimport type { ControlSize } from '../shared/types';\nimport { useButtonWave } from './wave';\n\nexport type ButtonVariant = 'solid' | 'outline' | 'soft' | 'link';\nexport type ButtonSize = ControlSize;\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style. @default 'solid' */\n variant?: ButtonVariant;\n /** Shared control size. @default 'md' (36px) */\n size?: ButtonSize;\n /** Uses the semantic danger color in every variant. */\n danger?: boolean;\n /** Displays a spinner and prevents repeated interactions. */\n loading?: boolean;\n /** Expands the button to the width of its container. */\n fullWidth?: boolean;\n /** Content before the label. Use aria-label for icon-only buttons. */\n startIcon?: ReactNode;\n /** Content after the label. */\n endIcon?: ReactNode;\n}\n\ninterface ButtonControlProps extends Omit<ButtonProps, 'variant'> {\n /** Borderless controls remain an implementation detail of their owning components. */\n variant?: ButtonVariant | 'ghost';\n}\n\n/** Internal rendering primitive; its owner resolves defaults and interaction constraints. */\nexport const ButtonControl = forwardRef<HTMLButtonElement, ButtonControlProps>(\n function ButtonControl(rawProps: ButtonControlProps, ref) {\n const {\n variant = 'solid',\n size = 'md',\n danger = false,\n loading = false,\n fullWidth = false,\n disabled = false,\n type = 'button',\n className,\n children,\n startIcon,\n endIcon,\n onClick,\n 'aria-busy': ariaBusy,\n ...props\n } = rawProps;\n const hasLabel =\n children !== undefined && children !== null && children !== false && children !== '';\n const iconOnly = !hasLabel && Boolean(startIcon || endIcon || loading);\n const hasWave = variant === 'solid' || variant === 'outline';\n const { wave, play } = useButtonWave(disabled || loading || !hasWave);\n\n return (\n <button\n {...props}\n ref={ref}\n type={type}\n className={classes(\n 'leaf-button',\n `leaf-button--${variant}`,\n `leaf-button--${size}`,\n danger && 'leaf-button--danger',\n iconOnly && 'leaf-button--icon-only',\n fullWidth && 'leaf-button--full-width',\n className,\n )}\n disabled={disabled || loading}\n aria-busy={loading || ariaBusy}\n data-loading={loading ? '' : undefined}\n onClick={(event) => {\n play(event.currentTarget);\n onClick?.(event);\n }}\n >\n {hasWave && <span ref={wave} className=\"leaf-button__wave\" aria-hidden=\"true\" />}\n <span className=\"leaf-button__content\">\n {startIcon && (\n <span className=\"leaf-button__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n )}\n {hasLabel && <span className=\"leaf-button__label\">{children}</span>}\n {endIcon && (\n <span className=\"leaf-button__icon\" aria-hidden=\"true\">\n {endIcon}\n </span>\n )}\n </span>\n <span className=\"leaf-button__loading\" aria-hidden=\"true\">\n <LoaderCircle className=\"leaf-button__spinner\" />\n </span>\n </button>\n );\n },\n);\nButtonControl.displayName = 'ButtonControl';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(rawProps, ref) {\n const props = useComponentProps('Button', rawProps);\n return <ButtonControl {...props} ref={ref} />;\n});\nButton.displayName = 'Button';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","ButtonControl","forwardRef","rawProps","ref","variant","size","danger","loading","fullWidth","disabled","type","className","children","startIcon","endIcon","onClick","ariaBusy","props","hasLabel","iconOnly","Boolean","hasWave","wave","play","useButtonWave","classes","undefined","event","LoaderCircle","Button","useComponentProps"],"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;;;;;;;;;;;;;;AC2BO,MAAMI,uBAAgBC,AAAA,WAAHD,GAAGC,IAAAA,+BAAAA,UAAAA,AAAAA,EAC3B,SAAuBC,QAA4B,EAAEC,GAAG;IACtD,MAAM,EACJC,UAAU,OAAO,EACjBC,OAAO,IAAI,EACXC,SAAS,KAAK,EACdC,UAAU,KAAK,EACfC,YAAY,KAAK,EACjBC,WAAW,KAAK,EAChBC,OAAO,QAAQ,EACfC,SAAS,EACTC,QAAQ,EACRC,SAAS,EACTC,OAAO,EACPC,OAAO,EACP,aAAaC,QAAQ,EACrB,GAAGC,OACJ,GAAGf;IACJ,MAAMgB,WACJN,QAAAA,YAA+CA,AAAa,UAAbA,YAAsBA,AAAa,OAAbA;IACvE,MAAMO,WAAW,CAACD,YAAYE,QAAQP,aAAaC,WAAWP;IAC9D,MAAMc,UAAUjB,AAAY,YAAZA,WAAuBA,AAAY,cAAZA;IACvC,MAAM,EAAEkB,IAAI,EAAEC,IAAI,EAAE,GAAGC,AAAAA,IAAAA,kCAAAA,aAAAA,AAAAA,EAAcf,YAAYF,WAAW,CAACc;IAE7D,OACE,AADK,WAAP,GACE,sCAAC;QACE,GAAGJ,KAAK;QACT,KAAKd;QACL,MAAMO;QACN,WAAWe,AAAAA,IAAAA,4BAAAA,OAAAA,AAAAA,EACT,eACA,CAAC,aAAa,EAAErB,SAAS,EACzB,CAAC,aAAa,EAAEC,MAAM,EACtBC,UAAU,uBACVa,YAAY,0BACZX,aAAa,2BACbG;QAEF,UAAUF,YAAYF;QACtB,aAAWA,WAAWS;QACtB,gBAAcT,UAAU,KAAKmB;QAC7B,SAAS,CAACC;YACRJ,KAAKI,MAAM,aAAa;YACxBZ,UAAUY;QACZ;;YAECN,WAAW,WAAXA,GAAW,qCAAC;gBAAK,KAAKC;gBAAM,WAAU;gBAAoB,eAAY;;0BACvE,sCAAC;gBAAK,WAAU;;oBACbT,aACC,AADY,WAAbA,GACC,qCAAC;wBAAK,WAAU;wBAAoB,eAAY;kCAC7CA;;oBAGJK,YAAY,WAAZA,GAAY,qCAAC;wBAAK,WAAU;kCAAsBN;;oBAClDE,WACC,AADU,WAAXA,GACC,qCAAC;wBAAK,WAAU;wBAAoB,eAAY;kCAC7CA;;;;0BAIP,qCAAC;gBAAK,WAAU;gBAAuB,eAAY;0BACjD,mDAACc,sCAAAA,YAAYA,EAAAA;oBAAC,WAAU;;;;;AAIhC;AAEF5B,qBAAc,WAAW,GAAG;AAErB,MAAM6B,gBAAS5B,AAAA,WAAH4B,GAAG5B,IAAAA,+BAAAA,UAAAA,AAAAA,EAA2C,SAAgBC,QAAQ,EAAEC,GAAG;IAC5F,MAAMc,QAAQa,AAAAA,IAAAA,uCAAAA,iBAAAA,AAAAA,EAAkB,UAAU5B;IAC1C,OAAO,WAAP,GAAO,qCAACF,sBAAaA;QAAE,GAAGiB,KAAK;QAAE,KAAKd;;AACxC;AACA0B,cAAO,WAAW,GAAG"}
@@ -60,7 +60,7 @@ function resolvePath(options, values) {
60
60
  return path;
61
61
  }
62
62
  const cascader_Cascader = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(function(rawProps, forwardedRef) {
63
- const { options: suppliedOptions, value, defaultValue = emptyPath, size = 'md', status: statusProp, placeholder, name, form, required: requiredProp, allowClear = true, disabled: disabledProp, className, style, onChange, onOpenChange, open: controlledOpen, defaultOpen, multiple = false, readOnly, showSearch, changeOnSelect, displayRender, optionRender, loadData, onLoadError, cacheKey, tagWrap = true, maxTagCount, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, onClick, onKeyDown, 'aria-label': ariaLabel, id: idProp, 'aria-describedby': ariaDescribedByProp, 'aria-invalid': ariaInvalid, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('Cascader', rawProps);
63
+ const { options: suppliedOptions, value, defaultValue = emptyPath, size = 'md', status: statusProp, placeholder, name, form, required: requiredProp, allowClear = true, disabled: disabledProp, className, style, onChange, onOpenChange, open: controlledOpen, defaultOpen, multiple = false, readOnly, showSearch, changeOnSelect, displayRender, optionRender, loadData, onLoadError, cacheKey, tagWrap = true, maxTagCount, popupWidth = 'trigger', popupMaxWidth, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, onClick, onKeyDown, 'aria-label': ariaLabel, id: idProp, 'aria-describedby': ariaDescribedByProp, 'aria-invalid': ariaInvalid, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('Cascader', rawProps);
64
64
  const { messages, direction } = (0, context_cjs_namespaceObject.useLeafConfig)();
65
65
  const format = (0, use_formatted_text_cjs_namespaceObject.useFormattedText)();
66
66
  const [loaded, setLoaded] = (0, external_react_namespaceObject.useState)(new Map());
@@ -103,6 +103,7 @@ const cascader_Cascader = /*#__PURE__*/ (0, external_react_namespaceObject.forwa
103
103
  field?.descriptionId
104
104
  ].filter(Boolean).join(' ') || void 0;
105
105
  const triggerRef = (0, external_react_namespaceObject.useRef)(null);
106
+ const rootRef = (0, external_react_namespaceObject.useRef)(null);
106
107
  const panelRef = (0, external_react_namespaceObject.useRef)(null);
107
108
  const ref = (0, field_cjs_namespaceObject.useMergedRef)(triggerRef, forwardedRef);
108
109
  const panelId = `${(0, external_react_namespaceObject.useId)()}-cascader`;
@@ -208,8 +209,10 @@ const cascader_Cascader = /*#__PURE__*/ (0, external_react_namespaceObject.forwa
208
209
  }
209
210
  };
210
211
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
212
+ ref: rootRef,
211
213
  className: (0, classes_cjs_namespaceObject.classes)('leaf-cascader', `leaf-cascader--${size}`, multiple && 'leaf-cascader--multiple', className),
212
214
  style: style,
215
+ dir: props.dir ?? direction,
213
216
  "data-status": status,
214
217
  "data-disabled": disabled ? '' : void 0,
215
218
  "data-open": open ? '' : void 0,
@@ -217,6 +220,7 @@ const cascader_Cascader = /*#__PURE__*/ (0, external_react_namespaceObject.forwa
217
220
  children: [
218
221
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("button", {
219
222
  ...props,
223
+ dir: props.dir ?? direction,
220
224
  ref: ref,
221
225
  type: "button",
222
226
  form: form,
@@ -300,8 +304,11 @@ const cascader_Cascader = /*#__PURE__*/ (0, external_react_namespaceObject.forwa
300
304
  render: popupRender,
301
305
  style: popupStyle,
302
306
  open: open,
303
- triggerRef: triggerRef,
307
+ triggerRef: rootRef,
304
308
  panelRef: panelRef,
309
+ matchWidth: 'trigger' === popupWidth,
310
+ width: 'trigger' === popupWidth ? void 0 : 'auto' === popupWidth ? 'max-content' : popupWidth,
311
+ maxWidth: popupMaxWidth,
305
312
  id: panelId,
306
313
  className: (0, classes_cjs_namespaceObject.classes)('leaf-floating leaf-cascader__panel', popupClassName),
307
314
  role: "dialog",