@godxjp/ui 18.4.0 → 18.6.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 (159) hide show
  1. package/README.md +16 -1
  2. package/dist/app/theme-axes.d.ts +11 -3
  3. package/dist/app/theme-axes.js +2 -1
  4. package/dist/components/charts/chart-frame.d.ts +17 -3
  5. package/dist/components/charts/chart-frame.js +7 -1
  6. package/dist/components/charts/chart-summary.d.ts +21 -0
  7. package/dist/components/charts/chart-summary.js +32 -5
  8. package/dist/components/charts/compact-bar-trend.d.ts +30 -0
  9. package/dist/components/charts/compact-bar-trend.js +74 -0
  10. package/dist/components/charts/index.d.ts +6 -0
  11. package/dist/components/charts/index.js +2 -0
  12. package/dist/components/data-display/badge.d.ts +8 -0
  13. package/dist/components/data-display/badge.js +7 -1
  14. package/dist/components/data-display/data-table.d.ts +40 -4
  15. package/dist/components/data-display/data-table.js +69 -2
  16. package/dist/components/data-display/empty-state.js +1 -1
  17. package/dist/components/data-display/index.d.ts +4 -2
  18. package/dist/components/data-display/index.js +10 -1
  19. package/dist/components/data-display/list-row.d.ts +41 -4
  20. package/dist/components/data-display/list-row.js +23 -3
  21. package/dist/components/data-display/qr-code.d.ts +1 -1
  22. package/dist/components/data-display/service-launcher-card.d.ts +40 -0
  23. package/dist/components/data-display/service-launcher-card.js +97 -0
  24. package/dist/components/data-display/table.d.ts +47 -2
  25. package/dist/components/data-display/table.js +29 -4
  26. package/dist/components/data-entry/command-palette.d.ts +37 -0
  27. package/dist/components/data-entry/command-palette.js +125 -0
  28. package/dist/components/data-entry/command.d.ts +10 -10
  29. package/dist/components/data-entry/index.d.ts +3 -0
  30. package/dist/components/data-entry/index.js +2 -0
  31. package/dist/components/data-entry/input-otp.d.ts +1 -0
  32. package/dist/components/feedback/dialog.d.ts +16 -1
  33. package/dist/components/feedback/dialog.js +46 -33
  34. package/dist/components/feedback/index.d.ts +5 -2
  35. package/dist/components/feedback/index.js +8 -2
  36. package/dist/components/feedback/sheet.d.ts +26 -4
  37. package/dist/components/feedback/sheet.js +54 -7
  38. package/dist/components/feedback/two-factor-setup.d.ts +31 -0
  39. package/dist/components/feedback/two-factor-setup.js +97 -0
  40. package/dist/components/general/index.d.ts +1 -1
  41. package/dist/components/general/logo.d.ts +49 -9
  42. package/dist/components/general/logo.js +67 -14
  43. package/dist/components/layout/app-shell.d.ts +1 -1
  44. package/dist/components/layout/app-shell.js +55 -30
  45. package/dist/components/layout/auth-account-summary.d.ts +5 -0
  46. package/dist/components/layout/auth-account-summary.js +31 -0
  47. package/dist/components/layout/auth-divider.d.ts +7 -0
  48. package/dist/components/layout/auth-divider.js +21 -0
  49. package/dist/components/layout/auth-footer.d.ts +5 -0
  50. package/dist/components/layout/auth-footer.js +24 -0
  51. package/dist/components/layout/auth-identity.d.ts +5 -0
  52. package/dist/components/layout/auth-identity.js +17 -0
  53. package/dist/components/layout/auth-shell.d.ts +9 -1
  54. package/dist/components/layout/auth-shell.js +25 -6
  55. package/dist/components/layout/auth-stack.d.ts +4 -0
  56. package/dist/components/layout/auth-stack.js +8 -0
  57. package/dist/components/layout/centered-shell.d.ts +5 -2
  58. package/dist/components/layout/centered-shell.js +29 -19
  59. package/dist/components/layout/error-surface.d.ts +35 -0
  60. package/dist/components/layout/error-surface.js +155 -0
  61. package/dist/components/layout/flex.d.ts +1 -1
  62. package/dist/components/layout/flex.js +4 -0
  63. package/dist/components/layout/index.d.ts +23 -3
  64. package/dist/components/layout/index.js +21 -2
  65. package/dist/components/layout/legal-document-shell.d.ts +34 -0
  66. package/dist/components/layout/legal-document-shell.js +186 -0
  67. package/dist/components/layout/master-detail.d.ts +24 -0
  68. package/dist/components/layout/master-detail.js +48 -0
  69. package/dist/components/layout/org-switcher.d.ts +9 -0
  70. package/dist/components/layout/org-switcher.js +218 -0
  71. package/dist/components/layout/page-container.d.ts +1 -1
  72. package/dist/components/layout/page-container.js +7 -2
  73. package/dist/components/layout/sidebar-link.d.ts +43 -0
  74. package/dist/components/layout/sidebar-link.js +13 -0
  75. package/dist/components/layout/sidebar.d.ts +42 -5
  76. package/dist/components/layout/sidebar.js +170 -85
  77. package/dist/components/navigation/app-setting-picker.js +17 -6
  78. package/dist/components/navigation/filter-bar.d.ts +12 -3
  79. package/dist/components/navigation/filter-bar.js +8 -2
  80. package/dist/components/navigation/index.d.ts +2 -2
  81. package/dist/components/navigation/index.js +3 -1
  82. package/dist/components/navigation/steps.js +38 -19
  83. package/dist/components/navigation/tabs-scroll.d.ts +70 -0
  84. package/dist/components/navigation/tabs-scroll.js +76 -0
  85. package/dist/components/navigation/tabs.js +47 -23
  86. package/dist/components/ui/avatar.d.ts +2 -1
  87. package/dist/components/ui/avatar.js +2 -1
  88. package/dist/components/ui/input-otp.d.ts +4 -1
  89. package/dist/components/ui/input-otp.js +2 -1
  90. package/dist/components/ui/toggle-group.d.ts +7 -4
  91. package/dist/components/ui/toggle-group.js +32 -21
  92. package/dist/email/brand-mark.d.ts +108 -0
  93. package/dist/email/brand-mark.js +88 -0
  94. package/dist/email/color.d.ts +53 -0
  95. package/dist/email/color.js +37 -0
  96. package/dist/email/geometry.d.ts +120 -0
  97. package/dist/email/geometry.js +90 -0
  98. package/dist/email/index.d.ts +83 -0
  99. package/dist/email/index.js +82 -0
  100. package/dist/email/inline-style.d.ts +27 -0
  101. package/dist/email/inline-style.js +26 -0
  102. package/dist/email/tokens.generated.d.ts +167 -0
  103. package/dist/email/tokens.generated.js +162 -0
  104. package/dist/email/urgency.d.ts +22 -0
  105. package/dist/email/urgency.js +14 -0
  106. package/dist/i18n/messages/en.json +36 -3
  107. package/dist/i18n/messages/ja.json +36 -3
  108. package/dist/i18n/messages/vi.json +36 -3
  109. package/dist/inertia/index.d.ts +50 -0
  110. package/dist/inertia/index.js +5 -0
  111. package/dist/props/components/app.prop.d.ts +11 -1
  112. package/dist/props/components/charts.prop.d.ts +40 -1
  113. package/dist/props/components/data-display.prop.d.ts +75 -1
  114. package/dist/props/components/data-entry.prop.d.ts +6 -0
  115. package/dist/props/components/feedback.prop.d.ts +10 -0
  116. package/dist/props/components/index.d.ts +3 -3
  117. package/dist/props/components/layout.prop.d.ts +560 -10
  118. package/dist/props/components/layout.prop.js +1 -0
  119. package/dist/props/components/navigation.prop.d.ts +24 -2
  120. package/dist/props/registry.d.ts +433 -8
  121. package/dist/props/registry.js +527 -9
  122. package/dist/props/vocabulary/data.prop.d.ts +27 -0
  123. package/dist/props/vocabulary/index.d.ts +3 -3
  124. package/dist/props/vocabulary/interaction.prop.d.ts +10 -1
  125. package/dist/props/vocabulary/layout.prop.d.ts +49 -0
  126. package/dist/styles/base.css +8 -2
  127. package/dist/styles/card-layout.css +161 -7
  128. package/dist/styles/chart-layout.css +97 -0
  129. package/dist/styles/control.css +76 -2
  130. package/dist/styles/data-display-layout.css +78 -6
  131. package/dist/styles/dialog-layout.css +105 -4
  132. package/dist/styles/fonts.css +15 -4
  133. package/dist/styles/index.css +11 -3
  134. package/dist/styles/layout.css +466 -1
  135. package/dist/styles/logo-layout.css +95 -0
  136. package/dist/styles/navigation-layout.css +152 -0
  137. package/dist/styles/shell-layout.css +790 -40
  138. package/dist/styles/table-layout.css +164 -1
  139. package/dist/theme/dxs.canonical.css +77 -0
  140. package/dist/tokens/axes.css +40 -0
  141. package/dist/tokens/base.css +6 -0
  142. package/dist/tokens/components/card.css +48 -0
  143. package/dist/tokens/components/chart.css +47 -0
  144. package/dist/tokens/components/control.css +16 -0
  145. package/dist/tokens/components/data-display.css +13 -0
  146. package/dist/tokens/components/email.css +93 -0
  147. package/dist/tokens/components/error-surface.css +36 -0
  148. package/dist/tokens/components/feedback.css +17 -0
  149. package/dist/tokens/components/legal-document.css +67 -0
  150. package/dist/tokens/components/list-row.css +43 -2
  151. package/dist/tokens/components/logo.css +74 -0
  152. package/dist/tokens/components/navigation.css +28 -0
  153. package/dist/tokens/components/sheet.css +19 -0
  154. package/dist/tokens/components/shell.css +210 -0
  155. package/dist/tokens/components/sidebar.css +33 -0
  156. package/dist/tokens/components/table.css +45 -0
  157. package/dist/tokens/foundation.css +31 -2
  158. package/dist/tokens/semantic/layout.css +69 -2
  159. package/package.json +22 -5
