@hirobius/design-system 0.23.1 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +57 -0
- package/DESIGN.md +8 -9
- package/README.md +29 -21
- package/UPGRADING.md +55 -1
- package/codemods/hds-prefix.mjs +0 -1
- package/codemods/jsx-fold.mjs +0 -1
- package/codemods/lib/scan.mjs +0 -1
- package/codemods/patterns-subpath.mjs +0 -1
- package/dist/chunks/{empty-state-ChC_xZfg.js → empty-state-BQ1v7ZIx.js} +15 -15
- package/dist/css-contract.json +1 -1
- package/dist/hirobius-ui.js +274 -273
- package/dist/manifest.js +9 -9
- package/dist/patterns.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens.css +1 -1
- package/dist/tokens.js +25 -12
- package/dist/types/src/app/design-system/generated-token-refs.d.ts +25 -12
- package/dist/types/src/app/design-system/generated-token-values.d.ts +25 -12
- package/dist/types/src/index.d.ts +48 -9
- package/dist/types/src/lib/deprecation.d.ts +1 -1
- package/dist/variables.css +48 -37
- package/docs/CONSUMING.md +7 -7
- package/hirobius.tokens.json +113 -74
- package/llms.txt +5 -14
- package/package.json +5 -26
- package/public/hds-manifest.json +360 -1342
- package/public/llms/scroll.txt +2 -2
- package/public/llms-full.txt +13 -23
- package/public/llms.txt +5 -14
- package/src/app/data/component-api.json +1 -1
- package/upgrade/index.json +15 -1
- package/upgrade/releases/0.23.2.json +47 -0
- package/upgrade/releases/0.24.0.json +661 -0
package/dist/hirobius-ui.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxs as
|
|
2
|
+
import { jsxs as f, jsx as t, Fragment as at } from "react/jsx-runtime";
|
|
3
3
|
import * as m from "react";
|
|
4
4
|
import Z, { useState as X, forwardRef as oe, useRef as Se, useEffect as rt, useId as Ne } from "react";
|
|
5
5
|
import { motion as E, AnimatePresence as nt } from "motion/react";
|
|
6
6
|
import { cva as $ } from "class-variance-authority";
|
|
7
|
-
import { Info as ze, TriangleAlert as
|
|
7
|
+
import { Info as ze, TriangleAlert as Ge, CircleX as _e, CircleCheck as Oe, X as $e, ChevronRight as Ce, Circle as ot, Check as pe, Copy as st, SquareArrowOutUpRight as lt, Loader2 as ct, Minus as dt, ChevronsUpDown as je, ChevronDown as pt, ChevronLeft as ut } from "lucide-react";
|
|
8
8
|
import D, { tokenValues as De } from "./tokens.js";
|
|
9
9
|
import { cn as d } from "./cn.js";
|
|
10
|
-
import { u as j, I, i as mt, d as vt, T as Ue, w as ue, B as be, r as Ye, L as qe, S as
|
|
11
|
-
import { A as mr, b as vr, e as gr, f as
|
|
10
|
+
import { u as j, I as M, i as mt, d as vt, T as Ue, w as ue, B as be, r as Ye, L as qe, S as Ie, a as gt } from "./chunks/empty-state-BQ1v7ZIx.js";
|
|
11
|
+
import { A as mr, b as vr, e as gr, f as hr, g as fr, j as br, k as $r, l as yr, m as xr, C as wr, E as kr, G as Sr, H as Nr, c as zr, n as Cr } from "./chunks/empty-state-BQ1v7ZIx.js";
|
|
12
12
|
import * as U from "@radix-ui/react-dialog";
|
|
13
13
|
import * as B from "@radix-ui/react-dropdown-menu";
|
|
14
14
|
import * as se from "@radix-ui/react-popover";
|
|
15
15
|
import * as re from "@radix-ui/react-tooltip";
|
|
16
16
|
import { a as Xe, u as me } from "./chunks/DemoStateContext-Cz5TmrYu.js";
|
|
17
17
|
import { H as Tr } from "./chunks/DemoStateContext-Cz5TmrYu.js";
|
|
18
|
-
import * as
|
|
19
|
-
import * as
|
|
18
|
+
import * as Me from "@radix-ui/react-toggle-group";
|
|
19
|
+
import * as O from "@radix-ui/react-select";
|
|
20
20
|
import * as ye from "@radix-ui/react-tabs";
|
|
21
21
|
import * as ae from "@radix-ui/react-toast";
|
|
22
|
-
const
|
|
22
|
+
const ht = /* @__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,14 +37,14 @@ const ft = /* @__PURE__ */ $(
|
|
|
37
37
|
},
|
|
38
38
|
defaultVariants: { tone: "info", hasTitle: !1 }
|
|
39
39
|
}
|
|
40
|
-
),
|
|
41
|
-
success: { icon:
|
|
42
|
-
danger: { icon:
|
|
43
|
-
warning: { icon:
|
|
40
|
+
), ft = {
|
|
41
|
+
success: { icon: Oe, colorVar: "var(--semantic-color-feedback-success)" },
|
|
42
|
+
danger: { icon: _e, colorVar: "var(--semantic-color-feedback-error)" },
|
|
43
|
+
warning: { icon: Ge, colorVar: "var(--semantic-color-feedback-warning)" },
|
|
44
44
|
info: { icon: ze, colorVar: "var(--semantic-color-feedback-info)" }
|
|
45
45
|
}, $a = /* @__PURE__ */ Z.forwardRef(function({ tone: e = "info", title: i, children: a }, r) {
|
|
46
|
-
const { icon: o, colorVar: s } =
|
|
47
|
-
return /* @__PURE__ */
|
|
46
|
+
const { icon: o, colorVar: s } = ft[e], l = !!i, p = j("productive");
|
|
47
|
+
return /* @__PURE__ */ f(
|
|
48
48
|
E.div,
|
|
49
49
|
{
|
|
50
50
|
ref: r,
|
|
@@ -52,10 +52,10 @@ const ft = /* @__PURE__ */ $(
|
|
|
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(
|
|
55
|
+
className: d(ht({ tone: e, hasTitle: l })),
|
|
56
56
|
children: [
|
|
57
57
|
/* @__PURE__ */ t(
|
|
58
|
-
|
|
58
|
+
M,
|
|
59
59
|
{
|
|
60
60
|
icon: o,
|
|
61
61
|
size: "small",
|
|
@@ -72,7 +72,7 @@ const ft = /* @__PURE__ */ $(
|
|
|
72
72
|
// makes the title its own block instead of an inline sibling, with
|
|
73
73
|
// spacing from a semantic token rather than a literal.
|
|
74
74
|
// eslint-disable-next-line tailwindcss/no-arbitrary-value -- semantic subgrid-hairline gap; var()-based, no Tailwind-theme utility exists
|
|
75
|
-
/* @__PURE__ */
|
|
75
|
+
/* @__PURE__ */ f("span", { className: "flex flex-col gap-[var(--semantic-space-subgrid-hairline)]", children: [
|
|
76
76
|
/* @__PURE__ */ t(
|
|
77
77
|
"span",
|
|
78
78
|
{
|
|
@@ -184,9 +184,9 @@ const ya = /* @__PURE__ */ m.forwardRef(
|
|
|
184
184
|
md: "size-2",
|
|
185
185
|
lg: "size-2.5"
|
|
186
186
|
};
|
|
187
|
-
let
|
|
187
|
+
let Ae = !1;
|
|
188
188
|
function kt() {
|
|
189
|
-
|
|
189
|
+
Ae || mt() || (Ae = !0, console.warn(
|
|
190
190
|
"[HDS] Badge `label` only names a `dot` badge and renders no text. Put the text in children: <Badge>Active</Badge>, or add `dot`."
|
|
191
191
|
));
|
|
192
192
|
}
|
|
@@ -226,6 +226,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
226
226
|
);
|
|
227
227
|
}), St = /* @__PURE__ */ $(
|
|
228
228
|
"rounded-[var(--primitive-radius-4)] p-[var(--semantic-space-surface-padding)]",
|
|
229
|
+
// tier-ok: 4px primitive radius, matches Alert; no semantic surface-radius token at 4px
|
|
229
230
|
{
|
|
230
231
|
variants: {
|
|
231
232
|
tone: {
|
|
@@ -272,7 +273,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
272
273
|
defaultVariants: { tone: "neutral", mono: !1 }
|
|
273
274
|
}), Sa = /* @__PURE__ */ m.forwardRef(function({ label: e, value: i, tone: a, mono: r, className: o, children: s, ...l }, p) {
|
|
274
275
|
const c = s ?? i;
|
|
275
|
-
return /* @__PURE__ */
|
|
276
|
+
return /* @__PURE__ */ f(
|
|
276
277
|
"div",
|
|
277
278
|
{
|
|
278
279
|
ref: p,
|
|
@@ -297,7 +298,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
297
298
|
},
|
|
298
299
|
defaultVariants: { tone: "neutral" }
|
|
299
300
|
}), Na = /* @__PURE__ */ m.forwardRef(function({ label: e, value: i, sub: a, tone: r, className: o, ...s }, l) {
|
|
300
|
-
return /* @__PURE__ */
|
|
301
|
+
return /* @__PURE__ */ f(
|
|
301
302
|
"div",
|
|
302
303
|
{
|
|
303
304
|
ref: l,
|
|
@@ -324,7 +325,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
324
325
|
defaultVariants: { tone: "neutral" }
|
|
325
326
|
}), za = /* @__PURE__ */ m.forwardRef(
|
|
326
327
|
function({ tone: e, title: i, notes: a, trailing: r, className: o, ...s }, l) {
|
|
327
|
-
return /* @__PURE__ */
|
|
328
|
+
return /* @__PURE__ */ f(
|
|
328
329
|
"div",
|
|
329
330
|
{
|
|
330
331
|
ref: l,
|
|
@@ -333,7 +334,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
333
334
|
...s,
|
|
334
335
|
children: [
|
|
335
336
|
/* @__PURE__ */ t("span", { "aria-hidden": "true", className: Ct({ tone: e }) }),
|
|
336
|
-
/* @__PURE__ */
|
|
337
|
+
/* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
|
|
337
338
|
/* @__PURE__ */ t("p", { className: "m-0 hds-type-ui text-foreground", children: i }),
|
|
338
339
|
a == null ? void 0 : a.map((p, c) => /* @__PURE__ */ t("p", { className: "m-0 hds-type-caption text-muted-foreground", children: p }, c))
|
|
339
340
|
] }),
|
|
@@ -351,10 +352,10 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
351
352
|
...i
|
|
352
353
|
}
|
|
353
354
|
);
|
|
354
|
-
}),
|
|
355
|
-
return /* @__PURE__ */
|
|
355
|
+
}), Rt = /* @__PURE__ */ m.forwardRef(function({ className: e, children: i, hideClose: a = !1, container: r, ...o }, s) {
|
|
356
|
+
return /* @__PURE__ */ f(Je, { container: r, children: [
|
|
356
357
|
/* @__PURE__ */ t(Ke, {}),
|
|
357
|
-
/* @__PURE__ */
|
|
358
|
+
/* @__PURE__ */ f(
|
|
358
359
|
U.Content,
|
|
359
360
|
{
|
|
360
361
|
ref: s,
|
|
@@ -366,7 +367,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
366
367
|
...o,
|
|
367
368
|
children: [
|
|
368
369
|
i,
|
|
369
|
-
!a && /* @__PURE__ */
|
|
370
|
+
!a && /* @__PURE__ */ f(
|
|
370
371
|
U.Close,
|
|
371
372
|
{
|
|
372
373
|
className: d(
|
|
@@ -385,7 +386,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
385
386
|
}
|
|
386
387
|
)
|
|
387
388
|
] });
|
|
388
|
-
}),
|
|
389
|
+
}), Pt = /* @__PURE__ */ m.forwardRef(function({ className: e, ...i }, a) {
|
|
389
390
|
return /* @__PURE__ */ t("div", { ref: a, className: d("flex flex-col space-y-1.5 text-left", e), ...i });
|
|
390
391
|
}), Lt = /* @__PURE__ */ m.forwardRef(function({ className: e, ...i }, a) {
|
|
391
392
|
return /* @__PURE__ */ t(
|
|
@@ -398,7 +399,7 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
398
399
|
);
|
|
399
400
|
}), Vt = /* @__PURE__ */ m.forwardRef(function({ className: e, children: i, ...a }, r) {
|
|
400
401
|
return /* @__PURE__ */ t(U.Title, { asChild: !0, children: /* @__PURE__ */ t(Ue, { ref: r, as: "h2", variant: "title", className: e, ...a, children: i }) });
|
|
401
|
-
}),
|
|
402
|
+
}), It = /* @__PURE__ */ m.forwardRef(function({ className: e, children: i, ...a }, r) {
|
|
402
403
|
return /* @__PURE__ */ t(U.Description, { asChild: !0, children: /* @__PURE__ */ t(
|
|
403
404
|
Ue,
|
|
404
405
|
{
|
|
@@ -411,23 +412,23 @@ const xa = /* @__PURE__ */ m.forwardRef(function({ className: e, tone: i, as: a
|
|
|
411
412
|
}
|
|
412
413
|
) });
|
|
413
414
|
});
|
|
414
|
-
function
|
|
415
|
+
function Mt(n) {
|
|
415
416
|
return /* @__PURE__ */ t(U.Root, { ...n });
|
|
416
417
|
}
|
|
417
|
-
const Ca = /* @__PURE__ */ Object.assign(
|
|
418
|
+
const Ca = /* @__PURE__ */ Object.assign(Mt, {
|
|
418
419
|
Trigger: Dt,
|
|
419
420
|
Portal: Je,
|
|
420
421
|
Overlay: Ke,
|
|
421
|
-
Content:
|
|
422
|
-
Header:
|
|
422
|
+
Content: Rt,
|
|
423
|
+
Header: Pt,
|
|
423
424
|
Footer: Lt,
|
|
424
425
|
Title: Vt,
|
|
425
|
-
Description:
|
|
426
|
+
Description: It,
|
|
426
427
|
Close: Tt,
|
|
427
428
|
// Set here, not by a later `Dialog.displayName = …` write: a top-level
|
|
428
429
|
// property write is a side effect that keeps the module alive.
|
|
429
430
|
displayName: "Dialog"
|
|
430
|
-
}),
|
|
431
|
+
}), At = /* @__PURE__ */ $("m-0 shrink-0 border-solid", {
|
|
431
432
|
variants: {
|
|
432
433
|
orientation: {
|
|
433
434
|
horizontal: "w-full self-stretch border-t",
|
|
@@ -449,7 +450,7 @@ const Ca = /* @__PURE__ */ Object.assign(It, {
|
|
|
449
450
|
ref: p,
|
|
450
451
|
"aria-orientation": e ?? "horizontal",
|
|
451
452
|
"data-variant": c ?? "default",
|
|
452
|
-
className: d(
|
|
453
|
+
className: d(At({ orientation: e, variant: c }), s),
|
|
453
454
|
style: {
|
|
454
455
|
...v ? { marginTop: a, marginBottom: a } : { marginLeft: a, marginRight: a },
|
|
455
456
|
...o
|
|
@@ -462,7 +463,7 @@ const Ca = /* @__PURE__ */ Object.assign(It, {
|
|
|
462
463
|
function Et(n) {
|
|
463
464
|
return /* @__PURE__ */ t(B.Root, { ...n });
|
|
464
465
|
}
|
|
465
|
-
const Ht = B.Trigger, Bt = B.Group, Wt = B.RadioGroup, Ft = B.Sub, Ze = /* @__PURE__ */ ue(B.Portal), Qe = "z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-overlay", xe = "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",
|
|
466
|
+
const Ht = B.Trigger, Bt = B.Group, Wt = B.RadioGroup, Ft = B.Sub, Ze = /* @__PURE__ */ ue(B.Portal), Qe = "z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-overlay", xe = "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", Gt = /* @__PURE__ */ m.forwardRef(function({ className: e, sideOffset: i = 4, container: a, ...r }, o) {
|
|
466
467
|
return /* @__PURE__ */ t(Ze, { container: a, children: /* @__PURE__ */ t(
|
|
467
468
|
B.Content,
|
|
468
469
|
{
|
|
@@ -473,16 +474,16 @@ const Ht = B.Trigger, Bt = B.Group, Wt = B.RadioGroup, Ft = B.Sub, Ze = /* @__PU
|
|
|
473
474
|
...r
|
|
474
475
|
}
|
|
475
476
|
) });
|
|
476
|
-
}),
|
|
477
|
+
}), _t = /* @__PURE__ */ m.forwardRef(function({ className: e, ...i }, a) {
|
|
477
478
|
return /* @__PURE__ */ t(B.Item, { ref: a, className: d(xe, e), ...i });
|
|
478
|
-
}),
|
|
479
|
-
return /* @__PURE__ */
|
|
480
|
-
/* @__PURE__ */ t("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ t(B.ItemIndicator, { children: /* @__PURE__ */ t(
|
|
479
|
+
}), Ot = /* @__PURE__ */ m.forwardRef(function({ className: e, children: i, ...a }, r) {
|
|
480
|
+
return /* @__PURE__ */ f(B.CheckboxItem, { ref: r, className: d(xe, "pl-6", e), ...a, children: [
|
|
481
|
+
/* @__PURE__ */ t("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ t(B.ItemIndicator, { children: /* @__PURE__ */ t(M, { icon: pe, size: 14, color: "currentColor", "aria-hidden": !0 }) }) }),
|
|
481
482
|
i
|
|
482
483
|
] });
|
|
483
484
|
}), jt = /* @__PURE__ */ m.forwardRef(function({ className: e, children: i, ...a }, r) {
|
|
484
|
-
return /* @__PURE__ */
|
|
485
|
-
/* @__PURE__ */ t("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ t(B.ItemIndicator, { children: /* @__PURE__ */ t(
|
|
485
|
+
return /* @__PURE__ */ f(B.RadioItem, { ref: r, className: d(xe, "pl-6", e), ...a, children: [
|
|
486
|
+
/* @__PURE__ */ t("span", { className: "absolute left-2 inline-flex items-center justify-center", children: /* @__PURE__ */ t(B.ItemIndicator, { children: /* @__PURE__ */ t(M, { icon: ot, size: 6, color: "currentColor", "aria-hidden": !0, className: "fill-current" }) }) }),
|
|
486
487
|
i
|
|
487
488
|
] });
|
|
488
489
|
}), Ut = /* @__PURE__ */ m.forwardRef(function({ className: e, ...i }, a) {
|
|
@@ -504,7 +505,7 @@ const Ht = B.Trigger, Bt = B.Group, Wt = B.RadioGroup, Ft = B.Sub, Ze = /* @__PU
|
|
|
504
505
|
}
|
|
505
506
|
);
|
|
506
507
|
}), qt = /* @__PURE__ */ m.forwardRef(function({ className: e, children: i, ...a }, r) {
|
|
507
|
-
return /* @__PURE__ */
|
|
508
|
+
return /* @__PURE__ */ f(
|
|
508
509
|
B.SubTrigger,
|
|
509
510
|
{
|
|
510
511
|
ref: r,
|
|
@@ -512,7 +513,7 @@ const Ht = B.Trigger, Bt = B.Group, Wt = B.RadioGroup, Ft = B.Sub, Ze = /* @__PU
|
|
|
512
513
|
...a,
|
|
513
514
|
children: [
|
|
514
515
|
i,
|
|
515
|
-
/* @__PURE__ */ t(
|
|
516
|
+
/* @__PURE__ */ t(M, { icon: Ce, size: 14, color: "currentColor", "aria-hidden": !0, className: "ml-auto" })
|
|
516
517
|
]
|
|
517
518
|
}
|
|
518
519
|
);
|
|
@@ -520,9 +521,9 @@ const Ht = B.Trigger, Bt = B.Group, Wt = B.RadioGroup, Ft = B.Sub, Ze = /* @__PU
|
|
|
520
521
|
return /* @__PURE__ */ t(Ze, { container: i, children: /* @__PURE__ */ t(B.SubContent, { ref: r, className: d(Qe, e), ...a }) });
|
|
521
522
|
}), Ta = /* @__PURE__ */ Object.assign(Et, {
|
|
522
523
|
Trigger: Ht,
|
|
523
|
-
Content:
|
|
524
|
-
Item:
|
|
525
|
-
CheckboxItem:
|
|
524
|
+
Content: Gt,
|
|
525
|
+
Item: _t,
|
|
526
|
+
CheckboxItem: Ot,
|
|
526
527
|
RadioGroup: Wt,
|
|
527
528
|
RadioItem: jt,
|
|
528
529
|
Label: Ut,
|
|
@@ -563,7 +564,7 @@ const Kt = se.Trigger, Zt = se.Anchor, Qt = se.Close, ei = /* @__PURE__ */ ue(se
|
|
|
563
564
|
// property write is a side effect that keeps the module alive.
|
|
564
565
|
displayName: "Popover"
|
|
565
566
|
}), ii = /* @__PURE__ */ ue(re.Portal), ai = /* @__PURE__ */ m.forwardRef(function({ className: e, sideOffset: i = 6, children: a, container: r, ...o }, s) {
|
|
566
|
-
return /* @__PURE__ */ t(ii, { container: r, children: /* @__PURE__ */
|
|
567
|
+
return /* @__PURE__ */ t(ii, { container: r, children: /* @__PURE__ */ f(
|
|
567
568
|
re.Content,
|
|
568
569
|
{
|
|
569
570
|
ref: s,
|
|
@@ -602,7 +603,7 @@ function ri({
|
|
|
602
603
|
}) {
|
|
603
604
|
return /* @__PURE__ */ t(re.Provider, { delayDuration: n, children: /* @__PURE__ */ t(re.Root, { ...i, children: e }) });
|
|
604
605
|
}
|
|
605
|
-
const
|
|
606
|
+
const Ra = /* @__PURE__ */ Object.assign(ri, {
|
|
606
607
|
Trigger: re.Trigger,
|
|
607
608
|
Content: ai,
|
|
608
609
|
// Set here, not by a later `Tooltip.displayName = …` write: a top-level
|
|
@@ -622,7 +623,7 @@ const Pa = /* @__PURE__ */ Object.assign(ri, {
|
|
|
622
623
|
defaultVariants: { density: "comfortable" }
|
|
623
624
|
}
|
|
624
625
|
);
|
|
625
|
-
function
|
|
626
|
+
function Pa({
|
|
626
627
|
children: n,
|
|
627
628
|
style: e,
|
|
628
629
|
density: i,
|
|
@@ -644,7 +645,7 @@ function Ra({
|
|
|
644
645
|
children: n
|
|
645
646
|
}
|
|
646
647
|
);
|
|
647
|
-
return r ? /* @__PURE__ */
|
|
648
|
+
return r ? /* @__PURE__ */ f(
|
|
648
649
|
"span",
|
|
649
650
|
{
|
|
650
651
|
style: {
|
|
@@ -663,7 +664,7 @@ function Ra({
|
|
|
663
664
|
"aria-label": o ? "Copied" : "Copy",
|
|
664
665
|
onClick: p,
|
|
665
666
|
style: o ? { color: "var(--semantic-color-content-accent)" } : void 0,
|
|
666
|
-
iconLeft: /* @__PURE__ */ t(
|
|
667
|
+
iconLeft: /* @__PURE__ */ t(M, { icon: o ? pe : st, size: "small" })
|
|
667
668
|
}
|
|
668
669
|
),
|
|
669
670
|
c
|
|
@@ -677,11 +678,11 @@ function oi(n) {
|
|
|
677
678
|
}
|
|
678
679
|
function La({ href: n, children: e, externalIcon: i = !0 }) {
|
|
679
680
|
const { LinkComponent: a } = Xe(), r = oi(n);
|
|
680
|
-
return r === "internal" ? /* @__PURE__ */ t(a, { to: n, className: "hds-focus hds-link", children: e }) : r === "plain" ? /* @__PURE__ */ t("a", { href: n, className: "hds-focus hds-link", children: e }) : /* @__PURE__ */
|
|
681
|
+
return r === "internal" ? /* @__PURE__ */ t(a, { to: n, className: "hds-focus hds-link", children: e }) : r === "plain" ? /* @__PURE__ */ t("a", { href: n, className: "hds-focus hds-link", children: e }) : /* @__PURE__ */ f("a", { href: n, target: "_blank", rel: "noopener noreferrer", className: "hds-focus hds-link", children: [
|
|
681
682
|
e,
|
|
682
683
|
/* @__PURE__ */ t("span", { className: "sr-only", children: " (opens in new tab)" }),
|
|
683
684
|
i && /* @__PURE__ */ t(
|
|
684
|
-
|
|
685
|
+
M,
|
|
685
686
|
{
|
|
686
687
|
icon: lt,
|
|
687
688
|
size: 11,
|
|
@@ -811,40 +812,40 @@ const Va = /* @__PURE__ */ m.forwardRef(function({
|
|
|
811
812
|
loading: x = !1,
|
|
812
813
|
readOnly: S,
|
|
813
814
|
className: N,
|
|
814
|
-
inputClassName:
|
|
815
|
+
inputClassName: h,
|
|
815
816
|
onChange: k,
|
|
816
|
-
...
|
|
817
|
+
...R
|
|
817
818
|
}, H) {
|
|
818
|
-
const V = m.useId(), C = r ?? V,
|
|
819
|
-
function z(
|
|
820
|
-
if (
|
|
821
|
-
H(
|
|
819
|
+
const V = m.useId(), C = r ?? V, P = m.useRef(null), L = me(), y = !!u || L === "error", A = x || L === "loading", Y = !!w || L === "disabled", F = y && (b || L === "error") ? `${C}-error` : void 0, G = s && !F ? `${C}-hint` : void 0, Q = [G, F].filter(Boolean).join(" ") || void 0, [ve, le] = m.useState(() => typeof R.defaultValue == "string" ? R.defaultValue : typeof R.defaultValue == "number" ? String(R.defaultValue) : ""), ee = typeof R.value == "string" ? R.value : typeof R.value == "number" ? String(R.value) : void 0, ge = ee ?? ve, I = pi[i], he = !!l, ce = !!p, te = Ee(c), q = Ee(v), ie = te || q, de = !di.has(e) && ge.length > 0 && !Y && !A, g = A || ce || de;
|
|
820
|
+
function z(_) {
|
|
821
|
+
if (P.current = _, typeof H == "function") {
|
|
822
|
+
H(_);
|
|
822
823
|
return;
|
|
823
824
|
}
|
|
824
|
-
H && (H.current =
|
|
825
|
+
H && (H.current = _);
|
|
825
826
|
}
|
|
826
827
|
function W() {
|
|
827
828
|
var Ve;
|
|
828
|
-
const
|
|
829
|
-
if (!
|
|
829
|
+
const _ = P.current;
|
|
830
|
+
if (!_) return;
|
|
830
831
|
const we = (Ve = Object.getOwnPropertyDescriptor(
|
|
831
832
|
window.HTMLInputElement.prototype,
|
|
832
833
|
"value"
|
|
833
834
|
)) == null ? void 0 : Ve.set;
|
|
834
|
-
we == null || we.call(
|
|
835
|
+
we == null || we.call(_, ""), _.dispatchEvent(new Event("input", { bubbles: !0 })), _.focus();
|
|
835
836
|
}
|
|
836
|
-
const J = L || (
|
|
837
|
+
const J = L || (A ? "loading" : Y ? "disabled" : y ? "error" : ge.length > 0 ? "filled" : "default"), K = he ? I.leadPad : te ? I.prefixGap : I.restPadL, it = g ? I.trailPad : q ? I.suffixGap : I.restPadR, Pe = d(
|
|
837
838
|
"flex shrink-0 items-center whitespace-nowrap text-muted-foreground",
|
|
838
|
-
|
|
839
|
-
), Le = /* @__PURE__ */
|
|
840
|
-
|
|
839
|
+
I.iconWrap
|
|
840
|
+
), Le = /* @__PURE__ */ f("div", { className: ie ? "relative min-w-0 flex-1 self-stretch" : "relative w-full", children: [
|
|
841
|
+
he && /* @__PURE__ */ t(
|
|
841
842
|
"span",
|
|
842
843
|
{
|
|
843
844
|
"aria-hidden": "true",
|
|
844
845
|
className: d(
|
|
845
846
|
"pointer-events-none absolute left-0 flex items-center text-muted-foreground",
|
|
846
|
-
|
|
847
|
-
|
|
847
|
+
I.inset,
|
|
848
|
+
I.iconWrap
|
|
848
849
|
),
|
|
849
850
|
children: l
|
|
850
851
|
}
|
|
@@ -856,9 +857,9 @@ const Va = /* @__PURE__ */ m.forwardRef(function({
|
|
|
856
857
|
id: C,
|
|
857
858
|
type: e,
|
|
858
859
|
disabled: Y,
|
|
859
|
-
readOnly:
|
|
860
|
+
readOnly: A || S,
|
|
860
861
|
"aria-disabled": Y || void 0,
|
|
861
|
-
"aria-busy":
|
|
862
|
+
"aria-busy": A || void 0,
|
|
862
863
|
"aria-describedby": Q,
|
|
863
864
|
"aria-errormessage": F,
|
|
864
865
|
"aria-invalid": y || void 0,
|
|
@@ -870,38 +871,38 @@ const Va = /* @__PURE__ */ m.forwardRef(function({
|
|
|
870
871
|
K,
|
|
871
872
|
it,
|
|
872
873
|
ie && ci,
|
|
873
|
-
|
|
874
|
+
h
|
|
874
875
|
),
|
|
875
|
-
onChange: (
|
|
876
|
-
ee === void 0 && le(
|
|
876
|
+
onChange: (_) => {
|
|
877
|
+
ee === void 0 && le(_.target.value), k == null || k(_);
|
|
877
878
|
},
|
|
878
|
-
...
|
|
879
|
+
...R
|
|
879
880
|
}
|
|
880
881
|
),
|
|
881
|
-
|
|
882
|
+
A && /* @__PURE__ */ t(
|
|
882
883
|
"span",
|
|
883
884
|
{
|
|
884
885
|
"aria-hidden": "true",
|
|
885
886
|
className: d(
|
|
886
887
|
"pointer-events-none absolute right-0 flex items-center text-muted-foreground",
|
|
887
|
-
|
|
888
|
+
I.inset
|
|
888
889
|
),
|
|
889
|
-
children: /* @__PURE__ */ t(ct, { className: d("animate-spin motion-reduce:animate-none",
|
|
890
|
+
children: /* @__PURE__ */ t(ct, { className: d("animate-spin motion-reduce:animate-none", I.iconClass) })
|
|
890
891
|
}
|
|
891
892
|
),
|
|
892
|
-
!
|
|
893
|
+
!A && ce && /* @__PURE__ */ t(
|
|
893
894
|
"span",
|
|
894
895
|
{
|
|
895
896
|
"aria-hidden": "true",
|
|
896
897
|
className: d(
|
|
897
898
|
"pointer-events-none absolute right-0 flex items-center text-muted-foreground",
|
|
898
|
-
|
|
899
|
-
|
|
899
|
+
I.inset,
|
|
900
|
+
I.iconWrap
|
|
900
901
|
),
|
|
901
902
|
children: p
|
|
902
903
|
}
|
|
903
904
|
),
|
|
904
|
-
!
|
|
905
|
+
!A && !ce && de && /* @__PURE__ */ t(
|
|
905
906
|
"button",
|
|
906
907
|
{
|
|
907
908
|
type: "button",
|
|
@@ -909,20 +910,20 @@ const Va = /* @__PURE__ */ m.forwardRef(function({
|
|
|
909
910
|
"aria-label": e === "search" ? "Clear search" : "Clear input",
|
|
910
911
|
className: d(
|
|
911
912
|
"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",
|
|
912
|
-
|
|
913
|
+
I.inset
|
|
913
914
|
),
|
|
914
|
-
children: /* @__PURE__ */ t($e, { className:
|
|
915
|
+
children: /* @__PURE__ */ t($e, { className: I.iconClass, "aria-hidden": "true" })
|
|
915
916
|
}
|
|
916
917
|
)
|
|
917
918
|
] });
|
|
918
|
-
return /* @__PURE__ */
|
|
919
|
+
return /* @__PURE__ */ f("div", { className: d("flex flex-col gap-1.5", ne, N), children: [
|
|
919
920
|
o && /* @__PURE__ */ t("label", { htmlFor: C, className: "hds-type-ui text-foreground", children: o }),
|
|
920
|
-
ie ? /* @__PURE__ */
|
|
921
|
-
te && /* @__PURE__ */ t("span", { className: d(
|
|
921
|
+
ie ? /* @__PURE__ */ f("div", { className: li({ size: i, textStyle: a, invalid: y }), children: [
|
|
922
|
+
te && /* @__PURE__ */ t("span", { className: d(Pe, I.prefixPad), children: c }),
|
|
922
923
|
Le,
|
|
923
|
-
q && /* @__PURE__ */ t("span", { className: d(
|
|
924
|
+
q && /* @__PURE__ */ t("span", { className: d(Pe, I.suffixPad), children: v })
|
|
924
925
|
] }) : Le,
|
|
925
|
-
|
|
926
|
+
G && /* @__PURE__ */ t("span", { id: G, className: "hds-type-caption text-muted-foreground", children: s }),
|
|
926
927
|
y && (b || L === "error") && /* @__PURE__ */ t("span", { id: F, role: "alert", className: "hds-type-caption text-destructive", children: b || "Field error" })
|
|
927
928
|
] });
|
|
928
929
|
}), ui = /* @__PURE__ */ $(
|
|
@@ -944,7 +945,7 @@ const Va = /* @__PURE__ */ m.forwardRef(function({
|
|
|
944
945
|
invalid: !1
|
|
945
946
|
}
|
|
946
947
|
}
|
|
947
|
-
),
|
|
948
|
+
), Ia = /* @__PURE__ */ m.forwardRef(
|
|
948
949
|
function({
|
|
949
950
|
id: e,
|
|
950
951
|
label: i,
|
|
@@ -958,8 +959,8 @@ const Va = /* @__PURE__ */ m.forwardRef(function({
|
|
|
958
959
|
textareaClassName: v,
|
|
959
960
|
...u
|
|
960
961
|
}, b) {
|
|
961
|
-
const w = m.useId(), x = e ?? w, S = !!r, N = S && o ? `${x}-error` : void 0,
|
|
962
|
-
return /* @__PURE__ */
|
|
962
|
+
const w = m.useId(), x = e ?? w, S = !!r, N = S && o ? `${x}-error` : void 0, h = a && !N ? `${x}-hint` : void 0, k = [h, N].filter(Boolean).join(" ") || void 0, R = s ? "disabled" : S ? "error" : "default";
|
|
963
|
+
return /* @__PURE__ */ f("div", { className: d("flex flex-col gap-1.5", ne, c), children: [
|
|
963
964
|
i && /* @__PURE__ */ t("label", { htmlFor: x, className: "hds-type-ui text-foreground", children: i }),
|
|
964
965
|
/* @__PURE__ */ t(
|
|
965
966
|
"textarea",
|
|
@@ -972,12 +973,12 @@ const Va = /* @__PURE__ */ m.forwardRef(function({
|
|
|
972
973
|
"aria-describedby": k,
|
|
973
974
|
"aria-errormessage": N,
|
|
974
975
|
"aria-invalid": S || void 0,
|
|
975
|
-
"data-state":
|
|
976
|
+
"data-state": R,
|
|
976
977
|
className: d(ui({ resize: l, invalid: S }), v),
|
|
977
978
|
...u
|
|
978
979
|
}
|
|
979
980
|
),
|
|
980
|
-
|
|
981
|
+
h && /* @__PURE__ */ t("span", { id: h, className: "hds-type-caption text-muted-foreground", children: a }),
|
|
981
982
|
S && o && /* @__PURE__ */ t("span", { id: N, role: "alert", className: "hds-type-caption text-destructive", children: o })
|
|
982
983
|
] });
|
|
983
984
|
}
|
|
@@ -1095,10 +1096,10 @@ const mi = /* @__PURE__ */ $(
|
|
|
1095
1096
|
defaultVariants: { state: "rest", on: !1 }
|
|
1096
1097
|
}
|
|
1097
1098
|
);
|
|
1098
|
-
function
|
|
1099
|
+
function hi(n, e) {
|
|
1099
1100
|
typeof n == "function" ? n(e) : n && (n.current = e);
|
|
1100
1101
|
}
|
|
1101
|
-
const
|
|
1102
|
+
const Ma = /* @__PURE__ */ oe(
|
|
1102
1103
|
function({
|
|
1103
1104
|
label: e,
|
|
1104
1105
|
checked: i,
|
|
@@ -1110,19 +1111,19 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1110
1111
|
disabled: p,
|
|
1111
1112
|
...c
|
|
1112
1113
|
}, v) {
|
|
1113
|
-
const u = Se(null), b = me(), { visualState: w, isHover: x, isFocused: S, isPressed: N, isDisabled:
|
|
1114
|
+
const u = Se(null), b = me(), { visualState: w, isHover: x, isFocused: S, isPressed: N, isDisabled: h, handlers: k } = Te({
|
|
1114
1115
|
disabled: p,
|
|
1115
1116
|
frozenState: b
|
|
1116
1117
|
});
|
|
1117
1118
|
rt(() => {
|
|
1118
1119
|
u.current && (u.current.indeterminate = r);
|
|
1119
1120
|
}, [r]);
|
|
1120
|
-
const
|
|
1121
|
-
return /* @__PURE__ */
|
|
1121
|
+
const R = i || r, H = h ? "var(--semantic-color-content-disabled)" : "var(--semantic-color-content-onAccent)", V = j("productive");
|
|
1122
|
+
return /* @__PURE__ */ f(
|
|
1122
1123
|
E.label,
|
|
1123
1124
|
{
|
|
1124
1125
|
tabIndex: -1,
|
|
1125
|
-
whileTap:
|
|
1126
|
+
whileTap: h ? void 0 : { scale: 0.99 },
|
|
1126
1127
|
transition: { duration: V.duration, ease: V.easing },
|
|
1127
1128
|
onMouseEnter: k.onMouseEnter,
|
|
1128
1129
|
onMouseLeave: k.onMouseLeave,
|
|
@@ -1135,11 +1136,11 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1135
1136
|
"input",
|
|
1136
1137
|
{
|
|
1137
1138
|
ref: (C) => {
|
|
1138
|
-
u.current = C,
|
|
1139
|
+
u.current = C, hi(v, C);
|
|
1139
1140
|
},
|
|
1140
1141
|
type: "checkbox",
|
|
1141
1142
|
checked: i,
|
|
1142
|
-
disabled:
|
|
1143
|
+
disabled: h,
|
|
1143
1144
|
"aria-checked": r ? "mixed" : i,
|
|
1144
1145
|
onChange: (C) => a(C.target.checked),
|
|
1145
1146
|
onFocus: (C) => {
|
|
@@ -1164,11 +1165,11 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1164
1165
|
duration: V.duration,
|
|
1165
1166
|
ease: V.easing
|
|
1166
1167
|
},
|
|
1167
|
-
className: gi({ state: w, on:
|
|
1168
|
+
className: gi({ state: w, on: R }),
|
|
1168
1169
|
style: {
|
|
1169
1170
|
transition: `background-color ${V.duration}s ease, border-color ${V.duration}s ease`
|
|
1170
1171
|
},
|
|
1171
|
-
children: r ? /* @__PURE__ */ t(
|
|
1172
|
+
children: r ? /* @__PURE__ */ t(M, { icon: dt, size: 14, color: H, "aria-hidden": !0 }) : i ? /* @__PURE__ */ t(M, { icon: pe, size: 14, color: H, "aria-hidden": !0 }) : null
|
|
1172
1173
|
}
|
|
1173
1174
|
),
|
|
1174
1175
|
/* @__PURE__ */ t(
|
|
@@ -1182,7 +1183,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1182
1183
|
},
|
|
1183
1184
|
style: {
|
|
1184
1185
|
...D.typeStyles.ui,
|
|
1185
|
-
color:
|
|
1186
|
+
color: h ? "var(--semantic-color-content-disabled)" : "var(--semantic-color-content-primary)"
|
|
1186
1187
|
},
|
|
1187
1188
|
children: e
|
|
1188
1189
|
}
|
|
@@ -1191,7 +1192,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1191
1192
|
}
|
|
1192
1193
|
);
|
|
1193
1194
|
}
|
|
1194
|
-
),
|
|
1195
|
+
), fi = /* @__PURE__ */ $("absolute inset-0 m-0 opacity-0", {
|
|
1195
1196
|
variants: {
|
|
1196
1197
|
state: {
|
|
1197
1198
|
rest: "cursor-pointer",
|
|
@@ -1274,7 +1275,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1274
1275
|
},
|
|
1275
1276
|
defaultVariants: { disabled: !1 }
|
|
1276
1277
|
}
|
|
1277
|
-
),
|
|
1278
|
+
), Aa = /* @__PURE__ */ oe(function({
|
|
1278
1279
|
label: e,
|
|
1279
1280
|
checked: i,
|
|
1280
1281
|
onChange: a,
|
|
@@ -1291,11 +1292,11 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1291
1292
|
onBlur: x,
|
|
1292
1293
|
...S
|
|
1293
1294
|
}, N) {
|
|
1294
|
-
const
|
|
1295
|
+
const h = me(), { visualState: k, isHover: R, isFocused: H, isPressed: V, isDisabled: C, handlers: P } = Te({
|
|
1295
1296
|
disabled: r,
|
|
1296
|
-
frozenState:
|
|
1297
|
+
frozenState: h
|
|
1297
1298
|
}), T = j("productive"), L = j("expressive");
|
|
1298
|
-
return /* @__PURE__ */
|
|
1299
|
+
return /* @__PURE__ */ f(
|
|
1299
1300
|
E.label,
|
|
1300
1301
|
{
|
|
1301
1302
|
tabIndex: -1,
|
|
@@ -1312,30 +1313,30 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1312
1313
|
disabled: C,
|
|
1313
1314
|
onChange: (y) => a(y.target.checked),
|
|
1314
1315
|
onMouseEnter: (y) => {
|
|
1315
|
-
|
|
1316
|
+
P.onMouseEnter(), l == null || l(y);
|
|
1316
1317
|
},
|
|
1317
1318
|
onMouseLeave: (y) => {
|
|
1318
|
-
|
|
1319
|
+
P.onMouseLeave(), p == null || p(y);
|
|
1319
1320
|
},
|
|
1320
1321
|
onPointerDown: (y) => {
|
|
1321
|
-
|
|
1322
|
+
P.onPointerDown(), c == null || c(y);
|
|
1322
1323
|
},
|
|
1323
1324
|
onPointerUp: (y) => {
|
|
1324
|
-
|
|
1325
|
+
P.onPointerUp(), v == null || v(y);
|
|
1325
1326
|
},
|
|
1326
1327
|
onPointerCancel: (y) => {
|
|
1327
|
-
|
|
1328
|
+
P.onPointerCancel(), u == null || u(y);
|
|
1328
1329
|
},
|
|
1329
1330
|
onFocus: (y) => {
|
|
1330
|
-
|
|
1331
|
+
P.onFocus(y.currentTarget), b == null || b(y);
|
|
1331
1332
|
},
|
|
1332
1333
|
onKeyDown: (y) => {
|
|
1333
|
-
|
|
1334
|
+
P.onKeyDown(y.currentTarget), w == null || w(y);
|
|
1334
1335
|
},
|
|
1335
1336
|
onBlur: (y) => {
|
|
1336
|
-
|
|
1337
|
+
P.onBlur(), x == null || x(y);
|
|
1337
1338
|
},
|
|
1338
|
-
className: d("hds-focus",
|
|
1339
|
+
className: d("hds-focus", fi({ state: k })),
|
|
1339
1340
|
...S
|
|
1340
1341
|
}
|
|
1341
1342
|
),
|
|
@@ -1345,7 +1346,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1345
1346
|
"aria-hidden": "true",
|
|
1346
1347
|
className: $i({ state: k, on: i }),
|
|
1347
1348
|
animate: {
|
|
1348
|
-
scale: V ? 0.94 :
|
|
1349
|
+
scale: V ? 0.94 : R || H ? 1.04 : 1
|
|
1349
1350
|
},
|
|
1350
1351
|
transition: {
|
|
1351
1352
|
duration: T.duration,
|
|
@@ -1393,8 +1394,8 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1393
1394
|
const [p, c] = X(!1), v = a - i, b = `${(v <= 0 ? 0 : Math.min(Math.max((o - i) / v, 0), 1)) * 100}%`, w = j("productive"), x = j("expressive");
|
|
1394
1395
|
return (
|
|
1395
1396
|
// eslint-disable-next-line tailwindcss/no-arbitrary-value -- token-driven gap; var()-based, no Tailwind-theme utility exists
|
|
1396
|
-
/* @__PURE__ */
|
|
1397
|
-
/* @__PURE__ */
|
|
1397
|
+
/* @__PURE__ */ f("div", { className: `flex flex-col gap-[var(--semantic-space-scale-xs)] ${ne}`, children: [
|
|
1398
|
+
/* @__PURE__ */ f("div", { className: "flex justify-between items-baseline gap-[var(--semantic-space-scale-xs)]", children: [
|
|
1398
1399
|
/* @__PURE__ */ t(
|
|
1399
1400
|
"label",
|
|
1400
1401
|
{
|
|
@@ -1421,7 +1422,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1421
1422
|
o
|
|
1422
1423
|
)
|
|
1423
1424
|
] }),
|
|
1424
|
-
/* @__PURE__ */
|
|
1425
|
+
/* @__PURE__ */ f(E.div, { className: "relative h-[var(--semantic-size-control-md)] grid items-center", children: [
|
|
1425
1426
|
/* @__PURE__ */ t(
|
|
1426
1427
|
"div",
|
|
1427
1428
|
{
|
|
@@ -1464,7 +1465,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1464
1465
|
] })
|
|
1465
1466
|
] })
|
|
1466
1467
|
);
|
|
1467
|
-
}),
|
|
1468
|
+
}), Re = (n) => parseFloat(n), xi = Re(De.primitive.size[40]), wi = Re(De.primitive.size[20]), et = Re(De.primitive.size[16]), ki = (wi - et) / 2, Si = xi - et - ki * 2, Ni = /* @__PURE__ */ $(
|
|
1468
1469
|
"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",
|
|
1469
1470
|
{
|
|
1470
1471
|
variants: {
|
|
@@ -1532,13 +1533,13 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1532
1533
|
const v = me(), { visualState: u, isHover: b, isFocused: w, isPressed: x, isDisabled: S, handlers: N } = Te({
|
|
1533
1534
|
disabled: l,
|
|
1534
1535
|
frozenState: v
|
|
1535
|
-
}),
|
|
1536
|
-
return /* @__PURE__ */
|
|
1536
|
+
}), h = j("productive");
|
|
1537
|
+
return /* @__PURE__ */ f(
|
|
1537
1538
|
E.label,
|
|
1538
1539
|
{
|
|
1539
1540
|
tabIndex: -1,
|
|
1540
1541
|
whileTap: S ? void 0 : { scale: 0.99 },
|
|
1541
|
-
transition: { duration:
|
|
1542
|
+
transition: { duration: h.duration, ease: h.easing },
|
|
1542
1543
|
onMouseEnter: N.onMouseEnter,
|
|
1543
1544
|
onMouseLeave: N.onMouseLeave,
|
|
1544
1545
|
onPointerDown: N.onPointerDown,
|
|
@@ -1579,11 +1580,11 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1579
1580
|
scale: x ? 0.96 : b || w ? 1.04 : 1
|
|
1580
1581
|
},
|
|
1581
1582
|
transition: {
|
|
1582
|
-
duration:
|
|
1583
|
-
ease:
|
|
1583
|
+
duration: h.duration,
|
|
1584
|
+
ease: h.easing
|
|
1584
1585
|
},
|
|
1585
1586
|
style: {
|
|
1586
|
-
transition: `background-color ${
|
|
1587
|
+
transition: `background-color ${h.duration}s ease, border-color ${h.duration}s ease`
|
|
1587
1588
|
},
|
|
1588
1589
|
className: Ci({ on: i, disabled: S }),
|
|
1589
1590
|
children: /* @__PURE__ */ t(
|
|
@@ -1591,8 +1592,8 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1591
1592
|
{
|
|
1592
1593
|
animate: { x: i ? Si : 0 },
|
|
1593
1594
|
transition: {
|
|
1594
|
-
duration:
|
|
1595
|
-
ease:
|
|
1595
|
+
duration: h.duration,
|
|
1596
|
+
ease: h.easing
|
|
1596
1597
|
},
|
|
1597
1598
|
className: Di()
|
|
1598
1599
|
}
|
|
@@ -1607,8 +1608,8 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1607
1608
|
x: x ? D.space.px1 : 0
|
|
1608
1609
|
},
|
|
1609
1610
|
transition: {
|
|
1610
|
-
duration:
|
|
1611
|
-
ease:
|
|
1611
|
+
duration: h.duration,
|
|
1612
|
+
ease: h.easing
|
|
1612
1613
|
},
|
|
1613
1614
|
style: {
|
|
1614
1615
|
...D.typeStyles.ui,
|
|
@@ -1638,7 +1639,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1638
1639
|
success: { bar: "bg-feedback-success", ring: "text-feedback-success" },
|
|
1639
1640
|
warning: { bar: "bg-feedback-warning", ring: "text-feedback-warning" },
|
|
1640
1641
|
info: { bar: "bg-feedback-info", ring: "text-feedback-info" }
|
|
1641
|
-
},
|
|
1642
|
+
}, Ri = {
|
|
1642
1643
|
sm: { box: 16, stroke: 2 },
|
|
1643
1644
|
md: { box: 24, stroke: 3 },
|
|
1644
1645
|
lg: { box: 32, stroke: 3 }
|
|
@@ -1666,7 +1667,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1666
1667
|
"data-tone": s
|
|
1667
1668
|
};
|
|
1668
1669
|
if (o === "circular") {
|
|
1669
|
-
const { box: x, stroke: S } =
|
|
1670
|
+
const { box: x, stroke: S } = Ri[i ?? "md"], N = (x - S) / 2, h = 2 * Math.PI * N, k = h * (v ? 0.75 : 1 - b / 100);
|
|
1670
1671
|
return /* @__PURE__ */ t(
|
|
1671
1672
|
"span",
|
|
1672
1673
|
{
|
|
@@ -1674,7 +1675,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1674
1675
|
...w,
|
|
1675
1676
|
className: d("inline-flex", Be[s].ring, e),
|
|
1676
1677
|
...p,
|
|
1677
|
-
children: /* @__PURE__ */
|
|
1678
|
+
children: /* @__PURE__ */ f(
|
|
1678
1679
|
"svg",
|
|
1679
1680
|
{
|
|
1680
1681
|
width: x,
|
|
@@ -1702,7 +1703,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1702
1703
|
r: N,
|
|
1703
1704
|
strokeWidth: S,
|
|
1704
1705
|
strokeLinecap: "round",
|
|
1705
|
-
strokeDasharray:
|
|
1706
|
+
strokeDasharray: h,
|
|
1706
1707
|
strokeDashoffset: k,
|
|
1707
1708
|
className: "stroke-current",
|
|
1708
1709
|
transform: `rotate(-90 ${x / 2} ${x / 2})`
|
|
@@ -1735,7 +1736,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1735
1736
|
}
|
|
1736
1737
|
);
|
|
1737
1738
|
}
|
|
1738
|
-
),
|
|
1739
|
+
), Pi = /* @__PURE__ */ $("hds-skeleton block", {
|
|
1739
1740
|
variants: {
|
|
1740
1741
|
variant: {
|
|
1741
1742
|
text: "rounded",
|
|
@@ -1753,7 +1754,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1753
1754
|
ref: l,
|
|
1754
1755
|
"aria-hidden": "true",
|
|
1755
1756
|
"data-variant": i,
|
|
1756
|
-
className: d(
|
|
1757
|
+
className: d(Pi({ variant: i }), e),
|
|
1757
1758
|
style: { width: a, height: p, ...o },
|
|
1758
1759
|
...s
|
|
1759
1760
|
}
|
|
@@ -1796,7 +1797,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1796
1797
|
},
|
|
1797
1798
|
defaultVariants: { fullWidth: !1 }
|
|
1798
1799
|
}
|
|
1799
|
-
),
|
|
1800
|
+
), Ii = /* @__PURE__ */ $(
|
|
1800
1801
|
"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]",
|
|
1801
1802
|
{
|
|
1802
1803
|
variants: {
|
|
@@ -1811,7 +1812,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1811
1812
|
},
|
|
1812
1813
|
defaultVariants: { variant: "primary", fullWidth: !1 }
|
|
1813
1814
|
}
|
|
1814
|
-
),
|
|
1815
|
+
), Mi = /* @__PURE__ */ $(
|
|
1815
1816
|
"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)]",
|
|
1816
1817
|
{
|
|
1817
1818
|
variants: {
|
|
@@ -1889,7 +1890,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
1889
1890
|
disabled: !1
|
|
1890
1891
|
}
|
|
1891
1892
|
}
|
|
1892
|
-
),
|
|
1893
|
+
), Ai = /* @__PURE__ */ $(
|
|
1893
1894
|
"pointer-events-none absolute inset-0 z-0 rounded-md bg-transparent shadow-none",
|
|
1894
1895
|
{
|
|
1895
1896
|
variants: {
|
|
@@ -2008,7 +2009,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2008
2009
|
), Bi = /* @__PURE__ */ $(
|
|
2009
2010
|
// tier-ok: primitive.zIndex.10, reached as hds.zIndex.focus, has no semantic alias — same primitive ref the pre-Tailwind inline style used
|
|
2010
2011
|
"relative z-[var(--primitive-zIndex-10)] max-w-[60ch] hds-type-ui text-current"
|
|
2011
|
-
),
|
|
2012
|
+
), Ga = /* @__PURE__ */ oe(
|
|
2012
2013
|
function({
|
|
2013
2014
|
label: e,
|
|
2014
2015
|
"aria-label": i,
|
|
@@ -2021,8 +2022,8 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2021
2022
|
railPadding: c,
|
|
2022
2023
|
segmentPaddingX: v
|
|
2023
2024
|
}, u) {
|
|
2024
|
-
const [b, w] = X(null), [x, S] = X(null),
|
|
2025
|
-
return /* @__PURE__ */
|
|
2025
|
+
const [b, w] = X(null), [x, S] = X(null), h = me(), k = h === "disabled", R = j("productive"), H = s === "sm", V = l === "secondary", C = i ?? e, P = v ?? (H ? D.semantic.space.scale.xs : D.semantic.space.layout.gap);
|
|
2026
|
+
return /* @__PURE__ */ f("div", { ref: u, className: Vi({ fullWidth: p }), children: [
|
|
2026
2027
|
e && // 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
|
|
2027
2028
|
/* @__PURE__ */ t(
|
|
2028
2029
|
"span",
|
|
@@ -2033,7 +2034,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2033
2034
|
}
|
|
2034
2035
|
),
|
|
2035
2036
|
/* @__PURE__ */ t(
|
|
2036
|
-
|
|
2037
|
+
Me.Root,
|
|
2037
2038
|
{
|
|
2038
2039
|
type: "single",
|
|
2039
2040
|
role: "radiogroup",
|
|
@@ -2043,47 +2044,47 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2043
2044
|
T && !k && o(T);
|
|
2044
2045
|
},
|
|
2045
2046
|
disabled: k,
|
|
2046
|
-
className:
|
|
2047
|
+
className: Ii({ variant: l, fullWidth: p }),
|
|
2047
2048
|
style: { padding: c ?? "4px" },
|
|
2048
2049
|
children: a.map((T) => {
|
|
2049
|
-
const L = T.value === r, y =
|
|
2050
|
+
const L = T.value === r, y = h ? h === "hover" && L : b === T.value, A = h === "pressed" && L, Y = h ? h === "focused" && L : x === T.value, F = k, G = A ? "pressed" : y ? "hover" : "rest", Q = !!h && Y;
|
|
2050
2051
|
return /* @__PURE__ */ t(
|
|
2051
|
-
|
|
2052
|
+
Me.Item,
|
|
2052
2053
|
{
|
|
2053
2054
|
asChild: !0,
|
|
2054
2055
|
value: T.value,
|
|
2055
2056
|
disabled: F,
|
|
2056
|
-
children: /* @__PURE__ */
|
|
2057
|
+
children: /* @__PURE__ */ f(
|
|
2057
2058
|
E.button,
|
|
2058
2059
|
{
|
|
2059
2060
|
type: "button",
|
|
2060
|
-
onHoverStart: () => !
|
|
2061
|
-
onHoverEnd: () => !
|
|
2062
|
-
onFocus: () => !
|
|
2063
|
-
onBlur: () => !
|
|
2061
|
+
onHoverStart: () => !h && w(T.value),
|
|
2062
|
+
onHoverEnd: () => !h && w(null),
|
|
2063
|
+
onFocus: () => !h && S(T.value),
|
|
2064
|
+
onBlur: () => !h && S(null),
|
|
2064
2065
|
animate: V ? {
|
|
2065
|
-
y: L ? 0 :
|
|
2066
|
+
y: L ? 0 : A ? 1 : 0,
|
|
2066
2067
|
scale: L ? 1 : y ? 0.995 : 1
|
|
2067
2068
|
} : void 0,
|
|
2068
2069
|
transition: V ? {
|
|
2069
|
-
duration:
|
|
2070
|
-
ease:
|
|
2070
|
+
duration: R.duration,
|
|
2071
|
+
ease: R.easing
|
|
2071
2072
|
} : void 0,
|
|
2072
2073
|
className: d(
|
|
2073
2074
|
"hds-focus",
|
|
2074
|
-
|
|
2075
|
+
Mi({
|
|
2075
2076
|
size: s,
|
|
2076
2077
|
fullWidth: p,
|
|
2077
2078
|
variant: l,
|
|
2078
2079
|
active: L,
|
|
2079
|
-
interaction:
|
|
2080
|
+
interaction: G,
|
|
2080
2081
|
disabled: F
|
|
2081
2082
|
}),
|
|
2082
2083
|
Q && Hi({ variant: l })
|
|
2083
2084
|
),
|
|
2084
2085
|
style: {
|
|
2085
|
-
paddingLeft:
|
|
2086
|
-
paddingRight:
|
|
2086
|
+
paddingLeft: P,
|
|
2087
|
+
paddingRight: P
|
|
2087
2088
|
},
|
|
2088
2089
|
children: [
|
|
2089
2090
|
/* @__PURE__ */ t(
|
|
@@ -2091,10 +2092,10 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2091
2092
|
{
|
|
2092
2093
|
"aria-hidden": "true",
|
|
2093
2094
|
className: d(
|
|
2094
|
-
|
|
2095
|
+
Ai({
|
|
2095
2096
|
variant: l,
|
|
2096
2097
|
active: L,
|
|
2097
|
-
interaction:
|
|
2098
|
+
interaction: G,
|
|
2098
2099
|
disabled: F
|
|
2099
2100
|
})
|
|
2100
2101
|
)
|
|
@@ -2108,7 +2109,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2108
2109
|
Ei({
|
|
2109
2110
|
variant: l,
|
|
2110
2111
|
active: L,
|
|
2111
|
-
interaction:
|
|
2112
|
+
interaction: G,
|
|
2112
2113
|
disabled: F
|
|
2113
2114
|
})
|
|
2114
2115
|
),
|
|
@@ -2126,7 +2127,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2126
2127
|
)
|
|
2127
2128
|
] });
|
|
2128
2129
|
}
|
|
2129
|
-
), Wi = /* @__PURE__ */ ue(
|
|
2130
|
+
), Wi = /* @__PURE__ */ ue(O.Portal), _a = /* @__PURE__ */ oe(function({
|
|
2130
2131
|
label: e,
|
|
2131
2132
|
showLabel: i = !0,
|
|
2132
2133
|
options: a,
|
|
@@ -2137,8 +2138,8 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2137
2138
|
"aria-describedby": p,
|
|
2138
2139
|
"aria-invalid": c
|
|
2139
2140
|
}, v) {
|
|
2140
|
-
const u = a.find((
|
|
2141
|
-
return /* @__PURE__ */
|
|
2141
|
+
const u = a.find((h) => h.value === r), b = (u == null ? void 0 : u.label) ?? "", w = Ne(), x = Ne(), S = l ?? x, N = i && !!e;
|
|
2142
|
+
return /* @__PURE__ */ f("div", { className: d("flex flex-col", ne), children: [
|
|
2142
2143
|
i ? /* @__PURE__ */ t(
|
|
2143
2144
|
"label",
|
|
2144
2145
|
{
|
|
@@ -2149,9 +2150,9 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2149
2150
|
children: e
|
|
2150
2151
|
}
|
|
2151
2152
|
) : null,
|
|
2152
|
-
/* @__PURE__ */
|
|
2153
|
-
/* @__PURE__ */
|
|
2154
|
-
|
|
2153
|
+
/* @__PURE__ */ f(O.Root, { value: r, onValueChange: o, children: [
|
|
2154
|
+
/* @__PURE__ */ f(
|
|
2155
|
+
O.Trigger,
|
|
2155
2156
|
{
|
|
2156
2157
|
ref: v,
|
|
2157
2158
|
id: S,
|
|
@@ -2166,13 +2167,13 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2166
2167
|
"hover:border-ring data-[state=open]:border-ring"
|
|
2167
2168
|
),
|
|
2168
2169
|
children: [
|
|
2169
|
-
/* @__PURE__ */ t(
|
|
2170
|
-
/* @__PURE__ */ t(
|
|
2170
|
+
/* @__PURE__ */ t(O.Value, {}),
|
|
2171
|
+
/* @__PURE__ */ t(O.Icon, { className: "flex shrink-0 text-muted-foreground", children: /* @__PURE__ */ t(M, { icon: je, size: "small", color: "currentColor" }) })
|
|
2171
2172
|
]
|
|
2172
2173
|
}
|
|
2173
2174
|
),
|
|
2174
2175
|
/* @__PURE__ */ t(Wi, { container: s, children: /* @__PURE__ */ t(
|
|
2175
|
-
|
|
2176
|
+
O.Content,
|
|
2176
2177
|
{
|
|
2177
2178
|
position: "popper",
|
|
2178
2179
|
sideOffset: 4,
|
|
@@ -2186,21 +2187,21 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2186
2187
|
"z-50 overflow-hidden rounded-md border",
|
|
2187
2188
|
"border-border bg-popover text-popover-foreground shadow-md"
|
|
2188
2189
|
),
|
|
2189
|
-
children: /* @__PURE__ */ t(
|
|
2190
|
-
|
|
2190
|
+
children: /* @__PURE__ */ t(O.Viewport, { className: "p-1", children: a.map((h) => /* @__PURE__ */ f(
|
|
2191
|
+
O.Item,
|
|
2191
2192
|
{
|
|
2192
|
-
value:
|
|
2193
|
+
value: h.value,
|
|
2193
2194
|
className: d(
|
|
2194
2195
|
"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",
|
|
2195
2196
|
"text-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground",
|
|
2196
2197
|
"data-[highlighted]:ring-2 data-[highlighted]:ring-inset data-[highlighted]:ring-ring"
|
|
2197
2198
|
),
|
|
2198
2199
|
children: [
|
|
2199
|
-
/* @__PURE__ */ t(
|
|
2200
|
-
/* @__PURE__ */ t(
|
|
2200
|
+
/* @__PURE__ */ t(O.ItemText, { children: h.label }),
|
|
2201
|
+
/* @__PURE__ */ t(O.ItemIndicator, { className: "flex shrink-0", children: /* @__PURE__ */ t(M, { icon: pe, size: "small", color: "currentColor" }) })
|
|
2201
2202
|
]
|
|
2202
2203
|
},
|
|
2203
|
-
|
|
2204
|
+
h.value
|
|
2204
2205
|
)) })
|
|
2205
2206
|
}
|
|
2206
2207
|
) })
|
|
@@ -2212,7 +2213,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2212
2213
|
// yet for dimensional primitives (see hds#186 follow-up).
|
|
2213
2214
|
// tier-ok: regulatory a11y constant, not a design decision. hds#186
|
|
2214
2215
|
"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:text-[var(--semantic-color-content-disabled)]"
|
|
2215
|
-
),
|
|
2216
|
+
), Gi = /* @__PURE__ */ $(
|
|
2216
2217
|
"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",
|
|
2217
2218
|
{
|
|
2218
2219
|
variants: {
|
|
@@ -2223,7 +2224,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2223
2224
|
},
|
|
2224
2225
|
defaultVariants: { selected: !1 }
|
|
2225
2226
|
}
|
|
2226
|
-
),
|
|
2227
|
+
), Oa = /* @__PURE__ */ m.forwardRef(function({ children: e, active: i = !1, className: a, type: r = "button", ...o }, s) {
|
|
2227
2228
|
return /* @__PURE__ */ t(
|
|
2228
2229
|
"button",
|
|
2229
2230
|
{
|
|
@@ -2233,10 +2234,10 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2233
2234
|
"data-active": i ? "true" : void 0,
|
|
2234
2235
|
className: d("hds-focus", Fi(), a),
|
|
2235
2236
|
...o,
|
|
2236
|
-
children: /* @__PURE__ */ t("span", { className:
|
|
2237
|
+
children: /* @__PURE__ */ t("span", { className: Gi({ selected: i }), children: e })
|
|
2237
2238
|
}
|
|
2238
2239
|
);
|
|
2239
|
-
}),
|
|
2240
|
+
}), _i = /* @__PURE__ */ $(
|
|
2240
2241
|
"inline-flex items-center justify-center whitespace-nowrap align-middle select-none rounded border border-border bg-muted text-muted-foreground",
|
|
2241
2242
|
{
|
|
2242
2243
|
variants: {
|
|
@@ -2254,7 +2255,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2254
2255
|
{
|
|
2255
2256
|
ref: o,
|
|
2256
2257
|
"data-size": i ?? "md",
|
|
2257
|
-
className: d(
|
|
2258
|
+
className: d(_i({ size: i }), e),
|
|
2258
2259
|
...r,
|
|
2259
2260
|
children: a
|
|
2260
2261
|
}
|
|
@@ -2263,7 +2264,7 @@ const Ia = /* @__PURE__ */ oe(
|
|
|
2263
2264
|
function We(n) {
|
|
2264
2265
|
return n instanceof Date ? n : new Date(n);
|
|
2265
2266
|
}
|
|
2266
|
-
const
|
|
2267
|
+
const Oi = [
|
|
2267
2268
|
["year", 3600 * 24 * 365],
|
|
2268
2269
|
["month", 3600 * 24 * 30],
|
|
2269
2270
|
["week", 3600 * 24 * 7],
|
|
@@ -2274,7 +2275,7 @@ const Gi = [
|
|
|
2274
2275
|
];
|
|
2275
2276
|
function ji(n, e, i) {
|
|
2276
2277
|
const a = new Intl.RelativeTimeFormat(i, { numeric: "auto" }), r = Math.round((n.getTime() - e.getTime()) / 1e3), o = Math.abs(r);
|
|
2277
|
-
for (const [s, l] of
|
|
2278
|
+
for (const [s, l] of Oi)
|
|
2278
2279
|
if (o >= l || s === "second")
|
|
2279
2280
|
return a.format(Math.round(r / l), s);
|
|
2280
2281
|
return a.format(0, "second");
|
|
@@ -2310,7 +2311,7 @@ const Ui = {
|
|
|
2310
2311
|
defaultVariants: { size: "md" }
|
|
2311
2312
|
}), Ya = /* @__PURE__ */ m.forwardRef(
|
|
2312
2313
|
function({ className: e, size: i, attribution: a, children: r, ...o }, s) {
|
|
2313
|
-
return /* @__PURE__ */
|
|
2314
|
+
return /* @__PURE__ */ f(
|
|
2314
2315
|
"blockquote",
|
|
2315
2316
|
{
|
|
2316
2317
|
ref: s,
|
|
@@ -2343,7 +2344,7 @@ const Ui = {
|
|
|
2343
2344
|
), Xa = /* @__PURE__ */ m.forwardRef(
|
|
2344
2345
|
function({ className: e, children: i, max: a, size: r, ...o }, s) {
|
|
2345
2346
|
const l = r ?? "md", p = m.Children.toArray(i).filter(m.isValidElement), c = a && a > 0 ? a : p.length, v = p.slice(0, c), u = p.length - v.length;
|
|
2346
|
-
return /* @__PURE__ */
|
|
2347
|
+
return /* @__PURE__ */ f(
|
|
2347
2348
|
"div",
|
|
2348
2349
|
{
|
|
2349
2350
|
ref: s,
|
|
@@ -2363,7 +2364,7 @@ const Ui = {
|
|
|
2363
2364
|
)
|
|
2364
2365
|
})
|
|
2365
2366
|
),
|
|
2366
|
-
u > 0 && /* @__PURE__ */
|
|
2367
|
+
u > 0 && /* @__PURE__ */ f("span", { "aria-label": `+${u} more`, className: qi({ size: r }), children: [
|
|
2367
2368
|
"+",
|
|
2368
2369
|
u
|
|
2369
2370
|
] })
|
|
@@ -2382,7 +2383,7 @@ const Ui = {
|
|
|
2382
2383
|
defaultVariants: { orientation: "vertical" }
|
|
2383
2384
|
}), Ja = /* @__PURE__ */ m.forwardRef(
|
|
2384
2385
|
function({ className: e, items: i, orientation: a = "vertical", variant: r = "plain", footer: o, ...s }, l) {
|
|
2385
|
-
return r === "divided" ? /* @__PURE__ */
|
|
2386
|
+
return r === "divided" ? /* @__PURE__ */ f(
|
|
2386
2387
|
"dl",
|
|
2387
2388
|
{
|
|
2388
2389
|
ref: l,
|
|
@@ -2394,7 +2395,7 @@ const Ui = {
|
|
|
2394
2395
|
},
|
|
2395
2396
|
...s,
|
|
2396
2397
|
children: [
|
|
2397
|
-
i.map((p, c) => /* @__PURE__ */
|
|
2398
|
+
i.map((p, c) => /* @__PURE__ */ f(
|
|
2398
2399
|
"div",
|
|
2399
2400
|
{
|
|
2400
2401
|
className: "flex flex-col gap-2 p-5",
|
|
@@ -2422,7 +2423,7 @@ const Ui = {
|
|
|
2422
2423
|
},
|
|
2423
2424
|
c
|
|
2424
2425
|
)),
|
|
2425
|
-
o != null && /* @__PURE__ */
|
|
2426
|
+
o != null && /* @__PURE__ */ f(
|
|
2426
2427
|
"div",
|
|
2427
2428
|
{
|
|
2428
2429
|
className: "p-5 hds-type-ui",
|
|
@@ -2446,7 +2447,7 @@ const Ui = {
|
|
|
2446
2447
|
"data-orientation": a,
|
|
2447
2448
|
className: d(Fe({ orientation: a }), e),
|
|
2448
2449
|
...s,
|
|
2449
|
-
children: i.map((p, c) => /* @__PURE__ */
|
|
2450
|
+
children: i.map((p, c) => /* @__PURE__ */ f(m.Fragment, { children: [
|
|
2450
2451
|
/* @__PURE__ */ t("dt", { className: "hds-type-ui text-muted-foreground", children: p.term }),
|
|
2451
2452
|
/* @__PURE__ */ t("dd", { className: d("m-0 text-foreground"), children: p.description })
|
|
2452
2453
|
] }, c))
|
|
@@ -2458,7 +2459,7 @@ const Ui = {
|
|
|
2458
2459
|
"data-orientation": a,
|
|
2459
2460
|
className: d(Fe({ orientation: a }), e),
|
|
2460
2461
|
...s,
|
|
2461
|
-
children: i.map((p, c) => /* @__PURE__ */
|
|
2462
|
+
children: i.map((p, c) => /* @__PURE__ */ f("div", { className: "flex flex-col gap-0.5", children: [
|
|
2462
2463
|
/* @__PURE__ */ t("dt", { className: "hds-type-ui text-muted-foreground", children: p.term }),
|
|
2463
2464
|
/* @__PURE__ */ t("dd", { className: d("m-0 text-foreground"), children: p.description })
|
|
2464
2465
|
] }, c))
|
|
@@ -2477,7 +2478,7 @@ const Ui = {
|
|
|
2477
2478
|
as: p = "div"
|
|
2478
2479
|
}, c) {
|
|
2479
2480
|
const [v, u] = e;
|
|
2480
|
-
return /* @__PURE__ */
|
|
2481
|
+
return /* @__PURE__ */ f(
|
|
2481
2482
|
p,
|
|
2482
2483
|
{
|
|
2483
2484
|
ref: c,
|
|
@@ -2607,7 +2608,7 @@ const Xi = /* @__PURE__ */ $("", {
|
|
|
2607
2608
|
const { LinkComponent: s } = Xe();
|
|
2608
2609
|
return /* @__PURE__ */ t("nav", { ref: o, "aria-label": i, className: d("w-full", a), ...r, children: /* @__PURE__ */ t("ol", { className: "flex flex-wrap items-center gap-2", children: e.map((l, p) => {
|
|
2609
2610
|
const c = p === e.length - 1, v = !!l.href && !c;
|
|
2610
|
-
return /* @__PURE__ */
|
|
2611
|
+
return /* @__PURE__ */ f("li", { className: "inline-flex items-center gap-2", children: [
|
|
2611
2612
|
v ? /* @__PURE__ */ t(
|
|
2612
2613
|
s,
|
|
2613
2614
|
{
|
|
@@ -2626,7 +2627,7 @@ const Xi = /* @__PURE__ */ $("", {
|
|
|
2626
2627
|
}
|
|
2627
2628
|
),
|
|
2628
2629
|
!c && /* @__PURE__ */ t(
|
|
2629
|
-
|
|
2630
|
+
M,
|
|
2630
2631
|
{
|
|
2631
2632
|
icon: Ce,
|
|
2632
2633
|
size: "small",
|
|
@@ -2666,12 +2667,12 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2666
2667
|
...u
|
|
2667
2668
|
}, b) {
|
|
2668
2669
|
var de;
|
|
2669
|
-
const [w, x] = m.useState(!1), [S, N] = m.useState(""), [
|
|
2670
|
+
const [w, x] = m.useState(!1), [S, N] = m.useState(""), [h, k] = m.useState(0), R = m.useId(), H = `${R}-list`, V = o || i, C = u.multiple ? u.value : u.value === null ? [] : [u.value], P = u.multiple ? C.flatMap((g) => e.find((z) => z.value === g) ?? []) : [], T = P.length > 0 ? `${P.length} selected` : void 0, L = u.multiple ? T : (de = e.find((g) => g.value === u.value)) == null ? void 0 : de.label, y = m.useMemo(() => {
|
|
2670
2671
|
const g = S.trim().toLowerCase();
|
|
2671
2672
|
return g ? e.filter((z) => z.label.toLowerCase().includes(g)) : e;
|
|
2672
|
-
}, [e, S]),
|
|
2673
|
-
Y !==
|
|
2674
|
-
const
|
|
2673
|
+
}, [e, S]), A = `${w}|${y.map((g) => `${g.value}:${g.disabled ? 1 : 0}`).join("\0")}`, [Y, F] = m.useState(A);
|
|
2674
|
+
Y !== A && (F(A), k(Ji(y)));
|
|
2675
|
+
const G = m.useRef(!1);
|
|
2675
2676
|
function Q(g) {
|
|
2676
2677
|
if (!g.disabled) {
|
|
2677
2678
|
if (u.multiple) {
|
|
@@ -2688,36 +2689,36 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2688
2689
|
le.current = g, typeof b == "function" ? b(g) : b && (b.current = g);
|
|
2689
2690
|
},
|
|
2690
2691
|
[b]
|
|
2691
|
-
),
|
|
2692
|
+
), I = m.useRef(null);
|
|
2692
2693
|
m.useEffect(() => {
|
|
2693
2694
|
var K;
|
|
2694
|
-
const g =
|
|
2695
|
-
if (!g ||
|
|
2695
|
+
const g = I.current;
|
|
2696
|
+
if (!g || P.length === g.count || (I.current = null, P.length > g.count)) return;
|
|
2696
2697
|
const z = ve.current, W = (z == null ? void 0 : z.querySelectorAll("li button:not(:disabled)")) ?? [];
|
|
2697
2698
|
(K = W[Math.min(g.index, W.length - 1)] ?? (z == null ? void 0 : z.querySelector('[role="combobox"]'))) == null || K.focus();
|
|
2698
|
-
}, [
|
|
2699
|
-
function
|
|
2700
|
-
u.multiple && (
|
|
2699
|
+
}, [P.length]);
|
|
2700
|
+
function he(g, z) {
|
|
2701
|
+
u.multiple && (I.current = { index: z, count: P.length }, u.onChange(C.filter((W) => W !== g.value)));
|
|
2701
2702
|
}
|
|
2702
2703
|
function ce(g) {
|
|
2703
2704
|
if (y.length !== 0) {
|
|
2704
2705
|
if (g.key === "ArrowDown" || g.key === "ArrowUp") {
|
|
2705
2706
|
g.preventDefault();
|
|
2706
|
-
const z = Ki(y,
|
|
2707
|
-
z !==
|
|
2707
|
+
const z = Ki(y, h, g.key === "ArrowDown" ? 1 : -1);
|
|
2708
|
+
z !== h && (G.current = !0, k(z));
|
|
2708
2709
|
} else if (g.key === "Enter") {
|
|
2709
2710
|
g.preventDefault();
|
|
2710
|
-
const z = y[
|
|
2711
|
+
const z = y[h];
|
|
2711
2712
|
z && Q(z);
|
|
2712
2713
|
}
|
|
2713
2714
|
}
|
|
2714
2715
|
}
|
|
2715
|
-
const te = (g) => `${
|
|
2716
|
+
const te = (g) => `${R}-opt-${g}`, q = y[h] ? te(h) : void 0;
|
|
2716
2717
|
m.useEffect(() => {
|
|
2717
2718
|
var g;
|
|
2718
|
-
|
|
2719
|
+
G.current && (G.current = !1, w && q && ((g = document.getElementById(q)) == null || g.scrollIntoView({ block: "nearest" })));
|
|
2719
2720
|
}, [w, q]);
|
|
2720
|
-
const ie = /* @__PURE__ */
|
|
2721
|
+
const ie = /* @__PURE__ */ f(
|
|
2721
2722
|
ke,
|
|
2722
2723
|
{
|
|
2723
2724
|
open: w,
|
|
@@ -2725,7 +2726,7 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2725
2726
|
x(g), g || N("");
|
|
2726
2727
|
},
|
|
2727
2728
|
children: [
|
|
2728
|
-
/* @__PURE__ */ t(ke.Anchor, { asChild: !0, children: /* @__PURE__ */
|
|
2729
|
+
/* @__PURE__ */ t(ke.Anchor, { asChild: !0, children: /* @__PURE__ */ f(
|
|
2729
2730
|
"button",
|
|
2730
2731
|
{
|
|
2731
2732
|
ref: ge,
|
|
@@ -2750,7 +2751,7 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2750
2751
|
children: [
|
|
2751
2752
|
/* @__PURE__ */ t("span", { className: d("truncate", !L && "text-muted-foreground"), children: L || i }),
|
|
2752
2753
|
/* @__PURE__ */ t(
|
|
2753
|
-
|
|
2754
|
+
M,
|
|
2754
2755
|
{
|
|
2755
2756
|
icon: je,
|
|
2756
2757
|
size: "small",
|
|
@@ -2761,7 +2762,7 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2761
2762
|
]
|
|
2762
2763
|
}
|
|
2763
2764
|
) }),
|
|
2764
|
-
/* @__PURE__ */
|
|
2765
|
+
/* @__PURE__ */ f(
|
|
2765
2766
|
ke.Content,
|
|
2766
2767
|
{
|
|
2767
2768
|
"aria-label": V,
|
|
@@ -2814,8 +2815,8 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2814
2815
|
"aria-multiselectable": u.multiple || void 0,
|
|
2815
2816
|
className: d("max-h-60 overflow-y-auto", y.length > 0 && "p-1"),
|
|
2816
2817
|
children: y.map((g, z) => {
|
|
2817
|
-
const W = C.includes(g.value), J = z ===
|
|
2818
|
-
return /* @__PURE__ */ t("li", { role: "none", children: /* @__PURE__ */
|
|
2818
|
+
const W = C.includes(g.value), J = z === h;
|
|
2819
|
+
return /* @__PURE__ */ t("li", { role: "none", children: /* @__PURE__ */ f(
|
|
2819
2820
|
"button",
|
|
2820
2821
|
{
|
|
2821
2822
|
type: "button",
|
|
@@ -2834,7 +2835,7 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2834
2835
|
"disabled:pointer-events-none disabled:text-[var(--semantic-color-content-disabled)]"
|
|
2835
2836
|
),
|
|
2836
2837
|
children: [
|
|
2837
|
-
/* @__PURE__ */ t("span", { className: "flex size-4 items-center justify-center", children: W ? /* @__PURE__ */ t(
|
|
2838
|
+
/* @__PURE__ */ t("span", { className: "flex size-4 items-center justify-center", children: W ? /* @__PURE__ */ t(M, { icon: pe, size: "small", color: "currentColor", "aria-hidden": !0 }) : null }),
|
|
2838
2839
|
/* @__PURE__ */ t("span", { className: "truncate", children: g.label })
|
|
2839
2840
|
]
|
|
2840
2841
|
}
|
|
@@ -2849,15 +2850,15 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2849
2850
|
]
|
|
2850
2851
|
}
|
|
2851
2852
|
);
|
|
2852
|
-
return u.multiple ? /* @__PURE__ */
|
|
2853
|
+
return u.multiple ? /* @__PURE__ */ f("div", { ref: ve, className: d("flex flex-col gap-2", ne), children: [
|
|
2853
2854
|
ie,
|
|
2854
|
-
|
|
2855
|
+
P.length > 0 ? /* @__PURE__ */ t("ul", { className: "flex flex-wrap gap-1", children: P.map((g, z) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ f(
|
|
2855
2856
|
"button",
|
|
2856
2857
|
{
|
|
2857
2858
|
type: "button",
|
|
2858
2859
|
"aria-label": `Remove ${g.label}`,
|
|
2859
2860
|
disabled: v || g.disabled,
|
|
2860
|
-
onClick: () =>
|
|
2861
|
+
onClick: () => he(g, z),
|
|
2861
2862
|
className: d(
|
|
2862
2863
|
"hds-focus inline-flex h-7 items-center gap-1 rounded-sm border border-border bg-muted pl-2 pr-1",
|
|
2863
2864
|
"hds-type-caption text-foreground hover:bg-accent hover:text-accent-foreground",
|
|
@@ -2865,7 +2866,7 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2865
2866
|
),
|
|
2866
2867
|
children: [
|
|
2867
2868
|
g.label,
|
|
2868
|
-
/* @__PURE__ */ t(
|
|
2869
|
+
/* @__PURE__ */ t(M, { icon: $e, size: "small", color: "currentColor", "aria-hidden": !0 })
|
|
2869
2870
|
]
|
|
2870
2871
|
}
|
|
2871
2872
|
) }, g.value)) }) : null
|
|
@@ -2901,55 +2902,55 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2901
2902
|
contentStyle: c,
|
|
2902
2903
|
children: v
|
|
2903
2904
|
}, u) {
|
|
2904
|
-
const [b, w] = X(i), x = Ne(), S = Se(null), N = Se(null),
|
|
2905
|
+
const [b, w] = X(i), x = Ne(), S = Se(null), N = Se(null), h = a ?? b, k = h ? "open" : "closed", R = j("productive");
|
|
2905
2906
|
function H() {
|
|
2906
|
-
var y,
|
|
2907
|
-
const L = !
|
|
2908
|
-
!L && ((y = N.current) != null && y.contains(document.activeElement)) && ((
|
|
2907
|
+
var y, A;
|
|
2908
|
+
const L = !h;
|
|
2909
|
+
!L && ((y = N.current) != null && y.contains(document.activeElement)) && ((A = S.current) == null || A.focus()), a === void 0 && w(L), r == null || r(L);
|
|
2909
2910
|
}
|
|
2910
2911
|
const V = d(
|
|
2911
2912
|
"hds-focus",
|
|
2912
2913
|
Zi({ variant: o }),
|
|
2913
2914
|
o === "nav" ? "hds-text-hover hds-bg-hover-neutral" : "",
|
|
2914
2915
|
l
|
|
2915
|
-
), C =
|
|
2916
|
+
), C = h ? Qi[o] : 0, P = typeof e == "string" ? /* @__PURE__ */ t(
|
|
2916
2917
|
"span",
|
|
2917
2918
|
{
|
|
2918
2919
|
className: "m-0 text-current",
|
|
2919
2920
|
style: o === "nav" ? D.typeStyles.ui : D.typeStyles.caption,
|
|
2920
2921
|
children: e
|
|
2921
2922
|
}
|
|
2922
|
-
) : e, T = /* @__PURE__ */
|
|
2923
|
-
/* @__PURE__ */
|
|
2923
|
+
) : e, T = /* @__PURE__ */ f(at, { children: [
|
|
2924
|
+
/* @__PURE__ */ f(
|
|
2924
2925
|
"button",
|
|
2925
2926
|
{
|
|
2926
2927
|
ref: S,
|
|
2927
2928
|
type: "button",
|
|
2928
2929
|
onClick: H,
|
|
2929
|
-
"aria-expanded":
|
|
2930
|
+
"aria-expanded": h,
|
|
2930
2931
|
"aria-controls": x,
|
|
2931
2932
|
"data-state": k,
|
|
2932
2933
|
className: V,
|
|
2933
2934
|
style: p,
|
|
2934
2935
|
children: [
|
|
2935
|
-
/* @__PURE__ */ t("div", { className: "grid min-w-0 flex-1 items-start gap-[var(--semantic-space-subgrid-gap)]", children:
|
|
2936
|
+
/* @__PURE__ */ t("div", { className: "grid min-w-0 flex-1 items-start gap-[var(--semantic-space-subgrid-gap)]", children: P }),
|
|
2936
2937
|
/* @__PURE__ */ t(
|
|
2937
2938
|
E.span,
|
|
2938
2939
|
{
|
|
2939
2940
|
"aria-hidden": "true",
|
|
2940
|
-
animate: { rotate:
|
|
2941
|
+
animate: { rotate: h ? 0 : -90 },
|
|
2941
2942
|
transition: {
|
|
2942
|
-
duration:
|
|
2943
|
-
ease:
|
|
2943
|
+
duration: R.duration,
|
|
2944
|
+
ease: R.easing
|
|
2944
2945
|
},
|
|
2945
2946
|
className: "inline-grid size-[var(--hds-icon-small)] shrink-0 origin-center place-items-center self-center overflow-hidden leading-none",
|
|
2946
|
-
children: /* @__PURE__ */ t(
|
|
2947
|
+
children: /* @__PURE__ */ t(M, { icon: pt, size: "small", color: "currentColor" })
|
|
2947
2948
|
}
|
|
2948
2949
|
)
|
|
2949
2950
|
]
|
|
2950
2951
|
}
|
|
2951
2952
|
),
|
|
2952
|
-
/* @__PURE__ */ t(nt, { initial: !1, children:
|
|
2953
|
+
/* @__PURE__ */ t(nt, { initial: !1, children: h && /* @__PURE__ */ t(
|
|
2953
2954
|
E.div,
|
|
2954
2955
|
{
|
|
2955
2956
|
ref: N,
|
|
@@ -2958,8 +2959,8 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2958
2959
|
animate: { opacity: 1, height: "auto" },
|
|
2959
2960
|
exit: { opacity: 0, height: 0 },
|
|
2960
2961
|
transition: {
|
|
2961
|
-
duration:
|
|
2962
|
-
ease:
|
|
2962
|
+
duration: R.duration,
|
|
2963
|
+
ease: R.easing
|
|
2963
2964
|
},
|
|
2964
2965
|
className: "overflow-hidden",
|
|
2965
2966
|
children: /* @__PURE__ */ t(
|
|
@@ -2974,31 +2975,31 @@ const nr = /* @__PURE__ */ m.forwardRef(
|
|
|
2974
2975
|
}
|
|
2975
2976
|
) })
|
|
2976
2977
|
] });
|
|
2977
|
-
return o === "nav" ? /* @__PURE__ */ t(
|
|
2978
|
+
return o === "nav" ? /* @__PURE__ */ t(Ie, { ref: u, gap: "tight", style: { gap: C }, children: T }) : /* @__PURE__ */ t(
|
|
2978
2979
|
gt,
|
|
2979
2980
|
{
|
|
2980
2981
|
ref: u,
|
|
2981
2982
|
padding: "component",
|
|
2982
2983
|
className: o === "card" ? "overflow-hidden" : void 0,
|
|
2983
|
-
children: /* @__PURE__ */ t(
|
|
2984
|
+
children: /* @__PURE__ */ t(Ie, { gap: "tight", style: { gap: C }, children: T })
|
|
2984
2985
|
}
|
|
2985
2986
|
);
|
|
2986
2987
|
}
|
|
2987
2988
|
);
|
|
2988
|
-
function
|
|
2989
|
+
function fe(n, e) {
|
|
2989
2990
|
return Array.from({ length: e - n + 1 }, (i, a) => n + a);
|
|
2990
2991
|
}
|
|
2991
2992
|
function ea(n, e, i = 1) {
|
|
2992
2993
|
const a = i * 2 + 5;
|
|
2993
|
-
if (e <= a) return
|
|
2994
|
+
if (e <= a) return fe(1, e);
|
|
2994
2995
|
const r = Math.max(n - i, 1), o = Math.min(n + i, e), s = r > 2, l = o < e - 1;
|
|
2995
|
-
return !s && l ? [...
|
|
2996
|
+
return !s && l ? [...fe(1, i * 2 + 3), "ellipsis", e] : s && !l ? [1, "ellipsis", ...fe(e - (i * 2 + 2), e)] : [1, "ellipsis", ...fe(r, o), "ellipsis", e];
|
|
2996
2997
|
}
|
|
2997
2998
|
const sr = /* @__PURE__ */ m.forwardRef(
|
|
2998
2999
|
function({ page: e, count: i, onPageChange: a, siblingCount: r = 1, label: o = "Pagination", className: s, ...l }, p) {
|
|
2999
3000
|
if (i <= 1) return null;
|
|
3000
3001
|
const c = ea(e, i, r), v = (u) => a(Math.max(1, Math.min(i, u)));
|
|
3001
|
-
return /* @__PURE__ */ t("nav", { ref: p, "aria-label": o, className: d("w-full", s), ...l, children: /* @__PURE__ */
|
|
3002
|
+
return /* @__PURE__ */ t("nav", { ref: p, "aria-label": o, className: d("w-full", s), ...l, children: /* @__PURE__ */ f("ul", { className: "flex flex-wrap items-center gap-1", children: [
|
|
3002
3003
|
/* @__PURE__ */ t("li", { children: /* @__PURE__ */ t(
|
|
3003
3004
|
be,
|
|
3004
3005
|
{
|
|
@@ -3008,7 +3009,7 @@ const sr = /* @__PURE__ */ m.forwardRef(
|
|
|
3008
3009
|
"aria-label": "Previous page",
|
|
3009
3010
|
disabled: e <= 1,
|
|
3010
3011
|
onClick: () => v(e - 1),
|
|
3011
|
-
iconLeft: /* @__PURE__ */ t(
|
|
3012
|
+
iconLeft: /* @__PURE__ */ t(M, { icon: ut, size: "small" })
|
|
3012
3013
|
}
|
|
3013
3014
|
) }),
|
|
3014
3015
|
c.map(
|
|
@@ -3042,7 +3043,7 @@ const sr = /* @__PURE__ */ m.forwardRef(
|
|
|
3042
3043
|
"aria-label": "Next page",
|
|
3043
3044
|
disabled: e >= i,
|
|
3044
3045
|
onClick: () => v(e + 1),
|
|
3045
|
-
iconLeft: /* @__PURE__ */ t(
|
|
3046
|
+
iconLeft: /* @__PURE__ */ t(M, { icon: Ce, size: "small" })
|
|
3046
3047
|
}
|
|
3047
3048
|
) })
|
|
3048
3049
|
] }) });
|
|
@@ -3067,9 +3068,9 @@ function lr() {
|
|
|
3067
3068
|
const ia = {
|
|
3068
3069
|
neutral: ze,
|
|
3069
3070
|
info: ze,
|
|
3070
|
-
success:
|
|
3071
|
-
danger:
|
|
3072
|
-
warning:
|
|
3071
|
+
success: Oe,
|
|
3072
|
+
danger: _e,
|
|
3073
|
+
warning: Ge
|
|
3073
3074
|
};
|
|
3074
3075
|
function cr({
|
|
3075
3076
|
children: n,
|
|
@@ -3085,11 +3086,11 @@ function cr({
|
|
|
3085
3086
|
() => ({ toast: l, dismiss: s }),
|
|
3086
3087
|
[l, s]
|
|
3087
3088
|
);
|
|
3088
|
-
return /* @__PURE__ */ t(tt.Provider, { value: p, children: /* @__PURE__ */
|
|
3089
|
+
return /* @__PURE__ */ t(tt.Provider, { value: p, children: /* @__PURE__ */ f(ae.Provider, { duration: e, swipeDirection: i, children: [
|
|
3089
3090
|
n,
|
|
3090
3091
|
a.map((c) => {
|
|
3091
3092
|
const v = c.tone ?? "neutral";
|
|
3092
|
-
return /* @__PURE__ */
|
|
3093
|
+
return /* @__PURE__ */ f(
|
|
3093
3094
|
ae.Root,
|
|
3094
3095
|
{
|
|
3095
3096
|
duration: c.duration ?? e,
|
|
@@ -3103,7 +3104,7 @@ function cr({
|
|
|
3103
3104
|
),
|
|
3104
3105
|
children: [
|
|
3105
3106
|
/* @__PURE__ */ t(
|
|
3106
|
-
|
|
3107
|
+
M,
|
|
3107
3108
|
{
|
|
3108
3109
|
icon: ia[v],
|
|
3109
3110
|
size: "small",
|
|
@@ -3112,7 +3113,7 @@ function cr({
|
|
|
3112
3113
|
"aria-hidden": !0
|
|
3113
3114
|
}
|
|
3114
3115
|
),
|
|
3115
|
-
/* @__PURE__ */
|
|
3116
|
+
/* @__PURE__ */ f("div", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
3116
3117
|
/* @__PURE__ */ t(ae.Title, { className: "hds-type-ui", children: c.title }),
|
|
3117
3118
|
c.description ? /* @__PURE__ */ t(ae.Description, { className: "hds-type-ui text-muted-foreground", children: c.description }) : null
|
|
3118
3119
|
] }),
|
|
@@ -3124,7 +3125,7 @@ function cr({
|
|
|
3124
3125
|
"absolute right-2 top-2 inline-flex size-6 items-center justify-center",
|
|
3125
3126
|
"rounded-sm text-muted-foreground transition-colors hover:text-foreground hds-focus"
|
|
3126
3127
|
),
|
|
3127
|
-
children: /* @__PURE__ */ t(
|
|
3128
|
+
children: /* @__PURE__ */ t(M, { icon: $e, size: "small", color: "currentColor", "aria-hidden": !0 })
|
|
3128
3129
|
}
|
|
3129
3130
|
)
|
|
3130
3131
|
]
|
|
@@ -3143,7 +3144,7 @@ function cr({
|
|
|
3143
3144
|
)
|
|
3144
3145
|
] }) });
|
|
3145
3146
|
}
|
|
3146
|
-
const aa = "https://www.designtokens.org/schemas/2025.10/format.json", ra = "Adrian Milsap hirobius design tokens - W3C DTCG 2025.10 compliant, Figma SDS architecture", na = /* @__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."},"apple":{"50":{"$value":"#f2faeb","$description":"Apple-green accent tint — faintest step."},"100":{"$value":"#e2f3cf","$description":"Apple-green accent — very light tint."},"200":{"$value":"#c7e7a4","$description":"Apple-green accent — light tint."},"300":{"$value":"#a6d873","$description":"Apple-green accent — soft mid-light step."},"400":{"$value":"#85c84c","$description":"Apple-green accent — bright step; dark-mode rest accent."},"500":{"$value":"#66b239","$description":"Apple-green accent rest — bright, rich apple green; AA for dark (neutral.900) text as a fill."},"600":{"$value":"#54922d","$description":"Apple-green accent — hover / border step."},"700":{"$value":"#416f20","$description":"Apple-green accent — pressed and accent-intent text (AA for text on page and card surfaces)."},"800":{"$value":"#34571b","$description":"Apple-green accent — deep step."},"900":{"$value":"#2b4518","$description":"Apple-green accent — darkest usable step."},"950":{"$value":"#16250c","$description":"Apple-green accent — near-black green substrate."},"$description":"Discrete values within the apple-green (brand accent) range at defined lightness steps. Distinct from the emerald \`green\` feedback/success scale."},"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":["Plus Jakarta Sans","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Self-hosted Plus Jakarta Sans (OFL) body typeface; falls back to system-ui sans-serif stack."},"display":{"$value":["Plus Jakarta Sans","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Display face: Plus Jakarta Sans Bold (OFL), bound to the display and title composites."},"mono":{"$value":["IBM Plex Mono","Courier New","monospace"],"$description":"Monospace face: IBM Plex 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":{"$value":[0.34,1.56,0.64,1],"$description":"Spring response defined by stiffness, damping, and mass parameters.","$extensions":{"com.hirobius.hds":{"$type":"spring","$value":{"type":"spring","stiffness":300,"damping":20,"mass":1},"bezierSource":"The cubicBezier is easeOutBack (easings.net), chosen as a stand-in for the spring, not fitted to it: both overshoot once, the curve by about 10% and spring(300, 20, 1) by about 11%."}}}},"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"}}}}`), oa = /* @__PURE__ */ JSON.parse(`{"motion":{"$type":"transition","$extensions":{"com.hirobius.hds":{"$type":"motion"}},"productive":{"$value":{"duration":"{primitive.duration.short}","delay":{"value":0,"unit":"ms"},"timingFunction":"{primitive.easing.decelerate}"},"$description":"For micro-interactions and status changes. No deformation."},"expressive":{"$value":{"duration":"{primitive.duration.medium}","delay":{"value":0,"unit":"ms"},"timingFunction":"{primitive.easing.elastic}"},"$description":"For teaching moments and significant UI entries. Includes physics-based squish."},"spatial":{"$value":{"duration":"{primitive.duration.long}","delay":{"value":0,"unit":"ms"},"timingFunction":"{primitive.easing.emphasized}"},"$description":"For elements traveling long distances across the viewport."},"exit":{"$value":{"duration":"{primitive.duration.instant}","delay":{"value":0,"unit":"ms"},"timingFunction":"{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.apple.500}","$description":"Accent-colored background — bright apple green (stays green on dark surfaces; pair with content.onAccent dark text).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.500}","Dark":"{primitive.color.apple.400}"}}}},"accentSubtle":{"$value":"{primitive.color.apple.50}","$description":"Faint accent tint for hover states or highlights","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.50}","Dark":"{primitive.color.apple.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.apple.700}","$description":"Accent-intent text/icon color — a dark apple green legible on page and card surfaces. Pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.700}","Dark":"{primitive.color.apple.400}"}}}},"onAccent":{"$value":"{primitive.color.neutral.900}","$description":"Text/icon color on accent fills — a dark neutral, since the brand accent fill is a bright apple green in both light and dark mode.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.900}","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.apple.600}","$description":"Accent border — apple green, dark enough to read as a boundary on page and card surfaces.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.600}","Dark":"{primitive.color.apple.400}"}}}},"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.apple.500}","$description":"Default accent fill for interactive elements at rest — bright apple green. Pair with content.onAccent (a dark neutral).","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.500}","Dark":"{primitive.color.apple.400}"}}}},"hover":{"$value":"{primitive.color.apple.600}","$description":"Accent fill on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.600}","Dark":"{primitive.color.apple.500}"}}}},"pressed":{"$value":"{primitive.color.apple.700}","$description":"Accent fill during active press.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.700}","Dark":"{primitive.color.apple.600}"}}}},"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.apple.700}","$description":"Accent-intent text/icon color on neutral surfaces (a dark apple green) — pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.700}","Dark":"{primitive.color.apple.400}"}}}},"contentHover":{"$value":"{primitive.color.apple.800}","$description":"Accent content color on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.800}","Dark":"{primitive.color.apple.300}"}}}},"subtle":{"$value":"{primitive.color.apple.50}","$description":"Low-emphasis accent tint for hover backgrounds and selection highlights.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.apple.50}","Dark":"{primitive.color.apple.900}"}}}}},"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":{"$extensions":{"com.hirobius.hds":{"$type":"elevation"}},"flat":{"$description":"Flat surface (no shadow, hairline border) for embedded panels.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.page}","shadow":null,"border":"{semantic.color.border.subtle}"}}}},"raised":{"$description":"Resting card / panel elevation.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.subtle}","border":null}}}},"floating":{"$description":"Hover, menu, and popover elevation.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.floating}","border":null}}}},"overlay":{"$description":"Modal, dialog, and drawer elevation.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.overlay}","shadow":"{semantic.shadow.overlay}","border":null}}}}},"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."}}}`), sa = { 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: "number", $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." } } } }, la = { $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." } }, ca = {
|
|
3147
|
+
const aa = "https://www.designtokens.org/schemas/2025.10/format.json", ra = "Adrian Milsap hirobius design tokens - W3C DTCG 2025.10 compliant, Figma SDS architecture", na = /* @__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."},"graphite":{"50":{"$value":"#f5f4f4","$description":"Graphite accent tint — faintest step."},"100":{"$value":"#e9e7e8","$description":"Graphite accent — very light warm tint."},"200":{"$value":"#d4d0d2","$description":"Graphite accent — light warm-grey; dark-mode rest accent fill."},"300":{"$value":"#b2abae","$description":"Graphite accent — soft mid-light step; dark-mode hover/link."},"400":{"$value":"#8b8488","$description":"Graphite accent — mid warm-grey step."},"500":{"$value":"#655e62","$description":"Graphite accent — mid step."},"600":{"$value":"#544d51","$description":"Graphite accent — mid-dark step."},"700":{"$value":"#433a3f","$description":"Graphite accent rest — the warm charcoal brand accent; white text as a fill (AA)."},"800":{"$value":"#352e32","$description":"Graphite accent — deep step; light-mode hover."},"900":{"$value":"#2a2428","$description":"Graphite accent — darkest usable step; light-mode pressed, dark-mode on-accent text."},"950":{"$value":"#19161a","$description":"Graphite accent — near-black warm substrate."},"$description":"Graphite, the warm-charcoal brand accent scale. Feedback colors keep their own scales."},"mauve":{"50":{"$value":"#fff0f6","$description":"Mauve tint, faintest step."},"100":{"$value":"#f4e2ea","$description":"Mauve step 100, lightness-matched to graphite 100."},"200":{"$value":"#e1cad4","$description":"Mauve step 200, lightness-matched to graphite 200."},"300":{"$value":"#c0a4b1","$description":"Mauve step 300, lightness-matched to graphite 300."},"400":{"$value":"#9d7b8a","$description":"Mauve step 400, lightness-matched to graphite 400."},"500":{"$value":"#734b5e","$description":"Mauve anchor (#734B5E). Reserved; not mapped to any semantic token yet."},"600":{"$value":"#674254","$description":"Mauve step 600, lightness-matched to graphite 600."},"700":{"$value":"#523141","$description":"Mauve step 700, lightness-matched to graphite 700."},"800":{"$value":"#432634","$description":"Mauve step 800, lightness-matched to graphite 800."},"900":{"$value":"#361d29","$description":"Mauve step 900, lightness-matched to graphite 900."},"950":{"$value":"#240f1a","$description":"Mauve, near-black substrate."},"$description":"Mauve, a reserved secondary scale lightness-matched to graphite. Defined for exploration; no semantic token uses it yet."},"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":["Plus Jakarta Sans","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Self-hosted Plus Jakarta Sans (OFL) body typeface; falls back to system-ui sans-serif stack."},"display":{"$value":["Plus Jakarta Sans","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","sans-serif"],"$description":"Display face: Plus Jakarta Sans Bold (OFL), bound to the display and title composites."},"mono":{"$value":["IBM Plex Mono","Courier New","monospace"],"$description":"Monospace face: IBM Plex 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":{"$value":[0.34,1.56,0.64,1],"$description":"Spring response defined by stiffness, damping, and mass parameters.","$extensions":{"com.hirobius.hds":{"$type":"spring","$value":{"type":"spring","stiffness":300,"damping":20,"mass":1},"bezierSource":"The cubicBezier is easeOutBack (easings.net), chosen as a stand-in for the spring, not fitted to it: both overshoot once, the curve by about 10% and spring(300, 20, 1) by about 11%."}}}},"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"}}}}`), oa = /* @__PURE__ */ JSON.parse(`{"motion":{"$type":"transition","$extensions":{"com.hirobius.hds":{"$type":"motion"}},"productive":{"$value":{"duration":"{primitive.duration.short}","delay":{"value":0,"unit":"ms"},"timingFunction":"{primitive.easing.decelerate}"},"$description":"For micro-interactions and status changes. No deformation."},"expressive":{"$value":{"duration":"{primitive.duration.medium}","delay":{"value":0,"unit":"ms"},"timingFunction":"{primitive.easing.elastic}"},"$description":"For teaching moments and significant UI entries. Includes physics-based squish."},"spatial":{"$value":{"duration":"{primitive.duration.long}","delay":{"value":0,"unit":"ms"},"timingFunction":"{primitive.easing.emphasized}"},"$description":"For elements traveling long distances across the viewport."},"exit":{"$value":{"duration":"{primitive.duration.instant}","delay":{"value":0,"unit":"ms"},"timingFunction":"{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.graphite.700}","$description":"Accent fill, warm graphite. Dark in light mode, light warm-grey in dark mode; pair with content.onAccent.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.700}","Dark":"{primitive.color.graphite.200}"}}}},"accentSubtle":{"$value":"{primitive.color.graphite.50}","$description":"Faint accent tint for hover states or highlights.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.50}","Dark":"{primitive.color.graphite.800}"}}}},"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.graphite.700}","$description":"Accent-intent text/icon color — graphite, legible on page and card surfaces. Pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.700}","Dark":"{primitive.color.graphite.300}"}}}},"onAccent":{"$value":"{primitive.color.neutral.50}","$description":"Text and icons on accent fills: near-white in light mode, dark graphite in dark mode.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.neutral.50}","Dark":"{primitive.color.graphite.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.graphite.700}","$description":"Accent border — graphite, dark enough to read as a boundary on page and card surfaces.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.700}","Dark":"{primitive.color.graphite.300}"}}}},"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.graphite.700}","$description":"Default accent fill for interactive elements at rest — warm graphite. Inverts per theme; pair with content.onAccent.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.700}","Dark":"{primitive.color.graphite.200}"}}}},"hover":{"$value":"{primitive.color.graphite.800}","$description":"Accent fill on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.800}","Dark":"{primitive.color.graphite.300}"}}}},"pressed":{"$value":"{primitive.color.graphite.900}","$description":"Accent fill during active press.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.900}","Dark":"{primitive.color.graphite.400}"}}}},"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.graphite.700}","$description":"Accent-intent text/icon color on neutral surfaces (graphite) — pair with underline/weight for link affordance.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.700}","Dark":"{primitive.color.graphite.300}"}}}},"contentHover":{"$value":"{primitive.color.graphite.800}","$description":"Accent content color on pointer hover.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.800}","Dark":"{primitive.color.graphite.200}"}}}},"subtle":{"$value":"{primitive.color.graphite.50}","$description":"Low-emphasis accent tint for hover backgrounds and selection highlights.","$extensions":{"com.figma.variables":{"modes":{"Light":"{primitive.color.graphite.50}","Dark":"{primitive.color.graphite.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":{"$extensions":{"com.hirobius.hds":{"$type":"elevation"}},"flat":{"$description":"Flat surface (no shadow, hairline border) for embedded panels.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.page}","shadow":null,"border":"{semantic.color.border.subtle}"}}}},"raised":{"$description":"Resting card / panel elevation.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.subtle}","border":null}}}},"floating":{"$description":"Hover, menu, and popover elevation.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.raised}","shadow":"{semantic.shadow.floating}","border":null}}}},"overlay":{"$description":"Modal, dialog, and drawer elevation.","$extensions":{"com.hirobius.hds":{"$value":{"surface":"{semantic.color.surface.overlay}","shadow":"{semantic.shadow.overlay}","border":null}}}}},"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."}}}`), sa = { 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: "number", $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.disabled}", $description: "Disabled primary button text color." }, bgDisabled: { $type: "color", $value: "{semantic.color.surface.muted}", $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." } } } }, la = { $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." } }, ca = {
|
|
3147
3148
|
$schema: aa,
|
|
3148
3149
|
$description: ra,
|
|
3149
3150
|
primitive: na,
|
|
@@ -3164,21 +3165,21 @@ export {
|
|
|
3164
3165
|
ka as Callout,
|
|
3165
3166
|
vr as Card,
|
|
3166
3167
|
gr as CardBody,
|
|
3167
|
-
|
|
3168
|
-
|
|
3168
|
+
hr as CardDescription,
|
|
3169
|
+
fr as CardFooter,
|
|
3169
3170
|
br as CardHeader,
|
|
3170
3171
|
$r as CardMetric,
|
|
3171
3172
|
yr as CardProgress,
|
|
3172
3173
|
xr as CardTitle,
|
|
3173
|
-
|
|
3174
|
+
Ma as Checkbox,
|
|
3174
3175
|
nr as Combobox,
|
|
3175
3176
|
wr as Container,
|
|
3176
3177
|
Ca as Dialog,
|
|
3177
3178
|
Tt as DialogClose,
|
|
3178
|
-
|
|
3179
|
-
|
|
3179
|
+
Rt as DialogContent,
|
|
3180
|
+
It as DialogDescription,
|
|
3180
3181
|
Lt as DialogFooter,
|
|
3181
|
-
|
|
3182
|
+
Pt as DialogHeader,
|
|
3182
3183
|
Ke as DialogOverlay,
|
|
3183
3184
|
Je as DialogPortal,
|
|
3184
3185
|
Vt as DialogTitle,
|
|
@@ -3190,8 +3191,8 @@ export {
|
|
|
3190
3191
|
Sr as Grid,
|
|
3191
3192
|
Tr as HdsRouterProvider,
|
|
3192
3193
|
Nr as HdsThemeProvider,
|
|
3193
|
-
|
|
3194
|
-
|
|
3194
|
+
M as Icon,
|
|
3195
|
+
Pa as InlineCode,
|
|
3195
3196
|
La as InlineLink,
|
|
3196
3197
|
Va as Input,
|
|
3197
3198
|
ja as Kbd,
|
|
@@ -3201,14 +3202,14 @@ export {
|
|
|
3201
3202
|
Qa as Pin,
|
|
3202
3203
|
ke as Popover,
|
|
3203
3204
|
Ba as Progress,
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3205
|
+
Aa as Radio,
|
|
3206
|
+
Ga as SegmentedControl,
|
|
3207
|
+
_a as Select,
|
|
3207
3208
|
Ka as Sidebar,
|
|
3208
3209
|
Wa as Skeleton,
|
|
3209
3210
|
Ea as Slider,
|
|
3210
3211
|
Fa as Spinner,
|
|
3211
|
-
|
|
3212
|
+
Ie as Stack,
|
|
3212
3213
|
Na as Stat,
|
|
3213
3214
|
za as StatusListItem,
|
|
3214
3215
|
gt as Surface,
|
|
@@ -3218,13 +3219,13 @@ export {
|
|
|
3218
3219
|
ar as TabsContent,
|
|
3219
3220
|
tr as TabsList,
|
|
3220
3221
|
ir as TabsTrigger,
|
|
3221
|
-
|
|
3222
|
+
Oa as Tag,
|
|
3222
3223
|
Ue as Text,
|
|
3223
|
-
|
|
3224
|
+
Ia as Textarea,
|
|
3224
3225
|
Ua as Timestamp,
|
|
3225
3226
|
cr as ToastProvider,
|
|
3226
3227
|
Ha as Toggle,
|
|
3227
|
-
|
|
3228
|
+
Ra as Tooltip,
|
|
3228
3229
|
qa as VisuallyHidden,
|
|
3229
3230
|
d as cn,
|
|
3230
3231
|
D as hds,
|