@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,82 @@
|
|
|
1
|
+
// Ported from React Aria Components (PreviewTrigger.tsx), Apache-2.0, © Adobe.
|
|
2
|
+
// A PreviewTrigger displays a popover with a preview of a link's destination (or any rich content) on
|
|
3
|
+
// hover, keyboard focus, or touch long press: `<PreviewTrigger><Link/><Popover>…</Popover></PreviewTrigger>`.
|
|
4
|
+
// Unlike a tooltip, the popover may contain interactive content (Tab from the trigger moves into it).
|
|
5
|
+
// Rivet:
|
|
6
|
+
// - state: `createTooltipTriggerState({ delay: 600, closeDelay: 200 })` (shared warmup with tooltips),
|
|
7
|
+
// provided as `OverlayTriggerStateContext`; the Popover gets `PopoverContext` `{ trigger:
|
|
8
|
+
// "PreviewTrigger", triggerRef, ref, isNonModal: true, shouldSkipAnimation, id, onFocusWithin,
|
|
9
|
+
// onBlurWithin }` (RAC).
|
|
10
|
+
// - the trigger props reach the child (a cdk Link / Button, or a custom element in `<Focusable>`) through
|
|
11
|
+
// FocusableProvider (RAC); `aria-haspopup="dialog"` is server-rendered, `aria-expanded` /
|
|
12
|
+
// `aria-controls` / `aria-describedby` are set on the trigger while the preview is open; the touch long
|
|
13
|
+
// press and the FocusScope restore listener are installed on the trigger at its first pointerenter /
|
|
14
|
+
// focus (delegated useLongPress / RA `useEvent(triggerRef, …)`).
|
|
15
|
+
// - RA's effects (safe area, focus after long press, ARIA) run from a client effect in an own binding
|
|
16
|
+
// site (`span[data-rv-overlay-anchor]`) only while open — nothing at load.
|
|
17
|
+
// Not yet supported: the long press accessibility description ("Long press to open preview").
|
|
18
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
19
|
+
import { Show, clientEffect, ref as createRef } from "@rivetjs/runtime/dom";
|
|
20
|
+
import { FocusableProvider } from "../focus/focusable.jsx";
|
|
21
|
+
import { Provider } from "../slots/index.jsx";
|
|
22
|
+
import { idSignal } from "../utils/id.js";
|
|
23
|
+
import { OverlayTriggerStateContext, PopoverContext } from "../overlay/contexts.js";
|
|
24
|
+
import { createTooltipTriggerState } from "../state/tooltip.js";
|
|
25
|
+
import { attachPreviewTrigger, previewTriggerBlur, previewTriggerCheckClose, previewTriggerFocus, previewTriggerKeepOpen, previewTriggerKeyDown, previewTriggerPointerEnter, previewTriggerPointerLeave, } from "./behaviour.jsx";
|
|
26
|
+
import { liveOptions } from "../utils/live.jsx";
|
|
27
|
+
/** A PreviewTrigger displays a popover preview on hover, focus or long press of its trigger. */
|
|
28
|
+
export function PreviewTrigger(props) {
|
|
29
|
+
const state = createTooltipTriggerState({
|
|
30
|
+
...liveOptions(props, [], ["isOpen"]),
|
|
31
|
+
delay: props.delay ?? 600,
|
|
32
|
+
closeDelay: props.closeDelay ?? 200,
|
|
33
|
+
});
|
|
34
|
+
const triggerRef = createRef();
|
|
35
|
+
const popoverRef = createRef();
|
|
36
|
+
// RA mergeIds: a user `id` on the Popover replaces the generated one (the signal travels as `idRef`).
|
|
37
|
+
const popoverIdRef = idSignal();
|
|
38
|
+
const popoverId = untrack(popoverIdRef);
|
|
39
|
+
const isDisabled = props.isDisabled;
|
|
40
|
+
const options = {
|
|
41
|
+
isDisabled,
|
|
42
|
+
triggerRef: () => triggerRef(),
|
|
43
|
+
popoverRef: () => popoverRef(),
|
|
44
|
+
popoverId,
|
|
45
|
+
};
|
|
46
|
+
const children = props.children;
|
|
47
|
+
const popover = {
|
|
48
|
+
trigger: "PreviewTrigger",
|
|
49
|
+
triggerRef,
|
|
50
|
+
ref: popoverRef,
|
|
51
|
+
isNonModal: true,
|
|
52
|
+
shouldSkipAnimation: () => state.shouldSkipAnimation(),
|
|
53
|
+
id: popoverId,
|
|
54
|
+
idRef: popoverIdRef,
|
|
55
|
+
onFocusWithin: () => previewTriggerKeepOpen(state),
|
|
56
|
+
onBlurWithin: () => previewTriggerCheckClose(state, options),
|
|
57
|
+
};
|
|
58
|
+
return (<>
|
|
59
|
+
<Provider values={[
|
|
60
|
+
[OverlayTriggerStateContext, state],
|
|
61
|
+
[PopoverContext, popover],
|
|
62
|
+
]}>
|
|
63
|
+
{() => (<FocusableProvider ref={triggerRef} aria-haspopup="dialog" aria-expanded={() => state.isOpen()} aria-controls={() => (state.isOpen() ? popoverIdRef() : undefined)} aria-describedby={() => (state.isOpen() ? popoverIdRef() : undefined)} onPointerEnter={(event) => previewTriggerPointerEnter(event, options, state)} onPointerLeave={(event) => previewTriggerPointerLeave(event, options, state)} onFocus={(event) => previewTriggerFocus(event, options, state)} onBlur={(event) => previewTriggerBlur(event, options, state)} onKeyDown={(event) => previewTriggerKeyDown(event, options, state)}>
|
|
64
|
+
{children}
|
|
65
|
+
</FocusableProvider>)}
|
|
66
|
+
</Provider>
|
|
67
|
+
<span data-rv-overlay-anchor="" style={{ display: "contents" }}>
|
|
68
|
+
<Show when={() => state.isOpen()}>{() => <PreviewEffects state={state} options={options}/>}</Show>
|
|
69
|
+
</span>
|
|
70
|
+
</>);
|
|
71
|
+
}
|
|
72
|
+
/** RA usePreviewTrigger's effects while open (safe area, focus after long press, the trigger's ARIA). */
|
|
73
|
+
function PreviewEffects(props) {
|
|
74
|
+
const { state, options } = props;
|
|
75
|
+
clientEffect(() => {
|
|
76
|
+
// Wait for the popover (RA: effects after the popover rendered).
|
|
77
|
+
if (!options.popoverRef || !(typeof options.popoverRef === "function" ? options.popoverRef() : options.popoverRef))
|
|
78
|
+
return;
|
|
79
|
+
return attachPreviewTrigger(state, options);
|
|
80
|
+
});
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type NumberFormatOptions } from "../number/NumberFormatter.js";
|
|
2
|
+
import { type MaybeAccessor } from "../interactions/utils.js";
|
|
3
|
+
export interface ProgressBarBaseProps {
|
|
4
|
+
/**
|
|
5
|
+
* The current value (controlled; a number or an accessor).
|
|
6
|
+
*
|
|
7
|
+
* @default 0
|
|
8
|
+
*/
|
|
9
|
+
value?: MaybeAccessor<number | undefined>;
|
|
10
|
+
/**
|
|
11
|
+
* The smallest value allowed for the input.
|
|
12
|
+
*
|
|
13
|
+
* @default 0
|
|
14
|
+
*/
|
|
15
|
+
minValue?: MaybeAccessor<number | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* The largest value allowed for the input.
|
|
18
|
+
*
|
|
19
|
+
* @default 100
|
|
20
|
+
*/
|
|
21
|
+
maxValue?: MaybeAccessor<number | undefined>;
|
|
22
|
+
/** The content to display as the label (here: whether a visible label renders). */
|
|
23
|
+
label?: unknown;
|
|
24
|
+
/**
|
|
25
|
+
* The display format of the value label (live: a value or an accessor, read inside `aria-valuetext`).
|
|
26
|
+
*
|
|
27
|
+
* @default { style: 'percent' }
|
|
28
|
+
*/
|
|
29
|
+
formatOptions?: MaybeAccessor<NumberFormatOptions | undefined>;
|
|
30
|
+
/** The content to display as the value's label (e.g. 1 of 4). */
|
|
31
|
+
valueLabel?: MaybeAccessor<string | undefined>;
|
|
32
|
+
}
|
|
33
|
+
export interface AriaProgressBarBaseProps extends ProgressBarBaseProps {
|
|
34
|
+
id?: string;
|
|
35
|
+
"aria-label"?: string;
|
|
36
|
+
"aria-labelledby"?: string;
|
|
37
|
+
"aria-describedby"?: string;
|
|
38
|
+
"aria-details"?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ProgressBarProps extends ProgressBarBaseProps {
|
|
41
|
+
/** Whether presentation is indeterminate when progress isn't known. */
|
|
42
|
+
isIndeterminate?: MaybeAccessor<boolean | undefined>;
|
|
43
|
+
}
|
|
44
|
+
export interface AriaProgressBarProps extends ProgressBarProps, AriaProgressBarBaseProps {
|
|
45
|
+
}
|
|
46
|
+
export interface ProgressBarAttrs {
|
|
47
|
+
id: string;
|
|
48
|
+
role: string;
|
|
49
|
+
"aria-label"?: string;
|
|
50
|
+
"aria-labelledby"?: string;
|
|
51
|
+
"aria-describedby"?: string;
|
|
52
|
+
"aria-details"?: string;
|
|
53
|
+
/** Accessor: the clamped value, `undefined` while indeterminate. */
|
|
54
|
+
"aria-valuenow": () => number | undefined;
|
|
55
|
+
"aria-valuemin": () => number;
|
|
56
|
+
"aria-valuemax": () => number;
|
|
57
|
+
/** Accessor: `valueLabel` or the formatted value, `undefined` while indeterminate. */
|
|
58
|
+
"aria-valuetext": () => string | undefined;
|
|
59
|
+
}
|
|
60
|
+
export interface ProgressBarAria {
|
|
61
|
+
/** Props for the progress bar container element. */
|
|
62
|
+
progressBarProps: ProgressBarAttrs;
|
|
63
|
+
/** Props for the progress bar's visual label element (if any). */
|
|
64
|
+
labelProps: {
|
|
65
|
+
id?: string;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Provides the accessibility implementation for a progress bar component.
|
|
70
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
71
|
+
* over time.
|
|
72
|
+
*/
|
|
73
|
+
export declare function progressBarProps(props: AriaProgressBarProps, locale?: string): ProgressBarAria;
|
|
74
|
+
/** RAC ProgressBar / Meter render value: the value as a percentage (0–100) of the range; 0 for an empty range. */
|
|
75
|
+
export declare function percentageOf(value?: number, minValue?: number, maxValue?: number): number;
|
|
76
|
+
/** `percentageOf` over `MaybeAccessor` props (tracked when they are accessors). */
|
|
77
|
+
export declare function percentageOfProps(props: ProgressBarBaseProps): number;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// Ported from react-aria `useProgressBar` (packages/react-aria/src/progress/useProgressBar.ts), Apache-2.0, © Adobe.
|
|
2
|
+
// Rivet:
|
|
3
|
+
// - `progressBarProps(props, locale?)` (RA `useProgressBar`) returns `{ progressBarProps, labelProps }`; call it
|
|
4
|
+
// while rendering (it reads the locale context and creates ids, like the hook).
|
|
5
|
+
// - value props are `MaybeAccessor`s (a number or `() => number`), and the value-dependent attributes of the bag
|
|
6
|
+
// (`aria-valuenow`, `aria-valuemin`, `aria-valuemax`, `aria-valuetext`) are accessors: read them inside bindings
|
|
7
|
+
// so a changing value updates the attributes only (accessor rule). `.tsx`: the accessors are resumable closures.
|
|
8
|
+
// - The visual label (`label`) only decides whether a label id is created (RA `useLabel` with
|
|
9
|
+
// `labelElementType: 'span'`); RAC passes `createSlot`'s "a Label rendered" flag.
|
|
10
|
+
// - `useNumberFormatter` → `NumberFormatter` (`@rivetjs/cdk/number`, cached Intl formatter per locale + options),
|
|
11
|
+
// created inside the `aria-valuetext` accessor so the accessor only captures plain data (locale, options).
|
|
12
|
+
import { clamp } from "../utils/index.js";
|
|
13
|
+
import { NumberFormatter } from "../number/NumberFormatter.js";
|
|
14
|
+
import { useLocale } from "../i18n/index.js";
|
|
15
|
+
import { labelAria } from "../label/behaviour.js";
|
|
16
|
+
import { read } from "../interactions/utils.js";
|
|
17
|
+
/** The resolved range of `props`: `[value (clamped), minValue, maxValue]`. */
|
|
18
|
+
function rangeOf(props) {
|
|
19
|
+
const minValue = read(props.minValue) ?? 0;
|
|
20
|
+
const maxValue = read(props.maxValue) ?? 100;
|
|
21
|
+
return [clamp(read(props.value) ?? 0, minValue, maxValue), minValue, maxValue];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Provides the accessibility implementation for a progress bar component.
|
|
25
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
26
|
+
* over time.
|
|
27
|
+
*/
|
|
28
|
+
export function progressBarProps(props, locale = useLocale().locale) {
|
|
29
|
+
const { labelProps, fieldProps } = labelAria({
|
|
30
|
+
id: props.id,
|
|
31
|
+
label: props.label,
|
|
32
|
+
"aria-label": props["aria-label"],
|
|
33
|
+
"aria-labelledby": props["aria-labelledby"],
|
|
34
|
+
// Progress bar is not an HTML input element so it shouldn't be labeled by a <label> element.
|
|
35
|
+
labelElementType: "span",
|
|
36
|
+
});
|
|
37
|
+
const isIndeterminate = () => !!read(props.isIndeterminate);
|
|
38
|
+
const valueText = () => {
|
|
39
|
+
if (isIndeterminate())
|
|
40
|
+
return undefined;
|
|
41
|
+
const valueLabel = read(props.valueLabel);
|
|
42
|
+
if (valueLabel)
|
|
43
|
+
return valueLabel;
|
|
44
|
+
const [value, minValue, maxValue] = rangeOf(props);
|
|
45
|
+
const range = maxValue - minValue;
|
|
46
|
+
const percentage = range === 0 ? 0 : (value - minValue) / range;
|
|
47
|
+
const formatOptions = read(props.formatOptions) ?? { style: "percent" };
|
|
48
|
+
// Created per read (the Intl formatter is cached per locale + options): a captured NumberFormatter
|
|
49
|
+
// instance would not serialize into the resumable accessor.
|
|
50
|
+
return new NumberFormatter(locale, formatOptions).format(formatOptions.style === "percent" ? percentage : value);
|
|
51
|
+
};
|
|
52
|
+
const barProps = {
|
|
53
|
+
...fieldProps,
|
|
54
|
+
role: "progressbar",
|
|
55
|
+
"aria-valuenow": () => (isIndeterminate() ? undefined : rangeOf(props)[0]),
|
|
56
|
+
"aria-valuemin": () => read(props.minValue) ?? 0,
|
|
57
|
+
"aria-valuemax": () => read(props.maxValue) ?? 100,
|
|
58
|
+
"aria-valuetext": valueText,
|
|
59
|
+
};
|
|
60
|
+
if (props["aria-describedby"])
|
|
61
|
+
barProps["aria-describedby"] = props["aria-describedby"];
|
|
62
|
+
if (props["aria-details"])
|
|
63
|
+
barProps["aria-details"] = props["aria-details"];
|
|
64
|
+
return { progressBarProps: barProps, labelProps: { id: labelProps.id } };
|
|
65
|
+
}
|
|
66
|
+
/** RAC ProgressBar / Meter render value: the value as a percentage (0–100) of the range; 0 for an empty range. */
|
|
67
|
+
export function percentageOf(value = 0, minValue = 0, maxValue = 100) {
|
|
68
|
+
value = clamp(value, minValue, maxValue);
|
|
69
|
+
const range = maxValue - minValue;
|
|
70
|
+
return range === 0 ? 0 : ((value - minValue) / range) * 100;
|
|
71
|
+
}
|
|
72
|
+
/** `percentageOf` over `MaybeAccessor` props (tracked when they are accessors). */
|
|
73
|
+
export function percentageOfProps(props) {
|
|
74
|
+
return percentageOf(read(props.value) ?? 0, read(props.minValue) ?? 0, read(props.maxValue) ?? 100);
|
|
75
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ContextValue } from "../slots/index.jsx";
|
|
2
|
+
import type { ProgressBarProps } from "./index.jsx";
|
|
3
|
+
/** RAC `ProgressBarContext` (Button provides `{ id }` to its pending ProgressBar). */
|
|
4
|
+
export declare const ProgressBarContext: import("@rivetjs/reactivity").Context<ContextValue<ProgressBarProps, HTMLDivElement>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// RAC `ProgressBarContext` (react-aria-components ProgressBar.tsx), Apache-2.0, © Adobe. Its own module so a Button
|
|
2
|
+
// (which provides `{ id }` to its pending ProgressBar) does not load the ProgressBar part, its behaviour and the
|
|
3
|
+
// number formatter on pages without a ProgressBar.
|
|
4
|
+
import { createContext } from "@rivetjs/reactivity";
|
|
5
|
+
import { resumableContext } from "../slots/index.jsx";
|
|
6
|
+
/** RAC `ProgressBarContext` (Button provides `{ id }` to its pending ProgressBar). */
|
|
7
|
+
export const ProgressBarContext = resumableContext(createContext(null, { id: "rv-progress-bar" }));
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type DOMRenderProps } from "../utils/render.js";
|
|
2
|
+
import { type GlobalDOMAttributes } from "../utils/dom-props.js";
|
|
3
|
+
import { type RefValue, type ClassNameOrFunction, type RenderProps, type SlotProps } from "../slots/index.jsx";
|
|
4
|
+
import { ProgressBarContext } from "./context.js";
|
|
5
|
+
import { type AriaProgressBarProps } from "./behaviour.jsx";
|
|
6
|
+
export { progressBarProps, percentageOf, type AriaProgressBarProps, type ProgressBarAria } from "./behaviour.jsx";
|
|
7
|
+
export interface ProgressBarRenderProps {
|
|
8
|
+
/** The value as a percentage between the minimum and maximum (undefined while indeterminate). */
|
|
9
|
+
percentage: () => number | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* A formatted version of the value.
|
|
12
|
+
*
|
|
13
|
+
* @selector [aria-valuetext]
|
|
14
|
+
*/
|
|
15
|
+
valueText: () => string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the progress bar is indeterminate.
|
|
18
|
+
*
|
|
19
|
+
* @selector :not([aria-valuenow])
|
|
20
|
+
*/
|
|
21
|
+
isIndeterminate: () => boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface ProgressBarProps extends Omit<AriaProgressBarProps, "label">, RenderProps<ProgressBarRenderProps>, DOMRenderProps<"div", ProgressBarRenderProps>, SlotProps, Omit<GlobalDOMAttributes<HTMLDivElement>, "style"> {
|
|
24
|
+
ref?: RefValue<HTMLDivElement>;
|
|
25
|
+
/**
|
|
26
|
+
* The CSS class for the element. A function may be provided to compute the class based on component state.
|
|
27
|
+
*
|
|
28
|
+
* @default 'rv-ProgressBar'
|
|
29
|
+
*/
|
|
30
|
+
class?: ClassNameOrFunction<ProgressBarRenderProps>;
|
|
31
|
+
}
|
|
32
|
+
/** RAC `ProgressBarContext`: `./context.ts` (Button imports it from there). */
|
|
33
|
+
export { ProgressBarContext };
|
|
34
|
+
/**
|
|
35
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
36
|
+
* over time.
|
|
37
|
+
*/
|
|
38
|
+
export declare function ProgressBar(props: ProgressBarProps): import("@rivetjs/runtime/jsx-runtime").CompiledElement;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// Ported from react-aria-components `ProgressBar` (packages/react-aria-components/src/ProgressBar.tsx), Apache-2.0, © Adobe.
|
|
2
|
+
// Progress bars show either determinate or indeterminate progress of an operation over time.
|
|
3
|
+
// Rivet:
|
|
4
|
+
// - render props are accessors (`{({ percentage, valueText }) => <div style={{ width: percentage() + "%" }} />}`);
|
|
5
|
+
// `class` / `style` may be functions of them (RAC `className` → `class`).
|
|
6
|
+
// - the label: `<Label>` inside gets `{ id, elementType: "span" }` from `LabelContext`; `aria-labelledby` points
|
|
7
|
+
// at it while it is attached (`createSlot`: server render assumes it is, when no `aria-label` / `aria-labelledby`).
|
|
8
|
+
// - `value` / `minValue` / `maxValue` / `valueLabel` / `isIndeterminate` accept accessors (`value={() => progress()}`):
|
|
9
|
+
// the aria attributes and render props update in their bindings (the component runs once).
|
|
10
|
+
// `render` (RAC DOMRenderProps): given, the attributes object (reactive entries are accessors) goes to `render(attrs, renderProps)` instead of the default element.
|
|
11
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
12
|
+
import { hasLive, liveOptions, liveView } from "../utils/live.jsx";
|
|
13
|
+
import { Provider } from "@rivetjs/runtime/dom";
|
|
14
|
+
import {} from "../utils/render.js";
|
|
15
|
+
import { globalDOMProps } from "../utils/dom-props.js";
|
|
16
|
+
import { contextProps, createSlot, renderPropsOf, } from "../slots/index.jsx";
|
|
17
|
+
import { LabelContext } from "../label/index.jsx";
|
|
18
|
+
import { read } from "../interactions/utils.js";
|
|
19
|
+
import { ProgressBarContext } from "./context.js";
|
|
20
|
+
import { percentageOfProps, progressBarProps } from "./behaviour.jsx";
|
|
21
|
+
export { progressBarProps, percentageOf } from "./behaviour.jsx";
|
|
22
|
+
const OWNED = ["style", "render"];
|
|
23
|
+
/** RAC `ProgressBarContext`: `./context.ts` (Button imports it from there). */
|
|
24
|
+
export { ProgressBarContext };
|
|
25
|
+
/**
|
|
26
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
27
|
+
* over time.
|
|
28
|
+
*/
|
|
29
|
+
export function ProgressBar(props) {
|
|
30
|
+
// Live props (P5): the value props become accessors (the bag reads them with `read` in bindings), class / style /
|
|
31
|
+
// children from a live view; the rest of the body is read once (untracked).
|
|
32
|
+
return untrack(() => progressBar(props));
|
|
33
|
+
}
|
|
34
|
+
const LIVE_KEYS = ["value", "minValue", "maxValue", "valueLabel", "isIndeterminate", "formatOptions"];
|
|
35
|
+
function progressBar(props) {
|
|
36
|
+
const [ctxMerged, ref] = contextProps(props, props.ref, ProgressBarContext);
|
|
37
|
+
const merged = hasLive(ctxMerged) ? liveOptions(ctxMerged, LIVE_KEYS) : ctxMerged;
|
|
38
|
+
const indeterminate = merged.isIndeterminate;
|
|
39
|
+
const isIndeterminate = () => !!read(indeterminate);
|
|
40
|
+
const initialLabel = !merged["aria-label"] && !merged["aria-labelledby"];
|
|
41
|
+
const [labelRef, hasLabel] = createSlot(initialLabel);
|
|
42
|
+
// `children` left out: the bag's accessors (`aria-valuetext`, a render prop) must not capture them (resumed pages).
|
|
43
|
+
const { progressBarProps: barProps, labelProps } = progressBarProps({ ...merged, children: undefined, label: initialLabel });
|
|
44
|
+
const labelledBy = barProps["aria-labelledby"];
|
|
45
|
+
// Calculate the width of the progress bar as a percentage
|
|
46
|
+
// A narrow view of the range keys (not `merged`: the render props' `percentage` would capture the children too).
|
|
47
|
+
const range = liveView(merged, ["value", "minValue", "maxValue"]);
|
|
48
|
+
const percentage = () => (isIndeterminate() ? undefined : percentageOfProps(range));
|
|
49
|
+
const valueText = barProps["aria-valuetext"];
|
|
50
|
+
const values = { percentage, valueText, isIndeterminate };
|
|
51
|
+
const rp = renderPropsOf(merged, { defaultClassName: "rv-ProgressBar", values });
|
|
52
|
+
const dom = globalDOMProps(merged, OWNED);
|
|
53
|
+
const slot = merged.slot || undefined;
|
|
54
|
+
const { id, role } = barProps;
|
|
55
|
+
const ariaLabel = barProps["aria-label"];
|
|
56
|
+
const describedBy = barProps["aria-describedby"];
|
|
57
|
+
const details = barProps["aria-details"];
|
|
58
|
+
const valueNow = barProps["aria-valuenow"];
|
|
59
|
+
const valueMin = barProps["aria-valuemin"];
|
|
60
|
+
const valueMax = barProps["aria-valuemax"];
|
|
61
|
+
const labelValue = { id: labelProps.id, ref: labelRef, elementType: "span" };
|
|
62
|
+
if (merged.render) {
|
|
63
|
+
const attrs = {
|
|
64
|
+
...dom,
|
|
65
|
+
ref: ref,
|
|
66
|
+
id,
|
|
67
|
+
role,
|
|
68
|
+
class: () => rp.class(),
|
|
69
|
+
style: () => rp.style(),
|
|
70
|
+
slot,
|
|
71
|
+
"aria-label": ariaLabel,
|
|
72
|
+
"aria-labelledby": () => (initialLabel ? (hasLabel() ? labelledBy : undefined) : labelledBy),
|
|
73
|
+
"aria-describedby": describedBy,
|
|
74
|
+
"aria-details": details,
|
|
75
|
+
"aria-valuenow": valueNow,
|
|
76
|
+
"aria-valuemin": valueMin,
|
|
77
|
+
"aria-valuemax": valueMax,
|
|
78
|
+
"aria-valuetext": valueText,
|
|
79
|
+
children: () => (<Provider token={LabelContext} value={labelValue}>
|
|
80
|
+
{rp.children()}
|
|
81
|
+
</Provider>),
|
|
82
|
+
};
|
|
83
|
+
return merged.render(attrs, values);
|
|
84
|
+
}
|
|
85
|
+
return (<div {...dom} ref={ref} id={id} role={role} class={rp.class()} style={rp.style()} slot={slot} aria-label={ariaLabel} aria-labelledby={initialLabel ? (hasLabel() ? labelledBy : undefined) : labelledBy} aria-describedby={describedBy} aria-details={details} aria-valuenow={valueNow()} aria-valuemin={valueMin()} aria-valuemax={valueMax()} aria-valuetext={valueText()}>
|
|
86
|
+
<Provider token={LabelContext} value={labelValue}>
|
|
87
|
+
{rp.children()}
|
|
88
|
+
</Provider>
|
|
89
|
+
</div>);
|
|
90
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { setSelectedValue, type RadioGroupState } from "../state/radio-group.js";
|
|
2
|
+
/** Native validation of the group (RA useRadio `useFormValidation` on every radio). */
|
|
3
|
+
export declare function syncRadioValidity(state: RadioGroupState, input: HTMLInputElement): void;
|
|
4
|
+
/** `change` on a radio (`value` = the radio value). Read-only: restore the selected radio. */
|
|
5
|
+
export declare function radioChange(state: RadioGroupState, value: string, event: Event): void;
|
|
6
|
+
export declare function radioFocus(state: RadioGroupState, value: string, event: Event): void;
|
|
7
|
+
/** RA useRadioGroup `onBlur` (focus-within): forget the last focused radio when focus leaves the group. */
|
|
8
|
+
export declare function radioGroupFocusOut(state: RadioGroupState, event: FocusEvent): void;
|
|
9
|
+
export declare function radioInvalid(state: RadioGroupState, event: Event): void;
|
|
10
|
+
/** Programmatic selection (RA `state.setSelectedValue`). */
|
|
11
|
+
export { setSelectedValue };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Ported from react-aria `useRadioGroup` + `useRadio` (packages/react-aria/src/radio/useRadioGroup.ts,
|
|
2
|
+
// src/radio/useRadio.ts), Apache-2.0, © Adobe.
|
|
3
|
+
// Rivet: native radios sharing a name give arrow-key navigation (wrap, skip disabled, select on arrow),
|
|
4
|
+
// the single tab stop and form submission without JS; these handlers keep the state, read-only and
|
|
5
|
+
// validation in step.
|
|
6
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
7
|
+
import { DEFAULT_VALIDATION_RESULT, clearServerErrors, commitValidation, realtimeValidation, resetValidation, updateValidation, } from "../state/form-validation.js";
|
|
8
|
+
import { nativeValidity, onFormReset, validationInvalid } from "../form/behaviour.js";
|
|
9
|
+
import { isRadioGroupDisabled, isRadioGroupReadOnly, setLastFocusedValue, setSelectedValue } from "../state/radio-group.js";
|
|
10
|
+
const radios = (input) => {
|
|
11
|
+
const group = input.closest('[role="radiogroup"]');
|
|
12
|
+
return group ? [...group.querySelectorAll('input[type="radio"]')] : [input];
|
|
13
|
+
};
|
|
14
|
+
/** Native validation of the group (RA useRadio `useFormValidation` on every radio). */
|
|
15
|
+
export function syncRadioValidity(state, input) {
|
|
16
|
+
const { validation } = state;
|
|
17
|
+
onFormReset(state, input, () => {
|
|
18
|
+
if (!state.fixed)
|
|
19
|
+
state.selectedValue.set(state.defaultSelectedValue);
|
|
20
|
+
resetValidation(validation);
|
|
21
|
+
});
|
|
22
|
+
if (validation.behavior !== "native")
|
|
23
|
+
return;
|
|
24
|
+
const realtime = untrack(() => realtimeValidation(validation));
|
|
25
|
+
const message = realtime.isInvalid ? realtime.validationErrors.join(" ") || "Invalid value." : "";
|
|
26
|
+
const inputs = radios(input);
|
|
27
|
+
for (const el of inputs) {
|
|
28
|
+
if (el.disabled)
|
|
29
|
+
continue;
|
|
30
|
+
el.setCustomValidity(message);
|
|
31
|
+
if (!el.hasAttribute("title"))
|
|
32
|
+
el.title = "";
|
|
33
|
+
}
|
|
34
|
+
if (!realtime.isInvalid) {
|
|
35
|
+
const invalid = inputs.filter((el) => !el.disabled && !el.validity.valid).map(nativeValidity);
|
|
36
|
+
updateValidation(validation, invalid.length ? invalid[0] : DEFAULT_VALIDATION_RESULT);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** `change` on a radio (`value` = the radio value). Read-only: restore the selected radio. */
|
|
40
|
+
export function radioChange(state, value, event) {
|
|
41
|
+
const input = event.currentTarget;
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
if (isRadioGroupReadOnly(state) || isRadioGroupDisabled(state)) {
|
|
44
|
+
const selected = untrack(state.selectedValue);
|
|
45
|
+
for (const el of radios(input))
|
|
46
|
+
el.checked = el.value === selected;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (!input.checked)
|
|
50
|
+
return;
|
|
51
|
+
clearServerErrors(state.validation);
|
|
52
|
+
// RA setSelectedValue commits; sync the custom validity first (RA layout effect order).
|
|
53
|
+
if (untrack(state.selectedValue) !== value) {
|
|
54
|
+
if (!state.fixed)
|
|
55
|
+
state.selectedValue.set(value);
|
|
56
|
+
state.onChange?.(value);
|
|
57
|
+
// Controlled (plain / accessor value): the radios show the prop, not the click (React restores a controlled
|
|
58
|
+
// input) — re-sync after the caller's update has flushed.
|
|
59
|
+
if (state.fixed)
|
|
60
|
+
queueMicrotask(() => restoreRadios(state, input));
|
|
61
|
+
}
|
|
62
|
+
syncRadioValidity(state, input);
|
|
63
|
+
commitValidation(state.validation);
|
|
64
|
+
}
|
|
65
|
+
function restoreRadios(state, input) {
|
|
66
|
+
const selected = untrack(state.selectedValue);
|
|
67
|
+
for (const el of radios(input))
|
|
68
|
+
el.checked = el.value === selected;
|
|
69
|
+
}
|
|
70
|
+
export function radioFocus(state, value, event) {
|
|
71
|
+
setLastFocusedValue(state, value);
|
|
72
|
+
syncRadioValidity(state, event.currentTarget);
|
|
73
|
+
}
|
|
74
|
+
/** RA useRadioGroup `onBlur` (focus-within): forget the last focused radio when focus leaves the group. */
|
|
75
|
+
export function radioGroupFocusOut(state, event) {
|
|
76
|
+
const group = event.currentTarget;
|
|
77
|
+
if (!group.contains(event.relatedTarget))
|
|
78
|
+
setLastFocusedValue(state, null);
|
|
79
|
+
}
|
|
80
|
+
export function radioInvalid(state, event) {
|
|
81
|
+
syncRadioValidity(state, event.currentTarget);
|
|
82
|
+
validationInvalid(state.validation, event);
|
|
83
|
+
}
|
|
84
|
+
/** Programmatic selection (RA `state.setSelectedValue`). */
|
|
85
|
+
export { setSelectedValue };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import type { Content, JSX, Slot } from "@rivetjs/runtime/jsx-runtime";
|
|
3
|
+
import { type MaybeAccessor, type ValidationBehavior, type ValidationFunction, type ValidationResult } from "../state/form-validation.js";
|
|
4
|
+
import { type GlobalDOMAttributes } from "@rivetjs/cdk/dom-props";
|
|
5
|
+
import { type RadioGroupPartsProps } from "./parts.jsx";
|
|
6
|
+
export type { RadioGroupState } from "../state/radio-group.js";
|
|
7
|
+
export { Radio, RadioButton, RadioContext, RadioField, RadioFieldContext, RadioGroupContext, RadioGroupStateContext, radioProps, type AriaRadioProps, type RadioAria, type RadioButtonProps, type RadioButtonRenderProps, type RadioFieldProps, type RadioFieldRenderProps, type RadioGroupData, type RadioGroupPartsProps, type RadioGroupRenderProps, type RadioProps, type RadioRenderProps, } from "./parts.jsx";
|
|
8
|
+
/** One radio (RAC `<Radio>` props): global DOM events / attributes go on its `<label>`, focus / key events (RA FocusableProps) on its input. */
|
|
9
|
+
export interface RadioItem extends GlobalDOMAttributes<HTMLLabelElement> {
|
|
10
|
+
readonly value: string;
|
|
11
|
+
readonly label?: string;
|
|
12
|
+
readonly isDisabled?: boolean;
|
|
13
|
+
/** Help text of this radio (linked with aria-describedby). */
|
|
14
|
+
readonly description?: string;
|
|
15
|
+
/** Radio input id (default generated). */
|
|
16
|
+
readonly id?: string;
|
|
17
|
+
readonly onFocus?: (event: FocusEvent) => void;
|
|
18
|
+
readonly onBlur?: (event: FocusEvent) => void;
|
|
19
|
+
readonly onFocusChange?: (isFocused: boolean) => void;
|
|
20
|
+
readonly onKeyDown?: (event: KeyboardEvent) => void;
|
|
21
|
+
readonly onKeyUp?: (event: KeyboardEvent) => void;
|
|
22
|
+
/** @deprecated use `isDisabled` */ readonly disabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Props of the data-driven preset (`items`). */
|
|
25
|
+
export interface RadioGroupItemsProps extends GlobalDOMAttributes<HTMLDivElement> {
|
|
26
|
+
/** Visible group label (a `<span>`, referenced by aria-labelledby). */
|
|
27
|
+
label?: Content;
|
|
28
|
+
items: readonly RadioItem[];
|
|
29
|
+
/** Selected value (controlled): a two-way Signal, or a plain value (`value={v()}` stays live); or `defaultValue`. */
|
|
30
|
+
value?: Signal<string | null> | string | null;
|
|
31
|
+
defaultValue?: string | null;
|
|
32
|
+
onChange?: (value: string) => void;
|
|
33
|
+
/** Form field name (default: a generated id). */
|
|
34
|
+
name?: string;
|
|
35
|
+
form?: string;
|
|
36
|
+
isDisabled?: boolean;
|
|
37
|
+
isReadOnly?: boolean;
|
|
38
|
+
isRequired?: boolean;
|
|
39
|
+
isInvalid?: MaybeAccessor<boolean | undefined>;
|
|
40
|
+
validate?: ValidationFunction<string | null>;
|
|
41
|
+
/** @default "native" (or the enclosing `<Form>`'s) */
|
|
42
|
+
validationBehavior?: ValidationBehavior;
|
|
43
|
+
description?: Content;
|
|
44
|
+
errorMessage?: Content | ((validation: ValidationResult) => Content);
|
|
45
|
+
/** @default "vertical" */
|
|
46
|
+
orientation?: "vertical" | "horizontal";
|
|
47
|
+
id?: string;
|
|
48
|
+
"aria-label"?: string;
|
|
49
|
+
"aria-labelledby"?: string;
|
|
50
|
+
"aria-describedby"?: string;
|
|
51
|
+
"aria-details"?: string;
|
|
52
|
+
/** Focus entered the group (RA FocusEvents on the group: focus-within). */
|
|
53
|
+
onFocus?: (event: FocusEvent) => void;
|
|
54
|
+
/** Focus left the group. */
|
|
55
|
+
onBlur?: (event: FocusEvent) => void;
|
|
56
|
+
onFocusChange?: (isFocusWithin: boolean) => void;
|
|
57
|
+
/** @default "rv-RadioGroup" */
|
|
58
|
+
class?: string;
|
|
59
|
+
/** Radio (label) class, default `rv-Radio`. */
|
|
60
|
+
itemClass?: string;
|
|
61
|
+
inputClass?: string;
|
|
62
|
+
labelClass?: string;
|
|
63
|
+
descriptionClass?: string;
|
|
64
|
+
errorClass?: string;
|
|
65
|
+
/** Radio content (default: the item label). */
|
|
66
|
+
children?: Slot<[item: () => RadioItem]>;
|
|
67
|
+
/** @deprecated use `isRequired` */ required?: boolean;
|
|
68
|
+
/** @deprecated use `isDisabled` */ disabled?: boolean;
|
|
69
|
+
/** @deprecated use `aria-describedby` */ describedBy?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A radio group allows a user to select a single item from a list of mutually exclusive options. With `items`: the data-driven preset
|
|
73
|
+
* (below); without: the RAC compound form (`<RadioField>` / `<RadioButton>` / `<Radio>` children, `./parts.tsx`).
|
|
74
|
+
*/
|
|
75
|
+
export declare function RadioGroup(props: RadioGroupPartsProps & {
|
|
76
|
+
items?: undefined;
|
|
77
|
+
}): JSX.Element;
|
|
78
|
+
export declare function RadioGroup(props: RadioGroupItemsProps): JSX.Element;
|
|
79
|
+
/** `RadioGroup` props: the RAC compound props (`./parts.tsx`, no `items`) or the data-driven preset's (`RadioGroupItemsProps`). */
|
|
80
|
+
export type RadioGroupProps = (RadioGroupPartsProps & {
|
|
81
|
+
items?: undefined;
|
|
82
|
+
}) | RadioGroupItemsProps;
|