@mkbabb/glass-ui 5.0.0 → 6.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 +30 -27
- package/dist/DropdownMenuTrigger-BzQtd9lt.js +65 -0
- package/dist/{FadingScroll-BSRLqQCx.js → FadingScroll-C1ZWEjmG.js} +32 -25
- package/dist/{Input-DKf-XwUM.js → Input-B4WQ_CMc.js} +1 -1
- package/dist/{PagerDots-BP6jh7z4.js → PagerDots-BoTQ7g5l.js} +123 -95
- package/dist/{accent-tone-solve-CBw3L0cy.js → accent-tone-solve-Dii9ePhK.js} +1 -1
- package/dist/animated-digit.js +1 -1
- package/dist/aurora.js +324 -314
- package/dist/blob-config.d.ts +0 -4
- package/dist/blob-config.js +1 -1
- package/dist/blob.js +280 -261
- package/dist/{button-BXzhydVB.js → button-32mg6xA8.js} +63 -56
- package/dist/button.js +1 -1
- package/dist/canvas.js +1 -1
- package/dist/{CardAction-2uUvjMQK.js → card-16xmzIr3.js} +29 -11
- package/dist/card.js +1 -1
- package/dist/carousel.d.ts +1 -2
- package/dist/carousel.js +26 -95
- package/dist/chip.d.ts +0 -9
- package/dist/chip.js +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color-swatch.js +1 -0
- package/dist/color.js +87 -3
- package/dist/{CommandShortcut-fmdbsEJL.js → command-BjPjUU9z.js} +56 -51
- package/dist/command.js +1 -1
- package/dist/completion-seal.js +64 -55
- package/dist/components/_shared/ModalOverlay.vue.d.ts +5 -52
- package/dist/components/_shared/field-surfaces.css +1 -0
- package/dist/components/_shared/menuItemVariants.d.ts +2 -2
- package/dist/components/_shared/useMotionAxis.d.ts +2 -2
- package/dist/components/_shared/valueDomain.d.ts +6 -0
- package/dist/components/alert/index.d.ts +1 -1
- package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +1 -1
- package/dist/components/aurora/Aurora.vue.d.ts +7 -1
- package/dist/components/aurora/composables/runtime.d.ts +5 -3
- package/dist/components/aurora/composables/useAurora.d.ts +4 -2
- package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
- package/dist/components/badge/index.d.ts +2 -2
- package/dist/components/blob/Blob.vue.d.ts +11 -0
- package/dist/components/blob/composables/useMetaballRenderer.d.ts +2 -0
- package/dist/components/button/Button.vue.d.ts +4 -2
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/card/Card.vue.d.ts +4 -4
- package/dist/components/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/card/styles.css +1 -0
- package/dist/components/carousel/Carousel.vue.d.ts +2 -2
- package/dist/components/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/carousel/index.d.ts +0 -1
- package/dist/components/carousel/useCarousel.d.ts +2 -2
- package/dist/components/combobox/ComboboxList.vue.d.ts +1 -1
- package/dist/components/combobox/index.d.ts +1 -3
- package/dist/components/command/Command.vue.d.ts +1 -1
- package/dist/components/command/CommandDialog.vue.d.ts +9 -6
- package/dist/components/completion-seal/styles.css +1 -0
- package/dist/components/constellation/Constellation.vue.d.ts +6 -1
- package/dist/components/constellation/composables/useConstellation.d.ts +3 -16
- package/dist/components/constellation/constants.d.ts +6 -16
- package/dist/components/constellation/constellationField.d.ts +3 -5
- package/dist/components/constellation/constellationInteraction.d.ts +1 -1
- package/dist/components/constellation/constellationRender.d.ts +11 -21
- package/dist/components/constellation/constellationTypes.d.ts +12 -9
- package/dist/components/constellation/index.d.ts +1 -1
- package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -2
- package/dist/components/data-table/DataTable.vue.d.ts +14 -2
- package/dist/components/data-table/index.d.ts +1 -2
- package/dist/components/data-table/types.d.ts +26 -1
- package/dist/components/deck/constants.d.ts +0 -10
- package/dist/components/deck/index.d.ts +0 -1
- package/dist/components/dialog/DialogContent.vue.d.ts +7 -1
- package/dist/components/dialog/index.d.ts +0 -1
- package/dist/components/dock/DockControl.vue.d.ts +4 -4
- package/dist/components/dock/DockStack.vue.d.ts +2 -2
- package/dist/components/dock/GlassDock.vue.d.ts +1 -0
- package/dist/components/dock/composables/dockMorphContext.d.ts +2 -0
- package/dist/components/dock/composables/dockMorphMeasure.d.ts +11 -1
- package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
- package/dist/components/dock/composables/useDockOverflowFit.d.ts +3 -3
- package/dist/components/dock/composables/useDockPopover.d.ts +2 -0
- package/dist/components/dock/composables/useDockShellProps.d.ts +7 -0
- package/dist/components/dock/composables/useDockState.d.ts +2 -2
- package/dist/components/dock/constants.d.ts +0 -12
- package/dist/components/dock/index.d.ts +1 -0
- package/dist/components/dock/styles/adaptive-legibility.css +1 -0
- package/dist/components/dock/styles/controls/icon-button.css +1 -0
- package/dist/{styles/dock-controls → components/dock/styles/controls}/touch-floor.css +1 -1
- package/dist/components/dock/styles/controls.css +1 -0
- package/dist/{styles/dock → components/dock/styles}/density.css +1 -1
- package/dist/components/dock/styles/dock.css +1 -0
- package/dist/components/dock/styles/index.css +1 -0
- package/dist/components/dock/styles/layer-group.css +1 -0
- package/dist/components/dock/styles/layers.css +1 -0
- package/dist/components/dock/styles/overflow.css +1 -0
- package/dist/components/dock/styles/popover.css +1 -0
- package/dist/components/dock/styles/shape.css +1 -0
- package/dist/components/dock/styles/shell.css +1 -0
- package/dist/components/drawer/Drawer.vue.d.ts +3 -3
- package/dist/components/drawer/composables/drawerSnapContext.d.ts +3 -1
- package/dist/components/drawer/constants.d.ts +6 -6
- package/dist/components/drawer/index.d.ts +4 -6
- package/dist/components/drawer/styles.css +1 -0
- package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +1 -1
- package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +9 -3
- package/dist/components/dropdown-menu/index.d.ts +0 -1
- package/dist/components/easing/EasingConfigurator.vue.d.ts +1 -1
- package/dist/components/easing/EasingPicker.vue.d.ts +2 -2
- package/dist/components/easing/composables/useEasingPicker.d.ts +4 -0
- package/dist/components/easing/constants.d.ts +2 -0
- package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +3 -3
- package/dist/components/fourier-field/FourierField.vue.d.ts +7 -1
- package/dist/components/fourier-field/composables/useFourierField.d.ts +2 -1
- package/dist/components/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/handmark/geometry.d.ts +1 -1
- package/dist/components/handmark/index.d.ts +4 -6
- package/dist/components/icon-chip/styles.css +1 -0
- package/dist/components/index.d.ts +0 -1
- package/dist/components/infinite-scroll/index.d.ts +1 -0
- package/dist/components/instrument-chassis/styles.css +1 -0
- package/dist/components/labeled-field/LabeledField.vue.d.ts +12 -2
- package/dist/components/labeled-field/LabeledInput.vue.d.ts +10 -3
- package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +4 -0
- package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +2 -1
- package/dist/components/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/pager-dots/PagerDots.vue.d.ts +1 -1
- package/dist/components/popover/PopoverContent.vue.d.ts +1 -1
- package/dist/components/progress/Progress.vue.d.ts +5 -40
- package/dist/components/progress/ProgressDefault.vue.d.ts +1 -17
- package/dist/components/progress/ProgressGradient.vue.d.ts +1 -0
- package/dist/components/progress/ProgressLiquid.vue.d.ts +1 -0
- package/dist/components/progress/index.d.ts +0 -5
- package/dist/components/progress/valueMarks.css +1 -0
- package/dist/components/pulse/Pulse.vue.d.ts +2 -2
- package/dist/components/scroll-progress-rim/styles.css +1 -0
- package/dist/components/search/FuzzySearch.vue.d.ts +4 -2
- package/dist/components/search/SearchBar.vue.d.ts +2 -2
- package/dist/components/search/searchVariants.d.ts +1 -1
- package/dist/components/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/select/index.d.ts +0 -2
- package/dist/components/skeleton/Skeleton.vue.d.ts +1 -1
- package/dist/components/slider/Slider.vue.d.ts +2 -0
- package/dist/components/split-chars/SplitChars.vue.d.ts +1 -1
- package/dist/components/surface/Surface.vue.d.ts +1 -1
- package/dist/components/table/Table.vue.d.ts +4 -0
- package/dist/components/tabs/SegmentedTabs.vue.d.ts +10 -0
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/tabs/styles/drag.css +1 -0
- package/dist/components/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/timeline/ContinuousTimeline.vue.d.ts +1 -1
- package/dist/components/timeline/GlassTimeline.vue.d.ts +4 -4
- package/dist/components/toast/Toast.vue.d.ts +3 -3
- package/dist/components/toast/use-toast.d.ts +4 -4
- package/dist/components/typewriter/TypewriterText.vue.d.ts +1 -4
- package/dist/components/typewriter/composables/useTypewriter.d.ts +0 -1
- package/dist/components/typewriter/utils/graphemes.d.ts +1 -0
- package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +2 -2
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +31 -0
- package/dist/composables/glass/webgpu/rendererStatus.d.ts +13 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +3 -0
- package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +2 -0
- package/dist/composables/motion/springProjection.d.ts +16 -0
- package/dist/composables/motion/useAnimatedNumber.d.ts +1 -6
- package/dist/composables/motion/useCountup.d.ts +1 -6
- package/dist/composables/motion/useDockCtaReceive.d.ts +55 -0
- package/dist/composables/motion/useElementMorph.d.ts +8 -0
- package/dist/composables/motion/useLiquidPress.d.ts +12 -4
- package/dist/composables/motion/useNumericTransition.d.ts +2 -0
- package/dist/composables/motion/useTextHighlight.d.ts +2 -1
- package/dist/configurator-CSENXXSy.js +311 -0
- package/dist/configurator.js +2 -3
- package/dist/constellation.js +235 -571
- package/dist/controls.js +55 -63
- package/dist/{createCanvasLifecycle-DlrcvWbb.js → createCanvasLifecycle-hsFkQVdl.js} +32 -32
- package/dist/dark-DIH-blY1.js +70 -0
- package/dist/dark.d.ts +1 -2
- package/dist/dark.js +2 -20
- package/dist/{DataTable-Bxya8nBn.js → data-table-DveMdgBM.js} +231 -120
- package/dist/data-table.js +2 -2
- package/dist/deck.js +10 -21
- package/dist/dialog-BzQxKrUr.js +281 -0
- package/dist/dialog.js +2 -3
- package/dist/dock.js +561 -428
- package/dist/{dockContext-d-WpJN2Z.js → dockContext-4S9qP0Z4.js} +1 -1
- package/dist/dom.js +196 -7
- package/dist/drawer.js +111 -66
- package/dist/dropdown-menu-DORIA52F.js +378 -0
- package/dist/dropdown-menu.js +3 -2
- package/dist/easing.d.ts +0 -9
- package/dist/easing.js +334 -187
- package/dist/expandable-container.js +12 -4
- package/dist/fading-scroll.js +1 -1
- package/dist/focus-scope.js +1 -1
- package/dist/forms.js +37 -78
- package/dist/fourier-field.js +273 -263
- package/dist/fourier-math.d.ts +0 -6
- package/dist/fourier-math.js +112 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +131 -195
- package/dist/handmark.d.ts +0 -2
- package/dist/handmark.js +82 -82
- package/dist/header-ribbon.js +41 -30
- package/dist/{IconChip-CwLmBJ_K.js → icon-chip-BWuxz1-u.js} +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/{IconTooltip-D9sbK-Mk.js → icon-tooltip-CO6rw0dZ.js} +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/infinite-scroll.d.ts +0 -1
- package/dist/infinite-scroll.js +17 -15
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +104 -2
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +95 -69
- package/dist/liquid-grid.js +173 -162
- package/dist/metric-badge.js +3 -3
- package/dist/metric-cell.js +2 -2
- package/dist/metric-stack.js +1 -1
- package/dist/motion-core.js +15 -16
- package/dist/motion-curves.d.ts +0 -20
- package/dist/motion.js +59 -58
- package/dist/{Notification-DQv2cOh9.js → notification-DVs7ODMg.js} +17 -8
- package/dist/notification.js +1 -1
- package/dist/{NumberFieldContent-BkE7xPS9.js → number-field-PvkGedHk.js} +2 -2
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +1 -1
- package/dist/paper-backdrop.js +31 -2
- package/dist/{PopoverContent-DOtszFWK.js → popover-WMgyRSyN.js} +7 -2
- package/dist/popover.js +1 -1
- package/dist/procedural-color.wgsl-B9mLK7v0.js +377 -0
- package/dist/progress-C-HHuFZy.js +192 -0
- package/dist/progress.js +2 -2
- package/dist/pulse.js +3 -1
- package/dist/reactive.js +19 -3
- package/dist/rendererStatus-C2-zC2Q-.js +40 -0
- package/dist/{resolveCanvasColor-B3L-akX0.js → resolveCanvasColor-yarP5bdk.js} +1 -1
- package/dist/scroll-progress-rim.js +1 -1
- package/dist/search.js +187 -146
- package/dist/{SelectScrollDownButton-CDtwaWkZ.js → select-BIv4R3Ir.js} +109 -44
- package/dist/select.js +2 -4
- package/dist/separator-CBU94kTM.js +62 -0
- package/dist/separator.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/slider-Cc_qw6GA.js +166 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +43 -43
- package/dist/styles/accessibility.css +1 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/glass/control-surfaces.css +1 -1
- package/dist/styles/glass/glass-capsule.css +1 -1
- package/dist/styles/glass/ladder.css +1 -1
- package/dist/styles/glass/liquid-fill.css +1 -1
- package/dist/styles/glass/material-roles.css +1 -0
- package/dist/styles/glass/material.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.css +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/theme/bridges.css +1 -1
- package/dist/styles/tokens/glass-fx.css +1 -1
- package/dist/styles/tokens/glass.css +1 -1
- package/dist/styles/tokens/offsets.css +1 -1
- package/dist/styles/tokens/scale-paper.css +1 -1
- package/dist/styles/tokens/scheme-spring.css +1 -1
- package/dist/styles/tokens/shadow.css +1 -1
- package/dist/styles/tokens.d.ts +53 -0
- package/dist/styles/tokens.ts +58 -0
- 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/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.css +1 -1
- package/dist/{Switch-BPBfhMU3.js → switch-Boj4Ucn5.js} +1 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +51 -45
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/{ToggleGroupItem-DNWx2aSW.js → toggle-group-BPchFsns.js} +10 -7
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -53
- package/dist/tokens.js +1 -1
- package/dist/{TooltipProvider-GtfYdSVf.js → tooltip-BmOQJzh0.js} +1 -0
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +151 -166
- package/dist/{useAccentTone-D25DxviG.js → useAccentTone-C-p6WdPe.js} +1 -1
- package/dist/{useAnimatedNumber-2XC4aRB6.js → useAnimatedNumber-BRVVaFFc.js} +1 -1
- package/dist/useDockCtaReceive-CK-RLASa.js +257 -0
- package/dist/{useGooMorph-CU1pwuC6.js → useGooMorph-D1F6QJlH.js} +140 -59
- package/dist/{useIntersectionPause-Cmt5Tnv9.js → useIntersectionPause-B-dbxl9w.js} +1 -1
- package/dist/useLiquidPress-BYcwwGQV.js +68 -0
- package/dist/{useRAFLoop-CvOo_kgb.js → useRAFLoop-BtwQ9DyY.js} +1 -1
- package/dist/{useScrollProgress-C-yImzhU.js → useScrollProgress-DZI4nf4v.js} +1 -1
- package/dist/{useSelectionGroup-Btpf24aY.js → useSelectionGroup-LDzBdR1Y.js} +3 -3
- package/dist/{useTabRovingFocus-CG1H1k1J.js → useTabRovingFocus-DkLYwo4L.js} +1 -1
- package/dist/{useTouchGate-BlegwvwL.js → useTouchGate-Cj5fOkTv.js} +1 -1
- package/dist/valueDomain-B8L04u3U.js +13 -0
- package/dist/watercolor-dot.js +5 -3
- package/package.json +5 -12
- package/src/styles/accessibility.css +48 -0
- package/src/styles/glass/glass-capsule.css +2 -2
- package/src/styles/glass/ladder.css +1 -1
- package/src/styles/glass/material-roles.css +18 -0
- package/src/styles/glass/material.css +18 -12
- package/src/styles/glass.css +5 -5
- package/src/styles/index.css +38 -30
- package/src/styles/theme/bridges.css +0 -6
- package/src/styles/tokens/glass-fx.css +1 -5
- package/src/styles/tokens/glass.css +1 -2
- package/src/styles/tokens/offsets.css +0 -1
- package/src/styles/tokens/property-regs.css +11 -10
- package/src/styles/tokens/scale-paper.css +0 -1
- package/src/styles/tokens/scheme-motion.css +3 -0
- package/src/styles/tokens/scheme-spring.css +0 -10
- package/src/styles/tokens/shadow.css +3 -29
- package/src/styles/tokens.ts +58 -0
- package/src/styles/typography/scale.css +5 -2
- package/src/styles/typography/semantic.css +5 -5
- package/src/styles/typography/utilities.css +5 -5
- package/src/styles/utilities/base.css +5 -5
- package/src/styles/utilities/btn.css +6 -27
- package/src/styles/utilities.css +4 -6
- package/dist/ConfiguratorRow-BV6zPjTM.js +0 -151
- package/dist/DialogContent-Bl4v10AC.js +0 -192
- package/dist/DialogFooter-C0v4Hz2F.js +0 -168
- package/dist/PaperBackdrop-BYwE8_kg.js +0 -31
- package/dist/Progress-uWLyXE7J.js +0 -308
- package/dist/SelectGroup-BuEptUsa.js +0 -31
- package/dist/SelectSeparator-4QGephvr.js +0 -49
- package/dist/Separator-DqJ6PfOd.js +0 -44
- package/dist/color-Bp5jmv4Z.js +0 -86
- package/dist/components/carousel/GlassCarouselPager.vue.d.ts +0 -50
- package/dist/components/combobox/ComboboxSeparator.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxViewport.vue.d.ts +0 -18
- package/dist/components/constellation/composables/constellationGLSetup.d.ts +0 -10
- package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +0 -19
- package/dist/components/constellation/composables/uniformBridgeWGPU.d.ts +0 -66
- package/dist/components/constellation/shaders/constellation-lines.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-lines.wgsl.d.ts +0 -1
- package/dist/components/constellation/shaders/constellation-points.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-points.wgsl.d.ts +0 -1
- package/dist/components/deck/composables/useDeckSpring.d.ts +0 -22
- package/dist/components/dialog/DialogScrollContent.vue.d.ts +0 -33
- package/dist/components/progress/ProgressSectioned.vue.d.ts +0 -47
- package/dist/components/progress/useProgressGeometry.d.ts +0 -60
- package/dist/components/section/Section.vue.d.ts +0 -73
- package/dist/components/section/index.d.ts +0 -1
- package/dist/components/stacked-icons/StackedIconGroup.vue.d.ts +0 -30
- package/dist/components/stacked-icons/index.d.ts +0 -2
- package/dist/components/stacked-icons/types.d.ts +0 -19
- package/dist/dropdown-menu-DaGlVdp9.js +0 -421
- package/dist/math-CIEcwsYi.js +0 -112
- package/dist/procedural-color.wgsl-ByduxnzV.js +0 -4
- package/dist/slider-Cxuj_W_H.js +0 -151
- package/dist/stacked-icons.d.ts +0 -1
- package/dist/stacked-icons.js +0 -98
- package/dist/styles/cards.css +0 -1
- package/dist/styles/completion-seal.css +0 -1
- package/dist/styles/dock/adaptive-legibility.css +0 -1
- package/dist/styles/dock/dock.css +0 -1
- package/dist/styles/dock/layer-group.css +0 -1
- package/dist/styles/dock/layers.css +0 -1
- package/dist/styles/dock/overflow.css +0 -1
- package/dist/styles/dock/popover.css +0 -1
- package/dist/styles/dock/shape.css +0 -1
- package/dist/styles/dock/shell.css +0 -1
- package/dist/styles/dock-controls/icon-button.css +0 -1
- package/dist/styles/dock-controls.css +0 -1
- package/dist/styles/dock.css +0 -1
- package/dist/styles/drawer.css +0 -1
- package/dist/styles/icon-chip.css +0 -1
- package/dist/styles/instrument-chassis.css +0 -1
- package/dist/styles/scroll-progress-rim.css +0 -1
- package/dist/styles/select.css +0 -1
- package/dist/styles/tabs/segmented-tabs-drag.css +0 -1
- package/dist/styles/utilities/animate.css +0 -0
- package/dist/useConfiguratorState-Dq35N_7t.js +0 -167
- package/dist/useDockCtaReceive-BgMmeINo.js +0 -161
- package/dist/useGlobalDark-DjKMEQE2.js +0 -53
- package/dist/useGpuSubstrate-DcY584kE.js +0 -347
- package/dist/useInterval-ZATRi-1T.js +0 -18
- package/dist/useKeyboardShortcuts-ynVmNFo3.js +0 -104
- package/dist/useLiquidPress-BXNHydZh.js +0 -40
- package/dist/useTextHighlight-C46Le9u_.js +0 -72
- package/dist/useViewportReady-c0isoKL8.js +0 -191
- package/src/styles/card-scroll.css +0 -189
- package/src/styles/cards.css +0 -485
- package/src/styles/completion-seal.css +0 -205
- package/src/styles/configurator.css +0 -359
- package/src/styles/dialog-placement.css +0 -68
- package/src/styles/dock/adaptive-legibility.css +0 -119
- package/src/styles/dock/crossfade.css +0 -139
- package/src/styles/dock/cta-seat.css +0 -87
- package/src/styles/dock/density.css +0 -458
- package/src/styles/dock/dock.css +0 -199
- package/src/styles/dock/fisheye.css +0 -81
- package/src/styles/dock/layer-group.css +0 -329
- package/src/styles/dock/layers.css +0 -438
- package/src/styles/dock/morph.css +0 -455
- package/src/styles/dock/overflow.css +0 -332
- package/src/styles/dock/popover.css +0 -249
- package/src/styles/dock/search.css +0 -68
- package/src/styles/dock/section.css +0 -59
- package/src/styles/dock/shape.css +0 -188
- package/src/styles/dock/shell-regions.css +0 -73
- package/src/styles/dock/shell.css +0 -500
- package/src/styles/dock-controls/dark-mode-toggle.css +0 -123
- package/src/styles/dock-controls/icon-button.css +0 -221
- package/src/styles/dock-controls/tab-button.css +0 -143
- package/src/styles/dock-controls/touch-floor.css +0 -119
- package/src/styles/dock-controls/triggers.css +0 -157
- package/src/styles/dock-controls.css +0 -92
- package/src/styles/dock.css +0 -219
- package/src/styles/drawer.css +0 -434
- package/src/styles/feedback-tone.css +0 -104
- package/src/styles/icon-chip.css +0 -256
- package/src/styles/instrument-chassis.css +0 -449
- package/src/styles/menu.css +0 -187
- package/src/styles/scroll-progress-rim.css +0 -87
- package/src/styles/segmented-tabs.css +0 -424
- package/src/styles/select.css +0 -201
- package/src/styles/tabs/segmented-tabs-drag.css +0 -200
- package/src/styles/utilities/animate.css +0 -29
- /package/dist/{coalesce-metric-B8o7zT9u.js → coalesce-metric-znAcLzkB.js} +0 -0
- /package/dist/{CollapsibleContent-DiHcB_HH.js → collapsible-bPzS1aQk.js} +0 -0
- /package/dist/{compile-C55K3P9g.js → compile-DK3Fri1B.js} +0 -0
- /package/dist/{styles → components/_shared}/feedback-tone.css +0 -0
- /package/dist/{styles → components/_shared}/menu.css +0 -0
- /package/dist/{styles → components/card}/card-scroll.css +0 -0
- /package/dist/{styles/configurator.css → components/configurator/styles.css} +0 -0
- /package/dist/{styles/dock-controls → components/controls}/dark-mode-toggle.css +0 -0
- /package/dist/{styles/dialog-placement.css → components/dialog/placement.css} +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/tab-button.css +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/triggers.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/crossfade.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/cta-seat.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/fisheye.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/morph.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/search.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/section.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/shell-regions.css +0 -0
- /package/dist/{styles/segmented-tabs.css → components/tabs/styles/segmented.css} +0 -0
- /package/dist/{constants-D8lSMkOz.js → constants-DRZmNIY-.js} +0 -0
- /package/dist/{createContext-BQ1Gy_LB.js → createContext-FU0n5MGK.js} +0 -0
- /package/dist/{flow.glsl-CVqPSj8_.js → flow.glsl-DEGFGE11.js} +0 -0
- /package/dist/{FocusScope-BzKwhsBn.js → focus-scope-DUTKveod.js} +0 -0
- /package/dist/{InstrumentChassis-Dss5Tjcm.js → instrument-chassis-Cvstg4_U.js} +0 -0
- /package/dist/{Label-C84TaQiw.js → label-Cj38tJKG.js} +0 -0
- /package/dist/{menuItemVariants-DbO-Fr74.js → menuItemVariants-D6AOzzND.js} +0 -0
- /package/dist/{pointerFieldMappings-4VtmkOWv.js → pointerFieldMappings-CZojkgKj.js} +0 -0
- /package/dist/{presets-B07HzyKd.js → presets-CxeNvxuO.js} +0 -0
- /package/dist/{prng-B0PLRmR6.js → prng-Dz2_9RJu.js} +0 -0
- /package/dist/{scrollReader-DzYqPQ6V.js → scrollReader-C2oK9Hb8.js} +0 -0
- /package/dist/{supportsCssTimeline-Ie4xJFbD.js → supportsCssTimeline-Dz-GVxXM.js} +0 -0
- /package/dist/{Toaster-C_-WeU9W.js → toast-kAbchIN2.js} +0 -0
- /package/dist/{useControlSize-DJwe-7ZQ.js → useControlSize-CFfOk8I-.js} +0 -0
- /package/dist/{useDocumentVisibility-CpJGUgcJ.js → useDocumentVisibility-YeBDGqtI.js} +0 -0
- /package/dist/{useDragMorph-65ihHePq.js → useDragMorph-7ygF9O0m.js} +0 -0
- /package/dist/{useDragVelocity-BWcNMCux.js → useDragVelocity-CbMZEBaC.js} +0 -0
- /package/dist/{useFuzzySearch-KslRxiJY.js → useFuzzySearch-BOgep7RE.js} +0 -0
- /package/dist/{useLeadTrail-DOH4XkL1.js → useLeadTrail-BYu8dq4G.js} +0 -0
- /package/dist/{usePointerVelocityField-CwXyeW0Z.js → usePointerVelocityField-BdvnO0py.js} +0 -0
- /package/dist/{useResizeObserver-DDuoBeBo.js → useResizeObserver-BcUTquV7.js} +0 -0
- /package/dist/{useResolveTokenColor-DVT5kwv6.js → useResolveTokenColor-C07e-qaT.js} +0 -0
- /package/dist/{useRoutePointer-DL7I0gY4.js → useRoutePointer-BDNMFN73.js} +0 -0
- /package/dist/{useSpringMount-CNvvgGiC.js → useSpringMount-C6-DBx4e.js} +0 -0
- /package/dist/{useTimer-CkDV8SC2.js → useTimer-D8koDvJS.js} +0 -0
- /package/dist/{useUserInvalidAria-Bkruei7M.js → useUserInvalidAria-Cr4nR3tu.js} +0 -0
- /package/dist/{vReveal-DUmiEkX_.js → vReveal-DZfWl9XI.js} +0 -0
- /package/dist/{vSpecular-DlYN0UZy.js → vSpecular-CQFmLNzA.js} +0 -0
- /package/dist/{writeVelocityWeight-D1rvdxJu.js → writeVelocityWeight-D_AcvTsE.js} +0 -0
|
@@ -49,8 +49,8 @@ export interface AnimatedDigitProps {
|
|
|
49
49
|
class?: HTMLAttributes["class"];
|
|
50
50
|
}
|
|
51
51
|
declare const __VLS_export: import("vue").DefineComponent<AnimatedDigitProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AnimatedDigitProps> & Readonly<{}>, {
|
|
52
|
-
mode: AnimatedDigitMode;
|
|
53
52
|
placeholder: string;
|
|
53
|
+
mode: AnimatedDigitMode;
|
|
54
54
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
55
55
|
declare const _default: typeof __VLS_export;
|
|
56
56
|
export default _default;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AuroraRuntimeOptions } from "./composables/runtime";
|
|
2
2
|
import { type AuroraConfig } from "./constants/presets";
|
|
3
3
|
import { type AuroraRenderMode } from "./constants/renderMode";
|
|
4
|
+
import type { RendererStatus } from "../../composables/glass/webgpu/rendererStatus";
|
|
4
5
|
/**
|
|
5
6
|
* Aurora — a painterly WebGL2 background.
|
|
6
7
|
*
|
|
@@ -95,7 +96,12 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
95
96
|
pause: () => void;
|
|
96
97
|
resume: () => void;
|
|
97
98
|
isArmed: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
98
|
-
|
|
99
|
+
rendererStatus: Readonly<import("vue").Ref<RendererStatus, RendererStatus>>;
|
|
100
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
101
|
+
rendererStatus: (status: RendererStatus) => any;
|
|
102
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
103
|
+
onRendererStatus?: ((status: RendererStatus) => any) | undefined;
|
|
104
|
+
}>, {
|
|
99
105
|
config: AuroraConfig;
|
|
100
106
|
renderMode: AuroraRenderMode;
|
|
101
107
|
opacityCeiling: number;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
* Y-origin convention: config authoring is CSS-top-origin (0 = top). The seams
|
|
22
22
|
* flip Y at the uniform boundary (`flipY` in uniformBridge/frameLoop).
|
|
23
23
|
*/
|
|
24
|
+
import { type RendererStatus } from "../../../composables/glass/webgpu/useGpuSubstrate";
|
|
24
25
|
import type { AuroraConfig, AuroraInstance } from "../constants/presets";
|
|
25
26
|
export type AuroraRuntimeMode = "live" | "capture";
|
|
26
27
|
/**
|
|
@@ -65,9 +66,9 @@ export interface AuroraRuntimeOptions {
|
|
|
65
66
|
* the signal reaches the consumer's error boundary / dev console. On the
|
|
66
67
|
* DEFERRED path the failure happens on an idle tick — outside any mount-time
|
|
67
68
|
* boundary — so the runtime routes it here, and `useAurora` re-surfaces it on
|
|
68
|
-
* the microtask queue (so it still reaches the dev console
|
|
69
|
-
* `
|
|
70
|
-
* callback
|
|
69
|
+
* the microtask queue (so it still reaches the dev console) when no handler
|
|
70
|
+
* is supplied. `Aurora.vue` adapts its Vue `app.config.errorHandler` into
|
|
71
|
+
* this callback; direct composable consumers provide their own handler.
|
|
71
72
|
*
|
|
72
73
|
* NOTE: this is the `useAurora` Vue-wrapper contract surface. The imperative
|
|
73
74
|
* `createAurora(...)` runtime throws on eager init failure and — for
|
|
@@ -82,6 +83,7 @@ export interface AuroraRuntimeOptions {
|
|
|
82
83
|
* GENUINE violations (a malformed shader, an OOM, a real link failure).
|
|
83
84
|
*/
|
|
84
85
|
onInitError?: (err: Error) => void;
|
|
86
|
+
onRendererStatus?: (status: RendererStatus) => void;
|
|
85
87
|
/**
|
|
86
88
|
* BB.W-AURORA-SWRASTER — opt OUT of the runtime software-raster wedge catch.
|
|
87
89
|
* Default `false`: the wedge catch is the safe default — `createAurora`
|
|
@@ -2,6 +2,7 @@ import { type Ref } from "vue";
|
|
|
2
2
|
import { type AuroraRuntimeOptions } from "./runtime";
|
|
3
3
|
import { type ConfigSource } from "./configSource";
|
|
4
4
|
import type { AuroraConfig } from "../constants/presets";
|
|
5
|
+
import { type RendererStatus } from "../../../composables/glass/webgpu/rendererStatus";
|
|
5
6
|
/**
|
|
6
7
|
* Adaptive-substrate options threaded down from `Aurora.vue` (AM.W1). The
|
|
7
8
|
* render mode is the RESOLVED concrete substrate (`"auto"` already collapsed
|
|
@@ -44,6 +45,7 @@ export interface UseAuroraReturn {
|
|
|
44
45
|
* it flip on the post-first-paint idle tick.
|
|
45
46
|
*/
|
|
46
47
|
isArmed: Readonly<Ref<boolean>>;
|
|
48
|
+
rendererStatus: Readonly<Ref<RendererStatus>>;
|
|
47
49
|
}
|
|
48
50
|
/**
|
|
49
51
|
* Vue-side wrapper for the imperative `createAurora` runtime.
|
|
@@ -71,8 +73,8 @@ export interface UseAuroraReturn {
|
|
|
71
73
|
* of three paths:
|
|
72
74
|
* 1. pass an `onInitError(err)` handler in `runtimeOptions` (the explicit
|
|
73
75
|
* opt-in — receives the error directly), OR
|
|
74
|
-
* 2. install a Vue global `app.config.errorHandler`
|
|
75
|
-
*
|
|
76
|
+
* 2. when using `Aurora.vue`, install a Vue global `app.config.errorHandler`
|
|
77
|
+
* (the component adapts it into `onInitError`), OR
|
|
76
78
|
* 3. knowingly accept the unhandled rejection (the dev console still gets it).
|
|
77
79
|
* Armed deferred with NO `onInitError`, `useAurora` dev-warns ONCE so the
|
|
78
80
|
* silent-by-omission case is visible. WebGL2-unavailable still throws HARD.
|
|
@@ -3,6 +3,8 @@ import { type AvatarImageProps } from 'reka-ui';
|
|
|
3
3
|
type __VLS_Props = AvatarImageProps & {
|
|
4
4
|
alt?: ImgHTMLAttributes['alt'];
|
|
5
5
|
};
|
|
6
|
-
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
7
|
+
alt: string;
|
|
8
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
9
|
declare const _default: typeof __VLS_export;
|
|
8
10
|
export default _default;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type VariantProps } from 'class-variance-authority';
|
|
2
2
|
export { default as Badge } from './Badge.vue';
|
|
3
3
|
export declare const badgeVariants: (props?: ({
|
|
4
|
-
variant?: "default" | "
|
|
5
|
-
tone?: "neutral" | "
|
|
4
|
+
variant?: "default" | "secondary" | "outline" | null | undefined;
|
|
5
|
+
tone?: "neutral" | "destructive" | "success" | "warning" | "info" | null | undefined;
|
|
6
6
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
7
|
surface?: "glass" | "loud" | null | undefined;
|
|
8
8
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -49,6 +49,14 @@ type __VLS_Props = {
|
|
|
49
49
|
* renderer seam (no parallel pause path); the prop owns the default.
|
|
50
50
|
*/
|
|
51
51
|
paused?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Accessible name for the optional press surface. Omit it for a decorative,
|
|
54
|
+
* listener-free Blob; provide it to render a native button that owns pointer,
|
|
55
|
+
* touch, Enter, and Space activation.
|
|
56
|
+
*/
|
|
57
|
+
pressLabel?: string;
|
|
58
|
+
/** Disables the optional press surface and pointer response. */
|
|
59
|
+
disabled?: boolean;
|
|
52
60
|
};
|
|
53
61
|
declare function nudge(): void;
|
|
54
62
|
declare function setMood(m: BlobMood): void;
|
|
@@ -61,11 +69,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
61
69
|
pause: () => void;
|
|
62
70
|
resume: () => void;
|
|
63
71
|
settled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
72
|
+
rendererStatus: Readonly<import("vue").Ref<import("../../composables/glass/webgpu/rendererStatus").RendererStatus, import("../../composables/glass/webgpu/rendererStatus").RendererStatus>>;
|
|
64
73
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
65
74
|
click: () => any;
|
|
75
|
+
rendererStatus: (status: import("../../composables/glass/webgpu/rendererStatus").RendererStatus) => any;
|
|
66
76
|
"update:paused": (value: boolean) => any;
|
|
67
77
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
68
78
|
onClick?: (() => any) | undefined;
|
|
79
|
+
onRendererStatus?: ((status: import("../../composables/glass/webgpu/rendererStatus").RendererStatus) => any) | undefined;
|
|
69
80
|
"onUpdate:paused"?: ((value: boolean) => any) | undefined;
|
|
70
81
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
71
82
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
+
import { type RendererStatus } from "../../../composables/glass/webgpu/useGpuSubstrate";
|
|
2
3
|
import type { BlobConfig } from "../types";
|
|
3
4
|
import type { BlobMoodSystem } from "./useBlobMood";
|
|
4
5
|
import type { BlobPointer } from "./useBlobPointer";
|
|
@@ -69,6 +70,7 @@ export interface UseMetaballRendererReturn {
|
|
|
69
70
|
* consumer observes it, never writes it.
|
|
70
71
|
*/
|
|
71
72
|
settled: Readonly<Ref<boolean>>;
|
|
73
|
+
readonly rendererStatus: Readonly<Ref<RendererStatus>>;
|
|
72
74
|
}
|
|
73
75
|
/**
|
|
74
76
|
* The GooBlob renderer — composes the `createGpuSubstrate` picker (BB.W-VIZ-SUITE /
|
|
@@ -13,10 +13,12 @@ interface Props extends PrimitiveProps {
|
|
|
13
13
|
punch?: boolean;
|
|
14
14
|
type?: ButtonHTMLAttributes['type'];
|
|
15
15
|
disabled?: ButtonHTMLAttributes['disabled'];
|
|
16
|
+
/** Marks an in-flight command and disables native activation until it settles. */
|
|
17
|
+
loading?: boolean;
|
|
16
18
|
}
|
|
17
|
-
declare var
|
|
19
|
+
declare var __VLS_17: {};
|
|
18
20
|
type __VLS_Slots = {} & {
|
|
19
|
-
default?: (props: typeof
|
|
21
|
+
default?: (props: typeof __VLS_17) => any;
|
|
20
22
|
};
|
|
21
23
|
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
22
24
|
as: import("reka-ui").AsTag | import("vue").Component;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type VariantProps } from 'class-variance-authority';
|
|
2
2
|
export { default as Button } from './Button.vue';
|
|
3
3
|
export declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "
|
|
5
|
-
size?: "
|
|
4
|
+
variant?: "link" | "default" | "glass" | "accent" | "secondary" | "outline" | "primary-audacious" | "gold-audacious" | "ghost" | "glass-wash" | "ai" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "lg" | "xs" | null | undefined;
|
|
6
6
|
iconOnly?: boolean | null | undefined;
|
|
7
7
|
tone?: "neutral" | "destructive" | null | undefined;
|
|
8
8
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -155,15 +155,15 @@ interface Props extends PrimitiveProps {
|
|
|
155
155
|
dataHueStrength?: string;
|
|
156
156
|
class?: HTMLAttributes["class"];
|
|
157
157
|
}
|
|
158
|
-
declare var
|
|
158
|
+
declare var __VLS_17: {};
|
|
159
159
|
type __VLS_Slots = {} & {
|
|
160
|
-
default?: (props: typeof
|
|
160
|
+
default?: (props: typeof __VLS_17) => any;
|
|
161
161
|
};
|
|
162
162
|
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
163
163
|
shadow: boolean;
|
|
164
|
-
grid: boolean;
|
|
165
|
-
surface: CardSurface;
|
|
166
164
|
as: import("reka-ui").AsTag | import("vue").Component;
|
|
165
|
+
surface: CardSurface;
|
|
166
|
+
grid: boolean;
|
|
167
167
|
deep: boolean;
|
|
168
168
|
tier: CardTier;
|
|
169
169
|
grain: boolean;
|
|
@@ -19,8 +19,8 @@ declare const _default: typeof __VLS_export;
|
|
|
19
19
|
export default _default;
|
|
20
20
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ScrollCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ScrollCardProps> & Readonly<{}>, {
|
|
21
21
|
shadow: boolean;
|
|
22
|
-
maxHeight: string;
|
|
23
22
|
surface: CardSurface;
|
|
23
|
+
maxHeight: string;
|
|
24
24
|
tier: CardTier;
|
|
25
25
|
specular: CardSpecular;
|
|
26
26
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer components { [data-slot="card"]:where([data-surface="glass"], [data-surface="cartoon"]) { --glass-tint-strength: 8%; --glass-border-rung: color-mix(in srgb, var(--foreground) 9%, transparent); } [data-slot="card"][data-surface="glass"]:not(.paper-grid) { background-blend-mode: var(--card-field-floor-blend, screen, normal); } @media (prefers-contrast: more) { [data-slot="card"][data-surface="glass"]:not(.paper-grid) { background-blend-mode: normal; } } [data-slot="card"][data-surface="glass"]:not(.paper-grid) { background-image: var( --card-field-floor-image, radial-gradient( 60% 55% at 80% 16%, oklch(0.96 0.04 78 / 0.5), oklch(0.96 0.04 78 / 0) 72% ), radial-gradient( 120% 110% at 78% 22%, oklch(0.9 0.075 72 / 0.5), oklch(0.9 0.075 72 / 0) 70% ) ); } :where([data-paper-field]) [data-slot="card"][data-surface="glass"]:not(.paper-grid) { background-image: none; } .paper-texture { background-image: var(--paper-grain-tooth); background-repeat: repeat; background-size: var(--paper-grain-tile); background-blend-mode: multiply; } :where(.dark) .paper-texture { background-blend-mode: screen; } .paper-grid { background-image: var(--paper-grid-texture); background-repeat: repeat; background-size: calc(var(--paper-grid-texture-size) * 4) calc(var(--paper-grid-texture-size) * 4), calc(var(--paper-grid-texture-size) * 4) calc(var(--paper-grid-texture-size) * 4), var(--paper-grid-texture-size) var(--paper-grid-texture-size), var(--paper-grid-texture-size) var(--paper-grid-texture-size); background-blend-mode: multiply; } :where(.dark) .paper-grid, .dark .paper-grid { background-blend-mode: screen; } } @media (prefers-reduced-transparency: reduce) { .paper-grid { background-image: none; } } @media (prefers-reduced-motion: reduce) { .paper-grid { animation: none !important; } } [data-variant="selection"] { --selection-accent-strength: 16%; --selection-accent-strength-selected: 28%; --glass-accent-strength: var(--selection-accent-strength); } [data-variant="selection"][data-selected="true"] { --glass-accent-strength: var(--selection-accent-strength-selected); --glass-bg-resting: var(--glass-bg-floating, var(--glass-bg-resting)); } @utility cartoon-surface { border-width: 2px; box-shadow: var(--shadow-cartoon-md); translate: 0; position: relative; --motion-weight: 1; --cartoon-press-t: var(--card-press-t, 0); transition: translate var(--duration-normal) var(--ease-cartoon-punch), scale var(--duration-normal) var(--ease-cartoon-punch), box-shadow var(--duration-normal) var(--ease-standard); &:hover:not(:active):not(:disabled) { translate: var(--lift-sm) var(--lift-sm); scale: 1.015 0.985; box-shadow: var(--shadow-cartoon-lg); & .cartoon-cast { box-shadow: var(--shadow-cartoon-lg); } } &:active:not(:disabled):not([data-press-armed]) { scale: 1.04 0.94; } } .cartoon-cast { position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none; box-shadow: var(--shadow-cartoon-md); --cast-travel: calc(6px * var(--motion-weight) * var(--cartoon-press-t)); --cast-spread: calc(1 + 0.18 * var(--motion-weight) * var(--cartoon-press-t)); translate: calc(-1 * var(--cast-travel) + var(--cartoon-cast-dx)) calc(var(--cast-travel) + var(--cartoon-cast-dy)); scale: var(--cast-spread); transition: translate calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch), scale calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch), --cartoon-cast-dx var(--duration-normal) var(--ease-cartoon-punch), --cartoon-cast-dy var(--duration-normal) var(--ease-cartoon-punch); will-change: translate, scale; } .btn-punch .cartoon-cast { box-shadow: var(--shadow-lg); } @media (prefers-reduced-motion: reduce) { .cartoon-surface, .cartoon-cast { --motion-weight: 0; transition: none; } } @utility veil-surface { --veil-bg: color-mix( in oklab, var(--glass-bg-quiet), var(--glass-tint-source) var(--glass-tint-strength) ); --veil-blur: var(--glass-blur-quiet); --veil-border: none; --veil-shadow: none; --veil-feather: none; background: var(--veil-bg); -webkit-backdrop-filter: var(--veil-blur); backdrop-filter: var(--veil-blur); border: var(--veil-border); box-shadow: var(--veil-shadow); mask-image: var(--veil-feather); }
|
|
@@ -9,7 +9,7 @@ declare var __VLS_1: {
|
|
|
9
9
|
canScrollPrev: boolean;
|
|
10
10
|
carouselApi: import("embla-carousel").EmblaCarouselType | undefined;
|
|
11
11
|
carouselRef: HTMLElement | undefined;
|
|
12
|
-
orientation: "
|
|
12
|
+
orientation: "vertical" | "horizontal" | undefined;
|
|
13
13
|
scrollNext: () => void;
|
|
14
14
|
scrollPrev: () => void;
|
|
15
15
|
};
|
|
@@ -21,7 +21,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
|
21
21
|
canScrollPrev: import("vue").Ref<boolean, boolean>;
|
|
22
22
|
carouselApi: import("vue").Ref<import("embla-carousel").EmblaCarouselType | undefined, import("embla-carousel").EmblaCarouselType | undefined>;
|
|
23
23
|
carouselRef: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
24
|
-
orientation: "
|
|
24
|
+
orientation: "vertical" | "horizontal" | undefined;
|
|
25
25
|
scrollNext: () => void;
|
|
26
26
|
scrollPrev: () => void;
|
|
27
27
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -9,7 +9,7 @@ type __VLS_Slots = {} & {
|
|
|
9
9
|
default?: (props: typeof __VLS_10) => any;
|
|
10
10
|
};
|
|
11
11
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
12
|
-
variant: "
|
|
12
|
+
variant: "link" | "default" | "glass" | "accent" | "secondary" | "outline" | "primary-audacious" | "gold-audacious" | "ghost" | "glass-wash" | "ai" | null;
|
|
13
13
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
14
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
15
|
declare const _default: typeof __VLS_export;
|
|
@@ -9,7 +9,7 @@ type __VLS_Slots = {} & {
|
|
|
9
9
|
default?: (props: typeof __VLS_10) => any;
|
|
10
10
|
};
|
|
11
11
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
12
|
-
variant: "
|
|
12
|
+
variant: "link" | "default" | "glass" | "accent" | "secondary" | "outline" | "primary-audacious" | "gold-audacious" | "ghost" | "glass-wash" | "ai" | null;
|
|
13
13
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
14
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
15
|
declare const _default: typeof __VLS_export;
|
|
@@ -4,6 +4,5 @@ export { default as CarouselItem } from './CarouselItem.vue';
|
|
|
4
4
|
export { default as CarouselNext } from './CarouselNext.vue';
|
|
5
5
|
export { default as CarouselPager } from './CarouselPager.vue';
|
|
6
6
|
export { default as CarouselPrevious } from './CarouselPrevious.vue';
|
|
7
|
-
export { default as GlassCarouselPager } from './GlassCarouselPager.vue';
|
|
8
7
|
export type { UnwrapRefCarouselApi as CarouselApi, } from './interface';
|
|
9
8
|
export { useCarousel } from './useCarousel';
|
|
@@ -7,7 +7,7 @@ declare const useProvideCarousel: (args_0: CarouselProps, emits: CarouselEmits)
|
|
|
7
7
|
canScrollNext: import("vue").Ref<boolean, boolean>;
|
|
8
8
|
scrollPrev: () => void;
|
|
9
9
|
scrollNext: () => void;
|
|
10
|
-
orientation: "
|
|
10
|
+
orientation: "vertical" | "horizontal" | undefined;
|
|
11
11
|
};
|
|
12
12
|
declare function useCarousel(): {
|
|
13
13
|
carouselRef: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
@@ -16,6 +16,6 @@ declare function useCarousel(): {
|
|
|
16
16
|
canScrollNext: import("vue").Ref<boolean, boolean>;
|
|
17
17
|
scrollPrev: () => void;
|
|
18
18
|
scrollNext: () => void;
|
|
19
|
-
orientation: "
|
|
19
|
+
orientation: "vertical" | "horizontal" | undefined;
|
|
20
20
|
};
|
|
21
21
|
export { useCarousel, useProvideCarousel, CAROUSEL_WEIGHTY_DURATION };
|
|
@@ -19,8 +19,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
19
19
|
onInteractOutside?: ((event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => any) | undefined;
|
|
20
20
|
}>, {
|
|
21
21
|
position: "inline" | "popper";
|
|
22
|
-
align: "center" | "start" | "end";
|
|
23
22
|
sideOffset: number;
|
|
23
|
+
align: "end" | "start" | "center";
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
25
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
26
26
|
declare const _default: typeof __VLS_export;
|
|
@@ -6,6 +6,4 @@ export { default as ComboboxInput } from './ComboboxInput.vue';
|
|
|
6
6
|
export { default as ComboboxItem } from './ComboboxItem.vue';
|
|
7
7
|
export { default as ComboboxItemIndicator } from './ComboboxItemIndicator.vue';
|
|
8
8
|
export { default as ComboboxList } from './ComboboxList.vue';
|
|
9
|
-
export {
|
|
10
|
-
export { default as ComboboxViewport } from './ComboboxViewport.vue';
|
|
11
|
-
export { ComboboxCancel, ComboboxTrigger } from 'reka-ui';
|
|
9
|
+
export { ComboboxTrigger } from 'reka-ui';
|
|
@@ -24,9 +24,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
24
24
|
} | undefined) => any) | undefined;
|
|
25
25
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
|
+
modelValue: import("reka-ui").AcceptableValue | import("reka-ui").AcceptableValue[];
|
|
27
28
|
open: boolean;
|
|
28
29
|
surface: Surface;
|
|
29
|
-
modelValue: import("reka-ui").AcceptableValue | import("reka-ui").AcceptableValue[];
|
|
30
30
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
31
31
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
32
32
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import type { DialogRootProps } from 'reka-ui';
|
|
1
|
+
import type { ComboboxRootProps, DialogRootProps } from 'reka-ui';
|
|
2
2
|
import type { Surface } from '../_shared/useSurfaceAxis';
|
|
3
|
-
type
|
|
3
|
+
type CommandDialogProps = DialogRootProps & {
|
|
4
4
|
surface?: Surface;
|
|
5
|
+
modelValue?: ComboboxRootProps['modelValue'];
|
|
5
6
|
};
|
|
6
|
-
declare var
|
|
7
|
+
declare var __VLS_24: {};
|
|
7
8
|
type __VLS_Slots = {} & {
|
|
8
|
-
default?: (props: typeof
|
|
9
|
+
default?: (props: typeof __VLS_24) => any;
|
|
9
10
|
};
|
|
10
|
-
declare const __VLS_base: import("vue").DefineComponent<
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<CommandDialogProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
|
+
"update:modelValue": (value: import("reka-ui").AcceptableValue) => any;
|
|
11
13
|
"update:open": (value: boolean) => any;
|
|
12
|
-
}, string, import("vue").PublicProps, Readonly<
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<CommandDialogProps> & Readonly<{
|
|
15
|
+
"onUpdate:modelValue"?: ((value: import("reka-ui").AcceptableValue) => any) | undefined;
|
|
13
16
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
14
17
|
}>, {
|
|
15
18
|
surface: Surface;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.completion-seal { --seal-ink: var(--phase-complete-color, var(--color-gold)); display: inline-flex; align-items: center; justify-content: center; transform: scale(var(--seal-scale, 1)); } .completion-seal[data-best] { --seal-best: var(--color-gold-light, var(--gold-light)); --seal-ink: var(--seal-best); } .completion-seal[data-shape="disc"] { --seal-ring-delay: var(--spring-snappy-duration, 0.34s); --seal-check-delay: calc(var(--spring-snappy-duration, 0.34s) * 2); } .completion-seal__disc { fill: var(--seal-disc-fill, color-mix(in oklab, var(--seal-ink), transparent 82%)); stroke: none; } .completion-seal__mark { fill: none; stroke: var(--seal-ink); stroke-width: var(--seal-stroke-width, 6); stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; stroke-dashoffset: calc(100 - var(--seal-draw, 100%) / 1%); --metal-glow-blur: var(--metal-glow-blur-default, 0.5em); --metal-glow-opacity: var(--metal-glow-opacity-default, 0.35); filter: drop-shadow( 0 0 calc(var(--metal-glow-blur) * var(--seal-glint, 0)) color-mix( in oklab, var(--seal-ink), transparent calc(100% - var(--metal-glow-opacity) * var(--seal-glint, 0) * 100%) ) ); } @media (prefers-reduced-motion: no-preference) { .completion-seal[data-play] { animation: completion-seal-settle var(--spring-bouncy-duration, 0.57s) var(--spring-bouncy) both; } .completion-seal:not([data-shape="disc"])[data-play] .completion-seal__mark { animation: completion-seal-draw var(--spring-snappy-duration, 0.34s) var(--ease-out, ease-out) both, completion-seal-glint var(--spring-snappy-duration, 0.34s) var(--ease-out, ease-out) var(--spring-snappy-duration, 0.34s) both; } .completion-seal[data-shape="disc"][data-play] .completion-seal__disc { animation: completion-seal-disc-in var(--spring-snappy-duration, 0.34s) var(--ease-out, ease-out) both; } .completion-seal[data-shape="disc"][data-play] .completion-seal__ring { animation: completion-seal-draw var(--spring-snappy-duration, 0.34s) var(--ease-out, ease-out) var(--seal-ring-delay, 0.34s) both; } .completion-seal[data-shape="disc"][data-play] .completion-seal__check { animation: completion-seal-draw var(--spring-snappy-duration, 0.34s) var(--ease-out, ease-out) var(--seal-check-delay, 0.68s) both, completion-seal-glint var(--spring-snappy-duration, 0.34s) var(--ease-out, ease-out) calc( var(--seal-check-delay, 0.68s) + var(--spring-snappy-duration, 0.34s) ) both; } } @keyframes completion-seal-draw { from { --seal-draw: 0%; } to { --seal-draw: 100%; } } @keyframes completion-seal-disc-in { from { opacity: 0; } to { opacity: 1; } } @keyframes completion-seal-settle { from { --seal-scale: 0.92; } to { --seal-scale: 1; } } @keyframes completion-seal-glint { 0% { --seal-glint: 0; } 45% { --seal-glint: 1; } 100% { --seal-glint: 0; } }
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { type ConstellationProps } from "./constellationField";
|
|
2
|
-
|
|
2
|
+
import type { RendererStatus } from "../../composables/glass/webgpu/rendererStatus";
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<ConstellationProps, import("./composables/useConstellation").ConstellationExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
4
|
+
rendererStatus: (status: RendererStatus) => any;
|
|
5
|
+
}, string, import("vue").PublicProps, Readonly<ConstellationProps> & Readonly<{
|
|
6
|
+
onRendererStatus?: ((status: RendererStatus) => any) | undefined;
|
|
7
|
+
}>, {
|
|
3
8
|
link: number;
|
|
4
9
|
speed: number;
|
|
5
10
|
count: number;
|
|
@@ -1,32 +1,18 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import { type GpuBackend } from "../../../composables/glass/webgpu/useGpuSubstrate";
|
|
3
2
|
import { type ConstellationField, type ConstellationProps } from "../constellationField";
|
|
4
|
-
|
|
3
|
+
import { type RendererStatus } from "../../../composables/glass/webgpu/rendererStatus";
|
|
5
4
|
export interface ConstellationRoutePointerRead {
|
|
6
|
-
/** Viewport-normalized route pointer (0..1). */
|
|
7
5
|
x: number;
|
|
8
6
|
y: number;
|
|
9
|
-
/** True while a live pointer is over the viewport (and not PRM/paused-silenced). */
|
|
10
7
|
active: boolean;
|
|
11
8
|
}
|
|
12
|
-
/** The optional composable seams (BI.W-CONSTELLATION-DEDUPE — the interactive-bg feed). */
|
|
13
9
|
export interface UseConstellationOptions {
|
|
14
|
-
/**
|
|
15
|
-
* The interactive-BACKGROUND feed. When provided, the constellation reads the route
|
|
16
|
-
* chassis broadcaster each frame and drives a SUBTLE pointer WELL over the KEPT
|
|
17
|
-
* per-node integrator via `constellationWellMapping` (a longer-half-life field, so
|
|
18
|
-
* the background lean is ~2–6%, not the foreground gravity-well pull). Undefined for
|
|
19
|
-
* a foreground demo (which owns its own host listeners). Passed by `Constellation.vue`
|
|
20
|
-
* off the `backgroundInteractive` prop.
|
|
21
|
-
*/
|
|
10
|
+
/** Optional route-owned pointer feed for a non-interactive background field. */
|
|
22
11
|
routePointer?: () => ConstellationRoutePointerRead | null;
|
|
23
12
|
}
|
|
24
|
-
/** The imperative seam the SFC re-exposes via `defineExpose`. */
|
|
25
13
|
export interface ConstellationExpose {
|
|
26
14
|
field: ConstellationField;
|
|
27
15
|
isFrozen: Ref<boolean>;
|
|
28
|
-
/** The resolved backend (`"webgpu"` where supported, else the WebGL2 instanced twin). */
|
|
29
|
-
backend: () => GpuBackend;
|
|
30
16
|
warpTo(a: {
|
|
31
17
|
x: number;
|
|
32
18
|
y: number;
|
|
@@ -35,5 +21,6 @@ export interface ConstellationExpose {
|
|
|
35
21
|
releaseWell(): void;
|
|
36
22
|
warpSettled(): boolean;
|
|
37
23
|
pinNode(idx: number): void;
|
|
24
|
+
rendererStatus: Readonly<Ref<RendererStatus>>;
|
|
38
25
|
}
|
|
39
26
|
export declare function useConstellation(props: ConstellationProps, hostRef: Ref<HTMLElement | null>, canvasRef: Ref<HTMLCanvasElement | null>, options?: UseConstellationOptions): ConstellationExpose;
|
|
@@ -59,19 +59,14 @@ export declare const DEFAULT_PINNED_DRIFT_JITTER = 8000;
|
|
|
59
59
|
* ≥ ~0.72·BASE_WIDTH ≈ 922px (incl. the 1280 export frame — byte-identical
|
|
60
60
|
* there by construction); below it the marks stop crushing sub-pixel. */
|
|
61
61
|
export declare const DEFAULT_K_FLOOR = 0.72;
|
|
62
|
-
/**
|
|
63
|
-
* The maximum node count the points/edges buffers pre-size for (the slider cap — a count
|
|
64
|
-
* above this is clamped at upload). ≫ this BOOKS the compute neighbor-bin path.
|
|
65
|
-
*/
|
|
62
|
+
/** Maximum public node count; keeps the quadratic proximity scan bounded. */
|
|
66
63
|
export declare const MAX_NODES = 256;
|
|
67
64
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* weakest edges, never re-allocates). 12 is a generous incident-edge ceiling for a
|
|
71
|
-
* distance-threshold ε-proximity graph at the default link/count.
|
|
65
|
+
* Per-node paint-density budget. A denser neighborhood drops its weakest edges so a
|
|
66
|
+
* pathological link radius cannot turn the quiet lattice into an opaque mesh.
|
|
72
67
|
*/
|
|
73
68
|
export declare const MAX_DEGREE = 12;
|
|
74
|
-
/**
|
|
69
|
+
/** Maximum painted edges (`MAX_NODES · MAX_DEGREE`). */
|
|
75
70
|
export declare const E_MAX: number;
|
|
76
71
|
/**
|
|
77
72
|
* The pointer-parallax depth default (§6). Each node carries a seeded depth `z ∈ [0,1]`;
|
|
@@ -85,13 +80,8 @@ export declare const E_MAX: number;
|
|
|
85
80
|
*/
|
|
86
81
|
export declare const DEFAULT_PARALLAX = 0;
|
|
87
82
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* NODE_R_SPREAD)` (the prior `1.6 + rng()*1.6` band, named); the WGSL/GLSL fragment SDF
|
|
91
|
-
* sizes `half = radius · uKVis · uDpr / uResolution` so the disc samples at full device
|
|
92
|
-
* resolution and is AA'd by the pixel-footprint derivative — crisp at ANY DPR.
|
|
83
|
+
* Base Canvas2D node-radius band in CSS px. `seedField` rolls each node's radius in
|
|
84
|
+
* `[NODE_R_MIN, NODE_R_MIN + NODE_R_SPREAD)`.
|
|
93
85
|
*/
|
|
94
86
|
export declare const NODE_R_MIN = 1.6;
|
|
95
87
|
export declare const NODE_R_SPREAD = 1.6;
|
|
96
|
-
/** The hairline edge half-width (CSS px) the instanced segment-quad fragment AAs. */
|
|
97
|
-
export declare const DEFAULT_LINE_WIDTH = 1;
|
|
@@ -45,11 +45,9 @@ import type { ConstellationEdge } from "./constellationTypes";
|
|
|
45
45
|
* Scan the proximity graph and return its edge SET (the `1 − d²/reach²` distance-falloff
|
|
46
46
|
* weight per pair within `reach = link·k`). `accentIndex ≥ 0` marks the edges incident on
|
|
47
47
|
* that node (the flagged-node tether). Pure + node-testable; the render loop calls it each
|
|
48
|
-
* frame and
|
|
48
|
+
* frame and hands the result directly to the Canvas2D edge pass.
|
|
49
49
|
*
|
|
50
|
-
* `eMax` caps the result
|
|
51
|
-
* WEAKEST overflow edges are dropped (a denser-than-budget neighborhood keeps its strongest
|
|
52
|
-
* links — never re-allocates the GPU buffer mid-frame).
|
|
50
|
+
* `eMax` caps the result. A denser neighborhood keeps its strongest links.
|
|
53
51
|
*/
|
|
54
52
|
export declare function buildEdges(field: ConstellationField, link: number, accentIndex?: number, eMax?: number): ConstellationEdge[];
|
|
55
53
|
/**
|
|
@@ -64,7 +62,7 @@ export declare function appendPointerWeb(edges: ConstellationEdge[], field: Cons
|
|
|
64
62
|
* `parallax · z · (pointer − center)` — a cheap pointer-parallax giving the flat lattice
|
|
65
63
|
* apparent depth (deeper nodes — higher `z` — shift more, the Awwwards "living network"
|
|
66
64
|
* register). When the pointer is inactive the offset is 0 (the flat lattice). Pure; the
|
|
67
|
-
*
|
|
65
|
+
* renderer maps each node's `(x,y)` through this before painting the dot.
|
|
68
66
|
*/
|
|
69
67
|
export declare function parallaxNodePos(node: ConstellationNode, pointer: ConstellationPointer | null, w: number, h: number, parallax: number): {
|
|
70
68
|
x: number;
|
|
@@ -125,7 +125,7 @@ export declare const BURST_FIRE_THRESHOLD = 0.45;
|
|
|
125
125
|
* `burst` (from the shared `usePointerVelocityField`, the eased flick impulse) warps the
|
|
126
126
|
* focal node toward the cursor (the warp spring snaps it) AND drops an expanding ripple at
|
|
127
127
|
* the focal — the lattice "snaps the focal toward the cursor and drops an expanding ring"
|
|
128
|
-
* (the
|
|
128
|
+
* (the Canvas2D ripple / consumer accent-ring overlay). A slow drag (`burst` below the
|
|
129
129
|
* threshold) never fires (a steady hover is the gentle gather, not a snap). Returns true
|
|
130
130
|
* when a burst fired. Composes the EXISTING `warpTo` + the ripple list — no new mechanic,
|
|
131
131
|
* no second rAF (the warp rides the substrate's ONE clock); PRM is enforced by the CALLER
|
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
import type { ConstellationField, ConstellationPalette } from "./
|
|
1
|
+
import type { ConstellationEdge, ConstellationField, ConstellationPalette, ConstellationPointer, ConstellationRipple } from "./constellationTypes";
|
|
2
2
|
import { DEFAULT_PALETTE } from "./constants";
|
|
3
|
-
/**
|
|
4
|
-
* geometry sizes on this; positions/reach stay on TRUE `field.k`. Exported so a
|
|
5
|
-
* consumer skin floors its own marks on the same axis. */
|
|
3
|
+
/** Visual sizes floor independently from field geometry. */
|
|
6
4
|
export declare function kVisOf(field: ConstellationField): number;
|
|
7
5
|
export { DEFAULT_PALETTE };
|
|
8
|
-
/**
|
|
9
|
-
* Resolve the FULL neutral palette + legibility weights off a canvas's resolved custom
|
|
10
|
-
* properties (the `--constellation-*` set). The colors AND the alpha multipliers route
|
|
11
|
-
* through the same `getComputedStyle` probe, so a dark-mode flip re-resolves BOTH the
|
|
12
|
-
* `:root`/`.dark` color arms AND the per-mode alpha defaults in one read. SSR-safe
|
|
13
|
-
* (returns the warm-cream defaults with no `window`).
|
|
14
|
-
*/
|
|
6
|
+
/** Resolve the neutral palette and legibility weights from the canvas tokens. */
|
|
15
7
|
export declare function readPalette(canvas: HTMLCanvasElement): ConstellationPalette;
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*/
|
|
25
|
-
export declare function parseColorRGBA(input: string): [number, number, number, number];
|
|
8
|
+
/** Paint the edge rows produced by the field's single `buildEdges` scan. */
|
|
9
|
+
export declare function drawEdges(ctx: CanvasRenderingContext2D, field: ConstellationField, edges: readonly ConstellationEdge[], palette: ConstellationPalette, opacity?: number): void;
|
|
10
|
+
/** Paint ambient nodes, applying only the visual parallax offset. */
|
|
11
|
+
export declare function drawNodes(ctx: CanvasRenderingContext2D, field: ConstellationField, palette: ConstellationPalette, opacity?: number, pointer?: ConstellationPointer | null, parallax?: number): void;
|
|
12
|
+
/** Paint the pointer node after its focus edges. */
|
|
13
|
+
export declare function drawPointer(ctx: CanvasRenderingContext2D, field: ConstellationField, pointer: ConstellationPointer | null, palette: ConstellationPalette, opacity?: number): void;
|
|
14
|
+
/** Paint and retire tap/flick ripples. */
|
|
15
|
+
export declare function drawRipples(ctx: CanvasRenderingContext2D, field: ConstellationField, now: number, ripples: ConstellationRipple[], palette: ConstellationPalette, opacity?: number): void;
|
|
@@ -9,19 +9,19 @@ export interface ConstellationNode {
|
|
|
9
9
|
* BC.W-VIZ-CONSTELLATION — the seeded parallax DEPTH (`z ∈ [0,1]`, §6). The pointer
|
|
10
10
|
* offsets the node's SCREEN position by `parallax · z · (pointer − center)` so the flat
|
|
11
11
|
* lattice reads as having depth (the Awwwards "living network" register). Seeded in
|
|
12
|
-
* `seedField`; perturbs the
|
|
12
|
+
* `seedField`; perturbs the painted node position only (never field geometry). A
|
|
13
13
|
* field literal that omits it is treated as `z = 0.5` (the mid-plane, no parallax bias).
|
|
14
14
|
*/
|
|
15
15
|
z?: number;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* BC.W-VIZ-CONSTELLATION — ONE edge of the proximity graph, the row the CPU all-pairs scan
|
|
19
|
-
* (`buildEdges`) writes each frame
|
|
19
|
+
* (`buildEdges`) writes each frame for the Canvas2D line pass. `a`/`b` are the
|
|
20
20
|
* two endpoint positions in canvas-local CSS px; `alpha` is the distance-falloff weight
|
|
21
21
|
* (`1 − d²/reach²`, the `drawEdges` math) the segment-quad fragment multiplies; `accent`
|
|
22
22
|
* (0/1) flags the accented-node tether (the flagged-node edge tint); `focus` (0/1) flags
|
|
23
|
-
* the pointer-web tether (the cursor's incident edges). The
|
|
24
|
-
*
|
|
23
|
+
* the pointer-web tether (the cursor's incident edges). The renderer consumes the row
|
|
24
|
+
* directly and never re-derives the scan.
|
|
25
25
|
*/
|
|
26
26
|
export interface ConstellationEdge {
|
|
27
27
|
ax: number;
|
|
@@ -308,8 +308,8 @@ export interface ConstellationProps {
|
|
|
308
308
|
* depth `z ∈ [0,1]`; the pointer offsets node screen positions by `parallax · z ·
|
|
309
309
|
* (pointer − center)` so the flat lattice reads as having depth (the Awwwards "living
|
|
310
310
|
* network" register). Additive default-on at a SUB-PERCEPTUAL 0.08 (a hair of depth, not
|
|
311
|
-
* a behavior break); 0 = the flat lattice.
|
|
312
|
-
* never
|
|
311
|
+
* a behavior break); 0 = the flat lattice. It perturbs only the painted node position,
|
|
312
|
+
* never field geometry. Frozen under reduced-motion / `freeze`.
|
|
313
313
|
*/
|
|
314
314
|
parallax?: number;
|
|
315
315
|
/**
|
|
@@ -323,13 +323,14 @@ export interface ConstellationProps {
|
|
|
323
323
|
opacityCeiling?: number;
|
|
324
324
|
/** Seed for a reproducible field (number or hashed string); omit for `Math.random`. */
|
|
325
325
|
seed?: number | string;
|
|
326
|
-
/**
|
|
326
|
+
/** Decorative steer-toward-cursor + tap ripples. Default true; auto-off under reduced-motion. */
|
|
327
327
|
pointerReactive?: boolean;
|
|
328
328
|
/**
|
|
329
329
|
* Click-to-warp (AX.W17): a click warps the focal node to the nearest
|
|
330
330
|
* drifting node + springs it there. INDEPENDENT of `pointerReactive` (warp
|
|
331
331
|
* works on a non-ripple lattice). Default false; auto-off under
|
|
332
|
-
* reduced-motion
|
|
332
|
+
* reduced-motion. Enabling it gives the host a named keyboard/pointer button
|
|
333
|
+
* contract; Enter/Space targets the field center through the same warp owner.
|
|
333
334
|
*/
|
|
334
335
|
warpOnClick?: boolean;
|
|
335
336
|
/**
|
|
@@ -351,7 +352,9 @@ export interface ConstellationProps {
|
|
|
351
352
|
* and `pointerReactive` (a consumer can hold-to-pull on a non-ripple,
|
|
352
353
|
* non-warp lattice). `true` uses the tokenised defaults; an object tunes the
|
|
353
354
|
* gains. Default OFF (absent → byte-identical to HEAD). PRM-gated by the WARP
|
|
354
|
-
* precedent (the held-timer is not registered under reduced-motion).
|
|
355
|
+
* precedent (the held-timer is not registered under reduced-motion). Enabling it
|
|
356
|
+
* gives the host a named keyboard/pointer button contract; keyboard press/release
|
|
357
|
+
* drives the same well target as pointer hold/release.
|
|
355
358
|
*/
|
|
356
359
|
gravityWell?: boolean | {
|
|
357
360
|
holdMs?: number;
|