@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,131 @@
|
|
|
1
|
+
// Ported from @react-stately/selection (Selection.ts, useMultipleSelectionState.ts, types.ts),
|
|
2
|
+
// Apache-2.0, © Adobe.
|
|
3
|
+
//
|
|
4
|
+
// Rivet: the state is plain data + signals (serializable, resumable), created once in the component
|
|
5
|
+
// body; the setters of react-stately's state object are free functions taking the state. The
|
|
6
|
+
// anchor / current keys that react-stately keeps on its `Selection` Set subclass live in their own
|
|
7
|
+
// signals (class instances do not serialize).
|
|
8
|
+
import { batch, signal, untrack } from "@rivetjs/reactivity";
|
|
9
|
+
/**
|
|
10
|
+
* A Set of keys that also has an anchor and current key for range selection (react-stately
|
|
11
|
+
* `Selection`). Passed to `onSelectionChange`; state signals hold plain Sets.
|
|
12
|
+
*/
|
|
13
|
+
export class SelectionSet extends Set {
|
|
14
|
+
anchorKey;
|
|
15
|
+
currentKey;
|
|
16
|
+
constructor(keys, anchorKey, currentKey) {
|
|
17
|
+
super(keys);
|
|
18
|
+
if (keys instanceof SelectionSet) {
|
|
19
|
+
this.anchorKey = anchorKey ?? keys.anchorKey;
|
|
20
|
+
this.currentKey = currentKey ?? keys.currentKey;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.anchorKey = anchorKey ?? null;
|
|
24
|
+
this.currentKey = currentKey ?? null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const isSignal = (value) => typeof value === "function" && typeof value.set === "function";
|
|
29
|
+
function convertSelection(selection, defaultValue) {
|
|
30
|
+
if (!selection)
|
|
31
|
+
return defaultValue;
|
|
32
|
+
return selection === "all" ? "all" : new Set(selection);
|
|
33
|
+
}
|
|
34
|
+
function equalSets(setA, setB) {
|
|
35
|
+
if (setA === "all" || setB === "all")
|
|
36
|
+
return setA === setB;
|
|
37
|
+
if (setA.size !== setB.size)
|
|
38
|
+
return false;
|
|
39
|
+
for (const item of setA)
|
|
40
|
+
if (!setB.has(item))
|
|
41
|
+
return false;
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
/** Manages state for multiple selection and focus in a collection (react-stately `useMultipleSelectionState`). */
|
|
45
|
+
export function createMultipleSelectionState(props = {}) {
|
|
46
|
+
const { selectionMode = "none", disallowEmptySelection = false, allowDuplicateSelectionEvents = false, selectionBehavior: selectionBehaviorProp = "toggle", disabledBehavior = "all", } = props;
|
|
47
|
+
const prop = props.selectedKeys;
|
|
48
|
+
const controlled = prop != null && !isSignal(prop);
|
|
49
|
+
// An accessor (live prop, `utils/live.tsx` `liveKeys`: returns a Set or "all") is controlled: read, never written.
|
|
50
|
+
const selectedKeys = typeof prop === "function"
|
|
51
|
+
? prop
|
|
52
|
+
: signal(convertSelection(controlled ? prop : props.defaultSelectedKeys, new Set()));
|
|
53
|
+
return {
|
|
54
|
+
selectionMode,
|
|
55
|
+
disallowEmptySelection,
|
|
56
|
+
selectionBehavior: signal(selectionBehaviorProp),
|
|
57
|
+
selectionBehaviorProp,
|
|
58
|
+
selectedKeys,
|
|
59
|
+
anchorKey: signal(null),
|
|
60
|
+
currentKey: signal(null),
|
|
61
|
+
isFocused: signal(false),
|
|
62
|
+
focusedKey: signal(props.defaultFocusedKey ?? null),
|
|
63
|
+
childFocusStrategy: signal(null),
|
|
64
|
+
disabledKeys: props.disabledKeys ? new Set(props.disabledKeys) : new Set(),
|
|
65
|
+
disabledBehavior,
|
|
66
|
+
controlled,
|
|
67
|
+
allowDuplicateSelectionEvents,
|
|
68
|
+
onSelectionChange: props.onSelectionChange,
|
|
69
|
+
selectedKey: props.selectedKey,
|
|
70
|
+
selectedKeyControlled: props.selectedKeyControlled,
|
|
71
|
+
onSelectedKeyChange: props.onSelectedKeyChange,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const EMPTY = new Set();
|
|
75
|
+
/** The current selection (`"all"` or a Set). Reads the signals (tracked in bindings). */
|
|
76
|
+
export function readSelection(state) {
|
|
77
|
+
if (state.selectedKey) {
|
|
78
|
+
const key = state.selectedKey();
|
|
79
|
+
return key == null ? EMPTY : new Set([key]);
|
|
80
|
+
}
|
|
81
|
+
return state.selectedKeys();
|
|
82
|
+
}
|
|
83
|
+
/** Sets whether the collection is focused. */
|
|
84
|
+
export function setFocused(state, isFocused) {
|
|
85
|
+
state.isFocused.set(isFocused);
|
|
86
|
+
}
|
|
87
|
+
/** Sets the focused key, and whether the first or last child of that key should receive focus. */
|
|
88
|
+
export function setFocusedKey(state, key, childFocusStrategy = "first") {
|
|
89
|
+
batch(() => {
|
|
90
|
+
state.childFocusStrategy.set(childFocusStrategy);
|
|
91
|
+
state.focusedKey.set(key);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Sets the selection behavior for the collection. */
|
|
95
|
+
export function setSelectionBehavior(state, behavior) {
|
|
96
|
+
state.selectionBehavior.set(behavior);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Sets the selected keys (`"all"`, a Set, or a `SelectionSet` carrying anchor / current keys).
|
|
100
|
+
* Skips unchanged selections unless `allowDuplicateSelectionEvents`.
|
|
101
|
+
*/
|
|
102
|
+
export function setSelectedKeys(state, keys) {
|
|
103
|
+
batch(() => writeSelectedKeys(state, keys));
|
|
104
|
+
}
|
|
105
|
+
function writeSelectedKeys(state, keys) {
|
|
106
|
+
const current = untrack(() => readSelection(state));
|
|
107
|
+
if (!state.allowDuplicateSelectionEvents && equalSets(keys, current))
|
|
108
|
+
return;
|
|
109
|
+
const set = keys instanceof SelectionSet;
|
|
110
|
+
state.anchorKey.set(set ? keys.anchorKey : null);
|
|
111
|
+
state.currentKey.set(set ? keys.currentKey : null);
|
|
112
|
+
if (state.selectedKey) {
|
|
113
|
+
const key = keys === "all" ? null : (keys.values().next().value ?? null);
|
|
114
|
+
if (!state.selectedKeyControlled)
|
|
115
|
+
state.selectedKey.set(key);
|
|
116
|
+
state.onSelectedKeyChange?.(key);
|
|
117
|
+
}
|
|
118
|
+
else if (!state.controlled)
|
|
119
|
+
state.selectedKeys.set(keys === "all" ? "all" : new Set(keys));
|
|
120
|
+
state.onSelectionChange?.(keys);
|
|
121
|
+
// If the selectionBehavior prop is "replace" but the current behavior is "toggle" (e.g. after a
|
|
122
|
+
// long press entered selection mode on touch), and the selection becomes empty, reset it.
|
|
123
|
+
if (state.selectionBehaviorProp === "replace" && untrack(state.selectionBehavior) === "toggle" && keys !== "all" && keys.size === 0) {
|
|
124
|
+
state.selectionBehavior.set("replace");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** Current selection as a `SelectionSet` with anchor / current keys (or "all"). Reads the signals. */
|
|
128
|
+
export function getSelection(state) {
|
|
129
|
+
const keys = readSelection(state);
|
|
130
|
+
return keys === "all" ? "all" : new SelectionSet(keys, state.anchorKey(), state.currentKey());
|
|
131
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Key, KeyboardDelegate } from "../collections/types.js";
|
|
2
|
+
import type { MultipleSelectionManager } from "./manager.js";
|
|
3
|
+
/** How long to wait before clearing the typeahead buffer. */
|
|
4
|
+
export declare const TYPEAHEAD_DEBOUNCE_WAIT_MS = 1000;
|
|
5
|
+
export interface AriaTypeSelectOptions {
|
|
6
|
+
/** A delegate that returns collection item keys with respect to visual layout. */
|
|
7
|
+
keyboardDelegate: KeyboardDelegate;
|
|
8
|
+
/** An interface for reading and updating multiple selection state. */
|
|
9
|
+
selectionManager: Pick<MultipleSelectionManager, "focusedKey" | "setFocusedKey">;
|
|
10
|
+
/** Called when an item is focused by typing. */
|
|
11
|
+
onTypeSelect?: ((key: Key) => void) | undefined;
|
|
12
|
+
}
|
|
13
|
+
/** Current search string of `owner` (tests, custom handlers). */
|
|
14
|
+
export declare const typeSelectSearch: (owner: object) => string;
|
|
15
|
+
/** Clear the buffer of `owner`. */
|
|
16
|
+
export declare function resetTypeSelect(owner: object): void;
|
|
17
|
+
/**
|
|
18
|
+
* Capture-phase keydown: while a search is in progress, Space extends the search instead of
|
|
19
|
+
* selecting (and is stopped from reaching the bubble-phase handlers). Returns whether handled.
|
|
20
|
+
*/
|
|
21
|
+
export declare function typeSelectKeyDownCapture(owner: object, options: AriaTypeSelectOptions, e: KeyboardEvent): boolean;
|
|
22
|
+
/** Bubble-phase keydown: printable characters extend the search. Returns whether handled. */
|
|
23
|
+
export declare function typeSelectKeyDown(owner: object, options: AriaTypeSelectOptions, e: KeyboardEvent & {
|
|
24
|
+
currentTarget: EventTarget | null;
|
|
25
|
+
}): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* react-aria `useTypeSelect`: the handler pair for an owner (`onKeyDownCapture` / `onKeyDown`),
|
|
28
|
+
* undefined when the delegate cannot search.
|
|
29
|
+
*/
|
|
30
|
+
export declare function useTypeSelect(owner: object, options: AriaTypeSelectOptions): {
|
|
31
|
+
typeSelectProps: {
|
|
32
|
+
onKeyDownCapture?: (e: KeyboardEvent) => void;
|
|
33
|
+
onKeyDown?: (e: KeyboardEvent & {
|
|
34
|
+
currentTarget: EventTarget | null;
|
|
35
|
+
}) => void;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// Ported from @react-aria/selection (useTypeSelect.ts), Apache-2.0, © Adobe.
|
|
2
|
+
//
|
|
3
|
+
// Rivet: the search buffer lives per owner (the collection element, or any object) in a WeakMap,
|
|
4
|
+
// not in component state, so resumed handlers share it without serializing it.
|
|
5
|
+
import { nodeContains } from "./dom-utils.js";
|
|
6
|
+
/** How long to wait before clearing the typeahead buffer. */
|
|
7
|
+
export const TYPEAHEAD_DEBOUNCE_WAIT_MS = 1000;
|
|
8
|
+
const buffers = new WeakMap();
|
|
9
|
+
const bufferOf = (owner) => {
|
|
10
|
+
let b = buffers.get(owner);
|
|
11
|
+
if (!b)
|
|
12
|
+
buffers.set(owner, (b = { search: "", timeout: undefined }));
|
|
13
|
+
return b;
|
|
14
|
+
};
|
|
15
|
+
/** Current search string of `owner` (tests, custom handlers). */
|
|
16
|
+
export const typeSelectSearch = (owner) => buffers.get(owner)?.search ?? "";
|
|
17
|
+
/** Clear the buffer of `owner`. */
|
|
18
|
+
export function resetTypeSelect(owner) {
|
|
19
|
+
const b = buffers.get(owner);
|
|
20
|
+
if (!b)
|
|
21
|
+
return;
|
|
22
|
+
clearTimeout(b.timeout);
|
|
23
|
+
b.search = "";
|
|
24
|
+
b.timeout = undefined;
|
|
25
|
+
}
|
|
26
|
+
function schedule(b) {
|
|
27
|
+
clearTimeout(b.timeout);
|
|
28
|
+
b.timeout = setTimeout(() => {
|
|
29
|
+
b.search = "";
|
|
30
|
+
}, TYPEAHEAD_DEBOUNCE_WAIT_MS);
|
|
31
|
+
}
|
|
32
|
+
function search(b, options) {
|
|
33
|
+
const { keyboardDelegate, selectionManager } = options;
|
|
34
|
+
if (keyboardDelegate.getKeyForSearch == null)
|
|
35
|
+
return null;
|
|
36
|
+
// Prioritize items after the currently focused item, falling back to searching the whole list.
|
|
37
|
+
let key = keyboardDelegate.getKeyForSearch(b.search, selectionManager.focusedKey);
|
|
38
|
+
if (key == null)
|
|
39
|
+
key = keyboardDelegate.getKeyForSearch(b.search);
|
|
40
|
+
return key;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Capture-phase keydown: while a search is in progress, Space extends the search instead of
|
|
44
|
+
* selecting (and is stopped from reaching the bubble-phase handlers). Returns whether handled.
|
|
45
|
+
*/
|
|
46
|
+
export function typeSelectKeyDownCapture(owner, options, e) {
|
|
47
|
+
if (!options.keyboardDelegate.getKeyForSearch)
|
|
48
|
+
return false;
|
|
49
|
+
const b = bufferOf(owner);
|
|
50
|
+
if (b.search.length > 0 && e.key === " ") {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
e.stopPropagation();
|
|
53
|
+
b.search += " ";
|
|
54
|
+
const key = search(b, options);
|
|
55
|
+
if (key != null) {
|
|
56
|
+
options.selectionManager.setFocusedKey(key);
|
|
57
|
+
options.onTypeSelect?.(key);
|
|
58
|
+
}
|
|
59
|
+
schedule(b);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
/** Bubble-phase keydown: printable characters extend the search. Returns whether handled. */
|
|
65
|
+
export function typeSelectKeyDown(owner, options, e) {
|
|
66
|
+
if (!options.keyboardDelegate.getKeyForSearch)
|
|
67
|
+
return false;
|
|
68
|
+
const b = bufferOf(owner);
|
|
69
|
+
const character = getStringForKey(e.key);
|
|
70
|
+
if (!character ||
|
|
71
|
+
e.ctrlKey ||
|
|
72
|
+
e.metaKey ||
|
|
73
|
+
e.altKey ||
|
|
74
|
+
(typeof Node !== "undefined" && e.currentTarget instanceof Node && !nodeContains(e.currentTarget, e.target)) ||
|
|
75
|
+
(b.search.length === 0 && character === " ")) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
b.search += character;
|
|
79
|
+
const key = search(b, options);
|
|
80
|
+
if (key != null) {
|
|
81
|
+
options.selectionManager.setFocusedKey(key);
|
|
82
|
+
options.onTypeSelect?.(key);
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
e.stopPropagation();
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// If still nothing then the type to select is done and everything is reset.
|
|
88
|
+
resetTypeSelect(owner);
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
schedule(b);
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* react-aria `useTypeSelect`: the handler pair for an owner (`onKeyDownCapture` / `onKeyDown`),
|
|
96
|
+
* undefined when the delegate cannot search.
|
|
97
|
+
*/
|
|
98
|
+
export function useTypeSelect(owner, options) {
|
|
99
|
+
if (!options.keyboardDelegate.getKeyForSearch)
|
|
100
|
+
return { typeSelectProps: {} };
|
|
101
|
+
return {
|
|
102
|
+
typeSelectProps: {
|
|
103
|
+
onKeyDownCapture: (e) => void typeSelectKeyDownCapture(owner, options, e),
|
|
104
|
+
onKeyDown: (e) => void typeSelectKeyDown(owner, options, e),
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function getStringForKey(key) {
|
|
109
|
+
// If the key is of length 1, it is an ASCII value. Otherwise, if there are no ASCII characters in
|
|
110
|
+
// the key name, it is a Unicode character. See https://www.w3.org/TR/uievents-key/
|
|
111
|
+
if (key.length === 1 || !/^[A-Z]/i.test(key))
|
|
112
|
+
return key;
|
|
113
|
+
return "";
|
|
114
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Collection, Key } from "../collections/types.js";
|
|
2
|
+
export { getItemElement } from "../collections/dom.js";
|
|
3
|
+
/** A ref (`{ current }`) or the element itself. */
|
|
4
|
+
export type RefLike<E extends Element = HTMLElement> = {
|
|
5
|
+
readonly current: E | null;
|
|
6
|
+
} | E | null | undefined;
|
|
7
|
+
/** Element of a `RefLike`. */
|
|
8
|
+
export declare function refElement<E extends Element>(ref: RefLike<E>): E | null;
|
|
9
|
+
interface ModifierEvent {
|
|
10
|
+
altKey: boolean;
|
|
11
|
+
ctrlKey: boolean;
|
|
12
|
+
metaKey: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function isNonContiguousSelectionModifier(e: ModifierEvent): boolean;
|
|
15
|
+
/** Ctrl (Cmd on Apple) pressed. */
|
|
16
|
+
export declare function isCtrlKeyPressed(e: ModifierEvent): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Id of a collection (`data-collection` on the collection and its items). Rivet: pass a stable id
|
|
19
|
+
* (the component's `createId()`) so server and client agree; otherwise one is generated.
|
|
20
|
+
*/
|
|
21
|
+
export declare function useCollectionId(collection: Collection<any>, id?: string): string;
|
|
22
|
+
export declare function getCollectionId(collection: Collection<any>): string | undefined;
|
|
23
|
+
export type { Key };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Ported from @react-aria/selection (utils.ts), Apache-2.0, © Adobe.
|
|
2
|
+
import { createId } from "@rivetjs/runtime/id";
|
|
3
|
+
import { isMac } from "../platform/index.js";
|
|
4
|
+
export { getItemElement } from "../collections/dom.js";
|
|
5
|
+
/** Element of a `RefLike`. */
|
|
6
|
+
export function refElement(ref) {
|
|
7
|
+
if (!ref)
|
|
8
|
+
return null;
|
|
9
|
+
return typeof ref.nodeType === "number" ? ref : ref.current;
|
|
10
|
+
}
|
|
11
|
+
/** Apple devices: Mac, iPhone, iPad. */
|
|
12
|
+
const isAppleDevice = () => {
|
|
13
|
+
if (isMac())
|
|
14
|
+
return true;
|
|
15
|
+
return typeof navigator !== "undefined" && /^(iPhone|iPad)/i.test(navigator.platform ?? "");
|
|
16
|
+
};
|
|
17
|
+
export function isNonContiguousSelectionModifier(e) {
|
|
18
|
+
// Ctrl + Arrow Up/Arrow Down has a system wide meaning on macOS, so use Alt instead.
|
|
19
|
+
// On Windows and Ubuntu, Alt + Space has a system wide meaning.
|
|
20
|
+
return isAppleDevice() ? e.altKey : e.ctrlKey;
|
|
21
|
+
}
|
|
22
|
+
/** Ctrl (Cmd on Apple) pressed. */
|
|
23
|
+
export function isCtrlKeyPressed(e) {
|
|
24
|
+
return isAppleDevice() ? e.metaKey : e.ctrlKey;
|
|
25
|
+
}
|
|
26
|
+
const collectionIds = new WeakMap();
|
|
27
|
+
/**
|
|
28
|
+
* Id of a collection (`data-collection` on the collection and its items). Rivet: pass a stable id
|
|
29
|
+
* (the component's `createId()`) so server and client agree; otherwise one is generated.
|
|
30
|
+
*/
|
|
31
|
+
export function useCollectionId(collection, id) {
|
|
32
|
+
const value = id ?? collectionIds.get(collection) ?? createId();
|
|
33
|
+
collectionIds.set(collection, value);
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
export function getCollectionId(collection) {
|
|
37
|
+
return collectionIds.get(collection);
|
|
38
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SharedElementRenderProps } from "../shared-element-transition/index.jsx";
|
|
2
|
+
/** What an item provides (RAC `ContextValue<SelectionIndicatorProps>`); a SelectionIndicator's own props win. */
|
|
3
|
+
export interface SelectionIndicatorContextValue {
|
|
4
|
+
/** Whether the item is selected: an accessor (no item re-render) or a boolean. */
|
|
5
|
+
isSelected?: boolean | (() => boolean);
|
|
6
|
+
class?: string | ((values: SharedElementRenderProps) => string | undefined);
|
|
7
|
+
style?: Record<string, string | number | undefined> | ((values: SharedElementRenderProps) => Record<string, string | number | undefined> | undefined);
|
|
8
|
+
}
|
|
9
|
+
/** RAC `SelectionIndicatorContext`: items provide `{ isSelected }`. */
|
|
10
|
+
export declare const SelectionIndicatorContext: import("@rivetjs/reactivity").Context<SelectionIndicatorContextValue>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Ported from react-spectrum packages/react-aria-components/src/SelectionIndicator.tsx (`SelectionIndicatorContext`), Apache-2.0, © Adobe.
|
|
2
|
+
// Its own module: Tabs / RadioGroup / ToggleButton provide it on every page, so their chunks carry this
|
|
3
|
+
// token only, never the SelectionIndicator / SharedElement code.
|
|
4
|
+
import { createContext } from "@rivetjs/reactivity";
|
|
5
|
+
import { resumableContext } from "@rivetjs/runtime/resume-format";
|
|
6
|
+
/** RAC `SelectionIndicatorContext`: items provide `{ isSelected }`. */
|
|
7
|
+
export const SelectionIndicatorContext = resumableContext(createContext({ isSelected: false }, { id: "rv-selection-indicator" }));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type SharedElementPropsBase, type SharedElementRenderProps } from "../shared-element-transition/index.jsx";
|
|
2
|
+
export type { SharedElementRenderProps } from "../shared-element-transition/index.jsx";
|
|
3
|
+
export { SelectionIndicatorContext, type SelectionIndicatorContextValue } from "./context.js";
|
|
4
|
+
export interface SelectionIndicatorProps extends SharedElementPropsBase {
|
|
5
|
+
/**
|
|
6
|
+
* The CSS class for the element. A function may be provided to compute the class based on component state.
|
|
7
|
+
*
|
|
8
|
+
* @default 'rv-SelectionIndicator'
|
|
9
|
+
*/
|
|
10
|
+
class?: string | ((values: SharedElementRenderProps) => string | undefined);
|
|
11
|
+
/**
|
|
12
|
+
* Whether the SelectionIndicator is visible. This is usually set automatically by the parent
|
|
13
|
+
* component (an accessor or a boolean).
|
|
14
|
+
*/
|
|
15
|
+
isSelected?: boolean | (() => boolean);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* An animated indicator of selection state within a group of items.
|
|
19
|
+
*/
|
|
20
|
+
export declare function SelectionIndicator(props: SelectionIndicatorProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Ported from react-spectrum packages/react-aria-components/src/SelectionIndicator.tsx, Apache-2.0, © Adobe.
|
|
2
|
+
// An animated indicator of selection state within a group of items: a `SharedElement` named
|
|
3
|
+
// "SelectionIndicator", visible while the enclosing item (Tab, Radio, ToggleButton) is selected.
|
|
4
|
+
// Rivet: the context value's `isSelected` is an accessor (a boolean is accepted too), so the item never
|
|
5
|
+
// re-renders; RAC `useContextProps` → own props win over the context's (`isSelected`, `class`, `style`).
|
|
6
|
+
import { useContext } from "@rivetjs/reactivity";
|
|
7
|
+
import { SelectionIndicatorContext } from "./context.js";
|
|
8
|
+
import { SharedElement } from "../shared-element-transition/index.jsx";
|
|
9
|
+
export { SelectionIndicatorContext } from "./context.js";
|
|
10
|
+
/**
|
|
11
|
+
* An animated indicator of selection state within a group of items.
|
|
12
|
+
*/
|
|
13
|
+
export function SelectionIndicator(props) {
|
|
14
|
+
const context = useContext(SelectionIndicatorContext);
|
|
15
|
+
const isSelected = props.isSelected ?? context.isSelected;
|
|
16
|
+
const className = props.class ?? context.class ?? "rv-SelectionIndicator";
|
|
17
|
+
const style = props.style ?? context.style;
|
|
18
|
+
const children = props.children;
|
|
19
|
+
const rest = {};
|
|
20
|
+
for (const key in props)
|
|
21
|
+
if (key !== "isSelected" && key !== "class" && key !== "style" && key !== "children")
|
|
22
|
+
rest[key] = props[key];
|
|
23
|
+
// A plain call (not JSX): its reads belong to this component's site, and `children` reaches it as given (a render function stays one).
|
|
24
|
+
return SharedElement({ ...rest, class: className, style, children, name: "SelectionIndicator", isVisible: isSelected ?? false });
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AriaLabelingProps, DOMProps, Orientation } from "../utils/types.js";
|
|
2
|
+
export interface AriaSeparatorProps extends DOMProps, AriaLabelingProps {
|
|
3
|
+
/**
|
|
4
|
+
* The orientation of the separator.
|
|
5
|
+
*
|
|
6
|
+
* @default 'horizontal'
|
|
7
|
+
*/
|
|
8
|
+
orientation?: Orientation;
|
|
9
|
+
/** The HTML element type that will be used to render the separator. */
|
|
10
|
+
elementType?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SeparatorAria {
|
|
13
|
+
/** Props for the separator element. */
|
|
14
|
+
separatorProps: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
/** Accessibility attributes of a separator (RA `useSeparator`). */
|
|
17
|
+
export declare function separatorProps(props: AriaSeparatorProps): SeparatorAria;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const LABELABLE = ["id", "aria-label", "aria-labelledby", "aria-describedby", "aria-details"];
|
|
2
|
+
/** Accessibility attributes of a separator (RA `useSeparator`). */
|
|
3
|
+
export function separatorProps(props) {
|
|
4
|
+
const domProps = {};
|
|
5
|
+
for (const key of LABELABLE)
|
|
6
|
+
if (props[key] !== undefined)
|
|
7
|
+
domProps[key] = props[key];
|
|
8
|
+
let ariaOrientation;
|
|
9
|
+
// If orientation is horizontal, aria-orientation default is horizontal, so we leave it undefined;
|
|
10
|
+
// if it's vertical, we need to specify it.
|
|
11
|
+
if (props.orientation === "vertical")
|
|
12
|
+
ariaOrientation = "vertical";
|
|
13
|
+
// hr elements implicitly have role = separator and a horizontal orientation.
|
|
14
|
+
if (props.elementType !== "hr")
|
|
15
|
+
return { separatorProps: { ...domProps, role: "separator", "aria-orientation": ariaOrientation } };
|
|
16
|
+
return { separatorProps: domProps };
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type DOMRenderProps } from "../utils/render.js";
|
|
2
|
+
import { type GlobalDOMAttributes } from "../utils/dom-props.js";
|
|
3
|
+
import { CollectionNode, type BaseCollection } from "../collections/base.js";
|
|
4
|
+
import { type ContextValue, type RefValue, type SlotProps, type StyleObject } from "../slots/index.jsx";
|
|
5
|
+
import { type AriaSeparatorProps } from "./behaviour.js";
|
|
6
|
+
export { separatorProps, type AriaSeparatorProps, type SeparatorAria } from "./behaviour.js";
|
|
7
|
+
export interface SeparatorProps extends AriaSeparatorProps, SlotProps, GlobalDOMAttributes<HTMLElement>, DOMRenderProps<"hr", undefined> {
|
|
8
|
+
/** @default "rv-Separator" */
|
|
9
|
+
class?: string;
|
|
10
|
+
style?: StyleObject;
|
|
11
|
+
ref?: RefValue<HTMLElement>;
|
|
12
|
+
}
|
|
13
|
+
export declare const SeparatorContext: import("@rivetjs/reactivity").Context<ContextValue<SeparatorProps, HTMLElement>>;
|
|
14
|
+
/** Collection node of a separator (RAC `SeparatorNode`). */
|
|
15
|
+
export declare class SeparatorNode extends CollectionNode<any> {
|
|
16
|
+
static readonly type = "separator";
|
|
17
|
+
filter(collection: BaseCollection<any>, newCollection: BaseCollection<any>): CollectionNode<any> | null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A separator is a visual divider between two groups of content, e.g. groups of menu items or
|
|
21
|
+
* sections of a page.
|
|
22
|
+
*/
|
|
23
|
+
export declare const Separator: (props: SeparatorProps) => unknown;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Ported from react-aria-components Separator (packages/react-aria-components/src/Separator.tsx), Apache-2.0, © Adobe.
|
|
2
|
+
// A visual divider between two groups of content (groups of menu items, sections of a page): `<hr>`,
|
|
3
|
+
// or `<div role="separator" aria-orientation="vertical">` when vertical / `elementType` given.
|
|
4
|
+
// Rivet: props merged with `SeparatorContext` (`contextProps`); `separatorProps` (RA useSeparator) in
|
|
5
|
+
// `behaviour.ts`; a collection leaf (`createLeafComponent(SeparatorNode, …)`, `SeparatorNode.filter` keeps
|
|
6
|
+
// a separator only after a non-separator item when filtering, as RAC). `render` (RAC DOMRenderProps): given, the attributes object (`ref`, `class`, `style`) goes to `render(attrs, undefined)` instead of the default element; the default path is the compiled element.
|
|
7
|
+
import { createContext } from "@rivetjs/reactivity";
|
|
8
|
+
import { Dynamic } from "@rivetjs/runtime/dom";
|
|
9
|
+
import {} from "../utils/render.js";
|
|
10
|
+
import { globalDOMProps } from "../utils/dom-props.js";
|
|
11
|
+
import { mergeProps } from "../interactions/merge-props.jsx";
|
|
12
|
+
import { CollectionNode } from "../collections/base.js";
|
|
13
|
+
import { createLeafComponent } from "../collections/components.jsx";
|
|
14
|
+
import { resumableContext, contextProps } from "../slots/index.jsx";
|
|
15
|
+
import { separatorProps } from "./behaviour.js";
|
|
16
|
+
import { isLive, liveClass } from "../utils/live.jsx";
|
|
17
|
+
export { separatorProps } from "./behaviour.js";
|
|
18
|
+
export const SeparatorContext = resumableContext(createContext({}, { id: "rv-separator" }));
|
|
19
|
+
/** RA `filterDOMProps(props, { global: true })`: global attributes / events, `id`, `data-*`. */
|
|
20
|
+
function domPropsOf(props) {
|
|
21
|
+
const out = globalDOMProps(props);
|
|
22
|
+
for (const key in props)
|
|
23
|
+
if ((key === "id" || key.startsWith("data-")) && props[key] !== undefined)
|
|
24
|
+
out[key] = props[key];
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
/** Collection node of a separator (RAC `SeparatorNode`). */
|
|
28
|
+
export class SeparatorNode extends CollectionNode {
|
|
29
|
+
static type = "separator";
|
|
30
|
+
filter(collection, newCollection) {
|
|
31
|
+
const prevItem = newCollection.getItem(this.prevKey);
|
|
32
|
+
if (prevItem && prevItem.type !== "separator") {
|
|
33
|
+
const clone = this.clone();
|
|
34
|
+
newCollection.addDescendants(clone, collection);
|
|
35
|
+
return clone;
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A separator is a visual divider between two groups of content, e.g. groups of menu items or
|
|
42
|
+
* sections of a page.
|
|
43
|
+
*/
|
|
44
|
+
export const Separator = /*#__PURE__*/ createLeafComponent(SeparatorNode, function Separator(props, forwardedRef) {
|
|
45
|
+
const [merged, ref] = contextProps(props, forwardedRef, SeparatorContext);
|
|
46
|
+
const { elementType, orientation, style, class: className, slot, render } = merged;
|
|
47
|
+
let element = elementType || "hr";
|
|
48
|
+
if (element === "hr" && orientation === "vertical")
|
|
49
|
+
element = "div";
|
|
50
|
+
const aria = separatorProps({ ...merged, elementType, orientation });
|
|
51
|
+
// Live props (P5): a live `class` goes through the spread as an accessor.
|
|
52
|
+
const cls = isLive(merged, "class") ? liveClass(merged, "rv-Separator") : (className ?? "rv-Separator");
|
|
53
|
+
// `class` may be an accessor: the spread binds it (typed as the static string).
|
|
54
|
+
const attrs = mergeProps(domPropsOf(merged), aria.separatorProps, { class: cls });
|
|
55
|
+
const s = slot || undefined;
|
|
56
|
+
const r = ref;
|
|
57
|
+
if (render)
|
|
58
|
+
return render({ ...attrs, style, class: cls, ref: r, slot: s }, undefined);
|
|
59
|
+
if (element === "hr")
|
|
60
|
+
return <hr {...attrs} style={style} ref={r} slot={s}/>;
|
|
61
|
+
if (element === "div")
|
|
62
|
+
return <div {...attrs} style={style} ref={r} slot={s}/>;
|
|
63
|
+
return <Dynamic component={element} {...attrs} style={style} ref={r} slot={s}/>;
|
|
64
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Content, Slot } from "@rivetjs/runtime/jsx-runtime";
|
|
2
|
+
import { type GlobalDOMAttributes } from "@rivetjs/cdk/dom-props";
|
|
3
|
+
export { SharedElementContext, SharedElementTransition, type SharedElementScope, type SharedElementTransitionProps, type Snapshot } from "./transition.jsx";
|
|
4
|
+
export interface SharedElementRenderProps {
|
|
5
|
+
/**
|
|
6
|
+
* Whether the element is currently entering.
|
|
7
|
+
*
|
|
8
|
+
* @selector [data-entering]
|
|
9
|
+
*/
|
|
10
|
+
isEntering: () => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the element is currently exiting.
|
|
13
|
+
*
|
|
14
|
+
* @selector [data-exiting]
|
|
15
|
+
*/
|
|
16
|
+
isExiting: () => boolean;
|
|
17
|
+
}
|
|
18
|
+
type StyleObject = Record<string, string | number | undefined>;
|
|
19
|
+
export interface SharedElementPropsBase extends GlobalDOMAttributes<HTMLDivElement> {
|
|
20
|
+
id?: string;
|
|
21
|
+
/** Class name, or a function of the render props (called inside a binding). */
|
|
22
|
+
class?: string | ((values: SharedElementRenderProps) => string | undefined);
|
|
23
|
+
/** Inline style, or a function of the render props (called inside a binding). */
|
|
24
|
+
style?: StyleObject | ((values: SharedElementRenderProps) => StyleObject | undefined);
|
|
25
|
+
/** Content; a function gets the render props. */
|
|
26
|
+
children?: Content | Slot<[SharedElementRenderProps]>;
|
|
27
|
+
}
|
|
28
|
+
export interface SharedElementProps extends SharedElementPropsBase {
|
|
29
|
+
name: string;
|
|
30
|
+
/** @default true — a boolean or an accessor (a signal) for a changing value. */
|
|
31
|
+
isVisible?: boolean | (() => boolean);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* An element that animates between its old and new position when moving between parents.
|
|
35
|
+
*/
|
|
36
|
+
export declare function SharedElement(props: SharedElementProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|