@xihan-ui/vue 1.0.0-alpha.3 → 1.0.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 +2057 -0
- package/dist/backgrounds.d.ts.map +1 -1
- package/dist/backgrounds.js +1 -5
- package/dist/backgrounds.js.map +1 -1
- package/dist/behavior.d.ts +38 -0
- package/dist/behavior.d.ts.map +1 -0
- package/dist/behavior.js +74 -0
- package/dist/behavior.js.map +1 -0
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/accordion/context.js +2 -2
- package/dist/components/accordion/context.js.map +1 -1
- package/dist/components/affix/context.js +1 -1
- package/dist/components/affix/context.js.map +1 -1
- package/dist/components/alert/context.js +1 -1
- package/dist/components/alert/context.js.map +1 -1
- package/dist/components/anchor/anchor.d.ts +2 -2
- package/dist/components/anchor/context.js +1 -1
- package/dist/components/anchor/context.js.map +1 -1
- package/dist/components/avatar/context.js +1 -1
- package/dist/components/avatar/context.js.map +1 -1
- package/dist/components/avatar-group/context.js +1 -1
- package/dist/components/avatar-group/context.js.map +1 -1
- package/dist/components/back-top/back-top.d.ts +2 -2
- package/dist/components/back-top/context.js +1 -1
- package/dist/components/back-top/context.js.map +1 -1
- package/dist/components/badge/badge.d.ts +142 -50
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/badge.js +67 -37
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/badge/context.js +15 -0
- package/dist/components/badge/context.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
- package/dist/components/breadcrumb/context.js +1 -1
- package/dist/components/breadcrumb/context.js.map +1 -1
- package/dist/components/button-group/button-group.d.ts +1 -1
- package/dist/components/calendar/context.js +2 -2
- package/dist/components/calendar/context.js.map +1 -1
- package/dist/components/card/card.d.ts +1 -1
- package/dist/components/card/context.js +1 -1
- package/dist/components/card/context.js.map +1 -1
- package/dist/components/carousel/context.js +1 -1
- package/dist/components/carousel/context.js.map +1 -1
- package/dist/components/cascader/cascader.d.ts +4 -4
- package/dist/components/cascader/cascader.d.ts.map +1 -1
- package/dist/components/cascader/cascader.js +14 -4
- package/dist/components/cascader/cascader.js.map +1 -1
- package/dist/components/cascader/context.js +2 -2
- package/dist/components/cascader/context.js.map +1 -1
- package/dist/components/cascader/use-cascader.js +1 -1
- package/dist/components/cascader/use-cascader.js.map +1 -1
- package/dist/components/checkbox-group/context.js +2 -2
- package/dist/components/checkbox-group/context.js.map +1 -1
- package/dist/components/clipboard/context.js +1 -1
- package/dist/components/clipboard/context.js.map +1 -1
- package/dist/components/collapsible/context.js +1 -1
- package/dist/components/collapsible/context.js.map +1 -1
- package/dist/components/color-picker/color-picker.d.ts +12 -3
- package/dist/components/color-picker/color-picker.d.ts.map +1 -1
- package/dist/components/color-picker/color-picker.js +7 -1
- package/dist/components/color-picker/color-picker.js.map +1 -1
- package/dist/components/color-picker/context.js +2 -2
- package/dist/components/color-picker/context.js.map +1 -1
- package/dist/components/color-picker/use-color-picker.js +1 -1
- package/dist/components/color-picker/use-color-picker.js.map +1 -1
- package/dist/components/combobox/combobox.d.ts +3 -3
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.js +10 -4
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox/context.js +3 -3
- package/dist/components/combobox/context.js.map +1 -1
- package/dist/components/combobox/use-combobox.js +1 -1
- package/dist/components/combobox/use-combobox.js.map +1 -1
- package/dist/components/composer/context.js +1 -1
- package/dist/components/composer/context.js.map +1 -1
- package/dist/components/context-menu/context-menu.d.ts +4 -4
- package/dist/components/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu/context-menu.js +3 -1
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/context-menu/context.js +5 -5
- package/dist/components/context-menu/context.js.map +1 -1
- package/dist/components/context-menu/use-context-menu.js +1 -1
- package/dist/components/context-menu/use-context-menu.js.map +1 -1
- package/dist/components/date-field/context.js +1 -1
- package/dist/components/date-field/context.js.map +1 -1
- package/dist/components/date-field/date-field.d.ts +2 -2
- package/dist/components/date-picker/context.js +13 -4
- package/dist/components/date-picker/context.js.map +1 -1
- package/dist/components/date-picker/date-picker.d.ts +80 -44
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.js +68 -26
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-picker/use-date-picker.js +1 -1
- package/dist/components/date-picker/use-date-picker.js.map +1 -1
- package/dist/components/descriptions/context.js +1 -1
- package/dist/components/descriptions/context.js.map +1 -1
- package/dist/components/dialog/context.js +1 -1
- package/dist/components/dialog/context.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +1 -1
- package/dist/components/drawer/context.js +1 -1
- package/dist/components/drawer/context.js.map +1 -1
- package/dist/components/drawer/drawer.d.ts +2 -2
- package/dist/components/dynamic-input/context.js +2 -2
- package/dist/components/dynamic-input/context.js.map +1 -1
- package/dist/components/editable/context.js +1 -1
- package/dist/components/editable/context.js.map +1 -1
- package/dist/components/empty-state/context.js +1 -1
- package/dist/components/empty-state/context.js.map +1 -1
- package/dist/components/field/context.d.ts +9 -0
- package/dist/components/field/context.d.ts.map +1 -0
- package/dist/components/field/context.js +6 -2
- package/dist/components/field/context.js.map +1 -1
- package/dist/components/field/field.d.ts +26 -2
- package/dist/components/field/field.d.ts.map +1 -1
- package/dist/components/field/field.js +15 -4
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/field/use-field-control.d.ts +41 -0
- package/dist/components/field/use-field-control.d.ts.map +1 -0
- package/dist/components/field/use-field-control.js +77 -0
- package/dist/components/field/use-field-control.js.map +1 -0
- package/dist/components/fieldset/context.js +1 -1
- package/dist/components/fieldset/context.js.map +1 -1
- package/dist/components/file-upload/context.js +2 -2
- package/dist/components/file-upload/context.js.map +1 -1
- package/dist/components/flex/flex.d.ts +9 -0
- package/dist/components/flex/flex.d.ts.map +1 -1
- package/dist/components/flex/flex.js +4 -0
- package/dist/components/flex/flex.js.map +1 -1
- package/dist/components/float-button/context.js +1 -1
- package/dist/components/float-button/context.js.map +1 -1
- package/dist/components/float-button/float-button.d.ts +2 -2
- package/dist/components/floating-panel/context.js +1 -1
- package/dist/components/floating-panel/context.js.map +1 -1
- package/dist/components/floating-panel/floating-panel.d.ts +1 -1
- package/dist/components/form/context.js +2 -2
- package/dist/components/form/context.js.map +1 -1
- package/dist/components/grid/context.js +1 -1
- package/dist/components/grid/context.js.map +1 -1
- package/dist/components/heatmap/context.js +3 -3
- package/dist/components/heatmap/context.js.map +1 -1
- package/dist/components/heatmap/heatmap.d.ts +1 -1
- package/dist/components/hotkeys/hotkeys.d.ts +3 -1
- package/dist/components/hotkeys/hotkeys.d.ts.map +1 -1
- package/dist/components/hotkeys/hotkeys.js +7 -25
- package/dist/components/hotkeys/hotkeys.js.map +1 -1
- package/dist/components/hotkeys/use-hotkeys.d.ts +31 -0
- package/dist/components/hotkeys/use-hotkeys.d.ts.map +1 -0
- package/dist/components/hotkeys/use-hotkeys.js +60 -0
- package/dist/components/hotkeys/use-hotkeys.js.map +1 -0
- package/dist/components/hover-card/context.js +1 -1
- package/dist/components/hover-card/context.js.map +1 -1
- package/dist/components/hover-card/hover-card.d.ts +2 -2
- package/dist/components/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card/hover-card.js +3 -1
- package/dist/components/hover-card/hover-card.js.map +1 -1
- package/dist/components/hover-card/use-hover-card.js +1 -1
- package/dist/components/hover-card/use-hover-card.js.map +1 -1
- package/dist/components/icon/icon.d.ts +1 -1
- package/dist/components/icon-wrapper/icon-wrapper.d.ts +1 -1
- package/dist/components/image/context.js +1 -1
- package/dist/components/image/context.js.map +1 -1
- package/dist/components/image-cropper/context.js +1 -1
- package/dist/components/image-cropper/context.js.map +1 -1
- package/dist/components/image-cropper/image-cropper.d.ts +1 -1
- package/dist/components/image-viewer/context.js +1 -1
- package/dist/components/image-viewer/context.js.map +1 -1
- package/dist/components/image-viewer/image-viewer.d.ts +2 -2
- package/dist/components/infinite-scroll/context.js +1 -1
- package/dist/components/infinite-scroll/context.js.map +1 -1
- package/dist/components/infinite-scroll/infinite-scroll.d.ts +1 -1
- package/dist/components/json-viewer/json-viewer.d.ts +12 -3
- package/dist/components/json-viewer/json-viewer.d.ts.map +1 -1
- package/dist/components/json-viewer/json-viewer.js +23 -2
- package/dist/components/json-viewer/json-viewer.js.map +1 -1
- package/dist/components/layout/context.js +1 -1
- package/dist/components/layout/context.js.map +1 -1
- package/dist/components/list/context.js +1 -1
- package/dist/components/list/context.js.map +1 -1
- package/dist/components/list/list.d.ts +1 -1
- package/dist/components/listbox/context.js +3 -3
- package/dist/components/listbox/context.js.map +1 -1
- package/dist/components/loading-bar/context.js +1 -1
- package/dist/components/loading-bar/context.js.map +1 -1
- package/dist/components/log/context.js +1 -1
- package/dist/components/log/context.js.map +1 -1
- package/dist/components/marquee/context.js +1 -1
- package/dist/components/marquee/context.js.map +1 -1
- package/dist/components/mention/context.js +2 -2
- package/dist/components/mention/context.js.map +1 -1
- package/dist/components/mention/mention.d.ts +2 -2
- package/dist/components/mention/mention.d.ts.map +1 -1
- package/dist/components/mention/mention.js +10 -4
- package/dist/components/mention/mention.js.map +1 -1
- package/dist/components/mention/use-mention.js +1 -1
- package/dist/components/mention/use-mention.js.map +1 -1
- package/dist/components/menu/context.js +4 -4
- package/dist/components/menu/context.js.map +1 -1
- package/dist/components/menu/menu.d.ts +3 -3
- package/dist/components/menu/menu.d.ts.map +1 -1
- package/dist/components/menu/menu.js +3 -1
- package/dist/components/menu/menu.js.map +1 -1
- package/dist/components/menu/use-menu.js +1 -1
- package/dist/components/menu/use-menu.js.map +1 -1
- package/dist/components/menubar/context.js +6 -6
- package/dist/components/menubar/context.js.map +1 -1
- package/dist/components/menubar/menubar.d.ts +2 -2
- package/dist/components/menubar/menubar.js.map +1 -1
- package/dist/components/navigation-menu/context.js +1 -1
- package/dist/components/navigation-menu/context.js.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
- package/dist/components/notification/context.d.ts +23 -0
- package/dist/components/notification/context.d.ts.map +1 -0
- package/dist/components/notification/context.js +28 -0
- package/dist/components/notification/context.js.map +1 -0
- package/dist/components/notification/notification.d.ts +249 -0
- package/dist/components/notification/notification.d.ts.map +1 -0
- package/dist/components/notification/notification.js +179 -0
- package/dist/components/notification/notification.js.map +1 -0
- package/dist/components/notification/use-notification.d.ts +14 -0
- package/dist/components/notification/use-notification.d.ts.map +1 -0
- package/dist/components/notification/use-notification.js +42 -0
- package/dist/components/notification/use-notification.js.map +1 -0
- package/dist/components/number-animation/number-animation.d.ts +1 -1
- package/dist/components/number-field/context.js +1 -1
- package/dist/components/number-field/context.js.map +1 -1
- package/dist/components/number-field/number-field.d.ts +3 -3
- package/dist/components/number-field/number-field.d.ts.map +1 -1
- package/dist/components/number-field/number-field.js +7 -1
- package/dist/components/number-field/number-field.js.map +1 -1
- package/dist/components/page-header/context.js +1 -1
- package/dist/components/page-header/context.js.map +1 -1
- package/dist/components/pagination/context.js +1 -1
- package/dist/components/pagination/context.js.map +1 -1
- package/dist/components/pagination/pagination.d.ts +60 -6
- package/dist/components/pagination/pagination.d.ts.map +1 -1
- package/dist/components/pagination/pagination.js +85 -5
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/pagination/use-pagination.d.ts +12 -2
- package/dist/components/pagination/use-pagination.d.ts.map +1 -1
- package/dist/components/pagination/use-pagination.js +50 -5
- package/dist/components/pagination/use-pagination.js.map +1 -1
- package/dist/components/password-input/context.js +1 -1
- package/dist/components/password-input/context.js.map +1 -1
- package/dist/components/password-input/password-input.d.ts +2 -2
- package/dist/components/password-input/password-input.d.ts.map +1 -1
- package/dist/components/password-input/password-input.js +7 -1
- package/dist/components/password-input/password-input.js.map +1 -1
- package/dist/components/pin-input/context.js +1 -1
- package/dist/components/pin-input/context.js.map +1 -1
- package/dist/components/pin-input/pin-input.d.ts +1 -1
- package/dist/components/popconfirm/context.js +1 -1
- package/dist/components/popconfirm/context.js.map +1 -1
- package/dist/components/popconfirm/popconfirm.d.ts +1 -1
- package/dist/components/popover/context.js +1 -1
- package/dist/components/popover/context.js.map +1 -1
- package/dist/components/popover/popover.d.ts +2 -2
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/popover/popover.js +3 -1
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/popover/use-popover.js +1 -1
- package/dist/components/popover/use-popover.js.map +1 -1
- package/dist/components/popselect/context.js +2 -2
- package/dist/components/popselect/context.js.map +1 -1
- package/dist/components/popselect/popselect.d.ts +3 -3
- package/dist/components/popselect/popselect.d.ts.map +1 -1
- package/dist/components/popselect/popselect.js +3 -1
- package/dist/components/popselect/popselect.js.map +1 -1
- package/dist/components/popselect/use-popselect.js +1 -1
- package/dist/components/popselect/use-popselect.js.map +1 -1
- package/dist/components/progress/progress.d.ts +1 -1
- package/dist/components/qr-code/context.js +1 -1
- package/dist/components/qr-code/context.js.map +1 -1
- package/dist/components/radio-group/context.js +2 -2
- package/dist/components/radio-group/context.js.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts +1 -1
- package/dist/components/rating/context.js +1 -1
- package/dist/components/rating/context.js.map +1 -1
- package/dist/components/rating/rating.d.ts +2 -2
- package/dist/components/result/context.js +1 -1
- package/dist/components/result/context.js.map +1 -1
- package/dist/components/scroll-area/context.js +2 -2
- package/dist/components/scroll-area/context.js.map +1 -1
- package/dist/components/scroll-area/scroll-area.d.ts +1 -1
- package/dist/components/scrollbar/context.js +1 -1
- package/dist/components/scrollbar/context.js.map +1 -1
- package/dist/components/scrollbar/scrollbar.d.ts +1 -1
- package/dist/components/segmented/context.js +2 -2
- package/dist/components/segmented/context.js.map +1 -1
- package/dist/components/segmented/segmented.d.ts +1 -1
- package/dist/components/select/context.js +3 -3
- package/dist/components/select/context.js.map +1 -1
- package/dist/components/select/select.d.ts +3 -3
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +7 -3
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/side-nav/context.js +2 -2
- package/dist/components/side-nav/context.js.map +1 -1
- package/dist/components/side-nav/side-nav.d.ts +1 -1
- package/dist/components/signature-pad/context.js +1 -1
- package/dist/components/signature-pad/context.js.map +1 -1
- package/dist/components/skeleton/context.js +1 -1
- package/dist/components/skeleton/context.js.map +1 -1
- package/dist/components/slider/context.js +2 -2
- package/dist/components/slider/context.js.map +1 -1
- package/dist/components/slider/slider.d.ts +1 -1
- package/dist/components/space/context.js +1 -1
- package/dist/components/space/context.js.map +1 -1
- package/dist/components/space/space.d.ts +9 -0
- package/dist/components/space/space.d.ts.map +1 -1
- package/dist/components/space/space.js +4 -0
- package/dist/components/space/space.js.map +1 -1
- package/dist/components/spinner/context.js +1 -1
- package/dist/components/spinner/context.js.map +1 -1
- package/dist/components/spinner/spinner.d.ts +1 -1
- package/dist/components/splitter/context.js +1 -1
- package/dist/components/splitter/context.js.map +1 -1
- package/dist/components/statistic/context.js +1 -1
- package/dist/components/statistic/context.js.map +1 -1
- package/dist/components/statistic/statistic.d.ts +1 -1
- package/dist/components/steps/context.js +2 -2
- package/dist/components/steps/context.js.map +1 -1
- package/dist/components/steps/steps.d.ts +2 -2
- package/dist/components/table/context.js +4 -4
- package/dist/components/table/context.js.map +1 -1
- package/dist/components/table/table.d.ts +62 -3
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table/table.js +37 -1
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/use-table.d.ts +1 -1
- package/dist/components/table/use-table.d.ts.map +1 -1
- package/dist/components/table/use-table.js +3 -2
- package/dist/components/table/use-table.js.map +1 -1
- package/dist/components/tabs/context.js +1 -1
- package/dist/components/tabs/context.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +1 -1
- package/dist/components/tag/context.js +1 -1
- package/dist/components/tag/context.js.map +1 -1
- package/dist/components/tag/use-tag.js +14 -2
- package/dist/components/tag/use-tag.js.map +1 -1
- package/dist/components/tags-input/context.js +2 -2
- package/dist/components/tags-input/context.js.map +1 -1
- package/dist/components/tags-input/tags-input.d.ts +3 -3
- package/dist/components/tags-input/tags-input.d.ts.map +1 -1
- package/dist/components/tags-input/tags-input.js +7 -1
- package/dist/components/tags-input/tags-input.js.map +1 -1
- package/dist/components/text-field/context.js +1 -1
- package/dist/components/text-field/context.js.map +1 -1
- package/dist/components/text-field/text-field.d.ts +1 -1
- package/dist/components/text-field/text-field.d.ts.map +1 -1
- package/dist/components/text-field/text-field.js +7 -3
- package/dist/components/text-field/text-field.js.map +1 -1
- package/dist/components/thread/context.d.ts +7 -0
- package/dist/components/thread/context.d.ts.map +1 -0
- package/dist/components/thread/context.js +1 -1
- package/dist/components/thread/context.js.map +1 -1
- package/dist/components/time-field/context.js +1 -1
- package/dist/components/time-field/context.js.map +1 -1
- package/dist/components/time-field/time-field.d.ts +2 -2
- package/dist/components/time-picker/context.js +2 -2
- package/dist/components/time-picker/context.js.map +1 -1
- package/dist/components/time-picker/time-picker.d.ts +5 -5
- package/dist/components/time-picker/time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/time-picker.js +10 -1
- package/dist/components/time-picker/time-picker.js.map +1 -1
- package/dist/components/time-picker/use-time-picker.d.ts +1 -0
- package/dist/components/time-picker/use-time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/use-time-picker.js +3 -0
- package/dist/components/time-picker/use-time-picker.js.map +1 -1
- package/dist/components/timeline/context.js +2 -2
- package/dist/components/timeline/context.js.map +1 -1
- package/dist/components/timeline/timeline.d.ts +1 -1
- package/dist/components/timer/context.js +1 -1
- package/dist/components/timer/context.js.map +1 -1
- package/dist/components/toast/context.js +1 -1
- package/dist/components/toast/context.js.map +1 -1
- package/dist/components/toast/toast.d.ts +3 -15
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/toast/toast.js +1 -12
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toast/use-toast.d.ts.map +1 -1
- package/dist/components/toast/use-toast.js +1 -7
- package/dist/components/toast/use-toast.js.map +1 -1
- package/dist/components/toggle-group/context.js +1 -1
- package/dist/components/toggle-group/context.js.map +1 -1
- package/dist/components/toggle-group/toggle-group.d.ts +10 -1
- package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group/toggle-group.js +4 -0
- package/dist/components/toggle-group/toggle-group.js.map +1 -1
- package/dist/components/toolbar/context.js +1 -1
- package/dist/components/toolbar/context.js.map +1 -1
- package/dist/components/toolbar/toolbar.d.ts +1 -1
- package/dist/components/tooltip/context.js +1 -1
- package/dist/components/tooltip/context.js.map +1 -1
- package/dist/components/tooltip/tooltip.d.ts +2 -2
- package/dist/components/tour/context.js +1 -1
- package/dist/components/tour/context.js.map +1 -1
- package/dist/components/tour/tour.d.ts +2 -2
- package/dist/components/transfer/context.js +3 -3
- package/dist/components/transfer/context.js.map +1 -1
- package/dist/components/tree/context.js +2 -2
- package/dist/components/tree/context.js.map +1 -1
- package/dist/components/tree/tree.d.ts +20 -0
- package/dist/components/tree/tree.d.ts.map +1 -1
- package/dist/components/tree/tree.js +9 -0
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree-select/context.js +2 -2
- package/dist/components/tree-select/context.js.map +1 -1
- package/dist/components/tree-select/tree-select.d.ts +3 -3
- package/dist/components/tree-select/tree-select.d.ts.map +1 -1
- package/dist/components/tree-select/tree-select.js +14 -4
- package/dist/components/tree-select/tree-select.js.map +1 -1
- package/dist/components/tree-select/use-tree-select.js +1 -1
- package/dist/components/tree-select/use-tree-select.js.map +1 -1
- package/dist/components/typography/context.js +1 -1
- package/dist/components/typography/context.js.map +1 -1
- package/dist/components/virtualizer/context.js +1 -1
- package/dist/components/virtualizer/context.js.map +1 -1
- package/dist/components/watermark/context.js +1 -1
- package/dist/components/watermark/context.js.map +1 -1
- package/dist/config/config.js +1 -1
- package/dist/config/config.js.map +1 -1
- package/dist/index.d.ts +16 -9
- package/dist/index.js +15 -8
- package/dist/package.js +1 -1
- package/dist/runtime/use-scrollbars.js +66 -0
- package/dist/runtime/use-scrollbars.js.map +1 -0
- package/dist/services/dialog-service.d.ts +33 -8
- package/dist/services/dialog-service.d.ts.map +1 -1
- package/dist/services/dialog-service.js +44 -20
- package/dist/services/dialog-service.js.map +1 -1
- package/dist/services/glyph.js +41 -1
- package/dist/services/glyph.js.map +1 -1
- package/dist/services/loading-bar-service.d.ts +46 -0
- package/dist/services/loading-bar-service.d.ts.map +1 -0
- package/dist/services/loading-bar-service.js +70 -0
- package/dist/services/loading-bar-service.js.map +1 -0
- package/dist/services/mount-host.js +35 -0
- package/dist/services/mount-host.js.map +1 -0
- package/dist/services/notification-service.d.ts +46 -0
- package/dist/services/notification-service.d.ts.map +1 -0
- package/dist/services/notification-service.js +91 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/service-config.js +16 -0
- package/dist/services/service-config.js.map +1 -0
- package/dist/services/toast-service.d.ts +20 -12
- package/dist/services/toast-service.d.ts.map +1 -1
- package/dist/services/toast-service.js +103 -50
- package/dist/services/toast-service.js.map +1 -1
- package/package.json +18 -14
- package/dist/components/toaster/context.js +0 -19
- package/dist/components/toaster/context.js.map +0 -1
- package/dist/components/toaster/toaster.d.ts +0 -135
- package/dist/components/toaster/toaster.d.ts.map +0 -1
- package/dist/components/toaster/toaster.js +0 -91
- package/dist/components/toaster/toaster.js.map +0 -1
- package/dist/components/toaster/use-toaster.d.ts +0 -15
- package/dist/components/toaster/use-toaster.d.ts.map +0 -1
- package/dist/components/toaster/use-toaster.js +0 -23
- package/dist/components/toaster/use-toaster.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ import { XhAvatarFallback, XhAvatarImage, XhAvatarRoot } from "./components/avat
|
|
|
18
18
|
import { provideBackTop, useBackTopContext } from "./components/back-top/context.js";
|
|
19
19
|
import { useBackTop } from "./components/back-top/use-back-top.js";
|
|
20
20
|
import { XhBackTopRoot, XhBackTopTrigger } from "./components/back-top/back-top.js";
|
|
21
|
-
import { XhBadge } from "./components/badge/badge.js";
|
|
21
|
+
import { XhBadge, XhBadgeIndicator, XhBadgeRoot } from "./components/badge/badge.js";
|
|
22
22
|
import { useBreadcrumb } from "./components/breadcrumb/use-breadcrumb.js";
|
|
23
23
|
import { XhBreadcrumbEllipsis, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator } from "./components/breadcrumb/breadcrumb.js";
|
|
24
24
|
import { XhButton, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix } from "./components/button.js";
|
|
@@ -28,6 +28,10 @@ import { XhCalendarCell, XhCalendarCellTrigger, XhCalendarGrid, XhCalendarGridBo
|
|
|
28
28
|
import { XhCardBody, XhCardCover, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle } from "./components/card/card.js";
|
|
29
29
|
import { useCarousel } from "./components/carousel/use-carousel.js";
|
|
30
30
|
import { XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselItemGroup, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport } from "./components/carousel/carousel.js";
|
|
31
|
+
import { provideField, useFieldContext, useOptionalFieldContext } from "./components/field/context.js";
|
|
32
|
+
import { useField } from "./components/field/use-field.js";
|
|
33
|
+
import { XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot } from "./components/field/field.js";
|
|
34
|
+
import { useFieldControl, useFieldLabelWiring, useFieldStateWiring } from "./components/field/use-field-control.js";
|
|
31
35
|
import { useCascader } from "./components/cascader/use-cascader.js";
|
|
32
36
|
import { XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemIndicator, XhCascaderItemText, XhCascaderLabel, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTrigger, XhCascaderValueText } from "./components/cascader/cascader.js";
|
|
33
37
|
import { useCheckboxGroup } from "./components/checkbox-group/use-checkbox-group.js";
|
|
@@ -71,8 +75,6 @@ import { XhEditableArea, XhEditableCancelTrigger, XhEditableControl, XhEditableE
|
|
|
71
75
|
import { useEllipsis } from "./components/ellipsis/use-ellipsis.js";
|
|
72
76
|
import { XhEllipsis } from "./components/ellipsis/ellipsis.js";
|
|
73
77
|
import { XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIcon, XhEmptyStateRoot, XhEmptyStateTitle } from "./components/empty-state/empty-state.js";
|
|
74
|
-
import { useField } from "./components/field/use-field.js";
|
|
75
|
-
import { XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot } from "./components/field/field.js";
|
|
76
78
|
import { useFieldsetContext } from "./components/fieldset/context.js";
|
|
77
79
|
import { useFieldset } from "./components/fieldset/use-fieldset.js";
|
|
78
80
|
import { XhFieldsetErrorText, XhFieldsetHelperText, XhFieldsetLegend, XhFieldsetRoot } from "./components/fieldset/fieldset.js";
|
|
@@ -94,6 +96,7 @@ import { useHeatmapContext } from "./components/heatmap/context.js";
|
|
|
94
96
|
import { useHeatmap } from "./components/heatmap/use-heatmap.js";
|
|
95
97
|
import { XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDayLabel } from "./components/heatmap/heatmap.js";
|
|
96
98
|
import { XhHighlight } from "./components/highlight/highlight.js";
|
|
99
|
+
import { useHotkeys } from "./components/hotkeys/use-hotkeys.js";
|
|
97
100
|
import { XhHotkeys } from "./components/hotkeys/hotkeys.js";
|
|
98
101
|
import { useHoverCard } from "./components/hover-card/use-hover-card.js";
|
|
99
102
|
import { XhHoverCardArrow, XhHoverCardContent, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTrigger } from "./components/hover-card/hover-card.js";
|
|
@@ -137,13 +140,16 @@ import { useMenubar } from "./components/menubar/use-menubar.js";
|
|
|
137
140
|
import { XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemIndicator, XhMenubarItemText, XhMenubarPositioner, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger } from "./components/menubar/menubar.js";
|
|
138
141
|
import { useNavigationMenu } from "./components/navigation-menu/use-navigation-menu.js";
|
|
139
142
|
import { XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuViewport } from "./components/navigation-menu/navigation-menu.js";
|
|
143
|
+
import { provideNotification, provideNotificationItem, useNotificationContext, useNotificationContextOptional, useNotificationItemContext } from "./components/notification/context.js";
|
|
144
|
+
import { useNotification, useNotificationItem } from "./components/notification/use-notification.js";
|
|
145
|
+
import { XhNotificationGroup, XhNotificationItem, XhNotificationItemActionTrigger, XhNotificationItemCloseTrigger, XhNotificationItemDescription, XhNotificationItemIndicator, XhNotificationItemTitle, XhNotificationRoot } from "./components/notification/notification.js";
|
|
140
146
|
import { XhNumberAnimation } from "./components/number-animation/number-animation.js";
|
|
141
147
|
import { useNumberField } from "./components/number-field/use-number-field.js";
|
|
142
148
|
import { XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldRoot } from "./components/number-field/number-field.js";
|
|
143
149
|
import { providePageHeader, usePageHeaderContext } from "./components/page-header/context.js";
|
|
144
150
|
import { XhPageHeaderBackTrigger, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderRoot, XhPageHeaderSubtitle, XhPageHeaderTitle } from "./components/page-header/page-header.js";
|
|
145
151
|
import { usePagination } from "./components/pagination/use-pagination.js";
|
|
146
|
-
import { XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPrevTrigger, XhPaginationRoot } from "./components/pagination/pagination.js";
|
|
152
|
+
import { XhPaginationContent, XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPageSizeSelect, XhPaginationPositioner, XhPaginationPrevTrigger, XhPaginationRoot } from "./components/pagination/pagination.js";
|
|
147
153
|
import { usePasswordInputContext } from "./components/password-input/context.js";
|
|
148
154
|
import { usePasswordInput } from "./components/password-input/use-password-input.js";
|
|
149
155
|
import { XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputVisibilityTrigger } from "./components/password-input/password-input.js";
|
|
@@ -208,6 +214,7 @@ import { useTagsInput } from "./components/tags-input/use-tags-input.js";
|
|
|
208
214
|
import { XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot } from "./components/tags-input/tags-input.js";
|
|
209
215
|
import { useTextField } from "./components/text-field/use-text-field.js";
|
|
210
216
|
import { XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldInput, XhTextFieldLabel, XhTextFieldRoot } from "./components/text-field/text-field.js";
|
|
217
|
+
import { provideThread, useThreadContext } from "./components/thread/context.js";
|
|
211
218
|
import { useThread } from "./components/thread/use-thread.js";
|
|
212
219
|
import { XhThreadContent, XhThreadLiveRegion, XhThreadRoot, XhThreadScrollButton, XhThreadViewport } from "./components/thread/thread.js";
|
|
213
220
|
import { useTimeField } from "./components/time-field/use-time-field.js";
|
|
@@ -221,9 +228,7 @@ import { useTimerContext } from "./components/timer/context.js";
|
|
|
221
228
|
import { useTimer } from "./components/timer/use-timer.js";
|
|
222
229
|
import { XhTimerArea, XhTimerControl, XhTimerItem, XhTimerRoot, XhTimerSeparator } from "./components/timer/timer.js";
|
|
223
230
|
import { useToast } from "./components/toast/use-toast.js";
|
|
224
|
-
import { XhToastActionTrigger, XhToastCloseTrigger,
|
|
225
|
-
import { useToaster } from "./components/toaster/use-toaster.js";
|
|
226
|
-
import { XhToasterGroup, XhToasterRoot } from "./components/toaster/toaster.js";
|
|
231
|
+
import { XhToastActionTrigger, XhToastCloseTrigger, XhToastRoot, XhToastTitle } from "./components/toast/toast.js";
|
|
227
232
|
import { useToggleGroup } from "./components/toggle-group/use-toggle-group.js";
|
|
228
233
|
import { XhToggleGroupItem, XhToggleGroupRoot } from "./components/toggle-group/toggle-group.js";
|
|
229
234
|
import { useToggle } from "./components/toggle/use-toggle.js";
|
|
@@ -247,5 +252,7 @@ import { XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualiz
|
|
|
247
252
|
import { provideWatermark, useWatermarkContext } from "./components/watermark/context.js";
|
|
248
253
|
import { XhWatermarkContent, XhWatermarkRoot } from "./components/watermark/watermark.js";
|
|
249
254
|
import { createDialogService } from "./services/dialog-service.js";
|
|
255
|
+
import { createLoadingBarService } from "./services/loading-bar-service.js";
|
|
256
|
+
import { createNotificationService } from "./services/notification-service.js";
|
|
250
257
|
import { createToastService } from "./services/toast-service.js";
|
|
251
|
-
export { XhAccordionContent, XhAccordionHeader, XhAccordionIndicator, XhAccordionItem, XhAccordionRoot, XhAccordionTrigger, XhAffixContent, XhAffixRoot, XhAlertCloseTrigger, XhAlertDescription, XhAlertIcon, XhAlertRoot, XhAlertTitle, XhAnchorIndicator, XhAnchorItem, XhAnchorLink, XhAnchorList, XhAnchorRoot, XhAvatarFallback, XhAvatarGroupOverflow, XhAvatarGroupRoot, XhAvatarImage, XhAvatarRoot, XhBackTopRoot, XhBackTopTrigger, XhBadge, XhBreadcrumbEllipsis, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator, XhButton, XhButtonGroup, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix, XhCalendarCell, XhCalendarCellTrigger, XhCalendarGrid, XhCalendarGridBody, XhCalendarGridHead, XhCalendarHeader, XhCalendarHeading, XhCalendarHeadingMonthTrigger, XhCalendarHeadingYearTrigger, XhCalendarNextTrigger, XhCalendarNextYearTrigger, XhCalendarPrevTrigger, XhCalendarPrevYearTrigger, XhCalendarRoot, XhCalendarWeekDay, XhCalendarWeekNumber, XhCalendarWeekRow, XhCardBody, XhCardCover, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle, XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselItemGroup, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport, XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemIndicator, XhCascaderItemText, XhCascaderLabel, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTrigger, XhCascaderValueText, XhCheckbox, XhCheckboxGroupIndicator, XhCheckboxGroupItem, XhCheckboxGroupItemText, XhCheckboxGroupLabel, XhCheckboxGroupRoot, XhCheckboxGroupTrigger, XhClipboardControl, XhClipboardIndicator, XhClipboardInput, XhClipboardLabel, XhClipboardRoot, XhClipboardTrigger, XhCodeBlock, XhCollapsibleContent, XhCollapsibleRoot, XhCollapsibleTrigger, XhColorPickerArea, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerChannelSlider, XhColorPickerChannelSliderThumb, XhColorPickerChannelSliderTrack, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerLabel, XhColorPickerPositioner, XhColorPickerRoot, XhColorPickerSwatch, XhColorPickerSwatchGroup, XhColorPickerSwatchItem, XhColorPickerTrigger, XhColorPickerValueText, XhComboboxClearTrigger, XhComboboxContent, XhComboboxControl, XhComboboxEmpty, XhComboboxHiddenInput, XhComboboxInput, XhComboboxItem, XhComboboxItemGroup, XhComboboxItemGroupLabel, XhComboboxItemIndicator, XhComboboxItemText, XhComboboxLabel, XhComboboxPositioner, XhComboboxRoot, XhComboboxTrigger, XhComposerInput, XhComposerRoot, XhComposerSubmitTrigger, XhContextMenuArrow, XhContextMenuContent, XhContextMenuGroup, XhContextMenuGroupLabel, XhContextMenuItem, XhContextMenuItemIndicator, XhContextMenuItemText, XhContextMenuPositioner, XhContextMenuRoot, XhContextMenuSeparator, XhContextMenuSub, XhContextMenuSubTrigger, XhContextMenuTrigger, XhCountdown, XhDateFieldClearTrigger, XhDateFieldControl, XhDateFieldHiddenInput, XhDateFieldLabel, XhDateFieldRoot, XhDateFieldSegment, XhDateFieldSegmentGroup, XhDatePickerCalendar, XhDatePickerCell, XhDatePickerCellTrigger, XhDatePickerClearTrigger, XhDatePickerConfirmTrigger, XhDatePickerContent, XhDatePickerControl, XhDatePickerGrid, XhDatePickerGridBody, XhDatePickerGridHead, XhDatePickerHeader, XhDatePickerHeading, XhDatePickerHeadingMonthTrigger, XhDatePickerHeadingYearTrigger, XhDatePickerHiddenInput, XhDatePickerLabel, XhDatePickerNextTrigger, XhDatePickerNextYearTrigger, XhDatePickerPositioner, XhDatePickerPreset, XhDatePickerPresets, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow, XhDescriptionsItem, XhDescriptionsLabel, XhDescriptionsRoot, XhDescriptionsValue, XhDialogCloseTrigger, XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle, XhDialogTrigger, XhDownloadTrigger, XhDrawerCloseTrigger, XhDrawerContent, XhDrawerDescription, XhDrawerRoot, XhDrawerTitle, XhDrawerTrigger, XhDynamicInputAddTrigger, XhDynamicInputItem, XhDynamicInputItemAction, XhDynamicInputItemContent, XhDynamicInputItemDeleteTrigger, XhDynamicInputMoveDownTrigger, XhDynamicInputMoveUpTrigger, XhDynamicInputRoot, XhEditableArea, XhEditableCancelTrigger, XhEditableControl, XhEditableEditTrigger, XhEditableInput, XhEditableLabel, XhEditablePreview, XhEditableRoot, XhEditableSubmitTrigger, XhEllipsis, XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIcon, XhEmptyStateRoot, XhEmptyStateTitle, XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot, XhFieldsetErrorText, XhFieldsetHelperText, XhFieldsetLegend, XhFieldsetRoot, XhFileUploadClearTrigger, XhFileUploadDropzone, XhFileUploadHiddenInput, XhFileUploadItem, XhFileUploadItemDeleteTrigger, XhFileUploadItemGroup, XhFileUploadItemName, XhFileUploadItemPreview, XhFileUploadItemSizeText, XhFileUploadLabel, XhFileUploadRoot, XhFileUploadTrigger, XhFlex, XhFloatButtonList, XhFloatButtonRoot, XhFloatButtonTrigger, XhFloatingPanelBody, XhFloatingPanelCloseTrigger, XhFloatingPanelContent, XhFloatingPanelDragTrigger, XhFloatingPanelHeader, XhFloatingPanelPositioner, XhFloatingPanelResizeTrigger, XhFloatingPanelRoot, XhFloatingPanelStageTrigger, XhFloatingPanelTitle, XhFloatingPanelTrigger, XhFormErrorSummary, XhFormErrorSummaryItem, XhFormFieldGroup, XhFormResetTrigger, XhFormRoot, XhFormSubmitTrigger, XhGradientText, XhGridItem, XhGridRoot, XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDayLabel, XhHighlight, XhHotkeys, XhHoverCardArrow, XhHoverCardContent, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTrigger, XhIcon, XhIconWrapper, XhImageCropperCropArea, XhImageCropperCropHandle, XhImageCropperGrid, XhImageCropperHiddenInput, XhImageCropperImage, XhImageCropperRoot, XhImageCropperViewport, XhImageFallback, XhImageImage, XhImageRoot, XhImageViewerCloseTrigger, XhImageViewerContent, XhImageViewerCounter, XhImageViewerFlipHorizontalTrigger, XhImageViewerFlipVerticalTrigger, XhImageViewerImage, XhImageViewerNextTrigger, XhImageViewerPrevTrigger, XhImageViewerResetTrigger, XhImageViewerRoot, XhImageViewerRotateLeftTrigger, XhImageViewerRotateRightTrigger, XhImageViewerToolbar, XhImageViewerTrigger, XhImageViewerViewport, XhImageViewerZoomInTrigger, XhImageViewerZoomOutTrigger, XhInfiniteScrollRoot, XhInfiniteScrollSentinel, XhJsonViewerRoot, XhLayoutContent, XhLayoutFooter, XhLayoutHeader, XhLayoutRoot, XhLayoutSider, XhLayoutSiderTrigger, XhListItem, XhListItemAction, XhListItemContent, XhListItemDescription, XhListItemMedia, XhListItemTitle, XhListRoot, XhListboxContent, XhListboxItem, XhListboxItemGroup, XhListboxItemGroupLabel, XhListboxItemIndicator, XhListboxItemText, XhListboxLabel, XhListboxRoot, XhLoadingBarRange, XhLoadingBarRoot, XhLoadingBarTrack, XhLogContent, XhLogLine, XhLogRoot, XhLogViewport, XhMarqueeContent, XhMarqueeRoot, XhMasonry, XhMentionContent, XhMentionInput, XhMentionItem, XhMentionItemText, XhMentionPositioner, XhMentionRoot, XhMenuArrow, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuPositioner, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger, XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemIndicator, XhMenubarItemText, XhMenubarPositioner, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger, XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuViewport, XhNumberAnimation, XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldRoot, XhPageHeaderBackTrigger, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderRoot, XhPageHeaderSubtitle, XhPageHeaderTitle, XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPrevTrigger, XhPaginationRoot, XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputVisibilityTrigger, XhPinInputHiddenInput, XhPinInputInput, XhPinInputLabel, XhPinInputRoot, XhPopconfirmCancelTrigger, XhPopconfirmConfirmTrigger, XhPopconfirmContent, XhPopconfirmDescription, XhPopconfirmPositioner, XhPopconfirmRoot, XhPopconfirmTitle, XhPopconfirmTrigger, XhPopoverArrow, XhPopoverCloseTrigger, XhPopoverContent, XhPopoverDescription, XhPopoverPositioner, XhPopoverRoot, XhPopoverTitle, XhPopoverTrigger, XhPopselectClearTrigger, XhPopselectContent, XhPopselectControl, XhPopselectItem, XhPopselectItemIndicator, XhPopselectItemText, XhPopselectPositioner, XhPopselectRoot, XhPopselectTrigger, XhProgress, XhQrCode, XhQrCodeLogo, XhRadioGroupItem, XhRadioGroupItemText, XhRadioGroupLabel, XhRadioGroupRoot, XhRatingControl, XhRatingHiddenInput, XhRatingItem, XhRatingLabel, XhRatingRoot, XhResultAction, XhResultDescription, XhResultIcon, XhResultRoot, XhResultTitle, XhScrollAreaContent, XhScrollAreaCorner, XhScrollAreaRoot, XhScrollAreaScrollbar, XhScrollAreaThumb, XhScrollAreaTrack, XhScrollAreaViewport, XhScrollbarCorner, XhScrollbarRoot, XhScrollbarThumb, XhScrollbarTrack, XhSegmentedHiddenInput, XhSegmentedIndicator, XhSegmentedItem, XhSegmentedItemText, XhSegmentedRoot, XhSelectClearTrigger, XhSelectContent, XhSelectControl, XhSelectFooter, XhSelectIndicator, XhSelectItem, XhSelectItemDeleteTrigger, XhSelectItemIndicator, XhSelectItemText, XhSelectLabel, XhSelectList, XhSelectPositioner, XhSelectRoot, XhSelectTag, XhSelectTrigger, XhSelectValueText, XhSeparator, XhSideNavBranch, XhSideNavBranchContent, XhSideNavBranchIndicator, XhSideNavBranchText, XhSideNavBranchTrigger, XhSideNavGroup, XhSideNavGroupLabel, XhSideNavItem, XhSideNavLink, XhSideNavLinkText, XhSideNavList, XhSideNavRoot, XhSignaturePadClearTrigger, XhSignaturePadControl, XhSignaturePadGuide, XhSignaturePadHiddenInput, XhSignaturePadLabel, XhSignaturePadRoot, XhSignaturePadSegment, XhSignaturePadStatus, XhSkeletonBone, XhSkeletonRoot, XhSliderControl, XhSliderHiddenInput, XhSliderLabel, XhSliderMarks, XhSliderRange, XhSliderRoot, XhSliderThumb, XhSliderTrack, XhSpace, XhSpaceSplit, XhSpinner, XhSpinnerLabel, XhSplitterPanel, XhSplitterResizeTrigger, XhSplitterRoot, XhStatisticLabel, XhStatisticPrefix, XhStatisticRoot, XhStatisticSuffix, XhStatisticValue, XhStepsContent, XhStepsDescription, XhStepsIndicator, XhStepsItem, XhStepsList, XhStepsRoot, XhStepsSeparator, XhStepsTitle, XhStepsTrigger, XhSwitch, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnHeader, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger, XhTabsContent, XhTabsList, XhTabsRoot, XhTabsTrigger, XhTagCloseTrigger, XhTagLabel, XhTagRoot, XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot, XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldInput, XhTextFieldLabel, XhTextFieldRoot, XhThreadContent, XhThreadLiveRegion, XhThreadRoot, XhThreadScrollButton, XhThreadViewport, XhTime, XhTimeFieldClearTrigger, XhTimeFieldControl, XhTimeFieldHiddenInput, XhTimeFieldLabel, XhTimeFieldRoot, XhTimeFieldSegment, XhTimeFieldSegmentGroup, XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerInput, XhTimePickerItem, XhTimePickerLabel, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresets, XhTimePickerRoot, XhTimePickerSegmentGroup, XhTimePickerTrigger, XhTimelineConnector, XhTimelineContent, XhTimelineDescription, XhTimelineIndicator, XhTimelineItem, XhTimelineRoot, XhTimelineTime, XhTimelineTitle, XhTimerArea, XhTimerControl, XhTimerItem, XhTimerRoot, XhTimerSeparator, XhToastActionTrigger, XhToastCloseTrigger, XhToastDescription, XhToastRoot, XhToastTitle, XhToasterGroup, XhToasterRoot, XhToggle, XhToggleGroupItem, XhToggleGroupRoot, XhToolbarGroup, XhToolbarItem, XhToolbarRoot, XhToolbarSeparator, XhTooltipArrow, XhTooltipContent, XhTooltipPositioner, XhTooltipRoot, XhTooltipTrigger, XhTourArrow, XhTourBackdrop, XhTourCloseTrigger, XhTourContent, XhTourDescription, XhTourNextTrigger, XhTourPositioner, XhTourPrevTrigger, XhTourProgressText, XhTourRoot, XhTourSkipTrigger, XhTourSpotlight, XhTourTitle, XhTransferItem, XhTransferItemCheckbox, XhTransferItemText, XhTransferList, XhTransferPanelCount, XhTransferPanelHeader, XhTransferPanelTitle, XhTransferRoot, XhTransferSearch, XhTransferSelectAllTrigger, XhTransferSourcePanel, XhTransferTargetPanel, XhTransferToSourceTrigger, XhTransferToTargetTrigger, XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeRoot, XhTreeSelectBranch, XhTreeSelectBranchContent, XhTreeSelectBranchControl, XhTreeSelectBranchIndicator, XhTreeSelectBranchText, XhTreeSelectBranchTrigger, XhTreeSelectClearTrigger, XhTreeSelectContent, XhTreeSelectControl, XhTreeSelectHiddenInput, XhTreeSelectIndicator, XhTreeSelectItem, XhTreeSelectItemIndicator, XhTreeSelectItemText, XhTreeSelectLabel, XhTreeSelectPositioner, XhTreeSelectRoot, XhTreeSelectTree, XhTreeSelectTrigger, XhTreeSelectValueText, XhTreeTree, XhTypographyHeading, XhTypographyLink, XhTypographyParagraph, XhTypographyRoot, XhTypographyText, XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualizerViewport, XhWatermarkContent, XhWatermarkRoot, createDialogService, createToastService, createVueIdGenerator, createVueRuntime, mergeXhConfig, provideAffix, provideAvatarGroup, provideBackTop, provideContextMenuChain, provideContextMenuSub, provideDescriptions, provideDynamicInput, provideDynamicInputItem, provideFloatButton, provideGrid, provideImageViewer, provideInfiniteScroll, provideLayout, provideList, provideLog, provideMarquee, provideMention, provideMentionItem, provideMenu, provideMenuChain, provideMenuGroup, provideMenuSub, provideMenubarChain, provideMenubarSub, providePageHeader, providePopconfirm, providePopselect, providePopselectItem, provideQrCode, provideResult, provideScrollbar, provideSideNav, provideSideNavNode, provideStatistic, provideTimeline, provideTimelineItem, provideTypography, provideWatermark, provideXhConfig, useAccordion, useAffix, useAffixContext, useAnchor, useAvatar, useAvatarGroupContext, useBackTop, useBackTopContext, useBreadcrumb, useCalendar, useCarousel, useCascader, useCheckbox, useCheckboxGroup, useClipboard, useCollapsible, useColorPicker, useCombobox, useComposer, useContextMenu, useContextMenuChain, useContextMenuSubContext, useDateField, useDatePicker, useDescriptionsContext, useDialog, useDownloadTrigger, useDrawer, useDynamicInput, useDynamicInputContext, useDynamicInputItemContext, useEditable, useEllipsis, useField, useFieldset, useFieldsetContext, useFileUpload, useFloatButton, useFloatButtonContext, useFloatingPanel, useFloatingPanelContext, useForm, useGridContext, useHeatmap, useHeatmapContext, useHoverCard, useIcon, useImage, useImageCropper, useImageCropperContext, useImageViewer, useImageViewerContext, useInfiniteScroll, useInfiniteScrollContext, useJsonViewer, useLayout, useLayoutContext, useListContext, useListbox, useLoadingBar, useLog, useLogContext, useMachine, useMarqueeContext, useMention, useMentionContext, useMentionItemContext, useMenu, useMenuChain, useMenuContext, useMenuGroupContext, useMenuSubContext, useMenubar, useMenubarChain, useMenubarSubContext, useNavigationMenu, useNumberField, usePageHeaderContext, usePagination, usePasswordInput, usePasswordInputContext, usePinInput, usePopconfirm, usePopconfirmContext, usePopover, usePopselect, usePopselectContext, usePopselectItemContext, useQrCodeContext, useRadioGroup, useRating, useResultContext, useScrollArea, useScrollbar, useScrollbarContext, useSegmented, useSegmentedContext, useSegmentedItemContext, useSelect, useSideNav, useSideNavContext, useSideNavNodeContext, useSignaturePad, useSignaturePadContext, useSlider, useSpaceContext, useSplitter, useStatisticContext, useSteps, useSwitch, useTable, useTabs, useTag, useTagContext, useTagsInput, useTextField, useThread, useTimeField, useTimePicker, useTimelineContext, useTimelineItem, useTimer, useTimerContext, useToast, useToaster, useToggle, useToggleGroup, useToolbar, useTooltip, useTour, useTransfer, useTree, useTreeSelect, useTypographyContext, useVirtualizer, useWatermarkContext, useXhConfig, vueNormalize, withXhConfig };
|
|
258
|
+
export { XhAccordionContent, XhAccordionHeader, XhAccordionIndicator, XhAccordionItem, XhAccordionRoot, XhAccordionTrigger, XhAffixContent, XhAffixRoot, XhAlertCloseTrigger, XhAlertDescription, XhAlertIcon, XhAlertRoot, XhAlertTitle, XhAnchorIndicator, XhAnchorItem, XhAnchorLink, XhAnchorList, XhAnchorRoot, XhAvatarFallback, XhAvatarGroupOverflow, XhAvatarGroupRoot, XhAvatarImage, XhAvatarRoot, XhBackTopRoot, XhBackTopTrigger, XhBadge, XhBadgeIndicator, XhBadgeRoot, XhBreadcrumbEllipsis, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator, XhButton, XhButtonGroup, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix, XhCalendarCell, XhCalendarCellTrigger, XhCalendarGrid, XhCalendarGridBody, XhCalendarGridHead, XhCalendarHeader, XhCalendarHeading, XhCalendarHeadingMonthTrigger, XhCalendarHeadingYearTrigger, XhCalendarNextTrigger, XhCalendarNextYearTrigger, XhCalendarPrevTrigger, XhCalendarPrevYearTrigger, XhCalendarRoot, XhCalendarWeekDay, XhCalendarWeekNumber, XhCalendarWeekRow, XhCardBody, XhCardCover, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle, XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselItemGroup, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport, XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemIndicator, XhCascaderItemText, XhCascaderLabel, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTrigger, XhCascaderValueText, XhCheckbox, XhCheckboxGroupIndicator, XhCheckboxGroupItem, XhCheckboxGroupItemText, XhCheckboxGroupLabel, XhCheckboxGroupRoot, XhCheckboxGroupTrigger, XhClipboardControl, XhClipboardIndicator, XhClipboardInput, XhClipboardLabel, XhClipboardRoot, XhClipboardTrigger, XhCodeBlock, XhCollapsibleContent, XhCollapsibleRoot, XhCollapsibleTrigger, XhColorPickerArea, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerChannelSlider, XhColorPickerChannelSliderThumb, XhColorPickerChannelSliderTrack, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerLabel, XhColorPickerPositioner, XhColorPickerRoot, XhColorPickerSwatch, XhColorPickerSwatchGroup, XhColorPickerSwatchItem, XhColorPickerTrigger, XhColorPickerValueText, XhComboboxClearTrigger, XhComboboxContent, XhComboboxControl, XhComboboxEmpty, XhComboboxHiddenInput, XhComboboxInput, XhComboboxItem, XhComboboxItemGroup, XhComboboxItemGroupLabel, XhComboboxItemIndicator, XhComboboxItemText, XhComboboxLabel, XhComboboxPositioner, XhComboboxRoot, XhComboboxTrigger, XhComposerInput, XhComposerRoot, XhComposerSubmitTrigger, XhContextMenuArrow, XhContextMenuContent, XhContextMenuGroup, XhContextMenuGroupLabel, XhContextMenuItem, XhContextMenuItemIndicator, XhContextMenuItemText, XhContextMenuPositioner, XhContextMenuRoot, XhContextMenuSeparator, XhContextMenuSub, XhContextMenuSubTrigger, XhContextMenuTrigger, XhCountdown, XhDateFieldClearTrigger, XhDateFieldControl, XhDateFieldHiddenInput, XhDateFieldLabel, XhDateFieldRoot, XhDateFieldSegment, XhDateFieldSegmentGroup, XhDatePickerCalendar, XhDatePickerCell, XhDatePickerCellTrigger, XhDatePickerClearTrigger, XhDatePickerConfirmTrigger, XhDatePickerContent, XhDatePickerControl, XhDatePickerGrid, XhDatePickerGridBody, XhDatePickerGridHead, XhDatePickerHeader, XhDatePickerHeading, XhDatePickerHeadingMonthTrigger, XhDatePickerHeadingYearTrigger, XhDatePickerHiddenInput, XhDatePickerLabel, XhDatePickerNextTrigger, XhDatePickerNextYearTrigger, XhDatePickerPositioner, XhDatePickerPreset, XhDatePickerPresets, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow, XhDescriptionsItem, XhDescriptionsLabel, XhDescriptionsRoot, XhDescriptionsValue, XhDialogCloseTrigger, XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle, XhDialogTrigger, XhDownloadTrigger, XhDrawerCloseTrigger, XhDrawerContent, XhDrawerDescription, XhDrawerRoot, XhDrawerTitle, XhDrawerTrigger, XhDynamicInputAddTrigger, XhDynamicInputItem, XhDynamicInputItemAction, XhDynamicInputItemContent, XhDynamicInputItemDeleteTrigger, XhDynamicInputMoveDownTrigger, XhDynamicInputMoveUpTrigger, XhDynamicInputRoot, XhEditableArea, XhEditableCancelTrigger, XhEditableControl, XhEditableEditTrigger, XhEditableInput, XhEditableLabel, XhEditablePreview, XhEditableRoot, XhEditableSubmitTrigger, XhEllipsis, XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIcon, XhEmptyStateRoot, XhEmptyStateTitle, XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot, XhFieldsetErrorText, XhFieldsetHelperText, XhFieldsetLegend, XhFieldsetRoot, XhFileUploadClearTrigger, XhFileUploadDropzone, XhFileUploadHiddenInput, XhFileUploadItem, XhFileUploadItemDeleteTrigger, XhFileUploadItemGroup, XhFileUploadItemName, XhFileUploadItemPreview, XhFileUploadItemSizeText, XhFileUploadLabel, XhFileUploadRoot, XhFileUploadTrigger, XhFlex, XhFloatButtonList, XhFloatButtonRoot, XhFloatButtonTrigger, XhFloatingPanelBody, XhFloatingPanelCloseTrigger, XhFloatingPanelContent, XhFloatingPanelDragTrigger, XhFloatingPanelHeader, XhFloatingPanelPositioner, XhFloatingPanelResizeTrigger, XhFloatingPanelRoot, XhFloatingPanelStageTrigger, XhFloatingPanelTitle, XhFloatingPanelTrigger, XhFormErrorSummary, XhFormErrorSummaryItem, XhFormFieldGroup, XhFormResetTrigger, XhFormRoot, XhFormSubmitTrigger, XhGradientText, XhGridItem, XhGridRoot, XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDayLabel, XhHighlight, XhHotkeys, XhHoverCardArrow, XhHoverCardContent, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTrigger, XhIcon, XhIconWrapper, XhImageCropperCropArea, XhImageCropperCropHandle, XhImageCropperGrid, XhImageCropperHiddenInput, XhImageCropperImage, XhImageCropperRoot, XhImageCropperViewport, XhImageFallback, XhImageImage, XhImageRoot, XhImageViewerCloseTrigger, XhImageViewerContent, XhImageViewerCounter, XhImageViewerFlipHorizontalTrigger, XhImageViewerFlipVerticalTrigger, XhImageViewerImage, XhImageViewerNextTrigger, XhImageViewerPrevTrigger, XhImageViewerResetTrigger, XhImageViewerRoot, XhImageViewerRotateLeftTrigger, XhImageViewerRotateRightTrigger, XhImageViewerToolbar, XhImageViewerTrigger, XhImageViewerViewport, XhImageViewerZoomInTrigger, XhImageViewerZoomOutTrigger, XhInfiniteScrollRoot, XhInfiniteScrollSentinel, XhJsonViewerRoot, XhLayoutContent, XhLayoutFooter, XhLayoutHeader, XhLayoutRoot, XhLayoutSider, XhLayoutSiderTrigger, XhListItem, XhListItemAction, XhListItemContent, XhListItemDescription, XhListItemMedia, XhListItemTitle, XhListRoot, XhListboxContent, XhListboxItem, XhListboxItemGroup, XhListboxItemGroupLabel, XhListboxItemIndicator, XhListboxItemText, XhListboxLabel, XhListboxRoot, XhLoadingBarRange, XhLoadingBarRoot, XhLoadingBarTrack, XhLogContent, XhLogLine, XhLogRoot, XhLogViewport, XhMarqueeContent, XhMarqueeRoot, XhMasonry, XhMentionContent, XhMentionInput, XhMentionItem, XhMentionItemText, XhMentionPositioner, XhMentionRoot, XhMenuArrow, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuPositioner, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger, XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemIndicator, XhMenubarItemText, XhMenubarPositioner, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger, XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuViewport, XhNotificationGroup, XhNotificationItem, XhNotificationItemActionTrigger, XhNotificationItemCloseTrigger, XhNotificationItemDescription, XhNotificationItemIndicator, XhNotificationItemTitle, XhNotificationRoot, XhNumberAnimation, XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldRoot, XhPageHeaderBackTrigger, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderRoot, XhPageHeaderSubtitle, XhPageHeaderTitle, XhPaginationContent, XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPageSizeSelect, XhPaginationPositioner, XhPaginationPrevTrigger, XhPaginationRoot, XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputVisibilityTrigger, XhPinInputHiddenInput, XhPinInputInput, XhPinInputLabel, XhPinInputRoot, XhPopconfirmCancelTrigger, XhPopconfirmConfirmTrigger, XhPopconfirmContent, XhPopconfirmDescription, XhPopconfirmPositioner, XhPopconfirmRoot, XhPopconfirmTitle, XhPopconfirmTrigger, XhPopoverArrow, XhPopoverCloseTrigger, XhPopoverContent, XhPopoverDescription, XhPopoverPositioner, XhPopoverRoot, XhPopoverTitle, XhPopoverTrigger, XhPopselectClearTrigger, XhPopselectContent, XhPopselectControl, XhPopselectItem, XhPopselectItemIndicator, XhPopselectItemText, XhPopselectPositioner, XhPopselectRoot, XhPopselectTrigger, XhProgress, XhQrCode, XhQrCodeLogo, XhRadioGroupItem, XhRadioGroupItemText, XhRadioGroupLabel, XhRadioGroupRoot, XhRatingControl, XhRatingHiddenInput, XhRatingItem, XhRatingLabel, XhRatingRoot, XhResultAction, XhResultDescription, XhResultIcon, XhResultRoot, XhResultTitle, XhScrollAreaContent, XhScrollAreaCorner, XhScrollAreaRoot, XhScrollAreaScrollbar, XhScrollAreaThumb, XhScrollAreaTrack, XhScrollAreaViewport, XhScrollbarCorner, XhScrollbarRoot, XhScrollbarThumb, XhScrollbarTrack, XhSegmentedHiddenInput, XhSegmentedIndicator, XhSegmentedItem, XhSegmentedItemText, XhSegmentedRoot, XhSelectClearTrigger, XhSelectContent, XhSelectControl, XhSelectFooter, XhSelectIndicator, XhSelectItem, XhSelectItemDeleteTrigger, XhSelectItemIndicator, XhSelectItemText, XhSelectLabel, XhSelectList, XhSelectPositioner, XhSelectRoot, XhSelectTag, XhSelectTrigger, XhSelectValueText, XhSeparator, XhSideNavBranch, XhSideNavBranchContent, XhSideNavBranchIndicator, XhSideNavBranchText, XhSideNavBranchTrigger, XhSideNavGroup, XhSideNavGroupLabel, XhSideNavItem, XhSideNavLink, XhSideNavLinkText, XhSideNavList, XhSideNavRoot, XhSignaturePadClearTrigger, XhSignaturePadControl, XhSignaturePadGuide, XhSignaturePadHiddenInput, XhSignaturePadLabel, XhSignaturePadRoot, XhSignaturePadSegment, XhSignaturePadStatus, XhSkeletonBone, XhSkeletonRoot, XhSliderControl, XhSliderHiddenInput, XhSliderLabel, XhSliderMarks, XhSliderRange, XhSliderRoot, XhSliderThumb, XhSliderTrack, XhSpace, XhSpaceSplit, XhSpinner, XhSpinnerLabel, XhSplitterPanel, XhSplitterResizeTrigger, XhSplitterRoot, XhStatisticLabel, XhStatisticPrefix, XhStatisticRoot, XhStatisticSuffix, XhStatisticValue, XhStepsContent, XhStepsDescription, XhStepsIndicator, XhStepsItem, XhStepsList, XhStepsRoot, XhStepsSeparator, XhStepsTitle, XhStepsTrigger, XhSwitch, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnHeader, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger, XhTabsContent, XhTabsList, XhTabsRoot, XhTabsTrigger, XhTagCloseTrigger, XhTagLabel, XhTagRoot, XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot, XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldInput, XhTextFieldLabel, XhTextFieldRoot, XhThreadContent, XhThreadLiveRegion, XhThreadRoot, XhThreadScrollButton, XhThreadViewport, XhTime, XhTimeFieldClearTrigger, XhTimeFieldControl, XhTimeFieldHiddenInput, XhTimeFieldLabel, XhTimeFieldRoot, XhTimeFieldSegment, XhTimeFieldSegmentGroup, XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerInput, XhTimePickerItem, XhTimePickerLabel, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresets, XhTimePickerRoot, XhTimePickerSegmentGroup, XhTimePickerTrigger, XhTimelineConnector, XhTimelineContent, XhTimelineDescription, XhTimelineIndicator, XhTimelineItem, XhTimelineRoot, XhTimelineTime, XhTimelineTitle, XhTimerArea, XhTimerControl, XhTimerItem, XhTimerRoot, XhTimerSeparator, XhToastActionTrigger, XhToastCloseTrigger, XhToastRoot, XhToastTitle, XhToggle, XhToggleGroupItem, XhToggleGroupRoot, XhToolbarGroup, XhToolbarItem, XhToolbarRoot, XhToolbarSeparator, XhTooltipArrow, XhTooltipContent, XhTooltipPositioner, XhTooltipRoot, XhTooltipTrigger, XhTourArrow, XhTourBackdrop, XhTourCloseTrigger, XhTourContent, XhTourDescription, XhTourNextTrigger, XhTourPositioner, XhTourPrevTrigger, XhTourProgressText, XhTourRoot, XhTourSkipTrigger, XhTourSpotlight, XhTourTitle, XhTransferItem, XhTransferItemCheckbox, XhTransferItemText, XhTransferList, XhTransferPanelCount, XhTransferPanelHeader, XhTransferPanelTitle, XhTransferRoot, XhTransferSearch, XhTransferSelectAllTrigger, XhTransferSourcePanel, XhTransferTargetPanel, XhTransferToSourceTrigger, XhTransferToTargetTrigger, XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeRoot, XhTreeSelectBranch, XhTreeSelectBranchContent, XhTreeSelectBranchControl, XhTreeSelectBranchIndicator, XhTreeSelectBranchText, XhTreeSelectBranchTrigger, XhTreeSelectClearTrigger, XhTreeSelectContent, XhTreeSelectControl, XhTreeSelectHiddenInput, XhTreeSelectIndicator, XhTreeSelectItem, XhTreeSelectItemIndicator, XhTreeSelectItemText, XhTreeSelectLabel, XhTreeSelectPositioner, XhTreeSelectRoot, XhTreeSelectTree, XhTreeSelectTrigger, XhTreeSelectValueText, XhTreeTree, XhTypographyHeading, XhTypographyLink, XhTypographyParagraph, XhTypographyRoot, XhTypographyText, XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualizerViewport, XhWatermarkContent, XhWatermarkRoot, createDialogService, createLoadingBarService, createNotificationService, createToastService, createVueIdGenerator, createVueRuntime, mergeXhConfig, provideAffix, provideAvatarGroup, provideBackTop, provideContextMenuChain, provideContextMenuSub, provideDescriptions, provideDynamicInput, provideDynamicInputItem, provideField, provideFloatButton, provideGrid, provideImageViewer, provideInfiniteScroll, provideLayout, provideList, provideLog, provideMarquee, provideMention, provideMentionItem, provideMenu, provideMenuChain, provideMenuGroup, provideMenuSub, provideMenubarChain, provideMenubarSub, provideNotification, provideNotificationItem, providePageHeader, providePopconfirm, providePopselect, providePopselectItem, provideQrCode, provideResult, provideScrollbar, provideSideNav, provideSideNavNode, provideStatistic, provideThread, provideTimeline, provideTimelineItem, provideTypography, provideWatermark, provideXhConfig, useAccordion, useAffix, useAffixContext, useAnchor, useAvatar, useAvatarGroupContext, useBackTop, useBackTopContext, useBreadcrumb, useCalendar, useCarousel, useCascader, useCheckbox, useCheckboxGroup, useClipboard, useCollapsible, useColorPicker, useCombobox, useComposer, useContextMenu, useContextMenuChain, useContextMenuSubContext, useDateField, useDatePicker, useDescriptionsContext, useDialog, useDownloadTrigger, useDrawer, useDynamicInput, useDynamicInputContext, useDynamicInputItemContext, useEditable, useEllipsis, useField, useFieldContext, useFieldControl, useFieldLabelWiring, useFieldStateWiring, useFieldset, useFieldsetContext, useFileUpload, useFloatButton, useFloatButtonContext, useFloatingPanel, useFloatingPanelContext, useForm, useGridContext, useHeatmap, useHeatmapContext, useHotkeys, useHoverCard, useIcon, useImage, useImageCropper, useImageCropperContext, useImageViewer, useImageViewerContext, useInfiniteScroll, useInfiniteScrollContext, useJsonViewer, useLayout, useLayoutContext, useListContext, useListbox, useLoadingBar, useLog, useLogContext, useMachine, useMarqueeContext, useMention, useMentionContext, useMentionItemContext, useMenu, useMenuChain, useMenuContext, useMenuGroupContext, useMenuSubContext, useMenubar, useMenubarChain, useMenubarSubContext, useNavigationMenu, useNotification, useNotificationContext, useNotificationContextOptional, useNotificationItem, useNotificationItemContext, useNumberField, useOptionalFieldContext, usePageHeaderContext, usePagination, usePasswordInput, usePasswordInputContext, usePinInput, usePopconfirm, usePopconfirmContext, usePopover, usePopselect, usePopselectContext, usePopselectItemContext, useQrCodeContext, useRadioGroup, useRating, useResultContext, useScrollArea, useScrollbar, useScrollbarContext, useSegmented, useSegmentedContext, useSegmentedItemContext, useSelect, useSideNav, useSideNavContext, useSideNavNodeContext, useSignaturePad, useSignaturePadContext, useSlider, useSpaceContext, useSplitter, useStatisticContext, useSteps, useSwitch, useTable, useTabs, useTag, useTagContext, useTagsInput, useTextField, useThread, useThreadContext, useTimeField, useTimePicker, useTimelineContext, useTimelineItem, useTimer, useTimerContext, useToast, useToggle, useToggleGroup, useToolbar, useTooltip, useTour, useTransfer, useTree, useTreeSelect, useTypographyContext, useVirtualizer, useWatermarkContext, useXhConfig, vueNormalize, withXhConfig };
|
package/dist/package.js
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { vueNormalize } from "./normalize-props.js";
|
|
2
|
+
import { useMachine } from "./use-machine.js";
|
|
3
|
+
import { createVueIdGenerator } from "./vue-id.js";
|
|
4
|
+
import { computed, h, ref, toValue } from "vue";
|
|
5
|
+
import { SCROLLBAR_DEFAULT_TYPE, connectScrollbar, isOverflowing, scrollbarMachine } from "@xihan-ui/headless";
|
|
6
|
+
import { createScope } from "@xihan-ui/kernel";
|
|
7
|
+
//#region src/runtime/use-scrollbars.ts
|
|
8
|
+
const DEFAULT_AXES = ["vertical"];
|
|
9
|
+
function useScrollbars(options) {
|
|
10
|
+
const axes = options.axes ?? DEFAULT_AXES;
|
|
11
|
+
const scope = createScope(null, createVueIdGenerator());
|
|
12
|
+
const bars = [];
|
|
13
|
+
/**
|
|
14
|
+
* 这条轴的条子此刻常驻在场。判据不走 api:api 里就要读 gutter,读回来会绕成环,
|
|
15
|
+
* 所以直接读作者给的那份 props 与机器量到的尺寸。
|
|
16
|
+
*/
|
|
17
|
+
const standing = (bar) => {
|
|
18
|
+
const given = toValue(options.props);
|
|
19
|
+
const native = bar.service.context.get("coarse") && !given?.forceVisible;
|
|
20
|
+
const type = given?.type ?? SCROLLBAR_DEFAULT_TYPE;
|
|
21
|
+
return !native && (type === "always" || isOverflowing(bar.service.context.get("metrics")));
|
|
22
|
+
};
|
|
23
|
+
/** 两条轴都在场:各自在末端让出交叉口那一格,只有一条时不让,免得滑块行程平白短一截。 */
|
|
24
|
+
const both = () => axes.length > 1 && bars.length === axes.length && bars.every(standing);
|
|
25
|
+
for (const axis of axes) {
|
|
26
|
+
const rootRef = ref(null);
|
|
27
|
+
const trackRef = ref(null);
|
|
28
|
+
const service = useMachine(scrollbarMachine, () => ({
|
|
29
|
+
...toValue(options.props),
|
|
30
|
+
orientation: axis,
|
|
31
|
+
gutter: both()
|
|
32
|
+
}), scope);
|
|
33
|
+
service.refs.set("getScrollableEl", options.scrollable);
|
|
34
|
+
service.refs.set("getTrackEl", () => trackRef.value);
|
|
35
|
+
service.refs.set("getRootEl", () => rootRef.value);
|
|
36
|
+
bars.push({
|
|
37
|
+
axis,
|
|
38
|
+
service,
|
|
39
|
+
api: computed(() => connectScrollbar(service, vueNormalize)),
|
|
40
|
+
rootRef,
|
|
41
|
+
trackRef
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/** 交叉口补丁只写在竖条里;只有一条轴在场时右下角没有缺口要补,收起来免得平白盖住一块内容。 */
|
|
45
|
+
const corner = (bar) => axes.length > 1 && bar.axis === "vertical" ? [h("div", {
|
|
46
|
+
...bar.api.value.getCornerProps(),
|
|
47
|
+
hidden: both() ? void 0 : true
|
|
48
|
+
})] : [];
|
|
49
|
+
return {
|
|
50
|
+
render: () => bars.map((bar) => h("div", {
|
|
51
|
+
...bar.api.value.getRootProps(),
|
|
52
|
+
key: `xh-scrollbar-${bar.axis}`,
|
|
53
|
+
ref: bar.rootRef
|
|
54
|
+
}, [h("div", {
|
|
55
|
+
...bar.api.value.getTrackProps(),
|
|
56
|
+
ref: bar.trackRef
|
|
57
|
+
}, [h("div", bar.api.value.getThumbProps())]), ...corner(bar)])),
|
|
58
|
+
measure: () => {
|
|
59
|
+
for (const bar of bars) bar.api.value.measure();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { useScrollbars };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=use-scrollbars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-scrollbars.js","names":[],"sources":["../../src/runtime/use-scrollbars.ts"],"sourcesContent":["import type { ScrollbarApi, ScrollbarSchema } from '@xihan-ui/headless'\nimport type { Orientation } from '@xihan-ui/kernel'\nimport type { Service } from '@xihan-ui/machine'\nimport type { ComputedRef, MaybeRefOrGetter, Ref, VNode } from 'vue'\nimport { connectScrollbar, isOverflowing, SCROLLBAR_DEFAULT_TYPE, scrollbarMachine } from '@xihan-ui/headless'\nimport { createScope } from '@xihan-ui/kernel'\nimport { computed, h, ref, toValue } from 'vue'\nimport { vueNormalize } from './normalize-props'\nimport { useMachine } from './use-machine'\nimport { createVueIdGenerator } from './vue-id'\n\n// 给已有滚动层配一套自绘滚动条。\n//\n// 条子是滚动层的兄弟,挂在组件既有的壳上(浮层族是 positioner,其余是 root):\n// 壳是定位盒,条子绝对定位贴它的内边距盒,不占布局、不进滚动层内部、不搬去别处。\n// 宿主只交「谁在滚」与「摆哪几条轴」,节点形状与机器接线都在这里,宿主那侧只有一行 render。\n\n/** 交给条子的 props。轴由 axes 决定、让位按实测溢出算,两者都不从外面收。 */\nexport type ScrollbarsProps = Omit<ScrollbarSchema['props'], 'orientation' | 'gutter'>\n\nexport interface ScrollbarsOptions {\n /**\n * 真正在滚的那层。收 getter 而不是节点:ref 挂载后才有值,\n * 多档互斥的宿主(同一个位置有两个可能的滚动层)在这里交此刻活着的那个。\n */\n scrollable: () => HTMLElement | null\n /** 摆哪几条轴,默认只摆竖的。 */\n axes?: readonly Orientation[]\n /** 露面时机、尺寸档、方向这些,逐帧现读。 */\n props?: MaybeRefOrGetter<ScrollbarsProps>\n}\n\nexport interface ScrollbarsHandle {\n /** 条子的节点,宿主把它拼进壳的子节点末尾。 */\n render: () => VNode[]\n /** 重量一遍两条轴的尺寸。 */\n measure: () => void\n}\n\ninterface Bar {\n axis: Orientation\n service: Service<ScrollbarSchema>\n api: ComputedRef<ScrollbarApi>\n rootRef: Ref<HTMLElement | null>\n trackRef: Ref<HTMLElement | null>\n}\n\nconst DEFAULT_AXES: readonly Orientation[] = ['vertical']\n\nexport function useScrollbars(options: ScrollbarsOptions): ScrollbarsHandle {\n const axes = options.axes ?? DEFAULT_AXES\n const scope = createScope(null, createVueIdGenerator())\n const bars: Bar[] = []\n\n /**\n * 这条轴的条子此刻常驻在场。判据不走 api:api 里就要读 gutter,读回来会绕成环,\n * 所以直接读作者给的那份 props 与机器量到的尺寸。\n */\n const standing = (bar: Bar): boolean => {\n const given = toValue(options.props)\n const native = bar.service.context.get('coarse') && !given?.forceVisible\n const type = given?.type ?? SCROLLBAR_DEFAULT_TYPE\n return !native && (type === 'always' || isOverflowing(bar.service.context.get('metrics')))\n }\n\n /** 两条轴都在场:各自在末端让出交叉口那一格,只有一条时不让,免得滑块行程平白短一截。 */\n const both = (): boolean => axes.length > 1 && bars.length === axes.length && bars.every(standing)\n\n for (const axis of axes) {\n const rootRef = ref<HTMLElement | null>(null)\n const trackRef = ref<HTMLElement | null>(null)\n // 每次取值现读 props:挂载后改 type / size 机器要跟着变\n const service = useMachine(scrollbarMachine, () => ({\n ...toValue(options.props),\n orientation: axis,\n gutter: both(),\n }), scope)\n // 传 getter 而非节点,ref 在挂载后才有值;量尺寸与挂监听都在机器的效应里进行\n service.refs.set('getScrollableEl', options.scrollable)\n service.refs.set('getTrackEl', () => trackRef.value)\n service.refs.set('getRootEl', () => rootRef.value)\n bars.push({\n axis,\n service,\n api: computed(() => connectScrollbar(service, vueNormalize)),\n rootRef,\n trackRef,\n })\n }\n\n /** 交叉口补丁只写在竖条里;只有一条轴在场时右下角没有缺口要补,收起来免得平白盖住一块内容。 */\n const corner = (bar: Bar): VNode[] =>\n axes.length > 1 && bar.axis === 'vertical'\n ? [h('div', {\n ...bar.api.value.getCornerProps() as Record<string, unknown>,\n hidden: both() ? undefined : true,\n })]\n : []\n\n return {\n render: () => bars.map(bar => h('div', {\n ...bar.api.value.getRootProps() as Record<string, unknown>,\n key: `xh-scrollbar-${bar.axis}`,\n ref: bar.rootRef,\n }, [\n h('div', {\n ...bar.api.value.getTrackProps() as Record<string, unknown>,\n ref: bar.trackRef,\n }, [h('div', bar.api.value.getThumbProps() as Record<string, unknown>)]),\n ...corner(bar),\n ])),\n measure: () => {\n for (const bar of bars) bar.api.value.measure()\n },\n }\n}\n"],"mappings":";;;;;;;AA+CA,MAAM,eAAuC,CAAC,UAAU;AAExD,SAAgB,cAAc,SAA8C;CAC1E,MAAM,OAAO,QAAQ,QAAQ;CAC7B,MAAM,QAAQ,YAAY,MAAM,qBAAqB,CAAC;CACtD,MAAM,OAAc,CAAC;;;;;CAMrB,MAAM,YAAY,QAAsB;EACtC,MAAM,QAAQ,QAAQ,QAAQ,KAAK;EACnC,MAAM,SAAS,IAAI,QAAQ,QAAQ,IAAI,QAAQ,KAAK,CAAC,OAAO;EAC5D,MAAM,OAAO,OAAO,QAAQ;EAC5B,OAAO,CAAC,WAAW,SAAS,YAAY,cAAc,IAAI,QAAQ,QAAQ,IAAI,SAAS,CAAC;CAC1F;;CAGA,MAAM,aAAsB,KAAK,SAAS,KAAK,KAAK,WAAW,KAAK,UAAU,KAAK,MAAM,QAAQ;CAEjG,KAAK,MAAM,QAAQ,MAAM;EACvB,MAAM,UAAU,IAAwB,IAAI;EAC5C,MAAM,WAAW,IAAwB,IAAI;EAE7C,MAAM,UAAU,WAAW,yBAAyB;GAClD,GAAG,QAAQ,QAAQ,KAAK;GACxB,aAAa;GACb,QAAQ,KAAK;EACf,IAAI,KAAK;EAET,QAAQ,KAAK,IAAI,mBAAmB,QAAQ,UAAU;EACtD,QAAQ,KAAK,IAAI,oBAAoB,SAAS,KAAK;EACnD,QAAQ,KAAK,IAAI,mBAAmB,QAAQ,KAAK;EACjD,KAAK,KAAK;GACR;GACA;GACA,KAAK,eAAe,iBAAiB,SAAS,YAAY,CAAC;GAC3D;GACA;EACF,CAAC;CACH;;CAGA,MAAM,UAAU,QACd,KAAK,SAAS,KAAK,IAAI,SAAS,aAC5B,CAAC,EAAE,OAAO;EACR,GAAG,IAAI,IAAI,MAAM,eAAe;EAChC,QAAQ,KAAK,IAAI,KAAA,IAAY;CAC/B,CAAC,CAAC,IACF,CAAC;CAEP,OAAO;EACL,cAAc,KAAK,KAAI,QAAO,EAAE,OAAO;GACrC,GAAG,IAAI,IAAI,MAAM,aAAa;GAC9B,KAAK,gBAAgB,IAAI;GACzB,KAAK,IAAI;EACX,GAAG,CACD,EAAE,OAAO;GACP,GAAG,IAAI,IAAI,MAAM,cAAc;GAC/B,KAAK,IAAI;EACX,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,MAAM,cAAc,CAA4B,CAAC,CAAC,GACvE,GAAG,OAAO,GAAG,CACf,CAAC,CAAC;EACF,eAAe;GACb,KAAK,MAAM,OAAO,MAAM,IAAI,IAAI,MAAM,QAAQ;EAChD;CACF;AACF"}
|
|
@@ -1,30 +1,51 @@
|
|
|
1
1
|
import { XhConfig } from "../config/config.js";
|
|
2
|
+
import { MaybeRefOrGetter, VNodeChild } from "vue";
|
|
2
3
|
import { Tone } from "@xihan-ui/kernel";
|
|
3
4
|
//#region src/services/dialog-service.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* 对话框正文。给串走 description 部件(读屏的 aria-describedby 由它接);
|
|
7
|
+
* 给渲染函数则整块摊在正文位,自己决定渲染什么。
|
|
8
|
+
*
|
|
9
|
+
* 不收裸 VNode:服务的宿主是常驻的,忙态一翻就整棵重渲,
|
|
10
|
+
* 同一个 VNode 实例被复用时的行为未定义。
|
|
11
|
+
*/
|
|
12
|
+
type DialogBody = string | (() => VNodeChild);
|
|
4
13
|
interface ConfirmOptions {
|
|
5
14
|
title: string;
|
|
6
|
-
content?:
|
|
15
|
+
content?: DialogBody;
|
|
7
16
|
/** 确认钮语气,默认 brand;危险操作传 danger。 */
|
|
8
17
|
tone?: Tone;
|
|
9
18
|
/** 标题旁的类型徽记。不给则不出徽记。 */
|
|
10
19
|
badge?: 'info' | 'success' | 'warning' | 'error';
|
|
11
|
-
okText?: string
|
|
12
|
-
cancelText?: string
|
|
20
|
+
okText?: MaybeRefOrGetter<string>;
|
|
21
|
+
cancelText?: MaybeRefOrGetter<string>;
|
|
13
22
|
/** Promise 拒绝时对话框保持打开。 */
|
|
14
23
|
onOk?: () => void | Promise<unknown>;
|
|
15
24
|
}
|
|
16
25
|
/** 单按钮告知框的入参:没有取消钮,徽记由预设档自己定,其余同 confirm。 */
|
|
17
26
|
type AlertOptions = Omit<ConfirmOptions, 'tone' | 'badge'>;
|
|
27
|
+
/** 取值型弹窗的入参。正文自己拼表单,确认时把那份值带回来。 */
|
|
28
|
+
interface PromptOptions<T extends object> extends Omit<ConfirmOptions, 'onOk' | 'content'> {
|
|
29
|
+
/** 每次打开建一份初值;服务用 reactive 包起来交给 body 与 onOk,两边同一份。 */
|
|
30
|
+
initialValue: T;
|
|
31
|
+
/** 用那份可写代理渲染表单主体。 */
|
|
32
|
+
body: (value: T) => VNodeChild;
|
|
33
|
+
/** 落焦到哪个节点,CSS 选择器。 */
|
|
34
|
+
initialFocus?: string;
|
|
35
|
+
/** 返回 false(或拒绝)表示校验没过,弹窗保持打开。 */
|
|
36
|
+
onOk?: (value: T) => boolean | void | Promise<boolean | void>;
|
|
37
|
+
}
|
|
18
38
|
interface DialogServiceOptions {
|
|
19
39
|
/** 确认钮文案,缺省 OK。 */
|
|
20
|
-
okText?: string
|
|
40
|
+
okText?: MaybeRefOrGetter<string>;
|
|
21
41
|
/** 取消钮文案,缺省 Cancel。 */
|
|
22
|
-
cancelText?: string
|
|
42
|
+
cancelText?: MaybeRefOrGetter<string>;
|
|
23
43
|
/**
|
|
24
44
|
* 喂给对话框子树的全局配置(locale / translations / size / portalContainer)。
|
|
25
|
-
* 本服务自带宿主应用,接不到组件树里的 provideXhConfig
|
|
45
|
+
* 本服务自带宿主应用,接不到组件树里的 provideXhConfig,要让它跟应用同语言就从这里给;
|
|
46
|
+
* 传 ref/getter 即可运行期跟着切语言,也可以之后用 setConfig 推。
|
|
26
47
|
*/
|
|
27
|
-
config?: XhConfig
|
|
48
|
+
config?: MaybeRefOrGetter<XhConfig>;
|
|
28
49
|
/** 宿主容器;不给就在 body 下新建一个。 */
|
|
29
50
|
target?: HTMLElement;
|
|
30
51
|
}
|
|
@@ -35,10 +56,14 @@ interface DialogService {
|
|
|
35
56
|
success: (options: AlertOptions) => Promise<void>;
|
|
36
57
|
warning: (options: AlertOptions) => Promise<void>;
|
|
37
58
|
error: (options: AlertOptions) => Promise<void>;
|
|
59
|
+
/** 确认后 resolve 一份值的普通对象快照;取消 / Esc / 卸载 resolve null。 */
|
|
60
|
+
prompt: <T extends object>(options: PromptOptions<T>) => Promise<T | null>;
|
|
61
|
+
/** 换一份全局配置源。 */
|
|
62
|
+
setConfig: (next: MaybeRefOrGetter<XhConfig> | undefined) => void;
|
|
38
63
|
/** 卸载宿主应用并移除容器。 */
|
|
39
64
|
dispose: () => void;
|
|
40
65
|
}
|
|
41
66
|
declare function createDialogService(options?: DialogServiceOptions): DialogService;
|
|
42
67
|
//#endregion
|
|
43
|
-
export { AlertOptions, ConfirmOptions, DialogService, DialogServiceOptions, createDialogService };
|
|
68
|
+
export { AlertOptions, ConfirmOptions, DialogBody, DialogService, DialogServiceOptions, PromptOptions, createDialogService };
|
|
44
69
|
//# sourceMappingURL=dialog-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-service.d.ts","names":[],"sources":["../../src/services/dialog-service.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dialog-service.d.ts","names":[],"sources":["../../src/services/dialog-service.ts"],"mappings":";;;;;;;;;;;KAsBY,6BAA6B;UAExB;EACf;EACA,UAAU;;EAEV,OAAO;;EAEP;EACA,SAAS;EACT,aAAa;;EAEb,oBAAoB;;;KAIV,eAAe,KAAK;;UAGf,cAAc,0BAA0B,KAAK;;EAE5D,cAAc;;EAEd,OAAO,OAAO,MAAM;;EAEpB;;EAEA,QAAQ,OAAO,uBAAuB;;UAGvB;;EAEf,SAAS;;EAET,aAAa;;;;;;EAMb,SAAS,iBAAiB;;EAE1B,SAAS;;UAGM;;EAEf,UAAU,SAAS,mBAAmB;EACtC,OAAO,SAAS,iBAAiB;EACjC,UAAU,SAAS,iBAAiB;EACpC,UAAU,SAAS,iBAAiB;EACpC,QAAQ,SAAS,iBAAiB;;EAElC,SAAS,kBAAkB,SAAS,cAAc,OAAO,QAAQ;;EAEjE,YAAY,MAAM,iBAAiB;;EAEnC;;iBAyBc,oBAAoB,UAAS,uBAA4B"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { provideXhConfig } from "../config/config.js";
|
|
2
1
|
import { XhButton, XhButtonIndicator, XhButtonLabel } from "../components/button.js";
|
|
3
2
|
import { XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle } from "../components/dialog/dialog.js";
|
|
4
3
|
import { spinArc, typeBadge } from "./glyph.js";
|
|
5
|
-
import {
|
|
4
|
+
import { mountServiceHost } from "./mount-host.js";
|
|
5
|
+
import { createServiceConfig } from "./service-config.js";
|
|
6
|
+
import { createApp, defineComponent, h, reactive, shallowRef, toRaw, toValue } from "vue";
|
|
7
|
+
import { ensurePortalRoot } from "@xihan-ui/kernel";
|
|
6
8
|
//#region src/services/dialog-service.ts
|
|
7
9
|
/** 关到再开之间留出退场窗口,动效走完再放下一个。 */
|
|
8
10
|
const EXIT_WINDOW_MS = 250;
|
|
@@ -12,10 +14,11 @@ function createDialogService(options = {}) {
|
|
|
12
14
|
okText: options.okText ?? "OK",
|
|
13
15
|
cancelText: options.cancelText ?? "Cancel"
|
|
14
16
|
};
|
|
17
|
+
const configSource = createServiceConfig(options.config);
|
|
15
18
|
const holder = options.target ?? document.createElement("div");
|
|
16
|
-
if (!options.target) document.
|
|
19
|
+
if (!options.target) ensurePortalRoot(document).appendChild(holder);
|
|
20
|
+
const current = shallowRef(null);
|
|
17
21
|
const state = reactive({
|
|
18
|
-
current: null,
|
|
19
22
|
open: false,
|
|
20
23
|
busy: false
|
|
21
24
|
});
|
|
@@ -23,13 +26,13 @@ function createDialogService(options = {}) {
|
|
|
23
26
|
let disposed = false;
|
|
24
27
|
let advanceTimer = null;
|
|
25
28
|
function next() {
|
|
26
|
-
if (disposed ||
|
|
27
|
-
|
|
29
|
+
if (disposed || current.value || queue.length === 0) return;
|
|
30
|
+
current.value = queue.shift();
|
|
28
31
|
state.busy = false;
|
|
29
32
|
state.open = true;
|
|
30
33
|
}
|
|
31
34
|
function settle(ok) {
|
|
32
|
-
const spec =
|
|
35
|
+
const spec = current.value;
|
|
33
36
|
if (!spec || spec.settled) return;
|
|
34
37
|
spec.settled = true;
|
|
35
38
|
spec.resolve(ok);
|
|
@@ -39,7 +42,7 @@ function createDialogService(options = {}) {
|
|
|
39
42
|
if (advanceTimer) return;
|
|
40
43
|
advanceTimer = setTimeout(() => {
|
|
41
44
|
advanceTimer = null;
|
|
42
|
-
|
|
45
|
+
current.value = null;
|
|
43
46
|
state.busy = false;
|
|
44
47
|
next();
|
|
45
48
|
}, EXIT_WINDOW_MS);
|
|
@@ -56,12 +59,15 @@ function createDialogService(options = {}) {
|
|
|
56
59
|
scheduleAdvance();
|
|
57
60
|
}
|
|
58
61
|
async function ok() {
|
|
59
|
-
const spec =
|
|
62
|
+
const spec = current.value;
|
|
60
63
|
if (!spec || state.busy) return;
|
|
61
64
|
if (spec.onOk) {
|
|
62
65
|
state.busy = true;
|
|
63
66
|
try {
|
|
64
|
-
await spec.onOk()
|
|
67
|
+
if (await spec.onOk() === false) {
|
|
68
|
+
state.busy = false;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
65
71
|
} catch (err) {
|
|
66
72
|
state.busy = false;
|
|
67
73
|
console.error("[xh] confirm onOk 失败,对话框保持打开", err);
|
|
@@ -85,40 +91,42 @@ function createDialogService(options = {}) {
|
|
|
85
91
|
const Host = defineComponent({
|
|
86
92
|
name: "XhDialogServiceHost",
|
|
87
93
|
setup() {
|
|
88
|
-
|
|
94
|
+
configSource.provide();
|
|
89
95
|
return () => {
|
|
90
|
-
const spec =
|
|
96
|
+
const spec = current.value;
|
|
91
97
|
return h(XhDialogRoot, {
|
|
92
98
|
"open": state.open,
|
|
93
99
|
"onUpdate:open": onOpenChange,
|
|
94
100
|
"modal": true,
|
|
95
101
|
"role": "alertdialog",
|
|
96
102
|
"closeOnEscape": !state.busy,
|
|
97
|
-
"closeOnInteractOutside": false
|
|
103
|
+
"closeOnInteractOutside": false,
|
|
104
|
+
"initialFocus": spec?.initialFocus
|
|
98
105
|
}, () => spec ? h(XhDialogContent, null, () => [
|
|
99
106
|
h("div", {
|
|
100
107
|
"style": {
|
|
101
108
|
display: "flex",
|
|
102
109
|
alignItems: "center",
|
|
103
|
-
gap: "var(--xh-
|
|
110
|
+
gap: "var(--xh-control-gap-md)"
|
|
104
111
|
},
|
|
105
112
|
"data-tone": spec.badge ? toneOfBadge(spec.badge) : void 0
|
|
106
113
|
}, [spec.badge ? typeBadge(spec.badge) : null, h(XhDialogTitle, () => spec.title)]),
|
|
107
|
-
spec.content ? h(XhDialogDescription, () => spec.content) : null,
|
|
114
|
+
typeof spec.content === "string" ? h(XhDialogDescription, () => spec.content) : typeof spec.content === "function" ? spec.content() : null,
|
|
115
|
+
spec.body && spec.value ? spec.body(spec.value) : null,
|
|
108
116
|
h("div", { style: {
|
|
109
117
|
display: "flex",
|
|
110
118
|
justifyContent: "flex-end",
|
|
111
|
-
gap: "var(--xh-
|
|
119
|
+
gap: "var(--xh-control-gap-md)"
|
|
112
120
|
} }, [spec.showCancel ? h(XhButton, {
|
|
113
121
|
variant: "ghost",
|
|
114
122
|
disabled: state.busy,
|
|
115
123
|
onClick: () => close(false)
|
|
116
|
-
}, () => spec.cancelText) : null, h(XhButton, {
|
|
124
|
+
}, () => toValue(spec.cancelText)) : null, h(XhButton, {
|
|
117
125
|
variant: "solid",
|
|
118
126
|
tone: spec.tone,
|
|
119
127
|
loading: state.busy,
|
|
120
128
|
onClick: ok
|
|
121
|
-
}, () => [state.busy ? h(XhButtonIndicator, () => spinArc()) : null, h(XhButtonLabel, () => state.busy ? `${spec.okText}…` : spec.okText)])])
|
|
129
|
+
}, () => [state.busy ? h(XhButtonIndicator, () => spinArc()) : null, h(XhButtonLabel, () => state.busy ? `${toValue(spec.okText)}…` : toValue(spec.okText))])])
|
|
122
130
|
]) : null);
|
|
123
131
|
};
|
|
124
132
|
}
|
|
@@ -127,7 +135,7 @@ function createDialogService(options = {}) {
|
|
|
127
135
|
return badge === "error" ? "danger" : badge;
|
|
128
136
|
}
|
|
129
137
|
const app = createApp(Host);
|
|
130
|
-
app
|
|
138
|
+
const mounted = mountServiceHost(app, holder, "dialog");
|
|
131
139
|
const alert = (badge, tone) => async (opts) => {
|
|
132
140
|
await request({
|
|
133
141
|
title: opts.title,
|
|
@@ -151,10 +159,26 @@ function createDialogService(options = {}) {
|
|
|
151
159
|
badge: opts.badge,
|
|
152
160
|
onOk: opts.onOk
|
|
153
161
|
}),
|
|
162
|
+
prompt: (opts) => {
|
|
163
|
+
const value = reactive({ ...opts.initialValue });
|
|
164
|
+
return request({
|
|
165
|
+
title: opts.title,
|
|
166
|
+
tone: opts.tone ?? "brand",
|
|
167
|
+
okText: opts.okText ?? defaults.okText,
|
|
168
|
+
cancelText: opts.cancelText ?? defaults.cancelText,
|
|
169
|
+
showCancel: true,
|
|
170
|
+
badge: opts.badge,
|
|
171
|
+
initialFocus: opts.initialFocus,
|
|
172
|
+
body: (v) => opts.body(v),
|
|
173
|
+
value,
|
|
174
|
+
onOk: opts.onOk ? () => opts.onOk(value) : void 0
|
|
175
|
+
}).then((ok) => ok ? { ...toRaw(value) } : null);
|
|
176
|
+
},
|
|
154
177
|
info: alert("info", "info"),
|
|
155
178
|
success: alert("success", "success"),
|
|
156
179
|
warning: alert("warning", "warning"),
|
|
157
180
|
error: alert("error", "danger"),
|
|
181
|
+
setConfig: (next) => configSource.set(next),
|
|
158
182
|
dispose: () => {
|
|
159
183
|
disposed = true;
|
|
160
184
|
if (advanceTimer) {
|
|
@@ -163,7 +187,7 @@ function createDialogService(options = {}) {
|
|
|
163
187
|
}
|
|
164
188
|
settle(false);
|
|
165
189
|
for (const spec of queue.splice(0)) spec.resolve(false);
|
|
166
|
-
app.unmount();
|
|
190
|
+
if (mounted) app.unmount();
|
|
167
191
|
if (!options.target) holder.remove();
|
|
168
192
|
}
|
|
169
193
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-service.js","names":[],"sources":["../../src/services/dialog-service.ts"],"sourcesContent":["// 全局命令式确认框服务:confirm/info/success/warning/error 一次调用弹出,\n// 自带标题徽记、正文与按钮行。同一时刻只挂一个对话框,后来的排队顺次弹出,\n// 避开多层模态叠加。onOk 返回 Promise 时确认钮自动进入 pending 并拦住关闭,\n// 失败保持打开以便重试或取消。\nimport type { Tone } from '@xihan-ui/kernel'\nimport type { App } from 'vue'\nimport type { XhConfig } from '../config/config'\nimport { createApp, defineComponent, h, reactive } from 'vue'\nimport { XhButton, XhButtonIndicator, XhButtonLabel } from '../components/button'\nimport { XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle } from '../components/dialog/dialog'\nimport { provideXhConfig } from '../config/config'\nimport { spinArc, typeBadge } from './glyph'\n\nexport interface ConfirmOptions {\n title: string\n content?: string\n /** 确认钮语气,默认 brand;危险操作传 danger。 */\n tone?: Tone\n /** 标题旁的类型徽记。不给则不出徽记。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n okText?: string\n cancelText?: string\n /** Promise 拒绝时对话框保持打开。 */\n onOk?: () => void | Promise<unknown>\n}\n\n/** 单按钮告知框的入参:没有取消钮,徽记由预设档自己定,其余同 confirm。 */\nexport type AlertOptions = Omit<ConfirmOptions, 'tone' | 'badge'>\n\nexport interface DialogServiceOptions {\n /** 确认钮文案,缺省 OK。 */\n okText?: string\n /** 取消钮文案,缺省 Cancel。 */\n cancelText?: string\n /**\n * 喂给对话框子树的全局配置(locale / translations / size / portalContainer)。\n * 本服务自带宿主应用,接不到组件树里的 provideXhConfig,要让它跟应用同语言就从这里给。\n */\n config?: XhConfig\n /** 宿主容器;不给就在 body 下新建一个。 */\n target?: HTMLElement\n}\n\nexport interface DialogService {\n /** 确认走 onOk 后 resolve true;取消/Esc resolve false。 */\n confirm: (options: ConfirmOptions) => Promise<boolean>\n info: (options: AlertOptions) => Promise<void>\n success: (options: AlertOptions) => Promise<void>\n warning: (options: AlertOptions) => Promise<void>\n error: (options: AlertOptions) => Promise<void>\n /** 卸载宿主应用并移除容器。 */\n dispose: () => void\n}\n\ninterface Spec {\n title: string\n content?: string\n tone: Tone\n okText: string\n cancelText: string\n showCancel: boolean\n /** 标题旁的类型徽记(预设档用),confirm 不带。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n onOk?: () => void | Promise<unknown>\n resolve: (ok: boolean) => void\n settled: boolean\n}\n\n/** 关到再开之间留出退场窗口,动效走完再放下一个。 */\nconst EXIT_WINDOW_MS = 250\n\nexport function createDialogService(options: DialogServiceOptions = {}): DialogService {\n if (typeof document === 'undefined')\n throw new Error('createDialogService 需要 document;SSR 里请等到客户端再创建')\n\n const defaults = { okText: options.okText ?? 'OK', cancelText: options.cancelText ?? 'Cancel' }\n const holder = options.target ?? document.createElement('div')\n if (!options.target)\n document.body.appendChild(holder)\n\n const state = reactive({\n current: null as Spec | null,\n open: false,\n busy: false,\n })\n const queue: Spec[] = []\n let disposed = false\n let advanceTimer: ReturnType<typeof setTimeout> | null = null\n\n function next(): void {\n if (disposed || state.current || queue.length === 0)\n return\n state.current = queue.shift()!\n state.busy = false\n state.open = true\n }\n\n function settle(ok: boolean): void {\n const spec = state.current\n if (!spec || spec.settled)\n return\n spec.settled = true\n spec.resolve(ok)\n }\n\n /** 退场窗口走完再清当前项、放下一个;程序化关闭与机器侧关闭都汇到这里,只挂一只表。 */\n function scheduleAdvance(): void {\n if (advanceTimer)\n return\n advanceTimer = setTimeout(() => {\n advanceTimer = null\n state.current = null\n state.busy = false\n next()\n }, EXIT_WINDOW_MS)\n }\n\n function close(ok: boolean): void {\n settle(ok)\n state.open = false\n scheduleAdvance()\n }\n\n // 机器侧的关闭(Esc 等)从这里回来:未定的一律按取消结\n function onOpenChange(open: boolean): void {\n if (open)\n return\n settle(false)\n state.open = false\n scheduleAdvance()\n }\n\n async function ok(): Promise<void> {\n const spec = state.current\n if (!spec || state.busy)\n return\n if (spec.onOk) {\n state.busy = true\n try {\n await spec.onOk()\n }\n catch (err) {\n state.busy = false\n console.error('[xh] confirm onOk 失败,对话框保持打开', err)\n return\n }\n state.busy = false\n }\n close(true)\n }\n\n function request(spec: Omit<Spec, 'resolve' | 'settled'>): Promise<boolean> {\n if (disposed)\n return Promise.reject(new Error('dialog 服务已卸载'))\n return new Promise<boolean>((resolve) => {\n queue.push({ ...spec, resolve, settled: false })\n next()\n })\n }\n\n const Host = defineComponent({\n name: 'XhDialogServiceHost',\n setup() {\n if (options.config)\n provideXhConfig(options.config)\n return () => {\n const spec = state.current\n return h(XhDialogRoot, {\n 'open': state.open,\n 'onUpdate:open': onOpenChange,\n 'modal': true,\n 'role': 'alertdialog',\n 'closeOnEscape': !state.busy,\n 'closeOnInteractOutside': false,\n }, () => spec\n ? h(XhDialogContent, null, () => [\n h('div', { 'style': { display: 'flex', alignItems: 'center', gap: 'var(--xh-space-2)' }, 'data-tone': spec.badge ? toneOfBadge(spec.badge) : undefined }, [\n spec.badge ? typeBadge(spec.badge) : null,\n h(XhDialogTitle, () => spec.title),\n ]),\n spec.content ? h(XhDialogDescription, () => spec.content) : null,\n h('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 'var(--xh-space-2)' } }, [\n spec.showCancel\n ? h(XhButton, { variant: 'ghost', disabled: state.busy, onClick: () => close(false) }, () => spec.cancelText)\n : null,\n h(XhButton, { variant: 'solid', tone: spec.tone, loading: state.busy, onClick: ok }, () => [\n state.busy ? h(XhButtonIndicator, () => spinArc()) : null,\n h(XhButtonLabel, () => (state.busy ? `${spec.okText}…` : spec.okText)),\n ]),\n ]),\n ])\n : null)\n }\n },\n })\n\n function toneOfBadge(badge: NonNullable<Spec['badge']>): Tone {\n return badge === 'error' ? 'danger' : badge\n }\n\n const app: App = createApp(Host)\n app.mount(holder)\n\n const alert = (badge: NonNullable<Spec['badge']>, tone: Tone) => async (opts: AlertOptions): Promise<void> => {\n await request({\n title: opts.title,\n content: opts.content,\n tone,\n okText: opts.okText ?? defaults.okText,\n cancelText: defaults.cancelText,\n showCancel: false,\n badge,\n onOk: opts.onOk,\n })\n }\n\n return {\n confirm: opts => request({\n title: opts.title,\n content: opts.content,\n tone: opts.tone ?? 'brand',\n okText: opts.okText ?? defaults.okText,\n cancelText: opts.cancelText ?? defaults.cancelText,\n showCancel: true,\n badge: opts.badge,\n onOk: opts.onOk,\n }),\n info: alert('info', 'info'),\n success: alert('success', 'success'),\n warning: alert('warning', 'warning'),\n error: alert('error', 'danger'),\n dispose: () => {\n disposed = true\n if (advanceTimer) {\n clearTimeout(advanceTimer)\n advanceTimer = null\n }\n settle(false)\n for (const spec of queue.splice(0))\n spec.resolve(false)\n app.unmount()\n if (!options.target)\n holder.remove()\n },\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dialog-service.js","names":[],"sources":["../../src/services/dialog-service.ts"],"sourcesContent":["// 全局命令式确认框服务:confirm/info/success/warning/error 一次调用弹出,\n// 自带标题徽记、正文与按钮行。同一时刻只挂一个对话框,后来的排队顺次弹出,\n// 避开多层模态叠加。onOk 返回 Promise 时确认钮自动进入 pending 并拦住关闭,\n// 失败保持打开以便重试或取消。\nimport type { Tone } from '@xihan-ui/kernel'\nimport type { App, MaybeRefOrGetter, VNodeChild } from 'vue'\nimport type { XhConfig } from '../config/config'\nimport { ensurePortalRoot } from '@xihan-ui/kernel'\nimport { createApp, defineComponent, h, reactive, shallowRef, toRaw, toValue } from 'vue'\nimport { XhButton, XhButtonIndicator, XhButtonLabel } from '../components/button'\nimport { XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle } from '../components/dialog/dialog'\nimport { spinArc, typeBadge } from './glyph'\nimport { mountServiceHost } from './mount-host'\nimport { createServiceConfig } from './service-config'\n\n/**\n * 对话框正文。给串走 description 部件(读屏的 aria-describedby 由它接);\n * 给渲染函数则整块摊在正文位,自己决定渲染什么。\n *\n * 不收裸 VNode:服务的宿主是常驻的,忙态一翻就整棵重渲,\n * 同一个 VNode 实例被复用时的行为未定义。\n */\nexport type DialogBody = string | (() => VNodeChild)\n\nexport interface ConfirmOptions {\n title: string\n content?: DialogBody\n /** 确认钮语气,默认 brand;危险操作传 danger。 */\n tone?: Tone\n /** 标题旁的类型徽记。不给则不出徽记。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n okText?: MaybeRefOrGetter<string>\n cancelText?: MaybeRefOrGetter<string>\n /** Promise 拒绝时对话框保持打开。 */\n onOk?: () => void | Promise<unknown>\n}\n\n/** 单按钮告知框的入参:没有取消钮,徽记由预设档自己定,其余同 confirm。 */\nexport type AlertOptions = Omit<ConfirmOptions, 'tone' | 'badge'>\n\n/** 取值型弹窗的入参。正文自己拼表单,确认时把那份值带回来。 */\nexport interface PromptOptions<T extends object> extends Omit<ConfirmOptions, 'onOk' | 'content'> {\n /** 每次打开建一份初值;服务用 reactive 包起来交给 body 与 onOk,两边同一份。 */\n initialValue: T\n /** 用那份可写代理渲染表单主体。 */\n body: (value: T) => VNodeChild\n /** 落焦到哪个节点,CSS 选择器。 */\n initialFocus?: string\n /** 返回 false(或拒绝)表示校验没过,弹窗保持打开。 */\n onOk?: (value: T) => boolean | void | Promise<boolean | void>\n}\n\nexport interface DialogServiceOptions {\n /** 确认钮文案,缺省 OK。 */\n okText?: MaybeRefOrGetter<string>\n /** 取消钮文案,缺省 Cancel。 */\n cancelText?: MaybeRefOrGetter<string>\n /**\n * 喂给对话框子树的全局配置(locale / translations / size / portalContainer)。\n * 本服务自带宿主应用,接不到组件树里的 provideXhConfig,要让它跟应用同语言就从这里给;\n * 传 ref/getter 即可运行期跟着切语言,也可以之后用 setConfig 推。\n */\n config?: MaybeRefOrGetter<XhConfig>\n /** 宿主容器;不给就在 body 下新建一个。 */\n target?: HTMLElement\n}\n\nexport interface DialogService {\n /** 确认走 onOk 后 resolve true;取消/Esc resolve false。 */\n confirm: (options: ConfirmOptions) => Promise<boolean>\n info: (options: AlertOptions) => Promise<void>\n success: (options: AlertOptions) => Promise<void>\n warning: (options: AlertOptions) => Promise<void>\n error: (options: AlertOptions) => Promise<void>\n /** 确认后 resolve 一份值的普通对象快照;取消 / Esc / 卸载 resolve null。 */\n prompt: <T extends object>(options: PromptOptions<T>) => Promise<T | null>\n /** 换一份全局配置源。 */\n setConfig: (next: MaybeRefOrGetter<XhConfig> | undefined) => void\n /** 卸载宿主应用并移除容器。 */\n dispose: () => void\n}\n\ninterface Spec {\n title: string\n content?: DialogBody\n tone: Tone\n okText: MaybeRefOrGetter<string>\n cancelText: MaybeRefOrGetter<string>\n showCancel: boolean\n /** 标题旁的类型徽记(预设档用),confirm 不带。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n /** 返回 false 表示不放行;confirm 那一路的返回值不参与判定。 */\n onOk?: () => unknown\n /** 取值型弹窗的正文与那份可写的值,两边同一个对象。 */\n body?: (value: object) => VNodeChild\n value?: object\n initialFocus?: string\n resolve: (ok: boolean) => void\n settled: boolean\n}\n\n/** 关到再开之间留出退场窗口,动效走完再放下一个。 */\nconst EXIT_WINDOW_MS = 250\n\nexport function createDialogService(options: DialogServiceOptions = {}): DialogService {\n if (typeof document === 'undefined')\n throw new Error('createDialogService 需要 document;SSR 里请等到客户端再创建')\n\n // 文案不在创建时求值:队列里的对话框会跨过一次切语言\n const defaults = { okText: options.okText ?? 'OK', cancelText: options.cancelText ?? 'Cancel' }\n const configSource = createServiceConfig(options.config)\n const holder = options.target ?? document.createElement('div')\n if (!options.target)\n ensurePortalRoot(document).appendChild(holder)\n\n // 当前项单独放 shallowRef:进 reactive 会把 Spec 里那几个 MaybeRefOrGetter 的 Ref 分支解包掉\n const current = shallowRef<Spec | null>(null)\n const state = reactive({\n open: false,\n busy: false,\n })\n const queue: Spec[] = []\n let disposed = false\n let advanceTimer: ReturnType<typeof setTimeout> | null = null\n\n function next(): void {\n if (disposed || current.value || queue.length === 0)\n return\n current.value = queue.shift()!\n state.busy = false\n state.open = true\n }\n\n function settle(ok: boolean): void {\n const spec = current.value\n if (!spec || spec.settled)\n return\n spec.settled = true\n spec.resolve(ok)\n }\n\n /** 退场窗口走完再清当前项、放下一个;程序化关闭与机器侧关闭都汇到这里,只挂一只表。 */\n function scheduleAdvance(): void {\n if (advanceTimer)\n return\n advanceTimer = setTimeout(() => {\n advanceTimer = null\n current.value = null\n state.busy = false\n next()\n }, EXIT_WINDOW_MS)\n }\n\n function close(ok: boolean): void {\n settle(ok)\n state.open = false\n scheduleAdvance()\n }\n\n // 机器侧的关闭(Esc 等)从这里回来:未定的一律按取消结\n function onOpenChange(open: boolean): void {\n if (open)\n return\n settle(false)\n state.open = false\n scheduleAdvance()\n }\n\n async function ok(): Promise<void> {\n const spec = current.value\n if (!spec || state.busy)\n return\n if (spec.onOk) {\n state.busy = true\n try {\n // 取值型弹窗的 onOk 收 false 表示校验没过,对话框保持打开;\n // confirm 的 onOk 签名不吃 false,语义不受影响\n const verdict = await spec.onOk()\n if (verdict === false) {\n state.busy = false\n return\n }\n }\n catch (err) {\n state.busy = false\n console.error('[xh] confirm onOk 失败,对话框保持打开', err)\n return\n }\n state.busy = false\n }\n close(true)\n }\n\n function request(spec: Omit<Spec, 'resolve' | 'settled'>): Promise<boolean> {\n if (disposed)\n return Promise.reject(new Error('dialog 服务已卸载'))\n return new Promise<boolean>((resolve) => {\n queue.push({ ...spec, resolve, settled: false })\n next()\n })\n }\n\n const Host = defineComponent({\n name: 'XhDialogServiceHost',\n setup() {\n configSource.provide()\n return () => {\n const spec = current.value\n return h(XhDialogRoot, {\n 'open': state.open,\n 'onUpdate:open': onOpenChange,\n 'modal': true,\n 'role': 'alertdialog',\n 'closeOnEscape': !state.busy,\n 'closeOnInteractOutside': false,\n 'initialFocus': spec?.initialFocus,\n }, () => spec\n ? h(XhDialogContent, null, () => [\n h('div', { 'style': { display: 'flex', alignItems: 'center', gap: 'var(--xh-control-gap-md)' }, 'data-tone': spec.badge ? toneOfBadge(spec.badge) : undefined }, [\n spec.badge ? typeBadge(spec.badge) : null,\n h(XhDialogTitle, () => spec.title),\n ]),\n // 串走 description(读屏的 aria-describedby 接在它上面),渲染函数直接摊开\n typeof spec.content === 'string'\n ? h(XhDialogDescription, () => spec.content as string)\n : typeof spec.content === 'function' ? spec.content() : null,\n spec.body && spec.value ? spec.body(spec.value) : null,\n h('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 'var(--xh-control-gap-md)' } }, [\n spec.showCancel\n ? h(XhButton, { variant: 'ghost', disabled: state.busy, onClick: () => close(false) }, () => toValue(spec.cancelText))\n : null,\n h(XhButton, { variant: 'solid', tone: spec.tone, loading: state.busy, onClick: ok }, () => [\n state.busy ? h(XhButtonIndicator, () => spinArc()) : null,\n h(XhButtonLabel, () => (state.busy ? `${toValue(spec.okText)}…` : toValue(spec.okText))),\n ]),\n ]),\n ])\n : null)\n }\n },\n })\n\n function toneOfBadge(badge: NonNullable<Spec['badge']>): Tone {\n return badge === 'error' ? 'danger' : badge\n }\n\n const app: App = createApp(Host)\n const mounted = mountServiceHost(app, holder, 'dialog')\n\n const alert = (badge: NonNullable<Spec['badge']>, tone: Tone) => async (opts: AlertOptions): Promise<void> => {\n await request({\n title: opts.title,\n content: opts.content,\n tone,\n okText: opts.okText ?? defaults.okText,\n cancelText: defaults.cancelText,\n showCancel: false,\n badge,\n onOk: opts.onOk,\n })\n }\n\n return {\n confirm: opts => request({\n title: opts.title,\n content: opts.content,\n tone: opts.tone ?? 'brand',\n okText: opts.okText ?? defaults.okText,\n cancelText: opts.cancelText ?? defaults.cancelText,\n showCancel: true,\n badge: opts.badge,\n onOk: opts.onOk,\n }),\n prompt: <T extends object>(opts: PromptOptions<T>): Promise<T | null> => {\n // body 与 onOk 拿的是同一份可写代理:正文里改了什么,确认时就读到什么\n const value = reactive({ ...opts.initialValue }) as T\n return request({\n title: opts.title,\n tone: opts.tone ?? 'brand',\n okText: opts.okText ?? defaults.okText,\n cancelText: opts.cancelText ?? defaults.cancelText,\n showCancel: true,\n badge: opts.badge,\n initialFocus: opts.initialFocus,\n body: v => opts.body(v as T),\n value,\n onOk: opts.onOk ? () => opts.onOk!(value) : undefined,\n }).then(ok => (ok ? { ...toRaw(value) } as T : null))\n },\n info: alert('info', 'info'),\n success: alert('success', 'success'),\n warning: alert('warning', 'warning'),\n error: alert('error', 'danger'),\n setConfig: next => configSource.set(next),\n dispose: () => {\n disposed = true\n if (advanceTimer) {\n clearTimeout(advanceTimer)\n advanceTimer = null\n }\n settle(false)\n for (const spec of queue.splice(0))\n spec.resolve(false)\n if (mounted)\n app.unmount()\n if (!options.target)\n holder.remove()\n },\n }\n}\n"],"mappings":"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"}
|