@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +109 -0
- package/_adapters/selection.js +685 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +374 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +217 -0
- package/collections/components.jsx +537 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +9 -0
- package/collections/nodes.js +81 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +5 -0
- package/collections/server-dev.js +16 -0
- package/collections/server-off.d.ts +5 -0
- package/collections/server-off.js +7 -0
- package/collections/server-on.d.ts +28 -0
- package/collections/server-on.jsx +76 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +194 -0
- package/drag-drop/directives/drag.js +522 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +126 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +133 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +242 -0
- package/grid-list/behaviour.js +598 -0
- package/grid-list/index.d.ts +202 -0
- package/grid-list/index.jsx +685 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +538 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +53 -0
- package/interactions/utils.js +252 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +492 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +596 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +671 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +47 -0
- package/portal/index.jsx +76 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +139 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +76 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +535 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +624 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +159 -0
- package/state/menu.js +184 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +982 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +815 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +71 -0
- package/utils/data-attrs.jsx +193 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +57 -0
- package/utils/index.js +257 -0
- package/utils/links.d.ts +87 -0
- package/utils/links.jsx +152 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +98 -0
- package/virtualizer/behaviour.js +315 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +2 -0
- package/virtualizer/index.jsx +4 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +508 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +79 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +62 -0
- package/virtualizer/virtualizer.jsx +88 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// longPressProps: long press across mouse and touch, with threshold, accessibility description,
|
|
2
|
+
// pointercancel of other press handlers, click / context menu suppression after a long press.
|
|
3
|
+
// Ported from @react-aria/interactions useLongPress (react-spectrum), Apache-2.0, © Adobe.
|
|
4
|
+
//
|
|
5
|
+
// Rivet: built on pressProps (resumable handlers); the description is an element rendered by the
|
|
6
|
+
// caller from `descriptionProps` + `description` (the original's useDescription creates a hidden node
|
|
7
|
+
// at run time — not resumable; render `<span id={descriptionId} hidden>{text}</span>` once).
|
|
8
|
+
import { createId } from "../utils/id.js";
|
|
9
|
+
import { focusWithoutScrolling, getOwnerDocument, getOwnerWindow, read } from "./utils.js";
|
|
10
|
+
import { pressProps } from "./press.jsx";
|
|
11
|
+
import { mergeProps } from "./merge-props.jsx";
|
|
12
|
+
const DEFAULT_THRESHOLD = 500;
|
|
13
|
+
const accepted = (lp, e) => lp.props.pointerType ? e.pointerType === lp.props.pointerType : e.pointerType === "mouse" || e.pointerType === "touch";
|
|
14
|
+
function addGlobal(lp, target, type, fn, options) {
|
|
15
|
+
target.addEventListener(type, fn, options);
|
|
16
|
+
lp.state.globals.push(() => target.removeEventListener(type, fn, options));
|
|
17
|
+
}
|
|
18
|
+
const removeAllGlobals = (lp) => {
|
|
19
|
+
for (const remove of lp.state.globals.splice(0))
|
|
20
|
+
remove();
|
|
21
|
+
};
|
|
22
|
+
const toLongPress = (e, type) => ({
|
|
23
|
+
type,
|
|
24
|
+
pointerType: e.pointerType,
|
|
25
|
+
target: e.target,
|
|
26
|
+
shiftKey: e.shiftKey,
|
|
27
|
+
ctrlKey: e.ctrlKey,
|
|
28
|
+
metaKey: e.metaKey,
|
|
29
|
+
altKey: e.altKey,
|
|
30
|
+
x: e.x,
|
|
31
|
+
y: e.y,
|
|
32
|
+
key: e.key,
|
|
33
|
+
});
|
|
34
|
+
/** @internal onPressStart of longPressProps. */
|
|
35
|
+
export function longPressStart(lp, e) {
|
|
36
|
+
e.continuePropagation();
|
|
37
|
+
if (!accepted(lp, e))
|
|
38
|
+
return;
|
|
39
|
+
const { props, state } = lp;
|
|
40
|
+
props.onLongPressStart?.(toLongPress(e, "longpressstart"));
|
|
41
|
+
state.timer = setTimeout(() => {
|
|
42
|
+
// Stop other pressProps handlers from handling this press.
|
|
43
|
+
e.target.dispatchEvent(new PointerEvent("pointercancel", { bubbles: true }));
|
|
44
|
+
// No default click action (e.g. following a link) after a long press.
|
|
45
|
+
addGlobal(lp, e.target, "click", (event) => event.preventDefault(), { once: true });
|
|
46
|
+
// Touch devices focus on pointer up: focus now.
|
|
47
|
+
if (getOwnerDocument(e.target).activeElement !== e.target)
|
|
48
|
+
focusWithoutScrolling(e.target);
|
|
49
|
+
props.onLongPress?.(toLongPress(e, "longpress"));
|
|
50
|
+
state.timer = undefined;
|
|
51
|
+
}, props.threshold ?? DEFAULT_THRESHOLD);
|
|
52
|
+
// Touch long press may open the context menu.
|
|
53
|
+
if (e.pointerType === "touch")
|
|
54
|
+
addGlobal(lp, e.target, "contextmenu", (event) => event.preventDefault(), { once: true });
|
|
55
|
+
// Without a quick contextmenu / click after pointerup, drop the handlers so later events pass.
|
|
56
|
+
addGlobal(lp, getOwnerWindow(e.target), "pointerup", () => setTimeout(() => removeAllGlobals(lp), 100), { once: true });
|
|
57
|
+
}
|
|
58
|
+
/** @internal onPressEnd of longPressProps. */
|
|
59
|
+
export function longPressEnd(lp, e) {
|
|
60
|
+
if (lp.state.timer)
|
|
61
|
+
clearTimeout(lp.state.timer);
|
|
62
|
+
if (lp.props.onLongPressEnd && accepted(lp, e))
|
|
63
|
+
lp.props.onLongPressEnd(toLongPress(e, "longpressend"));
|
|
64
|
+
}
|
|
65
|
+
/** Long press interactions across mouse and touch devices. */
|
|
66
|
+
export function longPressProps(props = {}) {
|
|
67
|
+
const lp = { props, state: { timer: undefined, globals: [] } };
|
|
68
|
+
const press = pressProps({
|
|
69
|
+
isDisabled: props.isDisabled,
|
|
70
|
+
onPressStart: (e) => longPressStart(lp, e),
|
|
71
|
+
onPressEnd: (e) => longPressEnd(lp, e),
|
|
72
|
+
});
|
|
73
|
+
const described = props.onLongPress && !read(props.isDisabled) && props.accessibilityDescription;
|
|
74
|
+
const descriptionId = described ? createId() : undefined;
|
|
75
|
+
return {
|
|
76
|
+
longPressProps: mergeProps(press.pressProps, descriptionId ? { "aria-describedby": descriptionId } : {}),
|
|
77
|
+
descriptionId,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
type Bag = Record<string, any>;
|
|
2
|
+
type Fn = (...args: unknown[]) => unknown;
|
|
3
|
+
type PropsArg = Bag | null | undefined;
|
|
4
|
+
type TupleTypes<T> = {
|
|
5
|
+
[P in keyof T]: T[P];
|
|
6
|
+
} extends {
|
|
7
|
+
[key: number]: infer V;
|
|
8
|
+
} ? (V extends null | undefined ? {} : V) : never;
|
|
9
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
10
|
+
/** A Rivet / React ref: `ref()` signal object, callback (may return a cleanup) or `{ current }` object. */
|
|
11
|
+
export type RefLike<T> = ((value: T | null) => void | (() => void)) | {
|
|
12
|
+
current: T | null;
|
|
13
|
+
} | null | undefined;
|
|
14
|
+
/** Call `a`, then `b` (either may be missing). The returned function is a resumable symbol. */
|
|
15
|
+
export declare function chain2(a: Fn | null | undefined, b: Fn | null | undefined): Fn;
|
|
16
|
+
/** Calls all functions in the order they were chained with the same arguments (non-functions skipped; react-aria `chain`). */
|
|
17
|
+
export declare function chain(...callbacks: unknown[]): (...args: any[]) => void;
|
|
18
|
+
/** Merges refs (callback or `{ current }` objects) into one callback ref; cleanups are chained. */
|
|
19
|
+
export declare function mergeRefs<T>(...refs: RefLike<T>[]): RefLike<T>;
|
|
20
|
+
/**
|
|
21
|
+
* Merges props objects (react-aria `mergeProps`): `on[A-Z]*` handlers are chained, `class` /
|
|
22
|
+
* `className` strings joined, `id`s merged with `mergeIds`, `ref`s merged with `mergeRefs`; any other
|
|
23
|
+
* key: the last defined value wins.
|
|
24
|
+
*/
|
|
25
|
+
export declare function mergeProps<T extends PropsArg[]>(...args: T): UnionToIntersection<TupleTypes<T>>;
|
|
26
|
+
/**
|
|
27
|
+
* The copy path of `mergeProps` for sources known to hold no getter (cdk `contextProps` after its own `hasLive`
|
|
28
|
+
* checks): no per-key descriptor scan. `intoFirst`: `args[0]` is a fresh bag the caller owns and reads no more —
|
|
29
|
+
* merged into in place (no copy of it).
|
|
30
|
+
* @internal cdk parts
|
|
31
|
+
*/
|
|
32
|
+
export declare function mergeCopy(args: readonly PropsArg[], intoFirst?: boolean): Bag;
|
|
33
|
+
/**
|
|
34
|
+
* `mergeProps(first, ...rest)` merged into `first` itself (no copy of it): `first` must be a fresh bag the caller owns
|
|
35
|
+
* and reads no more (a `liveOmit` / `globalDOMProps` result). Same result as `mergeProps`: a getter in any source (a
|
|
36
|
+
* live `first`: a forwarding part) takes the live path, which leaves `first` untouched.
|
|
37
|
+
* @internal cdk parts
|
|
38
|
+
*/
|
|
39
|
+
export declare function mergeInto(first: Bag, ...rest: PropsArg[]): Bag;
|
|
40
|
+
/**
|
|
41
|
+
* `mergeProps(literal, ...rest)` for an RA bag `literal` written in place (data only by construction: not scanned,
|
|
42
|
+
* merged into), then `definedProps` on the static path. A getter in `rest` takes the live `mergeProps` path (all keys).
|
|
43
|
+
* @internal cdk parts
|
|
44
|
+
*/
|
|
45
|
+
export declare function mergeDefined(literal: Bag, ...rest: PropsArg[]): Bag;
|
|
46
|
+
/**
|
|
47
|
+
* A fresh copy of `bag` without its `undefined` entries (key order kept): for a data-only RA prop bag (no
|
|
48
|
+
* getters — they would be read) that is merged / spread next. RA bags list every optional attribute (`aria-*`, `name`,
|
|
49
|
+
* `form`, …), mostly unset; `undefined` never overrides in `mergeProps` and an unset spread key writes nothing, so the
|
|
50
|
+
* element gets the same attributes while every later copy / merge / spread walks only the set keys.
|
|
51
|
+
* @internal cdk parts
|
|
52
|
+
*/
|
|
53
|
+
export declare function definedProps(bag: Bag): Bag;
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// mergeProps / chain / mergeRefs — THE prop-merging helpers of the package (`@rivetjs/cdk/utils`
|
|
2
|
+
// re-exports them). Ported from @react-aria/utils mergeProps, chain, mergeRefs (react-spectrum),
|
|
3
|
+
// Apache-2.0, © Adobe.
|
|
4
|
+
//
|
|
5
|
+
// Rules (react-aria): later keys win; `on[A-Z]*` handlers chain (earlier first); `class` /
|
|
6
|
+
// `className` / `UNSAFE_className` concatenate; `id`s merge with `mergeIds`; `ref`s merge with
|
|
7
|
+
// `mergeRefs`; `undefined` never overrides.
|
|
8
|
+
// Rivet: a `.tsx` module compiled for resume (R2), so the chained handlers / merged refs it returns
|
|
9
|
+
// are resumable symbols — a merged bag of resumable handlers stays resumable when spread on a native
|
|
10
|
+
// element. Deviation: class values may be accessors (signals); an accessor on either side yields an accessor.
|
|
11
|
+
// Live props (P5, docs/design/specs/2026-10-07-live-props-design.md §8): a source with an own getter (a live prop)
|
|
12
|
+
// is merged without reading it — the result is a runtime `mergeProps` object (same "later defined value wins"
|
|
13
|
+
// rule, getters forwarded unread) over the sources plus one bag of the keys that combine: handlers of a live key
|
|
14
|
+
// chain at call time, live classes join in an accessor (render-prop values passed through). `id` / `ref` with two
|
|
15
|
+
// holders are read once (identity props). Sources without getters take the copy path below unchanged.
|
|
16
|
+
import { mergeProps as mergeLive } from "@rivetjs/runtime/props";
|
|
17
|
+
import { mergeIds } from "../utils/id.js";
|
|
18
|
+
import { hasLive } from "../utils/live.jsx";
|
|
19
|
+
/** Call `a`, then `b` (either may be missing). The returned function is a resumable symbol. */
|
|
20
|
+
export function chain2(a, b) {
|
|
21
|
+
return (...args) => {
|
|
22
|
+
if (typeof a === "function")
|
|
23
|
+
a(...args);
|
|
24
|
+
if (typeof b === "function")
|
|
25
|
+
return b(...args);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** Calls all functions in the order they were chained with the same arguments (non-functions skipped; react-aria `chain`). */
|
|
29
|
+
export function chain(...callbacks) {
|
|
30
|
+
let out = null;
|
|
31
|
+
for (const callback of callbacks)
|
|
32
|
+
if (typeof callback === "function")
|
|
33
|
+
out = out ? chain2(out, callback) : callback;
|
|
34
|
+
return out ?? noop();
|
|
35
|
+
}
|
|
36
|
+
function noop() {
|
|
37
|
+
return () => undefined;
|
|
38
|
+
}
|
|
39
|
+
const text = (v) => (v == null || v === "" ? "" : String(v));
|
|
40
|
+
function joinText(a, b) {
|
|
41
|
+
if (typeof a === "function" || typeof b === "function")
|
|
42
|
+
return joined(a, b);
|
|
43
|
+
return [a, b].filter((v) => v != null && v !== "").join(" ");
|
|
44
|
+
}
|
|
45
|
+
function joined(a, b) {
|
|
46
|
+
return () => [typeof a === "function" ? a() : a, typeof b === "function" ? b() : b].filter((v) => text(v) !== "").join(" ");
|
|
47
|
+
}
|
|
48
|
+
function setRef(ref, value) {
|
|
49
|
+
// A Rivet `ref()` object is a signal: set it (calling it would only read it).
|
|
50
|
+
const signalRef = ref;
|
|
51
|
+
if (typeof ref === "function" && typeof signalRef.set === "function") {
|
|
52
|
+
signalRef.set(value ?? undefined);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (typeof ref === "function")
|
|
56
|
+
return ref(value);
|
|
57
|
+
if (ref != null)
|
|
58
|
+
ref.current = value;
|
|
59
|
+
}
|
|
60
|
+
/** Merges refs (callback or `{ current }` objects) into one callback ref; cleanups are chained. */
|
|
61
|
+
export function mergeRefs(...refs) {
|
|
62
|
+
if (refs.length === 1 && refs[0])
|
|
63
|
+
return refs[0];
|
|
64
|
+
return (value) => {
|
|
65
|
+
// One loop; the cleanups array exists only once a ref returns a cleanup (most refs return none).
|
|
66
|
+
let cleanups;
|
|
67
|
+
for (let i = 0; i < refs.length; i++) {
|
|
68
|
+
const cleanup = setRef(refs[i], value);
|
|
69
|
+
if (typeof cleanup === "function")
|
|
70
|
+
(cleanups ??= [])[i] = cleanup;
|
|
71
|
+
}
|
|
72
|
+
if (cleanups) {
|
|
73
|
+
const done = cleanups;
|
|
74
|
+
return () => {
|
|
75
|
+
for (let i = 0; i < refs.length; i++) {
|
|
76
|
+
const cleanup = done[i];
|
|
77
|
+
if (typeof cleanup === "function")
|
|
78
|
+
cleanup();
|
|
79
|
+
else
|
|
80
|
+
setRef(refs[i], null);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Merges props objects (react-aria `mergeProps`): `on[A-Z]*` handlers are chained, `class` /
|
|
88
|
+
* `className` strings joined, `id`s merged with `mergeIds`, `ref`s merged with `mergeRefs`; any other
|
|
89
|
+
* key: the last defined value wins.
|
|
90
|
+
*/
|
|
91
|
+
export function mergeProps(...args) {
|
|
92
|
+
for (let i = 0; i < args.length; i++)
|
|
93
|
+
if (hasLive(args[i]))
|
|
94
|
+
return live(args);
|
|
95
|
+
return mergeCopy(args);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The copy path of `mergeProps` for sources known to hold no getter (cdk `contextProps` after its own `hasLive`
|
|
99
|
+
* checks): no per-key descriptor scan. `intoFirst`: `args[0]` is a fresh bag the caller owns and reads no more —
|
|
100
|
+
* merged into in place (no copy of it).
|
|
101
|
+
* @internal cdk parts
|
|
102
|
+
*/
|
|
103
|
+
export function mergeCopy(args, intoFirst = false) {
|
|
104
|
+
const out = intoFirst ? args[0] : { ...args[0] };
|
|
105
|
+
for (let i = 1; i < args.length; i++) {
|
|
106
|
+
const bag = args[i];
|
|
107
|
+
if (!bag)
|
|
108
|
+
continue;
|
|
109
|
+
for (const key in bag) {
|
|
110
|
+
const a = out[key], b = bag[key];
|
|
111
|
+
if (typeof a === "function" && typeof b === "function" && key[0] === "o" && key[1] === "n" && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90)
|
|
112
|
+
out[key] = chain2(a, b);
|
|
113
|
+
else if ((key === "class" || key === "className" || key === "UNSAFE_className") && a != null && b != null)
|
|
114
|
+
out[key] = joinText(a, b);
|
|
115
|
+
else if (key === "id" && a && b)
|
|
116
|
+
out.id = mergeIds(a, b);
|
|
117
|
+
else if (key === "ref" && a && b)
|
|
118
|
+
out.ref = mergeRefs(a, b);
|
|
119
|
+
else
|
|
120
|
+
out[key] = b !== undefined ? b : a;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* `mergeProps(first, ...rest)` merged into `first` itself (no copy of it): `first` must be a fresh bag the caller owns
|
|
127
|
+
* and reads no more (a `liveOmit` / `globalDOMProps` result). Same result as `mergeProps`: a getter in any source (a
|
|
128
|
+
* live `first`: a forwarding part) takes the live path, which leaves `first` untouched.
|
|
129
|
+
* @internal cdk parts
|
|
130
|
+
*/
|
|
131
|
+
export function mergeInto(first, ...rest) {
|
|
132
|
+
if (hasLive(first))
|
|
133
|
+
return mergeProps(first, ...rest);
|
|
134
|
+
return mergeOwned(first, rest) ?? mergeProps(first, ...rest);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* `mergeProps(literal, ...rest)` for an RA bag `literal` written in place (data only by construction: not scanned,
|
|
138
|
+
* merged into), then `definedProps` on the static path. A getter in `rest` takes the live `mergeProps` path (all keys).
|
|
139
|
+
* @internal cdk parts
|
|
140
|
+
*/
|
|
141
|
+
export function mergeDefined(literal, ...rest) {
|
|
142
|
+
const out = mergeOwned(literal, rest);
|
|
143
|
+
return out ? definedProps(out) : mergeProps(literal, ...rest);
|
|
144
|
+
}
|
|
145
|
+
// The copy path into `first` when no bag of `rest` holds a getter, else null.
|
|
146
|
+
function mergeOwned(first, rest) {
|
|
147
|
+
for (let i = 0; i < rest.length; i++)
|
|
148
|
+
if (hasLive(rest[i]))
|
|
149
|
+
return null;
|
|
150
|
+
rest.unshift(first);
|
|
151
|
+
return mergeCopy(rest, true);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* A fresh copy of `bag` without its `undefined` entries (key order kept): for a data-only RA prop bag (no
|
|
155
|
+
* getters — they would be read) that is merged / spread next. RA bags list every optional attribute (`aria-*`, `name`,
|
|
156
|
+
* `form`, …), mostly unset; `undefined` never overrides in `mergeProps` and an unset spread key writes nothing, so the
|
|
157
|
+
* element gets the same attributes while every later copy / merge / spread walks only the set keys.
|
|
158
|
+
* @internal cdk parts
|
|
159
|
+
*/
|
|
160
|
+
export function definedProps(bag) {
|
|
161
|
+
const out = {};
|
|
162
|
+
for (const key in bag) {
|
|
163
|
+
const value = bag[key];
|
|
164
|
+
if (value !== undefined)
|
|
165
|
+
out[key] = value;
|
|
166
|
+
}
|
|
167
|
+
return out;
|
|
168
|
+
}
|
|
169
|
+
const isHandler = (key) => key[0] === "o" && key[1] === "n" && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90;
|
|
170
|
+
const isClass = (key) => key === "class" || key === "className" || key === "UNSAFE_className";
|
|
171
|
+
// Live merge: runtime `mergeProps(...sources, combined)` — `combined` holds the keys two or more sources combine
|
|
172
|
+
// (handlers, classes, id, ref); every other key forwards to its last defined source (getters unread).
|
|
173
|
+
function live(args) {
|
|
174
|
+
const sources = [];
|
|
175
|
+
for (const bag of args)
|
|
176
|
+
if (bag)
|
|
177
|
+
sources.push(bag);
|
|
178
|
+
const combined = {};
|
|
179
|
+
for (let s = 0; s < sources.length; s++) {
|
|
180
|
+
const source = sources[s];
|
|
181
|
+
for (const key of Object.keys(source)) {
|
|
182
|
+
// Category once per key; a key is handled at its first holder (no `seen` set, no `filter` copy per key).
|
|
183
|
+
const handler = isHandler(key), cls = !handler && isClass(key);
|
|
184
|
+
if (!(handler || cls || key === "id" || key === "ref"))
|
|
185
|
+
continue;
|
|
186
|
+
let earlier = false;
|
|
187
|
+
for (let j = 0; j < s; j++)
|
|
188
|
+
if (Object.hasOwn(sources[j], key)) {
|
|
189
|
+
earlier = true;
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
if (earlier)
|
|
193
|
+
continue;
|
|
194
|
+
let holders;
|
|
195
|
+
for (let j = s + 1; j < sources.length; j++)
|
|
196
|
+
if (Object.hasOwn(sources[j], key))
|
|
197
|
+
(holders ??= [source]).push(sources[j]);
|
|
198
|
+
if (holders === undefined)
|
|
199
|
+
continue;
|
|
200
|
+
let anyLive = false;
|
|
201
|
+
for (let j = 0; j < holders.length; j++)
|
|
202
|
+
if (Object.getOwnPropertyDescriptor(holders[j], key).get !== undefined) {
|
|
203
|
+
anyLive = true;
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
if (handler && anyLive)
|
|
207
|
+
combined[key] = liveChain(holders, key);
|
|
208
|
+
else if (cls && anyLive)
|
|
209
|
+
combined[key] = liveClass(holders, key);
|
|
210
|
+
else {
|
|
211
|
+
// Data holders (or id / ref): fold with the copy-path rules, reading each value once.
|
|
212
|
+
let a = holders[0][key];
|
|
213
|
+
for (let i = 1; i < holders.length; i++) {
|
|
214
|
+
const b = holders[i][key];
|
|
215
|
+
if (handler && typeof a === "function" && typeof b === "function")
|
|
216
|
+
a = chain2(a, b);
|
|
217
|
+
else if (cls && a != null && b != null)
|
|
218
|
+
a = joinText(a, b);
|
|
219
|
+
else if (key === "id" && a && b)
|
|
220
|
+
a = mergeIds(a, b);
|
|
221
|
+
else if (key === "ref" && a && b)
|
|
222
|
+
a = mergeRefs(a, b);
|
|
223
|
+
else
|
|
224
|
+
a = b !== undefined ? b : a;
|
|
225
|
+
}
|
|
226
|
+
if (a !== undefined)
|
|
227
|
+
combined[key] = a;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return mergeLive(...sources, combined);
|
|
232
|
+
}
|
|
233
|
+
/** Handlers of a live key: every holder's current function, in source order, at call time. */
|
|
234
|
+
function liveChain(holders, key) {
|
|
235
|
+
return (...args) => {
|
|
236
|
+
let result;
|
|
237
|
+
for (const holder of holders) {
|
|
238
|
+
const f = holder[key];
|
|
239
|
+
if (typeof f === "function")
|
|
240
|
+
result = f(...args);
|
|
241
|
+
}
|
|
242
|
+
return result;
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/** Classes of a live key, joined at read time (an accessor; render-prop class functions get the render props). */
|
|
246
|
+
function liveClass(holders, key) {
|
|
247
|
+
return (renderProps) => {
|
|
248
|
+
let out = "";
|
|
249
|
+
for (const holder of holders) {
|
|
250
|
+
const v = holder[key];
|
|
251
|
+
const t = text(typeof v === "function" ? v(renderProps) : v);
|
|
252
|
+
if (t !== "")
|
|
253
|
+
out = out === "" ? t : out + " " + t;
|
|
254
|
+
}
|
|
255
|
+
return out;
|
|
256
|
+
};
|
|
257
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type PointerType } from "./utils.js";
|
|
2
|
+
interface BaseMoveEvent {
|
|
3
|
+
pointerType: PointerType;
|
|
4
|
+
shiftKey: boolean;
|
|
5
|
+
ctrlKey: boolean;
|
|
6
|
+
metaKey: boolean;
|
|
7
|
+
altKey: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface MoveStartEvent extends BaseMoveEvent {
|
|
10
|
+
type: "movestart";
|
|
11
|
+
}
|
|
12
|
+
export interface MoveMoveEvent extends BaseMoveEvent {
|
|
13
|
+
type: "move";
|
|
14
|
+
/** Movement in X since the last event. */
|
|
15
|
+
deltaX: number;
|
|
16
|
+
/** Movement in Y since the last event. */
|
|
17
|
+
deltaY: number;
|
|
18
|
+
}
|
|
19
|
+
export interface MoveEndEvent extends BaseMoveEvent {
|
|
20
|
+
type: "moveend";
|
|
21
|
+
}
|
|
22
|
+
export type MoveEvent = MoveStartEvent | MoveMoveEvent | MoveEndEvent;
|
|
23
|
+
export interface MoveEvents {
|
|
24
|
+
onMoveStart?: (e: MoveStartEvent) => void;
|
|
25
|
+
onMove?: (e: MoveMoveEvent) => void;
|
|
26
|
+
onMoveEnd?: (e: MoveEndEvent) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface MoveResult {
|
|
29
|
+
moveProps: Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
interface Move {
|
|
32
|
+
props: MoveEvents;
|
|
33
|
+
state: {
|
|
34
|
+
didMove: boolean;
|
|
35
|
+
lastPosition: {
|
|
36
|
+
pageX: number;
|
|
37
|
+
pageY: number;
|
|
38
|
+
} | null;
|
|
39
|
+
id: number | null;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** @internal pointerdown handler of moveProps. */
|
|
43
|
+
export declare function movePointerDown(m: Move, e: PointerEvent): void;
|
|
44
|
+
/** @internal keydown handler of moveProps. */
|
|
45
|
+
export declare function moveKeyDown(m: Move, e: KeyboardEvent): void;
|
|
46
|
+
/** Move interactions (drag with mouse / touch / pen, arrow keys). Spread `moveProps` on the target. */
|
|
47
|
+
export declare function moveProps(props?: MoveEvents): MoveResult;
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// moveProps: drag-style movement with mouse, pen, touch (pointer events, page coordinates) and arrow
|
|
2
|
+
// keys; movestart only after the first non-zero delta; text selection disabled while moving.
|
|
3
|
+
// Ported from @react-aria/interactions useMove (react-spectrum), Apache-2.0, © Adobe.
|
|
4
|
+
//
|
|
5
|
+
// Rivet: resumable handlers; per-move state is a JSON object. No mouse/touch fallback (test-only in
|
|
6
|
+
// the original).
|
|
7
|
+
import { disableTextSelection, getEventTarget, getOwnerWindow, restoreTextSelection } from "./utils.js";
|
|
8
|
+
const modifiers = (e) => ({ shiftKey: e.shiftKey, metaKey: e.metaKey, ctrlKey: e.ctrlKey, altKey: e.altKey });
|
|
9
|
+
function move(m, e, pointerType, deltaX, deltaY) {
|
|
10
|
+
if (deltaX === 0 && deltaY === 0)
|
|
11
|
+
return;
|
|
12
|
+
if (!m.state.didMove) {
|
|
13
|
+
m.state.didMove = true;
|
|
14
|
+
m.props.onMoveStart?.({ type: "movestart", pointerType, ...modifiers(e) });
|
|
15
|
+
}
|
|
16
|
+
m.props.onMove?.({ type: "move", pointerType, deltaX, deltaY, ...modifiers(e) });
|
|
17
|
+
}
|
|
18
|
+
function end(m, e, pointerType) {
|
|
19
|
+
restoreTextSelection();
|
|
20
|
+
if (m.state.didMove)
|
|
21
|
+
m.props.onMoveEnd?.({ type: "moveend", pointerType, ...modifiers(e) });
|
|
22
|
+
}
|
|
23
|
+
function start(m) {
|
|
24
|
+
disableTextSelection();
|
|
25
|
+
m.state.didMove = false;
|
|
26
|
+
}
|
|
27
|
+
/** @internal pointerdown handler of moveProps. */
|
|
28
|
+
export function movePointerDown(m, e) {
|
|
29
|
+
const { state } = m;
|
|
30
|
+
if (e.button !== 0 || state.id != null)
|
|
31
|
+
return;
|
|
32
|
+
start(m);
|
|
33
|
+
e.stopPropagation();
|
|
34
|
+
e.preventDefault();
|
|
35
|
+
state.lastPosition = { pageX: e.pageX, pageY: e.pageY };
|
|
36
|
+
state.id = e.pointerId;
|
|
37
|
+
const win = getOwnerWindow(getEventTarget(e));
|
|
38
|
+
const onPointerMove = (event) => {
|
|
39
|
+
if (event.pointerId !== state.id)
|
|
40
|
+
return;
|
|
41
|
+
// movementX/Y is 0 on macOS Safari and DPR-scaled on Chrome Android: use page coordinates.
|
|
42
|
+
move(m, event, (event.pointerType || "mouse"), event.pageX - (state.lastPosition?.pageX ?? 0), event.pageY - (state.lastPosition?.pageY ?? 0));
|
|
43
|
+
state.lastPosition = { pageX: event.pageX, pageY: event.pageY };
|
|
44
|
+
};
|
|
45
|
+
const onPointerUp = (event) => {
|
|
46
|
+
if (event.pointerId !== state.id)
|
|
47
|
+
return;
|
|
48
|
+
end(m, event, (event.pointerType || "mouse"));
|
|
49
|
+
state.id = null;
|
|
50
|
+
win.removeEventListener("pointermove", onPointerMove, false);
|
|
51
|
+
win.removeEventListener("pointerup", onPointerUp, false);
|
|
52
|
+
win.removeEventListener("pointercancel", onPointerUp, false);
|
|
53
|
+
};
|
|
54
|
+
win.addEventListener("pointermove", onPointerMove, false);
|
|
55
|
+
win.addEventListener("pointerup", onPointerUp, false);
|
|
56
|
+
win.addEventListener("pointercancel", onPointerUp, false);
|
|
57
|
+
}
|
|
58
|
+
/** @internal keydown handler of moveProps. */
|
|
59
|
+
export function moveKeyDown(m, e) {
|
|
60
|
+
let delta = null;
|
|
61
|
+
switch (e.key) {
|
|
62
|
+
case "Left":
|
|
63
|
+
case "ArrowLeft":
|
|
64
|
+
delta = [-1, 0];
|
|
65
|
+
break;
|
|
66
|
+
case "Right":
|
|
67
|
+
case "ArrowRight":
|
|
68
|
+
delta = [1, 0];
|
|
69
|
+
break;
|
|
70
|
+
case "Up":
|
|
71
|
+
case "ArrowUp":
|
|
72
|
+
delta = [0, -1];
|
|
73
|
+
break;
|
|
74
|
+
case "Down":
|
|
75
|
+
case "ArrowDown":
|
|
76
|
+
delta = [0, 1];
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
if (!delta)
|
|
80
|
+
return;
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
e.stopPropagation();
|
|
83
|
+
start(m);
|
|
84
|
+
move(m, e, "keyboard", delta[0], delta[1]);
|
|
85
|
+
end(m, e, "keyboard");
|
|
86
|
+
}
|
|
87
|
+
/** Move interactions (drag with mouse / touch / pen, arrow keys). Spread `moveProps` on the target. */
|
|
88
|
+
export function moveProps(props = {}) {
|
|
89
|
+
const m = { props, state: { didMove: false, lastPosition: null, id: null } };
|
|
90
|
+
return {
|
|
91
|
+
moveProps: {
|
|
92
|
+
onPointerDown: (e) => movePointerDown(m, e),
|
|
93
|
+
onKeyDown: (e) => moveKeyDown(m, e),
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { type FocusableElement, type MaybeAccessor, type PointerType } from "./utils.js";
|
|
2
|
+
export type { PointerType } from "./utils.js";
|
|
3
|
+
export interface PressEvent {
|
|
4
|
+
/** The type of press event being fired. */
|
|
5
|
+
type: "pressstart" | "pressend" | "pressup" | "press";
|
|
6
|
+
/** The pointer type that triggered the press event. */
|
|
7
|
+
pointerType: PointerType;
|
|
8
|
+
/** The target element of the press event. */
|
|
9
|
+
target: Element;
|
|
10
|
+
shiftKey: boolean;
|
|
11
|
+
ctrlKey: boolean;
|
|
12
|
+
metaKey: boolean;
|
|
13
|
+
altKey: boolean;
|
|
14
|
+
/** X position relative to the target. */
|
|
15
|
+
x: number;
|
|
16
|
+
/** Y position relative to the target. */
|
|
17
|
+
y: number;
|
|
18
|
+
/** The key that triggered the press event (keyboard presses): Space vs Enter. */
|
|
19
|
+
key?: string;
|
|
20
|
+
/** Press events stop propagation by default; call this to let a parent handle the event too. */
|
|
21
|
+
continuePropagation(): void;
|
|
22
|
+
}
|
|
23
|
+
export interface PressEvents {
|
|
24
|
+
/** Called when the press is released over the target. */
|
|
25
|
+
onPress?: ((e: PressEvent) => void) | undefined;
|
|
26
|
+
/** Called when a press interaction starts. */
|
|
27
|
+
onPressStart?: ((e: PressEvent) => void) | undefined;
|
|
28
|
+
/** Called when a press interaction ends, over the target or when the pointer leaves it. */
|
|
29
|
+
onPressEnd?: ((e: PressEvent) => void) | undefined;
|
|
30
|
+
/** Called when the press state changes. */
|
|
31
|
+
onPressChange?: ((isPressed: boolean) => void) | undefined;
|
|
32
|
+
/** Called when a press is released over the target, whether or not it started there. */
|
|
33
|
+
onPressUp?: ((e: PressEvent) => void) | undefined;
|
|
34
|
+
/** Not recommended (use `onPress`): a click alias for compatibility with other libraries. */
|
|
35
|
+
onClick?: ((e: MouseEvent) => void) | undefined;
|
|
36
|
+
}
|
|
37
|
+
export interface PressProps extends PressEvents {
|
|
38
|
+
/** Controlled press state (e.g. an overlay it triggers is open). */
|
|
39
|
+
isPressed?: MaybeAccessor<boolean | undefined>;
|
|
40
|
+
/** Disable press events. */
|
|
41
|
+
isDisabled?: MaybeAccessor<boolean | undefined>;
|
|
42
|
+
/** Do not focus the target on press. */
|
|
43
|
+
preventFocusOnPress?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Cancel the press when the pointer leaves the target while pressed (default false: re-entering
|
|
46
|
+
* fires onPressStart again).
|
|
47
|
+
*/
|
|
48
|
+
shouldCancelOnPointerExit?: boolean;
|
|
49
|
+
/** Allow text selection on the pressable element. */
|
|
50
|
+
allowTextSelectionOnPress?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface PressHookProps extends PressProps {
|
|
53
|
+
/** Other attributes / handlers merged into `pressProps` (like the original's DOM props pass-through). */
|
|
54
|
+
[attribute: string]: unknown;
|
|
55
|
+
}
|
|
56
|
+
export interface PressResult {
|
|
57
|
+
/** Whether the target is currently pressed (signal accessor). */
|
|
58
|
+
isPressed: () => boolean;
|
|
59
|
+
/** Attributes and handlers to spread on the target element. */
|
|
60
|
+
pressProps: Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
interface PressState {
|
|
63
|
+
isPressed: boolean;
|
|
64
|
+
ignoreEmulatedMouseEvents: boolean;
|
|
65
|
+
didFirePressStart: boolean;
|
|
66
|
+
isTriggeringEvent: boolean;
|
|
67
|
+
activePointerId: number | null;
|
|
68
|
+
target: FocusableElement | null;
|
|
69
|
+
isOverTarget: boolean;
|
|
70
|
+
pointerType: PointerType | null;
|
|
71
|
+
metaKeyEvents: Map<string, KeyboardEvent> | null;
|
|
72
|
+
/** Browser-only: cleanup functions and global listeners of the current press. */
|
|
73
|
+
disposables: (() => void)[];
|
|
74
|
+
globals: (() => void)[];
|
|
75
|
+
/** `timeStamp` of the last click seen (a replayed cold keydown older than it starts nothing). */
|
|
76
|
+
lastClick: number;
|
|
77
|
+
}
|
|
78
|
+
/** A press instance: options, transient state and the pressed sink (a signal, or `data-pressed` on the element). */
|
|
79
|
+
export interface Press {
|
|
80
|
+
props: PressHookProps;
|
|
81
|
+
state: PressState;
|
|
82
|
+
pressed: {
|
|
83
|
+
set(value: boolean): unknown;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Element listeners a pointer press binds on its target while pressed (`PRESS_TRACK_*` bits): `dragstart`
|
|
87
|
+
* (cancel) and `pointerenter` / `pointerleave` (exit / re-entry). RA binds them on the element for its whole
|
|
88
|
+
* life; they act only during a pointer press, so Rivet binds them at pointerdown and drops them when it ends.
|
|
89
|
+
*/
|
|
90
|
+
track?: number;
|
|
91
|
+
}
|
|
92
|
+
/** `Press.track`: bind `dragstart` while pressed. */
|
|
93
|
+
export declare const PRESS_TRACK_DRAG = 1;
|
|
94
|
+
/** `Press.track`: bind `pointerenter` / `pointerleave` while pressed. */
|
|
95
|
+
export declare const PRESS_TRACK_EXIT = 2;
|
|
96
|
+
/** Fresh transient press state (browser-only, never serialized). */
|
|
97
|
+
export declare function createPressState(): PressState;
|
|
98
|
+
/** Context through which a parent (e.g. a trigger wrapper) passes press props to a child's usePress. */
|
|
99
|
+
export declare const PressResponderContext: import("@rivetjs/reactivity").Context<(PressProps & {
|
|
100
|
+
register?: () => void;
|
|
101
|
+
}) | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Release a press if the hook became disabled while pressed (the original's `isDisabled` effect).
|
|
104
|
+
* Rivet reads `isDisabled` at event time; call this when a controlled disabled signal turns true
|
|
105
|
+
* during a press.
|
|
106
|
+
*/
|
|
107
|
+
export declare function cancelPress(press: Press): void;
|
|
108
|
+
/** @internal keydown handler of pressProps. */
|
|
109
|
+
export declare function pressKeyDown(press: Press, e: KeyboardEvent): void;
|
|
110
|
+
/** @internal click handler of pressProps (virtual clicks and the end of pointer presses). */
|
|
111
|
+
export declare function pressClick(press: Press, e: MouseEvent): void;
|
|
112
|
+
/** @internal pointerdown handler of pressProps. */
|
|
113
|
+
export declare function pressPointerDown(press: Press, e: PointerEvent): void;
|
|
114
|
+
/** @internal mousedown handler of pressProps (focus prevention). */
|
|
115
|
+
export declare function pressMouseDown(press: Press, e: MouseEvent): void;
|
|
116
|
+
/** @internal pointerup handler on the target of pressProps. */
|
|
117
|
+
export declare function pressPointerUp(press: Press, e: PointerEvent): void;
|
|
118
|
+
/** @internal pointerenter handler of a press (bound on the target while pressed: `PRESS_TRACK_EXIT`). */
|
|
119
|
+
export declare function pressPointerEnter(press: Press, e: PointerEvent): void;
|
|
120
|
+
/** @internal pointerleave handler of a press (bound on the target while pressed: `PRESS_TRACK_EXIT`). */
|
|
121
|
+
export declare function pressPointerLeave(press: Press, e: PointerEvent): void;
|
|
122
|
+
/** @internal dragstart handler of a press (bound on the target while pressed: `PRESS_TRACK_DRAG`; Safari fires no pointercancel when a drag starts). */
|
|
123
|
+
export declare function pressDragStart(press: Press, e: DragEvent): void;
|
|
124
|
+
/**
|
|
125
|
+
* Handle press interactions across mouse, touch, keyboard and screen readers. Spread `pressProps`
|
|
126
|
+
* on the target (`<div {...pressProps}>`); `isPressed()` reads the press state. Options are read at
|
|
127
|
+
* event time, so `isDisabled` / `isPressed` may be signals.
|
|
128
|
+
*/
|
|
129
|
+
export declare function pressProps(props?: PressHookProps): PressResult;
|