@mkbabb/glass-ui 9.0.0 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +4768 -0
- package/README.md +57 -13
- package/dist/DialogContent-CwIBvou_.js +157 -0
- package/dist/{DropdownMenuTrigger-8UZsBtZ8.js → DropdownMenuTrigger-CKRnhDSQ.js} +1 -1
- package/dist/{Surface-i1tWC-Ga.js → Surface-1nPoabc3.js} +1 -1
- package/dist/{accent-tone-solve-Cw7WkRD9.js → accent-tone-solve-5H6FY2QO.js} +1 -1
- package/dist/aurora.js +22 -13
- package/dist/{badge-owUOaaba.js → badge-BO6BC4G5.js} +1 -1
- package/dist/badge.js +1 -1
- package/dist/blob.js +2 -2
- package/dist/{button-yvGPb0Bx.js → button-BOFTUPyU.js} +1 -1
- package/dist/button.js +1 -1
- package/dist/{card-3HFFpC7_.js → card-ByyqRBvK.js} +2 -2
- package/dist/card.js +1 -1
- package/dist/carousel.js +3 -3
- package/dist/chip.js +8 -3
- package/dist/{class-names-q-UGOkHH.js → class-names-FlXcvRRT.js} +65 -18
- package/dist/{collapsible-B7O6m-Ch.js → collapsible-DFzK29Oh.js} +5 -2
- package/dist/collapsible.js +1 -1
- package/dist/color.js +11 -11
- package/dist/{command-tEzAaVY_.js → command-C-5xSEJ2.js} +8 -8
- package/dist/command.js +1 -1
- package/dist/component-styles.css +1 -0
- package/dist/components/_shared/class-names.d.ts +10 -1
- package/dist/components/_shared/menu/menu.css +1 -1
- package/dist/components/_shared/overlay/index.d.ts +1 -0
- package/dist/components/_shared/overlay/shortcuts.d.ts +12 -0
- package/dist/components/aurora/composables/atoms.d.ts +22 -6
- package/dist/components/aurora/composables/runtime.d.ts +6 -4
- package/dist/components/aurora/constants/presets.d.ts +19 -1
- package/dist/components/blob/Blob.vue.d.ts +3 -3
- package/dist/components/button/styles.css +1 -1
- package/dist/components/card/Card.vue.d.ts +8 -2
- package/dist/components/chip/Chip.vue.d.ts +1 -7
- package/dist/components/chip/chipVariants.d.ts +1 -0
- package/dist/components/collapsible/Collapsible.vue.d.ts +1 -0
- package/dist/components/command/CommandDialog.vue.d.ts +1 -1
- package/dist/components/configurator/styles.css +1 -1
- package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -1
- package/dist/components/deck/styles/capture.css +1 -1
- package/dist/components/dialog/styles.css +1 -1
- package/dist/components/dock/composables/dockCrossfadeContext.d.ts +0 -2
- package/dist/components/dock/composables/index.d.ts +1 -1
- package/dist/components/dock/composables/useDockHold.d.ts +16 -12
- package/dist/components/dock/styles/layers.css +1 -1
- package/dist/components/fourier-field/FourierField.vue.d.ts +1 -1
- package/dist/components/fourier-field/constants.d.ts +8 -7
- package/dist/components/fourier-field/index.d.ts +2 -2
- package/dist/components/labeled-field/LabeledSwitch.vue.d.ts +3 -1
- package/dist/components/labeled-field/types.d.ts +1 -1
- package/dist/components/menu/DropdownMenu.vue.d.ts +1 -1
- package/dist/components/metric/coalesce-metric.d.ts +6 -1
- package/dist/components/metric/styles.css +1 -1
- package/dist/components/popover/Popover.vue.d.ts +1 -1
- package/dist/components/scroll-progress-rim/styles.css +1 -1
- package/dist/components/sheet/styles.css +1 -1
- package/dist/components/slider/styles.css +1 -1
- package/dist/components/tabs/SegmentedTabs.vue.d.ts +25 -112
- package/dist/components/tabs/composables/useTabDragMorph.d.ts +1 -1
- package/dist/components/tabs/composables/useTabResponsive.d.ts +11 -11
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/tabs/styles/drag.css +1 -1
- package/dist/components/tabs/styles/segmented.css +1 -1
- package/dist/components/tabs/types.d.ts +85 -0
- package/dist/components/timeline/index.d.ts +2 -0
- package/dist/components/toast/Toast.vue.d.ts +2 -2
- package/dist/composables/color/index.d.ts +0 -15
- package/dist/composables/dark/darkModeSyncScript.d.ts +24 -1
- package/dist/composables/dom/useResolveTokenColor.d.ts +1 -1
- package/dist/composables/glass/index.d.ts +2 -0
- package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +47 -1
- package/dist/composables/sidebar/types.d.ts +5 -1
- package/dist/{configurator-BHJymdrF.js → configurator-DiwVN573.js} +16 -16
- package/dist/configurator.js +1 -1
- package/dist/constellation.js +3 -3
- package/dist/{content-CWO-XL7o.js → content-So3j6SOe.js} +1 -1
- package/dist/dark-mode-toggle.js +2 -2
- package/dist/{dark-CLlmo7dD.js → dark-pONY3x93.js} +2 -2
- package/dist/dark.js +1 -1
- package/dist/{data-table-_RrOEdiw.js → data-table-Ba_uTfPc.js} +3 -3
- package/dist/data-table.js +1 -1
- package/dist/{deck-Ci6YjB5e.js → deck-Cm_VmyNL.js} +1 -1
- package/dist/deck.js +1 -1
- package/dist/{dialog-CbRnTRtg.js → dialog-BZoFG0j8.js} +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +9 -13
- package/dist/easing.js +4 -4
- package/dist/{expandable-container-BY1hQXi4.js → expandable-container-CZUj9BzY.js} +9 -9
- package/dist/expandable-container.js +1 -1
- package/dist/fourier-field.js +53 -58
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +27 -27
- package/dist/handmark.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/infinite-scroll.js +16 -17
- package/dist/{input-Bls2A4Tt.js → input-eLZ_AU7l.js} +1 -1
- package/dist/input.js +1 -1
- package/dist/keyboard.js +64 -21
- package/dist/{label-BQEZhnK_.js → label-CE03H1KL.js} +2 -2
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +8 -5
- package/dist/{menu-TDMNtZjG.js → menu-BnmCOa3y.js} +92 -89
- package/dist/menu.js +2 -2
- package/dist/metric.js +12 -7
- package/dist/{motion-D4uYE0UM.js → motion-BvV1_24p.js} +1 -1
- package/dist/motion-core.js +1 -1
- package/dist/{number-field-NFAwQ0HK.js → number-field-RP89046a.js} +2 -2
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +3 -3
- package/dist/popover-DA87hFBx.js +184 -0
- package/dist/popover.js +1 -1
- package/dist/{progress-DF8dWZIX.js → progress-eVa-mc7J.js} +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-BNV7PN1O.js → radio-group-B58Bz16F.js} +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{select-COox45Kv.js → select-fy3vtArm.js} +13 -13
- package/dist/select.js +1 -1
- package/dist/{separator-CN11t406.js → separator-D4EZM10u.js} +2 -2
- package/dist/separator.js +1 -1
- package/dist/{sheet-BEFvnO_u.js → sheet-BQJyER59.js} +120 -115
- package/dist/sheet.js +2 -2
- package/dist/shortcuts-DGGWNRNe.js +13 -0
- package/dist/sidebar.js +4 -4
- package/dist/{status-dot-BpnqOP5N.js → status-dot-W4LFiJps.js} +2 -2
- package/dist/status-dot.js +1 -1
- package/dist/styles/accessibility.css +1 -1
- package/dist/styles/animations.css +1 -1
- package/dist/styles/components.css +1 -1
- package/dist/styles/glass/a11y-fallback.css +1 -1
- package/dist/styles/glass/dissolve.css +1 -1
- package/dist/styles/glass/focus-veil.css +1 -1
- package/dist/styles/glass/ladder.css +1 -1
- package/dist/styles/glass/overlay-plate.css +1 -1
- package/dist/styles/glass/reveal.css +1 -1
- package/dist/styles/glass-specular-track.css +1 -1
- package/dist/styles/paper.css +1 -1
- package/dist/styles/scroll-choreography.css +1 -1
- package/dist/styles/scroll-chrome.css +1 -1
- package/dist/styles/scroll-driven.css +1 -1
- package/dist/styles/theme/literals.css +1 -1
- package/dist/styles/tokens/color-radius.css +1 -1
- package/dist/styles/tokens/dark-arm-glass.css +1 -1
- package/dist/styles/tokens/light-dark.css +1 -1
- package/dist/styles/tokens/offsets.css +1 -1
- package/dist/styles/tokens/scheme-motion.css +1 -1
- package/dist/styles/tokens/sizing.css +1 -1
- package/dist/styles/typography/semantic.css +1 -1
- package/dist/styles/typography/utilities.css +1 -1
- package/dist/styles/utilities/a11y-overrides.css +1 -1
- package/dist/styles/utilities/responsive.css +1 -1
- package/dist/styles/view-transition.css +1 -1
- package/dist/styles/viz-reveal.css +1 -1
- package/dist/surface.js +1 -1
- package/dist/{switch-lLkbREB-.js → switch-BYUZ6g9G.js} +1 -1
- package/dist/switch.js +1 -1
- package/dist/{tabs-DSJMd1Et.js → tabs-rdRXKXxd.js} +4 -3
- package/dist/tabs.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/timeline.js +44 -42
- package/dist/{toast-9c6Kp58L.js → toast-DVOwo6GB.js} +1 -1
- package/dist/toast.js +1 -1
- package/dist/{toggle-group-DUcmKnDw.js → toggle-group-CC5b3o1R.js} +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/{tooltip-BKk2qVDn.js → tooltip-DhTHhtJN.js} +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAccentTone-DFAh1osB.js → useAccentTone-DitmKfGL.js} +1 -1
- package/dist/{usePointerVelocityField-DsIf7yyq.js → usePointerVelocityField-Lx26_Yap.js} +1 -1
- package/package.json +4 -2
- package/dist/DialogContent-4hzLiaCQ.js +0 -152
- package/dist/popover-C04Rrdcz.js +0 -181
package/dist/collapsible.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, r as t, t as n } from "./collapsible-
|
|
1
|
+
import { n as e, r as t, t as n } from "./collapsible-DFzK29Oh.js";
|
|
2
2
|
export { t as Collapsible, n as CollapsibleContent, e as CollapsibleTrigger };
|
package/dist/color.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as e, n as t, r as n, t as r } from "./value-DMhh2R94.js";
|
|
2
|
-
import { t as i } from "./useAccentTone-
|
|
2
|
+
import { t as i } from "./useAccentTone-DitmKfGL.js";
|
|
3
3
|
import { convertColor as a, interpolateHue as o, mapColorToGamut as s, toRgba8 as c } from "@mkbabb/value.js/color";
|
|
4
4
|
//#region src/composables/color/index.ts
|
|
5
5
|
function l(e) {
|
|
@@ -38,18 +38,18 @@ function p(e) {
|
|
|
38
38
|
let [t, i, a] = r("oklchStopToHex", c(n(e), { gamut: "clip" })), o = (e) => e.toString(16).padStart(2, "0");
|
|
39
39
|
return `#${o(t)}${o(i)}${o(a)}`;
|
|
40
40
|
}
|
|
41
|
-
var m =
|
|
41
|
+
var m = {
|
|
42
42
|
complementary: "longer",
|
|
43
43
|
"split-complementary": "longer",
|
|
44
44
|
analogous: "shorter",
|
|
45
45
|
monochrome: "shorter",
|
|
46
46
|
triad: "increasing",
|
|
47
47
|
tetradic: "increasing"
|
|
48
|
-
},
|
|
49
|
-
function
|
|
50
|
-
let a =
|
|
48
|
+
}, h = (e) => (e % 360 + 360) % 360;
|
|
49
|
+
function g(e, t, n, i) {
|
|
50
|
+
let a = m[t], s = (e, t) => h(r("deriveHue", o(h(e), h(t), i, a)));
|
|
51
51
|
switch (t) {
|
|
52
|
-
case "monochrome": return
|
|
52
|
+
case "monochrome": return h(e);
|
|
53
53
|
case "complementary": return s(e, e + 180);
|
|
54
54
|
case "split-complementary": return s(e + 150, e + 210);
|
|
55
55
|
case "triad": return s(e, e + 240);
|
|
@@ -57,7 +57,7 @@ function _(e, t, n, i) {
|
|
|
57
57
|
default: return s(e - n, e + n);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function _(e) {
|
|
61
61
|
let [i, a, o] = r("gamutMapStop", s(n(e), "srgb")).channels;
|
|
62
62
|
return {
|
|
63
63
|
L: t(i, "gamutMapStop"),
|
|
@@ -65,13 +65,13 @@ function v(e) {
|
|
|
65
65
|
h: t(o, "gamutMapStop")
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function v(e, t = {}) {
|
|
69
69
|
let n = typeof e == "string" ? f(e) : e, { stopCount: r = 3, harmony: i = "analogous", lightnessSpread: a = .18, hueSpread: o = 24, chromaBump: s = .03, chromaCeiling: c, bodyLightness: l, lightnessFloor: u } = t, d = l === void 0 ? n.L - a / 2 : l, p = u === void 0 ? .05 : u, m = Math.max(2, Math.min(4, Math.round(r))), h = [];
|
|
70
70
|
for (let e = 0; e < m; e++) {
|
|
71
71
|
let t = m === 1 ? 0 : e / (m - 1), r = d + a * t, l = Math.max(0, n.C + s * Math.sin(Math.PI * t));
|
|
72
72
|
c !== void 0 && (l = Math.min(l, c));
|
|
73
|
-
let u =
|
|
74
|
-
h.push(
|
|
73
|
+
let u = g(n.h, i, o, t);
|
|
74
|
+
h.push(_({
|
|
75
75
|
L: Math.min(.98, Math.max(p, r)),
|
|
76
76
|
C: l,
|
|
77
77
|
h: u
|
|
@@ -80,4 +80,4 @@ function y(e, t = {}) {
|
|
|
80
80
|
return h;
|
|
81
81
|
}
|
|
82
82
|
//#endregion
|
|
83
|
-
export { f as cssToOklch,
|
|
83
|
+
export { f as cssToOklch, v as deriveBlobPalette, g as deriveHue, _ as gamutMapStop, p as oklchStopToHex, d as oklchToGammaRgb, l as oklchToLinear, i as useAccentTone, u as warmCatchLight };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as e } from "./class-names-
|
|
1
|
+
import { t as e } from "./class-names-FlXcvRRT.js";
|
|
2
2
|
import { t } from "./primitive-B2t2jdqM.js";
|
|
3
3
|
import { t as n } from "./selection-DqIULxRG.js";
|
|
4
|
-
import { n as r, t as i } from "./DialogContent-
|
|
5
|
-
import { t as a } from "./
|
|
6
|
-
import { t as o } from "./
|
|
4
|
+
import { n as r, t as i } from "./DialogContent-CwIBvou_.js";
|
|
5
|
+
import { t as a } from "./participation-Di4UHbzk.js";
|
|
6
|
+
import { t as o } from "./rowClass-DYOXwxhO.js";
|
|
7
7
|
import { computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createTextVNode as d, createVNode as f, defineComponent as p, mergeProps as m, normalizeClass as h, openBlock as g, renderSlot as _, toDisplayString as v, unref as y, useAttrs as b, withCtx as x } from "vue";
|
|
8
8
|
import { ComboboxContent as S, ComboboxEmpty as C, ComboboxGroup as w, ComboboxInput as T, ComboboxItem as E, ComboboxLabel as D, ComboboxRoot as O, ComboboxSeparator as k } from "reka-ui";
|
|
9
9
|
import { Search as A } from "@lucide/vue";
|
|
@@ -231,20 +231,20 @@ var j = /* @__PURE__ */ p({
|
|
|
231
231
|
},
|
|
232
232
|
emits: ["select"],
|
|
233
233
|
setup(n, { emit: r }) {
|
|
234
|
-
let i = n,
|
|
234
|
+
let i = n, a = r, l = b(), u = s(() => t(l));
|
|
235
235
|
function d(e) {
|
|
236
236
|
if (i.disabled) {
|
|
237
237
|
e.preventDefault();
|
|
238
238
|
return;
|
|
239
239
|
}
|
|
240
|
-
|
|
240
|
+
a("select", e);
|
|
241
241
|
}
|
|
242
242
|
return (t, n) => (g(), c(y(E), m(u.value, {
|
|
243
243
|
"data-slot": "command-item",
|
|
244
244
|
value: i.value,
|
|
245
245
|
disabled: i.disabled,
|
|
246
246
|
"text-value": i.textValue,
|
|
247
|
-
class: y(e)("command__item", y(
|
|
247
|
+
class: y(e)("command__item", y(o)(), i.class),
|
|
248
248
|
onSelect: d
|
|
249
249
|
}), {
|
|
250
250
|
default: x(() => [_(t.$slots, "default")]),
|
|
@@ -277,7 +277,7 @@ var j = /* @__PURE__ */ p({
|
|
|
277
277
|
"interactOutside"
|
|
278
278
|
],
|
|
279
279
|
setup(t, { emit: n }) {
|
|
280
|
-
let r = t, i = n,
|
|
280
|
+
let r = t, i = n, o = b(), l = s(() => ({ ...o })), u = a();
|
|
281
281
|
return (t, n) => (g(), c(y(S), m({
|
|
282
282
|
...l.value,
|
|
283
283
|
...y(u).portalAttrs.value
|
package/dist/command.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./command-
|
|
1
|
+
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./command-C-5xSEJ2.js";
|
|
2
2
|
export { r as Command, t as CommandDialog, s as CommandEmpty, a as CommandGroup, e as CommandInput, n as CommandItem, o as CommandList, i as CommandSeparator, c as CommandShortcut };
|
|
@@ -21,7 +21,16 @@ export type ClassValue = string | number | false | null | undefined | ClassValue
|
|
|
21
21
|
*
|
|
22
22
|
* Tokens that don't match a known bucket pass through untouched (custom
|
|
23
23
|
* classes, arbitrary-value utilities like `[&::after]:hidden`, anything
|
|
24
|
-
* not in the conflict table)
|
|
24
|
+
* not in the conflict table), and between two of them the winner is
|
|
25
|
+
* stylesheet emission order, not argument order.
|
|
26
|
+
* [2026-09-22 · O-32 §4.2 / O-23 L-2: the families that fall through at
|
|
27
|
+
* 10.0.0, named so an override can be priced — the theme font registers
|
|
28
|
+
* `font-text` / `font-display` / `font-serif-math` (the family bucket is
|
|
29
|
+
* `font-sans|serif|mono` only), `tracking-*`, `leading-*`, and the semantic
|
|
30
|
+
* `border-*` / `ring-*` colours (`border-border`, `ring-ring`; those buckets
|
|
31
|
+
* match palette-number names only). Every `text-*` and `shadow-*` name
|
|
32
|
+
* `.published-roster` carries IS bucketed, by its true property — a unit in
|
|
33
|
+
* `tests/components/_shared/classNames.test.ts` reads the roster to hold it.]
|
|
25
34
|
*/
|
|
26
35
|
export declare function cn(...inputs: ClassValue[]): string;
|
|
27
36
|
/** Normalize Vue-compatible class values without shipping a runtime class helper. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{.glass-menu-row{--menu-row-bg: var(--glass-plate-quiet);--menu-row-lift: -1px;min-block-size: max(2rem,var(--touch-target,2.75rem));transition: background-color var(--engage-control-engage-release) var(--ease-standard),color var(--engage-control-engage-release) var(--ease-standard),border-color var(--engage-control-engage-release) var(--ease-standard),box-shadow var(--engage-control-engage-release) var(--ease-standard),translate var(--spring-dock-duration) var(--spring-dock),scale var(--spring-press-duration) var(--transition-liquid-spatial);translate: 0 0;}.glass-menu-row:focus:not([data-disabled]),.glass-menu-row[data-highlighted]:not([data-disabled]),.glass-menu-row[data-state="open"]:not([data-disabled]){background: var(--menu-row-bg);color: var(--accent-foreground);transition: background-color var(--engage-control-engage-attack) var(--ease-standard),color var(--engage-control-engage-attack) var(--ease-standard),border-color var(--engage-control-engage-attack) var(--ease-standard),box-shadow var(--engage-control-engage-attack) var(--ease-standard),translate var(--spring-dock-duration) var(--spring-dock),scale var(--spring-press-duration) var(--transition-liquid-spatial);}@media (hover: hover){.glass-menu-row:hover:not([data-disabled]){background: var(--menu-row-bg);color: var(--accent-foreground);translate: 0 var(--menu-row-lift);transition: background-color var(--engage-control-engage-attack) var(--ease-standard),color var(--engage-control-engage-attack) var(--ease-standard),border-color var(--engage-control-engage-attack) var(--ease-standard),box-shadow var(--engage-control-engage-attack) var(--ease-standard),translate var(--spring-dock-duration) var(--spring-dock),scale var(--spring-press-duration) var(--transition-liquid-spatial);}}
|
|
1
|
+
@layer components{.glass-menu-row{--menu-row-bg: var(--glass-plate-quiet);--menu-row-lift: -1px;min-block-size: max(2rem,var(--touch-target,2.75rem));transition: background-color var(--engage-control-engage-release) var(--ease-standard),color var(--engage-control-engage-release) var(--ease-standard),border-color var(--engage-control-engage-release) var(--ease-standard),box-shadow var(--engage-control-engage-release) var(--ease-standard),translate var(--spring-dock-duration) var(--spring-dock),scale var(--spring-press-duration) var(--transition-liquid-spatial);translate: 0 0;}.glass-menu-row:focus:not([data-disabled]),.glass-menu-row[data-highlighted]:not([data-disabled]),.glass-menu-row[data-state="open"]:not([data-disabled]){background: var(--menu-row-bg);color: var(--accent-foreground);transition: background-color var(--engage-control-engage-attack) var(--ease-standard),color var(--engage-control-engage-attack) var(--ease-standard),border-color var(--engage-control-engage-attack) var(--ease-standard),box-shadow var(--engage-control-engage-attack) var(--ease-standard),translate var(--spring-dock-duration) var(--spring-dock),scale var(--spring-press-duration) var(--transition-liquid-spatial);}@media (hover: hover){.glass-menu-row:hover:not([data-disabled]){background: var(--menu-row-bg);color: var(--accent-foreground);translate: 0 var(--menu-row-lift);transition: background-color var(--engage-control-engage-attack) var(--ease-standard),color var(--engage-control-engage-attack) var(--ease-standard),border-color var(--engage-control-engage-attack) var(--ease-standard),box-shadow var(--engage-control-engage-attack) var(--ease-standard),translate var(--spring-dock-duration) var(--spring-dock),scale var(--spring-press-duration) var(--transition-liquid-spatial);}}@media (prefers-reduced-motion: reduce){.glass-menu-row{--menu-row-lift: 0px;transition: background-color var(--engage-control-engage-release) var(--ease-standard),color var(--engage-control-engage-release) var(--ease-standard),border-color var(--engage-control-engage-release) var(--ease-standard),box-shadow var(--engage-control-engage-release) var(--ease-standard);}}}@layer components{.glass-menu-divider{block-size: 1px;background: color-mix( in oklab,var(--foreground) calc(var(--ink-seam) * 100%),transparent );}}
|
|
@@ -10,3 +10,4 @@ export { overlayContentAttrs, type OverlayAttrs, type OverlayRole } from "./cont
|
|
|
10
10
|
export { isTeleportedTarget } from "./isTeleportedTarget.js";
|
|
11
11
|
export { useDockParticipation, useHoldToken, type DockParticipation, type DockPortalAttrs, type HoldTarget, type HoldToken, } from "./participation.js";
|
|
12
12
|
export type { FloatingAlign, FloatingPlacementProps, FloatingSide, } from "./placement.js";
|
|
13
|
+
export { useModalShortcutBarrier } from "./shortcuts.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hold a shortcut barrier for as long as `active` reads true.
|
|
3
|
+
*
|
|
4
|
+
* ORDERING is the whole contract and it is why this runs `immediate` in SETUP:
|
|
5
|
+
* the barrier admits registrations made AFTER it, so it has to be raised before
|
|
6
|
+
* the overlay's own content mounts and registers anything. A `pre`-flush watch
|
|
7
|
+
* fires ahead of the render that mounts that content, and the immediate arm covers
|
|
8
|
+
* an overlay that is open on its first frame.
|
|
9
|
+
*
|
|
10
|
+
* The release is idempotent, so the scope-dispose arm is safe beside a close.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useModalShortcutBarrier(active: () => boolean): void;
|
|
@@ -74,14 +74,16 @@ export interface AuroraFieldInteractivityAtom {
|
|
|
74
74
|
*/
|
|
75
75
|
amplitude?: number;
|
|
76
76
|
}
|
|
77
|
-
/**
|
|
77
|
+
/** No impasto to relight (smooth, and every medium but oil/vangogh): no `light`. */
|
|
78
78
|
export interface AuroraSmoothInteractivityAtom extends AuroraFieldInteractivityAtom {
|
|
79
79
|
light?: never;
|
|
80
80
|
}
|
|
81
|
-
/**
|
|
81
|
+
/** The impasto media (oil, vangogh) may also steer their light from the cursor. */
|
|
82
82
|
export interface AuroraPainterlyInteractivityAtom extends AuroraFieldInteractivityAtom {
|
|
83
83
|
light?: boolean;
|
|
84
84
|
}
|
|
85
|
+
/** Media whose texture amount writes `impasto` — the only ones `light` relights. */
|
|
86
|
+
type AuroraImpastoMedium = "oil" | "vangogh";
|
|
85
87
|
export type AuroraInteractivityAtom = AuroraSmoothInteractivityAtom | AuroraPainterlyInteractivityAtom;
|
|
86
88
|
/**
|
|
87
89
|
* The Tier-1 atoms of control (≤7) — the user's named control elements. EVERY atom is
|
|
@@ -89,7 +91,14 @@ export type AuroraInteractivityAtom = AuroraSmoothInteractivityAtom | AuroraPain
|
|
|
89
91
|
* so `DEFAULT_ATOMS` (the empty set) resolves to `DEFAULT_AURORA_CONFIG`.
|
|
90
92
|
*/
|
|
91
93
|
interface AuroraAtomsBase {
|
|
92
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* A seed color (CSS string or an OklchStop anchor) → drives the derived palette.
|
|
96
|
+
*
|
|
97
|
+
* A string is parsed by `cssToOklch`, which THROWS `GlassColorError` on a contextual
|
|
98
|
+
* value (`var(--x)`, `currentColor`) or a non-opaque one — it resolves nothing from
|
|
99
|
+
* the DOM and invents no stock palette. Resolve the token yourself and pass either
|
|
100
|
+
* the resolved string or the `OklchStop` form.
|
|
101
|
+
*/
|
|
93
102
|
seed?: string | OklchStop;
|
|
94
103
|
/** The hue scheme across the derived ramp. Default `analogous` (when a seed is set). */
|
|
95
104
|
harmony?: AuroraHarmony;
|
|
@@ -154,8 +163,9 @@ interface AuroraAtomsBase {
|
|
|
154
163
|
motion?: AuroraMotionAtom;
|
|
155
164
|
}
|
|
156
165
|
/**
|
|
157
|
-
* The medium-discriminated atoms surface.
|
|
158
|
-
*
|
|
166
|
+
* The medium-discriminated atoms surface. Every medium retains swirl/scroll/amplitude;
|
|
167
|
+
* the directional `light` axis is admitted only where the medium writes impasto for it
|
|
168
|
+
* to relight (oil, vangogh) and is `never` on every other arm.
|
|
159
169
|
*/
|
|
160
170
|
export type AuroraAtoms = AuroraAtomsBase & ({
|
|
161
171
|
medium?: {
|
|
@@ -164,7 +174,13 @@ export type AuroraAtoms = AuroraAtomsBase & ({
|
|
|
164
174
|
interactivity?: AuroraSmoothInteractivityAtom;
|
|
165
175
|
} | {
|
|
166
176
|
medium: {
|
|
167
|
-
kind: Exclude<AuroraMedium, "smooth">;
|
|
177
|
+
kind: Exclude<AuroraMedium, "smooth" | AuroraImpastoMedium>;
|
|
178
|
+
amount?: number;
|
|
179
|
+
};
|
|
180
|
+
interactivity?: AuroraSmoothInteractivityAtom;
|
|
181
|
+
} | {
|
|
182
|
+
medium: {
|
|
183
|
+
kind: AuroraImpastoMedium;
|
|
168
184
|
amount?: number;
|
|
169
185
|
};
|
|
170
186
|
interactivity?: AuroraPainterlyInteractivityAtom;
|
|
@@ -146,16 +146,18 @@ export interface AuroraRuntime extends Omit<AuroraInstance, "pause" | "resume">
|
|
|
146
146
|
readonly reducedMotion: boolean;
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
|
-
* One
|
|
149
|
+
* One impasto-keyed predicate shared by pointer writes and uniform projection.
|
|
150
150
|
*
|
|
151
151
|
* `swirl` is the DEFAULT-ON axis: every aurora shapes under the pointer unless its
|
|
152
152
|
* config says `swirl: false`. Suppression is not this predicate's job — the master
|
|
153
153
|
* tempo scalar zeroes the field tick under reduced motion and under the background
|
|
154
154
|
* pause, so a PRM reader never sees the cursor regardless of what this returns.
|
|
155
155
|
*
|
|
156
|
-
* `light` stays an explicit opt-in AND
|
|
157
|
-
*
|
|
158
|
-
*
|
|
156
|
+
* `light` stays an explicit opt-in AND is keyed on the impasto AMOUNT, not the medium
|
|
157
|
+
* name: it steers `uLightDir`, which only `relightImpasto` reads, and every term there is
|
|
158
|
+
* multiplied by `uImpasto`. `impasto` defaults to 0, so `light` alone paints nothing on
|
|
159
|
+
* crayon or pastel exactly as it paints nothing on smooth, and must not arm a pointer
|
|
160
|
+
* path that provably cannot change a pixel.
|
|
159
161
|
*/
|
|
160
162
|
export declare function isAuroraPointerEnabled(config: AuroraConfig): boolean;
|
|
161
163
|
/** One shader-time projection shared by the WebGPU and WebGL2 bridges. */
|
|
@@ -73,10 +73,18 @@ export type WarpMode = "fbm" | "cellular" | "hybrid" | "curl";
|
|
|
73
73
|
* `swirl` is ON by default — a config opts OUT with `swirl: false`. Every aurora is
|
|
74
74
|
* pointer-shapeable, and a capability parked behind an opt-in flag is a capability the
|
|
75
75
|
* surface does not have. `light` and `scroll` remain explicit opt-ins: `light` is only
|
|
76
|
-
* meaningful
|
|
76
|
+
* meaningful where the config carries impasto to relight (see its own note), and `scroll`
|
|
77
77
|
* re-times the shader clock against page position, which no surface should inherit.
|
|
78
78
|
*/
|
|
79
79
|
export interface AuroraInteractivity {
|
|
80
|
+
/**
|
|
81
|
+
* Cursor-driven impasto relight. Steers `uLightDir`, which only `relightImpasto`
|
|
82
|
+
* consumes, and every term of that is multiplied by `uImpasto` — so `light` steers
|
|
83
|
+
* relighting ONLY where `impasto > 0`. The medium name is not the key: `impasto`
|
|
84
|
+
* defaults to 0 (`DEFAULT_AURORA_CONFIG`) and the atoms door raises it for `oil` and
|
|
85
|
+
* `vangogh` alone, so `light` over crayon, pastel, watercolor, oil-pastel, kuwahara
|
|
86
|
+
* or either metal shapes nothing unless the config sets `impasto` itself.
|
|
87
|
+
*/
|
|
80
88
|
light?: boolean;
|
|
81
89
|
scroll?: boolean;
|
|
82
90
|
/**
|
|
@@ -193,6 +201,16 @@ export interface AuroraConfig {
|
|
|
193
201
|
breathPeriod: number;
|
|
194
202
|
saturation: number;
|
|
195
203
|
paperGrain: number;
|
|
204
|
+
/**
|
|
205
|
+
* Pigment alpha of the PAINTED image, 0..1. Live presentation applies it once as the
|
|
206
|
+
* canvas element's own opacity; capture keeps it in the transparent GPU buffer.
|
|
207
|
+
*
|
|
208
|
+
* It composites over the palette-derived GROUND placeholder, which is mounted
|
|
209
|
+
* unconditionally at full opacity and is alpha-blind — a raster of the same field —
|
|
210
|
+
* so `alpha` re-weights the ground→field dissolve, not the surface's delivered
|
|
211
|
+
* presence. The presence envelope is the `opacityCeiling` prop, applied once around
|
|
212
|
+
* placeholder + canvas together.
|
|
213
|
+
*/
|
|
196
214
|
alpha: number;
|
|
197
215
|
/**
|
|
198
216
|
* the §3 chroma FLOOR (the warm-field vividness contract).
|
|
@@ -62,14 +62,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
62
62
|
resume: () => void;
|
|
63
63
|
settled: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
64
64
|
settledFrame: Readonly<import("vue").Ref<import(".").BlobSettledFrame | null, import(".").BlobSettledFrame | null>>;
|
|
65
|
-
rendererStatus: Readonly<import("vue").Ref<import("../../
|
|
65
|
+
rendererStatus: Readonly<import("vue").Ref<import("../../index.js").RendererStatus, import("../../index.js").RendererStatus>>;
|
|
66
66
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
67
67
|
click: () => any;
|
|
68
|
-
rendererStatus: (status: import("../../
|
|
68
|
+
rendererStatus: (status: import("../../index.js").RendererStatus) => any;
|
|
69
69
|
"update:paused": (value: boolean) => any;
|
|
70
70
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
71
71
|
onClick?: (() => any) | undefined;
|
|
72
|
-
onRendererStatus?: ((status: import("../../
|
|
72
|
+
onRendererStatus?: ((status: import("../../index.js").RendererStatus) => any) | undefined;
|
|
73
73
|
"onUpdate:paused"?: ((value: boolean) => any) | undefined;
|
|
74
74
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
75
75
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{.button{--button-size: var(--control-h-md);--button-tone: var(--foreground);--button-accent: var(--primary);--button-quiet-ink: var(--muted-foreground);--button-ink: var(--button-tone);--button-edge: transparent;display: inline-flex;min-inline-size: 0;max-inline-size: 100%;min-block-size: var(--button-size);align-items: center;justify-content: center;gap: var(--space-atom);padding-inline: var(--space-
|
|
1
|
+
@layer components{.button{--button-size: var(--control-h-md);--button-tone: var(--foreground);--button-accent: var(--primary);--button-quiet-ink: var(--muted-foreground);--button-ink: var(--button-tone);--button-edge: transparent;display: inline-flex;min-inline-size: 0;max-inline-size: 100%;min-block-size: var(--button-size);align-items: center;justify-content: center;gap: var(--space-atom);padding-inline: calc(var(--button-size) / 2 - var(--space-residue));border: 1px solid var(--button-edge);border-radius: calc(var(--button-size) / 2);color: var(--button-ink);font: inherit;font-size: var(--control-text);font-weight: 500;line-height: 1.1;text-align: center;text-decoration: none;cursor: pointer;appearance: none;touch-action: manipulation;user-select: none;scale: 1;--scale-press: var(--scale-press-sm);transition: background-color var(--engage-control-engage-release) var(--ease-standard),border-color var(--engage-control-engage-release) var(--ease-standard),box-shadow var(--engage-control-engage-release) var(--ease-standard),color var(--engage-control-engage-release) var(--ease-standard),opacity var(--engage-control-engage-release) var(--ease-standard),scale var(--spring-press-duration) var(--transition-liquid-spatial);}.button > svg{flex: none;pointer-events: none;}.button > svg:not([class*="size-"]){inline-size: var(--ui-glyph);block-size: var(--ui-glyph);}.button > .button-mark{flex: none;inline-size: var(--ui-glyph);}.button[data-emphasis="primary"]{--glass-depth: var(--glass-depth-content);font-weight: 600;}.button[data-emphasis="secondary"]{--glass-veil-tier: var(--glass-veil-quiet);--glass-blur-floating: var(--glass-blur-quiet);}.button[data-tone="destructive"]{--button-tone: var(--destructive);--button-accent: var(--destructive);--button-quiet-ink: var(--destructive);--button-edge: color-mix( in oklab,var(--destructive) calc(var(--ink-perimeter) * 100%),transparent );--glass-capsule-fill: color-mix( in oklab,var(--glass-veil),var(--destructive) var(--feedback-tone-strength) );}.button[data-emphasis="quiet"],.button[data-emphasis="text"]{--button-edge: transparent;--button-ink: var(--button-quiet-ink);background: transparent;box-shadow: none;}.button[data-emphasis="text"]{--button-ink: var(--button-accent);padding-inline: var(--space-residue);text-underline-offset: 0.25em;}@media (hover: hover){.button[data-emphasis="quiet"]:hover:not(:disabled,[aria-disabled="true"]){--button-ink: var(--button-tone);background: color-mix( in oklab,var(--button-tone) calc(var(--fill-hover) * 100%),transparent );}.button[data-emphasis="text"]:hover:not(:disabled,[aria-disabled="true"]){text-decoration: underline;}}.button[data-emphasis="quiet"]:active:not(:disabled,[aria-disabled="true"]){background: color-mix( in oklab,var(--button-tone) calc(var(--fill-selected) * 100%),transparent );}.button[data-emphasis="text"]:active:not(:disabled,[aria-disabled="true"]){background: color-mix( in oklab,var(--button-accent) calc(var(--fill-hover) * 100%),transparent );}.button[data-size="xs"]{--button-size: var(--control-h-xs);gap: var(--space-residue);font-size: var(--control-text-sm);}.button[data-size="sm"]{--button-size: var(--control-h-sm);gap: var(--space-residue);font-size: var(--control-text-sm);}.button[data-size="lg"]{--button-size: var(--control-h-lg);font-size: var(--type-body);}.button[data-icon-only]{inline-size: var(--button-size);block-size: var(--button-size);min-block-size: var(--button-size);padding: 0;}.button:disabled,.button[aria-disabled="true"]{--button-ink: oklch(from var(--foreground) l 0 h / var(--opacity-disabled));cursor: not-allowed;}.button[data-loading]{cursor: progress;}.button.glass-specular-track:active::before{--specular-intensity: calc( var(--glass-specular-intensity-hover) + ( var(--glass-specular-intensity-active) - var(--glass-specular-intensity-hover) ) * var(--glass-btn-press-t) );}}
|
|
@@ -9,8 +9,14 @@ export type CardSize = "sm" | "md";
|
|
|
9
9
|
* and no capacity. `shadow` is CARD's own — Surface went three-prop and the
|
|
10
10
|
* card is the one component with a real elevation grammar, so it stamps its own
|
|
11
11
|
* `data-shadow` for the edge keying instead of routing the flag through a
|
|
12
|
-
* primitive that no longer reads it. `grain` and `specular` are gone
|
|
13
|
-
*
|
|
12
|
+
* primitive that no longer reads it. `grain` and `specular` are gone as PROPS,
|
|
13
|
+
* not as capacities: `v-specular` ships with `createSpecularWriter` and
|
|
14
|
+
* `useSpecularTracking` (`src/index.ts:475-479`) over the
|
|
15
|
+
* `.glass-specular-track` opt-in (`styles/index.css:205`), and grain lives on
|
|
16
|
+
* as `--glass-grain-opacity` (`styles/tokens/glass-fx.css:10`) and
|
|
17
|
+
* `@utility paper-grain-overlay` (`styles/paper.css:125`). A card that wants
|
|
18
|
+
* either arms it on the element.
|
|
19
|
+
* `cartoon` / `grid` / `metal` / `variant` / `dataHue` /
|
|
14
20
|
* `dataHueStrength` are struck: three of them wrote a class a consumer can write
|
|
15
21
|
* (`cartoon-surface`, `paper-grid`), and `variant`+`dataHue`+`selected` were one
|
|
16
22
|
* state wearing three props. A per-instance rim hue is `--glass-accent`, written
|
|
@@ -8,13 +8,7 @@ type __VLS_Slots = {} & {
|
|
|
8
8
|
} & {
|
|
9
9
|
default?: (props: typeof __VLS_16) => any;
|
|
10
10
|
};
|
|
11
|
-
declare const __VLS_base: import("vue").
|
|
12
|
-
"update:modelValue": (value: boolean) => any;
|
|
13
|
-
remove: (event: MouseEvent) => any;
|
|
14
|
-
}, string, import("vue").PublicProps, Readonly<import("./types.js").StaticChipProps | import("./types.js").SelectableChipProps | import("./types.js").ActionChipProps | import("./types.js").RemovableChipProps> & Readonly<{
|
|
15
|
-
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
16
|
-
onRemove?: ((event: MouseEvent) => any) | undefined;
|
|
17
|
-
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_base: import("vue").DefineSetupFnComponent<Record<string, any>, {}, {}, Record<string, any> & {}, import("vue").PublicProps>;
|
|
18
12
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
13
|
declare const _default: typeof __VLS_export;
|
|
20
14
|
export default _default;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ClassValue } from "../_shared/class-names.js";
|
|
2
2
|
declare const SIZE: {
|
|
3
|
+
readonly xs: "gap-0.5 px-1 py-0.5 text-micro";
|
|
3
4
|
readonly sm: "gap-1 px-2.5 py-1 text-caption";
|
|
4
5
|
readonly md: "gap-1.5 px-3.5 py-1.5 text-small";
|
|
5
6
|
readonly lg: "gap-2 px-5 py-2 text-base";
|
|
@@ -21,6 +21,7 @@ declare const __VLS_base: import("vue").DefineComponent<CollapsibleProps, {}, {}
|
|
|
21
21
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
23
|
disabled: boolean;
|
|
24
|
+
open: boolean;
|
|
24
25
|
defaultOpen: boolean;
|
|
25
26
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
27
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -10,11 +10,11 @@ declare const __VLS_base: import("vue").DefineComponent<CommandDialogProps, {},
|
|
|
10
10
|
"onUpdate:modelValue"?: ((value: import("./index.js").ComboboxValue) => any) | undefined;
|
|
11
11
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
12
12
|
}>, {
|
|
13
|
+
modal: boolean;
|
|
13
14
|
unmountOnHide: boolean;
|
|
14
15
|
open: boolean;
|
|
15
16
|
defaultOpen: boolean;
|
|
16
17
|
surface: import("../_shared/axes.js").Surface;
|
|
17
|
-
modal: boolean;
|
|
18
18
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
19
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
20
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--configurator-pad-inline: 1.25rem;}.configurator-shell{-webkit-backdrop-filter: none;backdrop-filter: none;container-type: inline-size;display: grid;grid-template-rows: minmax(0,1fr);min-block-size: 0;min-inline-size: min(20rem,100%);}.configurator > .configurator-presets,.configurator > .configurator-aside{-webkit-backdrop-filter: var(--glass-blur-floating);backdrop-filter: var(--glass-blur-floating);}.configurator-section-label{font-family: var(--font-text);font-size: var(--configurator-section-size);line-height: var(--type-leading-body);font-weight: var(--configurator-section-weight);letter-spacing: var(--type-tracking-tight);color: var(--foreground);}.configurator-presets{padding-block: var(--configurator-preset-row-weight);}.configurator-presets .configurator-gallery-track,.configurator-presets [role="group"]{gap: var(--configurator-preset-row-gap);}.configurator-layer{border-color: var(--configurator-divider-section);background-color: var(--configurator-section-tint);border-radius: max( var(--radius-floor),calc(var(--radius-ctx) - var(--radius-inset)) );}.configurator-layer:has(+ .configurator-layer){border-end-start-radius: 0;border-end-end-radius: 0;border-bottom-width: 0;}.configurator-layer + .configurator-layer{margin-block-start: 0;border-start-start-radius: 0;border-start-end-radius: 0;}.configurator-layer-trigger{padding-inline: var(--configurator-pad-inline);}.configurator-layer-body{padding-inline: var(--configurator-pad-inline);}.configurator-layer-body[data-dividers] > * + *{border-color: var(--configurator-divider);}.configurator-aside,.configurator-presets,.configurator-footer{border-color: var(--configurator-divider);}[data-slot="configurator"] > [data-gallery-dock]{grid-row: 1;grid-column: 1;}[data-slot="configurator"] > .configurator-stage{grid-row: 2;grid-column: 1;}[data-slot="configurator"] > .configurator-aside{grid-row: 3;grid-column: 1;}@container (inline-size >= 64rem){[data-slot="configurator"]{grid-template-columns: minmax(0,1fr) minmax( var(--configurator-aside-min,300px),var(--configurator-aside-max,400px) );grid-template-rows: auto minmax(0,1fr);}[data-slot="configurator"][data-gallery="aside"] > [data-gallery-dock]{grid-row: 1;grid-column: 2;}[data-slot="configurator"][data-gallery="aside"] > .configurator-stage{grid-row: 1 / span 2;grid-column: 1;}[data-slot="configurator"][data-gallery="aside"] > .configurator-aside{grid-row: 2;grid-column: 2;}[data-slot="configurator"][data-gallery="top"] > [data-gallery-dock]{grid-row: 1;grid-column: 1 / span 2;}[data-slot="configurator"][data-gallery="top"] > .configurator-stage{grid-row: 2;grid-column: 1;}[data-slot="configurator"][data-gallery="top"] > .configurator-aside{grid-row: 2;grid-column: 2;}[data-slot="configurator"] > .configurator-aside{border-block-start-width: 0;border-inline-start-width: 1px;}[data-slot="configurator"][data-aside-side="left"] > .configurator-aside{border-inline-start-width: 0;border-inline-end-width: 1px;}}[data-slot="configurator"] > [data-gallery-dock]{border-color: var(--configurator-divider);}[data-slot="configurator"][data-gallery="aside"] > [data-gallery-dock]{border-bottom-width: 1px;}@container (inline-size >= 64rem){[data-slot="configurator"][data-gallery="top"] > [data-gallery-dock]{border-bottom-width: 1px;}}.configurator-preset-tile{inline-size: clamp(160px,22cqi,232px);border-radius: var(--radius-card);}[data-slot="configurator"][data-gallery="top"] .configurator-preset-tile{inline-size: clamp(200px,20cqi,288px);}.configurator-preset-well{background-size: cover;background-position: center;image-rendering: auto;}.configurator-preset-well.is-loading{background-image: linear-gradient( 100deg,color-mix(in oklab,var(--card) 84%,transparent) 30%,color-mix(in oklab,var(--foreground) 8%,var(--card)) 50%,color-mix(in oklab,var(--card) 84%,transparent) 70% );background-size: 200% 100%;animation: configurator-preset-shimmer 1.2s ease-in-out infinite;}@media (prefers-reduced-motion: reduce){.configurator-preset-well.is-loading{animation: none;}}@keyframes configurator-preset-shimmer{from{background-position: 200% 0;}to{background-position: -200% 0;}}.configurator-preset-tile.is-active{box-shadow: inset 0 0 0 2px var(--focus-ring-color),var(--shadow-cartoon-lg);}.configurator-preset-chip{border-radius: var(--radius-pill);}.configurator-preset-chip.is-active{--glass-capsule-fill: var(--glass-plate-quiet);}@container (inline-size >= 64rem){[data-slot="configurator"][data-aside-side="left"] > .configurator-stage{grid-column: 2;}[data-slot="configurator"][data-aside-side="left"] > .configurator-aside{grid-column: 1;}[data-slot="configurator"][data-aside-side="left"][data-gallery="aside"] > [data-gallery-dock]{grid-column: 1;}}.configurator-expand-host[data-state="expanded"] > [data-part="panel"]{padding: var(--space-section);}.configurator-expand-host[data-state="expanded"] .configurator-shell{block-size: 100%;}
|
|
1
|
+
:root{--configurator-pad-inline: 1.25rem;}@layer components{.configurator-shell{-webkit-backdrop-filter: none;backdrop-filter: none;container-type: inline-size;display: grid;grid-template-rows: minmax(0,1fr);min-block-size: 0;min-inline-size: min(20rem,100%);}.configurator > .configurator-presets,.configurator > .configurator-aside{-webkit-backdrop-filter: var(--glass-blur-floating);backdrop-filter: var(--glass-blur-floating);}.configurator-section-label{font-family: var(--font-text);font-size: var(--configurator-section-size);line-height: var(--type-leading-body);font-weight: var(--configurator-section-weight);letter-spacing: var(--type-tracking-tight);color: var(--foreground);}.configurator-presets{padding-block: var(--configurator-preset-row-weight);}.configurator-presets .configurator-gallery-track,.configurator-presets [role="group"]{gap: var(--configurator-preset-row-gap);}.configurator-layer{border-width: 1px;border-color: var(--configurator-divider-section);background-color: var(--configurator-section-tint);border-radius: max( var(--radius-floor),calc(var(--radius-ctx) - var(--radius-inset)) );}.configurator-layer:has(+ .configurator-layer){border-end-start-radius: 0;border-end-end-radius: 0;border-bottom-width: 0;}.configurator-layer + .configurator-layer{margin-block-start: 0;border-start-start-radius: 0;border-start-end-radius: 0;}.configurator-layer-trigger{padding-inline: var(--configurator-pad-inline);}.configurator-layer-body{padding-inline: var(--configurator-pad-inline);}@media (hover: hover){[data-slot="configurator-reset"]:hover{background: color-mix( in oklab,var(--foreground) calc(var(--fill-hover) * 100%),transparent );color: var(--foreground);}.configurator-layer-trigger:hover{background: color-mix( in oklab,var(--foreground) calc(var(--fill-hover) * 100%),transparent );}}.configurator-layer-body[data-dividers] > * + *{border-color: var(--configurator-divider);}.configurator-aside,.configurator-presets,.configurator-footer{border-color: var(--configurator-divider);}.configurator-aside{border-block-start-width: 1px;}[data-slot="configurator"]{grid-template-columns: minmax(0,1fr);grid-template-rows: auto minmax(var(--configurator-stage-min,18rem),auto) minmax(0,1fr);}[data-slot="configurator"] > [data-gallery-dock]{grid-row: 1;grid-column: 1;}[data-slot="configurator"] > .configurator-stage{grid-row: 2;grid-column: 1;}[data-slot="configurator"] > .configurator-aside{grid-row: 3;grid-column: 1;}@container (inline-size >= 64rem){[data-slot="configurator"]{grid-template-columns: minmax(0,1fr) minmax( var(--configurator-aside-min,300px),var(--configurator-aside-max,400px) );grid-template-rows: auto minmax(0,1fr);}[data-slot="configurator"][data-gallery="aside"] > [data-gallery-dock]{grid-row: 1;grid-column: 2;}[data-slot="configurator"][data-gallery="aside"] > .configurator-stage{grid-row: 1 / span 2;grid-column: 1;}[data-slot="configurator"][data-gallery="aside"] > .configurator-aside{grid-row: 2;grid-column: 2;}[data-slot="configurator"][data-gallery="top"] > [data-gallery-dock]{grid-row: 1;grid-column: 1 / span 2;}[data-slot="configurator"][data-gallery="top"] > .configurator-stage{grid-row: 2;grid-column: 1;}[data-slot="configurator"][data-gallery="top"] > .configurator-aside{grid-row: 2;grid-column: 2;}[data-slot="configurator"] > .configurator-aside{border-block-start-width: 0;border-inline-start-width: 1px;}[data-slot="configurator"][data-aside-side="left"] > .configurator-aside{border-inline-start-width: 0;border-inline-end-width: 1px;}}[data-slot="configurator"] > [data-gallery-dock]{border-color: var(--configurator-divider);}[data-slot="configurator"][data-gallery="aside"] > [data-gallery-dock]{border-bottom-width: 1px;}@container (inline-size >= 64rem){[data-slot="configurator"][data-gallery="top"] > [data-gallery-dock]{border-bottom-width: 1px;}}.configurator-preset-tile{inline-size: clamp(160px,22cqi,232px);border-radius: var(--radius-card);}[data-slot="configurator"][data-gallery="top"] .configurator-preset-tile{inline-size: clamp(200px,20cqi,288px);}.configurator-preset-well{background-size: cover;background-position: center;image-rendering: auto;}.configurator-preset-well.is-loading{background-image: linear-gradient( 100deg,color-mix(in oklab,var(--card) 84%,transparent) 30%,color-mix(in oklab,var(--foreground) 8%,var(--card)) 50%,color-mix(in oklab,var(--card) 84%,transparent) 70% );background-size: 200% 100%;animation: configurator-preset-shimmer 1.2s ease-in-out infinite;}@media (prefers-reduced-motion: reduce){.configurator-preset-well.is-loading{animation: none;}}}@keyframes configurator-preset-shimmer{from{background-position: 200% 0;}to{background-position: -200% 0;}}@layer components{.configurator-preset-tile.is-active{box-shadow: inset 0 0 0 2px var(--focus-ring-color),var(--shadow-cartoon-lg);}.configurator-preset-chip{border-radius: var(--radius-pill);}.configurator-preset-chip.is-active{--glass-capsule-fill: var(--glass-plate-quiet);}@container (inline-size >= 64rem){[data-slot="configurator"][data-aside-side="left"] > .configurator-stage{grid-column: 2;}[data-slot="configurator"][data-aside-side="left"] > .configurator-aside{grid-column: 1;}[data-slot="configurator"][data-aside-side="left"][data-gallery="aside"] > [data-gallery-dock]{grid-column: 1;}}.configurator-expand-host[data-state="expanded"] > [data-part="panel"]{padding: var(--space-section);}.configurator-expand-host[data-state="expanded"] .configurator-shell{block-size: 100%;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{.dark-mode-toggle-button{--dark-mode-toggle-size: 2.25rem;--dark-mode-toggle-padding: 0.375rem;appearance: none;display: inline-grid;place-items: center;flex: none;width: var(--dark-mode-toggle-size);height: var(--dark-mode-toggle-size);padding: var(--dark-mode-toggle-padding);border: 0;border-radius: var(--radius-pill);color: var(--foreground);background: transparent;opacity: 0.8;cursor: pointer;transition: opacity var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);}.dark-mode-toggle-button:hover{background: var(--surface-tint-10);opacity: 1;}.dark-mode-toggle-button:focus-visible{outline: none;box-shadow: var(--focus-ring-shadow,var(--dock-ring));opacity: 1;}.dark-mode-toggle-button > svg{display: block;width: 100%;height: 100%;fill: currentColor;}.dark-mode-toggle-button[data-size="sm"]{--dark-mode-toggle-size: 1.75rem;--dark-mode-toggle-padding: 0.25rem;}.dark-mode-toggle-button[data-size="lg"]{--dark-mode-toggle-size: 2.75rem;--dark-mode-toggle-padding: 0.5rem;}.dark-mode-toggle-button[data-size="control"]{--dark-mode-toggle-size: var(--control-size,2.25rem);--dark-mode-toggle-padding: var(--control-icon-padding,0.375rem);}.dark-mode-toggle-button[data-size="dock"],.glass-dock .dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not( [data-size="control"] ){--dark-mode-toggle-size: var(--dock-control-size,var(--size-icon-btn));--dark-mode-toggle-padding: calc( ( var(--dock-control-size,var(--size-icon-btn)) - var(--dock-control-glyph-size,var(--dock-icon-glyph,1.25rem)) ) / 2 );}.toggle-sun,.toggle-circle{transform-origin: center;transition-property: transform;transition-duration: var(--spring-dock-duration);transition-timing-function: var(--spring-dock);}:where(.dark) .dark-mode-toggle-button .toggle-sun{transform: rotate(0.5turn);}:where(.dark) .dark-mode-toggle-button .toggle-circle{transform: translateX(-15%);}}@media (prefers-reduced-motion: reduce){.dark-mode-toggle-button,.dark-mode-toggle-button .toggle-sun,.dark-mode-toggle-button .toggle-circle{transition: none;}}
|
|
1
|
+
@layer components{.dark-mode-toggle-button{--dark-mode-toggle-size: 2.25rem;--dark-mode-toggle-padding: 0.375rem;appearance: none;display: inline-grid;place-items: center;flex: none;width: var(--dark-mode-toggle-size);height: var(--dark-mode-toggle-size);padding: var(--dark-mode-toggle-padding);border: 0;border-radius: var(--radius-pill);color: var(--foreground);background: transparent;opacity: 0.8;cursor: pointer;transition: opacity var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);}.dark-mode-toggle-button:hover{background: var(--surface-tint-10);opacity: 1;}.dark-mode-toggle-button:focus-visible{outline: none;box-shadow: var(--focus-ring-shadow,var(--dock-ring));opacity: 1;}.dark-mode-toggle-button > svg{display: block;width: 100%;height: 100%;fill: currentColor;}.dark-mode-toggle-button[data-size="sm"]{--dark-mode-toggle-size: 1.75rem;--dark-mode-toggle-padding: 0.25rem;}.dark-mode-toggle-button[data-size="lg"]{--dark-mode-toggle-size: 2.75rem;--dark-mode-toggle-padding: 0.5rem;}.dark-mode-toggle-button[data-size="control"]{--dark-mode-toggle-size: var(--control-size,2.25rem);--dark-mode-toggle-padding: var(--control-icon-padding,0.375rem);}.dark-mode-toggle-button[data-size="dock"],.glass-dock .dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not( [data-size="control"] ){--dark-mode-toggle-size: var(--dock-control-size,var(--size-icon-btn));--dark-mode-toggle-padding: calc( ( var(--dock-control-size,var(--size-icon-btn)) - var(--dock-control-glyph-size,var(--dock-icon-glyph,1.25rem)) ) / 2 );}.toggle-sun,.toggle-circle{transform-origin: center;transition-property: transform;transition-duration: var(--spring-dock-duration);transition-timing-function: var(--spring-dock);}:where(.dark) .dark-mode-toggle-button .toggle-sun{transform: rotate(0.5turn);}:where(.dark) .dark-mode-toggle-button .toggle-circle{transform: translateX(-15%);}}@layer components{@media (prefers-reduced-motion: reduce){.dark-mode-toggle-button,.dark-mode-toggle-button .toggle-sun,.dark-mode-toggle-button .toggle-circle{transition: none;}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{[data-deck-capture="export"] .deck-stage{--deck-export-inline: 1280px;--deck-export-block: 720px;position: relative;inset: auto;margin: 0;aspect-ratio: auto;inline-size: var(--deck-export-inline);block-size: var(--deck-export-block);max-inline-size: none;max-block-size: none;border-radius: 0;}[data-deck-capture="export"] .deck-slide{border-radius: 0;box-shadow: none;}[data-deck-capture="export"] .deck-ground,[data-deck-capture="freeze"] .deck-ground,[data-deck-capture="export"] .deck-slide,[data-deck-capture="freeze"] .deck-slide{transition: none !important;animation: none !important;}[data-deck-capture="export"] .deck-slide[data-state="active"],[data-deck-capture="freeze"] .deck-slide[data-state="active"]{--turn-x: 0px !important;--turn-s: 1 !important;--turn-r: 0deg !important;}[data-deck-capture="export"] .deck-slide::before,[data-deck-capture="export"] .deck-slide::after,[data-deck-capture="freeze"] .deck-slide::before,[data-deck-capture="freeze"] .deck-slide::after{opacity: 0 !important;animation: none !important;}[data-deck-capture="export"] [data-reveal],[data-deck-capture="freeze"] [data-reveal],[data-deck-capture="print"] [data-reveal]{opacity: 1 !important;animation: none !important;}[data-deck-capture="print"] .deck-stage{position: static;display: block;aspect-ratio: auto;inline-size: auto;block-size: auto;overflow: visible;}[data-deck-capture="print"] .deck-strip{display: block;overflow: visible;perspective: none;}[data-deck-capture="print"] .deck-ground{display: none;}[data-deck-capture="print"] .deck-slide{position: relative;opacity: 1 !important;visibility: visible !important;transform: none !important;pointer-events: auto;margin-block: var(--space-family);background: var(--background);}[data-deck-capture="print"] .deck-slide::before,[data-deck-capture="print"] .deck-slide::after{opacity: 0 !important;}}@media print{@page{size: 1280px 720px;margin: 0;}html,body{overflow: visible !important;margin: 0 !important;padding: 0 !important;print-color-adjust: exact;-webkit-print-color-adjust: exact;}html,body,#app{block-size: auto !important;min-block-size: 0 !important;}.deck-stage{position: static !important;display: block !important;aspect-ratio: auto !important;inline-size: auto !important;block-size: auto !important;overflow: visible !important;}.deck-strip{display: block !important;overflow: visible !important;perspective: none !important;}.deck-ground{display: none !important;}.deck-slide{position: relative !important;opacity: 1 !important;visibility: visible !important;transform: none !important;box-shadow: none !important;border-radius: 0 !important;margin: 0 !important;block-size: 719px !important;overflow: hidden !important;background: var(--background) !important;}.deck-slide::before,.deck-slide::after{opacity: 0 !important;}.deck-slide:not(:last-child){break-after: page;}.deck-stage .sr-only{display: none !important;}}
|
|
1
|
+
@layer components{[data-deck-capture="export"] .deck-stage{--deck-export-inline: 1280px;--deck-export-block: 720px;position: relative;inset: auto;margin: 0;aspect-ratio: auto;inline-size: var(--deck-export-inline);block-size: var(--deck-export-block);max-inline-size: none;max-block-size: none;border-radius: 0;}[data-deck-capture="export"] .deck-slide{border-radius: 0;box-shadow: none;}[data-deck-capture="export"] .deck-ground,[data-deck-capture="freeze"] .deck-ground,[data-deck-capture="export"] .deck-slide,[data-deck-capture="freeze"] .deck-slide{transition: none !important;animation: none !important;}[data-deck-capture="export"] .deck-slide[data-state="active"],[data-deck-capture="freeze"] .deck-slide[data-state="active"]{--turn-x: 0px !important;--turn-s: 1 !important;--turn-r: 0deg !important;}[data-deck-capture="export"] .deck-slide::before,[data-deck-capture="export"] .deck-slide::after,[data-deck-capture="freeze"] .deck-slide::before,[data-deck-capture="freeze"] .deck-slide::after{opacity: 0 !important;animation: none !important;}[data-deck-capture="export"] [data-reveal],[data-deck-capture="freeze"] [data-reveal],[data-deck-capture="print"] [data-reveal]{opacity: 1 !important;animation: none !important;}[data-deck-capture="print"] .deck-stage{position: static;display: block;aspect-ratio: auto;inline-size: auto;block-size: auto;overflow: visible;}[data-deck-capture="print"] .deck-strip{display: block;overflow: visible;perspective: none;}[data-deck-capture="print"] .deck-ground{display: none;}[data-deck-capture="print"] .deck-slide{position: relative;opacity: 1 !important;visibility: visible !important;transform: none !important;pointer-events: auto;margin-block: var(--space-family);background: var(--background);}[data-deck-capture="print"] .deck-slide::before,[data-deck-capture="print"] .deck-slide::after{opacity: 0 !important;}}@layer components{@media print{@page{size: 1280px 720px;margin: 0;}html,body{overflow: visible !important;margin: 0 !important;padding: 0 !important;print-color-adjust: exact;-webkit-print-color-adjust: exact;}html,body,#app{block-size: auto !important;min-block-size: 0 !important;}.deck-stage{position: static !important;display: block !important;aspect-ratio: auto !important;inline-size: auto !important;block-size: auto !important;overflow: visible !important;}.deck-strip{display: block !important;overflow: visible !important;perspective: none !important;}.deck-ground{display: none !important;}.deck-slide{position: relative !important;opacity: 1 !important;visibility: visible !important;transform: none !important;box-shadow: none !important;border-radius: 0 !important;margin: 0 !important;block-size: 719px !important;overflow: hidden !important;background: var(--background) !important;}.deck-slide::before,.deck-slide::after{opacity: 0 !important;}.deck-slide:not(:last-child){break-after: page;}.deck-stage .sr-only{display: none !important;}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:where([data-slot="dialog-content"]){border-radius: var(--radius-3xl);display: grid;gap: var(--space-body);inline-size: min(100% - 2 * var(--space-section),32rem);padding-inline: var(--space-family);padding-block: var(--space-family);translate: -50% -50%;}:where([data-slot="dialog-header"]){display: flex;flex-direction: column;gap: var(--space-atom);text-align: start;}:where([data-slot="dialog-content"]:has([data-slot="dialog-close"])) :where([data-slot="dialog-header"]){padding-inline-end: calc(var(--touch-target) + var(--space-atom));}:where([data-slot="dialog-title"]){font-size: calc(var(--type-body) * 1.272);line-height: var(--type-leading-body);letter-spacing: var(--type-tracking-tight);}:where([data-slot="dialog-description"]){font-size: var(--type-body);line-height: var(--type-leading-body);color: var(--foreground);}:where([data-slot="dialog-footer"]){display: flex;flex-direction: row;justify-content: flex-end;gap: var(--space-body);}:where([data-slot="dialog-close"]){position: absolute;inset-block-start: var(--space-family);inset-inline-end: var(--space-family);display: inline-flex;align-items: center;justify-content: center;inline-size: var(--touch-target);block-size: var(--touch-target);border-radius: var(--radius-pill);color: var(--foreground);cursor: pointer;isolation: isolate;}:where([data-slot="dialog-close"])::before{content: "";position: absolute;inset: 0;z-index: -1;border-radius: inherit;background: transparent;transition: background-color var(--spring-press-duration) var(--spring-press),scale var(--spring-press-duration) var(--spring-press);}@media (hover: hover){:where([data-slot="dialog-close"]):hover::before{background: color-mix(in oklab,var(--foreground) 5%,transparent);scale: var(--scale-hover);}}:where([data-slot="dialog-close"]):active::before{background: color-mix(in oklab,var(--foreground) 12%,transparent);scale: var(--scale-press);}:where([data-slot="dialog-close"]):focus-visible{outline: 2px solid color-mix(in oklab,var(--foreground) 48%,transparent);outline-offset: 2px;}@property --rebuff-x{syntax: "<length>";inherits: false;initial-value: 0px;}@keyframes glass-dialog-rebuff-a{0%{--rebuff-x: 0px;}22%{--rebuff-x: -4px;}48%{--rebuff-x: 3px;}72%{--rebuff-x: -1.6px;}88%{--rebuff-x: 0.6px;}100%{--rebuff-x: 0px;}}@keyframes glass-dialog-rebuff-b{0%{--rebuff-x: 0px;}22%{--rebuff-x: -4px;}48%{--rebuff-x: 3px;}72%{--rebuff-x: -1.6px;}88%{--rebuff-x: 0.6px;}100%{--rebuff-x: 0px;}}:where([data-slot="dialog-content"][data-rebuff]){translate: calc(-50% + var(--rebuff-x)) -50%;}:where([data-slot="dialog-content"][data-rebuff="a"]){animation: glass-dialog-rebuff-a var(--spring-press-duration) var(--spring-press);}:where([data-slot="dialog-content"][data-rebuff="b"]){animation: glass-dialog-rebuff-b var(--spring-press-duration) var(--spring-press);}@keyframes glass-dialog-rebuff-flash{0%,100%{outline-color: transparent;}50%{outline-color: color-mix(in oklab,var(--foreground) 48%,transparent);}}@media (prefers-reduced-motion: reduce){:where([data-slot="dialog-content"][data-rebuff]){outline: 2px solid transparent;outline-offset: 0;animation: glass-dialog-rebuff-flash var(--spring-press-duration) linear;}}
|
|
1
|
+
@layer components{:where([data-slot="dialog-content"]){border-radius: var(--radius-3xl);display: grid;gap: var(--space-body);inline-size: min(100% - 2 * var(--space-section),32rem);padding-inline: var(--space-family);padding-block: var(--space-family);translate: -50% -50%;}:where([data-slot="dialog-header"]){display: flex;flex-direction: column;gap: var(--space-atom);text-align: start;}:where([data-slot="dialog-content"]:has([data-slot="dialog-close"])) :where([data-slot="dialog-header"]){padding-inline-end: calc(var(--touch-target) + var(--space-atom));}:where([data-slot="dialog-title"]){font-size: calc(var(--type-body) * 1.272);line-height: var(--type-leading-body);letter-spacing: var(--type-tracking-tight);}:where([data-slot="dialog-description"]){font-size: var(--type-body);line-height: var(--type-leading-body);color: var(--foreground);}:where([data-slot="dialog-footer"]){display: flex;flex-direction: row;justify-content: flex-end;gap: var(--space-body);}:where([data-slot="dialog-close"]){position: absolute;inset-block-start: var(--space-family);inset-inline-end: var(--space-family);display: inline-flex;align-items: center;justify-content: center;inline-size: var(--touch-target);block-size: var(--touch-target);border-radius: var(--radius-pill);color: var(--foreground);cursor: pointer;isolation: isolate;}:where([data-slot="dialog-close"])::before{content: "";position: absolute;inset: 0;z-index: -1;border-radius: inherit;background: transparent;transition: background-color var(--spring-press-duration) var(--spring-press),scale var(--spring-press-duration) var(--spring-press);}@media (hover: hover){:where([data-slot="dialog-close"]):hover::before{background: color-mix(in oklab,var(--foreground) 5%,transparent);scale: var(--scale-hover);}}:where([data-slot="dialog-close"]):active::before{background: color-mix(in oklab,var(--foreground) 12%,transparent);scale: var(--scale-press);}:where([data-slot="dialog-close"]):focus-visible{outline: 2px solid color-mix(in oklab,var(--foreground) 48%,transparent);outline-offset: 2px;}}@property --rebuff-x{syntax: "<length>";inherits: false;initial-value: 0px;}@keyframes glass-dialog-rebuff-a{0%{--rebuff-x: 0px;}22%{--rebuff-x: -4px;}48%{--rebuff-x: 3px;}72%{--rebuff-x: -1.6px;}88%{--rebuff-x: 0.6px;}100%{--rebuff-x: 0px;}}@keyframes glass-dialog-rebuff-b{0%{--rebuff-x: 0px;}22%{--rebuff-x: -4px;}48%{--rebuff-x: 3px;}72%{--rebuff-x: -1.6px;}88%{--rebuff-x: 0.6px;}100%{--rebuff-x: 0px;}}@layer components{:where([data-slot="dialog-content"][data-rebuff]){translate: calc(-50% + var(--rebuff-x)) -50%;}:where([data-slot="dialog-content"][data-rebuff="a"]){animation: glass-dialog-rebuff-a var(--spring-press-duration) var(--spring-press);}:where([data-slot="dialog-content"][data-rebuff="b"]){animation: glass-dialog-rebuff-b var(--spring-press-duration) var(--spring-press);}}@keyframes glass-dialog-rebuff-flash{0%,100%{outline-color: transparent;}50%{outline-color: color-mix(in oklab,var(--foreground) 48%,transparent);}}@layer components{@media (prefers-reduced-motion: reduce){:where([data-slot="dialog-content"][data-rebuff]){outline: 2px solid transparent;outline-offset: 0;animation: glass-dialog-rebuff-flash var(--spring-press-duration) linear;}}}
|
|
@@ -52,5 +52,3 @@ export declare const DOCK_CROSSFADE_KEY: import("vue").InjectionKey<DockCrossfad
|
|
|
52
52
|
export declare function provideDockCrossfadeContext(context: DockCrossfadeContext): void;
|
|
53
53
|
/** Strict — throws when used outside `<DockCrossfade>`. */
|
|
54
54
|
export declare const useDockCrossfadeContext: () => DockCrossfadeContext;
|
|
55
|
-
/** Befitting silent default; reserved for future consumers. */
|
|
56
|
-
export declare const useOptionalDockCrossfadeContext: () => DockCrossfadeContext | null;
|
|
@@ -6,5 +6,5 @@ export { useDockHold } from "./useDockHold.js";
|
|
|
6
6
|
export type { UseDockHoldOptions, UseDockHoldReturn } from "./useDockHold.js";
|
|
7
7
|
export { isTeleportedTarget } from "../../_shared/overlay/isTeleportedTarget.js";
|
|
8
8
|
export { provideDockContext, useDockContext, useOptionalDockContext, DOCK_CONTEXT_KEY, type DockContext, type DockOrientation, } from "./dockContext.js";
|
|
9
|
-
export { provideDockCrossfadeContext, useDockCrossfadeContext,
|
|
9
|
+
export { provideDockCrossfadeContext, useDockCrossfadeContext, DOCK_CROSSFADE_KEY, type DockFaceDescriptor, type DockFaceRegistration, type DockCrossfadeContext, } from "./dockCrossfadeContext.js";
|
|
10
10
|
export { useDockMorphOrchestrator, type UseDockMorphOrchestratorOptions, type UseDockMorphOrchestratorReturn, } from "./useDockMorph.js";
|
|
@@ -16,18 +16,22 @@ import type { Ref } from "vue";
|
|
|
16
16
|
* STANDALONE control engages on its own drag and a control inside a dock does NOT
|
|
17
17
|
* co-engage off a sibling's hold.
|
|
18
18
|
*
|
|
19
|
-
* Why NATIVE host listeners (not a Vue `@pointerdown` template binding)
|
|
20
|
-
* reka-ui's `<SliderRoot>` is a
|
|
21
|
-
*
|
|
22
|
-
* `
|
|
23
|
-
* (`
|
|
24
|
-
* `@pointerdown` arrives
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
19
|
+
* Why NATIVE host listeners (not a Vue `@pointerdown` template binding) — and NOT
|
|
20
|
+
* because the binding would be lost. reka-ui's `<SliderRoot>` is a forwarding
|
|
21
|
+
* component and does set `inheritAttrs: false` (`SliderRoot.js:17`), but it re-merges
|
|
22
|
+
* `$attrs` by hand on the way out — `mergeProps(_ctx.$attrs, { … onPointerdown })`
|
|
23
|
+
* (`:149`) — and `mergeProps` CHAINS `onX` handlers rather than overwriting them, so a
|
|
24
|
+
* consumer `@pointerdown` arrives and runs. Measured at our pin and at the consumer's:
|
|
25
|
+
* the merged order is reka's slide start, reka's update, then the consumer — LAST,
|
|
26
|
+
* which is the one real limit (it cannot `preventDefault` ahead of the slide).
|
|
27
|
+
* `tests/components/ui/slider/attrs-pointerdown-channel.test.ts` holds the arrival as a
|
|
28
|
+
* standing arm; the order was measured at the seat and is not asserted there.
|
|
29
|
+
*
|
|
30
|
+
* The native listeners are taken for three reasons that do hold: `pointerdown` AND
|
|
31
|
+
* `touchstart` fold onto ONE acquire under one owner; the release is window-scoped and
|
|
32
|
+
* so survives reka's `setPointerCapture` retarget; and the acquire is
|
|
33
|
+
* capture-independent, which is what makes it instant-on. A Reka `dragging`-ref
|
|
34
|
+
* subscription serves none of the three and is not publicly exposed.
|
|
31
35
|
*
|
|
32
36
|
* The hold is INSTANT-ON (Apple "Building Fluid Interfaces", facet 5): the first
|
|
33
37
|
* line `keepOpen()` is capture-independent and synchronous, so the halo +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{:where(.glass-dock,.dock-layer-group) .dock-layers{display: grid;min-width: 0;}.glass-dock[data-morphing]{--dock-live: calc( var(--dock-collapsed-px,var(--dock-expanded-px,0px)) + ( var(--dock-expanded-px,0px) - var(--dock-collapsed-px,var(--dock-expanded-px,0px)) ) * clamp(0,var(--dock-expand-t),1) );--dock-size-scale: clamp( 0.06,calc(var(--dock-live) / max(var(--dock-expanded-px,1px),1px)),1 );transform-origin: center center;will-change: transform;}.glass-dock[data-morphing]:not(.vertical){inline-size: var(--dock-expanded-px);}.glass-dock[data-morphing].vertical{block-size: var(--dock-expanded-px);}.glass-dock.expanded > .dock-controls > .dock-layers{overflow-x: visible;}:where(.glass-dock,.dock-layer-group) .dock-layer{transition: visibility 0s linear var(--duration-normal);}:where(.glass-dock,.dock-layer-group) .dock-layer:not(.is-active):not(.is-leaving){opacity: 0;visibility: hidden;pointer-events: none;}:where(.glass-dock,.dock-layer-group) .dock-layer.is-active{opacity: 1;visibility: visible;pointer-events: auto;transition: visibility 0s;}:where(.glass-dock,.dock-layer-group) .dock-layer.is-leaving{opacity: 0;visibility: visible;pointer-events: none;}.glass-dock[data-morphing] .dock-layer.is-leaving{opacity: calc(1 - var(--dock-morph-t));}.glass-dock .dock-layer.is-leaving.is-press-keepalive{opacity: 1;visibility: visible;pointer-events: none;}.glass-dock .dock-layer.is-leaving.is-press-keepalive [inert]{visibility: hidden;}.glass-dock .dock-layer.is-leaving.is-press-keepalive [data-dock-press-origin]{position: relative;z-index: 1;pointer-events: auto;}:where(.glass-dock,.dock-layer-group) .dock-layer{display: flex;align-items: center;grid-area: 1 / 1;gap: var(--dock-layer-gap,0.375rem);}.glass-dock:not(.vertical) .dock-layer{white-space: nowrap;min-height: var(--dock-layer-height,2.5rem);}:where(.glass-dock,.dock-layer-group) .dock-layer.is-active{position: relative;}:where(.glass-dock,.dock-layer-group) .dock-layer:not(.is-active){position: absolute;inset: 0;}.glass-dock[data-morphing] .dock-layer.is-active > *{--dock-stagger-window: var(--dock-stagger-window-size,0.55);--dock-stagger-onset: 0;--child-reveal: clamp( 0,calc( (var(--dock-expand-t) - var(--dock-stagger-onset)) / var(--dock-stagger-window) ),1 );opacity: var(--child-reveal);scale: calc(0.82 + 0.18 * var(--child-reveal));transform-origin: center;}.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(2 of
|
|
1
|
+
@layer components{:where(.glass-dock,.dock-layer-group) .dock-layers{display: grid;min-width: 0;}.glass-dock[data-morphing]{--dock-live: calc( var(--dock-collapsed-px,var(--dock-expanded-px,0px)) + ( var(--dock-expanded-px,0px) - var(--dock-collapsed-px,var(--dock-expanded-px,0px)) ) * clamp(0,var(--dock-expand-t),1) );--dock-size-scale: clamp( 0.06,calc(var(--dock-live) / max(var(--dock-expanded-px,1px),1px)),1 );transform-origin: center center;will-change: transform;}.glass-dock[data-morphing]:not(.vertical){inline-size: var(--dock-expanded-px);}.glass-dock[data-morphing].vertical{block-size: var(--dock-expanded-px);}.glass-dock.expanded > .dock-controls > .dock-layers{overflow-x: visible;}:where(.glass-dock,.dock-layer-group) .dock-layer{transition: visibility 0s linear var(--duration-normal);}:where(.glass-dock,.dock-layer-group) .dock-layer:not(.is-active):not(.is-leaving){opacity: 0;visibility: hidden;pointer-events: none;}:where(.glass-dock,.dock-layer-group) .dock-layer.is-active{opacity: 1;visibility: visible;pointer-events: auto;transition: visibility 0s;}:where(.glass-dock,.dock-layer-group) .dock-layer.is-leaving{opacity: 0;visibility: visible;pointer-events: none;}.glass-dock[data-morphing] .dock-layer.is-leaving{opacity: calc(1 - var(--dock-morph-t));}.glass-dock .dock-layer.is-leaving.is-press-keepalive{opacity: 1;visibility: visible;pointer-events: none;}.glass-dock .dock-layer.is-leaving.is-press-keepalive [inert]{visibility: hidden;}.glass-dock .dock-layer.is-leaving.is-press-keepalive [data-dock-press-origin]{position: relative;z-index: 1;pointer-events: auto;}:where(.glass-dock,.dock-layer-group) .dock-layer{display: flex;align-items: center;grid-area: 1 / 1;gap: var(--dock-layer-gap,0.375rem);}.glass-dock:not(.vertical) .dock-layer{white-space: nowrap;min-height: var(--dock-layer-height,2.5rem);}:where(.glass-dock,.dock-layer-group) .dock-layer.is-active{position: relative;}:where(.glass-dock,.dock-layer-group) .dock-layer:not(.is-active){position: absolute;inset: 0;}.glass-dock[data-morphing] .dock-layer.is-active > *{--dock-stagger-window: var(--dock-stagger-window-size,0.55);--dock-stagger-onset: 0;--child-reveal: clamp( 0,calc( (var(--dock-expand-t) - var(--dock-stagger-onset)) / var(--dock-stagger-window) ),1 );opacity: var(--child-reveal);scale: calc(0.82 + 0.18 * var(--child-reveal));transform-origin: center;}.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(2 of :not(.dock-separator)):nth-last-child(n + 2 of :not(.dock-separator)),.glass-dock[data-morphing] .dock-layer.is-active > *:nth-last-child(2 of :not(.dock-separator)):nth-child(n + 2 of :not(.dock-separator)){--dock-stagger-onset: calc(var(--dock-stagger-step) * 1);}.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(3 of :not(.dock-separator)):nth-last-child(n + 3 of :not(.dock-separator)),.glass-dock[data-morphing] .dock-layer.is-active > *:nth-last-child(3 of :not(.dock-separator)):nth-child(n + 3 of :not(.dock-separator)){--dock-stagger-onset: calc(var(--dock-stagger-step) * 2);}.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(n + 4 of :not(.dock-separator)):nth-last-child(n + 4 of :not(.dock-separator)){--dock-stagger-onset: calc(var(--dock-stagger-step) * 3);}.glass-dock.expanded:not(.fit-content):not([data-morphing]) .dock-layers{width: 100%;}.glass-dock.expanded:not(.fit-content) .dock-layer--full{width: 100%;}.glass-dock.always-expanded{cursor: default;}}
|
|
@@ -37,7 +37,7 @@ type __VLS_Props = {
|
|
|
37
37
|
interactive?: boolean;
|
|
38
38
|
};
|
|
39
39
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
40
|
-
backend: () => import("../../
|
|
40
|
+
backend: () => import("../../index.js").GpuBackend;
|
|
41
41
|
pause: () => void;
|
|
42
42
|
resume: () => void;
|
|
43
43
|
wake: () => void;
|