@godxjp/ui 18.4.0 → 18.5.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 (131) 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 +29 -0
  9. package/dist/components/charts/compact-bar-trend.js +74 -0
  10. package/dist/components/charts/index.d.ts +3 -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 +16 -1
  15. package/dist/components/data-display/data-table.js +56 -0
  16. package/dist/components/data-display/index.d.ts +3 -1
  17. package/dist/components/data-display/index.js +10 -1
  18. package/dist/components/data-display/list-row.d.ts +22 -4
  19. package/dist/components/data-display/list-row.js +21 -3
  20. package/dist/components/data-display/service-launcher-card.d.ts +40 -0
  21. package/dist/components/data-display/service-launcher-card.js +97 -0
  22. package/dist/components/data-entry/command-palette.d.ts +37 -0
  23. package/dist/components/data-entry/command-palette.js +125 -0
  24. package/dist/components/data-entry/index.d.ts +2 -0
  25. package/dist/components/data-entry/index.js +2 -0
  26. package/dist/components/feedback/dialog.d.ts +2 -0
  27. package/dist/components/feedback/dialog.js +42 -33
  28. package/dist/components/feedback/index.d.ts +4 -1
  29. package/dist/components/feedback/index.js +6 -2
  30. package/dist/components/feedback/sheet.d.ts +26 -4
  31. package/dist/components/feedback/sheet.js +54 -7
  32. package/dist/components/feedback/two-factor-setup.d.ts +31 -0
  33. package/dist/components/feedback/two-factor-setup.js +97 -0
  34. package/dist/components/general/index.d.ts +1 -1
  35. package/dist/components/general/logo.d.ts +42 -8
  36. package/dist/components/general/logo.js +67 -14
  37. package/dist/components/layout/app-shell.js +21 -5
  38. package/dist/components/layout/auth-divider.d.ts +7 -0
  39. package/dist/components/layout/auth-divider.js +21 -0
  40. package/dist/components/layout/auth-footer.d.ts +5 -0
  41. package/dist/components/layout/auth-footer.js +24 -0
  42. package/dist/components/layout/auth-identity.d.ts +5 -0
  43. package/dist/components/layout/auth-identity.js +17 -0
  44. package/dist/components/layout/auth-shell.d.ts +8 -1
  45. package/dist/components/layout/auth-shell.js +25 -6
  46. package/dist/components/layout/auth-stack.d.ts +4 -0
  47. package/dist/components/layout/auth-stack.js +8 -0
  48. package/dist/components/layout/centered-shell.d.ts +5 -2
  49. package/dist/components/layout/centered-shell.js +2 -1
  50. package/dist/components/layout/index.d.ts +18 -3
  51. package/dist/components/layout/index.js +17 -2
  52. package/dist/components/layout/legal-document-shell.d.ts +34 -0
  53. package/dist/components/layout/legal-document-shell.js +186 -0
  54. package/dist/components/layout/master-detail.d.ts +24 -0
  55. package/dist/components/layout/master-detail.js +48 -0
  56. package/dist/components/layout/org-switcher.d.ts +9 -0
  57. package/dist/components/layout/org-switcher.js +218 -0
  58. package/dist/components/layout/page-container.d.ts +1 -1
  59. package/dist/components/layout/page-container.js +3 -2
  60. package/dist/components/layout/sidebar-link.d.ts +43 -0
  61. package/dist/components/layout/sidebar-link.js +13 -0
  62. package/dist/components/layout/sidebar.d.ts +42 -5
  63. package/dist/components/layout/sidebar.js +170 -85
  64. package/dist/components/navigation/app-setting-picker.js +17 -6
  65. package/dist/components/navigation/filter-bar.d.ts +12 -3
  66. package/dist/components/navigation/filter-bar.js +8 -2
  67. package/dist/components/navigation/index.d.ts +2 -2
  68. package/dist/components/navigation/index.js +3 -1
  69. package/dist/components/navigation/tabs-scroll.d.ts +70 -0
  70. package/dist/components/navigation/tabs-scroll.js +76 -0
  71. package/dist/components/navigation/tabs.js +35 -20
  72. package/dist/email/brand-mark.d.ts +92 -0
  73. package/dist/email/brand-mark.js +83 -0
  74. package/dist/email/color.d.ts +52 -0
  75. package/dist/email/color.js +37 -0
  76. package/dist/email/geometry.d.ts +112 -0
  77. package/dist/email/geometry.js +89 -0
  78. package/dist/email/index.d.ts +78 -0
  79. package/dist/email/index.js +76 -0
  80. package/dist/email/inline-style.d.ts +25 -0
  81. package/dist/email/inline-style.js +21 -0
  82. package/dist/email/tokens.generated.d.ts +147 -0
  83. package/dist/email/tokens.generated.js +142 -0
  84. package/dist/i18n/messages/en.json +21 -2
  85. package/dist/i18n/messages/ja.json +21 -2
  86. package/dist/i18n/messages/vi.json +21 -2
  87. package/dist/inertia/index.d.ts +50 -0
  88. package/dist/inertia/index.js +5 -0
  89. package/dist/props/components/app.prop.d.ts +11 -1
  90. package/dist/props/components/charts.prop.d.ts +40 -1
  91. package/dist/props/components/data-display.prop.d.ts +13 -1
  92. package/dist/props/components/feedback.prop.d.ts +10 -0
  93. package/dist/props/components/index.d.ts +2 -2
  94. package/dist/props/components/layout.prop.d.ts +373 -10
  95. package/dist/props/components/layout.prop.js +1 -0
  96. package/dist/props/components/navigation.prop.d.ts +19 -1
  97. package/dist/props/registry.d.ts +291 -7
  98. package/dist/props/registry.js +341 -7
  99. package/dist/props/vocabulary/index.d.ts +1 -1
  100. package/dist/props/vocabulary/interaction.prop.d.ts +1 -1
  101. package/dist/props/vocabulary/layout.prop.d.ts +18 -0
  102. package/dist/styles/base.css +8 -2
  103. package/dist/styles/card-layout.css +161 -7
  104. package/dist/styles/chart-layout.css +97 -0
  105. package/dist/styles/control.css +48 -2
  106. package/dist/styles/data-display-layout.css +52 -6
  107. package/dist/styles/dialog-layout.css +105 -4
  108. package/dist/styles/fonts.css +15 -4
  109. package/dist/styles/index.css +11 -3
  110. package/dist/styles/layout.css +367 -1
  111. package/dist/styles/logo-layout.css +62 -0
  112. package/dist/styles/navigation-layout.css +43 -0
  113. package/dist/styles/shell-layout.css +488 -40
  114. package/dist/theme/dxs.canonical.css +76 -0
  115. package/dist/tokens/axes.css +39 -0
  116. package/dist/tokens/base.css +5 -0
  117. package/dist/tokens/components/card.css +48 -0
  118. package/dist/tokens/components/chart.css +47 -0
  119. package/dist/tokens/components/control.css +16 -0
  120. package/dist/tokens/components/email.css +66 -0
  121. package/dist/tokens/components/feedback.css +17 -0
  122. package/dist/tokens/components/legal-document.css +67 -0
  123. package/dist/tokens/components/list-row.css +23 -2
  124. package/dist/tokens/components/logo.css +32 -0
  125. package/dist/tokens/components/navigation.css +13 -0
  126. package/dist/tokens/components/sheet.css +19 -0
  127. package/dist/tokens/components/shell.css +138 -0
  128. package/dist/tokens/components/sidebar.css +33 -0
  129. package/dist/tokens/foundation.css +5 -2
  130. package/dist/tokens/semantic/layout.css +44 -2
  131. package/package.json +16 -5
