@zerodep-dev/vue-tsx-pro-ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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 +386 -0
- package/dist/config/lang/en-US.js.map +1 -0
- package/dist/config/lang/format.d.ts +50 -0
- package/dist/config/lang/format.js +113 -0
- package/dist/config/lang/format.js.map +1 -0
- package/dist/config/lang/lang.d.ts +653 -0
- package/dist/config/lang/lang.js +22 -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 +386 -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 +19 -0
- package/dist/diagram/index.js +11 -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 +158 -0
- package/dist/form/Field.js +327 -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 +192 -0
- package/dist/form/useForm.js +394 -0
- package/dist/form/useForm.js.map +1 -0
- package/dist/index.d.ts +282 -0
- package/dist/index.js +282 -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 +597 -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 +169 -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 +65 -0
- package/dist/input/people.js +47 -0
- package/dist/input/people.js.map +1 -0
- package/dist/input/remote-items.d.ts +20 -0
- package/dist/input/remote-items.js +36 -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 +64 -0
- package/dist/patterns/QueryTable.js +276 -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 +172 -0
- package/dist/patterns/messages.js +184 -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/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 +186 -0
- package/dist/utils/data/date.js +409 -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 +55 -0
- package/dist/utils/data/numeric.js +133 -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 +7 -0
- package/dist/utils/dom/download.js +19 -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/http.d.ts +101 -0
- package/dist/utils/request/http.js +154 -0
- package/dist/utils/request/http.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 +205 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-state.js","names":[],"sources":["../../src/date/calendar-state.ts"],"sourcesContent":["/**\n * 日历的状态(WAI-ARIA 日期网格的数据层):焦点日期、显示哪一页、单选 / 区间 / 多选、区间悬停预览、键盘操作。\n * 不碰 DOM:Calendar 渲染网格,焦点日期那一格 tabindex=0,键盘移动后把焦点移过去。\n * 参考 React Aria 的 useCalendarState / useRangeCalendarState。\n *\n * 三种视图:day(月份网格)、month(一年的各月)、year(一个十年)。unit 是选择的粒度:\n * Calendar 是 day,MonthPicker 是 month;在比 unit 粗的视图里点一格是“进到这一格”(年 → 月 → 日),不是选中。\n *\n * const calendar = useCalendarState({ mode: () => 'single', selected: () => (date ? [date] : []), onChange, … });\n * if (handleCalendarKeydown(calendar, event, isRtl(grid))) event.preventDefault();\n */\nimport {\n endOfWeek,\n startOfWeek,\n type CalendarDate,\n type DateDuration,\n} from '@internationalized/date';\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport {\n clampDate,\n compareDates,\n isDateDisabled,\n isInRange,\n isOutOfRange,\n isOutsideDecade,\n isSameDate,\n orderedRange,\n rangeHasUnavailable,\n toDayOfWeek,\n type DateLimits,\n type DateRange,\n type DateUnit,\n type WeekOptions,\n} from '../utils/data/date';\n\n/** 日期的选择方式 */\nexport interface CalendarSelectionModes {\n /** 单选一天 */\n single: unknown;\n /** 选一个区间:先点开始、再点结束,中间悬停时预览 */\n range: unknown;\n /** 多选:每天独立切换 */\n multiple: unknown;\n}\n\n/** 日期的选择方式 */\nexport type CalendarSelectionMode = keyof CalendarSelectionModes;\n\n/** useCalendarState 的选项:都是读取函数,props 变化时跟着变 */\nexport interface CalendarStateOptions {\n /** 选择方式 */\n mode: () => CalendarSelectionMode;\n /** 已选的日期:单选一个、区间是 [开始, 结束]、多选若干;没有时空数组 */\n selected: () => readonly CalendarDate[];\n /** 选了日期:单选 [日期](再点已选的那天也会调用),区间 [开始, 结束](已排好序),多选是新的列表 */\n onChange: (dates: readonly CalendarDate[]) => void;\n /** 今天(按语言的时区与日历):没有已选日期时焦点从这里开始 */\n today: () => CalendarDate;\n /** 可选范围与不可选的日期 */\n limits: () => DateLimits;\n /** 一周的排法:Home / End、月份网格都按它 */\n week: () => WeekOptions;\n /** 选择的粒度,默认 day;MonthPicker 是 month,YearPicker 是 year */\n unit?: () => DateUnit;\n /** 并排显示几个月(只在 day 视图),默认 1 */\n visibleMonths?: () => number;\n /** 区间里允许夹着不可选的日期,默认 false:选了开始之后,越过不可选日期的那一侧都不能再选 */\n allowsUnavailableInRange?: () => boolean;\n /** 只读:能翻页、移动焦点,不能改选择 */\n readonly?: () => boolean;\n /** 没有已选日期时一开始显示哪天所在的页(如酒店预订默认显示下个月);不写时是今天 */\n defaultFocused?: () => CalendarDate | null | undefined;\n}\n\n/** 一格的状态:渲染与 data 属性用 */\nexport interface CalendarCellState {\n /** 已选(区间里是两端与中间的每一天) */\n selected: boolean;\n /** 不能选:范围外、不可选、或区间选到一半时越过了不可选的日期 */\n disabled: boolean;\n /** 是不可选的日期(isUnavailable):画删除线 */\n unavailable: boolean;\n /** 今天(这个月、今年) */\n today: boolean;\n /** 焦点所在的格:tabindex=0 */\n focused: boolean;\n /** 不在这一页:月份网格里补齐的上下月、年份视图里补上的两年 */\n outside: boolean;\n /** 区间的开始 */\n rangeStart: boolean;\n /** 区间的结束 */\n rangeEnd: boolean;\n /** 在区间里(含两端;选到一半时是预览的区间) */\n inRange: boolean;\n}\n\n/** 日历的状态与操作 */\nexport interface CalendarState {\n /** 选择方式 */\n readonly mode: CalendarSelectionMode;\n /** 当前视图 */\n readonly view: DateUnit;\n /** 选择的粒度 */\n readonly unit: DateUnit;\n /** 焦点日期:总是精确到天,切到 month、year 视图再回来时回到原来那天 */\n readonly focused: CalendarDate;\n /** 当前页的第一格:day 视图是第一个月的 1 日,month 视图是这年 1 月 1 日,year 视图是十年的第一年 */\n readonly page: CalendarDate;\n /** day 视图里并排的各月(每月 1 日);其他视图只有 page */\n readonly months: readonly CalendarDate[];\n /** 区间:已选的,或选到一半时从开始到悬停 / 焦点日期的预览 */\n readonly range: DateRange | null;\n /** 区间选到一半:已经点了的开始 */\n readonly anchor: CalendarDate | null;\n /** 已选的日期有不能选的(范围外、不可选,或区间里夹着不可选的日期) */\n readonly invalid: boolean;\n /** 一周的排法 */\n readonly week: WeekOptions;\n /** 切换视图(不能比选择的粒度更细) */\n setView(view: DateUnit): void;\n /** 移动焦点日期(夹到可选范围内),移出当前页时翻页 */\n focus(date: CalendarDate): void;\n /** 翻页:day 视图一次翻并排的月数,month 视图一年,year 视图十年;焦点跟着走 */\n turnPage(direction: 1 | -1): void;\n /** 这个方向还能不能翻页(整页都在可选范围之外时不能) */\n canTurnPage(direction: 1 | -1): boolean;\n /** 点了一格:当前视图是选择的粒度时选中,否则进到这一格(年 → 月 → 日) */\n activate(date: CalendarDate): void;\n /** 指针悬停的日期:区间选到一半时预览;离开网格时传 null */\n hover(date: CalendarDate | null): void;\n /** 一格的状态;month 是这格所在的月份网格(判断是不是补齐的上下月) */\n cell(date: CalendarDate, month?: CalendarDate): CalendarCellState;\n /** 取消选到一半的区间(Esc) */\n cancelRange(): void;\n}\n\n/** 视图从粗到细 */\nconst VIEWS: readonly DateUnit[] = ['year', 'month', 'day'];\n\n/** 日历状态(组件 setup 里调用) */\nexport function useCalendarState(config: CalendarStateOptions): CalendarState {\n const unit = () => config.unit?.() ?? 'day';\n const visibleMonths = () => Math.max(1, config.visibleMonths?.() ?? 1);\n\n const view = ref<DateUnit>(unit());\n const anchor = shallowRef<CalendarDate | null>(null);\n const hovered = shallowRef<CalendarDate | null>(null);\n const initial = config.selected()[0] ?? config.defaultFocused?.() ?? config.today();\n const focused = shallowRef(clampDate(initial, config.limits()));\n const page = shallowRef(pageOf(focused.value, view.value));\n\n /** 日期所在页的第一格 */\n function pageOf(date: CalendarDate, current: DateUnit): CalendarDate {\n if (current === 'year')\n return date.set({ year: Math.floor(date.year / 10) * 10, month: 1, day: 1 });\n if (current === 'month') return date.set({ month: 1, day: 1 });\n return date.set({ day: 1 });\n }\n\n /** 一页的跨度 */\n function pageSize(current: DateUnit): DateDuration {\n if (current === 'year') return { years: 10 };\n if (current === 'month') return { years: 1 };\n return { months: visibleMonths() };\n }\n\n const pageEnd = () => page.value.add(pageSize(view.value)).subtract({ days: 1 });\n\n /** 焦点移出当前页时翻页:往前移出时焦点所在的月排在最后,往后移出时排在最前(同 React Aria) */\n function followFocus() {\n const date = focused.value;\n if (date.compare(page.value) >= 0 && date.compare(pageEnd()) <= 0) return;\n const backward = date.compare(page.value) < 0;\n page.value =\n backward && view.value === 'day'\n ? date.set({ day: 1 }).subtract({ months: visibleMonths() - 1 })\n : pageOf(date, view.value);\n }\n\n // 区间选到一半、不允许夹着不可选的日期时:开始两侧最近的不可选日期之内才能选\n const limits = computed((): DateLimits => {\n const base = config.limits();\n const start = anchor.value;\n if (!start || !base.isUnavailable || config.allowsUnavailableInRange?.()) return base;\n const bound = (step: 1 | -1, edge: CalendarDate | null | undefined) => {\n // 最多找一年:再远的不会出现在同一次选择里\n let date = start;\n for (let offset = 0; offset < 366; offset++) {\n const next = date.add({ days: step });\n if (edge && compareDates(next, edge) * step > 0) return edge;\n if (base.isUnavailable!(next)) return date;\n date = next;\n }\n return edge;\n };\n return { ...base, min: bound(-1, base.min), max: bound(1, base.max) };\n });\n\n const selectedRange = computed((): DateRange | null => {\n const [start, end] = config.selected();\n return config.mode() === 'range' && start && end ? orderedRange(start, end) : null;\n });\n\n const range = computed((): DateRange | null => {\n if (config.mode() !== 'range') return null;\n if (!anchor.value) return selectedRange.value;\n return orderedRange(anchor.value, clampDate(hovered.value ?? focused.value, limits.value));\n });\n\n const invalid = computed(() => {\n const base = config.limits();\n if (config.selected().some((date) => isDateDisabled(date, base, unit()))) return true;\n const picked = selectedRange.value;\n return (\n picked != null &&\n !config.allowsUnavailableInRange?.() &&\n rangeHasUnavailable(picked, base.isUnavailable)\n );\n });\n\n function select(date: CalendarDate) {\n if (config.readonly?.() || isDateDisabled(date, limits.value, unit())) return;\n const current = config.selected();\n const same = (item: CalendarDate) => isSameDate(item, date, unit());\n switch (config.mode()) {\n case 'single':\n // 再点已选的那天也通知:日期选择器据此关闭弹层\n config.onChange([date]);\n return;\n case 'multiple':\n config.onChange(\n current.some(same) ? current.filter((item) => !same(item)) : [...current, date],\n );\n return;\n case 'range': {\n if (!anchor.value) {\n anchor.value = date;\n return;\n }\n const picked = orderedRange(anchor.value, date);\n anchor.value = null;\n hovered.value = null;\n config.onChange([picked.start, picked.end]);\n }\n }\n }\n\n const state: CalendarState = {\n get mode() {\n return config.mode();\n },\n get view() {\n return view.value;\n },\n get unit() {\n return unit();\n },\n get focused() {\n return focused.value;\n },\n get page() {\n return page.value;\n },\n get months() {\n if (view.value !== 'day') return [page.value];\n return Array.from({ length: visibleMonths() }, (_, index) =>\n page.value.add({ months: index }),\n );\n },\n get range() {\n return range.value;\n },\n get anchor() {\n return anchor.value;\n },\n get invalid() {\n return invalid.value;\n },\n get week() {\n return config.week();\n },\n setView(next) {\n if (VIEWS.indexOf(next) > VIEWS.indexOf(unit())) return;\n view.value = next;\n page.value = pageOf(focused.value, next);\n },\n focus(date) {\n focused.value = isOutOfRange(date, limits.value, view.value)\n ? clampDate(date, limits.value)\n : date;\n followFocus();\n },\n turnPage(direction) {\n if (!state.canTurnPage(direction)) return;\n const size = pageSize(view.value);\n const move = (date: CalendarDate) => (direction > 0 ? date.add(size) : date.subtract(size));\n page.value = move(page.value);\n focused.value = clampDate(move(focused.value), limits.value);\n // 夹回范围后可能不在翻到的这页了:焦点落到这页里可选的第一天\n if (focused.value.compare(page.value) < 0 || focused.value.compare(pageEnd()) > 0) {\n focused.value = clampDate(page.value, limits.value);\n }\n },\n canTurnPage(direction) {\n const { min, max } = config.limits();\n if (direction < 0) return min == null || page.value.subtract({ days: 1 }).compare(min) >= 0;\n return max == null || page.value.add(pageSize(view.value)).compare(max) <= 0;\n },\n activate(date) {\n if (view.value === unit()) {\n state.focus(date);\n select(date);\n return;\n }\n // 进到下一级视图:焦点保留原来的月、日(这个月没有那天时取最后一天)\n const finer = VIEWS[VIEWS.indexOf(view.value) + 1]!;\n const next =\n view.value === 'year'\n ? focused.value.set({ year: date.year })\n : focused.value.set({ year: date.year, month: date.month });\n view.value = finer;\n focused.value = clampDate(next, limits.value);\n page.value = pageOf(focused.value, finer);\n },\n hover(date) {\n hovered.value = date;\n },\n cancelRange() {\n anchor.value = null;\n hovered.value = null;\n },\n cell(date, month) {\n const current = view.value;\n const preview = range.value;\n const inRange = isInRange(date, preview, current);\n return {\n selected:\n config.mode() === 'range'\n ? inRange\n : config.selected().some((item) => isSameDate(item, date, current)),\n disabled: isDateDisabled(date, limits.value, current),\n unavailable: current === 'day' && (config.limits().isUnavailable?.(date) ?? false),\n today: isSameDate(date, config.today(), current),\n focused: isSameDate(date, focused.value, current),\n outside:\n current === 'day'\n ? month != null && !isSameDate(date, month, 'month')\n : current === 'year' && isOutsideDecade(date, page.value),\n rangeStart: preview != null && isSameDate(date, preview.start, current),\n rangeEnd: preview != null && isSameDate(date, preview.end, current),\n inRange,\n };\n },\n };\n // 父级从外面改了值(快捷按钮、重置)且不在这一页:翻到它那里\n watch(\n () => config.selected()[0],\n (date) => {\n if (date && (date.compare(page.value) < 0 || date.compare(pageEnd()) > 0)) state.focus(date);\n },\n );\n return state;\n}\n\n/**\n * 日期网格的键盘操作(WAI-ARIA Date Picker Dialog 的网格部分):\n * day 视图里 ←→ 一天(从右到左排版时反过来)、↑↓ 一周,Page Up / Down 一个月、加 Shift 一年,Home / End 到这周的第一天 / 最后一天;\n * month、year 视图里 ←→ 一格、↑↓ 一行(3 格),Page Up / Down 翻一页,Home / End 到这页的两端;\n * Enter / 空格选中(或进到下一级视图);Esc 取消选到一半的区间(没有时不处理,交给弹层关闭)。\n * 返回是否处理了这个按键(处理了就该 preventDefault)\n */\nexport function handleCalendarKeydown(\n state: CalendarState,\n event: KeyboardEvent,\n rtl = false,\n): boolean {\n if (event.altKey || event.ctrlKey || event.metaKey) return false;\n const date = state.focused;\n const forward = rtl ? -1 : 1;\n const { locale, firstDayOfWeek } = state.week;\n const first = toDayOfWeek(firstDayOfWeek);\n const actions: Record<string, (() => void) | undefined> =\n state.view === 'day'\n ? {\n ArrowRight: () => state.focus(date.add({ days: forward })),\n ArrowLeft: () => state.focus(date.subtract({ days: forward })),\n ArrowDown: () => state.focus(date.add({ weeks: 1 })),\n ArrowUp: () => state.focus(date.subtract({ weeks: 1 })),\n PageDown: () => state.focus(date.add(event.shiftKey ? { years: 1 } : { months: 1 })),\n PageUp: () => state.focus(date.subtract(event.shiftKey ? { years: 1 } : { months: 1 })),\n Home: () => state.focus(startOfWeek(date, locale, first)),\n End: () => state.focus(endOfWeek(date, locale, first)),\n }\n : gridActions(state, forward);\n actions.Enter = () => state.activate(date);\n actions[' '] = actions.Enter;\n if (state.anchor) actions.Escape = () => state.cancelRange();\n const action = actions[event.key];\n if (!action) return false;\n action();\n return true;\n}\n\n/** month、year 视图:3 列的网格,一格是一个月或一年 */\nfunction gridActions(state: CalendarState, forward: number): Record<string, () => void> {\n const date = state.focused;\n const cell: keyof DateDuration = state.view === 'month' ? 'months' : 'years';\n const pageSize: DateDuration = state.view === 'month' ? { years: 1 } : { years: 10 };\n const by = (amount: number) => () => state.focus(date.add({ [cell]: amount }));\n // year 视图的一页是十年(前后补上的两年属于别的页);month 视图是这一年\n const last =\n state.view === 'month'\n ? state.page.set({ month: state.page.calendar.getMonthsInYear(state.page) })\n : state.page.add({ years: 9 });\n return {\n ArrowRight: by(forward),\n ArrowLeft: by(-forward),\n ArrowDown: by(3),\n ArrowUp: by(-3),\n PageDown: () => state.focus(date.add(pageSize)),\n PageUp: () => state.focus(date.subtract(pageSize)),\n Home: () =>\n state.focus(\n state.view === 'month' ? date.set({ month: 1 }) : date.set({ year: state.page.year }),\n ),\n End: () =>\n state.focus(\n state.view === 'month' ? date.set({ month: last.month }) : date.set({ year: last.year }),\n ),\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 随时间更新的“现在”(RelativeTime、Countdown 共用):每隔 interval 毫秒更新一次,对齐到整秒、整分,
|
|
3
|
+
* 同一页上的几个计时器一起跳;页面隐藏时停下,回来时立刻更新(后台标签页里的定时器本来就不准,还白白耗电)。
|
|
4
|
+
*
|
|
5
|
+
* const now = useNow((current) => (current >= end ? null : 1000)); // 渲染里读 now.value;null 时不再更新
|
|
6
|
+
*
|
|
7
|
+
* interval 拿到当前的 now,每次更新后重新计算:相对时间从“秒”变成“分钟”时,更新的频率跟着降下来。
|
|
8
|
+
*/
|
|
9
|
+
import { type Ref } from 'vue';
|
|
10
|
+
/** 现在的时间戳(毫秒),按 interval 更新;interval 为 null 时停在最后一次的值(在 setup 里调用) */
|
|
11
|
+
export declare function useNow(interval: (now: number) => number | null): Readonly<Ref<number>>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { usePageVisible } from "../utils/dom/page-visibility.js";
|
|
2
|
+
import { onScopeDispose, shallowRef, watch } from "vue";
|
|
3
|
+
//#region src/date/clock.ts
|
|
4
|
+
/**
|
|
5
|
+
* 随时间更新的“现在”(RelativeTime、Countdown 共用):每隔 interval 毫秒更新一次,对齐到整秒、整分,
|
|
6
|
+
* 同一页上的几个计时器一起跳;页面隐藏时停下,回来时立刻更新(后台标签页里的定时器本来就不准,还白白耗电)。
|
|
7
|
+
*
|
|
8
|
+
* const now = useNow((current) => (current >= end ? null : 1000)); // 渲染里读 now.value;null 时不再更新
|
|
9
|
+
*
|
|
10
|
+
* interval 拿到当前的 now,每次更新后重新计算:相对时间从“秒”变成“分钟”时,更新的频率跟着降下来。
|
|
11
|
+
*/
|
|
12
|
+
/** 现在的时间戳(毫秒),按 interval 更新;interval 为 null 时停在最后一次的值(在 setup 里调用) */
|
|
13
|
+
function useNow(interval) {
|
|
14
|
+
const now = shallowRef(Date.now());
|
|
15
|
+
const visible = usePageVisible();
|
|
16
|
+
let timer;
|
|
17
|
+
function schedule() {
|
|
18
|
+
clearTimeout(timer);
|
|
19
|
+
const every = interval(now.value);
|
|
20
|
+
if (every == null || !visible.value) return;
|
|
21
|
+
timer = setTimeout(() => {
|
|
22
|
+
now.value = Date.now();
|
|
23
|
+
schedule();
|
|
24
|
+
}, every - Date.now() % every);
|
|
25
|
+
}
|
|
26
|
+
watch(() => interval(now.value), schedule, { immediate: true });
|
|
27
|
+
watch(visible, (shown) => {
|
|
28
|
+
if (shown) now.value = Date.now();
|
|
29
|
+
schedule();
|
|
30
|
+
});
|
|
31
|
+
onScopeDispose(() => clearTimeout(timer));
|
|
32
|
+
return now;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { useNow };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=clock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.js","names":[],"sources":["../../src/date/clock.ts"],"sourcesContent":["/**\n * 随时间更新的“现在”(RelativeTime、Countdown 共用):每隔 interval 毫秒更新一次,对齐到整秒、整分,\n * 同一页上的几个计时器一起跳;页面隐藏时停下,回来时立刻更新(后台标签页里的定时器本来就不准,还白白耗电)。\n *\n * const now = useNow((current) => (current >= end ? null : 1000)); // 渲染里读 now.value;null 时不再更新\n *\n * interval 拿到当前的 now,每次更新后重新计算:相对时间从“秒”变成“分钟”时,更新的频率跟着降下来。\n */\nimport { onScopeDispose, shallowRef, watch, type Ref } from 'vue';\nimport { usePageVisible } from '../utils/dom/page-visibility';\n\n/** 现在的时间戳(毫秒),按 interval 更新;interval 为 null 时停在最后一次的值(在 setup 里调用) */\nexport function useNow(interval: (now: number) => number | null): Readonly<Ref<number>> {\n const now = shallowRef(Date.now());\n const visible = usePageVisible();\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n function schedule() {\n clearTimeout(timer);\n const every = interval(now.value);\n if (every == null || !visible.value) return;\n // 对齐到 interval 的整数倍:多个计时器同一刻跳,倒计时的秒数不会一会儿快一会儿慢\n timer = setTimeout(\n () => {\n now.value = Date.now();\n schedule();\n },\n every - (Date.now() % every),\n );\n }\n\n watch(() => interval(now.value), schedule, { immediate: true });\n watch(visible, (shown) => {\n if (shown) now.value = Date.now();\n schedule();\n });\n onScopeDispose(() => clearTimeout(timer));\n return now;\n}\n"],"mappings":";;;;;;;;;;;;AAYA,SAAgB,OAAO,UAAiE;CACtF,MAAM,MAAM,WAAW,KAAK,IAAI,CAAC;CACjC,MAAM,UAAU,eAAe;CAC/B,IAAI;CAEJ,SAAS,WAAW;EAClB,aAAa,KAAK;EAClB,MAAM,QAAQ,SAAS,IAAI,KAAK;EAChC,IAAI,SAAS,QAAQ,CAAC,QAAQ,OAAO;EAErC,QAAQ,iBACA;GACJ,IAAI,QAAQ,KAAK,IAAI;GACrB,SAAS;EACX,GACA,QAAS,KAAK,IAAI,IAAI,KACxB;CACF;CAEA,YAAY,SAAS,IAAI,KAAK,GAAG,UAAU,EAAE,WAAW,KAAK,CAAC;CAC9D,MAAM,UAAU,UAAU;EACxB,IAAI,OAAO,IAAI,QAAQ,KAAK,IAAI;EAChC,SAAS;CACX,CAAC;CACD,qBAAqB,aAAa,KAAK,CAAC;CACxC,OAAO;AACT"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 日期组件读当前语言的地区设置:语言标签、日历系统、时区、一周的排法、今天,以及 ISO 字符串与显示用日期的互转。
|
|
3
|
+
* Calendar、DateField、各种日期选择器共用,组件里不再各自拼这些。在 setup 里调用,返回的对象在渲染时读取即可随语言切换。
|
|
4
|
+
*
|
|
5
|
+
* const locale = useDateLocale(() => ({ firstDayOfWeek }));
|
|
6
|
+
* locale.fromValue(value) // '2026-10-20' 或 CalendarDate → 当前日历系统里的 CalendarDate
|
|
7
|
+
* locale.dayNumber(date) // '20'(zh-CN 的 Intl 会写成“20日”,这里只取数字)
|
|
8
|
+
*/
|
|
9
|
+
import { CalendarDate, type Calendar, type DateValue } from '@internationalized/date';
|
|
10
|
+
import { type DateLimits, type WeekOptions } from '../utils/data/date';
|
|
11
|
+
/**
|
|
12
|
+
* 日期组件接受的值:ISO 字符串('2026-10-20'),或 @internationalized/date 的 DateValue
|
|
13
|
+
* (CalendarDate、CalendarDateTime、ZonedDateTime)。写回时保持传入的类型(见 writeDateLike)
|
|
14
|
+
*/
|
|
15
|
+
export type DateInput = string | DateValue;
|
|
16
|
+
/** 值为空、推不出类型时写回哪一种 */
|
|
17
|
+
export interface DateValueTypes {
|
|
18
|
+
/** ISO 字符串(默认):与原生 input、URL 参数、zod 的 z.iso.date() 一致 */
|
|
19
|
+
iso: unknown;
|
|
20
|
+
/** @internationalized/date 的对象:日期是 CalendarDate,带时间时是 CalendarDateTime */
|
|
21
|
+
dateValue: unknown;
|
|
22
|
+
}
|
|
23
|
+
/** 组件上可以覆盖语言配置的地区选项 */
|
|
24
|
+
export interface DateLocaleOverrides {
|
|
25
|
+
/** 一周的第一天,0 表示周日;不写时取语言配置,再按地区惯例 */
|
|
26
|
+
firstDayOfWeek?: number;
|
|
27
|
+
}
|
|
28
|
+
/** useDateLocale 的返回值 */
|
|
29
|
+
export interface DateLocale {
|
|
30
|
+
/** BCP 47 语言标签 */
|
|
31
|
+
readonly locale: string;
|
|
32
|
+
/** 运算用的日历系统(语言配置的 calendar,不支持的退回公历) */
|
|
33
|
+
readonly calendar: Calendar;
|
|
34
|
+
/** 时区:语言配置的,没有时取浏览器的 */
|
|
35
|
+
readonly timeZone: string;
|
|
36
|
+
/** 一周的排法 */
|
|
37
|
+
readonly week: WeekOptions;
|
|
38
|
+
/** 今天,按时区与日历系统 */
|
|
39
|
+
today(): CalendarDate;
|
|
40
|
+
/** 值(ISO 字符串或 DateValue)→ 显示用的日期(当前日历系统);空值、格式不对时 null */
|
|
41
|
+
fromValue(value: DateInput | null | undefined): CalendarDate | null;
|
|
42
|
+
/** 显示用的日期 → ISO 日期(公历) */
|
|
43
|
+
toIso(date: CalendarDate): string;
|
|
44
|
+
/** 日期格里的数字(按日历系统与语言的数字写法) */
|
|
45
|
+
dayNumber(date: CalendarDate): string;
|
|
46
|
+
}
|
|
47
|
+
/** 当前语言的日期地区设置(组件 setup 里调用) */
|
|
48
|
+
export declare function useDateLocale(read?: () => DateLocaleOverrides): DateLocale;
|
|
49
|
+
/** 组件上写的可选范围与不可选的日期 */
|
|
50
|
+
export interface DateLimitProps {
|
|
51
|
+
/** 最早可选的日期(ISO 字符串如 '2026-01-01',或 DateValue) */
|
|
52
|
+
min?: DateInput;
|
|
53
|
+
/** 最晚可选的日期(ISO 字符串或 DateValue) */
|
|
54
|
+
max?: DateInput;
|
|
55
|
+
/**
|
|
56
|
+
* 不可选的日期(已订满、节假日):仍能用方向键经过,读屏念“不可用”,不能选。
|
|
57
|
+
* 第二个参数是同一天的 CalendarDate,判断星期几等不用自己解析:`(_, day) => isWeekend(day, 'zh-CN')`
|
|
58
|
+
*/
|
|
59
|
+
isDateUnavailable?: (date: string, day: CalendarDate) => boolean;
|
|
60
|
+
}
|
|
61
|
+
/** 组件的 min、max、isDateUnavailable → 日历状态用的 DateLimits(日期换成当前日历系统) */
|
|
62
|
+
export declare function toDateLimits(locale: DateLocale, { min, max, isDateUnavailable }: DateLimitProps): DateLimits;
|
|
63
|
+
/**
|
|
64
|
+
* 选到的日期写回成和 like 同一种类型:like 是字符串时写 ISO 日期;是 DateValue 时保留它的类型、日历系统、时间与时区,
|
|
65
|
+
* 只换年月日(CalendarDateTime 选了另一天,时间不变)。like 为空时按 valueType(默认 ISO 字符串)
|
|
66
|
+
*/
|
|
67
|
+
export declare function writeDateLike(date: CalendarDate, like: DateInput | null | undefined, valueType?: keyof DateValueTypes): DateInput;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { useLang } from "../config/context.js";
|
|
2
|
+
import { calendarOf, parseIsoDate, toIsoDate } from "../utils/data/date.js";
|
|
3
|
+
import { DateFormatter, GregorianCalendar, getLocalTimeZone, toCalendar, toCalendarDate, today } from "@internationalized/date";
|
|
4
|
+
//#region src/date/date-locale.ts
|
|
5
|
+
/**
|
|
6
|
+
* 日期组件读当前语言的地区设置:语言标签、日历系统、时区、一周的排法、今天,以及 ISO 字符串与显示用日期的互转。
|
|
7
|
+
* Calendar、DateField、各种日期选择器共用,组件里不再各自拼这些。在 setup 里调用,返回的对象在渲染时读取即可随语言切换。
|
|
8
|
+
*
|
|
9
|
+
* const locale = useDateLocale(() => ({ firstDayOfWeek }));
|
|
10
|
+
* locale.fromValue(value) // '2026-10-20' 或 CalendarDate → 当前日历系统里的 CalendarDate
|
|
11
|
+
* locale.dayNumber(date) // '20'(zh-CN 的 Intl 会写成“20日”,这里只取数字)
|
|
12
|
+
*/
|
|
13
|
+
/** 当前语言的日期地区设置(组件 setup 里调用) */
|
|
14
|
+
function useDateLocale(read = () => ({})) {
|
|
15
|
+
const lang = useLang();
|
|
16
|
+
const calendar = () => calendarOf(lang.calendar);
|
|
17
|
+
return {
|
|
18
|
+
get locale() {
|
|
19
|
+
return lang.code;
|
|
20
|
+
},
|
|
21
|
+
get calendar() {
|
|
22
|
+
return calendar();
|
|
23
|
+
},
|
|
24
|
+
get timeZone() {
|
|
25
|
+
return lang.timeZone ?? getLocalTimeZone();
|
|
26
|
+
},
|
|
27
|
+
get week() {
|
|
28
|
+
return {
|
|
29
|
+
locale: lang.code,
|
|
30
|
+
firstDayOfWeek: read().firstDayOfWeek ?? lang.firstDayOfWeek
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
today() {
|
|
34
|
+
return toCalendar(today(lang.timeZone ?? getLocalTimeZone()), calendar());
|
|
35
|
+
},
|
|
36
|
+
fromValue(value) {
|
|
37
|
+
if (value == null) return null;
|
|
38
|
+
const date = typeof value === "string" ? parseIsoDate(value.slice(0, 10)) : toCalendarDate(value);
|
|
39
|
+
return date && toCalendar(date, calendar());
|
|
40
|
+
},
|
|
41
|
+
toIso: toIsoDate,
|
|
42
|
+
dayNumber(date) {
|
|
43
|
+
return dayFormatter(lang.code, date.calendar.identifier).formatToParts(date.toDate("UTC")).find((part) => part.type === "day")?.value ?? String(date.day);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
var dayFormatters = /* @__PURE__ */ new Map();
|
|
48
|
+
function dayFormatter(locale, calendar) {
|
|
49
|
+
const key = `${locale}|${calendar}`;
|
|
50
|
+
let formatter = dayFormatters.get(key);
|
|
51
|
+
if (!formatter) {
|
|
52
|
+
formatter = new DateFormatter(locale, {
|
|
53
|
+
day: "numeric",
|
|
54
|
+
calendar,
|
|
55
|
+
timeZone: "UTC"
|
|
56
|
+
});
|
|
57
|
+
dayFormatters.set(key, formatter);
|
|
58
|
+
}
|
|
59
|
+
return formatter;
|
|
60
|
+
}
|
|
61
|
+
/** 组件的 min、max、isDateUnavailable → 日历状态用的 DateLimits(日期换成当前日历系统) */
|
|
62
|
+
function toDateLimits(locale, { min, max, isDateUnavailable }) {
|
|
63
|
+
return {
|
|
64
|
+
min: locale.fromValue(min),
|
|
65
|
+
max: locale.fromValue(max),
|
|
66
|
+
isUnavailable: isDateUnavailable && ((day) => isDateUnavailable(toIsoDate(day), day))
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
var GREGORIAN = new GregorianCalendar();
|
|
70
|
+
/**
|
|
71
|
+
* 选到的日期写回成和 like 同一种类型:like 是字符串时写 ISO 日期;是 DateValue 时保留它的类型、日历系统、时间与时区,
|
|
72
|
+
* 只换年月日(CalendarDateTime 选了另一天,时间不变)。like 为空时按 valueType(默认 ISO 字符串)
|
|
73
|
+
*/
|
|
74
|
+
function writeDateLike(date, like, valueType = "iso") {
|
|
75
|
+
if (typeof like === "string" || like == null && valueType === "iso") return toIsoDate(date);
|
|
76
|
+
if (like == null) return toCalendar(date, GREGORIAN);
|
|
77
|
+
const converted = toCalendar(date, like.calendar);
|
|
78
|
+
if (!("hour" in like)) return converted;
|
|
79
|
+
return like.set({
|
|
80
|
+
era: converted.era,
|
|
81
|
+
year: converted.year,
|
|
82
|
+
month: converted.month,
|
|
83
|
+
day: converted.day
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
export { toDateLimits, useDateLocale, writeDateLike };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=date-locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-locale.js","names":[],"sources":["../../src/date/date-locale.ts"],"sourcesContent":["/**\n * 日期组件读当前语言的地区设置:语言标签、日历系统、时区、一周的排法、今天,以及 ISO 字符串与显示用日期的互转。\n * Calendar、DateField、各种日期选择器共用,组件里不再各自拼这些。在 setup 里调用,返回的对象在渲染时读取即可随语言切换。\n *\n * const locale = useDateLocale(() => ({ firstDayOfWeek }));\n * locale.fromValue(value) // '2026-10-20' 或 CalendarDate → 当前日历系统里的 CalendarDate\n * locale.dayNumber(date) // '20'(zh-CN 的 Intl 会写成“20日”,这里只取数字)\n */\nimport {\n CalendarDate,\n DateFormatter,\n getLocalTimeZone,\n GregorianCalendar,\n toCalendar,\n toCalendarDate,\n today,\n type Calendar,\n type DateValue,\n} from '@internationalized/date';\nimport { useLang } from '../config/context';\nimport {\n calendarOf,\n parseIsoDate,\n toIsoDate,\n type DateLimits,\n type WeekOptions,\n} from '../utils/data/date';\n\n/**\n * 日期组件接受的值:ISO 字符串('2026-10-20'),或 @internationalized/date 的 DateValue\n * (CalendarDate、CalendarDateTime、ZonedDateTime)。写回时保持传入的类型(见 writeDateLike)\n */\nexport type DateInput = string | DateValue;\n\n/** 值为空、推不出类型时写回哪一种 */\nexport interface DateValueTypes {\n /** ISO 字符串(默认):与原生 input、URL 参数、zod 的 z.iso.date() 一致 */\n iso: unknown;\n /** @internationalized/date 的对象:日期是 CalendarDate,带时间时是 CalendarDateTime */\n dateValue: unknown;\n}\n\n/** 组件上可以覆盖语言配置的地区选项 */\nexport interface DateLocaleOverrides {\n /** 一周的第一天,0 表示周日;不写时取语言配置,再按地区惯例 */\n firstDayOfWeek?: number;\n}\n\n/** useDateLocale 的返回值 */\nexport interface DateLocale {\n /** BCP 47 语言标签 */\n readonly locale: string;\n /** 运算用的日历系统(语言配置的 calendar,不支持的退回公历) */\n readonly calendar: Calendar;\n /** 时区:语言配置的,没有时取浏览器的 */\n readonly timeZone: string;\n /** 一周的排法 */\n readonly week: WeekOptions;\n /** 今天,按时区与日历系统 */\n today(): CalendarDate;\n /** 值(ISO 字符串或 DateValue)→ 显示用的日期(当前日历系统);空值、格式不对时 null */\n fromValue(value: DateInput | null | undefined): CalendarDate | null;\n /** 显示用的日期 → ISO 日期(公历) */\n toIso(date: CalendarDate): string;\n /** 日期格里的数字(按日历系统与语言的数字写法) */\n dayNumber(date: CalendarDate): string;\n}\n\n/** 当前语言的日期地区设置(组件 setup 里调用) */\nexport function useDateLocale(read: () => DateLocaleOverrides = () => ({})): DateLocale {\n const lang = useLang();\n const calendar = () => calendarOf(lang.calendar);\n return {\n get locale() {\n return lang.code;\n },\n get calendar() {\n return calendar();\n },\n get timeZone() {\n return lang.timeZone ?? getLocalTimeZone();\n },\n get week() {\n return { locale: lang.code, firstDayOfWeek: read().firstDayOfWeek ?? lang.firstDayOfWeek };\n },\n today() {\n return toCalendar(today(lang.timeZone ?? getLocalTimeZone()), calendar());\n },\n fromValue(value) {\n if (value == null) return null;\n // 字符串取日期部分:min / max 常写成日期时间('2026-10-20T14:00'),日历按天比较\n const date =\n typeof value === 'string' ? parseIsoDate(value.slice(0, 10)) : toCalendarDate(value);\n return date && toCalendar(date, calendar());\n },\n toIso: toIsoDate,\n dayNumber(date) {\n const parts = dayFormatter(lang.code, date.calendar.identifier).formatToParts(\n date.toDate('UTC'),\n );\n return parts.find((part) => part.type === 'day')?.value ?? String(date.day);\n },\n };\n}\n\nconst dayFormatters = new Map<string, DateFormatter>();\n\nfunction dayFormatter(locale: string, calendar: string): DateFormatter {\n const key = `${locale}|${calendar}`;\n let formatter = dayFormatters.get(key);\n if (!formatter) {\n formatter = new DateFormatter(locale, { day: 'numeric', calendar, timeZone: 'UTC' });\n dayFormatters.set(key, formatter);\n }\n return formatter;\n}\n\n/** 组件上写的可选范围与不可选的日期 */\nexport interface DateLimitProps {\n /** 最早可选的日期(ISO 字符串如 '2026-01-01',或 DateValue) */\n min?: DateInput;\n /** 最晚可选的日期(ISO 字符串或 DateValue) */\n max?: DateInput;\n /**\n * 不可选的日期(已订满、节假日):仍能用方向键经过,读屏念“不可用”,不能选。\n * 第二个参数是同一天的 CalendarDate,判断星期几等不用自己解析:`(_, day) => isWeekend(day, 'zh-CN')`\n */\n isDateUnavailable?: (date: string, day: CalendarDate) => boolean;\n}\n\n/** 组件的 min、max、isDateUnavailable → 日历状态用的 DateLimits(日期换成当前日历系统) */\nexport function toDateLimits(\n locale: DateLocale,\n { min, max, isDateUnavailable }: DateLimitProps,\n): DateLimits {\n return {\n min: locale.fromValue(min),\n max: locale.fromValue(max),\n isUnavailable: isDateUnavailable && ((day) => isDateUnavailable(toIsoDate(day), day)),\n };\n}\n\nconst GREGORIAN = new GregorianCalendar();\n\n/**\n * 选到的日期写回成和 like 同一种类型:like 是字符串时写 ISO 日期;是 DateValue 时保留它的类型、日历系统、时间与时区,\n * 只换年月日(CalendarDateTime 选了另一天,时间不变)。like 为空时按 valueType(默认 ISO 字符串)\n */\nexport function writeDateLike(\n date: CalendarDate,\n like: DateInput | null | undefined,\n valueType: keyof DateValueTypes = 'iso',\n): DateInput {\n if (typeof like === 'string' || (like == null && valueType === 'iso')) return toIsoDate(date);\n if (like == null) return toCalendar(date, GREGORIAN);\n const converted = toCalendar(date, like.calendar);\n if (!('hour' in like)) return converted;\n return like.set({\n era: converted.era,\n year: converted.year,\n month: converted.month,\n day: converted.day,\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAqEA,SAAgB,cAAc,cAAyC,CAAC,IAAgB;CACtF,MAAM,OAAO,QAAQ;CACrB,MAAM,iBAAiB,WAAW,KAAK,QAAQ;CAC/C,OAAO;EACL,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,WAAW;GACb,OAAO,SAAS;EAClB;EACA,IAAI,WAAW;GACb,OAAO,KAAK,YAAY,iBAAiB;EAC3C;EACA,IAAI,OAAO;GACT,OAAO;IAAE,QAAQ,KAAK;IAAM,gBAAgB,KAAK,CAAC,CAAC,kBAAkB,KAAK;GAAe;EAC3F;EACA,QAAQ;GACN,OAAO,WAAW,MAAM,KAAK,YAAY,iBAAiB,CAAC,GAAG,SAAS,CAAC;EAC1E;EACA,UAAU,OAAO;GACf,IAAI,SAAS,MAAM,OAAO;GAE1B,MAAM,OACJ,OAAO,UAAU,WAAW,aAAa,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,eAAe,KAAK;GACrF,OAAO,QAAQ,WAAW,MAAM,SAAS,CAAC;EAC5C;EACA,OAAO;EACP,UAAU,MAAM;GAId,OAHc,aAAa,KAAK,MAAM,KAAK,SAAS,UAAU,CAAC,CAAC,cAC9D,KAAK,OAAO,KAAK,CAEZ,CAAA,CAAM,MAAM,SAAS,KAAK,SAAS,KAAK,CAAC,EAAE,SAAS,OAAO,KAAK,GAAG;EAC5E;CACF;AACF;AAEA,IAAM,gCAAgB,IAAI,IAA2B;AAErD,SAAS,aAAa,QAAgB,UAAiC;CACrE,MAAM,MAAM,GAAG,OAAO,GAAG;CACzB,IAAI,YAAY,cAAc,IAAI,GAAG;CACrC,IAAI,CAAC,WAAW;EACd,YAAY,IAAI,cAAc,QAAQ;GAAE,KAAK;GAAW;GAAU,UAAU;EAAM,CAAC;EACnF,cAAc,IAAI,KAAK,SAAS;CAClC;CACA,OAAO;AACT;;AAgBA,SAAgB,aACd,QACA,EAAE,KAAK,KAAK,qBACA;CACZ,OAAO;EACL,KAAK,OAAO,UAAU,GAAG;EACzB,KAAK,OAAO,UAAU,GAAG;EACzB,eAAe,uBAAuB,QAAQ,kBAAkB,UAAU,GAAG,GAAG,GAAG;CACrF;AACF;AAEA,IAAM,YAAY,IAAI,kBAAkB;;;;;AAMxC,SAAgB,cACd,MACA,MACA,YAAkC,OACvB;CACX,IAAI,OAAO,SAAS,YAAa,QAAQ,QAAQ,cAAc,OAAQ,OAAO,UAAU,IAAI;CAC5F,IAAI,QAAQ,MAAM,OAAO,WAAW,MAAM,SAAS;CACnD,MAAM,YAAY,WAAW,MAAM,KAAK,QAAQ;CAChD,IAAI,EAAE,UAAU,OAAO,OAAO;CAC9B,OAAO,KAAK,IAAI;EACd,KAAK,UAAU;EACf,MAAM,UAAU;EAChB,OAAO,UAAU;EACjB,KAAK,UAAU;CACjB,CAAC;AACH"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { HourCycles } from '../config/lang/lang';
|
|
2
|
+
/** 可以输入的段 */
|
|
3
|
+
export interface DateSegmentTypes {
|
|
4
|
+
/** 年 */
|
|
5
|
+
year: unknown;
|
|
6
|
+
/** 月 */
|
|
7
|
+
month: unknown;
|
|
8
|
+
/** 日 */
|
|
9
|
+
day: unknown;
|
|
10
|
+
/** 季度(1–4) */
|
|
11
|
+
quarter: unknown;
|
|
12
|
+
/** 一年里的第几周(ISO 8601:周一开始,含 1 月 4 日的那周是第 1 周) */
|
|
13
|
+
week: unknown;
|
|
14
|
+
/** 时(内部总是 0–23,12 小时制时显示 1–12) */
|
|
15
|
+
hour: unknown;
|
|
16
|
+
/** 分 */
|
|
17
|
+
minute: unknown;
|
|
18
|
+
/** 秒 */
|
|
19
|
+
second: unknown;
|
|
20
|
+
/** 上午 / 下午(12 小时制时自动加上) */
|
|
21
|
+
dayPeriod: unknown;
|
|
22
|
+
}
|
|
23
|
+
/** 一段的类型 */
|
|
24
|
+
export type DateSegmentType = keyof DateSegmentTypes;
|
|
25
|
+
/** 值的各个字段:时是 0–23 */
|
|
26
|
+
export type DateFieldValues = Partial<Record<Exclude<DateSegmentType, 'dayPeriod'>, number>>;
|
|
27
|
+
/** 渲染用的一段 */
|
|
28
|
+
export interface DateSegment {
|
|
29
|
+
/** 段的类型;literal 是分隔符(/、:、年) */
|
|
30
|
+
type: DateSegmentType | 'literal';
|
|
31
|
+
/** 显示的文字:值、正在输入的数字,或占位文字 */
|
|
32
|
+
text: string;
|
|
33
|
+
/** 还没填:显示的是占位文字 */
|
|
34
|
+
placeholder: boolean;
|
|
35
|
+
/** 当前值(dayPeriod 是 0 上午 / 1 下午);没填时 null */
|
|
36
|
+
value: number | null;
|
|
37
|
+
/** 最小值(aria-valuemin) */
|
|
38
|
+
min: number;
|
|
39
|
+
/** 最大值(aria-valuemax) */
|
|
40
|
+
max: number;
|
|
41
|
+
/** 段的名称(取自 Intl.DisplayNames:年、月、日 / year、month、day),给 aria-label */
|
|
42
|
+
label: string;
|
|
43
|
+
}
|
|
44
|
+
/** useDateSegments 的选项 */
|
|
45
|
+
export interface DateSegmentsOptions {
|
|
46
|
+
/** 有哪些段(不含 dayPeriod,12 小时制时自动加) */
|
|
47
|
+
fields: () => readonly Exclude<DateSegmentType, 'dayPeriod'>[];
|
|
48
|
+
/** 语言:段的顺序、分隔符、数字的写法 */
|
|
49
|
+
locale: () => string;
|
|
50
|
+
/** 12 / 24 小时制;不写时按语言 */
|
|
51
|
+
hourCycle?: () => keyof HourCycles | undefined;
|
|
52
|
+
/** 完整的值(外部传入);没有时 null */
|
|
53
|
+
value: () => DateFieldValues | null;
|
|
54
|
+
/** 所有段都填了时写回完整的值,填好的值删掉一段时写回 null */
|
|
55
|
+
onChange: (value: DateFieldValues | null) => void;
|
|
56
|
+
/** ↑↓ 从空段开始加减时的起点(一般是现在) */
|
|
57
|
+
placeholderValue: () => DateFieldValues;
|
|
58
|
+
/** 各段的占位文字(年、月、日 / yyyy、mm、dd) */
|
|
59
|
+
placeholders: () => Partial<Record<DateSegmentType, string>>;
|
|
60
|
+
/** 季度、周这两种段的排法(Intl 不排它们),如 `'{year}年第{quarter}季度'`;不写时是 `'{year}-{quarter}'` */
|
|
61
|
+
periodPatterns?: () => Partial<Record<'quarter' | 'week', string>>;
|
|
62
|
+
/** 只读或不可用:不响应输入 */
|
|
63
|
+
readonly?: () => boolean;
|
|
64
|
+
/** 焦点要越过这组的两端时(最后一段输入满了;第一段删空后再删):DateRangePicker 把焦点交给另一组 */
|
|
65
|
+
onExit?: (direction: 1 | -1) => void;
|
|
66
|
+
}
|
|
67
|
+
/** 分段输入的状态与操作 */
|
|
68
|
+
export interface DateSegmentsState {
|
|
69
|
+
/** 各段,含分隔符,按语言的顺序 */
|
|
70
|
+
readonly segments: readonly DateSegment[];
|
|
71
|
+
/** 可以输入的段(不含分隔符),Tab 与 ←→ 的顺序 */
|
|
72
|
+
readonly editable: readonly DateSegment[];
|
|
73
|
+
/** 焦点应该在的段:输入满了跳到下一段、Backspace 删空回到上一段时变化 */
|
|
74
|
+
readonly focusedSegment: DateSegmentType | null;
|
|
75
|
+
/** 有段填了、但还没填全 */
|
|
76
|
+
readonly partial: boolean;
|
|
77
|
+
/** 焦点进了某一段(组件的 focusin) */
|
|
78
|
+
setFocused(type: DateSegmentType | null): void;
|
|
79
|
+
/** 在焦点段输入文字(数字、a / p):逐个字符处理 */
|
|
80
|
+
type(text: string): void;
|
|
81
|
+
/** 焦点段加减 */
|
|
82
|
+
increment(amount: number): void;
|
|
83
|
+
/** 焦点段设成最小 / 最大值 */
|
|
84
|
+
toEdge(edge: 'min' | 'max'): void;
|
|
85
|
+
/** 删掉焦点段的最后一位;已经空了时焦点回到上一段 */
|
|
86
|
+
backspace(): void;
|
|
87
|
+
/** 清空所有段 */
|
|
88
|
+
clear(): void;
|
|
89
|
+
/** 丢掉还没写回的输入(打了一半的段),回到当前的值:表单重置时 */
|
|
90
|
+
reset(): void;
|
|
91
|
+
/** 写回还没写回的年份(没打满四位时先不写回):离开这一段、按 Enter 提交时 */
|
|
92
|
+
commit(): void;
|
|
93
|
+
/** 焦点移到相邻的段 */
|
|
94
|
+
moveFocus(direction: 1 | -1): void;
|
|
95
|
+
}
|
|
96
|
+
/** 分段输入的状态(组件 setup 里调用) */
|
|
97
|
+
export declare function useDateSegments(config: DateSegmentsOptions): DateSegmentsState;
|
|
98
|
+
/**
|
|
99
|
+
* 分段输入的键盘操作:↑↓ 加减、Page Up / Down 大步、Home / End 最小 / 最大、Backspace / Delete 删除、
|
|
100
|
+
* ←→ 换段(从右到左排版时反过来)。数字与字母走 beforeinput(软键盘、输入法也能输入),这里不处理。
|
|
101
|
+
* 返回是否处理了这个按键(处理了就该 preventDefault)
|
|
102
|
+
*/
|
|
103
|
+
export declare function handleSegmentKeydown(state: DateSegmentsState, event: KeyboardEvent, rtl?: boolean): boolean;
|
|
104
|
+
/** 日期类分段的粒度:DateField 精确到哪一段(到时、分、秒时是日期加时间) */
|
|
105
|
+
export interface DateFieldGranularities {
|
|
106
|
+
/** 只有年:'2026' */
|
|
107
|
+
year: unknown;
|
|
108
|
+
/** 年月:'2026-10'(同原生 input type="month") */
|
|
109
|
+
month: unknown;
|
|
110
|
+
/** 年月日(默认):'2026-10-20' */
|
|
111
|
+
day: unknown;
|
|
112
|
+
/** 年与季度:'2026-Q4' */
|
|
113
|
+
quarter: unknown;
|
|
114
|
+
/** 年与周(ISO 8601,周一开始):'2026-W43'(同原生 input type="week") */
|
|
115
|
+
week: unknown;
|
|
116
|
+
/** 日期加时:'2026-10-20T14:00' */
|
|
117
|
+
hour: unknown;
|
|
118
|
+
/** 日期加时分:'2026-10-20T14:30'(同原生 input type="datetime-local") */
|
|
119
|
+
minute: unknown;
|
|
120
|
+
/** 日期加时分秒:'2026-10-20T14:30:15' */
|
|
121
|
+
second: unknown;
|
|
122
|
+
}
|
|
123
|
+
/** 分段输入精确到哪一段 */
|
|
124
|
+
export type DateFieldGranularity = keyof DateFieldGranularities;
|
|
125
|
+
type ValueField = Exclude<DateSegmentType, 'dayPeriod'>;
|
|
126
|
+
/** 日期分段:从年到 granularity;time 时只取时间的部分(TimeField) */
|
|
127
|
+
export declare function segmentFields(granularity: DateFieldGranularity, time?: boolean): ValueField[];
|
|
128
|
+
/** 各段的值 → ISO 字符串(按有哪些段:'2026'、'2026-10'、'2026-10-20'、'2026-10-20T14:30'、'14:30') */
|
|
129
|
+
export declare function fieldsToIso(values: DateFieldValues, fields: readonly ValueField[]): string;
|
|
130
|
+
/** ISO 字符串 → 各段的值;格式不对时 null。只取 fields 里有的段('2026-10-20T14:30' 给 DateField 时只要日期) */
|
|
131
|
+
export declare function isoToFields(value: string | null | undefined, fields: readonly ValueField[]): DateFieldValues | null;
|
|
132
|
+
export {};
|