@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +120 -0
- package/_adapters/selection.js +709 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +376 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +252 -0
- package/collections/components.jsx +745 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +17 -0
- package/collections/nodes.js +107 -0
- package/collections/row-stamps.d.ts +17 -0
- package/collections/row-stamps.js +108 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +6 -0
- package/collections/server-dev.js +18 -0
- package/collections/server-off.d.ts +6 -0
- package/collections/server-off.js +9 -0
- package/collections/server-on.d.ts +29 -0
- package/collections/server-on.jsx +86 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +210 -0
- package/drag-drop/directives/drag.js +550 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +128 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +144 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +248 -0
- package/grid-list/behaviour.js +616 -0
- package/grid-list/index.d.ts +204 -0
- package/grid-list/index.jsx +721 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +539 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +52 -0
- package/interactions/utils.js +253 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +515 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +632 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +702 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +55 -0
- package/portal/index.jsx +83 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +142 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +66 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +560 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +625 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +162 -0
- package/state/menu.js +185 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +1326 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +837 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +73 -0
- package/utils/data-attrs.jsx +217 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +43 -0
- package/utils/index.js +160 -0
- package/utils/link-state.d.ts +6 -0
- package/utils/link-state.js +6 -0
- package/utils/links.d.ts +82 -0
- package/utils/links.jsx +150 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/transitions.d.ts +15 -0
- package/utils/transitions.js +104 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +129 -0
- package/virtualizer/behaviour.js +437 -0
- package/virtualizer/collection-renderer.d.ts +62 -0
- package/virtualizer/collection-renderer.jsx +190 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +3 -0
- package/virtualizer/index.jsx +5 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +510 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +89 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +64 -0
- package/virtualizer/virtualizer.jsx +91 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type CollectionBranchProps, type CollectionRenderer, type CollectionRootProps } from "../collections/components.jsx";
|
|
2
|
+
import type { Key } from "../collections/types.js";
|
|
3
|
+
import { type LayoutInput, type VirtualizerModel } from "./behaviour.js";
|
|
4
|
+
import { Rect } from "./rect.js";
|
|
5
|
+
import { Size } from "./size.js";
|
|
6
|
+
import type { Direction } from "./types.js";
|
|
7
|
+
/** What the renderer's functions capture (plain data + the root's model, set when the host renders its root). */
|
|
8
|
+
export interface VirtualizerLink<O = unknown> {
|
|
9
|
+
layout: LayoutInput<O>;
|
|
10
|
+
layoutOptions: O | undefined;
|
|
11
|
+
initialSize: {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
};
|
|
15
|
+
dir: Direction | undefined;
|
|
16
|
+
/** The model of the host's `CollectionRoot` (one collection per Virtualizer). */
|
|
17
|
+
model: VirtualizerModel<unknown, O> | null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The virtualized `CollectionRenderer` of `link` (one per link). Not read from `CollectionRendererContext` below the
|
|
21
|
+
* host: a resumed page re-creates a part's branch (a binding re-run) without the server's providers, where the
|
|
22
|
+
* context is the default renderer; the renderer object resumes from `link` instead.
|
|
23
|
+
*/
|
|
24
|
+
export declare function rendererOf(link: VirtualizerLink<any>): CollectionRenderer;
|
|
25
|
+
/** The scroll handler hosts forward their scroll container's `scroll` events to (the engine starts on the first). */
|
|
26
|
+
export declare function virtualizerLinkScroll(link: VirtualizerLink<any>, event: Event): void;
|
|
27
|
+
/** RAC: the layout is the collection's layout delegate (keyboard Page Up / Down, range selection). */
|
|
28
|
+
export declare function layoutRect(link: VirtualizerLink<any>, key: Key): Rect | null;
|
|
29
|
+
export declare function layoutVisibleRect(link: VirtualizerLink<any>): Rect;
|
|
30
|
+
export declare function layoutContentSize(link: VirtualizerLink<any>): Size;
|
|
31
|
+
/** `CollectionRoot` of the virtualizer renderer: the sized content element and the root views. */
|
|
32
|
+
export declare function VirtualizerRoot(props: {
|
|
33
|
+
link: VirtualizerLink<any>;
|
|
34
|
+
root: CollectionRootProps;
|
|
35
|
+
}): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
36
|
+
/** `CollectionBranch` of the virtualizer renderer: the rendered child views of `parentKey`'s view. */
|
|
37
|
+
export declare function VirtualizerBranch(props: {
|
|
38
|
+
link: VirtualizerLink<any>;
|
|
39
|
+
branch: CollectionBranchProps;
|
|
40
|
+
}): unknown;
|
|
41
|
+
/**
|
|
42
|
+
* RAC `Virtualizer` for a collection component: wraps one `ListBox` / `GridList` / `Menu` / `Tree` / `Table` and renders its collection with
|
|
43
|
+
* `layout` — only the views in the visible rect (plus overscan and the focused item) are in the DOM. The component's
|
|
44
|
+
* own element is the scroll container (give it a height and `overflow: auto`).
|
|
45
|
+
*/
|
|
46
|
+
export interface CollectionVirtualizerProps<O> {
|
|
47
|
+
/** The collection component (`<ListBox>`, `<GridList>`, `<Menu>`, `<Tree>`, `<Table>`). */
|
|
48
|
+
children: unknown;
|
|
49
|
+
/** Layout class (`ListLayout`, `TableLayout`, `GridLayout`, `WaterfallLayout`) or factory (`() => new ListLayout()`). */
|
|
50
|
+
layout: LayoutInput<O>;
|
|
51
|
+
/** Options for the layout (JSON: `{ rowHeight: 48 }`). */
|
|
52
|
+
layoutOptions?: O;
|
|
53
|
+
/** Rivet: viewport size of the server-rendered window: the scroll container's client size (inside the borders, padding included; a resumed page keeps it until its first interaction). Default 800 x 600. */
|
|
54
|
+
initialSize?: {
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
};
|
|
58
|
+
/** Rivet: text direction of view positions (`left` / `right`); default: logical `inset-inline-start`. */
|
|
59
|
+
dir?: Direction;
|
|
60
|
+
}
|
|
61
|
+
/** Provides the virtualized `CollectionRenderer` (layout = layout delegate) to its child collection. */
|
|
62
|
+
export declare function CollectionVirtualizer<O = unknown>(props: CollectionVirtualizerProps<O>): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
// `<CollectionVirtualizer>`: the react-aria-components `Virtualizer` (src/Virtualizer.tsx: the
|
|
2
|
+
// `CollectionRenderer` with `CollectionRoot` / `CollectionBranch` over useVirtualizerState + useScrollView, and
|
|
3
|
+
// VirtualizerItem / useVirtualizerItem; React Spectrum, Apache-2.0, © Adobe) for the cdk collection components:
|
|
4
|
+
// `<CollectionVirtualizer layout={ListLayout}><ListBox …/></CollectionVirtualizer>`, `<CollectionVirtualizer layout={TableLayout}><Table …/></CollectionVirtualizer>`.
|
|
5
|
+
// Hosts: ListBox (+ sections), GridList (ListLayout / GridLayout), Menu, Tree (flattened rows), Table.
|
|
6
|
+
// A separate component from the standalone `<Virtualizer items>` (`./virtualizer.tsx`) so items users (Masonry) ship none of this.
|
|
7
|
+
// Rivet:
|
|
8
|
+
// - The host (ListBox, GridList, Menu, Tree, Table) builds its collection and passes an accessor of it to `CollectionRoot` with its
|
|
9
|
+
// scroll container (`scrollRef`, the host element) and its focused key (`focusedKey`, persisted); the engine
|
|
10
|
+
// is the standalone component's driver (`./behaviour.ts`): the server renders the first window at `initialSize`,
|
|
11
|
+
// the browser starts the engine on the first scroll (the host forwards its `scroll` events to `onScroll`), focus
|
|
12
|
+
// move (a persisted key) or layout delegate call (keyboard Page Up / Down).
|
|
13
|
+
// - Every view renders in a wrapper `div[role=presentation]` (VirtualizerItem: `data-rv-view`, `data-rv-type`,
|
|
14
|
+
// absolute / sticky position from the layout); the node's part renders inside it (`node.render(node)`) with this
|
|
15
|
+
// renderer provided, so a part rendering its children (`CollectionBranch`: sections, table rows / cells) gets
|
|
16
|
+
// the child views of its own view.
|
|
17
|
+
// - Resume: the renderer object's functions capture only `link` (layout factory, options, the root's model);
|
|
18
|
+
// the model holds signals, the host's collection accessor, its focused key signal and its scroll ref.
|
|
19
|
+
// Deviations: no drop indicators (DnD); no window scrolling; rows are keyed by collection key (no DOM recycling
|
|
20
|
+
// across items, as the standalone component); a layout instance is not accepted (a class or a factory: the
|
|
21
|
+
// instance would be serialized).
|
|
22
|
+
import { computed, signal, untrack } from "@rivetjs/reactivity";
|
|
23
|
+
import { For, Provider } from "@rivetjs/runtime/dom";
|
|
24
|
+
import { CollectionRendererContext, DefaultCollectionRenderer, resumedKeys, sameRender, serverRows, } from "../collections/components.jsx";
|
|
25
|
+
import { rowKey } from "../collections/row-stamps.js";
|
|
26
|
+
import { childViews, contentStyle, driverOf, initialWindow, ROOT_VIEW, rowOrder, viewOf, visibleViews, } from "./behaviour.js";
|
|
27
|
+
import { Rect } from "./rect.js";
|
|
28
|
+
import { Size } from "./size.js";
|
|
29
|
+
const engineOf = (link) => (link.model ? (driverOf(link.model)?.state.virtualizer ?? null) : null);
|
|
30
|
+
let renderers;
|
|
31
|
+
/**
|
|
32
|
+
* The virtualized `CollectionRenderer` of `link` (one per link). Not read from `CollectionRendererContext` below the
|
|
33
|
+
* host: a resumed page re-creates a part's branch (a binding re-run) without the server's providers, where the
|
|
34
|
+
* context is the default renderer; the renderer object resumes from `link` instead.
|
|
35
|
+
*/
|
|
36
|
+
export function rendererOf(link) {
|
|
37
|
+
let renderer = (renderers ??= new WeakMap()).get(link);
|
|
38
|
+
if (!renderer)
|
|
39
|
+
renderers.set(link, (renderer = VirtualizerRenderer(link)));
|
|
40
|
+
return renderer;
|
|
41
|
+
}
|
|
42
|
+
/** A PascalCase factory: its object-literal arrows are resumable closures over `link` only. */
|
|
43
|
+
function VirtualizerRenderer(link) {
|
|
44
|
+
return {
|
|
45
|
+
isVirtualized: true,
|
|
46
|
+
// RAC: the layout is the collection's layout delegate (keyboard Page Up / Down, range selection).
|
|
47
|
+
layoutDelegate: {
|
|
48
|
+
getItemRect: (key) => layoutRect(link, key),
|
|
49
|
+
getVisibleRect: () => layoutVisibleRect(link),
|
|
50
|
+
getContentSize: () => layoutContentSize(link),
|
|
51
|
+
},
|
|
52
|
+
CollectionRoot: (root) => <VirtualizerRoot link={link} root={root}/>,
|
|
53
|
+
CollectionBranch: (branch) => <VirtualizerBranch link={link} branch={branch}/>,
|
|
54
|
+
onScroll: (event) => virtualizerLinkScroll(link, event),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** The scroll handler hosts forward their scroll container's `scroll` events to (the engine starts on the first). */
|
|
58
|
+
export function virtualizerLinkScroll(link, event) {
|
|
59
|
+
const model = link.model;
|
|
60
|
+
if (!model)
|
|
61
|
+
return;
|
|
62
|
+
const driver = driverOf(model, event.currentTarget);
|
|
63
|
+
driver?.scrollView.onScroll(event);
|
|
64
|
+
}
|
|
65
|
+
/** RAC: the layout is the collection's layout delegate (keyboard Page Up / Down, range selection). */
|
|
66
|
+
export function layoutRect(link, key) {
|
|
67
|
+
return engineOf(link)?.layout.getLayoutInfo(key)?.rect ?? null;
|
|
68
|
+
}
|
|
69
|
+
export function layoutVisibleRect(link) {
|
|
70
|
+
return engineOf(link)?.visibleRect ?? new Rect();
|
|
71
|
+
}
|
|
72
|
+
export function layoutContentSize(link) {
|
|
73
|
+
return engineOf(link)?.layout.getContentSize() ?? new Size();
|
|
74
|
+
}
|
|
75
|
+
const isServer = typeof document === "undefined";
|
|
76
|
+
/**
|
|
77
|
+
* The node at `key` of the host's collection. As `renderNodeAt`: server once, untracked; browser a region that keeps
|
|
78
|
+
* the part while the node renders the same (`sameRender`).
|
|
79
|
+
*/
|
|
80
|
+
function renderNode(model, key) {
|
|
81
|
+
const at = () => model.source?.()?.getItem(key) ?? null;
|
|
82
|
+
if (isServer)
|
|
83
|
+
return untrack(() => {
|
|
84
|
+
const n = at();
|
|
85
|
+
return n?.render ? n.render(n) : null;
|
|
86
|
+
});
|
|
87
|
+
const node = computed(at, { equals: sameRender });
|
|
88
|
+
return () => {
|
|
89
|
+
node();
|
|
90
|
+
const n = untrack(at);
|
|
91
|
+
return n?.render ? untrack(() => n.render(n)) : null;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* VirtualizerItem: one view's wrapper (position + size of its layout info) and its node's part, rendered with this
|
|
96
|
+
* renderer provided (a `Provider` binding: a part's lazily evaluated content still sees it) — a part rendering its
|
|
97
|
+
* children (`CollectionBranch`: sections, table rows / cells) gets the child views of its own view.
|
|
98
|
+
*/
|
|
99
|
+
function VirtualizerView(props) {
|
|
100
|
+
const { model, renderer, viewKey, views } = props;
|
|
101
|
+
const view = () => viewOf(model, views(), viewKey);
|
|
102
|
+
return (<div role="presentation" class="rv-Virtualizer-item" data-rv-view={String(viewKey)} data-rv-type={view().type} style={view().style}>
|
|
103
|
+
<Provider token={CollectionRendererContext} value={renderer}>
|
|
104
|
+
{renderNode(model, viewKey)}
|
|
105
|
+
</Provider>
|
|
106
|
+
</div>);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Lazy collection rows (`resume.lazyRows`, LAZY-T6): a loop over container views — a section, a table's header / body
|
|
110
|
+
* (views whose children have children) — is not the lazy `For`; the collection's rows below it are (a lazy row is one
|
|
111
|
+
* option / table row, not the whole table). Read by the server's lazy rows only.
|
|
112
|
+
*/
|
|
113
|
+
const leafViews = (views) => !views.some((view) => view.type === "section" || view.children.some((child) => child.children.length > 0));
|
|
114
|
+
/**
|
|
115
|
+
* The keyed `For` of the rendered views below `parent` (the root / a section / a table body). Resumed page: an adopted view
|
|
116
|
+
* whose node changed since the server render is re-created (ROW-RERENDER, `resumedKeys`) — called in the region read that
|
|
117
|
+
* creates the For, so its `serverRows` baseline is recorded with (and adopted by) the For's region.
|
|
118
|
+
*/
|
|
119
|
+
function viewRows(model, parent, views, renderer, parentType) {
|
|
120
|
+
const order = () => rowOrder(model, parent, views());
|
|
121
|
+
const source = model.source, each = resumedKeys(source, serverRows(source, order, parentType), order);
|
|
122
|
+
return (<For each={each} by={(key) => key} lazy={() => leafViews(views())}>
|
|
123
|
+
{(key) => <VirtualizerView model={model} renderer={renderer} viewKey={rowKey(untrack(key))} views={views}/>}
|
|
124
|
+
</For>);
|
|
125
|
+
}
|
|
126
|
+
/** `CollectionRoot` of the virtualizer renderer: the sized content element and the root views. */
|
|
127
|
+
export function VirtualizerRoot(props) {
|
|
128
|
+
const { link, root } = props;
|
|
129
|
+
const renderer = rendererOf(link);
|
|
130
|
+
const collection = root.collection;
|
|
131
|
+
const scrollRef = root.scrollRef;
|
|
132
|
+
const model = {
|
|
133
|
+
id: "",
|
|
134
|
+
items: [],
|
|
135
|
+
source: typeof collection === "function" ? collection : undefined,
|
|
136
|
+
focus: root.focusedKey,
|
|
137
|
+
scrollRef: typeof scrollRef === "function" ? scrollRef : undefined,
|
|
138
|
+
// The class / factory itself (a module reference or a resumable function), never a closure over `link`.
|
|
139
|
+
layout: link.layout,
|
|
140
|
+
layoutOptions: link.layoutOptions,
|
|
141
|
+
collection: {},
|
|
142
|
+
initialSize: link.initialSize,
|
|
143
|
+
dir: link.dir,
|
|
144
|
+
loadMoreOffset: 1,
|
|
145
|
+
shouldObserveItemSize: false,
|
|
146
|
+
persistedKeys: [],
|
|
147
|
+
focusedKey: signal(null),
|
|
148
|
+
views: signal([]),
|
|
149
|
+
contentSize: signal({ width: 0, height: 0 }),
|
|
150
|
+
isScrolling: signal(false),
|
|
151
|
+
};
|
|
152
|
+
if (!model.source)
|
|
153
|
+
throw new Error("Virtualizer: the collection component must pass its built collection (an accessor) to CollectionRoot.");
|
|
154
|
+
link.model = model;
|
|
155
|
+
// Untracked: the body must not depend on the collection / focused key (a resumed page would re-create the
|
|
156
|
+
// root, its content element and the focused option on the first focus move).
|
|
157
|
+
const first = untrack(() => initialWindow(model));
|
|
158
|
+
model.views.set(first.views);
|
|
159
|
+
model.contentSize.set(first.contentSize);
|
|
160
|
+
const rootViews = () => visibleViews(model);
|
|
161
|
+
return (<div role="presentation" class="rv-Virtualizer-content" style={contentStyle(model)}>
|
|
162
|
+
{viewRows(model, ROOT_VIEW, rootViews, renderer)}
|
|
163
|
+
</div>);
|
|
164
|
+
}
|
|
165
|
+
/** `CollectionBranch` of the virtualizer renderer: the rendered child views of `parentKey`'s view. */
|
|
166
|
+
export function VirtualizerBranch(props) {
|
|
167
|
+
const link = props.link;
|
|
168
|
+
const model = link.model;
|
|
169
|
+
const renderer = rendererOf(link);
|
|
170
|
+
// A part rendered outside the window (no root yet): render its children as the default renderer would.
|
|
171
|
+
if (!model)
|
|
172
|
+
return DefaultCollectionRenderer.CollectionBranch(props.branch);
|
|
173
|
+
const parentKey = props.branch.parent.key;
|
|
174
|
+
const parentType = untrack(() => model.source?.()?.getItem(parentKey)?.type);
|
|
175
|
+
return viewRows(model, parentKey, () => childViews(model, parentKey), renderer, parentType);
|
|
176
|
+
}
|
|
177
|
+
/** Provides the virtualized `CollectionRenderer` (layout = layout delegate) to its child collection. */
|
|
178
|
+
export function CollectionVirtualizer(props) {
|
|
179
|
+
const link = {
|
|
180
|
+
layout: props.layout,
|
|
181
|
+
layoutOptions: props.layoutOptions,
|
|
182
|
+
initialSize: props.initialSize ?? { width: 800, height: 600 },
|
|
183
|
+
dir: props.dir,
|
|
184
|
+
model: null,
|
|
185
|
+
};
|
|
186
|
+
const renderer = rendererOf(link);
|
|
187
|
+
return (<Provider token={CollectionRendererContext} value={renderer}>
|
|
188
|
+
{props.children}
|
|
189
|
+
</Provider>);
|
|
190
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { Key } from "../collections/index.js";
|
|
2
|
+
export interface Node<T> {
|
|
3
|
+
/** The type of item this node represents (`item`, `section`, `header`, `loader`, `separator`, …). */
|
|
4
|
+
type: string;
|
|
5
|
+
/** A unique key for the node. */
|
|
6
|
+
key: Key;
|
|
7
|
+
/** The object value the node was created from. */
|
|
8
|
+
value: T | null;
|
|
9
|
+
/** The level of depth this node is at in the hierarchy. */
|
|
10
|
+
level: number;
|
|
11
|
+
/** Whether this item has children, even if not loaded yet. */
|
|
12
|
+
hasChildNodes: boolean;
|
|
13
|
+
/** The loaded children of this node (prefer `collection.getChildren(node.key)`). */
|
|
14
|
+
childNodes: Iterable<Node<T>>;
|
|
15
|
+
/** Rendered contents marker; layouts only test it for truthiness (headers). */
|
|
16
|
+
rendered: unknown;
|
|
17
|
+
/** A string value for this node, used for features like typeahead. */
|
|
18
|
+
textValue: string;
|
|
19
|
+
/** An accessibility label for this node. */
|
|
20
|
+
"aria-label"?: string;
|
|
21
|
+
/** The index of this node within its parent. */
|
|
22
|
+
index: number;
|
|
23
|
+
/** The key of the parent node. */
|
|
24
|
+
parentKey?: Key | null;
|
|
25
|
+
/** The key of the node before this node. */
|
|
26
|
+
prevKey?: Key | null;
|
|
27
|
+
/** The key of the node after this node. */
|
|
28
|
+
nextKey?: Key | null;
|
|
29
|
+
/** The first child key of this node. */
|
|
30
|
+
firstChildKey?: Key | null;
|
|
31
|
+
/** The last child key of this node. */
|
|
32
|
+
lastChildKey?: Key | null;
|
|
33
|
+
/** Additional properties specific to a particular node type (loaders: `isLoading`; columns: widths). */
|
|
34
|
+
props?: any;
|
|
35
|
+
}
|
|
36
|
+
/** A readonly sequential collection of unique keyed items (iterates the top-level nodes). */
|
|
37
|
+
export interface Collection<T> extends Iterable<T> {
|
|
38
|
+
/** The number of items (and sections) in the collection. */
|
|
39
|
+
readonly size: number;
|
|
40
|
+
/** Iterate over all keys in the collection. */
|
|
41
|
+
getKeys(): Iterable<Key>;
|
|
42
|
+
/** Get an item by its key. */
|
|
43
|
+
getItem(key: Key): T | null;
|
|
44
|
+
/** Get an item by the index of its key. */
|
|
45
|
+
at(idx: number): T | null;
|
|
46
|
+
/** Get the key that comes before the given key in the collection. */
|
|
47
|
+
getKeyBefore(key: Key): Key | null;
|
|
48
|
+
/** Get the key that comes after the given key in the collection. */
|
|
49
|
+
getKeyAfter(key: Key): Key | null;
|
|
50
|
+
/** Get the first key in the collection. */
|
|
51
|
+
getFirstKey(): Key | null;
|
|
52
|
+
/** Get the last key in the collection. */
|
|
53
|
+
getLastKey(): Key | null;
|
|
54
|
+
/** Iterate over the child items of the given key. */
|
|
55
|
+
getChildren?(key: Key): Iterable<T>;
|
|
56
|
+
/** Returns a string representation of the item's contents. */
|
|
57
|
+
getTextValue?(key: Key): string;
|
|
58
|
+
}
|
|
59
|
+
/** Collection over nodes: sections are flattened into the key map, `size` counts items and sections. */
|
|
60
|
+
export declare class ListCollection<T> implements Collection<Node<T>> {
|
|
61
|
+
private keyMap;
|
|
62
|
+
private iterable;
|
|
63
|
+
private firstKey;
|
|
64
|
+
private lastKey;
|
|
65
|
+
private _size;
|
|
66
|
+
constructor(nodes: Iterable<Node<T>>);
|
|
67
|
+
[Symbol.iterator](): IterableIterator<Node<T>>;
|
|
68
|
+
get size(): number;
|
|
69
|
+
getKeys(): IterableIterator<Key>;
|
|
70
|
+
getKeyBefore(key: Key): Key | null;
|
|
71
|
+
getKeyAfter(key: Key): Key | null;
|
|
72
|
+
getFirstKey(): Key | null;
|
|
73
|
+
getLastKey(): Key | null;
|
|
74
|
+
getItem(key: Key): Node<T> | null;
|
|
75
|
+
at(idx: number): Node<T> | null;
|
|
76
|
+
getChildren(key: Key): Iterable<Node<T>>;
|
|
77
|
+
getTextValue(key: Key): string;
|
|
78
|
+
}
|
|
79
|
+
export interface CollectionOptions<T> {
|
|
80
|
+
/** Item key (default: `item.key ?? item.id`, or the item itself for strings / numbers). */
|
|
81
|
+
getKey?: (item: T, index: number) => Key;
|
|
82
|
+
/** Node type (default: `item.type ?? "item"`). Sections (`"section"`) hold `getChildren(item)` nodes. */
|
|
83
|
+
getType?: (item: T) => string;
|
|
84
|
+
/** Children of a section (default `item.children`). */
|
|
85
|
+
getChildren?: (item: T) => Iterable<T> | null | undefined;
|
|
86
|
+
/** Typeahead text (default `item.textValue ?? item.label ?? String(item)`). */
|
|
87
|
+
getTextValue?: (item: T) => string;
|
|
88
|
+
/** Extra node props (default `item.props ?? {}`; columns read `width` / `minWidth` / `maxWidth` there). */
|
|
89
|
+
getProps?: (item: T) => any;
|
|
90
|
+
}
|
|
91
|
+
/** Default key of an item: `key`, else `id`, else the primitive itself. */
|
|
92
|
+
export declare function itemKey(item: unknown, index: number): Key;
|
|
93
|
+
/** Nodes of `items` (sections recurse into their children; `level` / `parentKey` / `index` set). */
|
|
94
|
+
export declare function buildNodes<T>(items: Iterable<T>, options?: CollectionOptions<T>, parentKey?: Key | null, level?: number): Node<T>[];
|
|
95
|
+
/** A loader sentinel node ("load more"), rendered after the items; `isLoading` reserves the loader size. */
|
|
96
|
+
export declare function loaderNode<T>(key: Key, isLoading: boolean, parentKey?: Key | null): Node<T>;
|
|
97
|
+
/** A collection from plain items (see `CollectionOptions`); `extra` nodes (e.g. a loader) are appended. */
|
|
98
|
+
export declare function createCollection<T>(items: Iterable<T>, options?: CollectionOptions<T>, extra?: Node<T>[]): ListCollection<T>;
|
|
99
|
+
/** Children of `node` (`collection.getChildren` when available, else `node.childNodes`). */
|
|
100
|
+
export declare function getChildNodes<T>(node: Node<T>, collection: Collection<Node<T>>): Iterable<Node<T>>;
|
|
101
|
+
export declare function getFirstItem<T>(iterable: Iterable<T>): T | undefined;
|
|
102
|
+
export declare function getNthItem<T>(iterable: Iterable<T>, index: number): T | undefined;
|
|
103
|
+
export declare function getLastItem<T>(iterable: Iterable<T>): T | undefined;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/** Collection over nodes: sections are flattened into the key map, `size` counts items and sections. */
|
|
2
|
+
export class ListCollection {
|
|
3
|
+
keyMap = new Map();
|
|
4
|
+
iterable;
|
|
5
|
+
firstKey = null;
|
|
6
|
+
lastKey;
|
|
7
|
+
_size;
|
|
8
|
+
constructor(nodes) {
|
|
9
|
+
this.iterable = nodes;
|
|
10
|
+
const visit = (node) => {
|
|
11
|
+
this.keyMap.set(node.key, node);
|
|
12
|
+
if (node.childNodes && node.type === "section")
|
|
13
|
+
for (const child of node.childNodes)
|
|
14
|
+
visit(child);
|
|
15
|
+
};
|
|
16
|
+
for (const node of nodes)
|
|
17
|
+
visit(node);
|
|
18
|
+
let last = null;
|
|
19
|
+
let index = 0;
|
|
20
|
+
let size = 0;
|
|
21
|
+
for (const [key, node] of this.keyMap) {
|
|
22
|
+
if (last) {
|
|
23
|
+
last.nextKey = key;
|
|
24
|
+
node.prevKey = last.key;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.firstKey = key;
|
|
28
|
+
node.prevKey = undefined;
|
|
29
|
+
}
|
|
30
|
+
if (node.type === "item")
|
|
31
|
+
node.index = index++;
|
|
32
|
+
// Only sections and items count, so loaders and separators don't influence the empty state.
|
|
33
|
+
if (node.type === "section" || node.type === "item")
|
|
34
|
+
size++;
|
|
35
|
+
last = node;
|
|
36
|
+
last.nextKey = undefined;
|
|
37
|
+
}
|
|
38
|
+
this._size = size;
|
|
39
|
+
this.lastKey = last?.key ?? null;
|
|
40
|
+
}
|
|
41
|
+
*[Symbol.iterator]() {
|
|
42
|
+
yield* this.iterable;
|
|
43
|
+
}
|
|
44
|
+
get size() {
|
|
45
|
+
return this._size;
|
|
46
|
+
}
|
|
47
|
+
getKeys() {
|
|
48
|
+
return this.keyMap.keys();
|
|
49
|
+
}
|
|
50
|
+
getKeyBefore(key) {
|
|
51
|
+
return this.keyMap.get(key)?.prevKey ?? null;
|
|
52
|
+
}
|
|
53
|
+
getKeyAfter(key) {
|
|
54
|
+
return this.keyMap.get(key)?.nextKey ?? null;
|
|
55
|
+
}
|
|
56
|
+
getFirstKey() {
|
|
57
|
+
return this.firstKey;
|
|
58
|
+
}
|
|
59
|
+
getLastKey() {
|
|
60
|
+
return this.lastKey;
|
|
61
|
+
}
|
|
62
|
+
getItem(key) {
|
|
63
|
+
return this.keyMap.get(key) ?? null;
|
|
64
|
+
}
|
|
65
|
+
at(idx) {
|
|
66
|
+
const keys = [...this.getKeys()];
|
|
67
|
+
return keys[idx] === undefined ? null : this.getItem(keys[idx]);
|
|
68
|
+
}
|
|
69
|
+
getChildren(key) {
|
|
70
|
+
return this.keyMap.get(key)?.childNodes || [];
|
|
71
|
+
}
|
|
72
|
+
getTextValue(key) {
|
|
73
|
+
return this.keyMap.get(key)?.textValue ?? "";
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const field = (item, name) => (item != null && typeof item === "object" ? item[name] : undefined);
|
|
77
|
+
/** Default key of an item: `key`, else `id`, else the primitive itself. */
|
|
78
|
+
export function itemKey(item, index) {
|
|
79
|
+
if (item == null || typeof item !== "object")
|
|
80
|
+
return typeof item === "number" || typeof item === "string" ? item : index;
|
|
81
|
+
return field(item, "key") ?? field(item, "id") ?? index;
|
|
82
|
+
}
|
|
83
|
+
/** Nodes of `items` (sections recurse into their children; `level` / `parentKey` / `index` set). */
|
|
84
|
+
export function buildNodes(items, options = {}, parentKey = null, level = 0) {
|
|
85
|
+
const nodes = [];
|
|
86
|
+
let index = 0;
|
|
87
|
+
for (const item of items) {
|
|
88
|
+
const key = options.getKey ? options.getKey(item, index) : itemKey(item, index);
|
|
89
|
+
const type = options.getType?.(item) ?? field(item, "type") ?? "item";
|
|
90
|
+
const children = type === "section" ? (options.getChildren?.(item) ?? field(item, "children")) : null;
|
|
91
|
+
const childNodes = children ? buildNodes(children, options, key, level + 1) : [];
|
|
92
|
+
const text = options.getTextValue?.(item) ?? field(item, "textValue") ?? field(item, "label") ?? (typeof item === "object" ? "" : String(item));
|
|
93
|
+
nodes.push({
|
|
94
|
+
type,
|
|
95
|
+
key,
|
|
96
|
+
value: item,
|
|
97
|
+
level,
|
|
98
|
+
hasChildNodes: childNodes.length > 0,
|
|
99
|
+
childNodes,
|
|
100
|
+
rendered: true,
|
|
101
|
+
textValue: String(text),
|
|
102
|
+
index: index++,
|
|
103
|
+
parentKey,
|
|
104
|
+
firstChildKey: childNodes[0]?.key ?? null,
|
|
105
|
+
lastChildKey: childNodes.at(-1)?.key ?? null,
|
|
106
|
+
props: options.getProps?.(item) ?? field(item, "props") ?? {},
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return nodes;
|
|
110
|
+
}
|
|
111
|
+
/** A loader sentinel node ("load more"), rendered after the items; `isLoading` reserves the loader size. */
|
|
112
|
+
export function loaderNode(key, isLoading, parentKey = null) {
|
|
113
|
+
return {
|
|
114
|
+
type: "loader",
|
|
115
|
+
key,
|
|
116
|
+
value: null,
|
|
117
|
+
level: 0,
|
|
118
|
+
hasChildNodes: false,
|
|
119
|
+
childNodes: [],
|
|
120
|
+
rendered: true,
|
|
121
|
+
textValue: "",
|
|
122
|
+
index: 0,
|
|
123
|
+
parentKey,
|
|
124
|
+
props: { isLoading },
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** A collection from plain items (see `CollectionOptions`); `extra` nodes (e.g. a loader) are appended. */
|
|
128
|
+
export function createCollection(items, options = {}, extra = []) {
|
|
129
|
+
return new ListCollection([...buildNodes(items, options), ...extra]);
|
|
130
|
+
}
|
|
131
|
+
/** Children of `node` (`collection.getChildren` when available, else `node.childNodes`). */
|
|
132
|
+
export function getChildNodes(node, collection) {
|
|
133
|
+
if (typeof collection.getChildren === "function")
|
|
134
|
+
return collection.getChildren(node.key);
|
|
135
|
+
return node.childNodes;
|
|
136
|
+
}
|
|
137
|
+
export function getFirstItem(iterable) {
|
|
138
|
+
return getNthItem(iterable, 0);
|
|
139
|
+
}
|
|
140
|
+
export function getNthItem(iterable, index) {
|
|
141
|
+
if (index < 0)
|
|
142
|
+
return undefined;
|
|
143
|
+
let i = 0;
|
|
144
|
+
for (const item of iterable) {
|
|
145
|
+
if (i === index)
|
|
146
|
+
return item;
|
|
147
|
+
i++;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export function getLastItem(iterable) {
|
|
151
|
+
let lastItem = undefined;
|
|
152
|
+
for (const value of iterable)
|
|
153
|
+
lastItem = value;
|
|
154
|
+
return lastItem;
|
|
155
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { StyleObject } from "@rivetjs/runtime/style";
|
|
2
|
+
import type { Key } from "../collections/index.js";
|
|
3
|
+
import type { LayoutInfo } from "./layout-info.js";
|
|
4
|
+
import { Rect } from "./rect.js";
|
|
5
|
+
import { Size } from "./size.js";
|
|
6
|
+
import type { Direction } from "./types.js";
|
|
7
|
+
export type RTLOffsetType = "negative" | "positive-descending" | "positive-ascending";
|
|
8
|
+
/**
|
|
9
|
+
* How the browser reports `scrollLeft` of RTL elements (spec: negative; old Chrome: positive from the left;
|
|
10
|
+
* old WebKit/IE: positive from the right). Detected once by scrolling a probe element.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getRTLOffsetType(recalculate?: boolean): RTLOffsetType;
|
|
13
|
+
/** `scrollLeft` normalized to a distance from the inline start (RTL-safe). */
|
|
14
|
+
export declare function getScrollLeft(node: Element, direction: Direction): number;
|
|
15
|
+
/** Set `scrollLeft` from a distance from the inline start (RTL-safe). */
|
|
16
|
+
export declare function setScrollLeft(node: Element, direction: Direction, scrollLeft: number): void;
|
|
17
|
+
/**
|
|
18
|
+
* Absolute (or sticky) position style of a view, relative to its parent view. `dir` picks `left` / `right`;
|
|
19
|
+
* without `dir` the inline-start offset is the logical `inset-inline-start` (RTL without JS).
|
|
20
|
+
*/
|
|
21
|
+
export declare function layoutInfoToStyle(layoutInfo: LayoutInfo, dir?: Direction | null, parent?: LayoutInfo | null): StyleObject;
|
|
22
|
+
/** Intrinsic size of a view element (its fixed height reset while measuring). */
|
|
23
|
+
export declare function getSize(node: HTMLElement): Size;
|
|
24
|
+
/** Whether `element` is rendered and visible (hidden virtualizers must not report 0 sizes). */
|
|
25
|
+
export declare function isElementVisible(element: Element): boolean;
|
|
26
|
+
/** useVirtualizerItem's measurement: report the view's measured size (only while visible). */
|
|
27
|
+
export declare function measureItem(virtualizer: {
|
|
28
|
+
updateItemSize(key: Key, size: Size): void;
|
|
29
|
+
}, key: Key, element: HTMLElement): void;
|
|
30
|
+
export interface ScrollViewOptions {
|
|
31
|
+
/** Current content size (scroll position is clamped to it). */
|
|
32
|
+
contentSize(): Size;
|
|
33
|
+
onVisibleRectChange(rect: Rect): void;
|
|
34
|
+
onSizeChange?(size: Size): void;
|
|
35
|
+
onScrollStart?(): void;
|
|
36
|
+
onScrollEnd?(): void;
|
|
37
|
+
allowsWindowScrolling?: boolean;
|
|
38
|
+
/** Text direction of the scroller (scrollLeft normalization). */
|
|
39
|
+
direction(): Direction;
|
|
40
|
+
}
|
|
41
|
+
export interface ScrollView {
|
|
42
|
+
/** Handle a scroll event (of the scroller, an ancestor or the window). */
|
|
43
|
+
onScroll(event: Event): void;
|
|
44
|
+
/** Re-measure the scroller (resize observer / window resize / content size change). */
|
|
45
|
+
updateSize(): void;
|
|
46
|
+
readonly isScrolling: boolean;
|
|
47
|
+
dispose(): void;
|
|
48
|
+
}
|
|
49
|
+
/** useScrollView as a controller for `element`: visible rect from scroll position + size, scroll start / end (300 ms). */
|
|
50
|
+
export declare function createScrollView(element: HTMLElement, options: ScrollViewOptions): ScrollView;
|