@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.
- package/README.md +1 -1
- package/dist/cjs/autocomplete/autocomplete.cjs +7 -3
- package/dist/cjs/autocomplete/autocomplete.cjs.map +1 -1
- package/dist/cjs/autocomplete/autocomplete.d.cts +2 -0
- package/dist/cjs/autocomplete/autocomplete.d.cts.map +1 -1
- package/dist/cjs/browser/modules/autocomplete/autocomplete.cjs +7 -3
- package/dist/cjs/browser/modules/autocomplete/autocomplete.cjs.map +1 -1
- package/dist/cjs/browser/modules/button/button.cjs.map +1 -1
- package/dist/cjs/browser/modules/cascader/cascader.cjs +9 -2
- package/dist/cjs/browser/modules/cascader/cascader.cjs.map +1 -1
- package/dist/cjs/browser/modules/colors.cjs +73 -7
- package/dist/cjs/browser/modules/colors.cjs.map +1 -1
- package/dist/cjs/browser/modules/commandpalette/commandpalette.cjs +10 -3
- package/dist/cjs/browser/modules/commandpalette/commandpalette.cjs.map +1 -1
- package/dist/cjs/browser/modules/config-provider/component-defaults.cjs.map +1 -1
- package/dist/cjs/browser/modules/config-provider/use-color-variables.cjs +18 -2
- package/dist/cjs/browser/modules/config-provider/use-color-variables.cjs.map +1 -1
- package/dist/cjs/browser/modules/drawer/drawer.cjs +7 -1
- package/dist/cjs/browser/modules/drawer/drawer.cjs.map +1 -1
- package/dist/cjs/browser/modules/dropdown/dropdown.cjs +25 -4
- package/dist/cjs/browser/modules/dropdown/dropdown.cjs.map +1 -1
- package/dist/cjs/browser/modules/form/form.cjs +38 -21
- package/dist/cjs/browser/modules/form/form.cjs.map +1 -1
- package/dist/cjs/browser/modules/image/viewer.cjs +8 -2
- package/dist/cjs/browser/modules/image/viewer.cjs.map +1 -1
- package/dist/cjs/browser/modules/index.cjs +3 -4
- package/dist/cjs/browser/modules/layout/layout.cjs +4 -1
- package/dist/cjs/browser/modules/layout/layout.cjs.map +1 -1
- package/dist/cjs/browser/modules/mentions/mentions.cjs +4 -2
- package/dist/cjs/browser/modules/mentions/mentions.cjs.map +1 -1
- package/dist/cjs/browser/modules/menu/index.cjs +5 -2
- package/dist/cjs/browser/modules/menu/menu.cjs +60 -18
- package/dist/cjs/browser/modules/menu/menu.cjs.map +1 -1
- package/dist/cjs/browser/modules/scrollbar/scrollbar.cjs +69 -19
- package/dist/cjs/browser/modules/scrollbar/scrollbar.cjs.map +1 -1
- package/dist/cjs/browser/modules/select/select.cjs +3 -3
- package/dist/cjs/browser/modules/select/select.cjs.map +1 -1
- package/dist/cjs/browser/modules/shared/floating.cjs +49 -20
- package/dist/cjs/browser/modules/shared/floating.cjs.map +1 -1
- package/dist/cjs/browser/modules/shared/scoped-portal.cjs +2 -23
- package/dist/cjs/browser/modules/shared/scoped-portal.cjs.map +1 -1
- package/dist/cjs/browser/modules/{segmented/index.cjs → shared/theme-variables.cjs} +27 -5
- package/dist/cjs/browser/modules/shared/theme-variables.cjs.map +1 -0
- package/dist/cjs/browser/modules/splitter/splitter.cjs +4 -1
- package/dist/cjs/browser/modules/splitter/splitter.cjs.map +1 -1
- package/dist/cjs/browser/modules/tabs/tabs.cjs +14 -8
- package/dist/cjs/browser/modules/tabs/tabs.cjs.map +1 -1
- package/dist/cjs/browser/modules/tailwind-tokens.cjs +1 -1
- package/dist/cjs/browser/modules/tailwind-tokens.cjs.map +1 -1
- package/dist/cjs/browser/modules/textarea/textarea.cjs +49 -21
- package/dist/cjs/browser/modules/textarea/textarea.cjs.map +1 -1
- package/dist/cjs/browser/modules/theme.cjs +53 -29
- package/dist/cjs/browser/modules/theme.cjs.map +1 -1
- package/dist/cjs/browser/modules/timeline/timeline.cjs +1 -1
- package/dist/cjs/browser/modules/timeline/timeline.cjs.map +1 -1
- package/dist/cjs/browser/modules/timepicker/time-panel.cjs +8 -2
- package/dist/cjs/browser/modules/timepicker/time-panel.cjs.map +1 -1
- package/dist/cjs/browser/modules/transfer/transfer.cjs +5 -5
- package/dist/cjs/browser/modules/transfer/transfer.cjs.map +1 -1
- package/dist/cjs/browser/modules/tree/tree.cjs +13 -6
- package/dist/cjs/browser/modules/tree/tree.cjs.map +1 -1
- package/dist/cjs/browser/modules/treeselect/treeselect.cjs +5 -4
- package/dist/cjs/browser/modules/treeselect/treeselect.cjs.map +1 -1
- package/dist/cjs/browser/modules/virtuallist/virtuallist.cjs +9 -3
- package/dist/cjs/browser/modules/virtuallist/virtuallist.cjs.map +1 -1
- package/dist/cjs/button/button.cjs.map +1 -1
- package/dist/cjs/button/button.d.cts +7 -2
- package/dist/cjs/button/button.d.cts.map +1 -1
- package/dist/cjs/cascader/cascader.cjs +9 -2
- package/dist/cjs/cascader/cascader.cjs.map +1 -1
- package/dist/cjs/cascader/cascader.d.cts +2 -0
- package/dist/cjs/cascader/cascader.d.cts.map +1 -1
- package/dist/cjs/colors.cjs +73 -7
- package/dist/cjs/colors.cjs.map +1 -1
- package/dist/cjs/colors.d.cts +3 -1
- package/dist/cjs/colors.d.cts.map +1 -1
- package/dist/cjs/commandpalette/commandpalette.cjs +10 -3
- package/dist/cjs/commandpalette/commandpalette.cjs.map +1 -1
- package/dist/cjs/commandpalette/commandpalette.d.cts.map +1 -1
- package/dist/cjs/config-provider/component-defaults.cjs.map +1 -1
- package/dist/cjs/config-provider/component-defaults.d.cts +3 -4
- package/dist/cjs/config-provider/component-defaults.d.cts.map +1 -1
- package/dist/cjs/config-provider/index.d.cts +1 -1
- package/dist/cjs/config-provider/index.d.cts.map +1 -1
- package/dist/cjs/config-provider/use-color-variables.cjs +18 -2
- package/dist/cjs/config-provider/use-color-variables.cjs.map +1 -1
- package/dist/cjs/config-provider/use-color-variables.d.cts.map +1 -1
- package/dist/cjs/drawer/drawer.cjs +7 -1
- package/dist/cjs/drawer/drawer.cjs.map +1 -1
- package/dist/cjs/drawer/drawer.d.cts.map +1 -1
- package/dist/cjs/dropdown/dropdown.cjs +25 -4
- package/dist/cjs/dropdown/dropdown.cjs.map +1 -1
- package/dist/cjs/dropdown/dropdown.d.cts +9 -1
- package/dist/cjs/dropdown/dropdown.d.cts.map +1 -1
- package/dist/cjs/form/form.cjs +38 -21
- package/dist/cjs/form/form.cjs.map +1 -1
- package/dist/cjs/form/form.d.cts +3 -1
- package/dist/cjs/form/form.d.cts.map +1 -1
- package/dist/cjs/image/viewer.cjs +8 -2
- package/dist/cjs/image/viewer.cjs.map +1 -1
- package/dist/cjs/image/viewer.d.cts.map +1 -1
- package/dist/cjs/index.cjs +3 -4
- package/dist/cjs/index.d.cts +3 -5
- package/dist/cjs/index.d.cts.map +1 -1
- package/dist/cjs/layout/layout.cjs +4 -1
- package/dist/cjs/layout/layout.cjs.map +1 -1
- package/dist/cjs/layout/layout.d.cts.map +1 -1
- package/dist/cjs/mentions/mentions.cjs +4 -2
- package/dist/cjs/mentions/mentions.cjs.map +1 -1
- package/dist/cjs/mentions/mentions.d.cts +2 -0
- package/dist/cjs/mentions/mentions.d.cts.map +1 -1
- package/dist/cjs/menu/index.cjs +5 -2
- package/dist/cjs/menu/index.d.cts +2 -2
- package/dist/cjs/menu/index.d.cts.map +1 -1
- package/dist/cjs/menu/menu.cjs +60 -18
- package/dist/cjs/menu/menu.cjs.map +1 -1
- package/dist/cjs/menu/menu.d.cts +4 -0
- package/dist/cjs/menu/menu.d.cts.map +1 -1
- package/dist/cjs/scrollbar/scrollbar.cjs +69 -19
- package/dist/cjs/scrollbar/scrollbar.cjs.map +1 -1
- package/dist/cjs/scrollbar/scrollbar.d.cts +12 -2
- package/dist/cjs/scrollbar/scrollbar.d.cts.map +1 -1
- package/dist/cjs/select/select.cjs +3 -3
- package/dist/cjs/select/select.cjs.map +1 -1
- package/dist/cjs/shared/floating.cjs +49 -20
- package/dist/cjs/shared/floating.cjs.map +1 -1
- package/dist/cjs/shared/floating.d.cts +3 -1
- package/dist/cjs/shared/floating.d.cts.map +1 -1
- package/dist/cjs/shared/scoped-portal.cjs +2 -23
- package/dist/cjs/shared/scoped-portal.cjs.map +1 -1
- package/dist/cjs/shared/scoped-portal.d.cts.map +1 -1
- package/dist/cjs/{segmented/index.cjs → shared/theme-variables.cjs} +27 -5
- package/dist/cjs/shared/theme-variables.cjs.map +1 -0
- package/dist/cjs/shared/theme-variables.d.cts +4 -0
- package/dist/cjs/shared/theme-variables.d.cts.map +1 -0
- package/dist/cjs/splitter/splitter.cjs +4 -1
- package/dist/cjs/splitter/splitter.cjs.map +1 -1
- package/dist/cjs/splitter/splitter.d.cts.map +1 -1
- package/dist/cjs/styles/alert.css +1 -1
- package/dist/cjs/styles/anchor.css +1 -1
- package/dist/cjs/styles/appbar.css +1 -1
- package/dist/cjs/styles/autocomplete.css +1 -1
- package/dist/cjs/styles/avatar.css +1 -1
- package/dist/cjs/styles/backtop.css +1 -1
- package/dist/cjs/styles/badge.css +1 -1
- package/dist/cjs/styles/breadcrumb.css +1 -1
- package/dist/cjs/styles/button.css +1 -1
- package/dist/cjs/styles/calendar.css +1 -1
- package/dist/cjs/styles/card.css +1 -1
- package/dist/cjs/styles/carousel.css +1 -1
- package/dist/cjs/styles/cascader.css +1 -1
- package/dist/cjs/styles/checkbox.css +1 -1
- package/dist/cjs/styles/collapse.css +1 -1
- package/dist/cjs/styles/colorpicker.css +1 -1
- package/dist/cjs/styles/commandpalette.css +1 -1
- package/dist/cjs/styles/components/alert.css +1 -1
- package/dist/cjs/styles/components/anchor.css +1 -1
- package/dist/cjs/styles/components/appbar.css +1 -1
- package/dist/cjs/styles/components/autocomplete.css +1 -1
- package/dist/cjs/styles/components/avatar.css +1 -1
- package/dist/cjs/styles/components/breadcrumb.css +1 -1
- package/dist/cjs/styles/components/button.css +1 -1
- package/dist/cjs/styles/components/calendar.css +1 -1
- package/dist/cjs/styles/components/card.css +1 -1
- package/dist/cjs/styles/components/carousel.css +1 -1
- package/dist/cjs/styles/components/cascader.css +1 -1
- package/dist/cjs/styles/components/checkbox.css +1 -1
- package/dist/cjs/styles/components/collapse.css +1 -1
- package/dist/cjs/styles/components/colorpicker.css +1 -1
- package/dist/cjs/styles/components/commandpalette.css +1 -1
- package/dist/cjs/styles/components/datepicker.css +1 -1
- package/dist/cjs/styles/components/descriptions.css +1 -1
- package/dist/cjs/styles/components/drawer.css +1 -1
- package/dist/cjs/styles/components/dropdown.css +1 -1
- package/dist/cjs/styles/components/errorboundary.css +1 -1
- package/dist/cjs/styles/components/filelist.css +1 -1
- package/dist/cjs/styles/components/form.css +1 -1
- package/dist/cjs/styles/components/image.css +1 -1
- package/dist/cjs/styles/components/input.css +1 -1
- package/dist/cjs/styles/components/inputnumber.css +1 -1
- package/dist/cjs/styles/components/inputotp.css +1 -1
- package/dist/cjs/styles/components/layout.css +1 -1
- package/dist/cjs/styles/components/loading.css +1 -1
- package/dist/cjs/styles/components/loadingbar.css +1 -1
- package/dist/cjs/styles/components/mentions.css +1 -1
- package/dist/cjs/styles/components/menu.css +1 -1
- package/dist/cjs/styles/components/message.css +1 -1
- package/dist/cjs/styles/components/modal.css +1 -1
- package/dist/cjs/styles/components/notification.css +1 -1
- package/dist/cjs/styles/components/pagination.css +1 -1
- package/dist/cjs/styles/components/popover.css +1 -1
- package/dist/cjs/styles/components/progress.css +1 -1
- package/dist/cjs/styles/components/radio.css +1 -1
- package/dist/cjs/styles/components/rate.css +1 -1
- package/dist/cjs/styles/components/scrollarea.css +1 -1
- package/dist/cjs/styles/components/scrollbar.css +1 -1
- package/dist/cjs/styles/components/select.css +1 -1
- package/dist/cjs/styles/components/shared-calendar.css +1 -1
- package/dist/cjs/styles/components/slider.css +1 -1
- package/dist/cjs/styles/components/splitter.css +1 -1
- package/dist/cjs/styles/components/steps.css +1 -1
- package/dist/cjs/styles/components/switch.css +1 -1
- package/dist/cjs/styles/components/table.css +1 -1
- package/dist/cjs/styles/components/tabletanstack.css +1 -1
- package/dist/cjs/styles/components/tabs.css +1 -1
- package/dist/cjs/styles/components/tag.css +1 -1
- package/dist/cjs/styles/components/textarea.css +1 -1
- package/dist/cjs/styles/components/timepicker.css +1 -1
- package/dist/cjs/styles/components/tooltip.css +1 -1
- package/dist/cjs/styles/components/tour.css +1 -1
- package/dist/cjs/styles/components/transfer.css +1 -1
- package/dist/cjs/styles/components/tree.css +1 -1
- package/dist/cjs/styles/components/treeselect.css +1 -1
- package/dist/cjs/styles/components/typography.css +1 -1
- package/dist/cjs/styles/components/upload.css +1 -1
- package/dist/cjs/styles/components/virtuallist.css +1 -1
- package/dist/cjs/styles/config-provider.css +1 -1
- package/dist/cjs/styles/confirm.css +1 -1
- package/dist/cjs/styles/datepicker.css +1 -1
- package/dist/cjs/styles/daterangepicker.css +1 -1
- package/dist/cjs/styles/datetimepicker.css +1 -1
- package/dist/cjs/styles/descriptions.css +1 -1
- package/dist/cjs/styles/divider.css +1 -1
- package/dist/cjs/styles/drawer.css +1 -1
- package/dist/cjs/styles/dropdown.css +1 -1
- package/dist/cjs/styles/empty.css +1 -1
- package/dist/cjs/styles/errorboundary.css +1 -1
- package/dist/cjs/styles/filelist.css +1 -1
- package/dist/cjs/styles/flex.css +1 -1
- package/dist/cjs/styles/floatbutton.css +1 -1
- package/dist/cjs/styles/form.css +1 -1
- package/dist/cjs/styles/foundation.css +1 -1
- package/dist/cjs/styles/grid.css +1 -1
- package/dist/cjs/styles/image.css +1 -1
- package/dist/cjs/styles/index.css +1380 -716
- package/dist/cjs/styles/index.css.map +1 -1
- package/dist/cjs/styles/infinitescroll.css +1 -1
- package/dist/cjs/styles/input.css +1 -1
- package/dist/cjs/styles/inputmask.css +1 -1
- package/dist/cjs/styles/inputnumber.css +1 -1
- package/dist/cjs/styles/inputotp.css +1 -1
- package/dist/cjs/styles/layout.css +1 -1
- package/dist/cjs/styles/loading.css +1 -1
- package/dist/cjs/styles/loadingbar.css +1 -1
- package/dist/cjs/styles/masonry.css +1 -1
- package/dist/cjs/styles/mentions.css +1 -1
- package/dist/cjs/styles/menu.css +1 -1
- package/dist/cjs/styles/message.css +1 -1
- package/dist/cjs/styles/modal.css +1 -1
- package/dist/cjs/styles/notification.css +1 -1
- package/dist/cjs/styles/pagination.css +1 -1
- package/dist/cjs/styles/popconfirm.css +1 -1
- package/dist/cjs/styles/popover.css +1 -1
- package/dist/cjs/styles/progress.css +1 -1
- package/dist/cjs/styles/qrcode.css +1 -1
- package/dist/cjs/styles/radio.css +1 -1
- package/dist/cjs/styles/rate.css +1 -1
- package/dist/cjs/styles/result.css +1 -1
- package/dist/cjs/styles/scrollarea.css +1 -1
- package/dist/cjs/styles/scrollbar.css +1 -1
- package/dist/cjs/styles/select.css +1 -1
- package/dist/cjs/styles/skeleton.css +1 -1
- package/dist/cjs/styles/slider.css +1 -1
- package/dist/cjs/styles/space.css +1 -1
- package/dist/cjs/styles/splitter.css +1 -1
- package/dist/cjs/styles/statistic.css +1 -1
- package/dist/cjs/styles/steps.css +1 -1
- package/dist/cjs/styles/switch.css +1 -1
- package/dist/cjs/styles/table.css +1 -1
- package/dist/cjs/styles/tabletanstack.css +1 -1
- package/dist/cjs/styles/tabs.css +1 -1
- package/dist/cjs/styles/tag.css +1 -1
- package/dist/cjs/styles/textarea.css +1 -1
- package/dist/cjs/styles/timeline.css +1 -1
- package/dist/cjs/styles/timepicker.css +1 -1
- package/dist/cjs/styles/timerangepicker.css +1 -1
- package/dist/cjs/styles/tooltip.css +1 -1
- package/dist/cjs/styles/tour.css +1 -1
- package/dist/cjs/styles/transfer.css +1 -1
- package/dist/cjs/styles/tree.css +1 -1
- package/dist/cjs/styles/treeselect.css +1 -1
- package/dist/cjs/styles/typography.css +1 -1
- package/dist/cjs/styles/upload.css +1 -1
- package/dist/cjs/styles/virtuallist.css +1 -1
- package/dist/cjs/tabs/tabs.cjs +14 -8
- package/dist/cjs/tabs/tabs.cjs.map +1 -1
- package/dist/cjs/tabs/tabs.d.cts +4 -2
- package/dist/cjs/tabs/tabs.d.cts.map +1 -1
- package/dist/cjs/tailwind-tokens.cjs +1 -1
- package/dist/cjs/tailwind-tokens.cjs.map +1 -1
- package/dist/cjs/tailwind-tokens.d.cts.map +1 -1
- package/dist/cjs/textarea/textarea.cjs +49 -21
- package/dist/cjs/textarea/textarea.cjs.map +1 -1
- package/dist/cjs/textarea/textarea.d.cts.map +1 -1
- package/dist/cjs/theme.cjs +53 -29
- package/dist/cjs/theme.cjs.map +1 -1
- package/dist/cjs/theme.d.cts +15 -0
- package/dist/cjs/theme.d.cts.map +1 -1
- package/dist/cjs/timeline/timeline.cjs +1 -1
- package/dist/cjs/timeline/timeline.cjs.map +1 -1
- package/dist/cjs/timeline/timeline.d.cts.map +1 -1
- package/dist/cjs/timepicker/time-panel.cjs +8 -2
- package/dist/cjs/timepicker/time-panel.cjs.map +1 -1
- package/dist/cjs/timepicker/time-panel.d.cts.map +1 -1
- package/dist/cjs/transfer/transfer.cjs +5 -5
- package/dist/cjs/transfer/transfer.cjs.map +1 -1
- package/dist/cjs/transfer/transfer.d.cts.map +1 -1
- package/dist/cjs/tree/tree.cjs +13 -6
- package/dist/cjs/tree/tree.cjs.map +1 -1
- package/dist/cjs/tree/tree.d.cts.map +1 -1
- package/dist/cjs/treeselect/treeselect.cjs +5 -4
- package/dist/cjs/treeselect/treeselect.cjs.map +1 -1
- package/dist/cjs/treeselect/treeselect.d.cts.map +1 -1
- package/dist/cjs/virtuallist/virtuallist.cjs +9 -3
- package/dist/cjs/virtuallist/virtuallist.cjs.map +1 -1
- package/dist/cjs/virtuallist/virtuallist.d.cts.map +1 -1
- package/dist/esm/autocomplete/autocomplete.d.ts +2 -0
- package/dist/esm/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/esm/autocomplete/autocomplete.js +7 -3
- package/dist/esm/autocomplete/autocomplete.js.map +1 -1
- package/dist/esm/browser/modules/autocomplete/autocomplete.js +7 -3
- package/dist/esm/browser/modules/autocomplete/autocomplete.js.map +1 -1
- package/dist/esm/browser/modules/button/button.js.map +1 -1
- package/dist/esm/browser/modules/cascader/cascader.js +9 -2
- package/dist/esm/browser/modules/cascader/cascader.js.map +1 -1
- package/dist/esm/browser/modules/colors.js +69 -6
- package/dist/esm/browser/modules/colors.js.map +1 -1
- package/dist/esm/browser/modules/commandpalette/commandpalette.js +10 -3
- package/dist/esm/browser/modules/commandpalette/commandpalette.js.map +1 -1
- package/dist/esm/browser/modules/config-provider/component-defaults.js.map +1 -1
- package/dist/esm/browser/modules/config-provider/use-color-variables.js +18 -2
- package/dist/esm/browser/modules/config-provider/use-color-variables.js.map +1 -1
- package/dist/esm/browser/modules/drawer/drawer.js +7 -1
- package/dist/esm/browser/modules/drawer/drawer.js.map +1 -1
- package/dist/esm/browser/modules/dropdown/dropdown.js +25 -4
- package/dist/esm/browser/modules/dropdown/dropdown.js.map +1 -1
- package/dist/esm/browser/modules/form/form.js +38 -21
- package/dist/esm/browser/modules/form/form.js.map +1 -1
- package/dist/esm/browser/modules/image/viewer.js +8 -2
- package/dist/esm/browser/modules/image/viewer.js.map +1 -1
- package/dist/esm/browser/modules/index.js +1 -2
- package/dist/esm/browser/modules/layout/layout.js +4 -1
- package/dist/esm/browser/modules/layout/layout.js.map +1 -1
- package/dist/esm/browser/modules/mentions/mentions.js +4 -2
- package/dist/esm/browser/modules/mentions/mentions.js.map +1 -1
- package/dist/esm/browser/modules/menu/index.js +1 -1
- package/dist/esm/browser/modules/menu/menu.js +57 -18
- package/dist/esm/browser/modules/menu/menu.js.map +1 -1
- package/dist/esm/browser/modules/scrollbar/scrollbar.js +69 -19
- package/dist/esm/browser/modules/scrollbar/scrollbar.js.map +1 -1
- package/dist/esm/browser/modules/select/select.js +3 -3
- package/dist/esm/browser/modules/select/select.js.map +1 -1
- package/dist/esm/browser/modules/shared/floating.js +49 -20
- package/dist/esm/browser/modules/shared/floating.js.map +1 -1
- package/dist/esm/browser/modules/shared/scoped-portal.js +2 -23
- package/dist/esm/browser/modules/shared/scoped-portal.js.map +1 -1
- package/dist/esm/browser/modules/shared/theme-variables.js +27 -0
- package/dist/esm/browser/modules/shared/theme-variables.js.map +1 -0
- package/dist/esm/browser/modules/splitter/splitter.js +4 -1
- package/dist/esm/browser/modules/splitter/splitter.js.map +1 -1
- package/dist/esm/browser/modules/tabs/tabs.js +14 -8
- package/dist/esm/browser/modules/tabs/tabs.js.map +1 -1
- package/dist/esm/browser/modules/tailwind-tokens.js +1 -1
- package/dist/esm/browser/modules/tailwind-tokens.js.map +1 -1
- package/dist/esm/browser/modules/textarea/textarea.js +50 -22
- package/dist/esm/browser/modules/textarea/textarea.js.map +1 -1
- package/dist/esm/browser/modules/theme.js +53 -29
- package/dist/esm/browser/modules/theme.js.map +1 -1
- package/dist/esm/browser/modules/timeline/timeline.js +1 -1
- package/dist/esm/browser/modules/timeline/timeline.js.map +1 -1
- package/dist/esm/browser/modules/timepicker/time-panel.js +8 -2
- package/dist/esm/browser/modules/timepicker/time-panel.js.map +1 -1
- package/dist/esm/browser/modules/transfer/transfer.js +5 -5
- package/dist/esm/browser/modules/transfer/transfer.js.map +1 -1
- package/dist/esm/browser/modules/tree/tree.js +13 -6
- package/dist/esm/browser/modules/tree/tree.js.map +1 -1
- package/dist/esm/browser/modules/treeselect/treeselect.js +5 -4
- package/dist/esm/browser/modules/treeselect/treeselect.js.map +1 -1
- package/dist/esm/browser/modules/virtuallist/virtuallist.js +9 -3
- package/dist/esm/browser/modules/virtuallist/virtuallist.js.map +1 -1
- package/dist/esm/button/button.d.ts +7 -2
- package/dist/esm/button/button.d.ts.map +1 -1
- package/dist/esm/button/button.js.map +1 -1
- package/dist/esm/cascader/cascader.d.ts +2 -0
- package/dist/esm/cascader/cascader.d.ts.map +1 -1
- package/dist/esm/cascader/cascader.js +9 -2
- package/dist/esm/cascader/cascader.js.map +1 -1
- package/dist/esm/colors.d.ts +3 -1
- package/dist/esm/colors.d.ts.map +1 -1
- package/dist/esm/colors.js +69 -6
- package/dist/esm/colors.js.map +1 -1
- package/dist/esm/commandpalette/commandpalette.d.ts.map +1 -1
- package/dist/esm/commandpalette/commandpalette.js +10 -3
- package/dist/esm/commandpalette/commandpalette.js.map +1 -1
- package/dist/esm/config-provider/component-defaults.d.ts +3 -4
- package/dist/esm/config-provider/component-defaults.d.ts.map +1 -1
- package/dist/esm/config-provider/component-defaults.js.map +1 -1
- package/dist/esm/config-provider/index.d.ts +1 -1
- package/dist/esm/config-provider/index.d.ts.map +1 -1
- package/dist/esm/config-provider/use-color-variables.d.ts.map +1 -1
- package/dist/esm/config-provider/use-color-variables.js +18 -2
- package/dist/esm/config-provider/use-color-variables.js.map +1 -1
- package/dist/esm/drawer/drawer.d.ts.map +1 -1
- package/dist/esm/drawer/drawer.js +7 -1
- package/dist/esm/drawer/drawer.js.map +1 -1
- package/dist/esm/dropdown/dropdown.d.ts +9 -1
- package/dist/esm/dropdown/dropdown.d.ts.map +1 -1
- package/dist/esm/dropdown/dropdown.js +25 -4
- package/dist/esm/dropdown/dropdown.js.map +1 -1
- package/dist/esm/form/form.d.ts +3 -1
- package/dist/esm/form/form.d.ts.map +1 -1
- package/dist/esm/form/form.js +38 -21
- package/dist/esm/form/form.js.map +1 -1
- package/dist/esm/image/viewer.d.ts.map +1 -1
- package/dist/esm/image/viewer.js +8 -2
- package/dist/esm/image/viewer.js.map +1 -1
- package/dist/esm/index.d.ts +3 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/layout/layout.d.ts.map +1 -1
- package/dist/esm/layout/layout.js +4 -1
- package/dist/esm/layout/layout.js.map +1 -1
- package/dist/esm/mentions/mentions.d.ts +2 -0
- package/dist/esm/mentions/mentions.d.ts.map +1 -1
- package/dist/esm/mentions/mentions.js +4 -2
- package/dist/esm/mentions/mentions.js.map +1 -1
- package/dist/esm/menu/index.d.ts +2 -2
- package/dist/esm/menu/index.d.ts.map +1 -1
- package/dist/esm/menu/index.js +1 -1
- package/dist/esm/menu/menu.d.ts +4 -0
- package/dist/esm/menu/menu.d.ts.map +1 -1
- package/dist/esm/menu/menu.js +57 -18
- package/dist/esm/menu/menu.js.map +1 -1
- package/dist/esm/scrollbar/scrollbar.d.ts +12 -2
- package/dist/esm/scrollbar/scrollbar.d.ts.map +1 -1
- package/dist/esm/scrollbar/scrollbar.js +69 -19
- package/dist/esm/scrollbar/scrollbar.js.map +1 -1
- package/dist/esm/select/select.js +3 -3
- package/dist/esm/select/select.js.map +1 -1
- package/dist/esm/shared/floating.d.ts +3 -1
- package/dist/esm/shared/floating.d.ts.map +1 -1
- package/dist/esm/shared/floating.js +49 -20
- package/dist/esm/shared/floating.js.map +1 -1
- package/dist/esm/shared/scoped-portal.d.ts.map +1 -1
- package/dist/esm/shared/scoped-portal.js +2 -23
- package/dist/esm/shared/scoped-portal.js.map +1 -1
- package/dist/esm/shared/theme-variables.d.ts +4 -0
- package/dist/esm/shared/theme-variables.d.ts.map +1 -0
- package/dist/esm/shared/theme-variables.js +27 -0
- package/dist/esm/shared/theme-variables.js.map +1 -0
- package/dist/esm/splitter/splitter.d.ts.map +1 -1
- package/dist/esm/splitter/splitter.js +4 -1
- package/dist/esm/splitter/splitter.js.map +1 -1
- package/dist/esm/styles/alert.css +1 -1
- package/dist/esm/styles/anchor.css +1 -1
- package/dist/esm/styles/appbar.css +1 -1
- package/dist/esm/styles/autocomplete.css +1 -1
- package/dist/esm/styles/avatar.css +1 -1
- package/dist/esm/styles/backtop.css +1 -1
- package/dist/esm/styles/badge.css +1 -1
- package/dist/esm/styles/breadcrumb.css +1 -1
- package/dist/esm/styles/button.css +1 -1
- package/dist/esm/styles/calendar.css +1 -1
- package/dist/esm/styles/card.css +1 -1
- package/dist/esm/styles/carousel.css +1 -1
- package/dist/esm/styles/cascader.css +1 -1
- package/dist/esm/styles/checkbox.css +1 -1
- package/dist/esm/styles/collapse.css +1 -1
- package/dist/esm/styles/colorpicker.css +1 -1
- package/dist/esm/styles/commandpalette.css +1 -1
- package/dist/esm/styles/components/alert.css +1 -1
- package/dist/esm/styles/components/anchor.css +1 -1
- package/dist/esm/styles/components/appbar.css +1 -1
- package/dist/esm/styles/components/autocomplete.css +1 -1
- package/dist/esm/styles/components/avatar.css +1 -1
- package/dist/esm/styles/components/breadcrumb.css +1 -1
- package/dist/esm/styles/components/button.css +1 -1
- package/dist/esm/styles/components/calendar.css +1 -1
- package/dist/esm/styles/components/card.css +1 -1
- package/dist/esm/styles/components/carousel.css +1 -1
- package/dist/esm/styles/components/cascader.css +1 -1
- package/dist/esm/styles/components/checkbox.css +1 -1
- package/dist/esm/styles/components/collapse.css +1 -1
- package/dist/esm/styles/components/colorpicker.css +1 -1
- package/dist/esm/styles/components/commandpalette.css +1 -1
- package/dist/esm/styles/components/datepicker.css +1 -1
- package/dist/esm/styles/components/descriptions.css +1 -1
- package/dist/esm/styles/components/drawer.css +1 -1
- package/dist/esm/styles/components/dropdown.css +1 -1
- package/dist/esm/styles/components/errorboundary.css +1 -1
- package/dist/esm/styles/components/filelist.css +1 -1
- package/dist/esm/styles/components/form.css +1 -1
- package/dist/esm/styles/components/image.css +1 -1
- package/dist/esm/styles/components/input.css +1 -1
- package/dist/esm/styles/components/inputnumber.css +1 -1
- package/dist/esm/styles/components/inputotp.css +1 -1
- package/dist/esm/styles/components/layout.css +1 -1
- package/dist/esm/styles/components/loading.css +1 -1
- package/dist/esm/styles/components/loadingbar.css +1 -1
- package/dist/esm/styles/components/mentions.css +1 -1
- package/dist/esm/styles/components/menu.css +1 -1
- package/dist/esm/styles/components/message.css +1 -1
- package/dist/esm/styles/components/modal.css +1 -1
- package/dist/esm/styles/components/notification.css +1 -1
- package/dist/esm/styles/components/pagination.css +1 -1
- package/dist/esm/styles/components/popover.css +1 -1
- package/dist/esm/styles/components/progress.css +1 -1
- package/dist/esm/styles/components/radio.css +1 -1
- package/dist/esm/styles/components/rate.css +1 -1
- package/dist/esm/styles/components/scrollarea.css +1 -1
- package/dist/esm/styles/components/scrollbar.css +1 -1
- package/dist/esm/styles/components/select.css +1 -1
- package/dist/esm/styles/components/shared-calendar.css +1 -1
- package/dist/esm/styles/components/slider.css +1 -1
- package/dist/esm/styles/components/splitter.css +1 -1
- package/dist/esm/styles/components/steps.css +1 -1
- package/dist/esm/styles/components/switch.css +1 -1
- package/dist/esm/styles/components/table.css +1 -1
- package/dist/esm/styles/components/tabletanstack.css +1 -1
- package/dist/esm/styles/components/tabs.css +1 -1
- package/dist/esm/styles/components/tag.css +1 -1
- package/dist/esm/styles/components/textarea.css +1 -1
- package/dist/esm/styles/components/timepicker.css +1 -1
- package/dist/esm/styles/components/tooltip.css +1 -1
- package/dist/esm/styles/components/tour.css +1 -1
- package/dist/esm/styles/components/transfer.css +1 -1
- package/dist/esm/styles/components/tree.css +1 -1
- package/dist/esm/styles/components/treeselect.css +1 -1
- package/dist/esm/styles/components/typography.css +1 -1
- package/dist/esm/styles/components/upload.css +1 -1
- package/dist/esm/styles/components/virtuallist.css +1 -1
- package/dist/esm/styles/config-provider.css +1 -1
- package/dist/esm/styles/confirm.css +1 -1
- package/dist/esm/styles/datepicker.css +1 -1
- package/dist/esm/styles/daterangepicker.css +1 -1
- package/dist/esm/styles/datetimepicker.css +1 -1
- package/dist/esm/styles/descriptions.css +1 -1
- package/dist/esm/styles/divider.css +1 -1
- package/dist/esm/styles/drawer.css +1 -1
- package/dist/esm/styles/dropdown.css +1 -1
- package/dist/esm/styles/empty.css +1 -1
- package/dist/esm/styles/errorboundary.css +1 -1
- package/dist/esm/styles/filelist.css +1 -1
- package/dist/esm/styles/flex.css +1 -1
- package/dist/esm/styles/floatbutton.css +1 -1
- package/dist/esm/styles/form.css +1 -1
- package/dist/esm/styles/foundation.css +1 -1
- package/dist/esm/styles/grid.css +1 -1
- package/dist/esm/styles/image.css +1 -1
- package/dist/esm/styles/index.css +1380 -716
- package/dist/esm/styles/index.css.map +1 -1
- package/dist/esm/styles/infinitescroll.css +1 -1
- package/dist/esm/styles/input.css +1 -1
- package/dist/esm/styles/inputmask.css +1 -1
- package/dist/esm/styles/inputnumber.css +1 -1
- package/dist/esm/styles/inputotp.css +1 -1
- package/dist/esm/styles/layout.css +1 -1
- package/dist/esm/styles/loading.css +1 -1
- package/dist/esm/styles/loadingbar.css +1 -1
- package/dist/esm/styles/masonry.css +1 -1
- package/dist/esm/styles/mentions.css +1 -1
- package/dist/esm/styles/menu.css +1 -1
- package/dist/esm/styles/message.css +1 -1
- package/dist/esm/styles/modal.css +1 -1
- package/dist/esm/styles/notification.css +1 -1
- package/dist/esm/styles/pagination.css +1 -1
- package/dist/esm/styles/popconfirm.css +1 -1
- package/dist/esm/styles/popover.css +1 -1
- package/dist/esm/styles/progress.css +1 -1
- package/dist/esm/styles/qrcode.css +1 -1
- package/dist/esm/styles/radio.css +1 -1
- package/dist/esm/styles/rate.css +1 -1
- package/dist/esm/styles/result.css +1 -1
- package/dist/esm/styles/scrollarea.css +1 -1
- package/dist/esm/styles/scrollbar.css +1 -1
- package/dist/esm/styles/select.css +1 -1
- package/dist/esm/styles/skeleton.css +1 -1
- package/dist/esm/styles/slider.css +1 -1
- package/dist/esm/styles/space.css +1 -1
- package/dist/esm/styles/splitter.css +1 -1
- package/dist/esm/styles/statistic.css +1 -1
- package/dist/esm/styles/steps.css +1 -1
- package/dist/esm/styles/switch.css +1 -1
- package/dist/esm/styles/table.css +1 -1
- package/dist/esm/styles/tabletanstack.css +1 -1
- package/dist/esm/styles/tabs.css +1 -1
- package/dist/esm/styles/tag.css +1 -1
- package/dist/esm/styles/textarea.css +1 -1
- package/dist/esm/styles/timeline.css +1 -1
- package/dist/esm/styles/timepicker.css +1 -1
- package/dist/esm/styles/timerangepicker.css +1 -1
- package/dist/esm/styles/tooltip.css +1 -1
- package/dist/esm/styles/tour.css +1 -1
- package/dist/esm/styles/transfer.css +1 -1
- package/dist/esm/styles/tree.css +1 -1
- package/dist/esm/styles/treeselect.css +1 -1
- package/dist/esm/styles/typography.css +1 -1
- package/dist/esm/styles/upload.css +1 -1
- package/dist/esm/styles/virtuallist.css +1 -1
- package/dist/esm/tabs/tabs.d.ts +4 -2
- package/dist/esm/tabs/tabs.d.ts.map +1 -1
- package/dist/esm/tabs/tabs.js +14 -8
- package/dist/esm/tabs/tabs.js.map +1 -1
- package/dist/esm/tailwind-tokens.d.ts.map +1 -1
- package/dist/esm/tailwind-tokens.js +1 -1
- package/dist/esm/tailwind-tokens.js.map +1 -1
- package/dist/esm/textarea/textarea.d.ts.map +1 -1
- package/dist/esm/textarea/textarea.js +50 -22
- package/dist/esm/textarea/textarea.js.map +1 -1
- package/dist/esm/theme.d.ts +15 -0
- package/dist/esm/theme.d.ts.map +1 -1
- package/dist/esm/theme.js +53 -29
- package/dist/esm/theme.js.map +1 -1
- package/dist/esm/timeline/timeline.d.ts.map +1 -1
- package/dist/esm/timeline/timeline.js +1 -1
- package/dist/esm/timeline/timeline.js.map +1 -1
- package/dist/esm/timepicker/time-panel.d.ts.map +1 -1
- package/dist/esm/timepicker/time-panel.js +8 -2
- package/dist/esm/timepicker/time-panel.js.map +1 -1
- package/dist/esm/transfer/transfer.d.ts.map +1 -1
- package/dist/esm/transfer/transfer.js +5 -5
- package/dist/esm/transfer/transfer.js.map +1 -1
- package/dist/esm/tree/tree.d.ts.map +1 -1
- package/dist/esm/tree/tree.js +13 -6
- package/dist/esm/tree/tree.js.map +1 -1
- package/dist/esm/treeselect/treeselect.d.ts.map +1 -1
- package/dist/esm/treeselect/treeselect.js +5 -4
- package/dist/esm/treeselect/treeselect.js.map +1 -1
- package/dist/esm/virtuallist/virtuallist.d.ts.map +1 -1
- package/dist/esm/virtuallist/virtuallist.js +9 -3
- package/dist/esm/virtuallist/virtuallist.js.map +1 -1
- package/dist/tailwind.css +1 -1
- package/package.json +1 -22
- package/dist/cjs/browser/modules/segmented/index.cjs.map +0 -1
- package/dist/cjs/browser/modules/segmented/segmented.cjs +0 -127
- package/dist/cjs/browser/modules/segmented/segmented.cjs.map +0 -1
- package/dist/cjs/browser/segmented.cjs +0 -2
- package/dist/cjs/segmented/index.cjs.map +0 -1
- package/dist/cjs/segmented/index.d.cts +0 -3
- package/dist/cjs/segmented/index.d.cts.map +0 -1
- package/dist/cjs/segmented/segmented.cjs +0 -125
- package/dist/cjs/segmented/segmented.cjs.map +0 -1
- package/dist/cjs/segmented/segmented.d.cts +0 -21
- package/dist/cjs/segmented/segmented.d.cts.map +0 -1
- package/dist/cjs/styles/components/segmented.css +0 -1
- package/dist/cjs/styles/segmented.css +0 -1
- package/dist/esm/browser/modules/segmented/index.js +0 -2
- package/dist/esm/browser/modules/segmented/segmented.js +0 -89
- package/dist/esm/browser/modules/segmented/segmented.js.map +0 -1
- package/dist/esm/browser/segmented.js +0 -2
- package/dist/esm/segmented/index.d.ts +0 -3
- package/dist/esm/segmented/index.d.ts.map +0 -1
- package/dist/esm/segmented/index.js +0 -2
- package/dist/esm/segmented/segmented.d.ts +0 -21
- package/dist/esm/segmented/segmented.d.ts.map +0 -1
- package/dist/esm/segmented/segmented.js +0 -87
- package/dist/esm/segmented/segmented.js.map +0 -1
- package/dist/esm/styles/components/segmented.css +0 -1
- package/dist/esm/styles/segmented.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer/drawer.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/drawer/drawer.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 { X } from 'lucide-react';\nimport {\n type HTMLAttributes,\n type ReactNode,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { classes } from '../shared/classes';\nimport { type DialogFocusOptions, useDialog } from '../shared/dialog';\nimport { inertProps } from '../shared/inert';\nimport { OverlayOwner } from '../shared/overlay-owner';\nimport { useContentTransition, usePresence } from '../shared/presence';\nimport { ScopedPortal } from '../shared/scoped-portal';\n\nexport interface DrawerProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onResize'>,\n DialogFocusOptions {\n open: boolean;\n title?: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n divided?: boolean;\n footer?: ReactNode;\n extra?: ReactNode;\n placement?: 'left' | 'right' | 'top' | 'bottom';\n width?: number | string;\n height?: number | string;\n closable?: boolean;\n maskClosable?: boolean;\n keyboard?: boolean;\n onClose?: () => void;\n afterClose?: () => void;\n forceRender?: boolean;\n destroyOnClose?: boolean;\n preserve?: boolean;\n container?: Element | DocumentFragment | (() => Element | DocumentFragment);\n push?: boolean | number;\n resizable?: boolean;\n minSize?: number;\n maxSize?: number;\n onResize?: (size: number) => void;\n}\nfunction DrawerSurface({\n open,\n title,\n description,\n icon,\n divided = true,\n footer,\n extra,\n placement = 'right',\n width = 380,\n height = 300,\n closable = true,\n maskClosable = true,\n keyboard = true,\n onClose,\n afterClose,\n forceRender = false,\n destroyOnClose = false,\n preserve,\n initialFocus,\n returnFocus,\n container: _container,\n push = false,\n resizable = false,\n minSize = 240,\n maxSize = 900,\n onResize,\n children,\n className,\n style,\n ...props\n}: DrawerProps) {\n const { messages, maskBlur } = useLeafConfig();\n const id = useId();\n const panel = useRef<HTMLDivElement>(null);\n const backdrop = useRef<HTMLButtonElement>(null);\n const content = useRef<HTMLDivElement>(null);\n const present = usePresence(open, backdrop);\n const contentRevision = useRef({ children, revision: 0 });\n if (children !== contentRevision.current.children)\n contentRevision.current = { children, revision: contentRevision.current.revision + 1 };\n useContentTransition(content, `${open}:${contentRevision.current.revision}`, 0, true);\n const owner = useContext(OverlayOwner);\n const [resized, setResized] = useState<number>();\n const stopDragging = useRef<(() => void) | undefined>(undefined);\n useEffect(() => () => stopDragging.current?.(), []);\n const horizontal = placement === 'left' || placement === 'right';\n // biome-ignore lint/correctness/useExhaustiveDependencies: Resizing resets when the configured dimensions change.\n useEffect(() => {\n setResized(undefined);\n }, [width, height]);\n useEffect(() => {\n if (!open || !push || !owner) return;\n const parent = document.getElementById(owner);\n if (!parent) return;\n const previous = parent.style.transform;\n const distance = typeof push === 'number' ? push : 40;\n parent.style.transform = `translate${horizontal ? 'X' : 'Y'}(${placement === 'right' || placement === 'bottom' ? -distance : distance}px)`;\n return () => {\n parent.style.transform = previous;\n };\n }, [open, push, owner, placement, horizontal]);\n const previous = useRef(false);\n useEffect(() => {\n if (previous.current && !present) afterClose?.();\n previous.current = present;\n }, [present, afterClose]);\n useDialog(open, panel, id, () => onClose?.(), keyboard, { initialFocus, returnFocus });\n const visited = useRef(false);\n if (open) visited.current = true;\n if (\n !present &&\n !forceRender &&\n ((preserve === undefined ? destroyOnClose : !preserve) || !visited.current)\n )\n return null;\n return (\n <div\n hidden={!present}\n className={classes('leaf-drawer-mask', `leaf-drawer-mask--${placement}`)}\n data-blur={maskBlur ? undefined : 'off'}\n data-state={open ? 'open' : 'closing'}\n aria-hidden={!open || undefined}\n {...inertProps(!open)}\n >\n <button\n ref={backdrop}\n type=\"button\"\n tabIndex={-1}\n className=\"leaf-drawer-backdrop\"\n aria-label={messages.common.close}\n onClick={() => {\n if (maskClosable) onClose?.();\n }}\n />\n <div\n {...props}\n ref={panel}\n id={props.id ?? id}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title != null ? `${id}-title` : props['aria-labelledby']}\n aria-describedby={\n [props['aria-describedby'], description != null && `${id}-description`]\n .filter(Boolean)\n .join(' ') || undefined\n }\n tabIndex={-1}\n className={classes('leaf-drawer', divided && 'leaf-drawer--divided', className)}\n style={{\n ...(horizontal\n ? { width: resized ?? width, height: '100%' }\n : { height: resized ?? height, width: '100%' }),\n ...style,\n }}\n >\n {resizable && (\n // biome-ignore lint/a11y/useSemanticElements: This is the adjustable ARIA window-splitter handle, not a decorative separator.\n <div\n role=\"separator\"\n tabIndex={0}\n aria-label={messages.tree.expand}\n aria-orientation={horizontal ? 'vertical' : 'horizontal'}\n aria-valuemin={minSize}\n aria-valuemax={maxSize}\n aria-valuenow={\n resized ??\n (typeof (horizontal ? width : height) === 'number'\n ? Number(horizontal ? width : height)\n : undefined)\n }\n className=\"leaf-drawer__resize\"\n onPointerDown={(event) => {\n if (!panel.current) return;\n stopDragging.current?.();\n event.preventDefault();\n event.currentTarget.setPointerCapture(event.pointerId);\n const start = horizontal ? event.clientX : event.clientY;\n const bounds = panel.current.getBoundingClientRect();\n const size = horizontal ? bounds.width : bounds.height;\n const update = (event: PointerEvent) => {\n const next = Math.min(\n maxSize,\n Math.max(\n minSize,\n size +\n ((horizontal ? event.clientX : event.clientY) - start) *\n (placement === 'right' || placement === 'bottom' ? -1 : 1),\n ),\n );\n setResized(next);\n onResize?.(next);\n };\n const end = () => {\n window.removeEventListener('pointermove', update);\n window.removeEventListener('pointerup', end);\n window.removeEventListener('pointercancel', end);\n };\n stopDragging.current = end;\n window.addEventListener('pointermove', update);\n window.addEventListener('pointerup', end, { once: true });\n window.addEventListener('pointercancel', end, { once: true });\n }}\n onKeyDown={(event) => {\n if (!panel.current) return;\n if (!['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.key)) return;\n event.preventDefault();\n const bounds = panel.current.getBoundingClientRect();\n const size = horizontal ? bounds.width : bounds.height;\n const next = Math.min(\n maxSize,\n Math.max(\n minSize,\n size +\n (['ArrowRight', 'ArrowDown'].includes(event.key) ? 10 : -10) *\n (placement === 'right' || placement === 'bottom' ? -1 : 1),\n ),\n );\n setResized(next);\n onResize?.(next);\n }}\n />\n )}\n <OverlayOwner.Provider value={id}>\n {(title != null || description != null || icon != null || closable || extra) && (\n <div\n className={classes(\n 'leaf-drawer__header',\n title == null &&\n description == null &&\n icon == null &&\n 'leaf-drawer__header--compact',\n )}\n >\n {icon != null && (\n <span className=\"leaf-drawer__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n )}\n {(title != null || description != null) && (\n <div className=\"leaf-drawer__heading\">\n {title != null && <h2 id={`${id}-title`}>{title}</h2>}\n {description != null && (\n <div id={`${id}-description`} className=\"leaf-drawer__description\">\n {description}\n </div>\n )}\n </div>\n )}\n {extra && <div className=\"leaf-drawer__extra\">{extra}</div>}\n {closable && (\n <button\n type=\"button\"\n className=\"leaf-modal__close\"\n aria-label={messages.common.close}\n onClick={onClose}\n >\n <X size={18} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n )}\n <div className=\"leaf-drawer__body\">\n <div ref={content} className=\"leaf-drawer__content\">\n {children}\n </div>\n </div>\n {footer != null && <div className=\"leaf-drawer__footer\">{footer}</div>}\n </OverlayOwner.Provider>\n </div>\n </div>\n );\n}\nexport function Drawer(rawProps: DrawerProps) {\n const props = useComponentProps('Drawer', rawProps);\n return (\n <ScopedPortal container={props.container}>\n <DrawerSurface {...props} />\n </ScopedPortal>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","DrawerSurface","open","title","description","icon","divided","footer","extra","placement","width","height","closable","maskClosable","keyboard","onClose","afterClose","forceRender","destroyOnClose","preserve","initialFocus","returnFocus","_container","push","resizable","minSize","maxSize","onResize","children","className","style","props","messages","maskBlur","useLeafConfig","id","useId","panel","useRef","backdrop","content","present","usePresence","contentRevision","useContentTransition","owner","useContext","OverlayOwner","resized","setResized","useState","stopDragging","undefined","useEffect","horizontal","parent","document","previous","distance","useDialog","visited","classes","inertProps","Boolean","Number","event","start","bounds","size","update","next","Math","end","window","X","Drawer","rawProps","useComponentProps","ScopedPortal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawer/drawer.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/drawer/drawer.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 { X } from 'lucide-react';\nimport {\n type HTMLAttributes,\n type ReactNode,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { ScrollbarControl } from '../scrollbar/scrollbar';\nimport { classes } from '../shared/classes';\nimport { type DialogFocusOptions, useDialog } from '../shared/dialog';\nimport { inertProps } from '../shared/inert';\nimport { OverlayOwner } from '../shared/overlay-owner';\nimport { useContentTransition, usePresence } from '../shared/presence';\nimport { ScopedPortal } from '../shared/scoped-portal';\n\nexport interface DrawerProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onResize'>,\n DialogFocusOptions {\n open: boolean;\n title?: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n divided?: boolean;\n footer?: ReactNode;\n extra?: ReactNode;\n placement?: 'left' | 'right' | 'top' | 'bottom';\n width?: number | string;\n height?: number | string;\n closable?: boolean;\n maskClosable?: boolean;\n keyboard?: boolean;\n onClose?: () => void;\n afterClose?: () => void;\n forceRender?: boolean;\n destroyOnClose?: boolean;\n preserve?: boolean;\n container?: Element | DocumentFragment | (() => Element | DocumentFragment);\n push?: boolean | number;\n resizable?: boolean;\n minSize?: number;\n maxSize?: number;\n onResize?: (size: number) => void;\n}\nfunction DrawerSurface({\n open,\n title,\n description,\n icon,\n divided = true,\n footer,\n extra,\n placement = 'right',\n width = 380,\n height = 300,\n closable = true,\n maskClosable = true,\n keyboard = true,\n onClose,\n afterClose,\n forceRender = false,\n destroyOnClose = false,\n preserve,\n initialFocus,\n returnFocus,\n container: _container,\n push = false,\n resizable = false,\n minSize = 240,\n maxSize = 900,\n onResize,\n children,\n className,\n style,\n ...props\n}: DrawerProps) {\n const { messages, maskBlur } = useLeafConfig();\n const id = useId();\n const panel = useRef<HTMLDivElement>(null);\n const backdrop = useRef<HTMLButtonElement>(null);\n const content = useRef<HTMLDivElement>(null);\n const present = usePresence(open, backdrop);\n const contentRevision = useRef({ children, revision: 0 });\n if (children !== contentRevision.current.children)\n contentRevision.current = { children, revision: contentRevision.current.revision + 1 };\n useContentTransition(content, `${open}:${contentRevision.current.revision}`, 0, true);\n const owner = useContext(OverlayOwner);\n const [resized, setResized] = useState<number>();\n const stopDragging = useRef<(() => void) | undefined>(undefined);\n useEffect(() => () => stopDragging.current?.(), []);\n const horizontal = placement === 'left' || placement === 'right';\n // biome-ignore lint/correctness/useExhaustiveDependencies: Resizing resets when the configured dimensions change.\n useEffect(() => {\n setResized(undefined);\n }, [width, height]);\n useEffect(() => {\n if (!open || !push || !owner) return;\n const parent = document.getElementById(owner);\n if (!parent) return;\n const previous = parent.style.transform;\n const distance = typeof push === 'number' ? push : 40;\n parent.style.transform = `translate${horizontal ? 'X' : 'Y'}(${placement === 'right' || placement === 'bottom' ? -distance : distance}px)`;\n return () => {\n parent.style.transform = previous;\n };\n }, [open, push, owner, placement, horizontal]);\n const previous = useRef(false);\n useEffect(() => {\n if (previous.current && !present) afterClose?.();\n previous.current = present;\n }, [present, afterClose]);\n useDialog(open, panel, id, () => onClose?.(), keyboard, { initialFocus, returnFocus });\n const visited = useRef(false);\n if (open) visited.current = true;\n if (\n !present &&\n !forceRender &&\n ((preserve === undefined ? destroyOnClose : !preserve) || !visited.current)\n )\n return null;\n return (\n <div\n hidden={!present}\n className={classes('leaf-drawer-mask', `leaf-drawer-mask--${placement}`)}\n data-blur={maskBlur ? undefined : 'off'}\n data-state={open ? 'open' : 'closing'}\n aria-hidden={!open || undefined}\n {...inertProps(!open)}\n >\n <button\n ref={backdrop}\n type=\"button\"\n tabIndex={-1}\n className=\"leaf-drawer-backdrop\"\n aria-label={messages.common.close}\n onClick={() => {\n if (maskClosable) onClose?.();\n }}\n />\n <div\n {...props}\n ref={panel}\n id={props.id ?? id}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title != null ? `${id}-title` : props['aria-labelledby']}\n aria-describedby={\n [props['aria-describedby'], description != null && `${id}-description`]\n .filter(Boolean)\n .join(' ') || undefined\n }\n tabIndex={-1}\n className={classes('leaf-drawer', divided && 'leaf-drawer--divided', className)}\n style={{\n ...(horizontal\n ? { width: resized ?? width, height: '100%' }\n : { height: resized ?? height, width: '100%' }),\n ...style,\n }}\n >\n {resizable && (\n // biome-ignore lint/a11y/useSemanticElements: This is the adjustable ARIA window-splitter handle, not a decorative separator.\n <div\n role=\"separator\"\n tabIndex={0}\n aria-label={messages.tree.expand}\n aria-orientation={horizontal ? 'vertical' : 'horizontal'}\n aria-valuemin={minSize}\n aria-valuemax={maxSize}\n aria-valuenow={\n resized ??\n (typeof (horizontal ? width : height) === 'number'\n ? Number(horizontal ? width : height)\n : undefined)\n }\n className=\"leaf-drawer__resize\"\n onPointerDown={(event) => {\n if (!panel.current) return;\n stopDragging.current?.();\n event.preventDefault();\n event.currentTarget.setPointerCapture(event.pointerId);\n const start = horizontal ? event.clientX : event.clientY;\n const bounds = panel.current.getBoundingClientRect();\n const size = horizontal ? bounds.width : bounds.height;\n const update = (event: PointerEvent) => {\n const next = Math.min(\n maxSize,\n Math.max(\n minSize,\n size +\n ((horizontal ? event.clientX : event.clientY) - start) *\n (placement === 'right' || placement === 'bottom' ? -1 : 1),\n ),\n );\n setResized(next);\n onResize?.(next);\n };\n const end = () => {\n window.removeEventListener('pointermove', update);\n window.removeEventListener('pointerup', end);\n window.removeEventListener('pointercancel', end);\n };\n stopDragging.current = end;\n window.addEventListener('pointermove', update);\n window.addEventListener('pointerup', end, { once: true });\n window.addEventListener('pointercancel', end, { once: true });\n }}\n onKeyDown={(event) => {\n if (!panel.current) return;\n if (!['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.key)) return;\n event.preventDefault();\n const bounds = panel.current.getBoundingClientRect();\n const size = horizontal ? bounds.width : bounds.height;\n const next = Math.min(\n maxSize,\n Math.max(\n minSize,\n size +\n (['ArrowRight', 'ArrowDown'].includes(event.key) ? 10 : -10) *\n (placement === 'right' || placement === 'bottom' ? -1 : 1),\n ),\n );\n setResized(next);\n onResize?.(next);\n }}\n />\n )}\n <OverlayOwner.Provider value={id}>\n {(title != null || description != null || icon != null || closable || extra) && (\n <div\n className={classes(\n 'leaf-drawer__header',\n title == null &&\n description == null &&\n icon == null &&\n 'leaf-drawer__header--compact',\n )}\n >\n {icon != null && (\n <span className=\"leaf-drawer__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n )}\n {(title != null || description != null) && (\n <div className=\"leaf-drawer__heading\">\n {title != null && <h2 id={`${id}-title`}>{title}</h2>}\n {description != null && (\n <div id={`${id}-description`} className=\"leaf-drawer__description\">\n {description}\n </div>\n )}\n </div>\n )}\n {extra && <div className=\"leaf-drawer__extra\">{extra}</div>}\n {closable && (\n <button\n type=\"button\"\n className=\"leaf-modal__close\"\n aria-label={messages.common.close}\n onClick={onClose}\n >\n <X size={18} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n )}\n <ScrollbarControl\n className=\"leaf-drawer__body\"\n viewportClassName=\"leaf-drawer__viewport\"\n orientation=\"vertical\"\n role={title != null || props['aria-label'] ? 'region' : 'presentation'}\n aria-labelledby={title != null ? `${id}-title` : undefined}\n aria-label={title == null ? props['aria-label'] : undefined}\n >\n <div ref={content} className=\"leaf-drawer__content\">\n {children}\n </div>\n </ScrollbarControl>\n {footer != null && <div className=\"leaf-drawer__footer\">{footer}</div>}\n </OverlayOwner.Provider>\n </div>\n </div>\n );\n}\nexport function Drawer(rawProps: DrawerProps) {\n const props = useComponentProps('Drawer', rawProps);\n return (\n <ScopedPortal container={props.container}>\n <DrawerSurface {...props} />\n </ScopedPortal>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","DrawerSurface","open","title","description","icon","divided","footer","extra","placement","width","height","closable","maskClosable","keyboard","onClose","afterClose","forceRender","destroyOnClose","preserve","initialFocus","returnFocus","_container","push","resizable","minSize","maxSize","onResize","children","className","style","props","messages","maskBlur","useLeafConfig","id","useId","panel","useRef","backdrop","content","present","usePresence","contentRevision","useContentTransition","owner","useContext","OverlayOwner","resized","setResized","useState","stopDragging","undefined","useEffect","horizontal","parent","document","previous","distance","useDialog","visited","classes","inertProps","Boolean","Number","event","start","bounds","size","update","next","Math","end","window","X","ScrollbarControl","Drawer","rawProps","useComponentProps","ScopedPortal"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.d.cts","sourceRoot":"","sources":["../../../src/drawer/drawer.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"drawer.d.cts","sourceRoot":"","sources":["../../../src/drawer/drawer.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,KAAK,kBAAkB,EAAa,MAAM,kBAAkB,CAAC;AAMtE,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,EAChE,kBAAkB;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC;IAC5E,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAiPD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,WAAW,+BAO3C"}
|
|
@@ -51,7 +51,7 @@ const flatten = (items)=>items.flatMap((item)=>'group' === item.type ? [
|
|
|
51
51
|
item
|
|
52
52
|
]);
|
|
53
53
|
const useBrowserLayoutEffect = "u" < typeof window ? external_react_namespaceObject.useEffect : external_react_namespaceObject.useLayoutEffect;
|
|
54
|
-
function DropdownControl({ items, children, disabled, open: controlled, defaultOpen = false, onOpenChange, onSelect, placement = 'bottom-start', popupWidth, popupMaxWidth = 420, trigger: triggerType = 'click', mouseEnterDelay = 100, mouseLeaveDelay = 150, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, itemRender }) {
|
|
54
|
+
function DropdownControl({ items, children, disabled, open: controlled, defaultOpen = false, onOpenChange, onSelect, placement = 'bottom-start', popupWidth, popupMaxWidth = 420, trigger: triggerType = 'click', mouseEnterDelay = 100, mouseLeaveDelay = 150, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, itemRender, navigation }) {
|
|
55
55
|
const triggers = Array.isArray(triggerType) ? triggerType : [
|
|
56
56
|
triggerType
|
|
57
57
|
];
|
|
@@ -204,6 +204,7 @@ function DropdownControl({ items, children, disabled, open: controlled, defaultO
|
|
|
204
204
|
}
|
|
205
205
|
}),
|
|
206
206
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(MenuPanel, {
|
|
207
|
+
navigation: navigation,
|
|
207
208
|
items: items,
|
|
208
209
|
open: open,
|
|
209
210
|
trigger: trigger,
|
|
@@ -231,7 +232,7 @@ function DropdownControl({ items, children, disabled, open: controlled, defaultO
|
|
|
231
232
|
]
|
|
232
233
|
});
|
|
233
234
|
}
|
|
234
|
-
function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, startAtEnd, register, unregister, checks, choose, close, onTab, position, pointerOpen, onPointerEnter, onPointerLeave, popupClassName, popupStyle, popupRender, getPopupContainer, itemRender }) {
|
|
235
|
+
function MenuPanel({ navigation, items, open, trigger, id, placement, width, maxWidth, startAtEnd, register, unregister, checks, choose, close, onTab, position, pointerOpen, onPointerEnter, onPointerLeave, popupClassName, popupStyle, popupRender, getPopupContainer, itemRender }) {
|
|
235
236
|
const { direction } = (0, context_cjs_namespaceObject.useLeafConfig)();
|
|
236
237
|
const panel = (0, external_react_namespaceObject.useRef)(null);
|
|
237
238
|
const submenuTrigger = (0, external_react_namespaceObject.useRef)(null);
|
|
@@ -320,9 +321,12 @@ function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, start
|
|
|
320
321
|
};
|
|
321
322
|
const child = rows.find((item)=>item.key === submenu);
|
|
322
323
|
const activeItem = rows.find((item)=>item.key === current);
|
|
324
|
+
const containsSelected = (item)=>item.key === navigation?.selectedKey || Boolean(item.children?.some(containsSelected));
|
|
323
325
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
|
|
324
326
|
children: [
|
|
325
327
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(floating_cjs_namespaceObject.FloatingPanel, {
|
|
328
|
+
sideFallback: Boolean(navigation),
|
|
329
|
+
resetSurfaceGeometry: Boolean(navigation),
|
|
326
330
|
open: open,
|
|
327
331
|
triggerRef: trigger,
|
|
328
332
|
panelRef: panel,
|
|
@@ -330,7 +334,7 @@ function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, start
|
|
|
330
334
|
placement: placement,
|
|
331
335
|
width: width,
|
|
332
336
|
maxWidth: maxWidth,
|
|
333
|
-
className: (0, classes_cjs_namespaceObject.classes)('leaf-floating', 'leaf-dropdown', popupClassName),
|
|
337
|
+
className: (0, classes_cjs_namespaceObject.classes)('leaf-floating', 'leaf-dropdown', navigation && 'leaf-menu__popup', popupClassName),
|
|
334
338
|
position: position,
|
|
335
339
|
onPointerEnter: onPointerEnter,
|
|
336
340
|
onPointerLeave: onPointerLeave,
|
|
@@ -338,15 +342,20 @@ function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, start
|
|
|
338
342
|
render: popupRender,
|
|
339
343
|
container: getPopupContainer,
|
|
340
344
|
role: "menu",
|
|
345
|
+
"aria-label": 'string' == typeof navigation?.title ? navigation.title : void 0,
|
|
341
346
|
tabIndex: -1,
|
|
342
347
|
onKeyDown: keyDown,
|
|
343
348
|
children: [
|
|
349
|
+
navigation?.title && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
350
|
+
className: "leaf-menu__popup-title",
|
|
351
|
+
children: navigation.title
|
|
352
|
+
}),
|
|
344
353
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
345
354
|
className: "leaf-dropdown__highlight",
|
|
346
355
|
"aria-hidden": "true",
|
|
347
356
|
"data-ready": Boolean(highlight),
|
|
348
357
|
"data-danger": activeItem?.danger || void 0,
|
|
349
|
-
"data-selected": (activeItem?.type === 'checkbox' || activeItem?.type === 'radio') && (activeItem.checked ?? Boolean(checks[activeItem.key])) || void 0,
|
|
358
|
+
"data-selected": navigation && activeItem?.key === navigation.selectedKey || (activeItem?.type === 'checkbox' || activeItem?.type === 'radio') && (activeItem.checked ?? Boolean(checks[activeItem.key])) || void 0,
|
|
350
359
|
style: highlight
|
|
351
360
|
}),
|
|
352
361
|
rows.map((item)=>'divider' === item.type ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("hr", {
|
|
@@ -361,6 +370,8 @@ function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, start
|
|
|
361
370
|
role: 'checkbox' === item.type ? 'menuitemcheckbox' : 'radio' === item.type ? 'menuitemradio' : 'menuitem',
|
|
362
371
|
"aria-checked": 'checkbox' === item.type || 'radio' === item.type ? item.checked ?? Boolean(checks[item.key]) : void 0,
|
|
363
372
|
"aria-haspopup": item.children?.length ? 'menu' : void 0,
|
|
373
|
+
"aria-current": navigation && item.key === navigation.selectedKey ? 'page' : void 0,
|
|
374
|
+
"data-active-parent": navigation && item.children?.length && containsSelected(item) ? true : void 0,
|
|
364
375
|
"aria-expanded": item.children?.length ? submenu === item.key : void 0,
|
|
365
376
|
disabled: item.disabled,
|
|
366
377
|
tabIndex: current === item.key ? 0 : -1,
|
|
@@ -396,8 +407,13 @@ function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, start
|
|
|
396
407
|
opacity: item.checked ?? checks[item.key] ? 1 : 0
|
|
397
408
|
},
|
|
398
409
|
"aria-hidden": "true"
|
|
410
|
+
}) : navigation && item.icon ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
411
|
+
className: "leaf-menu__popup-icon",
|
|
412
|
+
"aria-hidden": "true",
|
|
413
|
+
children: item.icon
|
|
399
414
|
}) : item.icon,
|
|
400
415
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
416
|
+
className: navigation ? 'leaf-menu__popup-label' : void 0,
|
|
401
417
|
children: itemRender?.(item) ?? item.label
|
|
402
418
|
}),
|
|
403
419
|
item.children?.length ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.ChevronRight, {
|
|
@@ -410,6 +426,9 @@ function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, start
|
|
|
410
426
|
]
|
|
411
427
|
}),
|
|
412
428
|
child?.children && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(MenuPanel, {
|
|
429
|
+
navigation: navigation ? {
|
|
430
|
+
selectedKey: navigation.selectedKey
|
|
431
|
+
} : void 0,
|
|
413
432
|
items: child.children,
|
|
414
433
|
open: open && Boolean(submenu),
|
|
415
434
|
trigger: submenuTrigger,
|
|
@@ -421,6 +440,7 @@ function MenuPanel({ items, open, trigger, id, placement, width, maxWidth, start
|
|
|
421
440
|
getPopupContainer: getPopupContainer,
|
|
422
441
|
itemRender: itemRender,
|
|
423
442
|
maxWidth: maxWidth,
|
|
443
|
+
width: navigation ? width : void 0,
|
|
424
444
|
register: register,
|
|
425
445
|
unregister: unregister,
|
|
426
446
|
checks: checks,
|
|
@@ -438,6 +458,7 @@ function MenuAction({ item, children, ...props }) {
|
|
|
438
458
|
rel: '_blank' === item.target ? 'noopener noreferrer' : void 0,
|
|
439
459
|
role: props.role,
|
|
440
460
|
"aria-disabled": item.disabled || void 0,
|
|
461
|
+
"aria-current": props['aria-current'],
|
|
441
462
|
className: props.className,
|
|
442
463
|
tabIndex: props.tabIndex,
|
|
443
464
|
"data-key": item.key,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown/dropdown.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/dropdown/dropdown.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 { Check, ChevronRight, Circle } from 'lucide-react';\nimport {\n type ButtonHTMLAttributes,\n type CSSProperties,\n cloneElement,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n type RefObject,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n version,\n} from 'react';\nimport { tabbable } from 'tabbable';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { classes } from '../shared/classes';\nimport { useMergedRef } from '../shared/field';\nimport type { PopupOptions } from '../shared/floating';\nimport { FloatingPanel } from '../shared/floating';\nexport interface DropdownItem {\n key: string;\n label?: ReactNode;\n icon?: ReactNode;\n type?: 'item' | 'divider' | 'group' | 'checkbox' | 'radio';\n children?: readonly DropdownItem[];\n disabled?: boolean;\n danger?: boolean;\n checked?: boolean;\n group?: string;\n closeOnSelect?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n href?: string;\n target?: string;\n onClick?: (event: MouseEvent<HTMLElement>) => void;\n}\nexport interface DropdownProps extends PopupOptions {\n items: readonly DropdownItem[];\n children: ReactElement<\n ButtonHTMLAttributes<HTMLButtonElement> & { ref?: Ref<HTMLButtonElement> }\n >;\n disabled?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n onSelect?: (key: string) => void;\n placement?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n popupWidth?: number | string;\n popupMaxWidth?: number | string;\n trigger?: 'click' | 'hover' | 'contextMenu' | readonly ('click' | 'hover' | 'contextMenu')[];\n mouseEnterDelay?: number;\n mouseLeaveDelay?: number;\n itemRender?: (item: DropdownItem) => ReactNode;\n}\nconst flatten = (items: readonly DropdownItem[]): DropdownItem[] =>\n items.flatMap((item) =>\n item.type === 'group'\n ? [{ ...item, children: undefined }, ...flatten(item.children ?? [])]\n : [item],\n );\nconst useBrowserLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\nexport function DropdownControl({\n items,\n children,\n disabled,\n open: controlled,\n defaultOpen = false,\n onOpenChange,\n onSelect,\n placement = 'bottom-start',\n popupWidth,\n popupMaxWidth = 420,\n trigger: triggerType = 'click',\n mouseEnterDelay = 100,\n mouseLeaveDelay = 150,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n itemRender,\n}: DropdownProps) {\n const triggers = Array.isArray(triggerType) ? triggerType : [triggerType];\n const [position, setPosition] = useState<{ x: number; y: number }>();\n const [pointerOpen, setPointerOpen] = useState(false);\n const timer = useRef<ReturnType<typeof setTimeout>>(undefined);\n useEffect(() => () => clearTimeout(timer.current), []);\n const id = useId();\n const trigger = useRef<HTMLButtonElement>(null);\n const [internal, setInternal] = useState(defaultOpen);\n const [startAtEnd, setStartAtEnd] = useState(false);\n const [checks, setChecks] = useState<Record<string, boolean>>({});\n const inactive = disabled || children.props.disabled;\n const open = !inactive && (controlled ?? internal);\n const panels = useRef(new Set<HTMLDivElement>());\n const register = useCallback((node: HTMLDivElement | null) => {\n if (node) panels.current.add(node);\n }, []);\n const unregister = useCallback((node: HTMLDivElement) => {\n panels.current.delete(node);\n }, []);\n const childRef = version.startsWith('18.')\n ? (children as typeof children & { ref?: Ref<HTMLButtonElement> }).ref\n : children.props.ref;\n const merged = useMergedRef(trigger, childRef);\n const change = (next: boolean) => {\n if (controlled === undefined) setInternal(next);\n if (next !== open) onOpenChange?.(next);\n };\n const close = (focus = false) => {\n change(false);\n if (focus) trigger.current?.focus();\n };\n const hoverEnter = () => {\n clearTimeout(timer.current);\n if (triggers.includes('hover') && !inactive)\n timer.current = setTimeout(() => {\n setPosition(undefined);\n setPointerOpen(true);\n change(true);\n }, mouseEnterDelay);\n };\n const hoverLeave = () => {\n clearTimeout(timer.current);\n if (triggers.includes('hover')) timer.current = setTimeout(() => close(), mouseLeaveDelay);\n };\n useEffect(() => {\n if (inactive) setInternal(false);\n }, [inactive]);\n useEffect(() => {\n if (!open) return;\n const inside = (target: EventTarget | null) =>\n target instanceof Node &&\n (trigger.current?.contains(target) ||\n [...panels.current].some((panel) => panel.contains(target)));\n const pointer = (event: PointerEvent) => {\n if (!inside(event.target)) close();\n };\n const focus = (event: FocusEvent) => {\n if (!inside(event.target)) close();\n };\n document.addEventListener('pointerdown', pointer);\n document.addEventListener('focusin', focus);\n return () => {\n document.removeEventListener('pointerdown', pointer);\n document.removeEventListener('focusin', focus);\n };\n });\n const choose = (item: DropdownItem, event: MouseEvent<HTMLElement>) => {\n if (item.disabled) return;\n if (item.type === 'checkbox' || item.type === 'radio') {\n const checked = item.type === 'radio' || !(item.checked ?? checks[item.key]);\n setChecks((previous) => {\n const next = { ...previous, [item.key]: checked };\n if (item.type === 'radio') {\n const visit = (entries: readonly DropdownItem[]) => {\n for (const option of entries) {\n if (option.type === 'radio' && option.group === item.group)\n next[option.key] = option.key === item.key;\n if (option.children) visit(option.children);\n }\n };\n visit(items);\n }\n return next;\n });\n item.onCheckedChange?.(checked);\n }\n item.onClick?.(event);\n onSelect?.(item.key);\n if (item.closeOnSelect ?? (item.type !== 'checkbox' && item.type !== 'radio')) close(true);\n };\n const tab = (event: KeyboardEvent) => {\n event.preventDefault();\n const all = tabbable(document.body).filter(\n (element) => ![...panels.current].some((panel) => panel.contains(element)),\n );\n const position = trigger.current ? all.indexOf(trigger.current) : -1;\n close();\n (event.shiftKey ? trigger.current : (all[position + 1] ?? trigger.current))?.focus();\n };\n return (\n <>\n {cloneElement(children, {\n ref: merged,\n type: children.props.type ?? 'button',\n disabled: inactive,\n 'aria-haspopup': 'menu',\n 'aria-expanded': open,\n 'aria-controls': `${id}-root`,\n onClick: (event) => {\n children.props.onClick?.(event);\n if (!event.defaultPrevented && !inactive && triggers.includes('click')) {\n setPosition(undefined);\n setPointerOpen(false);\n setStartAtEnd(false);\n change(!open);\n }\n },\n onPointerEnter: (event) => {\n children.props.onPointerEnter?.(event);\n if (!event.defaultPrevented) hoverEnter();\n },\n onPointerLeave: (event) => {\n children.props.onPointerLeave?.(event);\n if (!event.defaultPrevented) hoverLeave();\n },\n onContextMenu: (event) => {\n children.props.onContextMenu?.(event);\n if (!event.defaultPrevented && !inactive && triggers.includes('contextMenu')) {\n event.preventDefault();\n setPosition({ x: event.clientX, y: event.clientY });\n setPointerOpen(false);\n change(true);\n }\n },\n onKeyDown: (event) => {\n children.props.onKeyDown?.(event);\n if (event.defaultPrevented || inactive) return;\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setStartAtEnd(event.key === 'ArrowUp');\n setPosition(undefined);\n setPointerOpen(false);\n change(true);\n }\n },\n })}\n <MenuPanel\n items={items}\n open={open}\n trigger={trigger}\n id={`${id}-root`}\n placement={(popupPlacement ?? placement) as PanelProps['placement']}\n position={position}\n pointerOpen={pointerOpen}\n onPointerEnter={() => clearTimeout(timer.current)}\n onPointerLeave={hoverLeave}\n popupClassName={popupClassName}\n popupStyle={popupStyle}\n popupRender={popupRender}\n getPopupContainer={getPopupContainer}\n itemRender={itemRender}\n width={popupWidth}\n maxWidth={popupMaxWidth}\n startAtEnd={startAtEnd}\n register={register}\n unregister={unregister}\n checks={checks}\n choose={choose}\n close={() => close(true)}\n onTab={tab}\n />\n </>\n );\n}\ninterface PanelProps extends PopupOptions {\n items: readonly DropdownItem[];\n open: boolean;\n trigger: RefObject<HTMLElement | null>;\n id: string;\n placement: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'right-start' | 'left-start';\n width?: number | string;\n maxWidth: number | string;\n startAtEnd?: boolean;\n register: (node: HTMLDivElement | null) => void;\n unregister: (node: HTMLDivElement) => void;\n checks: Record<string, boolean>;\n choose: (item: DropdownItem, event: MouseEvent<HTMLElement>) => void;\n close: () => void;\n onTab: (event: KeyboardEvent) => void;\n position?: { x: number; y: number };\n pointerOpen?: boolean;\n onPointerEnter?: () => void;\n onPointerLeave?: () => void;\n itemRender?: (item: DropdownItem) => ReactNode;\n}\nfunction MenuPanel({\n items,\n open,\n trigger,\n id,\n placement,\n width,\n maxWidth,\n startAtEnd,\n register,\n unregister,\n checks,\n choose,\n close,\n onTab,\n position,\n pointerOpen,\n onPointerEnter,\n onPointerLeave,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n itemRender,\n}: PanelProps) {\n const { direction } = useLeafConfig();\n const panel = useRef<HTMLDivElement>(null);\n const submenuTrigger = useRef<HTMLElement | null>(null);\n const rows = flatten(items);\n const enabled = rows.filter(\n (item) => !item.disabled && item.type !== 'group' && item.type !== 'divider',\n );\n const [active, setActive] = useState<string>();\n const [submenu, setSubmenu] = useState<string>();\n const [highlight, setHighlight] = useState<CSSProperties>();\n const current = enabled.some((item) => item.key === active)\n ? active\n : startAtEnd\n ? enabled.at(-1)?.key\n : enabled[0]?.key;\n useBrowserLayoutEffect(() => {\n const node = panel.current;\n if (!open || !node) return;\n const update = () => {\n const row = Array.from(node.querySelectorAll<HTMLElement>('[data-key]')).find(\n (item) => item.dataset.key === current,\n );\n setHighlight(\n row\n ? ({\n '--leaf-menu-highlight-y': `${row.offsetTop}px`,\n '--leaf-menu-highlight-height': `${row.offsetHeight}px`,\n } as CSSProperties)\n : undefined,\n );\n };\n update();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, [open, current]);\n useEffect(() => {\n if (!open) {\n setSubmenu(undefined);\n return;\n }\n const node = panel.current;\n register(node);\n const choices = node?.querySelectorAll<HTMLElement>(\n '[data-key]:not(:disabled):not([aria-disabled=\"true\"])',\n );\n const choice = startAtEnd ? choices?.[choices.length - 1] : choices?.[0];\n setActive(choice?.dataset.key);\n if (!pointerOpen) choice?.focus();\n return () => {\n if (node) unregister(node);\n };\n }, [open, startAtEnd, register, unregister, pointerOpen]);\n const focus = (key?: string) => {\n setActive(key);\n if (key)\n Array.from(panel.current?.querySelectorAll<HTMLElement>('[data-key]') ?? [])\n .find((node) => node.dataset.key === key)\n ?.focus();\n };\n const keyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.defaultPrevented) return;\n const index = enabled.findIndex((item) => item.key === current);\n let next: string | undefined;\n if (event.key === 'ArrowDown') next = enabled[(index + 1) % enabled.length]?.key;\n else if (event.key === 'ArrowUp')\n next = enabled[(index - 1 + enabled.length) % enabled.length]?.key;\n else if (event.key === 'Home') next = enabled[0]?.key;\n else if (event.key === 'End') next = enabled.at(-1)?.key;\n else if (\n event.key === 'Escape' ||\n (event.key === (direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft') &&\n (placement === 'right-start' || placement === 'left-start'))\n ) {\n event.preventDefault();\n event.stopPropagation();\n close();\n trigger.current?.focus();\n return;\n } else if (event.key === (direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight')) {\n const item = enabled[index];\n if (item?.children?.length) {\n submenuTrigger.current = event.target as HTMLElement;\n setSubmenu(item.key);\n } else return;\n } else if (event.key === 'Tab') {\n onTab(event);\n return;\n } else if (event.key.length === 1 && /\\S/.test(event.key))\n next = [...enabled.slice(index + 1), ...enabled.slice(0, index + 1)].find(\n (item) =>\n typeof item.label === 'string' &&\n item.label.toLocaleLowerCase().startsWith(event.key.toLocaleLowerCase()),\n )?.key;\n else return;\n if (next) {\n setSubmenu(undefined);\n focus(next);\n }\n event.preventDefault();\n event.stopPropagation();\n };\n const child = rows.find((item) => item.key === submenu);\n const activeItem = rows.find((item) => item.key === current);\n return (\n <>\n <FloatingPanel\n open={open}\n triggerRef={trigger}\n panelRef={panel}\n id={id}\n placement={placement}\n width={width}\n maxWidth={maxWidth}\n className={classes('leaf-floating', 'leaf-dropdown', popupClassName)}\n position={position}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n style={popupStyle}\n render={popupRender}\n container={getPopupContainer}\n role=\"menu\"\n tabIndex={-1}\n onKeyDown={keyDown}\n >\n <div\n className=\"leaf-dropdown__highlight\"\n aria-hidden=\"true\"\n data-ready={Boolean(highlight)}\n data-danger={activeItem?.danger || undefined}\n data-selected={\n ((activeItem?.type === 'checkbox' || activeItem?.type === 'radio') &&\n (activeItem.checked ?? Boolean(checks[activeItem.key]))) ||\n undefined\n }\n style={highlight}\n />\n {rows.map((item) =>\n item.type === 'divider' ? (\n <hr key={item.key} className=\"leaf-dropdown__divider\" />\n ) : item.type === 'group' ? (\n <div key={item.key} className=\"leaf-dropdown__group\" role=\"presentation\">\n {item.label}\n </div>\n ) : (\n <MenuAction\n item={item}\n key={item.key}\n data-key={item.key}\n role={\n item.type === 'checkbox'\n ? 'menuitemcheckbox'\n : item.type === 'radio'\n ? 'menuitemradio'\n : 'menuitem'\n }\n aria-checked={\n item.type === 'checkbox' || item.type === 'radio'\n ? (item.checked ?? Boolean(checks[item.key]))\n : undefined\n }\n aria-haspopup={item.children?.length ? 'menu' : undefined}\n aria-expanded={item.children?.length ? submenu === item.key : undefined}\n disabled={item.disabled}\n tabIndex={current === item.key ? 0 : -1}\n className={classes('leaf-floating__option', item.danger && 'leaf-dropdown__danger')}\n onFocus={() => setActive(item.key)}\n onPointerEnter={(event) => {\n if (item.disabled) return;\n setActive(item.key);\n if (item.children?.length) {\n submenuTrigger.current = event.currentTarget;\n setSubmenu(item.key);\n } else setSubmenu(undefined);\n }}\n onClick={(event) => {\n if (item.children?.length) {\n submenuTrigger.current = event.currentTarget;\n setSubmenu((previous) => (previous === item.key ? undefined : item.key));\n } else choose(item, event);\n }}\n >\n {item.type === 'checkbox' ? (\n <Check\n size={15}\n className=\"leaf-dropdown__check\"\n style={{ opacity: (item.checked ?? checks[item.key]) ? 1 : 0 }}\n aria-hidden=\"true\"\n />\n ) : item.type === 'radio' ? (\n <Circle\n size={8}\n className=\"leaf-dropdown__check\"\n fill=\"currentColor\"\n style={{ opacity: (item.checked ?? checks[item.key]) ? 1 : 0 }}\n aria-hidden=\"true\"\n />\n ) : (\n item.icon\n )}\n <span>{itemRender?.(item) ?? item.label}</span>\n {item.children?.length ? (\n <ChevronRight size={14} className=\"leaf-dropdown__arrow\" aria-hidden=\"true\" />\n ) : null}\n </MenuAction>\n ),\n )}\n </FloatingPanel>\n {child?.children && (\n <MenuPanel\n items={child.children}\n open={open && Boolean(submenu)}\n trigger={submenuTrigger}\n id={`${id}-sub`}\n placement={direction === 'rtl' ? 'left-start' : 'right-start'}\n pointerOpen={pointerOpen}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n getPopupContainer={getPopupContainer}\n itemRender={itemRender}\n maxWidth={maxWidth}\n register={register}\n unregister={unregister}\n checks={checks}\n choose={choose}\n close={() => setSubmenu(undefined)}\n onTab={onTab}\n />\n )}\n </>\n );\n}\n\nfunction MenuAction({\n item,\n children,\n ...props\n}: { item: DropdownItem } & ButtonHTMLAttributes<HTMLButtonElement>) {\n if (item.href && !item.children?.length)\n return (\n <a\n href={item.disabled ? undefined : item.href}\n target={item.target}\n rel={item.target === '_blank' ? 'noopener noreferrer' : undefined}\n role={props.role}\n aria-disabled={item.disabled || undefined}\n className={props.className}\n tabIndex={props.tabIndex}\n data-key={item.key}\n onFocus={props.onFocus as never}\n onPointerEnter={props.onPointerEnter as never}\n onClick={(event) => {\n if (item.disabled) event.preventDefault();\n else props.onClick?.(event as never);\n }}\n >\n {children}\n </a>\n );\n return (\n <button {...props} type=\"button\">\n {children}\n </button>\n );\n}\n\nexport function Dropdown(rawProps: DropdownProps) {\n const props = useComponentProps('Dropdown', rawProps);\n return <DropdownControl {...props} />;\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","flatten","items","item","undefined","useBrowserLayoutEffect","window","useEffect","useLayoutEffect","DropdownControl","children","disabled","controlled","defaultOpen","onOpenChange","onSelect","placement","popupWidth","popupMaxWidth","triggerType","mouseEnterDelay","mouseLeaveDelay","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","itemRender","triggers","Array","position","setPosition","useState","pointerOpen","setPointerOpen","timer","useRef","clearTimeout","id","useId","trigger","internal","setInternal","startAtEnd","setStartAtEnd","checks","setChecks","inactive","open","panels","Set","register","useCallback","node","unregister","childRef","version","merged","useMergedRef","change","next","close","focus","hoverEnter","setTimeout","hoverLeave","inside","target","Node","panel","pointer","event","document","choose","checked","previous","visit","entries","option","tab","all","tabbable","element","cloneElement","MenuPanel","width","maxWidth","onTab","onPointerEnter","onPointerLeave","direction","useLeafConfig","submenuTrigger","rows","enabled","active","setActive","submenu","setSubmenu","highlight","setHighlight","current","update","row","ResizeObserver","observer","choices","choice","keyDown","index","child","activeItem","FloatingPanel","classes","Boolean","MenuAction","Check","Circle","ChevronRight","props","Dropdown","rawProps","useComponentProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown/dropdown.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/dropdown/dropdown.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 { Check, ChevronRight, Circle } from 'lucide-react';\nimport {\n type ButtonHTMLAttributes,\n type CSSProperties,\n cloneElement,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n type RefObject,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n version,\n} from 'react';\nimport { tabbable } from 'tabbable';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { classes } from '../shared/classes';\nimport { useMergedRef } from '../shared/field';\nimport type { PopupOptions } from '../shared/floating';\nimport { FloatingPanel } from '../shared/floating';\nexport interface DropdownItem {\n key: string;\n label?: ReactNode;\n icon?: ReactNode;\n type?: 'item' | 'divider' | 'group' | 'checkbox' | 'radio';\n children?: readonly DropdownItem[];\n disabled?: boolean;\n danger?: boolean;\n checked?: boolean;\n group?: string;\n closeOnSelect?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n href?: string;\n target?: string;\n onClick?: (event: MouseEvent<HTMLElement>) => void;\n}\nexport interface DropdownProps extends PopupOptions {\n items: readonly DropdownItem[];\n children: ReactElement<\n ButtonHTMLAttributes<HTMLButtonElement> & { ref?: Ref<HTMLButtonElement> }\n >;\n disabled?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n onSelect?: (key: string) => void;\n placement?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n popupWidth?: number | string;\n popupMaxWidth?: number | string;\n trigger?: 'click' | 'hover' | 'contextMenu' | readonly ('click' | 'hover' | 'contextMenu')[];\n mouseEnterDelay?: number;\n mouseLeaveDelay?: number;\n itemRender?: (item: DropdownItem) => ReactNode;\n}\nconst flatten = (items: readonly DropdownItem[]): DropdownItem[] =>\n items.flatMap((item) =>\n item.type === 'group'\n ? [{ ...item, children: undefined }, ...flatten(item.children ?? [])]\n : [item],\n );\nconst useBrowserLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\ninterface NavigationMenu {\n selectedKey?: string;\n title?: ReactNode;\n}\ninterface DropdownControlProps extends DropdownProps {\n navigation?: NavigationMenu;\n}\nexport function DropdownControl({\n items,\n children,\n disabled,\n open: controlled,\n defaultOpen = false,\n onOpenChange,\n onSelect,\n placement = 'bottom-start',\n popupWidth,\n popupMaxWidth = 420,\n trigger: triggerType = 'click',\n mouseEnterDelay = 100,\n mouseLeaveDelay = 150,\n popupPlacement,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n itemRender,\n navigation,\n}: DropdownControlProps) {\n const triggers = Array.isArray(triggerType) ? triggerType : [triggerType];\n const [position, setPosition] = useState<{ x: number; y: number }>();\n const [pointerOpen, setPointerOpen] = useState(false);\n const timer = useRef<ReturnType<typeof setTimeout>>(undefined);\n useEffect(() => () => clearTimeout(timer.current), []);\n const id = useId();\n const trigger = useRef<HTMLButtonElement>(null);\n const [internal, setInternal] = useState(defaultOpen);\n const [startAtEnd, setStartAtEnd] = useState(false);\n const [checks, setChecks] = useState<Record<string, boolean>>({});\n const inactive = disabled || children.props.disabled;\n const open = !inactive && (controlled ?? internal);\n const panels = useRef(new Set<HTMLDivElement>());\n const register = useCallback((node: HTMLDivElement | null) => {\n if (node) panels.current.add(node);\n }, []);\n const unregister = useCallback((node: HTMLDivElement) => {\n panels.current.delete(node);\n }, []);\n const childRef = version.startsWith('18.')\n ? (children as typeof children & { ref?: Ref<HTMLButtonElement> }).ref\n : children.props.ref;\n const merged = useMergedRef(trigger, childRef);\n const change = (next: boolean) => {\n if (controlled === undefined) setInternal(next);\n if (next !== open) onOpenChange?.(next);\n };\n const close = (focus = false) => {\n change(false);\n if (focus) trigger.current?.focus();\n };\n const hoverEnter = () => {\n clearTimeout(timer.current);\n if (triggers.includes('hover') && !inactive)\n timer.current = setTimeout(() => {\n setPosition(undefined);\n setPointerOpen(true);\n change(true);\n }, mouseEnterDelay);\n };\n const hoverLeave = () => {\n clearTimeout(timer.current);\n if (triggers.includes('hover')) timer.current = setTimeout(() => close(), mouseLeaveDelay);\n };\n useEffect(() => {\n if (inactive) setInternal(false);\n }, [inactive]);\n useEffect(() => {\n if (!open) return;\n const inside = (target: EventTarget | null) =>\n target instanceof Node &&\n (trigger.current?.contains(target) ||\n [...panels.current].some((panel) => panel.contains(target)));\n const pointer = (event: PointerEvent) => {\n if (!inside(event.target)) close();\n };\n const focus = (event: FocusEvent) => {\n if (!inside(event.target)) close();\n };\n document.addEventListener('pointerdown', pointer);\n document.addEventListener('focusin', focus);\n return () => {\n document.removeEventListener('pointerdown', pointer);\n document.removeEventListener('focusin', focus);\n };\n });\n const choose = (item: DropdownItem, event: MouseEvent<HTMLElement>) => {\n if (item.disabled) return;\n if (item.type === 'checkbox' || item.type === 'radio') {\n const checked = item.type === 'radio' || !(item.checked ?? checks[item.key]);\n setChecks((previous) => {\n const next = { ...previous, [item.key]: checked };\n if (item.type === 'radio') {\n const visit = (entries: readonly DropdownItem[]) => {\n for (const option of entries) {\n if (option.type === 'radio' && option.group === item.group)\n next[option.key] = option.key === item.key;\n if (option.children) visit(option.children);\n }\n };\n visit(items);\n }\n return next;\n });\n item.onCheckedChange?.(checked);\n }\n item.onClick?.(event);\n onSelect?.(item.key);\n if (item.closeOnSelect ?? (item.type !== 'checkbox' && item.type !== 'radio')) close(true);\n };\n const tab = (event: KeyboardEvent) => {\n event.preventDefault();\n const all = tabbable(document.body).filter(\n (element) => ![...panels.current].some((panel) => panel.contains(element)),\n );\n const position = trigger.current ? all.indexOf(trigger.current) : -1;\n close();\n (event.shiftKey ? trigger.current : (all[position + 1] ?? trigger.current))?.focus();\n };\n return (\n <>\n {cloneElement(children, {\n ref: merged,\n type: children.props.type ?? 'button',\n disabled: inactive,\n 'aria-haspopup': 'menu',\n 'aria-expanded': open,\n 'aria-controls': `${id}-root`,\n onClick: (event) => {\n children.props.onClick?.(event);\n if (!event.defaultPrevented && !inactive && triggers.includes('click')) {\n setPosition(undefined);\n setPointerOpen(false);\n setStartAtEnd(false);\n change(!open);\n }\n },\n onPointerEnter: (event) => {\n children.props.onPointerEnter?.(event);\n if (!event.defaultPrevented) hoverEnter();\n },\n onPointerLeave: (event) => {\n children.props.onPointerLeave?.(event);\n if (!event.defaultPrevented) hoverLeave();\n },\n onContextMenu: (event) => {\n children.props.onContextMenu?.(event);\n if (!event.defaultPrevented && !inactive && triggers.includes('contextMenu')) {\n event.preventDefault();\n setPosition({ x: event.clientX, y: event.clientY });\n setPointerOpen(false);\n change(true);\n }\n },\n onKeyDown: (event) => {\n children.props.onKeyDown?.(event);\n if (event.defaultPrevented || inactive) return;\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setStartAtEnd(event.key === 'ArrowUp');\n setPosition(undefined);\n setPointerOpen(false);\n change(true);\n }\n },\n })}\n <MenuPanel\n navigation={navigation}\n items={items}\n open={open}\n trigger={trigger}\n id={`${id}-root`}\n placement={(popupPlacement ?? placement) as PanelProps['placement']}\n position={position}\n pointerOpen={pointerOpen}\n onPointerEnter={() => clearTimeout(timer.current)}\n onPointerLeave={hoverLeave}\n popupClassName={popupClassName}\n popupStyle={popupStyle}\n popupRender={popupRender}\n getPopupContainer={getPopupContainer}\n itemRender={itemRender}\n width={popupWidth}\n maxWidth={popupMaxWidth}\n startAtEnd={startAtEnd}\n register={register}\n unregister={unregister}\n checks={checks}\n choose={choose}\n close={() => close(true)}\n onTab={tab}\n />\n </>\n );\n}\ninterface PanelProps extends PopupOptions {\n navigation?: NavigationMenu;\n items: readonly DropdownItem[];\n open: boolean;\n trigger: RefObject<HTMLElement | null>;\n id: string;\n placement: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'right-start' | 'left-start';\n width?: number | string;\n maxWidth: number | string;\n startAtEnd?: boolean;\n register: (node: HTMLDivElement | null) => void;\n unregister: (node: HTMLDivElement) => void;\n checks: Record<string, boolean>;\n choose: (item: DropdownItem, event: MouseEvent<HTMLElement>) => void;\n close: () => void;\n onTab: (event: KeyboardEvent) => void;\n position?: { x: number; y: number };\n pointerOpen?: boolean;\n onPointerEnter?: () => void;\n onPointerLeave?: () => void;\n itemRender?: (item: DropdownItem) => ReactNode;\n}\nfunction MenuPanel({\n navigation,\n items,\n open,\n trigger,\n id,\n placement,\n width,\n maxWidth,\n startAtEnd,\n register,\n unregister,\n checks,\n choose,\n close,\n onTab,\n position,\n pointerOpen,\n onPointerEnter,\n onPointerLeave,\n popupClassName,\n popupStyle,\n popupRender,\n getPopupContainer,\n itemRender,\n}: PanelProps) {\n const { direction } = useLeafConfig();\n const panel = useRef<HTMLDivElement>(null);\n const submenuTrigger = useRef<HTMLElement | null>(null);\n const rows = flatten(items);\n const enabled = rows.filter(\n (item) => !item.disabled && item.type !== 'group' && item.type !== 'divider',\n );\n const [active, setActive] = useState<string>();\n const [submenu, setSubmenu] = useState<string>();\n const [highlight, setHighlight] = useState<CSSProperties>();\n const current = enabled.some((item) => item.key === active)\n ? active\n : startAtEnd\n ? enabled.at(-1)?.key\n : enabled[0]?.key;\n useBrowserLayoutEffect(() => {\n const node = panel.current;\n if (!open || !node) return;\n const update = () => {\n const row = Array.from(node.querySelectorAll<HTMLElement>('[data-key]')).find(\n (item) => item.dataset.key === current,\n );\n setHighlight(\n row\n ? ({\n '--leaf-menu-highlight-y': `${row.offsetTop}px`,\n '--leaf-menu-highlight-height': `${row.offsetHeight}px`,\n } as CSSProperties)\n : undefined,\n );\n };\n update();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, [open, current]);\n useEffect(() => {\n if (!open) {\n setSubmenu(undefined);\n return;\n }\n const node = panel.current;\n register(node);\n const choices = node?.querySelectorAll<HTMLElement>(\n '[data-key]:not(:disabled):not([aria-disabled=\"true\"])',\n );\n const choice = startAtEnd ? choices?.[choices.length - 1] : choices?.[0];\n setActive(choice?.dataset.key);\n if (!pointerOpen) choice?.focus();\n return () => {\n if (node) unregister(node);\n };\n }, [open, startAtEnd, register, unregister, pointerOpen]);\n const focus = (key?: string) => {\n setActive(key);\n if (key)\n Array.from(panel.current?.querySelectorAll<HTMLElement>('[data-key]') ?? [])\n .find((node) => node.dataset.key === key)\n ?.focus();\n };\n const keyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.defaultPrevented) return;\n const index = enabled.findIndex((item) => item.key === current);\n let next: string | undefined;\n if (event.key === 'ArrowDown') next = enabled[(index + 1) % enabled.length]?.key;\n else if (event.key === 'ArrowUp')\n next = enabled[(index - 1 + enabled.length) % enabled.length]?.key;\n else if (event.key === 'Home') next = enabled[0]?.key;\n else if (event.key === 'End') next = enabled.at(-1)?.key;\n else if (\n event.key === 'Escape' ||\n (event.key === (direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft') &&\n (placement === 'right-start' || placement === 'left-start'))\n ) {\n event.preventDefault();\n event.stopPropagation();\n close();\n trigger.current?.focus();\n return;\n } else if (event.key === (direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight')) {\n const item = enabled[index];\n if (item?.children?.length) {\n submenuTrigger.current = event.target as HTMLElement;\n setSubmenu(item.key);\n } else return;\n } else if (event.key === 'Tab') {\n onTab(event);\n return;\n } else if (event.key.length === 1 && /\\S/.test(event.key))\n next = [...enabled.slice(index + 1), ...enabled.slice(0, index + 1)].find(\n (item) =>\n typeof item.label === 'string' &&\n item.label.toLocaleLowerCase().startsWith(event.key.toLocaleLowerCase()),\n )?.key;\n else return;\n if (next) {\n setSubmenu(undefined);\n focus(next);\n }\n event.preventDefault();\n event.stopPropagation();\n };\n const child = rows.find((item) => item.key === submenu);\n const activeItem = rows.find((item) => item.key === current);\n const containsSelected = (item: DropdownItem): boolean =>\n item.key === navigation?.selectedKey || Boolean(item.children?.some(containsSelected));\n return (\n <>\n <FloatingPanel\n sideFallback={Boolean(navigation)}\n resetSurfaceGeometry={Boolean(navigation)}\n open={open}\n triggerRef={trigger}\n panelRef={panel}\n id={id}\n placement={placement}\n width={width}\n maxWidth={maxWidth}\n className={classes(\n 'leaf-floating',\n 'leaf-dropdown',\n navigation && 'leaf-menu__popup',\n popupClassName,\n )}\n position={position}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n style={popupStyle}\n render={popupRender}\n container={getPopupContainer}\n role=\"menu\"\n aria-label={typeof navigation?.title === 'string' ? navigation.title : undefined}\n tabIndex={-1}\n onKeyDown={keyDown}\n >\n {navigation?.title && <div className=\"leaf-menu__popup-title\">{navigation.title}</div>}\n <div\n className=\"leaf-dropdown__highlight\"\n aria-hidden=\"true\"\n data-ready={Boolean(highlight)}\n data-danger={activeItem?.danger || undefined}\n data-selected={\n (navigation && activeItem?.key === navigation.selectedKey) ||\n ((activeItem?.type === 'checkbox' || activeItem?.type === 'radio') &&\n (activeItem.checked ?? Boolean(checks[activeItem.key]))) ||\n undefined\n }\n style={highlight}\n />\n {rows.map((item) =>\n item.type === 'divider' ? (\n <hr key={item.key} className=\"leaf-dropdown__divider\" />\n ) : item.type === 'group' ? (\n <div key={item.key} className=\"leaf-dropdown__group\" role=\"presentation\">\n {item.label}\n </div>\n ) : (\n <MenuAction\n item={item}\n key={item.key}\n data-key={item.key}\n role={\n item.type === 'checkbox'\n ? 'menuitemcheckbox'\n : item.type === 'radio'\n ? 'menuitemradio'\n : 'menuitem'\n }\n aria-checked={\n item.type === 'checkbox' || item.type === 'radio'\n ? (item.checked ?? Boolean(checks[item.key]))\n : undefined\n }\n aria-haspopup={item.children?.length ? 'menu' : undefined}\n aria-current={navigation && item.key === navigation.selectedKey ? 'page' : undefined}\n data-active-parent={\n navigation && item.children?.length && containsSelected(item) ? true : undefined\n }\n aria-expanded={item.children?.length ? submenu === item.key : undefined}\n disabled={item.disabled}\n tabIndex={current === item.key ? 0 : -1}\n className={classes('leaf-floating__option', item.danger && 'leaf-dropdown__danger')}\n onFocus={() => setActive(item.key)}\n onPointerEnter={(event) => {\n if (item.disabled) return;\n setActive(item.key);\n if (item.children?.length) {\n submenuTrigger.current = event.currentTarget;\n setSubmenu(item.key);\n } else setSubmenu(undefined);\n }}\n onClick={(event) => {\n if (item.children?.length) {\n submenuTrigger.current = event.currentTarget;\n setSubmenu((previous) => (previous === item.key ? undefined : item.key));\n } else choose(item, event);\n }}\n >\n {item.type === 'checkbox' ? (\n <Check\n size={15}\n className=\"leaf-dropdown__check\"\n style={{ opacity: (item.checked ?? checks[item.key]) ? 1 : 0 }}\n aria-hidden=\"true\"\n />\n ) : item.type === 'radio' ? (\n <Circle\n size={8}\n className=\"leaf-dropdown__check\"\n fill=\"currentColor\"\n style={{ opacity: (item.checked ?? checks[item.key]) ? 1 : 0 }}\n aria-hidden=\"true\"\n />\n ) : navigation && item.icon ? (\n <span className=\"leaf-menu__popup-icon\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : (\n item.icon\n )}\n <span className={navigation ? 'leaf-menu__popup-label' : undefined}>\n {itemRender?.(item) ?? item.label}\n </span>\n {item.children?.length ? (\n <ChevronRight size={14} className=\"leaf-dropdown__arrow\" aria-hidden=\"true\" />\n ) : null}\n </MenuAction>\n ),\n )}\n </FloatingPanel>\n {child?.children && (\n <MenuPanel\n navigation={navigation ? { selectedKey: navigation.selectedKey } : undefined}\n items={child.children}\n open={open && Boolean(submenu)}\n trigger={submenuTrigger}\n id={`${id}-sub`}\n placement={direction === 'rtl' ? 'left-start' : 'right-start'}\n pointerOpen={pointerOpen}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n getPopupContainer={getPopupContainer}\n itemRender={itemRender}\n maxWidth={maxWidth}\n width={navigation ? width : undefined}\n register={register}\n unregister={unregister}\n checks={checks}\n choose={choose}\n close={() => setSubmenu(undefined)}\n onTab={onTab}\n />\n )}\n </>\n );\n}\n\nfunction MenuAction({\n item,\n children,\n ...props\n}: { item: DropdownItem } & ButtonHTMLAttributes<HTMLButtonElement>) {\n if (item.href && !item.children?.length)\n return (\n <a\n href={item.disabled ? undefined : item.href}\n target={item.target}\n rel={item.target === '_blank' ? 'noopener noreferrer' : undefined}\n role={props.role}\n aria-disabled={item.disabled || undefined}\n aria-current={props['aria-current']}\n className={props.className}\n tabIndex={props.tabIndex}\n data-key={item.key}\n onFocus={props.onFocus as never}\n onPointerEnter={props.onPointerEnter as never}\n onClick={(event) => {\n if (item.disabled) event.preventDefault();\n else props.onClick?.(event as never);\n }}\n >\n {children}\n </a>\n );\n return (\n <button {...props} type=\"button\">\n {children}\n </button>\n );\n}\n\nexport function Dropdown(rawProps: DropdownProps) {\n const props = useComponentProps('Dropdown', rawProps);\n return <DropdownControl {...props} />;\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","flatten","items","item","undefined","useBrowserLayoutEffect","window","useEffect","useLayoutEffect","DropdownControl","children","disabled","controlled","defaultOpen","onOpenChange","onSelect","placement","popupWidth","popupMaxWidth","triggerType","mouseEnterDelay","mouseLeaveDelay","popupPlacement","popupClassName","popupStyle","popupRender","getPopupContainer","itemRender","navigation","triggers","Array","position","setPosition","useState","pointerOpen","setPointerOpen","timer","useRef","clearTimeout","id","useId","trigger","internal","setInternal","startAtEnd","setStartAtEnd","checks","setChecks","inactive","open","panels","Set","register","useCallback","node","unregister","childRef","version","merged","useMergedRef","change","next","close","focus","hoverEnter","setTimeout","hoverLeave","inside","target","Node","panel","pointer","event","document","choose","checked","previous","visit","entries","option","tab","all","tabbable","element","cloneElement","MenuPanel","width","maxWidth","onTab","onPointerEnter","onPointerLeave","direction","useLeafConfig","submenuTrigger","rows","enabled","active","setActive","submenu","setSubmenu","highlight","setHighlight","current","update","row","ResizeObserver","observer","choices","choice","keyDown","index","child","activeItem","containsSelected","Boolean","FloatingPanel","classes","MenuAction","Check","Circle","ChevronRight","props","Dropdown","rawProps","useComponentProps"],"mappings":";;;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC,SAASC;QAC1C,IAAIC,SAAS,CAACC,MAAMC;YACnB,IAAI,IAAIC,OAAOF,KACd,IAAGJ,oBAAoB,CAAC,CAACI,MAAME,QAAQ,CAACN,oBAAoB,CAAC,CAAC,UAASM,MACtEC,OAAO,cAAc,CAAC,UAASD,KAAK;gBAAE,YAAY;gBAAM,CAACD,KAAK,EAAED,IAAI,CAACE,IAAI;YAAC;QAG7E;QACAH,OAAOF,SAAS;QAChBE,OAAOD,QAAQ;IAChB;;;ICVAF,oBAAoB,CAAC,GAAG,CAACQ,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFT,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,MAAlB,OAAOU,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;;;;;;;ACsDA,MAAMI,UAAU,CAACC,QACfA,MAAM,OAAO,CAAC,CAACC,OACbA,AAAc,YAAdA,KAAK,IAAI,GACL;YAAC;gBAAE,GAAGA,IAAI;gBAAE,UAAUC;YAAU;eAAMH,QAAQE,KAAK,QAAQ,IAAI,EAAE;SAAE,GACnE;YAACA;SAAK;AAEd,MAAME,yBAAyB,AAAkB,MAAlB,OAAOC,SAAyBC,+BAAAA,SAASA,GAAGC,+BAAAA,eAAeA;AAQnF,SAASC,gBAAgB,EAC9BP,KAAK,EACLQ,QAAQ,EACRC,QAAQ,EACR,MAAMC,UAAU,EAChBC,cAAc,KAAK,EACnBC,YAAY,EACZC,QAAQ,EACRC,YAAY,cAAc,EAC1BC,UAAU,EACVC,gBAAgB,GAAG,EACnB,SAASC,cAAc,OAAO,EAC9BC,kBAAkB,GAAG,EACrBC,kBAAkB,GAAG,EACrBC,cAAc,EACdC,cAAc,EACdC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,UAAU,EACVC,UAAU,EACW;IACrB,MAAMC,WAAWC,MAAM,OAAO,CAACX,eAAeA,cAAc;QAACA;KAAY;IACzE,MAAM,CAACY,UAAUC,YAAY,GAAGC,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA;IAChC,MAAM,CAACC,aAAaC,eAAe,GAAGF,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA,EAAS;IAC/C,MAAMG,QAAQC,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAAsCjC;IACpDG,IAAAA,+BAAAA,SAAAA,AAAAA,EAAU,IAAM,IAAM+B,aAAaF,MAAM,OAAO,GAAG,EAAE;IACrD,MAAMG,KAAKC,AAAAA,IAAAA,+BAAAA,KAAAA,AAAAA;IACX,MAAMC,UAAUJ,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAA0B;IAC1C,MAAM,CAACK,UAAUC,YAAY,GAAGV,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA,EAASpB;IACzC,MAAM,CAAC+B,YAAYC,cAAc,GAAGZ,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA,EAAS;IAC7C,MAAM,CAACa,QAAQC,UAAU,GAAGd,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA,EAAkC,CAAC;IAC/D,MAAMe,WAAWrC,YAAYD,SAAS,KAAK,CAAC,QAAQ;IACpD,MAAMuC,OAAO,CAACD,YAAapC,CAAAA,cAAc8B,QAAO;IAChD,MAAMQ,SAASb,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAAO,IAAIc;IAC1B,MAAMC,WAAWC,AAAAA,IAAAA,+BAAAA,WAAAA,AAAAA,EAAY,CAACC;QAC5B,IAAIA,MAAMJ,OAAO,OAAO,CAAC,GAAG,CAACI;IAC/B,GAAG,EAAE;IACL,MAAMC,aAAaF,AAAAA,IAAAA,+BAAAA,WAAAA,AAAAA,EAAY,CAACC;QAC9BJ,OAAO,OAAO,CAAC,MAAM,CAACI;IACxB,GAAG,EAAE;IACL,MAAME,WAAWC,+BAAAA,OAAAA,CAAAA,UAAkB,CAAC,SAC/B/C,SAAgE,GAAG,GACpEA,SAAS,KAAK,CAAC,GAAG;IACtB,MAAMgD,SAASC,AAAAA,IAAAA,0BAAAA,YAAAA,AAAAA,EAAalB,SAASe;IACrC,MAAMI,SAAS,CAACC;QACd,IAAIjD,AAAeR,WAAfQ,YAA0B+B,YAAYkB;QAC1C,IAAIA,SAASZ,MAAMnC,eAAe+C;IACpC;IACA,MAAMC,QAAQ,CAACC,QAAQ,KAAK;QAC1BH,OAAO;QACP,IAAIG,OAAOtB,QAAQ,OAAO,EAAE;IAC9B;IACA,MAAMuB,aAAa;QACjB1B,aAAaF,MAAM,OAAO;QAC1B,IAAIP,SAAS,QAAQ,CAAC,YAAY,CAACmB,UACjCZ,MAAM,OAAO,GAAG6B,WAAW;YACzBjC,YAAY5B;YACZ+B,eAAe;YACfyB,OAAO;QACT,GAAGxC;IACP;IACA,MAAM8C,aAAa;QACjB5B,aAAaF,MAAM,OAAO;QAC1B,IAAIP,SAAS,QAAQ,CAAC,UAAUO,MAAM,OAAO,GAAG6B,WAAW,IAAMH,SAASzC;IAC5E;IACAd,IAAAA,+BAAAA,SAAAA,AAAAA,EAAU;QACR,IAAIyC,UAAUL,YAAY;IAC5B,GAAG;QAACK;KAAS;IACbzC,IAAAA,+BAAAA,SAAAA,AAAAA,EAAU;QACR,IAAI,CAAC0C,MAAM;QACX,MAAMkB,SAAS,CAACC,SACdA,kBAAkBC,QACjB5B,CAAAA,QAAQ,OAAO,EAAE,SAAS2B,WACzB;mBAAIlB,OAAO,OAAO;aAAC,CAAC,IAAI,CAAC,CAACoB,QAAUA,MAAM,QAAQ,CAACF,QAAO;QAC9D,MAAMG,UAAU,CAACC;YACf,IAAI,CAACL,OAAOK,MAAM,MAAM,GAAGV;QAC7B;QACA,MAAMC,QAAQ,CAACS;YACb,IAAI,CAACL,OAAOK,MAAM,MAAM,GAAGV;QAC7B;QACAW,SAAS,gBAAgB,CAAC,eAAeF;QACzCE,SAAS,gBAAgB,CAAC,WAAWV;QACrC,OAAO;YACLU,SAAS,mBAAmB,CAAC,eAAeF;YAC5CE,SAAS,mBAAmB,CAAC,WAAWV;QAC1C;IACF;IACA,MAAMW,SAAS,CAACvE,MAAoBqE;QAClC,IAAIrE,KAAK,QAAQ,EAAE;QACnB,IAAIA,AAAc,eAAdA,KAAK,IAAI,IAAmBA,AAAc,YAAdA,KAAK,IAAI,EAAc;YACrD,MAAMwE,UAAUxE,AAAc,YAAdA,KAAK,IAAI,IAAgB,CAAEA,CAAAA,KAAK,OAAO,IAAI2C,MAAM,CAAC3C,KAAK,GAAG,CAAC,AAAD;YAC1E4C,UAAU,CAAC6B;gBACT,MAAMf,OAAO;oBAAE,GAAGe,QAAQ;oBAAE,CAACzE,KAAK,GAAG,CAAC,EAAEwE;gBAAQ;gBAChD,IAAIxE,AAAc,YAAdA,KAAK,IAAI,EAAc;oBACzB,MAAM0E,QAAQ,CAACC;wBACb,KAAK,MAAMC,UAAUD,QAAS;4BAC5B,IAAIC,AAAgB,YAAhBA,OAAO,IAAI,IAAgBA,OAAO,KAAK,KAAK5E,KAAK,KAAK,EACxD0D,IAAI,CAACkB,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,KAAK5E,KAAK,GAAG;4BAC5C,IAAI4E,OAAO,QAAQ,EAAEF,MAAME,OAAO,QAAQ;wBAC5C;oBACF;oBACAF,MAAM3E;gBACR;gBACA,OAAO2D;YACT;YACA1D,KAAK,eAAe,GAAGwE;QACzB;QACAxE,KAAK,OAAO,GAAGqE;QACfzD,WAAWZ,KAAK,GAAG;QACnB,IAAIA,KAAK,aAAa,IAAKA,CAAAA,AAAc,eAAdA,KAAK,IAAI,IAAmBA,AAAc,YAAdA,KAAK,IAAI,AAAW,GAAI2D,MAAM;IACvF;IACA,MAAMkB,MAAM,CAACR;QACXA,MAAM,cAAc;QACpB,MAAMS,MAAMC,AAAAA,IAAAA,kCAAAA,QAAAA,AAAAA,EAAST,SAAS,IAAI,EAAE,MAAM,CACxC,CAACU,UAAY,CAAC;mBAAIjC,OAAO,OAAO;aAAC,CAAC,IAAI,CAAC,CAACoB,QAAUA,MAAM,QAAQ,CAACa;QAEnE,MAAMpD,WAAWU,QAAQ,OAAO,GAAGwC,IAAI,OAAO,CAACxC,QAAQ,OAAO,IAAI;QAClEqB;QACCU,CAAAA,MAAM,QAAQ,GAAG/B,QAAQ,OAAO,GAAIwC,GAAG,CAAClD,WAAW,EAAE,IAAIU,QAAQ,OAAO,AAAD,GAAK;IAC/E;IACA,OACE,AADK,WAAP,GACE;;0BACG2C,IAAAA,+BAAAA,YAAAA,AAAAA,EAAa1E,UAAU;gBACtB,KAAKgD;gBACL,MAAMhD,SAAS,KAAK,CAAC,IAAI,IAAI;gBAC7B,UAAUsC;gBACV,iBAAiB;gBACjB,iBAAiBC;gBACjB,iBAAiB,GAAGV,GAAG,KAAK,CAAC;gBAC7B,SAAS,CAACiC;oBACR9D,SAAS,KAAK,CAAC,OAAO,GAAG8D;oBACzB,IAAI,CAACA,MAAM,gBAAgB,IAAI,CAACxB,YAAYnB,SAAS,QAAQ,CAAC,UAAU;wBACtEG,YAAY5B;wBACZ+B,eAAe;wBACfU,cAAc;wBACde,OAAO,CAACX;oBACV;gBACF;gBACA,gBAAgB,CAACuB;oBACf9D,SAAS,KAAK,CAAC,cAAc,GAAG8D;oBAChC,IAAI,CAACA,MAAM,gBAAgB,EAAER;gBAC/B;gBACA,gBAAgB,CAACQ;oBACf9D,SAAS,KAAK,CAAC,cAAc,GAAG8D;oBAChC,IAAI,CAACA,MAAM,gBAAgB,EAAEN;gBAC/B;gBACA,eAAe,CAACM;oBACd9D,SAAS,KAAK,CAAC,aAAa,GAAG8D;oBAC/B,IAAI,CAACA,MAAM,gBAAgB,IAAI,CAACxB,YAAYnB,SAAS,QAAQ,CAAC,gBAAgB;wBAC5E2C,MAAM,cAAc;wBACpBxC,YAAY;4BAAE,GAAGwC,MAAM,OAAO;4BAAE,GAAGA,MAAM,OAAO;wBAAC;wBACjDrC,eAAe;wBACfyB,OAAO;oBACT;gBACF;gBACA,WAAW,CAACY;oBACV9D,SAAS,KAAK,CAAC,SAAS,GAAG8D;oBAC3B,IAAIA,MAAM,gBAAgB,IAAIxB,UAAU;oBACxC,IAAIwB,AAAc,gBAAdA,MAAM,GAAG,IAAoBA,AAAc,cAAdA,MAAM,GAAG,EAAgB;wBACxDA,MAAM,cAAc;wBACpB3B,cAAc2B,AAAc,cAAdA,MAAM,GAAG;wBACvBxC,YAAY5B;wBACZ+B,eAAe;wBACfyB,OAAO;oBACT;gBACF;YACF;0BACA,qCAACyB,WAAAA;gBACC,YAAYzD;gBACZ,OAAO1B;gBACP,MAAM+C;gBACN,SAASR;gBACT,IAAI,GAAGF,GAAG,KAAK,CAAC;gBAChB,WAAYjB,kBAAkBN;gBAC9B,UAAUe;gBACV,aAAaG;gBACb,gBAAgB,IAAMI,aAAaF,MAAM,OAAO;gBAChD,gBAAgB8B;gBAChB,gBAAgB3C;gBAChB,YAAYC;gBACZ,aAAaC;gBACb,mBAAmBC;gBACnB,YAAYC;gBACZ,OAAOV;gBACP,UAAUC;gBACV,YAAY0B;gBACZ,UAAUQ;gBACV,YAAYG;gBACZ,QAAQT;gBACR,QAAQ4B;gBACR,OAAO,IAAMZ,MAAM;gBACnB,OAAOkB;;;;AAIf;AAuBA,SAASK,UAAU,EACjBzD,UAAU,EACV1B,KAAK,EACL+C,IAAI,EACJR,OAAO,EACPF,EAAE,EACFvB,SAAS,EACTsE,KAAK,EACLC,QAAQ,EACR3C,UAAU,EACVQ,QAAQ,EACRG,UAAU,EACVT,MAAM,EACN4B,MAAM,EACNZ,KAAK,EACL0B,KAAK,EACLzD,QAAQ,EACRG,WAAW,EACXuD,cAAc,EACdC,cAAc,EACdnE,cAAc,EACdC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,UAAU,EACC;IACX,MAAM,EAAEgE,SAAS,EAAE,GAAGC,AAAAA,IAAAA,4BAAAA,aAAAA,AAAAA;IACtB,MAAMtB,QAAQjC,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAAuB;IACrC,MAAMwD,iBAAiBxD,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAA2B;IAClD,MAAMyD,OAAO7F,QAAQC;IACrB,MAAM6F,UAAUD,KAAK,MAAM,CACzB,CAAC3F,OAAS,CAACA,KAAK,QAAQ,IAAIA,AAAc,YAAdA,KAAK,IAAI,IAAgBA,AAAc,cAAdA,KAAK,IAAI;IAEhE,MAAM,CAAC6F,QAAQC,UAAU,GAAGhE,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA;IAC5B,MAAM,CAACiE,SAASC,WAAW,GAAGlE,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA;IAC9B,MAAM,CAACmE,WAAWC,aAAa,GAAGpE,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA;IAClC,MAAMqE,UAAUP,QAAQ,IAAI,CAAC,CAAC5F,OAASA,KAAK,GAAG,KAAK6F,UAChDA,SACApD,aACEmD,QAAQ,EAAE,CAAC,KAAK,MAChBA,OAAO,CAAC,EAAE,EAAE;IAClB1F,uBAAuB;QACrB,MAAMiD,OAAOgB,MAAM,OAAO;QAC1B,IAAI,CAACrB,QAAQ,CAACK,MAAM;QACpB,MAAMiD,SAAS;YACb,MAAMC,MAAM1E,MAAM,IAAI,CAACwB,KAAK,gBAAgB,CAAc,eAAe,IAAI,CAC3E,CAACnD,OAASA,KAAK,OAAO,CAAC,GAAG,KAAKmG;YAEjCD,aACEG,MACK;gBACC,2BAA2B,GAAGA,IAAI,SAAS,CAAC,EAAE,CAAC;gBAC/C,gCAAgC,GAAGA,IAAI,YAAY,CAAC,EAAE,CAAC;YACzD,IACApG;QAER;QACAmG;QACA,IAAI,AAA0B,MAA1B,OAAOE,gBAAgC;QAC3C,MAAMC,WAAW,IAAID,eAAeF;QACpCG,SAAS,OAAO,CAACpD;QACjB,OAAO,IAAMoD,SAAS,UAAU;IAClC,GAAG;QAACzD;QAAMqD;KAAQ;IAClB/F,IAAAA,+BAAAA,SAAAA,AAAAA,EAAU;QACR,IAAI,CAAC0C,MAAM,YACTkD,WAAW/F;QAGb,MAAMkD,OAAOgB,MAAM,OAAO;QAC1BlB,SAASE;QACT,MAAMqD,UAAUrD,MAAM,iBACpB;QAEF,MAAMsD,SAAShE,aAAa+D,SAAS,CAACA,QAAQ,MAAM,GAAG,EAAE,GAAGA,SAAS,CAAC,EAAE;QACxEV,UAAUW,QAAQ,QAAQ;QAC1B,IAAI,CAAC1E,aAAa0E,QAAQ;QAC1B,OAAO;YACL,IAAItD,MAAMC,WAAWD;QACvB;IACF,GAAG;QAACL;QAAML;QAAYQ;QAAUG;QAAYrB;KAAY;IACxD,MAAM6B,QAAQ,CAACnE;QACbqG,UAAUrG;QACV,IAAIA,KACFkC,MAAM,IAAI,CAACwC,MAAM,OAAO,EAAE,iBAA8B,iBAAiB,EAAE,EACxE,IAAI,CAAC,CAAChB,OAASA,KAAK,OAAO,CAAC,GAAG,KAAK1D,MACnC;IACR;IACA,MAAMiH,UAAU,CAACrC;QACf,IAAIA,MAAM,gBAAgB,EAAE;QAC5B,MAAMsC,QAAQf,QAAQ,SAAS,CAAC,CAAC5F,OAASA,KAAK,GAAG,KAAKmG;QACvD,IAAIzC;QACJ,IAAIW,AAAc,gBAAdA,MAAM,GAAG,EAAkBX,OAAOkC,OAAO,CAAEe,AAAAA,CAAAA,QAAQ,KAAKf,QAAQ,MAAM,CAAC,EAAE;aACxE,IAAIvB,AAAc,cAAdA,MAAM,GAAG,EAChBX,OAAOkC,OAAO,CAAEe,AAAAA,CAAAA,QAAQ,IAAIf,QAAQ,MAAK,IAAKA,QAAQ,MAAM,CAAC,EAAE;aAC5D,IAAIvB,AAAc,WAAdA,MAAM,GAAG,EAAaX,OAAOkC,OAAO,CAAC,EAAE,EAAE;aAC7C,IAAIvB,AAAc,UAAdA,MAAM,GAAG,EAAYX,OAAOkC,QAAQ,EAAE,CAAC,KAAK;aAChD,IACHvB,AAAc,aAAdA,MAAM,GAAG,IACRA,MAAM,GAAG,KAAMmB,CAAAA,AAAc,UAAdA,YAAsB,eAAe,WAAU,KAC5D3E,CAAAA,AAAc,kBAAdA,aAA+BA,AAAc,iBAAdA,SAAyB,GAC3D;YACAwD,MAAM,cAAc;YACpBA,MAAM,eAAe;YACrBV;YACArB,QAAQ,OAAO,EAAE;YACjB;QACF,OAAO,IAAI+B,MAAM,GAAG,KAAMmB,CAAAA,AAAc,UAAdA,YAAsB,cAAc,YAAW,GAAI;YAC3E,MAAMxF,OAAO4F,OAAO,CAACe,MAAM;YAC3B,KAAI3G,MAAM,UAAU,QAGb;iBAHqB;gBAC1B0F,eAAe,OAAO,GAAGrB,MAAM,MAAM;gBACrC2B,WAAWhG,KAAK,GAAG;YACrB;QACF;YAAO,IAAIqE,AAAc,UAAdA,MAAM,GAAG,EAAY,YAC9BgB,MAAMhB;YAED,KAAIA,CAAAA,AAAqB,MAArBA,MAAM,GAAG,CAAC,MAAM,IAAU,KAAK,IAAI,CAACA,MAAM,GAAG,IAMnD;YALHX,OAAO;mBAAIkC,QAAQ,KAAK,CAACe,QAAQ;mBAAOf,QAAQ,KAAK,CAAC,GAAGe,QAAQ;aAAG,CAAC,IAAI,CACvE,CAAC3G,OACC,AAAsB,YAAtB,OAAOA,KAAK,KAAK,IACjBA,KAAK,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAACqE,MAAM,GAAG,CAAC,iBAAiB,MACtE;;QAEL,IAAIX,MAAM;YACRsC,WAAW/F;YACX2D,MAAMF;QACR;QACAW,MAAM,cAAc;QACpBA,MAAM,eAAe;IACvB;IACA,MAAMuC,QAAQjB,KAAK,IAAI,CAAC,CAAC3F,OAASA,KAAK,GAAG,KAAK+F;IAC/C,MAAMc,aAAalB,KAAK,IAAI,CAAC,CAAC3F,OAASA,KAAK,GAAG,KAAKmG;IACpD,MAAMW,mBAAmB,CAAC9G,OACxBA,KAAK,GAAG,KAAKyB,YAAY,eAAesF,QAAQ/G,KAAK,QAAQ,EAAE,KAAK8G;IACtE,OACE,AADK,WAAP,GACE;;0BACE,sCAACE,6BAAAA,aAAaA,EAAAA;gBACZ,cAAcD,QAAQtF;gBACtB,sBAAsBsF,QAAQtF;gBAC9B,MAAMqB;gBACN,YAAYR;gBACZ,UAAU6B;gBACV,IAAI/B;gBACJ,WAAWvB;gBACX,OAAOsE;gBACP,UAAUC;gBACV,WAAW6B,AAAAA,IAAAA,4BAAAA,OAAAA,AAAAA,EACT,iBACA,iBACAxF,cAAc,oBACdL;gBAEF,UAAUQ;gBACV,gBAAgB0D;gBAChB,gBAAgBC;gBAChB,OAAOlE;gBACP,QAAQC;gBACR,WAAWC;gBACX,MAAK;gBACL,cAAY,AAA6B,YAA7B,OAAOE,YAAY,QAAqBA,WAAW,KAAK,GAAGxB;gBACvE,UAAU;gBACV,WAAWyG;;oBAEVjF,YAAY,SAAS,WAAT,GAAS,qCAAC;wBAAI,WAAU;kCAA0BA,WAAW,KAAK;;kCAC/E,qCAAC;wBACC,WAAU;wBACV,eAAY;wBACZ,cAAYsF,QAAQd;wBACpB,eAAaY,YAAY,UAAU5G;wBACnC,iBACGwB,cAAcoF,YAAY,QAAQpF,WAAW,WAAW,IACvDoF,AAAAA,CAAAA,YAAY,SAAS,cAAcA,YAAY,SAAS,OAAM,KAC7DA,CAAAA,WAAW,OAAO,IAAIE,QAAQpE,MAAM,CAACkE,WAAW,GAAG,CAAC,MACvD5G;wBAEF,OAAOgG;;oBAERN,KAAK,GAAG,CAAC,CAAC3F,OACTA,AAAc,cAAdA,KAAK,IAAI,GACP,AADwB,WAAZ,GACZ,qCAAC;4BAAkB,WAAU;2BAApBA,KAAK,GAAG,IACfA,AAAc,YAAdA,KAAK,IAAI,GACX,AAD0B,WAAV,GAChB,qCAAC;4BAAmB,WAAU;4BAAuB,MAAK;sCACvDA,KAAK,KAAK;2BADHA,KAAK,GAAG,IAIlB,AAJkB,cAIlB,sCAACkH,YAAAA;4BACC,MAAMlH;4BAEN,YAAUA,KAAK,GAAG;4BAClB,MACEA,AAAc,eAAdA,KAAK,IAAI,GACL,qBACAA,AAAc,YAAdA,KAAK,IAAI,GACP,kBACA;4BAER,gBACEA,AAAc,eAAdA,KAAK,IAAI,IAAmBA,AAAc,YAAdA,KAAK,IAAI,GAChCA,KAAK,OAAO,IAAI+G,QAAQpE,MAAM,CAAC3C,KAAK,GAAG,CAAC,IACzCC;4BAEN,iBAAeD,KAAK,QAAQ,EAAE,SAAS,SAASC;4BAChD,gBAAcwB,cAAczB,KAAK,GAAG,KAAKyB,WAAW,WAAW,GAAG,SAASxB;4BAC3E,sBACEwB,cAAczB,KAAK,QAAQ,EAAE,UAAU8G,iBAAiB9G,QAAQ,OAAOC;4BAEzE,iBAAeD,KAAK,QAAQ,EAAE,SAAS+F,YAAY/F,KAAK,GAAG,GAAGC;4BAC9D,UAAUD,KAAK,QAAQ;4BACvB,UAAUmG,YAAYnG,KAAK,GAAG,GAAG,IAAI;4BACrC,WAAWiH,AAAAA,IAAAA,4BAAAA,OAAAA,AAAAA,EAAQ,yBAAyBjH,KAAK,MAAM,IAAI;4BAC3D,SAAS,IAAM8F,UAAU9F,KAAK,GAAG;4BACjC,gBAAgB,CAACqE;gCACf,IAAIrE,KAAK,QAAQ,EAAE;gCACnB8F,UAAU9F,KAAK,GAAG;gCAClB,IAAIA,KAAK,QAAQ,EAAE,QAAQ;oCACzB0F,eAAe,OAAO,GAAGrB,MAAM,aAAa;oCAC5C2B,WAAWhG,KAAK,GAAG;gCACrB,OAAOgG,WAAW/F;4BACpB;4BACA,SAAS,CAACoE;gCACR,IAAIrE,KAAK,QAAQ,EAAE,QAAQ;oCACzB0F,eAAe,OAAO,GAAGrB,MAAM,aAAa;oCAC5C2B,WAAW,CAACvB,WAAcA,aAAazE,KAAK,GAAG,GAAGC,SAAYD,KAAK,GAAG;gCACxE,OAAOuE,OAAOvE,MAAMqE;4BACtB;;gCAEe,eAAdrE,KAAK,IAAI,GACR,AAD0B,WAAb,GACb,qCAACmH,sCAAAA,KAAKA,EAAAA;oCACJ,MAAM;oCACN,WAAU;oCACV,OAAO;wCAAE,SAAUnH,KAAK,OAAO,IAAI2C,MAAM,CAAC3C,KAAK,GAAG,CAAC,GAAI,IAAI;oCAAE;oCAC7D,eAAY;qCAEZA,AAAc,YAAdA,KAAK,IAAI,GACX,AAD0B,WAAV,GAChB,qCAACoH,sCAAAA,MAAMA,EAAAA;oCACL,MAAM;oCACN,WAAU;oCACV,MAAK;oCACL,OAAO;wCAAE,SAAUpH,KAAK,OAAO,IAAI2C,MAAM,CAAC3C,KAAK,GAAG,CAAC,GAAI,IAAI;oCAAE;oCAC7D,eAAY;qCAEZyB,cAAczB,KAAK,IAAI,GACzB,AAD4B,WAAH,GACzB,qCAAC;oCAAK,WAAU;oCAAwB,eAAY;8CACjDA,KAAK,IAAI;qCAGZA,KAAK,IAAI;8CAEX,qCAAC;oCAAK,WAAWyB,aAAa,2BAA2BxB;8CACtDuB,aAAaxB,SAASA,KAAK,KAAK;;gCAElCA,KAAK,QAAQ,EAAE,SACd,AADuB,WAAT,GACd,qCAACqH,sCAAAA,YAAYA,EAAAA;oCAAC,MAAM;oCAAI,WAAU;oCAAuB,eAAY;qCACnE;;2BAlECrH,KAAK,GAAG;;;YAuEpB4G,OAAO,YACN,AADkB,WAAZ,GACN,qCAAC1B,WAAAA;gBACC,YAAYzD,aAAa;oBAAE,aAAaA,WAAW,WAAW;gBAAC,IAAIxB;gBACnE,OAAO2G,MAAM,QAAQ;gBACrB,MAAM9D,QAAQiE,QAAQhB;gBACtB,SAASL;gBACT,IAAI,GAAGtD,GAAG,IAAI,CAAC;gBACf,WAAWoD,AAAc,UAAdA,YAAsB,eAAe;gBAChD,aAAazD;gBACb,gBAAgBuD;gBAChB,gBAAgBC;gBAChB,mBAAmBhE;gBACnB,YAAYC;gBACZ,UAAU4D;gBACV,OAAO3D,aAAa0D,QAAQlF;gBAC5B,UAAUgD;gBACV,YAAYG;gBACZ,QAAQT;gBACR,QAAQ4B;gBACR,OAAO,IAAMyB,WAAW/F;gBACxB,OAAOoF;;;;AAKjB;AAEA,SAAS6B,WAAW,EAClBlH,IAAI,EACJO,QAAQ,EACR,GAAG+G,OAC8D;IACjE,IAAItH,KAAK,IAAI,IAAI,CAACA,KAAK,QAAQ,EAAE,QAC/B,OACE,AADK,WAAP,GACE,qCAAC;QACC,MAAMA,KAAK,QAAQ,GAAGC,SAAYD,KAAK,IAAI;QAC3C,QAAQA,KAAK,MAAM;QACnB,KAAKA,AAAgB,aAAhBA,KAAK,MAAM,GAAgB,wBAAwBC;QACxD,MAAMqH,MAAM,IAAI;QAChB,iBAAetH,KAAK,QAAQ,IAAIC;QAChC,gBAAcqH,KAAK,CAAC,eAAe;QACnC,WAAWA,MAAM,SAAS;QAC1B,UAAUA,MAAM,QAAQ;QACxB,YAAUtH,KAAK,GAAG;QAClB,SAASsH,MAAM,OAAO;QACtB,gBAAgBA,MAAM,cAAc;QACpC,SAAS,CAACjD;YACR,IAAIrE,KAAK,QAAQ,EAAEqE,MAAM,cAAc;iBAClCiD,MAAM,OAAO,GAAGjD;QACvB;kBAEC9D;;IAGP,OACE,AADK,WAAP,GACE,qCAAC;QAAQ,GAAG+G,KAAK;QAAE,MAAK;kBACrB/G;;AAGP;AAEO,SAASgH,SAASC,QAAuB;IAC9C,MAAMF,QAAQG,AAAAA,IAAAA,uCAAAA,iBAAAA,AAAAA,EAAkB,YAAYD;IAC5C,OAAO,WAAP,GAAO,qCAAClH,iBAAAA;QAAiB,GAAGgH,KAAK;;AACnC"}
|
|
@@ -34,6 +34,14 @@ export interface DropdownProps extends PopupOptions {
|
|
|
34
34
|
mouseLeaveDelay?: number;
|
|
35
35
|
itemRender?: (item: DropdownItem) => ReactNode;
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
interface NavigationMenu {
|
|
38
|
+
selectedKey?: string;
|
|
39
|
+
title?: ReactNode;
|
|
40
|
+
}
|
|
41
|
+
interface DropdownControlProps extends DropdownProps {
|
|
42
|
+
navigation?: NavigationMenu;
|
|
43
|
+
}
|
|
44
|
+
export declare function DropdownControl({ items, children, disabled, open: controlled, defaultOpen, onOpenChange, onSelect, placement, popupWidth, popupMaxWidth, trigger: triggerType, mouseEnterDelay, mouseLeaveDelay, popupPlacement, popupClassName, popupStyle, popupRender, getPopupContainer, itemRender, navigation, }: DropdownControlProps): import("react").JSX.Element;
|
|
38
45
|
export declare function Dropdown(rawProps: DropdownProps): import("react").JSX.Element;
|
|
46
|
+
export {};
|
|
39
47
|
//# sourceMappingURL=dropdown.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.d.cts","sourceRoot":"","sources":["../../../src/dropdown/dropdown.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,oBAAoB,EAIzB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,GAAG,EAST,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC3D,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACpD;AACD,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,QAAQ,EAAE,YAAY,CACpB,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;KAAE,CAC3E,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS,CAAC;CAChD;AAQD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EAAE,UAAU,EAChB,WAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,SAA0B,EAC1B,UAAU,EACV,aAAmB,EACnB,OAAO,EAAE,WAAqB,EAC9B,eAAqB,EACrB,eAAqB,EACrB,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,GACX,EAAE,
|
|
1
|
+
{"version":3,"file":"dropdown.d.cts","sourceRoot":"","sources":["../../../src/dropdown/dropdown.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,oBAAoB,EAIzB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,GAAG,EAST,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC3D,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACpD;AACD,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,QAAQ,EAAE,YAAY,CACpB,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;KAAE,CAC3E,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS,CAAC;CAChD;AAQD,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AACD,UAAU,oBAAqB,SAAQ,aAAa;IAClD,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AACD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EAAE,UAAU,EAChB,WAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,SAA0B,EAC1B,UAAU,EACV,aAAmB,EACnB,OAAO,EAAE,WAAqB,EAC9B,eAAqB,EACrB,eAAqB,EACrB,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,EAAE,oBAAoB,+BA+KtB;AAqVD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,aAAa,+BAG/C"}
|
package/dist/cjs/form/form.cjs
CHANGED
|
@@ -125,12 +125,14 @@ const form_Form = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(f
|
|
|
125
125
|
});
|
|
126
126
|
form_Form.displayName = 'Form';
|
|
127
127
|
function FormField(rawProps) {
|
|
128
|
-
const { label, htmlFor, required, help, error, labelWidth, children, className, style, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('FormField', rawProps);
|
|
128
|
+
const { label, description, layout: suppliedLayout, htmlFor, required, help, error, labelWidth, children, className, style, ...props } = (0, component_defaults_cjs_namespaceObject.useComponentProps)('FormField', rawProps);
|
|
129
129
|
const form = (0, external_react_namespaceObject.useContext)(FormContext);
|
|
130
|
+
const layout = suppliedLayout ?? form.layout;
|
|
130
131
|
const { messages } = (0, context_cjs_namespaceObject.useLeafConfig)();
|
|
131
132
|
const generated = (0, external_react_namespaceObject.useId)();
|
|
132
133
|
const inputId = htmlFor ?? `${generated}-control`;
|
|
133
134
|
const descriptionId = `${generated}-description`;
|
|
135
|
+
const summaryId = `${generated}-summary`;
|
|
134
136
|
const labelRef = (0, external_react_namespaceObject.useRef)(null);
|
|
135
137
|
const [validationError, setValidationError] = (0, external_react_namespaceObject.useState)();
|
|
136
138
|
const displayedError = error ?? validationError;
|
|
@@ -148,7 +150,7 @@ function FormField(rawProps) {
|
|
|
148
150
|
label
|
|
149
151
|
]);
|
|
150
152
|
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
151
|
-
if (null == label) return;
|
|
153
|
+
if (null == label || 'horizontal' !== layout || void 0 !== labelWidth) return;
|
|
152
154
|
const element = labelRef.current;
|
|
153
155
|
if (!element) return;
|
|
154
156
|
const measure = ()=>form.measure(generated, element.getBoundingClientRect().width);
|
|
@@ -162,7 +164,9 @@ function FormField(rawProps) {
|
|
|
162
164
|
}, [
|
|
163
165
|
form.measure,
|
|
164
166
|
generated,
|
|
165
|
-
label
|
|
167
|
+
label,
|
|
168
|
+
layout,
|
|
169
|
+
labelWidth
|
|
166
170
|
]);
|
|
167
171
|
const root = (0, external_react_namespaceObject.useRef)(null);
|
|
168
172
|
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
@@ -181,7 +185,10 @@ function FormField(rawProps) {
|
|
|
181
185
|
required,
|
|
182
186
|
disabled: form.disabled,
|
|
183
187
|
error: displayedError,
|
|
184
|
-
descriptionId:
|
|
188
|
+
descriptionId: [
|
|
189
|
+
null != description && summaryId,
|
|
190
|
+
(displayedError || help) && descriptionId
|
|
191
|
+
].filter(Boolean).join(' ') || void 0
|
|
185
192
|
};
|
|
186
193
|
const variables = {
|
|
187
194
|
...void 0 !== labelWidth ? {
|
|
@@ -194,7 +201,7 @@ function FormField(rawProps) {
|
|
|
194
201
|
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
195
202
|
...props,
|
|
196
203
|
ref: root,
|
|
197
|
-
className: (0, classes_cjs_namespaceObject.classes)('leaf-form-field', `leaf-form-field--${
|
|
204
|
+
className: (0, classes_cjs_namespaceObject.classes)('leaf-form-field', `leaf-form-field--${layout}`, 'settings' === form.layout && 'leaf-form-field--settings-row', `leaf-form-field--${form.labelAlign}`, className),
|
|
198
205
|
style: variables,
|
|
199
206
|
onInvalidCapture: (event)=>{
|
|
200
207
|
props.onInvalidCapture?.(event);
|
|
@@ -209,21 +216,31 @@ function FormField(rawProps) {
|
|
|
209
216
|
setValidationError(void 0);
|
|
210
217
|
},
|
|
211
218
|
children: [
|
|
212
|
-
null != label && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
219
|
+
(null != label || null != description) && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
220
|
+
className: "leaf-form-field__header",
|
|
221
|
+
children: [
|
|
222
|
+
null != label && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("label", {
|
|
223
|
+
id: `${generated}-label`,
|
|
224
|
+
className: "leaf-form-field__label",
|
|
225
|
+
htmlFor: inputId,
|
|
226
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("span", {
|
|
227
|
+
ref: labelRef,
|
|
228
|
+
children: [
|
|
229
|
+
required && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
230
|
+
className: "leaf-form-field__required",
|
|
231
|
+
"aria-hidden": "true",
|
|
232
|
+
children: "*"
|
|
233
|
+
}),
|
|
234
|
+
label
|
|
235
|
+
]
|
|
236
|
+
})
|
|
237
|
+
}),
|
|
238
|
+
null != description && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
239
|
+
id: summaryId,
|
|
240
|
+
className: "leaf-form-field__summary-description",
|
|
241
|
+
children: description
|
|
242
|
+
})
|
|
243
|
+
]
|
|
227
244
|
}),
|
|
228
245
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
229
246
|
className: "leaf-form-field__body",
|
|
@@ -256,7 +273,7 @@ function FormGroup(rawProps) {
|
|
|
256
273
|
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("fieldset", {
|
|
257
274
|
...props,
|
|
258
275
|
disabled: context.disabled,
|
|
259
|
-
className: (0, classes_cjs_namespaceObject.classes)('leaf-form-group', className),
|
|
276
|
+
className: (0, classes_cjs_namespaceObject.classes)('leaf-form-group', 'settings' === inherited.layout && 'leaf-form-group--settings', className),
|
|
260
277
|
children: [
|
|
261
278
|
legend && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("legend", {
|
|
262
279
|
children: legend
|