@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/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 +109 -0
- package/_adapters/selection.js +685 -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 +374 -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 +217 -0
- package/collections/components.jsx +537 -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 +9 -0
- package/collections/nodes.js +81 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +5 -0
- package/collections/server-dev.js +16 -0
- package/collections/server-off.d.ts +5 -0
- package/collections/server-off.js +7 -0
- package/collections/server-on.d.ts +28 -0
- package/collections/server-on.jsx +76 -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 +194 -0
- package/drag-drop/directives/drag.js +522 -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 +126 -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 +133 -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 +242 -0
- package/grid-list/behaviour.js +598 -0
- package/grid-list/index.d.ts +202 -0
- package/grid-list/index.jsx +685 -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 +538 -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 +53 -0
- package/interactions/utils.js +252 -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 +492 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +596 -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 +671 -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 +47 -0
- package/portal/index.jsx +76 -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 +139 -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 +76 -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 +535 -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 +624 -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 +159 -0
- package/state/menu.js +184 -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 +982 -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 +815 -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 +71 -0
- package/utils/data-attrs.jsx +193 -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 +57 -0
- package/utils/index.js +257 -0
- package/utils/links.d.ts +87 -0
- package/utils/links.jsx +152 -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/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +98 -0
- package/virtualizer/behaviour.js +315 -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 +2 -0
- package/virtualizer/index.jsx +4 -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 +508 -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 +79 -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 +62 -0
- package/virtualizer/virtualizer.jsx +88 -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
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Content } from "@rivetjs/runtime/jsx-runtime";
|
|
2
|
+
import { type GlobalDOMAttributes } from "../utils/dom-props.js";
|
|
3
|
+
import { type CompareState, type CompareStateOptions } from "./behaviour.js";
|
|
4
|
+
export { COMPARE_DURATION, COMPARE_FRICTION, COMPARE_KEYS, compareDragEnd, comparePosition, compareSetValue, compareValue, compareValueAt, compareValueText, createCompareState, isCompareDisabled, type CompareMotionOptions, type CompareOrientation, type CompareState, type CompareStateOptions, } from "./behaviour.js";
|
|
5
|
+
/** The compare state of the nearest `Compare` (null outside one). */
|
|
6
|
+
export declare const CompareContext: import("@rivetjs/reactivity").Context<CompareState | null>;
|
|
7
|
+
type Style = Record<string, string | number | undefined>;
|
|
8
|
+
export interface CompareProps extends Omit<CompareStateOptions, "direction" | "locale">, GlobalDOMAttributes<HTMLDivElement> {
|
|
9
|
+
/** A state from `createCompareState` (else one is created from the props). */
|
|
10
|
+
state?: CompareState;
|
|
11
|
+
id?: string;
|
|
12
|
+
/** @default "rv-Compare" */
|
|
13
|
+
class?: string;
|
|
14
|
+
/** Extra inline style (the behaviour styles win). */
|
|
15
|
+
style?: Style;
|
|
16
|
+
/** The layers and the handle. */
|
|
17
|
+
children?: Content;
|
|
18
|
+
}
|
|
19
|
+
/** Root: provides the state to the parts; with `dragAnywhere` a press on the surface jumps there and drags. */
|
|
20
|
+
export declare function Compare(props: CompareProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
21
|
+
export interface CompareLayerProps extends GlobalDOMAttributes<HTMLDivElement> {
|
|
22
|
+
id?: string;
|
|
23
|
+
/** @default "rv-CompareBefore" / "rv-CompareAfter" */
|
|
24
|
+
class?: string;
|
|
25
|
+
style?: Style;
|
|
26
|
+
children?: Content;
|
|
27
|
+
}
|
|
28
|
+
/** The "before" layer: in flow (it sizes the compare), shown on the start side of the divider. */
|
|
29
|
+
export declare function CompareBefore(props: CompareLayerProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
30
|
+
/** The "after" layer: absolutely stacked over the before layer, clipped to the end side of the divider (inline clip-path). */
|
|
31
|
+
export declare function CompareAfter(props: CompareLayerProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
32
|
+
export interface CompareHandleProps extends GlobalDOMAttributes<HTMLDivElement> {
|
|
33
|
+
id?: string;
|
|
34
|
+
/** @default "rv-CompareHandle" */
|
|
35
|
+
class?: string;
|
|
36
|
+
style?: Style;
|
|
37
|
+
/** @default "Comparison position" */
|
|
38
|
+
"aria-label"?: string;
|
|
39
|
+
"aria-labelledby"?: string;
|
|
40
|
+
"aria-describedby"?: string;
|
|
41
|
+
/** Overrides the default percent text (a string, or an accessor of the value). */
|
|
42
|
+
"aria-valuetext"?: string | ((value: number) => string);
|
|
43
|
+
/** Runs after the handle's own key handling (native `KeyboardEvent`). */
|
|
44
|
+
onKeyDown?: (event: KeyboardEvent) => void;
|
|
45
|
+
/** The handle's look (divider line, grip). */
|
|
46
|
+
children?: Content;
|
|
47
|
+
}
|
|
48
|
+
/** The divider handle: an ARIA slider (focusable, keys) that a pointer drags. */
|
|
49
|
+
export declare function CompareHandle(props: CompareHandleProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement | null;
|
|
50
|
+
export interface CompareDividerProps extends GlobalDOMAttributes<HTMLSpanElement> {
|
|
51
|
+
id?: string;
|
|
52
|
+
/** @default "rv-CompareDivider" */
|
|
53
|
+
class?: string;
|
|
54
|
+
style?: Style;
|
|
55
|
+
}
|
|
56
|
+
export declare function CompareDivider(props: CompareDividerProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
57
|
+
/** The divider position (percent) of the nearest `Compare`, as an accessor (the settle position while it animates). */
|
|
58
|
+
export declare function useComparePosition(): () => number;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// Rivet-authored (no upstream: React Aria / React Aria Components / Angular CDK have no compare slider): headless
|
|
2
|
+
// before / after comparison — `Compare` (root), `CompareBefore` / `CompareAfter` (the two overlapped layers),
|
|
3
|
+
// `CompareHandle` (the draggable divider, an ARIA slider) and `CompareDivider` (a decorative line for inside the handle).
|
|
4
|
+
// Behaviour + motion: `./behaviour.ts` (house motion `@rivetjs/cdk/motion`, embla-carousel 8.6.0 physics, MIT,
|
|
5
|
+
// © David Jerleke).
|
|
6
|
+
// - DOM: root `div[data-rv-compare]` (`rv-Compare`; inline `position: relative; overflow: hidden`,
|
|
7
|
+
// `--rv-compare-position`; `data-orientation`, `data-dragging`, `data-moving` while a settle animates, `data-disabled`)
|
|
8
|
+
// > `div` before layer (`rv-CompareBefore`, in flow: it sizes the root) + `div` after layer (`rv-CompareAfter`;
|
|
9
|
+
// inline `position: absolute; inset: 0; clip-path: inset(…)`) + `div[role=slider][data-rv-compare-handle]`
|
|
10
|
+
// (`rv-CompareHandle`; inline position / translate / `touch-action: none`; `aria-valuenow` / min / max / valuetext,
|
|
11
|
+
// `aria-orientation`, `aria-label` default "Comparison position"; `data-focus-visible`, `data-focused`, `data-hovered`,
|
|
12
|
+
// `data-dragging`). The stylesheet sizes the handle (its cross-axis width = the hit area) and draws its children.
|
|
13
|
+
// - Resumable: state = plain signals (`createCompareState`, provided by `CompareContext`), handlers are inline arrows
|
|
14
|
+
// calling `./behaviour.ts`; nothing runs before the first pointer / key event (the root carries `preload="visible"`:
|
|
15
|
+
// the handler chunks are fetched while visible, so a cold drag follows at once).
|
|
16
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
17
|
+
import { Provider } from "@rivetjs/runtime/dom";
|
|
18
|
+
import { resumableContext } from "@rivetjs/runtime/resume-format";
|
|
19
|
+
import { createContext, useContext } from "@rivetjs/reactivity";
|
|
20
|
+
import { useLocale } from "../i18n/index.js";
|
|
21
|
+
import { dataBool, focusStateIn, hoverStateOver } from "../utils/data-attrs.jsx";
|
|
22
|
+
import { globalDOMProps } from "../utils/dom-props.js";
|
|
23
|
+
import { liveOptions } from "../utils/live.jsx";
|
|
24
|
+
import { COMPARE_KEYS, compareAfterStyle, compareDispose, compareHandleStyle, compareKeyDown, comparePointerDown, comparePosition, compareRootStyle, compareValue, compareValueText, createCompareState, isCompareDisabled, } from "./behaviour.js";
|
|
25
|
+
export { COMPARE_DURATION, COMPARE_FRICTION, COMPARE_KEYS, compareDragEnd, comparePosition, compareSetValue, compareValue, compareValueAt, compareValueText, createCompareState, isCompareDisabled, } from "./behaviour.js";
|
|
26
|
+
/** The compare state of the nearest `Compare` (null outside one). */
|
|
27
|
+
export const CompareContext = resumableContext(createContext(null, { id: "rv-compare" }));
|
|
28
|
+
const ROOT_OWNED = ["onPointerDown", "style"];
|
|
29
|
+
/** Root: provides the state to the parts; with `dragAnywhere` a press on the surface jumps there and drags. */
|
|
30
|
+
export function Compare(props) {
|
|
31
|
+
const { locale, direction } = useLocale();
|
|
32
|
+
// Live props: `value` (controlled) / `isDisabled` become accessors at the boundary; the rest is read once.
|
|
33
|
+
const merged = liveOptions(props, ["isDisabled"], ["value"]);
|
|
34
|
+
return untrack(() => compareRoot(merged, locale, direction));
|
|
35
|
+
}
|
|
36
|
+
function compareRoot(props, locale, direction) {
|
|
37
|
+
const state = props.state ??
|
|
38
|
+
createCompareState({
|
|
39
|
+
value: props.value,
|
|
40
|
+
defaultValue: props.defaultValue,
|
|
41
|
+
onChange: props.onChange,
|
|
42
|
+
onChangeEnd: props.onChangeEnd,
|
|
43
|
+
orientation: props.orientation,
|
|
44
|
+
isDisabled: props.isDisabled,
|
|
45
|
+
step: props.step,
|
|
46
|
+
pageStep: props.pageStep,
|
|
47
|
+
dragAnywhere: props.dragAnywhere,
|
|
48
|
+
animation: props.animation,
|
|
49
|
+
direction: props.dir === "rtl" ? "rtl" : props.dir === "ltr" ? "ltr" : direction,
|
|
50
|
+
locale,
|
|
51
|
+
});
|
|
52
|
+
const { id, children } = props;
|
|
53
|
+
const className = props.class ?? "rv-Compare";
|
|
54
|
+
const userStyle = props.style;
|
|
55
|
+
const userPointerDown = props.onPointerDown;
|
|
56
|
+
const dom = globalDOMProps(props, ROOT_OWNED);
|
|
57
|
+
return (<Provider token={CompareContext} value={state}>
|
|
58
|
+
<div {...dom} id={id} class={className} data-rv-compare="" data-orientation={state.orientation} data-dragging={dataBool(state.dragging())} data-moving={dataBool(state.position() !== null)} data-disabled={dataBool(isCompareDisabled(state))} style={{ ...userStyle, ...compareRootStyle(state) }} preload="visible" onPointerDown={(event) => {
|
|
59
|
+
comparePointerDown(event, state, true);
|
|
60
|
+
userPointerDown?.(event);
|
|
61
|
+
}}>
|
|
62
|
+
{children}
|
|
63
|
+
</div>
|
|
64
|
+
</Provider>);
|
|
65
|
+
}
|
|
66
|
+
/** The "before" layer: in flow (it sizes the compare), shown on the start side of the divider. */
|
|
67
|
+
export function CompareBefore(props) {
|
|
68
|
+
const state = useContext(CompareContext);
|
|
69
|
+
const { id, children } = props;
|
|
70
|
+
const className = props.class ?? "rv-CompareBefore";
|
|
71
|
+
const style = props.style;
|
|
72
|
+
const dom = globalDOMProps(props, ["style"]);
|
|
73
|
+
return (<div {...dom} id={id} class={className} data-rv-compare-before="" data-orientation={state?.orientation} style={style}>
|
|
74
|
+
{children}
|
|
75
|
+
</div>);
|
|
76
|
+
}
|
|
77
|
+
/** The "after" layer: absolutely stacked over the before layer, clipped to the end side of the divider (inline clip-path). */
|
|
78
|
+
export function CompareAfter(props) {
|
|
79
|
+
const state = useContext(CompareContext);
|
|
80
|
+
const { id, children } = props;
|
|
81
|
+
const className = props.class ?? "rv-CompareAfter";
|
|
82
|
+
const style = props.style;
|
|
83
|
+
const dom = globalDOMProps(props, ["style"]);
|
|
84
|
+
return (<div {...dom} id={id} class={className} data-rv-compare-after="" data-orientation={state?.orientation} style={state ? { ...style, ...compareAfterStyle(state) } : style}>
|
|
85
|
+
{children}
|
|
86
|
+
</div>);
|
|
87
|
+
}
|
|
88
|
+
const HANDLE_OWNED = ["onPointerDown", "onPointerOver", "onKeyDown", "style"];
|
|
89
|
+
/** The divider handle: an ARIA slider (focusable, keys) that a pointer drags. */
|
|
90
|
+
export function CompareHandle(props) {
|
|
91
|
+
const state = useContext(CompareContext);
|
|
92
|
+
const { id, children } = props;
|
|
93
|
+
const className = props.class ?? "rv-CompareHandle";
|
|
94
|
+
const style = props.style;
|
|
95
|
+
const labelledBy = props["aria-labelledby"];
|
|
96
|
+
const label = props["aria-label"] ?? (labelledBy ? undefined : "Comparison position");
|
|
97
|
+
const describedBy = props["aria-describedby"];
|
|
98
|
+
const valueText = props["aria-valuetext"];
|
|
99
|
+
const userDown = props.onPointerDown;
|
|
100
|
+
const userOver = props.onPointerOver;
|
|
101
|
+
const userKey = props.onKeyDown;
|
|
102
|
+
const dom = globalDOMProps(props, HANDLE_OWNED);
|
|
103
|
+
const interaction = {};
|
|
104
|
+
if (!state)
|
|
105
|
+
return null;
|
|
106
|
+
return (<div {...dom} id={id} class={className} role="slider" tabIndex={isCompareDisabled(state) ? undefined : 0} aria-label={label} aria-labelledby={labelledBy} aria-describedby={describedBy} aria-orientation={state.orientation} aria-valuemin={0} aria-valuemax={100} aria-valuenow={Math.round(compareValue(state))} aria-valuetext={typeof valueText === "function" ? valueText(compareValue(state)) : (valueText ?? compareValueText(state))} aria-disabled={isCompareDisabled(state) ? "true" : undefined} data-rv-compare-handle="" data-rk={COMPARE_KEYS} data-orientation={state.orientation} data-dragging={dataBool(state.dragging())} data-disabled={dataBool(isCompareDisabled(state))} style={{ ...style, ...compareHandleStyle(state) }} onPointerDown={(event) => {
|
|
107
|
+
comparePointerDown(event, state, false);
|
|
108
|
+
userDown?.(event);
|
|
109
|
+
}} onPointerOver={(event) => {
|
|
110
|
+
hoverStateOver(interaction, event);
|
|
111
|
+
userOver?.(event);
|
|
112
|
+
}} onFocusIn={(event) => focusStateIn(interaction, event)} onKeyDown={(event) => {
|
|
113
|
+
compareKeyDown(event, state);
|
|
114
|
+
userKey?.(event);
|
|
115
|
+
}}>
|
|
116
|
+
{children}
|
|
117
|
+
</div>);
|
|
118
|
+
}
|
|
119
|
+
export function CompareDivider(props) {
|
|
120
|
+
const state = useContext(CompareContext);
|
|
121
|
+
const className = props.class ?? "rv-CompareDivider";
|
|
122
|
+
const dom = globalDOMProps(props, ["style"]);
|
|
123
|
+
return (<span {...dom} id={props.id} class={className} aria-hidden="true" data-rv-compare-divider="" data-orientation={state?.orientation} style={props.style}/>);
|
|
124
|
+
}
|
|
125
|
+
/** The divider position (percent) of the nearest `Compare`, as an accessor (the settle position while it animates). */
|
|
126
|
+
export function useComparePosition() {
|
|
127
|
+
const state = useContext(CompareContext);
|
|
128
|
+
return () => (state ? comparePosition(state) : 50);
|
|
129
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { Key, LoadingState, Selection, SortDescriptor } from "../collections/types.js";
|
|
3
|
+
import { type ListActions } from "./list-data.jsx";
|
|
4
|
+
export interface AsyncListOptions<T, C> {
|
|
5
|
+
/** The keys for the initially selected items. */
|
|
6
|
+
initialSelectedKeys?: "all" | Iterable<Key> | undefined;
|
|
7
|
+
/** The initial sort descriptor. */
|
|
8
|
+
initialSortDescriptor?: SortDescriptor | undefined;
|
|
9
|
+
/** The initial filter text. */
|
|
10
|
+
initialFilterText?: string | undefined;
|
|
11
|
+
/** A function that returns a unique key for an item object. Default `item.id || item.key`. */
|
|
12
|
+
getKey?: ((item: T) => Key) | undefined;
|
|
13
|
+
/** A function that loads the data for the items in the list. */
|
|
14
|
+
load: AsyncListLoadFunction<T, C>;
|
|
15
|
+
/** An optional function that performs sorting. If not provided, `sortDescriptor` is passed to `load`. */
|
|
16
|
+
sort?: AsyncListLoadFunction<T, C, AsyncListLoadOptions<T, C> & {
|
|
17
|
+
sortDescriptor: SortDescriptor;
|
|
18
|
+
}> | undefined;
|
|
19
|
+
}
|
|
20
|
+
export type AsyncListLoadFunction<T, C, S extends AsyncListLoadOptions<T, C> = AsyncListLoadOptions<T, C>> = (state: S) => AsyncListStateUpdate<T, C> | Promise<AsyncListStateUpdate<T, C>>;
|
|
21
|
+
export interface AsyncListLoadOptions<T, C> {
|
|
22
|
+
/** The items currently in the list. */
|
|
23
|
+
items: T[];
|
|
24
|
+
/** The keys of the currently selected items in the list. */
|
|
25
|
+
selectedKeys: Selection;
|
|
26
|
+
/** The current sort descriptor for the list. */
|
|
27
|
+
sortDescriptor?: SortDescriptor | undefined;
|
|
28
|
+
/** An abort signal used to notify the load function that the request has been aborted. */
|
|
29
|
+
signal: AbortSignal;
|
|
30
|
+
/** The pagination cursor returned from the last page load. */
|
|
31
|
+
cursor?: C | undefined;
|
|
32
|
+
/** The current filter text used to perform server side filtering. */
|
|
33
|
+
filterText?: string | undefined;
|
|
34
|
+
/** The current loading state of the list. */
|
|
35
|
+
loadingState?: LoadingState | undefined;
|
|
36
|
+
}
|
|
37
|
+
export interface AsyncListStateUpdate<T, C> {
|
|
38
|
+
/** The new items to append to the list. */
|
|
39
|
+
items: Iterable<T>;
|
|
40
|
+
/** The keys to add to the selection. */
|
|
41
|
+
selectedKeys?: Iterable<Key> | "all" | undefined;
|
|
42
|
+
/** The sort descriptor to set. */
|
|
43
|
+
sortDescriptor?: SortDescriptor | undefined;
|
|
44
|
+
/** The pagination cursor to be used for the next page load. */
|
|
45
|
+
cursor?: C | undefined;
|
|
46
|
+
/** The updated filter text for the list. */
|
|
47
|
+
filterText?: string | undefined;
|
|
48
|
+
}
|
|
49
|
+
export interface AsyncListData<T> extends ListActions<T> {
|
|
50
|
+
/** The items in the list. Reads state. */
|
|
51
|
+
readonly items: () => T[];
|
|
52
|
+
/** The keys of the currently selected items in the list (two-way signal). */
|
|
53
|
+
readonly selectedKeys: Signal<Selection>;
|
|
54
|
+
/** The current filter text. Reads state. */
|
|
55
|
+
readonly filterText: () => string;
|
|
56
|
+
/** Gets an item from the list by key. */
|
|
57
|
+
getItem(key: Key): T | undefined;
|
|
58
|
+
/** Whether data is currently being loaded. Reads state. */
|
|
59
|
+
readonly isLoading: () => boolean;
|
|
60
|
+
/** If loading data failed, then this contains the error that occurred. Reads state. */
|
|
61
|
+
readonly error: () => Error | undefined;
|
|
62
|
+
/** The current sort descriptor for the list. Reads state. */
|
|
63
|
+
readonly sortDescriptor: () => SortDescriptor | undefined;
|
|
64
|
+
/** The current loading state for the list. Reads state. */
|
|
65
|
+
readonly loadingState: () => LoadingState;
|
|
66
|
+
/** Reloads the data in the list. */
|
|
67
|
+
reload(): void;
|
|
68
|
+
/** Loads the next page of data in the list. */
|
|
69
|
+
loadMore(): void;
|
|
70
|
+
/** Triggers sorting for the list. */
|
|
71
|
+
sort(descriptor: SortDescriptor): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Manages state for an immutable async loaded list data structure, and provides convenience methods
|
|
75
|
+
* to update the data over time. Manages loading and error states, pagination, and sorting
|
|
76
|
+
* (react-stately `useAsyncList`).
|
|
77
|
+
*/
|
|
78
|
+
export declare function createAsyncList<T, C = string>(options: AsyncListOptions<T, C>): AsyncListData<T>;
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// Ported from @react-stately/data (useAsyncList.ts), Apache-2.0, © Adobe.
|
|
2
|
+
//
|
|
3
|
+
// Rivet:
|
|
4
|
+
// - `useAsyncList` → `createAsyncList` (wave-2 decision 7). Returns a plain object of signals +
|
|
5
|
+
// arrow functions (resumable; `.tsx` so the arrows are R2 symbols). Reactive members are
|
|
6
|
+
// accessors: `items()`, `isLoading()`, `loadingState()`, `error()`, `sortDescriptor()`,
|
|
7
|
+
// `filterText()`; `selectedKeys` is a two-way `Signal<Selection>`.
|
|
8
|
+
// - The reducer state is one signal (`data`); the in-flight AbortController lives outside it, in a
|
|
9
|
+
// browser-only WeakMap keyed by that signal (controllers do not serialize).
|
|
10
|
+
// - React's mount effect (initial `loading` fetch) is a `clientEffect` when called under an owner
|
|
11
|
+
// (component body: runs once in the browser after mount, also on a resumed page), else it runs
|
|
12
|
+
// at once (no owner = no mount to wait for). A server render shows the initial `loading` state, as react-aria's SSR does.
|
|
13
|
+
// - `load` / `sort` / `getKey` options must be inline arrows or local functions (captured).
|
|
14
|
+
// - react-stately's methods read the reducer state of the current render (a closure): calls made
|
|
15
|
+
// in one synchronous task (one event handler) all see the state as it was when the task started.
|
|
16
|
+
// Rivet keeps that: `rendered()` snapshots the state on first read and drops the snapshot in a
|
|
17
|
+
// microtask, so e.g. three `loadMore()` calls in one handler each start (and the reducer aborts
|
|
18
|
+
// the duplicates), as upstream.
|
|
19
|
+
import { batch, computed, getOwner, signal, untrack, _regionState } from "@rivetjs/reactivity";
|
|
20
|
+
import { clientEffect } from "@rivetjs/runtime/dom";
|
|
21
|
+
import { createListActions } from "./list-data.jsx";
|
|
22
|
+
// In-flight AbortControllers per list (browser-only, never serialized).
|
|
23
|
+
const controllers = new WeakMap();
|
|
24
|
+
// A const holder, not a `let`: resume chunks import module bindings read-only (an imported `let` cannot be incremented).
|
|
25
|
+
const requests = { next: 0 };
|
|
26
|
+
function abortRequest(owner, request, reason) {
|
|
27
|
+
if (request == null)
|
|
28
|
+
return;
|
|
29
|
+
controllers.get(owner)?.get(request)?.abort(reason);
|
|
30
|
+
}
|
|
31
|
+
function reducer(owner, data, action) {
|
|
32
|
+
let selectedKeys;
|
|
33
|
+
switch (data.state) {
|
|
34
|
+
case "idle":
|
|
35
|
+
case "error":
|
|
36
|
+
switch (action.type) {
|
|
37
|
+
case "loading":
|
|
38
|
+
case "loadingMore":
|
|
39
|
+
case "sorting":
|
|
40
|
+
case "filtering":
|
|
41
|
+
return {
|
|
42
|
+
...data,
|
|
43
|
+
filterText: action.filterText ?? data.filterText,
|
|
44
|
+
state: action.type,
|
|
45
|
+
// Reset items to an empty list if loading, but not when sorting.
|
|
46
|
+
items: action.type === "loading" ? [] : data.items,
|
|
47
|
+
sortDescriptor: action.sortDescriptor ?? data.sortDescriptor,
|
|
48
|
+
request: action.request,
|
|
49
|
+
};
|
|
50
|
+
case "update":
|
|
51
|
+
return { ...data, ...action.updater?.(data) };
|
|
52
|
+
case "success":
|
|
53
|
+
case "error":
|
|
54
|
+
return data;
|
|
55
|
+
default:
|
|
56
|
+
throw new Error(`Invalid action "${action.type}" in state "${data.state}"`);
|
|
57
|
+
}
|
|
58
|
+
case "loading":
|
|
59
|
+
case "sorting":
|
|
60
|
+
case "filtering":
|
|
61
|
+
switch (action.type) {
|
|
62
|
+
case "success":
|
|
63
|
+
// Ignore if there is a newer request in state: multiple requests were going at once and we
|
|
64
|
+
// only take the latest result.
|
|
65
|
+
if (action.request !== data.request)
|
|
66
|
+
return data;
|
|
67
|
+
selectedKeys = action.selectedKeys ?? data.selectedKeys;
|
|
68
|
+
return {
|
|
69
|
+
...data,
|
|
70
|
+
filterText: action.filterText ?? data.filterText,
|
|
71
|
+
state: "idle",
|
|
72
|
+
items: [...(action.items ?? [])],
|
|
73
|
+
selectedKeys: selectedKeys === "all" ? "all" : new Set(selectedKeys),
|
|
74
|
+
sortDescriptor: action.sortDescriptor ?? data.sortDescriptor,
|
|
75
|
+
request: undefined,
|
|
76
|
+
cursor: action.cursor,
|
|
77
|
+
};
|
|
78
|
+
case "error":
|
|
79
|
+
if (action.request !== data.request)
|
|
80
|
+
return data;
|
|
81
|
+
return { ...data, state: "error", error: action.error, request: undefined };
|
|
82
|
+
case "loading":
|
|
83
|
+
case "loadingMore":
|
|
84
|
+
case "sorting":
|
|
85
|
+
case "filtering":
|
|
86
|
+
// Already loading, and another load was triggered at the same time: abort the previous
|
|
87
|
+
// load and start a new one.
|
|
88
|
+
abortRequest(owner, data.request, "aborting current load and starting new one");
|
|
89
|
+
return {
|
|
90
|
+
...data,
|
|
91
|
+
filterText: action.filterText ?? data.filterText,
|
|
92
|
+
state: action.type,
|
|
93
|
+
// Reset items to an empty list if loading, but not when sorting.
|
|
94
|
+
items: action.type === "loading" ? [] : data.items,
|
|
95
|
+
request: action.request,
|
|
96
|
+
};
|
|
97
|
+
case "update":
|
|
98
|
+
// An update happened while loading (e.g. selection changed): update without aborting.
|
|
99
|
+
return { ...data, ...action.updater?.(data) };
|
|
100
|
+
default:
|
|
101
|
+
throw new Error(`Invalid action "${action.type}" in state "${data.state}"`);
|
|
102
|
+
}
|
|
103
|
+
case "loadingMore":
|
|
104
|
+
switch (action.type) {
|
|
105
|
+
case "success":
|
|
106
|
+
selectedKeys = data.selectedKeys === "all" || action.selectedKeys === "all" ? "all" : new Set([...data.selectedKeys, ...(action.selectedKeys ?? [])]);
|
|
107
|
+
// Append the new items.
|
|
108
|
+
return {
|
|
109
|
+
...data,
|
|
110
|
+
state: "idle",
|
|
111
|
+
items: [...data.items, ...(action.items ?? [])],
|
|
112
|
+
selectedKeys: selectedKeys,
|
|
113
|
+
sortDescriptor: action.sortDescriptor ?? data.sortDescriptor,
|
|
114
|
+
request: undefined,
|
|
115
|
+
cursor: action.cursor,
|
|
116
|
+
};
|
|
117
|
+
case "error":
|
|
118
|
+
if (action.request !== data.request)
|
|
119
|
+
return data;
|
|
120
|
+
return { ...data, state: "error", error: action.error };
|
|
121
|
+
case "loading":
|
|
122
|
+
case "sorting":
|
|
123
|
+
case "filtering":
|
|
124
|
+
// Already loading more, and another load was triggered: abort the load more, start anew.
|
|
125
|
+
abortRequest(owner, data.request);
|
|
126
|
+
return {
|
|
127
|
+
...data,
|
|
128
|
+
filterText: action.filterText ?? data.filterText,
|
|
129
|
+
state: action.type,
|
|
130
|
+
// Reset items to an empty list if loading, but not when sorting.
|
|
131
|
+
items: action.type === "loading" ? [] : data.items,
|
|
132
|
+
request: action.request,
|
|
133
|
+
};
|
|
134
|
+
case "loadingMore":
|
|
135
|
+
// A duplicate load more (the cursor has not been updated): abort the new one and keep
|
|
136
|
+
// the current request.
|
|
137
|
+
abortRequest(owner, action.request);
|
|
138
|
+
return data;
|
|
139
|
+
case "update":
|
|
140
|
+
return { ...data, ...action.updater?.(data) };
|
|
141
|
+
default:
|
|
142
|
+
throw new Error(`Invalid action "${action.type}" in state "${data.state}"`);
|
|
143
|
+
}
|
|
144
|
+
default:
|
|
145
|
+
throw new Error(`Invalid state "${data.state}"`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const defaultAsyncKey = (item) => item.id || item.key;
|
|
149
|
+
/**
|
|
150
|
+
* Manages state for an immutable async loaded list data structure, and provides convenience methods
|
|
151
|
+
* to update the data over time. Manages loading and error states, pagination, and sorting
|
|
152
|
+
* (react-stately `useAsyncList`).
|
|
153
|
+
*/
|
|
154
|
+
export function createAsyncList(options) {
|
|
155
|
+
return _regionState(() => {
|
|
156
|
+
const { load, sort, initialSelectedKeys, initialSortDescriptor, initialFilterText = "" } = options;
|
|
157
|
+
// Resumable: a module-level default is not a serializable capture; the fallback is an object-literal arrow (a resume symbol).
|
|
158
|
+
const userKey = options.getKey;
|
|
159
|
+
const keys = { get: (item) => (userKey ? userKey(item) : defaultAsyncKey(item)) };
|
|
160
|
+
const getKey = keys.get;
|
|
161
|
+
const data = signal({
|
|
162
|
+
state: "idle",
|
|
163
|
+
error: undefined,
|
|
164
|
+
items: [],
|
|
165
|
+
selectedKeys: initialSelectedKeys === "all" ? "all" : new Set(initialSelectedKeys),
|
|
166
|
+
sortDescriptor: initialSortDescriptor,
|
|
167
|
+
filterText: initialFilterText,
|
|
168
|
+
});
|
|
169
|
+
// `selectedKeys` is its own signal (two-way, like createListData); the reducer state mirrors it.
|
|
170
|
+
const selectedKeys = signal(untrack(data).selectedKeys);
|
|
171
|
+
const read = () => ({ ...untrack(data), selectedKeys: untrack(selectedKeys) });
|
|
172
|
+
// The "current render" state (see header): one snapshot per synchronous task.
|
|
173
|
+
let snapshot;
|
|
174
|
+
const rendered = () => {
|
|
175
|
+
if (!snapshot) {
|
|
176
|
+
snapshot = read();
|
|
177
|
+
queueMicrotask(() => (snapshot = undefined));
|
|
178
|
+
}
|
|
179
|
+
return snapshot;
|
|
180
|
+
};
|
|
181
|
+
const dispatch = (action) => batch(() => {
|
|
182
|
+
const prev = read();
|
|
183
|
+
const next = reducer(data, prev, action);
|
|
184
|
+
if (next === prev)
|
|
185
|
+
return;
|
|
186
|
+
data.set(next);
|
|
187
|
+
if (next.selectedKeys !== prev.selectedKeys)
|
|
188
|
+
selectedKeys.set(next.selectedKeys);
|
|
189
|
+
});
|
|
190
|
+
const dispatchFetch = async (action, fn) => {
|
|
191
|
+
const abortController = new AbortController();
|
|
192
|
+
const request = ++requests.next;
|
|
193
|
+
let map = controllers.get(data);
|
|
194
|
+
if (!map)
|
|
195
|
+
controllers.set(data, (map = new Map()));
|
|
196
|
+
map.set(request, abortController);
|
|
197
|
+
const current = rendered();
|
|
198
|
+
try {
|
|
199
|
+
dispatch({ ...action, request });
|
|
200
|
+
const previousFilterText = action.filterText ?? current.filterText;
|
|
201
|
+
const response = await fn({
|
|
202
|
+
items: current.items.slice(),
|
|
203
|
+
selectedKeys: current.selectedKeys,
|
|
204
|
+
sortDescriptor: action.sortDescriptor ?? current.sortDescriptor,
|
|
205
|
+
signal: abortController.signal,
|
|
206
|
+
cursor: action.type === "loadingMore" ? current.cursor : undefined,
|
|
207
|
+
filterText: previousFilterText,
|
|
208
|
+
loadingState: current.state,
|
|
209
|
+
});
|
|
210
|
+
const filterText = response.filterText ?? previousFilterText;
|
|
211
|
+
dispatch({ type: "success", ...response, request });
|
|
212
|
+
// Fetch a new filtered list if filterText was updated by the `load` response rather than
|
|
213
|
+
// setFilterText — only when not aborted (another filter action may have started meanwhile).
|
|
214
|
+
if (filterText && filterText !== previousFilterText && !abortController.signal.aborted)
|
|
215
|
+
void dispatchFetch({ type: "filtering", filterText }, load);
|
|
216
|
+
}
|
|
217
|
+
catch (e) {
|
|
218
|
+
dispatch({ type: "error", error: e, request });
|
|
219
|
+
}
|
|
220
|
+
finally {
|
|
221
|
+
map.delete(request);
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
// Resumable: the actions' dispatch is an object-literal arrow (a bare argument arrow is not a resume symbol).
|
|
225
|
+
const io = { update: (fn) => dispatch({ type: "update", updater: fn }) };
|
|
226
|
+
const isLoading = computed(() => {
|
|
227
|
+
const state = data().state;
|
|
228
|
+
return state === "loading" || state === "loadingMore" || state === "sorting" || state === "filtering";
|
|
229
|
+
});
|
|
230
|
+
const initial = () => void dispatchFetch({ type: "loading" }, load);
|
|
231
|
+
if (getOwner())
|
|
232
|
+
clientEffect(() => untrack(initial));
|
|
233
|
+
else
|
|
234
|
+
initial();
|
|
235
|
+
return {
|
|
236
|
+
items: () => data().items,
|
|
237
|
+
selectedKeys,
|
|
238
|
+
sortDescriptor: () => data().sortDescriptor,
|
|
239
|
+
isLoading,
|
|
240
|
+
loadingState: () => data().state,
|
|
241
|
+
error: () => data().error,
|
|
242
|
+
filterText: () => data().filterText,
|
|
243
|
+
getItem: (key) => data().items.find((item) => getKey(item) === key),
|
|
244
|
+
reload: () => void dispatchFetch({ type: "loading" }, load),
|
|
245
|
+
loadMore: () => {
|
|
246
|
+
const current = rendered();
|
|
247
|
+
// Ignore if already loading more or if performing server side filtering.
|
|
248
|
+
if (current.state === "loading" || current.state === "loadingMore" || current.state === "filtering" || current.cursor == null)
|
|
249
|
+
return;
|
|
250
|
+
void dispatchFetch({ type: "loadingMore" }, load);
|
|
251
|
+
},
|
|
252
|
+
sort: (sortDescriptor) => void dispatchFetch({ type: "sorting", sortDescriptor }, (sort || load)),
|
|
253
|
+
...createListActions({ ...options, getKey, cursor: () => untrack(data).cursor }, io.update),
|
|
254
|
+
setFilterText: (filterText) => void dispatchFetch({ type: "filtering", filterText }, load),
|
|
255
|
+
};
|
|
256
|
+
});
|
|
257
|
+
}
|
package/data/index.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { createListData, createListActions, listDataState, type ListOptions, type ListData, type ListActions, type ListState as ListDataState, } from "./list-data.jsx";
|
|
2
|
+
export { createTreeData, type TreeOptions, type TreeData, type TreeNode } from "./tree-data.jsx";
|
|
3
|
+
export { createAsyncList, type AsyncListOptions, type AsyncListData, type AsyncListLoadFunction, type AsyncListLoadOptions, type AsyncListStateUpdate, } from "./async-list.jsx";
|
package/data/index.jsx
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// @rivetjs/cdk/data — react-stately data hooks (@react-stately/data, Apache-2.0, © Adobe) as
|
|
2
|
+
// resumable factories: useListData → createListData, useTreeData → createTreeData, useAsyncList →
|
|
3
|
+
// createAsyncList. `.tsx` (no JSX) so the returned objects' arrow functions are resume symbols.
|
|
4
|
+
export { createListData, createListActions, listDataState, } from "./list-data.jsx";
|
|
5
|
+
export { createTreeData } from "./tree-data.jsx";
|
|
6
|
+
export { createAsyncList, } from "./async-list.jsx";
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { Key, Selection } from "../collections/types.js";
|
|
3
|
+
export interface ListOptions<T> {
|
|
4
|
+
/** Initial items in the list. */
|
|
5
|
+
initialItems?: T[] | undefined;
|
|
6
|
+
/** The keys for the initially selected items. */
|
|
7
|
+
initialSelectedKeys?: "all" | Iterable<Key> | undefined;
|
|
8
|
+
/** The initial text to filter the list by. */
|
|
9
|
+
initialFilterText?: string | undefined;
|
|
10
|
+
/** A function that returns a unique key for an item object. Default `item.id ?? item.key`. */
|
|
11
|
+
getKey?: ((item: T) => Key) | undefined;
|
|
12
|
+
/** A function that returns whether a item matches the current filter text. */
|
|
13
|
+
filter?: ((item: T, filterText: string) => boolean) | undefined;
|
|
14
|
+
}
|
|
15
|
+
/** The list operations shared by `createListData` and `createAsyncList` (react-stately `createListActions` result). */
|
|
16
|
+
export interface ListActions<T> {
|
|
17
|
+
/** Sets the selected keys. */
|
|
18
|
+
setSelectedKeys(keys: Selection): void;
|
|
19
|
+
/** Adds the given keys to the current selected keys. */
|
|
20
|
+
addKeysToSelection(keys: Selection): void;
|
|
21
|
+
/** Removes the given keys from the current selected keys. */
|
|
22
|
+
removeKeysFromSelection(keys: Selection): void;
|
|
23
|
+
/** Sets the filter text. */
|
|
24
|
+
setFilterText(filterText: string): void;
|
|
25
|
+
/** Inserts items into the list at the given index. */
|
|
26
|
+
insert(index: number, ...values: T[]): void;
|
|
27
|
+
/** Inserts items into the list before the item at the given key. */
|
|
28
|
+
insertBefore(key: Key, ...values: T[]): void;
|
|
29
|
+
/** Inserts items into the list after the item at the given key. */
|
|
30
|
+
insertAfter(key: Key, ...values: T[]): void;
|
|
31
|
+
/** Appends items to the list. */
|
|
32
|
+
append(...values: T[]): void;
|
|
33
|
+
/** Prepends items to the list. */
|
|
34
|
+
prepend(...values: T[]): void;
|
|
35
|
+
/** Removes items from the list by their keys. */
|
|
36
|
+
remove(...keys: Key[]): void;
|
|
37
|
+
/** Removes all items from the list that are currently in the set of selected items. */
|
|
38
|
+
removeSelectedItems(): void;
|
|
39
|
+
/** Moves an item within the list. */
|
|
40
|
+
move(key: Key, toIndex: number): void;
|
|
41
|
+
/** Moves one or more items before a given key. */
|
|
42
|
+
moveBefore(key: Key, keys: Iterable<Key>): void;
|
|
43
|
+
/** Moves one or more items after a given key. */
|
|
44
|
+
moveAfter(key: Key, keys: Iterable<Key>): void;
|
|
45
|
+
/** Updates an item in the list (new value, or a function of the previous value). */
|
|
46
|
+
update(key: Key, newValue: T | ((prev: T) => T)): void;
|
|
47
|
+
}
|
|
48
|
+
export interface ListData<T> extends ListActions<T> {
|
|
49
|
+
/** The items in the list (filtered by `filterText` when a `filter` is given). Reads state. */
|
|
50
|
+
readonly items: () => T[];
|
|
51
|
+
/** The keys of the currently selected items in the list (two-way signal). */
|
|
52
|
+
readonly selectedKeys: Signal<Selection>;
|
|
53
|
+
/** The current filter text. Reads state. */
|
|
54
|
+
readonly filterText: () => string;
|
|
55
|
+
/** Gets an item from the (unfiltered) list by key. */
|
|
56
|
+
getItem(key: Key): T | undefined;
|
|
57
|
+
}
|
|
58
|
+
/** The plain state react-stately's list reducer works on. */
|
|
59
|
+
export interface ListState<T> {
|
|
60
|
+
items: T[];
|
|
61
|
+
selectedKeys: Selection;
|
|
62
|
+
filterText: string;
|
|
63
|
+
}
|
|
64
|
+
/** The signals behind a list (`createListActions` reads and writes them). */
|
|
65
|
+
export interface ListStore<T> {
|
|
66
|
+
readonly rawItems: Signal<T[]>;
|
|
67
|
+
readonly selectedKeys: Signal<Selection>;
|
|
68
|
+
readonly filterTextSignal: Signal<string>;
|
|
69
|
+
}
|
|
70
|
+
export interface CreateListOptions<T, C> extends ListOptions<T> {
|
|
71
|
+
/** The pagination cursor (async lists): read when the last item is removed. */
|
|
72
|
+
cursor?: (() => C | undefined) | undefined;
|
|
73
|
+
}
|
|
74
|
+
/** Snapshot of the list state (react-stately's `state`; reads the signals). */
|
|
75
|
+
export declare function listStoreState<T>(store: ListStore<T>): ListState<T>;
|
|
76
|
+
/** Applies a reducer step to the store: writes back the fields that changed (one batch). */
|
|
77
|
+
export declare function dispatchList<T>(store: ListStore<T>, updater: (state: ListState<T>) => ListState<T>): void;
|
|
78
|
+
/** The list operations over a dispatch function (react-stately `createListActions`). */
|
|
79
|
+
export declare function createListActions<T, C>(opts: CreateListOptions<T, C>, dispatch: (updater: (state: ListState<T>) => ListState<T>) => void): ListActions<T>;
|
|
80
|
+
/** Default item key: `item.id ?? item.key` (react-stately). */
|
|
81
|
+
export declare const defaultGetKey: (item: any) => Key;
|
|
82
|
+
/**
|
|
83
|
+
* Manages state for an immutable list data structure, and provides convenience methods to update
|
|
84
|
+
* the data over time (react-stately `useListData`).
|
|
85
|
+
*/
|
|
86
|
+
export declare function createListData<T>(options?: ListOptions<T>): ListData<T>;
|
|
87
|
+
/** react-stately's `{...state}` snapshot of a list (items filtered). Reads state. */
|
|
88
|
+
export declare function listDataState<T>(list: ListData<T>): ListState<T>;
|