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