@hirobius/design-system 0.18.0 → 0.19.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.
Files changed (85) hide show
  1. package/CONSUMING.md +150 -0
  2. package/DESIGN.md +220 -0
  3. package/README.md +14 -2
  4. package/dist/chunks/{activity-feed-C8_e-Btq.js → activity-feed-DIMeUJpW.js} +4907 -2912
  5. package/dist/chunks/{form-DnGRy27o.js → form-BvNNnJ0t.js} +2 -2
  6. package/dist/form.js +5 -5
  7. package/dist/hirobius-ui.js +1986 -2529
  8. package/dist/icons.js +53 -0
  9. package/dist/manifest.js +15 -14
  10. package/dist/patterns.js +292 -101
  11. package/dist/static.css +3 -3
  12. package/dist/styles.css +1 -1
  13. package/dist/tokens.css +1 -1
  14. package/dist/types/src/app/components/alert-dialog.d.ts +9 -1
  15. package/dist/types/src/app/components/alert.d.ts +4 -0
  16. package/dist/types/src/app/components/avatar.d.ts +4 -0
  17. package/dist/types/src/app/components/badge.d.ts +4 -0
  18. package/dist/types/src/app/components/box.d.ts +5 -0
  19. package/dist/types/src/app/components/breadcrumb.d.ts +4 -0
  20. package/dist/types/src/app/components/button-group.d.ts +4 -0
  21. package/dist/types/src/app/components/button.d.ts +3 -0
  22. package/dist/types/src/app/components/card.d.ts +9 -0
  23. package/dist/types/src/app/components/checkbox.d.ts +4 -0
  24. package/dist/types/src/app/components/combobox.d.ts +10 -0
  25. package/dist/types/src/app/components/command-palette.d.ts +3 -1
  26. package/dist/types/src/app/components/container.d.ts +5 -0
  27. package/dist/types/src/app/components/context-menu.d.ts +25 -2
  28. package/dist/types/src/app/components/data-table-section.d.ts +45 -0
  29. package/dist/types/src/app/components/destructive-section.d.ts +32 -0
  30. package/dist/types/src/app/components/dialog.d.ts +20 -2
  31. package/dist/types/src/app/components/disclosure.d.ts +3 -0
  32. package/dist/types/src/app/components/divider.d.ts +4 -0
  33. package/dist/types/src/app/components/empty-state.d.ts +4 -0
  34. package/dist/types/src/app/components/field.d.ts +4 -0
  35. package/dist/types/src/app/components/form-actions.d.ts +26 -0
  36. package/dist/types/src/app/components/grid.d.ts +4 -0
  37. package/dist/types/src/app/components/hds-tooltip.d.ts +14 -2
  38. package/dist/types/src/app/components/hover-card.d.ts +16 -1
  39. package/dist/types/src/app/components/icon.d.ts +4 -0
  40. package/dist/types/src/app/components/inline-link.d.ts +4 -0
  41. package/dist/types/src/app/components/input.d.ts +5 -0
  42. package/dist/types/src/app/components/kbd.d.ts +3 -0
  43. package/dist/types/src/app/components/menu.d.ts +26 -2
  44. package/dist/types/src/app/components/metric-tiles.d.ts +40 -0
  45. package/dist/types/src/app/components/page-header.d.ts +34 -0
  46. package/dist/types/src/app/components/pagination.d.ts +3 -0
  47. package/dist/types/src/app/components/popover.d.ts +14 -2
  48. package/dist/types/src/app/components/progress.d.ts +4 -0
  49. package/dist/types/src/app/components/radio.d.ts +5 -0
  50. package/dist/types/src/app/components/select.d.ts +16 -0
  51. package/dist/types/src/app/components/skeleton.d.ts +4 -0
  52. package/dist/types/src/app/components/slider.d.ts +3 -0
  53. package/dist/types/src/app/components/spinner.d.ts +4 -0
  54. package/dist/types/src/app/components/stack.d.ts +4 -0
  55. package/dist/types/src/app/components/stat.d.ts +4 -0
  56. package/dist/types/src/app/components/status-tile.d.ts +4 -0
  57. package/dist/types/src/app/components/table.d.ts +36 -4
  58. package/dist/types/src/app/components/tabs.d.ts +4 -0
  59. package/dist/types/src/app/components/tag.d.ts +3 -0
  60. package/dist/types/src/app/components/text.d.ts +4 -0
  61. package/dist/types/src/app/components/textarea.d.ts +3 -0
  62. package/dist/types/src/app/components/toast.d.ts +4 -0
  63. package/dist/types/src/app/components/toggle.d.ts +4 -0
  64. package/dist/types/src/app/components/tooltip.d.ts +1 -1
  65. package/dist/types/src/app/components/visually-hidden.d.ts +3 -0
  66. package/dist/types/src/app/context/hds-portal.d.ts +52 -0
  67. package/dist/types/src/app/context/hds-theme.d.ts +10 -0
  68. package/dist/types/src/app/data/manifest-types.d.ts +27 -0
  69. package/dist/types/src/app/design-system/generated-token-refs.d.ts +2 -0
  70. package/dist/types/src/icons.d.ts +13 -0
  71. package/dist/types/src/index.d.ts +20 -1
  72. package/dist/types/src/patterns.d.ts +5 -0
  73. package/dist/variables.css +4 -0
  74. package/docs/CONSUMING.md +758 -0
  75. package/hirobius.tokens.json +17 -0
  76. package/llms.txt +261 -0
  77. package/package.json +21 -4
  78. package/public/hds-manifest.json +1545 -89
  79. package/public/llms/components.txt +1090 -0
  80. package/public/llms/layout.txt +54 -0
  81. package/public/llms/scroll.txt +22 -0
  82. package/public/llms/tokens.txt +32 -0
  83. package/public/llms-full.txt +1561 -0
  84. package/public/llms.txt +261 -0
  85. 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-DIMeUJpW.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-DIMeUJpW.js";
