@mkbabb/glass-ui 10.0.1 → 10.1.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.
Files changed (44) hide show
  1. package/MIGRATION.md +25 -0
  2. package/dist/aurora.js +29 -29
  3. package/dist/{command-C-5xSEJ2.js → command-CTQCaHVA.js} +1 -1
  4. package/dist/command.js +1 -1
  5. package/dist/components/_shared/overlay/participation.d.ts +13 -1
  6. package/dist/components/configurator/Configurator.vue.d.ts +20 -0
  7. package/dist/components/configurator/ConfiguratorLayer.vue.d.ts +12 -2
  8. package/dist/components/configurator/index.d.ts +1 -1
  9. package/dist/components/configurator/styles.css +1 -1
  10. package/dist/components/dock/GlassDock.vue.d.ts +5 -5
  11. package/dist/components/dock/composables/dockContext.d.ts +16 -2
  12. package/dist/components/sheet/styles.css +1 -1
  13. package/dist/components/skeleton/Skeleton.vue.d.ts +6 -0
  14. package/dist/{configurator-DiwVN573.js → configurator-CPxIo3q2.js} +85 -71
  15. package/dist/configurator.js +1 -1
  16. package/dist/content-BhcJH1bI.js +22 -0
  17. package/dist/data-table-Cs93-uY7.js +511 -0
  18. package/dist/data-table.js +1 -1
  19. package/dist/dock.js +417 -409
  20. package/dist/easing.js +3 -3
  21. package/dist/glass-ui.css +1 -1
  22. package/dist/glass-ui.js +9 -9
  23. package/dist/index.d.ts +1 -1
  24. package/dist/labeled-field.js +1 -1
  25. package/dist/{menu-BnmCOa3y.js → menu-DN29N6KR.js} +6 -3
  26. package/dist/menu.js +1 -1
  27. package/dist/motion-core.js +11 -11
  28. package/dist/participation-Cs_UX_Dc.js +55 -0
  29. package/dist/{popover-DA87hFBx.js → popover-CJpvT2E6.js} +9 -4
  30. package/dist/popover.js +1 -1
  31. package/dist/{select-fy3vtArm.js → select-5QMeUAU6.js} +26 -24
  32. package/dist/select.js +1 -1
  33. package/dist/{sheet-BQJyER59.js → sheet-DmJxgAHc.js} +1 -1
  34. package/dist/sheet.js +1 -1
  35. package/dist/{slider-5ChjjWSR.js → slider-D1zkobtO.js} +1 -1
  36. package/dist/slider.js +1 -1
  37. package/dist/{tabs-rdRXKXxd.js → tabs-C0PYq3Tb.js} +1 -1
  38. package/dist/tabs.js +1 -1
  39. package/dist/{tooltip-DhTHhtJN.js → tooltip-D7j6TsE4.js} +3 -3
  40. package/dist/tooltip.js +1 -1
  41. package/package.json +1 -1
  42. package/dist/content-So3j6SOe.js +0 -18
  43. package/dist/data-table-Ba_uTfPc.js +0 -493
  44. package/dist/participation-Di4UHbzk.js +0 -42
package/MIGRATION.md CHANGED
@@ -5,6 +5,31 @@ records the breaking changes that landed in that cut, newest first. Clean breaks
5
5
  — no legacy aliases, no back-compat shims (L invariant 4); every break is a one-line
6
6
  rename or import re-point per call site.
7
7
 
8
+ ## 10.1.1
9
+
10
+ One type-level change, below; no runtime break. Behaviour a consumer may notice:
11
+
12
+ - **`DockContext` gains a required `expanded: ComputedRef<boolean>`.** The dock's posture,
13
+ whose falling edge closes the overlays its seats opened. A consumer that calls the
14
+ exported `provideDockContext` itself (none of the sibling repos does) passes it. A
15
+ `GlassDock` provides it; nothing changes for a consumer that only reads the context.
16
+ - **A dock collapse closes the menus, popovers and selects its seats opened, and focus
17
+ that stood in them moves to the dock's summary.** The seats are the default slot's; an
18
+ overlay opened from `#persistent` or `#persistent-end` stays open, since its trigger is
19
+ still there. A consumer that closed them by hand on collapse can delete that code. To keep the dock open while an overlay is up, use the
20
+ existing `keepDockOpen` (Popover) or `keepOpen`/`release`.
21
+ - **The dock run no longer roves a seat that holds controls.** A container seat (a `div`
22
+ holding a ToggleGroup, a slider, a band of buttons) and a composite root seated directly
23
+ (a RadioGroup) keep their own tab order and their own arrow keys. Arrows travel only the
24
+ seats that are controls. Nothing to change unless a consumer relied on the run focusing
25
+ a container's first control.
26
+ - **Overlay content takes its z rung from its role.** `DropdownMenuContent` and
27
+ `DropdownMenuSubContent` now paint at `--z-popover`. A consumer that added `z-popover` (or
28
+ any z class) through `class` keeps its class: the consumer class merges last.
29
+ - **`SheetContent` carries the `fixed` utility.** Sheets that rendered in page flow now
30
+ open at their edge. A consumer override that positioned the sheet itself can be deleted.
31
+ - **New:** `<Skeleton shimmer>`.
32
+
8
33
  ## 10.0.0 — ~~UNRELEASED~~ [2026-09-22 · LIVE: tag `v10.0.0` at `dcb0f711`, published with provenance by `release.yml` run 35804200390 attempt 1, `latest` on the registry, unpacked 2,915,902 B = the ratchet datum]
