@hirobius/design-system 0.18.0 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CONSUMING.md +150 -0
  2. package/DESIGN.md +220 -0
  3. package/README.md +14 -2
  4. package/dist/chunks/{LanguageContext-CH_bwzCq.js → LanguageContext-BxdCwiFg.js} +20 -8
  5. package/dist/chunks/{TokenDisplayContext-evZi_214.js → TokenDisplayContext-DKYJMVWk.js} +10 -2
  6. package/dist/chunks/{activity-feed-C8_e-Btq.js → activity-feed-BGQ6v3wc.js} +5248 -3163
  7. package/dist/chunks/{form-DnGRy27o.js → form-COP3vK9_.js} +31 -29
  8. package/dist/contexts.js +4 -4
  9. package/dist/form.js +5 -5
  10. package/dist/hirobius-ui.js +2790 -3257
  11. package/dist/icons.js +53 -0
  12. package/dist/manifest.js +15 -14
  13. package/dist/patterns.js +284 -101
  14. package/dist/static.css +3 -3
  15. package/dist/styles.css +1 -1
  16. package/dist/tokens.css +1 -1
  17. package/dist/types/src/app/components/alert-dialog.d.ts +9 -1
  18. package/dist/types/src/app/components/alert.d.ts +4 -0
  19. package/dist/types/src/app/components/avatar.d.ts +4 -0
  20. package/dist/types/src/app/components/badge.d.ts +4 -0
  21. package/dist/types/src/app/components/box.d.ts +5 -0
  22. package/dist/types/src/app/components/breadcrumb.d.ts +4 -0
  23. package/dist/types/src/app/components/button-group.d.ts +4 -0
  24. package/dist/types/src/app/components/button.d.ts +3 -0
  25. package/dist/types/src/app/components/card.d.ts +9 -0
  26. package/dist/types/src/app/components/checkbox.d.ts +4 -0
  27. package/dist/types/src/app/components/combobox.d.ts +10 -0
  28. package/dist/types/src/app/components/command-palette.d.ts +3 -1
  29. package/dist/types/src/app/components/container.d.ts +5 -0
  30. package/dist/types/src/app/components/context-menu.d.ts +25 -2
  31. package/dist/types/src/app/components/data-table-section.d.ts +45 -0
  32. package/dist/types/src/app/components/destructive-section.d.ts +32 -0
  33. package/dist/types/src/app/components/dialog.d.ts +20 -2
  34. package/dist/types/src/app/components/disclosure.d.ts +3 -0
  35. package/dist/types/src/app/components/divider.d.ts +4 -0
  36. package/dist/types/src/app/components/empty-state.d.ts +4 -0
  37. package/dist/types/src/app/components/field.d.ts +4 -0
  38. package/dist/types/src/app/components/form-actions.d.ts +26 -0
  39. package/dist/types/src/app/components/grid.d.ts +4 -0
  40. package/dist/types/src/app/components/hds-tooltip.d.ts +14 -2
  41. package/dist/types/src/app/components/hover-card.d.ts +16 -1
  42. package/dist/types/src/app/components/icon.d.ts +4 -0
  43. package/dist/types/src/app/components/inline-link.d.ts +4 -0
  44. package/dist/types/src/app/components/input.d.ts +5 -0
  45. package/dist/types/src/app/components/kbd.d.ts +3 -0
  46. package/dist/types/src/app/components/menu.d.ts +26 -2
  47. package/dist/types/src/app/components/metric-tiles.d.ts +40 -0
  48. package/dist/types/src/app/components/page-header.d.ts +34 -0
  49. package/dist/types/src/app/components/pagination.d.ts +3 -0
  50. package/dist/types/src/app/components/popover.d.ts +14 -2
  51. package/dist/types/src/app/components/progress.d.ts +4 -0
  52. package/dist/types/src/app/components/radio.d.ts +5 -0
  53. package/dist/types/src/app/components/select.d.ts +16 -0
  54. package/dist/types/src/app/components/skeleton.d.ts +4 -0
  55. package/dist/types/src/app/components/slider.d.ts +3 -0
  56. package/dist/types/src/app/components/spinner.d.ts +4 -0
  57. package/dist/types/src/app/components/stack.d.ts +4 -0
  58. package/dist/types/src/app/components/stat.d.ts +4 -0
  59. package/dist/types/src/app/components/status-tile.d.ts +4 -0
  60. package/dist/types/src/app/components/table.d.ts +36 -4
  61. package/dist/types/src/app/components/tabs.d.ts +4 -0
  62. package/dist/types/src/app/components/tag.d.ts +3 -0
  63. package/dist/types/src/app/components/text.d.ts +4 -0
  64. package/dist/types/src/app/components/textarea.d.ts +3 -0
  65. package/dist/types/src/app/components/toast.d.ts +4 -0
  66. package/dist/types/src/app/components/toggle.d.ts +4 -0
  67. package/dist/types/src/app/components/tooltip.d.ts +1 -1
  68. package/dist/types/src/app/components/visually-hidden.d.ts +3 -0
  69. package/dist/types/src/app/context/hds-portal.d.ts +52 -0
  70. package/dist/types/src/app/context/hds-theme.d.ts +10 -0
  71. package/dist/types/src/app/data/manifest-types.d.ts +27 -0
  72. package/dist/types/src/app/design-system/generated-token-refs.d.ts +2 -0
  73. package/dist/types/src/icons.d.ts +13 -0
  74. package/dist/types/src/index.d.ts +20 -1
  75. package/dist/types/src/patterns.d.ts +5 -0
  76. package/dist/variables.css +4 -0
  77. package/docs/CONSUMING.md +758 -0
  78. package/hirobius.tokens.json +17 -0
  79. package/llms.txt +261 -0
  80. package/package.json +22 -4
  81. package/public/hds-manifest.json +1605 -105
  82. package/public/llms/components.txt +1090 -0
  83. package/public/llms/layout.txt +54 -0
  84. package/public/llms/scroll.txt +22 -0
  85. package/public/llms/tokens.txt +32 -0
  86. package/public/llms-full.txt +1561 -0
  87. package/public/llms.txt +261 -0
  88. package/src/app/data/component-api.json +6156 -0
