@godxjp/ui 18.5.0 → 18.7.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 (101) hide show
  1. package/dist/components/charts/compact-bar-trend.d.ts +2 -1
  2. package/dist/components/charts/index.d.ts +4 -1
  3. package/dist/components/data-display/data-table.d.ts +25 -4
  4. package/dist/components/data-display/data-table.js +13 -2
  5. package/dist/components/data-display/empty-state.js +1 -1
  6. package/dist/components/data-display/index.d.ts +1 -1
  7. package/dist/components/data-display/list-row.d.ts +19 -0
  8. package/dist/components/data-display/list-row.js +2 -0
  9. package/dist/components/data-display/qr-code.d.ts +1 -1
  10. package/dist/components/data-display/table.d.ts +47 -2
  11. package/dist/components/data-display/table.js +29 -4
  12. package/dist/components/data-entry/command.d.ts +10 -10
  13. package/dist/components/data-entry/index.d.ts +1 -0
  14. package/dist/components/data-entry/input-otp.d.ts +1 -0
  15. package/dist/components/feedback/alert.d.ts +20 -2
  16. package/dist/components/feedback/alert.js +11 -1
  17. package/dist/components/feedback/dialog.d.ts +14 -1
  18. package/dist/components/feedback/dialog.js +4 -0
  19. package/dist/components/feedback/index.d.ts +3 -3
  20. package/dist/components/feedback/index.js +5 -1
  21. package/dist/components/general/logo.d.ts +7 -1
  22. package/dist/components/general/logo.js +1 -1
  23. package/dist/components/layout/app-shell.d.ts +1 -1
  24. package/dist/components/layout/app-shell.js +55 -46
  25. package/dist/components/layout/auth-account-summary.d.ts +5 -0
  26. package/dist/components/layout/auth-account-summary.js +31 -0
  27. package/dist/components/layout/auth-shell.d.ts +5 -2
  28. package/dist/components/layout/centered-shell.d.ts +1 -1
  29. package/dist/components/layout/centered-shell.js +28 -19
  30. package/dist/components/layout/error-surface.d.ts +35 -0
  31. package/dist/components/layout/error-surface.js +155 -0
  32. package/dist/components/layout/flex.d.ts +1 -1
  33. package/dist/components/layout/flex.js +4 -0
  34. package/dist/components/layout/index.d.ts +7 -0
  35. package/dist/components/layout/index.js +6 -0
  36. package/dist/components/layout/page-container.d.ts +1 -1
  37. package/dist/components/layout/page-container.js +23 -41
  38. package/dist/components/layout/page-header.d.ts +22 -0
  39. package/dist/components/layout/page-header.js +89 -0
  40. package/dist/components/navigation/filter-bar.d.ts +2 -2
  41. package/dist/components/navigation/filter-bar.js +44 -1
  42. package/dist/components/navigation/index.d.ts +1 -1
  43. package/dist/components/navigation/steps.js +38 -19
  44. package/dist/components/navigation/tabs.js +12 -3
  45. package/dist/components/ui/avatar.d.ts +2 -1
  46. package/dist/components/ui/avatar.js +2 -1
  47. package/dist/components/ui/input-otp.d.ts +4 -1
  48. package/dist/components/ui/input-otp.js +2 -1
  49. package/dist/components/ui/toggle-group.d.ts +7 -4
  50. package/dist/components/ui/toggle-group.js +32 -21
  51. package/dist/email/brand-mark.d.ts +21 -5
  52. package/dist/email/brand-mark.js +5 -0
  53. package/dist/email/color.d.ts +2 -1
  54. package/dist/email/geometry.d.ts +9 -1
  55. package/dist/email/geometry.js +1 -0
  56. package/dist/email/index.d.ts +6 -1
  57. package/dist/email/index.js +6 -0
  58. package/dist/email/inline-style.d.ts +7 -5
  59. package/dist/email/inline-style.js +5 -0
  60. package/dist/email/tokens.generated.d.ts +40 -20
  61. package/dist/email/tokens.generated.js +40 -20
  62. package/dist/email/urgency.d.ts +22 -0
  63. package/dist/email/urgency.js +14 -0
  64. package/dist/i18n/messages/en.json +26 -1
  65. package/dist/i18n/messages/ja.json +23 -1
  66. package/dist/i18n/messages/vi.json +23 -1
  67. package/dist/props/components/data-display.prop.d.ts +63 -1
  68. package/dist/props/components/data-entry.prop.d.ts +6 -0
  69. package/dist/props/components/feedback.prop.d.ts +6 -0
  70. package/dist/props/components/index.d.ts +1 -1
  71. package/dist/props/components/layout.prop.d.ts +244 -4
  72. package/dist/props/components/navigation.prop.d.ts +57 -1
  73. package/dist/props/registry.d.ts +205 -5
  74. package/dist/props/registry.js +270 -6
  75. package/dist/props/vocabulary/data.prop.d.ts +27 -0
  76. package/dist/props/vocabulary/index.d.ts +3 -3
  77. package/dist/props/vocabulary/interaction.prop.d.ts +19 -2
  78. package/dist/props/vocabulary/layout.prop.d.ts +41 -7
  79. package/dist/styles/alert-layout.css +36 -0
  80. package/dist/styles/control.css +28 -0
  81. package/dist/styles/data-display-layout.css +26 -0
  82. package/dist/styles/layout.css +212 -0
  83. package/dist/styles/logo-layout.css +42 -9
  84. package/dist/styles/navigation-layout.css +109 -0
  85. package/dist/styles/shell-layout.css +336 -0
  86. package/dist/styles/table-layout.css +164 -1
  87. package/dist/theme/dxs.canonical.css +5 -4
  88. package/dist/tokens/axes.css +4 -3
  89. package/dist/tokens/base.css +1 -0
  90. package/dist/tokens/components/data-display.css +13 -0
  91. package/dist/tokens/components/email.css +43 -16
  92. package/dist/tokens/components/error-surface.css +36 -0
  93. package/dist/tokens/components/feedback.css +20 -0
  94. package/dist/tokens/components/list-row.css +20 -0
  95. package/dist/tokens/components/logo.css +52 -10
  96. package/dist/tokens/components/navigation.css +41 -0
  97. package/dist/tokens/components/shell.css +109 -0
  98. package/dist/tokens/components/table.css +45 -0
  99. package/dist/tokens/foundation.css +26 -0
  100. package/dist/tokens/semantic/layout.css +38 -0
  101. package/package.json +8 -2
