@goliapkg/gds 1.6.1 → 2.0.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/dist/{gesture-irjS0hVM.js → gesture-I79dlTuS.js} +1 -1
- package/dist/{gesture-irjS0hVM.js.map → gesture-I79dlTuS.js.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -26
- package/dist/l0-tokens/color-derive.d.ts +4 -0
- package/dist/l0-tokens/color-derive.d.ts.map +1 -1
- package/dist/l0-tokens/index.js +1 -1
- package/dist/l0-tokens/motion-system.d.ts +1 -0
- package/dist/l0-tokens/motion-system.d.ts.map +1 -1
- package/dist/l0-tokens/shadow-system.d.ts.map +1 -1
- package/dist/l1-systems/index.d.ts +2 -2
- package/dist/l1-systems/index.d.ts.map +1 -1
- package/dist/l1-systems/index.js +9 -9
- package/dist/l1-systems/theme.d.ts +28 -0
- package/dist/l1-systems/theme.d.ts.map +1 -1
- package/dist/l2-primitives/focus-ring.d.ts +9 -3
- package/dist/l2-primitives/focus-ring.d.ts.map +1 -1
- package/dist/l2-primitives/glow-effect.d.ts +8 -2
- package/dist/l2-primitives/glow-effect.d.ts.map +1 -1
- package/dist/l2-primitives/gradient-border.d.ts +8 -2
- package/dist/l2-primitives/gradient-border.d.ts.map +1 -1
- package/dist/l2-primitives/index.js +2 -2
- package/dist/l2-primitives/input.d.ts +16 -0
- package/dist/l2-primitives/input.d.ts.map +1 -1
- package/dist/l2-primitives/loading.d.ts +21 -6
- package/dist/l2-primitives/loading.d.ts.map +1 -1
- package/dist/l2-primitives/truncate.d.ts +8 -2
- package/dist/l2-primitives/truncate.d.ts.map +1 -1
- package/dist/{l2-primitives-Le0006ck.js → l2-primitives-DdQHMJRE.js} +57 -40
- package/dist/l2-primitives-DdQHMJRE.js.map +1 -0
- package/dist/l3-atoms/glow-dot.d.ts +4 -0
- package/dist/l3-atoms/glow-dot.d.ts.map +1 -1
- package/dist/l3-atoms/index.js +6 -6
- package/dist/{l3-atoms-LtIFAn9Y.js → l3-atoms-BGwlQvjl.js} +152 -189
- package/dist/l3-atoms-BGwlQvjl.js.map +1 -0
- package/dist/l4-molecules/accordion.d.ts.map +1 -1
- package/dist/l4-molecules/card.d.ts +9 -6
- package/dist/l4-molecules/card.d.ts.map +1 -1
- package/dist/l4-molecules/combobox-list.d.ts +4 -1
- package/dist/l4-molecules/combobox-list.d.ts.map +1 -1
- package/dist/l4-molecules/combobox.d.ts +5 -0
- package/dist/l4-molecules/combobox.d.ts.map +1 -1
- package/dist/l4-molecules/email-composer-field.d.ts +38 -0
- package/dist/l4-molecules/email-composer-field.d.ts.map +1 -0
- package/dist/l4-molecules/index.d.ts +6 -0
- package/dist/l4-molecules/index.d.ts.map +1 -1
- package/dist/l4-molecules/index.js +4 -4
- package/dist/l4-molecules/tab-group.d.ts +5 -1
- package/dist/l4-molecules/tab-group.d.ts.map +1 -1
- package/dist/l4-molecules/tabs.d.ts +4 -1
- package/dist/l4-molecules/tabs.d.ts.map +1 -1
- package/dist/l4-molecules/toast-provider.d.ts +10 -0
- package/dist/l4-molecules/toast-provider.d.ts.map +1 -0
- package/dist/l4-molecules/toast-store.d.ts +42 -0
- package/dist/l4-molecules/toast-store.d.ts.map +1 -0
- package/dist/{l4-molecules-Bnt38HxY.js → l4-molecules-HRbUopGS.js} +1400 -1211
- package/dist/l4-molecules-HRbUopGS.js.map +1 -0
- package/dist/l5-organisms/command-palette-list.d.ts +3 -1
- package/dist/l5-organisms/command-palette-list.d.ts.map +1 -1
- package/dist/l5-organisms/command-palette.d.ts +10 -1
- package/dist/l5-organisms/command-palette.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table-toolbar.d.ts +4 -1
- package/dist/l5-organisms/data-table/data-table-toolbar.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table-types.d.ts +7 -1
- package/dist/l5-organisms/data-table/data-table-types.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table.d.ts.map +1 -1
- package/dist/l5-organisms/email-composer.d.ts +118 -0
- package/dist/l5-organisms/email-composer.d.ts.map +1 -0
- package/dist/l5-organisms/email-thread.d.ts +85 -0
- package/dist/l5-organisms/email-thread.d.ts.map +1 -0
- package/dist/l5-organisms/index.d.ts +6 -0
- package/dist/l5-organisms/index.d.ts.map +1 -1
- package/dist/l5-organisms/index.js +2 -2
- package/dist/l5-organisms/markdown-preview.d.ts +6 -0
- package/dist/l5-organisms/markdown-preview.d.ts.map +1 -1
- package/dist/l5-organisms/rich-text-editor.d.ts +56 -0
- package/dist/l5-organisms/rich-text-editor.d.ts.map +1 -0
- package/dist/{l5-organisms-C7LXv0jT.js → l5-organisms-BA62NsFK.js} +2474 -1269
- package/dist/l5-organisms-BA62NsFK.js.map +1 -0
- package/dist/l6-charts/index.js +1 -1
- package/dist/{l6-charts-DPMj1m0E.js → l6-charts-DzRRfX8J.js} +1 -1
- package/dist/{l6-charts-DPMj1m0E.js.map → l6-charts-DzRRfX8J.js.map} +1 -1
- package/dist/l7-patterns/admin-layout.d.ts +6 -0
- package/dist/l7-patterns/admin-layout.d.ts.map +1 -1
- package/dist/l7-patterns/app-shell.d.ts +44 -0
- package/dist/l7-patterns/app-shell.d.ts.map +1 -0
- package/dist/l7-patterns/inbox-layout.d.ts +50 -3
- package/dist/l7-patterns/inbox-layout.d.ts.map +1 -1
- package/dist/l7-patterns/index.d.ts +6 -2
- package/dist/l7-patterns/index.d.ts.map +1 -1
- package/dist/l7-patterns/index.js +2 -2
- package/dist/l7-patterns/panel-group.d.ts +42 -0
- package/dist/l7-patterns/panel-group.d.ts.map +1 -0
- package/dist/l7-patterns/settings-layout.d.ts +6 -1
- package/dist/l7-patterns/settings-layout.d.ts.map +1 -1
- package/dist/l7-patterns/sidebar.d.ts +14 -0
- package/dist/l7-patterns/sidebar.d.ts.map +1 -1
- package/dist/{l7-patterns-8fc4b3eE.js → l7-patterns-Dn7X2pQC.js} +847 -544
- package/dist/l7-patterns-Dn7X2pQC.js.map +1 -0
- package/dist/loading-dots-Dz79qOGY.js +62 -0
- package/dist/loading-dots-Dz79qOGY.js.map +1 -0
- package/dist/sanitize-BF45M9xp.js +33 -0
- package/dist/sanitize-BF45M9xp.js.map +1 -0
- package/dist/{scales-C80FTPsL.js → scales-DlVrSOA2.js} +103 -96
- package/dist/scales-DlVrSOA2.js.map +1 -0
- package/dist/spinner-DyrwL4JQ.js +201 -0
- package/dist/spinner-DyrwL4JQ.js.map +1 -0
- package/dist/stepper-DKJuH1ws.js +199 -0
- package/dist/stepper-DKJuH1ws.js.map +1 -0
- package/dist/theme.css +1 -0
- package/dist/toast-DTuqMdrj.js +614 -0
- package/dist/toast-DTuqMdrj.js.map +1 -0
- package/dist/tokens.css +5 -0
- package/dist/{use-theme-C0aWVw70.js → use-theme-BI1t0nvJ.js} +59 -34
- package/dist/use-theme-BI1t0nvJ.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -2
- package/dist/utils/sanitize.d.ts +7 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/tiptap.d.ts +12 -0
- package/dist/utils/tiptap.d.ts.map +1 -0
- package/package.json +42 -3
- package/dist/l2-primitives-Le0006ck.js.map +0 -1
- package/dist/l3-atoms-LtIFAn9Y.js.map +0 -1
- package/dist/l4-molecules-Bnt38HxY.js.map +0 -1
- package/dist/l5-organisms-C7LXv0jT.js.map +0 -1
- package/dist/l7-patterns-8fc4b3eE.js.map +0 -1
- package/dist/loading-dots-fB4X_Zh0.js +0 -24
- package/dist/loading-dots-fB4X_Zh0.js.map +0 -1
- package/dist/scales-C80FTPsL.js.map +0 -1
- package/dist/spinner-N7UNjdsQ.js +0 -144
- package/dist/spinner-N7UNjdsQ.js.map +0 -1
- package/dist/stepper-DWJfv7TA.js +0 -140
- package/dist/stepper-DWJfv7TA.js.map +0 -1
- package/dist/toast-DN5xANLM.js +0 -442
- package/dist/toast-DN5xANLM.js.map +0 -1
- package/dist/use-theme-C0aWVw70.js.map +0 -1
|
@@ -144,17 +144,21 @@ var d = n("inline-flex items-center gds-gap-xs underline-offset-2 transition-col
|
|
|
144
144
|
})
|
|
145
145
|
]
|
|
146
146
|
});
|
|
147
|
-
}), x = o(function({ children: t, color: n = "var(--gds-accent)", width: r = 2, offset: i = 2, className: a },
|
|
148
|
-
let
|
|
147
|
+
}), x = o(function({ children: t, color: n = "var(--gds-accent)", width: r = 2, offset: i = 2, className: a, style: o, ...s }, c) {
|
|
148
|
+
let u = {
|
|
149
149
|
"--focus-ring-color": n,
|
|
150
150
|
"--focus-ring-width": `${r}px`,
|
|
151
151
|
"--focus-ring-offset": `${i}px`
|
|
152
152
|
};
|
|
153
153
|
return /* @__PURE__ */ l("span", {
|
|
154
|
-
|
|
154
|
+
...s,
|
|
155
|
+
ref: c,
|
|
155
156
|
className: e("relative inline-flex [&:focus-within]:outline [&:focus-within]:outline-[length:var(--focus-ring-width)] [&:focus-within]:outline-[color:var(--focus-ring-color)] [&:focus-within]:outline-offset-[var(--focus-ring-offset)]", a),
|
|
156
157
|
"data-component": "focus-ring",
|
|
157
|
-
style:
|
|
158
|
+
style: {
|
|
159
|
+
...o,
|
|
160
|
+
...u
|
|
161
|
+
},
|
|
158
162
|
children: t
|
|
159
163
|
});
|
|
160
164
|
}), S = {
|
|
@@ -177,32 +181,36 @@ var d = n("inline-flex items-center gds-gap-xs underline-offset-2 transition-col
|
|
|
177
181
|
function C(e, t) {
|
|
178
182
|
return `${`0 0 ${t.blur}px ${t.spread}px color-mix(in srgb, ${e} ${t.opacity}%, transparent)`}, ${`0 0 ${Math.round(t.blur * .4)}px ${Math.round(t.spread * .5)}px color-mix(in srgb, ${e} ${Math.round(t.opacity * 1.5)}%, transparent)`}`;
|
|
179
183
|
}
|
|
180
|
-
var w = o(function({ children: t, className: n, color: r = "var(--gds-accent)", intensity: i = "default", radius: a },
|
|
181
|
-
let
|
|
184
|
+
var w = o(function({ children: t, className: n, color: r = "var(--gds-accent)", intensity: i = "default", radius: a, style: o, ...s }, c) {
|
|
185
|
+
let u = S[i];
|
|
182
186
|
return /* @__PURE__ */ l("div", {
|
|
183
|
-
|
|
187
|
+
...s,
|
|
188
|
+
ref: c,
|
|
184
189
|
"data-component": "glow-effect",
|
|
185
190
|
className: e("relative", n),
|
|
186
191
|
style: {
|
|
192
|
+
...o,
|
|
187
193
|
borderRadius: a === void 0 ? void 0 : `${a}px`,
|
|
188
|
-
boxShadow: C(r,
|
|
194
|
+
boxShadow: C(r, u)
|
|
189
195
|
},
|
|
190
196
|
children: t
|
|
191
197
|
});
|
|
192
|
-
}), T = o(function({ children: t, gradient: n = "linear-gradient(135deg, var(--gds-accent), var(--gds-success))", width: r = 1, radius: i = 12, className: a },
|
|
193
|
-
let
|
|
198
|
+
}), T = o(function({ children: t, gradient: n = "linear-gradient(135deg, var(--gds-accent), var(--gds-success))", width: r = 1, radius: i = 12, className: a, style: o, ...s }, c) {
|
|
199
|
+
let u = Math.max(0, i - r);
|
|
194
200
|
return /* @__PURE__ */ l("div", {
|
|
195
|
-
|
|
201
|
+
...s,
|
|
202
|
+
ref: c,
|
|
196
203
|
"data-component": "gradient-border",
|
|
197
204
|
className: e(a),
|
|
198
205
|
style: {
|
|
206
|
+
...o,
|
|
199
207
|
background: n,
|
|
200
208
|
padding: r,
|
|
201
209
|
borderRadius: i
|
|
202
210
|
},
|
|
203
211
|
children: /* @__PURE__ */ l("div", {
|
|
204
212
|
className: "bg-bg",
|
|
205
|
-
style: { borderRadius:
|
|
213
|
+
style: { borderRadius: u },
|
|
206
214
|
children: t
|
|
207
215
|
})
|
|
208
216
|
});
|
|
@@ -241,19 +249,20 @@ var w = o(function({ children: t, className: n, color: r = "var(--gds-accent)",
|
|
|
241
249
|
lg: "h-6 w-6 border-[3px]",
|
|
242
250
|
sm: "h-3 w-3 border-[1.5px]"
|
|
243
251
|
};
|
|
244
|
-
o(function({ className: t, size: n = "default" },
|
|
245
|
-
let
|
|
252
|
+
o(function({ className: t, size: n = "default", ...r }, i) {
|
|
253
|
+
let a = E[n];
|
|
246
254
|
return /* @__PURE__ */ l("div", {
|
|
247
|
-
|
|
255
|
+
...r,
|
|
256
|
+
className: e("inline-flex items-center", a.container, t),
|
|
248
257
|
"data-component": "loading-dots",
|
|
249
|
-
ref:
|
|
258
|
+
ref: i,
|
|
250
259
|
role: "status",
|
|
251
260
|
children: [
|
|
252
261
|
0,
|
|
253
262
|
1,
|
|
254
263
|
2
|
|
255
264
|
].map((t) => /* @__PURE__ */ l("span", {
|
|
256
|
-
className: e("rounded-full bg-accent",
|
|
265
|
+
className: e("rounded-full bg-accent", a.dot),
|
|
257
266
|
style: {
|
|
258
267
|
animation: "loading-dots 1.4s infinite ease-in-out both",
|
|
259
268
|
animationDelay: `${t * .16}s`
|
|
@@ -261,12 +270,13 @@ o(function({ className: t, size: n = "default" }, r) {
|
|
|
261
270
|
}, t))
|
|
262
271
|
});
|
|
263
272
|
});
|
|
264
|
-
var A = o(function({ className: t, size: n = "default" },
|
|
265
|
-
let
|
|
273
|
+
var A = o(function({ className: t, size: n = "default", ...r }, i) {
|
|
274
|
+
let a = D[n];
|
|
266
275
|
return /* @__PURE__ */ l("div", {
|
|
267
|
-
|
|
276
|
+
...r,
|
|
277
|
+
className: e("inline-flex items-center", a.container, t),
|
|
268
278
|
"data-component": "loading-bars",
|
|
269
|
-
ref:
|
|
279
|
+
ref: i,
|
|
270
280
|
role: "status",
|
|
271
281
|
children: [
|
|
272
282
|
0,
|
|
@@ -275,38 +285,41 @@ var A = o(function({ className: t, size: n = "default" }, r) {
|
|
|
275
285
|
3,
|
|
276
286
|
4
|
|
277
287
|
].map((t) => /* @__PURE__ */ l("span", {
|
|
278
|
-
className: e("rounded-sm bg-accent",
|
|
288
|
+
className: e("rounded-sm bg-accent", a.bar),
|
|
279
289
|
style: {
|
|
280
290
|
animation: "loading-bars 1.2s infinite ease-in-out",
|
|
281
291
|
animationDelay: `${t * .1}s`
|
|
282
292
|
}
|
|
283
293
|
}, t))
|
|
284
294
|
});
|
|
285
|
-
}), j = o(function({ className: t, size: n = "default" },
|
|
295
|
+
}), j = o(function({ className: t, size: n = "default", ...r }, i) {
|
|
286
296
|
return /* @__PURE__ */ l("div", {
|
|
297
|
+
...r,
|
|
287
298
|
className: e("inline-flex items-center justify-center", t),
|
|
288
299
|
"data-component": "loading-pulse",
|
|
289
|
-
ref:
|
|
300
|
+
ref: i,
|
|
290
301
|
role: "status",
|
|
291
302
|
children: /* @__PURE__ */ l("span", {
|
|
292
303
|
className: e("rounded-full bg-accent", O[n]),
|
|
293
304
|
style: { animation: "loading-pulse 2s infinite ease-in-out" }
|
|
294
305
|
})
|
|
295
306
|
});
|
|
296
|
-
}), M = o(function({ className: t, size: n = "default" },
|
|
307
|
+
}), M = o(function({ className: t, size: n = "default", ...r }, i) {
|
|
297
308
|
return /* @__PURE__ */ l("div", {
|
|
309
|
+
...r,
|
|
298
310
|
className: e("inline-flex items-center justify-center", t),
|
|
299
311
|
"data-component": "loading-ring",
|
|
300
|
-
ref:
|
|
312
|
+
ref: i,
|
|
301
313
|
role: "status",
|
|
302
314
|
children: /* @__PURE__ */ l("span", { className: e("animate-spin rounded-full border-accent border-t-transparent", k[n]) })
|
|
303
315
|
});
|
|
304
|
-
}), N = o(function({ className: t, size: n = "default" },
|
|
305
|
-
let
|
|
316
|
+
}), N = o(function({ className: t, size: n = "default", ...r }, i) {
|
|
317
|
+
let a = E[n];
|
|
306
318
|
return /* @__PURE__ */ l("div", {
|
|
307
|
-
|
|
319
|
+
...r,
|
|
320
|
+
className: e("inline-flex items-end", a.container, t),
|
|
308
321
|
"data-component": "loading-wave",
|
|
309
|
-
ref:
|
|
322
|
+
ref: i,
|
|
310
323
|
role: "status",
|
|
311
324
|
children: [
|
|
312
325
|
0,
|
|
@@ -315,7 +328,7 @@ var A = o(function({ className: t, size: n = "default" }, r) {
|
|
|
315
328
|
3,
|
|
316
329
|
4
|
|
317
330
|
].map((t) => /* @__PURE__ */ l("span", {
|
|
318
|
-
className: e("rounded-full bg-fg-muted",
|
|
331
|
+
className: e("rounded-full bg-fg-muted", a.dot),
|
|
319
332
|
style: {
|
|
320
333
|
animation: "loading-wave 1.2s infinite ease-in-out",
|
|
321
334
|
animationDelay: `${t * .1}s`
|
|
@@ -491,22 +504,26 @@ var R = o(function({ className: n, disabled: r, error: i, glass: a, inputSize: o
|
|
|
491
504
|
children: c
|
|
492
505
|
})]
|
|
493
506
|
});
|
|
494
|
-
}), G = o(function({ children: t, lines: n = 1, expanded: r = !1, onToggle: i, className: a },
|
|
495
|
-
let
|
|
507
|
+
}), G = o(function({ children: t, lines: n = 1, expanded: r = !1, onToggle: i, className: a, style: o, ...s }, c) {
|
|
508
|
+
let u = !r, d = n === 1, f = i !== void 0, p = !d && u ? {
|
|
496
509
|
display: "-webkit-box",
|
|
497
510
|
WebkitLineClamp: n,
|
|
498
511
|
WebkitBoxOrient: "vertical",
|
|
499
512
|
overflow: "hidden"
|
|
500
513
|
} : void 0;
|
|
501
514
|
return /* @__PURE__ */ l("div", {
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
515
|
+
...s,
|
|
516
|
+
ref: c,
|
|
517
|
+
className: e(d && u && "truncate", f && "cursor-pointer", a),
|
|
518
|
+
style: {
|
|
519
|
+
...o,
|
|
520
|
+
...p
|
|
521
|
+
},
|
|
522
|
+
onClick: f ? i : void 0,
|
|
506
523
|
"data-component": "truncate",
|
|
507
524
|
"data-expanded": r ? "true" : void 0,
|
|
508
|
-
role:
|
|
509
|
-
tabIndex:
|
|
525
|
+
role: f ? "button" : void 0,
|
|
526
|
+
tabIndex: f ? 0 : void 0,
|
|
510
527
|
children: t
|
|
511
528
|
});
|
|
512
529
|
}), K = o(function({ as: t = "span", children: n, className: i }, a) {
|
|
@@ -520,4 +537,4 @@ var R = o(function({ className: n, disabled: r, error: i, glass: a, inputSize: o
|
|
|
520
537
|
//#endregion
|
|
521
538
|
export { m as C, h as S, d as T, b as _, H as a, _ as b, R as c, j as d, M as f, x as g, w as h, U as i, I as l, T as m, G as n, V as o, N as p, W as r, B as s, K as t, A as u, y as v, f as w, g as x, v as y };
|
|
522
539
|
|
|
523
|
-
//# sourceMappingURL=l2-primitives-
|
|
540
|
+
//# sourceMappingURL=l2-primitives-DdQHMJRE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l2-primitives-DdQHMJRE.js","names":[],"sources":["../src/l2-primitives/anchor.tsx","../src/l2-primitives/badge-dot.tsx","../src/l2-primitives/container.tsx","../src/l2-primitives/divider.tsx","../src/l2-primitives/dot.tsx","../src/l2-primitives/focus-ring.tsx","../src/l2-primitives/glow-effect.tsx","../src/l2-primitives/gradient-border.tsx","../src/l2-primitives/loading.tsx","../src/l2-primitives/number-stepper.tsx","../src/l2-primitives/number-input.tsx","../src/l2-primitives/screen-overlay.tsx","../src/l2-primitives/scroll-area.tsx","../src/l2-primitives/shimmer.tsx","../src/l2-primitives/skip-nav.tsx","../src/l2-primitives/slider.tsx","../src/l2-primitives/truncate.tsx","../src/l2-primitives/visually-hidden.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { focusCls } from '../utils/a11y'\nimport { cx } from '../utils/cx'\nimport type { VariantProps } from '../utils/types'\n\nconst anchorVariants = cva(\n 'inline-flex items-center gds-gap-xs underline-offset-2 transition-colors hover:underline ' +\n focusCls,\n {\n defaultVariants: {\n variant: 'default',\n },\n variants: {\n variant: {\n default: 'text-accent hover:text-accent/80',\n muted: 'text-fg-muted hover:text-fg',\n },\n },\n },\n)\n\ntype AnchorProps = React.AnchorHTMLAttributes<HTMLAnchorElement> &\n VariantProps<typeof anchorVariants> & {\n external?: boolean\n externalIcon?: ReactNode\n }\n\nexport const Anchor = forwardRef<HTMLAnchorElement, AnchorProps>(\n function Anchor(\n { children, className, external = false, externalIcon, variant, ...props },\n ref,\n ) {\n return (\n <a\n className={cx(anchorVariants({ variant }), className)}\n data-component=\"anchor\"\n ref={ref}\n {...(external && {\n rel: 'noopener noreferrer',\n target: '_blank',\n })}\n {...props}\n >\n {children}\n {external && externalIcon !== undefined && (\n <span className=\"gds-icon-child-xs\">{externalIcon}</span>\n )}\n </a>\n )\n },\n)\n\nexport { anchorVariants }\nexport type { AnchorProps }\n","import type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\nconst colorMap = {\n accent: 'bg-accent',\n danger: 'bg-danger',\n success: 'bg-success',\n} as const\n\ntype BadgeDotProps = React.HTMLAttributes<HTMLDivElement> & {\n children: ReactNode\n color?: 'accent' | 'danger' | 'success'\n show?: boolean\n}\n\nexport const BadgeDot = forwardRef<HTMLDivElement, BadgeDotProps>(\n function BadgeDot({ children, className, color = 'danger', show = true, ...props }, ref) {\n return (\n <div\n className={cx('relative inline-flex', className)}\n data-component=\"badge-dot\"\n ref={ref}\n {...props}\n >\n {children}\n {show && (\n <span\n className={cx('absolute -right-0.5 -top-0.5 h-1.5 w-1.5 rounded-full', colorMap[color])}\n />\n )}\n </div>\n )\n },\n)\n\nexport type { BadgeDotProps }\n","// container — responsive max-width wrapper with size variants\nimport { cva } from 'class-variance-authority'\nimport type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\nimport type { VariantProps } from '../utils/types'\n\nconst containerVariants = cva('mx-auto w-full px-4', {\n defaultVariants: { size: 'default' },\n variants: {\n size: {\n default: 'max-w-screen-md',\n full: 'max-w-full',\n lg: 'max-w-screen-lg',\n sm: 'max-w-screen-sm',\n xl: 'max-w-screen-xl',\n },\n },\n})\n\ntype ContainerProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof containerVariants> & {\n children: ReactNode\n }\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\n function Container({ children, className, size, ...props }, ref) {\n return (\n <div\n className={cx(containerVariants({ size }), className)}\n data-component=\"container\"\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n },\n)\n\nexport { containerVariants }\nexport type { ContainerProps }\n","import { cva } from 'class-variance-authority'\nimport type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\nimport type { VariantProps } from '../utils/types'\n\nconst dividerVariants = cva('', {\n variants: {\n variant: {\n solid: 'border-solid',\n dashed: 'border-dashed',\n dotted: 'border-dotted',\n },\n },\n defaultVariants: { variant: 'solid' },\n})\n\ntype DividerProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof dividerVariants> & {\n icon?: ReactNode\n label?: string\n orientation?: 'horizontal' | 'vertical'\n}\n\nconst Divider = forwardRef<HTMLDivElement, DividerProps>(\n function Divider({ className, icon, label, orientation = 'horizontal', variant = 'solid', ...props }, ref) {\n const variantCls = dividerVariants({ variant })\n\n if (orientation === 'vertical') {\n return (\n <div\n className={cx('inline-flex h-full flex-col items-center', (icon !== undefined || label !== undefined) && 'gds-gap-sm', className)}\n data-component=\"divider\"\n ref={ref}\n {...props}\n >\n {icon !== undefined || label !== undefined ? (\n <>\n <div className={cx('flex-1 border-l border-border', variantCls)} />\n {icon !== undefined && <span className=\"shrink-0 text-fg-muted/50 gds-icon-child-sm\">{icon}</span>}\n {label !== undefined && <span className=\"shrink-0 text-fg-muted/50 gds-text-caption\">{label}</span>}\n <div className={cx('flex-1 border-l border-border', variantCls)} />\n </>\n ) : (\n <div className={cx('h-full border-l border-border', variantCls)} />\n )}\n </div>\n )\n }\n\n if (icon !== undefined || label !== undefined) {\n return (\n <div\n className={cx('flex items-center gds-gap-sm', className)}\n data-component=\"divider\"\n ref={ref}\n {...props}\n >\n <div className={cx('flex-1 border-t border-border', variantCls)} />\n {icon !== undefined && <span className=\"shrink-0 text-fg-muted/50 gds-icon-child-sm\">{icon}</span>}\n {label !== undefined && <span className=\"shrink-0 text-fg-muted/50 gds-text-caption select-none\">{label}</span>}\n <div className={cx('flex-1 border-t border-border', variantCls)} />\n </div>\n )\n }\n\n return (\n <div\n className={cx('h-px w-full', variant === 'solid' ? 'bg-border/50' : cx('border-t border-border', variantCls), className)}\n data-component=\"divider\"\n ref={ref}\n {...props}\n />\n )\n },\n)\n\nexport { Divider, dividerVariants }\nexport type { DividerProps }\n","import { cva } from 'class-variance-authority'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\nimport type { VariantProps } from '../utils/types'\n\nconst dotVariants = cva('inline-block shrink-0 gds-radius-badge', {\n defaultVariants: {\n color: 'accent',\n size: 'default',\n },\n variants: {\n color: {\n accent: 'bg-accent',\n danger: 'bg-danger',\n muted: 'bg-fg-muted/30',\n success: 'bg-success',\n warning: 'bg-warning',\n },\n size: {\n default: 'h-2 w-2',\n lg: 'h-3 w-3',\n sm: 'h-1.5 w-1.5',\n },\n },\n})\n\ntype DotProps = React.HTMLAttributes<HTMLSpanElement> &\n VariantProps<typeof dotVariants> & {\n label?: string\n pulse?: boolean\n }\n\nexport const Dot = forwardRef<HTMLSpanElement, DotProps>(\n function Dot({ className, color, label, pulse = false, size, ...props }, ref) {\n return (\n <span\n className={cx('relative inline-flex items-center', label !== undefined && 'gds-gap-sm', className)}\n data-component=\"dot\"\n ref={ref}\n {...props}\n >\n <span className={dotVariants({ color, size })} />\n {pulse && (\n <span\n className={cx(\n 'absolute inset-0 animate-ping gds-radius-badge opacity-40',\n dotVariants({ color, size }),\n )}\n />\n )}\n {label !== undefined && (\n <span className=\"gds-text-label text-fg-muted\">{label}</span>\n )}\n </span>\n )\n },\n)\n\nexport { dotVariants }\nexport type { DotProps }\n","import type { CSSProperties, HTMLAttributes, ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype FocusRingProps = {\n children: ReactNode\n color?: string\n width?: number\n offset?: number\n className?: string\n} & Omit<HTMLAttributes<HTMLSpanElement>, 'children' | 'className'>\n\nconst FocusRing = forwardRef<HTMLSpanElement, FocusRingProps>(function FocusRing(\n { children, color = 'var(--gds-accent)', width = 2, offset = 2, className, style: styleProp, ...props },\n ref,\n) {\n const style: CSSProperties = {\n '--focus-ring-color': color,\n '--focus-ring-width': `${width}px`,\n '--focus-ring-offset': `${offset}px`,\n } as CSSProperties\n\n return (\n <span\n {...props}\n ref={ref}\n className={cx(\n 'relative inline-flex [&:focus-within]:outline [&:focus-within]:outline-[length:var(--focus-ring-width)] [&:focus-within]:outline-[color:var(--focus-ring-color)] [&:focus-within]:outline-offset-[var(--focus-ring-offset)]',\n className,\n )}\n data-component=\"focus-ring\"\n style={{ ...styleProp, ...style }}\n >\n {children}\n </span>\n )\n})\n\nexport { FocusRing }\nexport type { FocusRingProps }\n","// glow-effect — container that adds a colored glow/aura behind its content via box-shadow\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype GlowIntensity = 'sm' | 'default' | 'lg'\n\ntype IntensityConfig = {\n blur: number\n opacity: number\n spread: number\n}\n\nconst intensityMap: Record<GlowIntensity, IntensityConfig> = {\n sm: { blur: 20, opacity: 15, spread: 4 },\n default: { blur: 32, opacity: 18, spread: 8 },\n lg: { blur: 48, opacity: 25, spread: 12 },\n}\n\nfunction buildShadow(color: string, config: IntensityConfig): string {\n const outer = `0 0 ${config.blur}px ${config.spread}px color-mix(in srgb, ${color} ${config.opacity}%, transparent)`\n const innerBlur = Math.round(config.blur * 0.4)\n const innerSpread = Math.round(config.spread * 0.5)\n const innerOpacity = Math.round(config.opacity * 1.5)\n const inner = `0 0 ${innerBlur}px ${innerSpread}px color-mix(in srgb, ${color} ${innerOpacity}%, transparent)`\n return `${outer}, ${inner}`\n}\n\nexport type GlowEffectProps = {\n children: React.ReactNode\n className?: string\n color?: string\n intensity?: GlowIntensity\n radius?: number\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className'>\n\nexport const GlowEffect = forwardRef<HTMLDivElement, GlowEffectProps>(\n function GlowEffect(\n { children, className, color = 'var(--gds-accent)', intensity = 'default', radius, style: styleProp, ...props },\n ref,\n ) {\n const config = intensityMap[intensity]\n return (\n <div\n {...props}\n ref={ref}\n data-component=\"glow-effect\"\n className={cx('relative', className)}\n style={{\n ...styleProp,\n borderRadius: radius !== undefined ? `${radius}px` : undefined,\n boxShadow: buildShadow(color, config),\n }}\n >\n {children}\n </div>\n )\n },\n)\n","// gradient-border — container with a gradient border via background-clip trick\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\nexport type GradientBorderProps = {\n children: React.ReactNode\n gradient?: string\n width?: number\n radius?: number\n className?: string\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className'>\n\nexport const GradientBorder = forwardRef<HTMLDivElement, GradientBorderProps>(\n function GradientBorder(\n {\n children,\n gradient = 'linear-gradient(135deg, var(--gds-accent), var(--gds-success))',\n width = 1,\n radius = 12,\n className,\n style: styleProp,\n ...props\n },\n ref,\n ) {\n const innerRadius = Math.max(0, radius - width)\n\n return (\n <div\n {...props}\n ref={ref}\n data-component=\"gradient-border\"\n className={cx(className)}\n style={{ ...styleProp, background: gradient, padding: width, borderRadius: radius }}\n >\n <div\n className=\"bg-bg\"\n style={{ borderRadius: innerRadius }}\n >\n {children}\n </div>\n </div>\n )\n },\n)\n","// loading — loading indicator variants (dots, bars, pulse, ring, wave)\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype LoadingSize = 'default' | 'lg' | 'sm'\n\ntype LoadingProps = {\n className?: string\n size?: LoadingSize\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'className'>\n\nconst sizeClasses: Record<LoadingSize, { container: string; dot: string }> = {\n default: { container: 'gap-1.5', dot: 'h-2 w-2' },\n lg: { container: 'gap-2', dot: 'h-3 w-3' },\n sm: { container: 'gap-1', dot: 'h-1.5 w-1.5' },\n}\n\nconst barSizeClasses: Record<LoadingSize, { bar: string; container: string }> = {\n default: { bar: 'w-1 h-4', container: 'gap-1 h-4' },\n lg: { bar: 'w-1.5 h-6', container: 'gap-1.5 h-6' },\n sm: { bar: 'w-0.5 h-3', container: 'gap-0.5 h-3' },\n}\n\nconst pulseSizeClasses: Record<LoadingSize, string> = {\n default: 'h-4 w-4',\n lg: 'h-6 w-6',\n sm: 'h-3 w-3',\n}\n\nconst ringSizeClasses: Record<LoadingSize, string> = {\n default: 'h-4 w-4 border-2',\n lg: 'h-6 w-6 border-[3px]',\n sm: 'h-3 w-3 border-[1.5px]',\n}\n\nexport const LoadingDots = forwardRef<HTMLDivElement, LoadingProps>(\n function LoadingDots({ className, size = 'default', ...props }, ref) {\n const s = sizeClasses[size]\n return (\n <div\n {...props}\n className={cx('inline-flex items-center', s.container, className)}\n data-component=\"loading-dots\"\n ref={ref}\n role=\"status\"\n >\n {[0, 1, 2].map((i) => (\n <span\n className={cx('rounded-full bg-accent', s.dot)}\n key={i}\n style={{\n animation: 'loading-dots 1.4s infinite ease-in-out both',\n animationDelay: `${i * 0.16}s`,\n }}\n />\n ))}\n </div>\n )\n },\n)\n\nexport const LoadingBars = forwardRef<HTMLDivElement, LoadingProps>(\n function LoadingBars({ className, size = 'default', ...props }, ref) {\n const s = barSizeClasses[size]\n return (\n <div\n {...props}\n className={cx('inline-flex items-center', s.container, className)}\n data-component=\"loading-bars\"\n ref={ref}\n role=\"status\"\n >\n {[0, 1, 2, 3, 4].map((i) => (\n <span\n className={cx('rounded-sm bg-accent', s.bar)}\n key={i}\n style={{\n animation: 'loading-bars 1.2s infinite ease-in-out',\n animationDelay: `${i * 0.1}s`,\n }}\n />\n ))}\n </div>\n )\n },\n)\n\nexport const LoadingPulse = forwardRef<HTMLDivElement, LoadingProps>(\n function LoadingPulse({ className, size = 'default', ...props }, ref) {\n return (\n <div\n {...props}\n className={cx('inline-flex items-center justify-center', className)}\n data-component=\"loading-pulse\"\n ref={ref}\n role=\"status\"\n >\n <span\n className={cx('rounded-full bg-accent', pulseSizeClasses[size])}\n style={{ animation: 'loading-pulse 2s infinite ease-in-out' }}\n />\n </div>\n )\n },\n)\n\nexport const LoadingRing = forwardRef<HTMLDivElement, LoadingProps>(\n function LoadingRing({ className, size = 'default', ...props }, ref) {\n return (\n <div\n {...props}\n className={cx('inline-flex items-center justify-center', className)}\n data-component=\"loading-ring\"\n ref={ref}\n role=\"status\"\n >\n <span\n className={cx(\n 'animate-spin rounded-full border-accent border-t-transparent',\n ringSizeClasses[size],\n )}\n />\n </div>\n )\n },\n)\n\nexport const LoadingWave = forwardRef<HTMLDivElement, LoadingProps>(\n function LoadingWave({ className, size = 'default', ...props }, ref) {\n const s = sizeClasses[size]\n return (\n <div\n {...props}\n className={cx('inline-flex items-end', s.container, className)}\n data-component=\"loading-wave\"\n ref={ref}\n role=\"status\"\n >\n {[0, 1, 2, 3, 4].map((i) => (\n <span\n className={cx('rounded-full bg-fg-muted', s.dot)}\n key={i}\n style={{\n animation: 'loading-wave 1.2s infinite ease-in-out',\n animationDelay: `${i * 0.1}s`,\n }}\n />\n ))}\n </div>\n )\n },\n)\n\nexport type { LoadingProps, LoadingSize }\n","// number-stepper — increment/decrement buttons for number-input\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype NumberStepperProps = {\n direction: 'decrement' | 'increment'\n disabled?: boolean\n onClick: () => void\n}\n\nconst btnBase =\n 'flex items-center justify-center select-none px-2 text-fg-muted hover:text-fg hover:bg-bg-tertiary transition-colors disabled:cursor-not-allowed disabled:opacity-50'\n\nconst NumberStepper = forwardRef<HTMLButtonElement, NumberStepperProps>(function NumberStepper(\n { direction, disabled, onClick },\n ref,\n) {\n const isDecrement = direction === 'decrement'\n return (\n <button\n ref={ref}\n aria-label={direction}\n className={cx(\n btnBase,\n isDecrement ? 'rounded-l-[inherit] border-r border-border' : 'rounded-r-[inherit] border-l border-border',\n )}\n disabled={disabled}\n onClick={onClick}\n tabIndex={-1}\n type=\"button\"\n >\n {isDecrement ? '-' : '+'}\n </button>\n )\n})\n\nexport { NumberStepper }\nexport type { NumberStepperProps }\n","import { cva } from 'class-variance-authority'\nimport { forwardRef, useCallback } from 'react'\n\nimport { cx } from '../utils/cx'\nimport { glassClass } from '../utils/glass'\nimport type { VariantProps } from '../utils/types'\nimport { NumberStepper } from './number-stepper'\n\nconst numberInputVariants = cva(\n 'flex items-center gds-radius-input border bg-bg text-fg transition-colors ' +\n '[&:has(input:focus-visible)]:ring-2 [&:has(input:focus-visible)]:ring-accent [&:has(input:focus-visible)]:ring-offset-1 [&:has(input:focus-visible)]:ring-offset-bg',\n {\n compoundVariants: [\n {\n error: true,\n className:\n '[&:has(input:focus-visible)]:ring-danger',\n },\n ],\n defaultVariants: {\n error: false,\n inputSize: 'default',\n },\n variants: {\n error: {\n false: 'border-border hover:border-border-strong',\n true: 'border-danger',\n },\n inputSize: {\n default: 'gds-h gds-text-body',\n sm: 'gds-h-sm gds-text-label',\n },\n },\n },\n)\n\ntype NumberInputProps = VariantProps<typeof numberInputVariants> & {\n className?: string\n disabled?: boolean\n glass?: boolean\n max?: number\n min?: number\n onChange: (value: number | null) => void\n placeholder?: string\n prefix?: string\n step?: number\n suffix?: string\n value: number | null\n}\n\nfunction clamp(val: number, min?: number, max?: number): number {\n let result = val\n if (min !== undefined && result < min) {\n result = min\n }\n if (max !== undefined && result > max) {\n result = max\n }\n return result\n}\n\nconst NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n function NumberInput(\n { className, disabled, error, glass, inputSize, max, min, onChange, placeholder, prefix, step = 1, suffix, value },\n ref,\n ) {\n const handleDecrement = useCallback(() => {\n const base = value ?? 0\n onChange(clamp(base - step, min, max))\n }, [value, step, min, max, onChange])\n\n const handleIncrement = useCallback(() => {\n const base = value ?? 0\n onChange(clamp(base + step, min, max))\n }, [value, step, min, max, onChange])\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n if (raw === '') {\n onChange(null)\n return\n }\n const parsed = Number(raw)\n if (Number.isNaN(parsed)) {\n return\n }\n onChange(clamp(parsed, min, max))\n },\n [min, max, onChange],\n )\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n handleIncrement()\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n handleDecrement()\n }\n },\n [handleIncrement, handleDecrement],\n )\n\n return (\n <div\n className={cx(\n numberInputVariants({ error, inputSize }),\n glassClass(glass),\n glass === true && 'border-white/10 bg-bg/60',\n disabled === true && 'cursor-not-allowed opacity-50',\n className,\n )}\n data-component=\"number-input\"\n >\n <NumberStepper direction=\"decrement\" disabled={disabled} onClick={handleDecrement} />\n {prefix !== undefined && <span className=\"shrink-0 select-none pl-1 text-fg-muted/50\">{prefix}</span>}\n <input\n className={cx(\n 'min-w-0 flex-1 bg-transparent text-center outline-none placeholder:text-fg-muted/50',\n '[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none',\n )}\n disabled={disabled}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={ref}\n type=\"number\"\n value={value ?? ''}\n />\n {suffix !== undefined && <span className=\"shrink-0 select-none pr-1 text-fg-muted/50\">{suffix}</span>}\n <NumberStepper direction=\"increment\" disabled={disabled} onClick={handleIncrement} />\n </div>\n )\n },\n)\n\nexport { NumberInput, numberInputVariants }\nexport type { NumberInputProps }\n","import { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\nimport { glassClass } from '../utils/glass'\nimport { renderPortal } from '../utils/portal'\n\ntype ScreenOverlayProps = {\n visible: boolean\n glass?: boolean\n onClick?: () => void\n className?: string\n}\n\nconst ScreenOverlayInner = forwardRef<HTMLDivElement, ScreenOverlayProps>(\n function ScreenOverlayInner({ visible, glass, onClick, className }, ref) {\n if (!visible) return null\n\n return (\n <div\n className={cx(\n 'fixed inset-0 z-40',\n glass === true ? glassClass(true) : 'bg-black/50',\n className,\n )}\n data-component=\"screen-overlay\"\n onClick={onClick}\n ref={ref}\n />\n )\n },\n)\n\nexport const ScreenOverlay = forwardRef<HTMLDivElement, ScreenOverlayProps>(\n function ScreenOverlay(props, ref) {\n return renderPortal(<ScreenOverlayInner ref={ref} {...props} />)\n },\n)\n\nexport type { ScreenOverlayProps }\n","import type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype ScrollAreaProps = React.HTMLAttributes<HTMLDivElement> & {\n children: ReactNode\n maxHeight?: number | string\n orientation?: 'both' | 'horizontal' | 'vertical'\n}\n\nexport const ScrollArea = forwardRef<HTMLDivElement, ScrollAreaProps>(\n function ScrollArea(\n { children, className, maxHeight, orientation = 'vertical', style, ...props },\n ref,\n ) {\n return (\n <div\n className={cx(\n orientation === 'vertical' && 'overflow-x-hidden overflow-y-auto',\n orientation === 'horizontal' && 'overflow-x-auto overflow-y-hidden',\n orientation === 'both' && 'overflow-auto',\n className,\n )}\n data-component=\"scroll-area\"\n ref={ref}\n style={{\n ...style,\n maxHeight:\n maxHeight !== undefined\n ? typeof maxHeight === 'number'\n ? `${maxHeight}px`\n : maxHeight\n : undefined,\n }}\n {...props}\n >\n {children}\n </div>\n )\n },\n)\n\nexport type { ScrollAreaProps }\n","// shimmer — skeleton shimmer placeholder effect\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype ShimmerProps = React.HTMLAttributes<HTMLDivElement> & {\n height?: string\n rounded?: boolean\n width?: string\n}\n\nexport const Shimmer = forwardRef<HTMLDivElement, ShimmerProps>(\n function Shimmer({ className, height = '20px', rounded = false, width = '100%', ...props }, ref) {\n return (\n <div\n className={cx(\n 'relative overflow-hidden bg-fg-muted/10',\n rounded ? 'rounded-full' : 'rounded-md',\n className,\n )}\n data-component=\"shimmer\"\n ref={ref}\n style={{ width, height }}\n {...props}\n >\n <div className=\"absolute inset-0 animate-[shimmer_1.5s_ease-in-out_infinite] bg-gradient-to-r from-transparent via-fg-muted/5 to-transparent\" />\n </div>\n )\n },\n)\n\nexport type { ShimmerProps }\n","import { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype SkipNavProps = {\n targetId?: string\n label?: string\n className?: string\n}\n\nconst SkipNav = forwardRef<HTMLAnchorElement, SkipNavProps>(function SkipNav(\n { targetId = 'main-content', label = 'Skip to content', className },\n ref,\n) {\n return (\n <a\n ref={ref}\n className={cx(\n 'absolute left-2 top-2 z-50 -translate-y-full rounded bg-accent px-3 py-2 text-sm font-medium text-accent-fg transition-transform focus:translate-y-0 focus:outline-none',\n className,\n )}\n data-component=\"skip-nav\"\n href={`#${targetId}`}\n >\n {label}\n </a>\n )\n})\n\nexport { SkipNav }\nexport type { SkipNavProps }\n","// slider — native range input with value display\nimport { forwardRef } from 'react'\n\nimport { focusCls } from '../utils/a11y'\nimport { cx } from '../utils/cx'\n\ntype SliderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & {\n disabled?: boolean\n max?: number\n min?: number\n onChange?: (value: number) => void\n step?: number\n value?: number\n}\n\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(\n function Slider(\n { className, disabled = false, max = 100, min = 0, onChange, step = 1, value = 0, ...props },\n ref,\n ) {\n return (\n <div className={cx('flex items-center gap-3', className)} data-component=\"slider\" {...props}>\n <input\n className={cx(\n 'h-1.5 w-full cursor-pointer appearance-none rounded-full bg-bg-tertiary accent-accent',\n disabled && 'cursor-not-allowed opacity-50',\n focusCls,\n )}\n disabled={disabled}\n max={max}\n min={min}\n onChange={(e) => onChange?.(Number(e.target.value))}\n ref={ref}\n step={step}\n type=\"range\"\n value={value}\n />\n <span className=\"w-8 shrink-0 text-right font-mono text-xs text-fg-muted tabular-nums\">\n {value}\n </span>\n </div>\n )\n },\n)\n\nexport type { SliderProps }\n","// truncate — text truncation with ellipsis, single or multi-line clamp\nimport type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\nexport type TruncateProps = {\n children: ReactNode\n lines?: number\n expanded?: boolean\n onToggle?: () => void\n className?: string\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className' | 'onClick' | 'role' | 'tabIndex'>\n\nexport const Truncate = forwardRef<HTMLDivElement, TruncateProps>(\n function Truncate(\n { children, lines = 1, expanded = false, onToggle, className, style: styleProp, ...props },\n ref,\n ) {\n const shouldClamp = !expanded\n const isSingleLine = lines === 1\n const isInteractive = onToggle !== undefined\n\n const clampStyle = !isSingleLine && shouldClamp\n ? {\n display: '-webkit-box' as const,\n WebkitLineClamp: lines,\n WebkitBoxOrient: 'vertical' as const,\n overflow: 'hidden' as const,\n }\n : undefined\n\n return (\n <div\n {...props}\n ref={ref}\n className={cx(\n isSingleLine && shouldClamp && 'truncate',\n isInteractive && 'cursor-pointer',\n className,\n )}\n style={{ ...styleProp, ...clampStyle }}\n onClick={isInteractive ? onToggle : undefined}\n data-component=\"truncate\"\n data-expanded={expanded ? 'true' : undefined}\n role={isInteractive ? 'button' : undefined}\n tabIndex={isInteractive ? 0 : undefined}\n >\n {children}\n </div>\n )\n },\n)\n","import type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { srOnly } from '../utils/a11y'\nimport { cx } from '../utils/cx'\n\ntype VisuallyHiddenProps = {\n as?: 'div' | 'span'\n children: ReactNode\n className?: string\n}\n\nconst VisuallyHidden = forwardRef<HTMLElement, VisuallyHiddenProps>(function VisuallyHidden(\n { as: Tag = 'span', children, className },\n ref,\n) {\n return (\n <Tag ref={ref as never} className={cx(srOnly, className)} data-component=\"visually-hidden\">\n {children}\n </Tag>\n )\n})\n\nexport { VisuallyHidden }\nexport type { VisuallyHiddenProps }\n"],"mappings":"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"}
|
|
@@ -2,10 +2,14 @@ type GlowDotColor = 'accent' | 'danger' | 'success' | 'warning';
|
|
|
2
2
|
type GlowDotSize = 'default' | 'lg' | 'sm';
|
|
3
3
|
type GlowDotProps = React.HTMLAttributes<HTMLSpanElement> & {
|
|
4
4
|
color?: GlowDotColor;
|
|
5
|
+
/** Enable pulse animation for attention states */
|
|
6
|
+
pulse?: boolean;
|
|
5
7
|
size?: GlowDotSize;
|
|
6
8
|
};
|
|
7
9
|
export declare const GlowDot: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLSpanElement> & {
|
|
8
10
|
color?: GlowDotColor;
|
|
11
|
+
/** Enable pulse animation for attention states */
|
|
12
|
+
pulse?: boolean;
|
|
9
13
|
size?: GlowDotSize;
|
|
10
14
|
} & import("react").RefAttributes<HTMLSpanElement>>;
|
|
11
15
|
export type { GlowDotColor, GlowDotProps, GlowDotSize };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glow-dot.d.ts","sourceRoot":"","sources":["../../src/l3-atoms/glow-dot.tsx"],"names":[],"mappings":"AAKA,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;AAC/D,KAAK,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1C,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG;IAC1D,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,CAAA;AAeD,eAAO,MAAM,OAAO;
|
|
1
|
+
{"version":3,"file":"glow-dot.d.ts","sourceRoot":"","sources":["../../src/l3-atoms/glow-dot.tsx"],"names":[],"mappings":"AAKA,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;AAC/D,KAAK,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1C,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG;IAC1D,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,CAAA;AAeD,eAAO,MAAM,OAAO;YAnBV,YAAY;IACpB,kDAAkD;YAC1C,OAAO;WACR,WAAW;mDA4BnB,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/l3-atoms/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as e, A as t, B as n, C as r, Ct as i, D as a, E as o, F as s, G as c, H as l, I as u, J as d, K as f, L as p, M as m, N as h, O as g, P as _, Q as v, R as y, S as b, St as x, T as S, U as C, V as w, W as T, X as E, Y as D, Z as O, _ as k, _t as A, a as j, at as M, b as N, bt as P, c as F, ct as I, d as L, dt as R, et as z, f as B, ft as V, g as H, gt as U, h as W, ht as G, i as K, it as q, j as J, k as Y, l as X, lt as Z, m as Q, mt as $, n as ee, nt as te, o as ne, ot as re, p as ie, pt as ae, q as oe, r as se, rt as ce, s as le, st as ue, t as de, tt as fe, u as pe, ut as me, v as he, vt as ge, w as _e,
|
|
2
|
-
import { n as
|
|
3
|
-
import { n as
|
|
4
|
-
import { a as
|
|
5
|
-
import { t as Fe } from "../loading-dots-
|
|
6
|
-
export {
|
|
1
|
+
import { $ as e, A as t, B as n, C as r, Ct as i, D as a, E as o, F as s, G as c, H as l, I as u, J as d, K as f, L as p, M as m, N as h, O as g, P as _, Q as v, R as y, S as b, St as x, T as S, U as C, V as w, W as T, X as E, Y as D, Z as O, _ as k, _t as A, a as j, at as M, b as N, bt as P, c as F, ct as I, d as L, dt as R, et as z, f as B, ft as V, g as H, gt as U, h as W, ht as G, i as K, it as q, j as J, k as Y, l as X, lt as Z, m as Q, mt as $, n as ee, nt as te, o as ne, ot as re, p as ie, pt as ae, q as oe, r as se, rt as ce, s as le, st as ue, t as de, tt as fe, u as pe, ut as me, v as he, vt as ge, w as _e, x as ve, xt as ye, y as be, yt as xe, z as Se } from "../l3-atoms-BGwlQvjl.js";
|
|
2
|
+
import { n as Ce, r as we, t as Te } from "../avatar-l3SaMCmU.js";
|
|
3
|
+
import { n as Ee, r as De, t as Oe } from "../resize-handle-ilSc7QRM.js";
|
|
4
|
+
import { a as ke, i as Ae, n as je, r as Me, t as Ne } from "../switch-DC85Os9r.js";
|
|
5
|
+
import { n as Pe, t as Fe } from "../loading-dots-Dz79qOGY.js";
|
|
6
|
+
export { i as AnimatedBorder, x as AnimatedCounter, ye as AnimatedNumber, Te as Avatar, P as AvatarBadge, Ce as AvatarGroup, xe as Barcode, ge as Blinking, A as BounceDot, Ee as Checkbox, U as CheckboxGroup, Ae as Chip, $ as ColorSwatch, ae as CopyButton, V as CountBadge, R as CountUp, me as Countdown, I as CountdownBadge, ue as CursorFollow, re as DiffIndicator, M as GlowDot, q as GradientText, ce as HeatCell, te as Hotkey, fe as InfoTip, z as KeyValue, e as KeyboardShortcut, v as LiveDot, Fe as LoadingDots, O as MagneticButton, E as Marquee, d as Meter, oe as NumberFlow, f as OnlineIndicator, c as Orbit, T as Percentage, C as PercentageCircle, l as Price, w as ProgressCircle, n as ProgressRing, Se as PulseIndicator, y as PulseRing, p as QRCode, s as QuickAction, _ as RadioGroup, Me as RangeSlider, h as Rating, m as RelativeTime, Oe as ResizeHandle, J as Ribbon, t as RibbonBanner, Y as RippleEffect, g as ScrollProgress, a as ScrollToTop, o as SegmentedControl, S as ShortcutDisplay, _e as SkeletonGroup, r as Sparkle, b as Stagger, ve as StarRating, be as StatusBadge, k as StatusDot, Ne as Switch, H as SwitchGroup, W as TextBadge, Q as TextEffect, ie as TextareaCounter, B as ThemeToggle, X as ToggleGroup, Pe as Tooltip, F as TrendArrow, le as TrendIndicator, ne as TruncatedList, j as Typewriter, K as VerifiedBadge, se as VisualCounter, ee as VolumeSlider, de as ZoomOnHover, we as avatarVariants, De as checkboxVariants, ke as chipVariants, G as colorSwatchVariants, Z as countdownBadgeVariants, D as meterVariants, u as quickActionVariants, N as statusBadgeVariants, he as statusDotVariants, je as switchVariants, pe as toggleGroupVariants, L as toggleItemVariants };
|