banhaten 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +139 -100
- package/CONTRIBUTING.md +46 -44
- package/README.md +192 -190
- package/SECURITY.md +15 -15
- package/banhaten.config.example.json +11 -11
- package/docs/design-spacing.md +13 -0
- package/docs/design-system/README.md +22 -20
- package/docs/design-system/adoption-quality-remediation.md +87 -87
- package/docs/design-system/agent-usage.md +13 -13
- package/docs/design-system/appearance-presets.md +189 -189
- package/docs/design-system/appearances/default.md +94 -94
- package/docs/design-system/appearances/rounded.md +95 -95
- package/docs/design-system/appearances/sharp.md +95 -95
- package/docs/design-system/component-docs-pattern.md +81 -81
- package/docs/design-system/component-implementation-ownership-audit.md +245 -245
- package/docs/design-system/component-quality-audit-2026-08-20.md +225 -225
- package/docs/design-system/component-showcase-consistency-report.md +219 -219
- package/docs/design-system/component-token-consistency-audit.md +173 -173
- package/docs/design-system/components/README.md +90 -76
- package/docs/design-system/components/accordion.md +53 -53
- package/docs/design-system/components/activity-feed.md +94 -94
- package/docs/design-system/components/activity-heatmap.md +57 -57
- package/docs/design-system/components/agent-input.md +85 -0
- package/docs/design-system/components/alert-dialog.md +72 -72
- package/docs/design-system/components/alert.md +97 -97
- package/docs/design-system/components/approval-card.md +134 -0
- package/docs/design-system/components/aspect-ratio.md +45 -45
- package/docs/design-system/components/attribute.md +88 -88
- package/docs/design-system/components/autocomplete.md +75 -75
- package/docs/design-system/components/avatar.md +54 -54
- package/docs/design-system/components/badge.md +54 -54
- package/docs/design-system/components/banner.md +87 -87
- package/docs/design-system/components/breadcrumbs.md +176 -175
- package/docs/design-system/components/button-group.md +98 -98
- package/docs/design-system/components/button.md +83 -80
- package/docs/design-system/components/card.md +88 -88
- package/docs/design-system/components/carousel.md +46 -46
- package/docs/design-system/components/catalog-components.md +47 -47
- package/docs/design-system/components/chart.md +95 -24
- package/docs/design-system/components/checkbox.md +54 -54
- package/docs/design-system/components/collapsible.md +67 -53
- package/docs/design-system/components/command.md +62 -62
- package/docs/design-system/components/context-menu.md +46 -46
- package/docs/design-system/components/date-picker.md +81 -81
- package/docs/design-system/components/divider.md +102 -102
- package/docs/design-system/components/empty-state.md +56 -56
- package/docs/design-system/components/field.md +70 -70
- package/docs/design-system/components/file-upload.md +187 -187
- package/docs/design-system/components/hover-card.md +48 -48
- package/docs/design-system/components/icons.md +48 -48
- package/docs/design-system/components/inline-citations.md +93 -0
- package/docs/design-system/components/input-group.md +58 -58
- package/docs/design-system/components/input-otp.md +56 -56
- package/docs/design-system/components/input.md +114 -60
- package/docs/design-system/components/item.md +59 -59
- package/docs/design-system/components/kbd.md +51 -49
- package/docs/design-system/components/label.md +49 -49
- package/docs/design-system/components/menu.md +71 -61
- package/docs/design-system/components/menubar.md +47 -47
- package/docs/design-system/components/modal.md +105 -105
- package/docs/design-system/components/native-select.md +54 -54
- package/docs/design-system/components/navigation-menu.md +50 -50
- package/docs/design-system/components/onboarding-step-list-item.md +82 -82
- package/docs/design-system/components/page-header.md +93 -86
- package/docs/design-system/components/pagination.md +57 -57
- package/docs/design-system/components/popover.md +60 -60
- package/docs/design-system/components/progress-slider.md +50 -50
- package/docs/design-system/components/progress.md +76 -76
- package/docs/design-system/components/radio-card.md +51 -51
- package/docs/design-system/components/radio-group.md +57 -57
- package/docs/design-system/components/resizable.md +44 -44
- package/docs/design-system/components/rolling-count.md +61 -0
- package/docs/design-system/components/scroll-area.md +51 -51
- package/docs/design-system/components/segmented-control.md +54 -54
- package/docs/design-system/components/select.md +68 -62
- package/docs/design-system/components/sheet.md +67 -67
- package/docs/design-system/components/shimmer-text.md +67 -0
- package/docs/design-system/components/sidebar.md +110 -99
- package/docs/design-system/components/skeleton.md +75 -75
- package/docs/design-system/components/slideout.md +65 -65
- package/docs/design-system/components/slider.md +63 -63
- package/docs/design-system/components/social-button.md +50 -50
- package/docs/design-system/components/spinner.md +62 -62
- package/docs/design-system/components/steps.md +65 -65
- package/docs/design-system/components/streaming-text.md +82 -0
- package/docs/design-system/components/table.md +419 -414
- package/docs/design-system/components/tabs.md +59 -55
- package/docs/design-system/components/tag.md +80 -80
- package/docs/design-system/components/task-list.md +95 -0
- package/docs/design-system/components/textarea.md +50 -50
- 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 +83 -83
- package/docs/design-system/components/toast.md +58 -58
- package/docs/design-system/components/toggle.md +81 -81
- package/docs/design-system/components/toolbar.md +92 -87
- package/docs/design-system/components/tooltip.md +94 -92
- package/docs/design-system/components/typography.md +18 -18
- package/docs/design-system/density-and-elevation.md +65 -65
- package/docs/design-system/design-system-test-missing-items.md +368 -368
- package/docs/design-system/direction-and-localization.md +23 -23
- package/docs/design-system/form-recipes.md +73 -73
- package/docs/design-system/gap-promotion-policy.md +21 -21
- package/docs/design-system/icons.md +74 -74
- package/docs/design-system/installation.md +70 -68
- package/docs/design-system/launch-comparison-shadcn.md +98 -98
- package/docs/design-system/registry-and-cli.md +64 -64
- package/docs/design-system/release-policy.md +30 -30
- package/docs/design-system/roadmap.md +14 -14
- package/docs/design-system/support-matrix.md +23 -23
- package/docs/design-system/tabs.md +54 -53
- 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 +72 -59
- package/package.json +98 -98
- package/registry/component-contract.json +40 -40
- package/registry/components/accordion.tsx +155 -155
- 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 +297 -297
- package/registry/components/alert.tsx +293 -293
- 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/aspect-ratio.tsx +30 -30
- package/registry/components/attribute.tsx +454 -454
- package/registry/components/autocomplete.tsx +598 -651
- package/registry/components/avatar.tsx +385 -385
- package/registry/components/badge.tsx +629 -629
- package/registry/components/button-group.tsx +565 -565
- package/registry/components/button.tsx +127 -123
- package/registry/components/card.tsx +638 -638
- package/registry/components/carousel.tsx +296 -296
- 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 +203 -203
- package/registry/components/checkbox.tsx +247 -247
- package/registry/components/collapsible.tsx +109 -69
- package/registry/components/command.tsx +208 -208
- package/registry/components/context-menu.tsx +236 -236
- package/registry/components/data-chart.tsx +40 -0
- package/registry/components/date-picker.tsx +1289 -1289
- 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/ActivityFeed.tsx +227 -227
- package/registry/components/expanded/ActivityHeatmap.tsx +64 -64
- package/registry/components/expanded/Banner.tsx +179 -179
- package/registry/components/expanded/Breadcrumbs.tsx +131 -131
- package/registry/components/expanded/CatalogComponentsShowcase.tsx +205 -205
- package/registry/components/expanded/CatalogDivider.tsx +49 -49
- package/registry/components/expanded/EmptyState.tsx +155 -155
- package/registry/components/expanded/FileUpload.tsx +543 -543
- package/registry/components/expanded/OnboardingStepListItem.tsx +60 -60
- package/registry/components/expanded/PageHeader.tsx +179 -166
- package/registry/components/expanded/Slideout.tsx +108 -108
- package/registry/components/expanded/Steps.tsx +402 -402
- package/registry/components/expanded/Table.tsx +1092 -1071
- package/registry/components/expanded/Timeline.tsx +203 -203
- package/registry/components/expanded/activityFeed.css +248 -248
- package/registry/components/expanded/activityHeatmap.css +66 -66
- package/registry/components/expanded/banner.css +260 -260
- package/registry/components/expanded/breadcrumbs.css +140 -140
- package/registry/components/expanded/catalogComponentsShowcase.css +87 -87
- package/registry/components/expanded/divider.css +75 -75
- package/registry/components/expanded/emptyState.css +111 -111
- package/registry/components/expanded/fileUpload.css +457 -457
- package/registry/components/expanded/onboardingStepListItem.css +135 -135
- package/registry/components/expanded/pageHeader.css +248 -290
- package/registry/components/expanded/slideout.css +276 -276
- package/registry/components/expanded/steps.css +356 -356
- package/registry/components/expanded/table.css +606 -606
- package/registry/components/expanded/timeline.css +286 -286
- package/registry/components/field.tsx +283 -283
- package/registry/components/hover-card.tsx +48 -48
- package/registry/components/inline-citations.css +126 -0
- package/registry/components/inline-citations.tsx +292 -0
- package/registry/components/input-content.ts +107 -107
- package/registry/components/input-group.tsx +130 -130
- package/registry/components/input-otp.tsx +584 -584
- package/registry/components/input.tsx +990 -979
- package/registry/components/item.tsx +189 -189
- package/registry/components/kbd.tsx +246 -245
- package/registry/components/label.tsx +78 -78
- package/registry/components/menu.tsx +978 -986
- package/registry/components/menubar.tsx +226 -226
- package/registry/components/modal.tsx +872 -872
- package/registry/components/native-select.tsx +205 -205
- package/registry/components/navigation-menu.tsx +171 -171
- package/registry/components/pagination.css +36 -36
- package/registry/components/pagination.tsx +560 -560
- package/registry/components/popover.tsx +338 -338
- package/registry/components/progress-slider.tsx +216 -216
- package/registry/components/radio-card.tsx +676 -676
- package/registry/components/radio-group.tsx +570 -570
- package/registry/components/resizable.tsx +108 -108
- package/registry/components/rolling-count.css +37 -0
- package/registry/components/rolling-count.tsx +110 -0
- package/registry/components/scroll-area.tsx +91 -91
- package/registry/components/segmented-control.tsx +87 -87
- package/registry/components/select-content.tsx +218 -218
- package/registry/components/select.tsx +937 -932
- package/registry/components/sheet.tsx +305 -305
- package/registry/components/shimmer-text.css +69 -0
- package/registry/components/shimmer-text.tsx +43 -0
- package/registry/components/sidebar.tsx +1433 -1230
- package/registry/components/skeleton.css +54 -54
- package/registry/components/skeleton.tsx +482 -482
- package/registry/components/slider.tsx +380 -380
- package/registry/components/social-button.tsx +387 -387
- package/registry/components/spinner.tsx +78 -78
- package/registry/components/streaming-text.css +45 -0
- package/registry/components/streaming-text.tsx +165 -0
- package/registry/components/table-elements.tsx +128 -128
- package/registry/components/tabs.css +222 -218
- package/registry/components/tabs.tsx +241 -241
- package/registry/components/tag.tsx +423 -423
- package/registry/components/task-list.css +328 -0
- package/registry/components/task-list.tsx +429 -0
- package/registry/components/textarea.tsx +610 -610
- 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 +136 -136
- package/registry/components/toggle.tsx +256 -256
- package/registry/components/toolbar.tsx +539 -539
- package/registry/components/tooltip.tsx +433 -431
- package/registry/examples/agent-input-demo.tsx +90 -0
- package/registry/examples/alert-demo.tsx +34 -34
- package/registry/examples/alert-dialog-demo.tsx +42 -42
- package/registry/examples/approval-card-demo.tsx +83 -0
- package/registry/examples/aspect-ratio-demo.tsx +11 -11
- package/registry/examples/attribute-demo.tsx +65 -65
- package/registry/examples/autocomplete-demo.tsx +109 -109
- package/registry/examples/avatar-demo.tsx +132 -132
- package/registry/examples/badge-demo.tsx +69 -69
- package/registry/examples/button-demo.tsx +86 -83
- package/registry/examples/button-group-demo.tsx +63 -63
- package/registry/examples/card-demo.tsx +86 -86
- package/registry/examples/carousel-demo.tsx +43 -43
- package/registry/examples/chart-block-demo.tsx +5 -0
- package/registry/examples/chart-demo.tsx +18 -33
- package/registry/examples/checkbox-demo.tsx +62 -62
- package/registry/examples/collapsible-demo.tsx +16 -16
- package/registry/examples/collection-filter-bar-demo.tsx +135 -135
- package/registry/examples/command-demo.tsx +42 -42
- package/registry/examples/command-palette-demo.tsx +235 -235
- package/registry/examples/context-menu-demo.tsx +29 -29
- package/registry/examples/control-density-contract-demo.tsx +65 -61
- package/registry/examples/date-picker-demo.tsx +127 -127
- package/registry/examples/divider-demo.tsx +17 -17
- package/registry/examples/expanded/activity-heatmap-demo.tsx +29 -29
- package/registry/examples/expanded/banner-demo.tsx +48 -48
- package/registry/examples/expanded/breadcrumbs-demo.tsx +59 -59
- package/registry/examples/expanded/empty-state-demo.tsx +39 -39
- package/registry/examples/expanded/file-upload-demo.tsx +60 -60
- package/registry/examples/expanded/onboarding-step-demo.tsx +11 -11
- package/registry/examples/expanded/slideout-demo.tsx +15 -15
- package/registry/examples/expanded/steps-demo.tsx +29 -29
- package/registry/examples/expanded/tabs-demo.tsx +13 -13
- package/registry/examples/expanded/timeline-demo.tsx +18 -18
- package/registry/examples/field-demo.tsx +51 -51
- package/registry/examples/hover-card-demo.tsx +23 -23
- package/registry/examples/inline-citations-demo.tsx +31 -0
- package/registry/examples/input-actions-demo.tsx +36 -0
- package/registry/examples/input-demo.tsx +87 -87
- package/registry/examples/input-group-demo.tsx +16 -16
- package/registry/examples/input-otp-demo.tsx +72 -72
- package/registry/examples/item-demo.tsx +46 -46
- package/registry/examples/kbd-demo.tsx +12 -12
- package/registry/examples/label-demo.tsx +20 -20
- package/registry/examples/menu-demo.tsx +122 -122
- package/registry/examples/menubar-demo.tsx +34 -34
- package/registry/examples/modal-demo.tsx +74 -74
- package/registry/examples/native-select-demo.tsx +16 -16
- package/registry/examples/navigation-menu-demo.tsx +29 -29
- package/registry/examples/pagination-demo.tsx +20 -20
- package/registry/examples/popover-demo.tsx +547 -546
- package/registry/examples/progress-demo.tsx +37 -37
- package/registry/examples/progress-slider-demo.tsx +29 -29
- package/registry/examples/radio-card-demo.tsx +51 -51
- package/registry/examples/radio-group-demo.tsx +62 -62
- package/registry/examples/resizable-demo.tsx +22 -22
- package/registry/examples/results-toolbar-demo.tsx +44 -44
- package/registry/examples/rolling-count-demo.tsx +39 -0
- package/registry/examples/scroll-area-demo.tsx +15 -15
- package/registry/examples/segmented-control-demo.tsx +39 -39
- package/registry/examples/select-demo.tsx +87 -87
- package/registry/examples/sheet-demo.tsx +47 -47
- package/registry/examples/shimmer-text-demo.tsx +20 -0
- package/registry/examples/sidebar-demo.tsx +101 -101
- package/registry/examples/slider-demo.tsx +31 -31
- package/registry/examples/social-button-demo.tsx +61 -61
- package/registry/examples/spinner-demo.tsx +59 -59
- package/registry/examples/streaming-text-demo.tsx +28 -0
- package/registry/examples/tabs-demo.tsx +13 -13
- package/registry/examples/tag-demo.tsx +29 -29
- package/registry/examples/task-list-demo.tsx +74 -0
- package/registry/examples/textarea-demo.tsx +79 -79
- package/registry/examples/thinking-reasoning-demo.tsx +74 -0
- package/registry/examples/thinking-state-demo.tsx +13 -0
- package/registry/examples/toast-demo.tsx +35 -35
- package/registry/examples/toggle-demo.tsx +59 -59
- package/registry/examples/tooltip-demo.tsx +115 -115
- package/registry/guidance/USAGE.md +27 -27
- package/registry/guidance/charts.LICENSE.txt +24 -0
- package/registry/hooks/use-controllable-state.ts +33 -0
- package/registry/hooks/use-direction.ts +207 -207
- 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 +1403 -155
- package/registry/styles/globals.css +946 -1088
- package/registry.json +361 -8
- package/schema/config.schema.json +51 -51
- package/schema/registry.schema.json +194 -190
- package/schema/tokens.schema.json +167 -163
- package/src/cli/command-line.js +194 -194
- package/src/cli/config-editors.js +9 -9
- package/src/cli/doctor.js +399 -399
- package/src/cli/file-transaction.js +302 -295
- package/src/cli/global-css.js +153 -153
- package/src/cli/index.js +1002 -1009
- package/src/cli/install-plan.js +592 -592
- package/src/cli/install-receipt.js +171 -171
- package/src/cli/jsonc.js +203 -203
- package/src/cli/package-install-state.js +254 -254
- package/src/cli/package-manager.js +238 -238
- package/src/cli/package-plan.js +185 -185
- package/src/cli/package-version.js +97 -97
- package/src/cli/registry-query.js +207 -207
- package/src/cli/reporting.js +55 -55
- package/src/cli/schema-validation.js +19 -19
- package/src/cli/source-scanner.js +686 -686
- package/src/cli/vite-config.js +478 -478
- package/tokens/banhaten.tokens.json +306 -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": {
|
|
@@ -608,7 +624,7 @@
|
|
|
608
624
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
609
625
|
"--bh-text-body-xs-medium-line-height",
|
|
610
626
|
"--bh-z-raised",
|
|
611
|
-
"--
|
|
627
|
+
"--elevation-button-focus"
|
|
612
628
|
]
|
|
613
629
|
},
|
|
614
630
|
"attribute": {
|
|
@@ -727,6 +743,11 @@
|
|
|
727
743
|
}
|
|
728
744
|
],
|
|
729
745
|
"props": {
|
|
746
|
+
"variant": {
|
|
747
|
+
"type": "\"default\" | \"secondary\" | \"soft\" | \"outline\" | \"ghost\" | \"ghost-primary\" | \"danger\" | \"soft-danger\" | \"white\" | \"success\" | \"warning\" | \"link\" | \"destructive\" | \"soft-destructive\"",
|
|
748
|
+
"default": "default",
|
|
749
|
+
"description": "Twelve canonical semantic treatments. The deprecated destructive and soft-destructive compatibility aliases remain accepted and map to danger and soft-danger, respectively."
|
|
750
|
+
},
|
|
730
751
|
"density": {
|
|
731
752
|
"type": "\"compact\" | \"default\" | \"comfortable\"",
|
|
732
753
|
"default": "comfortable",
|
|
@@ -752,7 +773,10 @@
|
|
|
752
773
|
"ghost-primary",
|
|
753
774
|
"danger",
|
|
754
775
|
"soft-danger",
|
|
755
|
-
"white"
|
|
776
|
+
"white",
|
|
777
|
+
"success",
|
|
778
|
+
"warning",
|
|
779
|
+
"link"
|
|
756
780
|
],
|
|
757
781
|
"sizes": [
|
|
758
782
|
"xs",
|
|
@@ -870,12 +894,12 @@
|
|
|
870
894
|
"--bh-text-button-font-weight",
|
|
871
895
|
"--bh-text-button-letter-spacing",
|
|
872
896
|
"--bh-text-button-line-height",
|
|
873
|
-
"--
|
|
874
|
-
"--
|
|
875
|
-
"--
|
|
876
|
-
"--
|
|
877
|
-
"--
|
|
878
|
-
"--
|
|
897
|
+
"--elevation-button-danger-focus",
|
|
898
|
+
"--elevation-button-focus",
|
|
899
|
+
"--elevation-button-raised",
|
|
900
|
+
"--elevation-button-secondary",
|
|
901
|
+
"--elevation-button-secondary-focus",
|
|
902
|
+
"--elevation-button-soft"
|
|
879
903
|
]
|
|
880
904
|
},
|
|
881
905
|
"card": {
|
|
@@ -992,15 +1016,20 @@
|
|
|
992
1016
|
"--bh-text-heading-sm-semibold-font-weight",
|
|
993
1017
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
994
1018
|
"--bh-text-heading-sm-semibold-line-height",
|
|
995
|
-
"--
|
|
1019
|
+
"--elevation-button-focus"
|
|
996
1020
|
]
|
|
997
1021
|
},
|
|
998
1022
|
"chart": {
|
|
999
|
-
"description": "
|
|
1023
|
+
"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
1024
|
"dependencies": {
|
|
1001
|
-
"recharts": "^3.9.2"
|
|
1025
|
+
"recharts": "^3.9.2",
|
|
1026
|
+
"echarts": "^6.1.0",
|
|
1027
|
+
"lucide-react": "^1.17.0"
|
|
1002
1028
|
},
|
|
1003
1029
|
"parts": [
|
|
1030
|
+
"DataChart",
|
|
1031
|
+
"ChartBlock",
|
|
1032
|
+
"EChart",
|
|
1004
1033
|
"ChartContainer",
|
|
1005
1034
|
"ChartTooltip",
|
|
1006
1035
|
"ChartTooltipContent",
|
|
@@ -1017,12 +1046,40 @@
|
|
|
1017
1046
|
"ChartTooltip",
|
|
1018
1047
|
"ChartTooltipContent"
|
|
1019
1048
|
]
|
|
1049
|
+
},
|
|
1050
|
+
{
|
|
1051
|
+
"source": "components/echart.tsx",
|
|
1052
|
+
"values": [
|
|
1053
|
+
"EChart"
|
|
1054
|
+
]
|
|
1055
|
+
},
|
|
1056
|
+
{
|
|
1057
|
+
"source": "components/chart-options.ts",
|
|
1058
|
+
"values": [
|
|
1059
|
+
"createChartOption"
|
|
1060
|
+
]
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"source": "components/data-chart.tsx",
|
|
1064
|
+
"values": [
|
|
1065
|
+
"DataChart"
|
|
1066
|
+
]
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"source": "components/chart-block.tsx",
|
|
1070
|
+
"values": [
|
|
1071
|
+
"ChartBlock",
|
|
1072
|
+
"chartBlocks"
|
|
1073
|
+
]
|
|
1020
1074
|
}
|
|
1021
1075
|
],
|
|
1022
1076
|
"tokens": [
|
|
1023
1077
|
"--bh-bg-neutral-subtle",
|
|
1024
1078
|
"--bh-bg-raised",
|
|
1079
|
+
"--bh-border-default",
|
|
1080
|
+
"--bh-border-focus",
|
|
1025
1081
|
"--bh-border-subtle",
|
|
1082
|
+
"--bh-border-width-default",
|
|
1026
1083
|
"--bh-chart-categorical-aqua",
|
|
1027
1084
|
"--bh-chart-categorical-brand",
|
|
1028
1085
|
"--bh-chart-categorical-danger",
|
|
@@ -1031,44 +1088,209 @@
|
|
|
1031
1088
|
"--bh-chart-categorical-purple",
|
|
1032
1089
|
"--bh-chart-categorical-success",
|
|
1033
1090
|
"--bh-chart-categorical-warning",
|
|
1091
|
+
"--bh-chart-neutral-default",
|
|
1092
|
+
"--bh-content-brand-default",
|
|
1034
1093
|
"--bh-content-default",
|
|
1035
1094
|
"--bh-content-muted",
|
|
1036
1095
|
"--bh-content-subtle",
|
|
1096
|
+
"--bh-duration-default",
|
|
1097
|
+
"--bh-focus-ring-width",
|
|
1098
|
+
"--bh-font-family",
|
|
1099
|
+
"--bh-font-family-mono",
|
|
1100
|
+
"--bh-icon-stroke-200",
|
|
1101
|
+
"--bh-interactive-ghost-hover",
|
|
1102
|
+
"--bh-opacity-15",
|
|
1103
|
+
"--bh-opacity-30",
|
|
1104
|
+
"--bh-opacity-90",
|
|
1105
|
+
"--bh-opacity-muted",
|
|
1106
|
+
"--bh-radius-3xl-16",
|
|
1037
1107
|
"--bh-radius-full",
|
|
1038
1108
|
"--bh-radius-lg-8",
|
|
1109
|
+
"--bh-radius-md-6",
|
|
1110
|
+
"--bh-radius-sm-4",
|
|
1111
|
+
"--bh-radius-xl-10",
|
|
1112
|
+
"--bh-radius-xs-2",
|
|
1113
|
+
"--bh-space-11xl-96",
|
|
1114
|
+
"--bh-space-12xl-128",
|
|
1115
|
+
"--bh-space-15xl-224",
|
|
1039
1116
|
"--bh-space-17xl-288",
|
|
1040
1117
|
"--bh-space-19xl-384",
|
|
1041
1118
|
"--bh-space-3xl-16",
|
|
1119
|
+
"--bh-space-4xl-20",
|
|
1120
|
+
"--bh-space-5xl-24",
|
|
1121
|
+
"--bh-space-6xl-32",
|
|
1122
|
+
"--bh-space-7xl-40",
|
|
1123
|
+
"--bh-space-9xl-64",
|
|
1124
|
+
"--bh-space-lg-10",
|
|
1042
1125
|
"--bh-space-md-8",
|
|
1043
1126
|
"--bh-space-sm-6",
|
|
1044
1127
|
"--bh-space-xl-12",
|
|
1045
1128
|
"--bh-space-xs-4",
|
|
1129
|
+
"--bh-space-xxs-2",
|
|
1130
|
+
"--bh-space-xxxs-1",
|
|
1131
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
1132
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
1133
|
+
"--bh-text-body-3xs-regular-font-size",
|
|
1134
|
+
"--bh-text-body-3xs-regular-line-height",
|
|
1135
|
+
"--bh-text-body-sm-medium-font-size",
|
|
1136
|
+
"--bh-text-body-sm-medium-line-height",
|
|
1137
|
+
"--bh-text-body-sm-regular-font-size",
|
|
1138
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
1139
|
+
"--bh-text-body-sm-regular-line-height",
|
|
1046
1140
|
"--bh-text-body-xs-medium-font-size",
|
|
1047
1141
|
"--bh-text-body-xs-medium-font-weight",
|
|
1048
1142
|
"--bh-text-body-xs-regular-font-size",
|
|
1049
1143
|
"--bh-text-body-xs-regular-font-weight",
|
|
1050
1144
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
1051
1145
|
"--bh-text-body-xs-regular-line-height",
|
|
1052
|
-
"--
|
|
1146
|
+
"--bh-text-heading-lg-semibold-font-size",
|
|
1147
|
+
"--bh-text-heading-lg-semibold-font-weight",
|
|
1148
|
+
"--bh-text-heading-lg-semibold-letter-spacing",
|
|
1149
|
+
"--bh-text-heading-lg-semibold-line-height",
|
|
1150
|
+
"--bh-text-heading-md-semibold-font-size",
|
|
1151
|
+
"--bh-text-heading-md-semibold-font-weight",
|
|
1152
|
+
"--bh-text-heading-md-semibold-letter-spacing",
|
|
1153
|
+
"--bh-text-heading-md-semibold-line-height",
|
|
1154
|
+
"--bh-text-heading-xs-semibold-font-size",
|
|
1155
|
+
"--bh-text-heading-xs-semibold-font-weight",
|
|
1156
|
+
"--bh-text-heading-xs-semibold-letter-spacing",
|
|
1157
|
+
"--bh-text-heading-xs-semibold-line-height",
|
|
1158
|
+
"--elevation-popover"
|
|
1053
1159
|
],
|
|
1054
1160
|
"features": [
|
|
1055
|
-
"
|
|
1056
|
-
"
|
|
1057
|
-
"
|
|
1058
|
-
"
|
|
1161
|
+
"eight chart families",
|
|
1162
|
+
"18 ready-made blocks",
|
|
1163
|
+
"live theme and font tokens",
|
|
1164
|
+
"responsive SVG",
|
|
1165
|
+
"tooltips and legends",
|
|
1166
|
+
"range brush",
|
|
1167
|
+
"pattern fills",
|
|
1168
|
+
"reduced motion",
|
|
1169
|
+
"RTL",
|
|
1170
|
+
"Recharts compatibility"
|
|
1059
1171
|
],
|
|
1060
1172
|
"rtl": {
|
|
1061
1173
|
"inheritsDirection": true,
|
|
1062
|
-
"layout": "
|
|
1174
|
+
"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
1175
|
},
|
|
1064
1176
|
"files": [
|
|
1065
1177
|
{
|
|
1066
1178
|
"source": "components/chart.tsx",
|
|
1067
1179
|
"target": "{{ui}}/chart.tsx"
|
|
1180
|
+
},
|
|
1181
|
+
{
|
|
1182
|
+
"source": "guidance/charts.LICENSE.txt",
|
|
1183
|
+
"target": "{{ui}}/charts.LICENSE.txt"
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"source": "components/chart-block-data.ts",
|
|
1187
|
+
"target": "{{ui}}/chart-block-data.ts",
|
|
1188
|
+
"internal": true
|
|
1189
|
+
},
|
|
1190
|
+
{
|
|
1191
|
+
"source": "components/chart-block.css",
|
|
1192
|
+
"target": "{{ui}}/chart-block.css"
|
|
1193
|
+
},
|
|
1194
|
+
{
|
|
1195
|
+
"source": "components/chart-block.tsx",
|
|
1196
|
+
"target": "{{ui}}/chart-block.tsx"
|
|
1197
|
+
},
|
|
1198
|
+
{
|
|
1199
|
+
"source": "components/chart-interactions.ts",
|
|
1200
|
+
"target": "{{ui}}/chart-interactions.ts",
|
|
1201
|
+
"internal": true
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"source": "components/chart-options.cartesian.ts",
|
|
1205
|
+
"target": "{{ui}}/chart-options.cartesian.ts",
|
|
1206
|
+
"internal": true
|
|
1207
|
+
},
|
|
1208
|
+
{
|
|
1209
|
+
"source": "components/chart-options.paint.ts",
|
|
1210
|
+
"target": "{{ui}}/chart-options.paint.ts",
|
|
1211
|
+
"internal": true
|
|
1212
|
+
},
|
|
1213
|
+
{
|
|
1214
|
+
"source": "components/chart-options.parts.ts",
|
|
1215
|
+
"target": "{{ui}}/chart-options.parts.ts",
|
|
1216
|
+
"internal": true
|
|
1217
|
+
},
|
|
1218
|
+
{
|
|
1219
|
+
"source": "components/chart-options.radial.ts",
|
|
1220
|
+
"target": "{{ui}}/chart-options.radial.ts",
|
|
1221
|
+
"internal": true
|
|
1222
|
+
},
|
|
1223
|
+
{
|
|
1224
|
+
"source": "components/chart-options.ts",
|
|
1225
|
+
"target": "{{ui}}/chart-options.ts"
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
"source": "components/chart-options.types.ts",
|
|
1229
|
+
"target": "{{ui}}/chart-options.types.ts",
|
|
1230
|
+
"internal": true
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
"source": "components/data-chart.tsx",
|
|
1234
|
+
"target": "{{ui}}/data-chart.tsx"
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
"source": "components/echart-theme.ts",
|
|
1238
|
+
"target": "{{ui}}/echart-theme.ts",
|
|
1239
|
+
"internal": true
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
"source": "components/echart.css",
|
|
1243
|
+
"target": "{{ui}}/echart.css"
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"source": "components/echart.tsx",
|
|
1247
|
+
"target": "{{ui}}/echart.tsx"
|
|
1068
1248
|
}
|
|
1069
1249
|
],
|
|
1070
1250
|
"examples": [
|
|
1071
|
-
"examples/chart-demo.tsx"
|
|
1251
|
+
"examples/chart-demo.tsx",
|
|
1252
|
+
"examples/chart-block-demo.tsx"
|
|
1253
|
+
],
|
|
1254
|
+
"props": {
|
|
1255
|
+
"spec": {
|
|
1256
|
+
"type": "ChartSpec",
|
|
1257
|
+
"default": null,
|
|
1258
|
+
"description": "DataChart: family, data, series, variant, stacking, labels, brush, and interaction options. Series colors are Banhaten palette indices."
|
|
1259
|
+
},
|
|
1260
|
+
"label": {
|
|
1261
|
+
"type": "string",
|
|
1262
|
+
"default": null,
|
|
1263
|
+
"description": "DataChart / EChart: required accessible chart name."
|
|
1264
|
+
},
|
|
1265
|
+
"description": {
|
|
1266
|
+
"type": "string",
|
|
1267
|
+
"default": null,
|
|
1268
|
+
"description": "DataChart / EChart: optional accessible text summary."
|
|
1269
|
+
},
|
|
1270
|
+
"block": {
|
|
1271
|
+
"type": "ChartBlockId",
|
|
1272
|
+
"default": null,
|
|
1273
|
+
"description": "ChartBlock: one of 18 documented blocks, with illustrative data and period controls where applicable."
|
|
1274
|
+
},
|
|
1275
|
+
"option": {
|
|
1276
|
+
"type": "(theme: EChartTheme) => EChartsOption",
|
|
1277
|
+
"default": null,
|
|
1278
|
+
"description": "EChart: advanced option factory receives resolved inherited Banhaten tokens."
|
|
1279
|
+
},
|
|
1280
|
+
"onReady": {
|
|
1281
|
+
"type": "(chart, theme) => void | (() => void)",
|
|
1282
|
+
"default": null,
|
|
1283
|
+
"description": "EChart: attach custom interactions and return their cleanup."
|
|
1284
|
+
},
|
|
1285
|
+
"config": {
|
|
1286
|
+
"type": "ChartConfig",
|
|
1287
|
+
"default": null,
|
|
1288
|
+
"description": "Legacy ChartContainer: maps series names to CSS color variables."
|
|
1289
|
+
}
|
|
1290
|
+
},
|
|
1291
|
+
"registryDependencies": [
|
|
1292
|
+
"button",
|
|
1293
|
+
"progress"
|
|
1072
1294
|
]
|
|
1073
1295
|
},
|
|
1074
1296
|
"carousel": {
|
|
@@ -1269,9 +1491,9 @@
|
|
|
1269
1491
|
"--bh-text-button-letter-spacing",
|
|
1270
1492
|
"--bh-text-button-line-height",
|
|
1271
1493
|
"--bh-z-raised",
|
|
1272
|
-
"--
|
|
1273
|
-
"--
|
|
1274
|
-
"--
|
|
1494
|
+
"--elevation-button-group",
|
|
1495
|
+
"--elevation-button-group-focus",
|
|
1496
|
+
"--elevation-component-default"
|
|
1275
1497
|
]
|
|
1276
1498
|
},
|
|
1277
1499
|
"segmented-control": {
|
|
@@ -1445,8 +1667,8 @@
|
|
|
1445
1667
|
"--bh-toggle-icon-size-md",
|
|
1446
1668
|
"--bh-toggle-icon-size-sm",
|
|
1447
1669
|
"--bh-toggle-offset",
|
|
1448
|
-
"--
|
|
1449
|
-
"--
|
|
1670
|
+
"--elevation-03",
|
|
1671
|
+
"--elevation-social-button-focus-ring"
|
|
1450
1672
|
]
|
|
1451
1673
|
},
|
|
1452
1674
|
"menu": {
|
|
@@ -1519,6 +1741,13 @@
|
|
|
1519
1741
|
]
|
|
1520
1742
|
}
|
|
1521
1743
|
],
|
|
1744
|
+
"props": {
|
|
1745
|
+
"onSelect": {
|
|
1746
|
+
"type": "(event: Event) => void",
|
|
1747
|
+
"default": null,
|
|
1748
|
+
"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."
|
|
1749
|
+
}
|
|
1750
|
+
},
|
|
1522
1751
|
"widths": [
|
|
1523
1752
|
"menu",
|
|
1524
1753
|
"default",
|
|
@@ -1644,7 +1873,7 @@
|
|
|
1644
1873
|
"--bh-text-body-xs-regular-font-weight",
|
|
1645
1874
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
1646
1875
|
"--bh-text-body-xs-regular-line-height",
|
|
1647
|
-
"--
|
|
1876
|
+
"--elevation-menu"
|
|
1648
1877
|
]
|
|
1649
1878
|
},
|
|
1650
1879
|
"menubar": {
|
|
@@ -1742,8 +1971,8 @@
|
|
|
1742
1971
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
1743
1972
|
"--bh-text-body-xs-medium-line-height",
|
|
1744
1973
|
"--bh-z-popover",
|
|
1745
|
-
"--
|
|
1746
|
-
"--
|
|
1974
|
+
"--elevation-component-default",
|
|
1975
|
+
"--elevation-menu"
|
|
1747
1976
|
]
|
|
1748
1977
|
},
|
|
1749
1978
|
"command": {
|
|
@@ -1834,7 +2063,7 @@
|
|
|
1834
2063
|
"--bh-text-body-xs-medium-font-weight",
|
|
1835
2064
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
1836
2065
|
"--bh-text-body-xs-medium-line-height",
|
|
1837
|
-
"--
|
|
2066
|
+
"--elevation-menu"
|
|
1838
2067
|
]
|
|
1839
2068
|
},
|
|
1840
2069
|
"context-menu": {
|
|
@@ -1927,7 +2156,7 @@
|
|
|
1927
2156
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
1928
2157
|
"--bh-text-body-xs-medium-line-height",
|
|
1929
2158
|
"--bh-z-popover",
|
|
1930
|
-
"--
|
|
2159
|
+
"--elevation-menu"
|
|
1931
2160
|
]
|
|
1932
2161
|
},
|
|
1933
2162
|
"tooltip": {
|
|
@@ -1963,6 +2192,13 @@
|
|
|
1963
2192
|
]
|
|
1964
2193
|
}
|
|
1965
2194
|
],
|
|
2195
|
+
"props": {
|
|
2196
|
+
"dir": {
|
|
2197
|
+
"type": "\"ltr\" | \"rtl\" | \"auto\"",
|
|
2198
|
+
"default": "ltr",
|
|
2199
|
+
"description": "TooltipShortcut only: keeps key glyphs in physical order inside RTL tooltips. Override only for localized non-shortcut text."
|
|
2200
|
+
}
|
|
2201
|
+
},
|
|
1966
2202
|
"variants": [
|
|
1967
2203
|
"dark",
|
|
1968
2204
|
"default"
|
|
@@ -1986,7 +2222,8 @@
|
|
|
1986
2222
|
"inheritsDirection": true,
|
|
1987
2223
|
"spacing": "Uses inherited direction with flex layout so label/shortcut and text/close order mirror naturally.",
|
|
1988
2224
|
"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."
|
|
2225
|
+
"textDirection": "Labels and support text use dir=\"auto\" for Arabic and English copy.",
|
|
2226
|
+
"shortcutDirection": "TooltipShortcut defaults to dir=\"ltr\" so physical key order remains stable inside RTL content."
|
|
1990
2227
|
},
|
|
1991
2228
|
"files": [
|
|
1992
2229
|
{
|
|
@@ -2035,6 +2272,7 @@
|
|
|
2035
2272
|
"--bh-tooltip-close-fg",
|
|
2036
2273
|
"--bh-tooltip-close-icon-size",
|
|
2037
2274
|
"--bh-tooltip-close-size",
|
|
2275
|
+
"--bh-tooltip-elevation",
|
|
2038
2276
|
"--bh-tooltip-fg",
|
|
2039
2277
|
"--bh-tooltip-lg-padding",
|
|
2040
2278
|
"--bh-tooltip-lg-radius",
|
|
@@ -2048,7 +2286,6 @@
|
|
|
2048
2286
|
"--bh-tooltip-pointer-inline-offset",
|
|
2049
2287
|
"--bh-tooltip-pointer-offset",
|
|
2050
2288
|
"--bh-tooltip-pointer-width",
|
|
2051
|
-
"--bh-tooltip-shadow",
|
|
2052
2289
|
"--bh-tooltip-shortcut-bg",
|
|
2053
2290
|
"--bh-tooltip-shortcut-border",
|
|
2054
2291
|
"--bh-tooltip-shortcut-height",
|
|
@@ -2058,8 +2295,8 @@
|
|
|
2058
2295
|
"--bh-tooltip-sm-radius",
|
|
2059
2296
|
"--bh-z-overlay",
|
|
2060
2297
|
"--bh-z-raised",
|
|
2061
|
-
"--
|
|
2062
|
-
"--
|
|
2298
|
+
"--elevation-04",
|
|
2299
|
+
"--elevation-button-focus"
|
|
2063
2300
|
]
|
|
2064
2301
|
},
|
|
2065
2302
|
"popover": {
|
|
@@ -2188,8 +2425,8 @@
|
|
|
2188
2425
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
2189
2426
|
"--bh-text-body-xs-regular-line-height",
|
|
2190
2427
|
"--bh-z-popover",
|
|
2191
|
-
"--
|
|
2192
|
-
"--
|
|
2428
|
+
"--elevation-button-focus",
|
|
2429
|
+
"--elevation-popover"
|
|
2193
2430
|
]
|
|
2194
2431
|
},
|
|
2195
2432
|
"hover-card": {
|
|
@@ -2241,7 +2478,7 @@
|
|
|
2241
2478
|
"--bh-space-3xl-16",
|
|
2242
2479
|
"--bh-space-md-8",
|
|
2243
2480
|
"--bh-z-popover",
|
|
2244
|
-
"--
|
|
2481
|
+
"--elevation-popover"
|
|
2245
2482
|
]
|
|
2246
2483
|
},
|
|
2247
2484
|
"modal": {
|
|
@@ -2376,9 +2613,9 @@
|
|
|
2376
2613
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
2377
2614
|
"--bh-text-heading-sm-semibold-line-height",
|
|
2378
2615
|
"--bh-z-overlay",
|
|
2379
|
-
"--
|
|
2380
|
-
"--
|
|
2381
|
-
"--
|
|
2616
|
+
"--elevation-06",
|
|
2617
|
+
"--elevation-button-focus",
|
|
2618
|
+
"--elevation-modal"
|
|
2382
2619
|
]
|
|
2383
2620
|
},
|
|
2384
2621
|
"alert-dialog": {
|
|
@@ -2497,8 +2734,8 @@
|
|
|
2497
2734
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
2498
2735
|
"--bh-text-heading-sm-semibold-line-height",
|
|
2499
2736
|
"--bh-z-overlay",
|
|
2500
|
-
"--
|
|
2501
|
-
"--
|
|
2737
|
+
"--elevation-06",
|
|
2738
|
+
"--elevation-modal"
|
|
2502
2739
|
]
|
|
2503
2740
|
},
|
|
2504
2741
|
"checkbox": {
|
|
@@ -2577,9 +2814,9 @@
|
|
|
2577
2814
|
"--bh-checkbox-root-size",
|
|
2578
2815
|
"--bh-content-default",
|
|
2579
2816
|
"--bh-content-disabled",
|
|
2580
|
-
"--bh-content-on-color",
|
|
2581
2817
|
"--bh-content-subtle",
|
|
2582
2818
|
"--bh-icon-stroke-300",
|
|
2819
|
+
"--bh-interactive-checkbox-content",
|
|
2583
2820
|
"--bh-interactive-checkbox-default",
|
|
2584
2821
|
"--bh-interactive-checkbox-hover",
|
|
2585
2822
|
"--bh-opacity-60",
|
|
@@ -2591,15 +2828,15 @@
|
|
|
2591
2828
|
"--bh-text-body-sm-regular-font-weight",
|
|
2592
2829
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
2593
2830
|
"--bh-text-body-sm-regular-line-height",
|
|
2594
|
-
"--
|
|
2595
|
-
"--
|
|
2596
|
-
"--
|
|
2597
|
-
"--
|
|
2598
|
-
"--
|
|
2831
|
+
"--elevation-checkbox-card",
|
|
2832
|
+
"--elevation-checkbox-card-focus",
|
|
2833
|
+
"--elevation-checkbox-control",
|
|
2834
|
+
"--elevation-checkbox-focus",
|
|
2835
|
+
"--elevation-component-default"
|
|
2599
2836
|
]
|
|
2600
2837
|
},
|
|
2601
2838
|
"collapsible": {
|
|
2602
|
-
"description": "Radix Collapsible wrapper for disclosure sections with tokenized trigger, icon rotation, and
|
|
2839
|
+
"description": "Radix Collapsible wrapper for disclosure sections with tokenized trigger, icon rotation, content slots, and an unstyled animated panel.",
|
|
2603
2840
|
"dependencies": {
|
|
2604
2841
|
"@radix-ui/react-collapsible": "^1.1.15",
|
|
2605
2842
|
"lucide-react": "^1.17.0"
|
|
@@ -2607,7 +2844,8 @@
|
|
|
2607
2844
|
"parts": [
|
|
2608
2845
|
"Collapsible",
|
|
2609
2846
|
"CollapsibleTrigger",
|
|
2610
|
-
"CollapsibleContent"
|
|
2847
|
+
"CollapsibleContent",
|
|
2848
|
+
"CollapsiblePanel"
|
|
2611
2849
|
],
|
|
2612
2850
|
"supportedExports": [
|
|
2613
2851
|
{
|
|
@@ -2615,6 +2853,7 @@
|
|
|
2615
2853
|
"values": [
|
|
2616
2854
|
"Collapsible",
|
|
2617
2855
|
"CollapsibleContent",
|
|
2856
|
+
"CollapsiblePanel",
|
|
2618
2857
|
"CollapsibleTrigger"
|
|
2619
2858
|
]
|
|
2620
2859
|
}
|
|
@@ -2623,7 +2862,9 @@
|
|
|
2623
2862
|
"controlled state",
|
|
2624
2863
|
"uncontrolled state",
|
|
2625
2864
|
"keyboard trigger",
|
|
2626
|
-
"RTL"
|
|
2865
|
+
"RTL",
|
|
2866
|
+
"animated panel",
|
|
2867
|
+
"custom trigger with asChild"
|
|
2627
2868
|
],
|
|
2628
2869
|
"rtl": {
|
|
2629
2870
|
"inheritsDirection": true,
|
|
@@ -2642,6 +2883,8 @@
|
|
|
2642
2883
|
"tokens": [
|
|
2643
2884
|
"--bh-content-default",
|
|
2644
2885
|
"--bh-content-subtle",
|
|
2886
|
+
"--bh-duration-moderate",
|
|
2887
|
+
"--bh-easing-emphasized",
|
|
2645
2888
|
"--bh-icon-stroke-200",
|
|
2646
2889
|
"--bh-interactive-ghost-hover",
|
|
2647
2890
|
"--bh-radius-lg-8",
|
|
@@ -2657,7 +2900,7 @@
|
|
|
2657
2900
|
"--bh-text-body-sm-regular-font-weight",
|
|
2658
2901
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
2659
2902
|
"--bh-text-body-sm-regular-line-height",
|
|
2660
|
-
"--
|
|
2903
|
+
"--elevation-button-focus"
|
|
2661
2904
|
]
|
|
2662
2905
|
},
|
|
2663
2906
|
"radio-group": {
|
|
@@ -2760,8 +3003,8 @@
|
|
|
2760
3003
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
2761
3004
|
"--bh-text-body-xs-regular-line-height",
|
|
2762
3005
|
"--bh-z-raised",
|
|
2763
|
-
"--
|
|
2764
|
-
"--
|
|
3006
|
+
"--elevation-button-focus",
|
|
3007
|
+
"--elevation-radio-control"
|
|
2765
3008
|
]
|
|
2766
3009
|
},
|
|
2767
3010
|
"radio-card": {
|
|
@@ -2864,11 +3107,11 @@
|
|
|
2864
3107
|
"--bh-text-body-sm-regular-font-weight",
|
|
2865
3108
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
2866
3109
|
"--bh-text-body-sm-regular-line-height",
|
|
2867
|
-
"--
|
|
2868
|
-
"--
|
|
2869
|
-
"--
|
|
2870
|
-
"--
|
|
2871
|
-
"--
|
|
3110
|
+
"--elevation-component-default",
|
|
3111
|
+
"--elevation-radio-card",
|
|
3112
|
+
"--elevation-radio-card-current",
|
|
3113
|
+
"--elevation-radio-card-disabled",
|
|
3114
|
+
"--elevation-radio-control"
|
|
2872
3115
|
]
|
|
2873
3116
|
},
|
|
2874
3117
|
"divider": {
|
|
@@ -3012,13 +3255,13 @@
|
|
|
3012
3255
|
"--bh-pagination-root-gap",
|
|
3013
3256
|
"--bh-pagination-simple-width",
|
|
3014
3257
|
"--bh-space-md-8",
|
|
3015
|
-
"--
|
|
3016
|
-
"--
|
|
3017
|
-
"--
|
|
3258
|
+
"--elevation-pagination-active",
|
|
3259
|
+
"--elevation-pagination-control",
|
|
3260
|
+
"--elevation-pagination-focus"
|
|
3018
3261
|
]
|
|
3019
3262
|
},
|
|
3020
3263
|
"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.",
|
|
3264
|
+
"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
3265
|
"dependencies": {
|
|
3023
3266
|
"@radix-ui/react-slot": "^1.2.3",
|
|
3024
3267
|
"class-variance-authority": "^0.7.1",
|
|
@@ -3074,8 +3317,16 @@
|
|
|
3074
3317
|
"type": "readonly string[]",
|
|
3075
3318
|
"default": null,
|
|
3076
3319
|
"description": "Adds shared, platform-aware Kbd keycaps to ToolbarSearch without rebuilding a shortcut badge locally."
|
|
3320
|
+
},
|
|
3321
|
+
"role": {
|
|
3322
|
+
"type": "React.AriaRole",
|
|
3323
|
+
"default": "group",
|
|
3324
|
+
"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
3325
|
}
|
|
3078
3326
|
},
|
|
3327
|
+
"features": [
|
|
3328
|
+
"native Tab-order layout grouping"
|
|
3329
|
+
],
|
|
3079
3330
|
"densities": [
|
|
3080
3331
|
"compact",
|
|
3081
3332
|
"default",
|
|
@@ -3111,7 +3362,8 @@
|
|
|
3111
3362
|
],
|
|
3112
3363
|
"avoidWhen": [
|
|
3113
3364
|
"Using ToolbarSelect as a complete select menu without application behavior",
|
|
3114
|
-
"Applying unrelated custom heights or padding to individual toolbar children"
|
|
3365
|
+
"Applying unrelated custom heights or padding to individual toolbar children",
|
|
3366
|
+
"Using role=\"toolbar\" without application-owned roving focus and arrow-key behavior"
|
|
3115
3367
|
],
|
|
3116
3368
|
"recipes": [
|
|
3117
3369
|
"Collection filter bar",
|
|
@@ -3215,13 +3467,13 @@
|
|
|
3215
3467
|
"--bh-text-button-font-weight",
|
|
3216
3468
|
"--bh-text-button-letter-spacing",
|
|
3217
3469
|
"--bh-text-button-line-height",
|
|
3218
|
-
"--
|
|
3219
|
-
"--
|
|
3220
|
-
"--
|
|
3221
|
-
"--
|
|
3222
|
-
"--
|
|
3223
|
-
"--
|
|
3224
|
-
"--
|
|
3470
|
+
"--elevation-button-danger-focus",
|
|
3471
|
+
"--elevation-button-focus",
|
|
3472
|
+
"--elevation-button-raised",
|
|
3473
|
+
"--elevation-button-soft",
|
|
3474
|
+
"--elevation-input",
|
|
3475
|
+
"--elevation-input-focus-ring",
|
|
3476
|
+
"--elevation-select-trigger"
|
|
3225
3477
|
]
|
|
3226
3478
|
},
|
|
3227
3479
|
"social-button": {
|
|
@@ -3350,13 +3602,13 @@
|
|
|
3350
3602
|
"--bh-text-button-font-weight",
|
|
3351
3603
|
"--bh-text-button-letter-spacing",
|
|
3352
3604
|
"--bh-text-button-line-height",
|
|
3353
|
-
"--
|
|
3354
|
-
"--
|
|
3355
|
-
"--
|
|
3605
|
+
"--elevation-component-default",
|
|
3606
|
+
"--elevation-social-button",
|
|
3607
|
+
"--elevation-social-button-focus"
|
|
3356
3608
|
]
|
|
3357
3609
|
},
|
|
3358
3610
|
"input": {
|
|
3359
|
-
"description": "Tokenized input field with semantic control density, labels, helper and error text,
|
|
3611
|
+
"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
3612
|
"dependencies": {
|
|
3361
3613
|
"class-variance-authority": "^0.7.1",
|
|
3362
3614
|
"lucide-react": "^1.17.0"
|
|
@@ -3390,6 +3642,26 @@
|
|
|
3390
3642
|
}
|
|
3391
3643
|
],
|
|
3392
3644
|
"props": {
|
|
3645
|
+
"buttonProps": {
|
|
3646
|
+
"type": "InputActionButtonProps",
|
|
3647
|
+
"default": null,
|
|
3648
|
+
"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."
|
|
3649
|
+
},
|
|
3650
|
+
"decreaseButtonProps": {
|
|
3651
|
+
"type": "InputStepperButtonProps",
|
|
3652
|
+
"default": null,
|
|
3653
|
+
"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."
|
|
3654
|
+
},
|
|
3655
|
+
"increaseButtonProps": {
|
|
3656
|
+
"type": "InputStepperButtonProps",
|
|
3657
|
+
"default": null,
|
|
3658
|
+
"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."
|
|
3659
|
+
},
|
|
3660
|
+
"onChange": {
|
|
3661
|
+
"type": "React.ChangeEventHandler<HTMLInputElement>",
|
|
3662
|
+
"default": null,
|
|
3663
|
+
"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."
|
|
3664
|
+
},
|
|
3393
3665
|
"density": {
|
|
3394
3666
|
"type": "\"compact\" | \"default\" | \"comfortable\"",
|
|
3395
3667
|
"default": "default",
|
|
@@ -3412,6 +3684,11 @@
|
|
|
3412
3684
|
"description": "Deprecated compatibility alias for showInfo.",
|
|
3413
3685
|
"deprecated": true
|
|
3414
3686
|
},
|
|
3687
|
+
"isRequired": {
|
|
3688
|
+
"type": "boolean",
|
|
3689
|
+
"default": false,
|
|
3690
|
+
"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."
|
|
3691
|
+
},
|
|
3415
3692
|
"trailingIcon": {
|
|
3416
3693
|
"type": "React.ReactNode | false",
|
|
3417
3694
|
"default": null,
|
|
@@ -3510,7 +3787,8 @@
|
|
|
3510
3787
|
}
|
|
3511
3788
|
],
|
|
3512
3789
|
"examples": [
|
|
3513
|
-
"examples/input-demo.tsx"
|
|
3790
|
+
"examples/input-demo.tsx",
|
|
3791
|
+
"examples/input-actions-demo.tsx"
|
|
3514
3792
|
],
|
|
3515
3793
|
"tokens": [
|
|
3516
3794
|
"--bh-border-danger-strong",
|
|
@@ -3573,14 +3851,14 @@
|
|
|
3573
3851
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
3574
3852
|
"--bh-text-body-xs-regular-line-height",
|
|
3575
3853
|
"--bh-z-raised",
|
|
3576
|
-
"--
|
|
3577
|
-
"--
|
|
3578
|
-
"--
|
|
3579
|
-
"--
|
|
3580
|
-
"--
|
|
3581
|
-
"--
|
|
3582
|
-
"--
|
|
3583
|
-
"--
|
|
3854
|
+
"--elevation-component-default",
|
|
3855
|
+
"--elevation-input",
|
|
3856
|
+
"--elevation-input-disabled-overlay",
|
|
3857
|
+
"--elevation-input-focus-overlay",
|
|
3858
|
+
"--elevation-input-focus-ring",
|
|
3859
|
+
"--elevation-input-focus-surface",
|
|
3860
|
+
"--elevation-input-overlay",
|
|
3861
|
+
"--elevation-input-surface"
|
|
3584
3862
|
]
|
|
3585
3863
|
},
|
|
3586
3864
|
"input-group": {
|
|
@@ -3665,9 +3943,9 @@
|
|
|
3665
3943
|
"--bh-text-body-sm-medium-font-weight",
|
|
3666
3944
|
"--bh-text-body-sm-medium-letter-spacing",
|
|
3667
3945
|
"--bh-text-body-sm-medium-line-height",
|
|
3668
|
-
"--
|
|
3669
|
-
"--
|
|
3670
|
-
"--
|
|
3946
|
+
"--elevation-component-default",
|
|
3947
|
+
"--elevation-input",
|
|
3948
|
+
"--elevation-input-focus-ring"
|
|
3671
3949
|
]
|
|
3672
3950
|
},
|
|
3673
3951
|
"label": {
|
|
@@ -3751,6 +4029,11 @@
|
|
|
3751
4029
|
}
|
|
3752
4030
|
],
|
|
3753
4031
|
"props": {
|
|
4032
|
+
"dir": {
|
|
4033
|
+
"type": "\"ltr\" | \"rtl\" | \"auto\"",
|
|
4034
|
+
"default": "ltr",
|
|
4035
|
+
"description": "Keeps physical key and modifier order stable inside RTL interfaces. Override only for localized non-shortcut key names."
|
|
4036
|
+
},
|
|
3754
4037
|
"keys": {
|
|
3755
4038
|
"type": "readonly string[]",
|
|
3756
4039
|
"default": null,
|
|
@@ -3784,7 +4067,7 @@
|
|
|
3784
4067
|
],
|
|
3785
4068
|
"rtl": {
|
|
3786
4069
|
"inheritsDirection": false,
|
|
3787
|
-
"semantics": "Kbd
|
|
4070
|
+
"semantics": "Kbd defaults to dir=\"ltr\" so physical key order stays stable, while surrounding shortcut descriptions keep their own text direction."
|
|
3788
4071
|
},
|
|
3789
4072
|
"files": [
|
|
3790
4073
|
{
|
|
@@ -3820,7 +4103,7 @@
|
|
|
3820
4103
|
"--bh-text-body-xs-medium-font-weight",
|
|
3821
4104
|
"--bh-text-body-xs-medium-letter-spacing",
|
|
3822
4105
|
"--bh-text-body-xs-medium-line-height",
|
|
3823
|
-
"--
|
|
4106
|
+
"--elevation-button-soft"
|
|
3824
4107
|
]
|
|
3825
4108
|
},
|
|
3826
4109
|
"item": {
|
|
@@ -3923,7 +4206,7 @@
|
|
|
3923
4206
|
"--bh-text-body-sm-regular-font-weight",
|
|
3924
4207
|
"--bh-text-body-sm-regular-letter-spacing",
|
|
3925
4208
|
"--bh-text-body-sm-regular-line-height",
|
|
3926
|
-
"--
|
|
4209
|
+
"--elevation-button-focus"
|
|
3927
4210
|
]
|
|
3928
4211
|
},
|
|
3929
4212
|
"field": {
|
|
@@ -4160,6 +4443,16 @@
|
|
|
4160
4443
|
}
|
|
4161
4444
|
],
|
|
4162
4445
|
"props": {
|
|
4446
|
+
"aria-label": {
|
|
4447
|
+
"type": "string",
|
|
4448
|
+
"default": null,
|
|
4449
|
+
"description": "Provides a stable purpose-based accessible name for a label-less Select and is forwarded to its trigger."
|
|
4450
|
+
},
|
|
4451
|
+
"aria-labelledby": {
|
|
4452
|
+
"type": "string",
|
|
4453
|
+
"default": null,
|
|
4454
|
+
"description": "Names a label-less Select trigger from external text without placing the relationship on the inert root."
|
|
4455
|
+
},
|
|
4163
4456
|
"density": {
|
|
4164
4457
|
"type": "\"compact\" | \"default\" | \"comfortable\"",
|
|
4165
4458
|
"default": "default",
|
|
@@ -4194,6 +4487,11 @@
|
|
|
4194
4487
|
"type": "React.ReactNode | false",
|
|
4195
4488
|
"default": "chevron-down",
|
|
4196
4489
|
"description": "Uses the default expand chevron when omitted, accepts a replacement node, and hides the slot when false."
|
|
4490
|
+
},
|
|
4491
|
+
"triggerProps": {
|
|
4492
|
+
"type": "React.ComponentProps<\"button\">",
|
|
4493
|
+
"default": null,
|
|
4494
|
+
"description": "Forwards advanced trigger attributes and is spread last, so matching attributes override the top-level trigger defaults."
|
|
4197
4495
|
}
|
|
4198
4496
|
},
|
|
4199
4497
|
"defaults": {
|
|
@@ -4291,12 +4589,12 @@
|
|
|
4291
4589
|
"--bh-content-default",
|
|
4292
4590
|
"--bh-content-disabled",
|
|
4293
4591
|
"--bh-content-muted",
|
|
4294
|
-
"--bh-content-on-color",
|
|
4295
4592
|
"--bh-content-subtle",
|
|
4296
4593
|
"--bh-font-weight-semibold",
|
|
4297
4594
|
"--bh-icon-size-default",
|
|
4298
4595
|
"--bh-icon-stroke-200",
|
|
4299
4596
|
"--bh-icon-stroke-220",
|
|
4597
|
+
"--bh-interactive-checkbox-content",
|
|
4300
4598
|
"--bh-interactive-checkbox-default",
|
|
4301
4599
|
"--bh-opacity-60",
|
|
4302
4600
|
"--bh-radius-full",
|
|
@@ -4374,12 +4672,12 @@
|
|
|
4374
4672
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
4375
4673
|
"--bh-text-body-xs-regular-line-height",
|
|
4376
4674
|
"--bh-z-popover",
|
|
4377
|
-
"--
|
|
4378
|
-
"--
|
|
4379
|
-
"--
|
|
4380
|
-
"--
|
|
4381
|
-
"--
|
|
4382
|
-
"--
|
|
4675
|
+
"--elevation-component-default",
|
|
4676
|
+
"--elevation-select-checkbox",
|
|
4677
|
+
"--elevation-select-danger-focus-ring",
|
|
4678
|
+
"--elevation-select-focus-ring",
|
|
4679
|
+
"--elevation-select-menu",
|
|
4680
|
+
"--elevation-select-trigger"
|
|
4383
4681
|
]
|
|
4384
4682
|
},
|
|
4385
4683
|
"native-select": {
|
|
@@ -4473,10 +4771,10 @@
|
|
|
4473
4771
|
"--bh-text-body-xs-regular-font-weight",
|
|
4474
4772
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
4475
4773
|
"--bh-text-body-xs-regular-line-height",
|
|
4476
|
-
"--
|
|
4477
|
-
"--
|
|
4478
|
-
"--
|
|
4479
|
-
"--
|
|
4774
|
+
"--elevation-component-default",
|
|
4775
|
+
"--elevation-select-danger-focus-ring",
|
|
4776
|
+
"--elevation-select-focus-ring",
|
|
4777
|
+
"--elevation-select-trigger"
|
|
4480
4778
|
]
|
|
4481
4779
|
},
|
|
4482
4780
|
"sheet": {
|
|
@@ -4587,12 +4885,12 @@
|
|
|
4587
4885
|
"--bh-text-heading-sm-semibold-letter-spacing",
|
|
4588
4886
|
"--bh-text-heading-sm-semibold-line-height",
|
|
4589
4887
|
"--bh-z-overlay",
|
|
4590
|
-
"--
|
|
4591
|
-
"--
|
|
4888
|
+
"--elevation-button-focus",
|
|
4889
|
+
"--elevation-component-default"
|
|
4592
4890
|
]
|
|
4593
4891
|
},
|
|
4594
4892
|
"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.",
|
|
4893
|
+
"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
4894
|
"dependencies": {
|
|
4597
4895
|
"@radix-ui/react-slot": "^1.2.3",
|
|
4598
4896
|
"lucide-react": "^1.17.0"
|
|
@@ -4668,6 +4966,11 @@
|
|
|
4668
4966
|
"default": false,
|
|
4669
4967
|
"description": "Sets the initial rail state when SidebarProvider owns collapse state internally."
|
|
4670
4968
|
},
|
|
4969
|
+
"showIdentityPreview": {
|
|
4970
|
+
"type": "boolean",
|
|
4971
|
+
"default": true,
|
|
4972
|
+
"description": "Reveals the collapsed footer user's name and supporting text beside the rail on hover or keyboard focus."
|
|
4973
|
+
},
|
|
4671
4974
|
"side": {
|
|
4672
4975
|
"type": "\"start\" | \"end\"",
|
|
4673
4976
|
"default": "start",
|
|
@@ -4747,11 +5050,15 @@
|
|
|
4747
5050
|
"uncontrolled collapse",
|
|
4748
5051
|
"brand header with search and collapse actions",
|
|
4749
5052
|
"workspace action and card headers",
|
|
5053
|
+
"visible collapsed-header expand action",
|
|
4750
5054
|
"default, avatar, Level 2, and Level 2 line menu rows",
|
|
4751
5055
|
"supporting text, count badge, and trailing action slots",
|
|
4752
5056
|
"group labels with disclosure and icon actions",
|
|
4753
5057
|
"four-level tree navigation",
|
|
4754
5058
|
"supporting-text and bordered user footers",
|
|
5059
|
+
"collapsed footer identity preview on hover and keyboard focus",
|
|
5060
|
+
"tokenized staged expand and collapse motion",
|
|
5061
|
+
"reduced-motion fallback",
|
|
4755
5062
|
"icon-only rail with tooltips",
|
|
4756
5063
|
"logical side placement and RTL mirroring"
|
|
4757
5064
|
],
|
|
@@ -4760,6 +5067,7 @@
|
|
|
4760
5067
|
"--bh-bg-default",
|
|
4761
5068
|
"--bh-bg-default-hover",
|
|
4762
5069
|
"--bh-bg-neutral-subtle",
|
|
5070
|
+
"--bh-bg-raised",
|
|
4763
5071
|
"--bh-border-focus",
|
|
4764
5072
|
"--bh-border-subtle",
|
|
4765
5073
|
"--bh-border-width-default",
|
|
@@ -4779,6 +5087,7 @@
|
|
|
4779
5087
|
"--bh-radius-full",
|
|
4780
5088
|
"--bh-radius-lg-8",
|
|
4781
5089
|
"--bh-radius-md-6",
|
|
5090
|
+
"--bh-radius-xl-10",
|
|
4782
5091
|
"--bh-sidebar-active-guide-height",
|
|
4783
5092
|
"--bh-sidebar-bg",
|
|
4784
5093
|
"--bh-sidebar-bg-collapsed",
|
|
@@ -4797,16 +5106,24 @@
|
|
|
4797
5106
|
"--bh-sidebar-item-height-collapsed",
|
|
4798
5107
|
"--bh-sidebar-item-padding-x",
|
|
4799
5108
|
"--bh-sidebar-level-2-indent-width",
|
|
5109
|
+
"--bh-sidebar-min-height",
|
|
5110
|
+
"--bh-sidebar-motion-delay-content",
|
|
5111
|
+
"--bh-sidebar-motion-duration",
|
|
5112
|
+
"--bh-sidebar-motion-duration-content",
|
|
5113
|
+
"--bh-sidebar-motion-easing",
|
|
4800
5114
|
"--bh-sidebar-padding",
|
|
4801
5115
|
"--bh-sidebar-rail-width",
|
|
4802
5116
|
"--bh-sidebar-tree-indent-step",
|
|
4803
5117
|
"--bh-sidebar-tree-item-height",
|
|
5118
|
+
"--bh-sidebar-user-preview-gap",
|
|
5119
|
+
"--bh-sidebar-user-preview-height",
|
|
5120
|
+
"--bh-sidebar-user-preview-width",
|
|
4804
5121
|
"--bh-sidebar-width",
|
|
4805
5122
|
"--bh-sidebar-width-collapsed",
|
|
4806
5123
|
"--bh-sidebar-workspace-card-height",
|
|
4807
5124
|
"--bh-sidebar-workspace-trigger-max-width",
|
|
4808
5125
|
"--bh-sidebar-workspace-trigger-width",
|
|
4809
|
-
"--bh-space-
|
|
5126
|
+
"--bh-space-10xl-80",
|
|
4810
5127
|
"--bh-space-3xl-16",
|
|
4811
5128
|
"--bh-space-4xl-20",
|
|
4812
5129
|
"--bh-space-5xl-24",
|
|
@@ -4844,7 +5161,9 @@
|
|
|
4844
5161
|
"--bh-text-body-xs-regular-letter-spacing",
|
|
4845
5162
|
"--bh-text-body-xs-regular-line-height",
|
|
4846
5163
|
"--bh-text-body-xs-semibold-font-weight",
|
|
4847
|
-
"--
|
|
5164
|
+
"--bh-z-overlay",
|
|
5165
|
+
"--elevation-button-focus",
|
|
5166
|
+
"--elevation-component-default"
|
|
4848
5167
|
],
|
|
4849
5168
|
"rtl": {
|
|
4850
5169
|
"inheritsDirection": true,
|
|
@@ -4939,7 +5258,7 @@
|
|
|
4939
5258
|
"--bh-text-body-sm-regular-line-height",
|
|
4940
5259
|
"--bh-z-popover",
|
|
4941
5260
|
"--bh-z-raised",
|
|
4942
|
-
"--
|
|
5261
|
+
"--elevation-popover"
|
|
4943
5262
|
]
|
|
4944
5263
|
},
|
|
4945
5264
|
"scroll-area": {
|
|
@@ -4986,7 +5305,7 @@
|
|
|
4986
5305
|
"--bh-radius-full",
|
|
4987
5306
|
"--bh-space-lg-10",
|
|
4988
5307
|
"--bh-space-xxs-2",
|
|
4989
|
-
"--
|
|
5308
|
+
"--elevation-component-focus-ring"
|
|
4990
5309
|
]
|
|
4991
5310
|
},
|
|
4992
5311
|
"resizable": {
|
|
@@ -5039,8 +5358,8 @@
|
|
|
5039
5358
|
"--bh-space-5xl-24",
|
|
5040
5359
|
"--bh-space-6xl-32",
|
|
5041
5360
|
"--bh-z-raised",
|
|
5042
|
-
"--
|
|
5043
|
-
"--
|
|
5361
|
+
"--elevation-button-focus",
|
|
5362
|
+
"--elevation-component-focus-ring"
|
|
5044
5363
|
]
|
|
5045
5364
|
},
|
|
5046
5365
|
"autocomplete": {
|
|
@@ -5292,10 +5611,10 @@
|
|
|
5292
5611
|
"--bh-date-title-chevron-size",
|
|
5293
5612
|
"--bh-date-title-height",
|
|
5294
5613
|
"--bh-date-trigger-border",
|
|
5614
|
+
"--bh-date-trigger-elevation",
|
|
5295
5615
|
"--bh-date-trigger-height",
|
|
5296
5616
|
"--bh-date-trigger-icon-size",
|
|
5297
5617
|
"--bh-date-trigger-icon-slot-size",
|
|
5298
|
-
"--bh-date-trigger-shadow",
|
|
5299
5618
|
"--bh-date-trigger-width",
|
|
5300
5619
|
"--bh-icon-stroke-180",
|
|
5301
5620
|
"--bh-interactive-ghost-hover",
|
|
@@ -5334,12 +5653,12 @@
|
|
|
5334
5653
|
"--bh-text-body-md-regular-letter-spacing",
|
|
5335
5654
|
"--bh-text-body-md-regular-line-height",
|
|
5336
5655
|
"--bh-z-raised",
|
|
5337
|
-
"--
|
|
5338
|
-
"--
|
|
5339
|
-
"--
|
|
5340
|
-
"--
|
|
5341
|
-
"--
|
|
5342
|
-
"--
|
|
5656
|
+
"--elevation-button-focus",
|
|
5657
|
+
"--elevation-component-default",
|
|
5658
|
+
"--elevation-date-month-year-list",
|
|
5659
|
+
"--elevation-date-surface",
|
|
5660
|
+
"--elevation-date-time-input",
|
|
5661
|
+
"--elevation-input-focus-ring"
|
|
5343
5662
|
]
|
|
5344
5663
|
},
|
|
5345
5664
|
"slider": {
|
|
@@ -5501,9 +5820,9 @@
|
|
|
5501
5820
|
"--bh-z-overlay",
|
|
5502
5821
|
"--bh-z-popover",
|
|
5503
5822
|
"--bh-z-raised",
|
|
5504
|
-
"--
|
|
5505
|
-
"--
|
|
5506
|
-
"--
|
|
5823
|
+
"--elevation-slider-thumb",
|
|
5824
|
+
"--elevation-slider-thumb-focus",
|
|
5825
|
+
"--elevation-slider-tooltip"
|
|
5507
5826
|
]
|
|
5508
5827
|
},
|
|
5509
5828
|
"progress": {
|
|
@@ -5690,7 +6009,7 @@
|
|
|
5690
6009
|
"--bh-z-overlay",
|
|
5691
6010
|
"--bh-z-popover",
|
|
5692
6011
|
"--bh-z-raised",
|
|
5693
|
-
"--
|
|
6012
|
+
"--elevation-progress-slider-thumb-focus"
|
|
5694
6013
|
]
|
|
5695
6014
|
},
|
|
5696
6015
|
"textarea": {
|
|
@@ -5793,8 +6112,8 @@
|
|
|
5793
6112
|
"--bh-textarea-tag-avatar-size",
|
|
5794
6113
|
"--bh-textarea-tag-height",
|
|
5795
6114
|
"--bh-textarea-width",
|
|
5796
|
-
"--
|
|
5797
|
-
"--
|
|
6115
|
+
"--elevation-component-default",
|
|
6116
|
+
"--elevation-textarea"
|
|
5798
6117
|
]
|
|
5799
6118
|
},
|
|
5800
6119
|
"skeleton": {
|
|
@@ -5925,7 +6244,7 @@
|
|
|
5925
6244
|
"--bh-space-xl-12",
|
|
5926
6245
|
"--bh-space-xs-4",
|
|
5927
6246
|
"--bh-text-body-md-regular-line-height",
|
|
5928
|
-
"--
|
|
6247
|
+
"--elevation-component-default"
|
|
5929
6248
|
]
|
|
5930
6249
|
},
|
|
5931
6250
|
"spinner": {
|
|
@@ -6063,7 +6382,7 @@
|
|
|
6063
6382
|
"--bh-text-body-xs-regular-line-height",
|
|
6064
6383
|
"--bh-toast-accent",
|
|
6065
6384
|
"--bh-toast-accent-bg",
|
|
6066
|
-
"--
|
|
6385
|
+
"--elevation-component-default"
|
|
6067
6386
|
]
|
|
6068
6387
|
},
|
|
6069
6388
|
"activity-feed": {
|
|
@@ -6157,8 +6476,8 @@
|
|
|
6157
6476
|
"--bh-text-body-sm-regular-font-size",
|
|
6158
6477
|
"--bh-text-body-sm-regular-line-height",
|
|
6159
6478
|
"--bh-text-body-xs-regular-font-size",
|
|
6160
|
-
"--
|
|
6161
|
-
"--
|
|
6479
|
+
"--elevation-button-raised",
|
|
6480
|
+
"--elevation-component-default"
|
|
6162
6481
|
]
|
|
6163
6482
|
},
|
|
6164
6483
|
"activity-heatmap": {
|
|
@@ -6228,7 +6547,7 @@
|
|
|
6228
6547
|
"--bh-radius-sm-4",
|
|
6229
6548
|
"--bh-space-3xl-16",
|
|
6230
6549
|
"--bh-space-xs-4",
|
|
6231
|
-
"--
|
|
6550
|
+
"--elevation-component-focus-ring"
|
|
6232
6551
|
]
|
|
6233
6552
|
},
|
|
6234
6553
|
"alert": {
|
|
@@ -6427,7 +6746,7 @@
|
|
|
6427
6746
|
"--bh-text-body-md-medium-font-weight",
|
|
6428
6747
|
"--bh-text-body-md-medium-letter-spacing",
|
|
6429
6748
|
"--bh-text-body-md-medium-line-height",
|
|
6430
|
-
"--
|
|
6749
|
+
"--elevation-05"
|
|
6431
6750
|
]
|
|
6432
6751
|
},
|
|
6433
6752
|
"catalog-components": {
|
|
@@ -6543,7 +6862,7 @@
|
|
|
6543
6862
|
"--bh-text-heading-xs-semibold-font-size",
|
|
6544
6863
|
"--bh-text-heading-xs-semibold-font-weight",
|
|
6545
6864
|
"--bh-text-heading-xs-semibold-line-height",
|
|
6546
|
-
"--
|
|
6865
|
+
"--elevation-component-default"
|
|
6547
6866
|
]
|
|
6548
6867
|
},
|
|
6549
6868
|
"breadcrumbs": {
|
|
@@ -6567,6 +6886,7 @@
|
|
|
6567
6886
|
"rtl": {
|
|
6568
6887
|
"inheritsDirection": true,
|
|
6569
6888
|
"layout": "The ordered trail follows inherited inline direction, and chevron separators mirror through :dir(rtl).",
|
|
6889
|
+
"textDirection": "Each label uses dir=\"auto\" so Arabic and Latin crumbs resolve independently and truncate at their content end without changing trail order.",
|
|
6570
6890
|
"semantics": "The root is a named navigation landmark and the final or explicitly current item exposes aria-current=\"page\"."
|
|
6571
6891
|
},
|
|
6572
6892
|
"dependencies": {
|
|
@@ -6772,8 +7092,8 @@
|
|
|
6772
7092
|
"--bh-text-body-xs-regular-font-size",
|
|
6773
7093
|
"--bh-text-body-xs-regular-line-height",
|
|
6774
7094
|
"--bh-underline-offset-default",
|
|
6775
|
-
"--
|
|
6776
|
-
"--
|
|
7095
|
+
"--elevation-02",
|
|
7096
|
+
"--elevation-component-default"
|
|
6777
7097
|
]
|
|
6778
7098
|
},
|
|
6779
7099
|
"table": {
|
|
@@ -6795,9 +7115,15 @@
|
|
|
6795
7115
|
"table",
|
|
6796
7116
|
"data-table"
|
|
6797
7117
|
],
|
|
7118
|
+
"features": [
|
|
7119
|
+
"measured DataTable pagination captions",
|
|
7120
|
+
"explicit DataTable pagination message catalogs",
|
|
7121
|
+
"safe row-key cell fallback"
|
|
7122
|
+
],
|
|
6798
7123
|
"rtl": {
|
|
6799
7124
|
"inheritsDirection": true,
|
|
6800
7125
|
"layout": "Headers, cells, search/filter tools, selection, pagination, and actions inherit direction and use logical alignment.",
|
|
7126
|
+
"textDirection": "Each avatarText name and caption uses dir=\"auto\" to resolve its own content direction, so ellipsis preserves the identifying start without changing the mirrored avatar layout.",
|
|
6801
7127
|
"semantics": "Sortable headers are owned Buttons, selection uses Checkbox, progress cells are named, and row actions expose accessible labels.",
|
|
6802
7128
|
"narrowContainers": "The toolbar wraps and the table owns local horizontal scrolling instead of overlapping controls or overflowing the page."
|
|
6803
7129
|
},
|
|
@@ -6953,7 +7279,7 @@
|
|
|
6953
7279
|
"--bh-text-body-sm-regular-font-weight",
|
|
6954
7280
|
"--bh-text-body-sm-regular-line-height",
|
|
6955
7281
|
"--bh-text-body-xs-regular-font-size",
|
|
6956
|
-
"--
|
|
7282
|
+
"--elevation-component-focus-ring"
|
|
6957
7283
|
]
|
|
6958
7284
|
},
|
|
6959
7285
|
"empty-state": {
|
|
@@ -7104,11 +7430,11 @@
|
|
|
7104
7430
|
"--bh-text-body-md-medium-font-weight",
|
|
7105
7431
|
"--bh-text-body-md-medium-letter-spacing",
|
|
7106
7432
|
"--bh-text-body-md-medium-line-height",
|
|
7107
|
-
"--
|
|
7433
|
+
"--elevation-component-default"
|
|
7108
7434
|
]
|
|
7109
7435
|
},
|
|
7110
7436
|
"page-header": {
|
|
7111
|
-
"description": "Expanded page header composition with breadcrumbs, metadata, description copy, action groups, responsive layout, and
|
|
7437
|
+
"description": "Expanded page header composition with breadcrumbs, metadata, description copy, action groups, responsive layout, and content-safe scrollable local tabs.",
|
|
7112
7438
|
"status": "expanded",
|
|
7113
7439
|
"states": [
|
|
7114
7440
|
"default",
|
|
@@ -7123,10 +7449,17 @@
|
|
|
7123
7449
|
"actions",
|
|
7124
7450
|
"tabs"
|
|
7125
7451
|
],
|
|
7452
|
+
"features": [
|
|
7453
|
+
"Breadcrumb-owned icon-slot visibility",
|
|
7454
|
+
"Button-owned default-density secondary action styling",
|
|
7455
|
+
"content-safe horizontal tab overflow",
|
|
7456
|
+
"full-width tab opt-out"
|
|
7457
|
+
],
|
|
7126
7458
|
"rtl": {
|
|
7127
7459
|
"inheritsDirection": true,
|
|
7128
|
-
"layout": "Heading, metadata, owned Breadcrumbs, Button actions, and Tabs mirror through inherited direction and logical spacing.",
|
|
7129
|
-
"
|
|
7460
|
+
"layout": "Heading, metadata, owned Breadcrumbs, Button actions, and content-safe scrolling Tabs mirror through inherited direction and logical spacing.",
|
|
7461
|
+
"textDirection": "Title and description use dir=\"auto\" so Arabic and Latin copy resolve independently and terminal punctuation stays at the content end.",
|
|
7462
|
+
"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
7463
|
},
|
|
7131
7464
|
"dependencies": {
|
|
7132
7465
|
"lucide-react": "^1.17.0"
|
|
@@ -7161,30 +7494,23 @@
|
|
|
7161
7494
|
"examples/expanded/page-header-demo.tsx"
|
|
7162
7495
|
],
|
|
7163
7496
|
"tokens": [
|
|
7164
|
-
"--bh-
|
|
7165
|
-
"--bh-border-default",
|
|
7497
|
+
"--bh-button-label-padding-x",
|
|
7166
7498
|
"--bh-content-brand-default",
|
|
7167
7499
|
"--bh-content-default",
|
|
7168
7500
|
"--bh-content-muted",
|
|
7169
7501
|
"--bh-content-subtle",
|
|
7170
|
-
"--bh-control-default",
|
|
7171
7502
|
"--bh-focus-ring-width",
|
|
7172
7503
|
"--bh-font-family",
|
|
7173
7504
|
"--bh-icon-stroke-190",
|
|
7174
|
-
"--bh-interactive-secondary-default",
|
|
7175
|
-
"--bh-opacity-muted",
|
|
7176
7505
|
"--bh-space-2xl-14",
|
|
7177
7506
|
"--bh-space-3xl-16",
|
|
7178
7507
|
"--bh-space-4xl-20",
|
|
7179
7508
|
"--bh-space-5xl-24",
|
|
7180
|
-
"--bh-space-6xl-32",
|
|
7181
7509
|
"--bh-space-7xl-40",
|
|
7182
7510
|
"--bh-space-lg-10",
|
|
7183
7511
|
"--bh-space-md-8",
|
|
7184
|
-
"--bh-space-xl-12",
|
|
7185
7512
|
"--bh-space-xs-4",
|
|
7186
7513
|
"--bh-space-xxs-2",
|
|
7187
|
-
"--bh-space-xxxs-1",
|
|
7188
7514
|
"--bh-text-body-2xs-regular-font-size",
|
|
7189
7515
|
"--bh-text-body-2xs-regular-font-weight",
|
|
7190
7516
|
"--bh-text-body-2xs-regular-line-height",
|
|
@@ -7197,8 +7523,7 @@
|
|
|
7197
7523
|
"--bh-text-body-md-regular-line-height",
|
|
7198
7524
|
"--bh-text-heading-md-semibold-font-size",
|
|
7199
7525
|
"--bh-text-heading-md-semibold-font-weight",
|
|
7200
|
-
"--bh-text-heading-md-semibold-line-height"
|
|
7201
|
-
"--shadow-button-secondary"
|
|
7526
|
+
"--bh-text-heading-md-semibold-line-height"
|
|
7202
7527
|
]
|
|
7203
7528
|
},
|
|
7204
7529
|
"slideout": {
|
|
@@ -7308,9 +7633,9 @@
|
|
|
7308
7633
|
"--bh-text-heading-sm-medium-line-height",
|
|
7309
7634
|
"--bh-text-heading-xs-medium-font-size",
|
|
7310
7635
|
"--bh-text-heading-xs-medium-line-height",
|
|
7311
|
-
"--
|
|
7312
|
-
"--
|
|
7313
|
-
"--
|
|
7636
|
+
"--elevation-button-raised",
|
|
7637
|
+
"--elevation-button-soft",
|
|
7638
|
+
"--elevation-component-default"
|
|
7314
7639
|
]
|
|
7315
7640
|
},
|
|
7316
7641
|
"steps": {
|
|
@@ -7454,13 +7779,15 @@
|
|
|
7454
7779
|
"controlled active index",
|
|
7455
7780
|
"controlled value",
|
|
7456
7781
|
"optional panels",
|
|
7457
|
-
"
|
|
7782
|
+
"content-hug tabs",
|
|
7783
|
+
"content-safe full-width tabs",
|
|
7784
|
+
"horizontal overflow without label overlap"
|
|
7458
7785
|
],
|
|
7459
7786
|
"rtl": {
|
|
7460
7787
|
"inheritsDirection": true,
|
|
7461
7788
|
"keyboard": "Radix receives dir so arrow-key navigation follows the document direction.",
|
|
7462
7789
|
"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."
|
|
7790
|
+
"spacing": "Uses inherited direction and logical inline spacing so underline, segmented, and rounded treatments mirror naturally, including horizontal overflow."
|
|
7464
7791
|
},
|
|
7465
7792
|
"files": [
|
|
7466
7793
|
{
|
|
@@ -7503,7 +7830,7 @@
|
|
|
7503
7830
|
"--bh-text-body-md-regular-font-weight",
|
|
7504
7831
|
"--bh-text-body-md-regular-letter-spacing",
|
|
7505
7832
|
"--bh-text-body-md-regular-line-height",
|
|
7506
|
-
"--
|
|
7833
|
+
"--elevation-button-soft"
|
|
7507
7834
|
]
|
|
7508
7835
|
},
|
|
7509
7836
|
"timeline": {
|
|
@@ -7591,7 +7918,928 @@
|
|
|
7591
7918
|
"--bh-timeline-grid-width",
|
|
7592
7919
|
"--bh-timeline-narrow-width",
|
|
7593
7920
|
"--bh-timeline-sidebar-width",
|
|
7594
|
-
"--
|
|
7921
|
+
"--elevation-component-focus-ring"
|
|
7922
|
+
]
|
|
7923
|
+
},
|
|
7924
|
+
"shimmer-text": {
|
|
7925
|
+
"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.",
|
|
7926
|
+
"dependencies": {},
|
|
7927
|
+
"parts": [
|
|
7928
|
+
"ShimmerText"
|
|
7929
|
+
],
|
|
7930
|
+
"supportedExports": [
|
|
7931
|
+
{
|
|
7932
|
+
"source": "components/shimmer-text.tsx",
|
|
7933
|
+
"values": [
|
|
7934
|
+
"ShimmerText"
|
|
7935
|
+
]
|
|
7936
|
+
}
|
|
7937
|
+
],
|
|
7938
|
+
"props": {
|
|
7939
|
+
"animated": {
|
|
7940
|
+
"type": "boolean",
|
|
7941
|
+
"default": "true",
|
|
7942
|
+
"description": "Runs the brightness sweep; set false to keep the same colors without motion."
|
|
7943
|
+
},
|
|
7944
|
+
"tone": {
|
|
7945
|
+
"type": "\"subtle\" | \"default\"",
|
|
7946
|
+
"default": "subtle",
|
|
7947
|
+
"description": "Secondary or primary text color pair for the sweep."
|
|
7948
|
+
}
|
|
7949
|
+
},
|
|
7950
|
+
"tones": [
|
|
7951
|
+
"subtle",
|
|
7952
|
+
"default"
|
|
7953
|
+
],
|
|
7954
|
+
"rtl": {
|
|
7955
|
+
"inheritsDirection": true,
|
|
7956
|
+
"motion": "The shine sweeps from the reading start to the reading end, so RTL text uses mirrored keyframes."
|
|
7957
|
+
},
|
|
7958
|
+
"files": [
|
|
7959
|
+
{
|
|
7960
|
+
"source": "components/shimmer-text.css",
|
|
7961
|
+
"target": "{{ui}}/shimmer-text.css"
|
|
7962
|
+
},
|
|
7963
|
+
{
|
|
7964
|
+
"source": "components/shimmer-text.tsx",
|
|
7965
|
+
"target": "{{ui}}/shimmer-text.tsx"
|
|
7966
|
+
}
|
|
7967
|
+
],
|
|
7968
|
+
"examples": [
|
|
7969
|
+
"examples/shimmer-text-demo.tsx"
|
|
7970
|
+
],
|
|
7971
|
+
"tokens": [
|
|
7972
|
+
"--bh-content-default",
|
|
7973
|
+
"--bh-content-disabled",
|
|
7974
|
+
"--bh-content-subtle",
|
|
7975
|
+
"--bh-easing-standard",
|
|
7976
|
+
"--bh-shimmer-text-duration"
|
|
7977
|
+
]
|
|
7978
|
+
},
|
|
7979
|
+
"thinking-state": {
|
|
7980
|
+
"description": "Minimal shimmering status label that signals an agent is working before its first token arrives.",
|
|
7981
|
+
"dependencies": {},
|
|
7982
|
+
"registryDependencies": [
|
|
7983
|
+
"shimmer-text"
|
|
7984
|
+
],
|
|
7985
|
+
"parts": [
|
|
7986
|
+
"ThinkingState"
|
|
7987
|
+
],
|
|
7988
|
+
"supportedExports": [
|
|
7989
|
+
{
|
|
7990
|
+
"source": "components/thinking-state.tsx",
|
|
7991
|
+
"values": [
|
|
7992
|
+
"ThinkingState"
|
|
7993
|
+
]
|
|
7994
|
+
}
|
|
7995
|
+
],
|
|
7996
|
+
"props": {
|
|
7997
|
+
"status": {
|
|
7998
|
+
"type": "\"thinking\" | \"done\"",
|
|
7999
|
+
"default": "thinking",
|
|
8000
|
+
"description": "Thinking runs the brightness sweep; done leaves the label as static text."
|
|
8001
|
+
},
|
|
8002
|
+
"tone": {
|
|
8003
|
+
"type": "\"subtle\" | \"default\"",
|
|
8004
|
+
"default": "subtle",
|
|
8005
|
+
"description": "Secondary or primary text color pair for the sweep."
|
|
8006
|
+
},
|
|
8007
|
+
"children": {
|
|
8008
|
+
"type": "React.ReactNode",
|
|
8009
|
+
"default": "\"Thinking\"",
|
|
8010
|
+
"description": "Localized label text."
|
|
8011
|
+
}
|
|
8012
|
+
},
|
|
8013
|
+
"tones": [
|
|
8014
|
+
"subtle",
|
|
8015
|
+
"default"
|
|
8016
|
+
],
|
|
8017
|
+
"states": [
|
|
8018
|
+
"thinking",
|
|
8019
|
+
"done"
|
|
8020
|
+
],
|
|
8021
|
+
"rtl": {
|
|
8022
|
+
"inheritsDirection": true,
|
|
8023
|
+
"motion": "The shine sweeps from the reading start to the reading end, so RTL text uses mirrored keyframes."
|
|
8024
|
+
},
|
|
8025
|
+
"files": [
|
|
8026
|
+
{
|
|
8027
|
+
"source": "components/thinking-state.css",
|
|
8028
|
+
"target": "{{ui}}/thinking-state.css"
|
|
8029
|
+
},
|
|
8030
|
+
{
|
|
8031
|
+
"source": "components/thinking-state.tsx",
|
|
8032
|
+
"target": "{{ui}}/thinking-state.tsx"
|
|
8033
|
+
}
|
|
8034
|
+
],
|
|
8035
|
+
"examples": [
|
|
8036
|
+
"examples/thinking-state-demo.tsx"
|
|
8037
|
+
],
|
|
8038
|
+
"tokens": [
|
|
8039
|
+
"--bh-content-subtle",
|
|
8040
|
+
"--bh-font-family",
|
|
8041
|
+
"--bh-text-body-xs-medium-font-size",
|
|
8042
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
8043
|
+
"--bh-text-body-xs-medium-letter-spacing",
|
|
8044
|
+
"--bh-text-body-xs-medium-line-height"
|
|
8045
|
+
]
|
|
8046
|
+
},
|
|
8047
|
+
"thinking-reasoning": {
|
|
8048
|
+
"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.",
|
|
8049
|
+
"dependencies": {
|
|
8050
|
+
"lucide-react": "^1.17.0"
|
|
8051
|
+
},
|
|
8052
|
+
"registryDependencies": [
|
|
8053
|
+
"collapsible",
|
|
8054
|
+
"shimmer-text"
|
|
8055
|
+
],
|
|
8056
|
+
"parts": [
|
|
8057
|
+
"ThinkingReasoning"
|
|
8058
|
+
],
|
|
8059
|
+
"supportedExports": [
|
|
8060
|
+
{
|
|
8061
|
+
"source": "components/thinking-reasoning.tsx",
|
|
8062
|
+
"values": [
|
|
8063
|
+
"ThinkingReasoning"
|
|
8064
|
+
]
|
|
8065
|
+
}
|
|
8066
|
+
],
|
|
8067
|
+
"props": {
|
|
8068
|
+
"steps": {
|
|
8069
|
+
"type": "readonly string[]",
|
|
8070
|
+
"default": null,
|
|
8071
|
+
"description": "Reasoning sentences in arrival order; append to stream new ones."
|
|
8072
|
+
},
|
|
8073
|
+
"status": {
|
|
8074
|
+
"type": "\"thinking\" | \"done\"",
|
|
8075
|
+
"default": "thinking",
|
|
8076
|
+
"description": "Thinking keeps the block open and auto-scrolling; done folds it into the summary."
|
|
8077
|
+
},
|
|
8078
|
+
"duration": {
|
|
8079
|
+
"type": "number",
|
|
8080
|
+
"default": "measured",
|
|
8081
|
+
"description": "Seconds shown in the summary; measured from mount when omitted."
|
|
8082
|
+
},
|
|
8083
|
+
"open": {
|
|
8084
|
+
"type": "boolean",
|
|
8085
|
+
"default": "false",
|
|
8086
|
+
"description": "Controls whether the finished reasoning is unfolded."
|
|
8087
|
+
},
|
|
8088
|
+
"reserveSpace": {
|
|
8089
|
+
"type": "boolean",
|
|
8090
|
+
"default": "false",
|
|
8091
|
+
"description": "Keeps the block height stable while folding so content below does not jump."
|
|
8092
|
+
},
|
|
8093
|
+
"labels": {
|
|
8094
|
+
"type": "Partial<ThinkingReasoningLabels>",
|
|
8095
|
+
"default": "English",
|
|
8096
|
+
"description": "Localized thinking, thought, and duration copy; the finished summary also names the toggle."
|
|
8097
|
+
}
|
|
8098
|
+
},
|
|
8099
|
+
"states": [
|
|
8100
|
+
"thinking",
|
|
8101
|
+
"done",
|
|
8102
|
+
"open",
|
|
8103
|
+
"closed"
|
|
8104
|
+
],
|
|
8105
|
+
"rtl": {
|
|
8106
|
+
"inheritsDirection": true,
|
|
8107
|
+
"layout": "Header, chevron, and sentences use logical alignment; the vertical auto-scroll and fades are direction-neutral."
|
|
8108
|
+
},
|
|
8109
|
+
"files": [
|
|
8110
|
+
{
|
|
8111
|
+
"source": "components/thinking-reasoning.css",
|
|
8112
|
+
"target": "{{ui}}/thinking-reasoning.css"
|
|
8113
|
+
},
|
|
8114
|
+
{
|
|
8115
|
+
"source": "components/thinking-reasoning.tsx",
|
|
8116
|
+
"target": "{{ui}}/thinking-reasoning.tsx"
|
|
8117
|
+
}
|
|
8118
|
+
],
|
|
8119
|
+
"examples": [
|
|
8120
|
+
"examples/thinking-reasoning-demo.tsx"
|
|
8121
|
+
],
|
|
8122
|
+
"tokens": [
|
|
8123
|
+
"--bh-content-muted",
|
|
8124
|
+
"--bh-content-subtle",
|
|
8125
|
+
"--bh-duration-fast",
|
|
8126
|
+
"--bh-duration-moderate",
|
|
8127
|
+
"--bh-duration-slow",
|
|
8128
|
+
"--bh-duration-slower",
|
|
8129
|
+
"--bh-easing-emphasized",
|
|
8130
|
+
"--bh-easing-standard",
|
|
8131
|
+
"--bh-font-family",
|
|
8132
|
+
"--bh-icon-stroke-180",
|
|
8133
|
+
"--bh-opacity-0",
|
|
8134
|
+
"--bh-opacity-100",
|
|
8135
|
+
"--bh-radius-sm-4",
|
|
8136
|
+
"--bh-space-sm-6",
|
|
8137
|
+
"--bh-space-xl-12",
|
|
8138
|
+
"--bh-space-xs-4",
|
|
8139
|
+
"--bh-text-body-xs-medium-font-size",
|
|
8140
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
8141
|
+
"--bh-text-body-xs-medium-letter-spacing",
|
|
8142
|
+
"--bh-text-body-xs-medium-line-height",
|
|
8143
|
+
"--bh-text-body-xs-regular-font-size",
|
|
8144
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
8145
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
8146
|
+
"--bh-text-body-xs-regular-line-height",
|
|
8147
|
+
"--bh-thinking-reasoning-fade",
|
|
8148
|
+
"--bh-thinking-reasoning-max-height",
|
|
8149
|
+
"--bh-thinking-reasoning-width",
|
|
8150
|
+
"--elevation-component-focus-ring"
|
|
8151
|
+
]
|
|
8152
|
+
},
|
|
8153
|
+
"streaming-text": {
|
|
8154
|
+
"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.",
|
|
8155
|
+
"dependencies": {},
|
|
8156
|
+
"parts": [
|
|
8157
|
+
"StreamingText"
|
|
8158
|
+
],
|
|
8159
|
+
"supportedExports": [
|
|
8160
|
+
{
|
|
8161
|
+
"source": "components/streaming-text.tsx",
|
|
8162
|
+
"values": [
|
|
8163
|
+
"StreamingText",
|
|
8164
|
+
"useTypewriter"
|
|
8165
|
+
]
|
|
8166
|
+
}
|
|
8167
|
+
],
|
|
8168
|
+
"props": {
|
|
8169
|
+
"text": {
|
|
8170
|
+
"type": "string",
|
|
8171
|
+
"default": null,
|
|
8172
|
+
"description": "The text that has arrived so far."
|
|
8173
|
+
},
|
|
8174
|
+
"streaming": {
|
|
8175
|
+
"type": "boolean",
|
|
8176
|
+
"default": "false",
|
|
8177
|
+
"description": "True while more text is on its way; keeps the caret solid and sets aria-busy."
|
|
8178
|
+
},
|
|
8179
|
+
"caret": {
|
|
8180
|
+
"type": "boolean",
|
|
8181
|
+
"default": "true",
|
|
8182
|
+
"description": "Shows the caret after the visible text."
|
|
8183
|
+
},
|
|
8184
|
+
"as": {
|
|
8185
|
+
"type": "\"p\" | \"div\" | \"span\"",
|
|
8186
|
+
"default": "p",
|
|
8187
|
+
"description": "Rendered element; the ref is an HTMLElement for all three."
|
|
8188
|
+
},
|
|
8189
|
+
"speed": {
|
|
8190
|
+
"type": "number",
|
|
8191
|
+
"default": "220",
|
|
8192
|
+
"description": "useTypewriter option: characters revealed per second."
|
|
8193
|
+
}
|
|
8194
|
+
},
|
|
8195
|
+
"states": [
|
|
8196
|
+
"streaming",
|
|
8197
|
+
"complete"
|
|
8198
|
+
],
|
|
8199
|
+
"features": [
|
|
8200
|
+
"caller-driven streaming",
|
|
8201
|
+
"local typewriter reveal",
|
|
8202
|
+
"reduced motion",
|
|
8203
|
+
"RTL"
|
|
8204
|
+
],
|
|
8205
|
+
"rtl": {
|
|
8206
|
+
"inheritsDirection": true,
|
|
8207
|
+
"layout": "The caret follows the text through logical margins, so it trails Arabic text at its end edge."
|
|
8208
|
+
},
|
|
8209
|
+
"files": [
|
|
8210
|
+
{
|
|
8211
|
+
"source": "components/streaming-text.css",
|
|
8212
|
+
"target": "{{ui}}/streaming-text.css"
|
|
8213
|
+
},
|
|
8214
|
+
{
|
|
8215
|
+
"source": "components/streaming-text.tsx",
|
|
8216
|
+
"target": "{{ui}}/streaming-text.tsx"
|
|
8217
|
+
}
|
|
8218
|
+
],
|
|
8219
|
+
"examples": [
|
|
8220
|
+
"examples/streaming-text-demo.tsx"
|
|
8221
|
+
],
|
|
8222
|
+
"tokens": [
|
|
8223
|
+
"--bh-content-default",
|
|
8224
|
+
"--bh-font-family",
|
|
8225
|
+
"--bh-opacity-0",
|
|
8226
|
+
"--bh-opacity-100",
|
|
8227
|
+
"--bh-radius-full",
|
|
8228
|
+
"--bh-space-xxs-2",
|
|
8229
|
+
"--bh-streaming-text-caret-duration",
|
|
8230
|
+
"--bh-streaming-text-caret-width",
|
|
8231
|
+
"--bh-text-body-sm-regular-font-size",
|
|
8232
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
8233
|
+
"--bh-text-body-sm-regular-letter-spacing",
|
|
8234
|
+
"--bh-text-body-sm-regular-line-height"
|
|
8235
|
+
]
|
|
8236
|
+
},
|
|
8237
|
+
"inline-citations": {
|
|
8238
|
+
"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.",
|
|
8239
|
+
"dependencies": {
|
|
8240
|
+
"lucide-react": "^1.17.0"
|
|
8241
|
+
},
|
|
8242
|
+
"registryDependencies": [
|
|
8243
|
+
"tooltip"
|
|
8244
|
+
],
|
|
8245
|
+
"parts": [
|
|
8246
|
+
"InlineCitations",
|
|
8247
|
+
"CitationProse",
|
|
8248
|
+
"CitationMark",
|
|
8249
|
+
"CitationList",
|
|
8250
|
+
"CitationItem"
|
|
8251
|
+
],
|
|
8252
|
+
"supportedExports": [
|
|
8253
|
+
{
|
|
8254
|
+
"source": "components/inline-citations.tsx",
|
|
8255
|
+
"values": [
|
|
8256
|
+
"CitationItem",
|
|
8257
|
+
"CitationList",
|
|
8258
|
+
"CitationMark",
|
|
8259
|
+
"CitationProse",
|
|
8260
|
+
"InlineCitations"
|
|
8261
|
+
]
|
|
8262
|
+
}
|
|
8263
|
+
],
|
|
8264
|
+
"props": {
|
|
8265
|
+
"children": {
|
|
8266
|
+
"type": "React.ReactNode",
|
|
8267
|
+
"default": null,
|
|
8268
|
+
"description": "Cited prose: CitationProse paragraphs with CitationMark markers that find their source by number."
|
|
8269
|
+
},
|
|
8270
|
+
"sources": {
|
|
8271
|
+
"type": "readonly CitationSource[]",
|
|
8272
|
+
"default": null,
|
|
8273
|
+
"description": "Cited sources with label, url, optional host, and optional marker number. Only http and https URLs become links."
|
|
8274
|
+
},
|
|
8275
|
+
"showSources": {
|
|
8276
|
+
"type": "boolean",
|
|
8277
|
+
"default": "true",
|
|
8278
|
+
"description": "Renders the compact source list under the prose when there are sources."
|
|
8279
|
+
},
|
|
8280
|
+
"labels": {
|
|
8281
|
+
"type": "Partial<InlineCitationsLabels>",
|
|
8282
|
+
"default": "English",
|
|
8283
|
+
"description": "Localized accessible names for markers and the source list."
|
|
8284
|
+
}
|
|
8285
|
+
},
|
|
8286
|
+
"rtl": {
|
|
8287
|
+
"inheritsDirection": true,
|
|
8288
|
+
"layout": "Chips and list rows use logical margins and gaps; hosts stay LTR and the external arrow mirrors."
|
|
8289
|
+
},
|
|
8290
|
+
"files": [
|
|
8291
|
+
{
|
|
8292
|
+
"source": "components/inline-citations.css",
|
|
8293
|
+
"target": "{{ui}}/inline-citations.css"
|
|
8294
|
+
},
|
|
8295
|
+
{
|
|
8296
|
+
"source": "components/inline-citations.tsx",
|
|
8297
|
+
"target": "{{ui}}/inline-citations.tsx"
|
|
8298
|
+
}
|
|
8299
|
+
],
|
|
8300
|
+
"examples": [
|
|
8301
|
+
"examples/inline-citations-demo.tsx"
|
|
8302
|
+
],
|
|
8303
|
+
"tokens": [
|
|
8304
|
+
"--bh-border-subtle",
|
|
8305
|
+
"--bh-border-width-default",
|
|
8306
|
+
"--bh-citation-mark-size",
|
|
8307
|
+
"--bh-content-default",
|
|
8308
|
+
"--bh-content-subtle",
|
|
8309
|
+
"--bh-duration-default",
|
|
8310
|
+
"--bh-duration-fast",
|
|
8311
|
+
"--bh-easing-standard",
|
|
8312
|
+
"--bh-font-family",
|
|
8313
|
+
"--bh-icon-stroke-180",
|
|
8314
|
+
"--bh-interactive-soft-default",
|
|
8315
|
+
"--bh-interactive-soft-hover",
|
|
8316
|
+
"--bh-opacity-0",
|
|
8317
|
+
"--bh-opacity-100",
|
|
8318
|
+
"--bh-radius-sm-4",
|
|
8319
|
+
"--bh-space-lg-10",
|
|
8320
|
+
"--bh-space-sm-6",
|
|
8321
|
+
"--bh-space-xl-12",
|
|
8322
|
+
"--bh-space-xxs-2",
|
|
8323
|
+
"--bh-space-xxxs-1",
|
|
8324
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
8325
|
+
"--bh-text-body-2xs-regular-font-weight",
|
|
8326
|
+
"--bh-text-body-2xs-regular-letter-spacing",
|
|
8327
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
8328
|
+
"--bh-text-body-3xs-semibold-font-size",
|
|
8329
|
+
"--bh-text-body-3xs-semibold-font-weight",
|
|
8330
|
+
"--bh-text-body-3xs-semibold-letter-spacing",
|
|
8331
|
+
"--bh-text-body-sm-regular-font-size",
|
|
8332
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
8333
|
+
"--bh-text-body-sm-regular-letter-spacing",
|
|
8334
|
+
"--bh-text-body-sm-regular-line-height",
|
|
8335
|
+
"--elevation-component-focus-ring"
|
|
8336
|
+
]
|
|
8337
|
+
},
|
|
8338
|
+
"rolling-count": {
|
|
8339
|
+
"description": "Tabular figures that roll each changed character into place like an odometer while assistive technology reads the plain value.",
|
|
8340
|
+
"dependencies": {},
|
|
8341
|
+
"parts": [
|
|
8342
|
+
"RollingCount"
|
|
8343
|
+
],
|
|
8344
|
+
"supportedExports": [
|
|
8345
|
+
{
|
|
8346
|
+
"source": "components/rolling-count.tsx",
|
|
8347
|
+
"values": [
|
|
8348
|
+
"RollingCount"
|
|
8349
|
+
]
|
|
8350
|
+
}
|
|
8351
|
+
],
|
|
8352
|
+
"props": {
|
|
8353
|
+
"value": {
|
|
8354
|
+
"type": "string",
|
|
8355
|
+
"default": null,
|
|
8356
|
+
"description": "Text to show; each changed character rolls up or down into place."
|
|
8357
|
+
},
|
|
8358
|
+
"aria-label": {
|
|
8359
|
+
"type": "string",
|
|
8360
|
+
"default": null,
|
|
8361
|
+
"description": "What assistive technology reads instead of the value, for example 2 of 5 done."
|
|
8362
|
+
},
|
|
8363
|
+
"dir": {
|
|
8364
|
+
"type": "\"ltr\" | \"rtl\"",
|
|
8365
|
+
"default": "ltr",
|
|
8366
|
+
"description": "Glyph order. Stays left-to-right by default so values like 2/5 keep their order inside RTL copy."
|
|
8367
|
+
}
|
|
8368
|
+
},
|
|
8369
|
+
"rtl": {
|
|
8370
|
+
"inheritsDirection": false,
|
|
8371
|
+
"layout": "Digits keep left-to-right order inside RTL copy so separators such as 2/5 stay in reading order."
|
|
8372
|
+
},
|
|
8373
|
+
"files": [
|
|
8374
|
+
{
|
|
8375
|
+
"source": "components/rolling-count.css",
|
|
8376
|
+
"target": "{{ui}}/rolling-count.css"
|
|
8377
|
+
},
|
|
8378
|
+
{
|
|
8379
|
+
"source": "components/rolling-count.tsx",
|
|
8380
|
+
"target": "{{ui}}/rolling-count.tsx"
|
|
8381
|
+
}
|
|
8382
|
+
],
|
|
8383
|
+
"examples": [
|
|
8384
|
+
"examples/rolling-count-demo.tsx"
|
|
8385
|
+
],
|
|
8386
|
+
"tokens": [
|
|
8387
|
+
"--bh-duration-slow",
|
|
8388
|
+
"--bh-easing-standard"
|
|
8389
|
+
]
|
|
8390
|
+
},
|
|
8391
|
+
"task-list": {
|
|
8392
|
+
"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.",
|
|
8393
|
+
"dependencies": {
|
|
8394
|
+
"lucide-react": "^1.17.0"
|
|
8395
|
+
},
|
|
8396
|
+
"registryDependencies": [
|
|
8397
|
+
"collapsible",
|
|
8398
|
+
"rolling-count",
|
|
8399
|
+
"shimmer-text"
|
|
8400
|
+
],
|
|
8401
|
+
"parts": [
|
|
8402
|
+
"TaskList",
|
|
8403
|
+
"TaskListRoot",
|
|
8404
|
+
"TaskListHeader",
|
|
8405
|
+
"TaskListItems",
|
|
8406
|
+
"TaskListPreview"
|
|
8407
|
+
],
|
|
8408
|
+
"supportedExports": [
|
|
8409
|
+
{
|
|
8410
|
+
"source": "components/task-list.tsx",
|
|
8411
|
+
"values": [
|
|
8412
|
+
"TaskList",
|
|
8413
|
+
"TaskListHeader",
|
|
8414
|
+
"TaskListItems",
|
|
8415
|
+
"TaskListPreview",
|
|
8416
|
+
"TaskListRoot"
|
|
8417
|
+
]
|
|
8418
|
+
}
|
|
8419
|
+
],
|
|
8420
|
+
"props": {
|
|
8421
|
+
"items": {
|
|
8422
|
+
"type": "readonly TaskListItem[]",
|
|
8423
|
+
"default": null,
|
|
8424
|
+
"description": "Rows with id, label, and pending, active, or done status."
|
|
8425
|
+
},
|
|
8426
|
+
"surface": {
|
|
8427
|
+
"type": "\"card\" | \"well\" | \"plain\"",
|
|
8428
|
+
"default": "card",
|
|
8429
|
+
"description": "Raised card, subtle well for embedding, or no surface."
|
|
8430
|
+
},
|
|
8431
|
+
"labels": {
|
|
8432
|
+
"type": "Partial<TaskListLabels>",
|
|
8433
|
+
"default": "English",
|
|
8434
|
+
"description": "Localized counter copy, read after the title in the toggle's name."
|
|
8435
|
+
},
|
|
8436
|
+
"visibleCount": {
|
|
8437
|
+
"type": "number",
|
|
8438
|
+
"default": "3",
|
|
8439
|
+
"description": "TaskListPreview: rows shown before the rest fold behind a more control."
|
|
8440
|
+
}
|
|
8441
|
+
},
|
|
8442
|
+
"states": [
|
|
8443
|
+
"pending",
|
|
8444
|
+
"active",
|
|
8445
|
+
"done"
|
|
8446
|
+
],
|
|
8447
|
+
"variants": [
|
|
8448
|
+
"card",
|
|
8449
|
+
"well",
|
|
8450
|
+
"plain"
|
|
8451
|
+
],
|
|
8452
|
+
"features": [
|
|
8453
|
+
"controlled state",
|
|
8454
|
+
"uncontrolled state",
|
|
8455
|
+
"composable parts",
|
|
8456
|
+
"preview fold",
|
|
8457
|
+
"reduced motion",
|
|
8458
|
+
"RTL"
|
|
8459
|
+
],
|
|
8460
|
+
"rtl": {
|
|
8461
|
+
"inheritsDirection": true,
|
|
8462
|
+
"layout": "Rows, counters, and the collapse chevron use logical placement; the active arrow icon mirrors."
|
|
8463
|
+
},
|
|
8464
|
+
"files": [
|
|
8465
|
+
{
|
|
8466
|
+
"source": "components/task-list.css",
|
|
8467
|
+
"target": "{{ui}}/task-list.css"
|
|
8468
|
+
},
|
|
8469
|
+
{
|
|
8470
|
+
"source": "components/task-list.tsx",
|
|
8471
|
+
"target": "{{ui}}/task-list.tsx"
|
|
8472
|
+
}
|
|
8473
|
+
],
|
|
8474
|
+
"examples": [
|
|
8475
|
+
"examples/task-list-demo.tsx"
|
|
8476
|
+
],
|
|
8477
|
+
"tokens": [
|
|
8478
|
+
"--bh-bg-raised",
|
|
8479
|
+
"--bh-bg-subtle",
|
|
8480
|
+
"--bh-content-default",
|
|
8481
|
+
"--bh-content-subtle",
|
|
8482
|
+
"--bh-content-success-default",
|
|
8483
|
+
"--bh-duration-default",
|
|
8484
|
+
"--bh-duration-fast",
|
|
8485
|
+
"--bh-duration-moderate",
|
|
8486
|
+
"--bh-duration-slow",
|
|
8487
|
+
"--bh-easing-standard",
|
|
8488
|
+
"--bh-font-family",
|
|
8489
|
+
"--bh-icon-stroke-180",
|
|
8490
|
+
"--bh-icon-stroke-200",
|
|
8491
|
+
"--bh-opacity-0",
|
|
8492
|
+
"--bh-opacity-100",
|
|
8493
|
+
"--bh-radius-2xl-12",
|
|
8494
|
+
"--bh-radius-full",
|
|
8495
|
+
"--bh-radius-lg-8",
|
|
8496
|
+
"--bh-radius-sm-4",
|
|
8497
|
+
"--bh-space-4xl-20",
|
|
8498
|
+
"--bh-space-lg-10",
|
|
8499
|
+
"--bh-space-md-8",
|
|
8500
|
+
"--bh-space-sm-6",
|
|
8501
|
+
"--bh-space-xl-12",
|
|
8502
|
+
"--bh-space-xs-4",
|
|
8503
|
+
"--bh-space-xxs-2",
|
|
8504
|
+
"--bh-space-xxxs-1",
|
|
8505
|
+
"--bh-task-list-icon-size",
|
|
8506
|
+
"--bh-task-list-stagger",
|
|
8507
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
8508
|
+
"--bh-text-body-xs-regular-font-size",
|
|
8509
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
8510
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
8511
|
+
"--bh-text-body-xs-regular-line-height",
|
|
8512
|
+
"--elevation-02",
|
|
8513
|
+
"--elevation-component-focus-ring"
|
|
8514
|
+
]
|
|
8515
|
+
},
|
|
8516
|
+
"agent-input": {
|
|
8517
|
+
"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.",
|
|
8518
|
+
"dependencies": {
|
|
8519
|
+
"lucide-react": "^1.17.0"
|
|
8520
|
+
},
|
|
8521
|
+
"registryDependencies": [
|
|
8522
|
+
"button",
|
|
8523
|
+
"menu",
|
|
8524
|
+
"shimmer-text",
|
|
8525
|
+
"spinner",
|
|
8526
|
+
"tag"
|
|
8527
|
+
],
|
|
8528
|
+
"parts": [
|
|
8529
|
+
"AgentInput"
|
|
8530
|
+
],
|
|
8531
|
+
"supportedExports": [
|
|
8532
|
+
{
|
|
8533
|
+
"source": "components/agent-input.tsx",
|
|
8534
|
+
"values": [
|
|
8535
|
+
"AgentInput"
|
|
8536
|
+
]
|
|
8537
|
+
}
|
|
8538
|
+
],
|
|
8539
|
+
"props": {
|
|
8540
|
+
"value": {
|
|
8541
|
+
"type": "string",
|
|
8542
|
+
"default": null,
|
|
8543
|
+
"description": "Controlled prompt text; use defaultValue for uncontrolled usage."
|
|
8544
|
+
},
|
|
8545
|
+
"onSend": {
|
|
8546
|
+
"type": "(payload: AgentInputPayload) => void",
|
|
8547
|
+
"default": null,
|
|
8548
|
+
"description": "Receives text, attachments, skills, and the selected model; picked attachments carry their File for upload."
|
|
8549
|
+
},
|
|
8550
|
+
"onEnhance": {
|
|
8551
|
+
"type": "(prompt: string, signal: AbortSignal) => Promise<string>",
|
|
8552
|
+
"default": null,
|
|
8553
|
+
"description": "Enables the Enhance Prompt action; resolves to the rewritten prompt."
|
|
8554
|
+
},
|
|
8555
|
+
"models": {
|
|
8556
|
+
"type": "readonly AgentInputModel[]",
|
|
8557
|
+
"default": "[]",
|
|
8558
|
+
"description": "Selectable models with name, description, meta, and icon."
|
|
8559
|
+
},
|
|
8560
|
+
"skills": {
|
|
8561
|
+
"type": "readonly AgentInputSkill[]",
|
|
8562
|
+
"default": "[]",
|
|
8563
|
+
"description": "Skills available from the add menu and the slash palette."
|
|
8564
|
+
},
|
|
8565
|
+
"attachments": {
|
|
8566
|
+
"type": "readonly AgentInputAttachment[]",
|
|
8567
|
+
"default": null,
|
|
8568
|
+
"description": "Controlled attachment chips; omit to let the field own picked files."
|
|
8569
|
+
},
|
|
8570
|
+
"onAttachmentsChange": {
|
|
8571
|
+
"type": "(attachments: AgentInputAttachment[]) => void",
|
|
8572
|
+
"default": null,
|
|
8573
|
+
"description": "Called when chips are added or removed; picked files arrive with their File, so uploads can start right away."
|
|
8574
|
+
},
|
|
8575
|
+
"labels": {
|
|
8576
|
+
"type": "Partial<AgentInputLabels>",
|
|
8577
|
+
"default": "English",
|
|
8578
|
+
"description": "Localized placeholder, menu, action, and remove copy."
|
|
8579
|
+
}
|
|
8580
|
+
},
|
|
8581
|
+
"states": [
|
|
8582
|
+
"idle",
|
|
8583
|
+
"enhancing",
|
|
8584
|
+
"enhanced"
|
|
8585
|
+
],
|
|
8586
|
+
"rtl": {
|
|
8587
|
+
"inheritsDirection": true,
|
|
8588
|
+
"layout": "The editor, chips, palette, and action row use logical spacing; the add menu and slash palette open toward the logical start."
|
|
8589
|
+
},
|
|
8590
|
+
"files": [
|
|
8591
|
+
{
|
|
8592
|
+
"source": "components/agent-input.css",
|
|
8593
|
+
"target": "{{ui}}/agent-input.css"
|
|
8594
|
+
},
|
|
8595
|
+
{
|
|
8596
|
+
"source": "components/agent-input.tsx",
|
|
8597
|
+
"target": "{{ui}}/agent-input.tsx"
|
|
8598
|
+
},
|
|
8599
|
+
{
|
|
8600
|
+
"source": "components/agent-input-parts.tsx",
|
|
8601
|
+
"target": "{{ui}}/agent-input-parts.tsx",
|
|
8602
|
+
"internal": true
|
|
8603
|
+
},
|
|
8604
|
+
{
|
|
8605
|
+
"source": "components/agent-input-state.ts",
|
|
8606
|
+
"target": "{{ui}}/agent-input-state.ts",
|
|
8607
|
+
"internal": true
|
|
8608
|
+
}
|
|
8609
|
+
],
|
|
8610
|
+
"examples": [
|
|
8611
|
+
"examples/agent-input-demo.tsx"
|
|
8612
|
+
],
|
|
8613
|
+
"tokens": [
|
|
8614
|
+
"--bh-agent-input-field-max-height",
|
|
8615
|
+
"--bh-agent-input-palette-width",
|
|
8616
|
+
"--bh-agent-input-ring-duration",
|
|
8617
|
+
"--bh-agent-input-ring-width",
|
|
8618
|
+
"--bh-bg-raised",
|
|
8619
|
+
"--bh-button-xs-height",
|
|
8620
|
+
"--bh-content-accent-aqua-default",
|
|
8621
|
+
"--bh-content-accent-blue-default",
|
|
8622
|
+
"--bh-content-accent-fuchsia-default",
|
|
8623
|
+
"--bh-content-accent-purple-default",
|
|
8624
|
+
"--bh-content-default",
|
|
8625
|
+
"--bh-content-disabled",
|
|
8626
|
+
"--bh-content-muted",
|
|
8627
|
+
"--bh-content-subtle",
|
|
8628
|
+
"--bh-duration-default",
|
|
8629
|
+
"--bh-duration-moderate",
|
|
8630
|
+
"--bh-easing-emphasized",
|
|
8631
|
+
"--bh-font-family",
|
|
8632
|
+
"--bh-menu-bg",
|
|
8633
|
+
"--bh-menu-item-hover-bg",
|
|
8634
|
+
"--bh-menu-item-radius",
|
|
8635
|
+
"--bh-menu-radius",
|
|
8636
|
+
"--bh-opacity-0",
|
|
8637
|
+
"--bh-opacity-100",
|
|
8638
|
+
"--bh-radius-2xl-12",
|
|
8639
|
+
"--bh-space-2xl-14",
|
|
8640
|
+
"--bh-space-6xl-32",
|
|
8641
|
+
"--bh-space-lg-10",
|
|
8642
|
+
"--bh-space-md-8",
|
|
8643
|
+
"--bh-space-sm-6",
|
|
8644
|
+
"--bh-space-xl-12",
|
|
8645
|
+
"--bh-space-xs-4",
|
|
8646
|
+
"--bh-space-xxs-2",
|
|
8647
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
8648
|
+
"--bh-text-body-2xs-regular-font-weight",
|
|
8649
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
8650
|
+
"--bh-text-body-sm-regular-font-size",
|
|
8651
|
+
"--bh-text-body-sm-regular-font-weight",
|
|
8652
|
+
"--bh-text-body-sm-regular-letter-spacing",
|
|
8653
|
+
"--bh-text-body-sm-regular-line-height",
|
|
8654
|
+
"--bh-text-body-xs-regular-font-size",
|
|
8655
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
8656
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
8657
|
+
"--bh-text-body-xs-regular-line-height",
|
|
8658
|
+
"--bh-z-popover",
|
|
8659
|
+
"--elevation-02",
|
|
8660
|
+
"--elevation-menu"
|
|
8661
|
+
]
|
|
8662
|
+
},
|
|
8663
|
+
"approval-card": {
|
|
8664
|
+
"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.",
|
|
8665
|
+
"dependencies": {
|
|
8666
|
+
"lucide-react": "^1.17.0"
|
|
8667
|
+
},
|
|
8668
|
+
"registryDependencies": [
|
|
8669
|
+
"button",
|
|
8670
|
+
"kbd",
|
|
8671
|
+
"rolling-count",
|
|
8672
|
+
"task-list",
|
|
8673
|
+
"tooltip"
|
|
8674
|
+
],
|
|
8675
|
+
"parts": [
|
|
8676
|
+
"ApprovalQuestions",
|
|
8677
|
+
"ApprovalCommand",
|
|
8678
|
+
"ApprovalPlan",
|
|
8679
|
+
"ApprovalFrame"
|
|
8680
|
+
],
|
|
8681
|
+
"supportedExports": [
|
|
8682
|
+
{
|
|
8683
|
+
"source": "components/approval-card.tsx",
|
|
8684
|
+
"values": [
|
|
8685
|
+
"ApprovalCommand",
|
|
8686
|
+
"ApprovalFrame",
|
|
8687
|
+
"ApprovalPlan",
|
|
8688
|
+
"ApprovalQuestions"
|
|
8689
|
+
]
|
|
8690
|
+
}
|
|
8691
|
+
],
|
|
8692
|
+
"props": {
|
|
8693
|
+
"questions": {
|
|
8694
|
+
"type": "readonly ApprovalQuestion[]",
|
|
8695
|
+
"default": null,
|
|
8696
|
+
"description": "ApprovalQuestions: single-choice questions, each with a free-text Something else option."
|
|
8697
|
+
},
|
|
8698
|
+
"command": {
|
|
8699
|
+
"type": "string",
|
|
8700
|
+
"default": null,
|
|
8701
|
+
"description": "ApprovalCommand: shell command shown in the mono block."
|
|
8702
|
+
},
|
|
8703
|
+
"cwd": {
|
|
8704
|
+
"type": "string",
|
|
8705
|
+
"default": null,
|
|
8706
|
+
"description": "ApprovalCommand: working directory shown above the command."
|
|
8707
|
+
},
|
|
8708
|
+
"plan": {
|
|
8709
|
+
"type": "readonly ApprovalPlanStep[]",
|
|
8710
|
+
"default": null,
|
|
8711
|
+
"description": "ApprovalPlan: steps with an id and a title, rendered as a pending to-do list. Step details belong in the full plan."
|
|
8712
|
+
},
|
|
8713
|
+
"planPreviewCount": {
|
|
8714
|
+
"type": "number",
|
|
8715
|
+
"default": "3",
|
|
8716
|
+
"description": "ApprovalPlan: steps shown before the more fold."
|
|
8717
|
+
},
|
|
8718
|
+
"autoApproveSeconds": {
|
|
8719
|
+
"type": "number",
|
|
8720
|
+
"default": "0",
|
|
8721
|
+
"description": "ApprovalPlan: opt-in countdown; at zero onApprove fires with source timeout. Either action cancels it. A new value restarts it."
|
|
8722
|
+
},
|
|
8723
|
+
"icon": {
|
|
8724
|
+
"type": "React.ReactNode",
|
|
8725
|
+
"default": null,
|
|
8726
|
+
"description": "ApprovalFrame: header glyph, sized and stroked by the tinted icon tile."
|
|
8727
|
+
},
|
|
8728
|
+
"tone": {
|
|
8729
|
+
"type": "\"info\" | \"warning\" | \"success\"",
|
|
8730
|
+
"default": null,
|
|
8731
|
+
"description": "ApprovalFrame: tint of the icon tile. Questions use info, commands warning, and plans success."
|
|
8732
|
+
},
|
|
8733
|
+
"onApprove": {
|
|
8734
|
+
"type": "callback",
|
|
8735
|
+
"default": null,
|
|
8736
|
+
"description": "Primary action. ApprovalQuestions passes { answers }, ApprovalPlan passes { source: user | timeout }, and ApprovalCommand passes nothing."
|
|
8737
|
+
},
|
|
8738
|
+
"onReject": {
|
|
8739
|
+
"type": "() => void",
|
|
8740
|
+
"default": null,
|
|
8741
|
+
"description": "Skip action on ApprovalQuestions and ApprovalCommand."
|
|
8742
|
+
},
|
|
8743
|
+
"onViewPlan": {
|
|
8744
|
+
"type": "() => void",
|
|
8745
|
+
"default": null,
|
|
8746
|
+
"description": "ApprovalPlan secondary action that opens the full plan; it also stops the countdown."
|
|
8747
|
+
},
|
|
8748
|
+
"labels": {
|
|
8749
|
+
"type": "Partial<ApprovalQuestionsLabels> | Partial<ApprovalPlanLabels>",
|
|
8750
|
+
"default": "English",
|
|
8751
|
+
"description": "Localized navigation, countdown, and helper copy for the card that uses them."
|
|
8752
|
+
}
|
|
8753
|
+
},
|
|
8754
|
+
"rtl": {
|
|
8755
|
+
"inheritsDirection": true,
|
|
8756
|
+
"layout": "Header, options, and actions use logical alignment; the command block and paths stay LTR while the submit arrow mirrors."
|
|
8757
|
+
},
|
|
8758
|
+
"files": [
|
|
8759
|
+
{
|
|
8760
|
+
"source": "components/approval-card.css",
|
|
8761
|
+
"target": "{{ui}}/approval-card.css"
|
|
8762
|
+
},
|
|
8763
|
+
{
|
|
8764
|
+
"source": "components/approval-card.tsx",
|
|
8765
|
+
"target": "{{ui}}/approval-card.tsx"
|
|
8766
|
+
},
|
|
8767
|
+
{
|
|
8768
|
+
"source": "components/approval-frame.tsx",
|
|
8769
|
+
"target": "{{ui}}/approval-frame.tsx",
|
|
8770
|
+
"internal": true
|
|
8771
|
+
},
|
|
8772
|
+
{
|
|
8773
|
+
"source": "components/approval-questions.tsx",
|
|
8774
|
+
"target": "{{ui}}/approval-questions.tsx",
|
|
8775
|
+
"internal": true
|
|
8776
|
+
}
|
|
8777
|
+
],
|
|
8778
|
+
"examples": [
|
|
8779
|
+
"examples/approval-card-demo.tsx"
|
|
8780
|
+
],
|
|
8781
|
+
"tokens": [
|
|
8782
|
+
"--bh-bg-info-subtle",
|
|
8783
|
+
"--bh-bg-inverse",
|
|
8784
|
+
"--bh-bg-raised",
|
|
8785
|
+
"--bh-bg-subtle",
|
|
8786
|
+
"--bh-bg-success-subtle",
|
|
8787
|
+
"--bh-bg-warning-subtle",
|
|
8788
|
+
"--bh-border-subtle",
|
|
8789
|
+
"--bh-border-success-subtle",
|
|
8790
|
+
"--bh-border-width-default",
|
|
8791
|
+
"--bh-content-default",
|
|
8792
|
+
"--bh-content-information-default",
|
|
8793
|
+
"--bh-content-inverse",
|
|
8794
|
+
"--bh-content-muted",
|
|
8795
|
+
"--bh-content-subtle",
|
|
8796
|
+
"--bh-content-success-default",
|
|
8797
|
+
"--bh-content-warning-default",
|
|
8798
|
+
"--bh-duration-default",
|
|
8799
|
+
"--bh-duration-fast",
|
|
8800
|
+
"--bh-duration-moderate",
|
|
8801
|
+
"--bh-duration-slow",
|
|
8802
|
+
"--bh-easing-emphasized",
|
|
8803
|
+
"--bh-easing-standard",
|
|
8804
|
+
"--bh-font-family",
|
|
8805
|
+
"--bh-font-family-mono",
|
|
8806
|
+
"--bh-icon-stroke-180",
|
|
8807
|
+
"--bh-icon-stroke-200",
|
|
8808
|
+
"--bh-icon-stroke-250",
|
|
8809
|
+
"--bh-opacity-0",
|
|
8810
|
+
"--bh-opacity-100",
|
|
8811
|
+
"--bh-radius-2xl-12",
|
|
8812
|
+
"--bh-radius-full",
|
|
8813
|
+
"--bh-radius-lg-8",
|
|
8814
|
+
"--bh-radius-md-6",
|
|
8815
|
+
"--bh-space-2xl-14",
|
|
8816
|
+
"--bh-space-3xl-16",
|
|
8817
|
+
"--bh-space-5xl-24",
|
|
8818
|
+
"--bh-space-6xl-32",
|
|
8819
|
+
"--bh-space-lg-10",
|
|
8820
|
+
"--bh-space-md-8",
|
|
8821
|
+
"--bh-space-sm-6",
|
|
8822
|
+
"--bh-space-xl-12",
|
|
8823
|
+
"--bh-space-xs-4",
|
|
8824
|
+
"--bh-space-xxs-2",
|
|
8825
|
+
"--bh-space-xxxs-1",
|
|
8826
|
+
"--bh-text-body-2xs-medium-font-size",
|
|
8827
|
+
"--bh-text-body-2xs-medium-font-weight",
|
|
8828
|
+
"--bh-text-body-2xs-regular-font-size",
|
|
8829
|
+
"--bh-text-body-2xs-regular-line-height",
|
|
8830
|
+
"--bh-text-body-3xs-regular-font-size",
|
|
8831
|
+
"--bh-text-body-3xs-regular-line-height",
|
|
8832
|
+
"--bh-text-body-md-medium-font-size",
|
|
8833
|
+
"--bh-text-body-md-medium-font-weight",
|
|
8834
|
+
"--bh-text-body-md-medium-letter-spacing",
|
|
8835
|
+
"--bh-text-body-md-medium-line-height",
|
|
8836
|
+
"--bh-text-body-xs-medium-font-weight",
|
|
8837
|
+
"--bh-text-body-xs-regular-font-size",
|
|
8838
|
+
"--bh-text-body-xs-regular-font-weight",
|
|
8839
|
+
"--bh-text-body-xs-regular-letter-spacing",
|
|
8840
|
+
"--bh-text-body-xs-regular-line-height",
|
|
8841
|
+
"--elevation-02",
|
|
8842
|
+
"--elevation-component-focus-ring"
|
|
7595
8843
|
]
|
|
7596
8844
|
}
|
|
7597
8845
|
}
|