@@ -194,10 +194,35 @@ export declare const VOCABULARY_REGISTRY: {
194
194
  readonly category: "layout";
195
195
  readonly description: "CenteredShell column block alignment — start (flowing page), center (system surface)";
196
196
  };
197
+ readonly CenteredShellPresetProp: {
198
+ readonly file: "vocabulary/layout.prop.ts";
199
+ readonly category: "layout";
200
+ readonly description: "CenteredShell whole-page preset — default (untouched box) | public-landing (token-owned public landing measure, section rhythm, flat chrome and hero h1 tier)";
201
+ };
202
+ readonly TablePresetProp: {
203
+ readonly file: "vocabulary/data.prop.ts";
204
+ readonly category: "data";
205
+ readonly description: "Table collection preset — default | action-collection (dense approval/action queue: column-priority measures below the collapse step instead of desktop intrinsic widths)";
206
+ };
207
+ readonly TableColumnPriorityProp: {
208
+ readonly file: "vocabulary/data.prop.ts";
209
+ readonly category: "data";
210
+ readonly description: "Table column priority for the action-collection preset — primary | secondary | meta | actions (unset = takes the remaining space)";
211
+ };
212
+ readonly ErrorSurfaceModeProp: {
213
+ readonly file: "vocabulary/layout.prop.ts";
214
+ readonly category: "layout";
215
+ readonly description: "ErrorSurface shell contract — application (403/404 body inside the route's existing AppShell) vs system (500/503 owns the page via CenteredShell align=center)";
216
+ };
217
+ readonly ErrorSurfaceStatusProp: {
218
+ readonly file: "vocabulary/layout.prop.ts";
219
+ readonly category: "layout";
220
+ readonly description: "HTTP status an ErrorSurface presents — 403 | 404 | 500 | 503 (numeric); drives the default icon, tone and mode";
221
+ };
197
222
  readonly AuthShellPresetProp: {
198
223
  readonly file: "vocabulary/layout.prop.ts";
199
224
  readonly category: "layout";
200
- readonly description: "AuthShell named flow measure — default | device-authorization (380px card, 5px mobile gutter) | context-selection (25rem card, edge-to-edge mobile) | account-recovery (432px SCR-008 recovery/MFA panel, 15px mobile gutter)";
225
+ readonly description: "AuthShell named flow geometry — default | login (stable SCR-001 identity/card/footer anchor) | device-authorization (380px card, 5px mobile gutter) | context-selection (25rem card, edge-to-edge mobile) | account-recovery (432px SCR-008 recovery/MFA panel, 15px mobile gutter)";
201
226
  };