9
34
 
10
35
  **Status.** `package.json` declares ~~`9.0.0`~~ `10.0.0` [2026-09-22 · at the cut, `58f0d243`]
package/dist/aurora.js CHANGED
@@ -1,8 +1,8 @@
1
- import { t as e } from "./_plugin-vue_export-helper-B3ysoDQm.js";
2
- import { t } from "./usePointerVelocityField-Lx26_Yap.js";
3
- import { a as n, c as r } from "./pointerFieldMappings-DXwlU5uj.js";
4
- import { t as i } from "./useScrollProgress-Bq-KPaKM.js";
5
- import { t as a } from "./useIntersectionPause-CzKR3EyP.js";
1
+ import { t as e } from "./useIntersectionPause-CzKR3EyP.js";
2
+ import { t } from "./_plugin-vue_export-helper-B3ysoDQm.js";
3
+ import { t as n } from "./usePointerVelocityField-Lx26_Yap.js";
4
+ import { a as r, c as i } from "./pointerFieldMappings-DXwlU5uj.js";
5
+ import { t as a } from "./useScrollProgress-Bq-KPaKM.js";
6
6
  import { t as o } from "./value-DMhh2R94.js";
7
7
  import { cssToOklch as s, deriveHue as c, gamutMapStop as l, oklchStopToHex as u, oklchToLinear as d, warmCatchLight as f } from "./color.js";
8
8
  import { a as p, c as m, i as h, l as g, n as _, o as v, r as y, s as b, t as x } from "./color.glsl-DTJhdekG.js";
@@ -724,13 +724,13 @@ var Ie = 8, Le = 8, Re = 1, ze = .115, Be = .004, Ve = .06, z = {
724
724
  saturation: .92,
725
725
  paperGrain: .008
726
726
  }, B = .001, Ue = 1e-4;
