@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +120 -0
- package/_adapters/selection.js +709 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +376 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +252 -0
- package/collections/components.jsx +745 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +17 -0
- package/collections/nodes.js +107 -0
- package/collections/row-stamps.d.ts +17 -0
- package/collections/row-stamps.js +108 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +6 -0
- package/collections/server-dev.js +18 -0
- package/collections/server-off.d.ts +6 -0
- package/collections/server-off.js +9 -0
- package/collections/server-on.d.ts +29 -0
- package/collections/server-on.jsx +86 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +210 -0
- package/drag-drop/directives/drag.js +550 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +128 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +144 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +248 -0
- package/grid-list/behaviour.js +616 -0
- package/grid-list/index.d.ts +204 -0
- package/grid-list/index.jsx +721 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +539 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +52 -0
- package/interactions/utils.js +253 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +515 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +632 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +702 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +55 -0
- package/portal/index.jsx +83 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +142 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +66 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +560 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +625 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +162 -0
- package/state/menu.js +185 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +1326 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +837 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +73 -0
- package/utils/data-attrs.jsx +217 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +43 -0
- package/utils/index.js +160 -0
- package/utils/link-state.d.ts +6 -0
- package/utils/link-state.js +6 -0
- package/utils/links.d.ts +82 -0
- package/utils/links.jsx +150 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/transitions.d.ts +15 -0
- package/utils/transitions.js +104 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +129 -0
- package/virtualizer/behaviour.js +437 -0
- package/virtualizer/collection-renderer.d.ts +62 -0
- package/virtualizer/collection-renderer.jsx +190 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +3 -0
- package/virtualizer/index.jsx +5 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +510 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +89 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +64 -0
- package/virtualizer/virtualizer.jsx +91 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
package/tree/intl.d.ts
ADDED
package/tree/intl.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const strings = {
|
|
2
|
+
"ar-AE": { collapse: "طي", expand: "تمديد" },
|
|
3
|
+
"bg-BG": { collapse: "Свиване", expand: "Разширяване" },
|
|
4
|
+
"cs-CZ": { collapse: "Sbalit", expand: "Roztáhnout" },
|
|
5
|
+
"da-DK": { collapse: "Skjul", expand: "Udvid" },
|
|
6
|
+
"de-DE": { collapse: "Reduzieren", expand: "Erweitern" },
|
|
7
|
+
"el-GR": { collapse: "Σύμπτυξη", expand: "Ανάπτυξη" },
|
|
8
|
+
"en-US": { expand: "Expand", collapse: "Collapse" },
|
|
9
|
+
"es-ES": { collapse: "Contraer", expand: "Expandir" },
|
|
10
|
+
"et-EE": { collapse: "Ahenda", expand: "Laienda" },
|
|
11
|
+
"fi-FI": { collapse: "Pienennä", expand: "Laajenna" },
|
|
12
|
+
"fr-FR": { collapse: "Réduire", expand: "Développer" },
|
|
13
|
+
"he-IL": { collapse: "כווץ", expand: "הרחב" },
|
|
14
|
+
"hr-HR": { collapse: "Sažmi", expand: "Proširi" },
|
|
15
|
+
"hu-HU": { collapse: "Összecsukás", expand: "Kibontás" },
|
|
16
|
+
"it-IT": { collapse: "Comprimi", expand: "Espandi" },
|
|
17
|
+
"ja-JP": { collapse: "折りたたむ", expand: "展開" },
|
|
18
|
+
"ko-KR": { collapse: "접기", expand: "펼치기" },
|
|
19
|
+
"lt-LT": { collapse: "Sutraukti", expand: "Išskleisti" },
|
|
20
|
+
"lv-LV": { collapse: "Sakļaut", expand: "Izvērst" },
|
|
21
|
+
"nb-NO": { collapse: "Skjul", expand: "Utvid" },
|
|
22
|
+
"nl-NL": { collapse: "Samenvouwen", expand: "Uitvouwen" },
|
|
23
|
+
"pl-PL": { collapse: "Zwiń", expand: "Rozwiń" },
|
|
24
|
+
"pt-BR": { collapse: "Recolher", expand: "Expandir" },
|
|
25
|
+
"pt-PT": { collapse: "Colapsar", expand: "Expandir" },
|
|
26
|
+
"ro-RO": { collapse: "Restrângeți", expand: "Extindeți" },
|
|
27
|
+
"ru-RU": { collapse: "Свернуть", expand: "Развернуть" },
|
|
28
|
+
"sk-SK": { collapse: "Zbaliť", expand: "Rozbaliť" },
|
|
29
|
+
"sl-SI": { collapse: "Strni", expand: "Razširi" },
|
|
30
|
+
"sr-SP": { collapse: " Skupi", expand: "Proširi" },
|
|
31
|
+
"sv-SE": { collapse: "Dölj", expand: "Expandera" },
|
|
32
|
+
"tr-TR": { collapse: "Daralt", expand: "Genişlet" },
|
|
33
|
+
"uk-UA": { collapse: "Згорнути", expand: "Розгорнути" },
|
|
34
|
+
"zh-CN": { collapse: "折叠", expand: "扩展" },
|
|
35
|
+
"zh-TW": { collapse: "收合", expand: "展開" },
|
|
36
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { Collection, Key, Node } from "../collections/types.js";
|
|
3
|
+
import type { RouterOptions } from "../utils/links.jsx";
|
|
4
|
+
/** NavigationTree → its items: the current route and the focus-sync bookkeeping. */
|
|
5
|
+
export interface InternalNavigationTreeContextValue {
|
|
6
|
+
/** The route that is currently selected (accessor). */
|
|
7
|
+
selectedRoute: () => string | null | undefined;
|
|
8
|
+
/** The last route the focused key was synced to; dedupes the focus sync across items. */
|
|
9
|
+
syncedRoute: {
|
|
10
|
+
current: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare const InternalNavigationTreeContext: import("@rivetjs/reactivity").Context<InternalNavigationTreeContextValue | null>;
|
|
14
|
+
/** The link props a NavigationTreeItem hands its NavigationTreeItemContent's `Link`. */
|
|
15
|
+
export interface NavigationTreeItemLinkContextValue {
|
|
16
|
+
href?: string | undefined;
|
|
17
|
+
hrefLang?: string | undefined;
|
|
18
|
+
target?: string | undefined;
|
|
19
|
+
rel?: string | undefined;
|
|
20
|
+
download?: string | boolean | undefined;
|
|
21
|
+
ping?: string | undefined;
|
|
22
|
+
referrerPolicy?: ReferrerPolicy | undefined;
|
|
23
|
+
routerOptions?: RouterOptions | undefined;
|
|
24
|
+
isCurrent: () => boolean;
|
|
25
|
+
/** Whether the item's link (as opposed to another focusable child such as a button) is focused. */
|
|
26
|
+
isLinkFocused: Signal<boolean>;
|
|
27
|
+
}
|
|
28
|
+
export declare const NavigationTreeItemLinkContext: import("@rivetjs/reactivity").Context<NavigationTreeItemLinkContextValue | null>;
|
|
29
|
+
/** RAC `NavigationTreeItemStateContext` (Rivet: `isCurrentAncestor` is an accessor). */
|
|
30
|
+
export declare const NavigationTreeItemStateContext: import("@rivetjs/reactivity").Context<{
|
|
31
|
+
isCurrentAncestor: () => boolean;
|
|
32
|
+
}>;
|
|
33
|
+
/** The collection key of the item whose href matches `route`, or null. */
|
|
34
|
+
export declare function findKeyForRoute(collection: Collection<Node<unknown>>, route: string): Key | null;
|
|
35
|
+
/**
|
|
36
|
+
* Walks up from `key` to the closest ancestor that is actually rendered (all ancestors expanded).
|
|
37
|
+
* Returns `key` unchanged when already visible. A collapsed ancestor hides everything beneath it,
|
|
38
|
+
* so the highest collapsed ancestor is the closest visible row.
|
|
39
|
+
*/
|
|
40
|
+
export declare function closestVisibleKey(collection: Collection<Node<unknown>>, expandedKeys: Set<Key>, key: Key): Key;
|
|
41
|
+
/** The set of collection keys that are ancestors of the item matching `selectedRoute`. */
|
|
42
|
+
export declare function getSelectedAncestors(collection: Collection<Node<unknown>>, selectedRoute: string): Set<Key>;
|
|
43
|
+
/** Whether the row `id` is an ancestor of the item matching `selectedRoute`. */
|
|
44
|
+
export declare function hasSelectedDescendant(id: Key | undefined, collection: Collection<Node<unknown>>, selectedRoute: string | undefined | null): boolean;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Ported from react-aria-components (src/NavigationTree.tsx: InternalNavigationTreeContext,
|
|
2
|
+
// NavigationTreeItemLinkContext, NavigationTreeItemStateContext, findKeyForRoute, closestVisibleKey,
|
|
3
|
+
// getSelectedAncestors), Apache-2.0, © Adobe.
|
|
4
|
+
// Rivet:
|
|
5
|
+
// - Lives next to TreeItem (not in `navigation-tree/`): RAC NavigationTreeItem wraps TreeItem's `render`
|
|
6
|
+
// prop to add `data-current` / `data-current-ancestor` / link focus-visible and a context around the row
|
|
7
|
+
// children. Rivet does not wrap TreeItem's `render` here: TreeItem itself applies them when an enclosing NavigationTree
|
|
8
|
+
// provides `InternalNavigationTreeContext` (render props stay accessors).
|
|
9
|
+
// - Contexts are resumable (`rv-navigation-tree*`); values are plain data, signals and inline arrows.
|
|
10
|
+
// - `syncedRoute` is a plain `{ current }` object (RAC `syncedRouteRef`).
|
|
11
|
+
import { createContext } from "@rivetjs/reactivity";
|
|
12
|
+
import { resumableContext } from "../slots/index.jsx";
|
|
13
|
+
export const InternalNavigationTreeContext = resumableContext(createContext(null, { id: "rv-navigation-tree" }));
|
|
14
|
+
export const NavigationTreeItemLinkContext = resumableContext(createContext(null, { id: "rv-navigation-tree-item-link" }));
|
|
15
|
+
/** RAC `NavigationTreeItemStateContext` (Rivet: `isCurrentAncestor` is an accessor). */
|
|
16
|
+
export const NavigationTreeItemStateContext = resumableContext(createContext({ isCurrentAncestor: () => false }, { id: "rv-navigation-tree-item-state" }));
|
|
17
|
+
/** The collection key of the item whose href matches `route`, or null. */
|
|
18
|
+
export function findKeyForRoute(collection, route) {
|
|
19
|
+
for (const key of collection.getKeys()) {
|
|
20
|
+
if (collection.getItem(key)?.props?.href === route)
|
|
21
|
+
return key;
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Walks up from `key` to the closest ancestor that is actually rendered (all ancestors expanded).
|
|
27
|
+
* Returns `key` unchanged when already visible. A collapsed ancestor hides everything beneath it,
|
|
28
|
+
* so the highest collapsed ancestor is the closest visible row.
|
|
29
|
+
*/
|
|
30
|
+
export function closestVisibleKey(collection, expandedKeys, key) {
|
|
31
|
+
let target = key;
|
|
32
|
+
let node = collection.getItem(key);
|
|
33
|
+
while (node?.parentKey != null) {
|
|
34
|
+
const parent = collection.getItem(node.parentKey);
|
|
35
|
+
if (parent?.type === "item" && !expandedKeys.has(node.parentKey))
|
|
36
|
+
target = node.parentKey;
|
|
37
|
+
node = parent;
|
|
38
|
+
}
|
|
39
|
+
return target;
|
|
40
|
+
}
|
|
41
|
+
// Cache so each row doesn't have to walk up the tree every time.
|
|
42
|
+
const selectedAncestorsCache = new WeakMap();
|
|
43
|
+
/** The set of collection keys that are ancestors of the item matching `selectedRoute`. */
|
|
44
|
+
export function getSelectedAncestors(collection, selectedRoute) {
|
|
45
|
+
const cached = selectedAncestorsCache.get(collection);
|
|
46
|
+
if (cached && cached.selection === selectedRoute)
|
|
47
|
+
return cached.ancestors;
|
|
48
|
+
const matchKey = findKeyForRoute(collection, selectedRoute);
|
|
49
|
+
const ancestors = new Set();
|
|
50
|
+
let node = matchKey != null ? collection.getItem(matchKey) : null;
|
|
51
|
+
while (node?.parentKey != null && !ancestors.has(node.parentKey)) {
|
|
52
|
+
ancestors.add(node.parentKey);
|
|
53
|
+
node = collection.getItem(node.parentKey);
|
|
54
|
+
}
|
|
55
|
+
selectedAncestorsCache.set(collection, { selection: selectedRoute, ancestors });
|
|
56
|
+
return ancestors;
|
|
57
|
+
}
|
|
58
|
+
/** Whether the row `id` is an ancestor of the item matching `selectedRoute`. */
|
|
59
|
+
export function hasSelectedDescendant(id, collection, selectedRoute) {
|
|
60
|
+
if (id == null || selectedRoute == null)
|
|
61
|
+
return false;
|
|
62
|
+
return getSelectedAncestors(collection, selectedRoute).has(id);
|
|
63
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Subject, type Subscription } from "../a11y/key-manager.js";
|
|
2
|
+
/** Anything with an RxJS-style `subscribe` (Rivet `Subject`, an RxJS Observable…). */
|
|
3
|
+
export interface Subscribable<T> {
|
|
4
|
+
subscribe(next: (value: T) => void): Subscription | {
|
|
5
|
+
unsubscribe(): void;
|
|
6
|
+
} | (() => void) | void;
|
|
7
|
+
}
|
|
8
|
+
/** Represents an item within a tree that can be passed to a TreeKeyManager. */
|
|
9
|
+
export interface TreeKeyManagerItem {
|
|
10
|
+
/** Whether the item is disabled. */
|
|
11
|
+
isDisabled?: (() => boolean) | boolean;
|
|
12
|
+
/** The user-facing label for this item. */
|
|
13
|
+
getLabel?(): string;
|
|
14
|
+
/** Perform the main action (i.e. selection) for this item. */
|
|
15
|
+
activate(): void;
|
|
16
|
+
/** Retrieves the parent for this item. This is `null` if there is no parent. */
|
|
17
|
+
getParent(): TreeKeyManagerItem | null;
|
|
18
|
+
/** Retrieves the children for this item. */
|
|
19
|
+
getChildren(): TreeKeyManagerItem[] | Subscribable<TreeKeyManagerItem[]>;
|
|
20
|
+
/** Determines if the item is currently expanded. */
|
|
21
|
+
isExpanded: (() => boolean) | boolean;
|
|
22
|
+
/** Collapses the item, hiding its children. */
|
|
23
|
+
collapse(): void;
|
|
24
|
+
/** Expands the item, showing its children. */
|
|
25
|
+
expand(): void;
|
|
26
|
+
/** Focuses the item. This should provide some indication to the user that this item is focused. */
|
|
27
|
+
focus(): void;
|
|
28
|
+
/** Unfocus the item. This should remove the focus state. */
|
|
29
|
+
unfocus(): void;
|
|
30
|
+
/** Sets the item to be focusable without actually focusing it. */
|
|
31
|
+
makeFocusable?(): void;
|
|
32
|
+
}
|
|
33
|
+
/** Configuration for the TreeKeyManager. */
|
|
34
|
+
export interface TreeKeyManagerOptions<T extends TreeKeyManagerItem> {
|
|
35
|
+
/** If true, the key manager calls `activate` in addition to `focus` when an item is focused. */
|
|
36
|
+
shouldActivationFollowFocus?: boolean;
|
|
37
|
+
/** The direction in which the tree items are laid out horizontally (which key expands / collapses). */
|
|
38
|
+
horizontalOrientation?: "rtl" | "ltr";
|
|
39
|
+
/** If provided, navigation "skips" over items that pass the given predicate. */
|
|
40
|
+
skipPredicate?: (item: T) => boolean;
|
|
41
|
+
/** Determines how the key manager decides whether two items are equivalent. */
|
|
42
|
+
trackBy?: (treeItem: T) => unknown;
|
|
43
|
+
/** Enables typeahead; a number is the debounce interval, `true` the default (200 ms). */
|
|
44
|
+
typeAheadDebounceInterval?: true | number;
|
|
45
|
+
}
|
|
46
|
+
export interface TreeKeyManagerStrategy<T extends TreeKeyManagerItem> {
|
|
47
|
+
/** Stream that emits any time the focused item changes. */
|
|
48
|
+
readonly change: Subject<T | null>;
|
|
49
|
+
/** Cleans up the key manager. */
|
|
50
|
+
destroy(): void;
|
|
51
|
+
/** Handles a keyboard event on the tree. */
|
|
52
|
+
onKeydown(event: KeyboardEvent): void;
|
|
53
|
+
/** Index of the currently active item. */
|
|
54
|
+
getActiveItemIndex(): number | null;
|
|
55
|
+
/** The currently active item. */
|
|
56
|
+
getActiveItem(): T | null;
|
|
57
|
+
/** Focus the provided item (by index, or by `trackBy` equality). */
|
|
58
|
+
focusItem(index: number, options?: {
|
|
59
|
+
emitChangeEvent?: boolean;
|
|
60
|
+
}): void;
|
|
61
|
+
focusItem(item: T, options?: {
|
|
62
|
+
emitChangeEvent?: boolean;
|
|
63
|
+
}): void;
|
|
64
|
+
focusItem(itemOrIndex: number | T, options?: {
|
|
65
|
+
emitChangeEvent?: boolean;
|
|
66
|
+
}): void;
|
|
67
|
+
}
|
|
68
|
+
export type TreeKeyManagerItems<T> = T[] | readonly T[] | (() => T[] | readonly T[]) | Subscribable<T[]>;
|
|
69
|
+
export type TreeKeyManagerFactory<T extends TreeKeyManagerItem> = (items: TreeKeyManagerItems<T>, options: TreeKeyManagerOptions<T>) => TreeKeyManagerStrategy<T>;
|
|
70
|
+
/**
|
|
71
|
+
* Manages keyboard events for trees: given a list of tree items, sets the active item, focus,
|
|
72
|
+
* handles expansion and typeahead when keyboard events occur.
|
|
73
|
+
*/
|
|
74
|
+
export declare class TreeKeyManager<T extends TreeKeyManagerItem> implements TreeKeyManagerStrategy<T> {
|
|
75
|
+
/** The index of the currently active (focused) item. */
|
|
76
|
+
private _activeItemIndex;
|
|
77
|
+
/** The currently active (focused) item. */
|
|
78
|
+
private _activeItem;
|
|
79
|
+
/** Whether or not we activate the item when it's focused. */
|
|
80
|
+
private _shouldActivationFollowFocus;
|
|
81
|
+
/** In `rtl` mode, the behavior of Left and Right arrow are switched. */
|
|
82
|
+
private _horizontalOrientation;
|
|
83
|
+
/**
|
|
84
|
+
* Skips nothing by default, to keep tree items focusable when disabled (ARIA guidelines:
|
|
85
|
+
* focusability of disabled controls).
|
|
86
|
+
*/
|
|
87
|
+
private _skipPredicateFn;
|
|
88
|
+
/** Function to determine equivalent items. */
|
|
89
|
+
private _trackByFn;
|
|
90
|
+
/** Synchronous cache of the items to manage. */
|
|
91
|
+
private _items;
|
|
92
|
+
private _typeahead?;
|
|
93
|
+
private _typeaheadSubscription;
|
|
94
|
+
private _hasInitialFocused;
|
|
95
|
+
private _effect;
|
|
96
|
+
private _itemsSubscription;
|
|
97
|
+
private _initializeFocus;
|
|
98
|
+
/**
|
|
99
|
+
* @param items Items to manage: an array, an accessor / signal of one, or a subscribable.
|
|
100
|
+
* @param config By default 'ltr', skips nothing, only calls `focus` (not `activate`) on focus;
|
|
101
|
+
* `typeAheadDebounceInterval: true` uses a 200 ms interval.
|
|
102
|
+
*/
|
|
103
|
+
constructor(items: TreeKeyManagerItems<T>, config: TreeKeyManagerOptions<T>);
|
|
104
|
+
/** Stream that emits any time the focused item changes. */
|
|
105
|
+
readonly change: Subject<T | null>;
|
|
106
|
+
/** Cleans up the key manager. */
|
|
107
|
+
destroy(): void;
|
|
108
|
+
/** Handles a keyboard event on the tree. */
|
|
109
|
+
onKeydown(event: KeyboardEvent): void;
|
|
110
|
+
/** Index of the currently active item. */
|
|
111
|
+
getActiveItemIndex(): number | null;
|
|
112
|
+
/** The currently active item. */
|
|
113
|
+
getActiveItem(): T | null;
|
|
114
|
+
/** Called when the list of items has changed. */
|
|
115
|
+
private _itemsChanged;
|
|
116
|
+
/** Focus the first available item. */
|
|
117
|
+
private _focusFirstItem;
|
|
118
|
+
/** Focus the last available item. */
|
|
119
|
+
private _focusLastItem;
|
|
120
|
+
/** Focus the next available item. */
|
|
121
|
+
private _focusNextItem;
|
|
122
|
+
/** Focus the previous available item. */
|
|
123
|
+
private _focusPreviousItem;
|
|
124
|
+
/** Focus the provided item by index, or by `trackBy` equality. */
|
|
125
|
+
focusItem(index: number, options?: {
|
|
126
|
+
emitChangeEvent?: boolean;
|
|
127
|
+
}): void;
|
|
128
|
+
focusItem(item: T, options?: {
|
|
129
|
+
emitChangeEvent?: boolean;
|
|
130
|
+
}): void;
|
|
131
|
+
focusItem(itemOrIndex: number | T, options?: {
|
|
132
|
+
emitChangeEvent?: boolean;
|
|
133
|
+
}): void;
|
|
134
|
+
private _updateActiveItemIndex;
|
|
135
|
+
private _setTypeAhead;
|
|
136
|
+
private _findNextAvailableItemIndex;
|
|
137
|
+
private _findPreviousAvailableItemIndex;
|
|
138
|
+
/** If the item is expanded, collapse it; otherwise focus the parent. */
|
|
139
|
+
private _collapseCurrentItem;
|
|
140
|
+
/** If the item is collapsed, expand it; otherwise focus the first child. */
|
|
141
|
+
private _expandCurrentItem;
|
|
142
|
+
private _isCurrentItemExpanded;
|
|
143
|
+
private _isItemDisabled;
|
|
144
|
+
/** For all items that are the same level as the current item, expand those items. */
|
|
145
|
+
private _expandAllItemsAtCurrentItemLevel;
|
|
146
|
+
private _activateCurrentItem;
|
|
147
|
+
}
|
|
148
|
+
/** The default key manager factory (Angular's `TREE_KEY_MANAGER` injection token default). */
|
|
149
|
+
export declare const TREE_KEY_MANAGER: TreeKeyManagerFactory<any>;
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
// Ported from Angular CDK a11y (src/cdk/a11y/key-manager/tree-key-manager.ts,
|
|
2
|
+
// tree-key-manager-strategy.ts), MIT, © Google LLC.
|
|
3
|
+
//
|
|
4
|
+
// TreeKeyManager: keyboard navigation of a tree — Up / Down move, Right / Left expand / collapse or
|
|
5
|
+
// move to the first child / parent (swapped in RTL), Home / End, Enter / Space activate, `*` expands
|
|
6
|
+
// all siblings of the active item, debounced typeahead, Tab returns early, `change` stream.
|
|
7
|
+
// Rivet:
|
|
8
|
+
// - `QueryList` / `Observable<T[]>` items → an array, an accessor / signal (QueryList semantics:
|
|
9
|
+
// tracked with an effect, later runs = `changes`), or a subscribable (`{ subscribe(fn) }`).
|
|
10
|
+
// - `getChildren()` may return an array or a subscribable; RxJS `take(1)` → first emission only.
|
|
11
|
+
// - `TREE_KEY_MANAGER` InjectionToken → `TREE_KEY_MANAGER` default factory constant (no DI).
|
|
12
|
+
// - Instances are browser-side objects: create them in a handler or client effect.
|
|
13
|
+
import { effect } from "@rivetjs/reactivity";
|
|
14
|
+
import { Subject, Typeahead } from "../a11y/key-manager.js";
|
|
15
|
+
const isSubscribable = (value) => value != null && typeof value === "object" && typeof value.subscribe === "function";
|
|
16
|
+
/** First emission of an array or subscribable (RxJS `coerceObservable(x).pipe(take(1))`). */
|
|
17
|
+
function takeFirst(value, next) {
|
|
18
|
+
if (!isSubscribable(value))
|
|
19
|
+
return next(value);
|
|
20
|
+
let done = false;
|
|
21
|
+
let sync = true;
|
|
22
|
+
let subscription = undefined;
|
|
23
|
+
const unsubscribe = () => {
|
|
24
|
+
if (typeof subscription === "function")
|
|
25
|
+
subscription();
|
|
26
|
+
else
|
|
27
|
+
subscription?.unsubscribe();
|
|
28
|
+
};
|
|
29
|
+
subscription = value.subscribe((items) => {
|
|
30
|
+
if (done)
|
|
31
|
+
return;
|
|
32
|
+
done = true;
|
|
33
|
+
if (!sync)
|
|
34
|
+
unsubscribe();
|
|
35
|
+
next(items);
|
|
36
|
+
});
|
|
37
|
+
sync = false;
|
|
38
|
+
if (done)
|
|
39
|
+
unsubscribe();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Manages keyboard events for trees: given a list of tree items, sets the active item, focus,
|
|
43
|
+
* handles expansion and typeahead when keyboard events occur.
|
|
44
|
+
*/
|
|
45
|
+
export class TreeKeyManager {
|
|
46
|
+
/** The index of the currently active (focused) item. */
|
|
47
|
+
_activeItemIndex = -1;
|
|
48
|
+
/** The currently active (focused) item. */
|
|
49
|
+
_activeItem = null;
|
|
50
|
+
/** Whether or not we activate the item when it's focused. */
|
|
51
|
+
_shouldActivationFollowFocus = false;
|
|
52
|
+
/** In `rtl` mode, the behavior of Left and Right arrow are switched. */
|
|
53
|
+
_horizontalOrientation = "ltr";
|
|
54
|
+
/**
|
|
55
|
+
* Skips nothing by default, to keep tree items focusable when disabled (ARIA guidelines:
|
|
56
|
+
* focusability of disabled controls).
|
|
57
|
+
*/
|
|
58
|
+
_skipPredicateFn = (_item) => false;
|
|
59
|
+
/** Function to determine equivalent items. */
|
|
60
|
+
_trackByFn = (item) => item;
|
|
61
|
+
/** Synchronous cache of the items to manage. */
|
|
62
|
+
_items = [];
|
|
63
|
+
_typeahead;
|
|
64
|
+
_typeaheadSubscription = { unsubscribe() { } };
|
|
65
|
+
_hasInitialFocused = false;
|
|
66
|
+
_effect;
|
|
67
|
+
_itemsSubscription = undefined;
|
|
68
|
+
_initializeFocus() {
|
|
69
|
+
if (this._hasInitialFocused || this._items.length === 0)
|
|
70
|
+
return;
|
|
71
|
+
let activeIndex = 0;
|
|
72
|
+
for (let i = 0; i < this._items.length; i++) {
|
|
73
|
+
if (!this._skipPredicateFn(this._items[i]) && !this._isItemDisabled(this._items[i])) {
|
|
74
|
+
activeIndex = i;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const activeItem = this._items[activeIndex];
|
|
79
|
+
// `makeFocusable`: the item only becomes focusable, it doesn't capture focus (#29628).
|
|
80
|
+
if (activeItem.makeFocusable) {
|
|
81
|
+
this._activeItem?.unfocus();
|
|
82
|
+
this._activeItemIndex = activeIndex;
|
|
83
|
+
this._activeItem = activeItem;
|
|
84
|
+
this._typeahead?.setCurrentSelectedItemIndex(activeIndex);
|
|
85
|
+
activeItem.makeFocusable();
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Backwards compatibility for items that don't implement `makeFocusable`.
|
|
89
|
+
this.focusItem(activeIndex);
|
|
90
|
+
}
|
|
91
|
+
this._hasInitialFocused = true;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @param items Items to manage: an array, an accessor / signal of one, or a subscribable.
|
|
95
|
+
* @param config By default 'ltr', skips nothing, only calls `focus` (not `activate`) on focus;
|
|
96
|
+
* `typeAheadDebounceInterval: true` uses a 200 ms interval.
|
|
97
|
+
*/
|
|
98
|
+
constructor(items, config) {
|
|
99
|
+
// Items may be an array or a live source because the consumer may not have a QueryList of them.
|
|
100
|
+
if (typeof items === "function") {
|
|
101
|
+
// QueryList: the current items now, `_itemsChanged` on every later change.
|
|
102
|
+
let first = true;
|
|
103
|
+
this._effect = effect(() => {
|
|
104
|
+
const next = [...items()];
|
|
105
|
+
if (first) {
|
|
106
|
+
first = false;
|
|
107
|
+
this._items = next;
|
|
108
|
+
}
|
|
109
|
+
else
|
|
110
|
+
this._itemsChanged(next);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
else if (isSubscribable(items)) {
|
|
114
|
+
this._itemsSubscription = items.subscribe((newItems) => this._itemsChanged(newItems));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this._items = items;
|
|
118
|
+
this._initializeFocus();
|
|
119
|
+
}
|
|
120
|
+
if (typeof config.shouldActivationFollowFocus === "boolean")
|
|
121
|
+
this._shouldActivationFollowFocus = config.shouldActivationFollowFocus;
|
|
122
|
+
if (config.horizontalOrientation)
|
|
123
|
+
this._horizontalOrientation = config.horizontalOrientation;
|
|
124
|
+
if (config.skipPredicate)
|
|
125
|
+
this._skipPredicateFn = config.skipPredicate;
|
|
126
|
+
if (config.trackBy)
|
|
127
|
+
this._trackByFn = config.trackBy;
|
|
128
|
+
if (typeof config.typeAheadDebounceInterval !== "undefined")
|
|
129
|
+
this._setTypeAhead(config.typeAheadDebounceInterval);
|
|
130
|
+
}
|
|
131
|
+
/** Stream that emits any time the focused item changes. */
|
|
132
|
+
change = new Subject();
|
|
133
|
+
/** Cleans up the key manager. */
|
|
134
|
+
destroy() {
|
|
135
|
+
this._typeaheadSubscription.unsubscribe();
|
|
136
|
+
this._typeahead?.destroy();
|
|
137
|
+
this._effect?.();
|
|
138
|
+
if (typeof this._itemsSubscription === "function")
|
|
139
|
+
this._itemsSubscription();
|
|
140
|
+
else
|
|
141
|
+
this._itemsSubscription?.unsubscribe();
|
|
142
|
+
this.change.complete();
|
|
143
|
+
}
|
|
144
|
+
/** Handles a keyboard event on the tree. */
|
|
145
|
+
onKeydown(event) {
|
|
146
|
+
const key = event.key;
|
|
147
|
+
switch (key) {
|
|
148
|
+
case "Tab":
|
|
149
|
+
// Return early, so Tab actually tabs out of the tree.
|
|
150
|
+
return;
|
|
151
|
+
case "ArrowDown":
|
|
152
|
+
this._focusNextItem();
|
|
153
|
+
break;
|
|
154
|
+
case "ArrowUp":
|
|
155
|
+
this._focusPreviousItem();
|
|
156
|
+
break;
|
|
157
|
+
case "ArrowRight":
|
|
158
|
+
if (this._horizontalOrientation === "rtl")
|
|
159
|
+
this._collapseCurrentItem();
|
|
160
|
+
else
|
|
161
|
+
this._expandCurrentItem();
|
|
162
|
+
break;
|
|
163
|
+
case "ArrowLeft":
|
|
164
|
+
if (this._horizontalOrientation === "rtl")
|
|
165
|
+
this._expandCurrentItem();
|
|
166
|
+
else
|
|
167
|
+
this._collapseCurrentItem();
|
|
168
|
+
break;
|
|
169
|
+
case "Home":
|
|
170
|
+
this._focusFirstItem();
|
|
171
|
+
break;
|
|
172
|
+
case "End":
|
|
173
|
+
this._focusLastItem();
|
|
174
|
+
break;
|
|
175
|
+
case "Enter":
|
|
176
|
+
case " ":
|
|
177
|
+
this._activateCurrentItem();
|
|
178
|
+
break;
|
|
179
|
+
default:
|
|
180
|
+
if (event.key === "*") {
|
|
181
|
+
this._expandAllItemsAtCurrentItemLevel();
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
this._typeahead?.handleKey(event);
|
|
185
|
+
// Don't prevent the default action of non-navigational keys or reset the typed letters.
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
// Reset the typeahead since the user has used a navigational key.
|
|
189
|
+
this._typeahead?.reset();
|
|
190
|
+
event.preventDefault();
|
|
191
|
+
}
|
|
192
|
+
/** Index of the currently active item. */
|
|
193
|
+
getActiveItemIndex() {
|
|
194
|
+
return this._activeItemIndex;
|
|
195
|
+
}
|
|
196
|
+
/** The currently active item. */
|
|
197
|
+
getActiveItem() {
|
|
198
|
+
return this._activeItem;
|
|
199
|
+
}
|
|
200
|
+
/** Called when the list of items has changed. */
|
|
201
|
+
_itemsChanged(newItems) {
|
|
202
|
+
if (this._hasInitialFocused && this._activeItem && !newItems.includes(this._activeItem)) {
|
|
203
|
+
this._activeItem = null;
|
|
204
|
+
this._hasInitialFocused = false;
|
|
205
|
+
}
|
|
206
|
+
this._items = newItems;
|
|
207
|
+
this._typeahead?.setItems(this._items);
|
|
208
|
+
this._updateActiveItemIndex(this._items);
|
|
209
|
+
this._initializeFocus();
|
|
210
|
+
}
|
|
211
|
+
/** Focus the first available item. */
|
|
212
|
+
_focusFirstItem() {
|
|
213
|
+
this.focusItem(this._findNextAvailableItemIndex(-1));
|
|
214
|
+
}
|
|
215
|
+
/** Focus the last available item. */
|
|
216
|
+
_focusLastItem() {
|
|
217
|
+
this.focusItem(this._findPreviousAvailableItemIndex(this._items.length));
|
|
218
|
+
}
|
|
219
|
+
/** Focus the next available item. */
|
|
220
|
+
_focusNextItem() {
|
|
221
|
+
this.focusItem(this._findNextAvailableItemIndex(this._activeItemIndex));
|
|
222
|
+
}
|
|
223
|
+
/** Focus the previous available item. */
|
|
224
|
+
_focusPreviousItem() {
|
|
225
|
+
this.focusItem(this._findPreviousAvailableItemIndex(this._activeItemIndex));
|
|
226
|
+
}
|
|
227
|
+
focusItem(itemOrIndex, options = {}) {
|
|
228
|
+
options.emitChangeEvent ??= true;
|
|
229
|
+
const index = typeof itemOrIndex === "number" ? itemOrIndex : this._items.findIndex((item) => this._trackByFn(item) === this._trackByFn(itemOrIndex));
|
|
230
|
+
if (index < 0 || index >= this._items.length)
|
|
231
|
+
return;
|
|
232
|
+
const activeItem = this._items[index];
|
|
233
|
+
// If we're just setting the same item, don't re-call activate or focus.
|
|
234
|
+
if (this._activeItem !== null && this._trackByFn(activeItem) === this._trackByFn(this._activeItem))
|
|
235
|
+
return;
|
|
236
|
+
const previousActiveItem = this._activeItem;
|
|
237
|
+
this._activeItem = activeItem ?? null;
|
|
238
|
+
this._activeItemIndex = index;
|
|
239
|
+
this._typeahead?.setCurrentSelectedItemIndex(index);
|
|
240
|
+
this._activeItem?.focus();
|
|
241
|
+
previousActiveItem?.unfocus();
|
|
242
|
+
if (options.emitChangeEvent)
|
|
243
|
+
this.change.next(this._activeItem);
|
|
244
|
+
if (this._shouldActivationFollowFocus)
|
|
245
|
+
this._activateCurrentItem();
|
|
246
|
+
}
|
|
247
|
+
_updateActiveItemIndex(newItems) {
|
|
248
|
+
const activeItem = this._activeItem;
|
|
249
|
+
if (!activeItem)
|
|
250
|
+
return;
|
|
251
|
+
const newIndex = newItems.findIndex((item) => this._trackByFn(item) === this._trackByFn(activeItem));
|
|
252
|
+
if (newIndex > -1 && newIndex !== this._activeItemIndex) {
|
|
253
|
+
this._activeItemIndex = newIndex;
|
|
254
|
+
this._typeahead?.setCurrentSelectedItemIndex(newIndex);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
_setTypeAhead(debounceInterval) {
|
|
258
|
+
this._typeahead = new Typeahead(this._items, {
|
|
259
|
+
debounceInterval: typeof debounceInterval === "number" ? debounceInterval : undefined,
|
|
260
|
+
skipPredicate: (item) => this._skipPredicateFn(item),
|
|
261
|
+
});
|
|
262
|
+
this._typeaheadSubscription = this._typeahead.selectedItem.subscribe((item) => {
|
|
263
|
+
this.focusItem(item);
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
_findNextAvailableItemIndex(startingIndex) {
|
|
267
|
+
for (let i = startingIndex + 1; i < this._items.length; i++) {
|
|
268
|
+
if (!this._skipPredicateFn(this._items[i]))
|
|
269
|
+
return i;
|
|
270
|
+
}
|
|
271
|
+
return startingIndex;
|
|
272
|
+
}
|
|
273
|
+
_findPreviousAvailableItemIndex(startingIndex) {
|
|
274
|
+
for (let i = startingIndex - 1; i >= 0; i--) {
|
|
275
|
+
if (!this._skipPredicateFn(this._items[i]))
|
|
276
|
+
return i;
|
|
277
|
+
}
|
|
278
|
+
return startingIndex;
|
|
279
|
+
}
|
|
280
|
+
/** If the item is expanded, collapse it; otherwise focus the parent. */
|
|
281
|
+
_collapseCurrentItem() {
|
|
282
|
+
if (!this._activeItem)
|
|
283
|
+
return;
|
|
284
|
+
if (this._isCurrentItemExpanded()) {
|
|
285
|
+
this._activeItem.collapse();
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
const parent = this._activeItem.getParent();
|
|
289
|
+
if (!parent || this._skipPredicateFn(parent))
|
|
290
|
+
return;
|
|
291
|
+
this.focusItem(parent);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/** If the item is collapsed, expand it; otherwise focus the first child. */
|
|
295
|
+
_expandCurrentItem() {
|
|
296
|
+
if (!this._activeItem)
|
|
297
|
+
return;
|
|
298
|
+
if (!this._isCurrentItemExpanded()) {
|
|
299
|
+
this._activeItem.expand();
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
takeFirst(this._activeItem.getChildren(), (children) => {
|
|
303
|
+
const firstChild = children.find((child) => !this._skipPredicateFn(child));
|
|
304
|
+
if (!firstChild)
|
|
305
|
+
return;
|
|
306
|
+
this.focusItem(firstChild);
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
_isCurrentItemExpanded() {
|
|
311
|
+
if (!this._activeItem)
|
|
312
|
+
return false;
|
|
313
|
+
return typeof this._activeItem.isExpanded === "boolean" ? this._activeItem.isExpanded : this._activeItem.isExpanded();
|
|
314
|
+
}
|
|
315
|
+
_isItemDisabled(item) {
|
|
316
|
+
return typeof item.isDisabled === "boolean" ? item.isDisabled : item.isDisabled?.();
|
|
317
|
+
}
|
|
318
|
+
/** For all items that are the same level as the current item, expand those items. */
|
|
319
|
+
_expandAllItemsAtCurrentItemLevel() {
|
|
320
|
+
if (!this._activeItem)
|
|
321
|
+
return;
|
|
322
|
+
const parent = this._activeItem.getParent();
|
|
323
|
+
const itemsToExpand = !parent
|
|
324
|
+
? this._items.filter((item) => item.getParent() === null)
|
|
325
|
+
: parent.getChildren();
|
|
326
|
+
takeFirst(itemsToExpand, (items) => {
|
|
327
|
+
for (const item of items)
|
|
328
|
+
item.expand();
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
_activateCurrentItem() {
|
|
332
|
+
this._activeItem?.activate();
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/** The default key manager factory (Angular's `TREE_KEY_MANAGER` injection token default). */
|
|
336
|
+
export const TREE_KEY_MANAGER = (items, options) => new TreeKeyManager(items, options);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** An element accessor: a `ref()` from `@rivetjs/runtime/dom`, or a function returning the element. */
|
|
2
|
+
export type AnimationRef = () => HTMLElement | null | undefined;
|
|
3
|
+
type MaybeAccessor<T> = T | (() => T);
|
|
4
|
+
/**
|
|
5
|
+
* Entry animation state of `ref` (react-aria `useEnterAnimation`): true from creation until the element's
|
|
6
|
+
* running CSS animations / transitions and the promise `onEnter` returns have finished. While `isReady`
|
|
7
|
+
* is false the element is hidden with non-layout styles and the animation waits (popovers before placement).
|
|
8
|
+
*/
|
|
9
|
+
export declare function createEnterAnimation(ref: AnimationRef, isReady?: MaybeAccessor<boolean>, onEnter?: (element: HTMLElement) => void | Promise<void>): () => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Exit animation state of `ref` (react-aria `useExitAnimation`): true from the moment `isOpen` turns false
|
|
12
|
+
* until the element's running animations and the promise `onExit` returns have finished — keep the element
|
|
13
|
+
* mounted while it is true. Reopening interrupts the exit.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createExitAnimation(ref: AnimationRef, isOpen: MaybeAccessor<boolean>, onExit?: (element: HTMLElement) => void | Promise<void>): () => boolean;
|
|
16
|
+
/** The state half of {@link createExitAnimation}: `isExiting` + `end` (no client effect). */
|
|
17
|
+
export interface ExitAnimationState {
|
|
18
|
+
/** True while exiting (keep the element mounted). */
|
|
19
|
+
readonly isExiting: () => boolean;
|
|
20
|
+
/** Ends the running exit (closes the state machine). */
|
|
21
|
+
readonly end: () => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Rivet: {@link createExitAnimation} without its client effect — create the state where the open / exiting
|
|
25
|
+
* condition is read, call {@link watchExitAnimation} where the element exists (inside the branch that stays
|
|
26
|
+
* mounted while exiting). A closed overlay then records no client effect, so a resumed page with closed
|
|
27
|
+
* tooltips does not boot the runtime at load.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createExitAnimationState(isOpen: MaybeAccessor<boolean>): ExitAnimationState;
|
|
30
|
+
/** The effect half of {@link createExitAnimation}: waits for the exit animations of `ref`, then `exit.end()`. */
|
|
31
|
+
export declare function watchExitAnimation(ref: AnimationRef, exit: ExitAnimationState, onExit?: (element: HTMLElement) => void | Promise<void>): void;
|
|
32
|
+
export {};
|