@rivetjs/cdk 0.0.0-stage → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +483 -0
- package/README.md +10 -2
- package/_adapters/collection.d.ts +160 -0
- package/_adapters/collection.js +235 -0
- package/_adapters/collections.d.ts +325 -0
- package/_adapters/collections.js +934 -0
- package/_adapters/dom-collection.d.ts +42 -0
- package/_adapters/dom-collection.js +228 -0
- package/_adapters/grid-selection.d.ts +115 -0
- package/_adapters/grid-selection.js +436 -0
- package/_adapters/interactions.d.ts +19 -0
- package/_adapters/interactions.js +45 -0
- package/_adapters/intl.d.ts +8 -0
- package/_adapters/intl.js +106 -0
- package/_adapters/press.d.ts +22 -0
- package/_adapters/press.js +34 -0
- package/_adapters/selectable.d.ts +132 -0
- package/_adapters/selectable.js +599 -0
- package/_adapters/selection.d.ts +120 -0
- package/_adapters/selection.js +709 -0
- package/_adapters/type-select.d.ts +8 -0
- package/_adapters/type-select.js +59 -0
- package/a11y/aria-describer.d.ts +46 -0
- package/a11y/aria-describer.js +169 -0
- package/a11y/focus-monitor.d.ts +98 -0
- package/a11y/focus-monitor.js +321 -0
- package/a11y/focus-trap.d.ts +137 -0
- package/a11y/focus-trap.js +378 -0
- package/a11y/high-contrast.d.ts +26 -0
- package/a11y/high-contrast.js +84 -0
- package/a11y/index.d.ts +37 -0
- package/a11y/index.js +97 -0
- package/a11y/interactivity-checker.d.ts +18 -0
- package/a11y/interactivity-checker.js +126 -0
- package/a11y/key-manager.d.ts +152 -0
- package/a11y/key-manager.js +397 -0
- package/a11y/live-announcer.d.ts +53 -0
- package/a11y/live-announcer.js +143 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.jsx +10 -0
- package/announcer/index.d.ts +8 -0
- package/announcer/index.jsx +22 -0
- package/announcer/live-announcer.d.ts +15 -0
- package/announcer/live-announcer.js +123 -0
- package/autocomplete/behaviour.d.ts +94 -0
- package/autocomplete/behaviour.jsx +423 -0
- package/autocomplete/contexts.d.ts +54 -0
- package/autocomplete/contexts.js +28 -0
- package/autocomplete/index.d.ts +12 -0
- package/autocomplete/index.jsx +31 -0
- package/autocomplete/intl.d.ts +2 -0
- package/autocomplete/intl.js +36 -0
- package/bidi/bidi-dir.d.ts +23 -0
- package/bidi/bidi-dir.jsx +36 -0
- package/bidi/index.d.ts +58 -0
- package/bidi/index.js +84 -0
- package/breadcrumbs/behaviour.d.ts +6 -0
- package/breadcrumbs/behaviour.js +17 -0
- package/breadcrumbs/index.d.ts +68 -0
- package/breadcrumbs/index.jsx +224 -0
- package/breadcrumbs/intl.d.ts +3 -0
- package/breadcrumbs/intl.js +104 -0
- package/button/behaviour.d.ts +61 -0
- package/button/behaviour.js +90 -0
- package/button/index.d.ts +38 -0
- package/button/index.jsx +376 -0
- package/button/press.d.ts +25 -0
- package/button/press.js +54 -0
- package/calendar/behaviour.d.ts +250 -0
- package/calendar/behaviour.jsx +939 -0
- package/calendar/index.d.ts +157 -0
- package/calendar/index.jsx +484 -0
- package/calendar/intl.d.ts +3 -0
- package/calendar/intl.js +36 -0
- package/carousel/behaviour.d.ts +50 -0
- package/carousel/behaviour.jsx +365 -0
- package/carousel/engine/Alignment.d.ts +5 -0
- package/carousel/engine/Alignment.js +24 -0
- package/carousel/engine/Animations.d.ts +13 -0
- package/carousel/engine/Animations.js +28 -0
- package/carousel/engine/Axis.d.ts +14 -0
- package/carousel/engine/Axis.js +35 -0
- package/carousel/engine/Counter.d.ts +7 -0
- package/carousel/engine/Counter.js +32 -0
- package/carousel/engine/DragHandler.d.ts +22 -0
- package/carousel/engine/DragHandler.js +141 -0
- package/carousel/engine/DragTracker.d.ts +10 -0
- package/carousel/engine/DragTracker.js +29 -0
- package/carousel/engine/EmblaCarousel.d.ts +32 -0
- package/carousel/engine/EmblaCarousel.js +177 -0
- package/carousel/engine/Engine.d.ts +64 -0
- package/carousel/engine/Engine.js +137 -0
- package/carousel/engine/EventHandler.d.ts +27 -0
- package/carousel/engine/EventHandler.js +33 -0
- package/carousel/engine/EventStore.d.ts +9 -0
- package/carousel/engine/EventStore.js +25 -0
- package/carousel/engine/NodeRects.d.ts +12 -0
- package/carousel/engine/NodeRects.js +18 -0
- package/carousel/engine/Options.d.ts +40 -0
- package/carousel/engine/Options.js +22 -0
- package/carousel/engine/OptionsHandler.d.ts +10 -0
- package/carousel/engine/OptionsHandler.js +26 -0
- package/carousel/engine/PercentOfView.d.ts +4 -0
- package/carousel/engine/PercentOfView.js +9 -0
- package/carousel/engine/Plugins.d.ts +16 -0
- package/carousel/engine/Plugins.js +1 -0
- package/carousel/engine/PluginsHandler.d.ts +8 -0
- package/carousel/engine/PluginsHandler.js +16 -0
- package/carousel/engine/ResizeHandler.d.ts +13 -0
- package/carousel/engine/ResizeHandler.js +51 -0
- package/carousel/engine/ScrollBounds.d.ts +10 -0
- package/carousel/engine/ScrollBounds.js +41 -0
- package/carousel/engine/ScrollContain.d.ts +7 -0
- package/carousel/engine/ScrollContain.js +52 -0
- package/carousel/engine/ScrollLimit.d.ts +5 -0
- package/carousel/engine/ScrollLimit.js +13 -0
- package/carousel/engine/ScrollLooper.d.ts +6 -0
- package/carousel/engine/ScrollLooper.js +26 -0
- package/carousel/engine/ScrollProgress.d.ts +5 -0
- package/carousel/engine/ScrollProgress.js +11 -0
- package/carousel/engine/ScrollSnaps.d.ts +9 -0
- package/carousel/engine/ScrollSnaps.js +26 -0
- package/carousel/engine/ScrollTarget.d.ts +12 -0
- package/carousel/engine/ScrollTarget.js +47 -0
- package/carousel/engine/ScrollTo.d.ts +11 -0
- package/carousel/engine/ScrollTo.js +36 -0
- package/carousel/engine/SlideFocus.d.ts +13 -0
- package/carousel/engine/SlideFocus.js +39 -0
- package/carousel/engine/SlideLooper.d.ts +18 -0
- package/carousel/engine/SlideLooper.js +78 -0
- package/carousel/engine/SlideRegistry.d.ts +7 -0
- package/carousel/engine/SlideRegistry.js +31 -0
- package/carousel/engine/SlideSizes.d.ts +10 -0
- package/carousel/engine/SlideSizes.js +41 -0
- package/carousel/engine/SlidesHandler.d.ts +10 -0
- package/carousel/engine/SlidesHandler.js +36 -0
- package/carousel/engine/SlidesInView.d.ts +8 -0
- package/carousel/engine/SlidesInView.js +59 -0
- package/carousel/engine/SlidesToScroll.d.ts +7 -0
- package/carousel/engine/SlidesToScroll.js +41 -0
- package/carousel/engine/Translate.d.ts +7 -0
- package/carousel/engine/Translate.js +38 -0
- package/carousel/engine/index.d.ts +11 -0
- package/carousel/engine/index.js +1 -0
- package/carousel/engine/utils.d.ts +15 -0
- package/carousel/engine/utils.js +45 -0
- package/carousel/index.d.ts +202 -0
- package/carousel/index.jsx +469 -0
- package/carousel/plugins/auto-height/AutoHeight.d.ts +14 -0
- package/carousel/plugins/auto-height/AutoHeight.js +43 -0
- package/carousel/plugins/auto-height/Options.d.ts +2 -0
- package/carousel/plugins/auto-height/Options.js +1 -0
- package/carousel/plugins/auto-height/index.d.ts +2 -0
- package/carousel/plugins/auto-height/index.js +1 -0
- package/carousel/plugins/auto-scroll/AutoScroll.d.ts +25 -0
- package/carousel/plugins/auto-scroll/AutoScroll.js +185 -0
- package/carousel/plugins/auto-scroll/Options.d.ts +13 -0
- package/carousel/plugins/auto-scroll/Options.js +12 -0
- package/carousel/plugins/auto-scroll/index.d.ts +2 -0
- package/carousel/plugins/auto-scroll/index.js +1 -0
- package/carousel/plugins/auto-scroll/utils.d.ts +3 -0
- package/carousel/plugins/auto-scroll/utils.js +4 -0
- package/carousel/plugins/autoplay/Autoplay.d.ts +29 -0
- package/carousel/plugins/autoplay/Autoplay.js +173 -0
- package/carousel/plugins/autoplay/Options.d.ts +14 -0
- package/carousel/plugins/autoplay/Options.js +12 -0
- package/carousel/plugins/autoplay/index.d.ts +2 -0
- package/carousel/plugins/autoplay/index.js +1 -0
- package/carousel/plugins/autoplay/utils.d.ts +4 -0
- package/carousel/plugins/autoplay/utils.js +11 -0
- package/carousel/plugins/class-names/ClassNames.d.ts +14 -0
- package/carousel/plugins/class-names/ClassNames.js +98 -0
- package/carousel/plugins/class-names/Options.d.ts +13 -0
- package/carousel/plugins/class-names/Options.js +9 -0
- package/carousel/plugins/class-names/index.d.ts +2 -0
- package/carousel/plugins/class-names/index.js +1 -0
- package/carousel/plugins/class-names/utils.d.ts +4 -0
- package/carousel/plugins/class-names/utils.js +14 -0
- package/carousel/plugins/fade/Fade.d.ts +14 -0
- package/carousel/plugins/fade/Fade.js +199 -0
- package/carousel/plugins/fade/Options.d.ts +2 -0
- package/carousel/plugins/fade/Options.js +1 -0
- package/carousel/plugins/fade/index.d.ts +2 -0
- package/carousel/plugins/fade/index.js +1 -0
- package/carousel/plugins/fade/utils.d.ts +2 -0
- package/carousel/plugins/fade/utils.js +8 -0
- package/carousel/state.d.ts +81 -0
- package/carousel/state.js +71 -0
- package/chat/index.d.ts +83 -0
- package/chat/index.jsx +287 -0
- package/checkbox/behaviour.d.ts +172 -0
- package/checkbox/behaviour.jsx +412 -0
- package/checkbox/index.d.ts +168 -0
- package/checkbox/index.jsx +310 -0
- package/clipboard/index.d.ts +49 -0
- package/clipboard/index.js +136 -0
- package/coercion/index.d.ts +36 -0
- package/coercion/index.js +58 -0
- package/collections/base.d.ts +115 -0
- package/collections/base.js +346 -0
- package/collections/builder.d.ts +44 -0
- package/collections/builder.js +283 -0
- package/collections/components.d.ts +252 -0
- package/collections/components.jsx +745 -0
- package/collections/data-source.d.ts +26 -0
- package/collections/data-source.js +27 -0
- package/collections/dom.d.ts +34 -0
- package/collections/dom.js +127 -0
- package/collections/grid.d.ts +45 -0
- package/collections/grid.js +125 -0
- package/collections/hidden.d.ts +4 -0
- package/collections/hidden.js +12 -0
- package/collections/index.d.ts +45 -0
- package/collections/index.js +105 -0
- package/collections/list-state.d.ts +99 -0
- package/collections/list-state.js +156 -0
- package/collections/list.d.ts +20 -0
- package/collections/list.js +77 -0
- package/collections/nodes.d.ts +17 -0
- package/collections/nodes.js +107 -0
- package/collections/row-stamps.d.ts +17 -0
- package/collections/row-stamps.js +108 -0
- package/collections/selection-model.d.ts +93 -0
- package/collections/selection-model.js +192 -0
- package/collections/server-dev.d.ts +6 -0
- package/collections/server-dev.js +18 -0
- package/collections/server-off.d.ts +6 -0
- package/collections/server-off.js +9 -0
- package/collections/server-on.d.ts +29 -0
- package/collections/server-on.jsx +86 -0
- package/collections/table.d.ts +114 -0
- package/collections/table.js +439 -0
- package/collections/tree-state.d.ts +47 -0
- package/collections/tree-state.js +73 -0
- package/collections/tree.d.ts +20 -0
- package/collections/tree.js +66 -0
- package/collections/types.d.ts +229 -0
- package/collections/types.js +4 -0
- package/collections/unique-selection-dispatcher.d.ts +10 -0
- package/collections/unique-selection-dispatcher.js +25 -0
- package/color/area-state.d.ts +99 -0
- package/color/area-state.js +160 -0
- package/color/aria-intl.d.ts +3 -0
- package/color/aria-intl.js +274 -0
- package/color/channel-field-state.d.ts +50 -0
- package/color/channel-field-state.jsx +87 -0
- package/color/color.d.ts +78 -0
- package/color/color.js +738 -0
- package/color/field-state.d.ts +66 -0
- package/color/field-state.jsx +159 -0
- package/color/index.d.ts +58 -0
- package/color/index.js +88 -0
- package/color/intl.d.ts +3 -0
- package/color/intl.js +1328 -0
- package/color/picker-state.d.ts +20 -0
- package/color/picker-state.js +19 -0
- package/color/slider-state.d.ts +78 -0
- package/color/slider-state.jsx +98 -0
- package/color/value.d.ts +27 -0
- package/color/value.js +36 -0
- package/color/wheel-state.d.ts +77 -0
- package/color/wheel-state.js +152 -0
- package/color-area/behaviour.d.ts +161 -0
- package/color-area/behaviour.jsx +454 -0
- package/color-area/index.d.ts +34 -0
- package/color-area/index.jsx +187 -0
- package/color-field/behaviour.d.ts +112 -0
- package/color-field/behaviour.jsx +262 -0
- package/color-field/index.d.ts +72 -0
- package/color-field/index.jsx +309 -0
- package/color-picker/index.d.ts +19 -0
- package/color-picker/index.jsx +49 -0
- package/color-slider/behaviour.d.ts +103 -0
- package/color-slider/behaviour.jsx +234 -0
- package/color-slider/index.d.ts +40 -0
- package/color-slider/index.jsx +162 -0
- package/color-swatch/behaviour.d.ts +40 -0
- package/color-swatch/behaviour.js +36 -0
- package/color-swatch/index.d.ts +29 -0
- package/color-swatch/index.jsx +82 -0
- package/color-swatch-picker/index.d.ts +62 -0
- package/color-swatch-picker/index.jsx +95 -0
- package/color-swatch-picker/intl.d.ts +3 -0
- package/color-swatch-picker/intl.js +104 -0
- package/color-thumb/index.d.ts +85 -0
- package/color-thumb/index.jsx +93 -0
- package/color-wheel/behaviour.d.ts +123 -0
- package/color-wheel/behaviour.jsx +301 -0
- package/color-wheel/index.d.ts +50 -0
- package/color-wheel/index.jsx +166 -0
- package/combobox/behaviour.d.ts +120 -0
- package/combobox/behaviour.jsx +588 -0
- package/combobox/index.d.ts +101 -0
- package/combobox/index.jsx +365 -0
- package/combobox/intl.d.ts +2 -0
- package/combobox/intl.js +240 -0
- package/compare/behaviour.d.ts +101 -0
- package/compare/behaviour.js +288 -0
- package/compare/index.d.ts +58 -0
- package/compare/index.jsx +129 -0
- package/data/async-list.d.ts +78 -0
- package/data/async-list.jsx +257 -0
- package/data/index.d.ts +3 -0
- package/data/index.jsx +6 -0
- package/data/list-data.d.ts +88 -0
- package/data/list-data.jsx +210 -0
- package/data/tree-data.d.ts +59 -0
- package/data/tree-data.jsx +278 -0
- package/data-grid/behaviour.d.ts +95 -0
- package/data-grid/behaviour.js +725 -0
- package/data-grid/index.d.ts +138 -0
- package/data-grid/index.jsx +452 -0
- package/data-grid/state.d.ts +131 -0
- package/data-grid/state.js +288 -0
- package/date/CalendarDate.d.ts +207 -0
- package/date/CalendarDate.js +374 -0
- package/date/DateFormatter.d.ts +24 -0
- package/date/DateFormatter.js +175 -0
- package/date/calendars/BuddhistCalendar.d.ts +16 -0
- package/date/calendars/BuddhistCalendar.js +46 -0
- package/date/calendars/EthiopicCalendar.d.ts +45 -0
- package/date/calendars/EthiopicCalendar.js +178 -0
- package/date/calendars/GregorianCalendar.d.ts +26 -0
- package/date/calendars/GregorianCalendar.js +122 -0
- package/date/calendars/HebrewCalendar.d.ts +21 -0
- package/date/calendars/HebrewCalendar.js +174 -0
- package/date/calendars/IndianCalendar.d.ts +17 -0
- package/date/calendars/IndianCalendar.js +111 -0
- package/date/calendars/IslamicCalendar.d.ts +51 -0
- package/date/calendars/IslamicCalendar.js +205 -0
- package/date/calendars/JapaneseCalendar.d.ts +22 -0
- package/date/calendars/JapaneseCalendar.js +148 -0
- package/date/calendars/PersianCalendar.d.ts +19 -0
- package/date/calendars/PersianCalendar.js +85 -0
- package/date/calendars/TaiwanCalendar.d.ts +19 -0
- package/date/calendars/TaiwanCalendar.js +70 -0
- package/date/conversion.d.ts +45 -0
- package/date/conversion.js +269 -0
- package/date/createCalendar.d.ts +3 -0
- package/date/createCalendar.js +55 -0
- package/date/index.d.ts +20 -0
- package/date/index.js +30 -0
- package/date/manipulation.d.ts +25 -0
- package/date/manipulation.js +399 -0
- package/date/queries.d.ts +93 -0
- package/date/queries.js +303 -0
- package/date/serialize.d.ts +18 -0
- package/date/serialize.js +55 -0
- package/date/string.d.ts +36 -0
- package/date/string.js +223 -0
- package/date/types.d.ts +136 -0
- package/date/types.js +14 -0
- package/date/utils.d.ts +4 -0
- package/date/utils.js +16 -0
- package/date/weekStartData.d.ts +1 -0
- package/date/weekStartData.js +112 -0
- package/date-field/behaviour.d.ts +188 -0
- package/date-field/behaviour.jsx +1025 -0
- package/date-field/index.d.ts +150 -0
- package/date-field/index.jsx +354 -0
- package/date-field/intl.d.ts +3 -0
- package/date-field/intl.js +36 -0
- package/date-field/live-value.d.ts +22 -0
- package/date-field/live-value.jsx +44 -0
- package/date-picker/behaviour.d.ts +95 -0
- package/date-picker/behaviour.jsx +343 -0
- package/date-picker/index.d.ts +66 -0
- package/date-picker/index.jsx +243 -0
- package/dialog/behaviour.d.ts +63 -0
- package/dialog/behaviour.jsx +90 -0
- package/dialog/contexts.d.ts +12 -0
- package/dialog/contexts.js +8 -0
- package/dialog/index.d.ts +48 -0
- package/dialog/index.jsx +301 -0
- package/disclosure/behaviour.d.ts +50 -0
- package/disclosure/behaviour.jsx +128 -0
- package/disclosure/details.d.ts +21 -0
- package/disclosure/details.jsx +14 -0
- package/disclosure/index.d.ts +92 -0
- package/disclosure/index.jsx +300 -0
- package/drag-drop/cdk-index.d.ts +22 -0
- package/drag-drop/cdk-index.jsx +25 -0
- package/drag-drop/directives/assertions.d.ts +6 -0
- package/drag-drop/directives/assertions.js +13 -0
- package/drag-drop/directives/config.d.ts +30 -0
- package/drag-drop/directives/config.js +7 -0
- package/drag-drop/directives/drag-handle.d.ts +10 -0
- package/drag-drop/directives/drag-handle.js +29 -0
- package/drag-drop/directives/drag.d.ts +210 -0
- package/drag-drop/directives/drag.js +550 -0
- package/drag-drop/directives/drop-list-group.d.ts +25 -0
- package/drag-drop/directives/drop-list-group.js +55 -0
- package/drag-drop/directives/drop-list.d.ts +163 -0
- package/drag-drop/directives/drop-list.js +396 -0
- package/drag-drop/directives/registry.d.ts +32 -0
- package/drag-drop/directives/registry.js +61 -0
- package/drag-drop/dom/clone-node.d.ts +2 -0
- package/drag-drop/dom/clone-node.js +58 -0
- package/drag-drop/dom/coerce.d.ts +6 -0
- package/drag-drop/dom/coerce.js +8 -0
- package/drag-drop/dom/dom-rect.d.ts +37 -0
- package/drag-drop/dom/dom-rect.js +71 -0
- package/drag-drop/dom/fake-event.d.ts +4 -0
- package/drag-drop/dom/fake-event.js +22 -0
- package/drag-drop/dom/inherited-text.d.ts +4 -0
- package/drag-drop/dom/inherited-text.js +44 -0
- package/drag-drop/dom/layout-shift.d.ts +8 -0
- package/drag-drop/dom/layout-shift.js +87 -0
- package/drag-drop/dom/mount-content.d.ts +2 -0
- package/drag-drop/dom/mount-content.js +7 -0
- package/drag-drop/dom/parent-position-tracker.d.ts +32 -0
- package/drag-drop/dom/parent-position-tracker.js +71 -0
- package/drag-drop/dom/root-node.d.ts +21 -0
- package/drag-drop/dom/root-node.js +41 -0
- package/drag-drop/dom/shadow-dom.d.ts +4 -0
- package/drag-drop/dom/shadow-dom.js +18 -0
- package/drag-drop/dom/styling.d.ts +52 -0
- package/drag-drop/dom/styling.js +86 -0
- package/drag-drop/dom/transition-duration.d.ts +2 -0
- package/drag-drop/dom/transition-duration.js +29 -0
- package/drag-drop/drag-drop-registry.d.ts +69 -0
- package/drag-drop/drag-drop-registry.js +224 -0
- package/drag-drop/drag-drop.d.ts +19 -0
- package/drag-drop/drag-drop.js +10 -0
- package/drag-drop/drag-events.d.ts +117 -0
- package/drag-drop/drag-events.js +1 -0
- package/drag-drop/drag-handle.d.ts +18 -0
- package/drag-drop/drag-handle.jsx +53 -0
- package/drag-drop/drag-placeholder.d.ts +8 -0
- package/drag-drop/drag-placeholder.jsx +25 -0
- package/drag-drop/drag-preview.d.ts +10 -0
- package/drag-drop/drag-preview.jsx +31 -0
- package/drag-drop/drag-ref.d.ts +476 -0
- package/drag-drop/drag-ref.js +1306 -0
- package/drag-drop/drag-utils.d.ts +25 -0
- package/drag-drop/drag-utils.js +53 -0
- package/drag-drop/drag.d.ts +23 -0
- package/drag-drop/drag.jsx +128 -0
- package/drag-drop/drop-list-group.d.ts +22 -0
- package/drag-drop/drop-list-group.jsx +19 -0
- package/drag-drop/drop-list-ref.d.ts +295 -0
- package/drag-drop/drop-list-ref.js +707 -0
- package/drag-drop/drop-list.d.ts +19 -0
- package/drag-drop/drop-list.jsx +87 -0
- package/drag-drop/index.d.ts +1 -0
- package/drag-drop/index.jsx +4 -0
- package/drag-drop/lazy-refs.d.ts +28 -0
- package/drag-drop/lazy-refs.js +144 -0
- package/drag-drop/preview-ref.d.ts +38 -0
- package/drag-drop/preview-ref.js +132 -0
- package/drag-drop/sorting/drop-list-sort-strategy.d.ts +29 -0
- package/drag-drop/sorting/drop-list-sort-strategy.js +1 -0
- package/drag-drop/sorting/mixed-sort-strategy.d.ts +99 -0
- package/drag-drop/sorting/mixed-sort-strategy.js +259 -0
- package/drag-drop/sorting/single-axis-sort-strategy.d.ts +112 -0
- package/drag-drop/sorting/single-axis-sort-strategy.js +343 -0
- package/file-trigger/index.d.ts +24 -0
- package/file-trigger/index.jsx +41 -0
- package/flip/index.d.ts +59 -0
- package/flip/index.js +124 -0
- package/focus/focus-ring.d.ts +42 -0
- package/focus/focus-ring.jsx +77 -0
- package/focus/focus-scope.d.ts +51 -0
- package/focus/focus-scope.jsx +431 -0
- package/focus/focusable.d.ts +33 -0
- package/focus/focusable.jsx +93 -0
- package/focus/index.d.ts +74 -0
- package/focus/index.js +274 -0
- package/form/behaviour.d.ts +29 -0
- package/form/behaviour.js +145 -0
- package/form/field-error.d.ts +38 -0
- package/form/field-error.jsx +67 -0
- package/form/index.d.ts +77 -0
- package/form/index.jsx +116 -0
- package/grid/behaviour.d.ts +290 -0
- package/grid/behaviour.js +683 -0
- package/grid/intl.d.ts +2 -0
- package/grid/intl.js +36 -0
- package/grid/keyboard-delegate.d.ts +56 -0
- package/grid/keyboard-delegate.js +316 -0
- package/grid-list/behaviour.d.ts +248 -0
- package/grid-list/behaviour.js +616 -0
- package/grid-list/index.d.ts +204 -0
- package/grid-list/index.jsx +721 -0
- package/grid-list/row.d.ts +24 -0
- package/grid-list/row.js +57 -0
- package/group/index.d.ts +48 -0
- package/group/index.jsx +126 -0
- package/header/index.d.ts +13 -0
- package/header/index.jsx +34 -0
- package/heading/index.d.ts +19 -0
- package/heading/index.jsx +55 -0
- package/highlight/index.d.ts +12 -0
- package/highlight/index.jsx +357 -0
- package/i18n/filter.d.ts +16 -0
- package/i18n/filter.js +66 -0
- package/i18n/i18n-provider.d.ts +10 -0
- package/i18n/i18n-provider.jsx +15 -0
- package/i18n/index.d.ts +27 -0
- package/i18n/index.js +115 -0
- package/i18n/intl-cache.d.ts +4 -0
- package/i18n/intl-cache.js +40 -0
- package/i18n/list-formatter.d.ts +2 -0
- package/i18n/list-formatter.js +11 -0
- package/input/index.d.ts +51 -0
- package/input/index.jsx +95 -0
- package/interactions/controllable.d.ts +42 -0
- package/interactions/controllable.js +67 -0
- package/interactions/focus-visible.d.ts +68 -0
- package/interactions/focus-visible.jsx +291 -0
- package/interactions/focus.d.ts +58 -0
- package/interactions/focus.jsx +152 -0
- package/interactions/hover.d.ts +54 -0
- package/interactions/hover.jsx +139 -0
- package/interactions/index.d.ts +1 -0
- package/interactions/index.js +3 -0
- package/interactions/interact-outside.d.ts +24 -0
- package/interactions/interact-outside.jsx +57 -0
- package/interactions/keyboard.d.ts +28 -0
- package/interactions/keyboard.jsx +51 -0
- package/interactions/long-press.d.ts +41 -0
- package/interactions/long-press.jsx +79 -0
- package/interactions/merge-props.d.ts +54 -0
- package/interactions/merge-props.jsx +257 -0
- package/interactions/move.d.ts +48 -0
- package/interactions/move.jsx +96 -0
- package/interactions/press.d.ts +129 -0
- package/interactions/press.jsx +539 -0
- package/interactions/pressable.d.ts +22 -0
- package/interactions/pressable.jsx +93 -0
- package/interactions/scroll-wheel.d.ts +20 -0
- package/interactions/scroll-wheel.jsx +40 -0
- package/interactions/utils.d.ts +52 -0
- package/interactions/utils.js +253 -0
- package/keyboard/index.d.ts +12 -0
- package/keyboard/index.jsx +34 -0
- package/keys/index.d.ts +68 -0
- package/keys/index.js +199 -0
- package/label/behaviour.d.ts +54 -0
- package/label/behaviour.js +60 -0
- package/label/index.d.ts +35 -0
- package/label/index.jsx +85 -0
- package/landmark/index.d.ts +10 -0
- package/landmark/index.jsx +35 -0
- package/landmark/manager.d.ts +50 -0
- package/landmark/manager.js +364 -0
- package/layout/index.d.ts +90 -0
- package/layout/index.js +207 -0
- package/lightbox/behaviour.d.ts +82 -0
- package/lightbox/behaviour.js +490 -0
- package/lightbox/captions/index.d.ts +39 -0
- package/lightbox/captions/index.jsx +44 -0
- package/lightbox/counter/index.d.ts +10 -0
- package/lightbox/counter/index.jsx +10 -0
- package/lightbox/download/index.d.ts +32 -0
- package/lightbox/download/index.jsx +89 -0
- package/lightbox/embed/index.d.ts +15 -0
- package/lightbox/embed/index.jsx +58 -0
- package/lightbox/fullscreen/index.d.ts +24 -0
- package/lightbox/fullscreen/index.jsx +80 -0
- package/lightbox/index.d.ts +129 -0
- package/lightbox/index.jsx +284 -0
- package/lightbox/inline/index.d.ts +18 -0
- package/lightbox/inline/index.jsx +15 -0
- package/lightbox/pdf/index.d.ts +18 -0
- package/lightbox/pdf/index.jsx +31 -0
- package/lightbox/share/index.d.ts +29 -0
- package/lightbox/share/index.jsx +43 -0
- package/lightbox/slideshow/index.d.ts +24 -0
- package/lightbox/slideshow/index.jsx +118 -0
- package/lightbox/state.d.ts +334 -0
- package/lightbox/state.js +192 -0
- package/lightbox/thumbnails/index.d.ts +54 -0
- package/lightbox/thumbnails/index.jsx +96 -0
- package/lightbox/video/index.d.ts +13 -0
- package/lightbox/video/index.jsx +42 -0
- package/lightbox/zoom/index.d.ts +67 -0
- package/lightbox/zoom/index.jsx +456 -0
- package/link/behaviour.d.ts +41 -0
- package/link/behaviour.js +58 -0
- package/link/index.d.ts +30 -0
- package/link/index.jsx +179 -0
- package/link/router.d.ts +1 -0
- package/link/router.js +5 -0
- package/listbox/behaviour.d.ts +175 -0
- package/listbox/behaviour.jsx +515 -0
- package/listbox/index.d.ts +129 -0
- package/listbox/index.jsx +632 -0
- package/markdown/index.d.ts +82 -0
- package/markdown/index.jsx +654 -0
- package/masonry/behaviour.d.ts +121 -0
- package/masonry/behaviour.js +676 -0
- package/masonry/flip.d.ts +27 -0
- package/masonry/flip.js +61 -0
- package/masonry/geometry.d.ts +44 -0
- package/masonry/geometry.js +184 -0
- package/masonry/index.d.ts +153 -0
- package/masonry/index.jsx +833 -0
- package/masonry/justified.d.ts +49 -0
- package/masonry/justified.js +250 -0
- package/masonry/layout.d.ts +200 -0
- package/masonry/layout.js +668 -0
- package/masonry/masonry-layout.d.ts +57 -0
- package/masonry/masonry-layout.js +159 -0
- package/masonry/masonry.css +29 -0
- package/menu/behaviour.d.ts +205 -0
- package/menu/behaviour.jsx +847 -0
- package/menu/index.d.ts +171 -0
- package/menu/index.jsx +702 -0
- package/menu/intl.d.ts +2 -0
- package/menu/intl.js +36 -0
- package/menu/safely-mouse-to-submenu.d.ts +12 -0
- package/menu/safely-mouse-to-submenu.js +128 -0
- package/meter/behaviour.d.ts +18 -0
- package/meter/behaviour.jsx +17 -0
- package/meter/index.d.ts +30 -0
- package/meter/index.jsx +85 -0
- package/modal/index.d.ts +79 -0
- package/modal/index.jsx +359 -0
- package/modal/provider.d.ts +47 -0
- package/modal/provider.jsx +105 -0
- package/morph/index.d.ts +91 -0
- package/morph/index.jsx +372 -0
- package/morph/item.d.ts +89 -0
- package/morph/item.jsx +546 -0
- package/motion/Animations.d.ts +17 -0
- package/motion/Animations.js +56 -0
- package/motion/DragRelease.d.ts +22 -0
- package/motion/DragRelease.js +26 -0
- package/motion/DragTracker.d.ts +7 -0
- package/motion/DragTracker.js +43 -0
- package/motion/Limit.d.ts +12 -0
- package/motion/Limit.js +37 -0
- package/motion/Motion1D.d.ts +38 -0
- package/motion/Motion1D.js +72 -0
- package/motion/ScrollBody.d.ts +13 -0
- package/motion/ScrollBody.js +75 -0
- package/motion/Vector1d.d.ts +8 -0
- package/motion/Vector1d.js +29 -0
- package/motion/index.d.ts +8 -0
- package/motion/index.js +12 -0
- package/motion/utils.d.ts +5 -0
- package/motion/utils.js +23 -0
- package/native-select/index.d.ts +46 -0
- package/native-select/index.jsx +99 -0
- package/navigation-tree/index.d.ts +43 -0
- package/navigation-tree/index.jsx +110 -0
- package/number/NumberFormatter.d.ts +28 -0
- package/number/NumberFormatter.js +144 -0
- package/number/NumberParser.d.ts +27 -0
- package/number/NumberParser.js +316 -0
- package/number/index.d.ts +5 -0
- package/number/index.jsx +17 -0
- package/number/number-field-state.d.ts +132 -0
- package/number/number-field-state.jsx +364 -0
- package/number-field/behaviour.d.ts +165 -0
- package/number-field/behaviour.jsx +512 -0
- package/number-field/index.d.ts +52 -0
- package/number-field/index.jsx +207 -0
- package/number-field/intl.d.ts +2 -0
- package/number-field/intl.js +36 -0
- package/observers/index.d.ts +70 -0
- package/observers/index.js +279 -0
- package/overflow/index.d.ts +93 -0
- package/overflow/index.jsx +267 -0
- package/overlay/aria-hide-outside.d.ts +12 -0
- package/overlay/aria-hide-outside.js +141 -0
- package/overlay/close-on-scroll.d.ts +1 -0
- package/overlay/close-on-scroll.js +6 -0
- package/overlay/contexts.d.ts +34 -0
- package/overlay/contexts.js +21 -0
- package/overlay/dismiss-button.d.ts +10 -0
- package/overlay/dismiss-button.jsx +18 -0
- package/overlay/hover-trigger.d.ts +54 -0
- package/overlay/hover-trigger.jsx +221 -0
- package/overlay/index.d.ts +40 -0
- package/overlay/index.js +139 -0
- package/overlay/modal-overlay.d.ts +16 -0
- package/overlay/modal-overlay.js +38 -0
- package/overlay/overlay-strings.d.ts +4 -0
- package/overlay/overlay-strings.js +52 -0
- package/overlay/overlay-trigger-state.d.ts +1 -0
- package/overlay/overlay-trigger-state.js +3 -0
- package/overlay/overlay-trigger.d.ts +27 -0
- package/overlay/overlay-trigger.jsx +50 -0
- package/overlay/position.d.ts +160 -0
- package/overlay/position.js +559 -0
- package/overlay/prevent-scroll-ios.d.ts +17 -0
- package/overlay/prevent-scroll-ios.js +331 -0
- package/overlay/prevent-scroll.d.ts +18 -0
- package/overlay/prevent-scroll.js +122 -0
- package/overlay/safe-area.d.ts +28 -0
- package/overlay/safe-area.js +108 -0
- package/overlay-arrow/index.d.ts +23 -0
- package/overlay-arrow/index.jsx +59 -0
- package/overlay-service/connected-position.d.ts +163 -0
- package/overlay-service/connected-position.js +661 -0
- package/overlay-service/global-position.d.ts +34 -0
- package/overlay-service/global-position.js +154 -0
- package/overlay-service/index.d.ts +15 -0
- package/overlay-service/index.js +27 -0
- package/overlay-service/overlay-container.d.ts +27 -0
- package/overlay-service/overlay-container.js +93 -0
- package/overlay-service/overlay-dispatchers.d.ts +44 -0
- package/overlay-service/overlay-dispatchers.js +149 -0
- package/overlay-service/overlay-position-builder.d.ts +8 -0
- package/overlay-service/overlay-position-builder.js +15 -0
- package/overlay-service/overlay-ref.d.ts +155 -0
- package/overlay-service/overlay-ref.js +436 -0
- package/overlay-service/overlay-strategy.d.ts +48 -0
- package/overlay-service/overlay-strategy.js +3 -0
- package/overlay-service/overlay-viewport.d.ts +85 -0
- package/overlay-service/overlay-viewport.js +192 -0
- package/overlay-service/overlay.css +94 -0
- package/overlay-service/scroll-strategies.d.ts +71 -0
- package/overlay-service/scroll-strategies.js +185 -0
- package/package.json +754 -4
- package/platform/index.d.ts +100 -0
- package/platform/index.js +304 -0
- package/popover/behaviour.d.ts +23 -0
- package/popover/behaviour.js +39 -0
- package/popover/index.d.ts +60 -0
- package/popover/index.jsx +285 -0
- package/popover/popover-overlay.d.ts +27 -0
- package/popover/popover-overlay.jsx +60 -0
- package/popover/use-popover.d.ts +57 -0
- package/popover/use-popover.js +92 -0
- package/portal/index.d.ts +55 -0
- package/portal/index.jsx +83 -0
- package/portal/portal-mount.d.ts +8 -0
- package/portal/portal-mount.js +7 -0
- package/portal/portal-outlet.d.ts +88 -0
- package/portal/portal-outlet.js +222 -0
- package/preview-trigger/behaviour.d.ts +70 -0
- package/preview-trigger/behaviour.jsx +258 -0
- package/preview-trigger/index.d.ts +12 -0
- package/preview-trigger/index.jsx +82 -0
- package/progress-bar/behaviour.d.ts +77 -0
- package/progress-bar/behaviour.jsx +75 -0
- package/progress-bar/context.d.ts +4 -0
- package/progress-bar/context.js +7 -0
- package/progress-bar/index.d.ts +38 -0
- package/progress-bar/index.jsx +90 -0
- package/radio-group/behaviour.d.ts +11 -0
- package/radio-group/behaviour.js +85 -0
- package/radio-group/index.d.ts +82 -0
- package/radio-group/index.jsx +142 -0
- package/radio-group/parts.d.ts +223 -0
- package/radio-group/parts.jsx +425 -0
- package/range-calendar/behaviour.d.ts +2 -0
- package/range-calendar/behaviour.jsx +5 -0
- package/range-calendar/index.d.ts +2 -0
- package/range-calendar/index.jsx +4 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.d.ts +1 -0
- package/resizable/engine/components/group/auto-save/getStorageKey.js +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.d.ts +5 -0
- package/resizable/engine/components/group/compareDocumentPosition.js +19 -0
- package/resizable/engine/components/group/readLegacyLayout.d.ts +16 -0
- package/resizable/engine/components/group/readLegacyLayout.js +48 -0
- package/resizable/engine/components/group/sortByElementOffset.d.ts +4 -0
- package/resizable/engine/components/group/sortByElementOffset.js +28 -0
- package/resizable/engine/components/group/types.d.ts +50 -0
- package/resizable/engine/components/group/types.js +1 -0
- package/resizable/engine/components/panel/types.d.ts +90 -0
- package/resizable/engine/components/panel/types.js +4 -0
- package/resizable/engine/constants.d.ts +15 -0
- package/resizable/engine/constants.js +27 -0
- package/resizable/engine/global/cursor/getCursorStyle.d.ts +7 -0
- package/resizable/engine/global/cursor/getCursorStyle.js +94 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.d.ts +5 -0
- package/resizable/engine/global/cursor/supportsAdvancedCursorStyles.js +20 -0
- package/resizable/engine/global/cursor/updateCursorStyle.d.ts +1 -0
- package/resizable/engine/global/cursor/updateCursorStyle.js +64 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.d.ts +4 -0
- package/resizable/engine/global/dom/calculateAvailableAxisSize.js +10 -0
- package/resizable/engine/global/dom/calculateHitRegions.d.ts +13 -0
- package/resizable/engine/global/dom/calculateHitRegions.js +153 -0
- package/resizable/engine/global/dom/calculateItemConstraints.d.ts +2 -0
- package/resizable/engine/global/dom/calculateItemConstraints.js +82 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentContextMenu.js +9 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentDoubleClick.js +28 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentKeyDown.js +97 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentLostPointerCapture.js +18 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerCancel.js +8 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerDown.js +54 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerLeave.js +22 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerMove.js +69 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerOut.js +20 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onDocumentPointerUp.js +15 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.d.ts +1 -0
- package/resizable/engine/global/event-handlers/onWindowBlur.js +11 -0
- package/resizable/engine/global/mountAxis.d.ts +2 -0
- package/resizable/engine/global/mountAxis.js +187 -0
- package/resizable/engine/global/mutable-state/axes.d.ts +37 -0
- package/resizable/engine/global/mutable-state/axes.js +52 -0
- package/resizable/engine/global/mutable-state/interactions.d.ts +17 -0
- package/resizable/engine/global/mutable-state/interactions.js +92 -0
- package/resizable/engine/global/mutable-state/types.d.ts +32 -0
- package/resizable/engine/global/mutable-state/types.js +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertEmToPixels.js +7 -0
- package/resizable/engine/global/styles/convertRemToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertRemToPixels.js +7 -0
- package/resizable/engine/global/styles/convertVhToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVhToPixels.js +5 -0
- package/resizable/engine/global/styles/convertVwToPixels.d.ts +1 -0
- package/resizable/engine/global/styles/convertVwToPixels.js +5 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.d.ts +2 -0
- package/resizable/engine/global/styles/parseSizeAndUnit.js +29 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.d.ts +5 -0
- package/resizable/engine/global/styles/sizeStyleToPixels.js +38 -0
- package/resizable/engine/global/types.d.ts +120 -0
- package/resizable/engine/global/types.js +1 -0
- package/resizable/engine/global/utils/abortActivePointerResize.d.ts +9 -0
- package/resizable/engine/global/utils/abortActivePointerResize.js +52 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.d.ts +9 -0
- package/resizable/engine/global/utils/adjustLayoutByDelta.js +219 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.d.ts +1 -0
- package/resizable/engine/global/utils/adjustLayoutForSeparator.js +48 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.d.ts +2 -0
- package/resizable/engine/global/utils/calculateDefaultLayout.js +30 -0
- package/resizable/engine/global/utils/calculateResizePreviews.d.ts +3 -0
- package/resizable/engine/global/utils/calculateResizePreviews.js +39 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.d.ts +12 -0
- package/resizable/engine/global/utils/calculateSeparatorAriaValues.js +43 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.d.ts +1 -0
- package/resizable/engine/global/utils/compareLayoutNumbers.js +11 -0
- package/resizable/engine/global/utils/completeActivePointerResize.d.ts +6 -0
- package/resizable/engine/global/utils/completeActivePointerResize.js +49 -0
- package/resizable/engine/global/utils/doRectsIntersect.d.ts +2 -0
- package/resizable/engine/global/utils/doRectsIntersect.js +3 -0
- package/resizable/engine/global/utils/expandHitTarget.d.ts +10 -0
- package/resizable/engine/global/utils/expandHitTarget.js +19 -0
- package/resizable/engine/global/utils/findClosestHitRegion.d.ts +9 -0
- package/resizable/engine/global/utils/findClosestHitRegion.js +35 -0
- package/resizable/engine/global/utils/findClosestRect.d.ts +6 -0
- package/resizable/engine/global/utils/findClosestRect.js +22 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.d.ts +7 -0
- package/resizable/engine/global/utils/findMatchingHitRegions.js +29 -0
- package/resizable/engine/global/utils/findSeparatorAxis.d.ts +21 -0
- package/resizable/engine/global/utils/findSeparatorAxis.js +12 -0
- package/resizable/engine/global/utils/formatLayoutNumber.d.ts +1 -0
- package/resizable/engine/global/utils/formatLayoutNumber.js +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.d.ts +5 -0
- package/resizable/engine/global/utils/getDefaultLayout.js +11 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.d.ts +5 -0
- package/resizable/engine/global/utils/getDistanceBetweenPointAndRect.js +6 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.d.ts +4 -0
- package/resizable/engine/global/utils/getImperativeAxisMethods.js +53 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.d.ts +5 -0
- package/resizable/engine/global/utils/getImperativeItemMethods.js +169 -0
- package/resizable/engine/global/utils/isCoarsePointer.d.ts +4 -0
- package/resizable/engine/global/utils/isCoarsePointer.js +17 -0
- package/resizable/engine/global/utils/isModal.d.ts +1 -0
- package/resizable/engine/global/utils/isModal.js +11 -0
- package/resizable/engine/global/utils/isViableHitTarget.d.ts +5 -0
- package/resizable/engine/global/utils/isViableHitTarget.js +50 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/itemConstraintsEqual.js +9 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.d.ts +1 -0
- package/resizable/engine/global/utils/layoutNumbersEqual.js +6 -0
- package/resizable/engine/global/utils/layoutsEqual.d.ts +2 -0
- package/resizable/engine/global/utils/layoutsEqual.js +15 -0
- package/resizable/engine/global/utils/normalizeLayout.d.ts +11 -0
- package/resizable/engine/global/utils/normalizeLayout.js +21 -0
- package/resizable/engine/global/utils/notifyItemOnResize.d.ts +2 -0
- package/resizable/engine/global/utils/notifyItemOnResize.js +23 -0
- package/resizable/engine/global/utils/objectsEqual.d.ts +1 -0
- package/resizable/engine/global/utils/objectsEqual.js +14 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.d.ts +7 -0
- package/resizable/engine/global/utils/preserveFixedItemSizes.js +53 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.d.ts +15 -0
- package/resizable/engine/global/utils/recordAxisLayoutChange.js +25 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.d.ts +18 -0
- package/resizable/engine/global/utils/updateActiveHitRegion.js +119 -0
- package/resizable/engine/global/utils/validateAxisLayout.d.ts +5 -0
- package/resizable/engine/global/utils/validateAxisLayout.js +70 -0
- package/resizable/engine/global/utils/validateItemSize.d.ts +7 -0
- package/resizable/engine/global/utils/validateItemSize.js +31 -0
- package/resizable/engine/global/utils/validateLayoutKeys.d.ts +2 -0
- package/resizable/engine/global/utils/validateLayoutKeys.js +13 -0
- package/resizable/engine/types.d.ts +13 -0
- package/resizable/engine/types.js +1 -0
- package/resizable/engine/utils/EventEmitter.d.ts +11 -0
- package/resizable/engine/utils/EventEmitter.js +60 -0
- package/resizable/engine/utils/assert.d.ts +1 -0
- package/resizable/engine/utils/assert.js +7 -0
- package/resizable/engine/utils/isArrayEqual.d.ts +1 -0
- package/resizable/engine/utils/isArrayEqual.js +15 -0
- package/resizable/engine/utils/isHTMLElement.d.ts +1 -0
- package/resizable/engine/utils/isHTMLElement.js +6 -0
- package/resizable/engine/utils/isShadowRoot.d.ts +1 -0
- package/resizable/engine/utils/isShadowRoot.js +6 -0
- package/resizable/engine/vendor/stacking-order.d.ts +7 -0
- package/resizable/engine/vendor/stacking-order.js +122 -0
- package/resizable/index.d.ts +263 -0
- package/resizable/index.jsx +537 -0
- package/resizable/mount.d.ts +115 -0
- package/resizable/mount.js +540 -0
- package/scheduler/behaviour.d.ts +71 -0
- package/scheduler/behaviour.js +243 -0
- package/scheduler/context.d.ts +100 -0
- package/scheduler/context.jsx +7 -0
- package/scheduler/dates.d.ts +53 -0
- package/scheduler/dates.js +183 -0
- package/scheduler/drag.d.ts +20 -0
- package/scheduler/drag.js +361 -0
- package/scheduler/event.d.ts +26 -0
- package/scheduler/event.jsx +93 -0
- package/scheduler/index.d.ts +57 -0
- package/scheduler/index.jsx +303 -0
- package/scheduler/intl.d.ts +16 -0
- package/scheduler/intl.js +529 -0
- package/scheduler/keys-month.d.ts +7 -0
- package/scheduler/keys-month.js +110 -0
- package/scheduler/keys-time-grid.d.ts +9 -0
- package/scheduler/keys-time-grid.js +115 -0
- package/scheduler/keys.d.ts +103 -0
- package/scheduler/keys.js +527 -0
- package/scheduler/layout-index.d.ts +3 -0
- package/scheduler/layout-index.js +6 -0
- package/scheduler/layout.d.ts +285 -0
- package/scheduler/layout.js +378 -0
- package/scheduler/menus.d.ts +66 -0
- package/scheduler/menus.jsx +88 -0
- package/scheduler/month.d.ts +26 -0
- package/scheduler/month.jsx +215 -0
- package/scheduler/pointer.d.ts +64 -0
- package/scheduler/pointer.js +203 -0
- package/scheduler/select.d.ts +11 -0
- package/scheduler/select.js +64 -0
- package/scheduler/selection.d.ts +34 -0
- package/scheduler/selection.js +39 -0
- package/scheduler/state.d.ts +296 -0
- package/scheduler/state.js +496 -0
- package/scheduler/time-grid-client.d.ts +32 -0
- package/scheduler/time-grid-client.jsx +133 -0
- package/scheduler/time-grid.d.ts +26 -0
- package/scheduler/time-grid.jsx +266 -0
- package/scheduler/time.d.ts +35 -0
- package/scheduler/time.js +56 -0
- package/scheduler/toolbar.d.ts +43 -0
- package/scheduler/toolbar.jsx +38 -0
- package/scroll-area/dom.d.ts +11 -0
- package/scroll-area/dom.js +55 -0
- package/scroll-area/index.d.ts +96 -0
- package/scroll-area/index.jsx +884 -0
- package/scroll-area/presence.d.ts +12 -0
- package/scroll-area/presence.jsx +131 -0
- package/scrolling/auto-size-virtual-scroll.d.ts +53 -0
- package/scrolling/auto-size-virtual-scroll.js +213 -0
- package/scrolling/behaviour.d.ts +3 -0
- package/scrolling/behaviour.js +5 -0
- package/scrolling/emitter.d.ts +34 -0
- package/scrolling/emitter.js +144 -0
- package/scrolling/fixed-size-virtual-scroll.d.ts +28 -0
- package/scrolling/fixed-size-virtual-scroll.js +107 -0
- package/scrolling/index.d.ts +11 -0
- package/scrolling/index.jsx +13 -0
- package/scrolling/rtl.d.ts +16 -0
- package/scrolling/rtl.js +64 -0
- package/scrolling/scroll-dispatcher.d.ts +49 -0
- package/scrolling/scroll-dispatcher.js +107 -0
- package/scrolling/scrollable.d.ts +75 -0
- package/scrolling/scrollable.js +149 -0
- package/scrolling/scrolling.css +11 -0
- package/scrolling/state.d.ts +92 -0
- package/scrolling/state.js +94 -0
- package/scrolling/viewport-ruler.d.ts +47 -0
- package/scrolling/viewport-ruler.js +100 -0
- package/scrolling/viewport.d.ts +54 -0
- package/scrolling/viewport.jsx +105 -0
- package/scrolling/virtual-scroll-strategy.d.ts +41 -0
- package/scrolling/virtual-scroll-strategy.js +2 -0
- package/scrolling/virtual-scroll-viewport.d.ts +95 -0
- package/scrolling/virtual-scroll-viewport.js +370 -0
- package/search-field/behaviour.d.ts +62 -0
- package/search-field/behaviour.jsx +116 -0
- package/search-field/index.d.ts +57 -0
- package/search-field/index.jsx +158 -0
- package/search-field/intl.d.ts +2 -0
- package/search-field/intl.js +36 -0
- package/select/behaviour.d.ts +188 -0
- package/select/behaviour.jsx +445 -0
- package/select/hidden-select.d.ts +44 -0
- package/select/hidden-select.jsx +68 -0
- package/select/index.d.ts +123 -0
- package/select/index.jsx +255 -0
- package/select/intl.d.ts +2 -0
- package/select/intl.js +36 -0
- package/select/parts.d.ts +11 -0
- package/select/parts.jsx +12 -0
- package/select/select-parts.d.ts +73 -0
- package/select/select-parts.jsx +293 -0
- package/select/select-value.d.ts +58 -0
- package/select/select-value.jsx +142 -0
- package/selection/dom-utils.d.ts +25 -0
- package/selection/dom-utils.js +77 -0
- package/selection/keyed.d.ts +19 -0
- package/selection/keyed.js +66 -0
- package/selection/list-keyboard-delegate.d.ts +67 -0
- package/selection/list-keyboard-delegate.js +274 -0
- package/selection/manager.d.ts +112 -0
- package/selection/manager.js +340 -0
- package/selection/selectable-collection.d.ts +123 -0
- package/selection/selectable-collection.js +560 -0
- package/selection/selectable-item.d.ts +128 -0
- package/selection/selectable-item.js +486 -0
- package/selection/selectable-list.d.ts +42 -0
- package/selection/selectable-list.js +34 -0
- package/selection/state.d.ts +96 -0
- package/selection/state.js +131 -0
- package/selection/type-select.d.ts +37 -0
- package/selection/type-select.js +114 -0
- package/selection/utils.d.ts +23 -0
- package/selection/utils.js +38 -0
- package/selection-indicator/context.d.ts +10 -0
- package/selection-indicator/context.js +7 -0
- package/selection-indicator/index.d.ts +20 -0
- package/selection-indicator/index.jsx +25 -0
- package/separator/behaviour.d.ts +17 -0
- package/separator/behaviour.js +17 -0
- package/separator/index.d.ts +23 -0
- package/separator/index.jsx +64 -0
- package/shared-element-transition/index.d.ts +36 -0
- package/shared-element-transition/index.jsx +182 -0
- package/shared-element-transition/transition.d.ts +19 -0
- package/shared-element-transition/transition.jsx +20 -0
- package/sheet-motion/index.d.ts +82 -0
- package/sheet-motion/index.js +386 -0
- package/sidebar/index.d.ts +257 -0
- package/sidebar/index.jsx +625 -0
- package/sidebar/pages.d.ts +71 -0
- package/sidebar/pages.jsx +177 -0
- package/sidebar/resize.d.ts +69 -0
- package/sidebar/resize.js +237 -0
- package/sidebar/sheet-motion.d.ts +15 -0
- package/sidebar/sheet-motion.js +170 -0
- package/sidebar/state.d.ts +126 -0
- package/sidebar/state.js +204 -0
- package/slider/behaviour.d.ts +141 -0
- package/slider/behaviour.jsx +492 -0
- package/slider/index.d.ts +171 -0
- package/slider/index.jsx +392 -0
- package/slider/state.d.ts +203 -0
- package/slider/state.js +377 -0
- package/slots/index.d.ts +248 -0
- package/slots/index.jsx +473 -0
- package/spinbutton/behaviour.d.ts +66 -0
- package/spinbutton/behaviour.jsx +312 -0
- package/spinbutton/intl.d.ts +2 -0
- package/spinbutton/intl.js +36 -0
- package/state/autocomplete.d.ts +26 -0
- package/state/autocomplete.js +32 -0
- package/state/calendar.d.ts +284 -0
- package/state/calendar.js +755 -0
- package/state/checkbox-group.d.ts +67 -0
- package/state/checkbox-group.js +76 -0
- package/state/combobox.d.ts +238 -0
- package/state/combobox.js +708 -0
- package/state/date-field.d.ts +407 -0
- package/state/date-field.js +1117 -0
- package/state/date-intl.d.ts +3 -0
- package/state/date-intl.js +36 -0
- package/state/date-picker.d.ts +144 -0
- package/state/date-picker.js +387 -0
- package/state/disclosure.d.ts +90 -0
- package/state/disclosure.js +148 -0
- package/state/form-validation.d.ts +89 -0
- package/state/form-validation.js +158 -0
- package/state/grid.d.ts +62 -0
- package/state/grid.js +127 -0
- package/state/list.d.ts +58 -0
- package/state/list.js +124 -0
- package/state/menu.d.ts +162 -0
- package/state/menu.js +185 -0
- package/state/overlays.d.ts +35 -0
- package/state/overlays.js +29 -0
- package/state/radio-group.d.ts +58 -0
- package/state/radio-group.js +68 -0
- package/state/search-field.d.ts +20 -0
- package/state/search-field.js +21 -0
- package/state/select.d.ts +150 -0
- package/state/select.js +187 -0
- package/state/selection.d.ts +3 -0
- package/state/selection.js +5 -0
- package/state/table-column-resize.d.ts +58 -0
- package/state/table-column-resize.js +76 -0
- package/state/table.d.ts +81 -0
- package/state/table.js +114 -0
- package/state/tabs.d.ts +85 -0
- package/state/tabs.js +161 -0
- package/state/time-field.d.ts +32 -0
- package/state/time-field.js +34 -0
- package/state/toast.d.ts +80 -0
- package/state/toast.js +146 -0
- package/state/toggle-group.d.ts +70 -0
- package/state/toggle-group.js +110 -0
- package/state/toggle.d.ts +40 -0
- package/state/toggle.js +39 -0
- package/state/tooltip.d.ts +53 -0
- package/state/tooltip.js +153 -0
- package/stepper/index.d.ts +117 -0
- package/stepper/index.jsx +405 -0
- package/stepper/state.d.ts +200 -0
- package/stepper/state.js +325 -0
- package/switch/behaviour.d.ts +12 -0
- package/switch/behaviour.jsx +9 -0
- package/switch/index.d.ts +150 -0
- package/switch/index.jsx +186 -0
- package/table/behaviour.d.ts +181 -0
- package/table/behaviour.js +334 -0
- package/table/collection.d.ts +49 -0
- package/table/collection.js +259 -0
- package/table/column-resize.d.ts +48 -0
- package/table/column-resize.jsx +247 -0
- package/table/index.d.ts +339 -0
- package/table/index.jsx +1326 -0
- package/table/intl.d.ts +2 -0
- package/table/intl.js +36 -0
- package/table/keyboard-delegate.d.ts +21 -0
- package/table/keyboard-delegate.js +166 -0
- package/table/rac-intl.d.ts +2 -0
- package/table/rac-intl.js +36 -0
- package/tabs/behaviour.d.ts +49 -0
- package/tabs/behaviour.js +173 -0
- package/tabs/index.d.ts +248 -0
- package/tabs/index.jsx +577 -0
- package/tabs/keyboard-delegate.d.ts +17 -0
- package/tabs/keyboard-delegate.js +64 -0
- package/tag-group/behaviour.d.ts +59 -0
- package/tag-group/behaviour.js +112 -0
- package/tag-group/index.d.ts +138 -0
- package/tag-group/index.jsx +565 -0
- package/tag-group/intl.d.ts +2 -0
- package/tag-group/intl.js +36 -0
- package/tailwind.css +12 -0
- package/tests-components/app/src/routes/index.d.ts +4 -0
- package/tests-components/app/src/routes/index.jsx +7 -0
- package/text/index.d.ts +15 -0
- package/text/index.jsx +61 -0
- package/text-area/index.d.ts +19 -0
- package/text-area/index.jsx +76 -0
- package/text-field/autosize.d.ts +70 -0
- package/text-field/autosize.js +355 -0
- package/text-field/behaviour.d.ts +140 -0
- package/text-field/behaviour.jsx +260 -0
- package/text-field/fields.d.ts +12 -0
- package/text-field/fields.js +20 -0
- package/text-field/index.d.ts +50 -0
- package/text-field/index.jsx +174 -0
- package/text-field/text-field.css +45 -0
- package/theme.css +1006 -0
- package/time-wheels/behaviour.d.ts +29 -0
- package/time-wheels/behaviour.js +156 -0
- package/time-wheels/index.d.ts +27 -0
- package/time-wheels/index.jsx +91 -0
- package/toast/behaviour.d.ts +51 -0
- package/toast/behaviour.jsx +273 -0
- package/toast/index.d.ts +94 -0
- package/toast/index.jsx +256 -0
- package/toast/intl.d.ts +2 -0
- package/toast/intl.js +36 -0
- package/toggle-button/behaviour.d.ts +15 -0
- package/toggle-button/behaviour.js +37 -0
- package/toggle-button/index.d.ts +59 -0
- package/toggle-button/index.jsx +206 -0
- package/toggle-button-group/behaviour.d.ts +19 -0
- package/toggle-button-group/behaviour.jsx +13 -0
- package/toggle-button-group/context.d.ts +7 -0
- package/toggle-button-group/context.js +9 -0
- package/toggle-button-group/index.d.ts +39 -0
- package/toggle-button-group/index.jsx +85 -0
- package/toggle-button-group/item.d.ts +30 -0
- package/toggle-button-group/item.jsx +37 -0
- package/toolbar/behaviour.d.ts +22 -0
- package/toolbar/behaviour.js +89 -0
- package/toolbar/index.d.ts +16 -0
- package/toolbar/index.jsx +67 -0
- package/tooltip/behaviour.d.ts +93 -0
- package/tooltip/behaviour.jsx +299 -0
- package/tooltip/index.d.ts +59 -0
- package/tooltip/index.jsx +193 -0
- package/tree/behaviour.d.ts +51 -0
- package/tree/behaviour.jsx +51 -0
- package/tree/cdk-index.d.ts +2 -0
- package/tree/cdk-index.js +6 -0
- package/tree/collection.d.ts +16 -0
- package/tree/collection.js +138 -0
- package/tree/control.d.ts +125 -0
- package/tree/control.js +166 -0
- package/tree/index.d.ts +154 -0
- package/tree/index.jsx +837 -0
- package/tree/intl.d.ts +2 -0
- package/tree/intl.js +36 -0
- package/tree/navigation-context.d.ts +44 -0
- package/tree/navigation-context.jsx +63 -0
- package/tree/tree-key-manager.d.ts +149 -0
- package/tree/tree-key-manager.js +336 -0
- package/utils/animation.d.ts +32 -0
- package/utils/animation.jsx +236 -0
- package/utils/data-attrs.d.ts +73 -0
- package/utils/data-attrs.jsx +217 -0
- package/utils/dev-off.d.ts +3 -0
- package/utils/dev-off.js +7 -0
- package/utils/dev-on.d.ts +3 -0
- package/utils/dev-on.js +17 -0
- package/utils/dom-props.d.ts +44 -0
- package/utils/dom-props.js +73 -0
- package/utils/dom.d.ts +85 -0
- package/utils/dom.js +402 -0
- package/utils/id.d.ts +23 -0
- package/utils/id.js +100 -0
- package/utils/index.d.ts +43 -0
- package/utils/index.js +160 -0
- package/utils/link-state.d.ts +6 -0
- package/utils/link-state.js +6 -0
- package/utils/links.d.ts +82 -0
- package/utils/links.jsx +150 -0
- package/utils/live-element.d.ts +8 -0
- package/utils/live-element.jsx +76 -0
- package/utils/live.d.ts +53 -0
- package/utils/live.jsx +169 -0
- package/utils/load-more-sentinel.d.ts +28 -0
- package/utils/load-more-sentinel.jsx +52 -0
- package/utils/motion-token.d.ts +4 -0
- package/utils/motion-token.js +48 -0
- package/utils/render.d.ts +19 -0
- package/utils/render.js +18 -0
- package/utils/transitions.d.ts +15 -0
- package/utils/transitions.js +104 -0
- package/utils/types.d.ts +111 -0
- package/utils/types.js +1 -0
- package/virtualizer/behaviour.d.ts +129 -0
- package/virtualizer/behaviour.js +437 -0
- package/virtualizer/collection-renderer.d.ts +62 -0
- package/virtualizer/collection-renderer.jsx +190 -0
- package/virtualizer/collection.d.ts +103 -0
- package/virtualizer/collection.js +155 -0
- package/virtualizer/dom.d.ts +50 -0
- package/virtualizer/dom.js +233 -0
- package/virtualizer/engine.d.ts +21 -0
- package/virtualizer/engine.js +21 -0
- package/virtualizer/grid-layout.d.ts +50 -0
- package/virtualizer/grid-layout.js +247 -0
- package/virtualizer/index.d.ts +3 -0
- package/virtualizer/index.jsx +5 -0
- package/virtualizer/layout-info.d.ts +33 -0
- package/virtualizer/layout-info.js +54 -0
- package/virtualizer/layout.d.ts +44 -0
- package/virtualizer/layout.js +30 -0
- package/virtualizer/list-layout.d.ts +103 -0
- package/virtualizer/list-layout.js +510 -0
- package/virtualizer/overscan-manager.d.ts +9 -0
- package/virtualizer/overscan-manager.js +32 -0
- package/virtualizer/point.d.ts +13 -0
- package/virtualizer/point.js +23 -0
- package/virtualizer/rect.d.ts +49 -0
- package/virtualizer/rect.js +105 -0
- package/virtualizer/reusable-view.d.ts +29 -0
- package/virtualizer/reusable-view.js +56 -0
- package/virtualizer/scroll-anchor.d.ts +62 -0
- package/virtualizer/scroll-anchor.js +130 -0
- package/virtualizer/size.d.ts +11 -0
- package/virtualizer/size.js +21 -0
- package/virtualizer/state.d.ts +35 -0
- package/virtualizer/state.js +89 -0
- package/virtualizer/table-collection.d.ts +45 -0
- package/virtualizer/table-collection.js +80 -0
- package/virtualizer/table-column-layout.d.ts +44 -0
- package/virtualizer/table-column-layout.js +210 -0
- package/virtualizer/table-layout.d.ts +55 -0
- package/virtualizer/table-layout.js +482 -0
- package/virtualizer/types.d.ts +63 -0
- package/virtualizer/types.js +1 -0
- package/virtualizer/utils.d.ts +2 -0
- package/virtualizer/utils.js +12 -0
- package/virtualizer/virtualizer-core.d.ts +61 -0
- package/virtualizer/virtualizer-core.js +304 -0
- package/virtualizer/virtualizer.d.ts +64 -0
- package/virtualizer/virtualizer.jsx +91 -0
- package/virtualizer/waterfall-layout.d.ts +41 -0
- package/virtualizer/waterfall-layout.js +227 -0
- package/wheel-picker/behaviour.d.ts +94 -0
- package/wheel-picker/behaviour.js +482 -0
- package/wheel-picker/index.d.ts +33 -0
- package/wheel-picker/index.jsx +66 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Color } from "./color.js";
|
|
2
|
+
import { type ColorCell, type ColorInput } from "./value.js";
|
|
3
|
+
export interface ColorPickerProps {
|
|
4
|
+
/** The current value (controlled): a two-way signal or a fixed value. */
|
|
5
|
+
value?: ColorInput;
|
|
6
|
+
/** The default value (uncontrolled). */
|
|
7
|
+
defaultValue?: string | Color;
|
|
8
|
+
/** Handler that is called when the value changes. */
|
|
9
|
+
onChange?: (value: Color) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface ColorPickerState {
|
|
12
|
+
readonly kind: "picker";
|
|
13
|
+
readonly cell: ColorCell<string | Color>;
|
|
14
|
+
readonly onChange: ((value: Color) => void) | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare function createColorPickerState(props: ColorPickerProps): ColorPickerState;
|
|
17
|
+
/** The current color value of the color picker. */
|
|
18
|
+
export declare const getColor: (state: ColorPickerState) => Color;
|
|
19
|
+
/** Sets the current color value of the color picker (null is ignored). */
|
|
20
|
+
export declare function setColor(state: ColorPickerState, color: Color | null): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Ported from react-stately `useColorPickerState` (packages/react-stately/src/color/useColorPickerState.ts), Apache-2.0, © Adobe.
|
|
2
|
+
// Rivet: plain signals + JSON (serializable); `state.color` → `getColor(state)`, `state.setColor(c)` →
|
|
3
|
+
// `setColor(state, c)`. Color stored as a string (`./value.ts`).
|
|
4
|
+
import { normalizeColor, parseColor, toColor } from "./color.js";
|
|
5
|
+
import { colorCell, isColorSource, writeColor } from "./value.js";
|
|
6
|
+
export function createColorPickerState(props) {
|
|
7
|
+
const value = isColorSource(props.value) ? props.value : toColor(props.value);
|
|
8
|
+
const defaultValue = toColor(props.defaultValue || "#000000");
|
|
9
|
+
const cell = colorCell((value || undefined), defaultValue);
|
|
10
|
+
return { kind: "picker", cell, onChange: props.onChange };
|
|
11
|
+
}
|
|
12
|
+
/** The current color value of the color picker. */
|
|
13
|
+
export const getColor = (state) => normalizeColor(state.cell.read());
|
|
14
|
+
/** Sets the current color value of the color picker (null is ignored). */
|
|
15
|
+
export function setColor(state, color) {
|
|
16
|
+
if (color != null) {
|
|
17
|
+
writeColor(state.cell, color || parseColor("#000000"), state.onChange);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { type Orientation, type SliderSnap, type SliderState } from "../slider/state.js";
|
|
2
|
+
import { type Color, type ColorChannel, type ColorSpace } from "./color.js";
|
|
3
|
+
import { type ColorCell, type ColorInput } from "./value.js";
|
|
4
|
+
export interface ColorSliderProps {
|
|
5
|
+
/** The current value (controlled): a two-way signal or a fixed value. */
|
|
6
|
+
value?: ColorInput;
|
|
7
|
+
/** The default value (uncontrolled). */
|
|
8
|
+
defaultValue?: string | Color;
|
|
9
|
+
/**
|
|
10
|
+
* The color space that the slider operates in. The `channel` must be in this color space.
|
|
11
|
+
* If not provided, this defaults to the color space of the `color` or `defaultColor` value.
|
|
12
|
+
*/
|
|
13
|
+
colorSpace?: ColorSpace;
|
|
14
|
+
/** The color channel that the slider manipulates. */
|
|
15
|
+
channel: ColorChannel;
|
|
16
|
+
/** Handler that is called when the value changes, as the user drags. */
|
|
17
|
+
onChange?: (value: Color) => void;
|
|
18
|
+
/** Handler that is called when the user stops dragging. */
|
|
19
|
+
onChangeEnd?: (value: Color) => void;
|
|
20
|
+
/**
|
|
21
|
+
* The orientation of the Slider.
|
|
22
|
+
*
|
|
23
|
+
* @default 'horizontal'
|
|
24
|
+
*/
|
|
25
|
+
orientation?: Orientation;
|
|
26
|
+
/** Whether the whole Slider is disabled. */
|
|
27
|
+
isDisabled?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Rivet deviation (the Slider `snap` decision): `"release"` (default): during a pointer drag the thumb follows the
|
|
30
|
+
* pointer freely and animates to the closest channel step on release (`data-snapping`); `"drag"`: React Aria
|
|
31
|
+
* behaviour (snaps during the drag). The color value and `onChange` are stepped either way.
|
|
32
|
+
*
|
|
33
|
+
* @default 'release'
|
|
34
|
+
*/
|
|
35
|
+
snap?: SliderSnap;
|
|
36
|
+
}
|
|
37
|
+
export interface ColorSliderStateOptions extends ColorSliderProps {
|
|
38
|
+
/** The locale to use for formatting the color channel value. */
|
|
39
|
+
locale: string;
|
|
40
|
+
}
|
|
41
|
+
export interface ColorSliderState {
|
|
42
|
+
readonly kind: "slider";
|
|
43
|
+
readonly cell: ColorCell<string | Color>;
|
|
44
|
+
readonly channel: ColorChannel;
|
|
45
|
+
readonly colorSpace: ColorSpace | undefined;
|
|
46
|
+
readonly locale: string;
|
|
47
|
+
/** Stored slider data (flags, refs); use `sliderView(state)` with the slider functions. */
|
|
48
|
+
readonly slider: SliderState;
|
|
49
|
+
/** The step of the channel. */
|
|
50
|
+
readonly step: number;
|
|
51
|
+
/** The page size of the channel. */
|
|
52
|
+
readonly pageSize: number;
|
|
53
|
+
readonly onChange: ((value: Color) => void) | undefined;
|
|
54
|
+
readonly onChangeEnd: ((value: Color) => void) | undefined;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Provides state management for a color slider component.
|
|
58
|
+
* Color sliders allow users to adjust an individual channel of a color value.
|
|
59
|
+
*/
|
|
60
|
+
export declare function createColorSliderState(props: ColorSliderStateOptions): ColorSliderState;
|
|
61
|
+
/** The current color value represented by the color slider. */
|
|
62
|
+
export declare function colorSliderValue(state: ColorSliderState): Color;
|
|
63
|
+
/** Sets the current color value. If a string is passed, it will be parsed to a Color. */
|
|
64
|
+
export declare function setColorSliderValue(state: ColorSliderState, value: string | Color): void;
|
|
65
|
+
/**
|
|
66
|
+
* Transient `SliderState` over the color channel (upstream: the spread `useSliderState` result): reads
|
|
67
|
+
* the channel value, writes `color.withChannelValue(channel, v)` (`onChange`), `onChangeEnd` with the color.
|
|
68
|
+
* Build it per call; never store it (it holds closures).
|
|
69
|
+
*/
|
|
70
|
+
export declare function sliderView(state: ColorSliderState): SliderState;
|
|
71
|
+
/** Returns the color that should be displayed in the slider instead of `value` or the optional parameter. */
|
|
72
|
+
export declare function getColorSliderDisplayColor(state: ColorSliderState): Color;
|
|
73
|
+
/** The thumb's value label: the channel value formatted for `locale`. */
|
|
74
|
+
export declare const getColorSliderThumbValueLabel: (state: ColorSliderState) => string;
|
|
75
|
+
/** The formatted value: the channel value formatted for `locale`. */
|
|
76
|
+
export declare const getColorSliderFormattedValue: (state: ColorSliderState) => string;
|
|
77
|
+
/** Whether the color slider is currently being dragged. */
|
|
78
|
+
export declare const isColorSliderDragging: (state: ColorSliderState) => boolean;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Ported from react-stately `useColorSliderState` (packages/react-stately/src/color/useColorSliderState.ts), Apache-2.0, © Adobe.
|
|
2
|
+
// Rivet: plain signals + JSON (serializable); methods are free functions taking the state first.
|
|
3
|
+
// Upstream spreads `useSliderState` into the result; here `state.slider` is the stored `SliderState`
|
|
4
|
+
// data (drag / focus / editable flags) and `sliderView(state)` builds, per call, a transient
|
|
5
|
+
// `SliderState` whose value reads the color channel and whose writes set the color — pass it to the
|
|
6
|
+
// `@rivetjs/cdk/slider/state` functions (`setThumbValue(sliderView(state), 0, v)`). Color-specific
|
|
7
|
+
// members (`value`, `setValue`, `getDisplayColor`, `getThumbValueLabel`, `getFormattedValue`, `step`,
|
|
8
|
+
// `pageSize`, `isDragging`) are functions / fields here. Color stored as a string (`./value.ts`).
|
|
9
|
+
// Deviation: `snap` (Slider free drag + animated snap on release, default `"release"`) passes through to the slider state.
|
|
10
|
+
import { untrack } from "@rivetjs/reactivity";
|
|
11
|
+
import { createSliderState, isThumbDragging } from "../slider/state.js";
|
|
12
|
+
import { normalizeColor, parseColor } from "./color.js";
|
|
13
|
+
import { colorCell, writeColor } from "./value.js";
|
|
14
|
+
/**
|
|
15
|
+
* Provides state management for a color slider component.
|
|
16
|
+
* Color sliders allow users to adjust an individual channel of a color value.
|
|
17
|
+
*/
|
|
18
|
+
export function createColorSliderState(props) {
|
|
19
|
+
const { channel, colorSpace, value, defaultValue, onChange, locale, onChangeEnd, ...otherProps } = props;
|
|
20
|
+
if (value == null && defaultValue == null) {
|
|
21
|
+
throw new Error("useColorSliderState requires a value or defaultValue");
|
|
22
|
+
}
|
|
23
|
+
const cell = colorCell(value, defaultValue);
|
|
24
|
+
const toSpace = (c) => (colorSpace && c ? c.toFormat(colorSpace) : c);
|
|
25
|
+
const color = toSpace(normalizeColor(untrack(cell.read)));
|
|
26
|
+
const defaultColor = toSpace(defaultValue != null ? normalizeColor(defaultValue) : normalizeColor(untrack(cell.read)));
|
|
27
|
+
const range = color.getChannelRange(channel);
|
|
28
|
+
const slider = createSliderState({
|
|
29
|
+
minValue: range.minValue,
|
|
30
|
+
maxValue: range.maxValue,
|
|
31
|
+
step: range.step,
|
|
32
|
+
...otherProps,
|
|
33
|
+
locale,
|
|
34
|
+
value: color.getChannelValue(channel),
|
|
35
|
+
defaultValue: defaultColor.getChannelValue(channel),
|
|
36
|
+
});
|
|
37
|
+
return { kind: "slider", cell, channel, colorSpace, locale, slider, step: range.step, pageSize: range.pageSize, onChange, onChangeEnd };
|
|
38
|
+
}
|
|
39
|
+
/** The current color value represented by the color slider. */
|
|
40
|
+
export function colorSliderValue(state) {
|
|
41
|
+
const colorValue = normalizeColor(state.cell.read());
|
|
42
|
+
return state.colorSpace && colorValue ? colorValue.toFormat(state.colorSpace) : colorValue;
|
|
43
|
+
}
|
|
44
|
+
/** Sets the current color value. If a string is passed, it will be parsed to a Color. */
|
|
45
|
+
export function setColorSliderValue(state, value) {
|
|
46
|
+
writeColor(state.cell, normalizeColor(value), state.onChange);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Transient `SliderState` over the color channel (upstream: the spread `useSliderState` result): reads
|
|
50
|
+
* the channel value, writes `color.withChannelValue(channel, v)` (`onChange`), `onChangeEnd` with the color.
|
|
51
|
+
* Build it per call; never store it (it holds closures).
|
|
52
|
+
*/
|
|
53
|
+
export function sliderView(state) {
|
|
54
|
+
const view = {
|
|
55
|
+
...state.slider,
|
|
56
|
+
// Upstream returns the channel's step / pageSize over the slider state's.
|
|
57
|
+
step: state.step,
|
|
58
|
+
pageSize: state.pageSize,
|
|
59
|
+
// Upstream overrides getThumbValueLabel / getFormattedValue: the channel value formatted for the color.
|
|
60
|
+
format: {
|
|
61
|
+
formattedValue: () => getColorSliderFormattedValue(state),
|
|
62
|
+
thumbValueLabel: (_index) => getColorSliderThumbValueLabel(state),
|
|
63
|
+
},
|
|
64
|
+
value: () => colorSliderValue(state).getChannelValue(state.channel),
|
|
65
|
+
writable: false,
|
|
66
|
+
scalar: true,
|
|
67
|
+
onChange: (v) => writeColor(state.cell, untrack(() => colorSliderValue(state)).withChannelValue(state.channel, v), state.onChange),
|
|
68
|
+
// onChange will have already been called with the right value, this is just to trigger onChangeEnd
|
|
69
|
+
onChangeEnd: (v) => state.onChangeEnd?.(untrack(() => colorSliderValue(state)).withChannelValue(state.channel, v)),
|
|
70
|
+
};
|
|
71
|
+
return view;
|
|
72
|
+
}
|
|
73
|
+
/** Returns the color that should be displayed in the slider instead of `value` or the optional parameter. */
|
|
74
|
+
export function getColorSliderDisplayColor(state) {
|
|
75
|
+
const color = colorSliderValue(state);
|
|
76
|
+
switch (state.channel) {
|
|
77
|
+
case "hue":
|
|
78
|
+
return parseColor(`hsl(${color.getChannelValue("hue")}, 100%, 50%)`);
|
|
79
|
+
case "lightness":
|
|
80
|
+
case "brightness":
|
|
81
|
+
case "saturation":
|
|
82
|
+
case "red":
|
|
83
|
+
case "green":
|
|
84
|
+
case "blue":
|
|
85
|
+
return color.withChannelValue("alpha", 1);
|
|
86
|
+
case "alpha": {
|
|
87
|
+
return color;
|
|
88
|
+
}
|
|
89
|
+
default:
|
|
90
|
+
throw new Error("Unknown color channel: " + state.channel);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** The thumb's value label: the channel value formatted for `locale`. */
|
|
94
|
+
export const getColorSliderThumbValueLabel = (state) => colorSliderValue(state).formatChannelValue(state.channel, state.locale);
|
|
95
|
+
/** The formatted value: the channel value formatted for `locale`. */
|
|
96
|
+
export const getColorSliderFormattedValue = (state) => colorSliderValue(state).formatChannelValue(state.channel, state.locale);
|
|
97
|
+
/** Whether the color slider is currently being dragged. */
|
|
98
|
+
export const isColorSliderDragging = (state) => isThumbDragging(state.slider, 0);
|
package/color/value.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import { type Color } from "./color.js";
|
|
3
|
+
/** A stored color value: a parseable string, a Color, or null / undefined (empty). */
|
|
4
|
+
export type ColorValue = string | Color | null | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Controlled color input: a two-way signal (the state writes it), a read-only accessor (Rivet: a controlled value
|
|
7
|
+
* that changes — the state only calls `onChange`, like a React controlled prop; ColorPicker provides one), or a
|
|
8
|
+
* fixed plain value.
|
|
9
|
+
*/
|
|
10
|
+
export type ColorInput<T extends ColorValue = string | Color> = T | Signal<T> | (() => T);
|
|
11
|
+
export interface ColorCell<T extends ColorValue = ColorValue> {
|
|
12
|
+
/** Value source; read with `read()` (a Signal when `writable`). */
|
|
13
|
+
readonly read: () => T;
|
|
14
|
+
/** Whether writes go to `read` (uncontrolled or a two-way signal). */
|
|
15
|
+
readonly writable: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** A controlled source that is read, not parsed: a Signal or an accessor. */
|
|
18
|
+
export declare const isColorSource: (v: unknown) => v is () => ColorValue;
|
|
19
|
+
export declare const isSignal: <T>(v: unknown) => v is Signal<T>;
|
|
20
|
+
/** react-stately `useControlledState(value, defaultValue)`: controlled when `input !== undefined`. */
|
|
21
|
+
export declare function colorCell<T extends ColorValue>(input: ColorInput<T> | undefined, defaultValue: T): ColorCell<T>;
|
|
22
|
+
/**
|
|
23
|
+
* useControlledState `setValue`: no-op when the color is unchanged (same `colorKey`; upstream compares
|
|
24
|
+
* object identity), else writes the cell (a Color into a signal holding a Color, otherwise the lossless
|
|
25
|
+
* string) and calls `onChange`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function writeColor<C extends Color | null>(cell: ColorCell, color: C, onChange: ((value: C) => void) | undefined): void;
|
package/color/value.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Rivet plumbing for the color states (port of react-stately `useControlledState` semantics over signals).
|
|
2
|
+
// Not a port: the stored value is a color string (or a Color in a user-owned signal); Color class
|
|
3
|
+
// instances are not serializable, so uncontrolled state keeps `stringifyColor` strings.
|
|
4
|
+
import { signal, untrack, _regionState } from "@rivetjs/reactivity";
|
|
5
|
+
import { colorKey, stringifyColor } from "./color.js";
|
|
6
|
+
/** A controlled source that is read, not parsed: a Signal or an accessor. */
|
|
7
|
+
export const isColorSource = (v) => typeof v === "function";
|
|
8
|
+
export const isSignal = (v) => typeof v === "function" && typeof v.set === "function";
|
|
9
|
+
/** react-stately `useControlledState(value, defaultValue)`: controlled when `input !== undefined`. */
|
|
10
|
+
export function colorCell(input, defaultValue) {
|
|
11
|
+
if (input === undefined) {
|
|
12
|
+
const initial = (defaultValue != null && typeof defaultValue !== "string" ? stringifyColor(defaultValue) : defaultValue);
|
|
13
|
+
return { read: _regionState(() => signal(initial)), writable: true };
|
|
14
|
+
}
|
|
15
|
+
if (isSignal(input))
|
|
16
|
+
return { read: input, writable: true };
|
|
17
|
+
if (typeof input === "function")
|
|
18
|
+
return { read: input, writable: false };
|
|
19
|
+
const fixed = (input != null && typeof input !== "string" ? stringifyColor(input) : input);
|
|
20
|
+
return { read: _regionState(() => signal(fixed)), writable: false };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* useControlledState `setValue`: no-op when the color is unchanged (same `colorKey`; upstream compares
|
|
24
|
+
* object identity), else writes the cell (a Color into a signal holding a Color, otherwise the lossless
|
|
25
|
+
* string) and calls `onChange`.
|
|
26
|
+
*/
|
|
27
|
+
export function writeColor(cell, color, onChange) {
|
|
28
|
+
const current = untrack(cell.read);
|
|
29
|
+
if (colorKey(current) === colorKey(color))
|
|
30
|
+
return;
|
|
31
|
+
if (cell.writable) {
|
|
32
|
+
const stored = color == null ? color : current != null && typeof current !== "string" ? color : stringifyColor(color);
|
|
33
|
+
cell.read.set(stored);
|
|
34
|
+
}
|
|
35
|
+
onChange?.(color);
|
|
36
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type Signal } from "@rivetjs/reactivity";
|
|
2
|
+
import { type Color } from "./color.js";
|
|
3
|
+
import { type ColorCell, type ColorInput } from "./value.js";
|
|
4
|
+
export interface ColorWheelProps {
|
|
5
|
+
/** The current value (controlled): a two-way signal or a fixed value. */
|
|
6
|
+
value?: ColorInput;
|
|
7
|
+
/**
|
|
8
|
+
* The default value (uncontrolled).
|
|
9
|
+
*
|
|
10
|
+
* @default 'hsl(0, 100%, 50%)'
|
|
11
|
+
*/
|
|
12
|
+
defaultValue?: string | Color;
|
|
13
|
+
/** Whether the ColorWheel is disabled. */
|
|
14
|
+
isDisabled?: boolean;
|
|
15
|
+
/** Handler that is called when the value changes, as the user drags. */
|
|
16
|
+
onChange?: (value: Color) => void;
|
|
17
|
+
/** Handler that is called when the user stops dragging. */
|
|
18
|
+
onChangeEnd?: (value: Color) => void;
|
|
19
|
+
}
|
|
20
|
+
export interface ColorWheelState {
|
|
21
|
+
readonly kind: "wheel";
|
|
22
|
+
readonly cell: ColorCell<string | Color>;
|
|
23
|
+
/** The default color value (lossless color string). */
|
|
24
|
+
readonly defaultValue: string;
|
|
25
|
+
/** Whether the color wheel is currently being dragged. */
|
|
26
|
+
readonly dragging: Signal<boolean>;
|
|
27
|
+
/** The step value of the hue channel, used when incrementing and decrementing. */
|
|
28
|
+
readonly step: number;
|
|
29
|
+
/** The page step value of the hue channel, used when incrementing and decrementing. */
|
|
30
|
+
readonly pageStep: number;
|
|
31
|
+
/** Whether the color wheel is disabled (at creation; read `isColorWheelDisabled(state)`, follows a live `disabled`). */
|
|
32
|
+
readonly isDisabled: boolean;
|
|
33
|
+
/** Rivet (live props): the caller's `isDisabled` accessor, when it passed one. */
|
|
34
|
+
readonly disabled?: () => boolean | undefined;
|
|
35
|
+
readonly onChange: ((value: Color) => void) | undefined;
|
|
36
|
+
readonly onChangeEnd: ((value: Color) => void) | undefined;
|
|
37
|
+
/** Upstream refs: last color set (string), dragging flag. */
|
|
38
|
+
readonly refs: {
|
|
39
|
+
value: string;
|
|
40
|
+
dragging: boolean;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Provides state management for a color wheel component.
|
|
45
|
+
* Color wheels allow users to adjust the hue of an HSL or HSB color value on a circular track.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createColorWheelState(props: ColorWheelProps): ColorWheelState;
|
|
48
|
+
/** Whether the color wheel is disabled now (its live `isDisabled` accessor, else the creation value). */
|
|
49
|
+
export declare const isColorWheelDisabled: (state: ColorWheelState) => boolean;
|
|
50
|
+
/** The current color value represented by the color wheel (hsl / hsb; rgb values convert to hsl). */
|
|
51
|
+
export declare const colorWheelValue: (state: ColorWheelState) => Color;
|
|
52
|
+
/** The default color value. */
|
|
53
|
+
export declare const colorWheelDefaultValue: (state: ColorWheelState) => Color;
|
|
54
|
+
/** Sets the color value represented by the color wheel, and triggers `onChange`. */
|
|
55
|
+
export declare function setColorWheelValue(state: ColorWheelState, v: string | Color): void;
|
|
56
|
+
/** The current value of the hue channel displayed by the color wheel. */
|
|
57
|
+
export declare const getHue: (state: ColorWheelState) => number;
|
|
58
|
+
/** Sets the hue channel of the current color value and triggers `onChange`. */
|
|
59
|
+
export declare function setHue(state: ColorWheelState, v: number): void;
|
|
60
|
+
/**
|
|
61
|
+
* Sets the hue channel of the current color value based on the given coordinates and radius of
|
|
62
|
+
* the color wheel, and triggers `onChange`.
|
|
63
|
+
*/
|
|
64
|
+
export declare function setHueFromPoint(state: ColorWheelState, x: number, y: number, radius: number): void;
|
|
65
|
+
/** Returns the coordinates of the thumb relative to the center point of the color wheel. */
|
|
66
|
+
export declare function getColorWheelThumbPosition(state: ColorWheelState, radius: number): {
|
|
67
|
+
x: number;
|
|
68
|
+
y: number;
|
|
69
|
+
};
|
|
70
|
+
/** Increments the hue by the given amount (defaults to 1). */
|
|
71
|
+
export declare function incrementHue(state: ColorWheelState, stepSize?: number): void;
|
|
72
|
+
/** Decrements the hue by the given amount (defaults to 1). */
|
|
73
|
+
export declare function decrementHue(state: ColorWheelState, stepSize?: number): void;
|
|
74
|
+
/** Sets whether the color wheel is being dragged (fires `onChangeEnd` when a drag ends). */
|
|
75
|
+
export declare function setColorWheelDragging(state: ColorWheelState, isDragging: boolean): void;
|
|
76
|
+
/** Returns the color that should be displayed in the color wheel instead of `value`. */
|
|
77
|
+
export declare function getColorWheelDisplayColor(state: ColorWheelState): Color;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// Ported from react-stately `useColorWheelState` (packages/react-stately/src/color/useColorWheelState.ts), Apache-2.0, © Adobe.
|
|
2
|
+
// Rivet: plain signals + JSON (serializable); methods are free functions taking the state first
|
|
3
|
+
// (`state.setHue(v)` → `setHue(state, v)`; shared names dispatch on `state.kind` in `./index.ts`).
|
|
4
|
+
// Color stored as a string (`./value.ts`); `valueRef` / `isDraggingRef` → `state.refs`.
|
|
5
|
+
import { signal, untrack, _regionState } from "@rivetjs/reactivity";
|
|
6
|
+
import { normalizeColor, parseColor, stringifyColor } from "./color.js";
|
|
7
|
+
import { colorCell, writeColor } from "./value.js";
|
|
8
|
+
const DEFAULT_COLOR = "hsl(0, 100%, 50%)";
|
|
9
|
+
function roundToStep(value, step) {
|
|
10
|
+
return Math.round(value / step) * step;
|
|
11
|
+
}
|
|
12
|
+
function mod(n, m) {
|
|
13
|
+
return ((n % m) + m) % m;
|
|
14
|
+
}
|
|
15
|
+
function roundDown(v) {
|
|
16
|
+
const r = Math.floor(v);
|
|
17
|
+
if (r === v) {
|
|
18
|
+
return v - 1;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return r;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function degToRad(deg) {
|
|
25
|
+
return (deg * Math.PI) / 180;
|
|
26
|
+
}
|
|
27
|
+
function radToDeg(rad) {
|
|
28
|
+
return (rad * 180) / Math.PI;
|
|
29
|
+
}
|
|
30
|
+
// 0deg = 3 o'clock. increases clockwise
|
|
31
|
+
function angleToCartesian(angle, radius) {
|
|
32
|
+
const rad = degToRad(360 - angle + 90);
|
|
33
|
+
const x = Math.sin(rad) * radius;
|
|
34
|
+
const y = Math.cos(rad) * radius;
|
|
35
|
+
return { x, y };
|
|
36
|
+
}
|
|
37
|
+
function cartesianToAngle(x, y, radius) {
|
|
38
|
+
const deg = radToDeg(Math.atan2(y / radius, x / radius));
|
|
39
|
+
return (deg + 360) % 360;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Provides state management for a color wheel component.
|
|
43
|
+
* Color wheels allow users to adjust the hue of an HSL or HSB color value on a circular track.
|
|
44
|
+
*/
|
|
45
|
+
export function createColorWheelState(props) {
|
|
46
|
+
const { value: propsValue, onChange, onChangeEnd } = props;
|
|
47
|
+
let { defaultValue } = props;
|
|
48
|
+
if (!propsValue && !defaultValue) {
|
|
49
|
+
defaultValue = DEFAULT_COLOR;
|
|
50
|
+
}
|
|
51
|
+
const cell = colorCell(propsValue, (defaultValue ?? DEFAULT_COLOR));
|
|
52
|
+
const initialValue = normalizeColor(untrack(cell.read));
|
|
53
|
+
// The hue channel range is the same in hsl and hsb.
|
|
54
|
+
const { step, pageSize: pageStep } = parseColor(DEFAULT_COLOR).getChannelRange("hue");
|
|
55
|
+
// Rivet (live props): an `isDisabled` accessor is stored as given (`isColorWheelDisabled` reads it).
|
|
56
|
+
const disabled = typeof props.isDisabled === "function" ? props.isDisabled : undefined;
|
|
57
|
+
return {
|
|
58
|
+
kind: "wheel",
|
|
59
|
+
cell,
|
|
60
|
+
defaultValue: stringifyColor(propsValue !== undefined ? initialValue : normalizeColor(defaultValue)),
|
|
61
|
+
dragging: _regionState(() => signal(false)),
|
|
62
|
+
step,
|
|
63
|
+
pageStep,
|
|
64
|
+
isDisabled: disabled ? !!untrack(disabled) : props.isDisabled || false,
|
|
65
|
+
...(disabled ? { disabled } : {}),
|
|
66
|
+
onChange,
|
|
67
|
+
onChangeEnd,
|
|
68
|
+
refs: { value: stringifyColor(toWheelColor(initialValue)), dragging: false },
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/** Whether the color wheel is disabled now (its live `isDisabled` accessor, else the creation value). */
|
|
72
|
+
export const isColorWheelDisabled = (state) => (state.disabled ? !!state.disabled() : state.isDisabled);
|
|
73
|
+
function toWheelColor(stateValue) {
|
|
74
|
+
const colorSpace = stateValue.getColorSpace();
|
|
75
|
+
return colorSpace === "hsl" || colorSpace === "hsb" ? stateValue : stateValue.toFormat("hsl");
|
|
76
|
+
}
|
|
77
|
+
/** The current color value represented by the color wheel (hsl / hsb; rgb values convert to hsl). */
|
|
78
|
+
export const colorWheelValue = (state) => toWheelColor(normalizeColor(state.cell.read()));
|
|
79
|
+
/** The default color value. */
|
|
80
|
+
export const colorWheelDefaultValue = (state) => parseColor(state.defaultValue);
|
|
81
|
+
function setColor(state, value) {
|
|
82
|
+
state.refs.value = stringifyColor(value);
|
|
83
|
+
writeColor(state.cell, value, state.onChange);
|
|
84
|
+
}
|
|
85
|
+
/** Sets the color value represented by the color wheel, and triggers `onChange`. */
|
|
86
|
+
export function setColorWheelValue(state, v) {
|
|
87
|
+
setColor(state, normalizeColor(v));
|
|
88
|
+
}
|
|
89
|
+
/** The current value of the hue channel displayed by the color wheel. */
|
|
90
|
+
export const getHue = (state) => colorWheelValue(state).getChannelValue("hue");
|
|
91
|
+
/** Sets the hue channel of the current color value and triggers `onChange`. */
|
|
92
|
+
export function setHue(state, v) {
|
|
93
|
+
const value = untrack(() => colorWheelValue(state));
|
|
94
|
+
const hue = value.getChannelValue("hue");
|
|
95
|
+
if (v > 360) {
|
|
96
|
+
// Make sure you can always get back to 0.
|
|
97
|
+
v = 0;
|
|
98
|
+
}
|
|
99
|
+
v = roundToStep(mod(v, 360), state.step);
|
|
100
|
+
if (hue !== v) {
|
|
101
|
+
setColor(state, value.withChannelValue("hue", v));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Sets the hue channel of the current color value based on the given coordinates and radius of
|
|
106
|
+
* the color wheel, and triggers `onChange`.
|
|
107
|
+
*/
|
|
108
|
+
export function setHueFromPoint(state, x, y, radius) {
|
|
109
|
+
setHue(state, cartesianToAngle(x, y, radius));
|
|
110
|
+
}
|
|
111
|
+
/** Returns the coordinates of the thumb relative to the center point of the color wheel. */
|
|
112
|
+
export function getColorWheelThumbPosition(state, radius) {
|
|
113
|
+
return angleToCartesian(colorWheelValue(state).getChannelValue("hue"), radius);
|
|
114
|
+
}
|
|
115
|
+
/** Increments the hue by the given amount (defaults to 1). */
|
|
116
|
+
export function incrementHue(state, stepSize = 1) {
|
|
117
|
+
const value = untrack(() => colorWheelValue(state));
|
|
118
|
+
const { minValue: minValueX, maxValue: maxValueX } = value.getChannelRange("hue");
|
|
119
|
+
const s = Math.max(stepSize, state.step);
|
|
120
|
+
let newValue = value.getChannelValue("hue") + s;
|
|
121
|
+
if (newValue >= maxValueX) {
|
|
122
|
+
// Make sure you can always get back to 0.
|
|
123
|
+
newValue = minValueX;
|
|
124
|
+
}
|
|
125
|
+
setHue(state, roundToStep(mod(newValue, 360), s));
|
|
126
|
+
}
|
|
127
|
+
/** Decrements the hue by the given amount (defaults to 1). */
|
|
128
|
+
export function decrementHue(state, stepSize = 1) {
|
|
129
|
+
const hue = untrack(() => getHue(state));
|
|
130
|
+
const s = Math.max(stepSize, state.step);
|
|
131
|
+
if (hue === 0) {
|
|
132
|
+
// We can't just subtract step because this might be the case:
|
|
133
|
+
// |(previous step) - 0| < step size
|
|
134
|
+
setHue(state, roundDown(360 / s) * s);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
setHue(state, roundToStep(mod(hue - s, 360), s));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Sets whether the color wheel is being dragged (fires `onChangeEnd` when a drag ends). */
|
|
141
|
+
export function setColorWheelDragging(state, isDragging) {
|
|
142
|
+
const wasDragging = state.refs.dragging;
|
|
143
|
+
state.refs.dragging = isDragging;
|
|
144
|
+
if (state.onChangeEnd && !isDragging && wasDragging) {
|
|
145
|
+
state.onChangeEnd(parseColor(state.refs.value));
|
|
146
|
+
}
|
|
147
|
+
state.dragging.set(isDragging);
|
|
148
|
+
}
|
|
149
|
+
/** Returns the color that should be displayed in the color wheel instead of `value`. */
|
|
150
|
+
export function getColorWheelDisplayColor(state) {
|
|
151
|
+
return colorWheelValue(state).toFormat("hsl").withChannelValue("saturation", 100).withChannelValue("lightness", 50).withChannelValue("alpha", 1);
|
|
152
|
+
}
|