@zerodep-dev/vue-tsx-pro-ui 0.0.0-stage → 0.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/LICENSE +21 -0
- package/README.md +32 -2
- package/dist/base/Badge.d.ts +28 -0
- package/dist/base/Badge.js +72 -0
- package/dist/base/Badge.js.map +1 -0
- package/dist/base/Blockquote.d.ts +13 -0
- package/dist/base/Blockquote.js +26 -0
- package/dist/base/Blockquote.js.map +1 -0
- package/dist/base/Button.d.ts +18 -0
- package/dist/base/Button.js +86 -0
- package/dist/base/Button.js.map +1 -0
- package/dist/base/ButtonBase.d.ts +21 -0
- package/dist/base/ButtonBase.js +51 -0
- package/dist/base/ButtonBase.js.map +1 -0
- package/dist/base/ButtonGroup.d.ts +24 -0
- package/dist/base/ButtonGroup.js +52 -0
- package/dist/base/ButtonGroup.js.map +1 -0
- package/dist/base/CloseButton.d.ts +15 -0
- package/dist/base/CloseButton.js +38 -0
- package/dist/base/CloseButton.js.map +1 -0
- package/dist/base/Code.d.ts +13 -0
- package/dist/base/Code.js +27 -0
- package/dist/base/Code.js.map +1 -0
- package/dist/base/CodeBlock.d.ts +89 -0
- package/dist/base/CodeBlock.js +265 -0
- package/dist/base/CodeBlock.js.map +1 -0
- package/dist/base/CopyButton.d.ts +40 -0
- package/dist/base/CopyButton.js +113 -0
- package/dist/base/CopyButton.js.map +1 -0
- package/dist/base/Heading.d.ts +49 -0
- package/dist/base/Heading.js +122 -0
- package/dist/base/Heading.js.map +1 -0
- package/dist/base/Icon.d.ts +48 -0
- package/dist/base/Icon.js +110 -0
- package/dist/base/Icon.js.map +1 -0
- package/dist/base/IconButton.d.ts +34 -0
- package/dist/base/IconButton.js +81 -0
- package/dist/base/IconButton.js.map +1 -0
- package/dist/base/IconLinkButton.d.ts +34 -0
- package/dist/base/IconLinkButton.js +81 -0
- package/dist/base/IconLinkButton.js.map +1 -0
- package/dist/base/Indicator.d.ts +126 -0
- package/dist/base/Indicator.js +158 -0
- package/dist/base/Indicator.js.map +1 -0
- package/dist/base/Kbd.d.ts +13 -0
- package/dist/base/Kbd.js +34 -0
- package/dist/base/Kbd.js.map +1 -0
- package/dist/base/Link.d.ts +61 -0
- package/dist/base/Link.js +114 -0
- package/dist/base/Link.js.map +1 -0
- package/dist/base/LinkButton.d.ts +18 -0
- package/dist/base/LinkButton.js +109 -0
- package/dist/base/LinkButton.js.map +1 -0
- package/dist/base/List.d.ts +61 -0
- package/dist/base/List.js +116 -0
- package/dist/base/List.js.map +1 -0
- package/dist/base/Mark.d.ts +13 -0
- package/dist/base/Mark.js +23 -0
- package/dist/base/Mark.js.map +1 -0
- package/dist/base/Spinner.d.ts +20 -0
- package/dist/base/Spinner.js +59 -0
- package/dist/base/Spinner.js.map +1 -0
- package/dist/base/StatusDot.d.ts +48 -0
- package/dist/base/StatusDot.js +62 -0
- package/dist/base/StatusDot.js.map +1 -0
- package/dist/base/Tag.d.ts +29 -0
- package/dist/base/Tag.js +92 -0
- package/dist/base/Tag.js.map +1 -0
- package/dist/base/Text.d.ts +57 -0
- package/dist/base/Text.js +74 -0
- package/dist/base/Text.js.map +1 -0
- package/dist/base/VisuallyHidden.d.ts +13 -0
- package/dist/base/VisuallyHidden.js +28 -0
- package/dist/base/VisuallyHidden.js.map +1 -0
- package/dist/base/badge-styles.d.ts +57 -0
- package/dist/base/badge-styles.js +329 -0
- package/dist/base/badge-styles.js.map +1 -0
- package/dist/base/button-core.d.ts +191 -0
- package/dist/base/button-core.js +660 -0
- package/dist/base/button-core.js.map +1 -0
- package/dist/charts/AreaChart.d.ts +18 -0
- package/dist/charts/AreaChart.js +90 -0
- package/dist/charts/AreaChart.js.map +1 -0
- package/dist/charts/BarChart.d.ts +19 -0
- package/dist/charts/BarChart.js +88 -0
- package/dist/charts/BarChart.js.map +1 -0
- package/dist/charts/ChordChart.d.ts +48 -0
- package/dist/charts/ChordChart.js +149 -0
- package/dist/charts/ChordChart.js.map +1 -0
- package/dist/charts/ComboChart.d.ts +30 -0
- package/dist/charts/ComboChart.js +157 -0
- package/dist/charts/ComboChart.js.map +1 -0
- package/dist/charts/DonutChart.d.ts +65 -0
- package/dist/charts/DonutChart.js +162 -0
- package/dist/charts/DonutChart.js.map +1 -0
- package/dist/charts/FunnelChart.d.ts +69 -0
- package/dist/charts/FunnelChart.js +181 -0
- package/dist/charts/FunnelChart.js.map +1 -0
- package/dist/charts/GraphChart.d.ts +135 -0
- package/dist/charts/GraphChart.js +274 -0
- package/dist/charts/GraphChart.js.map +1 -0
- package/dist/charts/LineChart.d.ts +50 -0
- package/dist/charts/LineChart.js +94 -0
- package/dist/charts/LineChart.js.map +1 -0
- package/dist/charts/MapChart.d.ts +167 -0
- package/dist/charts/MapChart.js +627 -0
- package/dist/charts/MapChart.js.map +1 -0
- package/dist/charts/RadarChart.d.ts +60 -0
- package/dist/charts/RadarChart.js +224 -0
- package/dist/charts/RadarChart.js.map +1 -0
- package/dist/charts/SankeyChart.d.ts +57 -0
- package/dist/charts/SankeyChart.js +150 -0
- package/dist/charts/SankeyChart.js.map +1 -0
- package/dist/charts/ScatterChart.d.ts +18 -0
- package/dist/charts/ScatterChart.js +82 -0
- package/dist/charts/ScatterChart.js.map +1 -0
- package/dist/charts/TimelineChart.d.ts +71 -0
- package/dist/charts/TimelineChart.js +267 -0
- package/dist/charts/TimelineChart.js.map +1 -0
- package/dist/charts/TreemapChart.d.ts +40 -0
- package/dist/charts/TreemapChart.js +155 -0
- package/dist/charts/TreemapChart.js.map +1 -0
- package/dist/charts/WaterfallChart.d.ts +61 -0
- package/dist/charts/WaterfallChart.js +167 -0
- package/dist/charts/WaterfallChart.js.map +1 -0
- package/dist/charts/XYChart.d.ts +206 -0
- package/dist/charts/XYChart.js +520 -0
- package/dist/charts/XYChart.js.map +1 -0
- package/dist/charts/axis-ticks.d.ts +23 -0
- package/dist/charts/axis-ticks.js +59 -0
- package/dist/charts/axis-ticks.js.map +1 -0
- package/dist/charts/export.d.ts +17 -0
- package/dist/charts/export.js +65 -0
- package/dist/charts/export.js.map +1 -0
- package/dist/charts/flow.d.ts +53 -0
- package/dist/charts/flow.js +29 -0
- package/dist/charts/flow.js.map +1 -0
- package/dist/charts/frame.d.ts +147 -0
- package/dist/charts/frame.js +358 -0
- package/dist/charts/frame.js.map +1 -0
- package/dist/charts/index.d.ts +30 -0
- package/dist/charts/index.js +24 -0
- package/dist/charts/label-layout.d.ts +59 -0
- package/dist/charts/label-layout.js +64 -0
- package/dist/charts/label-layout.js.map +1 -0
- package/dist/charts/series.d.ts +36 -0
- package/dist/charts/series.js +60 -0
- package/dist/charts/series.js.map +1 -0
- package/dist/charts/single.d.ts +41 -0
- package/dist/charts/single.js +65 -0
- package/dist/charts/single.js.map +1 -0
- package/dist/code-editor/CodeEditor.d.ts +18 -0
- package/dist/code-editor/CodeEditor.js +57 -0
- package/dist/code-editor/CodeEditor.js.map +1 -0
- package/dist/code-editor/editor.d.ts +52 -0
- package/dist/code-editor/editor.js +225 -0
- package/dist/code-editor/editor.js.map +1 -0
- package/dist/code-editor/index.d.ts +9 -0
- package/dist/code-editor/index.js +3 -0
- package/dist/config/Provider.d.ts +52 -0
- package/dist/config/Provider.js +111 -0
- package/dist/config/Provider.js.map +1 -0
- package/dist/config/context.d.ts +90 -0
- package/dist/config/context.js +58 -0
- package/dist/config/context.js.map +1 -0
- package/dist/config/createUi.d.ts +52 -0
- package/dist/config/createUi.js +96 -0
- package/dist/config/createUi.js.map +1 -0
- package/dist/config/defaults.d.ts +71 -0
- package/dist/config/defaults.js +45 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/lang/en-US.d.ts +3 -0
- package/dist/config/lang/en-US.js +404 -0
- package/dist/config/lang/en-US.js.map +1 -0
- package/dist/config/lang/format.d.ts +51 -0
- package/dist/config/lang/format.js +120 -0
- package/dist/config/lang/format.js.map +1 -0
- package/dist/config/lang/lang.d.ts +666 -0
- package/dist/config/lang/lang.js +31 -0
- package/dist/config/lang/lang.js.map +1 -0
- package/dist/config/lang/messages.d.ts +12 -0
- package/dist/config/lang/messages.js +36 -0
- package/dist/config/lang/messages.js.map +1 -0
- package/dist/config/lang/zh-CN.d.ts +3 -0
- package/dist/config/lang/zh-CN.js +404 -0
- package/dist/config/lang/zh-CN.js.map +1 -0
- package/dist/config/pinyin.d.ts +3 -0
- package/dist/config/pinyin.js +26 -0
- package/dist/config/pinyin.js.map +1 -0
- package/dist/config/query-state.d.ts +61 -0
- package/dist/config/query-state.js +113 -0
- package/dist/config/query-state.js.map +1 -0
- package/dist/config/shiki.d.ts +13 -0
- package/dist/config/shiki.js +97 -0
- package/dist/config/shiki.js.map +1 -0
- package/dist/config/styles.d.ts +108 -0
- package/dist/config/styles.js +59 -0
- package/dist/config/styles.js.map +1 -0
- package/dist/config/theme/boot.d.ts +97 -0
- package/dist/config/theme/boot.js +90 -0
- package/dist/config/theme/boot.js.map +1 -0
- package/dist/config/theme/builtin.d.ts +21 -0
- package/dist/config/theme/builtin.js +58 -0
- package/dist/config/theme/builtin.js.map +1 -0
- package/dist/config/theme/coffee.d.ts +84 -0
- package/dist/config/theme/coffee.js +102 -0
- package/dist/config/theme/coffee.js.map +1 -0
- package/dist/config/theme/cyberpunk.d.ts +110 -0
- package/dist/config/theme/cyberpunk.js +125 -0
- package/dist/config/theme/cyberpunk.js.map +1 -0
- package/dist/config/theme/dark.d.ts +90 -0
- package/dist/config/theme/dark.js +106 -0
- package/dist/config/theme/dark.js.map +1 -0
- package/dist/config/theme/festive.d.ts +93 -0
- package/dist/config/theme/festive.js +110 -0
- package/dist/config/theme/festive.js.map +1 -0
- package/dist/config/theme/forest.d.ts +93 -0
- package/dist/config/theme/forest.js +109 -0
- package/dist/config/theme/forest.js.map +1 -0
- package/dist/config/theme/high-contrast.d.ts +103 -0
- package/dist/config/theme/high-contrast.js +119 -0
- package/dist/config/theme/high-contrast.js.map +1 -0
- package/dist/config/theme/lemon.d.ts +103 -0
- package/dist/config/theme/lemon.js +119 -0
- package/dist/config/theme/lemon.js.map +1 -0
- package/dist/config/theme/light.d.ts +107 -0
- package/dist/config/theme/light.js +122 -0
- package/dist/config/theme/light.js.map +1 -0
- package/dist/config/theme/midnight.d.ts +86 -0
- package/dist/config/theme/midnight.js +103 -0
- package/dist/config/theme/midnight.js.map +1 -0
- package/dist/config/theme/ocean.d.ts +103 -0
- package/dist/config/theme/ocean.js +119 -0
- package/dist/config/theme/ocean.js.map +1 -0
- package/dist/config/theme/paper.d.ts +101 -0
- package/dist/config/theme/paper.js +117 -0
- package/dist/config/theme/paper.js.map +1 -0
- package/dist/config/theme/preference.d.ts +34 -0
- package/dist/config/theme/preference.js +67 -0
- package/dist/config/theme/preference.js.map +1 -0
- package/dist/config/theme/sakura.d.ts +103 -0
- package/dist/config/theme/sakura.js +119 -0
- package/dist/config/theme/sakura.js.map +1 -0
- package/dist/config/theme/theme.d.ts +59 -0
- package/dist/config/theme/theme.js +68 -0
- package/dist/config/theme/theme.js.map +1 -0
- package/dist/config/theme/token-names.d.ts +1897 -0
- package/dist/config/theme/tokens.d.ts +833 -0
- package/dist/config/theme/tokens.js +480 -0
- package/dist/config/theme/tokens.js.map +1 -0
- package/dist/config/vue-router.d.ts +67 -0
- package/dist/config/vue-router.js +143 -0
- package/dist/config/vue-router.js.map +1 -0
- package/dist/date/Calendar.d.ts +36 -0
- package/dist/date/Calendar.js +83 -0
- package/dist/date/Calendar.js.map +1 -0
- package/dist/date/CalendarBoard.d.ts +79 -0
- package/dist/date/CalendarBoard.js +403 -0
- package/dist/date/CalendarBoard.js.map +1 -0
- package/dist/date/CalendarView.d.ts +86 -0
- package/dist/date/CalendarView.js +427 -0
- package/dist/date/CalendarView.js.map +1 -0
- package/dist/date/Countdown.d.ts +45 -0
- package/dist/date/Countdown.js +75 -0
- package/dist/date/Countdown.js.map +1 -0
- package/dist/date/DateField.d.ts +34 -0
- package/dist/date/DateField.js +124 -0
- package/dist/date/DateField.js.map +1 -0
- package/dist/date/DatePicker.d.ts +41 -0
- package/dist/date/DatePicker.js +272 -0
- package/dist/date/DatePicker.js.map +1 -0
- package/dist/date/DateRangePicker.d.ts +71 -0
- package/dist/date/DateRangePicker.js +411 -0
- package/dist/date/DateRangePicker.js.map +1 -0
- package/dist/date/DateSegmentGroup.d.ts +38 -0
- package/dist/date/DateSegmentGroup.js +176 -0
- package/dist/date/DateSegmentGroup.js.map +1 -0
- package/dist/date/DateTime.d.ts +21 -0
- package/dist/date/DateTime.js +39 -0
- package/dist/date/DateTime.js.map +1 -0
- package/dist/date/QuarterCalendar.d.ts +22 -0
- package/dist/date/QuarterCalendar.js +231 -0
- package/dist/date/QuarterCalendar.js.map +1 -0
- package/dist/date/RangeCalendar.d.ts +24 -0
- package/dist/date/RangeCalendar.js +89 -0
- package/dist/date/RangeCalendar.js.map +1 -0
- package/dist/date/RelativeTime.d.ts +16 -0
- package/dist/date/RelativeTime.js +61 -0
- package/dist/date/RelativeTime.js.map +1 -0
- package/dist/date/SegmentedField.d.ts +60 -0
- package/dist/date/SegmentedField.js +175 -0
- package/dist/date/SegmentedField.js.map +1 -0
- package/dist/date/TimeField.d.ts +36 -0
- package/dist/date/TimeField.js +56 -0
- package/dist/date/TimeField.js.map +1 -0
- package/dist/date/TimePicker.d.ts +25 -0
- package/dist/date/TimePicker.js +206 -0
- package/dist/date/TimePicker.js.map +1 -0
- package/dist/date/calendar-state.d.ts +119 -0
- package/dist/date/calendar-state.js +267 -0
- package/dist/date/calendar-state.js.map +1 -0
- package/dist/date/clock.d.ts +11 -0
- package/dist/date/clock.js +37 -0
- package/dist/date/clock.js.map +1 -0
- package/dist/date/date-locale.d.ts +67 -0
- package/dist/date/date-locale.js +89 -0
- package/dist/date/date-locale.js.map +1 -0
- package/dist/date/date-segments.d.ts +132 -0
- package/dist/date/date-segments.js +410 -0
- package/dist/date/date-segments.js.map +1 -0
- package/dist/date/picker-popover.d.ts +88 -0
- package/dist/date/picker-popover.js +126 -0
- package/dist/date/picker-popover.js.map +1 -0
- package/dist/diagram/Diagram.d.ts +223 -0
- package/dist/diagram/Diagram.js +1121 -0
- package/dist/diagram/Diagram.js.map +1 -0
- package/dist/diagram/DiagramControls.d.ts +35 -0
- package/dist/diagram/DiagramControls.js +114 -0
- package/dist/diagram/DiagramControls.js.map +1 -0
- package/dist/diagram/DiagramLanes.d.ts +49 -0
- package/dist/diagram/DiagramLanes.js +92 -0
- package/dist/diagram/DiagramLanes.js.map +1 -0
- package/dist/diagram/DiagramMinimap.d.ts +39 -0
- package/dist/diagram/DiagramMinimap.js +133 -0
- package/dist/diagram/DiagramMinimap.js.map +1 -0
- package/dist/diagram/DiagramNode.d.ts +65 -0
- package/dist/diagram/DiagramNode.js +142 -0
- package/dist/diagram/DiagramNode.js.map +1 -0
- package/dist/diagram/controller.d.ts +68 -0
- package/dist/diagram/controller.js +117 -0
- package/dist/diagram/controller.js.map +1 -0
- package/dist/diagram/export.d.ts +14 -0
- package/dist/diagram/export.js +115 -0
- package/dist/diagram/export.js.map +1 -0
- package/dist/diagram/geometry.d.ts +65 -0
- package/dist/diagram/geometry.js +219 -0
- package/dist/diagram/geometry.js.map +1 -0
- package/dist/diagram/index.d.ts +20 -0
- package/dist/diagram/index.js +12 -0
- package/dist/diagram/layout.d.ts +57 -0
- package/dist/diagram/layout.js +50 -0
- package/dist/diagram/layout.js.map +1 -0
- package/dist/diagram/messages.d.ts +28 -0
- package/dist/diagram/messages.js +30 -0
- package/dist/diagram/messages.js.map +1 -0
- package/dist/diagram/route.d.ts +81 -0
- package/dist/diagram/route.js +327 -0
- package/dist/diagram/route.js.map +1 -0
- package/dist/display/Accordion.d.ts +71 -0
- package/dist/display/Accordion.js +219 -0
- package/dist/display/Accordion.js.map +1 -0
- package/dist/display/AnimatedNumber.d.ts +44 -0
- package/dist/display/AnimatedNumber.js +97 -0
- package/dist/display/AnimatedNumber.js.map +1 -0
- package/dist/display/Avatar.d.ts +74 -0
- package/dist/display/Avatar.js +158 -0
- package/dist/display/Avatar.js.map +1 -0
- package/dist/display/AvatarGroup.d.ts +29 -0
- package/dist/display/AvatarGroup.js +67 -0
- package/dist/display/AvatarGroup.js.map +1 -0
- package/dist/display/Card.d.ts +219 -0
- package/dist/display/Card.js +319 -0
- package/dist/display/Card.js.map +1 -0
- package/dist/display/Checklist.d.ts +93 -0
- package/dist/display/Checklist.js +260 -0
- package/dist/display/Checklist.js.map +1 -0
- package/dist/display/Collapse.d.ts +24 -0
- package/dist/display/Collapse.js +65 -0
- package/dist/display/Collapse.js.map +1 -0
- package/dist/display/Collapsible.d.ts +12 -0
- package/dist/display/Collapsible.js +41 -0
- package/dist/display/Collapsible.js.map +1 -0
- package/dist/display/Descriptions.d.ts +88 -0
- package/dist/display/Descriptions.js +185 -0
- package/dist/display/Descriptions.js.map +1 -0
- package/dist/display/Ellipsis.d.ts +29 -0
- package/dist/display/Ellipsis.js +111 -0
- package/dist/display/Ellipsis.js.map +1 -0
- package/dist/display/FieldCompare.d.ts +58 -0
- package/dist/display/FieldCompare.js +205 -0
- package/dist/display/FieldCompare.js.map +1 -0
- package/dist/display/Gauge.d.ts +60 -0
- package/dist/display/Gauge.js +215 -0
- package/dist/display/Gauge.js.map +1 -0
- package/dist/display/Image.d.ts +87 -0
- package/dist/display/Image.js +212 -0
- package/dist/display/Image.js.map +1 -0
- package/dist/display/ItemList.d.ts +69 -0
- package/dist/display/ItemList.js +147 -0
- package/dist/display/ItemList.js.map +1 -0
- package/dist/display/Marquee.d.ts +59 -0
- package/dist/display/Marquee.js +155 -0
- package/dist/display/Marquee.js.map +1 -0
- package/dist/display/ProportionBar.d.ts +55 -0
- package/dist/display/ProportionBar.js +99 -0
- package/dist/display/ProportionBar.js.map +1 -0
- package/dist/display/Sortable.d.ts +43 -0
- package/dist/display/Sortable.js +163 -0
- package/dist/display/Sortable.js.map +1 -0
- package/dist/display/Sparkline.d.ts +48 -0
- package/dist/display/Sparkline.js +130 -0
- package/dist/display/Sparkline.js.map +1 -0
- package/dist/display/Stat.d.ts +105 -0
- package/dist/display/Stat.js +268 -0
- package/dist/display/Stat.js.map +1 -0
- package/dist/display/Timeline.d.ts +106 -0
- package/dist/display/Timeline.js +257 -0
- package/dist/display/Timeline.js.map +1 -0
- package/dist/display/Tree.d.ts +132 -0
- package/dist/display/Tree.js +645 -0
- package/dist/display/Tree.js.map +1 -0
- package/dist/display/VirtualList.d.ts +80 -0
- package/dist/display/VirtualList.js +166 -0
- package/dist/display/VirtualList.js.map +1 -0
- package/dist/display/Watermark.d.ts +39 -0
- package/dist/display/Watermark.js +130 -0
- package/dist/display/Watermark.js.map +1 -0
- package/dist/docs-kit/CodeGroup.d.ts +29 -0
- package/dist/docs-kit/CodeGroup.js +81 -0
- package/dist/docs-kit/CodeGroup.js.map +1 -0
- package/dist/docs-kit/CodePreview.d.ts +60 -0
- package/dist/docs-kit/CodePreview.js +183 -0
- package/dist/docs-kit/CodePreview.js.map +1 -0
- package/dist/docs-kit/ColorSwatch.d.ts +28 -0
- package/dist/docs-kit/ColorSwatch.js +85 -0
- package/dist/docs-kit/ColorSwatch.js.map +1 -0
- package/dist/docs-kit/PropsTable.d.ts +73 -0
- package/dist/docs-kit/PropsTable.js +122 -0
- package/dist/docs-kit/PropsTable.js.map +1 -0
- package/dist/docs-kit/index.d.ts +13 -0
- package/dist/docs-kit/index.js +6 -0
- package/dist/docs-kit/messages.d.ts +25 -0
- package/dist/docs-kit/messages.js +30 -0
- package/dist/docs-kit/messages.js.map +1 -0
- package/dist/feedback/Alert.d.ts +83 -0
- package/dist/feedback/Alert.js +179 -0
- package/dist/feedback/Alert.js.map +1 -0
- package/dist/feedback/Banner.d.ts +60 -0
- package/dist/feedback/Banner.js +122 -0
- package/dist/feedback/Banner.js.map +1 -0
- package/dist/feedback/Empty.d.ts +38 -0
- package/dist/feedback/Empty.js +114 -0
- package/dist/feedback/Empty.js.map +1 -0
- package/dist/feedback/LoadingBar.d.ts +45 -0
- package/dist/feedback/LoadingBar.js +124 -0
- package/dist/feedback/LoadingBar.js.map +1 -0
- package/dist/feedback/LoadingOverlay.d.ts +29 -0
- package/dist/feedback/LoadingOverlay.js +70 -0
- package/dist/feedback/LoadingOverlay.js.map +1 -0
- package/dist/feedback/Progress.d.ts +215 -0
- package/dist/feedback/Progress.js +437 -0
- package/dist/feedback/Progress.js.map +1 -0
- package/dist/feedback/Result.d.ts +69 -0
- package/dist/feedback/Result.js +165 -0
- package/dist/feedback/Result.js.map +1 -0
- package/dist/feedback/Skeleton.d.ts +50 -0
- package/dist/feedback/Skeleton.js +100 -0
- package/dist/feedback/Skeleton.js.map +1 -0
- package/dist/feedback/SkeletonText.d.ts +25 -0
- package/dist/feedback/SkeletonText.js +40 -0
- package/dist/feedback/SkeletonText.js.map +1 -0
- package/dist/feedback/Toast.d.ts +204 -0
- package/dist/feedback/Toast.js +572 -0
- package/dist/feedback/Toast.js.map +1 -0
- package/dist/form/Field.d.ts +165 -0
- package/dist/form/Field.js +338 -0
- package/dist/form/Field.js.map +1 -0
- package/dist/form/Form.d.ts +14 -0
- package/dist/form/Form.js +66 -0
- package/dist/form/Form.js.map +1 -0
- package/dist/form/FormErrorSummary.d.ts +23 -0
- package/dist/form/FormErrorSummary.js +102 -0
- package/dist/form/FormErrorSummary.js.map +1 -0
- package/dist/form/FormSection.d.ts +66 -0
- package/dist/form/FormSection.js +227 -0
- package/dist/form/FormSection.js.map +1 -0
- package/dist/form/FormValue.d.ts +17 -0
- package/dist/form/FormValue.js +40 -0
- package/dist/form/FormValue.js.map +1 -0
- package/dist/form/field-layout.d.ts +34 -0
- package/dist/form/field-layout.js +39 -0
- package/dist/form/field-layout.js.map +1 -0
- package/dist/form/form-constraints.d.ts +38 -0
- package/dist/form/form-constraints.js +131 -0
- package/dist/form/form-constraints.js.map +1 -0
- package/dist/form/leave-confirmation.d.ts +9 -0
- package/dist/form/leave-confirmation.js +31 -0
- package/dist/form/leave-confirmation.js.map +1 -0
- package/dist/form/schemas.d.ts +52 -0
- package/dist/form/schemas.js +97 -0
- package/dist/form/schemas.js.map +1 -0
- package/dist/form/useForm.d.ts +195 -0
- package/dist/form/useForm.js +416 -0
- package/dist/form/useForm.js.map +1 -0
- package/dist/index.d.ts +285 -0
- package/dist/index.js +285 -0
- package/dist/input/Autocomplete.d.ts +14 -0
- package/dist/input/Autocomplete.js +35 -0
- package/dist/input/Autocomplete.js.map +1 -0
- package/dist/input/Cascader.d.ts +86 -0
- package/dist/input/Cascader.js +593 -0
- package/dist/input/Cascader.js.map +1 -0
- package/dist/input/CharacterCount.d.ts +21 -0
- package/dist/input/CharacterCount.js +47 -0
- package/dist/input/CharacterCount.js.map +1 -0
- package/dist/input/Checkbox.d.ts +93 -0
- package/dist/input/Checkbox.js +250 -0
- package/dist/input/Checkbox.js.map +1 -0
- package/dist/input/ColorField.d.ts +37 -0
- package/dist/input/ColorField.js +143 -0
- package/dist/input/ColorField.js.map +1 -0
- package/dist/input/Combobox.d.ts +75 -0
- package/dist/input/Combobox.js +321 -0
- package/dist/input/Combobox.js.map +1 -0
- package/dist/input/ConditionBuilder.d.ts +55 -0
- package/dist/input/ConditionBuilder.js +471 -0
- package/dist/input/ConditionBuilder.js.map +1 -0
- package/dist/input/ControlGroup.d.ts +26 -0
- package/dist/input/ControlGroup.js +50 -0
- package/dist/input/ControlGroup.js.map +1 -0
- package/dist/input/FileDrop.d.ts +49 -0
- package/dist/input/FileDrop.js +201 -0
- package/dist/input/FileDrop.js.map +1 -0
- package/dist/input/ListPopover.d.ts +39 -0
- package/dist/input/ListPopover.js +81 -0
- package/dist/input/ListPopover.js.map +1 -0
- package/dist/input/Listbox.d.ts +91 -0
- package/dist/input/Listbox.js +408 -0
- package/dist/input/Listbox.js.map +1 -0
- package/dist/input/Mentions.d.ts +74 -0
- package/dist/input/Mentions.js +287 -0
- package/dist/input/Mentions.js.map +1 -0
- package/dist/input/NumberField.d.ts +64 -0
- package/dist/input/NumberField.js +288 -0
- package/dist/input/NumberField.js.map +1 -0
- package/dist/input/NumberRangeField.d.ts +58 -0
- package/dist/input/NumberRangeField.js +157 -0
- package/dist/input/NumberRangeField.js.map +1 -0
- package/dist/input/OtpField.d.ts +58 -0
- package/dist/input/OtpField.js +200 -0
- package/dist/input/OtpField.js.map +1 -0
- package/dist/input/PeoplePicker.d.ts +42 -0
- package/dist/input/PeoplePicker.js +185 -0
- package/dist/input/PeoplePicker.js.map +1 -0
- package/dist/input/PeoplePickerPanel.d.ts +42 -0
- package/dist/input/PeoplePickerPanel.js +357 -0
- package/dist/input/PeoplePickerPanel.js.map +1 -0
- package/dist/input/Radio.d.ts +90 -0
- package/dist/input/Radio.js +211 -0
- package/dist/input/Radio.js.map +1 -0
- package/dist/input/Rating.d.ts +62 -0
- package/dist/input/Rating.js +225 -0
- package/dist/input/Rating.js.map +1 -0
- package/dist/input/Select.d.ts +97 -0
- package/dist/input/Select.js +455 -0
- package/dist/input/Select.js.map +1 -0
- package/dist/input/SelectedTags.d.ts +28 -0
- package/dist/input/SelectedTags.js +81 -0
- package/dist/input/SelectedTags.js.map +1 -0
- package/dist/input/Slider.d.ts +99 -0
- package/dist/input/Slider.js +343 -0
- package/dist/input/Slider.js.map +1 -0
- package/dist/input/Switch.d.ts +63 -0
- package/dist/input/Switch.js +198 -0
- package/dist/input/Switch.js.map +1 -0
- package/dist/input/TagsInput.d.ts +70 -0
- package/dist/input/TagsInput.js +314 -0
- package/dist/input/TagsInput.js.map +1 -0
- package/dist/input/TextField.d.ts +51 -0
- package/dist/input/TextField.js +185 -0
- package/dist/input/TextField.js.map +1 -0
- package/dist/input/Textarea.d.ts +50 -0
- package/dist/input/Textarea.js +146 -0
- package/dist/input/Textarea.js.map +1 -0
- package/dist/input/ToggleGroup.d.ts +82 -0
- package/dist/input/ToggleGroup.js +211 -0
- package/dist/input/ToggleGroup.js.map +1 -0
- package/dist/input/Transfer.d.ts +67 -0
- package/dist/input/Transfer.js +407 -0
- package/dist/input/Transfer.js.map +1 -0
- package/dist/input/TreeSelect.d.ts +94 -0
- package/dist/input/TreeSelect.js +412 -0
- package/dist/input/TreeSelect.js.map +1 -0
- package/dist/input/Upload.d.ts +143 -0
- package/dist/input/Upload.js +598 -0
- package/dist/input/Upload.js.map +1 -0
- package/dist/input/choice-styles.d.ts +117 -0
- package/dist/input/choice-styles.js +176 -0
- package/dist/input/choice-styles.js.map +1 -0
- package/dist/input/condition.d.ts +153 -0
- package/dist/input/condition.js +187 -0
- package/dist/input/condition.js.map +1 -0
- package/dist/input/control.d.ts +160 -0
- package/dist/input/control.js +236 -0
- package/dist/input/control.js.map +1 -0
- package/dist/input/list-state.d.ts +118 -0
- package/dist/input/list-state.js +186 -0
- package/dist/input/list-state.js.map +1 -0
- package/dist/input/people.d.ts +66 -0
- package/dist/input/people.js +47 -0
- package/dist/input/people.js.map +1 -0
- package/dist/input/remote-items.d.ts +22 -0
- package/dist/input/remote-items.js +41 -0
- package/dist/input/remote-items.js.map +1 -0
- package/dist/input/text-format.d.ts +46 -0
- package/dist/input/text-format.js +64 -0
- package/dist/input/text-format.js.map +1 -0
- package/dist/layout/Affix.d.ts +32 -0
- package/dist/layout/Affix.js +81 -0
- package/dist/layout/Affix.js.map +1 -0
- package/dist/layout/AsideLayout.d.ts +45 -0
- package/dist/layout/AsideLayout.js +69 -0
- package/dist/layout/AsideLayout.js.map +1 -0
- package/dist/layout/BackTop.d.ts +16 -0
- package/dist/layout/BackTop.js +83 -0
- package/dist/layout/BackTop.js.map +1 -0
- package/dist/layout/Container.d.ts +60 -0
- package/dist/layout/Container.js +62 -0
- package/dist/layout/Container.js.map +1 -0
- package/dist/layout/Flex.d.ts +116 -0
- package/dist/layout/Flex.js +109 -0
- package/dist/layout/Flex.js.map +1 -0
- package/dist/layout/Grid.d.ts +139 -0
- package/dist/layout/Grid.js +168 -0
- package/dist/layout/Grid.js.map +1 -0
- package/dist/layout/PageScrollbar.d.ts +20 -0
- package/dist/layout/PageScrollbar.js +49 -0
- package/dist/layout/PageScrollbar.js.map +1 -0
- package/dist/layout/Prose.d.ts +19 -0
- package/dist/layout/Prose.js +37 -0
- package/dist/layout/Prose.js.map +1 -0
- package/dist/layout/ResizeHandle.d.ts +28 -0
- package/dist/layout/ResizeHandle.js +94 -0
- package/dist/layout/ResizeHandle.js.map +1 -0
- package/dist/layout/ScrollArea.d.ts +99 -0
- package/dist/layout/ScrollArea.js +344 -0
- package/dist/layout/ScrollArea.js.map +1 -0
- package/dist/layout/Separator.d.ts +47 -0
- package/dist/layout/Separator.js +96 -0
- package/dist/layout/Separator.js.map +1 -0
- package/dist/layout/Splitter.d.ts +75 -0
- package/dist/layout/Splitter.js +236 -0
- package/dist/layout/Splitter.js.map +1 -0
- package/dist/layout/ViewportFill.d.ts +26 -0
- package/dist/layout/ViewportFill.js +59 -0
- package/dist/layout/ViewportFill.js.map +1 -0
- package/dist/navigation/Breadcrumbs.d.ts +59 -0
- package/dist/navigation/Breadcrumbs.js +150 -0
- package/dist/navigation/Breadcrumbs.js.map +1 -0
- package/dist/navigation/NavBar.d.ts +35 -0
- package/dist/navigation/NavBar.js +182 -0
- package/dist/navigation/NavBar.js.map +1 -0
- package/dist/navigation/NavList.d.ts +112 -0
- package/dist/navigation/NavList.js +375 -0
- package/dist/navigation/NavList.js.map +1 -0
- package/dist/navigation/PageJump.d.ts +27 -0
- package/dist/navigation/PageJump.js +77 -0
- package/dist/navigation/PageJump.js.map +1 -0
- package/dist/navigation/PageSizeSelect.d.ts +19 -0
- package/dist/navigation/PageSizeSelect.js +65 -0
- package/dist/navigation/PageSizeSelect.js.map +1 -0
- package/dist/navigation/Pager.d.ts +30 -0
- package/dist/navigation/Pager.js +111 -0
- package/dist/navigation/Pager.js.map +1 -0
- package/dist/navigation/Pagination.d.ts +51 -0
- package/dist/navigation/Pagination.js +157 -0
- package/dist/navigation/Pagination.js.map +1 -0
- package/dist/navigation/PaginationBar.d.ts +54 -0
- package/dist/navigation/PaginationBar.js +125 -0
- package/dist/navigation/PaginationBar.js.map +1 -0
- package/dist/navigation/SkipLink.d.ts +16 -0
- package/dist/navigation/SkipLink.js +58 -0
- package/dist/navigation/SkipLink.js.map +1 -0
- package/dist/navigation/Steps.d.ts +93 -0
- package/dist/navigation/Steps.js +198 -0
- package/dist/navigation/Steps.js.map +1 -0
- package/dist/navigation/TableOfContents.d.ts +32 -0
- package/dist/navigation/TableOfContents.js +119 -0
- package/dist/navigation/TableOfContents.js.map +1 -0
- package/dist/navigation/Tabs.d.ts +208 -0
- package/dist/navigation/Tabs.js +626 -0
- package/dist/navigation/Tabs.js.map +1 -0
- package/dist/navigation/Toolbar.d.ts +39 -0
- package/dist/navigation/Toolbar.js +67 -0
- package/dist/navigation/Toolbar.js.map +1 -0
- package/dist/overlay/AlertDialog.d.ts +43 -0
- package/dist/overlay/AlertDialog.js +106 -0
- package/dist/overlay/AlertDialog.js.map +1 -0
- package/dist/overlay/CommandPalette.d.ts +64 -0
- package/dist/overlay/CommandPalette.js +250 -0
- package/dist/overlay/CommandPalette.js.map +1 -0
- package/dist/overlay/ContextMenu.d.ts +21 -0
- package/dist/overlay/ContextMenu.js +76 -0
- package/dist/overlay/ContextMenu.js.map +1 -0
- package/dist/overlay/Dialog.d.ts +70 -0
- package/dist/overlay/Dialog.js +91 -0
- package/dist/overlay/Dialog.js.map +1 -0
- package/dist/overlay/Drawer.d.ts +186 -0
- package/dist/overlay/Drawer.js +214 -0
- package/dist/overlay/Drawer.js.map +1 -0
- package/dist/overlay/HoverCard.d.ts +48 -0
- package/dist/overlay/HoverCard.js +86 -0
- package/dist/overlay/HoverCard.js.map +1 -0
- package/dist/overlay/Lightbox.d.ts +57 -0
- package/dist/overlay/Lightbox.js +374 -0
- package/dist/overlay/Lightbox.js.map +1 -0
- package/dist/overlay/Menu.d.ts +218 -0
- package/dist/overlay/Menu.js +816 -0
- package/dist/overlay/Menu.js.map +1 -0
- package/dist/overlay/ModalCore.d.ts +132 -0
- package/dist/overlay/ModalCore.js +274 -0
- package/dist/overlay/ModalCore.js.map +1 -0
- package/dist/overlay/Popconfirm.d.ts +49 -0
- package/dist/overlay/Popconfirm.js +167 -0
- package/dist/overlay/Popconfirm.js.map +1 -0
- package/dist/overlay/Popover.d.ts +40 -0
- package/dist/overlay/Popover.js +96 -0
- package/dist/overlay/Popover.js.map +1 -0
- package/dist/overlay/Tooltip.d.ts +47 -0
- package/dist/overlay/Tooltip.js +86 -0
- package/dist/overlay/Tooltip.js.map +1 -0
- package/dist/overlay/Tour.d.ts +74 -0
- package/dist/overlay/Tour.js +309 -0
- package/dist/overlay/Tour.js.map +1 -0
- package/dist/overlay/detached.d.ts +40 -0
- package/dist/overlay/detached.js +109 -0
- package/dist/overlay/detached.js.map +1 -0
- package/dist/patterns/ActionBar.d.ts +29 -0
- package/dist/patterns/ActionBar.js +75 -0
- package/dist/patterns/ActionBar.js.map +1 -0
- package/dist/patterns/AppShell.d.ts +168 -0
- package/dist/patterns/AppShell.js +620 -0
- package/dist/patterns/AppShell.js.map +1 -0
- package/dist/patterns/CommentThread.d.ts +128 -0
- package/dist/patterns/CommentThread.js +386 -0
- package/dist/patterns/CommentThread.js.map +1 -0
- package/dist/patterns/DataImport.d.ts +72 -0
- package/dist/patterns/DataImport.js +486 -0
- package/dist/patterns/DataImport.js.map +1 -0
- package/dist/patterns/DeadlineBadge.d.ts +21 -0
- package/dist/patterns/DeadlineBadge.js +76 -0
- package/dist/patterns/DeadlineBadge.js.map +1 -0
- package/dist/patterns/FilterBar.d.ts +66 -0
- package/dist/patterns/FilterBar.js +254 -0
- package/dist/patterns/FilterBar.js.map +1 -0
- package/dist/patterns/KanbanBoard.d.ts +79 -0
- package/dist/patterns/KanbanBoard.js +294 -0
- package/dist/patterns/KanbanBoard.js.map +1 -0
- package/dist/patterns/NotificationCenter.d.ts +110 -0
- package/dist/patterns/NotificationCenter.js +342 -0
- package/dist/patterns/NotificationCenter.js.map +1 -0
- package/dist/patterns/PageTabs.d.ts +30 -0
- package/dist/patterns/PageTabs.js +97 -0
- package/dist/patterns/PageTabs.js.map +1 -0
- package/dist/patterns/QueryTable.d.ts +67 -0
- package/dist/patterns/QueryTable.js +301 -0
- package/dist/patterns/QueryTable.js.map +1 -0
- package/dist/patterns/StepsForm.d.ts +49 -0
- package/dist/patterns/StepsForm.js +130 -0
- package/dist/patterns/StepsForm.js.map +1 -0
- package/dist/patterns/ThemeSwitcher.d.ts +20 -0
- package/dist/patterns/ThemeSwitcher.js +102 -0
- package/dist/patterns/ThemeSwitcher.js.map +1 -0
- package/dist/patterns/form-dialog.d.ts +62 -0
- package/dist/patterns/form-dialog.js +143 -0
- package/dist/patterns/form-dialog.js.map +1 -0
- package/dist/patterns/index.d.ts +24 -0
- package/dist/patterns/index.js +15 -0
- package/dist/patterns/messages.d.ts +174 -0
- package/dist/patterns/messages.js +186 -0
- package/dist/patterns/messages.js.map +1 -0
- package/dist/table/ColumnHeaderActions.d.ts +71 -0
- package/dist/table/ColumnHeaderActions.js +247 -0
- package/dist/table/ColumnHeaderActions.js.map +1 -0
- package/dist/table/ColumnResizer.d.ts +12 -0
- package/dist/table/ColumnResizer.js +32 -0
- package/dist/table/ColumnResizer.js.map +1 -0
- package/dist/table/ColumnSettings.d.ts +34 -0
- package/dist/table/ColumnSettings.js +136 -0
- package/dist/table/ColumnSettings.js.map +1 -0
- package/dist/table/ColumnTable.d.ts +51 -0
- package/dist/table/ColumnTable.js +140 -0
- package/dist/table/ColumnTable.js.map +1 -0
- package/dist/table/DataTable.d.ts +44 -0
- package/dist/table/DataTable.js +453 -0
- package/dist/table/DataTable.js.map +1 -0
- package/dist/table/DataTableView.d.ts +328 -0
- package/dist/table/DataTableView.js +963 -0
- package/dist/table/DataTableView.js.map +1 -0
- package/dist/table/PivotTable.d.ts +66 -0
- package/dist/table/PivotTable.js +122 -0
- package/dist/table/PivotTable.js.map +1 -0
- package/dist/table/SelectionBar.d.ts +29 -0
- package/dist/table/SelectionBar.js +86 -0
- package/dist/table/SelectionBar.js.map +1 -0
- package/dist/table/Table.d.ts +169 -0
- package/dist/table/Table.js +304 -0
- package/dist/table/Table.js.map +1 -0
- package/dist/table/TreeDataTable.d.ts +36 -0
- package/dist/table/TreeDataTable.js +168 -0
- package/dist/table/TreeDataTable.js.map +1 -0
- package/dist/table/column-display.d.ts +20 -0
- package/dist/table/column-display.js +43 -0
- package/dist/table/column-display.js.map +1 -0
- package/dist/table/columns.d.ts +244 -0
- package/dist/table/columns.js +271 -0
- package/dist/table/columns.js.map +1 -0
- package/dist/table/csv.d.ts +24 -0
- package/dist/table/csv.js +35 -0
- package/dist/table/csv.js.map +1 -0
- package/dist/table/pivot.d.ts +66 -0
- package/dist/table/pivot.js +85 -0
- package/dist/table/pivot.js.map +1 -0
- package/dist/table/sheet.d.ts +44 -0
- package/dist/table/sheet.js +78 -0
- package/dist/table/sheet.js.map +1 -0
- package/dist/table/table-styles.d.ts +136 -0
- package/dist/table/table-styles.js +403 -0
- package/dist/table/table-styles.js.map +1 -0
- package/dist/table/use-table-query.d.ts +89 -0
- package/dist/table/use-table-query.js +194 -0
- package/dist/table/use-table-query.js.map +1 -0
- package/dist/theme-customize/ThemeCustomizer.d.ts +63 -0
- package/dist/theme-customize/ThemeCustomizer.js +361 -0
- package/dist/theme-customize/ThemeCustomizer.js.map +1 -0
- package/dist/theme-customize/ThemeThumbnail.d.ts +20 -0
- package/dist/theme-customize/ThemeThumbnail.js +82 -0
- package/dist/theme-customize/ThemeThumbnail.js.map +1 -0
- package/dist/theme-customize/contrast.d.ts +27 -0
- package/dist/theme-customize/contrast.js +251 -0
- package/dist/theme-customize/contrast.js.map +1 -0
- package/dist/theme-customize/customize.d.ts +65 -0
- package/dist/theme-customize/customize.js +105 -0
- package/dist/theme-customize/customize.js.map +1 -0
- package/dist/theme-customize/design-tokens.d.ts +31 -0
- package/dist/theme-customize/design-tokens.js +183 -0
- package/dist/theme-customize/design-tokens.js.map +1 -0
- package/dist/theme-customize/index.d.ts +20 -0
- package/dist/theme-customize/index.js +9 -0
- package/dist/theme-customize/messages.d.ts +74 -0
- package/dist/theme-customize/messages.js +142 -0
- package/dist/theme-customize/messages.js.map +1 -0
- package/dist/theme-customize/palette.d.ts +898 -0
- package/dist/theme-customize/palette.js +111 -0
- package/dist/theme-customize/palette.js.map +1 -0
- package/dist/theme-customize/token-catalog.d.ts +20 -0
- package/dist/theme-customize/token-catalog.js +836 -0
- package/dist/theme-customize/token-catalog.js.map +1 -0
- package/dist/three/background/AuroraBackground.d.ts +30 -0
- package/dist/three/background/AuroraBackground.js +80 -0
- package/dist/three/background/AuroraBackground.js.map +1 -0
- package/dist/three/background/MeshGradient.d.ts +28 -0
- package/dist/three/background/MeshGradient.js +76 -0
- package/dist/three/background/MeshGradient.js.map +1 -0
- package/dist/three/background/ShaderBackground.d.ts +25 -0
- package/dist/three/background/ShaderBackground.js +107 -0
- package/dist/three/background/ShaderBackground.js.map +1 -0
- package/dist/three/core/EffectSurface.d.ts +41 -0
- package/dist/three/core/EffectSurface.js +62 -0
- package/dist/three/core/EffectSurface.js.map +1 -0
- package/dist/three/core/ThreeCanvas.d.ts +39 -0
- package/dist/three/core/ThreeCanvas.js +77 -0
- package/dist/three/core/ThreeCanvas.js.map +1 -0
- package/dist/three/core/dispose.d.ts +9 -0
- package/dist/three/core/dispose.js +26 -0
- package/dist/three/core/dispose.js.map +1 -0
- package/dist/three/core/orbit.d.ts +31 -0
- package/dist/three/core/orbit.js +83 -0
- package/dist/three/core/orbit.js.map +1 -0
- package/dist/three/core/quality.d.ts +59 -0
- package/dist/three/core/quality.js +80 -0
- package/dist/three/core/quality.js.map +1 -0
- package/dist/three/core/renderer.d.ts +110 -0
- package/dist/three/core/renderer.js +303 -0
- package/dist/three/core/renderer.js.map +1 -0
- package/dist/three/core/shaders.d.ts +19 -0
- package/dist/three/core/shaders.js +100 -0
- package/dist/three/core/shaders.js.map +1 -0
- package/dist/three/core/theme-colors.d.ts +30 -0
- package/dist/three/core/theme-colors.js +113 -0
- package/dist/three/core/theme-colors.js.map +1 -0
- package/dist/three/effects/Confetti.d.ts +62 -0
- package/dist/three/effects/Confetti.js +242 -0
- package/dist/three/effects/Confetti.js.map +1 -0
- package/dist/three/effects/ParticleField.d.ts +39 -0
- package/dist/three/effects/ParticleField.js +266 -0
- package/dist/three/effects/ParticleField.js.map +1 -0
- package/dist/three/effects/WaveGrid.d.ts +37 -0
- package/dist/three/effects/WaveGrid.js +130 -0
- package/dist/three/effects/WaveGrid.js.map +1 -0
- package/dist/three/globe/Globe.d.ts +70 -0
- package/dist/three/globe/Globe.js +337 -0
- package/dist/three/globe/Globe.js.map +1 -0
- package/dist/three/globe/land.d.ts +9 -0
- package/dist/three/globe/land.js +14 -0
- package/dist/three/globe/land.js.map +1 -0
- package/dist/three/index.d.ts +24 -0
- package/dist/three/index.js +18 -0
- package/dist/three/model/ModelViewer.d.ts +63 -0
- package/dist/three/model/ModelViewer.js +193 -0
- package/dist/three/model/ModelViewer.js.map +1 -0
- package/dist/utils/data/clone.d.ts +8 -0
- package/dist/utils/data/clone.js +21 -0
- package/dist/utils/data/clone.js.map +1 -0
- package/dist/utils/data/collation.d.ts +36 -0
- package/dist/utils/data/collation.js +69 -0
- package/dist/utils/data/collation.js.map +1 -0
- package/dist/utils/data/color.d.ts +32 -0
- package/dist/utils/data/color.js +90 -0
- package/dist/utils/data/color.js.map +1 -0
- package/dist/utils/data/date.d.ts +196 -0
- package/dist/utils/data/date.js +421 -0
- package/dist/utils/data/date.js.map +1 -0
- package/dist/utils/data/diff.d.ts +21 -0
- package/dist/utils/data/diff.js +43 -0
- package/dist/utils/data/diff.js.map +1 -0
- package/dist/utils/data/equality.d.ts +5 -0
- package/dist/utils/data/equality.js +24 -0
- package/dist/utils/data/equality.js.map +1 -0
- package/dist/utils/data/history.d.ts +59 -0
- package/dist/utils/data/history.js +132 -0
- package/dist/utils/data/history.js.map +1 -0
- package/dist/utils/data/intl-cache.d.ts +8 -0
- package/dist/utils/data/intl-cache.js +19 -0
- package/dist/utils/data/intl-cache.js.map +1 -0
- package/dist/utils/data/number-parse.d.ts +7 -0
- package/dist/utils/data/number-parse.js +45 -0
- package/dist/utils/data/number-parse.js.map +1 -0
- package/dist/utils/data/number.d.ts +10 -0
- package/dist/utils/data/number.js +28 -0
- package/dist/utils/data/number.js.map +1 -0
- package/dist/utils/data/numeric.d.ts +62 -0
- package/dist/utils/data/numeric.js +178 -0
- package/dist/utils/data/numeric.js.map +1 -0
- package/dist/utils/data/pagination.d.ts +21 -0
- package/dist/utils/data/pagination.js +22 -0
- package/dist/utils/data/pagination.js.map +1 -0
- package/dist/utils/data/selection.d.ts +41 -0
- package/dist/utils/data/selection.js +21 -0
- package/dist/utils/data/selection.js.map +1 -0
- package/dist/utils/data/status.d.ts +43 -0
- package/dist/utils/data/status.js +27 -0
- package/dist/utils/data/status.js.map +1 -0
- package/dist/utils/data/text.d.ts +12 -0
- package/dist/utils/data/text.js +30 -0
- package/dist/utils/data/text.js.map +1 -0
- package/dist/utils/data/tree.d.ts +140 -0
- package/dist/utils/data/tree.js +273 -0
- package/dist/utils/data/tree.js.map +1 -0
- package/dist/utils/data/workdays.d.ts +67 -0
- package/dist/utils/data/workdays.js +67 -0
- package/dist/utils/data/workdays.js.map +1 -0
- package/dist/utils/dom/announcer.d.ts +11 -0
- package/dist/utils/dom/announcer.js +53 -0
- package/dist/utils/dom/announcer.js.map +1 -0
- package/dist/utils/dom/caret.d.ts +14 -0
- package/dist/utils/dom/caret.js +72 -0
- package/dist/utils/dom/caret.js.map +1 -0
- package/dist/utils/dom/clipboard.d.ts +16 -0
- package/dist/utils/dom/clipboard.js +66 -0
- package/dist/utils/dom/clipboard.js.map +1 -0
- package/dist/utils/dom/direction.d.ts +12 -0
- package/dist/utils/dom/direction.js +20 -0
- package/dist/utils/dom/direction.js.map +1 -0
- package/dist/utils/dom/download.d.ts +14 -0
- package/dist/utils/dom/download.js +36 -0
- package/dist/utils/dom/download.js.map +1 -0
- package/dist/utils/dom/element.d.ts +3 -0
- package/dist/utils/dom/element.js +12 -0
- package/dist/utils/dom/element.js.map +1 -0
- package/dist/utils/dom/event-listener.d.ts +8 -0
- package/dist/utils/dom/event-listener.js +35 -0
- package/dist/utils/dom/event-listener.js.map +1 -0
- package/dist/utils/dom/floating.d.ts +149 -0
- package/dist/utils/dom/floating.js +262 -0
- package/dist/utils/dom/floating.js.map +1 -0
- package/dist/utils/dom/focus.d.ts +28 -0
- package/dist/utils/dom/focus.js +105 -0
- package/dist/utils/dom/focus.js.map +1 -0
- package/dist/utils/dom/fullscreen.d.ts +11 -0
- package/dist/utils/dom/fullscreen.js +43 -0
- package/dist/utils/dom/fullscreen.js.map +1 -0
- package/dist/utils/dom/hotkeys.d.ts +43 -0
- package/dist/utils/dom/hotkeys.js +174 -0
- package/dist/utils/dom/hotkeys.js.map +1 -0
- package/dist/utils/dom/hover-intent.d.ts +47 -0
- package/dist/utils/dom/hover-intent.js +72 -0
- package/dist/utils/dom/hover-intent.js.map +1 -0
- package/dist/utils/dom/hover-layer.d.ts +36 -0
- package/dist/utils/dom/hover-layer.js +74 -0
- package/dist/utils/dom/hover-layer.js.map +1 -0
- package/dist/utils/dom/intersection.d.ts +13 -0
- package/dist/utils/dom/intersection.js +36 -0
- package/dist/utils/dom/intersection.js.map +1 -0
- package/dist/utils/dom/layout-batch.d.ts +14 -0
- package/dist/utils/dom/layout-batch.js +26 -0
- package/dist/utils/dom/layout-batch.js.map +1 -0
- package/dist/utils/dom/link.d.ts +18 -0
- package/dist/utils/dom/link.js +44 -0
- package/dist/utils/dom/link.js.map +1 -0
- package/dist/utils/dom/media-query.d.ts +18 -0
- package/dist/utils/dom/media-query.js +36 -0
- package/dist/utils/dom/media-query.js.map +1 -0
- package/dist/utils/dom/move.d.ts +47 -0
- package/dist/utils/dom/move.js +69 -0
- package/dist/utils/dom/move.js.map +1 -0
- package/dist/utils/dom/open-change.d.ts +51 -0
- package/dist/utils/dom/open-change.js +21 -0
- package/dist/utils/dom/open-change.js.map +1 -0
- package/dist/utils/dom/overflow.d.ts +29 -0
- package/dist/utils/dom/overflow.js +108 -0
- package/dist/utils/dom/overflow.js.map +1 -0
- package/dist/utils/dom/overlay.d.ts +35 -0
- package/dist/utils/dom/overlay.js +104 -0
- package/dist/utils/dom/overlay.js.map +1 -0
- package/dist/utils/dom/page-visibility.d.ts +10 -0
- package/dist/utils/dom/page-visibility.js +22 -0
- package/dist/utils/dom/page-visibility.js.map +1 -0
- package/dist/utils/dom/pan-zoom.d.ts +109 -0
- package/dist/utils/dom/pan-zoom.js +257 -0
- package/dist/utils/dom/pan-zoom.js.map +1 -0
- package/dist/utils/dom/rasterize.d.ts +18 -0
- package/dist/utils/dom/rasterize.js +41 -0
- package/dist/utils/dom/rasterize.js.map +1 -0
- package/dist/utils/dom/resize.d.ts +4 -0
- package/dist/utils/dom/resize.js +65 -0
- package/dist/utils/dom/resize.js.map +1 -0
- package/dist/utils/dom/ripple.d.ts +40 -0
- package/dist/utils/dom/ripple.js +96 -0
- package/dist/utils/dom/ripple.js.map +1 -0
- package/dist/utils/dom/roving-focus.d.ts +44 -0
- package/dist/utils/dom/roving-focus.js +184 -0
- package/dist/utils/dom/roving-focus.js.map +1 -0
- package/dist/utils/dom/scroll-spy.d.ts +30 -0
- package/dist/utils/dom/scroll-spy.js +55 -0
- package/dist/utils/dom/scroll-spy.js.map +1 -0
- package/dist/utils/dom/sortable.d.ts +82 -0
- package/dist/utils/dom/sortable.js +437 -0
- package/dist/utils/dom/sortable.js.map +1 -0
- package/dist/utils/dom/storage.d.ts +21 -0
- package/dist/utils/dom/storage.js +66 -0
- package/dist/utils/dom/storage.js.map +1 -0
- package/dist/utils/dom/typeahead.d.ts +15 -0
- package/dist/utils/dom/typeahead.js +26 -0
- package/dist/utils/dom/typeahead.js.map +1 -0
- package/dist/utils/motion/active-indicator.d.ts +24 -0
- package/dist/utils/motion/active-indicator.js +58 -0
- package/dist/utils/motion/active-indicator.js.map +1 -0
- package/dist/utils/motion/animation.d.ts +58 -0
- package/dist/utils/motion/animation.js +83 -0
- package/dist/utils/motion/animation.js.map +1 -0
- package/dist/utils/motion/delayed-loading.d.ts +18 -0
- package/dist/utils/motion/delayed-loading.js +38 -0
- package/dist/utils/motion/delayed-loading.js.map +1 -0
- package/dist/utils/motion/layout.d.ts +17 -0
- package/dist/utils/motion/layout.js +43 -0
- package/dist/utils/motion/layout.js.map +1 -0
- package/dist/utils/motion/pointer.d.ts +14 -0
- package/dist/utils/motion/pointer.js +72 -0
- package/dist/utils/motion/pointer.js.map +1 -0
- package/dist/utils/motion/presence.d.ts +57 -0
- package/dist/utils/motion/presence.js +100 -0
- package/dist/utils/motion/presence.js.map +1 -0
- package/dist/utils/motion/reveal.d.ts +9 -0
- package/dist/utils/motion/reveal.js +68 -0
- package/dist/utils/motion/reveal.js.map +1 -0
- package/dist/utils/motion/tween.d.ts +34 -0
- package/dist/utils/motion/tween.js +50 -0
- package/dist/utils/motion/tween.js.map +1 -0
- package/dist/utils/props.d.ts +84 -0
- package/dist/utils/props.js +189 -0
- package/dist/utils/props.js.map +1 -0
- package/dist/utils/request/error-message.d.ts +17 -0
- package/dist/utils/request/error-message.js +50 -0
- package/dist/utils/request/error-message.js.map +1 -0
- package/dist/utils/request/http.d.ts +165 -0
- package/dist/utils/request/http.js +247 -0
- package/dist/utils/request/http.js.map +1 -0
- package/dist/utils/request/use-autosave.d.ts +35 -0
- package/dist/utils/request/use-autosave.js +69 -0
- package/dist/utils/request/use-autosave.js.map +1 -0
- package/dist/utils/request/use-request.d.ts +37 -0
- package/dist/utils/request/use-request.js +90 -0
- package/dist/utils/request/use-request.js.map +1 -0
- package/dist/utils/request/wire.d.ts +48 -0
- package/dist/utils/request/wire.js +208 -0
- package/dist/utils/request/wire.js.map +1 -0
- package/dist/utils/style/attached.d.ts +25 -0
- package/dist/utils/style/attached.js +82 -0
- package/dist/utils/style/attached.js.map +1 -0
- package/dist/utils/style/item-styles.d.ts +18 -0
- package/dist/utils/style/item-styles.js +79 -0
- package/dist/utils/style/item-styles.js.map +1 -0
- package/dist/utils/style/markers.d.ts +6 -0
- package/dist/utils/style/markers.js +11 -0
- package/dist/utils/style/markers.js.map +1 -0
- package/dist/utils/style/shimmer.d.ts +20 -0
- package/dist/utils/style/shimmer.js +58 -0
- package/dist/utils/style/shimmer.js.map +1 -0
- package/dist/utils/style/styles.d.ts +118 -0
- package/dist/utils/style/styles.js +114 -0
- package/dist/utils/style/styles.js.map +1 -0
- package/dist/utils/style/swatch-styles.d.ts +10 -0
- package/dist/utils/style/swatch-styles.js +19 -0
- package/dist/utils/style/swatch-styles.js.map +1 -0
- package/dist/utils/style/tone-styles.d.ts +58 -0
- package/dist/utils/style/tone-styles.js +180 -0
- package/dist/utils/style/tone-styles.js.map +1 -0
- package/dist/utils/style/transitions.d.ts +43 -0
- package/dist/utils/style/transitions.js +118 -0
- package/dist/utils/style/transitions.js.map +1 -0
- package/dist/utils/style/typography.d.ts +155 -0
- package/dist/utils/style/typography.js +80 -0
- package/dist/utils/style/typography.js.map +1 -0
- package/dist/utils/style/vars.d.ts +18 -0
- package/dist/utils/style/vars.js +21 -0
- package/dist/utils/style/vars.js.map +1 -0
- package/dist/utils/virtual/use-virtualizer.d.ts +43 -0
- package/dist/utils/virtual/use-virtualizer.js +94 -0
- package/dist/utils/virtual/use-virtualizer.js.map +1 -0
- package/dist/utils/virtual/virtualizer.d.ts +145 -0
- package/dist/utils/virtual/virtualizer.js +316 -0
- package/dist/utils/virtual/virtualizer.js.map +1 -0
- package/dist/xlsx/index.d.ts +7 -0
- package/dist/xlsx/index.js +1 -0
- package/dist/xlsx/workbook.d.ts +33 -0
- package/dist/xlsx/workbook.js +195 -0
- package/dist/xlsx/workbook.js.map +1 -0
- package/package.json +258 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeahead.js","names":[],"sources":["../../../src/utils/dom/typeahead.ts"],"sourcesContent":["/**\n * 类型搜索(WAI-ARIA 的 type-ahead):在菜单、列表里直接按字母,焦点跳到以它开头的项。\n * 连续输入拼成一个词(“ex” 跳到 Export);间隔超过 timeout 后重新开始;反复按同一个字母在以它开头的项之间轮换。\n * 菜单经 rovingFocus 的 typeahead 选项使用,Listbox、Select 经 useListState 用同一个匹配规则。\n */\n\n/** createTypeahead 返回的搜索器 */\nexport interface Typeahead {\n /**\n * 处理一次按键:key 是 KeyboardEvent.key,labels 是各项的文字,current 是当前项的序号(没有时 -1)。\n * 返回该落到的项的序号;不是可打印字符、或没有匹配时返回 -1\n */\n next(key: string, labels: readonly string[], current: number): number;\n}\n\n/** 生成一个搜索器:每个菜单、列表各用一个,输入缓冲互不干扰 */\nexport function createTypeahead(timeout = 500): Typeahead {\n let query = '';\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n return {\n next(key, labels, current) {\n // 只认单个可打印字符;空格开头时不算(空格是激活键)\n if (!/^.$/su.test(key) || (key === ' ' && !query)) return -1;\n clearTimeout(timer);\n timer = setTimeout(() => (query = ''), timeout);\n query += key.toLocaleLowerCase();\n\n const normalized = labels.map((label) => label.trim().toLocaleLowerCase());\n // 同一个字母反复按:从下一项开始找以它开头的,轮换\n const first = query.slice(0, key.length);\n const repeated = query === first.repeat(query.length / first.length);\n const search = repeated ? first : query;\n const start = repeated ? current + 1 : Math.max(current, 0);\n for (let offset = 0; offset < normalized.length; offset++) {\n const index = (start + offset) % normalized.length;\n if (normalized[index]!.startsWith(search)) return index;\n }\n return -1;\n },\n };\n}\n"],"mappings":";;AAgBA,SAAgB,gBAAgB,UAAU,KAAgB;CACxD,IAAI,QAAQ;CACZ,IAAI;CAEJ,OAAO,EACL,KAAK,KAAK,QAAQ,SAAS;EAEzB,IAAI,CAAC,QAAQ,KAAK,GAAG,KAAM,QAAQ,OAAO,CAAC,OAAQ,OAAO;EAC1D,aAAa,KAAK;EAClB,QAAQ,iBAAkB,QAAQ,IAAK,OAAO;EAC9C,SAAS,IAAI,kBAAkB;EAE/B,MAAM,aAAa,OAAO,KAAK,UAAU,MAAM,KAAK,CAAC,CAAC,kBAAkB,CAAC;EAEzE,MAAM,QAAQ,MAAM,MAAM,GAAG,IAAI,MAAM;EACvC,MAAM,WAAW,UAAU,MAAM,OAAO,MAAM,SAAS,MAAM,MAAM;EACnE,MAAM,SAAS,WAAW,QAAQ;EAClC,MAAM,QAAQ,WAAW,UAAU,IAAI,KAAK,IAAI,SAAS,CAAC;EAC1D,KAAK,IAAI,SAAS,GAAG,SAAS,WAAW,QAAQ,UAAU;GACzD,MAAM,SAAS,QAAQ,UAAU,WAAW;GAC5C,IAAI,WAAW,MAAM,CAAE,WAAW,MAAM,GAAG,OAAO;EACpD;EACA,OAAO;CACT,EACF;AACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** 指示条沿哪个方向跟随 */
|
|
2
|
+
export interface IndicatorAxes {
|
|
3
|
+
/** 横排:写 x 与宽度(下划线) */
|
|
4
|
+
horizontal: unknown;
|
|
5
|
+
/** 竖排:写 y 与高度(竖排的侧边线) */
|
|
6
|
+
vertical: unknown;
|
|
7
|
+
/** 两个方向:写 x、y 与宽高,盖住整个当前项(选中滑块) */
|
|
8
|
+
both: unknown;
|
|
9
|
+
}
|
|
10
|
+
/** useActiveIndicator 每次读取的选项 */
|
|
11
|
+
export interface ActiveIndicatorOptions {
|
|
12
|
+
/** 各项所在的容器(指示条的定位容器);还没挂载时为 null */
|
|
13
|
+
container: HTMLElement | null;
|
|
14
|
+
/** 指示条元素;不显示时为 null */
|
|
15
|
+
indicator: HTMLElement | null;
|
|
16
|
+
/** 在容器里找当前项的选择器 */
|
|
17
|
+
active: string;
|
|
18
|
+
/** 跟随方向 */
|
|
19
|
+
axis: keyof IndicatorAxes;
|
|
20
|
+
/** 当前选中的值:变化时滑到新的当前项 */
|
|
21
|
+
value: unknown;
|
|
22
|
+
}
|
|
23
|
+
/** 指示条跟着当前项(在 setup 里调用) */
|
|
24
|
+
export declare function useActiveIndicator(read: () => ActiveIndicatorOptions): void;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useAnimate } from "./animation.js";
|
|
2
|
+
import { batchLayout } from "../dom/layout-batch.js";
|
|
3
|
+
import { useResizeObserver } from "../dom/resize.js";
|
|
4
|
+
import { onMounted, onScopeDispose, watch } from "vue";
|
|
5
|
+
import { utils } from "animejs";
|
|
6
|
+
//#region src/utils/motion/active-indicator.ts
|
|
7
|
+
/**
|
|
8
|
+
* 跟着当前项走的指示条:Tabs 的下划线、ToggleGroup 的选中滑块。
|
|
9
|
+
*
|
|
10
|
+
* useActiveIndicator(() => ({
|
|
11
|
+
* container: list, indicator, active: '[aria-selected="true"]', axis: 'horizontal', value: tabs.value,
|
|
12
|
+
* }));
|
|
13
|
+
*
|
|
14
|
+
* 量出当前项相对容器的位置写到指示条上(transform 与宽高):value 变化时滑过去(取主题时长),
|
|
15
|
+
* 挂载时与尺寸变化(字体加载、容器变宽)时直接对齐;axis 变了先清掉旧的内联样式。
|
|
16
|
+
* 指示条按当前项的 offsetLeft / offsetTop 定位,容器要是它的定位容器(position: relative)。
|
|
17
|
+
*/
|
|
18
|
+
/** 指示条跟着当前项(在 setup 里调用) */
|
|
19
|
+
function useActiveIndicator(read) {
|
|
20
|
+
const animate = useAnimate();
|
|
21
|
+
function place(animated) {
|
|
22
|
+
batchLayout(() => {
|
|
23
|
+
const { container, indicator, active, axis } = read();
|
|
24
|
+
const item = container?.querySelector(active);
|
|
25
|
+
if (!indicator || !item) return;
|
|
26
|
+
const target = {
|
|
27
|
+
x: axis === "vertical" ? 0 : item.offsetLeft,
|
|
28
|
+
y: axis === "horizontal" ? 0 : item.offsetTop
|
|
29
|
+
};
|
|
30
|
+
if (axis !== "vertical") target.width = item.offsetWidth;
|
|
31
|
+
if (axis !== "horizontal") target.height = item.offsetHeight;
|
|
32
|
+
return () => {
|
|
33
|
+
if (animated) animate(indicator, target);
|
|
34
|
+
else utils.set(indicator, target);
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
onMounted(() => place(false));
|
|
39
|
+
watch(() => read().value, () => place(true), { flush: "post" });
|
|
40
|
+
watch([() => read().axis, () => read().indicator], ([, indicator]) => {
|
|
41
|
+
for (const property of [
|
|
42
|
+
"width",
|
|
43
|
+
"height",
|
|
44
|
+
"transform"
|
|
45
|
+
]) indicator?.style.removeProperty(property);
|
|
46
|
+
place(false);
|
|
47
|
+
}, { flush: "post" });
|
|
48
|
+
let frame = 0;
|
|
49
|
+
useResizeObserver(() => read().container, () => {
|
|
50
|
+
cancelAnimationFrame(frame);
|
|
51
|
+
frame = requestAnimationFrame(() => place(false));
|
|
52
|
+
});
|
|
53
|
+
onScopeDispose(() => cancelAnimationFrame(frame));
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { useActiveIndicator };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=active-indicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-indicator.js","names":[],"sources":["../../../src/utils/motion/active-indicator.ts"],"sourcesContent":["/**\n * 跟着当前项走的指示条:Tabs 的下划线、ToggleGroup 的选中滑块。\n *\n * useActiveIndicator(() => ({\n * container: list, indicator, active: '[aria-selected=\"true\"]', axis: 'horizontal', value: tabs.value,\n * }));\n *\n * 量出当前项相对容器的位置写到指示条上(transform 与宽高):value 变化时滑过去(取主题时长),\n * 挂载时与尺寸变化(字体加载、容器变宽)时直接对齐;axis 变了先清掉旧的内联样式。\n * 指示条按当前项的 offsetLeft / offsetTop 定位,容器要是它的定位容器(position: relative)。\n */\nimport { utils, type AnimationParams } from 'animejs';\nimport { onMounted, onScopeDispose, watch } from 'vue';\nimport { batchLayout } from '../dom/layout-batch';\nimport { useResizeObserver } from '../dom/resize';\nimport { useAnimate } from './animation';\n\n/** 指示条沿哪个方向跟随 */\nexport interface IndicatorAxes {\n /** 横排:写 x 与宽度(下划线) */\n horizontal: unknown;\n /** 竖排:写 y 与高度(竖排的侧边线) */\n vertical: unknown;\n /** 两个方向:写 x、y 与宽高,盖住整个当前项(选中滑块) */\n both: unknown;\n}\n\n/** useActiveIndicator 每次读取的选项 */\nexport interface ActiveIndicatorOptions {\n /** 各项所在的容器(指示条的定位容器);还没挂载时为 null */\n container: HTMLElement | null;\n /** 指示条元素;不显示时为 null */\n indicator: HTMLElement | null;\n /** 在容器里找当前项的选择器 */\n active: string;\n /** 跟随方向 */\n axis: keyof IndicatorAxes;\n /** 当前选中的值:变化时滑到新的当前项 */\n value: unknown;\n}\n\n/** 指示条跟着当前项(在 setup 里调用) */\nexport function useActiveIndicator(read: () => ActiveIndicatorOptions): void {\n const animate = useAnimate();\n\n // 合并到这一轮的先读后写里:一页的标签、分段控件挂载时各量一次,合起来只排一次版\n function place(animated: boolean) {\n batchLayout(() => {\n const { container, indicator, active, axis } = read();\n const item = container?.querySelector<HTMLElement>(active);\n if (!indicator || !item) return;\n const x = axis === 'vertical' ? 0 : item.offsetLeft;\n const y = axis === 'horizontal' ? 0 : item.offsetTop;\n const target: AnimationParams = { x, y };\n if (axis !== 'vertical') target.width = item.offsetWidth;\n if (axis !== 'horizontal') target.height = item.offsetHeight;\n return () => {\n if (animated) void animate(indicator, target);\n else void utils.set(indicator, target);\n };\n });\n }\n\n onMounted(() => place(false));\n watch(\n () => read().value,\n () => place(true),\n { flush: 'post' },\n );\n // 换了方向(或指示条重新渲染):横排时写的宽度、竖排时写的高度不再适用,清掉后重新对齐\n watch(\n // 分开的两个来源:read 里别的字段(如 value)变化时不触发\n [() => read().axis, () => read().indicator],\n ([, indicator]) => {\n for (const property of ['width', 'height', 'transform'])\n indicator?.style.removeProperty(property);\n place(false);\n },\n { flush: 'post' },\n );\n // 各项的位置会随字体加载、容器变宽而变:下一帧直接对齐(不在 ResizeObserver 回调里同步改样式)\n let frame = 0;\n useResizeObserver(\n () => read().container,\n () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => place(false));\n },\n );\n onScopeDispose(() => cancelAnimationFrame(frame));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA0CA,SAAgB,mBAAmB,MAA0C;CAC3E,MAAM,UAAU,WAAW;CAG3B,SAAS,MAAM,UAAmB;EAChC,kBAAkB;GAChB,MAAM,EAAE,WAAW,WAAW,QAAQ,SAAS,KAAK;GACpD,MAAM,OAAO,WAAW,cAA2B,MAAM;GACzD,IAAI,CAAC,aAAa,CAAC,MAAM;GAGzB,MAAM,SAA0B;IAAE,GAFxB,SAAS,aAAa,IAAI,KAAK;IAEJ,GAD3B,SAAS,eAAe,IAAI,KAAK;GACJ;GACvC,IAAI,SAAS,YAAY,OAAO,QAAQ,KAAK;GAC7C,IAAI,SAAS,cAAc,OAAO,SAAS,KAAK;GAChD,aAAa;IACX,IAAI,UAAU,QAAa,WAAW,MAAM;SACvC,MAAW,IAAI,WAAW,MAAM;GACvC;EACF,CAAC;CACH;CAEA,gBAAgB,MAAM,KAAK,CAAC;CAC5B,YACQ,KAAK,CAAC,CAAC,aACP,MAAM,IAAI,GAChB,EAAE,OAAO,OAAO,CAClB;CAEA,MAEE,OAAO,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,SAAS,IACzC,GAAG,eAAe;EACjB,KAAK,MAAM,YAAY;GAAC;GAAS;GAAU;EAAW,GACpD,WAAW,MAAM,eAAe,QAAQ;EAC1C,MAAM,KAAK;CACb,GACA,EAAE,OAAO,OAAO,CAClB;CAEA,IAAI,QAAQ;CACZ,wBACQ,KAAK,CAAC,CAAC,iBACP;EACJ,qBAAqB,KAAK;EAC1B,QAAQ,4BAA4B,MAAM,KAAK,CAAC;CAClD,CACF;CACA,qBAAqB,qBAAqB,KAAK,CAAC;AAClD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JS 动画用 Anime.js(MIT):animate、createTimeline、spring、stagger、createDraggable、createLayout 等直接从 'animejs' 导入,
|
|
3
|
+
* 这里只补一件 Anime.js 不知道的事 —— 时长、缓动、弹簧取主题 tokens 的当前值:
|
|
4
|
+
* 主题覆盖的时长照样生效;开启“减少动态效果”时 durations 为 0,JS 动画也就立即完成
|
|
5
|
+
* (Anime.js 不会自动处理 prefers-reduced-motion)。
|
|
6
|
+
*
|
|
7
|
+
* animate(panel, { x: 0, ...themeTransition(panel, { duration: 'lg', ease: 'enter' }) })
|
|
8
|
+
* animate(card, { scale: 1, ...themeTransition(card, { bounce: 0.3 }) }) // 弹簧
|
|
9
|
+
*
|
|
10
|
+
* 组件里用 useAnimate:同样取主题,另外在组件卸载时取消还在跑的动画。
|
|
11
|
+
*
|
|
12
|
+
* 进出场、展开收起能用 CSS 过渡的仍用 CSS:原生 popover / dialog 被 Esc、点击外部关闭时,JS 来不及介入。
|
|
13
|
+
*/
|
|
14
|
+
import { type AnimationParams, type EasingParam, type JSAnimation } from 'animejs';
|
|
15
|
+
import { durations, easings } from '../../config/theme/tokens';
|
|
16
|
+
/** themeTransition 的选项:取哪一档时长与缓动,或用弹簧 */
|
|
17
|
+
export interface ThemeTransitionOptions {
|
|
18
|
+
/** 时长档位,默认 md */
|
|
19
|
+
duration?: keyof typeof durations & string;
|
|
20
|
+
/** 缓动曲线,默认 standard;给了 bounce 时不用 */
|
|
21
|
+
ease?: keyof typeof easings & string;
|
|
22
|
+
/** 弹簧的回弹程度(0 不回弹,越大越弹,建议不超过 0.5):给了就用弹簧,时长档位作为弹簧的感知时长 */
|
|
23
|
+
bounce?: number;
|
|
24
|
+
}
|
|
25
|
+
/** themeTransition 的结果:展开到 Anime.js 的 animate、createLayout 等的参数里 */
|
|
26
|
+
export interface ThemeTiming {
|
|
27
|
+
/** 时长(毫秒);用弹簧时不给,由弹簧决定 */
|
|
28
|
+
duration?: number;
|
|
29
|
+
/** 缓动曲线或弹簧 */
|
|
30
|
+
ease?: EasingParam;
|
|
31
|
+
}
|
|
32
|
+
/** 按主题 tokens 生成 Anime.js 的时长与缓动参数,展开到 animate 的参数里;element 决定读哪个主题范围里的取值 */
|
|
33
|
+
export declare function themeTransition(element: Element, { duration, ease, bounce }?: ThemeTransitionOptions): ThemeTiming;
|
|
34
|
+
/** CSS 时长 → 毫秒:'200ms' / '0.2s' → 200;时长 token 读出来的值用它换算 */
|
|
35
|
+
export declare function parseDuration(value: string): number;
|
|
36
|
+
/** useAnimate 返回的函数:给元素(或任何 JS 对象)做一次取主题时长的动画,返回 Anime.js 的动画(可以 await) */
|
|
37
|
+
export type ThemeAnimate = <Target extends object>(target: Target, params: AnimationParams, transition?: ThemeAnimateOptions) => JSAnimation;
|
|
38
|
+
/** useAnimate 的时长选项:主题档位,加上按哪个元素读主题 */
|
|
39
|
+
export interface ThemeAnimateOptions extends ThemeTransitionOptions {
|
|
40
|
+
/** 读这个元素上的主题取值;目标是元素时默认是它,否则(JS 对象、描线的代理)默认是根元素 */
|
|
41
|
+
scope?: Element;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 同 themeTransition,但读不到主题 token(页面没加载组件库的样式,如单元测试)时返回时长 0(直接到位),
|
|
45
|
+
* 不让动画报错打断交互。组件里的动画都用它。token 写错了格式(时长没带单位、缓动不是 cubic-bezier)照常报错:
|
|
46
|
+
* 那是主题的错,悄悄变成没有动画就发现不了
|
|
47
|
+
*/
|
|
48
|
+
export declare function themeTransitionOrInstant(element: Element, transition?: ThemeTransitionOptions): ThemeTiming;
|
|
49
|
+
/**
|
|
50
|
+
* 组件里的 JS 动画(在 setup 里调用):时长、缓动、弹簧取主题 tokens(themeTransition),组件卸载时取消还在跑的动画。
|
|
51
|
+
* 同一目标同一属性上的新动画会替换旧的(Anime.js 默认的 composition: 'replace'),快速连续触发不会互相打架;
|
|
52
|
+
* params 里写的 duration、ease 优先于主题。目标不是元素(JS 对象、描线的代理)时按 scope(默认根元素)读主题。
|
|
53
|
+
*
|
|
54
|
+
* const animate = useAnimate();
|
|
55
|
+
* animate(item, { x: 0, opacity: 1 }, { bounce: 0.35 }); // 弹回
|
|
56
|
+
* await animate(item, { x: width, opacity: 0 }, { duration: 'sm', ease: 'exit' }); // 滑出后再移除
|
|
57
|
+
*/
|
|
58
|
+
export declare function useAnimate(): ThemeAnimate;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { durations, easings } from "../../config/theme/tokens.js";
|
|
2
|
+
import { readToken, tokenValue } from "../../config/theme/theme.js";
|
|
3
|
+
import { onScopeDispose } from "vue";
|
|
4
|
+
import { animate, cubicBezier, spring } from "animejs";
|
|
5
|
+
//#region src/utils/motion/animation.ts
|
|
6
|
+
/**
|
|
7
|
+
* JS 动画用 Anime.js(MIT):animate、createTimeline、spring、stagger、createDraggable、createLayout 等直接从 'animejs' 导入,
|
|
8
|
+
* 这里只补一件 Anime.js 不知道的事 —— 时长、缓动、弹簧取主题 tokens 的当前值:
|
|
9
|
+
* 主题覆盖的时长照样生效;开启“减少动态效果”时 durations 为 0,JS 动画也就立即完成
|
|
10
|
+
* (Anime.js 不会自动处理 prefers-reduced-motion)。
|
|
11
|
+
*
|
|
12
|
+
* animate(panel, { x: 0, ...themeTransition(panel, { duration: 'lg', ease: 'enter' }) })
|
|
13
|
+
* animate(card, { scale: 1, ...themeTransition(card, { bounce: 0.3 }) }) // 弹簧
|
|
14
|
+
*
|
|
15
|
+
* 组件里用 useAnimate:同样取主题,另外在组件卸载时取消还在跑的动画。
|
|
16
|
+
*
|
|
17
|
+
* 进出场、展开收起能用 CSS 过渡的仍用 CSS:原生 popover / dialog 被 Esc、点击外部关闭时,JS 来不及介入。
|
|
18
|
+
*/
|
|
19
|
+
/** 按主题 tokens 生成 Anime.js 的时长与缓动参数,展开到 animate 的参数里;element 决定读哪个主题范围里的取值 */
|
|
20
|
+
function themeTransition(element, { duration = "md", ease = "standard", bounce } = {}) {
|
|
21
|
+
const milliseconds = parseDuration(readToken(element, durations[duration]));
|
|
22
|
+
if (milliseconds === 0) return { duration: 0 };
|
|
23
|
+
if (bounce != null) return { ease: spring({
|
|
24
|
+
bounce,
|
|
25
|
+
duration: milliseconds
|
|
26
|
+
}) };
|
|
27
|
+
return {
|
|
28
|
+
duration: milliseconds,
|
|
29
|
+
ease: cubicBezier(...parseEasing(readToken(element, easings[ease])))
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** CSS 时长 → 毫秒:'200ms' / '0.2s' → 200;时长 token 读出来的值用它换算 */
|
|
33
|
+
function parseDuration(value) {
|
|
34
|
+
const match = /^([\d.]+)(ms|s)$/.exec(value);
|
|
35
|
+
if (!match) throw new Error(`无法识别的时长 token:${value}`);
|
|
36
|
+
return Number(match[1]) * (match[2] === "s" ? 1e3 : 1);
|
|
37
|
+
}
|
|
38
|
+
/** 'cubic-bezier(0.2, 0, 0, 1)' → [0.2, 0, 0, 1];缓动 token 要写成 cubic-bezier,JS 才能复现同一条曲线 */
|
|
39
|
+
function parseEasing(value) {
|
|
40
|
+
const points = /^cubic-bezier\(([^)]+)\)$/.exec(value)?.[1].split(",").map(Number);
|
|
41
|
+
if (points?.length !== 4 || points.some(Number.isNaN)) throw new Error(`缓动 token 要写成 cubic-bezier(…):${value}`);
|
|
42
|
+
return points;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 同 themeTransition,但读不到主题 token(页面没加载组件库的样式,如单元测试)时返回时长 0(直接到位),
|
|
46
|
+
* 不让动画报错打断交互。组件里的动画都用它。token 写错了格式(时长没带单位、缓动不是 cubic-bezier)照常报错:
|
|
47
|
+
* 那是主题的错,悄悄变成没有动画就发现不了
|
|
48
|
+
*/
|
|
49
|
+
function themeTransitionOrInstant(element, transition) {
|
|
50
|
+
if (!tokenValue(element, durations[transition?.duration ?? "md"])) return { duration: 0 };
|
|
51
|
+
return themeTransition(element, transition);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 组件里的 JS 动画(在 setup 里调用):时长、缓动、弹簧取主题 tokens(themeTransition),组件卸载时取消还在跑的动画。
|
|
55
|
+
* 同一目标同一属性上的新动画会替换旧的(Anime.js 默认的 composition: 'replace'),快速连续触发不会互相打架;
|
|
56
|
+
* params 里写的 duration、ease 优先于主题。目标不是元素(JS 对象、描线的代理)时按 scope(默认根元素)读主题。
|
|
57
|
+
*
|
|
58
|
+
* const animate = useAnimate();
|
|
59
|
+
* animate(item, { x: 0, opacity: 1 }, { bounce: 0.35 }); // 弹回
|
|
60
|
+
* await animate(item, { x: width, opacity: 0 }, { duration: 'sm', ease: 'exit' }); // 滑出后再移除
|
|
61
|
+
*/
|
|
62
|
+
function useAnimate() {
|
|
63
|
+
const running = /* @__PURE__ */ new Set();
|
|
64
|
+
onScopeDispose(() => {
|
|
65
|
+
for (const animation of running) animation.cancel();
|
|
66
|
+
running.clear();
|
|
67
|
+
});
|
|
68
|
+
return (target, params, transition) => {
|
|
69
|
+
const scope = transition?.scope ?? (target instanceof Element ? target : document.documentElement);
|
|
70
|
+
for (const animation of running) if (animation.completed || animation.cancelled) running.delete(animation);
|
|
71
|
+
const animation = animate(target, {
|
|
72
|
+
...themeTransitionOrInstant(scope, transition),
|
|
73
|
+
...params
|
|
74
|
+
});
|
|
75
|
+
if (animation.duration < 1) return animation.complete();
|
|
76
|
+
running.add(animation);
|
|
77
|
+
return animation;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
export { parseDuration, themeTransition, themeTransitionOrInstant, useAnimate };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.js","names":[],"sources":["../../../src/utils/motion/animation.ts"],"sourcesContent":["/**\n * JS 动画用 Anime.js(MIT):animate、createTimeline、spring、stagger、createDraggable、createLayout 等直接从 'animejs' 导入,\n * 这里只补一件 Anime.js 不知道的事 —— 时长、缓动、弹簧取主题 tokens 的当前值:\n * 主题覆盖的时长照样生效;开启“减少动态效果”时 durations 为 0,JS 动画也就立即完成\n * (Anime.js 不会自动处理 prefers-reduced-motion)。\n *\n * animate(panel, { x: 0, ...themeTransition(panel, { duration: 'lg', ease: 'enter' }) })\n * animate(card, { scale: 1, ...themeTransition(card, { bounce: 0.3 }) }) // 弹簧\n *\n * 组件里用 useAnimate:同样取主题,另外在组件卸载时取消还在跑的动画。\n *\n * 进出场、展开收起能用 CSS 过渡的仍用 CSS:原生 popover / dialog 被 Esc、点击外部关闭时,JS 来不及介入。\n */\nimport {\n animate,\n cubicBezier,\n spring,\n type AnimationParams,\n type EasingParam,\n type JSAnimation,\n} from 'animejs';\nimport { onScopeDispose } from 'vue';\nimport { readToken, tokenValue } from '../../config/theme/theme';\nimport { durations, easings } from '../../config/theme/tokens';\n\n/** themeTransition 的选项:取哪一档时长与缓动,或用弹簧 */\nexport interface ThemeTransitionOptions {\n /** 时长档位,默认 md */\n duration?: keyof typeof durations & string;\n /** 缓动曲线,默认 standard;给了 bounce 时不用 */\n ease?: keyof typeof easings & string;\n /** 弹簧的回弹程度(0 不回弹,越大越弹,建议不超过 0.5):给了就用弹簧,时长档位作为弹簧的感知时长 */\n bounce?: number;\n}\n\n/** themeTransition 的结果:展开到 Anime.js 的 animate、createLayout 等的参数里 */\nexport interface ThemeTiming {\n /** 时长(毫秒);用弹簧时不给,由弹簧决定 */\n duration?: number;\n /** 缓动曲线或弹簧 */\n ease?: EasingParam;\n}\n\n/** 按主题 tokens 生成 Anime.js 的时长与缓动参数,展开到 animate 的参数里;element 决定读哪个主题范围里的取值 */\nexport function themeTransition(\n element: Element,\n { duration = 'md', ease = 'standard', bounce }: ThemeTransitionOptions = {},\n): ThemeTiming {\n const milliseconds = parseDuration(readToken(element, durations[duration]));\n if (milliseconds === 0) return { duration: 0 };\n if (bounce != null) return { ease: spring({ bounce, duration: milliseconds }) };\n return {\n duration: milliseconds,\n ease: cubicBezier(...parseEasing(readToken(element, easings[ease]))),\n };\n}\n\n/** CSS 时长 → 毫秒:'200ms' / '0.2s' → 200;时长 token 读出来的值用它换算 */\nexport function parseDuration(value: string): number {\n const match = /^([\\d.]+)(ms|s)$/.exec(value);\n if (!match) throw new Error(`无法识别的时长 token:${value}`);\n return Number(match[1]) * (match[2] === 's' ? 1000 : 1);\n}\n\n/** 'cubic-bezier(0.2, 0, 0, 1)' → [0.2, 0, 0, 1];缓动 token 要写成 cubic-bezier,JS 才能复现同一条曲线 */\nfunction parseEasing(value: string): [number, number, number, number] {\n const points = /^cubic-bezier\\(([^)]+)\\)$/.exec(value)?.[1]!.split(',').map(Number);\n if (points?.length !== 4 || points.some(Number.isNaN)) {\n throw new Error(`缓动 token 要写成 cubic-bezier(…):${value}`);\n }\n return points as [number, number, number, number];\n}\n\n/** useAnimate 返回的函数:给元素(或任何 JS 对象)做一次取主题时长的动画,返回 Anime.js 的动画(可以 await) */\nexport type ThemeAnimate = <Target extends object>(\n target: Target,\n params: AnimationParams,\n transition?: ThemeAnimateOptions,\n) => JSAnimation;\n\n/** useAnimate 的时长选项:主题档位,加上按哪个元素读主题 */\nexport interface ThemeAnimateOptions extends ThemeTransitionOptions {\n /** 读这个元素上的主题取值;目标是元素时默认是它,否则(JS 对象、描线的代理)默认是根元素 */\n scope?: Element;\n}\n\n/**\n * 同 themeTransition,但读不到主题 token(页面没加载组件库的样式,如单元测试)时返回时长 0(直接到位),\n * 不让动画报错打断交互。组件里的动画都用它。token 写错了格式(时长没带单位、缓动不是 cubic-bezier)照常报错:\n * 那是主题的错,悄悄变成没有动画就发现不了\n */\nexport function themeTransitionOrInstant(\n element: Element,\n transition?: ThemeTransitionOptions,\n): ThemeTiming {\n if (!tokenValue(element, durations[transition?.duration ?? 'md'])) return { duration: 0 };\n return themeTransition(element, transition);\n}\n\n/**\n * 组件里的 JS 动画(在 setup 里调用):时长、缓动、弹簧取主题 tokens(themeTransition),组件卸载时取消还在跑的动画。\n * 同一目标同一属性上的新动画会替换旧的(Anime.js 默认的 composition: 'replace'),快速连续触发不会互相打架;\n * params 里写的 duration、ease 优先于主题。目标不是元素(JS 对象、描线的代理)时按 scope(默认根元素)读主题。\n *\n * const animate = useAnimate();\n * animate(item, { x: 0, opacity: 1 }, { bounce: 0.35 }); // 弹回\n * await animate(item, { x: width, opacity: 0 }, { duration: 'sm', ease: 'exit' }); // 滑出后再移除\n */\nexport function useAnimate(): ThemeAnimate {\n const running = new Set<JSAnimation>();\n onScopeDispose(() => {\n for (const animation of running) void animation.cancel();\n running.clear();\n });\n return (target, params, transition) => {\n const scope =\n transition?.scope ?? (target instanceof Element ? target : document.documentElement);\n // 播完的、被新动画整个替换掉的不再需要取消\n for (const animation of running) {\n if (animation.completed || animation.cancelled) running.delete(animation);\n }\n const animation = animate(target, {\n ...themeTransitionOrInstant(scope, transition),\n ...params,\n });\n // 时长为 0(减少动态效果、读不到主题)时当场到位:不等下一帧,读取结果的代码不会先看到旧值\n if (animation.duration < 1) return animation.complete();\n running.add(animation);\n return animation;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA4CA,SAAgB,gBACd,SACA,EAAE,WAAW,MAAM,OAAO,YAAY,WAAmC,CAAC,GAC7D;CACb,MAAM,eAAe,cAAc,UAAU,SAAS,UAAU,SAAS,CAAC;CAC1E,IAAI,iBAAiB,GAAG,OAAO,EAAE,UAAU,EAAE;CAC7C,IAAI,UAAU,MAAM,OAAO,EAAE,MAAM,OAAO;EAAE;EAAQ,UAAU;CAAa,CAAC,EAAE;CAC9E,OAAO;EACL,UAAU;EACV,MAAM,YAAY,GAAG,YAAY,UAAU,SAAS,QAAQ,KAAK,CAAC,CAAC;CACrE;AACF;;AAGA,SAAgB,cAAc,OAAuB;CACnD,MAAM,QAAQ,mBAAmB,KAAK,KAAK;CAC3C,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,iBAAiB,OAAO;CACpD,OAAO,OAAO,MAAM,EAAE,KAAK,MAAM,OAAO,MAAM,MAAO;AACvD;;AAGA,SAAS,YAAY,OAAiD;CACpE,MAAM,SAAS,4BAA4B,KAAK,KAAK,CAAC,GAAG,EAAE,CAAE,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM;CAClF,IAAI,QAAQ,WAAW,KAAK,OAAO,KAAK,OAAO,KAAK,GAClD,MAAM,IAAI,MAAM,gCAAgC,OAAO;CAEzD,OAAO;AACT;;;;;;AAoBA,SAAgB,yBACd,SACA,YACa;CACb,IAAI,CAAC,WAAW,SAAS,UAAU,YAAY,YAAY,KAAK,GAAG,OAAO,EAAE,UAAU,EAAE;CACxF,OAAO,gBAAgB,SAAS,UAAU;AAC5C;;;;;;;;;;AAWA,SAAgB,aAA2B;CACzC,MAAM,0BAAU,IAAI,IAAiB;CACrC,qBAAqB;EACnB,KAAK,MAAM,aAAa,SAAS,UAAe,OAAO;EACvD,QAAQ,MAAM;CAChB,CAAC;CACD,QAAQ,QAAQ,QAAQ,eAAe;EACrC,MAAM,QACJ,YAAY,UAAU,kBAAkB,UAAU,SAAS,SAAS;EAEtE,KAAK,MAAM,aAAa,SACtB,IAAI,UAAU,aAAa,UAAU,WAAW,QAAQ,OAAO,SAAS;EAE1E,MAAM,YAAY,QAAQ,QAAQ;GAChC,GAAG,yBAAyB,OAAO,UAAU;GAC7C,GAAG;EACL,CAAC;EAED,IAAI,UAAU,WAAW,GAAG,OAAO,UAAU,SAAS;EACtD,QAAQ,IAAI,SAAS;EACrB,OAAO;CACT;AACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 加载指示防闪烁:很快完成的加载不出现指示,出现了就至少显示一段时间(同 Ant Design Spin 的 delay、
|
|
3
|
+
* React Spectrum 的进度延迟)。只管视觉:aria-busy、禁止点击等仍按真实的 loading 立即生效。
|
|
4
|
+
*
|
|
5
|
+
* const shown = useDelayedLoading(() => loading); // 渲染里用 shown.value 决定显示骨架、进度条
|
|
6
|
+
*
|
|
7
|
+
* 挂载时已经在加载就立即显示(没有内容可看,空白比指示更糟)。
|
|
8
|
+
*/
|
|
9
|
+
import { type Ref } from 'vue';
|
|
10
|
+
/** useDelayedLoading 的选项 */
|
|
11
|
+
export interface DelayedLoadingOptions {
|
|
12
|
+
/** 开始加载后过多久才显示(毫秒),默认 200 */
|
|
13
|
+
delay?: number;
|
|
14
|
+
/** 显示后至少保持多久(毫秒),默认 500 */
|
|
15
|
+
minDuration?: number;
|
|
16
|
+
}
|
|
17
|
+
/** 加载指示是否显示(在 setup 里调用) */
|
|
18
|
+
export declare function useDelayedLoading(read: () => boolean, { delay, minDuration }?: DelayedLoadingOptions): Readonly<Ref<boolean>>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { onScopeDispose, shallowRef, watch } from "vue";
|
|
2
|
+
//#region src/utils/motion/delayed-loading.ts
|
|
3
|
+
/**
|
|
4
|
+
* 加载指示防闪烁:很快完成的加载不出现指示,出现了就至少显示一段时间(同 Ant Design Spin 的 delay、
|
|
5
|
+
* React Spectrum 的进度延迟)。只管视觉:aria-busy、禁止点击等仍按真实的 loading 立即生效。
|
|
6
|
+
*
|
|
7
|
+
* const shown = useDelayedLoading(() => loading); // 渲染里用 shown.value 决定显示骨架、进度条
|
|
8
|
+
*
|
|
9
|
+
* 挂载时已经在加载就立即显示(没有内容可看,空白比指示更糟)。
|
|
10
|
+
*/
|
|
11
|
+
/** 加载指示是否显示(在 setup 里调用) */
|
|
12
|
+
function useDelayedLoading(read, { delay = 200, minDuration = 500 } = {}) {
|
|
13
|
+
const shown = shallowRef(read());
|
|
14
|
+
let shownAt = shown.value ? Date.now() : 0;
|
|
15
|
+
let timer;
|
|
16
|
+
const schedule = (wait, next) => {
|
|
17
|
+
clearTimeout(timer);
|
|
18
|
+
timer = setTimeout(() => {
|
|
19
|
+
shown.value = next;
|
|
20
|
+
if (next) shownAt = Date.now();
|
|
21
|
+
}, wait);
|
|
22
|
+
};
|
|
23
|
+
watch(read, (loading) => {
|
|
24
|
+
if (loading) {
|
|
25
|
+
if (shown.value) clearTimeout(timer);
|
|
26
|
+
else schedule(delay, true);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (!shown.value) return clearTimeout(timer);
|
|
30
|
+
schedule(Math.max(0, shownAt + minDuration - Date.now()), false);
|
|
31
|
+
});
|
|
32
|
+
onScopeDispose(() => clearTimeout(timer));
|
|
33
|
+
return shown;
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { useDelayedLoading };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=delayed-loading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayed-loading.js","names":[],"sources":["../../../src/utils/motion/delayed-loading.ts"],"sourcesContent":["/**\n * 加载指示防闪烁:很快完成的加载不出现指示,出现了就至少显示一段时间(同 Ant Design Spin 的 delay、\n * React Spectrum 的进度延迟)。只管视觉:aria-busy、禁止点击等仍按真实的 loading 立即生效。\n *\n * const shown = useDelayedLoading(() => loading); // 渲染里用 shown.value 决定显示骨架、进度条\n *\n * 挂载时已经在加载就立即显示(没有内容可看,空白比指示更糟)。\n */\nimport { onScopeDispose, shallowRef, watch, type Ref } from 'vue';\n\n/** useDelayedLoading 的选项 */\nexport interface DelayedLoadingOptions {\n /** 开始加载后过多久才显示(毫秒),默认 200 */\n delay?: number;\n /** 显示后至少保持多久(毫秒),默认 500 */\n minDuration?: number;\n}\n\n/** 加载指示是否显示(在 setup 里调用) */\nexport function useDelayedLoading(\n read: () => boolean,\n { delay = 200, minDuration = 500 }: DelayedLoadingOptions = {},\n): Readonly<Ref<boolean>> {\n const shown = shallowRef(read());\n let shownAt = shown.value ? Date.now() : 0;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const schedule = (wait: number, next: boolean) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n shown.value = next;\n if (next) shownAt = Date.now();\n }, wait);\n };\n\n watch(read, (loading) => {\n if (loading) {\n // 正在等着隐藏时又开始加载:取消隐藏,继续显示\n if (shown.value) clearTimeout(timer);\n else schedule(delay, true);\n return;\n }\n if (!shown.value) return clearTimeout(timer);\n schedule(Math.max(0, shownAt + minDuration - Date.now()), false);\n });\n onScopeDispose(() => clearTimeout(timer));\n return shown;\n}\n"],"mappings":";;;;;;;;;;;AAmBA,SAAgB,kBACd,MACA,EAAE,QAAQ,KAAK,cAAc,QAA+B,CAAC,GACrC;CACxB,MAAM,QAAQ,WAAW,KAAK,CAAC;CAC/B,IAAI,UAAU,MAAM,QAAQ,KAAK,IAAI,IAAI;CACzC,IAAI;CACJ,MAAM,YAAY,MAAc,SAAkB;EAChD,aAAa,KAAK;EAClB,QAAQ,iBAAiB;GACvB,MAAM,QAAQ;GACd,IAAI,MAAM,UAAU,KAAK,IAAI;EAC/B,GAAG,IAAI;CACT;CAEA,MAAM,OAAO,YAAY;EACvB,IAAI,SAAS;GAEX,IAAI,MAAM,OAAO,aAAa,KAAK;QAC9B,SAAS,OAAO,IAAI;GACzB;EACF;EACA,IAAI,CAAC,MAAM,OAAO,OAAO,aAAa,KAAK;EAC3C,SAAS,KAAK,IAAI,GAAG,UAAU,cAAc,KAAK,IAAI,CAAC,GAAG,KAAK;CACjE,CAAC;CACD,qBAAqB,aAAa,KAAK,CAAC;CACxC,OAAO;AACT"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ThemeTransitionOptions } from './animation';
|
|
2
|
+
/** useLayoutAnimation 的选项 */
|
|
3
|
+
export interface LayoutAnimationOptions {
|
|
4
|
+
/** 参与动画的子元素(选择器),默认容器的所有后代 */
|
|
5
|
+
children?: string;
|
|
6
|
+
/** 时长档位,默认 md */
|
|
7
|
+
duration?: ThemeTransitionOptions['duration'];
|
|
8
|
+
/** 缓动曲线,默认 standard */
|
|
9
|
+
ease?: ThemeTransitionOptions['ease'];
|
|
10
|
+
}
|
|
11
|
+
/** useLayoutAnimation 的返回值 */
|
|
12
|
+
export interface LayoutAnimation {
|
|
13
|
+
/** 记下位置 → 调用 mutate 改数据 → 等 DOM 更新后过渡到新位置;动画结束时完成 */
|
|
14
|
+
change(mutate: () => void): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
/** 容器里的子元素换位置时平移过去(在 setup 里调用);container 读取容器(元素或组件实例),没挂载时为 null */
|
|
17
|
+
export declare function useLayoutAnimation(container: () => unknown, { children, duration, ease }?: LayoutAnimationOptions): LayoutAnimation;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { themeTransitionOrInstant } from "./animation.js";
|
|
2
|
+
import { toElement } from "../dom/element.js";
|
|
3
|
+
import { nextTick, onScopeDispose } from "vue";
|
|
4
|
+
import { createLayout } from "animejs";
|
|
5
|
+
//#region src/utils/motion/layout.ts
|
|
6
|
+
/**
|
|
7
|
+
* 布局动画(FLIP):改数据前记下子元素的位置,DOM 更新后从旧位置过渡到新位置(Anime.js 的 createLayout)。
|
|
8
|
+
*
|
|
9
|
+
* const layout = useLayoutAnimation(() => list, { children: '[data-item]' });
|
|
10
|
+
* layout.change(() => items.splice(index, 1)); // 其余项平移补位,新项淡入
|
|
11
|
+
*
|
|
12
|
+
* 时长、缓动取主题;减少动态效果(时长为 0)时只改数据,不记录也不播。
|
|
13
|
+
* 被 Vue 移除的元素直接消失:离场动画交给 usePresence,这里只管其余元素的位移。
|
|
14
|
+
*/
|
|
15
|
+
/** 容器里的子元素换位置时平移过去(在 setup 里调用);container 读取容器(元素或组件实例),没挂载时为 null */
|
|
16
|
+
function useLayoutAnimation(container, { children, duration, ease } = {}) {
|
|
17
|
+
let layout;
|
|
18
|
+
onScopeDispose(() => layout?.revert());
|
|
19
|
+
return { async change(mutate) {
|
|
20
|
+
const root = toElement(container());
|
|
21
|
+
const timing = root ? themeTransitionOrInstant(root, {
|
|
22
|
+
duration,
|
|
23
|
+
ease
|
|
24
|
+
}) : { duration: 0 };
|
|
25
|
+
if (!root || !timing.duration) {
|
|
26
|
+
mutate();
|
|
27
|
+
await nextTick();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (layout?.root !== root) {
|
|
31
|
+
layout?.revert();
|
|
32
|
+
layout = createLayout(root, children ? { children } : {});
|
|
33
|
+
}
|
|
34
|
+
layout.record();
|
|
35
|
+
mutate();
|
|
36
|
+
await nextTick();
|
|
37
|
+
await layout.animate(timing);
|
|
38
|
+
} };
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { useLayoutAnimation };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","names":[],"sources":["../../../src/utils/motion/layout.ts"],"sourcesContent":["/**\n * 布局动画(FLIP):改数据前记下子元素的位置,DOM 更新后从旧位置过渡到新位置(Anime.js 的 createLayout)。\n *\n * const layout = useLayoutAnimation(() => list, { children: '[data-item]' });\n * layout.change(() => items.splice(index, 1)); // 其余项平移补位,新项淡入\n *\n * 时长、缓动取主题;减少动态效果(时长为 0)时只改数据,不记录也不播。\n * 被 Vue 移除的元素直接消失:离场动画交给 usePresence,这里只管其余元素的位移。\n */\nimport { createLayout, type AutoLayout } from 'animejs';\nimport { nextTick, onScopeDispose } from 'vue';\nimport { toElement } from '../dom/element';\nimport { themeTransitionOrInstant, type ThemeTransitionOptions } from './animation';\n\n/** useLayoutAnimation 的选项 */\nexport interface LayoutAnimationOptions {\n /** 参与动画的子元素(选择器),默认容器的所有后代 */\n children?: string;\n /** 时长档位,默认 md */\n duration?: ThemeTransitionOptions['duration'];\n /** 缓动曲线,默认 standard */\n ease?: ThemeTransitionOptions['ease'];\n}\n\n/** useLayoutAnimation 的返回值 */\nexport interface LayoutAnimation {\n /** 记下位置 → 调用 mutate 改数据 → 等 DOM 更新后过渡到新位置;动画结束时完成 */\n change(mutate: () => void): Promise<void>;\n}\n\n/** 容器里的子元素换位置时平移过去(在 setup 里调用);container 读取容器(元素或组件实例),没挂载时为 null */\nexport function useLayoutAnimation(\n container: () => unknown,\n { children, duration, ease }: LayoutAnimationOptions = {},\n): LayoutAnimation {\n let layout: AutoLayout | undefined;\n onScopeDispose(() => layout?.revert());\n\n return {\n async change(mutate) {\n const root = toElement(container());\n const timing = root ? themeTransitionOrInstant(root, { duration, ease }) : { duration: 0 };\n if (!root || !timing.duration) {\n mutate();\n await nextTick();\n return;\n }\n // 容器换了(重新挂载)时重建\n if (layout?.root !== root) {\n layout?.revert();\n layout = createLayout(root, children ? { children } : {});\n }\n layout.record();\n mutate();\n await nextTick();\n await layout.animate(timing);\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AA+BA,SAAgB,mBACd,WACA,EAAE,UAAU,UAAU,SAAiC,CAAC,GACvC;CACjB,IAAI;CACJ,qBAAqB,QAAQ,OAAO,CAAC;CAErC,OAAO,EACL,MAAM,OAAO,QAAQ;EACnB,MAAM,OAAO,UAAU,UAAU,CAAC;EAClC,MAAM,SAAS,OAAO,yBAAyB,MAAM;GAAE;GAAU;EAAK,CAAC,IAAI,EAAE,UAAU,EAAE;EACzF,IAAI,CAAC,QAAQ,CAAC,OAAO,UAAU;GAC7B,OAAO;GACP,MAAM,SAAS;GACf;EACF;EAEA,IAAI,QAAQ,SAAS,MAAM;GACzB,QAAQ,OAAO;GACf,SAAS,aAAa,MAAM,WAAW,EAAE,SAAS,IAAI,CAAC,CAAC;EAC1D;EACA,OAAO,OAAO;EACd,OAAO;EACP,MAAM,SAAS;EACf,MAAM,OAAO,QAAQ,MAAM;CAC7B,EACF;AACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type SpringOptions } from './tween';
|
|
2
|
+
/** usePointer 的返回值 */
|
|
3
|
+
export interface PointerState {
|
|
4
|
+
/** 横向位置:元素左边 -1,右边 1(阻尼后) */
|
|
5
|
+
readonly x: number;
|
|
6
|
+
/** 纵向位置:元素底边 -1,顶边 1(阻尼后) */
|
|
7
|
+
readonly y: number;
|
|
8
|
+
/** 指针在元素上时趋向 1,离开后趋向 0(阻尼后) */
|
|
9
|
+
readonly strength: number;
|
|
10
|
+
}
|
|
11
|
+
/** usePointer 的选项 */
|
|
12
|
+
export type PointerOptions = Pick<SpringOptions, 'bounce' | 'duration'>;
|
|
13
|
+
/** 指针相对 scope 元素的阻尼位置(在 setup 里调用) */
|
|
14
|
+
export declare function usePointer(scope: () => Element | null | undefined, { bounce, duration }?: PointerOptions): PointerState;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { useEventListener } from "../dom/event-listener.js";
|
|
2
|
+
import { useSpring } from "./tween.js";
|
|
3
|
+
import { shallowRef } from "vue";
|
|
4
|
+
//#region src/utils/motion/pointer.ts
|
|
5
|
+
/**
|
|
6
|
+
* 指针相对元素的位置(-1 到 1,向上为正,与 WebGL 的坐标一致),用弹簧(useSpring)做阻尼跟随。
|
|
7
|
+
* 3D 效果(着色器的 uPointer)与倾斜卡片、聚光卡片共用:
|
|
8
|
+
*
|
|
9
|
+
* const pointer = usePointer(() => host);
|
|
10
|
+
* uniforms.uPointer.value.set(pointer.x, pointer.y); // 每帧读
|
|
11
|
+
* const left = (pointer.x + 1) * 50; // 换成 CSS 的百分比位置
|
|
12
|
+
* repel *= pointer.strength; // 指针离开元素时淡出
|
|
13
|
+
*
|
|
14
|
+
* 监听整个窗口:背景效果通常在内容下面,指针落在上层的文字、按钮上时也要跟随。
|
|
15
|
+
* 减少动态效果时弹簧的时长为 0,位置直接到位(效果自己决定要不要停下交互)。
|
|
16
|
+
*/
|
|
17
|
+
/** 指针相对 scope 元素的阻尼位置(在 setup 里调用) */
|
|
18
|
+
function usePointer(scope, { bounce = 0, duration = "xl" } = {}) {
|
|
19
|
+
const target = shallowRef({
|
|
20
|
+
x: 0,
|
|
21
|
+
y: 0,
|
|
22
|
+
inside: false
|
|
23
|
+
});
|
|
24
|
+
const spring = {
|
|
25
|
+
bounce,
|
|
26
|
+
duration,
|
|
27
|
+
scope
|
|
28
|
+
};
|
|
29
|
+
const x = useSpring(() => target.value.x, spring);
|
|
30
|
+
const y = useSpring(() => target.value.y, spring);
|
|
31
|
+
const strength = useSpring(() => target.value.inside ? 1 : 0, spring);
|
|
32
|
+
if (typeof window !== "undefined") {
|
|
33
|
+
const onMove = (event) => {
|
|
34
|
+
const rect = scope()?.getBoundingClientRect();
|
|
35
|
+
if (!rect || rect.width === 0 || rect.height === 0) return;
|
|
36
|
+
const inside = event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;
|
|
37
|
+
if (!inside) {
|
|
38
|
+
if (target.value.inside) target.value = {
|
|
39
|
+
...target.value,
|
|
40
|
+
inside
|
|
41
|
+
};
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
target.value = {
|
|
45
|
+
x: (event.clientX - rect.left) / rect.width * 2 - 1,
|
|
46
|
+
y: 1 - (event.clientY - rect.top) / rect.height * 2,
|
|
47
|
+
inside
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const onLeave = () => target.value = {
|
|
51
|
+
...target.value,
|
|
52
|
+
inside: false
|
|
53
|
+
};
|
|
54
|
+
useEventListener(window, "pointermove", onMove, { passive: true });
|
|
55
|
+
useEventListener(document.documentElement, "pointerleave", onLeave);
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
get x() {
|
|
59
|
+
return x.current;
|
|
60
|
+
},
|
|
61
|
+
get y() {
|
|
62
|
+
return y.current;
|
|
63
|
+
},
|
|
64
|
+
get strength() {
|
|
65
|
+
return strength.current;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
export { usePointer };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=pointer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer.js","names":[],"sources":["../../../src/utils/motion/pointer.ts"],"sourcesContent":["/**\n * 指针相对元素的位置(-1 到 1,向上为正,与 WebGL 的坐标一致),用弹簧(useSpring)做阻尼跟随。\n * 3D 效果(着色器的 uPointer)与倾斜卡片、聚光卡片共用:\n *\n * const pointer = usePointer(() => host);\n * uniforms.uPointer.value.set(pointer.x, pointer.y); // 每帧读\n * const left = (pointer.x + 1) * 50; // 换成 CSS 的百分比位置\n * repel *= pointer.strength; // 指针离开元素时淡出\n *\n * 监听整个窗口:背景效果通常在内容下面,指针落在上层的文字、按钮上时也要跟随。\n * 减少动态效果时弹簧的时长为 0,位置直接到位(效果自己决定要不要停下交互)。\n */\nimport { shallowRef } from 'vue';\nimport { useEventListener } from '../dom/event-listener';\nimport { useSpring, type SpringOptions } from './tween';\n\n/** usePointer 的返回值 */\nexport interface PointerState {\n /** 横向位置:元素左边 -1,右边 1(阻尼后) */\n readonly x: number;\n /** 纵向位置:元素底边 -1,顶边 1(阻尼后) */\n readonly y: number;\n /** 指针在元素上时趋向 1,离开后趋向 0(阻尼后) */\n readonly strength: number;\n}\n\n/** usePointer 的选项 */\nexport type PointerOptions = Pick<SpringOptions, 'bounce' | 'duration'>;\n\n/** 指针相对 scope 元素的阻尼位置(在 setup 里调用) */\nexport function usePointer(\n scope: () => Element | null | undefined,\n { bounce = 0, duration = 'xl' }: PointerOptions = {},\n): PointerState {\n const target = shallowRef({ x: 0, y: 0, inside: false });\n const spring = { bounce, duration, scope };\n const x = useSpring(() => target.value.x, spring);\n const y = useSpring(() => target.value.y, spring);\n const strength = useSpring(() => (target.value.inside ? 1 : 0), spring);\n\n if (typeof window !== 'undefined') {\n const onMove = (event: PointerEvent) => {\n const rect = scope()?.getBoundingClientRect();\n if (!rect || rect.width === 0 || rect.height === 0) return;\n const inside =\n event.clientX >= rect.left &&\n event.clientX <= rect.right &&\n event.clientY >= rect.top &&\n event.clientY <= rect.bottom;\n // 离开元素时保持最后的位置,只让 strength 淡出:效果不会一下子跳回中心\n if (!inside) {\n if (target.value.inside) target.value = { ...target.value, inside };\n return;\n }\n target.value = {\n x: ((event.clientX - rect.left) / rect.width) * 2 - 1,\n y: 1 - ((event.clientY - rect.top) / rect.height) * 2,\n inside,\n };\n };\n const onLeave = () => (target.value = { ...target.value, inside: false });\n useEventListener(window, 'pointermove', onMove, { passive: true });\n useEventListener(document.documentElement, 'pointerleave', onLeave);\n }\n\n return {\n get x() {\n return x.current;\n },\n get y() {\n return y.current;\n },\n get strength() {\n return strength.current;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA8BA,SAAgB,WACd,OACA,EAAE,SAAS,GAAG,WAAW,SAAyB,CAAC,GACrC;CACd,MAAM,SAAS,WAAW;EAAE,GAAG;EAAG,GAAG;EAAG,QAAQ;CAAM,CAAC;CACvD,MAAM,SAAS;EAAE;EAAQ;EAAU;CAAM;CACzC,MAAM,IAAI,gBAAgB,OAAO,MAAM,GAAG,MAAM;CAChD,MAAM,IAAI,gBAAgB,OAAO,MAAM,GAAG,MAAM;CAChD,MAAM,WAAW,gBAAiB,OAAO,MAAM,SAAS,IAAI,GAAI,MAAM;CAEtE,IAAI,OAAO,WAAW,aAAa;EACjC,MAAM,UAAU,UAAwB;GACtC,MAAM,OAAO,MAAM,CAAC,EAAE,sBAAsB;GAC5C,IAAI,CAAC,QAAQ,KAAK,UAAU,KAAK,KAAK,WAAW,GAAG;GACpD,MAAM,SACJ,MAAM,WAAW,KAAK,QACtB,MAAM,WAAW,KAAK,SACtB,MAAM,WAAW,KAAK,OACtB,MAAM,WAAW,KAAK;GAExB,IAAI,CAAC,QAAQ;IACX,IAAI,OAAO,MAAM,QAAQ,OAAO,QAAQ;KAAE,GAAG,OAAO;KAAO;IAAO;IAClE;GACF;GACA,OAAO,QAAQ;IACb,IAAK,MAAM,UAAU,KAAK,QAAQ,KAAK,QAAS,IAAI;IACpD,GAAG,KAAM,MAAM,UAAU,KAAK,OAAO,KAAK,SAAU;IACpD;GACF;EACF;EACA,MAAM,gBAAiB,OAAO,QAAQ;GAAE,GAAG,OAAO;GAAO,QAAQ;EAAM;EACvE,iBAAiB,QAAQ,eAAe,QAAQ,EAAE,SAAS,KAAK,CAAC;EACjE,iBAAiB,SAAS,iBAAiB,gBAAgB,OAAO;CACpE;CAEA,OAAO;EACL,IAAI,IAAI;GACN,OAAO,EAAE;EACX;EACA,IAAI,IAAI;GACN,OAAO,EAAE;EACX;EACA,IAAI,WAAW;GACb,OAAO,SAAS;EAClB;CACF;AACF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** usePresence 的返回值 */
|
|
2
|
+
export interface Presence {
|
|
3
|
+
/** 是否渲染:打开时,以及关闭后离场还没结束时 */
|
|
4
|
+
readonly mounted: boolean;
|
|
5
|
+
/** 打开还是正在离场(写到 data-state) */
|
|
6
|
+
readonly state: 'open' | 'closed';
|
|
7
|
+
/** 离场过渡所在的元素(或组件)的 ref:等它与子元素上的过渡结束 */
|
|
8
|
+
ref: (element: unknown) => void;
|
|
9
|
+
}
|
|
10
|
+
/** usePresence 的选项 */
|
|
11
|
+
export interface PresenceOptions {
|
|
12
|
+
/** 离场结束、mounted 变为 false 之后调用 */
|
|
13
|
+
onExited?: () => void;
|
|
14
|
+
/** JS 离场动画(如 Anime.js):关闭状态渲染后调用,等它结束;CSS 过渡不用写,会自动等 */
|
|
15
|
+
exit?: (element: HTMLElement) => PromiseLike<unknown> | void;
|
|
16
|
+
}
|
|
17
|
+
/** 关闭后等离场结束再卸载(在 setup 里调用) */
|
|
18
|
+
export declare function usePresence(read: () => boolean, { onExited, exit }?: PresenceOptions): Presence;
|
|
19
|
+
/** useDismissible 的返回值 */
|
|
20
|
+
export interface Dismissible {
|
|
21
|
+
/** 正在离场:样式里写离场的终值与过渡 */
|
|
22
|
+
readonly dismissing: boolean;
|
|
23
|
+
/** 打开还是正在离场(写到 data-state) */
|
|
24
|
+
readonly state: 'open' | 'closed';
|
|
25
|
+
/** 根元素(或组件)的 ref */
|
|
26
|
+
ref: (element: unknown) => void;
|
|
27
|
+
/** 开始离场:焦点先移到相邻的可聚焦元素上(关闭按钮随它一起消失),离场结束调用 onDismiss;正在离场时什么也不做 */
|
|
28
|
+
readonly dismiss: () => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 先离场再移除:可关闭的标签、提示条、横幅共用(Tag、Alert、Banner)。数据由使用方控制:
|
|
32
|
+
* 离场结束才调用 onDismiss,使用方移除了就消失;没移除(如拒绝删除)时复位,元素重新出现。在 setup 里调用
|
|
33
|
+
*
|
|
34
|
+
* const dismissible = useDismissible(() => onClose?.());
|
|
35
|
+
* <div ref={dismissible.ref} data-state={dismissible.state} {...css.attrs(dismissible.dismissing && styles.leaving)}>
|
|
36
|
+
* <CloseButton onClick={dismissible.dismiss} />
|
|
37
|
+
*/
|
|
38
|
+
export declare function useDismissible(onDismiss: () => void): Dismissible;
|
|
39
|
+
/**
|
|
40
|
+
* 内容延迟渲染:lazy 时第一次打开前不渲染,打开过之后一直保留(再次打开、离场过渡都不必重建)。
|
|
41
|
+
* 在 setup 里调用,返回的函数在渲染时调用;渲染本来就读 open,打开时会重新渲染,所以不需要响应式状态。
|
|
42
|
+
*
|
|
43
|
+
* const showContent = useLazyContent(() => open, () => lazy);
|
|
44
|
+
* <div popover>{showContent() && children}</div>
|
|
45
|
+
*
|
|
46
|
+
* 浮层(Popover、HoverCard、Menu、对话框与抽屉)默认延迟:一百个关闭的菜单挂载 118ms → 12ms;
|
|
47
|
+
* Collapse、Tabs 默认不延迟(收起的内容页内搜索要找得到)。Tooltip 不延迟:它被触发器的 aria-describedby 引用。
|
|
48
|
+
*/
|
|
49
|
+
export declare function useLazyContent(open: () => boolean, lazy: () => boolean): () => boolean;
|
|
50
|
+
/** 浮层的内容延迟渲染(Popover、HoverCard、Menu、对话框与抽屉共用) */
|
|
51
|
+
export interface LazyContentOptions {
|
|
52
|
+
/**
|
|
53
|
+
* 第一次打开前不渲染内容,打开过后保留,默认 true。
|
|
54
|
+
* 内容要一直在 DOM 里(页内搜索、关闭时也要查询其中的元素)时设为 false
|
|
55
|
+
*/
|
|
56
|
+
lazy?: boolean;
|
|
57
|
+
}
|