banhaten 0.4.0 → 0.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.
- package/CHANGELOG.md +78 -1
- package/CONTRIBUTING.md +6 -4
- package/README.md +4 -2
- package/docs/design-spacing.md +13 -0
- package/docs/design-system/README.md +2 -0
- package/docs/design-system/appearances/default.md +1 -1
- package/docs/design-system/appearances/rounded.md +1 -1
- package/docs/design-system/appearances/sharp.md +1 -1
- package/docs/design-system/component-showcase-consistency-report.md +5 -5
- package/docs/design-system/components/README.md +15 -0
- package/docs/design-system/components/accordion.md +1 -1
- package/docs/design-system/components/activity-feed.md +1 -1
- package/docs/design-system/components/activity-heatmap.md +1 -1
- package/docs/design-system/components/agent-input.md +85 -0
- package/docs/design-system/components/alert-dialog.md +1 -1
- package/docs/design-system/components/alert.md +10 -4
- package/docs/design-system/components/app-header.md +97 -0
- package/docs/design-system/components/approval-card.md +134 -0
- package/docs/design-system/components/attribute.md +14 -2
- package/docs/design-system/components/avatar.md +1 -1
- package/docs/design-system/components/badge.md +1 -1
- package/docs/design-system/components/banner.md +1 -1
- package/docs/design-system/components/breadcrumbs.md +8 -3
- package/docs/design-system/components/button-group.md +1 -1
- package/docs/design-system/components/button.md +8 -5
- package/docs/design-system/components/card.md +15 -1
- package/docs/design-system/components/catalog-components.md +1 -1
- package/docs/design-system/components/chart.md +95 -24
- package/docs/design-system/components/checkbox.md +1 -1
- package/docs/design-system/components/collapsible.md +20 -6
- package/docs/design-system/components/command.md +1 -1
- package/docs/design-system/components/context-menu.md +1 -1
- package/docs/design-system/components/date-picker.md +1 -1
- package/docs/design-system/components/file-upload.md +1 -1
- package/docs/design-system/components/hover-card.md +1 -1
- package/docs/design-system/components/inline-citations.md +93 -0
- package/docs/design-system/components/input-group.md +1 -1
- package/docs/design-system/components/input.md +59 -3
- package/docs/design-system/components/item.md +1 -1
- package/docs/design-system/components/kbd.md +6 -4
- package/docs/design-system/components/menu.md +35 -4
- package/docs/design-system/components/menubar.md +1 -1
- package/docs/design-system/components/modal.md +2 -2
- package/docs/design-system/components/native-select.md +1 -1
- package/docs/design-system/components/navigation-menu.md +1 -1
- package/docs/design-system/components/onboarding-step-list-item.md +1 -1
- package/docs/design-system/components/page-header.md +58 -17
- package/docs/design-system/components/pagination.md +2 -2
- package/docs/design-system/components/popover.md +1 -1
- package/docs/design-system/components/progress-slider.md +1 -1
- package/docs/design-system/components/radio-card.md +1 -1
- package/docs/design-system/components/radio-group.md +1 -1
- package/docs/design-system/components/resizable.md +1 -1
- package/docs/design-system/components/rolling-count.md +61 -0
- package/docs/design-system/components/scroll-area.md +1 -1
- package/docs/design-system/components/select.md +12 -2
- package/docs/design-system/components/sheet.md +1 -1
- package/docs/design-system/components/shimmer-text.md +67 -0
- package/docs/design-system/components/sidebar.md +75 -8
- package/docs/design-system/components/skeleton.md +2 -2
- package/docs/design-system/components/slideout.md +1 -1
- package/docs/design-system/components/slider.md +2 -2
- package/docs/design-system/components/social-button.md +2 -2
- package/docs/design-system/components/streaming-text.md +82 -0
- package/docs/design-system/components/table.md +103 -21
- package/docs/design-system/components/tabs.md +25 -6
- package/docs/design-system/components/tag.md +1 -1
- package/docs/design-system/components/task-list.md +95 -0
- package/docs/design-system/components/textarea.md +1 -1
- package/docs/design-system/components/thinking-reasoning.md +72 -0
- package/docs/design-system/components/thinking-state.md +67 -0
- package/docs/design-system/components/timeline.md +1 -1
- package/docs/design-system/components/toast.md +1 -1
- package/docs/design-system/components/toggle.md +2 -2
- package/docs/design-system/components/toolbar.md +11 -6
- package/docs/design-system/components/tooltip.md +6 -4
- package/docs/design-system/density-and-elevation.md +16 -16
- package/docs/design-system/design-system-test-missing-items.md +8 -8
- package/docs/design-system/installation.md +2 -0
- package/docs/design-system/tabs.md +2 -1
- package/docs/design-system/template-gap-audit.md +32 -0
- package/docs/design-system/templates.md +59 -0
- package/docs/design-system/token-governance.md +15 -2
- package/package.json +2 -2
- package/registry/components/accordion.tsx +2 -2
- package/registry/components/agent-input-parts.tsx +552 -0
- package/registry/components/agent-input-state.ts +156 -0
- package/registry/components/agent-input.css +307 -0
- package/registry/components/agent-input.tsx +382 -0
- package/registry/components/alert-dialog.tsx +2 -2
- package/registry/components/alert.tsx +23 -7
- package/registry/components/app-header.tsx +151 -0
- package/registry/components/approval-card.css +409 -0
- package/registry/components/approval-card.tsx +401 -0
- package/registry/components/approval-frame.tsx +108 -0
- package/registry/components/approval-questions.tsx +559 -0
- package/registry/components/attribute.tsx +48 -13
- package/registry/components/autocomplete.tsx +15 -68
- package/registry/components/avatar.tsx +2 -2
- package/registry/components/badge.tsx +8 -7
- package/registry/components/button-group.tsx +2 -2
- package/registry/components/button.tsx +19 -14
- package/registry/components/card.tsx +18 -5
- package/registry/components/chart-block-data.ts +177 -0
- package/registry/components/chart-block.css +171 -0
- package/registry/components/chart-block.tsx +260 -0
- package/registry/components/chart-interactions.ts +123 -0
- package/registry/components/chart-options.cartesian.ts +162 -0
- package/registry/components/chart-options.paint.ts +99 -0
- package/registry/components/chart-options.parts.ts +72 -0
- package/registry/components/chart-options.radial.ts +109 -0
- package/registry/components/chart-options.ts +44 -0
- package/registry/components/chart-options.types.ts +67 -0
- package/registry/components/chart.tsx +1 -1
- package/registry/components/checkbox.tsx +6 -6
- package/registry/components/collapsible.tsx +43 -3
- package/registry/components/command.tsx +1 -1
- package/registry/components/context-menu.tsx +1 -1
- package/registry/components/data-chart.tsx +40 -0
- package/registry/components/date-picker.tsx +9 -9
- package/registry/components/echart-theme.ts +246 -0
- package/registry/components/echart.css +49 -0
- package/registry/components/echart.tsx +178 -0
- package/registry/components/expanded/Breadcrumbs.tsx +5 -1
- package/registry/components/expanded/PageHeader.tsx +67 -24
- package/registry/components/expanded/Table.tsx +60 -22
- package/registry/components/expanded/activityFeed.css +2 -2
- package/registry/components/expanded/activityHeatmap.css +1 -1
- package/registry/components/expanded/banner.css +2 -2
- package/registry/components/expanded/breadcrumbs.css +19 -2
- package/registry/components/expanded/catalogComponentsShowcase.css +1 -1
- package/registry/components/expanded/fileUpload.css +7 -7
- package/registry/components/expanded/onboardingStepListItem.css +2 -2
- package/registry/components/expanded/pageHeader.css +38 -44
- package/registry/components/expanded/slideout.css +4 -4
- package/registry/components/expanded/table.css +58 -9
- package/registry/components/expanded/timeline.css +1 -1
- package/registry/components/hover-card.tsx +1 -1
- package/registry/components/inline-citations.css +126 -0
- package/registry/components/inline-citations.tsx +292 -0
- package/registry/components/input-group.tsx +4 -4
- package/registry/components/input.tsx +150 -137
- package/registry/components/item.tsx +1 -1
- package/registry/components/kbd.tsx +3 -2
- package/registry/components/menu.tsx +117 -12
- package/registry/components/menubar.tsx +2 -2
- package/registry/components/modal.tsx +3 -3
- package/registry/components/native-select.tsx +4 -4
- package/registry/components/navigation-menu.tsx +2 -2
- package/registry/components/pagination.tsx +4 -4
- package/registry/components/popover.tsx +3 -3
- package/registry/components/progress-slider.tsx +1 -1
- package/registry/components/radio-card.tsx +7 -7
- package/registry/components/radio-group.tsx +2 -2
- package/registry/components/resizable.tsx +2 -2
- package/registry/components/rolling-count.css +37 -0
- package/registry/components/rolling-count.tsx +110 -0
- package/registry/components/scroll-area.tsx +1 -1
- package/registry/components/select.tsx +15 -10
- package/registry/components/sheet.tsx +2 -2
- package/registry/components/shimmer-text.css +69 -0
- package/registry/components/shimmer-text.tsx +43 -0
- package/registry/components/sidebar.tsx +528 -223
- package/registry/components/skeleton.tsx +1 -1
- package/registry/components/slider.tsx +2 -2
- package/registry/components/social-button.tsx +1 -1
- package/registry/components/streaming-text.css +45 -0
- package/registry/components/streaming-text.tsx +165 -0
- package/registry/components/table-elements.tsx +164 -5
- package/registry/components/tabs.css +32 -4
- package/registry/components/tabs.tsx +5 -1
- package/registry/components/tag.tsx +1 -1
- package/registry/components/task-list.css +328 -0
- package/registry/components/task-list.tsx +429 -0
- package/registry/components/textarea.tsx +4 -4
- package/registry/components/thinking-reasoning.css +178 -0
- package/registry/components/thinking-reasoning.tsx +253 -0
- package/registry/components/thinking-state.css +8 -0
- package/registry/components/thinking-state.tsx +46 -0
- package/registry/components/toast.tsx +1 -1
- package/registry/components/toggle.tsx +2 -2
- package/registry/components/toolbar.tsx +6 -6
- package/registry/components/tooltip.tsx +6 -4
- package/registry/examples/agent-input-demo.tsx +90 -0
- package/registry/examples/app-header-demo.tsx +40 -0
- package/registry/examples/approval-card-demo.tsx +83 -0
- package/registry/examples/button-demo.tsx +3 -0
- package/registry/examples/chart-block-demo.tsx +5 -0
- package/registry/examples/chart-demo.tsx +6 -21
- package/registry/examples/collection-filter-bar-demo.tsx +1 -1
- package/registry/examples/control-density-contract-demo.tsx +5 -1
- package/registry/examples/inline-citations-demo.tsx +31 -0
- package/registry/examples/input-actions-demo.tsx +36 -0
- package/registry/examples/menu-demo.tsx +1 -1
- package/registry/examples/popover-demo.tsx +1 -0
- package/registry/examples/rolling-count-demo.tsx +39 -0
- package/registry/examples/shimmer-text-demo.tsx +20 -0
- package/registry/examples/streaming-text-demo.tsx +28 -0
- package/registry/examples/task-list-demo.tsx +74 -0
- package/registry/examples/thinking-reasoning-demo.tsx +74 -0
- package/registry/examples/thinking-state-demo.tsx +13 -0
- package/registry/guidance/charts.LICENSE.txt +24 -0
- package/registry/hooks/use-controllable-state.ts +33 -0
- package/registry/hooks/use-listbox-navigation.ts +73 -0
- package/registry/hooks/use-motion-end.ts +55 -0
- package/registry/hooks/use-reduced-motion.ts +28 -0
- package/registry/index.json +1808 -190
- package/registry/styles/globals.css +992 -1088
- package/registry.json +385 -10
- package/schema/registry.schema.json +5 -1
- package/schema/tokens.schema.json +8 -4
- package/src/cli/file-transaction.js +15 -8
- package/src/cli/index.js +22 -29
- package/tokens/banhaten.tokens.json +490 -192
package/registry/index.json
CHANGED
|
@@ -18,6 +18,22 @@
|
|
|
18
18
|
"source": "hooks/use-direction.ts",
|
|
19
19
|
"target": "{{hooks}}/use-direction.ts"
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"source": "hooks/use-controllable-state.ts",
|
|
23
|
+
"target": "{{hooks}}/use-controllable-state.ts"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"source": "hooks/use-listbox-navigation.ts",
|
|
27
|
+
"target": "{{hooks}}/use-listbox-navigation.ts"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"source": "hooks/use-motion-end.ts",
|
|
31
|
+
"target": "{{hooks}}/use-motion-end.ts"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"source": "hooks/use-reduced-motion.ts",
|
|
35
|
+
"target": "{{hooks}}/use-reduced-motion.ts"
|
|
36
|
+
},
|
|
21
37
|
{
|
|
22
38
|
"source": "guidance/USAGE.md",
|
|
23
39
|
"target": ".banhaten/USAGE.md"
|
|
@@ -111,8 +127,8 @@
|
|
|
111
127
|
"--bh-text-body-xs-medium-line-height",
|
|
112
128
|
"--bh-text-body-xs-regular-font-size",
|
|
113
129
|
"--bh-text-body-xs-regular-line-height",
|
|
114
|
-
"--
|
|
115
|
-
"--
|
|
130
|
+
"--elevation-accordion-item",
|
|
131
|
+
"--elevation-button-focus"
|
|
116
132
|
]
|
|
117
133
|
},
|
|
118
134
|
"aspect-ratio": {
|
|
@@ -326,7 +342,7 @@
|
|
|
326
342
|
"--bh-space-xl-12",
|
|
327
343
|
"--bh-space-xxs-2",
|
|
328
344
|
"--bh-text-body-sm-medium-font-size",
|
|
329
|
-
"--
|
|
345
|
+
"--elevation-avatar-badge"
|
|
330
346
|
]
|
|
331
347
|
},
|
|
332
348
|
"badge": {
|
|
@@ -440,6 +456,7 @@
|
|
|
440
456
|
"--bh-border-focus-danger",
|
|
441
457
|
"--bh-border-strong",
|
|
442
458
|
"--bh-border-subtle",
|
|
459
|
+
"--bh-border-width-default",
|
|
443
460
|
"--bh-content-accent-amber-default",
|
|
444
461
|
"--bh-content-accent-amber-strong",
|
|
445
462
|
"--bh-content-accent-blue-default",
|
|
@@ -608,7 +625,7 @@
|
|
|
608
625
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
609
626
|
"--bh-text-body-xs-medium-line-height",
|
|
610
627
|
"--bh-z-raised",
|
|
611
|
-
"--
|
|
628
|
+
"--elevation-button-focus"
|
|
612
629
|
]
|
|
613
630
|
},
|
|
614
631
|
"attribute": {
|
|
@@ -616,6 +633,13 @@
|
|
|
616
633
|
"dependencies": {
|
|
617
634
|
"class-variance-authority": "^0.7.1"
|
|
618
635
|
},
|
|
636
|
+
"props": {
|
|
637
|
+
"AttributeList.density": {
|
|
638
|
+
"type": "\"compact\" | \"default\" | \"comfortable\"",
|
|
639
|
+
"default": "default",
|
|
640
|
+
"description": "compact and default set the row padding (8px, 16px). comfortable is the app-shell detail row: no row padding, rows 16px apart, a 14/20 label in a 176px column and 16px before the value."
|
|
641
|
+
}
|
|
642
|
+
},
|
|
619
643
|
"parts": [
|
|
620
644
|
"AttributeCard",
|
|
621
645
|
"AttributeHeader",
|
|
@@ -670,6 +694,7 @@
|
|
|
670
694
|
"examples/attribute-demo.tsx"
|
|
671
695
|
],
|
|
672
696
|
"tokens": [
|
|
697
|
+
"--bh-attribute-comfortable-label-width",
|
|
673
698
|
"--bh-attribute-header-icon-size",
|
|
674
699
|
"--bh-attribute-header-icon-size-lg",
|
|
675
700
|
"--bh-attribute-label-width",
|
|
@@ -688,6 +713,7 @@
|
|
|
688
713
|
"--bh-space-5xl-24",
|
|
689
714
|
"--bh-space-6xl-32",
|
|
690
715
|
"--bh-space-md-8",
|
|
716
|
+
"--bh-space-none",
|
|
691
717
|
"--bh-space-sm-6",
|
|
692
718
|
"--bh-space-xl-12",
|
|
693
719
|
"--bh-space-xs-4",
|
|
@@ -699,6 +725,10 @@
|
|
|
699
725
|
"--bh-text-body-md-regular-font-weight",
|
|
700
726
|
"--bh-text-body-md-regular-letter-spacing",
|
|
701
727
|
"--bh-text-body-md-regular-line-height",
|
|
728
|
+
"--bh-text-body-sm-regular-font-size",
|
|
729
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
730
|
+
"--bh-text-body-sm-regular-letter-spacing",
|
|
731
|
+
"--bh-text-body-sm-regular-line-height",
|
|
702
732
|
"--bh-text-heading-sm-medium-font-size",
|
|
703
733
|
"--bh-text-heading-sm-medium-font-weight",
|
|
704
734
|
"--bh-text-heading-sm-medium-letter-spacing",
|
|
@@ -727,6 +757,11 @@
|
|
|
727
757
|
}
|
|
728
758
|
],
|
|
729
759
|
"props": {
|
|
760
|
+
"variant": {
|
|
761
|
+
"type": "\"default\" | \"secondary\" | \"soft\" | \"outline\" | \"ghost\" | \"ghost-primary\" | \"danger\" | \"soft-danger\" | \"white\" | \"success\" | \"warning\" | \"link\" | \"destructive\" | \"soft-destructive\"",
|
|
762
|
+
"default": "default",
|
|
763
|
+
"description": "Twelve canonical semantic treatments. The deprecated destructive and soft-destructive compatibility aliases remain accepted and map to danger and soft-danger, respectively."
|
|
764
|
+
},
|
|
730
765
|
"density": {
|
|
731
766
|
"type": "\"compact\" | \"default\" | \"comfortable\"",
|
|
732
767
|
"default": "comfortable",
|
|
@@ -752,7 +787,10 @@
|
|
|
752
787
|
"ghost-primary",
|
|
753
788
|
"danger",
|
|
754
789
|
"soft-danger",
|
|
755
|
-
"white"
|
|
790
|
+
"white",
|
|
791
|
+
"success",
|
|
792
|
+
"warning",
|
|
793
|
+
"link"
|
|
756
794
|
],
|
|
757
795
|
"sizes": [
|
|
758
796
|
"xs",
|
|
@@ -870,12 +908,12 @@
|
|
|
870
908
|
"--bh-text-button-font-weight",
|
|
871
909
|
"--bh-text-button-letter-spacing",
|
|
872
910
|
"--bh-text-button-line-height",
|
|
873
|
-
"--
|
|
874
|
-
"--
|
|
875
|
-
"--
|
|
876
|
-
"--
|
|
877
|
-
"--
|
|
878
|
-
"--
|
|
911
|
+
"--elevation-button-danger-focus",
|
|
912
|
+
"--elevation-button-focus",
|
|
913
|
+
"--elevation-button-raised",
|
|
914
|
+
"--elevation-button-secondary",
|
|
915
|
+
"--elevation-button-secondary-focus",
|
|
916
|
+
"--elevation-button-soft"
|
|
879
917
|
]
|
|
880
918
|
},
|
|
881
919
|
"card": {
|
|
@@ -887,6 +925,25 @@
|
|
|
887
925
|
"registryDependencies": [
|
|
888
926
|
"button"
|
|
889
927
|
],
|
|
928
|
+
"sizes": [
|
|
929
|
+
"default",
|
|
930
|
+
"comfortable"
|
|
931
|
+
],
|
|
932
|
+
"defaults": {
|
|
933
|
+
"sizes": "default"
|
|
934
|
+
},
|
|
935
|
+
"props": {
|
|
936
|
+
"Card.size": {
|
|
937
|
+
"type": "\"default\" | \"comfortable\"",
|
|
938
|
+
"default": "default",
|
|
939
|
+
"description": "comfortable is the panel inside an app shell: the same surface and 1px inset edge with a 12px radius instead of the library card's 16px."
|
|
940
|
+
},
|
|
941
|
+
"CardSurface.size": {
|
|
942
|
+
"type": "\"default\" | \"comfortable\"",
|
|
943
|
+
"default": "default",
|
|
944
|
+
"description": "The same sizes as Card, for compositions that bring their own layout."
|
|
945
|
+
}
|
|
946
|
+
},
|
|
890
947
|
"parts": [
|
|
891
948
|
"Card",
|
|
892
949
|
"CardSurface",
|
|
@@ -948,6 +1005,7 @@
|
|
|
948
1005
|
"--bh-card-actions-max-width",
|
|
949
1006
|
"--bh-card-bg",
|
|
950
1007
|
"--bh-card-border",
|
|
1008
|
+
"--bh-card-comfortable-radius",
|
|
951
1009
|
"--bh-card-content-padding",
|
|
952
1010
|
"--bh-card-desktop-content-padding",
|
|
953
1011
|
"--bh-card-desktop-full-height",
|
|
@@ -992,15 +1050,20 @@
|
|
|
992
1050
|
"--bh-text-heading-sm-semibold-font-weight",
|
|
993
1051
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
994
1052
|
"--bh-text-heading-sm-semibold-line-height",
|
|
995
|
-
"--
|
|
1053
|
+
"--elevation-button-focus"
|
|
996
1054
|
]
|
|
997
1055
|
},
|
|
998
1056
|
"chart": {
|
|
999
|
-
"description": "
|
|
1057
|
+
"description": "Eight token-driven ECharts families and 18 ready-made chart blocks, with responsive SVG rendering, theme-aware typography, tooltips, legends, brushes, and compatible Recharts wrappers.",
|
|
1000
1058
|
"dependencies": {
|
|
1001
|
-
"recharts": "^3.9.2"
|
|
1059
|
+
"recharts": "^3.9.2",
|
|
1060
|
+
"echarts": "^6.1.0",
|
|
1061
|
+
"lucide-react": "^1.17.0"
|
|
1002
1062
|
},
|
|
1003
1063
|
"parts": [
|
|
1064
|
+
"DataChart",
|
|
1065
|
+
"ChartBlock",
|
|
1066
|
+
"EChart",
|
|
1004
1067
|
"ChartContainer",
|
|
1005
1068
|
"ChartTooltip",
|
|
1006
1069
|
"ChartTooltipContent",
|
|
@@ -1017,12 +1080,40 @@
|
|
|
1017
1080
|
"ChartTooltip",
|
|
1018
1081
|
"ChartTooltipContent"
|
|
1019
1082
|
]
|
|
1083
|
+
},
|
|
1084
|
+
{
|
|
1085
|
+
"source": "components/echart.tsx",
|
|
1086
|
+
"values": [
|
|
1087
|
+
"EChart"
|
|
1088
|
+
]
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
"source": "components/chart-options.ts",
|
|
1092
|
+
"values": [
|
|
1093
|
+
"createChartOption"
|
|
1094
|
+
]
|
|
1095
|
+
},
|
|
1096
|
+
{
|
|
1097
|
+
"source": "components/data-chart.tsx",
|
|
1098
|
+
"values": [
|
|
1099
|
+
"DataChart"
|
|
1100
|
+
]
|
|
1101
|
+
},
|
|
1102
|
+
{
|
|
1103
|
+
"source": "components/chart-block.tsx",
|
|
1104
|
+
"values": [
|
|
1105
|
+
"ChartBlock",
|
|
1106
|
+
"chartBlocks"
|
|
1107
|
+
]
|
|
1020
1108
|
}
|
|
1021
1109
|
],
|
|
1022
1110
|
"tokens": [
|
|
1023
1111
|
"--bh-bg-neutral-subtle",
|
|
1024
1112
|
"--bh-bg-raised",
|
|
1113
|
+
"--bh-border-default",
|
|
1114
|
+
"--bh-border-focus",
|
|
1025
1115
|
"--bh-border-subtle",
|
|
1116
|
+
"--bh-border-width-default",
|
|
1026
1117
|
"--bh-chart-categorical-aqua",
|
|
1027
1118
|
"--bh-chart-categorical-brand",
|
|
1028
1119
|
"--bh-chart-categorical-danger",
|
|
@@ -1031,44 +1122,209 @@
|
|
|
1031
1122
|
"--bh-chart-categorical-purple",
|
|
1032
1123
|
"--bh-chart-categorical-success",
|
|
1033
1124
|
"--bh-chart-categorical-warning",
|
|
1125
|
+
"--bh-chart-neutral-default",
|
|
1126
|
+
"--bh-content-brand-default",
|
|
1034
1127
|
"--bh-content-default",
|
|
1035
1128
|
"--bh-content-muted",
|
|
1036
1129
|
"--bh-content-subtle",
|
|
1130
|
+
"--bh-duration-default",
|
|
1131
|
+
"--bh-focus-ring-width",
|
|
1132
|
+
"--bh-font-family",
|
|
1133
|
+
"--bh-font-family-mono",
|
|
1134
|
+
"--bh-icon-stroke-200",
|
|
1135
|
+
"--bh-interactive-ghost-hover",
|
|
1136
|
+
"--bh-opacity-15",
|
|
1137
|
+
"--bh-opacity-30",
|
|
1138
|
+
"--bh-opacity-90",
|
|
1139
|
+
"--bh-opacity-muted",
|
|
1140
|
+
"--bh-radius-3xl-16",
|
|
1037
1141
|
"--bh-radius-full",
|
|
1038
1142
|
"--bh-radius-lg-8",
|
|
1143
|
+
"--bh-radius-md-6",
|
|
1144
|
+
"--bh-radius-sm-4",
|
|
1145
|
+
"--bh-radius-xl-10",
|
|
1146
|
+
"--bh-radius-xs-2",
|
|
1147
|
+
"--bh-space-11xl-96",
|
|
1148
|
+
"--bh-space-12xl-128",
|
|
1149
|
+
"--bh-space-15xl-224",
|
|
1039
1150
|
"--bh-space-17xl-288",
|
|
1040
1151
|
"--bh-space-19xl-384",
|
|
1041
1152
|
"--bh-space-3xl-16",
|
|
1153
|
+
"--bh-space-4xl-20",
|
|
1154
|
+
"--bh-space-5xl-24",
|
|
1155
|
+
"--bh-space-6xl-32",
|
|
1156
|
+
"--bh-space-7xl-40",
|
|
1157
|
+
"--bh-space-9xl-64",
|
|
1158
|
+
"--bh-space-lg-10",
|
|
1042
1159
|
"--bh-space-md-8",
|
|
1043
1160
|
"--bh-space-sm-6",
|
|
1044
1161
|
"--bh-space-xl-12",
|
|
1045
1162
|
"--bh-space-xs-4",
|
|
1163
|
+
"--bh-space-xxs-2",
|
|
1164
|
+
"--bh-space-xxxs-1",
|
|
1165
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
1166
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
1167
|
+
"--bh-text-body-3xs-regular-font-size",
|
|
1168
|
+
"--bh-text-body-3xs-regular-line-height",
|
|
1169
|
+
"--bh-text-body-sm-medium-font-size",
|
|
1170
|
+
"--bh-text-body-sm-medium-line-height",
|
|
1171
|
+
"--bh-text-body-sm-regular-font-size",
|
|
1172
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
1173
|
+
"--bh-text-body-sm-regular-line-height",
|
|
1046
1174
|
"--bh-text-body-xs-medium-font-size",
|
|
1047
1175
|
"--bh-text-body-xs-medium-font-weight",
|
|
1048
1176
|
"--bh-text-body-xs-regular-font-size",
|
|
1049
1177
|
"--bh-text-body-xs-regular-font-weight",
|
|
1050
1178
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
1051
1179
|
"--bh-text-body-xs-regular-line-height",
|
|
1052
|
-
"--
|
|
1180
|
+
"--bh-text-heading-lg-semibold-font-size",
|
|
1181
|
+
"--bh-text-heading-lg-semibold-font-weight",
|
|
1182
|
+
"--bh-text-heading-lg-semibold-letter-spacing",
|
|
1183
|
+
"--bh-text-heading-lg-semibold-line-height",
|
|
1184
|
+
"--bh-text-heading-md-semibold-font-size",
|
|
1185
|
+
"--bh-text-heading-md-semibold-font-weight",
|
|
1186
|
+
"--bh-text-heading-md-semibold-letter-spacing",
|
|
1187
|
+
"--bh-text-heading-md-semibold-line-height",
|
|
1188
|
+
"--bh-text-heading-xs-semibold-font-size",
|
|
1189
|
+
"--bh-text-heading-xs-semibold-font-weight",
|
|
1190
|
+
"--bh-text-heading-xs-semibold-letter-spacing",
|
|
1191
|
+
"--bh-text-heading-xs-semibold-line-height",
|
|
1192
|
+
"--elevation-popover"
|
|
1053
1193
|
],
|
|
1054
1194
|
"features": [
|
|
1055
|
-
"
|
|
1056
|
-
"
|
|
1057
|
-
"
|
|
1058
|
-
"
|
|
1195
|
+
"eight chart families",
|
|
1196
|
+
"18 ready-made blocks",
|
|
1197
|
+
"live theme and font tokens",
|
|
1198
|
+
"responsive SVG",
|
|
1199
|
+
"tooltips and legends",
|
|
1200
|
+
"range brush",
|
|
1201
|
+
"pattern fills",
|
|
1202
|
+
"reduced motion",
|
|
1203
|
+
"RTL",
|
|
1204
|
+
"Recharts compatibility"
|
|
1059
1205
|
],
|
|
1060
1206
|
"rtl": {
|
|
1061
1207
|
"inheritsDirection": true,
|
|
1062
|
-
"layout": "
|
|
1208
|
+
"layout": "Labels and block layouts inherit direction. DataChart mirrors Cartesian category axes and value-axis placement. Flow diagrams preserve data-defined direction. Legacy ChartContainer geometry is controlled by Recharts."
|
|
1063
1209
|
},
|
|
1064
1210
|
"files": [
|
|
1065
1211
|
{
|
|
1066
1212
|
"source": "components/chart.tsx",
|
|
1067
1213
|
"target": "{{ui}}/chart.tsx"
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"source": "guidance/charts.LICENSE.txt",
|
|
1217
|
+
"target": "{{ui}}/charts.LICENSE.txt"
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
"source": "components/chart-block-data.ts",
|
|
1221
|
+
"target": "{{ui}}/chart-block-data.ts",
|
|
1222
|
+
"internal": true
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"source": "components/chart-block.css",
|
|
1226
|
+
"target": "{{ui}}/chart-block.css"
|
|
1227
|
+
},
|
|
1228
|
+
{
|
|
1229
|
+
"source": "components/chart-block.tsx",
|
|
1230
|
+
"target": "{{ui}}/chart-block.tsx"
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
"source": "components/chart-interactions.ts",
|
|
1234
|
+
"target": "{{ui}}/chart-interactions.ts",
|
|
1235
|
+
"internal": true
|
|
1236
|
+
},
|
|
1237
|
+
{
|
|
1238
|
+
"source": "components/chart-options.cartesian.ts",
|
|
1239
|
+
"target": "{{ui}}/chart-options.cartesian.ts",
|
|
1240
|
+
"internal": true
|
|
1241
|
+
},
|
|
1242
|
+
{
|
|
1243
|
+
"source": "components/chart-options.paint.ts",
|
|
1244
|
+
"target": "{{ui}}/chart-options.paint.ts",
|
|
1245
|
+
"internal": true
|
|
1246
|
+
},
|
|
1247
|
+
{
|
|
1248
|
+
"source": "components/chart-options.parts.ts",
|
|
1249
|
+
"target": "{{ui}}/chart-options.parts.ts",
|
|
1250
|
+
"internal": true
|
|
1251
|
+
},
|
|
1252
|
+
{
|
|
1253
|
+
"source": "components/chart-options.radial.ts",
|
|
1254
|
+
"target": "{{ui}}/chart-options.radial.ts",
|
|
1255
|
+
"internal": true
|
|
1256
|
+
},
|
|
1257
|
+
{
|
|
1258
|
+
"source": "components/chart-options.ts",
|
|
1259
|
+
"target": "{{ui}}/chart-options.ts"
|
|
1260
|
+
},
|
|
1261
|
+
{
|
|
1262
|
+
"source": "components/chart-options.types.ts",
|
|
1263
|
+
"target": "{{ui}}/chart-options.types.ts",
|
|
1264
|
+
"internal": true
|
|
1265
|
+
},
|
|
1266
|
+
{
|
|
1267
|
+
"source": "components/data-chart.tsx",
|
|
1268
|
+
"target": "{{ui}}/data-chart.tsx"
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
"source": "components/echart-theme.ts",
|
|
1272
|
+
"target": "{{ui}}/echart-theme.ts",
|
|
1273
|
+
"internal": true
|
|
1274
|
+
},
|
|
1275
|
+
{
|
|
1276
|
+
"source": "components/echart.css",
|
|
1277
|
+
"target": "{{ui}}/echart.css"
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
"source": "components/echart.tsx",
|
|
1281
|
+
"target": "{{ui}}/echart.tsx"
|
|
1068
1282
|
}
|
|
1069
1283
|
],
|
|
1070
1284
|
"examples": [
|
|
1071
|
-
"examples/chart-demo.tsx"
|
|
1285
|
+
"examples/chart-demo.tsx",
|
|
1286
|
+
"examples/chart-block-demo.tsx"
|
|
1287
|
+
],
|
|
1288
|
+
"props": {
|
|
1289
|
+
"spec": {
|
|
1290
|
+
"type": "ChartSpec",
|
|
1291
|
+
"default": null,
|
|
1292
|
+
"description": "DataChart: family, data, series, variant, stacking, labels, brush, and interaction options. Series colors are Banhaten palette indices."
|
|
1293
|
+
},
|
|
1294
|
+
"label": {
|
|
1295
|
+
"type": "string",
|
|
1296
|
+
"default": null,
|
|
1297
|
+
"description": "DataChart / EChart: required accessible chart name."
|
|
1298
|
+
},
|
|
1299
|
+
"description": {
|
|
1300
|
+
"type": "string",
|
|
1301
|
+
"default": null,
|
|
1302
|
+
"description": "DataChart / EChart: optional accessible text summary."
|
|
1303
|
+
},
|
|
1304
|
+
"block": {
|
|
1305
|
+
"type": "ChartBlockId",
|
|
1306
|
+
"default": null,
|
|
1307
|
+
"description": "ChartBlock: one of 18 documented blocks, with illustrative data and period controls where applicable."
|
|
1308
|
+
},
|
|
1309
|
+
"option": {
|
|
1310
|
+
"type": "(theme: EChartTheme) => EChartsOption",
|
|
1311
|
+
"default": null,
|
|
1312
|
+
"description": "EChart: advanced option factory receives resolved inherited Banhaten tokens."
|
|
1313
|
+
},
|
|
1314
|
+
"onReady": {
|
|
1315
|
+
"type": "(chart, theme) => void | (() => void)",
|
|
1316
|
+
"default": null,
|
|
1317
|
+
"description": "EChart: attach custom interactions and return their cleanup."
|
|
1318
|
+
},
|
|
1319
|
+
"config": {
|
|
1320
|
+
"type": "ChartConfig",
|
|
1321
|
+
"default": null,
|
|
1322
|
+
"description": "Legacy ChartContainer: maps series names to CSS color variables."
|
|
1323
|
+
}
|
|
1324
|
+
},
|
|
1325
|
+
"registryDependencies": [
|
|
1326
|
+
"button",
|
|
1327
|
+
"progress"
|
|
1072
1328
|
]
|
|
1073
1329
|
},
|
|
1074
1330
|
"carousel": {
|
|
@@ -1269,9 +1525,9 @@
|
|
|
1269
1525
|
"--bh-text-button-letter-spacing",
|
|
1270
1526
|
"--bh-text-button-line-height",
|
|
1271
1527
|
"--bh-z-raised",
|
|
1272
|
-
"--
|
|
1273
|
-
"--
|
|
1274
|
-
"--
|
|
1528
|
+
"--elevation-button-group",
|
|
1529
|
+
"--elevation-button-group-focus",
|
|
1530
|
+
"--elevation-component-default"
|
|
1275
1531
|
]
|
|
1276
1532
|
},
|
|
1277
1533
|
"segmented-control": {
|
|
@@ -1445,8 +1701,8 @@
|
|
|
1445
1701
|
"--bh-toggle-icon-size-md",
|
|
1446
1702
|
"--bh-toggle-icon-size-sm",
|
|
1447
1703
|
"--bh-toggle-offset",
|
|
1448
|
-
"--
|
|
1449
|
-
"--
|
|
1704
|
+
"--elevation-03",
|
|
1705
|
+
"--elevation-social-button-focus-ring"
|
|
1450
1706
|
]
|
|
1451
1707
|
},
|
|
1452
1708
|
"menu": {
|
|
@@ -1454,7 +1710,8 @@
|
|
|
1454
1710
|
"dependencies": {
|
|
1455
1711
|
"@radix-ui/react-dropdown-menu": "^2.1.17",
|
|
1456
1712
|
"@radix-ui/react-slot": "^1.2.3",
|
|
1457
|
-
"class-variance-authority": "^0.7.1"
|
|
1713
|
+
"class-variance-authority": "^0.7.1",
|
|
1714
|
+
"lucide-react": "^1.17.0"
|
|
1458
1715
|
},
|
|
1459
1716
|
"parts": [
|
|
1460
1717
|
"Menu",
|
|
@@ -1478,6 +1735,8 @@
|
|
|
1478
1735
|
"MenuItemBadge",
|
|
1479
1736
|
"MenuItemSwitch",
|
|
1480
1737
|
"MenuItemAction",
|
|
1738
|
+
"MenuRadioGroup",
|
|
1739
|
+
"MenuRadioItem",
|
|
1481
1740
|
"MenuProgress",
|
|
1482
1741
|
"MenuSeparator",
|
|
1483
1742
|
"MenuLabel",
|
|
@@ -1505,6 +1764,8 @@
|
|
|
1505
1764
|
"MenuPortal",
|
|
1506
1765
|
"MenuPreview",
|
|
1507
1766
|
"MenuProgress",
|
|
1767
|
+
"MenuRadioGroup",
|
|
1768
|
+
"MenuRadioItem",
|
|
1508
1769
|
"MenuRoot",
|
|
1509
1770
|
"MenuSeparator",
|
|
1510
1771
|
"MenuSub",
|
|
@@ -1519,6 +1780,23 @@
|
|
|
1519
1780
|
]
|
|
1520
1781
|
}
|
|
1521
1782
|
],
|
|
1783
|
+
"props": {
|
|
1784
|
+
"onSelect": {
|
|
1785
|
+
"type": "(event: Event) => void",
|
|
1786
|
+
"default": null,
|
|
1787
|
+
"description": "MenuItem selection handler. Uses Radix's native selection Event, not React's DOM text-selection event; call event.preventDefault() to keep toggle or multi-select menus open."
|
|
1788
|
+
},
|
|
1789
|
+
"onValueChange": {
|
|
1790
|
+
"type": "(value: string) => void",
|
|
1791
|
+
"default": null,
|
|
1792
|
+
"description": "MenuRadioGroup only. Receives the value of the MenuRadioItem that was chosen."
|
|
1793
|
+
},
|
|
1794
|
+
"value": {
|
|
1795
|
+
"type": "string",
|
|
1796
|
+
"default": null,
|
|
1797
|
+
"description": "MenuRadioGroup: the chosen value. MenuRadioItem: the value the item stands for; the item matching its group's value is checked, with role menuitemradio, aria-checked and a trailing check."
|
|
1798
|
+
}
|
|
1799
|
+
},
|
|
1522
1800
|
"widths": [
|
|
1523
1801
|
"menu",
|
|
1524
1802
|
"default",
|
|
@@ -1535,7 +1813,8 @@
|
|
|
1535
1813
|
],
|
|
1536
1814
|
"states": [
|
|
1537
1815
|
"default",
|
|
1538
|
-
"disabled"
|
|
1816
|
+
"disabled",
|
|
1817
|
+
"checked"
|
|
1539
1818
|
],
|
|
1540
1819
|
"rtl": {
|
|
1541
1820
|
"inheritsDirection": true,
|
|
@@ -1563,6 +1842,7 @@
|
|
|
1563
1842
|
"--bh-content-muted",
|
|
1564
1843
|
"--bh-content-subtle",
|
|
1565
1844
|
"--bh-control-default",
|
|
1845
|
+
"--bh-icon-stroke-200",
|
|
1566
1846
|
"--bh-icon-stroke-300",
|
|
1567
1847
|
"--bh-interactive-indicator-default",
|
|
1568
1848
|
"--bh-interactive-outlined-default",
|
|
@@ -1644,7 +1924,7 @@
|
|
|
1644
1924
|
"--bh-text-body-xs-regular-font-weight",
|
|
1645
1925
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
1646
1926
|
"--bh-text-body-xs-regular-line-height",
|
|
1647
|
-
"--
|
|
1927
|
+
"--elevation-menu"
|
|
1648
1928
|
]
|
|
1649
1929
|
},
|
|
1650
1930
|
"menubar": {
|
|
@@ -1742,8 +2022,8 @@
|
|
|
1742
2022
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
1743
2023
|
"--bh-text-body-xs-medium-line-height",
|
|
1744
2024
|
"--bh-z-popover",
|
|
1745
|
-
"--
|
|
1746
|
-
"--
|
|
2025
|
+
"--elevation-component-default",
|
|
2026
|
+
"--elevation-menu"
|
|
1747
2027
|
]
|
|
1748
2028
|
},
|
|
1749
2029
|
"command": {
|
|
@@ -1834,7 +2114,7 @@
|
|
|
1834
2114
|
"--bh-text-body-xs-medium-font-weight",
|
|
1835
2115
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
1836
2116
|
"--bh-text-body-xs-medium-line-height",
|
|
1837
|
-
"--
|
|
2117
|
+
"--elevation-menu"
|
|
1838
2118
|
]
|
|
1839
2119
|
},
|
|
1840
2120
|
"context-menu": {
|
|
@@ -1927,7 +2207,7 @@
|
|
|
1927
2207
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
1928
2208
|
"--bh-text-body-xs-medium-line-height",
|
|
1929
2209
|
"--bh-z-popover",
|
|
1930
|
-
"--
|
|
2210
|
+
"--elevation-menu"
|
|
1931
2211
|
]
|
|
1932
2212
|
},
|
|
1933
2213
|
"tooltip": {
|
|
@@ -1963,6 +2243,13 @@
|
|
|
1963
2243
|
]
|
|
1964
2244
|
}
|
|
1965
2245
|
],
|
|
2246
|
+
"props": {
|
|
2247
|
+
"dir": {
|
|
2248
|
+
"type": "\"ltr\" | \"rtl\" | \"auto\"",
|
|
2249
|
+
"default": "ltr",
|
|
2250
|
+
"description": "TooltipShortcut only: keeps key glyphs in physical order inside RTL tooltips. Override only for localized non-shortcut text."
|
|
2251
|
+
}
|
|
2252
|
+
},
|
|
1966
2253
|
"variants": [
|
|
1967
2254
|
"dark",
|
|
1968
2255
|
"default"
|
|
@@ -1986,7 +2273,8 @@
|
|
|
1986
2273
|
"inheritsDirection": true,
|
|
1987
2274
|
"spacing": "Uses inherited direction with flex layout so label/shortcut and text/close order mirror naturally.",
|
|
1988
2275
|
"pointerPlacement": "Top and bottom left/right positions map to logical start/end in RTL. Center-left and center-right remain physical sides to match the Figma matrix.",
|
|
1989
|
-
"textDirection": "Labels and support text use dir=\"auto\" for Arabic and English copy."
|
|
2276
|
+
"textDirection": "Labels and support text use dir=\"auto\" for Arabic and English copy.",
|
|
2277
|
+
"shortcutDirection": "TooltipShortcut defaults to dir=\"ltr\" so physical key order remains stable inside RTL content."
|
|
1990
2278
|
},
|
|
1991
2279
|
"files": [
|
|
1992
2280
|
{
|
|
@@ -2035,6 +2323,7 @@
|
|
|
2035
2323
|
"--bh-tooltip-close-fg",
|
|
2036
2324
|
"--bh-tooltip-close-icon-size",
|
|
2037
2325
|
"--bh-tooltip-close-size",
|
|
2326
|
+
"--bh-tooltip-elevation",
|
|
2038
2327
|
"--bh-tooltip-fg",
|
|
2039
2328
|
"--bh-tooltip-lg-padding",
|
|
2040
2329
|
"--bh-tooltip-lg-radius",
|
|
@@ -2048,7 +2337,6 @@
|
|
|
2048
2337
|
"--bh-tooltip-pointer-inline-offset",
|
|
2049
2338
|
"--bh-tooltip-pointer-offset",
|
|
2050
2339
|
"--bh-tooltip-pointer-width",
|
|
2051
|
-
"--bh-tooltip-shadow",
|
|
2052
2340
|
"--bh-tooltip-shortcut-bg",
|
|
2053
2341
|
"--bh-tooltip-shortcut-border",
|
|
2054
2342
|
"--bh-tooltip-shortcut-height",
|
|
@@ -2058,8 +2346,8 @@
|
|
|
2058
2346
|
"--bh-tooltip-sm-radius",
|
|
2059
2347
|
"--bh-z-overlay",
|
|
2060
2348
|
"--bh-z-raised",
|
|
2061
|
-
"--
|
|
2062
|
-
"--
|
|
2349
|
+
"--elevation-04",
|
|
2350
|
+
"--elevation-button-focus"
|
|
2063
2351
|
]
|
|
2064
2352
|
},
|
|
2065
2353
|
"popover": {
|
|
@@ -2188,8 +2476,8 @@
|
|
|
2188
2476
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
2189
2477
|
"--bh-text-body-xs-regular-line-height",
|
|
2190
2478
|
"--bh-z-popover",
|
|
2191
|
-
"--
|
|
2192
|
-
"--
|
|
2479
|
+
"--elevation-button-focus",
|
|
2480
|
+
"--elevation-popover"
|
|
2193
2481
|
]
|
|
2194
2482
|
},
|
|
2195
2483
|
"hover-card": {
|
|
@@ -2241,7 +2529,7 @@
|
|
|
2241
2529
|
"--bh-space-3xl-16",
|
|
2242
2530
|
"--bh-space-md-8",
|
|
2243
2531
|
"--bh-z-popover",
|
|
2244
|
-
"--
|
|
2532
|
+
"--elevation-popover"
|
|
2245
2533
|
]
|
|
2246
2534
|
},
|
|
2247
2535
|
"modal": {
|
|
@@ -2376,9 +2664,9 @@
|
|
|
2376
2664
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
2377
2665
|
"--bh-text-heading-sm-semibold-line-height",
|
|
2378
2666
|
"--bh-z-overlay",
|
|
2379
|
-
"--
|
|
2380
|
-
"--
|
|
2381
|
-
"--
|
|
2667
|
+
"--elevation-06",
|
|
2668
|
+
"--elevation-button-focus",
|
|
2669
|
+
"--elevation-modal"
|
|
2382
2670
|
]
|
|
2383
2671
|
},
|
|
2384
2672
|
"alert-dialog": {
|
|
@@ -2497,8 +2785,8 @@
|
|
|
2497
2785
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
2498
2786
|
"--bh-text-heading-sm-semibold-line-height",
|
|
2499
2787
|
"--bh-z-overlay",
|
|
2500
|
-
"--
|
|
2501
|
-
"--
|
|
2788
|
+
"--elevation-06",
|
|
2789
|
+
"--elevation-modal"
|
|
2502
2790
|
]
|
|
2503
2791
|
},
|
|
2504
2792
|
"checkbox": {
|
|
@@ -2577,9 +2865,9 @@
|
|
|
2577
2865
|
"--bh-checkbox-root-size",
|
|
2578
2866
|
"--bh-content-default",
|
|
2579
2867
|
"--bh-content-disabled",
|
|
2580
|
-
"--bh-content-on-color",
|
|
2581
2868
|
"--bh-content-subtle",
|
|
2582
2869
|
"--bh-icon-stroke-300",
|
|
2870
|
+
"--bh-interactive-checkbox-content",
|
|
2583
2871
|
"--bh-interactive-checkbox-default",
|
|
2584
2872
|
"--bh-interactive-checkbox-hover",
|
|
2585
2873
|
"--bh-opacity-60",
|
|
@@ -2591,15 +2879,15 @@
|
|
|
2591
2879
|
"--bh-text-body-sm-regular-font-weight",
|
|
2592
2880
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
2593
2881
|
"--bh-text-body-sm-regular-line-height",
|
|
2594
|
-
"--
|
|
2595
|
-
"--
|
|
2596
|
-
"--
|
|
2597
|
-
"--
|
|
2598
|
-
"--
|
|
2882
|
+
"--elevation-checkbox-card",
|
|
2883
|
+
"--elevation-checkbox-card-focus",
|
|
2884
|
+
"--elevation-checkbox-control",
|
|
2885
|
+
"--elevation-checkbox-focus",
|
|
2886
|
+
"--elevation-component-default"
|
|
2599
2887
|
]
|
|
2600
2888
|
},
|
|
2601
2889
|
"collapsible": {
|
|
2602
|
-
"description": "Radix Collapsible wrapper for disclosure sections with tokenized trigger, icon rotation, and
|
|
2890
|
+
"description": "Radix Collapsible wrapper for disclosure sections with tokenized trigger, icon rotation, content slots, and an unstyled animated panel.",
|
|
2603
2891
|
"dependencies": {
|
|
2604
2892
|
"@radix-ui/react-collapsible": "^1.1.15",
|
|
2605
2893
|
"lucide-react": "^1.17.0"
|
|
@@ -2607,7 +2895,8 @@
|
|
|
2607
2895
|
"parts": [
|
|
2608
2896
|
"Collapsible",
|
|
2609
2897
|
"CollapsibleTrigger",
|
|
2610
|
-
"CollapsibleContent"
|
|
2898
|
+
"CollapsibleContent",
|
|
2899
|
+
"CollapsiblePanel"
|
|
2611
2900
|
],
|
|
2612
2901
|
"supportedExports": [
|
|
2613
2902
|
{
|
|
@@ -2615,6 +2904,7 @@
|
|
|
2615
2904
|
"values": [
|
|
2616
2905
|
"Collapsible",
|
|
2617
2906
|
"CollapsibleContent",
|
|
2907
|
+
"CollapsiblePanel",
|
|
2618
2908
|
"CollapsibleTrigger"
|
|
2619
2909
|
]
|
|
2620
2910
|
}
|
|
@@ -2623,7 +2913,9 @@
|
|
|
2623
2913
|
"controlled state",
|
|
2624
2914
|
"uncontrolled state",
|
|
2625
2915
|
"keyboard trigger",
|
|
2626
|
-
"RTL"
|
|
2916
|
+
"RTL",
|
|
2917
|
+
"animated panel",
|
|
2918
|
+
"custom trigger with asChild"
|
|
2627
2919
|
],
|
|
2628
2920
|
"rtl": {
|
|
2629
2921
|
"inheritsDirection": true,
|
|
@@ -2642,6 +2934,8 @@
|
|
|
2642
2934
|
"tokens": [
|
|
2643
2935
|
"--bh-content-default",
|
|
2644
2936
|
"--bh-content-subtle",
|
|
2937
|
+
"--bh-duration-moderate",
|
|
2938
|
+
"--bh-easing-emphasized",
|
|
2645
2939
|
"--bh-icon-stroke-200",
|
|
2646
2940
|
"--bh-interactive-ghost-hover",
|
|
2647
2941
|
"--bh-radius-lg-8",
|
|
@@ -2657,7 +2951,7 @@
|
|
|
2657
2951
|
"--bh-text-body-sm-regular-font-weight",
|
|
2658
2952
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
2659
2953
|
"--bh-text-body-sm-regular-line-height",
|
|
2660
|
-
"--
|
|
2954
|
+
"--elevation-button-focus"
|
|
2661
2955
|
]
|
|
2662
2956
|
},
|
|
2663
2957
|
"radio-group": {
|
|
@@ -2760,8 +3054,8 @@
|
|
|
2760
3054
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
2761
3055
|
"--bh-text-body-xs-regular-line-height",
|
|
2762
3056
|
"--bh-z-raised",
|
|
2763
|
-
"--
|
|
2764
|
-
"--
|
|
3057
|
+
"--elevation-button-focus",
|
|
3058
|
+
"--elevation-radio-control"
|
|
2765
3059
|
]
|
|
2766
3060
|
},
|
|
2767
3061
|
"radio-card": {
|
|
@@ -2864,11 +3158,11 @@
|
|
|
2864
3158
|
"--bh-text-body-sm-regular-font-weight",
|
|
2865
3159
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
2866
3160
|
"--bh-text-body-sm-regular-line-height",
|
|
2867
|
-
"--
|
|
2868
|
-
"--
|
|
2869
|
-
"--
|
|
2870
|
-
"--
|
|
2871
|
-
"--
|
|
3161
|
+
"--elevation-component-default",
|
|
3162
|
+
"--elevation-radio-card",
|
|
3163
|
+
"--elevation-radio-card-current",
|
|
3164
|
+
"--elevation-radio-card-disabled",
|
|
3165
|
+
"--elevation-radio-control"
|
|
2872
3166
|
]
|
|
2873
3167
|
},
|
|
2874
3168
|
"divider": {
|
|
@@ -3012,13 +3306,13 @@
|
|
|
3012
3306
|
"--bh-pagination-root-gap",
|
|
3013
3307
|
"--bh-pagination-simple-width",
|
|
3014
3308
|
"--bh-space-md-8",
|
|
3015
|
-
"--
|
|
3016
|
-
"--
|
|
3017
|
-
"--
|
|
3309
|
+
"--elevation-pagination-active",
|
|
3310
|
+
"--elevation-pagination-control",
|
|
3311
|
+
"--elevation-pagination-focus"
|
|
3018
3312
|
]
|
|
3019
3313
|
},
|
|
3020
3314
|
"toolbar": {
|
|
3021
|
-
"description": "Figma Filter Toolbar primitive with eight filter/action styles, search fields, select triggers, icon actions, chips, selected-count badges, desktop/mobile wrapping, and RTL-safe composition.",
|
|
3315
|
+
"description": "Figma Filter Toolbar layout primitive with native Tab-order group semantics, eight filter/action styles, search fields, select triggers, icon actions, chips, selected-count badges, desktop/mobile wrapping, and RTL-safe composition.",
|
|
3022
3316
|
"dependencies": {
|
|
3023
3317
|
"@radix-ui/react-slot": "^1.2.3",
|
|
3024
3318
|
"class-variance-authority": "^0.7.1",
|
|
@@ -3074,8 +3368,16 @@
|
|
|
3074
3368
|
"type": "readonly string[]",
|
|
3075
3369
|
"default": null,
|
|
3076
3370
|
"description": "Adds shared, platform-aware Kbd keycaps to ToolbarSearch without rebuilding a shortcut badge locally."
|
|
3371
|
+
},
|
|
3372
|
+
"role": {
|
|
3373
|
+
"type": "React.AriaRole",
|
|
3374
|
+
"default": "group",
|
|
3375
|
+
"description": "Uses layout-group semantics and native Tab order by default. Applications that override this to toolbar own the complete roving-focus and arrow-key contract."
|
|
3077
3376
|
}
|
|
3078
3377
|
},
|
|
3378
|
+
"features": [
|
|
3379
|
+
"native Tab-order layout grouping"
|
|
3380
|
+
],
|
|
3079
3381
|
"densities": [
|
|
3080
3382
|
"compact",
|
|
3081
3383
|
"default",
|
|
@@ -3111,7 +3413,8 @@
|
|
|
3111
3413
|
],
|
|
3112
3414
|
"avoidWhen": [
|
|
3113
3415
|
"Using ToolbarSelect as a complete select menu without application behavior",
|
|
3114
|
-
"Applying unrelated custom heights or padding to individual toolbar children"
|
|
3416
|
+
"Applying unrelated custom heights or padding to individual toolbar children",
|
|
3417
|
+
"Using role=\"toolbar\" without application-owned roving focus and arrow-key behavior"
|
|
3115
3418
|
],
|
|
3116
3419
|
"recipes": [
|
|
3117
3420
|
"Collection filter bar",
|
|
@@ -3215,13 +3518,13 @@
|
|
|
3215
3518
|
"--bh-text-button-font-weight",
|
|
3216
3519
|
"--bh-text-button-letter-spacing",
|
|
3217
3520
|
"--bh-text-button-line-height",
|
|
3218
|
-
"--
|
|
3219
|
-
"--
|
|
3220
|
-
"--
|
|
3221
|
-
"--
|
|
3222
|
-
"--
|
|
3223
|
-
"--
|
|
3224
|
-
"--
|
|
3521
|
+
"--elevation-button-danger-focus",
|
|
3522
|
+
"--elevation-button-focus",
|
|
3523
|
+
"--elevation-button-raised",
|
|
3524
|
+
"--elevation-button-soft",
|
|
3525
|
+
"--elevation-input",
|
|
3526
|
+
"--elevation-input-focus-ring",
|
|
3527
|
+
"--elevation-select-trigger"
|
|
3225
3528
|
]
|
|
3226
3529
|
},
|
|
3227
3530
|
"social-button": {
|
|
@@ -3350,13 +3653,13 @@
|
|
|
3350
3653
|
"--bh-text-button-font-weight",
|
|
3351
3654
|
"--bh-text-button-letter-spacing",
|
|
3352
3655
|
"--bh-text-button-line-height",
|
|
3353
|
-
"--
|
|
3354
|
-
"--
|
|
3355
|
-
"--
|
|
3656
|
+
"--elevation-component-default",
|
|
3657
|
+
"--elevation-social-button",
|
|
3658
|
+
"--elevation-social-button-focus"
|
|
3356
3659
|
]
|
|
3357
3660
|
},
|
|
3358
3661
|
"input": {
|
|
3359
|
-
"description": "Tokenized input field with semantic control density, labels, helper and error text,
|
|
3662
|
+
"description": "Tokenized input field with native quantity stepping, action-button contracts, semantic control density, labels, helper and error text, icons, shortcuts, add-ons, tags, default and soft styles, and RTL states.",
|
|
3360
3663
|
"dependencies": {
|
|
3361
3664
|
"class-variance-authority": "^0.7.1",
|
|
3362
3665
|
"lucide-react": "^1.17.0"
|
|
@@ -3390,6 +3693,26 @@
|
|
|
3390
3693
|
}
|
|
3391
3694
|
],
|
|
3392
3695
|
"props": {
|
|
3696
|
+
"buttonProps": {
|
|
3697
|
+
"type": "InputActionButtonProps",
|
|
3698
|
+
"default": null,
|
|
3699
|
+
"description": "Native button props for leading/trailing button and dropdown kinds, including onClick, keyboard handlers, ref, disabled, and ARIA attributes. Defaults to type=button; consumers supply the action or popup."
|
|
3700
|
+
},
|
|
3701
|
+
"decreaseButtonProps": {
|
|
3702
|
+
"type": "InputStepperButtonProps",
|
|
3703
|
+
"default": null,
|
|
3704
|
+
"description": "Native props for the decrease button, excluding children and type. Supports localized aria-label, ref, and onClick; preventDefault cancels the step. Field disabled and readOnly always disable the stepper."
|
|
3705
|
+
},
|
|
3706
|
+
"increaseButtonProps": {
|
|
3707
|
+
"type": "InputStepperButtonProps",
|
|
3708
|
+
"default": null,
|
|
3709
|
+
"description": "Native props for the increase button, excluding children and type. Supports localized aria-label, ref, and onClick; preventDefault cancels the step. Field disabled and readOnly always disable the stepper."
|
|
3710
|
+
},
|
|
3711
|
+
"onChange": {
|
|
3712
|
+
"type": "React.ChangeEventHandler<HTMLInputElement>",
|
|
3713
|
+
"default": null,
|
|
3714
|
+
"description": "Receives native input changes from typing and quantity buttons. Quantity kinds use type=number, respect min/max/step, and support controlled value or uncontrolled defaultValue. step=any uses one-unit button increments."
|
|
3715
|
+
},
|
|
3393
3716
|
"density": {
|
|
3394
3717
|
"type": "\"compact\" | \"default\" | \"comfortable\"",
|
|
3395
3718
|
"default": "default",
|
|
@@ -3412,6 +3735,11 @@
|
|
|
3412
3735
|
"description": "Deprecated compatibility alias for showInfo.",
|
|
3413
3736
|
"deprecated": true
|
|
3414
3737
|
},
|
|
3738
|
+
"isRequired": {
|
|
3739
|
+
"type": "boolean",
|
|
3740
|
+
"default": false,
|
|
3741
|
+
"description": "Shows the required marker and exposes aria-required on the input without enabling native browser validation. Use the native required prop when constraint validation is intended."
|
|
3742
|
+
},
|
|
3415
3743
|
"trailingIcon": {
|
|
3416
3744
|
"type": "React.ReactNode | false",
|
|
3417
3745
|
"default": null,
|
|
@@ -3510,7 +3838,8 @@
|
|
|
3510
3838
|
}
|
|
3511
3839
|
],
|
|
3512
3840
|
"examples": [
|
|
3513
|
-
"examples/input-demo.tsx"
|
|
3841
|
+
"examples/input-demo.tsx",
|
|
3842
|
+
"examples/input-actions-demo.tsx"
|
|
3514
3843
|
],
|
|
3515
3844
|
"tokens": [
|
|
3516
3845
|
"--bh-border-danger-strong",
|
|
@@ -3530,6 +3859,7 @@
|
|
|
3530
3859
|
"--bh-input-comfortable-height",
|
|
3531
3860
|
"--bh-input-comfortable-padding-x",
|
|
3532
3861
|
"--bh-input-content-gap",
|
|
3862
|
+
"--bh-input-content-padding-x",
|
|
3533
3863
|
"--bh-input-helper-gap",
|
|
3534
3864
|
"--bh-input-icon-size",
|
|
3535
3865
|
"--bh-input-icon-slot-size",
|
|
@@ -3538,7 +3868,6 @@
|
|
|
3538
3868
|
"--bh-input-inline-tags-gap",
|
|
3539
3869
|
"--bh-input-label-gap",
|
|
3540
3870
|
"--bh-input-lg-height",
|
|
3541
|
-
"--bh-input-lg-padding-x",
|
|
3542
3871
|
"--bh-input-md-height",
|
|
3543
3872
|
"--bh-input-md-padding-x",
|
|
3544
3873
|
"--bh-input-radius",
|
|
@@ -3548,6 +3877,7 @@
|
|
|
3548
3877
|
"--bh-input-stepper-width",
|
|
3549
3878
|
"--bh-input-tag-height",
|
|
3550
3879
|
"--bh-input-tag-padding-x",
|
|
3880
|
+
"--bh-input-value-inset",
|
|
3551
3881
|
"--bh-input-width",
|
|
3552
3882
|
"--bh-interactive-input-default",
|
|
3553
3883
|
"--bh-interactive-input-disabled",
|
|
@@ -3573,14 +3903,14 @@
|
|
|
3573
3903
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
3574
3904
|
"--bh-text-body-xs-regular-line-height",
|
|
3575
3905
|
"--bh-z-raised",
|
|
3576
|
-
"--
|
|
3577
|
-
"--
|
|
3578
|
-
"--
|
|
3579
|
-
"--
|
|
3580
|
-
"--
|
|
3581
|
-
"--
|
|
3582
|
-
"--
|
|
3583
|
-
"--
|
|
3906
|
+
"--elevation-component-default",
|
|
3907
|
+
"--elevation-input",
|
|
3908
|
+
"--elevation-input-disabled-overlay",
|
|
3909
|
+
"--elevation-input-focus-overlay",
|
|
3910
|
+
"--elevation-input-focus-ring",
|
|
3911
|
+
"--elevation-input-focus-surface",
|
|
3912
|
+
"--elevation-input-overlay",
|
|
3913
|
+
"--elevation-input-surface"
|
|
3584
3914
|
]
|
|
3585
3915
|
},
|
|
3586
3916
|
"input-group": {
|
|
@@ -3665,9 +3995,9 @@
|
|
|
3665
3995
|
"--bh-text-body-sm-medium-font-weight",
|
|
3666
3996
|
"--bh-text-body-sm-medium-letter-spacing",
|
|
3667
3997
|
"--bh-text-body-sm-medium-line-height",
|
|
3668
|
-
"--
|
|
3669
|
-
"--
|
|
3670
|
-
"--
|
|
3998
|
+
"--elevation-component-default",
|
|
3999
|
+
"--elevation-input",
|
|
4000
|
+
"--elevation-input-focus-ring"
|
|
3671
4001
|
]
|
|
3672
4002
|
},
|
|
3673
4003
|
"label": {
|
|
@@ -3751,6 +4081,11 @@
|
|
|
3751
4081
|
}
|
|
3752
4082
|
],
|
|
3753
4083
|
"props": {
|
|
4084
|
+
"dir": {
|
|
4085
|
+
"type": "\"ltr\" | \"rtl\" | \"auto\"",
|
|
4086
|
+
"default": "ltr",
|
|
4087
|
+
"description": "Keeps physical key and modifier order stable inside RTL interfaces. Override only for localized non-shortcut key names."
|
|
4088
|
+
},
|
|
3754
4089
|
"keys": {
|
|
3755
4090
|
"type": "readonly string[]",
|
|
3756
4091
|
"default": null,
|
|
@@ -3784,7 +4119,7 @@
|
|
|
3784
4119
|
],
|
|
3785
4120
|
"rtl": {
|
|
3786
4121
|
"inheritsDirection": false,
|
|
3787
|
-
"semantics": "Kbd
|
|
4122
|
+
"semantics": "Kbd defaults to dir=\"ltr\" so physical key order stays stable, while surrounding shortcut descriptions keep their own text direction."
|
|
3788
4123
|
},
|
|
3789
4124
|
"files": [
|
|
3790
4125
|
{
|
|
@@ -3820,7 +4155,7 @@
|
|
|
3820
4155
|
"--bh-text-body-xs-medium-font-weight",
|
|
3821
4156
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
3822
4157
|
"--bh-text-body-xs-medium-line-height",
|
|
3823
|
-
"--
|
|
4158
|
+
"--elevation-button-soft"
|
|
3824
4159
|
]
|
|
3825
4160
|
},
|
|
3826
4161
|
"item": {
|
|
@@ -3923,7 +4258,7 @@
|
|
|
3923
4258
|
"--bh-text-body-sm-regular-font-weight",
|
|
3924
4259
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
3925
4260
|
"--bh-text-body-sm-regular-line-height",
|
|
3926
|
-
"--
|
|
4261
|
+
"--elevation-button-focus"
|
|
3927
4262
|
]
|
|
3928
4263
|
},
|
|
3929
4264
|
"field": {
|
|
@@ -4160,6 +4495,16 @@
|
|
|
4160
4495
|
}
|
|
4161
4496
|
],
|
|
4162
4497
|
"props": {
|
|
4498
|
+
"aria-label": {
|
|
4499
|
+
"type": "string",
|
|
4500
|
+
"default": null,
|
|
4501
|
+
"description": "Provides a stable purpose-based accessible name for a label-less Select and is forwarded to its trigger."
|
|
4502
|
+
},
|
|
4503
|
+
"aria-labelledby": {
|
|
4504
|
+
"type": "string",
|
|
4505
|
+
"default": null,
|
|
4506
|
+
"description": "Names a label-less Select trigger from external text without placing the relationship on the inert root."
|
|
4507
|
+
},
|
|
4163
4508
|
"density": {
|
|
4164
4509
|
"type": "\"compact\" | \"default\" | \"comfortable\"",
|
|
4165
4510
|
"default": "default",
|
|
@@ -4194,6 +4539,11 @@
|
|
|
4194
4539
|
"type": "React.ReactNode | false",
|
|
4195
4540
|
"default": "chevron-down",
|
|
4196
4541
|
"description": "Uses the default expand chevron when omitted, accepts a replacement node, and hides the slot when false."
|
|
4542
|
+
},
|
|
4543
|
+
"triggerProps": {
|
|
4544
|
+
"type": "React.ComponentProps<\"button\">",
|
|
4545
|
+
"default": null,
|
|
4546
|
+
"description": "Forwards advanced trigger attributes and is spread last, so matching attributes override the top-level trigger defaults."
|
|
4197
4547
|
}
|
|
4198
4548
|
},
|
|
4199
4549
|
"defaults": {
|
|
@@ -4291,12 +4641,12 @@
|
|
|
4291
4641
|
"--bh-content-default",
|
|
4292
4642
|
"--bh-content-disabled",
|
|
4293
4643
|
"--bh-content-muted",
|
|
4294
|
-
"--bh-content-on-color",
|
|
4295
4644
|
"--bh-content-subtle",
|
|
4296
4645
|
"--bh-font-weight-semibold",
|
|
4297
4646
|
"--bh-icon-size-default",
|
|
4298
4647
|
"--bh-icon-stroke-200",
|
|
4299
4648
|
"--bh-icon-stroke-220",
|
|
4649
|
+
"--bh-interactive-checkbox-content",
|
|
4300
4650
|
"--bh-interactive-checkbox-default",
|
|
4301
4651
|
"--bh-opacity-60",
|
|
4302
4652
|
"--bh-radius-full",
|
|
@@ -4374,12 +4724,12 @@
|
|
|
4374
4724
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
4375
4725
|
"--bh-text-body-xs-regular-line-height",
|
|
4376
4726
|
"--bh-z-popover",
|
|
4377
|
-
"--
|
|
4378
|
-
"--
|
|
4379
|
-
"--
|
|
4380
|
-
"--
|
|
4381
|
-
"--
|
|
4382
|
-
"--
|
|
4727
|
+
"--elevation-component-default",
|
|
4728
|
+
"--elevation-select-checkbox",
|
|
4729
|
+
"--elevation-select-danger-focus-ring",
|
|
4730
|
+
"--elevation-select-focus-ring",
|
|
4731
|
+
"--elevation-select-menu",
|
|
4732
|
+
"--elevation-select-trigger"
|
|
4383
4733
|
]
|
|
4384
4734
|
},
|
|
4385
4735
|
"native-select": {
|
|
@@ -4473,10 +4823,10 @@
|
|
|
4473
4823
|
"--bh-text-body-xs-regular-font-weight",
|
|
4474
4824
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
4475
4825
|
"--bh-text-body-xs-regular-line-height",
|
|
4476
|
-
"--
|
|
4477
|
-
"--
|
|
4478
|
-
"--
|
|
4479
|
-
"--
|
|
4826
|
+
"--elevation-component-default",
|
|
4827
|
+
"--elevation-select-danger-focus-ring",
|
|
4828
|
+
"--elevation-select-focus-ring",
|
|
4829
|
+
"--elevation-select-trigger"
|
|
4480
4830
|
]
|
|
4481
4831
|
},
|
|
4482
4832
|
"sheet": {
|
|
@@ -4587,12 +4937,12 @@
|
|
|
4587
4937
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
4588
4938
|
"--bh-text-heading-sm-semibold-line-height",
|
|
4589
4939
|
"--bh-z-overlay",
|
|
4590
|
-
"--
|
|
4591
|
-
"--
|
|
4940
|
+
"--elevation-button-focus",
|
|
4941
|
+
"--elevation-component-default"
|
|
4592
4942
|
]
|
|
4593
4943
|
},
|
|
4594
4944
|
"sidebar": {
|
|
4595
|
-
"description": "Figma-aligned application sidebar with 280px expanded and 48px collapsed shells, brand and workspace headers, search and actions, default/avatar/nested/tree menu variants, badges, group actions, user footers, controlled state, tooltips, logical placement, and RTL mirroring.",
|
|
4945
|
+
"description": "Figma-aligned application sidebar with a tokenized 900px minimum height, staged motion between 280px expanded and 48px collapsed shells, brand and workspace headers, search and actions, default/avatar/nested/tree menu variants, badges, group actions, user footers with hover identity previews, controlled state, tooltips, logical placement, and RTL mirroring.",
|
|
4596
4946
|
"dependencies": {
|
|
4597
4947
|
"@radix-ui/react-slot": "^1.2.3",
|
|
4598
4948
|
"lucide-react": "^1.17.0"
|
|
@@ -4668,15 +5018,50 @@
|
|
|
4668
5018
|
"default": false,
|
|
4669
5019
|
"description": "Sets the initial rail state when SidebarProvider owns collapse state internally."
|
|
4670
5020
|
},
|
|
5021
|
+
"size": {
|
|
5022
|
+
"type": "\"default\" | \"comfortable\"",
|
|
5023
|
+
"default": "default",
|
|
5024
|
+
"description": "Set on SidebarProvider. comfortable uses 40px rows 8px apart with body-md labels, 16px shell padding, a 24px section gap, a heading-md brand, and 20px group labels; the collapsed rail is unchanged."
|
|
5025
|
+
},
|
|
5026
|
+
"subtitle": {
|
|
5027
|
+
"type": "React.ReactNode",
|
|
5028
|
+
"default": "undefined",
|
|
5029
|
+
"description": "Adds a body-sm content-subtle line under the SidebarHeaderBrand name and switches the brand to a stacked layout."
|
|
5030
|
+
},
|
|
5031
|
+
"logo": {
|
|
5032
|
+
"type": "React.ReactNode | false",
|
|
5033
|
+
"default": "Sparkles glyph",
|
|
5034
|
+
"description": "Replaces the SidebarHeaderBrand mark; false renders a text-only brand with no logo slot."
|
|
5035
|
+
},
|
|
5036
|
+
"divider": {
|
|
5037
|
+
"type": "boolean",
|
|
5038
|
+
"default": true,
|
|
5039
|
+
"description": "Draws the SidebarFooter top rule; false removes it for inset footer cards."
|
|
5040
|
+
},
|
|
5041
|
+
"avatar": {
|
|
5042
|
+
"type": "React.ReactNode | false",
|
|
5043
|
+
"default": "person glyph",
|
|
5044
|
+
"description": "Replaces the SidebarFooterUser avatar; false hides the slot while expanded. The collapsed rail always shows a glyph."
|
|
5045
|
+
},
|
|
5046
|
+
"trailingIcon": {
|
|
5047
|
+
"type": "React.ReactNode | false",
|
|
5048
|
+
"default": "part-specific",
|
|
5049
|
+
"description": "Trailing glyph on menu rows and the footer user; false hides the footer user's chevron."
|
|
5050
|
+
},
|
|
5051
|
+
"showIdentityPreview": {
|
|
5052
|
+
"type": "boolean",
|
|
5053
|
+
"default": true,
|
|
5054
|
+
"description": "Reveals the collapsed footer user's name and supporting text beside the rail on hover or keyboard focus."
|
|
5055
|
+
},
|
|
4671
5056
|
"side": {
|
|
4672
5057
|
"type": "\"start\" | \"end\"",
|
|
4673
5058
|
"default": "start",
|
|
4674
5059
|
"description": "Places Sidebar on the logical start or end edge and selects the matching logical border."
|
|
4675
5060
|
},
|
|
4676
5061
|
"variant": {
|
|
4677
|
-
"type": "SidebarMenuButtonVariant | SidebarWorkspaceVariant | \"default\" | \"supporting-text\"",
|
|
5062
|
+
"type": "SidebarMenuButtonVariant | SidebarWorkspaceVariant | \"default\" | \"supporting-text\" | \"card\"",
|
|
4678
5063
|
"default": "part-specific",
|
|
4679
|
-
"description": "Selects default/avatar/nested menu rows, action/card workspace headers, or default/supporting-text footers on the part that owns it."
|
|
5064
|
+
"description": "Selects default/avatar/nested menu rows, action/card workspace headers, or default/supporting-text/card footers on the part that owns it. The card footer is an inset bg-subtle block with a body-md name and body-sm role and no avatar or chevron unless passed."
|
|
4680
5065
|
},
|
|
4681
5066
|
"active": {
|
|
4682
5067
|
"type": "boolean",
|
|
@@ -4739,19 +5124,28 @@
|
|
|
4739
5124
|
"workspace actions",
|
|
4740
5125
|
"workspace card",
|
|
4741
5126
|
"default footer",
|
|
4742
|
-
"supporting-text footer"
|
|
5127
|
+
"supporting-text footer",
|
|
5128
|
+
"card footer",
|
|
5129
|
+
"comfortable size"
|
|
4743
5130
|
],
|
|
4744
5131
|
"features": [
|
|
4745
5132
|
"280px expanded and 48px collapsed shells",
|
|
5133
|
+
"comfortable size with 40px rows, 8px row gap, and body-md labels",
|
|
4746
5134
|
"controlled collapse",
|
|
4747
5135
|
"uncontrolled collapse",
|
|
4748
5136
|
"brand header with search and collapse actions",
|
|
5137
|
+
"text-only brand with a stacked subtitle",
|
|
4749
5138
|
"workspace action and card headers",
|
|
5139
|
+
"visible collapsed-header expand action",
|
|
4750
5140
|
"default, avatar, Level 2, and Level 2 line menu rows",
|
|
4751
5141
|
"supporting text, count badge, and trailing action slots",
|
|
4752
|
-
"group labels with disclosure and
|
|
5142
|
+
"group labels with disclosure, icon actions, and a tokenized label color",
|
|
4753
5143
|
"four-level tree navigation",
|
|
4754
|
-
"supporting-text and
|
|
5144
|
+
"supporting-text, bordered, and inset card user footers",
|
|
5145
|
+
"divider-free footer",
|
|
5146
|
+
"collapsed footer identity preview on hover and keyboard focus",
|
|
5147
|
+
"tokenized staged expand and collapse motion",
|
|
5148
|
+
"reduced-motion fallback",
|
|
4755
5149
|
"icon-only rail with tooltips",
|
|
4756
5150
|
"logical side placement and RTL mirroring"
|
|
4757
5151
|
],
|
|
@@ -4760,6 +5154,7 @@
|
|
|
4760
5154
|
"--bh-bg-default",
|
|
4761
5155
|
"--bh-bg-default-hover",
|
|
4762
5156
|
"--bh-bg-neutral-subtle",
|
|
5157
|
+
"--bh-bg-raised",
|
|
4763
5158
|
"--bh-border-focus",
|
|
4764
5159
|
"--bh-border-subtle",
|
|
4765
5160
|
"--bh-border-width-default",
|
|
@@ -4779,12 +5174,21 @@
|
|
|
4779
5174
|
"--bh-radius-full",
|
|
4780
5175
|
"--bh-radius-lg-8",
|
|
4781
5176
|
"--bh-radius-md-6",
|
|
5177
|
+
"--bh-radius-xl-10",
|
|
4782
5178
|
"--bh-sidebar-active-guide-height",
|
|
4783
5179
|
"--bh-sidebar-bg",
|
|
4784
5180
|
"--bh-sidebar-bg-collapsed",
|
|
4785
5181
|
"--bh-sidebar-border",
|
|
4786
5182
|
"--bh-sidebar-brand-height",
|
|
5183
|
+
"--bh-sidebar-comfortable-brand-padding",
|
|
5184
|
+
"--bh-sidebar-comfortable-group-label-height",
|
|
5185
|
+
"--bh-sidebar-comfortable-item-gap",
|
|
5186
|
+
"--bh-sidebar-comfortable-item-height",
|
|
5187
|
+
"--bh-sidebar-comfortable-label-padding",
|
|
5188
|
+
"--bh-sidebar-comfortable-padding",
|
|
5189
|
+
"--bh-sidebar-comfortable-section-gap",
|
|
4787
5190
|
"--bh-sidebar-compact-control-size",
|
|
5191
|
+
"--bh-sidebar-group-label-content",
|
|
4788
5192
|
"--bh-sidebar-header-action-size",
|
|
4789
5193
|
"--bh-sidebar-icon-size",
|
|
4790
5194
|
"--bh-sidebar-icon-size-collapsed",
|
|
@@ -4797,16 +5201,26 @@
|
|
|
4797
5201
|
"--bh-sidebar-item-height-collapsed",
|
|
4798
5202
|
"--bh-sidebar-item-padding-x",
|
|
4799
5203
|
"--bh-sidebar-level-2-indent-width",
|
|
5204
|
+
"--bh-sidebar-min-height",
|
|
5205
|
+
"--bh-sidebar-motion-delay-content",
|
|
5206
|
+
"--bh-sidebar-motion-duration",
|
|
5207
|
+
"--bh-sidebar-motion-duration-content",
|
|
5208
|
+
"--bh-sidebar-motion-easing",
|
|
4800
5209
|
"--bh-sidebar-padding",
|
|
4801
5210
|
"--bh-sidebar-rail-width",
|
|
4802
5211
|
"--bh-sidebar-tree-indent-step",
|
|
4803
5212
|
"--bh-sidebar-tree-item-height",
|
|
5213
|
+
"--bh-sidebar-user-card-bg",
|
|
5214
|
+
"--bh-sidebar-user-card-bg-hover",
|
|
5215
|
+
"--bh-sidebar-user-preview-gap",
|
|
5216
|
+
"--bh-sidebar-user-preview-height",
|
|
5217
|
+
"--bh-sidebar-user-preview-width",
|
|
4804
5218
|
"--bh-sidebar-width",
|
|
4805
5219
|
"--bh-sidebar-width-collapsed",
|
|
4806
5220
|
"--bh-sidebar-workspace-card-height",
|
|
4807
5221
|
"--bh-sidebar-workspace-trigger-max-width",
|
|
4808
5222
|
"--bh-sidebar-workspace-trigger-width",
|
|
4809
|
-
"--bh-space-
|
|
5223
|
+
"--bh-space-10xl-80",
|
|
4810
5224
|
"--bh-space-3xl-16",
|
|
4811
5225
|
"--bh-space-4xl-20",
|
|
4812
5226
|
"--bh-space-5xl-24",
|
|
@@ -4814,6 +5228,7 @@
|
|
|
4814
5228
|
"--bh-space-8xl-48",
|
|
4815
5229
|
"--bh-space-lg-10",
|
|
4816
5230
|
"--bh-space-md-8",
|
|
5231
|
+
"--bh-space-none",
|
|
4817
5232
|
"--bh-space-sm-6",
|
|
4818
5233
|
"--bh-space-xl-12",
|
|
4819
5234
|
"--bh-space-xs-4",
|
|
@@ -4827,6 +5242,13 @@
|
|
|
4827
5242
|
"--bh-text-body-3xs-semibold-font-weight",
|
|
4828
5243
|
"--bh-text-body-3xs-semibold-letter-spacing",
|
|
4829
5244
|
"--bh-text-body-3xs-semibold-line-height",
|
|
5245
|
+
"--bh-text-body-md-medium-font-size",
|
|
5246
|
+
"--bh-text-body-md-medium-font-weight",
|
|
5247
|
+
"--bh-text-body-md-medium-letter-spacing",
|
|
5248
|
+
"--bh-text-body-md-medium-line-height",
|
|
5249
|
+
"--bh-text-body-md-regular-font-size",
|
|
5250
|
+
"--bh-text-body-md-regular-letter-spacing",
|
|
5251
|
+
"--bh-text-body-md-regular-line-height",
|
|
4830
5252
|
"--bh-text-body-sm-medium-font-size",
|
|
4831
5253
|
"--bh-text-body-sm-medium-font-weight",
|
|
4832
5254
|
"--bh-text-body-sm-medium-letter-spacing",
|
|
@@ -4844,7 +5266,13 @@
|
|
|
4844
5266
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
4845
5267
|
"--bh-text-body-xs-regular-line-height",
|
|
4846
5268
|
"--bh-text-body-xs-semibold-font-weight",
|
|
4847
|
-
"--
|
|
5269
|
+
"--bh-text-heading-md-semibold-font-size",
|
|
5270
|
+
"--bh-text-heading-md-semibold-font-weight",
|
|
5271
|
+
"--bh-text-heading-md-semibold-letter-spacing",
|
|
5272
|
+
"--bh-text-heading-md-semibold-line-height",
|
|
5273
|
+
"--bh-z-overlay",
|
|
5274
|
+
"--elevation-button-focus",
|
|
5275
|
+
"--elevation-component-default"
|
|
4848
5276
|
],
|
|
4849
5277
|
"rtl": {
|
|
4850
5278
|
"inheritsDirection": true,
|
|
@@ -4862,39 +5290,159 @@
|
|
|
4862
5290
|
"examples/sidebar-demo.tsx"
|
|
4863
5291
|
]
|
|
4864
5292
|
},
|
|
4865
|
-
"
|
|
4866
|
-
"description": "
|
|
5293
|
+
"app-header": {
|
|
5294
|
+
"description": "Workspace bar above page content with a flexible location region, a search landmark, and flush icon or text actions that keep their design footprint while exposing 40px pointer targets.",
|
|
4867
5295
|
"dependencies": {
|
|
4868
|
-
"@radix-ui/react-
|
|
4869
|
-
"lucide-react": "^1.17.0"
|
|
5296
|
+
"@radix-ui/react-slot": "^1.2.3"
|
|
4870
5297
|
},
|
|
5298
|
+
"registryDependencies": [],
|
|
4871
5299
|
"parts": [
|
|
4872
|
-
"
|
|
4873
|
-
"
|
|
4874
|
-
"
|
|
4875
|
-
"
|
|
4876
|
-
"
|
|
4877
|
-
"NavigationMenuLink",
|
|
4878
|
-
"NavigationMenuViewport",
|
|
4879
|
-
"NavigationMenuIndicator"
|
|
5300
|
+
"AppHeader",
|
|
5301
|
+
"AppHeaderStart",
|
|
5302
|
+
"AppHeaderEnd",
|
|
5303
|
+
"AppHeaderSearch",
|
|
5304
|
+
"AppHeaderAction"
|
|
4880
5305
|
],
|
|
4881
5306
|
"supportedExports": [
|
|
4882
5307
|
{
|
|
4883
|
-
"source": "components/
|
|
5308
|
+
"source": "components/app-header.tsx",
|
|
4884
5309
|
"values": [
|
|
4885
|
-
"
|
|
4886
|
-
"
|
|
4887
|
-
"
|
|
4888
|
-
"
|
|
4889
|
-
"
|
|
4890
|
-
"NavigationMenuList",
|
|
4891
|
-
"NavigationMenuTrigger",
|
|
4892
|
-
"NavigationMenuViewport"
|
|
5310
|
+
"AppHeader",
|
|
5311
|
+
"AppHeaderAction",
|
|
5312
|
+
"AppHeaderEnd",
|
|
5313
|
+
"AppHeaderSearch",
|
|
5314
|
+
"AppHeaderStart"
|
|
4893
5315
|
]
|
|
4894
5316
|
}
|
|
4895
5317
|
],
|
|
4896
|
-
"
|
|
4897
|
-
"
|
|
5318
|
+
"props": {
|
|
5319
|
+
"AppHeaderAction.icon": {
|
|
5320
|
+
"type": "ReactNode",
|
|
5321
|
+
"default": null,
|
|
5322
|
+
"description": "Icon content. Without children the action is icon-only and needs aria-label; the icon occupies 24px and the pointer target is 40px."
|
|
5323
|
+
},
|
|
5324
|
+
"AppHeaderAction.size": {
|
|
5325
|
+
"type": "\"sm\" | \"md\"",
|
|
5326
|
+
"default": "md",
|
|
5327
|
+
"description": "md uses body-md medium default content. sm uses body-sm medium subtle content and reserves 32px at the end edge, so a short label such as a language code can change without moving earlier controls."
|
|
5328
|
+
},
|
|
5329
|
+
"AppHeaderAction.asChild": {
|
|
5330
|
+
"type": "boolean",
|
|
5331
|
+
"default": false,
|
|
5332
|
+
"description": "Renders the action styles on the child element, such as a link."
|
|
5333
|
+
},
|
|
5334
|
+
"AppHeaderSearch.role": {
|
|
5335
|
+
"type": "string",
|
|
5336
|
+
"default": "search",
|
|
5337
|
+
"description": "Search landmark role on the wrapping form. Nest an Input with an accessible name; the header sets its width to the 320px search token."
|
|
5338
|
+
}
|
|
5339
|
+
},
|
|
5340
|
+
"defaults": {
|
|
5341
|
+
"sizes": "md"
|
|
5342
|
+
},
|
|
5343
|
+
"sizes": [
|
|
5344
|
+
"md",
|
|
5345
|
+
"sm"
|
|
5346
|
+
],
|
|
5347
|
+
"features": [
|
|
5348
|
+
"72px bar with 24px inline padding, a 24px item gap, and a subtle bottom border",
|
|
5349
|
+
"flexible start region for Breadcrumbs or a location label in body-sm medium subtle content",
|
|
5350
|
+
"Breadcrumbs inside the header render their current item in the location color",
|
|
5351
|
+
"search landmark that sizes a nested Input to 320px",
|
|
5352
|
+
"flush icon actions with a 24px footprint and a 40px target",
|
|
5353
|
+
"flush text actions in md and sm sizes",
|
|
5354
|
+
"logical layout that mirrors in RTL"
|
|
5355
|
+
],
|
|
5356
|
+
"recommendedFor": [
|
|
5357
|
+
"The bar above page content in a sidebar workspace, holding the location trail, workspace search, notifications, help, or language",
|
|
5358
|
+
"Product shells that need workspace tools aligned to the page content edge"
|
|
5359
|
+
],
|
|
5360
|
+
"avoidWhen": [
|
|
5361
|
+
"Page titles, descriptions, and page actions; use Page Header inside the page",
|
|
5362
|
+
"Marketing or public site navigation with menus; use Navigation Menu",
|
|
5363
|
+
"Toolbars that act on a selection or a document; use Toolbar"
|
|
5364
|
+
],
|
|
5365
|
+
"rtl": {
|
|
5366
|
+
"inheritsDirection": true,
|
|
5367
|
+
"layout": "Start and End regions, the inline padding, and the reserved width of small text actions use logical properties and mirror with inherited direction.",
|
|
5368
|
+
"semantics": "The root is a header element. AppHeaderSearch is a search landmark. Icon-only actions require aria-label."
|
|
5369
|
+
},
|
|
5370
|
+
"files": [
|
|
5371
|
+
{
|
|
5372
|
+
"source": "components/app-header.tsx",
|
|
5373
|
+
"target": "{{ui}}/app-header.tsx"
|
|
5374
|
+
}
|
|
5375
|
+
],
|
|
5376
|
+
"examples": [
|
|
5377
|
+
"examples/app-header-demo.tsx"
|
|
5378
|
+
],
|
|
5379
|
+
"tokens": [
|
|
5380
|
+
"--bh-app-header-action-bg-hover",
|
|
5381
|
+
"--bh-app-header-action-content",
|
|
5382
|
+
"--bh-app-header-action-hit-inset",
|
|
5383
|
+
"--bh-app-header-action-radius",
|
|
5384
|
+
"--bh-app-header-action-sm-content",
|
|
5385
|
+
"--bh-app-header-action-sm-min-width",
|
|
5386
|
+
"--bh-app-header-bg",
|
|
5387
|
+
"--bh-app-header-border",
|
|
5388
|
+
"--bh-app-header-gap",
|
|
5389
|
+
"--bh-app-header-height",
|
|
5390
|
+
"--bh-app-header-icon-size",
|
|
5391
|
+
"--bh-app-header-location-content",
|
|
5392
|
+
"--bh-app-header-padding-x",
|
|
5393
|
+
"--bh-app-header-search-width",
|
|
5394
|
+
"--bh-app-header-start-gap",
|
|
5395
|
+
"--bh-app-header-start-min-width",
|
|
5396
|
+
"--bh-border-width-default",
|
|
5397
|
+
"--bh-breadcrumbs-current-content",
|
|
5398
|
+
"--bh-content-default",
|
|
5399
|
+
"--bh-content-disabled",
|
|
5400
|
+
"--bh-input-width",
|
|
5401
|
+
"--bh-space-xs-4",
|
|
5402
|
+
"--bh-text-body-md-medium-font-size",
|
|
5403
|
+
"--bh-text-body-md-medium-font-weight",
|
|
5404
|
+
"--bh-text-body-md-medium-letter-spacing",
|
|
5405
|
+
"--bh-text-body-md-medium-line-height",
|
|
5406
|
+
"--bh-text-body-sm-medium-font-size",
|
|
5407
|
+
"--bh-text-body-sm-medium-font-weight",
|
|
5408
|
+
"--bh-text-body-sm-medium-letter-spacing",
|
|
5409
|
+
"--bh-text-body-sm-medium-line-height",
|
|
5410
|
+
"--elevation-button-focus"
|
|
5411
|
+
]
|
|
5412
|
+
},
|
|
5413
|
+
"navigation-menu": {
|
|
5414
|
+
"description": "Radix NavigationMenu-backed top navigation with trigger, content, link, viewport, and indicator parts.",
|
|
5415
|
+
"dependencies": {
|
|
5416
|
+
"@radix-ui/react-navigation-menu": "^1.2.17",
|
|
5417
|
+
"lucide-react": "^1.17.0"
|
|
5418
|
+
},
|
|
5419
|
+
"parts": [
|
|
5420
|
+
"NavigationMenu",
|
|
5421
|
+
"NavigationMenuList",
|
|
5422
|
+
"NavigationMenuItem",
|
|
5423
|
+
"NavigationMenuTrigger",
|
|
5424
|
+
"NavigationMenuContent",
|
|
5425
|
+
"NavigationMenuLink",
|
|
5426
|
+
"NavigationMenuViewport",
|
|
5427
|
+
"NavigationMenuIndicator"
|
|
5428
|
+
],
|
|
5429
|
+
"supportedExports": [
|
|
5430
|
+
{
|
|
5431
|
+
"source": "components/navigation-menu.tsx",
|
|
5432
|
+
"values": [
|
|
5433
|
+
"NavigationMenu",
|
|
5434
|
+
"NavigationMenuContent",
|
|
5435
|
+
"NavigationMenuIndicator",
|
|
5436
|
+
"NavigationMenuItem",
|
|
5437
|
+
"NavigationMenuLink",
|
|
5438
|
+
"NavigationMenuList",
|
|
5439
|
+
"NavigationMenuTrigger",
|
|
5440
|
+
"NavigationMenuViewport"
|
|
5441
|
+
]
|
|
5442
|
+
}
|
|
5443
|
+
],
|
|
5444
|
+
"features": [
|
|
5445
|
+
"top navigation",
|
|
4898
5446
|
"viewport",
|
|
4899
5447
|
"indicator",
|
|
4900
5448
|
"dropdown content"
|
|
@@ -4939,7 +5487,7 @@
|
|
|
4939
5487
|
"--bh-text-body-sm-regular-line-height",
|
|
4940
5488
|
"--bh-z-popover",
|
|
4941
5489
|
"--bh-z-raised",
|
|
4942
|
-
"--
|
|
5490
|
+
"--elevation-popover"
|
|
4943
5491
|
]
|
|
4944
5492
|
},
|
|
4945
5493
|
"scroll-area": {
|
|
@@ -4986,7 +5534,7 @@
|
|
|
4986
5534
|
"--bh-radius-full",
|
|
4987
5535
|
"--bh-space-lg-10",
|
|
4988
5536
|
"--bh-space-xxs-2",
|
|
4989
|
-
"--
|
|
5537
|
+
"--elevation-component-focus-ring"
|
|
4990
5538
|
]
|
|
4991
5539
|
},
|
|
4992
5540
|
"resizable": {
|
|
@@ -5039,8 +5587,8 @@
|
|
|
5039
5587
|
"--bh-space-5xl-24",
|
|
5040
5588
|
"--bh-space-6xl-32",
|
|
5041
5589
|
"--bh-z-raised",
|
|
5042
|
-
"--
|
|
5043
|
-
"--
|
|
5590
|
+
"--elevation-button-focus",
|
|
5591
|
+
"--elevation-component-focus-ring"
|
|
5044
5592
|
]
|
|
5045
5593
|
},
|
|
5046
5594
|
"autocomplete": {
|
|
@@ -5292,10 +5840,10 @@
|
|
|
5292
5840
|
"--bh-date-title-chevron-size",
|
|
5293
5841
|
"--bh-date-title-height",
|
|
5294
5842
|
"--bh-date-trigger-border",
|
|
5843
|
+
"--bh-date-trigger-elevation",
|
|
5295
5844
|
"--bh-date-trigger-height",
|
|
5296
5845
|
"--bh-date-trigger-icon-size",
|
|
5297
5846
|
"--bh-date-trigger-icon-slot-size",
|
|
5298
|
-
"--bh-date-trigger-shadow",
|
|
5299
5847
|
"--bh-date-trigger-width",
|
|
5300
5848
|
"--bh-icon-stroke-180",
|
|
5301
5849
|
"--bh-interactive-ghost-hover",
|
|
@@ -5334,12 +5882,12 @@
|
|
|
5334
5882
|
"--bh-text-body-md-regular-letter-spacing",
|
|
5335
5883
|
"--bh-text-body-md-regular-line-height",
|
|
5336
5884
|
"--bh-z-raised",
|
|
5337
|
-
"--
|
|
5338
|
-
"--
|
|
5339
|
-
"--
|
|
5340
|
-
"--
|
|
5341
|
-
"--
|
|
5342
|
-
"--
|
|
5885
|
+
"--elevation-button-focus",
|
|
5886
|
+
"--elevation-component-default",
|
|
5887
|
+
"--elevation-date-month-year-list",
|
|
5888
|
+
"--elevation-date-surface",
|
|
5889
|
+
"--elevation-date-time-input",
|
|
5890
|
+
"--elevation-input-focus-ring"
|
|
5343
5891
|
]
|
|
5344
5892
|
},
|
|
5345
5893
|
"slider": {
|
|
@@ -5501,9 +6049,9 @@
|
|
|
5501
6049
|
"--bh-z-overlay",
|
|
5502
6050
|
"--bh-z-popover",
|
|
5503
6051
|
"--bh-z-raised",
|
|
5504
|
-
"--
|
|
5505
|
-
"--
|
|
5506
|
-
"--
|
|
6052
|
+
"--elevation-slider-thumb",
|
|
6053
|
+
"--elevation-slider-thumb-focus",
|
|
6054
|
+
"--elevation-slider-tooltip"
|
|
5507
6055
|
]
|
|
5508
6056
|
},
|
|
5509
6057
|
"progress": {
|
|
@@ -5690,7 +6238,7 @@
|
|
|
5690
6238
|
"--bh-z-overlay",
|
|
5691
6239
|
"--bh-z-popover",
|
|
5692
6240
|
"--bh-z-raised",
|
|
5693
|
-
"--
|
|
6241
|
+
"--elevation-progress-slider-thumb-focus"
|
|
5694
6242
|
]
|
|
5695
6243
|
},
|
|
5696
6244
|
"textarea": {
|
|
@@ -5793,8 +6341,8 @@
|
|
|
5793
6341
|
"--bh-textarea-tag-avatar-size",
|
|
5794
6342
|
"--bh-textarea-tag-height",
|
|
5795
6343
|
"--bh-textarea-width",
|
|
5796
|
-
"--
|
|
5797
|
-
"--
|
|
6344
|
+
"--elevation-component-default",
|
|
6345
|
+
"--elevation-textarea"
|
|
5798
6346
|
]
|
|
5799
6347
|
},
|
|
5800
6348
|
"skeleton": {
|
|
@@ -5925,7 +6473,7 @@
|
|
|
5925
6473
|
"--bh-space-xl-12",
|
|
5926
6474
|
"--bh-space-xs-4",
|
|
5927
6475
|
"--bh-text-body-md-regular-line-height",
|
|
5928
|
-
"--
|
|
6476
|
+
"--elevation-component-default"
|
|
5929
6477
|
]
|
|
5930
6478
|
},
|
|
5931
6479
|
"spinner": {
|
|
@@ -6063,7 +6611,7 @@
|
|
|
6063
6611
|
"--bh-text-body-xs-regular-line-height",
|
|
6064
6612
|
"--bh-toast-accent",
|
|
6065
6613
|
"--bh-toast-accent-bg",
|
|
6066
|
-
"--
|
|
6614
|
+
"--elevation-component-default"
|
|
6067
6615
|
]
|
|
6068
6616
|
},
|
|
6069
6617
|
"activity-feed": {
|
|
@@ -6157,8 +6705,8 @@
|
|
|
6157
6705
|
"--bh-text-body-sm-regular-font-size",
|
|
6158
6706
|
"--bh-text-body-sm-regular-line-height",
|
|
6159
6707
|
"--bh-text-body-xs-regular-font-size",
|
|
6160
|
-
"--
|
|
6161
|
-
"--
|
|
6708
|
+
"--elevation-button-raised",
|
|
6709
|
+
"--elevation-component-default"
|
|
6162
6710
|
]
|
|
6163
6711
|
},
|
|
6164
6712
|
"activity-heatmap": {
|
|
@@ -6228,7 +6776,7 @@
|
|
|
6228
6776
|
"--bh-radius-sm-4",
|
|
6229
6777
|
"--bh-space-3xl-16",
|
|
6230
6778
|
"--bh-space-xs-4",
|
|
6231
|
-
"--
|
|
6779
|
+
"--elevation-component-focus-ring"
|
|
6232
6780
|
]
|
|
6233
6781
|
},
|
|
6234
6782
|
"alert": {
|
|
@@ -6240,6 +6788,23 @@
|
|
|
6240
6788
|
"registryDependencies": [
|
|
6241
6789
|
"button"
|
|
6242
6790
|
],
|
|
6791
|
+
"props": {
|
|
6792
|
+
"Alert.descriptionColor": {
|
|
6793
|
+
"type": "\"status\" | \"default\"",
|
|
6794
|
+
"default": "status",
|
|
6795
|
+
"description": "status sets the description in the status colour, as in the library; default sets it in content/default, as the ATS360 frames do."
|
|
6796
|
+
},
|
|
6797
|
+
"Alert.icon": {
|
|
6798
|
+
"type": "ReactNode",
|
|
6799
|
+
"default": null,
|
|
6800
|
+
"description": "Replaces the status icon in its 20px slot."
|
|
6801
|
+
},
|
|
6802
|
+
"Alert.isExpandable": {
|
|
6803
|
+
"type": "boolean",
|
|
6804
|
+
"default": false,
|
|
6805
|
+
"description": "Uses the expanded layout when the alert has a description or a visible action; otherwise it stays compact."
|
|
6806
|
+
}
|
|
6807
|
+
},
|
|
6243
6808
|
"parts": [
|
|
6244
6809
|
"Alert"
|
|
6245
6810
|
],
|
|
@@ -6427,7 +6992,7 @@
|
|
|
6427
6992
|
"--bh-text-body-md-medium-font-weight",
|
|
6428
6993
|
"--bh-text-body-md-medium-letter-spacing",
|
|
6429
6994
|
"--bh-text-body-md-medium-line-height",
|
|
6430
|
-
"--
|
|
6995
|
+
"--elevation-05"
|
|
6431
6996
|
]
|
|
6432
6997
|
},
|
|
6433
6998
|
"catalog-components": {
|
|
@@ -6543,11 +7108,11 @@
|
|
|
6543
7108
|
"--bh-text-heading-xs-semibold-font-size",
|
|
6544
7109
|
"--bh-text-heading-xs-semibold-font-weight",
|
|
6545
7110
|
"--bh-text-heading-xs-semibold-line-height",
|
|
6546
|
-
"--
|
|
7111
|
+
"--elevation-component-default"
|
|
6547
7112
|
]
|
|
6548
7113
|
},
|
|
6549
7114
|
"breadcrumbs": {
|
|
6550
|
-
"description": "Expanded breadcrumbs navigation with default, raised, icon, overflow, separator, and RTL variants.",
|
|
7115
|
+
"description": "Expanded breadcrumbs navigation with default, raised, icon, overflow, separator, small, and RTL variants.",
|
|
6551
7116
|
"status": "expanded",
|
|
6552
7117
|
"variants": [
|
|
6553
7118
|
"default",
|
|
@@ -6564,9 +7129,14 @@
|
|
|
6564
7129
|
"slash",
|
|
6565
7130
|
"chevron"
|
|
6566
7131
|
],
|
|
7132
|
+
"sizes": [
|
|
7133
|
+
"md",
|
|
7134
|
+
"sm"
|
|
7135
|
+
],
|
|
6567
7136
|
"rtl": {
|
|
6568
7137
|
"inheritsDirection": true,
|
|
6569
7138
|
"layout": "The ordered trail follows inherited inline direction, and chevron separators mirror through :dir(rtl).",
|
|
7139
|
+
"textDirection": "Each label uses dir=\"auto\" so Arabic and Latin crumbs resolve independently and truncate at their content end without changing trail order.",
|
|
6570
7140
|
"semantics": "The root is a named navigation landmark and the final or explicitly current item exposes aria-current=\"page\"."
|
|
6571
7141
|
},
|
|
6572
7142
|
"dependencies": {
|
|
@@ -6602,6 +7172,7 @@
|
|
|
6602
7172
|
"--bh-bg-raised",
|
|
6603
7173
|
"--bh-border-focus",
|
|
6604
7174
|
"--bh-border-subtle",
|
|
7175
|
+
"--bh-breadcrumbs-current-content",
|
|
6605
7176
|
"--bh-content-default",
|
|
6606
7177
|
"--bh-content-subtle",
|
|
6607
7178
|
"--bh-focus-ring-width",
|
|
@@ -6625,7 +7196,11 @@
|
|
|
6625
7196
|
"--bh-text-base-letter-spacing",
|
|
6626
7197
|
"--bh-text-body-2xs-regular-line-height",
|
|
6627
7198
|
"--bh-text-body-md-font-size",
|
|
6628
|
-
"--bh-text-body-md-line-height"
|
|
7199
|
+
"--bh-text-body-md-line-height",
|
|
7200
|
+
"--bh-text-body-sm-medium-font-size",
|
|
7201
|
+
"--bh-text-body-sm-medium-font-weight",
|
|
7202
|
+
"--bh-text-body-sm-medium-letter-spacing",
|
|
7203
|
+
"--bh-text-body-sm-medium-line-height"
|
|
6629
7204
|
]
|
|
6630
7205
|
},
|
|
6631
7206
|
"file-upload": {
|
|
@@ -6772,8 +7347,8 @@
|
|
|
6772
7347
|
"--bh-text-body-xs-regular-font-size",
|
|
6773
7348
|
"--bh-text-body-xs-regular-line-height",
|
|
6774
7349
|
"--bh-underline-offset-default",
|
|
6775
|
-
"--
|
|
6776
|
-
"--
|
|
7350
|
+
"--elevation-02",
|
|
7351
|
+
"--elevation-component-default"
|
|
6777
7352
|
]
|
|
6778
7353
|
},
|
|
6779
7354
|
"table": {
|
|
@@ -6781,8 +7356,44 @@
|
|
|
6781
7356
|
"status": "expanded",
|
|
6782
7357
|
"sizes": [
|
|
6783
7358
|
"sm",
|
|
6784
|
-
"lg"
|
|
7359
|
+
"lg",
|
|
7360
|
+
"comfortable"
|
|
6785
7361
|
],
|
|
7362
|
+
"defaults": {
|
|
7363
|
+
"sizes": "sm"
|
|
7364
|
+
},
|
|
7365
|
+
"props": {
|
|
7366
|
+
"Table.size": {
|
|
7367
|
+
"type": "\"sm\" | \"lg\" | \"comfortable\"",
|
|
7368
|
+
"default": "sm",
|
|
7369
|
+
"description": "sm and lg are 48px and 56px rows; sm uses body-sm text and lg uses body-md, as in the Table item 1.2 sm and lg cells. comfortable follows Table item 1.2: 44px headers in body-sm medium on the table-header fill, 64px rows with 8px cells and body-md text, no row rules, and a 12px radius."
|
|
7370
|
+
},
|
|
7371
|
+
"TableItem.caption": {
|
|
7372
|
+
"type": "string",
|
|
7373
|
+
"default": null,
|
|
7374
|
+
"description": "Second line under the label on text, avatarText, brandLogoText, payment and image items (Table item 1.2 hasCaption): body-2xs in content/subtle with no gap. Use it in lg or comfortable rows; the two lines fill 40px of a 56px row. Search matches captions; sorting uses the label."
|
|
7375
|
+
},
|
|
7376
|
+
"TableRoot.size": {
|
|
7377
|
+
"type": "\"comfortable\"",
|
|
7378
|
+
"default": null,
|
|
7379
|
+
"description": "Applies the comfortable spec to TableHead and TableCell. Without a size the owned elements stay unstyled."
|
|
7380
|
+
},
|
|
7381
|
+
"TableContainer": {
|
|
7382
|
+
"type": "div",
|
|
7383
|
+
"default": null,
|
|
7384
|
+
"description": "Frame for the owned elements: 12px radius, default background, and a 1px subtle border drawn inside the edge. The table scrolls horizontally inside it."
|
|
7385
|
+
},
|
|
7386
|
+
"TableCellText": {
|
|
7387
|
+
"type": "span",
|
|
7388
|
+
"default": null,
|
|
7389
|
+
"description": "Text content for an owned TableCell: children are the label, caption adds the second line, leading adds an icon or avatar 6px before the text, and tone (default | subtle) and weight (regular | medium) set the label. The label keeps the cell text size; use TableCellLink when it opens a record."
|
|
7390
|
+
},
|
|
7391
|
+
"TableCellLink": {
|
|
7392
|
+
"type": "button",
|
|
7393
|
+
"default": null,
|
|
7394
|
+
"description": "A cell label that opens a record: it keeps the cell text style and colour, sits flush with the cell padding, underlines on hover and focus, and shows the focus ring 2px outside the text. Renders a button, or its child (such as an anchor) with asChild. Use it as the TableCellText label instead of a padded Button."
|
|
7395
|
+
}
|
|
7396
|
+
},
|
|
6786
7397
|
"states": [
|
|
6787
7398
|
"default",
|
|
6788
7399
|
"selected",
|
|
@@ -6795,13 +7406,25 @@
|
|
|
6795
7406
|
"table",
|
|
6796
7407
|
"data-table"
|
|
6797
7408
|
],
|
|
7409
|
+
"features": [
|
|
7410
|
+
"measured DataTable pagination captions",
|
|
7411
|
+
"explicit DataTable pagination message catalogs",
|
|
7412
|
+
"safe row-key cell fallback",
|
|
7413
|
+
"comfortable size with 44px headers, 64px rows, 8px cells, body-md text, and no row rules",
|
|
7414
|
+
"TableContainer frame with a 12px radius and an inside border",
|
|
7415
|
+
"comfortable size on the owned table elements through TableRoot size",
|
|
7416
|
+
"line + subline cells: an optional caption under text, avatarText, brandLogoText, payment and image items, and TableCellText for the owned elements",
|
|
7417
|
+
"TableCellLink for flush record links in owned cells"
|
|
7418
|
+
],
|
|
6798
7419
|
"rtl": {
|
|
6799
7420
|
"inheritsDirection": true,
|
|
6800
7421
|
"layout": "Headers, cells, search/filter tools, selection, pagination, and actions inherit direction and use logical alignment.",
|
|
7422
|
+
"textDirection": "Each label and caption in a line + subline cell (avatarText, captioned items and TableCellText) uses dir=\"auto\" to resolve its own content direction, so ellipsis preserves the identifying start without changing the mirrored cell layout.",
|
|
6801
7423
|
"semantics": "Sortable headers are owned Buttons, selection uses Checkbox, progress cells are named, and row actions expose accessible labels.",
|
|
6802
7424
|
"narrowContainers": "The toolbar wraps and the table owns local horizontal scrolling instead of overlapping controls or overflowing the page."
|
|
6803
7425
|
},
|
|
6804
7426
|
"dependencies": {
|
|
7427
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
6805
7428
|
"lucide-react": "^1.17.0"
|
|
6806
7429
|
},
|
|
6807
7430
|
"registryDependencies": [
|
|
@@ -6820,12 +7443,15 @@
|
|
|
6820
7443
|
"Table",
|
|
6821
7444
|
"DataTable",
|
|
6822
7445
|
"DataTableSurface",
|
|
7446
|
+
"TableContainer",
|
|
6823
7447
|
"TableRoot",
|
|
6824
7448
|
"TableHeader",
|
|
6825
7449
|
"TableBody",
|
|
6826
7450
|
"TableRowElement",
|
|
6827
7451
|
"TableHead",
|
|
6828
|
-
"TableCell"
|
|
7452
|
+
"TableCell",
|
|
7453
|
+
"TableCellText",
|
|
7454
|
+
"TableCellLink"
|
|
6829
7455
|
],
|
|
6830
7456
|
"supportedExports": [
|
|
6831
7457
|
{
|
|
@@ -6841,6 +7467,9 @@
|
|
|
6841
7467
|
"DataTableSurface",
|
|
6842
7468
|
"TableBody",
|
|
6843
7469
|
"TableCell",
|
|
7470
|
+
"TableCellLink",
|
|
7471
|
+
"TableCellText",
|
|
7472
|
+
"TableContainer",
|
|
6844
7473
|
"TableHead",
|
|
6845
7474
|
"TableHeader",
|
|
6846
7475
|
"TableRoot",
|
|
@@ -6890,6 +7519,7 @@
|
|
|
6890
7519
|
"--bh-border-default",
|
|
6891
7520
|
"--bh-border-focus",
|
|
6892
7521
|
"--bh-border-subtle",
|
|
7522
|
+
"--bh-border-width-default",
|
|
6893
7523
|
"--bh-content-accent-amber-strong",
|
|
6894
7524
|
"--bh-content-accent-fuchsia-strong",
|
|
6895
7525
|
"--bh-content-brand-default",
|
|
@@ -6905,6 +7535,8 @@
|
|
|
6905
7535
|
"--bh-easing-standard",
|
|
6906
7536
|
"--bh-focus-ring-width",
|
|
6907
7537
|
"--bh-font-family",
|
|
7538
|
+
"--bh-font-weight-medium",
|
|
7539
|
+
"--bh-font-weight-regular",
|
|
6908
7540
|
"--bh-font-weight-semibold",
|
|
6909
7541
|
"--bh-icon-size-default",
|
|
6910
7542
|
"--bh-icon-slot-size-default",
|
|
@@ -6930,30 +7562,53 @@
|
|
|
6930
7562
|
"--bh-space-7xl-40",
|
|
6931
7563
|
"--bh-space-8xl-48",
|
|
6932
7564
|
"--bh-space-md-8",
|
|
7565
|
+
"--bh-space-none",
|
|
6933
7566
|
"--bh-space-sm-6",
|
|
6934
7567
|
"--bh-space-xl-12",
|
|
6935
7568
|
"--bh-space-xs-4",
|
|
6936
7569
|
"--bh-space-xxs-2",
|
|
6937
7570
|
"--bh-space-xxxs-1",
|
|
7571
|
+
"--bh-table-caption-content",
|
|
7572
|
+
"--bh-table-cell-text-gap",
|
|
7573
|
+
"--bh-table-comfortable-cell-content",
|
|
7574
|
+
"--bh-table-comfortable-cell-padding-x",
|
|
7575
|
+
"--bh-table-comfortable-header-bg",
|
|
7576
|
+
"--bh-table-comfortable-header-content",
|
|
7577
|
+
"--bh-table-comfortable-header-height",
|
|
7578
|
+
"--bh-table-comfortable-min-width",
|
|
7579
|
+
"--bh-table-comfortable-radius",
|
|
7580
|
+
"--bh-table-comfortable-row-height",
|
|
7581
|
+
"--bh-table-container-bg",
|
|
7582
|
+
"--bh-table-container-border",
|
|
7583
|
+
"--bh-table-container-radius",
|
|
6938
7584
|
"--bh-table-min-width",
|
|
6939
7585
|
"--bh-table-selection-column-min-width",
|
|
6940
7586
|
"--bh-text-base-letter-spacing",
|
|
6941
7587
|
"--bh-text-body-2xs-regular-font-size",
|
|
7588
|
+
"--bh-text-body-2xs-regular-font-weight",
|
|
7589
|
+
"--bh-text-body-2xs-regular-letter-spacing",
|
|
6942
7590
|
"--bh-text-body-2xs-regular-line-height",
|
|
6943
7591
|
"--bh-text-body-3xs-regular-font-size",
|
|
6944
7592
|
"--bh-text-body-3xs-regular-line-height",
|
|
6945
7593
|
"--bh-text-body-lg-semibold-font-size",
|
|
6946
7594
|
"--bh-text-body-lg-semibold-font-weight",
|
|
6947
7595
|
"--bh-text-body-lg-semibold-line-height",
|
|
7596
|
+
"--bh-text-body-md-regular-font-size",
|
|
7597
|
+
"--bh-text-body-md-regular-font-weight",
|
|
7598
|
+
"--bh-text-body-md-regular-letter-spacing",
|
|
7599
|
+
"--bh-text-body-md-regular-line-height",
|
|
6948
7600
|
"--bh-text-body-md-semibold-font-size",
|
|
6949
7601
|
"--bh-text-body-md-semibold-font-weight",
|
|
6950
7602
|
"--bh-text-body-md-semibold-line-height",
|
|
7603
|
+
"--bh-text-body-sm-medium-font-size",
|
|
6951
7604
|
"--bh-text-body-sm-medium-font-weight",
|
|
7605
|
+
"--bh-text-body-sm-medium-letter-spacing",
|
|
7606
|
+
"--bh-text-body-sm-medium-line-height",
|
|
6952
7607
|
"--bh-text-body-sm-regular-font-size",
|
|
6953
7608
|
"--bh-text-body-sm-regular-font-weight",
|
|
6954
7609
|
"--bh-text-body-sm-regular-line-height",
|
|
6955
7610
|
"--bh-text-body-xs-regular-font-size",
|
|
6956
|
-
"--
|
|
7611
|
+
"--elevation-component-focus-ring"
|
|
6957
7612
|
]
|
|
6958
7613
|
},
|
|
6959
7614
|
"empty-state": {
|
|
@@ -7104,12 +7759,46 @@
|
|
|
7104
7759
|
"--bh-text-body-md-medium-font-weight",
|
|
7105
7760
|
"--bh-text-body-md-medium-letter-spacing",
|
|
7106
7761
|
"--bh-text-body-md-medium-line-height",
|
|
7107
|
-
"--
|
|
7762
|
+
"--elevation-component-default"
|
|
7108
7763
|
]
|
|
7109
7764
|
},
|
|
7110
7765
|
"page-header": {
|
|
7111
|
-
"description": "Expanded page header composition with breadcrumbs, metadata, description copy, action groups, responsive layout, and
|
|
7766
|
+
"description": "Expanded page header composition with breadcrumbs, metadata, description copy, action groups, responsive layout, and content-safe scrollable local tabs.",
|
|
7112
7767
|
"status": "expanded",
|
|
7768
|
+
"sizes": [
|
|
7769
|
+
"default",
|
|
7770
|
+
"comfortable"
|
|
7771
|
+
],
|
|
7772
|
+
"defaults": {
|
|
7773
|
+
"sizes": "default"
|
|
7774
|
+
},
|
|
7775
|
+
"props": {
|
|
7776
|
+
"PageHeader.size": {
|
|
7777
|
+
"type": "\"default\" | \"comfortable\"",
|
|
7778
|
+
"default": "default",
|
|
7779
|
+
"description": "comfortable is the page heading inside an app shell whose header carries the breadcrumbs: no block padding, 8px between title and description, 24px between copy and actions, 12px between actions, 40px action Buttons with a 160px minimum width (176px for primary), and no icon or tabs unless passed."
|
|
7780
|
+
},
|
|
7781
|
+
"PageHeader.actions": {
|
|
7782
|
+
"type": "PageHeaderAction[] | ReactNode | false",
|
|
7783
|
+
"default": "[]",
|
|
7784
|
+
"description": "Action data renders secondary Buttons at the header density; pass your own nodes for primary actions or other controls."
|
|
7785
|
+
},
|
|
7786
|
+
"PageHeader.description": {
|
|
7787
|
+
"type": "ReactNode",
|
|
7788
|
+
"default": null,
|
|
7789
|
+
"description": "Inline description content under the title, in body-md and content/subtle."
|
|
7790
|
+
},
|
|
7791
|
+
"PageHeader.children": {
|
|
7792
|
+
"type": "ReactNode",
|
|
7793
|
+
"default": null,
|
|
7794
|
+
"description": "Supporting content under the description, such as status badges, in a wrapping row with 8px gaps."
|
|
7795
|
+
},
|
|
7796
|
+
"PageHeader.title": {
|
|
7797
|
+
"type": "ReactNode",
|
|
7798
|
+
"default": null,
|
|
7799
|
+
"description": "Heading content in heading-md semibold (24/28); inline content such as a record name and its type is allowed."
|
|
7800
|
+
}
|
|
7801
|
+
},
|
|
7113
7802
|
"states": [
|
|
7114
7803
|
"default",
|
|
7115
7804
|
"without-icon",
|
|
@@ -7123,10 +7812,19 @@
|
|
|
7123
7812
|
"actions",
|
|
7124
7813
|
"tabs"
|
|
7125
7814
|
],
|
|
7815
|
+
"features": [
|
|
7816
|
+
"Breadcrumb-owned icon-slot visibility",
|
|
7817
|
+
"Button-owned default-density secondary action styling",
|
|
7818
|
+
"content-safe horizontal tab overflow",
|
|
7819
|
+
"full-width tab opt-out",
|
|
7820
|
+
"comfortable size for app-shell page headings",
|
|
7821
|
+
"custom action nodes and rich descriptions"
|
|
7822
|
+
],
|
|
7126
7823
|
"rtl": {
|
|
7127
7824
|
"inheritsDirection": true,
|
|
7128
|
-
"layout": "Heading, metadata, owned Breadcrumbs, Button actions, and Tabs mirror through inherited direction and logical spacing.",
|
|
7129
|
-
"
|
|
7825
|
+
"layout": "Heading, metadata, owned Breadcrumbs, Button actions, and content-safe scrolling Tabs mirror through inherited direction and logical spacing.",
|
|
7826
|
+
"textDirection": "Title and description use dir=\"auto\" so Arabic and Latin copy resolve independently and terminal punctuation stays at the content end.",
|
|
7827
|
+
"semantics": "Every complete tab label remains available inside its trigger, every trigger owns a matching panel, and breadcrumb navigation receives a stable accessible label."
|
|
7130
7828
|
},
|
|
7131
7829
|
"dependencies": {
|
|
7132
7830
|
"lucide-react": "^1.17.0"
|
|
@@ -7161,30 +7859,26 @@
|
|
|
7161
7859
|
"examples/expanded/page-header-demo.tsx"
|
|
7162
7860
|
],
|
|
7163
7861
|
"tokens": [
|
|
7164
|
-
"--bh-
|
|
7165
|
-
"--bh-border-default",
|
|
7862
|
+
"--bh-button-label-padding-x",
|
|
7166
7863
|
"--bh-content-brand-default",
|
|
7167
7864
|
"--bh-content-default",
|
|
7168
7865
|
"--bh-content-muted",
|
|
7169
7866
|
"--bh-content-subtle",
|
|
7170
|
-
"--bh-control-default",
|
|
7171
7867
|
"--bh-focus-ring-width",
|
|
7172
7868
|
"--bh-font-family",
|
|
7173
7869
|
"--bh-icon-stroke-190",
|
|
7174
|
-
"--bh-
|
|
7175
|
-
"--bh-
|
|
7870
|
+
"--bh-page-header-comfortable-action-min-width",
|
|
7871
|
+
"--bh-page-header-comfortable-primary-action-min-width",
|
|
7176
7872
|
"--bh-space-2xl-14",
|
|
7177
7873
|
"--bh-space-3xl-16",
|
|
7178
7874
|
"--bh-space-4xl-20",
|
|
7179
7875
|
"--bh-space-5xl-24",
|
|
7180
|
-
"--bh-space-6xl-32",
|
|
7181
7876
|
"--bh-space-7xl-40",
|
|
7182
7877
|
"--bh-space-lg-10",
|
|
7183
7878
|
"--bh-space-md-8",
|
|
7184
7879
|
"--bh-space-xl-12",
|
|
7185
7880
|
"--bh-space-xs-4",
|
|
7186
7881
|
"--bh-space-xxs-2",
|
|
7187
|
-
"--bh-space-xxxs-1",
|
|
7188
7882
|
"--bh-text-body-2xs-regular-font-size",
|
|
7189
7883
|
"--bh-text-body-2xs-regular-font-weight",
|
|
7190
7884
|
"--bh-text-body-2xs-regular-line-height",
|
|
@@ -7197,8 +7891,7 @@
|
|
|
7197
7891
|
"--bh-text-body-md-regular-line-height",
|
|
7198
7892
|
"--bh-text-heading-md-semibold-font-size",
|
|
7199
7893
|
"--bh-text-heading-md-semibold-font-weight",
|
|
7200
|
-
"--bh-text-heading-md-semibold-line-height"
|
|
7201
|
-
"--shadow-button-secondary"
|
|
7894
|
+
"--bh-text-heading-md-semibold-line-height"
|
|
7202
7895
|
]
|
|
7203
7896
|
},
|
|
7204
7897
|
"slideout": {
|
|
@@ -7308,9 +8001,9 @@
|
|
|
7308
8001
|
"--bh-text-heading-sm-medium-line-height",
|
|
7309
8002
|
"--bh-text-heading-xs-medium-font-size",
|
|
7310
8003
|
"--bh-text-heading-xs-medium-line-height",
|
|
7311
|
-
"--
|
|
7312
|
-
"--
|
|
7313
|
-
"--
|
|
8004
|
+
"--elevation-button-raised",
|
|
8005
|
+
"--elevation-button-soft",
|
|
8006
|
+
"--elevation-component-default"
|
|
7314
8007
|
]
|
|
7315
8008
|
},
|
|
7316
8009
|
"steps": {
|
|
@@ -7447,20 +8140,24 @@
|
|
|
7447
8140
|
"sizes": [
|
|
7448
8141
|
"md",
|
|
7449
8142
|
"sm",
|
|
7450
|
-
"xs"
|
|
8143
|
+
"xs",
|
|
8144
|
+
"comfortable"
|
|
7451
8145
|
],
|
|
7452
8146
|
"features": [
|
|
7453
8147
|
"Radix keyboard behavior",
|
|
7454
8148
|
"controlled active index",
|
|
7455
8149
|
"controlled value",
|
|
7456
8150
|
"optional panels",
|
|
7457
|
-
"
|
|
8151
|
+
"content-hug tabs",
|
|
8152
|
+
"content-safe full-width tabs",
|
|
8153
|
+
"horizontal overflow without label overlap",
|
|
8154
|
+
"comfortable view-navigation size: 48px underline tabs 8px apart, inset indicator, no divider"
|
|
7458
8155
|
],
|
|
7459
8156
|
"rtl": {
|
|
7460
8157
|
"inheritsDirection": true,
|
|
7461
8158
|
"keyboard": "Radix receives dir so arrow-key navigation follows the document direction.",
|
|
7462
8159
|
"textDirection": "Trigger labels use dir=\"auto\" by default for Arabic and English tab labels.",
|
|
7463
|
-
"spacing": "Uses inherited direction and logical inline spacing so underline, segmented, and rounded treatments mirror naturally."
|
|
8160
|
+
"spacing": "Uses inherited direction and logical inline spacing so underline, segmented, and rounded treatments mirror naturally, including horizontal overflow."
|
|
7464
8161
|
},
|
|
7465
8162
|
"files": [
|
|
7466
8163
|
{
|
|
@@ -7503,7 +8200,7 @@
|
|
|
7503
8200
|
"--bh-text-body-md-regular-font-weight",
|
|
7504
8201
|
"--bh-text-body-md-regular-letter-spacing",
|
|
7505
8202
|
"--bh-text-body-md-regular-line-height",
|
|
7506
|
-
"--
|
|
8203
|
+
"--elevation-button-soft"
|
|
7507
8204
|
]
|
|
7508
8205
|
},
|
|
7509
8206
|
"timeline": {
|
|
@@ -7591,7 +8288,928 @@
|
|
|
7591
8288
|
"--bh-timeline-grid-width",
|
|
7592
8289
|
"--bh-timeline-narrow-width",
|
|
7593
8290
|
"--bh-timeline-sidebar-width",
|
|
7594
|
-
"--
|
|
8291
|
+
"--elevation-component-focus-ring"
|
|
8292
|
+
]
|
|
8293
|
+
},
|
|
8294
|
+
"shimmer-text": {
|
|
8295
|
+
"description": "Text with a soft brightness valley sweeping through it in reading direction, for labels of work in progress such as syncing, reading, or thinking.",
|
|
8296
|
+
"dependencies": {},
|
|
8297
|
+
"parts": [
|
|
8298
|
+
"ShimmerText"
|
|
8299
|
+
],
|
|
8300
|
+
"supportedExports": [
|
|
8301
|
+
{
|
|
8302
|
+
"source": "components/shimmer-text.tsx",
|
|
8303
|
+
"values": [
|
|
8304
|
+
"ShimmerText"
|
|
8305
|
+
]
|
|
8306
|
+
}
|
|
8307
|
+
],
|
|
8308
|
+
"props": {
|
|
8309
|
+
"animated": {
|
|
8310
|
+
"type": "boolean",
|
|
8311
|
+
"default": "true",
|
|
8312
|
+
"description": "Runs the brightness sweep; set false to keep the same colors without motion."
|
|
8313
|
+
},
|
|
8314
|
+
"tone": {
|
|
8315
|
+
"type": "\"subtle\" | \"default\"",
|
|
8316
|
+
"default": "subtle",
|
|
8317
|
+
"description": "Secondary or primary text color pair for the sweep."
|
|
8318
|
+
}
|
|
8319
|
+
},
|
|
8320
|
+
"tones": [
|
|
8321
|
+
"subtle",
|
|
8322
|
+
"default"
|
|
8323
|
+
],
|
|
8324
|
+
"rtl": {
|
|
8325
|
+
"inheritsDirection": true,
|
|
8326
|
+
"motion": "The shine sweeps from the reading start to the reading end, so RTL text uses mirrored keyframes."
|
|
8327
|
+
},
|
|
8328
|
+
"files": [
|
|
8329
|
+
{
|
|
8330
|
+
"source": "components/shimmer-text.css",
|
|
8331
|
+
"target": "{{ui}}/shimmer-text.css"
|
|
8332
|
+
},
|
|
8333
|
+
{
|
|
8334
|
+
"source": "components/shimmer-text.tsx",
|
|
8335
|
+
"target": "{{ui}}/shimmer-text.tsx"
|
|
8336
|
+
}
|
|
8337
|
+
],
|
|
8338
|
+
"examples": [
|
|
8339
|
+
"examples/shimmer-text-demo.tsx"
|
|
8340
|
+
],
|
|
8341
|
+
"tokens": [
|
|
8342
|
+
"--bh-content-default",
|
|
8343
|
+
"--bh-content-disabled",
|
|
8344
|
+
"--bh-content-subtle",
|
|
8345
|
+
"--bh-easing-standard",
|
|
8346
|
+
"--bh-shimmer-text-duration"
|
|
8347
|
+
]
|
|
8348
|
+
},
|
|
8349
|
+
"thinking-state": {
|
|
8350
|
+
"description": "Minimal shimmering status label that signals an agent is working before its first token arrives.",
|
|
8351
|
+
"dependencies": {},
|
|
8352
|
+
"registryDependencies": [
|
|
8353
|
+
"shimmer-text"
|
|
8354
|
+
],
|
|
8355
|
+
"parts": [
|
|
8356
|
+
"ThinkingState"
|
|
8357
|
+
],
|
|
8358
|
+
"supportedExports": [
|
|
8359
|
+
{
|
|
8360
|
+
"source": "components/thinking-state.tsx",
|
|
8361
|
+
"values": [
|
|
8362
|
+
"ThinkingState"
|
|
8363
|
+
]
|
|
8364
|
+
}
|
|
8365
|
+
],
|
|
8366
|
+
"props": {
|
|
8367
|
+
"status": {
|
|
8368
|
+
"type": "\"thinking\" | \"done\"",
|
|
8369
|
+
"default": "thinking",
|
|
8370
|
+
"description": "Thinking runs the brightness sweep; done leaves the label as static text."
|
|
8371
|
+
},
|
|
8372
|
+
"tone": {
|
|
8373
|
+
"type": "\"subtle\" | \"default\"",
|
|
8374
|
+
"default": "subtle",
|
|
8375
|
+
"description": "Secondary or primary text color pair for the sweep."
|
|
8376
|
+
},
|
|
8377
|
+
"children": {
|
|
8378
|
+
"type": "React.ReactNode",
|
|
8379
|
+
"default": "\"Thinking\"",
|
|
8380
|
+
"description": "Localized label text."
|
|
8381
|
+
}
|
|
8382
|
+
},
|
|
8383
|
+
"tones": [
|
|
8384
|
+
"subtle",
|
|
8385
|
+
"default"
|
|
8386
|
+
],
|
|
8387
|
+
"states": [
|
|
8388
|
+
"thinking",
|
|
8389
|
+
"done"
|
|
8390
|
+
],
|
|
8391
|
+
"rtl": {
|
|
8392
|
+
"inheritsDirection": true,
|
|
8393
|
+
"motion": "The shine sweeps from the reading start to the reading end, so RTL text uses mirrored keyframes."
|
|
8394
|
+
},
|
|
8395
|
+
"files": [
|
|
8396
|
+
{
|
|
8397
|
+
"source": "components/thinking-state.css",
|
|
8398
|
+
"target": "{{ui}}/thinking-state.css"
|
|
8399
|
+
},
|
|
8400
|
+
{
|
|
8401
|
+
"source": "components/thinking-state.tsx",
|
|
8402
|
+
"target": "{{ui}}/thinking-state.tsx"
|
|
8403
|
+
}
|
|
8404
|
+
],
|
|
8405
|
+
"examples": [
|
|
8406
|
+
"examples/thinking-state-demo.tsx"
|
|
8407
|
+
],
|
|
8408
|
+
"tokens": [
|
|
8409
|
+
"--bh-content-subtle",
|
|
8410
|
+
"--bh-font-family",
|
|
8411
|
+
"--bh-text-body-xs-medium-font-size",
|
|
8412
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
8413
|
+
"--bh-text-body-xs-medium-letter-spacing",
|
|
8414
|
+
"--bh-text-body-xs-medium-line-height"
|
|
8415
|
+
]
|
|
8416
|
+
},
|
|
8417
|
+
"thinking-reasoning": {
|
|
8418
|
+
"description": "Animated, collapsible reasoning block: a shimmering label reveals sentences as they arrive, auto-scrolls behind soft fades, then folds into a Thought for Ns summary that unfolds on demand.",
|
|
8419
|
+
"dependencies": {
|
|
8420
|
+
"lucide-react": "^1.17.0"
|
|
8421
|
+
},
|
|
8422
|
+
"registryDependencies": [
|
|
8423
|
+
"collapsible",
|
|
8424
|
+
"shimmer-text"
|
|
8425
|
+
],
|
|
8426
|
+
"parts": [
|
|
8427
|
+
"ThinkingReasoning"
|
|
8428
|
+
],
|
|
8429
|
+
"supportedExports": [
|
|
8430
|
+
{
|
|
8431
|
+
"source": "components/thinking-reasoning.tsx",
|
|
8432
|
+
"values": [
|
|
8433
|
+
"ThinkingReasoning"
|
|
8434
|
+
]
|
|
8435
|
+
}
|
|
8436
|
+
],
|
|
8437
|
+
"props": {
|
|
8438
|
+
"steps": {
|
|
8439
|
+
"type": "readonly string[]",
|
|
8440
|
+
"default": null,
|
|
8441
|
+
"description": "Reasoning sentences in arrival order; append to stream new ones."
|
|
8442
|
+
},
|
|
8443
|
+
"status": {
|
|
8444
|
+
"type": "\"thinking\" | \"done\"",
|
|
8445
|
+
"default": "thinking",
|
|
8446
|
+
"description": "Thinking keeps the block open and auto-scrolling; done folds it into the summary."
|
|
8447
|
+
},
|
|
8448
|
+
"duration": {
|
|
8449
|
+
"type": "number",
|
|
8450
|
+
"default": "measured",
|
|
8451
|
+
"description": "Seconds shown in the summary; measured from mount when omitted."
|
|
8452
|
+
},
|
|
8453
|
+
"open": {
|
|
8454
|
+
"type": "boolean",
|
|
8455
|
+
"default": "false",
|
|
8456
|
+
"description": "Controls whether the finished reasoning is unfolded."
|
|
8457
|
+
},
|
|
8458
|
+
"reserveSpace": {
|
|
8459
|
+
"type": "boolean",
|
|
8460
|
+
"default": "false",
|
|
8461
|
+
"description": "Keeps the block height stable while folding so content below does not jump."
|
|
8462
|
+
},
|
|
8463
|
+
"labels": {
|
|
8464
|
+
"type": "Partial<ThinkingReasoningLabels>",
|
|
8465
|
+
"default": "English",
|
|
8466
|
+
"description": "Localized thinking, thought, and duration copy; the finished summary also names the toggle."
|
|
8467
|
+
}
|
|
8468
|
+
},
|
|
8469
|
+
"states": [
|
|
8470
|
+
"thinking",
|
|
8471
|
+
"done",
|
|
8472
|
+
"open",
|
|
8473
|
+
"closed"
|
|
8474
|
+
],
|
|
8475
|
+
"rtl": {
|
|
8476
|
+
"inheritsDirection": true,
|
|
8477
|
+
"layout": "Header, chevron, and sentences use logical alignment; the vertical auto-scroll and fades are direction-neutral."
|
|
8478
|
+
},
|
|
8479
|
+
"files": [
|
|
8480
|
+
{
|
|
8481
|
+
"source": "components/thinking-reasoning.css",
|
|
8482
|
+
"target": "{{ui}}/thinking-reasoning.css"
|
|
8483
|
+
},
|
|
8484
|
+
{
|
|
8485
|
+
"source": "components/thinking-reasoning.tsx",
|
|
8486
|
+
"target": "{{ui}}/thinking-reasoning.tsx"
|
|
8487
|
+
}
|
|
8488
|
+
],
|
|
8489
|
+
"examples": [
|
|
8490
|
+
"examples/thinking-reasoning-demo.tsx"
|
|
8491
|
+
],
|
|
8492
|
+
"tokens": [
|
|
8493
|
+
"--bh-content-muted",
|
|
8494
|
+
"--bh-content-subtle",
|
|
8495
|
+
"--bh-duration-fast",
|
|
8496
|
+
"--bh-duration-moderate",
|
|
8497
|
+
"--bh-duration-slow",
|
|
8498
|
+
"--bh-duration-slower",
|
|
8499
|
+
"--bh-easing-emphasized",
|
|
8500
|
+
"--bh-easing-standard",
|
|
8501
|
+
"--bh-font-family",
|
|
8502
|
+
"--bh-icon-stroke-180",
|
|
8503
|
+
"--bh-opacity-0",
|
|
8504
|
+
"--bh-opacity-100",
|
|
8505
|
+
"--bh-radius-sm-4",
|
|
8506
|
+
"--bh-space-sm-6",
|
|
8507
|
+
"--bh-space-xl-12",
|
|
8508
|
+
"--bh-space-xs-4",
|
|
8509
|
+
"--bh-text-body-xs-medium-font-size",
|
|
8510
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
8511
|
+
"--bh-text-body-xs-medium-letter-spacing",
|
|
8512
|
+
"--bh-text-body-xs-medium-line-height",
|
|
8513
|
+
"--bh-text-body-xs-regular-font-size",
|
|
8514
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
8515
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
8516
|
+
"--bh-text-body-xs-regular-line-height",
|
|
8517
|
+
"--bh-thinking-reasoning-fade",
|
|
8518
|
+
"--bh-thinking-reasoning-max-height",
|
|
8519
|
+
"--bh-thinking-reasoning-width",
|
|
8520
|
+
"--elevation-component-focus-ring"
|
|
8521
|
+
]
|
|
8522
|
+
},
|
|
8523
|
+
"streaming-text": {
|
|
8524
|
+
"description": "Token-by-token text with a slim caret that stays solid while streaming and blinks once the response is complete, plus a useTypewriter hook that reveals a finished text locally.",
|
|
8525
|
+
"dependencies": {},
|
|
8526
|
+
"parts": [
|
|
8527
|
+
"StreamingText"
|
|
8528
|
+
],
|
|
8529
|
+
"supportedExports": [
|
|
8530
|
+
{
|
|
8531
|
+
"source": "components/streaming-text.tsx",
|
|
8532
|
+
"values": [
|
|
8533
|
+
"StreamingText",
|
|
8534
|
+
"useTypewriter"
|
|
8535
|
+
]
|
|
8536
|
+
}
|
|
8537
|
+
],
|
|
8538
|
+
"props": {
|
|
8539
|
+
"text": {
|
|
8540
|
+
"type": "string",
|
|
8541
|
+
"default": null,
|
|
8542
|
+
"description": "The text that has arrived so far."
|
|
8543
|
+
},
|
|
8544
|
+
"streaming": {
|
|
8545
|
+
"type": "boolean",
|
|
8546
|
+
"default": "false",
|
|
8547
|
+
"description": "True while more text is on its way; keeps the caret solid and sets aria-busy."
|
|
8548
|
+
},
|
|
8549
|
+
"caret": {
|
|
8550
|
+
"type": "boolean",
|
|
8551
|
+
"default": "true",
|
|
8552
|
+
"description": "Shows the caret after the visible text."
|
|
8553
|
+
},
|
|
8554
|
+
"as": {
|
|
8555
|
+
"type": "\"p\" | \"div\" | \"span\"",
|
|
8556
|
+
"default": "p",
|
|
8557
|
+
"description": "Rendered element; the ref is an HTMLElement for all three."
|
|
8558
|
+
},
|
|
8559
|
+
"speed": {
|
|
8560
|
+
"type": "number",
|
|
8561
|
+
"default": "220",
|
|
8562
|
+
"description": "useTypewriter option: characters revealed per second."
|
|
8563
|
+
}
|
|
8564
|
+
},
|
|
8565
|
+
"states": [
|
|
8566
|
+
"streaming",
|
|
8567
|
+
"complete"
|
|
8568
|
+
],
|
|
8569
|
+
"features": [
|
|
8570
|
+
"caller-driven streaming",
|
|
8571
|
+
"local typewriter reveal",
|
|
8572
|
+
"reduced motion",
|
|
8573
|
+
"RTL"
|
|
8574
|
+
],
|
|
8575
|
+
"rtl": {
|
|
8576
|
+
"inheritsDirection": true,
|
|
8577
|
+
"layout": "The caret follows the text through logical margins, so it trails Arabic text at its end edge."
|
|
8578
|
+
},
|
|
8579
|
+
"files": [
|
|
8580
|
+
{
|
|
8581
|
+
"source": "components/streaming-text.css",
|
|
8582
|
+
"target": "{{ui}}/streaming-text.css"
|
|
8583
|
+
},
|
|
8584
|
+
{
|
|
8585
|
+
"source": "components/streaming-text.tsx",
|
|
8586
|
+
"target": "{{ui}}/streaming-text.tsx"
|
|
8587
|
+
}
|
|
8588
|
+
],
|
|
8589
|
+
"examples": [
|
|
8590
|
+
"examples/streaming-text-demo.tsx"
|
|
8591
|
+
],
|
|
8592
|
+
"tokens": [
|
|
8593
|
+
"--bh-content-default",
|
|
8594
|
+
"--bh-font-family",
|
|
8595
|
+
"--bh-opacity-0",
|
|
8596
|
+
"--bh-opacity-100",
|
|
8597
|
+
"--bh-radius-full",
|
|
8598
|
+
"--bh-space-xxs-2",
|
|
8599
|
+
"--bh-streaming-text-caret-duration",
|
|
8600
|
+
"--bh-streaming-text-caret-width",
|
|
8601
|
+
"--bh-text-body-sm-regular-font-size",
|
|
8602
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
8603
|
+
"--bh-text-body-sm-regular-letter-spacing",
|
|
8604
|
+
"--bh-text-body-sm-regular-line-height"
|
|
8605
|
+
]
|
|
8606
|
+
},
|
|
8607
|
+
"inline-citations": {
|
|
8608
|
+
"description": "Prose composed with superscript citation marks that link to numbered sources and reveal the reference name on hover, plus a compact source list with host and external-link affordance.",
|
|
8609
|
+
"dependencies": {
|
|
8610
|
+
"lucide-react": "^1.17.0"
|
|
8611
|
+
},
|
|
8612
|
+
"registryDependencies": [
|
|
8613
|
+
"tooltip"
|
|
8614
|
+
],
|
|
8615
|
+
"parts": [
|
|
8616
|
+
"InlineCitations",
|
|
8617
|
+
"CitationProse",
|
|
8618
|
+
"CitationMark",
|
|
8619
|
+
"CitationList",
|
|
8620
|
+
"CitationItem"
|
|
8621
|
+
],
|
|
8622
|
+
"supportedExports": [
|
|
8623
|
+
{
|
|
8624
|
+
"source": "components/inline-citations.tsx",
|
|
8625
|
+
"values": [
|
|
8626
|
+
"CitationItem",
|
|
8627
|
+
"CitationList",
|
|
8628
|
+
"CitationMark",
|
|
8629
|
+
"CitationProse",
|
|
8630
|
+
"InlineCitations"
|
|
8631
|
+
]
|
|
8632
|
+
}
|
|
8633
|
+
],
|
|
8634
|
+
"props": {
|
|
8635
|
+
"children": {
|
|
8636
|
+
"type": "React.ReactNode",
|
|
8637
|
+
"default": null,
|
|
8638
|
+
"description": "Cited prose: CitationProse paragraphs with CitationMark markers that find their source by number."
|
|
8639
|
+
},
|
|
8640
|
+
"sources": {
|
|
8641
|
+
"type": "readonly CitationSource[]",
|
|
8642
|
+
"default": null,
|
|
8643
|
+
"description": "Cited sources with label, url, optional host, and optional marker number. Only http and https URLs become links."
|
|
8644
|
+
},
|
|
8645
|
+
"showSources": {
|
|
8646
|
+
"type": "boolean",
|
|
8647
|
+
"default": "true",
|
|
8648
|
+
"description": "Renders the compact source list under the prose when there are sources."
|
|
8649
|
+
},
|
|
8650
|
+
"labels": {
|
|
8651
|
+
"type": "Partial<InlineCitationsLabels>",
|
|
8652
|
+
"default": "English",
|
|
8653
|
+
"description": "Localized accessible names for markers and the source list."
|
|
8654
|
+
}
|
|
8655
|
+
},
|
|
8656
|
+
"rtl": {
|
|
8657
|
+
"inheritsDirection": true,
|
|
8658
|
+
"layout": "Chips and list rows use logical margins and gaps; hosts stay LTR and the external arrow mirrors."
|
|
8659
|
+
},
|
|
8660
|
+
"files": [
|
|
8661
|
+
{
|
|
8662
|
+
"source": "components/inline-citations.css",
|
|
8663
|
+
"target": "{{ui}}/inline-citations.css"
|
|
8664
|
+
},
|
|
8665
|
+
{
|
|
8666
|
+
"source": "components/inline-citations.tsx",
|
|
8667
|
+
"target": "{{ui}}/inline-citations.tsx"
|
|
8668
|
+
}
|
|
8669
|
+
],
|
|
8670
|
+
"examples": [
|
|
8671
|
+
"examples/inline-citations-demo.tsx"
|
|
8672
|
+
],
|
|
8673
|
+
"tokens": [
|
|
8674
|
+
"--bh-border-subtle",
|
|
8675
|
+
"--bh-border-width-default",
|
|
8676
|
+
"--bh-citation-mark-size",
|
|
8677
|
+
"--bh-content-default",
|
|
8678
|
+
"--bh-content-subtle",
|
|
8679
|
+
"--bh-duration-default",
|
|
8680
|
+
"--bh-duration-fast",
|
|
8681
|
+
"--bh-easing-standard",
|
|
8682
|
+
"--bh-font-family",
|
|
8683
|
+
"--bh-icon-stroke-180",
|
|
8684
|
+
"--bh-interactive-soft-default",
|
|
8685
|
+
"--bh-interactive-soft-hover",
|
|
8686
|
+
"--bh-opacity-0",
|
|
8687
|
+
"--bh-opacity-100",
|
|
8688
|
+
"--bh-radius-sm-4",
|
|
8689
|
+
"--bh-space-lg-10",
|
|
8690
|
+
"--bh-space-sm-6",
|
|
8691
|
+
"--bh-space-xl-12",
|
|
8692
|
+
"--bh-space-xxs-2",
|
|
8693
|
+
"--bh-space-xxxs-1",
|
|
8694
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
8695
|
+
"--bh-text-body-2xs-regular-font-weight",
|
|
8696
|
+
"--bh-text-body-2xs-regular-letter-spacing",
|
|
8697
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
8698
|
+
"--bh-text-body-3xs-semibold-font-size",
|
|
8699
|
+
"--bh-text-body-3xs-semibold-font-weight",
|
|
8700
|
+
"--bh-text-body-3xs-semibold-letter-spacing",
|
|
8701
|
+
"--bh-text-body-sm-regular-font-size",
|
|
8702
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
8703
|
+
"--bh-text-body-sm-regular-letter-spacing",
|
|
8704
|
+
"--bh-text-body-sm-regular-line-height",
|
|
8705
|
+
"--elevation-component-focus-ring"
|
|
8706
|
+
]
|
|
8707
|
+
},
|
|
8708
|
+
"rolling-count": {
|
|
8709
|
+
"description": "Tabular figures that roll each changed character into place like an odometer while assistive technology reads the plain value.",
|
|
8710
|
+
"dependencies": {},
|
|
8711
|
+
"parts": [
|
|
8712
|
+
"RollingCount"
|
|
8713
|
+
],
|
|
8714
|
+
"supportedExports": [
|
|
8715
|
+
{
|
|
8716
|
+
"source": "components/rolling-count.tsx",
|
|
8717
|
+
"values": [
|
|
8718
|
+
"RollingCount"
|
|
8719
|
+
]
|
|
8720
|
+
}
|
|
8721
|
+
],
|
|
8722
|
+
"props": {
|
|
8723
|
+
"value": {
|
|
8724
|
+
"type": "string",
|
|
8725
|
+
"default": null,
|
|
8726
|
+
"description": "Text to show; each changed character rolls up or down into place."
|
|
8727
|
+
},
|
|
8728
|
+
"aria-label": {
|
|
8729
|
+
"type": "string",
|
|
8730
|
+
"default": null,
|
|
8731
|
+
"description": "What assistive technology reads instead of the value, for example 2 of 5 done."
|
|
8732
|
+
},
|
|
8733
|
+
"dir": {
|
|
8734
|
+
"type": "\"ltr\" | \"rtl\"",
|
|
8735
|
+
"default": "ltr",
|
|
8736
|
+
"description": "Glyph order. Stays left-to-right by default so values like 2/5 keep their order inside RTL copy."
|
|
8737
|
+
}
|
|
8738
|
+
},
|
|
8739
|
+
"rtl": {
|
|
8740
|
+
"inheritsDirection": false,
|
|
8741
|
+
"layout": "Digits keep left-to-right order inside RTL copy so separators such as 2/5 stay in reading order."
|
|
8742
|
+
},
|
|
8743
|
+
"files": [
|
|
8744
|
+
{
|
|
8745
|
+
"source": "components/rolling-count.css",
|
|
8746
|
+
"target": "{{ui}}/rolling-count.css"
|
|
8747
|
+
},
|
|
8748
|
+
{
|
|
8749
|
+
"source": "components/rolling-count.tsx",
|
|
8750
|
+
"target": "{{ui}}/rolling-count.tsx"
|
|
8751
|
+
}
|
|
8752
|
+
],
|
|
8753
|
+
"examples": [
|
|
8754
|
+
"examples/rolling-count-demo.tsx"
|
|
8755
|
+
],
|
|
8756
|
+
"tokens": [
|
|
8757
|
+
"--bh-duration-slow",
|
|
8758
|
+
"--bh-easing-standard"
|
|
8759
|
+
]
|
|
8760
|
+
},
|
|
8761
|
+
"task-list": {
|
|
8762
|
+
"description": "Collapsible agent progress tracker with pending, active, and done rows, a header icon that moves from list to pie to check, and rolling counters, plus parts that compose static and folded lists.",
|
|
8763
|
+
"dependencies": {
|
|
8764
|
+
"lucide-react": "^1.17.0"
|
|
8765
|
+
},
|
|
8766
|
+
"registryDependencies": [
|
|
8767
|
+
"collapsible",
|
|
8768
|
+
"rolling-count",
|
|
8769
|
+
"shimmer-text"
|
|
8770
|
+
],
|
|
8771
|
+
"parts": [
|
|
8772
|
+
"TaskList",
|
|
8773
|
+
"TaskListRoot",
|
|
8774
|
+
"TaskListHeader",
|
|
8775
|
+
"TaskListItems",
|
|
8776
|
+
"TaskListPreview"
|
|
8777
|
+
],
|
|
8778
|
+
"supportedExports": [
|
|
8779
|
+
{
|
|
8780
|
+
"source": "components/task-list.tsx",
|
|
8781
|
+
"values": [
|
|
8782
|
+
"TaskList",
|
|
8783
|
+
"TaskListHeader",
|
|
8784
|
+
"TaskListItems",
|
|
8785
|
+
"TaskListPreview",
|
|
8786
|
+
"TaskListRoot"
|
|
8787
|
+
]
|
|
8788
|
+
}
|
|
8789
|
+
],
|
|
8790
|
+
"props": {
|
|
8791
|
+
"items": {
|
|
8792
|
+
"type": "readonly TaskListItem[]",
|
|
8793
|
+
"default": null,
|
|
8794
|
+
"description": "Rows with id, label, and pending, active, or done status."
|
|
8795
|
+
},
|
|
8796
|
+
"surface": {
|
|
8797
|
+
"type": "\"card\" | \"well\" | \"plain\"",
|
|
8798
|
+
"default": "card",
|
|
8799
|
+
"description": "Raised card, subtle well for embedding, or no surface."
|
|
8800
|
+
},
|
|
8801
|
+
"labels": {
|
|
8802
|
+
"type": "Partial<TaskListLabels>",
|
|
8803
|
+
"default": "English",
|
|
8804
|
+
"description": "Localized counter copy, read after the title in the toggle's name."
|
|
8805
|
+
},
|
|
8806
|
+
"visibleCount": {
|
|
8807
|
+
"type": "number",
|
|
8808
|
+
"default": "3",
|
|
8809
|
+
"description": "TaskListPreview: rows shown before the rest fold behind a more control."
|
|
8810
|
+
}
|
|
8811
|
+
},
|
|
8812
|
+
"states": [
|
|
8813
|
+
"pending",
|
|
8814
|
+
"active",
|
|
8815
|
+
"done"
|
|
8816
|
+
],
|
|
8817
|
+
"variants": [
|
|
8818
|
+
"card",
|
|
8819
|
+
"well",
|
|
8820
|
+
"plain"
|
|
8821
|
+
],
|
|
8822
|
+
"features": [
|
|
8823
|
+
"controlled state",
|
|
8824
|
+
"uncontrolled state",
|
|
8825
|
+
"composable parts",
|
|
8826
|
+
"preview fold",
|
|
8827
|
+
"reduced motion",
|
|
8828
|
+
"RTL"
|
|
8829
|
+
],
|
|
8830
|
+
"rtl": {
|
|
8831
|
+
"inheritsDirection": true,
|
|
8832
|
+
"layout": "Rows, counters, and the collapse chevron use logical placement; the active arrow icon mirrors."
|
|
8833
|
+
},
|
|
8834
|
+
"files": [
|
|
8835
|
+
{
|
|
8836
|
+
"source": "components/task-list.css",
|
|
8837
|
+
"target": "{{ui}}/task-list.css"
|
|
8838
|
+
},
|
|
8839
|
+
{
|
|
8840
|
+
"source": "components/task-list.tsx",
|
|
8841
|
+
"target": "{{ui}}/task-list.tsx"
|
|
8842
|
+
}
|
|
8843
|
+
],
|
|
8844
|
+
"examples": [
|
|
8845
|
+
"examples/task-list-demo.tsx"
|
|
8846
|
+
],
|
|
8847
|
+
"tokens": [
|
|
8848
|
+
"--bh-bg-raised",
|
|
8849
|
+
"--bh-bg-subtle",
|
|
8850
|
+
"--bh-content-default",
|
|
8851
|
+
"--bh-content-subtle",
|
|
8852
|
+
"--bh-content-success-default",
|
|
8853
|
+
"--bh-duration-default",
|
|
8854
|
+
"--bh-duration-fast",
|
|
8855
|
+
"--bh-duration-moderate",
|
|
8856
|
+
"--bh-duration-slow",
|
|
8857
|
+
"--bh-easing-standard",
|
|
8858
|
+
"--bh-font-family",
|
|
8859
|
+
"--bh-icon-stroke-180",
|
|
8860
|
+
"--bh-icon-stroke-200",
|
|
8861
|
+
"--bh-opacity-0",
|
|
8862
|
+
"--bh-opacity-100",
|
|
8863
|
+
"--bh-radius-2xl-12",
|
|
8864
|
+
"--bh-radius-full",
|
|
8865
|
+
"--bh-radius-lg-8",
|
|
8866
|
+
"--bh-radius-sm-4",
|
|
8867
|
+
"--bh-space-4xl-20",
|
|
8868
|
+
"--bh-space-lg-10",
|
|
8869
|
+
"--bh-space-md-8",
|
|
8870
|
+
"--bh-space-sm-6",
|
|
8871
|
+
"--bh-space-xl-12",
|
|
8872
|
+
"--bh-space-xs-4",
|
|
8873
|
+
"--bh-space-xxs-2",
|
|
8874
|
+
"--bh-space-xxxs-1",
|
|
8875
|
+
"--bh-task-list-icon-size",
|
|
8876
|
+
"--bh-task-list-stagger",
|
|
8877
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
8878
|
+
"--bh-text-body-xs-regular-font-size",
|
|
8879
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
8880
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
8881
|
+
"--bh-text-body-xs-regular-line-height",
|
|
8882
|
+
"--elevation-02",
|
|
8883
|
+
"--elevation-component-focus-ring"
|
|
8884
|
+
]
|
|
8885
|
+
},
|
|
8886
|
+
"agent-input": {
|
|
8887
|
+
"description": "Composable AI prompt field with an auto-growing editor, slash-command skill palette, skill and attachment chips, an add menu for files, skills, and models, prompt enhancement with a sweeping ring, and a send action.",
|
|
8888
|
+
"dependencies": {
|
|
8889
|
+
"lucide-react": "^1.17.0"
|
|
8890
|
+
},
|
|
8891
|
+
"registryDependencies": [
|
|
8892
|
+
"button",
|
|
8893
|
+
"menu",
|
|
8894
|
+
"shimmer-text",
|
|
8895
|
+
"spinner",
|
|
8896
|
+
"tag"
|
|
8897
|
+
],
|
|
8898
|
+
"parts": [
|
|
8899
|
+
"AgentInput"
|
|
8900
|
+
],
|
|
8901
|
+
"supportedExports": [
|
|
8902
|
+
{
|
|
8903
|
+
"source": "components/agent-input.tsx",
|
|
8904
|
+
"values": [
|
|
8905
|
+
"AgentInput"
|
|
8906
|
+
]
|
|
8907
|
+
}
|
|
8908
|
+
],
|
|
8909
|
+
"props": {
|
|
8910
|
+
"value": {
|
|
8911
|
+
"type": "string",
|
|
8912
|
+
"default": null,
|
|
8913
|
+
"description": "Controlled prompt text; use defaultValue for uncontrolled usage."
|
|
8914
|
+
},
|
|
8915
|
+
"onSend": {
|
|
8916
|
+
"type": "(payload: AgentInputPayload) => void",
|
|
8917
|
+
"default": null,
|
|
8918
|
+
"description": "Receives text, attachments, skills, and the selected model; picked attachments carry their File for upload."
|
|
8919
|
+
},
|
|
8920
|
+
"onEnhance": {
|
|
8921
|
+
"type": "(prompt: string, signal: AbortSignal) => Promise<string>",
|
|
8922
|
+
"default": null,
|
|
8923
|
+
"description": "Enables the Enhance Prompt action; resolves to the rewritten prompt."
|
|
8924
|
+
},
|
|
8925
|
+
"models": {
|
|
8926
|
+
"type": "readonly AgentInputModel[]",
|
|
8927
|
+
"default": "[]",
|
|
8928
|
+
"description": "Selectable models with name, description, meta, and icon."
|
|
8929
|
+
},
|
|
8930
|
+
"skills": {
|
|
8931
|
+
"type": "readonly AgentInputSkill[]",
|
|
8932
|
+
"default": "[]",
|
|
8933
|
+
"description": "Skills available from the add menu and the slash palette."
|
|
8934
|
+
},
|
|
8935
|
+
"attachments": {
|
|
8936
|
+
"type": "readonly AgentInputAttachment[]",
|
|
8937
|
+
"default": null,
|
|
8938
|
+
"description": "Controlled attachment chips; omit to let the field own picked files."
|
|
8939
|
+
},
|
|
8940
|
+
"onAttachmentsChange": {
|
|
8941
|
+
"type": "(attachments: AgentInputAttachment[]) => void",
|
|
8942
|
+
"default": null,
|
|
8943
|
+
"description": "Called when chips are added or removed; picked files arrive with their File, so uploads can start right away."
|
|
8944
|
+
},
|
|
8945
|
+
"labels": {
|
|
8946
|
+
"type": "Partial<AgentInputLabels>",
|
|
8947
|
+
"default": "English",
|
|
8948
|
+
"description": "Localized placeholder, menu, action, and remove copy."
|
|
8949
|
+
}
|
|
8950
|
+
},
|
|
8951
|
+
"states": [
|
|
8952
|
+
"idle",
|
|
8953
|
+
"enhancing",
|
|
8954
|
+
"enhanced"
|
|
8955
|
+
],
|
|
8956
|
+
"rtl": {
|
|
8957
|
+
"inheritsDirection": true,
|
|
8958
|
+
"layout": "The editor, chips, palette, and action row use logical spacing; the add menu and slash palette open toward the logical start."
|
|
8959
|
+
},
|
|
8960
|
+
"files": [
|
|
8961
|
+
{
|
|
8962
|
+
"source": "components/agent-input.css",
|
|
8963
|
+
"target": "{{ui}}/agent-input.css"
|
|
8964
|
+
},
|
|
8965
|
+
{
|
|
8966
|
+
"source": "components/agent-input.tsx",
|
|
8967
|
+
"target": "{{ui}}/agent-input.tsx"
|
|
8968
|
+
},
|
|
8969
|
+
{
|
|
8970
|
+
"source": "components/agent-input-parts.tsx",
|
|
8971
|
+
"target": "{{ui}}/agent-input-parts.tsx",
|
|
8972
|
+
"internal": true
|
|
8973
|
+
},
|
|
8974
|
+
{
|
|
8975
|
+
"source": "components/agent-input-state.ts",
|
|
8976
|
+
"target": "{{ui}}/agent-input-state.ts",
|
|
8977
|
+
"internal": true
|
|
8978
|
+
}
|
|
8979
|
+
],
|
|
8980
|
+
"examples": [
|
|
8981
|
+
"examples/agent-input-demo.tsx"
|
|
8982
|
+
],
|
|
8983
|
+
"tokens": [
|
|
8984
|
+
"--bh-agent-input-field-max-height",
|
|
8985
|
+
"--bh-agent-input-palette-width",
|
|
8986
|
+
"--bh-agent-input-ring-duration",
|
|
8987
|
+
"--bh-agent-input-ring-width",
|
|
8988
|
+
"--bh-bg-raised",
|
|
8989
|
+
"--bh-button-xs-height",
|
|
8990
|
+
"--bh-content-accent-aqua-default",
|
|
8991
|
+
"--bh-content-accent-blue-default",
|
|
8992
|
+
"--bh-content-accent-fuchsia-default",
|
|
8993
|
+
"--bh-content-accent-purple-default",
|
|
8994
|
+
"--bh-content-default",
|
|
8995
|
+
"--bh-content-disabled",
|
|
8996
|
+
"--bh-content-muted",
|
|
8997
|
+
"--bh-content-subtle",
|
|
8998
|
+
"--bh-duration-default",
|
|
8999
|
+
"--bh-duration-moderate",
|
|
9000
|
+
"--bh-easing-emphasized",
|
|
9001
|
+
"--bh-font-family",
|
|
9002
|
+
"--bh-menu-bg",
|
|
9003
|
+
"--bh-menu-item-hover-bg",
|
|
9004
|
+
"--bh-menu-item-radius",
|
|
9005
|
+
"--bh-menu-radius",
|
|
9006
|
+
"--bh-opacity-0",
|
|
9007
|
+
"--bh-opacity-100",
|
|
9008
|
+
"--bh-radius-2xl-12",
|
|
9009
|
+
"--bh-space-2xl-14",
|
|
9010
|
+
"--bh-space-6xl-32",
|
|
9011
|
+
"--bh-space-lg-10",
|
|
9012
|
+
"--bh-space-md-8",
|
|
9013
|
+
"--bh-space-sm-6",
|
|
9014
|
+
"--bh-space-xl-12",
|
|
9015
|
+
"--bh-space-xs-4",
|
|
9016
|
+
"--bh-space-xxs-2",
|
|
9017
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
9018
|
+
"--bh-text-body-2xs-regular-font-weight",
|
|
9019
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
9020
|
+
"--bh-text-body-sm-regular-font-size",
|
|
9021
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
9022
|
+
"--bh-text-body-sm-regular-letter-spacing",
|
|
9023
|
+
"--bh-text-body-sm-regular-line-height",
|
|
9024
|
+
"--bh-text-body-xs-regular-font-size",
|
|
9025
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
9026
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
9027
|
+
"--bh-text-body-xs-regular-line-height",
|
|
9028
|
+
"--bh-z-popover",
|
|
9029
|
+
"--elevation-02",
|
|
9030
|
+
"--elevation-menu"
|
|
9031
|
+
]
|
|
9032
|
+
},
|
|
9033
|
+
"approval-card": {
|
|
9034
|
+
"description": "Human-in-the-loop decision cards that pause the agent: ApprovalQuestions for up to a few questions, ApprovalCommand to approve a shell command, and ApprovalPlan to green-light a short plan with an optional auto-approve countdown, all built on the ApprovalFrame shell for custom decisions.",
|
|
9035
|
+
"dependencies": {
|
|
9036
|
+
"lucide-react": "^1.17.0"
|
|
9037
|
+
},
|
|
9038
|
+
"registryDependencies": [
|
|
9039
|
+
"button",
|
|
9040
|
+
"kbd",
|
|
9041
|
+
"rolling-count",
|
|
9042
|
+
"task-list",
|
|
9043
|
+
"tooltip"
|
|
9044
|
+
],
|
|
9045
|
+
"parts": [
|
|
9046
|
+
"ApprovalQuestions",
|
|
9047
|
+
"ApprovalCommand",
|
|
9048
|
+
"ApprovalPlan",
|
|
9049
|
+
"ApprovalFrame"
|
|
9050
|
+
],
|
|
9051
|
+
"supportedExports": [
|
|
9052
|
+
{
|
|
9053
|
+
"source": "components/approval-card.tsx",
|
|
9054
|
+
"values": [
|
|
9055
|
+
"ApprovalCommand",
|
|
9056
|
+
"ApprovalFrame",
|
|
9057
|
+
"ApprovalPlan",
|
|
9058
|
+
"ApprovalQuestions"
|
|
9059
|
+
]
|
|
9060
|
+
}
|
|
9061
|
+
],
|
|
9062
|
+
"props": {
|
|
9063
|
+
"questions": {
|
|
9064
|
+
"type": "readonly ApprovalQuestion[]",
|
|
9065
|
+
"default": null,
|
|
9066
|
+
"description": "ApprovalQuestions: single-choice questions, each with a free-text Something else option."
|
|
9067
|
+
},
|
|
9068
|
+
"command": {
|
|
9069
|
+
"type": "string",
|
|
9070
|
+
"default": null,
|
|
9071
|
+
"description": "ApprovalCommand: shell command shown in the mono block."
|
|
9072
|
+
},
|
|
9073
|
+
"cwd": {
|
|
9074
|
+
"type": "string",
|
|
9075
|
+
"default": null,
|
|
9076
|
+
"description": "ApprovalCommand: working directory shown above the command."
|
|
9077
|
+
},
|
|
9078
|
+
"plan": {
|
|
9079
|
+
"type": "readonly ApprovalPlanStep[]",
|
|
9080
|
+
"default": null,
|
|
9081
|
+
"description": "ApprovalPlan: steps with an id and a title, rendered as a pending to-do list. Step details belong in the full plan."
|
|
9082
|
+
},
|
|
9083
|
+
"planPreviewCount": {
|
|
9084
|
+
"type": "number",
|
|
9085
|
+
"default": "3",
|
|
9086
|
+
"description": "ApprovalPlan: steps shown before the more fold."
|
|
9087
|
+
},
|
|
9088
|
+
"autoApproveSeconds": {
|
|
9089
|
+
"type": "number",
|
|
9090
|
+
"default": "0",
|
|
9091
|
+
"description": "ApprovalPlan: opt-in countdown; at zero onApprove fires with source timeout. Either action cancels it. A new value restarts it."
|
|
9092
|
+
},
|
|
9093
|
+
"icon": {
|
|
9094
|
+
"type": "React.ReactNode",
|
|
9095
|
+
"default": null,
|
|
9096
|
+
"description": "ApprovalFrame: header glyph, sized and stroked by the tinted icon tile."
|
|
9097
|
+
},
|
|
9098
|
+
"tone": {
|
|
9099
|
+
"type": "\"info\" | \"warning\" | \"success\"",
|
|
9100
|
+
"default": null,
|
|
9101
|
+
"description": "ApprovalFrame: tint of the icon tile. Questions use info, commands warning, and plans success."
|
|
9102
|
+
},
|
|
9103
|
+
"onApprove": {
|
|
9104
|
+
"type": "callback",
|
|
9105
|
+
"default": null,
|
|
9106
|
+
"description": "Primary action. ApprovalQuestions passes { answers }, ApprovalPlan passes { source: user | timeout }, and ApprovalCommand passes nothing."
|
|
9107
|
+
},
|
|
9108
|
+
"onReject": {
|
|
9109
|
+
"type": "() => void",
|
|
9110
|
+
"default": null,
|
|
9111
|
+
"description": "Skip action on ApprovalQuestions and ApprovalCommand."
|
|
9112
|
+
},
|
|
9113
|
+
"onViewPlan": {
|
|
9114
|
+
"type": "() => void",
|
|
9115
|
+
"default": null,
|
|
9116
|
+
"description": "ApprovalPlan secondary action that opens the full plan; it also stops the countdown."
|
|
9117
|
+
},
|
|
9118
|
+
"labels": {
|
|
9119
|
+
"type": "Partial<ApprovalQuestionsLabels> | Partial<ApprovalPlanLabels>",
|
|
9120
|
+
"default": "English",
|
|
9121
|
+
"description": "Localized navigation, countdown, and helper copy for the card that uses them."
|
|
9122
|
+
}
|
|
9123
|
+
},
|
|
9124
|
+
"rtl": {
|
|
9125
|
+
"inheritsDirection": true,
|
|
9126
|
+
"layout": "Header, options, and actions use logical alignment; the command block and paths stay LTR while the submit arrow mirrors."
|
|
9127
|
+
},
|
|
9128
|
+
"files": [
|
|
9129
|
+
{
|
|
9130
|
+
"source": "components/approval-card.css",
|
|
9131
|
+
"target": "{{ui}}/approval-card.css"
|
|
9132
|
+
},
|
|
9133
|
+
{
|
|
9134
|
+
"source": "components/approval-card.tsx",
|
|
9135
|
+
"target": "{{ui}}/approval-card.tsx"
|
|
9136
|
+
},
|
|
9137
|
+
{
|
|
9138
|
+
"source": "components/approval-frame.tsx",
|
|
9139
|
+
"target": "{{ui}}/approval-frame.tsx",
|
|
9140
|
+
"internal": true
|
|
9141
|
+
},
|
|
9142
|
+
{
|
|
9143
|
+
"source": "components/approval-questions.tsx",
|
|
9144
|
+
"target": "{{ui}}/approval-questions.tsx",
|
|
9145
|
+
"internal": true
|
|
9146
|
+
}
|
|
9147
|
+
],
|
|
9148
|
+
"examples": [
|
|
9149
|
+
"examples/approval-card-demo.tsx"
|
|
9150
|
+
],
|
|
9151
|
+
"tokens": [
|
|
9152
|
+
"--bh-bg-info-subtle",
|
|
9153
|
+
"--bh-bg-inverse",
|
|
9154
|
+
"--bh-bg-raised",
|
|
9155
|
+
"--bh-bg-subtle",
|
|
9156
|
+
"--bh-bg-success-subtle",
|
|
9157
|
+
"--bh-bg-warning-subtle",
|
|
9158
|
+
"--bh-border-subtle",
|
|
9159
|
+
"--bh-border-success-subtle",
|
|
9160
|
+
"--bh-border-width-default",
|
|
9161
|
+
"--bh-content-default",
|
|
9162
|
+
"--bh-content-information-default",
|
|
9163
|
+
"--bh-content-inverse",
|
|
9164
|
+
"--bh-content-muted",
|
|
9165
|
+
"--bh-content-subtle",
|
|
9166
|
+
"--bh-content-success-default",
|
|
9167
|
+
"--bh-content-warning-default",
|
|
9168
|
+
"--bh-duration-default",
|
|
9169
|
+
"--bh-duration-fast",
|
|
9170
|
+
"--bh-duration-moderate",
|
|
9171
|
+
"--bh-duration-slow",
|
|
9172
|
+
"--bh-easing-emphasized",
|
|
9173
|
+
"--bh-easing-standard",
|
|
9174
|
+
"--bh-font-family",
|
|
9175
|
+
"--bh-font-family-mono",
|
|
9176
|
+
"--bh-icon-stroke-180",
|
|
9177
|
+
"--bh-icon-stroke-200",
|
|
9178
|
+
"--bh-icon-stroke-250",
|
|
9179
|
+
"--bh-opacity-0",
|
|
9180
|
+
"--bh-opacity-100",
|
|
9181
|
+
"--bh-radius-2xl-12",
|
|
9182
|
+
"--bh-radius-full",
|
|
9183
|
+
"--bh-radius-lg-8",
|
|
9184
|
+
"--bh-radius-md-6",
|
|
9185
|
+
"--bh-space-2xl-14",
|
|
9186
|
+
"--bh-space-3xl-16",
|
|
9187
|
+
"--bh-space-5xl-24",
|
|
9188
|
+
"--bh-space-6xl-32",
|
|
9189
|
+
"--bh-space-lg-10",
|
|
9190
|
+
"--bh-space-md-8",
|
|
9191
|
+
"--bh-space-sm-6",
|
|
9192
|
+
"--bh-space-xl-12",
|
|
9193
|
+
"--bh-space-xs-4",
|
|
9194
|
+
"--bh-space-xxs-2",
|
|
9195
|
+
"--bh-space-xxxs-1",
|
|
9196
|
+
"--bh-text-body-2xs-medium-font-size",
|
|
9197
|
+
"--bh-text-body-2xs-medium-font-weight",
|
|
9198
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
9199
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
9200
|
+
"--bh-text-body-3xs-regular-font-size",
|
|
9201
|
+
"--bh-text-body-3xs-regular-line-height",
|
|
9202
|
+
"--bh-text-body-md-medium-font-size",
|
|
9203
|
+
"--bh-text-body-md-medium-font-weight",
|
|
9204
|
+
"--bh-text-body-md-medium-letter-spacing",
|
|
9205
|
+
"--bh-text-body-md-medium-line-height",
|
|
9206
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
9207
|
+
"--bh-text-body-xs-regular-font-size",
|
|
9208
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
9209
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
9210
|
+
"--bh-text-body-xs-regular-line-height",
|
|
9211
|
+
"--elevation-02",
|
|
9212
|
+
"--elevation-component-focus-ring"
|
|
7595
9213
|
]
|
|
7596
9214
|
}
|
|
7597
9215
|
}
|