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