@hirobius/design-system 0.20.0 → 0.21.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 (76) hide show
  1. package/AGENTS.md +123 -0
  2. package/CONSUMING.md +4 -2
  3. package/DESIGN.md +28 -17
  4. package/NOTICE.md +1 -1
  5. package/README.md +37 -5
  6. package/dist/chunks/empty-state-DNoThgfV.js +1227 -0
  7. package/dist/chunks/form-By82qZcC.js +66 -0
  8. package/dist/fonts/geist-mono-400.woff2 +0 -0
  9. package/dist/fonts/satoshi-400.woff2 +0 -0
  10. package/dist/fonts/satoshi-500.woff2 +0 -0
  11. package/dist/fonts/satoshi-700.woff2 +0 -0
  12. package/dist/fonts.css +53 -0
  13. package/dist/form.js +1 -1
  14. package/dist/hirobius-ui.js +876 -877
  15. package/dist/manifest.js +1 -1
  16. package/dist/patterns.js +189 -170
  17. package/dist/styles.css +2 -2
  18. package/dist/tokens.css +1 -1
  19. package/dist/tokens.js +136 -57
  20. package/dist/types/src/app/components/alert-dialog.d.ts +5 -0
  21. package/dist/types/src/app/components/asset-img.d.ts +1 -0
  22. package/dist/types/src/app/components/avatar-group.d.ts +1 -0
  23. package/dist/types/src/app/components/badge.d.ts +1 -1
  24. package/dist/types/src/app/components/blockquote.d.ts +1 -0
  25. package/dist/types/src/app/components/button.d.ts +2 -0
  26. package/dist/types/src/app/components/card.d.ts +3 -2
  27. package/dist/types/src/app/components/data-table-section.d.ts +1 -0
  28. package/dist/types/src/app/components/destructive-section.d.ts +1 -0
  29. package/dist/types/src/app/components/dialog.d.ts +1 -0
  30. package/dist/types/src/app/components/error-pattern.d.ts +6 -1
  31. package/dist/types/src/app/components/form-actions.d.ts +1 -0
  32. package/dist/types/src/app/components/form-control.d.ts +10 -0
  33. package/dist/types/src/app/components/grid.d.ts +5 -0
  34. package/dist/types/src/app/components/icon.d.ts +1 -0
  35. package/dist/types/src/app/components/kbd.d.ts +1 -0
  36. package/dist/types/src/app/components/metadata-list.d.ts +1 -0
  37. package/dist/types/src/app/components/metric-tiles.d.ts +1 -0
  38. package/dist/types/src/app/components/progress.d.ts +1 -1
  39. package/dist/types/src/app/components/skeleton.d.ts +1 -1
  40. package/dist/types/src/app/components/stat.d.ts +4 -3
  41. package/dist/types/src/app/components/status-tile.d.ts +3 -2
  42. package/dist/types/src/app/components/table.d.ts +5 -0
  43. package/dist/types/src/app/components/text.d.ts +53 -6
  44. package/dist/types/src/app/components/timestamp.d.ts +1 -0
  45. package/dist/types/src/app/data/manifest-types.d.ts +4 -0
  46. package/dist/types/src/app/design-system/generated-token-refs.d.ts +37 -28
  47. package/dist/types/src/app/design-system/generated-token-values.d.ts +3 -0
  48. package/dist/types/src/app/design-system/tokens.d.ts +117 -15
  49. package/dist/types/src/index.d.ts +43 -40
  50. package/dist/variables.css +41 -33
  51. package/docs/CONSUMING.md +63 -39
  52. package/hirobius.tokens.json +77 -73
  53. package/llms.txt +158 -50
  54. package/mcp/catalog.mjs +366 -0
  55. package/mcp/guide.mjs +315 -0
  56. package/mcp/hds-mcp.mjs +49 -0
  57. package/mcp/server.mjs +94 -0
  58. package/package.json +35 -9
  59. package/public/hds-manifest.json +348 -254
  60. package/public/llms/components.txt +4 -3
  61. package/public/llms/layout.txt +1 -1
  62. package/public/llms-full.txt +190 -70
  63. package/public/llms.txt +158 -50
  64. package/scripts/eslint-plugin-hds/index.d.mts +29 -0
  65. package/scripts/eslint-plugin-hds/index.mjs +55 -0
  66. package/scripts/eslint-plugin-hds/package.json +30 -0
  67. package/scripts/eslint-plugin-hds/rules/no-raw-controls.mjs +47 -0
  68. package/scripts/eslint-plugin-hds/rules/no-raw-hex.mjs +70 -0
  69. package/scripts/eslint-plugin-hds/rules/no-raw-px-spacing.mjs +125 -0
  70. package/scripts/eslint-plugin-hds/rules/prefer-hds-layout-primitive.mjs +54 -0
  71. package/scripts/eslint-plugin-hds/rules/sx-token-first.mjs +111 -0
  72. package/scripts/eslint-plugin-hds/rules/utils.mjs +66 -0
  73. package/src/app/data/component-api.json +114 -53
  74. package/dist/chunks/empty-state-BBqhCx0S.js +0 -1217
  75. package/dist/chunks/form-COP3vK9_.js +0 -66
  76. package/dist/types/src/app/components/status-dot.d.ts +0 -39
@@ -1,25 +1,25 @@
1
1
  'use client';
2
- import { jsxs as g, jsx as e, Fragment as et } from "react/jsx-runtime";
3
- import * as f from "react";
4
- import q, { useState as j, forwardRef as Q, useRef as ge, useEffect as tt, useId as Ve } from "react";
5
- import { motion as A, AnimatePresence as it } from "motion/react";
2
+ import { jsxs as g, jsx as e, Fragment as ii } from "react/jsx-runtime";
3
+ import * as v from "react";
4
+ import X, { useState as Y, forwardRef as ee, useRef as $e, useEffect as ti, useId as Me } from "react";
5
+ import { motion as H, AnimatePresence as ai } from "motion/react";
6
6
  import { cva as $ } from "class-variance-authority";
7
- import { Info as he, TriangleAlert as Le, CircleX as Ie, CircleCheck as Me, X as ce, ChevronRight as be, Circle as at, Check as re, Copy as rt, SquareArrowOutUpRight as nt, Loader2 as ot, Minus as st, ChevronDown as Ae, ChevronsUpDown as lt, ChevronLeft as ct } from "lucide-react";
8
- import N, { tokenValues as $e } from "./tokens.js";
7
+ import { Info as ye, TriangleAlert as Ae, CircleX as He, CircleCheck as Ee, X as ve, ChevronRight as xe, Circle as ri, Check as oe, Copy as ni, SquareArrowOutUpRight as oi, Loader2 as si, Minus as li, ChevronsUpDown as Be, ChevronDown as ci, ChevronLeft as di } from "lucide-react";
8
+ import z, { tokenValues as we } from "./tokens.js";
9
9
  import { cn as d } from "./cn.js";
10
- import { u as G, I as M, i as dt, T as Ee, w as ne, B as le, a as Be, d as pt, r as He, L as We, S as ze } from "./chunks/empty-state-BBqhCx0S.js";
11
- import { A as sr, b as lr, e as cr, f as dr, g as pr, j as ur, k as mr, l as vr, m as fr, C as gr, E as hr, G as br, H as $r, c as xr, n as yr } from "./chunks/empty-state-BBqhCx0S.js";
12
- import * as O from "@radix-ui/react-dialog";
10
+ import { u as j, I as A, i as pi, d as ui, T as We, w as se, B as me, r as Fe, L as _e, S as De, a as mi } from "./chunks/empty-state-DNoThgfV.js";
11
+ import { A as lr, b as cr, e as dr, f as pr, g as ur, j as mr, k as vr, l as fr, m as gr, C as hr, E as br, G as $r, H as yr, c as xr, n as wr } from "./chunks/empty-state-DNoThgfV.js";
12
+ import * as U from "@radix-ui/react-dialog";
13
13
  import * as E from "@radix-ui/react-dropdown-menu";
14
- import * as ee from "@radix-ui/react-popover";
14
+ import * as ie from "@radix-ui/react-popover";
15
15
  import * as Z from "@radix-ui/react-tooltip";
16
- import { a as Fe, u as oe } from "./chunks/DemoStateContext-Cz5TmrYu.js";
17
- import { H as kr } from "./chunks/DemoStateContext-Cz5TmrYu.js";
18
- import * as Ce from "@radix-ui/react-toggle-group";
19
- import * as _ from "@radix-ui/react-select";
20
- import * as de from "@radix-ui/react-tabs";
16
+ import { a as Oe, u as le } from "./chunks/DemoStateContext-Cz5TmrYu.js";
17
+ import { H as Sr } from "./chunks/DemoStateContext-Cz5TmrYu.js";
18
+ import * as Te from "@radix-ui/react-toggle-group";
19
+ import * as O from "@radix-ui/react-select";
20
+ import * as fe from "@radix-ui/react-tabs";
21
21
  import * as J from "@radix-ui/react-toast";