@@ -187,6 +187,16 @@ 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
+ AuthShellPresetProp: {
196
+ file: "vocabulary/layout.prop.ts",
197
+ 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)"
199
+ },
190
200
  GapProp: {
191
201
  file: "vocabulary/layout.prop.ts",
192
202
  category: "layout",
@@ -216,7 +226,7 @@ const VOCABULARY_REGISTRY = {
216
226
  AppSettingPickerAppearanceProp: {
217
227
  file: "vocabulary/interaction.prop.ts",
218
228
  category: "interaction",
219
- description: "AppSettingPicker trigger presentation: labeled (icon + value) | icon (square icon-only topbar trigger)"
229
+ description: "AppSettingPicker trigger presentation: labeled (icon + value) | icon (square icon-only topbar trigger) | inline (compact text footer trigger)"
220
230
  },
221
231
  ShapeProp: {
222
232
  file: "vocabulary/interaction.prop.ts",
@@ -402,9 +412,19 @@ const COMPONENT_PROP_REGISTRY = {
402
412
  "DisabledProp",
403
413
  "IdProp",
404
414
  "ClassNameProp",
405
- "AppSettingPickerAppearanceProp"
415
+ "AppSettingPickerAppearanceProp",
416
+ {
417
+ field: "compact",
418
+ local: true,
419
+ reason: "Trigger DENSITY for the picker only (sm control tier + content-hugging width) \u2014 orthogonal to `appearance`, and not the page-level DensityProp scope."
420
+ }
406
421
  ]
407
422
  },
423
+ PageContainerHeaderLayoutProp: {
424
+ group: "layout",
425
+ file: "components/layout.prop.ts",
426
+ vocabulary: []
427
+ },
408
428
  PageContainerProp: {
409
429
  group: "layout",
410
430
  file: "components/layout.prop.ts",
@@ -415,7 +435,12 @@ const COMPONENT_PROP_REGISTRY = {
415
435
  "FooterProp",
416
436
  "BreadcrumbProp",
417
437
  "DensityProp",
418
- "PageContainerVariantProp"
438
+ "PageContainerVariantProp",
439
+ {
440
+ field: "headerLayout",
441
+ local: true,
442
+ 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."
443
+ }
419
444
  ]
420
445
  },
421
446
  FlexDirectionProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
@@ -433,6 +458,70 @@ const COMPONENT_PROP_REGISTRY = {
433
458
  ]
434
459
  },
435
460
  ResponsiveGridColumnsProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
461
+ MasterDetailRailWidthProp: {
462
+ group: "layout",
463
+ file: "components/layout.prop.ts",
464
+ vocabulary: []
465
+ },
466
+ MasterDetailRailProp: {
467
+ group: "layout",
468
+ file: "components/layout.prop.ts",
469
+ vocabulary: []
470
+ },
471
+ MasterDetailMasterViewportProp: {
472
+ group: "layout",
473
+ file: "components/layout.prop.ts",
474
+ vocabulary: []
475
+ },
476
+ MasterDetailProp: {
477
+ group: "layout",
478
+ file: "components/layout.prop.ts",
479
+ vocabulary: [
480
+ "ChildrenProp",
481
+ "BreakpointProp",
482
+ "IdProp",
483
+ {
484
+ field: "master",
485
+ local: true,
486
+ reason: "Semantic selectable-collection slot paired with the detail children slot."
487
+ },
488
+ {
489
+ field: "rail",
490
+ local: true,
491
+ reason: "Semantic selector for which region owns the fixed track (master | detail)."
492
+ },
493
+ {
494
+ field: "railWidth",
495
+ local: true,
496
+ reason: "Token-owned 300px/320px rail geometry preset."
497
+ },
498
+ {
499
+ field: "masterViewport",
500
+ local: true,
501
+ reason: "Token-owned bounded-collection preset (auto | compact | standard) for the master region's scroll viewport \u2014 geometry, not a raw pixel measure."
502
+ },
503
+ {
504
+ field: "collapseBelow",
505
+ local: true,
506
+ reason: "Per-instance override of the --master-detail-collapse-below stacking threshold."
507
+ },
508
+ {
509
+ field: "masterLabel",
510
+ local: true,
511
+ reason: "Accessible name for the master region landmark."
512
+ },
513
+ {
514
+ field: "detailLabel",
515
+ local: true,
516
+ reason: "Accessible name for the detail region landmark."
517
+ },
518
+ {
519
+ field: "detailId",
520
+ local: true,
521
+ reason: "Id of the detail region so master controls can wire aria-controls and focus."
522
+ }
523
+ ]
524
+ },
436
525
  PageInsetProp: {
437
526
  group: "layout",
438
527
  file: "components/layout.prop.ts",
@@ -446,12 +535,148 @@ const COMPONENT_PROP_REGISTRY = {
446
535
  AuthShellProp: {
447
536
  group: "layout",
448
537
  file: "components/layout.prop.ts",
449
- vocabulary: ["ChildrenProp", "ClassNameProp"]
538
+ vocabulary: [
539
+ "ChildrenProp",
540
+ "ClassNameProp",
541
+ {
542
+ field: "variant",
543
+ local: true,
544
+ reason: "Auth-shell geometry preset; canonical selects the shared DXS token contract."
545
+ },
546
+ {
547
+ field: "density",
548
+ local: true,
549
+ reason: "Auth-specific vertical-density scope for card descendants."
550
+ },
551
+ "AuthShellPresetProp"
552
+ ]
553
+ },
554
+ AuthDividerProp: {
555
+ group: "layout",
556
+ file: "components/layout.prop.ts",
557
+ vocabulary: ["LabelProp", "ClassNameProp"]
558
+ },
559
+ AuthFooterProp: {
560
+ group: "layout",
561
+ file: "components/layout.prop.ts",
562
+ vocabulary: [
563
+ "ClassNameProp",
564
+ {
565
+ field: "product",
566
+ local: true,
567
+ reason: "Consumer-owned host/product identity slot of the legal line, not a page TitleProp."
568
+ },
569
+ {
570
+ field: "terms",
571
+ local: true,
572
+ reason: "Consumer-owned Terms link/text slot \u2014 the library never invents legal navigation."
573
+ },
574
+ {
575
+ field: "privacy",
576
+ local: true,
577
+ reason: "Consumer-owned Privacy link/text slot \u2014 the library never invents legal navigation."
578
+ },
579
+ {
580
+ field: "locale",
581
+ local: true,
582
+ reason: "Optional consumer-owned locale control slot (an AppSettingPicker), not a locale value."
583
+ }
584
+ ]
585
+ },
586
+ AuthIdentityProp: {
587
+ group: "layout",
588
+ file: "components/layout.prop.ts",
589
+ vocabulary: [
590
+ "TitleProp",
591
+ "ClassNameProp",
592
+ {
593
+ field: "requester",
594
+ local: true,
595
+ reason: "Authoritative requesting-client context for a delegated auth flow (device grant / consent)."
596
+ }
597
+ ]
450
598
  },
451
599
  CenteredShellProp: {
452
600
  group: "layout",
453
601
  file: "components/layout.prop.ts",
454
- vocabulary: ["ChildrenProp", "ClassNameProp", "CenteredShellWidthProp"]
602
+ vocabulary: [
603
+ "ChildrenProp",
604
+ "ClassNameProp",
605
+ "CenteredShellWidthProp",
606
+ "CenteredShellAlignProp"
607
+ ]
608
+ },
609
+ LegalDocumentSectionProp: {
610
+ group: "layout",
611
+ file: "components/layout.prop.ts",
612
+ vocabulary: [
613
+ "IdProp",
614
+ "TitleProp",
615
+ {
616
+ field: "content",
617
+ local: true,
618
+ reason: "Consumer-owned legal body for one section \u2014 a content slot, not the ChildrenProp of the shell itself."
619
+ }
620
+ ]
621
+ },
622
+ LegalDocumentShellProp: {
623
+ group: "layout",
624
+ file: "components/layout.prop.ts",
625
+ vocabulary: [
626
+ "TitleProp",
627
+ "IdProp",
628
+ "ClassNameProp",
629
+ {
630
+ field: "version",
631
+ local: true,
632
+ reason: "Document version identifier interpolated into a localized 'Version {version}'."
633
+ },
634
+ {
635
+ field: "effectiveDate",
636
+ local: true,
637
+ reason: "ISO 8601 date input formatted via Intl.DateTimeFormat in the active locale."
638
+ },
639
+ {
640
+ field: "summary",
641
+ local: true,
642
+ reason: "Plain-language document summary slot, distinct from a page SubtitleProp."
643
+ },
644
+ {
645
+ field: "contentsLabel",
646
+ local: true,
647
+ reason: "Accessible name + visible caption of the contents nav landmark (landmark-unique override)."
648
+ },
649
+ {
650
+ field: "sections",
651
+ local: true,
652
+ reason: "Ordered LegalDocumentSectionProp[] driving both the contents list and the body."
653
+ },
654
+ {
655
+ field: "activeSection",
656
+ local: true,
657
+ reason: "Controlled active-section id \u2014 the X / defaultX / onXChange family (like open/onOpenChange); 'value' would be meaningless on a document shell."
658
+ },
659
+ {
660
+ field: "defaultActiveSection",
661
+ local: true,
662
+ reason: "Uncontrolled initial active-section id."
663
+ },
664
+ {
665
+ field: "onActiveSectionChange",
666
+ local: true,
667
+ reason: "Active-section change handler (anchor activation \xB7 hash deep link \xB7 scroll spy)."
668
+ },
669
+ {
670
+ field: "documentNavigation",
671
+ local: true,
672
+ reason: "Rail slot for a switcher across the legal document set."
673
+ },
674
+ {
675
+ field: "footerAction",
676
+ local: true,
677
+ reason: "Document-footer slot for accept / download / print actions."
678
+ }
679
+ ]
455
680
  },
456
681
  SidebarProductProp: {
457
682
  group: "layout",
@@ -463,11 +688,47 @@ const COMPONENT_PROP_REGISTRY = {
463
688
  file: "components/layout.prop.ts",
464
689
  vocabulary: ["IdProp", "LabelProp", "DisabledProp", "ChildrenProp"]
465
690
  },
691
+ SidebarRenderItemProp: {
692
+ group: "layout",
693
+ file: "components/layout.prop.ts",
694
+ vocabulary: ["ClassNameProp", "ChildrenProp"]
695
+ },
696
+ SidebarLinkProp: {
697
+ group: "layout",
698
+ file: "components/layout.prop.ts",
699
+ vocabulary: ["ClassNameProp", "ChildrenProp", "OnClickProp"]
700
+ },
701
+ SidebarLinkComponentProp: {
702
+ group: "layout",
703
+ file: "components/layout.prop.ts",
704
+ vocabulary: [
705
+ {
706
+ field: "linkComponent",
707
+ local: true,
708
+ reason: "Component type alias for a framework router Link driven by SidebarLinkProp (gh#213)."
709
+ }
710
+ ]
711
+ },
466
712
  SidebarSectionProp: {
467
713
  group: "layout",
468
714
  file: "components/layout.prop.ts",
469
715
  vocabulary: ["LabelProp"]
470
716
  },
717
+ OrgSwitcherOrganization: {
718
+ group: "layout",
719
+ file: "components/layout.prop.ts",
720
+ vocabulary: ["IdProp", "LabelProp", "DisabledProp"]
721
+ },
722
+ OrgSwitcherLabels: {
723
+ group: "layout",
724
+ file: "components/layout.prop.ts",
725
+ vocabulary: ["LabelProp"]
726
+ },
727
+ OrgSwitcherProp: {
728
+ group: "layout",
729
+ file: "components/layout.prop.ts",
730
+ vocabulary: ["ValueProp", "OnValueChangeProp", "DisabledProp", "ClassNameProp"]
731
+ },
471
732
  SidebarProp: {
472
733
  group: "layout",
473
734
  file: "components/layout.prop.ts",
@@ -795,7 +1056,7 @@ const COMPONENT_PROP_REGISTRY = {
795
1056
  DataTableProp: {
796
1057
  group: "data-display",
797
1058
  file: "components/data-display.prop.ts",
798
- vocabulary: ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp"]
1059
+ vocabulary: ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp", "HandlerProp"]
799
1060
  },
800
1061
  CredentialRevealProp: {
801
1062
  group: "data-display",
@@ -877,6 +1138,38 @@ const COMPONENT_PROP_REGISTRY = {
877
1138
  { field: "horizontal", local: true, reason: "Category axis on the left." }
878
1139
  ]
879
1140
  },
1141
+ CompactBarTrendProp: {
1142
+ group: "data-display",
1143
+ file: "components/charts.prop.ts",
1144
+ vocabulary: [
1145
+ "LabelProp",
1146
+ "DescriptionProp",
1147
+ "SizeProp",
1148
+ "FooterProp",
1149
+ "EmptyMessageProp",
1150
+ "ClassNameProp",
1151
+ "IdProp",
1152
+ { field: "data", local: true, reason: "Chart row data (one bar per row)." },
1153
+ { field: "categoryKey", local: true, reason: "Accessor key for the bar's tick label." },
1154
+ { field: "valueKey", local: true, reason: "Accessor key for the plotted numeric value." },
1155
+ {
1156
+ field: "emphasizedIndex",
1157
+ local: true,
1158
+ reason: "Index of the highlighted 'current' bar (negative counts from the end)."
1159
+ },
1160
+ {
1161
+ field: "showCategoryLabels",
1162
+ local: true,
1163
+ reason: "Chart-specific tick-label toggle."
1164
+ },
1165
+ {
1166
+ field: "numberFormat",
1167
+ local: true,
1168
+ reason: "Intl.NumberFormat options for the text alternative."
1169
+ },
1170
+ { field: "ref", local: true, reason: "Forwarded ref to the <figure> element." }
1171
+ ]
1172
+ },
880
1173
  AreaChartProp: {
881
1174
  group: "data-display",
882
1175
  file: "components/charts.prop.ts",
@@ -1036,6 +1329,7 @@ const COMPONENT_PROP_REGISTRY = {
1036
1329
  file: "components/feedback.prop.ts",
1037
1330
  vocabulary: ["ClassNameProp", "ChildrenProp"]
1038
1331
  },
1332
+ SheetResponsiveProp: { group: "feedback", file: "components/feedback.prop.ts", vocabulary: [] },
1039
1333
  SkeletonRowsProp: { group: "feedback", file: "components/feedback.prop.ts", vocabulary: [] },
1040
1334
  ToolbarProp: {
1041
1335
  group: "navigation",
@@ -1048,10 +1342,15 @@ const COMPONENT_PROP_REGISTRY = {
1048
1342
  "ChildrenProp"
1049
1343
  ]
1050
1344
  },
1345
+ FilterBarOverflowProp: {
1346
+ group: "navigation",
1347
+ file: "components/navigation.prop.ts",
1348
+ vocabulary: []
1349
+ },
1051
1350
  ToolbarGroupProp: {
1052
1351
  group: "navigation",
1053
1352
  file: "components/navigation.prop.ts",
1054
- vocabulary: ["LabelProp", "ClassNameProp", "ChildrenProp"]
1353
+ vocabulary: ["LabelProp", "IdProp", "ClassNameProp", "ChildrenProp"]
1055
1354
  },
1056
1355
  PaginationProp: {
1057
1356
  group: "navigation",
@@ -1116,6 +1415,21 @@ const COMPONENT_PROP_REGISTRY = {
1116
1415
  file: "components/ui/toggle.tsx",
1117
1416
  vocabulary: ["SizeProp", "ClassNameProp"]
1118
1417
  },
1418
+ CommandPaletteProp: {
1419
+ group: "data-entry",
1420
+ file: "components/data-entry/command-palette.tsx",
1421
+ vocabulary: ["OpenProp", "DefaultOpenProp", "OnOpenChangeProp"]
1422
+ },
1423
+ TwoFactorSetupProp: {
1424
+ group: "feedback",
1425
+ file: "components/feedback/two-factor-setup.tsx",
1426
+ vocabulary: ["OpenProp", "OnOpenChangeProp", "PendingProp"]
1427
+ },
1428
+ AuthStackProp: {
1429
+ group: "layout",
1430
+ file: "components/layout/auth-stack.tsx",
1431
+ vocabulary: ["ChildrenProp", "ClassNameProp"]
1432
+ },
1119
1433
  RatingProp: {
1120
1434
  group: "data-entry",
1121
1435
  file: "components/ui/rating.tsx",
@@ -1191,11 +1505,31 @@ const COMPONENT_PROP_REGISTRY = {
1191
1505
  file: "components/data-display/card.tsx",
1192
1506
  vocabulary: ["TitleProp", "ToneProp", "IconProp", "ClassNameProp"]
1193
1507
  },
1508
+ ServiceLauncherCardProp: {
1509
+ group: "data-display",
1510
+ file: "components/data-display/service-launcher-card.tsx",
1511
+ vocabulary: ["TitleProp", "ToneProp", "IconProp", "ClassNameProp", "DisabledProp"]
1512
+ },
1513
+ ServiceCatalogCtaProp: {
1514
+ group: "data-display",
1515
+ file: "components/data-display/service-launcher-card.tsx",
1516
+ vocabulary: ["TitleProp", "IconProp", "ClassNameProp"]
1517
+ },
1518
+ ServiceLauncherCardSkeletonProp: {
1519
+ group: "data-display",
1520
+ file: "components/data-display/service-launcher-card.tsx",
1521
+ vocabulary: ["LabelProp", "ClassNameProp"]
1522
+ },
1194
1523
  ResponsiveGridProp: {
1195
1524
  group: "layout",
1196
1525
  file: "components/layout/responsive-grid.tsx",
1197
1526
  vocabulary: ["GapProp", "ClassNameProp", "ChildrenProp"]
1198
1527
  },
1528
+ MasterDetailProps: {
1529
+ group: "layout",
1530
+ file: "components/layout/master-detail.tsx",
1531
+ vocabulary: ["ChildrenProp"]
1532
+ },
1199
1533
  SplitPaneProp: {
1200
1534
  group: "layout",
1201
1535
  file: "components/layout/split-pane.tsx",
@@ -1,7 +1,7 @@
1
1
  /** Barrel — all vocabulary prop types. */
2
2
  export type { ClassNameProp, ChildrenProp, IdProp, OpenProp, DefaultOpenProp, OnOpenChangeProp, HandlerProp, PendingProp, RequiredProp, DisabledProp, LabelProp, HelperProp, ErrorProp, PlaceholderProp, NameProp, ValueProp, DefaultValueProp, OnValueChangeProp, OnChangeProp, OnClickProp, AsChildProp, WidthProp, } from "./shared.prop.js";
3
3
  export type { TitleProp, SubtitleProp, DescriptionProp, ExtraProp, FooterProp, ActionProp, IconProp, ConfirmLabelProp, CancelLabelProp, ActionsProp, EmptyMessageProp, } from "./content.prop.js";
4
- export type { PageDensityProp, PageContainerVariantProp, CenteredShellWidthProp, TableDensityProp, DensityProp, GapProp, } from "./layout.prop.js";
4
+ export type { PageDensityProp, PageContainerVariantProp, CenteredShellWidthProp, CenteredShellAlignProp, AuthShellPresetProp, TableDensityProp, DensityProp, GapProp, } from "./layout.prop.js";
5
5
  export type { ButtonVariantProp, ButtonSizeProp, BadgeVariantProp, AppSettingPickerAppearanceProp, ShapeProp, TextSizeProp, TextToneProp, FontWeightProp, HeadingLevelProp, TextAlignProp, SizeProp, FormLayoutProp, BreakpointProp, ConfirmVariantProp, ToneProp, AlertVariantProp, SortDirectionProp, ColumnAlignProp, SortStateProp, RevealDelayProp, } from "./interaction.prop.js";
6
6
  export type { BreadcrumbItemProp, BreadcrumbProp } from "./navigation.prop.js";
7
7
  export type { GetRowIdProp, OnRowClickProp, ColumnDefProp, SelectedIdsProp, OnSelectChangeProp, OnTableDensityChangeProp, OnSortChangeProp, OnSearchChangeProp, OnClearFiltersProp, HasActiveFiltersProp, StickyProp, } from "./data.prop.js";
@@ -29,7 +29,7 @@ export type BadgeVariantProp = "default" | "secondary" | "outline" | "dashed";
29
29
  * `aria-label`, focus ring, keyboard behaviour and a `--control-height` tap target (which is
30
30
  * ≥44px on coarse/touch pointers per Rule #24) — so consumers never hide internal nodes via CSS.
31
31
  */
32
- export type AppSettingPickerAppearanceProp = "labeled" | "icon";
32
+ export type AppSettingPickerAppearanceProp = "labeled" | "icon" | "inline";
33
33
  /** Button size preset. */
34
34
  export type SizeProp = "xs" | "sm" | "md" | "lg";
35
35
  /** Button size preset; icon-only sizes are a documented Button subset. */
@@ -10,6 +10,24 @@ export type DensityProp = "compact" | "default" | "comfortable";
10
10
  export type PageContainerVariantProp = "default" | "narrow" | "flush" | "ghost";
11
11
  /** CenteredShell content-column max-width tier — sm ~32rem, md ~46rem, lg ~64rem. */
12
12
  export type CenteredShellWidthProp = "sm" | "md" | "lg";
13
+ /**
14
+ * CenteredShell content-column BLOCK alignment inside the viewport-height shell.
15
+ * `"start"` (default) keeps the top-aligned flowing/scrolling page shape; `"center"` centres the
16
+ * column in the viewport for a SYSTEM-level standalone surface (a 500/503 error page, a
17
+ * maintenance notice) — the geometry stays package-owned, so no consumer `min-h-dvh` / flex CSS.
18
+ */
19
+ export type CenteredShellAlignProp = "start" | "center";
20
+ /**
21
+ * AuthShell named flow preset — the page MEASURE contract for a canonical hosted-identity flow
22
+ * (card max-width plus the desktop and mobile page gutters), owned by component tokens.
23
+ * `"default"` keeps the shell's own measure; `"device-authorization"` is the 380px device-grant
24
+ * measure with a 5px mobile inline gutter; `"context-selection"` is the 25rem organisation/context
25
+ * picker measure that goes edge-to-edge on mobile; `"account-recovery"` is the 432px SCR-008
26
+ * measure shared by the password-recovery and sign-in MFA challenge panels (15px mobile inline
27
+ * gutter). Orthogonal to AuthShell's `variant` (which owns control density and heading size) —
28
+ * combine them.
29
+ */
30
+ export type AuthShellPresetProp = "default" | "device-authorization" | "context-selection" | "account-recovery";
13
31
  /** Shared gap between layout children; components may document subsets. */
14
32
  export type GapProp = "xs" | "sm" | "md" | "lg" | "xl";
15
33
  /** DataTable row density subset. */
@@ -14,8 +14,14 @@
14
14
  *
15
15
  * The layout files declare `@layer components` and use `@apply`, so base.css
16
16
  * (which pulls in Tailwind) MUST be imported before them, in the same
17
- * stylesheet. Bundled fonts are opt-in — add `@godxjp/ui/styles/fonts` if you
18
- * want them, or skip it and supply your own via the --font-family-* tokens.
17
+ * stylesheet.
18
+ *
19
+ * Bundled fonts are opt-in — add `@godxjp/ui/styles/fonts` if you want them, or
20
+ * skip it and supply your own via the --font-family-* tokens. When you DO import
21
+ * it, it MUST come AFTER this file: base.css pulls in tokens/foundation.css,
22
+ * whose font-agnostic `:root { --font-sans-base: <system stack> }` sits at the
23
+ * same specificity as the bundle's fill, so the later import wins. Imported
24
+ * first, the bundle is dead weight (issue #210).
19
25
  *
20
26
  * Prefer the all-in-one `@godxjp/ui/styles` entry if you'd rather ship every
21
27
  * component's CSS + the bundled fonts and not think about it.