@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":"theme.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../src/theme.ts"],"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 type { CSSProperties } from 'react';\nimport { deriveColors } from './colors';\n\n/** Shared CSS variables; configure component themes through ConfigProvider. */\nexport type LeafThemeStyle = CSSProperties & {\n [key: `--leaf-${string}`]: string | number | undefined;\n};\n\n/** Common settings. Other sizes and interaction colors are derived automatically. */\nexport interface LeafTheme {\n primaryColor?: string;\n borderRadius?: number | string;\n controlHeight?: number | string;\n fontSize?: number | string;\n fontFamily?: string;\n appearance?: 'light' | 'dark';\n motion?: boolean;\n tokens?: LeafThemeTokens;\n spacing?: number;\n lineHeight?: number;\n headingWeight?: number;\n elevation?: 'none' | 'soft' | 'medium';\n breakpoints?: Partial<Record<'xs' | 'sm' | 'md' | 'lg' | 'xl', number>>;\n components?: Record<string, LeafComponentTokens>;\n}\nexport interface LeafComponentTokens {\n borderRadius?: string | number;\n controlHeight?: string | number;\n padding?: string | number;\n gap?: string | number;\n fontSize?: string | number;\n color?: string;\n background?: string;\n borderColor?: string;\n headerBackground?: string;\n footerBackground?: string;\n shadow?: string;\n}\n\n/** Optional overrides for applications with more specific design requirements. */\nexport interface LeafThemeTokens {\n onPrimaryColor?: string;\n dangerColor?: string;\n onDangerColor?: string;\n successColor?: string;\n warningColor?: string;\n infoColor?: string;\n textColor?: string;\n mutedTextColor?: string;\n subtleTextColor?: string;\n surfaceColor?: string;\n mutedSurfaceColor?: string;\n raisedSurfaceColor?: string;\n borderColor?: string;\n borderHoverColor?: string;\n dividerColor?: string;\n borderRadiusSm?: number | string;\n borderRadiusMd?: number | string;\n borderRadiusLg?: number | string;\n controlHeightSm?: number | string;\n controlHeightLg?: number | string;\n fontSizeSm?: number | string;\n fontSizeLg?: number | string;\n fontWeight?: number;\n motionDuration?: number | string;\n motionEasing?: string;\n motionSpring?: string;\n popupZIndex?: number;\n modalZIndex?: number;\n messageZIndex?: number;\n buttonBorderRadius?: number | string;\n buttonHeight?: number | string;\n choiceBorderRadius?: number | string;\n focusColor?: string;\n primaryHoverColor?: string;\n primaryActiveColor?: string;\n primarySoftColor?: string;\n primarySoftHoverColor?: string;\n primarySoftActiveColor?: string;\n primaryBorderColor?: string;\n dangerHoverColor?: string;\n dangerActiveColor?: string;\n spacingSm?: number | string;\n spacingLg?: number | string;\n shadowSm?: string;\n shadowXs?: string;\n shadowMd?: string;\n shadowLg?: string;\n lineHeight?: number;\n}\n\nconst defined = <T extends object>(value?: T) =>\n Object.fromEntries(Object.entries(value ?? {}).filter(([, item]) => item !== undefined)) as T;\n\nexport function mergeLeafTheme(parent: LeafTheme, theme?: LeafTheme): LeafTheme {\n return {\n ...parent,\n ...defined(theme),\n breakpoints: { ...parent.breakpoints, ...defined(theme?.breakpoints) },\n components: Object.fromEntries(\n [\n ...new Set([\n ...Object.keys(parent.components ?? {}),\n ...Object.keys(theme?.components ?? {}),\n ]),\n ].map((key) => [key, { ...parent.components?.[key], ...defined(theme?.components?.[key]) }]),\n ),\n ...(parent.tokens || theme?.tokens\n ? { tokens: { ...parent.tokens, ...defined(theme?.tokens) } }\n : {}),\n };\n}\n\nconst tokenVariables = {\n onPrimaryColor: 'color-on-primary',\n dangerColor: 'color-danger',\n onDangerColor: 'color-on-danger',\n successColor: 'color-success',\n warningColor: 'color-warning',\n infoColor: 'color-info',\n textColor: 'color-text',\n mutedTextColor: 'color-text-muted',\n subtleTextColor: 'color-text-subtle',\n surfaceColor: 'color-surface',\n mutedSurfaceColor: 'color-surface-muted',\n raisedSurfaceColor: 'color-surface-raised',\n borderColor: 'color-border',\n borderHoverColor: 'color-border-hover',\n dividerColor: 'color-divider',\n borderRadiusSm: 'radius-sm',\n borderRadiusMd: 'radius-md',\n borderRadiusLg: 'radius-lg',\n controlHeightSm: 'control-height-sm',\n controlHeightLg: 'control-height-lg',\n fontSizeSm: 'font-size-sm',\n fontSizeLg: 'font-size-lg',\n fontWeight: 'font-weight',\n motionDuration: 'motion-duration',\n motionEasing: 'motion-easing',\n motionSpring: 'motion-spring',\n popupZIndex: 'z-index-popup',\n modalZIndex: 'z-index-modal',\n messageZIndex: 'z-index-message',\n buttonBorderRadius: 'button-radius',\n buttonHeight: 'button-height',\n choiceBorderRadius: 'choice-radius',\n focusColor: 'color-focus',\n primaryHoverColor: 'color-primary-hover',\n primaryActiveColor: 'color-primary-active',\n primarySoftColor: 'color-primary-soft',\n primarySoftHoverColor: 'color-primary-soft-hover',\n primarySoftActiveColor: 'color-primary-soft-active',\n primaryBorderColor: 'color-primary-border',\n dangerHoverColor: 'color-danger-hover',\n dangerActiveColor: 'color-danger-active',\n spacingSm: 'spacing-sm',\n spacingLg: 'spacing-lg',\n shadowSm: 'shadow-sm',\n shadowXs: 'shadow-xs',\n shadowMd: 'shadow-md',\n shadowLg: 'shadow-lg',\n lineHeight: 'line-height',\n} satisfies Record<keyof LeafThemeTokens, string>;\n\nconst length = (value: number | string) => (typeof value === 'number' ? `${value}px` : value);\n\n/** Expand CSS padding without splitting whitespace inside calc()/var(). */\nfunction paddingSides(value: string) {\n const parts: string[] = [];\n let depth = 0;\n let start = 0;\n for (let index = 0; index <= value.length; index++) {\n const character = value[index];\n if (character === '(') depth++;\n else if (character === ')') depth--;\n if (index === value.length || (depth === 0 && /\\s/.test(character ?? ''))) {\n const part = value.slice(start, index).trim();\n if (part) parts.push(part);\n start = index + 1;\n }\n }\n if (!parts.length || parts.length > 4) return [];\n const [top, right = top, bottom = top, left = right] = parts;\n return [top, right, bottom, left];\n}\n\n/** Explicit inputs, excluding the generated palette, for browser CSS-variable resolution. */\nexport function leafThemeColors(theme: LeafTheme): Record<string, string> {\n const colors: Record<string, string> = {};\n if (theme.primaryColor) {\n colors.primary = theme.primaryColor;\n colors['on-primary'] = '#ffffff';\n }\n for (const key of Object.keys(tokenVariables) as (keyof LeafThemeTokens)[]) {\n const variable = tokenVariables[key];\n const value = theme.tokens?.[key];\n if (variable.startsWith('color-') && typeof value === 'string')\n colors[variable.slice(6)] = value;\n }\n return colors;\n}\n\n/** Pure, deterministic output can be rendered in the server's initial HTML. */\nexport function leafThemeVariables(theme: LeafTheme): LeafThemeStyle {\n const variables: LeafThemeStyle = {};\n if (theme.spacing !== undefined) {\n variables['--leaf-spacing'] = `${Math.max(0, theme.spacing)}px`;\n for (const [name, scale] of [\n ['xs', 0.5],\n ['sm', 1],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ] as const)\n variables[`--leaf-spacing-${name}`] = `calc(var(--leaf-spacing) * ${scale})`;\n }\n if (theme.lineHeight !== undefined) variables['--leaf-line-height'] = theme.lineHeight;\n if (theme.headingWeight !== undefined) variables['--leaf-heading-weight'] = theme.headingWeight;\n if (theme.elevation)\n for (const [name, blur, y] of [\n ['sm', 8, 2],\n ['md', 20, 6],\n ['lg', 48, 12],\n ] as const)\n variables[`--leaf-shadow-${name}`] =\n theme.elevation === 'none'\n ? 'none'\n : `0 ${y}px ${blur}px rgb(0 0 0 / ${theme.elevation === 'soft' ? '.08' : '.16'})`;\n for (const [name, value] of Object.entries(theme.breakpoints ?? {}))\n if (value !== undefined) variables[`--leaf-breakpoint-${name}`] = `${value}px`;\n const componentKeys = {\n borderRadius: 'radius',\n controlHeight: 'height',\n padding: 'padding',\n gap: 'gap',\n fontSize: 'font-size',\n color: 'color',\n background: 'background',\n borderColor: 'border-color',\n headerBackground: 'header-background',\n footerBackground: 'footer-background',\n shadow: 'shadow',\n } as const;\n for (const [component, tokens] of Object.entries(theme.components ?? {}))\n for (const [key, value] of Object.entries(tokens))\n if (value !== undefined && /^[a-z][a-z\\d-]*$/i.test(component)) {\n const token = componentKeys[key as keyof typeof componentKeys];\n if (token)\n variables[\n `--leaf-component-${component.replace(/([a-z\\d])([A-Z])/g, '$1-$2').toLowerCase()}-${token}`\n ] = typeof value === 'number' ? length(value) : value;\n if (key === 'controlHeight') {\n const name = component.replace(/([a-z\\d])([A-Z])/g, '$1-$2').toLowerCase();\n variables[`--leaf-component-${name}-height-sm`] =\n `max(1px, calc(var(--leaf-component-${name}-height) - 6px))`;\n variables[`--leaf-component-${name}-height-lg`] =\n `calc(var(--leaf-component-${name}-height) + 6px)`;\n }\n if (key === 'padding') {\n const name = component.replace(/([a-z\\d])([A-Z])/g, '$1-$2').toLowerCase();\n const sides = paddingSides(length(value));\n for (const [index, side] of ['top', 'right', 'bottom', 'left'].entries())\n variables[`--leaf-component-${name}-padding-${side}`] = sides[index];\n }\n }\n if (theme.primaryColor !== undefined) {\n variables['--leaf-color-primary'] = theme.primaryColor;\n variables['--leaf-color-on-primary'] = '#ffffff';\n }\n if (theme.borderRadius !== undefined) {\n variables['--leaf-radius'] = length(theme.borderRadius);\n variables['--leaf-radius-sm'] = 'calc(var(--leaf-radius) * 0.6)';\n variables['--leaf-radius-md'] = 'calc(var(--leaf-radius) * 1.2)';\n variables['--leaf-radius-lg'] = 'calc(var(--leaf-radius) * 1.6)';\n variables['--leaf-choice-radius'] = 'calc(var(--leaf-radius) * 0.5)';\n }\n if (theme.controlHeight !== undefined) {\n variables['--leaf-control-height'] = length(theme.controlHeight);\n variables['--leaf-control-height-sm'] = 'max(1px, calc(var(--leaf-control-height) - 6px))';\n variables['--leaf-control-height-lg'] = 'calc(var(--leaf-control-height) + 6px)';\n }\n if (theme.fontSize !== undefined) {\n variables['--leaf-font-size'] = length(theme.fontSize);\n variables['--leaf-font-size-sm'] = 'max(1px, calc(var(--leaf-font-size) - 1px))';\n variables['--leaf-font-size-lg'] = 'calc(var(--leaf-font-size) + 2px)';\n }\n if (theme.fontFamily !== undefined) variables['--leaf-font-family'] = theme.fontFamily;\n for (const key of Object.keys(tokenVariables) as (keyof LeafThemeTokens)[]) {\n const value = theme.tokens?.[key];\n if (value === undefined) continue;\n const variable = tokenVariables[key];\n variables[`--leaf-${variable}`] =\n typeof value !== 'number'\n ? value\n : key === 'motionDuration'\n ? `${value}ms`\n : variable.includes('radius') ||\n variable.includes('height') ||\n variable.includes('font-size') ||\n variable.includes('spacing')\n ? length(value)\n : value;\n }\n if (theme.motion !== undefined) {\n variables['--leaf-motion-play-state'] = theme.motion ? 'running' : 'paused';\n variables['--leaf-motion-animation'] = theme.motion ? 'initial' : 'none';\n if (!theme.motion) variables['--leaf-motion-duration'] = '0ms';\n else if (theme.tokens?.motionDuration === undefined)\n variables['--leaf-motion-duration'] = '200ms';\n }\n if (\n theme.appearance ||\n theme.primaryColor ||\n Object.keys(theme.tokens ?? {}).some((key) => key.endsWith('Color'))\n ) {\n return { ...deriveColors(theme.appearance ?? 'light', leafThemeColors(theme)), ...variables };\n }\n return variables;\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","defined","value","item","undefined","mergeLeafTheme","parent","theme","Set","tokenVariables","length","paddingSides","parts","depth","start","index","character","part","top","right","bottom","left","leafThemeColors","colors","variable","leafThemeVariables","variables","Math","name","scale","blur","y","componentKeys","component","tokens","token","sides","side","deriveColors"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../src/theme.ts"],"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 type { CSSProperties } from 'react';\nimport { deriveColors } from './colors';\n\n/** Shared CSS variables; configure component themes through ConfigProvider. */\nexport type LeafThemeStyle = CSSProperties & {\n [key: `--leaf-${string}`]: string | number | undefined;\n};\n\n/** Common settings. Other sizes and interaction colors are derived automatically. */\nexport interface LeafTheme {\n primaryColor?: string;\n borderRadius?: number | string;\n controlHeight?: number | string;\n fontSize?: number | string;\n fontFamily?: string;\n appearance?: 'light' | 'dark';\n motion?: boolean;\n tokens?: LeafThemeTokens;\n spacing?: number;\n lineHeight?: number;\n headingWeight?: number;\n elevation?: 'none' | 'soft' | 'medium';\n breakpoints?: Partial<Record<'xs' | 'sm' | 'md' | 'lg' | 'xl', number>>;\n components?: Record<string, LeafComponentTokens>;\n}\nexport interface LeafComponentTokens {\n borderRadius?: string | number;\n borderWidth?: string | number;\n controlHeight?: string | number;\n padding?: string | number;\n gap?: string | number;\n fontSize?: string | number;\n color?: string;\n background?: string;\n borderColor?: string;\n headerBackground?: string;\n footerBackground?: string;\n shadow?: string;\n hover?: LeafComponentStateTokens;\n active?: LeafComponentStateTokens;\n focus?: LeafComponentStateTokens;\n disabled?: LeafComponentStateTokens;\n}\n\n/** Interaction overrides supported by themed controls; focus keeps the accessible outline. */\nexport interface LeafComponentStateTokens {\n color?: string;\n background?: string;\n borderColor?: string;\n shadow?: string;\n}\n\n/** Optional overrides for applications with more specific design requirements. */\nexport interface LeafThemeTokens {\n onPrimaryColor?: string;\n dangerColor?: string;\n onDangerColor?: string;\n successColor?: string;\n warningColor?: string;\n infoColor?: string;\n textColor?: string;\n mutedTextColor?: string;\n subtleTextColor?: string;\n surfaceColor?: string;\n mutedSurfaceColor?: string;\n raisedSurfaceColor?: string;\n borderColor?: string;\n borderHoverColor?: string;\n dividerColor?: string;\n borderWidth?: number | string;\n controlShadow?: string;\n surfaceShadow?: string;\n borderRadiusSm?: number | string;\n borderRadiusMd?: number | string;\n borderRadiusLg?: number | string;\n controlHeightSm?: number | string;\n controlHeightLg?: number | string;\n fontSizeSm?: number | string;\n fontSizeLg?: number | string;\n fontWeight?: number;\n motionDuration?: number | string;\n motionEasing?: string;\n motionSpring?: string;\n popupZIndex?: number;\n modalZIndex?: number;\n messageZIndex?: number;\n buttonBorderRadius?: number | string;\n buttonHeight?: number | string;\n choiceBorderRadius?: number | string;\n focusColor?: string;\n primaryHoverColor?: string;\n primaryActiveColor?: string;\n primarySoftColor?: string;\n primarySoftHoverColor?: string;\n primarySoftActiveColor?: string;\n primaryBorderColor?: string;\n dangerHoverColor?: string;\n dangerActiveColor?: string;\n spacingSm?: number | string;\n spacingLg?: number | string;\n shadowSm?: string;\n shadowXs?: string;\n shadowMd?: string;\n shadowLg?: string;\n lineHeight?: number;\n}\n\nconst defined = <T extends object>(value?: T) =>\n Object.fromEntries(Object.entries(value ?? {}).filter(([, item]) => item !== undefined)) as T;\n\nconst componentStates = ['hover', 'active', 'focus', 'disabled'] as const;\n\nfunction mergeComponentTokens(\n parent?: LeafComponentTokens,\n tokens?: LeafComponentTokens,\n): LeafComponentTokens {\n const merged = { ...defined(parent), ...defined(tokens) };\n for (const state of componentStates)\n if (parent?.[state] || tokens?.[state])\n merged[state] = { ...defined(parent?.[state]), ...defined(tokens?.[state]) };\n return merged;\n}\n\nexport function mergeLeafTheme(parent: LeafTheme, theme?: LeafTheme): LeafTheme {\n return {\n ...parent,\n ...defined(theme),\n breakpoints: { ...parent.breakpoints, ...defined(theme?.breakpoints) },\n components: Object.fromEntries(\n [\n ...new Set([\n ...Object.keys(parent.components ?? {}),\n ...Object.keys(theme?.components ?? {}),\n ]),\n ].map((key) => [\n key,\n mergeComponentTokens(parent.components?.[key], theme?.components?.[key]),\n ]),\n ),\n ...(parent.tokens || theme?.tokens\n ? { tokens: { ...parent.tokens, ...defined(theme?.tokens) } }\n : {}),\n };\n}\n\nconst tokenVariables = {\n onPrimaryColor: 'color-on-primary',\n dangerColor: 'color-danger',\n onDangerColor: 'color-on-danger',\n successColor: 'color-success',\n warningColor: 'color-warning',\n infoColor: 'color-info',\n textColor: 'color-text',\n mutedTextColor: 'color-text-muted',\n subtleTextColor: 'color-text-subtle',\n surfaceColor: 'color-surface',\n mutedSurfaceColor: 'color-surface-muted',\n raisedSurfaceColor: 'color-surface-raised',\n borderColor: 'color-border',\n borderHoverColor: 'color-border-hover',\n dividerColor: 'color-divider',\n borderWidth: 'border-width',\n controlShadow: 'control-shadow',\n surfaceShadow: 'surface-shadow',\n borderRadiusSm: 'radius-sm',\n borderRadiusMd: 'radius-md',\n borderRadiusLg: 'radius-lg',\n controlHeightSm: 'control-height-sm',\n controlHeightLg: 'control-height-lg',\n fontSizeSm: 'font-size-sm',\n fontSizeLg: 'font-size-lg',\n fontWeight: 'font-weight',\n motionDuration: 'motion-duration',\n motionEasing: 'motion-easing',\n motionSpring: 'motion-spring',\n popupZIndex: 'z-index-popup',\n modalZIndex: 'z-index-modal',\n messageZIndex: 'z-index-message',\n buttonBorderRadius: 'button-radius',\n buttonHeight: 'button-height',\n choiceBorderRadius: 'choice-radius',\n focusColor: 'color-focus',\n primaryHoverColor: 'color-primary-hover',\n primaryActiveColor: 'color-primary-active',\n primarySoftColor: 'color-primary-soft',\n primarySoftHoverColor: 'color-primary-soft-hover',\n primarySoftActiveColor: 'color-primary-soft-active',\n primaryBorderColor: 'color-primary-border',\n dangerHoverColor: 'color-danger-hover',\n dangerActiveColor: 'color-danger-active',\n spacingSm: 'spacing-sm',\n spacingLg: 'spacing-lg',\n shadowSm: 'shadow-sm',\n shadowXs: 'shadow-xs',\n shadowMd: 'shadow-md',\n shadowLg: 'shadow-lg',\n lineHeight: 'line-height',\n} satisfies Record<keyof LeafThemeTokens, string>;\n\nconst length = (value: number | string) => (typeof value === 'number' ? `${value}px` : value);\n\n/** Expand CSS padding without splitting whitespace inside calc()/var(). */\nfunction paddingSides(value: string) {\n const parts: string[] = [];\n let depth = 0;\n let start = 0;\n for (let index = 0; index <= value.length; index++) {\n const character = value[index];\n if (character === '(') depth++;\n else if (character === ')') depth--;\n if (index === value.length || (depth === 0 && /\\s/.test(character ?? ''))) {\n const part = value.slice(start, index).trim();\n if (part) parts.push(part);\n start = index + 1;\n }\n }\n if (!parts.length || parts.length > 4) return [];\n const [top, right = top, bottom = top, left = right] = parts;\n return [top, right, bottom, left];\n}\n\n/** Explicit inputs, excluding the generated palette, for browser CSS-variable resolution. */\nexport function leafThemeColors(theme: LeafTheme): Record<string, string> {\n const colors: Record<string, string> = {};\n if (theme.primaryColor) {\n colors.primary = theme.primaryColor;\n }\n for (const key of Object.keys(tokenVariables) as (keyof LeafThemeTokens)[]) {\n const variable = tokenVariables[key];\n const value = theme.tokens?.[key];\n if (variable.startsWith('color-') && typeof value === 'string')\n colors[variable.slice(6)] = value;\n }\n return colors;\n}\n\n/** Pure, deterministic output can be rendered in the server's initial HTML. */\nexport function leafThemeVariables(theme: LeafTheme): LeafThemeStyle {\n const variables: LeafThemeStyle = {};\n if (theme.spacing !== undefined) {\n variables['--leaf-spacing'] = `${Math.max(0, theme.spacing)}px`;\n for (const [name, scale] of [\n ['xs', 0.5],\n ['sm', 1],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ] as const)\n variables[`--leaf-spacing-${name}`] = `calc(var(--leaf-spacing) * ${scale})`;\n }\n if (theme.lineHeight !== undefined) variables['--leaf-line-height'] = theme.lineHeight;\n if (theme.headingWeight !== undefined) variables['--leaf-heading-weight'] = theme.headingWeight;\n if (theme.elevation)\n for (const [name, blur, y] of [\n ['sm', 8, 2],\n ['md', 20, 6],\n ['lg', 48, 12],\n ] as const)\n variables[`--leaf-shadow-${name}`] =\n theme.elevation === 'none'\n ? 'none'\n : `0 ${y}px ${blur}px rgb(0 0 0 / ${theme.elevation === 'soft' ? '.08' : '.16'})`;\n for (const [name, value] of Object.entries(theme.breakpoints ?? {}))\n if (value !== undefined) variables[`--leaf-breakpoint-${name}`] = `${value}px`;\n const componentKeys = {\n borderRadius: 'radius',\n borderWidth: 'border-width',\n controlHeight: 'height',\n padding: 'padding',\n gap: 'gap',\n fontSize: 'font-size',\n color: 'color',\n background: 'background',\n borderColor: 'border-color',\n headerBackground: 'header-background',\n footerBackground: 'footer-background',\n shadow: 'shadow',\n } as const;\n const stateKeys = {\n color: 'color',\n background: 'background',\n borderColor: 'border-color',\n shadow: 'shadow',\n } as const;\n for (const [component, tokens] of Object.entries(theme.components ?? {})) {\n if (!/^[a-z][a-z\\d-]*$/i.test(component)) continue;\n const name = component.replace(/([a-z\\d])([A-Z])/g, '$1-$2').toLowerCase();\n for (const [key, value] of Object.entries(tokens))\n if (value !== undefined && typeof value !== 'object') {\n const token = componentKeys[key as keyof typeof componentKeys];\n if (token)\n variables[`--leaf-component-${name}-${token}`] =\n typeof value === 'number' ? length(value) : value;\n if (key === 'controlHeight') {\n variables[`--leaf-component-${name}-height-sm`] =\n `max(1px, calc(var(--leaf-component-${name}-height) - 6px))`;\n variables[`--leaf-component-${name}-height-lg`] =\n `calc(var(--leaf-component-${name}-height) + 6px)`;\n }\n if (key === 'padding') {\n const sides = paddingSides(length(value));\n for (const [index, side] of ['top', 'right', 'bottom', 'left'].entries())\n variables[`--leaf-component-${name}-padding-${side}`] = sides[index];\n }\n }\n for (const state of componentStates)\n for (const [key, suffix] of Object.entries(stateKeys)) {\n const value = tokens[state]?.[key as keyof LeafComponentStateTokens];\n if (value !== undefined) variables[`--leaf-component-${name}-${state}-${suffix}`] = value;\n }\n }\n if (theme.borderRadius !== undefined) {\n variables['--leaf-radius'] = length(theme.borderRadius);\n variables['--leaf-radius-sm'] = 'calc(var(--leaf-radius) * 0.6)';\n variables['--leaf-radius-md'] = 'calc(var(--leaf-radius) * 1.2)';\n variables['--leaf-radius-lg'] = 'calc(var(--leaf-radius) * 1.6)';\n variables['--leaf-choice-radius'] = 'calc(var(--leaf-radius) * 0.5)';\n }\n if (theme.controlHeight !== undefined) {\n variables['--leaf-control-height'] = length(theme.controlHeight);\n variables['--leaf-control-height-sm'] = 'max(1px, calc(var(--leaf-control-height) - 6px))';\n variables['--leaf-control-height-lg'] = 'calc(var(--leaf-control-height) + 6px)';\n }\n if (theme.fontSize !== undefined) {\n variables['--leaf-font-size'] = length(theme.fontSize);\n variables['--leaf-font-size-sm'] = 'max(1px, calc(var(--leaf-font-size) - 1px))';\n variables['--leaf-font-size-lg'] = 'calc(var(--leaf-font-size) + 2px)';\n }\n if (theme.fontFamily !== undefined) variables['--leaf-font-family'] = theme.fontFamily;\n for (const key of Object.keys(tokenVariables) as (keyof LeafThemeTokens)[]) {\n const value = theme.tokens?.[key];\n if (value === undefined) continue;\n const variable = tokenVariables[key];\n variables[`--leaf-${variable}`] =\n typeof value !== 'number'\n ? value\n : key === 'motionDuration'\n ? `${value}ms`\n : variable.includes('radius') ||\n variable.includes('height') ||\n variable.includes('font-size') ||\n variable === 'border-width' ||\n variable.includes('spacing')\n ? length(value)\n : value;\n }\n // An explicit global border color also styles frames whose normal border is\n // transparent or muted. Component and semantic state overrides still win.\n if (theme.tokens?.borderColor !== undefined)\n variables['--leaf-frame-border-color'] = theme.tokens.borderColor;\n if (theme.motion !== undefined) {\n variables['--leaf-motion-play-state'] = theme.motion ? 'running' : 'paused';\n variables['--leaf-motion-animation'] = theme.motion ? 'initial' : 'none';\n if (!theme.motion) variables['--leaf-motion-duration'] = '0ms';\n else if (theme.tokens?.motionDuration === undefined)\n variables['--leaf-motion-duration'] = '200ms';\n }\n if (\n theme.appearance ||\n theme.primaryColor ||\n Object.keys(theme.tokens ?? {}).some((key) => key.endsWith('Color'))\n ) {\n return { ...deriveColors(theme.appearance ?? 'light', leafThemeColors(theme)), ...variables };\n }\n return variables;\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","defined","value","item","undefined","componentStates","mergeComponentTokens","parent","tokens","merged","state","mergeLeafTheme","theme","Set","tokenVariables","length","paddingSides","parts","depth","start","index","character","part","top","right","bottom","left","leafThemeColors","colors","variable","leafThemeVariables","variables","Math","name","scale","blur","y","componentKeys","stateKeys","component","token","sides","side","suffix","deriveColors"],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ function Timeline(rawProps) {
|
|
|
70
70
|
"data-pending": '__leaf-pending' === item.key || void 0,
|
|
71
71
|
"data-side": 'right' === mode || 'alternate' === mode && index % 2 ? 'right' : 'left',
|
|
72
72
|
style: {
|
|
73
|
-
'--leaf-timeline-color': item.color && item.color in colors ? `var(--leaf-color-${colors[item.color]})` : item.color ?? 'var(--leaf-color-primary)'
|
|
73
|
+
'--leaf-timeline-color': item.color && item.color in colors ? `var(--leaf-color-${colors[item.color]})` : item.color ?? 'var(--leaf-color-primary-indicator, var(--leaf-color-primary))'
|
|
74
74
|
},
|
|
75
75
|
children: [
|
|
76
76
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline/timeline.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/timeline/timeline.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 { type HTMLAttributes, type ReactNode, useRef } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { classes } from '../shared/classes';\nimport { useListMotion } from '../shared/motion';\nimport type { LeafThemeStyle } from '../theme';\nexport interface TimelineItem {\n key: string;\n label?: ReactNode;\n children: ReactNode;\n dot?: ReactNode;\n color?: 'primary' | 'success' | 'warning' | 'error' | 'info' | (string & {});\n}\nexport interface TimelineProps extends Omit<HTMLAttributes<HTMLOListElement>, 'onChange'> {\n items: readonly TimelineItem[];\n mode?: 'left' | 'right' | 'alternate';\n reverse?: boolean;\n pending?: ReactNode;\n}\nexport function Timeline(rawProps: TimelineProps) {\n const {\n items,\n mode = 'left',\n reverse = false,\n pending,\n className,\n ...props\n } = useComponentProps('Timeline', rawProps);\n const root = useRef<HTMLOListElement>(null);\n const entries = [...items];\n if (reverse) entries.reverse();\n if (pending != null) entries.push({ key: '__leaf-pending', children: pending });\n useListMotion(\n root,\n JSON.stringify([mode, entries.map((item) => item.key)]),\n '.leaf-timeline__item',\n );\n const colors = {\n primary: 'primary',\n success: 'success',\n warning: 'warning',\n error: 'danger',\n info: 'info',\n };\n return (\n <ol\n {...props}\n ref={root}\n className={classes('leaf-timeline', `leaf-timeline--${mode}`, className)}\n >\n {entries.map((item, index) => (\n <li\n key={item.key}\n data-motion-key={item.key}\n className=\"leaf-timeline__item\"\n data-pending={item.key === '__leaf-pending' || undefined}\n data-side={mode === 'right' || (mode === 'alternate' && index % 2) ? 'right' : 'left'}\n style={\n {\n '--leaf-timeline-color':\n item.color && item.color in colors\n ? `var(--leaf-color-${colors[item.color as keyof typeof colors]})`\n : (item.color
|
|
1
|
+
{"version":3,"file":"timeline/timeline.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/timeline/timeline.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 { type HTMLAttributes, type ReactNode, useRef } from 'react';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { classes } from '../shared/classes';\nimport { useListMotion } from '../shared/motion';\nimport type { LeafThemeStyle } from '../theme';\nexport interface TimelineItem {\n key: string;\n label?: ReactNode;\n children: ReactNode;\n dot?: ReactNode;\n color?: 'primary' | 'success' | 'warning' | 'error' | 'info' | (string & {});\n}\nexport interface TimelineProps extends Omit<HTMLAttributes<HTMLOListElement>, 'onChange'> {\n items: readonly TimelineItem[];\n mode?: 'left' | 'right' | 'alternate';\n reverse?: boolean;\n pending?: ReactNode;\n}\nexport function Timeline(rawProps: TimelineProps) {\n const {\n items,\n mode = 'left',\n reverse = false,\n pending,\n className,\n ...props\n } = useComponentProps('Timeline', rawProps);\n const root = useRef<HTMLOListElement>(null);\n const entries = [...items];\n if (reverse) entries.reverse();\n if (pending != null) entries.push({ key: '__leaf-pending', children: pending });\n useListMotion(\n root,\n JSON.stringify([mode, entries.map((item) => item.key)]),\n '.leaf-timeline__item',\n );\n const colors = {\n primary: 'primary',\n success: 'success',\n warning: 'warning',\n error: 'danger',\n info: 'info',\n };\n return (\n <ol\n {...props}\n ref={root}\n className={classes('leaf-timeline', `leaf-timeline--${mode}`, className)}\n >\n {entries.map((item, index) => (\n <li\n key={item.key}\n data-motion-key={item.key}\n className=\"leaf-timeline__item\"\n data-pending={item.key === '__leaf-pending' || undefined}\n data-side={mode === 'right' || (mode === 'alternate' && index % 2) ? 'right' : 'left'}\n style={\n {\n '--leaf-timeline-color':\n item.color && item.color in colors\n ? `var(--leaf-color-${colors[item.color as keyof typeof colors]})`\n : (item.color ??\n 'var(--leaf-color-primary-indicator, var(--leaf-color-primary))'),\n } as LeafThemeStyle\n }\n >\n <div className=\"leaf-timeline__dot\" aria-hidden=\"true\">\n {item.dot}\n </div>\n <div className=\"leaf-timeline__content\">\n {item.label != null && <div className=\"leaf-timeline__label\">{item.label}</div>}\n {item.children}\n </div>\n </li>\n ))}\n </ol>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","Timeline","rawProps","items","mode","reverse","pending","className","props","useComponentProps","root","useRef","entries","useListMotion","JSON","item","colors","classes","index","undefined"],"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;;;;;;;;;;;;ACYO,SAASI,SAASC,QAAuB;IAC9C,MAAM,EACJC,KAAK,EACLC,OAAO,MAAM,EACbC,UAAU,KAAK,EACfC,OAAO,EACPC,SAAS,EACT,GAAGC,OACJ,GAAGC,AAAAA,IAAAA,uCAAAA,iBAAAA,AAAAA,EAAkB,YAAYP;IAClC,MAAMQ,OAAOC,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAAyB;IACtC,MAAMC,UAAU;WAAIT;KAAM;IAC1B,IAAIE,SAASO,QAAQ,OAAO;IAC5B,IAAIN,AAAW,QAAXA,SAAiBM,QAAQ,IAAI,CAAC;QAAE,KAAK;QAAkB,UAAUN;IAAQ;IAC7EO,IAAAA,2BAAAA,aAAAA,AAAAA,EACEH,MACAI,KAAK,SAAS,CAAC;QAACV;QAAMQ,QAAQ,GAAG,CAAC,CAACG,OAASA,KAAK,GAAG;KAAE,GACtD;IAEF,MAAMC,SAAS;QACb,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;IACR;IACA,OACE,AADK,WAAP,GACE,qCAAC;QACE,GAAGR,KAAK;QACT,KAAKE;QACL,WAAWO,AAAAA,IAAAA,4BAAAA,OAAAA,AAAAA,EAAQ,iBAAiB,CAAC,eAAe,EAAEb,MAAM,EAAEG;kBAE7DK,QAAQ,GAAG,CAAC,CAACG,MAAMG,QAClB,AADkBA,WAAAA,GAClB,sCAAC;gBAEC,mBAAiBH,KAAK,GAAG;gBACzB,WAAU;gBACV,gBAAcA,AAAa,qBAAbA,KAAK,GAAG,IAAyBI;gBAC/C,aAAWf,AAAS,YAATA,QAAqBA,AAAS,gBAATA,QAAwBc,QAAQ,IAAK,UAAU;gBAC/E,OACE;oBACE,yBACEH,KAAK,KAAK,IAAIA,KAAK,KAAK,IAAIC,SACxB,CAAC,iBAAiB,EAAEA,MAAM,CAACD,KAAK,KAAK,CAAwB,CAAC,CAAC,CAAC,GAC/DA,KAAK,KAAK,IACX;gBACR;;kCAGF,qCAAC;wBAAI,WAAU;wBAAqB,eAAY;kCAC7CA,KAAK,GAAG;;kCAEX,sCAAC;wBAAI,WAAU;;4BACE,QAAdA,KAAK,KAAK,IAAY,WAAR,GAAQ,qCAAC;gCAAI,WAAU;0CAAwBA,KAAK,KAAK;;4BACvEA,KAAK,QAAQ;;;;eApBXA,KAAK,GAAG;;AA0BvB"}
|
|
@@ -37,6 +37,7 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
|
37
37
|
const external_lucide_react_namespaceObject = require("lucide-react");
|
|
38
38
|
const external_react_namespaceObject = require("react");
|
|
39
39
|
const context_cjs_namespaceObject = require("../config-provider/context.cjs");
|
|
40
|
+
const scrollbar_cjs_namespaceObject = require("../scrollbar/scrollbar.cjs");
|
|
40
41
|
const time_cjs_namespaceObject = require("../shared/time.cjs");
|
|
41
42
|
const useBrowserLayoutEffect = "u" < typeof window ? external_react_namespaceObject.useEffect : external_react_namespaceObject.useLayoutEffect;
|
|
42
43
|
function keepTimeOptionVisible(column, row) {
|
|
@@ -98,11 +99,16 @@ function TimeColumn({ label, choices, selected, change, labels, disabled }) {
|
|
|
98
99
|
"aria-hidden": "true",
|
|
99
100
|
children: label
|
|
100
101
|
}),
|
|
101
|
-
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(
|
|
102
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(scrollbar_cjs_namespaceObject.ScrollbarControl, {
|
|
102
103
|
ref: ref,
|
|
103
|
-
|
|
104
|
+
viewportClassName: "leaf-time-picker__column",
|
|
105
|
+
contentClassName: "leaf-time-picker__options",
|
|
104
106
|
role: "listbox",
|
|
105
107
|
"aria-label": label,
|
|
108
|
+
maxHeight: 210,
|
|
109
|
+
orientation: "vertical",
|
|
110
|
+
tabIndex: -1,
|
|
111
|
+
scrollbarTabIndex: -1,
|
|
106
112
|
children: [
|
|
107
113
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
108
114
|
className: "leaf-time-picker__selection",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timepicker/time-panel.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/timepicker/time-panel.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 } from 'lucide-react';\nimport {\n type CSSProperties,\n type KeyboardEvent,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { useLeafConfig } from '../config-provider/context';\nimport { padTime, type TimeParts } from '../shared/time';\n\ninterface TimePanelProps {\n value: TimeParts;\n onChange: (value: TimeParts) => void;\n showSeconds?: boolean;\n use12Hours?: boolean;\n minuteStep?: number;\n secondStep?: number;\n autoFocus?: boolean;\n disabledTime?: (parts: TimeParts) => boolean;\n}\nconst useBrowserLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface TimeColumnProps {\n label: string;\n choices: number[];\n selected: number;\n change: (next: number) => void;\n labels?: string[];\n disabled?: (choice: number) => boolean;\n}\nfunction keepTimeOptionVisible(column: HTMLElement, row: HTMLElement) {\n const top = row.offsetTop;\n const bottom = top + row.offsetHeight;\n if (top < column.scrollTop) column.scrollTop = top;\n else if (bottom > column.scrollTop + column.clientHeight)\n column.scrollTop = bottom - column.clientHeight;\n}\n\nfunction TimeColumn({ label, choices, selected, change, labels, disabled }: TimeColumnProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [selection, setSelection] = useState<CSSProperties>();\n useBrowserLayoutEffect(() => {\n const column = ref.current;\n if (!column) return;\n const row = column.querySelector<HTMLButtonElement>('[aria-selected=\"true\"]:not(:disabled)');\n const update = () => {\n setSelection(\n row\n ? ({\n '--leaf-time-selection-y': `${row.offsetTop}px`,\n '--leaf-time-selection-height': `${row.offsetHeight}px`,\n } as CSSProperties)\n : undefined,\n );\n // Scrolling a row into every ancestor moves the whole range popup and can\n // hide its endpoint labels when both time panels are present.\n if (row) keepTimeOptionVisible(column, row);\n };\n update();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(update);\n observer.observe(column);\n if (row) observer.observe(row);\n return () => observer.disconnect();\n }, [selected, choices, disabled]);\n const key = (event: KeyboardEvent<HTMLButtonElement>, current: number) => {\n const available = choices.filter((choice) => !disabled?.(choice));\n if (!available.length) return;\n const index = available.indexOf(current);\n let next = index;\n if (event.key === 'ArrowDown') next = (index + 1) % available.length;\n else if (event.key === 'ArrowUp') next = (index - 1 + available.length) % available.length;\n else if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = available.length - 1;\n else return;\n event.preventDefault();\n change(available[next] ?? current);\n const node =\n event.currentTarget.parentElement?.querySelectorAll<HTMLButtonElement>(\n 'button:not(:disabled)',\n )[next];\n node?.focus({ preventScroll: true });\n if (node && ref.current) keepTimeOptionVisible(ref.current, node);\n };\n return (\n <div className=\"leaf-time-picker__column-wrap\">\n <div className=\"leaf-time-picker__column-label\" aria-hidden=\"true\">\n {label}\n </div>\n <div ref={ref} className=\"leaf-time-picker__column\" role=\"listbox\" aria-label={label}>\n <div\n className=\"leaf-time-picker__selection\"\n data-ready={Boolean(selection)}\n aria-hidden=\"true\"\n style={selection}\n />\n {choices.map((option) => (\n <button\n type=\"button\"\n key={option}\n role=\"option\"\n disabled={disabled?.(option)}\n tabIndex={\n option ===\n (disabled?.(selected) ? choices.find((choice) => !disabled?.(choice)) : selected)\n ? 0\n : -1\n }\n aria-selected={option === selected}\n className=\"leaf-floating__option\"\n onClick={() => change(option)}\n onKeyDown={(event) => key(event, option)}\n >\n <span>{labels?.[option] ?? padTime(option)}</span>\n <Check\n size={14}\n aria-hidden=\"true\"\n className=\"leaf-time-picker__check\"\n style={{ opacity: option === selected ? 1 : 0 }}\n />\n </button>\n ))}\n </div>\n </div>\n );\n}\nexport function TimePanel({\n value,\n onChange,\n showSeconds,\n use12Hours,\n minuteStep = 5,\n secondStep = 1,\n autoFocus,\n disabledTime,\n}: TimePanelProps) {\n const { messages } = useLeafConfig();\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (autoFocus)\n ref.current\n ?.querySelector<HTMLButtonElement>('[aria-selected=\"true\"]')\n ?.focus({ preventScroll: true });\n }, [autoFocus]);\n const options = (step: number, selected: number) => {\n const safe = Number.isFinite(step) ? Math.max(1, Math.min(60, Math.floor(step))) : 1;\n return [\n ...new Set([...Array.from({ length: Math.ceil(60 / safe) }, (_, i) => i * safe), selected]),\n ].sort((a, b) => a - b);\n };\n const column = (\n label: string,\n choices: number[],\n selected: number,\n change: (next: number) => void,\n labels?: string[],\n disabled?: (choice: number) => boolean,\n ) => {\n return (\n <TimeColumn\n key={label}\n label={label}\n choices={choices}\n selected={selected}\n change={change}\n labels={labels}\n disabled={disabled}\n />\n );\n };\n const hours = use12Hours\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n return (\n <div ref={ref} className=\"leaf-time-picker__columns\">\n {column(\n messages.timePicker.hours,\n hours,\n use12Hours ? value.hour % 12 || 12 : value.hour,\n (hour) =>\n onChange({\n ...value,\n hour: use12Hours ? (hour % 12) + (value.hour < 12 ? 0 : 12) : hour,\n }),\n undefined,\n (hour) =>\n !!disabledTime?.({\n ...value,\n hour: use12Hours ? (hour % 12) + (value.hour < 12 ? 0 : 12) : hour,\n }),\n )}\n {column(\n messages.timePicker.minutes,\n options(minuteStep, value.minute),\n value.minute,\n (minute) => onChange({ ...value, minute }),\n undefined,\n (minute) => !!disabledTime?.({ ...value, minute }),\n )}\n {showSeconds &&\n column(\n messages.timePicker.seconds,\n options(secondStep, value.second),\n value.second,\n (second) => onChange({ ...value, second }),\n undefined,\n (second) => !!disabledTime?.({ ...value, second }),\n )}\n {use12Hours &&\n column(\n messages.timePicker.period,\n [0, 1],\n value.hour < 12 ? 0 : 1,\n (period) => onChange({ ...value, hour: (value.hour % 12) + period * 12 }),\n [messages.timePicker.am, messages.timePicker.pm],\n (period) => !!disabledTime?.({ ...value, hour: (value.hour % 12) + period * 12 }),\n )}\n </div>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","useBrowserLayoutEffect","window","useEffect","useLayoutEffect","keepTimeOptionVisible","column","row","top","bottom","TimeColumn","label","choices","selected","change","labels","disabled","ref","useRef","selection","setSelection","useState","update","undefined","ResizeObserver","observer","event","current","available","choice","index","next","node","Boolean","option","padTime","Check","TimePanel","value","onChange","showSeconds","use12Hours","minuteStep","secondStep","autoFocus","disabledTime","messages","useLeafConfig","options","step","safe","Number","Math","Set","Array","_","i","a","b","hours","hour","minute","second","period"],"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;;;;;;;;;;;;ACgBA,MAAMI,yBAAyB,AAAkB,MAAlB,OAAOC,SAAyBC,+BAAAA,SAASA,GAAGC,+BAAAA,eAAeA;AAU1F,SAASC,sBAAsBC,MAAmB,EAAEC,GAAgB;IAClE,MAAMC,MAAMD,IAAI,SAAS;IACzB,MAAME,SAASD,MAAMD,IAAI,YAAY;IACrC,IAAIC,MAAMF,OAAO,SAAS,EAAEA,OAAO,SAAS,GAAGE;SAC1C,IAAIC,SAASH,OAAO,SAAS,GAAGA,OAAO,YAAY,EACtDA,OAAO,SAAS,GAAGG,SAASH,OAAO,YAAY;AACnD;AAEA,SAASI,WAAW,EAAEC,KAAK,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAmB;IACzF,MAAMC,MAAMC,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAAuB;IACnC,MAAM,CAACC,WAAWC,aAAa,GAAGC,AAAAA,IAAAA,+BAAAA,QAAAA,AAAAA;IAClCpB,uBAAuB;QACrB,MAAMK,SAASW,IAAI,OAAO;QAC1B,IAAI,CAACX,QAAQ;QACb,MAAMC,MAAMD,OAAO,aAAa,CAAoB;QACpD,MAAMgB,SAAS;YACbF,aACEb,MACK;gBACC,2BAA2B,GAAGA,IAAI,SAAS,CAAC,EAAE,CAAC;gBAC/C,gCAAgC,GAAGA,IAAI,YAAY,CAAC,EAAE,CAAC;YACzD,IACAgB;YAIN,IAAIhB,KAAKF,sBAAsBC,QAAQC;QACzC;QACAe;QACA,IAAI,AAA0B,MAA1B,OAAOE,gBAAgC;QAC3C,MAAMC,WAAW,IAAID,eAAeF;QACpCG,SAAS,OAAO,CAACnB;QACjB,IAAIC,KAAKkB,SAAS,OAAO,CAAClB;QAC1B,OAAO,IAAMkB,SAAS,UAAU;IAClC,GAAG;QAACZ;QAAUD;QAASI;KAAS;IAChC,MAAMpB,MAAM,CAAC8B,OAAyCC;QACpD,MAAMC,YAAYhB,QAAQ,MAAM,CAAC,CAACiB,SAAW,CAACb,WAAWa;QACzD,IAAI,CAACD,UAAU,MAAM,EAAE;QACvB,MAAME,QAAQF,UAAU,OAAO,CAACD;QAChC,IAAII,OAAOD;QACX,IAAIJ,AAAc,gBAAdA,MAAM,GAAG,EAAkBK,OAAQD,AAAAA,CAAAA,QAAQ,KAAKF,UAAU,MAAM;aAC/D,IAAIF,AAAc,cAAdA,MAAM,GAAG,EAAgBK,OAAQD,AAAAA,CAAAA,QAAQ,IAAIF,UAAU,MAAK,IAAKA,UAAU,MAAM;aACrF,IAAIF,AAAc,WAAdA,MAAM,GAAG,EAAaK,OAAO;;YACjC,IAAIL,AAAc,UAAdA,MAAM,GAAG,EACb;YADyBK,OAAOH,UAAU,MAAM,GAAG;;QAExDF,MAAM,cAAc;QACpBZ,OAAOc,SAAS,CAACG,KAAK,IAAIJ;QAC1B,MAAMK,OACJN,MAAM,aAAa,CAAC,aAAa,EAAE,iBACjC,wBACD,CAACK,KAAK;QACTC,MAAM,MAAM;YAAE,eAAe;QAAK;QAClC,IAAIA,QAAQf,IAAI,OAAO,EAAEZ,sBAAsBY,IAAI,OAAO,EAAEe;IAC9D;IACA,OACE,AADK,WAAP,GACE,sCAAC;QAAI,WAAU;;0BACb,qCAAC;gBAAI,WAAU;gBAAiC,eAAY;0BACzDrB;;0BAEH,sCAAC;gBAAI,KAAKM;gBAAK,WAAU;gBAA2B,MAAK;gBAAU,cAAYN;;kCAC7E,qCAAC;wBACC,WAAU;wBACV,cAAYsB,QAAQd;wBACpB,eAAY;wBACZ,OAAOA;;oBAERP,QAAQ,GAAG,CAAC,CAACsB,SACZ,AADYA,WAAAA,GACZ,sCAAC;4BACC,MAAK;4BAEL,MAAK;4BACL,UAAUlB,WAAWkB;4BACrB,UACEA,WACClB,CAAAA,WAAWH,YAAYD,QAAQ,IAAI,CAAC,CAACiB,SAAW,CAACb,WAAWa,WAAWhB,QAAO,IAC3E,IACA;4BAEN,iBAAeqB,WAAWrB;4BAC1B,WAAU;4BACV,SAAS,IAAMC,OAAOoB;4BACtB,WAAW,CAACR,QAAU9B,IAAI8B,OAAOQ;;8CAEjC,qCAAC;8CAAMnB,QAAQ,CAACmB,OAAO,IAAIC,AAAAA,IAAAA,yBAAAA,OAAAA,AAAAA,EAAQD;;8CACnC,qCAACE,sCAAAA,KAAKA,EAAAA;oCACJ,MAAM;oCACN,eAAY;oCACZ,WAAU;oCACV,OAAO;wCAAE,SAASF,WAAWrB,WAAW,IAAI;oCAAE;;;2BAnB3CqB;;;;;AA0BjB;AACO,SAASG,UAAU,EACxBC,KAAK,EACLC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACVC,aAAa,CAAC,EACdC,aAAa,CAAC,EACdC,SAAS,EACTC,YAAY,EACG;IACf,MAAM,EAAEC,QAAQ,EAAE,GAAGC,AAAAA,IAAAA,4BAAAA,aAAAA,AAAAA;IACrB,MAAM9B,MAAMC,AAAAA,IAAAA,+BAAAA,MAAAA,AAAAA,EAAuB;IACnCf,IAAAA,+BAAAA,SAAAA,AAAAA,EAAU;QACR,IAAIyC,WACF3B,IAAI,OAAO,EACP,cAAiC,2BACjC,MAAM;YAAE,eAAe;QAAK;IACpC,GAAG;QAAC2B;KAAU;IACd,MAAMI,UAAU,CAACC,MAAcpC;QAC7B,MAAMqC,OAAOC,OAAO,QAAQ,CAACF,QAAQG,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAC,IAAIA,KAAK,KAAK,CAACH,UAAU;QACnF,OAAO;eACF,IAAII,IAAI;mBAAIC,MAAM,IAAI,CAAC;oBAAE,QAAQF,KAAK,IAAI,CAAC,KAAKF;gBAAM,GAAG,CAACK,GAAGC,IAAMA,IAAIN;gBAAOrC;aAAS;SAC3F,CAAC,IAAI,CAAC,CAAC4C,GAAGC,IAAMD,IAAIC;IACvB;IACA,MAAMpD,SAAS,CACbK,OACAC,SACAC,UACAC,QACAC,QACAC,WAGE,AADK,WAAP,GACE,qCAACN,YAAAA;YAEC,OAAOC;YACP,SAASC;YACT,UAAUC;YACV,QAAQC;YACR,QAAQC;YACR,UAAUC;WANLL;IAUX,MAAMgD,QAAQlB,aACVa,MAAM,IAAI,CAAC;QAAE,QAAQ;IAAG,GAAG,CAACC,GAAGC,IAAMA,IAAI,KACzCF,MAAM,IAAI,CAAC;QAAE,QAAQ;IAAG,GAAG,CAACC,GAAGC,IAAMA;IACzC,OACE,AADK,WAAP,GACE,sCAAC;QAAI,KAAKvC;QAAK,WAAU;;YACtBX,OACCwC,SAAS,UAAU,CAAC,KAAK,EACzBa,OACAlB,aAAaH,MAAM,IAAI,GAAG,MAAM,KAAKA,MAAM,IAAI,EAC/C,CAACsB,OACCrB,SAAS;oBACP,GAAGD,KAAK;oBACR,MAAMG,aAAcmB,OAAO,KAAOtB,CAAAA,MAAM,IAAI,GAAG,KAAK,IAAI,EAAC,IAAKsB;gBAChE,IACFrC,QACA,CAACqC,OACC,CAAC,CAACf,eAAe;oBACf,GAAGP,KAAK;oBACR,MAAMG,aAAcmB,OAAO,KAAOtB,CAAAA,MAAM,IAAI,GAAG,KAAK,IAAI,EAAC,IAAKsB;gBAChE;YAEHtD,OACCwC,SAAS,UAAU,CAAC,OAAO,EAC3BE,QAAQN,YAAYJ,MAAM,MAAM,GAChCA,MAAM,MAAM,EACZ,CAACuB,SAAWtB,SAAS;oBAAE,GAAGD,KAAK;oBAAEuB;gBAAO,IACxCtC,QACA,CAACsC,SAAW,CAAC,CAAChB,eAAe;oBAAE,GAAGP,KAAK;oBAAEuB;gBAAO;YAEjDrB,eACClC,OACEwC,SAAS,UAAU,CAAC,OAAO,EAC3BE,QAAQL,YAAYL,MAAM,MAAM,GAChCA,MAAM,MAAM,EACZ,CAACwB,SAAWvB,SAAS;oBAAE,GAAGD,KAAK;oBAAEwB;gBAAO,IACxCvC,QACA,CAACuC,SAAW,CAAC,CAACjB,eAAe;oBAAE,GAAGP,KAAK;oBAAEwB;gBAAO;YAEnDrB,cACCnC,OACEwC,SAAS,UAAU,CAAC,MAAM,EAC1B;gBAAC;gBAAG;aAAE,EACNR,MAAM,IAAI,GAAG,KAAK,IAAI,GACtB,CAACyB,SAAWxB,SAAS;oBAAE,GAAGD,KAAK;oBAAE,MAAOA,MAAM,IAAI,GAAG,KAAMyB,AAAS,KAATA;gBAAY,IACvE;gBAACjB,SAAS,UAAU,CAAC,EAAE;gBAAEA,SAAS,UAAU,CAAC,EAAE;aAAC,EAChD,CAACiB,SAAW,CAAC,CAAClB,eAAe;oBAAE,GAAGP,KAAK;oBAAE,MAAOA,MAAM,IAAI,GAAG,KAAMyB,AAAS,KAATA;gBAAY;;;AAIzF"}
|
|
1
|
+
{"version":3,"file":"timepicker/time-panel.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/timepicker/time-panel.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 } from 'lucide-react';\nimport {\n type CSSProperties,\n type KeyboardEvent,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { useLeafConfig } from '../config-provider/context';\nimport { ScrollbarControl } from '../scrollbar/scrollbar';\nimport { padTime, type TimeParts } from '../shared/time';\n\ninterface TimePanelProps {\n value: TimeParts;\n onChange: (value: TimeParts) => void;\n showSeconds?: boolean;\n use12Hours?: boolean;\n minuteStep?: number;\n secondStep?: number;\n autoFocus?: boolean;\n disabledTime?: (parts: TimeParts) => boolean;\n}\nconst useBrowserLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface TimeColumnProps {\n label: string;\n choices: number[];\n selected: number;\n change: (next: number) => void;\n labels?: string[];\n disabled?: (choice: number) => boolean;\n}\nfunction keepTimeOptionVisible(column: HTMLElement, row: HTMLElement) {\n const top = row.offsetTop;\n const bottom = top + row.offsetHeight;\n if (top < column.scrollTop) column.scrollTop = top;\n else if (bottom > column.scrollTop + column.clientHeight)\n column.scrollTop = bottom - column.clientHeight;\n}\n\nfunction TimeColumn({ label, choices, selected, change, labels, disabled }: TimeColumnProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [selection, setSelection] = useState<CSSProperties>();\n useBrowserLayoutEffect(() => {\n const column = ref.current;\n if (!column) return;\n const row = column.querySelector<HTMLButtonElement>('[aria-selected=\"true\"]:not(:disabled)');\n const update = () => {\n setSelection(\n row\n ? ({\n '--leaf-time-selection-y': `${row.offsetTop}px`,\n '--leaf-time-selection-height': `${row.offsetHeight}px`,\n } as CSSProperties)\n : undefined,\n );\n // Scrolling a row into every ancestor moves the whole range popup and can\n // hide its endpoint labels when both time panels are present.\n if (row) keepTimeOptionVisible(column, row);\n };\n update();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(update);\n observer.observe(column);\n if (row) observer.observe(row);\n return () => observer.disconnect();\n }, [selected, choices, disabled]);\n const key = (event: KeyboardEvent<HTMLButtonElement>, current: number) => {\n const available = choices.filter((choice) => !disabled?.(choice));\n if (!available.length) return;\n const index = available.indexOf(current);\n let next = index;\n if (event.key === 'ArrowDown') next = (index + 1) % available.length;\n else if (event.key === 'ArrowUp') next = (index - 1 + available.length) % available.length;\n else if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = available.length - 1;\n else return;\n event.preventDefault();\n change(available[next] ?? current);\n const node =\n event.currentTarget.parentElement?.querySelectorAll<HTMLButtonElement>(\n 'button:not(:disabled)',\n )[next];\n node?.focus({ preventScroll: true });\n if (node && ref.current) keepTimeOptionVisible(ref.current, node);\n };\n return (\n <div className=\"leaf-time-picker__column-wrap\">\n <div className=\"leaf-time-picker__column-label\" aria-hidden=\"true\">\n {label}\n </div>\n <ScrollbarControl\n ref={ref}\n viewportClassName=\"leaf-time-picker__column\"\n contentClassName=\"leaf-time-picker__options\"\n role=\"listbox\"\n aria-label={label}\n maxHeight={210}\n orientation=\"vertical\"\n tabIndex={-1}\n scrollbarTabIndex={-1}\n >\n <div\n className=\"leaf-time-picker__selection\"\n data-ready={Boolean(selection)}\n aria-hidden=\"true\"\n style={selection}\n />\n {choices.map((option) => (\n <button\n type=\"button\"\n key={option}\n role=\"option\"\n disabled={disabled?.(option)}\n tabIndex={\n option ===\n (disabled?.(selected) ? choices.find((choice) => !disabled?.(choice)) : selected)\n ? 0\n : -1\n }\n aria-selected={option === selected}\n className=\"leaf-floating__option\"\n onClick={() => change(option)}\n onKeyDown={(event) => key(event, option)}\n >\n <span>{labels?.[option] ?? padTime(option)}</span>\n <Check\n size={14}\n aria-hidden=\"true\"\n className=\"leaf-time-picker__check\"\n style={{ opacity: option === selected ? 1 : 0 }}\n />\n </button>\n ))}\n </ScrollbarControl>\n </div>\n );\n}\nexport function TimePanel({\n value,\n onChange,\n showSeconds,\n use12Hours,\n minuteStep = 5,\n secondStep = 1,\n autoFocus,\n disabledTime,\n}: TimePanelProps) {\n const { messages } = useLeafConfig();\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (autoFocus)\n ref.current\n ?.querySelector<HTMLButtonElement>('[aria-selected=\"true\"]')\n ?.focus({ preventScroll: true });\n }, [autoFocus]);\n const options = (step: number, selected: number) => {\n const safe = Number.isFinite(step) ? Math.max(1, Math.min(60, Math.floor(step))) : 1;\n return [\n ...new Set([...Array.from({ length: Math.ceil(60 / safe) }, (_, i) => i * safe), selected]),\n ].sort((a, b) => a - b);\n };\n const column = (\n label: string,\n choices: number[],\n selected: number,\n change: (next: number) => void,\n labels?: string[],\n disabled?: (choice: number) => boolean,\n ) => {\n return (\n <TimeColumn\n key={label}\n label={label}\n choices={choices}\n selected={selected}\n change={change}\n labels={labels}\n disabled={disabled}\n />\n );\n };\n const hours = use12Hours\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n return (\n <div ref={ref} className=\"leaf-time-picker__columns\">\n {column(\n messages.timePicker.hours,\n hours,\n use12Hours ? value.hour % 12 || 12 : value.hour,\n (hour) =>\n onChange({\n ...value,\n hour: use12Hours ? (hour % 12) + (value.hour < 12 ? 0 : 12) : hour,\n }),\n undefined,\n (hour) =>\n !!disabledTime?.({\n ...value,\n hour: use12Hours ? (hour % 12) + (value.hour < 12 ? 0 : 12) : hour,\n }),\n )}\n {column(\n messages.timePicker.minutes,\n options(minuteStep, value.minute),\n value.minute,\n (minute) => onChange({ ...value, minute }),\n undefined,\n (minute) => !!disabledTime?.({ ...value, minute }),\n )}\n {showSeconds &&\n column(\n messages.timePicker.seconds,\n options(secondStep, value.second),\n value.second,\n (second) => onChange({ ...value, second }),\n undefined,\n (second) => !!disabledTime?.({ ...value, second }),\n )}\n {use12Hours &&\n column(\n messages.timePicker.period,\n [0, 1],\n value.hour < 12 ? 0 : 1,\n (period) => onChange({ ...value, hour: (value.hour % 12) + period * 12 }),\n [messages.timePicker.am, messages.timePicker.pm],\n (period) => !!disabledTime?.({ ...value, hour: (value.hour % 12) + period * 12 }),\n )}\n </div>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","useBrowserLayoutEffect","window","useEffect","useLayoutEffect","keepTimeOptionVisible","column","row","top","bottom","TimeColumn","label","choices","selected","change","labels","disabled","ref","useRef","selection","setSelection","useState","update","undefined","ResizeObserver","observer","event","current","available","choice","index","next","node","ScrollbarControl","Boolean","option","padTime","Check","TimePanel","value","onChange","showSeconds","use12Hours","minuteStep","secondStep","autoFocus","disabledTime","messages","useLeafConfig","options","step","safe","Number","Math","Set","Array","_","i","a","b","hours","hour","minute","second","period"],"mappings":"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"}
|
|
@@ -44,6 +44,7 @@ const external_density_cjs_namespaceObject = require("../density.cjs");
|
|
|
44
44
|
const form_cjs_namespaceObject = require("../form/form.cjs");
|
|
45
45
|
const input_cjs_namespaceObject = require("../input/input.cjs");
|
|
46
46
|
const result_cjs_namespaceObject = require("../result/result.cjs");
|
|
47
|
+
const scrollbar_cjs_namespaceObject = require("../scrollbar/scrollbar.cjs");
|
|
47
48
|
const classes_cjs_namespaceObject = require("../shared/classes.cjs");
|
|
48
49
|
const field_cjs_namespaceObject = require("../shared/field.cjs");
|
|
49
50
|
const motion_cjs_namespaceObject = require("../shared/motion.cjs");
|
|
@@ -173,11 +174,10 @@ function Transfer(rawProps) {
|
|
|
173
174
|
icon: null,
|
|
174
175
|
title: t('transfer.noItems')
|
|
175
176
|
})
|
|
176
|
-
}) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
},
|
|
177
|
+
}) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(scrollbar_cjs_namespaceObject.ScrollbarControl, {
|
|
178
|
+
viewportClassName: "leaf-transfer__list",
|
|
179
|
+
height: height,
|
|
180
|
+
role: "presentation",
|
|
181
181
|
children: list.length ? list.map((item)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
182
182
|
children: row(item)
|
|
183
183
|
}, item.key)) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(result_cjs_namespaceObject.ResultControl, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer/transfer.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/transfer/transfer.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 { ArrowLeft, ArrowRight, Search } from 'lucide-react';\nimport { type HTMLAttributes, type ReactNode, useId, useRef, useState } from 'react';\nimport { ButtonControl } from '../button/button';\nimport { CheckboxControl as Checkbox } from '../checkbox/checkbox';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { estimateControlHeight } from '../density';\nimport { FieldScope, useFormField } from '../form/form';\nimport { InputControl } from '../input/input';\nimport { ResultControl as Result } from '../result/result';\nimport { classes } from '../shared/classes';\nimport { FormValue, useFieldValue } from '../shared/field';\nimport { useListMotion } from '../shared/motion';\nimport { useText } from '../shared/use-text';\nimport { VirtualListControl as VirtualList } from '../virtuallist/virtuallist';\nexport interface TransferItem {\n key: string;\n label: ReactNode;\n description?: string;\n disabled?: boolean;\n searchLabel?: string;\n}\nexport interface TransferChangeInfo {\n direction: 'left' | 'right';\n movedKeys: string[];\n}\nexport interface TransferProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n items: readonly TransferItem[];\n value?: readonly string[];\n defaultValue?: readonly string[];\n onChange?: (keys: string[], info: TransferChangeInfo) => void;\n selectedKeys?: readonly string[];\n onSelectionChange?: (keys: string[]) => void;\n titles?: readonly [ReactNode, ReactNode];\n searchable?: boolean;\n filterOption?: (query: string, item: TransferItem) => boolean;\n renderItem?: (item: TransferItem) => ReactNode;\n disabled?: boolean;\n height?: number;\n virtual?: boolean;\n name?: string;\n form?: string;\n required?: boolean;\n oneWay?: boolean;\n}\nexport function Transfer(rawProps: TransferProps) {\n const {\n items,\n value,\n defaultValue = [],\n onChange,\n selectedKeys,\n onSelectionChange,\n titles,\n searchable = true,\n filterOption,\n renderItem,\n disabled: disabledProp,\n height = 180,\n virtual = false,\n name,\n form,\n required,\n oneWay = false,\n className,\n ...props\n } = useComponentProps('Transfer', rawProps);\n const { theme, density } = useLeafConfig();\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const t = useText();\n const id = useId();\n const trigger = useRef<HTMLButtonElement>(null);\n const root = useRef<HTMLDivElement>(null);\n const [current, setCurrent] = useFieldValue(value, defaultValue, trigger, form);\n const [internal, setInternal] = useState<readonly string[]>([]);\n const selected = selectedKeys ?? internal;\n const [queries, setQueries] = useState(['', '']);\n useListMotion(\n root,\n JSON.stringify([current, queries, items.map((item) => item.key)]),\n virtual ? '[data-no-transfer-motion]' : '.leaf-transfer__item[data-motion-key]',\n );\n const select = (keys: string[]) => {\n if (selectedKeys === undefined) setInternal(keys);\n onSelectionChange?.(keys);\n };\n const move = (direction: 'left' | 'right') => {\n const moved = items\n .filter(\n (item) =>\n !item.disabled &&\n selected.includes(item.key) &&\n current.includes(item.key) === (direction === 'left'),\n )\n .map((item) => item.key);\n if (!moved.length || disabled) return;\n const next =\n direction === 'right'\n ? [...current, ...moved]\n : current.filter((key) => !moved.includes(key));\n setCurrent(next);\n select(selected.filter((key) => !moved.includes(key)));\n onChange?.([...next], { direction, movedKeys: moved });\n };\n const panel = (side: 0 | 1) => {\n const query = queries[side] ?? '';\n const list = items.filter(\n (item) =>\n current.includes(item.key) === (side === 1) &&\n (filterOption\n ? filterOption(query, item)\n : `${item.searchLabel ?? (typeof item.label === 'string' ? item.label : item.key)} ${item.description ?? ''}`\n .toLocaleLowerCase()\n .includes(query.toLocaleLowerCase())),\n );\n const enabled = list.filter((item) => !item.disabled);\n const checked = enabled.filter((item) => selected.includes(item.key));\n const row = (item: TransferItem) => (\n <div\n className=\"leaf-transfer__item\"\n data-motion-key={item.key}\n data-selected={selected.includes(item.key) ? '' : undefined}\n >\n <Checkbox\n disabled={disabled || item.disabled}\n checked={selected.includes(item.key)}\n onChange={(event) =>\n select(\n event.target.checked\n ? [...new Set([...selected, item.key])]\n : selected.filter((key) => key !== item.key),\n )\n }\n >\n <span>\n {renderItem?.(item) ?? item.label}\n {item.description && <small>{item.description}</small>}\n </span>\n </Checkbox>\n </div>\n );\n return (\n <section className=\"leaf-transfer__panel\" aria-labelledby={`${id}-${side}`}>\n <header className=\"leaf-transfer__header\">\n <Checkbox\n aria-label={t('transfer.selectAllVisibleItems')}\n disabled={disabled || !enabled.length}\n checked={enabled.length > 0 && checked.length === enabled.length}\n indeterminate={checked.length > 0 && checked.length < enabled.length}\n onChange={(event) =>\n select(\n event.target.checked\n ? [...new Set([...selected, ...enabled.map((item) => item.key)])]\n : selected.filter((key) => !enabled.some((item) => item.key === key)),\n )\n }\n />\n <span id={`${id}-${side}`}>\n {titles?.[side] ?? (side === 0 ? t('transfer.available') : t('transfer.selected'))}\n </span>\n <small>\n {checked.length ? `${checked.length} / ` : ''}\n {list.length}\n </small>\n </header>\n {searchable && (\n <div className=\"leaf-transfer__search\">\n <InputControl\n size=\"sm\"\n allowClear\n prefix={<Search size={14} />}\n aria-label={\n side === 0 ? t('transfer.searchAvailableItems') : t('transfer.searchSelectedItems')\n }\n value={query}\n onChange={(event) =>\n setQueries((previous) =>\n previous.map((text, index) => (index === side ? event.target.value : text)),\n )\n }\n />\n </div>\n )}\n {virtual ? (\n <VirtualList\n items={list}\n itemKey={(item) => item.key}\n renderItem={row}\n height={height}\n estimateSize={(item) =>\n Math.max(estimateControlHeight(theme, density), item.description ? 42 : 0) + 6\n }\n emptyContent={<Result size=\"sm\" icon={null} title={t('transfer.noItems')} />}\n />\n ) : (\n <div className=\"leaf-transfer__list\" style={{ height }}>\n {list.length ? (\n list.map((item) => <div key={item.key}>{row(item)}</div>)\n ) : (\n <Result size=\"sm\" icon={null} title={t('transfer.noItems')} />\n )}\n </div>\n )}\n </section>\n );\n };\n return (\n <div\n {...props}\n ref={root}\n className={classes('leaf-transfer', className)}\n data-disabled={disabled ? '' : undefined}\n >\n <FieldScope>{panel(0)}</FieldScope>\n <div className=\"leaf-transfer__actions\">\n <ButtonControl\n ref={trigger}\n id={props.id ?? field?.id}\n size=\"sm\"\n startIcon={<ArrowRight size={16} />}\n aria-label={t('transfer.moveToSelected')}\n disabled={\n disabled ||\n !items.some(\n (item) =>\n !item.disabled && selected.includes(item.key) && !current.includes(item.key),\n )\n }\n onClick={() => move('right')}\n />\n {!oneWay && (\n <ButtonControl\n size=\"sm\"\n variant=\"outline\"\n startIcon={<ArrowLeft size={16} />}\n aria-label={t('transfer.moveToAvailable')}\n disabled={\n disabled ||\n !items.some(\n (item) =>\n !item.disabled && selected.includes(item.key) && current.includes(item.key),\n )\n }\n onClick={() => move('left')}\n />\n )}\n </div>\n <FieldScope>{panel(1)}</FieldScope>\n <FormValue\n name={name}\n form={form}\n value={current.length ? JSON.stringify(current) : ''}\n required={required ?? field?.required}\n disabled={disabled}\n triggerRef={trigger}\n />\n </div>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","Transfer","rawProps","items","value","defaultValue","onChange","selectedKeys","onSelectionChange","titles","searchable","filterOption","renderItem","disabledProp","height","virtual","name","form","required","oneWay","className","props","useComponentProps","theme","density","useLeafConfig","field","useFormField","disabled","t","useText","id","useId","trigger","useRef","root","current","setCurrent","useFieldValue","internal","setInternal","useState","selected","queries","setQueries","useListMotion","JSON","item","select","keys","undefined","move","direction","moved","next","panel","side","query","list","enabled","checked","row","Checkbox","event","Set","InputControl","Search","previous","text","index","VirtualList","Math","estimateControlHeight","Result","classes","FieldScope","ButtonControl","ArrowRight","ArrowLeft","FormValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transfer/transfer.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../../../src/transfer/transfer.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 { ArrowLeft, ArrowRight, Search } from 'lucide-react';\nimport { type HTMLAttributes, type ReactNode, useId, useRef, useState } from 'react';\nimport { ButtonControl } from '../button/button';\nimport { CheckboxControl as Checkbox } from '../checkbox/checkbox';\nimport { useComponentProps } from '../config-provider/component-defaults';\nimport { useLeafConfig } from '../config-provider/context';\nimport { estimateControlHeight } from '../density';\nimport { FieldScope, useFormField } from '../form/form';\nimport { InputControl } from '../input/input';\nimport { ResultControl as Result } from '../result/result';\nimport { ScrollbarControl } from '../scrollbar/scrollbar';\nimport { classes } from '../shared/classes';\nimport { FormValue, useFieldValue } from '../shared/field';\nimport { useListMotion } from '../shared/motion';\nimport { useText } from '../shared/use-text';\nimport { VirtualListControl as VirtualList } from '../virtuallist/virtuallist';\nexport interface TransferItem {\n key: string;\n label: ReactNode;\n description?: string;\n disabled?: boolean;\n searchLabel?: string;\n}\nexport interface TransferChangeInfo {\n direction: 'left' | 'right';\n movedKeys: string[];\n}\nexport interface TransferProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n items: readonly TransferItem[];\n value?: readonly string[];\n defaultValue?: readonly string[];\n onChange?: (keys: string[], info: TransferChangeInfo) => void;\n selectedKeys?: readonly string[];\n onSelectionChange?: (keys: string[]) => void;\n titles?: readonly [ReactNode, ReactNode];\n searchable?: boolean;\n filterOption?: (query: string, item: TransferItem) => boolean;\n renderItem?: (item: TransferItem) => ReactNode;\n disabled?: boolean;\n height?: number;\n virtual?: boolean;\n name?: string;\n form?: string;\n required?: boolean;\n oneWay?: boolean;\n}\nexport function Transfer(rawProps: TransferProps) {\n const {\n items,\n value,\n defaultValue = [],\n onChange,\n selectedKeys,\n onSelectionChange,\n titles,\n searchable = true,\n filterOption,\n renderItem,\n disabled: disabledProp,\n height = 180,\n virtual = false,\n name,\n form,\n required,\n oneWay = false,\n className,\n ...props\n } = useComponentProps('Transfer', rawProps);\n const { theme, density } = useLeafConfig();\n const field = useFormField();\n const disabled = disabledProp || field?.disabled;\n const t = useText();\n const id = useId();\n const trigger = useRef<HTMLButtonElement>(null);\n const root = useRef<HTMLDivElement>(null);\n const [current, setCurrent] = useFieldValue(value, defaultValue, trigger, form);\n const [internal, setInternal] = useState<readonly string[]>([]);\n const selected = selectedKeys ?? internal;\n const [queries, setQueries] = useState(['', '']);\n useListMotion(\n root,\n JSON.stringify([current, queries, items.map((item) => item.key)]),\n virtual ? '[data-no-transfer-motion]' : '.leaf-transfer__item[data-motion-key]',\n );\n const select = (keys: string[]) => {\n if (selectedKeys === undefined) setInternal(keys);\n onSelectionChange?.(keys);\n };\n const move = (direction: 'left' | 'right') => {\n const moved = items\n .filter(\n (item) =>\n !item.disabled &&\n selected.includes(item.key) &&\n current.includes(item.key) === (direction === 'left'),\n )\n .map((item) => item.key);\n if (!moved.length || disabled) return;\n const next =\n direction === 'right'\n ? [...current, ...moved]\n : current.filter((key) => !moved.includes(key));\n setCurrent(next);\n select(selected.filter((key) => !moved.includes(key)));\n onChange?.([...next], { direction, movedKeys: moved });\n };\n const panel = (side: 0 | 1) => {\n const query = queries[side] ?? '';\n const list = items.filter(\n (item) =>\n current.includes(item.key) === (side === 1) &&\n (filterOption\n ? filterOption(query, item)\n : `${item.searchLabel ?? (typeof item.label === 'string' ? item.label : item.key)} ${item.description ?? ''}`\n .toLocaleLowerCase()\n .includes(query.toLocaleLowerCase())),\n );\n const enabled = list.filter((item) => !item.disabled);\n const checked = enabled.filter((item) => selected.includes(item.key));\n const row = (item: TransferItem) => (\n <div\n className=\"leaf-transfer__item\"\n data-motion-key={item.key}\n data-selected={selected.includes(item.key) ? '' : undefined}\n >\n <Checkbox\n disabled={disabled || item.disabled}\n checked={selected.includes(item.key)}\n onChange={(event) =>\n select(\n event.target.checked\n ? [...new Set([...selected, item.key])]\n : selected.filter((key) => key !== item.key),\n )\n }\n >\n <span>\n {renderItem?.(item) ?? item.label}\n {item.description && <small>{item.description}</small>}\n </span>\n </Checkbox>\n </div>\n );\n return (\n <section className=\"leaf-transfer__panel\" aria-labelledby={`${id}-${side}`}>\n <header className=\"leaf-transfer__header\">\n <Checkbox\n aria-label={t('transfer.selectAllVisibleItems')}\n disabled={disabled || !enabled.length}\n checked={enabled.length > 0 && checked.length === enabled.length}\n indeterminate={checked.length > 0 && checked.length < enabled.length}\n onChange={(event) =>\n select(\n event.target.checked\n ? [...new Set([...selected, ...enabled.map((item) => item.key)])]\n : selected.filter((key) => !enabled.some((item) => item.key === key)),\n )\n }\n />\n <span id={`${id}-${side}`}>\n {titles?.[side] ?? (side === 0 ? t('transfer.available') : t('transfer.selected'))}\n </span>\n <small>\n {checked.length ? `${checked.length} / ` : ''}\n {list.length}\n </small>\n </header>\n {searchable && (\n <div className=\"leaf-transfer__search\">\n <InputControl\n size=\"sm\"\n allowClear\n prefix={<Search size={14} />}\n aria-label={\n side === 0 ? t('transfer.searchAvailableItems') : t('transfer.searchSelectedItems')\n }\n value={query}\n onChange={(event) =>\n setQueries((previous) =>\n previous.map((text, index) => (index === side ? event.target.value : text)),\n )\n }\n />\n </div>\n )}\n {virtual ? (\n <VirtualList\n items={list}\n itemKey={(item) => item.key}\n renderItem={row}\n height={height}\n estimateSize={(item) =>\n Math.max(estimateControlHeight(theme, density), item.description ? 42 : 0) + 6\n }\n emptyContent={<Result size=\"sm\" icon={null} title={t('transfer.noItems')} />}\n />\n ) : (\n <ScrollbarControl\n viewportClassName=\"leaf-transfer__list\"\n height={height}\n role=\"presentation\"\n >\n {list.length ? (\n list.map((item) => <div key={item.key}>{row(item)}</div>)\n ) : (\n <Result size=\"sm\" icon={null} title={t('transfer.noItems')} />\n )}\n </ScrollbarControl>\n )}\n </section>\n );\n };\n return (\n <div\n {...props}\n ref={root}\n className={classes('leaf-transfer', className)}\n data-disabled={disabled ? '' : undefined}\n >\n <FieldScope>{panel(0)}</FieldScope>\n <div className=\"leaf-transfer__actions\">\n <ButtonControl\n ref={trigger}\n id={props.id ?? field?.id}\n size=\"sm\"\n startIcon={<ArrowRight size={16} />}\n aria-label={t('transfer.moveToSelected')}\n disabled={\n disabled ||\n !items.some(\n (item) =>\n !item.disabled && selected.includes(item.key) && !current.includes(item.key),\n )\n }\n onClick={() => move('right')}\n />\n {!oneWay && (\n <ButtonControl\n size=\"sm\"\n variant=\"outline\"\n startIcon={<ArrowLeft size={16} />}\n aria-label={t('transfer.moveToAvailable')}\n disabled={\n disabled ||\n !items.some(\n (item) =>\n !item.disabled && selected.includes(item.key) && current.includes(item.key),\n )\n }\n onClick={() => move('left')}\n />\n )}\n </div>\n <FieldScope>{panel(1)}</FieldScope>\n <FormValue\n name={name}\n form={form}\n value={current.length ? JSON.stringify(current) : ''}\n required={required ?? field?.required}\n disabled={disabled}\n triggerRef={trigger}\n />\n </div>\n );\n}\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","Transfer","rawProps","items","value","defaultValue","onChange","selectedKeys","onSelectionChange","titles","searchable","filterOption","renderItem","disabledProp","height","virtual","name","form","required","oneWay","className","props","useComponentProps","theme","density","useLeafConfig","field","useFormField","disabled","t","useText","id","useId","trigger","useRef","root","current","setCurrent","useFieldValue","internal","setInternal","useState","selected","queries","setQueries","useListMotion","JSON","item","select","keys","undefined","move","direction","moved","next","panel","side","query","list","enabled","checked","row","Checkbox","event","Set","InputControl","Search","previous","text","index","VirtualList","Math","estimateControlHeight","Result","ScrollbarControl","classes","FieldScope","ButtonControl","ArrowRight","ArrowLeft","FormValue"],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ const component_defaults_cjs_namespaceObject = require("../config-provider/compo
|
|
|
43
43
|
const context_cjs_namespaceObject = require("../config-provider/context.cjs");
|
|
44
44
|
const external_density_cjs_namespaceObject = require("../density.cjs");
|
|
45
45
|
const result_cjs_namespaceObject = require("../result/result.cjs");
|
|
46
|
+
const scrollbar_cjs_namespaceObject = require("../scrollbar/scrollbar.cjs");
|
|
46
47
|
const classes_cjs_namespaceObject = require("../shared/classes.cjs");
|
|
47
48
|
const inert_cjs_namespaceObject = require("../shared/inert.cjs");
|
|
48
49
|
const use_formatted_text_cjs_namespaceObject = require("../shared/use-formatted-text.cjs");
|
|
@@ -398,20 +399,26 @@ function TreeControl({ data: suppliedData, selectedKeys, defaultSelectedKeys = [
|
|
|
398
399
|
const siblings = nodes.filter((node)=>!matches || matches.visible.has(node.key));
|
|
399
400
|
return siblings.map((node, index)=>renderNode(node, level, index, siblings.length));
|
|
400
401
|
};
|
|
401
|
-
const content = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(
|
|
402
|
-
...props,
|
|
402
|
+
const content = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(scrollbar_cjs_namespaceObject.ScrollbarControl, {
|
|
403
403
|
ref: root,
|
|
404
|
+
viewportProps: {
|
|
405
|
+
...props,
|
|
406
|
+
'aria-multiselectable': multiple || checkable || void 0,
|
|
407
|
+
'aria-disabled': disabled || void 0
|
|
408
|
+
},
|
|
404
409
|
style: {
|
|
405
410
|
...virtual ? {
|
|
406
|
-
height
|
|
407
|
-
overflow: 'auto'
|
|
411
|
+
height
|
|
408
412
|
} : {},
|
|
409
413
|
...props.style
|
|
410
414
|
},
|
|
415
|
+
viewportStyle: {
|
|
416
|
+
position: 'relative'
|
|
417
|
+
},
|
|
411
418
|
role: "tree",
|
|
412
419
|
"aria-label": label ?? messages.tree.label,
|
|
413
|
-
|
|
414
|
-
|
|
420
|
+
tabIndex: -1,
|
|
421
|
+
scrollbarTabIndex: -1,
|
|
415
422
|
className: (0, classes_cjs_namespaceObject.classes)('leaf-tree', showLine && 'leaf-tree--lines', className),
|
|
416
423
|
children: visible.length ? virtual ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
417
424
|
style: {
|