banhaten 0.1.1 → 0.1.2
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/README.md +20 -8
- package/package.json +8 -2
- package/registry/components/autocomplete.tsx +637 -0
- package/registry/components/avatar.tsx +258 -22
- package/registry/components/badge.tsx +97 -35
- package/registry/components/date-picker-state.ts +253 -0
- package/registry/components/date-picker.tsx +115 -158
- package/registry/components/expanded/EmptyState.tsx +155 -0
- package/registry/components/expanded/emptyState.css +111 -0
- package/registry/components/expanded/slideout.css +1 -0
- package/registry/components/expanded/table.css +1 -0
- package/registry/components/input-otp.tsx +574 -0
- package/registry/components/input.tsx +21 -11
- package/registry/components/menu.tsx +371 -8
- package/registry/components/popover.tsx +840 -0
- package/registry/components/select.tsx +4 -0
- package/registry/components/skeleton.css +57 -0
- package/registry/components/skeleton.tsx +482 -0
- package/registry/components/spinner.tsx +79 -11
- package/registry/components/textarea.tsx +1 -1
- package/registry/components/tooltip.tsx +4 -0
- package/registry/examples/autocomplete-demo.tsx +109 -0
- package/registry/examples/avatar-demo.tsx +102 -47
- package/registry/examples/badge-demo.tsx +16 -0
- package/registry/examples/expanded/command-bar-demo.tsx +236 -0
- package/registry/examples/expanded/empty-state-demo.tsx +39 -0
- package/registry/examples/input-demo.tsx +1 -1
- package/registry/examples/input-otp-demo.tsx +72 -0
- package/registry/examples/menu-demo.tsx +101 -88
- package/registry/examples/popover-demo.tsx +546 -0
- package/registry/examples/select-demo.tsx +1 -1
- package/registry/examples/skeleton-demo.tsx +56 -0
- package/registry/examples/spinner-demo.tsx +23 -1
- package/registry/examples/textarea-demo.tsx +1 -1
- package/registry/index.json +240 -8
- package/registry/styles/globals.css +88 -0
- package/src/cli/index.js +997 -62
package/registry/index.json
CHANGED
|
@@ -49,24 +49,31 @@
|
|
|
49
49
|
"examples": ["examples/accordion-demo.tsx"]
|
|
50
50
|
},
|
|
51
51
|
"avatar": {
|
|
52
|
-
"description": "
|
|
52
|
+
"description": "Figma-matched user avatar primitive with image, initials, icon fallback, circular and rounded forms, status dots, call-to-action overlays, stacked group count, size scale, and RTL-safe overlap.",
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@radix-ui/react-avatar": "^1.1.10",
|
|
55
|
-
"class-variance-authority": "^0.7.1"
|
|
55
|
+
"class-variance-authority": "^0.7.1",
|
|
56
|
+
"lucide-react": "^1.17.0"
|
|
56
57
|
},
|
|
57
58
|
"parts": [
|
|
58
59
|
"Avatar",
|
|
59
60
|
"AvatarImage",
|
|
60
61
|
"AvatarFallback",
|
|
62
|
+
"AvatarIcon",
|
|
61
63
|
"AvatarBadge",
|
|
64
|
+
"AvatarStatus",
|
|
65
|
+
"AvatarAction",
|
|
62
66
|
"AvatarGroup",
|
|
63
67
|
"AvatarGroupCount"
|
|
64
68
|
],
|
|
65
|
-
"sizes": ["sm", "
|
|
69
|
+
"sizes": ["2xs", "xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl"],
|
|
70
|
+
"forms": ["circular", "rounded"],
|
|
71
|
+
"statusColors": ["offline", "busy", "blocked", "available", "away"],
|
|
72
|
+
"actions": ["custom", "edit", "verified", "remove"],
|
|
66
73
|
"rtl": {
|
|
67
74
|
"inheritsDirection": true,
|
|
68
75
|
"groupOverlap": "Uses logical -ms spacing so overlap reverses naturally in RTL.",
|
|
69
|
-
"badgePlacement": "
|
|
76
|
+
"badgePlacement": "Status dots use logical end/bottom positioning; avatar actions use logical end/top positioning."
|
|
70
77
|
},
|
|
71
78
|
"files": [
|
|
72
79
|
{
|
|
@@ -81,7 +88,7 @@
|
|
|
81
88
|
"examples": ["examples/avatar-demo.tsx"]
|
|
82
89
|
},
|
|
83
90
|
"badge": {
|
|
84
|
-
"description": "Figma Badge primitive with light, outline, and solid styles, semantic accent colors, dot, flag, icon, numeric, and RTL-safe composition.",
|
|
91
|
+
"description": "Figma Badge primitive with light, outline, and solid styles, semantic accent colors, dot, flag, icon, numeric, optional split trailing actions, and RTL-safe composition.",
|
|
85
92
|
"dependencies": {
|
|
86
93
|
"@radix-ui/react-slot": "^1.2.3",
|
|
87
94
|
"class-variance-authority": "^0.7.1"
|
|
@@ -101,10 +108,11 @@
|
|
|
101
108
|
"golden"
|
|
102
109
|
],
|
|
103
110
|
"types": ["default", "leading-icon", "trailing-icon", "dot", "flag"],
|
|
111
|
+
"options": ["splitAction"],
|
|
104
112
|
"sizes": ["sm", "lg"],
|
|
105
113
|
"rtl": {
|
|
106
114
|
"inheritsDirection": true,
|
|
107
|
-
"iconPlacement": "Set type=\"leading-icon\" or type=\"trailing-icon\" and use data-icon=\"inline-start\" or data-icon=\"inline-end\".",
|
|
115
|
+
"iconPlacement": "Set type=\"leading-icon\" or type=\"trailing-icon\" and use data-icon=\"inline-start\" or data-icon=\"inline-end\". Add splitAction to give a trailing icon its own token-sized compartment.",
|
|
108
116
|
"directionalIconFlip": "Use data-rtl-flip=\"true\" on arrows that should mirror.",
|
|
109
117
|
"textDirection": "Uses dir=\"auto\" by default for short Arabic and English labels.",
|
|
110
118
|
"legacyVariants": "The previous variant prop is still accepted as a compatibility shim."
|
|
@@ -299,7 +307,7 @@
|
|
|
299
307
|
"examples": ["examples/toggle-demo.tsx"]
|
|
300
308
|
},
|
|
301
309
|
"menu": {
|
|
302
|
-
"description": "Radix DropdownMenu-backed, Figma-matched menu surface and composable menu item slots for default, multiline, call-to-action, progress, divider, button, label, caption, badge, switch, avatar, meta text, and RTL layouts.",
|
|
310
|
+
"description": "Radix DropdownMenu-backed, Figma-matched menu surface and composable menu item slots for default, multiline, call-to-action, progress, divider, button, label, caption, badge, switch, avatar, meta text, submenus, and RTL layouts.",
|
|
303
311
|
"dependencies": {
|
|
304
312
|
"@radix-ui/react-dropdown-menu": "^2.1.17",
|
|
305
313
|
"@radix-ui/react-slot": "^1.2.3",
|
|
@@ -311,6 +319,9 @@
|
|
|
311
319
|
"MenuTrigger",
|
|
312
320
|
"MenuContent",
|
|
313
321
|
"MenuPortal",
|
|
322
|
+
"MenuSub",
|
|
323
|
+
"MenuSubTrigger",
|
|
324
|
+
"MenuSubContent",
|
|
314
325
|
"MenuItem",
|
|
315
326
|
"MenuItemContent",
|
|
316
327
|
"MenuItemIcon",
|
|
@@ -388,6 +399,63 @@
|
|
|
388
399
|
],
|
|
389
400
|
"examples": ["examples/tooltip-demo.tsx"]
|
|
390
401
|
},
|
|
402
|
+
"popover": {
|
|
403
|
+
"description": "Token-built popover primitive with click, focus, and hover-capable triggers, positioned content, optional arrow, alignment and offset controls, close affordance, small to large surfaces, and RTL-safe composition.",
|
|
404
|
+
"dependencies": {
|
|
405
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
406
|
+
"class-variance-authority": "^0.7.1",
|
|
407
|
+
"lucide-react": "^1.17.0"
|
|
408
|
+
},
|
|
409
|
+
"registryDependencies": [
|
|
410
|
+
"badge",
|
|
411
|
+
"button",
|
|
412
|
+
"checkbox",
|
|
413
|
+
"input",
|
|
414
|
+
"menu",
|
|
415
|
+
"select",
|
|
416
|
+
"toggle"
|
|
417
|
+
],
|
|
418
|
+
"parts": [
|
|
419
|
+
"Popover",
|
|
420
|
+
"PopoverRoot",
|
|
421
|
+
"PopoverAnchor",
|
|
422
|
+
"PopoverTrigger",
|
|
423
|
+
"PopoverContent",
|
|
424
|
+
"PopoverHeader",
|
|
425
|
+
"PopoverTitle",
|
|
426
|
+
"PopoverDescription",
|
|
427
|
+
"PopoverBody",
|
|
428
|
+
"PopoverFooter",
|
|
429
|
+
"PopoverClose"
|
|
430
|
+
],
|
|
431
|
+
"sides": ["top", "right", "bottom", "left"],
|
|
432
|
+
"alignments": ["start", "center", "end"],
|
|
433
|
+
"sizes": ["sm", "md", "lg", "auto"],
|
|
434
|
+
"offsets": ["tight", "default", "loose"],
|
|
435
|
+
"features": [
|
|
436
|
+
"filter popover",
|
|
437
|
+
"settings popover",
|
|
438
|
+
"actions popover",
|
|
439
|
+
"focus trigger",
|
|
440
|
+
"text link trigger",
|
|
441
|
+
"icon button trigger",
|
|
442
|
+
"optional arrow",
|
|
443
|
+
"RTL"
|
|
444
|
+
],
|
|
445
|
+
"rtl": {
|
|
446
|
+
"inheritsDirection": true,
|
|
447
|
+
"alignment": "Top and bottom alignments use logical start/end so the panel edge and arrow align correctly in LTR and RTL.",
|
|
448
|
+
"spacing": "Uses logical layout and Banhaten spacing tokens for headers, bodies, footers, arrows, and trigger gaps.",
|
|
449
|
+
"textDirection": "Title and description slots use dir=\"auto\" while product content can inherit the nearest direction."
|
|
450
|
+
},
|
|
451
|
+
"files": [
|
|
452
|
+
{
|
|
453
|
+
"source": "components/popover.tsx",
|
|
454
|
+
"target": "{{ui}}/popover.tsx"
|
|
455
|
+
}
|
|
456
|
+
],
|
|
457
|
+
"examples": ["examples/popover-demo.tsx"]
|
|
458
|
+
},
|
|
391
459
|
"modal": {
|
|
392
460
|
"description": "Radix Dialog-backed modal primitive with Figma Small, Default, and Large sizes, tokenized raised surface, header/body/footer slots, ConfirmModal guardrails, Button actions, Checkbox opt-out, and RTL-safe layout.",
|
|
393
461
|
"dependencies": {
|
|
@@ -665,6 +733,39 @@
|
|
|
665
733
|
],
|
|
666
734
|
"examples": ["examples/input-demo.tsx"]
|
|
667
735
|
},
|
|
736
|
+
"input-otp": {
|
|
737
|
+
"description": "One-time passcode input composed from the Banhaten Input surface, control typography, labels, helper text, tokenized slot gaps, paste handling, grouped slots, masked values, and RTL-aware keyboard navigation.",
|
|
738
|
+
"dependencies": {
|
|
739
|
+
"class-variance-authority": "^0.7.1"
|
|
740
|
+
},
|
|
741
|
+
"registryDependencies": ["input"],
|
|
742
|
+
"parts": ["InputOTP", "InputOTPSeparator"],
|
|
743
|
+
"variants": ["default", "soft"],
|
|
744
|
+
"sizes": ["md", "lg"],
|
|
745
|
+
"states": ["default", "filled", "error", "disabled"],
|
|
746
|
+
"features": [
|
|
747
|
+
"controlled value",
|
|
748
|
+
"uncontrolled value",
|
|
749
|
+
"paste distribution",
|
|
750
|
+
"hidden form value",
|
|
751
|
+
"masked slots",
|
|
752
|
+
"custom length",
|
|
753
|
+
"custom grouping"
|
|
754
|
+
],
|
|
755
|
+
"rtl": {
|
|
756
|
+
"inheritsDirection": true,
|
|
757
|
+
"keyboard": "Arrow navigation mirrors for RTL: visual previous and next follow the inherited direction.",
|
|
758
|
+
"spacing": "Slot groups, separators, labels, and helper text use inherited direction plus Input spacing tokens.",
|
|
759
|
+
"composition": "Each slot reuses the Banhaten Input surface and control typography instead of a separate field style."
|
|
760
|
+
},
|
|
761
|
+
"files": [
|
|
762
|
+
{
|
|
763
|
+
"source": "components/input-otp.tsx",
|
|
764
|
+
"target": "{{ui}}/input-otp.tsx"
|
|
765
|
+
}
|
|
766
|
+
],
|
|
767
|
+
"examples": ["examples/input-otp-demo.tsx"]
|
|
768
|
+
},
|
|
668
769
|
"select": {
|
|
669
770
|
"description": "Radix Select-backed, Figma-matched select field and menu item primitives with default and soft trigger styles, lg/md sizes, error/filled/disabled states, menu surface, checkbox and check selection, and item media for text, icons, avatars, company, payment, and status dots.",
|
|
670
771
|
"dependencies": {
|
|
@@ -715,6 +816,40 @@
|
|
|
715
816
|
],
|
|
716
817
|
"examples": ["examples/select-demo.tsx"]
|
|
717
818
|
},
|
|
819
|
+
"autocomplete": {
|
|
820
|
+
"description": "Composable autocomplete and combobox field built from Banhaten Input, Select menu items, and Tag selections with filtering, single or multiple selection, keyboard navigation, error/disabled states, and RTL-safe layout.",
|
|
821
|
+
"dependencies": {
|
|
822
|
+
"lucide-react": "^1.17.0"
|
|
823
|
+
},
|
|
824
|
+
"registryDependencies": ["input", "select", "tag"],
|
|
825
|
+
"parts": ["Autocomplete"],
|
|
826
|
+
"modes": ["single", "multiple"],
|
|
827
|
+
"states": ["default", "filled", "error", "disabled"],
|
|
828
|
+
"variants": ["default", "soft"],
|
|
829
|
+
"sizes": ["md", "lg"],
|
|
830
|
+
"features": [
|
|
831
|
+
"filtering",
|
|
832
|
+
"keyboard navigation",
|
|
833
|
+
"controlled value",
|
|
834
|
+
"controlled input value",
|
|
835
|
+
"controlled open state",
|
|
836
|
+
"selected tags",
|
|
837
|
+
"empty state"
|
|
838
|
+
],
|
|
839
|
+
"rtl": {
|
|
840
|
+
"inheritsDirection": true,
|
|
841
|
+
"composition": "Uses the existing Input field, Select menu and menu item rows, and Tag chips instead of introducing new visual primitives.",
|
|
842
|
+
"spacing": "Uses logical positioning, logical gaps, and inherited direction so the input, menu rows, checks, helper text, and selected tags mirror naturally.",
|
|
843
|
+
"textDirection": "Labels, option text, helper text, and tag labels use dir=\"auto\" through the composed primitives."
|
|
844
|
+
},
|
|
845
|
+
"files": [
|
|
846
|
+
{
|
|
847
|
+
"source": "components/autocomplete.tsx",
|
|
848
|
+
"target": "{{ui}}/autocomplete.tsx"
|
|
849
|
+
}
|
|
850
|
+
],
|
|
851
|
+
"examples": ["examples/autocomplete-demo.tsx"]
|
|
852
|
+
},
|
|
718
853
|
"date-picker": {
|
|
719
854
|
"description": "Figma-matched Calendar, Range Calendar, Date Picker, and Date Range Picker suite with single, month/year, double calendar, preset list, open/closed, time row, range selection, and RTL use cases.",
|
|
720
855
|
"dependencies": {
|
|
@@ -748,6 +883,10 @@
|
|
|
748
883
|
{
|
|
749
884
|
"source": "components/date-picker.tsx",
|
|
750
885
|
"target": "{{ui}}/date-picker.tsx"
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
"source": "components/date-picker-state.ts",
|
|
889
|
+
"target": "{{ui}}/date-picker-state.ts"
|
|
751
890
|
}
|
|
752
891
|
],
|
|
753
892
|
"examples": ["examples/date-picker-demo.tsx"]
|
|
@@ -866,9 +1005,67 @@
|
|
|
866
1005
|
],
|
|
867
1006
|
"examples": ["examples/textarea-demo.tsx"]
|
|
868
1007
|
},
|
|
1008
|
+
"skeleton": {
|
|
1009
|
+
"description": "Token-built loading placeholder primitive with text, avatar, button, input, card, list, table, and form compositions, shimmer motion, reduced-motion fallback, and RTL-safe direction.",
|
|
1010
|
+
"dependencies": {
|
|
1011
|
+
"class-variance-authority": "^0.7.1"
|
|
1012
|
+
},
|
|
1013
|
+
"parts": [
|
|
1014
|
+
"Skeleton",
|
|
1015
|
+
"SkeletonText",
|
|
1016
|
+
"SkeletonAvatar",
|
|
1017
|
+
"SkeletonButton",
|
|
1018
|
+
"SkeletonInput",
|
|
1019
|
+
"SkeletonCard",
|
|
1020
|
+
"SkeletonList",
|
|
1021
|
+
"SkeletonTable",
|
|
1022
|
+
"SkeletonForm"
|
|
1023
|
+
],
|
|
1024
|
+
"shapes": ["block", "text", "circle"],
|
|
1025
|
+
"sizes": ["xs", "sm", "md", "lg", "xl"],
|
|
1026
|
+
"tones": ["default", "subtle", "surface", "brand"],
|
|
1027
|
+
"features": [
|
|
1028
|
+
"shimmer animation",
|
|
1029
|
+
"reduced motion",
|
|
1030
|
+
"text lines",
|
|
1031
|
+
"avatar placeholders",
|
|
1032
|
+
"button placeholders",
|
|
1033
|
+
"input placeholders",
|
|
1034
|
+
"card placeholders",
|
|
1035
|
+
"list placeholders",
|
|
1036
|
+
"table placeholders",
|
|
1037
|
+
"form placeholders"
|
|
1038
|
+
],
|
|
1039
|
+
"rtl": {
|
|
1040
|
+
"inheritsDirection": true,
|
|
1041
|
+
"motion": "The shimmer direction mirrors inside RTL containers while preserving logical layout.",
|
|
1042
|
+
"composition": "Composed card, list, table, and form placeholders use logical gaps, inherited direction, and token-sized rows.",
|
|
1043
|
+
"accessibility": "Skeletons are decorative by default; set aria-busy on the loading region and pair with a status label when loading progress needs to be announced."
|
|
1044
|
+
},
|
|
1045
|
+
"files": [
|
|
1046
|
+
{
|
|
1047
|
+
"source": "components/skeleton.css",
|
|
1048
|
+
"target": "{{ui}}/skeleton.css"
|
|
1049
|
+
},
|
|
1050
|
+
{
|
|
1051
|
+
"source": "components/skeleton.tsx",
|
|
1052
|
+
"target": "{{ui}}/skeleton.tsx"
|
|
1053
|
+
}
|
|
1054
|
+
],
|
|
1055
|
+
"examples": ["examples/skeleton-demo.tsx"]
|
|
1056
|
+
},
|
|
869
1057
|
"spinner": {
|
|
870
|
-
"description": "Small composable loading
|
|
1058
|
+
"description": "Small composable loading indicators with a steady Spinner and a smoother variable-arc DynamicSpinner, both inheriting text color and CSS variable sizing.",
|
|
871
1059
|
"dependencies": {},
|
|
1060
|
+
"parts": ["Spinner", "DynamicSpinner"],
|
|
1061
|
+
"modes": ["steady", "dynamic"],
|
|
1062
|
+
"features": [
|
|
1063
|
+
"steady arc rotation",
|
|
1064
|
+
"dynamic arc length",
|
|
1065
|
+
"slower continuous rotation",
|
|
1066
|
+
"text color inheritance",
|
|
1067
|
+
"CSS variable sizing"
|
|
1068
|
+
],
|
|
872
1069
|
"files": [
|
|
873
1070
|
{
|
|
874
1071
|
"source": "components/spinner.tsx",
|
|
@@ -1084,6 +1281,41 @@
|
|
|
1084
1281
|
],
|
|
1085
1282
|
"examples": ["examples/expanded/command-bar-demo.tsx"]
|
|
1086
1283
|
},
|
|
1284
|
+
"empty-state": {
|
|
1285
|
+
"description": "Expanded empty and result state composition with neutral icon halo, title, supporting copy, optional Button actions, alignment, compact density, custom icons, and RTL-safe text.",
|
|
1286
|
+
"status": "expanded",
|
|
1287
|
+
"dependencies": {
|
|
1288
|
+
"lucide-react": "^1.17.0"
|
|
1289
|
+
},
|
|
1290
|
+
"registryDependencies": ["button"],
|
|
1291
|
+
"parts": ["EmptyState"],
|
|
1292
|
+
"sizes": ["default", "compact"],
|
|
1293
|
+
"alignments": ["center", "start"],
|
|
1294
|
+
"features": [
|
|
1295
|
+
"neutral icon halo",
|
|
1296
|
+
"title and description copy",
|
|
1297
|
+
"primary and secondary actions",
|
|
1298
|
+
"custom icon",
|
|
1299
|
+
"RTL"
|
|
1300
|
+
],
|
|
1301
|
+
"rtl": {
|
|
1302
|
+
"inheritsDirection": false,
|
|
1303
|
+
"textAlignment": "The root dir prop mirrors logical alignment and action flow while title and description use dir=\"auto\".",
|
|
1304
|
+
"spacing": "Uses grid, flex-wrap, gap, and logical margins so centered and start-aligned layouts work in LTR and RTL.",
|
|
1305
|
+
"actions": "Action buttons are rendered through the Banhaten Button primitive and preserve logical order."
|
|
1306
|
+
},
|
|
1307
|
+
"files": [
|
|
1308
|
+
{
|
|
1309
|
+
"source": "components/expanded/emptyState.css",
|
|
1310
|
+
"target": "{{ui}}/expanded/emptyState.css"
|
|
1311
|
+
},
|
|
1312
|
+
{
|
|
1313
|
+
"source": "components/expanded/EmptyState.tsx",
|
|
1314
|
+
"target": "{{ui}}/expanded/EmptyState.tsx"
|
|
1315
|
+
}
|
|
1316
|
+
],
|
|
1317
|
+
"examples": ["examples/expanded/empty-state-demo.tsx"]
|
|
1318
|
+
},
|
|
1087
1319
|
"icons": {
|
|
1088
1320
|
"description": "Expanded icon explorer for open-source icon pack review, semantic mapping, shortlist comparison, and Iconify catalog inspection.",
|
|
1089
1321
|
"status": "expanded",
|
|
@@ -479,6 +479,59 @@
|
|
|
479
479
|
--shadow-button-hover: var(--shadow-button-raised);
|
|
480
480
|
--shadow-button-active: var(--shadow-button-raised);
|
|
481
481
|
--shadow-avatar-badge: none;
|
|
482
|
+
--bh-avatar-size-2xs: var(--bh-space-3xl-16);
|
|
483
|
+
--bh-avatar-size-xs: var(--bh-space-4xl-20);
|
|
484
|
+
--bh-avatar-size-sm: var(--bh-space-5xl-24);
|
|
485
|
+
--bh-avatar-size-md: var(--bh-space-6xl-32);
|
|
486
|
+
--bh-avatar-size-lg: 36px;
|
|
487
|
+
--bh-avatar-size-xl: var(--bh-space-7xl-40);
|
|
488
|
+
--bh-avatar-size-2xl: var(--bh-space-8xl-48);
|
|
489
|
+
--bh-avatar-size-3xl: 56px;
|
|
490
|
+
--bh-avatar-size-4xl: var(--bh-space-9xl-64);
|
|
491
|
+
--bh-avatar-fallback-font-size-2xs: 9px;
|
|
492
|
+
--bh-avatar-fallback-font-size-xs: var(--bh-space-lg-10);
|
|
493
|
+
--bh-avatar-fallback-font-size-sm: var(--bh-text-body-2xs-semibold-font-size);
|
|
494
|
+
--bh-avatar-fallback-font-size-md: var(--bh-text-body-2xs-semibold-font-size);
|
|
495
|
+
--bh-avatar-fallback-font-size-lg: var(--bh-text-body-sm-semibold-font-size);
|
|
496
|
+
--bh-avatar-fallback-font-size-xl: var(--bh-text-body-sm-semibold-font-size);
|
|
497
|
+
--bh-avatar-fallback-font-size-2xl: var(--bh-text-body-sm-semibold-font-size);
|
|
498
|
+
--bh-avatar-fallback-font-size-3xl: var(--bh-text-body-md-semibold-font-size);
|
|
499
|
+
--bh-avatar-fallback-font-size-4xl: var(--bh-text-body-md-semibold-font-size);
|
|
500
|
+
--bh-avatar-icon-size-2xs: var(--bh-space-lg-10);
|
|
501
|
+
--bh-avatar-icon-size-xs: var(--bh-space-xl-12);
|
|
502
|
+
--bh-avatar-icon-size-sm: var(--bh-space-3xl-16);
|
|
503
|
+
--bh-avatar-icon-size-md: var(--bh-space-4xl-20);
|
|
504
|
+
--bh-avatar-icon-size-lg: var(--bh-space-4xl-20);
|
|
505
|
+
--bh-avatar-icon-size-xl: var(--bh-space-5xl-24);
|
|
506
|
+
--bh-avatar-icon-size-2xl: var(--bh-radius-6xl-28);
|
|
507
|
+
--bh-avatar-icon-size-3xl: var(--bh-space-6xl-32);
|
|
508
|
+
--bh-avatar-icon-size-4xl: 36px;
|
|
509
|
+
--bh-avatar-status-size-tiny: var(--bh-space-sm-6);
|
|
510
|
+
--bh-avatar-status-size-xsmall: var(--bh-space-md-8);
|
|
511
|
+
--bh-avatar-status-size-small: var(--bh-space-lg-10);
|
|
512
|
+
--bh-avatar-status-size-medium: var(--bh-space-2xl-14);
|
|
513
|
+
--bh-avatar-status-size-large: var(--bh-space-3xl-16);
|
|
514
|
+
--bh-avatar-status-size-xlarge: var(--bh-space-4xl-20);
|
|
515
|
+
--bh-avatar-status-ring-thin: var(--bh-space-xxxs-1);
|
|
516
|
+
--bh-avatar-status-ring-default: var(--bh-space-xxs-2);
|
|
517
|
+
--bh-avatar-action-size-tiny: var(--bh-space-lg-10);
|
|
518
|
+
--bh-avatar-action-size-xsmall: var(--bh-space-xl-12);
|
|
519
|
+
--bh-avatar-action-size-small: var(--bh-space-2xl-14);
|
|
520
|
+
--bh-avatar-action-size-medium: var(--bh-space-3xl-16);
|
|
521
|
+
--bh-avatar-action-size-large: 18px;
|
|
522
|
+
--bh-avatar-action-size-xlarge: var(--bh-space-4xl-20);
|
|
523
|
+
--bh-avatar-action-size-2xl: var(--bh-space-5xl-24);
|
|
524
|
+
--bh-avatar-action-size-3xl: var(--bh-space-6xl-32);
|
|
525
|
+
--bh-avatar-action-size-4xl: var(--bh-space-7xl-40);
|
|
526
|
+
--bh-avatar-action-icon-size-tiny: var(--bh-space-sm-6);
|
|
527
|
+
--bh-avatar-action-icon-size-xsmall: 7px;
|
|
528
|
+
--bh-avatar-action-icon-size-small: var(--bh-space-md-8);
|
|
529
|
+
--bh-avatar-action-icon-size-medium: 9px;
|
|
530
|
+
--bh-avatar-action-icon-size-large: var(--bh-space-lg-10);
|
|
531
|
+
--bh-avatar-action-icon-size-xlarge: var(--bh-space-xl-12);
|
|
532
|
+
--bh-avatar-action-icon-size-2xl: var(--bh-space-2xl-14);
|
|
533
|
+
--bh-avatar-action-icon-size-3xl: 18px;
|
|
534
|
+
--bh-avatar-action-icon-size-4xl: 22px;
|
|
482
535
|
--shadow-accordion-item: none;
|
|
483
536
|
--shadow-badge: none;
|
|
484
537
|
--shadow-social-button: inset 0px 0px 0px var(--bh-border-width-default) var(--bh-social-button-border, transparent), var(--shadow-component-default);
|
|
@@ -1066,6 +1119,39 @@
|
|
|
1066
1119
|
--bh-slider-pill-track-bg: color-mix(in srgb, var(--bh-slider-range-bg) 12%, var(--bh-bg-default));
|
|
1067
1120
|
--bh-slider-tick-bg: color-mix(in srgb, var(--bh-slider-range-bg) 45%, transparent);
|
|
1068
1121
|
--shadow-xs: 0px 1px 2px 0px rgb(15 17 20 / 0.06);
|
|
1122
|
+
--bh-input-otp-group-gap: var(--bh-space-md-8);
|
|
1123
|
+
--bh-input-otp-separator-height: var(--bh-border-width-strong);
|
|
1124
|
+
--bh-input-otp-separator-width: var(--bh-space-md-8);
|
|
1125
|
+
--bh-input-otp-slot-gap: var(--bh-space-xs-4);
|
|
1126
|
+
--bh-input-otp-slot-lg-width: var(--bh-input-lg-height);
|
|
1127
|
+
--bh-input-otp-slot-md-width: var(--bh-input-md-height);
|
|
1128
|
+
--bh-input-otp-width: max-content;
|
|
1129
|
+
--bh-popover-arrow-depth: var(--bh-space-md-8);
|
|
1130
|
+
--bh-popover-arrow-inline-offset: var(--bh-space-xl-12);
|
|
1131
|
+
--bh-popover-arrow-offset: calc(var(--bh-popover-arrow-depth) * -1);
|
|
1132
|
+
--bh-popover-arrow-overlap: var(--bh-border-width-default);
|
|
1133
|
+
--bh-popover-arrow-width: var(--bh-space-xl-12);
|
|
1134
|
+
--bh-popover-bg: var(--bh-bg-raised);
|
|
1135
|
+
--bh-popover-body-gap: var(--bh-space-md-8);
|
|
1136
|
+
--bh-popover-border: var(--bh-border-subtle);
|
|
1137
|
+
--bh-popover-close-icon-size: var(--bh-space-3xl-16);
|
|
1138
|
+
--bh-popover-close-size: var(--bh-space-5xl-24);
|
|
1139
|
+
--bh-popover-content-gap: var(--bh-space-lg-10);
|
|
1140
|
+
--bh-popover-footer-gap: var(--bh-space-md-8);
|
|
1141
|
+
--bh-popover-header-gap: var(--bh-space-md-8);
|
|
1142
|
+
--bh-popover-lg-width: var(--bh-space-19xl-384);
|
|
1143
|
+
--bh-popover-max-width: calc(100vw - var(--bh-space-6xl-32));
|
|
1144
|
+
--bh-popover-md-width: var(--bh-space-17xl-288);
|
|
1145
|
+
--bh-popover-offset: var(--bh-popover-offset-default);
|
|
1146
|
+
--bh-popover-offset-default: var(--bh-space-md-8);
|
|
1147
|
+
--bh-popover-offset-loose: var(--bh-space-3xl-16);
|
|
1148
|
+
--bh-popover-offset-tight: var(--bh-space-xs-4);
|
|
1149
|
+
--bh-popover-padding: var(--bh-space-xl-12);
|
|
1150
|
+
--bh-popover-radius: var(--bh-radius-xl-10);
|
|
1151
|
+
--bh-popover-sm-width: var(--bh-space-15xl-224);
|
|
1152
|
+
--bh-popover-trigger-gap: var(--bh-space-xs-4);
|
|
1153
|
+
--shadow-popover: inset 0px 0px 0px var(--bh-border-width-default) var(--bh-popover-border), var(--shadow-component-default);
|
|
1154
|
+
--bh-empty-state-icon-stroke-width: 2;
|
|
1069
1155
|
|
|
1070
1156
|
}
|
|
1071
1157
|
|
|
@@ -4216,8 +4302,10 @@
|
|
|
4216
4302
|
font-family: var(--bh-font-family);
|
|
4217
4303
|
font-size: var(--bh-text-base-font-size);
|
|
4218
4304
|
font-weight: var(--bh-text-base-font-weight);
|
|
4305
|
+
-webkit-font-smoothing: antialiased;
|
|
4219
4306
|
letter-spacing: var(--bh-text-base-letter-spacing);
|
|
4220
4307
|
line-height: var(--bh-text-base-line-height);
|
|
4308
|
+
-moz-osx-font-smoothing: grayscale;
|
|
4221
4309
|
}
|
|
4222
4310
|
}
|
|
4223
4311
|
|