@gryt/ui 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,100 +1,100 @@
1
- import { jsx as o, jsxs as d } from "react/jsx-runtime";
2
- import { Tooltip as F } from "@base-ui/react/tooltip";
3
- import { createContext as ne, useContext as ht, useRef as Mt, forwardRef as l, useCallback as It, useLayoutEffect as Se, useMemo as it, useState as _, useEffect as $e, useSyncExternalStore as Ce, useId as ke } from "react";
4
- import { createGrytTheme as oe, grytTheme as Re, GRYT_RADIUS_KEYS as Ae, grytThemeToOptions as Ie, grytThemeHues as De, normalizeHexColor as lt, isHexColor as Le, contrast as Q, oklchToHex as A, hexToOklch as pt, decodeGrytTheme as Me, grytTokens as Dt, grytLightTokens as Ge, grytPresets as _t, grytPresetsById as je, GRYT_THEME_NAME_MAX as Ee } from "@gryt/theme";
5
- import { GRYT_HUE_KEYS as Xa, GRYT_NEUTRAL_KEYS as Ka, GRYT_RADIUS_KEYS as Wa, GRYT_THEME_NAME_MAX as Ja, alphaScale as Qa, cloneGrytTheme as Za, contrast as qa, createGrytTheme as ts, decodeGrytTheme as es, encodeGrytTheme as rs, encodeGrytTheme as ns, grytAlphaScales as os, grytAlphaScalesLight as as, grytLightTokens as ss, grytPresets as is, grytPresetsById as ls, grytScales as cs, grytScalesLight as ds, grytTheme as us, grytThemeHues as gs, grytThemeToOptions as ms, grytTokens as ps, hexToOklch as ys, hexToRgb as fs, hueScale as hs, hueScaleLight as bs, isHexColor as xs, neutralScale as vs, neutralScaleLight as ws, normalizeHexColor as Ns, normalizeThemeName as Ts, oklchToHex as Ps, rgbToHex as Ss } from "@gryt/theme";
6
- import { Button as ae } from "@base-ui/react/button";
7
- import { clsx as He } from "clsx";
8
- import { twMerge as ze } from "tailwind-merge";
9
- import { Field as gt } from "@base-ui/react/field";
10
- import { PaperPlaneTilt as Be, X as Gt, Check as jt, CaretUpDown as Fe, CircleNotch as _e, CaretDown as Ve, Warning as se, ArrowsClockwise as Oe, Minus as Ye, Plus as Ue } from "@phosphor-icons/react";
11
- import { Avatar as Pt } from "@base-ui/react/avatar";
12
- import { owlAvatarDataUri as Xe, eggAvatarDataUri as Ke } from "@gryt/owl";
13
- import { avatarSeed as Cs } from "@gryt/owl";
14
- import { Checkbox as Vt } from "@base-ui/react/checkbox";
15
- import { Radio as Ot } from "@base-ui/react/radio";
16
- import { RadioGroup as We } from "@base-ui/react/radio-group";
17
- import { Switch as Yt } from "@base-ui/react/switch";
18
- import { Slider as rt } from "@base-ui/react/slider";
19
- import { Select as C } from "@base-ui/react/select";
20
- import { Separator as Je } from "@base-ui/react/separator";
21
- import { Progress as St } from "@base-ui/react/progress";
22
- import { Dialog as j } from "@base-ui/react/dialog";
23
- import { Drawer as I } from "@base-ui/react/drawer";
24
- import { Menu as V } from "@base-ui/react/menu";
25
- import { Tabs as dt } from "@base-ui/react/tabs";
26
- import { Accordion as ct } from "@base-ui/react/accordion";
27
- import { ContextMenu as G } from "@base-ui/react/context-menu";
28
- import { Popover as L } from "@base-ui/react/popover";
29
- import { Toast as M } from "@base-ui/react/toast";
30
- import { ScrollArea as Z } from "@base-ui/react/scroll-area";
31
- import { Toggle as Qe } from "@base-ui/react/toggle";
32
- import { ToggleGroup as Ze } from "@base-ui/react/toggle-group";
33
- import { Meter as nt } from "@base-ui/react/meter";
34
- import { AlertDialog as E } from "@base-ui/react/alert-dialog";
35
- import { Autocomplete as N } from "@base-ui/react/autocomplete";
36
- import { Combobox as v } from "@base-ui/react/combobox";
37
- import { CheckboxGroup as qe } from "@base-ui/react/checkbox-group";
38
- import { Collapsible as Et } from "@base-ui/react/collapsible";
39
- import { Form as tr } from "@base-ui/react/form";
40
- import { Fieldset as ie } from "@base-ui/react/fieldset";
41
- import { Menubar as er } from "@base-ui/react/menubar";
42
- import { NavigationMenu as k } from "@base-ui/react/navigation-menu";
43
- import { NumberField as z } from "@base-ui/react/number-field";
44
- import { OTPField as Ut } from "@base-ui/react/otp-field";
45
- import { PreviewCard as W } from "@base-ui/react/preview-card";
46
- import { Toolbar as J } from "@base-ui/react/toolbar";
47
- const le = ne(void 0);
48
- function ce() {
49
- return ht(le);
1
+ import { jsx as o, jsxs as u, Fragment as jt } from "react/jsx-runtime";
2
+ import { Tooltip as K } from "@base-ui/react/tooltip";
3
+ import { createContext as bt, useContext as $e, useRef as ke, forwardRef as l, useCallback as pe, useLayoutEffect as Ot, useMemo as me, useState as G, useEffect as Vt, useSyncExternalStore as Yt, useId as Ut } from "react";
4
+ import { createGrytTheme as xt, grytTheme as Xt, GRYT_RADIUS_KEYS as Wt, grytThemeToOptions as Kt, grytThemeHues as Jt, normalizeHexColor as ye, isHexColor as Qt, grytFonts as vt, isFontStack as Zt, isBezier as qt, grytMotion as er, grytDurations as qe, GRYT_MOTION_SCALE_MAX as tr, springSamples as et, springTightSamples as rr, contrast as ae, oklchToHex as L, hexToOklch as Ne, decodeGrytTheme as nr, grytTokens as Oe, grytLightTokens as or, grytPresets as tt, grytPresetsById as ar, GRYT_THEME_NAME_MAX as sr, GRYT_FONT_KEYS as ir } from "@gryt/theme";
5
+ import { GRYT_FONT_KEYS as Ns, GRYT_FONT_STACK_MAX as Ts, GRYT_HUE_KEYS as Ss, GRYT_MOTION_CURVES as $s, GRYT_MOTION_SCALE_MAX as ks, GRYT_NEUTRAL_KEYS as Ps, GRYT_RADIUS_KEYS as Cs, GRYT_THEME_NAME_MAX as As, alphaScale as Ms, cloneGrytTheme as Rs, contrast as Is, createGrytTheme as Ls, decodeGrytTheme as Ds, encodeGrytTheme as Gs, encodeGrytTheme as Fs, grytAlphaScales as zs, grytAlphaScalesLight as Bs, grytFonts as Es, grytLightTokens as _s, grytMotion as Hs, grytPresets as js, grytPresetsById as Os, grytScales as Vs, grytScalesLight as Ys, grytTheme as Us, grytThemeHues as Xs, grytThemeToOptions as Ws, grytTokens as Ks, hexToOklch as Js, hexToRgb as Qs, hueScale as Zs, hueScaleLight as qs, isBezier as ei, isFontStack as ti, isHexColor as ri, isValidBezier as ni, neutralScale as oi, neutralScaleLight as ai, normalizeHexColor as si, normalizeThemeName as ii, oklchToHex as li, rgbToHex as ci } from "@gryt/theme";
6
+ import { Button as wt } from "@base-ui/react/button";
7
+ import { clsx as lr } from "clsx";
8
+ import { twMerge as cr } from "tailwind-merge";
9
+ import { Field as xe } from "@base-ui/react/field";
10
+ import { PaperPlaneTilt as dr, X as Ue, Check as Xe, CaretUpDown as ur, CircleNotch as gr, CaretDown as mr, Warning as Nt, ArrowsClockwise as pr, Minus as yr, Plus as fr } from "@phosphor-icons/react";
11
+ import { Avatar as Le } from "@base-ui/react/avatar";
12
+ import { owlAvatarDataUri as hr, eggAvatarDataUri as br } from "@gryt/owl";
13
+ import { avatarSeed as ui } from "@gryt/owl";
14
+ import { Checkbox as rt } from "@base-ui/react/checkbox";
15
+ import { Radio as nt } from "@base-ui/react/radio";
16
+ import { RadioGroup as xr } from "@base-ui/react/radio-group";
17
+ import { Switch as ot } from "@base-ui/react/switch";
18
+ import { Slider as le } from "@base-ui/react/slider";
19
+ import { Select as R } from "@base-ui/react/select";
20
+ import { Separator as vr } from "@base-ui/react/separator";
21
+ import { Progress as De } from "@base-ui/react/progress";
22
+ import { Dialog as O } from "@base-ui/react/dialog";
23
+ import { Drawer as D } from "@base-ui/react/drawer";
24
+ import { Menu as J } from "@base-ui/react/menu";
25
+ import { Tabs as he } from "@base-ui/react/tabs";
26
+ import { Accordion as fe } from "@base-ui/react/accordion";
27
+ import { ContextMenu as j } from "@base-ui/react/context-menu";
28
+ import { Popover as B } from "@base-ui/react/popover";
29
+ import { Toast as E } from "@base-ui/react/toast";
30
+ import { ScrollArea as se } from "@base-ui/react/scroll-area";
31
+ import { Toggle as wr } from "@base-ui/react/toggle";
32
+ import { ToggleGroup as Nr } from "@base-ui/react/toggle-group";
33
+ import { Meter as ce } from "@base-ui/react/meter";
34
+ import { AlertDialog as V } from "@base-ui/react/alert-dialog";
35
+ import { Autocomplete as C } from "@base-ui/react/autocomplete";
36
+ import { Combobox as S } from "@base-ui/react/combobox";
37
+ import { CheckboxGroup as Tr } from "@base-ui/react/checkbox-group";
38
+ import { Collapsible as We } from "@base-ui/react/collapsible";
39
+ import { Form as Sr } from "@base-ui/react/form";
40
+ import { Fieldset as Tt } from "@base-ui/react/fieldset";
41
+ import { Menubar as $r } from "@base-ui/react/menubar";
42
+ import { NavigationMenu as I } from "@base-ui/react/navigation-menu";
43
+ import { NumberField as X } from "@base-ui/react/number-field";
44
+ import { OTPField as at } from "@base-ui/react/otp-field";
45
+ import { PreviewCard as ne } from "@base-ui/react/preview-card";
46
+ import { Toolbar as oe } from "@base-ui/react/toolbar";
47
+ const St = bt(void 0);
48
+ function $t() {
49
+ return $e(St);
50
50
  }
51
- function rr(n) {
51
+ function kr(n) {
52
52
  return Object.keys(n).some((t) => t.startsWith("--"));
53
53
  }
54
- function Jo({
54
+ function $a({
55
55
  children: n,
56
56
  className: t,
57
57
  theme: e,
58
58
  tooltipDelay: r = 400,
59
59
  containOverlays: a = !1
60
60
  }) {
61
- const c = Mt(null), m = e === void 0 ? void 0 : rr(e) ? e : oe(e);
62
- return /* @__PURE__ */ o("div", { className: t, style: m, ref: c, children: /* @__PURE__ */ o(
63
- le.Provider,
61
+ const c = ke(null), d = e === void 0 ? void 0 : kr(e) ? e : xt(e);
62
+ return /* @__PURE__ */ o("div", { className: t, style: d, ref: c, children: /* @__PURE__ */ o(
63
+ St.Provider,
64
64
  {
65
65
  value: a ? c : void 0,
66
- children: /* @__PURE__ */ o(F.Provider, { delay: r, children: n })
66
+ children: /* @__PURE__ */ o(K.Provider, { delay: r, children: n })
67
67
  }
68
68
  ) });
69
69
  }
70
70
  function s(...n) {
71
- return ze(He(n));
71
+ return cr(lr(n));
72
72
  }
73
- const nr = {
73
+ const Pr = {
74
74
  primary: "bg-gryt-accent text-gryt-on-accent hover:not-data-disabled:bg-gryt-accent-light data-disabled:bg-gryt-surface-raised data-disabled:text-gryt-muted",
75
75
  secondary: "bg-gryt-secondary text-gryt-on-secondary hover:not-data-disabled:bg-gryt-secondary-light data-disabled:bg-gryt-surface-raised data-disabled:text-gryt-muted",
76
76
  neutral: "bg-gryt-surface-raised text-gryt-text hover:not-data-disabled:bg-gryt-surface-hover data-disabled:text-gryt-muted",
77
77
  danger: "bg-gryt-danger text-gryt-on-danger hover:not-data-disabled:bg-gryt-danger-light data-disabled:bg-gryt-surface-raised data-disabled:text-gryt-muted",
78
78
  ghost: "bg-transparent text-gryt-muted hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text"
79
- }, or = {
79
+ }, Cr = {
80
80
  xsmall: "min-h-8 px-3 text-xs",
81
81
  small: "min-h-9 px-4 text-sm",
82
82
  medium: "min-h-10 px-5 text-sm",
83
83
  large: "min-h-12 px-6 text-base"
84
- }, yt = l(
84
+ }, Te = l(
85
85
  function({
86
86
  children: t,
87
87
  className: e,
88
88
  endIcon: r,
89
89
  size: a = "medium",
90
90
  startIcon: c,
91
- tone: m = "primary",
92
- ...g
93
- }, y) {
94
- return /* @__PURE__ */ d(
95
- ae,
91
+ tone: d = "primary",
92
+ ...p
93
+ }, m) {
94
+ return /* @__PURE__ */ u(
95
+ wt,
96
96
  {
97
- ref: y,
97
+ ref: m,
98
98
  className: s(
99
99
  "gryt-button",
100
100
  "inline-flex cursor-pointer items-center justify-center gap-2 border-0 shadow-none",
@@ -121,11 +121,11 @@ const nr = {
121
121
  // and an icon at full strength on a dead button is the same lie in
122
122
  // miniature.
123
123
  "data-disabled:cursor-not-allowed data-disabled:opacity-60",
124
- or[a],
125
- nr[m],
124
+ Cr[a],
125
+ Pr[d],
126
126
  e
127
127
  ),
128
- ...g,
128
+ ...p,
129
129
  children: [
130
130
  c,
131
131
  t,
@@ -134,65 +134,65 @@ const nr = {
134
134
  }
135
135
  );
136
136
  }
137
- ), P = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light", ar = "has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-2 has-[:focus-visible]:outline-gryt-accent-light", de = [
137
+ ), A = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light", Ar = "has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-2 has-[:focus-visible]:outline-gryt-accent-light", kt = [
138
138
  "w-full rounded-(--gryt-radius-xl) border bg-gryt-surface-raised",
139
139
  "text-gryt-text outline-none placeholder:text-gryt-muted",
140
140
  "transition-colors duration-150 motion-reduce:transition-none",
141
141
  "hover:border-gryt-accent-light focus:border-gryt-accent",
142
142
  "disabled:cursor-not-allowed disabled:opacity-60"
143
- ].join(" "), ue = {
143
+ ].join(" "), Pt = {
144
144
  small: "min-h-9 px-3 py-1.5 text-sm",
145
145
  medium: "min-h-11 px-4 py-2.5 text-sm"
146
- }, Y = "rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface text-gryt-text", H = [
146
+ }, Z = "rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface text-gryt-text", Y = [
147
147
  // scale and translate are named explicitly because Tailwind v4 sets them as
148
148
  // standalone CSS properties rather than folding them into `transform`, so
149
149
  // transitioning `transform` would leave the popup snapping into place.
150
150
  "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none",
151
151
  "data-starting-style:scale-[0.98] data-starting-style:opacity-0",
152
152
  "data-ending-style:scale-[0.98] data-ending-style:opacity-0"
153
- ].join(" "), q = "cursor-pointer data-disabled:cursor-not-allowed data-disabled:opacity-50", sr = {
153
+ ].join(" "), ie = "cursor-pointer data-disabled:cursor-not-allowed data-disabled:opacity-50", Mr = {
154
154
  primary: "data-checked:bg-gryt-accent data-checked:text-gryt-on-accent",
155
155
  secondary: "data-checked:bg-gryt-secondary data-checked:text-gryt-on-secondary",
156
156
  neutral: "data-checked:bg-gryt-surface-hover data-checked:text-gryt-text",
157
157
  danger: "data-checked:bg-gryt-danger data-checked:text-gryt-on-danger",
158
158
  success: "data-checked:bg-gryt-success data-checked:text-gryt-on-accent",
159
159
  warning: "data-checked:bg-gryt-warning data-checked:text-gryt-on-accent"
160
- }, ge = {
160
+ }, Ct = {
161
161
  primary: "bg-gryt-accent",
162
162
  secondary: "bg-gryt-secondary",
163
163
  neutral: "bg-gryt-surface-hover",
164
164
  danger: "bg-gryt-danger",
165
165
  success: "bg-gryt-success",
166
166
  warning: "bg-gryt-warning"
167
- }, ir = {
167
+ }, Rr = {
168
168
  primary: "data-checked:border-gryt-accent",
169
169
  secondary: "data-checked:border-gryt-secondary",
170
170
  neutral: "data-checked:border-gryt-muted",
171
171
  danger: "data-checked:border-gryt-danger",
172
172
  success: "data-checked:border-gryt-success",
173
173
  warning: "data-checked:border-gryt-warning"
174
- }, lr = {
174
+ }, Ir = {
175
175
  primary: "data-checked:bg-gryt-accent",
176
176
  secondary: "data-checked:bg-gryt-secondary",
177
177
  neutral: "data-checked:bg-gryt-surface-hover",
178
178
  danger: "data-checked:bg-gryt-danger",
179
179
  success: "data-checked:bg-gryt-success",
180
180
  warning: "data-checked:bg-gryt-warning"
181
- }, cr = {
181
+ }, Lr = {
182
182
  primary: "text-gryt-accent-11 hover:not-data-disabled:bg-gryt-accent-3",
183
183
  secondary: "text-gryt-secondary-11 hover:not-data-disabled:bg-gryt-secondary-3",
184
184
  neutral: "text-gryt-muted hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text",
185
185
  danger: "text-gryt-danger-11 hover:not-data-disabled:bg-gryt-danger-3",
186
186
  ghost: "text-gryt-muted hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text"
187
- }, dr = {
187
+ }, Dr = {
188
188
  xsmall: "h-8 w-8",
189
189
  small: "h-9 w-9",
190
190
  medium: "h-10 w-10",
191
191
  large: "h-12 w-12"
192
- }, Qo = l(
192
+ }, ka = l(
193
193
  function({ className: t, size: e = "medium", tone: r = "neutral", ...a }, c) {
194
194
  return /* @__PURE__ */ o(
195
- ae,
195
+ wt,
196
196
  {
197
197
  ref: c,
198
198
  className: s(
@@ -209,17 +209,17 @@ const nr = {
209
209
  // that is what it is; Base UI puts it there, nothing to pass.
210
210
  "motion-safe:not-[[aria-haspopup]]:hover:not-data-disabled:scale-[1.06]",
211
211
  "motion-safe:not-[[aria-haspopup]]:active:not-data-disabled:scale-[0.94]",
212
- P,
213
- q,
214
- dr[e],
215
- cr[r],
212
+ A,
213
+ ie,
214
+ Dr[e],
215
+ Lr[r],
216
216
  t
217
217
  ),
218
218
  ...a
219
219
  }
220
220
  );
221
221
  }
222
- ), Zo = l(
222
+ ), Pa = l(
223
223
  function({ className: t, elevated: e = !1, ...r }, a) {
224
224
  return /* @__PURE__ */ o(
225
225
  "div",
@@ -234,7 +234,7 @@ const nr = {
234
234
  }
235
235
  );
236
236
  }
237
- ), qo = l(
237
+ ), Ca = l(
238
238
  function({ children: t, className: e, from: r = "assistant", ...a }, c) {
239
239
  return /* @__PURE__ */ o(
240
240
  "div",
@@ -252,46 +252,46 @@ const nr = {
252
252
  }
253
253
  );
254
254
  }
255
- ), me = l(
255
+ ), Ke = l(
256
256
  function({
257
257
  className: t,
258
258
  error: e = !1,
259
259
  fieldClassName: r,
260
260
  helperText: a,
261
261
  label: c,
262
- minRows: m = 3,
263
- multiline: g = !1,
264
- size: y = "medium",
265
- ...p
262
+ minRows: d = 3,
263
+ multiline: p = !1,
264
+ size: m = "medium",
265
+ ...y
266
266
  }, f) {
267
267
  const h = /* @__PURE__ */ o(
268
- gt.Control,
268
+ xe.Control,
269
269
  {
270
270
  ref: f,
271
- render: g ? /* @__PURE__ */ o("textarea", { rows: m }) : void 0,
271
+ render: p ? /* @__PURE__ */ o("textarea", { rows: d }) : void 0,
272
272
  className: s(
273
273
  "gryt-text-field-control",
274
- de,
275
- g && "resize-y leading-6",
274
+ kt,
275
+ p && "resize-y leading-6",
276
276
  e ? "border-gryt-danger" : "border-gryt-border",
277
- ue[y],
277
+ Pt[m],
278
278
  t
279
279
  ),
280
- ...p
280
+ ...y
281
281
  }
282
282
  );
283
- return /* @__PURE__ */ d(
284
- gt.Root,
283
+ return /* @__PURE__ */ u(
284
+ xe.Root,
285
285
  {
286
286
  className: s(
287
287
  "gryt-text-field flex w-full flex-col gap-1.5",
288
288
  r
289
289
  ),
290
290
  children: [
291
- c ? /* @__PURE__ */ o(gt.Label, { className: "text-xs font-medium text-gryt-muted", children: c }) : null,
291
+ c ? /* @__PURE__ */ o(xe.Label, { className: "text-xs font-medium text-gryt-muted", children: c }) : null,
292
292
  h,
293
293
  a ? /* @__PURE__ */ o(
294
- gt.Description,
294
+ xe.Description,
295
295
  {
296
296
  className: s(
297
297
  "text-xs",
@@ -304,105 +304,105 @@ const nr = {
304
304
  }
305
305
  );
306
306
  }
307
- ), ta = l(
307
+ ), Aa = l(
308
308
  function({
309
309
  className: t,
310
310
  disabled: e = !1,
311
311
  maxRows: r = 8,
312
312
  minRows: a = 1,
313
313
  onSubmit: c,
314
- placeholder: m = "Message Gryt",
315
- submitLabel: g = "Send",
316
- ...y
317
- }, p) {
318
- const f = Mt(null), h = It(() => {
314
+ placeholder: d = "Message Gryt",
315
+ submitLabel: p = "Send",
316
+ ...m
317
+ }, y) {
318
+ const f = ke(null), h = pe(() => {
319
319
  const x = f.current;
320
320
  if (!x)
321
321
  return;
322
- const T = window.getComputedStyle(x), w = parseFloat(T.lineHeight) || 24, R = parseFloat(T.paddingTop) + parseFloat(T.paddingBottom);
322
+ const v = window.getComputedStyle(x), N = parseFloat(v.lineHeight) || 24, k = parseFloat(v.paddingTop) + parseFloat(v.paddingBottom);
323
323
  x.style.height = "auto", x.style.height = `${Math.min(
324
- Math.max(x.scrollHeight, w * a + R),
325
- w * r + R
324
+ Math.max(x.scrollHeight, N * a + k),
325
+ N * r + k
326
326
  )}px`;
327
327
  }, [r, a]);
328
- Se(h, [h, y.value]);
329
- function S(x) {
328
+ Ot(h, [h, m.value]);
329
+ function b(x) {
330
330
  if (!c) {
331
331
  x.preventDefault();
332
332
  return;
333
333
  }
334
334
  c(x);
335
335
  }
336
- return /* @__PURE__ */ d("form", { className: s("gryt-composer", t), onSubmit: S, children: [
336
+ return /* @__PURE__ */ u("form", { className: s("gryt-composer", t), onSubmit: b, children: [
337
337
  /* @__PURE__ */ o(
338
338
  "textarea",
339
339
  {
340
340
  ref: (x) => {
341
- f.current = x, typeof p == "function" ? p(x) : p && (p.current = x);
341
+ f.current = x, typeof y == "function" ? y(x) : y && (y.current = x);
342
342
  },
343
343
  rows: a,
344
344
  disabled: e,
345
- placeholder: m,
345
+ placeholder: d,
346
346
  onInput: h,
347
347
  className: "gryt-composer-textarea disabled:cursor-not-allowed disabled:opacity-60",
348
- ...y
348
+ ...m
349
349
  }
350
350
  ),
351
351
  /* @__PURE__ */ o(
352
- yt,
352
+ Te,
353
353
  {
354
354
  type: "submit",
355
355
  disabled: e,
356
356
  size: "small",
357
- endIcon: /* @__PURE__ */ o(Be, { size: 14, weight: "fill" }),
358
- children: g
357
+ endIcon: /* @__PURE__ */ o(dr, { size: 14, weight: "fill" }),
358
+ children: p
359
359
  }
360
360
  )
361
361
  ] });
362
362
  }
363
- ), ur = {
363
+ ), Gr = {
364
364
  small: "h-8 w-8 text-xs",
365
365
  medium: "h-10 w-10 text-sm",
366
366
  large: "h-12 w-12 text-base"
367
- }, Xt = 256, gr = l(function({
367
+ }, st = 256, Fr = l(function({
368
368
  alt: t,
369
369
  children: e,
370
370
  className: r,
371
371
  fallback: a,
372
372
  seed: c,
373
- eggSeed: m,
374
- size: g = "medium",
375
- src: y,
376
- ...p
373
+ eggSeed: d,
374
+ size: p = "medium",
375
+ src: m,
376
+ ...y
377
377
  }, f) {
378
- const h = it(
379
- () => c ? Xe(c, { size: Xt }) : void 0,
378
+ const h = me(
379
+ () => c ? hr(c, { size: st }) : void 0,
380
380
  [c]
381
- ), S = it(
382
- () => m ? Ke(m, { size: Xt }) : void 0,
383
- [m]
384
- ), x = h ?? S;
385
- return /* @__PURE__ */ d(
386
- Pt.Root,
381
+ ), b = me(
382
+ () => d ? br(d, { size: st }) : void 0,
383
+ [d]
384
+ ), x = h ?? b;
385
+ return /* @__PURE__ */ u(
386
+ Le.Root,
387
387
  {
388
388
  ref: f,
389
389
  className: s(
390
390
  "gryt-avatar inline-flex shrink-0 items-center justify-center overflow-hidden align-middle select-none",
391
391
  "rounded-(--gryt-radius-full) bg-gryt-surface-raised font-medium text-gryt-text ring-1 ring-gryt-border",
392
- ur[g],
392
+ Gr[p],
393
393
  r
394
394
  ),
395
- ...p,
395
+ ...y,
396
396
  children: [
397
- y ? /* @__PURE__ */ o(
398
- Pt.Image,
397
+ m ? /* @__PURE__ */ o(
398
+ Le.Image,
399
399
  {
400
- src: y,
400
+ src: m,
401
401
  alt: t,
402
402
  className: "h-full w-full object-cover"
403
403
  }
404
404
  ) : null,
405
- /* @__PURE__ */ o(Pt.Fallback, { className: "flex h-full w-full items-center justify-center", children: x ? /* @__PURE__ */ o(
405
+ /* @__PURE__ */ o(Le.Fallback, { className: "flex h-full w-full items-center justify-center", children: x ? /* @__PURE__ */ o(
406
406
  "img",
407
407
  {
408
408
  src: x,
@@ -413,21 +413,21 @@ const nr = {
413
413
  ]
414
414
  }
415
415
  );
416
- }), ea = l(function({ active: t = !1, avatar: e, className: r, subtitle: a, title: c, ...m }, g) {
417
- return /* @__PURE__ */ d(
416
+ }), Ma = l(function({ active: t = !1, avatar: e, className: r, subtitle: a, title: c, ...d }, p) {
417
+ return /* @__PURE__ */ u(
418
418
  "button",
419
419
  {
420
- ref: g,
420
+ ref: p,
421
421
  type: "button",
422
422
  className: s(
423
423
  "gryt-conversation-item enabled:cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",
424
424
  t ? "bg-gryt-accent text-gryt-on-accent" : "text-gryt-text hover:bg-white/5",
425
425
  r
426
426
  ),
427
- ...m,
427
+ ...d,
428
428
  children: [
429
429
  e ?? /* @__PURE__ */ o(
430
- gr,
430
+ Fr,
431
431
  {
432
432
  size: "small",
433
433
  className: s(
@@ -436,7 +436,7 @@ const nr = {
436
436
  children: c.slice(0, 1).toUpperCase()
437
437
  }
438
438
  ),
439
- /* @__PURE__ */ d("span", { className: "min-w-0 flex-1", children: [
439
+ /* @__PURE__ */ u("span", { className: "min-w-0 flex-1", children: [
440
440
  /* @__PURE__ */ o("span", { className: "block truncate text-sm font-semibold", children: c }),
441
441
  a ? /* @__PURE__ */ o(
442
442
  "span",
@@ -452,17 +452,17 @@ const nr = {
452
452
  ]
453
453
  }
454
454
  );
455
- }), ra = l(function({ badgeContent: t, children: e, className: r, max: a = 99, showZero: c = !1, ...m }, g) {
456
- const y = typeof t == "number" ? t : null, p = y !== null && y === 0 && !c, f = y !== null && y > a ? `${a}+` : t;
457
- return /* @__PURE__ */ d(
455
+ }), Ra = l(function({ badgeContent: t, children: e, className: r, max: a = 99, showZero: c = !1, ...d }, p) {
456
+ const m = typeof t == "number" ? t : null, y = m !== null && m === 0 && !c, f = m !== null && m > a ? `${a}+` : t;
457
+ return /* @__PURE__ */ u(
458
458
  "span",
459
459
  {
460
- ref: g,
460
+ ref: p,
461
461
  className: s("gryt-badge relative inline-flex", r),
462
- ...m,
462
+ ...d,
463
463
  children: [
464
464
  e,
465
- t !== void 0 && !p ? /* @__PURE__ */ o(
465
+ t !== void 0 && !y ? /* @__PURE__ */ o(
466
466
  "span",
467
467
  {
468
468
  className: s(
@@ -477,24 +477,24 @@ const nr = {
477
477
  ]
478
478
  }
479
479
  );
480
- }), mr = {
480
+ }), zr = {
481
481
  neutral: "border-gryt-border bg-gryt-surface-raised text-gryt-text",
482
482
  primary: "border-gryt-accent-6 bg-gryt-accent-3 text-gryt-accent-11",
483
483
  secondary: "border-gryt-secondary-6 bg-gryt-secondary-3 text-gryt-secondary-11",
484
484
  success: "border-gryt-success-6 bg-gryt-success-3 text-gryt-success-11",
485
485
  warning: "border-gryt-warning-6 bg-gryt-warning-3 text-gryt-warning-11",
486
486
  danger: "border-gryt-danger-6 bg-gryt-danger-3 text-gryt-danger-11"
487
- }, na = l(function({ children: t, className: e, icon: r, label: a, onDelete: c, tone: m = "neutral", ...g }, y) {
488
- return /* @__PURE__ */ d(
487
+ }, Ia = l(function({ children: t, className: e, icon: r, label: a, onDelete: c, tone: d = "neutral", ...p }, m) {
488
+ return /* @__PURE__ */ u(
489
489
  "span",
490
490
  {
491
- ref: y,
491
+ ref: m,
492
492
  className: s(
493
493
  "gryt-chip inline-flex items-center gap-1.5 rounded-(--gryt-radius-full) border px-3 py-1 text-xs font-medium",
494
- mr[m],
494
+ zr[d],
495
495
  e
496
496
  ),
497
- ...g,
497
+ ...p,
498
498
  children: [
499
499
  r,
500
500
  a ?? t,
@@ -507,18 +507,18 @@ const nr = {
507
507
  className: s(
508
508
  "-mr-1 inline-flex h-4 w-4 cursor-pointer items-center justify-center rounded-(--gryt-radius-full)",
509
509
  "opacity-70 transition-opacity hover:opacity-100",
510
- P
510
+ A
511
511
  ),
512
- children: /* @__PURE__ */ o(Gt, { size: 10, weight: "bold", "aria-hidden": "true" })
512
+ children: /* @__PURE__ */ o(Ue, { size: 10, weight: "bold", "aria-hidden": "true" })
513
513
  }
514
514
  ) : null
515
515
  ]
516
516
  }
517
517
  );
518
- }), Kt = l(
518
+ }), it = l(
519
519
  function({ className: t, tone: e = "primary", ...r }, a) {
520
520
  return /* @__PURE__ */ o(
521
- Vt.Root,
521
+ rt.Root,
522
522
  {
523
523
  ref: a,
524
524
  className: s(
@@ -531,15 +531,15 @@ const nr = {
531
531
  "hover:not-data-disabled:border-gryt-accent-light",
532
532
  "motion-safe:hover:not-data-disabled:scale-[1.08]",
533
533
  "motion-safe:active:not-data-disabled:scale-[0.92]",
534
- P,
535
- q,
534
+ A,
535
+ ie,
536
536
  // Unchecked stays a neutral outline; the tone only paints once checked.
537
- sr[e],
537
+ Mr[e],
538
538
  t
539
539
  ),
540
540
  ...r,
541
541
  children: /* @__PURE__ */ o(
542
- Vt.Indicator,
542
+ rt.Indicator,
543
543
  {
544
544
  keepMounted: !0,
545
545
  className: s(
@@ -552,15 +552,15 @@ const nr = {
552
552
  "data-unchecked:scale-0 data-unchecked:opacity-0",
553
553
  "motion-reduce:transition-none"
554
554
  ),
555
- children: /* @__PURE__ */ o(jt, { size: 12, weight: "bold" })
555
+ children: /* @__PURE__ */ o(Xe, { size: 12, weight: "bold" })
556
556
  }
557
557
  )
558
558
  }
559
559
  );
560
560
  }
561
- ), oa = l(function({ className: t, tone: e = "primary", ...r }, a) {
561
+ ), La = l(function({ className: t, tone: e = "primary", ...r }, a) {
562
562
  return /* @__PURE__ */ o(
563
- Ot.Root,
563
+ nt.Root,
564
564
  {
565
565
  ref: a,
566
566
  className: s(
@@ -570,15 +570,15 @@ const nr = {
570
570
  "hover:not-data-disabled:border-gryt-accent-light",
571
571
  "motion-safe:hover:not-data-disabled:scale-[1.08]",
572
572
  "motion-safe:active:not-data-disabled:scale-[0.92]",
573
- P,
574
- q,
573
+ A,
574
+ ie,
575
575
  // Border takes the tone when selected; the dot inside carries the fill.
576
- ir[e],
576
+ Rr[e],
577
577
  t
578
578
  ),
579
579
  ...r,
580
580
  children: /* @__PURE__ */ o(
581
- Ot.Indicator,
581
+ nt.Indicator,
582
582
  {
583
583
  keepMounted: !0,
584
584
  className: s(
@@ -587,16 +587,16 @@ const nr = {
587
587
  // From 0, for the same reason as the Checkbox tick — see the note there.
588
588
  "data-unchecked:scale-0 data-unchecked:opacity-0",
589
589
  "motion-reduce:transition-none",
590
- ge[e]
590
+ Ct[e]
591
591
  )
592
592
  }
593
593
  )
594
594
  }
595
595
  );
596
- }), aa = l(
596
+ }), Da = l(
597
597
  function({ className: t, ...e }, r) {
598
598
  return /* @__PURE__ */ o(
599
- We,
599
+ xr,
600
600
  {
601
601
  ref: r,
602
602
  className: s("gryt-radio-group flex flex-col gap-2", t),
@@ -604,10 +604,10 @@ const nr = {
604
604
  }
605
605
  );
606
606
  }
607
- ), sa = l(
607
+ ), Ga = l(
608
608
  function({ className: t, tone: e = "primary", ...r }, a) {
609
609
  return /* @__PURE__ */ o(
610
- Yt.Root,
610
+ ot.Root,
611
611
  {
612
612
  ref: a,
613
613
  className: s(
@@ -618,14 +618,14 @@ const nr = {
618
618
  "hover:not-data-disabled:border-gryt-accent-light",
619
619
  "motion-safe:hover:not-data-disabled:scale-[1.05]",
620
620
  "motion-safe:active:not-data-disabled:scale-[0.95]",
621
- P,
622
- q,
623
- lr[e],
621
+ A,
622
+ ie,
623
+ Ir[e],
624
624
  t
625
625
  ),
626
626
  ...r,
627
627
  children: /* @__PURE__ */ o(
628
- Yt.Thumb,
628
+ ot.Thumb,
629
629
  {
630
630
  className: s(
631
631
  "h-4.5 w-4.5 rounded-(--gryt-radius-full) bg-gryt-text",
@@ -637,65 +637,65 @@ const nr = {
637
637
  }
638
638
  );
639
639
  }
640
- ), Wt = 3;
641
- function pr({
640
+ ), lt = 3;
641
+ function At({
642
642
  className: n,
643
643
  tone: t = "primary",
644
644
  "aria-label": e,
645
645
  ...r
646
646
  }) {
647
- const [a, c] = _(!1), m = Mt(null);
648
- $e(() => {
649
- if (!a && m.current === null)
647
+ const [a, c] = G(!1), d = ke(null);
648
+ Vt(() => {
649
+ if (!a && d.current === null)
650
650
  return;
651
651
  const f = () => {
652
- m.current = null, c(!1);
652
+ d.current = null, c(!1);
653
653
  };
654
654
  return window.addEventListener("pointerup", f), window.addEventListener("pointercancel", f), () => {
655
655
  window.removeEventListener("pointerup", f), window.removeEventListener("pointercancel", f);
656
656
  };
657
657
  }, [a]);
658
- function g(f) {
659
- m.current = { x: f.clientX, y: f.clientY };
658
+ function p(f) {
659
+ d.current = { x: f.clientX, y: f.clientY };
660
660
  }
661
- function y(f) {
662
- const h = m.current;
661
+ function m(f) {
662
+ const h = d.current;
663
663
  if (h === null || a)
664
664
  return;
665
- (Math.abs(f.clientX - h.x) > Wt || Math.abs(f.clientY - h.y) > Wt) && c(!0);
665
+ (Math.abs(f.clientX - h.x) > lt || Math.abs(f.clientY - h.y) > lt) && c(!0);
666
666
  }
667
- const p = a ? "transition-none" : "duration-(--gryt-dur-spring) ease-spring-tight motion-reduce:transition-none";
668
- return /* @__PURE__ */ o(rt.Root, { className: s("gryt-slider w-full", n), ...r, children: /* @__PURE__ */ o(
669
- rt.Control,
667
+ const y = a ? "transition-none" : "duration-(--gryt-dur-spring) ease-spring-tight motion-reduce:transition-none";
668
+ return /* @__PURE__ */ o(le.Root, { className: s("gryt-slider w-full", n), ...r, children: /* @__PURE__ */ o(
669
+ le.Control,
670
670
  {
671
671
  className: "flex w-full cursor-pointer touch-none items-center py-2 select-none",
672
- onPointerDown: g,
673
- onPointerMove: y,
674
- children: /* @__PURE__ */ d(rt.Track, { className: "h-1.5 w-full rounded-(--gryt-radius-full) bg-gryt-surface-raised select-none", children: [
672
+ onPointerDown: p,
673
+ onPointerMove: m,
674
+ children: /* @__PURE__ */ u(le.Track, { className: "h-1.5 w-full rounded-(--gryt-radius-full) bg-gryt-surface-raised select-none", children: [
675
675
  /* @__PURE__ */ o(
676
- rt.Indicator,
676
+ le.Indicator,
677
677
  {
678
678
  className: s(
679
679
  "h-full rounded-(--gryt-radius-full) select-none",
680
680
  "transition-[width]",
681
- p,
682
- ge[t]
681
+ y,
682
+ Ct[t]
683
683
  )
684
684
  }
685
685
  ),
686
686
  /* @__PURE__ */ o(
687
- rt.Thumb,
687
+ le.Thumb,
688
688
  {
689
689
  "aria-label": e,
690
690
  className: s(
691
691
  "group h-4 w-4 rounded-(--gryt-radius-full) select-none",
692
692
  "transition-[inset-inline-start]",
693
- p,
693
+ y,
694
694
  // The ring goes on the thumb but the focus lands on the visually
695
695
  // hidden input inside it, so this has to match a descendant.
696
696
  // Without it the slider is the one control here you cannot see
697
697
  // yourself tab to.
698
- ar
698
+ Ar
699
699
  ),
700
700
  children: /* @__PURE__ */ o(
701
701
  "span",
@@ -714,11 +714,11 @@ function pr({
714
714
  }
715
715
  ) });
716
716
  }
717
- const yr = {
717
+ const Br = {
718
718
  small: "min-h-9 px-3 text-sm",
719
719
  medium: "min-h-11 px-4 text-sm"
720
720
  };
721
- function fr({
721
+ function Je({
722
722
  className: n,
723
723
  label: t,
724
724
  options: e = [],
@@ -726,12 +726,12 @@ function fr({
726
726
  size: a = "medium",
727
727
  ...c
728
728
  }) {
729
- const m = ce();
730
- return /* @__PURE__ */ d(C.Root, { items: e, ...c, children: [
731
- /* @__PURE__ */ d("div", { className: s("gryt-select flex w-full flex-col gap-1.5", n), children: [
732
- t ? /* @__PURE__ */ o(C.Label, { className: "text-xs font-medium text-gryt-muted", children: t }) : null,
733
- /* @__PURE__ */ d(
734
- C.Trigger,
729
+ const d = $t();
730
+ return /* @__PURE__ */ u(R.Root, { items: e, ...c, children: [
731
+ /* @__PURE__ */ u("div", { className: s("gryt-select flex w-full flex-col gap-1.5", n), children: [
732
+ t ? /* @__PURE__ */ o(R.Label, { className: "text-xs font-medium text-gryt-muted", children: t }) : null,
733
+ /* @__PURE__ */ u(
734
+ R.Trigger,
735
735
  {
736
736
  className: s(
737
737
  "flex w-full cursor-pointer items-center justify-between gap-2",
@@ -739,30 +739,30 @@ function fr({
739
739
  "text-gryt-text select-none",
740
740
  "transition-colors duration-150 hover:border-gryt-accent-light",
741
741
  "data-disabled:cursor-not-allowed data-disabled:opacity-60",
742
- P,
743
- yr[a]
742
+ A,
743
+ Br[a]
744
744
  ),
745
745
  children: [
746
- /* @__PURE__ */ o(C.Value, { placeholder: r }),
747
- /* @__PURE__ */ o(C.Icon, { className: "shrink-0 text-gryt-muted", children: /* @__PURE__ */ o(Fe, { size: 16 }) })
746
+ /* @__PURE__ */ o(R.Value, { placeholder: r }),
747
+ /* @__PURE__ */ o(R.Icon, { className: "shrink-0 text-gryt-muted", children: /* @__PURE__ */ o(ur, { size: 16 }) })
748
748
  ]
749
749
  }
750
750
  )
751
751
  ] }),
752
- /* @__PURE__ */ o(C.Portal, { container: m, children: /* @__PURE__ */ o(
753
- C.Positioner,
752
+ /* @__PURE__ */ o(R.Portal, { container: d, children: /* @__PURE__ */ o(
753
+ R.Positioner,
754
754
  {
755
755
  sideOffset: 6,
756
756
  className: "gryt-select-positioner outline-none",
757
757
  children: /* @__PURE__ */ o(
758
- C.Popup,
758
+ R.Popup,
759
759
  {
760
- className: s("min-w-(--anchor-width) p-1", Y, H),
761
- children: /* @__PURE__ */ o(C.List, { children: e.map((g) => /* @__PURE__ */ d(
762
- C.Item,
760
+ className: s("min-w-(--anchor-width) p-1", Z, Y),
761
+ children: /* @__PURE__ */ o(R.List, { children: e.map((p) => /* @__PURE__ */ u(
762
+ R.Item,
763
763
  {
764
- value: g.value,
765
- disabled: g.disabled,
764
+ value: p.value,
765
+ disabled: p.disabled,
766
766
  className: s(
767
767
  "flex cursor-pointer items-center justify-between gap-2",
768
768
  "rounded-(--gryt-radius-md) px-3 py-2 text-sm text-gryt-text",
@@ -770,11 +770,11 @@ function fr({
770
770
  "data-disabled:cursor-not-allowed data-disabled:opacity-50"
771
771
  ),
772
772
  children: [
773
- /* @__PURE__ */ o(C.ItemText, { children: g.label }),
774
- /* @__PURE__ */ o(C.ItemIndicator, { className: "text-gryt-accent-11", children: /* @__PURE__ */ o(jt, { size: 14, weight: "bold" }) })
773
+ /* @__PURE__ */ o(R.ItemText, { children: p.label }),
774
+ /* @__PURE__ */ o(R.ItemIndicator, { className: "text-gryt-accent-11", children: /* @__PURE__ */ o(Xe, { size: 14, weight: "bold" }) })
775
775
  ]
776
776
  },
777
- String(g.value)
777
+ String(p.value)
778
778
  )) })
779
779
  }
780
780
  )
@@ -782,29 +782,29 @@ function fr({
782
782
  ) })
783
783
  ] });
784
784
  }
785
- function ia({
785
+ function Fa({
786
786
  children: n,
787
787
  className: t,
788
788
  side: e = "top",
789
789
  sideOffset: r = 8,
790
790
  title: a
791
791
  }) {
792
- const c = ce();
793
- return /* @__PURE__ */ d(F.Root, { children: [
794
- /* @__PURE__ */ o(F.Trigger, { render: n }),
795
- /* @__PURE__ */ o(F.Portal, { container: c, children: /* @__PURE__ */ o(
796
- F.Positioner,
792
+ const c = $t();
793
+ return /* @__PURE__ */ u(K.Root, { children: [
794
+ /* @__PURE__ */ o(K.Trigger, { render: n }),
795
+ /* @__PURE__ */ o(K.Portal, { container: c, children: /* @__PURE__ */ o(
796
+ K.Positioner,
797
797
  {
798
798
  side: e,
799
799
  sideOffset: r,
800
800
  className: "gryt-tooltip-positioner",
801
801
  children: /* @__PURE__ */ o(
802
- F.Popup,
802
+ K.Popup,
803
803
  {
804
804
  className: s(
805
805
  "gryt-tooltip rounded-(--gryt-radius-md) border border-gryt-border bg-gryt-surface-raised",
806
806
  "px-2.5 py-1.5 text-xs text-gryt-text",
807
- H,
807
+ Y,
808
808
  t
809
809
  ),
810
810
  children: a
@@ -814,10 +814,10 @@ function ia({
814
814
  ) })
815
815
  ] });
816
816
  }
817
- const la = F.Provider, ca = l(
817
+ const za = K.Provider, Ba = l(
818
818
  function({ className: t, orientation: e = "horizontal", ...r }, a) {
819
819
  return /* @__PURE__ */ o(
820
- Je,
820
+ vr,
821
821
  {
822
822
  ref: a,
823
823
  orientation: e,
@@ -830,7 +830,7 @@ const la = F.Provider, ca = l(
830
830
  }
831
831
  );
832
832
  }
833
- ), da = l(function({ className: t, ...e }, r) {
833
+ ), Ea = l(function({ className: t, ...e }, r) {
834
834
  return /* @__PURE__ */ o(
835
835
  "div",
836
836
  {
@@ -843,14 +843,14 @@ const la = F.Provider, ca = l(
843
843
  }
844
844
  );
845
845
  });
846
- function ua({
846
+ function _a({
847
847
  children: n,
848
848
  className: t,
849
849
  subheader: e,
850
850
  title: r,
851
851
  ...a
852
852
  }) {
853
- return /* @__PURE__ */ d(
853
+ return /* @__PURE__ */ u(
854
854
  "div",
855
855
  {
856
856
  className: s("gryt-card-header flex flex-col gap-1 p-4", t),
@@ -863,7 +863,7 @@ function ua({
863
863
  }
864
864
  );
865
865
  }
866
- function ga({
866
+ function Ha({
867
867
  className: n,
868
868
  ...t
869
869
  }) {
@@ -878,7 +878,7 @@ function ga({
878
878
  }
879
879
  );
880
880
  }
881
- function ma({
881
+ function ja({
882
882
  className: n,
883
883
  ...t
884
884
  }) {
@@ -893,12 +893,12 @@ function ma({
893
893
  }
894
894
  );
895
895
  }
896
- const hr = {
896
+ const Er = {
897
897
  info: "border-gryt-secondary-6 bg-gryt-secondary-3 text-gryt-secondary-11",
898
898
  success: "border-gryt-success-6 bg-gryt-success-3 text-gryt-success-11",
899
899
  warning: "border-gryt-warning-6 bg-gryt-warning-3 text-gryt-warning-11",
900
900
  error: "border-gryt-danger-6 bg-gryt-danger-3 text-gryt-danger-11"
901
- }, pa = l(function({ className: t, severity: e = "info", ...r }, a) {
901
+ }, Oa = l(function({ className: t, severity: e = "info", ...r }, a) {
902
902
  return /* @__PURE__ */ o(
903
903
  "div",
904
904
  {
@@ -906,22 +906,22 @@ const hr = {
906
906
  role: "alert",
907
907
  className: s(
908
908
  "gryt-alert rounded-(--gryt-radius-lg) border px-4 py-3 text-sm",
909
- hr[e],
909
+ Er[e],
910
910
  t
911
911
  ),
912
912
  ...r
913
913
  }
914
914
  );
915
915
  });
916
- function ya({ className: n, value: t = null, ...e }) {
916
+ function Va({ className: n, value: t = null, ...e }) {
917
917
  return /* @__PURE__ */ o(
918
- St.Root,
918
+ De.Root,
919
919
  {
920
920
  value: t,
921
921
  className: s("gryt-progress w-full", n),
922
922
  ...e,
923
- children: /* @__PURE__ */ o(St.Track, { className: "h-1.5 w-full overflow-hidden rounded-(--gryt-radius-full) bg-gryt-surface-raised", children: /* @__PURE__ */ o(
924
- St.Indicator,
923
+ children: /* @__PURE__ */ o(De.Track, { className: "h-1.5 w-full overflow-hidden rounded-(--gryt-radius-full) bg-gryt-surface-raised", children: /* @__PURE__ */ o(
924
+ De.Indicator,
925
925
  {
926
926
  className: s(
927
927
  "h-full rounded-(--gryt-radius-full) bg-gryt-accent",
@@ -938,13 +938,13 @@ function ya({ className: n, value: t = null, ...e }) {
938
938
  }
939
939
  );
940
940
  }
941
- function fa({
941
+ function Ya({
942
942
  className: n,
943
943
  size: t = 24,
944
944
  "aria-label": e = "Loading"
945
945
  }) {
946
946
  return /* @__PURE__ */ o(
947
- _e,
947
+ gr,
948
948
  {
949
949
  role: "status",
950
950
  "aria-label": e,
@@ -957,13 +957,13 @@ function fa({
957
957
  }
958
958
  );
959
959
  }
960
- const br = {
960
+ const _r = {
961
961
  text: "h-4 rounded-(--gryt-radius-sm)",
962
962
  rounded: "rounded-(--gryt-radius-lg)",
963
963
  circular: "rounded-(--gryt-radius-full)",
964
964
  rectangular: "rounded-none"
965
965
  };
966
- function ha({
966
+ function Ua({
967
967
  className: n,
968
968
  height: t,
969
969
  style: e,
@@ -971,7 +971,7 @@ function ha({
971
971
  width: a,
972
972
  ...c
973
973
  }) {
974
- const m = {
974
+ const d = {
975
975
  width: a,
976
976
  height: t,
977
977
  ...e
@@ -988,24 +988,24 @@ function ha({
988
988
  // the surfaces it can land on rather than only the one it was picked
989
989
  // against, and it dims rather than brightens as it pulses.
990
990
  "gryt-skeleton bg-white/9 motion-safe:animate-pulse",
991
- br[r],
991
+ _r[r],
992
992
  n
993
993
  ),
994
- style: m,
994
+ style: d,
995
995
  ...c
996
996
  }
997
997
  );
998
998
  }
999
- const pe = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none", xr = l(
999
+ const Mt = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none", Hr = l(
1000
1000
  function({ className: t, ...e }, r) {
1001
1001
  return /* @__PURE__ */ o(
1002
- j.Backdrop,
1002
+ O.Backdrop,
1003
1003
  {
1004
1004
  ref: r,
1005
1005
  className: s(
1006
1006
  "gryt-dialog-backdrop fixed inset-0 min-h-dvh bg-black/60",
1007
1007
  "backdrop-blur-(--gryt-backdrop-blur)",
1008
- pe,
1008
+ Mt,
1009
1009
  "data-starting-style:opacity-0 data-ending-style:opacity-0",
1010
1010
  t
1011
1011
  ),
@@ -1013,17 +1013,17 @@ const pe = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ea
1013
1013
  }
1014
1014
  );
1015
1015
  }
1016
- ), vr = l(
1016
+ ), jr = l(
1017
1017
  function({ className: t, ...e }, r) {
1018
1018
  return /* @__PURE__ */ o(
1019
- j.Popup,
1019
+ O.Popup,
1020
1020
  {
1021
1021
  ref: r,
1022
1022
  className: s(
1023
1023
  "gryt-dialog fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
1024
1024
  "flex w-[32rem] max-w-[calc(100vw-3rem)] flex-col gap-4",
1025
1025
  "rounded-(--gryt-radius-lg) border border-gryt-border bg-gryt-surface p-5 text-gryt-text",
1026
- pe,
1026
+ Mt,
1027
1027
  "data-starting-style:scale-[0.98] data-starting-style:opacity-0",
1028
1028
  "data-ending-style:scale-[0.98] data-ending-style:opacity-0",
1029
1029
  t
@@ -1032,10 +1032,10 @@ const pe = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ea
1032
1032
  }
1033
1033
  );
1034
1034
  }
1035
- ), wr = l(
1035
+ ), Or = l(
1036
1036
  function({ className: t, ...e }, r) {
1037
1037
  return /* @__PURE__ */ o(
1038
- j.Title,
1038
+ O.Title,
1039
1039
  {
1040
1040
  ref: r,
1041
1041
  className: s(
@@ -1046,10 +1046,10 @@ const pe = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ea
1046
1046
  }
1047
1047
  );
1048
1048
  }
1049
- ), Nr = l(
1049
+ ), Vr = l(
1050
1050
  function({ className: t, ...e }, r) {
1051
1051
  return /* @__PURE__ */ o(
1052
- j.Description,
1052
+ O.Description,
1053
1053
  {
1054
1054
  ref: r,
1055
1055
  className: s(
@@ -1060,7 +1060,7 @@ const pe = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ea
1060
1060
  }
1061
1061
  );
1062
1062
  }
1063
- ), Tr = l(
1063
+ ), Yr = l(
1064
1064
  function({ className: t, ...e }, r) {
1065
1065
  return /* @__PURE__ */ o(
1066
1066
  "div",
@@ -1074,45 +1074,45 @@ const pe = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ea
1074
1074
  }
1075
1075
  );
1076
1076
  }
1077
- ), ba = {
1078
- Root: j.Root,
1079
- Trigger: j.Trigger,
1080
- Portal: j.Portal,
1081
- Close: j.Close,
1082
- Backdrop: xr,
1083
- Popup: vr,
1084
- Title: wr,
1085
- Description: Nr,
1086
- Footer: Tr
1087
- }, Pr = () => () => {
1077
+ ), Xa = {
1078
+ Root: O.Root,
1079
+ Trigger: O.Trigger,
1080
+ Portal: O.Portal,
1081
+ Close: O.Close,
1082
+ Backdrop: Hr,
1083
+ Popup: jr,
1084
+ Title: Or,
1085
+ Description: Vr,
1086
+ Footer: Yr
1087
+ }, Ur = () => () => {
1088
1088
  };
1089
- function Sr(n) {
1090
- const t = It(
1089
+ function Xr(n) {
1090
+ const t = pe(
1091
1091
  (r) => {
1092
- if (typeof window > "u" || !window.matchMedia) return Pr();
1092
+ if (typeof window > "u" || !window.matchMedia) return Ur();
1093
1093
  const a = window.matchMedia(n);
1094
1094
  return a.addEventListener("change", r), () => a.removeEventListener("change", r);
1095
1095
  },
1096
1096
  [n]
1097
- ), e = It(() => typeof window > "u" || !window.matchMedia ? !1 : window.matchMedia(n).matches, [n]);
1098
- return Ce(t, e, () => !1);
1097
+ ), e = pe(() => typeof window > "u" || !window.matchMedia ? !1 : window.matchMedia(n).matches, [n]);
1098
+ return Yt(t, e, () => !1);
1099
1099
  }
1100
- const $r = {
1100
+ const Wr = {
1101
1101
  left: "left",
1102
1102
  right: "right",
1103
1103
  top: "up",
1104
1104
  bottom: "down"
1105
- }, bt = ne("right"), Cr = {
1105
+ }, Pe = bt("right"), Kr = {
1106
1106
  left: "items-stretch justify-start",
1107
1107
  right: "items-stretch justify-end",
1108
1108
  top: "items-start justify-center",
1109
1109
  bottom: "items-end justify-center"
1110
- }, kr = {
1110
+ }, Jr = {
1111
1111
  left: "rounded-r-(--gryt-radius-xl)",
1112
1112
  right: "rounded-l-(--gryt-radius-xl)",
1113
1113
  top: "rounded-b-(--gryt-radius-xl)",
1114
1114
  bottom: "rounded-t-(--gryt-radius-xl)"
1115
- }, Rr = {
1115
+ }, Qr = {
1116
1116
  left: [
1117
1117
  "h-full w-[calc(20rem+var(--gryt-drawer-bleed))] max-w-[calc(85vw+var(--gryt-drawer-bleed))]",
1118
1118
  "-ml-(--gryt-drawer-bleed) border-r py-5 pr-5 pl-[calc(1.25rem+var(--gryt-drawer-bleed))]",
@@ -1142,20 +1142,20 @@ const $r = {
1142
1142
  "data-ending-style:[transform:translateY(calc(100%-var(--gryt-drawer-bleed)))]"
1143
1143
  ].join(" ")
1144
1144
  };
1145
- function Ar({
1145
+ function Zr({
1146
1146
  side: n = "right",
1147
1147
  sheetOnMobile: t = !0,
1148
1148
  children: e,
1149
1149
  ...r
1150
1150
  }) {
1151
- const a = Sr("(max-width: 767px)"), c = t && a ? "bottom" : n;
1152
- return /* @__PURE__ */ o(bt.Provider, { value: c, children: /* @__PURE__ */ o(I.Root, { swipeDirection: $r[c], ...r, children: e }) });
1151
+ const a = Xr("(max-width: 767px)"), c = t && a ? "bottom" : n;
1152
+ return /* @__PURE__ */ o(Pe.Provider, { value: c, children: /* @__PURE__ */ o(D.Root, { swipeDirection: Wr[c], ...r, children: e }) });
1153
1153
  }
1154
- const Ir = l(
1154
+ const qr = l(
1155
1155
  function({ className: t, ...e }, r) {
1156
- const a = ht(bt);
1156
+ const a = $e(Pe);
1157
1157
  return /* @__PURE__ */ o(
1158
- I.Viewport,
1158
+ D.Viewport,
1159
1159
  {
1160
1160
  ref: r,
1161
1161
  className: s(
@@ -1163,17 +1163,17 @@ const Ir = l(
1163
1163
  // viewport is what has to sit above the page. Without it a sticky
1164
1164
  // site header renders over the panel.
1165
1165
  "gryt-drawer-viewport fixed inset-0 z-50 flex",
1166
- Cr[a],
1166
+ Kr[a],
1167
1167
  t
1168
1168
  ),
1169
1169
  ...e
1170
1170
  }
1171
1171
  );
1172
1172
  }
1173
- ), Dr = l(function({ className: t, ...e }, r) {
1174
- const a = ht(bt);
1173
+ ), en = l(function({ className: t, ...e }, r) {
1174
+ const a = $e(Pe);
1175
1175
  return /* @__PURE__ */ o(
1176
- I.Popup,
1176
+ D.Popup,
1177
1177
  {
1178
1178
  ref: r,
1179
1179
  className: s(
@@ -1184,16 +1184,16 @@ const Ir = l(
1184
1184
  // duration here turns a drag into a drag plus lag.
1185
1185
  "data-swiping:duration-0 data-swiping:select-none",
1186
1186
  "motion-reduce:transition-none",
1187
- Rr[a],
1188
- kr[a],
1187
+ Qr[a],
1188
+ Jr[a],
1189
1189
  t
1190
1190
  ),
1191
1191
  ...e
1192
1192
  }
1193
1193
  );
1194
- }), Lr = l(function({ className: t, ...e }, r) {
1194
+ }), tn = l(function({ className: t, ...e }, r) {
1195
1195
  return /* @__PURE__ */ o(
1196
- I.Backdrop,
1196
+ D.Backdrop,
1197
1197
  {
1198
1198
  ref: r,
1199
1199
  className: s(
@@ -1212,8 +1212,8 @@ const Ir = l(
1212
1212
  }
1213
1213
  );
1214
1214
  });
1215
- function Mr({ className: n }) {
1216
- const t = ht(bt);
1215
+ function rn({ className: n }) {
1216
+ const t = $e(Pe);
1217
1217
  return t !== "bottom" && t !== "top" ? null : /* @__PURE__ */ o(
1218
1218
  "div",
1219
1219
  {
@@ -1226,22 +1226,22 @@ function Mr({ className: n }) {
1226
1226
  }
1227
1227
  );
1228
1228
  }
1229
- const xa = {
1230
- Root: Ar,
1231
- Trigger: I.Trigger,
1232
- Portal: I.Portal,
1233
- Backdrop: Lr,
1234
- Viewport: Ir,
1235
- Popup: Dr,
1236
- Content: I.Content,
1237
- Grabber: Mr,
1238
- Close: I.Close,
1239
- Title: I.Title,
1240
- Description: I.Description
1241
- }, Gr = l(
1229
+ const Wa = {
1230
+ Root: Zr,
1231
+ Trigger: D.Trigger,
1232
+ Portal: D.Portal,
1233
+ Backdrop: tn,
1234
+ Viewport: qr,
1235
+ Popup: en,
1236
+ Content: D.Content,
1237
+ Grabber: rn,
1238
+ Close: D.Close,
1239
+ Title: D.Title,
1240
+ Description: D.Description
1241
+ }, nn = l(
1242
1242
  function({ className: t, sideOffset: e = 8, ...r }, a) {
1243
1243
  return /* @__PURE__ */ o(
1244
- V.Positioner,
1244
+ J.Positioner,
1245
1245
  {
1246
1246
  ref: a,
1247
1247
  sideOffset: e,
@@ -1250,23 +1250,23 @@ const xa = {
1250
1250
  }
1251
1251
  );
1252
1252
  }
1253
- ), jr = l(function({ className: t, ...e }, r) {
1253
+ ), on = l(function({ className: t, ...e }, r) {
1254
1254
  return /* @__PURE__ */ o(
1255
- V.Popup,
1255
+ J.Popup,
1256
1256
  {
1257
1257
  ref: r,
1258
1258
  className: s(
1259
1259
  "gryt-menu min-w-44 p-1 outline-none",
1260
+ Z,
1260
1261
  Y,
1261
- H,
1262
1262
  t
1263
1263
  ),
1264
1264
  ...e
1265
1265
  }
1266
1266
  );
1267
- }), Er = l(function({ className: t, ...e }, r) {
1267
+ }), an = l(function({ className: t, ...e }, r) {
1268
1268
  return /* @__PURE__ */ o(
1269
- V.Item,
1269
+ J.Item,
1270
1270
  {
1271
1271
  ref: r,
1272
1272
  className: s(
@@ -1281,26 +1281,26 @@ const xa = {
1281
1281
  ...e
1282
1282
  }
1283
1283
  );
1284
- }), Hr = l(function({ className: t, ...e }, r) {
1284
+ }), sn = l(function({ className: t, ...e }, r) {
1285
1285
  return /* @__PURE__ */ o(
1286
- V.Separator,
1286
+ J.Separator,
1287
1287
  {
1288
1288
  ref: r,
1289
1289
  className: s("gryt-menu-separator my-1 h-px bg-gryt-border", t),
1290
1290
  ...e
1291
1291
  }
1292
1292
  );
1293
- }), $t = {
1294
- Root: V.Root,
1295
- Trigger: V.Trigger,
1296
- Portal: V.Portal,
1297
- Positioner: Gr,
1298
- Popup: jr,
1299
- Item: Er,
1300
- Separator: Hr
1301
- }, zr = l(function({ className: t, ...e }, r) {
1293
+ }), Ge = {
1294
+ Root: J.Root,
1295
+ Trigger: J.Trigger,
1296
+ Portal: J.Portal,
1297
+ Positioner: nn,
1298
+ Popup: on,
1299
+ Item: an,
1300
+ Separator: sn
1301
+ }, ln = l(function({ className: t, ...e }, r) {
1302
1302
  return /* @__PURE__ */ o(
1303
- dt.Root,
1303
+ he.Root,
1304
1304
  {
1305
1305
  ref: r,
1306
1306
  className: s(
@@ -1314,9 +1314,9 @@ const xa = {
1314
1314
  ...e
1315
1315
  }
1316
1316
  );
1317
- }), Br = l(function({ className: t, ...e }, r) {
1317
+ }), cn = l(function({ className: t, ...e }, r) {
1318
1318
  return /* @__PURE__ */ o(
1319
- dt.List,
1319
+ he.List,
1320
1320
  {
1321
1321
  ref: r,
1322
1322
  className: s(
@@ -1331,9 +1331,9 @@ const xa = {
1331
1331
  ...e
1332
1332
  }
1333
1333
  );
1334
- }), Fr = l(function({ className: t, ...e }, r) {
1334
+ }), dn = l(function({ className: t, ...e }, r) {
1335
1335
  return /* @__PURE__ */ o(
1336
- dt.Tab,
1336
+ he.Tab,
1337
1337
  {
1338
1338
  ref: r,
1339
1339
  className: s(
@@ -1362,16 +1362,16 @@ const xa = {
1362
1362
  "data-[orientation=vertical]:gap-2.5 data-[orientation=vertical]:px-3",
1363
1363
  "data-[orientation=vertical]:rounded-(--gryt-radius-md)",
1364
1364
  "data-disabled:cursor-not-allowed data-disabled:opacity-50",
1365
- P,
1365
+ A,
1366
1366
  t
1367
1367
  ),
1368
1368
  ...e
1369
1369
  }
1370
1370
  );
1371
- }), _r = l(
1371
+ }), un = l(
1372
1372
  function({ className: t, ...e }, r) {
1373
1373
  return /* @__PURE__ */ o(
1374
- dt.Indicator,
1374
+ he.Indicator,
1375
1375
  {
1376
1376
  ref: r,
1377
1377
  renderBeforeHydration: !0,
@@ -1395,9 +1395,9 @@ const xa = {
1395
1395
  }
1396
1396
  );
1397
1397
  }
1398
- ), Vr = l(function({ className: t, ...e }, r) {
1398
+ ), gn = l(function({ className: t, ...e }, r) {
1399
1399
  return /* @__PURE__ */ o(
1400
- dt.Panel,
1400
+ he.Panel,
1401
1401
  {
1402
1402
  ref: r,
1403
1403
  className: s(
@@ -1411,9 +1411,9 @@ const xa = {
1411
1411
  ...e
1412
1412
  }
1413
1413
  );
1414
- }), va = Object.assign(zr, { List: Br, Tab: Fr, Panel: Vr, Indicator: _r }), Or = l(function({ className: t, ...e }, r) {
1414
+ }), Ka = Object.assign(ln, { List: cn, Tab: dn, Panel: gn, Indicator: un }), mn = l(function({ className: t, ...e }, r) {
1415
1415
  return /* @__PURE__ */ o(
1416
- ct.Root,
1416
+ fe.Root,
1417
1417
  {
1418
1418
  ref: r,
1419
1419
  className: s(
@@ -1423,10 +1423,10 @@ const xa = {
1423
1423
  ...e
1424
1424
  }
1425
1425
  );
1426
- }), Yr = l(
1426
+ }), pn = l(
1427
1427
  function({ className: t, ...e }, r) {
1428
1428
  return /* @__PURE__ */ o(
1429
- ct.Item,
1429
+ fe.Item,
1430
1430
  {
1431
1431
  ref: r,
1432
1432
  className: s("gryt-accordion-item", t),
@@ -1434,10 +1434,10 @@ const xa = {
1434
1434
  }
1435
1435
  );
1436
1436
  }
1437
- ), Ur = l(
1437
+ ), yn = l(
1438
1438
  function({ children: t, className: e, expandIcon: r, ...a }, c) {
1439
- return /* @__PURE__ */ o(ct.Header, { className: "gryt-accordion-header m-0", children: /* @__PURE__ */ d(
1440
- ct.Trigger,
1439
+ return /* @__PURE__ */ o(fe.Header, { className: "gryt-accordion-header m-0", children: /* @__PURE__ */ u(
1440
+ fe.Trigger,
1441
1441
  {
1442
1442
  ref: c,
1443
1443
  className: s(
@@ -1446,14 +1446,14 @@ const xa = {
1446
1446
  "text-left text-sm font-medium text-gryt-text select-none",
1447
1447
  "transition-colors duration-150 hover:bg-gryt-surface-raised",
1448
1448
  "data-disabled:cursor-not-allowed data-disabled:opacity-50",
1449
- P,
1449
+ A,
1450
1450
  e
1451
1451
  ),
1452
1452
  ...a,
1453
1453
  children: [
1454
1454
  t,
1455
1455
  r === void 0 ? /* @__PURE__ */ o(
1456
- Ve,
1456
+ mr,
1457
1457
  {
1458
1458
  size: 16,
1459
1459
  className: "shrink-0 transition-transform duration-(--gryt-dur-spring) ease-spring data-panel-open:rotate-180 motion-reduce:transition-none"
@@ -1463,10 +1463,10 @@ const xa = {
1463
1463
  }
1464
1464
  ) });
1465
1465
  }
1466
- ), Xr = l(
1466
+ ), fn = l(
1467
1467
  function({ children: t, className: e, ...r }, a) {
1468
1468
  return /* @__PURE__ */ o(
1469
- ct.Panel,
1469
+ fe.Panel,
1470
1470
  {
1471
1471
  ref: a,
1472
1472
  className: s(
@@ -1483,10 +1483,10 @@ const xa = {
1483
1483
  }
1484
1484
  );
1485
1485
  }
1486
- ), wa = Object.assign(Or, { Item: Yr, Trigger: Ur, Panel: Xr }), Kr = l(
1486
+ ), Ja = Object.assign(mn, { Item: pn, Trigger: yn, Panel: fn }), hn = l(
1487
1487
  function({ className: t, sideOffset: e = 2, ...r }, a) {
1488
1488
  return /* @__PURE__ */ o(
1489
- G.Positioner,
1489
+ j.Positioner,
1490
1490
  {
1491
1491
  ref: a,
1492
1492
  sideOffset: e,
@@ -1495,22 +1495,22 @@ const xa = {
1495
1495
  }
1496
1496
  );
1497
1497
  }
1498
- ), Na = {
1499
- Root: G.Root,
1500
- Trigger: G.Trigger,
1501
- Portal: G.Portal,
1502
- Positioner: Kr,
1503
- Popup: $t.Popup,
1504
- Item: $t.Item,
1505
- Separator: $t.Separator,
1506
- Group: G.Group,
1507
- GroupLabel: G.GroupLabel,
1508
- SubmenuRoot: G.SubmenuRoot,
1509
- SubmenuTrigger: G.SubmenuTrigger
1510
- }, Wr = l(
1498
+ ), Qa = {
1499
+ Root: j.Root,
1500
+ Trigger: j.Trigger,
1501
+ Portal: j.Portal,
1502
+ Positioner: hn,
1503
+ Popup: Ge.Popup,
1504
+ Item: Ge.Item,
1505
+ Separator: Ge.Separator,
1506
+ Group: j.Group,
1507
+ GroupLabel: j.GroupLabel,
1508
+ SubmenuRoot: j.SubmenuRoot,
1509
+ SubmenuTrigger: j.SubmenuTrigger
1510
+ }, bn = l(
1511
1511
  function({ className: t, sideOffset: e = 8, ...r }, a) {
1512
1512
  return /* @__PURE__ */ o(
1513
- L.Positioner,
1513
+ B.Positioner,
1514
1514
  {
1515
1515
  ref: a,
1516
1516
  sideOffset: e,
@@ -1519,25 +1519,25 @@ const xa = {
1519
1519
  }
1520
1520
  );
1521
1521
  }
1522
- ), Jr = l(
1522
+ ), xn = l(
1523
1523
  function({ className: t, ...e }, r) {
1524
1524
  return /* @__PURE__ */ o(
1525
- L.Popup,
1525
+ B.Popup,
1526
1526
  {
1527
1527
  ref: r,
1528
1528
  className: s(
1529
1529
  "gryt-popover max-w-[min(20rem,calc(100vw-2rem))] p-4 outline-none",
1530
+ Z,
1530
1531
  Y,
1531
- H,
1532
1532
  t
1533
1533
  ),
1534
1534
  ...e
1535
1535
  }
1536
1536
  );
1537
1537
  }
1538
- ), Qr = l(function({ className: t, ...e }, r) {
1538
+ ), vn = l(function({ className: t, ...e }, r) {
1539
1539
  return /* @__PURE__ */ o(
1540
- L.Title,
1540
+ B.Title,
1541
1541
  {
1542
1542
  ref: r,
1543
1543
  className: s(
@@ -1547,9 +1547,9 @@ const xa = {
1547
1547
  ...e
1548
1548
  }
1549
1549
  );
1550
- }), Zr = l(function({ className: t, ...e }, r) {
1550
+ }), wn = l(function({ className: t, ...e }, r) {
1551
1551
  return /* @__PURE__ */ o(
1552
- L.Description,
1552
+ B.Description,
1553
1553
  {
1554
1554
  ref: r,
1555
1555
  className: s(
@@ -1559,26 +1559,26 @@ const xa = {
1559
1559
  ...e
1560
1560
  }
1561
1561
  );
1562
- }), Ta = {
1563
- Root: L.Root,
1564
- Trigger: L.Trigger,
1565
- Portal: L.Portal,
1566
- Positioner: Wr,
1567
- Popup: Jr,
1568
- Title: Qr,
1569
- Description: Zr,
1570
- Close: L.Close,
1571
- Arrow: L.Arrow
1572
- }, qr = {
1562
+ }), Za = {
1563
+ Root: B.Root,
1564
+ Trigger: B.Trigger,
1565
+ Portal: B.Portal,
1566
+ Positioner: bn,
1567
+ Popup: xn,
1568
+ Title: vn,
1569
+ Description: wn,
1570
+ Close: B.Close,
1571
+ Arrow: B.Arrow
1572
+ }, Nn = {
1573
1573
  neutral: "border-white/8 bg-gryt-surface",
1574
1574
  info: "border-gryt-secondary-6 bg-gryt-secondary-2",
1575
1575
  success: "border-gryt-success-6 bg-gryt-success-2",
1576
1576
  warning: "border-gryt-warning-6 bg-gryt-warning-2",
1577
1577
  danger: "border-gryt-danger-6 bg-gryt-danger-2"
1578
- }, tn = l(
1578
+ }, Tn = l(
1579
1579
  function({ className: t, ...e }, r) {
1580
1580
  return /* @__PURE__ */ o(
1581
- M.Viewport,
1581
+ E.Viewport,
1582
1582
  {
1583
1583
  ref: r,
1584
1584
  className: s(
@@ -1590,9 +1590,9 @@ const xa = {
1590
1590
  }
1591
1591
  );
1592
1592
  }
1593
- ), en = l(function({ className: t, severity: e = "neutral", ...r }, a) {
1593
+ ), Sn = l(function({ className: t, severity: e = "neutral", ...r }, a) {
1594
1594
  return /* @__PURE__ */ o(
1595
- M.Root,
1595
+ E.Root,
1596
1596
  {
1597
1597
  ref: a,
1598
1598
  className: s(
@@ -1603,7 +1603,7 @@ const xa = {
1603
1603
  // white hairline separates it from the page without drawing a box
1604
1604
  // around it.
1605
1605
  "rounded-(--gryt-radius-xl) border text-gryt-text",
1606
- qr[e],
1606
+ Nn[e],
1607
1607
  // Swiping is a pointer gesture, so the toast follows the finger
1608
1608
  // through Base UI's swipe variables before it animates out.
1609
1609
  "transition-[opacity,transform] duration-(--gryt-dur-spring) ease-spring",
@@ -1615,9 +1615,9 @@ const xa = {
1615
1615
  ...r
1616
1616
  }
1617
1617
  );
1618
- }), rn = l(function({ className: t, ...e }, r) {
1618
+ }), $n = l(function({ className: t, ...e }, r) {
1619
1619
  return /* @__PURE__ */ o(
1620
- M.Title,
1620
+ E.Title,
1621
1621
  {
1622
1622
  ref: r,
1623
1623
  className: s(
@@ -1627,9 +1627,9 @@ const xa = {
1627
1627
  ...e
1628
1628
  }
1629
1629
  );
1630
- }), nn = l(function({ className: t, ...e }, r) {
1630
+ }), kn = l(function({ className: t, ...e }, r) {
1631
1631
  return /* @__PURE__ */ o(
1632
- M.Description,
1632
+ E.Description,
1633
1633
  {
1634
1634
  ref: r,
1635
1635
  className: s(
@@ -1639,9 +1639,9 @@ const xa = {
1639
1639
  ...e
1640
1640
  }
1641
1641
  );
1642
- }), on = l(function({ className: t, children: e, ...r }, a) {
1642
+ }), Pn = l(function({ className: t, children: e, ...r }, a) {
1643
1643
  return /* @__PURE__ */ o(
1644
- M.Close,
1644
+ E.Close,
1645
1645
  {
1646
1646
  ref: a,
1647
1647
  "aria-label": "Close",
@@ -1653,12 +1653,12 @@ const xa = {
1653
1653
  t
1654
1654
  ),
1655
1655
  ...r,
1656
- children: e ?? /* @__PURE__ */ o(Gt, { size: 14, weight: "bold" })
1656
+ children: e ?? /* @__PURE__ */ o(Ue, { size: 14, weight: "bold" })
1657
1657
  }
1658
1658
  );
1659
- }), an = l(function({ className: t, ...e }, r) {
1659
+ }), Cn = l(function({ className: t, ...e }, r) {
1660
1660
  return /* @__PURE__ */ o(
1661
- M.Action,
1661
+ E.Action,
1662
1662
  {
1663
1663
  ref: r,
1664
1664
  className: s(
@@ -1672,19 +1672,19 @@ const xa = {
1672
1672
  ...e
1673
1673
  }
1674
1674
  );
1675
- }), Pa = {
1676
- Provider: M.Provider,
1677
- Portal: M.Portal,
1678
- Viewport: tn,
1679
- Root: en,
1680
- Title: rn,
1681
- Description: nn,
1682
- Close: on,
1683
- Action: an
1684
- }, Sa = M.useToastManager, sn = l(
1675
+ }), qa = {
1676
+ Provider: E.Provider,
1677
+ Portal: E.Portal,
1678
+ Viewport: Tn,
1679
+ Root: Sn,
1680
+ Title: $n,
1681
+ Description: kn,
1682
+ Close: Pn,
1683
+ Action: Cn
1684
+ }, es = E.useToastManager, An = l(
1685
1685
  function({ className: t, ...e }, r) {
1686
1686
  return /* @__PURE__ */ o(
1687
- Z.Root,
1687
+ se.Root,
1688
1688
  {
1689
1689
  ref: r,
1690
1690
  className: s("gryt-scroll-area relative", t),
@@ -1692,10 +1692,10 @@ const xa = {
1692
1692
  }
1693
1693
  );
1694
1694
  }
1695
- ), ln = l(
1695
+ ), Mn = l(
1696
1696
  function({ className: t, ...e }, r) {
1697
1697
  return /* @__PURE__ */ o(
1698
- Z.Viewport,
1698
+ se.Viewport,
1699
1699
  {
1700
1700
  ref: r,
1701
1701
  className: s(
@@ -1707,10 +1707,10 @@ const xa = {
1707
1707
  }
1708
1708
  );
1709
1709
  }
1710
- ), cn = l(
1710
+ ), Rn = l(
1711
1711
  function({ className: t, orientation: e, ...r }, a) {
1712
1712
  return /* @__PURE__ */ o(
1713
- Z.Scrollbar,
1713
+ se.Scrollbar,
1714
1714
  {
1715
1715
  ref: a,
1716
1716
  orientation: e,
@@ -1725,17 +1725,17 @@ const xa = {
1725
1725
  t
1726
1726
  ),
1727
1727
  ...r,
1728
- children: /* @__PURE__ */ o(Z.Thumb, { className: "flex-1 rounded-(--gryt-radius-full) bg-gryt-border transition-colors hover:bg-gryt-muted motion-reduce:transition-none" })
1728
+ children: /* @__PURE__ */ o(se.Thumb, { className: "flex-1 rounded-(--gryt-radius-full) bg-gryt-border transition-colors hover:bg-gryt-muted motion-reduce:transition-none" })
1729
1729
  }
1730
1730
  );
1731
1731
  }
1732
- ), $a = {
1733
- Root: sn,
1734
- Viewport: ln,
1735
- Scrollbar: cn,
1736
- Content: Z.Content,
1737
- Corner: Z.Corner
1738
- }, dn = {
1732
+ ), ts = {
1733
+ Root: An,
1734
+ Viewport: Mn,
1735
+ Scrollbar: Rn,
1736
+ Content: se.Content,
1737
+ Corner: se.Corner
1738
+ }, In = {
1739
1739
  primary: [
1740
1740
  "text-gryt-muted hover:not-data-disabled:bg-white/8",
1741
1741
  "data-pressed:bg-gryt-accent data-pressed:text-gryt-on-accent",
@@ -1756,15 +1756,15 @@ const xa = {
1756
1756
  "data-pressed:bg-gryt-danger data-pressed:text-gryt-on-danger",
1757
1757
  "data-pressed:hover:not-data-disabled:bg-gryt-danger"
1758
1758
  ].join(" ")
1759
- }, un = {
1759
+ }, Ln = {
1760
1760
  xsmall: "h-8 min-w-8 px-2 text-xs",
1761
1761
  small: "h-9 min-w-9 px-2.5 text-sm",
1762
1762
  medium: "h-10 min-w-10 px-3 text-sm",
1763
1763
  large: "h-12 min-w-12 px-4 text-base"
1764
- }, Jt = l(
1764
+ }, ct = l(
1765
1765
  function({ className: t, size: e = "medium", tone: r = "primary", ...a }, c) {
1766
1766
  return /* @__PURE__ */ o(
1767
- Qe,
1767
+ wr,
1768
1768
  {
1769
1769
  ref: c,
1770
1770
  className: s(
@@ -1775,20 +1775,20 @@ const xa = {
1775
1775
  "transition-[scale,background-color,color] duration-(--gryt-dur-spring) ease-spring",
1776
1776
  "motion-safe:hover:not-data-disabled:scale-[1.06]",
1777
1777
  "motion-safe:active:not-data-disabled:scale-[0.94]",
1778
- P,
1779
- q,
1780
- un[e],
1781
- dn[r],
1778
+ A,
1779
+ ie,
1780
+ Ln[e],
1781
+ In[r],
1782
1782
  t
1783
1783
  ),
1784
1784
  ...a
1785
1785
  }
1786
1786
  );
1787
1787
  }
1788
- ), gn = l(
1788
+ ), Dn = l(
1789
1789
  function({ className: t, ...e }, r) {
1790
1790
  return /* @__PURE__ */ o(
1791
- Ze,
1791
+ Nr,
1792
1792
  {
1793
1793
  ref: r,
1794
1794
  className: s(
@@ -1800,12 +1800,12 @@ const xa = {
1800
1800
  }
1801
1801
  );
1802
1802
  }
1803
- ), ye = Ae, Ca = Re;
1804
- function Lt(n, t) {
1803
+ ), Rt = Wt, rs = Xt;
1804
+ function Ve(n, t) {
1805
1805
  return t === "light" && n.lightHue !== null ? "lightHue" : "hue";
1806
1806
  }
1807
- const ft = De;
1808
- function mn(n) {
1807
+ const Se = Jt;
1808
+ function Gn(n) {
1809
1809
  return {
1810
1810
  hue: { ...n.hue },
1811
1811
  lightHue: n.lightHue === null ? null : { ...n.lightHue },
@@ -1814,23 +1814,23 @@ function mn(n) {
1814
1814
  radius: { ...n.radius }
1815
1815
  };
1816
1816
  }
1817
- function pn(n, t) {
1818
- return { ...ft(n, t), ...n[t] };
1817
+ function Fn(n, t) {
1818
+ return { ...Se(n, t), ...n[t] };
1819
1819
  }
1820
- function yn(n, t) {
1821
- return oe(Ie(n, t));
1820
+ function zn(n, t) {
1821
+ return xt(Kt(n, t));
1822
1822
  }
1823
- function D(n, t) {
1823
+ function z(n, t) {
1824
1824
  const e = n;
1825
1825
  return Array.from(
1826
1826
  { length: 12 },
1827
1827
  (r, a) => e[`--gryt-${t}-${a + 1}`]
1828
1828
  );
1829
1829
  }
1830
- function Qt(n) {
1830
+ function dt(n) {
1831
1831
  return JSON.stringify(n);
1832
1832
  }
1833
- const Ct = {
1833
+ const Fe = {
1834
1834
  accent: "Accent",
1835
1835
  accentLight: "Accent, light",
1836
1836
  secondary: "Secondary",
@@ -1842,7 +1842,7 @@ const Ct = {
1842
1842
  onAccent: "Text on accent",
1843
1843
  onSecondary: "Text on secondary",
1844
1844
  onDanger: "Text on danger"
1845
- }, Zt = {
1845
+ }, ut = {
1846
1846
  bg: "Page",
1847
1847
  surface: "Surface",
1848
1848
  surfaceRaised: "Raised surface",
@@ -1850,44 +1850,44 @@ const Ct = {
1850
1850
  border: "Border",
1851
1851
  muted: "Muted text",
1852
1852
  text: "Text"
1853
- }, qt = {
1853
+ }, gt = {
1854
1854
  sm: "Small",
1855
1855
  md: "Medium",
1856
1856
  lg: "Large",
1857
1857
  xl: "Extra large",
1858
1858
  full: "Full"
1859
- }, fn = {
1859
+ }, Bn = {
1860
1860
  sm: "Chips, swatches, small insets",
1861
1861
  md: "Menu rows, list items",
1862
1862
  lg: "Cards and panels",
1863
1863
  xl: "Dialogs, composers, bubbles",
1864
1864
  full: "Buttons, fields, avatars"
1865
1865
  };
1866
- function ot({
1866
+ function de({
1867
1867
  label: n,
1868
1868
  value: t,
1869
1869
  onChange: e,
1870
1870
  warning: r,
1871
1871
  disabled: a = !1
1872
1872
  }) {
1873
- const c = ke(), [m, g] = _(t), [y, p] = _(t);
1874
- t !== y && (p(t), g(t));
1873
+ const c = Ut(), [d, p] = G(t), [m, y] = G(t);
1874
+ t !== m && (y(t), p(t));
1875
1875
  function f(h) {
1876
- g(h), Le(h) && e(lt(h));
1876
+ p(h), Qt(h) && e(ye(h));
1877
1877
  }
1878
- return /* @__PURE__ */ d("div", { className: "min-w-0", children: [
1879
- /* @__PURE__ */ d(
1878
+ return /* @__PURE__ */ u("div", { className: "min-w-0", children: [
1879
+ /* @__PURE__ */ u(
1880
1880
  "span",
1881
1881
  {
1882
1882
  className: "mb-1 flex items-center gap-1.5 text-xs font-medium text-gryt-muted",
1883
1883
  id: `${c}-label`,
1884
1884
  children: [
1885
1885
  /* @__PURE__ */ o("span", { className: "truncate", children: n }),
1886
- r ? /* @__PURE__ */ o("span", { className: "inline-flex shrink-0 text-gryt-warning-11", title: r, children: /* @__PURE__ */ o(se, { "aria-label": r, size: 13 }) }) : null
1886
+ r ? /* @__PURE__ */ o("span", { className: "inline-flex shrink-0 text-gryt-warning-11", title: r, children: /* @__PURE__ */ o(Nt, { "aria-label": r, size: 13 }) }) : null
1887
1887
  ]
1888
1888
  }
1889
1889
  ),
1890
- /* @__PURE__ */ d("span", { className: "flex items-center gap-2", children: [
1890
+ /* @__PURE__ */ u("span", { className: "flex items-center gap-2", children: [
1891
1891
  /* @__PURE__ */ o(
1892
1892
  "input",
1893
1893
  {
@@ -1896,68 +1896,450 @@ function ot({
1896
1896
  disabled: a,
1897
1897
  onChange: (h) => f(h.target.value),
1898
1898
  type: "color",
1899
- value: lt(t)
1899
+ value: ye(t)
1900
1900
  }
1901
1901
  ),
1902
1902
  /* @__PURE__ */ o(
1903
- me,
1903
+ Ke,
1904
1904
  {
1905
1905
  "aria-label": `${n}, hex value`,
1906
1906
  className: "font-mono",
1907
1907
  disabled: a,
1908
- onBlur: () => g(t),
1908
+ onBlur: () => p(t),
1909
1909
  onChange: (h) => f(h.target.value),
1910
1910
  size: "small",
1911
1911
  spellCheck: !1,
1912
- value: m
1912
+ value: d
1913
1913
  }
1914
1914
  )
1915
1915
  ] })
1916
1916
  ] });
1917
1917
  }
1918
- const hn = {
1919
- pass: jt,
1920
- tight: se,
1921
- fail: Gt
1922
- }, te = {
1918
+ const ee = "ui-sans-serif, system-ui, sans-serif", ze = "ui-serif, Georgia, serif", ve = "ui-monospace, Menlo, Consolas, monospace", Ye = [
1919
+ {
1920
+ label: "Atkinson Hyperlegible",
1921
+ stack: `"Atkinson Hyperlegible Next", ${ee}`,
1922
+ remote: !1,
1923
+ note: "What Gryt ships. Drawn so letterforms cannot be confused."
1924
+ },
1925
+ {
1926
+ label: "System",
1927
+ stack: ee,
1928
+ remote: !1,
1929
+ note: "Whatever this machine uses. Nothing to load."
1930
+ },
1931
+ {
1932
+ label: "System serif",
1933
+ stack: ze,
1934
+ remote: !1,
1935
+ note: "The machine's serif. Nothing to load."
1936
+ },
1937
+ {
1938
+ label: "Atkinson Hyperlegible Mono",
1939
+ stack: `"Atkinson Hyperlegible Mono", ${ve}`,
1940
+ remote: !1,
1941
+ note: "The monospace Gryt ships."
1942
+ },
1943
+ {
1944
+ label: "System mono",
1945
+ stack: ve,
1946
+ remote: !1,
1947
+ note: "The machine's monospace. Nothing to load."
1948
+ },
1949
+ {
1950
+ label: "Inter",
1951
+ stack: `"Inter", ${ee}`,
1952
+ remote: !0,
1953
+ note: "The default interface grotesque. Neutral to a fault."
1954
+ },
1955
+ {
1956
+ label: "Geist",
1957
+ stack: `"Geist", ${ee}`,
1958
+ remote: !0,
1959
+ note: "Vercel's. What shadcn/ui is set in."
1960
+ },
1961
+ {
1962
+ label: "IBM Plex Sans",
1963
+ stack: `"IBM Plex Sans", ${ee}`,
1964
+ remote: !0,
1965
+ note: "Technical and a little cold, with a real mono to match."
1966
+ },
1967
+ {
1968
+ label: "Archivo",
1969
+ stack: `"Archivo", ${ee}`,
1970
+ remote: !0,
1971
+ note: "Grotesque with weight. Good for headings that carry."
1972
+ },
1973
+ {
1974
+ label: "Fraunces",
1975
+ stack: `"Fraunces", ${ze}`,
1976
+ remote: !0,
1977
+ note: "A serif with opinions. Headings rather than body."
1978
+ },
1979
+ {
1980
+ label: "Source Serif 4",
1981
+ stack: `"Source Serif 4", ${ze}`,
1982
+ remote: !0,
1983
+ note: "A serif you can read a paragraph in."
1984
+ },
1985
+ {
1986
+ label: "JetBrains Mono",
1987
+ stack: `"JetBrains Mono", ${ve}`,
1988
+ remote: !0,
1989
+ note: "Monospace with a tall x-height. Made for code."
1990
+ },
1991
+ {
1992
+ label: "IBM Plex Mono",
1993
+ stack: `"IBM Plex Mono", ${ve}`,
1994
+ remote: !0,
1995
+ note: "The mono beside IBM Plex Sans."
1996
+ }
1997
+ ], En = {
1998
+ body: "Body",
1999
+ display: "Headings",
2000
+ mono: "Code and numbers"
2001
+ }, _n = {
2002
+ body: "Messages, labels, everything you read.",
2003
+ display: "Headings and titles. Defaults to the body face.",
2004
+ mono: "Code, hex values, timestamps, fingerprints."
2005
+ };
2006
+ function Hn(n) {
2007
+ return Ye.find((t) => t.stack === n);
2008
+ }
2009
+ function jn(n) {
2010
+ return (n.split(",")[0]?.trim() ?? "").replace(/^["']|["']$/g, "");
2011
+ }
2012
+ const Be = "custom";
2013
+ function On({
2014
+ role: n,
2015
+ fonts: t,
2016
+ onChange: e,
2017
+ remoteAllowed: r = !0
2018
+ }) {
2019
+ const a = t?.[n] ?? vt[n], c = Hn(a), [d, p] = G(
2020
+ () => c === void 0 ? jn(a) : ""
2021
+ ), m = n === "mono" ? "ui-monospace, Menlo, Consolas, monospace" : "ui-sans-serif, system-ui, sans-serif";
2022
+ function y(b) {
2023
+ if (b === Be) {
2024
+ const v = d.trim();
2025
+ v !== "" && f(v);
2026
+ return;
2027
+ }
2028
+ const x = Ye.find((v) => v.label === b);
2029
+ x !== void 0 && e(x.stack);
2030
+ }
2031
+ function f(b) {
2032
+ const x = `"${b}", ${m}`;
2033
+ Zt(x) && e(x);
2034
+ }
2035
+ const h = c?.remote === !0 && !r;
2036
+ return /* @__PURE__ */ u("div", { className: "min-w-0 flex flex-col gap-1.5", children: [
2037
+ /* @__PURE__ */ o(
2038
+ Je,
2039
+ {
2040
+ label: En[n],
2041
+ onValueChange: (b) => y(String(b)),
2042
+ options: [
2043
+ ...Ye.map((b) => ({
2044
+ label: b.remote ? `${b.label} · fetched` : b.label,
2045
+ value: b.label
2046
+ })),
2047
+ { label: "Something else…", value: Be }
2048
+ ],
2049
+ size: "small",
2050
+ value: c?.label ?? Be
2051
+ }
2052
+ ),
2053
+ c === void 0 ? /* @__PURE__ */ o(
2054
+ Ke,
2055
+ {
2056
+ label: "Family name",
2057
+ onChange: (b) => {
2058
+ p(b.target.value);
2059
+ const x = b.target.value.trim();
2060
+ x !== "" && f(x);
2061
+ },
2062
+ placeholder: "Bodoni Moda",
2063
+ size: "small",
2064
+ value: d
2065
+ }
2066
+ ) : null,
2067
+ /* @__PURE__ */ o("p", { className: "m-0 text-[11px] leading-4 text-gryt-muted", children: c?.note ?? _n[n] }),
2068
+ h ? /* @__PURE__ */ o("p", { className: "m-0 text-[11px] leading-4 text-gryt-warning-11", children: "This one is fetched from Google, which is off on this machine. It will fall back until you turn it on." }) : null,
2069
+ /* @__PURE__ */ o(
2070
+ "p",
2071
+ {
2072
+ className: "m-0 truncate text-sm text-gryt-text",
2073
+ style: { fontFamily: a },
2074
+ children: "The quick brown fox — 0123456789"
2075
+ }
2076
+ )
2077
+ ] });
2078
+ }
2079
+ const mt = 0.45, _ = { min: -mt, size: 1 + mt * 2 };
2080
+ function pt({
2081
+ value: n,
2082
+ onChange: t,
2083
+ reference: e,
2084
+ samples: r
2085
+ }) {
2086
+ const a = r !== void 0, c = ke(null), [d, p] = G(null), [m, y, f, h] = n, b = pe((w, $) => {
2087
+ const M = c.current?.getBoundingClientRect();
2088
+ if (M === void 0 || M.width === 0) return null;
2089
+ const F = _.min + (w - M.left) / M.width * _.size, q = _.min + (M.bottom - $) / M.height * _.size;
2090
+ return { x: F, y: q };
2091
+ }, []), x = pe(
2092
+ (w) => {
2093
+ if (d === null) return;
2094
+ const $ = b(w.clientX, w.clientY);
2095
+ if ($ === null) return;
2096
+ const M = Math.min(1, Math.max(0, Number($.x.toFixed(3)))), F = Number($.y.toFixed(3));
2097
+ t(
2098
+ d === 0 ? [M, F, f, h] : [m, y, M, F]
2099
+ );
2100
+ },
2101
+ [d, t, b, m, y, f, h]
2102
+ ), v = (w) => w, N = (w) => 1 - w, k = `M 0 ${N(0)} C ${v(m)} ${N(y)}, ${v(f)} ${N(h)}, 1 ${N(1)}`;
2103
+ return /* @__PURE__ */ u(
2104
+ "svg",
2105
+ {
2106
+ className: "w-full touch-none rounded-(--gryt-radius-sm) border border-gryt-border bg-gryt-surface-raised",
2107
+ onPointerDown: (w) => {
2108
+ if (a) return;
2109
+ const $ = b(w.clientX, w.clientY);
2110
+ if ($ === null) return;
2111
+ const M = (F, q) => ($.x - F) ** 2 + ($.y - q) ** 2;
2112
+ p(M(m, y) <= M(f, h) ? 0 : 1), w.currentTarget.setPointerCapture(w.pointerId);
2113
+ },
2114
+ onPointerMove: x,
2115
+ onPointerUp: (w) => {
2116
+ p(null), w.currentTarget.releasePointerCapture(w.pointerId);
2117
+ },
2118
+ preserveAspectRatio: "none",
2119
+ ref: c,
2120
+ role: a ? "img" : "application",
2121
+ "aria-label": "Timing curve",
2122
+ style: { height: 132 },
2123
+ viewBox: `${_.min} ${_.min} ${_.size} ${_.size}`,
2124
+ children: [
2125
+ /* @__PURE__ */ o(
2126
+ "rect",
2127
+ {
2128
+ fill: "none",
2129
+ height: 1,
2130
+ stroke: "var(--gryt-border)",
2131
+ strokeWidth: 4e-3,
2132
+ width: 1,
2133
+ x: 0,
2134
+ y: 0
2135
+ }
2136
+ ),
2137
+ e !== void 0 ? /* @__PURE__ */ o(
2138
+ "polyline",
2139
+ {
2140
+ fill: "none",
2141
+ opacity: 0.35,
2142
+ points: e.map((w, $) => `${$ / (e.length - 1)},${N(w)}`).join(" "),
2143
+ stroke: "var(--gryt-muted)",
2144
+ strokeWidth: 8e-3
2145
+ }
2146
+ ) : null,
2147
+ a ? /* @__PURE__ */ o(
2148
+ "polyline",
2149
+ {
2150
+ fill: "none",
2151
+ points: r.map((w, $) => `${$ / (r.length - 1)},${N(w)}`).join(" "),
2152
+ stroke: "var(--gryt-accent)",
2153
+ strokeWidth: 0.014
2154
+ }
2155
+ ) : /* @__PURE__ */ u(jt, { children: [
2156
+ /* @__PURE__ */ o(
2157
+ "line",
2158
+ {
2159
+ stroke: "var(--gryt-muted)",
2160
+ strokeWidth: 5e-3,
2161
+ x1: 0,
2162
+ x2: v(m),
2163
+ y1: N(0),
2164
+ y2: N(y)
2165
+ }
2166
+ ),
2167
+ /* @__PURE__ */ o(
2168
+ "line",
2169
+ {
2170
+ stroke: "var(--gryt-muted)",
2171
+ strokeWidth: 5e-3,
2172
+ x1: 1,
2173
+ x2: v(f),
2174
+ y1: N(1),
2175
+ y2: N(h)
2176
+ }
2177
+ ),
2178
+ /* @__PURE__ */ o(
2179
+ "path",
2180
+ {
2181
+ d: k,
2182
+ fill: "none",
2183
+ stroke: "var(--gryt-accent)",
2184
+ strokeWidth: 0.014
2185
+ }
2186
+ ),
2187
+ /* @__PURE__ */ o(
2188
+ "circle",
2189
+ {
2190
+ cx: v(m),
2191
+ cy: N(y),
2192
+ fill: "var(--gryt-accent)",
2193
+ r: d === 0 ? 0.035 : 0.026
2194
+ }
2195
+ ),
2196
+ /* @__PURE__ */ o(
2197
+ "circle",
2198
+ {
2199
+ cx: v(f),
2200
+ cy: N(h),
2201
+ fill: "var(--gryt-accent)",
2202
+ r: d === 1 ? 0.035 : 0.026
2203
+ }
2204
+ )
2205
+ ] })
2206
+ ]
2207
+ }
2208
+ );
2209
+ }
2210
+ const Ee = "custom", Vn = [0.22, 1, 0.36, 1];
2211
+ function Yn({ motion: n, onChange: t }) {
2212
+ const e = n ?? er, r = qt(e.curve) ? e.curve : null, [a, c] = G(
2213
+ r ?? Vn
2214
+ );
2215
+ function d(m) {
2216
+ t({ ...e, curve: m });
2217
+ }
2218
+ const p = e.scale === 0;
2219
+ return /* @__PURE__ */ u("div", { className: "flex min-w-0 flex-col gap-3", children: [
2220
+ /* @__PURE__ */ u("div", { className: "min-w-0", children: [
2221
+ /* @__PURE__ */ u("div", { className: "mb-1 flex items-baseline justify-between gap-2", children: [
2222
+ /* @__PURE__ */ o("span", { className: "text-xs font-medium text-gryt-muted", children: "Speed" }),
2223
+ /* @__PURE__ */ o("span", { className: "font-mono text-[11px] text-gryt-muted", children: p ? "off" : `${e.scale.toFixed(2)}× · ${Math.round(
2224
+ qe.spring * e.scale
2225
+ )}ms` })
2226
+ ] }),
2227
+ /* @__PURE__ */ o(
2228
+ At,
2229
+ {
2230
+ "aria-label": "Animation speed",
2231
+ max: tr,
2232
+ min: 0,
2233
+ onValueChange: (m) => t({ ...e, scale: Number(Number(m).toFixed(2)) }),
2234
+ step: 0.05,
2235
+ value: e.scale
2236
+ }
2237
+ ),
2238
+ /* @__PURE__ */ o("p", { className: "m-0 pt-1 text-[11px] leading-4 text-gryt-muted", children: p ? "Nothing animates. A real choice, not a broken one — some people find movement unpleasant." : "One multiplier over every tier, so a drawer stays slower than a button." })
2239
+ ] }),
2240
+ /* @__PURE__ */ o("div", { className: "min-w-0", children: /* @__PURE__ */ o(
2241
+ Je,
2242
+ {
2243
+ label: "Curve",
2244
+ onValueChange: (m) => {
2245
+ const y = String(m);
2246
+ d(y === Ee ? a : y);
2247
+ },
2248
+ options: [
2249
+ { label: "Spring — overshoots and settles", value: "spring" },
2250
+ { label: "Smooth — settles without passing", value: "smooth" },
2251
+ { label: "Linear — no easing at all", value: "linear" },
2252
+ { label: "Draw one…", value: Ee }
2253
+ ],
2254
+ size: "small",
2255
+ value: r === null ? e.curve : Ee
2256
+ }
2257
+ ) }),
2258
+ r !== null ? /* @__PURE__ */ u("div", { className: "flex min-w-0 flex-col gap-1.5", children: [
2259
+ /* @__PURE__ */ o(
2260
+ pt,
2261
+ {
2262
+ onChange: (m) => {
2263
+ c(m), d(m);
2264
+ },
2265
+ reference: et,
2266
+ value: r
2267
+ }
2268
+ ),
2269
+ /* @__PURE__ */ u("p", { className: "m-0 font-mono text-[11px] text-gryt-muted", children: [
2270
+ "cubic-bezier(",
2271
+ r.join(", "),
2272
+ ")"
2273
+ ] }),
2274
+ /* @__PURE__ */ o("p", { className: "m-0 text-[11px] leading-4 text-gryt-muted", children: "The faint line is the shipped spring, to compare against. Anything drawn above the box overshoots — fine on a button, and it throws a drawer outside its own edge, because one curve now does both jobs." })
2275
+ ] }) : /* @__PURE__ */ o(
2276
+ pt,
2277
+ {
2278
+ onChange: d,
2279
+ samples: e.curve === "smooth" ? rr : e.curve === "linear" ? [0, 1] : et,
2280
+ value: a
2281
+ }
2282
+ ),
2283
+ /* @__PURE__ */ u("div", { className: "min-w-0", children: [
2284
+ /* @__PURE__ */ o("span", { className: "text-xs font-medium text-gryt-muted", children: "Preview" }),
2285
+ /* @__PURE__ */ o("div", { className: "mt-1 overflow-hidden rounded-(--gryt-radius-sm) border border-gryt-border bg-gryt-surface-raised p-2", children: /* @__PURE__ */ o(
2286
+ "div",
2287
+ {
2288
+ className: "h-4 w-4 rounded-(--gryt-radius-sm) bg-gryt-accent",
2289
+ style: {
2290
+ animation: p ? "none" : `gryt-motion-preview ${Math.round(
2291
+ qe.springSoft * e.scale
2292
+ )}ms var(--ease-spring) infinite alternate`
2293
+ }
2294
+ },
2295
+ `${e.scale}-${String(e.curve)}`
2296
+ ) })
2297
+ ] })
2298
+ ] });
2299
+ }
2300
+ const Un = {
2301
+ pass: Xe,
2302
+ tight: Nt,
2303
+ fail: Ue
2304
+ }, yt = {
1923
2305
  pass: "text-gryt-success-11",
1924
2306
  tight: "text-gryt-warning-11",
1925
2307
  fail: "text-gryt-danger-11"
1926
2308
  };
1927
- function bn({ checks: n, onRepair: t }) {
2309
+ function Xn({ checks: n, onRepair: t }) {
1928
2310
  const e = n.filter(
1929
2311
  (r) => !r.advisory && r.level === "fail"
1930
2312
  ).length;
1931
- return /* @__PURE__ */ d("section", { className: "min-w-0", children: [
1932
- /* @__PURE__ */ d("header", { className: "flex items-center justify-between gap-2 pb-2", children: [
2313
+ return /* @__PURE__ */ u("section", { className: "min-w-0", children: [
2314
+ /* @__PURE__ */ u("header", { className: "flex items-center justify-between gap-2 pb-2", children: [
1933
2315
  /* @__PURE__ */ o("h2", { className: "m-0 text-[11px] font-semibold uppercase tracking-wider text-gryt-muted", children: "Contrast" }),
1934
- e > 0 ? /* @__PURE__ */ d("span", { className: "text-xs text-gryt-danger-11", children: [
2316
+ e > 0 ? /* @__PURE__ */ u("span", { className: "text-xs text-gryt-danger-11", children: [
1935
2317
  e,
1936
2318
  " of ",
1937
2319
  n.length
1938
- ] }) : /* @__PURE__ */ d("span", { className: "text-xs text-gryt-muted", children: [
2320
+ ] }) : /* @__PURE__ */ u("span", { className: "text-xs text-gryt-muted", children: [
1939
2321
  n.length,
1940
2322
  " checks pass"
1941
2323
  ] })
1942
2324
  ] }),
1943
2325
  /* @__PURE__ */ o("ul", { className: "m-0 list-none space-y-1 p-0", children: n.map((r) => {
1944
- const a = r.advisory && r.level === "fail" ? "tight" : r.level, c = hn[a];
1945
- return /* @__PURE__ */ d(
2326
+ const a = r.advisory && r.level === "fail" ? "tight" : r.level, c = Un[a];
2327
+ return /* @__PURE__ */ u(
1946
2328
  "li",
1947
2329
  {
1948
2330
  className: "flex items-center justify-between gap-2 text-xs",
1949
2331
  children: [
1950
- /* @__PURE__ */ d("span", { className: "flex min-w-0 items-center gap-1.5", children: [
1951
- /* @__PURE__ */ o(c, { "aria-hidden": "true", className: te[a], size: 12 }),
2332
+ /* @__PURE__ */ u("span", { className: "flex min-w-0 items-center gap-1.5", children: [
2333
+ /* @__PURE__ */ o(c, { "aria-hidden": "true", className: yt[a], size: 12 }),
1952
2334
  /* @__PURE__ */ o("span", { className: "truncate text-gryt-muted", children: r.label })
1953
2335
  ] }),
1954
- /* @__PURE__ */ d("span", { className: "shrink-0 font-mono text-[11px] text-gryt-muted", children: [
1955
- /* @__PURE__ */ o("span", { className: a === "pass" ? "text-gryt-text" : te[a], children: r.ratio.toFixed(1) }),
1956
- /* @__PURE__ */ d("span", { "aria-hidden": "true", children: [
2336
+ /* @__PURE__ */ u("span", { className: "shrink-0 font-mono text-[11px] text-gryt-muted", children: [
2337
+ /* @__PURE__ */ o("span", { className: a === "pass" ? "text-gryt-text" : yt[a], children: r.ratio.toFixed(1) }),
2338
+ /* @__PURE__ */ u("span", { "aria-hidden": "true", children: [
1957
2339
  " / ",
1958
2340
  r.min
1959
2341
  ] }),
1960
- /* @__PURE__ */ d("span", { className: "sr-only", children: [
2342
+ /* @__PURE__ */ u("span", { className: "sr-only", children: [
1961
2343
  " against a minimum of ",
1962
2344
  r.min
1963
2345
  ] }),
@@ -1968,11 +2350,11 @@ function bn({ checks: n, onRepair: t }) {
1968
2350
  r.id
1969
2351
  );
1970
2352
  }) }),
1971
- t ? /* @__PURE__ */ o("div", { className: "pt-3", children: /* @__PURE__ */ o(yt, { onClick: t, size: "small", tone: "neutral", children: "Fix the text colours" }) }) : null
2353
+ t ? /* @__PURE__ */ o("div", { className: "pt-3", children: /* @__PURE__ */ o(Te, { onClick: t, size: "small", tone: "neutral", children: "Fix the text colours" }) }) : null
1972
2354
  ] });
1973
2355
  }
1974
- function U({ label: n, steps: t }) {
1975
- return /* @__PURE__ */ d("div", { className: "min-w-0", children: [
2356
+ function te({ label: n, steps: t }) {
2357
+ return /* @__PURE__ */ u("div", { className: "min-w-0", children: [
1976
2358
  /* @__PURE__ */ o("span", { className: "mb-1 block text-[11px] font-medium tracking-wide text-gryt-muted", children: n }),
1977
2359
  /* @__PURE__ */ o("ol", { className: "m-0 flex list-none gap-px overflow-hidden rounded-(--gryt-radius-sm) border border-gryt-border p-0", children: t.map((e, r) => /* @__PURE__ */ o(
1978
2360
  "li",
@@ -1985,59 +2367,59 @@ function U({ label: n, steps: t }) {
1985
2367
  )) })
1986
2368
  ] });
1987
2369
  }
1988
- const xn = [
2370
+ const Wn = [
1989
2371
  { family: "accent", label: "Accent" },
1990
2372
  { family: "secondary", label: "Secondary" },
1991
2373
  { family: "success", label: "Success" },
1992
2374
  { family: "danger", label: "Danger" },
1993
2375
  { family: "warning", label: "Warning" }
1994
2376
  ];
1995
- function vn(n, t) {
2377
+ function Kn(n, t) {
1996
2378
  return n < t ? "fail" : n < t * 1.1 ? "tight" : "pass";
1997
2379
  }
1998
- function B(n, t, e, r, a, c, m = !1) {
1999
- const g = Q(e, r);
2380
+ function W(n, t, e, r, a, c, d = !1) {
2381
+ const p = ae(e, r);
2000
2382
  return {
2001
2383
  id: n,
2002
2384
  label: t,
2003
2385
  foreground: e,
2004
2386
  background: r,
2005
- ratio: g,
2387
+ ratio: p,
2006
2388
  min: a,
2007
- level: vn(g, a),
2008
- advisory: m,
2389
+ level: Kn(p, a),
2390
+ advisory: d,
2009
2391
  paths: c
2010
2392
  };
2011
2393
  }
2012
- function wn(n, t, e) {
2013
- const r = D(t, "neutral"), a = r[0], c = r[1], m = r[11], g = r[10], y = r[5], p = e, f = Lt(n, e), h = ft(n, e), S = [
2014
- B("text-page", "Text on the page", m, a, 4.5, [
2015
- `${p}.text`,
2016
- `${p}.bg`
2394
+ function Jn(n, t, e) {
2395
+ const r = z(t, "neutral"), a = r[0], c = r[1], d = r[11], p = r[10], m = r[5], y = e, f = Ve(n, e), h = Se(n, e), b = [
2396
+ W("text-page", "Text on the page", d, a, 4.5, [
2397
+ `${y}.text`,
2398
+ `${y}.bg`
2017
2399
  ]),
2018
- B("text-surface", "Text on a surface", m, c, 4.5, [
2019
- `${p}.text`,
2020
- `${p}.surface`
2400
+ W("text-surface", "Text on a surface", d, c, 4.5, [
2401
+ `${y}.text`,
2402
+ `${y}.surface`
2021
2403
  ]),
2022
- B("muted-page", "Muted text on the page", g, a, 4.5, [
2023
- `${p}.muted`,
2024
- `${p}.bg`
2404
+ W("muted-page", "Muted text on the page", p, a, 4.5, [
2405
+ `${y}.muted`,
2406
+ `${y}.bg`
2025
2407
  ]),
2026
- B("muted-surface", "Muted text on a surface", g, c, 4.5, [
2027
- `${p}.muted`,
2028
- `${p}.surface`
2408
+ W("muted-surface", "Muted text on a surface", p, c, 4.5, [
2409
+ `${y}.muted`,
2410
+ `${y}.surface`
2029
2411
  ])
2030
2412
  ];
2031
- for (const { family: T, label: w } of xn) {
2032
- const R = D(t, T);
2033
- S.push(
2034
- B(
2035
- `${T}-text`,
2036
- `${w} text on the page`,
2037
- R[10],
2413
+ for (const { family: v, label: N } of Wn) {
2414
+ const k = z(t, v);
2415
+ b.push(
2416
+ W(
2417
+ `${v}-text`,
2418
+ `${N} text on the page`,
2419
+ k[10],
2038
2420
  a,
2039
2421
  4.5,
2040
- [`${f}.${T}`, `${p}.bg`]
2422
+ [`${f}.${v}`, `${y}.bg`]
2041
2423
  )
2042
2424
  );
2043
2425
  }
@@ -2046,130 +2428,130 @@ function wn(n, t, e) {
2046
2428
  { family: "secondary", on: "onSecondary", label: "Label on a secondary button" },
2047
2429
  { family: "danger", on: "onDanger", label: "Label on a danger button" }
2048
2430
  ];
2049
- for (const { family: T, on: w, label: R } of x)
2050
- S.push(
2051
- B(`${w}-fill`, R, h[w], D(t, T)[8], 4.5, [
2052
- `${f}.${w}`,
2053
- `${f}.${T}`
2431
+ for (const { family: v, on: N, label: k } of x)
2432
+ b.push(
2433
+ W(`${N}-fill`, k, h[N], z(t, v)[8], 4.5, [
2434
+ `${f}.${N}`,
2435
+ `${f}.${v}`
2054
2436
  ])
2055
2437
  );
2056
- return S.push(
2057
- B(
2438
+ return b.push(
2439
+ W(
2058
2440
  "border-page",
2059
2441
  "Border against the page",
2060
- y,
2442
+ m,
2061
2443
  a,
2062
2444
  1.15,
2063
- [`${p}.border`, `${p}.bg`],
2445
+ [`${y}.border`, `${y}.bg`],
2064
2446
  !0
2065
2447
  )
2066
- ), S;
2448
+ ), b;
2067
2449
  }
2068
- function b(n, t) {
2450
+ function T(n, t) {
2069
2451
  return n + Math.random() * (t - n);
2070
2452
  }
2071
- function kt(n) {
2453
+ function _e(n) {
2072
2454
  return n[Math.floor(Math.random() * n.length)];
2073
2455
  }
2074
- const Nn = [
2456
+ const Qn = [
2075
2457
  { sm: 8, md: 12, lg: 20, xl: 28, full: 999 },
2076
2458
  { sm: 6, md: 8, lg: 14, xl: 18, full: 999 },
2077
2459
  { sm: 4, md: 6, lg: 10, xl: 14, full: 8 },
2078
2460
  { sm: 2, md: 4, lg: 6, xl: 8, full: 4 },
2079
2461
  { sm: 10, md: 16, lg: 24, xl: 32, full: 999 }
2080
2462
  ];
2081
- function Tn() {
2082
- const n = b(0, 360), t = kt([0.4, 0.8, 1.4, 2.2]), e = n + kt([-1, 1]) * b(110, 200), r = (S, x, T = n) => A({ l: S, c: x * t, h: T }), a = b(0.15, 0.21), c = {
2463
+ function Zn() {
2464
+ const n = T(0, 360), t = _e([0.4, 0.8, 1.4, 2.2]), e = n + _e([-1, 1]) * T(110, 200), r = (b, x, v = n) => L({ l: b, c: x * t, h: v }), a = T(0.15, 0.21), c = {
2083
2465
  bg: r(a, 0.011),
2084
2466
  surface: r(a + 0.045, 0.014),
2085
2467
  surfaceRaised: r(a + 0.062, 0.016),
2086
2468
  surfaceHover: r(a + 0.125, 0.022),
2087
2469
  border: r(a + 0.125, 0.024),
2088
- muted: r(b(0.62, 0.665), 8e-3),
2089
- text: r(b(0.9, 0.925), 8e-3)
2090
- }, m = b(0.95, 0.968), g = {
2091
- bg: r(m, 6e-3),
2092
- surface: r(b(0.995, 1), 1e-3),
2093
- surfaceRaised: r(m + 0.016, 4e-3),
2094
- surfaceHover: r(m - 0.035, 0.01),
2095
- border: r(b(0.878, 0.9), 0.014),
2096
- muted: r(b(0.46, 0.5), 0.014),
2097
- text: r(b(0.23, 0.27), 0.014)
2098
- }, y = A({ l: b(0.67, 0.74), c: b(0.13, 0.17), h: n }), p = A({
2099
- l: b(0.79, 0.85),
2100
- c: b(0.09, 0.13),
2470
+ muted: r(T(0.62, 0.665), 8e-3),
2471
+ text: r(T(0.9, 0.925), 8e-3)
2472
+ }, d = T(0.95, 0.968), p = {
2473
+ bg: r(d, 6e-3),
2474
+ surface: r(T(0.995, 1), 1e-3),
2475
+ surfaceRaised: r(d + 0.016, 4e-3),
2476
+ surfaceHover: r(d - 0.035, 0.01),
2477
+ border: r(T(0.878, 0.9), 0.014),
2478
+ muted: r(T(0.46, 0.5), 0.014),
2479
+ text: r(T(0.23, 0.27), 0.014)
2480
+ }, m = L({ l: T(0.67, 0.74), c: T(0.13, 0.17), h: n }), y = L({
2481
+ l: T(0.79, 0.85),
2482
+ c: T(0.09, 0.13),
2101
2483
  h: e
2102
- }), f = A({ l: b(0.67, 0.72), c: b(0.15, 0.19), h: b(18, 30) }), h = {
2103
- accent: y,
2104
- accentLight: Rt(y, 0.085),
2105
- secondary: p,
2106
- secondaryLight: Rt(p, 0.07),
2107
- success: A({ l: b(0.8, 0.85), c: b(0.15, 0.19), h: b(140, 156) }),
2484
+ }), f = L({ l: T(0.67, 0.72), c: T(0.15, 0.19), h: T(18, 30) }), h = {
2485
+ accent: m,
2486
+ accentLight: He(m, 0.085),
2487
+ secondary: y,
2488
+ secondaryLight: He(y, 0.07),
2489
+ success: L({ l: T(0.8, 0.85), c: T(0.15, 0.19), h: T(140, 156) }),
2108
2490
  danger: f,
2109
- dangerLight: Rt(f, 0.08),
2110
- warning: A({ l: b(0.82, 0.86), c: b(0.14, 0.17), h: b(72, 90) }),
2491
+ dangerLight: He(f, 0.08),
2492
+ warning: L({ l: T(0.82, 0.86), c: T(0.14, 0.17), h: T(72, 90) }),
2111
2493
  onAccent: "",
2112
2494
  onSecondary: "",
2113
2495
  onDanger: ""
2114
2496
  };
2115
- return h.onAccent = O(y), h.onSecondary = O(p), h.onDanger = O(f), {
2497
+ return h.onAccent = Q(m), h.onSecondary = Q(y), h.onDanger = Q(f), {
2116
2498
  hue: h,
2117
2499
  // Generated themes keep one hue set. Splitting light off is a decision
2118
2500
  // somebody makes about their own palette, not something to roll for them.
2119
2501
  lightHue: null,
2120
2502
  dark: c,
2121
- light: g,
2122
- radius: { ...kt(Nn) }
2503
+ light: p,
2504
+ radius: { ..._e(Qn) }
2123
2505
  };
2124
2506
  }
2125
- function Rt(n, t) {
2126
- const { l: e, c: r, h: a } = pt(n);
2127
- return A({ l: Math.min(0.97, e + t), c: r * 0.85, h: a });
2507
+ function He(n, t) {
2508
+ const { l: e, c: r, h: a } = Ne(n);
2509
+ return L({ l: Math.min(0.97, e + t), c: r * 0.85, h: a });
2128
2510
  }
2129
- function O(n) {
2130
- const { c: t, h: e } = pt(n), r = A({ l: 0.17, c: Math.min(0.05, t * 0.3), h: e }), a = A({ l: 0.97, c: Math.min(0.03, t * 0.2), h: e }), c = Q(r, n) >= Q(a, n) ? r : a;
2131
- return st(c, n, 7);
2511
+ function Q(n) {
2512
+ const { c: t, h: e } = Ne(n), r = L({ l: 0.17, c: Math.min(0.05, t * 0.3), h: e }), a = L({ l: 0.97, c: Math.min(0.03, t * 0.2), h: e }), c = ae(r, n) >= ae(a, n) ? r : a;
2513
+ return ge(c, n, 7);
2132
2514
  }
2133
- function at(n) {
2515
+ function ue(n) {
2134
2516
  return {
2135
2517
  ...n,
2136
- onAccent: O(n.accent),
2137
- onSecondary: O(n.secondary),
2138
- onDanger: O(n.danger)
2518
+ onAccent: Q(n.accent),
2519
+ onSecondary: Q(n.secondary),
2520
+ onDanger: Q(n.danger)
2139
2521
  };
2140
2522
  }
2141
- function X(n) {
2142
- const t = at(n);
2523
+ function re(n) {
2524
+ const t = ue(n);
2143
2525
  return t.onAccent === n.onAccent && t.onSecondary === n.onSecondary && t.onDanger === n.onDanger;
2144
2526
  }
2145
- function st(n, t, e) {
2146
- if (Q(n, t) >= e) return n;
2147
- const { l: r, c: a, h: c } = pt(n), m = r >= pt(t).l ? 1 : -1;
2148
- let g = r;
2149
- for (let y = 0; y < 120; y++) {
2150
- g = Math.min(1, Math.max(0, g + m * 8e-3));
2151
- const p = A({ l: g, c: a, h: c });
2152
- if (Q(p, t) >= e) return p;
2153
- if (g === 0 || g === 1) break;
2527
+ function ge(n, t, e) {
2528
+ if (ae(n, t) >= e) return n;
2529
+ const { l: r, c: a, h: c } = Ne(n), d = r >= Ne(t).l ? 1 : -1;
2530
+ let p = r;
2531
+ for (let m = 0; m < 120; m++) {
2532
+ p = Math.min(1, Math.max(0, p + d * 8e-3));
2533
+ const y = L({ l: p, c: a, h: c });
2534
+ if (ae(y, t) >= e) return y;
2535
+ if (p === 0 || p === 1) break;
2154
2536
  }
2155
- return m === 1 ? "#ffffff" : "#000000";
2537
+ return d === 1 ? "#ffffff" : "#000000";
2156
2538
  }
2157
- function Pn(n) {
2158
- const t = mn(n);
2539
+ function qn(n) {
2540
+ const t = Gn(n);
2159
2541
  for (const e of ["dark", "light"])
2160
- t[e].text = st(
2542
+ t[e].text = ge(
2161
2543
  t[e].text,
2162
2544
  t[e].bg,
2163
2545
  7
2164
- ), t[e].text = st(
2546
+ ), t[e].text = ge(
2165
2547
  t[e].text,
2166
2548
  t[e].surface,
2167
2549
  7
2168
- ), t[e].muted = st(
2550
+ ), t[e].muted = ge(
2169
2551
  t[e].muted,
2170
2552
  t[e].bg,
2171
2553
  4.5
2172
- ), t[e].muted = st(
2554
+ ), t[e].muted = ge(
2173
2555
  t[e].muted,
2174
2556
  t[e].surface,
2175
2557
  4.5
@@ -2182,35 +2564,35 @@ function Pn(n) {
2182
2564
  ["onDanger", "danger"]
2183
2565
  ]) {
2184
2566
  const c = e[a];
2185
- Q(e[r], c) < 7 && (e[r] = O(c));
2567
+ ae(e[r], c) < 7 && (e[r] = Q(c));
2186
2568
  }
2187
2569
  return t;
2188
2570
  }
2189
- function Sn(n) {
2190
- return n === "light" ? { ...Dt.color, ...Ge } : { ...Dt.color };
2571
+ function eo(n) {
2572
+ return n === "light" ? { ...Oe.color, ...or } : { ...Oe.color };
2191
2573
  }
2192
- function $n(n, t) {
2193
- const e = Sn(t);
2194
- return Object.entries(pn(n, t)).filter(
2195
- ([r, a]) => lt(a) !== lt(e[r] ?? "")
2574
+ function to(n, t) {
2575
+ const e = eo(t);
2576
+ return Object.entries(Fn(n, t)).filter(
2577
+ ([r, a]) => ye(a) !== ye(e[r] ?? "")
2196
2578
  );
2197
2579
  }
2198
- function Cn(n) {
2199
- return ye.filter(
2200
- (t) => n.radius[t] !== Dt.radius[t]
2580
+ function ro(n) {
2581
+ return Rt.filter(
2582
+ (t) => n.radius[t] !== Oe.radius[t]
2201
2583
  ).map((t) => [t, n.radius[t]]);
2202
2584
  }
2203
- function ee(n, t) {
2585
+ function ft(n, t) {
2204
2586
  const e = [];
2205
2587
  t === "light" && e.push(' appearance: "light",');
2206
- const r = $n(n, t);
2207
- r.length > 0 && (e.push(" color: {"), r.forEach(([m, g], y) => {
2208
- const p = y === r.length - 1 ? "" : ",";
2209
- e.push(` ${m}: "${lt(g)}"${p}`);
2588
+ const r = to(n, t);
2589
+ r.length > 0 && (e.push(" color: {"), r.forEach(([d, p], m) => {
2590
+ const y = m === r.length - 1 ? "" : ",";
2591
+ e.push(` ${d}: "${ye(p)}"${y}`);
2210
2592
  }), e.push(" },"));
2211
- const a = Cn(n);
2593
+ const a = ro(n);
2212
2594
  a.length > 0 && e.push(
2213
- ` radius: { ${a.map(([m, g]) => `${m}: ${g}`).join(", ")} }`
2595
+ ` radius: { ${a.map(([d, p]) => `${d}: ${p}`).join(", ")} }`
2214
2596
  );
2215
2597
  const c = e.length - 1;
2216
2598
  return c >= 0 && (e[c] = e[c].replace(/,$/, "")), e.length === 0 ? "" : `{
@@ -2218,8 +2600,8 @@ ${e.join(`
2218
2600
  `)}
2219
2601
  }`;
2220
2602
  }
2221
- function ka(n) {
2222
- const t = ee(n, "dark"), e = ee(n, "light");
2603
+ function ns(n) {
2604
+ const t = ft(n, "dark"), e = ft(n, "light");
2223
2605
  return `import { createGrytTheme, GrytProvider } from "@gryt/ui";
2224
2606
 
2225
2607
  // One call per appearance. The scales are regenerated from these anchors, so
@@ -2236,255 +2618,265 @@ export function App({ appearance }: { appearance: "dark" | "light" }) {
2236
2618
  );
2237
2619
  }`;
2238
2620
  }
2239
- function Ra(n) {
2621
+ function os(n) {
2240
2622
  return JSON.stringify(n, null, 2);
2241
2623
  }
2242
- function kn(n) {
2624
+ function no(n) {
2243
2625
  const t = n.trim();
2244
2626
  if (t === "") return { error: "Nothing to import." };
2245
- const e = Me(t);
2627
+ const e = nr(t);
2246
2628
  return e === null ? {
2247
2629
  error: t.startsWith("{") ? "No theme in that JSON." : "No theme in that link."
2248
2630
  } : { draft: e.theme, appearance: e.appearance };
2249
2631
  }
2250
- const mt = {
2632
+ const we = {
2251
2633
  sm: 24,
2252
2634
  md: 32,
2253
2635
  lg: 48,
2254
2636
  xl: 64,
2255
2637
  full: 40
2256
- }, At = 999, Rn = [
2638
+ }, je = 999, oo = [
2257
2639
  "bg",
2258
2640
  "surface",
2259
2641
  "surfaceRaised",
2260
2642
  "surfaceHover",
2261
2643
  "border"
2262
- ], An = ["text", "muted"];
2263
- function Aa({
2644
+ ], ao = ["text", "muted"];
2645
+ function as({
2264
2646
  value: n,
2265
2647
  onChange: t,
2266
2648
  appearance: e,
2267
2649
  onAppearanceChange: r,
2268
- actions: a,
2269
- footer: c,
2270
- className: m
2650
+ remoteFontsAllowed: a = !0,
2651
+ actions: c,
2652
+ footer: d,
2653
+ className: p
2271
2654
  }) {
2272
- const [g, y] = _(
2273
- () => X(n.hue) && (n.lightHue === null || X(n.lightHue))
2274
- ), [p, f] = _(null);
2275
- if (p !== null && p !== n) {
2276
- f(null);
2277
- const i = X(n.hue) && (n.lightHue === null || X(n.lightHue));
2278
- i !== g && y(i);
2655
+ const [m, y] = G(
2656
+ () => re(n.hue) && (n.lightHue === null || re(n.lightHue))
2657
+ ), [f, h] = G(null);
2658
+ if (f !== null && f !== n) {
2659
+ h(null);
2660
+ const i = re(n.hue) && (n.lightHue === null || re(n.lightHue));
2661
+ i !== m && y(i);
2279
2662
  }
2280
- const [h, S] = _(""), [x, T] = _(null), w = it(() => yn(n, e), [n, e]), R = it(
2281
- () => wn(n, w, e),
2282
- [n, w, e]
2283
- ), tt = it(() => {
2663
+ const [b, x] = G(""), [v, N] = G(null), k = me(() => zn(n, e), [n, e]), w = me(
2664
+ () => Jn(n, k, e),
2665
+ [n, k, e]
2666
+ ), $ = me(() => {
2284
2667
  const i = /* @__PURE__ */ new Map();
2285
- for (const u of R)
2286
- if (!(u.advisory || u.level !== "fail"))
2287
- for (const $ of u.paths)
2288
- i.has($) || i.set($, `${u.label}: ${u.ratio.toFixed(1)}, needs ${u.min}`);
2668
+ for (const g of w)
2669
+ if (!(g.advisory || g.level !== "fail"))
2670
+ for (const P of g.paths)
2671
+ i.has(P) || i.set(P, `${g.label}: ${g.ratio.toFixed(1)}, needs ${g.min}`);
2289
2672
  return i;
2290
- }, [R]), be = Qt(n), Ht = _t.find((i) => Qt(i.theme) === be)?.id ?? "custom", zt = n[e], xt = Lt(n, e), vt = ft(n, e), xe = R.filter(
2673
+ }, [w]), M = dt(n), F = tt.find((i) => dt(i.theme) === M)?.id ?? "custom", q = n[e], Ce = Ve(n, e), Ae = Se(n, e), Dt = w.filter(
2291
2674
  (i) => !i.advisory && i.level === "fail"
2292
2675
  ).length;
2293
- function ut(i) {
2294
- f(i), t(i);
2676
+ function be(i) {
2677
+ h(i), t(i);
2295
2678
  }
2296
- function et(i) {
2297
- const u = i(n);
2298
- ut(
2299
- g ? {
2300
- ...u,
2301
- hue: at(u.hue),
2302
- lightHue: u.lightHue === null ? null : at(u.lightHue)
2303
- } : u
2679
+ function U(i) {
2680
+ const g = i(n);
2681
+ be(
2682
+ m ? {
2683
+ ...g,
2684
+ hue: ue(g.hue),
2685
+ lightHue: g.lightHue === null ? null : ue(g.lightHue)
2686
+ } : g
2304
2687
  );
2305
2688
  }
2306
- function wt(i) {
2689
+ function Me(i) {
2307
2690
  y(
2308
- X(i.hue) && (i.lightHue === null || X(i.lightHue))
2309
- ), ut(i);
2691
+ re(i.hue) && (i.lightHue === null || re(i.lightHue))
2692
+ ), be(i);
2310
2693
  }
2311
- function Nt(i, u) {
2312
- et(($) => {
2313
- const Tt = Lt($, e);
2694
+ function Re(i, g) {
2695
+ U((P) => {
2696
+ const Ie = Ve(P, e);
2314
2697
  return {
2315
- ...$,
2316
- [Tt]: { ...ft($, e), [i]: u }
2698
+ ...P,
2699
+ [Ie]: { ...Se(P, e), [i]: g }
2317
2700
  };
2318
2701
  });
2319
2702
  }
2320
- function ve(i) {
2321
- et((u) => ({
2322
- ...u,
2323
- lightHue: i ? { ...u.hue } : null
2703
+ function Gt(i) {
2704
+ U((g) => ({
2705
+ ...g,
2706
+ lightHue: i ? { ...g.hue } : null
2324
2707
  }));
2325
2708
  }
2326
- function we(i) {
2327
- y(i), i && ut({
2709
+ function Ft(i) {
2710
+ y(i), i && be({
2328
2711
  ...n,
2329
- hue: at(n.hue),
2330
- lightHue: n.lightHue === null ? null : at(n.lightHue)
2712
+ hue: ue(n.hue),
2713
+ lightHue: n.lightHue === null ? null : ue(n.lightHue)
2331
2714
  });
2332
2715
  }
2333
- function Bt(i, u) {
2334
- et(($) => ({
2335
- ...$,
2336
- [e]: { ...$[e], [i]: u }
2716
+ function Qe(i, g) {
2717
+ U((P) => ({
2718
+ ...P,
2719
+ [e]: { ...P[e], [i]: g }
2720
+ }));
2721
+ }
2722
+ function zt(i) {
2723
+ U((g) => ({ ...g, name: i === "" ? void 0 : i }));
2724
+ }
2725
+ function Bt(i, g) {
2726
+ U((P) => ({
2727
+ ...P,
2728
+ fonts: { ...P.fonts ?? vt, [i]: g }
2337
2729
  }));
2338
2730
  }
2339
- function Ne(i) {
2340
- et((u) => ({ ...u, name: i === "" ? void 0 : i }));
2731
+ function Et(i) {
2732
+ U((g) => ({ ...g, motion: i }));
2341
2733
  }
2342
- function Te(i, u) {
2343
- et(($) => ({
2344
- ...$,
2345
- radius: { ...$.radius, [i]: u }
2734
+ function _t(i, g) {
2735
+ U((P) => ({
2736
+ ...P,
2737
+ radius: { ...P.radius, [i]: g }
2346
2738
  }));
2347
2739
  }
2348
- function Pe(i) {
2349
- const u = kn(i);
2350
- if (u.error !== void 0 || u.draft === void 0) {
2351
- T(u.error ?? "That did not look like a theme.");
2740
+ function Ht(i) {
2741
+ const g = no(i);
2742
+ if (g.error !== void 0 || g.draft === void 0) {
2743
+ N(g.error ?? "That did not look like a theme.");
2352
2744
  return;
2353
2745
  }
2354
- wt(u.draft), u.appearance !== void 0 && r(u.appearance), T(null), S("");
2746
+ Me(g.draft), g.appearance !== void 0 && r(g.appearance), N(null), x("");
2355
2747
  }
2356
- return /* @__PURE__ */ d("div", { className: s("flex min-w-0 flex-col gap-(--space-md)", m), children: [
2357
- /* @__PURE__ */ d("div", { className: "flex flex-wrap items-end gap-3 border-y border-gryt-border py-3", children: [
2748
+ return /* @__PURE__ */ u("div", { className: s("flex min-w-0 flex-col gap-(--space-md)", p), children: [
2749
+ /* @__PURE__ */ u("div", { className: "flex flex-wrap items-end gap-3 border-y border-gryt-border py-3", children: [
2358
2750
  /* @__PURE__ */ o("div", { className: "w-52", children: /* @__PURE__ */ o(
2359
- fr,
2751
+ Je,
2360
2752
  {
2361
2753
  label: "Preset",
2362
2754
  onValueChange: (i) => {
2363
- const u = je.get(String(i));
2364
- u && wt(u.theme);
2755
+ const g = ar.get(String(i));
2756
+ g && Me(g.theme);
2365
2757
  },
2366
2758
  options: [
2367
- ..._t.map((i) => ({
2759
+ ...tt.map((i) => ({
2368
2760
  label: i.name,
2369
2761
  value: i.id
2370
2762
  })),
2371
- ...Ht === "custom" ? [{ label: "Custom", value: "custom" }] : []
2763
+ ...F === "custom" ? [{ label: "Custom", value: "custom" }] : []
2372
2764
  ],
2373
2765
  size: "small",
2374
- value: Ht
2766
+ value: F
2375
2767
  }
2376
2768
  ) }),
2377
2769
  /* @__PURE__ */ o("div", { className: "w-48", children: /* @__PURE__ */ o(
2378
- me,
2770
+ Ke,
2379
2771
  {
2380
2772
  label: "Name",
2381
- maxLength: Ee,
2382
- onChange: (i) => Ne(i.target.value),
2773
+ maxLength: sr,
2774
+ onChange: (i) => zt(i.target.value),
2383
2775
  placeholder: "Untitled theme",
2384
2776
  size: "small",
2385
2777
  value: n.name ?? ""
2386
2778
  }
2387
2779
  ) }),
2388
- /* @__PURE__ */ d(yt, { onClick: () => wt(Tn()), size: "small", tone: "neutral", children: [
2389
- /* @__PURE__ */ o(Oe, { "aria-hidden": "true", size: 15 }),
2780
+ /* @__PURE__ */ u(Te, { onClick: () => Me(Zn()), size: "small", tone: "neutral", children: [
2781
+ /* @__PURE__ */ o(pr, { "aria-hidden": "true", size: 15 }),
2390
2782
  "Generate"
2391
2783
  ] }),
2392
- /* @__PURE__ */ d("div", { className: "ml-auto flex items-end gap-3", children: [
2393
- /* @__PURE__ */ d(
2394
- gn,
2784
+ /* @__PURE__ */ u("div", { className: "ml-auto flex items-end gap-3", children: [
2785
+ /* @__PURE__ */ u(
2786
+ Dn,
2395
2787
  {
2396
2788
  "aria-label": "Appearance",
2397
2789
  onValueChange: (i) => {
2398
- const u = i[i.length - 1];
2399
- (u === "dark" || u === "light") && r(u);
2790
+ const g = i[i.length - 1];
2791
+ (g === "dark" || g === "light") && r(g);
2400
2792
  },
2401
2793
  value: [e],
2402
2794
  children: [
2403
- /* @__PURE__ */ o(Jt, { size: "small", value: "dark", children: "Dark" }),
2404
- /* @__PURE__ */ o(Jt, { size: "small", value: "light", children: "Light" })
2795
+ /* @__PURE__ */ o(ct, { size: "small", value: "dark", children: "Dark" }),
2796
+ /* @__PURE__ */ o(ct, { size: "small", value: "light", children: "Light" })
2405
2797
  ]
2406
2798
  }
2407
2799
  ),
2408
- a
2800
+ c
2409
2801
  ] })
2410
2802
  ] }),
2411
- /* @__PURE__ */ d("p", { className: "m-0 text-xs text-gryt-muted", children: [
2803
+ /* @__PURE__ */ u("p", { className: "m-0 text-xs text-gryt-muted", children: [
2412
2804
  "Editing the ",
2413
2805
  e,
2414
2806
  " half. The neutrals below belong to it",
2415
2807
  n.lightHue === null ? "; the hues are shared, because step 9 is the same colour in both." : " and so do the hues."
2416
2808
  ] }),
2417
- /* @__PURE__ */ d("div", { className: "flex flex-col gap-2", children: [
2418
- e === "light" ? /* @__PURE__ */ d("label", { className: "flex cursor-pointer items-center gap-2 text-xs text-gryt-muted", children: [
2809
+ /* @__PURE__ */ u("div", { className: "flex flex-col gap-2", children: [
2810
+ e === "light" ? /* @__PURE__ */ u("label", { className: "flex cursor-pointer items-center gap-2 text-xs text-gryt-muted", children: [
2419
2811
  /* @__PURE__ */ o(
2420
- Kt,
2812
+ it,
2421
2813
  {
2422
2814
  checked: n.lightHue !== null,
2423
- onCheckedChange: ve
2815
+ onCheckedChange: Gt
2424
2816
  }
2425
2817
  ),
2426
2818
  "Light has its own hues"
2427
2819
  ] }) : null,
2428
- /* @__PURE__ */ d("label", { className: "flex cursor-pointer items-center gap-2 text-xs text-gryt-muted", children: [
2429
- /* @__PURE__ */ o(Kt, { checked: g, onCheckedChange: we }),
2820
+ /* @__PURE__ */ u("label", { className: "flex cursor-pointer items-center gap-2 text-xs text-gryt-muted", children: [
2821
+ /* @__PURE__ */ o(it, { checked: m, onCheckedChange: Ft }),
2430
2822
  "Pick label colours automatically"
2431
2823
  ] })
2432
2824
  ] }),
2433
- /* @__PURE__ */ d("div", { className: "flex flex-col gap-(--space-md)", children: [
2434
- /* @__PURE__ */ d(K, { title: "Surfaces", children: [
2435
- Rn.map((i) => /* @__PURE__ */ o(
2436
- ot,
2825
+ /* @__PURE__ */ u("div", { className: "flex flex-col gap-(--space-md)", children: [
2826
+ /* @__PURE__ */ u(H, { title: "Surfaces", children: [
2827
+ oo.map((i) => /* @__PURE__ */ o(
2828
+ de,
2437
2829
  {
2438
- label: Zt[i],
2439
- onChange: (u) => Bt(i, u),
2440
- value: zt[i],
2441
- warning: tt.get(`${e}.${i}`)
2830
+ label: ut[i],
2831
+ onChange: (g) => Qe(i, g),
2832
+ value: q[i],
2833
+ warning: $.get(`${e}.${i}`)
2442
2834
  },
2443
2835
  i
2444
2836
  )),
2445
- /* @__PURE__ */ o(U, { label: "neutral", steps: D(w, "neutral") })
2837
+ /* @__PURE__ */ o(te, { label: "neutral", steps: z(k, "neutral") })
2446
2838
  ] }),
2447
- /* @__PURE__ */ o(K, { title: "Text", children: An.map((i) => /* @__PURE__ */ o(
2448
- ot,
2839
+ /* @__PURE__ */ o(H, { title: "Text", children: ao.map((i) => /* @__PURE__ */ o(
2840
+ de,
2449
2841
  {
2450
- label: Zt[i],
2451
- onChange: (u) => Bt(i, u),
2452
- value: zt[i],
2453
- warning: tt.get(`${e}.${i}`)
2842
+ label: ut[i],
2843
+ onChange: (g) => Qe(i, g),
2844
+ value: q[i],
2845
+ warning: $.get(`${e}.${i}`)
2454
2846
  },
2455
2847
  i
2456
2848
  )) }),
2457
- /* @__PURE__ */ d(K, { title: "Accent", children: [
2849
+ /* @__PURE__ */ u(H, { title: "Accent", children: [
2458
2850
  ["accent", "accentLight", "onAccent"].map((i) => /* @__PURE__ */ o(
2459
- ot,
2851
+ de,
2460
2852
  {
2461
- disabled: g && i === "onAccent",
2462
- label: Ct[i],
2463
- onChange: (u) => Nt(i, u),
2464
- value: vt[i],
2465
- warning: tt.get(`${xt}.${i}`)
2853
+ disabled: m && i === "onAccent",
2854
+ label: Fe[i],
2855
+ onChange: (g) => Re(i, g),
2856
+ value: Ae[i],
2857
+ warning: $.get(`${Ce}.${i}`)
2466
2858
  },
2467
2859
  i
2468
2860
  )),
2469
- /* @__PURE__ */ o(U, { label: "accent", steps: D(w, "accent") })
2861
+ /* @__PURE__ */ o(te, { label: "accent", steps: z(k, "accent") })
2470
2862
  ] }),
2471
- /* @__PURE__ */ d(K, { title: "Secondary", children: [
2863
+ /* @__PURE__ */ u(H, { title: "Secondary", children: [
2472
2864
  ["secondary", "secondaryLight", "onSecondary"].map(
2473
2865
  (i) => /* @__PURE__ */ o(
2474
- ot,
2866
+ de,
2475
2867
  {
2476
- disabled: g && i === "onSecondary",
2477
- label: Ct[i],
2478
- onChange: (u) => Nt(i, u),
2479
- value: vt[i],
2480
- warning: tt.get(`${xt}.${i}`)
2868
+ disabled: m && i === "onSecondary",
2869
+ label: Fe[i],
2870
+ onChange: (g) => Re(i, g),
2871
+ value: Ae[i],
2872
+ warning: $.get(`${Ce}.${i}`)
2481
2873
  },
2482
2874
  i
2483
2875
  )
2484
2876
  ),
2485
- /* @__PURE__ */ o(U, { label: "secondary", steps: D(w, "secondary") })
2877
+ /* @__PURE__ */ o(te, { label: "secondary", steps: z(k, "secondary") })
2486
2878
  ] }),
2487
- /* @__PURE__ */ d(K, { title: "Status", children: [
2879
+ /* @__PURE__ */ u(H, { title: "Status", children: [
2488
2880
  [
2489
2881
  "success",
2490
2882
  "danger",
@@ -2492,90 +2884,101 @@ function Aa({
2492
2884
  "onDanger",
2493
2885
  "warning"
2494
2886
  ].map((i) => /* @__PURE__ */ o(
2495
- ot,
2887
+ de,
2496
2888
  {
2497
- disabled: g && i === "onDanger",
2498
- label: Ct[i],
2499
- onChange: (u) => Nt(i, u),
2500
- value: vt[i],
2501
- warning: tt.get(`${xt}.${i}`)
2889
+ disabled: m && i === "onDanger",
2890
+ label: Fe[i],
2891
+ onChange: (g) => Re(i, g),
2892
+ value: Ae[i],
2893
+ warning: $.get(`${Ce}.${i}`)
2502
2894
  },
2503
2895
  i
2504
2896
  )),
2505
- /* @__PURE__ */ o(U, { label: "success", steps: D(w, "success") }),
2506
- /* @__PURE__ */ o(U, { label: "danger", steps: D(w, "danger") }),
2507
- /* @__PURE__ */ o(U, { label: "warning", steps: D(w, "warning") })
2897
+ /* @__PURE__ */ o(te, { label: "success", steps: z(k, "success") }),
2898
+ /* @__PURE__ */ o(te, { label: "danger", steps: z(k, "danger") }),
2899
+ /* @__PURE__ */ o(te, { label: "warning", steps: z(k, "warning") })
2508
2900
  ] }),
2509
- /* @__PURE__ */ o(K, { title: "Radius", children: ye.map((i) => {
2510
- const u = n.radius[i], $ = i === "full" && u >= At ? mt.full : u;
2511
- return /* @__PURE__ */ d("div", { className: "min-w-0", children: [
2512
- /* @__PURE__ */ d("div", { className: "mb-1 flex items-baseline justify-between gap-2", children: [
2513
- /* @__PURE__ */ o("span", { className: "text-xs font-medium text-gryt-muted", children: qt[i] }),
2514
- /* @__PURE__ */ o("span", { className: "font-mono text-[11px] text-gryt-muted", children: u >= At ? "pill" : `${u}px` })
2901
+ /* @__PURE__ */ o(H, { title: "Type", children: ir.map((i) => /* @__PURE__ */ o(
2902
+ On,
2903
+ {
2904
+ fonts: n.fonts,
2905
+ onChange: (g) => Bt(i, g),
2906
+ remoteAllowed: a,
2907
+ role: i
2908
+ },
2909
+ i
2910
+ )) }),
2911
+ /* @__PURE__ */ o(H, { title: "Motion", children: /* @__PURE__ */ o(Yn, { motion: n.motion, onChange: Et }) }),
2912
+ /* @__PURE__ */ o(H, { title: "Radius", children: Rt.map((i) => {
2913
+ const g = n.radius[i], P = i === "full" && g >= je ? we.full : g;
2914
+ return /* @__PURE__ */ u("div", { className: "min-w-0", children: [
2915
+ /* @__PURE__ */ u("div", { className: "mb-1 flex items-baseline justify-between gap-2", children: [
2916
+ /* @__PURE__ */ o("span", { className: "text-xs font-medium text-gryt-muted", children: gt[i] }),
2917
+ /* @__PURE__ */ o("span", { className: "font-mono text-[11px] text-gryt-muted", children: g >= je ? "pill" : `${g}px` })
2515
2918
  ] }),
2516
2919
  /* @__PURE__ */ o(
2517
- pr,
2920
+ At,
2518
2921
  {
2519
- "aria-label": `${qt[i]} radius`,
2520
- max: mt[i],
2922
+ "aria-label": `${gt[i]} radius`,
2923
+ max: we[i],
2521
2924
  min: 0,
2522
- onValueChange: (Tt) => {
2523
- const Ft = Number(Tt);
2524
- Te(
2925
+ onValueChange: (Ie) => {
2926
+ const Ze = Number(Ie);
2927
+ _t(
2525
2928
  i,
2526
- i === "full" && Ft >= mt.full ? At : Ft
2929
+ i === "full" && Ze >= we.full ? je : Ze
2527
2930
  );
2528
2931
  },
2529
- value: Math.min($, mt[i])
2932
+ value: Math.min(P, we[i])
2530
2933
  }
2531
2934
  ),
2532
- /* @__PURE__ */ o("p", { className: "m-0 pt-1 text-[11px] text-gryt-muted", children: fn[i] })
2935
+ /* @__PURE__ */ o("p", { className: "m-0 pt-1 text-[11px] text-gryt-muted", children: Bn[i] })
2533
2936
  ] }, i);
2534
2937
  }) }),
2535
2938
  /* @__PURE__ */ o(
2536
- bn,
2939
+ Xn,
2537
2940
  {
2538
- checks: R,
2539
- onRepair: xe > 0 ? () => ut(Pn(n)) : void 0
2941
+ checks: w,
2942
+ onRepair: Dt > 0 ? () => be(qn(n)) : void 0
2540
2943
  }
2541
2944
  ),
2542
- /* @__PURE__ */ d("section", { className: "min-w-0", children: [
2945
+ /* @__PURE__ */ u("section", { className: "min-w-0", children: [
2543
2946
  /* @__PURE__ */ o("h2", { className: "m-0 pb-2 text-[11px] font-semibold uppercase tracking-wider text-gryt-muted", children: "Load one back" }),
2544
2947
  /* @__PURE__ */ o("p", { className: "m-0 pb-2 text-sm text-gryt-muted", children: "Paste a theme’s JSON, or a link somebody sent you." }),
2545
- /* @__PURE__ */ d("div", { className: "flex flex-col gap-2 sm:flex-row", children: [
2948
+ /* @__PURE__ */ u("div", { className: "flex flex-col gap-2 sm:flex-row", children: [
2546
2949
  /* @__PURE__ */ o(
2547
2950
  "textarea",
2548
2951
  {
2549
2952
  "aria-label": "Theme JSON or a shared link",
2550
2953
  className: "min-h-11 flex-1 rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface-raised px-4 py-2.5 font-mono text-sm text-gryt-text outline-none placeholder:text-gryt-muted focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light",
2551
- onChange: (i) => S(i.target.value),
2954
+ onChange: (i) => x(i.target.value),
2552
2955
  placeholder: "{ …",
2553
2956
  rows: 2,
2554
2957
  spellCheck: !1,
2555
- value: h
2958
+ value: b
2556
2959
  }
2557
2960
  ),
2558
- /* @__PURE__ */ o(yt, { onClick: () => Pe(h), tone: "neutral", children: "Load" })
2961
+ /* @__PURE__ */ o(Te, { onClick: () => Ht(b), tone: "neutral", children: "Load" })
2559
2962
  ] }),
2560
- x ? /* @__PURE__ */ o("p", { className: "m-0 pt-2 text-sm text-gryt-danger-11", children: x }) : null
2963
+ v ? /* @__PURE__ */ o("p", { className: "m-0 pt-2 text-sm text-gryt-danger-11", children: v }) : null
2561
2964
  ] }),
2562
- c
2965
+ d
2563
2966
  ] })
2564
2967
  ] });
2565
2968
  }
2566
- function K({ title: n, children: t }) {
2567
- return /* @__PURE__ */ d("section", { className: "min-w-0", children: [
2969
+ function H({ title: n, children: t }) {
2970
+ return /* @__PURE__ */ u("section", { className: "min-w-0", children: [
2568
2971
  /* @__PURE__ */ o("h2", { className: "m-0 pb-2 text-[11px] font-semibold uppercase tracking-wider text-gryt-muted", children: n }),
2569
2972
  /* @__PURE__ */ o("div", { className: "flex flex-col gap-3", children: t })
2570
2973
  ] });
2571
2974
  }
2572
- const In = {
2975
+ const so = {
2573
2976
  primary: "bg-gryt-accent",
2574
2977
  success: "bg-gryt-success",
2575
2978
  warning: "bg-gryt-warning",
2576
2979
  danger: "bg-gryt-danger"
2577
2980
  };
2578
- function Ia({
2981
+ function ss({
2579
2982
  className: n,
2580
2983
  value: t,
2581
2984
  label: e,
@@ -2583,24 +2986,24 @@ function Ia({
2583
2986
  tone: a = "primary",
2584
2987
  ...c
2585
2988
  }) {
2586
- return /* @__PURE__ */ d(
2587
- nt.Root,
2989
+ return /* @__PURE__ */ u(
2990
+ ce.Root,
2588
2991
  {
2589
2992
  value: t,
2590
2993
  className: s("gryt-meter flex w-full flex-col gap-1.5", n),
2591
2994
  ...c,
2592
2995
  children: [
2593
- (e || r) && /* @__PURE__ */ d("div", { className: "flex items-baseline justify-between gap-2", children: [
2594
- e ? /* @__PURE__ */ o(nt.Label, { className: "text-sm text-gryt-muted", children: e }) : /* @__PURE__ */ o("span", {}),
2595
- r && /* @__PURE__ */ o(nt.Value, { className: "font-mono text-xs text-gryt-muted tabular-nums" })
2996
+ (e || r) && /* @__PURE__ */ u("div", { className: "flex items-baseline justify-between gap-2", children: [
2997
+ e ? /* @__PURE__ */ o(ce.Label, { className: "text-sm text-gryt-muted", children: e }) : /* @__PURE__ */ o("span", {}),
2998
+ r && /* @__PURE__ */ o(ce.Value, { className: "font-mono text-xs text-gryt-muted tabular-nums" })
2596
2999
  ] }),
2597
- /* @__PURE__ */ o(nt.Track, { className: "h-1.5 w-full overflow-hidden rounded-(--gryt-radius-full) bg-gryt-surface-raised", children: /* @__PURE__ */ o(
2598
- nt.Indicator,
3000
+ /* @__PURE__ */ o(ce.Track, { className: "h-1.5 w-full overflow-hidden rounded-(--gryt-radius-full) bg-gryt-surface-raised", children: /* @__PURE__ */ o(
3001
+ ce.Indicator,
2599
3002
  {
2600
3003
  className: s(
2601
3004
  "h-full rounded-(--gryt-radius-full)",
2602
3005
  "transition-[width] duration-120 ease-out motion-reduce:transition-none",
2603
- In[a]
3006
+ so[a]
2604
3007
  )
2605
3008
  }
2606
3009
  ) })
@@ -2608,10 +3011,10 @@ function Ia({
2608
3011
  }
2609
3012
  );
2610
3013
  }
2611
- const Dn = l(
3014
+ const io = l(
2612
3015
  function({ className: t, ...e }, r) {
2613
3016
  return /* @__PURE__ */ o(
2614
- E.Popup,
3017
+ V.Popup,
2615
3018
  {
2616
3019
  ref: r,
2617
3020
  className: s(
@@ -2628,9 +3031,9 @@ const Dn = l(
2628
3031
  }
2629
3032
  );
2630
3033
  }
2631
- ), Ln = l(function({ className: t, ...e }, r) {
3034
+ ), lo = l(function({ className: t, ...e }, r) {
2632
3035
  return /* @__PURE__ */ o(
2633
- E.Backdrop,
3036
+ V.Backdrop,
2634
3037
  {
2635
3038
  ref: r,
2636
3039
  className: s(
@@ -2643,9 +3046,9 @@ const Dn = l(
2643
3046
  ...e
2644
3047
  }
2645
3048
  );
2646
- }), Mn = l(function({ className: t, ...e }, r) {
3049
+ }), co = l(function({ className: t, ...e }, r) {
2647
3050
  return /* @__PURE__ */ o(
2648
- E.Title,
3051
+ V.Title,
2649
3052
  {
2650
3053
  ref: r,
2651
3054
  className: s(
@@ -2655,9 +3058,9 @@ const Dn = l(
2655
3058
  ...e
2656
3059
  }
2657
3060
  );
2658
- }), Gn = l(function({ className: t, ...e }, r) {
3061
+ }), uo = l(function({ className: t, ...e }, r) {
2659
3062
  return /* @__PURE__ */ o(
2660
- E.Description,
3063
+ V.Description,
2661
3064
  {
2662
3065
  ref: r,
2663
3066
  className: s(
@@ -2667,16 +3070,16 @@ const Dn = l(
2667
3070
  ...e
2668
3071
  }
2669
3072
  );
2670
- }), Da = {
2671
- Root: E.Root,
2672
- Trigger: E.Trigger,
2673
- Portal: E.Portal,
2674
- Backdrop: Ln,
2675
- Popup: Dn,
2676
- Title: Mn,
2677
- Description: Gn,
2678
- Close: E.Close
2679
- }, fe = [
3073
+ }), is = {
3074
+ Root: V.Root,
3075
+ Trigger: V.Trigger,
3076
+ Portal: V.Portal,
3077
+ Backdrop: lo,
3078
+ Popup: io,
3079
+ Title: co,
3080
+ Description: uo,
3081
+ Close: V.Close
3082
+ }, It = [
2680
3083
  "flex cursor-default items-center gap-2 rounded-(--gryt-radius-md)",
2681
3084
  "px-3 py-2 text-sm text-gryt-text outline-none select-none",
2682
3085
  // Base UI drives keyboard and pointer highlight through one attribute, so
@@ -2684,23 +3087,23 @@ const Dn = l(
2684
3087
  "data-highlighted:bg-gryt-surface-raised",
2685
3088
  "data-selected:text-gryt-accent-11",
2686
3089
  "data-disabled:cursor-not-allowed data-disabled:opacity-50"
2687
- ].join(" "), he = [
2688
- de,
2689
- ue.medium,
3090
+ ].join(" "), Lt = [
3091
+ kt,
3092
+ Pt.medium,
2690
3093
  "border-gryt-border",
2691
- P
2692
- ].join(" "), jn = l(function({ className: t, ...e }, r) {
3094
+ A
3095
+ ].join(" "), go = l(function({ className: t, ...e }, r) {
2693
3096
  return /* @__PURE__ */ o(
2694
- v.Input,
3097
+ S.Input,
2695
3098
  {
2696
3099
  ref: r,
2697
- className: s("gryt-combobox-input", he, t),
3100
+ className: s("gryt-combobox-input", Lt, t),
2698
3101
  ...e
2699
3102
  }
2700
3103
  );
2701
- }), En = l(function({ className: t, sideOffset: e = 6, ...r }, a) {
3104
+ }), mo = l(function({ className: t, sideOffset: e = 6, ...r }, a) {
2702
3105
  return /* @__PURE__ */ o(
2703
- v.Positioner,
3106
+ S.Positioner,
2704
3107
  {
2705
3108
  ref: a,
2706
3109
  sideOffset: e,
@@ -2708,34 +3111,34 @@ const Dn = l(
2708
3111
  ...r
2709
3112
  }
2710
3113
  );
2711
- }), Hn = l(
3114
+ }), po = l(
2712
3115
  function({ className: t, ...e }, r) {
2713
3116
  return /* @__PURE__ */ o(
2714
- v.Popup,
3117
+ S.Popup,
2715
3118
  {
2716
3119
  ref: r,
2717
3120
  className: s(
2718
3121
  "gryt-combobox max-h-64 w-(--anchor-width) overflow-y-auto overscroll-contain p-1 outline-none",
3122
+ Z,
2719
3123
  Y,
2720
- H,
2721
3124
  t
2722
3125
  ),
2723
3126
  ...e
2724
3127
  }
2725
3128
  );
2726
3129
  }
2727
- ), zn = l(function({ className: t, ...e }, r) {
3130
+ ), yo = l(function({ className: t, ...e }, r) {
2728
3131
  return /* @__PURE__ */ o(
2729
- v.Item,
3132
+ S.Item,
2730
3133
  {
2731
3134
  ref: r,
2732
- className: s("gryt-combobox-item", fe, t),
3135
+ className: s("gryt-combobox-item", It, t),
2733
3136
  ...e
2734
3137
  }
2735
3138
  );
2736
- }), Bn = l(function({ className: t, ...e }, r) {
3139
+ }), fo = l(function({ className: t, ...e }, r) {
2737
3140
  return /* @__PURE__ */ o(
2738
- v.Empty,
3141
+ S.Empty,
2739
3142
  {
2740
3143
  ref: r,
2741
3144
  className: s(
@@ -2745,39 +3148,39 @@ const Dn = l(
2745
3148
  ...e
2746
3149
  }
2747
3150
  );
2748
- }), La = {
2749
- Root: v.Root,
2750
- Input: jn,
2751
- InputGroup: v.InputGroup,
2752
- Trigger: v.Trigger,
2753
- Icon: v.Icon,
2754
- Clear: v.Clear,
2755
- Value: v.Value,
2756
- Chips: v.Chips,
2757
- Chip: v.Chip,
2758
- ChipRemove: v.ChipRemove,
2759
- Portal: v.Portal,
2760
- Positioner: En,
2761
- Popup: Hn,
2762
- List: v.List,
2763
- Item: zn,
2764
- ItemIndicator: v.ItemIndicator,
2765
- Group: v.Group,
2766
- GroupLabel: v.GroupLabel,
2767
- Empty: Bn,
2768
- Separator: v.Separator
2769
- }, Fn = l(function({ className: t, ...e }, r) {
3151
+ }), ls = {
3152
+ Root: S.Root,
3153
+ Input: go,
3154
+ InputGroup: S.InputGroup,
3155
+ Trigger: S.Trigger,
3156
+ Icon: S.Icon,
3157
+ Clear: S.Clear,
3158
+ Value: S.Value,
3159
+ Chips: S.Chips,
3160
+ Chip: S.Chip,
3161
+ ChipRemove: S.ChipRemove,
3162
+ Portal: S.Portal,
3163
+ Positioner: mo,
3164
+ Popup: po,
3165
+ List: S.List,
3166
+ Item: yo,
3167
+ ItemIndicator: S.ItemIndicator,
3168
+ Group: S.Group,
3169
+ GroupLabel: S.GroupLabel,
3170
+ Empty: fo,
3171
+ Separator: S.Separator
3172
+ }, ho = l(function({ className: t, ...e }, r) {
2770
3173
  return /* @__PURE__ */ o(
2771
- N.Input,
3174
+ C.Input,
2772
3175
  {
2773
3176
  ref: r,
2774
- className: s("gryt-autocomplete-input", he, t),
3177
+ className: s("gryt-autocomplete-input", Lt, t),
2775
3178
  ...e
2776
3179
  }
2777
3180
  );
2778
- }), _n = l(function({ className: t, sideOffset: e = 6, ...r }, a) {
3181
+ }), bo = l(function({ className: t, sideOffset: e = 6, ...r }, a) {
2779
3182
  return /* @__PURE__ */ o(
2780
- N.Positioner,
3183
+ C.Positioner,
2781
3184
  {
2782
3185
  ref: a,
2783
3186
  sideOffset: e,
@@ -2785,32 +3188,32 @@ const Dn = l(
2785
3188
  ...r
2786
3189
  }
2787
3190
  );
2788
- }), Vn = l(function({ className: t, ...e }, r) {
3191
+ }), xo = l(function({ className: t, ...e }, r) {
2789
3192
  return /* @__PURE__ */ o(
2790
- N.Popup,
3193
+ C.Popup,
2791
3194
  {
2792
3195
  ref: r,
2793
3196
  className: s(
2794
3197
  "gryt-autocomplete max-h-64 w-(--anchor-width) overflow-y-auto overscroll-contain p-1 outline-none",
3198
+ Z,
2795
3199
  Y,
2796
- H,
2797
3200
  t
2798
3201
  ),
2799
3202
  ...e
2800
3203
  }
2801
3204
  );
2802
- }), On = l(function({ className: t, ...e }, r) {
3205
+ }), vo = l(function({ className: t, ...e }, r) {
2803
3206
  return /* @__PURE__ */ o(
2804
- N.Item,
3207
+ C.Item,
2805
3208
  {
2806
3209
  ref: r,
2807
- className: s("gryt-autocomplete-item", fe, t),
3210
+ className: s("gryt-autocomplete-item", It, t),
2808
3211
  ...e
2809
3212
  }
2810
3213
  );
2811
- }), Yn = l(function({ className: t, ...e }, r) {
3214
+ }), wo = l(function({ className: t, ...e }, r) {
2812
3215
  return /* @__PURE__ */ o(
2813
- N.Empty,
3216
+ C.Empty,
2814
3217
  {
2815
3218
  ref: r,
2816
3219
  className: s(
@@ -2820,27 +3223,27 @@ const Dn = l(
2820
3223
  ...e
2821
3224
  }
2822
3225
  );
2823
- }), Ma = {
2824
- Root: N.Root,
2825
- Input: Fn,
2826
- InputGroup: N.InputGroup,
2827
- Trigger: N.Trigger,
2828
- Icon: N.Icon,
2829
- Clear: N.Clear,
2830
- Value: N.Value,
2831
- Portal: N.Portal,
2832
- Positioner: _n,
2833
- Popup: Vn,
2834
- List: N.List,
2835
- Item: On,
2836
- Group: N.Group,
2837
- GroupLabel: N.GroupLabel,
2838
- Empty: Yn,
2839
- Separator: N.Separator
2840
- }, Ga = l(
3226
+ }), cs = {
3227
+ Root: C.Root,
3228
+ Input: ho,
3229
+ InputGroup: C.InputGroup,
3230
+ Trigger: C.Trigger,
3231
+ Icon: C.Icon,
3232
+ Clear: C.Clear,
3233
+ Value: C.Value,
3234
+ Portal: C.Portal,
3235
+ Positioner: bo,
3236
+ Popup: xo,
3237
+ List: C.List,
3238
+ Item: vo,
3239
+ Group: C.Group,
3240
+ GroupLabel: C.GroupLabel,
3241
+ Empty: wo,
3242
+ Separator: C.Separator
3243
+ }, ds = l(
2841
3244
  function({ className: t, ...e }, r) {
2842
3245
  return /* @__PURE__ */ o(
2843
- qe,
3246
+ Tr,
2844
3247
  {
2845
3248
  ref: r,
2846
3249
  className: s("gryt-checkbox-group flex flex-col gap-2", t),
@@ -2848,10 +3251,10 @@ const Dn = l(
2848
3251
  }
2849
3252
  );
2850
3253
  }
2851
- ), Un = l(
3254
+ ), No = l(
2852
3255
  function({ className: t, ...e }, r) {
2853
3256
  return /* @__PURE__ */ o(
2854
- Et.Trigger,
3257
+ We.Trigger,
2855
3258
  {
2856
3259
  ref: r,
2857
3260
  className: s(
@@ -2859,17 +3262,17 @@ const Dn = l(
2859
3262
  "rounded-(--gryt-radius-md) border-0 bg-transparent px-2 py-2 text-left",
2860
3263
  "text-sm font-medium text-gryt-text select-none",
2861
3264
  "transition-colors hover:bg-gryt-surface-raised motion-reduce:transition-none",
2862
- P,
3265
+ A,
2863
3266
  t
2864
3267
  ),
2865
3268
  ...e
2866
3269
  }
2867
3270
  );
2868
3271
  }
2869
- ), Xn = l(
3272
+ ), To = l(
2870
3273
  function({ className: t, ...e }, r) {
2871
3274
  return /* @__PURE__ */ o(
2872
- Et.Panel,
3275
+ We.Panel,
2873
3276
  {
2874
3277
  ref: r,
2875
3278
  className: s(
@@ -2885,23 +3288,23 @@ const Dn = l(
2885
3288
  }
2886
3289
  );
2887
3290
  }
2888
- ), ja = {
2889
- Root: Et.Root,
2890
- Trigger: Un,
2891
- Panel: Xn
2892
- }, Ea = l(function({ className: t, ...e }, r) {
3291
+ ), us = {
3292
+ Root: We.Root,
3293
+ Trigger: No,
3294
+ Panel: To
3295
+ }, gs = l(function({ className: t, ...e }, r) {
2893
3296
  return /* @__PURE__ */ o(
2894
- tr,
3297
+ Sr,
2895
3298
  {
2896
3299
  ref: r,
2897
3300
  className: s("gryt-form flex flex-col gap-(--gryt-space-lg)", t),
2898
3301
  ...e
2899
3302
  }
2900
3303
  );
2901
- }), Kn = l(
3304
+ }), So = l(
2902
3305
  function({ className: t, ...e }, r) {
2903
3306
  return /* @__PURE__ */ o(
2904
- ie.Root,
3307
+ Tt.Root,
2905
3308
  {
2906
3309
  ref: r,
2907
3310
  className: s(
@@ -2912,9 +3315,9 @@ const Dn = l(
2912
3315
  }
2913
3316
  );
2914
3317
  }
2915
- ), Wn = l(function({ className: t, ...e }, r) {
3318
+ ), $o = l(function({ className: t, ...e }, r) {
2916
3319
  return /* @__PURE__ */ o(
2917
- ie.Legend,
3320
+ Tt.Legend,
2918
3321
  {
2919
3322
  ref: r,
2920
3323
  className: s(
@@ -2924,10 +3327,10 @@ const Dn = l(
2924
3327
  ...e
2925
3328
  }
2926
3329
  );
2927
- }), Ha = { Root: Kn, Legend: Wn }, za = l(
3330
+ }), ms = { Root: So, Legend: $o }, ps = l(
2928
3331
  function({ className: t, ...e }, r) {
2929
3332
  return /* @__PURE__ */ o(
2930
- er,
3333
+ $r,
2931
3334
  {
2932
3335
  ref: r,
2933
3336
  className: s(
@@ -2939,9 +3342,9 @@ const Dn = l(
2939
3342
  }
2940
3343
  );
2941
3344
  }
2942
- ), Jn = l(function({ className: t, ...e }, r) {
3345
+ ), ko = l(function({ className: t, ...e }, r) {
2943
3346
  return /* @__PURE__ */ o(
2944
- k.Trigger,
3347
+ I.Trigger,
2945
3348
  {
2946
3349
  ref: r,
2947
3350
  className: s(
@@ -2949,38 +3352,38 @@ const Dn = l(
2949
3352
  "border-0 bg-transparent px-3 py-2 text-sm font-medium text-gryt-text select-none",
2950
3353
  "transition-colors hover:bg-gryt-surface-raised motion-reduce:transition-none",
2951
3354
  "data-popup-open:bg-gryt-surface-raised",
2952
- P,
3355
+ A,
2953
3356
  t
2954
3357
  ),
2955
3358
  ...e
2956
3359
  }
2957
3360
  );
2958
- }), Qn = l(function({ className: t, ...e }, r) {
3361
+ }), Po = l(function({ className: t, ...e }, r) {
2959
3362
  return /* @__PURE__ */ o(
2960
- k.Popup,
3363
+ I.Popup,
2961
3364
  {
2962
3365
  ref: r,
2963
3366
  className: s(
2964
3367
  "gryt-navigation-menu-popup outline-none",
3368
+ Z,
2965
3369
  Y,
2966
- H,
2967
3370
  t
2968
3371
  ),
2969
3372
  ...e
2970
3373
  }
2971
3374
  );
2972
- }), Zn = l(function({ className: t, ...e }, r) {
3375
+ }), Co = l(function({ className: t, ...e }, r) {
2973
3376
  return /* @__PURE__ */ o(
2974
- k.Positioner,
3377
+ I.Positioner,
2975
3378
  {
2976
3379
  ref: r,
2977
3380
  className: s("gryt-navigation-menu-positioner outline-none", t),
2978
3381
  ...e
2979
3382
  }
2980
3383
  );
2981
- }), qn = l(function({ className: t, ...e }, r) {
3384
+ }), Ao = l(function({ className: t, ...e }, r) {
2982
3385
  return /* @__PURE__ */ o(
2983
- k.Viewport,
3386
+ I.Viewport,
2984
3387
  {
2985
3388
  ref: r,
2986
3389
  className: s(
@@ -2990,81 +3393,81 @@ const Dn = l(
2990
3393
  ...e
2991
3394
  }
2992
3395
  );
2993
- }), to = l(function({ className: t, ...e }, r) {
3396
+ }), Mo = l(function({ className: t, ...e }, r) {
2994
3397
  return /* @__PURE__ */ o(
2995
- k.Link,
3398
+ I.Link,
2996
3399
  {
2997
3400
  ref: r,
2998
3401
  className: s(
2999
3402
  "gryt-navigation-menu-link block rounded-(--gryt-radius-md) px-3 py-2",
3000
3403
  "text-sm text-gryt-text no-underline outline-none",
3001
3404
  "transition-colors hover:bg-gryt-surface-raised motion-reduce:transition-none",
3002
- P,
3405
+ A,
3003
3406
  t
3004
3407
  ),
3005
3408
  ...e
3006
3409
  }
3007
3410
  );
3008
- }), Ba = {
3009
- Root: k.Root,
3010
- List: k.List,
3011
- Item: k.Item,
3012
- Trigger: Jn,
3013
- Content: k.Content,
3014
- Portal: k.Portal,
3015
- Positioner: Zn,
3016
- Viewport: qn,
3017
- Popup: Qn,
3018
- Link: to,
3019
- Icon: k.Icon,
3020
- Arrow: k.Arrow
3021
- }, re = "flex h-9 w-9 shrink-0 items-center justify-center border-0 bg-transparent text-gryt-muted transition-colors hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text motion-reduce:transition-none disabled:cursor-not-allowed disabled:opacity-50", Fa = l(
3411
+ }), ys = {
3412
+ Root: I.Root,
3413
+ List: I.List,
3414
+ Item: I.Item,
3415
+ Trigger: ko,
3416
+ Content: I.Content,
3417
+ Portal: I.Portal,
3418
+ Positioner: Co,
3419
+ Viewport: Ao,
3420
+ Popup: Po,
3421
+ Link: Mo,
3422
+ Icon: I.Icon,
3423
+ Arrow: I.Arrow
3424
+ }, ht = "flex h-9 w-9 shrink-0 items-center justify-center border-0 bg-transparent text-gryt-muted transition-colors hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text motion-reduce:transition-none disabled:cursor-not-allowed disabled:opacity-50", fs = l(
3022
3425
  function({ className: t, label: e, scrubbable: r = !1, ...a }, c) {
3023
- return /* @__PURE__ */ d(
3024
- z.Root,
3426
+ return /* @__PURE__ */ u(
3427
+ X.Root,
3025
3428
  {
3026
3429
  ref: c,
3027
3430
  className: s("gryt-number-field flex flex-col gap-1.5", t),
3028
3431
  ...a,
3029
3432
  children: [
3030
- e && (r ? /* @__PURE__ */ d(z.ScrubArea, { className: "cursor-ew-resize text-sm text-gryt-muted select-none", children: [
3433
+ e && (r ? /* @__PURE__ */ u(X.ScrubArea, { className: "cursor-ew-resize text-sm text-gryt-muted select-none", children: [
3031
3434
  e,
3032
- /* @__PURE__ */ o(z.ScrubAreaCursor, {})
3435
+ /* @__PURE__ */ o(X.ScrubAreaCursor, {})
3033
3436
  ] }) : /* @__PURE__ */ o("span", { className: "text-sm text-gryt-muted", children: e })),
3034
- /* @__PURE__ */ d(
3035
- z.Group,
3437
+ /* @__PURE__ */ u(
3438
+ X.Group,
3036
3439
  {
3037
3440
  className: s(
3038
3441
  "flex w-fit items-center overflow-hidden rounded-(--gryt-radius-full)",
3039
3442
  "border border-gryt-border bg-gryt-surface-raised",
3040
3443
  "focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-gryt-accent-light",
3041
- q
3444
+ ie
3042
3445
  ),
3043
3446
  children: [
3044
3447
  /* @__PURE__ */ o(
3045
- z.Decrement,
3448
+ X.Decrement,
3046
3449
  {
3047
3450
  "aria-label": "Decrease",
3048
- className: s(re, "rounded-l-(--gryt-radius-full)"),
3049
- children: /* @__PURE__ */ o(Ye, { size: 14, weight: "bold" })
3451
+ className: s(ht, "rounded-l-(--gryt-radius-full)"),
3452
+ children: /* @__PURE__ */ o(yr, { size: 14, weight: "bold" })
3050
3453
  }
3051
3454
  ),
3052
3455
  /* @__PURE__ */ o(
3053
- z.Input,
3456
+ X.Input,
3054
3457
  {
3055
3458
  className: s(
3056
3459
  "w-16 border-0 bg-transparent px-1 py-2 text-center",
3057
3460
  "font-mono text-sm text-gryt-text tabular-nums outline-none",
3058
- P
3461
+ A
3059
3462
  )
3060
3463
  }
3061
3464
  ),
3062
3465
  /* @__PURE__ */ o(
3063
- z.Increment,
3466
+ X.Increment,
3064
3467
  {
3065
3468
  "aria-label": "Increase",
3066
- className: s(re, "rounded-r-(--gryt-radius-full)"),
3067
- children: /* @__PURE__ */ o(Ue, { size: 14, weight: "bold" })
3469
+ className: s(ht, "rounded-r-(--gryt-radius-full)"),
3470
+ children: /* @__PURE__ */ o(fr, { size: 14, weight: "bold" })
3068
3471
  }
3069
3472
  )
3070
3473
  ]
@@ -3074,17 +3477,17 @@ const Dn = l(
3074
3477
  }
3075
3478
  );
3076
3479
  }
3077
- ), _a = l(
3480
+ ), hs = l(
3078
3481
  function({ className: t, length: e = 6, ...r }, a) {
3079
3482
  return /* @__PURE__ */ o(
3080
- Ut.Root,
3483
+ at.Root,
3081
3484
  {
3082
3485
  ref: a,
3083
3486
  length: e,
3084
3487
  className: s("gryt-otp-field flex gap-2", t),
3085
3488
  ...r,
3086
- children: Array.from({ length: e }, (c, m) => /* @__PURE__ */ o(
3087
- Ut.Input,
3489
+ children: Array.from({ length: e }, (c, d) => /* @__PURE__ */ o(
3490
+ at.Input,
3088
3491
  {
3089
3492
  className: s(
3090
3493
  "gryt-otp-input h-12 w-10 rounded-(--gryt-radius-md) text-center",
@@ -3092,18 +3495,18 @@ const Dn = l(
3092
3495
  "font-mono text-lg text-gryt-text tabular-nums outline-none",
3093
3496
  "transition-colors duration-(--gryt-dur-fast) motion-reduce:transition-none",
3094
3497
  "data-filled:border-gryt-accent",
3095
- P
3498
+ A
3096
3499
  )
3097
3500
  },
3098
- m
3501
+ d
3099
3502
  ))
3100
3503
  }
3101
3504
  );
3102
3505
  }
3103
- ), eo = l(
3506
+ ), Ro = l(
3104
3507
  function({ className: t, sideOffset: e = 8, ...r }, a) {
3105
3508
  return /* @__PURE__ */ o(
3106
- W.Positioner,
3509
+ ne.Positioner,
3107
3510
  {
3108
3511
  ref: a,
3109
3512
  sideOffset: e,
@@ -3112,32 +3515,32 @@ const Dn = l(
3112
3515
  }
3113
3516
  );
3114
3517
  }
3115
- ), ro = l(
3518
+ ), Io = l(
3116
3519
  function({ className: t, ...e }, r) {
3117
3520
  return /* @__PURE__ */ o(
3118
- W.Popup,
3521
+ ne.Popup,
3119
3522
  {
3120
3523
  ref: r,
3121
3524
  className: s(
3122
3525
  "gryt-preview-card w-64 max-w-[calc(100vw-2rem)] p-4 outline-none",
3526
+ Z,
3123
3527
  Y,
3124
- H,
3125
3528
  t
3126
3529
  ),
3127
3530
  ...e
3128
3531
  }
3129
3532
  );
3130
3533
  }
3131
- ), Va = {
3132
- Root: W.Root,
3133
- Trigger: W.Trigger,
3134
- Portal: W.Portal,
3135
- Positioner: eo,
3136
- Popup: ro,
3137
- Arrow: W.Arrow
3138
- }, no = l(function({ className: t, ...e }, r) {
3534
+ ), bs = {
3535
+ Root: ne.Root,
3536
+ Trigger: ne.Trigger,
3537
+ Portal: ne.Portal,
3538
+ Positioner: Ro,
3539
+ Popup: Io,
3540
+ Arrow: ne.Arrow
3541
+ }, Lo = l(function({ className: t, ...e }, r) {
3139
3542
  return /* @__PURE__ */ o(
3140
- J.Root,
3543
+ oe.Root,
3141
3544
  {
3142
3545
  ref: r,
3143
3546
  className: s(
@@ -3148,121 +3551,130 @@ const Dn = l(
3148
3551
  ...e
3149
3552
  }
3150
3553
  );
3151
- }), oo = l(function({ className: t, ...e }, r) {
3554
+ }), Do = l(function({ className: t, ...e }, r) {
3152
3555
  return /* @__PURE__ */ o(
3153
- J.Separator,
3556
+ oe.Separator,
3154
3557
  {
3155
3558
  ref: r,
3156
3559
  className: s("gryt-toolbar-separator mx-1 h-6 w-px bg-gryt-border", t),
3157
3560
  ...e
3158
3561
  }
3159
3562
  );
3160
- }), Oa = {
3161
- Root: no,
3162
- Group: J.Group,
3163
- Button: J.Button,
3164
- Link: J.Link,
3165
- Input: J.Input,
3166
- Separator: oo
3563
+ }), xs = {
3564
+ Root: Lo,
3565
+ Group: oe.Group,
3566
+ Button: oe.Button,
3567
+ Link: oe.Link,
3568
+ Input: oe.Input,
3569
+ Separator: Do
3167
3570
  };
3168
3571
  export {
3169
- wa as Accordion,
3170
- pa as Alert,
3171
- Da as AlertDialog,
3172
- Ma as Autocomplete,
3173
- gr as Avatar,
3174
- ra as Badge,
3175
- yt as Button,
3176
- da as Card,
3177
- ma as CardActions,
3178
- ga as CardContent,
3179
- ua as CardHeader,
3180
- Kt as Checkbox,
3181
- Ga as CheckboxGroup,
3182
- na as Chip,
3183
- ja as Collapsible,
3184
- La as Combobox,
3185
- ta as Composer,
3186
- Na as ContextMenu,
3187
- ea as ConversationItem,
3188
- ba as Dialog,
3189
- ca as Divider,
3190
- xa as Drawer,
3191
- Ha as Fieldset,
3192
- Ea as Form,
3193
- Xa as GRYT_HUE_KEYS,
3194
- Ka as GRYT_NEUTRAL_KEYS,
3195
- Wa as GRYT_RADIUS_KEYS,
3196
- Ja as GRYT_THEME_NAME_MAX,
3197
- Jo as GrytProvider,
3198
- Qo as IconButton,
3199
- $t as Menu,
3200
- za as Menubar,
3201
- qo as MessageBubble,
3202
- Ia as Meter,
3203
- Ba as NavigationMenu,
3204
- Fa as NumberField,
3205
- _a as OtpField,
3206
- Ta as Popover,
3207
- Va as PreviewCard,
3208
- ya as Progress,
3209
- oa as Radio,
3210
- aa as RadioGroup,
3211
- $a as ScrollArea,
3212
- fr as Select,
3213
- ha as Skeleton,
3214
- pr as Slider,
3215
- fa as Spinner,
3216
- Zo as Surface,
3217
- sa as Switch,
3218
- Fr as Tab,
3219
- va as Tabs,
3220
- me as TextField,
3221
- Aa as ThemeEditor,
3222
- Pa as Toast,
3223
- Jt as Toggle,
3224
- gn as ToggleGroup,
3225
- Oa as Toolbar,
3226
- ia as Tooltip,
3227
- la as TooltipProvider,
3228
- Qa as alphaScale,
3229
- Cs as avatarSeed,
3230
- mn as cloneDraft,
3231
- Za as cloneGrytTheme,
3572
+ Ja as Accordion,
3573
+ Oa as Alert,
3574
+ is as AlertDialog,
3575
+ cs as Autocomplete,
3576
+ Fr as Avatar,
3577
+ Ra as Badge,
3578
+ Te as Button,
3579
+ Ea as Card,
3580
+ ja as CardActions,
3581
+ Ha as CardContent,
3582
+ _a as CardHeader,
3583
+ it as Checkbox,
3584
+ ds as CheckboxGroup,
3585
+ Ia as Chip,
3586
+ us as Collapsible,
3587
+ ls as Combobox,
3588
+ Aa as Composer,
3589
+ Qa as ContextMenu,
3590
+ Ma as ConversationItem,
3591
+ Xa as Dialog,
3592
+ Ba as Divider,
3593
+ Wa as Drawer,
3594
+ ms as Fieldset,
3595
+ gs as Form,
3596
+ Ns as GRYT_FONT_KEYS,
3597
+ Ts as GRYT_FONT_STACK_MAX,
3598
+ Ss as GRYT_HUE_KEYS,
3599
+ $s as GRYT_MOTION_CURVES,
3600
+ ks as GRYT_MOTION_SCALE_MAX,
3601
+ Ps as GRYT_NEUTRAL_KEYS,
3602
+ Cs as GRYT_RADIUS_KEYS,
3603
+ As as GRYT_THEME_NAME_MAX,
3604
+ $a as GrytProvider,
3605
+ ka as IconButton,
3606
+ Ge as Menu,
3607
+ ps as Menubar,
3608
+ Ca as MessageBubble,
3609
+ ss as Meter,
3610
+ ys as NavigationMenu,
3611
+ fs as NumberField,
3612
+ hs as OtpField,
3613
+ Za as Popover,
3614
+ bs as PreviewCard,
3615
+ Va as Progress,
3616
+ La as Radio,
3617
+ Da as RadioGroup,
3618
+ ts as ScrollArea,
3619
+ Je as Select,
3620
+ Ua as Skeleton,
3621
+ At as Slider,
3622
+ Ya as Spinner,
3623
+ Pa as Surface,
3624
+ Ga as Switch,
3625
+ dn as Tab,
3626
+ Ka as Tabs,
3627
+ Ke as TextField,
3628
+ as as ThemeEditor,
3629
+ qa as Toast,
3630
+ ct as Toggle,
3631
+ Dn as ToggleGroup,
3632
+ xs as Toolbar,
3633
+ Fa as Tooltip,
3634
+ za as TooltipProvider,
3635
+ Ms as alphaScale,
3636
+ ui as avatarSeed,
3637
+ Gn as cloneDraft,
3638
+ Rs as cloneGrytTheme,
3232
3639
  s as cn,
3233
- qa as contrast,
3234
- ts as createGrytTheme,
3235
- es as decodeGrytTheme,
3236
- rs as encodeDraft,
3237
- ns as encodeGrytTheme,
3238
- os as grytAlphaScales,
3239
- as as grytAlphaScalesLight,
3240
- Ca as grytDraft,
3241
- ss as grytLightTokens,
3242
- is as grytPresets,
3243
- ls as grytPresetsById,
3244
- cs as grytScales,
3245
- ds as grytScalesLight,
3246
- us as grytTheme,
3247
- gs as grytThemeHues,
3248
- ms as grytThemeToOptions,
3249
- ps as grytTokens,
3250
- ys as hexToOklch,
3251
- fs as hexToRgb,
3252
- hs as hueScale,
3253
- bs as hueScaleLight,
3254
- kn as importTheme,
3255
- xs as isHexColor,
3256
- vs as neutralScale,
3257
- ws as neutralScaleLight,
3258
- Ns as normalizeHexColor,
3259
- Ts as normalizeThemeName,
3260
- Ps as oklchToHex,
3261
- Ss as rgbToHex,
3262
- ka as themeCode,
3263
- Ra as themeJson,
3264
- yn as themeStyle,
3265
- Sr as useMediaQuery,
3266
- Sa as useToastManager
3640
+ Is as contrast,
3641
+ Ls as createGrytTheme,
3642
+ Ds as decodeGrytTheme,
3643
+ Gs as encodeDraft,
3644
+ Fs as encodeGrytTheme,
3645
+ zs as grytAlphaScales,
3646
+ Bs as grytAlphaScalesLight,
3647
+ rs as grytDraft,
3648
+ Es as grytFonts,
3649
+ _s as grytLightTokens,
3650
+ Hs as grytMotion,
3651
+ js as grytPresets,
3652
+ Os as grytPresetsById,
3653
+ Vs as grytScales,
3654
+ Ys as grytScalesLight,
3655
+ Us as grytTheme,
3656
+ Xs as grytThemeHues,
3657
+ Ws as grytThemeToOptions,
3658
+ Ks as grytTokens,
3659
+ Js as hexToOklch,
3660
+ Qs as hexToRgb,
3661
+ Zs as hueScale,
3662
+ qs as hueScaleLight,
3663
+ no as importTheme,
3664
+ ei as isBezier,
3665
+ ti as isFontStack,
3666
+ ri as isHexColor,
3667
+ ni as isValidBezier,
3668
+ oi as neutralScale,
3669
+ ai as neutralScaleLight,
3670
+ si as normalizeHexColor,
3671
+ ii as normalizeThemeName,
3672
+ li as oklchToHex,
3673
+ ci as rgbToHex,
3674
+ ns as themeCode,
3675
+ os as themeJson,
3676
+ zn as themeStyle,
3677
+ Xr as useMediaQuery,
3678
+ es as useToastManager
3267
3679
  };
3268
3680
  //# sourceMappingURL=index.js.map