@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
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type Ref } from "@rivetjs/runtime/dom";
|
|
2
|
+
import { type MaybeAccessor } from "../interactions/utils.js";
|
|
3
|
+
/** Where items collapse: `"start"` (Breadcrumbs: leading items) or `"end"` (ActionGroup: trailing items). */
|
|
4
|
+
export type OverflowCollapse = "start" | "end";
|
|
5
|
+
/** Marker for the overflow element's place in `Overflow.items()` (a string, so `<For by>` keys it). */
|
|
6
|
+
export declare const OVERFLOW = "\0rv-overflow";
|
|
7
|
+
export type OverflowMarker = typeof OVERFLOW;
|
|
8
|
+
export interface OverflowMeasureOptions {
|
|
9
|
+
/** `"start"`: keep the last items (Breadcrumbs). `"end"`: keep the first items (ActionGroup). @default 'end' */
|
|
10
|
+
collapse?: OverflowCollapse | undefined;
|
|
11
|
+
/** `"start"`: always keep the root (first) item while it fits (Spectrum Breadcrumbs `showRoot`). */
|
|
12
|
+
showRoot?: boolean | undefined;
|
|
13
|
+
/** `"start"`: the last item sits on its own line, it never collapses (Spectrum Breadcrumbs `isMultiline`). */
|
|
14
|
+
isMultiline?: boolean | undefined;
|
|
15
|
+
/** At most this many items stay visible (`"auto"` = no limit). @default 4 for "start", 'auto' for "end" */
|
|
16
|
+
maxVisibleItems?: number | "auto" | undefined;
|
|
17
|
+
/** `"end"`: measure widths (`horizontal`) or heights (`vertical`). @default 'horizontal' */
|
|
18
|
+
orientation?: "horizontal" | "vertical" | undefined;
|
|
19
|
+
}
|
|
20
|
+
export interface OverflowOptions<T> extends OverflowMeasureOptions {
|
|
21
|
+
/** The container (`ref()`): its element children are the items (and the overflow element), in order. */
|
|
22
|
+
ref: Ref<HTMLElement> | (() => HTMLElement | undefined);
|
|
23
|
+
/** The items, in order (accessor: a change re-measures). */
|
|
24
|
+
items: () => readonly T[];
|
|
25
|
+
/** Visible items before the browser measures (server render, first client render). @default every item */
|
|
26
|
+
defaultVisibleItems?: number | undefined;
|
|
27
|
+
/** No measuring, every item visible (Spectrum `overflowMode="wrap"`). May be an accessor. */
|
|
28
|
+
isDisabled?: MaybeAccessor<boolean | undefined>;
|
|
29
|
+
/** Called with the item elements while every item is shown, before each measurement (e.g. to read their text). */
|
|
30
|
+
onMeasureAll?: ((elements: HTMLElement[]) => void) | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface Overflow<T> {
|
|
33
|
+
/** How many items are visible (the rest are collapsed). */
|
|
34
|
+
visibleCount: () => number;
|
|
35
|
+
/** Whether some items are collapsed (the overflow element is shown). */
|
|
36
|
+
isCollapsed: () => boolean;
|
|
37
|
+
/** Whether a measurement is running (ActionGroup `isMeasuring`: let the container take all the space meanwhile). */
|
|
38
|
+
isMeasuring: () => boolean;
|
|
39
|
+
/** What to render, in order: the visible items with `OVERFLOW` where the overflow element goes (only while collapsed). */
|
|
40
|
+
items: () => readonly (T | OverflowMarker)[];
|
|
41
|
+
/** The visible items before the overflow element. */
|
|
42
|
+
before: () => readonly T[];
|
|
43
|
+
/** The collapsed items, in order (what the overflow element lists). */
|
|
44
|
+
hidden: () => readonly T[];
|
|
45
|
+
/** The visible items after the overflow element. */
|
|
46
|
+
after: () => readonly T[];
|
|
47
|
+
}
|
|
48
|
+
interface Slices<T> {
|
|
49
|
+
before: readonly T[];
|
|
50
|
+
hidden: readonly T[];
|
|
51
|
+
after: readonly T[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Splits `items` into visible-before / hidden / visible-after for `visible` visible items (Spectrum Breadcrumbs `contents`:
|
|
55
|
+
* `[root?, menu, ...last]`; ActionGroup: `[...first, menu]`).
|
|
56
|
+
*/
|
|
57
|
+
export declare function overflowSlices<T>(items: readonly T[], visible: number, options?: Pick<OverflowMeasureOptions, "collapse" | "showRoot">): Slices<T>;
|
|
58
|
+
/**
|
|
59
|
+
* The measured item elements: the container's element children, minus boxless ones (`display: none` / `contents`, e.g. the
|
|
60
|
+
* overlay anchor a Popover leaves next to its trigger). Spectrum measures `children` as is (its items are the only children).
|
|
61
|
+
*/
|
|
62
|
+
export declare function overflowChildren(container: HTMLElement): HTMLElement[];
|
|
63
|
+
/**
|
|
64
|
+
* Spectrum Breadcrumbs `computeVisibleItems`: how many items fit in `container` (its `offsetWidth`) given the item
|
|
65
|
+
* elements as rendered with `visible` visible items of `total` (`[root?, menu?, ...visible]`).
|
|
66
|
+
*/
|
|
67
|
+
export declare function computeVisibleItemsStart(container: HTMLElement, total: number, visible: number, options?: OverflowMeasureOptions): number;
|
|
68
|
+
/**
|
|
69
|
+
* Spectrum ActionGroup `computeVisibleItems`: how many leading items fit in `container` (its bounding size) given the
|
|
70
|
+
* item elements as rendered with `visible` visible items of `total` (`[...visible, menu?]`).
|
|
71
|
+
*/
|
|
72
|
+
export declare function computeVisibleItemsEnd(container: HTMLElement, total: number, visible: number, options?: OverflowMeasureOptions): number;
|
|
73
|
+
interface OverflowRun {
|
|
74
|
+
container: HTMLElement;
|
|
75
|
+
total: number;
|
|
76
|
+
options: OverflowMeasureOptions;
|
|
77
|
+
visible: {
|
|
78
|
+
set(value: number): unknown;
|
|
79
|
+
};
|
|
80
|
+
measuring: {
|
|
81
|
+
set(value: boolean): unknown;
|
|
82
|
+
};
|
|
83
|
+
onMeasureAll: ((elements: HTMLElement[]) => void) | undefined;
|
|
84
|
+
}
|
|
85
|
+
/** Spectrum `updateOverflow`: show every item, measure, show what fits, measure again with the overflow element shown. */
|
|
86
|
+
export declare function updateOverflow(run: OverflowRun): void;
|
|
87
|
+
/**
|
|
88
|
+
* Measures a container's items and collapses the ones that do not fit (React Spectrum Breadcrumbs / ActionGroup
|
|
89
|
+
* overflow). Render `overflow.items()` into the container (the `OVERFLOW` marker = your overflow element, e.g. a
|
|
90
|
+
* "…" button opening a Menu of `overflow.hidden()`), or use `before` / `hidden` / `after`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function createOverflow<T>(options: OverflowOptions<T>): Overflow<T>;
|
|
93
|
+
export {};
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
// Ported from React Spectrum v3 (Apache-2.0, © Adobe): the overflow measuring of `@react-spectrum/breadcrumbs`
|
|
2
|
+
// (packages/@adobe/react-spectrum/src/breadcrumbs/Breadcrumbs.tsx: `updateOverflow` / `computeVisibleItems`) and
|
|
3
|
+
// `@react-spectrum/actiongroup` `overflowMode="collapse"` (packages/@adobe/react-spectrum/src/actiongroup/ActionGroup.tsx:
|
|
4
|
+
// `updateOverflow` / `computeVisibleItems`, `outerWidth` / `outerHeight`), generalised into one headless module.
|
|
5
|
+
// - `collapse: "start"` = Breadcrumbs: keep the last items (and the root with `showRoot`), collapse the leading ones into
|
|
6
|
+
// one overflow element placed after the root; `collapse: "end"` = ActionGroup: keep the leading items, collapse the tail
|
|
7
|
+
// into an overflow element placed last.
|
|
8
|
+
// - Measurement sequence = Spectrum's `useValueEffect` generator: show every item, measure, show the items that fit (with
|
|
9
|
+
// the overflow element), measure again so the overflow element fits too. Each step is a signal write outside any batch:
|
|
10
|
+
// Rivet flushes it into the DOM synchronously, so the measurement reads the new layout (one frame, no paint between).
|
|
11
|
+
// - Triggers: a ResizeObserver on the container (RA `useResizeObserver`), a change of the items / `isDisabled`
|
|
12
|
+
// (RA `useLayoutEffect` on children), `document.fonts.ready` (S2 Breadcrumbs). All in one `clientEffect`: it never runs
|
|
13
|
+
// on the server; on a resumed page it starts when the container becomes visible.
|
|
14
|
+
// - SSR: the server renders `defaultVisibleItems` (default: every item, as Spectrum's initial state); the browser
|
|
15
|
+
// then measures. See `apps/cdk-docs/content/foundations/overflow.md` (layout-shift policy).
|
|
16
|
+
// Rivet:
|
|
17
|
+
// - The container's own element children are the measured items (Spectrum: the `<ul>` children / the ActionGroup items).
|
|
18
|
+
// - A flex `column-gap` / `row-gap` on the container is counted between items (Spectrum's CSS has no gap; S2 Breadcrumbs
|
|
19
|
+
// subtracts the container gap the same way). `maxVisibleItems` (default 4 for "start" = Spectrum's
|
|
20
|
+
// `MAX_VISIBLE_ITEMS`, unlimited for "end") and `defaultVisibleItems` are options.
|
|
21
|
+
// - Not ported: ActionGroup's `buttonLabelBehavior="collapse"` pass and "collapse everything when selectable" rule
|
|
22
|
+
// (ActionGroup specifics, not overflow logic).
|
|
23
|
+
import { computed, signal, untrack } from "@rivetjs/reactivity";
|
|
24
|
+
import { clientEffect } from "@rivetjs/runtime/dom";
|
|
25
|
+
import { read } from "../interactions/utils.js";
|
|
26
|
+
/** Marker for the overflow element's place in `Overflow.items()` (a string, so `<For by>` keys it). */
|
|
27
|
+
export const OVERFLOW = "\u0000rv-overflow";
|
|
28
|
+
/** Spectrum Breadcrumbs `MIN_VISIBLE_ITEMS`. */
|
|
29
|
+
const MIN_VISIBLE_ITEMS = 1;
|
|
30
|
+
/** Spectrum Breadcrumbs `MAX_VISIBLE_ITEMS`. */
|
|
31
|
+
const MAX_VISIBLE_ITEMS = 4;
|
|
32
|
+
/**
|
|
33
|
+
* Splits `items` into visible-before / hidden / visible-after for `visible` visible items (Spectrum Breadcrumbs `contents`:
|
|
34
|
+
* `[root?, menu, ...last]`; ActionGroup: `[...first, menu]`).
|
|
35
|
+
*/
|
|
36
|
+
export function overflowSlices(items, visible, options = {}) {
|
|
37
|
+
const total = items.length;
|
|
38
|
+
if (visible >= total)
|
|
39
|
+
return { before: items, hidden: [], after: [] };
|
|
40
|
+
if (options.collapse !== "start")
|
|
41
|
+
return { before: items.slice(0, Math.max(0, visible)), hidden: items.slice(Math.max(0, visible)), after: [] };
|
|
42
|
+
const n = Math.max(MIN_VISIBLE_ITEMS, visible);
|
|
43
|
+
const root = !!options.showRoot && n > 1;
|
|
44
|
+
const endItems = root ? n - 1 : n;
|
|
45
|
+
return { before: root ? items.slice(0, 1) : [], hidden: items.slice(root ? 1 : 0, total - endItems), after: items.slice(total - endItems) };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The measured item elements: the container's element children, minus boxless ones (`display: none` / `contents`, e.g. the
|
|
49
|
+
* overlay anchor a Popover leaves next to its trigger). Spectrum measures `children` as is (its items are the only children).
|
|
50
|
+
*/
|
|
51
|
+
export function overflowChildren(container) {
|
|
52
|
+
const out = [];
|
|
53
|
+
for (const child of Array.from(container.children)) {
|
|
54
|
+
const display = getComputedStyle(child).display;
|
|
55
|
+
if (display !== "none" && display !== "contents")
|
|
56
|
+
out.push(child);
|
|
57
|
+
}
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
60
|
+
const toNumber = (value) => {
|
|
61
|
+
const parsed = parseInt(value, 10);
|
|
62
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
63
|
+
};
|
|
64
|
+
/** The container's flex gap along the main axis (0 when none / not flex). */
|
|
65
|
+
function gapOf(container, vertical) {
|
|
66
|
+
const style = getComputedStyle(container);
|
|
67
|
+
return toNumber(vertical ? style.rowGap : style.columnGap);
|
|
68
|
+
}
|
|
69
|
+
const maxOf = (options) => {
|
|
70
|
+
const max = options.maxVisibleItems;
|
|
71
|
+
if (max === "auto")
|
|
72
|
+
return Infinity;
|
|
73
|
+
return max ?? (options.collapse === "start" ? MAX_VISIBLE_ITEMS : Infinity);
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Spectrum Breadcrumbs `computeVisibleItems`: how many items fit in `container` (its `offsetWidth`) given the item
|
|
77
|
+
* elements as rendered with `visible` visible items of `total` (`[root?, menu?, ...visible]`).
|
|
78
|
+
*/
|
|
79
|
+
export function computeVisibleItemsStart(container, total, visible, options = {}) {
|
|
80
|
+
const listItems = overflowChildren(container);
|
|
81
|
+
if (listItems.length <= 0)
|
|
82
|
+
return visible;
|
|
83
|
+
const containerWidth = container.offsetWidth;
|
|
84
|
+
const gap = gapOf(container, false);
|
|
85
|
+
const isShowingMenu = total > visible;
|
|
86
|
+
let calculatedWidth = 0;
|
|
87
|
+
let newVisibleItems = 0;
|
|
88
|
+
let maxVisibleItems = maxOf({ ...options, collapse: "start" });
|
|
89
|
+
if (options.showRoot) {
|
|
90
|
+
calculatedWidth += listItems.shift().offsetWidth + gap;
|
|
91
|
+
newVisibleItems++;
|
|
92
|
+
}
|
|
93
|
+
if (isShowingMenu) {
|
|
94
|
+
calculatedWidth += (listItems.shift()?.offsetWidth ?? 0) + gap;
|
|
95
|
+
maxVisibleItems--;
|
|
96
|
+
}
|
|
97
|
+
if (options.showRoot && calculatedWidth >= containerWidth)
|
|
98
|
+
newVisibleItems--;
|
|
99
|
+
if (options.isMultiline) {
|
|
100
|
+
listItems.pop();
|
|
101
|
+
newVisibleItems++;
|
|
102
|
+
}
|
|
103
|
+
else if (listItems.length > 0) {
|
|
104
|
+
// Ensure the last breadcrumb isn't truncated when we measure it.
|
|
105
|
+
const last = listItems.pop();
|
|
106
|
+
const overflow = last.style.overflow;
|
|
107
|
+
last.style.overflow = "visible";
|
|
108
|
+
calculatedWidth += last.offsetWidth;
|
|
109
|
+
if (calculatedWidth < containerWidth)
|
|
110
|
+
newVisibleItems++;
|
|
111
|
+
last.style.overflow = overflow;
|
|
112
|
+
}
|
|
113
|
+
for (const breadcrumb of listItems.reverse()) {
|
|
114
|
+
calculatedWidth += breadcrumb.offsetWidth + gap;
|
|
115
|
+
if (calculatedWidth < containerWidth)
|
|
116
|
+
newVisibleItems++;
|
|
117
|
+
}
|
|
118
|
+
return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));
|
|
119
|
+
}
|
|
120
|
+
/** ActionGroup `outerWidth` / `outerHeight` (logical margins: the first item's start and the last item's end are ignored). */
|
|
121
|
+
function outerSize(element, vertical, ignoreStart, ignoreEnd) {
|
|
122
|
+
const style = getComputedStyle(element);
|
|
123
|
+
const rect = element.getBoundingClientRect();
|
|
124
|
+
if (vertical)
|
|
125
|
+
return rect.height + (ignoreStart ? 0 : toNumber(style.marginTop)) + (ignoreEnd ? 0 : toNumber(style.marginBottom));
|
|
126
|
+
const rtl = style.direction === "rtl";
|
|
127
|
+
const start = rtl ? style.marginRight : style.marginLeft;
|
|
128
|
+
const end = rtl ? style.marginLeft : style.marginRight;
|
|
129
|
+
return rect.width + (ignoreStart ? 0 : toNumber(start)) + (ignoreEnd ? 0 : toNumber(end));
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Spectrum ActionGroup `computeVisibleItems`: how many leading items fit in `container` (its bounding size) given the
|
|
133
|
+
* item elements as rendered with `visible` visible items of `total` (`[...visible, menu?]`).
|
|
134
|
+
*/
|
|
135
|
+
export function computeVisibleItemsEnd(container, total, visible, options = {}) {
|
|
136
|
+
const vertical = options.orientation === "vertical";
|
|
137
|
+
const listItems = overflowChildren(container);
|
|
138
|
+
const rect = container.getBoundingClientRect();
|
|
139
|
+
const containerSize = vertical ? rect.height : rect.width;
|
|
140
|
+
const gap = gapOf(container, vertical);
|
|
141
|
+
const isShowingMenu = visible < total;
|
|
142
|
+
let calculatedSize = 0;
|
|
143
|
+
let newVisibleItems = 0;
|
|
144
|
+
if (isShowingMenu) {
|
|
145
|
+
const item = listItems.pop();
|
|
146
|
+
if (item)
|
|
147
|
+
calculatedSize += outerSize(item, vertical, false, true) + gap;
|
|
148
|
+
}
|
|
149
|
+
for (const [i, item] of listItems.entries()) {
|
|
150
|
+
calculatedSize += outerSize(item, vertical, i === 0, i === listItems.length - 1) + (i > 0 ? gap : 0);
|
|
151
|
+
if (Math.round(calculatedSize) <= Math.round(containerSize))
|
|
152
|
+
newVisibleItems++;
|
|
153
|
+
else
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
return Math.min(maxOf(options), newVisibleItems);
|
|
157
|
+
}
|
|
158
|
+
/** Spectrum `updateOverflow`: show every item, measure, show what fits, measure again with the overflow element shown. */
|
|
159
|
+
export function updateOverflow(run) {
|
|
160
|
+
const { container, total, options, visible, measuring } = run;
|
|
161
|
+
const start = options.collapse === "start";
|
|
162
|
+
const compute = start ? computeVisibleItemsStart : computeVisibleItemsEnd;
|
|
163
|
+
// Update to show all items.
|
|
164
|
+
measuring.set(true);
|
|
165
|
+
visible.set(total);
|
|
166
|
+
run.onMeasureAll?.(overflowChildren(container));
|
|
167
|
+
// Measure, and update to show the items that fit.
|
|
168
|
+
let next = compute(container, total, total, options);
|
|
169
|
+
const again = next < total && next > (start ? 1 : 0);
|
|
170
|
+
visible.set(next);
|
|
171
|
+
// If the number of items is less than the number of children, then update again to ensure that the menu fits.
|
|
172
|
+
if (again)
|
|
173
|
+
visible.set((next = compute(container, total, next, options)));
|
|
174
|
+
measuring.set(false);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Measures a container's items and collapses the ones that do not fit (React Spectrum Breadcrumbs / ActionGroup
|
|
178
|
+
* overflow). Render `overflow.items()` into the container (the `OVERFLOW` marker = your overflow element, e.g. a
|
|
179
|
+
* "…" button opening a Menu of `overflow.hidden()`), or use `before` / `hidden` / `after`.
|
|
180
|
+
*/
|
|
181
|
+
export function createOverflow(options) {
|
|
182
|
+
const { ref, items, isDisabled, onMeasureAll } = options;
|
|
183
|
+
const measure = {
|
|
184
|
+
collapse: options.collapse ?? "end",
|
|
185
|
+
showRoot: options.showRoot,
|
|
186
|
+
isMultiline: options.isMultiline,
|
|
187
|
+
maxVisibleItems: options.maxVisibleItems,
|
|
188
|
+
orientation: options.orientation,
|
|
189
|
+
};
|
|
190
|
+
const initial = options.defaultVisibleItems;
|
|
191
|
+
// A JSON-safe "every item" (the signal resumes; `Infinity` does not serialize).
|
|
192
|
+
const visible = signal(initial == null ? Number.MAX_SAFE_INTEGER : Math.max(0, initial));
|
|
193
|
+
const measuring = signal(false);
|
|
194
|
+
const count = computed(() => Math.min(visible(), items().length));
|
|
195
|
+
const isCollapsed = computed(() => !read(isDisabled) && count() < items().length);
|
|
196
|
+
const slices = computed(() => {
|
|
197
|
+
const list = items();
|
|
198
|
+
return isCollapsed() ? overflowSlices(list, count(), measure) : { before: list, hidden: [], after: [] };
|
|
199
|
+
});
|
|
200
|
+
const before = computed(() => slices().before);
|
|
201
|
+
const hidden = computed(() => slices().hidden);
|
|
202
|
+
const after = computed(() => slices().after);
|
|
203
|
+
const rendered = computed(() => {
|
|
204
|
+
const s = slices();
|
|
205
|
+
return isCollapsed() ? [...s.before, OVERFLOW, ...s.after] : s.before;
|
|
206
|
+
});
|
|
207
|
+
clientEffect(() => {
|
|
208
|
+
const container = ref();
|
|
209
|
+
const total = items().length;
|
|
210
|
+
if (!container)
|
|
211
|
+
return;
|
|
212
|
+
if (read(isDisabled))
|
|
213
|
+
return void visible.set(total);
|
|
214
|
+
let alive = true;
|
|
215
|
+
const run = { container, total, options: measure, visible, measuring, onMeasureAll };
|
|
216
|
+
// The measured-axis size (container width; height for a vertical `"end"` group) at the last completed measurement.
|
|
217
|
+
const vertical = measure.collapse === "end" && measure.orientation === "vertical";
|
|
218
|
+
let measured = -1;
|
|
219
|
+
const update = () => alive && untrack(() => updateOverflow(run));
|
|
220
|
+
// Watch the container (Spectrum: the nav / the ActionGroup's parent). The first callback measures synchronously (no
|
|
221
|
+
// paint before the first collapse). Our own show-all / collapse writes change the container's content, so a container
|
|
222
|
+
// whose height follows its content fires the observer again:
|
|
223
|
+
// - same size on the measured axis = the re-fire of our own write: skipped;
|
|
224
|
+
// - changed size (a real resize): measured in the next animation frame, not inside the callback. A measurement that
|
|
225
|
+
// leaves the observed element a different size than the callback saw cannot be delivered in the same frame
|
|
226
|
+
// ("ResizeObserver loop completed with undelivered notifications"). The measurement is still one synchronous
|
|
227
|
+
// sequence (show all, collapse) inside that frame callback, so it never paints a half state.
|
|
228
|
+
let frame = 0;
|
|
229
|
+
const onResize = (entries) => {
|
|
230
|
+
const rect = entries[entries.length - 1]?.contentRect;
|
|
231
|
+
const size = rect ? (vertical ? rect.height : rect.width) : -1;
|
|
232
|
+
if (size >= 0 && size === measured)
|
|
233
|
+
return;
|
|
234
|
+
const first = measured === -1;
|
|
235
|
+
measured = size;
|
|
236
|
+
if (first)
|
|
237
|
+
return update();
|
|
238
|
+
if (!frame)
|
|
239
|
+
frame = requestAnimationFrame(() => {
|
|
240
|
+
frame = 0;
|
|
241
|
+
update();
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
const observer = typeof ResizeObserver === "function" ? new ResizeObserver(onResize) : null;
|
|
245
|
+
if (observer)
|
|
246
|
+
observer.observe(container);
|
|
247
|
+
else
|
|
248
|
+
queueMicrotask(update);
|
|
249
|
+
// Recalculate when fonts are loaded (S2 Breadcrumbs).
|
|
250
|
+
void document.fonts?.ready.then(update);
|
|
251
|
+
return () => {
|
|
252
|
+
alive = false;
|
|
253
|
+
if (frame)
|
|
254
|
+
cancelAnimationFrame(frame);
|
|
255
|
+
observer?.disconnect();
|
|
256
|
+
};
|
|
257
|
+
});
|
|
258
|
+
return {
|
|
259
|
+
visibleCount: count,
|
|
260
|
+
isCollapsed,
|
|
261
|
+
isMeasuring: measuring,
|
|
262
|
+
items: rendered,
|
|
263
|
+
before,
|
|
264
|
+
hidden,
|
|
265
|
+
after,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface AriaHideOutsideOptions {
|
|
2
|
+
/** Nothing above this element is hidden. @default document.body */
|
|
3
|
+
root?: Element;
|
|
4
|
+
/** Use `inert` instead of `aria-hidden` (also blocks pointer and focus). */
|
|
5
|
+
shouldUseInert?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** Hide everything outside `targets`; returns the function that restores it. */
|
|
8
|
+
export declare function ariaHideOutside(targets: Element[], options?: AriaHideOutsideOptions | Element): () => void;
|
|
9
|
+
/** Keep `element` visible in the active `ariaHideOutside` (e.g. a nested overlay while it enters); returns the undo function. */
|
|
10
|
+
export declare function keepVisible(element: Element): (() => void) | undefined;
|
|
11
|
+
/** Test hook: forget all reference counts. */
|
|
12
|
+
export declare function _resetAriaHideOutside(): void;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// Hide everything outside the given elements from assistive technology (React Aria
|
|
2
|
+
// `ariaHideOutside`): `aria-hidden="true"` (or `inert` with `shouldUseInert`) on the outermost
|
|
3
|
+
// elements that contain none of the targets, reference counted per element, with a
|
|
4
|
+
// MutationObserver hiding elements added later. Live announcers and top-layer content (toasts:
|
|
5
|
+
// `[data-rv-top-layer]`) stay visible. Nested calls stack: the newest observer is active.
|
|
6
|
+
// The overlay layer uses it for every modal surface (modals, modal popovers, menus).
|
|
7
|
+
//
|
|
8
|
+
// Ported from @react-aria/overlays (ariaHideOutside.ts), Apache-2.0, © Adobe.
|
|
9
|
+
const ALWAYS_VISIBLE = "[data-rv-announcer], [data-rv-announcers], [data-live-announcer], [data-rv-top-layer], [data-react-aria-top-layer]";
|
|
10
|
+
const isAlwaysVisibleNode = (node) => node.matches(ALWAYS_VISIBLE);
|
|
11
|
+
// Hidden elements → how many calls hide them; aria-hidden is removed when it returns to 0.
|
|
12
|
+
let refCountMap = new WeakMap();
|
|
13
|
+
const observerStack = [];
|
|
14
|
+
/** Hide everything outside `targets`; returns the function that restores it. */
|
|
15
|
+
export function ariaHideOutside(targets, options) {
|
|
16
|
+
const windowObj = (targets?.[0]?.ownerDocument.defaultView ?? window);
|
|
17
|
+
const opts = options instanceof windowObj.Element ? { root: options } : options;
|
|
18
|
+
const root = opts?.root ?? document.body;
|
|
19
|
+
const supportsInert = "inert" in windowObj.HTMLElement.prototype;
|
|
20
|
+
const shouldUseInert = opts?.shouldUseInert && supportsInert;
|
|
21
|
+
const visibleNodes = new Set(targets);
|
|
22
|
+
const hiddenNodes = new Set();
|
|
23
|
+
const getHidden = (element) => shouldUseInert && element instanceof windowObj.HTMLElement ? element.inert : element.getAttribute("aria-hidden") === "true";
|
|
24
|
+
const setHidden = (element, hidden) => {
|
|
25
|
+
if (shouldUseInert && element instanceof windowObj.HTMLElement)
|
|
26
|
+
element.inert = hidden;
|
|
27
|
+
else if (hidden)
|
|
28
|
+
element.setAttribute("aria-hidden", "true");
|
|
29
|
+
else {
|
|
30
|
+
element.removeAttribute("aria-hidden");
|
|
31
|
+
// Only called with false when the count reaches 0: visible again, so not inert either.
|
|
32
|
+
if (element instanceof windowObj.HTMLElement)
|
|
33
|
+
element.inert = false;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const walk = (walkRoot) => {
|
|
37
|
+
// Live announcers and top-layer content stay visible.
|
|
38
|
+
for (const element of walkRoot.querySelectorAll(ALWAYS_VISIBLE))
|
|
39
|
+
visibleNodes.add(element);
|
|
40
|
+
const acceptNode = (node) => {
|
|
41
|
+
// Skip targets, announcers, and children of hidden nodes (aria-hidden is recursive) — except
|
|
42
|
+
// children of role="row": VoiceOver on iOS does not hide rows (https://bugs.webkit.org/show_bug.cgi?id=222623).
|
|
43
|
+
if (hiddenNodes.has(node) ||
|
|
44
|
+
visibleNodes.has(node) ||
|
|
45
|
+
(node.parentElement && hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute("role") !== "row"))
|
|
46
|
+
return NodeFilter.FILTER_REJECT;
|
|
47
|
+
// Descend into nodes containing a target.
|
|
48
|
+
for (const target of visibleNodes)
|
|
49
|
+
if (node.contains(target))
|
|
50
|
+
return NodeFilter.FILTER_SKIP;
|
|
51
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
52
|
+
};
|
|
53
|
+
const walker = walkRoot.ownerDocument.createTreeWalker(walkRoot, NodeFilter.SHOW_ELEMENT, { acceptNode: (node) => acceptNode(node) });
|
|
54
|
+
// The walker skips its root.
|
|
55
|
+
const acceptRoot = acceptNode(walkRoot);
|
|
56
|
+
if (acceptRoot === NodeFilter.FILTER_ACCEPT)
|
|
57
|
+
hide(walkRoot);
|
|
58
|
+
if (acceptRoot !== NodeFilter.FILTER_REJECT) {
|
|
59
|
+
let node = walker.nextNode();
|
|
60
|
+
while (node != null) {
|
|
61
|
+
hide(node);
|
|
62
|
+
node = walker.nextNode();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const hide = (node) => {
|
|
67
|
+
const refCount = refCountMap.get(node) ?? 0;
|
|
68
|
+
// Hidden already, not by us: leave it.
|
|
69
|
+
if (getHidden(node) && refCount === 0)
|
|
70
|
+
return;
|
|
71
|
+
if (refCount === 0)
|
|
72
|
+
setHidden(node, true);
|
|
73
|
+
hiddenNodes.add(node);
|
|
74
|
+
refCountMap.set(node, refCount + 1);
|
|
75
|
+
};
|
|
76
|
+
// A previous call's observer pauses; this one takes over.
|
|
77
|
+
if (observerStack.length)
|
|
78
|
+
observerStack[observerStack.length - 1].disconnect();
|
|
79
|
+
walk(root);
|
|
80
|
+
const observer = new MutationObserver((changes) => {
|
|
81
|
+
for (const change of changes) {
|
|
82
|
+
if (change.type !== "childList")
|
|
83
|
+
continue;
|
|
84
|
+
// Added outside every target and every hidden node: hide the new children.
|
|
85
|
+
if (change.target.isConnected && ![...visibleNodes, ...hiddenNodes].some((node) => node.contains(change.target))) {
|
|
86
|
+
for (const node of change.addedNodes) {
|
|
87
|
+
if ((node instanceof HTMLElement || node instanceof SVGElement) && isAlwaysVisibleNode(node))
|
|
88
|
+
visibleNodes.add(node);
|
|
89
|
+
else if (node instanceof Element)
|
|
90
|
+
walk(node);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
observer.observe(root, { childList: true, subtree: true });
|
|
96
|
+
const observerWrapper = {
|
|
97
|
+
visibleNodes,
|
|
98
|
+
hiddenNodes,
|
|
99
|
+
observe: () => observer.observe(root, { childList: true, subtree: true }),
|
|
100
|
+
disconnect: () => observer.disconnect(),
|
|
101
|
+
};
|
|
102
|
+
observerStack.push(observerWrapper);
|
|
103
|
+
return () => {
|
|
104
|
+
observer.disconnect();
|
|
105
|
+
for (const node of hiddenNodes) {
|
|
106
|
+
const count = refCountMap.get(node);
|
|
107
|
+
if (count == null)
|
|
108
|
+
continue;
|
|
109
|
+
if (count === 1) {
|
|
110
|
+
setHidden(node, false);
|
|
111
|
+
refCountMap.delete(node);
|
|
112
|
+
}
|
|
113
|
+
else
|
|
114
|
+
refCountMap.set(node, count - 1);
|
|
115
|
+
}
|
|
116
|
+
// Pop this observer and resume the previous one.
|
|
117
|
+
if (observerWrapper === observerStack[observerStack.length - 1]) {
|
|
118
|
+
observerStack.pop();
|
|
119
|
+
if (observerStack.length)
|
|
120
|
+
observerStack[observerStack.length - 1].observe();
|
|
121
|
+
}
|
|
122
|
+
else
|
|
123
|
+
observerStack.splice(observerStack.indexOf(observerWrapper), 1);
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/** Keep `element` visible in the active `ariaHideOutside` (e.g. a nested overlay while it enters); returns the undo function. */
|
|
127
|
+
export function keepVisible(element) {
|
|
128
|
+
const observer = observerStack[observerStack.length - 1];
|
|
129
|
+
if (observer && !observer.visibleNodes.has(element)) {
|
|
130
|
+
observer.visibleNodes.add(element);
|
|
131
|
+
return () => {
|
|
132
|
+
observer.visibleNodes.delete(element);
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
/** Test hook: forget all reference counts. */
|
|
138
|
+
export function _resetAriaHideOutside() {
|
|
139
|
+
refCountMap = new WeakMap();
|
|
140
|
+
observerStack.length = 0;
|
|
141
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const onCloseMap: WeakMap<Element, () => void>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// The close function an overlay trigger shares with `overlayPosition`, keyed by the trigger
|
|
2
|
+
// element (React Aria's `onCloseMap`): scrolling a scroll parent of the trigger closes the overlay
|
|
3
|
+
// without passing `onClose` to the positioning. Tiny on purpose (imported by both sides).
|
|
4
|
+
//
|
|
5
|
+
// Ported from @react-aria/overlays (useCloseOnScroll.ts), Apache-2.0, © Adobe.
|
|
6
|
+
export const onCloseMap = new WeakMap();
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Context, type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { Ref } from "@rivetjs/runtime/jsx-runtime";
|
|
3
|
+
import type { ContextValue } from "../slots/index.jsx";
|
|
4
|
+
import type { PlacementAxis } from "./position.js";
|
|
5
|
+
import type { OverlayTriggerState } from "../state/overlays.js";
|
|
6
|
+
import type { PopoverProps } from "../popover/index.jsx";
|
|
7
|
+
/** The overlay trigger state of the nearest DialogTrigger / MenuTrigger / Select / … (RAC `OverlayTriggerStateContext`). */
|
|
8
|
+
export declare const OverlayTriggerStateContext: Context<OverlayTriggerState | null>;
|
|
9
|
+
/** What a trigger component passes to its `<Popover>` (RAC `PopoverContextValue`). */
|
|
10
|
+
export interface PopoverContextValue extends Omit<PopoverProps, "children" | "ref"> {
|
|
11
|
+
id?: string;
|
|
12
|
+
/** Contexts to clear (provided as `null`) for the popover's children (RAC: ComboBox clears its field contexts). */
|
|
13
|
+
clearContexts?: readonly Context<any>[];
|
|
14
|
+
/** The trigger's id signal: a user `id` on the Popover replaces the generated one (RA mergeIds; Rivet). */
|
|
15
|
+
idRef?: Signal<string>;
|
|
16
|
+
}
|
|
17
|
+
/** Props from the nearest trigger component for its Popover (RAC `PopoverContext`). Popover clears it for its children. */
|
|
18
|
+
export declare const PopoverContext: Context<ContextValue<PopoverContextValue, HTMLElement>>;
|
|
19
|
+
/** What Popover / Tooltip pass to an `<OverlayArrow>` inside them (RAC `OverlayArrowContext`). */
|
|
20
|
+
export interface OverlayArrowContextValue {
|
|
21
|
+
/** The placement of the overlay relative to the trigger (after flipping); null until positioned. */
|
|
22
|
+
placement: Signal<PlacementAxis | null> | PlacementAxis | null;
|
|
23
|
+
/** The arrow element ref the overlay positions (RAC: the context `ref`). */
|
|
24
|
+
ref?: Ref<HTMLDivElement>;
|
|
25
|
+
/** RA `arrowProps.style` (`left` / `top` in px) as a signal; the arrow's own `style` wins. */
|
|
26
|
+
offset?: Signal<ArrowOffset | null>;
|
|
27
|
+
}
|
|
28
|
+
/** The arrow's cross-axis offset within the overlay (RA `arrowProps.style`). */
|
|
29
|
+
export interface ArrowOffset {
|
|
30
|
+
left?: number;
|
|
31
|
+
top?: number;
|
|
32
|
+
}
|
|
33
|
+
/** RAC `OverlayArrowContext` (default placement "bottom"). */
|
|
34
|
+
export declare const OverlayArrowContext: Context<ContextValue<OverlayArrowContextValue, HTMLDivElement>>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Ported from React Aria Components (Dialog.tsx `OverlayTriggerStateContext`, Popover.tsx
|
|
2
|
+
// `PopoverContext`, OverlayArrow.tsx `OverlayArrowContext`), Apache-2.0, © Adobe.
|
|
3
|
+
// The overlay contexts that trigger components (DialogTrigger, MenuTrigger, Select, ComboBox,
|
|
4
|
+
// DatePicker, PreviewTrigger, SubmenuTrigger) provide and Popover / OverlayArrow consume.
|
|
5
|
+
// Rivet:
|
|
6
|
+
// - one tiny module (no component code): a trigger that provides `PopoverContext` does not pull the
|
|
7
|
+
// Popover component in (importing popover/index.tsx would register its own module state).
|
|
8
|
+
// - every token is a `resumableContext` (ids `rv-overlay-trigger-state`, `rv-popover`,
|
|
9
|
+
// `rv-overlay-arrow`): a region re-created on a resumed page is re-provided with the value, so values
|
|
10
|
+
// must serialize — state objects (signals + JSON), `ref()` element refs, strings, numbers, booleans,
|
|
11
|
+
// inline-arrow closures.
|
|
12
|
+
// - `OverlayArrowContext` carries the placement and RA's `arrowProps.style` offset as signals (they
|
|
13
|
+
// change after positioning); the arrow's own `style` wins over them, as in RAC.
|
|
14
|
+
import { createContext } from "@rivetjs/reactivity";
|
|
15
|
+
import { resumableContext } from "@rivetjs/runtime/resume-format";
|
|
16
|
+
/** The overlay trigger state of the nearest DialogTrigger / MenuTrigger / Select / … (RAC `OverlayTriggerStateContext`). */
|
|
17
|
+
export const OverlayTriggerStateContext = resumableContext(createContext(null, { id: "rv-overlay-trigger-state" }));
|
|
18
|
+
/** Props from the nearest trigger component for its Popover (RAC `PopoverContext`). Popover clears it for its children. */
|
|
19
|
+
export const PopoverContext = resumableContext(createContext(null, { id: "rv-popover" }));
|
|
20
|
+
/** RAC `OverlayArrowContext` (default placement "bottom"). */
|
|
21
|
+
export const OverlayArrowContext = resumableContext(createContext({ placement: "bottom" }, { id: "rv-overlay-arrow" }));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface DismissButtonProps {
|
|
2
|
+
/** Called when the button is activated. */
|
|
3
|
+
onDismiss?: () => void;
|
|
4
|
+
"aria-label"?: string;
|
|
5
|
+
"aria-labelledby"?: string;
|
|
6
|
+
id?: string;
|
|
7
|
+
/** Locale of the default label. @default "en-US" on the server */
|
|
8
|
+
locale?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function DismissButton(props: DismissButtonProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// A visually hidden button that lets screen reader users dismiss a popup without a visible close
|
|
2
|
+
// affordance (React Aria `DismissButton`): place one at the start and end of a popover. Label:
|
|
3
|
+
// localized "Dismiss" (`locale`, default the document language / en-US) unless `aria-label` /
|
|
4
|
+
// `aria-labelledby` is given. Hidden by inline styles (no stylesheet needed).
|
|
5
|
+
//
|
|
6
|
+
// Ported from @react-aria/overlays (DismissButton.tsx), Apache-2.0, © Adobe.
|
|
7
|
+
import { dismissLabel } from "./overlay-strings.js";
|
|
8
|
+
import { visuallyHidden } from "../a11y/index.js";
|
|
9
|
+
export function DismissButton(props) {
|
|
10
|
+
const onDismiss = props.onDismiss;
|
|
11
|
+
// useLabels: aria-labelledby alone keeps no default label; with both, the button labels itself too.
|
|
12
|
+
const labelledBy = props["aria-labelledby"];
|
|
13
|
+
const label = props["aria-label"] ?? (labelledBy ? undefined : dismissLabel(props.locale));
|
|
14
|
+
const id = props.id;
|
|
15
|
+
return (<div style={visuallyHidden}>
|
|
16
|
+
<button type="button" id={id} aria-label={label} aria-labelledby={labelledBy && props["aria-label"] && id ? `${id} ${labelledBy}` : labelledBy} tabIndex={-1} onClick={() => onDismiss?.()}></button>
|
|
17
|
+
</div>);
|
|
18
|
+
}
|