@gryt/ui 0.3.0 → 0.5.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.
Files changed (53) hide show
  1. package/dist/components/AlertDialog/AlertDialog.d.ts +14 -0
  2. package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -0
  3. package/dist/components/Autocomplete/Autocomplete.d.ts +20 -0
  4. package/dist/components/Autocomplete/Autocomplete.d.ts.map +1 -0
  5. package/dist/components/Checkbox/CheckboxGroup.d.ts +13 -0
  6. package/dist/components/Checkbox/CheckboxGroup.d.ts.map +1 -0
  7. package/dist/components/Collapsible/Collapsible.d.ts +10 -0
  8. package/dist/components/Collapsible/Collapsible.d.ts.map +1 -0
  9. package/dist/components/Combobox/Combobox.d.ts +40 -0
  10. package/dist/components/Combobox/Combobox.d.ts.map +1 -0
  11. package/dist/components/ContextMenu/ContextMenu.d.ts +17 -0
  12. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -0
  13. package/dist/components/Drawer/Drawer.d.ts +41 -14
  14. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  15. package/dist/components/Form/Form.d.ts +20 -0
  16. package/dist/components/Form/Form.d.ts.map +1 -0
  17. package/dist/components/Meter/Meter.d.ts +26 -0
  18. package/dist/components/Meter/Meter.d.ts.map +1 -0
  19. package/dist/components/NavigationMenu/NavigationMenu.d.ts +27 -0
  20. package/dist/components/NavigationMenu/NavigationMenu.d.ts.map +1 -0
  21. package/dist/components/NumberField/NumberField.d.ts +16 -0
  22. package/dist/components/NumberField/NumberField.d.ts.map +1 -0
  23. package/dist/components/OtpField/OtpField.d.ts +16 -0
  24. package/dist/components/OtpField/OtpField.d.ts.map +1 -0
  25. package/dist/components/Popover/Popover.d.ts +16 -0
  26. package/dist/components/Popover/Popover.d.ts.map +1 -0
  27. package/dist/components/PreviewCard/PreviewCard.d.ts +13 -0
  28. package/dist/components/PreviewCard/PreviewCard.d.ts.map +1 -0
  29. package/dist/components/ScrollArea/ScrollArea.d.ts +13 -0
  30. package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  31. package/dist/components/Slider/Slider.d.ts +20 -0
  32. package/dist/components/Slider/Slider.d.ts.map +1 -1
  33. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  34. package/dist/components/Toast/Toast.d.ts +23 -0
  35. package/dist/components/Toast/Toast.d.ts.map +1 -0
  36. package/dist/components/Toggle/Toggle.d.ts +17 -0
  37. package/dist/components/Toggle/Toggle.d.ts.map +1 -0
  38. package/dist/components/Toolbar/Toolbar.d.ts +12 -0
  39. package/dist/components/Toolbar/Toolbar.d.ts.map +1 -0
  40. package/dist/components/utils/styles.d.ts +1 -0
  41. package/dist/components/utils/styles.d.ts.map +1 -1
  42. package/dist/components/utils/useMediaQuery.d.ts +14 -0
  43. package/dist/components/utils/useMediaQuery.d.ts.map +1 -0
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +35 -1
  47. package/dist/index.d.ts +35 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1618 -504
  50. package/dist/index.js.map +1 -1
  51. package/dist/styles.css +1 -1
  52. package/dist/theme.css +19 -0
  53. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,25 +1,46 @@
