@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +120 -0
- package/_adapters/selection.js +709 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +376 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +252 -0
- package/collections/components.jsx +745 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +17 -0
- package/collections/nodes.js +107 -0
- package/collections/row-stamps.d.ts +17 -0
- package/collections/row-stamps.js +108 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +6 -0
- package/collections/server-dev.js +18 -0
- package/collections/server-off.d.ts +6 -0
- package/collections/server-off.js +9 -0
- package/collections/server-on.d.ts +29 -0
- package/collections/server-on.jsx +86 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +210 -0
- package/drag-drop/directives/drag.js +550 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +128 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +144 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +248 -0
- package/grid-list/behaviour.js +616 -0
- package/grid-list/index.d.ts +204 -0
- package/grid-list/index.jsx +721 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +539 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +52 -0
- package/interactions/utils.js +253 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +515 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +632 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +702 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +55 -0
- package/portal/index.jsx +83 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +142 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +66 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +560 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +625 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +162 -0
- package/state/menu.js +185 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +1326 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +837 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +73 -0
- package/utils/data-attrs.jsx +217 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +43 -0
- package/utils/index.js +160 -0
- package/utils/link-state.d.ts +6 -0
- package/utils/link-state.js +6 -0
- package/utils/links.d.ts +82 -0
- package/utils/links.jsx +150 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/transitions.d.ts +15 -0
- package/utils/transitions.js +104 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +129 -0
- package/virtualizer/behaviour.js +437 -0
- package/virtualizer/collection-renderer.d.ts +62 -0
- package/virtualizer/collection-renderer.jsx +190 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +3 -0
- package/virtualizer/index.jsx +5 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +510 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +89 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +64 -0
- package/virtualizer/virtualizer.jsx +91 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { splitProps } from "@rivetjs/runtime/props";
|
|
2
|
+
const GLOBAL = /^(?:on(?:Click|AuxClick|ContextMenu|DblClick|Mouse(?:Down|Enter|Leave|Move|Out|Over|Up)|Touch(?:Cancel|End|Move|Start)|Pointer(?:Down|Move|Up|Cancel|Enter|Leave|Over|Out)|GotPointerCapture|LostPointerCapture|Scroll|Wheel|Animation(?:Start|End|Iteration)|Transition(?:Cancel|End|Run|Start))(?:Capture)?|dir|lang|hidden|inert|translate|style|data-[^\s]+)$/;
|
|
3
|
+
/**
|
|
4
|
+
* The global DOM events and attributes set on `props`, minus the `owned` names the component
|
|
5
|
+
* handles itself. Spread the result on the root element: `<div {...globalDOMProps(props)} …>`.
|
|
6
|
+
*/
|
|
7
|
+
export function globalDOMProps(props, owned) {
|
|
8
|
+
return pick(props, GLOBAL, GLOBAL_KEYS, owned);
|
|
9
|
+
}
|
|
10
|
+
// Parse once per key string (docs/guides/performance.md): the alternation regex per prop key of every part root was
|
|
11
|
+
// ~40% of `pick`; key → match, bounded so arbitrary user keys cannot grow it.
|
|
12
|
+
const GLOBAL_KEYS = new Map(), TEXT_INPUT_KEYS = new Map();
|
|
13
|
+
function matches(cache, pattern, key) {
|
|
14
|
+
let hit = cache.get(key);
|
|
15
|
+
if (hit === undefined) {
|
|
16
|
+
hit = pattern.test(key);
|
|
17
|
+
if (cache.size < 512)
|
|
18
|
+
cache.set(key, hit);
|
|
19
|
+
}
|
|
20
|
+
return hit;
|
|
21
|
+
}
|
|
22
|
+
// Live props (P5): a live key (own getter) is forwarded unread — the result is a `splitProps` part over the matching
|
|
23
|
+
// keys, read by the element spread's binding; without getters the matching defined values are copied (as before).
|
|
24
|
+
function pick(props, pattern, cache, owned) {
|
|
25
|
+
const out = {};
|
|
26
|
+
let keys;
|
|
27
|
+
for (const key in props) {
|
|
28
|
+
if (!matches(cache, pattern, key) || owned?.includes(key))
|
|
29
|
+
continue;
|
|
30
|
+
(keys ??= []).push(key);
|
|
31
|
+
const desc = Object.getOwnPropertyDescriptor(props, key);
|
|
32
|
+
if (desc?.get !== undefined)
|
|
33
|
+
return forward(props, keys.concat(rest(props, key, pattern, cache, owned)));
|
|
34
|
+
const value = desc ? desc.value : props[key];
|
|
35
|
+
if (value !== undefined)
|
|
36
|
+
out[key] = value;
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
const PROXY = Symbol.for("rivet.props");
|
|
41
|
+
/**
|
|
42
|
+
* A writable bag forwarding `keys` to `props` (components add attributes to it). A proxied props object (a spread of
|
|
43
|
+
* a call / conditional: runtime Proxy, whose parts discard writes) gets plain forwarding getters over the keys it
|
|
44
|
+
* has now.
|
|
45
|
+
*/
|
|
46
|
+
function forward(props, keys) {
|
|
47
|
+
if (props[PROXY] !== 1)
|
|
48
|
+
return splitProps(props, keys)[0];
|
|
49
|
+
const out = {};
|
|
50
|
+
for (const key of keys)
|
|
51
|
+
Object.defineProperty(out, key, { enumerable: true, configurable: true, get: () => props[key] });
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
/** The matching keys of `props` after `from` (live path: the whole key list for `splitProps`). */
|
|
55
|
+
function rest(props, from, pattern, cache, owned) {
|
|
56
|
+
const keys = [];
|
|
57
|
+
let after = false;
|
|
58
|
+
for (const key in props) {
|
|
59
|
+
if (key === from)
|
|
60
|
+
after = true;
|
|
61
|
+
else if (after && matches(cache, pattern, key) && !owned?.includes(key))
|
|
62
|
+
keys.push(key);
|
|
63
|
+
}
|
|
64
|
+
return keys;
|
|
65
|
+
}
|
|
66
|
+
const TEXT_INPUT = /^on(?:Input|BeforeInput|Composition(?:Start|Update|End)|Copy|Cut|Paste|Select)(?:Capture)?$/;
|
|
67
|
+
/**
|
|
68
|
+
* The text input DOM events set on `props`, minus `owned` (default `onInput`: inputs handle it
|
|
69
|
+
* themselves and call the user's from their own). Spread the result on the input element.
|
|
70
|
+
*/
|
|
71
|
+
export function textInputDOMProps(props, owned = ["onInput"]) {
|
|
72
|
+
return pick(props, TEXT_INPUT, TEXT_INPUT_KEYS, owned);
|
|
73
|
+
}
|
package/utils/dom.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
/**
|
|
3
|
+
* `CSS.escape(value)` (CSSOM "serialize an identifier"): the native one when the global `CSS` exists, else the same
|
|
4
|
+
* algorithm in JS. React Aria calls `CSS.escape` directly; environments without the global (happy-dom / jsdom set it on
|
|
5
|
+
* `window` only, older embedded webviews) would throw inside an event handler, so every cdk selector goes through this.
|
|
6
|
+
*/
|
|
7
|
+
export declare function cssEscape(value: string): string;
|
|
8
|
+
/** Type guard: a DOM Node (has a numeric `nodeType`). */
|
|
9
|
+
export declare function isNode(value: unknown): value is Node;
|
|
10
|
+
/** Type guard: a Document (`nodeType` 9). */
|
|
11
|
+
export declare function isDocument(value: unknown): value is Document;
|
|
12
|
+
/** Type guard: a ShadowRoot (document fragment with a `host`). */
|
|
13
|
+
export declare function isShadowRoot(value: unknown): value is ShadowRoot;
|
|
14
|
+
/** The document `target` belongs to (window → its document; iframe content → the iframe's document). */
|
|
15
|
+
export declare const getOwnerDocument: (target?: EventTarget | null) => Document;
|
|
16
|
+
/** The window `target` belongs to. */
|
|
17
|
+
export declare const getOwnerWindow: (target?: EventTarget | null) => Window & typeof globalThis;
|
|
18
|
+
/** Attach `listener` to one or several targets; returns the cleanup. Null target / listener → no-op. */
|
|
19
|
+
export declare function addEvent(target: EventTarget | EventTarget[] | null | undefined, event: string, listener?: ((event: any) => unknown) | null, options?: boolean | AddEventListenerOptions): () => void;
|
|
20
|
+
/** Set a CSS property (with optional priority) on element(s); the cleanup restores each previous value. */
|
|
21
|
+
export declare function setStyle(target: HTMLElement | HTMLElement[] | null, property: string, value: string, priority?: string): () => void;
|
|
22
|
+
/** Shadow-DOM-safe `node.contains(otherNode)`: crosses shadow roots (via `host`) and slots. */
|
|
23
|
+
export declare function nodeContains(node: Node | null | undefined, otherNode: Node | EventTarget | null | undefined): boolean;
|
|
24
|
+
/** Shadow-DOM-safe `document.activeElement` (descends into open shadow roots). */
|
|
25
|
+
export declare const getActiveElement: (doc?: Document) => Element | null;
|
|
26
|
+
/** Shadow-DOM-safe `event.target`: the node inside an open shadow root when the listener is outside it. */
|
|
27
|
+
export declare function getEventTarget<T extends EventTarget = EventTarget>(event: Event): T | null;
|
|
28
|
+
/**
|
|
29
|
+
* Targets a listener must be attached to so it sees an event globally from `from`: `[to, …shadow
|
|
30
|
+
* roots between from and to]` (`to` defaults to `from`'s window; `null` → none).
|
|
31
|
+
*/
|
|
32
|
+
export declare function getPropagationTargets(from: Element | null | undefined, to?: Document | Window | Element | null): EventTarget[];
|
|
33
|
+
/** Shadow-DOM-safe fast `node.contains(document.activeElement)`. */
|
|
34
|
+
export declare function isFocusWithin(node: Element | null | undefined): boolean;
|
|
35
|
+
/** Whether `node` scrolls (`overflow: auto|scroll`; the root unless `overflow: hidden`), optionally only when it overflows. */
|
|
36
|
+
export declare function isScrollable(node: Element | null, checkForOverflow?: boolean): boolean;
|
|
37
|
+
/** The nearest scrolling ancestor of `node` (excluding `node` itself when it scrolls), else the document scroller. */
|
|
38
|
+
export declare function getScrollParent(node: Element, checkForOverflow?: boolean): Element;
|
|
39
|
+
/** Every scrolling ancestor of `node` (itself included), up to and including the root when it scrolls. */
|
|
40
|
+
export declare function getScrollParents(node: Element, checkForOverflow?: boolean): Element[];
|
|
41
|
+
export interface ScrollIntoViewOpts {
|
|
42
|
+
/** Alignment along the block axis (default `nearest`). */
|
|
43
|
+
block?: ScrollLogicalPosition;
|
|
44
|
+
/** Alignment along the inline axis (default `nearest`). */
|
|
45
|
+
inline?: ScrollLogicalPosition;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Scrolls `scrollView` so that `element` is visible, like `element.scrollIntoView({ block:
|
|
49
|
+
* "nearest" })` but without scrolling the parents above `scrollView`. Honours scroll-margin,
|
|
50
|
+
* scroll-padding, borders and scrollbars (RTL: scrollbar on the left; iOS WebKit: always right).
|
|
51
|
+
*/
|
|
52
|
+
export declare function scrollIntoView(scrollView: HTMLElement, element: HTMLElement, opts?: ScrollIntoViewOpts): void;
|
|
53
|
+
/** `scrollIntoView` for an arbitrary rectangle `target` of `element` (client coordinates). */
|
|
54
|
+
export declare function scrollRectIntoView(scrollView: HTMLElement, element: HTMLElement, target: DOMRect, opts?: ScrollIntoViewOpts): void;
|
|
55
|
+
export interface ScrollIntoViewportOpts {
|
|
56
|
+
/** Containing element centered in the viewport first when the target is not fully visible. */
|
|
57
|
+
containingElement?: Element | null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Scrolls `targetElement` into the viewport. When the page itself cannot scroll (`overflow: hidden`
|
|
61
|
+
* on the root, e.g. under a modal), only the target's scroll parents scroll, never the body.
|
|
62
|
+
* `containingElement` (a listbox for an option, say) is centered first if the target moved.
|
|
63
|
+
*/
|
|
64
|
+
export declare function scrollIntoViewport(targetElement: Element | null, opts?: ScrollIntoViewportOpts): void;
|
|
65
|
+
export interface ViewportSize {
|
|
66
|
+
width: number;
|
|
67
|
+
height: number;
|
|
68
|
+
}
|
|
69
|
+
/** Viewport size without the scrollbar, unaffected by pinch zoom (visualViewport where available). Server: 0 × 0. */
|
|
70
|
+
export declare function getViewportSize(win?: (Window & typeof globalThis) | undefined): ViewportSize;
|
|
71
|
+
/**
|
|
72
|
+
* react-aria `useViewportSize`: a signal of the viewport size, updated on (visual viewport) resize,
|
|
73
|
+
* ignoring updates while pinch-zoomed. Server: `{ width: 0, height: 0 }` and no listeners. Returns
|
|
74
|
+
* the signal and the cleanup; call from a client effect.
|
|
75
|
+
*/
|
|
76
|
+
export declare function viewportSize(win?: (Window & typeof globalThis) | undefined): {
|
|
77
|
+
size: Signal<ViewportSize>;
|
|
78
|
+
dispose: () => void;
|
|
79
|
+
};
|
|
80
|
+
/** Content of `<meta name|property="key">` (`csp-nonce`: also its `nonce`, then `__webpack_nonce__`). */
|
|
81
|
+
export declare function getMetaValue(key: string, doc?: Document): string | undefined;
|
|
82
|
+
/** Reset the cached nonce value (tests). */
|
|
83
|
+
export declare function resetNonceCache(): void;
|
|
84
|
+
/** The CSP nonce (`<meta property="csp-nonce">` or `__webpack_nonce__`) for injected `<style>` elements; cached per document once found. */
|
|
85
|
+
export declare function getNonce(doc?: Document): string | undefined;
|
package/utils/dom.js
ADDED
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
// DOM helpers: owner document / window, shadow-DOM-safe queries, scroll parents, scrolling into
|
|
2
|
+
// view, viewport size, CSP nonce.
|
|
3
|
+
// Ported from react-spectrum packages/react-aria/src/utils/{domHelpers,getScrollParent,
|
|
4
|
+
// getScrollParents,isScrollable,scrollIntoView,useViewportSize,getMetaValue,getNonce}.ts and
|
|
5
|
+
// shadowdom/DOMFunctions.ts (Apache-2.0, © Adobe).
|
|
6
|
+
//
|
|
7
|
+
// react-aria gates its shadow-DOM-aware variants behind the `shadowDOM()` feature flag; here they
|
|
8
|
+
// are always on (in the light DOM they behave like the plain versions). Server-safe where it makes
|
|
9
|
+
// sense (owner document / window fall back to `undefined`); everything else is browser-only.
|
|
10
|
+
import { signal } from "@rivetjs/reactivity";
|
|
11
|
+
import { isIOS, isWebKit } from "../platform/index.js";
|
|
12
|
+
/**
|
|
13
|
+
* `CSS.escape(value)` (CSSOM "serialize an identifier"): the native one when the global `CSS` exists, else the same
|
|
14
|
+
* algorithm in JS. React Aria calls `CSS.escape` directly; environments without the global (happy-dom / jsdom set it on
|
|
15
|
+
* `window` only, older embedded webviews) would throw inside an event handler, so every cdk selector goes through this.
|
|
16
|
+
*/
|
|
17
|
+
export function cssEscape(value) {
|
|
18
|
+
const native = globalThis.CSS;
|
|
19
|
+
if (native && typeof native.escape === "function")
|
|
20
|
+
return native.escape(value);
|
|
21
|
+
const string = String(value);
|
|
22
|
+
const length = string.length;
|
|
23
|
+
const first = string.charCodeAt(0);
|
|
24
|
+
let result = "";
|
|
25
|
+
for (let index = 0; index < length; index++) {
|
|
26
|
+
const code = string.charCodeAt(index);
|
|
27
|
+
if (code === 0x0000)
|
|
28
|
+
result += "�";
|
|
29
|
+
else if ((code >= 0x0001 && code <= 0x001f) ||
|
|
30
|
+
code === 0x007f ||
|
|
31
|
+
(index === 0 && code >= 0x0030 && code <= 0x0039) ||
|
|
32
|
+
(index === 1 && code >= 0x0030 && code <= 0x0039 && first === 0x002d))
|
|
33
|
+
result += "\\" + code.toString(16) + " ";
|
|
34
|
+
else if (index === 0 && length === 1 && code === 0x002d)
|
|
35
|
+
result += "\\" + string.charAt(index);
|
|
36
|
+
else if (code >= 0x0080 ||
|
|
37
|
+
code === 0x002d ||
|
|
38
|
+
code === 0x005f ||
|
|
39
|
+
(code >= 0x0030 && code <= 0x0039) ||
|
|
40
|
+
(code >= 0x0041 && code <= 0x005a) ||
|
|
41
|
+
(code >= 0x0061 && code <= 0x007a))
|
|
42
|
+
result += string.charAt(index);
|
|
43
|
+
else
|
|
44
|
+
result += "\\" + string.charAt(index);
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
/** Type guard: a DOM Node (has a numeric `nodeType`). */
|
|
49
|
+
export function isNode(value) {
|
|
50
|
+
return value !== null && typeof value === "object" && "nodeType" in value && typeof value.nodeType === "number";
|
|
51
|
+
}
|
|
52
|
+
function isWindow(value) {
|
|
53
|
+
return typeof value === "object" && value != null && "window" in value && value.window === value;
|
|
54
|
+
}
|
|
55
|
+
/** Type guard: a Document (`nodeType` 9). */
|
|
56
|
+
export function isDocument(value) {
|
|
57
|
+
return isNode(value) && value.nodeType === 9;
|
|
58
|
+
}
|
|
59
|
+
/** Type guard: a ShadowRoot (document fragment with a `host`). */
|
|
60
|
+
export function isShadowRoot(value) {
|
|
61
|
+
return isNode(value) && value.nodeType === 11 && "host" in value;
|
|
62
|
+
}
|
|
63
|
+
/** The document `target` belongs to (window → its document; iframe content → the iframe's document). */
|
|
64
|
+
export const getOwnerDocument = (target) => {
|
|
65
|
+
if (isWindow(target))
|
|
66
|
+
return target.document;
|
|
67
|
+
if (isDocument(target))
|
|
68
|
+
return target;
|
|
69
|
+
return target?.ownerDocument ?? (typeof document !== "undefined" ? document : undefined);
|
|
70
|
+
};
|
|
71
|
+
/** The window `target` belongs to. */
|
|
72
|
+
export const getOwnerWindow = (target) => {
|
|
73
|
+
const ownerDocument = getOwnerDocument(target);
|
|
74
|
+
return (ownerDocument?.defaultView ?? (typeof window !== "undefined" ? window : undefined));
|
|
75
|
+
};
|
|
76
|
+
/** Attach `listener` to one or several targets; returns the cleanup. Null target / listener → no-op. */
|
|
77
|
+
export function addEvent(target, event, listener, options) {
|
|
78
|
+
if (listener == null || target == null)
|
|
79
|
+
return () => { };
|
|
80
|
+
const targets = Array.isArray(target) ? target : [target];
|
|
81
|
+
for (const t of targets)
|
|
82
|
+
t.addEventListener(event, listener, options);
|
|
83
|
+
return () => {
|
|
84
|
+
for (const t of targets)
|
|
85
|
+
t.removeEventListener(event, listener, options);
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/** Set a CSS property (with optional priority) on element(s); the cleanup restores each previous value. */
|
|
89
|
+
export function setStyle(target, property, value, priority) {
|
|
90
|
+
if (target == null)
|
|
91
|
+
return () => { };
|
|
92
|
+
const restore = [];
|
|
93
|
+
for (const el of Array.isArray(target) ? target : [target]) {
|
|
94
|
+
const initialValue = el.style.getPropertyValue(property);
|
|
95
|
+
const initialPriority = el.style.getPropertyPriority(property);
|
|
96
|
+
el.style.setProperty(property, value, priority);
|
|
97
|
+
restore.unshift(() => {
|
|
98
|
+
if (initialValue)
|
|
99
|
+
el.style.setProperty(property, initialValue, initialPriority);
|
|
100
|
+
else
|
|
101
|
+
el.style.removeProperty(property);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return () => {
|
|
105
|
+
for (const cleanup of restore)
|
|
106
|
+
cleanup();
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** Shadow-DOM-safe `node.contains(otherNode)`: crosses shadow roots (via `host`) and slots. */
|
|
110
|
+
export function nodeContains(node, otherNode) {
|
|
111
|
+
if (!node || !otherNode || !isNode(otherNode))
|
|
112
|
+
return false;
|
|
113
|
+
let current = otherNode;
|
|
114
|
+
while (current != null) {
|
|
115
|
+
if (current === node)
|
|
116
|
+
return true;
|
|
117
|
+
const slotted = current;
|
|
118
|
+
if (typeof slotted.assignedElements !== "function" && slotted.assignedSlot?.parentNode)
|
|
119
|
+
current = slotted.assignedSlot.parentNode;
|
|
120
|
+
else if (isShadowRoot(current))
|
|
121
|
+
current = current.host;
|
|
122
|
+
else
|
|
123
|
+
current = current.parentNode;
|
|
124
|
+
}
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
/** Shadow-DOM-safe `document.activeElement` (descends into open shadow roots). */
|
|
128
|
+
export const getActiveElement = (doc = document) => {
|
|
129
|
+
let active = doc.activeElement;
|
|
130
|
+
while (active && "shadowRoot" in active && active.shadowRoot?.activeElement)
|
|
131
|
+
active = active.shadowRoot.activeElement;
|
|
132
|
+
return active;
|
|
133
|
+
};
|
|
134
|
+
/** Shadow-DOM-safe `event.target`: the node inside an open shadow root when the listener is outside it. */
|
|
135
|
+
export function getEventTarget(event) {
|
|
136
|
+
const target = event.target;
|
|
137
|
+
if (typeof Element !== "undefined" && target instanceof Element && target.shadowRoot && "composedPath" in event)
|
|
138
|
+
return (event.composedPath()[0] ?? null);
|
|
139
|
+
return target;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Targets a listener must be attached to so it sees an event globally from `from`: `[to, …shadow
|
|
143
|
+
* roots between from and to]` (`to` defaults to `from`'s window; `null` → none).
|
|
144
|
+
*/
|
|
145
|
+
export function getPropagationTargets(from, to) {
|
|
146
|
+
if (to === null)
|
|
147
|
+
return [];
|
|
148
|
+
const destination = to ?? getOwnerWindow(from);
|
|
149
|
+
const targets = [destination];
|
|
150
|
+
if (!from || from === destination)
|
|
151
|
+
return targets;
|
|
152
|
+
const toRoot = "getRootNode" in destination ? destination.getRootNode() : null;
|
|
153
|
+
let current = from.getRootNode() ?? null;
|
|
154
|
+
while (isShadowRoot(current) && current !== toRoot) {
|
|
155
|
+
targets.push(current);
|
|
156
|
+
current = current.host.getRootNode();
|
|
157
|
+
}
|
|
158
|
+
return targets;
|
|
159
|
+
}
|
|
160
|
+
/** Shadow-DOM-safe fast `node.contains(document.activeElement)`. */
|
|
161
|
+
export function isFocusWithin(node) {
|
|
162
|
+
if (!node)
|
|
163
|
+
return false;
|
|
164
|
+
const root = node.getRootNode();
|
|
165
|
+
const win = getOwnerWindow(node);
|
|
166
|
+
if (!(root instanceof win.Document || root instanceof win.ShadowRoot))
|
|
167
|
+
return false;
|
|
168
|
+
const active = root.activeElement;
|
|
169
|
+
return active != null && node.contains(active);
|
|
170
|
+
}
|
|
171
|
+
const scrollingRoot = (doc) => doc.scrollingElement || doc.documentElement;
|
|
172
|
+
/** Whether `node` scrolls (`overflow: auto|scroll`; the root unless `overflow: hidden`), optionally only when it overflows. */
|
|
173
|
+
export function isScrollable(node, checkForOverflow) {
|
|
174
|
+
if (!node)
|
|
175
|
+
return false;
|
|
176
|
+
const win = getOwnerWindow(node);
|
|
177
|
+
const style = win.getComputedStyle(node);
|
|
178
|
+
const root = scrollingRoot(node.ownerDocument);
|
|
179
|
+
let scrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);
|
|
180
|
+
// The root has `visible` overflow by default but scrolls nonetheless.
|
|
181
|
+
if (node === root && style.overflow !== "hidden")
|
|
182
|
+
scrollable = true;
|
|
183
|
+
if (scrollable && checkForOverflow)
|
|
184
|
+
scrollable = node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;
|
|
185
|
+
return scrollable;
|
|
186
|
+
}
|
|
187
|
+
/** The nearest scrolling ancestor of `node` (excluding `node` itself when it scrolls), else the document scroller. */
|
|
188
|
+
export function getScrollParent(node, checkForOverflow) {
|
|
189
|
+
let scrollable = node;
|
|
190
|
+
if (isScrollable(scrollable, checkForOverflow))
|
|
191
|
+
scrollable = scrollable.parentElement;
|
|
192
|
+
while (scrollable && !isScrollable(scrollable, checkForOverflow))
|
|
193
|
+
scrollable = scrollable.parentElement;
|
|
194
|
+
return scrollable || scrollingRoot(node.ownerDocument);
|
|
195
|
+
}
|
|
196
|
+
/** Every scrolling ancestor of `node` (itself included), up to and including the root when it scrolls. */
|
|
197
|
+
export function getScrollParents(node, checkForOverflow) {
|
|
198
|
+
const parents = [];
|
|
199
|
+
const root = scrollingRoot(node.ownerDocument);
|
|
200
|
+
let current = node;
|
|
201
|
+
while (current) {
|
|
202
|
+
if (isScrollable(current, checkForOverflow))
|
|
203
|
+
parents.push(current);
|
|
204
|
+
if (current === root)
|
|
205
|
+
break;
|
|
206
|
+
current = current.parentElement;
|
|
207
|
+
}
|
|
208
|
+
return parents;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Scrolls `scrollView` so that `element` is visible, like `element.scrollIntoView({ block:
|
|
212
|
+
* "nearest" })` but without scrolling the parents above `scrollView`. Honours scroll-margin,
|
|
213
|
+
* scroll-padding, borders and scrollbars (RTL: scrollbar on the left; iOS WebKit: always right).
|
|
214
|
+
*/
|
|
215
|
+
export function scrollIntoView(scrollView, element, opts = {}) {
|
|
216
|
+
if (scrollView === element)
|
|
217
|
+
return;
|
|
218
|
+
scrollRectIntoView(scrollView, element, element.getBoundingClientRect(), opts);
|
|
219
|
+
}
|
|
220
|
+
/** `scrollIntoView` for an arbitrary rectangle `target` of `element` (client coordinates). */
|
|
221
|
+
export function scrollRectIntoView(scrollView, element, target, opts = {}) {
|
|
222
|
+
const { block = "nearest", inline = "nearest" } = opts;
|
|
223
|
+
const win = getOwnerWindow(scrollView);
|
|
224
|
+
let y = scrollView.scrollTop;
|
|
225
|
+
let x = scrollView.scrollLeft;
|
|
226
|
+
const view = scrollView.getBoundingClientRect();
|
|
227
|
+
const itemStyle = win.getComputedStyle(element);
|
|
228
|
+
const viewStyle = win.getComputedStyle(scrollView);
|
|
229
|
+
const root = scrollingRoot(scrollView.ownerDocument);
|
|
230
|
+
const isRoot = scrollView === root;
|
|
231
|
+
const viewTop = isRoot ? 0 : view.top;
|
|
232
|
+
const viewBottom = isRoot ? scrollView.clientHeight : view.bottom;
|
|
233
|
+
const viewLeft = isRoot ? 0 : view.left;
|
|
234
|
+
const viewRight = isRoot ? scrollView.clientWidth : view.right;
|
|
235
|
+
const px = (v) => parseFloat(v ?? "") || 0;
|
|
236
|
+
const scrollMarginTop = px(itemStyle.scrollMarginTop);
|
|
237
|
+
const scrollMarginBottom = px(itemStyle.scrollMarginBottom);
|
|
238
|
+
const scrollMarginLeft = px(itemStyle.scrollMarginLeft);
|
|
239
|
+
const scrollMarginRight = px(itemStyle.scrollMarginRight);
|
|
240
|
+
const scrollPaddingTop = px(viewStyle.scrollPaddingTop);
|
|
241
|
+
const scrollPaddingBottom = px(viewStyle.scrollPaddingBottom);
|
|
242
|
+
const scrollPaddingLeft = px(viewStyle.scrollPaddingLeft);
|
|
243
|
+
const scrollPaddingRight = px(viewStyle.scrollPaddingRight);
|
|
244
|
+
const borderTopWidth = px(viewStyle.borderTopWidth);
|
|
245
|
+
const borderBottomWidth = px(viewStyle.borderBottomWidth);
|
|
246
|
+
const borderLeftWidth = px(viewStyle.borderLeftWidth);
|
|
247
|
+
const borderRightWidth = px(viewStyle.borderRightWidth);
|
|
248
|
+
const scrollAreaTop = target.top - scrollMarginTop;
|
|
249
|
+
const scrollAreaBottom = target.bottom + scrollMarginBottom;
|
|
250
|
+
const scrollAreaLeft = target.left - scrollMarginLeft;
|
|
251
|
+
const scrollAreaRight = target.right + scrollMarginRight;
|
|
252
|
+
const scrollBarOffsetX = isRoot ? 0 : borderLeftWidth + borderRightWidth;
|
|
253
|
+
const scrollBarOffsetY = isRoot ? 0 : borderTopWidth + borderBottomWidth;
|
|
254
|
+
const scrollBarWidth = isRoot ? 0 : scrollView.offsetWidth - scrollView.clientWidth - scrollBarOffsetX;
|
|
255
|
+
const scrollBarHeight = isRoot ? 0 : scrollView.offsetHeight - scrollView.clientHeight - scrollBarOffsetY;
|
|
256
|
+
const scrollPortTop = viewTop + (isRoot ? 0 : borderTopWidth) + scrollPaddingTop;
|
|
257
|
+
const scrollPortBottom = viewBottom - (isRoot ? 0 : borderBottomWidth) - scrollPaddingBottom - scrollBarHeight;
|
|
258
|
+
let scrollPortLeft = viewLeft + (isRoot ? 0 : borderLeftWidth) + scrollPaddingLeft;
|
|
259
|
+
let scrollPortRight = viewRight - (isRoot ? 0 : borderRightWidth) - scrollPaddingRight;
|
|
260
|
+
// WebKit on iOS always positions the scrollbar on the right.
|
|
261
|
+
if ((isIOS() && isWebKit()) || viewStyle.direction === "ltr")
|
|
262
|
+
scrollPortRight -= scrollBarWidth;
|
|
263
|
+
else if (viewStyle.direction === "rtl")
|
|
264
|
+
scrollPortLeft += scrollBarWidth;
|
|
265
|
+
const shouldScrollBlock = scrollAreaTop < scrollPortTop || scrollAreaBottom > scrollPortBottom;
|
|
266
|
+
const shouldScrollInline = scrollAreaLeft < scrollPortLeft || scrollAreaRight > scrollPortRight;
|
|
267
|
+
if (shouldScrollBlock && block === "start")
|
|
268
|
+
y += scrollAreaTop - scrollPortTop;
|
|
269
|
+
else if (shouldScrollBlock && block === "center")
|
|
270
|
+
y += (scrollAreaTop + scrollAreaBottom) / 2 - (scrollPortTop + scrollPortBottom) / 2;
|
|
271
|
+
else if (shouldScrollBlock && block === "end")
|
|
272
|
+
y += scrollAreaBottom - scrollPortBottom;
|
|
273
|
+
else if (shouldScrollBlock && block === "nearest") {
|
|
274
|
+
const start = scrollAreaTop - scrollPortTop;
|
|
275
|
+
const end = scrollAreaBottom - scrollPortBottom;
|
|
276
|
+
y += Math.abs(start) <= Math.abs(end) ? start : end;
|
|
277
|
+
}
|
|
278
|
+
if (shouldScrollInline && inline === "start")
|
|
279
|
+
x += scrollAreaLeft - scrollPortLeft;
|
|
280
|
+
else if (shouldScrollInline && inline === "center")
|
|
281
|
+
x += (scrollAreaLeft + scrollAreaRight) / 2 - (scrollPortLeft + scrollPortRight) / 2;
|
|
282
|
+
else if (shouldScrollInline && inline === "end")
|
|
283
|
+
x += scrollAreaRight - scrollPortRight;
|
|
284
|
+
else if (shouldScrollInline && inline === "nearest") {
|
|
285
|
+
const start = scrollAreaLeft - scrollPortLeft;
|
|
286
|
+
const end = scrollAreaRight - scrollPortRight;
|
|
287
|
+
x += Math.abs(start) <= Math.abs(end) ? start : end;
|
|
288
|
+
}
|
|
289
|
+
if (typeof scrollView.scrollTo === "function")
|
|
290
|
+
scrollView.scrollTo({ left: x, top: y });
|
|
291
|
+
else {
|
|
292
|
+
scrollView.scrollLeft = x;
|
|
293
|
+
scrollView.scrollTop = y;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Scrolls `targetElement` into the viewport. When the page itself cannot scroll (`overflow: hidden`
|
|
298
|
+
* on the root, e.g. under a modal), only the target's scroll parents scroll, never the body.
|
|
299
|
+
* `containingElement` (a listbox for an option, say) is centered first if the target moved.
|
|
300
|
+
*/
|
|
301
|
+
export function scrollIntoViewport(targetElement, opts = {}) {
|
|
302
|
+
const { containingElement } = opts;
|
|
303
|
+
if (!targetElement || !targetElement.isConnected)
|
|
304
|
+
return;
|
|
305
|
+
const doc = targetElement.ownerDocument;
|
|
306
|
+
const root = scrollingRoot(doc);
|
|
307
|
+
const isScrollPrevented = getOwnerWindow(targetElement).getComputedStyle(root).overflow === "hidden";
|
|
308
|
+
const { left: originalLeft, top: originalTop } = targetElement.getBoundingClientRect();
|
|
309
|
+
if (!isScrollPrevented) {
|
|
310
|
+
// scrollIntoView, not focus(): focus does not scroll an already focused or partly visible element.
|
|
311
|
+
targetElement.scrollIntoView?.({ block: "nearest" });
|
|
312
|
+
const { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();
|
|
313
|
+
// Account for sub pixel differences from rounding.
|
|
314
|
+
if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {
|
|
315
|
+
containingElement?.scrollIntoView?.({ block: "center", inline: "center" });
|
|
316
|
+
targetElement.scrollIntoView?.({ block: "nearest" });
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
// The target's scroll parents are walked once (a `getComputedStyle` per ancestor; scrolling does not change them).
|
|
321
|
+
const targetParents = getScrollParents(targetElement, true);
|
|
322
|
+
for (const parent of targetParents)
|
|
323
|
+
scrollIntoView(parent, targetElement);
|
|
324
|
+
const { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();
|
|
325
|
+
if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {
|
|
326
|
+
const scrollParents = containingElement ? getScrollParents(containingElement, true) : [];
|
|
327
|
+
for (const parent of scrollParents)
|
|
328
|
+
scrollIntoView(parent, containingElement, { block: "center", inline: "center" });
|
|
329
|
+
for (const parent of targetParents)
|
|
330
|
+
scrollIntoView(parent, targetElement);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
/** Viewport size without the scrollbar, unaffected by pinch zoom (visualViewport where available). Server: 0 × 0. */
|
|
335
|
+
export function getViewportSize(win = typeof window === "undefined" ? undefined : window) {
|
|
336
|
+
if (!win)
|
|
337
|
+
return { width: 0, height: 0 };
|
|
338
|
+
const vv = win.visualViewport;
|
|
339
|
+
const docEl = win.document.documentElement;
|
|
340
|
+
return {
|
|
341
|
+
// The visual viewport width may include the scrollbar gutter: take the smaller one.
|
|
342
|
+
width: vv ? Math.min(vv.width * vv.scale, docEl.clientWidth) : docEl.clientWidth,
|
|
343
|
+
height: vv ? vv.height * vv.scale : docEl.clientHeight,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* react-aria `useViewportSize`: a signal of the viewport size, updated on (visual viewport) resize,
|
|
348
|
+
* ignoring updates while pinch-zoomed. Server: `{ width: 0, height: 0 }` and no listeners. Returns
|
|
349
|
+
* the signal and the cleanup; call from a client effect.
|
|
350
|
+
*/
|
|
351
|
+
export function viewportSize(win = typeof window === "undefined" ? undefined : window) {
|
|
352
|
+
const size = signal(getViewportSize(win));
|
|
353
|
+
if (!win)
|
|
354
|
+
return { size, dispose: () => { } };
|
|
355
|
+
const vv = win.visualViewport;
|
|
356
|
+
const update = (next) => {
|
|
357
|
+
const current = size();
|
|
358
|
+
if (next.width !== current.width || next.height !== current.height)
|
|
359
|
+
size.set(next);
|
|
360
|
+
};
|
|
361
|
+
const onResize = () => {
|
|
362
|
+
if (vv && vv.scale > 1)
|
|
363
|
+
return;
|
|
364
|
+
update(getViewportSize(win));
|
|
365
|
+
};
|
|
366
|
+
const target = vv ?? win;
|
|
367
|
+
target.addEventListener("resize", onResize);
|
|
368
|
+
return { size, dispose: () => target.removeEventListener("resize", onResize) };
|
|
369
|
+
}
|
|
370
|
+
/** Content of `<meta name|property="key">` (`csp-nonce`: also its `nonce`, then `__webpack_nonce__`). */
|
|
371
|
+
export function getMetaValue(key, doc) {
|
|
372
|
+
const win = getOwnerWindow(doc);
|
|
373
|
+
const ownerDocument = getOwnerDocument(doc);
|
|
374
|
+
if (ownerDocument == null || win == null)
|
|
375
|
+
return;
|
|
376
|
+
let content;
|
|
377
|
+
const meta = ownerDocument.querySelector(`meta[name="${cssEscape(key)}"], meta[property="${cssEscape(key)}"]`);
|
|
378
|
+
if (meta && meta instanceof win.HTMLMetaElement) {
|
|
379
|
+
if (key === "csp-nonce" && meta.nonce)
|
|
380
|
+
content ??= meta.nonce || undefined;
|
|
381
|
+
if (meta.content)
|
|
382
|
+
content ??= meta.content || undefined;
|
|
383
|
+
}
|
|
384
|
+
if (key === "csp-nonce")
|
|
385
|
+
content ??=
|
|
386
|
+
win.__webpack_nonce__ || globalThis.__webpack_nonce__ || undefined;
|
|
387
|
+
return content;
|
|
388
|
+
}
|
|
389
|
+
let nonceCache = new WeakMap();
|
|
390
|
+
/** Reset the cached nonce value (tests). */
|
|
391
|
+
export function resetNonceCache() {
|
|
392
|
+
nonceCache = new WeakMap();
|
|
393
|
+
}
|
|
394
|
+
/** The CSP nonce (`<meta property="csp-nonce">` or `__webpack_nonce__`) for injected `<style>` elements; cached per document once found. */
|
|
395
|
+
export function getNonce(doc) {
|
|
396
|
+
const ownerDocument = getOwnerDocument(doc);
|
|
397
|
+
let nonce = nonceCache.get(ownerDocument);
|
|
398
|
+
nonce ??= getMetaValue("csp-nonce", ownerDocument);
|
|
399
|
+
if (nonce !== undefined)
|
|
400
|
+
nonceCache.set(ownerDocument, nonce);
|
|
401
|
+
return nonce;
|
|
402
|
+
}
|
package/utils/id.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
export { createId, withIdScope } from "@rivetjs/runtime/id";
|
|
3
|
+
/** If a default is not provided, generate an id (react-aria `useId`). */
|
|
4
|
+
export declare function useId(defaultId?: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* A reactive id (`useId` whose value `mergeIds` can change): `defaultId` or a new id. Bindings
|
|
7
|
+
* reading it update when a `mergeIds` call merges this id into another one.
|
|
8
|
+
*/
|
|
9
|
+
export declare function idSignal(defaultId?: string): Signal<string>;
|
|
10
|
+
/** Forget the reactive ids registered for `id` (react-aria's cleanup when the id unmounts). */
|
|
11
|
+
export declare function releaseId(id: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Merges two ids. Equal → that id. Otherwise the reactive ids (`idSignal`) holding `idA` switch to
|
|
14
|
+
* `idB` (result `idB`), else those holding `idB` switch to `idA` (result `idA`), else `idB`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function mergeIds(idA: string, idB: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* react-aria `useSlotId`: `id` when an element with that id is rendered in `root`'s document, else
|
|
19
|
+
* undefined — so `aria-describedby={slotId}` never points at a missing element. Rivet: call it in a
|
|
20
|
+
* client effect / handler after the slot rendered (server: returns `id`, as the server renders the
|
|
21
|
+
* slot in the same pass and React's first render does the same).
|
|
22
|
+
*/
|
|
23
|
+
export declare function useSlotId(id: string, root?: Node | null): string | undefined;
|