@mkbabb/glass-ui 3.8.0 → 3.10.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 +1 -6
- package/dist/{CardAction-q2qHCJFG.js → CardAction-DuArVky-.js} +4 -4
- package/dist/{CommandShortcut-SzWRhROC.js → CommandShortcut-CefCj5mt.js} +7 -7
- package/dist/{ContextMenuSubContent-Do977Cbf.js → ContextMenuSubContent-Bhg4f5jX.js} +3 -3
- package/dist/{DataTable-CvlWXz65.js → DataTable-CUHMukiQ.js} +1 -1
- package/dist/{DialogContent-DjZWT3lK.js → DialogContent-BRkT1cjP.js} +1 -1
- package/dist/{MetricBadge-lTc002u2.js → MetricBadge-BZVWIxNy.js} +6 -4
- package/dist/{Notification-BxK8LZMw.js → Notification-DLMhblXR.js} +2 -2
- package/dist/{NumberFieldContent-CLNVR1iY.js → NumberFieldContent-BbLOh8RU.js} +2 -2
- package/dist/{SelectScrollDownButton-C7TRe-ep.js → SelectScrollDownButton-T32cVFeM.js} +3 -3
- package/dist/{SelectSeparator-L8pPEn4L.js → SelectSeparator-C4Ql0gzV.js} +1 -1
- package/dist/{Switch-LDKLmmgx.js → Switch-Ch-k3Rv-.js} +1 -1
- package/dist/{TabsList-qyHZ2lKY.js → TabsList-B8CVOQPC.js} +2 -2
- package/dist/{Toaster-CabYEEF_.js → Toaster-1rYWrmAm.js} +1 -1
- package/dist/{ToggleGroupItem-CkXUcBlt.js → ToggleGroupItem-Cev4pOVK.js} +4 -4
- package/dist/animated-digit.js +1 -1
- package/dist/api/index.d.ts +2 -1
- package/dist/api.js +1 -1
- package/dist/aurora.js +236 -545
- package/dist/{badge-DHQrc_GQ.js → badge-CaoFJzRb.js} +5 -5
- package/dist/badge.js +1 -1
- package/dist/{button-CAywcrhO.js → button-DN39cGqL.js} +13 -12
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +1 -1
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/{compile-BBTRjvQS.js → compile-BOXjLUxu.js} +24 -24
- package/dist/components/custom/aurora/composables/atoms.d.ts +21 -4
- package/dist/components/custom/aurora/composables/runtime.d.ts +0 -9
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +0 -11
- package/dist/components/custom/aurora/constants/renderMode.d.ts +0 -32
- package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -2
- package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +1 -1
- package/dist/components/custom/constellation/Constellation.vue.d.ts +73 -1
- package/dist/components/custom/constellation/constellationField.d.ts +255 -3
- package/dist/components/custom/constellation/index.d.ts +2 -2
- package/dist/components/custom/dock/DockSeparator.vue.d.ts +3 -0
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +4 -3
- package/dist/components/custom/dock/GlassDock.vue.d.ts +45 -63
- package/dist/components/custom/dock/composables/dockContext.d.ts +7 -0
- package/dist/components/custom/dock/index.d.ts +2 -1
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +29 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +6 -0
- package/dist/components/custom/fourier-field/index.d.ts +25 -1
- package/dist/components/custom/fourier-field/math.d.ts +3 -8
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +8 -10
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +19 -5
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +6 -14
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/types.d.ts +59 -25
- package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
- package/dist/components/custom/handmark/brush.d.ts +219 -0
- package/dist/components/custom/handmark/freehand.d.ts +69 -0
- package/dist/components/custom/handmark/geometry.d.ts +32 -0
- package/dist/components/custom/handmark/index.d.ts +21 -0
- package/dist/components/custom/handmark/ink.d.ts +11 -0
- package/dist/components/custom/handmark/texture.d.ts +39 -0
- package/dist/components/custom/handmark/types.d.ts +53 -0
- package/dist/components/custom/handmark/useHandMark.d.ts +66 -0
- package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +8 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +92 -0
- package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +49 -0
- package/dist/components/custom/tabs/index.d.ts +2 -5
- package/dist/components/ui/button/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +5 -3
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +3 -4
- package/dist/components/ui/slider/index.d.ts +22 -11
- package/dist/components/ui/tabs/TabsList.vue.d.ts +1 -1
- package/dist/composables/color/index.d.ts +12 -7
- package/dist/composables/context/createContext.d.ts +1 -1
- package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +1 -6
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/composables/motion/useRouteTransition.d.ts +42 -0
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +1 -1
- package/dist/constellation.js +212 -72
- package/dist/context-menu.js +1 -1
- package/dist/controls.js +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck-progress.js +1 -1
- package/dist/dialog.js +1 -1
- package/dist/dock.js +257 -243
- package/dist/{dropdown-menu-B_4bWyyG.js → dropdown-menu-D77jX6Df.js} +3 -3
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +61 -38
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +89 -97
- package/dist/fourier-math.d.ts +1 -0
- package/dist/fourier-math.js +2 -0
- package/dist/glass-panel.js +1 -1
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +107 -109
- package/dist/goo-blob.js +316 -297
- package/dist/handmark.d.ts +1 -0
- package/dist/handmark.js +609 -0
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/keyboard.js +1 -1
- package/dist/labeled-field.js +5 -5
- package/dist/math-DTpRVC0e.js +27 -0
- package/dist/{menuItemVariants-DKM85SNE.js → menuItemVariants-CCoBNkU5.js} +1 -1
- package/dist/metric-badge.js +1 -1
- package/dist/metric-stack.js +1 -1
- package/dist/motion-core.js +70 -69
- package/dist/motion.js +2 -2
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +1 -1
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +4 -4
- package/dist/select.js +2 -2
- package/dist/{slider-D9puf-Ko.js → slider-CyzcxBoh.js} +6 -6
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +1 -1
- package/dist/status-dot.js +17 -16
- package/dist/styles/animations.css +80 -20
- package/dist/styles/cards.css +2 -2
- package/dist/styles/components.css +1 -1
- package/dist/styles/dock/density.css +230 -0
- package/dist/styles/dock/layer-group.css +275 -0
- package/dist/styles/dock/layers.css +355 -0
- package/dist/styles/dock/morph.css +244 -0
- package/dist/styles/dock/overflow.css +201 -0
- package/dist/styles/dock/shell.css +457 -0
- package/dist/styles/dock-controls.css +205 -55
- package/dist/styles/dock.css +42 -1349
- package/dist/styles/drawer.css +12 -4
- package/dist/styles/glass.css +535 -78
- package/dist/styles/index.css +12 -11
- package/dist/styles/paper.css +68 -2
- package/dist/styles/theme.css +58 -0
- package/dist/styles/tokens.css +601 -69
- package/dist/styles/transitions.css +20 -2
- package/dist/styles/utilities.css +218 -78
- package/dist/styles/view-transition.css +51 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +182 -151
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-Bcpy5Etf.js} +1 -1
- package/dist/{useConfiguratorState-CMff4GzH.js → useConfiguratorState-DxAqksK6.js} +21 -10
- package/dist/{useGlassRenderer-5I0YkI4t.js → useGlassRenderer-D7YGOYiM.js} +1 -1
- package/dist/useViewTransition-DaN5Zrox.js +21 -0
- package/dist/vReveal-zUIQk-rJ.js +53 -0
- package/dist/watercolor-dot.js +1 -1
- package/package.json +80 -39
- package/src/styles/animations.css +80 -20
- package/src/styles/cards.css +2 -2
- package/src/styles/dock/density.css +230 -0
- package/src/styles/dock/layer-group.css +275 -0
- package/src/styles/dock/layers.css +355 -0
- package/src/styles/dock/morph.css +244 -0
- package/src/styles/dock/overflow.css +201 -0
- package/src/styles/dock/shell.css +457 -0
- package/src/styles/dock-controls.css +205 -55
- package/src/styles/dock.css +42 -1349
- package/src/styles/drawer.css +12 -4
- package/src/styles/glass.css +535 -78
- package/src/styles/index.css +12 -11
- package/src/styles/paper.css +68 -2
- package/src/styles/theme.css +58 -0
- package/src/styles/tokens.css +601 -69
- package/src/styles/transitions.css +20 -2
- package/src/styles/utilities.css +218 -78
- package/src/styles/view-transition.css +51 -0
- package/dist/DiscoGlyph-CG0F410s.js +0 -132
- package/dist/GlyphFace-DRjDkB0s.js +0 -51
- package/dist/UnderlineTabs-Uxn-R3MT.js +0 -39
- package/dist/components/custom/aurora/composables/gpuRuntime.d.ts +0 -16
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +0 -7
- package/dist/components/custom/aurora/constants/shaders/painterly.wgsl.d.ts +0 -7
- package/dist/components/custom/aurora/constants/shaders/wake.wgsl.d.ts +0 -4
- package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +0 -58
- package/dist/components/custom/disco-glyph/index.d.ts +0 -1
- package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +0 -36
- package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +0 -28
- package/dist/components/custom/glass-carousel/index.d.ts +0 -4
- package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +0 -30
- package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +0 -64
- package/dist/components/custom/glyph-face/index.d.ts +0 -2
- package/dist/components/custom/glyph-face/keys.d.ts +0 -9
- package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +0 -73
- package/dist/components/custom/responsive-tabs/index.d.ts +0 -2
- package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +0 -27
- package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +0 -60
- package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +0 -20
- package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +0 -39
- package/dist/composables/glass/createGPUCanvas.d.ts +0 -40
- package/dist/disco-glyph.d.ts +0 -1
- package/dist/disco-glyph.js +0 -2
- package/dist/glass-carousel.d.ts +0 -1
- package/dist/glass-carousel.js +0 -219
- package/dist/glyph-face.d.ts +0 -1
- package/dist/glyph-face.js +0 -3
- package/dist/keys-BsYjEFOW.js +0 -9
- package/dist/responsive-tabs.d.ts +0 -1
- package/dist/responsive-tabs.js +0 -95
- package/dist/styles/disco-glyph.css +0 -26
- package/dist/styles/glyph-face.css +0 -92
- package/dist/vReveal-CqaCz_mC.js +0 -44
- package/src/styles/disco-glyph.css +0 -26
- package/src/styles/glyph-face.css +0 -92
- /package/dist/{DeckProgress-AVgbIULY.js → DeckProgress-Dmk4_AKN.js} +0 -0
- /package/dist/{HoverPopover-D56O6Ylp.js → HoverPopover-2LOIW34a.js} +0 -0
- /package/dist/{IconTooltip-D2T5nYOM.js → IconTooltip-Cus0fvK0.js} +0 -0
- /package/dist/{Input-DVG_J0ne.js → Input-xuDwALQR.js} +0 -0
- /package/dist/{ScrollingText-CVyqxvfv.js → ScrollingText-BPP84wKo.js} +0 -0
- /package/dist/{color-DMLTunJK.js → color-C5ls_QF7.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants-yKeKnE84.js} +0 -0
- /package/dist/{presets-D1XPuTj-.js → presets-Dkdv55Gt.js} +0 -0
- /package/dist/{prng-COGhh02-.js → prng-D27-B3tK.js} +0 -0
- /package/dist/{useGlobalDark-D3EBWzXK.js → useGlobalDark-d6waty-X.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Cck5Uxk8.js} +0 -0
- /package/dist/{useInterval-CcLfq2WU.js → useInterval-Dsmqwi03.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-CyIYrndH.js} +0 -0
- /package/dist/{useScrollProgress-C9ysDic5.js → useScrollProgress-CffFGLa5.js} +0 -0
- /package/dist/{useSortable-MGAbCGVJ.js → useSortable-C8ReQ50P.js} +0 -0
- /package/dist/{useTextHighlight-9nMW23Qb.js → useTextHighlight-CWEi25hf.js} +0 -0
|
@@ -1,33 +1,8 @@
|
|
|
1
1
|
type DockDensity = "compact" | "comfortable" | "spacious" | "audacious";
|
|
2
|
-
|
|
3
|
-
collapseDelay?: number;
|
|
4
|
-
startCollapsed?: boolean;
|
|
2
|
+
interface DockCommonProps {
|
|
5
3
|
fitContent?: boolean;
|
|
6
4
|
position?: "fixed" | "inline" | "sticky";
|
|
7
5
|
alwaysExpanded?: boolean;
|
|
8
|
-
/**
|
|
9
|
-
* Visual/behavioral preset.
|
|
10
|
-
* `dock` — the horizontal floating dock (default).
|
|
11
|
-
* `rail` — the vertical icon rail variant used by
|
|
12
|
-
* app chrome (stadium-pill silhouette,
|
|
13
|
-
* `--glass-bg-wash` plate).
|
|
14
|
-
* `instrument-strip` — vertical chassis-strip mode for consumer
|
|
15
|
-
* cockpits composing an instrument-cluster
|
|
16
|
-
* gauge column (the speedtest
|
|
17
|
-
* SurveyResultDock consumer). Drops the
|
|
18
|
-
* rail variant's `--radius-pill` extreme
|
|
19
|
-
* and adopts the `<InstrumentChassis>`
|
|
20
|
-
* family's surface vocabulary
|
|
21
|
-
* (`--radius-card` border-radius,
|
|
22
|
-
* `--glass-bg-chassis` background,
|
|
23
|
-
* `--glass-border-quiet` border,
|
|
24
|
-
* `--glass-shadow-quiet` shadow, plus an
|
|
25
|
-
* engraved-bezel `::before` inner stroke
|
|
26
|
-
* matching `InstrumentChassis::before`).
|
|
27
|
-
* No new tokens — lifts the existing
|
|
28
|
-
* chassis vocabulary. AJ-W1-δ / G-AJ-D7.
|
|
29
|
-
*/
|
|
30
|
-
variant?: "dock" | "rail" | "instrument-strip";
|
|
31
6
|
/**
|
|
32
7
|
* Corner treatment.
|
|
33
8
|
* `"pill"` — the stadium silhouette (default).
|
|
@@ -36,9 +11,12 @@ type __VLS_Props = {
|
|
|
36
11
|
* radius (`--dock-card-radius`, default `--radius-3xl`)
|
|
37
12
|
* ABOVE 2xl, below pill — does NOT collapse to a stadium.
|
|
38
13
|
* Collapsed it returns to a pill; the pill↔card swap
|
|
39
|
-
* morphs on the `--dock-motion-resize` spring.
|
|
40
|
-
*
|
|
41
|
-
*
|
|
14
|
+
* morphs on the `--dock-motion-resize` spring. AX.W56's
|
|
15
|
+
* squircle policy applies `corner-shape:
|
|
16
|
+
* var(--corner-shape-bigdock)` here under `@supports
|
|
17
|
+
* (corner-shape: superellipse(2))` — the big-dock is the ONE
|
|
18
|
+
* surface where the superellipse reads (cards/pills stay
|
|
19
|
+
* round); the border-radius arc is the cross-engine contract.
|
|
42
20
|
*
|
|
43
21
|
* `"pill"`/`"rounded"` previously bound ONLY under the vertical rail
|
|
44
22
|
* variant — on a horizontal dock the prop silently no-op'd. AW.W3b adds
|
|
@@ -46,24 +24,11 @@ type __VLS_Props = {
|
|
|
46
24
|
* so `shape` now paints on a horizontal dock too.
|
|
47
25
|
*/
|
|
48
26
|
shape?: "pill" | "rounded" | "card";
|
|
49
|
-
/**
|
|
50
|
-
* In-cap arrangement. `"linear"` (default) lays the active layer out as a
|
|
51
|
-
* linear row/column. `"grid"` makes the active layer a self-wrapping tile
|
|
52
|
-
* grid (Launchpad/Stage-Manager track symmetry — `auto-fill` columns of
|
|
53
|
-
* `--dock-tile-min`). ORTHOGONAL to `overflow` (the OVER-cap strategy):
|
|
54
|
-
* `layout` is the IN-cap arrangement.
|
|
55
|
-
*
|
|
56
|
-
* Hard contract: a `layout="grid"` dock is `alwaysExpanded` (a 2D panel
|
|
57
|
-
* does not read as a collapsible pill, and no width morph means no
|
|
58
|
-
* per-frame grid reflow). The canonical pairing is
|
|
59
|
-
* `shape="card" layout="grid"` (the props stay independent — no
|
|
60
|
-
* auto-implication of `shape`).
|
|
61
|
-
*/
|
|
62
|
-
layout?: "linear" | "grid";
|
|
63
27
|
/**
|
|
64
28
|
* Layout axis of the dock. `"horizontal"` (default) lays items out
|
|
65
29
|
* left-to-right and animates `width`; `"vertical"` lays items out
|
|
66
|
-
* top-to-bottom and animates `height`.
|
|
30
|
+
* top-to-bottom and animates `height`. IGNORED under `variant="rail"` /
|
|
31
|
+
* `"instrument-strip"` (those force vertical by construction).
|
|
67
32
|
*/
|
|
68
33
|
orientation?: "horizontal" | "vertical";
|
|
69
34
|
/**
|
|
@@ -115,16 +80,45 @@ type __VLS_Props = {
|
|
|
115
80
|
* size the dock relies on.
|
|
116
81
|
*/
|
|
117
82
|
containerName?: string;
|
|
118
|
-
}
|
|
119
|
-
|
|
83
|
+
}
|
|
84
|
+
interface DockVariantProps extends DockCommonProps {
|
|
85
|
+
variant?: "dock";
|
|
86
|
+
/** Idle-collapse delay in ms (default 2000). DOCK-ONLY — a rail never collapses. */
|
|
87
|
+
collapseDelay?: number;
|
|
88
|
+
/** Start in the collapsed state (default true). DOCK-ONLY — a rail is always expanded. */
|
|
89
|
+
startCollapsed?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* In-cap arrangement. `"linear"` (default) lays the active layer out as a
|
|
92
|
+
* linear row/column. `"grid"` makes the active layer a self-wrapping tile
|
|
93
|
+
* grid (Launchpad/Stage-Manager track symmetry — `auto-fill` columns of
|
|
94
|
+
* `--dock-tile-min`). ORTHOGONAL to `overflow` (the OVER-cap strategy):
|
|
95
|
+
* `layout` is the IN-cap arrangement.
|
|
96
|
+
*
|
|
97
|
+
* Hard contract: a `layout="grid"` dock is `alwaysExpanded` (a 2D panel
|
|
98
|
+
* does not read as a collapsible pill, and no width morph means no
|
|
99
|
+
* per-frame grid reflow). The canonical pairing is
|
|
100
|
+
* `shape="card" layout="grid"` (the props stay independent — no
|
|
101
|
+
* auto-implication of `shape`). DOCK-ONLY — the grid is a horizontal big-dock
|
|
102
|
+
* arrangement, never a rail's.
|
|
103
|
+
*/
|
|
104
|
+
layout?: "linear" | "grid";
|
|
105
|
+
}
|
|
106
|
+
interface DockRailProps extends DockCommonProps {
|
|
107
|
+
variant: "rail" | "instrument-strip";
|
|
108
|
+
}
|
|
109
|
+
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_14: {};
|
|
120
110
|
type __VLS_Slots = {} & {
|
|
121
|
-
|
|
111
|
+
persistent?: (props: typeof __VLS_1) => any;
|
|
112
|
+
} & {
|
|
113
|
+
default?: (props: typeof __VLS_3) => any;
|
|
114
|
+
} & {
|
|
115
|
+
collapsed?: (props: typeof __VLS_5) => any;
|
|
122
116
|
} & {
|
|
123
|
-
|
|
117
|
+
default?: (props: typeof __VLS_7) => any;
|
|
124
118
|
} & {
|
|
125
|
-
|
|
119
|
+
collapsed?: (props: typeof __VLS_14) => any;
|
|
126
120
|
};
|
|
127
|
-
declare const __VLS_base: import("vue").DefineComponent<
|
|
121
|
+
declare const __VLS_base: import("vue").DefineComponent<DockVariantProps | DockRailProps, {
|
|
128
122
|
expanded: import("vue").Ref<boolean, boolean>;
|
|
129
123
|
isPinned: import("vue").Ref<boolean, boolean>;
|
|
130
124
|
isHeld: import("vue").ComputedRef<boolean>;
|
|
@@ -133,19 +127,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
|
133
127
|
collapse: () => void;
|
|
134
128
|
keepOpen: () => void;
|
|
135
129
|
release: () => void;
|
|
136
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<
|
|
137
|
-
position: "fixed" | "inline" | "sticky";
|
|
138
|
-
overflow: "grow" | "wrap" | "scroll";
|
|
139
|
-
orientation: "horizontal" | "vertical";
|
|
140
|
-
variant: "dock" | "rail" | "instrument-strip";
|
|
141
|
-
density: DockDensity;
|
|
142
|
-
shape: "pill" | "rounded" | "card";
|
|
143
|
-
layout: "linear" | "grid";
|
|
144
|
-
collapseDelay: number;
|
|
145
|
-
alwaysExpanded: boolean;
|
|
146
|
-
startCollapsed: boolean;
|
|
147
|
-
fitContent: boolean;
|
|
148
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
130
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DockVariantProps | DockRailProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
149
131
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
150
132
|
declare const _default: typeof __VLS_export;
|
|
151
133
|
export default _default;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ComputedRef } from "vue";
|
|
2
2
|
export type DockOrientation = "horizontal" | "vertical";
|
|
3
|
+
export type DockLayout = "linear" | "grid";
|
|
3
4
|
/**
|
|
4
5
|
* Dock context surfaces the dock id + orientation + held-state coordination
|
|
5
6
|
* to descendants.
|
|
@@ -25,6 +26,12 @@ export type DockOrientation = "horizontal" | "vertical";
|
|
|
25
26
|
export interface DockContext {
|
|
26
27
|
id: string;
|
|
27
28
|
orientation: ComputedRef<DockOrientation>;
|
|
29
|
+
/**
|
|
30
|
+
* In-cap arrangement (`linear` row/column vs `grid` tile panel). AX.W45 —
|
|
31
|
+
* `<DockSeparator>` reads this to paint a full-row section break in a grid dock
|
|
32
|
+
* (a 1px perpendicular hairline is useless in a 2D tile grid).
|
|
33
|
+
*/
|
|
34
|
+
layout: ComputedRef<DockLayout>;
|
|
28
35
|
/** Acquire a keep-open token; suppresses timer-based collapse. */
|
|
29
36
|
keepOpen: () => void;
|
|
30
37
|
/** Release a previously-acquired keep-open token. */
|
|
@@ -6,7 +6,8 @@ export { default as DockBackgroundToggle } from "./DockBackgroundToggle.vue";
|
|
|
6
6
|
export { default as DockTabButton } from "./DockTabButton.vue";
|
|
7
7
|
export { default as DockSelectTrigger } from "./DockSelectTrigger.vue";
|
|
8
8
|
export { default as DockDropdownTrigger } from "./DockDropdownTrigger.vue";
|
|
9
|
+
export { default as DockSeparator } from "./DockSeparator.vue";
|
|
9
10
|
export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./composables";
|
|
10
11
|
export { useLayerTransition } from "./composables";
|
|
11
12
|
export type { UseLayerTransitionOptions, UseLayerTransitionReturn, } from "./composables";
|
|
12
|
-
export { DOCK_CONTEXT_KEY, useDockContext, useOptionalDockContext, provideDockContext, type DockContext, type DockOrientation, } from "./composables/dockContext";
|
|
13
|
+
export { DOCK_CONTEXT_KEY, useDockContext, useOptionalDockContext, provideDockContext, type DockContext, type DockOrientation, type DockLayout, } from "./composables/dockContext";
|
|
@@ -6,6 +6,20 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
6
6
|
expandLabel?: string;
|
|
7
7
|
/** Accessible name for the collapse (exit fullscreen) button. */
|
|
8
8
|
collapseLabel?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Opt into the `gl-expand` plate → fullscreen MORPH (D6.c M7). When set,
|
|
11
|
+
* the inline plate and the teleported fullscreen surface share ONE
|
|
12
|
+
* `view-transition-name` (this prop, suffixed by an app-unique `useId()`
|
|
13
|
+
* so two ExpandableContainers on a page never collide their groups — the
|
|
14
|
+
* proof:vt-names mandate), and the open/close toggle is wrapped in
|
|
15
|
+
* `startViewTransition` so the plate's rect MORPHS to the fullscreen rect
|
|
16
|
+
* (and back) instead of jump-cutting. A passed string namespaces the pair
|
|
17
|
+
* (e.g. `"chart"`); pass an empty string for a bare `useId()` name.
|
|
18
|
+
* Omitted (default) ⇒ NO view-transition-name, the legacy instant toggle —
|
|
19
|
+
* byte-identical to the pre-M7 behaviour. PRM + unsupported engines take
|
|
20
|
+
* `startViewTransition`'s instant fallback (the open/close still runs).
|
|
21
|
+
*/
|
|
22
|
+
viewTransitionName?: string;
|
|
9
23
|
} & {
|
|
10
24
|
/**
|
|
11
25
|
* Two-way `open` model so consumers can drive fullscreen externally
|
|
@@ -21,6 +35,20 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
21
35
|
expandLabel?: string;
|
|
22
36
|
/** Accessible name for the collapse (exit fullscreen) button. */
|
|
23
37
|
collapseLabel?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Opt into the `gl-expand` plate → fullscreen MORPH (D6.c M7). When set,
|
|
40
|
+
* the inline plate and the teleported fullscreen surface share ONE
|
|
41
|
+
* `view-transition-name` (this prop, suffixed by an app-unique `useId()`
|
|
42
|
+
* so two ExpandableContainers on a page never collide their groups — the
|
|
43
|
+
* proof:vt-names mandate), and the open/close toggle is wrapped in
|
|
44
|
+
* `startViewTransition` so the plate's rect MORPHS to the fullscreen rect
|
|
45
|
+
* (and back) instead of jump-cutting. A passed string namespaces the pair
|
|
46
|
+
* (e.g. `"chart"`); pass an empty string for a bare `useId()` name.
|
|
47
|
+
* Omitted (default) ⇒ NO view-transition-name, the legacy instant toggle —
|
|
48
|
+
* byte-identical to the pre-M7 behaviour. PRM + unsupported engines take
|
|
49
|
+
* `startViewTransition`'s instant fallback (the open/close still runs).
|
|
50
|
+
*/
|
|
51
|
+
viewTransitionName?: string;
|
|
24
52
|
} & {
|
|
25
53
|
/**
|
|
26
54
|
* Two-way `open` model so consumers can drive fullscreen externally
|
|
@@ -31,6 +59,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
31
59
|
}> & Readonly<{
|
|
32
60
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
33
61
|
}>, {
|
|
62
|
+
viewTransitionName: string;
|
|
34
63
|
buttonPosition: "left" | "right";
|
|
35
64
|
expandLabel: string;
|
|
36
65
|
collapseLabel: string;
|
|
@@ -32,6 +32,12 @@ type __VLS_Props = {
|
|
|
32
32
|
seed?: string;
|
|
33
33
|
/** When true, paint ONE static deterministic best-frame and never animate (the capture/export lever). Default false. */
|
|
34
34
|
freeze?: boolean;
|
|
35
|
+
/** Outer loudness envelope (the Aurora `opacityCeiling` shape). Scales the
|
|
36
|
+
* resolved `peakAlpha`/`headGlowAlpha` at the PAINT layer (a per-LAYER
|
|
37
|
+
* multiply, not a uniform CSS opacity). Default 1 (the bundle's resting
|
|
38
|
+
* loudness); clamped [0, 2] — the field's ~2 upper bound lets a hero push
|
|
39
|
+
* brighter than the recessed default without runaway. */
|
|
40
|
+
intensity?: number;
|
|
35
41
|
};
|
|
36
42
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
37
43
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,2 +1,26 @@
|
|
|
1
|
+
import type { ColorResolver } from "../../../composables/color";
|
|
1
2
|
export { default as FourierField } from "./FourierField.vue";
|
|
2
|
-
export { comp,
|
|
3
|
+
export { comp, positionsAt, makeEllipticSpectrum, type BasisComponent, type EllipticSpectrumOptions, } from "./math";
|
|
4
|
+
/** The configuration-BUNDLE axis — `hero` (epicycles on, fewer harmonics) vs
|
|
5
|
+
* `final` (epicycles off, denser). Not a recolour of one curve; one engine,
|
|
6
|
+
* two presets. */
|
|
7
|
+
export type FourierFieldVariant = "hero" | "final";
|
|
8
|
+
/** The props a consumer forwards when wrapping `<FourierField>` (the seeded
|
|
9
|
+
* inverse-DFT epicycle background; ships via `/fourier-field`). Mirrors the
|
|
10
|
+
* component's inline `defineProps` shape (an SFC cannot export its inline
|
|
11
|
+
* props type). */
|
|
12
|
+
export interface FourierFieldProps {
|
|
13
|
+
/** Configuration bundle. Default `hero`. */
|
|
14
|
+
variant?: FourierFieldVariant;
|
|
15
|
+
/** Base CSS color (a `var()`/`light-dark()` token resolves against the host). */
|
|
16
|
+
color: string;
|
|
17
|
+
/** REQUIRED color seam — resolves a concrete color to a gamma-sRGB [r,g,b] triple in [0,1]. */
|
|
18
|
+
colorResolver: ColorResolver;
|
|
19
|
+
/** Extra seed mixed into the spectrum PRNG for a unique-but-reproducible curve. Default "". */
|
|
20
|
+
seed?: string;
|
|
21
|
+
/** Paint ONE static deterministic best-frame and never animate (the capture lever). Default false. */
|
|
22
|
+
freeze?: boolean;
|
|
23
|
+
/** Outer loudness envelope (the Aurora `opacityCeiling` shape). Scales the
|
|
24
|
+
* resolved `peakAlpha`/`headGlowAlpha` at the paint layer. Default 1; clamped [0, 2]. */
|
|
25
|
+
intensity?: number;
|
|
26
|
+
}
|
|
@@ -15,17 +15,12 @@ export interface BasisComponent {
|
|
|
15
15
|
* coefficient `(re, im)`, deriving the polar `amplitude`/`phase`.
|
|
16
16
|
*/
|
|
17
17
|
export declare function comp(index: number, re: number, im: number): BasisComponent;
|
|
18
|
-
/**
|
|
19
|
-
* Sum `c_k * exp(2*pi*i*k*t)` — the curve point at parameter `t`. `maxTerms`
|
|
20
|
-
* truncates the series (the partial-sum read). Returns the complex value as
|
|
21
|
-
* `[re, im]` (the curve's `[x, y]` before view-fit).
|
|
22
|
-
*/
|
|
23
|
-
export declare function evalFourier(components: BasisComponent[], t: number, maxTerms?: number): [number, number];
|
|
24
18
|
/**
|
|
25
19
|
* The epicycle chain at parameter `t`: the running tip of each phasor stacked on
|
|
26
20
|
* the last, starting at the origin. `positions[0]` is `[0, 0]`; the final entry
|
|
27
|
-
* is the curve point
|
|
28
|
-
* truncates the chain (draw fewer arms than the spectrum
|
|
21
|
+
* is the curve point — the inverse-DFT sum `Σ c_k * exp(2*pi*i*k*t)` at the same
|
|
22
|
+
* `t`. `maxCircles` truncates the chain (draw fewer arms than the spectrum
|
|
23
|
+
* carries).
|
|
29
24
|
*/
|
|
30
25
|
export declare function positionsAt(components: BasisComponent[], t: number, maxCircles?: number): [number, number][];
|
|
31
26
|
/** Tuning for {@link makeEllipticSpectrum}. */
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { ColorResolver } from "../../../composables/color";
|
|
2
1
|
import type { BlobMood, BlobConfig } from "./types";
|
|
3
2
|
/**
|
|
4
3
|
* GooBlob — a gooey metaball creature on a WebGL2 canvas.
|
|
@@ -8,23 +7,22 @@ import type { BlobMood, BlobConfig } from "./types";
|
|
|
8
7
|
* satellite system drive the motion. The renderer composes the `useWebGLCanvas`
|
|
9
8
|
* substrate — it never bootstraps its own context.
|
|
10
9
|
*
|
|
11
|
-
* Color is resolved through
|
|
12
|
-
* paints the GAMMA-sRGB triple
|
|
13
|
-
* `
|
|
14
|
-
*
|
|
15
|
-
*
|
|
10
|
+
* Color is resolved INTERNALLY through the `/color` leaf (`cssToOklch →
|
|
11
|
+
* oklchToGammaRgb`): the blob paints the GAMMA-sRGB triple of the `color` prop. A
|
|
12
|
+
* `lab()`/`oklch()`/`hsl()`/hex string resolves correctly; a `var(--token)` is
|
|
13
|
+
* un-wrapped to a concrete string by the SFC's `resolveTokenColor` leaf BEFORE the
|
|
14
|
+
* renderer sees it (the DOM-free renderer contract).
|
|
16
15
|
*
|
|
17
|
-
* Config is resolved with
|
|
16
|
+
* Config is resolved with a loud discipline: either
|
|
18
17
|
* `provide(BLOB_CONFIG_KEY, cfg)` from an ancestor OR pass an explicit `config`
|
|
19
18
|
* prop. A mount with NEITHER throws — there is no silent reactive-defaults
|
|
20
19
|
* synthesis. A consumer that genuinely wants the stock tuning passes
|
|
21
20
|
* `BLOB_CONFIG_DEFAULTS` explicitly.
|
|
22
21
|
*/
|
|
23
22
|
type __VLS_Props = {
|
|
24
|
-
/** Base CSS color string (
|
|
23
|
+
/** Base CSS color string (a `var()`/`oklch()`/`lab()`/`hsl()`/hex form; resolved
|
|
24
|
+
* internally through the `/color` leaf to a gamma-sRGB triple). */
|
|
25
25
|
color: string;
|
|
26
|
-
/** REQUIRED color seam — resolves `color` to a gamma-sRGB [r,g,b] triple in [0,1]. */
|
|
27
|
-
colorResolver: ColorResolver;
|
|
28
26
|
/**
|
|
29
27
|
* REQUIRED unless an ancestor `provide(BLOB_CONFIG_KEY, …)` supplies it.
|
|
30
28
|
* The metaball tuning. Pass `BLOB_CONFIG_DEFAULTS` for the stock look.
|
|
@@ -9,17 +9,31 @@ export interface MoodInteraction {
|
|
|
9
9
|
/** ms since the last pointer activity (drives `sleepy` past IDLE_SLEEP_MS). */
|
|
10
10
|
idleMs: number;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Who is driving a `setMood` retarget (AX.W46 D7). `"auto"` — the autonomic arc
|
|
14
|
+
* (`update` from the pointer/idle state); `"manual"` — the public expose (an imperative
|
|
15
|
+
* `setMood` from a consumer / the demo mood pills). A manual retarget arms the
|
|
16
|
+
* `manualOverride` latch the auto-arc respects.
|
|
17
|
+
*/
|
|
18
|
+
export type MoodSource = "auto" | "manual";
|
|
19
|
+
/** The options bag for `setMood` — the source discriminant (default `"manual"`). */
|
|
20
|
+
export interface SetMoodOptions {
|
|
21
|
+
/** Who is driving the retarget. Defaults to `"manual"` (the public-expose default). */
|
|
22
|
+
source?: MoodSource;
|
|
23
|
+
}
|
|
12
24
|
/**
|
|
13
25
|
* Animates the blob's mood parameters — a cross-fade between named mood targets
|
|
14
|
-
* driven per frame by `tick(dt)`. `setMood` retargets
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
26
|
+
* driven per frame by `tick(dt)`. `setMood(mood, { source })` retargets (a `"manual"`
|
|
27
|
+
* source — the default — pins the mood above the auto-arc, AX.W46 D7);
|
|
28
|
+
* `update(interaction)` drives the AUTONOMIC arc from the AW.W10 pointer/idle state
|
|
29
|
+
* (curious on approach, excited on click, sleepy after inactivity), always
|
|
30
|
+
* `source: "auto"`, and early-returns while a manual mood is pinned; `params` is the
|
|
31
|
+
* eased current value the renderer reads.
|
|
18
32
|
*/
|
|
19
33
|
export declare function useBlobMood(): {
|
|
20
34
|
currentMood: Readonly<Ref<BlobMood>>;
|
|
21
35
|
params: Readonly<Ref<MoodParams>>;
|
|
22
|
-
setMood: (mood: BlobMood) => void;
|
|
36
|
+
setMood: (mood: BlobMood, options?: SetMoodOptions) => void;
|
|
23
37
|
update: (interaction: MoodInteraction) => void;
|
|
24
38
|
tick: (dt: number) => void;
|
|
25
39
|
/** AX.W16 — the quiescence at-rest predicate the renderer's demand gate reads. */
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import type { ColorResolver } from "../../../../composables/color";
|
|
3
2
|
import type { BlobConfig } from "../types";
|
|
4
3
|
import type { BlobMoodSystem } from "./useBlobMood";
|
|
5
4
|
import type { BlobPointer } from "./useBlobPointer";
|
|
@@ -24,23 +23,13 @@ export interface UseMetaballRendererOptions {
|
|
|
24
23
|
pointer: BlobPointer;
|
|
25
24
|
satellites: BlobSatelliteSystem;
|
|
26
25
|
config: BlobConfig;
|
|
27
|
-
/**
|
|
28
|
-
* The injected color seam (DEC-AT-2). Resolves a CONCRETE CSS color string to a
|
|
29
|
-
* GAMMA-sRGB triple in [0,1] fed straight into the shader's base-color uniform —
|
|
30
|
-
* the faithful AU.W7 lift paints gamma. REQUIRED: a no-resolver mount throws (the
|
|
31
|
-
* loud failure, not a silent gray) instructing the consumer to pass
|
|
32
|
-
* `defaultBlobColorResolver` from `@mkbabb/glass-ui/color` (or their own). The
|
|
33
|
-
* renderer is DOM-FREE: it never un-wraps a `var(--token)` — the SFC's
|
|
34
|
-
* `resolveTokenColor` leaf does that BEFORE handing strings here (inv-K-3 seam).
|
|
35
|
-
*/
|
|
36
|
-
colorResolver: ColorResolver;
|
|
37
26
|
}
|
|
38
27
|
/**
|
|
39
28
|
* The GooBlob WebGL renderer — composes the `useWebGLCanvas` substrate (AU.W6).
|
|
40
29
|
*
|
|
41
30
|
* This module owns ONLY the metaball-specific concerns: compiling the shader,
|
|
42
31
|
* building the quad + uniform cache, and uploading the per-frame uniforms derived
|
|
43
|
-
* from the mood / pointer / satellite systems and the
|
|
32
|
+
* from the mood / pointer / satellite systems and the resolved base color. The
|
|
44
33
|
* generic WebGL2 lifecycle — context creation, the suspend/resume model, the
|
|
45
34
|
* demand-driven rAF loop, the tab-visibility owner, the ResizeObserver, and the
|
|
46
35
|
* webglcontextlost/restored robustness — lives in the substrate; this renderer
|
|
@@ -48,8 +37,11 @@ export interface UseMetaballRendererOptions {
|
|
|
48
37
|
* `setup`/`frame`/`shouldContinue`/`resize`/`teardown` callbacks. It does NOT call
|
|
49
38
|
* `getContext("webgl2")` itself (the single-bootstrap contract).
|
|
50
39
|
*
|
|
51
|
-
*
|
|
52
|
-
* `
|
|
40
|
+
* Color is resolved INTERNALLY through the `/color` leaf (`cssToOklch →
|
|
41
|
+
* oklchToGammaRgb`) — the GAMMA-sRGB triple fed straight into the base-color uniform
|
|
42
|
+
* (the faithful AU.W7 lift paints gamma). The renderer is DOM-FREE: it never un-wraps
|
|
43
|
+
* a `var(--token)` — the SFC's `resolveTokenColor` leaf does that BEFORE handing
|
|
44
|
+
* concrete strings here (inv-K-3 seam); the value.js 1×1-canvas DOM probe is gone.
|
|
53
45
|
*/
|
|
54
46
|
export declare function useMetaballRenderer(options: UseMetaballRendererOptions): {
|
|
55
47
|
pause: () => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as GooBlob } from "./GooBlob.vue";
|
|
2
|
-
export type { BlobMood, BlobMerge, BlobQuality, MoodParams, MetaballSource, BlobConfig, SatellitePhase, SatelliteInternal, } from "./types";
|
|
2
|
+
export type { BlobMood, BlobMerge, BlobQuality, MoodParams, MetaballSource, BlobConfig, BlobGeometry, BlobSatelliteTiming, BlobMembrane, BlobColor, BlobSurface, BlobInteraction, SatellitePhase, SatelliteInternal, } from "./types";
|
|
3
3
|
export { BLOB_CONFIG_DEFAULTS, BLOB_CONFIG_KEY } from "./types";
|
|
4
4
|
export { useBlobMood, type BlobMoodSystem } from "./composables/useBlobMood";
|
|
5
5
|
export { useBlobPointer, type BlobPointer } from "./composables/useBlobPointer";
|
|
@@ -55,15 +55,24 @@ export interface SatelliteInternal {
|
|
|
55
55
|
endX: number;
|
|
56
56
|
endY: number;
|
|
57
57
|
}
|
|
58
|
-
/**
|
|
59
|
-
export interface
|
|
58
|
+
/** Body / orbit / satellite geometry — the contained-droplet length cohort (W15). */
|
|
59
|
+
export interface BlobGeometry {
|
|
60
60
|
canvasSize: number;
|
|
61
61
|
bodyRadius: number;
|
|
62
62
|
satelliteCount: number;
|
|
63
63
|
satelliteRadius: number;
|
|
64
64
|
orbitRadius: number;
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
eccentricity: number;
|
|
66
|
+
}
|
|
67
|
+
/** Satellite merge/absorb/emerge/orbit lifecycle DURATIONS (ms). */
|
|
68
|
+
export interface BlobSatelliteTiming {
|
|
69
|
+
mergeDuration: number;
|
|
70
|
+
absorbedDuration: [number, number];
|
|
71
|
+
emergeDuration: number;
|
|
72
|
+
orbitDuration: [number, number];
|
|
73
|
+
}
|
|
74
|
+
/** The living membrane — smin merge + surface noise/warp + pulsation. */
|
|
75
|
+
export interface BlobMembrane {
|
|
67
76
|
smoothK: number;
|
|
68
77
|
/** Smin merge variant — `quadratic` (default) | `circular` (rounder menisci). */
|
|
69
78
|
merge: BlobMerge;
|
|
@@ -77,12 +86,29 @@ export interface BlobConfig {
|
|
|
77
86
|
warpAmp: number;
|
|
78
87
|
pulseFreq: number;
|
|
79
88
|
pulseAmp: number;
|
|
89
|
+
}
|
|
90
|
+
/** Palette + OKLCh color-perturbation atom. */
|
|
91
|
+
export interface BlobColor {
|
|
92
|
+
paletteStops: string[];
|
|
80
93
|
hueRange: number;
|
|
81
94
|
satShift: number;
|
|
82
95
|
brightnessShift: number;
|
|
83
96
|
colorNoiseFreq: number;
|
|
84
97
|
colorNoiseSpeed: number;
|
|
85
|
-
|
|
98
|
+
}
|
|
99
|
+
/** The lit-glass surface — Blinn-Phong glint + Fresnel rim + iridescence/SSS/core-glow. */
|
|
100
|
+
export interface BlobSurface {
|
|
101
|
+
lit: boolean;
|
|
102
|
+
/** CSS color for the Fresnel rim tint (resolved through the `/color` leaf). */
|
|
103
|
+
rimColor: string;
|
|
104
|
+
/** Light direction [x, y, z] (normalized in-shader). */
|
|
105
|
+
lightDir: [number, number, number];
|
|
106
|
+
specStrength: number;
|
|
107
|
+
/** Specular exponent (16-64 — a tight glint). */
|
|
108
|
+
specShininess: number;
|
|
109
|
+
/** Fresnel/Schlick exponent (~2-3). */
|
|
110
|
+
rimPower: number;
|
|
111
|
+
rimStrength: number;
|
|
86
112
|
/** Warm-pearl rim sheen weight (0 = off). */
|
|
87
113
|
iridescence: number;
|
|
88
114
|
/** Base hue (degrees) the warm-biased cosine palette centres on. */
|
|
@@ -95,31 +121,39 @@ export interface BlobConfig {
|
|
|
95
121
|
sssPower: number;
|
|
96
122
|
/** Thickness-driven inner-luminosity (core glow) lift. */
|
|
97
123
|
coreGlow: number;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
/** Light direction [x, y, z] (normalized in-shader). */
|
|
102
|
-
lightDir: [number, number, number];
|
|
103
|
-
specStrength: number;
|
|
104
|
-
/** Specular exponent (16-64 — a tight glint). */
|
|
105
|
-
specShininess: number;
|
|
106
|
-
/** Fresnel/Schlick exponent (~2-3). */
|
|
107
|
-
rimPower: number;
|
|
108
|
-
rimStrength: number;
|
|
124
|
+
}
|
|
125
|
+
/** Pointer interaction — lean / squash-stretch / click-impulse. */
|
|
126
|
+
export interface BlobInteraction {
|
|
109
127
|
pointerAttraction: number;
|
|
110
128
|
pointerStrength: number;
|
|
111
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Velocity-driven volume-preserving squash-and-stretch magnitude (0 = off).
|
|
131
|
+
*
|
|
132
|
+
* AY.W-BLOB-CONFIG D3 — a SWAMPED fine-detail axis. The squash rides the smoothed
|
|
133
|
+
* spring velocity (`useBlobPointer`'s critically-damped `response: 0.18` follow),
|
|
134
|
+
* which is heavily damped and down-scaled into body space — so the tanh-saturated
|
|
135
|
+
* elongation reads at the noise floor (a live readback measured 0% body-aspect change
|
|
136
|
+
* between `stretch=0` and `stretch=1.5`). It is NOT a primary axis: it adds a subtle
|
|
137
|
+
* elongation on a FAST flick over the much louder lean/follow/pseudopod channel that
|
|
138
|
+
* dominates the deformation. Kept (the volume-preserving map is correct and lands a
|
|
139
|
+
* whisper on the fastest flicks) but DEMOTED — the demo no longer surfaces it as a
|
|
140
|
+
* top-level slider (the flick blurb is honest-down to match). A consumer that wants a
|
|
141
|
+
* pronounced taffy-pull raises this AND uncouples the velocity from the spring smooth.
|
|
142
|
+
*/
|
|
112
143
|
stretch: number;
|
|
113
144
|
/** Click spring-impulse amplitude (a one-shot bouncy pulse on the body radius). */
|
|
114
145
|
clickImpulse: number;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
146
|
+
}
|
|
147
|
+
/** Externally tunable blob configuration — EIGHT cohesive atoms, defaults via `BLOB_CONFIG_DEFAULTS`. */
|
|
148
|
+
export interface BlobConfig {
|
|
149
|
+
geometry: BlobGeometry;
|
|
150
|
+
satellites: BlobSatelliteTiming;
|
|
151
|
+
membrane: BlobMembrane;
|
|
152
|
+
color: BlobColor;
|
|
153
|
+
surface: BlobSurface;
|
|
154
|
+
interaction: BlobInteraction;
|
|
155
|
+
quality: BlobQuality;
|
|
156
|
+
tempo: number;
|
|
123
157
|
}
|
|
124
158
|
export declare const BLOB_CONFIG_DEFAULTS: BlobConfig;
|
|
125
159
|
export declare const BLOB_CONFIG_KEY: InjectionKey<BlobConfig>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { HandMarkProps } from "./types";
|
|
2
|
+
declare function play(): void;
|
|
3
|
+
declare var __VLS_1: {};
|
|
4
|
+
type __VLS_Slots = {} & {
|
|
5
|
+
default?: (props: typeof __VLS_1) => any;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_base: import("vue").DefineComponent<HandMarkProps, {
|
|
8
|
+
play: typeof play;
|
|
9
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<HandMarkProps> & Readonly<{}>, {
|
|
10
|
+
color: string;
|
|
11
|
+
seed: number;
|
|
12
|
+
shape: import("./types").HandShape;
|
|
13
|
+
animation: import("./types").HandAnimation;
|
|
14
|
+
appear: "mount" | "visible" | "manual";
|
|
15
|
+
jagged: boolean;
|
|
16
|
+
brush: import("./brush").BrushName | Partial<import("./brush").Brush>;
|
|
17
|
+
drawMs: number;
|
|
18
|
+
drawDelayMs: number;
|
|
19
|
+
boilFps: number;
|
|
20
|
+
boilFrames: number;
|
|
21
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
23
|
+
declare const _default: typeof __VLS_export;
|
|
24
|
+
export default _default;
|
|
25
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
26
|
+
new (): {
|
|
27
|
+
$slots: S;
|
|
28
|
+
};
|
|
29
|
+
};
|