package/dist/patterns.js CHANGED
@@ -1,18 +1,21 @@
1
1
  'use client';
2
- import { A as T, D as F, F as L, C as $, G as R, H as A, J as P, K as j, E as D, L as E, M as H, N as W, O as z, P as _, R as B, Q as M, U as O, V as X, W as G, X as q, a8 as K, a9 as U, aa as J, ab as Q, ac as Y, ad as Z, af as ee, ag as ae, ah as re, ai as te, aj as se, ak as ie, al as oe, am as le, an as ce, ao as ne, ap as de, aq as he, ar as pe, as as ue, at as ve, au as me, av as fe } from "./chunks/activity-feed-C8_e-Btq.js";
3
- import { F as be, a as we, b as ye, u as xe } from "./chunks/form-DnGRy27o.js";
4
- import { jsxs as o, Fragment as m, jsx as e } from "react/jsx-runtime";
5
- import { useRef as c, useEffect as v } from "react";
6
- import d from "./tokens.js";
7
- const h = 280, b = 380, n = 24, f = 3.5, w = `
2
+ import { S as I, C as u, a as _, b as V, G as E, T as S, A as p, B as w, E as P, c as z } from "./chunks/activity-feed-BGQ6v3wc.js";
3
+ import { d as he, e as pe, f as ue, g as me, h as ge, i as fe, j as ve, D as ye, k as be, F as we, L as xe, N as ke, O as Se, P as Ce, R as Te, l as Ne, m as Ie, n as Ve, o as Ae, p as Me, q as Re, r as $e, s as Fe, t as je, u as De, v as He, w as Le, x as _e, y as Ee, z as Pe, H as ze, I as Be, J as We, K as Oe, M as Ge, Q as Ue, U as Xe, V as Ye, W as qe, X as Ke, Y as Je, Z as Qe, _ as Ze } from "./chunks/activity-feed-BGQ6v3wc.js";
4
+ import { F as aa, b as ta, a as ra, u as ia } from "./chunks/form-COP3vK9_.js";
5
+ import { jsxs as o, Fragment as A, jsx as e } from "react/jsx-runtime";
6
+ import * as d from "react";
7
+ import { useRef as x, useEffect as N } from "react";
8
+ import v from "./tokens.js";
9
+ import { cn as M } from "./cn.js";
10
+ const C = 280, B = 380, k = 24, R = 3.5, W = `
8
11
  .hds-scr-outer {
9
12
  position: relative;
10
13
  overflow: hidden;
11
14
  width: 100%; /* audit-ok: percentage fill in CSS template */
12
- --card-width: ${h}px;
13
- --card-height: ${b}px;
14
- --card-gap: ${n}px;
15
- --visible-count: ${f};
15
+ --card-width: ${C}px;
16
+ --card-height: ${B}px;
17
+ --card-gap: ${k}px;
18
+ --visible-count: ${R};
16
19
  }