4
+ import { F as aa, b as ta, a as ra, u as ia } from "./chunks/form-BvNNnJ0t.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,241 @@ function V({ cards: a }) {
371
374
  )
372
375
  ] });
373
376
  }
377
+ const re = d.forwardRef(function({ breadcrumb: a, title: s, status: t, actions: n, level: c = 1, className: i, ...l }, h) {
378
+ const g = `h${c}`;
379
+ return /* @__PURE__ */ e(
380
+ "header",
381
+ {
382
+ ref: h,
383
+ "data-hds-component": "PageHeader",
384
+ className: M("w-full", i),
385
+ ...l,
386
+ children: /* @__PURE__ */ o(I, { gap: "tight", children: [
387
+ a ? /* @__PURE__ */ e("div", { "data-slot": "breadcrumb", children: a }) : null,
388
+ /* @__PURE__ */ o(u, { gap: "normal", align: "start", justify: "space-between", children: [
389
+ /* @__PURE__ */ o(u, { gap: "tight", align: "center", children: [
390
+ /* @__PURE__ */ e(
391
+ g,
392
+ {
393
+ style: {
394
+ ...v.typeStyles.heading2,
395
+ margin: 0,
396
+ color: "var(--semantic-color-content-primary)"
397
+ },
398
+ children: s
399
+ }
400
+ ),
401
+ t ? /* @__PURE__ */ e("div", { "data-slot": "status", children: t }) : null
402
+ ] }),
403
+ n ? /* @__PURE__ */ e("div", { "data-slot": "actions", className: "ml-auto", children: /* @__PURE__ */ e(u, { gap: "tight", align: "center", justify: "end", children: n }) }) : null
404
+ ] })
405
+ ] })
406
+ }
407
+ );
408
+ }), U = 4, X = "calc(var(--primitive-size-96) + var(--primitive-size-24))", Y = " ", ie = d.forwardRef(function({ label: a, value: s, sub: t, tone: n = "neutral", style: c, ...i }, l) {
409
+ return /* @__PURE__ */ e(
410
+ _,
411
+ {
412
+ ref: l,
413
+ padding: "item",
414
+ "data-hds-component": "MetricTile",
415
+ "data-tone": n,
416
+ style: { minHeight: X, ...c },
417
+ ...i,
418
+ children: /* @__PURE__ */ e(
419
+ V.Metric,
420
+ {
421
+ label: a,
422
+ value: s,
423
+ sub: t ?? Y,
424
+ tone: n,
425
+ className: "px-0"
426
+ }
427
+ )
428
+ }
429
+ );
430
+ });
431
+ function $(r) {
432
+ return d.Children.toArray(r).reduce((a, s) => d.isValidElement(s) ? s.type === d.Fragment ? a + $(s.props.children) : a + 1 : a, 0);
433
+ }
434
+ const se = d.forwardRef(function({ children: a, ...s }, t) {
435
+ const n = Math.min(Math.max($(a), 1), U);
436
+ return /* @__PURE__ */ e("div", { ref: t, "data-hds-component": "MetricTiles", ...s, children: /* @__PURE__ */ e(E, { columns: n, gap: "tight", children: a }) });
437
+ }), ne = d.forwardRef(function({ primary: a, secondary: s, destructive: t, sticky: n = !1, className: c, style: i, ...l }, h) {
438
+ return /* @__PURE__ */ e(
439
+ "div",
440
+ {
441
+ ref: h,
442
+ "data-hds-component": "FormActions",
443
+ "data-sticky": n ? "true" : void 0,
444
+ className: M(n && "border-t border-border bg-background py-3", c),
445
+ style: n ? { position: "sticky", bottom: 0, ...i } : i,
446
+ ...l,
447
+ children: /* @__PURE__ */ o(u, { gap: "tight", align: "center", justify: t ? "space-between" : "end", children: [
448
+ t ? /* @__PURE__ */ e("div", { "data-slot": "destructive", children: t }) : null,
449
+ /* @__PURE__ */ e("div", { "data-slot": "group", className: "ml-auto", children: /* @__PURE__ */ o(u, { gap: "tight", align: "center", justify: "end", children: [
450
+ s,
451
+ a
452
+ ] }) })
453
+ ] })
454
+ }
455
+ );
456
+ }), oe = d.forwardRef(
457
+ function({
458
+ title: a,
459
+ description: s,
460
+ actionLabel: t,
461
+ confirmLabel: n,
462
+ confirmBody: c,
463
+ onConfirm: i,
464
+ cancelLabel: l = "Cancel",
465
+ level: h = 2,
466
+ ...g
467
+ }, y) {
468
+ const m = d.useId();
469
+ return /* @__PURE__ */ e(
470
+ "section",
471
+ {
472
+ ref: y,
473
+ "data-hds-component": "DestructiveSection",
474
+ "aria-labelledby": m,
475
+ ...g,
476
+ children: /* @__PURE__ */ e(V, { tone: "danger", children: /* @__PURE__ */ o(u, { gap: "normal", align: "center", justify: "space-between", children: [
477
+ /* @__PURE__ */ o("div", { "data-slot": "copy", className: "min-w-0 grow basis-64", children: [
478
+ /* @__PURE__ */ e(S, { id: m, as: `h${h}`, variant: "heading3", children: a }),
479
+ /* @__PURE__ */ e(S, { as: "p", variant: "caption", className: "text-muted-foreground", children: s })
480
+ ] }),
481
+ /* @__PURE__ */ e("div", { "data-slot": "action", className: "shrink-0", children: /* @__PURE__ */ o(p, { children: [
482
+ /* @__PURE__ */ e(p.Trigger, { asChild: !0, children: /* @__PURE__ */ e(w, { variant: "secondary", tone: "danger", children: t ?? n }) }),
483
+ /* @__PURE__ */ o(p.Content, { children: [
484
+ /* @__PURE__ */ o(p.Header, { children: [
485
+ /* @__PURE__ */ e(p.Title, { children: a }),
486
+ /* @__PURE__ */ e(p.Description, { children: c })
487
+ ] }),
488
+ /* @__PURE__ */ o(p.Footer, { children: [
489
+ /* @__PURE__ */ e(p.Cancel, { asChild: !0, children: /* @__PURE__ */ e(w, { variant: "secondary", children: l }) }),
490
+ /* @__PURE__ */ e(p.Action, { asChild: !0, children: /* @__PURE__ */ e(w, { variant: "primary", tone: "danger", onClick: i, children: n }) })
491
+ ] })
492
+ ] })
493
+ ] }) })
494
+ ] }) })
495
+ }
496
+ );
497
+ }
498
+ ), q = "8rem", K = "6rem", le = d.forwardRef(
499
+ function({
500
+ title: a,
501
+ toolbar: s,
502
+ columns: t,
503
+ rows: n,
504
+ actionsLabel: c = "Actions",
505
+ emptyTitle: i = "Nothing here yet",
506
+ emptyDescription: l,
507
+ level: h = 2,
508
+ ...g
509
+ }, y) {
510
+ const m = d.useId(), b = n.some((f) => f.actions != null), F = b ? [
511
+ ...t,
512
+ { key: "__actions", label: c, align: "right", width: "max-content" }
513
+ ] : t, j = n.map((f) => ({
514
+ key: f.key,
515
+ cells: [
516
+ ...f.cells.map((H, L) => {
517
+ var T;
518
+ return {
519
+ slot: "custom",
520
+ content: H,
521
+ align: (T = t[L]) == null ? void 0 : T.align
522
+ };
523
+ }),
524
+ ...b ? [
525
+ {
526
+ slot: "action",
527
+ align: "right",
528
+ content: /* @__PURE__ */ e(u, { gap: "tight", align: "center", justify: "end", children: f.actions })
529
+ }
530
+ ] : []
531
+ ]
532
+ })), D = `calc(${t.length} * ${q}${b ? ` + ${K}` : ""})`;
533
+ return /* @__PURE__ */ e(
534
+ "section",
535
+ {
536
+ ref: y,
537
+ "data-hds-component": "DataTableSection",
538
+ "aria-labelledby": m,
539
+ ...g,
540
+ children: /* @__PURE__ */ o(I, { gap: "tight", children: [
541
+ /* @__PURE__ */ o(u, { gap: "normal", align: "center", justify: "space-between", children: [
542
+ /* @__PURE__ */ e(S, { id: m, as: `h${h}`, variant: "heading3", children: a }),
543
+ s ? /* @__PURE__ */ e("div", { "data-slot": "toolbar", className: "ml-auto", children: /* @__PURE__ */ e(u, { gap: "tight", align: "center", justify: "end", children: s }) }) : null
544
+ ] }),
545
+ n.length === 0 ? /* @__PURE__ */ e(P, { title: i, description: l }) : /* @__PURE__ */ e(
546
+ z,
547
+ {
548
+ columns: F,
549
+ rows: j,
550
+ minWidth: D,
551
+ labelledBy: m
552
+ }
553
+ )
554
+ ] })
555
+ }
556
+ );
557
+ }
558
+ );
374
559
  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
