@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,130 @@
|
|
|
1
|
+
import { toNumber } from "../utils/data/numeric.js";
|
|
2
|
+
import { t } from "../config/theme/tokens.js";
|
|
3
|
+
import { useLang } from "../config/context.js";
|
|
4
|
+
import { mergeAttrs } from "../utils/props.js";
|
|
5
|
+
import { toneFillStyles } from "../utils/style/tone-styles.js";
|
|
6
|
+
import { useFormat } from "../config/lang/format.js";
|
|
7
|
+
import { createVNode, mergeProps } from "vue";
|
|
8
|
+
import { _component, readonlyProp, restProps } from "@zerodep-dev/vue-tsx-pro-tsx";
|
|
9
|
+
import * as css from "@zerodep-dev/vue-tsx-pro-tsx/styles";
|
|
10
|
+
//#region src/display/Sparkline.tsx
|
|
11
|
+
/** 迷你图的画法 */
|
|
12
|
+
/** 角色与名称由组件给出(role="img",名称是 label 加上数据的概括) */
|
|
13
|
+
/** 未声明的属性落到外层 span 上 */
|
|
14
|
+
/** Sparkline 的样式 */
|
|
15
|
+
var sparklineStyles = css.create({
|
|
16
|
+
root: {
|
|
17
|
+
position: "relative",
|
|
18
|
+
display: "block",
|
|
19
|
+
width: "100%"
|
|
20
|
+
},
|
|
21
|
+
svg: {
|
|
22
|
+
display: "block",
|
|
23
|
+
width: "100%",
|
|
24
|
+
height: "100%",
|
|
25
|
+
overflow: "visible"
|
|
26
|
+
},
|
|
27
|
+
line: {
|
|
28
|
+
fill: "none",
|
|
29
|
+
stroke: "var(--tone-fill)",
|
|
30
|
+
strokeWidth: 1.5,
|
|
31
|
+
strokeLinejoin: "round",
|
|
32
|
+
strokeLinecap: "round"
|
|
33
|
+
},
|
|
34
|
+
area: {
|
|
35
|
+
fill: "var(--tone-fill)",
|
|
36
|
+
fillOpacity: .15,
|
|
37
|
+
stroke: "none"
|
|
38
|
+
},
|
|
39
|
+
bar: {
|
|
40
|
+
fill: "var(--tone-fill)",
|
|
41
|
+
fillOpacity: .85
|
|
42
|
+
},
|
|
43
|
+
last: {
|
|
44
|
+
position: "absolute",
|
|
45
|
+
width: "6px",
|
|
46
|
+
height: "6px",
|
|
47
|
+
borderRadius: "_full",
|
|
48
|
+
backgroundColor: "var(--tone-fill)",
|
|
49
|
+
boxShadow: `0 0 0 2px ${t.colors.surface}`,
|
|
50
|
+
transform: "translate(-50%, -50%)",
|
|
51
|
+
pointerEvents: "none"
|
|
52
|
+
},
|
|
53
|
+
height: (height) => ({ height }),
|
|
54
|
+
position: (left, top) => ({
|
|
55
|
+
left,
|
|
56
|
+
top
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
/** 迷你图:小折线、面积或柱 */
|
|
60
|
+
var Sparkline = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
61
|
+
const data = readonlyProp(_props, "data");
|
|
62
|
+
const variant = readonlyProp(_props, "variant", "line");
|
|
63
|
+
const tone = readonlyProp(_props, "tone", "accent");
|
|
64
|
+
const height = readonlyProp(_props, "height", "2em");
|
|
65
|
+
const showLast = readonlyProp(_props, "showLast", true);
|
|
66
|
+
const domain = readonlyProp(_props, "domain");
|
|
67
|
+
const valueFormat = readonlyProp(_props, "valueFormat");
|
|
68
|
+
const label = readonlyProp(_props, "label");
|
|
69
|
+
const rest = restProps(_props, _ctx, true);
|
|
70
|
+
const lang = useLang();
|
|
71
|
+
const format = useFormat();
|
|
72
|
+
return () => {
|
|
73
|
+
const values = data.value.map((value) => value == null ? void 0 : toNumber(value));
|
|
74
|
+
const present = values.filter((value) => value !== void 0);
|
|
75
|
+
const bars = variant.value === "bar";
|
|
76
|
+
const low = domain.value?.[0] ?? Math.min(...present, ...bars ? [0] : []);
|
|
77
|
+
const span = (domain.value?.[1] ?? Math.max(...present, ...bars ? [0] : [])) - low || 1;
|
|
78
|
+
const yOf = (value) => 100 - (value - low) / span * 100;
|
|
79
|
+
const width = bars ? values.length : Math.max(values.length - 1, 1);
|
|
80
|
+
const segments = [];
|
|
81
|
+
let current = [];
|
|
82
|
+
values.forEach((value, position) => {
|
|
83
|
+
if (value === void 0) {
|
|
84
|
+
if (current.length) segments.push(current);
|
|
85
|
+
current = [];
|
|
86
|
+
} else current.push([position, yOf(value)]);
|
|
87
|
+
});
|
|
88
|
+
if (current.length) segments.push(current);
|
|
89
|
+
const path = (points) => points.map(([x, y], i) => `${i ? "L" : "M"}${x} ${y}`).join(" ");
|
|
90
|
+
const lastIndex = values.findLastIndex((value) => value !== void 0);
|
|
91
|
+
const summary = present.length === 0 ? lang.emptyValue : lang.sparklineSummary(present.length, format.number(data.value[values.findIndex((value) => value !== void 0)], valueFormat.value), format.number(data.value[lastIndex], valueFormat.value), format.number(Math.min(...present), valueFormat.value), format.number(Math.max(...present), valueFormat.value));
|
|
92
|
+
return createVNode("span", mergeAttrs({ sx: [
|
|
93
|
+
sparklineStyles.root,
|
|
94
|
+
css.bind(sparklineStyles.height, () => [height.value], true),
|
|
95
|
+
toneFillStyles[tone.value]
|
|
96
|
+
] }, rest, {
|
|
97
|
+
role: "img",
|
|
98
|
+
"aria-label": label.value ? `${label.value}:${summary}` : summary
|
|
99
|
+
}), [createVNode("svg", mergeProps(css.attrs(sparklineStyles.svg), {
|
|
100
|
+
"viewBox": `0 0 ${width} 100`,
|
|
101
|
+
"preserveAspectRatio": "none",
|
|
102
|
+
"aria-hidden": "true"
|
|
103
|
+
}), [bars ? values.map((value, position) => value === void 0 ? null : createVNode("rect", mergeProps({
|
|
104
|
+
"key": position,
|
|
105
|
+
"x": position + .15,
|
|
106
|
+
"width": .7,
|
|
107
|
+
"y": Math.min(yOf(value), yOf(Math.max(low, 0))),
|
|
108
|
+
"height": Math.abs(yOf(value) - yOf(Math.max(low, 0)))
|
|
109
|
+
}, css.attrs(sparklineStyles.bar)), null)) : segments.map((points, position) => createVNode("g", { "key": position }, [variant.value === "area" && points.length > 1 && createVNode("path", mergeProps({ "d": `${path(points)} L${points.at(-1)[0]} 100 L${points[0][0]} 100 Z` }, css.attrs(sparklineStyles.area)), null), createVNode("path", mergeProps({
|
|
110
|
+
"d": path(points),
|
|
111
|
+
"vector-effect": "non-scaling-stroke"
|
|
112
|
+
}, css.attrs(sparklineStyles.line)), null)]))]), showLast.value && !bars && lastIndex >= 0 && createVNode("span", mergeProps({ "aria-hidden": "true" }, css.attrs(sparklineStyles.last, css.bind(sparklineStyles.position, () => [`${lastIndex / width * 100}%`, `${yOf(values[lastIndex])}%`]))), null)]);
|
|
113
|
+
};
|
|
114
|
+
}, {
|
|
115
|
+
name: "Sparkline",
|
|
116
|
+
props: [
|
|
117
|
+
"data",
|
|
118
|
+
"variant",
|
|
119
|
+
"tone",
|
|
120
|
+
"height",
|
|
121
|
+
"showLast",
|
|
122
|
+
"domain",
|
|
123
|
+
"valueFormat",
|
|
124
|
+
"label"
|
|
125
|
+
]
|
|
126
|
+
});
|
|
127
|
+
//#endregion
|
|
128
|
+
export { Sparkline, sparklineStyles };
|
|
129
|
+
|
|
130
|
+
//# sourceMappingURL=Sparkline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sparkline.js","names":["_vtp_readonlyProp","_vtp_restProps","_createVNode","_mergeProps"],"sources":["../../src/display/Sparkline.tsx"],"sourcesContent":["/**\n * 迷你图:没有坐标轴的小折线、面积或柱,嵌在指标卡(Stat 的 children)、表格的格子、列表的一行里看走势。\n * 纯 SVG,不依赖图表库;宽度占满容器,高度默认 2em(随字号缩放)。\n *\n * <Stat label=\"实际销售\" value={910.36} unit=\"万元\">\n * <Sparkline data={monthly} variant=\"area\" label=\"近 12 个月\" />\n * </Stat>\n * <Sparkline data={[3, 5, null, 4, 8]} variant=\"bar\" tone=\"success\" />\n *\n * 空值(null、undefined)处断开(柱是空位);默认标出最后一个点。读屏念成一句话:几个值、从哪到哪、最低最高\n * (按 valueFormat 与当前语言格式化),label 写在前面。\n */\nimport { _component } from '@zerodep-dev/vue-tsx-pro-tsx';\nimport * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport { useLang } from '../config/context';\nimport { useFormat, type NumericFormat } from '../config/lang/format';\nimport { toNumber, type NumericValue } from '../utils/data/numeric';\nimport { mergeAttrs, type PartProps } from '../utils/props';\nimport { toneFillStyles, type StatusTone } from '../utils/style/tone-styles';\nimport { t } from '../config/theme/tokens';\n\n/** 迷你图的画法 */\nexport interface SparklineVariants {\n /** 折线(默认) */\n line: unknown;\n /** 折线下面填一层浅色 */\n area: unknown;\n /** 柱:每个值一根,从 0 起 */\n bar: unknown;\n}\n\n/** 角色与名称由组件给出(role=\"img\",名称是 label 加上数据的概括) */\nexport type SparklineManaged = 'role' | 'aria-label';\n\n/** 未声明的属性落到外层 span 上 */\nexport interface SparklineProps extends PartProps<'span', SparklineManaged> {\n /** 各个值,按时间先后;空值处断开 */\n data: readonly (NumericValue | null | undefined)[];\n /** 画法,默认 line */\n variant?: keyof SparklineVariants;\n /** 色调,默认 accent */\n tone?: StatusTone;\n /** 高度(CSS 长度),默认 2em */\n height?: string;\n /** 标出最后一个点(折线、面积),默认 true */\n showLast?: boolean;\n /** 纵向范围 [最小, 最大];不写的一端按数据取(柱从 0 起) */\n domain?: readonly [number | undefined, number | undefined];\n /** 读屏念的数值格式 */\n valueFormat?: NumericFormat;\n /** 名称:读屏先念它(“近 12 个月实际销售”) */\n label?: string;\n}\n\n/** Sparkline 的样式 */\nexport const sparklineStyles = css.create({\n root: { position: 'relative', display: 'block', width: '100%' },\n svg: { display: 'block', width: '100%', height: '100%', overflow: 'visible' },\n line: {\n fill: 'none',\n stroke: 'var(--tone-fill)',\n strokeWidth: 1.5,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n },\n area: { fill: 'var(--tone-fill)', fillOpacity: 0.15, stroke: 'none' },\n bar: { fill: 'var(--tone-fill)', fillOpacity: 0.85 },\n // 最后一个点:HTML 圆点按百分比定位(SVG 拉伸时圆不变形)\n last: {\n position: 'absolute',\n width: '6px',\n height: '6px',\n borderRadius: '_full',\n backgroundColor: 'var(--tone-fill)',\n // 一圈表面色把点与线分开\n boxShadow: `0 0 0 2px ${t.colors.surface}`,\n transform: 'translate(-50%, -50%)',\n pointerEvents: 'none',\n },\n height: (height: string) => ({ height }),\n position: (left: string, top: string) => ({ left, top }),\n});\n\n/** 迷你图:小折线、面积或柱 */\nexport const Sparkline = _component(\n ({\n data,\n variant = 'line',\n tone = 'accent',\n height = '2em',\n showLast = true,\n domain,\n valueFormat,\n label,\n ...rest\n }: SparklineProps) => {\n const lang = useLang();\n const format = useFormat();\n return () => {\n const values = data.map((value) => (value == null ? undefined : toNumber(value)));\n const present = values.filter((value): value is number => value !== undefined);\n const bars = variant === 'bar';\n const low = domain?.[0] ?? Math.min(...present, ...(bars ? [0] : []));\n const high = domain?.[1] ?? Math.max(...present, ...(bars ? [0] : []));\n const span = high - low || 1;\n // 纵坐标 0(上)–100(下);横坐标按位置,柱每个占 1 格\n const yOf = (value: number) => 100 - ((value - low) / span) * 100;\n const width = bars ? values.length : Math.max(values.length - 1, 1);\n\n // 连续的段:空值处断开\n const segments: [number, number][][] = [];\n let current: [number, number][] = [];\n values.forEach((value, position) => {\n if (value === undefined) {\n if (current.length) segments.push(current);\n current = [];\n } else current.push([position, yOf(value)]);\n });\n if (current.length) segments.push(current);\n const path = (points: [number, number][]) =>\n points.map(([x, y], i) => `${i ? 'L' : 'M'}${x} ${y}`).join(' ');\n\n const lastIndex = values.findLastIndex((value) => value !== undefined);\n const summary =\n present.length === 0\n ? lang.emptyValue\n : lang.sparklineSummary(\n present.length,\n format.number(data[values.findIndex((value) => value !== undefined)]!, valueFormat),\n format.number(data[lastIndex]!, valueFormat),\n format.number(Math.min(...present), valueFormat),\n format.number(Math.max(...present), valueFormat),\n );\n\n return (\n <span\n {...mergeAttrs<'span'>(\n { sx: [sparklineStyles.root, sparklineStyles.height(height), toneFillStyles[tone]] },\n rest,\n { role: 'img', 'aria-label': label ? `${label}:${summary}` : summary },\n )}\n >\n <svg\n {...css.attrs(sparklineStyles.svg)}\n viewBox={`0 0 ${width} 100`}\n preserveAspectRatio=\"none\"\n aria-hidden=\"true\"\n >\n {bars\n ? values.map((value, position) =>\n value === undefined ? null : (\n <rect\n key={position}\n x={position + 0.15}\n width={0.7}\n y={Math.min(yOf(value), yOf(Math.max(low, 0)))}\n height={Math.abs(yOf(value) - yOf(Math.max(low, 0)))}\n {...css.attrs(sparklineStyles.bar)}\n />\n ),\n )\n : segments.map((points, position) => (\n <g key={position}>\n {variant === 'area' && points.length > 1 && (\n <path\n d={`${path(points)} L${points.at(-1)![0]} 100 L${points[0]![0]} 100 Z`}\n {...css.attrs(sparklineStyles.area)}\n />\n )}\n <path\n d={path(points)}\n vector-effect=\"non-scaling-stroke\"\n {...css.attrs(sparklineStyles.line)}\n />\n </g>\n ))}\n </svg>\n {showLast && !bars && lastIndex >= 0 && (\n <span\n aria-hidden=\"true\"\n {...css.attrs(\n sparklineStyles.last,\n sparklineStyles.position(\n `${(lastIndex / width) * 100}%`,\n `${yOf(values[lastIndex]!)}%`,\n ),\n )}\n />\n )}\n </span>\n );\n };\n },\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';
|
|
2
|
+
import type { VNodeChild } from 'vue';
|
|
3
|
+
import { type IconData } from '../base/Icon';
|
|
4
|
+
import type { NumericFormat } from '../config/lang/format';
|
|
5
|
+
import { type PartProps } from '../utils/props';
|
|
6
|
+
import { type Tone } from '../utils/style/typography';
|
|
7
|
+
import type { NumericValue } from '../utils/data/numeric';
|
|
8
|
+
/** 忙碌由组件按 loading 管理 */
|
|
9
|
+
export type StatManaged = 'aria-busy';
|
|
10
|
+
/** 未声明的属性落到外层 dl 上 */
|
|
11
|
+
export interface StatProps extends PartProps<'dl', StatManaged> {
|
|
12
|
+
/** 指标名 */
|
|
13
|
+
label: VNodeChild;
|
|
14
|
+
/** 数值:number、bigint、Decimal 按当前语言格式化并在变化时滚动;字符串原样显示(如“—”、“98.5%”) */
|
|
15
|
+
value: NumericValue | string;
|
|
16
|
+
/**
|
|
17
|
+
* 数值的格式,如两位小数 `{ minimumFractionDigits: 2 }`、百分比 `{ style: 'percent' }`;
|
|
18
|
+
* 值以元给出、按万元显示时写 `{ scale: 10_000, maximumFractionDigits: 2 }` 并配 `unit="万元"`
|
|
19
|
+
*/
|
|
20
|
+
format?: NumericFormat;
|
|
21
|
+
/** 单位,跟在数值后面、字号小一档 */
|
|
22
|
+
unit?: VNodeChild;
|
|
23
|
+
/** 数值的色调:超时、缺漏这类要引起注意的数用 danger、warning;不写时是正文色 */
|
|
24
|
+
tone?: Tone;
|
|
25
|
+
/** 指标名前面的图标(装饰,对读屏隐藏) */
|
|
26
|
+
icon?: IconData;
|
|
27
|
+
/** 变化量(环比、同比):正数向上、负数向下;默认按百分比显示(0.12 → +12%) */
|
|
28
|
+
change?: number;
|
|
29
|
+
/** 变化量的格式,默认 `{ style: 'percent', maximumFractionDigits: 1, signDisplay: 'exceptZero' }` */
|
|
30
|
+
changeFormat?: NumericFormat;
|
|
31
|
+
/** 变化量后面的说明,如“较上月” */
|
|
32
|
+
changeLabel?: VNodeChild;
|
|
33
|
+
/** 下降是好事(成本、耗时、故障数):下降显示成功色、上升显示危险色 */
|
|
34
|
+
invertChange?: boolean;
|
|
35
|
+
/** 数值下面的补充说明(一行小字) */
|
|
36
|
+
description?: VNodeChild;
|
|
37
|
+
/** 底栏:上方一条分隔线;放两项时分别靠两端,如“年度目标 2,000 万元”与“完成 81%” */
|
|
38
|
+
footer?: VNodeChild;
|
|
39
|
+
/** 数值下面占满整宽的补充内容:进度条、迷你图 */
|
|
40
|
+
children?: VNodeChild;
|
|
41
|
+
/**
|
|
42
|
+
* 加载中:数值与变化量换成扫光的骨架,带 aria-busy;很快完成时不闪
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
loading?: boolean;
|
|
46
|
+
/** 指标名(dt)的部件属性 */
|
|
47
|
+
propsLabel?: PartProps<'dt'>;
|
|
48
|
+
/** 数值(dd)的部件属性 */
|
|
49
|
+
propsValue?: PartProps<'dd'>;
|
|
50
|
+
/** 图标外层的部件属性 */
|
|
51
|
+
propsIcon?: PartProps<'span', 'aria-hidden'>;
|
|
52
|
+
/** 数字本身(AnimatedNumber 或字符串值的 span)的部件属性 */
|
|
53
|
+
propsNumber?: PartProps<'span', 'prefix'>;
|
|
54
|
+
/** 单位的部件属性 */
|
|
55
|
+
propsUnit?: PartProps<'span'>;
|
|
56
|
+
/** 变化(dd)的部件属性 */
|
|
57
|
+
propsChange?: PartProps<'dd'>;
|
|
58
|
+
/** 变化后面的说明的部件属性 */
|
|
59
|
+
propsChangeLabel?: PartProps<'span'>;
|
|
60
|
+
/** 补充说明(dd)的部件属性 */
|
|
61
|
+
propsDescription?: PartProps<'dd'>;
|
|
62
|
+
/** 补充内容(dd,children 的外层)的部件属性 */
|
|
63
|
+
propsBody?: PartProps<'dd'>;
|
|
64
|
+
/** 底栏(dd)的部件属性 */
|
|
65
|
+
propsFooter?: PartProps<'dd'>;
|
|
66
|
+
}
|
|
67
|
+
/** Stat 的样式:root、label、icon、value、number、unit、change、description、body、footer、skeleton… */
|
|
68
|
+
export declare const statStyles: Readonly<{
|
|
69
|
+
body: css.CompiledStyles;
|
|
70
|
+
change: css.CompiledStyles;
|
|
71
|
+
changeLabel: css.CompiledStyles;
|
|
72
|
+
changeSkeleton: css.CompiledStyles;
|
|
73
|
+
description: css.CompiledStyles;
|
|
74
|
+
footer: css.CompiledStyles;
|
|
75
|
+
icon: css.CompiledStyles;
|
|
76
|
+
label: css.CompiledStyles;
|
|
77
|
+
number: css.CompiledStyles;
|
|
78
|
+
numberSkeleton: css.CompiledStyles;
|
|
79
|
+
root: css.CompiledStyles;
|
|
80
|
+
unit: css.CompiledStyles;
|
|
81
|
+
value: css.CompiledStyles;
|
|
82
|
+
}>;
|
|
83
|
+
/** 统计数值:指标名、数值与单位、图标、变化量 */
|
|
84
|
+
export declare const Stat: import("@zerodep-dev/vue-tsx-pro-tsx").TsxComponent<StatProps>;
|
|
85
|
+
/** 未声明的属性落到外层 div 上 */
|
|
86
|
+
export interface StatGroupProps extends PartProps<'div'> {
|
|
87
|
+
/**
|
|
88
|
+
* 每个指标最窄多宽(CSS 长度):放不下就换行
|
|
89
|
+
* @default '9rem'
|
|
90
|
+
*/
|
|
91
|
+
minItemWidth?: string;
|
|
92
|
+
/** Stat */
|
|
93
|
+
children?: VNodeChild;
|
|
94
|
+
}
|
|
95
|
+
/** StatGroup 的样式:root、item */
|
|
96
|
+
export declare const statGroupStyles: Readonly<{
|
|
97
|
+
item: css.CompiledStyles;
|
|
98
|
+
root: css.CompiledStyles;
|
|
99
|
+
}>;
|
|
100
|
+
/** StatGroup 的动态样式:列宽 */
|
|
101
|
+
export declare const statGroupDynamicStyles: Readonly<{
|
|
102
|
+
readonly columns: (min: string) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
|
|
103
|
+
}>;
|
|
104
|
+
/** 一排指标:按宽度换行,同一行里指标之间一条竖线 */
|
|
105
|
+
export declare const StatGroup: import("@zerodep-dev/vue-tsx-pro-tsx").TsxComponent<StatGroupProps>;
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { t } from "../config/theme/tokens.js";
|
|
2
|
+
import { hasContent, mergeAttrs, mergePartProps } from "../utils/props.js";
|
|
3
|
+
import { toneStyles } from "../utils/style/typography.js";
|
|
4
|
+
import { Icon } from "../base/Icon.js";
|
|
5
|
+
import { useDelayedLoading } from "../utils/motion/delayed-loading.js";
|
|
6
|
+
import { AnimatedNumber } from "./AnimatedNumber.js";
|
|
7
|
+
import { shimmerStyles } from "../utils/style/shimmer.js";
|
|
8
|
+
import { Skeleton } from "../feedback/Skeleton.js";
|
|
9
|
+
import { Fragment, createVNode, mergeProps } from "vue";
|
|
10
|
+
import { _component, childrenProp, createContext, readonlyProp, restProps } from "@zerodep-dev/vue-tsx-pro-tsx";
|
|
11
|
+
import * as css from "@zerodep-dev/vue-tsx-pro-tsx/styles";
|
|
12
|
+
import { TrendingDown, TrendingUp } from "@lucide/icons";
|
|
13
|
+
//#region src/display/Stat.tsx
|
|
14
|
+
/**
|
|
15
|
+
* 统计数值(dl):指标名、数值与单位、可选的图标与环比变化。仪表盘顶部的一排卡片、详情页的关键指标。
|
|
16
|
+
* 外观只是内容,放进 Card、Grid 里组合:
|
|
17
|
+
*
|
|
18
|
+
* <Card><Stat label="实际销售额" value={910.36} unit="万元" icon={Wallet} change={0.123} changeLabel="较上月" /></Card>
|
|
19
|
+
* <Stat label="测算销售" value={a} format={wan} unit="万元" footer={<><span>年度目标 2,000 万元</span><span>完成 81%</span></>}>
|
|
20
|
+
* <Progress value={81} size="xs" aria-label="年度目标完成度" />
|
|
21
|
+
* </Stat>
|
|
22
|
+
*
|
|
23
|
+
* 排版(参考 Ant Design Pro 的 ChartCard):第一行是图标与指标名、结束边是变化量;第二行是数值;
|
|
24
|
+
* children 是数值下面占满整宽的补充内容(进度条、迷你图);footer 是底栏,上方一条分隔线,放两项时分别靠两端。
|
|
25
|
+
* 卡片再宽,内容也铺满整行,不在中间留一大块空白。
|
|
26
|
+
*
|
|
27
|
+
* 一排几个指标用 StatGroup:按宽度换行,指标之间一条竖线(同一行里):
|
|
28
|
+
*
|
|
29
|
+
* <StatGroup><Stat label="超时" value={10} tone="danger" /><Stat label="待验收" value={5} /></StatGroup>
|
|
30
|
+
*
|
|
31
|
+
* 数值变化时滚动过渡(AnimatedNumber),读屏只读终值;变化量按正负着色并带箭头,
|
|
32
|
+
* 成本、耗时这类“越低越好”的指标写 invertChange。加载中(loading)数值与变化量换成扫光的骨架,指标名照常显示。
|
|
33
|
+
*/
|
|
34
|
+
/** 忙碌由组件按 loading 管理 */
|
|
35
|
+
/** 未声明的属性落到外层 dl 上 */
|
|
36
|
+
var CHANGE_FORMAT = {
|
|
37
|
+
style: "percent",
|
|
38
|
+
maximumFractionDigits: 1,
|
|
39
|
+
signDisplay: "exceptZero"
|
|
40
|
+
};
|
|
41
|
+
/** 在 StatGroup 里:指标之间画竖线 */
|
|
42
|
+
var StatGroupContext = createContext("StatGroup");
|
|
43
|
+
/** Stat 的样式:root、label、icon、value、number、unit、change、description、body、footer、skeleton… */
|
|
44
|
+
var statStyles = css.create({
|
|
45
|
+
root: {
|
|
46
|
+
display: "flex",
|
|
47
|
+
flexWrap: "wrap",
|
|
48
|
+
alignItems: "center",
|
|
49
|
+
columnGap: "_sm",
|
|
50
|
+
rowGap: "_xs",
|
|
51
|
+
margin: 0,
|
|
52
|
+
minWidth: 0
|
|
53
|
+
},
|
|
54
|
+
label: {
|
|
55
|
+
order: 0,
|
|
56
|
+
flexGrow: 1,
|
|
57
|
+
display: "flex",
|
|
58
|
+
alignItems: "center",
|
|
59
|
+
gap: "_sm",
|
|
60
|
+
minWidth: 0,
|
|
61
|
+
margin: 0,
|
|
62
|
+
color: "_textMuted",
|
|
63
|
+
fontSize: "_sm"
|
|
64
|
+
},
|
|
65
|
+
icon: {
|
|
66
|
+
display: "inline-flex",
|
|
67
|
+
alignItems: "center",
|
|
68
|
+
justifyContent: "center",
|
|
69
|
+
flexShrink: 0,
|
|
70
|
+
width: "1.75em",
|
|
71
|
+
height: "1.75em",
|
|
72
|
+
borderRadius: "_md",
|
|
73
|
+
backgroundColor: "_accentSoft",
|
|
74
|
+
color: "_accentText"
|
|
75
|
+
},
|
|
76
|
+
value: {
|
|
77
|
+
order: 2,
|
|
78
|
+
flexBasis: "100%",
|
|
79
|
+
display: "flex",
|
|
80
|
+
alignItems: "baseline",
|
|
81
|
+
flexWrap: "wrap",
|
|
82
|
+
gap: "_xs",
|
|
83
|
+
margin: 0
|
|
84
|
+
},
|
|
85
|
+
number: {
|
|
86
|
+
fontSize: "_xxl",
|
|
87
|
+
fontWeight: "_bold",
|
|
88
|
+
lineHeight: "_tight",
|
|
89
|
+
color: "_text",
|
|
90
|
+
fontVariantNumeric: "tabular-nums"
|
|
91
|
+
},
|
|
92
|
+
unit: {
|
|
93
|
+
color: "_textMuted",
|
|
94
|
+
fontSize: "_xs"
|
|
95
|
+
},
|
|
96
|
+
change: {
|
|
97
|
+
order: 1,
|
|
98
|
+
display: "flex",
|
|
99
|
+
alignItems: "center",
|
|
100
|
+
gap: "_xs",
|
|
101
|
+
fontSize: "_xs",
|
|
102
|
+
margin: 0,
|
|
103
|
+
whiteSpace: "nowrap"
|
|
104
|
+
},
|
|
105
|
+
changeLabel: { color: "_textMuted" },
|
|
106
|
+
description: {
|
|
107
|
+
order: 3,
|
|
108
|
+
flexBasis: "100%",
|
|
109
|
+
color: "_textMuted",
|
|
110
|
+
fontSize: "_xs",
|
|
111
|
+
margin: 0
|
|
112
|
+
},
|
|
113
|
+
body: {
|
|
114
|
+
order: 3,
|
|
115
|
+
flexBasis: "100%",
|
|
116
|
+
margin: 0,
|
|
117
|
+
minWidth: 0
|
|
118
|
+
},
|
|
119
|
+
footer: {
|
|
120
|
+
order: 3,
|
|
121
|
+
flexBasis: "100%",
|
|
122
|
+
display: "flex",
|
|
123
|
+
flexWrap: "wrap",
|
|
124
|
+
alignItems: "baseline",
|
|
125
|
+
justifyContent: "space-between",
|
|
126
|
+
columnGap: "_md",
|
|
127
|
+
rowGap: "_xs",
|
|
128
|
+
margin: 0,
|
|
129
|
+
marginBlockStart: "_xs",
|
|
130
|
+
paddingBlockStart: "_sm",
|
|
131
|
+
borderBlockStartWidth: "_xs",
|
|
132
|
+
borderBlockStartStyle: "solid",
|
|
133
|
+
borderBlockStartColor: "_borderMuted",
|
|
134
|
+
color: "_textMuted",
|
|
135
|
+
fontSize: "_xs"
|
|
136
|
+
},
|
|
137
|
+
numberSkeleton: {
|
|
138
|
+
fontSize: "_xxl",
|
|
139
|
+
width: "4em",
|
|
140
|
+
height: "1.25em"
|
|
141
|
+
},
|
|
142
|
+
changeSkeleton: {
|
|
143
|
+
width: "6em",
|
|
144
|
+
height: "1.5em"
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
/** 统计数值:指标名、数值与单位、图标、变化量 */
|
|
148
|
+
var Stat = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
149
|
+
const label = readonlyProp(_props, "label");
|
|
150
|
+
const value = readonlyProp(_props, "value");
|
|
151
|
+
const format = readonlyProp(_props, "format");
|
|
152
|
+
const unit = readonlyProp(_props, "unit");
|
|
153
|
+
const tone = readonlyProp(_props, "tone");
|
|
154
|
+
const icon = readonlyProp(_props, "icon");
|
|
155
|
+
const change = readonlyProp(_props, "change");
|
|
156
|
+
const changeFormat = readonlyProp(_props, "changeFormat", () => CHANGE_FORMAT);
|
|
157
|
+
const changeLabel = readonlyProp(_props, "changeLabel");
|
|
158
|
+
const invertChange = readonlyProp(_props, "invertChange", false);
|
|
159
|
+
const description = readonlyProp(_props, "description");
|
|
160
|
+
const footer = readonlyProp(_props, "footer");
|
|
161
|
+
const children = childrenProp(_props);
|
|
162
|
+
const loading = readonlyProp(_props, "loading", false);
|
|
163
|
+
const propsLabel = readonlyProp(_props, "propsLabel");
|
|
164
|
+
const propsValue = readonlyProp(_props, "propsValue");
|
|
165
|
+
const propsIcon = readonlyProp(_props, "propsIcon");
|
|
166
|
+
const propsNumber = readonlyProp(_props, "propsNumber");
|
|
167
|
+
const propsUnit = readonlyProp(_props, "propsUnit");
|
|
168
|
+
const propsChange = readonlyProp(_props, "propsChange");
|
|
169
|
+
const propsChangeLabel = readonlyProp(_props, "propsChangeLabel");
|
|
170
|
+
const propsDescription = readonlyProp(_props, "propsDescription");
|
|
171
|
+
const propsBody = readonlyProp(_props, "propsBody");
|
|
172
|
+
const propsFooter = readonlyProp(_props, "propsFooter");
|
|
173
|
+
const rest = restProps(_props, _ctx, false);
|
|
174
|
+
const grouped = StatGroupContext.inject(false);
|
|
175
|
+
const skeleton = useDelayedLoading(() => loading.value);
|
|
176
|
+
let revealing = false;
|
|
177
|
+
return () => {
|
|
178
|
+
if (skeleton.value) revealing = true;
|
|
179
|
+
const reveal = revealing && !skeleton.value && shimmerStyles.reveal;
|
|
180
|
+
const direction = change.value === void 0 || change.value === 0 ? "flat" : change.value > 0 ? "up" : "down";
|
|
181
|
+
const improved = invertChange.value ? direction === "down" : direction === "up";
|
|
182
|
+
const changeTone = direction === "flat" ? "muted" : improved ? "success" : "danger";
|
|
183
|
+
return createVNode("dl", mergeAttrs({ sx: [statStyles.root, grouped && statGroupStyles.item] }, rest, { "aria-busy": loading.value || void 0 }), [
|
|
184
|
+
createVNode("dt", mergeAttrs({ sx: statStyles.label }, propsLabel.value), [icon.value && createVNode("span", mergeAttrs({ sx: statStyles.icon }, propsIcon.value, { "aria-hidden": true }), [createVNode(Icon, { "icon": icon.value }, null)]), createVNode("span", null, [label.value])]),
|
|
185
|
+
createVNode("dd", mergeAttrs({ sx: [statStyles.value, reveal] }, propsValue.value), [skeleton.value ? createVNode(Skeleton, { "sx": statStyles.numberSkeleton }, null) : typeof value.value !== "string" ? createVNode(AnimatedNumber, mergePartProps({
|
|
186
|
+
sx: [statStyles.number, tone.value && toneStyles[tone.value]],
|
|
187
|
+
value: value.value
|
|
188
|
+
}, propsNumber.value, {
|
|
189
|
+
value: value.value,
|
|
190
|
+
format: format.value
|
|
191
|
+
}), null) : createVNode("span", mergeAttrs({ sx: [statStyles.number, tone.value && toneStyles[tone.value]] }, propsNumber.value), [value.value]), unit.value != null && !skeleton.value && createVNode("span", mergeAttrs({ sx: statStyles.unit }, propsUnit.value), [unit.value])]),
|
|
192
|
+
change.value !== void 0 && createVNode("dd", mergeProps(mergeAttrs({ sx: [statStyles.change, reveal] }, propsChange.value), { "data-trend": skeleton.value ? void 0 : direction }), [skeleton.value ? createVNode(Skeleton, { "sx": statStyles.changeSkeleton }, null) : createVNode(Fragment, null, [createVNode("span", css.attrs(toneStyles[changeTone]), [
|
|
193
|
+
direction !== "flat" && createVNode(Icon, {
|
|
194
|
+
"icon": direction === "up" ? TrendingUp : TrendingDown,
|
|
195
|
+
"aria-hidden": "true"
|
|
196
|
+
}, null),
|
|
197
|
+
" ",
|
|
198
|
+
createVNode(AnimatedNumber, {
|
|
199
|
+
"value": change.value,
|
|
200
|
+
"format": changeFormat.value
|
|
201
|
+
}, null)
|
|
202
|
+
]), changeLabel.value != null && createVNode("span", mergeAttrs({ sx: statStyles.changeLabel }, propsChangeLabel.value), [changeLabel.value])])]),
|
|
203
|
+
hasContent(description.value) && createVNode("dd", mergeAttrs({ sx: statStyles.description }, propsDescription.value), [description.value]),
|
|
204
|
+
hasContent(children.value) && createVNode("dd", mergeAttrs({ sx: statStyles.body }, propsBody.value), [children.value]),
|
|
205
|
+
hasContent(footer.value) && createVNode("dd", mergeAttrs({ sx: statStyles.footer }, propsFooter.value), [footer.value])
|
|
206
|
+
]);
|
|
207
|
+
};
|
|
208
|
+
}, {
|
|
209
|
+
name: "Stat",
|
|
210
|
+
props: [
|
|
211
|
+
"label",
|
|
212
|
+
"value",
|
|
213
|
+
"format",
|
|
214
|
+
"unit",
|
|
215
|
+
"tone",
|
|
216
|
+
"icon",
|
|
217
|
+
"change",
|
|
218
|
+
"changeFormat",
|
|
219
|
+
"changeLabel",
|
|
220
|
+
"invertChange",
|
|
221
|
+
"description",
|
|
222
|
+
"footer",
|
|
223
|
+
"loading",
|
|
224
|
+
"propsLabel",
|
|
225
|
+
"propsValue",
|
|
226
|
+
"propsIcon",
|
|
227
|
+
"propsNumber",
|
|
228
|
+
"propsUnit",
|
|
229
|
+
"propsChange",
|
|
230
|
+
"propsChangeLabel",
|
|
231
|
+
"propsDescription",
|
|
232
|
+
"propsBody",
|
|
233
|
+
"propsFooter"
|
|
234
|
+
]
|
|
235
|
+
});
|
|
236
|
+
/** 未声明的属性落到外层 div 上 */
|
|
237
|
+
/** StatGroup 的样式:root、item */
|
|
238
|
+
var statGroupStyles = css.create({
|
|
239
|
+
root: {
|
|
240
|
+
display: "grid",
|
|
241
|
+
rowGap: "_md",
|
|
242
|
+
overflow: "hidden"
|
|
243
|
+
},
|
|
244
|
+
item: {
|
|
245
|
+
paddingInline: "_md",
|
|
246
|
+
marginInlineStart: `calc(-1 * ${t.borderWidths.xs})`,
|
|
247
|
+
borderInlineStartWidth: "_xs",
|
|
248
|
+
borderInlineStartStyle: "solid",
|
|
249
|
+
borderInlineStartColor: "_borderMuted"
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
/** StatGroup 的动态样式:列宽 */
|
|
253
|
+
var statGroupDynamicStyles = css.create({ columns: (min) => ({ gridTemplateColumns: `repeat(auto-fit, minmax(min(${min}, 100%), 1fr))` }) });
|
|
254
|
+
/** 一排指标:按宽度换行,同一行里指标之间一条竖线 */
|
|
255
|
+
var StatGroup = /*#__PURE__*/ _component((_props2, _ctx2) => {
|
|
256
|
+
const minItemWidth = readonlyProp(_props2, "minItemWidth", "9rem");
|
|
257
|
+
const children = childrenProp(_props2);
|
|
258
|
+
const rest = restProps(_props2, _ctx2, false);
|
|
259
|
+
StatGroupContext.provide(true);
|
|
260
|
+
return () => createVNode("div", mergeAttrs({ sx: [statGroupStyles.root, css.bind(statGroupDynamicStyles.columns, () => [minItemWidth.value], true)] }, rest), [children.value]);
|
|
261
|
+
}, {
|
|
262
|
+
name: "StatGroup",
|
|
263
|
+
props: ["minItemWidth"]
|
|
264
|
+
});
|
|
265
|
+
//#endregion
|
|
266
|
+
export { Stat, StatGroup, statGroupDynamicStyles, statGroupStyles, statStyles };
|
|
267
|
+
|
|
268
|
+
//# sourceMappingURL=Stat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stat.js","names":["_vtp_readonlyProp","_vtp_childrenProp","_vtp_restProps","_createVNode","_mergeProps","_Fragment"],"sources":["../../src/display/Stat.tsx"],"sourcesContent":["/**\n * 统计数值(dl):指标名、数值与单位、可选的图标与环比变化。仪表盘顶部的一排卡片、详情页的关键指标。\n * 外观只是内容,放进 Card、Grid 里组合:\n *\n * <Card><Stat label=\"实际销售额\" value={910.36} unit=\"万元\" icon={Wallet} change={0.123} changeLabel=\"较上月\" /></Card>\n * <Stat label=\"测算销售\" value={a} format={wan} unit=\"万元\" footer={<><span>年度目标 2,000 万元</span><span>完成 81%</span></>}>\n * <Progress value={81} size=\"xs\" aria-label=\"年度目标完成度\" />\n * </Stat>\n *\n * 排版(参考 Ant Design Pro 的 ChartCard):第一行是图标与指标名、结束边是变化量;第二行是数值;\n * children 是数值下面占满整宽的补充内容(进度条、迷你图);footer 是底栏,上方一条分隔线,放两项时分别靠两端。\n * 卡片再宽,内容也铺满整行,不在中间留一大块空白。\n *\n * 一排几个指标用 StatGroup:按宽度换行,指标之间一条竖线(同一行里):\n *\n * <StatGroup><Stat label=\"超时\" value={10} tone=\"danger\" /><Stat label=\"待验收\" value={5} /></StatGroup>\n *\n * 数值变化时滚动过渡(AnimatedNumber),读屏只读终值;变化量按正负着色并带箭头,\n * 成本、耗时这类“越低越好”的指标写 invertChange。加载中(loading)数值与变化量换成扫光的骨架,指标名照常显示。\n */\nimport { TrendingDown, TrendingUp } from '@lucide/icons';\nimport { createContext, _component } from '@zerodep-dev/vue-tsx-pro-tsx';\nimport * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport type { VNodeChild } from 'vue';\nimport { Icon, type IconData } from '../base/Icon';\nimport type { NumericFormat } from '../config/lang/format';\nimport { Skeleton } from '../feedback/Skeleton';\nimport { useDelayedLoading } from '../utils/motion/delayed-loading';\nimport { hasContent, mergeAttrs, mergePartProps, type PartProps } from '../utils/props';\nimport { shimmerStyles } from '../utils/style/shimmer';\nimport { toneStyles, type Tone } from '../utils/style/typography';\nimport type { NumericValue } from '../utils/data/numeric';\nimport { AnimatedNumber, type AnimatedNumberProps } from './AnimatedNumber';\nimport { t } from '../config/theme/tokens';\n\n/** 忙碌由组件按 loading 管理 */\nexport type StatManaged = 'aria-busy';\n\n/** 未声明的属性落到外层 dl 上 */\nexport interface StatProps extends PartProps<'dl', StatManaged> {\n /** 指标名 */\n label: VNodeChild;\n /** 数值:number、bigint、Decimal 按当前语言格式化并在变化时滚动;字符串原样显示(如“—”、“98.5%”) */\n value: NumericValue | string;\n /**\n * 数值的格式,如两位小数 `{ minimumFractionDigits: 2 }`、百分比 `{ style: 'percent' }`;\n * 值以元给出、按万元显示时写 `{ scale: 10_000, maximumFractionDigits: 2 }` 并配 `unit=\"万元\"`\n */\n format?: NumericFormat;\n /** 单位,跟在数值后面、字号小一档 */\n unit?: VNodeChild;\n /** 数值的色调:超时、缺漏这类要引起注意的数用 danger、warning;不写时是正文色 */\n tone?: Tone;\n /** 指标名前面的图标(装饰,对读屏隐藏) */\n icon?: IconData;\n /** 变化量(环比、同比):正数向上、负数向下;默认按百分比显示(0.12 → +12%) */\n change?: number;\n /** 变化量的格式,默认 `{ style: 'percent', maximumFractionDigits: 1, signDisplay: 'exceptZero' }` */\n changeFormat?: NumericFormat;\n /** 变化量后面的说明,如“较上月” */\n changeLabel?: VNodeChild;\n /** 下降是好事(成本、耗时、故障数):下降显示成功色、上升显示危险色 */\n invertChange?: boolean;\n /** 数值下面的补充说明(一行小字) */\n description?: VNodeChild;\n /** 底栏:上方一条分隔线;放两项时分别靠两端,如“年度目标 2,000 万元”与“完成 81%” */\n footer?: VNodeChild;\n /** 数值下面占满整宽的补充内容:进度条、迷你图 */\n children?: VNodeChild;\n /**\n * 加载中:数值与变化量换成扫光的骨架,带 aria-busy;很快完成时不闪\n * @default false\n */\n loading?: boolean;\n /** 指标名(dt)的部件属性 */\n propsLabel?: PartProps<'dt'>;\n /** 数值(dd)的部件属性 */\n propsValue?: PartProps<'dd'>;\n /** 图标外层的部件属性 */\n propsIcon?: PartProps<'span', 'aria-hidden'>;\n /** 数字本身(AnimatedNumber 或字符串值的 span)的部件属性 */\n propsNumber?: PartProps<'span', 'prefix'>;\n /** 单位的部件属性 */\n propsUnit?: PartProps<'span'>;\n /** 变化(dd)的部件属性 */\n propsChange?: PartProps<'dd'>;\n /** 变化后面的说明的部件属性 */\n propsChangeLabel?: PartProps<'span'>;\n /** 补充说明(dd)的部件属性 */\n propsDescription?: PartProps<'dd'>;\n /** 补充内容(dd,children 的外层)的部件属性 */\n propsBody?: PartProps<'dd'>;\n /** 底栏(dd)的部件属性 */\n propsFooter?: PartProps<'dd'>;\n}\n\nconst CHANGE_FORMAT: NumericFormat = {\n style: 'percent',\n maximumFractionDigits: 1,\n signDisplay: 'exceptZero',\n};\n\n/** 在 StatGroup 里:指标之间画竖线 */\nconst StatGroupContext = createContext<boolean>('StatGroup');\n\n/** Stat 的样式:root、label、icon、value、number、unit、change、description、body、footer、skeleton… */\nexport const statStyles = css.create({\n // 第一行是指标名与变化量(结束边),其余各占一整行。可换行的弹性布局而不是两列网格:\n // 卡片窄时变化量换到下一行,指标名不被挤成一字一行;DOM 顺序不变(读屏仍是名称、数值、变化量)\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n columnGap: '_sm',\n rowGap: '_xs',\n margin: 0,\n minWidth: 0,\n },\n // dt 里放图标与指标名:dl 的子元素只能是 dt、dd\n label: {\n order: 0,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '_sm',\n minWidth: 0,\n margin: 0,\n color: '_textMuted',\n fontSize: '_sm',\n },\n icon: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: '1.75em',\n height: '1.75em',\n borderRadius: '_md',\n backgroundColor: '_accentSoft',\n color: '_accentText',\n },\n value: {\n order: 2,\n flexBasis: '100%',\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n gap: '_xs',\n margin: 0,\n },\n number: {\n fontSize: '_xxl',\n fontWeight: '_bold',\n lineHeight: '_tight',\n color: '_text',\n fontVariantNumeric: 'tabular-nums',\n },\n unit: { color: '_textMuted', fontSize: '_xs' },\n // 变化量在指标名那一行的结束边\n change: {\n order: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '_xs',\n fontSize: '_xs',\n margin: 0,\n whiteSpace: 'nowrap',\n },\n changeLabel: { color: '_textMuted' },\n description: { order: 3, flexBasis: '100%', color: '_textMuted', fontSize: '_xs', margin: 0 },\n body: { order: 3, flexBasis: '100%', margin: 0, minWidth: 0 },\n // 底栏:两项时分别靠两端,多了换行\n footer: {\n order: 3,\n flexBasis: '100%',\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'baseline',\n justifyContent: 'space-between',\n columnGap: '_md',\n rowGap: '_xs',\n margin: 0,\n marginBlockStart: '_xs',\n paddingBlockStart: '_sm',\n borderBlockStartWidth: '_xs',\n borderBlockStartStyle: 'solid',\n borderBlockStartColor: '_borderMuted',\n color: '_textMuted',\n fontSize: '_xs',\n },\n // 骨架与数值、变化量同高:加载完换成内容时不跳\n numberSkeleton: { fontSize: '_xxl', width: '4em', height: '1.25em' },\n changeSkeleton: { width: '6em', height: '1.5em' },\n});\n\n/** 统计数值:指标名、数值与单位、图标、变化量 */\nexport const Stat = _component(\n ({\n label,\n value,\n format,\n unit,\n tone,\n icon,\n change,\n changeFormat = CHANGE_FORMAT,\n changeLabel,\n invertChange = false,\n description,\n footer,\n children,\n loading = false,\n propsLabel,\n propsValue,\n propsIcon,\n propsNumber,\n propsUnit,\n propsChange,\n propsChangeLabel,\n propsDescription,\n propsBody,\n propsFooter,\n ...rest\n }: StatProps) => {\n const grouped = StatGroupContext.inject(false);\n // 骨架防闪烁;aria-busy 按真实的 loading\n const skeleton = useDelayedLoading(() => loading);\n // 出现过骨架之后,换回数值时淡入(样式在切换的那一刻加上,动画才会播)\n let revealing = false;\n return () => {\n if (skeleton.value) revealing = true;\n const reveal = revealing && !skeleton.value && shimmerStyles.reveal;\n const direction = change === undefined || change === 0 ? 'flat' : change > 0 ? 'up' : 'down';\n const improved = invertChange ? direction === 'down' : direction === 'up';\n const changeTone = direction === 'flat' ? 'muted' : improved ? 'success' : 'danger';\n return (\n <dl\n {...mergeAttrs<'dl'>({ sx: [statStyles.root, grouped && statGroupStyles.item] }, rest, {\n 'aria-busy': loading || undefined,\n })}\n >\n <dt {...mergeAttrs<'dt'>({ sx: statStyles.label }, propsLabel)}>\n {icon && (\n <span\n {...mergeAttrs<'span'>({ sx: statStyles.icon }, propsIcon, { 'aria-hidden': true })}\n >\n <Icon icon={icon} />\n </span>\n )}\n <span>{label}</span>\n </dt>\n <dd {...mergeAttrs<'dd'>({ sx: [statStyles.value, reveal] }, propsValue)}>\n {skeleton.value ? (\n <Skeleton sx={statStyles.numberSkeleton} />\n ) : typeof value !== 'string' ? (\n <AnimatedNumber\n {...mergePartProps<AnimatedNumberProps>(\n { sx: [statStyles.number, tone && toneStyles[tone]], value },\n propsNumber,\n {\n value,\n format,\n },\n )}\n />\n ) : (\n <span\n {...mergeAttrs<'span'>(\n { sx: [statStyles.number, tone && toneStyles[tone]] },\n propsNumber,\n )}\n >\n {value}\n </span>\n )}\n {unit != null && !skeleton.value && (\n <span {...mergeAttrs<'span'>({ sx: statStyles.unit }, propsUnit)}>{unit}</span>\n )}\n </dd>\n {change !== undefined && (\n <dd\n {...mergeAttrs<'dd'>({ sx: [statStyles.change, reveal] }, propsChange)}\n data-trend={skeleton.value ? undefined : direction}\n >\n {skeleton.value ? (\n <Skeleton sx={statStyles.changeSkeleton} />\n ) : (\n <>\n <span {...css.attrs(toneStyles[changeTone])}>\n {direction !== 'flat' && (\n <Icon\n icon={direction === 'up' ? TrendingUp : TrendingDown}\n aria-hidden=\"true\"\n />\n )}{' '}\n <AnimatedNumber value={change} format={changeFormat} />\n </span>\n {changeLabel != null && (\n <span {...mergeAttrs<'span'>({ sx: statStyles.changeLabel }, propsChangeLabel)}>\n {changeLabel}\n </span>\n )}\n </>\n )}\n </dd>\n )}\n {hasContent(description) && (\n <dd {...mergeAttrs<'dd'>({ sx: statStyles.description }, propsDescription)}>\n {description}\n </dd>\n )}\n {hasContent(children) && (\n <dd {...mergeAttrs<'dd'>({ sx: statStyles.body }, propsBody)}>{children}</dd>\n )}\n {hasContent(footer) && (\n <dd {...mergeAttrs<'dd'>({ sx: statStyles.footer }, propsFooter)}>{footer}</dd>\n )}\n </dl>\n );\n };\n },\n);\n\n/** 未声明的属性落到外层 div 上 */\nexport interface StatGroupProps extends PartProps<'div'> {\n /**\n * 每个指标最窄多宽(CSS 长度):放不下就换行\n * @default '9rem'\n */\n minItemWidth?: string;\n /** Stat */\n children?: VNodeChild;\n}\n\n/** StatGroup 的样式:root、item */\nexport const statGroupStyles = css.create({\n // 每个指标的起始边一条竖线;整组往起始方向挪一条线的位置,每行第一个的竖线藏到外面(overflow 裁掉)\n root: { display: 'grid', rowGap: '_md', overflow: 'hidden' },\n item: {\n paddingInline: '_md',\n marginInlineStart: `calc(-1 * ${t.borderWidths.xs})`,\n borderInlineStartWidth: '_xs',\n borderInlineStartStyle: 'solid',\n borderInlineStartColor: '_borderMuted',\n },\n});\n\n/** StatGroup 的动态样式:列宽 */\nexport const statGroupDynamicStyles = css.create({\n columns: (min: string) => ({\n gridTemplateColumns: `repeat(auto-fit, minmax(min(${min}, 100%), 1fr))`,\n }),\n});\n\n/** 一排指标:按宽度换行,同一行里指标之间一条竖线 */\nexport const StatGroup = _component(\n ({ minItemWidth = '9rem', children, ...rest }: StatGroupProps) => {\n StatGroupContext.provide(true);\n return () => (\n <div\n {...mergeAttrs<'div'>(\n { sx: [statGroupStyles.root, statGroupDynamicStyles.columns(minItemWidth)] },\n rest,\n )}\n >\n {children}\n </div>\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGA,IAAM,gBAA+B;CACnC,OAAO;CACP,uBAAuB;CACvB,aAAa;AACf;;AAGA,IAAM,mBAAmB,cAAuB,WAAW;;AAG3D,IAAa,aAAa,IAAI,OAAO;CAGnC,MAAM;EACJ,SAAS;EACT,UAAU;EACV,YAAY;EACZ,WAAW;EACX,QAAQ;EACR,QAAQ;EACR,UAAU;CACZ;CAEA,OAAO;EACL,OAAO;EACP,UAAU;EACV,SAAS;EACT,YAAY;EACZ,KAAK;EACL,UAAU;EACV,QAAQ;EACR,OAAO;EACP,UAAU;CACZ;CACA,MAAM;EACJ,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,OAAO;EACP,QAAQ;EACR,cAAc;EACd,iBAAiB;EACjB,OAAO;CACT;CACA,OAAO;EACL,OAAO;EACP,WAAW;EACX,SAAS;EACT,YAAY;EACZ,UAAU;EACV,KAAK;EACL,QAAQ;CACV;CACA,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,oBAAoB;CACtB;CACA,MAAM;EAAE,OAAO;EAAc,UAAU;CAAM;CAE7C,QAAQ;EACN,OAAO;EACP,SAAS;EACT,YAAY;EACZ,KAAK;EACL,UAAU;EACV,QAAQ;EACR,YAAY;CACd;CACA,aAAa,EAAE,OAAO,aAAa;CACnC,aAAa;EAAE,OAAO;EAAG,WAAW;EAAQ,OAAO;EAAc,UAAU;EAAO,QAAQ;CAAE;CAC5F,MAAM;EAAE,OAAO;EAAG,WAAW;EAAQ,QAAQ;EAAG,UAAU;CAAE;CAE5D,QAAQ;EACN,OAAO;EACP,WAAW;EACX,SAAS;EACT,UAAU;EACV,YAAY;EACZ,gBAAgB;EAChB,WAAW;EACX,QAAQ;EACR,QAAQ;EACR,kBAAkB;EAClB,mBAAmB;EACnB,uBAAuB;EACvB,uBAAuB;EACvB,uBAAuB;EACvB,OAAO;EACP,UAAU;CACZ;CAEA,gBAAgB;EAAE,UAAU;EAAQ,OAAO;EAAO,QAAQ;CAAS;CACnE,gBAAgB;EAAE,OAAO;EAAO,QAAQ;CAAQ;AAClD,CAAC;;AAGD,IAAa,OAAO,0BAClB,QAAA,SA0BiB;CAAA,MAAA,QAAAA,aAAA,QAAA,OAAA;CAAA,MAAA,QAAAA,aAAA,QAAA,OAAA;CAAA,MAAA,SAAAA,aAAA,QAAA,QAAA;CAAA,MAAA,OAAAA,aAAA,QAAA,MAAA;CAAA,MAAA,OAAAA,aAAA,QAAA,MAAA;CAAA,MAAA,OAAAA,aAAA,QAAA,MAAA;CAAA,MAAA,SAAAA,aAAA,QAAA,QAAA;CAAA,MAAA,eAAAA,aAAA,QAAA,sBAlBA,aAAa;CAAA,MAAA,cAAAA,aAAA,QAAA,aAAA;CAAA,MAAA,eAAAA,aAAA,QAAA,gBAEb,KAAK;CAAA,MAAA,cAAAA,aAAA,QAAA,aAAA;CAAA,MAAA,SAAAA,aAAA,QAAA,QAAA;CAAA,MAAA,WAAAC,aAAA,MAAA;CAAA,MAAA,UAAAD,aAAA,QAAA,WAIV,KAAK;CAAA,MAAA,aAAAA,aAAA,QAAA,YAAA;CAAA,MAAA,aAAAA,aAAA,QAAA,YAAA;CAAA,MAAA,YAAAA,aAAA,QAAA,WAAA;CAAA,MAAA,cAAAA,aAAA,QAAA,aAAA;CAAA,MAAA,YAAAA,aAAA,QAAA,WAAA;CAAA,MAAA,cAAAA,aAAA,QAAA,aAAA;CAAA,MAAA,mBAAAA,aAAA,QAAA,kBAAA;CAAA,MAAA,mBAAAA,aAAA,QAAA,kBAAA;CAAA,MAAA,YAAAA,aAAA,QAAA,WAAA;CAAA,MAAA,cAAAA,aAAA,QAAA,aAAA;CAAA,MAWZ,OAAIE,UAAA,QAAA,MAAA,KAAA;CAEP,MAAM,UAAU,iBAAiB,OAAO,KAAK;CAE7C,MAAM,WAAW,wBAAkB,QAAA,KAAa;CAEhD,IAAI,YAAY;CAChB,aAAa;EACX,IAAI,SAAS,OAAO,YAAY;EAChC,MAAM,SAAS,aAAa,CAAC,SAAS,SAAS,cAAc;EAC7D,MAAM,YAAY,OAAA,UAAW,KAAA,KAAa,OAAA,UAAW,IAAI,SAAS,OAAA,QAAS,IAAI,OAAO;EACtF,MAAM,WAAW,aAAA,QAAe,cAAc,SAAS,cAAc;EACrE,MAAM,aAAa,cAAc,SAAS,UAAU,WAAW,YAAY;EAC3E,OAAAC,YAAA,MAEQ,WAAiB,EAAE,IAAI,CAAC,WAAW,MAAM,WAAW,gBAAgB,IAAI,EAAE,GAAG,MAAM,EACrF,aAAa,QAAA,SAAW,KAAA,EAC1B,CAAC,GAAC;GAAAA,YAAA,MAEM,WAAiB,EAAE,IAAI,WAAW,MAAM,GAAC,WAAA,KAAY,GAAC,CAC3D,KAAA,SAAAA,YAAA,QAEO,WAAmB,EAAE,IAAI,WAAW,KAAK,GAAC,UAAA,OAAa,EAAE,eAAe,KAAK,CAAC,GAAC,CAAAA,YAAA,MAAA,EAAA,QAAA,KAAA,MAAA,GAAA,IAAA,CAAA,CAAA,GAItFA,YAAA,QAAA,MAAA,CAAA,MAAA,KAAA,CAAA,CAAA,CAAA;GAAAA,YAAA,MAGK,WAAiB,EAAE,IAAI,CAAC,WAAW,OAAO,MAAM,EAAE,GAAC,WAAA,KAAY,GAAC,CACrE,SAAS,QAAKA,YAAA,UAAA,EAAA,MACC,WAAW,eAAc,GAAA,IAAA,IACrC,OAAA,MAAA,UAAiB,WAAQA,YAAA,gBAErB,eACF;IAAE,IAAI,CAAC,WAAW,QAAQ,KAAA,SAAQ,WAAU,KAAA,MAAM;IAAG,OAAK,MAAA;GAAC,GAAC,YAAA,OAE5D;IACE,OAAK,MAAA;IACL,QAAM,OAAA;GACR,CACF,GAAC,IAAA,IAAAA,YAAA,QAIG,WACF,EAAE,IAAI,CAAC,WAAW,QAAQ,KAAA,SAAQ,WAAU,KAAA,MAAM,EAAE,GAAC,YAAA,KAEvD,GAAC,CAAA,MAAA,KAAA,CAAA,GAKJ,KAAA,SAAQ,QAAQ,CAAC,SAAS,SAAKA,YAAA,QACpB,WAAmB,EAAE,IAAI,WAAW,KAAK,GAAC,UAAA,KAAW,GAAC,CAAA,KAAA,KAAA,CAAA,CACjE,CAAA;GAEF,OAAA,UAAW,KAAA,KAASA,YAAA,MAAAC,WAEb,WAAiB,EAAE,IAAI,CAAC,WAAW,QAAQ,MAAM,EAAE,GAAC,YAAA,KAAa,GAAC,EAAA,cAC1D,SAAS,QAAQ,KAAA,IAAY,UAAS,CAAA,GAAA,CAEjD,SAAS,QAAKD,YAAA,UAAA,EAAA,MACC,WAAW,eAAc,GAAA,IAAA,IAAAA,YAAAE,UAAA,MAAA,CAAAF,YAAA,QAG3B,IAAI,MAAM,WAAW,WAAW,GAAC;IACxC,cAAc,UAAMA,YAAA,MAAA;KAAA,QAEX,cAAc,OAAO,aAAa;KAAY,eAAA;IAAA,GAAA,IAAA;IAGrD;IAAGA,YAAA,gBAAA;KAAA,SAAA,OAAA;KAAA,UAAA,aAAA;IAAA,GAAA,IAAA;GAAA,CAAA,GAGP,YAAA,SAAe,QAAIA,YAAA,QACR,WAAmB,EAAE,IAAI,WAAW,YAAY,GAAC,iBAAA,KAAkB,GAAC,CAAA,YAAA,KAAA,CAAA,CAG/E,CAAA,CAEJ,CAAA;GAGJ,WAAU,YAAA,KAAY,KAACA,YAAA,MACd,WAAiB,EAAE,IAAI,WAAW,YAAY,GAAC,iBAAA,KAAkB,GAAC,CAAA,YAAA,KAAA,CAAA;GAI3E,WAAU,SAAA,KAAS,KAACA,YAAA,MACX,WAAiB,EAAE,IAAI,WAAW,KAAK,GAAC,UAAA,KAAW,GAAC,CAAA,SAAA,KAAA,CAAA;GAE7D,WAAU,OAAA,KAAO,KAACA,YAAA,MACT,WAAiB,EAAE,IAAI,WAAW,OAAO,GAAC,YAAA,KAAa,GAAC,CAAA,OAAA,KAAA,CAAA;EACjE,CAAA;CAGP;AACF,GAAC;CAAA,MAAA;CAAA,OAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;CAAA;AAAA,CACH;;;AAcA,IAAa,kBAAkB,IAAI,OAAO;CAExC,MAAM;EAAE,SAAS;EAAQ,QAAQ;EAAO,UAAU;CAAS;CAC3D,MAAM;EACJ,eAAe;EACf,mBAAmB,aAAa,EAAE,aAAa,GAAE;EACjD,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;CAC1B;AACF,CAAC;;AAGD,IAAa,yBAAyB,IAAI,OAAO,EAC/C,UAAU,SAAiB,EACzB,qBAAqB,+BAA+B,IAAG,gBACzD,GACF,CAAC;;AAGD,IAAa,YAAY,0BACvB,SAAA,UAAkE;CAAA,MAAA,eAAAH,aAAA,SAAA,gBAAhD,MAAM;CAAA,MAAA,WAAAC,aAAA,OAAA;CAAA,MAAe,OAAIC,UAAA,SAAA,OAAA,KAAA;CACzC,iBAAiB,QAAQ,IAAI;CAC7B,aAAOC,YAAA,OAEC,WACF,EAAE,IAAI,CAAC,gBAAgB,MAAI,IAAA,KAAE,uBAAuB,eAAO,CAAA,aAAA,KAAA,GAAA,IAAA,CAAA,EAAgB,GAC3E,IACF,GAAC,CAAA,SAAA,KAAA,CAAA;AAKP,GAAC;CAAA,MAAA;CAAA,OAAA,CAAA,cAAA;AAAA,CACH"}
|