202
227
  readonly GapProp: {
203
228
  readonly file: "vocabulary/layout.prop.ts";
@@ -234,6 +259,11 @@ export declare const VOCABULARY_REGISTRY: {
234
259
  readonly category: "interaction";
235
260
  readonly description: "Corner shape default | pill | sharp — shared by Button + Badge (radius tokens)";
236
261
  };
262
+ readonly AvatarShapeProp: {
263
+ readonly file: "vocabulary/interaction.prop.ts";
264
+ readonly category: "interaction";
265
+ readonly description: "Avatar geometry circle (person, --radius-pill) | square (entity-header organization/service mark, --avatar-square-* tokens) — a rounded rect ShapeProp cannot express";
266
+ };
237
267
  readonly TextSizeProp: {
238
268
  readonly file: "vocabulary/interaction.prop.ts";
239
269
  readonly category: "interaction";
@@ -357,7 +387,7 @@ export declare const VOCABULARY_REGISTRY: {
357
387
  readonly ColumnDefProp: {
358
388
  readonly file: "vocabulary/data.prop.ts";
359
389
  readonly category: "data";
360
- readonly description: "DataTable column definition";
390
+ readonly description: "DataTable column definition — key/header/render/sortable/align/width/pin/hiddenOnMobile/enableHiding/ariaLabel plus `priority` (TableColumnPriorityProp), read by DataTable preset=\"action-collection\"";
361
391
  };
362
392
  readonly SelectedIdsProp: {
363
393
  readonly file: "vocabulary/data.prop.ts";
@@ -421,13 +451,52 @@ export declare const COMPONENT_PROP_REGISTRY: {
421
451
  readonly file: "components/layout.prop.ts";
422
452
  readonly vocabulary: readonly [];
423
453
  };
454
+ readonly PageContainerMeasureProp: {
455
+ readonly group: "layout";
456
+ readonly file: "components/layout.prop.ts";
457
+ readonly vocabulary: readonly [];
458
+ };
459
+ readonly PageContainerPresetProp: {
460
+ readonly group: "layout";
461
+ readonly file: "components/layout.prop.ts";
462
+ readonly vocabulary: readonly [];
463
+ };
464
+ readonly PageHeaderProp: {
465
+ readonly group: "layout";
466
+ readonly file: "components/layout.prop.ts";
467
+ readonly vocabulary: readonly ["TitleProp", "SubtitleProp", "ExtraProp", "BreadcrumbProp", {
468
+ readonly field: "meta";
469
+ readonly local: true;
470
+ readonly reason: "Status/meta band rendered inline with the `<h1>` (a Badge tone, a record id, a timestamp). A free ReactNode slot, not a controlled value — the header never interprets what it holds.";
471
+ }, {
472
+ readonly field: "layout";
473
+ readonly local: true;
474
+ readonly reason: "Header ARRANGEMENT of the title band vs the extra slot below the 640px step (stack | responsive-inline) — the standalone spelling of PageContainer's `headerLayout`.";
475
+ }, {
476
+ readonly field: "loading";
477
+ readonly local: true;
478
+ readonly reason: "Pending state of the TITLE BAND only (skeleton title/subtitle + aria-busy), distinct from a page-wide DataState: breadcrumbs and actions come from the route and stay live while the record resolves.";
479
+ }];
480
+ };
424
481
  readonly PageContainerProp: {
425
482
  readonly group: "layout";
426
483
  readonly file: "components/layout.prop.ts";
427
484
  readonly vocabulary: readonly ["TitleProp", "SubtitleProp", "ExtraProp", "FooterProp", "BreadcrumbProp", "DensityProp", "PageContainerVariantProp", {
485
+ readonly field: "meta";
486
+ readonly local: true;
487
+ readonly reason: "Forwarded verbatim to PageHeader's `meta` slot — see PageHeaderProp.";
488
+ }, {
489
+ readonly field: "headerLoading";
490
+ readonly local: true;
491
+ readonly reason: "Forwarded to PageHeader's `loading`. Named for the BAND it skeletonises, so it can never be read as a page-wide loading flag (that is DataState's job).";
492
+ }, {
428
493
  readonly field: "headerLayout";
429
494
  readonly local: true;
430
495
  readonly reason: "Header ARRANGEMENT of the title band vs the extra slot below the 640px step (stack | responsive-inline) — orthogonal to PageContainerVariantProp, which selects the page shell layout.";
496
+ }, {
497
+ readonly field: "measure";
498
+ readonly local: true;
499
+ readonly reason: "Bounded page MEASURE shared by the header and body (default | narrow | medium), backed by --page-measure-*. A third orthogonal axis: PageContainerVariantProp owns page CHROME, this owns the inline cap, so a quiet ghost page can also be measure-bounded.";
431
500
  }];
432
501
  };
433
502
  readonly FlexDirectionProp: {
@@ -464,6 +533,14 @@ export declare const COMPONENT_PROP_REGISTRY: {
464
533
  readonly field: "wrap";
465
534
  readonly local: true;
466
535
  readonly reason: "Flex-specific boolean shorthand for flex-wrap.";
536
+ }, "BreakpointProp", {
537
+ readonly field: "hideBelow";
538
+ readonly local: true;
539
+ readonly reason: "Responsive region visibility at a canonical breakpoint step — the public alternative to a page-local media query (gh#252).";
540
+ }, {
541
+ readonly field: "hideFrom";
542
+ readonly local: true;
543
+ readonly reason: "Inverse of hideBelow — keeps a compact-only region off the wide layout.";
467
544
  }];
468
545
  };
469
546
  readonly ResponsiveGridColumnsProp: {
@@ -581,10 +658,66 @@ export declare const COMPONENT_PROP_REGISTRY: {
581
658
  readonly reason: "Authoritative requesting-client context for a delegated auth flow (device grant / consent).";
582
659
  }];
583
660
  };
661
+ readonly AuthAccountSummaryProp: {
662
+ readonly group: "layout";
663
+ readonly file: "components/layout.prop.ts";
664
+ readonly vocabulary: readonly ["DisabledProp", "ClassNameProp"];
665
+ readonly local: readonly ["email", "avatarSrc", "avatarFallback", "actionLabel", "onAction"];
666
+ };
584
667
  readonly CenteredShellProp: {
585
668
  readonly group: "layout";
586
669
  readonly file: "components/layout.prop.ts";
587
- readonly vocabulary: readonly ["ChildrenProp", "ClassNameProp", "CenteredShellWidthProp", "CenteredShellAlignProp"];
670
+ readonly vocabulary: readonly ["ChildrenProp", "ClassNameProp", "CenteredShellWidthProp", "CenteredShellAlignProp", "CenteredShellPresetProp"];
671
+ };
672
+ readonly ErrorSurfaceMaintenanceProp: {
673
+ readonly group: "layout";
674
+ readonly file: "components/layout.prop.ts";
675
+ readonly vocabulary: readonly [{
676
+ readonly field: "start";
677
+ readonly local: true;
678
+ readonly reason: "ISO 8601 instant starting the maintenance window; formatted via Intl.DateTimeFormat and emitted as the <time dateTime> value.";
679
+ }, {
680
+ readonly field: "end";
681
+ readonly local: true;
682
+ readonly reason: "ISO 8601 instant ending the window; omitted for an open-ended outage.";
683
+ }, {
684
+ readonly field: "timeZone";
685
+ readonly local: true;
686
+ readonly reason: "IANA time zone id the window is presented in — explicit so SSR and client output cannot diverge.";
687
+ }, {
688
+ readonly field: "progress";
689
+ readonly local: true;
690
+ readonly reason: "Server-sent 0–100 completion of the maintenance window; deriving it from the client clock would break hydration.";
691
+ }];
692
+ };
693
+ readonly ErrorSurfaceProp: {
694
+ readonly group: "layout";
695
+ readonly file: "components/layout.prop.ts";
696
+ readonly vocabulary: readonly ["ErrorSurfaceModeProp", "ErrorSurfaceStatusProp", "TitleProp", "DescriptionProp", "ActionProp", "IconProp", "HeadingLevelProp", "FooterProp", "CenteredShellWidthProp", "IdProp", "ClassNameProp", {
697
+ readonly field: "tone";
698
+ readonly local: true;
699
+ readonly reason: "Reuses the EmptyStateToneProp union verbatim (the surface renders an EmptyState) — a status-derived default the consumer may override, not a new tone vocabulary.";
700
+ }, {
701
+ readonly field: "requestId";
702
+ readonly local: true;
703
+ readonly reason: "Support correlation id for the failure, rendered as a mono/tabular metadata row — an identifier, not a LabelProp.";
704
+ }, {
705
+ readonly field: "permission";
706
+ readonly local: true;
707
+ readonly reason: "The permission/role the viewer is missing (403). The localized label is the surface's; the value is the bare permission name.";
708
+ }, {
709
+ readonly field: "organization";
710
+ readonly local: true;
711
+ readonly reason: "The organization/tenant the failed request was scoped to — disambiguates a wrong-workspace 403 from a missing-role 403.";
712
+ }, {
713
+ readonly field: "maintenance";
714
+ readonly local: true;
715
+ readonly reason: "ErrorSurfaceMaintenanceProp timing/progress slot (ISO 8601 + IANA), formatted with Intl.DateTimeFormat.";
716
+ }, {
717
+ readonly field: "brand";
718
+ readonly local: true;
719
+ readonly reason: "system-mode brand slot above the status code (a Logo); the application shell already shows the brand.";
720
+ }];
588
721
  };
589
722
  readonly LegalDocumentSectionProp: {
590
723
  readonly group: "layout";
@@ -925,6 +1058,11 @@ export declare const COMPONENT_PROP_REGISTRY: {
925
1058
  readonly file: "components/data-display.prop.ts";
926
1059
  readonly vocabulary: readonly ["LabelProp", "ValueProp"];
927
1060
  };
1061
+ readonly AvatarProp: {
1062
+ readonly group: "data-display";
1063
+ readonly file: "components/data-display.prop.ts";
1064
+ readonly vocabulary: readonly ["AvatarShapeProp", "ChildrenProp", "ClassNameProp"];
1065
+ };
928
1066
  readonly BadgeProp: {
929
1067
  readonly group: "data-display";
930
1068
  readonly file: "components/data-display.prop.ts";
@@ -933,7 +1071,25 @@ export declare const COMPONENT_PROP_REGISTRY: {
933
1071
  readonly DataTableProp: {
934
1072
  readonly group: "data-display";
935
1073
  readonly file: "components/data-display.prop.ts";
936
- readonly vocabulary: readonly ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp", "HandlerProp"];
1074
+ readonly vocabulary: readonly ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp", "HandlerProp", "TablePresetProp", "TableColumnPriorityProp", "BreakpointProp"];
1075
+ };
1076
+ readonly ListRowDensityProp: {
1077
+ readonly group: "data-display";
1078
+ readonly file: "components/data-display.prop.ts";
1079
+ readonly vocabulary: readonly [];
1080
+ };
1081
+ readonly ListRowProp: {
1082
+ readonly group: "data-display";
1083
+ readonly file: "components/data-display.prop.ts";
1084
+ readonly vocabulary: readonly ["TitleProp", "DescriptionProp", "ClassNameProp", {
1085
+ readonly field: "density";
1086
+ readonly local: true;
1087
+ readonly reason: "ListRow-local density subset (default | compact) — the compact inline-actions geometry (#246). No `comfortable` step, and unrelated to PageDensityProp/TableDensityProp.";
1088
+ }, {
1089
+ readonly field: "overflow";
1090
+ readonly local: true;
1091
+ readonly reason: "Row-local overflow resolution for the title/description column (truncate | wrap, #224).";
1092
+ }];
937
1093
  };
938
1094
  readonly CredentialRevealProp: {
939
1095
  readonly group: "data-display";
@@ -1219,6 +1375,11 @@ export declare const COMPONENT_PROP_REGISTRY: {
1219
1375
  readonly file: "components/feedback.prop.ts";
1220
1376
  readonly vocabulary: readonly ["AlertVariantProp", "ToneProp", "IconProp", "OnValueChangeProp", "ClassNameProp", "ChildrenProp"];
1221
1377
  };
1378
+ readonly BannerProp: {
1379
+ readonly group: "feedback";
1380
+ readonly file: "components/feedback.prop.ts";
1381
+ readonly vocabulary: readonly ["ToneProp", "IconProp", "OnValueChangeProp", "ClassNameProp", "ChildrenProp"];
1382
+ };
1222
1383
  readonly AlertTitleProp: {
1223
1384
  readonly group: "feedback";
1224
1385
  readonly file: "components/feedback.prop.ts";
@@ -1252,7 +1413,36 @@ export declare const COMPONENT_PROP_REGISTRY: {
1252
1413
  readonly ToolbarProp: {
1253
1414
  readonly group: "navigation";
1254
1415
  readonly file: "components/navigation.prop.ts";
1255
- readonly vocabulary: readonly ["OnClearFiltersProp", "HasActiveFiltersProp", "StickyProp", "ClassNameProp", "ChildrenProp"];
1416
+ readonly vocabulary: readonly ["OnClearFiltersProp", "HasActiveFiltersProp", "StickyProp", "ClassNameProp", "ChildrenProp", {
1417
+ readonly field: "search";
1418
+ readonly local: true;
1419
+ readonly reason: "SLOT for the caller's own search control, positioned at the start of the row and measured by --filter-bar-search-width. Not a value/onValueChange pair: the bar owns the search's PLACE and WIDTH, never its state (gh#258).";
1420
+ }, {
1421
+ readonly field: "chips";
1422
+ readonly local: true;
1423
+ readonly reason: "APPLIED filters as removable chips — the visible record of filters already in effect, distinct from the controls that set them. A bar-specific shape (id/label/onRemove), not a shared vocabulary type (gh#258).";
1424
+ }, {
1425
+ readonly field: "onChipRemove";
1426
+ readonly local: true;
1427
+ readonly reason: "Chip-removal callback keyed by chip id. Not `onValueChange`: it reports ONE lifted filter rather than the bar's whole value, which the bar deliberately does not hold (gh#258).";
1428
+ }, {
1429
+ readonly field: "resultCount";
1430
+ readonly local: true;
1431
+ readonly reason: "Number of records the current filters resolve to, announced in a polite live region and formatted via Intl.NumberFormat + CLDR plurals. Presentational output, not a controlled value (gh#258).";
1432
+ }, {
1433
+ readonly field: "actions";
1434
+ readonly local: true;
1435
+ readonly reason: "Trailing action SLOT (export, column settings, saved views), ordered AFTER the reset control by the bar so `clear filters` never sits beside an unrelated primary action (gh#258).";
1436
+ }];
1437
+ };
1438
+ readonly FilterBarChipProp: {
1439
+ readonly group: "navigation";
1440
+ readonly file: "components/navigation.prop.ts";
1441
+ readonly vocabulary: readonly ["IdProp", "LabelProp", {
1442
+ readonly field: "onRemove";
1443
+ readonly local: true;
1444
+ readonly reason: "Per-chip removal. Omitting it is meaningful — the chip renders with NO remove control (a filter the user may not lift), rather than a disabled button that is a dead tab stop (gh#258).";
1445
+ }];
1256
1446
  };
1257
1447
  readonly FilterBarOverflowProp: {
1258
1448
  readonly group: "navigation";
@@ -1274,6 +1464,16 @@ export declare const COMPONENT_PROP_REGISTRY: {
1274
1464
  readonly file: "components/navigation.prop.ts";
1275
1465
  readonly vocabulary: readonly ["ValueProp", "DefaultValueProp", "SizeProp", "OnValueChangeProp", "ClassNameProp"];
1276
1466
  };
1467
+ readonly InputOTPGroupProp: {
1468
+ readonly group: "data-entry";
1469
+ readonly file: "components/data-entry.prop.ts";
1470
+ readonly vocabulary: readonly ["ClassNameProp"];
1471
+ };
1472
+ readonly InputOTPGroupAppearanceProp: {
1473
+ readonly group: "data-entry";
1474
+ readonly file: "components/data-entry.prop.ts";
1475
+ readonly vocabulary: readonly [];
1476
+ };
1277
1477
  readonly StepItemProp: {
1278
1478
  readonly group: "navigation";
1279
1479
  readonly file: "components/navigation.prop.ts";
@@ -192,10 +192,35 @@ const VOCABULARY_REGISTRY = {
192
192
  category: "layout",
193
193
  description: "CenteredShell column block alignment \u2014 start (flowing page), center (system surface)"
194
194
  },
195
+ CenteredShellPresetProp: {
196
+ file: "vocabulary/layout.prop.ts",
197
+ category: "layout",
198
+ description: "CenteredShell whole-page preset \u2014 default (untouched box) | public-landing (token-owned public landing measure, section rhythm, flat chrome and hero h1 tier)"
199
+ },
200
+ TablePresetProp: {
201
+ file: "vocabulary/data.prop.ts",
202
+ category: "data",
203
+ description: "Table collection preset \u2014 default | action-collection (dense approval/action queue: column-priority measures below the collapse step instead of desktop intrinsic widths)"
204
+ },
205
+ TableColumnPriorityProp: {
206
+ file: "vocabulary/data.prop.ts",
207
+ category: "data",
208
+ description: "Table column priority for the action-collection preset \u2014 primary | secondary | meta | actions (unset = takes the remaining space)"
209
+ },
210
+ ErrorSurfaceModeProp: {
211
+ file: "vocabulary/layout.prop.ts",
212
+ category: "layout",
213
+ description: "ErrorSurface shell contract \u2014 application (403/404 body inside the route's existing AppShell) vs system (500/503 owns the page via CenteredShell align=center)"
214
+ },
215
+ ErrorSurfaceStatusProp: {
216
+ file: "vocabulary/layout.prop.ts",
217
+ category: "layout",
218
+ description: "HTTP status an ErrorSurface presents \u2014 403 | 404 | 500 | 503 (numeric); drives the default icon, tone and mode"
219
+ },
195
220
  AuthShellPresetProp: {
196
221
  file: "vocabulary/layout.prop.ts",
197
222
  category: "layout",
198
- description: "AuthShell named flow measure \u2014 default | device-authorization (380px card, 5px mobile gutter) | context-selection (25rem card, edge-to-edge mobile) | account-recovery (432px SCR-008 recovery/MFA panel, 15px mobile gutter)"
223
+ description: "AuthShell named flow geometry \u2014 default | login (stable SCR-001 identity/card/footer anchor) | device-authorization (380px card, 5px mobile gutter) | context-selection (25rem card, edge-to-edge mobile) | account-recovery (432px SCR-008 recovery/MFA panel, 15px mobile gutter)"
199
224
  },
200
225
  GapProp: {
201
226
  file: "vocabulary/layout.prop.ts",
@@ -233,6 +258,11 @@ const VOCABULARY_REGISTRY = {
233
258
  category: "interaction",
234
259
  description: "Corner shape default | pill | sharp \u2014 shared by Button + Badge (radius tokens)"
235
260
  },
261
+ AvatarShapeProp: {
262
+ file: "vocabulary/interaction.prop.ts",
263
+ category: "interaction",
264
+ description: "Avatar geometry circle (person, --radius-pill) | square (entity-header organization/service mark, --avatar-square-* tokens) \u2014 a rounded rect ShapeProp cannot express"
265
+ },
236
266
  TextSizeProp: {
237
267
  file: "vocabulary/interaction.prop.ts",
238
268
  category: "interaction",
@@ -358,7 +388,7 @@ const VOCABULARY_REGISTRY = {
358
388
  ColumnDefProp: {
359
389
  file: "vocabulary/data.prop.ts",
360
390
  category: "data",
361
- description: "DataTable column definition"
391
+ description: 'DataTable column definition \u2014 key/header/render/sortable/align/width/pin/hiddenOnMobile/enableHiding/ariaLabel plus `priority` (TableColumnPriorityProp), read by DataTable preset="action-collection"'
362
392
  },
363
393
  SelectedIdsProp: {
364
394
  file: "vocabulary/data.prop.ts",
@@ -425,6 +455,41 @@ const COMPONENT_PROP_REGISTRY = {
425
455
  file: "components/layout.prop.ts",
426
456
  vocabulary: []
427
457
  },
458
+ PageContainerMeasureProp: {
459
+ group: "layout",
460
+ file: "components/layout.prop.ts",
461
+ vocabulary: []
462
+ },
463
+ PageContainerPresetProp: {
464
+ group: "layout",
465
+ file: "components/layout.prop.ts",
466
+ vocabulary: []
467
+ },
468
+ PageHeaderProp: {
469
+ group: "layout",
470
+ file: "components/layout.prop.ts",
471
+ vocabulary: [
472
+ "TitleProp",
473
+ "SubtitleProp",
474
+ "ExtraProp",
475
+ "BreadcrumbProp",
476
+ {
477
+ field: "meta",
478
+ local: true,
479
+ reason: "Status/meta band rendered inline with the `<h1>` (a Badge tone, a record id, a timestamp). A free ReactNode slot, not a controlled value \u2014 the header never interprets what it holds."
480
+ },
481
+ {
482
+ field: "layout",
483
+ local: true,
484
+ reason: "Header ARRANGEMENT of the title band vs the extra slot below the 640px step (stack | responsive-inline) \u2014 the standalone spelling of PageContainer's `headerLayout`."
485
+ },
486
+ {
487
+ field: "loading",
488
+ local: true,
489
+ reason: "Pending state of the TITLE BAND only (skeleton title/subtitle + aria-busy), distinct from a page-wide DataState: breadcrumbs and actions come from the route and stay live while the record resolves."
490
+ }
491
+ ]
492
+ },
428
493
  PageContainerProp: {
429
494
  group: "layout",
430
495
  file: "components/layout.prop.ts",
@@ -436,10 +501,25 @@ const COMPONENT_PROP_REGISTRY = {
436
501
  "BreadcrumbProp",
437
502
  "DensityProp",
438
503
  "PageContainerVariantProp",
504
+ {
505
+ field: "meta",
506
+ local: true,
507
+ reason: "Forwarded verbatim to PageHeader's `meta` slot \u2014 see PageHeaderProp."
508
+ },
509
+ {
510
+ field: "headerLoading",
511
+ local: true,
512
+ reason: "Forwarded to PageHeader's `loading`. Named for the BAND it skeletonises, so it can never be read as a page-wide loading flag (that is DataState's job)."
513
+ },
439
514
  {
440
515
  field: "headerLayout",
441
516
  local: true,
442
517
  reason: "Header ARRANGEMENT of the title band vs the extra slot below the 640px step (stack | responsive-inline) \u2014 orthogonal to PageContainerVariantProp, which selects the page shell layout."
518
+ },
519
+ {
520
+ field: "measure",
521
+ local: true,
522
+ reason: "Bounded page MEASURE shared by the header and body (default | narrow | medium), backed by --page-measure-*. A third orthogonal axis: PageContainerVariantProp owns page CHROME, this owns the inline cap, so a quiet ghost page can also be measure-bounded."
443
523
  }
444
524
  ]
445
525
  },
@@ -454,7 +534,18 @@ const COMPONENT_PROP_REGISTRY = {
454
534
  "GapProp",
455
535
  { field: "align", local: true, reason: "Flex-specific align-items keyword subset." },
456
536
  { field: "justify", local: true, reason: "Flex-specific justify-content keyword subset." },
457
- { field: "wrap", local: true, reason: "Flex-specific boolean shorthand for flex-wrap." }
537
+ { field: "wrap", local: true, reason: "Flex-specific boolean shorthand for flex-wrap." },
538
+ "BreakpointProp",
539
+ {
540
+ field: "hideBelow",
541
+ local: true,
542
+ reason: "Responsive region visibility at a canonical breakpoint step \u2014 the public alternative to a page-local media query (gh#252)."
543
+ },
544
+ {
545
+ field: "hideFrom",
546
+ local: true,
547
+ reason: "Inverse of hideBelow \u2014 keeps a compact-only region off the wide layout."
548
+ }
458
549
  ]
459
550
  },
460
551
  ResponsiveGridColumnsProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
@@ -596,6 +687,12 @@ const COMPONENT_PROP_REGISTRY = {
596
687
  }
597
688
  ]
598
689
  },
690
+ AuthAccountSummaryProp: {
691
+ group: "layout",
692
+ file: "components/layout.prop.ts",
693
+ vocabulary: ["DisabledProp", "ClassNameProp"],
694
+ local: ["email", "avatarSrc", "avatarFallback", "actionLabel", "onAction"]
695
+ },
599
696
  CenteredShellProp: {
600
697
  group: "layout",
601
698
  file: "components/layout.prop.ts",
@@ -603,7 +700,81 @@ const COMPONENT_PROP_REGISTRY = {
603
700
  "ChildrenProp",
604
701
  "ClassNameProp",
605
702
  "CenteredShellWidthProp",
606
- "CenteredShellAlignProp"
703
+ "CenteredShellAlignProp",
704
+ "CenteredShellPresetProp"
705
+ ]
706
+ },
707
+ ErrorSurfaceMaintenanceProp: {
708
+ group: "layout",
709
+ file: "components/layout.prop.ts",
710
+ vocabulary: [
711
+ {
712
+ field: "start",
713
+ local: true,
714
+ reason: "ISO 8601 instant starting the maintenance window; formatted via Intl.DateTimeFormat and emitted as the <time dateTime> value."
715
+ },
716
+ {
717
+ field: "end",
718
+ local: true,
719
+ reason: "ISO 8601 instant ending the window; omitted for an open-ended outage."
720
+ },
721
+ {
722
+ field: "timeZone",
723
+ local: true,
724
+ reason: "IANA time zone id the window is presented in \u2014 explicit so SSR and client output cannot diverge."
725
+ },
726
+ {
727
+ field: "progress",
728
+ local: true,
729
+ reason: "Server-sent 0\u2013100 completion of the maintenance window; deriving it from the client clock would break hydration."
730
+ }
731
+ ]
732
+ },
733
+ ErrorSurfaceProp: {
734
+ group: "layout",
735
+ file: "components/layout.prop.ts",
736
+ vocabulary: [
737
+ "ErrorSurfaceModeProp",
738
+ "ErrorSurfaceStatusProp",
739
+ "TitleProp",
740
+ "DescriptionProp",
741
+ "ActionProp",
742
+ "IconProp",
743
+ "HeadingLevelProp",
744
+ "FooterProp",
745
+ "CenteredShellWidthProp",
746
+ "IdProp",
747
+ "ClassNameProp",
748
+ {
749
+ field: "tone",
750
+ local: true,
751
+ reason: "Reuses the EmptyStateToneProp union verbatim (the surface renders an EmptyState) \u2014 a status-derived default the consumer may override, not a new tone vocabulary."
752
+ },
753
+ {
754
+ field: "requestId",
755
+ local: true,
756
+ reason: "Support correlation id for the failure, rendered as a mono/tabular metadata row \u2014 an identifier, not a LabelProp."
757
+ },
758
+ {
759
+ field: "permission",
760
+ local: true,
761
+ reason: "The permission/role the viewer is missing (403). The localized label is the surface's; the value is the bare permission name."
762
+ },
763
+ {
764
+ field: "organization",
765
+ local: true,
766
+ reason: "The organization/tenant the failed request was scoped to \u2014 disambiguates a wrong-workspace 403 from a missing-role 403."
767
+ },
768
+ {
769
+ field: "maintenance",
770
+ local: true,
771
+ reason: "ErrorSurfaceMaintenanceProp timing/progress slot (ISO 8601 + IANA), formatted with Intl.DateTimeFormat."
772
+ },
773
+ {
774
+ field: "brand",
775
+ local: true,
776
+ reason: "system-mode brand slot above the status code (a Logo); the application shell already shows the brand."
777
+ }
607
778
  ]
608
779
  },
609
780
  LegalDocumentSectionProp: {
@@ -1048,6 +1219,11 @@ const COMPONENT_PROP_REGISTRY = {
1048
1219
  file: "components/data-display.prop.ts",
1049
1220
  vocabulary: ["LabelProp", "ValueProp"]
1050
1221
  },
1222
+ AvatarProp: {
1223
+ group: "data-display",
1224
+ file: "components/data-display.prop.ts",
1225
+ vocabulary: ["AvatarShapeProp", "ChildrenProp", "ClassNameProp"]
1226
+ },
1051
1227
  BadgeProp: {
1052
1228
  group: "data-display",
1053
1229
  file: "components/data-display.prop.ts",
@@ -1056,7 +1232,40 @@ const COMPONENT_PROP_REGISTRY = {
1056
1232
  DataTableProp: {
1057
1233
  group: "data-display",
1058
1234
  file: "components/data-display.prop.ts",
1059
- vocabulary: ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp", "HandlerProp"]
1235
+ vocabulary: [
1236
+ "ColumnDefProp",
1237
+ "DensityProp",
1238
+ "SortStateProp",
1239
+ "SelectedIdsProp",
1240
+ "HandlerProp",
1241
+ "TablePresetProp",
1242
+ "TableColumnPriorityProp",
1243
+ "BreakpointProp"
1244
+ ]
1245
+ },
1246
+ ListRowDensityProp: {
1247
+ group: "data-display",
1248
+ file: "components/data-display.prop.ts",
1249
+ vocabulary: []
1250
+ },
1251
+ ListRowProp: {
1252
+ group: "data-display",
1253
+ file: "components/data-display.prop.ts",
1254
+ vocabulary: [
1255
+ "TitleProp",
1256
+ "DescriptionProp",
1257
+ "ClassNameProp",
1258
+ {
1259
+ field: "density",
1260
+ local: true,
1261
+ reason: "ListRow-local density subset (default | compact) \u2014 the compact inline-actions geometry (#246). No `comfortable` step, and unrelated to PageDensityProp/TableDensityProp."
1262
+ },
1263
+ {
1264
+ field: "overflow",
1265
+ local: true,
1266
+ reason: "Row-local overflow resolution for the title/description column (truncate | wrap, #224)."
1267
+ }
1268
+ ]
1060
1269
  },
1061
1270
  CredentialRevealProp: {
1062
1271
  group: "data-display",
@@ -1309,6 +1518,13 @@ const COMPONENT_PROP_REGISTRY = {
1309
1518
  "ChildrenProp"
1310
1519
  ]
1311
1520
  },
1521
+ BannerProp: {
1522
+ group: "feedback",
1523
+ file: "components/feedback.prop.ts",
1524
+ // `Omit<AlertProp, "variant">` — the alias fixes the one prop it drops, so it inherits Alert's
1525
+ // vocabulary exactly. Listing it again here is what keeps the guard honest if Alert's API moves.
1526
+ vocabulary: ["ToneProp", "IconProp", "OnValueChangeProp", "ClassNameProp", "ChildrenProp"]
1527
+ },
1312
1528
  AlertTitleProp: {
1313
1529
  group: "feedback",
1314
1530
  file: "components/feedback.prop.ts",
@@ -1339,7 +1555,45 @@ const COMPONENT_PROP_REGISTRY = {
1339
1555
  "HasActiveFiltersProp",
1340
1556
  "StickyProp",
1341
1557
  "ClassNameProp",
1342
- "ChildrenProp"
1558
+ "ChildrenProp",
1559
+ {
1560
+ field: "search",
1561
+ local: true,
1562
+ reason: "SLOT for the caller's own search control, positioned at the start of the row and measured by --filter-bar-search-width. Not a value/onValueChange pair: the bar owns the search's PLACE and WIDTH, never its state (gh#258)."
1563
+ },
1564
+ {
1565
+ field: "chips",
1566
+ local: true,
1567
+ reason: "APPLIED filters as removable chips \u2014 the visible record of filters already in effect, distinct from the controls that set them. A bar-specific shape (id/label/onRemove), not a shared vocabulary type (gh#258)."
1568
+ },
1569
+ {
1570
+ field: "onChipRemove",
1571
+ local: true,
1572
+ reason: "Chip-removal callback keyed by chip id. Not `onValueChange`: it reports ONE lifted filter rather than the bar's whole value, which the bar deliberately does not hold (gh#258)."
1573
+ },
1574
+ {
1575
+ field: "resultCount",
1576
+ local: true,
1577
+ reason: "Number of records the current filters resolve to, announced in a polite live region and formatted via Intl.NumberFormat + CLDR plurals. Presentational output, not a controlled value (gh#258)."
1578
+ },
1579
+ {
1580
+ field: "actions",
1581
+ local: true,
1582
+ reason: "Trailing action SLOT (export, column settings, saved views), ordered AFTER the reset control by the bar so `clear filters` never sits beside an unrelated primary action (gh#258)."
1583
+ }
1584
+ ]
1585
+ },
1586
+ FilterBarChipProp: {
1587
+ group: "navigation",
1588
+ file: "components/navigation.prop.ts",
1589
+ vocabulary: [
1590
+ "IdProp",
1591
+ "LabelProp",
1592
+ {
1593
+ field: "onRemove",
1594
+ local: true,
1595
+ reason: "Per-chip removal. Omitting it is meaningful \u2014 the chip renders with NO remove control (a filter the user may not lift), rather than a disabled button that is a dead tab stop (gh#258)."
1596
+ }
1343
1597
  ]
1344
1598
  },
1345
1599
  FilterBarOverflowProp: {
@@ -1362,6 +1616,16 @@ const COMPONENT_PROP_REGISTRY = {
1362
1616
  file: "components/navigation.prop.ts",
1363
1617
  vocabulary: ["ValueProp", "DefaultValueProp", "SizeProp", "OnValueChangeProp", "ClassNameProp"]
1364
1618
  },
1619
+ InputOTPGroupProp: {
1620
+ group: "data-entry",
1621
+ file: "components/data-entry.prop.ts",
1622
+ vocabulary: ["ClassNameProp"]
1623
+ },
1624
+ InputOTPGroupAppearanceProp: {
1625
+ group: "data-entry",
1626
+ file: "components/data-entry.prop.ts",
1627
+ vocabulary: []
1628
+ },
1365
1629
  StepItemProp: {
1366
1630
  group: "navigation",
1367
1631
  file: "components/navigation.prop.ts",