@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +109 -0
- package/_adapters/selection.js +685 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +374 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +217 -0
- package/collections/components.jsx +537 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +9 -0
- package/collections/nodes.js +81 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +5 -0
- package/collections/server-dev.js +16 -0
- package/collections/server-off.d.ts +5 -0
- package/collections/server-off.js +7 -0
- package/collections/server-on.d.ts +28 -0
- package/collections/server-on.jsx +76 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +194 -0
- package/drag-drop/directives/drag.js +522 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +126 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +133 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +242 -0
- package/grid-list/behaviour.js +598 -0
- package/grid-list/index.d.ts +202 -0
- package/grid-list/index.jsx +685 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +538 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +53 -0
- package/interactions/utils.js +252 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +492 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +596 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +671 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +47 -0
- package/portal/index.jsx +76 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +139 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +76 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +535 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +624 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +159 -0
- package/state/menu.js +184 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +982 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +815 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +71 -0
- package/utils/data-attrs.jsx +193 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +57 -0
- package/utils/index.js +257 -0
- package/utils/links.d.ts +87 -0
- package/utils/links.jsx +152 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +98 -0
- package/virtualizer/behaviour.js +315 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +2 -0
- package/virtualizer/index.jsx +4 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +508 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +79 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +62 -0
- package/virtualizer/virtualizer.jsx +88 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
package/utils/live.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Whether `object[key]` is an own getter (a live prop; a proxied spread source reports getters too). */
|
|
2
|
+
export declare function isLive(object: object | null | undefined, key: PropertyKey): boolean;
|
|
3
|
+
/** Whether any own enumerable key of `object` is a getter (live props present). */
|
|
4
|
+
export declare function hasLive(object: object | null | undefined): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* A narrow view of `props` for the `keys` a part reads in bindings / handlers: a plain object of the present values
|
|
7
|
+
* when none of them is live (static path: a small data copy, serializes like locals), else a `splitProps` part that
|
|
8
|
+
* forwards every key to `props` unread (live path; on a resumed page it encodes as forwards, not values). Read
|
|
9
|
+
* `view.key` inside the binding.
|
|
10
|
+
*/
|
|
11
|
+
export declare function liveView<T extends object, const K extends readonly (keyof T)[]>(props: T, keys: K): Pick<T, K[number]>;
|
|
12
|
+
/**
|
|
13
|
+
* A `MaybeAccessor` slot from a prop (cdk state factories / behaviour options read `read(v)` at use time): an
|
|
14
|
+
* accessor `() => read(view[key])` when `view[key]` is live, else the value itself (static path unchanged). Pass a
|
|
15
|
+
* `liveView` (narrow), not the whole props object: the accessor captures it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function liveAt<T extends object, K extends keyof T>(view: T, key: K): T[K] | (() => Unwrap<T[K]>);
|
|
18
|
+
/**
|
|
19
|
+
* A string `class` attribute of a live `class` prop (parts that take a plain `class`, not a render-prop one): an
|
|
20
|
+
* accessor over a narrow view (a function `class` is called), default `defaultClassName`. Goes into the element's
|
|
21
|
+
* spread bag (a function attribute value outside a spread is not a server binding).
|
|
22
|
+
*/
|
|
23
|
+
export declare function liveClass(props: object, defaultClassName: string): () => string;
|
|
24
|
+
type Unwrap<V> = V extends () => infer R ? R : V;
|
|
25
|
+
/**
|
|
26
|
+
* The accessor boundary of a part (cdk accessor rule: state-like props are `T | (() => T)`, read with `read(v)` in
|
|
27
|
+
* bindings / at event time): every live key of `keys` becomes an accessor data value (`liveAt`), so the part's
|
|
28
|
+
* copies (`{ ...props }`, destructures, state factories, behaviour bags) carry the accessor instead of a snapshot.
|
|
29
|
+
* `controlled` keys (a controlled value: `isSelected`, `value`, `isOpen`, …) become accessors only when defined at
|
|
30
|
+
* creation — an `undefined` one stays uncontrolled (React: switching between controlled and uncontrolled is
|
|
31
|
+
* unsupported); a controlled key holding a two-way Signal passes the Signal itself (stays two-way). Other keys forward unread. No live key → `props` itself (static path, 0 cost).
|
|
32
|
+
*/
|
|
33
|
+
export declare function liveOptions<T extends object>(props: T, keys: readonly (keyof T)[], controlled?: readonly (keyof T)[]): T;
|
|
34
|
+
/**
|
|
35
|
+
* A controlled collection-selection prop (`selectedKeys` / `expandedKeys`: `"all"` or an iterable of keys) for a
|
|
36
|
+
* selection state: when live and defined at creation, an accessor that reads it and normalises it to a `Set` (or
|
|
37
|
+
* `"all"`) — the state treats a plain function as a controlled, never-written value; a forwarded two-way Signal, an
|
|
38
|
+
* `undefined` (uncontrolled) or a static value is returned as is (static path unchanged).
|
|
39
|
+
*/
|
|
40
|
+
export declare function liveKeys<T extends object, K extends keyof T>(props: T, key: K): T[K];
|
|
41
|
+
/**
|
|
42
|
+
* `props` without `keys` (a rest destructure `const { a, ...rest } = props`, which reads every getter): a `splitProps`
|
|
43
|
+
* rest part when a prop is live (forwarding unread), else a plain copy (static path).
|
|
44
|
+
*/
|
|
45
|
+
export declare function liveOmit<T extends object, const K extends readonly (keyof T)[]>(props: T, keys: K): Omit<T, K[number]>;
|
|
46
|
+
/** `removeDataAttributes` (RAC) for live props: the `data-*` keys split off unread when a prop is live. */
|
|
47
|
+
export declare function liveWithoutData<T extends object>(props: T): T;
|
|
48
|
+
/** The current values of `keys`, read untracked (read-once props in a part body: no region dependency on a resumed page). */
|
|
49
|
+
export declare function readOnce<T extends object, const K extends readonly (keyof T)[]>(props: T, keys: K): Pick<T, K[number]>;
|
|
50
|
+
/** `{ ...base, ...extra }` without reading `base`'s getters when a prop is live (runtime `mergeProps`: a defined `extra`
|
|
51
|
+
* value wins), else the plain spread (static path). */
|
|
52
|
+
export declare function liveAssign<T extends object, U extends object>(base: T, extra: U): T & U;
|
|
53
|
+
export {};
|
package/utils/live.jsx
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// Rivet-only (no React Aria counterpart): live component props in the cdk (live props P5,
|
|
2
|
+
// docs/design/specs/2026-10-07-live-props-design.md §8). The compiler passes a prop whose value reads state as an own
|
|
3
|
+
// getter (`<Button aria-pressed={on()}>` → `{ get "aria-pressed"() { return on(); } }`); a static prop is a data
|
|
4
|
+
// property. A cdk part runs once, so it must not copy a getter's value at creation: these helpers keep getters
|
|
5
|
+
// unread (runtime `splitProps` forwards) and read them where React re-renders — inside bindings and at event time.
|
|
6
|
+
// Static props (no getter, every server render) take the copy path: same objects, same cost as before.
|
|
7
|
+
// A `.tsx` module (resume-compiled): the accessor `liveAt` returns is a resumable symbol over its narrow view.
|
|
8
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
9
|
+
import { mergeProps as mergeLive, splitProps } from "@rivetjs/runtime/props";
|
|
10
|
+
/** Whether `object[key]` is an own getter (a live prop; a proxied spread source reports getters too). */
|
|
11
|
+
export function isLive(object, key) {
|
|
12
|
+
return !!object && Object.getOwnPropertyDescriptor(object, key)?.get !== undefined;
|
|
13
|
+
}
|
|
14
|
+
/** Whether any own enumerable key of `object` is a getter (live props present). */
|
|
15
|
+
export function hasLive(object) {
|
|
16
|
+
if (!object)
|
|
17
|
+
return false;
|
|
18
|
+
const keys = Object.keys(object);
|
|
19
|
+
for (let i = 0; i < keys.length; i++)
|
|
20
|
+
if (Object.getOwnPropertyDescriptor(object, keys[i])?.get !== undefined)
|
|
21
|
+
return true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A narrow view of `props` for the `keys` a part reads in bindings / handlers: a plain object of the present values
|
|
26
|
+
* when none of them is live (static path: a small data copy, serializes like locals), else a `splitProps` part that
|
|
27
|
+
* forwards every key to `props` unread (live path; on a resumed page it encodes as forwards, not values). Read
|
|
28
|
+
* `view.key` inside the binding.
|
|
29
|
+
*/
|
|
30
|
+
export function liveView(props, keys) {
|
|
31
|
+
const out = {};
|
|
32
|
+
for (let i = 0; i < keys.length; i++) {
|
|
33
|
+
const key = keys[i];
|
|
34
|
+
const desc = Object.getOwnPropertyDescriptor(props, key);
|
|
35
|
+
if (desc === undefined)
|
|
36
|
+
continue;
|
|
37
|
+
if (desc.get !== undefined)
|
|
38
|
+
return splitProps(props, keys)[0];
|
|
39
|
+
out[key] = desc.value;
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A `MaybeAccessor` slot from a prop (cdk state factories / behaviour options read `read(v)` at use time): an
|
|
45
|
+
* accessor `() => read(view[key])` when `view[key]` is live, else the value itself (static path unchanged). Pass a
|
|
46
|
+
* `liveView` (narrow), not the whole props object: the accessor captures it.
|
|
47
|
+
*/
|
|
48
|
+
export function liveAt(view, key) {
|
|
49
|
+
if (Object.getOwnPropertyDescriptor(view, key)?.get === undefined)
|
|
50
|
+
return view[key];
|
|
51
|
+
return () => {
|
|
52
|
+
const value = view[key];
|
|
53
|
+
return (typeof value === "function" ? value() : value);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A string `class` attribute of a live `class` prop (parts that take a plain `class`, not a render-prop one): an
|
|
58
|
+
* accessor over a narrow view (a function `class` is called), default `defaultClassName`. Goes into the element's
|
|
59
|
+
* spread bag (a function attribute value outside a spread is not a server binding).
|
|
60
|
+
*/
|
|
61
|
+
export function liveClass(props, defaultClassName) {
|
|
62
|
+
const view = liveView(props, ["class"]);
|
|
63
|
+
return () => {
|
|
64
|
+
const value = view.class;
|
|
65
|
+
return (typeof value === "function" ? value() : value) ?? defaultClassName;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const isSignal = (v) => typeof v === "function" && typeof v.set === "function";
|
|
69
|
+
/**
|
|
70
|
+
* The accessor boundary of a part (cdk accessor rule: state-like props are `T | (() => T)`, read with `read(v)` in
|
|
71
|
+
* bindings / at event time): every live key of `keys` becomes an accessor data value (`liveAt`), so the part's
|
|
72
|
+
* copies (`{ ...props }`, destructures, state factories, behaviour bags) carry the accessor instead of a snapshot.
|
|
73
|
+
* `controlled` keys (a controlled value: `isSelected`, `value`, `isOpen`, …) become accessors only when defined at
|
|
74
|
+
* creation — an `undefined` one stays uncontrolled (React: switching between controlled and uncontrolled is
|
|
75
|
+
* unsupported); a controlled key holding a two-way Signal passes the Signal itself (stays two-way). Other keys forward unread. No live key → `props` itself (static path, 0 cost).
|
|
76
|
+
*/
|
|
77
|
+
export function liveOptions(props, keys, controlled = []) {
|
|
78
|
+
let over;
|
|
79
|
+
let view;
|
|
80
|
+
// `keys` then `controlled` by index: the joined list is built only for the live view (static path: no array).
|
|
81
|
+
const n = keys.length, total = n + controlled.length;
|
|
82
|
+
for (let i = 0; i < total; i++) {
|
|
83
|
+
const key = i < n ? keys[i] : controlled[i - n];
|
|
84
|
+
if (!isLive(props, key))
|
|
85
|
+
continue;
|
|
86
|
+
if (i >= n) {
|
|
87
|
+
const now = untrack(() => props[key]);
|
|
88
|
+
if (now === undefined)
|
|
89
|
+
continue;
|
|
90
|
+
// A forwarded two-way Signal (`isSelected={sig}` through a wrapper's getter) stays two-way: pass the Signal itself.
|
|
91
|
+
if (isSignal(now)) {
|
|
92
|
+
(over ??= {})[key] = now;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
view ??= splitProps(props, (controlled.length ? [...keys, ...controlled] : keys))[0];
|
|
97
|
+
(over ??= {})[key] = liveAt(view, key);
|
|
98
|
+
}
|
|
99
|
+
return over ? mergeLive(props, over) : props;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* A controlled collection-selection prop (`selectedKeys` / `expandedKeys`: `"all"` or an iterable of keys) for a
|
|
103
|
+
* selection state: when live and defined at creation, an accessor that reads it and normalises it to a `Set` (or
|
|
104
|
+
* `"all"`) — the state treats a plain function as a controlled, never-written value; a forwarded two-way Signal, an
|
|
105
|
+
* `undefined` (uncontrolled) or a static value is returned as is (static path unchanged).
|
|
106
|
+
*/
|
|
107
|
+
export function liveKeys(props, key) {
|
|
108
|
+
if (!isLive(props, key))
|
|
109
|
+
return props[key];
|
|
110
|
+
const now = untrack(() => props[key]);
|
|
111
|
+
if (now == null || isSignal(now))
|
|
112
|
+
return now;
|
|
113
|
+
const view = splitProps(props, [key])[0];
|
|
114
|
+
return (() => {
|
|
115
|
+
const value = view[key];
|
|
116
|
+
return value === "all" || value instanceof Set ? value : new Set(value);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* `props` without `keys` (a rest destructure `const { a, ...rest } = props`, which reads every getter): a `splitProps`
|
|
121
|
+
* rest part when a prop is live (forwarding unread), else a plain copy (static path).
|
|
122
|
+
*/
|
|
123
|
+
export function liveOmit(props, keys) {
|
|
124
|
+
if (hasLive(props))
|
|
125
|
+
return splitProps(props, keys)[1];
|
|
126
|
+
const out = {};
|
|
127
|
+
for (const key in props)
|
|
128
|
+
if (!keys.includes(key))
|
|
129
|
+
out[key] = props[key];
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
/** `removeDataAttributes` (RAC) for live props: the `data-*` keys split off unread when a prop is live. */
|
|
133
|
+
export function liveWithoutData(props) {
|
|
134
|
+
if (hasLive(props)) {
|
|
135
|
+
const data = [];
|
|
136
|
+
for (const key in props)
|
|
137
|
+
if (key.startsWith("data-"))
|
|
138
|
+
data.push(key);
|
|
139
|
+
return splitProps(props, data)[1];
|
|
140
|
+
}
|
|
141
|
+
// Static path: stop at the first `data-*` key (no key list).
|
|
142
|
+
let found = false;
|
|
143
|
+
for (const key in props)
|
|
144
|
+
if (key.startsWith("data-")) {
|
|
145
|
+
found = true;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
if (!found)
|
|
149
|
+
return { ...props };
|
|
150
|
+
const out = {};
|
|
151
|
+
for (const key in props)
|
|
152
|
+
if (!key.startsWith("data-"))
|
|
153
|
+
out[key] = props[key];
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
156
|
+
/** The current values of `keys`, read untracked (read-once props in a part body: no region dependency on a resumed page). */
|
|
157
|
+
export function readOnce(props, keys) {
|
|
158
|
+
return untrack(() => {
|
|
159
|
+
const out = {};
|
|
160
|
+
for (const key of keys)
|
|
161
|
+
out[key] = props[key];
|
|
162
|
+
return out;
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/** `{ ...base, ...extra }` without reading `base`'s getters when a prop is live (runtime `mergeProps`: a defined `extra`
|
|
166
|
+
* value wins), else the plain spread (static path). */
|
|
167
|
+
export function liveAssign(base, extra) {
|
|
168
|
+
return (hasLive(base) ? mergeLive(base, extra) : { ...base, ...extra });
|
|
169
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Collection } from "../collections/types.js";
|
|
2
|
+
type MaybeAccessor<T> = T | (() => T);
|
|
3
|
+
export interface LoadMoreSentinelProps {
|
|
4
|
+
/** The collection the sentinel trails; the observer is re-created whenever it changes. */
|
|
5
|
+
collection: MaybeAccessor<Collection<any> | null | undefined>;
|
|
6
|
+
/** Handler that is called when more items should be loaded, e.g. while scrolling near the bottom. */
|
|
7
|
+
onLoadMore?: () => any;
|
|
8
|
+
/**
|
|
9
|
+
* The amount of offset from the bottom of your scrollable region that should trigger load more.
|
|
10
|
+
* Uses a percentage value relative to the scroll body's client height. Load more is then
|
|
11
|
+
* triggered when your current scroll position's distance from the bottom of the currently loaded
|
|
12
|
+
* list of items is less than or equal to the provided value. (e.g. 1 = 100% of the scroll
|
|
13
|
+
* region's height).
|
|
14
|
+
*
|
|
15
|
+
* @default 1
|
|
16
|
+
*/
|
|
17
|
+
scrollOffset?: MaybeAccessor<number | undefined>;
|
|
18
|
+
/**
|
|
19
|
+
* The scroll direction that triggers load more. Use 'start' for reversed layouts where older
|
|
20
|
+
* content loads when scrolling toward the top.
|
|
21
|
+
*
|
|
22
|
+
* @default 'end'
|
|
23
|
+
*/
|
|
24
|
+
direction?: MaybeAccessor<"start" | "end" | undefined>;
|
|
25
|
+
}
|
|
26
|
+
/** Calls `props.onLoadMore` whenever the sentinel element `ref` scrolls within `scrollOffset` of its scroll parent's viewport. */
|
|
27
|
+
export declare function loadMoreSentinel(props: LoadMoreSentinelProps, ref: () => HTMLElement | null | undefined): void;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Ported from packages/react-aria/src/utils/useLoadMoreSentinel.ts, Apache-2.0, © Adobe.
|
|
2
|
+
// Rivet:
|
|
3
|
+
// - Name: `useLoadMoreSentinel` → `loadMoreSentinel(props, ref)` (no `use*` exports).
|
|
4
|
+
// - `.tsx` (no JSX): `.ts` modules are not server-rewritten, and this one calls `clientEffect`.
|
|
5
|
+
// - `useLayoutEffect(…, [collection, ref, scrollOffset, direction])` → `clientEffect` that tracks the
|
|
6
|
+
// same inputs: `ref` is an element accessor (`ref()` from `@rivetjs/runtime/dom`), `collection`,
|
|
7
|
+
// `scrollOffset` and `direction` a value or an accessor. Any change tears the observer down and sets up
|
|
8
|
+
// a new one, as upstream.
|
|
9
|
+
// - `useEffectEvent(triggerLoadMore)` → `props.onLoadMore` read when the observer fires (always the latest).
|
|
10
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
11
|
+
import { clientEffect } from "@rivetjs/runtime/dom";
|
|
12
|
+
import { getScrollParent } from "./dom.js";
|
|
13
|
+
const read = (value) => (typeof value === "function" ? value() : value);
|
|
14
|
+
/** Calls `props.onLoadMore` whenever the sentinel element `ref` scrolls within `scrollOffset` of its scroll parent's viewport. */
|
|
15
|
+
export function loadMoreSentinel(props, ref) {
|
|
16
|
+
const triggerLoadMore = (entries) => {
|
|
17
|
+
// Use "isIntersecting" over an equality check of 0 since it seems like there is cases where
|
|
18
|
+
// a intersection ratio of 0 can be reported when isIntersecting is actually true
|
|
19
|
+
for (const entry of entries) {
|
|
20
|
+
// Note that this will be called if the collection changes, even if onLoadMore was already called and is being processed.
|
|
21
|
+
// Up to user discretion as to how to handle these multiple onLoadMore calls
|
|
22
|
+
const onLoadMore = props.onLoadMore;
|
|
23
|
+
if (entry.isIntersecting && onLoadMore)
|
|
24
|
+
untrack(() => onLoadMore());
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
clientEffect(() => {
|
|
28
|
+
// Dependencies: collection, ref, scrollOffset, direction.
|
|
29
|
+
read(props.collection);
|
|
30
|
+
const element = ref();
|
|
31
|
+
const scrollOffset = read(props.scrollOffset) ?? 1;
|
|
32
|
+
const direction = read(props.direction) ?? "end";
|
|
33
|
+
let sentinelObserver = null;
|
|
34
|
+
if (element) {
|
|
35
|
+
// Tear down and set up a new IntersectionObserver when the collection changes so that we can properly trigger additional loadMores if there is room for more items
|
|
36
|
+
// Need to do this tear down and set up since using a large rootMargin will mean the observer's callback isn't called even when scrolling the item into view beause its visibility hasn't actually changed
|
|
37
|
+
// https://codesandbox.io/p/sandbox/magical-swanson-dhgp89?file=%2Fsrc%2FApp.js%3A21%2C21
|
|
38
|
+
const margin = 100 * scrollOffset;
|
|
39
|
+
// For direction='start', right/left margins have no affect for vertical scroll containers. We are not supporting reverse horizontal scroll containers for now.
|
|
40
|
+
const rootMargin = direction === "start" ? `${margin}% 0px 0px 0px` : `0px ${margin}% ${margin}% ${margin}%`;
|
|
41
|
+
sentinelObserver = new IntersectionObserver(triggerLoadMore, {
|
|
42
|
+
root: getScrollParent(element),
|
|
43
|
+
rootMargin,
|
|
44
|
+
});
|
|
45
|
+
sentinelObserver.observe(element);
|
|
46
|
+
}
|
|
47
|
+
return () => {
|
|
48
|
+
if (sentinelObserver)
|
|
49
|
+
sentinelObserver.disconnect();
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Spring (visualDuration, bounce: Motion's parameters, mass 1) → `linear()` points + settling time. */
|
|
2
|
+
export declare function springCurve(visualDuration: number, bounce: number): readonly [easing: string, duration: string];
|
|
3
|
+
/** Apply the motion token read from `element` (call once per open, element in the document). */
|
|
4
|
+
export declare function applyMotionToken(element: HTMLElement): void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Motion token (motion spec D17): `--rv-motion-spring: <visualDuration s> <bounce>` (e.g. `0.3 0.2`) on an overlay or an
|
|
2
|
+
// ancestor switches its enter / exit animations to a spring: CSS `linear()` easing + the spring's settling time, set
|
|
3
|
+
// inline (beats the theme's classes). Read once per open; unset (the default) or reduced motion = no change. No JS
|
|
4
|
+
// animation engine: the overlay's own CSS keyframes / transitions run on the spring curve.
|
|
5
|
+
const curves = new Map();
|
|
6
|
+
/** Spring (visualDuration, bounce: Motion's parameters, mass 1) → `linear()` points + settling time. */
|
|
7
|
+
export function springCurve(visualDuration, bounce) {
|
|
8
|
+
const k = ((2 * Math.PI) / (visualDuration * 1.2)) ** 2;
|
|
9
|
+
const w = Math.sqrt(k);
|
|
10
|
+
const zeta = 1 - Math.min(Math.max(bounce, 0), 1);
|
|
11
|
+
const x = zeta < 1
|
|
12
|
+
? (t) => {
|
|
13
|
+
const wd = w * Math.sqrt(1 - zeta * zeta);
|
|
14
|
+
return 1 - Math.exp(-zeta * w * t) * (Math.cos(wd * t) + ((zeta * w) / wd) * Math.sin(wd * t));
|
|
15
|
+
}
|
|
16
|
+
: (t) => 1 - Math.exp(-w * t) * (1 + w * t);
|
|
17
|
+
// Settled: within 0.1 % of the target for the rest of the curve (capped at 2 s).
|
|
18
|
+
let end = 2;
|
|
19
|
+
for (let t = 2; t > 0; t -= 0.01)
|
|
20
|
+
if (Math.abs(1 - x(t)) > 0.001)
|
|
21
|
+
break;
|
|
22
|
+
else
|
|
23
|
+
end = t;
|
|
24
|
+
const points = [];
|
|
25
|
+
for (let i = 0; i <= 40; i++)
|
|
26
|
+
points.push(String(Math.round(x((end * i) / 40) * 1000) / 1000));
|
|
27
|
+
points[40] = "1";
|
|
28
|
+
return [`linear(${points.join(",")})`, Math.round(end * 1000) + "ms"];
|
|
29
|
+
}
|
|
30
|
+
/** Apply the motion token read from `element` (call once per open, element in the document). */
|
|
31
|
+
export function applyMotionToken(element) {
|
|
32
|
+
const token = getComputedStyle(element).getPropertyValue("--rv-motion-spring").trim();
|
|
33
|
+
if (!token || matchMedia("(prefers-reduced-motion: reduce)").matches)
|
|
34
|
+
return;
|
|
35
|
+
let curve = curves.get(token);
|
|
36
|
+
if (curve === undefined) {
|
|
37
|
+
const [duration, bounce] = token.split(/\s+/).map(Number);
|
|
38
|
+
curve = duration > 0 ? springCurve(duration, bounce || 0) : null;
|
|
39
|
+
curves.set(token, curve);
|
|
40
|
+
}
|
|
41
|
+
if (!curve)
|
|
42
|
+
return;
|
|
43
|
+
const style = element.style;
|
|
44
|
+
style.setProperty("animation-timing-function", curve[0]);
|
|
45
|
+
style.setProperty("animation-duration", curve[1]);
|
|
46
|
+
style.setProperty("transition-timing-function", curve[0]);
|
|
47
|
+
style.setProperty("transition-duration", curve[1]);
|
|
48
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { JSX } from "@rivetjs/runtime/jsx-runtime";
|
|
2
|
+
export type DOMRenderFunction<E extends keyof JSX.IntrinsicElements, T> = (props: JSX.IntrinsicElements[E], renderProps: T) => JSX.Element;
|
|
3
|
+
export interface DOMRenderProps<E extends keyof JSX.IntrinsicElements, T> {
|
|
4
|
+
/** Overrides the default DOM element with a custom render function; spread the received props onto the element you render. */
|
|
5
|
+
render?: DOMRenderFunction<E, T>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The part's attributes go to `render` when given, else to the default element (`fallback`).
|
|
9
|
+
* Rivet parts do NOT use this with a JSX `fallback` arrow: a compiled element in a callback loses the part's
|
|
10
|
+
* resumable bindings (reactive `children`, adopted server nodes). Parts write `if (render) return render(attrs, rp);`
|
|
11
|
+
* before their compiled element instead; this stays for non-JSX fallbacks and as the documented contract.
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderElement<E extends keyof JSX.IntrinsicElements, T>(render: DOMRenderFunction<E, T> | undefined, props: JSX.IntrinsicElements[E], renderProps: T, fallback: (props: JSX.IntrinsicElements[E]) => JSX.Element): JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Client/SSR fresh-render only (a new arrow in a `.ts` module is not resumable): used only on the `render` path, which never
|
|
16
|
+
* adopts server nodes. `children` for a part's attributes object: lazy JSX content is resolved once; a user function is reactive
|
|
17
|
+
* content, so it stays an accessor (the element's spread re-renders the content when its reads change).
|
|
18
|
+
*/
|
|
19
|
+
export declare function slotChildren<T>(children: T | (() => T)): unknown;
|
package/utils/render.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { isSlot, renderSlot } from "@rivetjs/runtime/slot";
|
|
2
|
+
/**
|
|
3
|
+
* The part's attributes go to `render` when given, else to the default element (`fallback`).
|
|
4
|
+
* Rivet parts do NOT use this with a JSX `fallback` arrow: a compiled element in a callback loses the part's
|
|
5
|
+
* resumable bindings (reactive `children`, adopted server nodes). Parts write `if (render) return render(attrs, rp);`
|
|
6
|
+
* before their compiled element instead; this stays for non-JSX fallbacks and as the documented contract.
|
|
7
|
+
*/
|
|
8
|
+
export function renderElement(render, props, renderProps, fallback) {
|
|
9
|
+
return render ? render(props, renderProps) : fallback(props);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Client/SSR fresh-render only (a new arrow in a `.ts` module is not resumable): used only on the `render` path, which never
|
|
13
|
+
* adopts server nodes. `children` for a part's attributes object: lazy JSX content is resolved once; a user function is reactive
|
|
14
|
+
* content, so it stays an accessor (the element's spread re-renders the content when its reads change).
|
|
15
|
+
*/
|
|
16
|
+
export function slotChildren(children) {
|
|
17
|
+
return typeof children === "function" && !isSlot(children) ? () => renderSlot(children) : renderSlot(children);
|
|
18
|
+
}
|
package/utils/types.d.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { Content } from "@rivetjs/runtime/jsx-runtime";
|
|
2
|
+
import type { RivetKeyboardEvent } from "../interactions/keyboard.jsx";
|
|
3
|
+
import type { ValidationResult } from "../state/form-validation.js";
|
|
4
|
+
export type { PressEvent, PressEvents, PointerType } from "../interactions/press.jsx";
|
|
5
|
+
export type { HoverEvent, HoverEvents } from "../interactions/hover.jsx";
|
|
6
|
+
export type { RivetKeyboardEvent as KeyboardEvent } from "../interactions/keyboard.jsx";
|
|
7
|
+
export type { Key, Selection, SelectionMode, SelectionBehavior, FocusStrategy, DisabledBehavior, Orientation, Direction, LoadingState, SortDescriptor, SortDirection, } from "../collections/types.js";
|
|
8
|
+
export type { Href, RouterOptions, LinkDOMProps } from "./links.jsx";
|
|
9
|
+
export type { ValidationResult, ValidationErrors, ValidationFunction, ValidationBehavior } from "../state/form-validation.js";
|
|
10
|
+
export type { GlobalDOMAttributes, GlobalDOMEvents } from "./dom-props.js";
|
|
11
|
+
export interface KeyboardEvents {
|
|
12
|
+
/** Handler that is called when a key is pressed. */
|
|
13
|
+
onKeyDown?: (e: RivetKeyboardEvent) => void;
|
|
14
|
+
/** Handler that is called when a key is released. */
|
|
15
|
+
onKeyUp?: (e: RivetKeyboardEvent) => void;
|
|
16
|
+
}
|
|
17
|
+
export interface FocusEvents<Target extends Element = Element> {
|
|
18
|
+
/** Handler that is called when the element receives focus. */
|
|
19
|
+
onFocus?: (e: FocusEvent & {
|
|
20
|
+
currentTarget: Target;
|
|
21
|
+
}) => void;
|
|
22
|
+
/** Handler that is called when the element loses focus. */
|
|
23
|
+
onBlur?: (e: FocusEvent & {
|
|
24
|
+
currentTarget: Target;
|
|
25
|
+
}) => void;
|
|
26
|
+
/** Handler that is called when the element's focus status changes. */
|
|
27
|
+
onFocusChange?: (isFocused: boolean) => void;
|
|
28
|
+
}
|
|
29
|
+
export interface FocusableProps<Target extends Element = Element> extends FocusEvents<Target>, KeyboardEvents {
|
|
30
|
+
/** Whether the element should receive focus on render. */
|
|
31
|
+
autoFocus?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface AriaLabelingProps {
|
|
34
|
+
/** Defines a string value that labels the current element. */
|
|
35
|
+
"aria-label"?: string;
|
|
36
|
+
/** Identifies the element (or elements) that labels the current element. */
|
|
37
|
+
"aria-labelledby"?: string;
|
|
38
|
+
/** Identifies the element (or elements) that describes the object. */
|
|
39
|
+
"aria-describedby"?: string;
|
|
40
|
+
/** Identifies the element (or elements) that provide a detailed, extended description for the object. */
|
|
41
|
+
"aria-details"?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface AriaValidationProps {
|
|
44
|
+
/** Identifies the element that provides an error message for the object. */
|
|
45
|
+
"aria-errormessage"?: string;
|
|
46
|
+
}
|
|
47
|
+
/** Common DOM props allowed on any component. */
|
|
48
|
+
export interface DOMProps {
|
|
49
|
+
/** The element's unique identifier. */
|
|
50
|
+
id?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface FocusableDOMProps extends DOMProps {
|
|
53
|
+
/** Whether to exclude the element from the sequential tab order. */
|
|
54
|
+
excludeFromTabOrder?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** Inline style object (`style` prop of every component; render-prop form in `StyleRenderProps`). */
|
|
57
|
+
export type StyleObject = Record<string, string | number | undefined>;
|
|
58
|
+
export type ValidationState = "valid" | "invalid";
|
|
59
|
+
export type ValidationError = string | string[];
|
|
60
|
+
export interface Validation<T = unknown> {
|
|
61
|
+
/** Whether user input is required on the input before form submission. */
|
|
62
|
+
isRequired?: boolean;
|
|
63
|
+
/** Whether the input value is invalid. */
|
|
64
|
+
isInvalid?: boolean;
|
|
65
|
+
/** @deprecated upstream: use `isInvalid`. */
|
|
66
|
+
validationState?: ValidationState;
|
|
67
|
+
/** `native` blocks form submission and shows native errors; `aria` only marks the field invalid. @default "native" (RAC) */
|
|
68
|
+
validationBehavior?: "aria" | "native";
|
|
69
|
+
/** Custom validation: error message(s), or `true` / `null` / `undefined` when valid. */
|
|
70
|
+
validate?: (value: T) => ValidationError | true | null | undefined;
|
|
71
|
+
}
|
|
72
|
+
export interface InputBase {
|
|
73
|
+
/** Whether the input is disabled. */
|
|
74
|
+
isDisabled?: boolean;
|
|
75
|
+
/** Whether the input can be selected but not changed by the user. */
|
|
76
|
+
isReadOnly?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Value props. Rivet: `value` is a plain value OR a two-way `Signal` (see `controllable`).
|
|
80
|
+
*/
|
|
81
|
+
export interface ValueBase<T, C = T> {
|
|
82
|
+
/** The current value (controlled): a plain value or a Signal. */
|
|
83
|
+
value?: T | import("@rivetjs/reactivity").Signal<T>;
|
|
84
|
+
/** The default value (uncontrolled). */
|
|
85
|
+
defaultValue?: T;
|
|
86
|
+
/** Handler that is called when the value changes. */
|
|
87
|
+
onChange?: (value: C) => void;
|
|
88
|
+
}
|
|
89
|
+
export interface TextInputBase {
|
|
90
|
+
/** Temporary text that occupies the text input when it is empty. */
|
|
91
|
+
placeholder?: string;
|
|
92
|
+
}
|
|
93
|
+
export interface RangeValue<T> {
|
|
94
|
+
start: T;
|
|
95
|
+
end: T;
|
|
96
|
+
}
|
|
97
|
+
export interface RangeInputBase<T> {
|
|
98
|
+
minValue?: T;
|
|
99
|
+
maxValue?: T;
|
|
100
|
+
step?: T;
|
|
101
|
+
}
|
|
102
|
+
export interface HelpTextProps {
|
|
103
|
+
/** A description for the field. */
|
|
104
|
+
description?: Content;
|
|
105
|
+
/** An error message for the field. */
|
|
106
|
+
errorMessage?: Content | ((v: ValidationResult) => Content);
|
|
107
|
+
}
|
|
108
|
+
export interface LabelableProps {
|
|
109
|
+
/** The content to display as the label. */
|
|
110
|
+
label?: Content;
|
|
111
|
+
}
|
package/utils/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { StyleObject } from "@rivetjs/runtime/style";
|
|
3
|
+
import type { Key } from "../collections/index.js";
|
|
4
|
+
import { type CollectionOptions, type Node } from "./collection.js";
|
|
5
|
+
import { type ScrollView } from "./dom.js";
|
|
6
|
+
import type { Layout } from "./layout.js";
|
|
7
|
+
import type { LayoutInfo } from "./layout-info.js";
|
|
8
|
+
import type { ReusableView } from "./reusable-view.js";
|
|
9
|
+
import { type VirtualizerState } from "./state.js";
|
|
10
|
+
import type { Direction } from "./types.js";
|
|
11
|
+
/** Key of the loader sentinel node the component appends when `isLoading` / `onLoadMore` are given. */
|
|
12
|
+
export declare const LOADER_KEY = "rv-virtualizer-loader";
|
|
13
|
+
/** One rendered view: JSON-serializable (server window) projection of a ReusableView + its LayoutInfo. */
|
|
14
|
+
export interface VirtualView<T = unknown> {
|
|
15
|
+
/** Collection key (rows are keyed by it: kept keys keep their DOM). */
|
|
16
|
+
key: Key;
|
|
17
|
+
/** View type (`item`, `section`, `header`, `loader`, `row`, `cell`, …). */
|
|
18
|
+
type: string;
|
|
19
|
+
/** The data item (node value), or null (loaders, layout-generated views). */
|
|
20
|
+
item: T | null;
|
|
21
|
+
/** Index of the node within its parent. */
|
|
22
|
+
index: number;
|
|
23
|
+
level: number;
|
|
24
|
+
parentKey: Key | null;
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
/** Size not measured yet (the browser measures it after rendering). */
|
|
30
|
+
estimated: boolean;
|
|
31
|
+
/** Position style relative to the parent view. */
|
|
32
|
+
style: StyleObject;
|
|
33
|
+
/** Child views (sections: header + items; tables: rows / cells). */
|
|
34
|
+
children: VirtualView<T>[];
|
|
35
|
+
}
|
|
36
|
+
export type MaybeAccessor<T> = T | (() => T);
|
|
37
|
+
/** Serializable component state. */
|
|
38
|
+
export interface VirtualizerModel<T, O> {
|
|
39
|
+
id: string;
|
|
40
|
+
items: MaybeAccessor<readonly T[]>;
|
|
41
|
+
/** Layout factory (`() => new ListLayout()`), called on the server and once in the browser. */
|
|
42
|
+
layout: () => Layout<Node<T>, O>;
|
|
43
|
+
layoutOptions?: O;
|
|
44
|
+
collection: CollectionOptions<T>;
|
|
45
|
+
initialSize: {
|
|
46
|
+
width: number;
|
|
47
|
+
height: number;
|
|
48
|
+
};
|
|
49
|
+
dir?: Direction;
|
|
50
|
+
isLoading?: MaybeAccessor<boolean>;
|
|
51
|
+
onLoadMore?: () => void;
|
|
52
|
+
loadMoreOffset: number;
|
|
53
|
+
shouldObserveItemSize: boolean;
|
|
54
|
+
/** Caller-persisted keys (plus the focused view). */
|
|
55
|
+
persistedKeys: readonly Key[];
|
|
56
|
+
focusedKey: Signal<Key | null>;
|
|
57
|
+
views: Signal<VirtualView<T>[]>;
|
|
58
|
+
contentSize: Signal<{
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
}>;
|
|
62
|
+
isScrolling: Signal<boolean>;
|
|
63
|
+
onScroll?: (event: Event) => void;
|
|
64
|
+
}
|
|
65
|
+
/** Views of the engine as JSON; unchanged views keep their previous object (resumed rows stay adopted). */
|
|
66
|
+
export declare function projectViews<T>(views: Iterable<ReusableView<Node<T>, unknown>>, dir: Direction | undefined, previous: Map<Key, VirtualView<T>>, parent?: LayoutInfo | null): VirtualView<T>[];
|
|
67
|
+
/** First window for the server render (and client-rendered mounts): the engine at `initialSize`, scrolled to 0. */
|
|
68
|
+
export declare function initialWindow<T, O>(model: VirtualizerModel<T, O>): {
|
|
69
|
+
views: VirtualView<T>[];
|
|
70
|
+
contentSize: {
|
|
71
|
+
width: number;
|
|
72
|
+
height: number;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
interface Driver {
|
|
76
|
+
state: VirtualizerState<Node<unknown>, unknown>;
|
|
77
|
+
scrollView: ScrollView;
|
|
78
|
+
loadingMore: boolean;
|
|
79
|
+
lastItems: unknown;
|
|
80
|
+
}
|
|
81
|
+
/** The browser driver of `model` (created on first use: engine, scroll view, measurement). */
|
|
82
|
+
export declare function driverOf<T, O>(model: VirtualizerModel<T, O>, element?: Element | null): Driver | null;
|
|
83
|
+
/** Rows of the model: the server window, or (browser) the driver's projection; reads `items` for reactivity. */
|
|
84
|
+
export declare function visibleViews<T, O>(model: VirtualizerModel<T, O>): VirtualView<T>[];
|
|
85
|
+
/** Keys of `views`: the rows' `For` items. Keys keep their identity across windows, so resumed server rows are
|
|
86
|
+
* adopted and kept (a `For` re-creates an adopted row whose item changed; view descriptors change on every move). */
|
|
87
|
+
export declare const viewKeys: <T>(views: readonly VirtualView<T>[]) => Key[];
|
|
88
|
+
/** The view with `key` in `views` (a row's descriptor); a row being removed keeps its last descriptor. */
|
|
89
|
+
export declare function viewOf<T, O>(model: VirtualizerModel<T, O>, views: readonly VirtualView<T>[], key: Key): VirtualView<T>;
|
|
90
|
+
/** Scroll handler of the scroller: drive the engine, load more near the end, then the caller's `onScroll`. */
|
|
91
|
+
export declare function virtualizerScroll<T, O>(model: VirtualizerModel<T, O>, event: Event): void;
|
|
92
|
+
/** focusin: the focused view stays rendered (persisted) while scrolled out of view. */
|
|
93
|
+
export declare function virtualizerFocusIn<T, O>(model: VirtualizerModel<T, O>, event: FocusEvent): void;
|
|
94
|
+
/** Style of the content element (size of the scrollable content; no pointer events while scrolling). */
|
|
95
|
+
export declare function contentStyle<T, O>(model: VirtualizerModel<T, O>): StyleObject;
|
|
96
|
+
/** Style of the scroller: overflow per scroll direction, padding reset (padding is done by the layout). */
|
|
97
|
+
export declare function scrollerStyle(scrollDirection: "horizontal" | "vertical" | "both"): StyleObject;
|
|
98
|
+
export {};
|