@xihan-ui/vue 3.0.0 → 3.2.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 +148 -0
- package/README.md +1 -1
- package/dist/components/carousel/carousel.d.ts +7 -1
- package/dist/components/carousel/carousel.d.ts.map +1 -1
- package/dist/components/carousel/carousel.js +1 -0
- package/dist/components/carousel/carousel.js.map +1 -1
- package/dist/components/cartesian-chart/cartesian-chart.d.ts.map +1 -1
- package/dist/components/cartesian-chart/cartesian-chart.js +2 -2
- package/dist/components/cartesian-chart/cartesian-chart.js.map +1 -1
- package/dist/components/cascader/cascader.d.ts +2 -0
- package/dist/components/cascader/cascader.d.ts.map +1 -1
- package/dist/components/cascader/cascader.js +5 -2
- package/dist/components/cascader/cascader.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.js +30 -11
- package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/components/checkbox-group/use-checkbox-group.d.ts +6 -1
- package/dist/components/checkbox-group/use-checkbox-group.d.ts.map +1 -1
- package/dist/components/checkbox-group/use-checkbox-group.js +7 -3
- package/dist/components/checkbox-group/use-checkbox-group.js.map +1 -1
- package/dist/components/citation/citation.d.ts.map +1 -1
- package/dist/components/citation/citation.js +8 -6
- package/dist/components/citation/citation.js.map +1 -1
- package/dist/components/color-field/color-field.d.ts +2 -0
- package/dist/components/color-field/color-field.d.ts.map +1 -1
- package/dist/components/color-field/color-field.js +3 -1
- package/dist/components/color-field/color-field.js.map +1 -1
- package/dist/components/color-picker/color-picker.d.ts +76 -9
- package/dist/components/color-picker/color-picker.d.ts.map +1 -1
- package/dist/components/color-picker/color-picker.js +89 -7
- package/dist/components/color-picker/color-picker.js.map +1 -1
- package/dist/components/color-picker/context.js +10 -1
- package/dist/components/color-picker/context.js.map +1 -1
- package/dist/components/color-picker/use-color-picker.js +14 -4
- package/dist/components/color-picker/use-color-picker.js.map +1 -1
- package/dist/components/color-swatch-picker/color-swatch-picker.d.ts.map +1 -1
- package/dist/components/color-swatch-picker/color-swatch-picker.js +21 -4
- package/dist/components/color-swatch-picker/color-swatch-picker.js.map +1 -1
- package/dist/components/color-swatch-picker/use-color-swatch-picker.d.ts +6 -1
- package/dist/components/color-swatch-picker/use-color-swatch-picker.d.ts.map +1 -1
- package/dist/components/color-swatch-picker/use-color-swatch-picker.js +7 -3
- package/dist/components/color-swatch-picker/use-color-swatch-picker.js.map +1 -1
- package/dist/components/combobox/combobox.d.ts +2 -0
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.js +6 -4
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/command/command.d.ts +3 -3
- package/dist/components/context-menu/context-menu.d.ts +9 -1
- package/dist/components/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu/context-menu.js +11 -1
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/date-field/date-field.d.ts +6 -2
- package/dist/components/date-field/date-field.d.ts.map +1 -1
- package/dist/components/date-field/date-field.js +5 -2
- package/dist/components/date-field/date-field.js.map +1 -1
- package/dist/components/date-picker/context.js +10 -1
- package/dist/components/date-picker/context.js.map +1 -1
- package/dist/components/date-picker/date-picker.d.ts +58 -3
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.js +77 -5
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.d.ts +27 -1
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +10 -1
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +12 -1
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/dialog.js +14 -4
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.d.ts +12 -1
- package/dist/components/drawer/drawer.d.ts.map +1 -1
- package/dist/components/drawer/drawer.js +14 -4
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/field/context.d.ts +6 -1
- package/dist/components/field/context.d.ts.map +1 -1
- package/dist/components/field/context.js +10 -1
- package/dist/components/field/context.js.map +1 -1
- package/dist/components/field/field.d.ts +9 -1
- package/dist/components/field/field.d.ts.map +1 -1
- package/dist/components/field/field.js +14 -2
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/field/use-field-control.d.ts +8 -1
- package/dist/components/field/use-field-control.d.ts.map +1 -1
- package/dist/components/field/use-field-control.js +14 -1
- package/dist/components/field/use-field-control.js.map +1 -1
- package/dist/components/file-upload/file-upload.d.ts +2 -0
- package/dist/components/file-upload/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload/file-upload.js +3 -1
- package/dist/components/file-upload/file-upload.js.map +1 -1
- package/dist/components/float-button/float-button.d.ts +26 -1
- package/dist/components/float-button/float-button.d.ts.map +1 -1
- package/dist/components/float-button/float-button.js +17 -5
- package/dist/components/float-button/float-button.js.map +1 -1
- package/dist/components/float-button/use-float-button.js +7 -1
- package/dist/components/float-button/use-float-button.js.map +1 -1
- package/dist/components/floating-panel/floating-panel.d.ts +2 -2
- package/dist/components/floating-panel/floating-panel.js +4 -1
- package/dist/components/floating-panel/floating-panel.js.map +1 -1
- package/dist/components/form/context.js +5 -1
- package/dist/components/form/context.js.map +1 -1
- package/dist/components/form/form.d.ts +8 -0
- package/dist/components/form/form.d.ts.map +1 -1
- package/dist/components/form/form.js +4 -1
- package/dist/components/form/form.js.map +1 -1
- package/dist/components/form/use-form-control.js +1 -1
- package/dist/components/funnel-chart/funnel-chart.d.ts.map +1 -1
- package/dist/components/funnel-chart/funnel-chart.js +2 -2
- package/dist/components/funnel-chart/funnel-chart.js.map +1 -1
- package/dist/components/graph-chart/graph-chart.d.ts.map +1 -1
- package/dist/components/graph-chart/graph-chart.js +2 -2
- package/dist/components/graph-chart/graph-chart.js.map +1 -1
- package/dist/components/hierarchy-chart/hierarchy-chart.d.ts.map +1 -1
- package/dist/components/hierarchy-chart/hierarchy-chart.js +2 -2
- package/dist/components/hierarchy-chart/hierarchy-chart.js.map +1 -1
- package/dist/components/hover-card/hover-card.js +2 -1
- package/dist/components/hover-card/hover-card.js.map +1 -1
- package/dist/components/image-viewer/image-viewer.d.ts +7 -1
- package/dist/components/image-viewer/image-viewer.d.ts.map +1 -1
- package/dist/components/image-viewer/image-viewer.js +1 -0
- package/dist/components/image-viewer/image-viewer.js.map +1 -1
- package/dist/components/mention/mention.d.ts +1 -1
- package/dist/components/mention/mention.js +5 -4
- package/dist/components/mention/mention.js.map +1 -1
- package/dist/components/menu/menu.js +31 -2
- package/dist/components/menu/menu.js.map +1 -1
- package/dist/components/menubar/context.d.ts.map +1 -1
- package/dist/components/menubar/context.js.map +1 -1
- package/dist/components/menubar/menubar.d.ts +9 -1
- package/dist/components/menubar/menubar.d.ts.map +1 -1
- package/dist/components/menubar/menubar.js +29 -2
- package/dist/components/menubar/menubar.js.map +1 -1
- package/dist/components/pagination/pagination.js +4 -2
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/pie-chart/pie-chart.d.ts.map +1 -1
- package/dist/components/pie-chart/pie-chart.js +2 -2
- package/dist/components/pie-chart/pie-chart.js.map +1 -1
- package/dist/components/pin-input/pin-input.d.ts.map +1 -1
- package/dist/components/pin-input/pin-input.js +7 -1
- package/dist/components/pin-input/pin-input.js.map +1 -1
- package/dist/components/popconfirm/popconfirm.d.ts +20 -1
- package/dist/components/popconfirm/popconfirm.d.ts.map +1 -1
- package/dist/components/popconfirm/popconfirm.js +9 -1
- package/dist/components/popconfirm/popconfirm.js.map +1 -1
- package/dist/components/popconfirm/use-popconfirm.js +2 -0
- package/dist/components/popconfirm/use-popconfirm.js.map +1 -1
- package/dist/components/popover/popover.d.ts +1 -1
- package/dist/components/popover/popover.js +2 -1
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/radar-chart/radar-chart.d.ts.map +1 -1
- package/dist/components/radar-chart/radar-chart.js +2 -2
- package/dist/components/radar-chart/radar-chart.js.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.js +25 -6
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/radio-group/use-radio-group.d.ts +5 -0
- package/dist/components/radio-group/use-radio-group.d.ts.map +1 -1
- package/dist/components/radio-group/use-radio-group.js +4 -1
- package/dist/components/radio-group/use-radio-group.js.map +1 -1
- package/dist/components/rating/rating.d.ts.map +1 -1
- package/dist/components/rating/rating.js +7 -1
- package/dist/components/rating/rating.js.map +1 -1
- package/dist/components/sankey-chart/sankey-chart.d.ts.map +1 -1
- package/dist/components/sankey-chart/sankey-chart.js +2 -2
- package/dist/components/sankey-chart/sankey-chart.js.map +1 -1
- package/dist/components/select/select.d.ts +13 -0
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +15 -4
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/side-nav/side-nav.d.ts.map +1 -1
- package/dist/components/side-nav/side-nav.js +8 -2
- package/dist/components/side-nav/side-nav.js.map +1 -1
- package/dist/components/signature-pad/signature-pad.d.ts +2 -0
- package/dist/components/signature-pad/signature-pad.d.ts.map +1 -1
- package/dist/components/signature-pad/signature-pad.js +3 -1
- package/dist/components/signature-pad/signature-pad.js.map +1 -1
- package/dist/components/slider/slider.d.ts.map +1 -1
- package/dist/components/slider/slider.js +7 -1
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/tags-input/tags-input.d.ts +2 -0
- package/dist/components/tags-input/tags-input.d.ts.map +1 -1
- package/dist/components/tags-input/tags-input.js +3 -1
- package/dist/components/tags-input/tags-input.js.map +1 -1
- package/dist/components/text-field/text-field.d.ts +2 -0
- package/dist/components/text-field/text-field.d.ts.map +1 -1
- package/dist/components/text-field/text-field.js +3 -1
- package/dist/components/text-field/text-field.js.map +1 -1
- package/dist/components/time-field/time-field.d.ts +2 -0
- package/dist/components/time-field/time-field.d.ts.map +1 -1
- package/dist/components/time-field/time-field.js +3 -1
- package/dist/components/time-field/time-field.js.map +1 -1
- package/dist/components/time-picker/context.js +10 -1
- package/dist/components/time-picker/context.js.map +1 -1
- package/dist/components/time-picker/time-picker.d.ts +78 -9
- package/dist/components/time-picker/time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/time-picker.js +91 -9
- package/dist/components/time-picker/time-picker.js.map +1 -1
- package/dist/components/time-range-picker/time-range-picker.d.ts +2 -0
- package/dist/components/time-range-picker/time-range-picker.d.ts.map +1 -1
- package/dist/components/time-range-picker/time-range-picker.js +5 -2
- package/dist/components/time-range-picker/time-range-picker.js.map +1 -1
- package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group/toggle-group.js +7 -1
- package/dist/components/toggle-group/toggle-group.js.map +1 -1
- package/dist/components/tooltip/tooltip.js +2 -1
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/components/tour/tour.js +12 -3
- package/dist/components/tour/tour.js.map +1 -1
- package/dist/components/tree/tree.d.ts +2 -2
- package/dist/components/tree/tree.js +1 -1
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree-select/tree-select.d.ts +2 -0
- package/dist/components/tree-select/tree-select.d.ts.map +1 -1
- package/dist/components/tree-select/tree-select.js +6 -4
- package/dist/components/tree-select/tree-select.js.map +1 -1
- package/dist/components/truncate/truncate.d.ts.map +1 -1
- package/dist/components/truncate/truncate.js +4 -8
- package/dist/components/truncate/truncate.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +8 -8
- package/dist/locale.d.ts +2 -0
- package/dist/locale.js +2 -0
- package/dist/package.js +1 -1
- package/dist/runtime/as-child.js +7 -2
- package/dist/runtime/as-child.js.map +1 -1
- package/dist/runtime/portal.js +13 -1
- package/dist/runtime/portal.js.map +1 -1
- package/dist/runtime/use-overlay-exit.js +6 -1
- package/dist/runtime/use-overlay-exit.js.map +1 -1
- package/dist/runtime/with-handlers.js +25 -0
- package/dist/runtime/with-handlers.js.map +1 -0
- package/dist/services/dialog-service.d.ts +3 -3
- package/dist/services/dialog-service.d.ts.map +1 -1
- package/dist/services/dialog-service.js +8 -6
- package/dist/services/dialog-service.js.map +1 -1
- package/dist/services/service-config.js +2 -1
- package/dist/services/service-config.js.map +1 -1
- package/package.json +19 -15
package/dist/index.js
CHANGED
|
@@ -36,10 +36,10 @@ import { useCarousel } from "./components/carousel/use-carousel.js";
|
|
|
36
36
|
import { XhCarouselAutoplayTrigger, XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselList, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport } from "./components/carousel/carousel.js";
|
|
37
37
|
import { useCartesianChart } from "./components/cartesian-chart/use-cartesian-chart.js";
|
|
38
38
|
import { XhCartesianChartCaption, XhCartesianChartEmpty, XhCartesianChartLegend, XhCartesianChartPlot, XhCartesianChartRoot, XhCartesianChartTooltip, XhCartesianChartViewport, XhCartesianChartZoomSlider } from "./components/cartesian-chart/cartesian-chart.js";
|
|
39
|
-
import { provideField, useFieldContext, useOptionalFieldContext } from "./components/field/context.js";
|
|
39
|
+
import { clearFieldContext, provideField, useFieldContext, useOptionalFieldContext } from "./components/field/context.js";
|
|
40
40
|
import { useField } from "./components/field/use-field.js";
|
|
41
|
-
import { XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot } from "./components/field/field.js";
|
|
42
|
-
import { useFieldControl, useFieldLabelWiring, useFieldStateWiring } from "./components/field/use-field-control.js";
|
|
41
|
+
import { XhFieldBoundary, XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot } from "./components/field/field.js";
|
|
42
|
+
import { useFieldControl, useFieldGroupWiring, useFieldLabelWiring, useFieldStateWiring } from "./components/field/use-field-control.js";
|
|
43
43
|
import { useCascader } from "./components/cascader/use-cascader.js";
|
|
44
44
|
import { XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderFooter, XhCascaderGroup, XhCascaderGroupLabel, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemDeleteTrigger, XhCascaderItemDescription, XhCascaderItemIndicator, XhCascaderItemSuffix, XhCascaderItemText, XhCascaderLabel, XhCascaderLoading, XhCascaderOverflowTag, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTag, XhCascaderTagLabel, XhCascaderTagList, XhCascaderTrigger, XhCascaderValueText } from "./components/cascader/cascader.js";
|
|
45
45
|
import { useCheckboxGroup } from "./components/checkbox-group/use-checkbox-group.js";
|
|
@@ -65,7 +65,7 @@ import { provideColorSwatchPicker, useColorSwatchPickerContext } from "./compone
|
|
|
65
65
|
import { useColorSwatchPicker } from "./components/color-swatch-picker/use-color-swatch-picker.js";
|
|
66
66
|
import { XhColorSwatchPickerItem, XhColorSwatchPickerLabel, XhColorSwatchPickerRoot } from "./components/color-swatch-picker/color-swatch-picker.js";
|
|
67
67
|
import { useColorPicker } from "./components/color-picker/use-color-picker.js";
|
|
68
|
-
import { XhColorPickerAlphaSlider, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerHueSlider, XhColorPickerLabel, XhColorPickerPositioner, XhColorPickerRecentSwatchPicker, XhColorPickerRoot, XhColorPickerSaturationArea, XhColorPickerSwatch, XhColorPickerSwatchPicker, XhColorPickerTrigger, XhColorPickerValueText } from "./components/color-picker/color-picker.js";
|
|
68
|
+
import { XhColorPickerAlphaSlider, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerConfirmTrigger, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerHueSlider, XhColorPickerItemDeleteTrigger, XhColorPickerLabel, XhColorPickerOverflowTag, XhColorPickerPositioner, XhColorPickerRecentSwatchPicker, XhColorPickerRoot, XhColorPickerSaturationArea, XhColorPickerSwatch, XhColorPickerSwatchPicker, XhColorPickerTag, XhColorPickerTagLabel, XhColorPickerTagList, XhColorPickerTrigger, XhColorPickerValueText } from "./components/color-picker/color-picker.js";
|
|
69
69
|
import { XhColorSwatch } from "./components/color-swatch/color-swatch.js";
|
|
70
70
|
import { useCombobox } from "./components/combobox/use-combobox.js";
|
|
71
71
|
import { XhComboboxClearTrigger, XhComboboxContent, XhComboboxControl, XhComboboxEmpty, XhComboboxGroup, XhComboboxGroupLabel, XhComboboxHiddenInput, XhComboboxInput, XhComboboxItem, XhComboboxItemDeleteTrigger, XhComboboxItemDescription, XhComboboxItemIndicator, XhComboboxItemPrefix, XhComboboxItemSuffix, XhComboboxItemText, XhComboboxLabel, XhComboboxLoading, XhComboboxOverflowTag, XhComboboxPositioner, XhComboboxRoot, XhComboboxTag, XhComboboxTagLabel, XhComboboxTagList, XhComboboxTrigger } from "./components/combobox/combobox.js";
|
|
@@ -74,12 +74,13 @@ import { XhCommandContent, XhCommandEmpty, XhCommandFooter, XhCommandGroup, XhCo
|
|
|
74
74
|
import { provideContextMenuSub, useContextMenuSubContext } from "./components/context-menu/context.js";
|
|
75
75
|
import { provideMenu, provideMenuGroup, provideMenuSub, useMenuContext, useMenuGroupContext, useMenuSubContext } from "./components/menu/context.js";
|
|
76
76
|
import { useMenu } from "./components/menu/use-menu.js";
|
|
77
|
+
import { XhMenuArrow, XhMenuCheckboxItem, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuItemDescription, XhMenuItemIndicator, XhMenuItemShortcut, XhMenuItemSuffix, XhMenuItemText, XhMenuPositioner, XhMenuRadioGroup, XhMenuRadioItem, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger } from "./components/menu/menu.js";
|
|
77
78
|
import { useContextMenu } from "./components/context-menu/use-context-menu.js";
|
|
78
79
|
import { XhContextMenuArrow, XhContextMenuCheckboxItem, XhContextMenuContent, XhContextMenuGroup, XhContextMenuGroupLabel, XhContextMenuItem, XhContextMenuItemDescription, XhContextMenuItemIndicator, XhContextMenuItemShortcut, XhContextMenuItemSuffix, XhContextMenuItemText, XhContextMenuPositioner, XhContextMenuRadioGroup, XhContextMenuRadioItem, XhContextMenuRoot, XhContextMenuSeparator, XhContextMenuSub, XhContextMenuSubTrigger, XhContextMenuTrigger } from "./components/context-menu/context-menu.js";
|
|
79
80
|
import { useDateField } from "./components/date-field/use-date-field.js";
|
|
80
81
|
import { XhDateFieldClearTrigger, XhDateFieldControl, XhDateFieldHiddenInput, XhDateFieldLabel, XhDateFieldRoot, XhDateFieldSegment, XhDateFieldSegmentGroup } from "./components/date-field/date-field.js";
|
|
81
82
|
import { useDatePicker } from "./components/date-picker/use-date-picker.js";
|
|
82
|
-
import { XhDatePickerCalendar, XhDatePickerCell, XhDatePickerCellTrigger, XhDatePickerClearTrigger, XhDatePickerConfirmTrigger, XhDatePickerContent, XhDatePickerControl, XhDatePickerGrid, XhDatePickerGridBody, XhDatePickerGridHead, XhDatePickerHeader, XhDatePickerHeading, XhDatePickerHeadingMonthTrigger, XhDatePickerHeadingYearTrigger, XhDatePickerHiddenInput, XhDatePickerLabel, XhDatePickerNextTrigger, XhDatePickerNextYearTrigger, XhDatePickerPositioner, XhDatePickerPreset, XhDatePickerPresetGroup, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow } from "./components/date-picker/date-picker.js";
|
|
83
|
+
import { XhDatePickerCalendar, XhDatePickerCell, XhDatePickerCellTrigger, XhDatePickerClearTrigger, XhDatePickerConfirmTrigger, XhDatePickerContent, XhDatePickerControl, XhDatePickerGrid, XhDatePickerGridBody, XhDatePickerGridHead, XhDatePickerHeader, XhDatePickerHeading, XhDatePickerHeadingMonthTrigger, XhDatePickerHeadingYearTrigger, XhDatePickerHiddenInput, XhDatePickerItemDeleteTrigger, XhDatePickerLabel, XhDatePickerNextTrigger, XhDatePickerNextYearTrigger, XhDatePickerOverflowTag, XhDatePickerPositioner, XhDatePickerPreset, XhDatePickerPresetGroup, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTag, XhDatePickerTagLabel, XhDatePickerTagList, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow } from "./components/date-picker/date-picker.js";
|
|
83
84
|
import { useDateRangePicker } from "./components/date-range-picker/use-date-range-picker.js";
|
|
84
85
|
import { XhDateRangePickerCalendar, XhDateRangePickerCell, XhDateRangePickerCellTrigger, XhDateRangePickerClearTrigger, XhDateRangePickerConfirmTrigger, XhDateRangePickerContent, XhDateRangePickerControl, XhDateRangePickerGrid, XhDateRangePickerGridBody, XhDateRangePickerGridHead, XhDateRangePickerHeader, XhDateRangePickerHeading, XhDateRangePickerHeadingMonthTrigger, XhDateRangePickerHeadingYearTrigger, XhDateRangePickerHiddenInput, XhDateRangePickerLabel, XhDateRangePickerNextTrigger, XhDateRangePickerNextYearTrigger, XhDateRangePickerPositioner, XhDateRangePickerPreset, XhDateRangePickerPresetGroup, XhDateRangePickerPrevTrigger, XhDateRangePickerPrevYearTrigger, XhDateRangePickerRangeSeparator, XhDateRangePickerRoot, XhDateRangePickerSegment, XhDateRangePickerSegmentGroup, XhDateRangePickerTimePanel, XhDateRangePickerTrigger, XhDateRangePickerWeekDay, XhDateRangePickerWeekNumber, XhDateRangePickerWeekRow } from "./components/date-range-picker/date-range-picker.js";
|
|
85
86
|
import { provideDescriptions, useDescriptionsContext } from "./components/descriptions/context.js";
|
|
@@ -172,7 +173,6 @@ import { XhMatrixCode, XhMatrixCodeLogo } from "./components/matrix-code/matrix-
|
|
|
172
173
|
import { provideMention, provideMentionItem, useMentionContext, useMentionItemContext } from "./components/mention/context.js";
|
|
173
174
|
import { useMention } from "./components/mention/use-mention.js";
|
|
174
175
|
import { XhMentionContent, XhMentionEmpty, XhMentionInput, XhMentionItem, XhMentionItemDescription, XhMentionItemPrefix, XhMentionItemSuffix, XhMentionItemText, XhMentionLabel, XhMentionLoading, XhMentionPositioner, XhMentionRoot } from "./components/mention/mention.js";
|
|
175
|
-
import { XhMenuArrow, XhMenuCheckboxItem, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuItemDescription, XhMenuItemIndicator, XhMenuItemShortcut, XhMenuItemSuffix, XhMenuItemText, XhMenuPositioner, XhMenuRadioGroup, XhMenuRadioItem, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger } from "./components/menu/menu.js";
|
|
176
176
|
import { provideMenubarSub, useMenubarSubContext } from "./components/menubar/context.js";
|
|
177
177
|
import { useMenubar } from "./components/menubar/use-menubar.js";
|
|
178
178
|
import { XhMenubarArrow, XhMenubarCheckboxItem, XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemDescription, XhMenubarItemIndicator, XhMenubarItemShortcut, XhMenubarItemSuffix, XhMenubarItemText, XhMenubarPositioner, XhMenubarRadioGroup, XhMenubarRadioItem, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger } from "./components/menubar/menubar.js";
|
|
@@ -272,7 +272,7 @@ import { XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldCount, XhTextFi
|
|
|
272
272
|
import { useTimeField } from "./components/time-field/use-time-field.js";
|
|
273
273
|
import { XhTimeFieldClearTrigger, XhTimeFieldControl, XhTimeFieldHiddenInput, XhTimeFieldLabel, XhTimeFieldRoot, XhTimeFieldSegment, XhTimeFieldSegmentGroup } from "./components/time-field/time-field.js";
|
|
274
274
|
import { useTimePicker } from "./components/time-picker/use-time-picker.js";
|
|
275
|
-
import { XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerItem, XhTimePickerLabel, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresetGroup, XhTimePickerRoot, XhTimePickerSegment, XhTimePickerSegmentGroup, XhTimePickerTrigger } from "./components/time-picker/time-picker.js";
|
|
275
|
+
import { XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerConfirmTrigger, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerItem, XhTimePickerItemDeleteTrigger, XhTimePickerLabel, XhTimePickerOverflowTag, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresetGroup, XhTimePickerRoot, XhTimePickerSegment, XhTimePickerSegmentGroup, XhTimePickerTag, XhTimePickerTagLabel, XhTimePickerTagList, XhTimePickerTrigger } from "./components/time-picker/time-picker.js";
|
|
276
276
|
import { useTimeRangePicker } from "./components/time-range-picker/use-time-range-picker.js";
|
|
277
277
|
import { XhTimeRangePickerClearTrigger, XhTimeRangePickerColumn, XhTimeRangePickerColumnGroup, XhTimeRangePickerColumnGroupLabel, XhTimeRangePickerContent, XhTimeRangePickerControl, XhTimeRangePickerHiddenInput, XhTimeRangePickerItem, XhTimeRangePickerLabel, XhTimeRangePickerPositioner, XhTimeRangePickerPreset, XhTimeRangePickerPresetGroup, XhTimeRangePickerRangeSeparator, XhTimeRangePickerRoot, XhTimeRangePickerSegment, XhTimeRangePickerSegmentGroup, XhTimeRangePickerTrigger } from "./components/time-range-picker/time-range-picker.js";
|
|
278
278
|
import { provideTimeline, provideTimelineItem, useTimelineContext, useTimelineItem } from "./components/timeline/context.js";
|
|
@@ -312,4 +312,4 @@ import { createDialogService } from "./services/dialog-service.js";
|
|
|
312
312
|
import { createLoadingBarService } from "./services/loading-bar-service.js";
|
|
313
313
|
import { createNotificationService } from "./services/notification-service.js";
|
|
314
314
|
import { createColumnStore } from "@xihan-ui/headless";
|
|
315
|
-
export { XhAccordionContent, XhAccordionHeader, XhAccordionIndicator, XhAccordionItem, XhAccordionItemSeparator, XhAccordionRoot, XhAccordionTrigger, XhAffixContent, XhAffixRoot, XhAlertAction, XhAlertCloseTrigger, XhAlertContent, XhAlertDescription, XhAlertIndicator, XhAlertRoot, XhAlertTitle, XhAnchorIndicator, XhAnchorItem, XhAnchorLink, XhAnchorLinkText, XhAnchorList, XhAnchorRoot, XhApprovalApproveTrigger, XhApprovalDenyTrigger, XhApprovalDescription, XhApprovalFooter, XhApprovalGroup, XhApprovalItem, XhApprovalItemIndicator, XhApprovalItemText, XhApprovalLiveRegion, XhApprovalNote, XhApprovalPendingIndicator, XhApprovalResult, XhApprovalRoot, XhApprovalTimer, XhApprovalTitle, XhAvatarFallback, XhAvatarGroupOverflowItem, XhAvatarGroupRoot, XhAvatarImage, XhAvatarRoot, XhBackTopRoot, XhBackTopTrigger, XhBadge, XhBadgeIndicator, XhBadgeRoot, XhBarCode, XhBreadcrumbEllipsis, XhBreadcrumbEllipsisTrigger, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbLinkIcon, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator, XhButton, XhButtonGroup, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix, XhCalendarPickerCell, XhCalendarPickerCellTrigger, XhCalendarPickerGrid, XhCalendarPickerGridBody, XhCalendarPickerGridHead, XhCalendarPickerHeader, XhCalendarPickerHeading, XhCalendarPickerHeadingMonthTrigger, XhCalendarPickerHeadingYearTrigger, XhCalendarPickerNextTrigger, XhCalendarPickerNextYearTrigger, XhCalendarPickerPrevTrigger, XhCalendarPickerPrevYearTrigger, XhCalendarPickerRoot, XhCalendarPickerWeekDay, XhCalendarPickerWeekNumber, XhCalendarPickerWeekRow, XhCalendarRangePickerCell, XhCalendarRangePickerCellTrigger, XhCalendarRangePickerGrid, XhCalendarRangePickerGridBody, XhCalendarRangePickerGridHead, XhCalendarRangePickerHeader, XhCalendarRangePickerHeading, XhCalendarRangePickerHeadingMonthTrigger, XhCalendarRangePickerHeadingYearTrigger, XhCalendarRangePickerNextTrigger, XhCalendarRangePickerNextYearTrigger, XhCalendarRangePickerPrevTrigger, XhCalendarRangePickerPrevYearTrigger, XhCalendarRangePickerRoot, XhCalendarRangePickerWeekDay, XhCalendarRangePickerWeekNumber, XhCalendarRangePickerWeekRow, XhCardContent, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle, XhCardTrigger, XhCarouselAutoplayTrigger, XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselList, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport, XhCartesianChartCaption, XhCartesianChartEmpty, XhCartesianChartLegend, XhCartesianChartPlot, XhCartesianChartRoot, XhCartesianChartTooltip, XhCartesianChartViewport, XhCartesianChartZoomSlider, XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderFooter, XhCascaderGroup, XhCascaderGroupLabel, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemDeleteTrigger, XhCascaderItemDescription, XhCascaderItemIndicator, XhCascaderItemSuffix, XhCascaderItemText, XhCascaderLabel, XhCascaderLoading, XhCascaderOverflowTag, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTag, XhCascaderTagLabel, XhCascaderTagList, XhCascaderTrigger, XhCascaderValueText, XhCheckbox, XhCheckboxGroupIndicator, XhCheckboxGroupItem, XhCheckboxGroupItemDescription, XhCheckboxGroupItemText, XhCheckboxGroupLabel, XhCheckboxGroupRoot, XhCheckboxGroupSelectAllTrigger, XhCitationList, XhCitationPositioner, XhCitationPreview, XhCitationRoot, XhCitationSource, XhCitationSourceIndex, XhCitationSourceLink, XhCitationSourceMeta, XhCitationSourceTitle, XhCitationText, XhCitationTrigger, XhClipboardControl, XhClipboardCopyTrigger, XhClipboardIndicator, XhClipboardInput, XhClipboardLabel, XhClipboardRoot, XhClipboardStatus, XhCodeViewCode, XhCodeViewFilename, XhCodeViewFoldTrigger, XhCodeViewHeader, XhCodeViewLangLabel, XhCodeViewPre, XhCodeViewRoot, XhCollapsibleContent, XhCollapsibleHeader, XhCollapsibleIndicator, XhCollapsibleRoot, XhCollapsibleTrigger, XhColorFieldClearTrigger, XhColorFieldControl, XhColorFieldHiddenInput, XhColorFieldInput, XhColorFieldLabel, XhColorFieldRoot, XhColorFieldSwatch, XhColorPickerAlphaSlider, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerHueSlider, XhColorPickerLabel, XhColorPickerPositioner, XhColorPickerRecentSwatchPicker, XhColorPickerRoot, XhColorPickerSaturationArea, XhColorPickerSwatch, XhColorPickerSwatchPicker, XhColorPickerTrigger, XhColorPickerValueText, XhColorSliderControl, XhColorSliderHiddenInput, XhColorSliderLabel, XhColorSliderRoot, XhColorSliderThumb, XhColorSliderTrack, XhColorSliderValueText, XhColorSwatch, XhColorSwatchPickerItem, XhColorSwatchPickerLabel, XhColorSwatchPickerRoot, XhComboboxClearTrigger, XhComboboxContent, XhComboboxControl, XhComboboxEmpty, XhComboboxGroup, XhComboboxGroupLabel, XhComboboxHiddenInput, XhComboboxInput, XhComboboxItem, XhComboboxItemDeleteTrigger, XhComboboxItemDescription, XhComboboxItemIndicator, XhComboboxItemPrefix, XhComboboxItemSuffix, XhComboboxItemText, XhComboboxLabel, XhComboboxLoading, XhComboboxOverflowTag, XhComboboxPositioner, XhComboboxRoot, XhComboboxTag, XhComboboxTagLabel, XhComboboxTagList, XhComboboxTrigger, XhCommandContent, XhCommandEmpty, XhCommandFooter, XhCommandGroup, XhCommandGroupLabel, XhCommandInput, XhCommandItem, XhCommandItemDescription, XhCommandItemPrefix, XhCommandItemShortcut, XhCommandItemSuffix, XhCommandItemText, XhCommandList, XhCommandLoading, XhCommandRoot, XhCommandTrigger, XhContextMenuArrow, XhContextMenuCheckboxItem, XhContextMenuContent, XhContextMenuGroup, XhContextMenuGroupLabel, XhContextMenuItem, XhContextMenuItemDescription, XhContextMenuItemIndicator, XhContextMenuItemShortcut, XhContextMenuItemSuffix, XhContextMenuItemText, XhContextMenuPositioner, XhContextMenuRadioGroup, XhContextMenuRadioItem, XhContextMenuRoot, XhContextMenuSeparator, XhContextMenuSub, XhContextMenuSubTrigger, XhContextMenuTrigger, 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, XhDatePickerPresetGroup, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow, XhDateRangePickerCalendar, XhDateRangePickerCell, XhDateRangePickerCellTrigger, XhDateRangePickerClearTrigger, XhDateRangePickerConfirmTrigger, XhDateRangePickerContent, XhDateRangePickerControl, XhDateRangePickerGrid, XhDateRangePickerGridBody, XhDateRangePickerGridHead, XhDateRangePickerHeader, XhDateRangePickerHeading, XhDateRangePickerHeadingMonthTrigger, XhDateRangePickerHeadingYearTrigger, XhDateRangePickerHiddenInput, XhDateRangePickerLabel, XhDateRangePickerNextTrigger, XhDateRangePickerNextYearTrigger, XhDateRangePickerPositioner, XhDateRangePickerPreset, XhDateRangePickerPresetGroup, XhDateRangePickerPrevTrigger, XhDateRangePickerPrevYearTrigger, XhDateRangePickerRangeSeparator, XhDateRangePickerRoot, XhDateRangePickerSegment, XhDateRangePickerSegmentGroup, XhDateRangePickerTimePanel, XhDateRangePickerTrigger, XhDateRangePickerWeekDay, XhDateRangePickerWeekNumber, XhDateRangePickerWeekRow, XhDescriptionsExtra, XhDescriptionsHeader, XhDescriptionsItem, XhDescriptionsLabel, XhDescriptionsRoot, XhDescriptionsTitle, XhDescriptionsValue, XhDialogBody, XhDialogCloseTrigger, XhDialogContent, XhDialogDescription, XhDialogDragTrigger, XhDialogFooter, XhDialogHeader, XhDialogIndicator, XhDialogRoot, XhDialogTitle, XhDialogTrigger, XhDiffViewBody, XhDiffViewEmpty, XhDiffViewHeader, XhDiffViewRoot, XhDiffViewSummary, XhDiffViewTruncation, XhDiffViewViewport, XhDownloadTrigger, XhDrawerBody, XhDrawerCloseTrigger, XhDrawerContent, XhDrawerDescription, XhDrawerFooter, XhDrawerHeader, XhDrawerResizeTrigger, XhDrawerRoot, XhDrawerTitle, XhDrawerTrigger, XhEditableCancelTrigger, XhEditableControl, XhEditableEditTrigger, XhEditableInput, XhEditableLabel, XhEditablePreview, XhEditableRoot, XhEditableSubmitTrigger, XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIndicator, XhEmptyStateMedia, XhEmptyStateRoot, XhEmptyStateTitle, XhFieldArrayAddTrigger, XhFieldArrayItem, XhFieldArrayItemAction, XhFieldArrayItemContent, XhFieldArrayItemDeleteTrigger, XhFieldArrayItemLabel, XhFieldArrayMoveDownTrigger, XhFieldArrayMoveUpTrigger, XhFieldArrayRoot, XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot, XhFieldsetActions, XhFieldsetDescription, XhFieldsetErrorText, XhFieldsetFieldGroup, XhFieldsetLegend, XhFieldsetRoot, XhFileUploadClearTrigger, XhFileUploadDropzone, XhFileUploadHiddenInput, XhFileUploadItem, XhFileUploadItemDeleteTrigger, XhFileUploadItemName, XhFileUploadItemPreview, XhFileUploadItemProgress, XhFileUploadItemSizeText, XhFileUploadLabel, XhFileUploadList, XhFileUploadRoot, XhFileUploadTrigger, XhFlex, XhFlexSplit, XhFloatButtonList, XhFloatButtonRoot, XhFloatButtonTrigger, XhFloatingPanelBody, XhFloatingPanelCloseTrigger, XhFloatingPanelContent, XhFloatingPanelDragTrigger, XhFloatingPanelHeader, XhFloatingPanelPositioner, XhFloatingPanelResizeTrigger, XhFloatingPanelRoot, XhFloatingPanelTitle, XhFloatingPanelTrigger, XhFloatingPanelWindowStateTrigger, XhFormErrorSummary, XhFormErrorSummaryItem, XhFormFieldGroup, XhFormResetTrigger, XhFormRoot, XhFormSubmitTrigger, XhFunnelChartCaption, XhFunnelChartEmpty, XhFunnelChartPlot, XhFunnelChartRoot, XhFunnelChartTooltip, XhFunnelChartViewport, XhGraphChartCaption, XhGraphChartEmpty, XhGraphChartLegend, XhGraphChartPlot, XhGraphChartRoot, XhGraphChartTooltip, XhGraphChartViewport, XhGridItem, XhGridListEmpty, XhGridListLabel, XhGridListLoading, XhGridListRoot, XhGridListRow, XhGridListRowAction, XhGridListRowActions, XhGridListRowContent, XhGridListRowDescription, XhGridListRowSelectionIndicator, XhGridListRowText, XhGridRoot, XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDay, XhHierarchyChartCaption, XhHierarchyChartEmpty, XhHierarchyChartLegend, XhHierarchyChartPath, XhHierarchyChartPlot, XhHierarchyChartRoot, XhHierarchyChartTooltip, XhHierarchyChartViewport, XhHighlight, XhHoverCardArrow, XhHoverCardContent, XhHoverCardDescription, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTitle, XhHoverCardTrigger, XhIcon, XhImageCropperCropArea, XhImageCropperCropHandle, XhImageCropperFlipTrigger, XhImageCropperGrid, XhImageCropperHiddenInput, XhImageCropperImage, XhImageCropperRoot, XhImageCropperRotateSlider, XhImageCropperViewport, XhImageCropperZoomSlider, XhImageFallback, XhImageImage, XhImagePlaceholder, XhImageRoot, XhImageViewerCloseTrigger, XhImageViewerContent, XhImageViewerCounter, XhImageViewerFlipHorizontalTrigger, XhImageViewerFlipVerticalTrigger, XhImageViewerImage, XhImageViewerNextTrigger, XhImageViewerPrevTrigger, XhImageViewerResetTrigger, XhImageViewerRoot, XhImageViewerRotateLeftTrigger, XhImageViewerRotateRightTrigger, XhImageViewerToolbar, XhImageViewerTrigger, XhImageViewerViewport, XhImageViewerZoomInTrigger, XhImageViewerZoomOutTrigger, XhInfiniteScrollLoadMoreTrigger, XhInfiniteScrollRoot, XhInfiniteScrollSentinel, XhInputGroupItem, XhInputGroupRoot, XhJsonViewerRoot, XhKbd, XhLayoutContent, XhLayoutFooter, XhLayoutHeader, XhLayoutRoot, XhLayoutSider, XhLayoutSiderBackdrop, XhLayoutSiderTrigger, XhListItem, XhListItemAction, XhListItemContent, XhListItemDescription, XhListItemMedia, XhListItemTitle, XhListRoot, XhListboxContent, XhListboxEmpty, XhListboxGroup, XhListboxGroupLabel, XhListboxItem, XhListboxItemDescription, XhListboxItemIndicator, XhListboxItemPrefix, XhListboxItemSuffix, XhListboxItemText, XhListboxLabel, XhListboxLoadMoreTrigger, XhListboxLoading, XhListboxRoot, XhLoadingBarPeg, XhLoadingBarRange, XhLoadingBarRoot, XhLoadingBarTrack, XhLogContent, XhLogLine, XhLogLiveRegion, XhLogRoot, XhLogScrollToEndTrigger, XhLogSegment, XhLogViewport, XhMarkdownStreamContent, XhMarkdownStreamLiveRegion, XhMarkdownStreamRoot, XhMarqueeAutoplayTrigger, XhMarqueeContent, XhMarqueeRoot, XhMasonry, XhMatrixCode, XhMatrixCodeLogo, XhMentionContent, XhMentionEmpty, XhMentionInput, XhMentionItem, XhMentionItemDescription, XhMentionItemPrefix, XhMentionItemSuffix, XhMentionItemText, XhMentionLabel, XhMentionLoading, XhMentionPositioner, XhMentionRoot, XhMenuArrow, XhMenuCheckboxItem, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuItemDescription, XhMenuItemIndicator, XhMenuItemShortcut, XhMenuItemSuffix, XhMenuItemText, XhMenuPositioner, XhMenuRadioGroup, XhMenuRadioItem, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger, XhMenubarArrow, XhMenubarCheckboxItem, XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemDescription, XhMenubarItemIndicator, XhMenubarItemShortcut, XhMenubarItemSuffix, XhMenubarItemText, XhMenubarPositioner, XhMenubarRadioGroup, XhMenubarRadioItem, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger, XhMessageFeedItem, XhMessageFeedItemLabel, XhMessageFeedList, XhMessageFeedLiveRegion, XhMessageFeedPendingIndicator, XhMessageFeedRoot, XhMessageFeedScrollToEndTrigger, XhMessageFeedSeparator, XhMessageFeedUnreadCount, XhMessageFeedViewport, XhNavigationMenuBranchContent, XhNavigationMenuBranchIndicator, XhNavigationMenuBranchTrigger, XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuTriggerIndicator, XhNavigationMenuViewport, XhNotificationGroup, XhNotificationItem, XhNotificationItemActionTrigger, XhNotificationItemCloseTrigger, XhNotificationItemContent, XhNotificationItemDescription, XhNotificationItemIndicator, XhNotificationItemProgress, XhNotificationItemTitle, XhNotificationRoot, XhNumberAnimation, XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldPrefix, XhNumberFieldRoot, XhNumberFieldSuffix, XhPageHeaderBackTrigger, XhPageHeaderBreadcrumb, XhPageHeaderDescription, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderMedia, XhPageHeaderRoot, XhPageHeaderTitle, XhPaginationContent, XhPaginationEllipsisTrigger, XhPaginationFirstTrigger, XhPaginationItem, XhPaginationJumper, XhPaginationLastTrigger, XhPaginationNextTrigger, XhPaginationPageSizeSelect, XhPaginationPositioner, XhPaginationPrevTrigger, XhPaginationRoot, XhPaginationSummary, XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputStrengthMeter, XhPasswordInputVisibilityTrigger, XhPieChartCaption, XhPieChartCenter, XhPieChartEmpty, XhPieChartLegend, XhPieChartPlot, XhPieChartRoot, XhPieChartTooltip, XhPieChartViewport, XhPinInputGroup, XhPinInputHiddenInput, XhPinInputInput, XhPinInputLabel, XhPinInputRoot, XhPinInputSeparator, XhPopconfirmArrow, XhPopconfirmCancelTrigger, XhPopconfirmConfirmTrigger, XhPopconfirmContent, XhPopconfirmDescription, XhPopconfirmPositioner, XhPopconfirmRoot, XhPopconfirmTitle, XhPopconfirmTrigger, XhPopoverArrow, XhPopoverCloseTrigger, XhPopoverContent, XhPopoverDescription, XhPopoverPositioner, XhPopoverRoot, XhPopoverTitle, XhPopoverTrigger, XhProgress, XhPromptInputControl, XhPromptInputInput, XhPromptInputRoot, XhPromptInputSubmitTrigger, XhQuestionFlowCounter, XhQuestionFlowDescription, XhQuestionFlowFooter, XhQuestionFlowGroup, XhQuestionFlowItem, XhQuestionFlowItemDescription, XhQuestionFlowItemIndicator, XhQuestionFlowItemText, XhQuestionFlowLiveRegion, XhQuestionFlowNextTrigger, XhQuestionFlowNote, XhQuestionFlowPrevTrigger, XhQuestionFlowPrompt, XhQuestionFlowQuestion, XhQuestionFlowResult, XhQuestionFlowRoot, XhQuestionFlowSkipTrigger, XhQuestionFlowSubmitTrigger, XhQuestionFlowTrack, XhQuestionFlowViewport, XhRadarChartCaption, XhRadarChartEmpty, XhRadarChartLegend, XhRadarChartPlot, XhRadarChartRoot, XhRadarChartTooltip, XhRadarChartViewport, XhRadioGroupItem, XhRadioGroupItemDescription, XhRadioGroupItemIcon, XhRadioGroupItemText, XhRadioGroupLabel, XhRadioGroupRoot, XhRadioGroupThumb, XhRatingControl, XhRatingHiddenInput, XhRatingItem, XhRatingLabel, XhRatingRoot, XhRatingValueText, XhReasoningContent, XhReasoningDuration, XhReasoningIcon, XhReasoningIndicator, XhReasoningLabel, XhReasoningRoot, XhReasoningTrigger, XhResizableHandle, XhResizableRoot, XhSankeyChartCaption, XhSankeyChartEmpty, XhSankeyChartLegend, XhSankeyChartPlot, XhSankeyChartRoot, XhSankeyChartTooltip, XhSankeyChartViewport, XhScrollAreaContent, XhScrollAreaCorner, XhScrollAreaRoot, XhScrollAreaScrollbar, XhScrollAreaThumb, XhScrollAreaTrack, XhScrollAreaViewport, XhScrollbarCorner, XhScrollbarRoot, XhScrollbarThumb, XhScrollbarTrack, XhSelectClearTrigger, XhSelectContent, XhSelectControl, XhSelectEmpty, XhSelectFooter, XhSelectGroup, XhSelectGroupLabel, XhSelectIndicator, XhSelectItem, XhSelectItemDeleteTrigger, XhSelectItemDescription, XhSelectItemIndicator, XhSelectItemPrefix, XhSelectItemSuffix, XhSelectItemText, XhSelectLabel, XhSelectList, XhSelectLoading, XhSelectOverflowTag, XhSelectPositioner, XhSelectRoot, XhSelectTag, XhSelectTagLabel, XhSelectTagList, XhSelectTrigger, XhSelectValueText, XhSeparator, XhSeparatorContent, XhSeparatorLine, XhSeparatorRoot, XhSideNavBranch, XhSideNavBranchContent, XhSideNavBranchIndicator, XhSideNavBranchText, XhSideNavBranchTrigger, XhSideNavEmpty, XhSideNavGroup, XhSideNavGroupLabel, XhSideNavGroupList, XhSideNavInput, XhSideNavItem, XhSideNavLink, XhSideNavLinkText, XhSideNavList, XhSideNavRoot, XhSideNavTooltip, XhSignaturePadClearTrigger, XhSignaturePadControl, XhSignaturePadGuide, XhSignaturePadHiddenInput, XhSignaturePadLabel, XhSignaturePadPath, XhSignaturePadRedoTrigger, XhSignaturePadRoot, XhSignaturePadStatus, XhSignaturePadUndoTrigger, XhSkeletonItem, XhSkeletonRoot, XhSliderControl, XhSliderHiddenInput, XhSliderLabel, XhSliderRange, XhSliderRoot, XhSliderThumb, XhSliderTickGroup, XhSliderTrack, XhSliderValueText, XhSortableDropIndicator, XhSortableItem, XhSortableItemDragTrigger, XhSortableLiveRegion, XhSortableRoot, XhSparkline, XhSpinner, XhSpinnerLabel, XhSplitterPanel, XhSplitterResizeTrigger, XhSplitterRoot, XhStatisticLabel, XhStatisticPrefix, XhStatisticRoot, XhStatisticSuffix, XhStatisticTrend, XhStatisticValue, XhStepsContent, XhStepsDescription, XhStepsIndicator, XhStepsItem, XhStepsList, XhStepsRoot, XhStepsSeparator, XhStepsTitle, XhStepsTrigger, XhSwitch, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnDragTrigger, XhTableColumnHeader, XhTableColumnLabel, XhTableColumnList, XhTableColumnResizeTrigger, XhTableColumnVisibilityTrigger, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadMoreTrigger, XhTableLoading, XhTableRoot, XhTableRow, XhTableRowDragTrigger, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger, XhTableToolbar, XhTabsCloseTrigger, XhTabsContent, XhTabsIndicator, XhTabsList, XhTabsLiveRegion, XhTabsNextTrigger, XhTabsOverflowTrigger, XhTabsPrevTrigger, XhTabsRoot, XhTabsSeparator, XhTabsTabDragTrigger, XhTabsTrigger, XhTagCloseTrigger, XhTagGroupCell, XhTagGroupItem, XhTagGroupItemDeleteTrigger, XhTagGroupItemIndicator, XhTagGroupItemText, XhTagGroupLabel, XhTagGroupList, XhTagGroupRoot, XhTagLabel, XhTagRoot, XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputCount, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot, XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldCount, XhTextFieldInput, XhTextFieldLabel, XhTextFieldPrefix, XhTextFieldRoot, XhTextFieldSuffix, XhTimeFieldClearTrigger, XhTimeFieldControl, XhTimeFieldHiddenInput, XhTimeFieldLabel, XhTimeFieldRoot, XhTimeFieldSegment, XhTimeFieldSegmentGroup, XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerItem, XhTimePickerLabel, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresetGroup, XhTimePickerRoot, XhTimePickerSegment, XhTimePickerSegmentGroup, XhTimePickerTrigger, XhTimeRangePickerClearTrigger, XhTimeRangePickerColumn, XhTimeRangePickerColumnGroup, XhTimeRangePickerColumnGroupLabel, XhTimeRangePickerContent, XhTimeRangePickerControl, XhTimeRangePickerHiddenInput, XhTimeRangePickerItem, XhTimeRangePickerLabel, XhTimeRangePickerPositioner, XhTimeRangePickerPreset, XhTimeRangePickerPresetGroup, XhTimeRangePickerRangeSeparator, XhTimeRangePickerRoot, XhTimeRangePickerSegment, XhTimeRangePickerSegmentGroup, XhTimeRangePickerTrigger, XhTimelineConnector, XhTimelineContent, XhTimelineDescription, XhTimelineIndicator, XhTimelineItem, XhTimelineLabel, XhTimelineRoot, XhTimelineTime, XhTimelineTitle, XhTimerControl, XhTimerDisplay, XhTimerItem, XhTimerRoot, XhTimerSeparator, XhTimestamp, XhToggle, XhToggleGroupHiddenInput, XhToggleGroupItem, XhToggleGroupRoot, XhToolCallApproval, XhToolCallContent, XhToolCallDuration, XhToolCallError, XhToolCallIndicator, XhToolCallInput, XhToolCallLabel, XhToolCallOutput, XhToolCallRoot, XhToolCallStatus, XhToolCallSummary, XhToolCallTrigger, XhToolbarGroup, XhToolbarItem, XhToolbarOverflowTrigger, XhToolbarRoot, XhToolbarSeparator, XhTooltipArrow, XhTooltipContent, XhTooltipPositioner, XhTooltipProvider, XhTooltipRoot, XhTooltipTrigger, XhTourArrow, XhTourBackdrop, XhTourCloseTrigger, XhTourContent, XhTourDescription, XhTourNextTrigger, XhTourPositioner, XhTourPrevTrigger, XhTourProgressDot, XhTourProgressIndicator, XhTourProgressText, XhTourRoot, XhTourSkipTrigger, XhTourSpotlight, XhTourTitle, XhTransferEmpty, XhTransferGroup, XhTransferGroupLabel, XhTransferItem, XhTransferItemCheckbox, XhTransferItemDescription, XhTransferItemSuffix, XhTransferItemText, XhTransferList, XhTransferLoading, XhTransferPanelCount, XhTransferPanelHeader, XhTransferPanelTitle, XhTransferRoot, XhTransferSearch, XhTransferSelectAllTrigger, XhTransferSourcePanel, XhTransferTargetPanel, XhTransferToSourceTrigger, XhTransferToTargetTrigger, XhTreeBranch, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeEmpty, XhTreeItem, XhTreeItemDescription, XhTreeItemIndicator, XhTreeItemSuffix, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeLoading, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeSelectBranch, XhTreeSelectBranchContent, XhTreeSelectBranchControl, XhTreeSelectBranchEmpty, XhTreeSelectBranchError, XhTreeSelectBranchIndicator, XhTreeSelectBranchLoading, XhTreeSelectBranchRetryTrigger, XhTreeSelectBranchText, XhTreeSelectBranchTrigger, XhTreeSelectClearTrigger, XhTreeSelectContent, XhTreeSelectControl, XhTreeSelectEmpty, XhTreeSelectFooter, XhTreeSelectHiddenInput, XhTreeSelectIndicator, XhTreeSelectInput, XhTreeSelectItem, XhTreeSelectItemDeleteTrigger, XhTreeSelectItemDescription, XhTreeSelectItemIndicator, XhTreeSelectItemSuffix, XhTreeSelectItemText, XhTreeSelectLabel, XhTreeSelectLoading, XhTreeSelectOverflowTag, XhTreeSelectPositioner, XhTreeSelectRoot, XhTreeSelectTag, XhTreeSelectTagLabel, XhTreeSelectTagList, XhTreeSelectTree, XhTreeSelectTrigger, XhTreeSelectValueText, XhTreeTree, XhTruncate, XhTypographyHeading, XhTypographyLink, XhTypographyParagraph, XhTypographyProse, XhTypographyRoot, XhTypographyText, XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualizerViewport, XhWatermarkContent, XhWatermarkRoot, createColumnStore, createDialogService, createLoadingBarService, createNotificationService, createVueIdGenerator, createVueRuntime, mergeXhConfig, provideAffix, provideApproval, provideAvatarGroup, provideBackTop, provideCitation, provideCitationSource, provideColorField, provideColorSlider, provideColorSwatchPicker, provideContextMenuSub, provideDescriptions, provideDiffView, provideField, provideFieldArray, provideFieldArrayItem, provideFlex, provideFloatButton, provideGrid, provideImageViewer, provideInfiniteScroll, provideInputGroup, provideLayout, provideList, provideLog, provideMarkdownStream, provideMarquee, provideMatrixCode, provideMention, provideMentionItem, provideMenu, provideMenuGroup, provideMenuSub, provideMenubarSub, provideMessageFeed, provideMessageFeedItem, provideNotification, provideNotificationItem, providePageHeader, providePopconfirm, providePromptInput, provideQuestionFlow, provideReasoning, provideResizable, provideScrollbar, provideSideNav, provideSideNavNode, provideSortable, provideStatistic, provideTimeline, provideTimelineItem, provideToolCall, provideTypography, provideWatermark, provideXhConfig, useAccordion, useAffix, useAffixContext, useAnchor, useApproval, useApprovalContext, useAvatar, useAvatarGroupContext, useBackTop, useBackTopContext, useBreadcrumb, useCalendarPicker, useCalendarRangePicker, useCarousel, useCartesianChart, useCascader, useCheckbox, useCheckboxGroup, useCitation, useCitationContext, useCitationSource, useClipboard, useCodeView, useCollapsible, useColorField, useColorFieldContext, useColorPicker, useColorSlider, useColorSliderContext, useColorSwatchPicker, useColorSwatchPickerContext, useCombobox, useCommand, useContextMenu, useContextMenuSubContext, useDateField, useDatePicker, useDateRangePicker, useDescriptionsContext, useDialog, useDiffView, useDiffViewContext, useDownloadTrigger, useDrawer, useEditable, useField, useFieldArray, useFieldArrayContext, useFieldArrayItemContext, useFieldContext, useFieldControl, useFieldLabelWiring, useFieldStateWiring, useFieldset, useFieldsetContext, useFileUpload, useFlexContext, useFloatButton, useFloatButtonContext, useFloatingPanel, useFloatingPanelContext, useForm, useFunnelChart, useGraphChart, useGridContext, useGridList, useGridListContext, useGridListRow, useHeatmap, useHeatmapContext, useHierarchyChart, useHoverCard, useIcon, useImage, useImageCropper, useImageCropperContext, useImageViewer, useImageViewerContext, useInfiniteScroll, useInfiniteScrollContext, useInputGroupContext, useJsonViewer, useLayout, useLayoutContext, useListContext, useListbox, useLoadingBar, useLog, useLogContext, useMachine, useMarkdownStream, useMarkdownStreamContext, useMarqueeContext, useMatrixCodeContext, useMention, useMentionContext, useMentionItemContext, useMenu, useMenuContext, useMenuGroupContext, useMenuSubContext, useMenubar, useMenubarSubContext, useMessageFeed, useMessageFeedContext, useMessageFeedItemContext, useNavigationMenu, useNotification, useNotificationContext, useNotificationContextOptional, useNotificationItem, useNotificationItemContext, useNumberField, useOptionalFieldContext, usePageHeaderContext, usePagination, usePasswordInput, usePasswordInputContext, usePieChart, usePinInput, usePopconfirm, usePopconfirmContext, usePopover, usePromptInput, usePromptInputContext, useQuestionFlow, useQuestionFlowContext, useRadarChart, useRadioGroup, useRating, useReasoning, useReasoningContext, useResizable, useResizableContext, useSankeyChart, useScrollArea, useScrollbar, useScrollbarContext, useSelect, useSideNav, useSideNavContext, useSideNavNodeContext, useSignaturePad, useSignaturePadContext, useSlider, useSortable, useSortableContext, useSparkline, useSplitter, useStatisticContext, useSteps, useSwitch, useTable, useTabs, useTag, useTagContext, useTagGroup, useTagGroupContext, useTagGroupItemContext, useTagsInput, useTextField, useTimeField, useTimePicker, useTimeRangePicker, useTimelineContext, useTimelineItem, useTimer, useTimerContext, useToggle, useToggleGroup, useToolCall, useToolCallContext, useToolbar, useTooltip, useTour, useTransfer, useTree, useTreeSelect, useTruncate, useTypographyContext, useVirtualizer, useWatermarkContext, useXhConfig, vueNormalize, withXhConfig };
|
|
315
|
+
export { XhAccordionContent, XhAccordionHeader, XhAccordionIndicator, XhAccordionItem, XhAccordionItemSeparator, XhAccordionRoot, XhAccordionTrigger, XhAffixContent, XhAffixRoot, XhAlertAction, XhAlertCloseTrigger, XhAlertContent, XhAlertDescription, XhAlertIndicator, XhAlertRoot, XhAlertTitle, XhAnchorIndicator, XhAnchorItem, XhAnchorLink, XhAnchorLinkText, XhAnchorList, XhAnchorRoot, XhApprovalApproveTrigger, XhApprovalDenyTrigger, XhApprovalDescription, XhApprovalFooter, XhApprovalGroup, XhApprovalItem, XhApprovalItemIndicator, XhApprovalItemText, XhApprovalLiveRegion, XhApprovalNote, XhApprovalPendingIndicator, XhApprovalResult, XhApprovalRoot, XhApprovalTimer, XhApprovalTitle, XhAvatarFallback, XhAvatarGroupOverflowItem, XhAvatarGroupRoot, XhAvatarImage, XhAvatarRoot, XhBackTopRoot, XhBackTopTrigger, XhBadge, XhBadgeIndicator, XhBadgeRoot, XhBarCode, XhBreadcrumbEllipsis, XhBreadcrumbEllipsisTrigger, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbLinkIcon, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator, XhButton, XhButtonGroup, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix, XhCalendarPickerCell, XhCalendarPickerCellTrigger, XhCalendarPickerGrid, XhCalendarPickerGridBody, XhCalendarPickerGridHead, XhCalendarPickerHeader, XhCalendarPickerHeading, XhCalendarPickerHeadingMonthTrigger, XhCalendarPickerHeadingYearTrigger, XhCalendarPickerNextTrigger, XhCalendarPickerNextYearTrigger, XhCalendarPickerPrevTrigger, XhCalendarPickerPrevYearTrigger, XhCalendarPickerRoot, XhCalendarPickerWeekDay, XhCalendarPickerWeekNumber, XhCalendarPickerWeekRow, XhCalendarRangePickerCell, XhCalendarRangePickerCellTrigger, XhCalendarRangePickerGrid, XhCalendarRangePickerGridBody, XhCalendarRangePickerGridHead, XhCalendarRangePickerHeader, XhCalendarRangePickerHeading, XhCalendarRangePickerHeadingMonthTrigger, XhCalendarRangePickerHeadingYearTrigger, XhCalendarRangePickerNextTrigger, XhCalendarRangePickerNextYearTrigger, XhCalendarRangePickerPrevTrigger, XhCalendarRangePickerPrevYearTrigger, XhCalendarRangePickerRoot, XhCalendarRangePickerWeekDay, XhCalendarRangePickerWeekNumber, XhCalendarRangePickerWeekRow, XhCardContent, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle, XhCardTrigger, XhCarouselAutoplayTrigger, XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselList, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport, XhCartesianChartCaption, XhCartesianChartEmpty, XhCartesianChartLegend, XhCartesianChartPlot, XhCartesianChartRoot, XhCartesianChartTooltip, XhCartesianChartViewport, XhCartesianChartZoomSlider, XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderFooter, XhCascaderGroup, XhCascaderGroupLabel, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemDeleteTrigger, XhCascaderItemDescription, XhCascaderItemIndicator, XhCascaderItemSuffix, XhCascaderItemText, XhCascaderLabel, XhCascaderLoading, XhCascaderOverflowTag, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTag, XhCascaderTagLabel, XhCascaderTagList, XhCascaderTrigger, XhCascaderValueText, XhCheckbox, XhCheckboxGroupIndicator, XhCheckboxGroupItem, XhCheckboxGroupItemDescription, XhCheckboxGroupItemText, XhCheckboxGroupLabel, XhCheckboxGroupRoot, XhCheckboxGroupSelectAllTrigger, XhCitationList, XhCitationPositioner, XhCitationPreview, XhCitationRoot, XhCitationSource, XhCitationSourceIndex, XhCitationSourceLink, XhCitationSourceMeta, XhCitationSourceTitle, XhCitationText, XhCitationTrigger, XhClipboardControl, XhClipboardCopyTrigger, XhClipboardIndicator, XhClipboardInput, XhClipboardLabel, XhClipboardRoot, XhClipboardStatus, XhCodeViewCode, XhCodeViewFilename, XhCodeViewFoldTrigger, XhCodeViewHeader, XhCodeViewLangLabel, XhCodeViewPre, XhCodeViewRoot, XhCollapsibleContent, XhCollapsibleHeader, XhCollapsibleIndicator, XhCollapsibleRoot, XhCollapsibleTrigger, XhColorFieldClearTrigger, XhColorFieldControl, XhColorFieldHiddenInput, XhColorFieldInput, XhColorFieldLabel, XhColorFieldRoot, XhColorFieldSwatch, XhColorPickerAlphaSlider, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerConfirmTrigger, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerHueSlider, XhColorPickerItemDeleteTrigger, XhColorPickerLabel, XhColorPickerOverflowTag, XhColorPickerPositioner, XhColorPickerRecentSwatchPicker, XhColorPickerRoot, XhColorPickerSaturationArea, XhColorPickerSwatch, XhColorPickerSwatchPicker, XhColorPickerTag, XhColorPickerTagLabel, XhColorPickerTagList, XhColorPickerTrigger, XhColorPickerValueText, XhColorSliderControl, XhColorSliderHiddenInput, XhColorSliderLabel, XhColorSliderRoot, XhColorSliderThumb, XhColorSliderTrack, XhColorSliderValueText, XhColorSwatch, XhColorSwatchPickerItem, XhColorSwatchPickerLabel, XhColorSwatchPickerRoot, XhComboboxClearTrigger, XhComboboxContent, XhComboboxControl, XhComboboxEmpty, XhComboboxGroup, XhComboboxGroupLabel, XhComboboxHiddenInput, XhComboboxInput, XhComboboxItem, XhComboboxItemDeleteTrigger, XhComboboxItemDescription, XhComboboxItemIndicator, XhComboboxItemPrefix, XhComboboxItemSuffix, XhComboboxItemText, XhComboboxLabel, XhComboboxLoading, XhComboboxOverflowTag, XhComboboxPositioner, XhComboboxRoot, XhComboboxTag, XhComboboxTagLabel, XhComboboxTagList, XhComboboxTrigger, XhCommandContent, XhCommandEmpty, XhCommandFooter, XhCommandGroup, XhCommandGroupLabel, XhCommandInput, XhCommandItem, XhCommandItemDescription, XhCommandItemPrefix, XhCommandItemShortcut, XhCommandItemSuffix, XhCommandItemText, XhCommandList, XhCommandLoading, XhCommandRoot, XhCommandTrigger, XhContextMenuArrow, XhContextMenuCheckboxItem, XhContextMenuContent, XhContextMenuGroup, XhContextMenuGroupLabel, XhContextMenuItem, XhContextMenuItemDescription, XhContextMenuItemIndicator, XhContextMenuItemShortcut, XhContextMenuItemSuffix, XhContextMenuItemText, XhContextMenuPositioner, XhContextMenuRadioGroup, XhContextMenuRadioItem, XhContextMenuRoot, XhContextMenuSeparator, XhContextMenuSub, XhContextMenuSubTrigger, XhContextMenuTrigger, XhDateFieldClearTrigger, XhDateFieldControl, XhDateFieldHiddenInput, XhDateFieldLabel, XhDateFieldRoot, XhDateFieldSegment, XhDateFieldSegmentGroup, XhDatePickerCalendar, XhDatePickerCell, XhDatePickerCellTrigger, XhDatePickerClearTrigger, XhDatePickerConfirmTrigger, XhDatePickerContent, XhDatePickerControl, XhDatePickerGrid, XhDatePickerGridBody, XhDatePickerGridHead, XhDatePickerHeader, XhDatePickerHeading, XhDatePickerHeadingMonthTrigger, XhDatePickerHeadingYearTrigger, XhDatePickerHiddenInput, XhDatePickerItemDeleteTrigger, XhDatePickerLabel, XhDatePickerNextTrigger, XhDatePickerNextYearTrigger, XhDatePickerOverflowTag, XhDatePickerPositioner, XhDatePickerPreset, XhDatePickerPresetGroup, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTag, XhDatePickerTagLabel, XhDatePickerTagList, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow, XhDateRangePickerCalendar, XhDateRangePickerCell, XhDateRangePickerCellTrigger, XhDateRangePickerClearTrigger, XhDateRangePickerConfirmTrigger, XhDateRangePickerContent, XhDateRangePickerControl, XhDateRangePickerGrid, XhDateRangePickerGridBody, XhDateRangePickerGridHead, XhDateRangePickerHeader, XhDateRangePickerHeading, XhDateRangePickerHeadingMonthTrigger, XhDateRangePickerHeadingYearTrigger, XhDateRangePickerHiddenInput, XhDateRangePickerLabel, XhDateRangePickerNextTrigger, XhDateRangePickerNextYearTrigger, XhDateRangePickerPositioner, XhDateRangePickerPreset, XhDateRangePickerPresetGroup, XhDateRangePickerPrevTrigger, XhDateRangePickerPrevYearTrigger, XhDateRangePickerRangeSeparator, XhDateRangePickerRoot, XhDateRangePickerSegment, XhDateRangePickerSegmentGroup, XhDateRangePickerTimePanel, XhDateRangePickerTrigger, XhDateRangePickerWeekDay, XhDateRangePickerWeekNumber, XhDateRangePickerWeekRow, XhDescriptionsExtra, XhDescriptionsHeader, XhDescriptionsItem, XhDescriptionsLabel, XhDescriptionsRoot, XhDescriptionsTitle, XhDescriptionsValue, XhDialogBody, XhDialogCloseTrigger, XhDialogContent, XhDialogDescription, XhDialogDragTrigger, XhDialogFooter, XhDialogHeader, XhDialogIndicator, XhDialogRoot, XhDialogTitle, XhDialogTrigger, XhDiffViewBody, XhDiffViewEmpty, XhDiffViewHeader, XhDiffViewRoot, XhDiffViewSummary, XhDiffViewTruncation, XhDiffViewViewport, XhDownloadTrigger, XhDrawerBody, XhDrawerCloseTrigger, XhDrawerContent, XhDrawerDescription, XhDrawerFooter, XhDrawerHeader, XhDrawerResizeTrigger, XhDrawerRoot, XhDrawerTitle, XhDrawerTrigger, XhEditableCancelTrigger, XhEditableControl, XhEditableEditTrigger, XhEditableInput, XhEditableLabel, XhEditablePreview, XhEditableRoot, XhEditableSubmitTrigger, XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIndicator, XhEmptyStateMedia, XhEmptyStateRoot, XhEmptyStateTitle, XhFieldArrayAddTrigger, XhFieldArrayItem, XhFieldArrayItemAction, XhFieldArrayItemContent, XhFieldArrayItemDeleteTrigger, XhFieldArrayItemLabel, XhFieldArrayMoveDownTrigger, XhFieldArrayMoveUpTrigger, XhFieldArrayRoot, XhFieldBoundary, XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot, XhFieldsetActions, XhFieldsetDescription, XhFieldsetErrorText, XhFieldsetFieldGroup, XhFieldsetLegend, XhFieldsetRoot, XhFileUploadClearTrigger, XhFileUploadDropzone, XhFileUploadHiddenInput, XhFileUploadItem, XhFileUploadItemDeleteTrigger, XhFileUploadItemName, XhFileUploadItemPreview, XhFileUploadItemProgress, XhFileUploadItemSizeText, XhFileUploadLabel, XhFileUploadList, XhFileUploadRoot, XhFileUploadTrigger, XhFlex, XhFlexSplit, XhFloatButtonList, XhFloatButtonRoot, XhFloatButtonTrigger, XhFloatingPanelBody, XhFloatingPanelCloseTrigger, XhFloatingPanelContent, XhFloatingPanelDragTrigger, XhFloatingPanelHeader, XhFloatingPanelPositioner, XhFloatingPanelResizeTrigger, XhFloatingPanelRoot, XhFloatingPanelTitle, XhFloatingPanelTrigger, XhFloatingPanelWindowStateTrigger, XhFormErrorSummary, XhFormErrorSummaryItem, XhFormFieldGroup, XhFormResetTrigger, XhFormRoot, XhFormSubmitTrigger, XhFunnelChartCaption, XhFunnelChartEmpty, XhFunnelChartPlot, XhFunnelChartRoot, XhFunnelChartTooltip, XhFunnelChartViewport, XhGraphChartCaption, XhGraphChartEmpty, XhGraphChartLegend, XhGraphChartPlot, XhGraphChartRoot, XhGraphChartTooltip, XhGraphChartViewport, XhGridItem, XhGridListEmpty, XhGridListLabel, XhGridListLoading, XhGridListRoot, XhGridListRow, XhGridListRowAction, XhGridListRowActions, XhGridListRowContent, XhGridListRowDescription, XhGridListRowSelectionIndicator, XhGridListRowText, XhGridRoot, XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDay, XhHierarchyChartCaption, XhHierarchyChartEmpty, XhHierarchyChartLegend, XhHierarchyChartPath, XhHierarchyChartPlot, XhHierarchyChartRoot, XhHierarchyChartTooltip, XhHierarchyChartViewport, XhHighlight, XhHoverCardArrow, XhHoverCardContent, XhHoverCardDescription, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTitle, XhHoverCardTrigger, XhIcon, XhImageCropperCropArea, XhImageCropperCropHandle, XhImageCropperFlipTrigger, XhImageCropperGrid, XhImageCropperHiddenInput, XhImageCropperImage, XhImageCropperRoot, XhImageCropperRotateSlider, XhImageCropperViewport, XhImageCropperZoomSlider, XhImageFallback, XhImageImage, XhImagePlaceholder, XhImageRoot, XhImageViewerCloseTrigger, XhImageViewerContent, XhImageViewerCounter, XhImageViewerFlipHorizontalTrigger, XhImageViewerFlipVerticalTrigger, XhImageViewerImage, XhImageViewerNextTrigger, XhImageViewerPrevTrigger, XhImageViewerResetTrigger, XhImageViewerRoot, XhImageViewerRotateLeftTrigger, XhImageViewerRotateRightTrigger, XhImageViewerToolbar, XhImageViewerTrigger, XhImageViewerViewport, XhImageViewerZoomInTrigger, XhImageViewerZoomOutTrigger, XhInfiniteScrollLoadMoreTrigger, XhInfiniteScrollRoot, XhInfiniteScrollSentinel, XhInputGroupItem, XhInputGroupRoot, XhJsonViewerRoot, XhKbd, XhLayoutContent, XhLayoutFooter, XhLayoutHeader, XhLayoutRoot, XhLayoutSider, XhLayoutSiderBackdrop, XhLayoutSiderTrigger, XhListItem, XhListItemAction, XhListItemContent, XhListItemDescription, XhListItemMedia, XhListItemTitle, XhListRoot, XhListboxContent, XhListboxEmpty, XhListboxGroup, XhListboxGroupLabel, XhListboxItem, XhListboxItemDescription, XhListboxItemIndicator, XhListboxItemPrefix, XhListboxItemSuffix, XhListboxItemText, XhListboxLabel, XhListboxLoadMoreTrigger, XhListboxLoading, XhListboxRoot, XhLoadingBarPeg, XhLoadingBarRange, XhLoadingBarRoot, XhLoadingBarTrack, XhLogContent, XhLogLine, XhLogLiveRegion, XhLogRoot, XhLogScrollToEndTrigger, XhLogSegment, XhLogViewport, XhMarkdownStreamContent, XhMarkdownStreamLiveRegion, XhMarkdownStreamRoot, XhMarqueeAutoplayTrigger, XhMarqueeContent, XhMarqueeRoot, XhMasonry, XhMatrixCode, XhMatrixCodeLogo, XhMentionContent, XhMentionEmpty, XhMentionInput, XhMentionItem, XhMentionItemDescription, XhMentionItemPrefix, XhMentionItemSuffix, XhMentionItemText, XhMentionLabel, XhMentionLoading, XhMentionPositioner, XhMentionRoot, XhMenuArrow, XhMenuCheckboxItem, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuItemDescription, XhMenuItemIndicator, XhMenuItemShortcut, XhMenuItemSuffix, XhMenuItemText, XhMenuPositioner, XhMenuRadioGroup, XhMenuRadioItem, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger, XhMenubarArrow, XhMenubarCheckboxItem, XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemDescription, XhMenubarItemIndicator, XhMenubarItemShortcut, XhMenubarItemSuffix, XhMenubarItemText, XhMenubarPositioner, XhMenubarRadioGroup, XhMenubarRadioItem, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger, XhMessageFeedItem, XhMessageFeedItemLabel, XhMessageFeedList, XhMessageFeedLiveRegion, XhMessageFeedPendingIndicator, XhMessageFeedRoot, XhMessageFeedScrollToEndTrigger, XhMessageFeedSeparator, XhMessageFeedUnreadCount, XhMessageFeedViewport, XhNavigationMenuBranchContent, XhNavigationMenuBranchIndicator, XhNavigationMenuBranchTrigger, XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuTriggerIndicator, XhNavigationMenuViewport, XhNotificationGroup, XhNotificationItem, XhNotificationItemActionTrigger, XhNotificationItemCloseTrigger, XhNotificationItemContent, XhNotificationItemDescription, XhNotificationItemIndicator, XhNotificationItemProgress, XhNotificationItemTitle, XhNotificationRoot, XhNumberAnimation, XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldPrefix, XhNumberFieldRoot, XhNumberFieldSuffix, XhPageHeaderBackTrigger, XhPageHeaderBreadcrumb, XhPageHeaderDescription, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderMedia, XhPageHeaderRoot, XhPageHeaderTitle, XhPaginationContent, XhPaginationEllipsisTrigger, XhPaginationFirstTrigger, XhPaginationItem, XhPaginationJumper, XhPaginationLastTrigger, XhPaginationNextTrigger, XhPaginationPageSizeSelect, XhPaginationPositioner, XhPaginationPrevTrigger, XhPaginationRoot, XhPaginationSummary, XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputStrengthMeter, XhPasswordInputVisibilityTrigger, XhPieChartCaption, XhPieChartCenter, XhPieChartEmpty, XhPieChartLegend, XhPieChartPlot, XhPieChartRoot, XhPieChartTooltip, XhPieChartViewport, XhPinInputGroup, XhPinInputHiddenInput, XhPinInputInput, XhPinInputLabel, XhPinInputRoot, XhPinInputSeparator, XhPopconfirmArrow, XhPopconfirmCancelTrigger, XhPopconfirmConfirmTrigger, XhPopconfirmContent, XhPopconfirmDescription, XhPopconfirmPositioner, XhPopconfirmRoot, XhPopconfirmTitle, XhPopconfirmTrigger, XhPopoverArrow, XhPopoverCloseTrigger, XhPopoverContent, XhPopoverDescription, XhPopoverPositioner, XhPopoverRoot, XhPopoverTitle, XhPopoverTrigger, XhProgress, XhPromptInputControl, XhPromptInputInput, XhPromptInputRoot, XhPromptInputSubmitTrigger, XhQuestionFlowCounter, XhQuestionFlowDescription, XhQuestionFlowFooter, XhQuestionFlowGroup, XhQuestionFlowItem, XhQuestionFlowItemDescription, XhQuestionFlowItemIndicator, XhQuestionFlowItemText, XhQuestionFlowLiveRegion, XhQuestionFlowNextTrigger, XhQuestionFlowNote, XhQuestionFlowPrevTrigger, XhQuestionFlowPrompt, XhQuestionFlowQuestion, XhQuestionFlowResult, XhQuestionFlowRoot, XhQuestionFlowSkipTrigger, XhQuestionFlowSubmitTrigger, XhQuestionFlowTrack, XhQuestionFlowViewport, XhRadarChartCaption, XhRadarChartEmpty, XhRadarChartLegend, XhRadarChartPlot, XhRadarChartRoot, XhRadarChartTooltip, XhRadarChartViewport, XhRadioGroupItem, XhRadioGroupItemDescription, XhRadioGroupItemIcon, XhRadioGroupItemText, XhRadioGroupLabel, XhRadioGroupRoot, XhRadioGroupThumb, XhRatingControl, XhRatingHiddenInput, XhRatingItem, XhRatingLabel, XhRatingRoot, XhRatingValueText, XhReasoningContent, XhReasoningDuration, XhReasoningIcon, XhReasoningIndicator, XhReasoningLabel, XhReasoningRoot, XhReasoningTrigger, XhResizableHandle, XhResizableRoot, XhSankeyChartCaption, XhSankeyChartEmpty, XhSankeyChartLegend, XhSankeyChartPlot, XhSankeyChartRoot, XhSankeyChartTooltip, XhSankeyChartViewport, XhScrollAreaContent, XhScrollAreaCorner, XhScrollAreaRoot, XhScrollAreaScrollbar, XhScrollAreaThumb, XhScrollAreaTrack, XhScrollAreaViewport, XhScrollbarCorner, XhScrollbarRoot, XhScrollbarThumb, XhScrollbarTrack, XhSelectClearTrigger, XhSelectContent, XhSelectControl, XhSelectEmpty, XhSelectFooter, XhSelectGroup, XhSelectGroupLabel, XhSelectIndicator, XhSelectItem, XhSelectItemDeleteTrigger, XhSelectItemDescription, XhSelectItemIndicator, XhSelectItemPrefix, XhSelectItemSuffix, XhSelectItemText, XhSelectLabel, XhSelectList, XhSelectLoading, XhSelectOverflowTag, XhSelectPositioner, XhSelectRoot, XhSelectTag, XhSelectTagLabel, XhSelectTagList, XhSelectTrigger, XhSelectValueText, XhSeparator, XhSeparatorContent, XhSeparatorLine, XhSeparatorRoot, XhSideNavBranch, XhSideNavBranchContent, XhSideNavBranchIndicator, XhSideNavBranchText, XhSideNavBranchTrigger, XhSideNavEmpty, XhSideNavGroup, XhSideNavGroupLabel, XhSideNavGroupList, XhSideNavInput, XhSideNavItem, XhSideNavLink, XhSideNavLinkText, XhSideNavList, XhSideNavRoot, XhSideNavTooltip, XhSignaturePadClearTrigger, XhSignaturePadControl, XhSignaturePadGuide, XhSignaturePadHiddenInput, XhSignaturePadLabel, XhSignaturePadPath, XhSignaturePadRedoTrigger, XhSignaturePadRoot, XhSignaturePadStatus, XhSignaturePadUndoTrigger, XhSkeletonItem, XhSkeletonRoot, XhSliderControl, XhSliderHiddenInput, XhSliderLabel, XhSliderRange, XhSliderRoot, XhSliderThumb, XhSliderTickGroup, XhSliderTrack, XhSliderValueText, XhSortableDropIndicator, XhSortableItem, XhSortableItemDragTrigger, XhSortableLiveRegion, XhSortableRoot, XhSparkline, XhSpinner, XhSpinnerLabel, XhSplitterPanel, XhSplitterResizeTrigger, XhSplitterRoot, XhStatisticLabel, XhStatisticPrefix, XhStatisticRoot, XhStatisticSuffix, XhStatisticTrend, XhStatisticValue, XhStepsContent, XhStepsDescription, XhStepsIndicator, XhStepsItem, XhStepsList, XhStepsRoot, XhStepsSeparator, XhStepsTitle, XhStepsTrigger, XhSwitch, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnDragTrigger, XhTableColumnHeader, XhTableColumnLabel, XhTableColumnList, XhTableColumnResizeTrigger, XhTableColumnVisibilityTrigger, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadMoreTrigger, XhTableLoading, XhTableRoot, XhTableRow, XhTableRowDragTrigger, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger, XhTableToolbar, XhTabsCloseTrigger, XhTabsContent, XhTabsIndicator, XhTabsList, XhTabsLiveRegion, XhTabsNextTrigger, XhTabsOverflowTrigger, XhTabsPrevTrigger, XhTabsRoot, XhTabsSeparator, XhTabsTabDragTrigger, XhTabsTrigger, XhTagCloseTrigger, XhTagGroupCell, XhTagGroupItem, XhTagGroupItemDeleteTrigger, XhTagGroupItemIndicator, XhTagGroupItemText, XhTagGroupLabel, XhTagGroupList, XhTagGroupRoot, XhTagLabel, XhTagRoot, XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputCount, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot, XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldCount, XhTextFieldInput, XhTextFieldLabel, XhTextFieldPrefix, XhTextFieldRoot, XhTextFieldSuffix, XhTimeFieldClearTrigger, XhTimeFieldControl, XhTimeFieldHiddenInput, XhTimeFieldLabel, XhTimeFieldRoot, XhTimeFieldSegment, XhTimeFieldSegmentGroup, XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerConfirmTrigger, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerItem, XhTimePickerItemDeleteTrigger, XhTimePickerLabel, XhTimePickerOverflowTag, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresetGroup, XhTimePickerRoot, XhTimePickerSegment, XhTimePickerSegmentGroup, XhTimePickerTag, XhTimePickerTagLabel, XhTimePickerTagList, XhTimePickerTrigger, XhTimeRangePickerClearTrigger, XhTimeRangePickerColumn, XhTimeRangePickerColumnGroup, XhTimeRangePickerColumnGroupLabel, XhTimeRangePickerContent, XhTimeRangePickerControl, XhTimeRangePickerHiddenInput, XhTimeRangePickerItem, XhTimeRangePickerLabel, XhTimeRangePickerPositioner, XhTimeRangePickerPreset, XhTimeRangePickerPresetGroup, XhTimeRangePickerRangeSeparator, XhTimeRangePickerRoot, XhTimeRangePickerSegment, XhTimeRangePickerSegmentGroup, XhTimeRangePickerTrigger, XhTimelineConnector, XhTimelineContent, XhTimelineDescription, XhTimelineIndicator, XhTimelineItem, XhTimelineLabel, XhTimelineRoot, XhTimelineTime, XhTimelineTitle, XhTimerControl, XhTimerDisplay, XhTimerItem, XhTimerRoot, XhTimerSeparator, XhTimestamp, XhToggle, XhToggleGroupHiddenInput, XhToggleGroupItem, XhToggleGroupRoot, XhToolCallApproval, XhToolCallContent, XhToolCallDuration, XhToolCallError, XhToolCallIndicator, XhToolCallInput, XhToolCallLabel, XhToolCallOutput, XhToolCallRoot, XhToolCallStatus, XhToolCallSummary, XhToolCallTrigger, XhToolbarGroup, XhToolbarItem, XhToolbarOverflowTrigger, XhToolbarRoot, XhToolbarSeparator, XhTooltipArrow, XhTooltipContent, XhTooltipPositioner, XhTooltipProvider, XhTooltipRoot, XhTooltipTrigger, XhTourArrow, XhTourBackdrop, XhTourCloseTrigger, XhTourContent, XhTourDescription, XhTourNextTrigger, XhTourPositioner, XhTourPrevTrigger, XhTourProgressDot, XhTourProgressIndicator, XhTourProgressText, XhTourRoot, XhTourSkipTrigger, XhTourSpotlight, XhTourTitle, XhTransferEmpty, XhTransferGroup, XhTransferGroupLabel, XhTransferItem, XhTransferItemCheckbox, XhTransferItemDescription, XhTransferItemSuffix, XhTransferItemText, XhTransferList, XhTransferLoading, XhTransferPanelCount, XhTransferPanelHeader, XhTransferPanelTitle, XhTransferRoot, XhTransferSearch, XhTransferSelectAllTrigger, XhTransferSourcePanel, XhTransferTargetPanel, XhTransferToSourceTrigger, XhTransferToTargetTrigger, XhTreeBranch, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeEmpty, XhTreeItem, XhTreeItemDescription, XhTreeItemIndicator, XhTreeItemSuffix, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeLoading, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeSelectBranch, XhTreeSelectBranchContent, XhTreeSelectBranchControl, XhTreeSelectBranchEmpty, XhTreeSelectBranchError, XhTreeSelectBranchIndicator, XhTreeSelectBranchLoading, XhTreeSelectBranchRetryTrigger, XhTreeSelectBranchText, XhTreeSelectBranchTrigger, XhTreeSelectClearTrigger, XhTreeSelectContent, XhTreeSelectControl, XhTreeSelectEmpty, XhTreeSelectFooter, XhTreeSelectHiddenInput, XhTreeSelectIndicator, XhTreeSelectInput, XhTreeSelectItem, XhTreeSelectItemDeleteTrigger, XhTreeSelectItemDescription, XhTreeSelectItemIndicator, XhTreeSelectItemSuffix, XhTreeSelectItemText, XhTreeSelectLabel, XhTreeSelectLoading, XhTreeSelectOverflowTag, XhTreeSelectPositioner, XhTreeSelectRoot, XhTreeSelectTag, XhTreeSelectTagLabel, XhTreeSelectTagList, XhTreeSelectTree, XhTreeSelectTrigger, XhTreeSelectValueText, XhTreeTree, XhTruncate, XhTypographyHeading, XhTypographyLink, XhTypographyParagraph, XhTypographyProse, XhTypographyRoot, XhTypographyText, XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualizerViewport, XhWatermarkContent, XhWatermarkRoot, clearFieldContext, createColumnStore, createDialogService, createLoadingBarService, createNotificationService, createVueIdGenerator, createVueRuntime, mergeXhConfig, provideAffix, provideApproval, provideAvatarGroup, provideBackTop, provideCitation, provideCitationSource, provideColorField, provideColorSlider, provideColorSwatchPicker, provideContextMenuSub, provideDescriptions, provideDiffView, provideField, provideFieldArray, provideFieldArrayItem, provideFlex, provideFloatButton, provideGrid, provideImageViewer, provideInfiniteScroll, provideInputGroup, provideLayout, provideList, provideLog, provideMarkdownStream, provideMarquee, provideMatrixCode, provideMention, provideMentionItem, provideMenu, provideMenuGroup, provideMenuSub, provideMenubarSub, provideMessageFeed, provideMessageFeedItem, provideNotification, provideNotificationItem, providePageHeader, providePopconfirm, providePromptInput, provideQuestionFlow, provideReasoning, provideResizable, provideScrollbar, provideSideNav, provideSideNavNode, provideSortable, provideStatistic, provideTimeline, provideTimelineItem, provideToolCall, provideTypography, provideWatermark, provideXhConfig, useAccordion, useAffix, useAffixContext, useAnchor, useApproval, useApprovalContext, useAvatar, useAvatarGroupContext, useBackTop, useBackTopContext, useBreadcrumb, useCalendarPicker, useCalendarRangePicker, useCarousel, useCartesianChart, useCascader, useCheckbox, useCheckboxGroup, useCitation, useCitationContext, useCitationSource, useClipboard, useCodeView, useCollapsible, useColorField, useColorFieldContext, useColorPicker, useColorSlider, useColorSliderContext, useColorSwatchPicker, useColorSwatchPickerContext, useCombobox, useCommand, useContextMenu, useContextMenuSubContext, useDateField, useDatePicker, useDateRangePicker, useDescriptionsContext, useDialog, useDiffView, useDiffViewContext, useDownloadTrigger, useDrawer, useEditable, useField, useFieldArray, useFieldArrayContext, useFieldArrayItemContext, useFieldContext, useFieldControl, useFieldGroupWiring, useFieldLabelWiring, useFieldStateWiring, useFieldset, useFieldsetContext, useFileUpload, useFlexContext, useFloatButton, useFloatButtonContext, useFloatingPanel, useFloatingPanelContext, useForm, useFunnelChart, useGraphChart, useGridContext, useGridList, useGridListContext, useGridListRow, useHeatmap, useHeatmapContext, useHierarchyChart, useHoverCard, useIcon, useImage, useImageCropper, useImageCropperContext, useImageViewer, useImageViewerContext, useInfiniteScroll, useInfiniteScrollContext, useInputGroupContext, useJsonViewer, useLayout, useLayoutContext, useListContext, useListbox, useLoadingBar, useLog, useLogContext, useMachine, useMarkdownStream, useMarkdownStreamContext, useMarqueeContext, useMatrixCodeContext, useMention, useMentionContext, useMentionItemContext, useMenu, useMenuContext, useMenuGroupContext, useMenuSubContext, useMenubar, useMenubarSubContext, useMessageFeed, useMessageFeedContext, useMessageFeedItemContext, useNavigationMenu, useNotification, useNotificationContext, useNotificationContextOptional, useNotificationItem, useNotificationItemContext, useNumberField, useOptionalFieldContext, usePageHeaderContext, usePagination, usePasswordInput, usePasswordInputContext, usePieChart, usePinInput, usePopconfirm, usePopconfirmContext, usePopover, usePromptInput, usePromptInputContext, useQuestionFlow, useQuestionFlowContext, useRadarChart, useRadioGroup, useRating, useReasoning, useReasoningContext, useResizable, useResizableContext, useSankeyChart, useScrollArea, useScrollbar, useScrollbarContext, useSelect, useSideNav, useSideNavContext, useSideNavNodeContext, useSignaturePad, useSignaturePadContext, useSlider, useSortable, useSortableContext, useSparkline, useSplitter, useStatisticContext, useSteps, useSwitch, useTable, useTabs, useTag, useTagContext, useTagGroup, useTagGroupContext, useTagGroupItemContext, useTagsInput, useTextField, useTimeField, useTimePicker, useTimeRangePicker, useTimelineContext, useTimelineItem, useTimer, useTimerContext, useToggle, useToggleGroup, useToolCall, useToolCallContext, useToolbar, useTooltip, useTour, useTransfer, useTree, useTreeSelect, useTruncate, useTypographyContext, useVirtualizer, useWatermarkContext, useXhConfig, vueNormalize, withXhConfig };
|
package/dist/locale.d.ts
ADDED
package/dist/locale.js
ADDED
package/dist/package.js
CHANGED
package/dist/runtime/as-child.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergePartProps } from "./merge-props.js";
|
|
2
|
-
import { Comment, Fragment, Text, cloneVNode } from "vue";
|
|
3
|
-
import { isEventHandlerKey } from "@xihan-ui/core";
|
|
2
|
+
import { Comment, Fragment, Text, cloneVNode, normalizeClass } from "vue";
|
|
3
|
+
import { isEventHandlerKey, stripScopeClass } from "@xihan-ui/core";
|
|
4
4
|
//#region src/runtime/as-child.ts
|
|
5
5
|
/**
|
|
6
6
|
* asChild:部件不再渲染自己的包裹元素,把应挂载的属性合并到作者提供的子节点上。
|
|
@@ -67,6 +67,11 @@ function mergeIntoChild(nodes, props, scope, options = {}) {
|
|
|
67
67
|
const keepAnatomy = !!options.applyAnatomy || !carriesOwnAnatomy(child);
|
|
68
68
|
for (const [key, value] of Object.entries(props)) {
|
|
69
69
|
if (!keepAnatomy && isRoleMarker(key)) continue;
|
|
70
|
+
if (!keepAnatomy && key === "class") {
|
|
71
|
+
const extra = stripScopeClass(normalizeClass(value));
|
|
72
|
+
if (extra) merged.class = extra;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
70
75
|
merged[key] = value;
|
|
71
76
|
}
|
|
72
77
|
if (typeof merged.ref === "function") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"as-child.js","names":[],"sources":["../../src/runtime/as-child.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 as child 相关实现。\n\nimport type { VNode, VNodeChild } from 'vue'\nimport { isEventHandlerKey } from '@xihan-ui/core'\nimport { cloneVNode, Comment, Fragment, Text } from 'vue'\nimport { mergePartProps } from './merge-props'\n\n/**\n * asChild:部件不再渲染自己的包裹元素,把应挂载的属性合并到作者提供的子节点上。\n *\n * 触发器类部件默认渲染 <button>,作者需要用自己的按钮作为触发器时,只能在 <button> 中再嵌套一个\n * <button>:那是非法嵌套,浏览器会拆开它,事件与焦点都不正确。asChild 是唯一的正确方式。\n */\n\n/** 只忽略注释、空白与空占位;片段内的可见文本同样必须明确拒绝。 */\nfunction attributable(nodes: readonly VNodeChild[], scope: string): VNode[] {\n const out: VNode[] = []\n for (const node of nodes) {\n if (node == null || typeof node === 'boolean')\n continue\n if (Array.isArray(node)) {\n out.push(...attributable(node, scope))\n continue\n }\n if (typeof node === 'string' || typeof node === 'number') {\n if (typeof node === 'string' && node.trim() === '')\n continue\n throw new Error(`[xh] ${scope} asChild 需要恰好一个可挂载子节点,不能包含非空文本`)\n }\n if (node.type === Comment)\n continue\n if (node.type === Text) {\n if (String(node.children ?? '').trim() === '')\n continue\n throw new Error(`[xh] ${scope} asChild 需要恰好一个可挂载子节点,不能包含非空文本`)\n }\n if (node.type === Fragment && Array.isArray(node.children))\n out.push(...attributable(node.children as VNodeChild[], scope))\n else\n out.push(node)\n }\n return out\n}\n\n/** 子节点已带角色标记:组件节点的根由它自己渲染,元素节点检查是否写了 data-scope。 */\nexport function carriesOwnAnatomy(node: VNode): boolean {\n return typeof node.type !== 'string' || node.props?.['data-scope'] != null\n}\n\n/**\n * 角色标记:解剖两位、家族标记(data-xh-*)与随视觉盒走的形态轴(data-variant)。\n * 子节点自带解剖时这些都不该落到它身上:家族标记会在封装自己的视觉盒外再画一层壳,\n * 形态轴会盖掉封装根上作者写的那一档。\n */\nexport function isRoleMarker(key: string): boolean {\n return key === 'data-scope' || key === 'data-part' || key === 'data-variant' || key.startsWith('data-xh-')\n}\n\n/**\n * 元素 ref 解包:子节点是组件时 ref 得到的是组件实例,触发器需要的是它的根元素。\n * 组件多根时 $el 是占位注释,该类子节点本就不适合作为触发器,原样交出由定位层报错。\n */\nfunction unwrapElement(value: unknown): unknown {\n if (value && typeof value === 'object' && '$el' in value)\n return (value as { $el: unknown }).$el\n return value\n}\n\nexport interface MergeIntoChildOptions {\n /**\n * 子节点是组件时缺省视作自带解剖,只落接线属性。路由链接这类只把属性转交给自己渲出元素的封装没有自己的解剖,\n * 置 true 让部件的解剖与家族标记照样落上去。\n */\n applyAnatomy?: boolean\n}\n\n/**\n * 把部件属性合并到作者的子节点上。\n * @param nodes 默认插槽产出\n * @param props 部件该挂的属性(含 ref)\n * @param scope 部件所属组件名,只用于诊断文案\n * @param options 解剖标记的落法\n * @returns 合并后的节点;子节点不合规时抛错\n */\nexport function mergeIntoChild(\n nodes: readonly VNode[] | undefined,\n props: Record<string, unknown>,\n scope: string,\n options: MergeIntoChildOptions = {},\n): VNode {\n const candidates = attributable(nodes ?? [], scope)\n if (candidates.length !== 1)\n throw new Error(`[xh] ${scope} asChild 需要恰好一个可挂载子节点,实际是 ${candidates.length} 个`)\n const child = candidates[0]!\n\n // 子节点自带解剖标记时不覆盖它,只落接线属性;否则整套属性都给它\n const merged: Record<string, unknown> = {}\n const keepAnatomy = !!options.applyAnatomy || !carriesOwnAnatomy(child)\n for (const [key, value] of Object.entries(props)) {\n if (!keepAnatomy && isRoleMarker(key))\n continue\n merged[key] = value\n }\n if (typeof merged.ref === 'function') {\n const inner = merged.ref as (el: unknown) => void\n merged.ref = (value: unknown) => inner(unwrapElement(value))\n }\n // 第三个参数让两边的 ref 都保留:作者自己的 ref 与部件的 ref 各拿各的。\n // cloneVNode 把子节点自己的同名处理器排在传进来这一份的前面,也就是作者先跑、部件后跑;\n // 传进来的 props 已经把写在部件上的那一份按同一个先后合过(mergePartProps),\n // 所以写在子节点上还是写在部件上,作者的处理器都在部件之前。\n const cloned = cloneVNode(child, merged, true)\n // cloneVNode 默认无条件串接事件;改用作者可取消的部件合并,其他属性和双方 ref 保留。\n const events = mergePartProps(merged, child.props ?? {})\n for (const key of Object.keys(events)) {\n if (isEventHandlerKey(key))\n cloned.props![key] = events[key]\n }\n return cloned\n}\n"],"mappings":";;;;;;;;;;;AAoBA,SAAS,aAAa,OAA8B,OAAwB;CAC1E,MAAM,MAAe,CAAC;CACtB,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,QAAQ,QAAQ,OAAO,SAAS,WAClC;EACF,IAAI,MAAM,QAAQ,IAAI,GAAG;GACvB,IAAI,KAAK,GAAG,aAAa,MAAM,KAAK,CAAC;GACrC;EACF;EACA,IAAI,OAAO,SAAS,YAAY,OAAO,SAAS,UAAU;GACxD,IAAI,OAAO,SAAS,YAAY,KAAK,KAAK,MAAM,IAC9C;GACF,MAAM,IAAI,MAAM,QAAQ,MAAM,+BAA+B;EAC/D;EACA,IAAI,KAAK,SAAS,SAChB;EACF,IAAI,KAAK,SAAS,MAAM;GACtB,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC,KAAK,MAAM,IACzC;GACF,MAAM,IAAI,MAAM,QAAQ,MAAM,+BAA+B;EAC/D;EACA,IAAI,KAAK,SAAS,YAAY,MAAM,QAAQ,KAAK,QAAQ,GACvD,IAAI,KAAK,GAAG,aAAa,KAAK,UAA0B,KAAK,CAAC;OAE9D,IAAI,KAAK,IAAI;CACjB;CACA,OAAO;AACT;;AAGA,SAAgB,kBAAkB,MAAsB;CACtD,OAAO,OAAO,KAAK,SAAS,YAAY,KAAK,QAAQ,iBAAiB;AACxE;;;;;;AAOA,SAAgB,aAAa,KAAsB;CACjD,OAAO,QAAQ,gBAAgB,QAAQ,eAAe,QAAQ,kBAAkB,IAAI,WAAW,UAAU;AAC3G;;;;;AAMA,SAAS,cAAc,OAAyB;CAC9C,IAAI,SAAS,OAAO,UAAU,YAAY,SAAS,OACjD,OAAQ,MAA2B;CACrC,OAAO;AACT;;;;;;;;;AAkBA,SAAgB,eACd,OACA,OACA,OACA,UAAiC,CAAC,GAC3B;CACP,MAAM,aAAa,aAAa,SAAS,CAAC,GAAG,KAAK;CAClD,IAAI,WAAW,WAAW,GACxB,MAAM,IAAI,MAAM,QAAQ,MAAM,4BAA4B,WAAW,OAAO,GAAG;CACjF,MAAM,QAAQ,WAAW;CAGzB,MAAM,SAAkC,CAAC;CACzC,MAAM,cAAc,CAAC,CAAC,QAAQ,gBAAgB,CAAC,kBAAkB,KAAK;CACtE,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,CAAC,eAAe,aAAa,GAAG,GAClC;EACF,OAAO,OAAO;CAChB;CACA,IAAI,OAAO,OAAO,QAAQ,YAAY;EACpC,MAAM,QAAQ,OAAO;EACrB,OAAO,OAAO,UAAmB,MAAM,cAAc,KAAK,CAAC;CAC7D;CAKA,MAAM,SAAS,WAAW,OAAO,QAAQ,IAAI;CAE7C,MAAM,SAAS,eAAe,QAAQ,MAAM,SAAS,CAAC,CAAC;CACvD,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,IAAI,kBAAkB,GAAG,GACvB,OAAO,MAAO,OAAO,OAAO;CAEhC,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"as-child.js","names":[],"sources":["../../src/runtime/as-child.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 as child 相关实现。\n\nimport type { VNode, VNodeChild } from 'vue'\nimport { isEventHandlerKey, stripScopeClass } from '@xihan-ui/core'\nimport { cloneVNode, Comment, Fragment, normalizeClass, Text } from 'vue'\nimport { mergePartProps } from './merge-props'\n\n/**\n * asChild:部件不再渲染自己的包裹元素,把应挂载的属性合并到作者提供的子节点上。\n *\n * 触发器类部件默认渲染 <button>,作者需要用自己的按钮作为触发器时,只能在 <button> 中再嵌套一个\n * <button>:那是非法嵌套,浏览器会拆开它,事件与焦点都不正确。asChild 是唯一的正确方式。\n */\n\n/** 只忽略注释、空白与空占位;片段内的可见文本同样必须明确拒绝。 */\nfunction attributable(nodes: readonly VNodeChild[], scope: string): VNode[] {\n const out: VNode[] = []\n for (const node of nodes) {\n if (node == null || typeof node === 'boolean')\n continue\n if (Array.isArray(node)) {\n out.push(...attributable(node, scope))\n continue\n }\n if (typeof node === 'string' || typeof node === 'number') {\n if (typeof node === 'string' && node.trim() === '')\n continue\n throw new Error(`[xh] ${scope} asChild 需要恰好一个可挂载子节点,不能包含非空文本`)\n }\n if (node.type === Comment)\n continue\n if (node.type === Text) {\n if (String(node.children ?? '').trim() === '')\n continue\n throw new Error(`[xh] ${scope} asChild 需要恰好一个可挂载子节点,不能包含非空文本`)\n }\n if (node.type === Fragment && Array.isArray(node.children))\n out.push(...attributable(node.children as VNodeChild[], scope))\n else\n out.push(node)\n }\n return out\n}\n\n/** 子节点已带角色标记:组件节点的根由它自己渲染,元素节点检查是否写了 data-scope。 */\nexport function carriesOwnAnatomy(node: VNode): boolean {\n return typeof node.type !== 'string' || node.props?.['data-scope'] != null\n}\n\n/**\n * 角色标记:解剖两位、家族标记(data-xh-*)与随视觉盒走的形态轴(data-variant)。\n * 子节点自带解剖时这些都不该落到它身上:家族标记会在封装自己的视觉盒外再画一层壳,\n * 形态轴会盖掉封装根上作者写的那一档。\n */\nexport function isRoleMarker(key: string): boolean {\n return key === 'data-scope' || key === 'data-part' || key === 'data-variant' || key.startsWith('data-xh-')\n}\n\n/**\n * 元素 ref 解包:子节点是组件时 ref 得到的是组件实例,触发器需要的是它的根元素。\n * 组件多根时 $el 是占位注释,该类子节点本就不适合作为触发器,原样交出由定位层报错。\n */\nfunction unwrapElement(value: unknown): unknown {\n if (value && typeof value === 'object' && '$el' in value)\n return (value as { $el: unknown }).$el\n return value\n}\n\nexport interface MergeIntoChildOptions {\n /**\n * 子节点是组件时缺省视作自带解剖,只落接线属性。路由链接这类只把属性转交给自己渲出元素的封装没有自己的解剖,\n * 置 true 让部件的解剖与家族标记照样落上去。\n */\n applyAnatomy?: boolean\n}\n\n/**\n * 把部件属性合并到作者的子节点上。\n * @param nodes 默认插槽产出\n * @param props 部件该挂的属性(含 ref)\n * @param scope 部件所属组件名,只用于诊断文案\n * @param options 解剖标记的落法\n * @returns 合并后的节点;子节点不合规时抛错\n */\nexport function mergeIntoChild(\n nodes: readonly VNode[] | undefined,\n props: Record<string, unknown>,\n scope: string,\n options: MergeIntoChildOptions = {},\n): VNode {\n const candidates = attributable(nodes ?? [], scope)\n if (candidates.length !== 1)\n throw new Error(`[xh] ${scope} asChild 需要恰好一个可挂载子节点,实际是 ${candidates.length} 个`)\n const child = candidates[0]!\n\n // 子节点自带解剖标记时不覆盖它,只落接线属性;否则整套属性都给它\n const merged: Record<string, unknown> = {}\n const keepAnatomy = !!options.applyAnatomy || !carriesOwnAnatomy(child)\n for (const [key, value] of Object.entries(props)) {\n if (!keepAnatomy && isRoleMarker(key))\n continue\n // 挂载类随 data-scope 一起让位:作者写的类照合,部件那份的 xh-scope-* 不落到别人的根上\n if (!keepAnatomy && key === 'class') {\n const extra = stripScopeClass(normalizeClass(value))\n if (extra)\n merged.class = extra\n continue\n }\n merged[key] = value\n }\n if (typeof merged.ref === 'function') {\n const inner = merged.ref as (el: unknown) => void\n merged.ref = (value: unknown) => inner(unwrapElement(value))\n }\n // 第三个参数让两边的 ref 都保留:作者自己的 ref 与部件的 ref 各拿各的。\n // cloneVNode 把子节点自己的同名处理器排在传进来这一份的前面,也就是作者先跑、部件后跑;\n // 传进来的 props 已经把写在部件上的那一份按同一个先后合过(mergePartProps),\n // 所以写在子节点上还是写在部件上,作者的处理器都在部件之前。\n const cloned = cloneVNode(child, merged, true)\n // cloneVNode 默认无条件串接事件;改用作者可取消的部件合并,其他属性和双方 ref 保留。\n const events = mergePartProps(merged, child.props ?? {})\n for (const key of Object.keys(events)) {\n if (isEventHandlerKey(key))\n cloned.props![key] = events[key]\n }\n return cloned\n}\n"],"mappings":";;;;;;;;;;;AAoBA,SAAS,aAAa,OAA8B,OAAwB;CAC1E,MAAM,MAAe,CAAC;CACtB,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,QAAQ,QAAQ,OAAO,SAAS,WAClC;EACF,IAAI,MAAM,QAAQ,IAAI,GAAG;GACvB,IAAI,KAAK,GAAG,aAAa,MAAM,KAAK,CAAC;GACrC;EACF;EACA,IAAI,OAAO,SAAS,YAAY,OAAO,SAAS,UAAU;GACxD,IAAI,OAAO,SAAS,YAAY,KAAK,KAAK,MAAM,IAC9C;GACF,MAAM,IAAI,MAAM,QAAQ,MAAM,+BAA+B;EAC/D;EACA,IAAI,KAAK,SAAS,SAChB;EACF,IAAI,KAAK,SAAS,MAAM;GACtB,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC,KAAK,MAAM,IACzC;GACF,MAAM,IAAI,MAAM,QAAQ,MAAM,+BAA+B;EAC/D;EACA,IAAI,KAAK,SAAS,YAAY,MAAM,QAAQ,KAAK,QAAQ,GACvD,IAAI,KAAK,GAAG,aAAa,KAAK,UAA0B,KAAK,CAAC;OAE9D,IAAI,KAAK,IAAI;CACjB;CACA,OAAO;AACT;;AAGA,SAAgB,kBAAkB,MAAsB;CACtD,OAAO,OAAO,KAAK,SAAS,YAAY,KAAK,QAAQ,iBAAiB;AACxE;;;;;;AAOA,SAAgB,aAAa,KAAsB;CACjD,OAAO,QAAQ,gBAAgB,QAAQ,eAAe,QAAQ,kBAAkB,IAAI,WAAW,UAAU;AAC3G;;;;;AAMA,SAAS,cAAc,OAAyB;CAC9C,IAAI,SAAS,OAAO,UAAU,YAAY,SAAS,OACjD,OAAQ,MAA2B;CACrC,OAAO;AACT;;;;;;;;;AAkBA,SAAgB,eACd,OACA,OACA,OACA,UAAiC,CAAC,GAC3B;CACP,MAAM,aAAa,aAAa,SAAS,CAAC,GAAG,KAAK;CAClD,IAAI,WAAW,WAAW,GACxB,MAAM,IAAI,MAAM,QAAQ,MAAM,4BAA4B,WAAW,OAAO,GAAG;CACjF,MAAM,QAAQ,WAAW;CAGzB,MAAM,SAAkC,CAAC;CACzC,MAAM,cAAc,CAAC,CAAC,QAAQ,gBAAgB,CAAC,kBAAkB,KAAK;CACtE,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,CAAC,eAAe,aAAa,GAAG,GAClC;EAEF,IAAI,CAAC,eAAe,QAAQ,SAAS;GACnC,MAAM,QAAQ,gBAAgB,eAAe,KAAK,CAAC;GACnD,IAAI,OACF,OAAO,QAAQ;GACjB;EACF;EACA,OAAO,OAAO;CAChB;CACA,IAAI,OAAO,OAAO,QAAQ,YAAY;EACpC,MAAM,QAAQ,OAAO;EACrB,OAAO,OAAO,UAAmB,MAAM,cAAc,KAAK,CAAC;CAC7D;CAKA,MAAM,SAAS,WAAW,OAAO,QAAQ,IAAI;CAE7C,MAAM,SAAS,eAAe,QAAQ,MAAM,SAAS,CAAC,CAAC;CACvD,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,IAAI,kBAAkB,GAAG,GACvB,OAAO,MAAO,OAAO,OAAO;CAEhC,OAAO;AACT"}
|
package/dist/runtime/portal.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { clearFieldContext } from "../components/field/context.js";
|
|
1
2
|
import { Teleport, defineComponent, h, onBeforeUnmount, ref, watch } from "vue";
|
|
2
3
|
import { createPortalVisualBridge } from "@xihan-ui/core";
|
|
3
4
|
//#region src/runtime/portal.ts
|
|
@@ -18,9 +19,19 @@ const XhPortal = defineComponent({
|
|
|
18
19
|
source: {
|
|
19
20
|
type: Object,
|
|
20
21
|
default: void 0
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* 浮层此刻是否呈现(展开中,或退场动画还没播完)。为假时不建视觉桥:关着的浮层壳里只有藏起来的
|
|
25
|
+
* 内容,而每台桥都要在来源整条祖先链上挂观察、建时读一遍计算样式,页面上几十个关着的提示与下拉
|
|
26
|
+
* 白付这笔账,缓存页一进一出还要各重算一遍。缺省为真:常显、或展开才渲染的落点照旧随挂载建桥。
|
|
27
|
+
*/
|
|
28
|
+
present: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: true
|
|
21
31
|
}
|
|
22
32
|
},
|
|
23
33
|
setup(props, { slots }) {
|
|
34
|
+
clearFieldContext();
|
|
24
35
|
const sourceRef = ref(null);
|
|
25
36
|
const shellRef = ref(null);
|
|
26
37
|
let bridge = null;
|
|
@@ -29,7 +40,7 @@ const XhPortal = defineComponent({
|
|
|
29
40
|
bridge = null;
|
|
30
41
|
const source = props.source?.value ?? sourceRef.value;
|
|
31
42
|
const shell = shellRef.value;
|
|
32
|
-
if (!source || !shell) return;
|
|
43
|
+
if (!source || !shell || !props.present) return;
|
|
33
44
|
bridge = createPortalVisualBridge({
|
|
34
45
|
source,
|
|
35
46
|
shell
|
|
@@ -42,6 +53,7 @@ const XhPortal = defineComponent({
|
|
|
42
53
|
() => props.to,
|
|
43
54
|
() => props.disabled
|
|
44
55
|
], connect, { flush: "post" });
|
|
56
|
+
watch(() => props.present, connect, { flush: "pre" });
|
|
45
57
|
onBeforeUnmount(() => {
|
|
46
58
|
bridge?.dispose();
|
|
47
59
|
bridge = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.js","names":[],"sources":["../../src/runtime/portal.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 portal 相关实现。\n\nimport type { PortalVisualBridge } from '@xihan-ui/core'\nimport type { PropType, Ref, VNode } from 'vue'\nimport { createPortalVisualBridge } from '@xihan-ui/core'\nimport { defineComponent, h, onBeforeUnmount, ref, Teleport, watch } from 'vue'\n\n/**\n * Vue 内部 Portal:Teleport 只负责物理搬运,本层为每个实例增加无盒壳并桥接逻辑来源的视觉轴。\n * 不公开成组件家族;所有浮层部件统一经这里走。\n */\nexport const XhPortal = defineComponent({\n name: 'XhPortal',\n props: {\n to: { type: [String, Object] as PropType<string | Element>, required: true },\n /** 客户端来源节点尚未落定时先原地渲染,绑定所属 Document 后再迁移到正式目标。 */\n disabled: Boolean,\n /** 已有锚点时直接作为逻辑来源,避免在结构敏感的 ButtonGroup/Toolbar 里增加元素标记。 */\n source: { type: Object as PropType<Readonly<Ref<HTMLElement | null>>>, default: undefined },\n },\n setup(props, { slots }) {\n const sourceRef = ref<HTMLTemplateElement | null>(null)\n const shellRef = ref<HTMLElement | null>(null)\n let bridge: PortalVisualBridge | null = null\n\n const connect = (): void => {\n bridge?.dispose()\n bridge = null\n const source = props.source?.value ?? sourceRef.value\n const shell = shellRef.value\n if (!source || !shell)\n return\n bridge = createPortalVisualBridge({ source, shell })\n }\n\n watch([sourceRef, shellRef, () => props.source?.value, () => props.to, () => props.disabled], connect, { flush: 'post' })\n onBeforeUnmount(() => {\n bridge?.dispose()\n bridge = null\n })\n\n return (): VNode | VNode[] => [\n ...(props.source ? [] : [h('template', { 'ref': sourceRef, 'data-xh-portal-source': '' })]),\n h(Teleport, { to: props.to, disabled: props.disabled }, [\n h('div', {\n 'ref': shellRef,\n 'data-xh-portal-shell': '',\n 'style': { display: 'contents' },\n }, slots.default?.()),\n ]),\n ]\n },\n})\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"portal.js","names":[],"sources":["../../src/runtime/portal.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 portal 相关实现。\n\nimport type { PortalVisualBridge } from '@xihan-ui/core'\nimport type { PropType, Ref, VNode } from 'vue'\nimport { createPortalVisualBridge } from '@xihan-ui/core'\nimport { defineComponent, h, onBeforeUnmount, ref, Teleport, watch } from 'vue'\nimport { clearFieldContext } from '../components/field/context'\n\n/**\n * Vue 内部 Portal:Teleport 只负责物理搬运,本层为每个实例增加无盒壳并桥接逻辑来源的视觉轴。\n * 不公开成组件家族;所有浮层部件统一经这里走。\n */\nexport const XhPortal = defineComponent({\n name: 'XhPortal',\n props: {\n to: { type: [String, Object] as PropType<string | Element>, required: true },\n /** 客户端来源节点尚未落定时先原地渲染,绑定所属 Document 后再迁移到正式目标。 */\n disabled: Boolean,\n /** 已有锚点时直接作为逻辑来源,避免在结构敏感的 ButtonGroup/Toolbar 里增加元素标记。 */\n source: { type: Object as PropType<Readonly<Ref<HTMLElement | null>>>, default: undefined },\n /**\n * 浮层此刻是否呈现(展开中,或退场动画还没播完)。为假时不建视觉桥:关着的浮层壳里只有藏起来的\n * 内容,而每台桥都要在来源整条祖先链上挂观察、建时读一遍计算样式,页面上几十个关着的提示与下拉\n * 白付这笔账,缓存页一进一出还要各重算一遍。缺省为真:常显、或展开才渲染的落点照旧随挂载建桥。\n */\n present: { type: Boolean, default: true },\n },\n setup(props, { slots }) {\n // 浮层内容搬到落点后不再是外层字段的控件:放在里面的输入框不被外层字段命名、描述,也不拿同一个 id。\n // 与 Web Components 一致:那边的 Portal 把节点物理搬走,字段按 DOM 祖先链找控件,本来就够不着\n clearFieldContext()\n const sourceRef = ref<HTMLTemplateElement | null>(null)\n const shellRef = ref<HTMLElement | null>(null)\n let bridge: PortalVisualBridge | null = null\n\n const connect = (): void => {\n bridge?.dispose()\n bridge = null\n const source = props.source?.value ?? sourceRef.value\n const shell = shellRef.value\n if (!source || !shell || !props.present)\n return\n bridge = createPortalVisualBridge({ source, shell })\n }\n\n watch([sourceRef, shellRef, () => props.source?.value, () => props.to, () => props.disabled], connect, { flush: 'post' })\n // 来源与壳在挂载时就已就位,转为呈现时赶在本轮渲染之前建桥:内容第一次排版、定位引擎第一次\n // 量尺寸时,壳上已经是来源的环境(密度、方向、主题),不会先按落点的环境量一遍再跳\n watch(() => props.present, connect, { flush: 'pre' })\n onBeforeUnmount(() => {\n bridge?.dispose()\n bridge = null\n })\n\n return (): VNode | VNode[] => [\n ...(props.source ? [] : [h('template', { 'ref': sourceRef, 'data-xh-portal-source': '' })]),\n h(Teleport, { to: props.to, disabled: props.disabled }, [\n h('div', {\n 'ref': shellRef,\n 'data-xh-portal-shell': '',\n 'style': { display: 'contents' },\n }, slots.default?.()),\n ]),\n ]\n },\n})\n"],"mappings":";;;;;;;;AAiBA,MAAa,WAAW,gBAAgB;CACtC,MAAM;CACN,OAAO;EACL,IAAI;GAAE,MAAM,CAAC,QAAQ,MAAM;GAAiC,UAAU;EAAK;;EAE3E,UAAU;;EAEV,QAAQ;GAAE,MAAM;GAAuD,SAAS,KAAA;EAAU;;;;;;EAM1F,SAAS;GAAE,MAAM;GAAS,SAAS;EAAK;CAC1C;CACA,MAAM,OAAO,EAAE,SAAS;EAGtB,kBAAkB;EAClB,MAAM,YAAY,IAAgC,IAAI;EACtD,MAAM,WAAW,IAAwB,IAAI;EAC7C,IAAI,SAAoC;EAExC,MAAM,gBAAsB;GAC1B,QAAQ,QAAQ;GAChB,SAAS;GACT,MAAM,SAAS,MAAM,QAAQ,SAAS,UAAU;GAChD,MAAM,QAAQ,SAAS;GACvB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,SAC9B;GACF,SAAS,yBAAyB;IAAE;IAAQ;GAAM,CAAC;EACrD;EAEA,MAAM;GAAC;GAAW;SAAgB,MAAM,QAAQ;SAAa,MAAM;SAAU,MAAM;EAAQ,GAAG,SAAS,EAAE,OAAO,OAAO,CAAC;EAGxH,YAAY,MAAM,SAAS,SAAS,EAAE,OAAO,MAAM,CAAC;EACpD,sBAAsB;GACpB,QAAQ,QAAQ;GAChB,SAAS;EACX,CAAC;EAED,aAA8B,CAC5B,GAAI,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,YAAY;GAAE,OAAO;GAAW,yBAAyB;EAAG,CAAC,CAAC,GACzF,EAAE,UAAU;GAAE,IAAI,MAAM;GAAI,UAAU,MAAM;EAAS,GAAG,CACtD,EAAE,OAAO;GACP,OAAO;GACP,wBAAwB;GACxB,SAAS,EAAE,SAAS,WAAW;EACjC,GAAG,MAAM,UAAU,CAAC,CACtB,CAAC,CACH;CACF;AACF,CAAC"}
|
|
@@ -2,6 +2,11 @@ import { getCurrentInstance, isRef, onBeforeUnmount, onMounted, ref, toValue, wa
|
|
|
2
2
|
import { attachCssExit, createPresence } from "@xihan-ui/core/presence";
|
|
3
3
|
//#region src/runtime/use-overlay-exit.ts
|
|
4
4
|
/**
|
|
5
|
+
* 退场播完却不卸载的浮层(unmountOnExit 为 false)收起定位层用的属性。
|
|
6
|
+
* 皮肤给定位层声明过 display,UA 的 [hidden]{display:none} 压不住,只能写内联。
|
|
7
|
+
*/
|
|
8
|
+
const OVERLAY_STOWED_PROPS = { style: { display: "none" } };
|
|
9
|
+
/**
|
|
5
10
|
* 返回当前是否应当可见。作者把它覆盖到 content 的 `hidden` 上:
|
|
6
11
|
* `{ ...api.getContentProps(), hidden: !visible.value || undefined }`。
|
|
7
12
|
*/
|
|
@@ -60,6 +65,6 @@ function useOverlayExit(options) {
|
|
|
60
65
|
return visible;
|
|
61
66
|
}
|
|
62
67
|
//#endregion
|
|
63
|
-
export { useOverlayExit };
|
|
68
|
+
export { OVERLAY_STOWED_PROPS, useOverlayExit };
|
|
64
69
|
|
|
65
70
|
//# sourceMappingURL=use-overlay-exit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-overlay-exit.js","names":[],"sources":["../../src/runtime/use-overlay-exit.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 use overlay exit 相关实现。\n\nimport type { RuntimeConfig } from '@xihan-ui/core'\nimport type { PresenceHandle } from '@xihan-ui/core/presence'\nimport type { MaybeRefOrGetter, Ref } from 'vue'\nimport { attachCssExit, createPresence } from '@xihan-ui/core/presence'\nimport { getCurrentInstance, isRef, onBeforeUnmount, onMounted, ref, toValue, watch } from 'vue'\n\n// 退场闸门:把「几时真的收起浮层」从展开态挪到 presence 上。\n//\n// 连接层给 content 打的 `hidden` 是跟着 open 走的——收起那一帧节点就不生成盒子了,\n// 退场动画一帧都播不出来。这里把它改成跟着 presence 走:展开时可见、退场动画播完之前\n// 也可见,播完才真收。作者节点始终留在原地,被拉长的是「可见的时间」而不是「存在的时间」。\n//\n// 所有带退场的部件共用这一件:dialog / drawer / command / image-viewer 的遮罩经 additionalExitRefs\n// 一并计入,轻提示与通知卡片也经它把 Presence 交给机器。\n\nexport interface OverlayExitOptions {\n /**\n * 运行时配置,只用来区分有没有 DOM:服务端没有退场可言,传 null 即退化为可见与否跟随展开态。\n * 客户端必须等真实根节点才能确定 realm 时传 ref/getter;挂载后仍为空会明确失败。\n */\n config: MaybeRefOrGetter<RuntimeConfig | null>\n /** 当前逻辑上是否展开。 */\n isOpen: () => boolean\n /** content 节点,退场动画从它上面探测。 */\n contentRef: Ref<HTMLElement | null>\n /** 与 content 共同决定退出完成的其他真实视觉节点。 */\n additionalExitRefs?: Array<Ref<HTMLElement | null>>\n /** Presence 建立后交给需要共用退出生命周期的 Headless 状态机;卸载时回传 null。 */\n onPresence?: (presence: PresenceHandle | null) => void\n}\n\n/**\n * 返回当前是否应当可见。作者把它覆盖到 content 的 `hidden` 上:\n * `{ ...api.getContentProps(), hidden: !visible.value || undefined }`。\n */\nexport function useOverlayExit(options: OverlayExitOptions): Ref<boolean> {\n const { isOpen, contentRef } = options\n const visible = ref(isOpen())\n let presence: PresenceHandle | null = null\n const tracked = new Map<HTMLElement, () => void>()\n let stopOpen: (() => void) | undefined\n let stopContent: (() => void) | undefined\n\n const start = (config: RuntimeConfig | null): void => {\n if (!config) {\n stopOpen = watch(isOpen, (open) => {\n visible.value = open\n })\n return\n }\n\n presence = createPresence({\n open: isOpen(),\n onRenderedChange: (rendered) => {\n visible.value = rendered\n },\n })\n options.onPresence?.(presence)\n visible.value = presence.rendered\n\n // data-state 提交到 DOM 之后再驱动 presence,让退场探测读到正确的 animationName\n stopOpen = watch(isOpen, open => presence?.update(open), { flush: 'post' })\n\n // 延迟配置到挂载期才就绪时 content 已经存在,immediate 负责补上首次 attach。\n stopContent = watch([contentRef, ...(options.additionalExitRefs ?? [])], (nodes) => {\n const next = new Set(nodes.filter((node): node is HTMLElement => node !== null))\n for (const node of next) {\n if (!tracked.has(node))\n tracked.set(node, attachCssExit(node, presence!))\n }\n for (const [node, detach] of tracked) {\n if (!next.has(node)) {\n tracked.delete(node)\n detach()\n }\n }\n }, { flush: 'post', immediate: true })\n }\n\n const initial = toValue(options.config)\n const delayed = isRef(options.config) || typeof options.config === 'function'\n if (initial || !delayed) {\n start(initial)\n }\n else if (getCurrentInstance()) {\n onMounted(() => {\n const config = toValue(options.config)\n if (!config)\n throw new Error('[xh] useOverlayExit 的延迟 RuntimeConfig 在挂载后仍未就绪')\n start(config)\n })\n }\n else {\n throw new Error('[xh] useOverlayExit 的延迟 RuntimeConfig 只能在 Vue setup 生命周期内使用')\n }\n\n onBeforeUnmount(() => {\n stopOpen?.()\n stopContent?.()\n for (const detach of tracked.values()) detach()\n tracked.clear()\n presence?.dispose()\n options.onPresence?.(null)\n })\n\n return visible\n}\n"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"use-overlay-exit.js","names":[],"sources":["../../src/runtime/use-overlay-exit.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 提供 use overlay exit 相关实现。\n\nimport type { RuntimeConfig } from '@xihan-ui/core'\nimport type { PresenceHandle } from '@xihan-ui/core/presence'\nimport type { MaybeRefOrGetter, Ref } from 'vue'\nimport { attachCssExit, createPresence } from '@xihan-ui/core/presence'\nimport { getCurrentInstance, isRef, onBeforeUnmount, onMounted, ref, toValue, watch } from 'vue'\n\n// 退场闸门:把「几时真的收起浮层」从展开态挪到 presence 上。\n//\n// 连接层给 content 打的 `hidden` 是跟着 open 走的——收起那一帧节点就不生成盒子了,\n// 退场动画一帧都播不出来。这里把它改成跟着 presence 走:展开时可见、退场动画播完之前\n// 也可见,播完才真收。作者节点始终留在原地,被拉长的是「可见的时间」而不是「存在的时间」。\n//\n// 所有带退场的部件共用这一件:dialog / drawer / command / image-viewer 的遮罩经 additionalExitRefs\n// 一并计入,轻提示与通知卡片也经它把 Presence 交给机器。\n\n/**\n * 退场播完却不卸载的浮层(unmountOnExit 为 false)收起定位层用的属性。\n * 皮肤给定位层声明过 display,UA 的 [hidden]{display:none} 压不住,只能写内联。\n */\nexport const OVERLAY_STOWED_PROPS = { style: { display: 'none' } } as const\n\nexport interface OverlayExitOptions {\n /**\n * 运行时配置,只用来区分有没有 DOM:服务端没有退场可言,传 null 即退化为可见与否跟随展开态。\n * 客户端必须等真实根节点才能确定 realm 时传 ref/getter;挂载后仍为空会明确失败。\n */\n config: MaybeRefOrGetter<RuntimeConfig | null>\n /** 当前逻辑上是否展开。 */\n isOpen: () => boolean\n /** content 节点,退场动画从它上面探测。 */\n contentRef: Ref<HTMLElement | null>\n /** 与 content 共同决定退出完成的其他真实视觉节点。 */\n additionalExitRefs?: Array<Ref<HTMLElement | null>>\n /** Presence 建立后交给需要共用退出生命周期的 Headless 状态机;卸载时回传 null。 */\n onPresence?: (presence: PresenceHandle | null) => void\n}\n\n/**\n * 返回当前是否应当可见。作者把它覆盖到 content 的 `hidden` 上:\n * `{ ...api.getContentProps(), hidden: !visible.value || undefined }`。\n */\nexport function useOverlayExit(options: OverlayExitOptions): Ref<boolean> {\n const { isOpen, contentRef } = options\n const visible = ref(isOpen())\n let presence: PresenceHandle | null = null\n const tracked = new Map<HTMLElement, () => void>()\n let stopOpen: (() => void) | undefined\n let stopContent: (() => void) | undefined\n\n const start = (config: RuntimeConfig | null): void => {\n if (!config) {\n stopOpen = watch(isOpen, (open) => {\n visible.value = open\n })\n return\n }\n\n presence = createPresence({\n open: isOpen(),\n onRenderedChange: (rendered) => {\n visible.value = rendered\n },\n })\n options.onPresence?.(presence)\n visible.value = presence.rendered\n\n // data-state 提交到 DOM 之后再驱动 presence,让退场探测读到正确的 animationName\n stopOpen = watch(isOpen, open => presence?.update(open), { flush: 'post' })\n\n // 延迟配置到挂载期才就绪时 content 已经存在,immediate 负责补上首次 attach。\n stopContent = watch([contentRef, ...(options.additionalExitRefs ?? [])], (nodes) => {\n const next = new Set(nodes.filter((node): node is HTMLElement => node !== null))\n for (const node of next) {\n if (!tracked.has(node))\n tracked.set(node, attachCssExit(node, presence!))\n }\n for (const [node, detach] of tracked) {\n if (!next.has(node)) {\n tracked.delete(node)\n detach()\n }\n }\n }, { flush: 'post', immediate: true })\n }\n\n const initial = toValue(options.config)\n const delayed = isRef(options.config) || typeof options.config === 'function'\n if (initial || !delayed) {\n start(initial)\n }\n else if (getCurrentInstance()) {\n onMounted(() => {\n const config = toValue(options.config)\n if (!config)\n throw new Error('[xh] useOverlayExit 的延迟 RuntimeConfig 在挂载后仍未就绪')\n start(config)\n })\n }\n else {\n throw new Error('[xh] useOverlayExit 的延迟 RuntimeConfig 只能在 Vue setup 生命周期内使用')\n }\n\n onBeforeUnmount(() => {\n stopOpen?.()\n stopContent?.()\n for (const detach of tracked.values()) detach()\n tracked.clear()\n presence?.dispose()\n options.onPresence?.(null)\n })\n\n return visible\n}\n"],"mappings":";;;;;;;AA0BA,MAAa,uBAAuB,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;;;;;AAsBjE,SAAgB,eAAe,SAA2C;CACxE,MAAM,EAAE,QAAQ,eAAe;CAC/B,MAAM,UAAU,IAAI,OAAO,CAAC;CAC5B,IAAI,WAAkC;CACtC,MAAM,0BAAU,IAAI,IAA6B;CACjD,IAAI;CACJ,IAAI;CAEJ,MAAM,SAAS,WAAuC;EACpD,IAAI,CAAC,QAAQ;GACX,WAAW,MAAM,SAAS,SAAS;IACjC,QAAQ,QAAQ;GAClB,CAAC;GACD;EACF;EAEA,WAAW,eAAe;GACxB,MAAM,OAAO;GACb,mBAAmB,aAAa;IAC9B,QAAQ,QAAQ;GAClB;EACF,CAAC;EACD,QAAQ,aAAa,QAAQ;EAC7B,QAAQ,QAAQ,SAAS;EAGzB,WAAW,MAAM,SAAQ,SAAQ,UAAU,OAAO,IAAI,GAAG,EAAE,OAAO,OAAO,CAAC;EAG1E,cAAc,MAAM,CAAC,YAAY,GAAI,QAAQ,sBAAsB,CAAC,CAAE,IAAI,UAAU;GAClF,MAAM,OAAO,IAAI,IAAI,MAAM,QAAQ,SAA8B,SAAS,IAAI,CAAC;GAC/E,KAAK,MAAM,QAAQ,MACjB,IAAI,CAAC,QAAQ,IAAI,IAAI,GACnB,QAAQ,IAAI,MAAM,cAAc,MAAM,QAAS,CAAC;GAEpD,KAAK,MAAM,CAAC,MAAM,WAAW,SAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG;IACnB,QAAQ,OAAO,IAAI;IACnB,OAAO;GACT;EAEJ,GAAG;GAAE,OAAO;GAAQ,WAAW;EAAK,CAAC;CACvC;CAEA,MAAM,UAAU,QAAQ,QAAQ,MAAM;CACtC,MAAM,UAAU,MAAM,QAAQ,MAAM,KAAK,OAAO,QAAQ,WAAW;CACnE,IAAI,WAAW,CAAC,SACd,MAAM,OAAO;MAEV,IAAI,mBAAmB,GAC1B,gBAAgB;EACd,MAAM,SAAS,QAAQ,QAAQ,MAAM;EACrC,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,gDAAgD;EAClE,MAAM,MAAM;CACd,CAAC;MAGD,MAAM,IAAI,MAAM,6DAA6D;CAG/E,sBAAsB;EACpB,WAAW;EACX,cAAc;EACd,KAAK,MAAM,UAAU,QAAQ,OAAO,GAAG,OAAO;EAC9C,QAAQ,MAAM;EACd,UAAU,QAAQ;EAClB,QAAQ,aAAa,IAAI;CAC3B,CAAC;CAED,OAAO;AACT"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/runtime/with-handlers.ts
|
|
2
|
+
/**
|
|
3
|
+
* 组件把 emit 翻成 headless 认的回调(`onClear: () => emit('clear')`),并进交给状态机的 props。
|
|
4
|
+
*
|
|
5
|
+
* props 是响应式代理,展开成新对象会丢掉响应;这里再包一层代理:读回调键给回调,
|
|
6
|
+
* 其余照旧穿透到原 props,展开(`{ ...props }`)时回调键也一并列出。
|
|
7
|
+
*/
|
|
8
|
+
function withHandlers(props, handlers) {
|
|
9
|
+
const own = (key) => typeof key === "string" && Object.hasOwn(handlers, key);
|
|
10
|
+
return new Proxy(props, {
|
|
11
|
+
get: (target, key, receiver) => own(key) ? handlers[key] : Reflect.get(target, key, receiver),
|
|
12
|
+
has: (target, key) => own(key) || Reflect.has(target, key),
|
|
13
|
+
ownKeys: (target) => [.../* @__PURE__ */ new Set([...Reflect.ownKeys(target), ...Object.keys(handlers)])],
|
|
14
|
+
getOwnPropertyDescriptor: (target, key) => own(key) ? {
|
|
15
|
+
configurable: true,
|
|
16
|
+
enumerable: true,
|
|
17
|
+
writable: false,
|
|
18
|
+
value: handlers[key]
|
|
19
|
+
} : Reflect.getOwnPropertyDescriptor(target, key)
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { withHandlers };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=with-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-handlers.js","names":[],"sources":["../../src/runtime/with-handlers.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 把适配器自己翻译出的回调并进 props 代理。\n\n/**\n * 组件把 emit 翻成 headless 认的回调(`onClear: () => emit('clear')`),并进交给状态机的 props。\n *\n * props 是响应式代理,展开成新对象会丢掉响应;这里再包一层代理:读回调键给回调,\n * 其余照旧穿透到原 props,展开(`{ ...props }`)时回调键也一并列出。\n */\nexport function withHandlers<T extends object>(props: T, handlers: Readonly<Record<string, unknown>>): T {\n const own = (key: string | symbol): key is string => typeof key === 'string' && Object.hasOwn(handlers, key)\n return new Proxy(props, {\n get: (target, key, receiver) => (own(key) ? handlers[key] : Reflect.get(target, key, receiver)),\n has: (target, key) => own(key) || Reflect.has(target, key),\n ownKeys: target => [...new Set([...Reflect.ownKeys(target), ...Object.keys(handlers)])],\n getOwnPropertyDescriptor: (target, key) => (own(key)\n ? { configurable: true, enumerable: true, writable: false, value: handlers[key] }\n : Reflect.getOwnPropertyDescriptor(target, key)),\n })\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,aAA+B,OAAU,UAAgD;CACvG,MAAM,OAAO,QAAwC,OAAO,QAAQ,YAAY,OAAO,OAAO,UAAU,GAAG;CAC3G,OAAO,IAAI,MAAM,OAAO;EACtB,MAAM,QAAQ,KAAK,aAAc,IAAI,GAAG,IAAI,SAAS,OAAO,QAAQ,IAAI,QAAQ,KAAK,QAAQ;EAC7F,MAAM,QAAQ,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,QAAQ,GAAG;EACzD,UAAS,WAAU,CAAC,mBAAG,IAAI,IAAI,CAAC,GAAG,QAAQ,QAAQ,MAAM,GAAG,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC;EACtF,2BAA2B,QAAQ,QAAS,IAAI,GAAG,IAC/C;GAAE,cAAc;GAAM,YAAY;GAAM,UAAU;GAAO,OAAO,SAAS;EAAK,IAC9E,QAAQ,yBAAyB,QAAQ,GAAG;CAClD,CAAC;AACH"}
|
|
@@ -43,11 +43,11 @@ interface PromptOptions<T extends object> extends Omit<ConfirmOptions, 'onOk' |
|
|
|
43
43
|
onOk?: (value: T) => boolean | void | Promise<boolean | void>;
|
|
44
44
|
}
|
|
45
45
|
interface DialogServiceOptions {
|
|
46
|
-
/**
|
|
46
|
+
/** 确认按钮文案;未提供时取 config 里 translations.dialog.ok,再退英文语言包(OK)。 */
|
|
47
47
|
okText?: MaybeRefOrGetter<string>;
|
|
48
|
-
/**
|
|
48
|
+
/** 取消按钮文案;未提供时取 translations.dialog.cancel,再退英文语言包(Cancel)。 */
|
|
49
49
|
cancelText?: MaybeRefOrGetter<string>;
|
|
50
|
-
/**
|
|
50
|
+
/** 动作失败时的安全提示,支持与按钮文案相同的响应式来源;未提供时取 translations.dialog.actionError。 */
|
|
51
51
|
actionErrorText?: MaybeRefOrGetter<string>;
|
|
52
52
|
/**
|
|
53
53
|
* 提供给对话框子树的全局配置(locale / translations / size / portalContainer)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-service.d.ts","names":[],"sources":["../../src/services/dialog-service.ts"],"mappings":";;;;;;;;;;;;KA4BY,6BAA6B;;UAGxB;EACf;;UAGe;EACf;EACA,UAAU;;EAEV,OAAO;;EAEP,QAAQ;EACR,SAAS;EACT,aAAa;;EAEb,8BAA8B;;EAE9B,iBAAiB,OAAO,6BAA6B;;;KAI3C,eAAe,KAAK;;UAGf,cAAc,0BAA0B,KAAK;;EAE5D,cAAc;;EAEd,OAAO,OAAO,MAAM;;EAEpB;;EAEA,QAAQ,OAAO,uBAAuB;;UAGvB;;EAEf,SAAS;;EAET,aAAa;;EAEb,kBAAkB;;;;;;EAMlB,SAAS,iBAAiB;;EAE1B,SAAS;;UAGM;;WAEN,aAAa;;EAEtB,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;;
|
|
1
|
+
{"version":3,"file":"dialog-service.d.ts","names":[],"sources":["../../src/services/dialog-service.ts"],"mappings":";;;;;;;;;;;;KA4BY,6BAA6B;;UAGxB;EACf;;UAGe;EACf;EACA,UAAU;;EAEV,OAAO;;EAEP,QAAQ;EACR,SAAS;EACT,aAAa;;EAEb,8BAA8B;;EAE9B,iBAAiB,OAAO,6BAA6B;;;KAI3C,eAAe,KAAK;;UAGf,cAAc,0BAA0B,KAAK;;EAE5D,cAAc;;EAEd,OAAO,OAAO,MAAM;;EAEpB;;EAEA,QAAQ,OAAO,uBAAuB;;UAGvB;;EAEf,SAAS;;EAET,aAAa;;EAEb,kBAAkB;;;;;;EAMlB,SAAS,iBAAiB;;EAE1B,SAAS;;UAGM;;WAEN,aAAa;;EAEtB,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;;iBAsBc,oBAAoB,UAAS,uBAA4B"}
|
|
@@ -4,13 +4,13 @@ import { spinArc } from "./glyph.js";
|
|
|
4
4
|
import { createServiceConfig } from "./service-config.js";
|
|
5
5
|
import { createApp, defineComponent, h, reactive, shallowRef, toRaw, toValue } from "vue";
|
|
6
6
|
import { ensurePortalRoot } from "@xihan-ui/core";
|
|
7
|
-
import { createDialogServiceController, dialogServiceBadgeTone } from "@xihan-ui/headless";
|
|
7
|
+
import { createDialogServiceController, dialogServiceBadgeTone, dialogServiceTranslations } from "@xihan-ui/headless";
|
|
8
8
|
//#region src/services/dialog-service.ts
|
|
9
9
|
function createDialogService(options = {}) {
|
|
10
10
|
if (typeof document === "undefined") throw new Error("createDialogService 需要 document;SSR 里请等到客户端再创建");
|
|
11
11
|
const defaults = {
|
|
12
|
-
okText: options.okText
|
|
13
|
-
cancelText: options.cancelText
|
|
12
|
+
okText: options.okText,
|
|
13
|
+
cancelText: options.cancelText
|
|
14
14
|
};
|
|
15
15
|
const configSource = createServiceConfig(options.config);
|
|
16
16
|
const holder = options.target ?? document.createElement("div");
|
|
@@ -39,6 +39,8 @@ function createDialogService(options = {}) {
|
|
|
39
39
|
if (serviceState.failure) return null;
|
|
40
40
|
const request = serviceState.current;
|
|
41
41
|
const spec = request?.spec;
|
|
42
|
+
const text = dialogServiceTranslations(configSource.read()?.translations?.dialog);
|
|
43
|
+
const okText = toValue(spec?.okText) ?? text.ok;
|
|
42
44
|
return h(XhDialogRoot, {
|
|
43
45
|
"open": serviceState.open,
|
|
44
46
|
"onUpdate:open": onOpenChange,
|
|
@@ -56,18 +58,18 @@ function createDialogService(options = {}) {
|
|
|
56
58
|
serviceState.actionError ? h("p", {
|
|
57
59
|
role: "alert",
|
|
58
60
|
style: { color: "var(--xh-fg-danger)" }
|
|
59
|
-
}, toValue(options.actionErrorText) ??
|
|
61
|
+
}, toValue(options.actionErrorText) ?? text.actionError) : null
|
|
60
62
|
]),
|
|
61
63
|
h(XhDialogFooter, null, () => [spec.showCancel ? h(XhButton, {
|
|
62
64
|
variant: "ghost",
|
|
63
65
|
disabled: serviceState.busy,
|
|
64
66
|
onClick: () => controller.close(false)
|
|
65
|
-
}, () => toValue(spec.cancelText)) : null, h(XhButton, {
|
|
67
|
+
}, () => toValue(spec.cancelText) ?? text.cancel) : null, h(XhButton, {
|
|
66
68
|
variant: "solid",
|
|
67
69
|
tone: spec.tone,
|
|
68
70
|
loading: serviceState.busy,
|
|
69
71
|
onClick: controller.confirmCurrent
|
|
70
|
-
}, () => [serviceState.busy ? h(XhButtonIndicator, () => spinArc()) : null, h(XhButtonLabel, () => serviceState.busy ? `${
|
|
72
|
+
}, () => [serviceState.busy ? h(XhButtonIndicator, () => spinArc()) : null, h(XhButtonLabel, () => serviceState.busy ? `${okText}…` : okText)])])
|
|
71
73
|
]) : null);
|
|
72
74
|
};
|
|
73
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-service.js","names":[],"sources":["../../src/services/dialog-service.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 全局命令式确认框服务:confirm/info/success/warning/error 一次调用弹出,\n// 自带标题徽记、正文与按钮行。同一时刻只挂一个对话框,后来的排队顺次弹出,\n// 避开多层模态叠加。onOk 返回 Promise 时确认钮自动进入 pending 并拦住关闭,\n// 失败保持打开以便重试或取消。\nimport type { Tone } from '@xihan-ui/core'\nimport type { DialogServiceBadge, DialogServiceControllerSpec, DialogServiceControllerState } from '@xihan-ui/headless'\nimport type { App, MaybeRefOrGetter, VNodeChild } from 'vue'\nimport type { XhConfig } from '../config/config'\nimport { ensurePortalRoot } from '@xihan-ui/core'\nimport { createDialogServiceController, dialogServiceBadgeTone } from '@xihan-ui/headless'\nimport { createApp, defineComponent, h, reactive, shallowRef, toRaw, toValue } from 'vue'\nimport { XhButton, XhButtonIndicator, XhButtonLabel } from '../components/button'\nimport { XhDialogBody, XhDialogContent, XhDialogDescription, XhDialogFooter, XhDialogHeader, XhDialogIndicator, XhDialogRoot, XhDialogTitle } from '../components/dialog/dialog'\nimport { spinArc } from './glyph'\nimport { createServiceConfig } from './service-config'\n\n/**\n * 对话框正文。传字符串时经 description 部件(读屏的 aria-describedby 由它承接);\n * 传渲染函数时整块展开在正文位,自行决定渲染内容。\n *\n * 不接收裸 VNode:服务的宿主是常驻的,忙态切换即整棵重渲,\n * 同一个 VNode 实例被复用时的行为未定义。\n */\nexport type DialogBody = string | (() => VNodeChild)\n\n/** 动作异常保留原始原因;可见文案由 actionErrorText 提供。 */\nexport interface DialogActionError {\n cause: unknown\n}\n\nexport interface ConfirmOptions {\n title: string\n content?: DialogBody\n /** 确认按钮语气,默认 brand;危险操作传 danger。 */\n tone?: Tone\n /** 标题旁的类型徽记。未提供时不显示徽记。 */\n badge?: DialogServiceBadge\n okText?: MaybeRefOrGetter<string>\n cancelText?: MaybeRefOrGetter<string>\n /** false 阻止关闭;抛错或 Promise 拒绝进入 actionError,保持打开。 */\n onOk?: () => boolean | void | Promise<unknown>\n /** 动作失败通知;通知自身失败时拒绝所属请求。 */\n onActionError?: (error: DialogActionError) => void | Promise<void>\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 actionErrorText?: 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 /** 当前请求的动作异常,重试、关闭和切换请求时清空。 */\n readonly actionError: DialogActionError | null\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 extends DialogServiceControllerSpec {\n title: string\n content?: DialogBody\n tone: Tone\n okText: MaybeRefOrGetter<string>\n cancelText: MaybeRefOrGetter<string>\n showCancel: boolean\n /** 标题旁的类型徽记(预设档使用),confirm 不带。 */\n badge?: DialogServiceBadge\n /** 返回 false 阻止本次确认;异常由独立错误状态报告。 */\n onOk?: () => unknown\n onActionError?: (error: DialogActionError) => void | Promise<void>\n /** 取值型弹窗的正文与可写的值,两边是同一个对象。 */\n body?: (value: object) => VNodeChild\n value?: object\n initialFocus?: string\n}\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 let hostFailure: { cause: unknown } | null = null\n try {\n if (!options.target)\n ensurePortalRoot(document).appendChild(holder)\n if (holder.nodeType !== 1 || holder.ownerDocument !== document || !holder.isConnected)\n throw new Error('DialogService target 必须是当前文档中已连接的元素')\n }\n catch (cause) {\n hostFailure = { cause }\n }\n\n // 整份核心快照放 shallowRef:Spec 里的 MaybeRefOrGetter 不能被 reactive 深层解包。\n let publishState: (next: DialogServiceControllerState<Spec>) => void = () => {}\n const controller = createDialogServiceController<Spec>({\n onStateChange: next => publishState(next),\n })\n const state = shallowRef(controller.state)\n publishState = next => void (state.value = next)\n if (hostFailure)\n controller.fail(hostFailure.cause)\n\n // 机器侧的关闭(Esc 等)从这里回来:未定的一律按取消结\n function onOpenChange(open: boolean): void {\n if (open)\n return\n controller.close(false)\n }\n\n const Host = defineComponent({\n name: 'XhDialogServiceHost',\n setup() {\n configSource.provide()\n return () => {\n const serviceState = state.value\n if (serviceState.failure)\n return null\n const request = serviceState.current\n const spec = request?.spec\n return h(XhDialogRoot, {\n 'open': serviceState.open,\n 'onUpdate:open': onOpenChange,\n 'modal': true,\n 'role': 'alertdialog',\n 'closeOnEscape': !serviceState.busy,\n 'closeOnInteractOutside': false,\n 'initialFocus': spec?.initialFocus,\n 'onExitComplete': () => controller.finishExit(request),\n }, () => spec\n ? h(XhDialogContent, null, () => [\n h(XhDialogHeader, null, () => [\n spec.badge ? h(XhDialogIndicator, { 'data-tone': dialogServiceBadgeTone(spec.badge) }) : null,\n h(XhDialogTitle, () => spec.title),\n ]),\n h(XhDialogBody, null, () => [\n // 串走 description,函数正文与 prompt 表单也在唯一滚动区内。\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 serviceState.actionError ? h('p', { role: 'alert', style: { color: 'var(--xh-fg-danger)' } }, toValue(options.actionErrorText) ?? 'Action failed. Please try again.') : null,\n ]),\n h(XhDialogFooter, null, () => [\n spec.showCancel\n ? h(XhButton, { variant: 'ghost', disabled: serviceState.busy, onClick: () => controller.close(false) }, () => toValue(spec.cancelText))\n : null,\n h(XhButton, { variant: 'solid', tone: spec.tone, loading: serviceState.busy, onClick: controller.confirmCurrent }, () => [\n serviceState.busy ? h(XhButtonIndicator, () => spinArc()) : null,\n h(XhButtonLabel, () => (serviceState.busy ? `${toValue(spec.okText)}…` : toValue(spec.okText))),\n ]),\n ]),\n ])\n : null)\n }\n },\n })\n\n const app: App = createApp(Host)\n let mounted = false\n function failHost(cause: unknown): void {\n controller.fail(cause)\n }\n app.config.errorHandler = failHost\n if (!hostFailure) {\n try {\n app.mount(holder)\n mounted = true\n }\n catch (cause) {\n failHost(cause)\n }\n }\n\n const alert = (badge: DialogServiceBadge, tone: Tone) => async (opts: AlertOptions): Promise<void> => {\n await controller.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 onActionError: opts.onActionError,\n })\n }\n\n return {\n get actionError() { return controller.state.actionError },\n confirm: opts => controller.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 onActionError: opts.onActionError,\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 controller.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 onActionError: opts.onActionError,\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 controller.dispose()\n if (mounted)\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":["/*\n * Copyright (c) 2021-Present XiHanFun and contributors.\n * Licensed under the MIT License. See LICENSE in the project root for license information.\n */\n\n// 全局命令式确认框服务:confirm/info/success/warning/error 一次调用弹出,\n// 自带标题徽记、正文与按钮行。同一时刻只挂一个对话框,后来的排队顺次弹出,\n// 避开多层模态叠加。onOk 返回 Promise 时确认钮自动进入 pending 并拦住关闭,\n// 失败保持打开以便重试或取消。\nimport type { Tone } from '@xihan-ui/core'\nimport type { DialogServiceBadge, DialogServiceControllerSpec, DialogServiceControllerState } from '@xihan-ui/headless'\nimport type { App, MaybeRefOrGetter, VNodeChild } from 'vue'\nimport type { XhConfig } from '../config/config'\nimport { ensurePortalRoot } from '@xihan-ui/core'\nimport { createDialogServiceController, dialogServiceBadgeTone, dialogServiceTranslations } from '@xihan-ui/headless'\nimport { createApp, defineComponent, h, reactive, shallowRef, toRaw, toValue } from 'vue'\nimport { XhButton, XhButtonIndicator, XhButtonLabel } from '../components/button'\nimport { XhDialogBody, XhDialogContent, XhDialogDescription, XhDialogFooter, XhDialogHeader, XhDialogIndicator, XhDialogRoot, XhDialogTitle } from '../components/dialog/dialog'\nimport { spinArc } from './glyph'\nimport { createServiceConfig } from './service-config'\n\n/**\n * 对话框正文。传字符串时经 description 部件(读屏的 aria-describedby 由它承接);\n * 传渲染函数时整块展开在正文位,自行决定渲染内容。\n *\n * 不接收裸 VNode:服务的宿主是常驻的,忙态切换即整棵重渲,\n * 同一个 VNode 实例被复用时的行为未定义。\n */\nexport type DialogBody = string | (() => VNodeChild)\n\n/** 动作异常保留原始原因;可见文案由 actionErrorText 提供。 */\nexport interface DialogActionError {\n cause: unknown\n}\n\nexport interface ConfirmOptions {\n title: string\n content?: DialogBody\n /** 确认按钮语气,默认 brand;危险操作传 danger。 */\n tone?: Tone\n /** 标题旁的类型徽记。未提供时不显示徽记。 */\n badge?: DialogServiceBadge\n okText?: MaybeRefOrGetter<string>\n cancelText?: MaybeRefOrGetter<string>\n /** false 阻止关闭;抛错或 Promise 拒绝进入 actionError,保持打开。 */\n onOk?: () => boolean | void | Promise<unknown>\n /** 动作失败通知;通知自身失败时拒绝所属请求。 */\n onActionError?: (error: DialogActionError) => void | Promise<void>\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 /** 确认按钮文案;未提供时取 config 里 translations.dialog.ok,再退英文语言包(OK)。 */\n okText?: MaybeRefOrGetter<string>\n /** 取消按钮文案;未提供时取 translations.dialog.cancel,再退英文语言包(Cancel)。 */\n cancelText?: MaybeRefOrGetter<string>\n /** 动作失败时的安全提示,支持与按钮文案相同的响应式来源;未提供时取 translations.dialog.actionError。 */\n actionErrorText?: 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 /** 当前请求的动作异常,重试、关闭和切换请求时清空。 */\n readonly actionError: DialogActionError | null\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 extends DialogServiceControllerSpec {\n title: string\n content?: DialogBody\n tone: Tone\n /** 未给时取服务配置里 dialog 那一桶的 ok,再退英文语言包。 */\n okText?: MaybeRefOrGetter<string>\n cancelText?: MaybeRefOrGetter<string>\n showCancel: boolean\n /** 标题旁的类型徽记(预设档使用),confirm 不带。 */\n badge?: DialogServiceBadge\n /** 返回 false 阻止本次确认;异常由独立错误状态报告。 */\n onOk?: () => unknown\n onActionError?: (error: DialogActionError) => void | Promise<void>\n /** 取值型弹窗的正文与可写的值,两边是同一个对象。 */\n body?: (value: object) => VNodeChild\n value?: object\n initialFocus?: string\n}\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, cancelText: options.cancelText }\n const configSource = createServiceConfig(options.config)\n const holder = options.target ?? document.createElement('div')\n let hostFailure: { cause: unknown } | null = null\n try {\n if (!options.target)\n ensurePortalRoot(document).appendChild(holder)\n if (holder.nodeType !== 1 || holder.ownerDocument !== document || !holder.isConnected)\n throw new Error('DialogService target 必须是当前文档中已连接的元素')\n }\n catch (cause) {\n hostFailure = { cause }\n }\n\n // 整份核心快照放 shallowRef:Spec 里的 MaybeRefOrGetter 不能被 reactive 深层解包。\n let publishState: (next: DialogServiceControllerState<Spec>) => void = () => {}\n const controller = createDialogServiceController<Spec>({\n onStateChange: next => publishState(next),\n })\n const state = shallowRef(controller.state)\n publishState = next => void (state.value = next)\n if (hostFailure)\n controller.fail(hostFailure.cause)\n\n // 机器侧的关闭(Esc 等)从这里回来:未定的一律按取消结\n function onOpenChange(open: boolean): void {\n if (open)\n return\n controller.close(false)\n }\n\n const Host = defineComponent({\n name: 'XhDialogServiceHost',\n setup() {\n configSource.provide()\n return () => {\n const serviceState = state.value\n if (serviceState.failure)\n return null\n const request = serviceState.current\n const spec = request?.spec\n const text = dialogServiceTranslations(configSource.read()?.translations?.dialog)\n const okText = toValue(spec?.okText) ?? text.ok\n return h(XhDialogRoot, {\n 'open': serviceState.open,\n 'onUpdate:open': onOpenChange,\n 'modal': true,\n 'role': 'alertdialog',\n 'closeOnEscape': !serviceState.busy,\n 'closeOnInteractOutside': false,\n 'initialFocus': spec?.initialFocus,\n 'onExitComplete': () => controller.finishExit(request),\n }, () => spec\n ? h(XhDialogContent, null, () => [\n h(XhDialogHeader, null, () => [\n spec.badge ? h(XhDialogIndicator, { 'data-tone': dialogServiceBadgeTone(spec.badge) }) : null,\n h(XhDialogTitle, () => spec.title),\n ]),\n h(XhDialogBody, null, () => [\n // 串走 description,函数正文与 prompt 表单也在唯一滚动区内。\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 serviceState.actionError ? h('p', { role: 'alert', style: { color: 'var(--xh-fg-danger)' } }, toValue(options.actionErrorText) ?? text.actionError) : null,\n ]),\n h(XhDialogFooter, null, () => [\n spec.showCancel\n ? h(XhButton, { variant: 'ghost', disabled: serviceState.busy, onClick: () => controller.close(false) }, () => toValue(spec.cancelText) ?? text.cancel)\n : null,\n h(XhButton, { variant: 'solid', tone: spec.tone, loading: serviceState.busy, onClick: controller.confirmCurrent }, () => [\n serviceState.busy ? h(XhButtonIndicator, () => spinArc()) : null,\n h(XhButtonLabel, () => (serviceState.busy ? `${okText}…` : okText)),\n ]),\n ]),\n ])\n : null)\n }\n },\n })\n\n const app: App = createApp(Host)\n let mounted = false\n function failHost(cause: unknown): void {\n controller.fail(cause)\n }\n app.config.errorHandler = failHost\n if (!hostFailure) {\n try {\n app.mount(holder)\n mounted = true\n }\n catch (cause) {\n failHost(cause)\n }\n }\n\n const alert = (badge: DialogServiceBadge, tone: Tone) => async (opts: AlertOptions): Promise<void> => {\n await controller.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 onActionError: opts.onActionError,\n })\n }\n\n return {\n get actionError() { return controller.state.actionError },\n confirm: opts => controller.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 onActionError: opts.onActionError,\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 controller.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 onActionError: opts.onActionError,\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 controller.dispose()\n if (mounted)\n app.unmount()\n if (!options.target)\n holder.remove()\n },\n }\n}\n"],"mappings":"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"}
|