@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,486 @@
|
|
|
1
|
+
// Ported from @react-aria/selection (useSelectableItem.ts), Apache-2.0, © Adobe. The press and long
|
|
2
|
+
// press handling it needs from @react-aria/interactions (usePress / useLongPress) is reduced to the
|
|
3
|
+
// events the selection logic reads (press start / up / press with pointerType, long press on touch);
|
|
4
|
+
// the full press machine (pointer capture, cancel on leave, text selection guards) belongs to the
|
|
5
|
+
// cdk-interactions port.
|
|
6
|
+
//
|
|
7
|
+
// Rivet shape: handler bodies `(options, event)` for delegated wiring on the collection element
|
|
8
|
+
// (`closestItem` finds the item and its key), plus attribute accessors and the state flags.
|
|
9
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
10
|
+
import { domKey } from "../collections/dom.js";
|
|
11
|
+
import { isFocusedKey } from "./keyed.js";
|
|
12
|
+
import { focusSafely, isOpeningLink, moveVirtualFocus, openLink, pointerTypeOf, trackModality } from "./dom-utils.js";
|
|
13
|
+
import { getCollectionId, isCtrlKeyPressed, isNonContiguousSelectionModifier, refElement } from "./utils.js";
|
|
14
|
+
import { isTabbable } from "../a11y/index.js";
|
|
15
|
+
import { routerOpen } from "../utils/links.jsx";
|
|
16
|
+
const pressOf = (e, pointerType = pointerTypeOf(e)) => {
|
|
17
|
+
const m = e;
|
|
18
|
+
return { pointerType, key: m.key, shiftKey: !!m.shiftKey, ctrlKey: !!m.ctrlKey, metaKey: !!m.metaKey, altKey: !!m.altKey };
|
|
19
|
+
};
|
|
20
|
+
function derive(options) {
|
|
21
|
+
const { selectionManager: manager, key, onAction } = options;
|
|
22
|
+
const linkBehavior = options.linkBehavior ?? "action";
|
|
23
|
+
const isDisabled = !!options.isDisabled || manager.isDisabled(key);
|
|
24
|
+
// With checkbox selection, onAction (i.e. navigation) becomes primary, and occurs on a single click
|
|
25
|
+
// of the row. With highlight selection, onAction is secondary, and occurs on double click. With
|
|
26
|
+
// touch, onAction occurs on single tap, and long press enters selection mode.
|
|
27
|
+
const isLink = manager.isLink(key);
|
|
28
|
+
const isLinkOverride = isLink && linkBehavior === "override";
|
|
29
|
+
const isActionOverride = !!onAction && options.UNSTABLE_itemBehavior === "action";
|
|
30
|
+
const hasLinkAction = isLink && linkBehavior !== "selection" && linkBehavior !== "none";
|
|
31
|
+
const allowsSelection = !isDisabled && manager.canSelectItem(key) && !isLinkOverride && !isActionOverride;
|
|
32
|
+
const allowsActions = (!!onAction || hasLinkAction) && !isDisabled;
|
|
33
|
+
const hasPrimaryAction = allowsActions && (manager.selectionBehavior === "replace" ? !allowsSelection : !allowsSelection || manager.isEmpty);
|
|
34
|
+
const hasSecondaryAction = allowsActions && allowsSelection && manager.selectionBehavior === "replace";
|
|
35
|
+
const hasAction = hasPrimaryAction || hasSecondaryAction;
|
|
36
|
+
return {
|
|
37
|
+
manager,
|
|
38
|
+
key,
|
|
39
|
+
isDisabled,
|
|
40
|
+
allowsSelection,
|
|
41
|
+
allowsActions,
|
|
42
|
+
hasPrimaryAction,
|
|
43
|
+
hasSecondaryAction,
|
|
44
|
+
hasAction,
|
|
45
|
+
hasLinkAction,
|
|
46
|
+
longPressEnabled: hasAction && allowsSelection,
|
|
47
|
+
linkBehavior,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* `manager.focusedKey === key`; for a cdk `SelectionManager` a keyed read (`keyed.ts`): a binding re-runs only
|
|
52
|
+
* when this key gains or loses focus, not on every focus move.
|
|
53
|
+
*/
|
|
54
|
+
function focusedKeyIs(manager, key) {
|
|
55
|
+
const state = manager.selectionState;
|
|
56
|
+
return state ? isFocusedKey(state, key) : manager.focusedKey === key;
|
|
57
|
+
}
|
|
58
|
+
/** Item state flags (react-aria `useSelectableItem` return minus props). Reads state: use in bindings. */
|
|
59
|
+
export function selectableItemStates(options) {
|
|
60
|
+
const d = derive(options);
|
|
61
|
+
const el = refElement(options.ref);
|
|
62
|
+
return {
|
|
63
|
+
isPressed: !!el && pressMemos.get(el)?.pressed === true,
|
|
64
|
+
isSelected: d.manager.isSelected(d.key),
|
|
65
|
+
// Key first: only the focused item reads (and re-runs on) the collection's isFocused.
|
|
66
|
+
isFocused: focusedKeyIs(d.manager, d.key) && d.manager.isFocused,
|
|
67
|
+
isDisabled: d.isDisabled,
|
|
68
|
+
allowsSelection: d.allowsSelection,
|
|
69
|
+
hasAction: d.hasAction,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Attributes of the item (`tabIndex` roving: 0 for the focused key, -1 otherwise, none with virtual
|
|
74
|
+
* focus or when disabled; `data-key`, `data-collection`, `id`). Reads state: bind as accessors.
|
|
75
|
+
*/
|
|
76
|
+
export function selectableItemAttrs(options) {
|
|
77
|
+
const d = derive(options);
|
|
78
|
+
const attrs = { "data-key": String(d.key), "data-collection": getCollectionId(d.manager.collection), id: options.id };
|
|
79
|
+
if (typeof d.key === "number")
|
|
80
|
+
attrs["data-key-type"] = "number";
|
|
81
|
+
if (!options.shouldUseVirtualFocus && !d.isDisabled)
|
|
82
|
+
attrs.tabIndex = focusedKeyIs(d.manager, d.key) ? 0 : -1;
|
|
83
|
+
return attrs;
|
|
84
|
+
}
|
|
85
|
+
const itemPropsOf = (options, d) => options.itemProps ?? d.manager.getItemProps(d.key);
|
|
86
|
+
/** react-aria `router.open(ref.current, e, href, routerOptions)`; without a client router: `openLink`. */
|
|
87
|
+
function open(options, item, e, href, routerOptions) {
|
|
88
|
+
if (options.router && !options.router.isNative && href != null)
|
|
89
|
+
routerOpen(options.router, item, e, href, routerOptions);
|
|
90
|
+
else
|
|
91
|
+
openLink(item, e, href);
|
|
92
|
+
}
|
|
93
|
+
const pressEventOf = (type, item, e, source) => {
|
|
94
|
+
const m = source;
|
|
95
|
+
const rect = item.getBoundingClientRect();
|
|
96
|
+
return {
|
|
97
|
+
...e,
|
|
98
|
+
type,
|
|
99
|
+
target: item,
|
|
100
|
+
x: m && "clientX" in m ? m.clientX - rect.left : rect.width / 2,
|
|
101
|
+
y: m && "clientY" in m ? m.clientY - rect.top : rect.height / 2,
|
|
102
|
+
continuePropagation() { },
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
/** usePress callbacks chained from the item props (react-aria `collectionItemProps` chaining). */
|
|
106
|
+
function itemPress(options, d, item, phase, e, source) {
|
|
107
|
+
const p = itemPropsOf(options, d);
|
|
108
|
+
if (!p)
|
|
109
|
+
return;
|
|
110
|
+
if (phase === "start") {
|
|
111
|
+
p.onPressStart?.(pressEventOf("pressstart", item, e, source));
|
|
112
|
+
p.onPressChange?.(true);
|
|
113
|
+
}
|
|
114
|
+
else if (phase === "up")
|
|
115
|
+
p.onPressUp?.(pressEventOf("pressup", item, e, source));
|
|
116
|
+
else {
|
|
117
|
+
p.onPressEnd?.(pressEventOf("pressend", item, e, source));
|
|
118
|
+
p.onPressChange?.(false);
|
|
119
|
+
p.onPress?.(pressEventOf("press", item, e, source));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function onSelect(options, d, item, e) {
|
|
123
|
+
const { manager, key } = d;
|
|
124
|
+
if (e.pointerType === "keyboard" && isNonContiguousSelectionModifier(e)) {
|
|
125
|
+
manager.toggleSelection(key);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (manager.selectionMode === "none")
|
|
129
|
+
return;
|
|
130
|
+
if (manager.isLink(key)) {
|
|
131
|
+
if (d.linkBehavior === "selection" && item) {
|
|
132
|
+
const itemProps = itemPropsOf(options, d) ?? manager.getItemProps(key);
|
|
133
|
+
open(options, item, e, itemProps?.href, itemProps?.routerOptions);
|
|
134
|
+
// Always set selected keys back to what they were so that select and combobox close.
|
|
135
|
+
manager.setSelectedKeys(manager.selectedKeys);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
else if (d.linkBehavior === "override" || d.linkBehavior === "none")
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (manager.selectionMode === "single") {
|
|
142
|
+
if (manager.isSelected(key) && !manager.disallowEmptySelection)
|
|
143
|
+
manager.toggleSelection(key);
|
|
144
|
+
else
|
|
145
|
+
manager.replaceSelection(key);
|
|
146
|
+
}
|
|
147
|
+
else if (e && e.shiftKey)
|
|
148
|
+
manager.extendSelection(key);
|
|
149
|
+
else if (manager.selectionBehavior === "toggle" || (e && (isCtrlKeyPressed(e) || e.pointerType === "touch" || e.pointerType === "virtual"))) {
|
|
150
|
+
// Touch or virtual (VO): toggle, otherwise multi selection is impossible without modifier keys.
|
|
151
|
+
manager.toggleSelection(key);
|
|
152
|
+
}
|
|
153
|
+
else
|
|
154
|
+
manager.replaceSelection(key);
|
|
155
|
+
}
|
|
156
|
+
function performAction(options, d, item, e) {
|
|
157
|
+
if (options.onAction) {
|
|
158
|
+
options.onAction();
|
|
159
|
+
item?.dispatchEvent(new CustomEvent("react-aria-item-action", { bubbles: true }));
|
|
160
|
+
}
|
|
161
|
+
if (d.hasLinkAction && item) {
|
|
162
|
+
const itemProps = itemPropsOf(options, d);
|
|
163
|
+
open(options, item, e, itemProps?.href, itemProps?.routerOptions);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const isActionKey = (key) => key === "Enter";
|
|
167
|
+
const isSelectionKey = (key) => key === " ";
|
|
168
|
+
const pressMemos = new WeakMap();
|
|
169
|
+
const memoOf = (el) => {
|
|
170
|
+
let m = pressMemos.get(el);
|
|
171
|
+
if (!m) {
|
|
172
|
+
m = {
|
|
173
|
+
pressed: false,
|
|
174
|
+
modality: null,
|
|
175
|
+
longPressEnabledOnPressStart: false,
|
|
176
|
+
hadPrimaryActionOnPressStart: false,
|
|
177
|
+
longPressTimer: undefined,
|
|
178
|
+
didLongPress: false,
|
|
179
|
+
keyboardPressed: false,
|
|
180
|
+
};
|
|
181
|
+
pressMemos.set(el, m);
|
|
182
|
+
}
|
|
183
|
+
return m;
|
|
184
|
+
};
|
|
185
|
+
/** Long press threshold (react-aria useLongPress default). */
|
|
186
|
+
export const LONG_PRESS_THRESHOLD_MS = 500;
|
|
187
|
+
function pressStart(options, d, item, e) {
|
|
188
|
+
const m = memoOf(item);
|
|
189
|
+
m.pressed = true;
|
|
190
|
+
m.modality = e.pointerType;
|
|
191
|
+
m.longPressEnabledOnPressStart = d.longPressEnabled;
|
|
192
|
+
m.hadPrimaryActionOnPressStart = d.hasPrimaryAction;
|
|
193
|
+
m.didLongPress = false;
|
|
194
|
+
// When using virtual focus, make sure the focused key gets updated on press.
|
|
195
|
+
if (options.shouldUseVirtualFocus && e.pointerType !== "touch") {
|
|
196
|
+
d.manager.setFocused(true);
|
|
197
|
+
d.manager.setFocusedKey(d.key);
|
|
198
|
+
}
|
|
199
|
+
if (options.shouldSelectOnPressUp) {
|
|
200
|
+
if (e.pointerType === "keyboard" && (!d.hasAction || isSelectionKey(e.key)))
|
|
201
|
+
onSelect(options, d, item, e);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
// Select on mouse down unless there is a primary action which will occur on mouse up. For
|
|
205
|
+
// keyboard, select on key down. If there is an action, the Space key selects on key down, and the
|
|
206
|
+
// Enter key performs onAction on key up.
|
|
207
|
+
if (d.allowsSelection &&
|
|
208
|
+
((e.pointerType === "mouse" && !d.hasPrimaryAction) || (e.pointerType === "keyboard" && (!d.allowsActions || isSelectionKey(e.key))))) {
|
|
209
|
+
onSelect(options, d, item, e);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function pressUp(options, d, item, e) {
|
|
213
|
+
if (options.shouldSelectOnPressUp && options.allowsDifferentPressOrigin && !d.hasPrimaryAction) {
|
|
214
|
+
if (e.pointerType === "mouse" && d.allowsSelection)
|
|
215
|
+
onSelect(options, d, item, e);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
function press(options, d, item, e) {
|
|
219
|
+
const m = memoOf(item);
|
|
220
|
+
m.pressed = false;
|
|
221
|
+
if (options.shouldUseVirtualFocus && e.pointerType === "touch") {
|
|
222
|
+
d.manager.setFocused(true);
|
|
223
|
+
d.manager.setFocusedKey(d.key);
|
|
224
|
+
}
|
|
225
|
+
if (options.shouldSelectOnPressUp) {
|
|
226
|
+
if (!options.allowsDifferentPressOrigin) {
|
|
227
|
+
if (d.hasPrimaryAction || (d.hasSecondaryAction && e.pointerType !== "mouse")) {
|
|
228
|
+
if (e.pointerType === "keyboard" && !isActionKey(e.key))
|
|
229
|
+
return;
|
|
230
|
+
performAction(options, d, item, e);
|
|
231
|
+
}
|
|
232
|
+
else if (e.pointerType !== "keyboard" && d.allowsSelection)
|
|
233
|
+
onSelect(options, d, item, e);
|
|
234
|
+
}
|
|
235
|
+
else if (d.hasPrimaryAction)
|
|
236
|
+
performAction(options, d, item, e);
|
|
237
|
+
else if (e.pointerType !== "keyboard" && e.pointerType !== "mouse" && d.allowsSelection)
|
|
238
|
+
onSelect(options, d, item, e);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
// Selection occurs on touch up. Primary actions always occur on pointer up. Both primary and
|
|
242
|
+
// secondary actions occur on Enter key up. Secondary actions occur on double click with a mouse.
|
|
243
|
+
if (e.pointerType === "touch" ||
|
|
244
|
+
e.pointerType === "pen" ||
|
|
245
|
+
e.pointerType === "virtual" ||
|
|
246
|
+
(e.pointerType === "keyboard" && d.hasAction && isActionKey(e.key)) ||
|
|
247
|
+
(e.pointerType === "mouse" && m.hadPrimaryActionOnPressStart)) {
|
|
248
|
+
if (d.hasAction)
|
|
249
|
+
performAction(options, d, item, e);
|
|
250
|
+
else if (d.allowsSelection)
|
|
251
|
+
onSelect(options, d, item, e);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/** Whether `target` is an interactive child of the item, or an item of another collection. */
|
|
255
|
+
function isChildInteraction(item, collectionId, target) {
|
|
256
|
+
let el = target;
|
|
257
|
+
while (el && el !== item) {
|
|
258
|
+
const elCollection = el.getAttribute("data-collection");
|
|
259
|
+
if (elCollection != null)
|
|
260
|
+
return elCollection !== collectionId;
|
|
261
|
+
el = el.parentElement;
|
|
262
|
+
}
|
|
263
|
+
return isTabbable(target);
|
|
264
|
+
}
|
|
265
|
+
const itemOf = (options, e) => refElement(options.ref) ?? (e.currentTarget || null);
|
|
266
|
+
/** Interactive when it allows selection, has a primary action, or uses virtual focus (react-aria's press props gate). */
|
|
267
|
+
const pressable = (options, d) => d.allowsSelection || d.hasPrimaryAction || (!!options.shouldUseVirtualFocus && !d.isDisabled);
|
|
268
|
+
/** pointerdown on the item (press start for mouse / pen / touch; long press timer on touch). */
|
|
269
|
+
export function selectableItemPointerDown(options, e) {
|
|
270
|
+
const item = itemOf(options, e);
|
|
271
|
+
if (!item)
|
|
272
|
+
return;
|
|
273
|
+
trackModality(e);
|
|
274
|
+
const d = derive(options);
|
|
275
|
+
const target = e.target;
|
|
276
|
+
if (target && target !== item && isChildInteraction(item, getCollectionId(d.manager.collection), target)) {
|
|
277
|
+
e.stopPropagation();
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
if (d.isDisabled) {
|
|
281
|
+
// Prevent focus going to the body when clicking on a disabled item.
|
|
282
|
+
e.preventDefault();
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
// Prevent DOM focus from moving on mouse down when using virtual focus.
|
|
286
|
+
if (options.shouldUseVirtualFocus)
|
|
287
|
+
e.preventDefault();
|
|
288
|
+
if (e.button !== 0 && e.pointerType === "mouse")
|
|
289
|
+
return;
|
|
290
|
+
if (!pressable(options, d))
|
|
291
|
+
return;
|
|
292
|
+
const pe = pressOf(e);
|
|
293
|
+
// usePress: virtual pointer events (screen readers) only record the pointer type; the click that
|
|
294
|
+
// follows performs the whole press.
|
|
295
|
+
if (pe.pointerType === "virtual") {
|
|
296
|
+
memoOf(item).virtualPointer = true;
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
pressStart(options, d, item, pe);
|
|
300
|
+
itemPress(options, d, item, "start", pe, e);
|
|
301
|
+
const m = memoOf(item);
|
|
302
|
+
clearTimeout(m.longPressTimer);
|
|
303
|
+
if (d.longPressEnabled && pe.pointerType === "touch") {
|
|
304
|
+
m.longPressTimer = setTimeout(() => {
|
|
305
|
+
// Long pressing with touch when selectionBehavior = "replace" switches it to "toggle".
|
|
306
|
+
m.didLongPress = true;
|
|
307
|
+
onSelect(options, derive(options), item, pe);
|
|
308
|
+
d.manager.setSelectionBehavior("toggle");
|
|
309
|
+
}, LONG_PRESS_THRESHOLD_MS);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/** pointerup on the item (press up; cancels a pending long press). */
|
|
313
|
+
export function selectableItemPointerUp(options, e) {
|
|
314
|
+
const item = itemOf(options, e);
|
|
315
|
+
if (!item)
|
|
316
|
+
return;
|
|
317
|
+
const m = memoOf(item);
|
|
318
|
+
clearTimeout(m.longPressTimer);
|
|
319
|
+
const d = derive(options);
|
|
320
|
+
const pe = pressOf(e);
|
|
321
|
+
if (pe.pointerType === "virtual")
|
|
322
|
+
return;
|
|
323
|
+
if (!d.isDisabled && pressable(options, d)) {
|
|
324
|
+
pressUp(options, d, item, pe);
|
|
325
|
+
if (m.pressed)
|
|
326
|
+
itemPress(options, d, item, "up", pe, e);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/** pointercancel / pointerleave: drop the press. */
|
|
330
|
+
export function selectableItemPointerCancel(options, e) {
|
|
331
|
+
const item = itemOf(options, e);
|
|
332
|
+
if (!item)
|
|
333
|
+
return;
|
|
334
|
+
const m = memoOf(item);
|
|
335
|
+
clearTimeout(m.longPressTimer);
|
|
336
|
+
m.pressed = false;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* click on the item: the press (pointer presses that started on the item, and virtual clicks from
|
|
340
|
+
* screen readers / `element.click()`); link clicks are prevented so links open exactly when the
|
|
341
|
+
* selection logic says so.
|
|
342
|
+
*/
|
|
343
|
+
export function selectableItemClick(options, e) {
|
|
344
|
+
const item = itemOf(options, e);
|
|
345
|
+
if (!item)
|
|
346
|
+
return;
|
|
347
|
+
const d = derive(options);
|
|
348
|
+
if (d.linkBehavior !== "none" && d.manager.isLink(d.key) && !isOpeningLink())
|
|
349
|
+
e.preventDefault();
|
|
350
|
+
if (d.isDisabled || !pressable(options, d))
|
|
351
|
+
return;
|
|
352
|
+
// usePress onClick: a click it handles (not one opening a link) stops here, after the item's own onClick.
|
|
353
|
+
if (e.button === 0 && !isOpeningLink()) {
|
|
354
|
+
itemPropsOf(options, d)?.onClick?.(e);
|
|
355
|
+
e.stopPropagation();
|
|
356
|
+
}
|
|
357
|
+
const m = memoOf(item);
|
|
358
|
+
const virtual = (e.detail === 0 || !!m.virtualPointer) && !m.pressed;
|
|
359
|
+
m.virtualPointer = false;
|
|
360
|
+
if (m.didLongPress) {
|
|
361
|
+
m.didLongPress = false;
|
|
362
|
+
m.pressed = false;
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
if (virtual) {
|
|
366
|
+
trackModality(e);
|
|
367
|
+
const pe = pressOf(e, "virtual");
|
|
368
|
+
pressStart(options, d, item, pe);
|
|
369
|
+
itemPress(options, d, item, "start", pe, e);
|
|
370
|
+
press(options, derive(options), item, pe);
|
|
371
|
+
itemPress(options, d, item, "end", pe, e);
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
if (!m.pressed)
|
|
375
|
+
return;
|
|
376
|
+
const pe = pressOf(e, m.modality ?? "mouse");
|
|
377
|
+
press(options, d, item, pe);
|
|
378
|
+
itemPress(options, d, item, "end", pe, e);
|
|
379
|
+
}
|
|
380
|
+
/** keydown on the item: Space / Enter start a keyboard press. */
|
|
381
|
+
export function selectableItemKeyDown(options, e) {
|
|
382
|
+
if (e.key !== " " && e.key !== "Enter")
|
|
383
|
+
return;
|
|
384
|
+
const item = itemOf(options, e);
|
|
385
|
+
if (!item)
|
|
386
|
+
return;
|
|
387
|
+
const d = derive(options);
|
|
388
|
+
if (d.isDisabled || !pressable(options, d))
|
|
389
|
+
return;
|
|
390
|
+
// Native link Enter would navigate: the selection logic decides instead.
|
|
391
|
+
e.preventDefault();
|
|
392
|
+
if (e.repeat)
|
|
393
|
+
return;
|
|
394
|
+
trackModality(e);
|
|
395
|
+
memoOf(item).keyboardPressed = true;
|
|
396
|
+
const pe = pressOf(e, "keyboard");
|
|
397
|
+
pressStart(options, d, item, pe);
|
|
398
|
+
itemPress(options, d, item, "start", pe, e);
|
|
399
|
+
}
|
|
400
|
+
/** keyup on the item: Space / Enter complete a keyboard press. */
|
|
401
|
+
export function selectableItemKeyUp(options, e) {
|
|
402
|
+
if (e.key !== " " && e.key !== "Enter")
|
|
403
|
+
return;
|
|
404
|
+
const item = itemOf(options, e);
|
|
405
|
+
if (!item)
|
|
406
|
+
return;
|
|
407
|
+
const m = memoOf(item);
|
|
408
|
+
if (!m.keyboardPressed)
|
|
409
|
+
return;
|
|
410
|
+
m.keyboardPressed = false;
|
|
411
|
+
const d = derive(options);
|
|
412
|
+
if (d.isDisabled || !pressable(options, d))
|
|
413
|
+
return;
|
|
414
|
+
const pe = pressOf(e, "keyboard");
|
|
415
|
+
itemPress(options, d, item, "up", pe, e);
|
|
416
|
+
press(options, d, item, pe);
|
|
417
|
+
itemPress(options, d, item, "end", pe, e);
|
|
418
|
+
// usePress triggerSyntheticClick: keyboard activation also calls the item's onClick with a synthetic click.
|
|
419
|
+
const onClick = itemPropsOf(options, d)?.onClick;
|
|
420
|
+
if (onClick) {
|
|
421
|
+
const click = new MouseEvent("click", e);
|
|
422
|
+
Object.defineProperty(click, "target", { value: item });
|
|
423
|
+
Object.defineProperty(click, "currentTarget", { value: item });
|
|
424
|
+
onClick(click);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
/** dblclick: with selectionBehavior "replace", a mouse double click performs the action. */
|
|
428
|
+
export function selectableItemDoubleClick(options, e) {
|
|
429
|
+
const item = itemOf(options, e);
|
|
430
|
+
if (!item)
|
|
431
|
+
return;
|
|
432
|
+
const d = derive(options);
|
|
433
|
+
if (!d.hasSecondaryAction)
|
|
434
|
+
return;
|
|
435
|
+
if (memoOf(item).modality === "mouse") {
|
|
436
|
+
e.stopPropagation();
|
|
437
|
+
e.preventDefault();
|
|
438
|
+
performAction(options, d, item, pressOf(e, "mouse"));
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
/** focus on the item element itself: it becomes the focused key. */
|
|
442
|
+
export function selectableItemFocus(options, e) {
|
|
443
|
+
const item = itemOf(options, e);
|
|
444
|
+
const d = derive(options);
|
|
445
|
+
if (options.shouldUseVirtualFocus || d.isDisabled)
|
|
446
|
+
return;
|
|
447
|
+
if (e.target === item && untrack(() => d.manager.focusedKey) !== d.key)
|
|
448
|
+
d.manager.setFocusedKey(d.key);
|
|
449
|
+
}
|
|
450
|
+
/** dragstart: no native drag after a touch long press that selected. */
|
|
451
|
+
export function selectableItemDragStart(options, e) {
|
|
452
|
+
const item = itemOf(options, e);
|
|
453
|
+
if (!item)
|
|
454
|
+
return;
|
|
455
|
+
const m = memoOf(item);
|
|
456
|
+
if (m.modality === "touch" && m.longPressEnabledOnPressStart)
|
|
457
|
+
e.preventDefault();
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Focus the item when it is the focused key of a focused collection (react-aria's item effect),
|
|
461
|
+
* or move virtual focus to it. `selectableCollection*` handlers call this through `syncFocus`.
|
|
462
|
+
*/
|
|
463
|
+
export function focusSelectableItem(options) {
|
|
464
|
+
const item = refElement(options.ref);
|
|
465
|
+
const { selectionManager: manager, key } = options;
|
|
466
|
+
if (key !== manager.focusedKey || !manager.isFocused)
|
|
467
|
+
return;
|
|
468
|
+
if (!options.shouldUseVirtualFocus) {
|
|
469
|
+
if (options.focus)
|
|
470
|
+
options.focus();
|
|
471
|
+
else if (item && item.ownerDocument.activeElement !== item)
|
|
472
|
+
focusSafely(item);
|
|
473
|
+
}
|
|
474
|
+
else
|
|
475
|
+
moveVirtualFocus(item);
|
|
476
|
+
}
|
|
477
|
+
/** The collection item element containing `target` (inside `collection`), with its key. */
|
|
478
|
+
export function closestItem(collection, target, selector = "[data-key]") {
|
|
479
|
+
let el = target instanceof Element ? target.closest(selector) : null;
|
|
480
|
+
while (el && !collection.contains(el))
|
|
481
|
+
el = null;
|
|
482
|
+
if (!el || el === collection)
|
|
483
|
+
return null;
|
|
484
|
+
const key = domKey(el);
|
|
485
|
+
return key == null ? null : { element: el, key };
|
|
486
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Collection, Key, KeyboardDelegate, LayoutDelegate, Node, Orientation } from "../collections/types.js";
|
|
2
|
+
import { type AriaSelectableCollectionOptions, type SelectableCollectionAria } from "./selectable-collection.js";
|
|
3
|
+
export interface AriaSelectableListOptions extends Omit<AriaSelectableCollectionOptions, "keyboardDelegate"> {
|
|
4
|
+
/** State of the collection. */
|
|
5
|
+
collection: Collection<Node<unknown>>;
|
|
6
|
+
/** A delegate object that implements behavior for keyboard focus movement. */
|
|
7
|
+
keyboardDelegate?: KeyboardDelegate | undefined;
|
|
8
|
+
/** A delegate object that provides layout information (default: the DOM). */
|
|
9
|
+
layoutDelegate?: LayoutDelegate | undefined;
|
|
10
|
+
/** The item keys that are disabled. */
|
|
11
|
+
disabledKeys: Set<Key>;
|
|
12
|
+
/** The primary orientation of the items. Default "vertical". */
|
|
13
|
+
orientation?: Orientation | undefined;
|
|
14
|
+
/** Locale for the typeahead collator (default: `document.documentElement.lang`). */
|
|
15
|
+
locale?: string | undefined;
|
|
16
|
+
}
|
|
17
|
+
/** The selectable-collection options of a list: a `ListKeyboardDelegate` unless one is given. */
|
|
18
|
+
export declare function selectableListOptions(props: AriaSelectableListOptions, event?: Event): AriaSelectableCollectionOptions;
|
|
19
|
+
/** keydown (capture) on the list element. */
|
|
20
|
+
export declare const selectableListKeyDownCapture: (props: AriaSelectableListOptions, e: KeyboardEvent & {
|
|
21
|
+
currentTarget: EventTarget | null;
|
|
22
|
+
}) => boolean;
|
|
23
|
+
/** keydown on the list element. */
|
|
24
|
+
export declare const selectableListKeyDown: (props: AriaSelectableListOptions, e: KeyboardEvent & {
|
|
25
|
+
currentTarget: EventTarget | null;
|
|
26
|
+
}) => boolean;
|
|
27
|
+
/** focusin on the list element. */
|
|
28
|
+
export declare const selectableListFocus: (props: AriaSelectableListOptions, e: FocusEvent & {
|
|
29
|
+
currentTarget: EventTarget | null;
|
|
30
|
+
}) => void;
|
|
31
|
+
/** focusout on the list element. */
|
|
32
|
+
export declare const selectableListBlur: (props: AriaSelectableListOptions, e: FocusEvent & {
|
|
33
|
+
currentTarget: EventTarget | null;
|
|
34
|
+
}) => void;
|
|
35
|
+
/** mousedown on the list element. */
|
|
36
|
+
export declare const selectableListMouseDown: (props: AriaSelectableListOptions, e: MouseEvent & {
|
|
37
|
+
currentTarget: EventTarget | null;
|
|
38
|
+
}) => void;
|
|
39
|
+
/** react-aria `useSelectableList` shape (imperative wiring). */
|
|
40
|
+
export declare function useSelectableList(props: AriaSelectableListOptions): {
|
|
41
|
+
listProps: SelectableCollectionAria["collectionProps"];
|
|
42
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ListKeyboardDelegate, searchCollator } from "./list-keyboard-delegate.js";
|
|
2
|
+
import { selectableCollectionBlur, selectableCollectionKeyDownCapture, selectableCollectionFocus, selectableCollectionKeyDown, selectableCollectionMouseDown, useSelectableCollection, } from "./selectable-collection.js";
|
|
3
|
+
import { refElement } from "./utils.js";
|
|
4
|
+
import { direction as elementDirection } from "../bidi/index.js";
|
|
5
|
+
/** The selectable-collection options of a list: a `ListKeyboardDelegate` unless one is given. */
|
|
6
|
+
export function selectableListOptions(props, event) {
|
|
7
|
+
const ref = refElement(props.ref) ?? (event?.currentTarget || null);
|
|
8
|
+
const delegate = props.keyboardDelegate ||
|
|
9
|
+
new ListKeyboardDelegate({
|
|
10
|
+
collection: props.collection,
|
|
11
|
+
disabledKeys: props.disabledKeys,
|
|
12
|
+
disabledBehavior: props.selectionManager.disabledBehavior,
|
|
13
|
+
ref,
|
|
14
|
+
collator: searchCollator(props.locale),
|
|
15
|
+
layoutDelegate: props.layoutDelegate,
|
|
16
|
+
orientation: props.orientation,
|
|
17
|
+
direction: props.direction ?? (ref ? elementDirection(ref) : undefined),
|
|
18
|
+
});
|
|
19
|
+
return { ...props, ref, keyboardDelegate: delegate };
|
|
20
|
+
}
|
|
21
|
+
/** keydown (capture) on the list element. */
|
|
22
|
+
export const selectableListKeyDownCapture = (props, e) => selectableCollectionKeyDownCapture(selectableListOptions(props, e), e);
|
|
23
|
+
/** keydown on the list element. */
|
|
24
|
+
export const selectableListKeyDown = (props, e) => selectableCollectionKeyDown(selectableListOptions(props, e), e);
|
|
25
|
+
/** focusin on the list element. */
|
|
26
|
+
export const selectableListFocus = (props, e) => selectableCollectionFocus(selectableListOptions(props, e), e);
|
|
27
|
+
/** focusout on the list element. */
|
|
28
|
+
export const selectableListBlur = (props, e) => selectableCollectionBlur(selectableListOptions(props, e), e);
|
|
29
|
+
/** mousedown on the list element. */
|
|
30
|
+
export const selectableListMouseDown = (props, e) => selectableCollectionMouseDown(selectableListOptions(props, e), e);
|
|
31
|
+
/** react-aria `useSelectableList` shape (imperative wiring). */
|
|
32
|
+
export function useSelectableList(props) {
|
|
33
|
+
return { listProps: useSelectableCollection(selectableListOptions(props)).collectionProps };
|
|
34
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { DisabledBehavior, FocusStrategy, Key, Selection, SelectionBehavior, SelectionMode } from "../collections/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* A Set of keys that also has an anchor and current key for range selection (react-stately
|
|
5
|
+
* `Selection`). Passed to `onSelectionChange`; state signals hold plain Sets.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SelectionSet extends Set<Key> {
|
|
8
|
+
anchorKey: Key | null;
|
|
9
|
+
currentKey: Key | null;
|
|
10
|
+
constructor(keys?: Iterable<Key> | SelectionSet, anchorKey?: Key | null, currentKey?: Key | null);
|
|
11
|
+
}
|
|
12
|
+
export interface FocusState {
|
|
13
|
+
/** Whether the collection is currently focused. */
|
|
14
|
+
readonly isFocused: Signal<boolean>;
|
|
15
|
+
/** The current focused key in the collection. */
|
|
16
|
+
readonly focusedKey: Signal<Key | null>;
|
|
17
|
+
/** Whether the first or last child of the focused key should receive focus. */
|
|
18
|
+
readonly childFocusStrategy: Signal<FocusStrategy | null>;
|
|
19
|
+
}
|
|
20
|
+
export interface MultipleSelectionState extends FocusState {
|
|
21
|
+
/** The type of selection that is allowed in the collection. */
|
|
22
|
+
readonly selectionMode: SelectionMode;
|
|
23
|
+
/** The selection behavior for the collection (changes on touch long press). */
|
|
24
|
+
readonly selectionBehavior: Signal<SelectionBehavior>;
|
|
25
|
+
/** The `selectionBehavior` option (the behavior to return to once the selection is empty). */
|
|
26
|
+
readonly selectionBehaviorProp: SelectionBehavior;
|
|
27
|
+
/** Whether the collection allows empty selection. */
|
|
28
|
+
readonly disallowEmptySelection: boolean;
|
|
29
|
+
/** The currently selected keys (`"all"` or a Set). */
|
|
30
|
+
readonly selectedKeys: Signal<Selection>;
|
|
31
|
+
/** Range anchor / current key (react-stately keeps them on the Selection object). */
|
|
32
|
+
readonly anchorKey: Signal<Key | null>;
|
|
33
|
+
readonly currentKey: Signal<Key | null>;
|
|
34
|
+
/** The currently disabled keys in the collection. */
|
|
35
|
+
readonly disabledKeys: Set<Key>;
|
|
36
|
+
/** Whether `disabledKeys` applies to selection, actions, or both. */
|
|
37
|
+
readonly disabledBehavior: DisabledBehavior;
|
|
38
|
+
/** Controlled by a plain value: never written, changes only reported to `onSelectionChange`. */
|
|
39
|
+
readonly controlled: boolean;
|
|
40
|
+
/** Whether onSelectionChange should fire even if the new set of keys is the same as the last. */
|
|
41
|
+
readonly allowDuplicateSelectionEvents: boolean;
|
|
42
|
+
readonly onSelectionChange?: ((keys: Selection) => void) | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Single-key backing (react-stately `useSingleSelectListState`): when set, the selection is
|
|
45
|
+
* `selectedKey` (read and written), and `onSelectedKeyChange` reports changes.
|
|
46
|
+
*/
|
|
47
|
+
readonly selectedKey?: Signal<Key | null> | undefined;
|
|
48
|
+
readonly selectedKeyControlled?: boolean | undefined;
|
|
49
|
+
readonly onSelectedKeyChange?: ((key: Key | null) => void) | undefined;
|
|
50
|
+
}
|
|
51
|
+
export interface MultipleSelectionStateProps {
|
|
52
|
+
/** The type of selection that is allowed in the collection. Default "none". */
|
|
53
|
+
selectionMode?: SelectionMode | undefined;
|
|
54
|
+
/** Whether the collection allows empty selection. */
|
|
55
|
+
disallowEmptySelection?: boolean | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* The selected keys: a signal (two-way), a plain value or an accessor returning a `Selection` (controlled: the
|
|
58
|
+
* state never changes it, `onSelectionChange` reports requested changes).
|
|
59
|
+
*/
|
|
60
|
+
selectedKeys?: Signal<Selection> | (() => Selection) | "all" | Iterable<Key> | undefined;
|
|
61
|
+
/** The initial selected keys (uncontrolled). */
|
|
62
|
+
defaultSelectedKeys?: "all" | Iterable<Key> | undefined;
|
|
63
|
+
/** Handler that is called when the selection changes. */
|
|
64
|
+
onSelectionChange?: ((keys: Selection) => void) | undefined;
|
|
65
|
+
/** The currently disabled keys in the collection. */
|
|
66
|
+
disabledKeys?: Iterable<Key> | undefined;
|
|
67
|
+
/** How multiple selection should behave in the collection. Default "toggle". */
|
|
68
|
+
selectionBehavior?: SelectionBehavior | undefined;
|
|
69
|
+
/** Whether onSelectionChange should fire even if the new set of keys is the same as the last. */
|
|
70
|
+
allowDuplicateSelectionEvents?: boolean | undefined;
|
|
71
|
+
/** Whether `disabledKeys` applies to all interactions, or only selection. Default "all". */
|
|
72
|
+
disabledBehavior?: DisabledBehavior | undefined;
|
|
73
|
+
/** Initial focused key (Rivet: focus state is plain state too). */
|
|
74
|
+
defaultFocusedKey?: Key | null | undefined;
|
|
75
|
+
/** Single-key backing (see `MultipleSelectionState.selectedKey`). */
|
|
76
|
+
selectedKey?: Signal<Key | null> | undefined;
|
|
77
|
+
selectedKeyControlled?: boolean | undefined;
|
|
78
|
+
onSelectedKeyChange?: ((key: Key | null) => void) | undefined;
|
|
79
|
+
}
|
|
80
|
+
/** Manages state for multiple selection and focus in a collection (react-stately `useMultipleSelectionState`). */
|
|
81
|
+
export declare function createMultipleSelectionState(props?: MultipleSelectionStateProps): MultipleSelectionState;
|
|
82
|
+
/** The current selection (`"all"` or a Set). Reads the signals (tracked in bindings). */
|
|
83
|
+
export declare function readSelection(state: MultipleSelectionState): Selection;
|
|
84
|
+
/** Sets whether the collection is focused. */
|
|
85
|
+
export declare function setFocused(state: FocusState, isFocused: boolean): void;
|
|
86
|
+
/** Sets the focused key, and whether the first or last child of that key should receive focus. */
|
|
87
|
+
export declare function setFocusedKey(state: FocusState, key: Key | null, childFocusStrategy?: FocusStrategy): void;
|
|
88
|
+
/** Sets the selection behavior for the collection. */
|
|
89
|
+
export declare function setSelectionBehavior(state: MultipleSelectionState, behavior: SelectionBehavior): void;
|
|
90
|
+
/**
|
|
91
|
+
* Sets the selected keys (`"all"`, a Set, or a `SelectionSet` carrying anchor / current keys).
|
|
92
|
+
* Skips unchanged selections unless `allowDuplicateSelectionEvents`.
|
|
93
|
+
*/
|
|
94
|
+
export declare function setSelectedKeys(state: MultipleSelectionState, keys: Selection): void;
|
|
95
|
+
/** Current selection as a `SelectionSet` with anchor / current keys (or "all"). Reads the signals. */
|
|
96
|
+
export declare function getSelection(state: MultipleSelectionState): Selection;
|