1
- import { jsx as a, jsxs as g } from "react/jsx-runtime";
2
- import { Tooltip as h } from "@base-ui/react/tooltip";
3
- import { Button as M } from "@base-ui/react/button";
4
- import { forwardRef as c, useRef as V, useCallback as E, useLayoutEffect as W } from "react";
5
- import { clsx as X } from "clsx";
6
- import { twMerge as q } from "tailwind-merge";
7
- import { Field as S } from "@base-ui/react/field";
8
- import { PaperPlaneTilt as J, X as K, Check as F, CaretUpDown as Q, CircleNotch as Y, CaretDown as Z } from "@phosphor-icons/react";
9
- import { Avatar as $ } from "@base-ui/react/avatar";
10
- import { Checkbox as z } from "@base-ui/react/checkbox";
11
- import { Radio as j } from "@base-ui/react/radio";
12
- import { RadioGroup as _ } from "@base-ui/react/radio-group";
13
- import { Switch as A } from "@base-ui/react/switch";
14
- import { Slider as k } from "@base-ui/react/slider";
15
- import { Select as b } from "@base-ui/react/select";
16
- import { Separator as tt } from "@base-ui/react/separator";
17
- import { Progress as C } from "@base-ui/react/progress";
18
- import { Dialog as l } from "@base-ui/react/dialog";
19
- import { Menu as x } from "@base-ui/react/menu";
20
- import { Tabs as P } from "@base-ui/react/tabs";
21
- import { Accordion as N } from "@base-ui/react/accordion";
22
- const L = {
1
+ import { jsx as o, jsxs as d } from "react/jsx-runtime";
2
+ import { Tooltip as D } from "@base-ui/react/tooltip";
3
+ import { Button as it } from "@base-ui/react/button";
4
+ import { forwardRef as s, useRef as st, useCallback as U, useLayoutEffect as pt, useState as bt, useEffect as ft, useSyncExternalStore as xt, useContext as W, createContext as ht } from "react";
5
+ import { clsx as wt } from "clsx";
6
+ import { twMerge as vt } from "tailwind-merge";
7
+ import { Field as E } from "@base-ui/react/field";
8
+ import { PaperPlaneTilt as Nt, X as ct, Check as lt, CaretUpDown as Pt, CircleNotch as kt, CaretDown as Tt, Minus as $t, Plus as Ct } from "@phosphor-icons/react";
9
+ import { Avatar as X } from "@base-ui/react/avatar";
10
+ import { Checkbox as q } from "@base-ui/react/checkbox";
11
+ import { Radio as tt } from "@base-ui/react/radio";
12
+ import { RadioGroup as St } from "@base-ui/react/radio-group";
13
+ import { Switch as et } from "@base-ui/react/switch";
14
+ import { Slider as B } from "@base-ui/react/slider";
15
+ import { Select as x } from "@base-ui/react/select";
16
+ import { Separator as Rt } from "@base-ui/react/separator";
17
+ import { Progress as O } from "@base-ui/react/progress";
18
+ import { Dialog as $ } from "@base-ui/react/dialog";
19
+ import { Drawer as v } from "@base-ui/react/drawer";
20
+ import { Menu as A } from "@base-ui/react/menu";
21
+ import { Tabs as V } from "@base-ui/react/tabs";
22
+ import { Accordion as F } from "@base-ui/react/accordion";
23
+ import { ContextMenu as T } from "@base-ui/react/context-menu";
24
+ import { Popover as P } from "@base-ui/react/popover";
25
+ import { Toast as k } from "@base-ui/react/toast";
26
+ import { ScrollArea as j } from "@base-ui/react/scroll-area";
27
+ import { Toggle as It } from "@base-ui/react/toggle";
28
+ import { ToggleGroup as Dt } from "@base-ui/react/toggle-group";
29
+ import { Meter as z } from "@base-ui/react/meter";
30
+ import { AlertDialog as C } from "@base-ui/react/alert-dialog";
31
+ import { Autocomplete as p } from "@base-ui/react/autocomplete";
32
+ import { Combobox as g } from "@base-ui/react/combobox";
33
+ import { CheckboxGroup as At } from "@base-ui/react/checkbox-group";
34
+ import { Collapsible as Q } from "@base-ui/react/collapsible";
35
+ import { Form as Mt } from "@base-ui/react/form";
36
+ import { Fieldset as dt } from "@base-ui/react/fieldset";
37
+ import { Menubar as Lt } from "@base-ui/react/menubar";
38
+ import { NavigationMenu as h } from "@base-ui/react/navigation-menu";
39
+ import { NumberField as I } from "@base-ui/react/number-field";
40
+ import { OTPField as rt } from "@base-ui/react/otp-field";
41
+ import { PreviewCard as M } from "@base-ui/react/preview-card";
42
+ import { Toolbar as L } from "@base-ui/react/toolbar";
43
+ const ot = {
23
44
  color: {
24
45
  bg: "#111318",
25
46
  surface: "#1a1d24",
@@ -48,8 +69,8 @@ const L = {
48
69
  full: 999
49
70
  }
50
71
  };
51
- function et(n = {}) {
52
- const t = { ...L.color, ...n.color }, e = { ...L.radius, ...n.radius };
72
+ function jt(a = {}) {
73
+ const t = { ...ot.color, ...a.color }, e = { ...ot.radius, ...a.radius };
53
74
  return {
54
75
  "--gryt-bg": t.bg,
55
76
  "--gryt-surface": t.surface,
@@ -97,47 +118,47 @@ function et(n = {}) {
97
118
  "--gryt-radius-full": `${e.full}px`
98
119
  };
99
120
  }
100
- function rt(n) {
101
- return Object.keys(n).some((t) => t.startsWith("--"));
121
+ function Gt(a) {
122
+ return Object.keys(a).some((t) => t.startsWith("--"));
102
123
  }
103
- function se({
104
- children: n,
124
+ function no({
125
+ children: a,
105
126
  className: t,
106
127
  theme: e,
107
128
  tooltipDelay: r = 400
108
129
  }) {
109
- const s = e && rt(e) ? e : et(e ?? {});
110
- return /* @__PURE__ */ a("div", { className: t, style: s, children: /* @__PURE__ */ a(h.Provider, { delay: r, children: n }) });
130
+ const i = e && Gt(e) ? e : jt(e ?? {});
131
+ return /* @__PURE__ */ o("div", { className: t, style: i, children: /* @__PURE__ */ o(D.Provider, { delay: r, children: a }) });
111
132
  }
112
- function o(...n) {
113
- return q(X(n));
133
+ function n(...a) {
134
+ return vt(wt(a));
114
135
  }
115
- const at = {
136
+ const Bt = {
116
137
  primary: "bg-gryt-accent text-gryt-on-accent hover:not-data-disabled:bg-gryt-accent-light",
117
138
  secondary: "bg-gryt-secondary text-gryt-on-secondary hover:not-data-disabled:bg-gryt-secondary-light",
118
139
  neutral: "bg-gryt-surface-raised text-gryt-text hover:not-data-disabled:bg-gryt-surface-hover",
119
140
  danger: "bg-gryt-danger text-gryt-on-danger hover:not-data-disabled:bg-gryt-danger-light",
120
141
  ghost: "bg-transparent text-gryt-muted hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text"
121
- }, nt = {
142
+ }, zt = {
122
143
  xsmall: "min-h-8 px-3 text-xs",
123
144
  small: "min-h-9 px-4 text-sm",
124
145
  medium: "min-h-10 px-5 text-sm",
125
146
  large: "min-h-12 px-6 text-base"
126
- }, ot = c(
147
+ }, Ft = s(
127
148
  function({
128
149
  children: t,
129
150
  className: e,
130
151
  endIcon: r,
131
- size: s = "medium",
132
- startIcon: i,
133
- tone: d = "primary",
134
- ...y
152
+ size: i = "medium",
153
+ startIcon: c,
154
+ tone: l = "primary",
155
+ ...m
135
156
  }, u) {
136
- return /* @__PURE__ */ g(
137
- M,
157
+ return /* @__PURE__ */ d(
158
+ it,
138
159
  {
139
160
  ref: u,
140
- className: o(
161
+ className: n(
141
162
  "gryt-button",
142
163
  "inline-flex items-center justify-center gap-2 border-0 shadow-none",
143
164
  "rounded-(--gryt-radius-full) font-semibold whitespace-nowrap select-none",
@@ -152,72 +173,72 @@ const at = {
152
173
  "motion-safe:active:not-data-disabled:scale-[0.96]",
153
174
  "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light",
154
175
  "data-disabled:cursor-not-allowed data-disabled:opacity-50",
155
- nt[s],
156
- at[d],
176
+ zt[i],
177
+ Bt[l],
157
178
  e
158
179
  ),
159
- ...y,
180
+ ...m,
160
181
  children: [
161
- i,
182
+ c,
162
183
  t,
163
184
  r
164
185
  ]
165
186
  }
166
187
  );
167
188
  }
168
- ), f = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light", H = "rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface text-gryt-text", I = [
189
+ ), b = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light", Vt = "has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-2 has-[:focus-visible]:outline-gryt-accent-light", S = "rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface text-gryt-text", R = [
169
190
  // scale and translate are named explicitly because Tailwind v4 sets them as
170
191
  // standalone CSS properties rather than folding them into `transform`, so
171
192
  // transitioning `transform` would leave the popup snapping into place.
172
193
  "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none",
173
194
  "data-starting-style:scale-[0.98] data-starting-style:opacity-0",
174
195
  "data-ending-style:scale-[0.98] data-ending-style:opacity-0"
175
- ].join(" "), T = "data-disabled:cursor-not-allowed data-disabled:opacity-50", st = {
196
+ ].join(" "), G = "data-disabled:cursor-not-allowed data-disabled:opacity-50", Et = {
176
197
  primary: "data-checked:bg-gryt-accent data-checked:text-gryt-on-accent",
177
198
  secondary: "data-checked:bg-gryt-secondary data-checked:text-gryt-on-secondary",
178
199
  neutral: "data-checked:bg-gryt-surface-hover data-checked:text-gryt-text",
179
200
  danger: "data-checked:bg-gryt-danger data-checked:text-gryt-on-danger",
180
201
  success: "data-checked:bg-gryt-success data-checked:text-gryt-on-accent",
181
202
  warning: "data-checked:bg-gryt-warning data-checked:text-gryt-on-accent"
182
- }, G = {
203
+ }, gt = {
183
204
  primary: "bg-gryt-accent",
184
205
  secondary: "bg-gryt-secondary",
185
206
  neutral: "bg-gryt-surface-hover",
186
207
  danger: "bg-gryt-danger",
187
208
  success: "bg-gryt-success",
188
209
  warning: "bg-gryt-warning"
189
- }, ct = {
210
+ }, _t = {
190
211
  primary: "data-checked:border-gryt-accent",
191
212
  secondary: "data-checked:border-gryt-secondary",
192
213
  neutral: "data-checked:border-gryt-muted",
193
214
  danger: "data-checked:border-gryt-danger",
194
215
  success: "data-checked:border-gryt-success",
195
216
  warning: "data-checked:border-gryt-warning"
196
- }, it = {
217
+ }, Ht = {
197
218
  primary: "data-checked:bg-gryt-accent",
198
219
  secondary: "data-checked:bg-gryt-secondary",
199
220
  neutral: "data-checked:bg-gryt-surface-hover",
200
221
  danger: "data-checked:bg-gryt-danger",
201
222
  success: "data-checked:bg-gryt-success",
202
223
  warning: "data-checked:bg-gryt-warning"
203
- }, dt = {
224
+ }, Xt = {
204
225
  primary: "text-gryt-accent hover:not-data-disabled:bg-gryt-accent/10",
205
226
  secondary: "text-gryt-secondary hover:not-data-disabled:bg-gryt-secondary/10",
206
227
  neutral: "text-gryt-muted hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text",
207
228
  danger: "text-gryt-danger hover:not-data-disabled:bg-gryt-danger/10",
208
229
  ghost: "text-gryt-muted hover:not-data-disabled:bg-white/8 hover:not-data-disabled:text-gryt-text"
209
- }, lt = {
230
+ }, Ot = {
210
231
  xsmall: "h-8 w-8",
211
232
  small: "h-9 w-9",
212
233
  medium: "h-10 w-10",
213
234
  large: "h-12 w-12"
214
- }, ce = c(
215
- function({ className: t, size: e = "medium", tone: r = "neutral", ...s }, i) {
216
- return /* @__PURE__ */ a(
217
- M,
235
+ }, io = s(
236
+ function({ className: t, size: e = "medium", tone: r = "neutral", ...i }, c) {
237
+ return /* @__PURE__ */ o(
238
+ it,
218
239
  {
219
- ref: i,
220
- className: o(
240
+ ref: c,
241
+ className: n(
221
242
  "gryt-icon-button",
222
243
  "inline-flex shrink-0 items-center justify-center border-0 bg-transparent p-0",
223
244
  "rounded-(--gryt-radius-full) select-none",
@@ -225,23 +246,23 @@ const at = {
225
246
  "transition-[scale,background-color,color] duration-(--gryt-dur-spring) ease-spring",
226
247
  "motion-safe:hover:not-data-disabled:scale-[1.06]",
227
248
  "motion-safe:active:not-data-disabled:scale-[0.94]",
228
- f,
229
- T,
230
- lt[e],
231
- dt[r],
249
+ b,
250
+ G,
251
+ Ot[e],
252
+ Xt[r],
232
253
  t
233
254
  ),
234
- ...s
255
+ ...i
235
256
  }
236
257
  );
237
258
  }
238
- ), ie = c(
239
- function({ className: t, elevated: e = !1, ...r }, s) {
240
- return /* @__PURE__ */ a(
259
+ ), so = s(
260
+ function({ className: t, elevated: e = !1, ...r }, i) {
261
+ return /* @__PURE__ */ o(
241
262
  "div",
242
263
  {
243
- ref: s,
244
- className: o(
264
+ ref: i,
265
+ className: n(
245
266
  "gryt-surface rounded-(--gryt-radius-lg) border border-gryt-border p-4 text-gryt-text",
246
267
  e ? "bg-gryt-surface-raised" : "bg-gryt-surface",
247
268
  t
@@ -250,276 +271,276 @@ const at = {
250
271
  }
251
272
  );
252
273
  }
253
- ), de = c(
254
- function({ children: t, className: e, from: r = "assistant", ...s }, i) {
255
- return /* @__PURE__ */ a(
274
+ ), co = s(
275
+ function({ children: t, className: e, from: r = "assistant", ...i }, c) {
276
+ return /* @__PURE__ */ o(
256
277
  "div",
257
278
  {
258
- ref: i,
259
- className: o(
279
+ ref: c,
280
+ className: n(
260
281
  "gryt-message-bubble",
261
282
  r === "user" && "ml-auto bg-gryt-accent text-gryt-on-accent",
262
283
  r === "assistant" && "mr-auto border border-gryt-border bg-gryt-surface text-gryt-text",
263
284
  r === "system" && "mx-auto border border-dashed border-gryt-border bg-transparent text-gryt-muted",
264
285
  e
265
286
  ),
266
- ...s,
287
+ ...i,
267
288
  children: t
268
289
  }
269
290
  );
270
291
  }
271
- ), gt = {
292
+ ), Yt = {
272
293
  small: "min-h-9 px-3 py-1.5 text-sm",
273
294
  medium: "min-h-11 px-4 py-2.5 text-sm"
274
- }, le = c(
295
+ }, lo = s(
275
296
  function({
276
297
  className: t,
277
298
  error: e = !1,
278
299
  fieldClassName: r,
279
- helperText: s,
280
- label: i,
281
- minRows: d = 3,
282
- multiline: y = !1,
300
+ helperText: i,
301
+ label: c,
302
+ minRows: l = 3,
303
+ multiline: m = !1,
283
304
  size: u = "medium",
284
- ...p
285
- }, w) {
286
- const v = /* @__PURE__ */ a(
287
- S.Control,
305
+ ...w
306
+ }, y) {
307
+ const N = /* @__PURE__ */ o(
308
+ E.Control,
288
309
  {
289
- ref: w,
290
- render: y ? /* @__PURE__ */ a("textarea", { rows: d }) : void 0,
291
- className: o(
310
+ ref: y,
311
+ render: m ? /* @__PURE__ */ o("textarea", { rows: l }) : void 0,
312
+ className: n(
292
313
  "gryt-text-field-control w-full rounded-(--gryt-radius-xl) border bg-gryt-surface-raised",
293
314
  "text-gryt-text outline-none placeholder:text-gryt-muted",
294
315
  "transition-colors duration-150",
295
316
  "hover:border-gryt-accent-light focus:border-gryt-accent",
296
317
  "disabled:cursor-not-allowed disabled:opacity-60",
297
- y && "resize-y leading-6",
318
+ m && "resize-y leading-6",
298
319
  e ? "border-gryt-danger" : "border-gryt-border",
299
- gt[u],
320
+ Yt[u],
300
321
  t
301
322
  ),
302
- ...p
323
+ ...w
303
324
  }
304
325
  );
305
- return /* @__PURE__ */ g(
306
- S.Root,
326
+ return /* @__PURE__ */ d(
327
+ E.Root,
307
328
  {
308
- className: o(
329
+ className: n(
309
330
  "gryt-text-field flex w-full flex-col gap-1.5",
310
331
  r
311
332
  ),
312
333
  children: [
313
- i ? /* @__PURE__ */ a(S.Label, { className: "text-xs font-medium text-gryt-muted", children: i }) : null,
314
- v,
315
- s ? /* @__PURE__ */ a(
316
- S.Description,
334
+ c ? /* @__PURE__ */ o(E.Label, { className: "text-xs font-medium text-gryt-muted", children: c }) : null,
335
+ N,
336
+ i ? /* @__PURE__ */ o(
337
+ E.Description,
317
338
  {
318
- className: o(
339
+ className: n(
319
340
  "text-xs",
320
341
  e ? "text-gryt-danger" : "text-gryt-muted"
321
342
  ),
322
- children: s
343
+ children: i
323
344
  }
324
345
  ) : null
325
346
  ]
326
347
  }
327
348
  );
328
349
  }
329
- ), ge = c(
350
+ ), go = s(
330
351
  function({
331
352
  className: t,
332
353
  disabled: e = !1,
333
354
  maxRows: r = 8,
334
- minRows: s = 1,
335
- onSubmit: i,
336
- placeholder: d = "Message Gryt",
337
- submitLabel: y = "Send",
355
+ minRows: i = 1,
356
+ onSubmit: c,
357
+ placeholder: l = "Message Gryt",
358
+ submitLabel: m = "Send",
338
359
  ...u
339
- }, p) {
340
- const w = V(null), v = E(() => {
341
- const m = w.current;
342
- if (!m)
360
+ }, w) {
361
+ const y = st(null), N = U(() => {
362
+ const f = y.current;
363
+ if (!f)
343
364
  return;
344
- const R = window.getComputedStyle(m), D = parseFloat(R.lineHeight) || 24, B = parseFloat(R.paddingTop) + parseFloat(R.paddingBottom);
345
- m.style.height = "auto", m.style.height = `${Math.min(
346
- Math.max(m.scrollHeight, D * s + B),
347
- D * r + B
365
+ const H = window.getComputedStyle(f), K = parseFloat(H.lineHeight) || 24, Z = parseFloat(H.paddingTop) + parseFloat(H.paddingBottom);
366
+ f.style.height = "auto", f.style.height = `${Math.min(
367
+ Math.max(f.scrollHeight, K * i + Z),
368
+ K * r + Z
348
369
  )}px`;
349
- }, [r, s]);
350
- W(v, [v, u.value]);
351
- function U(m) {
352
- if (!i) {
353
- m.preventDefault();
370
+ }, [r, i]);
371
+ pt(N, [N, u.value]);
372
+ function J(f) {
373
+ if (!c) {
374
+ f.preventDefault();
354
375
  return;
355
376
  }
356
- i(m);
377
+ c(f);
357
378
  }
358
- return /* @__PURE__ */ g("form", { className: o("gryt-composer", t), onSubmit: U, children: [
359
- /* @__PURE__ */ a(
379
+ return /* @__PURE__ */ d("form", { className: n("gryt-composer", t), onSubmit: J, children: [
380
+ /* @__PURE__ */ o(
360
381
  "textarea",
361
382
  {
362
- ref: (m) => {
363
- w.current = m, typeof p == "function" ? p(m) : p && (p.current = m);
383
+ ref: (f) => {
384
+ y.current = f, typeof w == "function" ? w(f) : w && (w.current = f);
364
385
  },
365
- rows: s,
386
+ rows: i,
366
387
  disabled: e,
367
- placeholder: d,
368
- onInput: v,
388
+ placeholder: l,
389
+ onInput: N,
369
390
  className: "gryt-composer-textarea disabled:cursor-not-allowed disabled:opacity-60",
370
391
  ...u
371
392
  }
372
393
  ),
373
- /* @__PURE__ */ a(
374
- ot,
394
+ /* @__PURE__ */ o(
395
+ Ft,
375
396
  {
376
397
  type: "submit",
377
398
  disabled: e,
378
399
  size: "small",
379
- endIcon: /* @__PURE__ */ a(J, { size: 14, weight: "fill" }),
380
- children: y
400
+ endIcon: /* @__PURE__ */ o(Nt, { size: 14, weight: "fill" }),
401
+ children: m
381
402
  }
382
403
  )
383
404
  ] });
384
405
  }
385
- ), ut = {
406
+ ), Ut = {
386
407
  small: "h-8 w-8 text-xs",
387
408
  medium: "h-10 w-10 text-sm",
388
409
  large: "h-12 w-12 text-base"
389
- }, yt = c(function({ alt: t, children: e, className: r, fallback: s, size: i = "medium", src: d, ...y }, u) {
390
- return /* @__PURE__ */ g(
391
- $.Root,
410
+ }, Wt = s(function({ alt: t, children: e, className: r, fallback: i, size: c = "medium", src: l, ...m }, u) {
411
+ return /* @__PURE__ */ d(
412
+ X.Root,
392
413
  {
393
414
  ref: u,
394
- className: o(
415
+ className: n(
395
416
  "gryt-avatar inline-flex shrink-0 items-center justify-center overflow-hidden align-middle select-none",
396
417
  "rounded-(--gryt-radius-full) bg-gryt-surface-raised font-medium text-gryt-text ring-1 ring-gryt-border",
397
- ut[i],
418
+ Ut[c],
398
419
  r
399
420
  ),
400
- ...y,
421
+ ...m,
401
422
  children: [
402
- d ? /* @__PURE__ */ a(
403
- $.Image,
423
+ l ? /* @__PURE__ */ o(
424
+ X.Image,
404
425
  {
405
- src: d,
426
+ src: l,
406
427
  alt: t,
407
428
  className: "h-full w-full object-cover"
408
429
  }
409
430
  ) : null,
410
- /* @__PURE__ */ a($.Fallback, { className: "flex h-full w-full items-center justify-center", children: s ?? e })
431
+ /* @__PURE__ */ o(X.Fallback, { className: "flex h-full w-full items-center justify-center", children: i ?? e })
411
432
  ]
412
433
  }
413
434
  );
414
- }), ue = c(function({ active: t = !1, avatar: e, className: r, subtitle: s, title: i, ...d }, y) {
415
- return /* @__PURE__ */ g(
435
+ }), uo = s(function({ active: t = !1, avatar: e, className: r, subtitle: i, title: c, ...l }, m) {
436
+ return /* @__PURE__ */ d(
416
437
  "button",
417
438
  {
418
- ref: y,
439
+ ref: m,
419
440
  type: "button",
420
- className: o(
441
+ className: n(
421
442
  "gryt-conversation-item",
422
443
  t ? "bg-gryt-accent text-gryt-on-accent" : "text-gryt-text hover:bg-white/5",
423
444
  r
424
445
  ),
425
- ...d,
446
+ ...l,
426
447
  children: [
427
- e ?? /* @__PURE__ */ a(
428
- yt,
448
+ e ?? /* @__PURE__ */ o(
449
+ Wt,
429
450
  {
430
451
  size: "small",
431
- className: o(
452
+ className: n(
432
453
  t ? "bg-gryt-on-accent text-gryt-accent ring-transparent" : "bg-gryt-surface-raised text-gryt-text"
433
454
  ),
434
- children: i.slice(0, 1).toUpperCase()
455
+ children: c.slice(0, 1).toUpperCase()
435
456
  }
436
457
  ),
437
- /* @__PURE__ */ g("span", { className: "min-w-0 flex-1", children: [
438
- /* @__PURE__ */ a("span", { className: "block truncate text-sm font-semibold", children: i }),
439
- s ? /* @__PURE__ */ a(
458
+ /* @__PURE__ */ d("span", { className: "min-w-0 flex-1", children: [
459
+ /* @__PURE__ */ o("span", { className: "block truncate text-sm font-semibold", children: c }),
460
+ i ? /* @__PURE__ */ o(
440
461
  "span",
441
462
  {
442
- className: o(
463
+ className: n(
443
464
  "block truncate text-xs",
444
465
  t ? "text-gryt-on-accent/70" : "text-gryt-muted"
445
466
  ),
446
- children: s
467
+ children: i
447
468
  }
448
469
  ) : null
449
470
  ] })
450
471
  ]
451
472
  }
452
473
  );
453
- }), ye = c(function({ badgeContent: t, children: e, className: r, max: s = 99, showZero: i = !1, ...d }, y) {
454
- const u = typeof t == "number" ? t : null, p = u !== null && u === 0 && !i, w = u !== null && u > s ? `${s}+` : t;
455
- return /* @__PURE__ */ g(
474
+ }), yo = s(function({ badgeContent: t, children: e, className: r, max: i = 99, showZero: c = !1, ...l }, m) {
475
+ const u = typeof t == "number" ? t : null, w = u !== null && u === 0 && !c, y = u !== null && u > i ? `${i}+` : t;
476
+ return /* @__PURE__ */ d(
456
477
  "span",
457
478
  {
458
- ref: y,
459
- className: o("gryt-badge relative inline-flex", r),
460
- ...d,
479
+ ref: m,
480
+ className: n("gryt-badge relative inline-flex", r),
481
+ ...l,
461
482
  children: [
462
483
  e,
463
- t !== void 0 && !p ? /* @__PURE__ */ a(
484
+ t !== void 0 && !w ? /* @__PURE__ */ o(
464
485
  "span",
465
486
  {
466
- className: o(
487
+ className: n(
467
488
  "gryt-badge-dot absolute -top-1 -right-1 z-10 inline-flex items-center justify-center",
468
489
  "min-w-5 rounded-(--gryt-radius-full) px-1.5 py-0.5",
469
490
  "bg-gryt-accent text-[0.65rem] leading-none font-semibold text-gryt-on-accent",
470
491
  "ring-2 ring-gryt-bg"
471
492
  ),
472
- children: w
493
+ children: y
473
494
  }
474
495
  ) : null
475
496
  ]
476
497
  }
477
498
  );
478
- }), mt = {
499
+ }), Qt = {
479
500
  neutral: "border-gryt-border bg-gryt-surface-raised text-gryt-text",
480
501
  primary: "border-gryt-accent/40 bg-gryt-accent/12 text-gryt-accent",
481
502
  secondary: "border-gryt-secondary/40 bg-gryt-secondary/12 text-gryt-secondary",
482
503
  success: "border-gryt-success/40 bg-gryt-success/12 text-gryt-success",
483
504
  warning: "border-gryt-warning/40 bg-gryt-warning/12 text-gryt-warning",
484
505
  danger: "border-gryt-danger/40 bg-gryt-danger/12 text-gryt-danger"
485
- }, me = c(function({ children: t, className: e, icon: r, label: s, onDelete: i, tone: d = "neutral", ...y }, u) {
486
- return /* @__PURE__ */ g(
506
+ }, mo = s(function({ children: t, className: e, icon: r, label: i, onDelete: c, tone: l = "neutral", ...m }, u) {
507
+ return /* @__PURE__ */ d(
487
508
  "span",
488
509
  {
489
510
  ref: u,
490
- className: o(
511
+ className: n(
491
512
  "gryt-chip inline-flex items-center gap-1.5 rounded-(--gryt-radius-full) border px-3 py-1 text-xs font-medium",
492
- mt[d],
513
+ Qt[l],
493
514
  e
494
515
  ),
495
- ...y,
516
+ ...m,
496
517
  children: [
497
518
  r,
498
- s ?? t,
499
- i ? /* @__PURE__ */ a(
519
+ i ?? t,
520
+ c ? /* @__PURE__ */ o(
500
521
  "button",
501
522
  {
502
523
  type: "button",
503
524
  "aria-label": "Remove",
504
- onClick: i,
505
- className: o(
525
+ onClick: c,
526
+ className: n(
506
527
  "-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-(--gryt-radius-full)",
507
528
  "opacity-70 transition-opacity hover:opacity-100",
508
- f
529
+ b
509
530
  ),
510
- children: /* @__PURE__ */ a(K, { size: 10, weight: "bold", "aria-hidden": "true" })
531
+ children: /* @__PURE__ */ o(ct, { size: 10, weight: "bold", "aria-hidden": "true" })
511
532
  }
512
533
  ) : null
513
534
  ]
514
535
  }
515
536
  );
516
- }), be = c(
517
- function({ className: t, tone: e = "primary", ...r }, s) {
518
- return /* @__PURE__ */ a(
519
- z.Root,
537
+ }), po = s(
538
+ function({ className: t, tone: e = "primary", ...r }, i) {
539
+ return /* @__PURE__ */ o(
540
+ q.Root,
520
541
  {
521
- ref: s,
522
- className: o(
542
+ ref: i,
543
+ className: n(
523
544
  "gryt-checkbox flex h-5 w-5 shrink-0 items-center justify-center",
524
545
  "rounded-(--gryt-radius-sm) border border-gryt-border bg-gryt-surface-raised",
525
546
  "transition-[scale,background-color,border-color] duration-(--gryt-dur-spring) ease-spring",
@@ -529,18 +550,18 @@ const at = {
529
550
  "hover:not-data-disabled:border-gryt-accent-light",
530
551
  "motion-safe:hover:not-data-disabled:scale-[1.08]",
531
552
  "motion-safe:active:not-data-disabled:scale-[0.92]",
532
- f,
533
- T,
553
+ b,
554
+ G,
534
555
  // Unchecked stays a neutral outline; the tone only paints once checked.
535
- st[e],
556
+ Et[e],
536
557
  t
537
558
  ),
538
559
  ...r,
539
- children: /* @__PURE__ */ a(
540
- z.Indicator,
560
+ children: /* @__PURE__ */ o(
561
+ q.Indicator,
541
562
  {
542
563
  keepMounted: !0,
543
- className: o(
564
+ className: n(
544
565
  "flex origin-center",
545
566
  "transition-[scale,opacity] duration-(--gryt-dur-spring) ease-spring",
546
567
  // Scaling from 0 rather than from something near 1 is deliberate.
@@ -550,65 +571,65 @@ const at = {
550
571
  "data-unchecked:scale-0 data-unchecked:opacity-0",
551
572
  "motion-reduce:transition-none"
552
573
  ),
553
- children: /* @__PURE__ */ a(F, { size: 12, weight: "bold" })
574
+ children: /* @__PURE__ */ o(lt, { size: 12, weight: "bold" })
554
575
  }
555
576
  )
556
577
  }
557
578
  );
558
579
  }
559
- ), fe = c(function({ className: t, tone: e = "primary", ...r }, s) {
560
- return /* @__PURE__ */ a(
561
- j.Root,
580
+ ), bo = s(function({ className: t, tone: e = "primary", ...r }, i) {
581
+ return /* @__PURE__ */ o(
582
+ tt.Root,
562
583
  {
563
- ref: s,
564
- className: o(
584
+ ref: i,
585
+ className: n(
565
586
  "gryt-radio flex h-5 w-5 shrink-0 items-center justify-center",
566
587
  "rounded-(--gryt-radius-full) border border-gryt-border bg-gryt-surface-raised",
567
588
  "transition-[scale,background-color,border-color] duration-(--gryt-dur-spring) ease-spring",
568
589
  "hover:not-data-disabled:border-gryt-accent-light",
569
590
  "motion-safe:hover:not-data-disabled:scale-[1.08]",
570
591
  "motion-safe:active:not-data-disabled:scale-[0.92]",
571
- f,
572
- T,
592
+ b,
593
+ G,
573
594
  // Border takes the tone when selected; the dot inside carries the fill.
574
- ct[e],
595
+ _t[e],
575
596
  t
576
597
  ),
577
598
  ...r,
578
- children: /* @__PURE__ */ a(
579
- j.Indicator,
599
+ children: /* @__PURE__ */ o(
600
+ tt.Indicator,
580
601
  {
581
602
  keepMounted: !0,
582
- className: o(
603
+ className: n(
583
604
  "h-2.5 w-2.5 origin-center rounded-(--gryt-radius-full)",
584
605
  "transition-[scale,opacity] duration-(--gryt-dur-spring) ease-spring",
585
606
  // From 0, for the same reason as the Checkbox tick — see the note there.
586
607
  "data-unchecked:scale-0 data-unchecked:opacity-0",
587
608
  "motion-reduce:transition-none",
588
- G[e]
609
+ gt[e]
589
610
  )
590
611
  }
591
612
  )
592
613
  }
593
614
  );
594
- }), pe = c(
615
+ }), fo = s(
595
616
  function({ className: t, ...e }, r) {
596
- return /* @__PURE__ */ a(
597
- _,
617
+ return /* @__PURE__ */ o(
618
+ St,
598
619
  {
599
620
  ref: r,
600
- className: o("gryt-radio-group flex flex-col gap-2", t),
621
+ className: n("gryt-radio-group flex flex-col gap-2", t),
601
622
  ...e
602
623
  }
603
624
  );
604
625
  }
605
- ), he = c(
606
- function({ className: t, tone: e = "primary", ...r }, s) {
607
- return /* @__PURE__ */ a(
608
- A.Root,
626
+ ), xo = s(
627
+ function({ className: t, tone: e = "primary", ...r }, i) {
628
+ return /* @__PURE__ */ o(
629
+ et.Root,
609
630
  {
610
- ref: s,
611
- className: o(
631
+ ref: i,
632
+ className: n(
612
633
  "gryt-switch relative inline-flex h-6 w-10 shrink-0 items-center",
613
634
  "rounded-(--gryt-radius-full) border border-gryt-border bg-gryt-surface-raised p-0.5",
614
635
  "transition-[scale,background-color,border-color] duration-(--gryt-dur-spring) ease-spring",
@@ -616,16 +637,16 @@ const at = {
616
637
  "hover:not-data-disabled:border-gryt-accent-light",
617
638
  "motion-safe:hover:not-data-disabled:scale-[1.05]",
618
639
  "motion-safe:active:not-data-disabled:scale-[0.95]",
619
- f,
620
- T,
621
- it[e],
640
+ b,
641
+ G,
642
+ Ht[e],
622
643
  t
623
644
  ),
624
645
  ...r,
625
- children: /* @__PURE__ */ a(
626
- A.Thumb,
646
+ children: /* @__PURE__ */ o(
647
+ et.Thumb,
627
648
  {
628
- className: o(
649
+ className: n(
629
650
  "h-4.5 w-4.5 rounded-(--gryt-radius-full) bg-gryt-text",
630
651
  "transition-transform duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none",
631
652
  "data-checked:translate-x-4 data-checked:bg-gryt-bg"
@@ -635,135 +656,174 @@ const at = {
635
656
  }
636
657
  );
637
658
  }
638
- );
639
- function xe({
640
- className: n,
659
+ ), at = 3;
660
+ function ho({
661
+ className: a,
641
662
  tone: t = "primary",
642
663
  "aria-label": e,
643
664
  ...r
644
665
  }) {
645
- return /* @__PURE__ */ a(
646
- k.Root,
666
+ const [i, c] = bt(!1), l = st(null);
667
+ ft(() => {
668
+ if (!i && l.current === null)
669
+ return;
670
+ const y = () => {
671
+ l.current = null, c(!1);
672
+ };
673
+ return window.addEventListener("pointerup", y), window.addEventListener("pointercancel", y), () => {
674
+ window.removeEventListener("pointerup", y), window.removeEventListener("pointercancel", y);
675
+ };
676
+ }, [i]);
677
+ function m(y) {
678
+ l.current = { x: y.clientX, y: y.clientY };
679
+ }
680
+ function u(y) {
681
+ const N = l.current;
682
+ if (N === null || i)
683
+ return;
684
+ (Math.abs(y.clientX - N.x) > at || Math.abs(y.clientY - N.y) > at) && c(!0);
685
+ }
686
+ const w = i ? "transition-none" : "duration-(--gryt-dur-spring) ease-spring-tight motion-reduce:transition-none";
687
+ return /* @__PURE__ */ o(B.Root, { className: n("gryt-slider w-full", a), ...r, children: /* @__PURE__ */ o(
688
+ B.Control,
647
689
  {
648
- className: o("gryt-slider w-full", n),
649
- ...r,
650
- children: /* @__PURE__ */ a(k.Control, { className: "flex w-full touch-none items-center py-2 select-none", children: /* @__PURE__ */ g(k.Track, { className: "h-1.5 w-full rounded-(--gryt-radius-full) bg-gryt-surface-raised select-none", children: [
651
- /* @__PURE__ */ a(
652
- k.Indicator,
690
+ className: "flex w-full touch-none items-center py-2 select-none",
691
+ onPointerDown: m,
692
+ onPointerMove: u,
693
+ children: /* @__PURE__ */ d(B.Track, { className: "h-1.5 w-full rounded-(--gryt-radius-full) bg-gryt-surface-raised select-none", children: [
694
+ /* @__PURE__ */ o(
695
+ B.Indicator,
653
696
  {
654
- className: o(
697
+ className: n(
655
698
  "h-full rounded-(--gryt-radius-full) select-none",
656
- G[t]
699
+ "transition-[width]",
700
+ w,
701
+ gt[t]
657
702
  )
658
703
  }
659
704
  ),
660
- /* @__PURE__ */ a(
661
- k.Thumb,
705
+ /* @__PURE__ */ o(
706
+ B.Thumb,
662
707
  {
663
708
  "aria-label": e,
664
- className: o(
665
- "h-4 w-4 rounded-(--gryt-radius-full) bg-gryt-text select-none",
666
- "transition-transform duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none",
667
- "motion-safe:hover:scale-[1.12] motion-safe:active:scale-[0.94]",
668
- f
709
+ className: n(
710
+ "group h-4 w-4 rounded-(--gryt-radius-full) select-none",
711
+ "transition-[inset-inline-start]",
712
+ w,
713
+ // The ring goes on the thumb but the focus lands on the visually
714
+ // hidden input inside it, so this has to match a descendant.
715
+ // Without it the slider is the one control here you cannot see
716
+ // yourself tab to.
717
+ Vt
718
+ ),
719
+ children: /* @__PURE__ */ o(
720
+ "span",
721
+ {
722
+ className: n(
723
+ "block h-full w-full rounded-(--gryt-radius-full) bg-gryt-text",
724
+ "transition-[scale] duration-(--gryt-dur-spring) ease-spring",
725
+ "motion-safe:group-hover:scale-[1.12] motion-safe:group-active:scale-[0.94]",
726
+ "motion-reduce:transition-none"
727
+ )
728
+ }
669
729
  )
670
730
  }
671
731
  )
672
- ] }) })
732
+ ] })
673
733
  }
674
- );
734
+ ) });
675
735
  }
676
- const bt = {
736
+ const Jt = {
677
737
  small: "min-h-9 px-3 text-sm",
678
738
  medium: "min-h-11 px-4 text-sm"
679
739
  };
680
- function we({
681
- className: n,
740
+ function wo({
741
+ className: a,
682
742
  label: t,
683
743
  options: e = [],
684
744
  placeholder: r = "Select",
685
- size: s = "medium",
686
- ...i
745
+ size: i = "medium",
746
+ ...c
687
747
  }) {
688
- return /* @__PURE__ */ g(b.Root, { items: e, ...i, children: [
689
- /* @__PURE__ */ g("div", { className: o("gryt-select flex w-full flex-col gap-1.5", n), children: [
690
- t ? /* @__PURE__ */ a(b.Label, { className: "text-xs font-medium text-gryt-muted", children: t }) : null,
691
- /* @__PURE__ */ g(
692
- b.Trigger,
748
+ return /* @__PURE__ */ d(x.Root, { items: e, ...c, children: [
749
+ /* @__PURE__ */ d("div", { className: n("gryt-select flex w-full flex-col gap-1.5", a), children: [
750
+ t ? /* @__PURE__ */ o(x.Label, { className: "text-xs font-medium text-gryt-muted", children: t }) : null,
751
+ /* @__PURE__ */ d(
752
+ x.Trigger,
693
753
  {
694
- className: o(
754
+ className: n(
695
755
  "flex w-full items-center justify-between gap-2",
696
756
  "rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface-raised",
697
757
  "text-gryt-text select-none",
698
758
  "transition-colors duration-150 hover:border-gryt-accent-light",
699
759
  "data-disabled:cursor-not-allowed data-disabled:opacity-60",
700
- f,
701
- bt[s]
760
+ b,
761
+ Jt[i]
702
762
  ),
703
763
  children: [
704
- /* @__PURE__ */ a(b.Value, { placeholder: r }),
705
- /* @__PURE__ */ a(b.Icon, { className: "shrink-0 text-gryt-muted", children: /* @__PURE__ */ a(Q, { size: 16 }) })
764
+ /* @__PURE__ */ o(x.Value, { placeholder: r }),
765
+ /* @__PURE__ */ o(x.Icon, { className: "shrink-0 text-gryt-muted", children: /* @__PURE__ */ o(Pt, { size: 16 }) })
706
766
  ]
707
767
  }
708
768
  )
709
769
  ] }),
710
- /* @__PURE__ */ a(b.Portal, { children: /* @__PURE__ */ a(b.Positioner, { sideOffset: 6, className: "outline-none", children: /* @__PURE__ */ a(
711
- b.Popup,
770
+ /* @__PURE__ */ o(x.Portal, { children: /* @__PURE__ */ o(x.Positioner, { sideOffset: 6, className: "outline-none", children: /* @__PURE__ */ o(
771
+ x.Popup,
712
772
  {
713
- className: o("min-w-(--anchor-width) p-1", H, I),
714
- children: /* @__PURE__ */ a(b.List, { children: e.map((d) => /* @__PURE__ */ g(
715
- b.Item,
773
+ className: n("min-w-(--anchor-width) p-1", S, R),
774
+ children: /* @__PURE__ */ o(x.List, { children: e.map((l) => /* @__PURE__ */ d(
775
+ x.Item,
716
776
  {
717
- value: d.value,
718
- disabled: d.disabled,
719
- className: o(
777
+ value: l.value,
778
+ disabled: l.disabled,
779
+ className: n(
720
780
  "flex cursor-default items-center justify-between gap-2",
721
781
  "rounded-(--gryt-radius-md) px-3 py-2 text-sm text-gryt-text",
722
782
  "outline-none select-none data-highlighted:bg-gryt-surface-raised",
723
783
  "data-disabled:cursor-not-allowed data-disabled:opacity-50"
724
784
  ),
725
785
  children: [
726
- /* @__PURE__ */ a(b.ItemText, { children: d.label }),
727
- /* @__PURE__ */ a(b.ItemIndicator, { className: "text-gryt-accent", children: /* @__PURE__ */ a(F, { size: 14, weight: "bold" }) })
786
+ /* @__PURE__ */ o(x.ItemText, { children: l.label }),
787
+ /* @__PURE__ */ o(x.ItemIndicator, { className: "text-gryt-accent", children: /* @__PURE__ */ o(lt, { size: 14, weight: "bold" }) })
728
788
  ]
729
789
  },
730
- String(d.value)
790
+ String(l.value)
731
791
  )) })
732
792
  }
733
793
  ) }) })
734
794
  ] });
735
795
  }
736
- function ve({
737
- children: n,
796
+ function vo({
797
+ children: a,
738
798
  className: t,
739
799
  side: e = "top",
740
800
  sideOffset: r = 8,
741
- title: s
801
+ title: i
742
802
  }) {
743
- return /* @__PURE__ */ g(h.Root, { children: [
744
- /* @__PURE__ */ a(h.Trigger, { render: n }),
745
- /* @__PURE__ */ a(h.Portal, { children: /* @__PURE__ */ a(h.Positioner, { side: e, sideOffset: r, children: /* @__PURE__ */ a(
746
- h.Popup,
803
+ return /* @__PURE__ */ d(D.Root, { children: [
804
+ /* @__PURE__ */ o(D.Trigger, { render: a }),
805
+ /* @__PURE__ */ o(D.Portal, { children: /* @__PURE__ */ o(D.Positioner, { side: e, sideOffset: r, children: /* @__PURE__ */ o(
806
+ D.Popup,
747
807
  {
748
- className: o(
808
+ className: n(
749
809
  "gryt-tooltip rounded-(--gryt-radius-md) border border-gryt-border bg-gryt-surface-raised",
750
810
  "px-2.5 py-1.5 text-xs text-gryt-text",
751
- I,
811
+ R,
752
812
  t
753
813
  ),
754
- children: s
814
+ children: i
755
815
  }
756
816
  ) }) })
757
817
  ] });
758
818
  }
759
- const ke = h.Provider, Ne = c(
760
- function({ className: t, orientation: e = "horizontal", ...r }, s) {
761
- return /* @__PURE__ */ a(
762
- tt,
819
+ const No = D.Provider, Po = s(
820
+ function({ className: t, orientation: e = "horizontal", ...r }, i) {
821
+ return /* @__PURE__ */ o(
822
+ Rt,
763
823
  {
764
- ref: s,
824
+ ref: i,
765
825
  orientation: e,
766
- className: o(
826
+ className: n(
767
827
  "gryt-divider bg-gryt-border",
768
828
  e === "vertical" ? "h-full w-px" : "h-px w-full",
769
829
  t
@@ -772,12 +832,12 @@ const ke = h.Provider, Ne = c(
772
832
  }
773
833
  );
774
834
  }
775
- ), Pe = c(function({ className: t, ...e }, r) {
776
- return /* @__PURE__ */ a(
835
+ ), ko = s(function({ className: t, ...e }, r) {
836
+ return /* @__PURE__ */ o(
777
837
  "div",
778
838
  {
779
839
  ref: r,
780
- className: o(
840
+ className: n(
781
841
  "gryt-card rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface text-gryt-text",
782
842
  t
783
843
  ),
@@ -785,149 +845,149 @@ const ke = h.Provider, Ne = c(
785
845
  }
786
846
  );
787
847
  });
788
- function Se({
789
- children: n,
848
+ function To({
849
+ children: a,
790
850
  className: t,
791
851
  subheader: e,
792
852
  title: r,
793
- ...s
853
+ ...i
794
854
  }) {
795
- return /* @__PURE__ */ g(
855
+ return /* @__PURE__ */ d(
796
856
  "div",
797
857
  {
798
- className: o("gryt-card-header flex flex-col gap-1 p-4", t),
799
- ...s,
858
+ className: n("gryt-card-header flex flex-col gap-1 p-4", t),
859
+ ...i,
800
860
  children: [
801
- r ? /* @__PURE__ */ a("span", { className: "text-base font-semibold text-gryt-text", children: r }) : null,
802
- e ? /* @__PURE__ */ a("span", { className: "text-sm text-gryt-muted", children: e }) : null,
803
- n
861
+ r ? /* @__PURE__ */ o("span", { className: "text-base font-semibold text-gryt-text", children: r }) : null,
862
+ e ? /* @__PURE__ */ o("span", { className: "text-sm text-gryt-muted", children: e }) : null,
863
+ a
804
864
  ]
805
865
  }
806
866
  );
807
867
  }
808
- function Te({
809
- className: n,
868
+ function $o({
869
+ className: a,
810
870
  ...t
811
871
  }) {
812
- return /* @__PURE__ */ a(
872
+ return /* @__PURE__ */ o(
813
873
  "div",
814
874
  {
815
- className: o(
875
+ className: n(
816
876
  "gryt-card-content px-4 pb-4 text-sm text-gryt-muted",
817
- n
877
+ a
818
878
  ),
819
879
  ...t
820
880
  }
821
881
  );
822
882
  }
823
- function Re({
824
- className: n,
883
+ function Co({
884
+ className: a,
825
885
  ...t
826
886
  }) {
827
- return /* @__PURE__ */ a(
887
+ return /* @__PURE__ */ o(
828
888
  "div",
829
889
  {
830
- className: o(
890
+ className: n(
831
891
  "gryt-card-actions flex items-center gap-2 px-4 pb-4",
832
- n
892
+ a
833
893
  ),
834
894
  ...t
835
895
  }
836
896
  );
837
897
  }
838
- const ft = {
898
+ const Kt = {
839
899
  info: "border-gryt-secondary/40 bg-gryt-secondary/10 text-gryt-secondary",
840
900
  success: "border-gryt-success/40 bg-gryt-success/10 text-gryt-success",
841
901
  warning: "border-gryt-warning/40 bg-gryt-warning/10 text-gryt-warning",
842
902
  error: "border-gryt-danger/40 bg-gryt-danger/10 text-gryt-danger"
843
- }, $e = c(function({ className: t, severity: e = "info", ...r }, s) {
844
- return /* @__PURE__ */ a(
903
+ }, So = s(function({ className: t, severity: e = "info", ...r }, i) {
904
+ return /* @__PURE__ */ o(
845
905
  "div",
846
906
  {
847
- ref: s,
907
+ ref: i,
848
908
  role: "alert",
849
- className: o(
909
+ className: n(
850
910
  "gryt-alert rounded-(--gryt-radius-lg) border px-4 py-3 text-sm",
851
- ft[e],
911
+ Kt[e],
852
912
  t
853
913
  ),
854
914
  ...r
855
915
  }
856
916
  );
857
917
  });
858
- function Ce({ className: n, value: t = null, ...e }) {
859
- return /* @__PURE__ */ a(
860
- C.Root,
918
+ function Ro({ className: a, value: t = null, ...e }) {
919
+ return /* @__PURE__ */ o(
920
+ O.Root,
861
921
  {
862
922
  value: t,
863
- className: o("gryt-progress w-full", n),
923
+ className: n("gryt-progress w-full", a),
864
924
  ...e,
865
- children: /* @__PURE__ */ a(C.Track, { className: "h-1.5 w-full overflow-hidden rounded-(--gryt-radius-full) bg-gryt-surface-raised", children: /* @__PURE__ */ a(C.Indicator, { className: "h-full rounded-(--gryt-radius-full) bg-gryt-accent transition-[width] duration-(--gryt-dur-spring-soft) ease-spring motion-reduce:transition-none" }) })
925
+ children: /* @__PURE__ */ o(O.Track, { className: "h-1.5 w-full overflow-hidden rounded-(--gryt-radius-full) bg-gryt-surface-raised", children: /* @__PURE__ */ o(O.Indicator, { className: "h-full rounded-(--gryt-radius-full) bg-gryt-accent transition-[width] duration-(--gryt-dur-spring-soft) ease-spring motion-reduce:transition-none" }) })
866
926
  }
867
927
  );
868
928
  }
869
- function Ie({
870
- className: n,
929
+ function Io({
930
+ className: a,
871
931
  size: t = 24,
872
932
  "aria-label": e = "Loading"
873
933
  }) {
874
- return /* @__PURE__ */ a(
875
- Y,
934
+ return /* @__PURE__ */ o(
935
+ kt,
876
936
  {
877
937
  role: "status",
878
938
  "aria-label": e,
879
939
  size: t,
880
940
  weight: "bold",
881
- className: o(
941
+ className: n(
882
942
  "gryt-spinner text-gryt-accent motion-safe:animate-spin",
883
- n
943
+ a
884
944
  )
885
945
  }
886
946
  );
887
947
  }
888
- const pt = {
948
+ const Zt = {
889
949
  text: "h-4 rounded-(--gryt-radius-sm)",
890
950
  rounded: "rounded-(--gryt-radius-lg)",
891
951
  circular: "rounded-(--gryt-radius-full)",
892
952
  rectangular: "rounded-none"
893
953
  };
894
- function De({
895
- className: n,
954
+ function Do({
955
+ className: a,
896
956
  height: t,
897
957
  style: e,
898
958
  variant: r = "text",
899
- width: s,
900
- ...i
959
+ width: i,
960
+ ...c
901
961
  }) {
902
- const d = {
903
- width: s,
962
+ const l = {
963
+ width: i,
904
964
  height: t,
905
965
  ...e
906
966
  };
907
- return /* @__PURE__ */ a(
967
+ return /* @__PURE__ */ o(
908
968
  "div",
909
969
  {
910
970
  "aria-hidden": "true",
911
- className: o(
971
+ className: n(
912
972
  "gryt-skeleton bg-gryt-surface-raised motion-safe:animate-pulse",
913
- pt[r],
914
- n
973
+ Zt[r],
974
+ a
915
975
  ),
916
- style: d,
917
- ...i
976
+ style: l,
977
+ ...c
918
978
  }
919
979
  );
920
980
  }
921
- const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none", ht = c(
981
+ const ut = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none", qt = s(
922
982
  function({ className: t, ...e }, r) {
923
- return /* @__PURE__ */ a(
924
- l.Backdrop,
983
+ return /* @__PURE__ */ o(
984
+ $.Backdrop,
925
985
  {
926
986
  ref: r,
927
- className: o(
987
+ className: n(
928
988
  "gryt-dialog-backdrop fixed inset-0 min-h-dvh bg-black/60",
929
989
  "backdrop-blur-(--gryt-backdrop-blur)",
930
- O,
990
+ ut,
931
991
  "data-starting-style:opacity-0 data-ending-style:opacity-0",
932
992
  t
933
993
  ),
@@ -935,17 +995,17 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
935
995
  }
936
996
  );
937
997
  }
938
- ), xt = c(
998
+ ), te = s(
939
999
  function({ className: t, ...e }, r) {
940
- return /* @__PURE__ */ a(
941
- l.Popup,
1000
+ return /* @__PURE__ */ o(
1001
+ $.Popup,
942
1002
  {
943
1003
  ref: r,
944
- className: o(
1004
+ className: n(
945
1005
  "gryt-dialog fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
946
1006
  "flex w-96 max-w-[calc(100vw-3rem)] flex-col gap-4",
947
1007
  "rounded-(--gryt-radius-lg) border border-gryt-border bg-gryt-surface p-5 text-gryt-text",
948
- O,
1008
+ ut,
949
1009
  "data-starting-style:scale-[0.98] data-starting-style:opacity-0",
950
1010
  "data-ending-style:scale-[0.98] data-ending-style:opacity-0",
951
1011
  t
@@ -954,13 +1014,13 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
954
1014
  }
955
1015
  );
956
1016
  }
957
- ), wt = c(
1017
+ ), ee = s(
958
1018
  function({ className: t, ...e }, r) {
959
- return /* @__PURE__ */ a(
960
- l.Title,
1019
+ return /* @__PURE__ */ o(
1020
+ $.Title,
961
1021
  {
962
1022
  ref: r,
963
- className: o(
1023
+ className: n(
964
1024
  "gryt-dialog-title text-base font-semibold text-gryt-text",
965
1025
  t
966
1026
  ),
@@ -968,13 +1028,13 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
968
1028
  }
969
1029
  );
970
1030
  }
971
- ), vt = c(
1031
+ ), re = s(
972
1032
  function({ className: t, ...e }, r) {
973
- return /* @__PURE__ */ a(
974
- l.Description,
1033
+ return /* @__PURE__ */ o(
1034
+ $.Description,
975
1035
  {
976
1036
  ref: r,
977
- className: o(
1037
+ className: n(
978
1038
  "gryt-dialog-description text-sm text-gryt-muted",
979
1039
  t
980
1040
  ),
@@ -982,13 +1042,13 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
982
1042
  }
983
1043
  );
984
1044
  }
985
- ), kt = c(
1045
+ ), oe = s(
986
1046
  function({ className: t, ...e }, r) {
987
- return /* @__PURE__ */ a(
1047
+ return /* @__PURE__ */ o(
988
1048
  "div",
989
1049
  {
990
1050
  ref: r,
991
- className: o(
1051
+ className: n(
992
1052
  "gryt-dialog-footer flex justify-end gap-3",
993
1053
  t
994
1054
  ),
@@ -996,91 +1056,202 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
996
1056
  }
997
1057
  );
998
1058
  }
999
- ), Be = {
1000
- Root: l.Root,
1001
- Trigger: l.Trigger,
1002
- Portal: l.Portal,
1003
- Close: l.Close,
1004
- Backdrop: ht,
1005
- Popup: xt,
1006
- Title: wt,
1007
- Description: vt,
1008
- Footer: kt
1009
- }, Nt = {
1010
- left: "inset-y-0 -left-(--gryt-drawer-bleed) h-full w-[calc(20rem+var(--gryt-drawer-bleed))] max-w-[calc(85vw+var(--gryt-drawer-bleed))] border-r py-5 pr-5 pl-[calc(1.25rem+var(--gryt-drawer-bleed))] data-starting-style:-translate-x-full data-ending-style:-translate-x-full",
1011
- right: "inset-y-0 -right-(--gryt-drawer-bleed) h-full w-[calc(20rem+var(--gryt-drawer-bleed))] max-w-[calc(85vw+var(--gryt-drawer-bleed))] border-l py-5 pl-5 pr-[calc(1.25rem+var(--gryt-drawer-bleed))] data-starting-style:translate-x-full data-ending-style:translate-x-full",
1012
- top: "inset-x-0 -top-(--gryt-drawer-bleed) h-auto max-h-[calc(85vh+var(--gryt-drawer-bleed))] w-full border-b px-5 pb-5 pt-[calc(1.25rem+var(--gryt-drawer-bleed))] data-starting-style:-translate-y-full data-ending-style:-translate-y-full",
1013
- bottom: "inset-x-0 -bottom-(--gryt-drawer-bleed) h-auto max-h-[calc(85vh+var(--gryt-drawer-bleed))] w-full border-t px-5 pt-5 pb-[calc(1.25rem+var(--gryt-drawer-bleed))] data-starting-style:translate-y-full data-ending-style:translate-y-full"
1014
- }, Pt = c(function({ className: t, side: e = "right", ...r }, s) {
1015
- return /* @__PURE__ */ a(
1016
- l.Popup,
1059
+ ), Ao = {
1060
+ Root: $.Root,
1061
+ Trigger: $.Trigger,
1062
+ Portal: $.Portal,
1063
+ Close: $.Close,
1064
+ Backdrop: qt,
1065
+ Popup: te,
1066
+ Title: ee,
1067
+ Description: re,
1068
+ Footer: oe
1069
+ }, ae = () => () => {
1070
+ };
1071
+ function ne(a) {
1072
+ const t = U(
1073
+ (r) => {
1074
+ if (typeof window > "u" || !window.matchMedia) return ae();
1075
+ const i = window.matchMedia(a);
1076
+ return i.addEventListener("change", r), () => i.removeEventListener("change", r);
1077
+ },
1078
+ [a]
1079
+ ), e = U(() => typeof window > "u" || !window.matchMedia ? !1 : window.matchMedia(a).matches, [a]);
1080
+ return xt(t, e, () => !1);
1081
+ }
1082
+ const ie = {
1083
+ left: "left",
1084
+ right: "right",
1085
+ top: "up",
1086
+ bottom: "down"
1087
+ }, _ = ht("right"), se = {
1088
+ left: "items-stretch justify-start",
1089
+ right: "items-stretch justify-end",
1090
+ top: "items-start justify-center",
1091
+ bottom: "items-end justify-center"
1092
+ }, ce = {
1093
+ left: "rounded-r-(--gryt-radius-xl)",
1094
+ right: "rounded-l-(--gryt-radius-xl)",
1095
+ top: "rounded-b-(--gryt-radius-xl)",
1096
+ bottom: "rounded-t-(--gryt-radius-xl)"
1097
+ }, le = {
1098
+ left: [
1099
+ "h-full w-[calc(20rem+var(--gryt-drawer-bleed))] max-w-[calc(85vw+var(--gryt-drawer-bleed))]",
1100
+ "-ml-(--gryt-drawer-bleed) border-r py-5 pr-5 pl-[calc(1.25rem+var(--gryt-drawer-bleed))]",
1101
+ "[transform:translateX(var(--drawer-swipe-movement-x))]",
1102
+ "data-starting-style:[transform:translateX(calc(-100%+var(--gryt-drawer-bleed)))]",
1103
+ "data-ending-style:[transform:translateX(calc(-100%+var(--gryt-drawer-bleed)))]"
1104
+ ].join(" "),
1105
+ right: [
1106
+ "h-full w-[calc(20rem+var(--gryt-drawer-bleed))] max-w-[calc(85vw+var(--gryt-drawer-bleed))]",
1107
+ "-mr-(--gryt-drawer-bleed) border-l py-5 pl-5 pr-[calc(1.25rem+var(--gryt-drawer-bleed))]",
1108
+ "[transform:translateX(var(--drawer-swipe-movement-x))]",
1109
+ "data-starting-style:[transform:translateX(calc(100%-var(--gryt-drawer-bleed)))]",
1110
+ "data-ending-style:[transform:translateX(calc(100%-var(--gryt-drawer-bleed)))]"
1111
+ ].join(" "),
1112
+ top: [
1113
+ "w-full max-h-[calc(85vh+var(--gryt-drawer-bleed))]",
1114
+ "-mt-(--gryt-drawer-bleed) border-b px-5 pb-5 pt-[calc(1.25rem+var(--gryt-drawer-bleed))]",
1115
+ "[transform:translateY(var(--drawer-swipe-movement-y))]",
1116
+ "data-starting-style:[transform:translateY(calc(-100%+var(--gryt-drawer-bleed)))]",
1117
+ "data-ending-style:[transform:translateY(calc(-100%+var(--gryt-drawer-bleed)))]"
1118
+ ].join(" "),
1119
+ bottom: [
1120
+ "w-full max-h-[calc(85vh+var(--gryt-drawer-bleed))]",
1121
+ "-mb-(--gryt-drawer-bleed) border-t px-5 pt-5 pb-[calc(1.25rem+var(--gryt-drawer-bleed))]",
1122
+ "[transform:translateY(var(--drawer-swipe-movement-y))]",
1123
+ "data-starting-style:[transform:translateY(calc(100%-var(--gryt-drawer-bleed)))]",
1124
+ "data-ending-style:[transform:translateY(calc(100%-var(--gryt-drawer-bleed)))]"
1125
+ ].join(" ")
1126
+ };
1127
+ function de({
1128
+ side: a = "right",
1129
+ sheetOnMobile: t = !0,
1130
+ children: e,
1131
+ ...r
1132
+ }) {
1133
+ const i = ne("(max-width: 767px)"), c = t && i ? "bottom" : a;
1134
+ return /* @__PURE__ */ o(_.Provider, { value: c, children: /* @__PURE__ */ o(v.Root, { swipeDirection: ie[c], ...r, children: e }) });
1135
+ }
1136
+ const ge = s(
1137
+ function({ className: t, ...e }, r) {
1138
+ const i = W(_);
1139
+ return /* @__PURE__ */ o(
1140
+ v.Viewport,
1141
+ {
1142
+ ref: r,
1143
+ className: n(
1144
+ // z-50 matters: the popup is no longer positioned itself, so the
1145
+ // viewport is what has to sit above the page. Without it a sticky
1146
+ // site header renders over the panel.
1147
+ "gryt-drawer-viewport fixed inset-0 z-50 flex",
1148
+ se[i],
1149
+ t
1150
+ ),
1151
+ ...e
1152
+ }
1153
+ );
1154
+ }
1155
+ ), ue = s(function({ className: t, ...e }, r) {
1156
+ const i = W(_);
1157
+ return /* @__PURE__ */ o(
1158
+ v.Popup,
1017
1159
  {
1018
- ref: s,
1019
- className: o(
1020
- "gryt-drawer fixed z-50 flex flex-col gap-4 border-gryt-border bg-gryt-surface text-gryt-text",
1021
- "transition-transform duration-(--gryt-dur-spring-soft) ease-spring motion-reduce:transition-none",
1022
- Nt[e],
1160
+ ref: r,
1161
+ className: n(
1162
+ "gryt-drawer flex flex-col gap-4 border-gryt-border bg-gryt-surface text-gryt-text",
1163
+ "overflow-y-auto overscroll-contain outline-none",
1164
+ "transition-transform duration-(--gryt-dur-spring-soft) ease-spring",
1165
+ // While the finger is down the panel must track it exactly. Any
1166
+ // duration here turns a drag into a drag plus lag.
1167
+ "data-swiping:duration-0 data-swiping:select-none",
1168
+ "motion-reduce:transition-none",
1169
+ le[i],
1170
+ ce[i],
1023
1171
  t
1024
1172
  ),
1025
- ...r
1173
+ ...e
1026
1174
  }
1027
1175
  );
1028
- }), St = c(function({ className: t, ...e }, r) {
1029
- return /* @__PURE__ */ a(
1030
- l.Backdrop,
1176
+ }), ye = s(function({ className: t, ...e }, r) {
1177
+ return /* @__PURE__ */ o(
1178
+ v.Backdrop,
1031
1179
  {
1032
1180
  ref: r,
1033
- className: o(
1034
- "gryt-drawer-backdrop fixed inset-0 min-h-dvh bg-black/60",
1181
+ className: n(
1182
+ "gryt-drawer-backdrop fixed inset-0 z-50 min-h-dvh bg-black/60",
1035
1183
  "backdrop-blur-(--gryt-backdrop-blur)",
1036
- "transition-opacity duration-(--gryt-dur-spring-soft) ease-spring motion-reduce:transition-none",
1184
+ // Lightens as the panel is dragged away, so letting go halfway does not
1185
+ // leave a full-strength scrim over a half-gone sheet.
1186
+ "[opacity:calc(1-var(--drawer-swipe-progress,0))]",
1187
+ "transition-opacity duration-(--gryt-dur-spring-soft) ease-spring",
1188
+ "data-swiping:duration-0",
1037
1189
  "data-starting-style:opacity-0 data-ending-style:opacity-0",
1190
+ "motion-reduce:transition-none",
1038
1191
  t
1039
1192
  ),
1040
1193
  ...e
1041
1194
  }
1042
1195
  );
1043
- }), ze = {
1044
- Root: l.Root,
1045
- Trigger: l.Trigger,
1046
- Portal: l.Portal,
1047
- Close: l.Close,
1048
- Title: l.Title,
1049
- Description: l.Description,
1050
- Backdrop: St,
1051
- Popup: Pt
1052
- }, Tt = c(
1053
- function({ className: t, sideOffset: e = 8, ...r }, s) {
1054
- return /* @__PURE__ */ a(
1055
- x.Positioner,
1196
+ });
1197
+ function me({ className: a }) {
1198
+ const t = W(_);
1199
+ return t !== "bottom" && t !== "top" ? null : /* @__PURE__ */ o(
1200
+ "div",
1201
+ {
1202
+ "aria-hidden": !0,
1203
+ className: n(
1204
+ "gryt-drawer-grabber mx-auto h-1.5 w-10 shrink-0 rounded-(--gryt-radius-full) bg-gryt-border",
1205
+ t === "top" && "order-last",
1206
+ a
1207
+ )
1208
+ }
1209
+ );
1210
+ }
1211
+ const Mo = {
1212
+ Root: de,
1213
+ Trigger: v.Trigger,
1214
+ Portal: v.Portal,
1215
+ Backdrop: ye,
1216
+ Viewport: ge,
1217
+ Popup: ue,
1218
+ Content: v.Content,
1219
+ Grabber: me,
1220
+ Close: v.Close,
1221
+ Title: v.Title,
1222
+ Description: v.Description
1223
+ }, pe = s(
1224
+ function({ className: t, sideOffset: e = 8, ...r }, i) {
1225
+ return /* @__PURE__ */ o(
1226
+ A.Positioner,
1056
1227
  {
1057
- ref: s,
1228
+ ref: i,
1058
1229
  sideOffset: e,
1059
- className: o("gryt-menu-positioner outline-none", t),
1230
+ className: n("gryt-menu-positioner outline-none", t),
1060
1231
  ...r
1061
1232
  }
1062
1233
  );
1063
1234
  }
1064
- ), Rt = c(function({ className: t, ...e }, r) {
1065
- return /* @__PURE__ */ a(
1066
- x.Popup,
1235
+ ), be = s(function({ className: t, ...e }, r) {
1236
+ return /* @__PURE__ */ o(
1237
+ A.Popup,
1067
1238
  {
1068
1239
  ref: r,
1069
- className: o(
1240
+ className: n(
1070
1241
  "gryt-menu min-w-44 p-1 outline-none",
1071
- H,
1072
- I,
1242
+ S,
1243
+ R,
1073
1244
  t
1074
1245
  ),
1075
1246
  ...e
1076
1247
  }
1077
1248
  );
1078
- }), $t = c(function({ className: t, ...e }, r) {
1079
- return /* @__PURE__ */ a(
1080
- x.Item,
1249
+ }), fe = s(function({ className: t, ...e }, r) {
1250
+ return /* @__PURE__ */ o(
1251
+ A.Item,
1081
1252
  {
1082
1253
  ref: r,
1083
- className: o(
1254
+ className: n(
1084
1255
  "gryt-menu-item flex cursor-default items-center gap-2 rounded-(--gryt-radius-md)",
1085
1256
  "px-3 py-2 text-sm text-gryt-text outline-none select-none",
1086
1257
  // Base UI drives keyboard and pointer highlight through the same
@@ -1092,50 +1263,62 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
1092
1263
  ...e
1093
1264
  }
1094
1265
  );
1095
- }), Ct = c(function({ className: t, ...e }, r) {
1096
- return /* @__PURE__ */ a(
1097
- x.Separator,
1266
+ }), xe = s(function({ className: t, ...e }, r) {
1267
+ return /* @__PURE__ */ o(
1268
+ A.Separator,
1098
1269
  {
1099
1270
  ref: r,
1100
- className: o("gryt-menu-separator my-1 h-px bg-gryt-border", t),
1271
+ className: n("gryt-menu-separator my-1 h-px bg-gryt-border", t),
1101
1272
  ...e
1102
1273
  }
1103
1274
  );
1104
- }), je = {
1105
- Root: x.Root,
1106
- Trigger: x.Trigger,
1107
- Portal: x.Portal,
1108
- Positioner: Tt,
1109
- Popup: Rt,
1110
- Item: $t,
1111
- Separator: Ct
1112
- }, It = c(function({ className: t, ...e }, r) {
1113
- return /* @__PURE__ */ a(
1114
- P.Root,
1275
+ }), Y = {
1276
+ Root: A.Root,
1277
+ Trigger: A.Trigger,
1278
+ Portal: A.Portal,
1279
+ Positioner: pe,
1280
+ Popup: be,
1281
+ Item: fe,
1282
+ Separator: xe
1283
+ }, he = s(function({ className: t, ...e }, r) {
1284
+ return /* @__PURE__ */ o(
1285
+ V.Root,
1115
1286
  {
1116
1287
  ref: r,
1117
- className: o("gryt-tabs", t),
1288
+ className: n(
1289
+ "gryt-tabs",
1290
+ // Vertical puts the rail and the panel side by side. min-w-0 on the
1291
+ // panel does the rest; without the flex here the panel lands under the
1292
+ // rail and the layout reads as a very tall accordion.
1293
+ "data-[orientation=vertical]:flex data-[orientation=vertical]:items-stretch",
1294
+ t
1295
+ ),
1118
1296
  ...e
1119
1297
  }
1120
1298
  );
1121
- }), Dt = c(function({ className: t, ...e }, r) {
1122
- return /* @__PURE__ */ a(
1123
- P.List,
1299
+ }), we = s(function({ className: t, ...e }, r) {
1300
+ return /* @__PURE__ */ o(
1301
+ V.List,
1124
1302
  {
1125
1303
  ref: r,
1126
- className: o(
1304
+ className: n(
1127
1305
  "gryt-tabs-list relative inline-flex items-center gap-1 rounded-(--gryt-radius-full) bg-gryt-surface-raised p-1",
1306
+ // A rail, not a pill: rows are full width and the corner radius drops
1307
+ // to lg, because a 999px radius on a tall box bows its short edges.
1308
+ "data-[orientation=vertical]:flex data-[orientation=vertical]:shrink-0",
1309
+ "data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch",
1310
+ "data-[orientation=vertical]:rounded-(--gryt-radius-lg)",
1128
1311
  t
1129
1312
  ),
1130
1313
  ...e
1131
1314
  }
1132
1315
  );
1133
- }), Bt = c(function({ className: t, ...e }, r) {
1134
- return /* @__PURE__ */ a(
1135
- P.Tab,
1316
+ }), ve = s(function({ className: t, ...e }, r) {
1317
+ return /* @__PURE__ */ o(
1318
+ V.Tab,
1136
1319
  {
1137
1320
  ref: r,
1138
- className: o(
1321
+ className: n(
1139
1322
  "gryt-tab inline-flex min-h-8 items-center justify-center whitespace-nowrap",
1140
1323
  "rounded-(--gryt-radius-full) border-0 bg-transparent px-4 py-1.5",
1141
1324
  "text-sm font-medium text-gryt-muted select-none",
@@ -1144,82 +1327,102 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
1144
1327
  // The fill moved to Indicator so it can travel between tabs; the tab
1145
1328
  // itself only changes its text colour.
1146
1329
  "data-active:text-gryt-on-accent",
1147
- f,
1330
+ // Left-aligned and taller in a rail. Centred labels in a vertical list
1331
+ // leave the text edge ragged, which is what makes a rail look untidy.
1332
+ "data-[orientation=vertical]:min-h-9 data-[orientation=vertical]:justify-start",
1333
+ "data-[orientation=vertical]:gap-2.5 data-[orientation=vertical]:px-3",
1334
+ "data-[orientation=vertical]:rounded-(--gryt-radius-md)",
1335
+ b,
1148
1336
  t
1149
1337
  ),
1150
1338
  ...e
1151
1339
  }
1152
1340
  );
1153
- }), zt = c(
1341
+ }), Ne = s(
1154
1342
  function({ className: t, ...e }, r) {
1155
- return /* @__PURE__ */ a(
1156
- P.Indicator,
1343
+ return /* @__PURE__ */ o(
1344
+ V.Indicator,
1157
1345
  {
1158
1346
  ref: r,
1159
1347
  renderBeforeHydration: !0,
1160
- className: o(
1348
+ className: n(
1161
1349
  "gryt-tabs-indicator absolute top-1 left-0 z-0 h-[calc(100%-0.5rem)]",
1162
1350
  "w-(--active-tab-width) translate-x-(--active-tab-left)",
1163
1351
  "rounded-(--gryt-radius-full) bg-gryt-accent",
1164
1352
  "transition-[translate,width] duration-(--gryt-dur-spring) ease-spring",
1165
1353
  "motion-reduce:transition-none",
1354
+ // Same pill, travelling down the rail instead of across the row.
1355
+ "[[data-orientation=vertical]_&]:top-0 [[data-orientation=vertical]_&]:left-1",
1356
+ "[[data-orientation=vertical]_&]:h-(--active-tab-height)",
1357
+ "[[data-orientation=vertical]_&]:w-[calc(100%-0.5rem)]",
1358
+ "[[data-orientation=vertical]_&]:translate-x-0",
1359
+ "[[data-orientation=vertical]_&]:translate-y-(--active-tab-top)",
1360
+ "[[data-orientation=vertical]_&]:rounded-(--gryt-radius-md)",
1361
+ "[[data-orientation=vertical]_&]:transition-[translate,height]",
1166
1362
  t
1167
1363
  ),
1168
1364
  ...e
1169
1365
  }
1170
1366
  );
1171
1367
  }
1172
- ), jt = c(function({ className: t, ...e }, r) {
1173
- return /* @__PURE__ */ a(
1174
- P.Panel,
1368
+ ), Pe = s(function({ className: t, ...e }, r) {
1369
+ return /* @__PURE__ */ o(
1370
+ V.Panel,
1175
1371
  {
1176
1372
  ref: r,
1177
- className: o("gryt-tabs-panel pt-3 text-sm text-gryt-text", t),
1373
+ className: n(
1374
+ "gryt-tabs-panel pt-3 text-sm text-gryt-text",
1375
+ // Beside the rail rather than under it, and allowed to shrink so long
1376
+ // content wraps instead of pushing the rail off screen.
1377
+ "data-[orientation=vertical]:min-w-0 data-[orientation=vertical]:flex-1",
1378
+ "data-[orientation=vertical]:pt-0 data-[orientation=vertical]:pl-4",
1379
+ t
1380
+ ),
1178
1381
  ...e
1179
1382
  }
1180
1383
  );
1181
- }), Ae = Object.assign(It, { List: Dt, Tab: Bt, Panel: jt, Indicator: zt }), At = c(function({ className: t, ...e }, r) {
1182
- return /* @__PURE__ */ a(
1183
- N.Root,
1384
+ }), Lo = Object.assign(he, { List: we, Tab: ve, Panel: Pe, Indicator: Ne }), ke = s(function({ className: t, ...e }, r) {
1385
+ return /* @__PURE__ */ o(
1386
+ F.Root,
1184
1387
  {
1185
1388
  ref: r,
1186
- className: o(
1389
+ className: n(
1187
1390
  "gryt-accordion flex w-full flex-col gap-2 rounded-(--gryt-radius-xl) border border-gryt-border bg-gryt-surface p-2",
1188
1391
  t
1189
1392
  ),
1190
1393
  ...e
1191
1394
  }
1192
1395
  );
1193
- }), Lt = c(
1396
+ }), Te = s(
1194
1397
  function({ className: t, ...e }, r) {
1195
- return /* @__PURE__ */ a(
1196
- N.Item,
1398
+ return /* @__PURE__ */ o(
1399
+ F.Item,
1197
1400
  {
1198
1401
  ref: r,
1199
- className: o("gryt-accordion-item", t),
1402
+ className: n("gryt-accordion-item", t),
1200
1403
  ...e
1201
1404
  }
1202
1405
  );
1203
1406
  }
1204
- ), Mt = c(
1205
- function({ children: t, className: e, expandIcon: r, ...s }, i) {
1206
- return /* @__PURE__ */ a(N.Header, { className: "gryt-accordion-header m-0", children: /* @__PURE__ */ g(
1207
- N.Trigger,
1407
+ ), $e = s(
1408
+ function({ children: t, className: e, expandIcon: r, ...i }, c) {
1409
+ return /* @__PURE__ */ o(F.Header, { className: "gryt-accordion-header m-0", children: /* @__PURE__ */ d(
1410
+ F.Trigger,
1208
1411
  {
1209
- ref: i,
1210
- className: o(
1412
+ ref: c,
1413
+ className: n(
1211
1414
  "gryt-accordion-trigger flex w-full items-center justify-between gap-3",
1212
1415
  "rounded-(--gryt-radius-lg) border-0 bg-transparent px-3 py-2.5",
1213
1416
  "text-left text-sm font-medium text-gryt-text select-none",
1214
1417
  "transition-colors duration-150 hover:bg-gryt-surface-raised",
1215
- f,
1418
+ b,
1216
1419
  e
1217
1420
  ),
1218
- ...s,
1421
+ ...i,
1219
1422
  children: [
1220
1423
  t,
1221
- r === void 0 ? /* @__PURE__ */ a(
1222
- Z,
1424
+ r === void 0 ? /* @__PURE__ */ o(
1425
+ Tt,
1223
1426
  {
1224
1427
  size: 16,
1225
1428
  className: "shrink-0 transition-transform duration-(--gryt-dur-spring) ease-spring data-panel-open:rotate-180 motion-reduce:transition-none"
@@ -1229,13 +1432,13 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
1229
1432
  }
1230
1433
  ) });
1231
1434
  }
1232
- ), Ft = c(
1233
- function({ children: t, className: e, ...r }, s) {
1234
- return /* @__PURE__ */ a(
1235
- N.Panel,
1435
+ ), Ce = s(
1436
+ function({ children: t, className: e, ...r }, i) {
1437
+ return /* @__PURE__ */ o(
1438
+ F.Panel,
1236
1439
  {
1237
- ref: s,
1238
- className: o(
1440
+ ref: i,
1441
+ className: n(
1239
1442
  "gryt-accordion-panel overflow-hidden text-sm text-gryt-muted",
1240
1443
  // Base UI measures the panel and exposes the height as a variable,
1241
1444
  // which is what makes a real open and close transition possible.
@@ -1245,48 +1448,959 @@ const O = "transition-[opacity,scale,translate] duration-(--gryt-dur-spring) eas
1245
1448
  e
1246
1449
  ),
1247
1450
  ...r,
1248
- children: /* @__PURE__ */ a("div", { className: "px-3 pt-1 pb-3", children: t })
1451
+ children: /* @__PURE__ */ o("div", { className: "px-3 pt-1 pb-3", children: t })
1452
+ }
1453
+ );
1454
+ }
1455
+ ), jo = Object.assign(ke, { Item: Te, Trigger: $e, Panel: Ce }), Se = s(
1456
+ function({ className: t, sideOffset: e = 2, ...r }, i) {
1457
+ return /* @__PURE__ */ o(
1458
+ T.Positioner,
1459
+ {
1460
+ ref: i,
1461
+ sideOffset: e,
1462
+ className: n("gryt-context-menu-positioner outline-none", t),
1463
+ ...r
1464
+ }
1465
+ );
1466
+ }
1467
+ ), Go = {
1468
+ Root: T.Root,
1469
+ Trigger: T.Trigger,
1470
+ Portal: T.Portal,
1471
+ Positioner: Se,
1472
+ Popup: Y.Popup,
1473
+ Item: Y.Item,
1474
+ Separator: Y.Separator,
1475
+ Group: T.Group,
1476
+ GroupLabel: T.GroupLabel,
1477
+ SubmenuRoot: T.SubmenuRoot,
1478
+ SubmenuTrigger: T.SubmenuTrigger
1479
+ }, Re = s(
1480
+ function({ className: t, sideOffset: e = 8, ...r }, i) {
1481
+ return /* @__PURE__ */ o(
1482
+ P.Positioner,
1483
+ {
1484
+ ref: i,
1485
+ sideOffset: e,
1486
+ className: n("gryt-popover-positioner outline-none", t),
1487
+ ...r
1488
+ }
1489
+ );
1490
+ }
1491
+ ), Ie = s(
1492
+ function({ className: t, ...e }, r) {
1493
+ return /* @__PURE__ */ o(
1494
+ P.Popup,
1495
+ {
1496
+ ref: r,
1497
+ className: n(
1498
+ "gryt-popover max-w-[min(20rem,calc(100vw-2rem))] p-4 outline-none",
1499
+ S,
1500
+ R,
1501
+ t
1502
+ ),
1503
+ ...e
1504
+ }
1505
+ );
1506
+ }
1507
+ ), De = s(function({ className: t, ...e }, r) {
1508
+ return /* @__PURE__ */ o(
1509
+ P.Title,
1510
+ {
1511
+ ref: r,
1512
+ className: n(
1513
+ "gryt-popover-title text-sm font-semibold text-gryt-text",
1514
+ t
1515
+ ),
1516
+ ...e
1517
+ }
1518
+ );
1519
+ }), Ae = s(function({ className: t, ...e }, r) {
1520
+ return /* @__PURE__ */ o(
1521
+ P.Description,
1522
+ {
1523
+ ref: r,
1524
+ className: n(
1525
+ "gryt-popover-description mt-1 text-sm leading-6 text-gryt-muted",
1526
+ t
1527
+ ),
1528
+ ...e
1529
+ }
1530
+ );
1531
+ }), Bo = {
1532
+ Root: P.Root,
1533
+ Trigger: P.Trigger,
1534
+ Portal: P.Portal,
1535
+ Positioner: Re,
1536
+ Popup: Ie,
1537
+ Title: De,
1538
+ Description: Ae,
1539
+ Close: P.Close,
1540
+ Arrow: P.Arrow
1541
+ }, Me = s(
1542
+ function({ className: t, ...e }, r) {
1543
+ return /* @__PURE__ */ o(
1544
+ k.Viewport,
1545
+ {
1546
+ ref: r,
1547
+ className: n(
1548
+ "gryt-toast-viewport fixed right-4 bottom-4 z-50 flex w-[min(22rem,calc(100vw-2rem))]",
1549
+ "flex-col gap-2 outline-none",
1550
+ t
1551
+ ),
1552
+ ...e
1553
+ }
1554
+ );
1555
+ }
1556
+ ), Le = s(function({ className: t, ...e }, r) {
1557
+ return /* @__PURE__ */ o(
1558
+ k.Root,
1559
+ {
1560
+ ref: r,
1561
+ className: n(
1562
+ "gryt-toast relative flex flex-col p-3 pr-9",
1563
+ S,
1564
+ // Swiping is a pointer gesture, so the toast follows the finger
1565
+ // through Base UI's swipe variables before it animates out.
1566
+ "transition-[opacity,transform] duration-(--gryt-dur-spring) ease-spring",
1567
+ "data-starting-style:translate-y-2 data-starting-style:opacity-0",
1568
+ "data-ending-style:translate-y-2 data-ending-style:opacity-0",
1569
+ "motion-reduce:transition-none",
1570
+ t
1571
+ ),
1572
+ ...e
1573
+ }
1574
+ );
1575
+ }), je = s(function({ className: t, ...e }, r) {
1576
+ return /* @__PURE__ */ o(
1577
+ k.Title,
1578
+ {
1579
+ ref: r,
1580
+ className: n(
1581
+ "gryt-toast-title text-sm font-semibold text-gryt-text",
1582
+ t
1583
+ ),
1584
+ ...e
1585
+ }
1586
+ );
1587
+ }), Ge = s(function({ className: t, ...e }, r) {
1588
+ return /* @__PURE__ */ o(
1589
+ k.Description,
1590
+ {
1591
+ ref: r,
1592
+ className: n(
1593
+ "gryt-toast-description mt-0.5 text-sm leading-6 text-gryt-muted",
1594
+ t
1595
+ ),
1596
+ ...e
1597
+ }
1598
+ );
1599
+ }), Be = s(function({ className: t, children: e, ...r }, i) {
1600
+ return /* @__PURE__ */ o(
1601
+ k.Close,
1602
+ {
1603
+ ref: i,
1604
+ "aria-label": "Close",
1605
+ className: n(
1606
+ "gryt-toast-close absolute top-2.5 right-2.5 inline-flex h-6 w-6 items-center justify-center",
1607
+ "rounded-(--gryt-radius-full) border-0 bg-transparent text-gryt-muted",
1608
+ "transition-colors hover:bg-white/8 hover:text-gryt-text motion-reduce:transition-none",
1609
+ "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light",
1610
+ t
1611
+ ),
1612
+ ...r,
1613
+ children: e ?? /* @__PURE__ */ o(ct, { size: 14, weight: "bold" })
1614
+ }
1615
+ );
1616
+ }), ze = s(function({ className: t, ...e }, r) {
1617
+ return /* @__PURE__ */ o(
1618
+ k.Action,
1619
+ {
1620
+ ref: r,
1621
+ className: n(
1622
+ "gryt-toast-action mt-2 self-start rounded-(--gryt-radius-full) border-0",
1623
+ "bg-gryt-accent px-3 py-1.5 text-sm font-medium text-gryt-on-accent",
1624
+ "transition-[scale] duration-(--gryt-dur-spring) ease-spring",
1625
+ "motion-safe:hover:scale-[1.04] motion-safe:active:scale-[0.96]",
1626
+ "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gryt-accent-light",
1627
+ t
1628
+ ),
1629
+ ...e
1630
+ }
1631
+ );
1632
+ }), zo = {
1633
+ Provider: k.Provider,
1634
+ Portal: k.Portal,
1635
+ Viewport: Me,
1636
+ Root: Le,
1637
+ Title: je,
1638
+ Description: Ge,
1639
+ Close: Be,
1640
+ Action: ze
1641
+ }, Fo = k.useToastManager, Fe = s(
1642
+ function({ className: t, ...e }, r) {
1643
+ return /* @__PURE__ */ o(
1644
+ j.Root,
1645
+ {
1646
+ ref: r,
1647
+ className: n("gryt-scroll-area relative", t),
1648
+ ...e
1649
+ }
1650
+ );
1651
+ }
1652
+ ), Ve = s(
1653
+ function({ className: t, ...e }, r) {
1654
+ return /* @__PURE__ */ o(
1655
+ j.Viewport,
1656
+ {
1657
+ ref: r,
1658
+ className: n(
1659
+ "gryt-scroll-area-viewport h-full w-full overscroll-contain",
1660
+ "focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-gryt-accent-light",
1661
+ t
1662
+ ),
1663
+ ...e
1664
+ }
1665
+ );
1666
+ }
1667
+ ), Ee = s(
1668
+ function({ className: t, orientation: e, ...r }, i) {
1669
+ return /* @__PURE__ */ o(
1670
+ j.Scrollbar,
1671
+ {
1672
+ ref: i,
1673
+ orientation: e,
1674
+ className: n(
1675
+ "gryt-scroll-area-scrollbar flex touch-none p-0.5 select-none",
1676
+ // Fades in on hover or while scrolling rather than sitting there
1677
+ // permanently — a chat sidebar is mostly not being scrolled.
1678
+ "opacity-0 transition-opacity duration-(--gryt-dur-fast)",
1679
+ "data-hovering:opacity-100 data-scrolling:opacity-100",
1680
+ "motion-reduce:transition-none",
1681
+ e === "horizontal" ? "h-2 flex-col" : "w-2",
1682
+ t
1683
+ ),
1684
+ ...r,
1685
+ children: /* @__PURE__ */ o(j.Thumb, { className: "flex-1 rounded-(--gryt-radius-full) bg-gryt-border transition-colors hover:bg-gryt-muted motion-reduce:transition-none" })
1249
1686
  }
1250
1687
  );
1251
1688
  }
1252
- ), Le = Object.assign(At, { Item: Lt, Trigger: Mt, Panel: Ft });
1689
+ ), Vo = {
1690
+ Root: Fe,
1691
+ Viewport: Ve,
1692
+ Scrollbar: Ee,
1693
+ Content: j.Content,
1694
+ Corner: j.Corner
1695
+ }, _e = {
1696
+ primary: [
1697
+ "text-gryt-muted hover:not-data-disabled:bg-white/8",
1698
+ "data-pressed:bg-gryt-accent data-pressed:text-gryt-on-accent",
1699
+ "data-pressed:hover:not-data-disabled:bg-gryt-accent"
1700
+ ].join(" "),
1701
+ secondary: [
1702
+ "text-gryt-muted hover:not-data-disabled:bg-white/8",
1703
+ "data-pressed:bg-gryt-secondary data-pressed:text-gryt-on-secondary",
1704
+ "data-pressed:hover:not-data-disabled:bg-gryt-secondary"
1705
+ ].join(" "),
1706
+ neutral: [
1707
+ "text-gryt-muted hover:not-data-disabled:bg-white/8",
1708
+ "data-pressed:bg-gryt-surface-hover data-pressed:text-gryt-text"
1709
+ ].join(" "),
1710
+ // For destructive-while-active controls: mic muted, camera off.
1711
+ danger: [
1712
+ "text-gryt-muted hover:not-data-disabled:bg-white/8",
1713
+ "data-pressed:bg-gryt-danger data-pressed:text-gryt-on-danger",
1714
+ "data-pressed:hover:not-data-disabled:bg-gryt-danger"
1715
+ ].join(" ")
1716
+ }, He = {
1717
+ xsmall: "h-8 min-w-8 px-2 text-xs",
1718
+ small: "h-9 min-w-9 px-2.5 text-sm",
1719
+ medium: "h-10 min-w-10 px-3 text-sm",
1720
+ large: "h-12 min-w-12 px-4 text-base"
1721
+ }, Eo = s(
1722
+ function({ className: t, size: e = "medium", tone: r = "primary", ...i }, c) {
1723
+ return /* @__PURE__ */ o(
1724
+ It,
1725
+ {
1726
+ ref: c,
1727
+ className: n(
1728
+ "gryt-toggle",
1729
+ "inline-flex shrink-0 items-center justify-center gap-2 border-0 bg-transparent",
1730
+ "rounded-(--gryt-radius-full) font-medium select-none",
1731
+ // scale rather than transform — see the note in Button.
1732
+ "transition-[scale,background-color,color] duration-(--gryt-dur-spring) ease-spring",
1733
+ "motion-safe:hover:not-data-disabled:scale-[1.06]",
1734
+ "motion-safe:active:not-data-disabled:scale-[0.94]",
1735
+ b,
1736
+ G,
1737
+ He[e],
1738
+ _e[r],
1739
+ t
1740
+ ),
1741
+ ...i
1742
+ }
1743
+ );
1744
+ }
1745
+ ), _o = s(
1746
+ function({ className: t, ...e }, r) {
1747
+ return /* @__PURE__ */ o(
1748
+ Dt,
1749
+ {
1750
+ ref: r,
1751
+ className: n(
1752
+ "gryt-toggle-group inline-flex items-center gap-1",
1753
+ "rounded-(--gryt-radius-full) border border-gryt-border bg-gryt-surface p-1",
1754
+ t
1755
+ ),
1756
+ ...e
1757
+ }
1758
+ );
1759
+ }
1760
+ ), Xe = {
1761
+ primary: "bg-gryt-accent",
1762
+ success: "bg-gryt-success",
1763
+ warning: "bg-gryt-warning",
1764
+ danger: "bg-gryt-danger"
1765
+ };
1766
+ function Ho({
1767
+ className: a,
1768
+ value: t,
1769
+ label: e,
1770
+ showValue: r = !1,
1771
+ tone: i = "primary",
1772
+ ...c
1773
+ }) {
1774
+ return /* @__PURE__ */ d(
1775
+ z.Root,
1776
+ {
1777
+ value: t,
1778
+ className: n("gryt-meter flex w-full flex-col gap-1.5", a),
1779
+ ...c,
1780
+ children: [
1781
+ (e || r) && /* @__PURE__ */ d("div", { className: "flex items-baseline justify-between gap-2", children: [
1782
+ e ? /* @__PURE__ */ o(z.Label, { className: "text-sm text-gryt-muted", children: e }) : /* @__PURE__ */ o("span", {}),
1783
+ r && /* @__PURE__ */ o(z.Value, { className: "font-mono text-xs text-gryt-muted tabular-nums" })
1784
+ ] }),
1785
+ /* @__PURE__ */ o(z.Track, { className: "h-1.5 w-full overflow-hidden rounded-(--gryt-radius-full) bg-gryt-surface-raised", children: /* @__PURE__ */ o(
1786
+ z.Indicator,
1787
+ {
1788
+ className: n(
1789
+ "h-full rounded-(--gryt-radius-full)",
1790
+ Xe[i]
1791
+ )
1792
+ }
1793
+ ) })
1794
+ ]
1795
+ }
1796
+ );
1797
+ }
1798
+ const Oe = s(
1799
+ function({ className: t, ...e }, r) {
1800
+ return /* @__PURE__ */ o(
1801
+ C.Popup,
1802
+ {
1803
+ ref: r,
1804
+ className: n(
1805
+ "gryt-alert-dialog fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2",
1806
+ "flex w-96 max-w-[calc(100vw-3rem)] flex-col gap-4",
1807
+ "rounded-(--gryt-radius-lg) border border-gryt-border bg-gryt-surface p-5 text-gryt-text",
1808
+ "outline-none",
1809
+ "transition-[opacity,scale] duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none",
1810
+ "data-starting-style:scale-[0.98] data-starting-style:opacity-0",
1811
+ "data-ending-style:scale-[0.98] data-ending-style:opacity-0",
1812
+ t
1813
+ ),
1814
+ ...e
1815
+ }
1816
+ );
1817
+ }
1818
+ ), Ye = s(function({ className: t, ...e }, r) {
1819
+ return /* @__PURE__ */ o(
1820
+ C.Backdrop,
1821
+ {
1822
+ ref: r,
1823
+ className: n(
1824
+ "gryt-alert-dialog-backdrop fixed inset-0 z-50 min-h-dvh bg-black/60",
1825
+ "backdrop-blur-(--gryt-backdrop-blur)",
1826
+ "transition-opacity duration-(--gryt-dur-spring) ease-spring motion-reduce:transition-none",
1827
+ "data-starting-style:opacity-0 data-ending-style:opacity-0",
1828
+ t
1829
+ ),
1830
+ ...e
1831
+ }
1832
+ );
1833
+ }), Ue = s(function({ className: t, ...e }, r) {
1834
+ return /* @__PURE__ */ o(
1835
+ C.Title,
1836
+ {
1837
+ ref: r,
1838
+ className: n(
1839
+ "gryt-alert-dialog-title text-lg font-semibold text-gryt-text",
1840
+ t
1841
+ ),
1842
+ ...e
1843
+ }
1844
+ );
1845
+ }), We = s(function({ className: t, ...e }, r) {
1846
+ return /* @__PURE__ */ o(
1847
+ C.Description,
1848
+ {
1849
+ ref: r,
1850
+ className: n(
1851
+ "gryt-alert-dialog-description text-sm leading-6 text-gryt-muted",
1852
+ t
1853
+ ),
1854
+ ...e
1855
+ }
1856
+ );
1857
+ }), Xo = {
1858
+ Root: C.Root,
1859
+ Trigger: C.Trigger,
1860
+ Portal: C.Portal,
1861
+ Backdrop: Ye,
1862
+ Popup: Oe,
1863
+ Title: Ue,
1864
+ Description: We,
1865
+ Close: C.Close
1866
+ }, yt = [
1867
+ "flex cursor-default items-center gap-2 rounded-(--gryt-radius-md)",
1868
+ "px-3 py-2 text-sm text-gryt-text outline-none select-none",
1869
+ // Base UI drives keyboard and pointer highlight through one attribute, so
1870
+ // arrow keys and the mouse land on identical styling.
1871
+ "data-highlighted:bg-gryt-surface-raised",
1872
+ "data-selected:text-gryt-accent",
1873
+ "data-disabled:cursor-not-allowed data-disabled:opacity-50"
1874
+ ].join(" "), mt = [
1875
+ "w-full rounded-(--gryt-radius-input) border border-gryt-border bg-gryt-surface-raised",
1876
+ "px-3 py-2 text-sm text-gryt-text outline-none placeholder:text-gryt-muted",
1877
+ b
1878
+ ].join(" "), Qe = s(function({ className: t, ...e }, r) {
1879
+ return /* @__PURE__ */ o(
1880
+ g.Input,
1881
+ {
1882
+ ref: r,
1883
+ className: n("gryt-combobox-input", mt, t),
1884
+ ...e
1885
+ }
1886
+ );
1887
+ }), Je = s(function({ className: t, sideOffset: e = 6, ...r }, i) {
1888
+ return /* @__PURE__ */ o(
1889
+ g.Positioner,
1890
+ {
1891
+ ref: i,
1892
+ sideOffset: e,
1893
+ className: n("gryt-combobox-positioner outline-none", t),
1894
+ ...r
1895
+ }
1896
+ );
1897
+ }), Ke = s(
1898
+ function({ className: t, ...e }, r) {
1899
+ return /* @__PURE__ */ o(
1900
+ g.Popup,
1901
+ {
1902
+ ref: r,
1903
+ className: n(
1904
+ "gryt-combobox max-h-64 w-(--anchor-width) overflow-y-auto overscroll-contain p-1 outline-none",
1905
+ S,
1906
+ R,
1907
+ t
1908
+ ),
1909
+ ...e
1910
+ }
1911
+ );
1912
+ }
1913
+ ), Ze = s(function({ className: t, ...e }, r) {
1914
+ return /* @__PURE__ */ o(
1915
+ g.Item,
1916
+ {
1917
+ ref: r,
1918
+ className: n("gryt-combobox-item", yt, t),
1919
+ ...e
1920
+ }
1921
+ );
1922
+ }), qe = s(function({ className: t, ...e }, r) {
1923
+ return /* @__PURE__ */ o(
1924
+ g.Empty,
1925
+ {
1926
+ ref: r,
1927
+ className: n(
1928
+ "gryt-combobox-empty px-3 py-2 text-sm text-gryt-muted",
1929
+ t
1930
+ ),
1931
+ ...e
1932
+ }
1933
+ );
1934
+ }), Oo = {
1935
+ Root: g.Root,
1936
+ Input: Qe,
1937
+ InputGroup: g.InputGroup,
1938
+ Trigger: g.Trigger,
1939
+ Icon: g.Icon,
1940
+ Clear: g.Clear,
1941
+ Value: g.Value,
1942
+ Chips: g.Chips,
1943
+ Chip: g.Chip,
1944
+ ChipRemove: g.ChipRemove,
1945
+ Portal: g.Portal,
1946
+ Positioner: Je,
1947
+ Popup: Ke,
1948
+ List: g.List,
1949
+ Item: Ze,
1950
+ ItemIndicator: g.ItemIndicator,
1951
+ Group: g.Group,
1952
+ GroupLabel: g.GroupLabel,
1953
+ Empty: qe,
1954
+ Separator: g.Separator
1955
+ }, tr = s(function({ className: t, ...e }, r) {
1956
+ return /* @__PURE__ */ o(
1957
+ p.Input,
1958
+ {
1959
+ ref: r,
1960
+ className: n("gryt-autocomplete-input", mt, t),
1961
+ ...e
1962
+ }
1963
+ );
1964
+ }), er = s(function({ className: t, sideOffset: e = 6, ...r }, i) {
1965
+ return /* @__PURE__ */ o(
1966
+ p.Positioner,
1967
+ {
1968
+ ref: i,
1969
+ sideOffset: e,
1970
+ className: n("gryt-autocomplete-positioner outline-none", t),
1971
+ ...r
1972
+ }
1973
+ );
1974
+ }), rr = s(function({ className: t, ...e }, r) {
1975
+ return /* @__PURE__ */ o(
1976
+ p.Popup,
1977
+ {
1978
+ ref: r,
1979
+ className: n(
1980
+ "gryt-autocomplete max-h-64 w-(--anchor-width) overflow-y-auto overscroll-contain p-1 outline-none",
1981
+ S,
1982
+ R,
1983
+ t
1984
+ ),
1985
+ ...e
1986
+ }
1987
+ );
1988
+ }), or = s(function({ className: t, ...e }, r) {
1989
+ return /* @__PURE__ */ o(
1990
+ p.Item,
1991
+ {
1992
+ ref: r,
1993
+ className: n("gryt-autocomplete-item", yt, t),
1994
+ ...e
1995
+ }
1996
+ );
1997
+ }), ar = s(function({ className: t, ...e }, r) {
1998
+ return /* @__PURE__ */ o(
1999
+ p.Empty,
2000
+ {
2001
+ ref: r,
2002
+ className: n(
2003
+ "gryt-autocomplete-empty px-3 py-2 text-sm text-gryt-muted",
2004
+ t
2005
+ ),
2006
+ ...e
2007
+ }
2008
+ );
2009
+ }), Yo = {
2010
+ Root: p.Root,
2011
+ Input: tr,
2012
+ InputGroup: p.InputGroup,
2013
+ Trigger: p.Trigger,
2014
+ Icon: p.Icon,
2015
+ Clear: p.Clear,
2016
+ Value: p.Value,
2017
+ Portal: p.Portal,
2018
+ Positioner: er,
2019
+ Popup: rr,
2020
+ List: p.List,
2021
+ Item: or,
2022
+ Group: p.Group,
2023
+ GroupLabel: p.GroupLabel,
2024
+ Empty: ar,
2025
+ Separator: p.Separator
2026
+ }, Uo = s(
2027
+ function({ className: t, ...e }, r) {
2028
+ return /* @__PURE__ */ o(
2029
+ At,
2030
+ {
2031
+ ref: r,
2032
+ className: n("gryt-checkbox-group flex flex-col gap-2", t),
2033
+ ...e
2034
+ }
2035
+ );
2036
+ }
2037
+ ), nr = s(
2038
+ function({ className: t, ...e }, r) {
2039
+ return /* @__PURE__ */ o(
2040
+ Q.Trigger,
2041
+ {
2042
+ ref: r,
2043
+ className: n(
2044
+ "gryt-collapsible-trigger flex w-full items-center justify-between gap-2",
2045
+ "rounded-(--gryt-radius-md) border-0 bg-transparent px-2 py-2 text-left",
2046
+ "text-sm font-medium text-gryt-text select-none",
2047
+ "transition-colors hover:bg-gryt-surface-raised motion-reduce:transition-none",
2048
+ b,
2049
+ t
2050
+ ),
2051
+ ...e
2052
+ }
2053
+ );
2054
+ }
2055
+ ), ir = s(
2056
+ function({ className: t, ...e }, r) {
2057
+ return /* @__PURE__ */ o(
2058
+ Q.Panel,
2059
+ {
2060
+ ref: r,
2061
+ className: n(
2062
+ "gryt-collapsible-panel overflow-hidden",
2063
+ // Base UI measures the panel and exposes the height as a variable, so
2064
+ // this animates to the content's real height rather than to a guess.
2065
+ "h-(--collapsible-panel-height) transition-[height] duration-(--gryt-dur-spring) ease-spring",
2066
+ "data-starting-style:h-0 data-ending-style:h-0",
2067
+ "motion-reduce:transition-none",
2068
+ t
2069
+ ),
2070
+ ...e
2071
+ }
2072
+ );
2073
+ }
2074
+ ), Wo = {
2075
+ Root: Q.Root,
2076
+ Trigger: nr,
2077
+ Panel: ir
2078
+ }, Qo = s(function({ className: t, ...e }, r) {
2079
+ return /* @__PURE__ */ o(
2080
+ Mt,
2081
+ {
2082
+ ref: r,
2083
+ className: n("gryt-form flex flex-col gap-(--gryt-space-lg)", t),
2084
+ ...e
2085
+ }
2086
+ );
2087
+ }), sr = s(
2088
+ function({ className: t, ...e }, r) {
2089
+ return /* @__PURE__ */ o(
2090
+ dt.Root,
2091
+ {
2092
+ ref: r,
2093
+ className: n(
2094
+ "gryt-fieldset flex min-w-0 flex-col gap-3 border-0 p-0",
2095
+ t
2096
+ ),
2097
+ ...e
2098
+ }
2099
+ );
2100
+ }
2101
+ ), cr = s(function({ className: t, ...e }, r) {
2102
+ return /* @__PURE__ */ o(
2103
+ dt.Legend,
2104
+ {
2105
+ ref: r,
2106
+ className: n(
2107
+ "gryt-fieldset-legend text-sm font-semibold text-gryt-text",
2108
+ t
2109
+ ),
2110
+ ...e
2111
+ }
2112
+ );
2113
+ }), Jo = { Root: sr, Legend: cr }, Ko = s(
2114
+ function({ className: t, ...e }, r) {
2115
+ return /* @__PURE__ */ o(
2116
+ Lt,
2117
+ {
2118
+ ref: r,
2119
+ className: n(
2120
+ "gryt-menubar flex items-center gap-1",
2121
+ "rounded-(--gryt-radius-md) border border-gryt-border bg-gryt-surface p-1",
2122
+ t
2123
+ ),
2124
+ ...e
2125
+ }
2126
+ );
2127
+ }
2128
+ ), lr = s(function({ className: t, ...e }, r) {
2129
+ return /* @__PURE__ */ o(
2130
+ h.Trigger,
2131
+ {
2132
+ ref: r,
2133
+ className: n(
2134
+ "gryt-navigation-menu-trigger flex items-center gap-1.5 rounded-(--gryt-radius-md)",
2135
+ "border-0 bg-transparent px-3 py-2 text-sm font-medium text-gryt-text select-none",
2136
+ "transition-colors hover:bg-gryt-surface-raised motion-reduce:transition-none",
2137
+ "data-popup-open:bg-gryt-surface-raised",
2138
+ b,
2139
+ t
2140
+ ),
2141
+ ...e
2142
+ }
2143
+ );
2144
+ }), dr = s(function({ className: t, ...e }, r) {
2145
+ return /* @__PURE__ */ o(
2146
+ h.Popup,
2147
+ {
2148
+ ref: r,
2149
+ className: n(
2150
+ "gryt-navigation-menu-popup outline-none",
2151
+ S,
2152
+ R,
2153
+ t
2154
+ ),
2155
+ ...e
2156
+ }
2157
+ );
2158
+ }), gr = s(function({ className: t, ...e }, r) {
2159
+ return /* @__PURE__ */ o(
2160
+ h.Viewport,
2161
+ {
2162
+ ref: r,
2163
+ className: n(
2164
+ "gryt-navigation-menu-viewport relative overflow-hidden",
2165
+ t
2166
+ ),
2167
+ ...e
2168
+ }
2169
+ );
2170
+ }), ur = s(function({ className: t, ...e }, r) {
2171
+ return /* @__PURE__ */ o(
2172
+ h.Link,
2173
+ {
2174
+ ref: r,
2175
+ className: n(
2176
+ "gryt-navigation-menu-link block rounded-(--gryt-radius-md) px-3 py-2",
2177
+ "text-sm text-gryt-text no-underline outline-none",
2178
+ "transition-colors hover:bg-gryt-surface-raised motion-reduce:transition-none",
2179
+ b,
2180
+ t
2181
+ ),
2182
+ ...e
2183
+ }
2184
+ );
2185
+ }), Zo = {
2186
+ Root: h.Root,
2187
+ List: h.List,
2188
+ Item: h.Item,
2189
+ Trigger: lr,
2190
+ Content: h.Content,
2191
+ Portal: h.Portal,
2192
+ Positioner: h.Positioner,
2193
+ Viewport: gr,
2194
+ Popup: dr,
2195
+ Link: ur,
2196
+ Icon: h.Icon,
2197
+ Arrow: h.Arrow
2198
+ }, nt = "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", qo = s(
2199
+ function({ className: t, label: e, scrubbable: r = !1, ...i }, c) {
2200
+ return /* @__PURE__ */ d(
2201
+ I.Root,
2202
+ {
2203
+ ref: c,
2204
+ className: n("gryt-number-field flex flex-col gap-1.5", t),
2205
+ ...i,
2206
+ children: [
2207
+ e && (r ? /* @__PURE__ */ d(I.ScrubArea, { className: "cursor-ew-resize text-sm text-gryt-muted select-none", children: [
2208
+ e,
2209
+ /* @__PURE__ */ o(I.ScrubAreaCursor, {})
2210
+ ] }) : /* @__PURE__ */ o("span", { className: "text-sm text-gryt-muted", children: e })),
2211
+ /* @__PURE__ */ d(
2212
+ I.Group,
2213
+ {
2214
+ className: n(
2215
+ "flex w-fit items-center overflow-hidden rounded-(--gryt-radius-full)",
2216
+ "border border-gryt-border bg-gryt-surface-raised",
2217
+ "focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-gryt-accent-light",
2218
+ G
2219
+ ),
2220
+ children: [
2221
+ /* @__PURE__ */ o(
2222
+ I.Decrement,
2223
+ {
2224
+ "aria-label": "Decrease",
2225
+ className: n(nt, "rounded-l-(--gryt-radius-full)"),
2226
+ children: /* @__PURE__ */ o($t, { size: 14, weight: "bold" })
2227
+ }
2228
+ ),
2229
+ /* @__PURE__ */ o(
2230
+ I.Input,
2231
+ {
2232
+ className: n(
2233
+ "w-16 border-0 bg-transparent px-1 py-2 text-center",
2234
+ "font-mono text-sm text-gryt-text tabular-nums outline-none",
2235
+ b
2236
+ )
2237
+ }
2238
+ ),
2239
+ /* @__PURE__ */ o(
2240
+ I.Increment,
2241
+ {
2242
+ "aria-label": "Increase",
2243
+ className: n(nt, "rounded-r-(--gryt-radius-full)"),
2244
+ children: /* @__PURE__ */ o(Ct, { size: 14, weight: "bold" })
2245
+ }
2246
+ )
2247
+ ]
2248
+ }
2249
+ )
2250
+ ]
2251
+ }
2252
+ );
2253
+ }
2254
+ ), ta = s(
2255
+ function({ className: t, length: e = 6, ...r }, i) {
2256
+ return /* @__PURE__ */ o(
2257
+ rt.Root,
2258
+ {
2259
+ ref: i,
2260
+ length: e,
2261
+ className: n("gryt-otp-field flex gap-2", t),
2262
+ ...r,
2263
+ children: Array.from({ length: e }, (c, l) => /* @__PURE__ */ o(
2264
+ rt.Input,
2265
+ {
2266
+ className: n(
2267
+ "gryt-otp-input h-12 w-10 rounded-(--gryt-radius-md) text-center",
2268
+ "border border-gryt-border bg-gryt-surface-raised",
2269
+ "font-mono text-lg text-gryt-text tabular-nums outline-none",
2270
+ "transition-colors duration-(--gryt-dur-fast) motion-reduce:transition-none",
2271
+ "data-filled:border-gryt-accent",
2272
+ b
2273
+ )
2274
+ },
2275
+ l
2276
+ ))
2277
+ }
2278
+ );
2279
+ }
2280
+ ), yr = s(
2281
+ function({ className: t, sideOffset: e = 8, ...r }, i) {
2282
+ return /* @__PURE__ */ o(
2283
+ M.Positioner,
2284
+ {
2285
+ ref: i,
2286
+ sideOffset: e,
2287
+ className: n("gryt-preview-card-positioner outline-none", t),
2288
+ ...r
2289
+ }
2290
+ );
2291
+ }
2292
+ ), mr = s(
2293
+ function({ className: t, ...e }, r) {
2294
+ return /* @__PURE__ */ o(
2295
+ M.Popup,
2296
+ {
2297
+ ref: r,
2298
+ className: n(
2299
+ "gryt-preview-card w-64 max-w-[calc(100vw-2rem)] p-4 outline-none",
2300
+ S,
2301
+ R,
2302
+ t
2303
+ ),
2304
+ ...e
2305
+ }
2306
+ );
2307
+ }
2308
+ ), ea = {
2309
+ Root: M.Root,
2310
+ Trigger: M.Trigger,
2311
+ Portal: M.Portal,
2312
+ Positioner: yr,
2313
+ Popup: mr,
2314
+ Arrow: M.Arrow
2315
+ }, pr = s(function({ className: t, ...e }, r) {
2316
+ return /* @__PURE__ */ o(
2317
+ L.Root,
2318
+ {
2319
+ ref: r,
2320
+ className: n(
2321
+ "gryt-toolbar flex items-center gap-1",
2322
+ "rounded-(--gryt-radius-full) border border-gryt-border bg-gryt-surface p-1",
2323
+ t
2324
+ ),
2325
+ ...e
2326
+ }
2327
+ );
2328
+ }), br = s(function({ className: t, ...e }, r) {
2329
+ return /* @__PURE__ */ o(
2330
+ L.Separator,
2331
+ {
2332
+ ref: r,
2333
+ className: n("gryt-toolbar-separator mx-1 h-6 w-px bg-gryt-border", t),
2334
+ ...e
2335
+ }
2336
+ );
2337
+ }), ra = {
2338
+ Root: pr,
2339
+ Group: L.Group,
2340
+ Button: L.Button,
2341
+ Link: L.Link,
2342
+ Input: L.Input,
2343
+ Separator: br
2344
+ };
1253
2345
  export {
1254
- Le as Accordion,
1255
- $e as Alert,
1256
- yt as Avatar,
1257
- ye as Badge,
1258
- ot as Button,
1259
- Pe as Card,
1260
- Re as CardActions,
1261
- Te as CardContent,
1262
- Se as CardHeader,
1263
- be as Checkbox,
1264
- me as Chip,
1265
- ge as Composer,
1266
- ue as ConversationItem,
1267
- Be as Dialog,
1268
- Ne as Divider,
1269
- ze as Drawer,
1270
- se as GrytProvider,
1271
- ce as IconButton,
1272
- je as Menu,
1273
- de as MessageBubble,
1274
- Ce as Progress,
1275
- fe as Radio,
1276
- pe as RadioGroup,
1277
- we as Select,
1278
- De as Skeleton,
1279
- xe as Slider,
1280
- Ie as Spinner,
1281
- ie as Surface,
1282
- he as Switch,
1283
- Bt as Tab,
1284
- Ae as Tabs,
1285
- le as TextField,
1286
- ve as Tooltip,
1287
- ke as TooltipProvider,
1288
- o as cn,
1289
- et as createGrytTheme,
1290
- L as grytTokens
2346
+ jo as Accordion,
2347
+ So as Alert,
2348
+ Xo as AlertDialog,
2349
+ Yo as Autocomplete,
2350
+ Wt as Avatar,
2351
+ yo as Badge,
2352
+ Ft as Button,
2353
+ ko as Card,
2354
+ Co as CardActions,
2355
+ $o as CardContent,
2356
+ To as CardHeader,
2357
+ po as Checkbox,
2358
+ Uo as CheckboxGroup,
2359
+ mo as Chip,
2360
+ Wo as Collapsible,
2361
+ Oo as Combobox,
2362
+ go as Composer,
2363
+ Go as ContextMenu,
2364
+ uo as ConversationItem,
2365
+ Ao as Dialog,
2366
+ Po as Divider,
2367
+ Mo as Drawer,
2368
+ Jo as Fieldset,
2369
+ Qo as Form,
2370
+ no as GrytProvider,
2371
+ io as IconButton,
2372
+ Y as Menu,
2373
+ Ko as Menubar,
2374
+ co as MessageBubble,
2375
+ Ho as Meter,
2376
+ Zo as NavigationMenu,
2377
+ qo as NumberField,
2378
+ ta as OtpField,
2379
+ Bo as Popover,
2380
+ ea as PreviewCard,
2381
+ Ro as Progress,
2382
+ bo as Radio,
2383
+ fo as RadioGroup,
2384
+ Vo as ScrollArea,
2385
+ wo as Select,
2386
+ Do as Skeleton,
2387
+ ho as Slider,
2388
+ Io as Spinner,
2389
+ so as Surface,
2390
+ xo as Switch,
2391
+ ve as Tab,
2392
+ Lo as Tabs,
2393
+ lo as TextField,
2394
+ zo as Toast,
2395
+ Eo as Toggle,
2396
+ _o as ToggleGroup,
2397
+ ra as Toolbar,
2398
+ vo as Tooltip,
2399
+ No as TooltipProvider,
2400
+ n as cn,
2401
+ jt as createGrytTheme,
2402
+ ot as grytTokens,
2403
+ ne as useMediaQuery,
2404
+ Fo as useToastManager
1291
2405
  };
1292
2406
  //# sourceMappingURL=index.js.map