@mkbabb/glass-ui 7.0.0 → 9.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 +4 -3
- package/dist/DialogContent-4hzLiaCQ.js +152 -0
- package/dist/DotRing-Blh4Mc3Q.js +27 -0
- package/dist/{DropdownMenuTrigger-ClIq8RJE.js → DropdownMenuTrigger-8UZsBtZ8.js} +5 -5
- package/dist/Surface-i1tWC-Ga.js +48 -0
- package/dist/aurora.d.ts +1 -1
- package/dist/aurora.js +321 -289
- package/dist/axes.d.ts +1 -1
- package/dist/axes.js +1 -22
- 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.d.ts +1 -1
- package/dist/blob.js +43 -43
- package/dist/button-yvGPb0Bx.js +110 -0
- package/dist/button.d.ts +1 -1
- package/dist/button.js +1 -1
- package/dist/{card-Bk96VI2R.js → card-3HFFpC7_.js} +51 -95
- package/dist/card.d.ts +1 -1
- package/dist/card.js +2 -2
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +187 -175
- package/dist/checkbox-B1qn65se.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 +129 -2
- package/dist/{class-names-Cpy5eaBk.js → class-names-q-UGOkHH.js} +15 -1
- package/dist/{collapsible-BAP95XTt.js → collapsible-B7O6m-Ch.js} +2 -2
- package/dist/collapsible.d.ts +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color.d.ts +1 -1
- package/dist/color.glsl-DTJhdekG.js +34 -0
- package/dist/color.js +18 -18
- package/dist/color.wgsl-BTszLY39.js +398 -0
- package/dist/command-tEzAaVY_.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 +4 -1
- package/dist/components/_shared/class-names.d.ts +1 -1
- package/dist/components/_shared/control.d.ts +10 -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/{fieldControl.d.ts → field/control.d.ts} +1 -1
- package/dist/components/_shared/focus.d.ts +11 -0
- package/dist/components/_shared/index.d.ts +1 -2
- package/dist/components/_shared/interaction.d.ts +1 -1
- 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/selection.d.ts +39 -0
- package/dist/components/_shared/surface/resolve.d.ts +17 -0
- package/dist/components/_shared/useMotionAxis.d.ts +1 -7
- package/dist/components/accordion/Accordion.vue.d.ts +1 -1
- package/dist/components/accordion/index.d.ts +4 -4
- package/dist/components/alert/Alert.vue.d.ts +1 -1
- 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 +9 -9
- package/dist/components/aurora/Aurora.vue.d.ts +5 -4
- package/dist/components/aurora/composables/atoms-fields.d.ts +1 -1
- package/dist/components/aurora/composables/atoms.d.ts +3 -3
- package/dist/components/aurora/composables/auroraFallbackGround.d.ts +1 -1
- package/dist/components/aurora/composables/auroraImageSource.d.ts +2 -2
- package/dist/components/aurora/composables/color.d.ts +3 -4
- package/dist/components/aurora/composables/frameLoop.d.ts +9 -8
- package/dist/components/aurora/composables/glSetup.d.ts +5 -10
- package/dist/components/aurora/composables/runtime.d.ts +28 -3
- package/dist/{composables/glass → components/aurora/composables}/textureUpload.d.ts +0 -13
- package/dist/components/aurora/composables/uniformBridge.d.ts +3 -20
- package/dist/components/aurora/composables/uniformBridgeWGPU.d.ts +2 -2
- package/dist/components/aurora/composables/uniformBridgeWGPUImage.d.ts +2 -2
- package/dist/components/aurora/composables/useAurora.d.ts +32 -4
- package/dist/components/aurora/composables/useCursorInteraction.d.ts +2 -2
- package/dist/components/aurora/composables/wgpuSetup.d.ts +5 -5
- package/dist/components/aurora/constants/budget.d.ts +0 -36
- package/dist/components/aurora/constants/presets.d.ts +46 -7
- package/dist/components/aurora/constants/shaders/aurora-image.frag.d.ts +0 -2
- package/dist/components/aurora/constants/shaders/aurora-image.wgsl.d.ts +0 -2
- package/dist/components/aurora/index.d.ts +15 -14
- package/dist/components/avatar/AvatarImage.vue.d.ts +1 -6
- package/dist/components/avatar/index.d.ts +3 -3
- package/dist/components/badge/Badge.vue.d.ts +2 -9
- package/dist/components/badge/index.d.ts +12 -11
- package/dist/components/blob/Blob.vue.d.ts +4 -4
- package/dist/components/blob/composables/blobSimulation.d.ts +5 -5
- package/dist/components/blob/composables/buildMetaballProgram.d.ts +1 -1
- package/dist/components/blob/composables/resolveBlobSurface.d.ts +1 -1
- package/dist/components/blob/composables/satelliteKinematics.d.ts +1 -1
- package/dist/components/blob/composables/uniformBridgeWGPU.d.ts +4 -4
- package/dist/components/blob/composables/uploadBlobUniforms.d.ts +5 -5
- package/dist/components/blob/composables/useBlobMood.d.ts +1 -1
- package/dist/components/blob/composables/useBlobPointer.d.ts +0 -3
- package/dist/components/blob/composables/useBlobSatellites.d.ts +1 -1
- package/dist/components/blob/composables/useMetaballRenderer.d.ts +6 -6
- package/dist/components/blob/composables/wgpuSetup.d.ts +5 -5
- 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 +1 -1
- package/dist/components/button/Button.vue.d.ts +15 -9
- package/dist/components/button/index.d.ts +1 -1
- package/dist/components/button/styles.css +1 -1
- package/dist/components/card/Card.vue.d.ts +20 -23
- package/dist/components/card/CardHeader.vue.d.ts +8 -1
- package/dist/components/card/index.d.ts +6 -7
- 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 -6
- 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 +6 -6
- package/dist/components/checkbox/index.d.ts +1 -1
- package/dist/components/chip/Chip.vue.d.ts +2 -2
- package/dist/components/chip/accent-tone.css +1 -0
- package/dist/components/chip/chipVariants.d.ts +1 -1
- package/dist/components/chip/index.d.ts +3 -3
- package/dist/components/chip/types.d.ts +2 -2
- package/dist/components/collapsible/CollapsibleTrigger.vue.d.ts +1 -1
- package/dist/components/collapsible/index.d.ts +3 -3
- package/dist/components/command/Command.vue.d.ts +5 -3
- package/dist/components/command/CommandDialog.vue.d.ts +9 -5
- package/dist/components/command/CommandEmpty.vue.d.ts +1 -1
- package/dist/components/command/CommandGroup.vue.d.ts +1 -1
- package/dist/components/command/CommandInput.vue.d.ts +1 -1
- package/dist/components/command/CommandItem.vue.d.ts +3 -3
- package/dist/components/command/CommandList.vue.d.ts +8 -8
- package/dist/components/command/CommandSeparator.vue.d.ts +1 -1
- package/dist/components/command/index.d.ts +11 -10
- package/dist/components/command/types.d.ts +8 -3
- package/dist/components/configurator/Configurator.vue.d.ts +26 -3
- package/dist/components/configurator/ConfiguratorRow.vue.d.ts +5 -3
- package/dist/components/configurator/index.d.ts +6 -6
- 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 +3 -5
- package/dist/components/constellation/composables/createConstellationField.d.ts +1 -1
- package/dist/components/constellation/composables/useConstellation.d.ts +2 -2
- package/dist/components/constellation/constants.d.ts +1 -1
- package/dist/components/constellation/constellationField.d.ts +3 -4
- package/dist/components/constellation/constellationInteraction.d.ts +1 -5
- package/dist/components/constellation/constellationRender.d.ts +1 -3
- package/dist/components/constellation/constellationTypes.d.ts +0 -11
- package/dist/components/constellation/constellationWell.d.ts +1 -1
- package/dist/components/constellation/index.d.ts +8 -6
- package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -1
- package/dist/components/dark-mode-toggle/index.d.ts +2 -2
- package/dist/components/data-table/DataTable.vue.d.ts +1 -1
- package/dist/components/data-table/composables/useDataTableResponsive.d.ts +1 -1
- package/dist/components/data-table/index.d.ts +2 -2
- package/dist/components/{number-field/NumberFieldContent.vue.d.ts → deck/DeckSlide.vue.d.ts} +12 -1
- 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 -6
- 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 +13 -0
- package/dist/components/dialog/DialogContent.vue.d.ts +23 -27
- package/dist/components/dialog/DialogFooter.vue.d.ts +2 -2
- package/dist/components/dialog/DialogHeader.vue.d.ts +2 -2
- package/dist/components/dialog/ModalOverlay.vue.d.ts +44 -23
- 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 +8 -4
- package/dist/components/dock/DockCrossfade.vue.d.ts +3 -3
- package/dist/components/dock/DockLayer.vue.d.ts +1 -1
- package/dist/components/dock/DockLayerGroup.vue.d.ts +13 -13
- package/dist/components/dock/DockSeparator.vue.d.ts +24 -20
- package/dist/components/dock/GlassDock.vue.d.ts +5 -4
- package/dist/components/dock/composables/dockContext.d.ts +28 -11
- package/dist/components/dock/composables/dockCrossfadeContext.d.ts +5 -5
- package/dist/components/dock/composables/dockMorphMeasure.d.ts +0 -1
- 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/useDockHold.d.ts +21 -6
- package/dist/components/dock/composables/useDockRun.d.ts +20 -0
- package/dist/components/dock/composables/useDockSearch.d.ts +5 -5
- package/dist/components/dock/composables/useDockShellProps.d.ts +21 -128
- package/dist/components/dock/composables/useDockState.d.ts +18 -12
- package/dist/components/dock/constants.d.ts +32 -3
- package/dist/components/dock/index.d.ts +15 -15
- 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/run.css +1 -0
- 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 +15 -13
- package/dist/components/easing/index.d.ts +5 -3
- package/dist/components/easing/{composables/useEasingPicker.d.ts → usePicker.d.ts} +27 -23
- package/dist/components/expandable-container/ExpandableContainer.vue.d.ts +1 -1
- package/dist/components/expandable-container/index.d.ts +1 -1
- package/dist/components/fading-scroll/constants.d.ts +2 -9
- package/dist/components/fading-scroll/index.d.ts +2 -2
- package/dist/components/fourier-field/FourierField.vue.d.ts +31 -30
- package/dist/components/fourier-field/clock.d.ts +35 -0
- package/dist/components/fourier-field/constants.d.ts +79 -104
- package/dist/components/fourier-field/index.d.ts +4 -31
- package/dist/components/fourier-field/math.d.ts +69 -77
- package/dist/components/fourier-field/renderer/mint.d.ts +50 -0
- package/dist/components/fourier-field/renderer/uniforms.d.ts +84 -0
- package/dist/components/fourier-field/renderer/wgpu.d.ts +28 -0
- package/dist/components/fourier-field/shaders/compute.wgsl.d.ts +1 -0
- package/dist/components/fourier-field/shaders/render.wgsl.d.ts +1 -0
- package/dist/components/fourier-field/useFourierField.d.ts +49 -0
- package/dist/components/handmark/HandMark.vue.d.ts +18 -14
- package/dist/components/handmark/index.d.ts +5 -22
- package/dist/components/handmark/stroke.d.ts +92 -0
- package/dist/components/index.d.ts +30 -32
- 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/useInfiniteScroll.d.ts +1 -1
- package/dist/components/infinite-scroll/index.d.ts +2 -2
- package/dist/components/input/Input.vue.d.ts +10 -5
- package/dist/components/input/index.d.ts +3 -2
- package/dist/components/input/types.d.ts +49 -9
- package/dist/components/label/index.d.ts +1 -1
- package/dist/components/labeled-field/LabeledField.vue.d.ts +4 -4
- package/dist/components/labeled-field/LabeledInput.vue.d.ts +1 -1
- package/dist/components/labeled-field/LabeledSlider.vue.d.ts +1 -1
- package/dist/components/labeled-field/LabeledSwitch.vue.d.ts +1 -1
- package/dist/components/labeled-field/index.d.ts +5 -6
- package/dist/components/labeled-field/types.d.ts +5 -14
- package/dist/components/{dropdown-menu → menu}/DropdownMenu.vue.d.ts +2 -2
- package/dist/components/{dropdown-menu → menu}/DropdownMenuCheckboxItem.vue.d.ts +2 -2
- package/dist/components/{dropdown-menu → menu}/DropdownMenuContent.vue.d.ts +4 -7
- package/dist/components/{dropdown-menu → menu}/DropdownMenuRadioGroup.vue.d.ts +1 -1
- package/dist/components/{dropdown-menu → menu}/DropdownMenuRadioItem.vue.d.ts +1 -1
- package/dist/components/{dropdown-menu → menu}/DropdownMenuSubContent.vue.d.ts +7 -7
- package/dist/components/{dropdown-menu → menu}/DropdownMenuTrigger.vue.d.ts +1 -1
- package/dist/components/{dropdown-menu → menu}/index.d.ts +15 -15
- package/dist/components/metric/Metric.vue.d.ts +7 -5
- package/dist/components/metric/MetricRow.vue.d.ts +4 -12
- package/dist/components/metric/MetricStack.vue.d.ts +2 -2
- package/dist/components/metric/coalesce-metric.d.ts +30 -2
- package/dist/components/metric/index.d.ts +6 -5
- package/dist/components/metric/styles.css +1 -1
- package/dist/components/metric/types.d.ts +25 -13
- 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 +7 -2
- package/dist/components/number-field/NumberFieldStep.vue.d.ts +31 -0
- package/dist/components/number-field/context.d.ts +4 -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 -2
- package/dist/components/pager-dots/worm.d.ts +42 -0
- package/dist/components/popover/Popover.vue.d.ts +23 -1
- package/dist/components/popover/PopoverContent.vue.d.ts +17 -14
- package/dist/components/popover/PopoverTrigger.vue.d.ts +1 -1
- package/dist/components/popover/index.d.ts +3 -3
- package/dist/components/popover/popoverContext.d.ts +10 -0
- package/dist/components/progress/Progress.vue.d.ts +5 -5
- package/dist/components/progress/index.d.ts +2 -2
- package/dist/components/progress/types.d.ts +16 -6
- package/dist/components/radio-group/RadioGroup.vue.d.ts +5 -7
- package/dist/components/radio-group/RadioGroupItem.vue.d.ts +3 -2
- package/dist/components/radio-group/index.d.ts +4 -4
- 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/select/Select.vue.d.ts +2 -2
- package/dist/components/select/SelectContent.vue.d.ts +4 -9
- package/dist/components/select/SelectItem.vue.d.ts +1 -1
- package/dist/components/select/SelectScrollButton.vue.d.ts +18 -0
- package/dist/components/select/SelectTrigger.vue.d.ts +1 -8
- package/dist/components/select/SelectValue.vue.d.ts +4 -6
- package/dist/components/select/index.d.ts +18 -16
- package/dist/components/separator/Separator.vue.d.ts +1 -1
- 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/index.d.ts +1 -1
- package/dist/components/slider/Slider.vue.d.ts +2 -3
- package/dist/components/slider/index.d.ts +2 -2
- package/dist/components/slider/styles.css +1 -0
- package/dist/components/slider/types.d.ts +13 -4
- package/dist/components/sortable-list/SortableItem.vue.d.ts +1 -1
- package/dist/components/sortable-list/SortableList.vue.d.ts +1 -2
- 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 +10 -3
- package/dist/components/status-dot/index.d.ts +3 -2
- package/dist/components/status-dot/states.d.ts +4 -0
- package/dist/components/surface/Surface.vue.d.ts +31 -14
- package/dist/components/surface/index.d.ts +2 -2
- package/dist/components/switch/Switch.vue.d.ts +7 -12
- package/dist/components/switch/index.d.ts +2 -2
- package/dist/components/table/index.d.ts +8 -8
- package/dist/components/tabs/SegmentedTabs.vue.d.ts +9 -13
- package/dist/components/tabs/composables/useTabDragMorph.d.ts +2 -2
- package/dist/components/tabs/composables/useTabResponsive.d.ts +1 -1
- package/dist/components/tabs/composables/useTabRovingFocus.d.ts +15 -7
- 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 +10 -5
- package/dist/components/textarea/index.d.ts +2 -2
- package/dist/components/textarea/types.d.ts +34 -11
- package/dist/components/timeline/Timeline.vue.d.ts +41 -0
- package/dist/components/timeline/geometry.d.ts +53 -78
- 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 +3 -3
- package/dist/components/toast/index.d.ts +8 -8
- package/dist/components/toast/use-toast.d.ts +9 -2
- package/dist/components/toggle-group/ToggleGroup.vue.d.ts +29 -40
- package/dist/components/toggle-group/ToggleGroupItem.vue.d.ts +7 -7
- package/dist/components/toggle-group/context.d.ts +28 -0
- package/dist/components/toggle-group/index.d.ts +2 -3
- package/dist/components/tooltip/TooltipContent.vue.d.ts +3 -8
- package/dist/components/tooltip/TooltipTrigger.vue.d.ts +1 -1
- 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 +1 -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 -1
- package/dist/components/typewriter/utils/typoStateMachine.d.ts +1 -1
- package/dist/composables/color/accent-tone-solve.d.ts +1 -1
- package/dist/composables/color/index.d.ts +7 -7
- package/dist/composables/context/index.d.ts +1 -1
- package/dist/composables/dark/darkModeSyncScript.d.ts +19 -0
- package/dist/composables/dark/index.d.ts +5 -5
- package/dist/composables/dom/index.d.ts +10 -10
- package/dist/composables/dom/useDragVelocity.d.ts +7 -0
- package/dist/composables/glass/backdropLuminanceSample.d.ts +20 -22
- 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 +2 -10
- package/dist/composables/glass/index.d.ts +5 -7
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +3 -4
- package/dist/composables/glass/useSpecularTracking.d.ts +1 -1
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +13 -22
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +10 -13
- package/dist/composables/glass/webgl/visibility.d.ts +1 -1
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +10 -13
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +3 -4
- package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +9 -11
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +0 -17
- package/dist/composables/keyboard/index.d.ts +1 -1
- package/dist/composables/motion/core/constants.d.ts +7 -0
- package/dist/composables/motion/core/index.d.ts +21 -21
- package/dist/composables/motion/core/motionTempo.d.ts +0 -2
- 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 -14
- package/dist/composables/motion/morph/eyeglass.d.ts +141 -0
- package/dist/composables/motion/morph/useDockCtaReceive.d.ts +6 -6
- package/dist/composables/motion/morph/useElementMorph.d.ts +4 -4
- package/dist/composables/motion/morph/useLeadTrail.d.ts +30 -28
- package/dist/composables/motion/morph/useSelectionGroup.d.ts +61 -23
- package/dist/composables/motion/morph/useSelectionIndicator.d.ts +52 -22
- package/dist/composables/motion/number/useAnimatedNumberMap.d.ts +1 -1
- package/dist/composables/motion/pointer/pointerFieldMappings.d.ts +1 -42
- package/dist/composables/motion/pointer/useRoutePointer.d.ts +1 -1
- package/dist/composables/motion/reveal/useLiquidReveal.d.ts +7 -6
- package/dist/composables/motion/route/routeGrammar.d.ts +60 -0
- package/dist/composables/motion/route/useRouteTransition.d.ts +45 -0
- package/dist/composables/motion/scroll/useScrollProgress.d.ts +7 -14
- package/dist/composables/motion/scroll/useScrollScene.d.ts +5 -4
- package/dist/composables/motion/spring/springPresets.d.ts +13 -27
- package/dist/composables/motion/spring/springProjection.d.ts +3 -4
- package/dist/composables/motion/spring/useLiquidPress.d.ts +2 -2
- package/dist/composables/motion/spring/useSpring.d.ts +3 -3
- package/dist/composables/motion/spring/useSpringMount.d.ts +6 -3
- package/dist/composables/motion/spring/useSpringPress.d.ts +6 -6
- package/dist/composables/reactive/index.d.ts +2 -2
- package/dist/composables/search/index.d.ts +5 -0
- package/dist/{components/search/composables/fuzzySearchIndex.d.ts → composables/search/match.d.ts} +9 -4
- package/dist/{components/search/composables → composables/search}/useFuzzySearch.d.ts +1 -1
- package/dist/composables/sidebar/index.d.ts +10 -10
- 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-BHJymdrF.js +339 -0
- package/dist/configurator.d.ts +1 -1
- package/dist/configurator.js +1 -1
- package/dist/{constants-nBz23tJE.js → constants-Dk96HZHu.js} +2 -2
- package/dist/constellation.d.ts +1 -1
- package/dist/constellation.js +137 -136
- package/dist/content-CWO-XL7o.js +18 -0
- package/dist/control-DJp15L4U.js +7 -0
- package/dist/{field-control.css_vue_type_style_index_0_src_true_lang-CeLay9Tk.js → control.css_vue_type_style_index_0_src_true_lang-BIdufaDG.js} +1 -1
- package/dist/{createCanvasLifecycle-DbXRwjU_.js → createCanvasLifecycle-hJHobVTn.js} +2 -5
- package/dist/{dark-z_P5QwqI.js → dark-CLlmo7dD.js} +2 -2
- package/dist/dark-mode-toggle.d.ts +1 -1
- package/dist/dark-mode-toggle.js +3 -3
- 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 +873 -620
- package/dist/dom.d.ts +1 -1
- package/dist/dom.js +141 -37
- package/dist/easing.d.ts +1 -1
- package/dist/easing.js +686 -515
- package/dist/expandable-container-BY1hQXi4.js +142 -0
- package/dist/expandable-container.d.ts +1 -1
- package/dist/expandable-container.js +2 -140
- package/dist/{fading-scroll-DhxXIhm2.js → fading-scroll-CTeW3KNS.js} +30 -30
- 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 +641 -855
- package/dist/fourier-math.d.ts +1 -1
- package/dist/fourier-math.js +6 -6
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +133 -469
- package/dist/handmark.d.ts +1 -1
- package/dist/handmark.js +330 -718
- package/dist/index.d.ts +41 -42
- package/dist/infinite-scroll.d.ts +1 -1
- package/dist/infinite-scroll.js +56 -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 +64 -148
- package/dist/menu-TDMNtZjG.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 -1
- package/dist/metric.js +79 -132
- package/dist/motion-D4uYE0UM.js +61 -0
- package/dist/motion-core.d.ts +1 -1
- package/dist/motion-core.js +185 -52
- package/dist/motion.d.ts +1 -1
- package/dist/motion.js +160 -178
- 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-Di4UHbzk.js +42 -0
- package/dist/{pointerFieldMappings-DP5tla5z.js → pointerFieldMappings-DXwlU5uj.js} +7 -23
- package/dist/popover-C04Rrdcz.js +181 -0
- package/dist/popover.d.ts +1 -1
- package/dist/popover.js +1 -1
- package/dist/progress-DF8dWZIX.js +74 -0
- package/dist/progress.d.ts +1 -1
- package/dist/progress.js +1 -1
- package/dist/radio-group-BNV7PN1O.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/resolve-DdrNvBby.js +6 -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/select-COox45Kv.js +290 -0
- package/dist/select.d.ts +1 -1
- package/dist/select.js +2 -2
- 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/slider-5ChjjWSR.js +227 -0
- package/dist/slider.d.ts +1 -1
- package/dist/slider.js +1 -1
- package/dist/sortable-list.d.ts +1 -1
- package/dist/sortable-list.js +411 -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 -42
- 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 +4 -4
- 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 +2 -2
- 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 -1
- 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-C2zyWpl8.js → supportsCssTimeline-Di9gzleG.js} +5 -4
- package/dist/surface.d.ts +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch-lLkbREB-.js +49 -0
- package/dist/switch.d.ts +1 -1
- package/dist/switch.js +1 -1
- package/dist/tabs-DSJMd1Et.js +268 -0
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +2 -311
- package/dist/textarea.d.ts +1 -0
- package/dist/textarea.js +58 -0
- package/dist/timeline.d.ts +1 -1
- package/dist/timeline.js +238 -528
- package/dist/{toast-CH5mnsYT.js → toast-9c6Kp58L.js} +52 -50
- package/dist/toast.d.ts +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group-DUcmKnDw.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 +12 -10
- package/dist/tooltip-BKk2qVDn.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 +10 -32
- package/dist/useAccentTone-DFAh1osB.js +47 -0
- package/dist/{resolveCanvasColor-DS_6DBxA.js → useCanvas2D-CQRElMyE.js} +2 -13
- package/dist/{useDockCtaReceive-DkrOTM0q.js → useDockCtaReceive-BSSgD6mu.js} +2 -2
- package/dist/{useDragMorph-BogSV_nv.js → useDragMorph-B363RUbF.js} +59 -59
- package/dist/{useDragVelocity-6ONX0sr0.js → useDragVelocity-C5BkKiNf.js} +28 -24
- package/dist/useIntersectionPause-CzKR3EyP.js +57 -0
- package/dist/useLeadTrail-DQWdpFN1.js +83 -0
- package/dist/{useLiquidPress-BOxuDkKa.js → useLiquidPress-h1scrPtP.js} +1 -1
- package/dist/useScrollChrome-BJbWV32F.js +162 -0
- package/dist/useScrollProgress-Bq-KPaKM.js +41 -0
- package/dist/{useScrollTrigger-BDdqptlc.js → useScrollTrigger-Abe5dEeO.js} +25 -26
- package/dist/useSelectionGroup-zsEwitF6.js +291 -0
- package/dist/{useSpringMount-uQ8QL9Ff.js → useSpringMount-OA-0mTNv.js} +5 -6
- package/dist/vReveal-B5WYGofz.js +44 -0
- package/dist/{valueDomain-SbVzoHMH.js → valueDomain-DXRzfc8l.js} +1 -1
- package/package.json +52 -109
- package/dist/FeedbackMark-DZq5001h.js +0 -23
- package/dist/Input-9BlLluik.js +0 -77
- package/dist/PagerDots-BEq0MgtH.js +0 -311
- package/dist/Surface-kFQeYrYv.js +0 -82
- package/dist/animated-digit.d.ts +0 -1
- package/dist/animated-digit.js +0 -44
- package/dist/badge-u65NClWn.js +0 -62
- package/dist/button-Bu9F4uU6.js +0 -98
- package/dist/canvas.d.ts +0 -1
- package/dist/canvas.js +0 -2
- package/dist/chip-DFZQr6rV.js +0 -129
- package/dist/color.wgsl-Ct5o9dpf.js +0 -411
- package/dist/command-SFqDQ65h.js +0 -320
- package/dist/compile-D7VYG3gi.js +0 -19
- package/dist/completion-seal.d.ts +0 -1
- package/dist/completion-seal.js +0 -132
- package/dist/components/_shared/FeedbackMark.vue.d.ts +0 -11
- package/dist/components/_shared/control-size.d.ts +0 -2
- package/dist/components/_shared/disclosure.css +0 -1
- package/dist/components/_shared/feedback-tone.css +0 -1
- package/dist/components/_shared/feedback.d.ts +0 -7
- package/dist/components/_shared/field-control.css +0 -1
- package/dist/components/_shared/field-surfaces.css +0 -1
- package/dist/components/_shared/floating.d.ts +0 -14
- package/dist/components/_shared/menu.css +0 -1
- package/dist/components/_shared/menuRowClass.d.ts +0 -2
- package/dist/components/_shared/resolveSurfaceClass.d.ts +0 -3
- package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +0 -55
- package/dist/components/animated-digit/index.d.ts +0 -2
- package/dist/components/avatar/styles.css +0 -1
- package/dist/components/card/CardAction.vue.d.ts +0 -17
- package/dist/components/card/card-scroll.css +0 -1
- package/dist/components/carousel/interface.d.ts +0 -22
- package/dist/components/checkbox/styles.css +0 -1
- package/dist/components/combobox/Combobox.vue.d.ts +0 -22
- package/dist/components/combobox/ComboboxAnchor.vue.d.ts +0 -14
- package/dist/components/combobox/ComboboxEmpty.vue.d.ts +0 -14
- package/dist/components/combobox/ComboboxGroup.vue.d.ts +0 -14
- package/dist/components/combobox/ComboboxInput.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxItem.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxItemIndicator.vue.d.ts +0 -14
- package/dist/components/combobox/ComboboxList.vue.d.ts +0 -29
- package/dist/components/combobox/ComboboxTrigger.vue.d.ts +0 -16
- package/dist/components/combobox/index.d.ts +0 -10
- package/dist/components/combobox/types.d.ts +0 -87
- package/dist/components/command/dialogContext.d.ts +0 -6
- package/dist/components/command/styles.css +0 -1
- 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/data-table/styles.css +0 -1
- package/dist/components/deck/DeckPager.vue.d.ts +0 -29
- package/dist/components/dialog/DialogClose.vue.d.ts +0 -16
- package/dist/components/dialog/DialogTrigger.vue.d.ts +0 -16
- package/dist/components/dialog/dialogStageContext.d.ts +0 -7
- package/dist/components/dialog/placement.css +0 -1
- package/dist/components/dialog/sheet-motion.d.ts +0 -17
- package/dist/components/dock/composables/useDockOverflowFit.d.ts +0 -20
- package/dist/components/dock/composables/useDockTouchGate.d.ts +0 -42
- package/dist/components/dock/styles/overflow.css +0 -1
- package/dist/components/drawer/Drawer.vue.d.ts +0 -82
- package/dist/components/drawer/DrawerContent.vue.d.ts +0 -39
- package/dist/components/drawer/DrawerDescription.vue.d.ts +0 -17
- 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 -17
- package/dist/components/drawer/composables/drawerSnapContext.d.ts +0 -34
- package/dist/components/drawer/composables/useDrawerSnap.d.ts +0 -26
- package/dist/components/drawer/constants.d.ts +0 -32
- package/dist/components/drawer/index.d.ts +0 -33
- package/dist/components/drawer/styles.css +0 -1
- package/dist/components/dropdown-menu/styles.css +0 -1
- package/dist/components/easing/EasingConfigurator.vue.d.ts +0 -33
- package/dist/components/expandable-container/styles.css +0 -1
- package/dist/components/fourier-field/composables/fourierFieldGLSetup.d.ts +0 -24
- package/dist/components/fourier-field/composables/fourierFieldWGPUSetup.d.ts +0 -31
- package/dist/components/fourier-field/composables/uniformBridgeWGPU.d.ts +0 -41
- package/dist/components/fourier-field/composables/useFourierField.d.ts +0 -56
- package/dist/components/fourier-field/presets.d.ts +0 -54
- package/dist/components/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +0 -1
- package/dist/components/fourier-field/shaders/fourier-field.glsl.d.ts +0 -4
- package/dist/components/fourier-field/shaders/fourier-field.render.wgsl.d.ts +0 -1
- package/dist/components/fourier-field/shaders/fourier-field.ribbon.d.ts +0 -51
- package/dist/components/handmark/brush.d.ts +0 -269
- package/dist/components/handmark/composables/useHandMark.d.ts +0 -99
- package/dist/components/handmark/constants.d.ts +0 -69
- package/dist/components/handmark/freehand.d.ts +0 -69
- package/dist/components/handmark/geometry.d.ts +0 -65
- package/dist/components/handmark/ink.d.ts +0 -11
- package/dist/components/handmark/noise.d.ts +0 -30
- package/dist/components/handmark/texture.d.ts +0 -39
- package/dist/components/handmark/types.d.ts +0 -70
- package/dist/components/header-ribbon/HeaderRibbon.vue.d.ts +0 -13
- package/dist/components/header-ribbon/index.d.ts +0 -2
- package/dist/components/header-ribbon/styles.css +0 -1
- package/dist/components/header-ribbon/types.d.ts +0 -10
- package/dist/components/instrument-chassis/InstrumentChassis.vue.d.ts +0 -23
- package/dist/components/instrument-chassis/index.d.ts +0 -2
- package/dist/components/instrument-chassis/styles.css +0 -1
- package/dist/components/instrument-chassis/types.d.ts +0 -13
- package/dist/components/labeled-field/LabeledSelect.vue.d.ts +0 -20
- 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 -92
- 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/MetricCell.vue.d.ts +0 -26
- 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/number-field/styles.css +0 -1
- package/dist/components/pager-dots/composables/usePagerWorm.d.ts +0 -26
- package/dist/components/pager-dots/constants.d.ts +0 -14
- package/dist/components/pager-dots/pagerWindow.d.ts +0 -9
- package/dist/components/paper-backdrop/PaperBackdrop.vue.d.ts +0 -8
- package/dist/components/paper-backdrop/index.d.ts +0 -2
- package/dist/components/pulse/Pulse.vue.d.ts +0 -14
- package/dist/components/pulse/index.d.ts +0 -2
- package/dist/components/radio-group/styles.css +0 -1
- package/dist/components/search/FuzzySearch.vue.d.ts +0 -24
- package/dist/components/search/SearchBar.vue.d.ts +0 -38
- package/dist/components/search/composables/index.d.ts +0 -5
- package/dist/components/search/index.d.ts +0 -9
- package/dist/components/search/searchVariants.d.ts +0 -17
- package/dist/components/select/SelectScrollDownButton.vue.d.ts +0 -17
- package/dist/components/select/SelectScrollUpButton.vue.d.ts +0 -17
- 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/switch/styles.css +0 -1
- package/dist/components/tabs/constants.d.ts +0 -1
- package/dist/components/tags-input/TagsInput.vue.d.ts +0 -41
- package/dist/components/tags-input/TagsInputInput.vue.d.ts +0 -10
- package/dist/components/tags-input/TagsInputItem.vue.d.ts +0 -19
- package/dist/components/tags-input/TagsInputItemDelete.vue.d.ts +0 -17
- package/dist/components/tags-input/TagsInputItemText.vue.d.ts +0 -7
- package/dist/components/tags-input/context.d.ts +0 -5
- package/dist/components/tags-input/index.d.ts +0 -5
- package/dist/components/tags-input/styles.css +0 -1
- package/dist/components/timeline/ContinuousMarkers.vue.d.ts +0 -47
- package/dist/components/timeline/ContinuousRail.vue.d.ts +0 -23
- package/dist/components/timeline/ContinuousTimeline.vue.d.ts +0 -117
- package/dist/components/timeline/GlassTimeline.vue.d.ts +0 -113
- package/dist/components/timeline/ScrubberTimeline.vue.d.ts +0 -45
- package/dist/components/timeline/SegmentedTimeline.vue.d.ts +0 -45
- package/dist/components/toggle-group/styles.css +0 -1
- package/dist/components/toggle-group/toggleGroupContext.d.ts +0 -9
- package/dist/components/typewriter/composables/index.d.ts +0 -1
- package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +0 -61
- 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 -28
- 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/webgpu/index.d.ts +0 -3
- package/dist/composables/index.d.ts +0 -9
- package/dist/composables/motion/number/useCountup.d.ts +0 -30
- package/dist/composables/motion/number/useNumericTransition.d.ts +0 -56
- package/dist/composables/motion/reveal/bloomUpField.d.ts +0 -29
- package/dist/composables/motion/reveal/useBloomUp.d.ts +0 -33
- package/dist/composables/motion/reveal/useStaggerReveal.d.ts +0 -28
- package/dist/composables/motion/reveal/useTextHighlight.d.ts +0 -41
- package/dist/composables/motion/scroll/useScrollPin.d.ts +0 -49
- package/dist/configurator-M5OaIlJd.js +0 -311
- package/dist/data-table-BygKg6ZA.js +0 -491
- package/dist/dialog-TNRDkcE4.js +0 -385
- package/dist/dockContext-BUTlGRNJ.js +0 -13
- package/dist/drawer.d.ts +0 -1
- package/dist/drawer.js +0 -496
- package/dist/dropdown-menu-BlbnvMaZ.js +0 -507
- package/dist/dropdown-menu.d.ts +0 -1
- package/dist/floating-dB5TD88k.js +0 -7
- package/dist/flow.wgsl-Cd2GUkPx.js +0 -4
- package/dist/fonts/README.md +0 -120
- 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 -403
- package/dist/header-ribbon.d.ts +0 -1
- package/dist/header-ribbon.js +0 -43
- package/dist/instrument-chassis.d.ts +0 -1
- package/dist/instrument-chassis.js +0 -54
- package/dist/label-DnMqH7jr.js +0 -55
- package/dist/liquid-grid.d.ts +0 -1
- package/dist/liquid-grid.js +0 -1065
- package/dist/menuRowClass-Nh7CtMON.js +0 -12
- package/dist/number-field-Boe09SvX.js +0 -154
- package/dist/paper-backdrop.d.ts +0 -1
- package/dist/paper-backdrop.js +0 -23
- package/dist/popover-BQGYXZyO.js +0 -244
- package/dist/progress-DClbhRAT.js +0 -88
- package/dist/pulse.d.ts +0 -1
- package/dist/pulse.js +0 -42
- package/dist/resolveSurfaceClass-DCZ4PZcy.js +0 -6
- package/dist/search.d.ts +0 -1
- package/dist/search.js +0 -352
- package/dist/select-BcBAyLXA.js +0 -336
- package/dist/separator-CgZInrX-.js +0 -75
- package/dist/slider-DzqeQmMu.js +0 -162
- package/dist/springPresets-rCii5KqX.js +0 -52
- 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-refract.css +0 -1
- package/dist/styles/tokens/manifest.ts +0 -56
- package/dist/styles/tokens.ts +0 -54
- package/dist/switch-DZjQuFLa.js +0 -54
- package/dist/toggle-group-O6jBo7AE.js +0 -150
- package/dist/tooltip-Drx5qnw_.js +0 -148
- package/dist/useAccentTone-DyInfHXE.js +0 -23
- package/dist/useAnimatedNumber-WPtMz0AN.js +0 -40
- package/dist/useDocumentVisibility-Dh_TGXsU.js +0 -21
- package/dist/useFuzzySearch-CUnZknpm.js +0 -177
- package/dist/useIntersectionPause-B5mAU6XY.js +0 -39
- package/dist/useLeadTrail-AW1-zZcd.js +0 -74
- package/dist/useRAFLoop-B3YlWK4M.js +0 -98
- package/dist/useScrollProgress-CSFYXIZT.js +0 -43
- package/dist/useSelectionGroup-B5XplBbo.js +0 -132
- package/dist/useTabRovingFocus-YnWh-Ytr.js +0 -169
- package/dist/useTextHighlight-mfwNIC1f.js +0 -112
- package/dist/useTouchGate-B4mzQcHJ.js +0 -84
- package/dist/useUserInvalidAria-0GNrddMX.js +0 -25
- package/dist/watercolor-dot.d.ts +0 -1
- package/dist/watercolor-dot.js +0 -149
- /package/dist/components/_shared/{disclosure-context.d.ts → disclosure/disclosure-context.d.ts} +0 -0
- /package/dist/components/_shared/{valueDomain.d.ts → field/valueDomain.d.ts} +0 -0
- /package/dist/components/{dropdown-menu → menu}/DropdownMenuGroup.vue.d.ts +0 -0
- /package/dist/components/{dropdown-menu → menu}/DropdownMenuItem.vue.d.ts +0 -0
- /package/dist/components/{dropdown-menu → menu}/DropdownMenuLabel.vue.d.ts +0 -0
- /package/dist/components/{dropdown-menu → menu}/DropdownMenuSeparator.vue.d.ts +0 -0
- /package/dist/components/{dropdown-menu → menu}/DropdownMenuShortcut.vue.d.ts +0 -0
- /package/dist/components/{dropdown-menu → menu}/DropdownMenuSub.vue.d.ts +0 -0
- /package/dist/components/{dropdown-menu → menu}/DropdownMenuSubTrigger.vue.d.ts +0 -0
- /package/dist/components/{dropdown-menu/useMenuTrigger.d.ts → menu/context.d.ts} +0 -0
- /package/dist/{components/search/composables → composables/search}/types.d.ts +0 -0
|
@@ -1,134 +1,109 @@
|
|
|
1
|
-
import type { OklchStop } from "../../composables/color";
|
|
1
|
+
import type { OklchStop } from "../../composables/color/index.js";
|
|
2
|
+
import type { FOURIER_FIGURES } from "./math.js";
|
|
3
|
+
/** The palette-stop ceiling — the WGSL `MAX_FOURIER_STOPS` binding size. */
|
|
4
|
+
export declare const MAX_FOURIER_STOPS = 4;
|
|
2
5
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* sample per half-degree of the unit period.
|
|
6
|
+
* The CPU-resolved OKLab ramp resolution. The palette is sampled into this many entries
|
|
7
|
+
* once per palette change and uploaded as a table, so the shader never runs an OKLab
|
|
8
|
+
* conversion per fragment and the ink, the mark and the head all read ONE ramp.
|
|
7
9
|
*/
|
|
8
|
-
export declare const
|
|
10
|
+
export declare const FOURIER_LUT_SIZE = 16;
|
|
9
11
|
/**
|
|
10
|
-
* The
|
|
11
|
-
*
|
|
12
|
-
* the flow-field already uses a storage buffer). The curated ℱ/heart/star set + the
|
|
13
|
-
* generated elliptic spectrum all sit under it.
|
|
12
|
+
* The tail chroma floor. A ramp that lets chroma fall to zero paints a grey smear at the
|
|
13
|
+
* trail's end — the blob disease. Every LUT entry is floored here.
|
|
14
14
|
*/
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const FOURIER_TAIL_CHROMA_FLOOR = 0.1;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* the
|
|
17
|
+
* THE INK STEP. The ink is the mark's own ramp head taken one step DOWN in lightness and
|
|
18
|
+
* then gamut-mapped at fixed L and hue, so it is a real pigment rather than a wash. This
|
|
19
|
+
* is the module's own ramp step, and it is what solves mark:ink into the [1.5, 3.0]:1
|
|
20
|
+
* band in BOTH schemes at once.
|
|
20
21
|
*/
|
|
21
|
-
export declare const
|
|
22
|
-
/** The palette-stop ceiling — the WGSL `MAX_FOURIER_STOPS` #define. */
|
|
23
|
-
export declare const MAX_FOURIER_STOPS = 4;
|
|
22
|
+
export declare const FOURIER_INK_DELTA_L = 0.22;
|
|
24
23
|
/**
|
|
25
|
-
* The
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* the head never teleports (an absolute-X `headT = pointerX` scrub reads as "not
|
|
29
|
-
* following" a 2-D cursor).
|
|
24
|
+
* THE HEAD LIFT. The comet head's core is the ramp head lifted by half the ink step, with
|
|
25
|
+
* chroma preserved. The head is light-led and stays in the palette family — it is never a
|
|
26
|
+
* white specular, which reads as trite and shiny and belongs to no rung.
|
|
30
27
|
*/
|
|
31
|
-
export declare const
|
|
28
|
+
export declare const FOURIER_HEAD_DELTA_L = 0.11;
|
|
32
29
|
/**
|
|
33
|
-
* The
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* age-0.5 MID-BODY is `RIBBON_TAIL_FRAC + (1 − RIBBON_TAIL_FRAC)·0.5` of the head). Declared
|
|
37
|
-
* ONCE here + MIRRORED verbatim as the `RIBBON_TAIL_FRAC` const in BOTH shaders (the GLSL twin
|
|
38
|
-
* cannot import a TS constant); keep the three copies equal so the
|
|
39
|
-
* mid-body floor below can never drift off the taper.
|
|
30
|
+
* The chain's hue sweep, in radians, ridden symmetrically about the palette hue. Measured
|
|
31
|
+
* swept range 10.3°–50.5° off a warm anchor, which is why the chain cannot reach
|
|
32
|
+
* chartreuse by construction rather than by a clamp.
|
|
40
33
|
*/
|
|
41
|
-
export declare const
|
|
42
|
-
/** The
|
|
43
|
-
export declare const
|
|
34
|
+
export declare const FOURIER_CHAIN_HUE_SWEEP = 0.35;
|
|
35
|
+
/** The scaffold stroke as a fraction of the mark stroke — the chain is a rung below the curve. */
|
|
36
|
+
export declare const FOURIER_SCAFFOLD_STROKE_FRAC = 0.4;
|
|
37
|
+
/** The three mark-stroke rungs in CSS px. Three rungs, three visibly distinct pictures. */
|
|
38
|
+
export declare const FOURIER_STROKE_RUNGS: readonly [4, 8, 12];
|
|
44
39
|
/**
|
|
45
|
-
* The
|
|
46
|
-
*
|
|
47
|
-
*
|
|
40
|
+
* The flick's advance cap in turns. A full flick advances the clock by at most half a
|
|
41
|
+
* figure (`|∫flick| = v/ω² ≤ FOURIER_FLICK_TURNS`), so the machine stays checkable: the
|
|
42
|
+
* reader can always see where the head went.
|
|
48
43
|
*/
|
|
49
|
-
export declare const
|
|
44
|
+
export declare const FOURIER_FLICK_TURNS = 0.5;
|
|
45
|
+
/** The cursor-velocity → clock-rate scrub gain (turns per second per unit pointer velocity). */
|
|
46
|
+
export declare const FOURIER_SCRUB_GAIN = 0.15;
|
|
47
|
+
/** Base forward period for one full traversal at 1× speed, in seconds. */
|
|
48
|
+
export declare const FOURIER_PERIOD_S = 16;
|
|
49
|
+
/** The keyboard scrub quanta in turns: fine (←/→) and coarse (↑/↓). */
|
|
50
|
+
export declare const FOURIER_QUANTUM_FINE: number;
|
|
51
|
+
export declare const FOURIER_QUANTUM_COARSE: number;
|
|
50
52
|
/**
|
|
51
|
-
* The
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* float safety.
|
|
53
|
+
* The device-pixel-ratio cap. Consumed locally: the curve is a thin stroke over mostly
|
|
54
|
+
* empty stage, so it is worth resolving sharply, and 2× is where the sharpness stops
|
|
55
|
+
* being visible and starts being fill rate.
|
|
55
56
|
*/
|
|
56
|
-
export declare const
|
|
57
|
+
export declare const FOURIER_DPR_CAP = 2;
|
|
58
|
+
/** The number of curve samples the comet body is built from. */
|
|
59
|
+
export declare const FOURIER_CURVE_SAMPLES = 384;
|
|
57
60
|
/**
|
|
58
|
-
* The degenerate-tangent guard
|
|
59
|
-
*
|
|
60
|
-
* up; below `FOURIER_TANGENT_EPS` the shaders + the GL CPU bead path all fall back to the
|
|
61
|
-
* LAST stable tangent, so `s→0` resolves IDENTICALLY across both engines (the cross-engine
|
|
62
|
-
* cusp-parity fence — one shared constant, no per-engine drift).
|
|
61
|
+
* The degenerate-tangent guard. At a cusp the head's instantaneous speed collapses and
|
|
62
|
+
* the unit tangent blows up; below this the shader falls back to the last stable tangent.
|
|
63
63
|
*/
|
|
64
64
|
export declare const FOURIER_TANGENT_EPS = 0.0001;
|
|
65
|
-
/**
|
|
66
|
-
|
|
67
|
-
* volume-preserving anisotropic ellipse: the tangent extent scales `1 + k·ŝ`, the normal
|
|
68
|
-
* extent `1/(1 + k·ŝ)`, where `ŝ` is the normalized head speed. The library identity carries
|
|
69
|
-
* a SMALL non-zero gain (cartoon-weight at rest — the head is never a dead disc); a consumer
|
|
70
|
-
* vivid preset turns it to 11. `0` = the byte-frozen round disc.
|
|
71
|
-
*/
|
|
72
|
-
export declare const FOURIER_SQUASH_GAIN = 0.55;
|
|
73
|
-
/**
|
|
74
|
-
* The cartoon cel-shadow gain ( §3b). Each chain ring/arm/dot + the comet
|
|
75
|
-
* rope paints a second darker copy OFFSET opposite its travel — the 1940s technicolor ink.
|
|
76
|
-
* The library identity carries a SMALL non-zero gain (a quiet weight under the chain); a
|
|
77
|
-
* consumer vivid preset floors it UP. `0` = no cel pass (byte-frozen). The offset rides the
|
|
78
|
-
* head tangent, mirrored on both engines off the SAME `curveSamples` tangent.
|
|
79
|
-
*/
|
|
80
|
-
export declare const FOURIER_CEL_GAIN = 0.35;
|
|
65
|
+
/** The spectrum source: the seeded generator, or a curated closed figure by key. */
|
|
66
|
+
export type FourierSource = "elliptic" | keyof typeof FOURIER_FIGURES;
|
|
81
67
|
/**
|
|
82
68
|
* The full author schema — the studio's `useConfiguratorState` model. Every field is a
|
|
83
|
-
* tunable
|
|
69
|
+
* tunable a control drives, and every one of them changes the picture.
|
|
84
70
|
*/
|
|
85
71
|
export interface FourierFieldConfig {
|
|
86
|
-
/** The
|
|
87
|
-
source:
|
|
88
|
-
/**
|
|
72
|
+
/** The spectrum source. An unknown key throws at config time rather than painting a default. */
|
|
73
|
+
source: FourierSource;
|
|
74
|
+
/**
|
|
75
|
+
* The partial-sum term count N. Its live domain is `[1, spectrum.length]`, where the
|
|
76
|
+
* length is what the mint emitted — there is no constant maximum anywhere.
|
|
77
|
+
*/
|
|
89
78
|
harmonics: number;
|
|
90
|
-
/** Draw the
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
epicycleArms: number;
|
|
94
|
-
/** Paint the chain as a warm-anchored hue sweep vs one analogous hue. */
|
|
79
|
+
/** Draw the machine: the rings, the arms and the joint dots. */
|
|
80
|
+
showMachine: boolean;
|
|
81
|
+
/** Sweep the chain's hue about the palette anchor rather than painting one hue. */
|
|
95
82
|
rainbowChain: boolean;
|
|
96
|
-
/** Comet-body length as a fraction of the period (0.15..1
|
|
83
|
+
/** Comet-body length as a fraction of the period (0.15..1). */
|
|
97
84
|
trailArc: number;
|
|
98
|
-
/**
|
|
99
|
-
|
|
100
|
-
/**
|
|
85
|
+
/** The mark stroke in CSS px — one of {@link FOURIER_STROKE_RUNGS}. */
|
|
86
|
+
markStroke: number;
|
|
87
|
+
/**
|
|
88
|
+
* The ink's offset from its mark, in stroke widths, taken along this segment's own
|
|
89
|
+
* tangent and opposite the travel. Below ½ the ink hides under its mark; above 1 it
|
|
90
|
+
* detaches and reads as a second line.
|
|
91
|
+
*/
|
|
92
|
+
inkOffset: number;
|
|
93
|
+
/** The head's squash-and-stretch gain (0..1). 0 is a dead round disc. */
|
|
94
|
+
squash: number;
|
|
95
|
+
/** The head halo's strength (0..0.3). */
|
|
96
|
+
glow: number;
|
|
97
|
+
/** Outer loudness envelope (0..2). Above 1 the pack clamps, and the row says so. */
|
|
101
98
|
intensity: number;
|
|
102
|
-
/** Character of the
|
|
103
|
-
|
|
104
|
-
/** Clock speed multiplier
|
|
99
|
+
/** Character of the GENERATED spectrum (0..1). Inert for a curated source. */
|
|
100
|
+
richness: number;
|
|
101
|
+
/** Clock speed multiplier. */
|
|
105
102
|
speed: number;
|
|
106
|
-
/** The curve-color ramp
|
|
103
|
+
/** The curve-color ramp. */
|
|
107
104
|
palette: OklchStop[];
|
|
108
|
-
/**
|
|
105
|
+
/** One static frame then park under `prefers-reduced-motion: reduce`. */
|
|
109
106
|
respectReducedMotion: boolean;
|
|
110
|
-
/** Pointer scrubs `head_t` + a flick injects clock momentum (the consume). */
|
|
111
|
-
interactive: boolean;
|
|
112
|
-
/**
|
|
113
|
-
* Head squash-and-stretch gain ( §2b). The head bead stretches along the
|
|
114
|
-
* curve tangent on straights, squashes across it on corners (volume-preserving). The
|
|
115
|
-
* library identity carries a small non-zero default (cartoon-weight at rest); a vivid
|
|
116
|
-
* consumer preset turns it to 11. 0 = the byte-frozen round disc.
|
|
117
|
-
*/
|
|
118
|
-
squashGain: number;
|
|
119
|
-
/**
|
|
120
|
-
* Cartoon cel-shadow gain ( §3b). A second darker copy of the chain + rope,
|
|
121
|
-
* offset opposite the head travel (the technicolor ink). The library identity carries a
|
|
122
|
-
* small non-zero default; a vivid consumer preset floors it UP. 0 = no cel pass.
|
|
123
|
-
*/
|
|
124
|
-
celGain: number;
|
|
125
107
|
}
|
|
126
|
-
/**
|
|
127
|
-
* The warm-cream identity palette (the library default — NOT teal). A two-stop warm-amber
|
|
128
|
-
* ramp over the warm-cream foreground family, resolved via the ColorResolver. The chain's
|
|
129
|
-
* rainbow sweep is warm-anchored over THIS base; a consumer (the demo) themes it through a
|
|
130
|
-
* preset, never a token edit.
|
|
131
|
-
*/
|
|
132
|
-
export declare const WARM_IDENTITY_PALETTE: OklchStop[];
|
|
133
|
-
/** The shipped warm-identity default config. */
|
|
108
|
+
/** The shipped default config. */
|
|
134
109
|
export declare const DEFAULT_FOURIER_CONFIG: FourierFieldConfig;
|
|
@@ -1,31 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export {
|
|
5
|
-
export { comp, positionsAt, partialSumAt, dftFromPoints, makeEllipticSpectrum, makeHarmonicFigure, FOURIER_FIGURES, FOURIER_FIGURE_KEYS, type BasisComponent, type EllipticSpectrumOptions, type HarmonicTerm, } from "./math";
|
|
6
|
-
export { DEFAULT_FOURIER_CONFIG, WARM_IDENTITY_PALETTE, MAX_PHASORS, MAX_CURVE_SAMPLES, type FourierFieldConfig, } from "./constants";
|
|
7
|
-
export { useFourierField, type FourierFieldHandle, type UseFourierFieldOptions, } from "./composables/useFourierField";
|
|
8
|
-
/**
|
|
9
|
-
* The props a consumer forwards when wrapping `<FourierField>` (the GPU-substrate epicycle
|
|
10
|
-
* field; ships via `/fourier-field`). Mirrors the component's inline `defineProps` shape because
|
|
11
|
-
* an SFC cannot export its inline props type. Visual bundles live in config presets; the
|
|
12
|
-
* renderer is the WGSL-primary GPU substrate.
|
|
13
|
-
*/
|
|
14
|
-
export interface FourierFieldProps {
|
|
15
|
-
/** The full author config (the studio's `useConfiguratorState` model). Defaults to the warm identity. */
|
|
16
|
-
config?: FourierFieldConfig;
|
|
17
|
-
/** An explicit CPU-minted spectrum (a curated shape's DFT). When absent, a seeded elliptic spectrum is generated. */
|
|
18
|
-
spectrum?: readonly BasisComponent[];
|
|
19
|
-
/** Resolve the curve palette as OKLCh (the studio themes it). */
|
|
20
|
-
getPalette?: () => OklchStop[];
|
|
21
|
-
/** Ambient-consumer color seam — a `var()`/`light-dark()` token or a literal; derives a warm palette. */
|
|
22
|
-
color?: string;
|
|
23
|
-
/** The color resolver (the GooBlob/Aurora seam) — required when `color` is a `var()` token. */
|
|
24
|
-
colorResolver?: ColorResolver;
|
|
25
|
-
/** Extra seed mixed into the generated elliptic spectrum PRNG. Default "". */
|
|
26
|
-
seed?: string;
|
|
27
|
-
/** Paint ONE static deterministic best-frame and never animate (the capture lever). Default false. */
|
|
28
|
-
freeze?: boolean;
|
|
29
|
-
/** Outer loudness envelope (scales the per-layer alpha). Overrides `config.intensity` when set; clamped [0, 2]. */
|
|
30
|
-
intensity?: number;
|
|
31
|
-
}
|
|
1
|
+
export { default as FourierField } from "./FourierField.vue.js";
|
|
2
|
+
export { dftFromPoints, partialSumAt, positionsAt, makeEllipticSpectrum, makeHarmonicFigure, FOURIER_FIGURES, FOURIER_FIGURE_KEYS, type BasisComponent, } from "./math.js";
|
|
3
|
+
export { mintSpectrum, ringsAt, type MintedSpectrum } from "./renderer/mint.js";
|
|
4
|
+
export { DEFAULT_FOURIER_CONFIG, type FourierFieldConfig } from "./constants.js";
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* One Fourier phasor. `index` is the integer frequency (a counter-rotating pair
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* polar read — the reconstruction uses the rectangular `coefficient`).
|
|
2
|
+
* One Fourier phasor. `index` is the integer frequency (a counter-rotating pair is `+1`
|
|
3
|
+
* and `-1`); `coefficient` is the complex coefficient `[re, im]`; `amplitude`/`phase` are
|
|
4
|
+
* its polar form (the reconstruction uses the rectangular `coefficient`).
|
|
6
5
|
*/
|
|
7
6
|
export interface BasisComponent {
|
|
8
7
|
index: number;
|
|
@@ -11,101 +10,94 @@ export interface BasisComponent {
|
|
|
11
10
|
phase: number;
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
14
|
-
* Build a {@link BasisComponent} from a frequency index and its rectangular
|
|
15
|
-
*
|
|
13
|
+
* Build a {@link BasisComponent} from a frequency index and its rectangular coefficient,
|
|
14
|
+
* deriving the polar `amplitude`/`phase`.
|
|
16
15
|
*/
|
|
17
16
|
export declare function comp(index: number, re: number, im: number): BasisComponent;
|
|
18
17
|
/**
|
|
19
|
-
* The epicycle chain at parameter `t`: the running tip of each phasor stacked on
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* `t`. `maxCircles` truncates the chain (draw fewer arms than the spectrum
|
|
23
|
-
* carries).
|
|
18
|
+
* The epicycle chain at parameter `t`: the running tip of each phasor stacked on the
|
|
19
|
+
* last, starting at the origin. `positions[0]` is `[0, 0]`; the final entry is the curve
|
|
20
|
+
* point. `maxCircles` truncates the chain.
|
|
24
21
|
*/
|
|
25
|
-
export declare function positionsAt(components: BasisComponent[], t: number, maxCircles?: number): [number, number][];
|
|
22
|
+
export declare function positionsAt(components: readonly BasisComponent[], t: number, maxCircles?: number): [number, number][];
|
|
26
23
|
/**
|
|
27
|
-
* The PARTIAL-SUM curve point at
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* chain truncated, `partialSumAt` reads only its endpoint — so the studio's
|
|
33
|
-
* N-harmonics slider can draw the assembling chain (`positionsAt(.., N)`) AND the
|
|
34
|
-
* resolving curve point (`partialSumAt(.., t, N)`) off the ONE axis. Sweeping `t`
|
|
35
|
-
* over `[0,1)` and joining the points traces the partial-sum CURVE: at `maxTerms`
|
|
36
|
-
* = 1 a single ellipse, growing toward the full reconstruction as `maxTerms`
|
|
37
|
-
* climbs to `components.length` (the reference's "watch it sum" beauty).
|
|
38
|
-
*
|
|
39
|
-
* `maxTerms` omitted (or ≥ `components.length`) is the full reconstruction — the
|
|
40
|
-
* same point `positionsAt(components, t)` returns at its final tip.
|
|
24
|
+
* The PARTIAL-SUM curve point at `t` over the first `maxTerms` phasors — the truncated
|
|
25
|
+
* inverse DFT `Σ_{k<maxTerms} c_k · e^{2πi·k·t}`. It is {@link positionsAt} read at its
|
|
26
|
+
* final tip without building the chain, so the fit pass and the N axis share one
|
|
27
|
+
* evaluator. Sweeping `t` over `[0,1)` traces the partial-sum curve: at `maxTerms = 1` a
|
|
28
|
+
* single ellipse, growing toward the full reconstruction as `maxTerms` climbs.
|
|
41
29
|
*/
|
|
42
|
-
export declare function partialSumAt(components: BasisComponent[], t: number, maxTerms?: number): [number, number];
|
|
30
|
+
export declare function partialSumAt(components: readonly BasisComponent[], t: number, maxTerms?: number): [number, number];
|
|
43
31
|
/**
|
|
44
|
-
* The forward DFT — the inverse of {@link positionsAt}. Takes a closed sequence
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* {@link BasisComponent} spectrum that {@link positionsAt} reconstructs.
|
|
48
|
-
*
|
|
49
|
-
* Frequencies run symmetrically around 0 — `0, +1, -1, +2, -2, …` up to the
|
|
50
|
-
* Nyquist limit — which is the index ordering the epicycle chain wants (the big
|
|
51
|
-
* low-order phasors first). The DC term (`index 0`) is the curve's centroid; the
|
|
52
|
-
* caller can subtract it (draw the chain centered) or keep it (draw at the
|
|
53
|
-
* sampled position).
|
|
32
|
+
* The forward DFT — the inverse of {@link positionsAt}. Takes a closed sequence of
|
|
33
|
+
* `[x, y]` samples around a curve (the complex signal `x + i·y`, uniformly spaced in
|
|
34
|
+
* `t ∈ [0, 1)`) and returns the spectrum {@link positionsAt} reconstructs.
|
|
54
35
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
36
|
+
* Frequencies run symmetrically around 0 — `0, +1, -1, +2, -2, …` up to Nyquist. The DC
|
|
37
|
+
* term (`index 0`) is the curve's centroid; the mint hoists it out as the fit anchor.
|
|
38
|
+
* Any point set drives it: a glyph outline, a hand-traced path, a digitized signature.
|
|
58
39
|
*/
|
|
59
|
-
export declare function dftFromPoints(points: [number, number][]): BasisComponent[];
|
|
60
|
-
/** Tuning for {@link makeEllipticSpectrum}. */
|
|
61
|
-
export interface EllipticSpectrumOptions {
|
|
62
|
-
/**
|
|
63
|
-
* How many smaller higher-order harmonics to layer on top of the dominant
|
|
64
|
-
* counter-rotating pair (the dominant pair is always present). Default 4.
|
|
65
|
-
* The `final` preset passes a larger count for a denser, busier curve.
|
|
66
|
-
*/
|
|
67
|
-
harmonics?: number;
|
|
68
|
-
/**
|
|
69
|
-
* Peak magnitude of the higher-order harmonics relative to the dominant
|
|
70
|
-
* phasor. Smaller keeps the curve a clean, smooth ellipse with a little
|
|
71
|
-
* character; larger crinkles it. Default ~0.22.
|
|
72
|
-
*/
|
|
73
|
-
harmonicScale?: number;
|
|
74
|
-
}
|
|
40
|
+
export declare function dftFromPoints(points: readonly [number, number][]): BasisComponent[];
|
|
75
41
|
/**
|
|
76
|
-
* Emit a procedural elliptic spectrum: a DOMINANT counter-rotating pair (index
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
42
|
+
* Emit a procedural elliptic spectrum: a DOMINANT counter-rotating pair (index `+1` and
|
|
43
|
+
* `-1`) of UNEQUAL magnitude — the inequality is what draws a tilted ellipse rather than
|
|
44
|
+
* a circle — plus higher-order harmonics with a `1/order` falloff.
|
|
45
|
+
*
|
|
46
|
+
* `richness` ∈ `[0,1]` is the ONE character knob: 0 is a clean ellipse, 1 a crinkled
|
|
47
|
+
* figure. It drives both how many harmonics are offered and how loud they are; the mint's
|
|
48
|
+
* paint floor then decides how many of them survive, so the axis maximum is honest
|
|
49
|
+
* per-seed rather than pinned to a constant.
|
|
82
50
|
*
|
|
83
|
-
* Deterministic in `rng`: the same seeded `() => number` yields the same
|
|
84
|
-
* spectrum, so a frozen frame reproduces exactly.
|
|
51
|
+
* Deterministic in `rng`: the same seeded `() => number` yields the same spectrum.
|
|
85
52
|
*/
|
|
86
|
-
export declare function makeEllipticSpectrum(rng: () => number,
|
|
53
|
+
export declare function makeEllipticSpectrum(rng: () => number, richness?: number): BasisComponent[];
|
|
87
54
|
/** One integer-index harmonic term of a {@link FOURIER_FIGURES} recipe (polar form). */
|
|
88
55
|
export interface HarmonicTerm {
|
|
89
|
-
/** The INTEGER frequency index
|
|
56
|
+
/** The INTEGER frequency index — a closed figure requires integers (the period-1 fence). */
|
|
90
57
|
index: number;
|
|
91
58
|
/** The phasor magnitude (relative; the figure is scale-fit at render). */
|
|
92
59
|
mag: number;
|
|
93
|
-
/** The phase offset in
|
|
60
|
+
/** The phase offset in TURNS (0..1 — multiplied by 2π). */
|
|
94
61
|
phase: number;
|
|
95
62
|
}
|
|
96
63
|
/**
|
|
97
|
-
* Build a
|
|
98
|
-
* {
|
|
99
|
-
*
|
|
100
|
-
*
|
|
64
|
+
* Build a spectrum from a closed-figure recipe. Because every index is an INTEGER,
|
|
65
|
+
* `e^{2πi·k·t}` has period 1, so the sum CLOSES at `t = 1` by construction — no term can
|
|
66
|
+
* leave the figure open. Two counter-rotating integer phasors trace an epicycloid whose
|
|
67
|
+
* symmetry order is `|p − q|`; a third small term adds character without breaking closure.
|
|
101
68
|
*/
|
|
102
69
|
export declare function makeHarmonicFigure(terms: readonly HarmonicTerm[]): BasisComponent[];
|
|
103
70
|
/**
|
|
104
|
-
* The curated
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* The magnitudes stay large + few-phasor so the figure reads bold, not crinkled.
|
|
71
|
+
* The curated closed-figure catalogue — few-term integer-ratio harmonic stacks, each a
|
|
72
|
+
* deliberate figure (the symmetry order is `|p − q|` for the dominant pair). Every entry
|
|
73
|
+
* states its own honest term count: two terms draw a foil, three draw a spirograph.
|
|
108
74
|
*/
|
|
109
|
-
export declare const FOURIER_FIGURES:
|
|
75
|
+
export declare const FOURIER_FIGURES: {
|
|
76
|
+
trefoil: {
|
|
77
|
+
index: number;
|
|
78
|
+
mag: number;
|
|
79
|
+
phase: number;
|
|
80
|
+
}[];
|
|
81
|
+
quatrefoil: {
|
|
82
|
+
index: number;
|
|
83
|
+
mag: number;
|
|
84
|
+
phase: number;
|
|
85
|
+
}[];
|
|
86
|
+
pentafoil: {
|
|
87
|
+
index: number;
|
|
88
|
+
mag: number;
|
|
89
|
+
phase: number;
|
|
90
|
+
}[];
|
|
91
|
+
hexafoil: {
|
|
92
|
+
index: number;
|
|
93
|
+
mag: number;
|
|
94
|
+
phase: number;
|
|
95
|
+
}[];
|
|
96
|
+
spiro: {
|
|
97
|
+
index: number;
|
|
98
|
+
mag: number;
|
|
99
|
+
phase: number;
|
|
100
|
+
}[];
|
|
101
|
+
};
|
|
110
102
|
/** The ordered figure keys (the demo/consumer cycle order). */
|
|
111
|
-
export declare const FOURIER_FIGURE_KEYS:
|
|
103
|
+
export declare const FOURIER_FIGURE_KEYS: (keyof typeof FOURIER_FIGURES)[];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type BasisComponent } from "../math.js";
|
|
2
|
+
/**
|
|
3
|
+
* The reference stage diagonal in device px — the derivation is on the line above. Every
|
|
4
|
+
* axis maximum in the tree is this number's consequence, so it is declared once.
|
|
5
|
+
*/
|
|
6
|
+
export declare const FOURIER_REFERENCE_DIAGONAL_PX = 856;
|
|
7
|
+
/** A term survives the mint iff it moves the curve at least this far at the reference stage. */
|
|
8
|
+
export declare const FOURIER_PAINT_FLOOR_PX = 0.5;
|
|
9
|
+
/**
|
|
10
|
+
* A minted spectrum: the DC anchor, the amplitude-ordered surviving terms, and the model
|
|
11
|
+
* geometry the fit and the ring law both read. Immutable and reference-stable — the
|
|
12
|
+
* renderer's re-upload guard is an identity check against this object.
|
|
13
|
+
*/
|
|
14
|
+
export interface MintedSpectrum {
|
|
15
|
+
/** The amplitude-ordered, paint-floored terms. `length` IS the N axis maximum. */
|
|
16
|
+
readonly terms: readonly BasisComponent[];
|
|
17
|
+
/** The hoisted DC term (the curve's centroid) — the anchor the scene is centred on. */
|
|
18
|
+
readonly dc: readonly [number, number];
|
|
19
|
+
/** The full reconstruction's bbox half-extents in model units (DC removed). */
|
|
20
|
+
readonly halfSpanX: number;
|
|
21
|
+
readonly halfSpanY: number;
|
|
22
|
+
/** The bbox centre in model units (DC removed) — the fit's centre. */
|
|
23
|
+
readonly centerX: number;
|
|
24
|
+
readonly centerY: number;
|
|
25
|
+
/** The bbox diagonal in model units — the reference-stage mapping's denominator. */
|
|
26
|
+
readonly diagonal: number;
|
|
27
|
+
/** `Σ|c_k|` over the terms — the chain's maximum reach from the centre. */
|
|
28
|
+
readonly chainReach: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Mint a raw spectrum into the shipped one. The input is anything `dftFromPoints`,
|
|
32
|
+
* `makeHarmonicFigure` or `makeEllipticSpectrum` produced; the output is what the GPU
|
|
33
|
+
* ever sees.
|
|
34
|
+
*
|
|
35
|
+
* Deterministic: the same input array yields the same output, term for term. An empty or
|
|
36
|
+
* all-sub-floor input still emits its single largest term — a spectrum that draws nothing
|
|
37
|
+
* is not a fallback, it is a blank stage, and the machine must always have one ring.
|
|
38
|
+
*/
|
|
39
|
+
export declare function mintSpectrum(raw: readonly BasisComponent[]): MintedSpectrum;
|
|
40
|
+
/**
|
|
41
|
+
* THE RING LAW. A ring is DRAWN iff its own diameter reaches the mark's stroke at the
|
|
42
|
+
* LIVE stage: `2·|c_k| ≥ markStroke`, both sides in device pixels. Below that rung the
|
|
43
|
+
* term is still SUMMED and still CHAINED — the scaffold arm and the joint dot stay — only
|
|
44
|
+
* the circle outline elides, because a circle narrower than the line drawing it is a blob,
|
|
45
|
+
* not a circle.
|
|
46
|
+
*
|
|
47
|
+
* This is why the machine reads at every size with ZERO media queries: the question is
|
|
48
|
+
* asked of the stage the component is actually in.
|
|
49
|
+
*/
|
|
50
|
+
export declare function ringsAt(minted: MintedSpectrum, stageDiagonalDevicePx: number, markStrokeDevicePx: number): number;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { type OklchStop } from "../../../composables/color/index.js";
|
|
2
|
+
import type { BasisComponent } from "../math.js";
|
|
3
|
+
import type { MintedSpectrum } from "./mint.js";
|
|
4
|
+
/** One phasor lane in the storage buffer: (re, im, index, _pad). */
|
|
5
|
+
export declare const FOURIER_PHASOR_BYTES = 16;
|
|
6
|
+
export interface FourierUniformScratch {
|
|
7
|
+
buffer: ArrayBuffer;
|
|
8
|
+
f32: Float32Array;
|
|
9
|
+
i32: Int32Array;
|
|
10
|
+
}
|
|
11
|
+
export declare function createFourierComputeScratch(): FourierUniformScratch;
|
|
12
|
+
export declare function packFourierComputeUniforms(scratch: FourierUniformScratch, headT: number, trailArc: number, harmonicN: number, sampleCount: number, termCount: number): FourierUniformScratch;
|
|
13
|
+
export declare function createFourierRenderScratch(): FourierUniformScratch;
|
|
14
|
+
/** The model→clip fit transform — computed once per spectrum, never per N edit. */
|
|
15
|
+
export interface FourierFit {
|
|
16
|
+
centerX: number;
|
|
17
|
+
centerY: number;
|
|
18
|
+
/** The uniform scale s mapping (model − center)·s into clip [-1,1] with margin. */
|
|
19
|
+
scale: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The view fit, read straight off the mint. It unions the curve's own bbox with the
|
|
23
|
+
* chain's reach when the machine shows, because a chain that leaves the stage is a
|
|
24
|
+
* machine you cannot check. It is FIXED under N: the mint is the only input, so an N edit
|
|
25
|
+
* never rescales the figure and the "N=1 is genuinely this big" claim stays true.
|
|
26
|
+
*/
|
|
27
|
+
export declare function computeFourierFit(minted: MintedSpectrum, showMachine: boolean): FourierFit;
|
|
28
|
+
/**
|
|
29
|
+
* Convert a CSS-px stroke to MODEL units. The fit maps model → clip; clip spans [-1,1]
|
|
30
|
+
* over the min CSS dimension, so cssPx-per-clip is `canvasCssMin/2`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function strokeToModel(strokePx: number, scale: number, canvasCssMin: number): number;
|
|
33
|
+
/**
|
|
34
|
+
* The resolved ramp: a linear-sRGB LUT plus the two derived pigments the paint law names.
|
|
35
|
+
* Rebuilt only when the palette itself changes.
|
|
36
|
+
*/
|
|
37
|
+
export interface FourierRamp {
|
|
38
|
+
/** `FOURIER_LUT_SIZE` linear-sRGB entries, index 0 the ramp head. */
|
|
39
|
+
readonly lut: Float32Array;
|
|
40
|
+
/** The ink: the ramp head one step DOWN in L, gamut-mapped at fixed L and hue. */
|
|
41
|
+
readonly ink: [number, number, number];
|
|
42
|
+
/** The head core: the ramp head lifted by half a step, chroma preserved. */
|
|
43
|
+
readonly head: [number, number, number];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Resolve a palette into the shipped ramp. Chroma is floored at every entry — a ramp that
|
|
47
|
+
* falls to grey paints a smear where the tail should still be pigment — and every entry
|
|
48
|
+
* is gamut-mapped, so an out-of-gamut author stop becomes a real colour rather than a
|
|
49
|
+
* clipped one.
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveFourierRamp(palette: readonly OklchStop[]): FourierRamp;
|
|
52
|
+
export interface FourierRenderPack {
|
|
53
|
+
fit: FourierFit;
|
|
54
|
+
aspect: number;
|
|
55
|
+
markHalfModel: number;
|
|
56
|
+
inkOffsetStrokes: number;
|
|
57
|
+
scaffoldFrac: number;
|
|
58
|
+
edgeMargin: number;
|
|
59
|
+
peakAlpha: number;
|
|
60
|
+
glow: number;
|
|
61
|
+
squash: number;
|
|
62
|
+
trailFadeExp: number;
|
|
63
|
+
trailFloor: number;
|
|
64
|
+
hueSweep: number;
|
|
65
|
+
ringStrokeModel: number;
|
|
66
|
+
showMachine: boolean;
|
|
67
|
+
rainbowChain: boolean;
|
|
68
|
+
sampleCount: number;
|
|
69
|
+
/** The number of chain arms this frame draws — the hue sweep's denominator. */
|
|
70
|
+
chainCount: number;
|
|
71
|
+
ramp: FourierRamp;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Pack the render uniforms in place. `peakAlpha` arrives already multiplied by the
|
|
75
|
+
* intensity envelope and CLAMPED here — the one place loudness can leave the legal range,
|
|
76
|
+
* closed at pack time so no fragment can composite past 1.
|
|
77
|
+
*/
|
|
78
|
+
export declare function packFourierRenderUniforms(scratch: FourierUniformScratch, p: FourierRenderPack): FourierUniformScratch;
|
|
79
|
+
/**
|
|
80
|
+
* Pack the phasor storage table (re, im, index, _pad) from the minted spectrum. The
|
|
81
|
+
* buffer is sized per-spectrum by the caller — there is no table ceiling, so a 61-term ℱ
|
|
82
|
+
* and a 2-term foil each pay for exactly what they carry.
|
|
83
|
+
*/
|
|
84
|
+
export declare function packPhasorTable(terms: readonly BasisComponent[]): Float32Array;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { WebGPUCanvasFrame } from "../../../composables/glass/webgpu/useWebGPUCanvas.js";
|
|
2
|
+
import type { WebGLCanvasFrame } from "../../../composables/glass/webgl/useWebGLCanvas.js";
|
|
3
|
+
import type { OklchStop } from "../../../composables/color/index.js";
|
|
4
|
+
import { type FourierFieldConfig } from "../constants.js";
|
|
5
|
+
import type { MintedSpectrum } from "./mint.js";
|
|
6
|
+
export interface FourierRendererDeps {
|
|
7
|
+
canvas: HTMLCanvasElement;
|
|
8
|
+
config: FourierFieldConfig;
|
|
9
|
+
/** The minted spectrum — re-read each frame; identity change triggers the re-upload. */
|
|
10
|
+
getSpectrum: () => MintedSpectrum;
|
|
11
|
+
/** The resolved palette stops, re-read each frame so a live edit reaches the ramp. */
|
|
12
|
+
getPalette: () => OklchStop[];
|
|
13
|
+
/** The single loop parameter `head_t ∈ [0,1)`. */
|
|
14
|
+
getHeadT: () => number;
|
|
15
|
+
/** Demand-gate (the renderer's quiescence layer). */
|
|
16
|
+
shouldContinue: () => boolean;
|
|
17
|
+
/** The per-frame hook — the clock advances here, inside the substrate's own frame. */
|
|
18
|
+
onFrame?: (timeSec: number) => void;
|
|
19
|
+
}
|
|
20
|
+
/** Build the fourier-field `setupWGPU(device, context, format)` callback. */
|
|
21
|
+
export declare function createFourierWGPUSetup(deps: FourierRendererDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
|
|
22
|
+
/**
|
|
23
|
+
* The WebGL2 seam, declared closed. The substrate picker requires a `setupGL`; this one
|
|
24
|
+
* acquires nothing and draws nothing — it throws the sentence above, which the picker
|
|
25
|
+
* surfaces as a renderer error. The result is exactly what the law asks for: no second
|
|
26
|
+
* renderer, zero canvas pixels, and a status a consumer can read and show.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createFourierUnsupportedSetup(): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const FOURIER_FIELD_COMPUTE_WGSL = "\nconst TAU: f32 = 6.283185307179586;\n\nstruct Phasor {\n // (re, im, index, _pad)\n data: vec4<f32>,\n};\n\nstruct ComputeUniforms {\n // c0: (headT, trailArc, _pad, _pad)\n c0: vec4<f32>,\n // ints: (harmonicN, sampleCount, termCount, _pad)\n ints: vec4<i32>,\n};\n\n@group(0) @binding(0) var<uniform> u: ComputeUniforms;\n@group(0) @binding(1) var<storage, read> phasors: array<Phasor>;\n// curveSamples[i] = (x, y, age, _pad) in MODEL space\n@group(0) @binding(2) var<storage, read_write> curveSamples: array<vec4<f32>>;\n// chainTips[k] = (x, y, _pad, _pad) in MODEL space\n@group(0) @binding(3) var<storage, read_write> chainTips: array<vec4<f32>>;\n\n// The truncated inverse DFT at parameter t over the first n terms \u2014 the transcription of\n// math.ts partialSumAt: c += vec2(re*cos - im*sin, re*sin + im*cos), angle = TAU*index*t.\nfn partialSumAt(t: f32, n: i32) -> vec2<f32> {\n var c = vec2<f32>(0.0, 0.0);\n let lim = min(n, i32(arrayLength(&phasors)));\n for (var i = 0; i < lim; i = i + 1) {\n let p = phasors[i].data;\n let angle = TAU * p.z * t;\n let cs = cos(angle);\n let sn = sin(angle);\n c = c + vec2<f32>(p.x * cs - p.y * sn, p.x * sn + p.y * cs);\n }\n return c;\n}\n\n@compute @workgroup_size(64)\nfn cs_main(@builtin(global_invocation_id) gid: vec3<u32>) {\n let i = i32(gid.x);\n let headT = u.c0.x;\n let trailArc = u.c0.y;\n let harmonicN = u.ints.x;\n let sampleCount = u.ints.y;\n\n // \u2500\u2500 The comet body \u2500\u2500\n if (i < sampleCount) {\n let denom = max(f32(sampleCount - 1), 1.0);\n let frac = f32(i) / denom; // 0 = head, 1 = tail\n let age = 1.0 - frac; // 1 = head, 0 = tail\n var t = headT - trailArc * frac;\n t = t - floor(t); // fract -> [0,1)\n let pt = partialSumAt(t, harmonicN);\n curveSamples[i] = vec4<f32>(pt.x, pt.y, age, 0.0);\n }\n\n // \u2500\u2500 The chain tips (k = 0..N). chainTips[0] is the origin. \u2500\u2500\n if (i <= harmonicN && i < i32(arrayLength(&chainTips))) {\n let tip = partialSumAt(headT, i);\n chainTips[i] = vec4<f32>(tip.x, tip.y, 0.0, 0.0);\n }\n}\n";
|