560
+ he as ActivityFeed,
561
+ pe as AppShell,
562
+ ue as AssetImg,
563
+ me as Calendar,
564
+ ge as Carousel,
565
+ fe as CodeBlock,
566
+ ve as CommandPalette,
567
+ le as DataTableSection,
568
+ oe as DestructiveSection,
569
+ ye as DocLinkCard,
570
+ be as ErrorPattern,
571
+ we as FileInput,
572
+ aa as Form,
573
+ ne as FormActions,
574
+ ta as FormField,
575
+ ra as FormFieldShell,
576
+ xe as Lightbox,
577
+ ie as MetricTile,
578
+ se as MetricTiles,
579
+ ke as NavItem,
580
+ Se as OverflowList,
581
+ Ce as Page,
582
+ re as PageHeader,
583
+ Te as Reveal,
584
+ Ne as SideNav,
585
+ te as StackedCardRail,
586
+ Ie as Stepper,
587
+ Ve as Toolbar,
588
+ Ae as TopNav,
589
+ Me as TreeList,
590
+ Re as activityAvatarVariants,
591
+ $e as activityToneVariants,
592
+ Fe as appShellVariants,
593
+ je as blockCodeTextVariants,
594
+ De as blockContainerVariants,
595
+ He as blockHeaderVariants,
596
+ Le as carouselControlVariants,
597
+ _e as chevronVariants,
598
+ Ee as cmdkDescriptionVariants,
599
+ Pe as cmdkKindBadgeVariants,
600
+ ze as cmdkRowVariants,
601
+ Be as collapsibleToggleVariants,
602
+ We as copyButtonVariants,
603
+ Oe as defaultActivityEvents,
604
+ Ge as docLinkCardVariants,
605
+ Ue as fileInputVariants,
606
+ Xe as inlineCodeTextVariants,
607
+ Ye as inlineWrapperVariants,
608
+ qe as navIndicatorVariants,
609
+ Ke as navItemVariants,
610
+ Je as prePanelVariants,
611
+ Qe as sideNavVariants,
612
+ Ze as stepMarkerVariants,
613
+ ia as useFieldWiring
423
614
  };
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;