@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,49 @@
|
|
|
1
|
+
import { type Geometry } from "./geometry.js";
|
|
2
|
+
export type JustifiedLastRow = "fill" | "justify" | "left" | "center";
|
|
3
|
+
export interface JustifiedOptions {
|
|
4
|
+
/** Target row height in px (upstream `targetRowHeight`). */
|
|
5
|
+
rowHeight: number;
|
|
6
|
+
/** Row heights may vary ± rowHeight · tolerance (upstream `targetRowHeightTolerance`). Default 0.25. */
|
|
7
|
+
tolerance?: number;
|
|
8
|
+
/** Edge-case row height bounds (upstream `edgeCaseMinRowHeight` / `edgeCaseMaxRowHeight`). Default 0.5× / 2× `rowHeight`. */
|
|
9
|
+
minRowHeight?: number;
|
|
10
|
+
maxRowHeight?: number;
|
|
11
|
+
/** `[column, row]` gaps (upstream `boxSpacing`). */
|
|
12
|
+
gap: readonly [number, number];
|
|
13
|
+
/** Last (widow) row. Default `"fill"`. */
|
|
14
|
+
lastRow?: JustifiedLastRow;
|
|
15
|
+
}
|
|
16
|
+
/** A row decided at the reference width: item indices, natural (justify) or widow completion. */
|
|
17
|
+
export interface RowPlan {
|
|
18
|
+
items: number[];
|
|
19
|
+
/** `justify`: height = (W − (k − 1)·gap) / A, unless clamped at the reference width. `widow`: previous row's height. */
|
|
20
|
+
kind: "justify" | "widow";
|
|
21
|
+
style: "justify" | "left" | "center";
|
|
22
|
+
clamped: number | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Justified rows (Flickr / Google Photos style) of items with aspect ratios `aspects` (width / height; an item weight
|
|
26
|
+
* multiplies it), decided at container width `refWidth`; geometry in terms of the container width (the breakpoint's
|
|
27
|
+
* unit with one column).
|
|
28
|
+
*/
|
|
29
|
+
export declare function placeJustified(aspects: ArrayLike<number>, refWidth: number, options: JustifiedOptions): Geometry;
|
|
30
|
+
/** A justified placement plus its row plans (resumable: `placeJustifiedRun(…, { run, from })`). */
|
|
31
|
+
export interface JustifiedRun {
|
|
32
|
+
geometry: Geometry;
|
|
33
|
+
/** Rows closed by the greedy pass (before the last-row treatment). */
|
|
34
|
+
closed: readonly RowPlan[];
|
|
35
|
+
/** Final rows (after the last-row treatment). */
|
|
36
|
+
rows: readonly RowPlan[];
|
|
37
|
+
/** Per final row: top `[k, c]` and height `[k, c]` (linear in W). */
|
|
38
|
+
rowTop: Float64Array;
|
|
39
|
+
rowHeight: Float64Array;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* `placeJustified` with a checkpoint: when only items from index `from` on changed (same reference width + options),
|
|
43
|
+
* the rows closed before the one holding `from` (and before the previous last closed row, which the last-row
|
|
44
|
+
* treatment may rebalance) are kept with their geometry; the greedy pass restarts there. Equal to a full run.
|
|
45
|
+
*/
|
|
46
|
+
export declare function placeJustifiedRun(aspects: ArrayLike<number>, refWidth: number, options: JustifiedOptions, resume: {
|
|
47
|
+
run: JustifiedRun;
|
|
48
|
+
from: number;
|
|
49
|
+
} | null): JustifiedRun;
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
// Ported from flickr/justified-layout (lib/row.js, lib/index.js, v4.1.0), MIT, Copyright 2019 SmugMug, Inc.
|
|
2
|
+
// Rivet:
|
|
3
|
+
// - the row packing (`Row.addItem`: min / max aspect ratio window from `targetRowHeight` ± tolerance, the pano special
|
|
4
|
+
// case, accept-or-reject by distance to the target; `completeLayout`: edge-case clamp to [min, max] row height with
|
|
5
|
+
// widths kept at the natural height; widows completed at the previous row's height with `widowLayoutStyle`
|
|
6
|
+
// left / justify / center; center = the row centred in the width) runs at a reference container width and decides the rows; the geometry is then written
|
|
7
|
+
// as LINEAR terms of the container width W (`./geometry.ts`): a justified row of k items with aspect sum A has height
|
|
8
|
+
// (W − (k − 1)·gap) / A, so the server CSS fills the width exactly at any W of the breakpoint (no pixel rounding,
|
|
9
|
+
// upstream's integer error distribution is unnecessary); a row clamped at the reference width keeps the clamped
|
|
10
|
+
// height (constant) and its natural widths (items crop with `object-fit: cover`, as upstream);
|
|
11
|
+
// - `lastRow: "fill"` (Rivet, the default) rebalances the widow row with the row before it (best split of their items
|
|
12
|
+
// into one or two justified rows, nearest to the target height, rows inside [minRowHeight, maxRowHeight]) so the
|
|
13
|
+
// bottom edge is flush and every row fills the width; when no such arrangement exists (a lone portrait, a short
|
|
14
|
+
// list) the widow stays `left` (upstream default); `"justify"` / `"left"` / `"center"` = upstream `widowLayoutStyle`
|
|
15
|
+
// (at the previous row's height); a widow wider than the width at that height becomes a justified row (Deviation:
|
|
16
|
+
// upstream lets it overflow);
|
|
17
|
+
// - not ported: `containerPadding` (the grid has none), `maxNumRows`, `forceAspectRatio`, `fullWidthBreakoutRowCadence`
|
|
18
|
+
// (breakout rows), `showWidows: false`.
|
|
19
|
+
import { emptyGeometry } from "./geometry.js";
|
|
20
|
+
/** Row.addItem at width `width` (returns [accepted, completedHeight | null]). */
|
|
21
|
+
function addItem(row, aspects, i, width, spacing, target, tolerance) {
|
|
22
|
+
const minAspectRatio = (width / target) * (1 - tolerance);
|
|
23
|
+
const maxAspectRatio = (width / target) * (1 + tolerance);
|
|
24
|
+
const count = row.length + 1;
|
|
25
|
+
const rowWidthWithoutSpacing = width - (count - 1) * spacing;
|
|
26
|
+
let newAspectRatio = aspects[i];
|
|
27
|
+
for (const j of row)
|
|
28
|
+
newAspectRatio += aspects[j];
|
|
29
|
+
const targetAspectRatio = rowWidthWithoutSpacing / target;
|
|
30
|
+
if (newAspectRatio < minAspectRatio) {
|
|
31
|
+
row.push(i);
|
|
32
|
+
return [true, false];
|
|
33
|
+
}
|
|
34
|
+
if (newAspectRatio > maxAspectRatio) {
|
|
35
|
+
if (row.length === 0) {
|
|
36
|
+
row.push(i);
|
|
37
|
+
return [true, true];
|
|
38
|
+
}
|
|
39
|
+
const previousRowWidthWithoutSpacing = width - (row.length - 1) * spacing;
|
|
40
|
+
const previousAspectRatio = newAspectRatio - aspects[i];
|
|
41
|
+
const previousTargetAspectRatio = previousRowWidthWithoutSpacing / target;
|
|
42
|
+
if (Math.abs(newAspectRatio - targetAspectRatio) > Math.abs(previousAspectRatio - previousTargetAspectRatio))
|
|
43
|
+
return [false, true];
|
|
44
|
+
row.push(i);
|
|
45
|
+
return [true, true];
|
|
46
|
+
}
|
|
47
|
+
row.push(i);
|
|
48
|
+
return [true, true];
|
|
49
|
+
}
|
|
50
|
+
const sumOf = (items, aspects) => {
|
|
51
|
+
let a = 0;
|
|
52
|
+
for (const j of items)
|
|
53
|
+
a += aspects[j];
|
|
54
|
+
return a;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Justified rows (Flickr / Google Photos style) of items with aspect ratios `aspects` (width / height; an item weight
|
|
58
|
+
* multiplies it), decided at container width `refWidth`; geometry in terms of the container width (the breakpoint's
|
|
59
|
+
* unit with one column).
|
|
60
|
+
*/
|
|
61
|
+
export function placeJustified(aspects, refWidth, options) {
|
|
62
|
+
return placeJustifiedRun(aspects, refWidth, options, null).geometry;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* `placeJustified` with a checkpoint: when only items from index `from` on changed (same reference width + options),
|
|
66
|
+
* the rows closed before the one holding `from` (and before the previous last closed row, which the last-row
|
|
67
|
+
* treatment may rebalance) are kept with their geometry; the greedy pass restarts there. Equal to a full run.
|
|
68
|
+
*/
|
|
69
|
+
export function placeJustifiedRun(aspects, refWidth, options, resume) {
|
|
70
|
+
const count = aspects.length;
|
|
71
|
+
const target = Math.max(1, options.rowHeight);
|
|
72
|
+
const tolerance = options.tolerance ?? 0.25;
|
|
73
|
+
const minH = options.minRowHeight ?? 0.5 * target;
|
|
74
|
+
const maxH = options.maxRowHeight ?? 2 * target;
|
|
75
|
+
const [gapX, gapY] = options.gap;
|
|
76
|
+
const lastRow = options.lastRow ?? "fill";
|
|
77
|
+
const W = refWidth;
|
|
78
|
+
const clampAt = (k, A) => {
|
|
79
|
+
const h = (W - (k - 1) * gapX) / A;
|
|
80
|
+
const c = Math.max(minH, Math.min(h, maxH));
|
|
81
|
+
return c !== h ? c : null;
|
|
82
|
+
};
|
|
83
|
+
const rowHeightAt = (row) => row.clamped ?? (W - (row.items.length - 1) * gapX) / sumOf(row.items, aspects);
|
|
84
|
+
// computeLayout: rows at the reference width.
|
|
85
|
+
const rows = [];
|
|
86
|
+
// Checkpoint: kept closed rows end before `from - 1` (a row closes on the item after it, so a change at `from` can
|
|
87
|
+
// reopen the row ending at `from - 1`) and before the previous last closed row.
|
|
88
|
+
let keep = 0;
|
|
89
|
+
if (resume) {
|
|
90
|
+
const prevClosed = resume.run.closed;
|
|
91
|
+
const limit = Math.min(prevClosed.length - 1, resume.run.rows.length);
|
|
92
|
+
while (keep < limit && prevClosed[keep].items[prevClosed[keep].items.length - 1] + 1 < resume.from && prevClosed[keep] === resume.run.rows[keep])
|
|
93
|
+
keep++;
|
|
94
|
+
for (let r = 0; r < keep; r++)
|
|
95
|
+
rows.push(prevClosed[r]);
|
|
96
|
+
}
|
|
97
|
+
const start = keep ? rows[keep - 1].items[rows[keep - 1].items.length - 1] + 1 : 0;
|
|
98
|
+
let current = [];
|
|
99
|
+
const close = () => {
|
|
100
|
+
rows.push({ items: current, kind: "justify", style: "justify", clamped: clampAt(current.length, sumOf(current, aspects)) });
|
|
101
|
+
current = [];
|
|
102
|
+
};
|
|
103
|
+
for (let i = start; i < count; i++) {
|
|
104
|
+
const [added, complete] = addItem(current, aspects, i, W, gapX, target, tolerance);
|
|
105
|
+
if (complete) {
|
|
106
|
+
close();
|
|
107
|
+
if (!added) {
|
|
108
|
+
const [, again] = addItem(current, aspects, i, W, gapX, target, tolerance);
|
|
109
|
+
if (again)
|
|
110
|
+
close();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const closed = rows.slice();
|
|
115
|
+
if (current.length) {
|
|
116
|
+
let filled = false;
|
|
117
|
+
if (lastRow === "fill") {
|
|
118
|
+
const prev = rows[rows.length - 1];
|
|
119
|
+
const pool = prev ? [...prev.items, ...current] : current;
|
|
120
|
+
// One row, or the best split into two, nearest to the target height (worst row of the two); only arrangements
|
|
121
|
+
// whose rows stay inside [minRowHeight, maxRowHeight] (a clamped row would crop: then the widow stays `left`).
|
|
122
|
+
const total = sumOf(pool, aspects);
|
|
123
|
+
const inRange = (h) => h >= minH - 1e-9 && h <= maxH + 1e-9;
|
|
124
|
+
const one = (W - (pool.length - 1) * gapX) / total;
|
|
125
|
+
let bestCost = inRange(one) ? Math.abs(one - target) : Infinity;
|
|
126
|
+
let split = pool.length;
|
|
127
|
+
let left = 0;
|
|
128
|
+
for (let m = 1; m < pool.length; m++) {
|
|
129
|
+
left += aspects[pool[m - 1]];
|
|
130
|
+
const h1 = (W - (m - 1) * gapX) / left;
|
|
131
|
+
const h2 = (W - (pool.length - m - 1) * gapX) / (total - left);
|
|
132
|
+
if (!inRange(h1) || !inRange(h2))
|
|
133
|
+
continue;
|
|
134
|
+
const cost = Math.max(Math.abs(h1 - target), Math.abs(h2 - target));
|
|
135
|
+
if (cost < bestCost - 1e-9) {
|
|
136
|
+
bestCost = cost;
|
|
137
|
+
split = m;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (bestCost < Infinity) {
|
|
141
|
+
if (prev)
|
|
142
|
+
rows.pop();
|
|
143
|
+
for (const items of split === pool.length ? [pool] : [pool.slice(0, split), pool.slice(split)])
|
|
144
|
+
rows.push({ items, kind: "justify", style: "justify", clamped: null });
|
|
145
|
+
filled = true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (!filled) {
|
|
149
|
+
// Widow at the previous row's height; one that would overflow the width at it becomes a justified row instead.
|
|
150
|
+
const style = lastRow === "fill" ? "left" : lastRow;
|
|
151
|
+
const prev = rows[rows.length - 1];
|
|
152
|
+
const widowH = prev ? rowHeightAt(prev) : Math.max(minH, Math.min(target, maxH));
|
|
153
|
+
const natural = sumOf(current, aspects) * widowH + (current.length - 1) * gapX;
|
|
154
|
+
if (natural > W + 1e-6)
|
|
155
|
+
rows.push({ items: current, kind: "justify", style: "justify", clamped: clampAt(current.length, sumOf(current, aspects)) });
|
|
156
|
+
else
|
|
157
|
+
rows.push({ items: current, kind: "widow", style, clamped: null });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Geometry: linear in W. Kept rows (still final and unchanged) copy their item geometry.
|
|
161
|
+
const g = emptyGeometry(count);
|
|
162
|
+
const rowTop = new Float64Array(rows.length * 2);
|
|
163
|
+
const rowHeight = new Float64Array(rows.length * 2);
|
|
164
|
+
let first = 0;
|
|
165
|
+
if (resume) {
|
|
166
|
+
const prev = resume.run;
|
|
167
|
+
while (first < keep && rows[first] === prev.rows[first])
|
|
168
|
+
first++;
|
|
169
|
+
if (first) {
|
|
170
|
+
const end = rows[first - 1].items[rows[first - 1].items.length - 1] + 1;
|
|
171
|
+
const pg = prev.geometry;
|
|
172
|
+
g.x.set(pg.x.subarray(0, 2 * end));
|
|
173
|
+
g.width.set(pg.width.subarray(0, 2 * end));
|
|
174
|
+
g.height.set(pg.height.subarray(0, 2 * end));
|
|
175
|
+
g.top.set(pg.top.subarray(0, 2 * end));
|
|
176
|
+
g.ratio.set(pg.ratio.subarray(0, end));
|
|
177
|
+
rowTop.set(prev.rowTop.subarray(0, 2 * first));
|
|
178
|
+
rowHeight.set(prev.rowHeight.subarray(0, 2 * first));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
let topK = 0;
|
|
182
|
+
let topC = 0;
|
|
183
|
+
let prevH = [0, target];
|
|
184
|
+
if (first) {
|
|
185
|
+
const r = first - 1;
|
|
186
|
+
prevH = [rowHeight[2 * r], rowHeight[2 * r + 1]];
|
|
187
|
+
topK = rowTop[2 * r] + prevH[0];
|
|
188
|
+
topC = rowTop[2 * r + 1] + prevH[1] + gapY;
|
|
189
|
+
}
|
|
190
|
+
for (let r = first; r < rows.length; r++) {
|
|
191
|
+
const row = rows[r];
|
|
192
|
+
const k = row.items.length;
|
|
193
|
+
const A = sumOf(row.items, aspects);
|
|
194
|
+
// Row height h = hk·W + hc; item widths a·(natural height) (+ the widow `justify` error share).
|
|
195
|
+
let hk;
|
|
196
|
+
let hc;
|
|
197
|
+
let nk;
|
|
198
|
+
let nc;
|
|
199
|
+
if (row.kind === "justify") {
|
|
200
|
+
nk = 1 / A;
|
|
201
|
+
nc = (-(k - 1) * gapX) / A;
|
|
202
|
+
if (row.clamped != null)
|
|
203
|
+
[hk, hc] = [0, row.clamped];
|
|
204
|
+
else
|
|
205
|
+
[hk, hc] = [nk, nc];
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// Widow at the previous row's height (upstream forceComplete(false, previous.height) / target height).
|
|
209
|
+
[hk, hc] = r > 0 ? prevH : [0, Math.max(minH, Math.min(target, maxH))];
|
|
210
|
+
[nk, nc] = [hk, hc];
|
|
211
|
+
}
|
|
212
|
+
// Width error per item for `justify` widows: (Σw + (k − 1)·gap − W) / k.
|
|
213
|
+
const ek = row.kind === "widow" && row.style === "justify" ? (A * nk - 1) / k : 0;
|
|
214
|
+
const ec = row.kind === "widow" && row.style === "justify" ? (A * nc + (k - 1) * gapX) / k : 0;
|
|
215
|
+
// Centered widows: offset (W − (Σw + (k − 1)·gap)) / 2 (upstream adds its container padding to the same centre).
|
|
216
|
+
const ok = row.kind === "widow" && row.style === "center" ? (1 - A * nk) / 2 : 0;
|
|
217
|
+
const oc = row.kind === "widow" && row.style === "center" ? (-(A * nc) - (k - 1) * gapX) / 2 : 0;
|
|
218
|
+
let xk = ok;
|
|
219
|
+
let xc = oc;
|
|
220
|
+
for (let j = 0; j < k; j++) {
|
|
221
|
+
const i = row.items[j];
|
|
222
|
+
const a = aspects[i];
|
|
223
|
+
const wk = a * nk - ek;
|
|
224
|
+
const wc = a * nc - ec;
|
|
225
|
+
g.x[2 * i] = xk;
|
|
226
|
+
g.x[2 * i + 1] = xc;
|
|
227
|
+
g.width[2 * i] = wk;
|
|
228
|
+
g.width[2 * i + 1] = wc;
|
|
229
|
+
g.height[2 * i] = hk;
|
|
230
|
+
g.height[2 * i + 1] = hc;
|
|
231
|
+
g.top[2 * i] = topK;
|
|
232
|
+
g.top[2 * i + 1] = topC;
|
|
233
|
+
// Height = width / aspect exactly when the row is neither clamped nor a justified widow.
|
|
234
|
+
g.ratio[i] = (row.kind === "justify" && row.clamped == null) || (row.kind === "widow" && row.style !== "justify") ? a : 0;
|
|
235
|
+
xk += wk;
|
|
236
|
+
xc += wc + gapX;
|
|
237
|
+
}
|
|
238
|
+
rowTop[2 * r] = topK;
|
|
239
|
+
rowTop[2 * r + 1] = topC;
|
|
240
|
+
rowHeight[2 * r] = hk;
|
|
241
|
+
rowHeight[2 * r + 1] = hc;
|
|
242
|
+
prevH = [hk, hc];
|
|
243
|
+
topK += hk;
|
|
244
|
+
topC += hc + (r < rows.length - 1 ? gapY : 0);
|
|
245
|
+
}
|
|
246
|
+
if (first && first === rows.length)
|
|
247
|
+
topC -= gapY;
|
|
248
|
+
g.extent = rows.length ? Float64Array.of(topK, topC) : new Float64Array(0);
|
|
249
|
+
return { geometry: g, closed, rows, rowTop, rowHeight };
|
|
250
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { type Geometry, type Rect } from "./geometry.js";
|
|
2
|
+
export type Key = string | number;
|
|
3
|
+
export type { Geometry, Rect } from "./geometry.js";
|
|
4
|
+
/** Column count: a number, or a container-width breakpoint map (`{ 0: 2, 640: 3, 1024: 4 }`, min width → columns). */
|
|
5
|
+
export type Columns = number | Readonly<Record<number, number>>;
|
|
6
|
+
/** A per-item value that may differ per breakpoint (`2`, or `{ 0: 1, 768: 2 }`: min container width → value). */
|
|
7
|
+
export type Responsive<T> = T | Readonly<Record<number, T>>;
|
|
8
|
+
export interface Breakpoint {
|
|
9
|
+
/** Minimum container content width in px (the first is 0). */
|
|
10
|
+
min: number;
|
|
11
|
+
/** Column count from `min` on (justified rows: 1, the unit is the container width). */
|
|
12
|
+
columns: number;
|
|
13
|
+
/** `[column, row]` gaps in px from `min` on. */
|
|
14
|
+
gap: [number, number];
|
|
15
|
+
}
|
|
16
|
+
/** A gap: one value or `[column, row]` px. */
|
|
17
|
+
export type Gap = number | readonly [number, number];
|
|
18
|
+
/** Default columns: 2 below 640 px, 3 below 1024 px, 4 above (container width). */
|
|
19
|
+
export declare const DEFAULT_COLUMNS: Readonly<Record<number, number>>;
|
|
20
|
+
/** `gap` value → `[column, row]` px (default 16). */
|
|
21
|
+
export declare function gapPair(gap: Gap | null | undefined): [number, number];
|
|
22
|
+
/** The gap at breakpoint `min` of a `gap` prop (a value, or a container-width map of values). */
|
|
23
|
+
export declare function gapAt(gap: Responsive<Gap> | null | undefined, min: number): [number, number];
|
|
24
|
+
/** Map keys (container widths) of a responsive prop. */
|
|
25
|
+
export declare const responsiveMins: (value: unknown) => number[];
|
|
26
|
+
/**
|
|
27
|
+
* Extra container-width breakpoints of justified rows: inside a breakpoint every row scales with the width, so the
|
|
28
|
+
* ranges are geometric with `hi / lo ≤ (1 + tolerance) / (1 − tolerance)` (from 320 px; 0.25 → 533, 889, 1481, 2469):
|
|
29
|
+
* a row decided at the middle of its range stays within the height tolerance anywhere in it. Up to `maxWidth` (the
|
|
30
|
+
* grid never gets wider; fewer breakpoints = fewer CSS terms), else up to 4000 px.
|
|
31
|
+
*/
|
|
32
|
+
export declare function justifiedSplits(tolerance?: number, maxWidth?: number | null): number[];
|
|
33
|
+
/** Breakpoints below `maxWidth` only (the grid is never wider): at least the first. */
|
|
34
|
+
export declare function capBreakpoints(breakpoints: readonly Breakpoint[], maxWidth: number): Breakpoint[];
|
|
35
|
+
/**
|
|
36
|
+
* Sorted breakpoints from `columns` (default `DEFAULT_COLUMNS`) or from `minItemWidth` (n·m + (n−1)·gap ≤ width), with
|
|
37
|
+
* the gap of each (`gap` may be a container-width map; its keys split breakpoints too, as do `splits`).
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveBreakpoints(columns?: Columns | null, minItemWidth?: number | null, maxColumns?: number, gap?: Responsive<Gap> | null, splits?: readonly number[]): Breakpoint[];
|
|
40
|
+
/**
|
|
41
|
+
* `sizes` attribute for a masonry image (`?image` srcset): the column width per breakpoint. Breakpoints are container
|
|
42
|
+
* widths; `sizes` media queries are viewport widths, so the container is described relative to the viewport:
|
|
43
|
+
* container = `min(100vw − inset, maxWidth)` (`inset`: px of the viewport outside the grid — page padding, a sidebar;
|
|
44
|
+
* `maxWidth`: the grid's `maxWidth`). A breakpoint at container width `min` then starts at viewport `min + inset`;
|
|
45
|
+
* from viewport `maxWidth + inset` on, every width is a constant. `span` = columns the image covers (number or
|
|
46
|
+
* container-width map, e.g. a live span's current value).
|
|
47
|
+
*/
|
|
48
|
+
export declare function masonrySizes(options?: {
|
|
49
|
+
columns?: Columns | null;
|
|
50
|
+
minItemWidth?: number | null;
|
|
51
|
+
maxColumns?: number;
|
|
52
|
+
gap?: Responsive<Gap> | null;
|
|
53
|
+
span?: Responsive<number> | null;
|
|
54
|
+
inset?: number;
|
|
55
|
+
maxWidth?: number | null;
|
|
56
|
+
}): string;
|
|
57
|
+
/** Index of the breakpoint active at container width `width`. */
|
|
58
|
+
export declare function breakpointAt(breakpoints: readonly Breakpoint[], width: number): number;
|
|
59
|
+
/** A per-item responsive value at breakpoint `min` (the largest map key ≤ `min`; a plain value everywhere). */
|
|
60
|
+
export declare function responsiveAt<T>(value: Responsive<T> | null | undefined, min: number, fallback: T): T;
|
|
61
|
+
/** Column width at container width `width`. */
|
|
62
|
+
export declare const columnWidth: (width: number, columns: number, gapX: number) => number;
|
|
63
|
+
/**
|
|
64
|
+
* Deterministic container width the greedy compares columns at, per breakpoint: the middle of its range (from
|
|
65
|
+
* max(min, 320) to the next breakpoint, or +25 % for the last). `override` replaces it for every breakpoint.
|
|
66
|
+
*/
|
|
67
|
+
export declare function referenceWidths(breakpoints: readonly Breakpoint[], override?: number | null, maxWidth?: number | null): number[];
|
|
68
|
+
/** Placement of `count` items in `columns` columns: item i is in column `col[i]` at `top = a[i]·w + b[i]` px. */
|
|
69
|
+
export interface MasonryPlacement {
|
|
70
|
+
columns: number;
|
|
71
|
+
col: Uint16Array;
|
|
72
|
+
a: Float64Array;
|
|
73
|
+
b: Float64Array;
|
|
74
|
+
/** Per column: Σα and Σ(β + gapY) of its items (height = colA·w + colB − gapY when non-empty). */
|
|
75
|
+
colA: Float64Array;
|
|
76
|
+
colB: Float64Array;
|
|
77
|
+
colCount: Uint32Array;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Shortest-column greedy. Item i is `alpha[i]·w + beta[i]` px tall (exact: α = 1 / aspect ratio, β = extra px;
|
|
81
|
+
* measured: α = 0, β = height). Columns compare at column width `refW` (ties → the lowest column).
|
|
82
|
+
*/
|
|
83
|
+
export declare function placeMasonry(alpha: ArrayLike<number>, beta: ArrayLike<number>, columns: number, refW: number, gapY: number): MasonryPlacement;
|
|
84
|
+
/** Items of a columns placement: height `alpha·width + beta` px (width = the item's span width), column span. */
|
|
85
|
+
export interface ColumnsInput {
|
|
86
|
+
alpha: ArrayLike<number>;
|
|
87
|
+
beta: ArrayLike<number>;
|
|
88
|
+
/** Columns each item spans (default 1; clamped to the column count). */
|
|
89
|
+
span?: ArrayLike<number> | null;
|
|
90
|
+
}
|
|
91
|
+
/** Column state: per column the terms of its bottom (+ the row gap: the top of its next item). */
|
|
92
|
+
interface ColumnsState {
|
|
93
|
+
bottoms: number[][];
|
|
94
|
+
count: Uint32Array;
|
|
95
|
+
last: Int32Array;
|
|
96
|
+
}
|
|
97
|
+
/** A columns placement (one breakpoint) and what an incremental re-place needs. */
|
|
98
|
+
export interface ColumnsRun {
|
|
99
|
+
geometry: Geometry;
|
|
100
|
+
/** First column of item i, and its span. */
|
|
101
|
+
col: Uint16Array;
|
|
102
|
+
span: Uint16Array;
|
|
103
|
+
columns: number;
|
|
104
|
+
/** State before item `j · CHECKPOINT` (incremental re-place resumes from the nearest one). */
|
|
105
|
+
checkpoints: ColumnsState[];
|
|
106
|
+
/** Final state. */
|
|
107
|
+
state: ColumnsState;
|
|
108
|
+
}
|
|
109
|
+
/** Items between incremental checkpoints. */
|
|
110
|
+
export declare const CHECKPOINT = 32;
|
|
111
|
+
/**
|
|
112
|
+
* Shortest-column greedy with column spans, in linear terms of the column width `u` (see `./geometry.ts`). Columns
|
|
113
|
+
* compare at `refW` (ties → the leftmost); an item spanning s columns goes where the highest of its s columns is the
|
|
114
|
+
* lowest, its top is the max of their bottoms (term set, pruned over `u ∈ [lo, hi]`), so it never overlaps at any
|
|
115
|
+
* width of the range. One-column items keep one term (the PR-1 `placeMasonry` picture). `resume` re-places from item
|
|
116
|
+
* `from` on (same columns / widths / gaps; the result equals a full placement: `masonry-layout.test.ts`).
|
|
117
|
+
*/
|
|
118
|
+
export declare function placeColumns(input: ColumnsInput, columns: number, refW: number, lo: number, hi: number, gapX: number, gapY: number, resume?: {
|
|
119
|
+
run: ColumnsRun;
|
|
120
|
+
from: number;
|
|
121
|
+
} | null): ColumnsRun;
|
|
122
|
+
/**
|
|
123
|
+
* `fit="both"`: stretch the last item of every column down to the content bottom (the tallest column), so the grid
|
|
124
|
+
* ends flush; images inside fill with `object-fit: cover`. Items whose top is a term set (under a spanning item) or
|
|
125
|
+
* that span columns keep their height. Returns a new geometry (the run's stays reusable for incremental re-places).
|
|
126
|
+
*/
|
|
127
|
+
export declare function fitColumns(run: ColumnsRun, lo: number, hi: number): Geometry;
|
|
128
|
+
/**
|
|
129
|
+
* Numeric shortest-column greedy with spans at one column width `w` (measured items, virtualized layout): item i is
|
|
130
|
+
* `heights[i]` px tall and spans `spans[i]` columns; columns start at `initial` (px tops of the next item per column,
|
|
131
|
+
* e.g. under a server-placed prefix). Returns start-edge x, top y, width per item and the content height.
|
|
132
|
+
*/
|
|
133
|
+
export declare function placeNumeric(heights: ArrayLike<number>, spans: ArrayLike<number> | null, columns: number, w: number, gapX: number, gapY: number, initial?: ArrayLike<number> | null): {
|
|
134
|
+
x: Float64Array;
|
|
135
|
+
y: Float64Array;
|
|
136
|
+
width: Float64Array;
|
|
137
|
+
height: number;
|
|
138
|
+
bottoms: Float64Array;
|
|
139
|
+
};
|
|
140
|
+
/** Column-width range `[lo, hi]` of breakpoint b (the last one: up to a 100 000 px container). */
|
|
141
|
+
export declare function unitRange(breakpoints: readonly Breakpoint[], b: number, maxWidth?: number | null): [number, number];
|
|
142
|
+
/** Content height of a placement at column width `w`. */
|
|
143
|
+
export declare function masonryHeight(p: MasonryPlacement, w: number, gapY: number): number;
|
|
144
|
+
/** Pixel rects (LTR, x from the start edge) of a placement at container width `width`. */
|
|
145
|
+
export declare function masonryRects(p: MasonryPlacement, alpha: ArrayLike<number>, beta: ArrayLike<number>, width: number, gapX: number): Rect[];
|
|
146
|
+
export type BentoPack = "dense" | "skyline";
|
|
147
|
+
/** Cell placement of `count` tiles (0-based row / column, spans clamped to the column count). */
|
|
148
|
+
export interface BentoPlacement {
|
|
149
|
+
columns: number;
|
|
150
|
+
row: Uint32Array;
|
|
151
|
+
col: Uint16Array;
|
|
152
|
+
rowSpan: Uint16Array;
|
|
153
|
+
colSpan: Uint16Array;
|
|
154
|
+
/** Rows used. */
|
|
155
|
+
rows: number;
|
|
156
|
+
}
|
|
157
|
+
/** Packs tiles of `colSpans[i]` × `rowSpans[i]` cells into `columns` columns. */
|
|
158
|
+
export declare function packBento(colSpans: ArrayLike<number>, rowSpans: ArrayLike<number>, columns: number, pack?: BentoPack): BentoPlacement;
|
|
159
|
+
/**
|
|
160
|
+
* Custom properties of the grid element: `--rv-w<b>` (column width of breakpoint b; masked to ≈ −1e9 px outside its
|
|
161
|
+
* range when there are several), `--rv-m<b>` (the mask alone: 0 inside, ≈ 1e9 px outside), `--rv-mw` (the active
|
|
162
|
+
* column width). `100cqw` resolves against the root (an `inline-size` container) wherever the variables are used.
|
|
163
|
+
*/
|
|
164
|
+
/**
|
|
165
|
+
* Registers the grid custom properties as inherited `<length>`s (client, once per name): the grid then computes each
|
|
166
|
+
* masked width once and items inherit a plain length, instead of re-parsing the clamp() token stream per item (~3×
|
|
167
|
+
* faster style recalc for 1k items, measured). Layout is identical without it; `@rivetjs/cdk/masonry.css` declares the
|
|
168
|
+
* same names with `@property` for server-rendered pages before any script runs. No-op on the server.
|
|
169
|
+
*/
|
|
170
|
+
export declare function registerGridProperties(count: number): void;
|
|
171
|
+
export declare function gridVars(breakpoints: readonly Breakpoint[]): Record<string, string>;
|
|
172
|
+
/** The active column gap as CSS (a px value, or `var(--rv-gx)` when it differs per breakpoint). */
|
|
173
|
+
export declare const columnGapCss: (breakpoints: readonly Breakpoint[]) => string;
|
|
174
|
+
/** Bento row height: px, or `w / aspectRatio`. */
|
|
175
|
+
export type BentoRowHeight = number | {
|
|
176
|
+
aspectRatio: number;
|
|
177
|
+
} | "auto";
|
|
178
|
+
/** Geometry of a bento placement (unit = the column width; `rowHeight` px or `{ aspectRatio }` of the column width). */
|
|
179
|
+
export declare function bentoGeometry(p: BentoPlacement, rowHeight: number | {
|
|
180
|
+
aspectRatio: number;
|
|
181
|
+
}, gapX: number, gapY: number): Geometry;
|
|
182
|
+
/** Bento pixel rects at container width `width` (for keyboard geometry / tests). */
|
|
183
|
+
export declare function bentoRects(p: BentoPlacement, rowHeight: number | {
|
|
184
|
+
aspectRatio: number;
|
|
185
|
+
}, width: number, gapX: number, gapY: number): Rect[];
|
|
186
|
+
/** Aspect ratio (width / height) from an item's `aspectRatio`, else `width / height`; `null` when unknown. */
|
|
187
|
+
export declare function defaultAspectRatio(item: unknown): number | null;
|
|
188
|
+
/** Fixed px height of an item without a ratio: `item.height` when it has neither `width` nor `aspectRatio`. */
|
|
189
|
+
export declare function defaultItemHeight(item: unknown): number | null;
|
|
190
|
+
/** Column span (justified: width weight) from an item's `span`. */
|
|
191
|
+
export declare const defaultSpan: (item: unknown) => Responsive<number>;
|
|
192
|
+
/** A usable ratio (finite, > 0) or null. */
|
|
193
|
+
export declare const validRatio: (r: unknown) => number | null;
|
|
194
|
+
/** Item key: `id`, else `key`, else the index. */
|
|
195
|
+
export declare function defaultItemKey(item: unknown, index: number): Key;
|
|
196
|
+
/** Column / row spans from an item's `colSpan` / `rowSpan`. */
|
|
197
|
+
export declare const defaultColSpan: (item: unknown) => Responsive<number>;
|
|
198
|
+
export declare const defaultRowSpan: (item: unknown) => Responsive<number>;
|
|
199
|
+
/** `gap` prop → `[column, row]` px at the smallest breakpoint. */
|
|
200
|
+
export declare const gapOf: (gap: Responsive<Gap> | null | undefined) => [number, number];
|