@wisdomgarden/torque 0.1.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 +75 -0
- package/dist/common/components.types.d.ts +60 -0
- package/dist/common/components.types.js +1 -0
- package/dist/common/dayjs.d.ts +7 -0
- package/dist/common/dayjs.js +10 -0
- package/dist/common/use-css-variable-value.d.ts +6 -0
- package/dist/common/use-css-variable-value.js +23 -0
- package/dist/common/use-css-variable-values.d.ts +10 -0
- package/dist/common/use-css-variable-values.js +25 -0
- package/dist/common/use-form-wrapper-props.d.ts +48 -0
- package/dist/common/use-form-wrapper-props.js +59 -0
- package/dist/common/use-ime-safe-input.d.ts +10 -0
- package/dist/common/use-ime-safe-input.js +23 -0
- package/dist/common/use-notification-a11y.d.ts +4 -0
- package/dist/common/use-notification-a11y.js +18 -0
- package/dist/common/use-sticky-box.d.ts +9 -0
- package/dist/common/use-sticky-box.js +217 -0
- package/dist/common/util.d.ts +5 -0
- package/dist/common/util.js +14 -0
- package/dist/components/_inner/base-select/common/searchable.d.ts +5 -0
- package/dist/components/_inner/base-select/common/searchable.js +6 -0
- package/dist/components/_inner/base-select/common/select.types.d.ts +169 -0
- package/dist/components/_inner/base-select/common/select.types.js +1 -0
- package/dist/components/_inner/base-select/search-select/index.d.ts +6 -0
- package/dist/components/_inner/base-select/search-select/index.js +106 -0
- package/dist/components/_inner/base-select/search-select/search-select.module.css.js +10 -0
- package/dist/components/_inner/base-select/single-select/index.d.ts +1 -0
- package/dist/components/_inner/base-select/single-select/index.js +5 -0
- package/dist/components/_inner/base-select/single-select/single-select.d.ts +5 -0
- package/dist/components/_inner/base-select/single-select/single-select.js +58 -0
- package/dist/components/_inner/base-select/target/single-select-target.d.ts +15 -0
- package/dist/components/_inner/base-select/target/single-select-target.js +56 -0
- package/dist/components/_inner/bottom-action/bottom-action-item.d.ts +11 -0
- package/dist/components/_inner/bottom-action/bottom-action-item.js +140 -0
- package/dist/components/_inner/bottom-action/bottom-action.d.ts +6 -0
- package/dist/components/_inner/bottom-action/bottom-action.js +161 -0
- package/dist/components/_inner/bottom-action/bottom-action.module.css.js +46 -0
- package/dist/components/_inner/bottom-action/bottom-action.types.d.ts +117 -0
- package/dist/components/_inner/bottom-action/index.d.ts +2 -0
- package/dist/components/_inner/bottom-action/index.js +5 -0
- package/dist/components/_inner/drawer/base-bottom-drawer.d.ts +32 -0
- package/dist/components/_inner/drawer/base-bottom-drawer.js +91 -0
- package/dist/components/_inner/drawer/base-bottom-drawer.module.css.js +18 -0
- package/dist/components/_inner/dropdown/empty-state.d.ts +6 -0
- package/dist/components/_inner/dropdown/empty-state.js +16 -0
- package/dist/components/_inner/dropdown/empty-state.module.css.js +12 -0
- package/dist/components/_inner/dropdown/options-drop-down.d.ts +22 -0
- package/dist/components/_inner/dropdown/options-drop-down.js +95 -0
- package/dist/components/_inner/dropdown/options-drop-down.module.css.js +18 -0
- package/dist/components/_inner/menu/_mobile/menu.mobile.d.ts +11 -0
- package/dist/components/_inner/menu/_mobile/menu.mobile.js +15 -0
- package/dist/components/_inner/menu/_web/menu-web.module.css.js +18 -0
- package/dist/components/_inner/menu/_web/menu.web.d.ts +6 -0
- package/dist/components/_inner/menu/_web/menu.web.js +198 -0
- package/dist/components/_inner/number/number-input-left.d.ts +5 -0
- package/dist/components/_inner/number/number-input-left.js +29 -0
- package/dist/components/_inner/number/number-input-right.d.ts +6 -0
- package/dist/components/_inner/number/number-input-right.js +62 -0
- package/dist/components/_inner/number/number.module.css.js +12 -0
- package/dist/components/_inner/table/head/table-head-filter-multi-select.d.ts +25 -0
- package/dist/components/_inner/table/head/table-head-filter-multi-select.js +139 -0
- package/dist/components/_inner/table/head/table-head-filter-search.d.ts +18 -0
- package/dist/components/_inner/table/head/table-head-filter-search.js +102 -0
- package/dist/components/_inner/table/head/table-head-filter-single-select.d.ts +21 -0
- package/dist/components/_inner/table/head/table-head-filter-single-select.js +76 -0
- package/dist/components/_inner/table/head/table-head-sort.d.ts +16 -0
- package/dist/components/_inner/table/head/table-head-sort.js +51 -0
- package/dist/components/_inner/table/head/table-head.module.css.js +40 -0
- package/dist/components/_inner/table/index.d.ts +5 -0
- package/dist/components/_inner/table/index.js +13 -0
- package/dist/components/_inner/table/table-header-title.d.ts +7 -0
- package/dist/components/_inner/table/table-header-title.js +24 -0
- package/dist/components/_inner/table/table-header-title.module.css.js +12 -0
- package/dist/components/_inner/tags-input/hooks/use-height-transition.d.ts +15 -0
- package/dist/components/_inner/tags-input/hooks/use-height-transition.js +31 -0
- package/dist/components/_inner/tags-input/hooks/use-is-wrapped.d.ts +12 -0
- package/dist/components/_inner/tags-input/hooks/use-is-wrapped.js +24 -0
- package/dist/components/_inner/tags-input/index.d.ts +2 -0
- package/dist/components/_inner/tags-input/index.js +5 -0
- package/dist/components/_inner/tags-input/styles/tags-input.module.css.js +48 -0
- package/dist/components/_inner/tags-input/tags-input-tag.d.ts +13 -0
- package/dist/components/_inner/tags-input/tags-input-tag.js +53 -0
- package/dist/components/_inner/tags-input/tags-input.d.ts +9 -0
- package/dist/components/_inner/tags-input/tags-input.js +143 -0
- package/dist/components/_inner/tags-input/tags-input.types.d.ts +57 -0
- package/dist/components/alert/alert.d.ts +6 -0
- package/dist/components/alert/alert.js +102 -0
- package/dist/components/alert/alert.module.css.js +20 -0
- package/dist/components/alert/alert.types.d.ts +18 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.js +6 -0
- package/dist/components/base-input/base-input.d.ts +5 -0
- package/dist/components/base-input/base-input.js +143 -0
- package/dist/components/base-input/base-input.types.d.ts +89 -0
- package/dist/components/base-input/index.d.ts +5 -0
- package/dist/components/base-input/index.js +11 -0
- package/dist/components/base-input/styles/base-input-variables.module.css.js +8 -0
- package/dist/components/base-input/styles/base-input.module.css.js +24 -0
- package/dist/components/base-input/subs/base-input-left-section.d.ts +10 -0
- package/dist/components/base-input/subs/base-input-left-section.js +29 -0
- package/dist/components/base-input/subs/base-input-right-section.d.ts +23 -0
- package/dist/components/base-input/subs/base-input-right-section.js +87 -0
- package/dist/components/base-input/subs/base-input-target.d.ts +11 -0
- package/dist/components/base-input/subs/base-input-target.js +35 -0
- package/dist/components/base-input/subs/base-input-wrapper.d.ts +18 -0
- package/dist/components/base-input/subs/base-input-wrapper.js +51 -0
- package/dist/components/base-input/util.d.ts +8 -0
- package/dist/components/base-input/util.js +16 -0
- package/dist/components/bottom-drawer/bottom-drawer.d.ts +6 -0
- package/dist/components/bottom-drawer/bottom-drawer.js +16 -0
- package/dist/components/bottom-drawer/index.d.ts +2 -0
- package/dist/components/bottom-drawer/index.js +5 -0
- package/dist/components/box/box.d.ts +2 -0
- package/dist/components/box/box.js +27 -0
- package/dist/components/box/box.module.css.js +8 -0
- package/dist/components/box/box.types.d.ts +36 -0
- package/dist/components/box/index.d.ts +2 -0
- package/dist/components/box/index.js +5 -0
- package/dist/components/button/button.d.ts +17 -0
- package/dist/components/button/button.js +91 -0
- package/dist/components/button/button.types.d.ts +88 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/index.js +5 -0
- package/dist/components/button/styles/button-variables.module.css.js +8 -0
- package/dist/components/button/styles/button.module.css.js +18 -0
- package/dist/components/checkbox/checkbox-group.d.ts +7 -0
- package/dist/components/checkbox/checkbox-group.js +51 -0
- package/dist/components/checkbox/checkbox-variables.module.css.js +8 -0
- package/dist/components/checkbox/checkbox.d.ts +9 -0
- package/dist/components/checkbox/checkbox.js +93 -0
- package/dist/components/checkbox/checkbox.module.css.js +12 -0
- package/dist/components/checkbox/checkbox.types.d.ts +41 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/index.js +8 -0
- package/dist/components/combobox/combobox-context.d.ts +9 -0
- package/dist/components/combobox/combobox-context.js +15 -0
- package/dist/components/combobox/combobox-dropdown.d.ts +13 -0
- package/dist/components/combobox/combobox-dropdown.js +35 -0
- package/dist/components/combobox/combobox-infinite-dropdown.d.ts +51 -0
- package/dist/components/combobox/combobox-infinite-dropdown.js +56 -0
- package/dist/components/combobox/combobox-option.d.ts +3 -0
- package/dist/components/combobox/combobox-option.js +50 -0
- package/dist/components/combobox/combobox-options.d.ts +8 -0
- package/dist/components/combobox/combobox-options.js +38 -0
- package/dist/components/combobox/combobox-search.d.ts +27 -0
- package/dist/components/combobox/combobox-search.js +29 -0
- package/dist/components/combobox/combobox-target.d.ts +15 -0
- package/dist/components/combobox/combobox-target.js +49 -0
- package/dist/components/combobox/combobox.d.ts +61 -0
- package/dist/components/combobox/combobox.js +53 -0
- package/dist/components/combobox/combobox.types.d.ts +58 -0
- package/dist/components/combobox/hooks/use-combobox-search-input.d.ts +11 -0
- package/dist/components/combobox/hooks/use-combobox-search-input.js +22 -0
- package/dist/components/combobox/hooks/use-combobox-target-key-down.d.ts +12 -0
- package/dist/components/combobox/hooks/use-combobox-target-key-down.js +35 -0
- package/dist/components/combobox/hooks/use-combobox.d.ts +58 -0
- package/dist/components/combobox/hooks/use-combobox.js +90 -0
- package/dist/components/combobox/index.d.ts +5 -0
- package/dist/components/combobox/index.js +9 -0
- package/dist/components/combobox/styles/combobox.module.css.js +14 -0
- package/dist/components/combobox/subs/combobox-bottom-drawer-dropdown.d.ts +10 -0
- package/dist/components/combobox/subs/combobox-bottom-drawer-dropdown.js +14 -0
- package/dist/components/combobox/subs/combobox-bottom-drawer-target.d.ts +3 -0
- package/dist/components/combobox/subs/combobox-bottom-drawer-target.js +20 -0
- package/dist/components/data-filter/data-filter-content.d.ts +13 -0
- package/dist/components/data-filter/data-filter-content.js +46 -0
- package/dist/components/data-filter/data-filter-drawer.d.ts +19 -0
- package/dist/components/data-filter/data-filter-drawer.js +73 -0
- package/dist/components/data-filter/data-filter-inline.d.ts +6 -0
- package/dist/components/data-filter/data-filter-inline.js +12 -0
- package/dist/components/data-filter/data-filter-panel.d.ts +13 -0
- package/dist/components/data-filter/data-filter-panel.js +40 -0
- package/dist/components/data-filter/data-filter.d.ts +2 -0
- package/dist/components/data-filter/data-filter.js +94 -0
- package/dist/components/data-filter/data-filter.module.css.js +56 -0
- package/dist/components/data-filter/data-filter.types.d.ts +29 -0
- package/dist/components/data-filter/filter-condition-tags/filter-condition-tags.d.ts +16 -0
- package/dist/components/data-filter/filter-condition-tags/filter-condition-tags.js +114 -0
- package/dist/components/data-filter/filter-condition-tags/index.d.ts +1 -0
- package/dist/components/data-filter/filter-condition-tags/index.js +5 -0
- package/dist/components/data-filter/hooks/use-data-filter-open-state.d.ts +10 -0
- package/dist/components/data-filter/hooks/use-data-filter-open-state.js +21 -0
- package/dist/components/data-filter/hooks/use-data-filter-state.d.ts +11 -0
- package/dist/components/data-filter/hooks/use-data-filter-state.js +48 -0
- package/dist/components/data-filter/index.d.ts +3 -0
- package/dist/components/data-filter/index.js +7 -0
- package/dist/components/date-picker/components/common/calendar-header.d.ts +10 -0
- package/dist/components/date-picker/components/common/calendar-header.js +70 -0
- package/dist/components/date-picker/components/common/calendar-panel.d.ts +6 -0
- package/dist/components/date-picker/components/common/calendar-panel.js +133 -0
- package/dist/components/date-picker/components/common/date-cell.d.ts +8 -0
- package/dist/components/date-picker/components/common/date-cell.js +46 -0
- package/dist/components/date-picker/components/common/decade-view.d.ts +8 -0
- package/dist/components/date-picker/components/common/decade-view.js +36 -0
- package/dist/components/date-picker/components/common/month-view.d.ts +5 -0
- package/dist/components/date-picker/components/common/month-view.js +65 -0
- package/dist/components/date-picker/components/common/picker-footer.d.ts +28 -0
- package/dist/components/date-picker/components/common/picker-footer.js +29 -0
- package/dist/components/date-picker/components/common/picker-sections.d.ts +14 -0
- package/dist/components/date-picker/components/common/picker-sections.js +31 -0
- package/dist/components/date-picker/components/common/picker-target-input.d.ts +7 -0
- package/dist/components/date-picker/components/common/picker-target-input.js +11 -0
- package/dist/components/date-picker/components/common/time-column.d.ts +6 -0
- package/dist/components/date-picker/components/common/time-column.js +121 -0
- package/dist/components/date-picker/components/common/time-input-row.d.ts +20 -0
- package/dist/components/date-picker/components/common/time-input-row.js +65 -0
- package/dist/components/date-picker/components/common/time-panel.d.ts +6 -0
- package/dist/components/date-picker/components/common/time-panel.js +86 -0
- package/dist/components/date-picker/components/common/year-view.d.ts +8 -0
- package/dist/components/date-picker/components/common/year-view.js +36 -0
- package/dist/components/date-picker/components/picker-focus-context.d.ts +21 -0
- package/dist/components/date-picker/components/picker-focus-context.js +16 -0
- package/dist/components/date-picker/components/range/range-panel.d.ts +33 -0
- package/dist/components/date-picker/components/range/range-panel.js +101 -0
- package/dist/components/date-picker/components/range/range-shell.d.ts +6 -0
- package/dist/components/date-picker/components/range/range-shell.js +110 -0
- package/dist/components/date-picker/components/single/picker-shell.d.ts +6 -0
- package/dist/components/date-picker/components/single/picker-shell.js +109 -0
- package/dist/components/date-picker/date-picker.d.ts +6 -0
- package/dist/components/date-picker/date-picker.js +76 -0
- package/dist/components/date-picker/date-picker.types.d.ts +543 -0
- package/dist/components/date-picker/date-picker.types.js +5 -0
- package/dist/components/date-picker/date-range-picker.d.ts +5 -0
- package/dist/components/date-picker/date-range-picker.js +103 -0
- package/dist/components/date-picker/date-time-picker.d.ts +6 -0
- package/dist/components/date-picker/date-time-picker.js +181 -0
- package/dist/components/date-picker/date-time-range-picker.d.ts +6 -0
- package/dist/components/date-picker/date-time-range-picker.js +157 -0
- package/dist/components/date-picker/hooks/date-disabled.d.ts +27 -0
- package/dist/components/date-picker/hooks/date-disabled.js +60 -0
- package/dist/components/date-picker/hooks/time-utils.d.ts +17 -0
- package/dist/components/date-picker/hooks/time-utils.js +14 -0
- package/dist/components/date-picker/hooks/use-calendar.d.ts +12 -0
- package/dist/components/date-picker/hooks/use-calendar.js +28 -0
- package/dist/components/date-picker/hooks/use-date-parser.d.ts +17 -0
- package/dist/components/date-picker/hooks/use-date-parser.js +16 -0
- package/dist/components/date-picker/hooks/use-grid-keyboard.d.ts +22 -0
- package/dist/components/date-picker/hooks/use-grid-keyboard.js +74 -0
- package/dist/components/date-picker/hooks/use-range-draft.d.ts +61 -0
- package/dist/components/date-picker/hooks/use-range-draft.js +84 -0
- package/dist/components/date-picker/hooks/use-range-session.d.ts +14 -0
- package/dist/components/date-picker/hooks/use-range-session.js +11 -0
- package/dist/components/date-picker/hooks/use-resolved-format.d.ts +15 -0
- package/dist/components/date-picker/hooks/use-resolved-format.js +25 -0
- package/dist/components/date-picker/index.d.ts +21 -0
- package/dist/components/date-picker/index.js +15 -0
- package/dist/components/date-picker/styles/calendar-header.module.css.js +14 -0
- package/dist/components/date-picker/styles/calendar-panel.module.css.js +12 -0
- package/dist/components/date-picker/styles/date-cell.module.css.js +8 -0
- package/dist/components/date-picker/styles/month-view.module.css.js +12 -0
- package/dist/components/date-picker/styles/panel-layout.module.css.js +12 -0
- package/dist/components/date-picker/styles/picker-footer.module.css.js +10 -0
- package/dist/components/date-picker/styles/picker-shell.module.css.js +12 -0
- package/dist/components/date-picker/styles/range-panel.module.css.js +12 -0
- package/dist/components/date-picker/styles/time-column.module.css.js +10 -0
- package/dist/components/date-picker/styles/time-input-row.module.css.js +16 -0
- package/dist/components/date-picker/styles/time-panel.module.css.js +8 -0
- package/dist/components/date-picker/styles/year-view.module.css.js +10 -0
- package/dist/components/date-picker/time-picker.d.ts +6 -0
- package/dist/components/date-picker/time-picker.js +81 -0
- package/dist/components/date-picker/time-range-picker.d.ts +6 -0
- package/dist/components/date-picker/time-range-picker.js +135 -0
- package/dist/components/drawer/drawer-events.d.ts +28 -0
- package/dist/components/drawer/drawer-events.js +14 -0
- package/dist/components/drawer/drawer.d.ts +33 -0
- package/dist/components/drawer/drawer.js +86 -0
- package/dist/components/drawer/drawer.module.css.js +34 -0
- package/dist/components/drawer/drawes.d.ts +4 -0
- package/dist/components/drawer/drawes.js +82 -0
- package/dist/components/drawer/index.d.ts +4 -0
- package/dist/components/drawer/index.js +9 -0
- package/dist/components/filter/filter-popover.d.ts +11 -0
- package/dist/components/filter/filter-popover.js +53 -0
- package/dist/components/filter/filter.d.ts +5 -0
- package/dist/components/filter/filter.js +29 -0
- package/dist/components/filter/filter.module.css.js +12 -0
- package/dist/components/filter/filter.types.d.ts +27 -0
- package/dist/components/filter/filter.types.js +1 -0
- package/dist/components/filter/icon-filter.d.ts +6 -0
- package/dist/components/filter/icon-filter.js +25 -0
- package/dist/components/filter/index.d.ts +4 -0
- package/dist/components/filter/index.js +9 -0
- package/dist/components/filter/multi-filter.d.ts +5 -0
- package/dist/components/filter/multi-filter.js +52 -0
- package/dist/components/flex/flex.d.ts +9 -0
- package/dist/components/flex/flex.js +28 -0
- package/dist/components/flex/flex.module.css.js +8 -0
- package/dist/components/flex/index.d.ts +2 -0
- package/dist/components/flex/index.js +5 -0
- package/dist/components/flex/layout.types.d.ts +69 -0
- package/dist/components/form-wrapper/form-item-wrapper-defaults-context.d.ts +10 -0
- package/dist/components/form-wrapper/form-item-wrapper-defaults-context.js +19 -0
- package/dist/components/form-wrapper/form-item-wrapper.d.ts +5 -0
- package/dist/components/form-wrapper/form-item-wrapper.js +111 -0
- package/dist/components/form-wrapper/form-item-wrapper.module.css.js +28 -0
- package/dist/components/form-wrapper/form-wrapper.types.d.ts +15 -0
- package/dist/components/form-wrapper/index.d.ts +3 -0
- package/dist/components/form-wrapper/index.js +8 -0
- package/dist/components/group/group.d.ts +8 -0
- package/dist/components/group/group.js +36 -0
- package/dist/components/group/group.module.css.js +8 -0
- package/dist/components/group/index.d.ts +1 -0
- package/dist/components/group/index.js +5 -0
- package/dist/components/icon-button/icon-button.d.ts +20 -0
- package/dist/components/icon-button/icon-button.js +20 -0
- package/dist/components/icon-button/icon-button.module.css.js +8 -0
- package/dist/components/icon-button/icon-button.types.d.ts +7 -0
- package/dist/components/icon-button/index.d.ts +2 -0
- package/dist/components/icon-button/index.js +5 -0
- package/dist/components/link-button/index.d.ts +1 -0
- package/dist/components/link-button/index.js +5 -0
- package/dist/components/link-button/link-button.d.ts +31 -0
- package/dist/components/link-button/link-button.js +31 -0
- package/dist/components/link-icon-button/index.d.ts +1 -0
- package/dist/components/link-icon-button/index.js +5 -0
- package/dist/components/link-icon-button/link-icon-button.d.ts +37 -0
- package/dist/components/link-icon-button/link-icon-button.js +30 -0
- package/dist/components/menu/index.d.ts +2 -0
- package/dist/components/menu/index.js +5 -0
- package/dist/components/menu/menu.d.ts +33 -0
- package/dist/components/menu/menu.js +17 -0
- package/dist/components/menu/menu.types.d.ts +46 -0
- package/dist/components/message/index.d.ts +2 -0
- package/dist/components/message/index.js +5 -0
- package/dist/components/message/message.d.ts +2 -0
- package/dist/components/message/message.js +42 -0
- package/dist/components/message/message.module.css.js +14 -0
- package/dist/components/message/message.types.d.ts +7 -0
- package/dist/components/message/messages.d.ts +10 -0
- package/dist/components/message/messages.js +37 -0
- package/dist/components/modal/index.d.ts +2 -0
- package/dist/components/modal/index.js +5 -0
- package/dist/components/modal/modal.d.ts +6 -0
- package/dist/components/modal/modal.js +51 -0
- package/dist/components/modal/modal.module.css.js +10 -0
- package/dist/components/multi-select/base-multi-select.d.ts +3 -0
- package/dist/components/multi-select/base-multi-select.js +100 -0
- package/dist/components/multi-select/index.d.ts +1 -0
- package/dist/components/multi-select/index.js +5 -0
- package/dist/components/multi-select/multi-select-input.d.ts +29 -0
- package/dist/components/multi-select/multi-select-input.js +74 -0
- package/dist/components/multi-select/multi-select.d.ts +28 -0
- package/dist/components/multi-select/multi-select.js +34 -0
- package/dist/components/multi-select/multi-select.mobile.d.ts +4 -0
- package/dist/components/multi-select/multi-select.mobile.js +59 -0
- package/dist/components/multi-select/multi-select.types.d.ts +56 -0
- package/dist/components/multi-select/multi-select.types.js +1 -0
- package/dist/components/multi-select/styles/base-multi-select.module.css.js +16 -0
- package/dist/components/notifications/index.d.ts +3 -0
- package/dist/components/notifications/index.js +7 -0
- package/dist/components/notifications/notification.d.ts +11 -0
- package/dist/components/notifications/notification.js +79 -0
- package/dist/components/notifications/notification.module.css.js +14 -0
- package/dist/components/notifications/notification.types.d.ts +25 -0
- package/dist/components/notifications/notifications.d.ts +42 -0
- package/dist/components/notifications/notifications.js +42 -0
- package/dist/components/number-input/index.d.ts +2 -0
- package/dist/components/number-input/index.js +5 -0
- package/dist/components/number-input/number-input.d.ts +8 -0
- package/dist/components/number-input/number-input.js +161 -0
- package/dist/components/number-input/number-input.module.css.js +8 -0
- package/dist/components/number-input/number-input.types.d.ts +65 -0
- package/dist/components/paper/index.d.ts +1 -0
- package/dist/components/paper/index.js +5 -0
- package/dist/components/paper/paper.d.ts +7 -0
- package/dist/components/paper/paper.js +15 -0
- package/dist/components/paper/paper.module.css.js +8 -0
- package/dist/components/password-input/index.d.ts +2 -0
- package/dist/components/password-input/index.js +5 -0
- package/dist/components/password-input/password-input.d.ts +15 -0
- package/dist/components/password-input/password-input.js +32 -0
- package/dist/components/popover/hooks.d.ts +17 -0
- package/dist/components/popover/hooks.js +131 -0
- package/dist/components/popover/index.d.ts +8 -0
- package/dist/components/popover/index.js +13 -0
- package/dist/components/popover/popover-context.d.ts +4 -0
- package/dist/components/popover/popover-context.js +16 -0
- package/dist/components/popover/popover-dropdown.d.ts +3 -0
- package/dist/components/popover/popover-dropdown.js +149 -0
- package/dist/components/popover/popover-stack.d.ts +10 -0
- package/dist/components/popover/popover-stack.js +24 -0
- package/dist/components/popover/popover-target.d.ts +3 -0
- package/dist/components/popover/popover-target.js +55 -0
- package/dist/components/popover/popover.d.ts +3 -0
- package/dist/components/popover/popover.js +175 -0
- package/dist/components/popover/popover.types.d.ts +211 -0
- package/dist/components/popover/styles/popover.module.css.js +12 -0
- package/dist/components/radio/index.d.ts +8 -0
- package/dist/components/radio/index.js +12 -0
- package/dist/components/radio/radio-group.d.ts +18 -0
- package/dist/components/radio/radio-group.js +54 -0
- package/dist/components/radio/radio-variables.module.css.js +8 -0
- package/dist/components/radio/radio.d.ts +17 -0
- package/dist/components/radio/radio.js +56 -0
- package/dist/components/radio/radio.module.css.js +14 -0
- package/dist/components/radio/radio.types.d.ts +59 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/index.js +5 -0
- package/dist/components/select/select.d.ts +15 -0
- package/dist/components/select/select.js +48 -0
- package/dist/components/select/select.mobile.d.ts +12 -0
- package/dist/components/select/select.mobile.js +53 -0
- package/dist/components/stack/index.d.ts +1 -0
- package/dist/components/stack/index.js +5 -0
- package/dist/components/stack/stack.d.ts +6 -0
- package/dist/components/stack/stack.js +10 -0
- package/dist/components/sticky-box.d.ts +2 -0
- package/dist/components/sticky-box.js +10 -0
- package/dist/components/switch/index.d.ts +4 -0
- package/dist/components/switch/index.js +7 -0
- package/dist/components/switch/switch-group.d.ts +26 -0
- package/dist/components/switch/switch-group.js +12 -0
- package/dist/components/switch/switch.d.ts +27 -0
- package/dist/components/switch/switch.js +23 -0
- package/dist/components/switch/switch.module.css.js +7 -0
- package/dist/components/tab/index.d.ts +7 -0
- package/dist/components/tab/index.js +13 -0
- package/dist/components/tab/styles/tabs-variables.module.css.js +8 -0
- package/dist/components/tab/styles/tabs.module.css.js +22 -0
- package/dist/components/tab/subs/tabs-link-tab.d.ts +10 -0
- package/dist/components/tab/subs/tabs-link-tab.js +28 -0
- package/dist/components/tab/subs/tabs-list.d.ts +6 -0
- package/dist/components/tab/subs/tabs-list.js +59 -0
- package/dist/components/tab/subs/tabs-panel.d.ts +6 -0
- package/dist/components/tab/subs/tabs-panel.js +40 -0
- package/dist/components/tab/subs/tabs-tab.d.ts +6 -0
- package/dist/components/tab/subs/tabs-tab.js +52 -0
- package/dist/components/tab/tabs-context.d.ts +3 -0
- package/dist/components/tab/tabs-context.js +13 -0
- package/dist/components/tab/tabs.d.ts +20 -0
- package/dist/components/tab/tabs.js +83 -0
- package/dist/components/tab/tabs.types.d.ts +107 -0
- package/dist/components/tab/use-tabs-data-props.d.ts +9 -0
- package/dist/components/tab/use-tabs-data-props.js +12 -0
- package/dist/components/tab/use-tabs-keyboard-navigation.d.ts +13 -0
- package/dist/components/tab/use-tabs-keyboard-navigation.js +44 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/index.js +16 -0
- package/dist/components/table/table.d.ts +23 -0
- package/dist/components/table/table.js +159 -0
- package/dist/components/table/table.module.css.js +56 -0
- package/dist/components/table/table.types.d.ts +55 -0
- package/dist/components/table-pagination/index.d.ts +3 -0
- package/dist/components/table-pagination/index.js +8 -0
- package/dist/components/table-pagination/pagination.d.ts +10 -0
- package/dist/components/table-pagination/pagination.js +115 -0
- package/dist/components/table-pagination/pagination.module.css.js +14 -0
- package/dist/components/table-pagination/table-pagination.d.ts +15 -0
- package/dist/components/table-pagination/table-pagination.js +123 -0
- package/dist/components/table-pagination/table-pagination.module.css.js +18 -0
- package/dist/components/tag/closable-tag.d.ts +2 -0
- package/dist/components/tag/closable-tag.js +35 -0
- package/dist/components/tag/icon-tag.d.ts +2 -0
- package/dist/components/tag/icon-tag.js +36 -0
- package/dist/components/tag/index.d.ts +5 -0
- package/dist/components/tag/index.js +11 -0
- package/dist/components/tag/link-tag.d.ts +11 -0
- package/dist/components/tag/link-tag.js +31 -0
- package/dist/components/tag/styles/tag-variables.module.css.js +8 -0
- package/dist/components/tag/styles/tag.module.css.js +18 -0
- package/dist/components/tag/tag.d.ts +28 -0
- package/dist/components/tag/tag.js +40 -0
- package/dist/components/tag/tag.types.d.ts +72 -0
- package/dist/components/text/index.d.ts +2 -0
- package/dist/components/text/index.js +5 -0
- package/dist/components/text/text.d.ts +3 -0
- package/dist/components/text/text.js +36 -0
- package/dist/components/text/text.module.css.js +8 -0
- package/dist/components/text/text.types.d.ts +11 -0
- package/dist/components/text-area/index.d.ts +2 -0
- package/dist/components/text-area/index.js +5 -0
- package/dist/components/text-area/text-area.d.ts +9 -0
- package/dist/components/text-area/text-area.js +125 -0
- package/dist/components/text-area/text-area.module.css.js +22 -0
- package/dist/components/text-area/text-area.types.d.ts +46 -0
- package/dist/components/text-input/index.d.ts +2 -0
- package/dist/components/text-input/index.js +5 -0
- package/dist/components/text-input/text-input.d.ts +14 -0
- package/dist/components/text-input/text-input.js +24 -0
- package/dist/components/tooltip/floating-arrow.d.ts +13 -0
- package/dist/components/tooltip/floating-arrow.js +40 -0
- package/dist/components/tooltip/get-arrow-position-styles.d.ts +11 -0
- package/dist/components/tooltip/get-arrow-position-styles.js +63 -0
- package/dist/components/tooltip/index.d.ts +54 -0
- package/dist/components/tooltip/index.js +150 -0
- package/dist/components/tooltip/styles.module.css.js +10 -0
- package/dist/components/tooltip/types.d.ts +13 -0
- package/dist/components/tooltip/use-merged-events.d.ts +18 -0
- package/dist/components/tooltip/use-merged-events.js +22 -0
- package/dist/components/tooltip/use-tooltip-trigger.d.ts +13 -0
- package/dist/components/tooltip/use-tooltip-trigger.js +59 -0
- package/dist/components/tooltip/utils.d.ts +4 -0
- package/dist/components/tooltip/utils.js +35 -0
- package/dist/components/tree/hooks/use-custom-click-behavior-feature.d.ts +16 -0
- package/dist/components/tree/hooks/use-custom-click-behavior-feature.js +125 -0
- package/dist/components/tree/hooks/use-tree-animation.d.ts +12 -0
- package/dist/components/tree/hooks/use-tree-animation.js +111 -0
- package/dist/components/tree/hooks/use-tree-config.d.ts +22 -0
- package/dist/components/tree/hooks/use-tree-config.js +96 -0
- package/dist/components/tree/hooks/use-tree-search.d.ts +19 -0
- package/dist/components/tree/hooks/use-tree-search.js +57 -0
- package/dist/components/tree/hooks/use-tree-value.d.ts +16 -0
- package/dist/components/tree/hooks/use-tree-value.js +37 -0
- package/dist/components/tree/hooks/use-tree.d.ts +13 -0
- package/dist/components/tree/hooks/use-tree.js +111 -0
- package/dist/components/tree/index.d.ts +7 -0
- package/dist/components/tree/index.js +16 -0
- package/dist/components/tree/styles/tree.module.css.js +44 -0
- package/dist/components/tree/tree-content.d.ts +15 -0
- package/dist/components/tree/tree-content.js +77 -0
- package/dist/components/tree/tree-context.d.ts +19 -0
- package/dist/components/tree/tree-context.js +13 -0
- package/dist/components/tree/tree-node-list.d.ts +9 -0
- package/dist/components/tree/tree-node-list.js +21 -0
- package/dist/components/tree/tree-node.d.ts +11 -0
- package/dist/components/tree/tree-node.js +137 -0
- package/dist/components/tree/tree.d.ts +20 -0
- package/dist/components/tree/tree.js +22 -0
- package/dist/components/tree/tree.types.d.ts +126 -0
- package/dist/components/tree-select/index.d.ts +2 -0
- package/dist/components/tree-select/index.js +5 -0
- package/dist/components/tree-select/styles/tree-select.module.css.js +20 -0
- package/dist/components/tree-select/tree-select-dropdown.d.ts +9 -0
- package/dist/components/tree-select/tree-select-dropdown.js +36 -0
- package/dist/components/tree-select/tree-select-target.d.ts +18 -0
- package/dist/components/tree-select/tree-select-target.js +116 -0
- package/dist/components/tree-select/tree-select.d.ts +21 -0
- package/dist/components/tree-select/tree-select.js +201 -0
- package/dist/components/tree-select/tree-select.types.d.ts +39 -0
- package/dist/components/unstyled-button/index.d.ts +1 -0
- package/dist/components/unstyled-button/index.js +5 -0
- package/dist/components/unstyled-button/unstyled-button.d.ts +3 -0
- package/dist/components/unstyled-button/unstyled-button.js +19 -0
- package/dist/components/unstyled-button/unstyled-button.module.css.js +8 -0
- package/dist/components/virtualized-tree-select/index.d.ts +2 -0
- package/dist/components/virtualized-tree-select/index.js +5 -0
- package/dist/components/virtualized-tree-select/virtualized-tree-select.d.ts +25 -0
- package/dist/components/virtualized-tree-select/virtualized-tree-select.js +253 -0
- package/dist/components/virtualized-tree-select/virtualized-tree-select.module.css.js +20 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.js +214 -0
- package/dist/locale/ar.d.ts +2 -0
- package/dist/locale/ar.js +58 -0
- package/dist/locale/en.d.ts +2 -0
- package/dist/locale/en.js +58 -0
- package/dist/locale/index.d.ts +6 -0
- package/dist/locale/index.js +15 -0
- package/dist/locale/ko.d.ts +2 -0
- package/dist/locale/ko.js +58 -0
- package/dist/locale/types.d.ts +55 -0
- package/dist/locale/types.js +8 -0
- package/dist/locale/zh-Hans.d.ts +2 -0
- package/dist/locale/zh-Hans.js +58 -0
- package/dist/locale/zh-Hant.d.ts +2 -0
- package/dist/locale/zh-Hant.js +58 -0
- package/dist/node_modules/.pnpm/react-number-format@5.4.5_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-number-format/dist/react-number-format.es.js +572 -0
- package/dist/provider/hooks.d.ts +24 -0
- package/dist/provider/hooks.js +26 -0
- package/dist/provider/index.d.ts +7 -0
- package/dist/provider/index.js +16 -0
- package/dist/provider/ui-context.d.ts +16 -0
- package/dist/provider/ui-context.js +14 -0
- package/dist/provider/ui-link.d.ts +22 -0
- package/dist/provider/ui-link.js +10 -0
- package/dist/provider/ui-provider.d.ts +19 -0
- package/dist/provider/ui-provider.js +21 -0
- package/package.json +198 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState as w, useEffect as a, useRef as E, useCallback as _ } from "react";
|
|
3
|
+
const b = 20, k = 200;
|
|
4
|
+
function S(m, I, g, M) {
|
|
5
|
+
const [p, h] = w(
|
|
6
|
+
[]
|
|
7
|
+
);
|
|
8
|
+
a(() => {
|
|
9
|
+
I !== void 0 && h(I);
|
|
10
|
+
}, [I]);
|
|
11
|
+
const [v, A] = w([]), [D, N] = w(/* @__PURE__ */ new Map()), L = E(null), c = E(
|
|
12
|
+
/* @__PURE__ */ new Map()
|
|
13
|
+
), R = E([]);
|
|
14
|
+
a(() => {
|
|
15
|
+
const n = c.current;
|
|
16
|
+
return () => {
|
|
17
|
+
n.forEach((t) => clearTimeout(t)), n.clear();
|
|
18
|
+
};
|
|
19
|
+
}, []), a(() => {
|
|
20
|
+
m?.length && h(m);
|
|
21
|
+
}, [m]);
|
|
22
|
+
const x = _((n) => {
|
|
23
|
+
const t = L.current;
|
|
24
|
+
if (!t) return [];
|
|
25
|
+
const o = [];
|
|
26
|
+
let u;
|
|
27
|
+
try {
|
|
28
|
+
u = t.getItemInstance(n);
|
|
29
|
+
} catch {
|
|
30
|
+
return o;
|
|
31
|
+
}
|
|
32
|
+
const i = (l) => {
|
|
33
|
+
const e = l.getChildren();
|
|
34
|
+
for (const s of e)
|
|
35
|
+
o.push(s.getId()), s.isFolder() && s.isExpanded() && i(s);
|
|
36
|
+
};
|
|
37
|
+
return i(u), o;
|
|
38
|
+
}, []);
|
|
39
|
+
a(() => {
|
|
40
|
+
const n = R.current, t = p;
|
|
41
|
+
if (n === t) return;
|
|
42
|
+
const o = t.filter((i) => !n.includes(i)), u = n.filter((i) => !t.includes(i));
|
|
43
|
+
if (R.current = t, !(o.length === 0 && u.length === 0)) {
|
|
44
|
+
if (M) {
|
|
45
|
+
A(t);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
N((i) => {
|
|
49
|
+
const l = new Map(i);
|
|
50
|
+
for (const e of o) {
|
|
51
|
+
c.current.has(e) && (clearTimeout(c.current.get(e)), c.current.delete(e));
|
|
52
|
+
const s = x(e);
|
|
53
|
+
for (const r of s)
|
|
54
|
+
l.set(r, "expanding");
|
|
55
|
+
const T = setTimeout(() => {
|
|
56
|
+
N((r) => {
|
|
57
|
+
const f = new Map(r);
|
|
58
|
+
for (const d of s)
|
|
59
|
+
f.get(d) === "expanding" && f.delete(d);
|
|
60
|
+
return f;
|
|
61
|
+
});
|
|
62
|
+
}, b);
|
|
63
|
+
c.current.set(e, T);
|
|
64
|
+
}
|
|
65
|
+
for (const e of u) {
|
|
66
|
+
c.current.has(e) && (clearTimeout(c.current.get(e)), c.current.delete(e));
|
|
67
|
+
const s = x(e);
|
|
68
|
+
for (const r of s)
|
|
69
|
+
l.set(r, "collapsing");
|
|
70
|
+
const T = setTimeout(() => {
|
|
71
|
+
N((r) => {
|
|
72
|
+
const f = new Map(r);
|
|
73
|
+
for (const d of s)
|
|
74
|
+
f.get(d) === "collapsing" && f.delete(d);
|
|
75
|
+
return f;
|
|
76
|
+
}), A((r) => p.includes(e) ? r : r.filter((f) => f !== e));
|
|
77
|
+
}, k);
|
|
78
|
+
c.current.set(e, T);
|
|
79
|
+
}
|
|
80
|
+
return l;
|
|
81
|
+
}), A((i) => {
|
|
82
|
+
const l = [...t];
|
|
83
|
+
for (const e of u)
|
|
84
|
+
l.includes(e) || l.push(e);
|
|
85
|
+
return l;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}, [p, x, M]);
|
|
89
|
+
const O = _(
|
|
90
|
+
(n) => {
|
|
91
|
+
h((t) => {
|
|
92
|
+
const o = typeof n == "function" ? n(t) : n;
|
|
93
|
+
return g && setTimeout(() => {
|
|
94
|
+
g(o);
|
|
95
|
+
}, 0), o;
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
[g]
|
|
99
|
+
);
|
|
100
|
+
return {
|
|
101
|
+
expandedItems: v,
|
|
102
|
+
setExpandedItems: O,
|
|
103
|
+
animatingNodes: D,
|
|
104
|
+
treeRef: L
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export {
|
|
108
|
+
k as ANIMATION_COLLAPSE_DURATION,
|
|
109
|
+
b as ANIMATION_EXPAND_DELAY,
|
|
110
|
+
S as useTreeAnimation
|
|
111
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TreeDataNode } from '../tree.types';
|
|
2
|
+
type Setter = (v: string[] | ((old: string[]) => string[])) => void;
|
|
3
|
+
/**
|
|
4
|
+
* 将 TreeDataNode<T>[] 组装成 @headless-tree 所需的 dataLoader,调用 useTree
|
|
5
|
+
*
|
|
6
|
+
* selectedItems / checkedItems 分别受控,互不干扰
|
|
7
|
+
*/
|
|
8
|
+
export declare function useTreeConfig<T>(data: TreeDataNode<T>[], getItemId: (item: T) => string, getItemName: (item: T) => string, isItemFolder: ((item: T) => boolean) | undefined, options: {
|
|
9
|
+
selectedItems: string[];
|
|
10
|
+
setSelectedItems: Setter;
|
|
11
|
+
checkedItems: string[];
|
|
12
|
+
setCheckedItems: Setter;
|
|
13
|
+
expandedItems: string[];
|
|
14
|
+
setExpandedItems: Setter;
|
|
15
|
+
selectableFolders?: boolean;
|
|
16
|
+
propagateCheckedState: boolean;
|
|
17
|
+
selectOnLabelClick: boolean;
|
|
18
|
+
selectionMode: 'single' | 'multi';
|
|
19
|
+
expandFolderOnSelect: boolean;
|
|
20
|
+
isItemDisabled?: (item: T) => boolean;
|
|
21
|
+
}): import("@headless-tree/core").TreeInstance<T>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { syncDataLoaderFeature as N, selectionFeature as j, hotkeysCoreFeature as q, checkboxesFeature as z, searchFeature as A } from "@headless-tree/core";
|
|
3
|
+
import { useTree as G } from "@headless-tree/react";
|
|
4
|
+
import { useRef as H, useMemo as h, useCallback as g, useLayoutEffect as J } from "react";
|
|
5
|
+
import { useCustomClickBehaviorFeature as K } from "./use-custom-click-behavior-feature.js";
|
|
6
|
+
const F = "__tree_select_root__";
|
|
7
|
+
function W(I, a, x, p, S) {
|
|
8
|
+
const {
|
|
9
|
+
selectedItems: D,
|
|
10
|
+
setSelectedItems: k,
|
|
11
|
+
checkedItems: M,
|
|
12
|
+
setCheckedItems: C,
|
|
13
|
+
expandedItems: _,
|
|
14
|
+
setExpandedItems: O,
|
|
15
|
+
selectableFolders: b = !1,
|
|
16
|
+
propagateCheckedState: w,
|
|
17
|
+
selectOnLabelClick: y,
|
|
18
|
+
selectionMode: E,
|
|
19
|
+
expandFolderOnSelect: L,
|
|
20
|
+
isItemDisabled: l
|
|
21
|
+
} = S, d = H(/* @__PURE__ */ new Map()), i = h(() => {
|
|
22
|
+
const e = /* @__PURE__ */ new Map(), t = (s, n) => {
|
|
23
|
+
const f = [];
|
|
24
|
+
for (const r of s) {
|
|
25
|
+
const c = a(r.data);
|
|
26
|
+
d.current.set(c, r.data), f.push(c), r.children?.length ? t(r.children, c) : e.set(c, []);
|
|
27
|
+
}
|
|
28
|
+
e.set(n, f);
|
|
29
|
+
};
|
|
30
|
+
return t(I, F), e;
|
|
31
|
+
}, [I, a]), u = g(
|
|
32
|
+
(e) => {
|
|
33
|
+
const t = d.current.get(e);
|
|
34
|
+
return t !== void 0 && !!l?.(t);
|
|
35
|
+
},
|
|
36
|
+
[l]
|
|
37
|
+
), o = g(
|
|
38
|
+
(e, t) => (s) => e((n) => {
|
|
39
|
+
const r = (typeof s == "function" ? s(n) : s).filter((R) => !u(R));
|
|
40
|
+
if (!t) return r;
|
|
41
|
+
const c = n.filter(u);
|
|
42
|
+
return [.../* @__PURE__ */ new Set([...r, ...c])];
|
|
43
|
+
}),
|
|
44
|
+
[u]
|
|
45
|
+
), T = h(
|
|
46
|
+
() => o(k, !1),
|
|
47
|
+
[o, k]
|
|
48
|
+
), v = h(
|
|
49
|
+
() => o(C, !0),
|
|
50
|
+
[o, C]
|
|
51
|
+
), B = K({
|
|
52
|
+
selectableFolders: b,
|
|
53
|
+
selectOnLabelClick: y,
|
|
54
|
+
selectionMode: E,
|
|
55
|
+
expandFolderOnSelect: L,
|
|
56
|
+
isItemDisabled: l
|
|
57
|
+
}), m = G({
|
|
58
|
+
rootItemId: F,
|
|
59
|
+
getItemName: (e) => {
|
|
60
|
+
const t = e.getItemData();
|
|
61
|
+
return t != null ? x(t) : "";
|
|
62
|
+
},
|
|
63
|
+
isItemFolder: (e) => {
|
|
64
|
+
const t = e.getItemData();
|
|
65
|
+
if (t == null) return !1;
|
|
66
|
+
if (p)
|
|
67
|
+
return p(t);
|
|
68
|
+
const s = a(t), n = i.get(s);
|
|
69
|
+
return n ? n.length > 0 : !1;
|
|
70
|
+
},
|
|
71
|
+
dataLoader: {
|
|
72
|
+
getItem: (e) => d.current.get(e),
|
|
73
|
+
getChildren: (e) => i.get(e) ?? []
|
|
74
|
+
},
|
|
75
|
+
state: { selectedItems: D, checkedItems: M, expandedItems: _ },
|
|
76
|
+
setSelectedItems: T,
|
|
77
|
+
setCheckedItems: v,
|
|
78
|
+
setExpandedItems: O,
|
|
79
|
+
canCheckFolders: b,
|
|
80
|
+
propagateCheckedState: w,
|
|
81
|
+
features: [
|
|
82
|
+
N,
|
|
83
|
+
j,
|
|
84
|
+
q,
|
|
85
|
+
z,
|
|
86
|
+
A,
|
|
87
|
+
B
|
|
88
|
+
]
|
|
89
|
+
});
|
|
90
|
+
return J(() => {
|
|
91
|
+
m.rebuildTree();
|
|
92
|
+
}, [i, m]), m;
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
W as useTreeConfig
|
|
96
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TreeDataNode } from '../tree.types';
|
|
2
|
+
interface UseTreeSearchProps<T> {
|
|
3
|
+
data: TreeDataNode<T>[];
|
|
4
|
+
getItemId: (item: T) => string;
|
|
5
|
+
getItemName: (item: T) => string;
|
|
6
|
+
searchable: boolean;
|
|
7
|
+
setExpandedItems: (updater: string[] | ((old: string[]) => string[])) => void;
|
|
8
|
+
searchValue?: string;
|
|
9
|
+
onSearchValueChange?: (value: string) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 提供树节点的搜索功能与过滤逻辑
|
|
13
|
+
*/
|
|
14
|
+
export declare function useTreeSearch<T>({ data, getItemId, getItemName, searchable, setExpandedItems, searchValue: controlledSearchValue, onSearchValueChange, }: UseTreeSearchProps<T>): {
|
|
15
|
+
searchValue: string;
|
|
16
|
+
setSearchValue: (val: string) => void;
|
|
17
|
+
filteredData: TreeDataNode<T>[];
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState as K, useCallback as M, useMemo as m } from "react";
|
|
3
|
+
function A({
|
|
4
|
+
data: l,
|
|
5
|
+
getItemId: f,
|
|
6
|
+
getItemName: u,
|
|
7
|
+
searchable: d,
|
|
8
|
+
setExpandedItems: h,
|
|
9
|
+
searchValue: o,
|
|
10
|
+
onSearchValueChange: w
|
|
11
|
+
}) {
|
|
12
|
+
const [p, y] = K(""), i = o !== void 0 ? o : p, E = M(
|
|
13
|
+
(e) => {
|
|
14
|
+
o === void 0 && y(e), w?.(e);
|
|
15
|
+
},
|
|
16
|
+
[o, w]
|
|
17
|
+
), D = m(() => {
|
|
18
|
+
const e = (c, a) => {
|
|
19
|
+
const r = [], s = /* @__PURE__ */ new Set(), k = a.toLowerCase();
|
|
20
|
+
for (const t of c) {
|
|
21
|
+
const x = f(t.data), C = u(t.data).toLowerCase().includes(k);
|
|
22
|
+
let n;
|
|
23
|
+
if (t.children && t.children.length > 0) {
|
|
24
|
+
const { resultData: T, keysToExpand: L } = e(
|
|
25
|
+
t.children,
|
|
26
|
+
a
|
|
27
|
+
);
|
|
28
|
+
T.length > 0 && (n = T), L.forEach((v) => s.add(v));
|
|
29
|
+
}
|
|
30
|
+
(C || n && n.length > 0) && (r.push({ ...t, children: n }), n && n.length > 0 && s.add(x));
|
|
31
|
+
}
|
|
32
|
+
return { resultData: r, keysToExpand: s };
|
|
33
|
+
};
|
|
34
|
+
return e;
|
|
35
|
+
}, [f, u]), S = m(() => {
|
|
36
|
+
if (!d || !i.trim())
|
|
37
|
+
return l;
|
|
38
|
+
const { resultData: e, keysToExpand: c } = D(
|
|
39
|
+
l,
|
|
40
|
+
i.trim()
|
|
41
|
+
);
|
|
42
|
+
return c.size > 0 && setTimeout(() => {
|
|
43
|
+
h((a) => {
|
|
44
|
+
const r = new Set(a);
|
|
45
|
+
return c.forEach((s) => r.add(s)), Array.from(r);
|
|
46
|
+
});
|
|
47
|
+
}, 0), e;
|
|
48
|
+
}, [l, i, d, D, h]);
|
|
49
|
+
return {
|
|
50
|
+
searchValue: i,
|
|
51
|
+
setSearchValue: E,
|
|
52
|
+
filteredData: S
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
A as useTreeSearch
|
|
57
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type Setter = (v: string[] | ((old: string[]) => string[])) => void;
|
|
2
|
+
/**
|
|
3
|
+
* 受控/非受控 value 桥接
|
|
4
|
+
*
|
|
5
|
+
* 外部统一用 value/defaultValue/onChange,
|
|
6
|
+
* 内部拆成 selectedItems + checkedItems 两个独立受控状态给 headless-tree。
|
|
7
|
+
* 非活跃模式的 setter 是 noop,防止跨模式误触发 onChange。
|
|
8
|
+
*/
|
|
9
|
+
export declare function useTreeValue(valueProp: string | string[] | undefined, defaultValue: string | string[] | undefined, onChange: ((v: string | string[]) => void) | undefined, selectionMode: 'single' | 'multi'): {
|
|
10
|
+
selectedItems: string[];
|
|
11
|
+
setSelectedItems: Setter;
|
|
12
|
+
checkedItems: string[];
|
|
13
|
+
setCheckedItems: Setter;
|
|
14
|
+
clear: () => void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState as a, useCallback as l } from "react";
|
|
3
|
+
const m = () => {
|
|
4
|
+
};
|
|
5
|
+
function u(e) {
|
|
6
|
+
return e === void 0 ? [] : Array.isArray(e) ? e : e ? [e] : [];
|
|
7
|
+
}
|
|
8
|
+
function b(e, d, c, I) {
|
|
9
|
+
const t = e !== void 0, [k, f] = a(() => u(d)), i = t ? u(e) : k, n = I === "single", r = l(
|
|
10
|
+
(s) => typeof s == "function" ? s(i) : s,
|
|
11
|
+
[i]
|
|
12
|
+
), S = l(
|
|
13
|
+
(s) => {
|
|
14
|
+
const o = r(s);
|
|
15
|
+
t || f(o), c?.(o[0] ?? "");
|
|
16
|
+
},
|
|
17
|
+
[r, t, c]
|
|
18
|
+
), x = l(
|
|
19
|
+
(s) => {
|
|
20
|
+
const o = r(s);
|
|
21
|
+
t || f(o), c?.(o);
|
|
22
|
+
},
|
|
23
|
+
[r, t, c]
|
|
24
|
+
), y = l(() => {
|
|
25
|
+
t || f([]), c?.(n ? "" : []);
|
|
26
|
+
}, [t, n, c]);
|
|
27
|
+
return {
|
|
28
|
+
selectedItems: n ? i : [],
|
|
29
|
+
setSelectedItems: n ? S : m,
|
|
30
|
+
checkedItems: n ? [] : i,
|
|
31
|
+
setCheckedItems: n ? m : x,
|
|
32
|
+
clear: y
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
b as useTreeValue
|
|
37
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TreeContextValue } from '../tree-context';
|
|
2
|
+
import { TreeBaseProps } from '../tree.types';
|
|
3
|
+
export interface UseTreeReturn<T> extends TreeContextValue<T> {
|
|
4
|
+
selectedItems: string[];
|
|
5
|
+
checkedItems: string[];
|
|
6
|
+
setCheckedItems: (v: string[] | ((old: string[]) => string[])) => void;
|
|
7
|
+
clear: () => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 封装了 Tree 状态和逻辑的综合 Hook
|
|
11
|
+
* 既可以在 Tree 内部使用,也可以在外部(如 TreeSelect)调用后将 context 传给 Tree
|
|
12
|
+
*/
|
|
13
|
+
export declare function useTree<T>(props: TreeBaseProps<T>): UseTreeReturn<T>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useLayoutEffect as j, useImperativeHandle as q } from "react";
|
|
3
|
+
import { useTreeAnimation as w, ANIMATION_COLLAPSE_DURATION as B } from "./use-tree-animation.js";
|
|
4
|
+
import { useTreeConfig as G } from "./use-tree-config.js";
|
|
5
|
+
import { useTreeSearch as J } from "./use-tree-search.js";
|
|
6
|
+
import { useTreeValue as K } from "./use-tree-value.js";
|
|
7
|
+
function $(s) {
|
|
8
|
+
const {
|
|
9
|
+
data: i,
|
|
10
|
+
getItemId: r,
|
|
11
|
+
getItemName: a,
|
|
12
|
+
isItemFolder: I,
|
|
13
|
+
getItemIcon: h,
|
|
14
|
+
isItemDisabled: o,
|
|
15
|
+
value: f,
|
|
16
|
+
defaultValue: p,
|
|
17
|
+
onChange: g,
|
|
18
|
+
selectionMode: t = "single",
|
|
19
|
+
classNames: T = {},
|
|
20
|
+
searchable: C = !0,
|
|
21
|
+
renderNode: S,
|
|
22
|
+
selectableFolders: V = !0,
|
|
23
|
+
propagateCheckedState: x = !0,
|
|
24
|
+
selectOnLabelClick: N = t === "single",
|
|
25
|
+
expandFolderOnSelect: b = !0,
|
|
26
|
+
defaultExpandedIds: k,
|
|
27
|
+
expandedIds: A,
|
|
28
|
+
onExpandedIdsChange: E,
|
|
29
|
+
lazyMode: O,
|
|
30
|
+
searchValue: L,
|
|
31
|
+
onSearchValueChange: y
|
|
32
|
+
} = s, {
|
|
33
|
+
selectedItems: l,
|
|
34
|
+
setSelectedItems: D,
|
|
35
|
+
checkedItems: c,
|
|
36
|
+
setCheckedItems: n,
|
|
37
|
+
clear: F
|
|
38
|
+
} = K(
|
|
39
|
+
f,
|
|
40
|
+
p,
|
|
41
|
+
g,
|
|
42
|
+
t
|
|
43
|
+
), { expandedItems: M, setExpandedItems: d, animatingNodes: R, treeRef: m } = w(
|
|
44
|
+
k,
|
|
45
|
+
A,
|
|
46
|
+
E,
|
|
47
|
+
O
|
|
48
|
+
), { searchValue: v, setSearchValue: _, filteredData: z } = J({
|
|
49
|
+
data: i,
|
|
50
|
+
getItemId: r,
|
|
51
|
+
getItemName: a,
|
|
52
|
+
searchable: C,
|
|
53
|
+
setExpandedItems: d,
|
|
54
|
+
searchValue: L,
|
|
55
|
+
onSearchValueChange: y
|
|
56
|
+
}), e = G(
|
|
57
|
+
z,
|
|
58
|
+
r,
|
|
59
|
+
a,
|
|
60
|
+
I,
|
|
61
|
+
{
|
|
62
|
+
selectedItems: l,
|
|
63
|
+
setSelectedItems: D,
|
|
64
|
+
checkedItems: c,
|
|
65
|
+
setCheckedItems: n,
|
|
66
|
+
expandedItems: M,
|
|
67
|
+
setExpandedItems: d,
|
|
68
|
+
selectableFolders: V,
|
|
69
|
+
propagateCheckedState: x,
|
|
70
|
+
selectOnLabelClick: N,
|
|
71
|
+
selectionMode: t,
|
|
72
|
+
expandFolderOnSelect: b,
|
|
73
|
+
isItemDisabled: o
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
return j(() => {
|
|
77
|
+
m.current = e;
|
|
78
|
+
}, [e, m]), q(
|
|
79
|
+
s.apiRef,
|
|
80
|
+
() => ({
|
|
81
|
+
scrollToItem: (H, P) => {
|
|
82
|
+
const U = P ?? { block: "nearest" }, u = () => {
|
|
83
|
+
try {
|
|
84
|
+
e.getItemInstance(H)?.scrollTo(U);
|
|
85
|
+
} catch {
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
u(), setTimeout(u, B + 50);
|
|
89
|
+
}
|
|
90
|
+
}),
|
|
91
|
+
[e]
|
|
92
|
+
), {
|
|
93
|
+
tree: e,
|
|
94
|
+
selectionMode: t,
|
|
95
|
+
classNames: T,
|
|
96
|
+
renderNode: S,
|
|
97
|
+
getItemName: a,
|
|
98
|
+
getItemIcon: h,
|
|
99
|
+
isItemDisabled: o,
|
|
100
|
+
animatingNodes: R,
|
|
101
|
+
searchValue: v,
|
|
102
|
+
setSearchValue: _,
|
|
103
|
+
selectedItems: l,
|
|
104
|
+
checkedItems: c,
|
|
105
|
+
setCheckedItems: n,
|
|
106
|
+
clear: F
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export {
|
|
110
|
+
$ as useTree
|
|
111
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { TreeContextProvider as o, useTreeContext as t } from "./tree-context.js";
|
|
3
|
+
import { TreeNode as T } from "./tree-node.js";
|
|
4
|
+
import { TreeNodeList as m } from "./tree-node-list.js";
|
|
5
|
+
import { TreeContent as n } from "./tree-content.js";
|
|
6
|
+
import { Tree as d } from "./tree.js";
|
|
7
|
+
import { useTree as u } from "./hooks/use-tree.js";
|
|
8
|
+
export {
|
|
9
|
+
d as Tree,
|
|
10
|
+
n as TreeContent,
|
|
11
|
+
o as TreeContextProvider,
|
|
12
|
+
T as TreeNode,
|
|
13
|
+
m as TreeNodeList,
|
|
14
|
+
u as useTree,
|
|
15
|
+
t as useTreeContext
|
|
16
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const n = "_root_16vfl_2", o = "_tree_16vfl_8", e = "_node_16vfl_17", _ = "_nodeWidth_16vfl_25", d = "_nodeContent_16vfl_35", t = "_chevronIcon_16vfl_103", l = "_chevronIconExpanded_16vfl_107", c = "_nodeIcon_16vfl_111", a = "_nodeIconDisabled_16vfl_116", i = "_nodeLabel_16vfl_121", s = "_nodeLabelDisabled_16vfl_130", r = "_nodeLabelActive_16vfl_134", v = "_nodeLabelMatching_16vfl_139", f = "_nodeAnimationWrapper_16vfl_143", p = "_isExpanding_16vfl_151", b = "_isCollapsing_16vfl_152", h = "_nodeAnimationInner_16vfl_157", I = "_searchWrap_16vfl_163", L = "_fullWidth_16vfl_168", W = {
|
|
3
|
+
root: n,
|
|
4
|
+
tree: o,
|
|
5
|
+
node: e,
|
|
6
|
+
nodeWidth: _,
|
|
7
|
+
nodeContent: d,
|
|
8
|
+
chevronIcon: t,
|
|
9
|
+
chevronIconExpanded: l,
|
|
10
|
+
nodeIcon: c,
|
|
11
|
+
nodeIconDisabled: a,
|
|
12
|
+
nodeLabel: i,
|
|
13
|
+
nodeLabelDisabled: s,
|
|
14
|
+
nodeLabelActive: r,
|
|
15
|
+
nodeLabelMatching: v,
|
|
16
|
+
nodeAnimationWrapper: f,
|
|
17
|
+
isExpanding: p,
|
|
18
|
+
isCollapsing: b,
|
|
19
|
+
nodeAnimationInner: h,
|
|
20
|
+
searchWrap: I,
|
|
21
|
+
fullWidth: L
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
t as chevronIcon,
|
|
25
|
+
l as chevronIconExpanded,
|
|
26
|
+
W as default,
|
|
27
|
+
L as fullWidth,
|
|
28
|
+
b as isCollapsing,
|
|
29
|
+
p as isExpanding,
|
|
30
|
+
e as node,
|
|
31
|
+
h as nodeAnimationInner,
|
|
32
|
+
f as nodeAnimationWrapper,
|
|
33
|
+
d as nodeContent,
|
|
34
|
+
c as nodeIcon,
|
|
35
|
+
a as nodeIconDisabled,
|
|
36
|
+
i as nodeLabel,
|
|
37
|
+
r as nodeLabelActive,
|
|
38
|
+
s as nodeLabelDisabled,
|
|
39
|
+
v as nodeLabelMatching,
|
|
40
|
+
_ as nodeWidth,
|
|
41
|
+
n as root,
|
|
42
|
+
I as searchWrap,
|
|
43
|
+
o as tree
|
|
44
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TreeContentProps {
|
|
3
|
+
readonly searchable?: boolean;
|
|
4
|
+
/** 是否在挂载时自动聚焦搜索框(通常用于下拉面板等需要抢占焦点的场景) */
|
|
5
|
+
readonly autoFocusSearch?: boolean;
|
|
6
|
+
/** 搜索框占位文案,默认 `common:search` */
|
|
7
|
+
readonly searchPlaceholder?: string;
|
|
8
|
+
/** 渲染在搜索框与节点列表之间的自定义区域(如全选行) */
|
|
9
|
+
readonly topSlot?: React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 纯表现层的树内容区域
|
|
13
|
+
* 依赖外部提供的 TreeContext
|
|
14
|
+
*/
|
|
15
|
+
export declare function TreeContent({ searchable, autoFocusSearch, searchPlaceholder, topSlot, }: TreeContentProps): React.JSX.Element;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as D, Fragment as y, jsx as o } from "react/jsx-runtime";
|
|
3
|
+
import { useRef as w, useEffect as v, useCallback as a } from "react";
|
|
4
|
+
import "../../provider/ui-context.js";
|
|
5
|
+
import { useLocale as C } from "../../provider/hooks.js";
|
|
6
|
+
import { DropDownEmptyState as x } from "../_inner/dropdown/empty-state.js";
|
|
7
|
+
import { TextInput as F } from "../text-input/text-input.js";
|
|
8
|
+
import f from "./styles/tree.module.css.js";
|
|
9
|
+
import { useTreeContext as A } from "./tree-context.js";
|
|
10
|
+
import { TreeNodeList as S } from "./tree-node-list.js";
|
|
11
|
+
function V({
|
|
12
|
+
searchable: r = !0,
|
|
13
|
+
autoFocusSearch: m = !1,
|
|
14
|
+
searchPlaceholder: l,
|
|
15
|
+
topSlot: p
|
|
16
|
+
}) {
|
|
17
|
+
const i = C(), { tree: t, searchValue: u, setSearchValue: c } = A(), s = w(null), d = r && u.trim().length > 0 && t.getItems().length === 0;
|
|
18
|
+
v(() => {
|
|
19
|
+
if (r && m) {
|
|
20
|
+
let e;
|
|
21
|
+
return e = requestAnimationFrame(() => {
|
|
22
|
+
e = requestAnimationFrame(() => {
|
|
23
|
+
s.current?.focus();
|
|
24
|
+
});
|
|
25
|
+
}), () => cancelAnimationFrame(e);
|
|
26
|
+
}
|
|
27
|
+
}, [r, m]);
|
|
28
|
+
const h = a(
|
|
29
|
+
(e) => {
|
|
30
|
+
c(e.target.value);
|
|
31
|
+
},
|
|
32
|
+
[c]
|
|
33
|
+
), g = a(
|
|
34
|
+
(e) => {
|
|
35
|
+
if (e.key === "ArrowDown") {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
const n = t.getItems()[0];
|
|
38
|
+
n && (n.setFocused(), t.updateDomFocus());
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
[t]
|
|
42
|
+
), I = a(
|
|
43
|
+
(e) => {
|
|
44
|
+
if (e.key !== "ArrowUp" || !r) return;
|
|
45
|
+
const n = t.getItems();
|
|
46
|
+
if (n[0]) {
|
|
47
|
+
try {
|
|
48
|
+
if (t.getFocusedItem().getId() !== n[0].getId()) return;
|
|
49
|
+
} catch {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
e.nativeEvent.stopImmediatePropagation(), e.preventDefault(), s.current?.focus();
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
[t, r]
|
|
56
|
+
);
|
|
57
|
+
return /* @__PURE__ */ D(y, { children: [
|
|
58
|
+
r && /* @__PURE__ */ o("div", { className: f.searchWrap, children: /* @__PURE__ */ o(
|
|
59
|
+
F,
|
|
60
|
+
{
|
|
61
|
+
ref: s,
|
|
62
|
+
placeholder: l ?? i.search,
|
|
63
|
+
size: "sm",
|
|
64
|
+
value: u,
|
|
65
|
+
onChange: h,
|
|
66
|
+
onKeyDown: g,
|
|
67
|
+
leftIconName: "search",
|
|
68
|
+
className: f.fullWidth
|
|
69
|
+
}
|
|
70
|
+
) }),
|
|
71
|
+
p,
|
|
72
|
+
d ? /* @__PURE__ */ o(x, { text: i.noSearchResult }) : /* @__PURE__ */ o(S, { onKeyDownCapture: I })
|
|
73
|
+
] });
|
|
74
|
+
}
|
|
75
|
+
export {
|
|
76
|
+
V as TreeContent
|
|
77
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TreeInstance } from '@headless-tree/core';
|
|
2
|
+
import { TreeBaseProps, TreeClassNames } from './tree.types';
|
|
3
|
+
export interface TreeContextValue<T = unknown> {
|
|
4
|
+
tree: TreeInstance<T>;
|
|
5
|
+
selectionMode: 'single' | 'multi';
|
|
6
|
+
classNames: TreeClassNames;
|
|
7
|
+
renderNode?: TreeBaseProps<T>['renderNode'];
|
|
8
|
+
getItemName: (item: T) => string;
|
|
9
|
+
getItemIcon?: TreeBaseProps<T>['getItemIcon'];
|
|
10
|
+
isItemDisabled?: TreeBaseProps<T>['isItemDisabled'];
|
|
11
|
+
animatingNodes: Map<string, 'expanding' | 'collapsing'>;
|
|
12
|
+
searchValue: string;
|
|
13
|
+
setSearchValue: (value: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const TreeContextProvider: import("react").Provider<TreeContextValue<any> | null>;
|
|
16
|
+
/**
|
|
17
|
+
* 获取 Tree 上下文
|
|
18
|
+
*/
|
|
19
|
+
export declare function useTreeContext<T = unknown>(): TreeContextValue<T>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext as r, useContext as o } from "react";
|
|
3
|
+
const t = r(null), s = t.Provider;
|
|
4
|
+
function i() {
|
|
5
|
+
const e = o(t);
|
|
6
|
+
if (!e)
|
|
7
|
+
throw new Error("useTreeContext must be used inside TreeContextProvider");
|
|
8
|
+
return e;
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
s as TreeContextProvider,
|
|
12
|
+
i as useTreeContext
|
|
13
|
+
};
|