@mkbabb/glass-ui 3.12.0 → 3.13.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/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
- package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
- package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
- package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
- package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
- package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
- package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
- package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
- package/dist/MetricBadge-C9QMz1KT.js +79 -0
- package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
- package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
- package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
- package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
- package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
- package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
- package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
- package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
- package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +5 -2
- package/dist/api.js +2 -2
- package/dist/aurora.js +69 -69
- package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
- package/dist/badge.js +1 -1
- package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +8 -8
- package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
- package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
- package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
- package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
- package/dist/coalesceMetric-5qIeZnTx.js +13 -0
- package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
- package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
- package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
- package/dist/components/custom/constellation/constants.d.ts +61 -0
- package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
- package/dist/components/custom/constellation/constellationField.d.ts +116 -149
- package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
- package/dist/components/custom/constellation/index.d.ts +5 -2
- package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
- package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
- package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
- package/dist/components/custom/dock/composables/index.d.ts +1 -0
- package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
- package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
- package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
- package/dist/components/custom/dock/constants.d.ts +48 -0
- package/dist/components/custom/dock/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +17 -0
- package/dist/components/custom/fourier-field/presets.d.ts +54 -0
- package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
- package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
- package/dist/components/custom/goo-blob/constants.d.ts +52 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
- package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
- package/dist/components/custom/metric-badge/index.d.ts +1 -0
- package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
- package/dist/components/custom/tabs/constants.d.ts +12 -0
- package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
- package/dist/components/custom/underline/index.d.ts +2 -0
- package/dist/components/custom/underline/types.d.ts +56 -0
- package/dist/components/ui/card/Card.vue.d.ts +15 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
- package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
- package/dist/components/ui/slider/index.d.ts +22 -19
- package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
- package/dist/components/ui/toast/use-toast.d.ts +2 -2
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/toggle/index.d.ts +1 -1
- package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
- package/dist/composables/color/index.d.ts +12 -0
- package/dist/composables/dark/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +1 -21
- package/dist/composables/glass/index.d.ts +0 -1
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
- package/dist/composables/motion/core/index.d.ts +1 -1
- package/dist/composables/motion/curves.d.ts +48 -0
- package/dist/composables/motion/index.d.ts +2 -0
- package/dist/composables/motion/springPresets.d.ts +33 -0
- package/dist/composables/motion/suite.d.ts +2 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
- package/dist/composables/motion/useSpringMount.d.ts +1 -1
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +2 -2
- package/dist/constellation.js +336 -222
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +48 -20
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +705 -365
- package/dist/dockContext-BegmJVmx.js +17 -0
- package/dist/dom.js +5 -5
- package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +39 -80
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +134 -99
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +86 -20
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +222 -212
- package/dist/goo-blob.js +243 -212
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +28 -18
- package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +25 -21
- package/dist/metric-stack.js +35 -34
- package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
- package/dist/motion-core.js +32 -137
- package/dist/motion-curves.d.ts +1 -0
- package/dist/motion-curves.js +130 -0
- package/dist/motion.js +38 -37
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
- package/dist/progress.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
- package/dist/search.js +9 -9
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
- package/dist/sheet.js +1 -1
- package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/springPresets--YdWTHtm.js +40 -0
- package/dist/stacked-icons.js +6 -6
- package/dist/styles/animations.css +29 -114
- package/dist/styles/cards.css +55 -0
- package/dist/styles/components.css +4 -1
- package/dist/styles/configurator.css +42 -0
- package/dist/styles/dock/layer-group.css +83 -25
- package/dist/styles/dock/layers.css +23 -1
- package/dist/styles/dock/morph-bridge.css +123 -0
- package/dist/styles/dock/morph.css +175 -45
- package/dist/styles/dock/overflow.css +51 -1
- package/dist/styles/dock/rail-extend.css +300 -0
- package/dist/styles/dock/shell.css +63 -105
- package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/dist/styles/dock-controls/icon-button.css +133 -0
- package/dist/styles/dock-controls/tab-button.css +202 -0
- package/dist/styles/dock-controls/touch-floor.css +94 -0
- package/dist/styles/dock-controls/triggers.css +128 -0
- package/dist/styles/dock-controls.css +30 -595
- package/dist/styles/dock.css +2 -0
- package/dist/styles/drawer.css +2 -0
- package/dist/styles/floating-panel.css +17 -0
- package/dist/styles/glass/a11y-fallback.css +245 -0
- package/dist/styles/glass/ladder.css +337 -0
- package/dist/styles/glass/material.css +238 -0
- package/dist/styles/glass/progress-rail.css +78 -0
- package/dist/styles/glass/squircle.css +66 -0
- package/dist/styles/glass/surfaces.css +306 -0
- package/dist/styles/glass-refract.css +2 -0
- package/dist/styles/glass.css +31 -1188
- package/dist/styles/hover-popover.css +2 -0
- package/dist/styles/index.css +28 -14
- package/dist/styles/instrument-chassis.css +4 -0
- package/dist/styles/paper.css +2 -68
- package/dist/styles/segmented-tabs.css +275 -0
- package/dist/styles/theme/bridges.css +337 -0
- package/dist/styles/theme/dark.css +7 -0
- package/dist/styles/theme/literals.css +94 -0
- package/dist/styles/theme/radius.css +95 -0
- package/dist/styles/theme.css +26 -529
- package/dist/styles/tokens/color-radius.css +260 -0
- package/dist/styles/tokens/dark-arm.css +200 -0
- package/dist/styles/tokens/glass.css +440 -0
- package/dist/styles/tokens/light-dark.css +158 -0
- package/dist/styles/tokens/offsets-sizing.css +500 -0
- package/dist/styles/tokens/property-regs.css +169 -0
- package/dist/styles/tokens/scale-paper.css +366 -0
- package/dist/styles/tokens/scheme-motion.css +334 -0
- package/dist/styles/tokens/shadow.css +166 -0
- package/dist/styles/tokens.css +22 -2360
- package/dist/styles/typography.css +75 -21
- package/dist/styles/utilities/a11y-overrides.css +140 -0
- package/dist/styles/utilities/animate.css +26 -0
- package/dist/styles/utilities/base.css +365 -0
- package/dist/styles/utilities/btn.css +401 -0
- package/dist/styles/utilities/components.css +317 -0
- package/dist/styles/utilities.css +19 -1318
- package/dist/styles/view-transition.css +0 -51
- package/dist/switch.js +1 -1
- package/dist/tabs.js +91 -82
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/underline.d.ts +1 -0
- package/dist/underline.js +85 -0
- package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
- package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
- package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
- package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
- package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
- package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
- package/dist/useSpecularTracking-Bo5su68i.js +32 -0
- package/dist/useSpringMount-CI2jOstM.js +108 -0
- package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
- package/dist/utils/coalesceMetric.d.ts +29 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/vReveal-CqaCz_mC.js +44 -0
- package/dist/watercolor-dot.js +11 -9
- package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
- package/package.json +78 -58
- package/src/styles/animations.css +29 -114
- package/src/styles/cards.css +53 -0
- package/src/styles/configurator.css +42 -0
- package/src/styles/dock/layer-group.css +83 -25
- package/src/styles/dock/layers.css +23 -1
- package/src/styles/dock/morph-bridge.css +123 -0
- package/src/styles/dock/morph.css +175 -45
- package/src/styles/dock/overflow.css +51 -1
- package/src/styles/dock/rail-extend.css +300 -0
- package/src/styles/dock/shell.css +63 -105
- package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/src/styles/dock-controls/icon-button.css +133 -0
- package/src/styles/dock-controls/tab-button.css +202 -0
- package/src/styles/dock-controls/touch-floor.css +94 -0
- package/src/styles/dock-controls/triggers.css +128 -0
- package/src/styles/dock-controls.css +30 -595
- package/src/styles/dock.css +2 -0
- package/src/styles/floating-panel.css +15 -0
- package/src/styles/glass/a11y-fallback.css +245 -0
- package/src/styles/glass/ladder.css +337 -0
- package/src/styles/glass/material.css +238 -0
- package/src/styles/glass/progress-rail.css +78 -0
- package/src/styles/glass/squircle.css +66 -0
- package/src/styles/glass/surfaces.css +306 -0
- package/src/styles/glass.css +31 -1188
- package/src/styles/index.css +28 -14
- package/src/styles/paper.css +2 -68
- package/src/styles/segmented-tabs.css +271 -0
- package/src/styles/theme/bridges.css +337 -0
- package/src/styles/theme/dark.css +7 -0
- package/src/styles/theme/literals.css +94 -0
- package/src/styles/theme/radius.css +95 -0
- package/src/styles/theme.css +26 -529
- package/src/styles/tokens/color-radius.css +260 -0
- package/src/styles/tokens/dark-arm.css +200 -0
- package/src/styles/tokens/glass.css +440 -0
- package/src/styles/tokens/light-dark.css +158 -0
- package/src/styles/tokens/offsets-sizing.css +500 -0
- package/src/styles/tokens/property-regs.css +169 -0
- package/src/styles/tokens/scale-paper.css +366 -0
- package/src/styles/tokens/scheme-motion.css +334 -0
- package/src/styles/tokens/shadow.css +166 -0
- package/src/styles/tokens.css +22 -2360
- package/src/styles/typography.css +75 -21
- package/src/styles/utilities/a11y-overrides.css +140 -0
- package/src/styles/utilities/animate.css +26 -0
- package/src/styles/utilities/base.css +365 -0
- package/src/styles/utilities/btn.css +401 -0
- package/src/styles/utilities/components.css +317 -0
- package/src/styles/utilities.css +19 -1318
- package/src/styles/view-transition.css +0 -51
- package/dist/DeckProgress-Dmk4_AKN.js +0 -23
- package/dist/InstrumentRail-CUJ05YVG.js +0 -44
- package/dist/MetricBadge-BZVWIxNy.js +0 -80
- package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
- package/dist/components/custom/deck-progress/index.d.ts +0 -2
- package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
- package/dist/components/custom/dialog-native/index.d.ts +0 -1
- package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
- package/dist/components/custom/handmark/brush.d.ts +0 -242
- package/dist/components/custom/handmark/freehand.d.ts +0 -69
- package/dist/components/custom/handmark/geometry.d.ts +0 -50
- package/dist/components/custom/handmark/index.d.ts +0 -21
- package/dist/components/custom/handmark/ink.d.ts +0 -11
- package/dist/components/custom/handmark/texture.d.ts +0 -39
- package/dist/components/custom/handmark/types.d.ts +0 -53
- package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
- package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
- package/dist/components/custom/instrument-rail/index.d.ts +0 -2
- package/dist/composables/motion/useRouteTransition.d.ts +0 -42
- package/dist/deck-progress.d.ts +0 -1
- package/dist/deck-progress.js +0 -2
- package/dist/dockContext-BKeIMmNk.js +0 -9
- package/dist/handmark.d.ts +0 -1
- package/dist/handmark.js +0 -663
- package/dist/instrument-rail.d.ts +0 -1
- package/dist/instrument-rail.js +0 -2
- package/dist/styles/instrument-rail.css +0 -127
- package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
- package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
- package/dist/useSpringMount-BJSHcLl3.js +0 -113
- package/dist/useViewTransition-DaN5Zrox.js +0 -21
- package/dist/vReveal-zUIQk-rJ.js +0 -53
- package/src/styles/instrument-rail.css +0 -127
- /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
- /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
- /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
- /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
- /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
- /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
- /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
- /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
- /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
- /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
- /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
- /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
- /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
- /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
- /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
- /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
- /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
- /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
- /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
- /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
- /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
- /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
- /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
- /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
- /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
- /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Ref } from "vue";
|
|
2
|
+
import type { ConstellationField, ConstellationPointer, ConstellationRipple } from "../constellationField";
|
|
3
|
+
/** The substrate handle the wiring reads (`wake` re-arms a parked surface). */
|
|
4
|
+
interface CanvasHandle {
|
|
5
|
+
wake: () => void;
|
|
6
|
+
reducedMotion: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface UseConstellationPointerOptions {
|
|
9
|
+
host: HTMLElement | null;
|
|
10
|
+
canvas: HTMLCanvasElement;
|
|
11
|
+
field: ConstellationField;
|
|
12
|
+
pointer: ConstellationPointer;
|
|
13
|
+
ripples: ConstellationRipple[];
|
|
14
|
+
handle: CanvasHandle;
|
|
15
|
+
/** The hoisted client→canvas-local mapper ref the exposed `warpTo(clientX,clientY)` reads. */
|
|
16
|
+
toLocalRef: Ref<((e: {
|
|
17
|
+
clientX: number;
|
|
18
|
+
clientY: number;
|
|
19
|
+
}) => ConstellationPointer | null) | null>;
|
|
20
|
+
pointerReactive: boolean;
|
|
21
|
+
warpOnClick: boolean;
|
|
22
|
+
gravityWell: boolean;
|
|
23
|
+
/** The deterministic-capture predicate — a frozen capture registers NO listeners. */
|
|
24
|
+
isFrozen: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Wire the constellation pointer listeners on the host. Sets the hoisted
|
|
28
|
+
* `toLocal` mapper (the deck-scale invariant — BOTH the ripple path AND the warp
|
|
29
|
+
* path read this ONE mapper), then registers the three independent listener
|
|
30
|
+
* blocks gated by their respective prop flags (each PRM-gated + capture-gated).
|
|
31
|
+
* No teardown is returned: the listeners ride the component's lifetime (the host
|
|
32
|
+
* element is torn down with the component), matching the prior inline behaviour.
|
|
33
|
+
*/
|
|
34
|
+
export declare function useConstellationPointer(opts: UseConstellationPointerOptions): void;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ConstellationPalette, ConstellationWellConfig } from "./constellationField";
|
|
2
|
+
/**
|
|
3
|
+
* The reference layout width (px) the field's node geometry is authored against. A
|
|
4
|
+
* live canvas's `k = width / BASE_WIDTH` scales every base-width length (the well
|
|
5
|
+
* reach/speed, the node spacing) so a 600px and a 1280px canvas read the same shape.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BASE_WIDTH = 1280;
|
|
8
|
+
/**
|
|
9
|
+
* The neutral palette FALLBACK the draw passes read when the `--constellation-*`
|
|
10
|
+
* color/alpha tokens are absent (SSR / no-token mount). The fallbacks mirror the §5c
|
|
11
|
+
* light-arm token defaults so a no-token mount still reads recessive-but-legible.
|
|
12
|
+
*
|
|
13
|
+
* `accent`/`edgeFloor`/`edgeAccentAlpha` (AZ.W-CON-GEN G3) are the ACCENT-edge skin
|
|
14
|
+
* weights the optional `drawEdges(…, accentIndex)` pass reads — the flagged-node EDGE
|
|
15
|
+
* tint. `accent` mirrors the `--constellation-accent` neutral library default;
|
|
16
|
+
* `edgeFloor: 0` is the byte-identity (no floor by default — a consumer lifts it so a
|
|
17
|
+
* distance-faded hairline clears the perceptual floor on a bright ground);
|
|
18
|
+
* `edgeAccentAlpha: 0.30` is the accent-incident edge multiplier.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_PALETTE: ConstellationPalette;
|
|
21
|
+
/**
|
|
22
|
+
* Warp spring DEFAULTS — `--constellation-warp-*` tokens override these on mount.
|
|
23
|
+
* `WARP_RESPONSE` is the keyframes.js angular PERIOD (s, NOT a settle-duration);
|
|
24
|
+
* `WARP_ZETA = 1.0` is critically damped so a focal mark never rings/overshoots.
|
|
25
|
+
*/
|
|
26
|
+
export declare const WARP_RESPONSE = 0.55;
|
|
27
|
+
export declare const WARP_ZETA = 1;
|
|
28
|
+
/**
|
|
29
|
+
* Gravity-well tuning DEFAULTS (AY.W-CON2). The `--constellation-well-*` tokens
|
|
30
|
+
* override these on mount via `field.well.cfg`; these stay the fallback. SET by the
|
|
31
|
+
* §6 egg-live π readback (the field-perturbs-then-cools capture is the binding
|
|
32
|
+
* truth) — a moderate gain over a generous reach, a brisk ramp, a tight no-slingshot
|
|
33
|
+
* speed cap, and the singularity-soften floor.
|
|
34
|
+
*/
|
|
35
|
+
export declare const DEFAULT_WELL_CONFIG: ConstellationWellConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Auto-DRIFT cadence DEFAULTS (AY.W-CON1 source; tokenised in AY.W-CON2). The
|
|
38
|
+
* `--constellation-wander-idle`/`-wander-jitter` tokens override these on mount; a
|
|
39
|
+
* prop `{ minIdle, jitter }` still wins over the token. The 8s/8s default rhythm
|
|
40
|
+
* re-targets the focal mark every 8–16s (the slides cadence).
|
|
41
|
+
*/
|
|
42
|
+
export declare const DEFAULT_WANDER_IDLE = 8000;
|
|
43
|
+
export declare const DEFAULT_WANDER_JITTER = 8000;
|
|
44
|
+
/**
|
|
45
|
+
* Autonomous PINNED-ANCHOR drift cadence DEFAULTS (AZ.W-CON-GEN G5). DISTINCT from
|
|
46
|
+
* `wander` (which re-targets the WARP spring among random nodes): this gently eases
|
|
47
|
+
* the PINNED node (`field.pinnedIndex`) around its seeded ANCHOR on a jittered
|
|
48
|
+
* cadence — the flagged point breathes its neighborhood without leaving it. The
|
|
49
|
+
* `--constellation-pinned-drift-*` tokens override these on mount; a prop still wins.
|
|
50
|
+
* `wanderFrac` (±0.14 of the canvas) keeps the pinned node clear of the hero type
|
|
51
|
+
* even as it drifts; `durMs` is the per-leg easeInOutQuad duration; the idle/jitter
|
|
52
|
+
* is the rest between legs (a long, calm rhythm, NOT a metronome).
|
|
53
|
+
*/
|
|
54
|
+
export declare const DEFAULT_PINNED_DRIFT_FRAC = 0.14;
|
|
55
|
+
export declare const DEFAULT_PINNED_DRIFT_DUR = 2600;
|
|
56
|
+
export declare const DEFAULT_PINNED_DRIFT_IDLE = 6000;
|
|
57
|
+
export declare const DEFAULT_PINNED_DRIFT_JITTER = 8000;
|
|
58
|
+
/** R5-8 — the shipped visual-size floor: `kVisOf` === `k` for every canvas
|
|
59
|
+
* ≥ ~0.72·BASE_WIDTH ≈ 922px (incl. the 1280 export frame — byte-identical
|
|
60
|
+
* there by construction); below it the marks stop crushing sub-pixel. */
|
|
61
|
+
export declare const DEFAULT_K_FLOOR = 0.72;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ConstellationField, ConstellationPalette, ConstellationPointer, ConstellationRipple } from "./constellationField";
|
|
2
|
+
import { DEFAULT_PALETTE } from "./constants";
|
|
3
|
+
/** R5-8 — the visual-SIZE draw scale: `max(k, kFloor)`. The four neutral passes
|
|
4
|
+
* size on this; positions/reach stay on TRUE `field.k`. Exported so a
|
|
5
|
+
* `drawOverlay` skin floors its own marks/labels on the same axis. */
|
|
6
|
+
export declare function kVisOf(field: ConstellationField): number;
|
|
7
|
+
export { DEFAULT_PALETTE };
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the FULL neutral palette + legibility weights off a canvas's resolved
|
|
10
|
+
* custom properties (AX.W17). The colors AND the alpha multipliers route through
|
|
11
|
+
* 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.
|
|
13
|
+
*/
|
|
14
|
+
export declare function readPalette(canvas: HTMLCanvasElement): ConstellationPalette;
|
|
15
|
+
/**
|
|
16
|
+
* Pass 1 — hairline edges between any two nodes within `link` px (alpha falls off with
|
|
17
|
+
* distance). The optional `accentIndex` (AZ.W-CON-GEN G2; default `-1` = OFF,
|
|
18
|
+
* byte-identical to the prior single-color pass) is the flagged-node ACCENT-edge skin:
|
|
19
|
+
* an edge incident on that node strokes `palette.accent` at `palette.edgeAccentAlpha`
|
|
20
|
+
* with a slightly heavier line (the flagged-node tether), while every other edge keeps
|
|
21
|
+
* the neutral register. The neutral edges carry a `palette.edgeFloor` minimum so a
|
|
22
|
+
* distance-faded hairline clears the perceptual floor on a bright ground (G3).
|
|
23
|
+
*/
|
|
24
|
+
export declare function drawEdges(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette, opacityCeiling?: number, accentIndex?: number): void;
|
|
25
|
+
/** Pass 2 — ambient node dots. */
|
|
26
|
+
export declare function drawNodes(ctx: CanvasRenderingContext2D, field: ConstellationField, palette: ConstellationPalette, opacityCeiling?: number): void;
|
|
27
|
+
/** Pass 3 — the cursor joins the web: faint links to nodes within reach + a soft cursor node. */
|
|
28
|
+
export declare function drawPointerWeb(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette, pointer: ConstellationPointer | null, opacityCeiling?: number): void;
|
|
29
|
+
/** Pass 4 — tap ripples: expanding rings that fade over ~0.9s; consumed entries are spliced. */
|
|
30
|
+
export declare function drawRipples(ctx: CanvasRenderingContext2D, field: ConstellationField, now: number, ripples: ConstellationRipple[], palette: ConstellationPalette, opacityCeiling?: number): void;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const BASE_WIDTH = 1280;
|
|
1
|
+
export { BASE_WIDTH } from "./constants";
|
|
3
2
|
export interface ConstellationNode {
|
|
4
3
|
x: number;
|
|
5
4
|
y: number;
|
|
@@ -35,6 +34,27 @@ export interface ConstellationPalette {
|
|
|
35
34
|
edgeFocusAlpha: number;
|
|
36
35
|
/** The field-yields-to-type translucency knob (the global field dimmer). */
|
|
37
36
|
alpha: number;
|
|
37
|
+
/**
|
|
38
|
+
* The ACCENT-edge skin tint (AZ.W-CON-GEN G3) — the flagged-node EDGE color the
|
|
39
|
+
* optional `drawEdges(…, accentIndex)` pass strokes for edges incident on the
|
|
40
|
+
* accented node. Reads `--constellation-accent` (the consumer-preset boundary —
|
|
41
|
+
* the library ships a neutral default; a consumer aliases it to its brand hue).
|
|
42
|
+
*/
|
|
43
|
+
accent: string;
|
|
44
|
+
/**
|
|
45
|
+
* The neutral-edge alpha FLOOR (AZ.W-CON-GEN G3) — added to a distance-faded
|
|
46
|
+
* neutral hairline's alpha so it clears the perceptual/sampling floor across its
|
|
47
|
+
* full length on a bright ground (the "web doesn't read in light mode" fix).
|
|
48
|
+
* Default `0` is byte-identical (no floor). Reads `--constellation-edge-floor`.
|
|
49
|
+
*/
|
|
50
|
+
edgeFloor: number;
|
|
51
|
+
/**
|
|
52
|
+
* The ACCENT-incident edge alpha multiplier (AZ.W-CON-GEN G3) — the per-mode
|
|
53
|
+
* weight for an edge touching the accented node. Reads
|
|
54
|
+
* `--constellation-edge-accent-alpha`; the accented edges read a touch louder
|
|
55
|
+
* than the neutral lattice (the flagged-node tether).
|
|
56
|
+
*/
|
|
57
|
+
edgeAccentAlpha: number;
|
|
38
58
|
}
|
|
39
59
|
/**
|
|
40
60
|
* The per-axis critically-damped warp spring on the focal node (AX.W17). The
|
|
@@ -72,14 +92,37 @@ export interface ConstellationWander {
|
|
|
72
92
|
jitter: number;
|
|
73
93
|
}
|
|
74
94
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* `
|
|
78
|
-
*
|
|
79
|
-
*
|
|
95
|
+
* The autonomous PINNED-ANCHOR drift state (AZ.W-CON-GEN G5) — the gentle wander of
|
|
96
|
+
* the PINNED node (`field.pinnedIndex`) around its seeded ANCHOR. DISTINCT from
|
|
97
|
+
* `wander` (which re-targets the WARP spring among random nodes): this eases ONE
|
|
98
|
+
* designated node a small fraction around its rest position on a jittered cadence,
|
|
99
|
+
* so a flagged point breathes its neighborhood without leaving the dead-space it was
|
|
100
|
+
* anchored in. Stepped inside `stepField` (no second rAF) via a closed-form
|
|
101
|
+
* easeInOutQuad over `now` — no integrator. Absent (`undefined`) → `stepField` skips
|
|
102
|
+
* the block (byte-identical to HEAD).
|
|
80
103
|
*/
|
|
81
|
-
export
|
|
82
|
-
|
|
104
|
+
export interface ConstellationPinnedDrift {
|
|
105
|
+
/** The anchor (the pinned node's rest position) the drift eases around (px). */
|
|
106
|
+
anchorX: number;
|
|
107
|
+
anchorY: number;
|
|
108
|
+
/** ms timestamp of the next leg; -1 until armed on the first stepped frame. */
|
|
109
|
+
nextAt: number;
|
|
110
|
+
/** ms timestamp the current leg started; -1 between legs (resting at the anchor). */
|
|
111
|
+
legStart: number;
|
|
112
|
+
/** the current leg's from/to (px) — the eased segment endpoints. */
|
|
113
|
+
fromX: number;
|
|
114
|
+
fromY: number;
|
|
115
|
+
toX: number;
|
|
116
|
+
toY: number;
|
|
117
|
+
/** the ± fraction of the canvas the drift wanders around the anchor. */
|
|
118
|
+
wanderFrac: number;
|
|
119
|
+
/** the per-leg easeInOutQuad duration (ms). */
|
|
120
|
+
durMs: number;
|
|
121
|
+
/** the minimum rest (ms) between legs. */
|
|
122
|
+
minIdle: number;
|
|
123
|
+
/** the random extra rest (ms) per leg (so the rhythm is not metronomic). */
|
|
124
|
+
jitter: number;
|
|
125
|
+
}
|
|
83
126
|
/**
|
|
84
127
|
* The warp-spring tuning the integrator reads (AY.W-CON2). Tokenised numeric (the
|
|
85
128
|
* `--constellation-warp-*` cohort) so a consumer retunes the warp WITHOUT editing
|
|
@@ -163,6 +206,8 @@ export interface ConstellationField {
|
|
|
163
206
|
h: number;
|
|
164
207
|
k: number;
|
|
165
208
|
dpr: number;
|
|
209
|
+
/** R5-8 — SIZES draw at `kVisOf(field)`; TRUE `k` keeps positions/reach. */
|
|
210
|
+
kFloor?: number;
|
|
166
211
|
/**
|
|
167
212
|
* The designated focal node's INDEX, or `-1` when none is pinned. Re-points
|
|
168
213
|
* on each `warpTo`; node count is conserved (it is a designation, not a new
|
|
@@ -193,6 +238,30 @@ export interface ConstellationField {
|
|
|
193
238
|
* pre-well HEAD — `stepField` skips the force pass entirely.
|
|
194
239
|
*/
|
|
195
240
|
well?: ConstellationWell;
|
|
241
|
+
/**
|
|
242
|
+
* The PINNED node designation (AZ.W-CON-GEN G1) — the index of a node `stepField`
|
|
243
|
+
* does NOT drift/bounce/steer/pull, so it HOLDS its seeded position (the flagged
|
|
244
|
+
* flagged node the consumer pins). `-1` (the default) = no pin → every node drifts
|
|
245
|
+
* (byte-identical to HEAD). A designation, NOT a new node — node count is
|
|
246
|
+
* conserved. The optional `pinnedDrift` gently wanders it around its anchor; the
|
|
247
|
+
* optional `drawEdges(…, accentIndex)` tints its incident edges.
|
|
248
|
+
*/
|
|
249
|
+
pinnedIndex: number;
|
|
250
|
+
/**
|
|
251
|
+
* The optional autonomous PINNED-ANCHOR drift (AZ.W-CON-GEN G5). When set AND a
|
|
252
|
+
* node is pinned, `stepField` gently eases the pinned node around its anchor on a
|
|
253
|
+
* jittered cadence (a closed-form easeInOutQuad — no second rAF). Absent
|
|
254
|
+
* (`undefined`) → the pinned node holds dead-still at its anchor (byte-identical).
|
|
255
|
+
*/
|
|
256
|
+
pinnedDrift?: ConstellationPinnedDrift;
|
|
257
|
+
/**
|
|
258
|
+
* Warp AUTO-RELEASE (AZ.W-CON-GEN G6). When `true`, `stepField` clears the warp's
|
|
259
|
+
* `targetIdx` (→ -1) once the spring has SETTLED on its target — the focal node
|
|
260
|
+
* releases the spring and rides its node's RAW drift (the identity-ride), freeing
|
|
261
|
+
* the spring for the next warp. Default `false`/undefined keeps the held-target
|
|
262
|
+
* behaviour (the warp chases its node forever — byte-identical to HEAD).
|
|
263
|
+
*/
|
|
264
|
+
warpAutoRelease?: boolean;
|
|
196
265
|
}
|
|
197
266
|
/**
|
|
198
267
|
* The `<Constellation>` consumer prop surface (the public type a consumer types
|
|
@@ -206,6 +275,15 @@ export interface ConstellationProps {
|
|
|
206
275
|
link?: number;
|
|
207
276
|
/** Drift speed. Default 0.16. */
|
|
208
277
|
speed?: number;
|
|
278
|
+
/**
|
|
279
|
+
* AY.W-COHERE E3 — the per-instance outer-envelope RECESSION knob (the aurora
|
|
280
|
+
* `opacityCeiling` / fourier `intensity` sibling — ONE recession vocabulary
|
|
281
|
+
* across the four live substrates). Scales the painted edge/node/web/ripple
|
|
282
|
+
* alpha OVER the mode-tuned `--constellation-alpha` base so the lattice can
|
|
283
|
+
* RECEDE behind content (0.4–0.6 in a hero). Default `1` is byte-identical to
|
|
284
|
+
* HEAD.
|
|
285
|
+
*/
|
|
286
|
+
opacityCeiling?: number;
|
|
209
287
|
/** Seed for a reproducible field (number or hashed string); omit for `Math.random`. */
|
|
210
288
|
seed?: number | string;
|
|
211
289
|
/** Steer-toward-cursor + tap ripples. Default true; auto-off under reduced-motion. */
|
|
@@ -246,6 +324,35 @@ export interface ConstellationProps {
|
|
|
246
324
|
maxSpeed?: number;
|
|
247
325
|
soften?: number;
|
|
248
326
|
};
|
|
327
|
+
/**
|
|
328
|
+
* PINNED node designation (AZ.W-CON-GEN G1): a node held by every step pass (it
|
|
329
|
+
* does not drift / bounce / steer / feel the well). `false`/absent → no pin;
|
|
330
|
+
* `true` → node 0; a number → that index. The flagged-node pin the consumer holds.
|
|
331
|
+
*/
|
|
332
|
+
pinned?: boolean | number;
|
|
333
|
+
/**
|
|
334
|
+
* ACCENT-edge skin (AZ.W-CON-GEN G2): edges incident on the pinned (else focal)
|
|
335
|
+
* node stroke the `--constellation-accent` tint — the flagged-node tether. Default
|
|
336
|
+
* OFF (the neutral single-color pass).
|
|
337
|
+
*/
|
|
338
|
+
accentEdges?: boolean;
|
|
339
|
+
/**
|
|
340
|
+
* Autonomous PINNED-ANCHOR drift (AZ.W-CON-GEN G5): the pinned node gently wanders
|
|
341
|
+
* its seeded anchor on a jittered cadence (DISTINCT from `wander`, which re-targets
|
|
342
|
+
* the warp). Default OFF (the pin holds dead-still). PRM-gated.
|
|
343
|
+
*/
|
|
344
|
+
pinnedDrift?: boolean | {
|
|
345
|
+
wanderFrac?: number;
|
|
346
|
+
durMs?: number;
|
|
347
|
+
minIdle?: number;
|
|
348
|
+
jitter?: number;
|
|
349
|
+
};
|
|
350
|
+
/**
|
|
351
|
+
* Warp AUTO-RELEASE (AZ.W-CON-GEN G6): a settled warp clears its target so the
|
|
352
|
+
* focal rides its node's raw drift (the identity-ride). Default OFF (the warp holds
|
|
353
|
+
* its target forever). Read the settled signal via the `warpSettled()` expose.
|
|
354
|
+
*/
|
|
355
|
+
warpAutoRelease?: boolean;
|
|
249
356
|
/**
|
|
250
357
|
* Deterministic-capture freeze (AY.W-CON3): when `true`, lays out ONE
|
|
251
358
|
* reproducible STATIC frame (no `stepField`, no ripple / warp / wander / well
|
|
@@ -261,31 +368,6 @@ export interface ConstellationProps {
|
|
|
261
368
|
/** The skin seam — paints the consumer's focal mark on the live field. */
|
|
262
369
|
drawOverlay?: (ctx: CanvasRenderingContext2D, field: ConstellationField, now: number) => void;
|
|
263
370
|
}
|
|
264
|
-
export declare const DEFAULT_PALETTE: ConstellationPalette;
|
|
265
|
-
/**
|
|
266
|
-
* Resolve the FULL neutral palette + legibility weights off a canvas's resolved
|
|
267
|
-
* custom properties (AX.W17). The colors AND the alpha multipliers route through
|
|
268
|
-
* the same `getComputedStyle` probe, so a dark-mode flip re-resolves BOTH the
|
|
269
|
-
* `:root`/`.dark` color arms AND the per-mode alpha defaults in one read.
|
|
270
|
-
*/
|
|
271
|
-
export declare function readPalette(canvas: HTMLCanvasElement): ConstellationPalette;
|
|
272
|
-
/**
|
|
273
|
-
* Read the NUMERIC interaction-tuning tokens (the warp spring + the gravity-well
|
|
274
|
-
* gains) off a canvas's resolved custom properties — ONCE on mount (AY.W-CON2),
|
|
275
|
-
* via `parseFloat`, NOT per-frame `getComputedStyle` (the hot loop stays clean).
|
|
276
|
-
* Returns `{ warp, well }` configs the field carries; every member falls back to
|
|
277
|
-
* the shipped default when the token is absent (an SSR / no-token mount reads the
|
|
278
|
-
* byte-identical spring). The tokens are PLAIN numbers (`0.55`, `12000`), immune
|
|
279
|
-
* to the W30 `light-dark()`-into-Canvas2D leak (they never reach a `fillStyle`).
|
|
280
|
-
*/
|
|
281
|
-
export declare function readInteractionConfig(canvas: HTMLCanvasElement): {
|
|
282
|
-
warp: ConstellationWarpConfig;
|
|
283
|
-
well: ConstellationWellConfig;
|
|
284
|
-
wander: {
|
|
285
|
-
minIdle: number;
|
|
286
|
-
jitter: number;
|
|
287
|
-
};
|
|
288
|
-
};
|
|
289
371
|
/**
|
|
290
372
|
* Seed `count` drifting nodes inside `w × h`. `rng` is a `() => number` in
|
|
291
373
|
* `[0, 1)` (the glass-ui `mulberry32`/`Math.random`); a seeded `rng` lays out a
|
|
@@ -325,118 +407,3 @@ export declare function refitField(field: ConstellationField, prevW: number, pre
|
|
|
325
407
|
* (a click-warp in flight pre-empts the cadence — `warpSettled` reports false).
|
|
326
408
|
*/
|
|
327
409
|
export declare function stepField(field: ConstellationField, k: number, speed: number, pointer: ConstellationPointer | null, dt?: number, now?: number, rng?: () => number): void;
|
|
328
|
-
/**
|
|
329
|
-
* Advance the gravity-well one `dt` (AY.W-CON2). A transient held-pointer force
|
|
330
|
-
* composed inside `stepField` (NO new rAF): ease `well.strength` toward
|
|
331
|
-
* `well.target` (1 held / 0 released) at `cfg.ramp`/s; while active, add an
|
|
332
|
-
* inverse-square pull toward the held point onto each node within `cfg.reach`
|
|
333
|
-
* (the `max(d, soften)` no-singularity floor + the `cfg.maxSpeed` no-slingshot
|
|
334
|
-
* clamp); ALWAYS ease every node's |v| back toward `speed` (the field-cools
|
|
335
|
-
* invariant — so a released well re-settles). No-ops (entirely skipped) when
|
|
336
|
-
* `field.well` is undefined → the default render is byte-identical to HEAD.
|
|
337
|
-
*
|
|
338
|
-
* `dt` is clamped to {@link WARP_DT_CLAMP} (the same park-resume guard the warp
|
|
339
|
-
* uses) so a tab-throttle gap cannot slingshot the field in one giant step.
|
|
340
|
-
*/
|
|
341
|
-
export declare function stepWell(field: ConstellationField, k: number, speed: number, dt: number): void;
|
|
342
|
-
/**
|
|
343
|
-
* Warp spring tuning DEFAULTS — gentle critically-damped (no overshoot on a focal
|
|
344
|
-
* mark). The `--constellation-warp-response`/`-zeta` tokens override these on mount
|
|
345
|
-
* via `field.warpCfg` (AY.W-CON2); these stay the byte-identical fallback.
|
|
346
|
-
*
|
|
347
|
-
* `WARP_RESPONSE` is the keyframes.js `(response, dampingFraction)` model's ANGULAR
|
|
348
|
-
* PERIOD (the SwiftUI `.spring(response:)` axis), `ω₀ = 2π/response` — NOT a
|
|
349
|
-
* settle-duration. At ζ=1 the 2%-settle lands at `t₂ ≈ 5.83/ω₀ ≈ 0.93·response`
|
|
350
|
-
* (the `(1 + ω₀t)e^(−ω₀t)` critically-damped envelope); the shipped 0.55 settles
|
|
351
|
-
* at ≈0.51s. This is the AY.W-CON2 ω-reconcile: the engine keeps the keyframes.js
|
|
352
|
-
* `ω₀ = 2π/response` convention (the shared house model — `regen-spring-tokens.mjs`,
|
|
353
|
-
* `keyframes.d.ts:860-882`) and mints NO second ω formula; the SEMANTIC honesty
|
|
354
|
-
* (period, not settle) lives in this doc + the token comment + the settle-time unit
|
|
355
|
-
* assertion, so a consumer setting the token gets the documented behaviour at ANY ζ.
|
|
356
|
-
*/
|
|
357
|
-
export declare const WARP_RESPONSE = 0.55;
|
|
358
|
-
export declare const WARP_ZETA = 1;
|
|
359
|
-
/**
|
|
360
|
-
* Gravity-well tuning DEFAULTS (AY.W-CON2). The `--constellation-well-*` tokens
|
|
361
|
-
* override these on mount via `field.well.cfg`; these stay the fallback. SET by the
|
|
362
|
-
* §6 egg-live π readback (the field-perturbs-then-cools capture is the binding
|
|
363
|
-
* truth) — a moderate gain over a generous reach, a brisk ramp, a tight no-slingshot
|
|
364
|
-
* speed cap, and the singularity-soften floor.
|
|
365
|
-
*/
|
|
366
|
-
export declare const DEFAULT_WELL_CONFIG: ConstellationWellConfig;
|
|
367
|
-
/**
|
|
368
|
-
* The nearest DRIFTING node to `(px, py)` in canvas-local px — a linear O(count)
|
|
369
|
-
* min-d² scan (count 64 default — negligible; matches the O(count²) edge pass).
|
|
370
|
-
* "Lattice point" = the nearest drifting NODE (the constellation has NO fixed
|
|
371
|
-
* lattice). `excludeIdx` drops a node from the candidate set (the focal node
|
|
372
|
-
* excludes ITSELF, so a cursor-on-focal warp no-ops). Returns `-1` if no
|
|
373
|
-
* eligible node exists (empty field, or only the excluded node).
|
|
374
|
-
*/
|
|
375
|
-
export declare function nearestNode(field: ConstellationField, px: number, py: number, excludeIdx?: number): number;
|
|
376
|
-
/**
|
|
377
|
-
* Advance the focal-node warp spring one `dt` (seconds). A per-axis 2nd-order
|
|
378
|
-
* critically-damped integrator over `field.warp.{x,y}` toward the LIVE position
|
|
379
|
-
* of `field.nodes[field.warp.targetIdx]` — re-read EACH frame, so the spring
|
|
380
|
-
* CHASES a drifting target and arrives ON it (the identity-ride). No-ops when no
|
|
381
|
-
* warp is active (`targetIdx < 0`). `dt` is clamped to {@link WARP_DT_CLAMP} so a
|
|
382
|
-
* tab-throttle / offscreen-park-resume gap cannot teleport the mark.
|
|
383
|
-
*
|
|
384
|
-
* x += v·dt ; v += (−2ζω·v − ω²·(x − target))·dt
|
|
385
|
-
*
|
|
386
|
-
* Reads `(response, ζ)` from `field.warpCfg` (the tokenised override — AY.W-CON2),
|
|
387
|
-
* falling back to the shipped `WARP_RESPONSE`/`WARP_ZETA` defaults. `ω = 2π/response`
|
|
388
|
-
* is the keyframes.js `(response, dampingFraction)` convention (the SHARED house
|
|
389
|
-
* model — `ω₀` is the angular frequency, `response` its ANGULAR PERIOD, NOT a
|
|
390
|
-
* settle-duration; at ζ=1 the 2%-settle is `t₂ ≈ 5.83/ω₀ ≈ 0.93·response`). NO
|
|
391
|
-
* second ω formula is minted (the ω-reconcile). NOT its rAF — the FORBID-useSpring
|
|
392
|
-
* contract (a second rAF would defeat the parked-substrate one-path freeze).
|
|
393
|
-
*/
|
|
394
|
-
export declare function warpStep(field: ConstellationField, dt: number): void;
|
|
395
|
-
/**
|
|
396
|
-
* Point the warp at a node INDEX (the live target-source seam). The focal node
|
|
397
|
-
* re-points to `idx`; the spring chases `nodes[idx]`'s LIVE position FROM the
|
|
398
|
-
* focal mark's CURRENT position (`warp.{x,y}`) — a continuous spring-eased path,
|
|
399
|
-
* never a snap. The component seeds `warp.{x,y}` at field-center on first layout,
|
|
400
|
-
* so even the first warp springs from a real start point. `idx < 0` clears the
|
|
401
|
-
* warp (the focal mark is removed). Re-pointing does NOT zero the velocity, so a
|
|
402
|
-
* mid-flight re-target curves smoothly toward the new node.
|
|
403
|
-
*/
|
|
404
|
-
export declare function setWarpTarget(field: ConstellationField, idx: number): void;
|
|
405
|
-
/**
|
|
406
|
-
* Warp the focal node to the nearest drifting node to a canvas-LOCAL px point
|
|
407
|
-
* (the `warpTo(point)` primitive). The DEGENERATE case — the click's UNCONSTRAINED
|
|
408
|
-
* nearest node is already the current focal (cursor on/closest to the focal mark)
|
|
409
|
-
* — NO-OPS (returns the current focal; a click on yourself does not re-warp). Any
|
|
410
|
-
* OTHER click re-points to the nearest node, with the focal EXCLUDED from the
|
|
411
|
-
* candidate set (you never re-warp to yourself; the next-nearest wins). Returns
|
|
412
|
-
* the chosen node index, or `-1` when no eligible node exists. The component's
|
|
413
|
-
* `warpTo(clientX, clientY)` sugar maps client→local px via `toLocal` first.
|
|
414
|
-
*/
|
|
415
|
-
export declare function warpTo(field: ConstellationField, px: number, py: number): number;
|
|
416
|
-
/**
|
|
417
|
-
* Is the warp spring ARRIVED on its target (AY.W-CON1)? True when there is no
|
|
418
|
-
* active target (`targetIdx < 0`) OR the focal's gap to its LIVE target node is
|
|
419
|
-
* within {@link WARP_SETTLE_BAND}. A click-warp in flight (hundreds of px out)
|
|
420
|
-
* reports NOT arrived, so a user click always PRE-EMPTS the auto-drift cadence
|
|
421
|
-
* (the wander only re-targets a spring that has reached its current node). The
|
|
422
|
-
* gate is POSITION-only by design — a critically-damped spring tracking a drifting
|
|
423
|
-
* node carries a non-zero steady-state velocity forever, so a velocity term would
|
|
424
|
-
* never clear on a live field.
|
|
425
|
-
*/
|
|
426
|
-
export declare function warpSettled(field: ConstellationField): boolean;
|
|
427
|
-
/**
|
|
428
|
-
* Pick a random eligible node index for the auto-drift re-target (AY.W-CON1) —
|
|
429
|
-
* any node EXCEPT the current `focalIndex` (so the focal actually MOVES). `rng`
|
|
430
|
-
* is the seeded `() => number` in `[0, 1)`. A degenerate field (≤1 node, or only
|
|
431
|
-
* the current focal) returns the current focal, which `setWarpTarget` no-ops
|
|
432
|
-
* cleanly (no crash, no jump).
|
|
433
|
-
*/
|
|
434
|
-
export declare function pickWanderTarget(field: ConstellationField, rng: () => number): number;
|
|
435
|
-
/** Pass 1 — hairline edges between any two nodes within `link` px (alpha falls off with distance). */
|
|
436
|
-
export declare function drawEdges(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette): void;
|
|
437
|
-
/** Pass 2 — ambient node dots. */
|
|
438
|
-
export declare function drawNodes(ctx: CanvasRenderingContext2D, field: ConstellationField, palette: ConstellationPalette): void;
|
|
439
|
-
/** Pass 3 — the cursor joins the web: faint links to nodes within reach + a soft cursor node. */
|
|
440
|
-
export declare function drawPointerWeb(ctx: CanvasRenderingContext2D, field: ConstellationField, link: number, palette: ConstellationPalette, pointer: ConstellationPointer | null): void;
|
|
441
|
-
/** Pass 4 — tap ripples: expanding rings that fade over ~0.9s; consumed entries are spliced. */
|
|
442
|
-
export declare function drawRipples(ctx: CanvasRenderingContext2D, field: ConstellationField, now: number, ripples: ConstellationRipple[], palette: ConstellationPalette): void;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { ConstellationField, ConstellationPinnedDrift, ConstellationWarpConfig, ConstellationWellConfig } from "./constellationField";
|
|
2
|
+
import { DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_WELL_CONFIG, WARP_RESPONSE, WARP_ZETA, DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER } from "./constants";
|
|
3
|
+
export { DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_WELL_CONFIG, WARP_RESPONSE, WARP_ZETA };
|
|
4
|
+
export { DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER, };
|
|
5
|
+
/**
|
|
6
|
+
* Read the NUMERIC interaction-tuning tokens (the warp spring + the gravity-well
|
|
7
|
+
* gains) off a canvas's resolved custom properties — ONCE on mount (AY.W-CON2),
|
|
8
|
+
* via `parseFloat`, NOT per-frame `getComputedStyle` (the hot loop stays clean).
|
|
9
|
+
* Returns `{ warp, well }` configs the field carries; every member falls back to
|
|
10
|
+
* the shipped default when the token is absent (an SSR / no-token mount reads the
|
|
11
|
+
* byte-identical spring). The tokens are PLAIN numbers (`0.55`, `12000`), immune
|
|
12
|
+
* to the W30 `light-dark()`-into-Canvas2D leak (they never reach a `fillStyle`).
|
|
13
|
+
*/
|
|
14
|
+
export declare function readInteractionConfig(canvas: HTMLCanvasElement): {
|
|
15
|
+
warp: ConstellationWarpConfig;
|
|
16
|
+
well: ConstellationWellConfig;
|
|
17
|
+
wander: {
|
|
18
|
+
minIdle: number;
|
|
19
|
+
jitter: number;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Advance the gravity-well one `dt` (AY.W-CON2). A transient held-pointer force
|
|
24
|
+
* composed inside `stepField` (NO new rAF): ease `well.strength` toward
|
|
25
|
+
* `well.target` (1 held / 0 released) at `cfg.ramp`/s; while active, add an
|
|
26
|
+
* inverse-square pull toward the held point onto each node within `cfg.reach`
|
|
27
|
+
* (the `max(d, soften)` no-singularity floor + the `cfg.maxSpeed` no-slingshot
|
|
28
|
+
* clamp); ALWAYS ease every node's |v| back toward `speed` (the field-cools
|
|
29
|
+
* invariant — so a released well re-settles). No-ops (entirely skipped) when
|
|
30
|
+
* `field.well` is undefined → the default render is byte-identical to HEAD.
|
|
31
|
+
*
|
|
32
|
+
* `dt` is clamped to {@link WARP_DT_CLAMP} (the same park-resume guard the warp
|
|
33
|
+
* uses) so a tab-throttle gap cannot slingshot the field in one giant step.
|
|
34
|
+
*/
|
|
35
|
+
export declare function stepWell(field: ConstellationField, k: number, speed: number, dt: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* The nearest DRIFTING node to `(px, py)` in canvas-local px — a linear O(count)
|
|
38
|
+
* min-d² scan (count 64 default — negligible; matches the O(count²) edge pass).
|
|
39
|
+
* "Lattice point" = the nearest drifting NODE (the constellation has NO fixed
|
|
40
|
+
* lattice). `excludeIdx` drops a node from the candidate set (the focal node
|
|
41
|
+
* excludes ITSELF, so a cursor-on-focal warp no-ops). Returns `-1` if no
|
|
42
|
+
* eligible node exists (empty field, or only the excluded node).
|
|
43
|
+
*/
|
|
44
|
+
export declare function nearestNode(field: ConstellationField, px: number, py: number, excludeIdx?: number): number;
|
|
45
|
+
/**
|
|
46
|
+
* Advance the focal-node warp spring one `dt` (seconds). A per-axis 2nd-order
|
|
47
|
+
* critically-damped integrator over `field.warp.{x,y}` toward the LIVE position
|
|
48
|
+
* of `field.nodes[field.warp.targetIdx]` — re-read EACH frame, so the spring
|
|
49
|
+
* CHASES a drifting target and arrives ON it (the identity-ride). No-ops when no
|
|
50
|
+
* warp is active (`targetIdx < 0`). `dt` is clamped to {@link WARP_DT_CLAMP} so a
|
|
51
|
+
* tab-throttle / offscreen-park-resume gap cannot teleport the mark.
|
|
52
|
+
*
|
|
53
|
+
* x += v·dt ; v += (−2ζω·v − ω²·(x − target))·dt
|
|
54
|
+
*
|
|
55
|
+
* Reads `(response, ζ)` from `field.warpCfg` (the tokenised override — AY.W-CON2),
|
|
56
|
+
* falling back to the shipped `WARP_RESPONSE`/`WARP_ZETA` defaults. `ω = 2π/response`
|
|
57
|
+
* is the keyframes.js `(response, dampingFraction)` convention (the SHARED house
|
|
58
|
+
* model — `ω₀` is the angular frequency, `response` its ANGULAR PERIOD, NOT a
|
|
59
|
+
* settle-duration; at ζ=1 the 2%-settle is `t₂ ≈ 5.83/ω₀ ≈ 0.93·response`). NO
|
|
60
|
+
* second ω formula is minted (the ω-reconcile). NOT its rAF — the FORBID-useSpring
|
|
61
|
+
* contract (a second rAF would defeat the parked-substrate one-path freeze).
|
|
62
|
+
*/
|
|
63
|
+
export declare function warpStep(field: ConstellationField, dt: number): void;
|
|
64
|
+
/**
|
|
65
|
+
* Point the warp at a node INDEX (the live target-source seam). The focal node
|
|
66
|
+
* re-points to `idx`; the spring chases `nodes[idx]`'s LIVE position FROM the
|
|
67
|
+
* focal mark's CURRENT position (`warp.{x,y}`) — a continuous spring-eased path,
|
|
68
|
+
* never a snap. The component seeds `warp.{x,y}` at field-center on first layout,
|
|
69
|
+
* so even the first warp springs from a real start point. `idx < 0` clears the
|
|
70
|
+
* warp (the focal mark is removed). Re-pointing does NOT zero the velocity, so a
|
|
71
|
+
* mid-flight re-target curves smoothly toward the new node.
|
|
72
|
+
*/
|
|
73
|
+
export declare function setWarpTarget(field: ConstellationField, idx: number): void;
|
|
74
|
+
/**
|
|
75
|
+
* Warp the focal node to the nearest drifting node to a canvas-LOCAL px point
|
|
76
|
+
* (the `warpTo(point)` primitive). The DEGENERATE case — the click's UNCONSTRAINED
|
|
77
|
+
* nearest node is already the current focal (cursor on/closest to the focal mark)
|
|
78
|
+
* — NO-OPS (returns the current focal; a click on yourself does not re-warp). Any
|
|
79
|
+
* OTHER click re-points to the nearest node, with the focal EXCLUDED from the
|
|
80
|
+
* candidate set (you never re-warp to yourself; the next-nearest wins). Returns
|
|
81
|
+
* the chosen node index, or `-1` when no eligible node exists. The component's
|
|
82
|
+
* `warpTo(clientX, clientY)` sugar maps client→local px via `toLocal` first.
|
|
83
|
+
*/
|
|
84
|
+
export declare function warpTo(field: ConstellationField, px: number, py: number): number;
|
|
85
|
+
/**
|
|
86
|
+
* Is the warp spring ARRIVED on its target (AY.W-CON1)? True when there is no
|
|
87
|
+
* active target (`targetIdx < 0`) OR the focal's gap to its LIVE target node is
|
|
88
|
+
* within {@link WARP_SETTLE_BAND}. A click-warp in flight (hundreds of px out)
|
|
89
|
+
* reports NOT arrived, so a user click always PRE-EMPTS the auto-drift cadence
|
|
90
|
+
* (the wander only re-targets a spring that has reached its current node). The
|
|
91
|
+
* gate is POSITION-only by design — a critically-damped spring tracking a drifting
|
|
92
|
+
* node carries a non-zero steady-state velocity forever, so a velocity term would
|
|
93
|
+
* never clear on a live field.
|
|
94
|
+
*/
|
|
95
|
+
export declare function warpSettled(field: ConstellationField): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Pick a random eligible node index for the auto-drift re-target (AY.W-CON1) —
|
|
98
|
+
* any node EXCEPT the current `focalIndex` (so the focal actually MOVES). `rng`
|
|
99
|
+
* is the seeded `() => number` in `[0, 1)`. A degenerate field (≤1 node, or only
|
|
100
|
+
* the current focal) returns the current focal, which `setWarpTarget` no-ops
|
|
101
|
+
* cleanly (no crash, no jump).
|
|
102
|
+
*/
|
|
103
|
+
export declare function pickWanderTarget(field: ConstellationField, rng: () => number): number;
|
|
104
|
+
/**
|
|
105
|
+
* Build the cold `ConstellationPinnedDrift` state (AZ.W-CON-GEN G5) the field carries
|
|
106
|
+
* when `pinnedDrift` is on. The anchor is seeded LATER (on the first sized frame, off
|
|
107
|
+
* the pinned node's layout position) — here it is `(0,0)` until `stepPinnedDrift`
|
|
108
|
+
* stamps it on the first armed leg. The token-read re-points the un-overridden
|
|
109
|
+
* cadence members on mount (the same prop-over-token layering as the well/wander).
|
|
110
|
+
*/
|
|
111
|
+
export declare function makePinnedDrift(override?: {
|
|
112
|
+
wanderFrac?: number;
|
|
113
|
+
durMs?: number;
|
|
114
|
+
minIdle?: number;
|
|
115
|
+
jitter?: number;
|
|
116
|
+
}): ConstellationPinnedDrift;
|
|
117
|
+
/**
|
|
118
|
+
* Advance the autonomous PINNED-ANCHOR drift one frame (AZ.W-CON-GEN G5). DISTINCT
|
|
119
|
+
* from `wander` (warp re-target): this gently eases the PINNED node around its seeded
|
|
120
|
+
* ANCHOR within `wanderFrac` of the canvas, on a jittered cadence, via a closed-form
|
|
121
|
+
* easeInOutQuad over `now` (no integrator, no second rAF — it rides `stepField`'s ONE
|
|
122
|
+
* per-frame call). No-ops (skipped) when there is no `field.pinnedDrift`, no pinned
|
|
123
|
+
* node, or `now <= 0` (the default unit callers stay green) — so an absent
|
|
124
|
+
* `pinnedDrift` is byte-identical to HEAD.
|
|
125
|
+
*
|
|
126
|
+
* The anchor is captured ON the first armed frame off the pinned node's CURRENT
|
|
127
|
+
* position (its seeded rest), so a consumer that re-anchors the pin (a resize re-fit)
|
|
128
|
+
* gets a fresh anchor on the next leg. Each leg eases from the node's current point to
|
|
129
|
+
* a fresh point within `wanderFrac` of the anchor over `durMs`; between legs the node
|
|
130
|
+
* rests at the leg's end, the next leg arming after `minIdle + rng()*jitter`.
|
|
131
|
+
*/
|
|
132
|
+
export declare function stepPinnedDrift(field: ConstellationField, now: number, rng: () => number): void;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export { default as Constellation } from "./Constellation.vue";
|
|
2
|
-
export { seedField, stepField,
|
|
3
|
-
export
|
|
2
|
+
export { seedField, stepField, refitField, BASE_WIDTH, } from "./constellationField";
|
|
3
|
+
export { DEFAULT_K_FLOOR } from "./constants";
|
|
4
|
+
export { stepWell, nearestNode, readInteractionConfig, warpStep, warpTo, setWarpTarget, warpSettled, pickWanderTarget, stepPinnedDrift, makePinnedDrift, DEFAULT_WELL_CONFIG, DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER, WARP_RESPONSE, WARP_ZETA, } from "./constellationInteraction";
|
|
5
|
+
export { kVisOf, readPalette, drawEdges, drawNodes, drawPointerWeb, drawRipples, DEFAULT_PALETTE, } from "./constellationDraw";
|
|
6
|
+
export type { ConstellationNode, ConstellationRipple, ConstellationPointer, ConstellationPalette, ConstellationField, ConstellationWarp, ConstellationWarpConfig, ConstellationWander, ConstellationWell, ConstellationWellConfig, ConstellationPinnedDrift, ConstellationProps, } from "./constellationField";
|
|
@@ -13,11 +13,22 @@ type __VLS_Props = {
|
|
|
13
13
|
* @default false
|
|
14
14
|
*/
|
|
15
15
|
disableTransitions?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Opt-in slow-ECLIPSE register: a LONG-PRESS (vs the normal click) flips
|
|
18
|
+
* the mode through an indulgent, stretched sun↔moon cross-fade — the
|
|
19
|
+
* `--toggle-eclipse-duration` (≈1600ms) over the default 750ms. The bare
|
|
20
|
+
* `@click` flip is UNCHANGED (the default-path canary). Under
|
|
21
|
+
* `prefers-reduced-motion: reduce` the long-press flips INSTANTLY (no
|
|
22
|
+
* eclipse). Default false — the toggle behaves exactly as before.
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
eclipse?: boolean;
|
|
16
26
|
};
|
|
17
27
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
18
28
|
size: DarkModeToggleSize;
|
|
19
29
|
passive: boolean;
|
|
20
30
|
disableTransitions: boolean;
|
|
31
|
+
eclipse: boolean;
|
|
21
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
33
|
declare const _default: typeof __VLS_export;
|
|
23
34
|
export default _default;
|