22
- const ut = /* @__PURE__ */ $(
22
+ const vi = /* @__PURE__ */ $(
23
23
  "flex gap-[var(--semantic-space-scale-xs)] p-[var(--semantic-space-scale-xs)] rounded-[var(--primitive-radius-4)]",
24
24
  // tier-ok: 4px primitive radius, no semantic 4px token
25
25
  {
@@ -37,25 +37,25 @@ const ut = /* @__PURE__ */ $(
37
37
  },
38
38
  defaultVariants: { tone: "info", hasTitle: !1 }
39
39
  }
40
- ), mt = {
41
- success: { icon: Me, colorVar: "var(--semantic-color-feedback-success)" },
42
- danger: { icon: Ie, colorVar: "var(--semantic-color-feedback-error)" },
43
- warning: { icon: Le, colorVar: "var(--semantic-color-feedback-warning)" },
44
- info: { icon: he, colorVar: "var(--semantic-color-feedback-info)" }
45
- }, ua = /* @__PURE__ */ q.forwardRef(function({ tone: t = "info", title: i, children: a }, r) {
46
- const { icon: n, colorVar: s } = mt[t], l = !!i, p = G("productive");
40
+ ), fi = {
41
+ success: { icon: Ee, colorVar: "var(--semantic-color-feedback-success)" },
42
+ danger: { icon: He, colorVar: "var(--semantic-color-feedback-error)" },
43
+ warning: { icon: Ae, colorVar: "var(--semantic-color-feedback-warning)" },
44
+ info: { icon: ye, colorVar: "var(--semantic-color-feedback-info)" }
45
+ }, va = /* @__PURE__ */ X.forwardRef(function({ tone: i = "info", title: t, children: a }, r) {
46
+ const { icon: n, colorVar: s } = fi[i], l = !!t, p = j("productive");
47
47
  return /* @__PURE__ */ g(
48
- A.div,
48
+ H.div,
49
49
  {
50
50
  ref: r,
51
- role: "alert",
51
+ role: i === "danger" || i === "warning" ? "alert" : "status",
52
52
  initial: { opacity: 0, y: -4 },
53
53
  animate: { opacity: 1, y: 0 },
54
54
  transition: { duration: p.duration, ease: p.easing },
55
- className: d(ut({ tone: t, hasTitle: l })),
55
+ className: d(vi({ tone: i, hasTitle: l })),
56
56
  children: [
57
57
  /* @__PURE__ */ e(
58
- M,
58
+ A,
59
59
  {
60
60
  icon: n,
61
61
  size: "small",
@@ -77,18 +77,18 @@ const ut = /* @__PURE__ */ $(
77
77
  "span",
78
78
  {
79
79
  style: {
80
- ...N.typeStyles.ui,
80
+ ...z.typeStyles.ui,
81
81
  color: "var(--semantic-color-content-primary)",
82
82
  margin: 0
83
83
  },
84
- children: i
84
+ children: t
85
85
  }
86
86
  ),
87
87
  /* @__PURE__ */ e(
88
88
  "span",
89
89
  {
90
90
  style: {
91
- ...N.typeStyles.caption,
91
+ ...z.typeStyles.caption,
92
92
  color: "var(--semantic-color-content-primary)",
93
93
  margin: 0
94
94
  },
@@ -100,7 +100,7 @@ const ut = /* @__PURE__ */ $(
100
100
  "span",
101
101
  {
102
102
  style: {
103
- ...N.typeStyles.caption,
103
+ ...z.typeStyles.caption,
104
104
  color: "var(--semantic-color-content-primary)",
105
105
  margin: 0
106
106
  },
@@ -110,33 +110,33 @@ const ut = /* @__PURE__ */ $(
110
110
  ]
111
111
  }
112
112
  );
113
- }), vt = /* @__PURE__ */ $(
114
- "relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground font-medium uppercase select-none",
113
+ }), gi = /* @__PURE__ */ $(
114
+ "relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground uppercase select-none",
115
115
  {
116
116
  variants: {
117
117
  size: {
118
- sm: "h-8 w-8 text-xs",
119
- md: "h-10 w-10 text-sm",
120
- lg: "h-12 w-12 text-base"
118
+ sm: "h-8 w-8 hds-type-caption",
119
+ md: "h-10 w-10 hds-type-ui",
120
+ lg: "h-12 w-12 hds-type-body"
121
121
  }
122
122
  },
123
123
  defaultVariants: { size: "md" }
124
124
  }
125
125
  );
126
- function ft(o) {
126
+ function hi(o) {
127
127
  if (!o) return "";
128
- const t = o.trim().split(/\s+/).filter(Boolean);
129
- return t.length === 0 ? "" : t.length === 1 ? t[0].slice(0, 2) : (t[0][0] ?? "") + (t[t.length - 1][0] ?? "");
128
+ const i = o.trim().split(/\s+/).filter(Boolean);
129
+ return i.length === 0 ? "" : i.length === 1 ? i[0].slice(0, 2) : (i[0][0] ?? "") + (i[i.length - 1][0] ?? "");
130
130
  }
131
- const ma = /* @__PURE__ */ f.forwardRef(
132
- function({ className: t, size: i, src: a, alt: r, initials: n, ...s }, l) {
133
- const [p, c] = f.useState(!1), u = !!a && !p, m = n || ft(r);
131
+ const fa = /* @__PURE__ */ v.forwardRef(
132
+ function({ className: i, size: t, src: a, alt: r, initials: n, ...s }, l) {
133
+ const [p, c] = v.useState(!1), u = !!a && !p, m = n || hi(r);
134
134
  return /* @__PURE__ */ e(
135
135
  "span",
136
136
  {
137
137
  ref: l,
138
- "data-size": i ?? "md",
139
- className: d(vt({ size: i }), t),
138
+ "data-size": t ?? "md",
139
+ className: d(gi({ size: t }), i),
140
140
  ...s,
141
141
  children: u ? /* @__PURE__ */ e(
142
142
  "img",
@@ -150,8 +150,8 @@ const ma = /* @__PURE__ */ f.forwardRef(
150
150
  }
151
151
  );
152
152
  }
153
- ), gt = /* @__PURE__ */ $(
154
- "inline-flex w-fit items-center justify-center whitespace-nowrap box-border leading-none uppercase font-medium text-xs tracking-caps h-[var(--component-badge-height)] min-w-[var(--component-badge-minWidth)] px-[var(--component-badge-paddingX)] py-[var(--component-badge-paddingY)] rounded-[var(--component-badge-radius)]",
153
+ ), bi = /* @__PURE__ */ $(
154
+ "inline-flex w-fit items-center justify-center whitespace-nowrap box-border hds-type-caption h-[var(--component-badge-height)] min-w-[var(--component-badge-minWidth)] px-[var(--component-badge-paddingX)] py-[var(--component-badge-paddingY)] rounded-[var(--component-badge-radius)]",
155
155
  {
156
156
  variants: {
157
157
  tone: {
@@ -165,7 +165,7 @@ const ma = /* @__PURE__ */ f.forwardRef(
165
165
  },
166
166
  defaultVariants: { tone: "neutral" }
167
167
  }
168
- ), ht = /* @__PURE__ */ $("inline-block shrink-0 rounded-full", {
168
+ ), $i = /* @__PURE__ */ $("inline-block shrink-0 rounded-full", {
169
169
  variants: {
170
170
  tone: {
171
171
  neutral: "bg-muted-foreground",
@@ -177,45 +177,52 @@ const ma = /* @__PURE__ */ f.forwardRef(
177
177
  }
178
178
  },
179
179
  defaultVariants: { tone: "neutral" }
180
- }), bt = {
180
+ }), yi = {
181
181
  sm: "size-1.5",
182
182
  md: "size-2",
183
183
  lg: "size-2.5"
184
- }, va = /* @__PURE__ */ f.forwardRef(function({ className: t, tone: i, as: a = "span", dot: r = !1, size: n, label: s, children: l, ...p }, c) {
185
- return r ? /* @__PURE__ */ e(
184
+ };
185
+ let Re = !1;
186
+ function xi() {
187
+ Re || pi() || (Re = !0, console.warn(
188
+ "[HDS] Badge `label` only names a `dot` badge and renders no text. Put the text in children: <Badge>Active</Badge>, or add `dot`."
189
+ ));
190
+ }
191
+ const ga = /* @__PURE__ */ v.forwardRef(function({ className: i, tone: t, as: a = "span", dot: r = !1, size: n, label: s, children: l, ...p }, c) {
192
+ return s && !r && xi(), r ? /* @__PURE__ */ e(
186
193
  a,
187
194
  {
188
195
  ref: c,
189
- "data-tone": i ?? "neutral",
196
+ "data-tone": t ?? "neutral",
190
197
  "data-size": n ?? "md",
191
- className: d(ht({ tone: i }), bt[n ?? "md"], t),
192
- ...s ? { role: "status", "aria-label": s } : { "aria-hidden": !0 },
198
+ className: d($i({ tone: t }), yi[n ?? "md"], i),
199
+ ...s ? { role: "img", "aria-label": s } : { "aria-hidden": !0 },
193
200
  ...p
194
201
  }
195
202
  ) : /* @__PURE__ */ e(
196
203
  a,
197
204
  {
198
205
  ref: c,
199
- "data-tone": i ?? "neutral",
200
- className: d(gt({ tone: i }), t),
206
+ "data-tone": t ?? "neutral",
207
+ className: d(bi({ tone: t }), i),
201
208
  ...p,
202
209
  children: l
203
210
  }
204
211
  );
205
- }), fa = /* @__PURE__ */ q.forwardRef(function({ as: t = "div", sx: i, className: a, children: r, ...n }, s) {
206
- const l = i ? dt(i) : void 0;
212
+ }), ha = /* @__PURE__ */ X.forwardRef(function({ as: i = "div", sx: t, className: a, children: r, ...n }, s) {
213
+ const l = t ? ui(t) : void 0;
207
214
  return /* @__PURE__ */ e(
208
- t,
215
+ i,
209
216
  {
210
217
  ref: s,
211
218
  className: d(l, a),
212
219
  "data-hds-component": "Box",
213
- "data-hds-metrics": i ? `sx:${Object.keys(i).length}` : void 0,
220
+ "data-hds-metrics": t ? `sx:${Object.keys(t).length}` : void 0,
214
221
  ...n,
215
222
  children: r
216
223
  }
217
224
  );
218
- }), $t = /* @__PURE__ */ $(
225
+ }), wi = /* @__PURE__ */ $(
219
226
  "border-l-[3px] p-[var(--semantic-space-surface-padding)]",
220
227
  {
221
228
  variants: {
@@ -233,20 +240,20 @@ const ma = /* @__PURE__ */ f.forwardRef(
233
240
  },
234
241
  defaultVariants: { tone: "info", italic: !1 }
235
242
  }
236
- ), ga = /* @__PURE__ */ f.forwardRef(
237
- function({ tone: t = "info", italic: i = !1, className: a, children: r, ...n }, s) {
243
+ ), ba = /* @__PURE__ */ v.forwardRef(
244
+ function({ tone: i = "info", italic: t = !1, className: a, children: r, ...n }, s) {
238
245
  return /* @__PURE__ */ e(
239
246
  "div",
240
247
  {
241
248
  ref: s,
242
- "data-tone": t,
243
- className: d($t({ tone: t, italic: i }), a),
249
+ "data-tone": i,
250
+ className: d(wi({ tone: i, italic: t }), a),
244
251
  ...n,
245
252
  children: r
246
253
  }
247
254
  );
248
255
  }
249
- ), xt = /* @__PURE__ */ $("text-sm", {
256
+ ), ki = /* @__PURE__ */ $("hds-type-ui", {
250
257
  variants: {
251
258
  tone: {
252
259
  neutral: "text-foreground",
@@ -256,13 +263,13 @@ const ma = /* @__PURE__ */ f.forwardRef(
256
263
  info: "text-feedback-info"
257
264
  },
258
265
  mono: {
259
- true: "font-mono text-xs",
266
+ true: "hds-type-mono",
260
267
  false: ""
261
268
  }
262
269
  },
263
270
  defaultVariants: { tone: "neutral", mono: !1 }
264
- }), ha = /* @__PURE__ */ f.forwardRef(function({ label: t, value: i, tone: a, mono: r, className: n, children: s, ...l }, p) {
265
- const c = s ?? i;
271
+ }), $a = /* @__PURE__ */ v.forwardRef(function({ label: i, value: t, tone: a, mono: r, className: n, children: s, ...l }, p) {
272
+ const c = s ?? t;
266
273
  return /* @__PURE__ */ g(
267
274
  "div",
268
275
  {
@@ -271,12 +278,12 @@ const ma = /* @__PURE__ */ f.forwardRef(
271
278
  className: d("flex flex-col gap-1", n),
272
279
  ...l,
273
280
  children: [
274
- /* @__PURE__ */ e("span", { className: "text-xs uppercase tracking-caps text-muted-foreground", children: t }),
275
- c != null && /* @__PURE__ */ e("span", { className: xt({ tone: a, mono: r }), children: c })
281
+ /* @__PURE__ */ e("span", { className: "hds-type-caption text-muted-foreground", children: i }),
282
+ c != null && /* @__PURE__ */ e("span", { className: ki({ tone: a, mono: r }), children: c })
276
283
  ]
277
284
  }
278
285
  );
279
- }), yt = /* @__PURE__ */ $("m-0 text-2xl font-medium leading-tight", {
286
+ }), Si = /* @__PURE__ */ $("m-0 hds-type-title", {
280
287
  variants: {
281
288
  tone: {
282
289
  neutral: "text-foreground",
@@ -287,22 +294,22 @@ const ma = /* @__PURE__ */ f.forwardRef(
287
294
  }
288
295
  },
289
296
  defaultVariants: { tone: "neutral" }
290
- }), ba = /* @__PURE__ */ f.forwardRef(function({ label: t, value: i, sub: a, tone: r, className: n, ...s }, l) {
297
+ }), ya = /* @__PURE__ */ v.forwardRef(function({ label: i, value: t, sub: a, tone: r, className: n, ...s }, l) {
291
298
  return /* @__PURE__ */ g(
292
299
  "div",
293
300
  {
294
301
  ref: l,
295
302
  "data-tone": r ?? "neutral",
296
- className: d("flex flex-col gap-0.5", n),
303
+ className: d("flex flex-col gap-1 self-start", n),
297
304
  ...s,
298
305
  children: [
299
- /* @__PURE__ */ e("p", { className: yt({ tone: r }), children: i }),
300
- /* @__PURE__ */ e("p", { className: "m-0 text-xs uppercase tracking-caps text-muted-foreground", children: t }),
301
- a && /* @__PURE__ */ e("p", { className: "m-0 text-xs text-muted-foreground", children: a })
306
+ /* @__PURE__ */ e("p", { className: Si({ tone: r }), children: t }),
307
+ /* @__PURE__ */ e("p", { className: "m-0 hds-type-caption text-muted-foreground", children: i }),
308
+ a && /* @__PURE__ */ e("p", { className: "m-0 hds-type-caption text-muted-foreground", children: a })
302
309
  ]
303
310
  }
304
311
  );
305
- }), wt = /* @__PURE__ */ $("mt-1.5 h-2 w-2 shrink-0 rounded-full", {
312
+ }), Ni = /* @__PURE__ */ $("mt-1.5 h-2 w-2 shrink-0 rounded-full", {
306
313
  variants: {
307
314
  tone: {
308
315
  neutral: "bg-border",
@@ -313,51 +320,52 @@ const ma = /* @__PURE__ */ f.forwardRef(
313
320
  }
314
321
  },
315
322
  defaultVariants: { tone: "neutral" }
316
- }), $a = /* @__PURE__ */ f.forwardRef(
317
- function({ tone: t, title: i, notes: a, trailing: r, className: n, ...s }, l) {
323
+ }), xa = /* @__PURE__ */ v.forwardRef(
324
+ function({ tone: i, title: t, notes: a, trailing: r, className: n, ...s }, l) {
318
325
  return /* @__PURE__ */ g(
319
326
  "div",
320
327
  {
321
328
  ref: l,
322
- "data-tone": t ?? "neutral",
329
+ "data-tone": i ?? "neutral",
323
330
  className: d("flex items-start gap-3", n),
324
331
  ...s,
325
332
  children: [
326
- /* @__PURE__ */ e("span", { "aria-hidden": "true", className: wt({ tone: t }) }),
333
+ /* @__PURE__ */ e("span", { "aria-hidden": "true", className: Ni({ tone: i }) }),
327
334
  /* @__PURE__ */ g("div", { className: "min-w-0 flex-1", children: [
328
- /* @__PURE__ */ e("p", { className: "m-0 text-sm text-foreground", children: i }),
329
- a == null ? void 0 : a.map((p, c) => /* @__PURE__ */ e("p", { className: "m-0 text-xs text-muted-foreground", children: p }, c))
335
+ /* @__PURE__ */ e("p", { className: "m-0 hds-type-ui text-foreground", children: t }),
336
+ a == null ? void 0 : a.map((p, c) => /* @__PURE__ */ e("p", { className: "m-0 hds-type-caption text-muted-foreground", children: p }, c))
330
337
  ] }),
331
338
  r && /* @__PURE__ */ e("div", { className: "shrink-0", children: r })
332
339
  ]
333
340
  }
334
341
  );
335
342
  }
336
- ), kt = O.Trigger, _e = /* @__PURE__ */ ne(O.Portal), St = O.Close, Ge = /* @__PURE__ */ f.forwardRef(function({ className: t, ...i }, a) {
343
+ ), zi = U.Trigger, Ge = /* @__PURE__ */ se(U.Portal), Ci = U.Close, je = /* @__PURE__ */ v.forwardRef(function({ className: i, ...t }, a) {
337
344
  return /* @__PURE__ */ e(
338
- O.Overlay,
345
+ U.Overlay,
339
346
  {
340
347
  ref: a,
341
- className: d("fixed inset-0 z-50 bg-scrim/60 backdrop-blur-sm", t),
342
- ...i
348
+ className: d("fixed inset-0 z-50 bg-scrim/60 backdrop-blur-sm", i),
349
+ ...t
343
350
  }
344
351
  );
345
- }), Nt = /* @__PURE__ */ f.forwardRef(function({ className: t, children: i, hideClose: a = !1, container: r, ...n }, s) {
346
- return /* @__PURE__ */ g(_e, { container: r, children: [
347
- /* @__PURE__ */ e(Ge, {}),
352
+ }), Di = /* @__PURE__ */ v.forwardRef(function({ className: i, children: t, hideClose: a = !1, container: r, ...n }, s) {
353
+ return /* @__PURE__ */ g(Ge, { container: r, children: [
354
+ /* @__PURE__ */ e(je, {}),
348
355
  /* @__PURE__ */ g(
349
- O.Content,
356
+ U.Content,
350
357
  {
351
358
  ref: s,
352
359
  className: d(
353
- "fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border border-border bg-popover p-6 text-popover-foreground shadow-overlay hds-focus",
354
- t
360
+ // 16px of page margin each side, so the panel never sits flush to a 390px viewport (hds#522)
361
+ "fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2*var(--semantic-space-scale-sm))] max-h-[calc(100dvh-2*var(--semantic-space-scale-sm))] max-w-lg overflow-y-auto -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border border-border bg-popover p-6 text-popover-foreground shadow-overlay hds-focus",
362
+ i
355
363
  ),
356
364
  ...n,
357
365
  children: [
358
- i,
366
+ t,
359
367
  !a && /* @__PURE__ */ g(
360
- O.Close,
368
+ U.Close,
361
369
  {
362
370
  className: d(
363
371
  "absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-sm text-muted-foreground transition-colors",
@@ -366,7 +374,7 @@ const ma = /* @__PURE__ */ f.forwardRef(
366
374
  "disabled:pointer-events-none"
367
375
  ),
368
376
  children: [
369
- /* @__PURE__ */ e(ce, { "aria-hidden": "true", className: "size-4" }),
377
+ /* @__PURE__ */ e(ve, { "aria-hidden": "true", className: "size-4" }),
370
378
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
371
379
  ]
372
380
  }
@@ -375,53 +383,54 @@ const ma = /* @__PURE__ */ f.forwardRef(
375
383
  }
376
384
  )
377
385
  ] });
378
- }), zt = /* @__PURE__ */ f.forwardRef(function({ className: t, ...i }, a) {
379
- return /* @__PURE__ */ e("div", { ref: a, className: d("flex flex-col space-y-1.5 text-left", t), ...i });
380
- }), Ct = /* @__PURE__ */ f.forwardRef(function({ className: t, ...i }, a) {
386
+ }), Ti = /* @__PURE__ */ v.forwardRef(function({ className: i, ...t }, a) {
387
+ return /* @__PURE__ */ e("div", { ref: a, className: d("flex flex-col space-y-1.5 text-left", i), ...t });
388
+ }), Ri = /* @__PURE__ */ v.forwardRef(function({ className: i, ...t }, a) {
381
389
  return /* @__PURE__ */ e(
382
390
  "div",
383
391
  {
384
392
  ref: a,
385
- className: d("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:gap-2", t),
386
- ...i
393
+ className: d("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:gap-2", i),
394
+ ...t
387
395
  }
388
396
  );
389
- }), Dt = /* @__PURE__ */ f.forwardRef(function({ className: t, children: i, ...a }, r) {
390
- return /* @__PURE__ */ e(O.Title, { asChild: !0, children: /* @__PURE__ */ e(Ee, { ref: r, as: "h2", variant: "heading3", className: t, ...a, children: i }) });
391
- }), Tt = /* @__PURE__ */ f.forwardRef(function({ className: t, children: i, ...a }, r) {
392
- return /* @__PURE__ */ e(O.Description, { asChild: !0, children: /* @__PURE__ */ e(
393
- Ee,
397
+ }), Pi = /* @__PURE__ */ v.forwardRef(function({ className: i, children: t, ...a }, r) {
398
+ return /* @__PURE__ */ e(U.Title, { asChild: !0, children: /* @__PURE__ */ e(We, { ref: r, as: "h2", variant: "title", className: i, ...a, children: t }) });
399
+ }), Li = /* @__PURE__ */ v.forwardRef(function({ className: i, children: t, ...a }, r) {
400
+ return /* @__PURE__ */ e(U.Description, { asChild: !0, children: /* @__PURE__ */ e(
401
+ We,
394
402
  {
395
403
  ref: r,
396
404
  as: "p",
397
405
  variant: "caption",
398
- className: d("text-muted-foreground", t),
406
+ className: d("text-muted-foreground", i),
399
407
  ...a,
400
- children: i
408
+ children: t
401
409
  }
402
410
  ) });
403
411
  });
404
- function Pt(o) {
405
- return /* @__PURE__ */ e(O.Root, { ...o });
412
+ function Vi(o) {
413
+ return /* @__PURE__ */ e(U.Root, { ...o });
406
414
  }
407
- const xa = /* @__PURE__ */ Object.assign(Pt, {
408
- Trigger: kt,
409
- Portal: _e,
410
- Overlay: Ge,
411
- Content: Nt,
412
- Header: zt,
413
- Footer: Ct,
414
- Title: Dt,
415
- Description: Tt,
416
- Close: St,
415
+ const wa = /* @__PURE__ */ Object.assign(Vi, {
416
+ Trigger: zi,
417
+ Portal: Ge,
418
+ Overlay: je,
419
+ Content: Di,
420
+ Header: Ti,
421
+ Footer: Ri,
422
+ Title: Pi,
423
+ Description: Li,
424
+ Close: Ci,
417
425
  // Set here, not by a later `Dialog.displayName = …` write: a top-level
418
426
  // property write is a side effect that keeps the module alive.
419
427
  displayName: "Dialog"
420
- }), Rt = /* @__PURE__ */ $("m-0 shrink-0 border-solid", {
428
+ }), Ii = /* @__PURE__ */ $("m-0 shrink-0 border-solid", {
421
429
  variants: {
422
430
  orientation: {
423
431
  horizontal: "w-full self-stretch border-t",
424
- vertical: "h-full border-l"
432
+ // h-auto + self-stretch, not h-full: a percent height is never stretched by flex and has nothing to resolve against in an auto-height row; the UA hr is height 0, so auto is needed for the stretch to apply (hds#522)
433
+ vertical: "h-auto self-stretch border-l"
425
434
  },
426
435
  variant: {
427
436
  default: "border-[var(--semantic-color-border-default)]",
@@ -429,16 +438,16 @@ const xa = /* @__PURE__ */ Object.assign(Pt, {
429
438
  }
430
439
  },
431
440
  defaultVariants: { orientation: "horizontal", variant: "default" }
432
- }), ya = /* @__PURE__ */ f.forwardRef(
433
- function({ orientation: t = "horizontal", variant: i, spacing: a, strong: r, style: n, className: s, ...l }, p) {
434
- const c = r !== void 0 ? r ? "strong" : "default" : i, u = t === "horizontal";
441
+ }), ka = /* @__PURE__ */ v.forwardRef(
442
+ function({ orientation: i = "horizontal", variant: t, spacing: a, strong: r, style: n, className: s, ...l }, p) {
443
+ const c = r !== void 0 ? r ? "strong" : "default" : t, u = i === "horizontal";
435
444
  return /* @__PURE__ */ e(
436
445
  "hr",
437
446
  {
438
447
  ref: p,
439
- "aria-orientation": t ?? "horizontal",
448
+ "aria-orientation": i ?? "horizontal",
440
449
  "data-variant": c ?? "default",
441
- className: d(Rt({ orientation: t, variant: c }), s),
450
+ className: d(Ii({ orientation: i, variant: c }), s),
442
451
  style: {
443
452
  ...u ? { marginTop: a, marginBottom: a } : { marginLeft: a, marginRight: a },
444
453
  ...n
@@ -448,124 +457,124 @@ const xa = /* @__PURE__ */ Object.assign(Pt, {
448
457
  );
449
458
  }
450
459
  );
451
- function Vt(o) {
460
+ function Mi(o) {
452
461
  return /* @__PURE__ */ e(E.Root, { ...o });
453
462
  }
454
- const Lt = E.Trigger, It = E.Group, Mt = E.RadioGroup, At = E.Sub, Oe = /* @__PURE__ */ ne(E.Portal), je = "z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-overlay", pe = "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[highlighted]:ring-2 data-[highlighted]:ring-inset data-[highlighted]:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50", Et = /* @__PURE__ */ f.forwardRef(function({ className: t, sideOffset: i = 4, container: a, ...r }, n) {
455
- return /* @__PURE__ */ e(Oe, { container: a, children: /* @__PURE__ */ e(
463
+ const Ai = E.Trigger, Hi = E.Group, Ei = E.RadioGroup, Bi = E.Sub, Ue = /* @__PURE__ */ se(E.Portal), Ye = "z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-overlay", ge = "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 hds-type-ui outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[highlighted]:ring-2 data-[highlighted]:ring-inset data-[highlighted]:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50", Wi = /* @__PURE__ */ v.forwardRef(function({ className: i, sideOffset: t = 4, container: a, ...r }, n) {
464
+ return /* @__PURE__ */ e(Ue, { container: a, children: /* @__PURE__ */ e(
456
465
  E.Content,
457
466
  {
458
467
  ref: n,
459
- sideOffset: i,
468
+ sideOffset: t,
460
469
  collisionPadding: 8,
461
- className: d(je, t),
470
+ className: d(Ye, i),
462
471
  ...r
463
472
  }
464
473
  ) });
465
- }), Bt = /* @__PURE__ */ f.forwardRef(function({ className: t, ...i }, a) {
466
- return /* @__PURE__ */ e(E.Item, { ref: a, className: d(pe, t), ...i });
467
- }), Ht = /* @__PURE__ */ f.forwardRef(function({ className: t, children: i, ...a }, r) {
468
- return /* @__PURE__ */ g(E.CheckboxItem, { ref: r, className: d(pe, "pl-6", t), ...a, children: [
469
- /* @__PURE__ */ e("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ e(E.ItemIndicator, { children: /* @__PURE__ */ e(M, { icon: re, size: 14, color: "currentColor", "aria-hidden": !0 }) }) }),
470
- i
474
+ }), Fi = /* @__PURE__ */ v.forwardRef(function({ className: i, ...t }, a) {
475
+ return /* @__PURE__ */ e(E.Item, { ref: a, className: d(ge, i), ...t });
476
+ }), _i = /* @__PURE__ */ v.forwardRef(function({ className: i, children: t, ...a }, r) {
477
+ return /* @__PURE__ */ g(E.CheckboxItem, { ref: r, className: d(ge, "pl-6", i), ...a, children: [
478
+ /* @__PURE__ */ e("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ e(E.ItemIndicator, { children: /* @__PURE__ */ e(A, { icon: oe, size: 14, color: "currentColor", "aria-hidden": !0 }) }) }),
479
+ t
471
480
  ] });
472
- }), Wt = /* @__PURE__ */ f.forwardRef(function({ className: t, children: i, ...a }, r) {
473
- return /* @__PURE__ */ g(E.RadioItem, { ref: r, className: d(pe, "pl-6", t), ...a, children: [
474
- /* @__PURE__ */ e("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ e(E.ItemIndicator, { children: /* @__PURE__ */ e(M, { icon: at, size: 6, color: "currentColor", "aria-hidden": !0, className: "fill-current" }) }) }),
475
- i
481
+ }), Oi = /* @__PURE__ */ v.forwardRef(function({ className: i, children: t, ...a }, r) {
482
+ return /* @__PURE__ */ g(E.RadioItem, { ref: r, className: d(ge, "pl-6", i), ...a, children: [
483
+ /* @__PURE__ */ e("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ e(E.ItemIndicator, { children: /* @__PURE__ */ e(A, { icon: ri, size: 6, color: "currentColor", "aria-hidden": !0, className: "fill-current" }) }) }),
484
+ t
476
485
  ] });
477
- }), Ft = /* @__PURE__ */ f.forwardRef(function({ className: t, ...i }, a) {
486
+ }), Gi = /* @__PURE__ */ v.forwardRef(function({ className: i, ...t }, a) {
478
487
  return /* @__PURE__ */ e(
479
488
  E.Label,
480
489
  {
481
490
  ref: a,
482
- className: d("px-2 py-1.5 text-sm font-medium text-muted-foreground", t),
483
- ...i
491
+ className: d("px-2 py-1.5 hds-type-ui text-muted-foreground", i),
492
+ ...t
484
493
  }
485
494
  );
486
- }), _t = /* @__PURE__ */ f.forwardRef(function({ className: t, ...i }, a) {
495
+ }), ji = /* @__PURE__ */ v.forwardRef(function({ className: i, ...t }, a) {
487
496
  return /* @__PURE__ */ e(
488
497
  E.Separator,
489
498
  {
490
499
  ref: a,
491
- className: d("-mx-1 my-1 h-px bg-border", t),
492
- ...i
500
+ className: d("-mx-1 my-1 h-px bg-border", i),
501
+ ...t
493
502
  }
494
503
  );
495
- }), Gt = /* @__PURE__ */ f.forwardRef(function({ className: t, children: i, ...a }, r) {
504
+ }), Ui = /* @__PURE__ */ v.forwardRef(function({ className: i, children: t, ...a }, r) {
496
505
  return /* @__PURE__ */ g(
497
506
  E.SubTrigger,
498
507
  {
499
508
  ref: r,
500
- className: d(pe, "data-[state=open]:bg-accent", t),
509
+ className: d(ge, "data-[state=open]:bg-accent", i),
501
510
  ...a,
502
511
  children: [
503
- i,
504
- /* @__PURE__ */ e(M, { icon: be, size: 14, color: "currentColor", "aria-hidden": !0, className: "ml-auto" })
512
+ t,
513
+ /* @__PURE__ */ e(A, { icon: xe, size: 14, color: "currentColor", "aria-hidden": !0, className: "ml-auto" })
505
514
  ]
506
515
  }
507
516
  );
508
- }), Ot = /* @__PURE__ */ f.forwardRef(function({ className: t, container: i, ...a }, r) {
509
- return /* @__PURE__ */ e(Oe, { container: i, children: /* @__PURE__ */ e(E.SubContent, { ref: r, className: d(je, t), ...a }) });
510
- }), wa = /* @__PURE__ */ Object.assign(Vt, {
511
- Trigger: Lt,
512
- Content: Et,
513
- Item: Bt,
514
- CheckboxItem: Ht,
515
- RadioGroup: Mt,
516
- RadioItem: Wt,
517
- Label: Ft,
518
- Separator: _t,
519
- Group: It,
520
- Sub: At,
521
- SubTrigger: Gt,
522
- SubContent: Ot,
517
+ }), Yi = /* @__PURE__ */ v.forwardRef(function({ className: i, container: t, ...a }, r) {
518
+ return /* @__PURE__ */ e(Ue, { container: t, children: /* @__PURE__ */ e(E.SubContent, { ref: r, className: d(Ye, i), ...a }) });
519
+ }), Sa = /* @__PURE__ */ Object.assign(Mi, {
520
+ Trigger: Ai,
521
+ Content: Wi,
522
+ Item: Fi,
523
+ CheckboxItem: _i,
524
+ RadioGroup: Ei,
525
+ RadioItem: Oi,
526
+ Label: Gi,
527
+ Separator: ji,
528
+ Group: Hi,
529
+ Sub: Bi,
530
+ SubTrigger: Ui,
531
+ SubContent: Yi,
523
532
  // Set here, not by a later `Menu.displayName = …` write: a top-level
524
533
  // property write is a side effect that keeps the module alive.
525
534
  displayName: "Menu"
526
535
  });
527
- function jt(o) {
528
- return /* @__PURE__ */ e(ee.Root, { ...o });
536
+ function qi(o) {
537
+ return /* @__PURE__ */ e(ie.Root, { ...o });
529
538
  }
530
- const Ut = ee.Trigger, Yt = ee.Anchor, qt = ee.Close, Xt = /* @__PURE__ */ ne(ee.Portal), Kt = /* @__PURE__ */ f.forwardRef(function({ className: t, align: i = "center", sideOffset: a = 4, container: r, ...n }, s) {
531
- return /* @__PURE__ */ e(Xt, { container: r, children: /* @__PURE__ */ e(
532
- ee.Content,
539
+ const Xi = ie.Trigger, Ki = ie.Anchor, Ji = ie.Close, Zi = /* @__PURE__ */ se(ie.Portal), Qi = /* @__PURE__ */ v.forwardRef(function({ className: i, align: t = "center", sideOffset: a = 4, container: r, ...n }, s) {
540
+ return /* @__PURE__ */ e(Zi, { container: r, children: /* @__PURE__ */ e(
541
+ ie.Content,
533
542
  {
534
543
  ref: s,
535
- align: i,
544
+ align: t,
536
545
  sideOffset: a,
537
546
  collisionPadding: 8,
538
547
  className: d(
539
548
  "z-50 w-72 rounded-md border border-border bg-popover p-4",
540
549
  "text-popover-foreground shadow-overlay outline-none hds-focus",
541
- t
550
+ i
542
551
  ),
543
552
  ...n
544
553
  }
545
554
  ) });
546
- }), fe = /* @__PURE__ */ Object.assign(jt, {
547
- Trigger: Ut,
548
- Anchor: Yt,
549
- Content: Kt,
550
- Close: qt,
555
+ }), be = /* @__PURE__ */ Object.assign(qi, {
556
+ Trigger: Xi,
557
+ Anchor: Ki,
558
+ Content: Qi,
559
+ Close: Ji,
551
560
  // Set here, not by a later `Popover.displayName = …` write: a top-level
552
561
  // property write is a side effect that keeps the module alive.
553
562
  displayName: "Popover"
554
- }), Jt = /* @__PURE__ */ ne(Z.Portal), Zt = /* @__PURE__ */ f.forwardRef(function({ className: t, sideOffset: i = 6, children: a, container: r, ...n }, s) {
555
- return /* @__PURE__ */ e(Jt, { container: r, children: /* @__PURE__ */ g(
563
+ }), et = /* @__PURE__ */ se(Z.Portal), it = /* @__PURE__ */ v.forwardRef(function({ className: i, sideOffset: t = 6, children: a, container: r, ...n }, s) {
564
+ return /* @__PURE__ */ e(et, { container: r, children: /* @__PURE__ */ g(
556
565
  Z.Content,
557
566
  {
558
567
  ref: s,
559
- sideOffset: i,
568
+ sideOffset: t,
560
569
  collisionPadding: 8,
561
570
  className: d(
562
571
  "z-50 max-w-xs select-none px-2 py-1 shadow-floating",
563
572
  "bg-[var(--semantic-color-surface-inverse)] rounded-[var(--primitive-radius-4)]",
564
573
  // tier-ok: 4px primitive radius, no semantic 4px token
565
- t
574
+ i
566
575
  ),
567
576
  style: {
568
- ...N.typeStyles.caption,
577
+ ...z.typeStyles.caption,
569
578
  color: "var(--semantic-color-content-inverse)",
570
579
  margin: 0
571
580
  },
@@ -584,39 +593,41 @@ const Ut = ee.Trigger, Yt = ee.Anchor, qt = ee.Close, Xt = /* @__PURE__ */ ne(ee
584
593
  }
585
594
  ) });
586
595
  });
587
- function Qt({
596
+ function tt({
588
597
  delayDuration: o = 300,
589
- children: t,
590
- ...i
598
+ children: i,
599
+ ...t
591
600
  }) {
592
- return /* @__PURE__ */ e(Z.Provider, { delayDuration: o, children: /* @__PURE__ */ e(Z.Root, { ...i, children: t }) });
601
+ return /* @__PURE__ */ e(Z.Provider, { delayDuration: o, children: /* @__PURE__ */ e(Z.Root, { ...t, children: i }) });
593
602
  }
594
- const ka = /* @__PURE__ */ Object.assign(Qt, {
603
+ const Na = /* @__PURE__ */ Object.assign(tt, {
595
604
  Trigger: Z.Trigger,
596
- Content: Zt,
605
+ Content: it,
597
606
  // Set here, not by a later `Tooltip.displayName = …` write: a top-level
598
607
  // property write is a side effect that keeps the module alive.
599
608
  displayName: "Tooltip"
600
- }), ei = /* @__PURE__ */ $(
609
+ }), at = /* @__PURE__ */ $(
601
610
  "inline-flex max-w-[var(--semantic-typography-mono-max-width)] items-center whitespace-nowrap rounded-none border-0 bg-[var(--component-badge-bg)] px-[var(--semantic-space-subgrid-gap)] text-foreground [font-family:var(--semantic-typography-mono-font-family)] [font-size:var(--semantic-typography-mono-font-size)] [font-weight:var(--semantic-typography-mono-font-weight)] [letter-spacing:var(--semantic-typography-mono-letter-spacing)]",
602
611
  {
603
612
  variants: {
604
613
  density: {
605
614
  comfortable: "py-[var(--semantic-space-subgrid-gap)] align-[-0.08em] leading-[1]",
615
+ // type-ramp-ok: inline chip hugs the prose line box, so it keeps its own leading
606
616
  compact: "py-[var(--semantic-space-subgrid-hairline)] align-[-0.04em] leading-[0.95]"
617
+ // type-ramp-ok: compact chip in dense cells, same reason
607
618
  }
608
619
  },
609
620
  defaultVariants: { density: "comfortable" }
610
621
  }
611
622
  );
612
- function Sa({
623
+ function za({
613
624
  children: o,
614
- style: t,
615
- density: i,
625
+ style: i,
626
+ density: t,
616
627
  compact: a,
617
628
  copyable: r = !1
618
629
  }) {
619
- const [n, s] = j(!1), l = a !== void 0 ? a ? "compact" : "comfortable" : i ?? "comfortable";
630
+ const [n, s] = Y(!1), l = a !== void 0 ? a ? "compact" : "comfortable" : t ?? "comfortable";
620
631
  function p() {
621
632
  typeof o == "string" && navigator.clipboard.writeText(o).then(() => {
622
633
  s(!0), setTimeout(() => s(!1), 2e3);
@@ -626,8 +637,8 @@ function Sa({
626
637
  "code",
627
638
  {
628
639
  "data-density": l,
629
- className: ei({ density: l }),
630
- style: r ? void 0 : t,
640
+ className: at({ density: l }),
641
+ style: r ? void 0 : i,
631
642
  children: o
632
643
  }
633
644
  );
@@ -637,12 +648,12 @@ function Sa({
637
648
  style: {
638
649
  display: "inline-flex",
639
650
  alignItems: "center",
640
- gap: N.semantic.space.subgrid.gap,
641
- ...t
651
+ gap: z.semantic.space.subgrid.gap,
652
+ ...i
642
653
  },
643
654
  children: [
644
655
  /* @__PURE__ */ e(
645
- le,
656
+ me,
646
657
  {
647
658
  iconOnly: !0,
648
659
  size: "sm",
@@ -650,7 +661,7 @@ function Sa({
650
661
  "aria-label": n ? "Copied" : "Copy",
651
662
  onClick: p,
652
663
  style: n ? { color: "var(--semantic-color-content-accent)" } : void 0,
653
- iconLeft: /* @__PURE__ */ e(M, { icon: n ? re : rt, size: "small" })
664
+ iconLeft: /* @__PURE__ */ e(A, { icon: n ? oe : ni, size: "small" })
654
665
  }
655
666
  ),
656
667
  c
@@ -658,35 +669,35 @@ function Sa({
658
669
  }
659
670
  ) : c;
660
671
  }
661
- function Na({ href: o, children: t, externalIcon: i = !0 }) {
662
- const { LinkComponent: a } = Fe();
663
- return o.startsWith("/") ? /* @__PURE__ */ e(a, { to: o, className: "hds-link", children: t }) : /* @__PURE__ */ g("a", { href: o, target: "_blank", rel: "noopener noreferrer", className: "hds-focus hds-link", children: [
664
- t,
665
- i && /* @__PURE__ */ e(
666
- M,
672
+ function Ca({ href: o, children: i, externalIcon: t = !0 }) {
673
+ const { LinkComponent: a } = Oe();
674
+ return o.startsWith("/") ? /* @__PURE__ */ e(a, { to: o, className: "hds-link", children: i }) : /* @__PURE__ */ g("a", { href: o, target: "_blank", rel: "noopener noreferrer", className: "hds-focus hds-link", children: [
675
+ i,
676
+ t && /* @__PURE__ */ e(
677
+ A,
667
678
  {
668
- icon: nt,
679
+ icon: oi,
669
680
  size: 11,
670
681
  color: "currentColor",
671
682
  "aria-hidden": !0,
672
683
  style: {
673
684
  display: "inline",
674
685
  verticalAlign: "middle",
675
- marginLeft: N.semantic.space.subgrid.xs,
676
- marginBottom: N.semantic.space.subgrid.hairline
686
+ marginLeft: z.semantic.space.subgrid.xs,
687
+ marginBottom: z.semantic.space.subgrid.hairline
677
688
  }
678
689
  }
679
690
  )
680
691
  ] });
681
692
  }
682
- const ti = /* @__PURE__ */ $(
693
+ const Q = "w-full max-w-[var(--hds-form-control-max-width,40rem)]", rt = /* @__PURE__ */ $(
683
694
  "flex w-full rounded-md border bg-background text-foreground ring-offset-background transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground disabled:opacity-70",
684
695
  {
685
696
  variants: {
686
697
  size: {
687
- sm: "h-8 text-xs",
688
- md: "h-10 text-sm",
689
- lg: "h-12 text-base"
698
+ sm: "h-8 hds-type-caption",
699
+ md: "h-10 hds-type-ui",
700
+ lg: "h-12 hds-type-body"
690
701
  },
691
702
  textStyle: {
692
703
  body: "font-sans",
@@ -703,14 +714,14 @@ const ti = /* @__PURE__ */ $(
703
714
  invalid: !1
704
715
  }
705
716
  }
706
- ), ii = /* @__PURE__ */ $(
717
+ ), nt = /* @__PURE__ */ $(
707
718
  "relative flex w-full items-center rounded-md border bg-background text-foreground ring-offset-background transition-colors has-[input:focus-visible]:ring-2 has-[input:focus-visible]:ring-offset-2 has-[input:disabled]:cursor-not-allowed has-[input:disabled]:bg-muted has-[input:disabled]:opacity-70",
708
719
  {
709
720
  variants: {
710
721
  size: {
711
- sm: "h-8 text-xs",
712
- md: "h-10 text-sm",
713
- lg: "h-12 text-base"
722
+ sm: "h-8 hds-type-caption",
723
+ md: "h-10 hds-type-ui",
724
+ lg: "h-12 hds-type-body"
714
725
  },
715
726
  textStyle: {
716
727
  body: "font-sans",
@@ -727,12 +738,12 @@ const ti = /* @__PURE__ */ $(
727
738
  invalid: !1
728
739
  }
729
740
  }
730
- ), ai = "h-full border-0 bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 disabled:bg-transparent disabled:opacity-100", ri = /* @__PURE__ */ new Set([
741
+ ), ot = "h-full border-0 bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 disabled:bg-transparent disabled:opacity-100", st = /* @__PURE__ */ new Set([
731
742
  "number",
732
743
  "date",
733
744
  "time",
734
745
  "datetime-local"
735
- ]), ni = {
746
+ ]), lt = {
736
747
  sm: {
737
748
  restPadL: "pl-2",
738
749
  restPadR: "pr-2",
@@ -773,12 +784,12 @@ const ti = /* @__PURE__ */ $(
773
784
  suffixGap: "pr-2.5"
774
785
  }
775
786
  };
776
- function De(o) {
787
+ function Pe(o) {
777
788
  return o != null && typeof o != "boolean" && o !== "";
778
789
  }
779
- const za = /* @__PURE__ */ f.forwardRef(function({
780
- type: t = "text",
781
- size: i = "md",
790
+ const Da = /* @__PURE__ */ v.forwardRef(function({
791
+ type: i = "text",
792
+ size: t = "md",
782
793
  textStyle: a = "body",
783
794
  id: r,
784
795
  label: n,
@@ -795,37 +806,37 @@ const za = /* @__PURE__ */ f.forwardRef(function({
795
806
  inputClassName: S,
796
807
  onChange: h,
797
808
  ...C
798
- }, V) {
799
- const I = f.useId(), T = r ?? I, L = f.useRef(null), D = oe(), x = !!m || D === "error", P = b || D === "loading", B = !!k || P || D === "disabled", U = s ? `${T}-hint` : void 0, H = x && (y || D === "error") ? `${T}-error` : void 0, Y = [U, H].filter(Boolean).join(" ") || void 0, [te, ue] = f.useState(() => typeof C.defaultValue == "string" ? C.defaultValue : typeof C.defaultValue == "number" ? String(C.defaultValue) : ""), ie = typeof C.value == "string" ? C.value : typeof C.value == "number" ? String(C.value) : void 0, ae = ie ?? te, v = ni[i], z = !!l, W = !!p, X = De(c), K = De(u), me = X || K, we = !ri.has(t) && ae.length > 0 && !B && !P, qe = P || W || we;
800
- function Xe(F) {
801
- if (L.current = F, typeof V == "function") {
802
- V(F);
809
+ }, L) {
810
+ const I = v.useId(), T = r ?? I, V = v.useRef(null), D = le(), x = !!m || D === "error", R = b || D === "loading", B = !!k || R || D === "disabled", q = s ? `${T}-hint` : void 0, W = x && (y || D === "error") ? `${T}-error` : void 0, G = [q, W].filter(Boolean).join(" ") || void 0, [te, ae] = v.useState(() => typeof C.defaultValue == "string" ? C.defaultValue : typeof C.defaultValue == "number" ? String(C.defaultValue) : ""), ce = typeof C.value == "string" ? C.value : typeof C.value == "number" ? String(C.value) : void 0, de = ce ?? te, M = lt[t], re = !!l, K = !!p, f = Pe(c), N = Pe(u), F = f || N, ne = !st.has(i) && de.length > 0 && !B && !R, pe = R || K || ne;
811
+ function Ke(_) {
812
+ if (V.current = _, typeof L == "function") {
813
+ L(_);
803
814
  return;
804
815
  }
805
- V && (V.current = F);
816
+ L && (L.current = _);
806
817
  }
807
- function Ke() {
808
- var Ne;
809
- const F = L.current;
810
- if (!F) return;
811
- const ve = (Ne = Object.getOwnPropertyDescriptor(
818
+ function Je() {
819
+ var Ce;
820
+ const _ = V.current;
821
+ if (!_) return;
822
+ const he = (Ce = Object.getOwnPropertyDescriptor(
812
823
  window.HTMLInputElement.prototype,
813
824
  "value"
814
- )) == null ? void 0 : Ne.set;
815
- ve == null || ve.call(F, ""), F.dispatchEvent(new Event("input", { bubbles: !0 })), F.focus();
825
+ )) == null ? void 0 : Ce.set;
826
+ he == null || he.call(_, ""), _.dispatchEvent(new Event("input", { bubbles: !0 })), _.focus();
816
827
  }
817
- const Je = D || (P ? "loading" : B ? "disabled" : x ? "error" : ae.length > 0 ? "filled" : "default"), Ze = z ? v.leadPad : X ? v.prefixGap : v.restPadL, Qe = qe ? v.trailPad : K ? v.suffixGap : v.restPadR, ke = d(
828
+ const Ze = D || (R ? "loading" : B ? "disabled" : x ? "error" : de.length > 0 ? "filled" : "default"), Qe = re ? M.leadPad : f ? M.prefixGap : M.restPadL, ei = pe ? M.trailPad : N ? M.suffixGap : M.restPadR, Ne = d(
818
829
  "flex shrink-0 items-center whitespace-nowrap text-muted-foreground",
819
- v.iconWrap
820
- ), Se = /* @__PURE__ */ g("div", { className: me ? "relative min-w-0 flex-1 self-stretch" : "relative w-full", children: [
821
- z && /* @__PURE__ */ e(
830
+ M.iconWrap
831
+ ), ze = /* @__PURE__ */ g("div", { className: F ? "relative min-w-0 flex-1 self-stretch" : "relative w-full", children: [
832
+ re && /* @__PURE__ */ e(
822
833
  "span",
823
834
  {
824
835
  "aria-hidden": "true",
825
836
  className: d(
826
837
  "pointer-events-none absolute left-0 flex items-center text-muted-foreground",
827
- v.inset,
828
- v.iconWrap
838
+ M.inset,
839
+ M.iconWrap
829
840
  ),
830
841
  children: l
831
842
  }
@@ -833,80 +844,80 @@ const za = /* @__PURE__ */ f.forwardRef(function({
833
844
  /* @__PURE__ */ e(
834
845
  "input",
835
846
  {
836
- ref: Xe,
847
+ ref: Ke,
837
848
  id: T,
838
- type: t,
849
+ type: i,
839
850
  disabled: B,
840
851
  "aria-disabled": B || void 0,
841
- "aria-busy": P || void 0,
842
- "aria-describedby": Y,
843
- "aria-errormessage": H,
852
+ "aria-busy": R || void 0,
853
+ "aria-describedby": G,
854
+ "aria-errormessage": W,
844
855
  "aria-invalid": x || void 0,
845
- "data-state": Je,
846
- "data-size": i,
847
- "data-search-input": t === "search" ? "true" : void 0,
856
+ "data-state": Ze,
857
+ "data-size": t,
858
+ "data-search-input": i === "search" ? "true" : void 0,
848
859
  className: d(
849
- ti({ size: i, textStyle: a, invalid: x }),
850
- Ze,
860
+ rt({ size: t, textStyle: a, invalid: x }),
851
861
  Qe,
852
- me && ai,
862
+ ei,
863
+ F && ot,
853
864
  S
854
865
  ),
855
- onChange: (F) => {
856
- ie === void 0 && ue(F.target.value), h == null || h(F);
866
+ onChange: (_) => {
867
+ ce === void 0 && ae(_.target.value), h == null || h(_);
857
868
  },
858
869
  ...C
859
870
  }
860
871
  ),
861
- P && /* @__PURE__ */ e(
872
+ R && /* @__PURE__ */ e(
862
873
  "span",
863
874
  {
864
875
  "aria-hidden": "true",
865
876
  className: d(
866
877
  "pointer-events-none absolute right-0 flex items-center text-muted-foreground",
867
- v.inset
878
+ M.inset
868
879
  ),
869
- children: /* @__PURE__ */ e(ot, { className: d("animate-spin", v.iconClass) })
880
+ children: /* @__PURE__ */ e(si, { className: d("animate-spin", M.iconClass) })
870
881
  }
871
882
  ),
872
- !P && W && /* @__PURE__ */ e(
883
+ !R && K && /* @__PURE__ */ e(
873
884
  "span",
874
885
  {
875
886
  "aria-hidden": "true",
876
887
  className: d(
877
888
  "pointer-events-none absolute right-0 flex items-center text-muted-foreground",
878
- v.inset,
879
- v.iconWrap
889
+ M.inset,
890
+ M.iconWrap
880
891
  ),
881
892
  children: p
882
893
  }
883
894
  ),
884
- !P && !W && we && /* @__PURE__ */ e(
895
+ !R && !K && ne && /* @__PURE__ */ e(
885
896
  "button",
886
897
  {
887
898
  type: "button",
888
- onClick: Ke,
889
- "aria-label": t === "search" ? "Clear search" : "Clear input",
899
+ onClick: Je,
900
+ "aria-label": i === "search" ? "Clear search" : "Clear input",
890
901
  className: d(
891
902
  "absolute right-0 flex items-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm",
892
- v.inset
903
+ M.inset
893
904
  ),
894
- children: /* @__PURE__ */ e(ce, { className: v.iconClass, "aria-hidden": "true" })
905
+ children: /* @__PURE__ */ e(ve, { className: M.iconClass, "aria-hidden": "true" })
895
906
  }
896
907
  )
897
908
  ] });
898
- return /* @__PURE__ */ g("div", { className: d("flex flex-col gap-1.5", w), children: [
899
- n && /* @__PURE__ */ e("label", { htmlFor: T, className: "text-xs font-medium text-muted-foreground", children: n }),
900
- me ? /* @__PURE__ */ g("div", { className: ii({ size: i, textStyle: a, invalid: x }), children: [
901
- X && /* @__PURE__ */ e("span", { className: d(ke, v.prefixPad), children: c }),
902
- Se,
903
- K && /* @__PURE__ */ e("span", { className: d(ke, v.suffixPad), children: u })
904
- ] }) : Se,
905
- s && !H && /* @__PURE__ */ e("span", { id: U, className: "text-xs text-muted-foreground", children: s }),
906
- x && (y || D === "error") && /* @__PURE__ */ e("span", { id: H, role: "alert", className: "text-xs text-destructive", children: y || "Field error" })
909
+ return /* @__PURE__ */ g("div", { className: d("flex flex-col gap-1.5", Q, w), children: [
910
+ n && /* @__PURE__ */ e("label", { htmlFor: T, className: "hds-type-ui text-foreground", children: n }),
911
+ F ? /* @__PURE__ */ g("div", { className: nt({ size: t, textStyle: a, invalid: x }), children: [
912
+ f && /* @__PURE__ */ e("span", { className: d(Ne, M.prefixPad), children: c }),
913
+ ze,
914
+ N && /* @__PURE__ */ e("span", { className: d(Ne, M.suffixPad), children: u })
915
+ ] }) : ze,
916
+ s && !W && /* @__PURE__ */ e("span", { id: q, className: "hds-type-caption text-muted-foreground", children: s }),
917
+ x && (y || D === "error") && /* @__PURE__ */ e("span", { id: W, role: "alert", className: "hds-type-caption text-destructive", children: y || "Field error" })
907
918
  ] });
908
- }), oi = /* @__PURE__ */ $(
909
- "flex w-full rounded-md border bg-background px-3 py-2 text-sm text-foreground ring-offset-background transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground disabled:opacity-70",
919
+ }), ct = /* @__PURE__ */ $(
920
+ "flex w-full rounded-md border bg-background px-3 py-2 hds-type-ui text-foreground ring-offset-background transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground disabled:opacity-70",
910
921
  {
911
922
  variants: {
912
923
  resize: {
@@ -924,10 +935,10 @@ const za = /* @__PURE__ */ f.forwardRef(function({
924
935
  invalid: !1
925
936
  }
926
937
  }
927
- ), Ca = /* @__PURE__ */ f.forwardRef(
938
+ ), Ta = /* @__PURE__ */ v.forwardRef(
928
939
  function({
929
- id: t,
930
- label: i,
940
+ id: i,
941
+ label: t,
931
942
  helperText: a,
932
943
  error: r,
933
944
  errorMessage: n,
@@ -938,9 +949,9 @@ const za = /* @__PURE__ */ f.forwardRef(function({
938
949
  textareaClassName: u,
939
950
  ...m
940
951
  }, y) {
941
- const k = f.useId(), b = t ?? k, w = !!r, S = a ? `${b}-hint` : void 0, h = w && n ? `${b}-error` : void 0, C = [S, h].filter(Boolean).join(" ") || void 0, V = s ? "disabled" : w ? "error" : "default";
942
- return /* @__PURE__ */ g("div", { className: d("flex flex-col gap-1.5", c), children: [
943
- i && /* @__PURE__ */ e("label", { htmlFor: b, className: "text-xs font-medium text-muted-foreground", children: i }),
952
+ const k = v.useId(), b = i ?? k, w = !!r, S = a ? `${b}-hint` : void 0, h = w && n ? `${b}-error` : void 0, C = [S, h].filter(Boolean).join(" ") || void 0, L = s ? "disabled" : w ? "error" : "default";
953
+ return /* @__PURE__ */ g("div", { className: d("flex flex-col gap-1.5", Q, c), children: [
954
+ t && /* @__PURE__ */ e("label", { htmlFor: b, className: "hds-type-ui text-foreground", children: t }),
944
955
  /* @__PURE__ */ e(
945
956
  "textarea",
946
957
  {
@@ -952,21 +963,21 @@ const za = /* @__PURE__ */ f.forwardRef(function({
952
963
  "aria-describedby": C,
953
964
  "aria-errormessage": h,
954
965
  "aria-invalid": w || void 0,
955
- "data-state": V,
956
- className: d(oi({ resize: l, invalid: w }), u),
966
+ "data-state": L,
967
+ className: d(ct({ resize: l, invalid: w }), u),
957
968
  ...m
958
969
  }
959
970
  ),
960
- a && !h && /* @__PURE__ */ e("span", { id: S, className: "text-xs text-muted-foreground", children: a }),
961
- w && n && /* @__PURE__ */ e("span", { id: h, role: "alert", className: "text-xs text-destructive", children: n })
971
+ a && !h && /* @__PURE__ */ e("span", { id: S, className: "hds-type-caption text-muted-foreground", children: a }),
972
+ w && n && /* @__PURE__ */ e("span", { id: h, role: "alert", className: "hds-type-caption text-destructive", children: n })
962
973
  ] });
963
974
  }
964
975
  );
965
- function xe({
976
+ function ke({
966
977
  disabled: o,
967
- frozenState: t = null
978
+ frozenState: i = null
968
979
  }) {
969
- const [i, a] = j(!1), [r, n] = j(!1), [s, l] = j(!1), p = o === !0 || t === "disabled", c = t ?? (p ? "disabled" : r ? "pressed" : i ? "hover" : s ? "focused" : "rest");
980
+ const [t, a] = Y(!1), [r, n] = Y(!1), [s, l] = Y(!1), p = o === !0 || i === "disabled", c = i ?? (p ? "disabled" : r ? "pressed" : t ? "hover" : s ? "focused" : "rest");
970
981
  return {
971
982
  visualState: c,
972
983
  isHover: c === "hover",
@@ -988,8 +999,8 @@ function xe({
988
999
  }
989
1000
  };
990
1001
  }
991
- const si = /* @__PURE__ */ $(
992
- "relative inline-flex items-center gap-[var(--semantic-space-subgrid-gap)] rounded-md py-[var(--semantic-space-subgrid-gap)] px-[var(--semantic-space-scale-xs)] select-none",
1002
+ const dt = /* @__PURE__ */ $(
1003
+ "relative inline-flex items-center gap-[var(--semantic-space-subgrid-gap)] rounded-md py-[var(--semantic-space-subgrid-gap)] select-none hds-touch-row",
993
1004
  {
994
1005
  variants: {
995
1006
  state: {
@@ -1002,7 +1013,7 @@ const si = /* @__PURE__ */ $(
1002
1013
  },
1003
1014
  defaultVariants: { state: "rest" }
1004
1015
  }
1005
- ), li = /* @__PURE__ */ $("absolute inset-0 m-0 opacity-0", {
1016
+ ), pt = /* @__PURE__ */ $("absolute inset-0 m-0 opacity-0", {
1006
1017
  variants: {
1007
1018
  state: {
1008
1019
  rest: "cursor-pointer",
@@ -1013,7 +1024,7 @@ const si = /* @__PURE__ */ $(
1013
1024
  }
1014
1025
  },
1015
1026
  defaultVariants: { state: "rest" }
1016
- }), ci = /* @__PURE__ */ $(
1027
+ }), ut = /* @__PURE__ */ $(
1017
1028
  "inline-flex shrink-0 items-center justify-center w-[var(--semantic-size-control-md)] h-[var(--semantic-size-control-md)] rounded-[var(--semantic-radius-control)] border-solid border-[length:var(--semantic-borderWidth-emphasis)] outline-offset-2",
1018
1029
  {
1019
1030
  variants: {
@@ -1062,22 +1073,23 @@ const si = /* @__PURE__ */ $(
1062
1073
  defaultVariants: { state: "rest", on: !1 }
1063
1074
  }
1064
1075
  );
1065
- function di(o, t) {
1066
- typeof o == "function" ? o(t) : o && (o.current = t);
1076
+ function mt(o, i) {
1077
+ typeof o == "function" ? o(i) : o && (o.current = i);
1067
1078
  }
1068
- const Da = /* @__PURE__ */ Q(
1069
- function({ label: t, checked: i, onChange: a, indeterminate: r = !1, onFocus: n, onBlur: s, disabled: l, ...p }, c) {
1070
- const u = ge(null), m = oe(), { visualState: y, isHover: k, isFocused: b, isPressed: w, isDisabled: S, handlers: h } = xe({
1079
+ const Ra = /* @__PURE__ */ ee(
1080
+ function({ label: i, checked: t, onChange: a, indeterminate: r = !1, onFocus: n, onBlur: s, disabled: l, ...p }, c) {
1081
+ const u = $e(null), m = le(), { visualState: y, isHover: k, isFocused: b, isPressed: w, isDisabled: S, handlers: h } = ke({
1071
1082
  disabled: l,
1072
1083
  frozenState: m
1073
1084
  });
1074
- tt(() => {
1085
+ ti(() => {
1075
1086
  u.current && (u.current.indeterminate = r);
1076
1087
  }, [r]);
1077
- const C = i || r, V = S ? "var(--semantic-color-content-disabled)" : "var(--semantic-color-content-onAccent)", I = G("productive");
1088
+ const C = t || r, L = S ? "var(--semantic-color-content-disabled)" : "var(--semantic-color-content-onAccent)", I = j("productive");
1078
1089
  return /* @__PURE__ */ g(
1079
- A.label,
1090
+ H.label,
1080
1091
  {
1092
+ tabIndex: -1,
1081
1093
  whileTap: S ? void 0 : { scale: 0.99 },
1082
1094
  transition: { duration: I.duration, ease: I.easing },
1083
1095
  onMouseEnter: h.onMouseEnter,
@@ -1085,18 +1097,18 @@ const Da = /* @__PURE__ */ Q(
1085
1097
  onPointerDown: h.onPointerDown,
1086
1098
  onPointerUp: h.onPointerUp,
1087
1099
  onPointerCancel: h.onPointerCancel,
1088
- className: si({ state: y }),
1100
+ className: dt({ state: y }),
1089
1101
  children: [
1090
1102
  /* @__PURE__ */ e(
1091
1103
  "input",
1092
1104
  {
1093
1105
  ref: (T) => {
1094
- u.current = T, di(c, T);
1106
+ u.current = T, mt(c, T);
1095
1107
  },
1096
1108
  type: "checkbox",
1097
- checked: i,
1109
+ checked: t,
1098
1110
  disabled: S,
1099
- "aria-checked": r ? "mixed" : i,
1111
+ "aria-checked": r ? "mixed" : t,
1100
1112
  onChange: (T) => a(T.target.checked),
1101
1113
  onFocus: (T) => {
1102
1114
  h.onFocus(), n == null || n(T);
@@ -1104,12 +1116,12 @@ const Da = /* @__PURE__ */ Q(
1104
1116
  onBlur: (T) => {
1105
1117
  h.onBlur(), s == null || s(T);
1106
1118
  },
1107
- className: li({ state: y }),
1119
+ className: pt({ state: y }),
1108
1120
  ...p
1109
1121
  }
1110
1122
  ),
1111
1123
  /* @__PURE__ */ e(
1112
- A.span,
1124
+ H.span,
1113
1125
  {
1114
1126
  "aria-hidden": "true",
1115
1127
  animate: { scale: w ? 0.94 : k || b ? 1.04 : 1 },
@@ -1117,34 +1129,34 @@ const Da = /* @__PURE__ */ Q(
1117
1129
  duration: I.duration,
1118
1130
  ease: I.easing
1119
1131
  },
1120
- className: ci({ state: y, on: C }),
1132
+ className: ut({ state: y, on: C }),
1121
1133
  style: {
1122
1134
  transition: `background-color ${I.duration}s ease, border-color ${I.duration}s ease`
1123
1135
  },
1124
- children: r ? /* @__PURE__ */ e(M, { icon: st, size: 14, color: V, "aria-hidden": !0 }) : i ? /* @__PURE__ */ e(M, { icon: re, size: 14, color: V, "aria-hidden": !0 }) : null
1136
+ children: r ? /* @__PURE__ */ e(A, { icon: li, size: 14, color: L, "aria-hidden": !0 }) : t ? /* @__PURE__ */ e(A, { icon: oe, size: 14, color: L, "aria-hidden": !0 }) : null
1125
1137
  }
1126
1138
  ),
1127
1139
  /* @__PURE__ */ e(
1128
- A.span,
1140
+ H.span,
1129
1141
  {
1130
1142
  className: "text-secondary",
1131
- animate: { x: w ? N.space.px1 : 0 },
1143
+ animate: { x: w ? z.space.px1 : 0 },
1132
1144
  transition: {
1133
1145
  duration: I.duration,
1134
1146
  ease: I.easing
1135
1147
  },
1136
1148
  style: {
1137
- ...N.typeStyles.ui,
1149
+ ...z.typeStyles.ui,
1138
1150
  color: S ? "var(--semantic-color-content-disabled)" : "var(--semantic-color-content-primary)"
1139
1151
  },
1140
- children: t
1152
+ children: i
1141
1153
  }
1142
1154
  )
1143
1155
  ]
1144
1156
  }
1145
1157
  );
1146
1158
  }
1147
- ), pi = /* @__PURE__ */ $("absolute inset-0 m-0 opacity-0", {
1159
+ ), vt = /* @__PURE__ */ $("absolute inset-0 m-0 opacity-0", {
1148
1160
  variants: {
1149
1161
  state: {
1150
1162
  rest: "cursor-pointer",
@@ -1155,8 +1167,8 @@ const Da = /* @__PURE__ */ Q(
1155
1167
  }
1156
1168
  },
1157
1169
  defaultVariants: { state: "rest" }
1158
- }), ui = /* @__PURE__ */ $(
1159
- "relative inline-flex items-center gap-[var(--semantic-space-subgrid-gap)] select-none",
1170
+ }), ft = /* @__PURE__ */ $(
1171
+ "relative inline-flex items-center gap-[var(--semantic-space-subgrid-gap)] py-[var(--semantic-space-subgrid-gap)] select-none hds-touch-row",
1160
1172
  {
1161
1173
  variants: {
1162
1174
  state: {
@@ -1169,7 +1181,7 @@ const Da = /* @__PURE__ */ Q(
1169
1181
  },
1170
1182
  defaultVariants: { state: "rest" }
1171
1183
  }
1172
- ), mi = /* @__PURE__ */ $(
1184
+ ), gt = /* @__PURE__ */ $(
1173
1185
  // tier-ok: primitive.size.20 / primitive.radius.full mirror checkbox's glyph box model 1:1 — no semantic alias for either
1174
1186
  "inline-flex shrink-0 items-center justify-center w-[var(--primitive-size-20)] h-[var(--primitive-size-20)] rounded-[var(--primitive-radius-full)] border-solid border-[length:var(--primitive-borderWidth-sm)]",
1175
1187
  {
@@ -1210,7 +1222,7 @@ const Da = /* @__PURE__ */ Q(
1210
1222
  ],
1211
1223
  defaultVariants: { state: "rest", on: !1 }
1212
1224
  }
1213
- ), vi = /* @__PURE__ */ $(
1225
+ ), ht = /* @__PURE__ */ $(
1214
1226
  // `inline-block` is the other half of the #225 fix: the dot's declared
1215
1227
  // width/height are ignored under the browser's default `display: inline`.
1216
1228
  // tier-ok: radius-full (9999px) is the mathematical "fully round" constant — one possible value, not a design-scale choice. hds#186/hds#242
@@ -1224,9 +1236,9 @@ const Da = /* @__PURE__ */ Q(
1224
1236
  },
1225
1237
  defaultVariants: { disabled: !1 }
1226
1238
  }
1227
- ), Ta = /* @__PURE__ */ Q(function({
1228
- label: t,
1229
- checked: i,
1239
+ ), Pa = /* @__PURE__ */ ee(function({
1240
+ label: i,
1241
+ checked: t,
1230
1242
  onChange: a,
1231
1243
  disabled: r,
1232
1244
  style: n,
@@ -1240,141 +1252,141 @@ const Da = /* @__PURE__ */ Q(
1240
1252
  onBlur: k,
1241
1253
  ...b
1242
1254
  }, w) {
1243
- const S = oe(), { visualState: h, isHover: C, isFocused: V, isPressed: I, isDisabled: T, handlers: L } = xe({
1255
+ const S = le(), { visualState: h, isHover: C, isFocused: L, isPressed: I, isDisabled: T, handlers: V } = ke({
1244
1256
  disabled: r,
1245
1257
  frozenState: S
1246
- }), R = G("productive"), D = G("expressive");
1258
+ }), P = j("productive"), D = j("expressive");
1247
1259
  return /* @__PURE__ */ g(
1248
- A.label,
1260
+ H.label,
1249
1261
  {
1262
+ tabIndex: -1,
1250
1263
  whileTap: T ? void 0 : { scale: 0.99 },
1251
- transition: { duration: R.duration, ease: R.easing },
1252
- className: ui({ state: h }),
1264
+ transition: { duration: P.duration, ease: P.easing },
1265
+ className: ft({ state: h }),
1253
1266
  children: [
1254
1267
  /* @__PURE__ */ e(
1255
1268
  "input",
1256
1269
  {
1257
1270
  ref: w,
1258
1271
  type: "radio",
1259
- checked: i,
1272
+ checked: t,
1260
1273
  disabled: T,
1261
1274
  onChange: (x) => a(x.target.checked),
1262
1275
  onMouseEnter: (x) => {
1263
- L.onMouseEnter(), l == null || l(x);
1276
+ V.onMouseEnter(), l == null || l(x);
1264
1277
  },
1265
1278
  onMouseLeave: (x) => {
1266
- L.onMouseLeave(), p == null || p(x);
1279
+ V.onMouseLeave(), p == null || p(x);
1267
1280
  },
1268
1281
  onPointerDown: (x) => {
1269
- L.onPointerDown(), c == null || c(x);
1282
+ V.onPointerDown(), c == null || c(x);
1270
1283
  },
1271
1284
  onPointerUp: (x) => {
1272
- L.onPointerUp(), u == null || u(x);
1285
+ V.onPointerUp(), u == null || u(x);
1273
1286
  },
1274
1287
  onPointerCancel: (x) => {
1275
- L.onPointerCancel(), m == null || m(x);
1288
+ V.onPointerCancel(), m == null || m(x);
1276
1289
  },
1277
1290
  onFocus: (x) => {
1278
- L.onFocus(), y == null || y(x);
1291
+ V.onFocus(), y == null || y(x);
1279
1292
  },
1280
1293
  onBlur: (x) => {
1281
- L.onBlur(), k == null || k(x);
1294
+ V.onBlur(), k == null || k(x);
1282
1295
  },
1283
- className: d("hds-focus", pi({ state: h })),
1296
+ className: d("hds-focus", vt({ state: h })),
1284
1297
  ...b
1285
1298
  }
1286
1299
  ),
1287
1300
  /* @__PURE__ */ e(
1288
- A.span,
1301
+ H.span,
1289
1302
  {
1290
1303
  "aria-hidden": "true",
1291
- className: mi({ state: h, on: i }),
1304
+ className: gt({ state: h, on: t }),
1292
1305
  animate: {
1293
- scale: I ? 0.94 : C || V ? 1.04 : 1
1306
+ scale: I ? 0.94 : C || L ? 1.04 : 1
1294
1307
  },
1295
1308
  transition: {
1296
- duration: R.duration,
1297
- ease: R.easing
1309
+ duration: P.duration,
1310
+ ease: P.easing
1298
1311
  },
1299
1312
  style: {
1300
- transition: `background-color ${R.duration}s ease, border-color ${R.duration}s ease`
1313
+ transition: `background-color ${P.duration}s ease, border-color ${P.duration}s ease`
1301
1314
  },
1302
- children: i && /* @__PURE__ */ e(
1303
- A.span,
1315
+ children: t && /* @__PURE__ */ e(
1316
+ H.span,
1304
1317
  {
1305
1318
  initial: { scale: 0.4, opacity: 0 },
1306
1319
  animate: { scale: 1, opacity: 1 },
1307
1320
  exit: { scale: 0.4, opacity: 0 },
1308
1321
  transition: {
1309
1322
  duration: D.duration,
1310
- ease: R.easing
1323
+ ease: P.easing
1311
1324
  },
1312
- className: vi({ disabled: T })
1325
+ className: ht({ disabled: T })
1313
1326
  }
1314
1327
  )
1315
1328
  }
1316
1329
  ),
1317
1330
  /* @__PURE__ */ e(
1318
- A.span,
1331
+ H.span,
1319
1332
  {
1320
1333
  animate: {
1321
- x: I ? N.space.px1 : 0
1334
+ x: I ? z.space.px1 : 0
1322
1335
  },
1323
1336
  transition: {
1324
- duration: R.duration,
1325
- ease: R.easing
1337
+ duration: P.duration,
1338
+ ease: P.easing
1326
1339
  },
1327
1340
  style: {
1328
- ...N.typeStyles.ui,
1341
+ ...z.typeStyles.ui,
1329
1342
  color: T ? "var(--semantic-color-content-disabled)" : "var(--semantic-color-content-primary)"
1330
1343
  },
1331
- children: t
1344
+ children: i
1332
1345
  }
1333
1346
  )
1334
1347
  ]
1335
1348
  }
1336
1349
  );
1337
- }), Pa = /* @__PURE__ */ Q(function({ label: t, min: i, max: a, step: r = 1, value: n, onChange: s }, l) {
1338
- const [p, c] = j(!1), u = a - i, y = `${(u <= 0 ? 0 : Math.min(Math.max((n - i) / u, 0), 1)) * 100}%`, k = G("productive"), b = G("expressive");
1350
+ }), La = /* @__PURE__ */ ee(function({ label: i, min: t, max: a, step: r = 1, value: n, onChange: s }, l) {
1351
+ const [p, c] = Y(!1), u = a - t, y = `${(u <= 0 ? 0 : Math.min(Math.max((n - t) / u, 0), 1)) * 100}%`, k = j("productive"), b = j("expressive");
1339
1352
  return (
1340
1353
  // eslint-disable-next-line tailwindcss/no-arbitrary-value -- token-driven gap; var()-based, no Tailwind-theme utility exists
1341
- /* @__PURE__ */ g("div", { className: "flex flex-col gap-[var(--semantic-space-scale-xs)]", children: [
1354
+ /* @__PURE__ */ g("div", { className: `flex flex-col gap-[var(--semantic-space-scale-xs)] ${Q}`, children: [
1342
1355
  /* @__PURE__ */ g("div", { className: "flex justify-between items-baseline gap-[var(--semantic-space-scale-xs)]", children: [
1343
1356
  /* @__PURE__ */ e(
1344
1357
  "label",
1345
1358
  {
1346
1359
  style: {
1347
- ...N.typeStyles.ui,
1360
+ ...z.typeStyles.ui,
1348
1361
  color: "var(--semantic-color-content-primary)"
1349
1362
  },
1350
- children: t
1363
+ children: i
1351
1364
  }
1352
1365
  ),
1353
1366
  /* @__PURE__ */ e(
1354
- A.span,
1367
+ H.span,
1355
1368
  {
1356
1369
  className: "text-secondary shrink-0",
1357
- initial: { opacity: 0.72, y: N.space.px2 },
1370
+ initial: { opacity: 0.72, y: z.space.px2 },
1358
1371
  animate: { opacity: 1, y: 0 },
1359
1372
  transition: {
1360
1373
  duration: k.duration,
1361
1374
  ease: k.easing
1362
1375
  },
1363
- style: { ...N.typeStyles.technical },
1376
+ style: { ...z.typeStyles.mono },
1364
1377
  children: n
1365
1378
  },
1366
1379
  n
1367
1380
  )
1368
1381
  ] }),
1369
- /* @__PURE__ */ g(A.div, { className: "relative h-[var(--semantic-size-control-md)] grid items-center", children: [
1382
+ /* @__PURE__ */ g(H.div, { className: "relative h-[var(--semantic-size-control-md)] grid items-center", children: [
1370
1383
  /* @__PURE__ */ e(
1371
- Be,
1384
+ "div",
1372
1385
  {
1373
1386
  "aria-hidden": "true",
1374
- padding: "component",
1375
- className: "absolute [inset-inline:0] top-1/2 h-[var(--semantic-size-control-sm)] -translate-y-1/2 bg-[var(--semantic-color-border-default)] overflow-hidden",
1387
+ className: "absolute [inset-inline:0] top-1/2 h-[var(--semantic-size-control-sm)] -translate-y-1/2 rounded-[var(--primitive-radius-full)] bg-[var(--semantic-color-border-default)] overflow-hidden",
1376
1388
  children: /* @__PURE__ */ e(
1377
- A.div,
1389
+ H.div,
1378
1390
  {
1379
1391
  animate: {
1380
1392
  width: y,
@@ -1394,8 +1406,8 @@ const Da = /* @__PURE__ */ Q(
1394
1406
  {
1395
1407
  ref: l,
1396
1408
  type: "range",
1397
- "aria-label": t,
1398
- min: i,
1409
+ "aria-label": i,
1410
+ min: t,
1399
1411
  max: a,
1400
1412
  step: r,
1401
1413
  value: n,
@@ -1410,8 +1422,8 @@ const Da = /* @__PURE__ */ Q(
1410
1422
  ] })
1411
1423
  ] })
1412
1424
  );
1413
- }), ye = (o) => parseFloat(o), fi = ye($e.primitive.size[40]), gi = ye($e.primitive.size[20]), Ue = ye($e.primitive.size[16]), hi = (gi - Ue) / 2, bi = fi - Ue - hi * 2, $i = /* @__PURE__ */ $(
1414
- "relative inline-flex items-center gap-[var(--semantic-space-subgrid-gap)] rounded-md py-[var(--semantic-space-subgrid-gap)] px-[var(--semantic-space-scale-xs)] outline-offset-2 select-none",
1425
+ }), Se = (o) => parseFloat(o), bt = Se(we.primitive.size[40]), $t = Se(we.primitive.size[20]), qe = Se(we.primitive.size[16]), yt = ($t - qe) / 2, xt = bt - qe - yt * 2, wt = /* @__PURE__ */ $(
1426
+ "relative inline-flex items-center gap-[var(--semantic-space-subgrid-gap)] rounded-md py-[var(--semantic-space-subgrid-gap)] outline-offset-2 select-none hds-touch-row",
1415
1427
  {
1416
1428
  variants: {
1417
1429
  state: {
@@ -1424,7 +1436,7 @@ const Da = /* @__PURE__ */ Q(
1424
1436
  },
1425
1437
  defaultVariants: { state: "rest" }
1426
1438
  }
1427
- ), xi = /* @__PURE__ */ $("absolute inset-0 m-0 opacity-0", {
1439
+ ), kt = /* @__PURE__ */ $("absolute inset-0 m-0 opacity-0", {
1428
1440
  variants: {
1429
1441
  state: {
1430
1442
  rest: "cursor-pointer",
@@ -1435,7 +1447,7 @@ const Da = /* @__PURE__ */ Q(
1435
1447
  }
1436
1448
  },
1437
1449
  defaultVariants: { state: "rest" }
1438
- }), yi = /* @__PURE__ */ $(
1450
+ }), St = /* @__PURE__ */ $(
1439
1451
  // tier-ok: primitive.size.40 / primitive.size.20 / primitive.radius.full — no semantic alias for toggle-track geometry yet (same gap as checkbox/radio's glyph sizing)
1440
1452
  "inline-flex shrink-0 items-center rounded-[var(--primitive-radius-full)] border-solid border-[length:var(--primitive-borderWidth-sm)] p-[var(--semantic-space-subgrid-xs)] w-[var(--primitive-size-40)] h-[var(--primitive-size-20)]",
1441
1453
  {
@@ -1471,17 +1483,18 @@ const Da = /* @__PURE__ */ Q(
1471
1483
  ],
1472
1484
  defaultVariants: { on: !1, disabled: !1 }
1473
1485
  }
1474
- ), wi = /* @__PURE__ */ $(
1486
+ ), Nt = /* @__PURE__ */ $(
1475
1487
  // tier-ok: primitive.size.16 / primitive.radius.full — no semantic alias for toggle-thumb geometry yet
1476
1488
  "pointer-events-none block w-[var(--primitive-size-16)] h-[var(--primitive-size-16)] rounded-[var(--primitive-radius-full)] bg-[var(--semantic-color-surface-page)]"
1477
- ), Ra = /* @__PURE__ */ Q(function({ label: t, checked: i, onChange: a, onFocus: r, onBlur: n, disabled: s, ...l }, p) {
1478
- const c = oe(), { visualState: u, isHover: m, isFocused: y, isPressed: k, isDisabled: b, handlers: w } = xe({
1489
+ ), Va = /* @__PURE__ */ ee(function({ label: i, checked: t, onChange: a, onFocus: r, onBlur: n, disabled: s, ...l }, p) {
1490
+ const c = le(), { visualState: u, isHover: m, isFocused: y, isPressed: k, isDisabled: b, handlers: w } = ke({
1479
1491
  disabled: s,
1480
1492
  frozenState: c
1481
- }), S = G("productive");
1493
+ }), S = j("productive");
1482
1494
  return /* @__PURE__ */ g(
1483
- A.label,
1495
+ H.label,
1484
1496
  {
1497
+ tabIndex: -1,
1485
1498
  whileTap: b ? void 0 : { scale: 0.99 },
1486
1499
  transition: { duration: S.duration, ease: S.easing },
1487
1500
  onMouseEnter: w.onMouseEnter,
@@ -1490,16 +1503,17 @@ const Da = /* @__PURE__ */ Q(
1490
1503
  onPointerUp: w.onPointerUp,
1491
1504
  onPointerCancel: w.onPointerCancel,
1492
1505
  animate: {
1493
- y: k ? N.space.px1 : 0
1506
+ y: k ? z.space.px1 : 0
1494
1507
  },
1495
- className: $i({ state: u }),
1508
+ className: wt({ state: u }),
1496
1509
  children: [
1497
1510
  /* @__PURE__ */ e(
1498
1511
  "input",
1499
1512
  {
1500
1513
  ref: p,
1501
1514
  type: "checkbox",
1502
- checked: i,
1515
+ role: "switch",
1516
+ checked: t,
1503
1517
  disabled: b,
1504
1518
  onChange: (h) => a(h.target.checked),
1505
1519
  onFocus: (h) => {
@@ -1508,12 +1522,12 @@ const Da = /* @__PURE__ */ Q(
1508
1522
  onBlur: (h) => {
1509
1523
  w.onBlur(), n == null || n(h);
1510
1524
  },
1511
- className: d("hds-focus", xi({ state: u })),
1525
+ className: d("hds-focus", kt({ state: u })),
1512
1526
  ...l
1513
1527
  }
1514
1528
  ),
1515
1529
  /* @__PURE__ */ e(
1516
- A.span,
1530
+ H.span,
1517
1531
  {
1518
1532
  "aria-hidden": "true",
1519
1533
  animate: {
@@ -1526,64 +1540,67 @@ const Da = /* @__PURE__ */ Q(
1526
1540
  style: {
1527
1541
  transition: `background-color ${S.duration}s ease, border-color ${S.duration}s ease`
1528
1542
  },
1529
- className: yi({ on: i, disabled: b }),
1543
+ className: St({ on: t, disabled: b }),
1530
1544
  children: /* @__PURE__ */ e(
1531
- A.span,
1545
+ H.span,
1532
1546
  {
1533
- animate: { x: i ? bi : 0 },
1547
+ animate: { x: t ? xt : 0 },
1534
1548
  transition: {
1535
1549
  duration: S.duration,
1536
1550
  ease: S.easing
1537
1551
  },
1538
- className: wi()
1552
+ className: Nt()
1539
1553
  }
1540
1554
  )
1541
1555
  }
1542
1556
  ),
1543
1557
  /* @__PURE__ */ e(
1544
- A.span,
1558
+ H.span,
1545
1559
  {
1546
1560
  className: "text-secondary",
1547
1561
  animate: {
1548
- x: k ? N.space.px1 : 0
1562
+ x: k ? z.space.px1 : 0
1549
1563
  },
1550
1564
  transition: {
1551
1565
  duration: S.duration,
1552
1566
  ease: S.easing
1553
1567
  },
1554
1568
  style: {
1555
- ...N.typeStyles.ui,
1569
+ ...z.typeStyles.ui,
1556
1570
  color: b ? "var(--semantic-color-content-disabled)" : "var(--semantic-color-content-primary)"
1557
1571
  },
1558
- children: t
1572
+ children: i
1559
1573
  }
1560
1574
  )
1561
1575
  ]
1562
1576
  }
1563
1577
  );
1564
- }), ki = /* @__PURE__ */ $("w-full overflow-hidden rounded-full bg-muted", {
1565
- variants: {
1566
- size: {
1567
- sm: "h-1",
1568
- md: "h-2",
1569
- lg: "h-3"
1570
- }
1571
- },
1572
- defaultVariants: { size: "md" }
1573
- }), Te = {
1574
- neutral: { bar: "bg-accent", ring: "text-primary" },
1578
+ }), zt = /* @__PURE__ */ $(
1579
+ "w-full overflow-hidden rounded-full bg-[var(--semantic-color-surface-overlay)]",
1580
+ {
1581
+ variants: {
1582
+ size: {
1583
+ sm: "h-1.5",
1584
+ md: "h-2",
1585
+ lg: "h-3"
1586
+ }
1587
+ },
1588
+ defaultVariants: { size: "md" }
1589
+ }
1590
+ ), Le = {
1591
+ neutral: { bar: "bg-primary", ring: "text-primary" },
1575
1592
  danger: { bar: "bg-feedback-danger", ring: "text-feedback-danger" },
1576
1593
  success: { bar: "bg-feedback-success", ring: "text-feedback-success" },
1577
1594
  warning: { bar: "bg-feedback-warning", ring: "text-feedback-warning" },
1578
1595
  info: { bar: "bg-feedback-info", ring: "text-feedback-info" }
1579
- }, Si = {
1596
+ }, Ct = {
1580
1597
  sm: { box: 16, stroke: 2 },
1581
1598
  md: { box: 24, stroke: 3 },
1582
1599
  lg: { box: 32, stroke: 3 }
1583
- }, Va = /* @__PURE__ */ f.forwardRef(
1600
+ }, Ia = /* @__PURE__ */ v.forwardRef(
1584
1601
  function({
1585
- className: t,
1586
- size: i,
1602
+ className: i,
1603
+ size: t,
1587
1604
  value: a = null,
1588
1605
  max: r = 100,
1589
1606
  variant: n = "linear",
@@ -1604,13 +1621,13 @@ const Da = /* @__PURE__ */ Q(
1604
1621
  "data-tone": s
1605
1622
  };
1606
1623
  if (n === "circular") {
1607
- const { box: b, stroke: w } = Si[i ?? "md"], S = (b - w) / 2, h = 2 * Math.PI * S, C = h * (u ? 0.75 : 1 - y / 100);
1624
+ const { box: b, stroke: w } = Ct[t ?? "md"], S = (b - w) / 2, h = 2 * Math.PI * S, C = h * (u ? 0.75 : 1 - y / 100);
1608
1625
  return /* @__PURE__ */ e(
1609
1626
  "span",
1610
1627
  {
1611
1628
  ref: c,
1612
1629
  ...k,
1613
- className: d("inline-flex", Te[s].ring, t),
1630
+ className: d("inline-flex", Le[s].ring, i),
1614
1631
  ...p,
1615
1632
  children: /* @__PURE__ */ g(
1616
1633
  "svg",
@@ -1629,7 +1646,7 @@ const Da = /* @__PURE__ */ Q(
1629
1646
  cy: b / 2,
1630
1647
  r: S,
1631
1648
  strokeWidth: w,
1632
- className: "stroke-muted"
1649
+ className: "stroke-[var(--semantic-color-surface-overlay)]"
1633
1650
  }
1634
1651
  ),
1635
1652
  /* @__PURE__ */ e(
@@ -1657,14 +1674,14 @@ const Da = /* @__PURE__ */ Q(
1657
1674
  {
1658
1675
  ref: c,
1659
1676
  ...k,
1660
- className: d(ki({ size: i }), t),
1677
+ className: d(zt({ size: t }), i),
1661
1678
  ...p,
1662
1679
  children: /* @__PURE__ */ e(
1663
1680
  "div",
1664
1681
  {
1665
1682
  className: d(
1666
1683
  "h-full rounded-full transition-[width] duration-300 ease-out",
1667
- Te[s].bar,
1684
+ Le[s].bar,
1668
1685
  u && "animate-pulse motion-reduce:animate-none"
1669
1686
  ),
1670
1687
  style: { width: `${y}%` }
@@ -1673,7 +1690,7 @@ const Da = /* @__PURE__ */ Q(
1673
1690
  }
1674
1691
  );
1675
1692
  }
1676
- ), Ni = /* @__PURE__ */ $("hds-skeleton block", {
1693
+ ), Dt = /* @__PURE__ */ $("hds-skeleton block", {
1677
1694
  variants: {
1678
1695
  variant: {
1679
1696
  text: "rounded",
@@ -1682,22 +1699,22 @@ const Da = /* @__PURE__ */ Q(
1682
1699
  }
1683
1700
  },
1684
1701
  defaultVariants: { variant: "rectangular" }
1685
- }), La = /* @__PURE__ */ f.forwardRef(
1686
- function({ className: t, variant: i = "rectangular", width: a, height: r, style: n, ...s }, l) {
1687
- const p = r ?? (i === "text" ? "1em" : void 0);
1702
+ }), Ma = /* @__PURE__ */ v.forwardRef(
1703
+ function({ className: i, variant: t = "rectangular", width: a, height: r, style: n, ...s }, l) {
1704
+ const p = r ?? (t === "text" ? "1em" : t === "rectangular" ? "5rem" : void 0);
1688
1705
  return /* @__PURE__ */ e(
1689
1706
  "div",
1690
1707
  {
1691
1708
  ref: l,
1692
1709
  "aria-hidden": "true",
1693
- "data-variant": i,
1694
- className: d(Ni({ variant: i }), t),
1710
+ "data-variant": t,
1711
+ className: d(Dt({ variant: t }), i),
1695
1712
  style: { width: a, height: p, ...n },
1696
1713
  ...s
1697
1714
  }
1698
1715
  );
1699
1716
  }
1700
- ), zi = /* @__PURE__ */ $(
1717
+ ), Tt = /* @__PURE__ */ $(
1701
1718
  "inline-block shrink-0 animate-spin rounded-full border-solid border-current border-t-transparent align-middle motion-reduce:animate-none",
1702
1719
  {
1703
1720
  variants: {
@@ -1709,21 +1726,21 @@ const Da = /* @__PURE__ */ Q(
1709
1726
  },
1710
1727
  defaultVariants: { size: "md" }
1711
1728
  }
1712
- ), Ia = /* @__PURE__ */ f.forwardRef(
1713
- function({ className: t, size: i, label: a = "Loading", ...r }, n) {
1729
+ ), Aa = /* @__PURE__ */ v.forwardRef(
1730
+ function({ className: i, size: t, label: a = "Loading", ...r }, n) {
1714
1731
  return /* @__PURE__ */ e(
1715
1732
  "span",
1716
1733
  {
1717
1734
  ref: n,
1718
1735
  role: "status",
1719
1736
  "aria-label": a,
1720
- "data-size": i ?? "md",
1721
- className: d(zi({ size: i }), t),
1737
+ "data-size": t ?? "md",
1738
+ className: d(Tt({ size: t }), i),
1722
1739
  ...r
1723
1740
  }
1724
1741
  );
1725
1742
  }
1726
- ), Ci = /* @__PURE__ */ $(
1743
+ ), Rt = /* @__PURE__ */ $(
1727
1744
  "inline-flex max-w-full flex-col items-start self-start gap-[var(--semantic-space-scale-xs)] p-0",
1728
1745
  {
1729
1746
  variants: {
@@ -1734,7 +1751,7 @@ const Da = /* @__PURE__ */ Q(
1734
1751
  },
1735
1752
  defaultVariants: { fullWidth: !1 }
1736
1753
  }
1737
- ), Di = /* @__PURE__ */ $(
1754
+ ), Pt = /* @__PURE__ */ $(
1738
1755
  "flex max-w-full items-stretch gap-[var(--semantic-space-subgrid-gap)] overflow-x-auto overflow-y-hidden rounded-lg border border-solid border-[var(--semantic-color-border-default)] [scrollbar-width:thin]",
1739
1756
  {
1740
1757
  variants: {
@@ -1749,13 +1766,14 @@ const Da = /* @__PURE__ */ Q(
1749
1766
  },
1750
1767
  defaultVariants: { variant: "primary", fullWidth: !1 }
1751
1768
  }
1752
- ), Ti = /* @__PURE__ */ $(
1769
+ ), Lt = /* @__PURE__ */ $(
1753
1770
  "relative m-0 flex flex-col items-center justify-center gap-[var(--semantic-space-subgrid-hairline)] rounded-md border-0 bg-transparent py-[var(--semantic-space-subgrid-gap)] text-center transition-[color,outline-color,transform] duration-[var(--hds-motion-productive-duration)] ease-[var(--hds-motion-productive-easing)]",
1754
1771
  {
1755
1772
  variants: {
1756
1773
  size: {
1757
- sm: "min-h-8",
1758
- md: "min-h-12"
1774
+ // Rail = item + 2 x 4px padding + 2px border: 22px -> 32px (Button sm), 30px -> 40px (Button/Input md).
1775
+ sm: "min-h-[22px] py-0",
1776
+ md: "min-h-[30px]"
1759
1777
  },
1760
1778
  fullWidth: {
1761
1779
  true: "w-full min-w-0 flex-1",
@@ -1780,9 +1798,10 @@ const Da = /* @__PURE__ */ Q(
1780
1798
  }
1781
1799
  },
1782
1800
  compoundVariants: [
1783
- // Width / min-width for the non-fullWidth case — compact shrinks to content, md fills the rail.
1784
- { fullWidth: !1, size: "sm", className: "w-max min-w-max flex-none" },
1785
- { fullWidth: !1, size: "md", className: "w-full flex-none" },
1801
+ // Width for the non-fullWidth case: every segment hugs its content. A
1802
+ // `w-full` segment inside the `w-fit` rail is circular (hds#522): one
1803
+ // segment took the whole rail and the rest scrolled out of view.
1804
+ { fullWidth: !1, className: "w-max min-w-max flex-none" },
1786
1805
  // Foreground color — active wins over hover/rest regardless of interaction sub-state.
1787
1806
  {
1788
1807
  active: !0,
@@ -1825,7 +1844,7 @@ const Da = /* @__PURE__ */ Q(
1825
1844
  disabled: !1
1826
1845
  }
1827
1846
  }
1828
- ), Pi = /* @__PURE__ */ $(
1847
+ ), Vt = /* @__PURE__ */ $(
1829
1848
  "pointer-events-none absolute inset-0 z-0 rounded-md bg-transparent shadow-none",
1830
1849
  {
1831
1850
  variants: {
@@ -1908,9 +1927,9 @@ const Da = /* @__PURE__ */ Q(
1908
1927
  ],
1909
1928
  defaultVariants: { variant: "primary", active: !1, interaction: "rest", disabled: !1 }
1910
1929
  }
1911
- ), Ri = /* @__PURE__ */ $(
1930
+ ), It = /* @__PURE__ */ $(
1912
1931
  // tier-ok: primitive.zIndex.10 (the discrete 0/10/100/1000 stacking scale, reached as hds.zIndex.focus) has no semantic alias — same primitive ref the pre-Tailwind inline style used
1913
- "relative z-[var(--primitive-zIndex-10)] text-xs font-medium text-[var(--semantic-color-content-secondary)]",
1932
+ "relative z-[var(--primitive-zIndex-10)] hds-type-caption text-[var(--semantic-color-content-secondary)]",
1914
1933
  {
1915
1934
  variants: {
1916
1935
  variant: { primary: "", secondary: "" },
@@ -1929,7 +1948,7 @@ const Da = /* @__PURE__ */ Q(
1929
1948
  ],
1930
1949
  defaultVariants: { variant: "primary", active: !1, interaction: "rest", disabled: !1 }
1931
1950
  }
1932
- ), Vi = /* @__PURE__ */ $(
1951
+ ), Mt = /* @__PURE__ */ $(
1933
1952
  // tier-ok: primitive.borderWidth.sm (the 2px accent/selection-ring weight) has no semantic alias — same primitive ref the pre-Tailwind inline style used
1934
1953
  "outline outline-[length:var(--primitive-borderWidth-sm)] outline-offset-[length:var(--semantic-space-subgrid-gap)]",
1935
1954
  {
@@ -1941,13 +1960,13 @@ const Da = /* @__PURE__ */ Q(
1941
1960
  },
1942
1961
  defaultVariants: { variant: "primary" }
1943
1962
  }
1944
- ), Li = /* @__PURE__ */ $(
1963
+ ), At = /* @__PURE__ */ $(
1945
1964
  // tier-ok: primitive.zIndex.10, reached as hds.zIndex.focus, has no semantic alias — same primitive ref the pre-Tailwind inline style used
1946
- "relative z-[var(--primitive-zIndex-10)] max-w-[60ch] text-sm font-medium leading-5 text-current"
1947
- ), Ma = /* @__PURE__ */ Q(
1965
+ "relative z-[var(--primitive-zIndex-10)] max-w-[60ch] hds-type-ui text-current"
1966
+ ), Ha = /* @__PURE__ */ ee(
1948
1967
  function({
1949
- label: t,
1950
- "aria-label": i,
1968
+ label: i,
1969
+ "aria-label": t,
1951
1970
  options: a,
1952
1971
  value: r,
1953
1972
  onChange: n,
@@ -1957,40 +1976,40 @@ const Da = /* @__PURE__ */ Q(
1957
1976
  railPadding: c,
1958
1977
  segmentPaddingX: u
1959
1978
  }, m) {
1960
- const [y, k] = j(null), [b, w] = j(null), h = oe(), C = h === "disabled", V = G("productive"), I = s === "sm", T = l === "secondary", L = i ?? t, R = u ?? (I ? N.semantic.space.scale.xs : N.semantic.space.layout.gap);
1961
- return /* @__PURE__ */ g("div", { ref: m, className: Ci({ fullWidth: p }), children: [
1962
- t && // inline-ok: pb here mirrors the dynamic-padding cases below — token value, not a magic number, kept inline to match the group's spacing rhythm without a one-off arbitrary class
1979
+ const [y, k] = Y(null), [b, w] = Y(null), h = le(), C = h === "disabled", L = j("productive"), I = s === "sm", T = l === "secondary", V = t ?? i, P = u ?? (I ? z.semantic.space.scale.xs : z.semantic.space.layout.gap);
1980
+ return /* @__PURE__ */ g("div", { ref: m, className: Rt({ fullWidth: p }), children: [
1981
+ i && // inline-ok: pb here mirrors the dynamic-padding cases below — token value, not a magic number, kept inline to match the group's spacing rhythm without a one-off arbitrary class
1963
1982
  /* @__PURE__ */ e(
1964
1983
  "span",
1965
1984
  {
1966
- className: "max-w-[60ch] text-sm font-medium leading-5 text-[var(--semantic-color-content-primary)]",
1967
- style: { paddingBottom: N.semantic.space.subgrid.gap },
1968
- children: t
1985
+ className: "max-w-[60ch] hds-type-ui text-[var(--semantic-color-content-primary)]",
1986
+ style: { paddingBottom: z.semantic.space.subgrid.gap },
1987
+ children: i
1969
1988
  }
1970
1989
  ),
1971
1990
  /* @__PURE__ */ e(
1972
- Ce.Root,
1991
+ Te.Root,
1973
1992
  {
1974
1993
  type: "single",
1975
1994
  role: "radiogroup",
1976
- "aria-label": L,
1995
+ "aria-label": V,
1977
1996
  value: r,
1978
1997
  onValueChange: (D) => {
1979
1998
  D && !C && n(D);
1980
1999
  },
1981
2000
  disabled: C,
1982
- className: Di({ variant: l, fullWidth: p }),
2001
+ className: Pt({ variant: l, fullWidth: p }),
1983
2002
  style: { padding: c ?? "4px" },
1984
2003
  children: a.map((D) => {
1985
- const x = D.value === r, P = h ? h === "hover" && x : y === D.value, B = h === "pressed" && x, U = h ? h === "focused" && x : b === D.value, H = C, Y = B ? "pressed" : P ? "hover" : "rest", te = !!h && U;
2004
+ const x = D.value === r, R = h ? h === "hover" && x : y === D.value, B = h === "pressed" && x, q = h ? h === "focused" && x : b === D.value, W = C, G = B ? "pressed" : R ? "hover" : "rest", te = !!h && q;
1986
2005
  return /* @__PURE__ */ e(
1987
- Ce.Item,
2006
+ Te.Item,
1988
2007
  {
1989
2008
  asChild: !0,
1990
2009
  value: D.value,
1991
- disabled: H,
2010
+ disabled: W,
1992
2011
  children: /* @__PURE__ */ g(
1993
- A.button,
2012
+ H.button,
1994
2013
  {
1995
2014
  type: "button",
1996
2015
  onHoverStart: () => !h && k(D.value),
@@ -1999,27 +2018,27 @@ const Da = /* @__PURE__ */ Q(
1999
2018
  onBlur: () => !h && w(null),
2000
2019
  animate: T ? {
2001
2020
  y: x ? 0 : B ? 1 : 0,
2002
- scale: x ? 1 : P ? 0.995 : 1
2021
+ scale: x ? 1 : R ? 0.995 : 1
2003
2022
  } : void 0,
2004
2023
  transition: T ? {
2005
- duration: V.duration,
2006
- ease: V.easing
2024
+ duration: L.duration,
2025
+ ease: L.easing
2007
2026
  } : void 0,
2008
2027
  className: d(
2009
2028
  "hds-focus",
2010
- Ti({
2029
+ Lt({
2011
2030
  size: s,
2012
2031
  fullWidth: p,
2013
2032
  variant: l,
2014
2033
  active: x,
2015
- interaction: Y,
2016
- disabled: H
2034
+ interaction: G,
2035
+ disabled: W
2017
2036
  }),
2018
- te && Vi({ variant: l })
2037
+ te && Mt({ variant: l })
2019
2038
  ),
2020
2039
  style: {
2021
- paddingLeft: R,
2022
- paddingRight: R
2040
+ paddingLeft: P,
2041
+ paddingRight: P
2023
2042
  },
2024
2043
  children: [
2025
2044
  /* @__PURE__ */ e(
@@ -2027,25 +2046,25 @@ const Da = /* @__PURE__ */ Q(
2027
2046
  {
2028
2047
  "aria-hidden": "true",
2029
2048
  className: d(
2030
- Pi({
2049
+ Vt({
2031
2050
  variant: l,
2032
2051
  active: x,
2033
- interaction: Y,
2034
- disabled: H
2052
+ interaction: G,
2053
+ disabled: W
2035
2054
  })
2036
2055
  )
2037
2056
  }
2038
2057
  ),
2039
- /* @__PURE__ */ e("span", { className: Li(), children: D.label }),
2058
+ /* @__PURE__ */ e("span", { className: At(), children: D.label }),
2040
2059
  D.description && /* @__PURE__ */ e(
2041
2060
  "span",
2042
2061
  {
2043
2062
  className: d(
2044
- Ri({
2063
+ It({
2045
2064
  variant: l,
2046
2065
  active: x,
2047
- interaction: Y,
2048
- disabled: H
2066
+ interaction: G,
2067
+ disabled: W
2049
2068
  })
2050
2069
  ),
2051
2070
  children: D.description
@@ -2062,9 +2081,9 @@ const Da = /* @__PURE__ */ Q(
2062
2081
  )
2063
2082
  ] });
2064
2083
  }
2065
- ), Ii = /* @__PURE__ */ ne(_.Portal), Aa = /* @__PURE__ */ Q(function({
2066
- label: t,
2067
- showLabel: i = !0,
2084
+ ), Ht = /* @__PURE__ */ se(O.Portal), Ea = /* @__PURE__ */ ee(function({
2085
+ label: i,
2086
+ showLabel: t = !0,
2068
2087
  options: a,
2069
2088
  value: r,
2070
2089
  onChange: n,
@@ -2073,44 +2092,46 @@ const Da = /* @__PURE__ */ Q(
2073
2092
  "aria-describedby": p,
2074
2093
  "aria-invalid": c
2075
2094
  }, u) {
2076
- const m = a.find((b) => b.value === r) ?? a[0], y = Ve(), k = i && !!t;
2077
- return /* @__PURE__ */ g("div", { className: "flex flex-col", children: [
2078
- i ? /* @__PURE__ */ e(
2095
+ const m = a.find((b) => b.value === r) ?? a[0], y = Me(), k = t && !!i;
2096
+ return /* @__PURE__ */ g("div", { className: d("flex flex-col", Q), children: [
2097
+ t ? /* @__PURE__ */ e(
2079
2098
  "span",
2080
2099
  {
2081
2100
  id: y,
2082
- className: "text-secondary",
2083
- style: { ...N.typeStyles.caption, marginBottom: N.semantic.space.scale.xs },
2084
- children: t
2101
+ className: "hds-type-ui text-foreground",
2102
+ style: { marginBottom: z.semantic.space.scale.xs },
2103
+ children: i
2085
2104
  }
2086
2105
  ) : null,
2087
- /* @__PURE__ */ g(_.Root, { value: r, onValueChange: n, children: [
2106
+ /* @__PURE__ */ g(O.Root, { value: r, onValueChange: n, children: [
2088
2107
  /* @__PURE__ */ g(
2089
- _.Trigger,
2108
+ O.Trigger,
2090
2109
  {
2091
2110
  ref: u,
2092
2111
  id: l,
2093
- "aria-label": t ? `${t}: ${m.label}` : m.label,
2112
+ "aria-label": i ? `${i}: ${m.label}` : m.label,
2094
2113
  "aria-describedby": p,
2095
2114
  "aria-invalid": c,
2096
2115
  className: d(
2097
- "hds-focus group flex w-full items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm",
2098
- "border-input bg-muted text-foreground transition-colors",
2116
+ // h-10 is the one md control height shared with Input, Combobox and Button;
2117
+ // the trigger had py-2 and rendered 38px (hds#522). bg-background matches Input.
2118
+ "hds-focus group flex h-10 w-full items-center justify-between gap-2 rounded-md border px-3 hds-type-ui",
2119
+ "border-input bg-background text-foreground transition-colors",
2099
2120
  "hover:border-ring data-[state=open]:border-ring"
2100
2121
  ),
2101
2122
  children: [
2102
- /* @__PURE__ */ e(_.Value, {}),
2103
- /* @__PURE__ */ e(_.Icon, { className: "flex shrink-0 -rotate-90 text-muted-foreground transition-transform group-data-[state=open]:rotate-0", children: /* @__PURE__ */ e(M, { icon: Ae, size: "small", color: "currentColor" }) })
2123
+ /* @__PURE__ */ e(O.Value, {}),
2124
+ /* @__PURE__ */ e(O.Icon, { className: "flex shrink-0 text-muted-foreground", children: /* @__PURE__ */ e(A, { icon: Be, size: "small", color: "currentColor" }) })
2104
2125
  ]
2105
2126
  }
2106
2127
  ),
2107
- /* @__PURE__ */ e(Ii, { container: s, children: /* @__PURE__ */ e(
2108
- _.Content,
2128
+ /* @__PURE__ */ e(Ht, { container: s, children: /* @__PURE__ */ e(
2129
+ O.Content,
2109
2130
  {
2110
2131
  position: "popper",
2111
2132
  sideOffset: 4,
2112
2133
  "aria-labelledby": k ? y : void 0,
2113
- "aria-label": k ? void 0 : t || m.label,
2134
+ "aria-label": k ? void 0 : i || m.label,
2114
2135
  style: {
2115
2136
  minWidth: "var(--radix-select-trigger-width)",
2116
2137
  maxHeight: "var(--radix-select-content-available-height)"
@@ -2119,18 +2140,18 @@ const Da = /* @__PURE__ */ Q(
2119
2140
  "z-50 overflow-hidden rounded-md border",
2120
2141
  "border-border bg-popover text-popover-foreground shadow-md"
2121
2142
  ),
2122
- children: /* @__PURE__ */ e(_.Viewport, { className: "p-1", children: a.map((b) => /* @__PURE__ */ g(
2123
- _.Item,
2143
+ children: /* @__PURE__ */ e(O.Viewport, { className: "p-1", children: a.map((b) => /* @__PURE__ */ g(
2144
+ O.Item,
2124
2145
  {
2125
2146
  value: b.value,
2126
2147
  className: d(
2127
- "relative flex w-full cursor-pointer select-none items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm outline-none",
2148
+ "relative flex w-full cursor-pointer select-none items-center justify-between gap-2 rounded-sm px-2 py-1.5 hds-type-ui outline-none",
2128
2149
  "text-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground",
2129
2150
  "data-[highlighted]:ring-2 data-[highlighted]:ring-inset data-[highlighted]:ring-ring"
2130
2151
  ),
2131
2152
  children: [
2132
- /* @__PURE__ */ e(_.ItemText, { children: b.label }),
2133
- /* @__PURE__ */ e(_.ItemIndicator, { className: "flex shrink-0", children: /* @__PURE__ */ e(M, { icon: re, size: "small", color: "currentColor" }) })
2153
+ /* @__PURE__ */ e(O.ItemText, { children: b.label }),
2154
+ /* @__PURE__ */ e(O.ItemIndicator, { className: "flex shrink-0", children: /* @__PURE__ */ e(A, { icon: oe, size: "small", color: "currentColor" }) })
2134
2155
  ]
2135
2156
  },
2136
2157
  b.value
@@ -2139,14 +2160,14 @@ const Da = /* @__PURE__ */ Q(
2139
2160
  ) })
2140
2161
  ] })
2141
2162
  ] });
2142
- }), Mi = /* @__PURE__ */ $(
2163
+ }), Et = /* @__PURE__ */ $(
2143
2164
  // 44px is the WCAG 2.5.5 / platform HIG minimum interactive target — a
2144
2165
  // regulatory floor, not a design-scale choice; no semantic size scale exists
2145
2166
  // yet for dimensional primitives (see hds#186 follow-up).
2146
2167
  // tier-ok: regulatory a11y constant, not a design decision. hds#186
2147
2168
  "group inline-flex min-w-[var(--primitive-size-interactive-min)] cursor-pointer select-none items-center justify-center border-0 bg-transparent p-0 text-inherit transition-colors disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50"
2148
- ), Ai = /* @__PURE__ */ $(
2149
- "pointer-events-none box-border inline-flex min-h-[var(--component-tag-minHeight)] min-w-[var(--component-tag-minWidth)] items-center justify-center whitespace-nowrap rounded-[var(--component-tag-radius)] border border-solid px-[var(--component-tag-paddingX)] py-[var(--component-tag-paddingY)] text-xs font-medium leading-none transition-colors",
2169
+ ), Bt = /* @__PURE__ */ $(
2170
+ "pointer-events-none box-border inline-flex min-h-[var(--component-tag-minHeight)] min-w-[var(--component-tag-minWidth)] items-center justify-center whitespace-nowrap rounded-[var(--component-tag-radius)] border border-solid px-[var(--component-tag-paddingX)] py-[var(--component-tag-paddingY)] hds-type-caption transition-colors",
2150
2171
  {
2151
2172
  variants: {
2152
2173
  selected: {
@@ -2156,80 +2177,47 @@ const Da = /* @__PURE__ */ Q(
2156
2177
  },
2157
2178
  defaultVariants: { selected: !1 }
2158
2179
  }
2159
- ), Ea = /* @__PURE__ */ f.forwardRef(function({ children: t, active: i = !1, className: a, type: r = "button", ...n }, s) {
2180
+ ), Ba = /* @__PURE__ */ v.forwardRef(function({ children: i, active: t = !1, className: a, type: r = "button", ...n }, s) {
2160
2181
  return /* @__PURE__ */ e(
2161
2182
  "button",
2162
2183
  {
2163
2184
  ref: s,
2164
2185
  type: r,
2165
- "aria-pressed": i,
2166
- "data-active": i ? "true" : void 0,
2167
- className: d("hds-focus", Mi(), a),
2186
+ "aria-pressed": t,
2187
+ "data-active": t ? "true" : void 0,
2188
+ className: d("hds-focus", Et(), a),
2168
2189
  ...n,
2169
- children: /* @__PURE__ */ e("span", { className: Ai({ selected: i }), children: t })
2190
+ children: /* @__PURE__ */ e("span", { className: Bt({ selected: t }), children: i })
2170
2191
  }
2171
2192
  );
2172
- }), Ei = /* @__PURE__ */ $(
2173
- "inline-flex items-center justify-center whitespace-nowrap align-middle select-none rounded border border-border bg-muted font-medium text-muted-foreground",
2193
+ }), Wt = /* @__PURE__ */ $(
2194
+ "inline-flex items-center justify-center whitespace-nowrap align-middle select-none rounded border border-border bg-muted text-muted-foreground",
2174
2195
  {
2175
2196
  variants: {
2176
2197
  size: {
2177
- sm: "h-5 min-w-5 px-1 text-xs",
2178
- md: "h-6 min-w-6 px-1.5 text-xs",
2179
- lg: "h-7 min-w-7 px-2 text-sm"
2198
+ sm: "h-5 min-w-5 px-1 hds-type-caption",
2199
+ md: "h-6 min-w-6 px-1.5 hds-type-caption",
2200
+ lg: "h-7 min-w-7 px-2 hds-type-ui"
2180
2201
  }
2181
2202
  },
2182
2203
  defaultVariants: { size: "md" }
2183
2204
  }
2184
- ), Ba = /* @__PURE__ */ f.forwardRef(function({ className: t, size: i, children: a, ...r }, n) {
2205
+ ), Wa = /* @__PURE__ */ v.forwardRef(function({ className: i, size: t, children: a, ...r }, n) {
2185
2206
  return /* @__PURE__ */ e(
2186
2207
  "kbd",
2187
2208
  {
2188
2209
  ref: n,
2189
- "data-size": i ?? "md",
2190
- className: d(Ei({ size: i }), t),
2210
+ "data-size": t ?? "md",
2211
+ className: d(Wt({ size: t }), i),
2191
2212
  ...r,
2192
2213
  children: a
2193
2214
  }
2194
2215
  );
2195
- }), Bi = /* @__PURE__ */ $("inline-block shrink-0 rounded-full", {
2196
- variants: {
2197
- tone: {
2198
- neutral: "bg-muted-foreground",
2199
- info: "bg-feedback-info",
2200
- success: "bg-feedback-success",
2201
- danger: "bg-feedback-danger",
2202
- warning: "bg-feedback-warning",
2203
- inProgress: "bg-feedback-inProgress"
2204
- },
2205
- size: {
2206
- sm: "h-1.5 w-1.5",
2207
- md: "h-2 w-2",
2208
- lg: "h-2.5 w-2.5"
2209
- }
2210
- },
2211
- defaultVariants: { tone: "neutral", size: "md" }
2212
- }), Ha = /* @__PURE__ */ f.forwardRef(
2213
- function({ className: t, tone: i, size: a, label: r, ...n }, s) {
2214
- return pt(
2215
- "status-dot-deprecated",
2216
- "StatusDot is deprecated and is removed in 0.21.0. Use <Badge dot> with the same tone, size and label; Badge takes no style, so move a style to a wrapper or a className (MIGRATIONS.md, hds#395)."
2217
- ), /* @__PURE__ */ e(
2218
- "span",
2219
- {
2220
- ref: s,
2221
- "data-tone": i ?? "neutral",
2222
- className: d(Bi({ tone: i, size: a }), t),
2223
- ...r ? { role: "status", "aria-label": r } : { "aria-hidden": !0 },
2224
- ...n
2225
- }
2226
- );
2227
- }
2228
- );
2229
- function Pe(o) {
2216
+ });
2217
+ function Ve(o) {
2230
2218
  return o instanceof Date ? o : new Date(o);
2231
2219
  }
2232
- const Hi = [
2220
+ const Ft = [
2233
2221
  ["year", 3600 * 24 * 365],
2234
2222
  ["month", 3600 * 24 * 30],
2235
2223
  ["week", 3600 * 24 * 7],
@@ -2238,91 +2226,88 @@ const Hi = [
2238
2226
  ["minute", 60],
2239
2227
  ["second", 1]
2240
2228
  ];
2241
- function Wi(o, t, i) {
2242
- const a = new Intl.RelativeTimeFormat(i, { numeric: "auto" }), r = Math.round((o.getTime() - t.getTime()) / 1e3), n = Math.abs(r);
2243
- for (const [s, l] of Hi)
2229
+ function _t(o, i, t) {
2230
+ const a = new Intl.RelativeTimeFormat(t, { numeric: "auto" }), r = Math.round((o.getTime() - i.getTime()) / 1e3), n = Math.abs(r);
2231
+ for (const [s, l] of Ft)
2244
2232
  if (n >= l || s === "second")
2245
2233
  return a.format(Math.round(r / l), s);
2246
2234
  return a.format(0, "second");
2247
2235
  }
2248
- const Fi = {
2236
+ const Ot = {
2249
2237
  date: { dateStyle: "medium" },
2250
2238
  time: { timeStyle: "short" },
2251
2239
  datetime: { dateStyle: "medium", timeStyle: "short" }
2252
- }, Wa = /* @__PURE__ */ f.forwardRef(
2253
- function({ className: t, date: i, format: a = "datetime", locale: r, now: n, ...s }, l) {
2254
- const p = Pe(i), c = Number.isNaN(p.getTime()) ? void 0 : p.toISOString();
2240
+ }, Fa = /* @__PURE__ */ v.forwardRef(
2241
+ function({ className: i, date: t, format: a = "datetime", locale: r, now: n, ...s }, l) {
2242
+ const p = Ve(t), c = Number.isNaN(p.getTime()) ? void 0 : p.toISOString();
2255
2243
  let u;
2256
- return Number.isNaN(p.getTime()) ? u = "" : a === "relative" ? u = Wi(p, n != null ? Pe(n) : /* @__PURE__ */ new Date(), r) : u = new Intl.DateTimeFormat(r, Fi[a]).format(p), /* @__PURE__ */ e(
2244
+ return Number.isNaN(p.getTime()) ? u = "" : a === "relative" ? u = _t(p, n != null ? Ve(n) : /* @__PURE__ */ new Date(), r) : u = new Intl.DateTimeFormat(r, Ot[a]).format(p), /* @__PURE__ */ e(
2257
2245
  "time",
2258
2246
  {
2259
2247
  ref: l,
2260
2248
  dateTime: c,
2261
2249
  "data-format": a,
2262
- className: d("tabular-nums", t),
2250
+ className: d("tabular-nums", i),
2263
2251
  ...s,
2264
2252
  children: u
2265
2253
  }
2266
2254
  );
2267
2255
  }
2268
- ), _i = /* @__PURE__ */ $(
2269
- "border-l-2 border-border pl-4 font-medium text-foreground",
2270
- {
2271
- variants: {
2272
- size: {
2273
- sm: "text-sm",
2274
- md: "text-base",
2275
- lg: "text-lg"
2276
- }
2277
- },
2278
- defaultVariants: { size: "md" }
2279
- }
2280
- ), Fa = /* @__PURE__ */ f.forwardRef(
2281
- function({ className: t, size: i, attribution: a, children: r, ...n }, s) {
2256
+ ), Gt = /* @__PURE__ */ $("border-l-2 border-border pl-4 text-foreground", {
2257
+ variants: {
2258
+ size: {
2259
+ sm: "hds-type-ui",
2260
+ md: "hds-type-body",
2261
+ lg: "hds-type-title"
2262
+ }
2263
+ },
2264
+ defaultVariants: { size: "md" }
2265
+ }), _a = /* @__PURE__ */ v.forwardRef(
2266
+ function({ className: i, size: t, attribution: a, children: r, ...n }, s) {
2282
2267
  return /* @__PURE__ */ g(
2283
2268
  "blockquote",
2284
2269
  {
2285
2270
  ref: s,
2286
- "data-size": i ?? "md",
2287
- className: d(_i({ size: i }), t),
2271
+ "data-size": t ?? "md",
2272
+ className: d(Gt({ size: t }), i),
2288
2273
  ...n,
2289
2274
  children: [
2290
2275
  r,
2291
- a != null && /* @__PURE__ */ e("footer", { className: "mt-2 text-sm font-medium text-muted-foreground", children: a })
2276
+ a != null && /* @__PURE__ */ e("footer", { className: "mt-2 hds-type-ui text-muted-foreground", children: a })
2292
2277
  ]
2293
2278
  }
2294
2279
  );
2295
2280
  }
2296
- ), _a = /* @__PURE__ */ f.forwardRef(
2297
- function({ as: t = "span", className: i, children: a, ...r }, n) {
2298
- return /* @__PURE__ */ e(t, { ref: n, className: d("sr-only", i), ...r, children: a });
2281
+ ), Oa = /* @__PURE__ */ v.forwardRef(
2282
+ function({ as: i = "span", className: t, children: a, ...r }, n) {
2283
+ return /* @__PURE__ */ e(i, { ref: n, className: d("sr-only", t), ...r, children: a });
2299
2284
  }
2300
- ), Gi = /* @__PURE__ */ $(
2301
- "inline-flex -ml-2 shrink-0 items-center justify-center rounded-full bg-muted font-medium text-muted-foreground ring-2 ring-background",
2285
+ ), jt = /* @__PURE__ */ $(
2286
+ "inline-flex -ml-2 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground ring-2 ring-background",
2302
2287
  {
2303
2288
  variants: {
2304
2289
  size: {
2305
- sm: "h-8 w-8 text-xs",
2306
- md: "h-10 w-10 text-sm",
2307
- lg: "h-12 w-12 text-base"
2290
+ sm: "h-8 w-8 hds-type-caption",
2291
+ md: "h-10 w-10 hds-type-ui",
2292
+ lg: "h-12 w-12 hds-type-body"
2308
2293
  }
2309
2294
  },
2310
2295
  defaultVariants: { size: "md" }
2311
2296
  }
2312
- ), Ga = /* @__PURE__ */ f.forwardRef(
2313
- function({ className: t, children: i, max: a, size: r, ...n }, s) {
2314
- const l = r ?? "md", p = f.Children.toArray(i).filter(f.isValidElement), c = a && a > 0 ? a : p.length, u = p.slice(0, c), m = p.length - u.length;
2297
+ ), Ga = /* @__PURE__ */ v.forwardRef(
2298
+ function({ className: i, children: t, max: a, size: r, ...n }, s) {
2299
+ const l = r ?? "md", p = v.Children.toArray(t).filter(v.isValidElement), c = a && a > 0 ? a : p.length, u = p.slice(0, c), m = p.length - u.length;
2315
2300
  return /* @__PURE__ */ g(
2316
2301
  "div",
2317
2302
  {
2318
2303
  ref: s,
2319
2304
  role: "group",
2320
2305
  "data-size": l,
2321
- className: d("flex items-center", t),
2306
+ className: d("flex items-center", i),
2322
2307
  ...n,
2323
2308
  children: [
2324
2309
  u.map(
2325
- (y, k) => f.cloneElement(y, {
2310
+ (y, k) => v.cloneElement(y, {
2326
2311
  key: y.key ?? k,
2327
2312
  size: l,
2328
2313
  className: d(
@@ -2332,7 +2317,7 @@ const Fi = {
2332
2317
  )
2333
2318
  })
2334
2319
  ),
2335
- m > 0 && /* @__PURE__ */ g("span", { "aria-label": `+${m} more`, className: Gi({ size: r }), children: [
2320
+ m > 0 && /* @__PURE__ */ g("span", { "aria-label": `+${m} more`, className: jt({ size: r }), children: [
2336
2321
  "+",
2337
2322
  m
2338
2323
  ] })
@@ -2340,40 +2325,41 @@ const Fi = {
2340
2325
  }
2341
2326
  );
2342
2327
  }
2343
- ), Re = /* @__PURE__ */ $("", {
2328
+ ), Ie = /* @__PURE__ */ $("", {
2344
2329
  variants: {
2345
2330
  orientation: {
2346
2331
  vertical: "flex flex-col gap-3",
2347
- horizontal: "grid grid-cols-2 gap-x-4 gap-y-2"
2332
+ // The term column hugs its longest term; it was half the list (146px at 1280, hds#522).
2333
+ horizontal: "grid grid-cols-[max-content_minmax(0,1fr)] gap-x-4 gap-y-2"
2348
2334
  }
2349
2335
  },
2350
2336
  defaultVariants: { orientation: "vertical" }
2351
- }), Oa = /* @__PURE__ */ f.forwardRef(
2352
- function({ className: t, items: i, orientation: a = "vertical", variant: r = "plain", footer: n, ...s }, l) {
2337
+ }), ja = /* @__PURE__ */ v.forwardRef(
2338
+ function({ className: i, items: t, orientation: a = "vertical", variant: r = "plain", footer: n, ...s }, l) {
2353
2339
  return r === "divided" ? /* @__PURE__ */ g(
2354
2340
  "dl",
2355
2341
  {
2356
2342
  ref: l,
2357
2343
  "data-variant": "divided",
2358
2344
  "data-orientation": "vertical",
2359
- className: d("flex flex-col overflow-hidden rounded-lg", t),
2345
+ className: d("flex flex-col overflow-hidden rounded-lg", i),
2360
2346
  style: {
2361
- border: `${N.borderWidth.default} solid var(--semantic-color-border-default)`
2347
+ border: `${z.borderWidth.default} solid var(--semantic-color-border-default)`
2362
2348
  },
2363
2349
  ...s,
2364
2350
  children: [
2365
- i.map((p, c) => /* @__PURE__ */ g(
2351
+ t.map((p, c) => /* @__PURE__ */ g(
2366
2352
  "div",
2367
2353
  {
2368
2354
  className: "flex flex-col gap-2 p-5",
2369
2355
  style: c === 0 ? void 0 : {
2370
- borderTop: `${N.borderWidth.default} solid var(--semantic-color-border-subtle)`
2356
+ borderTop: `${z.borderWidth.default} solid var(--semantic-color-border-subtle)`
2371
2357
  },
2372
2358
  children: [
2373
2359
  /* @__PURE__ */ e(
2374
2360
  "dt",
2375
2361
  {
2376
- className: "text-sm font-medium",
2362
+ className: "hds-type-ui",
2377
2363
  style: { color: "var(--semantic-color-content-secondary)" },
2378
2364
  children: p.term
2379
2365
  }
@@ -2381,7 +2367,7 @@ const Fi = {
2381
2367
  /* @__PURE__ */ e(
2382
2368
  "dd",
2383
2369
  {
2384
- className: "m-0 text-sm",
2370
+ className: "m-0 hds-type-ui",
2385
2371
  style: { color: "var(--semantic-color-content-primary)" },
2386
2372
  children: p.description
2387
2373
  }
@@ -2393,9 +2379,9 @@ const Fi = {
2393
2379
  n != null && /* @__PURE__ */ g(
2394
2380
  "div",
2395
2381
  {
2396
- className: "p-5 text-sm",
2382
+ className: "p-5 hds-type-ui",
2397
2383
  style: {
2398
- borderTop: `${N.borderWidth.default} solid var(--semantic-color-border-subtle)`,
2384
+ borderTop: `${z.borderWidth.default} solid var(--semantic-color-border-subtle)`,
2399
2385
  background: "var(--semantic-color-surface-raised)",
2400
2386
  color: "var(--semantic-color-content-secondary)"
2401
2387
  },
@@ -2412,10 +2398,10 @@ const Fi = {
2412
2398
  {
2413
2399
  ref: l,
2414
2400
  "data-orientation": a,
2415
- className: d(Re({ orientation: a }), t),
2401
+ className: d(Ie({ orientation: a }), i),
2416
2402
  ...s,
2417
- children: i.map((p, c) => /* @__PURE__ */ g(f.Fragment, { children: [
2418
- /* @__PURE__ */ e("dt", { className: "text-sm font-medium text-muted-foreground", children: p.term }),
2403
+ children: t.map((p, c) => /* @__PURE__ */ g(v.Fragment, { children: [
2404
+ /* @__PURE__ */ e("dt", { className: "hds-type-ui text-muted-foreground", children: p.term }),
2419
2405
  /* @__PURE__ */ e("dd", { className: d("m-0 text-foreground"), children: p.description })
2420
2406
  ] }, c))
2421
2407
  }
@@ -2424,19 +2410,19 @@ const Fi = {
2424
2410
  {
2425
2411
  ref: l,
2426
2412
  "data-orientation": a,
2427
- className: d(Re({ orientation: a }), t),
2413
+ className: d(Ie({ orientation: a }), i),
2428
2414
  ...s,
2429
- children: i.map((p, c) => /* @__PURE__ */ g("div", { className: "flex flex-col gap-0.5", children: [
2430
- /* @__PURE__ */ e("dt", { className: "text-sm font-medium text-muted-foreground", children: p.term }),
2415
+ children: t.map((p, c) => /* @__PURE__ */ g("div", { className: "flex flex-col gap-0.5", children: [
2416
+ /* @__PURE__ */ e("dt", { className: "hds-type-ui text-muted-foreground", children: p.term }),
2431
2417
  /* @__PURE__ */ e("dd", { className: d("m-0 text-foreground"), children: p.description })
2432
2418
  ] }, c))
2433
2419
  }
2434
2420
  );
2435
2421
  }
2436
- ), ja = /* @__PURE__ */ q.forwardRef(
2422
+ ), Ua = /* @__PURE__ */ X.forwardRef(
2437
2423
  function({
2438
- children: t,
2439
- side: i = "start",
2424
+ children: i,
2425
+ side: t = "start",
2440
2426
  sideWidth: a = "16rem",
2441
2427
  contentMin: r = "50%",
2442
2428
  gap: n = "normal",
@@ -2444,22 +2430,22 @@ const Fi = {
2444
2430
  style: l,
2445
2431
  as: p = "div"
2446
2432
  }, c) {
2447
- const [u, m] = t;
2433
+ const [u, m] = i;
2448
2434
  return /* @__PURE__ */ g(
2449
2435
  p,
2450
2436
  {
2451
2437
  ref: c,
2452
2438
  className: s,
2453
2439
  "data-hds-component": "Sidebar",
2454
- "data-hds-metrics": `side:${i}`,
2440
+ "data-hds-metrics": `side:${t}`,
2455
2441
  style: {
2456
2442
  display: "flex",
2457
2443
  flexWrap: "wrap",
2458
- gap: He(n, We),
2444
+ gap: Fe(n, _e),
2459
2445
  ...l
2460
2446
  },
2461
2447
  children: [
2462
- /* @__PURE__ */ e("div", { style: { flexBasis: a, flexGrow: 1, order: i === "end" ? 2 : 1 }, children: u }),
2448
+ /* @__PURE__ */ e("div", { style: { flexBasis: a, flexGrow: 1, order: t === "end" ? 2 : 1 }, children: u }),
2463
2449
  /* @__PURE__ */ e(
2464
2450
  "div",
2465
2451
  {
@@ -2467,7 +2453,7 @@ const Fi = {
2467
2453
  flexBasis: 0,
2468
2454
  flexGrow: 999,
2469
2455
  minWidth: r,
2470
- order: i === "end" ? 1 : 2
2456
+ order: t === "end" ? 1 : 2
2471
2457
  },
2472
2458
  children: m
2473
2459
  }
@@ -2476,27 +2462,27 @@ const Fi = {
2476
2462
  }
2477
2463
  );
2478
2464
  }
2479
- ), Ua = /* @__PURE__ */ q.forwardRef(
2480
- function({ children: t, threshold: i = "30rem", gap: a = "normal", limit: r, className: n, style: s, as: l = "div" }, p) {
2481
- const c = q.Children.toArray(t), u = r !== void 0 && c.length > r;
2465
+ ), Ya = /* @__PURE__ */ X.forwardRef(
2466
+ function({ children: i, threshold: t = "30rem", gap: a = "normal", limit: r, className: n, style: s, as: l = "div" }, p) {
2467
+ const c = X.Children.toArray(i), u = r !== void 0 && c.length > r;
2482
2468
  return /* @__PURE__ */ e(
2483
2469
  l,
2484
2470
  {
2485
2471
  ref: p,
2486
2472
  className: n,
2487
2473
  "data-hds-component": "Switcher",
2488
- "data-hds-metrics": `threshold:${i}`,
2474
+ "data-hds-metrics": `threshold:${t}`,
2489
2475
  style: {
2490
2476
  display: "flex",
2491
2477
  flexWrap: "wrap",
2492
- gap: He(a, We),
2478
+ gap: Fe(a, _e),
2493
2479
  ...u && { flexDirection: "column" },
2494
2480
  ...s
2495
2481
  },
2496
2482
  children: c.map((m, y) => /* @__PURE__ */ e(
2497
2483
  "div",
2498
2484
  {
2499
- style: u ? void 0 : { flexGrow: 1, flexBasis: `calc((${i} - 100%) * 999)` },
2485
+ style: u ? void 0 : { flexGrow: 1, flexBasis: `calc((${t} - 100%) * 999)` },
2500
2486
  children: m
2501
2487
  },
2502
2488
  y
@@ -2504,21 +2490,21 @@ const Fi = {
2504
2490
  }
2505
2491
  );
2506
2492
  }
2507
- ), Ya = /* @__PURE__ */ q.forwardRef(function({ children: t, top: i = "0", className: a, style: r, as: n = "div" }, s) {
2493
+ ), qa = /* @__PURE__ */ X.forwardRef(function({ children: i, top: t = "0", className: a, style: r, as: n = "div" }, s) {
2508
2494
  return /* @__PURE__ */ e(
2509
2495
  n,
2510
2496
  {
2511
2497
  ref: s,
2512
2498
  className: ["hds-pin", a].filter(Boolean).join(" "),
2513
2499
  "data-hds-component": "Pin",
2514
- style: { "--hds-pin-top": i, ...r },
2515
- children: t
2500
+ style: { "--hds-pin-top": t, ...r },
2501
+ children: i
2516
2502
  }
2517
2503
  );
2518
- }), qa = de.Root;
2519
- function Xa({ className: o, ...t }) {
2504
+ }), Xa = fe.Root;
2505
+ function Ka({ className: o, ...i }) {
2520
2506
  return /* @__PURE__ */ e(
2521
- de.List,
2507
+ fe.List,
2522
2508
  {
2523
2509
  className: d(
2524
2510
  "flex h-10 items-center gap-6 overflow-x-auto whitespace-nowrap",
@@ -2526,19 +2512,19 @@ function Xa({ className: o, ...t }) {
2526
2512
  "[&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]",
2527
2513
  o
2528
2514
  ),
2529
- ...t
2515
+ ...i
2530
2516
  }
2531
2517
  );
2532
2518
  }
2533
- function Ka({
2519
+ function Ja({
2534
2520
  className: o,
2535
- ...t
2521
+ ...i
2536
2522
  }) {
2537
2523
  return /* @__PURE__ */ e(
2538
- de.Trigger,
2524
+ fe.Trigger,
2539
2525
  {
2540
2526
  className: d(
2541
- "relative -mb-px inline-flex items-center px-3 py-2 text-sm transition-colors",
2527
+ "relative -mb-px inline-flex items-center px-3 py-2 hds-type-ui transition-colors",
2542
2528
  "border-b-2 border-transparent text-muted-foreground rounded-t-md",
2543
2529
  // impeccable-disable-line border-accent-on-rounded -- false positive: the bottom edge and top corners never touch
2544
2530
  "data-[state=active]:border-foreground data-[state=active]:text-foreground data-[state=active]:bg-accent/5",
@@ -2546,23 +2532,23 @@ function Ka({
2546
2532
  "disabled:pointer-events-none disabled:opacity-50",
2547
2533
  o
2548
2534
  ),
2549
- ...t
2535
+ ...i
2550
2536
  }
2551
2537
  );
2552
2538
  }
2553
- function Ja({
2539
+ function Za({
2554
2540
  className: o,
2555
- ...t
2541
+ ...i
2556
2542
  }) {
2557
2543
  return /* @__PURE__ */ e(
2558
- de.Content,
2544
+ fe.Content,
2559
2545
  {
2560
2546
  className: d("bg-accent/5 rounded-b-md p-6 -mt-6", o),
2561
- ...t
2547
+ ...i
2562
2548
  }
2563
2549
  );
2564
2550
  }
2565
- const Oi = /* @__PURE__ */ $("", {
2551
+ const Ut = /* @__PURE__ */ $("", {
2566
2552
  variants: {
2567
2553
  current: {
2568
2554
  true: "text-foreground",
@@ -2570,17 +2556,17 @@ const Oi = /* @__PURE__ */ $("", {
2570
2556
  }
2571
2557
  },
2572
2558
  defaultVariants: { current: !1 }
2573
- }), Za = /* @__PURE__ */ f.forwardRef(
2574
- function({ items: t, label: i = "Breadcrumb", className: a, ...r }, n) {
2575
- const { LinkComponent: s } = Fe();
2576
- return /* @__PURE__ */ e("nav", { ref: n, "aria-label": i, className: d("w-full", a), ...r, children: /* @__PURE__ */ e("ol", { className: "flex flex-wrap items-center gap-2", children: t.map((l, p) => {
2577
- const c = p === t.length - 1, u = !!l.href && !c;
2559
+ }), Qa = /* @__PURE__ */ v.forwardRef(
2560
+ function({ items: i, label: t = "Breadcrumb", className: a, ...r }, n) {
2561
+ const { LinkComponent: s } = Oe();
2562
+ return /* @__PURE__ */ e("nav", { ref: n, "aria-label": t, className: d("w-full", a), ...r, children: /* @__PURE__ */ e("ol", { className: "flex flex-wrap items-center gap-2", children: i.map((l, p) => {
2563
+ const c = p === i.length - 1, u = !!l.href && !c;
2578
2564
  return /* @__PURE__ */ g("li", { className: "inline-flex items-center gap-2", children: [
2579
2565
  u ? /* @__PURE__ */ e(
2580
2566
  s,
2581
2567
  {
2582
2568
  to: l.href,
2583
- style: N.typeStyles.ui,
2569
+ style: z.typeStyles.ui,
2584
2570
  className: "hds-focus text-muted-foreground transition-colors hover:text-foreground",
2585
2571
  children: l.label
2586
2572
  }
@@ -2588,15 +2574,15 @@ const Oi = /* @__PURE__ */ $("", {
2588
2574
  "span",
2589
2575
  {
2590
2576
  "aria-current": c ? "page" : void 0,
2591
- style: N.typeStyles.ui,
2592
- className: Oi({ current: c }),
2577
+ style: z.typeStyles.ui,
2578
+ className: Ut({ current: c }),
2593
2579
  children: l.label
2594
2580
  }
2595
2581
  ),
2596
2582
  !c && /* @__PURE__ */ e(
2597
- M,
2583
+ A,
2598
2584
  {
2599
- icon: be,
2585
+ icon: xe,
2600
2586
  size: "small",
2601
2587
  color: "var(--semantic-color-content-secondary)",
2602
2588
  "aria-hidden": !0
@@ -2605,10 +2591,10 @@ const Oi = /* @__PURE__ */ $("", {
2605
2591
  ] }, `${l.label}-${p}`);
2606
2592
  }) }) });
2607
2593
  }
2608
- ), Qa = /* @__PURE__ */ f.forwardRef(
2594
+ ), er = /* @__PURE__ */ v.forwardRef(
2609
2595
  function({
2610
- options: t,
2611
- placeholder: i = "Select…",
2596
+ options: i,
2597
+ placeholder: t = "Select…",
2612
2598
  searchPlaceholder: a = "Search…",
2613
2599
  emptyMessage: r = "No results",
2614
2600
  "aria-label": n,
@@ -2620,58 +2606,63 @@ const Oi = /* @__PURE__ */ $("", {
2620
2606
  // The arm-specific trio (multiple, value, onChange), still discriminated.
2621
2607
  ...m
2622
2608
  }, y) {
2623
- var ae;
2624
- const [k, b] = f.useState(!1), [w, S] = f.useState(""), [h, C] = f.useState(0), V = f.useId(), I = `${V}-list`, T = n || i, L = m.multiple ? m.value : m.value === null ? [] : [m.value], R = m.multiple ? L.flatMap((v) => t.find((z) => z.value === v) ?? []) : [], D = R.length > 0 ? `${R.length} selected` : void 0, x = m.multiple ? D : (ae = t.find((v) => v.value === m.value)) == null ? void 0 : ae.label, P = f.useMemo(() => {
2625
- const v = w.trim().toLowerCase();
2626
- return v ? t.filter((z) => z.label.toLowerCase().includes(v)) : t;
2627
- }, [t, w]);
2628
- function B(v) {
2629
- if (!v.disabled) {
2609
+ var K;
2610
+ const [k, b] = v.useState(!1), [w, S] = v.useState(""), [h, C] = v.useState(0), L = v.useId(), I = `${L}-list`, T = n || t, V = m.multiple ? m.value : m.value === null ? [] : [m.value], P = m.multiple ? V.flatMap((f) => i.find((N) => N.value === f) ?? []) : [], D = P.length > 0 ? `${P.length} selected` : void 0, x = m.multiple ? D : (K = i.find((f) => f.value === m.value)) == null ? void 0 : K.label, R = v.useMemo(() => {
2611
+ const f = w.trim().toLowerCase();
2612
+ return f ? i.filter((N) => N.label.toLowerCase().includes(f)) : i;
2613
+ }, [i, w]);
2614
+ function B(f) {
2615
+ if (!f.disabled) {
2630
2616
  if (m.multiple) {
2631
2617
  m.onChange(
2632
- L.includes(v.value) ? L.filter((z) => z !== v.value) : [...L, v.value]
2618
+ V.includes(f.value) ? V.filter((N) => N !== f.value) : [...V, f.value]
2633
2619
  );
2634
2620
  return;
2635
2621
  }
2636
- m.onChange(v.value), b(!1), S("");
2622
+ m.onChange(f.value), b(!1), S("");
2637
2623
  }
2638
2624
  }
2639
- const U = f.useRef(null), H = f.useRef(null);
2640
- f.useEffect(() => {
2641
- var K;
2642
- const v = H.current;
2643
- if (!v || R.length === v.count || (H.current = null, R.length > v.count)) return;
2644
- const z = U.current, W = (z == null ? void 0 : z.querySelectorAll("li button:not(:disabled)")) ?? [];
2645
- (K = W[Math.min(v.index, W.length - 1)] ?? (z == null ? void 0 : z.querySelector('[role="combobox"]'))) == null || K.focus();
2646
- }, [R.length]);
2647
- function Y(v, z) {
2648
- m.multiple && (H.current = { index: z, count: R.length }, m.onChange(L.filter((W) => W !== v.value)));
2625
+ const q = v.useRef(null), W = v.useRef(null), G = v.useRef(!1), te = v.useCallback(
2626
+ (f) => {
2627
+ W.current = f, typeof y == "function" ? y(f) : y && (y.current = f);
2628
+ },
2629
+ [y]
2630
+ ), ae = v.useRef(null);
2631
+ v.useEffect(() => {
2632
+ var pe;
2633
+ const f = ae.current;
2634
+ if (!f || P.length === f.count || (ae.current = null, P.length > f.count)) return;
2635
+ const N = q.current, F = (N == null ? void 0 : N.querySelectorAll("li button:not(:disabled)")) ?? [];
2636
+ (pe = F[Math.min(f.index, F.length - 1)] ?? (N == null ? void 0 : N.querySelector('[role="combobox"]'))) == null || pe.focus();
2637
+ }, [P.length]);
2638
+ function ce(f, N) {
2639
+ m.multiple && (ae.current = { index: N, count: P.length }, m.onChange(V.filter((F) => F !== f.value)));
2649
2640
  }
2650
- function te(v) {
2651
- if (P.length !== 0) {
2652
- if (v.key === "ArrowDown")
2653
- v.preventDefault(), C((z) => (z + 1) % P.length);
2654
- else if (v.key === "ArrowUp")
2655
- v.preventDefault(), C((z) => (z - 1 + P.length) % P.length);
2656
- else if (v.key === "Enter") {
2657
- v.preventDefault();
2658
- const z = P[h];
2659
- z && B(z);
2641
+ function de(f) {
2642
+ if (R.length !== 0) {
2643
+ if (f.key === "ArrowDown")
2644
+ f.preventDefault(), C((N) => (N + 1) % R.length);
2645
+ else if (f.key === "ArrowUp")
2646
+ f.preventDefault(), C((N) => (N - 1 + R.length) % R.length);
2647
+ else if (f.key === "Enter") {
2648
+ f.preventDefault();
2649
+ const N = R[h];
2650
+ N && B(N);
2660
2651
  }
2661
2652
  }
2662
2653
  }
2663
- const ue = P[h] ? `${V}-opt-${P[h].value}` : void 0, ie = /* @__PURE__ */ g(
2664
- fe,
2654
+ const M = R[h] ? `${L}-opt-${R[h].value}` : void 0, re = /* @__PURE__ */ g(
2655
+ be,
2665
2656
  {
2666
2657
  open: k,
2667
- onOpenChange: (v) => {
2668
- b(v), v || S("");
2658
+ onOpenChange: (f) => {
2659
+ b(f), f || S("");
2669
2660
  },
2670
2661
  children: [
2671
- /* @__PURE__ */ e(fe.Anchor, { asChild: !0, children: /* @__PURE__ */ g(
2662
+ /* @__PURE__ */ e(be.Anchor, { asChild: !0, children: /* @__PURE__ */ g(
2672
2663
  "button",
2673
2664
  {
2674
- ref: y,
2665
+ ref: te,
2675
2666
  id: s,
2676
2667
  type: "button",
2677
2668
  role: "combobox",
@@ -2682,19 +2673,20 @@ const Oi = /* @__PURE__ */ $("", {
2682
2673
  "aria-describedby": l,
2683
2674
  "aria-invalid": p,
2684
2675
  disabled: u,
2685
- onClick: () => b((v) => !v),
2676
+ onClick: () => b((f) => !f),
2686
2677
  className: d(
2687
- "hds-focus flex h-10 w-full items-center justify-between gap-2 rounded-md border border-input",
2688
- "bg-background px-3 text-sm text-foreground",
2678
+ "hds-focus flex h-10 items-center justify-between gap-2 rounded-md border border-input",
2679
+ Q,
2680
+ "bg-background px-3 hds-type-ui text-foreground",
2689
2681
  "disabled:cursor-not-allowed disabled:opacity-50",
2690
2682
  c
2691
2683
  ),
2692
2684
  children: [
2693
- /* @__PURE__ */ e("span", { className: d("truncate", !x && "text-muted-foreground"), children: x || i }),
2685
+ /* @__PURE__ */ e("span", { className: d("truncate", !x && "text-muted-foreground"), children: x || t }),
2694
2686
  /* @__PURE__ */ e(
2695
- M,
2687
+ A,
2696
2688
  {
2697
- icon: lt,
2689
+ icon: Be,
2698
2690
  size: "small",
2699
2691
  color: "var(--semantic-color-content-secondary)",
2700
2692
  "aria-hidden": !0
@@ -2704,12 +2696,19 @@ const Oi = /* @__PURE__ */ $("", {
2704
2696
  }
2705
2697
  ) }),
2706
2698
  /* @__PURE__ */ g(
2707
- fe.Content,
2699
+ be.Content,
2708
2700
  {
2709
2701
  "aria-label": T,
2710
2702
  align: "start",
2711
2703
  className: "p-0",
2712
2704
  style: { width: "var(--radix-popover-trigger-width)" },
2705
+ onInteractOutside: () => {
2706
+ G.current = !0;
2707
+ },
2708
+ onCloseAutoFocus: (f) => {
2709
+ var N;
2710
+ G.current || (f.preventDefault(), (N = W.current) == null || N.focus()), G.current = !1;
2711
+ },
2713
2712
  children: [
2714
2713
  /* @__PURE__ */ e(
2715
2714
  "input",
@@ -2721,15 +2720,15 @@ const Oi = /* @__PURE__ */ $("", {
2721
2720
  "aria-expanded": !0,
2722
2721
  "aria-controls": I,
2723
2722
  "aria-autocomplete": "list",
2724
- "aria-activedescendant": ue,
2723
+ "aria-activedescendant": M,
2725
2724
  "aria-label": a,
2726
2725
  placeholder: a,
2727
- onChange: (v) => {
2728
- S(v.target.value), C(0);
2726
+ onChange: (f) => {
2727
+ S(f.target.value), C(0);
2729
2728
  },
2730
- onKeyDown: te,
2729
+ onKeyDown: de,
2731
2730
  className: d(
2732
- "hds-focus h-10 w-full border-b border-border bg-transparent px-3 text-sm text-foreground",
2731
+ "hds-focus h-10 w-full border-b border-border bg-transparent px-3 hds-type-ui text-foreground",
2733
2732
  "outline-none placeholder:text-muted-foreground"
2734
2733
  )
2735
2734
  }
@@ -2741,65 +2740,65 @@ const Oi = /* @__PURE__ */ $("", {
2741
2740
  role: "listbox",
2742
2741
  "aria-label": T,
2743
2742
  "aria-multiselectable": m.multiple || void 0,
2744
- className: d("max-h-60 overflow-y-auto", P.length > 0 && "p-1"),
2745
- children: P.map((v, z) => {
2746
- const W = L.includes(v.value), X = z === h;
2743
+ className: d("max-h-60 overflow-y-auto", R.length > 0 && "p-1"),
2744
+ children: R.map((f, N) => {
2745
+ const F = V.includes(f.value), ne = N === h;
2747
2746
  return /* @__PURE__ */ e("li", { role: "none", children: /* @__PURE__ */ g(
2748
2747
  "button",
2749
2748
  {
2750
2749
  type: "button",
2751
- id: `${V}-opt-${v.value}`,
2750
+ id: `${L}-opt-${f.value}`,
2752
2751
  role: "option",
2753
- "aria-selected": W,
2754
- "data-active": X ? "true" : void 0,
2755
- disabled: v.disabled,
2756
- onMouseEnter: () => C(z),
2757
- onClick: () => B(v),
2752
+ "aria-selected": F,
2753
+ "data-active": ne ? "true" : void 0,
2754
+ disabled: f.disabled,
2755
+ onMouseEnter: () => C(N),
2756
+ onClick: () => B(f),
2758
2757
  className: d(
2759
- "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none",
2758
+ "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left hds-type-ui outline-none",
2760
2759
  "data-[active=true]:bg-accent data-[active=true]:text-accent-foreground",
2761
2760
  "data-[active=true]:ring-2 data-[active=true]:ring-inset data-[active=true]:ring-ring",
2762
2761
  "disabled:pointer-events-none disabled:opacity-50"
2763
2762
  ),
2764
2763
  children: [
2765
- /* @__PURE__ */ e("span", { className: "flex size-4 items-center justify-center", children: W ? /* @__PURE__ */ e(M, { icon: re, size: "small", color: "currentColor", "aria-hidden": !0 }) : null }),
2766
- /* @__PURE__ */ e("span", { className: "truncate", children: v.label })
2764
+ /* @__PURE__ */ e("span", { className: "flex size-4 items-center justify-center", children: F ? /* @__PURE__ */ e(A, { icon: oe, size: "small", color: "currentColor", "aria-hidden": !0 }) : null }),
2765
+ /* @__PURE__ */ e("span", { className: "truncate", children: f.label })
2767
2766
  ]
2768
2767
  }
2769
- ) }, v.value);
2768
+ ) }, f.value);
2770
2769
  })
2771
2770
  }
2772
2771
  ),
2773
- P.length === 0 ? /* @__PURE__ */ e("p", { className: "m-1 px-2 py-6 text-center text-sm text-muted-foreground", children: r }) : null
2772
+ R.length === 0 ? /* @__PURE__ */ e("p", { className: "m-1 px-2 py-6 text-center hds-type-ui text-muted-foreground", children: r }) : null
2774
2773
  ]
2775
2774
  }
2776
2775
  )
2777
2776
  ]
2778
2777
  }
2779
2778
  );
2780
- return m.multiple ? /* @__PURE__ */ g("div", { ref: U, className: "flex w-full flex-col gap-2", children: [
2781
- ie,
2782
- R.length > 0 ? /* @__PURE__ */ e("ul", { className: "flex flex-wrap gap-1", children: R.map((v, z) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ g(
2779
+ return m.multiple ? /* @__PURE__ */ g("div", { ref: q, className: d("flex flex-col gap-2", Q), children: [
2780
+ re,
2781
+ P.length > 0 ? /* @__PURE__ */ e("ul", { className: "flex flex-wrap gap-1", children: P.map((f, N) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ g(
2783
2782
  "button",
2784
2783
  {
2785
2784
  type: "button",
2786
- "aria-label": `Remove ${v.label}`,
2787
- disabled: u || v.disabled,
2788
- onClick: () => Y(v, z),
2785
+ "aria-label": `Remove ${f.label}`,
2786
+ disabled: u || f.disabled,
2787
+ onClick: () => ce(f, N),
2789
2788
  className: d(
2790
2789
  "hds-focus inline-flex h-7 items-center gap-1 rounded-sm border border-border bg-muted pl-2 pr-1",
2791
- "text-xs text-foreground hover:bg-accent hover:text-accent-foreground",
2790
+ "hds-type-caption text-foreground hover:bg-accent hover:text-accent-foreground",
2792
2791
  "disabled:pointer-events-none disabled:opacity-50"
2793
2792
  ),
2794
2793
  children: [
2795
- v.label,
2796
- /* @__PURE__ */ e(M, { icon: ce, size: "small", color: "currentColor", "aria-hidden": !0 })
2794
+ f.label,
2795
+ /* @__PURE__ */ e(A, { icon: ve, size: "small", color: "currentColor", "aria-hidden": !0 })
2797
2796
  ]
2798
2797
  }
2799
- ) }, v.value)) }) : null
2800
- ] }) : ie;
2798
+ ) }, f.value)) }) : null
2799
+ ] }) : re;
2801
2800
  }
2802
- ), ji = /* @__PURE__ */ $(
2801
+ ), Yt = /* @__PURE__ */ $(
2803
2802
  "flex w-full cursor-pointer items-center gap-[var(--semantic-space-sidebar-gap)] text-left text-primary transition-[border-color,box-shadow,color]",
2804
2803
  {
2805
2804
  variants: {
@@ -2812,14 +2811,14 @@ const Oi = /* @__PURE__ */ $("", {
2812
2811
  },
2813
2812
  defaultVariants: { variant: "panel" }
2814
2813
  }
2815
- ), Ui = {
2816
- panel: N.semantic.space.sidebar.gap,
2817
- nav: N.semantic.space.sidebar.sectionGap,
2818
- card: N.semantic.space.scale.xs
2819
- }, er = /* @__PURE__ */ q.forwardRef(
2814
+ ), qt = {
2815
+ panel: z.semantic.space.sidebar.gap,
2816
+ nav: z.semantic.space.sidebar.sectionGap,
2817
+ card: z.semantic.space.scale.xs
2818
+ }, ir = /* @__PURE__ */ X.forwardRef(
2820
2819
  function({
2821
- label: t,
2822
- defaultOpen: i = !1,
2820
+ label: i,
2821
+ defaultOpen: t = !1,
2823
2822
  open: a,
2824
2823
  onOpenChange: r,
2825
2824
  variant: n = "panel",
@@ -2829,25 +2828,25 @@ const Oi = /* @__PURE__ */ $("", {
2829
2828
  contentStyle: c,
2830
2829
  children: u
2831
2830
  }, m) {
2832
- const [y, k] = j(i), b = Ve(), w = ge(null), S = ge(null), h = a ?? y, C = h ? "open" : "closed", V = G("productive");
2831
+ const [y, k] = Y(t), b = Me(), w = $e(null), S = $e(null), h = a ?? y, C = h ? "open" : "closed", L = j("productive");
2833
2832
  function I() {
2834
- var P, B;
2833
+ var R, B;
2835
2834
  const x = !h;
2836
- !x && ((P = S.current) != null && P.contains(document.activeElement)) && ((B = w.current) == null || B.focus()), a === void 0 && k(x), r == null || r(x);
2835
+ !x && ((R = S.current) != null && R.contains(document.activeElement)) && ((B = w.current) == null || B.focus()), a === void 0 && k(x), r == null || r(x);
2837
2836
  }
2838
2837
  const T = d(
2839
2838
  "hds-focus",
2840
- ji({ variant: n }),
2839
+ Yt({ variant: n }),
2841
2840
  n === "nav" ? "hds-text-hover hds-bg-hover-neutral" : "",
2842
2841
  l
2843
- ), L = h ? Ui[n] : 0, R = typeof t == "string" ? /* @__PURE__ */ e(
2842
+ ), V = h ? qt[n] : 0, P = typeof i == "string" ? /* @__PURE__ */ e(
2844
2843
  "span",
2845
2844
  {
2846
2845
  className: "m-0 text-current",
2847
- style: n === "nav" ? N.typeStyles.ui : N.typeStyles.caption,
2848
- children: t
2846
+ style: n === "nav" ? z.typeStyles.ui : z.typeStyles.caption,
2847
+ children: i
2849
2848
  }
2850
- ) : t, D = /* @__PURE__ */ g(et, { children: [
2849
+ ) : i, D = /* @__PURE__ */ g(ii, { children: [
2851
2850
  /* @__PURE__ */ g(
2852
2851
  "button",
2853
2852
  {
@@ -2860,25 +2859,25 @@ const Oi = /* @__PURE__ */ $("", {
2860
2859
  className: T,
2861
2860
  style: p,
2862
2861
  children: [
2863
- /* @__PURE__ */ e("div", { className: "grid min-w-0 flex-1 items-start gap-[var(--semantic-space-subgrid-gap)]", children: R }),
2862
+ /* @__PURE__ */ e("div", { className: "grid min-w-0 flex-1 items-start gap-[var(--semantic-space-subgrid-gap)]", children: P }),
2864
2863
  /* @__PURE__ */ e(
2865
- A.span,
2864
+ H.span,
2866
2865
  {
2867
2866
  "aria-hidden": "true",
2868
2867
  animate: { rotate: h ? 0 : -90 },
2869
2868
  transition: {
2870
- duration: V.duration,
2871
- ease: V.easing
2869
+ duration: L.duration,
2870
+ ease: L.easing
2872
2871
  },
2873
2872
  className: "inline-grid size-[var(--hds-icon-small)] shrink-0 origin-center place-items-center self-center overflow-hidden leading-none",
2874
- children: /* @__PURE__ */ e(M, { icon: Ae, size: "small", color: "currentColor" })
2873
+ children: /* @__PURE__ */ e(A, { icon: ci, size: "small", color: "currentColor" })
2875
2874
  }
2876
2875
  )
2877
2876
  ]
2878
2877
  }
2879
2878
  ),
2880
- /* @__PURE__ */ e(it, { initial: !1, children: h && /* @__PURE__ */ e(
2881
- A.div,
2879
+ /* @__PURE__ */ e(ai, { initial: !1, children: h && /* @__PURE__ */ e(
2880
+ H.div,
2882
2881
  {
2883
2882
  ref: S,
2884
2883
  id: b,
@@ -2886,8 +2885,8 @@ const Oi = /* @__PURE__ */ $("", {
2886
2885
  animate: { opacity: 1, height: "auto" },
2887
2886
  exit: { opacity: 0, height: 0 },
2888
2887
  transition: {
2889
- duration: V.duration,
2890
- ease: V.easing
2888
+ duration: L.duration,
2889
+ ease: L.easing
2891
2890
  },
2892
2891
  className: "overflow-hidden",
2893
2892
  children: /* @__PURE__ */ e(
@@ -2902,41 +2901,41 @@ const Oi = /* @__PURE__ */ $("", {
2902
2901
  }
2903
2902
  ) })
2904
2903
  ] });
2905
- return n === "nav" ? /* @__PURE__ */ e(ze, { ref: m, gap: "tight", style: { gap: L }, children: D }) : /* @__PURE__ */ e(
2906
- Be,
2904
+ return n === "nav" ? /* @__PURE__ */ e(De, { ref: m, gap: "tight", style: { gap: V }, children: D }) : /* @__PURE__ */ e(
2905
+ mi,
2907
2906
  {
2908
2907
  ref: m,
2909
2908
  padding: "component",
2910
2909
  className: n === "card" ? "overflow-hidden" : void 0,
2911
- children: /* @__PURE__ */ e(ze, { gap: "tight", style: { gap: L }, children: D })
2910
+ children: /* @__PURE__ */ e(De, { gap: "tight", style: { gap: V }, children: D })
2912
2911
  }
2913
2912
  );
2914
2913
  }
2915
2914
  );
2916
- function se(o, t) {
2917
- return Array.from({ length: t - o + 1 }, (i, a) => o + a);
2915
+ function ue(o, i) {
2916
+ return Array.from({ length: i - o + 1 }, (t, a) => o + a);
2918
2917
  }
2919
- function Yi(o, t, i = 1) {
2920
- const a = i * 2 + 5;
2921
- if (t <= a) return se(1, t);
2922
- const r = Math.max(o - i, 1), n = Math.min(o + i, t), s = r > 2, l = n < t - 1;
2923
- return !s && l ? [...se(1, i * 2 + 3), "ellipsis", t] : s && !l ? [1, "ellipsis", ...se(t - (i * 2 + 2), t)] : [1, "ellipsis", ...se(r, n), "ellipsis", t];
2918
+ function Xt(o, i, t = 1) {
2919
+ const a = t * 2 + 5;
2920
+ if (i <= a) return ue(1, i);
2921
+ const r = Math.max(o - t, 1), n = Math.min(o + t, i), s = r > 2, l = n < i - 1;
2922
+ return !s && l ? [...ue(1, t * 2 + 3), "ellipsis", i] : s && !l ? [1, "ellipsis", ...ue(i - (t * 2 + 2), i)] : [1, "ellipsis", ...ue(r, n), "ellipsis", i];
2924
2923
  }
2925
- const tr = /* @__PURE__ */ f.forwardRef(
2926
- function({ page: t, count: i, onPageChange: a, siblingCount: r = 1, label: n = "Pagination", className: s, ...l }, p) {
2927
- if (i <= 1) return null;
2928
- const c = Yi(t, i, r), u = (m) => a(Math.max(1, Math.min(i, m)));
2924
+ const tr = /* @__PURE__ */ v.forwardRef(
2925
+ function({ page: i, count: t, onPageChange: a, siblingCount: r = 1, label: n = "Pagination", className: s, ...l }, p) {
2926
+ if (t <= 1) return null;
2927
+ const c = Xt(i, t, r), u = (m) => a(Math.max(1, Math.min(t, m)));
2929
2928
  return /* @__PURE__ */ e("nav", { ref: p, "aria-label": n, className: d("w-full", s), ...l, children: /* @__PURE__ */ g("ul", { className: "flex flex-wrap items-center gap-1", children: [
2930
2929
  /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2931
- le,
2930
+ me,
2932
2931
  {
2933
2932
  iconOnly: !0,
2934
2933
  size: "sm",
2935
2934
  variant: "tertiary",
2936
2935
  "aria-label": "Previous page",
2937
- disabled: t <= 1,
2938
- onClick: () => u(t - 1),
2939
- iconLeft: /* @__PURE__ */ e(M, { icon: ct, size: "small" })
2936
+ disabled: i <= 1,
2937
+ onClick: () => u(i - 1),
2938
+ iconLeft: /* @__PURE__ */ e(A, { icon: di, size: "small" })
2940
2939
  }
2941
2940
  ) }),
2942
2941
  c.map(
@@ -2949,32 +2948,33 @@ const tr = /* @__PURE__ */ f.forwardRef(
2949
2948
  },
2950
2949
  `ellipsis-${y}`
2951
2950
  ) : /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2952
- le,
2951
+ me,
2953
2952
  {
2954
- variant: m === t ? "secondary" : "tertiary",
2953
+ variant: m === i ? "secondary" : "tertiary",
2955
2954
  size: "sm",
2955
+ className: "hds-touch-target",
2956
2956
  "aria-label": `Page ${m}`,
2957
- "aria-current": m === t ? "page" : void 0,
2957
+ "aria-current": m === i ? "page" : void 0,
2958
2958
  onClick: () => u(m),
2959
2959
  children: m
2960
2960
  }
2961
2961
  ) }, m)
2962
2962
  ),
2963
2963
  /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2964
- le,
2964
+ me,
2965
2965
  {
2966
2966
  iconOnly: !0,
2967
2967
  size: "sm",
2968
2968
  variant: "tertiary",
2969
2969
  "aria-label": "Next page",
2970
- disabled: t >= i,
2971
- onClick: () => u(t + 1),
2972
- iconLeft: /* @__PURE__ */ e(M, { icon: be, size: "small" })
2970
+ disabled: i >= t,
2971
+ onClick: () => u(i + 1),
2972
+ iconLeft: /* @__PURE__ */ e(A, { icon: xe, size: "small" })
2973
2973
  }
2974
2974
  ) })
2975
2975
  ] }) });
2976
2976
  }
2977
- ), qi = /* @__PURE__ */ $("", {
2977
+ ), Kt = /* @__PURE__ */ $("", {
2978
2978
  variants: {
2979
2979
  tone: {
2980
2980
  neutral: "text-muted-foreground",
@@ -2985,41 +2985,41 @@ const tr = /* @__PURE__ */ f.forwardRef(
2985
2985
  }
2986
2986
  },
2987
2987
  defaultVariants: { tone: "neutral" }
2988
- }), Ye = /* @__PURE__ */ f.createContext(null);
2989
- function ir() {
2990
- const o = f.useContext(Ye);
2988
+ }), Xe = /* @__PURE__ */ v.createContext(null);
2989
+ function ar() {
2990
+ const o = v.useContext(Xe);
2991
2991
  if (!o) throw new Error("useToast must be used within a <ToastProvider>");
2992
2992
  return o;
2993
2993
  }
2994
- const Xi = {
2995
- neutral: he,
2996
- info: he,
2997
- success: Me,
2998
- danger: Ie,
2999
- warning: Le
2994
+ const Jt = {
2995
+ neutral: ye,
2996
+ info: ye,
2997
+ success: Ee,
2998
+ danger: He,
2999
+ warning: Ae
3000
3000
  };
3001
- function ar({
3001
+ function rr({
3002
3002
  children: o,
3003
- duration: t = 5e3,
3004
- swipeDirection: i = "right"
3003
+ duration: i = 5e3,
3004
+ swipeDirection: t = "right"
3005
3005
  }) {
3006
- const [a, r] = f.useState([]), n = f.useRef(0), s = f.useCallback((c) => {
3006
+ const [a, r] = v.useState([]), n = v.useRef(0), s = v.useCallback((c) => {
3007
3007
  r((u) => u.filter((m) => m.id !== c));
3008
- }, []), l = f.useCallback((c) => {
3008
+ }, []), l = v.useCallback((c) => {
3009
3009
  const u = `toast-${n.current += 1}`;
3010
3010
  return r((m) => [...m, { ...c, id: u }]), u;
3011
- }, []), p = f.useMemo(
3011
+ }, []), p = v.useMemo(
3012
3012
  () => ({ toast: l, dismiss: s }),
3013
3013
  [l, s]
3014
3014
  );
3015
- return /* @__PURE__ */ e(Ye.Provider, { value: p, children: /* @__PURE__ */ g(J.Provider, { duration: t, swipeDirection: i, children: [
3015
+ return /* @__PURE__ */ e(Xe.Provider, { value: p, children: /* @__PURE__ */ g(J.Provider, { duration: i, swipeDirection: t, children: [
3016
3016
  o,
3017
3017
  a.map((c) => {
3018
3018
  const u = c.tone ?? "neutral";
3019
3019
  return /* @__PURE__ */ g(
3020
3020
  J.Root,
3021
3021
  {
3022
- duration: c.duration ?? t,
3022
+ duration: c.duration ?? i,
3023
3023
  onOpenChange: (m) => {
3024
3024
  m || s(c.id);
3025
3025
  },
@@ -3030,18 +3030,18 @@ function ar({
3030
3030
  ),
3031
3031
  children: [
3032
3032
  /* @__PURE__ */ e(
3033
- M,
3033
+ A,
3034
3034
  {
3035
- icon: Xi[u],
3035
+ icon: Jt[u],
3036
3036
  size: "small",
3037
3037
  color: "currentColor",
3038
- className: qi({ tone: u }),
3038
+ className: Kt({ tone: u }),
3039
3039
  "aria-hidden": !0
3040
3040
  }
3041
3041
  ),
3042
3042
  /* @__PURE__ */ g("div", { className: "flex min-w-0 flex-col gap-1", children: [
3043
- /* @__PURE__ */ e(J.Title, { className: "text-sm font-medium", children: c.title }),
3044
- c.description ? /* @__PURE__ */ e(J.Description, { className: "text-sm text-muted-foreground", children: c.description }) : null
3043
+ /* @__PURE__ */ e(J.Title, { className: "hds-type-ui", children: c.title }),
3044
+ c.description ? /* @__PURE__ */ e(J.Description, { className: "hds-type-ui text-muted-foreground", children: c.description }) : null
3045
3045
  ] }),
3046
3046
  /* @__PURE__ */ e(
3047
3047
  J.Close,
@@ -3051,7 +3051,7 @@ function ar({
3051
3051
  "absolute right-2 top-2 inline-flex size-6 items-center justify-center",
3052
3052
  "rounded-sm text-muted-foreground transition-colors hover:text-foreground hds-focus"
3053
3053
  ),
3054
- children: /* @__PURE__ */ e(M, { icon: ce, size: "small", color: "currentColor", "aria-hidden": !0 })
3054
+ children: /* @__PURE__ */ e(A, { icon: ve, size: "small", color: "currentColor", "aria-hidden": !0 })
3055
3055
  }
3056
3056
  )
3057
3057
  ]
@@ -3070,95 +3070,94 @@ function ar({
3070
3070
  )
3071
3071
  ] }) });
3072
3072
  }
3073
- const Ki = "https://www.designtokens.org/schemas/2025.10/format.json", Ji = "Adrian Milsap hirobius design tokens - W3C DTCG 2025.10 compliant, Figma SDS architecture", Zi = /* @__PURE__ */ JSON.parse(`{"$description":"Base values used as inputs to derived token layers.","color":{"$type":"color","neutral":{"50":{"$value":"#fafafa","$description":"Specific value within the neutral range at a defined lightness step."},"100":{"$value":"#f5f5f5","$description":"Specific value within the neutral range at a defined lightness step."},"200":{"$value":"#e5e5e5","$description":"Specific value within the neutral range at a defined lightness step."},"300":{"$value":"#d4d4d4","$description":"Specific value within the neutral range at a defined lightness step."},"400":{"$value":"#a3a3a3","$description":"Specific value within the neutral range at a defined lightness step."},"500":{"$value":"#737373","$description":"Specific value within the neutral range at a defined lightness step."},"600":{"$value":"#525252","$description":"Specific value within the neutral range at a defined lightness step."},"700":{"$value":"#404040","$description":"Specific value within the neutral range at a defined lightness step."},"800":{"$value":"#262626","$description":"Specific value within the neutral range at a defined lightness step."},"850":{"$value":"#1a1a1a","$description":"Specific value within the neutral range at a defined lightness step."},"900":{"$value":"#111111","$description":"Specific value within the neutral range at a defined lightness step."},"950":{"$value":"#0a0a0a","$description":"Specific value within the neutral range at a defined lightness step."},"$description":"Discrete values within the neutral range at defined lightness steps.","white":{"$value":"#ffffff","$description":"Specific value within the neutral range at a defined lightness step."},"black":{"$value":"#000000","$description":"Specific value within the neutral range at a defined lightness step."}},"blue":{"50":{"$value":"oklch(0.96 0.03 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"100":{"$value":"oklch(0.92 0.04 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"200":{"$value":"oklch(0.88 0.07 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"300":{"$value":"oklch(0.70 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"400":{"$value":"oklch(0.65 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"450":{"$value":"oklch(0.56 0.29 266.60)","$description":"Specific value within the blue range at a defined lightness step."},"500":{"$value":"#1E2EFD","$description":"Specific value within the blue range at a defined lightness step."},"600":{"$value":"oklch(0.45 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"700":{"$value":"oklch(0.44 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"800":{"$value":"oklch(0.30 0.07 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"900":{"$value":"oklch(0.22 0.05 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"$description":"Discrete values within the blue range at defined lightness steps."},"red":{"50":{"$value":"#fef2f2","$description":"Specific value within the red range at a defined lightness step."},"400":{"$value":"#f87171","$description":"Specific value within the red range at a defined lightness step."},"700":{"$value":"#b91c1c","$description":"Specific value within the red range at a defined lightness step."},"950":{"$value":"#450a0a","$description":"Specific value within the red range at a defined lightness step."},"$description":"Discrete values within the red range at defined lightness steps."},"green":{"50":{"$value":"#ecfdf5","$description":"Specific value within the green range at a defined lightness step."},"400":{"$value":"#34d399","$description":"Specific value within the green range at a defined lightness step."},"700":{"$value":"#047857","$description":"Specific value within the green range at a defined lightness step."},"950":{"$value":"#022c22","$description":"Specific value within the green range at a defined lightness step."},"$description":"Discrete values within the green range at defined lightness steps."},"violet":{"50":{"$value":"#f5f3ff","$description":"Specific value within the violet range at a defined lightness step."},"400":{"$value":"#a78bfa","$description":"Specific value within the violet range at a defined lightness step."},"700":{"$value":"#6d28d9","$description":"Specific value within the violet range at a defined lightness step."},"950":{"$value":"#2e1065","$description":"Specific value within the violet range at a defined lightness step."},"$description":"Discrete values within the violet range at defined lightness steps."},"lilac":{"50":{"$value":"#f7f4fe","$description":"Specific value within the lilac range at a defined lightness step."},"100":{"$value":"#efe9fd","$description":"Specific value within the lilac range at a defined lightness step."},"200":{"$value":"#ddd0fb","$description":"Specific value within the lilac range at a defined lightness step."},"300":{"$value":"#c3aef6","$description":"Specific value within the lilac range at a defined lightness step."},"400":{"$value":"#a585ee","$description":"Specific value within the lilac range at a defined lightness step."},"450":{"$value":"#9a6fe8","$description":"Specific value within the lilac range at a defined lightness step."},"500":{"$value":"#6f3fd4","$description":"Lilac accent rest — AA for white text on page and card surfaces."},"600":{"$value":"#5f33c0","$description":"Specific value within the lilac range at a defined lightness step."},"700":{"$value":"#4f2aa3","$description":"Specific value within the lilac range at a defined lightness step."},"800":{"$value":"#3a1f78","$description":"Specific value within the lilac range at a defined lightness step."},"900":{"$value":"#2a1659","$description":"Specific value within the lilac range at a defined lightness step."},"$description":"Lilac ramp at fixed lightness steps. Mirrors the blue ramp's stops; available to brand overlays."},"amber":{"50":{"$value":"#fffbeb","$description":"Specific value within the amber range at a defined lightness step."},"400":{"$value":"#fbbf24","$description":"Specific value within the amber range at a defined lightness step."},"800":{"$value":"#92400e","$description":"Specific value within the amber range at a defined lightness step."},"950":{"$value":"#451a03","$description":"Specific value within the amber range at a defined lightness step."},"$description":"Discrete values within the amber range at defined lightness steps."},"stone":{"100":{"$value":"#F5EFE7","$description":"Stone 100 — near-white warm tint; accent-subtle surface."},"400":{"$value":"#D0B492","$description":"Stone 400 — light warm tone; dark-mode pressed accent."},"450":{"$value":"#BC9D7E","$description":"Stone 450 — medium warm tone; dark-mode hover accent."},"500":{"$value":"#A8896A","$description":"Stone 500 — mid warm tone; dark-mode rest accent."},"600":{"$value":"#8B6F47","$description":"Stone 600 — primary warm stone; light-mode rest accent and CTA surface."},"700":{"$value":"#75593A","$description":"Stone 700 — darker warm stone; light-mode hover accent."},"800":{"$value":"#5C432A","$description":"Stone 800 — deep warm stone; light-mode pressed accent."},"950":{"$value":"#3A2E1F","$description":"Stone 950 — near-black warm tone; dark-mode subtle accent surface."},"$description":"Warm stone/brown palette for Concrete Creations brand accent ramp. PLACEHOLDER values pending final brand identity work."},"projectBrand":{"microsoftGameDev":{"100":{"$value":"#E5E5FC","$description":"Light support tone for the Microsoft Game Dev project brand."},"500":{"$value":"#6d31fb","$description":"Primary accent tone for the Microsoft Game Dev project brand."},"900":{"$value":"oklch(0.22 0.16 304)","$description":"Dark support tone for the Microsoft Game Dev project brand."},"$description":"Project-specific brand colors used in portfolio contexts."},"$description":"Project-specific brand color families reserved for portfolio surfaces."}},"space":{"0":{"$value":{"value":0,"unit":"px"}},"1":{"$value":{"value":4,"unit":"px"}},"2":{"$value":{"value":8,"unit":"px"}},"3":{"$value":{"value":12,"unit":"px"}},"4":{"$value":{"value":16,"unit":"px"}},"5":{"$value":{"value":20,"unit":"px"}},"6":{"$value":{"value":24,"unit":"px"}},"7":{"$value":{"value":28,"unit":"px"}},"8":{"$value":{"value":32,"unit":"px"}},"10":{"$value":{"value":40,"unit":"px"}},"12":{"$value":{"value":48,"unit":"px"}},"16":{"$value":{"value":64,"unit":"px"}},"20":{"$value":{"value":80,"unit":"px"}},"24":{"$value":{"value":96,"unit":"px"}},"32":{"$value":{"value":128,"unit":"px"}},"$type":"dimension","$description":"Dimensional increments within the 4px base-unit spatial system.","px1":{"$value":{"value":1,"unit":"px"}},"px2":{"$value":{"value":2,"unit":"px"}},"px6":{"$value":{"value":6,"unit":"px"}},"px10":{"$value":{"value":10,"unit":"px"}}},"blur":{"8":{"$value":{"value":8,"unit":"px"},"$description":"8px blur step."},"16":{"$value":{"value":16,"unit":"px"},"$description":"Fullscreen backdrop blur for portfolio lightbox overlays."},"$type":"dimension","$description":"Backdrop blur strengths for frosted overlays and fullscreen media treatments."},"radius":{"0":{"$value":{"value":0,"unit":"px"}},"2":{"$value":{"value":2,"unit":"px"}},"4":{"$value":{"value":4,"unit":"px"}},"8":{"$value":{"value":8,"unit":"px"}},"12":{"$value":{"value":12,"unit":"px"}},"$type":"dimension","full":{"$value":{"value":9999,"unit":"px"}}},"typography":{"family":{"$type":"fontFamily","primary":{"$value":["Satoshi","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Self-hosted Satoshi (ITF) body typeface; falls back to system-ui sans-serif stack."},"display":{"$value":["Satoshi","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Display face: Satoshi Bold (ITF), bound to display/h1/h2/h3 composites."},"mono":{"$value":["Geist Mono","Courier New","monospace"],"$description":"Monospace face: Geist Mono. Falls back to Courier New, monospace."}},"size":{"$type":"dimension","xs":{"$value":{"value":12,"unit":"px"},"$description":"Tailwind 4 default text-xs (hds#283 ramp)."},"sm":{"$value":{"value":14,"unit":"px"},"$description":"Tailwind 4 default text-sm (hds#283 ramp)."},"base":{"$value":{"value":16,"unit":"px"},"$description":"Tailwind 4 default text-base (hds#283 ramp)."},"lg":{"$value":{"value":18,"unit":"px"},"$description":"Tailwind 4 default text-lg (hds#283 ramp)."},"xl":{"$value":{"value":20,"unit":"px"},"$description":"Tailwind 4 default text-xl (hds#283 ramp)."},"2xl":{"$value":{"value":24,"unit":"px"},"$description":"Tailwind 4 default text-2xl (hds#283 ramp)."},"3xl":{"$value":{"value":30,"unit":"px"},"$description":"Tailwind 4 default text-3xl (hds#283 ramp)."},"4xl":{"$value":{"value":36,"unit":"px"},"$description":"Tailwind 4 default text-4xl (hds#283 ramp)."},"5xl":{"$value":{"value":48,"unit":"px"},"$description":"Tailwind 4 default text-5xl (hds#283 ramp)."},"6xl":{"$value":{"value":60,"unit":"px"},"$description":"Swiss-canon display size (hds#283 ramp). Static desktop value; fluid in theme.css. Tailwind 4 default text-6xl."}},"weight":{"$type":"fontWeight","regular":{"$value":400},"medium":{"$value":500},"bold":{"$value":700}},"lineHeight":{"$type":"number","compact":{"$value":0.95},"none":{"$value":1},"tight":{"$value":1.25},"snug":{"$value":1.375,"$description":"Swiss-canon snug rhythm (10t-5). Used by h2/h3 composites for tight-but-readable heading lines."},"normal":{"$value":1.5},"relaxed":{"$value":1.625,"$description":"Swiss-canon relaxed rhythm (10t-5). Used by body/small/mono composites for long-form prose comfort."}},"letterSpacing":{"$type":"dimension","tight":{"$value":{"value":-0.01,"unit":"em"}},"normal":{"$value":{"value":0,"unit":"em"}},"caps":{"$value":{"value":0.06,"unit":"em"},"$description":"All-caps tracking for eyebrow / kicker labels. Always pairs with text-transform: uppercase."}}},"duration":{"$type":"duration","instant":{"$value":{"value":100,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."},"short":{"$value":{"value":150,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."},"medium":{"$value":{"value":250,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."},"long":{"$value":{"value":400,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."}},"easing":{"$type":"cubicBezier","emphasized":{"$value":[0.4,0,0.2,1],"$description":"Cubic bezier with balanced input and output tangents."},"decelerate":{"$value":[0,0,0.2,1],"$description":"Cubic bezier with steep initial gain and constrained tail velocity."},"accelerate":{"$value":[0.4,0,1,1],"$description":"Cubic bezier with restrained initial gain and steep terminal velocity."},"elastic":{"$type":"spring","$value":{"type":"spring","stiffness":300,"damping":20,"mass":1},"$description":"Spring response defined by stiffness, damping, and mass parameters."}},"shadow":{"color":{"$type":"color","$value":"220 13% 18%","$description":"HSL channels for shadow-color alpha compositing. Light: cool neutral; dark: black.","$extensions":{"com.figma.variables":{"modes":{"Light":"220 13% 18%","Dark":"0 0% 0%"}}}}},"breakpoint":{"$description":"Discrete viewport thresholds expressed as dimensions.","xs":{"$type":"dimension","$value":{"value":375,"unit":"px"}},"sm":{"$type":"dimension","$value":{"value":640,"unit":"px"}},"md":{"$type":"dimension","$value":{"value":768,"unit":"px"}},"lg":{"$type":"dimension","$value":{"value":1024,"unit":"px"}},"xl":{"$type":"dimension","$value":{"value":1280,"unit":"px"}}},"size":{"8":{"$type":"dimension","$value":{"value":8,"unit":"px"},"$description":"8px size step."},"10":{"$type":"dimension","$value":{"value":10,"unit":"px"},"$description":"10px size step."},"12":{"$type":"dimension","$value":{"value":12,"unit":"px"},"$description":"12px size step."},"16":{"$type":"dimension","$value":{"value":16,"unit":"px"},"$description":"16px size step."},"20":{"$type":"dimension","$value":{"value":20,"unit":"px"},"$description":"20px size step."},"24":{"$type":"dimension","$value":{"value":24,"unit":"px"},"$description":"24px size step."},"32":{"$type":"dimension","$value":{"value":32,"unit":"px"},"$description":"32px size step."},"40":{"$type":"dimension","$value":{"value":40,"unit":"px"},"$description":"40px size step."},"48":{"$type":"dimension","$value":{"value":48,"unit":"px"},"$description":"48px size step."},"64":{"$type":"dimension","$value":{"value":64,"unit":"px"},"$description":"64px size step."},"80":{"$type":"dimension","$value":{"value":80,"unit":"px"},"$description":"80px size step."},"96":{"$type":"dimension","$value":{"value":96,"unit":"px"},"$description":"96px size step."},"120":{"$type":"dimension","$value":{"value":120,"unit":"px"},"$description":"120px size step. Backs semantic.size.tile."},"$description":"Unaliased dimensional values.","interactive":{"$description":"Interactive control size minimums.","min":{"$type":"dimension","$value":{"value":44,"unit":"px"},"$description":"Minimum interactive hit target size."},"minCompact":{"$type":"dimension","$value":{"value":24,"unit":"px"},"$description":"Compact inline control target minimum, e.g. a chip's remove button: WCAG 2.2 AA (2.5.8), not the 44px AAA floor (2.5.5)."}},"width":{"96":{"$type":"dimension","$value":{"value":96,"unit":"px"},"$description":"96px width step."},"280":{"$type":"dimension","$value":{"value":280,"unit":"px"},"$description":"Docs-shell rail width (hds#280): our own number, not HeroUI's 268px; fits the longest top-level nav label with room."},"760":{"$type":"dimension","$value":{"value":760,"unit":"px"}},"1200":{"$type":"dimension","$value":{"value":1200,"unit":"px"}},"50ch":{"$type":"dimension","$value":{"value":50,"unit":"ch"}}}},"grid":{"columns":{"1":{"$type":"number","$value":1},"2":{"$type":"number","$value":2},"3":{"$type":"number","$value":3}}},"zIndex":{"0":{"$type":"number","$value":0},"10":{"$type":"number","$value":10},"100":{"$type":"number","$value":100},"1000":{"$type":"number","$value":1000},"$description":"Discrete stacking levels along the z axis."},"borderWidth":{"$type":"dimension","xs":{"$value":{"value":1,"unit":"px"}},"sm":{"$value":{"value":2,"unit":"px"}},"md":{"$value":{"value":4,"unit":"px"}}}}`), Qi = /* @__PURE__ */ JSON.parse(`{"motion":{"$type":"motion","productive":{"$value":{"duration":"{primitive.duration.short}","easing":"{primitive.easing.decelerate}"},"$description":"For micro-interactions and status changes. No deformation."},"expressive":{"$value":{"duration":"{primitive.duration.medium}","easing":"{primitive.easing.elastic}"},"$description":"For teaching moments and significant UI entries. Includes physics-based squish."},"spatial":{"$value":{"duration":"{primitive.duration.long}","easing":"{primitive.easing.emphasized}"},"$description":"For elements traveling long distances across the viewport."},"exit":{"$value":{"duration":"{primitive.duration.instant}","easing":"{primitive.easing.accelerate}"},"$description":"For elements being removed from the DOM."},"distance":{"$type":"dimension","$value":"{primitive.space.6}","$description":"Scroll-reveal translateY travel distance. Equals semantic.space.scale.md today, but names motion travel, not a spacing tier (hds#242)."}},"color":{"$type":"color","surface":{"page":{"$value":"{primitive.color.neutral.white}","$description":"Main page background","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.white}","Dark":"{primitive.color.neutral.black}"}}}},"raised":{"$value":"{primitive.color.neutral.50}","$description":"Subtle elevated surface (cards, sections)","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.50}","Dark":"{primitive.color.neutral.950}"}}}},"overlay":{"$value":"{primitive.color.neutral.100}","$description":"Deeper surface layer","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.850}"}}}},"scrim":{"$value":"{primitive.color.neutral.900}","$description":"Opaque modal backdrop, near-black in both themes. Apply alpha in the class (bg-scrim/60), not here.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.black}"}}}},"inverse":{"$value":"{primitive.color.neutral.black}","$description":"Inverted background for contrast sections","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.black}","Dark":"{primitive.color.neutral.white}"}}}},"accent":{"$value":"{primitive.color.neutral.900}","$description":"Accent-colored background (neutral/monochrome; inverts to a light neutral on dark surfaces).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"accentSubtle":{"$value":"{primitive.color.neutral.100}","$description":"Faint accent tint for hover states or highlights","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"hover":{"$value":"{primitive.color.neutral.100}","$description":"Background for a hovered interactive surface (menu items, chips, tertiary buttons).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"pressed":{"$value":"{primitive.color.neutral.50}","$description":"Background for an actively pressed interactive surface.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.50}","Dark":"{primitive.color.neutral.950}"}}}},"selected":{"$value":"{primitive.color.neutral.200}","$description":"Background for a persistently selected item (active tab, checked row).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.800}"}}}},"muted":{"$value":"{primitive.color.neutral.100}","$description":"Muted background for low-emphasis content blocks.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"sunken":{"$value":"{primitive.color.neutral.200}","$description":"Recessed background for inset wells (inputs, code blocks, nested panels).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.850}"}}}}},"content":{"primary":{"$value":"{primitive.color.neutral.900}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"secondary":{"$value":"{primitive.color.neutral.600}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.600}","Dark":"{primitive.color.neutral.400}"}}}},"disabled":{"$value":"{primitive.color.neutral.300}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.300}","Dark":"{primitive.color.neutral.600}"}}}},"inverse":{"$value":"{primitive.color.neutral.100}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"accent":{"$value":"{primitive.color.neutral.900}","$description":"Accent-intent text/icon color (monochrome). Pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"onAccent":{"$value":"{primitive.color.neutral.white}","$description":"Text/icon color on accent fills. Flips to a dark neutral in dark mode, where accent fills are light.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.white}","Dark":"{primitive.color.neutral.900}"}}}},"success":{"$value":"{primitive.color.green.700}","$description":"Success-toned text/icon color, independent of feedback banners.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.700}","Dark":"{primitive.color.green.400}"}}}},"warning":{"$value":"{primitive.color.amber.800}","$description":"Warning-toned text/icon color, independent of feedback banners.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.800}","Dark":"{primitive.color.amber.400}"}}}},"danger":{"$value":"{primitive.color.red.700}","$description":"Danger-toned text/icon color, independent of feedback banners.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.red.700}","Dark":"{primitive.color.red.400}"}}}}},"border":{"default":{"$value":"{primitive.color.neutral.200}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.700}"}}}},"interactive":{"$value":"{primitive.color.neutral.500}","$description":"Border for interactive control boundaries (inputs, selects, secondary buttons); meets the WCAG 1.4.11 3:1 non-text contrast floor.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.500}","Dark":"{primitive.color.neutral.500}"}}}},"subdued":{"$value":"{primitive.color.neutral.200}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.800}"}}}},"subtle":{"$value":"{primitive.color.neutral.100}","$description":"Lowest-contrast border for resting hairline edges on flat surfaces.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.850}"}}}},"strong":{"$value":"{primitive.color.neutral.300}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.300}","Dark":"{primitive.color.neutral.600}"}}}},"accent":{"$value":"{primitive.color.neutral.900}","$description":"Accent border (neutral/monochrome; inverts on dark surfaces).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"success":{"$value":"{primitive.color.green.400}","$description":"Success-toned border for status outlines and success-state inputs.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.400}","Dark":"{primitive.color.green.400}"}}}},"warning":{"$value":"{primitive.color.amber.400}","$description":"Warning-toned border for status outlines and warning-state inputs.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.400}","Dark":"{primitive.color.amber.400}"}}}}},"feedback":{"error":{"$type":"color","$value":"{primitive.color.red.700}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.red.700}","Dark":"{primitive.color.red.400}"}}}},"success":{"$type":"color","$value":"{primitive.color.green.700}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.700}","Dark":"{primitive.color.green.400}"}}}},"warning":{"$type":"color","$value":"{primitive.color.amber.800}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.800}","Dark":"{primitive.color.amber.400}"}}}},"info":{"$type":"color","$value":"{primitive.color.blue.500}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.blue.500}","Dark":"{primitive.color.blue.300}"}}}},"inProgress":{"$type":"color","$value":"{primitive.color.violet.700}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.violet.700}","Dark":"{primitive.color.violet.400}"}}}},"bg":{"error":{"$type":"color","$value":"{primitive.color.red.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.red.50}","Dark":"{primitive.color.red.950}"}}}},"success":{"$type":"color","$value":"{primitive.color.green.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.50}","Dark":"{primitive.color.green.950}"}}}},"warning":{"$type":"color","$value":"{primitive.color.amber.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.50}","Dark":"{primitive.color.amber.950}"}}}},"info":{"$type":"color","$value":"{primitive.color.blue.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.blue.50}","Dark":"{primitive.color.blue.900}"}}}},"inProgress":{"$type":"color","$value":"{primitive.color.violet.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.violet.50}","Dark":"{primitive.color.violet.950}"}}}}}},"state":{"pressed":{"overlay":{"$value":"{primitive.color.neutral.black}","$description":"Opaque pressed wash over a control's own fill: black in light, white in dark. Alpha in the class (inset-shadow-pressed-overlay/5).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.black}","Dark":"{primitive.color.neutral.white}"}}}}}}},"space":{"$type":"dimension","$description":"Semantic spacing tiers: subgrid, component, layout, section, scale.","scale":{"$description":"hds#206: the canonical spacing vocabulary, one monotonic t-shirt scale (xs to xl) for padding, margin and gap. Supersedes deprecated names.","xs":{"$value":"{primitive.space.2}","$description":"8px — smallest step. Same value as component.gap (deprecated alias)."},"sm":{"$value":"{primitive.space.4}","$description":"16px — same value as layout.tight (deprecated alias)."},"md":{"$value":"{primitive.space.6}","$description":"24px. Default of the overridable roles surface.padding and region.gutter. The deprecated layout.normal has the same value."},"lg":{"$value":"{primitive.space.8}","$description":"32px — same value as layout.inset (deprecated alias)."},"xl":{"$value":"{primitive.space.12}","$description":"48px — same value as layout.spacious (deprecated alias)."}},"surface":{"$description":"hds#206 surface inset role. Tenants override it per brand and density, always with a scale step.","padding":{"$value":"{semantic.space.scale.md}","$description":"24px (scale.md) inset for cards, forms and panels. Tenants override it per brand and density. Replaces component.padding."}},"region":{"$description":"hds#206 region gutter role. theme.css retunes it per viewport, always with a scale step.","gutter":{"$value":"{semantic.space.scale.md}","$description":"24px (scale.md) column and region gutters; theme.css sets scale.lg (32px), and scale.sm (16px) below 640px. Replaces layout.gutter."}},"subgrid":{"hairline":{"$value":"{primitive.space.px1}","$description":"1px border offset and hairline spacing."},"xs":{"$value":"{primitive.space.px2}","$description":"2px vertical rhythm nudge and baseline adjustment."},"gap":{"$value":"{primitive.space.1}","$description":"4px cap-height and inline cluster spacing."}},"component":{"gap":{"$value":"{primitive.space.2}","$description":"8px label↔input rhythm and closely coupled control spacing. DEPRECATED alias (hds#206) — use semantic.space.scale.xs; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.xs"},"medium":{"$value":"{primitive.space.3}","$description":"12px adjacent form fields and medium intra-component gaps."},"padding":{"$value":"{semantic.space.surface.padding}","$description":"24px inset for cards, forms and panels. DEPRECATED alias (hds#206) — use semantic.space.surface.padding; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.surface.padding"}},"layout":{"tight":{"$value":"{primitive.space.4}","$description":"16px default HdsStack gap and inter-component spacing. DEPRECATED alias (hds#206) — use semantic.space.scale.sm; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.sm"},"normal":{"$value":"{primitive.space.6}","$description":"24px column gutters and sidebar gutter spacing. DEPRECATED alias (hds#206) — use semantic.space.scale.md; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.md"},"gutter":{"$value":"{semantic.space.region.gutter}","$description":"24px column and region gutters. DEPRECATED alias (hds#206) — use semantic.space.region.gutter (responsive in theme.css); kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.region.gutter"},"inset":{"$value":"{primitive.space.8}","$description":"32px major block separation and inset inter-component gaps. DEPRECATED alias (hds#206) — use semantic.space.scale.lg; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.lg"},"spacious":{"$value":"{primitive.space.12}","$description":"48px break between major content blocks. DEPRECATED alias (hds#206) — use semantic.space.scale.xl; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.xl"}},"section":{"stack":{"$value":"{primitive.space.20}","$description":"80px vertical rhythm between page sections and major editorial blocks."},"inset":{"$value":"{primitive.space.24}","$description":"96px hero and landing-page inset padding."},"heroMax":{"$value":"{primitive.space.32}","$description":"128px maximum hero region padding for extra-large displays."}},"sidebar":{"indent":{"$value":"{primitive.space.3}","$description":"12px indent level for nested sidebar and TOC groups."},"gap":{"$value":"{primitive.space.4}","$description":"16px vertical spacing between items in sidebar and TOC stacks."},"sectionGap":{"$value":"{primitive.space.3}","$description":"12px spacing between sidebar sections and grouped rail blocks."},"railPadding":{"$value":"{primitive.space.5}","$description":"20px outer padding for sidebar and TOC rails."},"railWidth":{"$type":"dimension","$value":"{primitive.size.width.280}","$description":"Docs-shell nav and TOC rail width (hds#280), one token for both rails; 0 below their breakpoint (see HdsDocsShell)."}}},"layout":{"width":{"content":{"$type":"dimension","$value":"{primitive.size.width.760}","$description":"Max width for prose/content (760px). Use with HdsContainer for centered text blocks."},"max":{"$type":"dimension","$value":"{primitive.size.width.1200}","$description":"Max width for full-layout containers (1200px). Use with HdsContainer for page layouts."}},"container":{"maxWidth":{"$type":"dimension","$value":"{primitive.size.width.1200}"}},"content":{"maxWidth":{"$type":"dimension","$value":"{primitive.size.width.760}"}},"prose":{"maxWidth":{"$type":"dimension","$value":"{primitive.size.width.50ch}"}},"section":{"paddingY":{"$type":"dimension","$value":"{primitive.space.20}"}},"grid":{"gap":{"$type":"dimension","$value":"{primitive.space.8}"},"columns":{"mobile":{"$type":"number","$value":"{primitive.grid.columns.1}"},"tablet":{"$type":"number","$value":"{primitive.grid.columns.2}"},"desktop":{"$type":"number","$value":"{primitive.grid.columns.3}"}}}},"typography":{"$type":"typography","$description":"8-style Swiss-canon type ramp: display, h1–h3, body, small, caption, mono.","display":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.6xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"{primitive.typography.lineHeight.none}"},"$description":"Display headline. 60px / Satoshi bold 700 / leading-none (hds#283: was 72px/5xl).","$extensions":{"com.figma.variables":{"fontSize":"clamp(40px, 8vw, 60px)","note":"Figma stores the 60px desktop-max static value. Browser CSS overrides with fluid scaling (40px min → 60px max). See src/styles/theme.css."}}},"h1":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.5xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"{primitive.typography.lineHeight.tight}"},"$description":"Primary section headings (h1). 48px / Satoshi bold 700 / leading-tight (hds#283: rung renamed 4xl→5xl, px unchanged).","$extensions":{"com.figma.variables":{"fontSize":"clamp(32px, 6vw, 48px)","note":"Figma stores the 48px desktop-max static value. Browser CSS overrides with fluid scaling (32px min → 48px max). See src/styles/theme.css."}}},"h2":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.3xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"40px"},"$description":"Secondary section headings (h2). Satoshi bold 700, 30px, line-height 40px (hds#283: rung renamed, was 42px).","$extensions":{"com.figma.variables":{"fontSize":"clamp(24px, 3.5vw, 30px)","note":"Figma stores the 30px desktop-max static value. Browser CSS overrides with fluid scaling (24px min → 30px max). See src/styles/theme.css."}}},"h3":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"28px"},"$description":"Component and card headers (h3). 20px / Satoshi bold 700 500 / leading-snug (hds#283: rung renamed lg→xl, px unchanged).","$extensions":{"com.figma.variables":{"fontSize":"clamp(18px, 2vw, 20px)","note":"Figma stores the 20px desktop-max static value. Browser CSS overrides with fluid scaling (18px min → 20px max). See src/styles/theme.css."}}},"body":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.base}","fontWeight":"{primitive.typography.weight.medium}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"24px","maxWidth":{"value":60,"unit":"ch"}},"$description":"Body prose. Satoshi medium, 16px, line-height 24px, max 60ch measure (hds#283: was 17px/28px)."},"ui":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.sm}","fontWeight":"{primitive.typography.weight.medium}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"20px","maxWidth":{"value":60,"unit":"ch"}},"$description":"UI text for nav, labels, captions. Satoshi medium, 14px, line-height 20px (hds#283: was 15px/24px)."},"caption":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.xs}","fontWeight":"{primitive.typography.weight.medium}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"16px"},"$description":"Caption / helper text. Satoshi medium, 12px, line-height 16px. Matches the Figma typography/caption text style; now sourced from primitive.xs (hds#283)."},"eyebrow":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.xs}","fontWeight":"{primitive.typography.weight.medium}","letterSpacing":"{primitive.typography.letterSpacing.caps}","lineHeight":"16px","textTransform":"uppercase"},"$description":"Eyebrow / kicker label. Satoshi medium, 12px, caps tracking, uppercase (hds#283: was 13px/20px)."},"mono":{"$value":{"fontFamily":"{primitive.typography.family.mono}","fontSize":"{primitive.typography.size.sm}","fontWeight":"{primitive.typography.weight.regular}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"20px","maxWidth":{"value":60,"unit":"ch"}},"$description":"Monospace for code, token names, shortcuts. Geist Mono regular, 14px (hds#283: repointed xs→sm; xs alone would give 12px)."},"lineHeight":{"none":{"$type":"number","$value":"{primitive.typography.lineHeight.none}","$description":"Semantic alias for leading-none (1). Display text and badge spans."}}},"docs":{"$description":"Doc-page spacing scale: section, paragraph, inline rhythm.","space":{"$type":"dimension","section":{"$value":"{primitive.space.12}","$description":"48px between H2 sections — generous section break for doc pages."},"paragraph":{"$value":"{primitive.space.6}","$description":"24px between paragraphs — comfortable prose rhythm for long-form doc content."},"inline":{"$value":"{primitive.space.2}","$description":"8px inline cluster spacing — gap between metadata badges, inline icons, doc-page chips."}}},"accent":{"$type":"color","rest":{"$value":"{primitive.color.neutral.900}","$description":"Default accent fill for interactive elements at rest. Neutral (monochrome) accent — inverts to a light neutral on dark surfaces.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"hover":{"$value":"{primitive.color.neutral.800}","$description":"Accent fill on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.800}","Dark":"{primitive.color.neutral.200}"}}}},"pressed":{"$value":"{primitive.color.neutral.950}","$description":"Accent fill during active press.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.950}","Dark":"{primitive.color.neutral.300}"}}}},"inactive":{"$value":"{primitive.color.neutral.400}","$description":"Accent fill for inactive or unselected accent elements.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.400}","Dark":"{primitive.color.neutral.600}"}}}},"disabled":{"$value":"{primitive.color.neutral.300}","$description":"Accent fill for disabled accent elements.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.300}","Dark":"{primitive.color.neutral.700}"}}}},"content":{"$value":"{primitive.color.neutral.900}","$description":"Text and icon color on neutral surfaces with accent intent. Monochrome — pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"contentHover":{"$value":"{primitive.color.neutral.700}","$description":"Accent content color on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.700}","Dark":"{primitive.color.neutral.300}"}}}},"subtle":{"$value":"{primitive.color.neutral.100}","$description":"Low-emphasis accent tint for hover backgrounds and selection highlights.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.800}"}}}}},"radius":{"action":{"$type":"dimension","$value":"{primitive.radius.8}","$description":"Corner radius for action elements (buttons, inputs, badges); Tailwind rounded-md resolves here. Override role.radius to reshape the system."},"control":{"$type":"dimension","$value":"{primitive.radius.4}","$description":"Corner radius for small control glyphs such as the checkbox box: not fully round, and distinct from semantic.radius.action (hds#242)."}},"borderWidth":{"default":{"$type":"dimension","$value":"{primitive.borderWidth.xs}","$description":"Default hairline border weight for surfaces and inputs."},"emphasis":{"$type":"dimension","$value":"{primitive.borderWidth.sm}","$description":"Stronger border weight for focus rings and active indicators."}},"shadow":{"$type":"shadow","subtle":{"$value":"0 1px 2px hsl(var(--primitive-shadow-color) / 0.04), 0 1px 1px hsl(var(--primitive-shadow-color) / 0.06)","$description":"Resting elevation shadow for raised surfaces (cards, inline panels)."},"floating":{"$value":"0 4px 6px hsl(var(--primitive-shadow-color) / 0.05), 0 10px 15px hsl(var(--primitive-shadow-color) / 0.08)","$description":"Hover/floating elevation for menus, popovers, and tooltips."},"overlay":{"$value":"0 10px 15px hsl(var(--primitive-shadow-color) / 0.08), 0 25px 50px hsl(var(--primitive-shadow-color) / 0.12)","$description":"Modal/dialog elevation for full-screen overlays."}},"elevation":{"$type":"elevation","flat":{"$value":{"surface":"{semantic.color.surface.page}","shadow":null,"border":"{semantic.color.border.subtle}"},"$description":"Flat surface (no shadow, hairline border) for embedded panels."},"raised":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.subtle}","border":null},"$description":"Resting card / panel elevation."},"floating":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.floating}","border":null},"$description":"Hover, menu, and popover elevation."},"overlay":{"$value":{"surface":"{semantic.color.surface.overlay}","shadow":"{semantic.shadow.overlay}","border":null},"$description":"Modal, dialog, and drawer elevation."}},"size":{"$type":"dimension","$description":"Sizing roles for control glyphs, avatars and table rows. Roles sharing a value stay separate so each can change (hds#242).","control":{"$description":"Interactive control glyph/element sizing (checkbox glyph box, radio dot, slider track/fill, code-block copy-button-matched footprint).","sm":{"$value":"{primitive.size.8}","$description":"Small control element — radio dot, slider fill bar height."},"md":{"$value":"{primitive.size.20}","$description":"Medium control element — checkbox glyph box, slider track wrapper height."},"lg":{"$value":"{primitive.size.32}","$description":"Large control footprint — code-block inline-wrapper min-height / copy-button-matched pre padding."}},"icon":{"$description":"Reserved icon-size role, parallel to the existing --hds-icon-* bridge (src/styles/theme.css), for future direct semantic.size.icon consumers.","sm":{"$value":"{primitive.size.16}","$description":"Small icon box — matches --hds-icon-small."},"md":{"$value":"{primitive.size.20}","$description":"Medium icon box — matches --hds-icon-medium."},"lg":{"$value":"{primitive.size.24}","$description":"Large icon box — matches --hds-icon-large."}},"avatar":{"$value":"{primitive.size.40}","$description":"Avatar size (width and height) for activity feeds and identity glyphs. Same pixels as row.compact today, a separate role (hds#242)."},"tile":{"$value":"{primitive.size.120}","$description":"Minimum height of a metric tile, one height for every tile so rows line up (hds#403)."},"row":{"$description":"Table row minimum height by density.","compact":{"$value":"{primitive.size.40}","$description":"Compact-density row minimum height."},"comfortable":{"$value":"{primitive.size.48}","$description":"Comfortable-density row minimum height."}}},"zIndex":{"$type":"number","$description":"Named stacking layers, aliasing the numeric primitive.zIndex scale (hds#242).","control":{"$value":"{primitive.zIndex.10}","$description":"Raises an interactive control (e.g. a native range input) above its visual decoration for hit-testing."},"sticky":{"$value":"{primitive.zIndex.100}","$description":"Sticky-positioned elements, such as a table header row."}}}`), ea = { nav: { bg: { $type: "color", $value: "{semantic.color.surface.page}", $description: "Nav bar background fill." }, bgActive: { $type: "color", $value: "{semantic.accent.subtle}", $description: "Nav item background fill when active or selected." }, borderActive: { $type: "color", $value: "{semantic.color.surface.accent}", $description: "Nav item border color when active or selected." }, text: { $type: "color", $value: "{semantic.color.content.secondary}", $description: "Nav item text color at rest." }, textActive: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Nav item text color when active or selected." }, height: { $type: "dimension", $value: "{primitive.space.16}", $description: "Nav bar height." }, paddingX: { $type: "dimension", $value: "{primitive.space.6}", $description: "Horizontal padding inside nav items." }, paddingY: { $type: "dimension", $value: "{primitive.space.2}", $description: "Vertical padding inside nav items." } }, tag: { background: { $type: "color", $value: "{semantic.accent.subtle}", $description: "Base tag surface color." }, text: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Default tag text color." }, border: { $type: "color", $value: "{semantic.color.border.default}", $description: "Default tag border color." }, radius: { $type: "dimension", $value: "{primitive.radius.full}", $description: "Pill radius for the tag surface." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.xs}", $description: "Tag type size." }, fontWeight: { $type: "fontWeight", $value: "{primitive.typography.weight.medium}", $description: "Tag label weight." }, lineHeight: { $type: "dimension", $value: "{primitive.typography.lineHeight.normal}", $description: "Readable label rhythm for tags." }, minWidth: { $type: "dimension", $value: "{primitive.size.48}", $description: "Minimum tag width." }, minHeight: { $type: "dimension", $value: "{primitive.space.6}", $description: "Minimum tag height." }, paddingX: { $type: "dimension", $value: "{primitive.space.3}", $description: "Horizontal padding inside the pill." }, paddingY: { $type: "dimension", $value: "{primitive.space.2}", $description: "Vertical padding inside the pill." }, activeText: { $type: "color", $value: "{semantic.color.content.onAccent}", $description: "Text color when the tag is active." }, activeBackground: { $type: "color", $value: "{semantic.accent.rest}", $description: "Active tag fill color." }, activeBorder: { $type: "color", $value: "{semantic.accent.rest}", $description: "Active tag border color." }, activeHover: { $type: "color", $value: "{semantic.accent.hover}", $description: "Active tag hover fill color." } }, badge: { fontSize: { $type: "dimension", $value: "{primitive.typography.size.xs}", $description: "Badge type size." }, fontWeight: { $type: "fontWeight", $value: "{primitive.typography.weight.medium}", $description: "Badge label weight." }, text: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Badge text color." }, bg: { $type: "color", $value: "{semantic.color.feedback.bg.info}", $extensions: { "com.figma.variables": { modes: { Light: "{semantic.color.feedback.bg.info}", Dark: "{semantic.color.feedback.bg.info}" } } }, $description: "Badge background color." }, radius: { $type: "dimension", $value: "{primitive.radius.4}", $description: "Small rounded radius for badges." }, height: { $type: "dimension", $value: "{primitive.size.20}", $description: "Badge height." }, minWidth: { $type: "dimension", $value: "{primitive.size.20}", $description: "Badge minimum width." }, paddingY: { $type: "dimension", $value: "{primitive.space.px2}", $description: "Vertical padding inside the badge." }, paddingX: { $type: "dimension", $value: "{primitive.space.px6}", $description: "Horizontal padding inside the badge." } }, button: { bg: { $type: "color", $value: "{semantic.color.surface.accent}", $description: "Primary button fill." }, bgHover: { $type: "color", $value: "{semantic.accent.hover}", $description: "Primary button hover fill." }, text: { $type: "color", $value: "{semantic.color.content.onAccent}", $description: "Primary button text color." }, radius: { $type: "dimension", $value: "{semantic.radius.action}", $description: "Button corner radius." }, paddingX: { $type: "dimension", $value: "{primitive.space.4}", $description: "Horizontal button padding." }, paddingY: { $type: "dimension", $value: "{primitive.space.3}", $description: "Vertical button padding." }, size: { sm: { paddingX: { $type: "dimension", $value: "{primitive.space.2}", $description: "Small button horizontal padding (8px)." }, paddingY: { $type: "dimension", $value: "{primitive.space.1}", $description: "Small button vertical padding (4px)." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.xs}", $description: "Small button label size (12px, hds#283: was 13px)." }, iconSize: { $type: "dimension", $value: "{primitive.size.12}", $description: "Small button icon slot size (12px)." }, height: { $type: "dimension", $value: "{primitive.space.7}", $description: "Small button height (28px)." }, itemSpacing: { $type: "dimension", $value: "{primitive.space.1}", $description: "Small button icon-to-label gap (4px)." } }, md: { paddingX: { $type: "dimension", $value: "{primitive.space.4}", $description: "Medium button horizontal padding (16px)." }, paddingY: { $type: "dimension", $value: "{primitive.space.3}", $description: "Medium button vertical padding (12px)." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.sm}", $description: "Medium button label size (14px, hds#283: was 15px)." }, iconSize: { $type: "dimension", $value: "{primitive.size.16}", $description: "Medium button icon slot size (16px)." }, height: { $type: "dimension", $value: "{primitive.size.40}", $description: "Medium button height (40px)." }, itemSpacing: { $type: "dimension", $value: "{primitive.space.2}", $description: "Medium button icon-to-label gap (8px)." } }, lg: { paddingX: { $type: "dimension", $value: "{primitive.space.6}", $description: "Large button horizontal padding (24px)." }, paddingY: { $type: "dimension", $value: "{primitive.space.4}", $description: "Large button vertical padding (16px)." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.base}", $description: "Large button label size (16px, hds#283: was 17px)." }, iconSize: { $type: "dimension", $value: "{primitive.size.20}", $description: "Large button icon slot size (20px)." }, height: { $type: "dimension", $value: "{primitive.size.48}", $description: "Large button height (48px)." }, itemSpacing: { $type: "dimension", $value: "{primitive.space.2}", $description: "Large button icon-to-label gap (8px)." } } }, primary: { textDisabled: { $type: "color", $value: "{semantic.color.content.onAccent}", $extensions: { "com.figma.variables": { modes: { Light: "{semantic.color.content.onAccent}", Dark: "{semantic.color.content.disabled}" } } }, $description: "Disabled primary button text color." }, bgDisabled: { $type: "color", $value: "{semantic.color.surface.accentSubtle}", $description: "Disabled primary button fill." } }, secondary: { bg: { rest: { $type: "color", $value: "{semantic.color.surface.page}", $description: "Secondary button fill." }, hover: { $type: "color", $value: "{semantic.color.surface.raised}", $description: "Secondary button hover fill." }, pressed: { $type: "color", $value: "{semantic.color.surface.overlay}", $description: "Secondary button pressed fill." } }, border: { rest: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Secondary button border." }, hover: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Secondary button hover border." }, pressed: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Secondary button pressed border." }, disabled: { $type: "color", $value: "{semantic.color.border.subdued}", $description: "Secondary button disabled border." } }, text: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Secondary button text color." } } }, input: { bg: { $type: "color", $value: "{semantic.color.surface.raised}" }, text: { $type: "color", $value: "{semantic.color.content.primary}" }, border: { $type: "color", $value: "{semantic.color.border.interactive}" }, borderError: { $type: "color", $value: "{semantic.color.feedback.error}" }, radius: { $type: "dimension", $value: "{semantic.radius.action}" }, paddingX: { $type: "dimension", $value: "{primitive.space.4}" }, paddingY: { $type: "dimension", $value: "{primitive.space.3}" } }, card: { bg: { $type: "color", $value: "{semantic.color.surface.raised}" }, border: { $type: "color", $value: "{semantic.color.border.default}" }, radius: { $type: "dimension", $value: "{primitive.radius.8}" }, padding: { $type: "dimension", $value: "{primitive.space.6}" }, gap: { $type: "dimension", $value: "{primitive.space.2}" } }, lightbox: { backdrop: { blur: { $type: "dimension", $value: "{primitive.blur.16}", $description: "Backdrop blur applied behind fullscreen image lightboxes." } } } }, ta = { $description: "Shadcn-style role aliases mapping to semantic tokens. Compiled to --role-* CSS vars.", background: { $type: "color", $value: "{semantic.color.surface.page}", $description: "Page background. shadcn role: background." }, foreground: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Default text on background. shadcn role: foreground." }, card: { $type: "color", $value: "{semantic.color.surface.raised}", $description: "Card surface. shadcn role: card." }, "card-foreground": { $type: "color", $value: "{semantic.color.content.primary}", $description: "Text on card. shadcn role: card-foreground." }, popover: { $type: "color", $value: "{semantic.color.surface.overlay}", $description: "Popover/menu surface. shadcn role: popover." }, scrim: { $type: "color", $value: "{semantic.color.surface.scrim}", $description: "Modal backdrop colour role. Apply alpha in the class, e.g. bg-scrim/60." }, "pressed-overlay": { $type: "color", $value: "{semantic.color.state.pressed.overlay}", $description: "Pressed-state overlay colour role. Apply alpha in the class, e.g. inset-shadow-pressed-overlay/5." }, "popover-foreground": { $type: "color", $value: "{semantic.color.content.primary}", $description: "Text on popover. shadcn role: popover-foreground." }, primary: { $type: "color", $value: "{semantic.color.surface.accent}", $description: "Primary action surface. shadcn role: primary." }, "primary-foreground": { $type: "color", $value: "{semantic.color.content.onAccent}", $description: "Text/icons on primary surface. shadcn role: primary-foreground." }, secondary: { $type: "color", $value: "{semantic.color.surface.raised}", $description: "Secondary action surface. shadcn role: secondary." }, "secondary-foreground": { $type: "color", $value: "{semantic.color.content.primary}", $description: "Text on secondary surface. shadcn role: secondary-foreground." }, muted: { $type: "color", $value: "{semantic.color.surface.overlay}", $description: "Muted/quiet bg (skeletons, disabled inputs). shadcn role: muted." }, "muted-foreground": { $type: "color", $value: "{semantic.color.content.secondary}", $description: "Muted text. shadcn role: muted-foreground." }, accent: { $type: "color", $value: "{semantic.color.surface.accentSubtle}", $description: "Hover/active tinted bg. shadcn role: accent." }, "accent-foreground": { $type: "color", $value: "{semantic.color.content.accent}", $description: "Text on accent surface. shadcn role: accent-foreground." }, destructive: { $type: "color", $value: "{semantic.color.feedback.error}", $description: "Destructive action surface. shadcn role: destructive." }, "destructive-foreground": { $type: "color", $value: "{semantic.color.content.inverse}", $description: "Text on destructive surface. shadcn role: destructive-foreground." }, border: { $type: "color", $value: "{semantic.color.border.default}", $description: "Default border. shadcn role: border." }, input: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Input field border. shadcn role: input." }, ring: { $type: "color", $value: "{semantic.color.border.accent}", $description: "Focus ring color. shadcn role: ring." }, radius: { $type: "dimension", $value: "{semantic.radius.action}", $description: "Default border radius. shadcn role: radius." } }, ia = {
3074
- $schema: Ki,
3075
- $description: Ji,
3076
- primitive: Zi,
3077
- semantic: Qi,
3078
- component: ea,
3079
- role: ta
3080
- }, rr = ia;
3073
+ const Zt = "https://www.designtokens.org/schemas/2025.10/format.json", Qt = "Adrian Milsap hirobius design tokens - W3C DTCG 2025.10 compliant, Figma SDS architecture", ea = /* @__PURE__ */ JSON.parse(`{"$description":"Base values used as inputs to derived token layers.","color":{"$type":"color","neutral":{"50":{"$value":"#fafafa","$description":"Specific value within the neutral range at a defined lightness step."},"100":{"$value":"#f5f5f5","$description":"Specific value within the neutral range at a defined lightness step."},"200":{"$value":"#e5e5e5","$description":"Specific value within the neutral range at a defined lightness step."},"300":{"$value":"#d4d4d4","$description":"Specific value within the neutral range at a defined lightness step."},"400":{"$value":"#a3a3a3","$description":"Specific value within the neutral range at a defined lightness step."},"500":{"$value":"#737373","$description":"Specific value within the neutral range at a defined lightness step."},"600":{"$value":"#525252","$description":"Specific value within the neutral range at a defined lightness step."},"700":{"$value":"#404040","$description":"Specific value within the neutral range at a defined lightness step."},"800":{"$value":"#262626","$description":"Specific value within the neutral range at a defined lightness step."},"850":{"$value":"#1a1a1a","$description":"Specific value within the neutral range at a defined lightness step."},"900":{"$value":"#111111","$description":"Specific value within the neutral range at a defined lightness step."},"950":{"$value":"#0a0a0a","$description":"Specific value within the neutral range at a defined lightness step."},"$description":"Discrete values within the neutral range at defined lightness steps.","white":{"$value":"#ffffff","$description":"Specific value within the neutral range at a defined lightness step."},"black":{"$value":"#000000","$description":"Specific value within the neutral range at a defined lightness step."}},"blue":{"50":{"$value":"oklch(0.96 0.03 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"100":{"$value":"oklch(0.92 0.04 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"200":{"$value":"oklch(0.88 0.07 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"300":{"$value":"oklch(0.70 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"400":{"$value":"oklch(0.65 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"450":{"$value":"oklch(0.56 0.29 266.60)","$description":"Specific value within the blue range at a defined lightness step."},"500":{"$value":"#1E2EFD","$description":"Specific value within the blue range at a defined lightness step."},"600":{"$value":"oklch(0.45 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"700":{"$value":"oklch(0.44 0.2903 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"800":{"$value":"oklch(0.30 0.07 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"900":{"$value":"oklch(0.22 0.05 266.54)","$description":"Specific value within the blue range at a defined lightness step."},"$description":"Discrete values within the blue range at defined lightness steps."},"red":{"50":{"$value":"#fef2f2","$description":"Specific value within the red range at a defined lightness step."},"400":{"$value":"#f87171","$description":"Specific value within the red range at a defined lightness step."},"700":{"$value":"#b91c1c","$description":"Specific value within the red range at a defined lightness step."},"950":{"$value":"#450a0a","$description":"Specific value within the red range at a defined lightness step."},"$description":"Discrete values within the red range at defined lightness steps."},"green":{"50":{"$value":"#ecfdf5","$description":"Specific value within the green range at a defined lightness step."},"400":{"$value":"#34d399","$description":"Specific value within the green range at a defined lightness step."},"700":{"$value":"#047857","$description":"Specific value within the green range at a defined lightness step."},"950":{"$value":"#022c22","$description":"Specific value within the green range at a defined lightness step."},"$description":"Discrete values within the green range at defined lightness steps."},"violet":{"50":{"$value":"#f5f3ff","$description":"Specific value within the violet range at a defined lightness step."},"400":{"$value":"#a78bfa","$description":"Specific value within the violet range at a defined lightness step."},"700":{"$value":"#6d28d9","$description":"Specific value within the violet range at a defined lightness step."},"950":{"$value":"#2e1065","$description":"Specific value within the violet range at a defined lightness step."},"$description":"Discrete values within the violet range at defined lightness steps."},"lilac":{"50":{"$value":"#f7f4fe","$description":"Specific value within the lilac range at a defined lightness step."},"100":{"$value":"#efe9fd","$description":"Specific value within the lilac range at a defined lightness step."},"200":{"$value":"#ddd0fb","$description":"Specific value within the lilac range at a defined lightness step."},"300":{"$value":"#c3aef6","$description":"Specific value within the lilac range at a defined lightness step."},"400":{"$value":"#a585ee","$description":"Specific value within the lilac range at a defined lightness step."},"450":{"$value":"#9a6fe8","$description":"Specific value within the lilac range at a defined lightness step."},"500":{"$value":"#6f3fd4","$description":"Lilac accent rest — AA for white text on page and card surfaces."},"600":{"$value":"#5f33c0","$description":"Specific value within the lilac range at a defined lightness step."},"700":{"$value":"#4f2aa3","$description":"Specific value within the lilac range at a defined lightness step."},"800":{"$value":"#3a1f78","$description":"Specific value within the lilac range at a defined lightness step."},"900":{"$value":"#2a1659","$description":"Specific value within the lilac range at a defined lightness step."},"$description":"Lilac ramp at fixed lightness steps. Mirrors the blue ramp's stops; available to brand overlays."},"amber":{"50":{"$value":"#fffbeb","$description":"Specific value within the amber range at a defined lightness step."},"400":{"$value":"#fbbf24","$description":"Specific value within the amber range at a defined lightness step."},"800":{"$value":"#92400e","$description":"Specific value within the amber range at a defined lightness step."},"950":{"$value":"#451a03","$description":"Specific value within the amber range at a defined lightness step."},"$description":"Discrete values within the amber range at defined lightness steps."},"stone":{"100":{"$value":"#F5EFE7","$description":"Stone 100 — near-white warm tint; accent-subtle surface."},"400":{"$value":"#D0B492","$description":"Stone 400 — light warm tone; dark-mode pressed accent."},"450":{"$value":"#BC9D7E","$description":"Stone 450 — medium warm tone; dark-mode hover accent."},"500":{"$value":"#A8896A","$description":"Stone 500 — mid warm tone; dark-mode rest accent."},"600":{"$value":"#8B6F47","$description":"Stone 600 — primary warm stone; light-mode rest accent and CTA surface."},"700":{"$value":"#75593A","$description":"Stone 700 — darker warm stone; light-mode hover accent."},"800":{"$value":"#5C432A","$description":"Stone 800 — deep warm stone; light-mode pressed accent."},"950":{"$value":"#3A2E1F","$description":"Stone 950 — near-black warm tone; dark-mode subtle accent surface."},"$description":"Warm stone/brown palette for Concrete Creations brand accent ramp. PLACEHOLDER values pending final brand identity work."},"projectBrand":{"microsoftGameDev":{"100":{"$value":"#E5E5FC","$description":"Light support tone for the Microsoft Game Dev project brand."},"500":{"$value":"#6d31fb","$description":"Primary accent tone for the Microsoft Game Dev project brand."},"900":{"$value":"oklch(0.22 0.16 304)","$description":"Dark support tone for the Microsoft Game Dev project brand."},"$description":"Project-specific brand colors used in portfolio contexts."},"$description":"Project-specific brand color families reserved for portfolio surfaces."}},"space":{"0":{"$value":{"value":0,"unit":"px"}},"1":{"$value":{"value":4,"unit":"px"}},"2":{"$value":{"value":8,"unit":"px"}},"3":{"$value":{"value":12,"unit":"px"}},"4":{"$value":{"value":16,"unit":"px"}},"5":{"$value":{"value":20,"unit":"px"}},"6":{"$value":{"value":24,"unit":"px"}},"7":{"$value":{"value":28,"unit":"px"}},"8":{"$value":{"value":32,"unit":"px"}},"10":{"$value":{"value":40,"unit":"px"}},"12":{"$value":{"value":48,"unit":"px"}},"16":{"$value":{"value":64,"unit":"px"}},"20":{"$value":{"value":80,"unit":"px"}},"24":{"$value":{"value":96,"unit":"px"}},"32":{"$value":{"value":128,"unit":"px"}},"$type":"dimension","$description":"Dimensional increments within the 4px base-unit spatial system.","px1":{"$value":{"value":1,"unit":"px"}},"px2":{"$value":{"value":2,"unit":"px"}},"px6":{"$value":{"value":6,"unit":"px"}},"px10":{"$value":{"value":10,"unit":"px"}}},"blur":{"8":{"$value":{"value":8,"unit":"px"},"$description":"8px blur step."},"16":{"$value":{"value":16,"unit":"px"},"$description":"Fullscreen backdrop blur for portfolio lightbox overlays."},"$type":"dimension","$description":"Backdrop blur strengths for frosted overlays and fullscreen media treatments."},"radius":{"0":{"$value":{"value":0,"unit":"px"}},"2":{"$value":{"value":2,"unit":"px"}},"4":{"$value":{"value":4,"unit":"px"}},"8":{"$value":{"value":8,"unit":"px"}},"12":{"$value":{"value":12,"unit":"px"}},"$type":"dimension","full":{"$value":{"value":9999,"unit":"px"}}},"typography":{"family":{"$type":"fontFamily","primary":{"$value":["Satoshi","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Self-hosted Satoshi (ITF) body typeface; falls back to system-ui sans-serif stack."},"display":{"$value":["Satoshi","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Display face: Satoshi Bold (ITF), bound to the display and title composites."},"mono":{"$value":["Geist Mono","Courier New","monospace"],"$description":"Monospace face: Geist Mono. Falls back to Courier New, monospace."}},"size":{"$type":"dimension","xs":{"$value":{"value":12,"unit":"px"},"$description":"Tailwind 4 default text-xs (hds#283 ramp)."},"sm":{"$value":{"value":14,"unit":"px"},"$description":"Tailwind 4 default text-sm (hds#283 ramp)."},"base":{"$value":{"value":16,"unit":"px"},"$description":"Tailwind 4 default text-base (hds#283 ramp)."},"lg":{"$value":{"value":18,"unit":"px"},"$description":"Tailwind 4 default text-lg (hds#283 ramp)."},"xl":{"$value":{"value":20,"unit":"px"},"$description":"Tailwind 4 default text-xl (hds#283 ramp)."},"2xl":{"$value":{"value":24,"unit":"px"},"$description":"Tailwind 4 default text-2xl (hds#283 ramp)."},"3xl":{"$value":{"value":30,"unit":"px"},"$description":"Tailwind 4 default text-3xl (hds#283 ramp)."},"4xl":{"$value":{"value":36,"unit":"px"},"$description":"Tailwind 4 default text-4xl (hds#283 ramp)."},"5xl":{"$value":{"value":48,"unit":"px"},"$description":"Tailwind 4 default text-5xl (hds#283 ramp)."},"6xl":{"$value":{"value":60,"unit":"px"},"$description":"Swiss-canon display size (hds#283 ramp). Static desktop value; fluid in theme.css. Tailwind 4 default text-6xl."},"code":{"$value":{"value":13,"unit":"px"},"$description":"13px code size. The mono role (hds#485): one px below ui so code sits level with 14px prose."}},"weight":{"$type":"fontWeight","regular":{"$value":400},"medium":{"$value":500},"bold":{"$value":700}},"lineHeight":{"$type":"number","compact":{"$value":0.95},"none":{"$value":1},"tight":{"$value":1.25},"snug":{"$value":1.375,"$description":"Swiss-canon snug rhythm (10t-5). Used by h2/h3 composites for tight-but-readable heading lines."},"normal":{"$value":1.5},"relaxed":{"$value":1.625,"$description":"Swiss-canon relaxed rhythm (10t-5). Used by body/small/mono composites for long-form prose comfort."},"display":{"$value":1.05,"$description":"Display role leading (hds#485)."},"body":{"$value":1.6,"$description":"Body role leading (hds#485)."}},"letterSpacing":{"$type":"dimension","tight":{"$value":{"value":-0.01,"unit":"em"}},"normal":{"$value":{"value":0,"unit":"em"}},"caps":{"$value":{"value":0.06,"unit":"em"},"$description":"All-caps tracking for eyebrow / kicker labels. Always pairs with text-transform: uppercase."}}},"duration":{"$type":"duration","instant":{"$value":{"value":100,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."},"short":{"$value":{"value":150,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."},"medium":{"$value":{"value":250,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."},"long":{"$value":{"value":400,"unit":"ms"},"$description":"Fixed elapsed time interval in milliseconds."}},"easing":{"$type":"cubicBezier","emphasized":{"$value":[0.4,0,0.2,1],"$description":"Cubic bezier with balanced input and output tangents."},"decelerate":{"$value":[0,0,0.2,1],"$description":"Cubic bezier with steep initial gain and constrained tail velocity."},"accelerate":{"$value":[0.4,0,1,1],"$description":"Cubic bezier with restrained initial gain and steep terminal velocity."},"elastic":{"$type":"spring","$value":{"type":"spring","stiffness":300,"damping":20,"mass":1},"$description":"Spring response defined by stiffness, damping, and mass parameters."}},"shadow":{"color":{"$type":"color","$value":"220 13% 18%","$description":"HSL channels for shadow-color alpha compositing. Light: cool neutral; dark: black.","$extensions":{"com.figma.variables":{"modes":{"Light":"220 13% 18%","Dark":"0 0% 0%"}}}}},"breakpoint":{"$description":"Discrete viewport thresholds expressed as dimensions.","xs":{"$type":"dimension","$value":{"value":375,"unit":"px"}},"sm":{"$type":"dimension","$value":{"value":640,"unit":"px"}},"md":{"$type":"dimension","$value":{"value":768,"unit":"px"}},"lg":{"$type":"dimension","$value":{"value":1024,"unit":"px"}},"xl":{"$type":"dimension","$value":{"value":1280,"unit":"px"}}},"size":{"8":{"$type":"dimension","$value":{"value":8,"unit":"px"},"$description":"8px size step."},"10":{"$type":"dimension","$value":{"value":10,"unit":"px"},"$description":"10px size step."},"12":{"$type":"dimension","$value":{"value":12,"unit":"px"},"$description":"12px size step."},"16":{"$type":"dimension","$value":{"value":16,"unit":"px"},"$description":"16px size step."},"20":{"$type":"dimension","$value":{"value":20,"unit":"px"},"$description":"20px size step."},"24":{"$type":"dimension","$value":{"value":24,"unit":"px"},"$description":"24px size step."},"32":{"$type":"dimension","$value":{"value":32,"unit":"px"},"$description":"32px size step."},"40":{"$type":"dimension","$value":{"value":40,"unit":"px"},"$description":"40px size step."},"48":{"$type":"dimension","$value":{"value":48,"unit":"px"},"$description":"48px size step."},"64":{"$type":"dimension","$value":{"value":64,"unit":"px"},"$description":"64px size step."},"80":{"$type":"dimension","$value":{"value":80,"unit":"px"},"$description":"80px size step."},"96":{"$type":"dimension","$value":{"value":96,"unit":"px"},"$description":"96px size step."},"120":{"$type":"dimension","$value":{"value":120,"unit":"px"},"$description":"120px size step. Backs semantic.size.tile."},"$description":"Unaliased dimensional values.","interactive":{"$description":"Interactive control size minimums.","min":{"$type":"dimension","$value":{"value":44,"unit":"px"},"$description":"Minimum interactive hit target size."},"minCompact":{"$type":"dimension","$value":{"value":24,"unit":"px"},"$description":"Compact inline control target minimum, e.g. a chip's remove button: WCAG 2.2 AA (2.5.8), not the 44px AAA floor (2.5.5)."}},"width":{"96":{"$type":"dimension","$value":{"value":96,"unit":"px"},"$description":"96px width step."},"280":{"$type":"dimension","$value":{"value":280,"unit":"px"},"$description":"Docs-shell rail width (hds#280): our own number, not HeroUI's 268px; fits the longest top-level nav label with room."},"760":{"$type":"dimension","$value":{"value":760,"unit":"px"}},"1200":{"$type":"dimension","$value":{"value":1200,"unit":"px"}},"50ch":{"$type":"dimension","$value":{"value":50,"unit":"ch"}}}},"grid":{"columns":{"1":{"$type":"number","$value":1},"2":{"$type":"number","$value":2},"3":{"$type":"number","$value":3}}},"zIndex":{"0":{"$type":"number","$value":0},"10":{"$type":"number","$value":10},"100":{"$type":"number","$value":100},"1000":{"$type":"number","$value":1000},"$description":"Discrete stacking levels along the z axis."},"borderWidth":{"$type":"dimension","xs":{"$value":{"value":1,"unit":"px"}},"sm":{"$value":{"value":2,"unit":"px"}},"md":{"$value":{"value":4,"unit":"px"}}}}`), ia = /* @__PURE__ */ JSON.parse(`{"motion":{"$type":"motion","productive":{"$value":{"duration":"{primitive.duration.short}","easing":"{primitive.easing.decelerate}"},"$description":"For micro-interactions and status changes. No deformation."},"expressive":{"$value":{"duration":"{primitive.duration.medium}","easing":"{primitive.easing.elastic}"},"$description":"For teaching moments and significant UI entries. Includes physics-based squish."},"spatial":{"$value":{"duration":"{primitive.duration.long}","easing":"{primitive.easing.emphasized}"},"$description":"For elements traveling long distances across the viewport."},"exit":{"$value":{"duration":"{primitive.duration.instant}","easing":"{primitive.easing.accelerate}"},"$description":"For elements being removed from the DOM."},"distance":{"$type":"dimension","$value":"{primitive.space.6}","$description":"Scroll-reveal translateY travel distance. Equals semantic.space.scale.md today, but names motion travel, not a spacing tier (hds#242)."}},"color":{"$type":"color","surface":{"page":{"$value":"{primitive.color.neutral.white}","$description":"Main page background","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.white}","Dark":"{primitive.color.neutral.black}"}}}},"raised":{"$value":"{primitive.color.neutral.50}","$description":"Subtle elevated surface (cards, sections)","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.50}","Dark":"{primitive.color.neutral.950}"}}}},"overlay":{"$value":"{primitive.color.neutral.100}","$description":"Deeper surface layer","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.850}"}}}},"scrim":{"$value":"{primitive.color.neutral.900}","$description":"Opaque modal backdrop, near-black in both themes. Apply alpha in the class (bg-scrim/60), not here.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.black}"}}}},"inverse":{"$value":"{primitive.color.neutral.black}","$description":"Inverted background for contrast sections","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.black}","Dark":"{primitive.color.neutral.white}"}}}},"accent":{"$value":"{primitive.color.neutral.900}","$description":"Accent-colored background (neutral/monochrome; inverts to a light neutral on dark surfaces).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"accentSubtle":{"$value":"{primitive.color.neutral.100}","$description":"Faint accent tint for hover states or highlights","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"hover":{"$value":"{primitive.color.neutral.100}","$description":"Background for a hovered interactive surface (menu items, chips, tertiary buttons).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"pressed":{"$value":"{primitive.color.neutral.50}","$description":"Background for an actively pressed interactive surface.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.50}","Dark":"{primitive.color.neutral.950}"}}}},"selected":{"$value":"{primitive.color.neutral.200}","$description":"Background for a persistently selected item (active tab, checked row).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.800}"}}}},"muted":{"$value":"{primitive.color.neutral.100}","$description":"Muted background for low-emphasis content blocks.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"sunken":{"$value":"{primitive.color.neutral.200}","$description":"Recessed background for inset wells (inputs, code blocks, nested panels).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.850}"}}}}},"content":{"primary":{"$value":"{primitive.color.neutral.900}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"secondary":{"$value":"{primitive.color.neutral.600}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.600}","Dark":"{primitive.color.neutral.400}"}}}},"disabled":{"$value":"{primitive.color.neutral.300}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.300}","Dark":"{primitive.color.neutral.600}"}}}},"inverse":{"$value":"{primitive.color.neutral.100}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.900}"}}}},"accent":{"$value":"{primitive.color.neutral.900}","$description":"Accent-intent text/icon color (monochrome). Pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"onAccent":{"$value":"{primitive.color.neutral.white}","$description":"Text/icon color on accent fills. Flips to a dark neutral in dark mode, where accent fills are light.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.white}","Dark":"{primitive.color.neutral.900}"}}}},"success":{"$value":"{primitive.color.green.700}","$description":"Success-toned text/icon color, independent of feedback banners.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.700}","Dark":"{primitive.color.green.400}"}}}},"warning":{"$value":"{primitive.color.amber.800}","$description":"Warning-toned text/icon color, independent of feedback banners.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.800}","Dark":"{primitive.color.amber.400}"}}}},"danger":{"$value":"{primitive.color.red.700}","$description":"Danger-toned text/icon color, independent of feedback banners.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.red.700}","Dark":"{primitive.color.red.400}"}}}}},"border":{"default":{"$value":"{primitive.color.neutral.200}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.700}"}}}},"interactive":{"$value":"{primitive.color.neutral.500}","$description":"Border for interactive control boundaries (inputs, selects, secondary buttons); meets the WCAG 1.4.11 3:1 non-text contrast floor.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.500}","Dark":"{primitive.color.neutral.500}"}}}},"subdued":{"$value":"{primitive.color.neutral.200}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.200}","Dark":"{primitive.color.neutral.800}"}}}},"subtle":{"$value":"{primitive.color.neutral.100}","$description":"Lowest-contrast border for resting hairline edges on flat surfaces.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.850}"}}}},"strong":{"$value":"{primitive.color.neutral.300}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.300}","Dark":"{primitive.color.neutral.600}"}}}},"accent":{"$value":"{primitive.color.neutral.900}","$description":"Accent border (neutral/monochrome; inverts on dark surfaces).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"success":{"$value":"{primitive.color.green.400}","$description":"Success-toned border for status outlines and success-state inputs.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.400}","Dark":"{primitive.color.green.400}"}}}},"warning":{"$value":"{primitive.color.amber.400}","$description":"Warning-toned border for status outlines and warning-state inputs.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.400}","Dark":"{primitive.color.amber.400}"}}}}},"feedback":{"error":{"$type":"color","$value":"{primitive.color.red.700}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.red.700}","Dark":"{primitive.color.red.400}"}}}},"success":{"$type":"color","$value":"{primitive.color.green.700}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.700}","Dark":"{primitive.color.green.400}"}}}},"warning":{"$type":"color","$value":"{primitive.color.amber.800}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.800}","Dark":"{primitive.color.amber.400}"}}}},"info":{"$type":"color","$value":"{primitive.color.blue.500}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.blue.500}","Dark":"{primitive.color.blue.300}"}}}},"inProgress":{"$type":"color","$value":"{primitive.color.violet.700}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.violet.700}","Dark":"{primitive.color.violet.400}"}}}},"bg":{"error":{"$type":"color","$value":"{primitive.color.red.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.red.50}","Dark":"{primitive.color.red.950}"}}}},"success":{"$type":"color","$value":"{primitive.color.green.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.green.50}","Dark":"{primitive.color.green.950}"}}}},"warning":{"$type":"color","$value":"{primitive.color.amber.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.amber.50}","Dark":"{primitive.color.amber.950}"}}}},"info":{"$type":"color","$value":"{primitive.color.blue.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.blue.50}","Dark":"{primitive.color.blue.900}"}}}},"inProgress":{"$type":"color","$value":"{primitive.color.violet.50}","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.violet.50}","Dark":"{primitive.color.violet.950}"}}}}}},"state":{"pressed":{"overlay":{"$value":"{primitive.color.neutral.black}","$description":"Opaque pressed wash over a control's own fill: black in light, white in dark. Alpha in the class (inset-shadow-pressed-overlay/5).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.black}","Dark":"{primitive.color.neutral.white}"}}}}}}},"space":{"$type":"dimension","$description":"Semantic spacing tiers: subgrid, component, layout, section, scale.","scale":{"$description":"hds#206: the canonical spacing vocabulary, one monotonic t-shirt scale (xs to xl) for padding, margin and gap. Supersedes deprecated names.","xs":{"$value":"{primitive.space.2}","$description":"8px — smallest step. Same value as component.gap (deprecated alias)."},"sm":{"$value":"{primitive.space.4}","$description":"16px — same value as layout.tight (deprecated alias)."},"md":{"$value":"{primitive.space.6}","$description":"24px. Default of the overridable roles surface.padding and region.gutter. The deprecated layout.normal has the same value."},"lg":{"$value":"{primitive.space.8}","$description":"32px — same value as layout.inset (deprecated alias)."},"xl":{"$value":"{primitive.space.12}","$description":"48px — same value as layout.spacious (deprecated alias)."}},"surface":{"$description":"hds#206 surface inset role. Tenants override it per brand and density, always with a scale step.","padding":{"$value":"{semantic.space.scale.md}","$description":"24px (scale.md) inset for cards, forms and panels. Tenants override it per brand and density. Replaces component.padding."}},"region":{"$description":"hds#206 region gutter role. theme.css retunes it per viewport, always with a scale step.","gutter":{"$value":"{semantic.space.scale.md}","$description":"24px (scale.md) column and region gutters; theme.css sets scale.lg (32px), and scale.sm (16px) below 640px. Replaces layout.gutter."}},"subgrid":{"hairline":{"$value":"{primitive.space.px1}","$description":"1px border offset and hairline spacing."},"xs":{"$value":"{primitive.space.px2}","$description":"2px vertical rhythm nudge and baseline adjustment."},"gap":{"$value":"{primitive.space.1}","$description":"4px cap-height and inline cluster spacing."}},"component":{"gap":{"$value":"{primitive.space.2}","$description":"8px label↔input rhythm and closely coupled control spacing. DEPRECATED alias (hds#206) — use semantic.space.scale.xs; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.xs"},"medium":{"$value":"{primitive.space.3}","$description":"12px adjacent form fields and medium intra-component gaps."},"padding":{"$value":"{semantic.space.surface.padding}","$description":"24px inset for cards, forms and panels. DEPRECATED alias (hds#206) — use semantic.space.surface.padding; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.surface.padding"}},"layout":{"tight":{"$value":"{primitive.space.4}","$description":"16px default HdsStack gap and inter-component spacing. DEPRECATED alias (hds#206) — use semantic.space.scale.sm; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.sm"},"normal":{"$value":"{primitive.space.6}","$description":"24px column gutters and sidebar gutter spacing. DEPRECATED alias (hds#206) — use semantic.space.scale.md; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.md"},"gutter":{"$value":"{semantic.space.region.gutter}","$description":"24px column and region gutters. DEPRECATED alias (hds#206) — use semantic.space.region.gutter (responsive in theme.css); kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.region.gutter"},"inset":{"$value":"{primitive.space.8}","$description":"32px major block separation and inset inter-component gaps. DEPRECATED alias (hds#206) — use semantic.space.scale.lg; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.lg"},"spacious":{"$value":"{primitive.space.12}","$description":"48px break between major content blocks. DEPRECATED alias (hds#206) — use semantic.space.scale.xl; kept live, no removal yet.","$deprecated":"hds#206 — use semantic.space.scale.xl"}},"section":{"stack":{"$value":"{primitive.space.20}","$description":"80px vertical rhythm between page sections and major editorial blocks."},"inset":{"$value":"{primitive.space.24}","$description":"96px hero and landing-page inset padding."},"heroMax":{"$value":"{primitive.space.32}","$description":"128px maximum hero region padding for extra-large displays."}},"sidebar":{"indent":{"$value":"{primitive.space.3}","$description":"12px indent level for nested sidebar and TOC groups."},"gap":{"$value":"{primitive.space.4}","$description":"16px vertical spacing between items in sidebar and TOC stacks."},"sectionGap":{"$value":"{primitive.space.3}","$description":"12px spacing between sidebar sections and grouped rail blocks."},"railPadding":{"$value":"{primitive.space.5}","$description":"20px outer padding for sidebar and TOC rails."},"railWidth":{"$type":"dimension","$value":"{primitive.size.width.280}","$description":"Docs-shell nav and TOC rail width (hds#280), one token for both rails; 0 below their breakpoint (see HdsDocsShell)."}}},"layout":{"width":{"content":{"$type":"dimension","$value":"{primitive.size.width.760}","$description":"Max width for prose/content (760px). Use with HdsContainer for centered text blocks."},"max":{"$type":"dimension","$value":"{primitive.size.width.1200}","$description":"Max width for full-layout containers (1200px). Use with HdsContainer for page layouts."}},"container":{"maxWidth":{"$type":"dimension","$value":"{primitive.size.width.1200}"}},"content":{"maxWidth":{"$type":"dimension","$value":"{primitive.size.width.760}"}},"prose":{"maxWidth":{"$type":"dimension","$value":"{primitive.size.width.50ch}"}},"section":{"paddingY":{"$type":"dimension","$value":"{primitive.space.20}"}},"grid":{"gap":{"$type":"dimension","$value":"{primitive.space.8}"},"columns":{"mobile":{"$type":"number","$value":"{primitive.grid.columns.1}"},"tablet":{"$type":"number","$value":"{primitive.grid.columns.2}"},"desktop":{"$type":"number","$value":"{primitive.grid.columns.3}"}}}},"typography":{"$type":"typography","$description":"5-role type ramp plus mono (hds#483): display, title, body, ui, caption, mono. h1, h2, h3 and eyebrow are deprecated aliases.","display":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.5xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"{primitive.typography.lineHeight.display}"},"$description":"One per page, hero only. 48px / 1.05 / 700. Role 1 of 6."},"title":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.2xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"{primitive.typography.lineHeight.tight}"},"$description":"Section and card headings. 24px / 1.25 / 700. Role 2 of 6."},"body":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.base}","fontWeight":"{primitive.typography.weight.regular}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"{primitive.typography.lineHeight.body}","maxWidth":{"value":60,"unit":"ch"}},"$description":"Prose. 16px / 1.6 / 400, 60ch measure. Role 3 of 6."},"ui":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.sm}","fontWeight":"{primitive.typography.weight.medium}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"{primitive.typography.lineHeight.normal}","maxWidth":{"value":60,"unit":"ch"}},"$description":"Controls, nav, table text, values. 14px / 1.5 / 500. Role 4 of 6."},"caption":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.xs}","fontWeight":"{primitive.typography.weight.medium}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"{primitive.typography.lineHeight.normal}"},"$description":"Metadata, help text and labels, in sentence case. 12px / 1.5 / 500. Role 5 of 6."},"mono":{"$value":{"fontFamily":"{primitive.typography.family.mono}","fontSize":"{primitive.typography.size.code}","fontWeight":"{primitive.typography.weight.regular}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"{primitive.typography.lineHeight.normal}","maxWidth":{"value":60,"unit":"ch"}},"$description":"Code and ids. 13px / 1.5 / 400. The mono companion, role 6 of 6."},"h1":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.2xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"{primitive.typography.lineHeight.tight}"},"$description":"deprecated: use semantic.typography.title","$deprecated":"hds#483 — use semantic.typography.title"},"h2":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.2xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"{primitive.typography.lineHeight.tight}"},"$description":"deprecated: use semantic.typography.title","$deprecated":"hds#483 — use semantic.typography.title"},"h3":{"$value":{"fontFamily":"{primitive.typography.family.display}","fontSize":"{primitive.typography.size.2xl}","fontWeight":"{primitive.typography.weight.bold}","letterSpacing":"{primitive.typography.letterSpacing.tight}","lineHeight":"{primitive.typography.lineHeight.tight}"},"$description":"deprecated: use semantic.typography.title","$deprecated":"hds#483 — use semantic.typography.title"},"eyebrow":{"$value":{"fontFamily":"{primitive.typography.family.primary}","fontSize":"{primitive.typography.size.xs}","fontWeight":"{primitive.typography.weight.medium}","letterSpacing":"{primitive.typography.letterSpacing.normal}","lineHeight":"{primitive.typography.lineHeight.normal}"},"$description":"deprecated: use semantic.typography.caption","$deprecated":"hds#483 — use semantic.typography.caption"},"lineHeight":{"none":{"$type":"number","$value":"{primitive.typography.lineHeight.none}","$description":"Semantic alias for leading-none (1). Display text and badge spans."}}},"docs":{"$description":"Doc-page spacing scale: section, paragraph, inline rhythm.","space":{"$type":"dimension","section":{"$value":"{primitive.space.12}","$description":"48px between H2 sections — generous section break for doc pages."},"paragraph":{"$value":"{primitive.space.6}","$description":"24px between paragraphs — comfortable prose rhythm for long-form doc content."},"inline":{"$value":"{primitive.space.2}","$description":"8px inline cluster spacing — gap between metadata badges, inline icons, doc-page chips."}}},"accent":{"$type":"color","rest":{"$value":"{primitive.color.neutral.900}","$description":"Default accent fill for interactive elements at rest. Neutral (monochrome) accent — inverts to a light neutral on dark surfaces.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"hover":{"$value":"{primitive.color.neutral.800}","$description":"Accent fill on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.800}","Dark":"{primitive.color.neutral.200}"}}}},"pressed":{"$value":"{primitive.color.neutral.950}","$description":"Accent fill during active press.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.950}","Dark":"{primitive.color.neutral.300}"}}}},"inactive":{"$value":"{primitive.color.neutral.400}","$description":"Accent fill for inactive or unselected accent elements.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.400}","Dark":"{primitive.color.neutral.600}"}}}},"disabled":{"$value":"{primitive.color.neutral.300}","$description":"Accent fill for disabled accent elements.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.300}","Dark":"{primitive.color.neutral.700}"}}}},"content":{"$value":"{primitive.color.neutral.900}","$description":"Text and icon color on neutral surfaces with accent intent. Monochrome — pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","Dark":"{primitive.color.neutral.100}"}}}},"contentHover":{"$value":"{primitive.color.neutral.700}","$description":"Accent content color on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.700}","Dark":"{primitive.color.neutral.300}"}}}},"subtle":{"$value":"{primitive.color.neutral.100}","$description":"Low-emphasis accent tint for hover backgrounds and selection highlights.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.100}","Dark":"{primitive.color.neutral.800}"}}}}},"radius":{"action":{"$type":"dimension","$value":"{primitive.radius.8}","$description":"Corner radius for action elements (buttons, inputs, badges); Tailwind rounded-md resolves here. Override role.radius to reshape the system."},"control":{"$type":"dimension","$value":"{primitive.radius.4}","$description":"Corner radius for small control glyphs such as the checkbox box: not fully round, and distinct from semantic.radius.action (hds#242)."}},"borderWidth":{"default":{"$type":"dimension","$value":"{primitive.borderWidth.xs}","$description":"Default hairline border weight for surfaces and inputs."},"emphasis":{"$type":"dimension","$value":"{primitive.borderWidth.sm}","$description":"Stronger border weight for focus rings and active indicators."}},"shadow":{"$type":"shadow","subtle":{"$value":"0 1px 2px hsl(var(--primitive-shadow-color) / 0.04), 0 1px 1px hsl(var(--primitive-shadow-color) / 0.06)","$description":"Resting elevation shadow for raised surfaces (cards, inline panels)."},"floating":{"$value":"0 4px 6px hsl(var(--primitive-shadow-color) / 0.05), 0 10px 15px hsl(var(--primitive-shadow-color) / 0.08)","$description":"Hover/floating elevation for menus, popovers, and tooltips."},"overlay":{"$value":"0 10px 15px hsl(var(--primitive-shadow-color) / 0.08), 0 25px 50px hsl(var(--primitive-shadow-color) / 0.12)","$description":"Modal/dialog elevation for full-screen overlays."}},"elevation":{"$type":"elevation","flat":{"$value":{"surface":"{semantic.color.surface.page}","shadow":null,"border":"{semantic.color.border.subtle}"},"$description":"Flat surface (no shadow, hairline border) for embedded panels."},"raised":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.subtle}","border":null},"$description":"Resting card / panel elevation."},"floating":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.floating}","border":null},"$description":"Hover, menu, and popover elevation."},"overlay":{"$value":{"surface":"{semantic.color.surface.overlay}","shadow":"{semantic.shadow.overlay}","border":null},"$description":"Modal, dialog, and drawer elevation."}},"size":{"$type":"dimension","$description":"Sizing roles for control glyphs, avatars and table rows. Roles sharing a value stay separate so each can change (hds#242).","control":{"$description":"Interactive control glyph/element sizing (checkbox glyph box, radio dot, slider track/fill, code-block copy-button-matched footprint).","sm":{"$value":"{primitive.size.8}","$description":"Small control element — radio dot, slider fill bar height."},"md":{"$value":"{primitive.size.20}","$description":"Medium control element — checkbox glyph box, slider track wrapper height."},"lg":{"$value":"{primitive.size.32}","$description":"Large control footprint — code-block inline-wrapper min-height / copy-button-matched pre padding."}},"icon":{"$description":"Reserved icon-size role, parallel to the existing --hds-icon-* bridge (src/styles/theme.css), for future direct semantic.size.icon consumers.","sm":{"$value":"{primitive.size.16}","$description":"Small icon box — matches --hds-icon-small."},"md":{"$value":"{primitive.size.20}","$description":"Medium icon box — matches --hds-icon-medium."},"lg":{"$value":"{primitive.size.24}","$description":"Large icon box — matches --hds-icon-large."}},"avatar":{"$value":"{primitive.size.40}","$description":"Avatar size (width and height) for activity feeds and identity glyphs. Same pixels as row.compact today, a separate role (hds#242)."},"tile":{"$value":"{primitive.size.120}","$description":"Minimum height of a metric tile, one height for every tile so rows line up (hds#403)."},"row":{"$description":"Table row minimum height by density.","compact":{"$value":"{primitive.size.40}","$description":"Compact-density row minimum height."},"comfortable":{"$value":"{primitive.size.48}","$description":"Comfortable-density row minimum height."}}},"zIndex":{"$type":"number","$description":"Named stacking layers, aliasing the numeric primitive.zIndex scale (hds#242).","control":{"$value":"{primitive.zIndex.10}","$description":"Raises an interactive control (e.g. a native range input) above its visual decoration for hit-testing."},"sticky":{"$value":"{primitive.zIndex.100}","$description":"Sticky-positioned elements, such as a table header row."}}}`), ta = { nav: { bg: { $type: "color", $value: "{semantic.color.surface.page}", $description: "Nav bar background fill." }, bgActive: { $type: "color", $value: "{semantic.accent.subtle}", $description: "Nav item background fill when active or selected." }, borderActive: { $type: "color", $value: "{semantic.color.surface.accent}", $description: "Nav item border color when active or selected." }, text: { $type: "color", $value: "{semantic.color.content.secondary}", $description: "Nav item text color at rest." }, textActive: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Nav item text color when active or selected." }, height: { $type: "dimension", $value: "{primitive.space.16}", $description: "Nav bar height." }, paddingX: { $type: "dimension", $value: "{primitive.space.6}", $description: "Horizontal padding inside nav items." }, paddingY: { $type: "dimension", $value: "{primitive.space.2}", $description: "Vertical padding inside nav items." } }, tag: { background: { $type: "color", $value: "{semantic.accent.subtle}", $description: "Base tag surface color." }, text: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Default tag text color." }, border: { $type: "color", $value: "{semantic.color.border.default}", $description: "Default tag border color." }, radius: { $type: "dimension", $value: "{primitive.radius.full}", $description: "Pill radius for the tag surface." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.xs}", $description: "Tag type size." }, fontWeight: { $type: "fontWeight", $value: "{primitive.typography.weight.medium}", $description: "Tag label weight." }, lineHeight: { $type: "dimension", $value: "{primitive.typography.lineHeight.normal}", $description: "Readable label rhythm for tags." }, minWidth: { $type: "dimension", $value: "{primitive.size.48}", $description: "Minimum tag width." }, minHeight: { $type: "dimension", $value: "{primitive.space.6}", $description: "Minimum tag height." }, paddingX: { $type: "dimension", $value: "{primitive.space.3}", $description: "Horizontal padding inside the pill." }, paddingY: { $type: "dimension", $value: "{primitive.space.2}", $description: "Vertical padding inside the pill." }, activeText: { $type: "color", $value: "{semantic.color.content.onAccent}", $description: "Text color when the tag is active." }, activeBackground: { $type: "color", $value: "{semantic.accent.rest}", $description: "Active tag fill color." }, activeBorder: { $type: "color", $value: "{semantic.accent.rest}", $description: "Active tag border color." }, activeHover: { $type: "color", $value: "{semantic.accent.hover}", $description: "Active tag hover fill color." } }, badge: { fontSize: { $type: "dimension", $value: "{primitive.typography.size.xs}", $description: "Badge type size." }, fontWeight: { $type: "fontWeight", $value: "{primitive.typography.weight.medium}", $description: "Badge label weight." }, text: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Badge text color." }, bg: { $type: "color", $value: "{semantic.color.feedback.bg.info}", $extensions: { "com.figma.variables": { modes: { Light: "{semantic.color.feedback.bg.info}", Dark: "{semantic.color.feedback.bg.info}" } } }, $description: "Badge background color." }, radius: { $type: "dimension", $value: "{primitive.radius.4}", $description: "Small rounded radius for badges." }, height: { $type: "dimension", $value: "{primitive.size.20}", $description: "Badge height." }, minWidth: { $type: "dimension", $value: "{primitive.size.20}", $description: "Badge minimum width." }, paddingY: { $type: "dimension", $value: "{primitive.space.px2}", $description: "Vertical padding inside the badge." }, paddingX: { $type: "dimension", $value: "{primitive.space.px6}", $description: "Horizontal padding inside the badge." } }, button: { bg: { $type: "color", $value: "{semantic.color.surface.accent}", $description: "Primary button fill." }, bgHover: { $type: "color", $value: "{semantic.accent.hover}", $description: "Primary button hover fill." }, text: { $type: "color", $value: "{semantic.color.content.onAccent}", $description: "Primary button text color." }, radius: { $type: "dimension", $value: "{semantic.radius.action}", $description: "Button corner radius." }, paddingX: { $type: "dimension", $value: "{primitive.space.4}", $description: "Horizontal button padding." }, paddingY: { $type: "dimension", $value: "{primitive.space.3}", $description: "Vertical button padding." }, size: { sm: { paddingX: { $type: "dimension", $value: "{primitive.space.2}", $description: "Small button horizontal padding (8px)." }, paddingY: { $type: "dimension", $value: "{primitive.space.1}", $description: "Small button vertical padding (4px)." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.xs}", $description: "Small button label size (12px, hds#283: was 13px)." }, iconSize: { $type: "dimension", $value: "{primitive.size.12}", $description: "Small button icon slot size (12px)." }, height: { $type: "dimension", $value: "{primitive.space.7}", $description: "Small button height (28px)." }, itemSpacing: { $type: "dimension", $value: "{primitive.space.1}", $description: "Small button icon-to-label gap (4px)." } }, md: { paddingX: { $type: "dimension", $value: "{primitive.space.4}", $description: "Medium button horizontal padding (16px)." }, paddingY: { $type: "dimension", $value: "{primitive.space.3}", $description: "Medium button vertical padding (12px)." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.sm}", $description: "Medium button label size (14px, hds#283: was 15px)." }, iconSize: { $type: "dimension", $value: "{primitive.size.16}", $description: "Medium button icon slot size (16px)." }, height: { $type: "dimension", $value: "{primitive.size.40}", $description: "Medium button height (40px)." }, itemSpacing: { $type: "dimension", $value: "{primitive.space.2}", $description: "Medium button icon-to-label gap (8px)." } }, lg: { paddingX: { $type: "dimension", $value: "{primitive.space.6}", $description: "Large button horizontal padding (24px)." }, paddingY: { $type: "dimension", $value: "{primitive.space.4}", $description: "Large button vertical padding (16px)." }, fontSize: { $type: "dimension", $value: "{primitive.typography.size.base}", $description: "Large button label size (16px, hds#283: was 17px)." }, iconSize: { $type: "dimension", $value: "{primitive.size.20}", $description: "Large button icon slot size (20px)." }, height: { $type: "dimension", $value: "{primitive.size.48}", $description: "Large button height (48px)." }, itemSpacing: { $type: "dimension", $value: "{primitive.space.2}", $description: "Large button icon-to-label gap (8px)." } } }, primary: { textDisabled: { $type: "color", $value: "{semantic.color.content.onAccent}", $extensions: { "com.figma.variables": { modes: { Light: "{semantic.color.content.onAccent}", Dark: "{semantic.color.content.disabled}" } } }, $description: "Disabled primary button text color." }, bgDisabled: { $type: "color", $value: "{semantic.color.surface.accentSubtle}", $description: "Disabled primary button fill." } }, secondary: { bg: { rest: { $type: "color", $value: "{semantic.color.surface.page}", $description: "Secondary button fill." }, hover: { $type: "color", $value: "{semantic.color.surface.raised}", $description: "Secondary button hover fill." }, pressed: { $type: "color", $value: "{semantic.color.surface.overlay}", $description: "Secondary button pressed fill." } }, border: { rest: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Secondary button border." }, hover: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Secondary button hover border." }, pressed: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Secondary button pressed border." }, disabled: { $type: "color", $value: "{semantic.color.border.subdued}", $description: "Secondary button disabled border." } }, text: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Secondary button text color." } } }, input: { bg: { $type: "color", $value: "{semantic.color.surface.raised}" }, text: { $type: "color", $value: "{semantic.color.content.primary}" }, border: { $type: "color", $value: "{semantic.color.border.interactive}" }, borderError: { $type: "color", $value: "{semantic.color.feedback.error}" }, radius: { $type: "dimension", $value: "{semantic.radius.action}" }, paddingX: { $type: "dimension", $value: "{primitive.space.4}" }, paddingY: { $type: "dimension", $value: "{primitive.space.3}" } }, card: { bg: { $type: "color", $value: "{semantic.color.surface.raised}" }, border: { $type: "color", $value: "{semantic.color.border.default}" }, radius: { $type: "dimension", $value: "{primitive.radius.8}" }, padding: { $type: "dimension", $value: "{primitive.space.6}" }, gap: { $type: "dimension", $value: "{primitive.space.2}" } }, lightbox: { backdrop: { blur: { $type: "dimension", $value: "{primitive.blur.16}", $description: "Backdrop blur applied behind fullscreen image lightboxes." } } } }, aa = { $description: "Shadcn-style role aliases mapping to semantic tokens. Compiled to --role-* CSS vars.", background: { $type: "color", $value: "{semantic.color.surface.page}", $description: "Page background. shadcn role: background." }, foreground: { $type: "color", $value: "{semantic.color.content.primary}", $description: "Default text on background. shadcn role: foreground." }, card: { $type: "color", $value: "{semantic.color.surface.raised}", $description: "Card surface. shadcn role: card." }, "card-foreground": { $type: "color", $value: "{semantic.color.content.primary}", $description: "Text on card. shadcn role: card-foreground." }, popover: { $type: "color", $value: "{semantic.color.surface.overlay}", $description: "Popover/menu surface. shadcn role: popover." }, scrim: { $type: "color", $value: "{semantic.color.surface.scrim}", $description: "Modal backdrop colour role. Apply alpha in the class, e.g. bg-scrim/60." }, "pressed-overlay": { $type: "color", $value: "{semantic.color.state.pressed.overlay}", $description: "Pressed-state overlay colour role. Apply alpha in the class, e.g. inset-shadow-pressed-overlay/5." }, "popover-foreground": { $type: "color", $value: "{semantic.color.content.primary}", $description: "Text on popover. shadcn role: popover-foreground." }, primary: { $type: "color", $value: "{semantic.color.surface.accent}", $description: "Primary action surface. shadcn role: primary." }, "primary-foreground": { $type: "color", $value: "{semantic.color.content.onAccent}", $description: "Text/icons on primary surface. shadcn role: primary-foreground." }, secondary: { $type: "color", $value: "{semantic.color.surface.raised}", $description: "Secondary action surface. shadcn role: secondary." }, "secondary-foreground": { $type: "color", $value: "{semantic.color.content.primary}", $description: "Text on secondary surface. shadcn role: secondary-foreground." }, muted: { $type: "color", $value: "{semantic.color.surface.overlay}", $description: "Muted/quiet bg (skeletons, disabled inputs). shadcn role: muted." }, "muted-foreground": { $type: "color", $value: "{semantic.color.content.secondary}", $description: "Muted text. shadcn role: muted-foreground." }, accent: { $type: "color", $value: "{semantic.color.surface.accentSubtle}", $description: "Hover/active tinted bg. shadcn role: accent." }, "accent-foreground": { $type: "color", $value: "{semantic.color.content.accent}", $description: "Text on accent surface. shadcn role: accent-foreground." }, destructive: { $type: "color", $value: "{semantic.color.feedback.error}", $description: "Destructive action surface. shadcn role: destructive." }, "destructive-foreground": { $type: "color", $value: "{semantic.color.content.inverse}", $description: "Text on destructive surface. shadcn role: destructive-foreground." }, border: { $type: "color", $value: "{semantic.color.border.default}", $description: "Default border. shadcn role: border." }, input: { $type: "color", $value: "{semantic.color.border.interactive}", $description: "Input field border. shadcn role: input." }, ring: { $type: "color", $value: "{semantic.color.border.accent}", $description: "Focus ring color. shadcn role: ring." }, radius: { $type: "dimension", $value: "{semantic.radius.action}", $description: "Default border radius. shadcn role: radius." } }, ra = {
3074
+ $schema: Zt,
3075
+ $description: Qt,
3076
+ primitive: ea,
3077
+ semantic: ia,
3078
+ component: ta,
3079
+ role: aa
3080
+ }, nr = ra;
3081
3081
  export {
3082
- ua as Alert,
3083
- sr as AlertDialog,
3084
- ma as Avatar,
3082
+ va as Alert,
3083
+ lr as AlertDialog,
3084
+ fa as Avatar,
3085
3085
  Ga as AvatarGroup,
3086
- va as Badge,
3087
- Fa as Blockquote,
3088
- fa as Box,
3089
- Za as Breadcrumb,
3090
- le as Button,
3091
- ga as Callout,
3092
- lr as Card,
3093
- cr as CardBody,
3094
- dr as CardDescription,
3095
- pr as CardFooter,
3096
- ur as CardHeader,
3097
- mr as CardMetric,
3098
- vr as CardProgress,
3099
- fr as CardTitle,
3100
- Da as Checkbox,
3101
- Qa as Combobox,
3102
- gr as Container,
3103
- xa as Dialog,
3104
- St as DialogClose,
3105
- Nt as DialogContent,
3106
- Tt as DialogDescription,
3107
- Ct as DialogFooter,
3108
- zt as DialogHeader,
3109
- Ge as DialogOverlay,
3110
- _e as DialogPortal,
3111
- Dt as DialogTitle,
3112
- kt as DialogTrigger,
3113
- er as Disclosure,
3114
- ya as Divider,
3115
- hr as EmptyState,
3116
- ha as Field,
3117
- br as Grid,
3118
- kr as HdsRouterProvider,
3119
- $r as HdsThemeProvider,
3120
- M as Icon,
3121
- Sa as InlineCode,
3122
- Na as InlineLink,
3123
- za as Input,
3124
- Ba as Kbd,
3125
- wa as Menu,
3126
- Oa as MetadataList,
3086
+ ga as Badge,
3087
+ _a as Blockquote,
3088
+ ha as Box,
3089
+ Qa as Breadcrumb,
3090
+ me as Button,
3091
+ ba as Callout,
3092
+ cr as Card,
3093
+ dr as CardBody,
3094
+ pr as CardDescription,
3095
+ ur as CardFooter,
3096
+ mr as CardHeader,
3097
+ vr as CardMetric,
3098
+ fr as CardProgress,
3099
+ gr as CardTitle,
3100
+ Ra as Checkbox,
3101
+ er as Combobox,
3102
+ hr as Container,
3103
+ wa as Dialog,
3104
+ Ci as DialogClose,
3105
+ Di as DialogContent,
3106
+ Li as DialogDescription,
3107
+ Ri as DialogFooter,
3108
+ Ti as DialogHeader,
3109
+ je as DialogOverlay,
3110
+ Ge as DialogPortal,
3111
+ Pi as DialogTitle,
3112
+ zi as DialogTrigger,
3113
+ ir as Disclosure,
3114
+ ka as Divider,
3115
+ br as EmptyState,
3116
+ $a as Field,
3117
+ $r as Grid,
3118
+ Sr as HdsRouterProvider,
3119
+ yr as HdsThemeProvider,
3120
+ A as Icon,
3121
+ za as InlineCode,
3122
+ Ca as InlineLink,
3123
+ Da as Input,
3124
+ Wa as Kbd,
3125
+ Sa as Menu,
3126
+ ja as MetadataList,
3127
3127
  tr as Pagination,
3128
- Ya as Pin,
3129
- fe as Popover,
3130
- Va as Progress,
3131
- Ta as Radio,
3132
- Ma as SegmentedControl,
3133
- Aa as Select,
3134
- ja as Sidebar,
3135
- La as Skeleton,
3136
- Pa as Slider,
3137
- Ia as Spinner,
3138
- ze as Stack,
3139
- ba as Stat,
3140
- Ha as StatusDot,
3141
- $a as StatusListItem,
3142
- Be as Surface,
3143
- Ua as Switcher,
3128
+ qa as Pin,
3129
+ be as Popover,
3130
+ Ia as Progress,
3131
+ Pa as Radio,
3132
+ Ha as SegmentedControl,
3133
+ Ea as Select,
3134
+ Ua as Sidebar,
3135
+ Ma as Skeleton,
3136
+ La as Slider,
3137
+ Aa as Spinner,
3138
+ De as Stack,
3139
+ ya as Stat,
3140
+ xa as StatusListItem,
3141
+ mi as Surface,
3142
+ Ya as Switcher,
3144
3143
  xr as Table,
3145
- qa as Tabs,
3146
- Ja as TabsContent,
3147
- Xa as TabsList,
3148
- Ka as TabsTrigger,
3149
- Ea as Tag,
3150
- Ee as Text,
3151
- Ca as Textarea,
3152
- Wa as Timestamp,
3153
- ar as ToastProvider,
3154
- Ra as Toggle,
3155
- ka as Tooltip,
3156
- _a as VisuallyHidden,
3144
+ Xa as Tabs,
3145
+ Za as TabsContent,
3146
+ Ka as TabsList,
3147
+ Ja as TabsTrigger,
3148
+ Ba as Tag,
3149
+ We as Text,
3150
+ Ta as Textarea,
3151
+ Fa as Timestamp,
3152
+ rr as ToastProvider,
3153
+ Va as Toggle,
3154
+ Na as Tooltip,
3155
+ Oa as VisuallyHidden,
3157
3156
  d as cn,
3158
- N as hds,
3159
- Yi as paginationRange,
3160
- rr as tokens,
3161
- Fe as useHdsRouter,
3162
- yr as useHdsTheme,
3163
- ir as useToast
3157
+ z as hds,
3158
+ Xt as paginationRange,
3159
+ nr as tokens,
3160
+ Oe as useHdsRouter,
3161
+ wr as useHdsTheme,
3162
+ ar as useToast
3164
3163
  };