@mkbabb/glass-ui 3.6.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CardAction-D8nSE62a.js +163 -0
- package/dist/CollapsibleContent-D7UNsXQr.js +63 -0
- package/dist/{CommandShortcut-BiVyqipe.js → CommandShortcut-CY0aQTz5.js} +4 -4
- package/dist/{ContextMenuContent-De01_83g.js → ContextMenuContent-DGKZX1Du.js} +1 -1
- package/dist/{ContextMenuSubContent-DrWkXKQP.js → ContextMenuSubContent-BeDz7G6f.js} +4 -4
- package/dist/{DataTable-BGVXx0Ww.js → DataTable-gtPOLZvl.js} +14 -7
- package/dist/{DialogContent-IQ8_BRrC.js → DialogContent-DG1YMR-P.js} +24 -24
- package/dist/{DialogFooter-Er0wA3K6.js → DialogFooter-BCIaDP15.js} +2 -2
- package/dist/{DiscoGlyph-BaZ8OawK.js → DiscoGlyph-ZoBYpoxI.js} +1 -1
- package/dist/{GlyphFace-B_7vOmYn.js → GlyphFace-Ce_oe3tM.js} +1 -1
- package/dist/{HoverCardContent-ICfIMZX1.js → HoverCardContent-Bn0UBMY9.js} +1 -1
- package/dist/{HoverPopover-DTSYkJtw.js → HoverPopover-DXpOEw1P.js} +1 -1
- package/dist/{IconTooltip-DZlCkU-0.js → IconTooltip-Cu86JR4e.js} +1 -1
- package/dist/{Input-CRJ2owjN.js → Input-DWQQIOC4.js} +4 -1
- package/dist/{Label-CZk-3nTc.js → Label-DBc7bKzZ.js} +1 -1
- package/dist/{MetricBadge-BlrdbOGN.js → MetricBadge-D-bRaQUD.js} +1 -1
- package/dist/{Notification-DP_ApJLo.js → Notification-B5WHP3_1.js} +5 -4
- package/dist/{NumberFieldContent-Bhhmk95p.js → NumberFieldContent-CLNVR1iY.js} +5 -5
- package/dist/{PopoverContent-B8WtJECb.js → PopoverContent-F1bWnYoh.js} +2 -2
- package/dist/{Progress-DjM86vfb.js → Progress-c4vo4ALi.js} +6 -6
- package/dist/{ScrollingText-P9o_DuMn.js → ScrollingText-BEp377U5.js} +2 -2
- package/dist/{SelectScrollDownButton-BGn3rjs9.js → SelectScrollDownButton-DAo5NmY_.js} +8 -7
- package/dist/{Separator-C2XtAXRp.js → Separator-DZyqsCum.js} +1 -1
- package/dist/{Switch-x8n6husW.js → Switch-2rsAtDfA.js} +8 -2
- package/dist/TabsList-COqIdW7i.js +101 -0
- package/dist/{Toaster-DdhMKfus.js → Toaster-BMaeziJJ.js} +54 -60
- package/dist/{ToggleGroupItem-gyXj998A.js → ToggleGroupItem-C-AIkBUw.js} +13 -5
- package/dist/{TooltipProvider-D-JrSqDu.js → TooltipProvider-CD2IXfRv.js} +1 -1
- package/dist/{UnderlineTabs-CuIK16JI.js → UnderlineTabs-D_c1iYo-.js} +1 -1
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/aurora.js +690 -227
- package/dist/{badge-Cl6JZ1B7.js → badge-DHQrc_GQ.js} +13 -9
- package/dist/badge.js +1 -1
- package/dist/{button-BcMzVrqs.js → button-CAywcrhO.js} +6 -3
- package/dist/button.js +1 -1
- package/dist/card.js +2 -2
- package/dist/carousel.js +5 -5
- package/dist/{check-CdkxGxXJ.js → check-BBKKKSTf.js} +1 -1
- package/dist/{chevron-down-pBY8sYfV.js → chevron-down-BSkTP2aL.js} +1 -1
- package/dist/{chevron-right-BjeKC22V.js → chevron-right-sDM0Yvrf.js} +1 -1
- package/dist/{chevron-up-DBeNHUm1.js → chevron-up-CCOD_FTz.js} +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color-DjJCAQ6f.js +76 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-iM4IUB66.js +158 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +1 -0
- package/dist/components/custom/aurora/composables/atoms.d.ts +60 -0
- package/dist/components/custom/aurora/composables/color.d.ts +7 -13
- package/dist/components/custom/aurora/composables/cursorModel.d.ts +35 -2
- package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
- package/dist/components/custom/aurora/composables/gpuRuntime.d.ts +16 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +18 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +23 -0
- package/dist/components/custom/aurora/composables/useAurora.d.ts +6 -0
- package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +55 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +10 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +7 -0
- package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/flow.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -2
- package/dist/components/custom/aurora/constants/shaders/painterly.wgsl.d.ts +7 -0
- package/dist/components/custom/aurora/constants/shaders/wake.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +38 -0
- package/dist/components/custom/fourier-field/index.d.ts +2 -0
- package/dist/components/custom/fourier-field/math.d.ts +57 -0
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +2 -0
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +14 -2
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +45 -4
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +1 -1
- 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 +40 -0
- package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +1 -1
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/ui/_shared/ModalOverlay.vue.d.ts +1 -1
- package/dist/components/ui/alert/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +10 -3
- package/dist/components/ui/card/CardAction.vue.d.ts +24 -0
- package/dist/components/ui/card/index.d.ts +1 -0
- package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +5 -1
- package/dist/components/ui/tabs/TabsList.vue.d.ts +13 -3
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -5
- package/dist/components/ui/toast/use-toast.d.ts +1 -1
- package/dist/composables/color/index.d.ts +50 -0
- package/dist/composables/glass/createGPUCanvas.d.ts +40 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +45 -0
- package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +3 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +4 -4
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +3 -3
- package/dist/constellation.js +3 -3
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +2 -2
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/disco-glyph.js +1 -1
- package/dist/dock.js +9 -9
- package/dist/{dockContext-spUj_-E5.js → dockContext-DLgrVWsU.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/{dropdown-menu-EFjl5iKo.js → dropdown-menu-BWpwutt0.js} +5 -5
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +2 -2
- package/dist/forms.js +10 -7
- package/dist/fourier-field.d.ts +1 -0
- package/dist/fourier-field.js +166 -0
- package/dist/glass-carousel.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +207 -192
- package/dist/glyph-face.js +2 -2
- package/dist/goo-blob.js +336 -234
- 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/instrument-chassis.js +1 -1
- package/dist/instrument-rail.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/{keys-BFoma9vm.js → keys-Dyf_uTs5.js} +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +6 -6
- package/dist/metric-badge.js +1 -1
- package/dist/metric-stack.js +1 -1
- package/dist/{minimize-2-BP27-qBY.js → minimize-2-lcXOuc6V.js} +1 -1
- package/dist/motion-core.js +76 -106
- package/dist/motion.js +3 -3
- 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 +1 -1
- package/dist/reactive.js +2 -2
- package/dist/responsive-tabs.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/{search-DBG8qaRs.js → search-nbkvr2dC.js} +1 -1
- package/dist/search.js +8 -8
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-CQYYrkr9.js → sheet-Cv1uO-Gq.js} +4 -4
- package/dist/sheet.js +1 -1
- package/dist/{slider-CgNzRSh6.js → slider-BA9wIs5e.js} +5 -4
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/styles/components.css +1 -1
- package/dist/styles/theme.css +49 -0
- package/dist/styles/typography.css +3 -3
- package/dist/styles/utilities.css +17 -13
- package/dist/supportsCssTimeline-C5oe0lnD.js +12 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +3 -3
- package/dist/timeline.js +2 -2
- 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/{useAnimatedNumber-DfVgP4te.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
- package/dist/{useConfiguratorState-DUtC1jxr.js → useConfiguratorState-B24TcgIn.js} +5 -5
- package/dist/useScrollProgress-CAH8Ofwt.js +35 -0
- package/dist/{useTouchGate-CS5Csc2h.js → useTouchGate-YQRwyUGU.js} +1 -1
- package/dist/{vReveal-u2wSG2El.js → vReveal-BE2TsPoR.js} +6 -17
- package/dist/watercolor-dot.js +2 -2
- package/dist/{x-C4pz9nbD.js → x-Dfsegz9Y.js} +1 -1
- package/package.json +29 -1
- package/src/styles/theme.css +49 -0
- package/src/styles/typography.css +3 -3
- package/src/styles/utilities.css +17 -13
- package/dist/CardFooter-C390imy7.js +0 -129
- package/dist/CollapsibleContent-cauTbZEM.js +0 -52
- package/dist/TabsIndicator-DA0x9gPr.js +0 -97
- package/dist/color-DS-iLRVM.js +0 -33
- package/dist/compile-C62K_FpC.js +0 -106
- /package/dist/{InstrumentChassis-DaHIZCqy.js → InstrumentChassis-BLJBl1BW.js} +0 -0
- /package/dist/{InstrumentRail-B0qqLFN0.js → InstrumentRail-BElFwKyt.js} +0 -0
- /package/dist/{ModalOverlay-B_CBtqcE.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-D_YZW47j.js → PaperBackdrop-DCGoGatv.js} +0 -0
- /package/dist/{SelectGroup-CMdoCjRE.js → SelectGroup-BcaFjvP4.js} +0 -0
- /package/dist/{SelectSeparator-CaJnPF3_.js → SelectSeparator-COFMJGng.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
- /package/dist/{constants-C8NMonuo.js → constants-CS75AWHG.js} +0 -0
- /package/dist/{createContext-DBMGRlx4.js → createContext-CvNyBk4o.js} +0 -0
- /package/dist/{createLucideIcon-DuDoe_ra.js → createLucideIcon-B6uNAU9G.js} +0 -0
- /package/dist/{menuItemVariants-C2QlXqT3.js → menuItemVariants-B4eFR5Ix.js} +0 -0
- /package/dist/{presets-Dyv9Zl7W.js → presets-BKVyQfbt.js} +0 -0
- /package/dist/{prng-CjVgzjQT.js → prng-wHuHlNHE.js} +0 -0
- /package/dist/{useCanvas2D-BeNJqqIS.js → useCanvas2D-C31yfUGY.js} +0 -0
- /package/dist/{useGlassRenderer-Dn3WpfG-.js → useGlassRenderer-HebgSEgN.js} +0 -0
- /package/dist/{useGlobalDark-D7R9OypB.js → useGlobalDark-yhL4Wp-s.js} +0 -0
- /package/dist/{useIntersectionPause-DsQYGc8V.js → useIntersectionPause-Cc-H9ees.js} +0 -0
- /package/dist/{useInterval-CHVYFpXV.js → useInterval-D3USn0yc.js} +0 -0
- /package/dist/{useKeyboardShortcuts-i8tHd5WO.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
- /package/dist/{useResizeObserver-DX-STszm.js → useResizeObserver-CSyxGxIX.js} +0 -0
- /package/dist/{useSortable-muI29agz.js → useSortable-C8ReQ50P.js} +0 -0
- /package/dist/{useSpringMount-CnizvZGm.js → useSpringMount-LRZqJTaF.js} +0 -0
- /package/dist/{useTextHighlight-Dmtofpk2.js → useTextHighlight-aMPdEpkq.js} +0 -0
- /package/dist/{useTimer-DGgoxTXL.js → useTimer-DEJonOZa.js} +0 -0
- /package/dist/{useUserInvalidAria-DmvZ_6Dx.js → useUserInvalidAria-CQKjEfwP.js} +0 -0
- /package/dist/{useViewTransition-DI0Rs2rV.js → useViewTransition-DaN5Zrox.js} +0 -0
- /package/dist/{useViewportReady-Dcvf0c4p.js → useViewportReady-K96m-Mdv.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mkbabb/glass-ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.0",
|
|
4
4
|
"description": "Glassmorphic design system — Vue 3.5 components, reka-ui primitives, Tailwind CSS v4 tokens",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -52,6 +52,9 @@
|
|
|
52
52
|
"color": [
|
|
53
53
|
"dist/color.d.ts"
|
|
54
54
|
],
|
|
55
|
+
"fourier-field": [
|
|
56
|
+
"dist/fourier-field.d.ts"
|
|
57
|
+
],
|
|
55
58
|
"goo-blob": [
|
|
56
59
|
"dist/goo-blob.d.ts"
|
|
57
60
|
],
|
|
@@ -293,6 +296,10 @@
|
|
|
293
296
|
"types": "./dist/color.d.ts",
|
|
294
297
|
"import": "./dist/color.js"
|
|
295
298
|
},
|
|
299
|
+
"./fourier-field": {
|
|
300
|
+
"types": "./dist/fourier-field.d.ts",
|
|
301
|
+
"import": "./dist/fourier-field.js"
|
|
302
|
+
},
|
|
296
303
|
"./goo-blob": {
|
|
297
304
|
"types": "./dist/goo-blob.d.ts",
|
|
298
305
|
"import": "./dist/goo-blob.js"
|
|
@@ -584,7 +591,10 @@
|
|
|
584
591
|
"proof:frostShader-deleted": "node scripts/proof-frostshader-deleted.mjs",
|
|
585
592
|
"proof:slider-two-only": "node scripts/proof-slider-two-only.mjs",
|
|
586
593
|
"proof:storybook-ia": "node scripts/proof-storybook-ia.mjs",
|
|
594
|
+
"proof:storybook-complete": "node scripts/proof-storybook-complete.mjs",
|
|
587
595
|
"proof:no-orphan-demo-route": "node scripts/proof-no-orphan-demo-route.mjs",
|
|
596
|
+
"proof:demo-dock-nav": "node scripts/proof-demo-dock-nav.mjs",
|
|
597
|
+
"proof:demo-dock-nav-runtime": "node scripts/proof-demo-dock-nav-runtime.mjs",
|
|
588
598
|
"proof:font-canon": "node scripts/proof-font-canon.mjs",
|
|
589
599
|
"proof:webgl-substrate-single": "node scripts/proof-webgl-substrate-single.mjs",
|
|
590
600
|
"proof:blob-value-free": "node scripts/proof-blob-value-free.mjs",
|
|
@@ -592,9 +602,24 @@
|
|
|
592
602
|
"proof:motion-value-free": "node scripts/proof-motion-value-free.mjs",
|
|
593
603
|
"proof:no-value-default": "node scripts/proof-no-value-default.mjs",
|
|
594
604
|
"proof:blob-space-gamma": "node scripts/proof-blob-space-gamma.mjs",
|
|
605
|
+
"proof:blob-smin-normalized": "node scripts/proof-blob-smin-normalized.mjs",
|
|
606
|
+
"proof:blob-gradient-unit-length": "node scripts/proof-blob-gradient-unit-length.mjs",
|
|
607
|
+
"proof:blob-spec-premult": "node scripts/proof-blob-spec-premult.mjs",
|
|
608
|
+
"proof:blob-interaction-prm": "node scripts/proof-blob-interaction-prm.mjs",
|
|
609
|
+
"proof:blob-mood-resolved": "node scripts/proof-blob-mood-resolved.mjs",
|
|
610
|
+
"proof:blob-tempo-suppression": "node scripts/proof-blob-tempo-suppression.mjs",
|
|
595
611
|
"proof:aurora-space-gamma": "node scripts/proof-aurora-space-gamma.mjs",
|
|
596
612
|
"proof:aurora-oklch-interp": "node scripts/proof-aurora-oklch-interp.mjs",
|
|
597
613
|
"proof:aurora-derive-gamut": "vitest run tests/components/custom/aurora/derive-color.test.ts",
|
|
614
|
+
"proof:aurora-tensor-field": "node scripts/proof-aurora-tensor-field.mjs && vitest run tests/components/custom/aurora/painterly.test.ts",
|
|
615
|
+
"proof:aurora-impasto-relight": "node scripts/proof-aurora-impasto-relight.mjs",
|
|
616
|
+
"proof:aurora-vangogh-preset": "node scripts/proof-aurora-vangogh-preset.mjs",
|
|
617
|
+
"proof:aurora-oilpastel-medium": "node scripts/proof-aurora-oilpastel-medium.mjs",
|
|
618
|
+
"proof:aurora-atoms-roundtrip": "node scripts/proof-aurora-atoms-roundtrip.mjs",
|
|
619
|
+
"proof:aurora-wgsl-equivalence": "node scripts/proof-aurora-wgsl-equivalence.mjs",
|
|
620
|
+
"proof:aurora-backend-fallback": "node scripts/proof-aurora-backend-fallback.mjs",
|
|
621
|
+
"proof:webgpu-substrate-single": "node scripts/proof-webgpu-substrate-single.mjs",
|
|
622
|
+
"proof:aurora-interaction-prm": "node scripts/proof-aurora-interaction-prm.mjs",
|
|
598
623
|
"proof:shader-shared-source": "node scripts/proof-shader-shared-source.mjs",
|
|
599
624
|
"proof:blob-color-equivalence": "vitest run tests/components/custom/goo-blob/blob-color-equivalence.test.ts",
|
|
600
625
|
"proof:fail-explicit": "node scripts/proof-fail-explicit.mjs",
|
|
@@ -620,6 +645,9 @@
|
|
|
620
645
|
"proof:glass-card-tiers": "node scripts/proof-glass-card-tiers.mjs",
|
|
621
646
|
"proof:primitive-affordance": "node scripts/proof-primitive-affordance.mjs",
|
|
622
647
|
"proof:reka-binding-idiom": "node scripts/proof-reka-binding-idiom.mjs",
|
|
648
|
+
"proof:animation-coherence": "node scripts/proof-animation-coherence.mjs",
|
|
649
|
+
"proof:design-md-current": "node scripts/proof-design-md-current.mjs",
|
|
650
|
+
"proof:naming-consistency": "node scripts/proof-naming-consistency.mjs",
|
|
623
651
|
"proof:all": "node scripts/gates.mjs --run local",
|
|
624
652
|
"gates:verify-ci": "node scripts/gates.mjs --verify-ci",
|
|
625
653
|
"profile:bundle": "node scripts/profile-bundle.mjs",
|
package/src/styles/theme.css
CHANGED
|
@@ -47,6 +47,15 @@
|
|
|
47
47
|
--radius-dialog: var(--radius-2xl);
|
|
48
48
|
--radius-input: var(--radius);
|
|
49
49
|
--radius-button: var(--radius);
|
|
50
|
+
/* AW.W25 — form-radius unification. `--radius-field` is the non-pill field
|
|
51
|
+
rung the multi-line / stepper form atoms (Textarea, NumberFieldInput)
|
|
52
|
+
resolve so a multi-line box stops inheriting the `9999px` stadium pill;
|
|
53
|
+
single-line controls (Input, SelectTrigger) keep the pill. `--radius-control`
|
|
54
|
+
is the semantic control-corner rung that retires the raw `rounded-sm` (4px)
|
|
55
|
+
on Checkbox + base Tabs onto a softer, named radius. One geometry language
|
|
56
|
+
across the form family — token + class only, no new primitive. */
|
|
57
|
+
--radius-field: var(--radius-2xl);
|
|
58
|
+
--radius-control: var(--radius-md);
|
|
50
59
|
--radius-badge: var(--radius-pill);
|
|
51
60
|
--radius-dock: var(--radius-pill);
|
|
52
61
|
/* AW.W3b — the big-dock card shell's default (comfortable-density) radius.
|
|
@@ -416,6 +425,46 @@
|
|
|
416
425
|
═══════════════════════════════════════════════ */
|
|
417
426
|
--opacity-disabled: 0.5;
|
|
418
427
|
--opacity-icon-muted: 0.8;
|
|
428
|
+
|
|
429
|
+
/* ═══════════════════════════════════════════════
|
|
430
|
+
text-shadow → text-shadow-* utilities (AW.W26)
|
|
431
|
+
|
|
432
|
+
text-shadow is the lone shadow family that shipped no `@theme` bridge
|
|
433
|
+
(Tailwind v4.1 minted the `text-shadow-{2xs,xs,sm,md,lg}` utilities). The
|
|
434
|
+
rungs are warm-`--shadow-color`-derived via `color-mix` per the box-shadow
|
|
435
|
+
ladder (tokens.css §7) + the cartoon-shadow precept's one-source chain, so
|
|
436
|
+
they re-tint under `.dark` BY CONSTRUCTION — `--shadow-color: var(--foreground)`
|
|
437
|
+
flips light→dark with no hardcoded `.dark` re-declaration. The hand-rolled
|
|
438
|
+
multi-stop `text-shadow:` literals in `.depth-text` (utilities.css) +
|
|
439
|
+
`.text-engraved` (typography.css) now compose these tokens. */
|
|
440
|
+
--text-shadow-2xs: 0 1px 0 color-mix(in srgb, var(--shadow-color) 12%, transparent);
|
|
441
|
+
--text-shadow-xs: 0 1px 1px color-mix(in srgb, var(--shadow-color) 16%, transparent);
|
|
442
|
+
--text-shadow-sm: 0 1px 0 color-mix(in srgb, var(--shadow-color) 14%, transparent),
|
|
443
|
+
0 2px 3px color-mix(in srgb, var(--shadow-color) 18%, transparent);
|
|
444
|
+
--text-shadow-md: 0 1px 0 color-mix(in srgb, var(--shadow-color) 16%, transparent),
|
|
445
|
+
0 2px 4px color-mix(in srgb, var(--shadow-color) 20%, transparent),
|
|
446
|
+
0 4px 8px color-mix(in srgb, var(--shadow-color) 14%, transparent);
|
|
447
|
+
--text-shadow-lg: 0 1px 0 color-mix(in srgb, var(--shadow-color) 18%, transparent),
|
|
448
|
+
0 2px 4px color-mix(in srgb, var(--shadow-color) 22%, transparent),
|
|
449
|
+
0 6px 12px color-mix(in srgb, var(--shadow-color) 18%, transparent);
|
|
450
|
+
|
|
451
|
+
/* Two IDENTITY text-shadow tokens — the hard offset STAMP (`.depth-text`)
|
|
452
|
+
+ the two-stop EMBOSS (`.text-engraved`). These hold the multi-stop
|
|
453
|
+
literals INSIDE the `@theme` defs so the utilities compose `var(--text-shadow-*)`
|
|
454
|
+
and no raw `text-shadow:` literal survives in `utilities.css`/`typography.css`
|
|
455
|
+
(AW.W26 gate 4). Both are `--shadow-color`/surface-tint-derived, so they
|
|
456
|
+
re-tint under `.dark` BY CONSTRUCTION. */
|
|
457
|
+
--text-shadow-depth: 1px 1px 0 var(--shadow),
|
|
458
|
+
2px 2px 0 var(--shadow),
|
|
459
|
+
3px 3px 0 var(--shadow),
|
|
460
|
+
4px 4px 0 var(--shadow),
|
|
461
|
+
5px 5px 0 var(--shadow),
|
|
462
|
+
5px 5px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
|
|
463
|
+
2px 2px 2px color-mix(in srgb, var(--shadow-color) 20%, transparent),
|
|
464
|
+
4px 4px 5px color-mix(in srgb, var(--shadow-color) 25%, transparent),
|
|
465
|
+
6px 6px 10px color-mix(in srgb, var(--shadow-color) 15%, transparent);
|
|
466
|
+
--text-shadow-engraved: 0 1px 0 color-mix(in srgb, var(--background) 30%, transparent),
|
|
467
|
+
0 -1px 0 var(--surface-tint-8);
|
|
419
468
|
}
|
|
420
469
|
|
|
421
470
|
/* Class-based dark mode */
|
|
@@ -486,8 +486,8 @@ body {
|
|
|
486
486
|
surface read as a fade, not as engraving. */
|
|
487
487
|
.text-engraved {
|
|
488
488
|
color: var(--muted-foreground);
|
|
489
|
-
text-shadow
|
|
490
|
-
|
|
491
|
-
|
|
489
|
+
/* AW.W26 — composes the `--text-shadow-engraved` @theme identity token
|
|
490
|
+
(the two-stop emboss) instead of a hand-rolled literal (gate 4). */
|
|
491
|
+
text-shadow: var(--text-shadow-engraved);
|
|
492
492
|
}
|
|
493
493
|
}
|
package/src/styles/utilities.css
CHANGED
|
@@ -173,7 +173,12 @@
|
|
|
173
173
|
box-shadow: var(--focus-ring-shadow);
|
|
174
174
|
}
|
|
175
175
|
.interactive-item:active {
|
|
176
|
-
scale
|
|
176
|
+
/* AW.W31.a — fold the residual literal press scale onto the canonical
|
|
177
|
+
`--scale-press*` cohort (the prior `0.98` was the sole per-atom press
|
|
178
|
+
literal surviving the W2/W3/W25 sweeps). `--scale-press-sm` (0.97) is
|
|
179
|
+
the soft press rung the button + slider recipes consume — ONE press
|
|
180
|
+
vocabulary, no per-atom literal. The 0.98→0.97 delta is sub-perceptual. */
|
|
181
|
+
scale: var(--scale-press-sm);
|
|
177
182
|
}
|
|
178
183
|
.interactive-item:disabled,
|
|
179
184
|
.interactive-item[data-disabled] {
|
|
@@ -227,22 +232,16 @@
|
|
|
227
232
|
background var(--duration-fast) var(--ease-standard),
|
|
228
233
|
box-shadow var(--duration-fast) var(--ease-standard);
|
|
229
234
|
}
|
|
230
|
-
/* ── Depth text (layered
|
|
235
|
+
/* ── Depth text (layered offset stamp) ──
|
|
236
|
+
AW.W26 — composes the `--text-shadow-depth` @theme identity token (the
|
|
237
|
+
hard offset stack + soft ambient tail) instead of a hand-rolled multi-stop
|
|
238
|
+
literal. The token holds the stack inside the `@theme` defs (gate 4) and
|
|
239
|
+
re-tints under `.dark` via `--shadow`/`--shadow-color` BY CONSTRUCTION. */
|
|
231
240
|
.depth-text {
|
|
232
241
|
--depth-color-primary: var(--primary);
|
|
233
|
-
--depth-color-shadow: var(--shadow);
|
|
234
242
|
|
|
235
243
|
color: var(--depth-color-primary);
|
|
236
|
-
text-shadow:
|
|
237
|
-
1px 1px 0 var(--depth-color-shadow),
|
|
238
|
-
2px 2px 0 var(--depth-color-shadow),
|
|
239
|
-
3px 3px 0 var(--depth-color-shadow),
|
|
240
|
-
4px 4px 0 var(--depth-color-shadow),
|
|
241
|
-
5px 5px 0 var(--depth-color-shadow),
|
|
242
|
-
5px 5px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
|
|
243
|
-
2px 2px 2px color-mix(in srgb, var(--shadow-color) 20%, transparent),
|
|
244
|
-
4px 4px 5px color-mix(in srgb, var(--shadow-color) 25%, transparent),
|
|
245
|
-
6px 6px 10px color-mix(in srgb, var(--shadow-color) 15%, transparent);
|
|
244
|
+
text-shadow: var(--text-shadow-depth);
|
|
246
245
|
}
|
|
247
246
|
|
|
248
247
|
/* ── 3D preserve ── */
|
|
@@ -397,6 +396,11 @@
|
|
|
397
396
|
|
|
398
397
|
.metric-badge > span {
|
|
399
398
|
line-height: 1;
|
|
399
|
+
/* AW.W26 — `wrap-anywhere` (overflow-wrap: anywhere) on the value slot:
|
|
400
|
+
a long metric value breaks WITHIN the badge rather than being clipped
|
|
401
|
+
by the host `overflow: hidden`. v4.1 `wrap-anywhere` / mwg css §7.
|
|
402
|
+
Scoped to the value span, NOT a universal selector (mwg perf caveat). */
|
|
403
|
+
overflow-wrap: anywhere;
|
|
400
404
|
}
|
|
401
405
|
|
|
402
406
|
.metric-badge:hover {
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { t } from "./_plugin-vue_export-helper-C1je1s0u.js";
|
|
3
|
-
import { createBlock as n, createElementBlock as r, defineComponent as i, normalizeClass as a, openBlock as o, renderSlot as s, unref as c, withCtx as l } from "vue";
|
|
4
|
-
import { Primitive as u } from "reka-ui";
|
|
5
|
-
var d = /* @__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
|
-
class: { type: [
|
|
19
|
-
Boolean,
|
|
20
|
-
null,
|
|
21
|
-
String,
|
|
22
|
-
Object,
|
|
23
|
-
Array
|
|
24
|
-
] },
|
|
25
|
-
asChild: { type: Boolean },
|
|
26
|
-
as: { default: "div" }
|
|
27
|
-
},
|
|
28
|
-
setup(t) {
|
|
29
|
-
let r = t;
|
|
30
|
-
return (i, d) => (o(), n(c(u), {
|
|
31
|
-
"data-slot": "card",
|
|
32
|
-
"data-tier": t.tier,
|
|
33
|
-
"data-surface": t.surface,
|
|
34
|
-
"data-grain": t.grain,
|
|
35
|
-
as: t.as,
|
|
36
|
-
"as-child": t.asChild,
|
|
37
|
-
class: a(c(e)("rounded-card text-card-foreground scrollbar-hidden", `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))
|
|
38
|
-
}, {
|
|
39
|
-
default: l(() => [s(i.$slots, "default")]),
|
|
40
|
-
_: 3
|
|
41
|
-
}, 8, [
|
|
42
|
-
"data-tier",
|
|
43
|
-
"data-surface",
|
|
44
|
-
"data-grain",
|
|
45
|
-
"as",
|
|
46
|
-
"as-child",
|
|
47
|
-
"class"
|
|
48
|
-
]));
|
|
49
|
-
}
|
|
50
|
-
}), f = /* @__PURE__ */ t(/* @__PURE__ */ i({
|
|
51
|
-
__name: "CardHeader",
|
|
52
|
-
props: {
|
|
53
|
-
shrink: { type: Boolean },
|
|
54
|
-
class: { type: [
|
|
55
|
-
Boolean,
|
|
56
|
-
null,
|
|
57
|
-
String,
|
|
58
|
-
Object,
|
|
59
|
-
Array
|
|
60
|
-
] }
|
|
61
|
-
},
|
|
62
|
-
setup(t) {
|
|
63
|
-
let n = t;
|
|
64
|
-
return (i, l) => (o(), r("div", {
|
|
65
|
-
"data-slot": "card-header",
|
|
66
|
-
class: a(c(e)("flex flex-col gap-y-1.5 p-6", t.shrink && "card-header--shrink", n.class))
|
|
67
|
-
}, [s(i.$slots, "default", {}, void 0, !0)], 2));
|
|
68
|
-
}
|
|
69
|
-
}), [["__scopeId", "data-v-522d190a"]]), p = /* @__PURE__ */ i({
|
|
70
|
-
__name: "CardTitle",
|
|
71
|
-
props: { class: { type: [
|
|
72
|
-
Boolean,
|
|
73
|
-
null,
|
|
74
|
-
String,
|
|
75
|
-
Object,
|
|
76
|
-
Array
|
|
77
|
-
] } },
|
|
78
|
-
setup(t) {
|
|
79
|
-
let n = t;
|
|
80
|
-
return (t, i) => (o(), r("h3", {
|
|
81
|
-
"data-slot": "card-title",
|
|
82
|
-
class: a(c(e)("text-heading leading-none tracking-tight", n.class))
|
|
83
|
-
}, [s(t.$slots, "default")], 2));
|
|
84
|
-
}
|
|
85
|
-
}), m = /* @__PURE__ */ i({
|
|
86
|
-
__name: "CardDescription",
|
|
87
|
-
props: { class: { type: [
|
|
88
|
-
Boolean,
|
|
89
|
-
null,
|
|
90
|
-
String,
|
|
91
|
-
Object,
|
|
92
|
-
Array
|
|
93
|
-
] } },
|
|
94
|
-
setup(t) {
|
|
95
|
-
let n = t;
|
|
96
|
-
return (t, i) => (o(), r("p", {
|
|
97
|
-
"data-slot": "card-description",
|
|
98
|
-
class: a(c(e)("text-sm text-muted-foreground-strong", n.class))
|
|
99
|
-
}, [s(t.$slots, "default")], 2));
|
|
100
|
-
}
|
|
101
|
-
}), h = /* @__PURE__ */ i({
|
|
102
|
-
__name: "CardContent",
|
|
103
|
-
props: { class: { type: [
|
|
104
|
-
Boolean,
|
|
105
|
-
null,
|
|
106
|
-
String,
|
|
107
|
-
Object,
|
|
108
|
-
Array
|
|
109
|
-
] } },
|
|
110
|
-
setup(t) {
|
|
111
|
-
let n = t;
|
|
112
|
-
return (t, i) => (o(), r("div", { class: a(c(e)("p-6", n.class)) }, [s(t.$slots, "default")], 2));
|
|
113
|
-
}
|
|
114
|
-
}), g = /* @__PURE__ */ i({
|
|
115
|
-
__name: "CardFooter",
|
|
116
|
-
props: { class: { type: [
|
|
117
|
-
Boolean,
|
|
118
|
-
null,
|
|
119
|
-
String,
|
|
120
|
-
Object,
|
|
121
|
-
Array
|
|
122
|
-
] } },
|
|
123
|
-
setup(t) {
|
|
124
|
-
let n = t;
|
|
125
|
-
return (t, i) => (o(), r("div", { class: a(c(e)("flex items-center p-6 pt-0", n.class)) }, [s(t.$slots, "default")], 2));
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
//#endregion
|
|
129
|
-
export { f as a, p as i, h as n, d as o, m as r, g as t };
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { createBlock as e, defineComponent as t, guardReactiveProps as n, mergeProps as r, normalizeProps as i, openBlock as a, renderSlot as o, unref as s, withCtx as c } from "vue";
|
|
2
|
-
import { CollapsibleContent as l, CollapsibleRoot as u, CollapsibleTrigger as d, useForwardPropsEmits as f } from "reka-ui";
|
|
3
|
-
//#endregion
|
|
4
|
-
//#region src/components/ui/collapsible/Collapsible.vue
|
|
5
|
-
var p = /* @__PURE__ */ t({
|
|
6
|
-
__name: "Collapsible",
|
|
7
|
-
props: {
|
|
8
|
-
defaultOpen: { type: Boolean },
|
|
9
|
-
open: { type: Boolean },
|
|
10
|
-
disabled: { type: Boolean },
|
|
11
|
-
unmountOnHide: { type: Boolean },
|
|
12
|
-
asChild: { type: Boolean },
|
|
13
|
-
as: {}
|
|
14
|
-
},
|
|
15
|
-
emits: ["update:open"],
|
|
16
|
-
setup(t, { emit: r }) {
|
|
17
|
-
let l = f(t, r);
|
|
18
|
-
return (t, r) => (a(), e(s(u), i(n(s(l))), {
|
|
19
|
-
default: c(({ open: e }) => [o(t.$slots, "default", { open: e })]),
|
|
20
|
-
_: 3
|
|
21
|
-
}, 16));
|
|
22
|
-
}
|
|
23
|
-
}), m = /* @__PURE__ */ t({
|
|
24
|
-
__name: "CollapsibleTrigger",
|
|
25
|
-
props: {
|
|
26
|
-
asChild: { type: Boolean },
|
|
27
|
-
as: {}
|
|
28
|
-
},
|
|
29
|
-
setup(t) {
|
|
30
|
-
let r = t;
|
|
31
|
-
return (t, l) => (a(), e(s(d), i(n(r)), {
|
|
32
|
-
default: c(() => [o(t.$slots, "default")]),
|
|
33
|
-
_: 3
|
|
34
|
-
}, 16));
|
|
35
|
-
}
|
|
36
|
-
}), h = /* @__PURE__ */ t({
|
|
37
|
-
__name: "CollapsibleContent",
|
|
38
|
-
props: {
|
|
39
|
-
forceMount: { type: Boolean },
|
|
40
|
-
asChild: { type: Boolean },
|
|
41
|
-
as: {}
|
|
42
|
-
},
|
|
43
|
-
setup(t) {
|
|
44
|
-
let n = t;
|
|
45
|
-
return (t, i) => (a(), e(s(l), r(n, { class: "overflow-hidden transition-collapse data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down" }), {
|
|
46
|
-
default: c(() => [o(t.$slots, "default")]),
|
|
47
|
-
_: 3
|
|
48
|
-
}, 16));
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
//#endregion
|
|
52
|
-
export { m as n, p as r, h as t };
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { computed as t, createBlock as n, defineComponent as r, guardReactiveProps as i, mergeProps as a, normalizeProps as o, openBlock as s, renderSlot as c, unref as l, withCtx as u } from "vue";
|
|
3
|
-
import { TabsIndicator as d, TabsList as f, TabsRoot as p, TabsTrigger as m, useForwardProps as h, useForwardPropsEmits as g } from "reka-ui";
|
|
4
|
-
//#endregion
|
|
5
|
-
//#region src/components/ui/tabs/Tabs.vue
|
|
6
|
-
var _ = /* @__PURE__ */ r({
|
|
7
|
-
__name: "Tabs",
|
|
8
|
-
props: {
|
|
9
|
-
defaultValue: {},
|
|
10
|
-
orientation: {},
|
|
11
|
-
dir: {},
|
|
12
|
-
activationMode: {},
|
|
13
|
-
modelValue: {},
|
|
14
|
-
unmountOnHide: { type: Boolean },
|
|
15
|
-
asChild: { type: Boolean },
|
|
16
|
-
as: {}
|
|
17
|
-
},
|
|
18
|
-
emits: ["update:modelValue"],
|
|
19
|
-
setup(e, { emit: t }) {
|
|
20
|
-
let r = g(e, t);
|
|
21
|
-
return (e, t) => (s(), n(l(p), o(i(l(r))), {
|
|
22
|
-
default: u(() => [c(e.$slots, "default")]),
|
|
23
|
-
_: 3
|
|
24
|
-
}, 16));
|
|
25
|
-
}
|
|
26
|
-
}), v = /* @__PURE__ */ r({
|
|
27
|
-
__name: "TabsTrigger",
|
|
28
|
-
props: {
|
|
29
|
-
value: {},
|
|
30
|
-
disabled: { type: Boolean },
|
|
31
|
-
asChild: { type: Boolean },
|
|
32
|
-
as: {},
|
|
33
|
-
class: { type: [
|
|
34
|
-
Boolean,
|
|
35
|
-
null,
|
|
36
|
-
String,
|
|
37
|
-
Object,
|
|
38
|
-
Array
|
|
39
|
-
] }
|
|
40
|
-
},
|
|
41
|
-
setup(r) {
|
|
42
|
-
let i = r, o = h(t(() => {
|
|
43
|
-
let { class: e, ...t } = i;
|
|
44
|
-
return t;
|
|
45
|
-
}));
|
|
46
|
-
return (t, r) => (s(), n(l(m), a(l(o), { class: l(e)("focus-ring inline-flex items-center justify-center whitespace-nowrap rounded-sm p-1 px-3 text-sm font-medium transition-control disabled:pointer-events-none disabled:opacity-disabled data-[state=active]:text-[var(--active-tab-color,var(--foreground))] hover:text-foreground/70", i.class) }), {
|
|
47
|
-
default: u(() => [c(t.$slots, "default")]),
|
|
48
|
-
_: 3
|
|
49
|
-
}, 16, ["class"]));
|
|
50
|
-
}
|
|
51
|
-
}), y = /* @__PURE__ */ r({
|
|
52
|
-
__name: "TabsList",
|
|
53
|
-
props: {
|
|
54
|
-
loop: { type: Boolean },
|
|
55
|
-
asChild: { type: Boolean },
|
|
56
|
-
as: {},
|
|
57
|
-
class: { type: [
|
|
58
|
-
Boolean,
|
|
59
|
-
null,
|
|
60
|
-
String,
|
|
61
|
-
Object,
|
|
62
|
-
Array
|
|
63
|
-
] }
|
|
64
|
-
},
|
|
65
|
-
setup(r) {
|
|
66
|
-
let i = r, o = t(() => {
|
|
67
|
-
let { class: e, ...t } = i;
|
|
68
|
-
return t;
|
|
69
|
-
});
|
|
70
|
-
return (t, r) => (s(), n(l(f), a(o.value, { class: l(e)("inline-flex h-10 items-center justify-center rounded-input p-1 text-muted-foreground", i.class) }), {
|
|
71
|
-
default: u(() => [c(t.$slots, "default")]),
|
|
72
|
-
_: 3
|
|
73
|
-
}, 16, ["class"]));
|
|
74
|
-
}
|
|
75
|
-
}), b = /* @__PURE__ */ r({
|
|
76
|
-
__name: "TabsIndicator",
|
|
77
|
-
props: {
|
|
78
|
-
asChild: { type: Boolean },
|
|
79
|
-
as: {},
|
|
80
|
-
class: { type: [
|
|
81
|
-
Boolean,
|
|
82
|
-
null,
|
|
83
|
-
String,
|
|
84
|
-
Object,
|
|
85
|
-
Array
|
|
86
|
-
] }
|
|
87
|
-
},
|
|
88
|
-
setup(r) {
|
|
89
|
-
let i = r, o = t(() => {
|
|
90
|
-
let { class: e, ...t } = i;
|
|
91
|
-
return t;
|
|
92
|
-
});
|
|
93
|
-
return (t, r) => (s(), n(l(d), a(o.value, { class: l(e)("absolute left-0 h-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position) rounded-pill bg-secondary/80 transition-[width,transform] duration-normal ease-spring-snappy", i.class) }), null, 16, ["class"]));
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
//#endregion
|
|
97
|
-
export { _ as i, y as n, v as r, b as t };
|
package/dist/color-DS-iLRVM.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { colorUnit2 as e, oklabToLinearSRGB as t, oklabToRgb255 as n, parseCSSColor as r, rawOklabToOklch as i, rawOklchToOklab as a, srgbToOKLab as o } from "@mkbabb/value.js";
|
|
2
|
-
//#region src/composables/color/index.ts
|
|
3
|
-
function s(e) {
|
|
4
|
-
let [n, r, i] = a(e.L, e.C, e.h), [o, s, c] = t(n, r, i);
|
|
5
|
-
return [
|
|
6
|
-
Math.max(0, o),
|
|
7
|
-
Math.max(0, s),
|
|
8
|
-
Math.max(0, c)
|
|
9
|
-
];
|
|
10
|
-
}
|
|
11
|
-
function c(e) {
|
|
12
|
-
let [t, r, i] = a(e.L, e.C, e.h), [o, s, c] = n(t, r, i), l = (e) => Math.min(1, Math.max(0, e / 255));
|
|
13
|
-
return [
|
|
14
|
-
l(o),
|
|
15
|
-
l(s),
|
|
16
|
-
l(c)
|
|
17
|
-
];
|
|
18
|
-
}
|
|
19
|
-
function l(t) {
|
|
20
|
-
let n = e(r(t), "rgb").value, [a, s, c] = o(Number(n.r), Number(n.g), Number(n.b)), [l, u, d] = i(a, s, c);
|
|
21
|
-
return {
|
|
22
|
-
L: l,
|
|
23
|
-
C: u,
|
|
24
|
-
h: d
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function u(e) {
|
|
28
|
-
let [t, r, i] = a(e.L, e.C, e.h), [o, s, c] = n(t, r, i), l = (e) => Math.round(e).toString(16).padStart(2, "0");
|
|
29
|
-
return `#${l(o)}${l(s)}${l(c)}`;
|
|
30
|
-
}
|
|
31
|
-
var d = (e) => c(l(e));
|
|
32
|
-
//#endregion
|
|
33
|
-
export { s as a, c as i, d as n, u as r, l as t };
|
package/dist/compile-C62K_FpC.js
DELETED
|
@@ -1,106 +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}";
|
|
3
|
-
function r() {
|
|
4
|
-
let e = typeof window < "u" && window.devicePixelRatio || 1;
|
|
5
|
-
return Math.min(e, 2);
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
//#region src/composables/glass/webgl/useWebGLCanvas.ts
|
|
9
|
-
function i(e, t) {
|
|
10
|
-
let { setup: n, contextAttrs: r } = t, i = t.respectReducedMotion ?? t.mode !== "capture", a = /* @__PURE__ */ new Set();
|
|
11
|
-
t.mode === "capture" && a.add("manual");
|
|
12
|
-
let o = () => a.size === 0, s = 0, c = typeof performance < "u" ? performance.now() : 0, l = null, u = null, d = !1, f = !1, p = i && typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-reduced-motion: reduce)") : null, m = p?.matches ?? !1;
|
|
13
|
-
function h() {
|
|
14
|
-
if (!o() || !u) return;
|
|
15
|
-
let e = (performance.now() - c) / 1e3, t = u.time ? u.time(e) : e;
|
|
16
|
-
u.frame(t), s = !m && u.shouldContinue() ? requestAnimationFrame(h) : 0;
|
|
17
|
-
}
|
|
18
|
-
function g() {
|
|
19
|
-
d && o() && !s && u && (s = requestAnimationFrame(h));
|
|
20
|
-
}
|
|
21
|
-
function _() {
|
|
22
|
-
let e = p?.matches ?? !1;
|
|
23
|
-
e !== m && (m = e, e || (c = performance.now()), g());
|
|
24
|
-
}
|
|
25
|
-
p?.addEventListener("change", _);
|
|
26
|
-
function v(e = "manual") {
|
|
27
|
-
let t = o();
|
|
28
|
-
a.add(e), t && !o() && (cancelAnimationFrame(s), s = 0);
|
|
29
|
-
}
|
|
30
|
-
function y(e = "manual") {
|
|
31
|
-
let t = !o();
|
|
32
|
-
a.delete(e), t && o() && d && u && (c = performance.now() - 1e3, h());
|
|
33
|
-
}
|
|
34
|
-
let b = typeof document < "u";
|
|
35
|
-
function x() {
|
|
36
|
-
document.hidden ? v("tab-hidden") : y("tab-hidden");
|
|
37
|
-
}
|
|
38
|
-
b && document.addEventListener("visibilitychange", x), b && document.hidden && a.add("tab-hidden");
|
|
39
|
-
let S = null;
|
|
40
|
-
function C(e) {
|
|
41
|
-
e.skipped ? v("off-screen") : y("off-screen");
|
|
42
|
-
}
|
|
43
|
-
function w() {
|
|
44
|
-
if (S) return;
|
|
45
|
-
let t = e.parentElement;
|
|
46
|
-
t && (S = t, t.addEventListener("contentvisibilityautostatechange", C));
|
|
47
|
-
}
|
|
48
|
-
function T() {
|
|
49
|
-
S?.removeEventListener("contentvisibilityautostatechange", C), S = null;
|
|
50
|
-
}
|
|
51
|
-
let E = null;
|
|
52
|
-
function D(e) {
|
|
53
|
-
e.preventDefault(), cancelAnimationFrame(s), s = 0, u = null, l = null;
|
|
54
|
-
}
|
|
55
|
-
function O() {
|
|
56
|
-
f || (k(), o() && g());
|
|
57
|
-
}
|
|
58
|
-
function k() {
|
|
59
|
-
let t = e.getContext("webgl2", r ?? void 0);
|
|
60
|
-
if (!t) throw Error("[useWebGLCanvas] WebGL2 unavailable");
|
|
61
|
-
l = t, u = n(l), u.resize(), E || (E = new ResizeObserver(() => u?.resize()), E.observe(e));
|
|
62
|
-
}
|
|
63
|
-
function A() {
|
|
64
|
-
d || f || (e.addEventListener("webglcontextlost", D, !1), e.addEventListener("webglcontextrestored", O, !1), k(), w(), d = !0, c = performance.now(), o() && (s = requestAnimationFrame(h)));
|
|
65
|
-
}
|
|
66
|
-
function j(e) {
|
|
67
|
-
d || A(), u?.frame(e);
|
|
68
|
-
}
|
|
69
|
-
function M() {
|
|
70
|
-
f = !0, cancelAnimationFrame(s), s = 0, b && document.removeEventListener("visibilitychange", x), p?.removeEventListener("change", _), T(), e.removeEventListener("webglcontextlost", D, !1), e.removeEventListener("webglcontextrestored", O, !1), E?.disconnect(), E = null, u?.teardown?.(), u = null, l?.getExtension("WEBGL_lose_context")?.loseContext(), l = null, a.clear();
|
|
71
|
-
}
|
|
72
|
-
return t.mode === "capture" && A(), {
|
|
73
|
-
arm: A,
|
|
74
|
-
suspend: v,
|
|
75
|
-
resume: y,
|
|
76
|
-
wake: g,
|
|
77
|
-
renderAt: j,
|
|
78
|
-
dispose: M,
|
|
79
|
-
get gl() {
|
|
80
|
-
return l;
|
|
81
|
-
},
|
|
82
|
-
get reducedMotion() {
|
|
83
|
-
return m;
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
//#endregion
|
|
88
|
-
//#region src/composables/glass/webgl/compile.ts
|
|
89
|
-
function a(e, t, n, r = "[glass-ui:webgl]") {
|
|
90
|
-
let i = e.createShader(t);
|
|
91
|
-
if (e.shaderSource(i, n), e.compileShader(i), !e.getShaderParameter(i, e.COMPILE_STATUS)) {
|
|
92
|
-
let t = e.getShaderInfoLog(i) ?? "unknown";
|
|
93
|
-
throw e.deleteShader(i), Error(`${r} shader compile failed:\n${t}`);
|
|
94
|
-
}
|
|
95
|
-
return i;
|
|
96
|
-
}
|
|
97
|
-
function o(e, t, n, r = "[glass-ui:webgl]") {
|
|
98
|
-
let i = e.createProgram();
|
|
99
|
-
if (e.attachShader(i, t), e.attachShader(i, n), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS)) {
|
|
100
|
-
let t = e.getProgramInfoLog(i) ?? "unknown";
|
|
101
|
-
throw e.deleteProgram(i), Error(`${r} program link failed:\n${t}`);
|
|
102
|
-
}
|
|
103
|
-
return i;
|
|
104
|
-
}
|
|
105
|
-
//#endregion
|
|
106
|
-
export { t as a, r as i, o as n, e as o, i as r, n as s, a as t };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|