@mkbabb/glass-ui 3.10.1 → 3.11.1
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-DrAcAV4d.js → CardAction-DuArVky-.js} +2 -2
- package/dist/{CommandShortcut-mV2e1aG6.js → CommandShortcut-CefCj5mt.js} +2 -2
- package/dist/{DataTable-C3E6jZ5B.js → DataTable-CUHMukiQ.js} +2 -2
- package/dist/DeckProgress-Dmk4_AKN.js +23 -0
- package/dist/{DialogContent-BxaaafFi.js → DialogContent-BRkT1cjP.js} +1 -1
- package/dist/{HoverPopover-CDA_SaCe.js → HoverPopover-2LOIW34a.js} +1 -1
- package/dist/InstrumentRail-CUJ05YVG.js +44 -0
- package/dist/{MetricBadge-idgrkqoP.js → MetricBadge-BZVWIxNy.js} +7 -5
- package/dist/{Notification-Cu0nN17_.js → Notification-DLMhblXR.js} +1 -1
- package/dist/{NumberFieldContent-CHEWghnY.js → NumberFieldContent-BbLOh8RU.js} +2 -2
- package/dist/{PopoverContent-DpUvdYY-.js → PopoverContent-BId6ggf_.js} +1 -1
- package/dist/{Progress-BW-StFw2.js → Progress-iEuD9pxG.js} +1 -1
- package/dist/{ScrollingText-DruYCni_.js → ScrollingText-BPP84wKo.js} +1 -1
- package/dist/{SelectScrollDownButton-pirzjm--.js → SelectScrollDownButton-T32cVFeM.js} +3 -3
- package/dist/{Switch-DeAqg6pi.js → Switch-Ch-k3Rv-.js} +1 -1
- package/dist/{TabsList-BAVzOZpg.js → TabsList-B8CVOQPC.js} +2 -2
- package/dist/{Toaster-CvuuW_y9.js → Toaster-1rYWrmAm.js} +46 -49
- package/dist/{ToggleGroupItem-DtD37b4G.js → ToggleGroupItem-COu_4IW4.js} +21 -17
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +5 -4
- package/dist/api.js +2 -2
- package/dist/aurora.js +70 -70
- package/dist/{badge-NdCQMvvB.js → badge-CaoFJzRb.js} +1 -1
- package/dist/badge.js +1 -1
- package/dist/{button-DyiWFAOE.js → button-DN39cGqL.js} +12 -12
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -2
- package/dist/card.js +1 -1
- package/dist/carousel.js +5 -5
- package/dist/collapsible.js +1 -1
- package/dist/{color-B65wWyQz.js → color-C5ls_QF7.js} +7 -9
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/components/custom/aurora/constants/presets.d.ts +62 -5
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/constellation/Constellation.vue.d.ts +0 -12
- package/dist/components/custom/constellation/constellationField.d.ts +151 -10
- package/dist/components/custom/constellation/index.d.ts +1 -3
- package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +0 -11
- package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +27 -0
- package/dist/components/custom/deck-progress/index.d.ts +2 -0
- package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +57 -0
- package/dist/components/custom/dialog-native/index.d.ts +1 -0
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +4 -3
- package/dist/components/custom/dock/GlassDock.vue.d.ts +115 -3
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +0 -36
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +0 -44
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +37 -5
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +0 -17
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
- package/dist/components/custom/glass-panel/index.d.ts +2 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +3 -4
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +8 -11
- package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
- package/dist/components/custom/handmark/brush.d.ts +242 -0
- package/dist/components/custom/handmark/freehand.d.ts +69 -0
- package/dist/components/custom/handmark/geometry.d.ts +50 -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 +87 -0
- package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
- package/dist/components/custom/header-ribbon/index.d.ts +2 -0
- package/dist/components/custom/header-ribbon/types.d.ts +7 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
- package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
- package/dist/components/custom/instrument-rail/index.d.ts +2 -0
- package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +8 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
- package/dist/components/ui/slider/index.d.ts +19 -22
- 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 +7 -1
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +3 -1
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +13 -0
- package/dist/composables/color/index.d.ts +0 -12
- package/dist/composables/dark/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +21 -1
- package/dist/composables/glass/useSpecularTracking.d.ts +3 -12
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/composables/motion/index.d.ts +0 -2
- package/dist/composables/motion/useRouteTransition.d.ts +42 -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 +225 -260
- package/dist/controls.js +14 -48
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck-progress.d.ts +1 -0
- package/dist/deck-progress.js +2 -0
- package/dist/dialog.js +2 -2
- package/dist/dock.js +345 -340
- package/dist/dockContext-BKeIMmNk.js +9 -0
- package/dist/{dropdown-menu-DVnQcA0E.js → dropdown-menu-D77jX6Df.js} +4 -7
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +79 -38
- package/dist/forms.js +2 -2
- package/dist/fourier-field.js +102 -137
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.d.ts +1 -0
- package/dist/glass-panel.js +44 -0
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +209 -287
- package/dist/goo-blob.js +212 -243
- package/dist/handmark.d.ts +1 -0
- package/dist/handmark.js +663 -0
- package/dist/header-ribbon.d.ts +1 -0
- package/dist/header-ribbon.js +63 -0
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/instrument-rail.d.ts +1 -0
- package/dist/instrument-rail.js +2 -0
- package/dist/keyboard.js +1 -1
- package/dist/labeled-field.js +5 -5
- package/dist/{math-BUU9hHID.js → math-DTpRVC0e.js} +2 -18
- 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 +37 -38
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-1OhFpaIC.js → presets-BP_ALM0m.js} +14 -1
- package/dist/progress.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 +6 -6
- package/dist/select.js +1 -1
- package/dist/{sheet-ChSXcJpU.js → sheet-VZEtNFvO.js} +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-sfl8gFDD.js → slider-ClgpP7EB.js} +4 -4
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/stacked-icons.js +6 -6
- package/dist/styles/animations.css +111 -15
- package/dist/styles/components.css +1 -1
- package/dist/styles/dock/layer-group.css +0 -22
- package/dist/styles/dock/layers.css +1 -11
- package/dist/styles/dock/morph.css +19 -95
- package/dist/styles/dock/shell.css +0 -12
- package/dist/styles/dock-controls.css +31 -28
- package/dist/styles/drawer.css +0 -2
- package/dist/styles/floating-panel.css +0 -2
- package/dist/styles/glass-refract.css +0 -2
- package/dist/styles/glass.css +1188 -31
- package/dist/styles/hover-popover.css +0 -2
- package/dist/styles/index.css +6 -24
- package/dist/styles/instrument-chassis.css +0 -4
- package/dist/styles/paper.css +68 -2
- package/dist/styles/theme.css +20 -13
- package/dist/styles/tokens.css +2360 -22
- package/dist/styles/typography.css +6 -18
- package/dist/styles/utilities.css +1291 -19
- package/dist/styles/view-transition.css +51 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +98 -98
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-DfVgP4te.js → useAnimatedNumber-Bcpy5Etf.js} +1 -1
- package/dist/{useConfiguratorState-BdQXh9ie.js → useConfiguratorState-DxAqksK6.js} +1 -1
- package/dist/useGlassRenderer-D7YGOYiM.js +69 -0
- package/dist/{useGlobalDark-D7R9OypB.js → useGlobalDark-D1wgEqfW.js} +21 -2
- package/dist/useSpecularTracking-BVRZsRHA.js +26 -0
- package/dist/useSpringMount-BJSHcLl3.js +113 -0
- package/dist/useViewTransition-DaN5Zrox.js +21 -0
- package/dist/vReveal-zUIQk-rJ.js +53 -0
- package/dist/watercolor-dot.js +2 -2
- package/package.json +57 -33
- package/src/styles/animations.css +111 -15
- package/src/styles/dock/layer-group.css +0 -22
- package/src/styles/dock/layers.css +1 -11
- package/src/styles/dock/morph.css +19 -95
- package/src/styles/dock/shell.css +0 -12
- package/src/styles/dock-controls.css +31 -28
- package/src/styles/glass.css +1188 -31
- package/src/styles/index.css +6 -24
- package/src/styles/paper.css +68 -2
- package/src/styles/theme.css +20 -13
- package/src/styles/tokens.css +2360 -22
- package/src/styles/typography.css +6 -18
- package/src/styles/utilities.css +1291 -19
- package/src/styles/view-transition.css +51 -0
- package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +0 -1
- package/dist/components/custom/constellation/composables/createConstellationField.d.ts +0 -35
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constants.d.ts +0 -36
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -18
- package/dist/components/custom/constellation/constellationInteraction.d.ts +0 -102
- package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +0 -15
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +0 -131
- package/dist/components/custom/dock/constants.d.ts +0 -23
- package/dist/components/custom/fourier-field/presets.d.ts +0 -54
- package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +0 -18
- package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +0 -41
- package/dist/components/custom/goo-blob/constants.d.ts +0 -52
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +0 -1
- package/dist/components/custom/tabs/constants.d.ts +0 -12
- package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
- package/dist/components/custom/underline/index.d.ts +0 -2
- package/dist/components/custom/underline/types.d.ts +0 -56
- package/dist/composables/motion/curves.d.ts +0 -48
- package/dist/composables/motion/springPresets.d.ts +0 -33
- package/dist/composables/motion/suite.d.ts +0 -2
- package/dist/dockContext-bho8B1A4.js +0 -17
- package/dist/motion-curves.d.ts +0 -1
- package/dist/motion-curves.js +0 -130
- package/dist/springPresets-aRSm-4_k.js +0 -40
- package/dist/styles/glass/a11y-fallback.css +0 -245
- package/dist/styles/glass/ladder.css +0 -304
- package/dist/styles/glass/material.css +0 -238
- package/dist/styles/glass/progress-rail.css +0 -78
- package/dist/styles/glass/squircle.css +0 -66
- package/dist/styles/glass/surfaces.css +0 -306
- package/dist/styles/tokens/color-radius.css +0 -250
- package/dist/styles/tokens/dark-arm.css +0 -194
- package/dist/styles/tokens/glass.css +0 -413
- package/dist/styles/tokens/light-dark.css +0 -158
- package/dist/styles/tokens/offsets-sizing.css +0 -406
- package/dist/styles/tokens/property-regs.css +0 -169
- package/dist/styles/tokens/scale-paper.css +0 -361
- package/dist/styles/tokens/scheme-motion.css +0 -334
- package/dist/styles/tokens/shadow.css +0 -132
- package/dist/styles/utilities/a11y-overrides.css +0 -140
- package/dist/styles/utilities/animate.css +0 -26
- package/dist/styles/utilities/base.css +0 -365
- package/dist/styles/utilities/btn.css +0 -399
- package/dist/styles/utilities/components.css +0 -317
- package/dist/underline.d.ts +0 -1
- package/dist/underline.js +0 -85
- package/dist/useSpecularTracking-DFK_fhpG.js +0 -32
- package/dist/useSpringMount-DXUzxBjV.js +0 -108
- package/dist/vReveal-CqaCz_mC.js +0 -44
- package/src/styles/glass/a11y-fallback.css +0 -245
- package/src/styles/glass/ladder.css +0 -304
- package/src/styles/glass/material.css +0 -238
- package/src/styles/glass/progress-rail.css +0 -78
- package/src/styles/glass/squircle.css +0 -66
- package/src/styles/glass/surfaces.css +0 -306
- package/src/styles/tokens/color-radius.css +0 -250
- package/src/styles/tokens/dark-arm.css +0 -194
- package/src/styles/tokens/glass.css +0 -413
- package/src/styles/tokens/light-dark.css +0 -158
- package/src/styles/tokens/offsets-sizing.css +0 -406
- package/src/styles/tokens/property-regs.css +0 -169
- package/src/styles/tokens/scale-paper.css +0 -361
- package/src/styles/tokens/scheme-motion.css +0 -334
- package/src/styles/tokens/shadow.css +0 -132
- package/src/styles/utilities/a11y-overrides.css +0 -140
- package/src/styles/utilities/animate.css +0 -26
- package/src/styles/utilities/base.css +0 -365
- package/src/styles/utilities/btn.css +0 -399
- package/src/styles/utilities/components.css +0 -317
- /package/dist/{CollapsibleContent-Drow5WkV.js → CollapsibleContent-CP9qF1v4.js} +0 -0
- /package/dist/{DialogFooter-DufLHi0y.js → DialogFooter-Gprw8H_A.js} +0 -0
- /package/dist/{IconTooltip-BrQ5p181.js → IconTooltip-Cus0fvK0.js} +0 -0
- /package/dist/{Input-B-F818RU.js → Input-xuDwALQR.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-DWghtRt7.js → _plugin-vue_export-helper-ok8pgSl5.js} +0 -0
- /package/dist/{compile-Ce_V55zi.js → compile-BOXjLUxu.js} +0 -0
- /package/dist/{constants-C8NMonuo.js → constants-yKeKnE84.js} +0 -0
- /package/dist/{prng-CjVgzjQT.js → prng-D27-B3tK.js} +0 -0
- /package/dist/{resolveCanvasColor-CRvVzOvP.js → resolveCanvasColor-BBiYfp8g.js} +0 -0
- /package/dist/{useCanvas2D-CSeH8h16.js → useCanvas2D-ClrQuZtp.js} +0 -0
- /package/dist/{useIntersectionPause-DAdVPVp4.js → useIntersectionPause-Cck5Uxk8.js} +0 -0
- /package/dist/{useInterval-D3USn0yc.js → useInterval-Dsmqwi03.js} +0 -0
- /package/dist/{useKeyboardShortcuts-i8tHd5WO.js → useKeyboardShortcuts-CyIYrndH.js} +0 -0
- /package/dist/{useScrollProgress-CcgmgMQt.js → useScrollProgress-CffFGLa5.js} +0 -0
- /package/dist/{useSortable-DnyGXKKY.js → useSortable-C8ReQ50P.js} +0 -0
- /package/dist/{useTextHighlight-B3b10W6r.js → useTextHighlight-CWEi25hf.js} +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <GlassDialogNative> — the native-`<dialog>` glass pilot (AQ.W6 §Design 5).
|
|
3
|
+
*
|
|
4
|
+
* A real `<dialog class="glass-top-layer">` top-layer surface. Entry/exit is
|
|
5
|
+
* PURE CSS from the `.glass-top-layer` grammar (`@starting-style` + `overlay` +
|
|
6
|
+
* `allow-discrete` + a glass `::backdrop`; animations.css §TOP-LAYER) — no
|
|
7
|
+
* per-frame JS, no `useSpringMount`. Light-dismiss is the native `closedby="any"`
|
|
8
|
+
* with a ≤ 12-LOC backdrop-click shim as the feature-detected fallback for
|
|
9
|
+
* engines without `HTMLDialogElement.closedBy`.
|
|
10
|
+
*
|
|
11
|
+
* DISPOSITION (W8 overfitting audit): this is the simple-confirm/settings PILOT
|
|
12
|
+
* only — one heading, optional short form, a close action. reka-ui `Dialog` is
|
|
13
|
+
* UNCHANGED and stays the default for every compound focus-trap case (nested
|
|
14
|
+
* focus zones, async content, the drag-dismiss `spring` opt-in). The pilot ships
|
|
15
|
+
* gated to a demo story (its consumer) pending the muster J.W6 ≥2-consumer
|
|
16
|
+
* adoption; it is NOT on the public barrel or a flat subpath yet (no overfit
|
|
17
|
+
* surface). `commandfor`/`command` (Baseline LIMITED) is the PREFERRED trigger
|
|
18
|
+
* wiring where supported; the JS `showModal()`/`close()` path (exposed below)
|
|
19
|
+
* is the kept default for non-supporting targets.
|
|
20
|
+
*
|
|
21
|
+
* Baseline: `<dialog>` + `showModal` = Widely; `dialog-closedby` = Newly
|
|
22
|
+
* (≤ 20-LOC shim fallback); `invoker-commands` (`commandfor`) = LIMITED
|
|
23
|
+
* (progressive — the JS open path stays default).
|
|
24
|
+
*/
|
|
25
|
+
type __VLS_Props = {
|
|
26
|
+
/** Light-dismiss on backdrop/Esc — `closedby="any"`. Default true. */
|
|
27
|
+
lightDismiss?: boolean;
|
|
28
|
+
/** id so a sibling `<button commandfor=… command="show-modal">` can
|
|
29
|
+
* target this dialog (the declarative-open path). */
|
|
30
|
+
id?: string;
|
|
31
|
+
/** `aria-labelledby` target — the id of the consumer's heading. */
|
|
32
|
+
labelledby?: string;
|
|
33
|
+
/** Class merged onto the `<dialog>` surface. */
|
|
34
|
+
class?: string;
|
|
35
|
+
};
|
|
36
|
+
declare function showModal(): void;
|
|
37
|
+
declare function close(returnValue?: string): void;
|
|
38
|
+
declare var __VLS_1: {
|
|
39
|
+
close: typeof close;
|
|
40
|
+
};
|
|
41
|
+
type __VLS_Slots = {} & {
|
|
42
|
+
default?: (props: typeof __VLS_1) => any;
|
|
43
|
+
};
|
|
44
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
45
|
+
showModal: typeof showModal;
|
|
46
|
+
close: typeof close;
|
|
47
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
48
|
+
lightDismiss: boolean;
|
|
49
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
50
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
51
|
+
declare const _default: typeof __VLS_export;
|
|
52
|
+
export default _default;
|
|
53
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
54
|
+
new (): {
|
|
55
|
+
$slots: S;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as GlassDialogNative } from "./GlassDialogNative.vue";
|
|
@@ -12,9 +12,10 @@ import { type HTMLAttributes } from "vue";
|
|
|
12
12
|
*
|
|
13
13
|
* K.W6 Lane B — when the consumer attaches `data-tier="primary"`, the
|
|
14
14
|
* button composes the canonical `btn-audacious` utility (the lifted
|
|
15
|
-
* disco-grain +
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* disco-grain + specular-highlight recipe at `utilities.css`; the
|
|
16
|
+
* sparkle-sweep star was excised at D6 — the gold identity now rides the
|
|
17
|
+
* `--gold-rim` gilt edge). `dock.css` retains the dock-local
|
|
18
|
+
* phase-tinting + structural shell on top of the canonical recipe.
|
|
18
19
|
*/
|
|
19
20
|
type __VLS_Props = {
|
|
20
21
|
as?: string;
|
|
@@ -1,4 +1,112 @@
|
|
|
1
|
-
|
|
1
|
+
type DockDensity = "compact" | "comfortable" | "spacious" | "audacious";
|
|
2
|
+
interface DockCommonProps {
|
|
3
|
+
fitContent?: boolean;
|
|
4
|
+
position?: "fixed" | "inline" | "sticky";
|
|
5
|
+
alwaysExpanded?: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Corner treatment.
|
|
8
|
+
* `"pill"` — the stadium silhouette (default).
|
|
9
|
+
* `"rounded"` — a finite rounded radius (`--radius-xl`).
|
|
10
|
+
* `"card"` — the AW.W3b big-dock card shell: a finite concentric
|
|
11
|
+
* radius (`--dock-card-radius`, default `--radius-3xl`)
|
|
12
|
+
* ABOVE 2xl, below pill — does NOT collapse to a stadium.
|
|
13
|
+
* Collapsed it returns to a pill; the pill↔card swap
|
|
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.
|
|
20
|
+
*
|
|
21
|
+
* `"pill"`/`"rounded"` previously bound ONLY under the vertical rail
|
|
22
|
+
* variant — on a horizontal dock the prop silently no-op'd. AW.W3b adds
|
|
23
|
+
* the horizontal-root shape rules (closing that documented-but-dead prop),
|
|
24
|
+
* so `shape` now paints on a horizontal dock too.
|
|
25
|
+
*/
|
|
26
|
+
shape?: "pill" | "rounded" | "card";
|
|
27
|
+
/**
|
|
28
|
+
* Layout axis of the dock. `"horizontal"` (default) lays items out
|
|
29
|
+
* left-to-right and animates `width`; `"vertical"` lays items out
|
|
30
|
+
* top-to-bottom and animates `height`. IGNORED under `variant="rail"` /
|
|
31
|
+
* `"instrument-strip"` (those force vertical by construction).
|
|
32
|
+
*/
|
|
33
|
+
orientation?: "horizontal" | "vertical";
|
|
34
|
+
/**
|
|
35
|
+
* Density controls dock padding, gaps, layer height, and inherited
|
|
36
|
+
* dock control sizing. Root CSS variables can override each density.
|
|
37
|
+
*/
|
|
38
|
+
density?: DockDensity;
|
|
39
|
+
/**
|
|
40
|
+
* Overflow strategy when the expanded content exceeds the dock's
|
|
41
|
+
* axis cap (`--dock-max-inline-size` horizontally,
|
|
42
|
+
* `--dock-max-block-size` vertically). The ONE knob governing every
|
|
43
|
+
* overflow behaviour (AT.W7-dock-a clean break — collapsed from the
|
|
44
|
+
* prior `wrap` boolean + `overflow` pair + `containerName` clip-lift,
|
|
45
|
+
* which all touched overflow divergently).
|
|
46
|
+
* `"grow"` — content grows to fit then overflows visibly past
|
|
47
|
+
* the cap (the default; nothing clips or scrolls).
|
|
48
|
+
* `"wrap"` — expanded content wraps to multiple rows via CONTENT-DRIVEN
|
|
49
|
+
* intrinsic flex-wrap (the `.dock-overflow-wrap` recipe). The
|
|
50
|
+
* dock shrink-wraps to content and caps that intrinsic width
|
|
51
|
+
* at `max-inline-size: var(--dock-max-inline-size)`, so the row
|
|
52
|
+
* reflows to N rows EXACTLY when its intrinsic width exceeds
|
|
53
|
+
* the cap — at ANY viewport width — and collapses to one row
|
|
54
|
+
* when it fits (no viewport breakpoint). The wrapped multi-row silhouette lifts
|
|
55
|
+
* onto the card/floating shadow tier as the dock expands.
|
|
56
|
+
* HORIZONTAL-ONLY: a vertical rail grows-to-fit + clamps via
|
|
57
|
+
* `--dock-max-block-size` (its own overflow story), so the
|
|
58
|
+
* `.dock-overflow-wrap` class is not emitted for a vertical
|
|
59
|
+
* orientation.
|
|
60
|
+
* `"scroll"` — the dock becomes the scroll port. Horizontal docks
|
|
61
|
+
* scroll the active layer on the inline axis
|
|
62
|
+
* (`.dock-scroll-x`); vertical rails scroll on the
|
|
63
|
+
* block axis (`.dock-scroll-y`), keeping the
|
|
64
|
+
* `max-block-size` cap. The rounded pill masks the
|
|
65
|
+
* scroll edge; the scrollbar is hidden. The axis is
|
|
66
|
+
* chosen automatically from `orientation`.
|
|
67
|
+
*/
|
|
68
|
+
overflow?: "grow" | "wrap" | "scroll";
|
|
69
|
+
/**
|
|
70
|
+
* When set, the dock root establishes an inline-size container query
|
|
71
|
+
* subject (`container-type: inline-size; container-name: <value>`) so
|
|
72
|
+
* descendants can query the named container via `@container <value>
|
|
73
|
+
* (...)` rules. ORTHOGONAL to the `overflow` clip: opting into a
|
|
74
|
+
* container subject does NOT silently change the dock's clip shell
|
|
75
|
+
* (AT.W7-dock-a — the prior clip-lift was folded out; use
|
|
76
|
+
* `overflow="wrap"` to allow multi-line content).
|
|
77
|
+
*
|
|
78
|
+
* T.B audit §1.3 cornerstone: the cluster's container subject must
|
|
79
|
+
* live on the dock primitive, never on a descendant whose intrinsic
|
|
80
|
+
* size the dock relies on.
|
|
81
|
+
*/
|
|
82
|
+
containerName?: string;
|
|
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: {}, __VLS_16: {}, __VLS_18: {};
|
|
2
110
|
type __VLS_Slots = {} & {
|
|
3
111
|
persistent?: (props: typeof __VLS_1) => any;
|
|
4
112
|
} & {
|
|
@@ -9,8 +117,12 @@ type __VLS_Slots = {} & {
|
|
|
9
117
|
default?: (props: typeof __VLS_7) => any;
|
|
10
118
|
} & {
|
|
11
119
|
collapsed?: (props: typeof __VLS_14) => any;
|
|
120
|
+
} & {
|
|
121
|
+
default?: (props: typeof __VLS_16) => any;
|
|
122
|
+
} & {
|
|
123
|
+
collapsed?: (props: typeof __VLS_18) => any;
|
|
12
124
|
};
|
|
13
|
-
declare const __VLS_base: import("vue").DefineComponent<
|
|
125
|
+
declare const __VLS_base: import("vue").DefineComponent<DockVariantProps | DockRailProps, {
|
|
14
126
|
expanded: import("vue").Ref<boolean, boolean>;
|
|
15
127
|
isPinned: import("vue").Ref<boolean, boolean>;
|
|
16
128
|
isHeld: import("vue").ComputedRef<boolean>;
|
|
@@ -19,7 +131,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("./composables/us
|
|
|
19
131
|
collapse: () => void;
|
|
20
132
|
keepOpen: () => void;
|
|
21
133
|
release: () => void;
|
|
22
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<
|
|
134
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DockVariantProps | DockRailProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
23
135
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
24
136
|
declare const _default: typeof __VLS_export;
|
|
25
137
|
export default _default;
|
|
@@ -1,40 +1,4 @@
|
|
|
1
1
|
import type { Ref } from "vue";
|
|
2
|
-
/**
|
|
3
|
-
* AX.W02 — ONE morph orchestrator per dock. The dock is a single morph stack
|
|
4
|
-
* whose active "layer" is `(expandedState × activePane)`: the outer
|
|
5
|
-
* collapse↔expand swap and the inner `<DockLayerGroup>` pane swaps are
|
|
6
|
-
* transitions in the SAME group — ONE spring, ONE scalar (`--dock-morph-t`,
|
|
7
|
-
* established by W01), ONE clock. No second engine.
|
|
8
|
-
*
|
|
9
|
-
* Re-derived from first principles on W01's settled single-scalar substrate:
|
|
10
|
-
* - `--dock-morph-t` is written to the `.glass-dock` root and INHERITS to every
|
|
11
|
-
* descendant (dock.css `@property … inherits:true`), so ONE spring writing
|
|
12
|
-
* that one scalar drives EVERY registered container's size calc at once.
|
|
13
|
-
* - Each morphing container carries its OWN `--dock-morph-from`/`--dock-morph-to`
|
|
14
|
-
* px span (the allowed one-time FLIP measurement) and interpolates it against
|
|
15
|
-
* the shared scalar — `from + (to − from) · t`. So a simultaneous
|
|
16
|
-
* collapse + pane-swap reads as one continuous spring: the box, the nested
|
|
17
|
-
* stack, and every child stagger ramp on the same `t`.
|
|
18
|
-
*
|
|
19
|
-
* The orchestrator OWNS one `SpringProgress`. The OUTER collapse↔expand pair
|
|
20
|
-
* registers as a target; a NESTED `<DockLayerGroup>` registers a SECOND target
|
|
21
|
-
* instead of minting its own `useLayerTransition` engine. A re-toggle mid-flight
|
|
22
|
-
* re-bases the live solver onto the new span from its current velocity (the iOS
|
|
23
|
-
* interruptible-physics contract W01 keeps), so even an interrupted morph stays
|
|
24
|
-
* one continuous trajectory.
|
|
25
|
-
*
|
|
26
|
-
* This is the dock-flavored first instance of the general `MorphGroup` /
|
|
27
|
-
* `GlassEffectContainer` facility (the iOS-26 Liquid-Glass corpus, facet 26 —
|
|
28
|
-
* the `provideMorphGroup` two-part seam: a per-element driver + a provide/inject
|
|
29
|
-
* orchestrator). AX.W42 generalizes it; W02 establishes the seam it builds on.
|
|
30
|
-
*
|
|
31
|
-
* LIGHT-surface only: `SpringProgress` owns its own rAF via `.play(onFrame)` and
|
|
32
|
-
* carries no static value.js edge — never import `AnimationGroup` / `./engine`
|
|
33
|
-
* (that pulls value.js into the dock bundle).
|
|
34
|
-
*
|
|
35
|
-
* The `DOCK_SPRING` tuning this orchestrator drives is the ONE authority shared with
|
|
36
|
-
* `useLayerTransition` — it lives in `../constants` (the feature-dir constants home).
|
|
37
|
-
*/
|
|
38
2
|
export interface DockMorphGroupRegistration {
|
|
39
3
|
/** The container element owning this group's grid-stacked panes. */
|
|
40
4
|
containerEl: Ref<HTMLElement | null>;
|
|
@@ -1,48 +1,4 @@
|
|
|
1
1
|
import type { Ref } from "vue";
|
|
2
|
-
/**
|
|
3
|
-
* AX.W01 — the dock single-scalar morph: ONE spring, ONE clock, the whole box.
|
|
4
|
-
*
|
|
5
|
-
* Re-derived from first principles (the e8380d7 single-clock high-water; the
|
|
6
|
-
* 479-line VT-fork accretion is gone). The collapse↔expand (and inner pane-swap)
|
|
7
|
-
* morph runs off ONE normalized analytic spring whose progress scalar (0→1) is
|
|
8
|
-
* written once per frame to `--dock-morph-t` on the `.glass-dock` root. EVERY
|
|
9
|
-
* animated axis — inline-size, padding, border-radius, scale, background / border
|
|
10
|
-
* color, AND the child stagger — is a pure `calc()` read off that one scalar in
|
|
11
|
-
* `dock.css`. NO CSS `transition` on the root morph props; NO View-Transitions
|
|
12
|
-
* fork: the live `SpringProgress` ODE is the single authority on every engine, so
|
|
13
|
-
* iOS interruptible-physics + velocity-continuity retarget are universal, not
|
|
14
|
-
* capability-gated.
|
|
15
|
-
*
|
|
16
|
-
* The morph is a FLIP — the from→to size is measured ONCE per swap (the allowed
|
|
17
|
-
* one-time measurement primitive, never a co-driver), written as `--dock-morph-from`
|
|
18
|
-
* / `--dock-morph-to` px vars on the morphing element, and the live scalar
|
|
19
|
-
* interpolates between them in CSS. Content lays out once at natural size;
|
|
20
|
-
* `overflow:clip` on the morph axis (dock.css, gated on `data-morphing`) makes the
|
|
21
|
-
* box the reveal aperture; the spring-keyed stagger fades the children in-step.
|
|
22
|
-
*
|
|
23
|
-
* Velocity-continuity (the ONE load-bearing iOS piece): a re-toggle mid-flight
|
|
24
|
-
* re-bases the live solver onto the new span from its current velocity (the
|
|
25
|
-
* analytic re-seat keyframes.js owns) — inertia carries, no snap-from-rest. The
|
|
26
|
-
* spring constant is the published `--spring-dock` (response 0.32, ζ 0.7, ~+4.6%
|
|
27
|
-
* overshoot), the SAME analytic ODE the build-time linear() token samples.
|
|
28
|
-
*
|
|
29
|
-
* LIGHT-surface only: `SpringProgress` owns its own rAF via `.play(onFrame)` and
|
|
30
|
-
* carries no static value.js edge. NEVER import `AnimationGroup` / the `./engine`
|
|
31
|
-
* boundary — that pulls value.js into the dock bundle.
|
|
32
|
-
*
|
|
33
|
-
* BOOKED: AY.W-GOD1 — the FLIP-engine FOLD. This standalone engine is a
|
|
34
|
-
* near-duplicate of the orchestrator's FLIP-pin-measure-arm dance
|
|
35
|
-
* (`dockMorphContext.ts:onSwap`), which is the SUPERSET (it carries sibling-rebase
|
|
36
|
-
* this copy lacks). W-DOCK2 found the duplication (H-dock §D3) and BOOKED the fold
|
|
37
|
-
* to W-GOD1 (the GlassDock.vue carve touches the same FLIP code, so the carve is
|
|
38
|
-
* cleaner over ONE engine; folding now would also break the `/dock` `useLayerTransition`
|
|
39
|
-
* public re-export an external consumer reads). Until W-GOD1 lands, `proof:dock-orchestrator-single`'s
|
|
40
|
-
* FLIP DRIFT-GUARD asserts this engine and the orchestrator stay byte-faithful on
|
|
41
|
-
* the load-bearing pin-measure-arm markers, so a divergence in the shared dance REDs.
|
|
42
|
-
* The CANONICAL `DOCK_SPRING` authority is `dock/constants.ts` (the colocation home
|
|
43
|
-
* BOTH this engine and the orchestrator import); `proof:spring-tokens-synced` reads
|
|
44
|
-
* it there, NOT a per-composable copy (W-COLOCATE — the dead-witness fix, continued).
|
|
45
|
-
*/
|
|
46
2
|
export interface UseLayerTransitionOptions {
|
|
47
3
|
/** The container element that owns the stacked layer panes. */
|
|
48
4
|
containerEl: Ref<HTMLElement | null>;
|
|
@@ -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 anchor 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
|
|
@@ -13,7 +27,13 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
13
27
|
* buttons continue to operate without parent wiring.
|
|
14
28
|
*/
|
|
15
29
|
open?: boolean;
|
|
16
|
-
}, {
|
|
30
|
+
}, {
|
|
31
|
+
anchorEl: Readonly<import("vue").ShallowRef<HTMLElement | null>>;
|
|
32
|
+
surfaceEl: Readonly<import("vue").ShallowRef<HTMLElement | null>>;
|
|
33
|
+
expand: () => void;
|
|
34
|
+
collapse: () => void;
|
|
35
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
36
|
+
settle: (fullscreen: boolean) => any;
|
|
17
37
|
"update:open": (value: boolean) => any;
|
|
18
38
|
}, string, import("vue").PublicProps, Readonly<{
|
|
19
39
|
buttonPosition?: "left" | "right";
|
|
@@ -21,6 +41,20 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
21
41
|
expandLabel?: string;
|
|
22
42
|
/** Accessible name for the collapse (exit fullscreen) button. */
|
|
23
43
|
collapseLabel?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Opt into the `gl-expand` plate → fullscreen MORPH (D6.c M7). When set,
|
|
46
|
+
* the inline anchor and the teleported fullscreen surface share ONE
|
|
47
|
+
* `view-transition-name` (this prop, suffixed by an app-unique `useId()`
|
|
48
|
+
* so two ExpandableContainers on a page never collide their groups — the
|
|
49
|
+
* proof:vt-names mandate), and the open/close toggle is wrapped in
|
|
50
|
+
* `startViewTransition` so the plate's rect MORPHS to the fullscreen rect
|
|
51
|
+
* (and back) instead of jump-cutting. A passed string namespaces the pair
|
|
52
|
+
* (e.g. `"chart"`); pass an empty string for a bare `useId()` name.
|
|
53
|
+
* Omitted (default) ⇒ NO view-transition-name, the legacy instant toggle —
|
|
54
|
+
* byte-identical to the pre-M7 behaviour. PRM + unsupported engines take
|
|
55
|
+
* `startViewTransition`'s instant fallback (the open/close still runs).
|
|
56
|
+
*/
|
|
57
|
+
viewTransitionName?: string;
|
|
24
58
|
} & {
|
|
25
59
|
/**
|
|
26
60
|
* Two-way `open` model so consumers can drive fullscreen externally
|
|
@@ -29,8 +63,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
29
63
|
*/
|
|
30
64
|
open?: boolean;
|
|
31
65
|
}> & Readonly<{
|
|
66
|
+
onSettle?: ((fullscreen: boolean) => any) | undefined;
|
|
32
67
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
33
68
|
}>, {
|
|
69
|
+
viewTransitionName: string;
|
|
34
70
|
buttonPosition: "left" | "right";
|
|
35
71
|
expandLabel: string;
|
|
36
72
|
collapseLabel: string;
|
|
@@ -38,10 +74,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
38
74
|
default?: (props: {
|
|
39
75
|
fullscreen: boolean;
|
|
40
76
|
}) => any;
|
|
41
|
-
} & {
|
|
42
|
-
default?: (props: {
|
|
43
|
-
fullscreen: boolean;
|
|
44
|
-
}) => any;
|
|
45
77
|
}>;
|
|
46
78
|
type __VLS_WithSlots<T, S> = T & {
|
|
47
79
|
new (): {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ColorResolver } from "../../../composables/color";
|
|
2
2
|
export { default as FourierField } from "./FourierField.vue";
|
|
3
|
-
export { comp, positionsAt,
|
|
3
|
+
export { comp, positionsAt, makeEllipticSpectrum, type BasisComponent, type EllipticSpectrumOptions, } from "./math";
|
|
4
4
|
/** The configuration-BUNDLE axis — `hero` (epicycles on, fewer harmonics) vs
|
|
5
5
|
* `final` (epicycles off, denser). Not a recolour of one curve; one engine,
|
|
6
6
|
* two presets. */
|
|
@@ -23,23 +23,6 @@ export declare function comp(index: number, re: number, im: number): BasisCompon
|
|
|
23
23
|
* carries).
|
|
24
24
|
*/
|
|
25
25
|
export declare function positionsAt(components: BasisComponent[], t: number, maxCircles?: number): [number, number][];
|
|
26
|
-
/**
|
|
27
|
-
* The forward DFT — the inverse of {@link positionsAt}. Takes a closed sequence
|
|
28
|
-
* of `[x, y]` samples around a curve (treated as the complex signal `x + i·y`,
|
|
29
|
-
* uniformly spaced in the parameter `t ∈ [0, 1)`) and returns the
|
|
30
|
-
* {@link BasisComponent} spectrum that {@link positionsAt} reconstructs.
|
|
31
|
-
*
|
|
32
|
-
* Frequencies run symmetrically around 0 — `0, +1, -1, +2, -2, …` up to the
|
|
33
|
-
* Nyquist limit — which is the index ordering the epicycle chain wants (the big
|
|
34
|
-
* low-order phasors first). The DC term (`index 0`) is the curve's centroid; the
|
|
35
|
-
* caller can subtract it (draw the chain centered) or keep it (draw at the
|
|
36
|
-
* sampled position).
|
|
37
|
-
*
|
|
38
|
-
* General: any point set drives it (a glyph outline, a hand-traced path, a
|
|
39
|
-
* digitized signature). It is NOT a special case — it is the literal forward
|
|
40
|
-
* transform whose inverse already ships as `positionsAt`.
|
|
41
|
-
*/
|
|
42
|
-
export declare function dftFromPoints(points: [number, number][]): BasisComponent[];
|
|
43
26
|
/** Tuning for {@link makeEllipticSpectrum}. */
|
|
44
27
|
export interface EllipticSpectrumOptions {
|
|
45
28
|
/**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type GlassTier } from "../../../composables/glass/useGlassRenderer";
|
|
2
|
+
/**
|
|
3
|
+
* Surface-tier vocabulary for the CSS rendering branch. Mirrors the v0.8
|
|
4
|
+
* five-rung ladder declared in `tokens.css §8` and consumed by the
|
|
5
|
+
* `.glass-{wash,quiet,resting,floating,overlay}` utility classes.
|
|
6
|
+
*
|
|
7
|
+
* v0.8.6 — `default | medium | elevated` retired (per audit U.W0.C-b §21).
|
|
8
|
+
*/
|
|
9
|
+
export type GlassPanelVariant = "wash" | "quiet" | "resting" | "floating" | "overlay";
|
|
10
|
+
export interface GlassPanelProps {
|
|
11
|
+
/** Force a specific rendering tier */
|
|
12
|
+
tier?: GlassTier;
|
|
13
|
+
/** Blur radius (default: 16) */
|
|
14
|
+
blur?: number;
|
|
15
|
+
/** Refraction strength 0-1 (default: 0.3) */
|
|
16
|
+
refraction?: number;
|
|
17
|
+
/** Chromatic aberration strength 0-1 (default: 0) */
|
|
18
|
+
chromaticAberration?: boolean;
|
|
19
|
+
/** Glass surface tier for the CSS rendering branch (v0.8 5-rung ladder). */
|
|
20
|
+
variant?: GlassPanelVariant;
|
|
21
|
+
/** Additional classes */
|
|
22
|
+
class?: string;
|
|
23
|
+
}
|
|
24
|
+
declare var __VLS_1: {};
|
|
25
|
+
type __VLS_Slots = {} & {
|
|
26
|
+
default?: (props: typeof __VLS_1) => any;
|
|
27
|
+
};
|
|
28
|
+
declare const __VLS_base: import("vue").DefineComponent<GlassPanelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<GlassPanelProps> & Readonly<{}>, {
|
|
29
|
+
variant: GlassPanelVariant;
|
|
30
|
+
blur: number;
|
|
31
|
+
refraction: number;
|
|
32
|
+
chromaticAberration: boolean;
|
|
33
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
34
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
35
|
+
declare const _default: typeof __VLS_export;
|
|
36
|
+
export default _default;
|
|
37
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
38
|
+
new (): {
|
|
39
|
+
$slots: S;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { TRAIL_N };
|
|
2
|
+
/** Compile-time trail length — mirrors `TRAIL_N` in metaball.frag.ts. */
|
|
3
|
+
export declare const TRAIL_N = 15;
|
|
5
4
|
/** A single trail sample — a decaying-radius metaball source the shader smin-merges. */
|
|
6
5
|
export interface TrailSample {
|
|
7
6
|
x: number;
|
|
@@ -14,7 +13,7 @@ export interface TrailSample {
|
|
|
14
13
|
* FRAME-RATE-INDEPENDENT critically-damped spring fed the renderer's per-frame
|
|
15
14
|
* `dtMs` (NOT a fixed-α lerp — the prior `SMOOTH_FACTOR = 0.12` was framerate
|
|
16
15
|
* dependent). The spring is `@mkbabb/keyframes.js` `SpringProgress` driven through
|
|
17
|
-
* its `
|
|
16
|
+
* its `tick(dt)` seam by the SUBSTRATE's single rAF — it does NOT call
|
|
18
17
|
* `SpringProgress.play()` (that would start a parallel rAF, the
|
|
19
18
|
* single-substrate-loop violation `proof:blob-interaction-prm` forbids).
|
|
20
19
|
*
|
|
@@ -24,20 +24,14 @@ export interface UseMetaballRendererOptions {
|
|
|
24
24
|
satellites: BlobSatelliteSystem;
|
|
25
25
|
config: BlobConfig;
|
|
26
26
|
}
|
|
27
|
-
/** The renderer's public control surface — pause/resume the demand loop. */
|
|
28
|
-
export interface UseMetaballRendererReturn {
|
|
29
|
-
pause: () => void;
|
|
30
|
-
resume: () => void;
|
|
31
|
-
}
|
|
32
27
|
/**
|
|
33
28
|
* The GooBlob WebGL renderer — composes the `useWebGLCanvas` substrate (AU.W6).
|
|
34
29
|
*
|
|
35
30
|
* This module owns ONLY the metaball-specific concerns: compiling the shader,
|
|
36
|
-
* building the quad + uniform cache
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* rAF loop, the tab-visibility owner, the ResizeObserver, and the
|
|
31
|
+
* building the quad + uniform cache, and uploading the per-frame uniforms derived
|
|
32
|
+
* from the mood / pointer / satellite systems and the resolved base color. The
|
|
33
|
+
* generic WebGL2 lifecycle — context creation, the suspend/resume model, the
|
|
34
|
+
* demand-driven rAF loop, the tab-visibility owner, the ResizeObserver, and the
|
|
41
35
|
* webglcontextlost/restored robustness — lives in the substrate; this renderer
|
|
42
36
|
* threads its behaviour through the substrate's
|
|
43
37
|
* `setup`/`frame`/`shouldContinue`/`resize`/`teardown` callbacks. It does NOT call
|
|
@@ -49,4 +43,7 @@ export interface UseMetaballRendererReturn {
|
|
|
49
43
|
* a `var(--token)` — the SFC's `resolveTokenColor` leaf does that BEFORE handing
|
|
50
44
|
* concrete strings here (inv-K-3 seam); the value.js 1×1-canvas DOM probe is gone.
|
|
51
45
|
*/
|
|
52
|
-
export declare function useMetaballRenderer(options: UseMetaballRendererOptions):
|
|
46
|
+
export declare function useMetaballRenderer(options: UseMetaballRendererOptions): {
|
|
47
|
+
pause: () => void;
|
|
48
|
+
resume: () => void;
|
|
49
|
+
};
|
|
@@ -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
|
+
};
|