@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,386 @@
|
|
|
1
|
+
// Rivet-authored (no upstream): drag-to-dismiss + snap points for an edge-attached sheet, on the house motion
|
|
2
|
+
// `@rivetjs/cdk/motion` (embla-carousel 8.6.0 physics, MIT, © David Jerleke; user decision 2026-10-08: no hand-rolled
|
|
3
|
+
// physics / JS easing). Feature set (snap points, close threshold, sequential snapping, handle-only drags, backdrop fade
|
|
4
|
+
// from a snap index) inspired by HeroUI Pro's public Sheet docs; independent implementation. Generalises the Sidebar's
|
|
5
|
+
// mobile sheet swipe (`../sidebar/sheet-motion.ts`) to four placements, so the Sidebar can adopt it later.
|
|
6
|
+
// - Units: `offset` = px the sheet is pushed towards its closed edge: 0 = fully shown, `size` (its own extent along the
|
|
7
|
+
// axis) = off-screen. Rendered as an inline `transform: translate{X|Y}(…)` (an overlay's CSS enter / exit animates
|
|
8
|
+
// the separate `translate` property: the two compose).
|
|
9
|
+
// - Snap points: numbers 0…1 = fraction of the viewport along the axis, or CSS lengths (`"148px"`, `"20rem"`, `"50dvh"`,
|
|
10
|
+
// `"40%"` of the viewport); offset of a point = `size - visible` clamped to 0…size (a point ≥ the sheet's size = fully
|
|
11
|
+
// shown). `snapPointTransform()` gives the same position as a CSS expression for the first render (no measurement).
|
|
12
|
+
// - Drag: a move must go `AXIS_LOCK` px, more along the axis than across, before the drag starts (cross moves scroll /
|
|
13
|
+
// pan); a start inside a scroll container that can still scroll in the drag direction scrolls it instead (closing
|
|
14
|
+
// direction: always; opening direction: once the sheet is fully expanded). Past the drag limits the sheet follows
|
|
15
|
+
// at `RUBBER_BAND` of the pointer. A started drag dispatches a synthetic `pointercancel` on the press target (the
|
|
16
|
+
// browser does the same when it starts a pan; our own window listener ignores it) and swallows the next click.
|
|
17
|
+
// - Release: `VelocityTracker` flick force × `DragRelease.forceBoost` (snap 300 mouse / 400 touch) projects the throw.
|
|
18
|
+
// Without snap points: dismiss when the projection passes `closeThreshold` × size, else settle back open. With snap
|
|
19
|
+
// points: dismiss when it passes the lowest point + `closeThreshold` × the remaining distance, else the nearest point
|
|
20
|
+
// (`sequential`: at most one point from where the drag started). Settle duration / friction = `DragRelease.settle`.
|
|
21
|
+
// A dismiss animates off-screen, then `close()` runs on settle. `prefers-reduced-motion: reduce` or `reduceMotion()`
|
|
22
|
+
// → every release / `snapTo` jumps.
|
|
23
|
+
import { DragRelease, Motion1D, VelocityTracker } from "../motion/index.js";
|
|
24
|
+
/** Pixels a pointer moves before a drag is decided. */
|
|
25
|
+
export const SHEET_AXIS_LOCK = 6;
|
|
26
|
+
/** Pointer-to-sheet ratio past the drag limits. */
|
|
27
|
+
export const SHEET_RUBBER_BAND = 0.2;
|
|
28
|
+
/** Default dismiss threshold (fraction of the remaining distance to the closed edge). */
|
|
29
|
+
export const SHEET_CLOSE_THRESHOLD = 0.25;
|
|
30
|
+
const BASE_FRICTION = 0.68;
|
|
31
|
+
/** Elements a drag never starts from (text entry). */
|
|
32
|
+
const NO_DRAG = "input, textarea, select, [contenteditable=''], [contenteditable='true'], [data-sheet-no-drag]";
|
|
33
|
+
const LENGTH = /^(-?\d*\.?\d+)(px|rem|em|vh|dvh|svh|lvh|vw|dvw|svw|lvw|%)?$/;
|
|
34
|
+
/** Visible size (px) of a snap point on a sheet whose axis is `vertical`, in a `width` × `height` viewport (`rem` / `em` from `rootFontSize`). */
|
|
35
|
+
export function snapPointSize(point, viewport, vertical, rootFontSize = 16) {
|
|
36
|
+
const along = vertical ? viewport.height : viewport.width;
|
|
37
|
+
if (typeof point === "number")
|
|
38
|
+
return point <= 1 ? point * along : point;
|
|
39
|
+
const match = LENGTH.exec(point.trim());
|
|
40
|
+
if (!match)
|
|
41
|
+
return 0;
|
|
42
|
+
const value = Number(match[1]);
|
|
43
|
+
const unit = match[2];
|
|
44
|
+
if (unit === undefined || unit === "px")
|
|
45
|
+
return value;
|
|
46
|
+
if (unit === "rem" || unit === "em")
|
|
47
|
+
return value * rootFontSize;
|
|
48
|
+
if (unit === "%")
|
|
49
|
+
return (value / 100) * along;
|
|
50
|
+
return (value / 100) * (unit.endsWith("h") ? viewport.height : viewport.width);
|
|
51
|
+
}
|
|
52
|
+
/** Whether the axis of `placement` is vertical. */
|
|
53
|
+
export const isVerticalSheet = (placement) => placement === "top" || placement === "bottom";
|
|
54
|
+
/**
|
|
55
|
+
* The resting `transform` of a sheet at snap point `point` as a CSS expression (first render, before any measurement):
|
|
56
|
+
* `translateY(max(0px, calc(100% - 50dvh)))` for a bottom sheet at `0.5`. `undefined` when there is no point.
|
|
57
|
+
*/
|
|
58
|
+
export function snapPointTransform(placement, point) {
|
|
59
|
+
if (point === undefined)
|
|
60
|
+
return undefined;
|
|
61
|
+
const vertical = isVerticalSheet(placement);
|
|
62
|
+
const visible = typeof point === "number"
|
|
63
|
+
? point <= 1
|
|
64
|
+
? `${+(point * 100).toFixed(4)}${vertical ? "dvh" : "dvw"}`
|
|
65
|
+
: `${point}px`
|
|
66
|
+
: point.endsWith("%")
|
|
67
|
+
? `${parseFloat(point)}${vertical ? "dvh" : "dvw"}`
|
|
68
|
+
: point;
|
|
69
|
+
const sign = placement === "bottom" || placement === "right" ? "" : "-1 * ";
|
|
70
|
+
const offset = `max(0px, calc(100% - ${visible}))`;
|
|
71
|
+
return `translate${vertical ? "Y" : "X"}(${sign ? `calc(${sign}${offset})` : offset})`;
|
|
72
|
+
}
|
|
73
|
+
/** Backdrop opacity at `offset` for snap offsets `offsets` (descending visibility order = ascending index) and `fadeFrom`. */
|
|
74
|
+
export function sheetBackdropOpacity(offset, size, offsets, fadeFrom) {
|
|
75
|
+
if (!offsets.length)
|
|
76
|
+
return size ? Math.max(0, Math.min(1, 1 - offset / size)) : 1;
|
|
77
|
+
const index = Math.max(0, Math.min(offsets.length - 1, fadeFrom));
|
|
78
|
+
const full = offsets[index];
|
|
79
|
+
const none = index === 0 ? size : offsets[index - 1];
|
|
80
|
+
if (offset <= full)
|
|
81
|
+
return 1;
|
|
82
|
+
if (offset >= none || none === full)
|
|
83
|
+
return 0;
|
|
84
|
+
return 1 - (offset - full) / (none - full);
|
|
85
|
+
}
|
|
86
|
+
/** Where the sheet goes for an undamped pointer offset `raw`: `raw` within `limits`, `SHEET_RUBBER_BAND` of the overshoot past them. */
|
|
87
|
+
export function rubberBand(raw, limits) {
|
|
88
|
+
const [min, max] = limits;
|
|
89
|
+
if (raw < min)
|
|
90
|
+
return min - (min - raw) * SHEET_RUBBER_BAND;
|
|
91
|
+
if (raw > max)
|
|
92
|
+
return max + (raw - max) * SHEET_RUBBER_BAND;
|
|
93
|
+
return raw;
|
|
94
|
+
}
|
|
95
|
+
/** Attaches drag / snap motion to an open sheet element; returns its controller. */
|
|
96
|
+
export function sheetMotion(sheet, options) {
|
|
97
|
+
const placement = options.placement ?? "bottom";
|
|
98
|
+
const { close, onSnap, onDrag, onRelease, onProgress, onSettle, reduceMotion, backdrop, handle } = options;
|
|
99
|
+
const dismissible = options.dismissible ?? true;
|
|
100
|
+
const points = options.snapPoints?.length ? options.snapPoints : undefined;
|
|
101
|
+
const closeThreshold = options.closeThreshold ?? SHEET_CLOSE_THRESHOLD;
|
|
102
|
+
const fadeFrom = options.fadeFromIndex ?? (points ? points.length - 1 : 0);
|
|
103
|
+
const view = sheet.ownerDocument.defaultView;
|
|
104
|
+
const vertical = isVerticalSheet(placement);
|
|
105
|
+
// Closing direction in screen coordinates: a bottom sheet closes downwards (+y).
|
|
106
|
+
const sign = placement === "bottom" || placement === "right" ? 1 : -1;
|
|
107
|
+
const tracker = VelocityTracker();
|
|
108
|
+
const release = DragRelease(false, BASE_FRICTION);
|
|
109
|
+
let size = 0;
|
|
110
|
+
let offsets = [];
|
|
111
|
+
let index = points ? Math.max(0, Math.min(points.length - 1, options.activeSnapIndex ?? 0)) : -1;
|
|
112
|
+
let dismissing = false;
|
|
113
|
+
const measure = () => {
|
|
114
|
+
size = vertical ? sheet.offsetHeight : sheet.offsetWidth;
|
|
115
|
+
if (!points)
|
|
116
|
+
return void (offsets = []);
|
|
117
|
+
const viewport = { width: view.innerWidth, height: view.innerHeight };
|
|
118
|
+
const rem = parseFloat(view.getComputedStyle(sheet.ownerDocument.documentElement).fontSize) || 16;
|
|
119
|
+
offsets = points.map((point) => Math.max(0, Math.min(size, size - snapPointSize(point, viewport, vertical, rem))));
|
|
120
|
+
};
|
|
121
|
+
const restOf = (i) => (i < 0 || !offsets.length ? 0 : offsets[i]);
|
|
122
|
+
// Overdrag bleed (inline: behaviour-critical, never keyed on a class): created on the first overdrag past fully
|
|
123
|
+
// shown, removed when the motion settles.
|
|
124
|
+
const bleeds = options.bleed ?? true;
|
|
125
|
+
let bleed = null;
|
|
126
|
+
let position = null;
|
|
127
|
+
const showBleed = () => {
|
|
128
|
+
if (bleed)
|
|
129
|
+
return;
|
|
130
|
+
bleed = sheet.ownerDocument.createElement("div");
|
|
131
|
+
bleed.setAttribute("data-sheet-bleed", "");
|
|
132
|
+
bleed.setAttribute("aria-hidden", "true");
|
|
133
|
+
const beyond = {
|
|
134
|
+
bottom: "top:100%;left:0;right:0;height:100vh",
|
|
135
|
+
top: "bottom:100%;left:0;right:0;height:100vh",
|
|
136
|
+
right: "left:100%;top:0;bottom:0;width:100vw",
|
|
137
|
+
left: "right:100%;top:0;bottom:0;width:100vw",
|
|
138
|
+
}[placement];
|
|
139
|
+
bleed.style.cssText = `position:absolute;${beyond};background:inherit;pointer-events:none;`;
|
|
140
|
+
if (view.getComputedStyle(sheet).position === "static")
|
|
141
|
+
((position = sheet.style.position), (sheet.style.position = "relative"));
|
|
142
|
+
sheet.append(bleed);
|
|
143
|
+
};
|
|
144
|
+
const hideBleed = () => {
|
|
145
|
+
if (!bleed)
|
|
146
|
+
return;
|
|
147
|
+
bleed.remove();
|
|
148
|
+
bleed = null;
|
|
149
|
+
if (position !== null)
|
|
150
|
+
((sheet.style.position = position), (position = null));
|
|
151
|
+
};
|
|
152
|
+
const render = (value) => {
|
|
153
|
+
const px = sign * value;
|
|
154
|
+
if (value < 0 && bleeds)
|
|
155
|
+
showBleed();
|
|
156
|
+
sheet.style.transform = px || points ? `translate${vertical ? "Y" : "X"}(${px}px)` : "";
|
|
157
|
+
if (points)
|
|
158
|
+
sheet.style.setProperty("--snap-point-height", `${value}px`);
|
|
159
|
+
if (backdrop && size) {
|
|
160
|
+
const opacity = sheetBackdropOpacity(value, size, offsets, fadeFrom);
|
|
161
|
+
if (points || value)
|
|
162
|
+
backdrop.style.setProperty("--sheet-backdrop-opacity", String(+opacity.toFixed(4)));
|
|
163
|
+
else
|
|
164
|
+
backdrop.style.removeProperty("--sheet-backdrop-opacity");
|
|
165
|
+
}
|
|
166
|
+
onProgress?.(size ? Math.max(0, Math.min(1, 1 - value / size)) : 1);
|
|
167
|
+
};
|
|
168
|
+
const motion = Motion1D({
|
|
169
|
+
value: 0,
|
|
170
|
+
friction: BASE_FRICTION,
|
|
171
|
+
render,
|
|
172
|
+
onSettle: () => {
|
|
173
|
+
sheet.removeAttribute("data-dragging");
|
|
174
|
+
if (motion.target.get() >= 0)
|
|
175
|
+
hideBleed();
|
|
176
|
+
onSettle?.(!dismissing);
|
|
177
|
+
if (dismissing)
|
|
178
|
+
return close();
|
|
179
|
+
sheet.style.transition = "";
|
|
180
|
+
if (backdrop)
|
|
181
|
+
backdrop.style.transition = "";
|
|
182
|
+
if (!points)
|
|
183
|
+
reset();
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
const reset = () => {
|
|
187
|
+
sheet.style.transform = "";
|
|
188
|
+
backdrop?.style.removeProperty("--sheet-backdrop-opacity");
|
|
189
|
+
};
|
|
190
|
+
const reduced = () => !!reduceMotion?.() || !!view.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
|
|
191
|
+
const animateTo = (next, rawForce) => {
|
|
192
|
+
const current = motion.target.get();
|
|
193
|
+
if (reduced())
|
|
194
|
+
return motion.to(next, true);
|
|
195
|
+
const { duration, friction } = release.settle(rawForce || next - current, next - current);
|
|
196
|
+
motion.scrollBody.useDuration(duration).useFriction(friction);
|
|
197
|
+
motion.target.set(next);
|
|
198
|
+
motion.animation.start();
|
|
199
|
+
};
|
|
200
|
+
let pointer = null;
|
|
201
|
+
let dragging = false;
|
|
202
|
+
let cancelling = false;
|
|
203
|
+
let limits = [0, 0];
|
|
204
|
+
let origin = 0;
|
|
205
|
+
const along = (event) => sign * (vertical ? event.clientY : event.clientX);
|
|
206
|
+
/** Whether a scroll container between `target` and the sheet can scroll for a finger moving `towardsClosed`. */
|
|
207
|
+
const scrollsFirst = (target, towardsClosed) => {
|
|
208
|
+
for (let el = target; el && el !== sheet; el = el.parentElement) {
|
|
209
|
+
if (!(el instanceof HTMLElement))
|
|
210
|
+
continue;
|
|
211
|
+
const style = view.getComputedStyle(el);
|
|
212
|
+
const overflow = vertical ? style.overflowY : style.overflowX;
|
|
213
|
+
if (overflow !== "auto" && overflow !== "scroll")
|
|
214
|
+
continue;
|
|
215
|
+
const pos = vertical ? el.scrollTop : Math.abs(el.scrollLeft);
|
|
216
|
+
const max = vertical ? el.scrollHeight - el.clientHeight : el.scrollWidth - el.clientWidth;
|
|
217
|
+
if (max <= 1)
|
|
218
|
+
continue;
|
|
219
|
+
// Finger towards the closed edge on a bottom / right sheet scrolls the content back to its start.
|
|
220
|
+
const towardsStart = towardsClosed === (sign === 1);
|
|
221
|
+
if (towardsStart ? pos > 0 : pos < max - 1)
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
return false;
|
|
225
|
+
};
|
|
226
|
+
const down = (event) => {
|
|
227
|
+
if (pointer || dismissing || (event.pointerType === "mouse" && event.button !== 0))
|
|
228
|
+
return;
|
|
229
|
+
const target = event.target;
|
|
230
|
+
if (target?.closest?.(NO_DRAG))
|
|
231
|
+
return;
|
|
232
|
+
if (handle && !target?.closest?.(handle))
|
|
233
|
+
return;
|
|
234
|
+
pointer = { id: event.pointerId, x: event.clientX, y: event.clientY, target, mouse: event.pointerType === "mouse", startOffset: motion.target.get() };
|
|
235
|
+
dragging = false;
|
|
236
|
+
};
|
|
237
|
+
const move = (event) => {
|
|
238
|
+
if (!pointer || event.pointerId !== pointer.id)
|
|
239
|
+
return;
|
|
240
|
+
if (!dragging) {
|
|
241
|
+
const dx = event.clientX - pointer.x, dy = event.clientY - pointer.y;
|
|
242
|
+
const main = vertical ? dy : dx, cross = vertical ? dx : dy;
|
|
243
|
+
if (Math.abs(main) < SHEET_AXIS_LOCK && Math.abs(cross) < SHEET_AXIS_LOCK)
|
|
244
|
+
return;
|
|
245
|
+
if (Math.abs(cross) >= Math.abs(main))
|
|
246
|
+
return void (pointer = null);
|
|
247
|
+
const towardsClosed = sign * main > 0;
|
|
248
|
+
measure();
|
|
249
|
+
const min = offsets.length ? Math.min(...offsets) : 0;
|
|
250
|
+
if (!handle && scrollsFirst(pointer.target, towardsClosed) && (towardsClosed || motion.target.get() <= min + 0.5))
|
|
251
|
+
return void (pointer = null);
|
|
252
|
+
dragging = true;
|
|
253
|
+
const max = dismissible ? size : offsets.length ? Math.max(...offsets) : 0;
|
|
254
|
+
limits = [min, max];
|
|
255
|
+
sheet.style.transition = "none";
|
|
256
|
+
sheet.setAttribute("data-dragging", "true");
|
|
257
|
+
if (backdrop)
|
|
258
|
+
backdrop.style.transition = "none";
|
|
259
|
+
try {
|
|
260
|
+
sheet.setPointerCapture(event.pointerId);
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
// Synthetic pointers have no capture.
|
|
264
|
+
}
|
|
265
|
+
cancelling = true;
|
|
266
|
+
try {
|
|
267
|
+
pointer.target?.dispatchEvent(new PointerEvent("pointercancel", { bubbles: true, pointerId: event.pointerId, pointerType: event.pointerType }));
|
|
268
|
+
}
|
|
269
|
+
finally {
|
|
270
|
+
cancelling = false;
|
|
271
|
+
}
|
|
272
|
+
view.addEventListener("click", swallow, { capture: true, once: true });
|
|
273
|
+
origin = sign * (vertical ? pointer.y : pointer.x);
|
|
274
|
+
tracker.pointerDown(origin, event.timeStamp);
|
|
275
|
+
motion.hold(true);
|
|
276
|
+
// Grabbed mid-animation: the drag continues from where the sheet is.
|
|
277
|
+
pointer.startOffset = motion.target.get();
|
|
278
|
+
}
|
|
279
|
+
event.preventDefault();
|
|
280
|
+
const point = along(event);
|
|
281
|
+
tracker.pointerMove(point, event.timeStamp);
|
|
282
|
+
// `origin` = pointer position (along the closing direction) at the drag start.
|
|
283
|
+
motion.drag(rubberBand(pointer.startOffset + point - origin, limits) - motion.target.get());
|
|
284
|
+
onDrag?.(event, size ? Math.max(0, motion.target.get() / size) : 0);
|
|
285
|
+
};
|
|
286
|
+
const up = (event) => {
|
|
287
|
+
if (cancelling || !pointer || event.pointerId !== pointer.id)
|
|
288
|
+
return;
|
|
289
|
+
const { mouse, startOffset } = pointer;
|
|
290
|
+
pointer = null;
|
|
291
|
+
if (!dragging)
|
|
292
|
+
return;
|
|
293
|
+
dragging = false;
|
|
294
|
+
view.setTimeout(() => view.removeEventListener("click", swallow, { capture: true }), 0);
|
|
295
|
+
const rawForce = event.type === "pointercancel" ? 0 : tracker.pointerUp(event.timeStamp) * release.forceBoost(mouse);
|
|
296
|
+
const current = motion.target.get();
|
|
297
|
+
const projected = current + rawForce;
|
|
298
|
+
motion.hold(false);
|
|
299
|
+
let next;
|
|
300
|
+
if (!offsets.length) {
|
|
301
|
+
dismissing = dismissible && projected > size * closeThreshold;
|
|
302
|
+
next = dismissing ? size : 0;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
const lowest = Math.max(...offsets);
|
|
306
|
+
dismissing = dismissible && projected > lowest + (size - lowest) * closeThreshold && (!options.sequential || index === 0 || startOffset >= lowest - 0.5);
|
|
307
|
+
if (dismissing)
|
|
308
|
+
next = size;
|
|
309
|
+
else {
|
|
310
|
+
let target = index;
|
|
311
|
+
if (options.sequential) {
|
|
312
|
+
const moved = projected - startOffset;
|
|
313
|
+
if (Math.abs(moved) > SHEET_AXIS_LOCK)
|
|
314
|
+
target = Math.max(0, Math.min(offsets.length - 1, index + (moved > 0 ? -1 : 1)));
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
let best = Infinity;
|
|
318
|
+
offsets.forEach((o, i) => {
|
|
319
|
+
const d = Math.abs(o - projected);
|
|
320
|
+
if (d < best)
|
|
321
|
+
((best = d), (target = i));
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
next = offsets[target];
|
|
325
|
+
if (target !== index)
|
|
326
|
+
((index = target), onSnap?.(target));
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
onRelease?.(event, !dismissing);
|
|
330
|
+
animateTo(next, rawForce);
|
|
331
|
+
};
|
|
332
|
+
const swallow = (event) => {
|
|
333
|
+
event.stopPropagation();
|
|
334
|
+
event.preventDefault();
|
|
335
|
+
};
|
|
336
|
+
const touchAction = sheet.style.touchAction;
|
|
337
|
+
if (!handle)
|
|
338
|
+
sheet.style.touchAction = options.touchAction ?? (vertical ? "none" : "pan-y");
|
|
339
|
+
else if (options.touchAction)
|
|
340
|
+
sheet.style.touchAction = options.touchAction;
|
|
341
|
+
sheet.addEventListener("pointerdown", down);
|
|
342
|
+
view.addEventListener("pointermove", move, { passive: false });
|
|
343
|
+
view.addEventListener("pointerup", up);
|
|
344
|
+
view.addEventListener("pointercancel", up);
|
|
345
|
+
// Rest at the initial snap point in px (replaces the CSS expression of the first render).
|
|
346
|
+
if (points) {
|
|
347
|
+
measure();
|
|
348
|
+
motion.to(restOf(index), true);
|
|
349
|
+
}
|
|
350
|
+
return {
|
|
351
|
+
snapTo: (i, jump) => {
|
|
352
|
+
if (dismissing)
|
|
353
|
+
return;
|
|
354
|
+
measure();
|
|
355
|
+
if (points)
|
|
356
|
+
index = Math.max(0, Math.min(points.length - 1, i));
|
|
357
|
+
const next = restOf(points ? index : -1);
|
|
358
|
+
if (jump || reduced())
|
|
359
|
+
motion.to(next, true);
|
|
360
|
+
else
|
|
361
|
+
animateTo(next, 0);
|
|
362
|
+
},
|
|
363
|
+
dismiss: () => {
|
|
364
|
+
if (dismissing)
|
|
365
|
+
return;
|
|
366
|
+
measure();
|
|
367
|
+
dismissing = true;
|
|
368
|
+
animateTo(size, 0);
|
|
369
|
+
},
|
|
370
|
+
offset: () => motion.get(),
|
|
371
|
+
index: () => index,
|
|
372
|
+
destroy: () => {
|
|
373
|
+
motion.stop();
|
|
374
|
+
sheet.removeEventListener("pointerdown", down);
|
|
375
|
+
view.removeEventListener("pointermove", move);
|
|
376
|
+
view.removeEventListener("pointerup", up);
|
|
377
|
+
view.removeEventListener("pointercancel", up);
|
|
378
|
+
view.removeEventListener("click", swallow, { capture: true });
|
|
379
|
+
sheet.style.touchAction = touchAction;
|
|
380
|
+
sheet.removeAttribute("data-dragging");
|
|
381
|
+
hideBleed();
|
|
382
|
+
if (!dismissing && !points)
|
|
383
|
+
reset();
|
|
384
|
+
},
|
|
385
|
+
};
|
|
386
|
+
}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { Content } from "@rivetjs/runtime/jsx-runtime";
|
|
3
|
+
import { type ButtonProps } from "../button/index.jsx";
|
|
4
|
+
import { type LinkProps } from "../link/index.jsx";
|
|
5
|
+
import { type InputProps } from "../input/index.jsx";
|
|
6
|
+
import { type SeparatorProps } from "../separator/index.jsx";
|
|
7
|
+
import { type TooltipProps } from "../tooltip/index.jsx";
|
|
8
|
+
import { type Href, type RouterOptions } from "../utils/links.jsx";
|
|
9
|
+
import { type MaybeAccessor } from "../interactions/utils.js";
|
|
10
|
+
import type { GlobalDOMAttributes } from "../utils/dom-props.js";
|
|
11
|
+
import type { DOMRenderProps } from "../utils/render.js";
|
|
12
|
+
import { type ClassNameOrFunction, type RefValue, type StyleObject } from "../slots/index.jsx";
|
|
13
|
+
import { type SidebarResizeProps } from "./resize.js";
|
|
14
|
+
import { type SidebarStateProps } from "./state.js";
|
|
15
|
+
export * from "./state.js";
|
|
16
|
+
export { sidebarSheetMotion, type SidebarSheetMotionOptions } from "./sheet-motion.js";
|
|
17
|
+
export * from "./resize.js";
|
|
18
|
+
export { SidebarPage, SidebarPages, SidebarPagesContext, setSidebarPage, sidebarPagesValue, useSidebarPages, type SidebarPageProps, type SidebarPagesContextValue, type SidebarPagesProps, type SidebarPagesState, } from "./pages.jsx";
|
|
19
|
+
/** Props shared by the structural parts (upstream `React.ComponentProps<tag>`). */
|
|
20
|
+
export interface SidebarPartProps<E extends Element = HTMLElement> extends GlobalDOMAttributes<E>, DOMRenderProps<any, undefined> {
|
|
21
|
+
/** The CSS class (a string, or a function of `{ defaultClassName }`; called in a binding). */
|
|
22
|
+
class?: ClassNameOrFunction<{}>;
|
|
23
|
+
style?: StyleObject;
|
|
24
|
+
id?: string;
|
|
25
|
+
role?: string;
|
|
26
|
+
title?: string;
|
|
27
|
+
children?: Content;
|
|
28
|
+
ref?: RefValue<E>;
|
|
29
|
+
[attribute: `aria-${string}`]: unknown;
|
|
30
|
+
}
|
|
31
|
+
/** `useSidebar()` (upstream `SidebarContextProps`): values are accessors. */
|
|
32
|
+
export interface SidebarContextValue {
|
|
33
|
+
/** `"expanded"` / `"collapsed"`. */
|
|
34
|
+
state: () => "expanded" | "collapsed";
|
|
35
|
+
open: () => boolean;
|
|
36
|
+
setOpen: (open: boolean | ((open: boolean) => boolean)) => void;
|
|
37
|
+
openMobile: () => boolean;
|
|
38
|
+
setOpenMobile: (open: boolean | ((open: boolean) => boolean)) => void;
|
|
39
|
+
isMobile: () => boolean;
|
|
40
|
+
toggleSidebar: () => void;
|
|
41
|
+
}
|
|
42
|
+
/** Upstream `useSidebar`: state accessors + setters of the nearest SidebarProvider (throws outside one). */
|
|
43
|
+
export declare function useSidebar(): SidebarContextValue;
|
|
44
|
+
export interface SidebarProviderProps extends SidebarStateProps, SidebarPartProps<HTMLDivElement> {
|
|
45
|
+
/** Called for every `keydown` inside the wrapper, before the toggle shortcut check. */
|
|
46
|
+
onKeyDown?: (event: KeyboardEvent) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Rivet: client-side navigation for the sidebar's links (a cdk `RouterProvider` for the subtree; an inline arrow).
|
|
49
|
+
* Without it links are native: `@rivetjs/router` routes them client-side when a route matches.
|
|
50
|
+
*/
|
|
51
|
+
navigate?: (href: Href, routerOptions: RouterOptions) => void;
|
|
52
|
+
/** Rivet: maps a router href to the DOM `href` (with `navigate`). */
|
|
53
|
+
useHref?: (href: Href) => string;
|
|
54
|
+
}
|
|
55
|
+
/** Provides the sidebar state; wraps the app (`data-slot="sidebar-wrapper"`). */
|
|
56
|
+
export declare function SidebarProvider(props: SidebarProviderProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
57
|
+
export interface SidebarProps extends SidebarPartProps<HTMLDivElement>, SidebarResizeProps {
|
|
58
|
+
/** @default the provider's `side`, else "left" */
|
|
59
|
+
side?: MaybeAccessor<"left" | "right">;
|
|
60
|
+
/** @default the provider's `variant`, else "sidebar" */
|
|
61
|
+
variant?: MaybeAccessor<"sidebar" | "floating" | "inset">;
|
|
62
|
+
/** `none` is read once (it picks the element). @default the provider's `collapsible`, else "offcanvas" */
|
|
63
|
+
collapsible?: MaybeAccessor<"offcanvas" | "icon" | "none">;
|
|
64
|
+
/** Class of the desktop root (`data-slot="sidebar"`, carries `data-state` / `data-collapsible` / `data-variant` / `data-side`). @default "rv-Sidebar" */
|
|
65
|
+
rootClass?: string;
|
|
66
|
+
/** Class of the gap element that reserves the width in the layout. @default "rv-Sidebar-gap" */
|
|
67
|
+
gapClass?: string;
|
|
68
|
+
/** Class of the inner panel (`data-sidebar="sidebar"`). @default "rv-Sidebar-inner" */
|
|
69
|
+
innerClass?: string;
|
|
70
|
+
/** Mobile: class of the overlay underlay. @default "rv-Sidebar-overlay" */
|
|
71
|
+
overlayClass?: string;
|
|
72
|
+
/** Mobile: class of the sheet (`data-mobile="true"`). @default "rv-Sidebar-sheet" */
|
|
73
|
+
sheetClass?: string;
|
|
74
|
+
/** Mobile: class of the sheet's dialog (holds the content). @default "rv-Sidebar-dialog" */
|
|
75
|
+
dialogClass?: string;
|
|
76
|
+
/** Rivet: mobile sheet underlay look (`data-backdrop` on the overlay). @default "blur" */
|
|
77
|
+
backdrop?: "blur" | "opaque" | "transparent";
|
|
78
|
+
/**
|
|
79
|
+
* Rivet: a drag handle on the panel's inner edge resizes the desktop sidebar (`role="separator"`; `width` /
|
|
80
|
+
* `defaultWidth` / `minWidth` / `maxWidth` / `onWidthChange` / `onWidthChangeEnd` / `collapseBelowMin` / `resizeStep`).
|
|
81
|
+
* Not with `collapsible="none"`. @default false
|
|
82
|
+
*/
|
|
83
|
+
resizable?: boolean;
|
|
84
|
+
/** Rivet: class of the resize handle. @default "rv-SidebarResizeHandle" */
|
|
85
|
+
resizeHandleClass?: string;
|
|
86
|
+
/** Rivet: accessible name of the resize handle. @default "Resize sidebar" */
|
|
87
|
+
resizeHandleLabel?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The sidebar panel. `class`, `style` and the DOM props land on the desktop container
|
|
91
|
+
* (`data-slot="sidebar-container"`) and on the mobile sheet; `collapsible="none"` renders one plain panel.
|
|
92
|
+
*/
|
|
93
|
+
export declare function Sidebar(props: SidebarProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
94
|
+
/** Children = static content (the icon); no render function: the label follows them. */
|
|
95
|
+
export type SidebarTriggerProps = Omit<ButtonProps, "children"> & {
|
|
96
|
+
children?: Content;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Toggles the sidebar (desktop) or the mobile sheet. The visually hidden "Toggle Sidebar" label is always rendered after
|
|
100
|
+
* `children` (shadcn renders its icon + the `sr-only` label and ignores children; headless here, so `children` = the
|
|
101
|
+
* icon); pass `aria-label` to rename it.
|
|
102
|
+
*/
|
|
103
|
+
export declare function SidebarTrigger(props: SidebarTriggerProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
104
|
+
export interface SidebarRailProps extends SidebarPartProps<HTMLButtonElement> {
|
|
105
|
+
}
|
|
106
|
+
/** The thin rail along the sidebar edge: click toggles (not in the tab order, as upstream). */
|
|
107
|
+
export declare function SidebarRail(props: SidebarRailProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
108
|
+
export interface SidebarInsetProps extends SidebarPartProps<HTMLElement> {
|
|
109
|
+
}
|
|
110
|
+
/** The main content next to an `inset` sidebar (`<main>`). */
|
|
111
|
+
export declare function SidebarInset(props: SidebarInsetProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
112
|
+
export type SidebarInputProps = InputProps;
|
|
113
|
+
/** A cdk Input inside the sidebar (`data-sidebar="input"`). */
|
|
114
|
+
export declare function SidebarInput(props: SidebarInputProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
115
|
+
export type SidebarSeparatorProps = SeparatorProps;
|
|
116
|
+
/** A cdk Separator inside the sidebar (`data-sidebar="separator"`). */
|
|
117
|
+
export declare function SidebarSeparator(props: SidebarSeparatorProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
118
|
+
export type SidebarHeaderProps = SidebarPartProps<HTMLDivElement>;
|
|
119
|
+
/** Top of the sidebar (`data-sidebar="header"`). */
|
|
120
|
+
export declare function SidebarHeader(props: SidebarHeaderProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
121
|
+
export type SidebarFooterProps = SidebarPartProps<HTMLDivElement>;
|
|
122
|
+
/** Bottom of the sidebar (`data-sidebar="footer"`). */
|
|
123
|
+
export declare function SidebarFooter(props: SidebarFooterProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
124
|
+
export type SidebarContentProps = SidebarPartProps<HTMLDivElement>;
|
|
125
|
+
/** The scrollable middle of the sidebar (`data-sidebar="content"`). */
|
|
126
|
+
export declare function SidebarContent(props: SidebarContentProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
127
|
+
export interface SidebarGroupProps extends SidebarPartProps<HTMLDivElement> {
|
|
128
|
+
/** Rivet: close the mobile sheet when a menu button in this group is pressed. @default inherited (provider: true) */
|
|
129
|
+
closeMobileOnAction?: boolean;
|
|
130
|
+
}
|
|
131
|
+
/** A section of the sidebar (`data-sidebar="group"`). */
|
|
132
|
+
export declare function SidebarGroup(props: SidebarGroupProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
133
|
+
export type SidebarGroupLabelProps = SidebarPartProps<HTMLDivElement>;
|
|
134
|
+
/** The label of a group (`div`; `render` replaces upstream `asChild`, e.g. a Disclosure trigger Button). */
|
|
135
|
+
export declare function SidebarGroupLabel(props: SidebarGroupLabelProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
136
|
+
export type SidebarGroupActionProps = SidebarPartProps<HTMLButtonElement>;
|
|
137
|
+
/** An action button in a group header (native `button`, as the React Aria base). */
|
|
138
|
+
export declare function SidebarGroupAction(props: SidebarGroupActionProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
139
|
+
export type SidebarGroupContentProps = SidebarPartProps<HTMLDivElement>;
|
|
140
|
+
/** The content of a group (`data-sidebar="group-content"`). */
|
|
141
|
+
export declare function SidebarGroupContent(props: SidebarGroupContentProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
142
|
+
export interface SidebarMenuProps extends SidebarPartProps<HTMLUListElement> {
|
|
143
|
+
/**
|
|
144
|
+
* Rivet: the guide line along nested sub menus — always (`true`), only while the menu is hovered / focused
|
|
145
|
+
* (`"hover"`) or never (`false`); `data-guide-lines="hover" | "none"` (absent for `true`). @default true
|
|
146
|
+
*/
|
|
147
|
+
showGuideLines?: boolean | "hover";
|
|
148
|
+
/** Rivet: close the mobile sheet when a menu button in this menu is pressed. @default inherited (group / provider) */
|
|
149
|
+
closeMobileOnAction?: boolean;
|
|
150
|
+
/** Rivet: no sub menu / indicator / pages animation in this menu (`data-reduce-motion`). @default inherited (provider) */
|
|
151
|
+
reduceMotion?: boolean;
|
|
152
|
+
}
|
|
153
|
+
/** A menu list (`ul`, as new-york). */
|
|
154
|
+
export declare function SidebarMenu(props: SidebarMenuProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
155
|
+
/** Rivet: tree items — an expandable SidebarMenuItem / SidebarMenuSubItem is a cdk Disclosure. */
|
|
156
|
+
export interface SidebarExpandableProps {
|
|
157
|
+
/** Renders the item as an expandable tree node (cdk Disclosure; implied by the props below). @default false */
|
|
158
|
+
expandable?: boolean;
|
|
159
|
+
/** Expanded at first (uncontrolled). @default false */
|
|
160
|
+
defaultExpanded?: boolean;
|
|
161
|
+
/** Expanded (controlled): a plain value or a two-way Signal. */
|
|
162
|
+
isExpanded?: boolean | Signal<boolean>;
|
|
163
|
+
/** Called when the item expands / collapses. */
|
|
164
|
+
onExpandedChange?: (isExpanded: boolean) => void;
|
|
165
|
+
/** Disables the trigger. */
|
|
166
|
+
isDisabled?: boolean;
|
|
167
|
+
}
|
|
168
|
+
export interface SidebarMenuItemProps extends SidebarPartProps<HTMLLIElement>, SidebarExpandableProps {
|
|
169
|
+
}
|
|
170
|
+
/** A menu item (`li`): holds a SidebarMenuButton and optional action / badge / sub menu; expandable = a tree node. */
|
|
171
|
+
export declare function SidebarMenuItem(props: SidebarMenuItemProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
172
|
+
/** Rivet: link / action extras of SidebarMenuButton and SidebarMenuSubButton. */
|
|
173
|
+
export interface SidebarMenuLinkExtras {
|
|
174
|
+
/** The current page: `aria-current="page"` (and `data-active` unless `isActive` is given); a value or an accessor. */
|
|
175
|
+
isCurrent?: MaybeAccessor<boolean | undefined>;
|
|
176
|
+
/** With `href`: a full document load instead of client routing (`data-rivet-reload`, native router). @default false */
|
|
177
|
+
forceReload?: boolean;
|
|
178
|
+
/** Close the mobile sheet when pressed. @default inherited (menu / group / provider: true) */
|
|
179
|
+
closeMobileOnAction?: boolean;
|
|
180
|
+
}
|
|
181
|
+
interface MenuButtonExtras extends SidebarMenuLinkExtras {
|
|
182
|
+
/** Marks the current item (`data-active="true"`); a value or an accessor. @default false (`isCurrent`) */
|
|
183
|
+
isActive?: MaybeAccessor<boolean | undefined>;
|
|
184
|
+
/** `data-size`. @default "default" */
|
|
185
|
+
size?: "default" | "sm" | "lg";
|
|
186
|
+
/** Upstream `sidebarMenuButtonVariants` variant, exposed as `data-variant` (headless). @default "default" */
|
|
187
|
+
variant?: "default" | "outline";
|
|
188
|
+
/** A tooltip shown while the sidebar is collapsed (desktop only): its text, or Tooltip props. */
|
|
189
|
+
tooltip?: string | TooltipProps;
|
|
190
|
+
}
|
|
191
|
+
/** `SidebarMenuButton`: a cdk Button, or a cdk Link when `href` is given (React Aria base). */
|
|
192
|
+
export type SidebarMenuButtonProps = MenuButtonExtras & ((ButtonProps & {
|
|
193
|
+
href?: undefined;
|
|
194
|
+
}) | (LinkProps & {
|
|
195
|
+
href: string;
|
|
196
|
+
}));
|
|
197
|
+
/** The button / link of a menu item; with `tooltip`, a tooltip while collapsed (not on mobile). */
|
|
198
|
+
export declare function SidebarMenuButton(props: SidebarMenuButtonProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
199
|
+
/** Rivet: SidebarMenuTrigger — the expand / collapse button of an expandable item (a SidebarMenuButton, `slot="trigger"`). */
|
|
200
|
+
export type SidebarMenuTriggerProps = Omit<MenuButtonExtras, "forceReload" | "closeMobileOnAction" | "isCurrent"> & Omit<ButtonProps, "slot">;
|
|
201
|
+
/** Rivet: the trigger of an expandable (tree) item: toggles it, `aria-expanded` / `aria-controls` from the Disclosure. */
|
|
202
|
+
export declare function SidebarMenuTrigger(props: SidebarMenuTriggerProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
203
|
+
export type SidebarMenuIndicatorProps = SidebarPartProps<HTMLSpanElement>;
|
|
204
|
+
/**
|
|
205
|
+
* Rivet: the expand indicator inside a SidebarMenuTrigger (`span`, `aria-hidden`; your icon as children). CSS rotates
|
|
206
|
+
* it while the item is expanded (`[aria-expanded="true"]`).
|
|
207
|
+
*/
|
|
208
|
+
export declare function SidebarMenuIndicator(props: SidebarMenuIndicatorProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
209
|
+
export interface SidebarMenuActionProps extends ButtonProps {
|
|
210
|
+
/** Shown only while the item is hovered / focused (desktop): `data-show-on-hover="true"`. @default false */
|
|
211
|
+
showOnHover?: boolean;
|
|
212
|
+
}
|
|
213
|
+
/** An action button next to a menu button (cdk Button, React Aria base). */
|
|
214
|
+
export declare function SidebarMenuAction(props: SidebarMenuActionProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
215
|
+
export interface SidebarMenuActionsProps extends SidebarPartProps<HTMLDivElement> {
|
|
216
|
+
/** Shown only while the item is hovered / focused (desktop): `data-show-on-hover="true"`. @default false */
|
|
217
|
+
showOnHover?: boolean;
|
|
218
|
+
}
|
|
219
|
+
/** Rivet: several SidebarMenuAction buttons at the end of a menu item (`div`, `role="group"`). */
|
|
220
|
+
export declare function SidebarMenuActions(props: SidebarMenuActionsProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
221
|
+
export type SidebarMenuBadgeProps = SidebarPartProps<HTMLDivElement>;
|
|
222
|
+
/** A badge (count) in a menu item. */
|
|
223
|
+
export declare function SidebarMenuBadge(props: SidebarMenuBadgeProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
224
|
+
export interface SidebarMenuSkeletonProps extends SidebarPartProps<HTMLDivElement> {
|
|
225
|
+
/** Renders the icon placeholder too. @default false */
|
|
226
|
+
showIcon?: boolean;
|
|
227
|
+
/** Class of the icon placeholder. @default "rv-SidebarMenuSkeleton-icon" */
|
|
228
|
+
iconClass?: string;
|
|
229
|
+
/** Class of the text placeholder (width `--skeleton-width`, random 50–90%). @default "rv-SidebarMenuSkeleton-text" */
|
|
230
|
+
textClass?: string;
|
|
231
|
+
}
|
|
232
|
+
/** A loading placeholder for a menu item. */
|
|
233
|
+
export declare function SidebarMenuSkeleton(props: SidebarMenuSkeletonProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
234
|
+
export interface SidebarMenuSubProps extends SidebarPartProps<HTMLUListElement> {
|
|
235
|
+
/** Rivet: inside an expandable item, class of the DisclosurePanel around the list. @default "rv-SidebarMenuSub-panel" */
|
|
236
|
+
panelClass?: string;
|
|
237
|
+
}
|
|
238
|
+
/** A nested menu (`ul`); inside an expandable item it sits in the item's DisclosurePanel (`data-slot="sidebar-menu-sub-panel"`). */
|
|
239
|
+
export declare function SidebarMenuSub(props: SidebarMenuSubProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
240
|
+
export interface SidebarMenuSubItemProps extends SidebarPartProps<HTMLLIElement>, SidebarExpandableProps {
|
|
241
|
+
}
|
|
242
|
+
/** An item of a nested menu (`li`); expandable = a nested tree node. */
|
|
243
|
+
export declare function SidebarMenuSubItem(props: SidebarMenuSubItemProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
244
|
+
interface MenuSubButtonExtras extends SidebarMenuLinkExtras {
|
|
245
|
+
/** `data-size`. @default "md" */
|
|
246
|
+
size?: "sm" | "md";
|
|
247
|
+
/** Marks the current item (`data-active="true"`); a value or an accessor. @default false (`isCurrent`) */
|
|
248
|
+
isActive?: MaybeAccessor<boolean | undefined>;
|
|
249
|
+
}
|
|
250
|
+
/** `SidebarMenuSubButton`: a cdk Link with `href`, else a cdk Button (React Aria base; new-york: `<a>`). */
|
|
251
|
+
export type SidebarMenuSubButtonProps = MenuSubButtonExtras & ((ButtonProps & {
|
|
252
|
+
href?: undefined;
|
|
253
|
+
}) | (LinkProps & {
|
|
254
|
+
href: string;
|
|
255
|
+
}));
|
|
256
|
+
/** The link / button of a sub menu item. */
|
|
257
|
+
export declare function SidebarMenuSubButton(props: SidebarMenuSubButtonProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|