17
20
 
18
21
  /* Vertical scroll container — maps vertical scrolling to a horizontal strip */
@@ -60,7 +63,7 @@ const h = 280, b = 380, n = 24, f = 3.5, w = `
60
63
  .hds-scr-track {
61
64
  display: flex;
62
65
  align-items: center;
63
- padding: 0 ${n}px;
66
+ padding: 0 ${k}px;
64
67
  gap: var(--card-gap);
65
68
  /* Wide enough to hold all cards plus padding */
66
69
  min-width: max-content;
@@ -82,7 +85,7 @@ const h = 280, b = 380, n = 24, f = 3.5, w = `
82
85
  .hds-scr-card-inner {
83
86
  width: 100%; /* audit-ok: percentage fill in CSS template */
84
87
  height: 100%; /* audit-ok: percentage fill in CSS template */
85
- border-radius: ${d.borderRadius[8]};
88
+ border-radius: ${v.borderRadius[8]};
86
89
  background: var(--semantic-color-surface-raised);
87
90
  border: 1px solid var(--semantic-color-border-default);
88
91
  box-shadow: var(--semantic-shadow-subtle);
@@ -199,10 +202,10 @@ const h = 280, b = 380, n = 24, f = 3.5, w = `
199
202
  overflow-y: visible;
200
203
  }
201
204
  .hds-scr-outer[data-fallback="true"] .hds-scr-track {
202
- padding: 12px ${n}px;
205
+ padding: 12px ${k}px;
203
206
  }
204
207
  `;
205
- function y() {
208
+ function O() {
206
209
  return /* @__PURE__ */ e("div", { className: "hds-scr-cover-placeholder", "aria-hidden": "true", children: /* @__PURE__ */ o(
207
210
  "svg",
208
211
  {
@@ -248,36 +251,36 @@ function y() {
248
251
  }
249
252
  ) });
250
253
  }
251
- function x({ card: a, index: t, total: l }) {
252
- const i = /* @__PURE__ */ o(m, { children: [
253
- /* @__PURE__ */ e("div", { className: "hds-scr-cover", children: a.coverImage ? /* @__PURE__ */ e(
254
+ function G({ card: r, index: a, total: s }) {
255
+ const t = /* @__PURE__ */ o(A, { children: [
256
+ /* @__PURE__ */ e("div", { className: "hds-scr-cover", children: r.coverImage ? /* @__PURE__ */ e(
254
257
  "img",
255
258
  {
256
- src: a.coverImage,
257
- alt: a.title,
258
- loading: t < 4 ? "eager" : "lazy",
259
+ src: r.coverImage,
260
+ alt: r.title,
261
+ loading: a < 4 ? "eager" : "lazy",
259
262
  decoding: "async"
260
263
  }
261
- ) : /* @__PURE__ */ e(y, {}) }),
264
+ ) : /* @__PURE__ */ e(O, {}) }),
262
265
  /* @__PURE__ */ o("div", { className: "hds-scr-meta", children: [
263
- a.category && /* @__PURE__ */ e(
266
+ r.category && /* @__PURE__ */ e(
264
267
  "span",
265
268
  {
266
269
  style: {
267
- ...d.typeStyles.eyebrow,
270
+ ...v.typeStyles.eyebrow,
268
271
  color: "var(--semantic-color-content-secondary)"
269
272
  },
270
- children: a.category
273
+ children: r.category
271
274
  }
272
275
  ),
273
276
  /* @__PURE__ */ e(
274
277
  "span",
275
278
  {
276
279
  style: {
277
- ...d.typeStyles.heading3,
280
+ ...v.typeStyles.heading3,
278
281
  color: "var(--semantic-color-content-primary)"
279
282
  },
280
- children: a.title
283
+ children: r.title
281
284
  }
282
285
  )
283
286
  ] })
@@ -286,12 +289,12 @@ function x({ card: a, index: t, total: l }) {
286
289
  "div",
287
290
  {
288
291
  className: "hds-scr-card",
289
- style: { "--card-index": t },
290
- "aria-label": `${a.title}${a.category ? `, ${a.category}` : ""}, card ${t + 1} of ${l}`,
291
- children: a.href ? /* @__PURE__ */ e(
292
+ style: { "--card-index": a },
293
+ "aria-label": `${r.title}${r.category ? `, ${r.category}` : ""}, card ${a + 1} of ${s}`,
294
+ children: r.href ? /* @__PURE__ */ e(
292
295
  "a",
293
296
  {
294
- href: a.href,
297
+ href: r.href,
295
298
  className: "hds-focus hds-scr-card-inner",
296
299
  style: {
297
300
  display: "flex",
@@ -300,34 +303,34 @@ function x({ card: a, index: t, total: l }) {
300
303
  textDecoration: "none",
301
304
  color: "inherit"
302
305
  },
303
- children: i
306
+ children: t
304
307
  }
305
- ) : /* @__PURE__ */ e("div", { className: "hds-scr-card-inner", children: i })
308
+ ) : /* @__PURE__ */ e("div", { className: "hds-scr-card-inner", children: t })
306
309
  }
307
310
  );
308
311
  }
309
- function V({ cards: a }) {
310
- const t = c(null), l = c(null), i = c(null), p = a.length, g = h * p + /* trailing breathing room */
311
- h * f;
312
- return v(() => {
313
- const r = l.current, s = i.current;
314
- if (!r || !s) return;
315
- function u() {
316
- !r || !s || (s.scrollLeft = r.scrollTop);
312
+ function te({ cards: r }) {
313
+ const a = x(null), s = x(null), t = x(null), n = r.length, c = C * n + /* trailing breathing room */
314
+ C * R;
315
+ return N(() => {
316
+ const i = s.current, l = t.current;
317
+ if (!i || !l) return;
318
+ function h() {
319
+ !i || !l || (l.scrollLeft = i.scrollTop);
317
320
  }
318
- return r.addEventListener("scroll", u, { passive: !0 }), () => {
319
- r.removeEventListener("scroll", u);
321
+ return i.addEventListener("scroll", h, { passive: !0 }), () => {
322
+ i.removeEventListener("scroll", h);
320
323
  };
321
- }, []), v(() => {
322
- const r = t.current;
323
- if (!r) return;
324
- typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("animation-timeline", "scroll()") || r.setAttribute("data-fallback", "true");
325
- }, []), /* @__PURE__ */ o(m, { children: [
326
- /* @__PURE__ */ e("style", { dangerouslySetInnerHTML: { __html: w } }),
324
+ }, []), N(() => {
325
+ const i = a.current;
326
+ if (!i) return;
327
+ typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("animation-timeline", "scroll()") || i.setAttribute("data-fallback", "true");
328
+ }, []), /* @__PURE__ */ o(A, { children: [
329
+ /* @__PURE__ */ e("style", { dangerouslySetInnerHTML: { __html: W } }),
327
330
  /* @__PURE__ */ e(
328
331
  "div",
329
332
  {
330
- ref: t,
333
+ ref: a,
331
334
  className: "hds-scr-outer",
332
335
  style: {
333
336
  height: "calc(var(--card-height) + 48px)"
@@ -337,7 +340,7 @@ function V({ cards: a }) {
337
340
  children: /* @__PURE__ */ o(
338
341
  "div",
339
342
  {
340
- ref: l,
343
+ ref: s,
341
344
  className: "hds-scr-yscroll",
342
345
  role: "region",
343
346
  "aria-label": "Project cards, vertical scroll",
@@ -349,19 +352,19 @@ function V({ cards: a }) {
349
352
  {
350
353
  className: "hds-scr-spacer",
351
354
  style: {
352
- "--hds-scr-spacer-height": `${g}px`
355
+ "--hds-scr-spacer-height": `${c}px`
353
356
  }
354
357
  }
355
358
  ),
356
359
  /* @__PURE__ */ e(
357
360
  "div",
358
361
  {
359
- ref: i,
362
+ ref: t,
360
363
  className: "hds-scr-strip",
361
364
  role: "region",
362
365
  "aria-label": "Project cards, horizontal scroll",
363
366
  tabIndex: 0,
364
- children: /* @__PURE__ */ e("div", { className: "hds-scr-track", role: "list", children: a.map((r, s) => /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(x, { card: r, index: s, total: p }) }, r.id)) })
367
+ children: /* @__PURE__ */ e("div", { className: "hds-scr-track", role: "list", children: r.map((i, l) => /* @__PURE__ */ e("div", { role: "listitem", children: /* @__PURE__ */ e(G, { card: i, index: l, total: n }) }, i.id)) })
365
368
  }
366
369
  )
367
370
  ]
@@ -371,53 +374,233 @@ function V({ cards: a }) {
371
374
  )
372
375
  ] });
373
376
  }
377
+ const re = /* @__PURE__ */ d.forwardRef(
378
+ function({ breadcrumb: a, title: s, status: t, actions: n, level: c = 1, className: i, ...l }, h) {
379
+ const g = `h${c}`;
380
+ return /* @__PURE__ */ e(
381
+ "header",
382
+ {
383
+ ref: h,
384
+ "data-hds-component": "PageHeader",
385
+ className: M("w-full", i),
386
+ ...l,
387
+ children: /* @__PURE__ */ o(I, { gap: "tight", children: [
388
+ a ? /* @__PURE__ */ e("div", { "data-slot": "breadcrumb", children: a }) : null,
389
+ /* @__PURE__ */ o(u, { gap: "normal", align: "start", justify: "space-between", children: [
390
+ /* @__PURE__ */ o(u, { gap: "tight", align: "center", children: [
391
+ /* @__PURE__ */ e(
392
+ g,
393
+ {
394
+ style: {
395
+ ...v.typeStyles.heading2,
396
+ margin: 0,
397
+ color: "var(--semantic-color-content-primary)"
398
+ },
399
+ children: s
400
+ }
401
+ ),
402
+ t ? /* @__PURE__ */ e("div", { "data-slot": "status", children: t }) : null
403
+ ] }),
404
+ n ? /* @__PURE__ */ e("div", { "data-slot": "actions", className: "ml-auto", children: /* @__PURE__ */ e(u, { gap: "tight", align: "center", justify: "end", children: n }) }) : null
405
+ ] })
406
+ ] })
407
+ }
408
+ );
409
+ }
410
+ ), U = 4, X = "calc(var(--primitive-size-96) + var(--primitive-size-24))", Y = " ", ie = /* @__PURE__ */ d.forwardRef(
411
+ function({ label: a, value: s, sub: t, tone: n = "neutral", style: c, ...i }, l) {
412
+ return /* @__PURE__ */ e(
413
+ _,
414
+ {
415
+ ref: l,
416
+ padding: "item",
417
+ "data-hds-component": "MetricTile",
418
+ "data-tone": n,
419
+ style: { minHeight: X, ...c },
420
+ ...i,
421
+ children: /* @__PURE__ */ e(
422
+ V.Metric,
423
+ {
424
+ label: a,
425
+ value: s,
426
+ sub: t ?? Y,
427
+ tone: n,
428
+ className: "px-0"
429
+ }
430
+ )
431
+ }
432
+ );
433
+ }
434
+ );
435
+ function $(r) {
436
+ return d.Children.toArray(r).reduce((a, s) => d.isValidElement(s) ? s.type === d.Fragment ? a + $(s.props.children) : a + 1 : a, 0);
437
+ }
438
+ const se = /* @__PURE__ */ d.forwardRef(
439
+ function({ children: a, ...s }, t) {
440
+ const n = Math.min(Math.max($(a), 1), U);
441
+ return /* @__PURE__ */ e("div", { ref: t, "data-hds-component": "MetricTiles", ...s, children: /* @__PURE__ */ e(E, { columns: n, gap: "tight", children: a }) });
442
+ }
443
+ ), ne = /* @__PURE__ */ d.forwardRef(
444
+ function({ primary: a, secondary: s, destructive: t, sticky: n = !1, className: c, style: i, ...l }, h) {
445
+ return /* @__PURE__ */ e(
446
+ "div",
447
+ {
448
+ ref: h,
449
+ "data-hds-component": "FormActions",
450
+ "data-sticky": n ? "true" : void 0,
451
+ className: M(n && "border-t border-border bg-background py-3", c),
452
+ style: n ? { position: "sticky", bottom: 0, ...i } : i,
453
+ ...l,
454
+ children: /* @__PURE__ */ o(u, { gap: "tight", align: "center", justify: t ? "space-between" : "end", children: [
455
+ t ? /* @__PURE__ */ e("div", { "data-slot": "destructive", children: t }) : null,
456
+ /* @__PURE__ */ e("div", { "data-slot": "group", className: "ml-auto", children: /* @__PURE__ */ o(u, { gap: "tight", align: "center", justify: "end", children: [
457
+ s,
458
+ a
459
+ ] }) })
460
+ ] })
461
+ }
462
+ );
463
+ }
464
+ ), oe = /* @__PURE__ */ d.forwardRef(function({
465
+ title: a,
466
+ description: s,
467
+ actionLabel: t,
468
+ confirmLabel: n,
469
+ confirmBody: c,
470
+ onConfirm: i,
471
+ cancelLabel: l = "Cancel",
472
+ level: h = 2,
473
+ ...g
474
+ }, y) {
475
+ const m = d.useId();
476
+ return /* @__PURE__ */ e(
477
+ "section",
478
+ {
479
+ ref: y,
480
+ "data-hds-component": "DestructiveSection",
481
+ "aria-labelledby": m,
482
+ ...g,
483
+ children: /* @__PURE__ */ e(V, { tone: "danger", children: /* @__PURE__ */ o(u, { gap: "normal", align: "center", justify: "space-between", children: [
484
+ /* @__PURE__ */ o("div", { "data-slot": "copy", className: "min-w-0 grow basis-64", children: [
485
+ /* @__PURE__ */ e(S, { id: m, as: `h${h}`, variant: "heading3", children: a }),
486
+ /* @__PURE__ */ e(S, { as: "p", variant: "caption", className: "text-muted-foreground", children: s })
487
+ ] }),
488
+ /* @__PURE__ */ e("div", { "data-slot": "action", className: "shrink-0", children: /* @__PURE__ */ o(p, { children: [
489
+ /* @__PURE__ */ e(p.Trigger, { asChild: !0, children: /* @__PURE__ */ e(w, { variant: "secondary", tone: "danger", children: t ?? n }) }),
490
+ /* @__PURE__ */ o(p.Content, { children: [
491
+ /* @__PURE__ */ o(p.Header, { children: [
492
+ /* @__PURE__ */ e(p.Title, { children: a }),
493
+ /* @__PURE__ */ e(p.Description, { children: c })
494
+ ] }),
495
+ /* @__PURE__ */ o(p.Footer, { children: [
496
+ /* @__PURE__ */ e(p.Cancel, { asChild: !0, children: /* @__PURE__ */ e(w, { variant: "secondary", children: l }) }),
497
+ /* @__PURE__ */ e(p.Action, { asChild: !0, children: /* @__PURE__ */ e(w, { variant: "primary", tone: "danger", onClick: i, children: n }) })
498
+ ] })
499
+ ] })
500
+ ] }) })
501
+ ] }) })
502
+ }
503
+ );
504
+ }), q = "8rem", K = "6rem", le = /* @__PURE__ */ d.forwardRef(function({
505
+ title: a,
506
+ toolbar: s,
507
+ columns: t,
508
+ rows: n,
509
+ actionsLabel: c = "Actions",
510
+ emptyTitle: i = "Nothing here yet",
511
+ emptyDescription: l,
512
+ level: h = 2,
513
+ ...g
514
+ }, y) {
515
+ const m = d.useId(), b = n.some((f) => f.actions != null), F = b ? [...t, { key: "__actions", label: c, align: "right", width: "max-content" }] : t, j = n.map((f) => ({
516
+ key: f.key,
517
+ cells: [
518
+ ...f.cells.map((H, L) => {
519
+ var T;
520
+ return {
521
+ slot: "custom",
522
+ content: H,
523
+ align: (T = t[L]) == null ? void 0 : T.align
524
+ };
525
+ }),
526
+ ...b ? [
527
+ {
528
+ slot: "action",
529
+ align: "right",
530
+ content: /* @__PURE__ */ e(u, { gap: "tight", align: "center", justify: "end", children: f.actions })
531
+ }
532
+ ] : []
533
+ ]
534
+ })), D = `calc(${t.length} * ${q}${b ? ` + ${K}` : ""})`;
535
+ return /* @__PURE__ */ e("section", { ref: y, "data-hds-component": "DataTableSection", "aria-labelledby": m, ...g, children: /* @__PURE__ */ o(I, { gap: "tight", children: [
536
+ /* @__PURE__ */ o(u, { gap: "normal", align: "center", justify: "space-between", children: [
537
+ /* @__PURE__ */ e(S, { id: m, as: `h${h}`, variant: "heading3", children: a }),
538
+ s ? /* @__PURE__ */ e("div", { "data-slot": "toolbar", className: "ml-auto", children: /* @__PURE__ */ e(u, { gap: "tight", align: "center", justify: "end", children: s }) }) : null
539
+ ] }),
540
+ n.length === 0 ? /* @__PURE__ */ e(P, { title: i, description: l }) : /* @__PURE__ */ e(
541
+ z,
542
+ {
543
+ columns: F,
544
+ rows: j,
545
+ minWidth: D,
546
+ labelledBy: m
547
+ }
548
+ )
549
+ ] }) });
550
+ });
374
551
  export {
375
- T as ActivityFeed,
376
- F as AppShell,
377
- L as AssetImg,
378
- $ as Calendar,
379
- R as Carousel,
380
- A as CodeBlock,
381
- P as CommandPalette,
382
- j as DocLinkCard,
383
- D as ErrorPattern,
384
- E as FileInput,
385
- be as Form,
386
- we as FormField,
387
- ye as FormFieldShell,
388
- H as Lightbox,
389
- W as NavItem,
390
- z as OverflowList,
391
- _ as Page,
392
- B as Reveal,
393
- M as SideNav,
394
- V as StackedCardRail,
395
- O as Stepper,
396
- X as Toolbar,
397
- G as TopNav,
398
- q as TreeList,
399
- K as activityAvatarVariants,
400
- U as activityToneVariants,
401
- J as appShellVariants,
402
- Q as blockCodeTextVariants,
403
- Y as blockContainerVariants,
404
- Z as blockHeaderVariants,
405
- ee as carouselControlVariants,
406
- ae as chevronVariants,
407
- re as cmdkDescriptionVariants,
408
- te as cmdkKindBadgeVariants,
409
- se as cmdkRowVariants,
410
- ie as collapsibleToggleVariants,
411
- oe as copyButtonVariants,
412
- le as defaultActivityEvents,
413
- ce as docLinkCardVariants,
414
- ne as fileInputVariants,
415
- de as inlineCodeTextVariants,
416
- he as inlineWrapperVariants,
417
- pe as navIndicatorVariants,
418
- ue as navItemVariants,
419
- ve as prePanelVariants,
420
- me as sideNavVariants,
421
- fe as stepMarkerVariants,
422
- xe as useFieldWiring
552
+ he as ActivityFeed,
553
+ pe as AppShell,
554
+ ue as AssetImg,
555
+ me as Calendar,
556
+ ge as Carousel,
557
+ fe as CodeBlock,
558
+ ve as CommandPalette,
559
+ le as DataTableSection,
560
+ oe as DestructiveSection,
561
+ ye as DocLinkCard,
562
+ be as ErrorPattern,
563
+ we as FileInput,
564
+ aa as Form,
565
+ ne as FormActions,
566
+ ta as FormField,
567
+ ra as FormFieldShell,
568
+ xe as Lightbox,
569
+ ie as MetricTile,
570
+ se as MetricTiles,
571
+ ke as NavItem,
572
+ Se as OverflowList,
573
+ Ce as Page,
574
+ re as PageHeader,
575
+ Te as Reveal,
576
+ Ne as SideNav,
577
+ te as StackedCardRail,
578
+ Ie as Stepper,
579
+ Ve as Toolbar,
580
+ Ae as TopNav,
581
+ Me as TreeList,
582
+ Re as activityAvatarVariants,
583
+ $e as activityToneVariants,
584
+ Fe as appShellVariants,
585
+ je as blockCodeTextVariants,
586
+ De as blockContainerVariants,
587
+ He as blockHeaderVariants,
588
+ Le as carouselControlVariants,
589
+ _e as chevronVariants,
590
+ Ee as cmdkDescriptionVariants,
591
+ Pe as cmdkKindBadgeVariants,
592
+ ze as cmdkRowVariants,
593
+ Be as collapsibleToggleVariants,
594
+ We as copyButtonVariants,
595
+ Oe as defaultActivityEvents,
596
+ Ge as docLinkCardVariants,
597
+ Ue as fileInputVariants,
598
+ Xe as inlineCodeTextVariants,
599
+ Ye as inlineWrapperVariants,
600
+ qe as navIndicatorVariants,
601
+ Ke as navItemVariants,
602
+ Je as prePanelVariants,
603
+ Qe as sideNavVariants,
604
+ Ze as stepMarkerVariants,
605
+ ia as useFieldWiring
423
606
  };
package/dist/static.css CHANGED
@@ -137,9 +137,9 @@
137
137
  height: 100%;
138
138
  flex-direction: column;
139
139
  box-sizing: border-box;
140
- border-radius: var(
141
- --primitive-radius-8
142
- ); /* tier-ok: REACT_COMPONENTS.md Card recipe mandates var(--primitive-radius-8) directly (no semantic radius alias for the 8px card corner) */
140
+ border-radius: calc(
141
+ var(--role-radius) + 4px
142
+ ); /* tier-ok: same container radius as the React Card's rounded-lg (role radius + 4px); the offset has no token */
143
143
  background-color: var(--role-card);
144
144
  color: var(--role-card-foreground);
145
145
  border-style: solid;