@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.1
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/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +120 -0
- package/_adapters/selection.js +709 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +376 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +252 -0
- package/collections/components.jsx +745 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +17 -0
- package/collections/nodes.js +107 -0
- package/collections/row-stamps.d.ts +17 -0
- package/collections/row-stamps.js +108 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +6 -0
- package/collections/server-dev.js +18 -0
- package/collections/server-off.d.ts +6 -0
- package/collections/server-off.js +9 -0
- package/collections/server-on.d.ts +29 -0
- package/collections/server-on.jsx +86 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +210 -0
- package/drag-drop/directives/drag.js +550 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +128 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +144 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +248 -0
- package/grid-list/behaviour.js +616 -0
- package/grid-list/index.d.ts +204 -0
- package/grid-list/index.jsx +721 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +539 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +52 -0
- package/interactions/utils.js +253 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +515 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +632 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +702 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +55 -0
- package/portal/index.jsx +83 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +142 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +66 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +560 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +625 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +162 -0
- package/state/menu.js +185 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +1326 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +837 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +73 -0
- package/utils/data-attrs.jsx +217 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +43 -0
- package/utils/index.js +160 -0
- package/utils/link-state.d.ts +6 -0
- package/utils/link-state.js +6 -0
- package/utils/links.d.ts +82 -0
- package/utils/links.jsx +150 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/transitions.d.ts +15 -0
- package/utils/transitions.js +104 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +129 -0
- package/virtualizer/behaviour.js +437 -0
- package/virtualizer/collection-renderer.d.ts +62 -0
- package/virtualizer/collection-renderer.jsx +190 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +3 -0
- package/virtualizer/index.jsx +5 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +510 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +89 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +64 -0
- package/virtualizer/virtualizer.jsx +91 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
package/date/queries.js
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
// Ported from @internationalized/date src/queries.ts (react-spectrum), Apache-2.0, © Adobe.
|
|
2
|
+
// Changes: .ts import specifiers, type-only imports, override modifiers, strict-mode index types.
|
|
3
|
+
/*
|
|
4
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
5
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
7
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
10
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
11
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
|
+
* governing permissions and limitations under the License.
|
|
13
|
+
*/
|
|
14
|
+
import {} from "./types.js";
|
|
15
|
+
import { CalendarDate, CalendarDateTime, ZonedDateTime } from "./CalendarDate.js";
|
|
16
|
+
import { fromAbsolute, toAbsolute, toCalendar, toCalendarDate } from "./conversion.js";
|
|
17
|
+
import { weekStartData } from "./weekStartData.js";
|
|
18
|
+
/** Returns whether the given dates occur on the same day, regardless of the time or calendar system. */
|
|
19
|
+
export function isSameDay(a, b) {
|
|
20
|
+
b = toCalendar(b, a.calendar);
|
|
21
|
+
return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns whether the given dates occur in the same month, using the calendar system of the first
|
|
25
|
+
* date.
|
|
26
|
+
*/
|
|
27
|
+
export function isSameMonth(a, b) {
|
|
28
|
+
b = toCalendar(b, a.calendar);
|
|
29
|
+
// In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.
|
|
30
|
+
a = startOfMonth(a);
|
|
31
|
+
b = startOfMonth(b);
|
|
32
|
+
return a.era === b.era && a.year === b.year && a.month === b.month;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns whether the given dates occur in the same year, using the calendar system of the first
|
|
36
|
+
* date.
|
|
37
|
+
*/
|
|
38
|
+
export function isSameYear(a, b) {
|
|
39
|
+
b = toCalendar(b, a.calendar);
|
|
40
|
+
a = startOfYear(a);
|
|
41
|
+
b = startOfYear(b);
|
|
42
|
+
return a.era === b.era && a.year === b.year;
|
|
43
|
+
}
|
|
44
|
+
/** Returns whether the given dates occur on the same day, and are of the same calendar system. */
|
|
45
|
+
export function isEqualDay(a, b) {
|
|
46
|
+
return isEqualCalendar(a.calendar, b.calendar) && isSameDay(a, b);
|
|
47
|
+
}
|
|
48
|
+
/** Returns whether the given dates occur in the same month, and are of the same calendar system. */
|
|
49
|
+
export function isEqualMonth(a, b) {
|
|
50
|
+
return isEqualCalendar(a.calendar, b.calendar) && isSameMonth(a, b);
|
|
51
|
+
}
|
|
52
|
+
/** Returns whether the given dates occur in the same year, and are of the same calendar system. */
|
|
53
|
+
export function isEqualYear(a, b) {
|
|
54
|
+
return isEqualCalendar(a.calendar, b.calendar) && isSameYear(a, b);
|
|
55
|
+
}
|
|
56
|
+
/** Returns whether two calendars are the same. */
|
|
57
|
+
export function isEqualCalendar(a, b) {
|
|
58
|
+
return a.isEqual?.(b) ?? b.isEqual?.(a) ?? a.identifier === b.identifier;
|
|
59
|
+
}
|
|
60
|
+
/** Returns whether the date is today in the given time zone. */
|
|
61
|
+
export function isToday(date, timeZone) {
|
|
62
|
+
return isSameDay(date, today(timeZone));
|
|
63
|
+
}
|
|
64
|
+
const DAY_MAP = {
|
|
65
|
+
sun: 0,
|
|
66
|
+
mon: 1,
|
|
67
|
+
tue: 2,
|
|
68
|
+
wed: 3,
|
|
69
|
+
thu: 4,
|
|
70
|
+
fri: 5,
|
|
71
|
+
sat: 6
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Returns the day of week for the given date and locale. Days are numbered from zero to six,
|
|
75
|
+
* where zero is the first day of the week in the given locale. For example, in the United States,
|
|
76
|
+
* the first day of the week is Sunday, but in France it is Monday.
|
|
77
|
+
*/
|
|
78
|
+
export function getDayOfWeek(date, locale, firstDayOfWeek) {
|
|
79
|
+
let julian = date.calendar.toJulianDay(date);
|
|
80
|
+
// If julian is negative, then julian % 7 will be negative, so we adjust
|
|
81
|
+
// accordingly. Julian day 0 is Monday.
|
|
82
|
+
let weekStart = firstDayOfWeek ? DAY_MAP[firstDayOfWeek] : getWeekStart(locale);
|
|
83
|
+
let dayOfWeek = Math.ceil(julian + 1 - weekStart) % 7;
|
|
84
|
+
if (dayOfWeek < 0) {
|
|
85
|
+
dayOfWeek += 7;
|
|
86
|
+
}
|
|
87
|
+
return dayOfWeek;
|
|
88
|
+
}
|
|
89
|
+
/** Returns the current time in the given time zone. */
|
|
90
|
+
export function now(timeZone) {
|
|
91
|
+
return fromAbsolute(Date.now(), timeZone);
|
|
92
|
+
}
|
|
93
|
+
/** Returns today's date in the given time zone. */
|
|
94
|
+
export function today(timeZone) {
|
|
95
|
+
return toCalendarDate(now(timeZone));
|
|
96
|
+
}
|
|
97
|
+
export function compareDate(a, b) {
|
|
98
|
+
return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);
|
|
99
|
+
}
|
|
100
|
+
export function compareTime(a, b) {
|
|
101
|
+
return timeToMs(a) - timeToMs(b);
|
|
102
|
+
}
|
|
103
|
+
function timeToMs(a) {
|
|
104
|
+
return a.hour * 60 * 60 * 1000 + a.minute * 60 * 1000 + a.second * 1000 + a.millisecond;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns the number of hours in the given date and time zone.
|
|
108
|
+
* Usually this is 24, but it could be 23 or 25 if the date is on a daylight saving transition.
|
|
109
|
+
*/
|
|
110
|
+
export function getHoursInDay(a, timeZone) {
|
|
111
|
+
let ms = toAbsolute(a, timeZone);
|
|
112
|
+
let tomorrow = a.add({ days: 1 });
|
|
113
|
+
let tomorrowMs = toAbsolute(tomorrow, timeZone);
|
|
114
|
+
return (tomorrowMs - ms) / 3600000;
|
|
115
|
+
}
|
|
116
|
+
let localTimeZone = null;
|
|
117
|
+
let localTimeZoneOverride = false;
|
|
118
|
+
/** Returns the time zone identifier for the current user. */
|
|
119
|
+
export function getLocalTimeZone() {
|
|
120
|
+
if (localTimeZone == null) {
|
|
121
|
+
localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
122
|
+
}
|
|
123
|
+
return localTimeZone;
|
|
124
|
+
}
|
|
125
|
+
/** Sets the time zone identifier for the current user. */
|
|
126
|
+
export function setLocalTimeZone(timeZone) {
|
|
127
|
+
localTimeZoneOverride = true;
|
|
128
|
+
localTimeZone = timeZone;
|
|
129
|
+
}
|
|
130
|
+
/** Resets the time zone identifier for the current user. */
|
|
131
|
+
export function resetLocalTimeZone() {
|
|
132
|
+
localTimeZoneOverride = false;
|
|
133
|
+
localTimeZone = null;
|
|
134
|
+
}
|
|
135
|
+
/** Returns whether the local time zone has been explicitly overridden via `setLocalTimeZone`. */
|
|
136
|
+
export function isLocalTimeZoneOverridden() {
|
|
137
|
+
return localTimeZoneOverride;
|
|
138
|
+
}
|
|
139
|
+
export function startOfMonth(date) {
|
|
140
|
+
// Use `subtract` instead of `set` so we don't get constrained in an era.
|
|
141
|
+
return date.subtract({ days: date.day - 1 });
|
|
142
|
+
}
|
|
143
|
+
export function endOfMonth(date) {
|
|
144
|
+
return date.add({ days: date.calendar.getDaysInMonth(date) - date.day });
|
|
145
|
+
}
|
|
146
|
+
export function startOfYear(date) {
|
|
147
|
+
return startOfMonth(date.subtract({ months: date.month - 1 }));
|
|
148
|
+
}
|
|
149
|
+
export function endOfYear(date) {
|
|
150
|
+
return endOfMonth(date.add({ months: date.calendar.getMonthsInYear(date) - date.month }));
|
|
151
|
+
}
|
|
152
|
+
export function getMinimumMonthInYear(date) {
|
|
153
|
+
if (date.calendar.getMinimumMonthInYear) {
|
|
154
|
+
return date.calendar.getMinimumMonthInYear(date);
|
|
155
|
+
}
|
|
156
|
+
return 1;
|
|
157
|
+
}
|
|
158
|
+
export function getMinimumDayInMonth(date) {
|
|
159
|
+
if (date.calendar.getMinimumDayInMonth) {
|
|
160
|
+
return date.calendar.getMinimumDayInMonth(date);
|
|
161
|
+
}
|
|
162
|
+
return 1;
|
|
163
|
+
}
|
|
164
|
+
export function startOfWeek(date, locale, firstDayOfWeek) {
|
|
165
|
+
let dayOfWeek = getDayOfWeek(date, locale, firstDayOfWeek);
|
|
166
|
+
return date.subtract({ days: dayOfWeek });
|
|
167
|
+
}
|
|
168
|
+
export function endOfWeek(date, locale, firstDayOfWeek) {
|
|
169
|
+
return startOfWeek(date, locale, firstDayOfWeek).add({ days: 6 });
|
|
170
|
+
}
|
|
171
|
+
const cachedRegions = new Map();
|
|
172
|
+
const cachedWeekInfo = new Map();
|
|
173
|
+
function getRegion(locale) {
|
|
174
|
+
// If the Intl.Locale API is available, use it to get the region for the locale.
|
|
175
|
+
// @ts-ignore
|
|
176
|
+
if (Intl.Locale) {
|
|
177
|
+
// Constructing an Intl.Locale is expensive, so cache the result.
|
|
178
|
+
let region = cachedRegions.get(locale);
|
|
179
|
+
if (!region) {
|
|
180
|
+
// @ts-ignore
|
|
181
|
+
region = new Intl.Locale(locale).maximize().region;
|
|
182
|
+
if (region) {
|
|
183
|
+
cachedRegions.set(locale, region);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return region;
|
|
187
|
+
}
|
|
188
|
+
// If not, just try splitting the string.
|
|
189
|
+
// If the second part of the locale string is 'u',
|
|
190
|
+
// then this is a unicode extension, so ignore it.
|
|
191
|
+
// Otherwise, it should be the region.
|
|
192
|
+
let part = locale.split('-')[1];
|
|
193
|
+
return part === 'u' ? undefined : part;
|
|
194
|
+
}
|
|
195
|
+
function getWeekStart(locale) {
|
|
196
|
+
// TODO: use Intl.Locale for this once browsers support the weekInfo property
|
|
197
|
+
// https://github.com/tc39/proposal-intl-locale-info
|
|
198
|
+
let weekInfo = cachedWeekInfo.get(locale);
|
|
199
|
+
if (!weekInfo) {
|
|
200
|
+
if (Intl.Locale) {
|
|
201
|
+
// @ts-ignore
|
|
202
|
+
let localeInst = new Intl.Locale(locale);
|
|
203
|
+
if ('getWeekInfo' in localeInst) {
|
|
204
|
+
weekInfo = localeInst.getWeekInfo();
|
|
205
|
+
if (weekInfo) {
|
|
206
|
+
cachedWeekInfo.set(locale, weekInfo);
|
|
207
|
+
return weekInfo.firstDay;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
let region = getRegion(locale);
|
|
212
|
+
if (locale.includes('-fw-')) {
|
|
213
|
+
// pull the value for the attribute fw from strings such as en-US-u-ca-iso8601-fw-tue or en-US-u-ca-iso8601-fw-mon-nu-thai
|
|
214
|
+
// where the fw attribute could be followed by another unicode locale extension or not
|
|
215
|
+
let day = locale.split('-fw-')[1].split('-')[0];
|
|
216
|
+
if (day === 'mon') {
|
|
217
|
+
weekInfo = { firstDay: 1 };
|
|
218
|
+
}
|
|
219
|
+
else if (day === 'tue') {
|
|
220
|
+
weekInfo = { firstDay: 2 };
|
|
221
|
+
}
|
|
222
|
+
else if (day === 'wed') {
|
|
223
|
+
weekInfo = { firstDay: 3 };
|
|
224
|
+
}
|
|
225
|
+
else if (day === 'thu') {
|
|
226
|
+
weekInfo = { firstDay: 4 };
|
|
227
|
+
}
|
|
228
|
+
else if (day === 'fri') {
|
|
229
|
+
weekInfo = { firstDay: 5 };
|
|
230
|
+
}
|
|
231
|
+
else if (day === 'sat') {
|
|
232
|
+
weekInfo = { firstDay: 6 };
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
weekInfo = { firstDay: 0 };
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else if (locale.includes('-ca-iso8601')) {
|
|
239
|
+
weekInfo = { firstDay: 1 };
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
weekInfo = { firstDay: region ? weekStartData[region] || 0 : 0 };
|
|
243
|
+
}
|
|
244
|
+
cachedWeekInfo.set(locale, weekInfo);
|
|
245
|
+
}
|
|
246
|
+
return weekInfo.firstDay;
|
|
247
|
+
}
|
|
248
|
+
/** Returns the number of weeks in the given month and locale. */
|
|
249
|
+
export function getWeeksInMonth(date, locale, firstDayOfWeek) {
|
|
250
|
+
let days = date.calendar.getDaysInMonth(date);
|
|
251
|
+
return Math.ceil((getDayOfWeek(startOfMonth(date), locale, firstDayOfWeek) + days) / 7);
|
|
252
|
+
}
|
|
253
|
+
export function minDate(a, b) {
|
|
254
|
+
if (a && b) {
|
|
255
|
+
return a.compare(b) <= 0 ? a : b;
|
|
256
|
+
}
|
|
257
|
+
return a || b;
|
|
258
|
+
}
|
|
259
|
+
/** Returns the greater of the two provider dates. */
|
|
260
|
+
export function maxDate(a, b) {
|
|
261
|
+
if (a && b) {
|
|
262
|
+
return a.compare(b) >= 0 ? a : b;
|
|
263
|
+
}
|
|
264
|
+
return a || b;
|
|
265
|
+
}
|
|
266
|
+
const WEEKEND_DATA = {
|
|
267
|
+
AF: [4, 5],
|
|
268
|
+
AE: [5, 6],
|
|
269
|
+
BH: [5, 6],
|
|
270
|
+
DZ: [5, 6],
|
|
271
|
+
EG: [5, 6],
|
|
272
|
+
IL: [5, 6],
|
|
273
|
+
IQ: [5, 6],
|
|
274
|
+
IR: [5, 5],
|
|
275
|
+
JO: [5, 6],
|
|
276
|
+
KW: [5, 6],
|
|
277
|
+
LY: [5, 6],
|
|
278
|
+
OM: [5, 6],
|
|
279
|
+
QA: [5, 6],
|
|
280
|
+
SA: [5, 6],
|
|
281
|
+
SD: [5, 6],
|
|
282
|
+
SY: [5, 6],
|
|
283
|
+
YE: [5, 6]
|
|
284
|
+
};
|
|
285
|
+
/** Returns whether the given date is on a weekend in the given locale. */
|
|
286
|
+
export function isWeekend(date, locale) {
|
|
287
|
+
let julian = date.calendar.toJulianDay(date);
|
|
288
|
+
// If julian is negative, then julian % 7 will be negative, so we adjust
|
|
289
|
+
// accordingly. Julian day 0 is Monday.
|
|
290
|
+
let dayOfWeek = Math.ceil(julian + 1) % 7;
|
|
291
|
+
if (dayOfWeek < 0) {
|
|
292
|
+
dayOfWeek += 7;
|
|
293
|
+
}
|
|
294
|
+
let region = getRegion(locale);
|
|
295
|
+
// Use Intl.Locale for this once weekInfo is supported.
|
|
296
|
+
// https://github.com/tc39/proposal-intl-locale-info
|
|
297
|
+
let [start, end] = WEEKEND_DATA[region] || [6, 0];
|
|
298
|
+
return dayOfWeek === start || dayOfWeek === end;
|
|
299
|
+
}
|
|
300
|
+
/** Returns whether the given date is on a weekday in the given locale. */
|
|
301
|
+
export function isWeekday(date, locale) {
|
|
302
|
+
return !isWeekend(date, locale);
|
|
303
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from "./CalendarDate.js";
|
|
2
|
+
import type { Calendar, CalendarIdentifier } from "./types.js";
|
|
3
|
+
export type AnyDateValue = CalendarDate | CalendarDateTime | ZonedDateTime;
|
|
4
|
+
export type AnyTimeValue = Time | CalendarDateTime | ZonedDateTime;
|
|
5
|
+
/** A serialized date / time value (see module comment). */
|
|
6
|
+
export type DateValueString = string;
|
|
7
|
+
/** The value as a string that `parseDateValue` turns back into an equal value (same class + calendar). */
|
|
8
|
+
export declare function stringifyDateValue(value: AnyDateValue | Time): DateValueString;
|
|
9
|
+
export declare function stringifyDateValue(value: AnyDateValue | Time | null | undefined): DateValueString | null;
|
|
10
|
+
/**
|
|
11
|
+
* Parse a `stringifyDateValue` string (or a plain ISO 8601 date / date-time / zoned date-time /
|
|
12
|
+
* time). Results are cached (values are immutable). `calendars` creates the annotated calendar
|
|
13
|
+
* system (default: `createCalendar`).
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseDateValue(text: DateValueString, calendars?: (id: CalendarIdentifier) => Calendar): AnyDateValue | Time;
|
|
16
|
+
export declare function parseDateValue(text: DateValueString | null | undefined, calendars?: (id: CalendarIdentifier) => Calendar): AnyDateValue | Time | null;
|
|
17
|
+
/** Accept a value or its string form (component props), return the string form. */
|
|
18
|
+
export declare function toDateValueString(value: AnyDateValue | Time | DateValueString | null | undefined): DateValueString | null;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Rivet addition (not part of @internationalized/date): date values as strings, so widget state
|
|
2
|
+
// stays plain JSON for resumability (the resume format refuses class instances). The string is the
|
|
3
|
+
// value's ISO 8601 form (`toString()`, always proleptic Gregorian) plus an RFC 9557 calendar
|
|
4
|
+
// annotation (`[u-ca=japanese]`) when the value is not Gregorian, so it parses back to the same
|
|
5
|
+
// class in the same calendar system:
|
|
6
|
+
// CalendarDate 2026-10-04 2026-10-04[u-ca=hebrew]
|
|
7
|
+
// CalendarDateTime 2026-10-04T09:30:00
|
|
8
|
+
// ZonedDateTime 2026-10-04T09:30:00+03:00[Europe/Kyiv]
|
|
9
|
+
// Time 09:30:00
|
|
10
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from "./CalendarDate.js";
|
|
11
|
+
import { createCalendar } from "./createCalendar.js";
|
|
12
|
+
import { toCalendar } from "./conversion.js";
|
|
13
|
+
import { parseDate, parseDateTime, parseTime, parseZonedDateTime } from "./string.js";
|
|
14
|
+
const CALENDAR_ANNOTATION = /\[u-ca=([a-z0-9-]+)\]$/;
|
|
15
|
+
const cache = new Map();
|
|
16
|
+
export function stringifyDateValue(value) {
|
|
17
|
+
if (value == null)
|
|
18
|
+
return null;
|
|
19
|
+
const text = value.toString();
|
|
20
|
+
return "calendar" in value && value.calendar.identifier !== "gregory" ? text + "[u-ca=" + value.calendar.identifier + "]" : text;
|
|
21
|
+
}
|
|
22
|
+
export function parseDateValue(text, calendars) {
|
|
23
|
+
if (text == null || text === "")
|
|
24
|
+
return null;
|
|
25
|
+
const hit = calendars ? undefined : cache.get(text);
|
|
26
|
+
if (hit)
|
|
27
|
+
return hit;
|
|
28
|
+
let body = text, calendar = null;
|
|
29
|
+
const annotation = CALENDAR_ANNOTATION.exec(text);
|
|
30
|
+
if (annotation) {
|
|
31
|
+
calendar = annotation[1];
|
|
32
|
+
body = text.slice(0, annotation.index);
|
|
33
|
+
}
|
|
34
|
+
let value;
|
|
35
|
+
if (body.includes("["))
|
|
36
|
+
value = parseZonedDateTime(body);
|
|
37
|
+
else if (body.includes("T"))
|
|
38
|
+
value = parseDateTime(body);
|
|
39
|
+
else if (/^\d{2}:/.test(body))
|
|
40
|
+
value = parseTime(body);
|
|
41
|
+
else
|
|
42
|
+
value = parseDate(body);
|
|
43
|
+
if (calendar && calendar !== "gregory" && !(value instanceof Time))
|
|
44
|
+
value = toCalendar(value, (calendars ?? createCalendar)(calendar));
|
|
45
|
+
if (!calendars) {
|
|
46
|
+
if (cache.size > 512)
|
|
47
|
+
cache.clear();
|
|
48
|
+
cache.set(text, value);
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
/** Accept a value or its string form (component props), return the string form. */
|
|
53
|
+
export function toDateValueString(value) {
|
|
54
|
+
return value == null ? null : typeof value === "string" ? value : stringifyDateValue(value);
|
|
55
|
+
}
|
package/date/string.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type AnyDateTime, type DateTimeDuration, type Disambiguation } from './types.js';
|
|
2
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from './CalendarDate.js';
|
|
3
|
+
/** Parses an ISO 8601 time string. */
|
|
4
|
+
export declare function parseTime(value: string): Time;
|
|
5
|
+
/** Parses an ISO 8601 date string, with no time components. */
|
|
6
|
+
export declare function parseDate(value: string): CalendarDate;
|
|
7
|
+
/** Parses an ISO 8601 date and time string, with no time zone. */
|
|
8
|
+
export declare function parseDateTime(value: string): CalendarDateTime;
|
|
9
|
+
/**
|
|
10
|
+
* Parses an ISO 8601 date and time string with a time zone extension and optional UTC offset (e.g.
|
|
11
|
+
* "2021-11-07T00:45[America/Los_Angeles]" or "2021-11-07T00:45-07:00[America/Los_Angeles]").
|
|
12
|
+
* Ambiguous times due to daylight saving time transitions are resolved according to the
|
|
13
|
+
* `disambiguation` parameter.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseZonedDateTime(value: string, disambiguation?: Disambiguation): ZonedDateTime;
|
|
16
|
+
/**
|
|
17
|
+
* Parses an ISO 8601 date and time string with a UTC offset (e.g. "2021-11-07T07:45:00Z"
|
|
18
|
+
* or "2021-11-07T07:45:00-07:00"). The result is converted to the provided time zone.
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseAbsolute(value: string, timeZone: string): ZonedDateTime;
|
|
21
|
+
/**
|
|
22
|
+
* Parses an ISO 8601 date and time string with a UTC offset (e.g. "2021-11-07T07:45:00Z"
|
|
23
|
+
* or "2021-11-07T07:45:00-07:00"). The result is converted to the user's local time zone.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseAbsoluteToLocal(value: string): ZonedDateTime;
|
|
26
|
+
export declare function timeToString(time: Time): string;
|
|
27
|
+
export declare function dateToString(date: CalendarDate): string;
|
|
28
|
+
export declare function dateTimeToString(date: AnyDateTime): string;
|
|
29
|
+
export declare function zonedDateTimeToString(date: ZonedDateTime): string;
|
|
30
|
+
/**
|
|
31
|
+
* Parses an ISO 8601 duration string (e.g. "P3Y6M6W4DT12H30M5S").
|
|
32
|
+
*
|
|
33
|
+
* @param value An ISO 8601 duration string.
|
|
34
|
+
* @returns A DateTimeDuration object.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseDuration(value: string): Required<DateTimeDuration>;
|
package/date/string.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
// Ported from @internationalized/date src/string.ts (react-spectrum), Apache-2.0, © Adobe.
|
|
2
|
+
// Changes: .ts import specifiers, type-only imports, override modifiers, strict-mode index types.
|
|
3
|
+
/*
|
|
4
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
5
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
7
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
10
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
11
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
12
|
+
* governing permissions and limitations under the License.
|
|
13
|
+
*/
|
|
14
|
+
import {} from "./types.js";
|
|
15
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from "./CalendarDate.js";
|
|
16
|
+
import { epochFromDate, fromAbsolute, possibleAbsolutes, toAbsolute, toCalendar, toCalendarDateTime, toTimeZone } from "./conversion.js";
|
|
17
|
+
import { getLocalTimeZone } from "./queries.js";
|
|
18
|
+
import { GregorianCalendar } from "./calendars/GregorianCalendar.js";
|
|
19
|
+
import {} from "./utils.js";
|
|
20
|
+
const TIME_RE = /^(\d{2})(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?$/;
|
|
21
|
+
const DATE_RE = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})$/;
|
|
22
|
+
const DATE_TIME_RE = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?$/;
|
|
23
|
+
const ZONED_DATE_TIME_RE = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?(?:([+-]\d{2})(?::?(\d{2}))?(?::?(\d{2}))?)?\[(.*?)\]$/;
|
|
24
|
+
const ABSOLUTE_RE = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?(?:(?:([+-]\d{2})(?::?(\d{2}))?)|Z)$/;
|
|
25
|
+
const DATE_TIME_DURATION_RE = /^((?<negative>-)|\+)?P((?<years>\d*)Y)?((?<months>\d*)M)?((?<weeks>\d*)W)?((?<days>\d*)D)?((?<time>T)((?<hours>\d*[.,]?\d{1,9})H)?((?<minutes>\d*[.,]?\d{1,9})M)?((?<seconds>\d*[.,]?\d{1,9})S)?)?$/;
|
|
26
|
+
const requiredDurationTimeGroups = ['hours', 'minutes', 'seconds'];
|
|
27
|
+
const requiredDurationGroups = ['years', 'months', 'weeks', 'days', ...requiredDurationTimeGroups];
|
|
28
|
+
/** Parses an ISO 8601 time string. */
|
|
29
|
+
export function parseTime(value) {
|
|
30
|
+
let m = value.match(TIME_RE);
|
|
31
|
+
if (!m) {
|
|
32
|
+
throw new Error('Invalid ISO 8601 time string: ' + value);
|
|
33
|
+
}
|
|
34
|
+
return new Time(parseNumber(m[1], 0, 23), m[2] ? parseNumber(m[2], 0, 59) : 0, m[3] ? parseNumber(m[3], 0, 59) : 0, m[4] ? parseNumber(m[4], 0, Infinity) * 1000 : 0);
|
|
35
|
+
}
|
|
36
|
+
/** Parses an ISO 8601 date string, with no time components. */
|
|
37
|
+
export function parseDate(value) {
|
|
38
|
+
let m = value.match(DATE_RE);
|
|
39
|
+
if (!m) {
|
|
40
|
+
if (ABSOLUTE_RE.test(value)) {
|
|
41
|
+
throw new Error(`Invalid ISO 8601 date string: ${value}. Use parseAbsolute() instead.`);
|
|
42
|
+
}
|
|
43
|
+
throw new Error('Invalid ISO 8601 date string: ' + value);
|
|
44
|
+
}
|
|
45
|
+
let date = new CalendarDate(parseNumber(m[1], 0, 9999), parseNumber(m[2], 1, 12), 1);
|
|
46
|
+
date.day = parseNumber(m[3], 1, date.calendar.getDaysInMonth(date));
|
|
47
|
+
return date;
|
|
48
|
+
}
|
|
49
|
+
/** Parses an ISO 8601 date and time string, with no time zone. */
|
|
50
|
+
export function parseDateTime(value) {
|
|
51
|
+
let m = value.match(DATE_TIME_RE);
|
|
52
|
+
if (!m) {
|
|
53
|
+
if (ABSOLUTE_RE.test(value)) {
|
|
54
|
+
throw new Error(`Invalid ISO 8601 date time string: ${value}. Use parseAbsolute() instead.`);
|
|
55
|
+
}
|
|
56
|
+
throw new Error('Invalid ISO 8601 date time string: ' + value);
|
|
57
|
+
}
|
|
58
|
+
let year = parseNumber(m[1], -9999, 9999);
|
|
59
|
+
let era = year < 1 ? 'BC' : 'AD';
|
|
60
|
+
let date = new CalendarDateTime(era, year < 1 ? -year + 1 : year, parseNumber(m[2], 1, 12), 1, m[4] ? parseNumber(m[4], 0, 23) : 0, m[5] ? parseNumber(m[5], 0, 59) : 0, m[6] ? parseNumber(m[6], 0, 59) : 0, m[7] ? parseNumber(m[7], 0, Infinity) * 1000 : 0);
|
|
61
|
+
date.day = parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));
|
|
62
|
+
return date;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Parses an ISO 8601 date and time string with a time zone extension and optional UTC offset (e.g.
|
|
66
|
+
* "2021-11-07T00:45[America/Los_Angeles]" or "2021-11-07T00:45-07:00[America/Los_Angeles]").
|
|
67
|
+
* Ambiguous times due to daylight saving time transitions are resolved according to the
|
|
68
|
+
* `disambiguation` parameter.
|
|
69
|
+
*/
|
|
70
|
+
export function parseZonedDateTime(value, disambiguation) {
|
|
71
|
+
let m = value.match(ZONED_DATE_TIME_RE);
|
|
72
|
+
if (!m) {
|
|
73
|
+
throw new Error('Invalid ISO 8601 date time string: ' + value);
|
|
74
|
+
}
|
|
75
|
+
let year = parseNumber(m[1], -9999, 9999);
|
|
76
|
+
let era = year < 1 ? 'BC' : 'AD';
|
|
77
|
+
let date = new ZonedDateTime(era, year < 1 ? -year + 1 : year, parseNumber(m[2], 1, 12), 1, m[11], 0, m[4] ? parseNumber(m[4], 0, 23) : 0, m[5] ? parseNumber(m[5], 0, 59) : 0, m[6] ? parseNumber(m[6], 0, 59) : 0, m[7] ? parseNumber(m[7], 0, Infinity) * 1000 : 0);
|
|
78
|
+
date.day = parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));
|
|
79
|
+
let plainDateTime = toCalendarDateTime(date);
|
|
80
|
+
let ms;
|
|
81
|
+
if (m[8]) {
|
|
82
|
+
let hourOffset = parseNumber(m[8], -23, 23);
|
|
83
|
+
date.offset =
|
|
84
|
+
Math.sign(hourOffset) *
|
|
85
|
+
(Math.abs(hourOffset) * 60 * 60 * 1000 +
|
|
86
|
+
parseNumber(m[9] ?? '0', 0, 59) * 60 * 1000 +
|
|
87
|
+
parseNumber(m[10] ?? '0', 0, 59) * 1000);
|
|
88
|
+
ms = epochFromDate(date) - date.offset;
|
|
89
|
+
// Validate offset against parsed date.
|
|
90
|
+
let absolutes = possibleAbsolutes(plainDateTime, date.timeZone);
|
|
91
|
+
if (!absolutes.includes(ms)) {
|
|
92
|
+
throw new Error(`Offset ${offsetToString(date.offset)} is invalid for ${dateTimeToString(date)} in ${date.timeZone}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Convert to absolute and back to fix invalid times due to DST.
|
|
97
|
+
ms = toAbsolute(toCalendarDateTime(plainDateTime), date.timeZone, disambiguation);
|
|
98
|
+
}
|
|
99
|
+
return fromAbsolute(ms, date.timeZone);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Parses an ISO 8601 date and time string with a UTC offset (e.g. "2021-11-07T07:45:00Z"
|
|
103
|
+
* or "2021-11-07T07:45:00-07:00"). The result is converted to the provided time zone.
|
|
104
|
+
*/
|
|
105
|
+
export function parseAbsolute(value, timeZone) {
|
|
106
|
+
let m = value.match(ABSOLUTE_RE);
|
|
107
|
+
if (!m) {
|
|
108
|
+
throw new Error('Invalid ISO 8601 date time string: ' + value);
|
|
109
|
+
}
|
|
110
|
+
let year = parseNumber(m[1], -9999, 9999);
|
|
111
|
+
let era = year < 1 ? 'BC' : 'AD';
|
|
112
|
+
let date = new ZonedDateTime(era, year < 1 ? -year + 1 : year, parseNumber(m[2], 1, 12), 1, timeZone, 0, m[4] ? parseNumber(m[4], 0, 23) : 0, m[5] ? parseNumber(m[5], 0, 59) : 0, m[6] ? parseNumber(m[6], 0, 59) : 0, m[7] ? parseNumber(m[7], 0, Infinity) * 1000 : 0);
|
|
113
|
+
date.day = parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));
|
|
114
|
+
if (m[8]) {
|
|
115
|
+
date.offset =
|
|
116
|
+
parseNumber(m[8], -23, 23) * 60 * 60 * 1000 + parseNumber(m[9] ?? '0', 0, 59) * 60 * 1000;
|
|
117
|
+
}
|
|
118
|
+
return toTimeZone(date, timeZone);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Parses an ISO 8601 date and time string with a UTC offset (e.g. "2021-11-07T07:45:00Z"
|
|
122
|
+
* or "2021-11-07T07:45:00-07:00"). The result is converted to the user's local time zone.
|
|
123
|
+
*/
|
|
124
|
+
export function parseAbsoluteToLocal(value) {
|
|
125
|
+
return parseAbsolute(value, getLocalTimeZone());
|
|
126
|
+
}
|
|
127
|
+
function parseNumber(value, min, max) {
|
|
128
|
+
let val = Number(value);
|
|
129
|
+
if (val < min || val > max) {
|
|
130
|
+
throw new RangeError(`Value out of range: ${min} <= ${val} <= ${max}`);
|
|
131
|
+
}
|
|
132
|
+
return val;
|
|
133
|
+
}
|
|
134
|
+
export function timeToString(time) {
|
|
135
|
+
return `${String(time.hour).padStart(2, '0')}:${String(time.minute).padStart(2, '0')}:${String(time.second).padStart(2, '0')}${time.millisecond ? String(time.millisecond / 1000).slice(1) : ''}`;
|
|
136
|
+
}
|
|
137
|
+
export function dateToString(date) {
|
|
138
|
+
let gregorianDate = toCalendar(date, new GregorianCalendar());
|
|
139
|
+
let year;
|
|
140
|
+
if (gregorianDate.era === 'BC') {
|
|
141
|
+
year =
|
|
142
|
+
gregorianDate.year === 1
|
|
143
|
+
? '0000'
|
|
144
|
+
: '-' + String(Math.abs(1 - gregorianDate.year)).padStart(6, '00');
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
year = String(gregorianDate.year).padStart(4, '0');
|
|
148
|
+
}
|
|
149
|
+
return `${year}-${String(gregorianDate.month).padStart(2, '0')}-${String(gregorianDate.day).padStart(2, '0')}`;
|
|
150
|
+
}
|
|
151
|
+
export function dateTimeToString(date) {
|
|
152
|
+
// @ts-ignore
|
|
153
|
+
return `${dateToString(date)}T${timeToString(date)}`;
|
|
154
|
+
}
|
|
155
|
+
function offsetToString(offset) {
|
|
156
|
+
let sign = Math.sign(offset) < 0 ? '-' : '+';
|
|
157
|
+
offset = Math.abs(offset);
|
|
158
|
+
let offsetHours = Math.floor(offset / (60 * 60 * 1000));
|
|
159
|
+
let offsetMinutes = Math.floor((offset % (60 * 60 * 1000)) / (60 * 1000));
|
|
160
|
+
let offsetSeconds = Math.floor(((offset % (60 * 60 * 1000)) % (60 * 1000)) / 1000);
|
|
161
|
+
let stringOffset = `${sign}${String(offsetHours).padStart(2, '0')}:${String(offsetMinutes).padStart(2, '0')}`;
|
|
162
|
+
if (offsetSeconds !== 0) {
|
|
163
|
+
stringOffset += `:${String(offsetSeconds).padStart(2, '0')}`;
|
|
164
|
+
}
|
|
165
|
+
return stringOffset;
|
|
166
|
+
}
|
|
167
|
+
export function zonedDateTimeToString(date) {
|
|
168
|
+
return `${dateTimeToString(date)}${offsetToString(date.offset)}[${date.timeZone}]`;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Parses an ISO 8601 duration string (e.g. "P3Y6M6W4DT12H30M5S").
|
|
172
|
+
*
|
|
173
|
+
* @param value An ISO 8601 duration string.
|
|
174
|
+
* @returns A DateTimeDuration object.
|
|
175
|
+
*/
|
|
176
|
+
export function parseDuration(value) {
|
|
177
|
+
const match = value.match(DATE_TIME_DURATION_RE);
|
|
178
|
+
if (!match) {
|
|
179
|
+
throw new Error(`Invalid ISO 8601 Duration string: ${value}`);
|
|
180
|
+
}
|
|
181
|
+
const parseDurationGroup = (group, isNegative) => {
|
|
182
|
+
if (!group) {
|
|
183
|
+
return 0;
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
const sign = isNegative ? -1 : 1;
|
|
187
|
+
return sign * Number(group.replace(',', '.'));
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
throw new Error(`Invalid ISO 8601 Duration string: ${value}`);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
const isNegative = !!match.groups?.negative;
|
|
194
|
+
const hasRequiredGroups = requiredDurationGroups.some(group => match.groups?.[group]);
|
|
195
|
+
if (!hasRequiredGroups) {
|
|
196
|
+
throw new Error(`Invalid ISO 8601 Duration string: ${value}`);
|
|
197
|
+
}
|
|
198
|
+
const durationStringIncludesTime = match.groups?.time;
|
|
199
|
+
if (durationStringIncludesTime) {
|
|
200
|
+
const hasRequiredDurationTimeGroups = requiredDurationTimeGroups.some(group => match.groups?.[group]);
|
|
201
|
+
if (!hasRequiredDurationTimeGroups) {
|
|
202
|
+
throw new Error(`Invalid ISO 8601 Duration string: ${value}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const duration = {
|
|
206
|
+
years: parseDurationGroup(match.groups?.years, isNegative),
|
|
207
|
+
months: parseDurationGroup(match.groups?.months, isNegative),
|
|
208
|
+
weeks: parseDurationGroup(match.groups?.weeks, isNegative),
|
|
209
|
+
days: parseDurationGroup(match.groups?.days, isNegative),
|
|
210
|
+
hours: parseDurationGroup(match.groups?.hours, isNegative),
|
|
211
|
+
minutes: parseDurationGroup(match.groups?.minutes, isNegative),
|
|
212
|
+
seconds: parseDurationGroup(match.groups?.seconds, isNegative)
|
|
213
|
+
};
|
|
214
|
+
if (duration.hours !== undefined &&
|
|
215
|
+
duration.hours % 1 !== 0 &&
|
|
216
|
+
(duration.minutes || duration.seconds)) {
|
|
217
|
+
throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);
|
|
218
|
+
}
|
|
219
|
+
if (duration.minutes !== undefined && duration.minutes % 1 !== 0 && duration.seconds) {
|
|
220
|
+
throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);
|
|
221
|
+
}
|
|
222
|
+
return duration;
|
|
223
|
+
}
|