@mkbabb/glass-ui 3.7.0 → 3.9.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-DuArVky-.js +157 -0
- package/dist/{CommandShortcut-CY0aQTz5.js → CommandShortcut-CefCj5mt.js} +7 -7
- package/dist/{ContextMenuSubContent-BeDz7G6f.js → ContextMenuSubContent-Bhg4f5jX.js} +3 -3
- package/dist/{DataTable-gtPOLZvl.js → DataTable-CUHMukiQ.js} +4 -4
- package/dist/DeckProgress-Dmk4_AKN.js +23 -0
- package/dist/{DialogContent-DG1YMR-P.js → DialogContent-BRkT1cjP.js} +3 -3
- package/dist/{DialogFooter-BCIaDP15.js → DialogFooter-Gprw8H_A.js} +1 -1
- package/dist/{HoverPopover-DXpOEw1P.js → HoverPopover-2LOIW34a.js} +1 -1
- package/dist/{IconTooltip-Cu86JR4e.js → IconTooltip-yefK7cJc.js} +1 -1
- package/dist/{MetricBadge-D-bRaQUD.js → MetricBadge-lTc002u2.js} +1 -1
- package/dist/{Notification-B5WHP3_1.js → Notification-BxK8LZMw.js} +1 -1
- package/dist/{NumberFieldContent-CLNVR1iY.js → NumberFieldContent-BbLOh8RU.js} +2 -2
- package/dist/{PopoverContent-F1bWnYoh.js → PopoverContent-BId6ggf_.js} +1 -1
- package/dist/{Progress-c4vo4ALi.js → Progress-iEuD9pxG.js} +4 -4
- package/dist/{ScrollingText-BEp377U5.js → ScrollingText-BPP84wKo.js} +2 -2
- package/dist/{SelectScrollDownButton-DAo5NmY_.js → SelectScrollDownButton-T32cVFeM.js} +4 -4
- package/dist/{SelectSeparator-COFMJGng.js → SelectSeparator-C4Ql0gzV.js} +1 -1
- package/dist/{TabsList-COqIdW7i.js → TabsList-B8CVOQPC.js} +2 -2
- package/dist/{Toaster-BMaeziJJ.js → Toaster-1rYWrmAm.js} +1 -1
- package/dist/{ToggleGroupItem-C-AIkBUw.js → ToggleGroupItem-Cev4pOVK.js} +5 -5
- package/dist/animated-digit.js +1 -1
- package/dist/api/index.d.ts +5 -3
- package/dist/aurora.js +339 -408
- package/dist/{badge-DHQrc_GQ.js → badge-BvwvT50i.js} +4 -4
- package/dist/badge.js +1 -1
- package/dist/{button-CAywcrhO.js → button-DN39cGqL.js} +13 -12
- package/dist/button.js +1 -1
- package/dist/canvas.d.ts +1 -0
- package/dist/canvas.js +3 -0
- package/dist/card.js +1 -1
- package/dist/carousel.js +106 -105
- package/dist/collapsible.js +1 -1
- package/dist/{color-DjJCAQ6f.js → color-8jBjWiJ6.js} +22 -14
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-DAjIoEy2.js +158 -0
- package/dist/components/custom/aurora/composables/atoms.d.ts +90 -25
- package/dist/components/custom/aurora/composables/color.d.ts +0 -12
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +34 -23
- package/dist/components/custom/aurora/constants/presets.d.ts +10 -7
- package/dist/components/custom/aurora/constants/renderMode.d.ts +22 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/index.d.ts +3 -3
- package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +1 -1
- package/dist/components/custom/constellation/Constellation.vue.d.ts +40 -5
- package/dist/components/custom/constellation/constellationField.d.ts +110 -5
- 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/GlassDock.vue.d.ts +57 -67
- package/dist/components/custom/dock/composables/dockContext.d.ts +7 -0
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +57 -0
- package/dist/components/custom/dock/composables/index.d.ts +3 -0
- package/dist/components/custom/dock/composables/useDockHold.d.ts +61 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -59
- package/dist/components/custom/dock/index.d.ts +4 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -0
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +23 -5
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +2 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +2 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +20 -5
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -2
- package/dist/components/custom/goo-blob/types.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 +28 -10
- package/dist/components/ui/card/index.d.ts +1 -1
- 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/progress/ProgressDefault.vue.d.ts +14 -4
- package/dist/components/ui/slider/Slider.vue.d.ts +3 -1
- package/dist/components/ui/slider/index.d.ts +14 -7
- package/dist/components/ui/tabs/TabsList.vue.d.ts +1 -1
- package/dist/composables/color/index.d.ts +19 -0
- package/dist/composables/context/createContext.d.ts +1 -1
- package/dist/composables/dom/index.d.ts +1 -1
- package/dist/composables/dom/useResolveTokenColor.d.ts +27 -0
- package/dist/composables/glass/canvas2d/index.d.ts +2 -1
- package/dist/composables/glass/canvas2d/resolveCanvasColor.d.ts +20 -0
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +15 -1
- package/dist/composables/glass/index.d.ts +3 -1
- package/dist/composables/glass/useSpecularTracking.d.ts +33 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +1 -1
- package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +4 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +1 -1
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +2 -2
- package/dist/constellation.js +143 -74
- package/dist/context-menu.js +2 -2
- package/dist/controls.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 +468 -354
- package/dist/{dockContext-DLgrVWsU.js → dockContext-BKeIMmNk.js} +1 -1
- package/dist/dom.js +6 -6
- package/dist/{dropdown-menu-BWpwutt0.js → dropdown-menu-D77jX6Df.js} +4 -4
- package/dist/dropdown-menu.js +1 -1
- package/dist/fonts/README.md +26 -18
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +35 -35
- package/dist/glass-panel.js +7 -7
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +154 -169
- package/dist/goo-blob.js +361 -274
- package/dist/header-ribbon.js +1 -1
- 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 -2
- package/dist/instrument-chassis.js +1 -1
- package/dist/instrument-rail.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +5 -5
- package/dist/{menuItemVariants-B4eFR5Ix.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 +65 -65
- package/dist/motion.js +1 -1
- 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/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +2 -2
- package/dist/resolveCanvasColor-BBiYfp8g.js +11 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +9 -9
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-Cv1uO-Gq.js → sheet-VZEtNFvO.js} +2 -2
- package/dist/sheet.js +1 -1
- package/dist/slider-DC2mwuoe.js +142 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/status-dot.js +17 -16
- package/dist/styles/animations.css +6 -2
- package/dist/styles/components.css +1 -1
- package/dist/styles/dock/density.css +230 -0
- package/dist/styles/dock/layer-group.css +263 -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 +187 -50
- package/dist/styles/dock.css +65 -1181
- package/dist/styles/fonts.css +0 -25
- package/dist/styles/glass.css +482 -102
- package/dist/styles/index.css +12 -11
- package/dist/styles/theme.css +60 -2
- package/dist/styles/tokens.css +625 -72
- package/dist/styles/typography.css +52 -69
- package/dist/styles/utilities.css +91 -40
- package/dist/styles/view-transition.css +12 -40
- package/dist/switch.js +1 -1
- package/dist/tabs.js +183 -152
- package/dist/timeline.js +3 -3
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useCanvas2D-C31yfUGY.js → useCanvas2D-ClrQuZtp.js} +2 -1
- package/dist/{useConfiguratorState-B24TcgIn.js → useConfiguratorState-DxAqksK6.js} +24 -13
- package/dist/useResolveTokenColor-r9pnNjqK.js +24 -0
- package/dist/useSpecularTracking-BVRZsRHA.js +26 -0
- package/dist/{useTextHighlight-aMPdEpkq.js → useTextHighlight-DON84L8w.js} +1 -1
- package/dist/{useTouchGate-YQRwyUGU.js → useTouchGate-WFyJYsth.js} +1 -1
- package/dist/vReveal-CqaCz_mC.js +44 -0
- package/dist/watercolor-dot.js +1 -1
- package/package.json +67 -36
- package/src/fonts/README.md +26 -18
- package/src/styles/animations.css +6 -2
- package/src/styles/dock/density.css +230 -0
- package/src/styles/dock/layer-group.css +263 -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 +187 -50
- package/src/styles/dock.css +65 -1181
- package/src/styles/fonts.css +0 -25
- package/src/styles/glass.css +482 -102
- package/src/styles/index.css +12 -11
- package/src/styles/theme.css +60 -2
- package/src/styles/tokens.css +625 -72
- package/src/styles/typography.css +52 -69
- package/src/styles/utilities.css +91 -40
- package/src/styles/view-transition.css +12 -40
- package/dist/CardAction-D8nSE62a.js +0 -163
- package/dist/DiscoGlyph-ZoBYpoxI.js +0 -132
- package/dist/GlyphFace-Ce_oe3tM.js +0 -51
- package/dist/UnderlineTabs-D_c1iYo-.js +0 -39
- package/dist/compile-iM4IUB66.js +0 -158
- 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/disco-glyph.d.ts +0 -1
- package/dist/disco-glyph.js +0 -2
- package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/dist/glass-carousel.d.ts +0 -1
- package/dist/glass-carousel.js +0 -214
- package/dist/glyph-face.d.ts +0 -1
- package/dist/glyph-face.js +0 -3
- package/dist/keys-Dyf_uTs5.js +0 -9
- package/dist/responsive-tabs.d.ts +0 -1
- package/dist/responsive-tabs.js +0 -95
- package/dist/slider-BA9wIs5e.js +0 -130
- package/dist/styles/disco-glyph.css +0 -26
- package/dist/styles/glyph-face.css +0 -92
- package/dist/useViewTransition-DaN5Zrox.js +0 -21
- package/dist/vReveal-BE2TsPoR.js +0 -24
- package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/src/styles/disco-glyph.css +0 -26
- package/src/styles/glyph-face.css +0 -92
- /package/dist/{CollapsibleContent-D7UNsXQr.js → CollapsibleContent-CP9qF1v4.js} +0 -0
- /package/dist/{ContextMenuContent-DGKZX1Du.js → ContextMenuContent-DDa0v27s.js} +0 -0
- /package/dist/{HoverCardContent-Bn0UBMY9.js → HoverCardContent-B6CcQ8He.js} +0 -0
- /package/dist/{InstrumentChassis-BLJBl1BW.js → InstrumentChassis-C2f6cBaQ.js} +0 -0
- /package/dist/{InstrumentRail-BElFwKyt.js → InstrumentRail-CUJ05YVG.js} +0 -0
- /package/dist/{Label-DBc7bKzZ.js → Label-zRfbQdCn.js} +0 -0
- /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-B1GkAjNb.js} +0 -0
- /package/dist/{PaperBackdrop-DCGoGatv.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-BcaFjvP4.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{Separator-DZyqsCum.js → Separator-D7sD7RKj.js} +0 -0
- /package/dist/{Switch-2rsAtDfA.js → Switch-LDKLmmgx.js} +0 -0
- /package/dist/{TooltipProvider-CD2IXfRv.js → TooltipProvider-CmZzCuaG.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-gLzyemvl.js → _plugin-vue_export-helper-ok8pgSl5.js} +0 -0
- /package/dist/composables/{dom → motion}/useTextHighlight.d.ts +0 -0
- /package/dist/{createContext-CvNyBk4o.js → createContext-B44Sah_H.js} +0 -0
- /package/dist/{useGlassRenderer-HebgSEgN.js → useGlassRenderer-5I0YkI4t.js} +0 -0
- /package/dist/{useInterval-D3USn0yc.js → useInterval-Dsmqwi03.js} +0 -0
- /package/dist/{useResizeObserver-CSyxGxIX.js → useResizeObserver-CWCbk5Px.js} +0 -0
- /package/dist/{useSpringMount-LRZqJTaF.js → useSpringMount-BJSHcLl3.js} +0 -0
- /package/dist/{useTimer-DEJonOZa.js → useTimer-3xqf_54b.js} +0 -0
- /package/dist/{useUserInvalidAria-CQKjEfwP.js → useUserInvalidAria-DoJKMZ3s.js} +0 -0
- /package/dist/{useViewportReady-K96m-Mdv.js → useViewportReady-RIr5Wgkh.js} +0 -0
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { t } from "./_plugin-vue_export-helper-gLzyemvl.js";
|
|
3
|
-
import { createBlock as n, createElementBlock as r, defineComponent as i, normalizeClass as a, normalizeStyle as o, openBlock as s, ref as c, renderSlot as l, unref as u, withCtx as d } from "vue";
|
|
4
|
-
import { Primitive as f } from "reka-ui";
|
|
5
|
-
var p = /* @__PURE__ */ i({
|
|
6
|
-
__name: "Card",
|
|
7
|
-
props: {
|
|
8
|
-
tier: { default: "resting" },
|
|
9
|
-
surface: { default: "glass" },
|
|
10
|
-
shadow: {
|
|
11
|
-
type: Boolean,
|
|
12
|
-
default: !0
|
|
13
|
-
},
|
|
14
|
-
grain: {
|
|
15
|
-
type: Boolean,
|
|
16
|
-
default: !0
|
|
17
|
-
},
|
|
18
|
-
hover: {
|
|
19
|
-
type: Boolean,
|
|
20
|
-
default: !1
|
|
21
|
-
},
|
|
22
|
-
class: { type: [
|
|
23
|
-
Boolean,
|
|
24
|
-
null,
|
|
25
|
-
String,
|
|
26
|
-
Object,
|
|
27
|
-
Array
|
|
28
|
-
] },
|
|
29
|
-
asChild: { type: Boolean },
|
|
30
|
-
as: { default: "div" }
|
|
31
|
-
},
|
|
32
|
-
setup(t) {
|
|
33
|
-
let r = t, i = c({});
|
|
34
|
-
function p(e) {
|
|
35
|
-
let t = e.currentTarget;
|
|
36
|
-
if (!t) return;
|
|
37
|
-
let n = t.getBoundingClientRect();
|
|
38
|
-
if (n.width === 0 || n.height === 0) return;
|
|
39
|
-
let r = (e.clientX - n.left) / n.width * 100, a = (e.clientY - n.top) / n.height * 100;
|
|
40
|
-
i.value = {
|
|
41
|
-
"--mouse-x": `${r.toFixed(2)}%`,
|
|
42
|
-
"--mouse-y": `${a.toFixed(2)}%`
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
return (c, m) => (s(), n(u(f), {
|
|
46
|
-
"data-slot": "card",
|
|
47
|
-
"data-tier": t.tier,
|
|
48
|
-
"data-surface": t.surface,
|
|
49
|
-
"data-grain": t.grain,
|
|
50
|
-
as: t.as,
|
|
51
|
-
"as-child": t.asChild,
|
|
52
|
-
style: o(t.hover ? i.value : void 0),
|
|
53
|
-
onPointermove: m[0] ||= (e) => t.hover && p(e),
|
|
54
|
-
class: a(u(e)("rounded-card text-card-foreground scrollbar-hidden", "[--card-spacing:--spacing(6)] data-[size=sm]:[--card-spacing:--spacing(4)]", `glass-${t.tier}`, t.surface === "glass" && "glass-specular-track", t.surface === "cartoon" && "cartoon-surface", t.shadow && t.surface === "glass" && "shadow-card", !t.grain && "[&::after]:hidden", r.class))
|
|
55
|
-
}, {
|
|
56
|
-
default: d(() => [l(c.$slots, "default")]),
|
|
57
|
-
_: 3
|
|
58
|
-
}, 8, [
|
|
59
|
-
"data-tier",
|
|
60
|
-
"data-surface",
|
|
61
|
-
"data-grain",
|
|
62
|
-
"as",
|
|
63
|
-
"as-child",
|
|
64
|
-
"style",
|
|
65
|
-
"class"
|
|
66
|
-
]));
|
|
67
|
-
}
|
|
68
|
-
}), m = /* @__PURE__ */ t(/* @__PURE__ */ i({
|
|
69
|
-
__name: "CardHeader",
|
|
70
|
-
props: {
|
|
71
|
-
shrink: { type: Boolean },
|
|
72
|
-
class: { type: [
|
|
73
|
-
Boolean,
|
|
74
|
-
null,
|
|
75
|
-
String,
|
|
76
|
-
Object,
|
|
77
|
-
Array
|
|
78
|
-
] }
|
|
79
|
-
},
|
|
80
|
-
setup(t) {
|
|
81
|
-
let n = t;
|
|
82
|
-
return (i, o) => (s(), r("div", {
|
|
83
|
-
"data-slot": "card-header",
|
|
84
|
-
class: a(u(e)("@container/card-header flex flex-col gap-y-1.5 p-(--card-spacing)", "has-data-[slot=card-action]:grid has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-action]:items-start", t.shrink && "card-header--shrink", n.class))
|
|
85
|
-
}, [l(i.$slots, "default", {}, void 0, !0)], 2));
|
|
86
|
-
}
|
|
87
|
-
}), [["__scopeId", "data-v-835e5cc0"]]), h = /* @__PURE__ */ i({
|
|
88
|
-
__name: "CardTitle",
|
|
89
|
-
props: { class: { type: [
|
|
90
|
-
Boolean,
|
|
91
|
-
null,
|
|
92
|
-
String,
|
|
93
|
-
Object,
|
|
94
|
-
Array
|
|
95
|
-
] } },
|
|
96
|
-
setup(t) {
|
|
97
|
-
let n = t;
|
|
98
|
-
return (t, i) => (s(), r("h3", {
|
|
99
|
-
"data-slot": "card-title",
|
|
100
|
-
class: a(u(e)("text-heading leading-none tracking-tight", n.class))
|
|
101
|
-
}, [l(t.$slots, "default")], 2));
|
|
102
|
-
}
|
|
103
|
-
}), g = /* @__PURE__ */ i({
|
|
104
|
-
__name: "CardDescription",
|
|
105
|
-
props: { class: { type: [
|
|
106
|
-
Boolean,
|
|
107
|
-
null,
|
|
108
|
-
String,
|
|
109
|
-
Object,
|
|
110
|
-
Array
|
|
111
|
-
] } },
|
|
112
|
-
setup(t) {
|
|
113
|
-
let n = t;
|
|
114
|
-
return (t, i) => (s(), r("p", {
|
|
115
|
-
"data-slot": "card-description",
|
|
116
|
-
class: a(u(e)("text-sm text-muted-foreground-strong", n.class))
|
|
117
|
-
}, [l(t.$slots, "default")], 2));
|
|
118
|
-
}
|
|
119
|
-
}), _ = /* @__PURE__ */ i({
|
|
120
|
-
__name: "CardContent",
|
|
121
|
-
props: { class: { type: [
|
|
122
|
-
Boolean,
|
|
123
|
-
null,
|
|
124
|
-
String,
|
|
125
|
-
Object,
|
|
126
|
-
Array
|
|
127
|
-
] } },
|
|
128
|
-
setup(t) {
|
|
129
|
-
let n = t;
|
|
130
|
-
return (t, i) => (s(), r("div", { class: a(u(e)("p-(--card-spacing)", n.class)) }, [l(t.$slots, "default")], 2));
|
|
131
|
-
}
|
|
132
|
-
}), v = /* @__PURE__ */ i({
|
|
133
|
-
__name: "CardFooter",
|
|
134
|
-
props: { class: { type: [
|
|
135
|
-
Boolean,
|
|
136
|
-
null,
|
|
137
|
-
String,
|
|
138
|
-
Object,
|
|
139
|
-
Array
|
|
140
|
-
] } },
|
|
141
|
-
setup(t) {
|
|
142
|
-
let n = t;
|
|
143
|
-
return (t, i) => (s(), r("div", { class: a(u(e)("flex items-center p-(--card-spacing) pt-0", n.class)) }, [l(t.$slots, "default")], 2));
|
|
144
|
-
}
|
|
145
|
-
}), y = /* @__PURE__ */ i({
|
|
146
|
-
__name: "CardAction",
|
|
147
|
-
props: { class: { type: [
|
|
148
|
-
Boolean,
|
|
149
|
-
null,
|
|
150
|
-
String,
|
|
151
|
-
Object,
|
|
152
|
-
Array
|
|
153
|
-
] } },
|
|
154
|
-
setup(t) {
|
|
155
|
-
let n = t;
|
|
156
|
-
return (t, i) => (s(), r("div", {
|
|
157
|
-
"data-slot": "card-action",
|
|
158
|
-
class: a(u(e)("col-start-2 row-span-2 row-start-1 self-start justify-self-end", n.class))
|
|
159
|
-
}, [l(t.$slots, "default")], 2));
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
//#endregion
|
|
163
|
-
export { h as a, g as i, v as n, m as o, _ as r, p as s, y as t };
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { r as e } from "./keys-Dyf_uTs5.js";
|
|
2
|
-
import { computed as t, createElementBlock as n, createElementVNode as r, defineComponent as i, normalizeClass as a, openBlock as o, useId as s, watch as c } from "vue";
|
|
3
|
-
//#region src/components/custom/disco-glyph/DiscoGlyph.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var l = ["viewBox"], u = [
|
|
5
|
-
"id",
|
|
6
|
-
"x1",
|
|
7
|
-
"y1",
|
|
8
|
-
"x2",
|
|
9
|
-
"y2"
|
|
10
|
-
], d = ["stop-color"], f = ["stop-color"], p = ["stop-color"], m = ["stop-color"], h = ["stop-color"], g = ["stop-color"], _ = ["stop-color"], v = ["stop-color"], y = ["id"], b = ["d"], x = ["d", "fill"], S = ["d", "fill"], C = /* @__PURE__ */ i({
|
|
11
|
-
__name: "DiscoGlyph",
|
|
12
|
-
props: {
|
|
13
|
-
silhouette: {},
|
|
14
|
-
viewBox: { default: "0 0 24 24" },
|
|
15
|
-
active: {
|
|
16
|
-
type: Boolean,
|
|
17
|
-
default: !1
|
|
18
|
-
},
|
|
19
|
-
phaseColor: { default: "currentColor" },
|
|
20
|
-
facetAxis: { default: "diagonal" }
|
|
21
|
-
},
|
|
22
|
-
setup(i) {
|
|
23
|
-
let C = i, w = s(), T = t(() => `disco-facet-${w}`), E = t(() => `disco-cap-${w}`), D = t(() => {
|
|
24
|
-
switch (C.facetAxis) {
|
|
25
|
-
case "horizontal": return {
|
|
26
|
-
x1: "0",
|
|
27
|
-
y1: "0.5",
|
|
28
|
-
x2: "1",
|
|
29
|
-
y2: "0.5"
|
|
30
|
-
};
|
|
31
|
-
case "vertical": return {
|
|
32
|
-
x1: "0.5",
|
|
33
|
-
y1: "0",
|
|
34
|
-
x2: "0.5",
|
|
35
|
-
y2: "1"
|
|
36
|
-
};
|
|
37
|
-
default: return {
|
|
38
|
-
x1: "0",
|
|
39
|
-
y1: "0",
|
|
40
|
-
x2: "1",
|
|
41
|
-
y2: "1"
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
}), O = e();
|
|
45
|
-
return O && c(() => C.silhouette, (e) => {
|
|
46
|
-
O.value = e;
|
|
47
|
-
}, { immediate: !0 }), (e, t) => (o(), n("svg", {
|
|
48
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
49
|
-
viewBox: i.viewBox,
|
|
50
|
-
fill: "none",
|
|
51
|
-
class: a(["disco-glyph", { "disco-glyph--phase-tinted": i.active }]),
|
|
52
|
-
"aria-hidden": "true"
|
|
53
|
-
}, [
|
|
54
|
-
r("defs", null, [r("linearGradient", {
|
|
55
|
-
id: T.value,
|
|
56
|
-
x1: D.value.x1,
|
|
57
|
-
y1: D.value.y1,
|
|
58
|
-
x2: D.value.x2,
|
|
59
|
-
y2: D.value.y2
|
|
60
|
-
}, [
|
|
61
|
-
r("stop", {
|
|
62
|
-
offset: "0%",
|
|
63
|
-
"stop-color": i.phaseColor,
|
|
64
|
-
"stop-opacity": "0.85"
|
|
65
|
-
}, null, 8, d),
|
|
66
|
-
r("stop", {
|
|
67
|
-
offset: "14%",
|
|
68
|
-
"stop-color": i.phaseColor,
|
|
69
|
-
"stop-opacity": "1"
|
|
70
|
-
}, null, 8, f),
|
|
71
|
-
r("stop", {
|
|
72
|
-
offset: "28%",
|
|
73
|
-
"stop-color": i.phaseColor,
|
|
74
|
-
"stop-opacity": "0.7"
|
|
75
|
-
}, null, 8, p),
|
|
76
|
-
r("stop", {
|
|
77
|
-
offset: "42%",
|
|
78
|
-
"stop-color": i.phaseColor,
|
|
79
|
-
"stop-opacity": "0.95"
|
|
80
|
-
}, null, 8, m),
|
|
81
|
-
r("stop", {
|
|
82
|
-
offset: "56%",
|
|
83
|
-
"stop-color": i.phaseColor,
|
|
84
|
-
"stop-opacity": "0.6"
|
|
85
|
-
}, null, 8, h),
|
|
86
|
-
r("stop", {
|
|
87
|
-
offset: "70%",
|
|
88
|
-
"stop-color": i.phaseColor,
|
|
89
|
-
"stop-opacity": "0.85"
|
|
90
|
-
}, null, 8, g),
|
|
91
|
-
r("stop", {
|
|
92
|
-
offset: "84%",
|
|
93
|
-
"stop-color": i.phaseColor,
|
|
94
|
-
"stop-opacity": "0.5"
|
|
95
|
-
}, null, 8, _),
|
|
96
|
-
r("stop", {
|
|
97
|
-
offset: "100%",
|
|
98
|
-
"stop-color": i.phaseColor,
|
|
99
|
-
"stop-opacity": "0.75"
|
|
100
|
-
}, null, 8, v)
|
|
101
|
-
], 8, u), r("linearGradient", {
|
|
102
|
-
id: E.value,
|
|
103
|
-
x1: "0",
|
|
104
|
-
y1: "0",
|
|
105
|
-
x2: "0.5",
|
|
106
|
-
y2: "0.5"
|
|
107
|
-
}, [...t[0] ||= [r("stop", {
|
|
108
|
-
offset: "0%",
|
|
109
|
-
"stop-color": "white",
|
|
110
|
-
"stop-opacity": "0.55"
|
|
111
|
-
}, null, -1), r("stop", {
|
|
112
|
-
offset: "40%",
|
|
113
|
-
"stop-color": "white",
|
|
114
|
-
"stop-opacity": "0"
|
|
115
|
-
}, null, -1)]], 8, y)]),
|
|
116
|
-
r("path", {
|
|
117
|
-
d: i.silhouette,
|
|
118
|
-
fill: "currentColor"
|
|
119
|
-
}, null, 8, b),
|
|
120
|
-
r("path", {
|
|
121
|
-
d: i.silhouette,
|
|
122
|
-
fill: `url(#${T.value})`
|
|
123
|
-
}, null, 8, x),
|
|
124
|
-
r("path", {
|
|
125
|
-
d: i.silhouette,
|
|
126
|
-
fill: `url(#${E.value})`
|
|
127
|
-
}, null, 8, S)
|
|
128
|
-
], 10, l));
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
//#endregion
|
|
132
|
-
export { C as t };
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { n as t } from "./keys-Dyf_uTs5.js";
|
|
3
|
-
import { computed as n, createElementBlock as r, createElementVNode as i, defineComponent as a, normalizeClass as o, normalizeStyle as s, openBlock as c, ref as l, renderSlot as u } from "vue";
|
|
4
|
-
//#region src/components/custom/glyph-face/GlyphFace.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var d = ["data-active"], f = /* @__PURE__ */ a({
|
|
6
|
-
__name: "GlyphFace",
|
|
7
|
-
props: {
|
|
8
|
-
active: {
|
|
9
|
-
type: Boolean,
|
|
10
|
-
default: !1
|
|
11
|
-
},
|
|
12
|
-
tint: {},
|
|
13
|
-
silhouette: {},
|
|
14
|
-
class: { type: [
|
|
15
|
-
Boolean,
|
|
16
|
-
null,
|
|
17
|
-
String,
|
|
18
|
-
Object,
|
|
19
|
-
Array
|
|
20
|
-
] }
|
|
21
|
-
},
|
|
22
|
-
setup(a) {
|
|
23
|
-
let f = a, p = l(void 0);
|
|
24
|
-
t(p);
|
|
25
|
-
let m = n(() => e("glyph-face", f.class)), h = n(() => {
|
|
26
|
-
let e = { "--gf-tint": f.tint ?? "transparent" }, t = f.silhouette ?? p.value;
|
|
27
|
-
if (t) {
|
|
28
|
-
let n = t.trim();
|
|
29
|
-
e["--gf-silhouette"] = /^[Mm][\s.,\d-]/.test(n) ? `path('${n}')` : n;
|
|
30
|
-
}
|
|
31
|
-
return e;
|
|
32
|
-
});
|
|
33
|
-
return (e, t) => (c(), r("span", {
|
|
34
|
-
class: o(m.value),
|
|
35
|
-
"data-active": a.active ? "true" : "false",
|
|
36
|
-
style: s(h.value)
|
|
37
|
-
}, [
|
|
38
|
-
t[0] ||= i("span", {
|
|
39
|
-
class: "glyph-face-backplate",
|
|
40
|
-
"aria-hidden": "true"
|
|
41
|
-
}, null, -1),
|
|
42
|
-
u(e.$slots, "default"),
|
|
43
|
-
t[1] ||= i("span", {
|
|
44
|
-
class: "glyph-face-cap",
|
|
45
|
-
"aria-hidden": "true"
|
|
46
|
-
}, null, -1)
|
|
47
|
-
], 14, d));
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
//#endregion
|
|
51
|
-
export { f as t };
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { t } from "./_plugin-vue_export-helper-gLzyemvl.js";
|
|
3
|
-
import { Fragment as n, createElementBlock as r, defineComponent as i, mergeModels as a, normalizeClass as o, openBlock as s, renderList as c, toDisplayString as l, unref as u, useModel as d } from "vue";
|
|
4
|
-
//#region src/components/custom/tabs/UnderlineTabs.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var f = ["aria-selected", "onClick"], p = /* @__PURE__ */ t(/* @__PURE__ */ i({
|
|
6
|
-
__name: "UnderlineTabs",
|
|
7
|
-
props: /* @__PURE__ */ a({
|
|
8
|
-
options: {},
|
|
9
|
-
class: { type: [
|
|
10
|
-
Boolean,
|
|
11
|
-
null,
|
|
12
|
-
String,
|
|
13
|
-
Object,
|
|
14
|
-
Array
|
|
15
|
-
] }
|
|
16
|
-
}, {
|
|
17
|
-
modelValue: { required: !0 },
|
|
18
|
-
modelModifiers: {}
|
|
19
|
-
}),
|
|
20
|
-
emits: ["update:modelValue"],
|
|
21
|
-
setup(t) {
|
|
22
|
-
let i = t, a = d(t, "modelValue");
|
|
23
|
-
function p(e) {
|
|
24
|
-
a.value = e;
|
|
25
|
-
}
|
|
26
|
-
return (d, m) => (s(), r("div", {
|
|
27
|
-
role: "tablist",
|
|
28
|
-
class: o(u(e)("underline-tabs", i.class))
|
|
29
|
-
}, [(s(!0), r(n, null, c(t.options, (e) => (s(), r("button", {
|
|
30
|
-
key: e.value,
|
|
31
|
-
class: "underline-tab",
|
|
32
|
-
role: "tab",
|
|
33
|
-
"aria-selected": a.value === e.value ? "true" : "false",
|
|
34
|
-
onClick: (t) => p(e.value)
|
|
35
|
-
}, l(e.label), 9, f))), 128))], 2));
|
|
36
|
-
}
|
|
37
|
-
}), [["__scopeId", "data-v-689d4ffd"]]);
|
|
38
|
-
//#endregion
|
|
39
|
-
export { p as t };
|
package/dist/compile-iM4IUB66.js
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
//#region src/composables/glass/webgl/shaders/procedural-color.glsl.ts
|
|
2
|
-
var e = "\nfloat srgbToLinearCh(float c) {\n return c <= 0.04045 ? c / 12.92 : pow((c + 0.055) / 1.055, 2.4);\n}\nvec3 srgbToLinear(vec3 c) {\n return vec3(srgbToLinearCh(c.r), srgbToLinearCh(c.g), srgbToLinearCh(c.b));\n}\n\nfloat linearToSrgbCh(float c) {\n return c <= 0.0031308 ? c * 12.92 : 1.055 * pow(c, 1.0 / 2.4) - 0.055;\n}\nvec3 linearToSrgb(vec3 c) {\n return vec3(linearToSrgbCh(c.r), linearToSrgbCh(c.g), linearToSrgbCh(c.b));\n}", t = "const mat2 FBM_ROT = mat2(0.8, 0.6, -0.6, 0.8);", n = "\n// value.js LINEAR_SRGB_TO_LMS (constants.ts), row-major; written here as GLSL\n// columns (= the transpose) so mat3 * vec3 evaluates the row-major M·v.\nconst mat3 LINEAR_SRGB_TO_LMS = mat3(\n 0.4122214708, 0.2119034982, 0.0883024619,\n 0.5363325363, 0.6806995451, 0.2817188376,\n 0.0514459929, 0.1073969566, 0.6299787005\n);\n\n// value.js srgbToOKLab's INLINE LMS→OKLab coefficients (gamut.ts lines 295-297 —\n// these differ at the ~1e-9 digit from LMS_TO_OKLAB_MATRIX; use the inline ones to\n// mirror the exact value.js path), row-major → GLSL columns.\nconst mat3 LMS_TO_OKLAB = mat3(\n 0.2104542553, 1.9779984951, 0.0259040371,\n 0.7936177850, -2.4285922050, 0.7827717662,\n -0.0040720468, 0.4505937099, -0.8086757660\n);\n\n// value.js OKLAB_TO_LMS_COEFF (constants.ts), row-major → GLSL columns. Rows:\n// l = [1, 0.3963377774, 0.2158037573], m = [1, -0.1055613458, -0.0638541728],\n// s = [1, -0.0894841775, -1.2914855480].\nconst mat3 OKLAB_TO_LMS = mat3(\n 1.0, 1.0, 1.0,\n 0.3963377774, -0.1055613458, -0.0894841775,\n 0.2158037573, -0.0638541728, -1.2914855480\n);\n\n// value.js LMS_TO_LINEAR_SRGB (constants.ts), row-major → GLSL columns.\nconst mat3 LMS_TO_LINEAR_SRGB = mat3(\n 4.0767416621, -1.2684380046, -0.0041960863,\n -3.3077115913, 2.6097574011, -0.7034186147,\n 0.2309699292, -0.3413193965, 1.7076147010\n);\n\n// Gamma sRGB → raw OKLab (L, a, b). Mirrors value.js srgbToOKLab.\nvec3 srgbToOklab(vec3 c) {\n vec3 lin = srgbToLinear(c);\n vec3 lms = LINEAR_SRGB_TO_LMS * lin;\n vec3 lmsCbrt = sign(lms) * pow(abs(lms), vec3(1.0 / 3.0));\n return LMS_TO_OKLAB * lmsCbrt;\n}\n\n// Raw OKLab (L, a, b) → linear sRGB. Mirrors value.js oklabToLinearSRGB.\nvec3 oklabToLinearSrgb(vec3 lab) {\n vec3 lms_ = OKLAB_TO_LMS * lab;\n vec3 lms = lms_ * lms_ * lms_;\n return LMS_TO_LINEAR_SRGB * lms;\n}\n\n// OKLab → OKLCh: H in RADIANS. Mirrors value.js rawOklabToOklch (which returns\n// degrees; we stay in radians and only fold to [0, 2pi)).\nvec3 oklabToOklch(vec3 lab) {\n float C = length(lab.yz);\n float H = atan(lab.z, lab.y);\n if (H < 0.0) H += 2.0 * PI;\n return vec3(lab.x, C, H);\n}\n\n// OKLCh (H radians) → OKLab. Mirrors value.js rawOklchToOklab.\nvec3 oklchToOklab(vec3 lch) {\n return vec3(lch.x, lch.y * cos(lch.z), lch.y * sin(lch.z));\n}", r = "\nfn srgbToLinearCh(c: f32) -> f32 {\n return select(pow((c + 0.055) / 1.055, 2.4), c / 12.92, c <= 0.04045);\n}\nfn srgbToLinear(c: vec3f) -> vec3f {\n return vec3f(srgbToLinearCh(c.r), srgbToLinearCh(c.g), srgbToLinearCh(c.b));\n}\nfn linearToSrgbCh(c: f32) -> f32 {\n return select(1.055 * pow(c, 1.0 / 2.4) - 0.055, c * 12.92, c <= 0.0031308);\n}\nfn linearToSrgb(c: vec3f) -> vec3f {\n return vec3f(linearToSrgbCh(c.r), linearToSrgbCh(c.g), linearToSrgbCh(c.b));\n}", i = "const FBM_ROT: mat2x2f = mat2x2f(0.8, 0.6, -0.6, 0.8);", a = "\nconst LINEAR_SRGB_TO_LMS: mat3x3f = mat3x3f(\n 0.4122214708, 0.2119034982, 0.0883024619,\n 0.5363325363, 0.6806995451, 0.2817188376,\n 0.0514459929, 0.1073969566, 0.6299787005\n);\nconst LMS_TO_OKLAB: mat3x3f = mat3x3f(\n 0.2104542553, 1.9779984951, 0.0259040371,\n 0.7936177850, -2.4285922050, 0.7827717662,\n -0.0040720468, 0.4505937099, -0.8086757660\n);\nconst OKLAB_TO_LMS: mat3x3f = mat3x3f(\n 1.0, 1.0, 1.0,\n 0.3963377774, -0.1055613458, -0.0894841775,\n 0.2158037573, -0.0638541728, -1.2914855480\n);\nconst LMS_TO_LINEAR_SRGB: mat3x3f = mat3x3f(\n 4.0767416621, -1.2684380046, -0.0041960863,\n -3.3077115913, 2.6097574011, -0.7034186147,\n 0.2309699292, -0.3413193965, 1.7076147010\n);\n\nfn srgbToOklab(c: vec3f) -> vec3f {\n let lin = srgbToLinear(c);\n let lms = LINEAR_SRGB_TO_LMS * lin;\n let lmsCbrt = sign(lms) * pow(abs(lms), vec3f(1.0 / 3.0));\n return LMS_TO_OKLAB * lmsCbrt;\n}\nfn oklabToLinearSrgb(lab: vec3f) -> vec3f {\n let lms_ = OKLAB_TO_LMS * lab;\n let lms = lms_ * lms_ * lms_;\n return LMS_TO_LINEAR_SRGB * lms;\n}\nfn oklabToOklch(lab: vec3f) -> vec3f {\n let C = length(lab.yz);\n var H = atan2(lab.z, lab.y);\n if (H < 0.0) { H = H + 2.0 * PI; }\n return vec3f(lab.x, C, H);\n}\nfn oklchToOklab(lch: vec3f) -> vec3f {\n return vec3f(lch.x, lch.y * cos(lch.z), lch.y * sin(lch.z));\n}";
|
|
3
|
-
function o(e, t, n) {
|
|
4
|
-
return Math.max(t, Math.min(n, e));
|
|
5
|
-
}
|
|
6
|
-
function s() {
|
|
7
|
-
let e = typeof window < "u" && window.devicePixelRatio || 1;
|
|
8
|
-
return Math.min(e, 2);
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
//#region src/composables/glass/webgl/createCanvasLifecycle.ts
|
|
12
|
-
function c(e) {
|
|
13
|
-
let { canvas: t, buildContext: n, resize: r } = e, i = e.respectReducedMotion ?? e.mode !== "capture", a = /* @__PURE__ */ new Set();
|
|
14
|
-
e.mode === "capture" && a.add("manual");
|
|
15
|
-
let o = () => a.size === 0, s = 0, c = typeof performance < "u" ? performance.now() : 0, l = null, u = !1, d = !1, f = i && typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-reduced-motion: reduce)") : null, p = f?.matches ?? !1;
|
|
16
|
-
function m() {
|
|
17
|
-
if (!o() || !l) return;
|
|
18
|
-
let e = (performance.now() - c) / 1e3, t = l.time ? l.time(e) : e;
|
|
19
|
-
l.frame(t), s = !p && l.shouldContinue() ? requestAnimationFrame(m) : 0;
|
|
20
|
-
}
|
|
21
|
-
function h() {
|
|
22
|
-
u && o() && !s && l && (s = requestAnimationFrame(m));
|
|
23
|
-
}
|
|
24
|
-
function g() {
|
|
25
|
-
let e = f?.matches ?? !1;
|
|
26
|
-
e !== p && (p = e, e || (c = performance.now()), h());
|
|
27
|
-
}
|
|
28
|
-
f?.addEventListener("change", g);
|
|
29
|
-
function _(e = "manual") {
|
|
30
|
-
let t = o();
|
|
31
|
-
a.add(e), t && !o() && (cancelAnimationFrame(s), s = 0);
|
|
32
|
-
}
|
|
33
|
-
function v(e = "manual") {
|
|
34
|
-
let t = !o();
|
|
35
|
-
a.delete(e), t && o() && u && l && (c = performance.now() - 1e3, m());
|
|
36
|
-
}
|
|
37
|
-
let y = typeof document < "u";
|
|
38
|
-
function b() {
|
|
39
|
-
document.hidden ? _("tab-hidden") : v("tab-hidden");
|
|
40
|
-
}
|
|
41
|
-
y && document.addEventListener("visibilitychange", b), y && document.hidden && a.add("tab-hidden");
|
|
42
|
-
let x = null;
|
|
43
|
-
function S(e) {
|
|
44
|
-
e.skipped ? _("off-screen") : v("off-screen");
|
|
45
|
-
}
|
|
46
|
-
function C() {
|
|
47
|
-
if (x) return;
|
|
48
|
-
let e = t.parentElement;
|
|
49
|
-
e && (x = e, e.addEventListener("contentvisibilityautostatechange", S));
|
|
50
|
-
}
|
|
51
|
-
function w() {
|
|
52
|
-
x?.removeEventListener("contentvisibilityautostatechange", S), x = null;
|
|
53
|
-
}
|
|
54
|
-
function T() {
|
|
55
|
-
l = n(), r();
|
|
56
|
-
}
|
|
57
|
-
function E() {
|
|
58
|
-
u || d || (e.bindContextEvents?.(() => {
|
|
59
|
-
d || (T(), o() && h());
|
|
60
|
-
}, () => {
|
|
61
|
-
l = null, cancelAnimationFrame(s), s = 0;
|
|
62
|
-
}), T(), C(), u = !0, c = performance.now(), o() && (s = requestAnimationFrame(m)));
|
|
63
|
-
}
|
|
64
|
-
function D(e) {
|
|
65
|
-
u || E(), l?.frame(e);
|
|
66
|
-
}
|
|
67
|
-
function O() {
|
|
68
|
-
d = !0, cancelAnimationFrame(s), s = 0, y && document.removeEventListener("visibilitychange", b), f?.removeEventListener("change", g), w(), e.unbindContextEvents?.(), l?.teardown?.(), l = null, a.clear();
|
|
69
|
-
}
|
|
70
|
-
return e.mode === "capture" && E(), {
|
|
71
|
-
arm: E,
|
|
72
|
-
suspend: _,
|
|
73
|
-
resume: v,
|
|
74
|
-
wake: h,
|
|
75
|
-
renderAt: D,
|
|
76
|
-
dispose: O,
|
|
77
|
-
get armed() {
|
|
78
|
-
return u;
|
|
79
|
-
},
|
|
80
|
-
get disposed() {
|
|
81
|
-
return d;
|
|
82
|
-
},
|
|
83
|
-
get running() {
|
|
84
|
-
return o();
|
|
85
|
-
},
|
|
86
|
-
get reducedMotion() {
|
|
87
|
-
return p;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
//#endregion
|
|
92
|
-
//#region src/composables/glass/webgl/useWebGLCanvas.ts
|
|
93
|
-
function l(e, t) {
|
|
94
|
-
let { setup: n, contextAttrs: r } = t, i = null, a = null, o = null;
|
|
95
|
-
function s() {
|
|
96
|
-
let t = e.getContext("webgl2", r ?? void 0);
|
|
97
|
-
if (!t) throw Error("[useWebGLCanvas] WebGL2 unavailable");
|
|
98
|
-
return i = t, o = n(i), a || (a = new ResizeObserver(() => o?.resize()), a.observe(e)), {
|
|
99
|
-
frame: o.frame,
|
|
100
|
-
shouldContinue: o.shouldContinue,
|
|
101
|
-
time: o.time,
|
|
102
|
-
teardown: () => {
|
|
103
|
-
o?.teardown?.(), i?.getExtension("WEBGL_lose_context")?.loseContext(), a?.disconnect(), a = null, i = null, o = null;
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
let l = null, u = null;
|
|
108
|
-
function d(e) {
|
|
109
|
-
e.preventDefault(), i = null, o = null, u?.();
|
|
110
|
-
}
|
|
111
|
-
let f = c({
|
|
112
|
-
canvas: e,
|
|
113
|
-
mode: t.mode,
|
|
114
|
-
respectReducedMotion: t.respectReducedMotion,
|
|
115
|
-
buildContext: s,
|
|
116
|
-
resize: () => o?.resize(),
|
|
117
|
-
bindContextEvents: (t, n) => {
|
|
118
|
-
l = t, u = n, e.addEventListener("webglcontextlost", d, !1), e.addEventListener("webglcontextrestored", l, !1);
|
|
119
|
-
},
|
|
120
|
-
unbindContextEvents: () => {
|
|
121
|
-
e.removeEventListener("webglcontextlost", d, !1), l && e.removeEventListener("webglcontextrestored", l, !1);
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
return {
|
|
125
|
-
arm: f.arm,
|
|
126
|
-
suspend: f.suspend,
|
|
127
|
-
resume: f.resume,
|
|
128
|
-
wake: f.wake,
|
|
129
|
-
renderAt: f.renderAt,
|
|
130
|
-
dispose: f.dispose,
|
|
131
|
-
get gl() {
|
|
132
|
-
return i;
|
|
133
|
-
},
|
|
134
|
-
get reducedMotion() {
|
|
135
|
-
return f.reducedMotion;
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
//#endregion
|
|
140
|
-
//#region src/composables/glass/webgl/compile.ts
|
|
141
|
-
function u(e, t, n, r = "[glass-ui:webgl]") {
|
|
142
|
-
let i = e.createShader(t);
|
|
143
|
-
if (e.shaderSource(i, n), e.compileShader(i), !e.getShaderParameter(i, e.COMPILE_STATUS)) {
|
|
144
|
-
let t = e.getShaderInfoLog(i) ?? "unknown";
|
|
145
|
-
throw e.deleteShader(i), Error(`${r} shader compile failed:\n${t}`);
|
|
146
|
-
}
|
|
147
|
-
return i;
|
|
148
|
-
}
|
|
149
|
-
function d(e, t, n, r = "[glass-ui:webgl]") {
|
|
150
|
-
let i = e.createProgram();
|
|
151
|
-
if (e.attachShader(i, t), e.attachShader(i, n), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS)) {
|
|
152
|
-
let t = e.getProgramInfoLog(i) ?? "unknown";
|
|
153
|
-
throw e.deleteProgram(i), Error(`${r} program link failed:\n${t}`);
|
|
154
|
-
}
|
|
155
|
-
return i;
|
|
156
|
-
}
|
|
157
|
-
//#endregion
|
|
158
|
-
export { o as a, i as c, n as d, a as f, c as i, e as l, d as n, s as o, l as r, t as s, u as t, r as u };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/** The tensor-target format the CONSUMER declares (NOT baked in the substrate). */
|
|
2
|
-
export declare const PAINTERLY_TENSOR_FORMAT: "rgba16float";
|
|
3
|
-
/** The anisotropic-Kuwahara sector count the CONSUMER declares. */
|
|
4
|
-
export declare const PAINTERLY_KUWAHARA_SECTORS: 8;
|
|
5
|
-
export declare const PAINTERLY_TENSOR_WGSL = "\n@group(0) @binding(0) var baseTex: texture_2d<f32>;\n@group(0) @binding(1) var baseSampler: sampler;\n\nconst W_LUMA: vec3f = vec3f(0.2126, 0.7152, 0.0722);\n\n@fragment\nfn tensor_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n let texel = 1.0 / vec2f(textureDimensions(baseTex));\n // 3x3 Sobel over luma.\n var l: array<f32, 9>;\n var k = 0;\n for (var dy = -1; dy <= 1; dy = dy + 1) {\n for (var dx = -1; dx <= 1; dx = dx + 1) {\n let s = textureSample(baseTex, baseSampler, uv + vec2f(f32(dx), f32(dy)) * texel).rgb;\n l[k] = dot(s, W_LUMA);\n k = k + 1;\n }\n }\n let gx = (l[2] + 2.0 * l[5] + l[8]) - (l[0] + 2.0 * l[3] + l[6]);\n let gy = (l[6] + 2.0 * l[7] + l[8]) - (l[0] + 2.0 * l[1] + l[2]);\n // (Jxx, Jyy, Jxy) \u2014 RGBA16F target (magnitudes exceed [0,1], 8-bit LDR clips).\n return vec4f(gx * gx, gy * gy, gx * gy, 1.0);\n}";
|
|
6
|
-
export declare const PAINTERLY_SMOOTH_WGSL = "\n@group(0) @binding(0) var tensorTex: texture_2d<f32>;\n@group(0) @binding(1) var tensorSampler: sampler;\n@group(0) @binding(2) var<uniform> dir: vec2f;\n\n@fragment\nfn smooth_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n let texel = 1.0 / vec2f(textureDimensions(tensorTex));\n // 9-tap Gaussian (sigma ~2) along the dir axis.\n let w = array<f32, 5>(0.227027, 0.194594, 0.121622, 0.054054, 0.016216);\n var sum = textureSample(tensorTex, tensorSampler, uv).xyz * w[0];\n for (var i = 1; i < 5; i = i + 1) {\n let off = dir * texel * f32(i);\n sum = sum + textureSample(tensorTex, tensorSampler, uv + off).xyz * w[i];\n sum = sum + textureSample(tensorTex, tensorSampler, uv - off).xyz * w[i];\n }\n return vec4f(sum, 1.0);\n}";
|
|
7
|
-
export declare const PAINTERLY_KUWAHARA_WGSL: string;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** The wake velocity-texture format (the CONSUMER declares it; the substrate bakes none). */
|
|
2
|
-
export declare const WAKE_TEXTURE_FORMAT: "rg16float";
|
|
3
|
-
export declare const WAKE_ADVECT_WGSL = "\nstruct WakeUniforms {\n dt: f32,\n tempo: f32, // the master tempo scalar (0 under PRM/pause \u2014 freezes injection)\n dissipation: f32,\n pad: f32,\n splatPos: vec2f, // the delta-tracked pointer position (0..1)\n splatVel: vec2f, // the pointer velocity (the splat direction/strength)\n splatRadius: f32,\n rippleAmp: f32, // a click \u2192 a radial-ripple impulse\n pad2: vec2f,\n};\n\n@group(0) @binding(0) var velTex: texture_2d<f32>;\n@group(0) @binding(1) var velSampler: sampler;\n@group(0) @binding(2) var<uniform> U: WakeUniforms;\n\n@fragment\nfn advect_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n let texel = 1.0 / vec2f(textureDimensions(velTex));\n // Self-advection: trace back along the local velocity by dt (semi-Lagrangian).\n let v0 = textureSample(velTex, velSampler, uv).xy;\n let back = uv - v0 * U.dt;\n var v = textureSample(velTex, velSampler, back).xy;\n // Dissipate (the eddies decay so the wake lingers but fades).\n v = v * U.dissipation;\n\n // Delta-tracked Gaussian SPLAT \u2014 the pointer writes velocity into the field. The\n // injection is gated by the master tempo (0 under PRM \u2192 no new motion under reduce).\n let d = uv - U.splatPos;\n let g = exp(-dot(d, d) / max(U.splatRadius * U.splatRadius, 1e-6));\n v = v + U.splatVel * g * U.tempo;\n\n // Click \u2192 a radial-ripple impulse (pushes velocity radially outward from the splat).\n if (U.rippleAmp > 0.001) {\n let dir = d / max(length(d), 1e-4);\n v = v + dir * U.rippleAmp * g * U.tempo;\n }\n\n return vec4f(v, 0.0, 1.0);\n}";
|
|
4
|
-
export declare const WAKE_APPLY_WGSL = "\n@group(0) @binding(0) var wakeTex: texture_2d<f32>;\n@group(0) @binding(1) var wakeSampler: sampler;\n\nfn wakeBias(uv: vec2f) -> vec2f {\n return textureSample(wakeTex, wakeSampler, uv).xy;\n}";
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* <DiscoGlyph> — faceted SVG glyph primitive.
|
|
3
|
-
*
|
|
4
|
-
* Three layers paint over a single `silhouette` path:
|
|
5
|
-
* 1. base — the silhouette filled `currentColor` so consumers retain the
|
|
6
|
-
* lucide cascade (Vignelli-clean colour register at idle).
|
|
7
|
-
* 2. facet — an 8-stop linear gradient that simulates ~6 facets cutting
|
|
8
|
-
* across the glyph face. `phaseColor` (default `currentColor`) drives
|
|
9
|
-
* the hue; in active states a phase var (`--phase-color` or similar)
|
|
10
|
-
* reads through. Q.W3.A.3: gradient axis adapts to silhouette via
|
|
11
|
-
* `facetAxis` so each consumer picks the axis that cuts *across* its
|
|
12
|
-
* dominant stroke direction (CheckDisco's V-shape calls for vertical;
|
|
13
|
-
* ArrowRightDisco's horizontal shaft also vertical; PlayDisco's
|
|
14
|
-
* triangle works on the diagonal).
|
|
15
|
-
* 3. cap — a 165° specular catch-light gradient. White at the upper-left,
|
|
16
|
-
* transparent past 40%; the polished-metal hot-spot a real disco
|
|
17
|
-
* glyph would carry under club lighting.
|
|
18
|
-
*
|
|
19
|
-
* Q.W3.A.1 silhouette hand-off: when wrapped in a `<GlyphFace>`, this
|
|
20
|
-
* primitive publishes its `silhouette` prop upward via the
|
|
21
|
-
* `GLYPH_FACE_SILHOUETTE_KEY` injection slot, so the GlyphFace cap clips
|
|
22
|
-
* to the disco silhouette without the wrapping consumer (PrimaryAction)
|
|
23
|
-
* needing to mirror the path on every glyph swap. The provide/inject
|
|
24
|
-
* path is reactive — GlyphFace re-reads when the descendant's
|
|
25
|
-
* `silhouette` prop changes (e.g. PrimaryAction's `glyphFor(state)`
|
|
26
|
-
* branches across Play / Check / ArrowRight / RotateCcw).
|
|
27
|
-
*
|
|
28
|
-
* `useId()` scopes the gradient ids so multiple glyphs on one page do not
|
|
29
|
-
* collide post-SSR/hydration. The id format mirrors the existing speedtest
|
|
30
|
-
* conventions (`disco-facet-<id>` / `disco-cap-<id>`).
|
|
31
|
-
*/
|
|
32
|
-
type __VLS_Props = {
|
|
33
|
-
/** SVG path d-attribute describing the glyph silhouette. */
|
|
34
|
-
silhouette: string;
|
|
35
|
-
/** SVG viewBox. Defaults `0 0 24 24`. */
|
|
36
|
-
viewBox?: string;
|
|
37
|
-
/** Phase-tinted state — wired through CSS class consumers may hook. */
|
|
38
|
-
active?: boolean;
|
|
39
|
-
/** Stop-color for the facet gradient. Defaults `currentColor`. */
|
|
40
|
-
phaseColor?: string;
|
|
41
|
-
/**
|
|
42
|
-
* Axis along which the facet gradient runs. The 8 stops cut
|
|
43
|
-
* perpendicular to this axis, so a diagonal axis gives diagonal
|
|
44
|
-
* facets, vertical gives horizontal facets across the glyph,
|
|
45
|
-
* etc. Q.W3.A.3 default stays diagonal; consumers picking an
|
|
46
|
-
* axis that cuts across the silhouette's dominant stroke
|
|
47
|
-
* sharpen the facet read at small render sizes.
|
|
48
|
-
*/
|
|
49
|
-
facetAxis?: "diagonal" | "horizontal" | "vertical";
|
|
50
|
-
};
|
|
51
|
-
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
52
|
-
active: boolean;
|
|
53
|
-
viewBox: string;
|
|
54
|
-
phaseColor: string;
|
|
55
|
-
facetAxis: "diagonal" | "horizontal" | "vertical";
|
|
56
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
57
|
-
declare const _default: typeof __VLS_export;
|
|
58
|
-
export default _default;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as DiscoGlyph } from "./DiscoGlyph.vue";
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { type HTMLAttributes } from "vue";
|
|
2
|
-
type __VLS_Props = {
|
|
3
|
-
/** Scroll axis */
|
|
4
|
-
orientation?: "horizontal" | "vertical";
|
|
5
|
-
/** Expanded = items spread to fill space; collapsed = compact pill */
|
|
6
|
-
expanded?: boolean;
|
|
7
|
-
/** Enable scroll-snap */
|
|
8
|
-
snap?: boolean | "mandatory" | "proximity";
|
|
9
|
-
/** Show overflow fade indicators */
|
|
10
|
-
fadeOverflow?: boolean;
|
|
11
|
-
class?: HTMLAttributes["class"];
|
|
12
|
-
};
|
|
13
|
-
declare var __VLS_15: {};
|
|
14
|
-
type __VLS_Slots = {} & {
|
|
15
|
-
default?: (props: typeof __VLS_15) => any;
|
|
16
|
-
};
|
|
17
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
18
|
-
canScrollStart: import("vue").Ref<boolean, boolean>;
|
|
19
|
-
canScrollEnd: import("vue").Ref<boolean, boolean>;
|
|
20
|
-
scrollToItem: (index: number) => void;
|
|
21
|
-
isTransitioning: import("vue").Ref<boolean, boolean>;
|
|
22
|
-
visualExpanded: import("vue").Ref<boolean, boolean>;
|
|
23
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
24
|
-
orientation: "horizontal" | "vertical";
|
|
25
|
-
expanded: boolean;
|
|
26
|
-
snap: boolean | "mandatory" | "proximity";
|
|
27
|
-
fadeOverflow: boolean;
|
|
28
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
30
|
-
declare const _default: typeof __VLS_export;
|
|
31
|
-
export default _default;
|
|
32
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
33
|
-
new (): {
|
|
34
|
-
$slots: S;
|
|
35
|
-
};
|
|
36
|
-
};
|