@mkbabb/glass-ui 6.0.0 → 8.0.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/README.md +40 -37
- package/dist/DialogContent-4hzLiaCQ.js +152 -0
- package/dist/DotRing-Blh4Mc3Q.js +27 -0
- package/dist/DropdownMenuTrigger-8UZsBtZ8.js +93 -0
- package/dist/Surface-i1tWC-Ga.js +48 -0
- package/dist/accent-tone-solve-Cw7WkRD9.js +14 -0
- package/dist/asElement-CRnm6A2v.js +9 -0
- package/dist/aurora.d.ts +1 -1
- package/dist/aurora.js +832 -767
- package/dist/axes.d.ts +1 -1
- package/dist/axes.js +16 -26
- package/dist/badge-owUOaaba.js +63 -0
- package/dist/badge.d.ts +1 -1
- package/dist/badge.js +2 -2
- package/dist/blob-config.d.ts +1 -1
- package/dist/blob-config.js +1 -1
- package/dist/blob.d.ts +1 -1
- package/dist/blob.js +442 -395
- package/dist/button-yvGPb0Bx.js +110 -0
- package/dist/button.d.ts +1 -1
- package/dist/button.js +2 -2
- package/dist/canvas.d.ts +1 -1
- package/dist/canvas.js +2 -2
- package/dist/card-3HFFpC7_.js +190 -0
- package/dist/card.d.ts +1 -1
- package/dist/card.js +2 -2
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +191 -239
- package/dist/checkbox-BnXuGgJ3.js +64 -0
- package/dist/checkbox.d.ts +1 -0
- package/dist/checkbox.js +2 -0
- package/dist/chip.d.ts +1 -1
- package/dist/chip.js +101 -53
- package/dist/{class-names-5jotTFzp.js → class-names-q-UGOkHH.js} +26 -5
- package/dist/collapsible-B7O6m-Ch.js +154 -0
- package/dist/collapsible.d.ts +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color.d.ts +1 -1
- package/dist/color.js +46 -50
- package/dist/{procedural-color.wgsl-B9mLK7v0.js → color.wgsl-B0N3mKMb.js} +200 -165
- package/dist/command-BuBnYpxF.js +340 -0
- package/dist/command.d.ts +1 -1
- package/dist/command.js +1 -1
- package/dist/component-styles.css +4 -0
- package/dist/components/_shared/axes.d.ts +13 -4
- package/dist/components/_shared/class-names.d.ts +10 -9
- package/dist/components/_shared/control.d.ts +11 -0
- package/dist/components/_shared/disclosure/disclosure-context.d.ts +7 -0
- package/dist/components/_shared/feedback/DotRing.vue.d.ts +3 -0
- package/dist/components/_shared/feedback/dot-ring.css +1 -0
- package/dist/components/_shared/feedback/feedback-tone.css +1 -0
- package/dist/components/_shared/field/control.d.ts +13 -0
- package/dist/components/_shared/focus.d.ts +11 -0
- package/dist/components/_shared/index.d.ts +2 -6
- package/dist/components/_shared/interaction.d.ts +23 -0
- package/dist/components/_shared/menu/menu.css +1 -0
- package/dist/components/_shared/menu/rowClass.d.ts +2 -0
- package/dist/components/_shared/overlay/content.d.ts +40 -0
- package/dist/components/_shared/overlay/index.d.ts +12 -0
- package/dist/components/{dock/composables → _shared/overlay}/isTeleportedTarget.d.ts +5 -0
- package/dist/components/_shared/overlay/participation.d.ts +66 -0
- package/dist/components/_shared/overlay/placement.d.ts +22 -0
- package/dist/components/_shared/primitive.d.ts +19 -0
- package/dist/components/_shared/selection.d.ts +46 -0
- package/dist/components/_shared/surface/resolve.d.ts +17 -0
- package/dist/components/_shared/useMotionAxis.d.ts +3 -8
- package/dist/components/accordion/Accordion.vue.d.ts +41 -16
- package/dist/components/accordion/AccordionContent.vue.d.ts +11 -9
- package/dist/components/accordion/AccordionItem.vue.d.ts +12 -9
- package/dist/components/accordion/AccordionTrigger.vue.d.ts +8 -11
- package/dist/components/accordion/index.d.ts +4 -4
- package/dist/components/alert/Alert.vue.d.ts +9 -5
- package/dist/components/alert/AlertDescription.vue.d.ts +2 -2
- package/dist/components/alert/AlertTitle.vue.d.ts +2 -2
- package/dist/components/alert/index.d.ts +17 -8
- package/dist/components/aurora/Aurora.vue.d.ts +41 -46
- package/dist/components/aurora/composables/atoms-fields.d.ts +13 -2
- package/dist/components/aurora/composables/atoms.d.ts +54 -52
- package/dist/components/aurora/composables/auroraFallbackGround.d.ts +14 -14
- package/dist/components/aurora/composables/auroraImageSource.d.ts +6 -7
- package/dist/components/aurora/composables/color.d.ts +18 -24
- package/dist/components/aurora/composables/frameLoop.d.ts +17 -14
- package/dist/components/aurora/composables/glSetup.d.ts +19 -7
- package/dist/components/aurora/composables/runtime.d.ts +58 -62
- package/dist/{composables/glass → components/aurora/composables}/textureUpload.d.ts +8 -23
- package/dist/components/aurora/composables/uniformBridge.d.ts +11 -33
- package/dist/components/aurora/composables/uniformBridgeWGPU.d.ts +23 -24
- package/dist/components/aurora/composables/uniformBridgeWGPUImage.d.ts +15 -15
- package/dist/components/aurora/composables/useAurora.d.ts +23 -34
- package/dist/components/aurora/composables/useCursorInteraction.d.ts +2 -2
- package/dist/components/aurora/composables/wgpuSetup.d.ts +14 -12
- package/dist/components/aurora/constants/budget.d.ts +5 -54
- package/dist/components/aurora/constants/presets.d.ts +49 -60
- package/dist/components/aurora/constants/renderMode.d.ts +21 -36
- package/dist/components/aurora/constants/shaders/aurora-image.frag.d.ts +0 -2
- package/dist/components/aurora/constants/shaders/aurora-image.wgsl.d.ts +1 -3
- package/dist/components/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -1
- package/dist/components/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
- package/dist/components/aurora/constants/shaders/brush.glsl.d.ts +1 -1
- package/dist/components/aurora/constants/shaders/composition.glsl.d.ts +1 -1
- package/dist/components/aurora/constants/shaders/flow.glsl.d.ts +1 -1
- package/dist/components/aurora/constants/shaders/metal-medium.glsl.d.ts +2 -2
- package/dist/components/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -1
- package/dist/components/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -1
- package/dist/components/aurora/index.d.ts +15 -13
- package/dist/components/avatar/Avatar.vue.d.ts +72 -11
- package/dist/components/avatar/AvatarFallback.vue.d.ts +1 -2
- package/dist/components/avatar/AvatarImage.vue.d.ts +7 -8
- package/dist/components/avatar/index.d.ts +3 -9
- package/dist/components/badge/Badge.vue.d.ts +3 -17
- package/dist/components/badge/index.d.ts +33 -9
- package/dist/components/blob/Blob.vue.d.ts +8 -15
- package/dist/components/blob/composables/blobSimulation.d.ts +80 -0
- package/dist/components/blob/composables/buildMetaballProgram.d.ts +1 -1
- package/dist/components/blob/composables/resolveBlobSurface.d.ts +6 -0
- package/dist/components/blob/composables/satelliteKinematics.d.ts +4 -4
- package/dist/components/blob/composables/uniformBridgeWGPU.d.ts +4 -4
- package/dist/components/blob/composables/uploadBlobUniforms.d.ts +7 -34
- package/dist/components/blob/composables/useBlobMood.d.ts +6 -6
- package/dist/components/blob/composables/useBlobPointer.d.ts +11 -15
- package/dist/components/blob/composables/useBlobSatellites.d.ts +1 -1
- package/dist/components/blob/composables/useMetaballRenderer.d.ts +32 -29
- package/dist/components/blob/composables/wgpuSetup.d.ts +10 -8
- package/dist/components/blob/config.d.ts +3 -3
- package/dist/components/blob/constants.d.ts +1 -3
- package/dist/components/blob/index.d.ts +8 -8
- package/dist/components/blob/presets.d.ts +3 -3
- package/dist/components/blob/shaders/metaball-palette.wgsl.d.ts +1 -1
- package/dist/components/blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/blob/shaders/metaball.wgsl.d.ts +1 -1
- package/dist/components/blob/shaders/sdf-body.glsl.d.ts +1 -1
- package/dist/components/blob/shaders/watercolor-edges.glsl.d.ts +1 -1
- package/dist/components/blob/types.d.ts +28 -60
- package/dist/components/button/Button.vue.d.ts +32 -20
- package/dist/components/button/index.d.ts +1 -9
- package/dist/components/button/styles.css +1 -0
- package/dist/components/card/Card.vue.d.ts +24 -162
- package/dist/components/card/CardContent.vue.d.ts +2 -2
- package/dist/components/card/CardDescription.vue.d.ts +2 -2
- package/dist/components/card/CardFooter.vue.d.ts +2 -2
- package/dist/components/card/CardHeader.vue.d.ts +8 -40
- package/dist/components/card/CardTitle.vue.d.ts +6 -3
- package/dist/components/card/index.d.ts +6 -9
- package/dist/components/card/scroll.css +1 -0
- package/dist/components/card/styles.css +1 -1
- package/dist/components/carousel/Carousel.vue.d.ts +14 -19
- package/dist/components/carousel/CarouselContent.vue.d.ts +2 -12
- package/dist/components/carousel/CarouselItem.vue.d.ts +14 -3
- package/dist/components/carousel/CarouselPager.vue.d.ts +2 -2
- package/dist/components/carousel/index.d.ts +7 -8
- package/dist/components/carousel/projection.d.ts +23 -0
- package/dist/components/carousel/styles.css +1 -0
- package/dist/components/carousel/types.d.ts +47 -0
- package/dist/components/carousel/useCarousel.d.ts +4 -21
- package/dist/components/checkbox/Checkbox.vue.d.ts +17 -9
- package/dist/components/checkbox/index.d.ts +1 -1
- package/dist/components/chip/Chip.vue.d.ts +12 -7
- package/dist/components/chip/accent-tone.css +1 -0
- package/dist/components/chip/chipVariants.d.ts +20 -43
- package/dist/components/chip/index.d.ts +3 -3
- package/dist/components/chip/types.d.ts +46 -31
- package/dist/components/collapsible/Collapsible.vue.d.ts +22 -9
- package/dist/components/collapsible/CollapsibleContent.vue.d.ts +11 -5
- package/dist/components/collapsible/CollapsibleTrigger.vue.d.ts +12 -9
- package/dist/components/collapsible/index.d.ts +3 -3
- package/dist/components/command/Command.vue.d.ts +11 -23
- package/dist/components/command/CommandDialog.vue.d.ts +10 -11
- package/dist/components/command/CommandEmpty.vue.d.ts +2 -6
- package/dist/components/command/CommandGroup.vue.d.ts +2 -7
- package/dist/components/command/CommandInput.vue.d.ts +6 -7
- package/dist/components/command/CommandItem.vue.d.ts +7 -11
- package/dist/components/command/CommandList.vue.d.ts +12 -19
- package/dist/components/command/CommandSeparator.vue.d.ts +2 -6
- package/dist/components/command/CommandShortcut.vue.d.ts +2 -2
- package/dist/components/command/index.d.ts +11 -10
- package/dist/components/command/types.d.ts +32 -0
- package/dist/components/configurator/Configurator.vue.d.ts +7 -7
- package/dist/components/configurator/ConfiguratorLayer.vue.d.ts +14 -18
- package/dist/components/configurator/ConfiguratorRow.vue.d.ts +15 -18
- package/dist/components/configurator/index.d.ts +6 -6
- package/dist/components/configurator/size.d.ts +5 -7
- package/dist/components/configurator/styles.css +1 -1
- package/dist/components/configurator/useConfiguratorState.d.ts +1 -1
- package/dist/components/constellation/Constellation.vue.d.ts +4 -6
- package/dist/components/constellation/composables/createConstellationField.d.ts +3 -3
- package/dist/components/constellation/composables/useConstellation.d.ts +2 -2
- package/dist/components/constellation/constants.d.ts +9 -9
- package/dist/components/constellation/constellationField.d.ts +8 -10
- package/dist/components/constellation/constellationInteraction.d.ts +9 -13
- package/dist/components/constellation/constellationRender.d.ts +1 -3
- package/dist/components/constellation/constellationTypes.d.ts +51 -63
- package/dist/components/constellation/constellationWell.d.ts +3 -3
- package/dist/components/constellation/index.d.ts +8 -6
- package/dist/components/dark-mode-toggle/DarkModeToggle.vue.d.ts +12 -0
- package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -0
- package/dist/components/dark-mode-toggle/index.d.ts +2 -0
- package/dist/components/data-table/DataTable.vue.d.ts +11 -59
- package/dist/components/data-table/composables/useDataTableResponsive.d.ts +1 -1
- package/dist/components/data-table/composables/useDataTableRowIdentity.d.ts +5 -23
- package/dist/components/data-table/index.d.ts +2 -2
- package/dist/components/data-table/types.d.ts +10 -12
- package/dist/components/{card/CardAction.vue.d.ts → deck/DeckSlide.vue.d.ts} +12 -8
- package/dist/components/deck/DeckStage.vue.d.ts +36 -0
- package/dist/components/deck/composables/useDeck.d.ts +35 -10
- package/dist/components/deck/composables/useDeckCapture.d.ts +26 -0
- package/dist/components/deck/composables/useDeckHashSync.d.ts +8 -0
- package/dist/components/deck/composables/useDeckKeyboard.d.ts +16 -8
- package/dist/components/deck/composables/useDeckSnap.d.ts +20 -0
- package/dist/components/deck/composables/useDeckSwipe.d.ts +13 -0
- package/dist/components/deck/composables/useEdgeZones.d.ts +14 -0
- package/dist/components/deck/constants.d.ts +0 -3
- package/dist/components/deck/index.d.ts +22 -7
- package/dist/components/deck/slideContext.d.ts +21 -0
- package/dist/components/deck/styles/capture.css +1 -0
- package/dist/components/deck/styles/index.css +1 -0
- package/dist/components/deck/styles/reveal.css +1 -0
- package/dist/components/deck/styles/stage.css +1 -0
- package/dist/components/deck/styles/turn.css +1 -0
- package/dist/components/deck/types.d.ts +26 -0
- package/dist/components/deck/window.d.ts +27 -0
- package/dist/components/dialog/Dialog.vue.d.ts +21 -3
- package/dist/components/dialog/DialogContent.vue.d.ts +32 -99
- package/dist/components/dialog/DialogDescription.vue.d.ts +5 -6
- package/dist/components/dialog/DialogFooter.vue.d.ts +2 -2
- package/dist/components/dialog/DialogHeader.vue.d.ts +2 -2
- package/dist/components/dialog/DialogTitle.vue.d.ts +5 -6
- package/dist/components/dialog/ModalOverlay.vue.d.ts +66 -0
- package/dist/components/dialog/index.d.ts +7 -8
- package/dist/components/dialog/styles.css +1 -0
- package/dist/components/dock/DockControl.vue.d.ts +15 -14
- package/dist/components/dock/DockCrossfade.vue.d.ts +6 -10
- package/dist/components/dock/DockLayer.vue.d.ts +3 -4
- package/dist/components/dock/DockLayerGroup.vue.d.ts +18 -18
- package/dist/components/dock/DockSeparator.vue.d.ts +25 -20
- package/dist/components/dock/GlassDock.vue.d.ts +4 -4
- package/dist/components/dock/composables/dockContext.d.ts +33 -19
- package/dist/components/dock/composables/dockCrossfadeContext.d.ts +10 -11
- package/dist/components/dock/composables/dockMorphMeasure.d.ts +7 -87
- package/dist/components/dock/composables/dockSwitcherContext.d.ts +29 -0
- package/dist/components/dock/composables/index.d.ts +10 -10
- package/dist/components/dock/composables/useDockClickIntegrity.d.ts +1 -1
- package/dist/components/dock/composables/useDockHold.d.ts +24 -10
- package/dist/components/dock/composables/useDockMorph.d.ts +26 -0
- package/dist/components/dock/composables/useDockOverflowFit.d.ts +4 -6
- package/dist/components/dock/composables/useDockSearch.d.ts +12 -12
- package/dist/components/dock/composables/useDockShellProps.d.ts +44 -65
- package/dist/components/dock/composables/useDockSpring.d.ts +7 -11
- package/dist/components/dock/composables/useDockState.d.ts +28 -6
- package/dist/components/dock/composables/useDockTouchGate.d.ts +14 -23
- package/dist/components/dock/constants.d.ts +21 -80
- package/dist/components/dock/index.d.ts +15 -20
- package/dist/components/dock/styles/adaptive-legibility.css +1 -1
- package/dist/components/dock/styles/controls/icon-button.css +1 -1
- package/dist/components/dock/styles/controls/tab-button.css +1 -1
- package/dist/components/dock/styles/controls/touch-floor.css +1 -1
- package/dist/components/dock/styles/controls/triggers.css +1 -1
- package/dist/components/dock/styles/controls.css +1 -1
- package/dist/components/dock/styles/crossfade.css +1 -1
- package/dist/components/dock/styles/cta-seat.css +1 -1
- package/dist/components/dock/styles/density.css +1 -1
- package/dist/components/dock/styles/dock.css +1 -1
- package/dist/components/dock/styles/index.css +1 -1
- package/dist/components/dock/styles/layer-group.css +1 -1
- package/dist/components/dock/styles/layers.css +1 -1
- package/dist/components/dock/styles/morph.css +1 -1
- package/dist/components/dock/styles/overflow.css +1 -1
- package/dist/components/dock/styles/search.css +1 -1
- package/dist/components/dock/styles/shape.css +1 -1
- package/dist/components/dock/styles/shell-regions.css +1 -1
- package/dist/components/dock/styles/shell.css +1 -1
- package/dist/components/easing/EasingCurve.vue.d.ts +51 -0
- package/dist/components/easing/EasingPicker.vue.d.ts +16 -32
- package/dist/components/easing/constants.d.ts +16 -14
- package/dist/components/easing/index.d.ts +5 -3
- package/dist/components/easing/{composables/useEasingPicker.d.ts → usePicker.d.ts} +31 -30
- package/dist/components/expandable-container/ExpandableContainer.vue.d.ts +1 -25
- package/dist/components/expandable-container/index.d.ts +1 -1
- package/dist/components/fading-scroll/FadingScroll.vue.d.ts +4 -0
- package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +4 -0
- package/dist/components/fading-scroll/constants.d.ts +2 -10
- package/dist/components/fading-scroll/index.d.ts +2 -2
- package/dist/components/fourier-field/FourierField.vue.d.ts +9 -13
- package/dist/components/fourier-field/composables/fourierFieldGLSetup.d.ts +5 -5
- package/dist/components/fourier-field/composables/fourierFieldWGPUSetup.d.ts +5 -5
- package/dist/components/fourier-field/composables/uniformBridgeWGPU.d.ts +2 -4
- package/dist/components/fourier-field/composables/useFourierField.d.ts +8 -8
- package/dist/components/fourier-field/constants.d.ts +11 -11
- package/dist/components/fourier-field/index.d.ts +10 -12
- package/dist/components/fourier-field/shaders/fourier-field.glsl.d.ts +2 -2
- package/dist/components/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -1
- package/dist/components/handmark/HandMark.vue.d.ts +6 -6
- package/dist/components/handmark/brush.d.ts +1 -1
- package/dist/components/handmark/composables/useHandMark.d.ts +8 -8
- package/dist/components/handmark/constants.d.ts +10 -10
- package/dist/components/handmark/geometry.d.ts +9 -12
- package/dist/components/handmark/index.d.ts +17 -16
- package/dist/components/handmark/ink.d.ts +1 -1
- package/dist/components/handmark/noise.d.ts +3 -3
- package/dist/components/handmark/texture.d.ts +2 -2
- package/dist/components/handmark/types.d.ts +3 -3
- package/dist/components/index.d.ts +30 -35
- package/dist/components/infinite-scroll/InfiniteScroll.vue.d.ts +3 -3
- package/dist/components/infinite-scroll/composables/index.d.ts +2 -2
- package/dist/components/infinite-scroll/composables/types.d.ts +1 -1
- package/dist/components/infinite-scroll/composables/useInfiniteScroll.d.ts +1 -1
- package/dist/components/infinite-scroll/index.d.ts +2 -2
- package/dist/components/input/Input.vue.d.ts +15 -35
- package/dist/components/input/index.d.ts +3 -1
- package/dist/components/input/types.d.ts +62 -0
- package/dist/components/label/Label.vue.d.ts +9 -14
- package/dist/components/label/index.d.ts +1 -1
- package/dist/components/labeled-field/LabeledField.vue.d.ts +10 -108
- package/dist/components/labeled-field/LabeledInput.vue.d.ts +3 -23
- package/dist/components/labeled-field/LabeledSlider.vue.d.ts +12 -18
- package/dist/components/labeled-field/LabeledSwitch.vue.d.ts +14 -17
- package/dist/components/labeled-field/index.d.ts +5 -5
- package/dist/components/labeled-field/types.d.ts +41 -0
- package/dist/components/menu/DropdownMenu.vue.d.ts +51 -0
- package/dist/components/menu/DropdownMenuCheckboxItem.vue.d.ts +33 -0
- package/dist/components/menu/DropdownMenuContent.vue.d.ts +42 -0
- package/dist/components/{dropdown-menu → menu}/DropdownMenuGroup.vue.d.ts +6 -4
- package/dist/components/menu/DropdownMenuItem.vue.d.ts +31 -0
- package/dist/components/menu/DropdownMenuLabel.vue.d.ts +19 -0
- package/dist/components/{dropdown-menu → menu}/DropdownMenuRadioGroup.vue.d.ts +13 -6
- package/dist/components/menu/DropdownMenuRadioItem.vue.d.ts +29 -0
- package/dist/components/menu/DropdownMenuSeparator.vue.d.ts +7 -0
- package/dist/components/menu/DropdownMenuShortcut.vue.d.ts +16 -0
- package/dist/components/{dropdown-menu → menu}/DropdownMenuSub.vue.d.ts +15 -7
- package/dist/components/menu/DropdownMenuSubContent.vue.d.ts +41 -0
- package/dist/components/menu/DropdownMenuSubTrigger.vue.d.ts +20 -0
- package/dist/components/menu/DropdownMenuTrigger.vue.d.ts +27 -0
- package/dist/components/menu/context.d.ts +7 -0
- package/dist/components/menu/index.d.ts +15 -0
- package/dist/components/metric/Metric.vue.d.ts +26 -0
- package/dist/components/metric/MetricRow.vue.d.ts +14 -0
- package/dist/components/metric/MetricStack.vue.d.ts +16 -0
- package/dist/components/metric/coalesce-metric.d.ts +31 -24
- package/dist/components/metric/index.d.ts +6 -0
- package/dist/components/metric/styles.css +1 -0
- package/dist/components/metric/types.d.ts +44 -0
- package/dist/components/music-staff/MusicStaff.vue.d.ts +22 -0
- package/dist/components/music-staff/glyphs.d.ts +74 -0
- package/dist/components/music-staff/index.d.ts +4 -0
- package/dist/components/music-staff/midiAdapter.d.ts +22 -0
- package/dist/components/music-staff/staffGeometry.d.ts +216 -0
- package/dist/components/music-staff/styles.css +1 -0
- package/dist/components/number-field/NumberField.vue.d.ts +27 -10
- package/dist/components/number-field/NumberFieldInput.vue.d.ts +1 -6
- package/dist/components/number-field/NumberFieldStep.vue.d.ts +31 -0
- package/dist/components/number-field/context.d.ts +10 -0
- package/dist/components/number-field/index.d.ts +3 -5
- package/dist/components/pager-dots/PagerDots.vue.d.ts +22 -10
- package/dist/components/pager-dots/index.d.ts +3 -4
- package/dist/components/pager-dots/worm.d.ts +42 -0
- package/dist/components/popover/Popover.vue.d.ts +45 -35
- package/dist/components/popover/PopoverContent.vue.d.ts +27 -30
- package/dist/components/popover/PopoverTrigger.vue.d.ts +12 -7
- package/dist/components/popover/index.d.ts +3 -3
- package/dist/components/popover/popoverContext.d.ts +13 -4
- package/dist/components/progress/Progress.vue.d.ts +6 -14
- package/dist/components/progress/index.d.ts +2 -1
- package/dist/components/progress/types.d.ts +29 -0
- package/dist/components/radio-group/RadioGroup.vue.d.ts +25 -15
- package/dist/components/radio-group/RadioGroupItem.vue.d.ts +10 -6
- package/dist/components/radio-group/index.d.ts +4 -2
- package/dist/components/scroll-progress-rim/ScrollProgressRim.vue.d.ts +2 -14
- package/dist/components/scroll-progress-rim/index.d.ts +2 -3
- package/dist/components/scroll-progress-rim/styles.css +1 -1
- package/dist/components/scroll-progress-rim/types.d.ts +20 -2
- package/dist/components/search/SearchBar.vue.d.ts +4 -4
- package/dist/components/search/composables/fuzzySearchIndex.d.ts +1 -1
- package/dist/components/search/composables/index.d.ts +5 -5
- package/dist/components/search/composables/useFuzzySearch.d.ts +1 -1
- package/dist/components/search/index.d.ts +8 -9
- package/dist/components/search/searchVariants.d.ts +15 -18
- package/dist/components/select/Select.vue.d.ts +25 -14
- package/dist/components/select/SelectContent.vue.d.ts +24 -32
- package/dist/components/select/SelectGroup.vue.d.ts +7 -11
- package/dist/components/select/SelectItem.vue.d.ts +24 -13
- package/dist/components/select/SelectLabel.vue.d.ts +7 -11
- package/dist/components/select/SelectScrollButton.vue.d.ts +18 -0
- package/dist/components/select/SelectSeparator.vue.d.ts +5 -6
- package/dist/components/select/SelectTrigger.vue.d.ts +8 -41
- package/dist/components/select/SelectValue.vue.d.ts +11 -7
- package/dist/components/select/index.d.ts +18 -8
- package/dist/components/separator/Separator.vue.d.ts +11 -6
- package/dist/components/separator/index.d.ts +1 -1
- package/dist/components/sheet/SheetContent.vue.d.ts +60 -0
- package/dist/components/sheet/detents/projection.d.ts +42 -0
- package/dist/components/sheet/detents/use.d.ts +27 -0
- package/dist/components/sheet/index.d.ts +4 -0
- package/dist/components/sheet/motion.d.ts +29 -0
- package/dist/components/sheet/styles.css +1 -0
- package/dist/components/skeleton/Skeleton.vue.d.ts +3 -31
- package/dist/components/skeleton/index.d.ts +1 -1
- package/dist/components/slider/Slider.vue.d.ts +10 -38
- package/dist/components/slider/index.d.ts +2 -46
- package/dist/components/slider/styles.css +1 -0
- package/dist/components/slider/types.d.ts +34 -0
- package/dist/components/sortable-list/SortableItem.vue.d.ts +1 -1
- package/dist/components/sortable-list/SortableList.vue.d.ts +2 -3
- package/dist/components/sortable-list/context.d.ts +1 -1
- package/dist/components/sortable-list/drag.d.ts +52 -0
- package/dist/components/sortable-list/ghost.d.ts +40 -0
- package/dist/components/sortable-list/index.d.ts +4 -4
- package/dist/components/sortable-list/motion.d.ts +75 -0
- package/dist/components/sortable-list/resolve.d.ts +56 -0
- package/dist/components/sortable-list/{composables/types.d.ts → types.d.ts} +14 -7
- package/dist/components/sortable-list/{composables/useSortable.d.ts → useSortable.d.ts} +2 -4
- package/dist/components/status-dot/StatusDot.vue.d.ts +14 -10
- package/dist/components/status-dot/index.d.ts +3 -1
- package/dist/components/status-dot/states.d.ts +4 -0
- package/dist/components/surface/Surface.vue.d.ts +33 -24
- package/dist/components/surface/index.d.ts +2 -2
- package/dist/components/switch/Switch.vue.d.ts +15 -11
- package/dist/components/switch/index.d.ts +2 -1
- package/dist/components/table/Table.vue.d.ts +1 -1
- package/dist/components/table/index.d.ts +8 -8
- package/dist/components/tabs/SegmentedTabs.vue.d.ts +28 -24
- package/dist/components/tabs/composables/useTabDragMorph.d.ts +7 -7
- package/dist/components/tabs/composables/useTabResponsive.d.ts +6 -7
- package/dist/components/tabs/composables/useTabRovingFocus.d.ts +31 -23
- package/dist/components/tabs/index.d.ts +2 -2
- package/dist/components/tabs/styles/drag.css +1 -1
- package/dist/components/tabs/styles/segmented.css +1 -1
- package/dist/components/textarea/Textarea.vue.d.ts +14 -54
- package/dist/components/textarea/index.d.ts +2 -1
- package/dist/components/textarea/types.d.ts +45 -0
- package/dist/components/timeline/Timeline.vue.d.ts +41 -0
- package/dist/components/timeline/geometry.d.ts +53 -79
- package/dist/components/timeline/index.d.ts +2 -2
- package/dist/components/timeline/types.d.ts +42 -42
- package/dist/components/toast/Toast.vue.d.ts +39 -81
- package/dist/components/toast/ToastAction.vue.d.ts +5 -5
- package/dist/components/toast/ToastClose.vue.d.ts +4 -5
- package/dist/components/toast/ToastDescription.vue.d.ts +4 -5
- package/dist/components/toast/ToastTitle.vue.d.ts +4 -5
- package/dist/components/toast/Toaster.vue.d.ts +1 -1
- package/dist/components/toast/index.d.ts +8 -9
- package/dist/components/toast/use-toast.d.ts +27 -163
- package/dist/components/toggle-group/ToggleGroup.vue.d.ts +25 -14
- package/dist/components/toggle-group/ToggleGroupItem.vue.d.ts +14 -12
- package/dist/components/toggle-group/context.d.ts +28 -0
- package/dist/components/toggle-group/index.d.ts +2 -2
- package/dist/components/tooltip/Tooltip.vue.d.ts +20 -7
- package/dist/components/tooltip/TooltipContent.vue.d.ts +16 -13
- package/dist/components/tooltip/TooltipProvider.vue.d.ts +12 -5
- package/dist/components/tooltip/TooltipTrigger.vue.d.ts +12 -5
- package/dist/components/tooltip/index.d.ts +4 -4
- package/dist/components/typewriter/TypewriterText.vue.d.ts +12 -32
- package/dist/components/typewriter/composables/useTypewriter.d.ts +2 -1
- package/dist/components/typewriter/index.d.ts +7 -7
- package/dist/components/typewriter/types.d.ts +1 -1
- package/dist/components/typewriter/utils/timing.d.ts +1 -3
- package/dist/components/typewriter/utils/typoStateMachine.d.ts +1 -1
- package/dist/composables/color/accent-tone-solve.d.ts +3 -6
- package/dist/composables/color/index.d.ts +36 -43
- package/dist/composables/color/useAccentTone.d.ts +0 -3
- package/dist/composables/color/value.d.ts +21 -0
- package/dist/composables/context/createContext.d.ts +2 -2
- package/dist/composables/context/index.d.ts +1 -1
- package/dist/composables/dark/index.d.ts +5 -5
- package/dist/composables/dark/useGlobalDark.d.ts +7 -6
- package/dist/composables/dom/index.d.ts +10 -10
- package/dist/composables/dom/useBreakpoint.d.ts +2 -2
- package/dist/composables/dom/useClipboard.d.ts +28 -52
- package/dist/composables/dom/useDocumentVisibility.d.ts +3 -1
- package/dist/composables/dom/useDragVelocity.d.ts +7 -0
- package/dist/composables/dom/useIdleReady.d.ts +5 -6
- package/dist/composables/dom/useTokenColor.d.ts +2 -2
- package/dist/composables/dom/useUserInvalidAria.d.ts +2 -3
- package/dist/composables/dom/useViewportReady.d.ts +4 -4
- package/dist/composables/glass/backdropLuminanceSample.d.ts +23 -24
- package/dist/composables/glass/backdropSampleMath.d.ts +10 -0
- package/dist/composables/glass/canvas2d/index.d.ts +3 -3
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +8 -10
- package/dist/composables/glass/index.d.ts +5 -7
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +13 -22
- package/dist/composables/glass/useSpecularTracking.d.ts +13 -16
- package/dist/composables/glass/webgl/backingSize.d.ts +5 -8
- package/dist/composables/glass/webgl/compile.d.ts +1 -1
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +25 -34
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +24 -39
- package/dist/composables/glass/webgl/visibility.d.ts +4 -5
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +20 -23
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +4 -5
- package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +19 -19
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +8 -26
- package/dist/composables/keyboard/index.d.ts +1 -1
- package/dist/composables/motion/core/asElement.d.ts +2 -0
- package/dist/composables/motion/core/constants.d.ts +25 -0
- package/dist/composables/motion/core/index.d.ts +21 -24
- package/dist/composables/motion/{motionTempo.d.ts → core/motionTempo.d.ts} +0 -2
- package/dist/composables/motion/core/useReducedMotion.d.ts +5 -0
- package/dist/composables/motion/core/useViewTransition.d.ts +44 -0
- package/dist/composables/motion/dissolve/dissolveGrammar.d.ts +88 -0
- package/dist/composables/motion/engage/engageEnvelopes.d.ts +45 -0
- package/dist/composables/motion/engage/engageLadder.d.ts +86 -0
- package/dist/composables/motion/index.d.ts +14 -16
- package/dist/composables/motion/morph/eyeglass.d.ts +141 -0
- package/dist/composables/motion/{useDockCtaReceive.d.ts → morph/useDockCtaReceive.d.ts} +8 -9
- package/dist/composables/motion/{useDragMorph.d.ts → morph/useDragMorph.d.ts} +7 -7
- package/dist/composables/motion/morph/useElementMorph.d.ts +50 -0
- package/dist/composables/motion/morph/useLeadTrail.d.ts +71 -0
- package/dist/composables/motion/morph/useSelectionGroup.d.ts +123 -0
- package/dist/composables/motion/morph/useSelectionIndicator.d.ts +113 -0
- package/dist/composables/motion/{useAnimatedNumberMap.d.ts → number/useAnimatedNumberMap.d.ts} +1 -1
- package/dist/composables/motion/{pointerFieldMappings.d.ts → pointer/pointerFieldMappings.d.ts} +8 -11
- package/dist/composables/motion/{usePointerVelocityField.d.ts → pointer/usePointerVelocityField.d.ts} +1 -1
- package/dist/composables/motion/{useRoutePointer.d.ts → pointer/useRoutePointer.d.ts} +1 -1
- package/dist/composables/motion/{useLiquidReveal.d.ts → reveal/useLiquidReveal.d.ts} +11 -10
- package/dist/composables/motion/{useStagger.d.ts → reveal/useStagger.d.ts} +3 -3
- package/dist/composables/motion/route/routeGrammar.d.ts +60 -0
- package/dist/composables/motion/route/useRouteTransition.d.ts +45 -0
- package/dist/composables/motion/{useScrollChrome.d.ts → scroll/useScrollChrome.d.ts} +2 -2
- package/dist/composables/motion/{useScrollProgress.d.ts → scroll/useScrollProgress.d.ts} +9 -6
- package/dist/composables/motion/{useScrollScene.d.ts → scroll/useScrollScene.d.ts} +5 -4
- package/dist/composables/motion/spring/springPresets.d.ts +32 -0
- package/dist/composables/motion/{springProjection.d.ts → spring/springProjection.d.ts} +6 -4
- package/dist/composables/motion/{useLiquidFlex.d.ts → spring/useLiquidFlex.d.ts} +11 -12
- package/dist/composables/motion/{useLiquidPress.d.ts → spring/useLiquidPress.d.ts} +5 -5
- package/dist/composables/motion/{useSpring.d.ts → spring/useSpring.d.ts} +5 -2
- package/dist/composables/motion/{useSpringMount.d.ts → spring/useSpringMount.d.ts} +14 -4
- package/dist/composables/motion/{useSpringPress.d.ts → spring/useSpringPress.d.ts} +6 -6
- package/dist/composables/reactive/index.d.ts +2 -2
- package/dist/composables/sidebar/index.d.ts +10 -10
- package/dist/composables/sidebar/types.d.ts +3 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +1 -1
- package/dist/composables/sidebar/useLazyLoader.d.ts +1 -1
- package/dist/composables/sidebar/useScrollTo.d.ts +1 -1
- package/dist/composables/sidebar/useScrollTracker.d.ts +1 -1
- package/dist/composables/sidebar/useSidebarState.d.ts +1 -1
- package/dist/composables/sidebar/useTreeIndex.d.ts +1 -1
- package/dist/{configurator-CSENXXSy.js → configurator-BoeScnDL.js} +12 -12
- package/dist/configurator.d.ts +1 -1
- package/dist/configurator.js +1 -1
- package/dist/{constants-DRZmNIY-.js → constants-Dk96HZHu.js} +3 -3
- package/dist/constellation.d.ts +1 -1
- package/dist/constellation.js +198 -196
- package/dist/content-CWO-XL7o.js +18 -0
- package/dist/control-Da4XeT43.js +11 -0
- package/dist/control.css_vue_type_style_index_0_src_true_lang-BIdufaDG.js +21 -0
- package/dist/{createCanvasLifecycle-hsFkQVdl.js → createCanvasLifecycle-hJHobVTn.js} +84 -82
- package/dist/dark-mode-toggle.d.ts +1 -0
- package/dist/dark-mode-toggle.js +43 -0
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table-_RrOEdiw.js +493 -0
- package/dist/data-table.d.ts +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck-Ci6YjB5e.js +453 -0
- package/dist/deck.d.ts +1 -1
- package/dist/deck.js +2 -94
- package/dist/dialog-CbRnTRtg.js +78 -0
- package/dist/dialog.d.ts +1 -1
- package/dist/dialog.js +3 -2
- package/dist/dock.d.ts +1 -1
- package/dist/dock.js +654 -1044
- package/dist/dom.d.ts +1 -1
- package/dist/dom.js +65 -105
- package/dist/easing.d.ts +1 -1
- package/dist/easing.js +709 -522
- package/dist/expandable-container.d.ts +1 -1
- package/dist/expandable-container.js +109 -93
- package/dist/fading-scroll-CTeW3KNS.js +96 -0
- package/dist/fading-scroll.d.ts +1 -1
- package/dist/fading-scroll.js +1 -1
- package/dist/focus-Duf7EpUu.js +13 -0
- package/dist/fourier-field.d.ts +1 -1
- package/dist/fourier-field.js +172 -174
- package/dist/fourier-math.d.ts +1 -1
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +295 -505
- package/dist/handmark.d.ts +1 -1
- package/dist/handmark.js +4 -4
- package/dist/index.d.ts +41 -51
- package/dist/infinite-scroll.d.ts +1 -1
- package/dist/infinite-scroll.js +59 -43
- package/dist/input-Bls2A4Tt.js +54 -0
- package/dist/input.d.ts +1 -0
- package/dist/input.js +2 -0
- package/dist/keyboard.d.ts +1 -1
- package/dist/label-BQEZhnK_.js +53 -0
- package/dist/label.d.ts +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.d.ts +1 -1
- package/dist/labeled-field.js +232 -239
- package/dist/menu-wLu1XGKn.js +501 -0
- package/dist/menu.d.ts +1 -0
- package/dist/{dropdown-menu.js → menu.js} +2 -2
- package/dist/metric.d.ts +1 -0
- package/dist/metric.js +139 -0
- package/dist/motion-D4uYE0UM.js +61 -0
- package/dist/motion-core.d.ts +1 -1
- package/dist/motion-core.js +206 -165
- package/dist/motion.d.ts +1 -1
- package/dist/motion.js +164 -239
- package/dist/music-staff.d.ts +1 -0
- package/dist/music-staff.js +915 -0
- package/dist/number-field-NFAwQ0HK.js +111 -0
- package/dist/number-field.d.ts +1 -1
- package/dist/number-field.js +2 -2
- package/dist/pager-dots.d.ts +1 -1
- package/dist/pager-dots.js +362 -2
- package/dist/participation-B0hdsIRo.js +42 -0
- package/dist/{pointerFieldMappings-CZojkgKj.js → pointerFieldMappings-DP5tla5z.js} +4 -7
- package/dist/popover-DBMKTPkL.js +181 -0
- package/dist/popover.d.ts +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-CxeNvxuO.js → presets-5myqNv59.js} +1 -1
- package/dist/primitive-B2t2jdqM.js +11 -0
- package/dist/progress-DF8dWZIX.js +74 -0
- package/dist/progress.d.ts +1 -1
- package/dist/progress.js +1 -1
- package/dist/radio-group-Ci8o-pDx.js +85 -0
- package/dist/radio-group.d.ts +1 -0
- package/dist/radio-group.js +2 -0
- package/dist/reactive.d.ts +1 -1
- package/dist/reactive.js +1 -1
- package/dist/resolve-DdrNvBby.js +6 -0
- package/dist/resolveCanvasColor-6MCrswTB.js +81 -0
- package/dist/rowClass-DYOXwxhO.js +10 -0
- package/dist/scroll-progress-rim.d.ts +1 -1
- package/dist/scroll-progress-rim.js +48 -42
- package/dist/{scrollReader-C2oK9Hb8.js → scrollReader-Brf5cQNo.js} +1 -1
- package/dist/search.d.ts +1 -1
- package/dist/search.js +33 -296
- package/dist/select-CDgwGH_P.js +290 -0
- package/dist/select.d.ts +1 -1
- package/dist/select.js +2 -2
- package/dist/selection-DqIULxRG.js +6 -0
- package/dist/separator-CN11t406.js +73 -0
- package/dist/separator.d.ts +1 -1
- package/dist/separator.js +1 -1
- package/dist/sheet-BEFvnO_u.js +340 -0
- package/dist/sheet.d.ts +1 -0
- package/dist/sheet.js +3 -0
- package/dist/sidebar.d.ts +1 -1
- package/dist/sidebar.js +53 -42
- package/dist/slider-gsc8jDIo.js +227 -0
- package/dist/slider.d.ts +1 -1
- package/dist/slider.js +2 -2
- package/dist/sortable-list.d.ts +1 -1
- package/dist/sortable-list.js +412 -286
- package/dist/springPresets-Cbe0Voqg.js +52 -0
- package/dist/status-dot-BpnqOP5N.js +56 -0
- package/dist/status-dot.d.ts +1 -1
- package/dist/status-dot.js +2 -59
- package/dist/styles/accessibility.css +1 -1
- package/dist/styles/animations.css +1 -1
- package/dist/styles/components.css +1 -1
- package/dist/styles/fonts.css +1 -1
- package/dist/styles/glass/a11y-fallback.css +1 -1
- package/dist/styles/glass/control-bit.css +1 -0
- package/dist/styles/glass/control-edge.css +1 -0
- package/dist/styles/glass/control-surfaces.css +1 -1
- package/dist/styles/glass/deep.css +1 -1
- package/dist/styles/glass/defined.css +1 -1
- package/dist/styles/glass/dissolve.css +1 -0
- package/dist/styles/glass/focus-veil.css +1 -0
- package/dist/styles/glass/glass-atom.css +1 -1
- package/dist/styles/glass/glass-capsule.css +1 -1
- package/dist/styles/glass/glass-chip.css +1 -1
- package/dist/styles/glass/grasp.css +1 -0
- package/dist/styles/glass/ladder-undershadow.css +1 -1
- package/dist/styles/glass/ladder.css +1 -1
- package/dist/styles/glass/liquid-enter.css +1 -1
- package/dist/styles/glass/liquid-fill.css +1 -1
- package/dist/styles/glass/mark.css +1 -0
- package/dist/styles/glass/material.css +1 -1
- package/dist/styles/glass/overlay-plate.css +1 -0
- package/dist/styles/glass/reveal.css +1 -1
- package/dist/styles/glass/rim.css +1 -1
- package/dist/styles/glass/squircle.css +1 -1
- package/dist/styles/glass/surface-axis.css +1 -1
- package/dist/styles/glass/surfaces-pager.css +1 -1
- package/dist/styles/glass/surfaces.css +1 -1
- package/dist/styles/glass/track-flow.css +1 -0
- package/dist/styles/glass/value-marks.css +1 -0
- package/dist/styles/glass/veil.css +1 -0
- package/dist/styles/glass-specular-track.css +1 -1
- package/dist/styles/glass.css +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/paper.css +1 -1
- package/dist/styles/scroll-choreography.css +1 -1
- package/dist/styles/scroll-chrome.css +1 -1
- package/dist/styles/scroll-driven.css +1 -1
- package/dist/styles/theme/bridges.css +1 -1
- package/dist/styles/theme/dark.css +1 -1
- package/dist/styles/theme/literals.css +1 -1
- package/dist/styles/theme/radius.css +1 -1
- package/dist/styles/theme.css +1 -1
- package/dist/styles/tokens/color-radius.css +1 -1
- package/dist/styles/tokens/dark-arm-glass.css +1 -1
- package/dist/styles/tokens/dark-arm.css +1 -1
- package/dist/styles/tokens/glass-deep.css +1 -1
- package/dist/styles/tokens/glass-fx.css +1 -1
- package/dist/styles/tokens/glass.css +1 -1
- package/dist/styles/tokens/light-dark.css +1 -1
- package/dist/styles/tokens/manifest.d.ts +14 -0
- package/dist/styles/tokens/motion-registers.css +1 -1
- package/dist/styles/tokens/offsets.css +1 -1
- package/dist/styles/tokens/on-glass-fg.css +1 -1
- package/dist/styles/tokens/property-regs-specular.css +1 -1
- package/dist/styles/tokens/property-regs.css +1 -1
- package/dist/styles/tokens/scale-paper.css +1 -1
- package/dist/styles/tokens/scheme-motion.css +1 -1
- package/dist/styles/tokens/scheme-spring.css +1 -1
- package/dist/styles/tokens/scroll-tokens.css +1 -1
- package/dist/styles/tokens/shadow.css +1 -1
- package/dist/styles/tokens/sizing-config.css +1 -1
- package/dist/styles/tokens/sizing.css +1 -1
- package/dist/styles/tokens.css +1 -1
- package/dist/styles/tokens.d.ts +5 -10
- package/dist/styles/track-well.css +1 -0
- package/dist/styles/transitions.css +1 -1
- package/dist/styles/typography/scale.css +1 -1
- package/dist/styles/typography/semantic.css +1 -1
- package/dist/styles/typography/utilities.css +1 -1
- package/dist/styles/typography.css +1 -1
- package/dist/styles/utilities/a11y-overrides.css +1 -1
- package/dist/styles/utilities/base-misc.css +1 -1
- package/dist/styles/utilities/base.css +1 -1
- package/dist/styles/utilities/btn.css +1 -1
- package/dist/styles/utilities/components.css +1 -1
- package/dist/styles/utilities/metal.css +1 -1
- package/dist/styles/utilities/responsive.css +1 -0
- package/dist/styles/utilities.css +1 -1
- package/dist/styles/view-transition.css +1 -1
- package/dist/styles/viz-reveal.css +1 -1
- package/dist/{supportsCssTimeline-Dz-GVxXM.js → supportsCssTimeline-Di9gzleG.js} +6 -5
- package/dist/surface.d.ts +1 -1
- package/dist/surface.js +2 -3
- package/dist/switch-DxZzDrmV.js +49 -0
- package/dist/switch.d.ts +1 -1
- package/dist/switch.js +1 -1
- package/dist/tabs-CYscnq5H.js +268 -0
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +2 -339
- package/dist/textarea.d.ts +1 -0
- package/dist/textarea.js +58 -0
- package/dist/timeline.d.ts +1 -1
- package/dist/timeline.js +241 -532
- package/dist/toast-9c6Kp58L.js +269 -0
- package/dist/toast.d.ts +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group-11aPGMfE.js +125 -0
- package/dist/toggle-group.d.ts +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -1
- package/dist/tokens.js +98 -5
- package/dist/tooltip-DqKMZ4dn.js +142 -0
- package/dist/tooltip.d.ts +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.d.ts +1 -1
- package/dist/typewriter.js +215 -208
- package/dist/useAccentTone-DFAh1osB.js +47 -0
- package/dist/useClipboard-D36OTaeT.js +53 -0
- package/dist/useDockCtaReceive-BSSgD6mu.js +146 -0
- package/dist/useDragMorph-B363RUbF.js +293 -0
- package/dist/{useDragVelocity-CbMZEBaC.js → useDragVelocity-C5BkKiNf.js} +28 -24
- package/dist/useIntersectionPause-CzKR3EyP.js +57 -0
- package/dist/useLeadTrail-DQWdpFN1.js +83 -0
- package/dist/{useLiquidFlex-Ch4exNvN.js → useLiquidFlex-TJZmRqyY.js} +1 -1
- package/dist/useLiquidPress-h1scrPtP.js +101 -0
- package/dist/useMotionAxis-D-rtIhca.js +19 -0
- package/dist/usePointerVelocityField-DsIf7yyq.js +121 -0
- package/dist/useReducedMotion-vCXA_vyM.js +27 -0
- package/dist/{useTouchGate-Cj5fOkTv.js → useResolveTokenColor-CspQv_ik.js} +25 -2
- package/dist/useRoutePointer-B8itM7Ka.js +53 -0
- package/dist/useScrollChrome-BJbWV32F.js +162 -0
- package/dist/useScrollProgress-Bq-KPaKM.js +41 -0
- package/dist/useScrollTrigger-Abe5dEeO.js +86 -0
- package/dist/useSelectionGroup-zsEwitF6.js +291 -0
- package/dist/{useSpring-BBSKFx_0.js → useSpring-9u2_shxV.js} +2 -2
- package/dist/useSpringMount-OA-0mTNv.js +73 -0
- package/dist/vReveal-B5WYGofz.js +44 -0
- package/dist/vSpecular-DMJo8pfD.js +68 -0
- package/dist/value-DMhh2R94.js +33 -0
- package/dist/{valueDomain-B8L04u3U.js → valueDomain-DXRzfc8l.js} +1 -1
- package/package.json +183 -291
- package/dist/DropdownMenuTrigger-BzQtd9lt.js +0 -65
- package/dist/FadingScroll-C1ZWEjmG.js +0 -83
- package/dist/Input-B4WQ_CMc.js +0 -57
- package/dist/PagerDots-BoTQ7g5l.js +0 -307
- package/dist/Surface-BWRfwyn8.js +0 -59
- package/dist/accent-tone-solve-Dii9ePhK.js +0 -20
- package/dist/animated-digit.d.ts +0 -1
- package/dist/animated-digit.js +0 -44
- package/dist/badge-C0C-rTBu.js +0 -80
- package/dist/button-32mg6xA8.js +0 -194
- package/dist/card-16xmzIr3.js +0 -303
- package/dist/coalesce-metric-znAcLzkB.js +0 -13
- package/dist/collapsible-bPzS1aQk.js +0 -63
- package/dist/color-swatch.d.ts +0 -1
- package/dist/color-swatch.js +0 -48
- package/dist/command-BjPjUU9z.js +0 -307
- package/dist/completion-seal.d.ts +0 -1
- package/dist/completion-seal.js +0 -132
- package/dist/components/_shared/ModalOverlay.vue.d.ts +0 -43
- package/dist/components/_shared/feedback-tone.css +0 -1
- package/dist/components/_shared/field-surfaces.css +0 -1
- package/dist/components/_shared/menu.css +0 -1
- package/dist/components/_shared/menuItemVariants.d.ts +0 -51
- package/dist/components/_shared/useControlSize.d.ts +0 -46
- package/dist/components/_shared/useStalePropWarning.d.ts +0 -27
- package/dist/components/_shared/useSurfaceAxis.d.ts +0 -64
- package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +0 -56
- package/dist/components/animated-digit/index.d.ts +0 -2
- package/dist/components/card/ScrollCard.vue.d.ts +0 -33
- package/dist/components/card/ScrollCardHeader.vue.d.ts +0 -17
- package/dist/components/card/card-scroll.css +0 -1
- package/dist/components/carousel/CarouselNext.vue.d.ts +0 -21
- package/dist/components/carousel/CarouselPrevious.vue.d.ts +0 -21
- package/dist/components/carousel/interface.d.ts +0 -20
- package/dist/components/color-swatch/ColorSwatch.vue.d.ts +0 -22
- package/dist/components/color-swatch/index.d.ts +0 -1
- package/dist/components/combobox/Combobox.vue.d.ts +0 -32
- package/dist/components/combobox/ComboboxAnchor.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxEmpty.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxGroup.vue.d.ts +0 -19
- package/dist/components/combobox/ComboboxInput.vue.d.ts +0 -23
- package/dist/components/combobox/ComboboxItem.vue.d.ts +0 -22
- package/dist/components/combobox/ComboboxItemIndicator.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxList.vue.d.ts +0 -32
- package/dist/components/combobox/index.d.ts +0 -9
- package/dist/components/completion-seal/CompletionSeal.vue.d.ts +0 -28
- package/dist/components/completion-seal/composables/useCompletionSeal.d.ts +0 -37
- package/dist/components/completion-seal/constants.d.ts +0 -66
- package/dist/components/completion-seal/index.d.ts +0 -4
- package/dist/components/completion-seal/styles.css +0 -1
- package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -32
- package/dist/components/controls/dark-mode-toggle.css +0 -1
- package/dist/components/controls/index.d.ts +0 -1
- package/dist/components/data-table/DataTablePagination.vue.d.ts +0 -13
- package/dist/components/deck/DeckPager.vue.d.ts +0 -29
- package/dist/components/dialog/DialogClose.vue.d.ts +0 -14
- package/dist/components/dialog/DialogTrigger.vue.d.ts +0 -14
- package/dist/components/dialog/placement.css +0 -1
- package/dist/components/dock/DockSection.vue.d.ts +0 -69
- package/dist/components/dock/DockStack.vue.d.ts +0 -73
- package/dist/components/dock/composables/dockMorphContext.d.ts +0 -91
- package/dist/components/dock/composables/useDockFisheye.d.ts +0 -24
- package/dist/components/dock/composables/useDockPopover.d.ts +0 -70
- package/dist/components/dock/styles/fisheye.css +0 -1
- package/dist/components/dock/styles/popover.css +0 -1
- package/dist/components/dock/styles/section.css +0 -1
- package/dist/components/drawer/Drawer.vue.d.ts +0 -85
- package/dist/components/drawer/DrawerContent.vue.d.ts +0 -40
- package/dist/components/drawer/DrawerDescription.vue.d.ts +0 -18
- package/dist/components/drawer/DrawerFooter.vue.d.ts +0 -17
- package/dist/components/drawer/DrawerHeader.vue.d.ts +0 -17
- package/dist/components/drawer/DrawerOverlay.vue.d.ts +0 -8
- package/dist/components/drawer/DrawerTitle.vue.d.ts +0 -18
- package/dist/components/drawer/composables/drawerSnapContext.d.ts +0 -28
- package/dist/components/drawer/composables/useDrawerSnap.d.ts +0 -24
- package/dist/components/drawer/constants.d.ts +0 -50
- package/dist/components/drawer/index.d.ts +0 -33
- package/dist/components/drawer/styles.css +0 -1
- package/dist/components/dropdown-menu/DropdownMenu.vue.d.ts +0 -24
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +0 -24
- package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +0 -36
- package/dist/components/dropdown-menu/DropdownMenuItem.vue.d.ts +0 -19
- package/dist/components/dropdown-menu/DropdownMenuLabel.vue.d.ts +0 -19
- package/dist/components/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +0 -22
- package/dist/components/dropdown-menu/DropdownMenuSeparator.vue.d.ts +0 -8
- package/dist/components/dropdown-menu/DropdownMenuShortcut.vue.d.ts +0 -17
- package/dist/components/dropdown-menu/DropdownMenuSubContent.vue.d.ts +0 -34
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +0 -18
- package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +0 -20
- package/dist/components/dropdown-menu/index.d.ts +0 -15
- package/dist/components/dropdown-menu/useMenuTrigger.d.ts +0 -14
- package/dist/components/easing/EasingConfigurator.vue.d.ts +0 -33
- package/dist/components/focus-scope/FocusScope.vue.d.ts +0 -20
- package/dist/components/focus-scope/index.d.ts +0 -2
- package/dist/components/fourier-field/presets.d.ts +0 -54
- package/dist/components/goo-filter/GooFilter.vue.d.ts +0 -22
- package/dist/components/goo-filter/index.d.ts +0 -1
- package/dist/components/header-ribbon/HeaderRibbon.vue.d.ts +0 -31
- package/dist/components/header-ribbon/index.d.ts +0 -2
- package/dist/components/header-ribbon/types.d.ts +0 -7
- package/dist/components/icon-chip/IconChip.vue.d.ts +0 -4
- package/dist/components/icon-chip/index.d.ts +0 -2
- package/dist/components/icon-chip/styles.css +0 -1
- package/dist/components/icon-chip/types.d.ts +0 -92
- package/dist/components/icon-tooltip/IconTooltip.vue.d.ts +0 -16
- package/dist/components/icon-tooltip/index.d.ts +0 -1
- package/dist/components/instrument-chassis/ChassisDivider.vue.d.ts +0 -30
- package/dist/components/instrument-chassis/InstrumentChassis.vue.d.ts +0 -97
- package/dist/components/instrument-chassis/index.d.ts +0 -3
- package/dist/components/instrument-chassis/styles.css +0 -1
- package/dist/components/labeled-field/LabeledSelect.vue.d.ts +0 -26
- package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +0 -46
- package/dist/components/liquid-grid/composables/liquidGrid.d.ts +0 -113
- package/dist/components/liquid-grid/composables/liquidGridGLSetup.d.ts +0 -18
- package/dist/components/liquid-grid/composables/liquidGridWGPUSetup.d.ts +0 -21
- package/dist/components/liquid-grid/composables/uniformBridgeWGPU.d.ts +0 -16
- package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +0 -32
- package/dist/components/liquid-grid/constants.d.ts +0 -93
- package/dist/components/liquid-grid/index.d.ts +0 -5
- package/dist/components/liquid-grid/shaders/liquid-grid.glsl.d.ts +0 -4
- package/dist/components/liquid-grid/shaders/liquid-grid.wgsl.d.ts +0 -1
- package/dist/components/metric-badge/MetricBadge.vue.d.ts +0 -40
- package/dist/components/metric-badge/index.d.ts +0 -2
- package/dist/components/metric-cell/MetricCell.vue.d.ts +0 -108
- package/dist/components/metric-cell/index.d.ts +0 -2
- package/dist/components/metric-stack/MetricRow.vue.d.ts +0 -120
- package/dist/components/metric-stack/MetricStack.vue.d.ts +0 -92
- package/dist/components/metric-stack/index.d.ts +0 -4
- package/dist/components/notification/Notification.vue.d.ts +0 -16
- package/dist/components/notification/index.d.ts +0 -1
- package/dist/components/number-field/NumberFieldContent.vue.d.ts +0 -17
- package/dist/components/number-field/NumberFieldDecrement.vue.d.ts +0 -18
- package/dist/components/number-field/NumberFieldIncrement.vue.d.ts +0 -18
- package/dist/components/pager-dots/composables/usePagerWorm.d.ts +0 -26
- package/dist/components/pager-dots/constants.d.ts +0 -15
- package/dist/components/pager-dots/pagerWindow.d.ts +0 -9
- package/dist/components/paper-backdrop/PaperBackdrop.vue.d.ts +0 -21
- package/dist/components/paper-backdrop/index.d.ts +0 -2
- package/dist/components/progress/ProgressDefault.vue.d.ts +0 -9
- package/dist/components/progress/ProgressGradient.vue.d.ts +0 -26
- package/dist/components/progress/ProgressLiquid.vue.d.ts +0 -22
- package/dist/components/progress/valueMarks.css +0 -1
- package/dist/components/pulse/Pulse.vue.d.ts +0 -53
- package/dist/components/pulse/index.d.ts +0 -1
- package/dist/components/search/FuzzySearch.vue.d.ts +0 -24
- package/dist/components/select/SelectScrollDownButton.vue.d.ts +0 -18
- package/dist/components/select/SelectScrollUpButton.vue.d.ts +0 -18
- package/dist/components/sortable-list/composables/dragController.d.ts +0 -29
- package/dist/components/sortable-list/composables/dropResolver.d.ts +0 -34
- package/dist/components/sortable-list/composables/ghostRenderer.d.ts +0 -44
- package/dist/components/sortable-list/composables/index.d.ts +0 -1
- package/dist/components/sortable-list/composables/touchGate.d.ts +0 -26
- package/dist/components/sortable-list/composables/transitionTiming.d.ts +0 -50
- package/dist/components/spa-view/SpaView.vue.d.ts +0 -50
- package/dist/components/spa-view/index.d.ts +0 -2
- package/dist/components/split-chars/SplitChars.vue.d.ts +0 -53
- package/dist/components/split-chars/index.d.ts +0 -1
- package/dist/components/tabs/composables/useEyeglassLive.d.ts +0 -17
- package/dist/components/tabs/constants.d.ts +0 -1
- package/dist/components/tags-input/TagsInput.vue.d.ts +0 -28
- package/dist/components/tags-input/TagsInputInput.vue.d.ts +0 -8
- package/dist/components/tags-input/TagsInputItem.vue.d.ts +0 -18
- package/dist/components/tags-input/TagsInputItemDelete.vue.d.ts +0 -18
- package/dist/components/tags-input/TagsInputItemText.vue.d.ts +0 -8
- package/dist/components/tags-input/index.d.ts +0 -5
- package/dist/components/timeline/ContinuousMarkers.vue.d.ts +0 -49
- package/dist/components/timeline/ContinuousRail.vue.d.ts +0 -26
- package/dist/components/timeline/ContinuousTimeline.vue.d.ts +0 -118
- package/dist/components/timeline/GlassTimeline.vue.d.ts +0 -114
- package/dist/components/timeline/ScrubberTimeline.vue.d.ts +0 -45
- package/dist/components/timeline/SegmentedTimeline.vue.d.ts +0 -46
- package/dist/components/toggle/Toggle.vue.d.ts +0 -29
- package/dist/components/toggle/index.d.ts +0 -26
- package/dist/components/toggle-group/toggleGroupContext.d.ts +0 -20
- package/dist/components/typewriter/composables/index.d.ts +0 -1
- package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +0 -74
- package/dist/components/watercolor-dot/index.d.ts +0 -3
- package/dist/components/watercolor-dot/prng.d.ts +0 -5
- package/dist/components/watercolor-dot/useWatercolorBlob.d.ts +0 -31
- package/dist/composables/glass/ambientHueHistogram.d.ts +0 -27
- package/dist/composables/glass/useSpecularPointer.d.ts +0 -52
- package/dist/composables/glass/wave/index.d.ts +0 -4
- package/dist/composables/glass/wave/waveField.d.ts +0 -136
- package/dist/composables/glass/wave/waveField.glsl.d.ts +0 -1
- package/dist/composables/glass/wave/waveField.wgsl.d.ts +0 -1
- package/dist/composables/glass/webgl/shaders/glass-refract.glsl.d.ts +0 -36
- package/dist/composables/glass/webgpu/index.d.ts +0 -3
- package/dist/composables/index.d.ts +0 -9
- package/dist/composables/motion/bloomUpField.d.ts +0 -29
- package/dist/composables/motion/constants.d.ts +0 -19
- package/dist/composables/motion/curves.d.ts +0 -48
- package/dist/composables/motion/gooBarbellGeometry.d.ts +0 -79
- package/dist/composables/motion/morphSignatures.d.ts +0 -88
- package/dist/composables/motion/springPresets.d.ts +0 -45
- package/dist/composables/motion/suite.d.ts +0 -2
- package/dist/composables/motion/useBloomUp.d.ts +0 -97
- package/dist/composables/motion/useCharStagger.d.ts +0 -44
- package/dist/composables/motion/useCountup.d.ts +0 -30
- package/dist/composables/motion/useElementMorph.d.ts +0 -107
- package/dist/composables/motion/useGooMorph.d.ts +0 -72
- package/dist/composables/motion/useLeadTrail.d.ts +0 -69
- package/dist/composables/motion/useNumericTransition.d.ts +0 -56
- package/dist/composables/motion/usePrioritizedTask.d.ts +0 -41
- package/dist/composables/motion/useScrollPin.d.ts +0 -49
- package/dist/composables/motion/useSelectionGroup.d.ts +0 -83
- package/dist/composables/motion/useSelectionIndicator.d.ts +0 -90
- package/dist/composables/motion/useStaggerReveal.d.ts +0 -52
- package/dist/composables/motion/useTextHighlight.d.ts +0 -41
- package/dist/composables/motion/useViewTransition.d.ts +0 -81
- package/dist/composables/virtual/index.d.ts +0 -4
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +0 -72
- package/dist/composables/virtual/useWindowedStore.d.ts +0 -43
- package/dist/composables/virtual/virtualSectionLayout.d.ts +0 -103
- package/dist/controls.d.ts +0 -1
- package/dist/controls.js +0 -83
- package/dist/data-table-DveMdgBM.js +0 -629
- package/dist/dialog-BzQxKrUr.js +0 -281
- package/dist/dockContext-4S9qP0Z4.js +0 -13
- package/dist/drawer.d.ts +0 -1
- package/dist/drawer.js +0 -443
- package/dist/dropdown-menu-DORIA52F.js +0 -378
- package/dist/dropdown-menu.d.ts +0 -1
- package/dist/flow.glsl-DEGFGE11.js +0 -4
- package/dist/focus-scope-DUTKveod.js +0 -23
- package/dist/focus-scope.d.ts +0 -1
- package/dist/focus-scope.js +0 -2
- package/dist/fonts/README.md +0 -124
- package/dist/fonts/fira-code/OFL.txt +0 -93
- package/dist/fonts/plus-jakarta-sans/OFL.txt +0 -93
- package/dist/forms.d.ts +0 -5
- package/dist/forms.js +0 -298
- package/dist/header-ribbon.d.ts +0 -1
- package/dist/header-ribbon.js +0 -74
- package/dist/icon-chip-BWuxz1-u.js +0 -57
- package/dist/icon-chip.d.ts +0 -1
- package/dist/icon-chip.js +0 -2
- package/dist/icon-tooltip-CO6rw0dZ.js +0 -25
- package/dist/icon-tooltip.d.ts +0 -1
- package/dist/icon-tooltip.js +0 -2
- package/dist/instrument-chassis-Cvstg4_U.js +0 -65
- package/dist/instrument-chassis.d.ts +0 -1
- package/dist/instrument-chassis.js +0 -2
- package/dist/label-Cj38tJKG.js +0 -36
- package/dist/liquid-grid.d.ts +0 -1
- package/dist/liquid-grid.js +0 -1075
- package/dist/menuItemVariants-D6AOzzND.js +0 -36
- package/dist/metric-badge.d.ts +0 -1
- package/dist/metric-badge.js +0 -79
- package/dist/metric-cell.d.ts +0 -1
- package/dist/metric-cell.js +0 -61
- package/dist/metric-stack.d.ts +0 -1
- package/dist/metric-stack.js +0 -113
- package/dist/motion-curves.d.ts +0 -1
- package/dist/motion-curves.js +0 -146
- package/dist/notification-DVs7ODMg.js +0 -52
- package/dist/notification.d.ts +0 -1
- package/dist/notification.js +0 -2
- package/dist/number-field-PvkGedHk.js +0 -140
- package/dist/paper-backdrop.d.ts +0 -1
- package/dist/paper-backdrop.js +0 -31
- package/dist/popover-WMgyRSyN.js +0 -256
- package/dist/progress-C-HHuFZy.js +0 -192
- package/dist/pulse.d.ts +0 -1
- package/dist/pulse.js +0 -56
- package/dist/resolveCanvasColor-yarP5bdk.js +0 -93
- package/dist/select-BIv4R3Ir.js +0 -326
- package/dist/separator-CBU94kTM.js +0 -62
- package/dist/slider-Cc_qw6GA.js +0 -166
- package/dist/spa-view.d.ts +0 -1
- package/dist/spa-view.js +0 -46
- package/dist/springPresets-h5VKJQqG.js +0 -58
- package/dist/styles/draw-in.css +0 -1
- package/dist/styles/glass/accent-tone.css +0 -1
- package/dist/styles/glass/grain-overlay.css +0 -1
- package/dist/styles/glass/material-roles.css +0 -1
- package/dist/styles/glass/progress-rail.css +0 -1
- package/dist/styles/glass-refract.css +0 -1
- package/dist/styles/tokens.ts +0 -58
- package/dist/switch-Boj4Ucn5.js +0 -49
- package/dist/toast-kAbchIN2.js +0 -281
- package/dist/toggle-group-BPchFsns.js +0 -178
- package/dist/tooltip-BmOQJzh0.js +0 -111
- package/dist/useAccentTone-C-p6WdPe.js +0 -23
- package/dist/useAnimatedNumber-BRVVaFFc.js +0 -40
- package/dist/useControlSize-CFfOk8I-.js +0 -9
- package/dist/useDockCtaReceive-CK-RLASa.js +0 -257
- package/dist/useDocumentVisibility-YeBDGqtI.js +0 -17
- package/dist/useDragMorph-7ygF9O0m.js +0 -93
- package/dist/useGooMorph-D1F6QJlH.js +0 -349
- package/dist/useIntersectionPause-B-dbxl9w.js +0 -39
- package/dist/useLeadTrail-BYu8dq4G.js +0 -74
- package/dist/useLiquidPress-BYcwwGQV.js +0 -68
- package/dist/useMotionAxis-DCCXMC-i.js +0 -20
- package/dist/usePointerVelocityField-BdvnO0py.js +0 -122
- package/dist/useRAFLoop-BtwQ9DyY.js +0 -109
- package/dist/useResolveTokenColor-C07e-qaT.js +0 -24
- package/dist/useRoutePointer-BDNMFN73.js +0 -52
- package/dist/useScrollProgress-DZI4nf4v.js +0 -35
- package/dist/useSelectionGroup-LDzBdR1Y.js +0 -215
- package/dist/useSpringMount-C6-DBx4e.js +0 -71
- package/dist/useSpringPress-BypV_KO-.js +0 -36
- package/dist/useSurfaceAxis-DudiZVOR.js +0 -10
- package/dist/useTabRovingFocus-DkLYwo4L.js +0 -143
- package/dist/useUserInvalidAria-Cr4nR3tu.js +0 -25
- package/dist/vReveal-DZfWl9XI.js +0 -10
- package/dist/vSpecular-CQFmLNzA.js +0 -68
- package/dist/watercolor-dot.d.ts +0 -1
- package/dist/watercolor-dot.js +0 -175
- package/src/fonts/README.md +0 -124
- package/src/fonts/fira-code/OFL.txt +0 -93
- package/src/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
- package/src/fonts/fira-code/fira-code-latin.woff2 +0 -0
- package/src/fonts/plus-jakarta-sans/OFL.txt +0 -93
- package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
- package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
- package/src/styles/accessibility.css +0 -48
- package/src/styles/animations.css +0 -468
- package/src/styles/draw-in.css +0 -89
- package/src/styles/fonts.css +0 -143
- package/src/styles/glass/a11y-fallback.css +0 -188
- package/src/styles/glass/accent-tone.css +0 -66
- package/src/styles/glass/control-surfaces.css +0 -171
- package/src/styles/glass/deep.css +0 -114
- package/src/styles/glass/defined.css +0 -88
- package/src/styles/glass/glass-atom.css +0 -247
- package/src/styles/glass/glass-capsule.css +0 -175
- package/src/styles/glass/glass-chip.css +0 -211
- package/src/styles/glass/grain-overlay.css +0 -79
- package/src/styles/glass/ladder-undershadow.css +0 -61
- package/src/styles/glass/ladder.css +0 -452
- package/src/styles/glass/liquid-enter.css +0 -240
- package/src/styles/glass/liquid-fill.css +0 -65
- package/src/styles/glass/material-roles.css +0 -18
- package/src/styles/glass/material.css +0 -500
- package/src/styles/glass/progress-rail.css +0 -78
- package/src/styles/glass/reveal.css +0 -333
- package/src/styles/glass/rim.css +0 -122
- package/src/styles/glass/squircle.css +0 -58
- package/src/styles/glass/surface-axis.css +0 -136
- package/src/styles/glass/surfaces-pager.css +0 -79
- package/src/styles/glass/surfaces.css +0 -434
- package/src/styles/glass-refract.css +0 -112
- package/src/styles/glass-specular-track.css +0 -74
- package/src/styles/glass.css +0 -110
- package/src/styles/index.css +0 -288
- package/src/styles/paper.css +0 -187
- package/src/styles/scroll-choreography.css +0 -294
- package/src/styles/scroll-chrome.css +0 -123
- package/src/styles/scroll-driven.css +0 -123
- package/src/styles/theme/bridges.css +0 -380
- package/src/styles/theme/dark.css +0 -7
- package/src/styles/theme/literals.css +0 -104
- package/src/styles/theme/radius.css +0 -148
- package/src/styles/theme.css +0 -33
- package/src/styles/tokens/color-radius.css +0 -308
- package/src/styles/tokens/dark-arm-glass.css +0 -55
- package/src/styles/tokens/dark-arm.css +0 -455
- package/src/styles/tokens/glass-deep.css +0 -126
- package/src/styles/tokens/glass-fx.css +0 -480
- package/src/styles/tokens/glass.css +0 -477
- package/src/styles/tokens/light-dark.css +0 -216
- package/src/styles/tokens/motion-registers.css +0 -93
- package/src/styles/tokens/offsets.css +0 -142
- package/src/styles/tokens/on-glass-fg.css +0 -39
- package/src/styles/tokens/property-regs-specular.css +0 -160
- package/src/styles/tokens/property-regs.css +0 -448
- package/src/styles/tokens/scale-paper.css +0 -495
- package/src/styles/tokens/scheme-motion.css +0 -425
- package/src/styles/tokens/scheme-spring.css +0 -282
- package/src/styles/tokens/scroll-tokens.css +0 -137
- package/src/styles/tokens/shadow.css +0 -206
- package/src/styles/tokens/sizing-config.css +0 -110
- package/src/styles/tokens/sizing.css +0 -505
- package/src/styles/tokens.css +0 -68
- package/src/styles/tokens.ts +0 -58
- package/src/styles/transitions.css +0 -228
- package/src/styles/typography/scale.css +0 -166
- package/src/styles/typography/semantic.css +0 -233
- package/src/styles/typography/utilities.css +0 -197
- package/src/styles/typography.css +0 -46
- package/src/styles/utilities/a11y-overrides.css +0 -184
- package/src/styles/utilities/base-misc.css +0 -307
- package/src/styles/utilities/base.css +0 -337
- package/src/styles/utilities/btn.css +0 -306
- package/src/styles/utilities/components.css +0 -337
- package/src/styles/utilities/metal.css +0 -272
- package/src/styles/utilities.css +0 -24
- package/src/styles/view-transition.css +0 -67
- package/src/styles/viz-reveal.css +0 -63
- /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-B3ysoDQm.js} +0 -0
- /package/dist/{compile-DK3Fri1B.js → compile-D7VYG3gi.js} +0 -0
- /package/dist/components/_shared/{valueDomain.d.ts → field/valueDomain.d.ts} +0 -0
- /package/dist/composables/glass/{webgl/shaders/procedural-color.glsl.d.ts → procedural/color.glsl.d.ts} +0 -0
- /package/dist/{components/aurora/constants/shaders/procedural-color.wgsl.d.ts → composables/glass/procedural/color.wgsl.d.ts} +0 -0
- /package/dist/composables/motion/{useIntersectionPause.d.ts → core/useIntersectionPause.d.ts} +0 -0
- /package/dist/composables/motion/{useRAFLoop.d.ts → core/useRAFLoop.d.ts} +0 -0
- /package/dist/composables/motion/{useYieldToMain.d.ts → core/useYieldToMain.d.ts} +0 -0
- /package/dist/composables/motion/{useAnimatedNumber.d.ts → number/useAnimatedNumber.d.ts} +0 -0
- /package/dist/composables/motion/{vReveal.d.ts → reveal/vReveal.d.ts} +0 -0
- /package/dist/composables/motion/{scrollReader.d.ts → scroll/scrollReader.d.ts} +0 -0
- /package/dist/composables/motion/{supportsCssTimeline.d.ts → scroll/supportsCssTimeline.d.ts} +0 -0
- /package/dist/composables/motion/{useScrollTrigger.d.ts → scroll/useScrollTrigger.d.ts} +0 -0
- /package/dist/{createContext-FU0n5MGK.js → createContext-BhkE9mLH.js} +0 -0
- /package/dist/{dark-DIH-blY1.js → dark-z_P5QwqI.js} +0 -0
- /package/dist/{motionTempo-CMS5b0Vu.js → motionTempo-tscp92Nm.js} +0 -0
- /package/dist/{prng-Dz2_9RJu.js → prng-2uS6J_A1.js} +0 -0
- /package/dist/{rendererStatus-C2-zC2Q-.js → rendererStatus-BxUlBLVy.js} +0 -0
- /package/dist/{useFuzzySearch-BOgep7RE.js → useFuzzySearch-CUnZknpm.js} +0 -0
- /package/dist/{useResizeObserver-BcUTquV7.js → useResizeObserver-CdUlm2QZ.js} +0 -0
- /package/dist/{useTimer-D8koDvJS.js → useTimer-C3yfti4C.js} +0 -0
- /package/dist/{writeVelocityWeight-D_AcvTsE.js → writeVelocityWeight-DoGOCW3e.js} +0 -0
|
@@ -12,31 +12,33 @@
|
|
|
12
12
|
* `frameLoop`/`runtime.resize` exactly — the loop is substrate-AGNOSTIC, so the same
|
|
13
13
|
* `getConfig`/`getReducedMotion`/`cursor` closures drive both backends.
|
|
14
14
|
*/
|
|
15
|
-
import type { WebGPUCanvasFrame } from "../../../composables/glass/webgpu/useWebGPUCanvas";
|
|
16
|
-
import { type AuroraCursorScalars } from "./frameLoop";
|
|
17
|
-
import { type UploadableImageSource } from "
|
|
18
|
-
import type { AuroraConfig } from "../constants/presets";
|
|
19
|
-
import type { UsePointerVelocityField } from "../../../composables/motion/usePointerVelocityField";
|
|
15
|
+
import type { WebGPUCanvasFrame } from "../../../composables/glass/webgpu/useWebGPUCanvas.js";
|
|
16
|
+
import { type AuroraCursorScalars } from "./frameLoop.js";
|
|
17
|
+
import { type UploadableImageSource } from "./textureUpload.js";
|
|
18
|
+
import type { AuroraConfig } from "../constants/presets.js";
|
|
19
|
+
import type { UsePointerVelocityField } from "../../../composables/motion/pointer/usePointerVelocityField.js";
|
|
20
20
|
export interface AuroraWGPUSetupDeps {
|
|
21
21
|
canvas: HTMLCanvasElement;
|
|
22
|
+
/** Live canvases present opaque; capture canvases retain premultiplied alpha. */
|
|
23
|
+
opaquePresentation: boolean;
|
|
22
24
|
/** The cursor strength ceiling + radius (the runtime's imperative setters write these). */
|
|
23
25
|
getCursorScalars: () => AuroraCursorScalars;
|
|
24
26
|
getConfig: () => AuroraConfig;
|
|
25
27
|
getReducedMotion: () => boolean;
|
|
28
|
+
/** Resolve shader time while pointer physics retain the real frame delta. */
|
|
29
|
+
getRenderTime: (elapsedSec: number) => number;
|
|
26
30
|
/**
|
|
27
|
-
*
|
|
28
|
-
* `tick(deltaMs)`
|
|
29
|
-
* loop feeds — one source, no own rAF); the renderer reads `acceleration` for the
|
|
30
|
-
* iOS-27 gel snap-back.
|
|
31
|
+
* Shared viz-pointer-physics field. The WGPU frame callback feeds
|
|
32
|
+
* `tick(deltaMs)` on the same field instance as WebGL2; it owns no rAF.
|
|
31
33
|
*/
|
|
32
34
|
pointerField: UsePointerVelocityField;
|
|
33
35
|
/**
|
|
34
|
-
*
|
|
35
|
-
* `null` before decode
|
|
36
|
+
* the decoded photo the `source:"image"` program samples (or
|
|
37
|
+
* `null` before decode, on a palette config). Read at setup + on re-upload.
|
|
36
38
|
*/
|
|
37
39
|
getDecodedImage: () => UploadableImageSource | null;
|
|
38
40
|
/**
|
|
39
|
-
*
|
|
41
|
+
* register the backend's texture uploader with the runtime so
|
|
40
42
|
* a late-arriving decode re-uploads into the live GPU texture. Passing `null` clears
|
|
41
43
|
* it (teardown). The runtime calls the registered fn when a decode resolves.
|
|
42
44
|
*/
|
|
@@ -1,44 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Promotes the formerly-magic `Math.min(dpr, 2)` literal that lived inline in
|
|
5
|
-
* the aurora + goo-blob `resize()` paths (the `2` was un-named in both) to ONE
|
|
6
|
-
* named ceiling, and adds the consumer-preset budget caps the SOTA crosswalk
|
|
7
|
-
* §2.F F6 calls for. A preset that exceeds a cap is CLAMPED at upload, so a
|
|
8
|
-
* consumer cannot blow the frame/VRAM budget by over-authoring a config.
|
|
9
|
-
*
|
|
10
|
-
* Token-first (the wave precept): these are the CPU-side numeric ceilings.
|
|
11
|
-
* They are NOT magic numbers scattered across runtimes — every WebGL surface
|
|
12
|
-
* reads the same export, so a tuning change lands in one place.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* The device-pixel-ratio clamp. A retina/4K display reports `devicePixelRatio`
|
|
16
|
-
* 2–3+; rendering a full-viewport `backdrop-filter`-adjacent WebGL surface at
|
|
17
|
-
* 3× is ~2.25× the fill of 2× for no perceptible gain on a drift background.
|
|
18
|
-
* Cap the backing-store resolution at 2× — the single biggest VRAM/fill lever
|
|
19
|
-
* after the offscreen-park. Consumed by aurora's + goo-blob's `resize()`.
|
|
20
|
-
*/
|
|
21
|
-
export declare const AV_DPR_MAX = 2;
|
|
22
|
-
/**
|
|
23
|
-
* BB.W-PERF-PRODUCER A′-5 — the aurora decorative-WASH DPR ceiling, SUB-2× and
|
|
24
|
-
* DISTINCT from the focal goo-blob's {@link AV_DPR_MAX}. The aurora atmosphere is a
|
|
25
|
-
* heavily-blurred drift background, not a sharp-silhouette creature: backing it at
|
|
26
|
-
* full-viewport 2× (the value.js LP1 trace: ~2880×1800, ~21.8 MB native heap) is
|
|
27
|
-
* visually indistinguishable from 1.5× on a drift wash (the per-pixel FBM is
|
|
28
|
-
* already smoothed below the DPR-2 detail floor), so the 1.5× ceiling quarters the
|
|
29
|
-
* GPU memory + per-composite raster for no perceptible loss. The FOCAL goo-blob
|
|
30
|
-
* KEEPS {@link AV_DPR_MAX} = 2 — its silhouette is sharp; only the aurora wash
|
|
31
|
-
* reads this sub-cap. This is the CPU-side backing-store DIMENSION only; it never
|
|
32
|
-
* reaches the shader (`aurora.frag` is byte-fenced — the GL fence is absolute).
|
|
33
|
-
*/
|
|
34
|
-
export declare const AV_AURORA_DPR_MAX = 1.5;
|
|
35
|
-
/**
|
|
36
|
-
* The maximum animated metaball nuclei (the goo-blob body + its satellites, or
|
|
37
|
-
* an aurora field's count). The goo-blob shader hard-caps satellites at 4; this
|
|
38
|
-
* is the authored-config soft cap (body + ≤2 satellites is the budget-safe
|
|
39
|
-
* register, ≤3 the ceiling). A preset above this is clamped at upload.
|
|
40
|
-
*/
|
|
41
|
-
export declare const AV_MAX_BLOBS = 3;
|
|
1
|
+
/** Shared CPU-side ceilings for GPU surface work. Authored values are clamped at
|
|
2
|
+
* upload so a configuration cannot exceed the frame or VRAM budget. */
|
|
42
3
|
/**
|
|
43
4
|
* The maximum palette colors a budget-safe field mixes per frame. Aurora's
|
|
44
5
|
* shader caps palette stops at {@link MAX_STOPS} (8) for authoring range; this
|
|
@@ -46,14 +7,6 @@ export declare const AV_MAX_BLOBS = 3;
|
|
|
46
7
|
* cheap. Above this the gradient cost grows without perceptible richness.
|
|
47
8
|
*/
|
|
48
9
|
export declare const AV_MAX_COLORS = 4;
|
|
49
|
-
/**
|
|
50
|
-
* The drift-loop duration band, in seconds. An animation that loops faster than
|
|
51
|
-
* {@link AV_LOOP_DURATION_MIN_S} reads as nervous (and never lets the eye rest →
|
|
52
|
-
* no battery reprieve); slower than {@link AV_LOOP_DURATION_MAX_S} reads as
|
|
53
|
-
* static. The 8–15s band is the SOTA-named budget-safe drift window.
|
|
54
|
-
*/
|
|
55
|
-
export declare const AV_LOOP_DURATION_MIN_S = 8;
|
|
56
|
-
export declare const AV_LOOP_DURATION_MAX_S = 15;
|
|
57
10
|
/** Clamp a numeric value into an inclusive `[min, max]` band. */
|
|
58
11
|
export declare function clampBudget(value: number, min: number, max: number): number;
|
|
59
12
|
/**
|
|
@@ -62,10 +15,8 @@ export declare function clampBudget(value: number, min: number, max: number): nu
|
|
|
62
15
|
*/
|
|
63
16
|
export declare function resolveBudgetDpr(): number;
|
|
64
17
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* absent). The single CPU-side reader is aurora's `runtime.ts` `resize()`; the
|
|
69
|
-
* focal goo-blob keeps {@link resolveBudgetDpr}.
|
|
18
|
+
* Resolve the backing-store DPR for the Aurora decorative wash at the
|
|
19
|
+
* {@link AV_AURORA_DPR_MAX} ceiling. SSR-safe; returns `1` without `window`.
|
|
20
|
+
* Focal Blob surfaces use {@link resolveBudgetDpr} instead.
|
|
70
21
|
*/
|
|
71
22
|
export declare function resolveAuroraWashDpr(): number;
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Aurora
|
|
2
|
+
* Aurora library configuration.
|
|
3
3
|
*
|
|
4
4
|
* Authored presets (Sky, Dawn, Meadow, Deliberative, Day9, Oil Impasto,
|
|
5
5
|
* Oil Gestural, Oil Van Gogh, Crayon Sunset, Crayon Rainbow, Crayon Ocean)
|
|
6
6
|
* live in the consumer — see demo/stories/substrates/aurora/presets.ts.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* shape + a minimum-viable DEFAULT_AURORA_CONFIG for the component's own
|
|
8
|
+
* Named themed presets belong in each consumer project. The library exports only
|
|
9
|
+
* the shape and a minimum-viable DEFAULT_AURORA_CONFIG for the component's own
|
|
11
10
|
* type-check ergonomics.
|
|
12
11
|
*/
|
|
13
|
-
import type { OklchStop } from "../../../composables/color";
|
|
12
|
+
import type { OklchStop } from "../../../composables/color/index.js";
|
|
14
13
|
export type { OklchStop };
|
|
15
|
-
import type { HueInterpolationMethod } from "@mkbabb/value.js";
|
|
14
|
+
import type { HueInterpolationMethod } from "@mkbabb/value.js/color";
|
|
16
15
|
export type AuroraHuePath = HueInterpolationMethod;
|
|
17
16
|
export type AuroraSource = "palette" | "image";
|
|
18
|
-
import type { ImageInputSource } from "
|
|
17
|
+
import type { ImageInputSource } from "../composables/textureUpload.js";
|
|
19
18
|
export type AuroraImageSource = ImageInputSource;
|
|
20
19
|
export type { ImageInputSource };
|
|
21
20
|
/** The per-fragment blur-radius band (uv units) the drifting zone lerps between. */
|
|
@@ -55,7 +54,7 @@ export type AuroraMedium = "smooth" | "pastel" | "watercolor" | "oil" | "crayon"
|
|
|
55
54
|
export type StrokeMode = "oil" | "knife" | "chunky";
|
|
56
55
|
export type FlowPattern = "none" | "radial" | "swirl" | "diagonal" | "multi" | "tensor";
|
|
57
56
|
/**
|
|
58
|
-
*
|
|
57
|
+
* How a stroke's orientation is sourced. `flow` keeps the hand-authored
|
|
59
58
|
* `flowField` pattern + per-cell jitter (the named legacy choice); `tensor`
|
|
60
59
|
* substitutes the structure-tensor minor-eigenvector (the color field's own
|
|
61
60
|
* edge-tangent flow). No default that hides one as a duplicate of the other.
|
|
@@ -63,30 +62,26 @@ export type FlowPattern = "none" | "radial" | "swirl" | "diagonal" | "multi" | "
|
|
|
63
62
|
export type StrokeOrient = "flow" | "tensor";
|
|
64
63
|
export type WarpMode = "fbm" | "cellular" | "hybrid" | "curl";
|
|
65
64
|
/**
|
|
66
|
-
*
|
|
67
|
-
* wired at W8). Each axis opts the aurora into a pointer/scroll response:
|
|
65
|
+
* Interactivity shape. Each axis opts Aurora into a pointer/scroll response:
|
|
68
66
|
* - `light` — the cursor drives the impasto `uLightDir` (cursor-as-light + idle orbit).
|
|
69
|
-
* - `flow` — pointer/scroll VELOCITY injects a transient swirl-burst (velocity-reactive).
|
|
70
67
|
* - `scroll` — palette/breath progress couples to scroll (via `useScrollProgress`).
|
|
71
|
-
* - `
|
|
68
|
+
* - `swirl` — cursor-local warp and luminance lean on both engines.
|
|
69
|
+
* - `amplitude` — sizes the transient burst folded into cursor strength on the CPU.
|
|
72
70
|
* Every axis is suppressed under `prefers-reduced-motion` + the DockBackgroundToggle
|
|
73
71
|
* pause (the master tempo scalar is the single suppression seam). The wispy-sky
|
|
74
72
|
* default carries no `interactivity` (every axis OFF — the default stays static).
|
|
75
73
|
*/
|
|
76
74
|
export interface AuroraInteractivity {
|
|
77
75
|
light?: boolean;
|
|
78
|
-
flow?: boolean;
|
|
79
76
|
scroll?: boolean;
|
|
80
|
-
wake?: boolean;
|
|
81
77
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* edit — the T-38 dead-swirl-axis fix). The atoms door defaults it ON when interactive.
|
|
78
|
+
* Cursor-local field warp and luminance lean. The atoms
|
|
79
|
+
* door defaults it ON when interactive, including on the smooth medium.
|
|
85
80
|
*/
|
|
86
81
|
swirl?: boolean;
|
|
87
82
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
83
|
+
* Sized burst amplitude (0..1). The CPU projection folds
|
|
84
|
+
* the pointer-field burst into the shared cursor strength before either engine sees it.
|
|
90
85
|
*/
|
|
91
86
|
amplitude?: number;
|
|
92
87
|
}
|
|
@@ -112,13 +107,13 @@ export interface AuroraConfig {
|
|
|
112
107
|
noiseOctaves: 3 | 4 | 5;
|
|
113
108
|
source?: AuroraSource;
|
|
114
109
|
/**
|
|
115
|
-
*
|
|
116
|
-
* string
|
|
110
|
+
* the photo the `source:"image"` program dissolves. A URL
|
|
111
|
+
* string, `Blob` (decoded through the shared normalisation) OR an already-uploadable
|
|
117
112
|
* source (`ImageBitmap`/`HTMLImageElement`/…). Ignored when `source !== "image"`.
|
|
118
113
|
*/
|
|
119
114
|
src?: AuroraImageSource;
|
|
120
115
|
/**
|
|
121
|
-
*
|
|
116
|
+
* the per-fragment blur-radius band (uv units) the drifting
|
|
122
117
|
* zone lerps between (`radius = mix(min, max, zone)`). Optional; omitted = the
|
|
123
118
|
* `IMAGE_BLUR_MIN_DEFAULT`/`IMAGE_BLUR_MAX_DEFAULT` band (near-sharp → heavy-bokeh
|
|
124
119
|
* dissolve). Only read on the `source:"image"` program.
|
|
@@ -126,19 +121,18 @@ export interface AuroraConfig {
|
|
|
126
121
|
imageBlur?: AuroraImageBlur;
|
|
127
122
|
medium: AuroraMedium;
|
|
128
123
|
/**
|
|
129
|
-
*
|
|
124
|
+
* Hue-arc method for OKLCh palette interpolation. Optional;
|
|
130
125
|
* omitted = `"shorter"` (the OKLab-rectangular ramp — the muddy-midtone-free
|
|
131
126
|
* default). `"increasing"`/`"decreasing"` request the OKLCh hue-arc for a
|
|
132
|
-
* deliberate rainbow sweep across the stops.
|
|
127
|
+
* deliberate rainbow sweep across the stops.
|
|
133
128
|
*/
|
|
134
129
|
huePath?: AuroraHuePath;
|
|
135
130
|
flow: AuroraFlow;
|
|
136
131
|
/**
|
|
137
|
-
*
|
|
138
|
-
* `"flow"
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* `oil-pastel` mediums force it.
|
|
132
|
+
* How the painterly stroke direction is sourced. Optional; omitted =
|
|
133
|
+
* `"flow"`, the hand-authored `flowField` pattern. `"tensor"` substitutes the
|
|
134
|
+
* structure-tensor minor eigenvector, the color field's edge-tangent flow;
|
|
135
|
+
* the `vangogh` and `oil-pastel` mediums force it.
|
|
142
136
|
*/
|
|
143
137
|
strokeOrient?: StrokeOrient;
|
|
144
138
|
strokeAmount: number;
|
|
@@ -152,7 +146,7 @@ export interface AuroraConfig {
|
|
|
152
146
|
brokenColor: number;
|
|
153
147
|
canvasGrain: number;
|
|
154
148
|
/**
|
|
155
|
-
*
|
|
149
|
+
* Anisotropic-Kuwahara painterly-finish knobs (the
|
|
156
150
|
* `medium:"kuwahara"` register; the WGSL primary's keystone). Optional; omitted =
|
|
157
151
|
* the recipe defaults (radius 0.010 procedural-patch units, q 4.0 the SOFT
|
|
158
152
|
* variance-weight exponent). Sectors are fixed at 8 (the soft-blend overlap floor —
|
|
@@ -162,29 +156,28 @@ export interface AuroraConfig {
|
|
|
162
156
|
kuwaharaRadius?: number;
|
|
163
157
|
kuwaharaQ?: number;
|
|
164
158
|
/**
|
|
165
|
-
*
|
|
166
|
-
*
|
|
159
|
+
* Metal-medium knobs for `medium:"metal"` and `"metal-gradient"` (uMedium==8/9).
|
|
160
|
+
* Optional; omitted = the recipe
|
|
167
161
|
* defaults (`METAL_POLISH_DEFAULT` catch intensity, `METAL_HEIGHT_SCALE_DEFAULT`
|
|
168
162
|
* relief tilt). `metalPolish` scales the specular catch; `metalHeightScale` scales
|
|
169
163
|
* the luma-relief → normal tilt (a higher value reads as sharper folds). On the WGSL
|
|
170
|
-
* primary these ride the free cursor.z/.w pad lanes; the
|
|
164
|
+
* primary these ride the free cursor.z/.w pad lanes; the.frag carries them as its
|
|
171
165
|
* own uniforms. A non-metal config never reads them (no-op).
|
|
172
166
|
*/
|
|
173
167
|
metalPolish?: number;
|
|
174
168
|
metalHeightScale?: number;
|
|
175
169
|
/**
|
|
176
|
-
*
|
|
170
|
+
* Impasto relight direction (the movable directional source the
|
|
177
171
|
* accumulated paint-height field catches). Optional; omitted = upper-left
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
* from the cursor (cursor-as-light); the shader re-normalizes it.
|
|
172
|
+
* Unit-ish [x, y, z] in screen space (z toward the viewer). The shader
|
|
173
|
+
* re-normalizes it.
|
|
181
174
|
*/
|
|
182
175
|
lightDir?: [number, number, number];
|
|
183
176
|
/**
|
|
184
|
-
*
|
|
177
|
+
* Relight tint for the impasto catch-light. Optional;
|
|
185
178
|
* omitted = the canonical warm-white the shared `warmCatchLight` OKLCh helper
|
|
186
|
-
* derives (the `(0.985, 0.0125, 77.5°)` anchor — perceptually
|
|
187
|
-
*
|
|
179
|
+
* derives (the `(0.985, 0.0125, 77.5°)` anchor — perceptually a warm-white, on
|
|
180
|
+
* the OKLCh core). Author it either as a raw LINEAR-light
|
|
188
181
|
* `[r,g,b]` triple OR as an `{L,C,h}` OKLCh anchor (the bridge derives the linear
|
|
189
182
|
* triple via `warmCatchLight`). The diffuse + Blinn-specular terms modulate by it.
|
|
190
183
|
*/
|
|
@@ -197,11 +190,11 @@ export interface AuroraConfig {
|
|
|
197
190
|
paperGrain: number;
|
|
198
191
|
alpha: number;
|
|
199
192
|
/**
|
|
200
|
-
*
|
|
193
|
+
* the §3 chroma FLOOR (the warm-field vividness contract).
|
|
201
194
|
* Optional; omitted = `DEFAULT_VIVIDNESS` (1 — high, the library's vivid identity).
|
|
202
195
|
* A shader-resident OKLab chroma-floor lifts any pale zone toward `VIVID_TARGET`
|
|
203
196
|
* (mode-scaled in the shader) so the field never resolves toward gray BEHIND glass
|
|
204
|
-
*
|
|
197
|
+
* the literal fix for the "missing colorful field → gray glass" defect. The lift
|
|
205
198
|
* is HUE-PRESERVING (scales chroma along the zone's existing OKLab direction); below
|
|
206
199
|
* `VIVID_EPS` the hue is precision noise, so the floor synthesizes along the WARM
|
|
207
200
|
* anchor (`VIVID_WARM_ANCHOR`) — NEVER teal/navy, the warm-floor guarantee. A
|
|
@@ -211,9 +204,8 @@ export interface AuroraConfig {
|
|
|
211
204
|
*/
|
|
212
205
|
vividness?: number;
|
|
213
206
|
/**
|
|
214
|
-
*
|
|
215
|
-
* default stays static).
|
|
216
|
-
* velocity-reactive flow / scroll-coupling / WebGPU-wake behavior. Omitted = every
|
|
207
|
+
* Pointer/scroll interactivity opt-in (default OFF — the wispy-sky
|
|
208
|
+
* default stays static). Omitted = every
|
|
217
209
|
* axis off. Aliased on `/api` as part of the `AuroraConfig` surface.
|
|
218
210
|
*/
|
|
219
211
|
interactivity?: AuroraInteractivity;
|
|
@@ -229,16 +221,14 @@ export interface AuroraCursorApi {
|
|
|
229
221
|
}
|
|
230
222
|
export interface AuroraInstance extends AuroraCursorApi {
|
|
231
223
|
/**
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
* capture `initStrategy` `createAurora` already calls this before
|
|
224
|
+
* Start GPU initialization. Idempotent. With the `"eager"` capture
|
|
225
|
+
* `initStrategy`, `createAurora` calls this before
|
|
235
226
|
* returning; on `"deferred"` the consumer (e.g. `useAurora`) invokes it
|
|
236
|
-
* past first paint.
|
|
237
|
-
* 24). A no-op once armed or once `dispose()` has run.
|
|
227
|
+
* past first paint. A no-op once armed or once `dispose()` has run.
|
|
238
228
|
*/
|
|
239
229
|
arm(): void;
|
|
240
230
|
/**
|
|
241
|
-
*
|
|
231
|
+
* Device-resolved arm promise. On the WebGPU
|
|
242
232
|
* backend `renderAt`/`arm` are no-ops until this resolves the async
|
|
243
233
|
* adapter→device→configure→setup prelude. A CAPTURE consumer (thumbnail bake)
|
|
244
234
|
* MUST `await armAsync()` before the first `renderAt` or the frame is BLANK
|
|
@@ -250,10 +240,9 @@ export interface AuroraInstance extends AuroraCursorApi {
|
|
|
250
240
|
renderAt(timeSec: number): void;
|
|
251
241
|
pause(): void;
|
|
252
242
|
resume(): void;
|
|
253
|
-
setReducedMotion(flag: boolean): void;
|
|
254
243
|
dispose(): void;
|
|
255
244
|
}
|
|
256
|
-
export declare const MAX_NUCLEI =
|
|
245
|
+
export declare const MAX_NUCLEI = 8;
|
|
257
246
|
export declare const MAX_STOPS = 8;
|
|
258
247
|
/**
|
|
259
248
|
* The default `vividness` for a bare `<Aurora>` — HIGH (the library's vivid identity).
|
|
@@ -271,7 +260,7 @@ export declare const DEFAULT_VIVIDNESS = 1;
|
|
|
271
260
|
*/
|
|
272
261
|
export declare const VIVID_TARGET = 0.115;
|
|
273
262
|
/**
|
|
274
|
-
* The default `metalPolish` (specular catch intensity) for a `medium:"metal"`
|
|
263
|
+
* The default `metalPolish` (specular catch intensity) for a `medium:"metal"` or
|
|
275
264
|
* `"metal-gradient"` config when omitted. The metal light rakes at unit intensity.
|
|
276
265
|
*/
|
|
277
266
|
export declare const METAL_POLISH_DEFAULT = 1;
|
|
@@ -282,7 +271,7 @@ export declare const METAL_POLISH_DEFAULT = 1;
|
|
|
282
271
|
export declare const METAL_HEIGHT_SCALE_DEFAULT = 1;
|
|
283
272
|
/**
|
|
284
273
|
* The default near-sharp blur radius (uv units) at zone 0 for a `source:"image"` aurora
|
|
285
|
-
*
|
|
274
|
+
* a whisper so the recognizable zones read crisp against the dissolved ones.
|
|
286
275
|
*/
|
|
287
276
|
export declare const IMAGE_BLUR_MIN_DEFAULT = 0.004;
|
|
288
277
|
/**
|
|
@@ -297,18 +286,18 @@ export declare const IMAGE_BLUR_MAX_DEFAULT = 0.06;
|
|
|
297
286
|
*/
|
|
298
287
|
export declare const DEFAULT_AURORA_CONFIG: AuroraConfig;
|
|
299
288
|
/**
|
|
300
|
-
* `PAPER_WASH_GROUND` — the library-canon recessive-ground crayon calibration
|
|
301
|
-
*
|
|
289
|
+
* `PAPER_WASH_GROUND` — the library-canon recessive-ground crayon calibration.
|
|
290
|
+
* A pure PRESET PARTIAL (no
|
|
302
291
|
* palette/nuclei/motion) pinning the recessive crayon-ground deposition dials so a
|
|
303
292
|
* data-ground aurora reads as paper-on-tooth without each consumer dial-tuning the
|
|
304
293
|
* same recessive calibration by hand. It carries NO palette/nuclei — the consumer
|
|
305
294
|
* spreads it over its own pole-derived pigment (page-glow IS data-glow):
|
|
306
|
-
* `const cfg = {
|
|
295
|
+
* `const cfg = {...consumerBase,...PAPER_WASH_GROUND }`.
|
|
307
296
|
*
|
|
308
297
|
* House-rule clean (presets-in-consumers): this is the LIBRARY's own recessive-ground
|
|
309
298
|
* IDENTITY, not a consumer theme — admissible at the root. `satisfies
|
|
310
|
-
* Partial<AuroraConfig>` holds (every key is a first-class `AuroraConfig` field
|
|
311
|
-
*
|
|
299
|
+
* Partial<AuroraConfig>` holds (every key is a first-class `AuroraConfig` field;
|
|
300
|
+
* the `crayon` medium is `uMedium==4`).
|
|
312
301
|
*/
|
|
313
302
|
export declare const PAPER_WASH_GROUND: {
|
|
314
303
|
readonly medium: "crayon";
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
export type AuroraRenderMode = "webgl" | "css" | "auto";
|
|
2
2
|
/**
|
|
3
|
-
* Detect a SOFTWARE
|
|
4
|
-
* Basic Render Driver)
|
|
5
|
-
*
|
|
6
|
-
* bootstrap; this consumer reads the renderer STRING through it rather than
|
|
7
|
-
* creating a second probe context, per `proof:webgl-substrate-single`).
|
|
3
|
+
* Detect a SOFTWARE, CPU WebGL renderer (SwiftShader, llvmpipe, the Microsoft
|
|
4
|
+
* Basic Render Driver) through the shared `probeWebGL2Renderer` capability helper,
|
|
5
|
+
* so this consumer does not create another context.
|
|
8
6
|
*
|
|
9
|
-
*
|
|
10
|
-
* the playwright SwiftShader harness): a full-viewport WebGL2 surface is a
|
|
7
|
+
* A full-viewport WebGL2 surface is a
|
|
11
8
|
* compositor layer the rasteriser must re-raster on every composite. On a
|
|
12
9
|
* software rasteriser that per-composite cost is so high that a REAL pointer
|
|
13
10
|
* interaction — which forces a composite — starves the renderer's input ack and
|
|
@@ -19,68 +16,56 @@ export type AuroraRenderMode = "webgl" | "css" | "auto";
|
|
|
19
16
|
* same palette, composites cheaply, and never stalls input. A blocklisted-GPU
|
|
20
17
|
* user gets a smooth atmosphere instead of a janky/hanging one.
|
|
21
18
|
*
|
|
22
|
-
* A `null` probe (no WebGL2
|
|
19
|
+
* A `null` probe (no WebGL2, extension masked, throw) returns `false` — we
|
|
23
20
|
* never downgrade a renderer we cannot PROVE is software (the `"css"` path is the
|
|
24
21
|
* conservative-but-lossy choice, so a false miss keeps the richer default).
|
|
25
22
|
*/
|
|
26
23
|
export declare function isSoftwareWebGLRenderer(): boolean;
|
|
27
24
|
/**
|
|
28
|
-
* Resolve-mode options. The software-raster
|
|
29
|
-
*
|
|
30
|
-
* (BB.W-AURORA-SWRASTER).
|
|
25
|
+
* Resolve-mode options. The software-raster guard is the safe default; the named
|
|
26
|
+
* escape is `forceWebGLUnderSoftwareRaster`.
|
|
31
27
|
*/
|
|
32
28
|
export interface ResolveRenderModeOptions {
|
|
33
29
|
/**
|
|
34
30
|
* Opt OUT of the universal software-raster guard. When `true`, a forced
|
|
35
31
|
* `mode:"webgl"`/`mode:"capture"` arm ARMS the live WebGL2 surface even on a
|
|
36
|
-
* detected software renderer (SwiftShader
|
|
32
|
+
* detected software renderer (SwiftShader, llvmpipe, MS Basic Render) — for
|
|
37
33
|
* a deterministic test that ACCEPTS the per-composite raster cost. Default
|
|
38
34
|
* `false`: the guard is the SAFE default (a software-raster signal forces
|
|
39
35
|
* `"css"` regardless of the requested mode, so a consumer who pins
|
|
40
|
-
* `mode:"webgl"` on a headless
|
|
36
|
+
* `mode:"webgl"` on a headless, GPU-blocklisted device gets the static
|
|
41
37
|
* ground, never the page-wedging hang). The escape is NAMED + recorded,
|
|
42
38
|
* never silent.
|
|
43
39
|
*/
|
|
44
40
|
forceWebGLUnderSoftwareRaster?: boolean;
|
|
45
41
|
}
|
|
46
42
|
/**
|
|
47
|
-
* Resolve `"auto"` to a concrete substrate per device tier
|
|
48
|
-
* software-raster guard
|
|
43
|
+
* Resolve `"auto"` to a concrete substrate per device tier and apply the
|
|
44
|
+
* software-raster guard to every GPU-arming mode.
|
|
49
45
|
*
|
|
50
|
-
*
|
|
51
|
-
* llvmpipe / MS Basic Render — the GPU-blocklisted / headless path) forces `"css"`
|
|
46
|
+
* A software WebGL renderer (SwiftShader, llvmpipe, or MS Basic Render) forces `"css"`
|
|
52
47
|
* for ANY WebGL-ARMING requested mode (`"webgl"` OR `"auto"`), not only `"auto"`.
|
|
53
48
|
* A full-viewport software-rastered GL layer is so expensive to re-raster on every
|
|
54
49
|
* composite that a pointer interaction starves the renderer's input ack and the
|
|
55
|
-
* page
|
|
56
|
-
*
|
|
57
|
-
* `mode:"capture"` on such a device MUST still fall to the static ground — so the
|
|
50
|
+
* page becomes unresponsive. A consumer that pins `mode:"webgl"` or
|
|
51
|
+
* `mode:"capture"` on such a device must still fall to the static ground, so the
|
|
58
52
|
* probe runs BEFORE the `mode !== "auto"` short-circuit when the requested mode
|
|
59
53
|
* would arm WebGL. The single ESCAPE is `options.forceWebGLUnderSoftwareRaster`
|
|
60
54
|
* (default `false` — the guard is the safe default).
|
|
61
55
|
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* GONE: they predate the offscreen-park + the `AV_AURORA_DPR_MAX` sub-2× cap +
|
|
65
|
-
* the demand-gate that make a full-viewport aurora cheap, and `<= 4` is
|
|
66
|
-
* false-positive-prone in 2026 (a capable base-M-series laptop / a throttled VM
|
|
67
|
-
* tab reports 4 logical cores → it got a FROZEN static gradient that reads as
|
|
68
|
-
* "the aurora is broken", USER-DEFECTS §E "renders SLOW"). So `"auto"` arms the
|
|
69
|
-
* GPU on every Chrome-113/Safari-26/Firefox-141 device.
|
|
56
|
+
* `"auto"` arms the GPU unless the software-renderer guard fires. Core-count and
|
|
57
|
+
* save-data heuristics do not select a static substrate.
|
|
70
58
|
*
|
|
71
59
|
* Reduced-motion is handled SOLELY by the substrate's live `matchMedia` freeze
|
|
72
|
-
* (`createCanvasLifecycle` paints
|
|
73
|
-
* un-reduce)
|
|
74
|
-
*
|
|
75
|
-
* The ONLY `"css"` signal that remains is the genuine software-raster GUARD
|
|
76
|
-
* (the universal first leg above) — and even that is subsumed by
|
|
77
|
-
* `BC.W-WEBGPU-EVERYWHERE`'s try-WebGPU-then-rebuild-WebGL2 picker.
|
|
60
|
+
* (`createCanvasLifecycle` paints one static frame then parks and re-arms on
|
|
61
|
+
* un-reduce), not by changing render mode. The only automatic `"css"` signal is
|
|
62
|
+
* the software-raster guard.
|
|
78
63
|
*
|
|
79
|
-
*
|
|
64
|
+
* `isSoftwareWebGLRenderer()` returns `false`
|
|
80
65
|
* on a real GPU (or a null probe — never a false downgrade), so a forced
|
|
81
66
|
* `mode:"webgl"` on hardware passes through exactly as before.
|
|
82
67
|
*
|
|
83
|
-
* SSR
|
|
68
|
+
* SSR, missing-API safe: if `navigator`, `window`, the probes are
|
|
84
69
|
* unavailable we ASSUME a capable device and resolve `"webgl"` (the warm wash
|
|
85
70
|
* still composites either way — the only question is whether it animates).
|
|
86
71
|
*
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
export declare const IMAGE_BLUR_RINGS_WGSL = 3;
|
|
2
|
-
export declare const IMAGE_BLUR_SECTORS_WGSL = 8;
|
|
3
|
-
export declare const AURORA_IMAGE_WGSL = "\nconst MAX_NUCLEI: i32 = 6;\nconst PI: f32 = 3.141592653589793;\nconst BLUR_RINGS: i32 = 3;\nconst BLUR_SECTORS: i32 = 8;\n\n// The image program's OWN uniform struct (packed vec4 lanes \u2014 trivial std140/WGSL\n// alignment). DISTINCT from the palette program's 576-byte struct (a separate program).\nstruct ImageUniforms {\n // scalars0: (uTime, uWarpAmount, uWarpScale, uWarpDrift)\n scalars0: vec4<f32>,\n // scalars1: (uSoftmaxBeta, uNucleiDrift, uCursorStrength, uCursorRadius)\n scalars1: vec4<f32>,\n // scalars2: (uSaturation, uPaperGrain, uAlpha, uVividness)\n scalars2: vec4<f32>,\n // image: (uBlurMin, uBlurMax, uImageAspect, _)\n image: vec4<f32>,\n // cursor: (uCursor.x, uCursor.y, _, _)\n cursor: vec4<f32>,\n // ints: (uNucleiCount, uNoiseOctaves, _, _)\n ints: vec4<i32>,\n // nuc0[i] = (pos.x, pos.y, radius, valueBias); nuc1[i] = (driftRadius, driftPhase, elong, angle)\n nuc0: array<vec4<f32>, 6>,\n nuc1: array<vec4<f32>, 6>,\n};\n\n@group(0) @binding(0) var<uniform> u: ImageUniforms;\n@group(0) @binding(1) var imgTex: texture_2d<f32>;\n@group(0) @binding(2) var imgSampler: sampler;\n\nconst K_NUCLEI: f32 = 14.0;\nconst K_WARP: f32 = 5.0;\n\n// \u2500\u2500 Noise (aurora-local hash21/vnoise/fbm \u2014 the same compact foundation) \u2500\u2500\nfn hash21(p0: vec2<f32>) -> f32 {\n var p = fract(p0 * vec2<f32>(123.34, 456.21));\n p = p + dot(p, p + 45.32);\n return fract(p.x * p.y);\n}\nfn vnoise(p: vec2<f32>) -> f32 {\n let i = floor(p);\n let f = fract(p);\n let uu = f * f * (3.0 - 2.0 * f);\n let a = hash21(i);\n let b = hash21(i + vec2<f32>(1.0, 0.0));\n let c = hash21(i + vec2<f32>(0.0, 1.0));\n let d = hash21(i + vec2<f32>(1.0, 1.0));\n return mix(mix(a, b, uu.x), mix(c, d, uu.x), uu.y);\n}\nconst FBM_ROT: mat2x2<f32> = mat2x2<f32>(0.8, 0.6, -0.6, 0.8);\nfn fbm(p0: vec2<f32>) -> f32 {\n var v = 0.0;\n var a = 0.5;\n var p = p0;\n let octaves = u.ints.y;\n for (var i = 0; i < 5; i = i + 1) {\n if (i >= octaves) { break; }\n v = v + a * vnoise(p);\n p = FBM_ROT * p * 2.02;\n a = a * 0.5;\n }\n return v;\n}\nfn ign(p: vec2<f32>) -> f32 {\n return fract(52.9829189 * fract(dot(p, vec2<f32>(0.06711056, 0.00583715))));\n}\n\n\nfn srgbToLinearCh(c: f32) -> f32 {\n if (c <= 0.04045) { return c / 12.92; }\n return pow((c + 0.055) / 1.055, 2.4);\n}\nfn srgbToLinear(c: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(srgbToLinearCh(c.r), srgbToLinearCh(c.g), srgbToLinearCh(c.b));\n}\n\nfn linearToSrgbCh(c: f32) -> f32 {\n if (c <= 0.0031308) { return c * 12.92; }\n return 1.055 * pow(c, 1.0 / 2.4) - 0.055;\n}\nfn linearToSrgb(c: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(linearToSrgbCh(c.r), linearToSrgbCh(c.g), linearToSrgbCh(c.b));\n}\n\n// value.js LINEAR_SRGB_TO_LMS, row-major \u2192 WGSL columns (= the transpose).\nconst LINEAR_SRGB_TO_LMS: mat3x3<f32> = mat3x3<f32>(\n 0.4122214708, 0.2119034982, 0.0883024619,\n 0.5363325363, 0.6806995451, 0.2817188376,\n 0.0514459929, 0.1073969566, 0.6299787005\n);\n\n// value.js srgbToOKLab's INLINE LMS\u2192OKLab coefficients, row-major \u2192 WGSL columns.\nconst LMS_TO_OKLAB: mat3x3<f32> = mat3x3<f32>(\n 0.2104542553, 1.9779984951, 0.0259040371,\n 0.7936177850, -2.4285922050, 0.7827717662,\n -0.0040720468, 0.4505937099, -0.8086757660\n);\n\n// value.js OKLAB_TO_LMS_COEFF, row-major \u2192 WGSL columns.\nconst OKLAB_TO_LMS: mat3x3<f32> = mat3x3<f32>(\n 1.0, 1.0, 1.0,\n 0.3963377774, -0.1055613458, -0.0894841775,\n 0.2158037573, -0.0638541728, -1.2914855480\n);\n\n// value.js LMS_TO_LINEAR_SRGB, row-major \u2192 WGSL columns.\nconst LMS_TO_LINEAR_SRGB: mat3x3<f32> = mat3x3<f32>(\n 4.0767416621, -1.2684380046, -0.0041960863,\n -3.3077115913, 2.6097574011, -0.7034186147,\n 0.2309699292, -0.3413193965, 1.7076147010\n);\n\nfn cbrt3(v: vec3<f32>) -> vec3<f32> {\n return sign(v) * pow(abs(v), vec3<f32>(1.0 / 3.0));\n}\n\n// Gamma sRGB \u2192 raw OKLab (L, a, b). Mirrors value.js srgbToOKLab.\nfn srgbToOklab(c: vec3<f32>) -> vec3<f32> {\n let lin = srgbToLinear(c);\n let lms = LINEAR_SRGB_TO_LMS * lin;\n return LMS_TO_OKLAB * cbrt3(lms);\n}\n\n// Raw OKLab (L, a, b) \u2192 linear sRGB. Mirrors value.js oklabToLinearSRGB.\nfn oklabToLinearSrgb(lab: vec3<f32>) -> vec3<f32> {\n let lms_ = OKLAB_TO_LMS * lab;\n let lms = lms_ * lms_ * lms_;\n return LMS_TO_LINEAR_SRGB * lms;\n}\n\n// OKLab \u2192 OKLCh: H in RADIANS, folded to [0, 2pi). Mirrors value.js rawOklabToOklch.\nfn oklabToOklch(lab: vec3<f32>) -> vec3<f32> {\n let C = length(lab.yz);\n var H = atan2(lab.z, lab.y);\n if (H < 0.0) { H = H + 2.0 * PI; }\n return vec3<f32>(lab.x, C, H);\n}\n\n// OKLCh (H radians) \u2192 OKLab. Mirrors value.js rawOklchToOklab.\nfn oklchToOklab(lch: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(lch.x, lch.y * cos(lch.z), lch.y * sin(lch.z));\n}\n\nfn linOklab(lin: vec3<f32>) -> vec3<f32> {\n let lms = LINEAR_SRGB_TO_LMS * lin;\n return LMS_TO_OKLAB * cbrt3(lms);\n}\n\n// The Quilez double-warp (fbm) + the cursor swirl \u2014 the drift that moves the blur zone.\nfn domainWarp(p: vec2<f32>, t: f32) -> vec2<f32> {\n let warpAmount = u.scalars0.y;\n let warpScale = u.scalars0.z;\n let warpDrift = u.scalars0.w;\n let cursorStrength = u.scalars1.z;\n let cursorRadius = u.scalars1.w;\n let cursor = u.cursor.xy;\n let q = vec2<f32>(fbm(p * warpScale + vec2<f32>(0.0, 0.0) + t * warpDrift * K_WARP),\n fbm(p * warpScale + vec2<f32>(5.2, 1.3) + t * warpDrift * K_WARP));\n let r = vec2<f32>(fbm(p * warpScale + 4.0 * q + vec2<f32>(1.7, 9.2)),\n fbm(p * warpScale + 4.0 * q + vec2<f32>(8.3, 2.8)));\n var warped = p + warpAmount * r;\n if (cursorStrength > 0.001) {\n let toP = p - cursor;\n let d = length(toP);\n let rr = max(cursorRadius, 0.01);\n let w = exp(-(d * d) / (rr * rr * 0.45));\n let ang = w * cursorStrength * 2.1;\n let ca = cos(ang);\n let sa = sin(ang);\n let rotated = vec2<f32>(ca * toP.x - sa * toP.y, sa * toP.x + ca * toP.y) + cursor;\n warped = mix(warped, rotated + warpAmount * r * 0.7, w * cursorStrength);\n }\n return warped;\n}\n\n// The drifting BLUR ZONE \u2014 the anisotropic-Gaussian nuclei softmax (the SAME field the\n// palette program reads), drift-coupled.\nfn zoneField(p: vec2<f32>, t: f32) -> f32 {\n let nucleiCount = u.ints.x;\n let nucleiDrift = u.scalars1.y;\n let softmaxBeta = u.scalars1.x;\n var accum = 0.0;\n var accumW = 0.0;\n for (var i = 0; i < MAX_NUCLEI; i = i + 1) {\n if (i >= nucleiCount) { break; }\n let n0 = u.nuc0[i]; // pos.x, pos.y, radius, valueBias\n let n1 = u.nuc1[i]; // driftRadius, driftPhase, elong, angle\n let posI = n0.xy + n1.x * vec2<f32>(\n cos(t * nucleiDrift * K_NUCLEI + n1.y),\n sin(t * nucleiDrift * K_NUCLEI + n1.y * 1.13));\n let diff = p - posI;\n let ca = cos(n1.w);\n let sa = sin(n1.w);\n let local = vec2<f32>(ca * diff.x + sa * diff.y, -sa * diff.x + ca * diff.y);\n let along = local.x / max(n1.z, 0.01);\n let d2 = along * along + local.y * local.y;\n let rad = max(n0.z, 0.01);\n let w = exp(-softmaxBeta * d2 / (rad * rad));\n accum = accum + w * (0.5 + 0.5 * n0.w);\n accumW = accumW + w;\n }\n return clamp(accum / max(accumW, 1e-4), 0.0, 1.0);\n}\n\nfn coverUv(uv: vec2<f32>) -> vec2<f32> {\n let aspect = max(u.image.z, 0.0001);\n var c = uv - vec2<f32>(0.5);\n c.x = c.x * aspect;\n let s = 1.0 / max(aspect, 1.0);\n return c * s + vec2<f32>(0.5);\n}\n\n// The bounded 24-tap zone blur \u2014 a FIXED 3-ring \u00D7 8-sector stratified kernel, radius\n// per-fragment, sampled in LINEAR light. textureSampleLevel (explicit LOD 0) \u2014 WGSL has\n// no implicit derivative in a varying-radius loop.\nfn zoneBlur(uv: vec2<f32>, radius: f32) -> vec3<f32> {\n let aspect = max(u.image.z, 0.0001);\n var sum = srgbToLinear(textureSampleLevel(imgTex, imgSampler, coverUv(uv), 0.0).rgb);\n var wsum = 1.0;\n for (var ring = 1; ring <= BLUR_RINGS; ring = ring + 1) {\n let rr = radius * (f32(ring) / f32(BLUR_RINGS));\n for (var s = 0; s < BLUR_SECTORS; s = s + 1) {\n let a = (f32(s) + 0.5 * f32(ring)) / f32(BLUR_SECTORS) * 2.0 * PI;\n let off = vec2<f32>(cos(a) / aspect, sin(a)) * rr;\n sum = sum + srgbToLinear(textureSampleLevel(imgTex, imgSampler, coverUv(uv + off), 0.0).rgb);\n wsum = wsum + 1.0;\n }\n }\n return sum / wsum;\n}\n\nconst VIVID_TARGET: f32 = 0.115;\nconst VIVID_EPS: f32 = 0.012;\nconst VIVID_WARM_ANCHOR: vec2<f32> = vec2<f32>(0.34202, 0.93969);\nfn vividnessFloor(c: vec3<f32>, vividness: f32) -> vec3<f32> {\n if (vividness <= 0.0001) { return c; }\n var lab = linOklab(c);\n let C = length(lab.yz);\n let modeLift = mix(1.18, 1.0, clamp(lab.x * 1.4, 0.0, 1.0));\n let Cmin = vividness * VIVID_TARGET * modeLift;\n var hueDir = VIVID_WARM_ANCHOR;\n if (C > VIVID_EPS) { hueDir = lab.yz / C; }\n let yz = hueDir * max(C, Cmin);\n lab = vec3<f32>(lab.x, yz.x, yz.y);\n return max(oklabToLinearSrgb(lab), vec3<f32>(0.0));\n}\n\nfn saturate3(c: vec3<f32>, amt: f32) -> vec3<f32> {\n var lch = oklabToOklch(linOklab(c));\n lch.y = max(lch.y * amt, 0.0);\n return max(oklabToLinearSrgb(oklchToOklab(lch)), vec3<f32>(0.0));\n}\n\nfn aces(color0: vec3<f32>) -> vec3<f32> {\n let startCompression = 0.8 - 0.04;\n let desaturation = 0.15;\n var color = color0;\n let x = min(color.r, min(color.g, color.b));\n var offset = 0.04;\n if (x < 0.08) { offset = x - 6.25 * x * x; }\n color = color - offset;\n let peak = max(color.r, max(color.g, color.b));\n if (peak < startCompression) { return clamp(color, vec3<f32>(0.0), vec3<f32>(1.0)); }\n let d = 1.0 - startCompression;\n let newPeak = 1.0 - d * d / (peak + d - startCompression);\n color = color * (newPeak / peak);\n let g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0);\n return clamp(mix(color, newPeak * vec3<f32>(1.0), g), vec3<f32>(0.0), vec3<f32>(1.0));\n}\n\nstruct VSOut {\n @builtin(position) pos: vec4<f32>,\n @location(0) uv: vec2<f32>,\n};\n\n@vertex\nfn vs_main(@builtin(vertex_index) vi: u32) -> VSOut {\n var p = vec2<f32>(-1.0, -1.0);\n if (vi == 1u) { p = vec2<f32>(3.0, -1.0); }\n else if (vi == 2u) { p = vec2<f32>(-1.0, 3.0); }\n var out: VSOut;\n out.pos = vec4<f32>(p, 0.0, 1.0);\n out.uv = p * 0.5 + 0.5;\n return out;\n}\n\n@fragment\nfn fs_main(in: VSOut) -> @location(0) vec4<f32> {\n let t = u.scalars0.x;\n let saturation = u.scalars2.x;\n let paperGrain = u.scalars2.y;\n let alpha = u.scalars2.z;\n let vividness = u.scalars2.w;\n let blurMin = u.image.x;\n let blurMax = u.image.y;\n\n let uv = in.uv;\n let p_warp = domainWarp(uv, t);\n let zone = zoneField(p_warp, t);\n\n let radius = mix(blurMin, blurMax, zone);\n var col = zoneBlur(uv, radius);\n\n col = saturate3(col, saturation);\n col = vividnessFloor(col, vividness);\n\n col = aces(col);\n let fragCoord = in.pos.xy;\n let grain = hash21(fragCoord + t * 17.0);\n col = col + (grain - 0.5) * paperGrain;\n col = clamp(col * 0.985 + 0.008, vec3<f32>(0.0), vec3<f32>(1.0));\n\n col = linearToSrgb(col);\n col = col + (1.0 / 255.0) * (ign(fragCoord) - 0.5);\n\n return vec4<f32>(col * alpha, alpha);\n}\n";
|
|
1
|
+
export declare const AURORA_IMAGE_WGSL = "\nconst MAX_NUCLEI: i32 = 8;\nconst PI: f32 = 3.141592653589793;\nconst BLUR_RINGS: i32 = 3;\nconst BLUR_SECTORS: i32 = 8;\n\n// The image program's OWN uniform struct (packed vec4 lanes \u2014 trivial std140/WGSL\n// alignment). DISTINCT from the palette program's 672-byte struct (a separate program).\nstruct ImageUniforms {\n // scalars0: (uTime, uWarpAmount, uWarpScale, uWarpDrift)\n scalars0: vec4<f32>,\n // scalars1: (uSoftmaxBeta, uNucleiDrift, uCursorStrength, uCursorRadius)\n scalars1: vec4<f32>,\n // scalars2: (uSaturation, uPaperGrain, uAlpha, uVividness)\n scalars2: vec4<f32>,\n // image: (uBlurMin, uBlurMax, uImageAspect, _)\n image: vec4<f32>,\n // cursor: (uCursor.x, uCursor.y, _, _)\n cursor: vec4<f32>,\n // ints: (uNucleiCount, uNoiseOctaves, _, _)\n ints: vec4<i32>,\n // nuc0[i] = (pos.x, pos.y, radius, valueBias); nuc1[i] = (driftRadius, driftPhase, elong, angle)\n nuc0: array<vec4<f32>, 8>,\n nuc1: array<vec4<f32>, 8>,\n};\n\n@group(0) @binding(0) var<uniform> u: ImageUniforms;\n@group(0) @binding(1) var imgTex: texture_2d<f32>;\n@group(0) @binding(2) var imgSampler: sampler;\n\nconst K_NUCLEI: f32 = 14.0;\nconst K_WARP: f32 = 5.0;\n\n// \u2500\u2500 Noise (aurora-local hash21/vnoise/fbm \u2014 the same compact foundation) \u2500\u2500\nfn hash21(p0: vec2<f32>) -> f32 {\n var p = fract(p0 * vec2<f32>(123.34, 456.21));\n p = p + dot(p, p + 45.32);\n return fract(p.x * p.y);\n}\nfn vnoise(p: vec2<f32>) -> f32 {\n let i = floor(p);\n let f = fract(p);\n let uu = f * f * (3.0 - 2.0 * f);\n let a = hash21(i);\n let b = hash21(i + vec2<f32>(1.0, 0.0));\n let c = hash21(i + vec2<f32>(0.0, 1.0));\n let d = hash21(i + vec2<f32>(1.0, 1.0));\n return mix(mix(a, b, uu.x), mix(c, d, uu.x), uu.y);\n}\nconst FBM_ROT: mat2x2<f32> = mat2x2<f32>(0.8, 0.6, -0.6, 0.8);\nfn fbm(p0: vec2<f32>) -> f32 {\n var v = 0.0;\n var a = 0.5;\n var p = p0;\n let octaves = u.ints.y;\n for (var i = 0; i < 5; i = i + 1) {\n if (i >= octaves) { break; }\n v = v + a * vnoise(p);\n p = FBM_ROT * p * 2.02;\n a = a * 0.5;\n }\n return v;\n}\nfn ign(p: vec2<f32>) -> f32 {\n return fract(52.9829189 * fract(dot(p, vec2<f32>(0.06711056, 0.00583715))));\n}\n\n\nfn srgbToLinearCh(c: f32) -> f32 {\n if (c <= 0.04045) { return c / 12.92; }\n return pow((c + 0.055) / 1.055, 2.4);\n}\nfn srgbToLinear(c: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(srgbToLinearCh(c.r), srgbToLinearCh(c.g), srgbToLinearCh(c.b));\n}\n\nfn linearToSrgbCh(c: f32) -> f32 {\n if (c <= 0.0031308) { return c * 12.92; }\n return 1.055 * pow(c, 1.0 / 2.4) - 0.055;\n}\nfn linearToSrgb(c: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(linearToSrgbCh(c.r), linearToSrgbCh(c.g), linearToSrgbCh(c.b));\n}\n\n// value.js LINEAR_SRGB_TO_LMS, row-major \u2192 WGSL columns (= the transpose).\nconst LINEAR_SRGB_TO_LMS: mat3x3<f32> = mat3x3<f32>(\n 0.4122214708, 0.2119034982, 0.0883024619,\n 0.5363325363, 0.6806995451, 0.2817188376,\n 0.0514459929, 0.1073969566, 0.6299787005\n);\n\n// value.js srgbToOKLab's INLINE LMS\u2192OKLab coefficients, row-major \u2192 WGSL columns.\nconst LMS_TO_OKLAB: mat3x3<f32> = mat3x3<f32>(\n 0.2104542553, 1.9779984951, 0.0259040371,\n 0.7936177850, -2.4285922050, 0.7827717662,\n -0.0040720468, 0.4505937099, -0.8086757660\n);\n\n// value.js OKLAB_TO_LMS_COEFF, row-major \u2192 WGSL columns.\nconst OKLAB_TO_LMS: mat3x3<f32> = mat3x3<f32>(\n 1.0, 1.0, 1.0,\n 0.3963377774, -0.1055613458, -0.0894841775,\n 0.2158037573, -0.0638541728, -1.2914855480\n);\n\n// value.js LMS_TO_LINEAR_SRGB, row-major \u2192 WGSL columns.\nconst LMS_TO_LINEAR_SRGB: mat3x3<f32> = mat3x3<f32>(\n 4.0767416621, -1.2684380046, -0.0041960863,\n -3.3077115913, 2.6097574011, -0.7034186147,\n 0.2309699292, -0.3413193965, 1.7076147010\n);\n\nfn cbrt3(v: vec3<f32>) -> vec3<f32> {\n return sign(v) * pow(abs(v), vec3<f32>(1.0 / 3.0));\n}\n\n// Gamma sRGB \u2192 raw OKLab (L, a, b). Mirrors value.js srgbToOKLab.\nfn srgbToOklab(c: vec3<f32>) -> vec3<f32> {\n let lin = srgbToLinear(c);\n let lms = LINEAR_SRGB_TO_LMS * lin;\n return LMS_TO_OKLAB * cbrt3(lms);\n}\n\n// Raw OKLab (L, a, b) \u2192 linear sRGB. Mirrors value.js oklabToLinearSRGB.\nfn oklabToLinearSrgb(lab: vec3<f32>) -> vec3<f32> {\n let lms_ = OKLAB_TO_LMS * lab;\n let lms = lms_ * lms_ * lms_;\n return LMS_TO_LINEAR_SRGB * lms;\n}\n\n// OKLab \u2192 OKLCh: H in RADIANS, folded to [0, 2pi). Mirrors value.js rawOklabToOklch.\nfn oklabToOklch(lab: vec3<f32>) -> vec3<f32> {\n let C = length(lab.yz);\n var H = atan2(lab.z, lab.y);\n if (H < 0.0) { H = H + 2.0 * PI; }\n return vec3<f32>(lab.x, C, H);\n}\n\n// OKLCh (H radians) \u2192 OKLab. Mirrors value.js rawOklchToOklab.\nfn oklchToOklab(lch: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(lch.x, lch.y * cos(lch.z), lch.y * sin(lch.z));\n}\n\nfn linOklab(lin: vec3<f32>) -> vec3<f32> {\n let lms = LINEAR_SRGB_TO_LMS * lin;\n return LMS_TO_OKLAB * cbrt3(lms);\n}\n\n// The Quilez double-warp (fbm) + the cursor swirl \u2014 the drift that moves the blur zone.\nfn domainWarp(p: vec2<f32>, t: f32) -> vec2<f32> {\n let warpAmount = u.scalars0.y;\n let warpScale = u.scalars0.z;\n let warpDrift = u.scalars0.w;\n let cursorStrength = u.scalars1.z;\n let cursorRadius = u.scalars1.w;\n let cursor = u.cursor.xy;\n let q = vec2<f32>(fbm(p * warpScale + vec2<f32>(0.0, 0.0) + t * warpDrift * K_WARP),\n fbm(p * warpScale + vec2<f32>(5.2, 1.3) + t * warpDrift * K_WARP));\n let r = vec2<f32>(fbm(p * warpScale + 4.0 * q + vec2<f32>(1.7, 9.2)),\n fbm(p * warpScale + 4.0 * q + vec2<f32>(8.3, 2.8)));\n var warped = p + warpAmount * r;\n if (cursorStrength > 0.001) {\n let toP = p - cursor;\n let d = length(toP);\n let rr = max(cursorRadius, 0.01);\n let w = exp(-(d * d) / (rr * rr * 0.45));\n let ang = w * cursorStrength * 2.1;\n let ca = cos(ang);\n let sa = sin(ang);\n let rotated = vec2<f32>(ca * toP.x - sa * toP.y, sa * toP.x + ca * toP.y) + cursor;\n warped = mix(warped, rotated + warpAmount * r * 0.7, w * cursorStrength);\n }\n return warped;\n}\n\n// The drifting BLUR ZONE \u2014 the anisotropic-Gaussian nuclei softmax (the SAME field the\n// palette program reads), drift-coupled.\nfn zoneField(p: vec2<f32>, t: f32) -> f32 {\n let nucleiCount = u.ints.x;\n let nucleiDrift = u.scalars1.y;\n let softmaxBeta = u.scalars1.x;\n var accum = 0.0;\n var accumW = 0.0;\n for (var i = 0; i < MAX_NUCLEI; i = i + 1) {\n if (i >= nucleiCount) { break; }\n let n0 = u.nuc0[i]; // pos.x, pos.y, radius, valueBias\n let n1 = u.nuc1[i]; // driftRadius, driftPhase, elong, angle\n let posI = n0.xy + n1.x * vec2<f32>(\n cos(t * nucleiDrift * K_NUCLEI + n1.y),\n sin(t * nucleiDrift * K_NUCLEI + n1.y * 1.13));\n let diff = p - posI;\n let ca = cos(n1.w);\n let sa = sin(n1.w);\n let local = vec2<f32>(ca * diff.x + sa * diff.y, -sa * diff.x + ca * diff.y);\n let along = local.x / max(n1.z, 0.01);\n let d2 = along * along + local.y * local.y;\n let rad = max(n0.z, 0.01);\n let w = exp(-softmaxBeta * d2 / (rad * rad));\n accum = accum + w * (0.5 + 0.5 * n0.w);\n accumW = accumW + w;\n }\n return clamp(accum / max(accumW, 1e-4), 0.0, 1.0);\n}\n\nfn coverUv(uv: vec2<f32>) -> vec2<f32> {\n let aspect = max(u.image.z, 0.0001);\n var c = uv - vec2<f32>(0.5);\n c.x = c.x * aspect;\n let s = 1.0 / max(aspect, 1.0);\n return c * s + vec2<f32>(0.5);\n}\n\n// The bounded 24-tap zone blur \u2014 a FIXED 3-ring \u00D7 8-sector stratified kernel, radius\n// per-fragment, sampled in LINEAR light. textureSampleLevel (explicit LOD 0) \u2014 WGSL has\n// no implicit derivative in a varying-radius loop.\nfn zoneBlur(uv: vec2<f32>, radius: f32) -> vec3<f32> {\n let aspect = max(u.image.z, 0.0001);\n var sum = srgbToLinear(textureSampleLevel(imgTex, imgSampler, coverUv(uv), 0.0).rgb);\n var wsum = 1.0;\n for (var ring = 1; ring <= BLUR_RINGS; ring = ring + 1) {\n let rr = radius * (f32(ring) / f32(BLUR_RINGS));\n for (var s = 0; s < BLUR_SECTORS; s = s + 1) {\n let a = (f32(s) + 0.5 * f32(ring)) / f32(BLUR_SECTORS) * 2.0 * PI;\n let off = vec2<f32>(cos(a) / aspect, sin(a)) * rr;\n sum = sum + srgbToLinear(textureSampleLevel(imgTex, imgSampler, coverUv(uv + off), 0.0).rgb);\n wsum = wsum + 1.0;\n }\n }\n return sum / wsum;\n}\n\nconst VIVID_TARGET: f32 = 0.115;\nconst VIVID_EPS: f32 = 0.012;\nconst VIVID_WARM_ANCHOR: vec2<f32> = vec2<f32>(0.34202, 0.93969);\nfn vividnessFloor(c: vec3<f32>, vividness: f32) -> vec3<f32> {\n if (vividness <= 0.0001) { return c; }\n var lab = linOklab(c);\n let C = length(lab.yz);\n let modeLift = mix(1.18, 1.0, clamp(lab.x * 1.4, 0.0, 1.0));\n let Cmin = vividness * VIVID_TARGET * modeLift;\n var hueDir = VIVID_WARM_ANCHOR;\n if (C > VIVID_EPS) { hueDir = lab.yz / C; }\n let yz = hueDir * max(C, Cmin);\n lab = vec3<f32>(lab.x, yz.x, yz.y);\n return max(oklabToLinearSrgb(lab), vec3<f32>(0.0));\n}\n\nfn saturate3(c: vec3<f32>, amt: f32) -> vec3<f32> {\n var lch = oklabToOklch(linOklab(c));\n lch.y = max(lch.y * amt, 0.0);\n return max(oklabToLinearSrgb(oklchToOklab(lch)), vec3<f32>(0.0));\n}\n\nfn aces(color0: vec3<f32>) -> vec3<f32> {\n let startCompression = 0.8 - 0.04;\n let desaturation = 0.15;\n var color = color0;\n let x = min(color.r, min(color.g, color.b));\n var offset = 0.04;\n if (x < 0.08) { offset = x - 6.25 * x * x; }\n color = color - offset;\n let peak = max(color.r, max(color.g, color.b));\n if (peak < startCompression) { return clamp(color, vec3<f32>(0.0), vec3<f32>(1.0)); }\n let d = 1.0 - startCompression;\n let newPeak = 1.0 - d * d / (peak + d - startCompression);\n color = color * (newPeak / peak);\n let g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0);\n return clamp(mix(color, newPeak * vec3<f32>(1.0), g), vec3<f32>(0.0), vec3<f32>(1.0));\n}\n\nstruct VSOut {\n @builtin(position) pos: vec4<f32>,\n @location(0) uv: vec2<f32>,\n};\n\n@vertex\nfn vs_main(@builtin(vertex_index) vi: u32) -> VSOut {\n var p = vec2<f32>(-1.0, -1.0);\n if (vi == 1u) { p = vec2<f32>(3.0, -1.0); }\n else if (vi == 2u) { p = vec2<f32>(-1.0, 3.0); }\n var out: VSOut;\n out.pos = vec4<f32>(p, 0.0, 1.0);\n out.uv = p * 0.5 + 0.5;\n return out;\n}\n\n@fragment\nfn fs_main(in: VSOut) -> @location(0) vec4<f32> {\n let t = u.scalars0.x;\n let saturation = u.scalars2.x;\n let paperGrain = u.scalars2.y;\n let alpha = u.scalars2.z;\n let vividness = u.scalars2.w;\n let blurMin = u.image.x;\n let blurMax = u.image.y;\n\n let uv = in.uv;\n let p_warp = domainWarp(uv, t);\n let zone = zoneField(p_warp, t);\n\n let radius = mix(blurMin, blurMax, zone);\n var col = zoneBlur(uv, radius);\n\n let cursorDelta = uv - u.cursor.xy;\n let cursorRadius = max(u.scalars1.w, 0.01);\n let cursorLean = exp(-dot(cursorDelta, cursorDelta) / (cursorRadius * cursorRadius * 0.5));\n col = col * (1.0 + 0.12 * cursorLean * u.scalars1.z);\n\n col = saturate3(col, saturation);\n col = vividnessFloor(col, vividness);\n\n col = aces(col);\n let fragCoord = in.pos.xy;\n let grain = hash21(fragCoord + t * 17.0);\n col = col + (grain - 0.5) * paperGrain;\n col = clamp(col * 0.985 + 0.008, vec3<f32>(0.0), vec3<f32>(1.0));\n\n col = linearToSrgb(col);\n col = col + (1.0 / 255.0) * (ign(fragCoord) - 0.5);\n\n return vec4<f32>(col * alpha, alpha);\n}\n";
|