@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +109 -0
- package/_adapters/selection.js +685 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +374 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +217 -0
- package/collections/components.jsx +537 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +9 -0
- package/collections/nodes.js +81 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +5 -0
- package/collections/server-dev.js +16 -0
- package/collections/server-off.d.ts +5 -0
- package/collections/server-off.js +7 -0
- package/collections/server-on.d.ts +28 -0
- package/collections/server-on.jsx +76 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +194 -0
- package/drag-drop/directives/drag.js +522 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +126 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +133 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +242 -0
- package/grid-list/behaviour.js +598 -0
- package/grid-list/index.d.ts +202 -0
- package/grid-list/index.jsx +685 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +538 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +53 -0
- package/interactions/utils.js +252 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +492 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +596 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +671 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +47 -0
- package/portal/index.jsx +76 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +139 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +76 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +535 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +624 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +159 -0
- package/state/menu.js +184 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +982 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +815 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +71 -0
- package/utils/data-attrs.jsx +193 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +57 -0
- package/utils/index.js +257 -0
- package/utils/links.d.ts +87 -0
- package/utils/links.jsx +152 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +98 -0
- package/virtualizer/behaviour.js +315 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +2 -0
- package/virtualizer/index.jsx +4 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +508 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +79 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +62 -0
- package/virtualizer/virtualizer.jsx +88 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
package/utils/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;
|
package/utils/id.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// SSR-stable unique ids: `createId` / `withIdScope` re-export `@rivetjs/runtime/id` (server `rv…`,
|
|
2
|
+
// browser `rvc…`). Plus react-aria's id utilities.
|
|
3
|
+
// Ported from react-spectrum packages/react-aria/src/utils/useId.ts (Apache-2.0, © Adobe):
|
|
4
|
+
// `useId`, `mergeIds`, `useSlotId`.
|
|
5
|
+
//
|
|
6
|
+
// Rivet: no hydration, so an id only has to be unique in the document — there is no SSR id
|
|
7
|
+
// matching to do and `useId(defaultId)` is `defaultId ?? createId()`. React re-renders components
|
|
8
|
+
// whose id lost a `mergeIds`; Rivet components that need that read an `idSignal()` (reactive id),
|
|
9
|
+
// which `mergeIds` updates the same way the original updates its `idsUpdaterMap` refs.
|
|
10
|
+
import { signal } from "@rivetjs/reactivity";
|
|
11
|
+
import { createId } from "@rivetjs/runtime/id";
|
|
12
|
+
import { idScoping, scopedIdUpdaters } from "#server";
|
|
13
|
+
export { createId, withIdScope } from "@rivetjs/runtime/id";
|
|
14
|
+
/** If a default is not provided, generate an id (react-aria `useId`). */
|
|
15
|
+
export function useId(defaultId) {
|
|
16
|
+
return defaultId || createId();
|
|
17
|
+
}
|
|
18
|
+
const updaters = new Map();
|
|
19
|
+
const SWEEP = 1024;
|
|
20
|
+
let sweepAt = SWEEP;
|
|
21
|
+
const registry = () => (idScoping && scopedIdUpdaters()) || updaters;
|
|
22
|
+
/**
|
|
23
|
+
* A reactive id (`useId` whose value `mergeIds` can change): `defaultId` or a new id. Bindings
|
|
24
|
+
* reading it update when a `mergeIds` call merges this id into another one.
|
|
25
|
+
*/
|
|
26
|
+
export function idSignal(defaultId) {
|
|
27
|
+
const id = useId(defaultId);
|
|
28
|
+
const value = signal(id);
|
|
29
|
+
const map = registry();
|
|
30
|
+
const refs = map.get(id);
|
|
31
|
+
if (refs) {
|
|
32
|
+
refs.push(new WeakRef(value));
|
|
33
|
+
// Same id re-created over and over (a fixed `id` prop remounted): prune its list at powers of two.
|
|
34
|
+
if (refs.length >= 8 && (refs.length & (refs.length - 1)) === 0)
|
|
35
|
+
prune(map, id, refs);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
map.set(id, [new WeakRef(value)]);
|
|
39
|
+
if (map === updaters && updaters.size >= sweepAt) {
|
|
40
|
+
for (const [key, list] of updaters)
|
|
41
|
+
prune(updaters, key, list);
|
|
42
|
+
sweepAt = Math.max(SWEEP, updaters.size * 2);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
function prune(map, id, refs) {
|
|
48
|
+
let n = 0;
|
|
49
|
+
for (let i = 0; i < refs.length; i++)
|
|
50
|
+
if (refs[i].deref() !== undefined)
|
|
51
|
+
refs[n++] = refs[i];
|
|
52
|
+
if (n === 0)
|
|
53
|
+
map.delete(id);
|
|
54
|
+
else
|
|
55
|
+
refs.length = n;
|
|
56
|
+
}
|
|
57
|
+
/** Forget the reactive ids registered for `id` (react-aria's cleanup when the id unmounts). */
|
|
58
|
+
export function releaseId(id) {
|
|
59
|
+
registry().delete(id);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Merges two ids. Equal → that id. Otherwise the reactive ids (`idSignal`) holding `idA` switch to
|
|
63
|
+
* `idB` (result `idB`), else those holding `idB` switch to `idA` (result `idA`), else `idB`.
|
|
64
|
+
*/
|
|
65
|
+
export function mergeIds(idA, idB) {
|
|
66
|
+
if (idA === idB)
|
|
67
|
+
return idA;
|
|
68
|
+
const setA = live(idA);
|
|
69
|
+
if (setA) {
|
|
70
|
+
for (const ref of setA)
|
|
71
|
+
ref.set(idB);
|
|
72
|
+
return idB;
|
|
73
|
+
}
|
|
74
|
+
const setB = live(idB);
|
|
75
|
+
if (setB) {
|
|
76
|
+
for (const ref of setB)
|
|
77
|
+
ref.set(idA);
|
|
78
|
+
return idA;
|
|
79
|
+
}
|
|
80
|
+
return idB;
|
|
81
|
+
}
|
|
82
|
+
function live(id) {
|
|
83
|
+
const list = registry()
|
|
84
|
+
.get(id)
|
|
85
|
+
?.map((ref) => ref.deref())
|
|
86
|
+
.filter((s) => !!s);
|
|
87
|
+
return list?.length ? list : undefined;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* react-aria `useSlotId`: `id` when an element with that id is rendered in `root`'s document, else
|
|
91
|
+
* undefined — so `aria-describedby={slotId}` never points at a missing element. Rivet: call it in a
|
|
92
|
+
* client effect / handler after the slot rendered (server: returns `id`, as the server renders the
|
|
93
|
+
* slot in the same pass and React's first render does the same).
|
|
94
|
+
*/
|
|
95
|
+
export function useSlotId(id, root) {
|
|
96
|
+
const doc = root ? (root.ownerDocument ?? root) : typeof document === "undefined" ? undefined : document;
|
|
97
|
+
if (!doc)
|
|
98
|
+
return id;
|
|
99
|
+
return doc.getElementById(id) ? id : undefined;
|
|
100
|
+
}
|
package/utils/index.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type Disposer } from "@rivetjs/reactivity";
|
|
2
|
+
export { chain, mergeProps, mergeRefs, type RefLike } from "../interactions/merge-props.jsx";
|
|
3
|
+
/** Focus `element` without scrolling it into view (`focus({ preventScroll: true })`, Baseline). */
|
|
4
|
+
export declare function focusWithoutScrolling(element: HTMLElement | SVGElement): void;
|
|
5
|
+
/** Offset of an element edge in client coordinates: left/top, or right/bottom when `reverse`. */
|
|
6
|
+
export declare function getOffset(element: Element, reverse?: boolean, orientation?: "horizontal" | "vertical"): number;
|
|
7
|
+
/** Clamps `value` into [min, max]. */
|
|
8
|
+
export declare function clamp(value: number, min?: number, max?: number): number;
|
|
9
|
+
/** Rounds `value` to the decimal precision of `step` (exponent notation steps included). */
|
|
10
|
+
export declare function roundToStepPrecision(value: number, step: number): number;
|
|
11
|
+
/** Snaps `value` to the nearest multiple of `step` from `min` (react-stately `snapValueToStep`), then clamps. */
|
|
12
|
+
export declare function snapValueToStep(value: number, min: number | undefined, max: number | undefined, step: number): number;
|
|
13
|
+
/** Rounds `value` to `digits` digits in `base`. */
|
|
14
|
+
export declare function toFixedNumber(value: number, digits: number, base?: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Start tracking transitions in `doc` (react-aria does this at import; Rivet modules have no
|
|
17
|
+
* import-time effects, so the first `runAfterTransition` call does it). Transitions already running
|
|
18
|
+
* then are picked up from `document.getAnimations()`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function trackTransitions(doc?: Document): void;
|
|
21
|
+
/** Test hook: stop tracking and forget running transitions and queued callbacks. */
|
|
22
|
+
export declare function _resetTransitions(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Run `fn` once every running CSS transition in the document finished (`fn(true)`), or on the next
|
|
25
|
+
* frame when none runs (`fn(false)`; one frame lets a transition on mount start). Returns a cancel function.
|
|
26
|
+
*/
|
|
27
|
+
export declare function runAfterTransition(fn: (isTransition: boolean) => void): () => void;
|
|
28
|
+
export interface LabelingProps {
|
|
29
|
+
id?: string;
|
|
30
|
+
"aria-label"?: string;
|
|
31
|
+
"aria-labelledby"?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* react-aria `useLabels`: with both `aria-label` and `aria-labelledby`, the element labels itself too
|
|
35
|
+
* (its own id joins `aria-labelledby`, so both are read); id lists are normalized; without any label
|
|
36
|
+
* `defaultLabel` becomes `aria-label`. Pure (an `id` is created when missing).
|
|
37
|
+
*/
|
|
38
|
+
export declare function useLabels(props: LabelingProps, defaultLabel?: string): LabelingProps;
|
|
39
|
+
/**
|
|
40
|
+
* react-aria `useDescription`: a shared hidden element holding `description` (one per distinct text,
|
|
41
|
+
* reference counted) for `aria-describedby`. Browser only: call from a client effect / handler with
|
|
42
|
+
* the element to describe; returns the cleanup (removes the attribute, drops the shared node when
|
|
43
|
+
* unused). Server-rendered markup should render its own description element instead.
|
|
44
|
+
*/
|
|
45
|
+
export declare function useDescription(element: Element, description?: string): () => void;
|
|
46
|
+
/**
|
|
47
|
+
* react-aria `useFormReset`: when the field's form resets (and the reset was not cancelled), call
|
|
48
|
+
* `onReset(initialValue)`. Returns the cleanup. Call from a client effect, or from the first handler
|
|
49
|
+
* that needs it (a resumed page's form reset needs no JS when the value lives in the DOM).
|
|
50
|
+
*/
|
|
51
|
+
export declare function useFormReset<T>(field: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null | undefined, initialValue: T, onReset: (value: T) => void): () => void;
|
|
52
|
+
/**
|
|
53
|
+
* react-aria `useUpdateEffect`: run `fn` when `deps()` changes after the first run (the first run only
|
|
54
|
+
* subscribes). Values compare with `Object.is` per position. Returns the disposer.
|
|
55
|
+
*/
|
|
56
|
+
export declare function updateEffect(deps: () => readonly unknown[], fn: () => void | (() => void)): Disposer;
|
|
57
|
+
export { renderElement, type DOMRenderFunction, type DOMRenderProps } from "./render.js";
|