@@ -187,6 +187,41 @@ const VOCABULARY_REGISTRY = {
187
187
  category: "layout",
188
188
  description: "CenteredShell column max-width \u2014 sm, md, lg"
189
189
  },
190
+ CenteredShellAlignProp: {
191
+ file: "vocabulary/layout.prop.ts",
192
+ category: "layout",
193
+ description: "CenteredShell column block alignment \u2014 start (flowing page), center (system surface)"
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
+ },
220
+ AuthShellPresetProp: {
221
+ file: "vocabulary/layout.prop.ts",
222
+ category: "layout",
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)"
224
+ },
190
225
  GapProp: {
191
226
  file: "vocabulary/layout.prop.ts",
192
227
  category: "layout",
@@ -216,13 +251,18 @@ const VOCABULARY_REGISTRY = {
216
251
  AppSettingPickerAppearanceProp: {
217
252
  file: "vocabulary/interaction.prop.ts",
218
253
  category: "interaction",
219
- description: "AppSettingPicker trigger presentation: labeled (icon + value) | icon (square icon-only topbar trigger)"
254
+ description: "AppSettingPicker trigger presentation: labeled (icon + value) | icon (square icon-only topbar trigger) | inline (compact text footer trigger)"
220
255
  },
221
256
  ShapeProp: {
222
257
  file: "vocabulary/interaction.prop.ts",
223
258
  category: "interaction",
224
259
  description: "Corner shape default | pill | sharp \u2014 shared by Button + Badge (radius tokens)"
225
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
+ },
226
266
  TextSizeProp: {
227
267
  file: "vocabulary/interaction.prop.ts",
228
268
  category: "interaction",
@@ -348,7 +388,7 @@ const VOCABULARY_REGISTRY = {
348
388
  ColumnDefProp: {
349
389
  file: "vocabulary/data.prop.ts",
350
390
  category: "data",
351
- 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"'
352
392
  },
353
393
  SelectedIdsProp: {
354
394
  file: "vocabulary/data.prop.ts",
@@ -402,9 +442,29 @@ const COMPONENT_PROP_REGISTRY = {
402
442
  "DisabledProp",
403
443
  "IdProp",
404
444
  "ClassNameProp",
405
- "AppSettingPickerAppearanceProp"
445
+ "AppSettingPickerAppearanceProp",
446
+ {
447
+ field: "compact",
448
+ local: true,
449
+ reason: "Trigger DENSITY for the picker only (sm control tier + content-hugging width) \u2014 orthogonal to `appearance`, and not the page-level DensityProp scope."
450
+ }
406
451
  ]
407
452
  },
453
+ PageContainerHeaderLayoutProp: {
454
+ group: "layout",
455
+ file: "components/layout.prop.ts",
456
+ vocabulary: []
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
+ },
408
468
  PageContainerProp: {
409
469
  group: "layout",
410
470
  file: "components/layout.prop.ts",
@@ -415,7 +475,17 @@ const COMPONENT_PROP_REGISTRY = {
415
475
  "FooterProp",
416
476
  "BreadcrumbProp",
417
477
  "DensityProp",
418
- "PageContainerVariantProp"
478
+ "PageContainerVariantProp",
479
+ {
480
+ field: "headerLayout",
481
+ local: true,
482
+ 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."
483
+ },
484
+ {
485
+ field: "measure",
486
+ local: true,
487
+ 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."
488
+ }
419
489
  ]
420
490
  },
421
491
  FlexDirectionProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
@@ -429,10 +499,85 @@ const COMPONENT_PROP_REGISTRY = {
429
499
  "GapProp",
430
500
  { field: "align", local: true, reason: "Flex-specific align-items keyword subset." },
431
501
  { field: "justify", local: true, reason: "Flex-specific justify-content keyword subset." },
432
- { field: "wrap", local: true, reason: "Flex-specific boolean shorthand for flex-wrap." }
502
+ { field: "wrap", local: true, reason: "Flex-specific boolean shorthand for flex-wrap." },
503
+ "BreakpointProp",
504
+ {
505
+ field: "hideBelow",
506
+ local: true,
507
+ reason: "Responsive region visibility at a canonical breakpoint step \u2014 the public alternative to a page-local media query (gh#252)."
508
+ },
509
+ {
510
+ field: "hideFrom",
511
+ local: true,
512
+ reason: "Inverse of hideBelow \u2014 keeps a compact-only region off the wide layout."
513
+ }
433
514
  ]
434
515
  },
435
516
  ResponsiveGridColumnsProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
517
+ MasterDetailRailWidthProp: {
518
+ group: "layout",
519
+ file: "components/layout.prop.ts",
520
+ vocabulary: []
521
+ },
522
+ MasterDetailRailProp: {
523
+ group: "layout",
524
+ file: "components/layout.prop.ts",
525
+ vocabulary: []
526
+ },
527
+ MasterDetailMasterViewportProp: {
528
+ group: "layout",
529
+ file: "components/layout.prop.ts",
530
+ vocabulary: []
531
+ },
532
+ MasterDetailProp: {
533
+ group: "layout",
534
+ file: "components/layout.prop.ts",
535
+ vocabulary: [
536
+ "ChildrenProp",
537
+ "BreakpointProp",
538
+ "IdProp",
539
+ {
540
+ field: "master",
541
+ local: true,
542
+ reason: "Semantic selectable-collection slot paired with the detail children slot."
543
+ },
544
+ {
545
+ field: "rail",
546
+ local: true,
547
+ reason: "Semantic selector for which region owns the fixed track (master | detail)."
548
+ },
549
+ {
550
+ field: "railWidth",
551
+ local: true,
552
+ reason: "Token-owned 300px/320px rail geometry preset."
553
+ },
554
+ {
555
+ field: "masterViewport",
556
+ local: true,
557
+ reason: "Token-owned bounded-collection preset (auto | compact | standard) for the master region's scroll viewport \u2014 geometry, not a raw pixel measure."
558
+ },
559
+ {
560
+ field: "collapseBelow",
561
+ local: true,
562
+ reason: "Per-instance override of the --master-detail-collapse-below stacking threshold."
563
+ },
564
+ {
565
+ field: "masterLabel",
566
+ local: true,
567
+ reason: "Accessible name for the master region landmark."
568
+ },
569
+ {
570
+ field: "detailLabel",
571
+ local: true,
572
+ reason: "Accessible name for the detail region landmark."
573
+ },
574
+ {
575
+ field: "detailId",
576
+ local: true,
577
+ reason: "Id of the detail region so master controls can wire aria-controls and focus."
578
+ }
579
+ ]
580
+ },
436
581
  PageInsetProp: {
437
582
  group: "layout",
438
583
  file: "components/layout.prop.ts",
@@ -446,12 +591,228 @@ const COMPONENT_PROP_REGISTRY = {
446
591
  AuthShellProp: {
447
592
  group: "layout",
448
593
  file: "components/layout.prop.ts",
449
- vocabulary: ["ChildrenProp", "ClassNameProp"]
594
+ vocabulary: [
595
+ "ChildrenProp",
596
+ "ClassNameProp",
597
+ {
598
+ field: "variant",
599
+ local: true,
600
+ reason: "Auth-shell geometry preset; canonical selects the shared DXS token contract."
601
+ },
602
+ {
603
+ field: "density",
604
+ local: true,
605
+ reason: "Auth-specific vertical-density scope for card descendants."
606
+ },
607
+ "AuthShellPresetProp"
608
+ ]
609
+ },
610
+ AuthDividerProp: {
611
+ group: "layout",
612
+ file: "components/layout.prop.ts",
613
+ vocabulary: ["LabelProp", "ClassNameProp"]
614
+ },
615
+ AuthFooterProp: {
616
+ group: "layout",
617
+ file: "components/layout.prop.ts",
618
+ vocabulary: [
619
+ "ClassNameProp",
620
+ {
621
+ field: "product",
622
+ local: true,
623
+ reason: "Consumer-owned host/product identity slot of the legal line, not a page TitleProp."
624
+ },
625
+ {
626
+ field: "terms",
627
+ local: true,
628
+ reason: "Consumer-owned Terms link/text slot \u2014 the library never invents legal navigation."
629
+ },
630
+ {
631
+ field: "privacy",
632
+ local: true,
633
+ reason: "Consumer-owned Privacy link/text slot \u2014 the library never invents legal navigation."
634
+ },
635
+ {
636
+ field: "locale",
637
+ local: true,
638
+ reason: "Optional consumer-owned locale control slot (an AppSettingPicker), not a locale value."
639
+ }
640
+ ]
641
+ },
642
+ AuthIdentityProp: {
643
+ group: "layout",
644
+ file: "components/layout.prop.ts",
645
+ vocabulary: [
646
+ "TitleProp",
647
+ "ClassNameProp",
648
+ {
649
+ field: "requester",
650
+ local: true,
651
+ reason: "Authoritative requesting-client context for a delegated auth flow (device grant / consent)."
652
+ }
653
+ ]
654
+ },
655
+ AuthAccountSummaryProp: {
656
+ group: "layout",
657
+ file: "components/layout.prop.ts",
658
+ vocabulary: ["DisabledProp", "ClassNameProp"],
659
+ local: ["email", "avatarSrc", "avatarFallback", "actionLabel", "onAction"]
450
660
  },
451
661
  CenteredShellProp: {
452
662
  group: "layout",
453
663
  file: "components/layout.prop.ts",
454
- vocabulary: ["ChildrenProp", "ClassNameProp", "CenteredShellWidthProp"]
664
+ vocabulary: [
665
+ "ChildrenProp",
666
+ "ClassNameProp",
667
+ "CenteredShellWidthProp",
668
+ "CenteredShellAlignProp",
669
+ "CenteredShellPresetProp"
670
+ ]
671
+ },
672
+ ErrorSurfaceMaintenanceProp: {
673
+ group: "layout",
674
+ file: "components/layout.prop.ts",
675
+ vocabulary: [
676
+ {
677
+ field: "start",
678
+ local: true,
679
+ reason: "ISO 8601 instant starting the maintenance window; formatted via Intl.DateTimeFormat and emitted as the <time dateTime> value."
680
+ },
681
+ {
682
+ field: "end",
683
+ local: true,
684
+ reason: "ISO 8601 instant ending the window; omitted for an open-ended outage."
685
+ },
686
+ {
687
+ field: "timeZone",
688
+ local: true,
689
+ reason: "IANA time zone id the window is presented in \u2014 explicit so SSR and client output cannot diverge."
690
+ },
691
+ {
692
+ field: "progress",
693
+ local: true,
694
+ reason: "Server-sent 0\u2013100 completion of the maintenance window; deriving it from the client clock would break hydration."
695
+ }
696
+ ]
697
+ },
698
+ ErrorSurfaceProp: {
699
+ group: "layout",
700
+ file: "components/layout.prop.ts",
701
+ vocabulary: [
702
+ "ErrorSurfaceModeProp",
703
+ "ErrorSurfaceStatusProp",
704
+ "TitleProp",
705
+ "DescriptionProp",
706
+ "ActionProp",
707
+ "IconProp",
708
+ "HeadingLevelProp",
709
+ "FooterProp",
710
+ "CenteredShellWidthProp",
711
+ "IdProp",
712
+ "ClassNameProp",
713
+ {
714
+ field: "tone",
715
+ local: true,
716
+ 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."
717
+ },
718
+ {
719
+ field: "requestId",
720
+ local: true,
721
+ reason: "Support correlation id for the failure, rendered as a mono/tabular metadata row \u2014 an identifier, not a LabelProp."
722
+ },
723
+ {
724
+ field: "permission",
725
+ local: true,
726
+ reason: "The permission/role the viewer is missing (403). The localized label is the surface's; the value is the bare permission name."
727
+ },
728
+ {
729
+ field: "organization",
730
+ local: true,
731
+ reason: "The organization/tenant the failed request was scoped to \u2014 disambiguates a wrong-workspace 403 from a missing-role 403."
732
+ },
733
+ {
734
+ field: "maintenance",
735
+ local: true,
736
+ reason: "ErrorSurfaceMaintenanceProp timing/progress slot (ISO 8601 + IANA), formatted with Intl.DateTimeFormat."
737
+ },
738
+ {
739
+ field: "brand",
740
+ local: true,
741
+ reason: "system-mode brand slot above the status code (a Logo); the application shell already shows the brand."
742
+ }
743
+ ]
744
+ },
745
+ LegalDocumentSectionProp: {
746
+ group: "layout",
747
+ file: "components/layout.prop.ts",
748
+ vocabulary: [
749
+ "IdProp",
750
+ "TitleProp",
751
+ {
752
+ field: "content",
753
+ local: true,
754
+ reason: "Consumer-owned legal body for one section \u2014 a content slot, not the ChildrenProp of the shell itself."
755
+ }
756
+ ]
757
+ },
758
+ LegalDocumentShellProp: {
759
+ group: "layout",
760
+ file: "components/layout.prop.ts",
761
+ vocabulary: [
762
+ "TitleProp",
763
+ "IdProp",
764
+ "ClassNameProp",
765
+ {
766
+ field: "version",
767
+ local: true,
768
+ reason: "Document version identifier interpolated into a localized 'Version {version}'."
769
+ },
770
+ {
771
+ field: "effectiveDate",
772
+ local: true,
773
+ reason: "ISO 8601 date input formatted via Intl.DateTimeFormat in the active locale."
774
+ },
775
+ {
776
+ field: "summary",
777
+ local: true,
778
+ reason: "Plain-language document summary slot, distinct from a page SubtitleProp."
779
+ },
780
+ {
781
+ field: "contentsLabel",
782
+ local: true,
783
+ reason: "Accessible name + visible caption of the contents nav landmark (landmark-unique override)."
784
+ },
785
+ {
786
+ field: "sections",
787
+ local: true,
788
+ reason: "Ordered LegalDocumentSectionProp[] driving both the contents list and the body."
789
+ },
790
+ {
791
+ field: "activeSection",
792
+ local: true,
793
+ reason: "Controlled active-section id \u2014 the X / defaultX / onXChange family (like open/onOpenChange); 'value' would be meaningless on a document shell."
794
+ },
795
+ {
796
+ field: "defaultActiveSection",
797
+ local: true,
798
+ reason: "Uncontrolled initial active-section id."
799
+ },
800
+ {
801
+ field: "onActiveSectionChange",
802
+ local: true,
803
+ reason: "Active-section change handler (anchor activation \xB7 hash deep link \xB7 scroll spy)."
804
+ },
805
+ {
806
+ field: "documentNavigation",
807
+ local: true,
808
+ reason: "Rail slot for a switcher across the legal document set."
809
+ },
810
+ {
811
+ field: "footerAction",
812
+ local: true,
813
+ reason: "Document-footer slot for accept / download / print actions."
814
+ }
815
+ ]
455
816
  },
456
817
  SidebarProductProp: {
457
818
  group: "layout",
@@ -463,11 +824,47 @@ const COMPONENT_PROP_REGISTRY = {
463
824
  file: "components/layout.prop.ts",
464
825
  vocabulary: ["IdProp", "LabelProp", "DisabledProp", "ChildrenProp"]
465
826
  },
827
+ SidebarRenderItemProp: {
828
+ group: "layout",
829
+ file: "components/layout.prop.ts",
830
+ vocabulary: ["ClassNameProp", "ChildrenProp"]
831
+ },
832
+ SidebarLinkProp: {
833
+ group: "layout",
834
+ file: "components/layout.prop.ts",
835
+ vocabulary: ["ClassNameProp", "ChildrenProp", "OnClickProp"]
836
+ },
837
+ SidebarLinkComponentProp: {
838
+ group: "layout",
839
+ file: "components/layout.prop.ts",
840
+ vocabulary: [
841
+ {
842
+ field: "linkComponent",
843
+ local: true,
844
+ reason: "Component type alias for a framework router Link driven by SidebarLinkProp (gh#213)."
845
+ }
846
+ ]
847
+ },
466
848
  SidebarSectionProp: {
467
849
  group: "layout",
468
850
  file: "components/layout.prop.ts",
469
851
  vocabulary: ["LabelProp"]
470
852
  },
853
+ OrgSwitcherOrganization: {
854
+ group: "layout",
855
+ file: "components/layout.prop.ts",
856
+ vocabulary: ["IdProp", "LabelProp", "DisabledProp"]
857
+ },
858
+ OrgSwitcherLabels: {
859
+ group: "layout",
860
+ file: "components/layout.prop.ts",
861
+ vocabulary: ["LabelProp"]
862
+ },
863
+ OrgSwitcherProp: {
864
+ group: "layout",
865
+ file: "components/layout.prop.ts",
866
+ vocabulary: ["ValueProp", "OnValueChangeProp", "DisabledProp", "ClassNameProp"]
867
+ },
471
868
  SidebarProp: {
472
869
  group: "layout",
473
870
  file: "components/layout.prop.ts",
@@ -787,6 +1184,11 @@ const COMPONENT_PROP_REGISTRY = {
787
1184
  file: "components/data-display.prop.ts",
788
1185
  vocabulary: ["LabelProp", "ValueProp"]
789
1186
  },
1187
+ AvatarProp: {
1188
+ group: "data-display",
1189
+ file: "components/data-display.prop.ts",
1190
+ vocabulary: ["AvatarShapeProp", "ChildrenProp", "ClassNameProp"]
1191
+ },
790
1192
  BadgeProp: {
791
1193
  group: "data-display",
792
1194
  file: "components/data-display.prop.ts",
@@ -795,7 +1197,40 @@ const COMPONENT_PROP_REGISTRY = {
795
1197
  DataTableProp: {
796
1198
  group: "data-display",
797
1199
  file: "components/data-display.prop.ts",
798
- vocabulary: ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp"]
1200
+ vocabulary: [
1201
+ "ColumnDefProp",
1202
+ "DensityProp",
1203
+ "SortStateProp",
1204
+ "SelectedIdsProp",
1205
+ "HandlerProp",
1206
+ "TablePresetProp",
1207
+ "TableColumnPriorityProp",
1208
+ "BreakpointProp"
1209
+ ]
1210
+ },
1211
+ ListRowDensityProp: {
1212
+ group: "data-display",
1213
+ file: "components/data-display.prop.ts",
1214
+ vocabulary: []
1215
+ },
1216
+ ListRowProp: {
1217
+ group: "data-display",
1218
+ file: "components/data-display.prop.ts",
1219
+ vocabulary: [
1220
+ "TitleProp",
1221
+ "DescriptionProp",
1222
+ "ClassNameProp",
1223
+ {
1224
+ field: "density",
1225
+ local: true,
1226
+ reason: "ListRow-local density subset (default | compact) \u2014 the compact inline-actions geometry (#246). No `comfortable` step, and unrelated to PageDensityProp/TableDensityProp."
1227
+ },
1228
+ {
1229
+ field: "overflow",
1230
+ local: true,
1231
+ reason: "Row-local overflow resolution for the title/description column (truncate | wrap, #224)."
1232
+ }
1233
+ ]
799
1234
  },
800
1235
  CredentialRevealProp: {
801
1236
  group: "data-display",
@@ -877,6 +1312,38 @@ const COMPONENT_PROP_REGISTRY = {
877
1312
  { field: "horizontal", local: true, reason: "Category axis on the left." }
878
1313
  ]
879
1314
  },
1315
+ CompactBarTrendProp: {
1316
+ group: "data-display",
1317
+ file: "components/charts.prop.ts",
1318
+ vocabulary: [
1319
+ "LabelProp",
1320
+ "DescriptionProp",
1321
+ "SizeProp",
1322
+ "FooterProp",
1323
+ "EmptyMessageProp",
1324
+ "ClassNameProp",
1325
+ "IdProp",
1326
+ { field: "data", local: true, reason: "Chart row data (one bar per row)." },
1327
+ { field: "categoryKey", local: true, reason: "Accessor key for the bar's tick label." },
1328
+ { field: "valueKey", local: true, reason: "Accessor key for the plotted numeric value." },
1329
+ {
1330
+ field: "emphasizedIndex",
1331
+ local: true,
1332
+ reason: "Index of the highlighted 'current' bar (negative counts from the end)."
1333
+ },
1334
+ {
1335
+ field: "showCategoryLabels",
1336
+ local: true,
1337
+ reason: "Chart-specific tick-label toggle."
1338
+ },
1339
+ {
1340
+ field: "numberFormat",
1341
+ local: true,
1342
+ reason: "Intl.NumberFormat options for the text alternative."
1343
+ },
1344
+ { field: "ref", local: true, reason: "Forwarded ref to the <figure> element." }
1345
+ ]
1346
+ },
880
1347
  AreaChartProp: {
881
1348
  group: "data-display",
882
1349
  file: "components/charts.prop.ts",
@@ -1036,6 +1503,7 @@ const COMPONENT_PROP_REGISTRY = {
1036
1503
  file: "components/feedback.prop.ts",
1037
1504
  vocabulary: ["ClassNameProp", "ChildrenProp"]
1038
1505
  },
1506
+ SheetResponsiveProp: { group: "feedback", file: "components/feedback.prop.ts", vocabulary: [] },
1039
1507
  SkeletonRowsProp: { group: "feedback", file: "components/feedback.prop.ts", vocabulary: [] },
1040
1508
  ToolbarProp: {
1041
1509
  group: "navigation",
@@ -1048,10 +1516,15 @@ const COMPONENT_PROP_REGISTRY = {
1048
1516
  "ChildrenProp"
1049
1517
  ]
1050
1518
  },
1519
+ FilterBarOverflowProp: {
1520
+ group: "navigation",
1521
+ file: "components/navigation.prop.ts",
1522
+ vocabulary: []
1523
+ },
1051
1524
  ToolbarGroupProp: {
1052
1525
  group: "navigation",
1053
1526
  file: "components/navigation.prop.ts",
1054
- vocabulary: ["LabelProp", "ClassNameProp", "ChildrenProp"]
1527
+ vocabulary: ["LabelProp", "IdProp", "ClassNameProp", "ChildrenProp"]
1055
1528
  },
1056
1529
  PaginationProp: {
1057
1530
  group: "navigation",
@@ -1063,6 +1536,16 @@ const COMPONENT_PROP_REGISTRY = {
1063
1536
  file: "components/navigation.prop.ts",
1064
1537
  vocabulary: ["ValueProp", "DefaultValueProp", "SizeProp", "OnValueChangeProp", "ClassNameProp"]
1065
1538
  },
1539
+ InputOTPGroupProp: {
1540
+ group: "data-entry",
1541
+ file: "components/data-entry.prop.ts",
1542
+ vocabulary: ["ClassNameProp"]
1543
+ },
1544
+ InputOTPGroupAppearanceProp: {
1545
+ group: "data-entry",
1546
+ file: "components/data-entry.prop.ts",
1547
+ vocabulary: []
1548
+ },
1066
1549
  StepItemProp: {
1067
1550
  group: "navigation",
1068
1551
  file: "components/navigation.prop.ts",
@@ -1116,6 +1599,21 @@ const COMPONENT_PROP_REGISTRY = {
1116
1599
  file: "components/ui/toggle.tsx",
1117
1600
  vocabulary: ["SizeProp", "ClassNameProp"]
1118
1601
  },
1602
+ CommandPaletteProp: {
1603
+ group: "data-entry",
1604
+ file: "components/data-entry/command-palette.tsx",
1605
+ vocabulary: ["OpenProp", "DefaultOpenProp", "OnOpenChangeProp"]
1606
+ },
1607
+ TwoFactorSetupProp: {
1608
+ group: "feedback",
1609
+ file: "components/feedback/two-factor-setup.tsx",
1610
+ vocabulary: ["OpenProp", "OnOpenChangeProp", "PendingProp"]
1611
+ },
1612
+ AuthStackProp: {
1613
+ group: "layout",
1614
+ file: "components/layout/auth-stack.tsx",
1615
+ vocabulary: ["ChildrenProp", "ClassNameProp"]
1616
+ },
1119
1617
  RatingProp: {
1120
1618
  group: "data-entry",
1121
1619
  file: "components/ui/rating.tsx",
@@ -1191,11 +1689,31 @@ const COMPONENT_PROP_REGISTRY = {
1191
1689
  file: "components/data-display/card.tsx",
1192
1690
  vocabulary: ["TitleProp", "ToneProp", "IconProp", "ClassNameProp"]
1193
1691
  },
1692
+ ServiceLauncherCardProp: {
1693
+ group: "data-display",
1694
+ file: "components/data-display/service-launcher-card.tsx",
1695
+ vocabulary: ["TitleProp", "ToneProp", "IconProp", "ClassNameProp", "DisabledProp"]
1696
+ },
1697
+ ServiceCatalogCtaProp: {
1698
+ group: "data-display",
1699
+ file: "components/data-display/service-launcher-card.tsx",
1700
+ vocabulary: ["TitleProp", "IconProp", "ClassNameProp"]
1701
+ },
1702
+ ServiceLauncherCardSkeletonProp: {
1703
+ group: "data-display",
1704
+ file: "components/data-display/service-launcher-card.tsx",
1705
+ vocabulary: ["LabelProp", "ClassNameProp"]
1706
+ },
1194
1707
  ResponsiveGridProp: {
1195
1708
  group: "layout",
1196
1709
  file: "components/layout/responsive-grid.tsx",
1197
1710
  vocabulary: ["GapProp", "ClassNameProp", "ChildrenProp"]
1198
1711
  },
1712
+ MasterDetailProps: {
1713
+ group: "layout",
1714
+ file: "components/layout/master-detail.tsx",
1715
+ vocabulary: ["ChildrenProp"]
1716
+ },
1199
1717
  SplitPaneProp: {
1200
1718
  group: "layout",
1201
1719
  file: "components/layout/split-pane.tsx",