@xihan-ui/vue 4.2.0 → 5.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/CHANGELOG.md +788 -0
- package/dist/components/accordion/accordion.d.ts +7 -1
- package/dist/components/accordion/accordion.d.ts.map +1 -1
- package/dist/components/accordion/accordion.js +17 -10
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/accordion/use-accordion.d.ts +1 -1
- package/dist/components/accordion/use-accordion.js +1 -1
- package/dist/components/affix/affix.d.ts +1 -1
- package/dist/components/affix/use-affix.d.ts +1 -1
- package/dist/components/affix/use-affix.js +1 -1
- package/dist/components/alert/alert.d.ts +1 -1
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/alert.js +7 -1
- package/dist/components/alert/alert.js.map +1 -1
- package/dist/components/alert/use-alert.js +10 -3
- package/dist/components/alert/use-alert.js.map +1 -1
- package/dist/components/anchor/anchor.d.ts +1 -1
- package/dist/components/anchor/use-anchor.d.ts +1 -1
- package/dist/components/anchor/use-anchor.js +1 -1
- package/dist/components/approval/approval.d.ts +1 -1
- package/dist/components/approval/approval.d.ts.map +1 -1
- package/dist/components/approval/approval.js +7 -1
- package/dist/components/approval/approval.js.map +1 -1
- package/dist/components/approval/use-approval.d.ts +4 -1
- package/dist/components/approval/use-approval.d.ts.map +1 -1
- package/dist/components/approval/use-approval.js +10 -3
- package/dist/components/approval/use-approval.js.map +1 -1
- package/dist/components/avatar/avatar.d.ts +1 -1
- package/dist/components/avatar/use-avatar.d.ts +1 -1
- package/dist/components/avatar/use-avatar.js +1 -1
- package/dist/components/avatar-group/avatar-group.js +1 -1
- package/dist/components/avatar-group/context.d.ts +1 -1
- package/dist/components/back-top/back-top.d.ts +1 -1
- package/dist/components/back-top/use-back-top.d.ts +1 -1
- package/dist/components/back-top/use-back-top.js +1 -1
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/badge/badge.js +1 -1
- package/dist/components/bar-code/bar-code.d.ts +2 -2
- package/dist/components/bar-code/bar-code.js +1 -1
- package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +19 -23
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/use-breadcrumb.d.ts +1 -1
- package/dist/components/breadcrumb/use-breadcrumb.js +1 -1
- package/dist/components/button-group/button-group.js +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar-picker/calendar-picker.d.ts +2 -2
- package/dist/components/calendar-picker/calendar-picker.d.ts.map +1 -1
- package/dist/components/calendar-picker/calendar-picker.js +1 -0
- package/dist/components/calendar-picker/calendar-picker.js.map +1 -1
- package/dist/components/calendar-picker/use-calendar-picker.d.ts +1 -1
- package/dist/components/calendar-picker/use-calendar-picker.js +1 -1
- package/dist/components/calendar-range-picker/calendar-range-picker.d.ts +2 -2
- package/dist/components/calendar-range-picker/calendar-range-picker.d.ts.map +1 -1
- package/dist/components/calendar-range-picker/calendar-range-picker.js +1 -0
- package/dist/components/calendar-range-picker/calendar-range-picker.js.map +1 -1
- package/dist/components/calendar-range-picker/use-calendar-range-picker.d.ts +1 -1
- package/dist/components/calendar-range-picker/use-calendar-range-picker.js +1 -1
- package/dist/components/card/card.d.ts +15 -9
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/card.js +24 -2
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/card/context.d.ts +1 -1
- package/dist/components/carousel/carousel.d.ts +1 -1
- package/dist/components/carousel/use-carousel.d.ts +1 -1
- package/dist/components/carousel/use-carousel.js +1 -1
- package/dist/components/cartesian-chart/cartesian-chart.d.ts +6 -6
- package/dist/components/cartesian-chart/use-cartesian-chart.d.ts +1 -1
- package/dist/components/cartesian-chart/use-cartesian-chart.js +1 -1
- package/dist/components/cascader/cascader.d.ts +32 -1
- package/dist/components/cascader/cascader.d.ts.map +1 -1
- package/dist/components/cascader/cascader.js +105 -28
- package/dist/components/cascader/cascader.js.map +1 -1
- package/dist/components/cascader/use-cascader.d.ts +6 -1
- package/dist/components/cascader/use-cascader.d.ts.map +1 -1
- package/dist/components/cascader/use-cascader.js +4 -1
- package/dist/components/cascader/use-cascader.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +9 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +33 -2
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/checkbox/use-checkbox.d.ts +1 -1
- package/dist/components/checkbox/use-checkbox.js +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts +18 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.js +46 -18
- package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/components/checkbox-group/use-checkbox-group.d.ts +1 -1
- package/dist/components/checkbox-group/use-checkbox-group.js +1 -1
- package/dist/components/citation/citation.d.ts +1 -1
- package/dist/components/citation/citation.js +1 -1
- package/dist/components/citation/context.d.ts +1 -1
- package/dist/components/citation/use-citation.d.ts +1 -1
- package/dist/components/citation/use-citation.js +1 -1
- package/dist/components/clipboard/clipboard.d.ts +1 -1
- package/dist/components/clipboard/clipboard.d.ts.map +1 -1
- package/dist/components/clipboard/clipboard.js +5 -1
- package/dist/components/clipboard/clipboard.js.map +1 -1
- package/dist/components/clipboard/use-clipboard.d.ts +6 -1
- package/dist/components/clipboard/use-clipboard.d.ts.map +1 -1
- package/dist/components/clipboard/use-clipboard.js +7 -2
- package/dist/components/clipboard/use-clipboard.js.map +1 -1
- package/dist/components/code-view/code-view.d.ts +1 -1
- package/dist/components/code-view/code-view.js +1 -1
- package/dist/components/code-view/use-code-view.d.ts +1 -1
- package/dist/components/code-view/use-code-view.js +1 -1
- package/dist/components/collapsible/collapsible.d.ts +1 -1
- package/dist/components/collapsible/use-collapsible.d.ts +1 -1
- package/dist/components/collapsible/use-collapsible.js +1 -1
- package/dist/components/color-field/color-field.d.ts +19 -1
- package/dist/components/color-field/color-field.d.ts.map +1 -1
- package/dist/components/color-field/color-field.js +46 -13
- package/dist/components/color-field/color-field.js.map +1 -1
- package/dist/components/color-field/use-color-field.d.ts +6 -1
- package/dist/components/color-field/use-color-field.d.ts.map +1 -1
- package/dist/components/color-field/use-color-field.js +7 -2
- package/dist/components/color-field/use-color-field.js.map +1 -1
- package/dist/components/color-picker/color-picker.d.ts +51 -2
- package/dist/components/color-picker/color-picker.d.ts.map +1 -1
- package/dist/components/color-picker/color-picker.js +116 -25
- package/dist/components/color-picker/color-picker.js.map +1 -1
- package/dist/components/color-picker/use-color-picker.d.ts +7 -2
- package/dist/components/color-picker/use-color-picker.d.ts.map +1 -1
- package/dist/components/color-picker/use-color-picker.js +15 -5
- package/dist/components/color-picker/use-color-picker.js.map +1 -1
- package/dist/components/color-slider/color-slider.d.ts +10 -1
- package/dist/components/color-slider/color-slider.d.ts.map +1 -1
- package/dist/components/color-slider/color-slider.js +7 -1
- package/dist/components/color-slider/color-slider.js.map +1 -1
- package/dist/components/color-slider/use-color-slider.d.ts +6 -1
- package/dist/components/color-slider/use-color-slider.d.ts.map +1 -1
- package/dist/components/color-slider/use-color-slider.js +4 -1
- package/dist/components/color-slider/use-color-slider.js.map +1 -1
- package/dist/components/color-swatch/color-swatch.js +1 -1
- package/dist/components/color-swatch-picker/color-swatch-picker.d.ts +9 -1
- package/dist/components/color-swatch-picker/color-swatch-picker.d.ts.map +1 -1
- package/dist/components/color-swatch-picker/color-swatch-picker.js +36 -13
- package/dist/components/color-swatch-picker/color-swatch-picker.js.map +1 -1
- package/dist/components/color-swatch-picker/use-color-swatch-picker.d.ts +1 -1
- package/dist/components/color-swatch-picker/use-color-swatch-picker.js +1 -1
- package/dist/components/combobox/combobox.d.ts +18 -1
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.js +68 -29
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox/use-combobox.d.ts +6 -1
- package/dist/components/combobox/use-combobox.d.ts.map +1 -1
- package/dist/components/combobox/use-combobox.js +4 -1
- package/dist/components/combobox/use-combobox.js.map +1 -1
- package/dist/components/command/command.d.ts +6 -6
- package/dist/components/command/command.d.ts.map +1 -1
- package/dist/components/command/command.js +57 -28
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/command/use-command.d.ts +2 -2
- package/dist/components/command/use-command.d.ts.map +1 -1
- package/dist/components/command/use-command.js +1 -1
- package/dist/components/command/use-command.js.map +1 -1
- package/dist/components/context-menu/context-menu.d.ts +57 -7
- package/dist/components/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu/context-menu.js +110 -62
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/context-menu/context.d.ts +1 -1
- package/dist/components/context-menu/use-context-menu.d.ts +2 -2
- package/dist/components/context-menu/use-context-menu.d.ts.map +1 -1
- package/dist/components/context-menu/use-context-menu.js +4 -4
- package/dist/components/context-menu/use-context-menu.js.map +1 -1
- package/dist/components/date-field/date-field.d.ts +18 -1
- package/dist/components/date-field/date-field.d.ts.map +1 -1
- package/dist/components/date-field/date-field.js +45 -13
- package/dist/components/date-field/date-field.js.map +1 -1
- package/dist/components/date-field/use-date-field.d.ts +6 -1
- package/dist/components/date-field/use-date-field.d.ts.map +1 -1
- package/dist/components/date-field/use-date-field.js +10 -4
- package/dist/components/date-field/use-date-field.js.map +1 -1
- package/dist/components/date-picker/date-picker.d.ts +62 -3
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.js +108 -21
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-picker/use-date-picker.d.ts +6 -1
- package/dist/components/date-picker/use-date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/use-date-picker.js +4 -1
- package/dist/components/date-picker/use-date-picker.js.map +1 -1
- package/dist/components/date-range-picker/context.js +19 -1
- package/dist/components/date-range-picker/context.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.d.ts +93 -3
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +157 -40
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/use-date-range-picker.d.ts +6 -1
- package/dist/components/date-range-picker/use-date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker/use-date-range-picker.js +4 -1
- package/dist/components/date-range-picker/use-date-range-picker.js.map +1 -1
- package/dist/components/descriptions/context.d.ts +1 -1
- package/dist/components/descriptions/descriptions.d.ts +1 -1
- package/dist/components/descriptions/descriptions.js +1 -1
- package/dist/components/dialog/dialog.d.ts +2 -2
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/dialog.js +7 -1
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/dialog/use-dialog.d.ts +4 -1
- package/dist/components/dialog/use-dialog.d.ts.map +1 -1
- package/dist/components/dialog/use-dialog.js +6 -2
- package/dist/components/dialog/use-dialog.js.map +1 -1
- package/dist/components/diff-view/diff-view.d.ts +1 -1
- package/dist/components/diff-view/diff-view.js +1 -1
- package/dist/components/diff-view/use-diff-view.d.ts +1 -1
- package/dist/components/diff-view/use-diff-view.js +1 -1
- package/dist/components/download-trigger/download-trigger.d.ts +1 -1
- package/dist/components/download-trigger/use-download-trigger.d.ts +1 -1
- package/dist/components/download-trigger/use-download-trigger.js +1 -1
- package/dist/components/drawer/drawer.d.ts +2 -2
- package/dist/components/drawer/drawer.d.ts.map +1 -1
- package/dist/components/drawer/drawer.js +7 -1
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/drawer/use-drawer.d.ts +4 -1
- package/dist/components/drawer/use-drawer.d.ts.map +1 -1
- package/dist/components/drawer/use-drawer.js +6 -2
- package/dist/components/drawer/use-drawer.js.map +1 -1
- package/dist/components/editable/editable.d.ts +9 -1
- package/dist/components/editable/editable.d.ts.map +1 -1
- package/dist/components/editable/editable.js +7 -1
- package/dist/components/editable/editable.js.map +1 -1
- package/dist/components/editable/use-editable.d.ts +6 -1
- package/dist/components/editable/use-editable.d.ts.map +1 -1
- package/dist/components/editable/use-editable.js +6 -2
- package/dist/components/editable/use-editable.js.map +1 -1
- package/dist/components/empty-state/empty-state.d.ts +1 -1
- package/dist/components/empty-state/use-empty-state.js +1 -1
- package/dist/components/expression-input/context.d.ts +7 -0
- package/dist/components/expression-input/context.d.ts.map +1 -0
- package/dist/components/expression-input/context.js +15 -0
- package/dist/components/expression-input/context.js.map +1 -0
- package/dist/components/expression-input/expression-input.d.ts +294 -0
- package/dist/components/expression-input/expression-input.d.ts.map +1 -0
- package/dist/components/expression-input/expression-input.js +307 -0
- package/dist/components/expression-input/expression-input.js.map +1 -0
- package/dist/components/expression-input/use-expression-input.d.ts +26 -0
- package/dist/components/expression-input/use-expression-input.d.ts.map +1 -0
- package/dist/components/expression-input/use-expression-input.js +72 -0
- package/dist/components/expression-input/use-expression-input.js.map +1 -0
- package/dist/components/field/boundary.d.ts +12 -0
- package/dist/components/field/boundary.d.ts.map +1 -0
- package/dist/components/field/boundary.js +19 -0
- package/dist/components/field/boundary.js.map +1 -0
- package/dist/components/field/field.d.ts +32 -10
- package/dist/components/field/field.d.ts.map +1 -1
- package/dist/components/field/field.js +51 -20
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/field/use-field-control.d.ts.map +1 -1
- package/dist/components/field/use-field-control.js +5 -25
- package/dist/components/field/use-field-control.js.map +1 -1
- package/dist/components/field/use-field.d.ts +6 -2
- package/dist/components/field/use-field.d.ts.map +1 -1
- package/dist/components/field/use-field.js +45 -4
- package/dist/components/field/use-field.js.map +1 -1
- package/dist/components/field-array/context.d.ts +1 -1
- package/dist/components/field-array/field-array.d.ts +87 -2
- package/dist/components/field-array/field-array.d.ts.map +1 -1
- package/dist/components/field-array/field-array.js +107 -3
- package/dist/components/field-array/field-array.js.map +1 -1
- package/dist/components/field-array/use-field-array.d.ts +4 -2
- package/dist/components/field-array/use-field-array.d.ts.map +1 -1
- package/dist/components/field-array/use-field-array.js +6 -2
- package/dist/components/field-array/use-field-array.js.map +1 -1
- package/dist/components/fieldset/fieldset.d.ts +23 -8
- package/dist/components/fieldset/fieldset.d.ts.map +1 -1
- package/dist/components/fieldset/fieldset.js +39 -4
- package/dist/components/fieldset/fieldset.js.map +1 -1
- package/dist/components/fieldset/use-fieldset.d.ts +6 -2
- package/dist/components/fieldset/use-fieldset.d.ts.map +1 -1
- package/dist/components/fieldset/use-fieldset.js +38 -4
- package/dist/components/fieldset/use-fieldset.js.map +1 -1
- package/dist/components/file-upload/file-upload.d.ts +56 -2
- package/dist/components/file-upload/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload/file-upload.js +81 -6
- package/dist/components/file-upload/file-upload.js.map +1 -1
- package/dist/components/file-upload/use-file-upload.d.ts +6 -1
- package/dist/components/file-upload/use-file-upload.d.ts.map +1 -1
- package/dist/components/file-upload/use-file-upload.js +10 -4
- package/dist/components/file-upload/use-file-upload.js.map +1 -1
- package/dist/components/filter-builder/context.js +35 -0
- package/dist/components/filter-builder/context.js.map +1 -0
- package/dist/components/filter-builder/filter-builder.d.ts +216 -0
- package/dist/components/filter-builder/filter-builder.d.ts.map +1 -0
- package/dist/components/filter-builder/filter-builder.js +322 -0
- package/dist/components/filter-builder/filter-builder.js.map +1 -0
- package/dist/components/filter-builder/use-filter-builder.d.ts +16 -0
- package/dist/components/filter-builder/use-filter-builder.d.ts.map +1 -0
- package/dist/components/filter-builder/use-filter-builder.js +27 -0
- package/dist/components/filter-builder/use-filter-builder.js.map +1 -0
- package/dist/components/flex/context.d.ts +1 -1
- package/dist/components/flex/flex.d.ts +1 -1
- package/dist/components/flex/flex.js +1 -1
- package/dist/components/float-button/float-button.d.ts +1 -1
- package/dist/components/float-button/use-float-button.d.ts +1 -1
- package/dist/components/float-button/use-float-button.js +1 -1
- package/dist/components/floating-panel/floating-panel.d.ts +5 -1
- package/dist/components/floating-panel/floating-panel.d.ts.map +1 -1
- package/dist/components/floating-panel/floating-panel.js +8 -2
- package/dist/components/floating-panel/floating-panel.js.map +1 -1
- package/dist/components/floating-panel/use-floating-panel.d.ts +6 -3
- package/dist/components/floating-panel/use-floating-panel.d.ts.map +1 -1
- package/dist/components/floating-panel/use-floating-panel.js +6 -2
- package/dist/components/floating-panel/use-floating-panel.js.map +1 -1
- package/dist/components/form/form.d.ts +1 -1
- package/dist/components/form/form.js +1 -1
- package/dist/components/form/use-form.d.ts +1 -1
- package/dist/components/form/use-form.js +1 -1
- package/dist/components/format-input/context.js +15 -0
- package/dist/components/format-input/context.js.map +1 -0
- package/dist/components/format-input/format-input.d.ts +189 -0
- package/dist/components/format-input/format-input.d.ts.map +1 -0
- package/dist/components/format-input/format-input.js +189 -0
- package/dist/components/format-input/format-input.js.map +1 -0
- package/dist/components/format-input/use-format-input.d.ts +16 -0
- package/dist/components/format-input/use-format-input.d.ts.map +1 -0
- package/dist/components/format-input/use-format-input.js +27 -0
- package/dist/components/format-input/use-format-input.js.map +1 -0
- package/dist/components/funnel-chart/funnel-chart.d.ts +6 -6
- package/dist/components/funnel-chart/use-funnel-chart.d.ts +1 -1
- package/dist/components/funnel-chart/use-funnel-chart.js +1 -1
- package/dist/components/graph-chart/graph-chart.d.ts +6 -6
- package/dist/components/graph-chart/use-graph-chart.d.ts +1 -1
- package/dist/components/graph-chart/use-graph-chart.js +1 -1
- package/dist/components/grid/context.d.ts +1 -1
- package/dist/components/grid/grid.d.ts +12 -2
- package/dist/components/grid/grid.d.ts.map +1 -1
- package/dist/components/grid/grid.js +8 -3
- package/dist/components/grid/grid.js.map +1 -1
- package/dist/components/grid-list/context.d.ts +1 -1
- package/dist/components/grid-list/grid-list.d.ts +1 -1
- package/dist/components/grid-list/grid-list.d.ts.map +1 -1
- package/dist/components/grid-list/grid-list.js +5 -1
- package/dist/components/grid-list/grid-list.js.map +1 -1
- package/dist/components/grid-list/use-grid-list.d.ts +7 -2
- package/dist/components/grid-list/use-grid-list.d.ts.map +1 -1
- package/dist/components/grid-list/use-grid-list.js +4 -1
- package/dist/components/grid-list/use-grid-list.js.map +1 -1
- package/dist/components/heatmap/heatmap.d.ts +40 -11
- package/dist/components/heatmap/heatmap.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.js +56 -90
- package/dist/components/heatmap/heatmap.js.map +1 -1
- package/dist/components/heatmap/use-heatmap.d.ts +2 -2
- package/dist/components/heatmap/use-heatmap.d.ts.map +1 -1
- package/dist/components/heatmap/use-heatmap.js +3 -5
- package/dist/components/heatmap/use-heatmap.js.map +1 -1
- package/dist/components/hierarchy-chart/hierarchy-chart.d.ts +4 -4
- package/dist/components/hierarchy-chart/use-hierarchy-chart.d.ts +1 -1
- package/dist/components/hierarchy-chart/use-hierarchy-chart.js +1 -1
- package/dist/components/highlight/highlight.js +1 -1
- package/dist/components/hover-card/hover-card.d.ts +1 -1
- package/dist/components/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card/hover-card.js +5 -9
- package/dist/components/hover-card/hover-card.js.map +1 -1
- package/dist/components/hover-card/use-hover-card.d.ts +4 -5
- package/dist/components/hover-card/use-hover-card.d.ts.map +1 -1
- package/dist/components/hover-card/use-hover-card.js +5 -7
- package/dist/components/hover-card/use-hover-card.js.map +1 -1
- package/dist/components/icon/icon.d.ts +2 -2
- package/dist/components/icon/icon.d.ts.map +1 -1
- package/dist/components/icon/icon.js +10 -2
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/icon/use-icon.d.ts +1 -1
- package/dist/components/icon/use-icon.js +1 -1
- package/dist/components/image/image.d.ts +1 -1
- package/dist/components/image/use-image.d.ts +1 -1
- package/dist/components/image/use-image.js +1 -1
- package/dist/components/image-cropper/image-cropper.d.ts +9 -1
- package/dist/components/image-cropper/image-cropper.d.ts.map +1 -1
- package/dist/components/image-cropper/image-cropper.js +2 -0
- package/dist/components/image-cropper/image-cropper.js.map +1 -1
- package/dist/components/image-cropper/use-image-cropper.d.ts +1 -1
- package/dist/components/image-cropper/use-image-cropper.js +1 -1
- package/dist/components/image-viewer/image-viewer.d.ts +1 -1
- package/dist/components/image-viewer/image-viewer.js +1 -1
- package/dist/components/image-viewer/use-image-viewer.d.ts +1 -1
- package/dist/components/image-viewer/use-image-viewer.js +1 -1
- package/dist/components/infinite-scroll/infinite-scroll.d.ts +1 -1
- package/dist/components/infinite-scroll/use-infinite-scroll.d.ts +1 -1
- package/dist/components/infinite-scroll/use-infinite-scroll.js +1 -1
- package/dist/components/input-group/context.d.ts +1 -1
- package/dist/components/input-group/input-group.js +1 -1
- package/dist/components/json-viewer/json-viewer.d.ts +1 -1
- package/dist/components/json-viewer/json-viewer.d.ts.map +1 -1
- package/dist/components/json-viewer/json-viewer.js +2 -1
- package/dist/components/json-viewer/json-viewer.js.map +1 -1
- package/dist/components/json-viewer/use-json-viewer.d.ts +1 -1
- package/dist/components/json-viewer/use-json-viewer.js +1 -1
- package/dist/components/kbd/kbd.d.ts +2 -1
- package/dist/components/kbd/kbd.d.ts.map +1 -1
- package/dist/components/kbd/kbd.js +1 -1
- package/dist/components/kbd/kbd.js.map +1 -1
- package/dist/components/kbd/use-kbd-platform.js +1 -1
- package/dist/components/kbd/use-kbd-platform.js.map +1 -1
- package/dist/components/layout/layout.d.ts +1 -1
- package/dist/components/layout/use-layout.d.ts +1 -1
- package/dist/components/layout/use-layout.js +1 -1
- package/dist/components/list/context.d.ts +1 -1
- package/dist/components/list/list.js +1 -1
- package/dist/components/listbox/listbox.d.ts +17 -1
- package/dist/components/listbox/listbox.d.ts.map +1 -1
- package/dist/components/listbox/listbox.js +57 -18
- package/dist/components/listbox/listbox.js.map +1 -1
- package/dist/components/listbox/use-listbox.d.ts +7 -2
- package/dist/components/listbox/use-listbox.d.ts.map +1 -1
- package/dist/components/listbox/use-listbox.js +7 -3
- package/dist/components/listbox/use-listbox.js.map +1 -1
- package/dist/components/loading-bar/loading-bar.d.ts +1 -1
- package/dist/components/loading-bar/use-loading-bar.d.ts +1 -1
- package/dist/components/loading-bar/use-loading-bar.js +1 -1
- package/dist/components/log/log.d.ts +1 -1
- package/dist/components/log/log.js +1 -1
- package/dist/components/log/use-log.d.ts +1 -1
- package/dist/components/log/use-log.js +1 -1
- package/dist/components/markdown-stream/markdown-stream.d.ts +1 -1
- package/dist/components/markdown-stream/markdown-stream.js +1 -1
- package/dist/components/markdown-stream/use-markdown-stream.d.ts +1 -1
- package/dist/components/markdown-stream/use-markdown-stream.js +1 -1
- package/dist/components/marquee/context.d.ts +1 -1
- package/dist/components/marquee/marquee.d.ts +1 -1
- package/dist/components/marquee/marquee.js +1 -1
- package/dist/components/masonry/masonry.d.ts +1 -1
- package/dist/components/masonry/masonry.js +1 -1
- package/dist/components/matrix-code/context.d.ts +1 -1
- package/dist/components/matrix-code/matrix-code.d.ts +1 -1
- package/dist/components/matrix-code/matrix-code.js +1 -1
- package/dist/components/mention/context.d.ts +1 -1
- package/dist/components/mention/mention.d.ts +25 -3
- package/dist/components/mention/mention.d.ts.map +1 -1
- package/dist/components/mention/mention.js +70 -17
- package/dist/components/mention/mention.js.map +1 -1
- package/dist/components/mention/use-mention.d.ts +7 -2
- package/dist/components/mention/use-mention.d.ts.map +1 -1
- package/dist/components/mention/use-mention.js +4 -1
- package/dist/components/mention/use-mention.js.map +1 -1
- package/dist/components/menu/context.d.ts +1 -1
- package/dist/components/menu/menu.d.ts +64 -7
- package/dist/components/menu/menu.d.ts.map +1 -1
- package/dist/components/menu/menu.js +184 -72
- package/dist/components/menu/menu.js.map +1 -1
- package/dist/components/menu/use-menu.d.ts +6 -2
- package/dist/components/menu/use-menu.d.ts.map +1 -1
- package/dist/components/menu/use-menu.js +14 -8
- package/dist/components/menu/use-menu.js.map +1 -1
- package/dist/components/menubar/context.d.ts +1 -1
- package/dist/components/menubar/menubar.d.ts +57 -7
- package/dist/components/menubar/menubar.d.ts.map +1 -1
- package/dist/components/menubar/menubar.js +121 -74
- package/dist/components/menubar/menubar.js.map +1 -1
- package/dist/components/menubar/use-menubar.d.ts +2 -2
- package/dist/components/menubar/use-menubar.d.ts.map +1 -1
- package/dist/components/menubar/use-menubar.js +4 -4
- package/dist/components/menubar/use-menubar.js.map +1 -1
- package/dist/components/message-feed/message-feed.d.ts +1 -1
- package/dist/components/message-feed/use-message-feed.d.ts +1 -1
- package/dist/components/message-feed/use-message-feed.js +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.js +22 -24
- package/dist/components/navigation-menu/navigation-menu.js.map +1 -1
- package/dist/components/navigation-menu/use-navigation-menu.d.ts +1 -1
- package/dist/components/navigation-menu/use-navigation-menu.js +1 -1
- package/dist/components/notification/context.d.ts +4 -1
- package/dist/components/notification/context.d.ts.map +1 -1
- package/dist/components/notification/context.js.map +1 -1
- package/dist/components/notification/notification.d.ts +1 -1
- package/dist/components/notification/notification.d.ts.map +1 -1
- package/dist/components/notification/notification.js +7 -1
- package/dist/components/notification/notification.js.map +1 -1
- package/dist/components/notification/use-notification.d.ts +1 -1
- package/dist/components/notification/use-notification.d.ts.map +1 -1
- package/dist/components/notification/use-notification.js +6 -2
- package/dist/components/notification/use-notification.js.map +1 -1
- package/dist/components/number-animation/number-animation.d.ts +1 -1
- package/dist/components/number-animation/number-animation.js +1 -1
- package/dist/components/number-field/number-field.d.ts +24 -1
- package/dist/components/number-field/number-field.d.ts.map +1 -1
- package/dist/components/number-field/number-field.js +44 -12
- package/dist/components/number-field/number-field.js.map +1 -1
- package/dist/components/number-field/use-number-field.d.ts +6 -1
- package/dist/components/number-field/use-number-field.d.ts.map +1 -1
- package/dist/components/number-field/use-number-field.js +7 -2
- package/dist/components/number-field/use-number-field.js.map +1 -1
- package/dist/components/page-header/context.d.ts +1 -1
- package/dist/components/page-header/page-header.js +1 -1
- package/dist/components/pagination/pagination.d.ts +1 -1
- package/dist/components/pagination/use-pagination.d.ts +1 -1
- package/dist/components/pagination/use-pagination.js +1 -1
- package/dist/components/password-input/password-input.d.ts +19 -1
- package/dist/components/password-input/password-input.d.ts.map +1 -1
- package/dist/components/password-input/password-input.js +45 -13
- package/dist/components/password-input/password-input.js.map +1 -1
- package/dist/components/password-input/use-password-input.d.ts +6 -1
- package/dist/components/password-input/use-password-input.d.ts.map +1 -1
- package/dist/components/password-input/use-password-input.js +10 -4
- package/dist/components/password-input/use-password-input.js.map +1 -1
- package/dist/components/pie-chart/pie-chart.d.ts +6 -6
- package/dist/components/pie-chart/use-pie-chart.d.ts +1 -1
- package/dist/components/pie-chart/use-pie-chart.js +1 -1
- package/dist/components/pin-input/pin-input.d.ts +19 -1
- package/dist/components/pin-input/pin-input.d.ts.map +1 -1
- package/dist/components/pin-input/pin-input.js +33 -3
- package/dist/components/pin-input/pin-input.js.map +1 -1
- package/dist/components/pin-input/use-pin-input.d.ts +6 -1
- package/dist/components/pin-input/use-pin-input.d.ts.map +1 -1
- package/dist/components/pin-input/use-pin-input.js +10 -4
- package/dist/components/pin-input/use-pin-input.js.map +1 -1
- package/dist/components/popconfirm/popconfirm.d.ts +3 -3
- package/dist/components/popconfirm/popconfirm.d.ts.map +1 -1
- package/dist/components/popconfirm/popconfirm.js +10 -4
- package/dist/components/popconfirm/popconfirm.js.map +1 -1
- package/dist/components/popconfirm/use-popconfirm.d.ts +4 -1
- package/dist/components/popconfirm/use-popconfirm.d.ts.map +1 -1
- package/dist/components/popconfirm/use-popconfirm.js +8 -4
- package/dist/components/popconfirm/use-popconfirm.js.map +1 -1
- package/dist/components/popover/popover.d.ts +10 -2
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/popover/popover.js +10 -2
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/popover/use-popover.d.ts +8 -1
- package/dist/components/popover/use-popover.d.ts.map +1 -1
- package/dist/components/popover/use-popover.js +12 -3
- package/dist/components/popover/use-popover.js.map +1 -1
- package/dist/components/progress/progress.d.ts +2 -2
- package/dist/components/progress/progress.js +1 -1
- package/dist/components/prompt-input/prompt-input.d.ts +1 -1
- package/dist/components/prompt-input/use-prompt-input.d.ts +1 -1
- package/dist/components/prompt-input/use-prompt-input.js +1 -1
- package/dist/components/question-flow/question-flow.d.ts +1 -1
- package/dist/components/question-flow/use-question-flow.d.ts +1 -1
- package/dist/components/question-flow/use-question-flow.js +1 -1
- package/dist/components/radar-chart/radar-chart.d.ts +6 -6
- package/dist/components/radar-chart/use-radar-chart.d.ts +1 -1
- package/dist/components/radar-chart/use-radar-chart.js +1 -1
- package/dist/components/radio-group/radio-group.d.ts +9 -1
- package/dist/components/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.js +44 -22
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/radio-group/use-radio-group.d.ts +1 -1
- package/dist/components/radio-group/use-radio-group.js +1 -1
- package/dist/components/rating/rating.d.ts +27 -1
- package/dist/components/rating/rating.d.ts.map +1 -1
- package/dist/components/rating/rating.js +56 -12
- package/dist/components/rating/rating.js.map +1 -1
- package/dist/components/rating/use-rating.d.ts +7 -2
- package/dist/components/rating/use-rating.d.ts.map +1 -1
- package/dist/components/rating/use-rating.js +7 -3
- package/dist/components/rating/use-rating.js.map +1 -1
- package/dist/components/reasoning/reasoning.d.ts +1 -1
- package/dist/components/reasoning/use-reasoning.d.ts +1 -1
- package/dist/components/reasoning/use-reasoning.js +1 -1
- package/dist/components/resizable/resizable.d.ts +1 -1
- package/dist/components/resizable/use-resizable.d.ts +1 -1
- package/dist/components/resizable/use-resizable.js +1 -1
- package/dist/components/sankey-chart/sankey-chart.d.ts +6 -6
- package/dist/components/sankey-chart/use-sankey-chart.d.ts +1 -1
- package/dist/components/sankey-chart/use-sankey-chart.js +1 -1
- package/dist/components/scroll-area/scroll-area.d.ts +1 -1
- package/dist/components/scroll-area/use-scroll-area.d.ts +1 -1
- package/dist/components/scroll-area/use-scroll-area.js +1 -1
- package/dist/components/scrollbar/scrollbar.d.ts +3 -3
- package/dist/components/scrollbar/use-scrollbar.d.ts +1 -1
- package/dist/components/scrollbar/use-scrollbar.js +1 -1
- package/dist/components/select/select.d.ts +33 -2
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +115 -49
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/select/use-select.d.ts +6 -1
- package/dist/components/select/use-select.d.ts.map +1 -1
- package/dist/components/select/use-select.js +4 -1
- package/dist/components/select/use-select.js.map +1 -1
- package/dist/components/separator/separator.d.ts +3 -2
- package/dist/components/separator/separator.d.ts.map +1 -1
- package/dist/components/separator/separator.js +12 -8
- package/dist/components/separator/separator.js.map +1 -1
- package/dist/components/side-nav/side-nav.d.ts +1 -1
- package/dist/components/side-nav/side-nav.js +1 -1
- package/dist/components/side-nav/use-side-nav.d.ts +1 -1
- package/dist/components/side-nav/use-side-nav.js +1 -1
- package/dist/components/signature-pad/signature-pad.d.ts +18 -1
- package/dist/components/signature-pad/signature-pad.d.ts.map +1 -1
- package/dist/components/signature-pad/signature-pad.js +57 -17
- package/dist/components/signature-pad/signature-pad.js.map +1 -1
- package/dist/components/signature-pad/use-signature-pad.d.ts +6 -1
- package/dist/components/signature-pad/use-signature-pad.d.ts.map +1 -1
- package/dist/components/signature-pad/use-signature-pad.js +6 -2
- package/dist/components/signature-pad/use-signature-pad.js.map +1 -1
- package/dist/components/skeleton/skeleton.d.ts +1 -1
- package/dist/components/skeleton/use-skeleton.js +1 -1
- package/dist/components/slider/slider.d.ts +27 -1
- package/dist/components/slider/slider.d.ts.map +1 -1
- package/dist/components/slider/slider.js +58 -9
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/slider/use-slider.d.ts +6 -1
- package/dist/components/slider/use-slider.d.ts.map +1 -1
- package/dist/components/slider/use-slider.js +6 -2
- package/dist/components/slider/use-slider.js.map +1 -1
- package/dist/components/sortable/sortable.d.ts +1 -1
- package/dist/components/sortable/use-sortable.d.ts +1 -1
- package/dist/components/sortable/use-sortable.js +1 -1
- package/dist/components/sparkline/sparkline.d.ts +1 -1
- package/dist/components/sparkline/use-sparkline.d.ts +1 -1
- package/dist/components/sparkline/use-sparkline.js +1 -1
- package/dist/components/spinner/spinner.d.ts +1 -1
- package/dist/components/spinner/use-spinner.js +1 -1
- package/dist/components/splitter/splitter.d.ts +1 -1
- package/dist/components/splitter/use-splitter.d.ts +1 -1
- package/dist/components/splitter/use-splitter.js +1 -1
- package/dist/components/statistic/context.d.ts +1 -1
- package/dist/components/statistic/statistic.d.ts +1 -1
- package/dist/components/statistic/statistic.js +1 -1
- package/dist/components/steps/steps.d.ts +1 -1
- package/dist/components/steps/use-steps.d.ts +1 -1
- package/dist/components/steps/use-steps.js +1 -1
- package/dist/components/switch/switch.d.ts +9 -1
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +30 -2
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/switch/use-switch.d.ts +1 -1
- package/dist/components/switch/use-switch.js +1 -1
- package/dist/components/table/context.js +9 -1
- package/dist/components/table/context.js.map +1 -1
- package/dist/components/table/table.d.ts +44 -11
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table/table.js +28 -7
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/use-table.d.ts +4 -2
- package/dist/components/table/use-table.d.ts.map +1 -1
- package/dist/components/table/use-table.js +10 -5
- package/dist/components/table/use-table.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +1 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js +16 -15
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/tabs/use-tabs.d.ts +1 -1
- package/dist/components/tabs/use-tabs.js +1 -1
- package/dist/components/tag/tag.d.ts +1 -1
- package/dist/components/tag/use-tag.d.ts +1 -1
- package/dist/components/tag/use-tag.js +1 -1
- package/dist/components/tag-group/context.d.ts +1 -1
- package/dist/components/tag-group/tag-group.d.ts +32 -2
- package/dist/components/tag-group/tag-group.d.ts.map +1 -1
- package/dist/components/tag-group/tag-group.js +55 -15
- package/dist/components/tag-group/tag-group.js.map +1 -1
- package/dist/components/tag-group/use-tag-group.d.ts +7 -2
- package/dist/components/tag-group/use-tag-group.d.ts.map +1 -1
- package/dist/components/tag-group/use-tag-group.js +7 -3
- package/dist/components/tag-group/use-tag-group.js.map +1 -1
- package/dist/components/tags-input/tags-input.d.ts +22 -1
- package/dist/components/tags-input/tags-input.d.ts.map +1 -1
- package/dist/components/tags-input/tags-input.js +66 -19
- package/dist/components/tags-input/tags-input.js.map +1 -1
- package/dist/components/tags-input/use-tags-input.d.ts +6 -1
- package/dist/components/tags-input/use-tags-input.d.ts.map +1 -1
- package/dist/components/tags-input/use-tags-input.js +6 -2
- package/dist/components/tags-input/use-tags-input.js.map +1 -1
- package/dist/components/text-field/text-field.d.ts +24 -2
- package/dist/components/text-field/text-field.d.ts.map +1 -1
- package/dist/components/text-field/text-field.js +60 -11
- package/dist/components/text-field/text-field.js.map +1 -1
- package/dist/components/text-field/use-text-field.d.ts +6 -1
- package/dist/components/text-field/use-text-field.d.ts.map +1 -1
- package/dist/components/text-field/use-text-field.js +7 -2
- package/dist/components/text-field/use-text-field.js.map +1 -1
- package/dist/components/time-field/time-field.d.ts +9 -1
- package/dist/components/time-field/time-field.d.ts.map +1 -1
- package/dist/components/time-field/time-field.js +7 -1
- package/dist/components/time-field/time-field.js.map +1 -1
- package/dist/components/time-field/use-time-field.d.ts +6 -1
- package/dist/components/time-field/use-time-field.d.ts.map +1 -1
- package/dist/components/time-field/use-time-field.js +10 -4
- package/dist/components/time-field/use-time-field.js.map +1 -1
- package/dist/components/time-picker/time-picker.d.ts +25 -1
- package/dist/components/time-picker/time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/time-picker.js +48 -4
- package/dist/components/time-picker/time-picker.js.map +1 -1
- package/dist/components/time-picker/use-time-picker.d.ts +6 -1
- package/dist/components/time-picker/use-time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/use-time-picker.js +4 -1
- package/dist/components/time-picker/use-time-picker.js.map +1 -1
- package/dist/components/time-range-picker/time-range-picker.d.ts +35 -1
- package/dist/components/time-range-picker/time-range-picker.d.ts.map +1 -1
- package/dist/components/time-range-picker/time-range-picker.js +47 -5
- package/dist/components/time-range-picker/time-range-picker.js.map +1 -1
- package/dist/components/time-range-picker/use-time-range-picker.d.ts +6 -1
- package/dist/components/time-range-picker/use-time-range-picker.d.ts.map +1 -1
- package/dist/components/time-range-picker/use-time-range-picker.js +4 -1
- package/dist/components/time-range-picker/use-time-range-picker.js.map +1 -1
- package/dist/components/timeline/context.d.ts +1 -1
- package/dist/components/timeline/timeline.d.ts +1 -1
- package/dist/components/timeline/timeline.js +1 -1
- package/dist/components/timer/timer.d.ts +1 -1
- package/dist/components/timer/use-timer.d.ts +1 -1
- package/dist/components/timer/use-timer.js +1 -1
- package/dist/components/timestamp/timestamp.d.ts +1 -1
- package/dist/components/timestamp/timestamp.js +1 -1
- package/dist/components/toggle/toggle.d.ts +1 -1
- package/dist/components/toggle/use-toggle.d.ts +1 -1
- package/dist/components/toggle/use-toggle.js +1 -1
- package/dist/components/toggle-group/toggle-group.d.ts +36 -1
- package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group/toggle-group.js +30 -9
- package/dist/components/toggle-group/toggle-group.js.map +1 -1
- package/dist/components/toggle-group/use-toggle-group.d.ts +1 -1
- package/dist/components/toggle-group/use-toggle-group.js +1 -1
- package/dist/components/tool-call/tool-call.d.ts +1 -1
- package/dist/components/tool-call/tool-call.js +1 -1
- package/dist/components/tool-call/use-tool-call.d.ts +1 -1
- package/dist/components/tool-call/use-tool-call.js +1 -1
- package/dist/components/toolbar/toolbar.d.ts +13 -2
- package/dist/components/toolbar/toolbar.d.ts.map +1 -1
- package/dist/components/toolbar/toolbar.js +7 -3
- package/dist/components/toolbar/toolbar.js.map +1 -1
- package/dist/components/toolbar/use-toolbar.d.ts +1 -1
- package/dist/components/toolbar/use-toolbar.js +1 -1
- package/dist/components/tooltip/context.d.ts +1 -1
- package/dist/components/tooltip/tooltip.d.ts +33 -2
- package/dist/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/tooltip/tooltip.js +33 -6
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/components/tooltip/use-tooltip.js +1 -1
- package/dist/components/tour/tour.d.ts +9 -1
- package/dist/components/tour/tour.d.ts.map +1 -1
- package/dist/components/tour/tour.js +13 -1
- package/dist/components/tour/tour.js.map +1 -1
- package/dist/components/tour/use-tour.d.ts +4 -1
- package/dist/components/tour/use-tour.d.ts.map +1 -1
- package/dist/components/tour/use-tour.js +14 -3
- package/dist/components/tour/use-tour.js.map +1 -1
- package/dist/components/transfer/transfer.d.ts +18 -1
- package/dist/components/transfer/transfer.d.ts.map +1 -1
- package/dist/components/transfer/transfer.js +65 -18
- package/dist/components/transfer/transfer.js.map +1 -1
- package/dist/components/transfer/use-transfer.d.ts +1 -1
- package/dist/components/transfer/use-transfer.js +1 -1
- package/dist/components/tree/tree.d.ts +12 -9
- package/dist/components/tree/tree.d.ts.map +1 -1
- package/dist/components/tree/tree.js +17 -6
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree/use-tree.d.ts +7 -2
- package/dist/components/tree/use-tree.d.ts.map +1 -1
- package/dist/components/tree/use-tree.js +7 -3
- package/dist/components/tree/use-tree.js.map +1 -1
- package/dist/components/tree-select/tree-select.d.ts +19 -2
- package/dist/components/tree-select/tree-select.d.ts.map +1 -1
- package/dist/components/tree-select/tree-select.js +54 -35
- package/dist/components/tree-select/tree-select.js.map +1 -1
- package/dist/components/tree-select/use-tree-select.d.ts +6 -1
- package/dist/components/tree-select/use-tree-select.d.ts.map +1 -1
- package/dist/components/tree-select/use-tree-select.js +4 -1
- package/dist/components/tree-select/use-tree-select.js.map +1 -1
- package/dist/components/truncate/truncate.d.ts +2 -2
- package/dist/components/truncate/use-truncate.d.ts +1 -1
- package/dist/components/truncate/use-truncate.js +1 -1
- package/dist/components/typography/context.d.ts +1 -1
- package/dist/components/typography/typography.d.ts +1 -1
- package/dist/components/typography/typography.js +1 -1
- package/dist/components/virtualizer/use-virtualizer.d.ts +1 -1
- package/dist/components/virtualizer/use-virtualizer.js +1 -1
- package/dist/components/virtualizer/virtualizer.d.ts +10 -1
- package/dist/components/virtualizer/virtualizer.d.ts.map +1 -1
- package/dist/components/virtualizer/virtualizer.js +5 -1
- package/dist/components/virtualizer/virtualizer.js.map +1 -1
- package/dist/components/watermark/context.d.ts +1 -1
- package/dist/components/watermark/watermark.d.ts +1 -1
- package/dist/components/watermark/watermark.js +1 -1
- package/dist/config/config.d.ts +1 -1
- package/dist/config/config.js +2 -2
- package/dist/config/config.js.map +1 -1
- package/dist/index.d.ts +22 -14
- package/dist/index.js +36 -28
- package/dist/package.js +1 -1
- package/dist/runtime/live-props.js +27 -0
- package/dist/runtime/live-props.js.map +1 -0
- package/dist/runtime/merge-props.js +23 -3
- package/dist/runtime/merge-props.js.map +1 -1
- package/dist/runtime/structure.js +36 -0
- package/dist/runtime/structure.js.map +1 -0
- package/dist/runtime/title-description.d.ts +13 -0
- package/dist/runtime/title-description.d.ts.map +1 -0
- package/dist/runtime/title-description.js +47 -0
- package/dist/runtime/title-description.js.map +1 -0
- package/dist/runtime/use-scrollbars.js +1 -1
- package/dist/services/dialog-service.d.ts +1 -1
- package/dist/services/dialog-service.js +1 -1
- package/dist/services/loading-bar-service.d.ts +1 -1
- package/dist/services/loading-bar-service.js +1 -1
- package/dist/services/notification-service.d.ts +1 -1
- package/dist/services/notification-service.js +1 -1
- package/package.json +16 -15
|
@@ -3,9 +3,10 @@ import { vueNormalize } from "../../runtime/normalize-props.js";
|
|
|
3
3
|
import { useXhConfig } from "../../config/config.js";
|
|
4
4
|
import { useMachine } from "../../runtime/use-machine.js";
|
|
5
5
|
import { createVueIdGenerator } from "../../runtime/vue-id.js";
|
|
6
|
+
import { useTitleDescriptionPresence } from "../../runtime/title-description.js";
|
|
7
|
+
import { connectTour, resolveTourBoundary, tourMachine } from "@xihan-ui/headless";
|
|
6
8
|
import { computed, ref } from "vue";
|
|
7
9
|
import { createRuntimeConfig, createScope } from "@xihan-ui/core";
|
|
8
|
-
import { connectTour, tourMachine } from "@xihan-ui/headless";
|
|
9
10
|
import { createPositionEngine } from "@xihan-ui/position";
|
|
10
11
|
//#region src/components/tour/use-tour.ts
|
|
11
12
|
function useTour(props, notify = {}, container) {
|
|
@@ -16,8 +17,10 @@ function useTour(props, notify = {}, container) {
|
|
|
16
17
|
const contentRef = ref(null);
|
|
17
18
|
const idGen = createVueIdGenerator();
|
|
18
19
|
const scope = createScope(null, idGen);
|
|
20
|
+
const presence = useTitleDescriptionPresence();
|
|
19
21
|
const service = useMachine(tourMachine, () => ({
|
|
20
22
|
...props,
|
|
23
|
+
parts: presence.parts.value,
|
|
21
24
|
...notify
|
|
22
25
|
}), scope);
|
|
23
26
|
let config = null;
|
|
@@ -31,7 +34,14 @@ function useTour(props, notify = {}, container) {
|
|
|
31
34
|
node: () => contentRef.value,
|
|
32
35
|
branches: () => [],
|
|
33
36
|
isModal: () => true,
|
|
34
|
-
surfaces: () => [backdropRef.value].filter(Boolean)
|
|
37
|
+
surfaces: () => [backdropRef.value].filter(Boolean),
|
|
38
|
+
visuals: () => [
|
|
39
|
+
contentRef.value,
|
|
40
|
+
positionerRef.value,
|
|
41
|
+
backdropRef.value,
|
|
42
|
+
spotlightRef.value
|
|
43
|
+
].filter(Boolean),
|
|
44
|
+
covers: () => resolveTourBoundary(scope, service.prop("boundary"))
|
|
35
45
|
});
|
|
36
46
|
service.refs.set("config", config);
|
|
37
47
|
service.refs.set("registerLayer", registerLayer);
|
|
@@ -58,7 +68,8 @@ function useTour(props, notify = {}, container) {
|
|
|
58
68
|
contentRef,
|
|
59
69
|
visible,
|
|
60
70
|
showBackdrop,
|
|
61
|
-
portalTarget
|
|
71
|
+
portalTarget,
|
|
72
|
+
presence
|
|
62
73
|
};
|
|
63
74
|
}
|
|
64
75
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tour.js","names":[],"sources":["../../../src/components/tour/use-tour.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 use tour 相关实现。\n\nimport type { Cleanup, Layer, RuntimeConfig, Service } from '@xihan-ui/core'\nimport type { TourApi, TourSchema } from '@xihan-ui/headless'\nimport type { ComputedRef, Ref } from 'vue'\nimport { createRuntimeConfig, createScope } from '@xihan-ui/core'\nimport { connectTour, tourMachine } from '@xihan-ui/headless'\nimport { createPositionEngine } from '@xihan-ui/position'\nimport { computed, ref } from 'vue'\nimport { useXhConfig } from '../../config/config'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useMachine } from '../../runtime/use-machine'\nimport { useOverlayExit } from '../../runtime/use-overlay-exit'\nimport { createVueIdGenerator } from '../../runtime/vue-id'\n\nexport interface TourContext {\n service: Service<TourSchema>\n api: ComputedRef<TourApi>\n backdropRef: Ref<HTMLElement | null>\n spotlightRef: Ref<HTMLElement | null>\n positionerRef: Ref<HTMLElement | null>\n contentRef: Ref<HTMLElement | null>\n /** 当前是否应当可见:收起的一帧推迟到退场动画播完;遮罩、高亮框与定位层与它一起收起。 */\n visible: Ref<boolean>\n /** 作者是否要绘制遮罩。 */\n showBackdrop: () => boolean\n /** 浮层迁移到的位置:全局配置的容器 > 运行时的浮层落点 > body。 */\n portalTarget: ComputedRef<string | Element>\n}\n\nexport function useTour(\n props: TourSchema['props'],\n notify: Pick<TourSchema['props'], 'onOpenChange' | 'onValueChange' | 'onComplete' | 'onSkip'> = {},\n container?: () => Element | null | undefined,\n): TourContext {\n const xhConfig = useXhConfig()\n const backdropRef = ref<HTMLElement | null>(null)\n const spotlightRef = ref<HTMLElement | null>(null)\n const positionerRef = ref<HTMLElement | null>(null)\n const contentRef = ref<HTMLElement | null>(null)\n\n const idGen = createVueIdGenerator()\n const scope = createScope(null, idGen)\n // 四个回调由组件外壳(emit)或组合式调用方提供,随 props 一并喂给机器\n const service = useMachine(tourMachine, () => ({ ...props, ...notify }), scope)\n\n // 服务端没有 DOM、也就没有落点:config 为 null 时浮层退回 body\n let config: RuntimeConfig | null = null\n\n if (typeof document !== 'undefined') {\n config = createRuntimeConfig({ scope, idGenerator: idGen })\n\n // 只提供注册函数,入栈出栈由机器的 trackLayer 效应按展开态驱动\n const registerLayer = (): { layer: Layer, dispose: Cleanup } => config!.layerRegistry.register({\n // 引导是模态的:遮罩盖住整页,焦点陷在浮层里\n kind: 'modal',\n node: () => contentRef.value,\n branches: () => [],\n isModal: () => true,\n // 遮罩登记为可点关闭的表面,是否真关由 closeOnInteractOutside 决定\n surfaces: () => [backdropRef.value].filter(Boolean) as Element[],\n })\n\n // 定位引擎由适配器注入,机器只经端口驱动;锚点由机器按每步 target 自行解析\n service.refs.set('config', config)\n service.refs.set('registerLayer', registerLayer)\n service.refs.set('position', createPositionEngine())\n service.refs.set('getFloatingEl', () => positionerRef.value)\n service.refs.set('getContentEl', () => contentRef.value)\n }\n\n const api = computed(() => connectTour(service, vueNormalize))\n const visible = useOverlayExit({\n config,\n isOpen: () => api.value.open,\n contentRef,\n additionalExitRefs: [backdropRef, spotlightRef],\n onPresence: presence => service.refs.set('presence', presence),\n })\n // 全局配置写了容器就用它,否则落到运行时那个单一浮层落点;没有 DOM 时才回到 body\n const portalTarget = computed<string | Element>(() => container?.() ?? xhConfig.value.portalContainer?.() ?? config?.portalContainer() ?? 'body')\n\n const showBackdrop = (): boolean => props.showBackdrop ?? true\n\n return { service, api, backdropRef, spotlightRef, positionerRef, contentRef, visible, showBackdrop, portalTarget }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-tour.js","names":[],"sources":["../../../src/components/tour/use-tour.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 use tour 相关实现。\n\nimport type { Cleanup, Layer, RuntimeConfig, Service } from '@xihan-ui/core'\nimport type { TourApi, TourSchema } from '@xihan-ui/headless'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { TitleDescriptionPresence } from '../../runtime/title-description'\nimport { createRuntimeConfig, createScope } from '@xihan-ui/core'\nimport { connectTour, resolveTourBoundary, tourMachine } from '@xihan-ui/headless'\nimport { createPositionEngine } from '@xihan-ui/position'\nimport { computed, ref } from 'vue'\nimport { useXhConfig } from '../../config/config'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useTitleDescriptionPresence } from '../../runtime/title-description'\nimport { useMachine } from '../../runtime/use-machine'\nimport { useOverlayExit } from '../../runtime/use-overlay-exit'\nimport { createVueIdGenerator } from '../../runtime/vue-id'\n\nexport interface TourContext {\n service: Service<TourSchema>\n api: ComputedRef<TourApi>\n backdropRef: Ref<HTMLElement | null>\n spotlightRef: Ref<HTMLElement | null>\n positionerRef: Ref<HTMLElement | null>\n contentRef: Ref<HTMLElement | null>\n /** 当前是否应当可见:收起的一帧推迟到退场动画播完;遮罩、高亮框与定位层与它一起收起。 */\n visible: Ref<boolean>\n /** 作者是否要绘制遮罩。 */\n showBackdrop: () => boolean\n /** 浮层迁移到的位置:全局配置的容器 > 运行时的浮层落点 > body。 */\n portalTarget: ComputedRef<string | Element>\n /** 标题与说明在不在场,由 XhTourTitle / XhTourDescription 登记;只引用在场的部件。 */\n presence: TitleDescriptionPresence\n}\n\nexport function useTour(\n props: TourSchema['props'],\n notify: Pick<TourSchema['props'], 'onOpenChange' | 'onValueChange' | 'onComplete' | 'onSkip'> = {},\n container?: () => Element | null | undefined,\n): TourContext {\n const xhConfig = useXhConfig()\n const backdropRef = ref<HTMLElement | null>(null)\n const spotlightRef = ref<HTMLElement | null>(null)\n const positionerRef = ref<HTMLElement | null>(null)\n const contentRef = ref<HTMLElement | null>(null)\n\n const idGen = createVueIdGenerator()\n const scope = createScope(null, idGen)\n // 四个回调由组件外壳(emit)或组合式调用方提供,随 props 一并喂给机器\n const presence = useTitleDescriptionPresence()\n const service = useMachine(tourMachine, () => ({ ...props, parts: presence.parts.value, ...notify }), scope)\n\n // 服务端没有 DOM、也就没有落点:config 为 null 时浮层退回 body\n let config: RuntimeConfig | null = null\n\n if (typeof document !== 'undefined') {\n config = createRuntimeConfig({ scope, idGenerator: idGen })\n\n // 只提供注册函数,入栈出栈由机器的 trackLayer 效应按展开态驱动\n const registerLayer = (): { layer: Layer, dispose: Cleanup } => config!.layerRegistry.register({\n // 引导是模态的:遮罩盖住整页,焦点陷在浮层里\n kind: 'modal',\n node: () => contentRef.value,\n branches: () => [],\n isModal: () => true,\n // 遮罩登记为可点关闭的表面,是否真关由 closeOnInteractOutside 决定\n surfaces: () => [backdropRef.value].filter(Boolean) as Element[],\n // 写本层层号的节点:内容、定位层、遮罩,还有高亮框:它的暗幕与描边与遮罩同层,开在别的层里时也排在那一层之上\n visuals: () => [contentRef.value, positionerRef.value, backdropRef.value, spotlightRef.value].filter(Boolean) as Element[],\n // 限定在区域里时罩住那块区域:引导途中区域里新开的层(如抽屉)排在引导之下\n covers: () => resolveTourBoundary(scope, service.prop('boundary')),\n })\n\n // 定位引擎由适配器注入,机器只经端口驱动;锚点由机器按每步 target 自行解析\n service.refs.set('config', config)\n service.refs.set('registerLayer', registerLayer)\n service.refs.set('position', createPositionEngine())\n service.refs.set('getFloatingEl', () => positionerRef.value)\n service.refs.set('getContentEl', () => contentRef.value)\n }\n\n const api = computed(() => connectTour(service, vueNormalize))\n const visible = useOverlayExit({\n config,\n isOpen: () => api.value.open,\n contentRef,\n additionalExitRefs: [backdropRef, spotlightRef],\n onPresence: presence => service.refs.set('presence', presence),\n })\n // 全局配置写了容器就用它,否则落到运行时那个单一浮层落点;没有 DOM 时才回到 body\n const portalTarget = computed<string | Element>(() => container?.() ?? xhConfig.value.portalContainer?.() ?? config?.portalContainer() ?? 'body')\n\n const showBackdrop = (): boolean => props.showBackdrop ?? true\n\n return { service, api, backdropRef, spotlightRef, positionerRef, contentRef, visible, showBackdrop, portalTarget, presence }\n}\n"],"mappings":";;;;;;;;;;;AAuCA,SAAgB,QACd,OACA,SAAgG,CAAC,GACjG,WACa;CACb,MAAM,WAAW,YAAY;CAC7B,MAAM,cAAc,IAAwB,IAAI;CAChD,MAAM,eAAe,IAAwB,IAAI;CACjD,MAAM,gBAAgB,IAAwB,IAAI;CAClD,MAAM,aAAa,IAAwB,IAAI;CAE/C,MAAM,QAAQ,qBAAqB;CACnC,MAAM,QAAQ,YAAY,MAAM,KAAK;CAErC,MAAM,WAAW,4BAA4B;CAC7C,MAAM,UAAU,WAAW,oBAAoB;EAAE,GAAG;EAAO,OAAO,SAAS,MAAM;EAAO,GAAG;CAAO,IAAI,KAAK;CAG3G,IAAI,SAA+B;CAEnC,IAAI,OAAO,aAAa,aAAa;EACnC,SAAS,oBAAoB;GAAE;GAAO,aAAa;EAAM,CAAC;EAG1D,MAAM,sBAA0D,OAAQ,cAAc,SAAS;GAE7F,MAAM;GACN,YAAY,WAAW;GACvB,gBAAgB,CAAC;GACjB,eAAe;GAEf,gBAAgB,CAAC,YAAY,KAAK,CAAC,CAAC,OAAO,OAAO;GAElD,eAAe;IAAC,WAAW;IAAO,cAAc;IAAO,YAAY;IAAO,aAAa;GAAK,CAAC,CAAC,OAAO,OAAO;GAE5G,cAAc,oBAAoB,OAAO,QAAQ,KAAK,UAAU,CAAC;EACnE,CAAC;EAGD,QAAQ,KAAK,IAAI,UAAU,MAAM;EACjC,QAAQ,KAAK,IAAI,iBAAiB,aAAa;EAC/C,QAAQ,KAAK,IAAI,YAAY,qBAAqB,CAAC;EACnD,QAAQ,KAAK,IAAI,uBAAuB,cAAc,KAAK;EAC3D,QAAQ,KAAK,IAAI,sBAAsB,WAAW,KAAK;CACzD;CAEA,MAAM,MAAM,eAAe,YAAY,SAAS,YAAY,CAAC;CAC7D,MAAM,UAAU,eAAe;EAC7B;EACA,cAAc,IAAI,MAAM;EACxB;EACA,oBAAoB,CAAC,aAAa,YAAY;EAC9C,aAAY,aAAY,QAAQ,KAAK,IAAI,YAAY,QAAQ;CAC/D,CAAC;CAED,MAAM,eAAe,eAAiC,YAAY,KAAK,SAAS,MAAM,kBAAkB,KAAK,QAAQ,gBAAgB,KAAK,MAAM;CAEhJ,MAAM,qBAA8B,MAAM,gBAAgB;CAE1D,OAAO;EAAE;EAAS;EAAK;EAAa;EAAc;EAAe;EAAY;EAAS;EAAc;EAAc;CAAS;AAC7H"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PayloadOf } from "../../runtime/payload.js";
|
|
2
|
+
import { CollectionVirtualizer, TransferCheckState, TransferFilter, TransferItem, TransferSchema, TransferSide } from "@xihan-ui/headless";
|
|
2
3
|
import { PropType, SlotsType, VNode } from "vue";
|
|
3
4
|
import { Direction, Size, Tone } from "@xihan-ui/core";
|
|
4
|
-
import { CollectionVirtualizer, TransferCheckState, TransferFilter, TransferItem, TransferSchema, TransferSide } from "@xihan-ui/headless";
|
|
5
5
|
//#region src/components/transfer/transfer.d.ts
|
|
6
6
|
type TransferProps = TransferSchema['props'];
|
|
7
7
|
/** 默认插槽的载荷:目标侧的值与两侧的勾选、两侧当前可见的条目,以及勾选、写值与移动的动作。 */
|
|
@@ -39,6 +39,10 @@ interface TransferPanelSlots {
|
|
|
39
39
|
default?: (props: TransferPanelSlotProps) => VNode[];
|
|
40
40
|
}
|
|
41
41
|
declare const XhTransferRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
42
|
+
/** 不显示出来的名字,写成 aria-label 落在与字段标签同一个部件上;放进字段或渲染了 label 部件时以它们为准。 */
|
|
43
|
+
ariaLabel: {
|
|
44
|
+
type: StringConstructor;
|
|
45
|
+
};
|
|
42
46
|
collection: {
|
|
43
47
|
type: PropType<TransferItem[]>;
|
|
44
48
|
};
|
|
@@ -82,6 +86,10 @@ declare const XhTransferRoot: import("vue").DefineComponent<import("vue").Extrac
|
|
|
82
86
|
type: BooleanConstructor;
|
|
83
87
|
default: undefined;
|
|
84
88
|
};
|
|
89
|
+
required: {
|
|
90
|
+
type: BooleanConstructor;
|
|
91
|
+
default: undefined;
|
|
92
|
+
};
|
|
85
93
|
loading: BooleanConstructor;
|
|
86
94
|
tone: {
|
|
87
95
|
type: PropType<Tone>;
|
|
@@ -108,6 +116,10 @@ declare const XhTransferRoot: import("vue").DefineComponent<import("vue").Extrac
|
|
|
108
116
|
'update:value': (_value: PayloadOf<TransferProps, "onValueChange">["value"]) => true;
|
|
109
117
|
'update:selection': (_value: PayloadOf<TransferProps, "onSelectionChange">["value"]) => true;
|
|
110
118
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
119
|
+
/** 不显示出来的名字,写成 aria-label 落在与字段标签同一个部件上;放进字段或渲染了 label 部件时以它们为准。 */
|
|
120
|
+
ariaLabel: {
|
|
121
|
+
type: StringConstructor;
|
|
122
|
+
};
|
|
111
123
|
collection: {
|
|
112
124
|
type: PropType<TransferItem[]>;
|
|
113
125
|
};
|
|
@@ -151,6 +163,10 @@ declare const XhTransferRoot: import("vue").DefineComponent<import("vue").Extrac
|
|
|
151
163
|
type: BooleanConstructor;
|
|
152
164
|
default: undefined;
|
|
153
165
|
};
|
|
166
|
+
required: {
|
|
167
|
+
type: BooleanConstructor;
|
|
168
|
+
default: undefined;
|
|
169
|
+
};
|
|
154
170
|
loading: BooleanConstructor;
|
|
155
171
|
tone: {
|
|
156
172
|
type: PropType<Tone>;
|
|
@@ -175,6 +191,7 @@ declare const XhTransferRoot: import("vue").DefineComponent<import("vue").Extrac
|
|
|
175
191
|
"onSelection-change"?: ((_details: import("@xihan-ui/headless").TransferSelectionChangeDetails) => any) | undefined;
|
|
176
192
|
"onUpdate:selection"?: ((_value: string[]) => any) | undefined;
|
|
177
193
|
}>, {
|
|
194
|
+
required: boolean;
|
|
178
195
|
invalid: boolean;
|
|
179
196
|
loop: boolean;
|
|
180
197
|
disabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.d.ts","names":[],"sources":["../../../src/components/transfer/transfer.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","names":[],"sources":["../../../src/components/transfer/transfer.ts"],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
import { renderStructure } from "../../runtime/structure.js";
|
|
1
2
|
import { withXhConfig } from "../../config/config.js";
|
|
2
3
|
import { useScrollbars } from "../../runtime/use-scrollbars.js";
|
|
3
4
|
import { useFormControlProps } from "../form/use-form-control.js";
|
|
5
|
+
import { useFieldGroupWiring, useFieldLabelWiring } from "../field/use-field-control.js";
|
|
4
6
|
import { provideTransfer, provideTransferGroup, provideTransferItem, provideTransferPanel, useTransferContext, useTransferGroupContext, useTransferItemContext, useTransferPanelContext } from "./context.js";
|
|
5
7
|
import { useTransfer } from "./use-transfer.js";
|
|
8
|
+
import { transferStructure } from "@xihan-ui/headless";
|
|
6
9
|
import { computed, defineComponent, h, mergeProps, onBeforeUnmount, onUpdated, ref, watch } from "vue";
|
|
7
10
|
//#region src/components/transfer/transfer.ts
|
|
8
11
|
const XhTransferRoot = defineComponent({
|
|
9
12
|
name: "XhTransferRoot",
|
|
10
13
|
props: {
|
|
14
|
+
/** 不显示出来的名字,写成 aria-label 落在与字段标签同一个部件上;放进字段或渲染了 label 部件时以它们为准。 */
|
|
15
|
+
ariaLabel: { type: String },
|
|
11
16
|
collection: { type: Array },
|
|
12
17
|
virtualizers: { type: Object },
|
|
13
18
|
value: { type: Array },
|
|
@@ -31,6 +36,10 @@ const XhTransferRoot = defineComponent({
|
|
|
31
36
|
type: Boolean,
|
|
32
37
|
default: void 0
|
|
33
38
|
},
|
|
39
|
+
required: {
|
|
40
|
+
type: Boolean,
|
|
41
|
+
default: void 0
|
|
42
|
+
},
|
|
34
43
|
loading: Boolean,
|
|
35
44
|
tone: { type: String },
|
|
36
45
|
size: { type: String },
|
|
@@ -63,23 +72,30 @@ const XhTransferRoot = defineComponent({
|
|
|
63
72
|
onSelectionChange: notifySelection
|
|
64
73
|
});
|
|
65
74
|
provideTransfer(ctx);
|
|
66
|
-
return () => h("div", ctx.api.value.getRootProps(), [
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
return () => h("div", ctx.api.value.getRootProps(), [
|
|
76
|
+
slots.default ? slots.default({
|
|
77
|
+
value: ctx.api.value.value,
|
|
78
|
+
selection: ctx.api.value.selection,
|
|
79
|
+
sourceItems: ctx.api.value.visibleItems("source"),
|
|
80
|
+
targetItems: ctx.api.value.visibleItems("target"),
|
|
81
|
+
canMove: ctx.api.value.canMove,
|
|
82
|
+
checkState: ctx.api.value.checkState,
|
|
83
|
+
isChecked: ctx.api.value.isChecked,
|
|
84
|
+
setValue: ctx.api.value.setValue,
|
|
85
|
+
setSelection: ctx.api.value.setSelection,
|
|
86
|
+
toggle: ctx.api.value.toggle,
|
|
87
|
+
toggleAll: ctx.api.value.toggleAll,
|
|
88
|
+
move: ctx.api.value.move
|
|
89
|
+
}) : renderDefaultStructure(ctx.api.value),
|
|
90
|
+
...ctx.api.value.value.map((value) => h("input", {
|
|
91
|
+
...ctx.api.value.getHiddenInputProps({ value }),
|
|
92
|
+
key: value
|
|
93
|
+
})),
|
|
94
|
+
...ctx.api.value.value.length === 0 && ctx.api.value.required ? [h("input", {
|
|
95
|
+
...ctx.api.value.getHiddenInputProps(),
|
|
96
|
+
key: "required"
|
|
97
|
+
})] : []
|
|
98
|
+
]);
|
|
83
99
|
}
|
|
84
100
|
});
|
|
85
101
|
/** 生成源/目标面板共用的 setup,两侧只在 side 上不同 */
|
|
@@ -146,6 +162,8 @@ const XhTransferList = defineComponent({
|
|
|
146
162
|
name: "XhTransferList",
|
|
147
163
|
inheritAttrs: false,
|
|
148
164
|
setup(_, { slots, attrs }) {
|
|
165
|
+
const fieldWiring = useFieldGroupWiring();
|
|
166
|
+
const fieldLabel = useFieldLabelWiring();
|
|
149
167
|
const ctx = useTransferContext();
|
|
150
168
|
const { panel } = useTransferPanelContext();
|
|
151
169
|
const listRef = ref(null);
|
|
@@ -157,7 +175,10 @@ const XhTransferList = defineComponent({
|
|
|
157
175
|
});
|
|
158
176
|
onUpdated(() => bars.measure());
|
|
159
177
|
return () => [h("div", {
|
|
160
|
-
...mergeProps(
|
|
178
|
+
...mergeProps(fieldLabel.value({
|
|
179
|
+
...fieldWiring.value,
|
|
180
|
+
...ctx.api.value.getListProps(panel.value)
|
|
181
|
+
}), attrs),
|
|
161
182
|
ref: (el) => {
|
|
162
183
|
listRef.value = el;
|
|
163
184
|
}
|
|
@@ -302,6 +323,32 @@ const XhTransferToSourceTrigger = defineComponent({
|
|
|
302
323
|
return () => h("button", ctx.api.value.getToSourceTriggerProps(), slots.default?.());
|
|
303
324
|
}
|
|
304
325
|
});
|
|
326
|
+
/** 标准结构里各部件对应的组件。 */
|
|
327
|
+
const TRANSFER_PARTS = {
|
|
328
|
+
"source-panel": XhTransferSourcePanel,
|
|
329
|
+
"target-panel": XhTransferTargetPanel,
|
|
330
|
+
"panel-header": XhTransferPanelHeader,
|
|
331
|
+
"panel-title": XhTransferPanelTitle,
|
|
332
|
+
"panel-count": XhTransferPanelCount,
|
|
333
|
+
"select-all-trigger": XhTransferSelectAllTrigger,
|
|
334
|
+
"search": XhTransferSearch,
|
|
335
|
+
"list": XhTransferList,
|
|
336
|
+
"item": XhTransferItem,
|
|
337
|
+
"item-checkbox": XhTransferItemCheckbox,
|
|
338
|
+
"item-text": XhTransferItemText,
|
|
339
|
+
"item-description": XhTransferItemDescription,
|
|
340
|
+
"empty": XhTransferEmpty,
|
|
341
|
+
"loading": XhTransferLoading,
|
|
342
|
+
"to-target-trigger": XhTransferToTargetTrigger,
|
|
343
|
+
"to-source-trigger": XhTransferToSourceTrigger
|
|
344
|
+
};
|
|
345
|
+
/**
|
|
346
|
+
* 未写默认插槽时铺开的整套结构:照 headless 的 transferStructure 渲,
|
|
347
|
+
* 与 Web Components 不写部件时元素生成的节点出自同一份。表单影子仍由根按值装配在后面。
|
|
348
|
+
*/
|
|
349
|
+
function renderDefaultStructure(api) {
|
|
350
|
+
return renderStructure(transferStructure(api), TRANSFER_PARTS);
|
|
351
|
+
}
|
|
305
352
|
//#endregion
|
|
306
353
|
export { XhTransferEmpty, XhTransferGroup, XhTransferGroupLabel, XhTransferItem, XhTransferItemCheckbox, XhTransferItemDescription, XhTransferItemSuffix, XhTransferItemText, XhTransferList, XhTransferLoading, XhTransferPanelCount, XhTransferPanelHeader, XhTransferPanelTitle, XhTransferRoot, XhTransferSearch, XhTransferSelectAllTrigger, XhTransferSourcePanel, XhTransferTargetPanel, XhTransferToSourceTrigger, XhTransferToTargetTrigger };
|
|
307
354
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","names":[],"sources":["../../../src/components/transfer/transfer.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 transfer 相关实现。\n\nimport type { Direction, Size, Tone } from '@xihan-ui/core'\nimport type {\n CollectionVirtualizer,\n TransferCheckState,\n TransferFilter,\n TransferGroupProps,\n TransferItem,\n TransferItemProps,\n TransferPanelProps,\n TransferSchema,\n TransferSide,\n} from '@xihan-ui/headless'\nimport type { PropType, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport { computed, defineComponent, h, mergeProps, onBeforeUnmount, onUpdated, ref, watch } from 'vue'\nimport { withXhConfig } from '../../config/config'\nimport { useScrollbars } from '../../runtime/use-scrollbars'\nimport { useFormControlProps } from '../form/use-form-control'\nimport {\n provideTransfer,\n provideTransferGroup,\n provideTransferItem,\n provideTransferPanel,\n useTransferContext,\n useTransferGroupContext,\n useTransferItemContext,\n useTransferPanelContext,\n} from './context'\nimport { useTransfer } from './use-transfer'\n\ntype TransferProps = TransferSchema['props']\n\n/** 默认插槽的载荷:目标侧的值与两侧的勾选、两侧当前可见的条目,以及勾选、写值与移动的动作。 */\nexport interface TransferRootSlotProps {\n value: string[]\n selection: string[]\n sourceItems: readonly TransferItem[]\n targetItems: readonly TransferItem[]\n canMove: (to: TransferSide) => boolean\n checkState: (side: TransferSide) => TransferCheckState\n isChecked: (value: string) => boolean\n setValue: (next: string[]) => void\n setSelection: (next: string[]) => void\n toggle: (value: string) => void\n toggleAll: (side: TransferSide) => void\n move: (to: TransferSide) => void\n}\n\n/** 面板默认插槽的载荷:该侧的身份、当前可见的条目、该侧的全选三态与搜索词。 */\nexport interface TransferPanelSlotProps {\n side: TransferSide\n items: readonly TransferItem[]\n checkState: TransferCheckState\n query: string\n /** 这一侧分侧 + 搜索之后共有几条(不分页)。 */\n total: number\n /** 当前页码(从 1 起);不分页时恒为 1。 */\n page: number\n /** 共有几页(至少 1 页)。 */\n pageCount: number\n /** 翻到这一侧的第 page 页。 */\n setPage: (page: number) => void\n}\n\n/** 源/目标两个面板部件共用的插槽集合。 */\ninterface TransferPanelSlots {\n default?: (props: TransferPanelSlotProps) => VNode[]\n}\n\nexport const XhTransferRoot = defineComponent({\n name: 'XhTransferRoot',\n // 有 connect 兜底的 prop:普通类型省略 default,Boolean 显式保留 undefined\n props: {\n collection: { type: Array as PropType<TransferItem[]> },\n virtualizers: { type: Object as PropType<Partial<Record<TransferSide, CollectionVirtualizer>>> },\n value: { type: Array as PropType<string[]> },\n defaultValue: { type: Array as PropType<string[]> },\n name: { type: String },\n form: { type: String },\n selection: { type: Array as PropType<string[]> },\n defaultSelection: { type: Array as PropType<string[]> },\n searchable: Boolean,\n filter: { type: Function as PropType<TransferFilter> },\n pageSize: { type: Number },\n disabled: { type: Boolean, default: undefined },\n readOnly: { type: Boolean, default: undefined },\n invalid: { type: Boolean, default: undefined },\n loading: Boolean,\n tone: { type: String as PropType<Tone> },\n size: { type: String as PropType<Size> },\n oneWay: Boolean,\n loop: { type: Boolean, default: undefined },\n dir: { type: String as PropType<Direction> },\n translations: { type: Object as PropType<TransferProps['translations']> },\n },\n // *-change 携带 details 对象,update:* 携带裸集合以支持 v-model\n emits: {\n 'value-change': (_details: PayloadOf<TransferProps, 'onValueChange'>) => true,\n 'selection-change': (_details: PayloadOf<TransferProps, 'onSelectionChange'>) => true,\n 'update:value': (_value: PayloadOf<TransferProps, 'onValueChange'>['value']) => true,\n 'update:selection': (_value: PayloadOf<TransferProps, 'onSelectionChange'>['value']) => true,\n },\n slots: Object as SlotsType<{\n default?: (props: TransferRootSlotProps) => VNode[]\n }>,\n setup(props, { slots, emit }) {\n const notifyValue: TransferProps['onValueChange'] = (details) => {\n emit('value-change', details)\n emit('update:value', details.value)\n }\n const notifySelection: TransferProps['onSelectionChange'] = (details) => {\n emit('selection-change', details)\n emit('update:selection', details.value)\n }\n const ctx = useTransfer(withXhConfig('transfer', useFormControlProps(props)) as TransferProps, {\n onValueChange: notifyValue,\n onSelectionChange: notifySelection,\n })\n provideTransfer(ctx)\n return () => h('div', ctx.api.value.getRootProps() as Record<string, unknown>, [slots.default?.({\n value: ctx.api.value.value,\n selection: ctx.api.value.selection,\n sourceItems: ctx.api.value.visibleItems('source'),\n targetItems: ctx.api.value.visibleItems('target'),\n canMove: ctx.api.value.canMove,\n checkState: ctx.api.value.checkState,\n isChecked: ctx.api.value.isChecked,\n setValue: ctx.api.value.setValue,\n setSelection: ctx.api.value.setSelection,\n toggle: ctx.api.value.toggle,\n toggleAll: ctx.api.value.toggleAll,\n move: ctx.api.value.move,\n }), ...ctx.api.value.value.map(value => h('input', {\n ...ctx.api.value.getHiddenInputProps({ value }) as Record<string, unknown>,\n key: value,\n }))])\n },\n})\n\n/** 生成源/目标面板共用的 setup,两侧只在 side 上不同 */\nfunction panelSetup(side: TransferSide): (props: unknown, ctx: { slots: TransferPanelSlots }) => () => VNode {\n return (_: unknown, { slots }: { slots: TransferPanelSlots }) => {\n const ctx = useTransferContext()\n const panel = computed<TransferPanelProps>(() => ({ side }))\n provideTransferPanel({ panel })\n return () => h('div', ctx.api.value.getPanelProps(panel.value) as Record<string, unknown>, slots.default?.({\n side,\n // 这一侧当下看得见的条目(分侧 + 搜索之后),不是数据入口:入口叫 collection,是整份全集\n items: ctx.api.value.visibleItems(side),\n checkState: ctx.api.value.checkState(side),\n query: ctx.api.value.query(side),\n total: ctx.api.value.filteredItems(side).length,\n page: ctx.api.value.page(side),\n pageCount: ctx.api.value.pageCount(side),\n setPage: (page: number) => ctx.api.value.setPage(side, page),\n }))\n }\n}\n\nexport const XhTransferSourcePanel = defineComponent({\n name: 'XhTransferSourcePanel',\n slots: Object as SlotsType<TransferPanelSlots>,\n setup: panelSetup('source'),\n})\n\nexport const XhTransferTargetPanel = defineComponent({\n name: 'XhTransferTargetPanel',\n slots: Object as SlotsType<TransferPanelSlots>,\n setup: panelSetup('target'),\n})\n\nexport const XhTransferPanelHeader = defineComponent({\n name: 'XhTransferPanelHeader',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n return () => h('div', ctx.api.value.getPanelHeaderProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferPanelTitle = defineComponent({\n name: 'XhTransferPanelTitle',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n return () => h('span', ctx.api.value.getPanelTitleProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferPanelCount = defineComponent({\n name: 'XhTransferPanelCount',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 只带 data-checked-count / data-count 属性,文案由作者或皮肤层提供\n return () => h('span', ctx.api.value.getPanelCountProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferSearch = defineComponent({\n name: 'XhTransferSearch',\n setup() {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n return () => h('input', ctx.api.value.getSearchProps(panel.value) as Record<string, unknown>)\n },\n})\n\nexport const XhTransferList = defineComponent({\n name: 'XhTransferList',\n // 根是片段(列表节点 + 贴层的条子),Vue 不会把直通属性合上去:作者写的 class、style 与 data-* 自己接住落到列表节点上\n inheritAttrs: false,\n setup(_, { slots, attrs }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n const listRef = ref<HTMLElement | null>(null)\n // 两侧定高小列表各走一路自绘条:虚拟化时滚动层改为 Virtualizer viewport,\n // 条子仍紧跟在列表后面、贴实际滚动层自己的盒子上,\n // 挂在 root 这个定位盒上(面板不定位,root 才是列表的定位祖先);两条轴都摆——皮肤给的是两轴 overflow: auto。\n // 页内宿主走 6px 缺省档;横条的正负按排版方向算,把机器里那份 dir 交过去\n const bars = useScrollbars({\n scrollable: () => ctx.service.prop('virtualizers')?.[panel.value.side]?.getViewportElement() ?? listRef.value,\n axes: ['vertical', 'horizontal'],\n anchor: 'layer',\n props: () => ({ dir: ctx.service.prop('dir') }),\n })\n // 搬运、搜索筛选与空态显隐都会挪动列表在壳内的位置与尺寸:每次更新后重量一次偏移盒\n onUpdated(() => bars.measure())\n return () => [\n h('div', {\n ...mergeProps(ctx.api.value.getListProps(panel.value) as Record<string, unknown>, attrs),\n ref: (el: unknown) => { listRef.value = el as HTMLElement | null },\n }, slots.default?.()),\n ...bars.render(),\n ]\n },\n})\n\nexport const XhTransferSelectAllTrigger = defineComponent({\n name: 'XhTransferSelectAllTrigger',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 用原生 button,激活与禁用交给平台\n return () => h('button', ctx.api.value.getSelectAllTriggerProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferEmpty = defineComponent({\n name: 'XhTransferEmpty',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 空态占位:写在面板里、list 的兄弟;本侧没有可见条目时由连接层放它出面\n return () => h('div', ctx.api.value.getEmptyProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferLoading = defineComponent({\n name: 'XhTransferLoading',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 在途占位:与空态占位同一个位置,取数期间顶上来\n return () => h('div', ctx.api.value.getLoadingProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferGroup = defineComponent({\n name: 'XhTransferGroup',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 两侧各挂一份同名分组,身份连 side 一起算,两边的标题 id 才不撞\n const group = computed<TransferGroupProps>(() => ({ value: props.value, side: panel.value.side }))\n provideTransferGroup({ group })\n return () => h('div', ctx.api.value.getGroupProps(group.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferGroupLabel = defineComponent({\n name: 'XhTransferGroupLabel',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { group } = useTransferGroupContext()\n return () => h('span', ctx.api.value.getGroupLabelProps(group.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferItem = defineComponent({\n name: 'XhTransferItem',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 条目只报值与所属面板,禁用与标签回 collection 里查;同一 value 的两侧节点靠 side 分身份\n const item = computed<TransferItemProps>(() => ({ value: props.value, side: panel.value.side }))\n provideTransferItem({ item })\n // 本条目持有焦点时,value 变更重报焦点条目,卸载时上报列表失焦\n const itemEl = ref<HTMLElement | null>(null)\n watch(() => props.value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n const side = panel.value.side\n if (service.prop('virtualizers')?.[side] && ctx.api.value.visibleItems(side).some(item => item.value === props.value))\n return\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'ITEM.FOCUS', side: panel.value.side, value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n // 整组一起卸载时根部件先停机,此刻送事件会在 dev 下抛\n if (service.getStatus() !== 'Started')\n return\n // 按「本节点当下正持有焦点」判定,不按 value 比对\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'LIST.BLUR', side: panel.value.side })\n })\n return () => h(\n 'div',\n { ...ctx.api.value.getItemProps(item.value) as Record<string, unknown>, ref: itemEl },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTransferItemText = defineComponent({\n name: 'XhTransferItemText',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemTextProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\n/** 条目的第 2 行副文本,跨文字槽、走 muted 档 */\nexport const XhTransferItemDescription = defineComponent({\n name: 'XhTransferItemDescription',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemDescriptionProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\n/** 条目行尾的作者内容(计数、徽标) */\nexport const XhTransferItemSuffix = defineComponent({\n name: 'XhTransferItemSuffix',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemSuffixProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferItemCheckbox = defineComponent({\n name: 'XhTransferItemCheckbox',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemCheckboxProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferToTargetTrigger = defineComponent({\n name: 'XhTransferToTargetTrigger',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n // 用原生 button,激活与禁用交给平台\n return () => h('button', ctx.api.value.getToTargetTriggerProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferToSourceTrigger = defineComponent({\n name: 'XhTransferToSourceTrigger',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n return () => h('button', ctx.api.value.getToSourceTriggerProps() as Record<string, unknown>, slots.default?.())\n },\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transfer.js","names":[],"sources":["../../../src/components/transfer/transfer.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 transfer 相关实现。\n\nimport type { Direction, Size, Tone } from '@xihan-ui/core'\nimport type {\n CollectionVirtualizer,\n TransferApi,\n TransferCheckState,\n TransferFilter,\n TransferGroupProps,\n TransferItem,\n TransferItemProps,\n TransferPanelProps,\n TransferSchema,\n TransferSide,\n} from '@xihan-ui/headless'\nimport type { PropType, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport { transferStructure } from '@xihan-ui/headless'\nimport { computed, defineComponent, h, mergeProps, onBeforeUnmount, onUpdated, ref, watch } from 'vue'\nimport { withXhConfig } from '../../config/config'\nimport { renderStructure } from '../../runtime/structure'\nimport { useScrollbars } from '../../runtime/use-scrollbars'\nimport { useFieldGroupWiring, useFieldLabelWiring } from '../field/use-field-control'\nimport { useFormControlProps } from '../form/use-form-control'\nimport {\n provideTransfer,\n provideTransferGroup,\n provideTransferItem,\n provideTransferPanel,\n useTransferContext,\n useTransferGroupContext,\n useTransferItemContext,\n useTransferPanelContext,\n} from './context'\nimport { useTransfer } from './use-transfer'\n\ntype TransferProps = TransferSchema['props']\n\n/** 默认插槽的载荷:目标侧的值与两侧的勾选、两侧当前可见的条目,以及勾选、写值与移动的动作。 */\nexport interface TransferRootSlotProps {\n value: string[]\n selection: string[]\n sourceItems: readonly TransferItem[]\n targetItems: readonly TransferItem[]\n canMove: (to: TransferSide) => boolean\n checkState: (side: TransferSide) => TransferCheckState\n isChecked: (value: string) => boolean\n setValue: (next: string[]) => void\n setSelection: (next: string[]) => void\n toggle: (value: string) => void\n toggleAll: (side: TransferSide) => void\n move: (to: TransferSide) => void\n}\n\n/** 面板默认插槽的载荷:该侧的身份、当前可见的条目、该侧的全选三态与搜索词。 */\nexport interface TransferPanelSlotProps {\n side: TransferSide\n items: readonly TransferItem[]\n checkState: TransferCheckState\n query: string\n /** 这一侧分侧 + 搜索之后共有几条(不分页)。 */\n total: number\n /** 当前页码(从 1 起);不分页时恒为 1。 */\n page: number\n /** 共有几页(至少 1 页)。 */\n pageCount: number\n /** 翻到这一侧的第 page 页。 */\n setPage: (page: number) => void\n}\n\n/** 源/目标两个面板部件共用的插槽集合。 */\ninterface TransferPanelSlots {\n default?: (props: TransferPanelSlotProps) => VNode[]\n}\n\nexport const XhTransferRoot = defineComponent({\n name: 'XhTransferRoot',\n // 有 connect 兜底的 prop:普通类型省略 default,Boolean 显式保留 undefined\n props: {\n /** 不显示出来的名字,写成 aria-label 落在与字段标签同一个部件上;放进字段或渲染了 label 部件时以它们为准。 */\n ariaLabel: { type: String },\n collection: { type: Array as PropType<TransferItem[]> },\n virtualizers: { type: Object as PropType<Partial<Record<TransferSide, CollectionVirtualizer>>> },\n value: { type: Array as PropType<string[]> },\n defaultValue: { type: Array as PropType<string[]> },\n name: { type: String },\n form: { type: String },\n selection: { type: Array as PropType<string[]> },\n defaultSelection: { type: Array as PropType<string[]> },\n searchable: Boolean,\n filter: { type: Function as PropType<TransferFilter> },\n pageSize: { type: Number },\n disabled: { type: Boolean, default: undefined },\n readOnly: { type: Boolean, default: undefined },\n invalid: { type: Boolean, default: undefined },\n required: { type: Boolean, default: undefined },\n loading: Boolean,\n tone: { type: String as PropType<Tone> },\n size: { type: String as PropType<Size> },\n oneWay: Boolean,\n loop: { type: Boolean, default: undefined },\n dir: { type: String as PropType<Direction> },\n translations: { type: Object as PropType<TransferProps['translations']> },\n },\n // *-change 携带 details 对象,update:* 携带裸集合以支持 v-model\n emits: {\n 'value-change': (_details: PayloadOf<TransferProps, 'onValueChange'>) => true,\n 'selection-change': (_details: PayloadOf<TransferProps, 'onSelectionChange'>) => true,\n 'update:value': (_value: PayloadOf<TransferProps, 'onValueChange'>['value']) => true,\n 'update:selection': (_value: PayloadOf<TransferProps, 'onSelectionChange'>['value']) => true,\n },\n slots: Object as SlotsType<{\n default?: (props: TransferRootSlotProps) => VNode[]\n }>,\n setup(props, { slots, emit }) {\n const notifyValue: TransferProps['onValueChange'] = (details) => {\n emit('value-change', details)\n emit('update:value', details.value)\n }\n const notifySelection: TransferProps['onSelectionChange'] = (details) => {\n emit('selection-change', details)\n emit('update:selection', details.value)\n }\n const ctx = useTransfer(withXhConfig('transfer', useFormControlProps(props)) as TransferProps, {\n onValueChange: notifyValue,\n onSelectionChange: notifySelection,\n })\n provideTransfer(ctx)\n return () => h('div', ctx.api.value.getRootProps() as Record<string, unknown>, [slots.default\n ? slots.default({\n value: ctx.api.value.value,\n selection: ctx.api.value.selection,\n sourceItems: ctx.api.value.visibleItems('source'),\n targetItems: ctx.api.value.visibleItems('target'),\n canMove: ctx.api.value.canMove,\n checkState: ctx.api.value.checkState,\n isChecked: ctx.api.value.isChecked,\n setValue: ctx.api.value.setValue,\n setSelection: ctx.api.value.setSelection,\n toggle: ctx.api.value.toggle,\n toggleAll: ctx.api.value.toggleAll,\n move: ctx.api.value.move,\n })\n : renderDefaultStructure(ctx.api.value), ...ctx.api.value.value.map(value => h('input', {\n ...ctx.api.value.getHiddenInputProps({ value }) as Record<string, unknown>,\n key: value,\n })), ...(ctx.api.value.value.length === 0 && ctx.api.value.required\n // 必填且没有值:补一份空值占位,原生 required 才拦得住空表单\n ? [h('input', { ...ctx.api.value.getHiddenInputProps() as Record<string, unknown>, key: 'required' })]\n : [])])\n },\n})\n\n/** 生成源/目标面板共用的 setup,两侧只在 side 上不同 */\nfunction panelSetup(side: TransferSide): (props: unknown, ctx: { slots: TransferPanelSlots }) => () => VNode {\n return (_: unknown, { slots }: { slots: TransferPanelSlots }) => {\n const ctx = useTransferContext()\n const panel = computed<TransferPanelProps>(() => ({ side }))\n provideTransferPanel({ panel })\n return () => h('div', ctx.api.value.getPanelProps(panel.value) as Record<string, unknown>, slots.default?.({\n side,\n // 这一侧当下看得见的条目(分侧 + 搜索之后),不是数据入口:入口叫 collection,是整份全集\n items: ctx.api.value.visibleItems(side),\n checkState: ctx.api.value.checkState(side),\n query: ctx.api.value.query(side),\n total: ctx.api.value.filteredItems(side).length,\n page: ctx.api.value.page(side),\n pageCount: ctx.api.value.pageCount(side),\n setPage: (page: number) => ctx.api.value.setPage(side, page),\n }))\n }\n}\n\nexport const XhTransferSourcePanel = defineComponent({\n name: 'XhTransferSourcePanel',\n slots: Object as SlotsType<TransferPanelSlots>,\n setup: panelSetup('source'),\n})\n\nexport const XhTransferTargetPanel = defineComponent({\n name: 'XhTransferTargetPanel',\n slots: Object as SlotsType<TransferPanelSlots>,\n setup: panelSetup('target'),\n})\n\nexport const XhTransferPanelHeader = defineComponent({\n name: 'XhTransferPanelHeader',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n return () => h('div', ctx.api.value.getPanelHeaderProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferPanelTitle = defineComponent({\n name: 'XhTransferPanelTitle',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n return () => h('span', ctx.api.value.getPanelTitleProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferPanelCount = defineComponent({\n name: 'XhTransferPanelCount',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 只带 data-checked-count / data-count 属性,文案由作者或皮肤层提供\n return () => h('span', ctx.api.value.getPanelCountProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferSearch = defineComponent({\n name: 'XhTransferSearch',\n setup() {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n return () => h('input', ctx.api.value.getSearchProps(panel.value) as Record<string, unknown>)\n },\n})\n\nexport const XhTransferList = defineComponent({\n name: 'XhTransferList',\n // 根是片段(列表节点 + 贴层的条子),Vue 不会把直通属性合上去:作者写的 class、style 与 data-* 自己接住落到列表节点上\n inheritAttrs: false,\n setup(_, { slots, attrs }) {\n // 放进字段时字段的标题并进两侧列表的名字(排在面板标题前),说明与错误文案进描述链\n const fieldWiring = useFieldGroupWiring()\n const fieldLabel = useFieldLabelWiring()\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n const listRef = ref<HTMLElement | null>(null)\n // 两侧定高小列表各走一路自绘条:虚拟化时滚动层改为 Virtualizer viewport,\n // 条子仍紧跟在列表后面、贴实际滚动层自己的盒子上,\n // 挂在 root 这个定位盒上(面板不定位,root 才是列表的定位祖先);两条轴都摆——皮肤给的是两轴 overflow: auto。\n // 页内宿主走 6px 缺省档;横条的正负按排版方向算,把机器里那份 dir 交过去\n const bars = useScrollbars({\n scrollable: () => ctx.service.prop('virtualizers')?.[panel.value.side]?.getViewportElement() ?? listRef.value,\n axes: ['vertical', 'horizontal'],\n anchor: 'layer',\n props: () => ({ dir: ctx.service.prop('dir') }),\n })\n // 搬运、搜索筛选与空态显隐都会挪动列表在壳内的位置与尺寸:每次更新后重量一次偏移盒\n onUpdated(() => bars.measure())\n return () => [\n h('div', {\n ...mergeProps(fieldLabel.value({ ...fieldWiring.value, ...ctx.api.value.getListProps(panel.value) as Record<string, unknown> }), attrs),\n ref: (el: unknown) => { listRef.value = el as HTMLElement | null },\n }, slots.default?.()),\n ...bars.render(),\n ]\n },\n})\n\nexport const XhTransferSelectAllTrigger = defineComponent({\n name: 'XhTransferSelectAllTrigger',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 用原生 button,激活与禁用交给平台\n return () => h('button', ctx.api.value.getSelectAllTriggerProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferEmpty = defineComponent({\n name: 'XhTransferEmpty',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 空态占位:写在面板里、list 的兄弟;本侧没有可见条目时由连接层放它出面\n return () => h('div', ctx.api.value.getEmptyProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferLoading = defineComponent({\n name: 'XhTransferLoading',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 在途占位:与空态占位同一个位置,取数期间顶上来\n return () => h('div', ctx.api.value.getLoadingProps(panel.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferGroup = defineComponent({\n name: 'XhTransferGroup',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 两侧各挂一份同名分组,身份连 side 一起算,两边的标题 id 才不撞\n const group = computed<TransferGroupProps>(() => ({ value: props.value, side: panel.value.side }))\n provideTransferGroup({ group })\n return () => h('div', ctx.api.value.getGroupProps(group.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferGroupLabel = defineComponent({\n name: 'XhTransferGroupLabel',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { group } = useTransferGroupContext()\n return () => h('span', ctx.api.value.getGroupLabelProps(group.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferItem = defineComponent({\n name: 'XhTransferItem',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTransferContext()\n const { panel } = useTransferPanelContext()\n // 条目只报值与所属面板,禁用与标签回 collection 里查;同一 value 的两侧节点靠 side 分身份\n const item = computed<TransferItemProps>(() => ({ value: props.value, side: panel.value.side }))\n provideTransferItem({ item })\n // 本条目持有焦点时,value 变更重报焦点条目,卸载时上报列表失焦\n const itemEl = ref<HTMLElement | null>(null)\n watch(() => props.value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n const side = panel.value.side\n if (service.prop('virtualizers')?.[side] && ctx.api.value.visibleItems(side).some(item => item.value === props.value))\n return\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'ITEM.FOCUS', side: panel.value.side, value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n // 整组一起卸载时根部件先停机,此刻送事件会在 dev 下抛\n if (service.getStatus() !== 'Started')\n return\n // 按「本节点当下正持有焦点」判定,不按 value 比对\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'LIST.BLUR', side: panel.value.side })\n })\n return () => h(\n 'div',\n { ...ctx.api.value.getItemProps(item.value) as Record<string, unknown>, ref: itemEl },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTransferItemText = defineComponent({\n name: 'XhTransferItemText',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemTextProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\n/** 条目的第 2 行副文本,跨文字槽、走 muted 档 */\nexport const XhTransferItemDescription = defineComponent({\n name: 'XhTransferItemDescription',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemDescriptionProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\n/** 条目行尾的作者内容(计数、徽标) */\nexport const XhTransferItemSuffix = defineComponent({\n name: 'XhTransferItemSuffix',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemSuffixProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferItemCheckbox = defineComponent({\n name: 'XhTransferItemCheckbox',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n const { item } = useTransferItemContext()\n return () => h('span', ctx.api.value.getItemCheckboxProps(item.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferToTargetTrigger = defineComponent({\n name: 'XhTransferToTargetTrigger',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n // 用原生 button,激活与禁用交给平台\n return () => h('button', ctx.api.value.getToTargetTriggerProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTransferToSourceTrigger = defineComponent({\n name: 'XhTransferToSourceTrigger',\n setup(_, { slots }) {\n const ctx = useTransferContext()\n return () => h('button', ctx.api.value.getToSourceTriggerProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\n/** 标准结构里各部件对应的组件。 */\nconst TRANSFER_PARTS = {\n 'source-panel': XhTransferSourcePanel,\n 'target-panel': XhTransferTargetPanel,\n 'panel-header': XhTransferPanelHeader,\n 'panel-title': XhTransferPanelTitle,\n 'panel-count': XhTransferPanelCount,\n 'select-all-trigger': XhTransferSelectAllTrigger,\n 'search': XhTransferSearch,\n 'list': XhTransferList,\n 'item': XhTransferItem,\n 'item-checkbox': XhTransferItemCheckbox,\n 'item-text': XhTransferItemText,\n 'item-description': XhTransferItemDescription,\n 'empty': XhTransferEmpty,\n 'loading': XhTransferLoading,\n 'to-target-trigger': XhTransferToTargetTrigger,\n 'to-source-trigger': XhTransferToSourceTrigger,\n}\n\n/**\n * 未写默认插槽时铺开的整套结构:照 headless 的 transferStructure 渲,\n * 与 Web Components 不写部件时元素生成的节点出自同一份。表单影子仍由根按值装配在后面。\n */\nfunction renderDefaultStructure(api: TransferApi): VNode[] {\n return renderStructure(transferStructure(api), TRANSFER_PARTS)\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { TransferApi, TransferSchema } from "@xihan-ui/headless";
|
|
1
2
|
import { ComputedRef } from "vue";
|
|
2
3
|
import { Service } from "@xihan-ui/core";
|
|
3
|
-
import { TransferApi, TransferSchema } from "@xihan-ui/headless";
|
|
4
4
|
//#region src/components/transfer/use-transfer.d.ts
|
|
5
5
|
interface TransferContext {
|
|
6
6
|
api: ComputedRef<TransferApi>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { vueNormalize } from "../../runtime/normalize-props.js";
|
|
2
2
|
import { useMachine } from "../../runtime/use-machine.js";
|
|
3
3
|
import { createVueIdGenerator } from "../../runtime/vue-id.js";
|
|
4
|
+
import { connectTransfer, transferMachine } from "@xihan-ui/headless";
|
|
4
5
|
import { computed } from "vue";
|
|
5
6
|
import { createScope } from "@xihan-ui/core";
|
|
6
|
-
import { connectTransfer, transferMachine } from "@xihan-ui/headless";
|
|
7
7
|
//#region src/components/transfer/use-transfer.ts
|
|
8
8
|
function useTransfer(props, handlers = {}) {
|
|
9
9
|
const service = useMachine(transferMachine, () => ({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PayloadOf } from "../../runtime/payload.js";
|
|
2
|
+
import { CollectionVirtualizer, TreeApi, TreeNode, TreeSchema } from "@xihan-ui/headless";
|
|
2
3
|
import { PropType, SlotsType, VNode } from "vue";
|
|
3
4
|
import { Direction } from "@xihan-ui/core";
|
|
4
|
-
import { CollectionVirtualizer, TreeApi, TreeNode, TreeSchema } from "@xihan-ui/headless";
|
|
5
5
|
//#region src/components/tree/tree.d.ts
|
|
6
6
|
type TreeProps = TreeSchema['props'];
|
|
7
7
|
/** 默认插槽的载荷:可见行序列与展开、选中、焦点状态,以及按值判定与展开、收起、选中的动作。 */
|
|
@@ -33,9 +33,9 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
33
33
|
defaultSelection: {
|
|
34
34
|
type: PropType<string[]>;
|
|
35
35
|
};
|
|
36
|
-
multiple
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
/** 选择模式,默认 single:multiple 点击切换;extended 点击换选、Ctrl/Cmd 点击加选、Shift 点击连选。 */
|
|
37
|
+
selectionMode: {
|
|
38
|
+
type: PropType<TreeProps["selectionMode"]>;
|
|
39
39
|
};
|
|
40
40
|
/** 末端层的排布方式,默认 vertical;horizontal 使子节点全为叶子的层并排铺开。 */
|
|
41
41
|
leafOrientation: {
|
|
@@ -115,9 +115,9 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
115
115
|
defaultSelection: {
|
|
116
116
|
type: PropType<string[]>;
|
|
117
117
|
};
|
|
118
|
-
multiple
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
/** 选择模式,默认 single:multiple 点击切换;extended 点击换选、Ctrl/Cmd 点击加选、Shift 点击连选。 */
|
|
119
|
+
selectionMode: {
|
|
120
|
+
type: PropType<TreeProps["selectionMode"]>;
|
|
121
121
|
};
|
|
122
122
|
/** 末端层的排布方式,默认 vertical;horizontal 使子节点全为叶子的层并排铺开。 */
|
|
123
123
|
leafOrientation: {
|
|
@@ -169,7 +169,6 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
169
169
|
"onUpdate:selection"?: ((_value: string[]) => any) | undefined;
|
|
170
170
|
"onNode-move"?: ((_move: import("@xihan-ui/headless").TreeMove) => any) | undefined;
|
|
171
171
|
}>, {
|
|
172
|
-
multiple: boolean;
|
|
173
172
|
loop: boolean;
|
|
174
173
|
disabled: boolean;
|
|
175
174
|
loading: boolean;
|
|
@@ -262,9 +261,13 @@ declare const XhTreeBranchIndicator: import("vue").DefineComponent<{}, () => VNo
|
|
|
262
261
|
declare const XhTreeBranchText: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
263
262
|
[key: string]: any;
|
|
264
263
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
264
|
+
/** 分支行的第 2 行副文本,与叶子的说明同一档 */
|
|
265
|
+
declare const XhTreeBranchDescription: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
266
|
+
[key: string]: any;
|
|
267
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
265
268
|
declare const XhTreeBranchContent: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
266
269
|
[key: string]: any;
|
|
267
270
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
268
271
|
//#endregion
|
|
269
|
-
export { TreeRootSlotProps, XhTreeBranch, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeEmpty, XhTreeItem, XhTreeItemDescription, XhTreeItemIndicator, XhTreeItemSuffix, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeLoading, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeTree };
|
|
272
|
+
export { TreeRootSlotProps, XhTreeBranch, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchDescription, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeEmpty, XhTreeItem, XhTreeItemDescription, XhTreeItemIndicator, XhTreeItemSuffix, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeLoading, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeTree };
|
|
270
273
|
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","names":[],"sources":["../../../src/components/tree/tree.ts"],"mappings":";;;;;KAiBK,YAAY;;KAGL,oBAAoB,KAC9B;cAqCW,0BAAU,8BAAA;;IAIU,MAAA,SAAS;;;IACP,MAAA,SAAS;;;;IAEb,MAAA,SAAS;;;;IAEZ,MAAA,SAAS;;;IACD,MAAA;;;IACO,MAAA;;;IACX,MAAA;;;IACO,MAAA
|
|
1
|
+
{"version":3,"file":"tree.d.ts","names":[],"sources":["../../../src/components/tree/tree.ts"],"mappings":";;;;;KAiBK,YAAY;;KAGL,oBAAoB,KAC9B;cAqCW,0BAAU,8BAAA;;IAIU,MAAA,SAAS;;;IACP,MAAA,SAAS;;;;IAEb,MAAA,SAAS;;;;IAEZ,MAAA,SAAS;;;IACD,MAAA;;;IACO,MAAA;;;IACX,MAAA;;;IACO,MAAA;;;;IAEF,MAAA,SAAS;;;;IAEP,MAAA,SAAS;;;;IAET,MAAA,SAAS;;;;;;;;IAGb,MAAA;;;;;;;;;;;;;;;;;;IAOR,MAAA,SAAS;;;;;;IAID,MAAA,SAAS;;;IACR,MAAA,SAAS;;;;;EAIL,0BAAA,UAAA,UAAU;EACb,yBAAA,QAAA,UAAU;EACZ,qBAAA,UAAA,UAAU;EACZ,qBAAA,QAAA,UAAU;EAElB,cAAA,OAAA,UAAU;;;IAvCF,MAAA,SAAS;;;IACP,MAAA,SAAS;;;;IAEb,MAAA,SAAS;;;;IAEZ,MAAA,SAAS;;;IACD,MAAA;;;IACO,MAAA;;;IACX,MAAA;;;IACO,MAAA;;;;IAEF,MAAA,SAAS;;;;IAEP,MAAA,SAAS;;;;IAET,MAAA,SAAS;;;;;;;;IAGb,MAAA;;;;;;;;;;;;;;;;;;IAOR,MAAA,SAAS;;;;;;IAID,MAAA,SAAS;;;IACR,MAAA,SAAS;;;;;;;;;;;;;;;;;;EAY/B,WAAC,OAAO,sBAAsB;kCA6B1C;cAEW,2BAAW,0BAAA,oBAAA,4BAAA;;8BAWtB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,0BAAA,oBAAA,4BAAA;;8BAMrB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,2BAAW,0BAAA,oBAAA,4BAAA;;8BAQtB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,6BAAa,0BAAA,oBAAA,4BAAA;;8BAOxB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;;;;;;cAQW,gCAAgB,0BAAA,oBAAA,4BAAA;;8BAU3B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,8BAAA;;;;;;;;;;;;MAiBrB,oDAAA;cAEW,8BAAc,0BAAA,oBAAA,4BAAA;;8BAOzB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;cAGW,qCAAqB,0BAAA,oBAAA,4BAAA;;8BAOhC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;cAGW,gCAAgB,0BAAA,oBAAA,4BAAA;;8BAO3B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;;;;;cAOW,qCAAqB,0BAAA,oBAAA,4BAAA;;8BAOhC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAO9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,4BAAY,8BAAA;;;;;;;;;;;;MAkBvB,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAO9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAO9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,qCAAqB,0BAAA,oBAAA,4BAAA;;8BAOhC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,gCAAgB,0BAAA,oBAAA,4BAAA;;8BAO3B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;cAGW,uCAAuB,0BAAA,oBAAA,4BAAA;;8BAOlC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAQ9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { withXhConfig } from "../../config/config.js";
|
|
2
2
|
import { provideTree, provideTreeNode, useTreeContext, useTreeNodeContext } from "./context.js";
|
|
3
3
|
import { useTree } from "./use-tree.js";
|
|
4
|
-
import { computed, defineComponent, h, onBeforeUnmount, ref, watch } from "vue";
|
|
4
|
+
import { computed, defineComponent, h, onBeforeUnmount, onUnmounted, ref, watch } from "vue";
|
|
5
5
|
//#region src/components/tree/tree.ts
|
|
6
6
|
/** 本节点持有焦点时,value 变更重新报告焦点节点,卸载时上报整树失焦 */
|
|
7
7
|
function reportNodeFocus(ctx, el, value) {
|
|
@@ -34,10 +34,8 @@ const XhTreeRoot = defineComponent({
|
|
|
34
34
|
defaultExpandedValue: { type: Array },
|
|
35
35
|
selection: { type: Array },
|
|
36
36
|
defaultSelection: { type: Array },
|
|
37
|
-
multiple
|
|
38
|
-
|
|
39
|
-
default: void 0
|
|
40
|
-
},
|
|
37
|
+
/** 选择模式,默认 single:multiple 点击切换;extended 点击换选、Ctrl/Cmd 点击加选、Shift 点击连选。 */
|
|
38
|
+
selectionMode: { type: String },
|
|
41
39
|
/** 末端层的排布方式,默认 vertical;horizontal 使子节点全为叶子的层并排铺开。 */
|
|
42
40
|
leafOrientation: { type: String },
|
|
43
41
|
cascade: Boolean,
|
|
@@ -110,6 +108,10 @@ const XhTreeLabel = defineComponent({
|
|
|
110
108
|
name: "XhTreeLabel",
|
|
111
109
|
setup(_, { slots }) {
|
|
112
110
|
const ctx = useTreeContext();
|
|
111
|
+
ctx.labelCount.value++;
|
|
112
|
+
onUnmounted(() => {
|
|
113
|
+
ctx.labelCount.value--;
|
|
114
|
+
});
|
|
113
115
|
return () => h("span", ctx.api.value.getLabelProps(), slots.default?.());
|
|
114
116
|
}
|
|
115
117
|
});
|
|
@@ -262,6 +264,15 @@ const XhTreeBranchText = defineComponent({
|
|
|
262
264
|
return () => h("span", ctx.api.value.getBranchTextProps(node.value), slots.default?.());
|
|
263
265
|
}
|
|
264
266
|
});
|
|
267
|
+
/** 分支行的第 2 行副文本,与叶子的说明同一档 */
|
|
268
|
+
const XhTreeBranchDescription = defineComponent({
|
|
269
|
+
name: "XhTreeBranchDescription",
|
|
270
|
+
setup(_, { slots }) {
|
|
271
|
+
const ctx = useTreeContext();
|
|
272
|
+
const { node } = useTreeNodeContext();
|
|
273
|
+
return () => h("span", ctx.api.value.getBranchDescriptionProps(node.value), slots.default?.());
|
|
274
|
+
}
|
|
275
|
+
});
|
|
265
276
|
const XhTreeBranchContent = defineComponent({
|
|
266
277
|
name: "XhTreeBranchContent",
|
|
267
278
|
setup(_, { slots }) {
|
|
@@ -271,6 +282,6 @@ const XhTreeBranchContent = defineComponent({
|
|
|
271
282
|
}
|
|
272
283
|
});
|
|
273
284
|
//#endregion
|
|
274
|
-
export { XhTreeBranch, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeEmpty, XhTreeItem, XhTreeItemDescription, XhTreeItemIndicator, XhTreeItemSuffix, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeLoading, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeTree };
|
|
285
|
+
export { XhTreeBranch, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchDescription, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeEmpty, XhTreeItem, XhTreeItemDescription, XhTreeItemIndicator, XhTreeItemSuffix, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeLoading, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeTree };
|
|
275
286
|
|
|
276
287
|
//# sourceMappingURL=tree.js.map
|