727
- function V(e, t, i) {
728
- let a = r(e);
729
- if (i > 0) {
727
+ function V(e, t, n) {
728
+ let a = i(e);
729
+ if (n > 0) {
730
730
  let t = e.acceleration.value, n = e.velocity.value, r = -(t.x * n.x + t.y * n.y);
731
731
  r > 0 && (a.burst = Math.min(1, a.burst + r * 3));
732
732
  }
733
- let o = n(a, t);
733
+ let o = r(a, t);
734
734
  return {
735
735
  x: o.cx,
736
736
  y: o.cy,
@@ -2324,12 +2324,12 @@ var Bt = 3.7;
2324
2324
  function Vt(e, t, n, r) {
2325
2325
  return r ? Bt : e.interactivity?.scroll === !0 ? t + Math.min(1, Math.max(0, n)) * e.breathPeriod : t;
2326
2326
  }
2327
- function Ht(e, n, r = {}) {
2327
+ function Ht(e, t, r = {}) {
2328
2328
  let i = Lt(r), a = Rt(r.mode), o = e.style.opacity, s = (t) => {
2329
2329
  a.opaque && (e.style.opacity = String(zt(t)));
2330
2330
  };
2331
- s(n.alpha);
2332
- let c = !r.forceWebGLUnderSoftwareRaster && F(), l = n, u = 0, d = t({
2331
+ s(t.alpha);
2332
+ let c = !r.forceWebGLUnderSoftwareRaster && F(), l = t, u = 0, d = n({
2333
2333
  mass: 1,
2334
2334
  damping: .9,
2335
2335
  attractorResponse: .28,
@@ -2463,8 +2463,8 @@ function Gt(e) {
2463
2463
  r = !0, cancelAnimationFrame(t), n !== void 0 && clearTimeout(n);
2464
2464
  };
2465
2465
  }
2466
- function Kt(e, t, n = {}, r = {}) {
2467
- let o = Ut(t), s = r.renderMode === "css", c = null, l = null, u = null, d = null, f = null, p = null, m = !1, h = M(!1), g = M(!1), _ = 0, v = 0, y = !1;
2466
+ function Kt(t, n, r = {}, i = {}) {
2467
+ let o = Ut(n), s = i.renderMode === "css", c = null, l = null, u = null, d = null, f = null, p = null, m = !1, h = M(!1), g = M(!1), _ = 0, v = 0, y = !1;
2468
2468
  function b() {
2469
2469
  if (g.value = !1, typeof requestAnimationFrame != "function" || (v = performance.now() + 500, _ !== 0)) return;
2470
2470
  let e = (t) => {
@@ -2479,16 +2479,16 @@ function Kt(e, t, n = {}, r = {}) {
2479
2479
  function x() {
2480
2480
  _ !== 0 && cancelAnimationFrame(_), _ = 0, g.value = !1;
2481
2481
  }
2482
- let S = ue(s ? ee() : O("webgl2")), C = i({
2483
- target: e,
2482
+ let S = ue(s ? ee() : O("webgl2")), C = a({
2483
+ target: t,
2484
2484
  trackExit: !0,
2485
2485
  enabled: k(() => !s && o().interactivity?.scroll === !0)
2486
2486
  });
2487
2487
  d = P(C, (e) => c?.setScrollProgress(e), { flush: "sync" });
2488
- let w = n.mode === "capture" || n.initStrategy === "eager";
2488
+ let w = r.mode === "capture" || r.initStrategy === "eager";
2489
2489
  function T(e) {
2490
2490
  let t = e instanceof Error ? e : Error(String(e));
2491
- S.value = te(S.value.engine, S.value.adapter, t), n.onInitError?.(t);
2491
+ S.value = te(S.value.engine, S.value.adapter, t), r.onInitError?.(t);
2492
2492
  }
2493
2493
  async function E() {
2494
2494
  if (m || !c) return;
@@ -2505,15 +2505,15 @@ function Kt(e, t, n = {}, r = {}) {
2505
2505
  }, { deep: !0 }));
2506
2506
  }
2507
2507
  return ce(() => {
2508
- let t = e.value;
2509
- if (!t || s) return;
2508
+ let n = t.value;
2509
+ if (!n || s) return;
2510
2510
  try {
2511
- c = Ht(t, o(), {
2511
+ c = Ht(n, o(), {
2512
2512
  initStrategy: "deferred",
2513
- ...n,
2513
+ ...r,
2514
2514
  onRendererStatus: (e) => {
2515
- let t = e.phase === "ready", r = t && !h.value && y;
2516
- S.value = e, h.value = t, t ? r && b() : x(), n.onRendererStatus?.(e);
2515
+ let t = e.phase === "ready", n = t && !h.value && y;
2516
+ S.value = e, h.value = t, t ? n && b() : x(), r.onRendererStatus?.(e);
2517
2517
  }
2518
2518
  });
2519
2519
  } catch (e) {
@@ -2524,14 +2524,14 @@ function Kt(e, t, n = {}, r = {}) {
2524
2524
  E();
2525
2525
  return;
2526
2526
  }
2527
- p = a(e, {
2527
+ p = e(t, {
2528
2528
  pause: () => c?.pause("off-screen-io"),
2529
2529
  resume: () => c?.resume("off-screen-io")
2530
2530
  }, { pauseWhenHidden: !1 });
2531
- let r = p.isIntersecting;
2532
- u = P(r, (e) => {
2531
+ let i = p.isIntersecting;
2532
+ u = P(i, (e) => {
2533
2533
  !e || m || f || (f = Gt(() => {
2534
- f = null, r.value && E();
2534
+ f = null, i.value && E();
2535
2535
  }));
2536
2536
  }, { immediate: !0 });
2537
2537
  }), se(() => {
@@ -2709,7 +2709,7 @@ function tn(e, t) {
2709
2709
  }
2710
2710
  //#endregion
2711
2711
  //#region src/components/aurora/Aurora.vue?vue&type=script&setup=true&lang.ts
2712
- var nn = ["data-aurora-substrate", "data-aurora-settled"], rn = /*#__PURE__*/ e(/* @__PURE__ */ re({
2712
+ var nn = ["data-aurora-substrate", "data-aurora-settled"], rn = /*#__PURE__*/ t(/* @__PURE__ */ re({
2713
2713
  __name: "Aurora",
2714
2714
  props: {
2715
2715
  config: { default: () => z },
@@ -2,7 +2,7 @@ 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
4
  import { n as r, t as i } from "./DialogContent-CwIBvou_.js";
5
- import { t as a } from "./participation-Di4UHbzk.js";
5
+ import { t as a } from "./participation-Cs_UX_Dc.js";
6
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";
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-C-5xSEJ2.js";
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-CTQCaHVA.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 };
@@ -43,6 +43,9 @@ export declare function useHoldToken(target: () => HoldTarget | null | undefined
43
43
  export interface DockPortalAttrs {
44
44
  "data-glass-dock-portal"?: string;
45
45
  "data-glass-dock-owner"?: string;
46
+ /** Present when the overlay was opened from the dock's face: the collapse closes
47
+ * it, and the dock reads this to know focus inside it is about to lose its place. */
48
+ "data-glass-dock-face"?: string;
46
49
  }
47
50
  export interface DockParticipation {
48
51
  /** Spread onto the portalled content root. Empty outside a dock. */
@@ -53,7 +56,8 @@ export interface DockParticipation {
53
56
  release: () => void;
54
57
  }
55
58
  /**
56
- * Dock participation for a portalled overlay: the stamp, and the one token.
59
+ * Dock participation for a portalled overlay: the stamp, the one token, and the
60
+ * close on collapse.
57
61
  *
58
62
  * `hold` is the DECLARATIVE arm — pass a ref/getter that is true exactly while
59
63
  * the surface should pin the dock open and the token is driven for you. The
@@ -63,4 +67,12 @@ export interface DockParticipation {
63
67
  export declare function useDockParticipation(o?: {
64
68
  hold?: MaybeRefOrGetter<boolean>;
65
69
  kind?: DockHoldKind;
70
+ /**
71
+ * Close this overlay. Called on the dock's COLLAPSE edge, so a dropdown or
72
+ * popover a seat of the FACE opened never outlives the posture it was opened
73
+ * from. The collapse owns the close: the overlay states how it closes, the dock
74
+ * says when. Outside the face (a `#persistent` control, whose trigger stays
75
+ * painted and live when collapsed) and outside a dock it is never called.
76
+ */
77
+ close?: () => void;
66
78
  }): DockParticipation;
@@ -37,6 +37,20 @@ export type ConfiguratorAsideSide = "left" | "right";
37
37
  * configurator.css (never a dead JIT bracket — the lesson).
38
38
  */
39
39
  export type ConfiguratorGalleryPlacement = "aside" | "top";
40
+ /**
41
+ * How the studio's regions are surfaced.
42
+ *
43
+ * `attached` (default) is one instrument: the shell paints a single glass plate
44
+ * around the gallery, stage and aside, and the aside is divided from the stage by
45
+ * a hairline seam.
46
+ *
47
+ * `detached` paints NO shell plate, border or cast. The gallery, stage and aside are
48
+ * each their own glass surface (a floating card with its own border, cast and
49
+ * `--radius-card` corner), separated by the `--configurator-detached-gap` token, so
50
+ * the page ground shows between them. The size container, the fork, the scroll
51
+ * modes, the layers and the aside side are unchanged.
52
+ */
53
+ export type ConfiguratorLayout = "attached" | "detached";
40
54
  /**
41
55
  * Generic preset descriptor. Consumers pass `T` as the live config shape.
42
56
  * The primitive carries no preset semantics beyond `key + label` for
@@ -89,6 +103,12 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
89
103
  * precompiled `[data-gallery="top"]` rule in configurator.css.
90
104
  */
91
105
  galleryPlacement?: ConfiguratorGalleryPlacement;
106
+ /**
107
+ * How the regions are surfaced. Default `"attached"` (one shell plate).
108
+ * `"detached"` drops the shell plate; the gallery, stage and aside become
109
+ * separate glass cards over a token gap. See {@link ConfiguratorLayout}.
110
+ */
111
+ layout?: ConfiguratorLayout;
92
112
  /**
93
113
  * Aside width band at `lg`+ width, as a CSS length pair driving
94
114
  * `minmax(--configurator-aside-min, --configurator-aside-max)`. The
@@ -42,6 +42,11 @@ type __VLS_Props = {
42
42
  * flush). Default `false` keeps the body gap-only.
43
43
  */
44
44
  dividers?: boolean;
45
+ /**
46
+ * When the `#actions` header slot shows. `"open"` (default) shows it only
47
+ * while the layer is expanded; `"always"` keeps it in the collapsed header too.
48
+ */
49
+ actionsWhen?: "open" | "always";
45
50
  class?: HTMLAttributes["class"];
46
51
  /** Body wrapper class override. */
47
52
  bodyClass?: HTMLAttributes["class"];
@@ -50,9 +55,13 @@ type __VLS_ModelProps = {
50
55
  "open"?: boolean | undefined;
51
56
  };
52
57
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
53
- declare var __VLS_6: {};
58
+ declare var __VLS_6: {
59
+ open: boolean | undefined;
60
+ }, __VLS_8: {};
54
61
  type __VLS_Slots = {} & {
55
- default?: (props: typeof __VLS_6) => any;
62
+ actions?: (props: typeof __VLS_6) => any;
63
+ } & {
64
+ default?: (props: typeof __VLS_8) => any;
56
65
  };
57
66
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
58
67
  "update:open": (value: boolean | undefined) => any;
@@ -60,6 +69,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
60
69
  "onUpdate:open"?: ((value: boolean | undefined) => any) | undefined;
61
70
  }>, {
62
71
  defaultOpen: boolean;
72
+ actionsWhen: "open" | "always";
63
73
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
64
74
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
65
75
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,6 @@
1
1
  export { default as Configurator } from "./Configurator.vue.js";
2
2
  export { default as ConfiguratorLayer } from "./ConfiguratorLayer.vue.js";
3
3
  export { default as ConfiguratorRow } from "./ConfiguratorRow.vue.js";
4
- export type { ConfiguratorAsideSide, ConfiguratorGalleryPlacement, ConfiguratorPreset, ConfiguratorScrollMode, } from "./Configurator.vue.js";
4
+ export type { ConfiguratorAsideSide, ConfiguratorGalleryPlacement, ConfiguratorLayout, ConfiguratorPreset, ConfiguratorScrollMode, } from "./Configurator.vue.js";
5
5
  export { CONFIGURATOR_SIZE_KEY, provideConfiguratorSize, useOptionalConfiguratorSize, type ConfiguratorSize, } from "./size.js";
6
6
  export { useConfiguratorState, type ConfiguratorCloneMode, type ConfiguratorState, type ConfiguratorStateOptions, } from "./useConfiguratorState.js";
@@ -1 +1 @@
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
+ :root{--configurator-pad-inline: 1.25rem;--configurator-detached-gap: var(--space-body);}@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-header{display: grid;grid-template-columns: minmax(0,1fr) auto auto;align-items: center;}.configurator-layer-header > .configurator-layer-trigger{grid-row: 1;grid-column: 1 / -1;display: grid;grid-template-columns: subgrid;align-items: center;}.configurator-layer-trigger > .configurator-layer-heading{grid-column: 1;}.configurator-layer-trigger > .configurator-layer-chevron{grid-column: 3;margin-inline-start: var(--space-atom);}.configurator-layer-header > .configurator-layer-actions{grid-row: 1;grid-column: 2;margin-inline-start: var(--space-atom);position: relative;z-index: 1;}.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-layout="detached"]{gap: var(--configurator-detached-gap);}[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,15 +1,15 @@
1
1
  import { type DockProps } from "./composables/useDockShellProps.js";
2
- declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_9: {};
2
+ declare var __VLS_1: {}, __VLS_9: {}, __VLS_11: {}, __VLS_13: {}, __VLS_15: {};
3
3
  type __VLS_Slots = {} & {
4
4
  persistent?: (props: typeof __VLS_1) => any;
5
5
  } & {
6
- default?: (props: typeof __VLS_3) => any;
6
+ default?: (props: typeof __VLS_9) => any;
7
7
  } & {
8
- collapsed?: (props: typeof __VLS_5) => any;
8
+ collapsed?: (props: typeof __VLS_11) => any;
9
9
  } & {
10
- search?: (props: typeof __VLS_7) => any;
10
+ search?: (props: typeof __VLS_13) => any;
11
11
  } & {
12
- 'persistent-end'?: (props: typeof __VLS_9) => any;
12
+ 'persistent-end'?: (props: typeof __VLS_15) => any;
13
13
  };
14
14
  declare const __VLS_base: import("vue").DefineComponent<DockProps, {
15
15
  expanded: import("vue").Ref<boolean, boolean>;
@@ -1,4 +1,4 @@
1
- import type { ComputedRef } from "vue";
1
+ import { type ComputedRef, type InjectionKey } from "vue";
2
2
  export type DockOrientation = "horizontal" | "vertical";
3
3
  /**
4
4
  * What KIND of hold a token is. The two are different facts about the dock and
@@ -46,10 +46,24 @@ export interface DockContext {
46
46
  * popover is not a finger).
47
47
  */
48
48
  held: ComputedRef<boolean>;
49
+ /**
50
+ * The dock's POSTURE — `true` while the expanded face is the one painted. Its
51
+ * falling edge IS the collapse, and every overlay a seat OF THE FACE opened closes
52
+ * on it (`useDockParticipation`'s `close`): a menu left standing over a collapsed
53
+ * dock points at a control that is no longer there. A `#persistent` control is
54
+ * still there, so what it opened stays (`DockFace`, below). One writer (the dock),
55
+ * one edge, no timer.
56
+ */
57
+ expanded: ComputedRef<boolean>;
49
58
  }
50
- export declare const DOCK_CONTEXT_KEY: import("vue").InjectionKey<DockContext>;
59
+ export declare const DOCK_CONTEXT_KEY: InjectionKey<DockContext>;
51
60
  export declare function provideDockContext(context: DockContext): void;
52
61
  /** Strict — throws when used outside `<GlassDock>`. */
53
62
  export declare const useDockContext: () => DockContext;
54
63
  /** Befitting silent default for primitives that may render outside a dock. */
55
64
  export declare const useOptionalDockContext: () => DockContext | null;
65
+ export declare const DockFace: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
66
+ [key: string]: any;
67
+ }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
68
+ /** `true` for a descendant of the dock's face, the region the collapse takes away. */
69
+ export declare function useInDockFace(): boolean;
@@ -1 +1 @@
1
- @layer components{:where([data-slot="sheet-content"]){position: fixed;z-index: var(--z-modal);}}@property --detent-t{syntax: "<number>";inherits: false;initial-value: 0;}@layer components{:where([data-slot="sheet-content"][data-detents]){--sheet-seam-width: 1px;contain: layout paint;display: grid;grid-template-rows: auto minmax(0,1fr);}:where([data-slot="sheet-content"][data-modal="false"]){z-index: calc(var(--z-dock) - 1);}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-detent-handle"],[data-slot="sheet-content"][data-detents] [data-slot="dialog-header"] ){touch-action: none;}:where([data-slot="sheet-content"][data-dragging]){cursor: grabbing;user-select: none;}:where([data-slot="sheet-content"] > [data-slot="sheet-content-region"]){display: grid;align-content: start;gap: var(--space-body);}:where([data-slot="sheet-content"][data-scroll] > [data-slot="sheet-content-region"]){min-block-size: 0;max-block-size: calc(100dvh - 2 * var(--space-family));overflow-y: auto;}:where( [data-slot="sheet-content"][data-side="left"]:not([data-detents]) > [data-slot="sheet-content-region"],[data-slot="sheet-content"][data-side="right"]:not([data-detents]) > [data-slot="sheet-content-region"] ){display: flex;flex-direction: column;block-size: 100%;min-block-size: 0;}:where( [data-slot="sheet-content"][data-side="left"] > [data-slot="sheet-content-region"] > :only-child,[data-slot="sheet-content"][data-side="right"] > [data-slot="sheet-content-region"] > :only-child ){min-block-size: 0;}:where([data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"]){display: grid;grid-template-rows: minmax(0,auto) minmax(1lh,1fr) auto;align-content: end;min-block-size: 0;gap: var(--space-body);}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"] > :not([data-slot="dialog-header"]):not([data-slot="dialog-footer"]) ){min-block-size: 0;overflow-y: auto;overscroll-behavior: contain;}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"] > [data-slot="dialog-header"] ){overflow: hidden;padding-block-end: var(--space-body);border-block-end: var(--sheet-seam-width) solid oklch(from var(--glass-veil-ink) l c h / calc(var(--glass-veil-step) * 2));}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"] > [data-slot="dialog-footer"] ){padding-block-start: var(--space-body);border-block-start: var(--sheet-seam-width) solid oklch(from var(--glass-veil-ink) l c h / calc(var(--glass-veil-step) * 2));}:where([data-slot="sheet-content"]:not([data-detents]):has([data-slot="dialog-close"])) :where([data-slot="dialog-header"]){padding-inline-end: calc(var(--touch-target) + var(--space-atom));}:where([data-slot="sheet-content"][data-detents] > [data-slot="sheet-detent-handle"]){display: flex;align-items: center;justify-content: center;min-block-size: var(--touch-target);cursor: grab;}:where([data-slot="sheet-detent-handle"] > [data-slot="sheet-detent-grip"]){display: block;inline-size: calc( var(--space-section) + var(--space-family) * clamp(0,var(--detent-t),1) );block-size: calc(var(--space-atom) / 2);border-radius: var(--radius-pill);background-color: currentcolor;opacity: calc(0.45 + ((0.85 - 0.45) / 2) * clamp(0,var(--detent-t),1));transition: opacity var(--spring-dock-duration) var(--spring-dock),inline-size var(--spring-dock-duration) var(--spring-dock);}@media (hover: hover){:where([data-slot="sheet-detent-handle"]:hover > [data-slot="sheet-detent-grip"]){opacity: 0.85;}}:where([data-slot="sheet-detent-handle"]:focus-visible){outline: none;}:where( [data-slot="sheet-detent-handle"]:focus-visible > [data-slot="sheet-detent-grip"],[data-slot="sheet-content"][data-dragging] [data-slot="sheet-detent-grip"] ){opacity: 0.85;}:where( [data-slot="sheet-detent-handle"]:focus-visible > [data-slot="sheet-detent-grip"] ){box-shadow: 0 0 0 3px var(--focus-ring-color);}@media (prefers-reduced-motion: reduce){:where([data-slot="sheet-detent-grip"]){transition: none;}}:where([data-slot="sheet-content"]){anchor-name: --glass-sheet-edge;}:where([data-slot="sheet-content"][data-surface="glass"]){-webkit-backdrop-filter: none;backdrop-filter: none;}:where([data-slot="glass-graded-halo"]){position: fixed;position-anchor: --glass-sheet-edge;top: anchor(top);right: anchor(right);bottom: anchor(bottom);left: anchor(left);z-index: calc(var(--z-modal) - 1);pointer-events: none;background: linear-gradient( var(--sheet-edge-direction),color-mix(in oklab,var(--glass-plate-overlay) 10%,transparent) 0,color-mix(in oklab,var(--glass-plate-overlay) 16%,transparent) 40px,color-mix(in oklab,var(--glass-plate-overlay) 34%,transparent) 120px,color-mix(in oklab,var(--glass-plate-overlay) 34%,transparent) 100% );-webkit-backdrop-filter: blur(calc(34px * var(--glass-level))) saturate(var(--glass-saturate));backdrop-filter: blur(calc(34px * var(--glass-level))) saturate(var(--glass-saturate));mask-image: linear-gradient( var(--sheet-edge-direction),rgb(0 0 0 / 0.325) 0,rgb(0 0 0 / 0.45) 40px,black 120px,black 100% );}:where([data-slot="glass-graded-halo"][data-modal="false"]){z-index: calc(var(--z-dock) - 2);}:where([data-slot="glass-graded-halo"][data-side="top"]){--sheet-edge-direction: to top;border-end-start-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-side="bottom"]){--sheet-edge-direction: to bottom;border-start-start-radius: var(--radius-3xl);border-start-end-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-side="left"]){--sheet-edge-direction: to left;border-start-end-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-side="right"]){--sheet-edge-direction: to right;border-start-start-radius: var(--radius-3xl);border-end-start-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-detents][data-side="bottom"]){height: 100dvh;bottom: auto;}:where([data-slot="glass-graded-halo"][data-detents][data-side="top"]){height: 100dvh;top: auto;}:where([data-slot="glass-graded-halo"][data-detents][data-side="left"]){width: 100dvw;left: auto;}:where([data-slot="glass-graded-halo"][data-detents][data-side="right"]){width: 100dvw;right: auto;}@media (prefers-reduced-transparency: reduce),(forced-colors: active){:where([data-slot="glass-graded-halo"]){display: none;}}:where([data-slot="sheet-content"][data-side="top"]){left: 0;right: 0;top: 0;}:where([data-slot="sheet-content"][data-side="bottom"]){left: 0;right: 0;bottom: 0;}:where([data-slot="sheet-content"][data-side="left"]){top: 0;bottom: 0;left: 0;height: 100%;width: 75%;}:where([data-slot="sheet-content"][data-side="right"]){top: 0;bottom: 0;right: 0;height: 100%;width: 75%;}@media (min-width: 40rem){:where([data-slot="sheet-content"][data-side="left"]),:where([data-slot="sheet-content"][data-side="right"]){max-width: 24rem;}}:where( [data-slot="sheet-content"][data-detents][data-side="bottom"],[data-slot="sheet-content"][data-detents][data-side="top"] ){block-size: calc(clamp(0,var(--detent-t),1) * 100dvh);min-block-size: calc( 2 * var(--space-family) + var(--sheet-seam-width) + var(--touch-target) + 2 * var(--space-body) + var(--space-body) + var(--sheet-seam-width) + 1lh + var(--space-body) + var(--sheet-seam-width) + var(--touch-target) );max-block-size: 100dvh;}:where( [data-slot="sheet-content"][data-detents][data-side="left"],[data-slot="sheet-content"][data-detents][data-side="right"] ){width: calc(clamp(0,var(--detent-t),1) * 100dvw);max-width: 100dvw;height: 100%;}:where([data-slot="sheet-content"]){padding-inline: var(--space-family);padding-block: var(--space-family);}:where([data-slot="sheet-content"][data-side="top"]){border-end-start-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="sheet-content"][data-side="bottom"]){border-start-start-radius: var(--radius-3xl);border-start-end-radius: var(--radius-3xl);}:where([data-slot="sheet-content"][data-side="left"]){border-start-end-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="sheet-content"][data-side="right"]){border-start-start-radius: var(--radius-3xl);border-end-start-radius: var(--radius-3xl);}}
1
+ @layer components{:where([data-slot="sheet-content"]){z-index: var(--z-modal);}}@property --detent-t{syntax: "<number>";inherits: false;initial-value: 0;}@layer components{:where([data-slot="sheet-content"][data-detents]){--sheet-seam-width: 1px;contain: layout paint;display: grid;grid-template-rows: auto minmax(0,1fr);}:where([data-slot="sheet-content"][data-modal="false"]){z-index: calc(var(--z-dock) - 1);}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-detent-handle"],[data-slot="sheet-content"][data-detents] [data-slot="dialog-header"] ){touch-action: none;}:where([data-slot="sheet-content"][data-dragging]){cursor: grabbing;user-select: none;}:where([data-slot="sheet-content"] > [data-slot="sheet-content-region"]){display: grid;align-content: start;gap: var(--space-body);}:where([data-slot="sheet-content"][data-scroll] > [data-slot="sheet-content-region"]){min-block-size: 0;max-block-size: calc(100dvh - 2 * var(--space-family));overflow-y: auto;}:where( [data-slot="sheet-content"][data-side="left"]:not([data-detents]) > [data-slot="sheet-content-region"],[data-slot="sheet-content"][data-side="right"]:not([data-detents]) > [data-slot="sheet-content-region"] ){display: flex;flex-direction: column;block-size: 100%;min-block-size: 0;}:where( [data-slot="sheet-content"][data-side="left"] > [data-slot="sheet-content-region"] > :only-child,[data-slot="sheet-content"][data-side="right"] > [data-slot="sheet-content-region"] > :only-child ){min-block-size: 0;}:where([data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"]){display: grid;grid-template-rows: minmax(0,auto) minmax(1lh,1fr) auto;align-content: end;min-block-size: 0;gap: var(--space-body);}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"] > :not([data-slot="dialog-header"]):not([data-slot="dialog-footer"]) ){min-block-size: 0;overflow-y: auto;overscroll-behavior: contain;}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"] > [data-slot="dialog-header"] ){overflow: hidden;padding-block-end: var(--space-body);border-block-end: var(--sheet-seam-width) solid oklch(from var(--glass-veil-ink) l c h / calc(var(--glass-veil-step) * 2));}:where( [data-slot="sheet-content"][data-detents] > [data-slot="sheet-content-region"] > [data-slot="dialog-footer"] ){padding-block-start: var(--space-body);border-block-start: var(--sheet-seam-width) solid oklch(from var(--glass-veil-ink) l c h / calc(var(--glass-veil-step) * 2));}:where([data-slot="sheet-content"]:not([data-detents]):has([data-slot="dialog-close"])) :where([data-slot="dialog-header"]){padding-inline-end: calc(var(--touch-target) + var(--space-atom));}:where([data-slot="sheet-content"][data-detents] > [data-slot="sheet-detent-handle"]){display: flex;align-items: center;justify-content: center;min-block-size: var(--touch-target);cursor: grab;}:where([data-slot="sheet-detent-handle"] > [data-slot="sheet-detent-grip"]){display: block;inline-size: calc( var(--space-section) + var(--space-family) * clamp(0,var(--detent-t),1) );block-size: calc(var(--space-atom) / 2);border-radius: var(--radius-pill);background-color: currentcolor;opacity: calc(0.45 + ((0.85 - 0.45) / 2) * clamp(0,var(--detent-t),1));transition: opacity var(--spring-dock-duration) var(--spring-dock),inline-size var(--spring-dock-duration) var(--spring-dock);}@media (hover: hover){:where([data-slot="sheet-detent-handle"]:hover > [data-slot="sheet-detent-grip"]){opacity: 0.85;}}:where([data-slot="sheet-detent-handle"]:focus-visible){outline: none;}:where( [data-slot="sheet-detent-handle"]:focus-visible > [data-slot="sheet-detent-grip"],[data-slot="sheet-content"][data-dragging] [data-slot="sheet-detent-grip"] ){opacity: 0.85;}:where( [data-slot="sheet-detent-handle"]:focus-visible > [data-slot="sheet-detent-grip"] ){box-shadow: 0 0 0 3px var(--focus-ring-color);}@media (prefers-reduced-motion: reduce){:where([data-slot="sheet-detent-grip"]){transition: none;}}:where([data-slot="sheet-content"]){anchor-name: --glass-sheet-edge;}:where([data-slot="sheet-content"][data-surface="glass"]){-webkit-backdrop-filter: none;backdrop-filter: none;}:where([data-slot="glass-graded-halo"]){position: fixed;position-anchor: --glass-sheet-edge;top: anchor(top);right: anchor(right);bottom: anchor(bottom);left: anchor(left);z-index: calc(var(--z-modal) - 1);pointer-events: none;background: linear-gradient( var(--sheet-edge-direction),color-mix(in oklab,var(--glass-plate-overlay) 10%,transparent) 0,color-mix(in oklab,var(--glass-plate-overlay) 16%,transparent) 40px,color-mix(in oklab,var(--glass-plate-overlay) 34%,transparent) 120px,color-mix(in oklab,var(--glass-plate-overlay) 34%,transparent) 100% );-webkit-backdrop-filter: blur(calc(34px * var(--glass-level))) saturate(var(--glass-saturate));backdrop-filter: blur(calc(34px * var(--glass-level))) saturate(var(--glass-saturate));mask-image: linear-gradient( var(--sheet-edge-direction),rgb(0 0 0 / 0.325) 0,rgb(0 0 0 / 0.45) 40px,black 120px,black 100% );}:where([data-slot="glass-graded-halo"][data-modal="false"]){z-index: calc(var(--z-dock) - 2);}:where([data-slot="glass-graded-halo"][data-side="top"]){--sheet-edge-direction: to top;border-end-start-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-side="bottom"]){--sheet-edge-direction: to bottom;border-start-start-radius: var(--radius-3xl);border-start-end-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-side="left"]){--sheet-edge-direction: to left;border-start-end-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-side="right"]){--sheet-edge-direction: to right;border-start-start-radius: var(--radius-3xl);border-end-start-radius: var(--radius-3xl);}:where([data-slot="glass-graded-halo"][data-detents][data-side="bottom"]){height: 100dvh;bottom: auto;}:where([data-slot="glass-graded-halo"][data-detents][data-side="top"]){height: 100dvh;top: auto;}:where([data-slot="glass-graded-halo"][data-detents][data-side="left"]){width: 100dvw;left: auto;}:where([data-slot="glass-graded-halo"][data-detents][data-side="right"]){width: 100dvw;right: auto;}@media (prefers-reduced-transparency: reduce),(forced-colors: active){:where([data-slot="glass-graded-halo"]){display: none;}}:where([data-slot="sheet-content"][data-side="top"]){left: 0;right: 0;top: 0;}:where([data-slot="sheet-content"][data-side="bottom"]){left: 0;right: 0;bottom: 0;}:where([data-slot="sheet-content"][data-side="left"]){top: 0;bottom: 0;left: 0;height: 100%;width: 75%;}:where([data-slot="sheet-content"][data-side="right"]){top: 0;bottom: 0;right: 0;height: 100%;width: 75%;}@media (min-width: 40rem){:where([data-slot="sheet-content"][data-side="left"]),:where([data-slot="sheet-content"][data-side="right"]){max-width: 24rem;}}:where( [data-slot="sheet-content"][data-detents][data-side="bottom"],[data-slot="sheet-content"][data-detents][data-side="top"] ){block-size: calc(clamp(0,var(--detent-t),1) * 100dvh);min-block-size: calc( 2 * var(--space-family) + var(--sheet-seam-width) + var(--touch-target) + 2 * var(--space-body) + var(--space-body) + var(--sheet-seam-width) + 1lh + var(--space-body) + var(--sheet-seam-width) + var(--touch-target) );max-block-size: 100dvh;}:where( [data-slot="sheet-content"][data-detents][data-side="left"],[data-slot="sheet-content"][data-detents][data-side="right"] ){width: calc(clamp(0,var(--detent-t),1) * 100dvw);max-width: 100dvw;height: 100%;}:where([data-slot="sheet-content"]){padding-inline: var(--space-family);padding-block: var(--space-family);}:where([data-slot="sheet-content"][data-side="top"]){border-end-start-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="sheet-content"][data-side="bottom"]){border-start-start-radius: var(--radius-3xl);border-start-end-radius: var(--radius-3xl);}:where([data-slot="sheet-content"][data-side="left"]){border-start-end-radius: var(--radius-3xl);border-end-end-radius: var(--radius-3xl);}:where([data-slot="sheet-content"][data-side="right"]){border-start-start-radius: var(--radius-3xl);border-end-start-radius: var(--radius-3xl);}}
@@ -1,6 +1,12 @@
1
1
  import { type HTMLAttributes } from "vue";
2
2
  type __VLS_Props = {
3
3
  class?: HTMLAttributes["class"];
4
+ /**
5
+ * A travelling sheen across the reserved shape in place of the breathe. Ink
6
+ * only (the one-ink ladder, no hue), static under `prefers-reduced-motion`,
7
+ * paused while the tile is off-screen or the document is hidden.
8
+ */
9
+ shimmer?: boolean;
4
10
  };
5
11
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
12
  declare const _default: typeof __VLS_export;