@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
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbar/scrollbar.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/scrollbar/scrollbar.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 {\n type CSSProperties,\n forwardRef,\n type HTMLAttributes,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { classes } from '../shared/classes';\nimport { useMergedRef } from '../shared/field';\nimport { useText } from '../shared/use-text';\n\nexport interface ScrollbarProps extends HTMLAttributes<HTMLDivElement> {\n height?: CSSProperties['height'];\n maxHeight?: CSSProperties['maxHeight'];\n orientation?: 'vertical' | 'horizontal' | 'both';\n scrollbar?: 'auto' | 'always' | 'hidden';\n viewportClassName?: string;\n viewportStyle?: CSSProperties;\n contentClassName?: string;\n contentStyle?: CSSProperties;\n verticalOffset?: number;\n}\n\ninterface Geometry {\n width: number;\n height: number;\n scrollWidth: number;\n scrollHeight: number;\n left: number;\n top: number;\n rtl: boolean;\n}\n\nconst initialGeometry: Geometry = {\n width: 0,\n height: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n left: 0,\n top: 0,\n rtl: false,\n};\n\nexport const ScrollbarControl = forwardRef<HTMLDivElement, ScrollbarProps>(\n function ScrollbarControl(\n {\n height,\n maxHeight,\n orientation = 'both',\n scrollbar = 'auto',\n viewportClassName,\n viewportStyle,\n contentClassName,\n contentStyle,\n verticalOffset = 0,\n className,\n style,\n children,\n tabIndex = 0,\n onScroll,\n id: providedId,\n role = 'region',\n 'aria-label': label,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': describedBy,\n ...props\n }: ScrollbarProps,\n forwarded,\n ) {\n const viewport = useRef<HTMLDivElement>(null);\n const content = useRef<HTMLDivElement>(null);\n const ref = useMergedRef(viewport, forwarded);\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const t = useText();\n const [geometry, setGeometry] = useState(initialGeometry);\n const [scrolling, setScrolling] = useState(false);\n const [dragging, setDragging] = useState(false);\n const frame = useRef<number | undefined>(undefined);\n const timeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const drag = useRef<{ pointerId: number; offset: number; vertical: boolean } | undefined>(\n undefined,\n );\n const measure = useCallback(() => {\n const element = viewport.current;\n if (!element) return;\n const next: Geometry = {\n width: element.clientWidth,\n height: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n left: Math.abs(element.scrollLeft),\n top: element.scrollTop,\n rtl: getComputedStyle(element).direction === 'rtl',\n };\n setGeometry((previous) =>\n Object.keys(next).every(\n (key) => next[key as keyof Geometry] === previous[key as keyof Geometry],\n )\n ? previous\n : next,\n );\n }, []);\n const schedule = useCallback(() => {\n if (frame.current !== undefined) return;\n frame.current = requestAnimationFrame(() => {\n frame.current = undefined;\n measure();\n });\n }, [measure]);\n useEffect(() => {\n measure();\n const observer =\n typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);\n if (viewport.current) observer?.observe(viewport.current);\n if (content.current) observer?.observe(content.current);\n const mutation =\n typeof MutationObserver === 'undefined' ? undefined : new MutationObserver(schedule);\n if (content.current)\n mutation?.observe(content.current, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true,\n });\n window.addEventListener('resize', schedule);\n return () => {\n observer?.disconnect();\n mutation?.disconnect();\n window.removeEventListener('resize', schedule);\n if (frame.current !== undefined) cancelAnimationFrame(frame.current);\n frame.current = undefined;\n clearTimeout(timeout.current);\n };\n }, [measure, schedule]);\n\n function setPosition(vertical: boolean, value: number) {\n const element = viewport.current;\n if (!element) return;\n const maximum = vertical\n ? element.scrollHeight - element.clientHeight\n : element.scrollWidth - element.clientWidth;\n const position = Math.min(Math.max(0, value), Math.max(0, maximum));\n if (vertical) element.scrollTop = position;\n else element.scrollLeft = geometry.rtl ? -position : position;\n schedule();\n }\n\n const horizontalOverflow =\n orientation !== 'vertical' && geometry.scrollWidth > geometry.width + 1;\n const verticalOverflow =\n orientation !== 'horizontal' && geometry.scrollHeight > geometry.height + 1;\n const inset = Math.min(Math.max(0, verticalOffset), Math.max(0, geometry.height - 32));\n const viewportAccessibility = {\n role,\n 'aria-label': label,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': describedBy,\n };\n\n function bar(vertical: boolean) {\n const visibleSize = vertical ? geometry.height : geometry.width;\n const contentSize = vertical ? geometry.scrollHeight : geometry.scrollWidth;\n const offset = vertical ? inset : 0;\n const crossOverflow = vertical ? horizontalOverflow : verticalOverflow;\n const trackSize = Math.max(0, visibleSize - offset - 8 - (crossOverflow ? 8 : 0));\n const thumbSize = Math.min(\n trackSize,\n Math.max(24, (trackSize * (visibleSize - offset)) / Math.max(1, contentSize - offset)),\n );\n const maximum = Math.max(0, contentSize - visibleSize);\n const position = Math.min(maximum, Math.max(0, vertical ? geometry.top : geometry.left));\n const thumbPosition = maximum ? (position / maximum) * (trackSize - thumbSize) : 0;\n const logicalPosition =\n !vertical && geometry.rtl ? trackSize - thumbSize - thumbPosition : thumbPosition;\n return (\n <div\n key={vertical ? 'vertical' : 'horizontal'}\n className={classes(\n 'leaf-scrollbar__bar',\n vertical ? 'leaf-scrollbar__bar--vertical' : 'leaf-scrollbar__bar--horizontal',\n )}\n style={\n vertical\n ? { top: inset + 4, bottom: horizontalOverflow ? 12 : 4 }\n : {\n right: verticalOverflow && !geometry.rtl ? 12 : 4,\n left: verticalOverflow && geometry.rtl ? 12 : 4,\n }\n }\n >\n <span\n aria-hidden=\"true\"\n className=\"leaf-scrollbar__thumb\"\n style={\n vertical\n ? { height: thumbSize, transform: `translateY(${logicalPosition}px)` }\n : { width: thumbSize, transform: `translateX(${logicalPosition}px)` }\n }\n />\n <div\n role=\"scrollbar\"\n tabIndex={maximum ? 0 : -1}\n className=\"leaf-scrollbar__control\"\n aria-label={\n vertical ? t('scrollbar.verticalScrollbar') : t('scrollbar.horizontalScrollbar')\n }\n aria-controls={id}\n aria-orientation={vertical ? 'vertical' : 'horizontal'}\n aria-valuemin={0}\n aria-valuemax={maximum}\n aria-valuenow={position}\n aria-disabled={!maximum || undefined}\n onKeyDown={(event) => {\n if (!maximum) return;\n const current = viewport.current;\n const position = current\n ? vertical\n ? current.scrollTop\n : Math.abs(current.scrollLeft)\n : 0;\n let value: number | undefined;\n if (event.key === 'Home') value = 0;\n if (event.key === 'End') value = maximum;\n if (event.key === 'PageDown') value = position + visibleSize;\n if (event.key === 'PageUp') value = position - visibleSize;\n if (event.key === 'ArrowDown') value = position + 40;\n if (event.key === 'ArrowUp') value = position - 40;\n if (event.key === 'ArrowRight') value = position + (geometry.rtl ? -40 : 40);\n if (event.key === 'ArrowLeft') value = position + (geometry.rtl ? 40 : -40);\n if (value === undefined) return;\n event.preventDefault();\n setPosition(vertical, value);\n }}\n onPointerDown={(event) => {\n if (event.button !== 0 || !maximum) return;\n event.preventDefault();\n const rect = event.currentTarget.getBoundingClientRect();\n const pointer = vertical ? event.clientY - rect.top : event.clientX - rect.left;\n const onThumb = pointer >= logicalPosition && pointer <= logicalPosition + thumbSize;\n drag.current = {\n pointerId: event.pointerId,\n vertical,\n offset: onThumb ? pointer - logicalPosition : thumbSize / 2,\n };\n event.currentTarget.setPointerCapture?.(event.pointerId);\n setDragging(true);\n if (!onThumb) {\n const next = Math.min(trackSize - thumbSize, Math.max(0, pointer - thumbSize / 2));\n setPosition(\n vertical,\n ((!vertical && geometry.rtl ? trackSize - thumbSize - next : next) /\n Math.max(1, trackSize - thumbSize)) *\n maximum,\n );\n }\n }}\n onPointerMove={(event) => {\n const active = drag.current;\n if (!active || active.pointerId !== event.pointerId || active.vertical !== vertical)\n return;\n const rect = event.currentTarget.getBoundingClientRect();\n const pointer = vertical ? event.clientY - rect.top : event.clientX - rect.left;\n const next = Math.min(trackSize - thumbSize, Math.max(0, pointer - active.offset));\n setPosition(\n vertical,\n ((!vertical && geometry.rtl ? trackSize - thumbSize - next : next) /\n Math.max(1, trackSize - thumbSize)) *\n maximum,\n );\n }}\n onPointerUp={() => {\n drag.current = undefined;\n setDragging(false);\n }}\n onPointerCancel={() => {\n drag.current = undefined;\n setDragging(false);\n }}\n onLostPointerCapture={() => {\n drag.current = undefined;\n setDragging(false);\n }}\n />\n </div>\n );\n }\n\n return (\n <div\n {...props}\n className={classes('leaf-scrollbar', className)}\n data-scrollbar={scrollbar}\n data-scrolling={scrolling || undefined}\n data-dragging={dragging || undefined}\n style={{ height, maxHeight, ...style }}\n >\n <div\n ref={ref}\n id={id}\n tabIndex={tabIndex}\n {...viewportAccessibility}\n className={classes('leaf-scrollbar__viewport', viewportClassName)}\n style={{\n height: (style?.height ?? height) === undefined ? undefined : '100%',\n overflowX: orientation === 'vertical' ? 'hidden' : 'auto',\n overflowY: orientation === 'horizontal' ? 'hidden' : 'auto',\n ...viewportStyle,\n }}\n onScroll={(event) => {\n schedule();\n setScrolling(true);\n clearTimeout(timeout.current);\n timeout.current = setTimeout(() => setScrolling(false), 700);\n onScroll?.(event);\n }}\n >\n <div\n ref={content}\n className={classes('leaf-scrollbar__content', contentClassName)}\n style={contentStyle}\n >\n {children}\n </div>\n </div>\n {scrollbar !== 'hidden' &&\n (verticalOverflow || (scrollbar === 'always' && orientation !== 'horizontal')) &&\n bar(true)}\n {scrollbar !== 'hidden' &&\n (horizontalOverflow || (scrollbar === 'always' && orientation !== 'vertical')) &&\n bar(false)}\n </div>\n );\n },\n);\n\nexport const Scrollbar = forwardRef<HTMLDivElement, ScrollbarProps>(function Scrollbar(\n rawProps: ScrollbarProps,\n ref,\n) {\n const props = useComponentProps('Scrollbar', rawProps);\n return <ScrollbarControl {...props} ref={ref} />;\n});\nScrollbar.displayName = 'Scrollbar';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","initialGeometry","ScrollbarControl","forwardRef","height","maxHeight","orientation","scrollbar","viewportClassName","viewportStyle","contentClassName","contentStyle","verticalOffset","className","style","children","tabIndex","onScroll","providedId","role","label","labelledBy","describedBy","props","forwarded","viewport","useRef","content","ref","useMergedRef","generatedId","useId","id","t","useText","geometry","setGeometry","useState","scrolling","setScrolling","dragging","setDragging","frame","undefined","timeout","drag","measure","useCallback","element","next","Math","getComputedStyle","previous","schedule","requestAnimationFrame","useEffect","observer","ResizeObserver","mutation","MutationObserver","window","cancelAnimationFrame","clearTimeout","setPosition","vertical","value","maximum","position","horizontalOverflow","verticalOverflow","inset","viewportAccessibility","bar","visibleSize","contentSize","offset","crossOverflow","trackSize","thumbSize","thumbPosition","logicalPosition","classes","event","current","rect","pointer","onThumb","active","setTimeout","Scrollbar","rawProps","useComponentProps"],"mappings":"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"}
1
+ {"version":3,"file":"scrollbar/scrollbar.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/scrollbar/scrollbar.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 {\n type CSSProperties,\n forwardRef,\n type HTMLAttributes,\n type Ref,\n type RefObject,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { classes } from '../shared/classes';\nimport { useMergedRef } from '../shared/field';\nimport { useText } from '../shared/use-text';\n\nexport interface ScrollbarProps extends HTMLAttributes<HTMLDivElement> {\n height?: CSSProperties['height'];\n maxHeight?: CSSProperties['maxHeight'];\n orientation?: 'vertical' | 'horizontal' | 'both';\n scrollbar?: 'auto' | 'always' | 'hidden';\n viewportClassName?: string;\n viewportStyle?: CSSProperties;\n contentClassName?: string;\n contentStyle?: CSSProperties;\n verticalOffset?: number;\n}\n\ninterface Geometry {\n width: number;\n height: number;\n scrollWidth: number;\n scrollHeight: number;\n left: number;\n top: number;\n rtl: boolean;\n x: number;\n y: number;\n}\n\ninterface ScrollbarControlProps extends ScrollbarProps {\n /** Internal composition keeps semantic attributes on the actual scroll viewport. */\n viewportProps?: HTMLAttributes<HTMLDivElement>;\n rootRef?: Ref<HTMLDivElement>;\n scrollbarTabIndex?: number;\n externalViewport?: RefObject<HTMLElement | null>;\n viewportRevision?: unknown;\n resizeHandle?: boolean;\n}\n\nconst initialGeometry: Geometry = {\n width: 0,\n height: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n left: 0,\n top: 0,\n rtl: false,\n x: 0,\n y: 0,\n};\n\nexport const ScrollbarControl = forwardRef<HTMLDivElement, ScrollbarControlProps>(\n function ScrollbarControl(\n {\n height,\n maxHeight,\n orientation = 'both',\n scrollbar = 'auto',\n viewportClassName,\n viewportStyle,\n contentClassName,\n contentStyle,\n verticalOffset = 0,\n viewportProps,\n rootRef,\n scrollbarTabIndex,\n externalViewport,\n viewportRevision,\n resizeHandle = false,\n className,\n style,\n children,\n tabIndex = 0,\n onScroll,\n id: providedId,\n role = 'region',\n 'aria-label': label,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': describedBy,\n ...props\n }: ScrollbarControlProps,\n forwarded,\n ) {\n const internalViewport = useRef<HTMLDivElement>(null);\n const viewport = externalViewport ?? internalViewport;\n const root = useRef<HTMLDivElement>(null);\n const content = useRef<HTMLDivElement>(null);\n const ref = useMergedRef(internalViewport, forwarded);\n const mergedRoot = useMergedRef(root, rootRef);\n const generatedId = useId();\n const id = viewportProps?.id ?? providedId ?? generatedId;\n const t = useText();\n const [geometry, setGeometry] = useState(initialGeometry);\n const [scrolling, setScrolling] = useState(false);\n const [dragging, setDragging] = useState(false);\n const frame = useRef<number | undefined>(undefined);\n const timeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const drag = useRef<{ pointerId: number; offset: number; vertical: boolean } | undefined>(\n undefined,\n );\n const measure = useCallback(() => {\n const element = viewport.current;\n if (!element) return;\n const bounds = element.getBoundingClientRect();\n const rootBounds = root.current?.getBoundingClientRect();\n const next: Geometry = {\n width: element.clientWidth,\n height: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n left: Math.abs(element.scrollLeft),\n top: element.scrollTop,\n rtl: getComputedStyle(element).direction === 'rtl',\n x: externalViewport && rootBounds ? bounds.left - rootBounds.left + element.clientLeft : 0,\n y: externalViewport && rootBounds ? bounds.top - rootBounds.top + element.clientTop : 0,\n };\n setGeometry((previous) =>\n Object.keys(next).every(\n (key) => next[key as keyof Geometry] === previous[key as keyof Geometry],\n )\n ? previous\n : next,\n );\n }, [externalViewport, viewport]);\n const schedule = useCallback(() => {\n if (frame.current !== undefined) return;\n frame.current = requestAnimationFrame(() => {\n frame.current = undefined;\n measure();\n });\n }, [measure]);\n const reportScroll = useCallback(() => {\n schedule();\n setScrolling(true);\n clearTimeout(timeout.current);\n timeout.current = setTimeout(() => setScrolling(false), 700);\n }, [schedule]);\n useEffect(() => {\n measure();\n const observer =\n typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);\n if (viewport.current) observer?.observe(viewport.current);\n if (content.current) observer?.observe(content.current);\n const external = externalViewport?.current;\n external?.addEventListener('scroll', reportScroll, { passive: true });\n external?.addEventListener('input', schedule);\n const mutation =\n typeof MutationObserver === 'undefined' ? undefined : new MutationObserver(schedule);\n if (content.current)\n mutation?.observe(content.current, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true,\n });\n window.addEventListener('resize', schedule);\n return () => {\n observer?.disconnect();\n mutation?.disconnect();\n external?.removeEventListener('scroll', reportScroll);\n external?.removeEventListener('input', schedule);\n window.removeEventListener('resize', schedule);\n if (frame.current !== undefined) cancelAnimationFrame(frame.current);\n frame.current = undefined;\n clearTimeout(timeout.current);\n };\n }, [externalViewport, viewport, measure, schedule, reportScroll]);\n // Controlled native values can change scroll geometry without a DOM mutation or input event.\n // biome-ignore lint/correctness/useExhaustiveDependencies: viewportRevision explicitly invalidates external viewport measurements.\n useEffect(() => {\n if (externalViewport) measure();\n }, [externalViewport, viewportRevision, measure]);\n\n function setPosition(vertical: boolean, value: number) {\n const element = viewport.current;\n if (!element) return;\n const maximum = vertical\n ? element.scrollHeight - element.clientHeight\n : element.scrollWidth - element.clientWidth;\n const position = Math.min(Math.max(0, value), Math.max(0, maximum));\n if (vertical) element.scrollTop = position;\n else element.scrollLeft = geometry.rtl ? -position : position;\n schedule();\n }\n\n const horizontalOverflow =\n orientation !== 'vertical' && geometry.scrollWidth > geometry.width + 1;\n const verticalOverflow =\n orientation !== 'horizontal' && geometry.scrollHeight > geometry.height + 1;\n const inset = Math.min(Math.max(0, verticalOffset), Math.max(0, geometry.height - 32));\n const viewportAccessibility = {\n role,\n 'aria-label': label,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': describedBy,\n };\n\n function bar(vertical: boolean) {\n const visibleSize = vertical ? geometry.height : geometry.width;\n const contentSize = vertical ? geometry.scrollHeight : geometry.scrollWidth;\n const offset = vertical ? inset : 0;\n const crossOverflow = vertical ? horizontalOverflow : verticalOverflow;\n const endInset = resizeHandle ? 16 : crossOverflow ? 12 : 4;\n const trackSize = Math.max(0, visibleSize - offset - 4 - endInset);\n const thumbSize = Math.min(\n trackSize,\n Math.max(24, (trackSize * (visibleSize - offset)) / Math.max(1, contentSize - offset)),\n );\n const maximum = Math.max(0, contentSize - visibleSize);\n const position = Math.min(maximum, Math.max(0, vertical ? geometry.top : geometry.left));\n const thumbPosition = maximum ? (position / maximum) * (trackSize - thumbSize) : 0;\n const logicalPosition =\n !vertical && geometry.rtl ? trackSize - thumbSize - thumbPosition : thumbPosition;\n return (\n <div\n key={vertical ? 'vertical' : 'horizontal'}\n className={classes(\n 'leaf-scrollbar__bar',\n vertical ? 'leaf-scrollbar__bar--vertical' : 'leaf-scrollbar__bar--horizontal',\n )}\n style={\n vertical\n ? externalViewport\n ? {\n top: geometry.y + inset + 4,\n left: geometry.rtl ? geometry.x + 4 : geometry.x + geometry.width - 12,\n height: trackSize,\n bottom: 'auto',\n right: 'auto',\n }\n : { top: inset + 4, bottom: endInset }\n : externalViewport\n ? {\n top: geometry.y + geometry.height - 12,\n left: geometry.x + 4,\n width: trackSize,\n bottom: 'auto',\n right: 'auto',\n }\n : {\n right: verticalOverflow && !geometry.rtl ? 12 : 4,\n left: verticalOverflow && geometry.rtl ? 12 : 4,\n }\n }\n >\n <span\n aria-hidden=\"true\"\n className=\"leaf-scrollbar__thumb\"\n style={\n vertical\n ? { height: thumbSize, transform: `translateY(${logicalPosition}px)` }\n : { width: thumbSize, transform: `translateX(${logicalPosition}px)` }\n }\n />\n <div\n role=\"scrollbar\"\n tabIndex={maximum ? (scrollbarTabIndex ?? 0) : -1}\n className=\"leaf-scrollbar__control\"\n aria-label={\n vertical ? t('scrollbar.verticalScrollbar') : t('scrollbar.horizontalScrollbar')\n }\n aria-controls={externalViewport ? externalViewport.current?.id || undefined : id}\n aria-orientation={vertical ? 'vertical' : 'horizontal'}\n aria-valuemin={0}\n aria-valuemax={maximum}\n aria-valuenow={position}\n aria-disabled={!maximum || undefined}\n onKeyDown={(event) => {\n if (!maximum) return;\n const current = viewport.current;\n const position = current\n ? vertical\n ? current.scrollTop\n : Math.abs(current.scrollLeft)\n : 0;\n let value: number | undefined;\n if (event.key === 'Home') value = 0;\n if (event.key === 'End') value = maximum;\n if (event.key === 'PageDown') value = position + visibleSize;\n if (event.key === 'PageUp') value = position - visibleSize;\n if (event.key === 'ArrowDown') value = position + 40;\n if (event.key === 'ArrowUp') value = position - 40;\n if (event.key === 'ArrowRight') value = position + (geometry.rtl ? -40 : 40);\n if (event.key === 'ArrowLeft') value = position + (geometry.rtl ? 40 : -40);\n if (value === undefined) return;\n event.preventDefault();\n setPosition(vertical, value);\n }}\n onPointerDown={(event) => {\n if (event.button !== 0 || !maximum) return;\n event.preventDefault();\n const rect = event.currentTarget.getBoundingClientRect();\n const pointer = vertical ? event.clientY - rect.top : event.clientX - rect.left;\n const onThumb = pointer >= logicalPosition && pointer <= logicalPosition + thumbSize;\n drag.current = {\n pointerId: event.pointerId,\n vertical,\n offset: onThumb ? pointer - logicalPosition : thumbSize / 2,\n };\n event.currentTarget.setPointerCapture?.(event.pointerId);\n setDragging(true);\n if (!onThumb) {\n const next = Math.min(trackSize - thumbSize, Math.max(0, pointer - thumbSize / 2));\n setPosition(\n vertical,\n ((!vertical && geometry.rtl ? trackSize - thumbSize - next : next) /\n Math.max(1, trackSize - thumbSize)) *\n maximum,\n );\n }\n }}\n onPointerMove={(event) => {\n const active = drag.current;\n if (!active || active.pointerId !== event.pointerId || active.vertical !== vertical)\n return;\n const rect = event.currentTarget.getBoundingClientRect();\n const pointer = vertical ? event.clientY - rect.top : event.clientX - rect.left;\n const next = Math.min(trackSize - thumbSize, Math.max(0, pointer - active.offset));\n setPosition(\n vertical,\n ((!vertical && geometry.rtl ? trackSize - thumbSize - next : next) /\n Math.max(1, trackSize - thumbSize)) *\n maximum,\n );\n }}\n onPointerUp={() => {\n drag.current = undefined;\n setDragging(false);\n }}\n onPointerCancel={() => {\n drag.current = undefined;\n setDragging(false);\n }}\n onLostPointerCapture={() => {\n drag.current = undefined;\n setDragging(false);\n }}\n />\n </div>\n );\n }\n\n return (\n <div\n {...props}\n ref={mergedRoot}\n className={classes(\n 'leaf-scrollbar',\n externalViewport && 'leaf-scrollbar--external',\n className,\n )}\n data-scrollbar={scrollbar}\n data-scrolling={scrolling || undefined}\n data-dragging={dragging || undefined}\n style={{ height, maxHeight, ...style }}\n >\n {externalViewport ? (\n children\n ) : (\n <div\n ref={ref}\n id={id}\n tabIndex={tabIndex}\n {...viewportAccessibility}\n {...viewportProps}\n className={classes('leaf-scrollbar__viewport', viewportClassName)}\n style={{\n height: (style?.height ?? height) === undefined ? undefined : '100%',\n overflowX: orientation === 'vertical' ? 'hidden' : 'auto',\n overflowY: orientation === 'horizontal' ? 'hidden' : 'auto',\n ...viewportStyle,\n }}\n onScroll={(event) => {\n reportScroll();\n onScroll?.(event);\n viewportProps?.onScroll?.(event);\n }}\n >\n <div\n ref={content}\n className={classes('leaf-scrollbar__content', contentClassName)}\n style={contentStyle}\n >\n {children}\n </div>\n </div>\n )}\n {scrollbar !== 'hidden' &&\n (verticalOverflow || (scrollbar === 'always' && orientation !== 'horizontal')) &&\n bar(true)}\n {scrollbar !== 'hidden' &&\n (horizontalOverflow || (scrollbar === 'always' && orientation !== 'vertical')) &&\n bar(false)}\n </div>\n );\n },\n);\n\nexport const Scrollbar = forwardRef<HTMLDivElement, ScrollbarProps>(function Scrollbar(\n rawProps: ScrollbarProps,\n ref,\n) {\n const props = useComponentProps('Scrollbar', rawProps);\n return <ScrollbarControl {...props} ref={ref} />;\n});\nScrollbar.displayName = 'Scrollbar';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","initialGeometry","ScrollbarControl","forwardRef","height","maxHeight","orientation","scrollbar","viewportClassName","viewportStyle","contentClassName","contentStyle","verticalOffset","viewportProps","rootRef","scrollbarTabIndex","externalViewport","viewportRevision","resizeHandle","className","style","children","tabIndex","onScroll","providedId","role","label","labelledBy","describedBy","props","forwarded","internalViewport","useRef","viewport","root","content","ref","useMergedRef","mergedRoot","generatedId","useId","id","t","useText","geometry","setGeometry","useState","scrolling","setScrolling","dragging","setDragging","frame","undefined","timeout","drag","measure","useCallback","element","bounds","rootBounds","next","Math","getComputedStyle","previous","schedule","requestAnimationFrame","reportScroll","clearTimeout","setTimeout","useEffect","observer","ResizeObserver","external","mutation","MutationObserver","window","cancelAnimationFrame","setPosition","vertical","value","maximum","position","horizontalOverflow","verticalOverflow","inset","viewportAccessibility","bar","visibleSize","contentSize","offset","crossOverflow","endInset","trackSize","thumbSize","thumbPosition","logicalPosition","classes","event","current","rect","pointer","onThumb","active","Scrollbar","rawProps","useComponentProps"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type CSSProperties, type HTMLAttributes } from 'react';
1
+ import { type CSSProperties, type HTMLAttributes, type Ref, type RefObject } from 'react';
2
2
  export interface ScrollbarProps extends HTMLAttributes<HTMLDivElement> {
3
3
  height?: CSSProperties['height'];
4
4
  maxHeight?: CSSProperties['maxHeight'];
@@ -10,6 +10,16 @@ export interface ScrollbarProps extends HTMLAttributes<HTMLDivElement> {
10
10
  contentStyle?: CSSProperties;
11
11
  verticalOffset?: number;
12
12
  }
13
- export declare const ScrollbarControl: import("react").ForwardRefExoticComponent<ScrollbarProps & import("react").RefAttributes<HTMLDivElement>>;
13
+ interface ScrollbarControlProps extends ScrollbarProps {
14
+ /** Internal composition keeps semantic attributes on the actual scroll viewport. */
15
+ viewportProps?: HTMLAttributes<HTMLDivElement>;
16
+ rootRef?: Ref<HTMLDivElement>;
17
+ scrollbarTabIndex?: number;
18
+ externalViewport?: RefObject<HTMLElement | null>;
19
+ viewportRevision?: unknown;
20
+ resizeHandle?: boolean;
21
+ }
22
+ export declare const ScrollbarControl: import("react").ForwardRefExoticComponent<ScrollbarControlProps & import("react").RefAttributes<HTMLDivElement>>;
14
23
  export declare const Scrollbar: import("react").ForwardRefExoticComponent<ScrollbarProps & import("react").RefAttributes<HTMLDivElement>>;
24
+ export {};
15
25
  //# sourceMappingURL=scrollbar.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbar.d.cts","sourceRoot":"","sources":["../../../src/scrollbar/scrollbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,cAAc,EAMpB,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAsBD,eAAO,MAAM,gBAAgB,2GAmS5B,CAAC;AAEF,eAAO,MAAM,SAAS,2GAMpB,CAAC"}
1
+ {"version":3,"file":"scrollbar.d.cts","sourceRoot":"","sources":["../../../src/scrollbar/scrollbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,GAAG,EACR,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,UAAU,qBAAsB,SAAQ,cAAc;IACpD,oFAAoF;IACpF,aAAa,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAcD,eAAO,MAAM,gBAAgB,kHAyV5B,CAAC;AAEF,eAAO,MAAM,SAAS,2GAMpB,CAAC"}
@@ -52,7 +52,7 @@ const use_formatted_text_cjs_namespaceObject = require("../shared/use-formatted-
52
52
  const empty = [];
53
53
  const searchText = (option)=>option.searchLabel ?? ('string' == typeof option.label || 'number' == typeof option.label ? String(option.label) : option.value);
54
54
  const select_SelectControl = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(function(props, forwardedRef) {
55
- const { options: suppliedOptions, size = 'md', status: statusProp, placeholder, value, defaultValue, name, required: requiredProp, allowClear = false, form, className, style, disabled: disabledProp, id: idProp, onOpenChange, open: controlledOpen, defaultOpen, inputReadOnly, labelRender, tagRender, popupRender, onPopupScroll, onClick, onKeyDown, onBeforeInput, onCompositionStart, onPaste, onBlur, multiple = false, showSearch: searchProp = false, filterOption = true, onSearch, popupWidth = 'auto', popupMaxWidth = 420, popupClassName, popupStyle, popupPlacement, getPopupContainer, loading = false, notFoundContent, optionRender, maxCount, maxTagCount, tagWrap = true, allowCreate = false, onCreate, virtual: virtualProp, listHeight = 248, optionHeight: optionHeightProp, onChange: _onChange, ...inputProps } = props;
55
+ const { options: suppliedOptions, size = 'md', status: statusProp, placeholder, value, defaultValue, name, required: requiredProp, allowClear = false, form, className, style, disabled: disabledProp, id: idProp, onOpenChange, open: controlledOpen, defaultOpen, inputReadOnly, labelRender, tagRender, popupRender, onPopupScroll, onClick, onKeyDown, onBeforeInput, onCompositionStart, onPaste, onBlur, multiple = false, showSearch: searchProp = false, filterOption = true, onSearch, popupWidth = 'trigger', popupMaxWidth, popupClassName, popupStyle, popupPlacement, getPopupContainer, loading = false, notFoundContent, optionRender, maxCount, maxTagCount, tagWrap = true, allowCreate = false, onCreate, virtual: virtualProp, listHeight = 248, optionHeight: optionHeightProp, onChange: _onChange, ...inputProps } = props;
56
56
  const format = (0, use_formatted_text_cjs_namespaceObject.useFormattedText)();
57
57
  const showSearch = searchProp || allowCreate;
58
58
  const [created, setCreated] = (0, external_react_namespaceObject.useState)([]);
@@ -77,7 +77,7 @@ const select_SelectControl = /*#__PURE__*/ (0, external_react_namespaceObject.fo
77
77
  suppliedOptions
78
78
  ]);
79
79
  const virtual = virtualProp ?? options.length > 100;
80
- const { messages, theme, density } = (0, context_cjs_namespaceObject.useLeafConfig)();
80
+ const { messages, theme, density, direction: configuredDirection } = (0, context_cjs_namespaceObject.useLeafConfig)();
81
81
  const optionHeight = optionHeightProp ?? Math.max(24, (0, external_density_cjs_namespaceObject.estimateControlHeight)(theme, density) - 4);
82
82
  const field = (0, form_cjs_namespaceObject.useFormField)();
83
83
  const disabled = disabledProp || field?.disabled;
@@ -301,6 +301,7 @@ const select_SelectControl = /*#__PURE__*/ (0, external_react_namespaceObject.fo
301
301
  ref: root,
302
302
  className: (0, classes_cjs_namespaceObject.classes)('leaf-select', `leaf-select--${size}`, multiple && 'leaf-select--multiple', className),
303
303
  style: style,
304
+ dir: props.dir ?? configuredDirection,
304
305
  "data-status": status,
305
306
  "data-disabled": disabled ? '' : void 0,
306
307
  "data-open": open ? '' : void 0,
@@ -493,7 +494,6 @@ const select_SelectControl = /*#__PURE__*/ (0, external_react_namespaceObject.fo
493
494
  panelRef: panel,
494
495
  matchWidth: 'trigger' === popupWidth,
495
496
  width: 'trigger' === popupWidth ? void 0 : 'auto' === popupWidth ? 'max-content' : popupWidth,
496
- minWidth: 'auto' === popupWidth ? 'trigger' : void 0,
497
497
  maxWidth: popupMaxWidth,
498
498
  ...filtered.length ? listboxProps : {},
499
499
  className: (0, classes_cjs_namespaceObject.classes)('leaf-floating', 'leaf-select__panel', popupClassName),
@@ -1 +1 @@
1
- {"version":3,"file":"select/select.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/select/select.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 { Check, ChevronDown, LoaderCircle, Plus } from 'lucide-react';\nimport {\n type CSSProperties,\n forwardRef,\n type InputHTMLAttributes,\n type ReactNode,\n useEffect,\n useId,\n useMemo,\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 { FormValue, useFieldValue, useMergedRef } from '../shared/field';\nimport {\n FloatingPanel,\n type PopupOptions,\n useActiveOption,\n useFloatingDismiss,\n usePopupState,\n} from '../shared/floating';\nimport { FloatingFeedback } from '../shared/floating-feedback';\nimport { FloatingHighlight, useFloatingHighlight } from '../shared/floating-highlight';\nimport { useListMotion } from '../shared/motion';\nimport { SelectionContent } from '../shared/selection-content';\nimport type { ControlSize, ControlStatus } from '../shared/types';\nimport { useFormattedText } from '../shared/use-formatted-text';\n\nexport interface SelectOption {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n searchLabel?: string;\n}\nexport interface SelectOptionGroup {\n label: ReactNode;\n options: readonly SelectOption[];\n}\ninterface SelectBaseProps\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'type' | 'size' | 'value' | 'defaultValue' | 'onChange' | 'children' | 'multiple'\n >,\n PopupOptions {\n options: readonly (SelectOption | SelectOptionGroup)[];\n size?: ControlSize;\n status?: ControlStatus;\n allowClear?: boolean;\n showSearch?: boolean;\n filterOption?: boolean | ((query: string, option: SelectOption) => boolean);\n onSearch?: (query: string) => void;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n defaultOpen?: boolean;\n inputReadOnly?: boolean;\n labelRender?: (option: SelectOption) => ReactNode;\n tagRender?: (option: SelectOption, remove: () => void) => ReactNode;\n popupRender?: (content: ReactNode) => ReactNode;\n onPopupScroll?: (event: React.UIEvent<HTMLDivElement>) => void;\n popupWidth?: number | string;\n popupMaxWidth?: number | string;\n popupClassName?: string;\n popupStyle?: CSSProperties;\n loading?: boolean;\n notFoundContent?: ReactNode;\n optionRender?: (option: SelectOption) => ReactNode;\n maxCount?: number;\n maxTagCount?: number | 'responsive';\n tagWrap?: boolean;\n allowCreate?: boolean;\n onCreate?: (option: SelectOption) => void;\n virtual?: boolean;\n listHeight?: number;\n optionHeight?: number;\n}\nexport type SelectProps = SelectBaseProps &\n (\n | {\n multiple?: false;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string, option?: SelectOption) => void;\n }\n | {\n multiple: true;\n value?: readonly string[];\n defaultValue?: readonly string[];\n onChange?: (value: string[], options: SelectOption[]) => void;\n }\n );\nconst empty: readonly string[] = [];\nconst searchText = (option: SelectOption) =>\n option.searchLabel ??\n (typeof option.label === 'string' || typeof option.label === 'number'\n ? String(option.label)\n : option.value);\n/** Internal rendering primitive; public Select defaults are resolved at its boundary. */\nexport const SelectControl = forwardRef<HTMLInputElement, SelectProps>(function SelectControl(\n props: SelectProps,\n forwardedRef,\n) {\n const {\n options: suppliedOptions,\n size = 'md',\n status: statusProp,\n placeholder,\n value,\n defaultValue,\n name,\n required: requiredProp,\n allowClear = false,\n form,\n className,\n style,\n disabled: disabledProp,\n id: idProp,\n onOpenChange,\n open: controlledOpen,\n defaultOpen,\n inputReadOnly,\n labelRender,\n tagRender,\n popupRender,\n onPopupScroll,\n onClick,\n onKeyDown,\n onBeforeInput,\n onCompositionStart,\n onPaste,\n onBlur,\n multiple = false,\n showSearch: searchProp = false,\n filterOption = true,\n onSearch,\n popupWidth = 'auto',\n popupMaxWidth = 420,\n popupClassName,\n popupStyle,\n popupPlacement,\n getPopupContainer,\n loading = false,\n notFoundContent,\n optionRender,\n maxCount,\n maxTagCount,\n tagWrap = true,\n allowCreate = false,\n onCreate,\n virtual: virtualProp,\n listHeight = 248,\n optionHeight: optionHeightProp,\n onChange: _onChange,\n ...inputProps\n } = props;\n const format = useFormattedText();\n const showSearch = searchProp || allowCreate;\n const [created, setCreated] = useState<SelectOption[]>([]);\n const baseOptions = useMemo(\n () => suppliedOptions.flatMap((entry) => ('options' in entry ? [...entry.options] : [entry])),\n [suppliedOptions],\n );\n const options = useMemo(\n () => [\n ...baseOptions,\n ...created.filter((entry) => !baseOptions.some((option) => option.value === entry.value)),\n ],\n [baseOptions, created],\n );\n const optionGroups = useMemo(\n () =>\n new Map(\n suppliedOptions.flatMap((entry) =>\n 'options' in entry\n ? entry.options.map((option) => [option.value, entry.label] as const)\n : [],\n ),\n ),\n [suppliedOptions],\n );\n const virtual = virtualProp ?? options.length > 100;\n const { messages, theme, density } = useLeafConfig();\n const optionHeight = optionHeightProp ?? Math.max(24, estimateControlHeight(theme, density) - 4);\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const required = requiredProp ?? field?.required;\n const status = statusProp ?? (field?.error ? 'error' : undefined);\n const root = useRef<HTMLDivElement>(null);\n const input = useRef<HTMLInputElement>(null);\n const panel = useRef<HTMLDivElement>(null);\n const merged = useMergedRef(input, forwardedRef);\n const panelId = `${useId()}-listbox`;\n const [selected, setSelected] = useFieldValue<string | readonly string[]>(\n value,\n defaultValue ?? (multiple ? empty : ''),\n input,\n form,\n );\n const values = typeof selected === 'string' ? (selected ? [selected] : []) : selected;\n useListMotion(root, values[0], multiple ? '' : '.leaf-select__input-wrap[data-motion-key]');\n const atLimit =\n multiple && maxCount !== undefined && values.length >= Math.max(0, Math.floor(maxCount));\n const unavailable = (option: SelectOption) =>\n option.disabled || (atLimit && !values.includes(option.value));\n const selectedCache = useRef(new Map<string, SelectOption>());\n const nextCache = new Map<string, SelectOption>();\n for (const key of values) {\n const record = options.find((option) => option.value === key) ?? selectedCache.current.get(key);\n if (record) nextCache.set(key, record);\n }\n selectedCache.current = nextCache;\n const selectedOptions = values.map((key) => nextCache.get(key) ?? { value: key, label: key });\n // null keeps the selected label in the native input until a search is edited.\n const [query, setQuery] = useState<string | null>(null);\n const searchQuery = query ?? '';\n const [open, setOpen] = usePopupState(\n disabled || inputProps.readOnly,\n onOpenChange,\n controlledOpen,\n defaultOpen,\n );\n const [highlighted, setHighlighted] = useState(-1);\n const matched =\n !searchQuery || !showSearch || filterOption === false\n ? options\n : options.filter((option) =>\n typeof filterOption === 'function'\n ? filterOption(searchQuery, option)\n : searchText(option).toLocaleLowerCase().includes(searchQuery.toLocaleLowerCase()),\n );\n const newValue = searchQuery.trim();\n const createOption =\n allowCreate &&\n newValue &&\n !options.some((option) => option.value === newValue || searchText(option) === newValue)\n ? { value: newValue, label: newValue }\n : null;\n const filtered = createOption ? [...matched, createOption] : matched;\n const rows = useMemo(() => {\n const entries: { key: string; option?: SelectOption; group?: ReactNode; index: number }[] = [];\n let previousGroup: ReactNode;\n filtered.forEach((option, index) => {\n const group = optionGroups.get(option.value);\n if (group !== undefined && group !== previousGroup)\n entries.push({ key: `group-${option.value}`, group, index: -1 });\n entries.push({ key: option.value, option, index });\n previousGroup = group;\n });\n return entries;\n }, [filtered, optionGroups]);\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => panel.current,\n estimateSize: () => Math.max(24, optionHeight),\n overscan: 5,\n getItemKey: (index) => rows[index]?.key ?? index,\n enabled: open && virtual,\n initialRect: { height: listHeight, width: 240 },\n });\n useEffect(() => {\n if (open && virtual && highlighted >= 0) {\n const index = rows.findIndex((row) => row.index === highlighted);\n if (index >= 0) virtualizer.scrollToIndex(index, { align: 'auto' });\n }\n }, [open, virtual, highlighted, rows, virtualizer]);\n const updateQuery = (next: string) => {\n setQuery(next);\n onSearch?.(next);\n };\n const close = () => {\n setOpen(false);\n setQuery(null);\n if (searchQuery) onSearch?.('');\n };\n useFloatingDismiss(open, close, input, panel, root);\n useActiveOption(open, highlighted >= 0 ? `${panelId}-${highlighted}` : undefined, panel);\n const highlight = useFloatingHighlight(\n open,\n panel,\n highlighted >= 0 ? `${panelId}-${highlighted}` : undefined,\n `${searchQuery}:${filtered[highlighted]?.value}:${rows.length}:${virtualizer.range?.startIndex}:${virtualizer.range?.endIndex}`,\n );\n useEffect(() => {\n if (!open) setQuery(null);\n }, [open]);\n const change = (next: readonly string[]) => {\n if (disabled || inputProps.readOnly) return;\n setSelected(multiple ? next : (next[0] ?? ''));\n if (props.multiple)\n props.onChange?.(\n [...next],\n [\n ...selectedOptions,\n ...options.filter((option) => !values.includes(option.value)),\n ...(createOption ? [createOption] : []),\n ].filter((option) => next.includes(option.value)),\n );\n else\n props.onChange?.(\n next[0] ?? '',\n [...options, ...(createOption ? [createOption] : [])].find(\n (option) => option.value === next[0],\n ),\n );\n };\n const openMenu = () => {\n if (disabled || inputProps.readOnly) return;\n const active = filtered.findIndex(\n (option) => values.includes(option.value) && !unavailable(option),\n );\n setHighlighted(active >= 0 ? active : filtered.findIndex((option) => !unavailable(option)));\n setOpen(true);\n };\n const beginSearch = () => {\n if (!showSearch || disabled || inputProps.readOnly || inputReadOnly) return;\n if (!multiple && query === null) input.current?.select();\n if (!open) openMenu();\n };\n const selectOption = (option: SelectOption) => {\n if (unavailable(option) || inputProps.readOnly) return;\n if (createOption && option.value === createOption.value) {\n setCreated((previous) => [...previous, option]);\n onCreate?.(option);\n }\n change(\n multiple\n ? values.includes(option.value)\n ? values.filter((value) => value !== option.value)\n : [...values, option.value]\n : [option.value],\n );\n if (multiple) updateQuery('');\n else close();\n input.current?.focus();\n };\n const move = (direction: number) => {\n if (!filtered.length) return;\n let next = highlighted < 0 ? (direction > 0 ? -1 : filtered.length) : highlighted;\n for (let i = 0; i < filtered.length; i++) {\n next = (next + direction + filtered.length) % filtered.length;\n const candidate = filtered[next];\n if (candidate && !unavailable(candidate)) {\n setHighlighted(next);\n break;\n }\n }\n };\n const renderOption = (option: SelectOption, index: number) => (\n <button\n key={option.value}\n id={`${panelId}-${index}`}\n aria-posinset={index + 1}\n aria-setsize={filtered.length}\n type=\"button\"\n role=\"option\"\n aria-selected={values.includes(option.value)}\n aria-disabled={option.disabled || (atLimit && !values.includes(option.value)) || undefined}\n data-highlighted={highlighted === index || undefined}\n className=\"leaf-floating__option\"\n disabled={option.disabled || (atLimit && !values.includes(option.value))}\n tabIndex={-1}\n onMouseEnter={() => {\n if (!unavailable(option)) setHighlighted(index);\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => selectOption(option)}\n >\n <span className=\"leaf-floating__option-label\">\n {createOption?.value === option.value ? (\n <>\n <Plus size={14} aria-hidden=\"true\" />{' '}\n {format('select.create', {\n label: typeof option.label === 'string' ? option.label : option.value,\n })}\n </>\n ) : optionRender ? (\n optionRender(option)\n ) : (\n option.label\n )}\n </span>\n <Check size={15} aria-hidden=\"true\" className=\"leaf-select__check\" />\n </button>\n );\n const displayLabel = selectedOptions[0]\n ? (labelRender?.(selectedOptions[0]) ?? selectedOptions[0].label)\n : undefined;\n const textLabel =\n typeof displayLabel === 'string' || typeof displayLabel === 'number'\n ? String(displayLabel)\n : '';\n const inputValue = multiple ? searchQuery : showSearch && open ? (query ?? textLabel) : textLabel;\n const clearable = allowClear && values.length > 0 && !disabled && !inputProps.readOnly;\n const listboxProps = {\n id: panelId,\n role: 'listbox' as const,\n 'aria-busy': loading || undefined,\n 'aria-label': inputProps['aria-label'] ?? messages.select.placeholder,\n 'aria-multiselectable': multiple || undefined,\n };\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Pointer events on padding forward to the keyboard-accessible combobox input.\n // biome-ignore lint/a11y/useKeyWithClickEvents: The combobox input owns all keyboard interaction; this wrapper only extends its hit area.\n <div\n ref={root}\n className={classes(\n 'leaf-select',\n `leaf-select--${size}`,\n multiple && 'leaf-select--multiple',\n className,\n )}\n style={style}\n data-status={status}\n data-disabled={disabled ? '' : undefined}\n data-open={open ? '' : undefined}\n data-clearable={clearable ? '' : undefined}\n data-searchable={showSearch ? '' : undefined}\n onMouseDown={(event) => {\n if (\n !disabled &&\n event.target instanceof Element &&\n !event.target.closest('input, button, a')\n )\n event.preventDefault();\n }}\n onClick={(event) => {\n if (\n !disabled &&\n event.target instanceof Element &&\n root.current?.contains(event.target) &&\n !event.target.closest('input, button, a')\n ) {\n input.current?.focus();\n input.current?.click();\n }\n }}\n >\n <SelectionContent\n className=\"leaf-select__content\"\n tagClassName=\"leaf-select__tag\"\n tagWrap={tagWrap}\n maxTagCount={maxTagCount}\n searchable={showSearch && !inputProps.readOnly && !inputReadOnly}\n query={searchQuery}\n removeLabel={messages.common.remove}\n items={\n multiple\n ? selectedOptions.map((option) => {\n const remove = () => {\n if (disabled || inputProps.readOnly || option.disabled) return;\n change(values.filter((item) => item !== option.value));\n input.current?.focus();\n };\n return {\n key: option.value,\n label: option.label,\n text: searchText(option),\n remove:\n !disabled && !inputProps.readOnly && !option.disabled ? remove : undefined,\n render: tagRender?.(option, remove),\n };\n })\n : undefined\n }\n >\n <span className=\"leaf-select__input-wrap\" data-motion-key={values[0] ?? ''}>\n {!multiple &&\n !textLabel &&\n displayLabel != null &&\n (!showSearch || !open || query === null) && (\n <span className=\"leaf-select__value\">{displayLabel}</span>\n )}\n <input\n {...inputProps}\n ref={merged}\n id={idProp ?? field?.id}\n form={form}\n type=\"text\"\n className=\"leaf-select__input\"\n disabled={disabled}\n readOnly={!showSearch || inputProps.readOnly || inputReadOnly}\n value={inputValue}\n placeholder={values.length ? '' : (placeholder ?? messages.select.placeholder)}\n autoComplete=\"off\"\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={panelId}\n aria-autocomplete={showSearch ? 'list' : undefined}\n aria-activedescendant={\n open && filtered[highlighted] ? `${panelId}-${highlighted}` : undefined\n }\n aria-required={required || undefined}\n aria-invalid={status === 'error' ? true : inputProps['aria-invalid']}\n aria-describedby={\n [inputProps['aria-describedby'], field?.descriptionId].filter(Boolean).join(' ') ||\n undefined\n }\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n if (open && !showSearch) close();\n else if (!open) openMenu();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n if (\n !event.defaultPrevented &&\n !root.current?.contains(event.relatedTarget) &&\n !panel.current?.contains(event.relatedTarget)\n )\n close();\n }}\n onChange={(event) => {\n if (!open) openMenu();\n updateQuery(event.target.value);\n setHighlighted(-1);\n }}\n onBeforeInput={(event) => {\n onBeforeInput?.(event);\n if (!event.defaultPrevented) beginSearch();\n }}\n onCompositionStart={(event) => {\n onCompositionStart?.(event);\n if (!event.defaultPrevented) beginSearch();\n }}\n onPaste={(event) => {\n onPaste?.(event);\n if (!event.defaultPrevented) beginSearch();\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing) return;\n if (\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n (event.key.length === 1 || event.key === 'Backspace' || event.key === 'Delete')\n )\n beginSearch();\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) openMenu();\n else move(event.key === 'ArrowDown' ? 1 : -1);\n } else if ((event.key === 'Home' || event.key === 'End') && open && !showSearch) {\n event.preventDefault();\n const candidates = filtered\n .map((option, index) => ({ option, index }))\n .filter(({ option }) => !unavailable(option));\n setHighlighted(\n (event.key === 'Home' ? candidates[0] : candidates.at(-1))?.index ?? -1,\n );\n } else if (event.key === 'Enter' || (event.key === ' ' && !showSearch)) {\n event.preventDefault();\n if (!open) openMenu();\n else {\n const option =\n filtered[highlighted] ?? filtered.find((option) => !unavailable(option));\n if (option) selectOption(option);\n }\n } else if (event.key === 'Escape' && open) {\n event.preventDefault();\n event.stopPropagation();\n close();\n } else if (event.key === 'Tab' && open) close();\n else if (\n event.key === 'Backspace' &&\n multiple &&\n !searchQuery &&\n !inputProps.readOnly\n ) {\n const last = [...values]\n .reverse()\n .find((value) => !options.find((option) => option.value === value)?.disabled);\n if (last) {\n event.preventDefault();\n change(values.filter((value) => value !== last));\n }\n }\n }}\n />\n </span>\n </SelectionContent>\n <button\n type=\"button\"\n className=\"leaf-select__arrow\"\n tabIndex={-1}\n disabled={disabled}\n aria-label={messages.select.placeholder}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (open) close();\n else openMenu();\n input.current?.focus();\n }}\n >\n {loading ? (\n <LoaderCircle className=\"leaf-select__spinner\" size={16} aria-hidden=\"true\" />\n ) : (\n <ChevronDown size={16} aria-hidden=\"true\" />\n )}\n </button>\n {clearable && (\n <ClearButton\n label={messages.select.clear}\n beforeArrow\n onClear={() => {\n change(empty);\n close();\n input.current?.focus();\n }}\n />\n )}\n <FormValue\n name={multiple ? undefined : name}\n form={form}\n value={multiple ? values.join(',') : (values[0] ?? '')}\n disabled={disabled}\n required={required}\n triggerRef={input}\n />\n {multiple &&\n values.map((value) => (\n <input\n key={value}\n type=\"hidden\"\n name={name}\n form={form}\n value={value}\n disabled={disabled}\n />\n ))}\n <FloatingPanel\n open={open}\n placement={popupPlacement}\n container={getPopupContainer}\n triggerRef={root}\n panelRef={panel}\n matchWidth={popupWidth === 'trigger'}\n width={\n popupWidth === 'trigger' ? undefined : popupWidth === 'auto' ? 'max-content' : popupWidth\n }\n minWidth={popupWidth === 'auto' ? 'trigger' : undefined}\n maxWidth={popupMaxWidth}\n {...(filtered.length ? listboxProps : {})}\n className={classes('leaf-floating', 'leaf-select__panel', popupClassName)}\n data-hover-motion=\"\"\n style={{ maxHeight: listHeight, ...popupStyle }}\n onScroll={onPopupScroll}\n >\n {/* Feedback is announced beside an empty listbox, never as a selectable option. */}\n {!filtered.length && <div {...listboxProps} />}\n <FloatingHighlight\n style={highlight}\n selected={values.includes(filtered[highlighted]?.value ?? '')}\n />\n {(popupRender ?? ((content: ReactNode) => content))(\n loading && !filtered.length ? (\n <FloatingFeedback loading>{messages.common.loading}</FloatingFeedback>\n ) : filtered.length ? (\n virtual ? (\n <div\n style={{\n height: virtualizer.getTotalSize(),\n position: 'relative',\n minWidth: '100%',\n }}\n >\n {virtualizer.getVirtualItems().map((item) => {\n const row = rows[item.index];\n if (!row) return null;\n return (\n <div\n key={row.key}\n ref={virtualizer.measureElement}\n data-index={item.index}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n transform: `translateY(${item.start}px)`,\n }}\n >\n {row.option ? (\n renderOption(row.option, row.index)\n ) : (\n <div className=\"leaf-select__group\">{row.group}</div>\n )}\n </div>\n );\n })}\n </div>\n ) : (\n rows.map((row) =>\n row.option ? (\n renderOption(row.option, row.index)\n ) : (\n <div key={row.key} className=\"leaf-select__group\">\n {row.group}\n </div>\n ),\n )\n )\n ) : (\n <FloatingFeedback>{notFoundContent ?? messages.select.empty}</FloatingFeedback>\n ),\n )}\n </FloatingPanel>\n </div>\n );\n});\nSelectControl.displayName = 'SelectControl';\n\nexport const Select = forwardRef<HTMLInputElement, SelectProps>(function Select(rawProps, ref) {\n const props = useComponentProps('Select', rawProps);\n return <SelectControl {...props} ref={ref} />;\n});\nSelect.displayName = 'Select';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","empty","searchText","option","String","SelectControl","forwardRef","props","forwardedRef","suppliedOptions","size","statusProp","placeholder","value","defaultValue","name","requiredProp","allowClear","form","className","style","disabledProp","idProp","onOpenChange","controlledOpen","defaultOpen","inputReadOnly","labelRender","tagRender","popupRender","onPopupScroll","onClick","onKeyDown","onBeforeInput","onCompositionStart","onPaste","onBlur","multiple","searchProp","filterOption","onSearch","popupWidth","popupMaxWidth","popupClassName","popupStyle","popupPlacement","getPopupContainer","loading","notFoundContent","optionRender","maxCount","maxTagCount","tagWrap","allowCreate","onCreate","virtualProp","listHeight","optionHeightProp","_onChange","inputProps","format","useFormattedText","showSearch","created","setCreated","useState","baseOptions","useMemo","entry","options","optionGroups","Map","virtual","messages","theme","density","useLeafConfig","optionHeight","Math","estimateControlHeight","field","useFormField","disabled","required","status","undefined","root","useRef","input","panel","merged","useMergedRef","panelId","useId","selected","setSelected","useFieldValue","useListMotion","atLimit","unavailable","selectedCache","nextCache","record","selectedOptions","query","setQuery","searchQuery","open","setOpen","usePopupState","highlighted","setHighlighted","matched","newValue","createOption","filtered","rows","entries","previousGroup","index","group","virtualizer","useVirtualizer","useEffect","row","updateQuery","next","close","useFloatingDismiss","useActiveOption","highlight","useFloatingHighlight","change","openMenu","active","beginSearch","selectOption","previous","move","direction","i","candidate","renderOption","event","Plus","Check","displayLabel","textLabel","inputValue","clearable","listboxProps","classes","Element","SelectionContent","remove","item","Boolean","candidates","last","LoaderCircle","ChevronDown","ClearButton","FormValue","FloatingPanel","FloatingHighlight","content","FloatingFeedback","Select","rawProps","ref","useComponentProps"],"mappings":"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"}
1
+ {"version":3,"file":"select/select.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/select/select.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 { Check, ChevronDown, LoaderCircle, Plus } from 'lucide-react';\nimport {\n type CSSProperties,\n forwardRef,\n type InputHTMLAttributes,\n type ReactNode,\n useEffect,\n useId,\n useMemo,\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 { FormValue, useFieldValue, useMergedRef } from '../shared/field';\nimport {\n FloatingPanel,\n type PopupOptions,\n useActiveOption,\n useFloatingDismiss,\n usePopupState,\n} from '../shared/floating';\nimport { FloatingFeedback } from '../shared/floating-feedback';\nimport { FloatingHighlight, useFloatingHighlight } from '../shared/floating-highlight';\nimport { useListMotion } from '../shared/motion';\nimport { SelectionContent } from '../shared/selection-content';\nimport type { ControlSize, ControlStatus } from '../shared/types';\nimport { useFormattedText } from '../shared/use-formatted-text';\n\nexport interface SelectOption {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n searchLabel?: string;\n}\nexport interface SelectOptionGroup {\n label: ReactNode;\n options: readonly SelectOption[];\n}\ninterface SelectBaseProps\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'type' | 'size' | 'value' | 'defaultValue' | 'onChange' | 'children' | 'multiple'\n >,\n PopupOptions {\n options: readonly (SelectOption | SelectOptionGroup)[];\n size?: ControlSize;\n status?: ControlStatus;\n allowClear?: boolean;\n showSearch?: boolean;\n filterOption?: boolean | ((query: string, option: SelectOption) => boolean);\n onSearch?: (query: string) => void;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n defaultOpen?: boolean;\n inputReadOnly?: boolean;\n labelRender?: (option: SelectOption) => ReactNode;\n tagRender?: (option: SelectOption, remove: () => void) => ReactNode;\n popupRender?: (content: ReactNode) => ReactNode;\n onPopupScroll?: (event: React.UIEvent<HTMLDivElement>) => void;\n popupWidth?: number | string;\n popupMaxWidth?: number | string;\n popupClassName?: string;\n popupStyle?: CSSProperties;\n loading?: boolean;\n notFoundContent?: ReactNode;\n optionRender?: (option: SelectOption) => ReactNode;\n maxCount?: number;\n maxTagCount?: number | 'responsive';\n tagWrap?: boolean;\n allowCreate?: boolean;\n onCreate?: (option: SelectOption) => void;\n virtual?: boolean;\n listHeight?: number;\n optionHeight?: number;\n}\nexport type SelectProps = SelectBaseProps &\n (\n | {\n multiple?: false;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string, option?: SelectOption) => void;\n }\n | {\n multiple: true;\n value?: readonly string[];\n defaultValue?: readonly string[];\n onChange?: (value: string[], options: SelectOption[]) => void;\n }\n );\nconst empty: readonly string[] = [];\nconst searchText = (option: SelectOption) =>\n option.searchLabel ??\n (typeof option.label === 'string' || typeof option.label === 'number'\n ? String(option.label)\n : option.value);\n/** Internal rendering primitive; public Select defaults are resolved at its boundary. */\nexport const SelectControl = forwardRef<HTMLInputElement, SelectProps>(function SelectControl(\n props: SelectProps,\n forwardedRef,\n) {\n const {\n options: suppliedOptions,\n size = 'md',\n status: statusProp,\n placeholder,\n value,\n defaultValue,\n name,\n required: requiredProp,\n allowClear = false,\n form,\n className,\n style,\n disabled: disabledProp,\n id: idProp,\n onOpenChange,\n open: controlledOpen,\n defaultOpen,\n inputReadOnly,\n labelRender,\n tagRender,\n popupRender,\n onPopupScroll,\n onClick,\n onKeyDown,\n onBeforeInput,\n onCompositionStart,\n onPaste,\n onBlur,\n multiple = false,\n showSearch: searchProp = false,\n filterOption = true,\n onSearch,\n popupWidth = 'trigger',\n popupMaxWidth,\n popupClassName,\n popupStyle,\n popupPlacement,\n getPopupContainer,\n loading = false,\n notFoundContent,\n optionRender,\n maxCount,\n maxTagCount,\n tagWrap = true,\n allowCreate = false,\n onCreate,\n virtual: virtualProp,\n listHeight = 248,\n optionHeight: optionHeightProp,\n onChange: _onChange,\n ...inputProps\n } = props;\n const format = useFormattedText();\n const showSearch = searchProp || allowCreate;\n const [created, setCreated] = useState<SelectOption[]>([]);\n const baseOptions = useMemo(\n () => suppliedOptions.flatMap((entry) => ('options' in entry ? [...entry.options] : [entry])),\n [suppliedOptions],\n );\n const options = useMemo(\n () => [\n ...baseOptions,\n ...created.filter((entry) => !baseOptions.some((option) => option.value === entry.value)),\n ],\n [baseOptions, created],\n );\n const optionGroups = useMemo(\n () =>\n new Map(\n suppliedOptions.flatMap((entry) =>\n 'options' in entry\n ? entry.options.map((option) => [option.value, entry.label] as const)\n : [],\n ),\n ),\n [suppliedOptions],\n );\n const virtual = virtualProp ?? options.length > 100;\n const { messages, theme, density, direction: configuredDirection } = useLeafConfig();\n const optionHeight = optionHeightProp ?? Math.max(24, estimateControlHeight(theme, density) - 4);\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const required = requiredProp ?? field?.required;\n const status = statusProp ?? (field?.error ? 'error' : undefined);\n const root = useRef<HTMLDivElement>(null);\n const input = useRef<HTMLInputElement>(null);\n const panel = useRef<HTMLDivElement>(null);\n const merged = useMergedRef(input, forwardedRef);\n const panelId = `${useId()}-listbox`;\n const [selected, setSelected] = useFieldValue<string | readonly string[]>(\n value,\n defaultValue ?? (multiple ? empty : ''),\n input,\n form,\n );\n const values = typeof selected === 'string' ? (selected ? [selected] : []) : selected;\n useListMotion(root, values[0], multiple ? '' : '.leaf-select__input-wrap[data-motion-key]');\n const atLimit =\n multiple && maxCount !== undefined && values.length >= Math.max(0, Math.floor(maxCount));\n const unavailable = (option: SelectOption) =>\n option.disabled || (atLimit && !values.includes(option.value));\n const selectedCache = useRef(new Map<string, SelectOption>());\n const nextCache = new Map<string, SelectOption>();\n for (const key of values) {\n const record = options.find((option) => option.value === key) ?? selectedCache.current.get(key);\n if (record) nextCache.set(key, record);\n }\n selectedCache.current = nextCache;\n const selectedOptions = values.map((key) => nextCache.get(key) ?? { value: key, label: key });\n // null keeps the selected label in the native input until a search is edited.\n const [query, setQuery] = useState<string | null>(null);\n const searchQuery = query ?? '';\n const [open, setOpen] = usePopupState(\n disabled || inputProps.readOnly,\n onOpenChange,\n controlledOpen,\n defaultOpen,\n );\n const [highlighted, setHighlighted] = useState(-1);\n const matched =\n !searchQuery || !showSearch || filterOption === false\n ? options\n : options.filter((option) =>\n typeof filterOption === 'function'\n ? filterOption(searchQuery, option)\n : searchText(option).toLocaleLowerCase().includes(searchQuery.toLocaleLowerCase()),\n );\n const newValue = searchQuery.trim();\n const createOption =\n allowCreate &&\n newValue &&\n !options.some((option) => option.value === newValue || searchText(option) === newValue)\n ? { value: newValue, label: newValue }\n : null;\n const filtered = createOption ? [...matched, createOption] : matched;\n const rows = useMemo(() => {\n const entries: { key: string; option?: SelectOption; group?: ReactNode; index: number }[] = [];\n let previousGroup: ReactNode;\n filtered.forEach((option, index) => {\n const group = optionGroups.get(option.value);\n if (group !== undefined && group !== previousGroup)\n entries.push({ key: `group-${option.value}`, group, index: -1 });\n entries.push({ key: option.value, option, index });\n previousGroup = group;\n });\n return entries;\n }, [filtered, optionGroups]);\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => panel.current,\n estimateSize: () => Math.max(24, optionHeight),\n overscan: 5,\n getItemKey: (index) => rows[index]?.key ?? index,\n enabled: open && virtual,\n initialRect: { height: listHeight, width: 240 },\n });\n useEffect(() => {\n if (open && virtual && highlighted >= 0) {\n const index = rows.findIndex((row) => row.index === highlighted);\n if (index >= 0) virtualizer.scrollToIndex(index, { align: 'auto' });\n }\n }, [open, virtual, highlighted, rows, virtualizer]);\n const updateQuery = (next: string) => {\n setQuery(next);\n onSearch?.(next);\n };\n const close = () => {\n setOpen(false);\n setQuery(null);\n if (searchQuery) onSearch?.('');\n };\n useFloatingDismiss(open, close, input, panel, root);\n useActiveOption(open, highlighted >= 0 ? `${panelId}-${highlighted}` : undefined, panel);\n const highlight = useFloatingHighlight(\n open,\n panel,\n highlighted >= 0 ? `${panelId}-${highlighted}` : undefined,\n `${searchQuery}:${filtered[highlighted]?.value}:${rows.length}:${virtualizer.range?.startIndex}:${virtualizer.range?.endIndex}`,\n );\n useEffect(() => {\n if (!open) setQuery(null);\n }, [open]);\n const change = (next: readonly string[]) => {\n if (disabled || inputProps.readOnly) return;\n setSelected(multiple ? next : (next[0] ?? ''));\n if (props.multiple)\n props.onChange?.(\n [...next],\n [\n ...selectedOptions,\n ...options.filter((option) => !values.includes(option.value)),\n ...(createOption ? [createOption] : []),\n ].filter((option) => next.includes(option.value)),\n );\n else\n props.onChange?.(\n next[0] ?? '',\n [...options, ...(createOption ? [createOption] : [])].find(\n (option) => option.value === next[0],\n ),\n );\n };\n const openMenu = () => {\n if (disabled || inputProps.readOnly) return;\n const active = filtered.findIndex(\n (option) => values.includes(option.value) && !unavailable(option),\n );\n setHighlighted(active >= 0 ? active : filtered.findIndex((option) => !unavailable(option)));\n setOpen(true);\n };\n const beginSearch = () => {\n if (!showSearch || disabled || inputProps.readOnly || inputReadOnly) return;\n if (!multiple && query === null) input.current?.select();\n if (!open) openMenu();\n };\n const selectOption = (option: SelectOption) => {\n if (unavailable(option) || inputProps.readOnly) return;\n if (createOption && option.value === createOption.value) {\n setCreated((previous) => [...previous, option]);\n onCreate?.(option);\n }\n change(\n multiple\n ? values.includes(option.value)\n ? values.filter((value) => value !== option.value)\n : [...values, option.value]\n : [option.value],\n );\n if (multiple) updateQuery('');\n else close();\n input.current?.focus();\n };\n const move = (direction: number) => {\n if (!filtered.length) return;\n let next = highlighted < 0 ? (direction > 0 ? -1 : filtered.length) : highlighted;\n for (let i = 0; i < filtered.length; i++) {\n next = (next + direction + filtered.length) % filtered.length;\n const candidate = filtered[next];\n if (candidate && !unavailable(candidate)) {\n setHighlighted(next);\n break;\n }\n }\n };\n const renderOption = (option: SelectOption, index: number) => (\n <button\n key={option.value}\n id={`${panelId}-${index}`}\n aria-posinset={index + 1}\n aria-setsize={filtered.length}\n type=\"button\"\n role=\"option\"\n aria-selected={values.includes(option.value)}\n aria-disabled={option.disabled || (atLimit && !values.includes(option.value)) || undefined}\n data-highlighted={highlighted === index || undefined}\n className=\"leaf-floating__option\"\n disabled={option.disabled || (atLimit && !values.includes(option.value))}\n tabIndex={-1}\n onMouseEnter={() => {\n if (!unavailable(option)) setHighlighted(index);\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => selectOption(option)}\n >\n <span className=\"leaf-floating__option-label\">\n {createOption?.value === option.value ? (\n <>\n <Plus size={14} aria-hidden=\"true\" />{' '}\n {format('select.create', {\n label: typeof option.label === 'string' ? option.label : option.value,\n })}\n </>\n ) : optionRender ? (\n optionRender(option)\n ) : (\n option.label\n )}\n </span>\n <Check size={15} aria-hidden=\"true\" className=\"leaf-select__check\" />\n </button>\n );\n const displayLabel = selectedOptions[0]\n ? (labelRender?.(selectedOptions[0]) ?? selectedOptions[0].label)\n : undefined;\n const textLabel =\n typeof displayLabel === 'string' || typeof displayLabel === 'number'\n ? String(displayLabel)\n : '';\n const inputValue = multiple ? searchQuery : showSearch && open ? (query ?? textLabel) : textLabel;\n const clearable = allowClear && values.length > 0 && !disabled && !inputProps.readOnly;\n const listboxProps = {\n id: panelId,\n role: 'listbox' as const,\n 'aria-busy': loading || undefined,\n 'aria-label': inputProps['aria-label'] ?? messages.select.placeholder,\n 'aria-multiselectable': multiple || undefined,\n };\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Pointer events on padding forward to the keyboard-accessible combobox input.\n // biome-ignore lint/a11y/useKeyWithClickEvents: The combobox input owns all keyboard interaction; this wrapper only extends its hit area.\n <div\n ref={root}\n className={classes(\n 'leaf-select',\n `leaf-select--${size}`,\n multiple && 'leaf-select--multiple',\n className,\n )}\n style={style}\n dir={props.dir ?? configuredDirection}\n data-status={status}\n data-disabled={disabled ? '' : undefined}\n data-open={open ? '' : undefined}\n data-clearable={clearable ? '' : undefined}\n data-searchable={showSearch ? '' : undefined}\n onMouseDown={(event) => {\n if (\n !disabled &&\n event.target instanceof Element &&\n !event.target.closest('input, button, a')\n )\n event.preventDefault();\n }}\n onClick={(event) => {\n if (\n !disabled &&\n event.target instanceof Element &&\n root.current?.contains(event.target) &&\n !event.target.closest('input, button, a')\n ) {\n input.current?.focus();\n input.current?.click();\n }\n }}\n >\n <SelectionContent\n className=\"leaf-select__content\"\n tagClassName=\"leaf-select__tag\"\n tagWrap={tagWrap}\n maxTagCount={maxTagCount}\n searchable={showSearch && !inputProps.readOnly && !inputReadOnly}\n query={searchQuery}\n removeLabel={messages.common.remove}\n items={\n multiple\n ? selectedOptions.map((option) => {\n const remove = () => {\n if (disabled || inputProps.readOnly || option.disabled) return;\n change(values.filter((item) => item !== option.value));\n input.current?.focus();\n };\n return {\n key: option.value,\n label: option.label,\n text: searchText(option),\n remove:\n !disabled && !inputProps.readOnly && !option.disabled ? remove : undefined,\n render: tagRender?.(option, remove),\n };\n })\n : undefined\n }\n >\n <span className=\"leaf-select__input-wrap\" data-motion-key={values[0] ?? ''}>\n {!multiple &&\n !textLabel &&\n displayLabel != null &&\n (!showSearch || !open || query === null) && (\n <span className=\"leaf-select__value\">{displayLabel}</span>\n )}\n <input\n {...inputProps}\n ref={merged}\n id={idProp ?? field?.id}\n form={form}\n type=\"text\"\n className=\"leaf-select__input\"\n disabled={disabled}\n readOnly={!showSearch || inputProps.readOnly || inputReadOnly}\n value={inputValue}\n placeholder={values.length ? '' : (placeholder ?? messages.select.placeholder)}\n autoComplete=\"off\"\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={panelId}\n aria-autocomplete={showSearch ? 'list' : undefined}\n aria-activedescendant={\n open && filtered[highlighted] ? `${panelId}-${highlighted}` : undefined\n }\n aria-required={required || undefined}\n aria-invalid={status === 'error' ? true : inputProps['aria-invalid']}\n aria-describedby={\n [inputProps['aria-describedby'], field?.descriptionId].filter(Boolean).join(' ') ||\n undefined\n }\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n if (open && !showSearch) close();\n else if (!open) openMenu();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n if (\n !event.defaultPrevented &&\n !root.current?.contains(event.relatedTarget) &&\n !panel.current?.contains(event.relatedTarget)\n )\n close();\n }}\n onChange={(event) => {\n if (!open) openMenu();\n updateQuery(event.target.value);\n setHighlighted(-1);\n }}\n onBeforeInput={(event) => {\n onBeforeInput?.(event);\n if (!event.defaultPrevented) beginSearch();\n }}\n onCompositionStart={(event) => {\n onCompositionStart?.(event);\n if (!event.defaultPrevented) beginSearch();\n }}\n onPaste={(event) => {\n onPaste?.(event);\n if (!event.defaultPrevented) beginSearch();\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing) return;\n if (\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n (event.key.length === 1 || event.key === 'Backspace' || event.key === 'Delete')\n )\n beginSearch();\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) openMenu();\n else move(event.key === 'ArrowDown' ? 1 : -1);\n } else if ((event.key === 'Home' || event.key === 'End') && open && !showSearch) {\n event.preventDefault();\n const candidates = filtered\n .map((option, index) => ({ option, index }))\n .filter(({ option }) => !unavailable(option));\n setHighlighted(\n (event.key === 'Home' ? candidates[0] : candidates.at(-1))?.index ?? -1,\n );\n } else if (event.key === 'Enter' || (event.key === ' ' && !showSearch)) {\n event.preventDefault();\n if (!open) openMenu();\n else {\n const option =\n filtered[highlighted] ?? filtered.find((option) => !unavailable(option));\n if (option) selectOption(option);\n }\n } else if (event.key === 'Escape' && open) {\n event.preventDefault();\n event.stopPropagation();\n close();\n } else if (event.key === 'Tab' && open) close();\n else if (\n event.key === 'Backspace' &&\n multiple &&\n !searchQuery &&\n !inputProps.readOnly\n ) {\n const last = [...values]\n .reverse()\n .find((value) => !options.find((option) => option.value === value)?.disabled);\n if (last) {\n event.preventDefault();\n change(values.filter((value) => value !== last));\n }\n }\n }}\n />\n </span>\n </SelectionContent>\n <button\n type=\"button\"\n className=\"leaf-select__arrow\"\n tabIndex={-1}\n disabled={disabled}\n aria-label={messages.select.placeholder}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (open) close();\n else openMenu();\n input.current?.focus();\n }}\n >\n {loading ? (\n <LoaderCircle className=\"leaf-select__spinner\" size={16} aria-hidden=\"true\" />\n ) : (\n <ChevronDown size={16} aria-hidden=\"true\" />\n )}\n </button>\n {clearable && (\n <ClearButton\n label={messages.select.clear}\n beforeArrow\n onClear={() => {\n change(empty);\n close();\n input.current?.focus();\n }}\n />\n )}\n <FormValue\n name={multiple ? undefined : name}\n form={form}\n value={multiple ? values.join(',') : (values[0] ?? '')}\n disabled={disabled}\n required={required}\n triggerRef={input}\n />\n {multiple &&\n values.map((value) => (\n <input\n key={value}\n type=\"hidden\"\n name={name}\n form={form}\n value={value}\n disabled={disabled}\n />\n ))}\n <FloatingPanel\n open={open}\n placement={popupPlacement}\n container={getPopupContainer}\n triggerRef={root}\n panelRef={panel}\n matchWidth={popupWidth === 'trigger'}\n width={\n popupWidth === 'trigger' ? undefined : popupWidth === 'auto' ? 'max-content' : popupWidth\n }\n maxWidth={popupMaxWidth}\n {...(filtered.length ? listboxProps : {})}\n className={classes('leaf-floating', 'leaf-select__panel', popupClassName)}\n data-hover-motion=\"\"\n style={{ maxHeight: listHeight, ...popupStyle }}\n onScroll={onPopupScroll}\n >\n {/* Feedback is announced beside an empty listbox, never as a selectable option. */}\n {!filtered.length && <div {...listboxProps} />}\n <FloatingHighlight\n style={highlight}\n selected={values.includes(filtered[highlighted]?.value ?? '')}\n />\n {(popupRender ?? ((content: ReactNode) => content))(\n loading && !filtered.length ? (\n <FloatingFeedback loading>{messages.common.loading}</FloatingFeedback>\n ) : filtered.length ? (\n virtual ? (\n <div\n style={{\n height: virtualizer.getTotalSize(),\n position: 'relative',\n minWidth: '100%',\n }}\n >\n {virtualizer.getVirtualItems().map((item) => {\n const row = rows[item.index];\n if (!row) return null;\n return (\n <div\n key={row.key}\n ref={virtualizer.measureElement}\n data-index={item.index}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n transform: `translateY(${item.start}px)`,\n }}\n >\n {row.option ? (\n renderOption(row.option, row.index)\n ) : (\n <div className=\"leaf-select__group\">{row.group}</div>\n )}\n </div>\n );\n })}\n </div>\n ) : (\n rows.map((row) =>\n row.option ? (\n renderOption(row.option, row.index)\n ) : (\n <div key={row.key} className=\"leaf-select__group\">\n {row.group}\n </div>\n ),\n )\n )\n ) : (\n <FloatingFeedback>{notFoundContent ?? messages.select.empty}</FloatingFeedback>\n ),\n )}\n </FloatingPanel>\n </div>\n );\n});\nSelectControl.displayName = 'SelectControl';\n\nexport const Select = forwardRef<HTMLInputElement, SelectProps>(function Select(rawProps, ref) {\n const props = useComponentProps('Select', rawProps);\n return <SelectControl {...props} ref={ref} />;\n});\nSelect.displayName = 'Select';\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","empty","searchText","option","String","SelectControl","forwardRef","props","forwardedRef","suppliedOptions","size","statusProp","placeholder","value","defaultValue","name","requiredProp","allowClear","form","className","style","disabledProp","idProp","onOpenChange","controlledOpen","defaultOpen","inputReadOnly","labelRender","tagRender","popupRender","onPopupScroll","onClick","onKeyDown","onBeforeInput","onCompositionStart","onPaste","onBlur","multiple","searchProp","filterOption","onSearch","popupWidth","popupMaxWidth","popupClassName","popupStyle","popupPlacement","getPopupContainer","loading","notFoundContent","optionRender","maxCount","maxTagCount","tagWrap","allowCreate","onCreate","virtualProp","listHeight","optionHeightProp","_onChange","inputProps","format","useFormattedText","showSearch","created","setCreated","useState","baseOptions","useMemo","entry","options","optionGroups","Map","virtual","messages","theme","density","configuredDirection","useLeafConfig","optionHeight","Math","estimateControlHeight","field","useFormField","disabled","required","status","undefined","root","useRef","input","panel","merged","useMergedRef","panelId","useId","selected","setSelected","useFieldValue","useListMotion","atLimit","unavailable","selectedCache","nextCache","record","selectedOptions","query","setQuery","searchQuery","open","setOpen","usePopupState","highlighted","setHighlighted","matched","newValue","createOption","filtered","rows","entries","previousGroup","index","group","virtualizer","useVirtualizer","useEffect","row","updateQuery","next","close","useFloatingDismiss","useActiveOption","highlight","useFloatingHighlight","change","openMenu","active","beginSearch","selectOption","previous","move","direction","i","candidate","renderOption","event","Plus","Check","displayLabel","textLabel","inputValue","clearable","listboxProps","classes","Element","SelectionContent","remove","item","Boolean","candidates","last","LoaderCircle","ChevronDown","ClearButton","FormValue","FloatingPanel","FloatingHighlight","content","FloatingFeedback","Select","rawProps","ref","useComponentProps"],"mappings":"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"}
@@ -40,18 +40,21 @@ const external_react_namespaceObject = require("react");
40
40
  const external_react_dom_namespaceObject = require("react-dom");
41
41
  const external_tabbable_namespaceObject = require("tabbable");
42
42
  const context_cjs_namespaceObject = require("../config-provider/context.cjs");
43
+ const scrollbar_cjs_namespaceObject = require("../scrollbar/scrollbar.cjs");
43
44
  const external_dom_cjs_namespaceObject = require("./dom.cjs");
44
45
  const external_field_cjs_namespaceObject = require("./field.cjs");
45
46
  const external_inert_cjs_namespaceObject = require("./inert.cjs");
46
47
  const external_overlay_owner_cjs_namespaceObject = require("./overlay-owner.cjs");
47
48
  const external_presence_cjs_namespaceObject = require("./presence.cjs");
49
+ const external_theme_variables_cjs_namespaceObject = require("./theme-variables.cjs");
48
50
  const useBrowserLayoutEffect = "u" < typeof window ? external_react_namespaceObject.useEffect : external_react_namespaceObject.useLayoutEffect;
49
51
  const PopupParent = /*#__PURE__*/ (0, external_react_namespaceObject.createContext)(void 0);
50
52
  const popupNodes = new Map();
51
53
  const dismissStack = [];
52
54
  function insidePopup(target, panel) {
53
55
  if (!panel) return false;
54
- if (panel.contains(target)) return true;
56
+ const boundary = panel.closest('[data-leaf-popup]') ?? panel;
57
+ if (boundary.contains(target)) return true;
55
58
  let popup = target instanceof Element ? target.closest('[data-leaf-popup]') : null;
56
59
  const visited = new Set();
57
60
  while(popup?.dataset.leafPopupParent){
@@ -59,7 +62,7 @@ function insidePopup(target, panel) {
59
62
  if (visited.has(parent)) break;
60
63
  visited.add(parent);
61
64
  popup = popupNodes.get(parent) ?? null;
62
- if (popup === panel) return true;
65
+ if (popup === boundary) return true;
63
66
  }
64
67
  return false;
65
68
  }
@@ -91,12 +94,13 @@ function usePopupState(disabled, onOpenChange, controlledOpen, defaultOpen = fal
91
94
  setOpen
92
95
  ];
93
96
  }
94
- function FloatingPanel({ open, triggerRef, panelRef, matchWidth, width, minWidth, maxWidth, maxHeight, placement = 'bottom-start', container, render, position, style, children, ...props }) {
97
+ function FloatingPanel({ open, triggerRef, panelRef, matchWidth, width, minWidth, maxWidth, maxHeight, placement = 'bottom-start', sideFallback = false, resetSurfaceGeometry = false, container, render, position, style, children, ...props }) {
95
98
  const popupId = (0, external_react_namespaceObject.useId)();
96
99
  const parentPopup = (0, external_react_namespaceObject.useContext)(PopupParent);
97
100
  const config = (0, context_cjs_namespaceObject.useLeafConfig)();
98
101
  const owner = (0, external_react_namespaceObject.useContext)(external_overlay_owner_cjs_namespaceObject.OverlayOwner);
99
- const present = (0, external_presence_cjs_namespaceObject.usePresence)(open, panelRef);
102
+ const floatingRef = (0, external_react_namespaceObject.useRef)(null);
103
+ const present = (0, external_presence_cjs_namespaceObject.usePresence)(open, floatingRef);
100
104
  const [theme, setTheme] = (0, external_react_namespaceObject.useState)({});
101
105
  const [inheritedMotion, setInheritedMotion] = (0, external_react_namespaceObject.useState)();
102
106
  const openRef = (0, external_react_namespaceObject.useRef)(open);
@@ -116,7 +120,8 @@ function FloatingPanel({ open, triggerRef, panelRef, matchWidth, width, minWidth
116
120
  middleware: [
117
121
  (0, react_dom_namespaceObject.offset)(6),
118
122
  (0, react_dom_namespaceObject.flip)({
119
- padding: 12
123
+ padding: 12,
124
+ fallbackAxisSideDirection: sideFallback ? 'end' : 'none'
120
125
  }),
121
126
  (0, react_dom_namespaceObject.shift)({
122
127
  padding: 12
@@ -138,20 +143,32 @@ function FloatingPanel({ open, triggerRef, panelRef, matchWidth, width, minWidth
138
143
  minWidth: 'trigger' === minWidth ? `min(${rects.reference.width}px, ${widthLimit})` : length(minWidth ?? style?.minWidth ?? '')
139
144
  });
140
145
  }
141
- })
146
+ }, [
147
+ matchWidth,
148
+ width,
149
+ minWidth,
150
+ maxWidth,
151
+ maxHeight,
152
+ style?.width,
153
+ style?.minWidth,
154
+ style?.maxWidth,
155
+ style?.maxHeight
156
+ ])
142
157
  ]
143
158
  });
144
159
  if (open) previousPosition.current = floatingStyles;
145
160
  const setPanelRef = (0, external_react_namespaceObject.useCallback)((node)=>{
146
161
  if (node) popupNodes.set(popupId, node);
147
162
  else popupNodes.delete(popupId);
148
- (0, external_field_cjs_namespaceObject.assignRef)(panelRef, node);
163
+ (0, external_field_cjs_namespaceObject.assignRef)(floatingRef, node);
149
164
  refs.setFloating(node);
150
165
  }, [
151
- panelRef,
152
166
  refs.setFloating,
153
167
  popupId
154
168
  ]);
169
+ const setViewportRef = (0, external_react_namespaceObject.useCallback)((node)=>(0, external_field_cjs_namespaceObject.assignRef)(panelRef, node), [
170
+ panelRef
171
+ ]);
155
172
  useBrowserLayoutEffect(()=>{
156
173
  const trigger = referenceElement ?? triggerRef.current;
157
174
  if (!trigger || !present) return;
@@ -168,17 +185,12 @@ function FloatingPanel({ open, triggerRef, panelRef, matchWidth, width, minWidth
168
185
  })
169
186
  } : trigger);
170
187
  const syncTheme = ()=>{
171
- const computed = getComputedStyle(trigger);
172
188
  let motionAncestor = trigger;
173
189
  while(motionAncestor && !motionAncestor.hasAttribute('data-leaf-motion'))motionAncestor = (0, external_dom_cjs_namespaceObject.composedParent)(motionAncestor);
174
190
  setInheritedMotion(motionAncestor?.getAttribute('data-leaf-motion') ?? void 0);
175
- const variables = {
176
- colorScheme: computed.colorScheme,
177
- direction: computed.direction
178
- };
179
- for(let i = 0; i < computed.length; i += 1){
180
- const key = computed.item(i);
181
- if (key.startsWith('--leaf-')) variables[key] = computed.getPropertyValue(key);
191
+ const variables = (0, external_theme_variables_cjs_namespaceObject.readThemeVariables)(trigger);
192
+ if (resetSurfaceGeometry) {
193
+ for (const key of Object.keys(variables))if (/^--leaf-surface-(?:radius$|border$|padding(?:-|$)|inner-)/.test(key) || '--leaf-floating-option-radius' === key) delete variables[key];
182
194
  }
183
195
  setTheme(variables);
184
196
  };
@@ -204,7 +216,8 @@ function FloatingPanel({ open, triggerRef, panelRef, matchWidth, width, minWidth
204
216
  referenceElement,
205
217
  refs.setReference,
206
218
  present,
207
- position
219
+ position,
220
+ resetSurfaceGeometry
208
221
  ]);
209
222
  useBrowserLayoutEffect(()=>{
210
223
  if (open && present) update();
@@ -214,11 +227,27 @@ function FloatingPanel({ open, triggerRef, panelRef, matchWidth, width, minWidth
214
227
  update
215
228
  ]);
216
229
  if (!present || "u" < typeof document) return null;
230
+ const viewportProps = {};
231
+ const rootProps = {
232
+ ...props
233
+ };
234
+ for (const key of Object.keys(rootProps))if ('id' === key || 'role' === key || 'tabIndex' === key || key.startsWith('aria-')) {
235
+ Object.assign(viewportProps, {
236
+ [key]: rootProps[key]
237
+ });
238
+ delete rootProps[key];
239
+ }
217
240
  return /*#__PURE__*/ (0, external_react_dom_namespaceObject.createPortal)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PopupParent.Provider, {
218
241
  value: popupId,
219
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
220
- ...props,
221
- ref: setPanelRef,
242
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(scrollbar_cjs_namespaceObject.ScrollbarControl, {
243
+ ...rootProps,
244
+ ref: setViewportRef,
245
+ rootRef: setPanelRef,
246
+ viewportProps: viewportProps,
247
+ viewportClassName: "leaf-floating__viewport",
248
+ role: props.role ?? 'presentation',
249
+ tabIndex: props.tabIndex ?? -1,
250
+ scrollbarTabIndex: -1,
222
251
  "data-leaf-owner": owner,
223
252
  "data-leaf-popup": popupId,
224
253
  "data-leaf-popup-parent": parentPopup,