@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
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { Content } from "@rivetjs/runtime/jsx-runtime";
|
|
3
|
+
import { type ControlledState } from "../interactions/controllable.js";
|
|
4
|
+
import { type ClassNameOrFunction, type RefValue, type StyleObject } from "../slots/index.jsx";
|
|
5
|
+
/** `SidebarPages` state (serializable). */
|
|
6
|
+
export interface SidebarPagesState {
|
|
7
|
+
/** @internal controlled value (`value` / `defaultValue` / `onValueChange`). */
|
|
8
|
+
readonly control: ControlledState<string | undefined>;
|
|
9
|
+
/** @internal the first page rendered (active when neither `value` nor `defaultValue` is given). */
|
|
10
|
+
readonly first: Signal<string | undefined>;
|
|
11
|
+
/** `reduceMotion` resolved at render (pages → options → provider). */
|
|
12
|
+
readonly reduceMotion: boolean;
|
|
13
|
+
/** @internal the pages container element. */
|
|
14
|
+
readonly container: () => HTMLElement | null | undefined;
|
|
15
|
+
}
|
|
16
|
+
/** The `SidebarPages` in scope (`rv-sidebar-pages`). */
|
|
17
|
+
export declare const SidebarPagesContext: import("@rivetjs/reactivity").Context<SidebarPagesState | null>;
|
|
18
|
+
/** The active page value. */
|
|
19
|
+
export declare const sidebarPagesValue: (state: SidebarPagesState) => string | undefined;
|
|
20
|
+
/** Shows the page `value` (calls `onValueChange`; a plain controlled `value` only calls it). */
|
|
21
|
+
export declare function setSidebarPage(state: SidebarPagesState, value: string): void;
|
|
22
|
+
/** `useSidebarPages()`: the nearest `SidebarPages` (throws outside one). */
|
|
23
|
+
export interface SidebarPagesContextValue {
|
|
24
|
+
/** The active page value. */
|
|
25
|
+
activeValue: () => string | undefined;
|
|
26
|
+
/** Shows a page (drill in / back). */
|
|
27
|
+
setActiveValue: (value: string) => void;
|
|
28
|
+
/** Index of the active page in DOM order (`-1` before the pages render in the browser / on the server). */
|
|
29
|
+
activeIndex: () => number;
|
|
30
|
+
/** Page values in DOM order (empty on the server). */
|
|
31
|
+
order: () => string[];
|
|
32
|
+
}
|
|
33
|
+
/** The page switcher of the nearest `SidebarPages`: accessors + setter (handlers resume). */
|
|
34
|
+
export declare function useSidebarPages(): SidebarPagesContextValue;
|
|
35
|
+
export interface SidebarPagesProps {
|
|
36
|
+
/** The active page (controlled): a value, a two-way Signal or an accessor. */
|
|
37
|
+
value?: string | Signal<string> | (() => string);
|
|
38
|
+
/** The page shown first (uncontrolled). @default the first page */
|
|
39
|
+
defaultValue?: string;
|
|
40
|
+
/** Called with the new page value on every switch. */
|
|
41
|
+
onValueChange?: (value: string) => void;
|
|
42
|
+
/** No slide animation (instant switch). @default inherited from the menu / group / provider */
|
|
43
|
+
reduceMotion?: boolean;
|
|
44
|
+
/** @default "rv-SidebarPages" */
|
|
45
|
+
class?: ClassNameOrFunction<{}>;
|
|
46
|
+
style?: StyleObject;
|
|
47
|
+
id?: string;
|
|
48
|
+
"aria-label"?: string;
|
|
49
|
+
children?: Content;
|
|
50
|
+
ref?: RefValue<HTMLDivElement>;
|
|
51
|
+
}
|
|
52
|
+
/** Rivet: an animated page switcher inside the sidebar (drill-in / back); pages are `SidebarPage value`. */
|
|
53
|
+
export declare function SidebarPages(props: SidebarPagesProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
54
|
+
export interface SidebarPageProps {
|
|
55
|
+
/** The page's value (`SidebarPages` `value`). */
|
|
56
|
+
value: string;
|
|
57
|
+
/** @default "rv-SidebarPage" */
|
|
58
|
+
class?: ClassNameOrFunction<{}>;
|
|
59
|
+
style?: StyleObject;
|
|
60
|
+
id?: string;
|
|
61
|
+
"aria-label"?: string;
|
|
62
|
+
"aria-labelledby"?: string;
|
|
63
|
+
children?: Content;
|
|
64
|
+
}
|
|
65
|
+
/** One page of `SidebarPages`; inactive pages are `hidden`, `inert` and `aria-hidden`. */
|
|
66
|
+
export declare function SidebarPage(props: SidebarPageProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
67
|
+
/**
|
|
68
|
+
* The page's `hidden` value (binding): static on the server / first read; on a change in the browser the leaving page
|
|
69
|
+
* stays visible while it slides out (the transition hides it), and the transition is scheduled.
|
|
70
|
+
*/
|
|
71
|
+
export declare function sidebarPageHidden(state: SidebarPagesState, value: string, pageRef: () => HTMLElement | null | undefined): true | undefined;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
// Rivet (no shadcn upstream; feature set inspired by HeroUI Pro's public Sidebar docs, independent implementation):
|
|
2
|
+
// an animated page switcher inside the sidebar — `SidebarPages` (value / defaultValue / onValueChange) holds the active
|
|
3
|
+
// page, `SidebarPage value` is one page. Drill-in / back navigation: a menu button sets the value
|
|
4
|
+
// (`useSidebarPages().setActiveValue("settings")`).
|
|
5
|
+
// - State = `controllable(value, defaultValue, onValueChange)` in `_regionState`; without `defaultValue` the first
|
|
6
|
+
// page rendered is active (`first`, set while the pages render, serialized with the region).
|
|
7
|
+
// - Markup: `div[data-slot=sidebar-pages]` (inline `display: grid; overflow: hidden` — behaviour-critical: pages stack in
|
|
8
|
+
// one cell, the slide is clipped) > `div[data-slot=sidebar-page][data-value]` (inline `grid-area: 1 / 1`). Inactive
|
|
9
|
+
// pages: `hidden`, `inert`, `aria-hidden="true"`; the active one `data-active="true"`.
|
|
10
|
+
// - Nothing runs at load: the page's `hidden` binding (re-run on a change) starts the transition in a microtask (once
|
|
11
|
+
// per container): the entering page slides in from the side of its order (DOM order of the pages; RTL flips), the
|
|
12
|
+
// leaving page slides out and gets `hidden` when the motion settles. Motion = `@rivetjs/cdk/motion` `Motion1D`
|
|
13
|
+
// (embla physics, the house motion); `reduceMotion` (pages → menu / group options → provider) or
|
|
14
|
+
// `prefers-reduced-motion` → instant switch. Focus inside the leaving page moves to the entering page's first
|
|
15
|
+
// focusable element.
|
|
16
|
+
import { createContext, provide, signal, untrack, useContext, _regionState } from "@rivetjs/reactivity";
|
|
17
|
+
import { ref as createRef } from "@rivetjs/runtime/dom";
|
|
18
|
+
import { resumableContext } from "@rivetjs/runtime/resume-format";
|
|
19
|
+
import { controllable, controlledValue, setControlledValue } from "../interactions/controllable.js";
|
|
20
|
+
import { Motion1D } from "../motion/index.js";
|
|
21
|
+
import { dataBool } from "../utils/data-attrs.jsx";
|
|
22
|
+
import { mergeRefValues, renderProps } from "../slots/index.jsx";
|
|
23
|
+
import { SidebarContext, SidebarMenuOptionsContext, sidebarReducedMotion } from "./state.js";
|
|
24
|
+
const NONE = {};
|
|
25
|
+
/** The `SidebarPages` in scope (`rv-sidebar-pages`). */
|
|
26
|
+
export const SidebarPagesContext = resumableContext(createContext(null, { id: "rv-sidebar-pages" }));
|
|
27
|
+
/** The active page value. */
|
|
28
|
+
export const sidebarPagesValue = (state) => state.control.value() ?? state.first();
|
|
29
|
+
/** Shows the page `value` (calls `onValueChange`; a plain controlled `value` only calls it). */
|
|
30
|
+
export function setSidebarPage(state, value) {
|
|
31
|
+
untrack(() => {
|
|
32
|
+
if ((controlledValue(state.control) ?? state.first()) === value)
|
|
33
|
+
return;
|
|
34
|
+
setControlledValue(state.control, value);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/** The page switcher of the nearest `SidebarPages`: accessors + setter (handlers resume). */
|
|
38
|
+
export function useSidebarPages() {
|
|
39
|
+
const state = useContext(SidebarPagesContext);
|
|
40
|
+
if (!state)
|
|
41
|
+
throw new Error("useSidebarPages must be used within SidebarPages.");
|
|
42
|
+
return {
|
|
43
|
+
activeValue: () => sidebarPagesValue(state),
|
|
44
|
+
setActiveValue: (value) => setSidebarPage(state, value),
|
|
45
|
+
activeIndex: () => sidebarPageOrder(state).indexOf(sidebarPagesValue(state) ?? ""),
|
|
46
|
+
order: () => sidebarPageOrder(state),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const pageElements = (container) => Array.from(container.children).filter((c) => c.getAttribute("data-slot") === "sidebar-page");
|
|
50
|
+
function sidebarPageOrder(state) {
|
|
51
|
+
const container = untrack(state.container);
|
|
52
|
+
return container ? pageElements(container).map((p) => p.getAttribute("data-value") ?? "") : [];
|
|
53
|
+
}
|
|
54
|
+
/** Rivet: an animated page switcher inside the sidebar (drill-in / back); pages are `SidebarPage value`. */
|
|
55
|
+
export function SidebarPages(props) {
|
|
56
|
+
const { value, defaultValue, onValueChange, reduceMotion, class: cls, style, id, children, ref } = props;
|
|
57
|
+
const sidebar = useContext(SidebarContext);
|
|
58
|
+
const inheritedReduce = useContext(SidebarMenuOptionsContext)?.reduceMotion;
|
|
59
|
+
const ariaLabel = props["aria-label"];
|
|
60
|
+
const reduce = reduceMotion ?? inheritedReduce ?? sidebar?.reduceMotion ?? false;
|
|
61
|
+
const state = _regionState(() => ({
|
|
62
|
+
control: controllable(value, defaultValue, onValueChange),
|
|
63
|
+
first: signal(undefined),
|
|
64
|
+
reduceMotion: reduce,
|
|
65
|
+
container: createRef(),
|
|
66
|
+
}));
|
|
67
|
+
const rp = renderProps({ class: cls, children, values: NONE, defaultClassName: "rv-SidebarPages" });
|
|
68
|
+
const refs = mergeRefValues(state.container, ref);
|
|
69
|
+
return (<div ref={refs} id={id} aria-label={ariaLabel} data-slot="sidebar-pages" data-sidebar="pages" data-reduce-motion={dataBool(reduce)} class={rp.class()} style={{ display: "grid", overflow: "hidden", ...style }}>
|
|
70
|
+
{provide(SidebarPagesContext, state, () => rp.children())}
|
|
71
|
+
</div>);
|
|
72
|
+
}
|
|
73
|
+
/** One page of `SidebarPages`; inactive pages are `hidden`, `inert` and `aria-hidden`. */
|
|
74
|
+
export function SidebarPage(props) {
|
|
75
|
+
const state = useContext(SidebarPagesContext);
|
|
76
|
+
if (!state)
|
|
77
|
+
throw new Error("SidebarPage must be rendered inside SidebarPages.");
|
|
78
|
+
const { value, class: cls, style, id, children } = props;
|
|
79
|
+
const ariaLabel = props["aria-label"], ariaLabelledby = props["aria-labelledby"];
|
|
80
|
+
// No `value` / `defaultValue`: the first page rendered is the active one.
|
|
81
|
+
if (untrack(state.control.value) === undefined && untrack(state.first) === undefined)
|
|
82
|
+
state.first.set(value);
|
|
83
|
+
const pageRef = createRef();
|
|
84
|
+
const rp = renderProps({ class: cls, children, values: NONE, defaultClassName: "rv-SidebarPage" });
|
|
85
|
+
return (<div ref={pageRef} id={id} role="group" aria-label={ariaLabel} aria-labelledby={ariaLabelledby} data-slot="sidebar-page" data-sidebar="page" data-value={value} data-active={dataBool(sidebarPagesValue(state) === value)} class={rp.class()} style={{ "grid-area": "1 / 1", "min-inline-size": "0", ...style }} hidden={sidebarPageHidden(state, value, pageRef)} inert={sidebarPagesValue(state) === value ? undefined : true} aria-hidden={sidebarPagesValue(state) === value ? undefined : "true"}>
|
|
86
|
+
{rp.children()}
|
|
87
|
+
</div>);
|
|
88
|
+
}
|
|
89
|
+
// =================================================================================================
|
|
90
|
+
// Transition
|
|
91
|
+
// =================================================================================================
|
|
92
|
+
// Last shown page per container (initialised from the DOM on the first change), scheduled containers, running motions.
|
|
93
|
+
const shown = new WeakMap();
|
|
94
|
+
const scheduled = new WeakSet();
|
|
95
|
+
const running = new WeakMap();
|
|
96
|
+
/**
|
|
97
|
+
* The page's `hidden` value (binding): static on the server / first read; on a change in the browser the leaving page
|
|
98
|
+
* stays visible while it slides out (the transition hides it), and the transition is scheduled.
|
|
99
|
+
*/
|
|
100
|
+
export function sidebarPageHidden(state, value, pageRef) {
|
|
101
|
+
const active = sidebarPagesValue(state) === value;
|
|
102
|
+
const page = untrack(pageRef);
|
|
103
|
+
const container = page?.parentElement;
|
|
104
|
+
if (!page || !container)
|
|
105
|
+
return active ? undefined : true;
|
|
106
|
+
if (!shown.has(container))
|
|
107
|
+
shown.set(container, pageElements(container)
|
|
108
|
+
.find((p) => !p.hasAttribute("hidden"))
|
|
109
|
+
?.getAttribute("data-value") ?? undefined);
|
|
110
|
+
if (!scheduled.has(container)) {
|
|
111
|
+
scheduled.add(container);
|
|
112
|
+
queueMicrotask(() => {
|
|
113
|
+
scheduled.delete(container);
|
|
114
|
+
sidebarPagesTransition(container, state);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (active)
|
|
118
|
+
return undefined;
|
|
119
|
+
// The page shown so far slides out first (the transition sets `hidden` when it settles).
|
|
120
|
+
return value === shown.get(container) && !page.hasAttribute("hidden") ? undefined : true;
|
|
121
|
+
}
|
|
122
|
+
const FOCUSABLE = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
|
|
123
|
+
/** Runs the page switch of `container`: slide (Motion1D) or an instant switch. */
|
|
124
|
+
function sidebarPagesTransition(container, state) {
|
|
125
|
+
const now = untrack(() => sidebarPagesValue(state));
|
|
126
|
+
const previous = shown.get(container);
|
|
127
|
+
shown.set(container, now);
|
|
128
|
+
running.get(container)?.();
|
|
129
|
+
const pages = pageElements(container);
|
|
130
|
+
const enter = pages.find((p) => p.getAttribute("data-value") === now);
|
|
131
|
+
const leave = previous !== now ? pages.find((p) => p.getAttribute("data-value") === previous) : undefined;
|
|
132
|
+
for (const page of pages)
|
|
133
|
+
if (page !== enter && page !== leave && !page.hasAttribute("hidden"))
|
|
134
|
+
page.setAttribute("hidden", "");
|
|
135
|
+
if (!enter)
|
|
136
|
+
return leave?.setAttribute("hidden", "");
|
|
137
|
+
const doc = container.ownerDocument;
|
|
138
|
+
const hadFocus = !!leave && leave.contains(doc.activeElement);
|
|
139
|
+
enter.removeAttribute("hidden");
|
|
140
|
+
const moveFocus = () => hadFocus && (enter.querySelector(FOCUSABLE) ?? enter).focus({ preventScroll: true });
|
|
141
|
+
if (!leave)
|
|
142
|
+
return;
|
|
143
|
+
const width = container.getBoundingClientRect().width || enter.offsetWidth;
|
|
144
|
+
if (state.reduceMotion || sidebarReducedMotion(false) || width <= 0) {
|
|
145
|
+
leave.setAttribute("hidden", "");
|
|
146
|
+
moveFocus();
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const rtl = doc.defaultView?.getComputedStyle(container).direction === "rtl";
|
|
150
|
+
const dir = (pages.indexOf(enter) > pages.indexOf(leave) ? 1 : -1) * (rtl ? -1 : 1);
|
|
151
|
+
leave.style.pointerEvents = "none";
|
|
152
|
+
const render = (v) => {
|
|
153
|
+
// The sub-pixel tail of the settle is invisible: done within half a pixel.
|
|
154
|
+
if (width - v < 0.5)
|
|
155
|
+
return finish();
|
|
156
|
+
enter.style.transform = `translateX(${dir * (width - v)}px)`;
|
|
157
|
+
leave.style.transform = `translateX(${-dir * v}px)`;
|
|
158
|
+
};
|
|
159
|
+
let done = false;
|
|
160
|
+
const finish = () => {
|
|
161
|
+
if (done)
|
|
162
|
+
return;
|
|
163
|
+
done = true;
|
|
164
|
+
motion.stop();
|
|
165
|
+
running.delete(container);
|
|
166
|
+
enter.style.transform = "";
|
|
167
|
+
leave.style.transform = "";
|
|
168
|
+
leave.style.pointerEvents = "";
|
|
169
|
+
if (untrack(() => sidebarPagesValue(state)) !== leave.getAttribute("data-value"))
|
|
170
|
+
leave.setAttribute("hidden", "");
|
|
171
|
+
};
|
|
172
|
+
const motion = Motion1D({ value: 0, render, onSettle: finish });
|
|
173
|
+
running.set(container, finish);
|
|
174
|
+
render(0);
|
|
175
|
+
motion.to(width);
|
|
176
|
+
moveFocus();
|
|
177
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import { type ControlledState } from "../interactions/controllable.js";
|
|
3
|
+
import { type SidebarState } from "./state.js";
|
|
4
|
+
/** A sidebar width: a number = px, a string = a CSS length (`"18rem"`, `"280px"`, `"20vw"`). */
|
|
5
|
+
export type SidebarWidth = number | string;
|
|
6
|
+
/** Default `minWidth` / `maxWidth` of a resizable Sidebar. */
|
|
7
|
+
export declare const SIDEBAR_MIN_WIDTH = "12rem";
|
|
8
|
+
export declare const SIDEBAR_MAX_WIDTH = "28rem";
|
|
9
|
+
/** Default keyboard step (px; Shift: × 5). */
|
|
10
|
+
export declare const SIDEBAR_RESIZE_STEP = 16;
|
|
11
|
+
export interface SidebarResizeProps {
|
|
12
|
+
/**
|
|
13
|
+
* Width (controlled): a value, a two-way Signal or an accessor. `undefined` = the provider's `--sidebar-width`.
|
|
14
|
+
* A Signal follows every drag move; a plain value / accessor only calls `onWidthChange`.
|
|
15
|
+
*/
|
|
16
|
+
width?: SidebarWidth | Signal<SidebarWidth | undefined> | (() => SidebarWidth | undefined);
|
|
17
|
+
/** Initial width (uncontrolled). @default the provider's `--sidebar-width` (16rem) */
|
|
18
|
+
defaultWidth?: SidebarWidth;
|
|
19
|
+
/** Called on every width change (each drag move, key, reset) with the width in px. */
|
|
20
|
+
onWidthChange?: (width: number) => void;
|
|
21
|
+
/** Called once a resize ends (pointer up, a key, double-click reset) with the width in px: persist here. */
|
|
22
|
+
onWidthChangeEnd?: (width: number) => void;
|
|
23
|
+
/** @default "12rem" */
|
|
24
|
+
minWidth?: SidebarWidth;
|
|
25
|
+
/** @default "28rem" */
|
|
26
|
+
maxWidth?: SidebarWidth;
|
|
27
|
+
/** Dragging below half of `minWidth` collapses the sidebar (`collapsible` mode); dragging back out re-opens it. @default true */
|
|
28
|
+
collapseBelowMin?: boolean;
|
|
29
|
+
/** Arrow key step in px (Shift: × 5). @default 16 */
|
|
30
|
+
resizeStep?: number;
|
|
31
|
+
}
|
|
32
|
+
/** Resize state of one Sidebar (serializable). */
|
|
33
|
+
export interface SidebarResizeState {
|
|
34
|
+
/** The width; `undefined` = the provider's `--sidebar-width`. */
|
|
35
|
+
readonly control: ControlledState<SidebarWidth | undefined, number>;
|
|
36
|
+
readonly defaultWidth: SidebarWidth | undefined;
|
|
37
|
+
readonly min: SidebarWidth;
|
|
38
|
+
readonly max: SidebarWidth;
|
|
39
|
+
readonly collapseBelowMin: boolean;
|
|
40
|
+
readonly step: number;
|
|
41
|
+
readonly onWidthChangeEnd: ((width: number) => void) | undefined;
|
|
42
|
+
}
|
|
43
|
+
export declare function createSidebarResizeState(props: SidebarResizeProps): SidebarResizeState;
|
|
44
|
+
/** The width as CSS (`undefined`: no override). */
|
|
45
|
+
export declare const sidebarWidthCss: (width: SidebarWidth | undefined) => string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* A length in px: numbers, `px`, `rem` (root font size; 16 on the server), `em` (font size of `el`), `vw` / `%` (of the
|
|
48
|
+
* viewport); `NaN` when unparsable.
|
|
49
|
+
*/
|
|
50
|
+
export declare function sidebarLengthPx(size: SidebarWidth, el?: Element | null): number;
|
|
51
|
+
/** `aria-valuenow` (px, rounded): the set width, `undefined` while it is the provider's variable (filled in on focus / drag). */
|
|
52
|
+
export declare function sidebarWidthNow(rs: SidebarResizeState): number | undefined;
|
|
53
|
+
/** `aria-valuemin` / `aria-valuemax` (px, rounded; `undefined` when not computable on the server). */
|
|
54
|
+
export declare function sidebarBoundPx(size: SidebarWidth): number | undefined;
|
|
55
|
+
/** Handle `focus` / `pointerover`: fills in `aria-valuenow`. */
|
|
56
|
+
export declare function sidebarResizeSync(event: Event, rs: SidebarResizeState): void;
|
|
57
|
+
/** Handle `pointerdown`: starts a drag (primary button / touch / pen), pointer captured. */
|
|
58
|
+
export declare function sidebarResizePointerDown(event: PointerEvent, s: SidebarState, rs: SidebarResizeState): void;
|
|
59
|
+
/** Handle `pointermove`: resizes (clamped), collapses below half the minimum, re-opens above it. */
|
|
60
|
+
export declare function sidebarResizePointerMove(event: PointerEvent, s: SidebarState, rs: SidebarResizeState): void;
|
|
61
|
+
/** Handle `pointerup` / `pointercancel` / `lostpointercapture`: ends the drag (`onWidthChangeEnd` when it moved). */
|
|
62
|
+
export declare function sidebarResizePointerUp(event: PointerEvent, rs: SidebarResizeState): void;
|
|
63
|
+
/** Handle `dblclick`: back to `defaultWidth` (else the provider's `--sidebar-width`), opening a collapsed sidebar. */
|
|
64
|
+
export declare function sidebarResizeReset(event: MouseEvent, s: SidebarState, rs: SidebarResizeState): void;
|
|
65
|
+
/**
|
|
66
|
+
* Handle `keydown` (window splitter): Arrow Left / Right ± `resizeStep` px (Shift × 5; mirrored for a right sidebar and
|
|
67
|
+
* RTL), Home / End = min / max, Enter toggles collapse. A growing key on a collapsed sidebar opens it.
|
|
68
|
+
*/
|
|
69
|
+
export declare function sidebarResizeKeyDown(event: KeyboardEvent, s: SidebarState, rs: SidebarResizeState): void;
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
// Rivet extension (no shadcn/ui counterpart: shadcn's SidebarRail only toggles): a drag-resizable Sidebar.
|
|
2
|
+
// Behaviour of the WAI-ARIA window splitter (https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/) as in
|
|
3
|
+
// `@rivetjs/cdk/resizable` (react-resizable-panels 4.14.3: pointer capture drag, arrows / Home / End / Enter, double-click
|
|
4
|
+
// reset, collapse below the minimum), on the fixed shadcn panel: the width is the `--sidebar-width` CSS variable on the
|
|
5
|
+
// Sidebar root (gap + container read it), not a flex panel of a Group (`libs/ui/CLAUDE.md` AppLayout ruling 2026-10-08).
|
|
6
|
+
// - state = plain data in the region state (`controllable` width, bounds, the caller's handlers): handlers resume;
|
|
7
|
+
// per-drag data lives in a module WeakMap keyed by the handle (browser only, never serialized).
|
|
8
|
+
// - dragging below half the minimum collapses the sidebar (`setSidebarOpen(false)`: `onOpenChange` + cookie; the
|
|
9
|
+
// `collapsible` mode picks offcanvas / icon) and dragging back out re-opens it; the open / close snap is the
|
|
10
|
+
// sidebar's own CSS collapse transition (200 ms ease-out-quad), off for the plain width changes of a drag
|
|
11
|
+
// (`data-resizing` on the root).
|
|
12
|
+
import { untrack, _regionState } from "@rivetjs/reactivity";
|
|
13
|
+
import { controllable, setControlledValue } from "../interactions/controllable.js";
|
|
14
|
+
import { setSidebarOpen } from "./state.js";
|
|
15
|
+
/** Default `minWidth` / `maxWidth` of a resizable Sidebar. */
|
|
16
|
+
export const SIDEBAR_MIN_WIDTH = "12rem";
|
|
17
|
+
export const SIDEBAR_MAX_WIDTH = "28rem";
|
|
18
|
+
/** Default keyboard step (px; Shift: × 5). */
|
|
19
|
+
export const SIDEBAR_RESIZE_STEP = 16;
|
|
20
|
+
export function createSidebarResizeState(props) {
|
|
21
|
+
return _regionState(() => ({
|
|
22
|
+
control: controllable(props.width, props.defaultWidth, props.onWidthChange),
|
|
23
|
+
defaultWidth: props.defaultWidth,
|
|
24
|
+
min: props.minWidth ?? SIDEBAR_MIN_WIDTH,
|
|
25
|
+
max: props.maxWidth ?? SIDEBAR_MAX_WIDTH,
|
|
26
|
+
collapseBelowMin: props.collapseBelowMin ?? true,
|
|
27
|
+
step: props.resizeStep ?? SIDEBAR_RESIZE_STEP,
|
|
28
|
+
onWidthChangeEnd: props.onWidthChangeEnd,
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
/** The width as CSS (`undefined`: no override). */
|
|
32
|
+
export const sidebarWidthCss = (width) => width == null ? undefined : typeof width === "number" ? `${width}px` : width;
|
|
33
|
+
/**
|
|
34
|
+
* A length in px: numbers, `px`, `rem` (root font size; 16 on the server), `em` (font size of `el`), `vw` / `%` (of the
|
|
35
|
+
* viewport); `NaN` when unparsable.
|
|
36
|
+
*/
|
|
37
|
+
export function sidebarLengthPx(size, el) {
|
|
38
|
+
if (typeof size === "number")
|
|
39
|
+
return size;
|
|
40
|
+
const m = /^\s*(-?[\d.]+)\s*(px|rem|em|vw|%)?\s*$/.exec(size);
|
|
41
|
+
if (!m)
|
|
42
|
+
return NaN;
|
|
43
|
+
const n = parseFloat(m[1]);
|
|
44
|
+
const unit = m[2] ?? "px";
|
|
45
|
+
if (unit === "px")
|
|
46
|
+
return n;
|
|
47
|
+
if (typeof window === "undefined")
|
|
48
|
+
return unit === "rem" || unit === "em" ? n * 16 : NaN;
|
|
49
|
+
if (unit === "vw" || unit === "%")
|
|
50
|
+
return (n / 100) * window.innerWidth;
|
|
51
|
+
const of = unit === "em" && el ? el : document.documentElement;
|
|
52
|
+
return n * (parseFloat(getComputedStyle(of).fontSize) || 16);
|
|
53
|
+
}
|
|
54
|
+
/** `aria-valuenow` (px, rounded): the set width, `undefined` while it is the provider's variable (filled in on focus / drag). */
|
|
55
|
+
export function sidebarWidthNow(rs) {
|
|
56
|
+
const width = rs.control.value();
|
|
57
|
+
if (width == null)
|
|
58
|
+
return undefined;
|
|
59
|
+
const px = sidebarLengthPx(width);
|
|
60
|
+
return Number.isFinite(px) ? Math.round(px) : undefined;
|
|
61
|
+
}
|
|
62
|
+
/** `aria-valuemin` / `aria-valuemax` (px, rounded; `undefined` when not computable on the server). */
|
|
63
|
+
export function sidebarBoundPx(size) {
|
|
64
|
+
const px = sidebarLengthPx(size);
|
|
65
|
+
return Number.isFinite(px) ? Math.round(px) : undefined;
|
|
66
|
+
}
|
|
67
|
+
const drags = new WeakMap();
|
|
68
|
+
const SNAP_MS = 220;
|
|
69
|
+
const rootOf = (handle) => handle.closest('[data-slot="sidebar"]');
|
|
70
|
+
const containerOf = (handle) => handle.closest('[data-slot="sidebar-container"]');
|
|
71
|
+
/** +1 when moving the pointer right grows the panel (left side LTR, right side RTL), else -1. */
|
|
72
|
+
function growDirection(root) {
|
|
73
|
+
const rtl = getComputedStyle(root).direction === "rtl";
|
|
74
|
+
return (root.getAttribute("data-side") !== "right") !== rtl ? 1 : -1;
|
|
75
|
+
}
|
|
76
|
+
/** The expanded width in px right now (set width, else the inherited `--sidebar-width`, else the container box). */
|
|
77
|
+
function currentWidth(rs, handle) {
|
|
78
|
+
const root = rootOf(handle);
|
|
79
|
+
const set = untrack(rs.control.value);
|
|
80
|
+
let px = set == null ? NaN : sidebarLengthPx(set, root);
|
|
81
|
+
if (!Number.isFinite(px) && root)
|
|
82
|
+
px = sidebarLengthPx(getComputedStyle(root).getPropertyValue("--sidebar-width").trim(), root);
|
|
83
|
+
if (!Number.isFinite(px))
|
|
84
|
+
px = containerOf(handle)?.getBoundingClientRect().width ?? 0;
|
|
85
|
+
return px;
|
|
86
|
+
}
|
|
87
|
+
function bounds(rs, handle) {
|
|
88
|
+
const root = rootOf(handle);
|
|
89
|
+
const lo = sidebarLengthPx(rs.min, root);
|
|
90
|
+
const hi = sidebarLengthPx(rs.max, root);
|
|
91
|
+
const min = Number.isFinite(lo) ? lo : 0;
|
|
92
|
+
return [min, Number.isFinite(hi) ? Math.max(min, hi) : Infinity];
|
|
93
|
+
}
|
|
94
|
+
function setWidth(rs, px) {
|
|
95
|
+
setControlledValue(rs.control, Math.round(px));
|
|
96
|
+
}
|
|
97
|
+
function commit(rs, handle) {
|
|
98
|
+
rs.onWidthChangeEnd?.(Math.round(currentWidth(rs, handle)));
|
|
99
|
+
}
|
|
100
|
+
/** Writes `aria-valuenow` while the width is still the provider's variable (the binding owns it once a width is set). */
|
|
101
|
+
function syncValueNow(rs, handle) {
|
|
102
|
+
if (untrack(rs.control.value) == null)
|
|
103
|
+
handle.setAttribute("aria-valuenow", String(Math.round(currentWidth(rs, handle))));
|
|
104
|
+
}
|
|
105
|
+
/** Handle `focus` / `pointerover`: fills in `aria-valuenow`. */
|
|
106
|
+
export function sidebarResizeSync(event, rs) {
|
|
107
|
+
syncValueNow(rs, event.currentTarget);
|
|
108
|
+
}
|
|
109
|
+
/** Handle `pointerdown`: starts a drag (primary button / touch / pen), pointer captured. */
|
|
110
|
+
export function sidebarResizePointerDown(event, s, rs) {
|
|
111
|
+
if (event.button !== 0)
|
|
112
|
+
return;
|
|
113
|
+
const handle = event.currentTarget;
|
|
114
|
+
const root = rootOf(handle);
|
|
115
|
+
if (!root)
|
|
116
|
+
return;
|
|
117
|
+
event.preventDefault();
|
|
118
|
+
const open = untrack(s.open);
|
|
119
|
+
syncValueNow(rs, handle);
|
|
120
|
+
drags.set(handle, {
|
|
121
|
+
pointerId: event.pointerId,
|
|
122
|
+
startX: event.clientX,
|
|
123
|
+
// Collapsed (icon rail): the drag starts from the rail's width.
|
|
124
|
+
startWidth: open ? currentWidth(rs, handle) : (containerOf(handle)?.getBoundingClientRect().width ?? 0),
|
|
125
|
+
dir: growDirection(root),
|
|
126
|
+
snapUntil: 0,
|
|
127
|
+
moved: false,
|
|
128
|
+
});
|
|
129
|
+
try {
|
|
130
|
+
handle.setPointerCapture(event.pointerId);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// not an active pointer (synthetic event): the drag still follows events on the handle
|
|
134
|
+
}
|
|
135
|
+
handle.setAttribute("data-dragging", "true");
|
|
136
|
+
}
|
|
137
|
+
/** Handle `pointermove`: resizes (clamped), collapses below half the minimum, re-opens above it. */
|
|
138
|
+
export function sidebarResizePointerMove(event, s, rs) {
|
|
139
|
+
const handle = event.currentTarget;
|
|
140
|
+
const drag = drags.get(handle);
|
|
141
|
+
if (!drag || drag.pointerId !== event.pointerId)
|
|
142
|
+
return;
|
|
143
|
+
const root = rootOf(handle);
|
|
144
|
+
if (!root)
|
|
145
|
+
return;
|
|
146
|
+
const raw = drag.startWidth + (event.clientX - drag.startX) * drag.dir;
|
|
147
|
+
if (!drag.moved && Math.abs(event.clientX - drag.startX) < 1)
|
|
148
|
+
return;
|
|
149
|
+
drag.moved = true;
|
|
150
|
+
const [min, max] = bounds(rs, handle);
|
|
151
|
+
const open = untrack(s.open);
|
|
152
|
+
const now = performance.now();
|
|
153
|
+
if (rs.collapseBelowMin && raw < min / 2) {
|
|
154
|
+
if (open) {
|
|
155
|
+
root.removeAttribute("data-resizing");
|
|
156
|
+
drag.snapUntil = now + SNAP_MS;
|
|
157
|
+
setSidebarOpen(s, false);
|
|
158
|
+
}
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (!open) {
|
|
162
|
+
root.removeAttribute("data-resizing");
|
|
163
|
+
drag.snapUntil = now + SNAP_MS;
|
|
164
|
+
setSidebarOpen(s, true);
|
|
165
|
+
}
|
|
166
|
+
if (now >= drag.snapUntil)
|
|
167
|
+
root.setAttribute("data-resizing", "true");
|
|
168
|
+
setWidth(rs, Math.min(max, Math.max(min, raw)));
|
|
169
|
+
}
|
|
170
|
+
/** Handle `pointerup` / `pointercancel` / `lostpointercapture`: ends the drag (`onWidthChangeEnd` when it moved). */
|
|
171
|
+
export function sidebarResizePointerUp(event, rs) {
|
|
172
|
+
const handle = event.currentTarget;
|
|
173
|
+
const drag = drags.get(handle);
|
|
174
|
+
if (!drag || drag.pointerId !== event.pointerId)
|
|
175
|
+
return;
|
|
176
|
+
drags.delete(handle);
|
|
177
|
+
if (handle.hasPointerCapture(event.pointerId))
|
|
178
|
+
handle.releasePointerCapture(event.pointerId);
|
|
179
|
+
handle.removeAttribute("data-dragging");
|
|
180
|
+
rootOf(handle)?.removeAttribute("data-resizing");
|
|
181
|
+
if (drag.moved)
|
|
182
|
+
commit(rs, handle);
|
|
183
|
+
}
|
|
184
|
+
/** The provider's `--sidebar-width` in px (`NaN` when not a plain length). */
|
|
185
|
+
function providerWidth(handle) {
|
|
186
|
+
const wrapper = handle.closest('[data-slot="sidebar-wrapper"]');
|
|
187
|
+
return wrapper ? sidebarLengthPx(getComputedStyle(wrapper).getPropertyValue("--sidebar-width").trim(), wrapper) : NaN;
|
|
188
|
+
}
|
|
189
|
+
/** Handle `dblclick`: back to `defaultWidth` (else the provider's `--sidebar-width`), opening a collapsed sidebar. */
|
|
190
|
+
export function sidebarResizeReset(event, s, rs) {
|
|
191
|
+
const handle = event.currentTarget;
|
|
192
|
+
const fallback = providerWidth(handle);
|
|
193
|
+
setControlledValue(rs.control, rs.defaultWidth ?? (Number.isFinite(fallback) ? Math.round(fallback) : undefined));
|
|
194
|
+
if (!untrack(s.open))
|
|
195
|
+
setSidebarOpen(s, true);
|
|
196
|
+
commit(rs, handle);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Handle `keydown` (window splitter): Arrow Left / Right ± `resizeStep` px (Shift × 5; mirrored for a right sidebar and
|
|
200
|
+
* RTL), Home / End = min / max, Enter toggles collapse. A growing key on a collapsed sidebar opens it.
|
|
201
|
+
*/
|
|
202
|
+
export function sidebarResizeKeyDown(event, s, rs) {
|
|
203
|
+
const handle = event.currentTarget;
|
|
204
|
+
const root = rootOf(handle);
|
|
205
|
+
if (!root || event.altKey || event.ctrlKey || event.metaKey)
|
|
206
|
+
return;
|
|
207
|
+
const key = event.key;
|
|
208
|
+
if (key === "Enter") {
|
|
209
|
+
event.preventDefault();
|
|
210
|
+
setSidebarOpen(s, (open) => !open);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const [min, max] = bounds(rs, handle);
|
|
214
|
+
const width = currentWidth(rs, handle);
|
|
215
|
+
let next;
|
|
216
|
+
if (key === "ArrowLeft" || key === "ArrowRight") {
|
|
217
|
+
const grow = (key === "ArrowRight" ? 1 : -1) * growDirection(root);
|
|
218
|
+
next = width + grow * rs.step * (event.shiftKey ? 5 : 1);
|
|
219
|
+
if (!untrack(s.open)) {
|
|
220
|
+
event.preventDefault();
|
|
221
|
+
if (grow > 0)
|
|
222
|
+
setSidebarOpen(s, true);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else if (key === "Home")
|
|
227
|
+
next = min;
|
|
228
|
+
else if (key === "End")
|
|
229
|
+
next = max;
|
|
230
|
+
else
|
|
231
|
+
return;
|
|
232
|
+
event.preventDefault();
|
|
233
|
+
if (!untrack(s.open))
|
|
234
|
+
setSidebarOpen(s, true);
|
|
235
|
+
setWidth(rs, Math.min(max, Math.max(min, next)));
|
|
236
|
+
commit(rs, handle);
|
|
237
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SidebarSheetMotionOptions {
|
|
2
|
+
/** The edge the sheet is attached to. */
|
|
3
|
+
side: "left" | "right";
|
|
4
|
+
/** Closes the mobile sheet (`setSidebarOpenMobile(state, false)`). */
|
|
5
|
+
close: () => void;
|
|
6
|
+
/** Rivet: the provider's `reduceMotion` (read on release; `prefers-reduced-motion` applies too). */
|
|
7
|
+
reduceMotion?: () => boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Pixels a pointer moves before a drag is decided (sideways → drag, vertical → scroll). */
|
|
10
|
+
export declare const SHEET_DRAG_THRESHOLD = 6;
|
|
11
|
+
/**
|
|
12
|
+
* Attaches swipe-to-dismiss motion to the open mobile sheet element; returns a cleanup. Called by `Sidebar` from a
|
|
13
|
+
* client effect while the sheet is open.
|
|
14
|
+
*/
|
|
15
|
+
export declare function sidebarSheetMotion(sheet: HTMLElement, options: SidebarSheetMotionOptions): () => void;
|