@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,92 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { ListRange, VirtualScrollStrategy, VirtualScrollStrategyViewport } from "./virtual-scroll-strategy.js";
|
|
3
|
+
export type { Orientation } from "../collections/types.js";
|
|
4
|
+
import type { Orientation } from "../collections/types.js";
|
|
5
|
+
export interface VirtualScrollOptions<T> {
|
|
6
|
+
/** The data (Angular `cdkVirtualForOf`): a signal (live) or an array. */
|
|
7
|
+
items: Signal<readonly T[]> | Signal<T[]> | readonly T[];
|
|
8
|
+
/** Fixed item size in px (Angular `itemSize`, default 20). Ignored with `autosize`. */
|
|
9
|
+
itemSize?: number;
|
|
10
|
+
/** Auto-size strategy (cdk-experimental `autosize`) for items of unknown / varying size. */
|
|
11
|
+
autosize?: boolean;
|
|
12
|
+
/** Minimum buffer beyond the viewport in px (default 100). */
|
|
13
|
+
minBufferPx?: number;
|
|
14
|
+
/** Buffer to render when rendering more, in px (default 200). */
|
|
15
|
+
maxBufferPx?: number;
|
|
16
|
+
orientation?: Orientation;
|
|
17
|
+
/** Keep rendered items in the DOM after they scroll out of view (default false). */
|
|
18
|
+
appendOnly?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Scroll container: `"self"` (default: the viewport scrolls), `"window"` (Angular `scrollWindow`)
|
|
21
|
+
* or `"element"` (the nearest `CdkVirtualScrollableElement` ancestor; pass this state to it).
|
|
22
|
+
*/
|
|
23
|
+
scrollable?: "self" | "window" | "element";
|
|
24
|
+
/** Template cache size (Angular `cdkVirtualForTemplateCacheSize`): accepted for parity; rows are keyed. */
|
|
25
|
+
templateCacheSize?: number;
|
|
26
|
+
/** Viewport size in px assumed for the server-rendered range (default 0: just the buffer). */
|
|
27
|
+
initialViewportSize?: number;
|
|
28
|
+
id?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface VirtualScrollState<T> {
|
|
31
|
+
readonly id: string;
|
|
32
|
+
readonly items: Signal<readonly T[]>;
|
|
33
|
+
/** Rendered range (rows `[start, end)` are in the DOM). */
|
|
34
|
+
readonly range: Signal<ListRange>;
|
|
35
|
+
/** Total content size in px (spacer). */
|
|
36
|
+
readonly totalSize: Signal<number>;
|
|
37
|
+
/** Content wrapper transform (`translateY(<offset>px)`). */
|
|
38
|
+
readonly transform: Signal<string>;
|
|
39
|
+
/** Offset of the rendered content in px (last `setRenderedContentOffset` "to-start" value). */
|
|
40
|
+
readonly offset: Signal<number>;
|
|
41
|
+
readonly itemSize: number;
|
|
42
|
+
readonly autosize: boolean;
|
|
43
|
+
readonly minBufferPx: number;
|
|
44
|
+
readonly maxBufferPx: number;
|
|
45
|
+
readonly orientation: Orientation;
|
|
46
|
+
readonly appendOnly: boolean;
|
|
47
|
+
readonly scrollable: "self" | "window" | "element";
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Viewport callbacks: component props (`<CdkVirtualScrollViewport onScrolledIndexChange>`), not
|
|
51
|
+
* state options — a `const` initialized with inline functions is re-created on the client from its
|
|
52
|
+
* symbol (compiler rule for derived consts), which would detach the state's signals.
|
|
53
|
+
*/
|
|
54
|
+
export interface VirtualScrollCallbacks {
|
|
55
|
+
/** Index of the first visible item (fixed strategy; Angular `scrolledIndexChange`). */
|
|
56
|
+
onScrolledIndexChange?: (index: number) => void;
|
|
57
|
+
/** Rendered range (Angular `renderedRangeStream` / CdkVirtualForOf `viewChange`). */
|
|
58
|
+
onRenderedRangeChange?: (range: ListRange) => void;
|
|
59
|
+
}
|
|
60
|
+
/** The strategy for `state` (Angular: the `itemSize` / `autosize` directive's strategy). */
|
|
61
|
+
export declare function createStrategy(state: Pick<VirtualScrollState<unknown>, "autosize" | "itemSize" | "minBufferPx" | "maxBufferPx">): VirtualScrollStrategy;
|
|
62
|
+
/** Content transform for an offset (Angular `setRenderedContentOffset`). */
|
|
63
|
+
export declare function contentTransform(orientation: Orientation, offset: number, rtl?: boolean, toEnd?: boolean): string;
|
|
64
|
+
/**
|
|
65
|
+
* Measurement model of a viewport that is not in a browser (server render): scroll offset 0, the
|
|
66
|
+
* given viewport size, rendered items measured at the estimated size. Runs strategies unchanged.
|
|
67
|
+
*/
|
|
68
|
+
export declare class VirtualScrollModel implements VirtualScrollStrategyViewport {
|
|
69
|
+
range: ListRange;
|
|
70
|
+
total: number;
|
|
71
|
+
offset: number;
|
|
72
|
+
private dataLength;
|
|
73
|
+
private viewportSize;
|
|
74
|
+
private estimate;
|
|
75
|
+
private appendOnly;
|
|
76
|
+
private strategy?;
|
|
77
|
+
constructor(dataLength: number, viewportSize: number, estimate: number, appendOnly?: boolean);
|
|
78
|
+
run(strategy: VirtualScrollStrategy): this;
|
|
79
|
+
getDataLength: () => number;
|
|
80
|
+
getViewportSize: () => number;
|
|
81
|
+
getRenderedRange: () => ListRange;
|
|
82
|
+
setRenderedRange(range: ListRange): void;
|
|
83
|
+
setTotalContentSize(size: number): void;
|
|
84
|
+
setRenderedContentOffset(offset: number): void;
|
|
85
|
+
getOffsetToRenderedContentStart: () => number;
|
|
86
|
+
measureScrollOffset: () => number;
|
|
87
|
+
measureRenderedContentSize: () => number;
|
|
88
|
+
measureRangeSize: (range: ListRange) => number;
|
|
89
|
+
scrollToOffset(): void;
|
|
90
|
+
}
|
|
91
|
+
/** Virtual scroll state with the server-rendered (first) range computed. */
|
|
92
|
+
export declare function createVirtualScroll<T>(options: VirtualScrollOptions<T>): VirtualScrollState<T>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// Virtual scroll state: plain signals + options (serializable), shared by CdkVirtualScrollViewport and
|
|
2
|
+
// CdkVirtualForOf (explicit shared state instead of Angular DI). The server computes the first rendered range by running the real strategy against
|
|
3
|
+
// a measurement model (initial viewport size, estimated item sizes); the browser engine takes over on
|
|
4
|
+
// the first scroll / interaction (zero JS before it).
|
|
5
|
+
import { signal, untrack } from "@rivetjs/reactivity";
|
|
6
|
+
import { createId } from "@rivetjs/runtime/id";
|
|
7
|
+
import { AutoSizeVirtualScrollStrategy } from "./auto-size-virtual-scroll.js";
|
|
8
|
+
import { FixedSizeVirtualScrollStrategy } from "./fixed-size-virtual-scroll.js";
|
|
9
|
+
/** The strategy for `state` (Angular: the `itemSize` / `autosize` directive's strategy). */
|
|
10
|
+
export function createStrategy(state) {
|
|
11
|
+
if (state.maxBufferPx < state.minBufferPx)
|
|
12
|
+
throw Error("CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx");
|
|
13
|
+
return state.autosize
|
|
14
|
+
? new AutoSizeVirtualScrollStrategy(state.minBufferPx, state.maxBufferPx)
|
|
15
|
+
: new FixedSizeVirtualScrollStrategy(state.itemSize, state.minBufferPx, state.maxBufferPx);
|
|
16
|
+
}
|
|
17
|
+
/** Content transform for an offset (Angular `setRenderedContentOffset`). */
|
|
18
|
+
export function contentTransform(orientation, offset, rtl = false, toEnd = false) {
|
|
19
|
+
const axis = orientation == "horizontal" ? "X" : "Y";
|
|
20
|
+
const axisDirection = orientation == "horizontal" && rtl ? -1 : 1;
|
|
21
|
+
let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;
|
|
22
|
+
if (toEnd)
|
|
23
|
+
transform += ` translate${axis}(-100%)`;
|
|
24
|
+
return transform;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Measurement model of a viewport that is not in a browser (server render): scroll offset 0, the
|
|
28
|
+
* given viewport size, rendered items measured at the estimated size. Runs strategies unchanged.
|
|
29
|
+
*/
|
|
30
|
+
export class VirtualScrollModel {
|
|
31
|
+
range = { start: 0, end: 0 };
|
|
32
|
+
total = 0;
|
|
33
|
+
offset = 0;
|
|
34
|
+
dataLength;
|
|
35
|
+
viewportSize;
|
|
36
|
+
estimate;
|
|
37
|
+
appendOnly;
|
|
38
|
+
strategy;
|
|
39
|
+
constructor(dataLength, viewportSize, estimate, appendOnly = false) {
|
|
40
|
+
this.dataLength = dataLength;
|
|
41
|
+
this.viewportSize = viewportSize;
|
|
42
|
+
this.estimate = estimate;
|
|
43
|
+
this.appendOnly = appendOnly;
|
|
44
|
+
}
|
|
45
|
+
run(strategy) {
|
|
46
|
+
this.strategy = strategy;
|
|
47
|
+
strategy.attach(this);
|
|
48
|
+
strategy.onContentRendered();
|
|
49
|
+
strategy.onRenderedOffsetChanged();
|
|
50
|
+
strategy.detach();
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
getDataLength = () => this.dataLength;
|
|
54
|
+
getViewportSize = () => this.viewportSize;
|
|
55
|
+
getRenderedRange = () => this.range;
|
|
56
|
+
setRenderedRange(range) {
|
|
57
|
+
this.range = this.appendOnly ? { start: 0, end: Math.max(this.range.end, range.end) } : range;
|
|
58
|
+
}
|
|
59
|
+
setTotalContentSize(size) {
|
|
60
|
+
this.total = size;
|
|
61
|
+
}
|
|
62
|
+
setRenderedContentOffset(offset) {
|
|
63
|
+
this.offset = this.appendOnly ? 0 : offset;
|
|
64
|
+
}
|
|
65
|
+
getOffsetToRenderedContentStart = () => this.offset;
|
|
66
|
+
measureScrollOffset = () => 0;
|
|
67
|
+
measureRenderedContentSize = () => (this.range.end - this.range.start) * this.estimate;
|
|
68
|
+
measureRangeSize = (range) => Math.max(0, range.end - range.start) * this.estimate;
|
|
69
|
+
scrollToOffset() { }
|
|
70
|
+
}
|
|
71
|
+
/** Virtual scroll state with the server-rendered (first) range computed. */
|
|
72
|
+
export function createVirtualScroll(options) {
|
|
73
|
+
const items = (typeof options.items === "function" ? options.items : signal(options.items));
|
|
74
|
+
const orientation = options.orientation ?? "vertical";
|
|
75
|
+
const base = {
|
|
76
|
+
autosize: !!options.autosize,
|
|
77
|
+
itemSize: options.itemSize ?? 20,
|
|
78
|
+
minBufferPx: options.minBufferPx ?? 100,
|
|
79
|
+
maxBufferPx: options.maxBufferPx ?? 200,
|
|
80
|
+
};
|
|
81
|
+
const model = new VirtualScrollModel(untrack(items).length, options.initialViewportSize ?? 0, base.autosize ? 50 : base.itemSize, !!options.appendOnly).run(createStrategy(base));
|
|
82
|
+
return {
|
|
83
|
+
id: options.id ?? createId(),
|
|
84
|
+
items,
|
|
85
|
+
range: signal(model.range),
|
|
86
|
+
totalSize: signal(model.total),
|
|
87
|
+
transform: signal(contentTransform(orientation, model.offset)),
|
|
88
|
+
offset: signal(model.offset),
|
|
89
|
+
...base,
|
|
90
|
+
orientation,
|
|
91
|
+
appendOnly: !!options.appendOnly,
|
|
92
|
+
scrollable: options.scrollable ?? "self",
|
|
93
|
+
};
|
|
94
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Stream } from "./emitter.js";
|
|
2
|
+
/** Time in ms to throttle the resize events by default. */
|
|
3
|
+
export declare const DEFAULT_RESIZE_TIME = 20;
|
|
4
|
+
/** Object that holds the scroll position of the viewport in each direction. */
|
|
5
|
+
export interface ViewportScrollPosition {
|
|
6
|
+
top: number;
|
|
7
|
+
left: number;
|
|
8
|
+
}
|
|
9
|
+
/** Simple utility for getting the bounds of the browser viewport. */
|
|
10
|
+
export declare class ViewportRuler {
|
|
11
|
+
private _listeners;
|
|
12
|
+
/** Cached viewport dimensions. */
|
|
13
|
+
private _viewportSize;
|
|
14
|
+
/** Stream of viewport change events. */
|
|
15
|
+
private readonly _change;
|
|
16
|
+
protected _document: Document | undefined;
|
|
17
|
+
constructor(doc?: Document);
|
|
18
|
+
private _listen;
|
|
19
|
+
private _unlisten;
|
|
20
|
+
/** Remove listeners and complete `change()` (Angular `ngOnDestroy`). */
|
|
21
|
+
destroy(): void;
|
|
22
|
+
/** Returns the viewport's width and height. */
|
|
23
|
+
getViewportSize(): Readonly<{
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
}>;
|
|
27
|
+
/** Gets a DOMRect-like object for the viewport's bounds. */
|
|
28
|
+
getViewportRect(): {
|
|
29
|
+
top: number;
|
|
30
|
+
left: number;
|
|
31
|
+
bottom: number;
|
|
32
|
+
right: number;
|
|
33
|
+
height: number;
|
|
34
|
+
width: number;
|
|
35
|
+
};
|
|
36
|
+
/** Gets the (top, left) scroll position of the viewport. */
|
|
37
|
+
getViewportScrollPosition(): ViewportScrollPosition;
|
|
38
|
+
/**
|
|
39
|
+
* Stream that emits whenever the size of the viewport changes.
|
|
40
|
+
* @param throttleTime Time in milliseconds to throttle the stream.
|
|
41
|
+
*/
|
|
42
|
+
change(throttleTime?: number): Stream<Event>;
|
|
43
|
+
private _getWindow;
|
|
44
|
+
private _updateViewportSize;
|
|
45
|
+
}
|
|
46
|
+
/** The shared ViewportRuler of `doc` (Angular root service), created on first use. */
|
|
47
|
+
export declare function viewportRuler(doc?: Document): ViewportRuler;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Ported from Angular Components (src/cdk/scrolling/viewport-ruler.ts), MIT, © Google LLC.
|
|
2
|
+
// Rivet: no DI / NgZone — `viewportRuler(document?)` returns the lazily created per-document instance;
|
|
3
|
+
// `change()` is a `Stream` (subscribe/unsubscribe) instead of an RxJS Observable. Window listeners are
|
|
4
|
+
// added on first `change()` subscription (Angular: at construction) and removed with the last one.
|
|
5
|
+
import { auditTime, Emitter } from "./emitter.js";
|
|
6
|
+
/** Time in ms to throttle the resize events by default. */
|
|
7
|
+
export const DEFAULT_RESIZE_TIME = 20;
|
|
8
|
+
const isBrowser = () => typeof document === "object" && !!document && typeof window === "object";
|
|
9
|
+
/** Simple utility for getting the bounds of the browser viewport. */
|
|
10
|
+
export class ViewportRuler {
|
|
11
|
+
_listeners;
|
|
12
|
+
/** Cached viewport dimensions. */
|
|
13
|
+
_viewportSize = null;
|
|
14
|
+
/** Stream of viewport change events. */
|
|
15
|
+
_change;
|
|
16
|
+
_document;
|
|
17
|
+
constructor(doc) {
|
|
18
|
+
this._document = doc ?? (typeof document === "object" ? document : undefined);
|
|
19
|
+
this._change = new Emitter((count) => (count ? this._listen() : this._unlisten()));
|
|
20
|
+
}
|
|
21
|
+
_listen() {
|
|
22
|
+
if (this._listeners || !isBrowser())
|
|
23
|
+
return;
|
|
24
|
+
const win = this._getWindow();
|
|
25
|
+
const changeListener = (event) => {
|
|
26
|
+
// Clear the cached size so that the viewport is re-measured next time it is required.
|
|
27
|
+
this._viewportSize = null;
|
|
28
|
+
this._change.next(event);
|
|
29
|
+
};
|
|
30
|
+
win.addEventListener("resize", changeListener);
|
|
31
|
+
win.addEventListener("orientationchange", changeListener);
|
|
32
|
+
this._listeners = [() => win.removeEventListener("resize", changeListener), () => win.removeEventListener("orientationchange", changeListener)];
|
|
33
|
+
}
|
|
34
|
+
_unlisten() {
|
|
35
|
+
this._listeners?.forEach((cleanup) => cleanup());
|
|
36
|
+
this._listeners = undefined;
|
|
37
|
+
}
|
|
38
|
+
/** Remove listeners and complete `change()` (Angular `ngOnDestroy`). */
|
|
39
|
+
destroy() {
|
|
40
|
+
this._unlisten();
|
|
41
|
+
this._change.complete();
|
|
42
|
+
}
|
|
43
|
+
/** Returns the viewport's width and height. */
|
|
44
|
+
getViewportSize() {
|
|
45
|
+
// Without change() subscribers nothing invalidates the cache: re-measure every time then.
|
|
46
|
+
if (!this._viewportSize || !this._listeners)
|
|
47
|
+
this._updateViewportSize();
|
|
48
|
+
const output = { width: this._viewportSize.width, height: this._viewportSize.height };
|
|
49
|
+
// If we're not on a browser, don't cache the size since it'll be mocked out anyway.
|
|
50
|
+
if (!isBrowser())
|
|
51
|
+
this._viewportSize = null;
|
|
52
|
+
return output;
|
|
53
|
+
}
|
|
54
|
+
/** Gets a DOMRect-like object for the viewport's bounds. */
|
|
55
|
+
getViewportRect() {
|
|
56
|
+
// The document element's bounding rect rather than window scroll properties: they can disagree
|
|
57
|
+
// under pinch-zoom (https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4).
|
|
58
|
+
const scrollPosition = this.getViewportScrollPosition();
|
|
59
|
+
const { width, height } = this.getViewportSize();
|
|
60
|
+
return { top: scrollPosition.top, left: scrollPosition.left, bottom: scrollPosition.top + height, right: scrollPosition.left + width, height, width };
|
|
61
|
+
}
|
|
62
|
+
/** Gets the (top, left) scroll position of the viewport. */
|
|
63
|
+
getViewportScrollPosition() {
|
|
64
|
+
if (!isBrowser() || !this._document)
|
|
65
|
+
return { top: 0, left: 0 };
|
|
66
|
+
// Chrome and Firefox disagree on whether body or documentElement scrolls; the documentElement
|
|
67
|
+
// rect's negative top/left equals the scroll position in both.
|
|
68
|
+
const doc = this._document;
|
|
69
|
+
const win = this._getWindow();
|
|
70
|
+
const documentElement = doc.documentElement;
|
|
71
|
+
const documentRect = documentElement.getBoundingClientRect();
|
|
72
|
+
const top = -documentRect.top || doc.body?.scrollTop || win.scrollY || documentElement.scrollTop || 0;
|
|
73
|
+
const left = -documentRect.left || doc.body?.scrollLeft || win.scrollX || documentElement.scrollLeft || 0;
|
|
74
|
+
return { top, left };
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Stream that emits whenever the size of the viewport changes.
|
|
78
|
+
* @param throttleTime Time in milliseconds to throttle the stream.
|
|
79
|
+
*/
|
|
80
|
+
change(throttleTime = DEFAULT_RESIZE_TIME) {
|
|
81
|
+
return throttleTime > 0 ? auditTime(this._change, throttleTime) : this._change;
|
|
82
|
+
}
|
|
83
|
+
_getWindow() {
|
|
84
|
+
return this._document?.defaultView || window;
|
|
85
|
+
}
|
|
86
|
+
_updateViewportSize() {
|
|
87
|
+
const win = isBrowser() ? this._getWindow() : undefined;
|
|
88
|
+
this._viewportSize = win ? { width: win.innerWidth, height: win.innerHeight } : { width: 0, height: 0 };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const rulers = new WeakMap();
|
|
92
|
+
const serverKey = {};
|
|
93
|
+
/** The shared ViewportRuler of `doc` (Angular root service), created on first use. */
|
|
94
|
+
export function viewportRuler(doc) {
|
|
95
|
+
const key = doc ?? (typeof document === "object" && document ? document : serverKey);
|
|
96
|
+
let ruler = rulers.get(key);
|
|
97
|
+
if (!ruler)
|
|
98
|
+
rulers.set(key, (ruler = new ViewportRuler(doc)));
|
|
99
|
+
return ruler;
|
|
100
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Content, Slot } from "@rivetjs/runtime/jsx-runtime";
|
|
2
|
+
import type { ListRange } from "./virtual-scroll-strategy.js";
|
|
3
|
+
import type { VirtualScrollState } from "./state.js";
|
|
4
|
+
import { type GlobalDOMAttributes } from "@rivetjs/cdk/dom-props";
|
|
5
|
+
/** Global DOM events / attributes go to the viewport element. */
|
|
6
|
+
export interface CdkVirtualScrollViewportProps<T> extends GlobalDOMAttributes<HTMLDivElement> {
|
|
7
|
+
state: VirtualScrollState<T>;
|
|
8
|
+
class?: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Index of the first visible item (fixed strategy; Angular `scrolledIndexChange`). */
|
|
11
|
+
onScrolledIndexChange?: (index: number) => void;
|
|
12
|
+
/** Rendered range changes (Angular `renderedRangeStream`). */
|
|
13
|
+
onRenderedRangeChange?: (range: ListRange) => void;
|
|
14
|
+
/** Row identity for a row-template child (Angular `cdkVirtualForTrackBy`), absolute index. */
|
|
15
|
+
trackBy?: (index: number, item: T) => unknown;
|
|
16
|
+
/**
|
|
17
|
+
* A row template (Angular `<div *cdkVirtualFor>` directly in the viewport): rows render straight
|
|
18
|
+
* into the content wrapper. Or content holding a `<CdkVirtualForOf>` under a native element
|
|
19
|
+
* (`<ul><CdkVirtualForOf/></ul>`, `<table><tbody>…`): its own update region.
|
|
20
|
+
*/
|
|
21
|
+
children?: Slot<[item: () => T, context: CdkVirtualForOfContext]> | Content;
|
|
22
|
+
}
|
|
23
|
+
/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */
|
|
24
|
+
export declare function CdkVirtualScrollViewport<T>(props: CdkVirtualScrollViewportProps<T>): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
25
|
+
/** Row context (Angular `CdkVirtualForOfContext`). */
|
|
26
|
+
export interface CdkVirtualForOfContext {
|
|
27
|
+
/** Absolute index in the data. */
|
|
28
|
+
index: () => number;
|
|
29
|
+
count: () => number;
|
|
30
|
+
first: () => boolean;
|
|
31
|
+
last: () => boolean;
|
|
32
|
+
even: () => boolean;
|
|
33
|
+
odd: () => boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface CdkVirtualForOfProps<T> {
|
|
36
|
+
state: VirtualScrollState<T>;
|
|
37
|
+
/** Item identity (Angular `cdkVirtualForTrackBy`), called with the absolute index. Default: the item. */
|
|
38
|
+
trackBy?: (index: number, item: T) => unknown;
|
|
39
|
+
/** Row template (Angular `*cdkVirtualFor` template / `cdkVirtualForTemplate`). One root element per row. */
|
|
40
|
+
children: Slot<[item: () => T, context: CdkVirtualForOfContext]>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Renders the rendered range of `state.items` as keyed rows (reused across scrolls by identity). Place it
|
|
44
|
+
* under a native element (`<ul>`, `<tbody>`, `<div>`) so it gets its own update region; directly in the
|
|
45
|
+
* viewport, pass the row template as the viewport's child instead.
|
|
46
|
+
*/
|
|
47
|
+
export declare function CdkVirtualForOf<T>(props: CdkVirtualForOfProps<T>): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
48
|
+
/** An ancestor scroll container for viewports created with `scrollable: "element"` (Angular `cdkVirtualScrollingElement`). */
|
|
49
|
+
export declare function CdkVirtualScrollableElement(props: {
|
|
50
|
+
states: readonly VirtualScrollState<any>[];
|
|
51
|
+
class?: string;
|
|
52
|
+
id?: string;
|
|
53
|
+
children?: Content;
|
|
54
|
+
} & GlobalDOMAttributes<HTMLDivElement>): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Ported from Angular Components (src/cdk/scrolling/{virtual-scroll-viewport.html,virtual-for-of.ts,
|
|
2
|
+
// virtual-scrollable-element.ts,scrollable.ts}), MIT, © Google LLC.
|
|
3
|
+
// Rivet components: <CdkVirtualScrollViewport state> (viewport + content wrapper + spacer),
|
|
4
|
+
// <CdkVirtualForOf state> (keyed rows of the rendered range), <CdkVirtualScrollableElement> (an
|
|
5
|
+
// ancestor scroll container). State from `createVirtualScroll` is shared explicitly (children render
|
|
6
|
+
// before parents: no DI). Server: the first range is rendered; the browser engine
|
|
7
|
+
// (virtual-scroll-viewport.ts) starts on the first scroll / wheel / pointer / focus / key interaction.
|
|
8
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
9
|
+
import { For } from "@rivetjs/runtime/dom";
|
|
10
|
+
import { viewportInteract } from "./behaviour.js";
|
|
11
|
+
import { globalDOMProps } from "@rivetjs/cdk/dom-props";
|
|
12
|
+
import { isSlot, renderSlot } from "@rivetjs/runtime/slot";
|
|
13
|
+
/** Global DOM events the viewport handles itself (engine start); the user's handlers run after its own. */
|
|
14
|
+
const OWNED = ["onScroll", "onWheel", "onPointerDown"];
|
|
15
|
+
const SCROLLABLE_OWNED = ["onScroll"];
|
|
16
|
+
/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */
|
|
17
|
+
export function CdkVirtualScrollViewport(props) {
|
|
18
|
+
const { state, onScrolledIndexChange, onRenderedRangeChange, trackBy, children, onScroll, onWheel, onPointerDown } = props;
|
|
19
|
+
const callbacks = { onScrolledIndexChange, onRenderedRangeChange };
|
|
20
|
+
// A row template is a user render function `(item, context) => …`; plain content arrives as a compiler slot.
|
|
21
|
+
const rowTemplate = typeof children === "function" && !isSlot(children);
|
|
22
|
+
const horizontal = state.orientation === "horizontal";
|
|
23
|
+
const cls = "cdk-virtual-scroll-viewport" +
|
|
24
|
+
(state.scrollable === "self" ? " cdk-virtual-scrollable" : "") +
|
|
25
|
+
(horizontal ? " cdk-virtual-scroll-orientation-horizontal" : " cdk-virtual-scroll-orientation-vertical") +
|
|
26
|
+
(props.class ? " " + props.class : "");
|
|
27
|
+
// Read every prop up front: an element with a spread resumes as one binding over all its
|
|
28
|
+
// attributes, and reading `props` there would capture the whole props object (children included).
|
|
29
|
+
const dom = globalDOMProps(props, OWNED);
|
|
30
|
+
const label = props.label;
|
|
31
|
+
return (<div {...dom} id={state.id} class={cls} data-rv-virtual-viewport="" aria-label={label} onScroll={onScroll
|
|
32
|
+
? (event) => {
|
|
33
|
+
viewportInteract(state, event, callbacks);
|
|
34
|
+
onScroll(event);
|
|
35
|
+
}
|
|
36
|
+
: (event) => viewportInteract(state, event, callbacks)} onWheel={onWheel
|
|
37
|
+
? (event) => {
|
|
38
|
+
viewportInteract(state, event, callbacks);
|
|
39
|
+
onWheel(event);
|
|
40
|
+
}
|
|
41
|
+
: (event) => viewportInteract(state, event, callbacks)} onPointerDown={onPointerDown
|
|
42
|
+
? (event) => {
|
|
43
|
+
viewportInteract(state, event, callbacks);
|
|
44
|
+
onPointerDown(event);
|
|
45
|
+
}
|
|
46
|
+
: (event) => viewportInteract(state, event, callbacks)} onFocusIn={(event) => viewportInteract(state, event, callbacks)} onKeyDown={(event) => viewportInteract(state, event, callbacks)}>
|
|
47
|
+
<div class="cdk-virtual-scroll-content-wrapper" style={{ transform: state.transform() }}>
|
|
48
|
+
{/* The row-template For sits directly in the wrapper: its own update region (a For inside a
|
|
49
|
+
conditional gets none — queued compiler work); with content children it renders nothing. */}
|
|
50
|
+
{rowTemplate ? <template data-rv-vfor={state.id}></template> : null}
|
|
51
|
+
<For each={() => (rowTemplate ? state.items().slice(state.range().start, state.range().end) : [])} by={(item, i) => (trackBy ? trackBy(i + untrack(state.range).start, item) : item)}>
|
|
52
|
+
{(item, i) => children(item, rowContext(state, i))}
|
|
53
|
+
</For>
|
|
54
|
+
{rowTemplate ? <template data-rv-vfor-end=""></template> : renderSlot(children)}
|
|
55
|
+
</div>
|
|
56
|
+
<div class="cdk-virtual-scroll-spacer" style={{ width: horizontal ? `${state.totalSize()}px` : undefined, height: horizontal ? undefined : `${state.totalSize()}px` }}></div>
|
|
57
|
+
{state.scrollable === "window" ? (
|
|
58
|
+
// Window scrolling: a document listener (runtime boots at load, the chunk loads on the first page scroll).
|
|
59
|
+
<span hidden document:onScroll={(event) => viewportInteract(state, event, callbacks)}></span>) : null}
|
|
60
|
+
</div>);
|
|
61
|
+
}
|
|
62
|
+
/** Row context accessors for absolute row `i` of the rendered range. */
|
|
63
|
+
function rowContext(state, i) {
|
|
64
|
+
const index = () => state.range().start + i();
|
|
65
|
+
const count = () => state.items().length;
|
|
66
|
+
return {
|
|
67
|
+
index,
|
|
68
|
+
count,
|
|
69
|
+
first: () => index() === 0,
|
|
70
|
+
last: () => index() === count() - 1,
|
|
71
|
+
even: () => index() % 2 === 0,
|
|
72
|
+
odd: () => index() % 2 !== 0,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Renders the rendered range of `state.items` as keyed rows (reused across scrolls by identity). Place it
|
|
77
|
+
* under a native element (`<ul>`, `<tbody>`, `<div>`) so it gets its own update region; directly in the
|
|
78
|
+
* viewport, pass the row template as the viewport's child instead.
|
|
79
|
+
*/
|
|
80
|
+
export function CdkVirtualForOf(props) {
|
|
81
|
+
const { state, trackBy, children: render } = props;
|
|
82
|
+
return (<>
|
|
83
|
+
<template data-rv-vfor={state.id}></template>
|
|
84
|
+
<For each={() => state.items().slice(state.range().start, state.range().end)} by={(item, i) => (trackBy ? trackBy(i + untrack(state.range).start, item) : item)}>
|
|
85
|
+
{(item, i) => render(item, rowContext(state, i))}
|
|
86
|
+
</For>
|
|
87
|
+
<template data-rv-vfor-end=""></template>
|
|
88
|
+
</>);
|
|
89
|
+
}
|
|
90
|
+
/** An ancestor scroll container for viewports created with `scrollable: "element"` (Angular `cdkVirtualScrollingElement`). */
|
|
91
|
+
export function CdkVirtualScrollableElement(props) {
|
|
92
|
+
const { states, onScroll } = props;
|
|
93
|
+
// Read every prop up front: an element with a spread resumes as one binding over all its
|
|
94
|
+
// attributes, and reading `props` there would capture the whole props object (children included).
|
|
95
|
+
const dom = globalDOMProps(props, SCROLLABLE_OWNED);
|
|
96
|
+
const id = props.id, className = "cdk-virtual-scrollable" + (props.class ? " " + props.class : "");
|
|
97
|
+
return (<div {...dom} id={id} class={className} data-rv-virtual-scrollable="" onScroll={onScroll
|
|
98
|
+
? (event) => {
|
|
99
|
+
states.forEach((state) => viewportInteract(state, event));
|
|
100
|
+
onScroll(event);
|
|
101
|
+
}
|
|
102
|
+
: (event) => states.forEach((state) => viewportInteract(state, event))}>
|
|
103
|
+
{props.children}
|
|
104
|
+
</div>);
|
|
105
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Stream } from "./emitter.js";
|
|
2
|
+
/** A range of indices: `start` inclusive, `end` exclusive (Angular `ListRange`). */
|
|
3
|
+
export interface ListRange {
|
|
4
|
+
start: number;
|
|
5
|
+
end: number;
|
|
6
|
+
}
|
|
7
|
+
/** The viewport API a strategy drives. */
|
|
8
|
+
export interface VirtualScrollStrategyViewport {
|
|
9
|
+
getDataLength(): number;
|
|
10
|
+
getViewportSize(): number;
|
|
11
|
+
getRenderedRange(): ListRange;
|
|
12
|
+
setRenderedRange(range: ListRange): void;
|
|
13
|
+
setTotalContentSize(size: number): void;
|
|
14
|
+
setRenderedContentOffset(offset: number, to?: "to-start" | "to-end"): void;
|
|
15
|
+
getOffsetToRenderedContentStart(): number | null;
|
|
16
|
+
measureScrollOffset(from?: "top" | "left" | "right" | "bottom" | "start" | "end"): number;
|
|
17
|
+
measureRenderedContentSize(): number;
|
|
18
|
+
measureRangeSize(range: ListRange): number;
|
|
19
|
+
scrollToOffset(offset: number, behavior?: ScrollBehavior): void;
|
|
20
|
+
}
|
|
21
|
+
/** A strategy that dictates which items should be rendered in the viewport. */
|
|
22
|
+
export interface VirtualScrollStrategy {
|
|
23
|
+
/** Emits when the index of the first element visible in the viewport changes. */
|
|
24
|
+
scrolledIndexChange: Stream<number>;
|
|
25
|
+
/** Attaches this scroll strategy to a viewport. */
|
|
26
|
+
attach(viewport: VirtualScrollStrategyViewport): void;
|
|
27
|
+
/** Detaches this scroll strategy from the currently attached viewport. */
|
|
28
|
+
detach(): void;
|
|
29
|
+
/** Called when the viewport is scrolled (debounced using requestAnimationFrame). */
|
|
30
|
+
onContentScrolled(): void;
|
|
31
|
+
/** Called when the length of the data changes. */
|
|
32
|
+
onDataLengthChanged(): void;
|
|
33
|
+
/** Called when the range of items rendered in the DOM has changed. */
|
|
34
|
+
onContentRendered(): void;
|
|
35
|
+
/** Called when the offset of the rendered items changed. */
|
|
36
|
+
onRenderedOffsetChanged(): void;
|
|
37
|
+
/** Scroll to the offset for the given index. */
|
|
38
|
+
scrollToIndex(index: number, behavior: ScrollBehavior): void;
|
|
39
|
+
}
|
|
40
|
+
/** Checks if the given ranges are equal. */
|
|
41
|
+
export declare const rangesEqual: (r1: ListRange, r2: ListRange) => boolean;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type Stream } from "./emitter.js";
|
|
2
|
+
import { CdkVirtualScrollable, type ScrollEdge } from "./scrollable.js";
|
|
3
|
+
import { type VirtualScrollCallbacks, type VirtualScrollState } from "./state.js";
|
|
4
|
+
import { type ListRange, type VirtualScrollStrategy, type VirtualScrollStrategyViewport } from "./virtual-scroll-strategy.js";
|
|
5
|
+
/** The engine of a virtual scroll viewport element (Angular `CdkVirtualScrollViewport` instance). */
|
|
6
|
+
export declare class VirtualScrollViewport<T = unknown> extends CdkVirtualScrollable implements VirtualScrollStrategyViewport {
|
|
7
|
+
readonly state: VirtualScrollState<T>;
|
|
8
|
+
/** Updated by every viewport interaction (the engine may have been created by an API call first). */
|
|
9
|
+
callbacks: VirtualScrollCallbacks;
|
|
10
|
+
scrollable: CdkVirtualScrollable;
|
|
11
|
+
private _scrollStrategy;
|
|
12
|
+
private readonly _renderedRangeSubject;
|
|
13
|
+
/** Emits when the rendered range changes. */
|
|
14
|
+
readonly renderedRangeStream: Stream<ListRange>;
|
|
15
|
+
private readonly _renderedContentOffsetSubject;
|
|
16
|
+
/** Emits the offset from the start of the viewport to the start of the rendered data (px). */
|
|
17
|
+
readonly renderedContentOffset: Stream<number | null>;
|
|
18
|
+
private _totalContentSize;
|
|
19
|
+
private _renderedContentTransform;
|
|
20
|
+
private _renderedRange;
|
|
21
|
+
private _dataLength;
|
|
22
|
+
private _viewportSize;
|
|
23
|
+
private _renderedContentOffset;
|
|
24
|
+
private _renderedContentOffsetNeedsRewrite;
|
|
25
|
+
private _changeDetectionNeeded;
|
|
26
|
+
private _runAfterChangeDetection;
|
|
27
|
+
private _subscriptions;
|
|
28
|
+
private _disposeData;
|
|
29
|
+
private _isDestroyed;
|
|
30
|
+
private _attached;
|
|
31
|
+
/** Rivet: the strategy's latest scrolled index, and the last one `callbacks` got (see `deliverScrolledIndex`). */
|
|
32
|
+
private _scrolledIndex;
|
|
33
|
+
private _deliveredIndex;
|
|
34
|
+
constructor(state: VirtualScrollState<T>, element: HTMLElement, callbacks?: VirtualScrollCallbacks);
|
|
35
|
+
get orientation(): "horizontal" | "vertical";
|
|
36
|
+
get appendOnly(): boolean;
|
|
37
|
+
/** The strategy (Angular: the `itemSize` / `autosize` directive's `_scrollStrategy`). */
|
|
38
|
+
get scrollStrategy(): VirtualScrollStrategy;
|
|
39
|
+
/**
|
|
40
|
+
* Rivet: hand `onScrolledIndexChange` the latest scrolled index it has not seen. Angular binds the output with the
|
|
41
|
+
* component; here the callbacks arrive with the first viewport event, and an API call (`scrollToIndex` from a
|
|
42
|
+
* button) may create the engine before that: its scroll's index would otherwise be lost (scrolledIndexChange is
|
|
43
|
+
* distinct, so it never fires again for that index).
|
|
44
|
+
*/
|
|
45
|
+
deliverScrolledIndex(): void;
|
|
46
|
+
/** Emits when the index of the first element visible in the viewport changes. */
|
|
47
|
+
get scrolledIndexChange(): Stream<number>;
|
|
48
|
+
/** Measure, attach the strategy, follow scroll and data changes (Angular ngOnInit + attach(forOf)). */
|
|
49
|
+
init(): this;
|
|
50
|
+
destroy(): void;
|
|
51
|
+
getDataLength(): number;
|
|
52
|
+
getViewportSize(): number;
|
|
53
|
+
getRenderedRange(): ListRange;
|
|
54
|
+
measureBoundingClientRectWithScrollOffset(from: "left" | "top" | "right" | "bottom"): number;
|
|
55
|
+
/** Sets the total size of all content (px), including content that is not rendered. */
|
|
56
|
+
setTotalContentSize(size: number): void;
|
|
57
|
+
/** Sets the currently rendered range of indices. */
|
|
58
|
+
setRenderedRange(range: ListRange): void;
|
|
59
|
+
/** Offset from the start of the viewport to the start of the rendered data (px). */
|
|
60
|
+
getOffsetToRenderedContentStart(): number | null;
|
|
61
|
+
/** Sets the offset from the start of the viewport to the start or end of the rendered data (px). */
|
|
62
|
+
setRenderedContentOffset(offset: number, to?: "to-start" | "to-end"): void;
|
|
63
|
+
/** Scrolls to `offset` from the start (a fictional `scrollRight` in horizontal RTL). */
|
|
64
|
+
scrollToOffset(offset: number, behavior?: ScrollBehavior): void;
|
|
65
|
+
/** Scrolls to the offset of the given index. */
|
|
66
|
+
scrollToIndex(index: number, behavior?: ScrollBehavior): void;
|
|
67
|
+
/** Scroll offset from the start of the scrollable (default `top` / `start`), minus the viewport offset. */
|
|
68
|
+
measureScrollOffset(from?: ScrollEdge): number;
|
|
69
|
+
/** Offset of the viewport from the scrolling container. */
|
|
70
|
+
measureViewportOffset(from?: ScrollEdge): number;
|
|
71
|
+
/** The content wrapper element. */
|
|
72
|
+
get contentWrapper(): HTMLElement;
|
|
73
|
+
/** Measure the combined size of all rendered items. */
|
|
74
|
+
measureRenderedContentSize(): number;
|
|
75
|
+
/** Root nodes of rendered rows, grouped per row (CdkVirtualForOf views). */
|
|
76
|
+
private _rowNodes;
|
|
77
|
+
/** Combined size of the given (rendered) range. Throws if part of it is not rendered. */
|
|
78
|
+
measureRangeSize(range: ListRange): number;
|
|
79
|
+
/** Update the viewport dimensions and re-render. */
|
|
80
|
+
checkViewportSize(): void;
|
|
81
|
+
private _measureViewportSize;
|
|
82
|
+
/** Queue up a render pass (Angular change detection). */
|
|
83
|
+
private _markChangeDetectionNeeded;
|
|
84
|
+
/** Apply the transform, then run the after-render callbacks. */
|
|
85
|
+
private _doChangeDetection;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The engine for `state` (created and attached on first call, in the browser). `element` defaults to
|
|
89
|
+
* the viewport element (`id = state.id`).
|
|
90
|
+
*/
|
|
91
|
+
export declare function virtualScrollViewport<T>(state: VirtualScrollState<T>, element?: HTMLElement | null, callbacks?: VirtualScrollCallbacks): VirtualScrollViewport<T> | undefined;
|
|
92
|
+
/** Scroll `state`'s viewport to `index` (Angular `viewport.scrollToIndex`). */
|
|
93
|
+
export declare function scrollToIndex<T>(state: VirtualScrollState<T>, index: number, behavior?: ScrollBehavior): void;
|
|
94
|
+
/** Scroll `state`'s viewport to `offset` px from the start (Angular `viewport.scrollToOffset`). */
|
|
95
|
+
export declare function scrollToOffset<T>(state: VirtualScrollState<T>, offset: number, behavior?: ScrollBehavior): void;
|