banhaten 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +5 -5
  3. package/docs/design-system/component-implementation-ownership-audit.md +245 -0
  4. package/docs/design-system/component-quality-audit-2026-08-20.md +225 -0
  5. package/docs/design-system/component-showcase-consistency-report.md +2 -0
  6. package/docs/design-system/components/README.md +1 -0
  7. package/docs/design-system/components/activity-feed.md +2 -0
  8. package/docs/design-system/components/activity-heatmap.md +73 -0
  9. package/docs/design-system/components/alert-dialog.md +1 -1
  10. package/docs/design-system/components/alert.md +3 -3
  11. package/docs/design-system/components/attribute.md +1 -1
  12. package/docs/design-system/components/avatar.md +2 -2
  13. package/docs/design-system/components/badge.md +1 -1
  14. package/docs/design-system/components/banner.md +6 -2
  15. package/docs/design-system/components/breadcrumbs.md +5 -2
  16. package/docs/design-system/components/button-group.md +3 -2
  17. package/docs/design-system/components/button.md +2 -2
  18. package/docs/design-system/components/card.md +11 -3
  19. package/docs/design-system/components/catalog-components.md +3 -0
  20. package/docs/design-system/components/date-picker.md +3 -1
  21. package/docs/design-system/components/file-upload.md +5 -1
  22. package/docs/design-system/components/input.md +8 -6
  23. package/docs/design-system/components/item.md +3 -1
  24. package/docs/design-system/components/kbd.md +11 -8
  25. package/docs/design-system/components/menu.md +2 -2
  26. package/docs/design-system/components/modal.md +1 -1
  27. package/docs/design-system/components/navigation-menu.md +1 -1
  28. package/docs/design-system/components/onboarding-step-list-item.md +3 -2
  29. package/docs/design-system/components/page-header.md +3 -1
  30. package/docs/design-system/components/pagination.md +3 -2
  31. package/docs/design-system/components/radio-card.md +1 -1
  32. package/docs/design-system/components/resizable.md +1 -1
  33. package/docs/design-system/components/scroll-area.md +7 -3
  34. package/docs/design-system/components/select.md +1 -1
  35. package/docs/design-system/components/sidebar.md +60 -18
  36. package/docs/design-system/components/slideout.md +4 -1
  37. package/docs/design-system/components/steps.md +7 -2
  38. package/docs/design-system/components/table.md +25 -7
  39. package/docs/design-system/components/tag.md +3 -3
  40. package/docs/design-system/components/timeline.md +4 -1
  41. package/docs/design-system/components/toggle.md +1 -1
  42. package/docs/design-system/components/toolbar.md +1 -1
  43. package/docs/design-system/components/tooltip.md +1 -1
  44. package/docs/design-system/density-and-elevation.md +23 -2
  45. package/docs/design-system/gap-promotion-report.md +1 -67
  46. package/docs/design-system/icons.md +6 -1
  47. package/docs/design-system/installation.md +1 -1
  48. package/docs/design-system/launch-comparison-shadcn.md +10 -10
  49. package/docs/design-system/token-governance.md +7 -8
  50. package/package.json +3 -2
  51. package/registry/components/alert-dialog.tsx +1 -1
  52. package/registry/components/alert.tsx +17 -13
  53. package/registry/components/attribute.tsx +8 -2
  54. package/registry/components/avatar.tsx +28 -20
  55. package/registry/components/badge.tsx +17 -17
  56. package/registry/components/button-group.tsx +4 -2
  57. package/registry/components/button.tsx +3 -3
  58. package/registry/components/card.tsx +19 -3
  59. package/registry/components/carousel.tsx +14 -0
  60. package/registry/components/command.tsx +37 -3
  61. package/registry/components/date-picker.tsx +83 -35
  62. package/registry/components/expanded/ActivityFeed.tsx +3 -7
  63. package/registry/components/expanded/ActivityHeatmap.tsx +64 -0
  64. package/registry/components/expanded/Banner.tsx +0 -1
  65. package/registry/components/expanded/Breadcrumbs.tsx +3 -0
  66. package/registry/components/expanded/CatalogComponentsShowcase.tsx +3 -4
  67. package/registry/components/expanded/CatalogDivider.tsx +3 -2
  68. package/registry/components/expanded/FileUpload.tsx +7 -5
  69. package/registry/components/expanded/OnboardingStepListItem.tsx +6 -7
  70. package/registry/components/expanded/PageHeader.tsx +35 -44
  71. package/registry/components/expanded/Slideout.tsx +18 -13
  72. package/registry/components/expanded/Steps.tsx +147 -9
  73. package/registry/components/expanded/Table.tsx +50 -18
  74. package/registry/components/expanded/Timeline.tsx +11 -24
  75. package/registry/components/expanded/activityFeed.css +8 -8
  76. package/registry/components/expanded/activityHeatmap.css +66 -0
  77. package/registry/components/expanded/banner.css +30 -15
  78. package/registry/components/expanded/breadcrumbs.css +5 -5
  79. package/registry/components/expanded/fileUpload.css +4 -4
  80. package/registry/components/expanded/onboardingStepListItem.css +16 -7
  81. package/registry/components/expanded/pageHeader.css +14 -11
  82. package/registry/components/expanded/slideout.css +3 -7
  83. package/registry/components/expanded/steps.css +75 -12
  84. package/registry/components/expanded/table.css +63 -69
  85. package/registry/components/expanded/timeline.css +17 -16
  86. package/registry/components/field.tsx +61 -8
  87. package/registry/components/input.tsx +12 -5
  88. package/registry/components/item.tsx +1 -1
  89. package/registry/components/kbd.tsx +109 -15
  90. package/registry/components/menu.tsx +57 -7
  91. package/registry/components/modal.tsx +1 -1
  92. package/registry/components/navigation-menu.tsx +1 -1
  93. package/registry/components/pagination.css +36 -0
  94. package/registry/components/pagination.tsx +20 -13
  95. package/registry/components/progress-slider.tsx +1 -1
  96. package/registry/components/radio-card.tsx +1 -2
  97. package/registry/components/resizable.tsx +36 -2
  98. package/registry/components/scroll-area.tsx +30 -6
  99. package/registry/components/select.tsx +35 -12
  100. package/registry/components/sidebar.tsx +940 -62
  101. package/registry/components/social-button.tsx +12 -5
  102. package/registry/components/table-elements.tsx +128 -0
  103. package/registry/components/tabs.tsx +5 -10
  104. package/registry/components/tag.tsx +2 -2
  105. package/registry/components/toggle.tsx +2 -2
  106. package/registry/components/toolbar.tsx +6 -6
  107. package/registry/components/tooltip.tsx +1 -1
  108. package/registry/examples/attribute-demo.tsx +1 -1
  109. package/registry/examples/avatar-demo.tsx +7 -4
  110. package/registry/examples/command-palette-demo.tsx +0 -1
  111. package/registry/examples/expanded/activity-heatmap-demo.tsx +29 -0
  112. package/registry/examples/expanded/breadcrumbs-demo.tsx +3 -3
  113. package/registry/examples/kbd-demo.tsx +2 -1
  114. package/registry/examples/pagination-demo.tsx +5 -5
  115. package/registry/examples/sidebar-demo.tsx +59 -13
  116. package/registry/guidance/USAGE.md +1 -1
  117. package/registry/index.json +621 -60
  118. package/registry/styles/globals.css +211 -151
  119. package/registry.json +44 -6
  120. package/tokens/banhaten.tokens.json +325 -95
@@ -8,11 +8,12 @@ export type TimelineItemState = "finished" | "active" | "inactive";
8
8
 
9
9
  export type TimelineStep = {
10
10
  bottomDate?: string;
11
- caption?: string;
11
+ caption?: ReactNode;
12
+ className?: string;
12
13
  date?: string;
13
14
  icon?: ReactNode;
14
15
  id?: string;
15
- label?: string;
16
+ label?: ReactNode;
16
17
  showBottomDate?: boolean;
17
18
  showCaption?: boolean;
18
19
  showLeadingDate?: boolean;
@@ -27,6 +28,7 @@ export type TimelineItemProps = TimelineStep & {
27
28
  className?: string;
28
29
  dir?: "ltr" | "rtl";
29
30
  orientation?: TimelineOrientation;
31
+ role?: "listitem" | "none" | "presentation";
30
32
  variant?: TimelineVariant;
31
33
  };
32
34
 
@@ -46,14 +48,12 @@ function classes(...names: Array<string | false | undefined>) {
46
48
  function Indicator({
47
49
  icon,
48
50
  orientation,
49
- rtl,
50
51
  showLine,
51
52
  state,
52
53
  variant,
53
54
  }: {
54
55
  icon?: ReactNode;
55
56
  orientation: TimelineOrientation;
56
- rtl: boolean;
57
57
  showLine: boolean;
58
58
  state: TimelineItemState;
59
59
  variant: TimelineVariant;
@@ -79,21 +79,11 @@ function Indicator({
79
79
  className={classes(
80
80
  "ds-timeline__indicator",
81
81
  `ds-timeline__indicator--${orientation}`,
82
- rtl && "ds-timeline__indicator--rtl",
83
82
  )}
84
83
  aria-hidden="true"
85
84
  >
86
- {orientation === "horizontal" && rtl ? (
87
- <>
88
- {line}
89
- {marker}
90
- </>
91
- ) : (
92
- <>
93
- {marker}
94
- {line}
95
- </>
96
- )}
85
+ {marker}
86
+ {line}
97
87
  </span>
98
88
  );
99
89
  }
@@ -107,6 +97,7 @@ export function TimelineItem({
107
97
  icon,
108
98
  label,
109
99
  orientation = "vertical",
100
+ role,
110
101
  showBottomDate = false,
111
102
  showCaption = true,
112
103
  showLeadingDate = true,
@@ -117,7 +108,6 @@ export function TimelineItem({
117
108
  topDate,
118
109
  variant = "default",
119
110
  }: TimelineItemProps) {
120
- const rtl = dir === "rtl";
121
111
  const displayDate = date;
122
112
  const displayLabel = label;
123
113
  const displayCaption = caption;
@@ -141,7 +131,6 @@ export function TimelineItem({
141
131
  <Indicator
142
132
  icon={icon}
143
133
  orientation={orientation}
144
- rtl={rtl}
145
134
  showLine={showLine}
146
135
  state={state}
147
136
  variant={variant}
@@ -159,11 +148,10 @@ export function TimelineItem({
159
148
  `ds-timeline-item--${orientation}`,
160
149
  `ds-timeline-item--${variant}`,
161
150
  `ds-timeline-item--${state}`,
162
- rtl ? "ds-timeline-item--rtl" : "ds-timeline-item--ltr",
163
151
  className,
164
152
  )}
165
153
  dir={dir}
166
- role="listitem"
154
+ role={role}
167
155
  >
168
156
  {leadingDate}
169
157
  {indicator}
@@ -173,15 +161,13 @@ export function TimelineItem({
173
161
  }
174
162
 
175
163
  export function Timeline({
176
- ariaLabel,
164
+ ariaLabel = "Timeline",
177
165
  className,
178
166
  dir,
179
167
  orientation = "vertical",
180
168
  steps = [],
181
169
  variant = "default",
182
170
  }: TimelineProps) {
183
- const rtl = dir === "rtl";
184
-
185
171
  return (
186
172
  <div
187
173
  aria-label={ariaLabel}
@@ -189,11 +175,11 @@ export function Timeline({
189
175
  "ds-timeline",
190
176
  `ds-timeline--${orientation}`,
191
177
  `ds-timeline--${variant}`,
192
- rtl ? "ds-timeline--rtl" : "ds-timeline--ltr",
193
178
  className,
194
179
  )}
195
180
  dir={dir}
196
181
  role="list"
182
+ tabIndex={orientation === "horizontal" ? 0 : undefined}
197
183
  >
198
184
  {steps.map((step, index) => (
199
185
  <TimelineItem
@@ -201,6 +187,7 @@ export function Timeline({
201
187
  key={step.id ?? index}
202
188
  dir={dir}
203
189
  orientation={orientation}
190
+ role="listitem"
204
191
  showTopDate={step.showTopDate ?? orientation === "horizontal"}
205
192
  showBottomDate={step.showBottomDate ?? false}
206
193
  showPaddingBottom={step.showPaddingBottom ?? orientation === "vertical"}
@@ -43,7 +43,7 @@
43
43
  text-decoration: none;
44
44
  }
45
45
 
46
- .ds-activity-feed--rtl {
46
+ .ds-activity-feed:dir(rtl) {
47
47
  font-family: var(--bh-font-family);
48
48
  margin-inline-end: auto;
49
49
  }
@@ -102,7 +102,7 @@
102
102
  gap: var(--activity-feed-space-lg);
103
103
  }
104
104
 
105
- .ds-activity-feed-item--rtl .ds-activity-feed-item__content {
105
+ .ds-activity-feed-item:dir(rtl) .ds-activity-feed-item__content {
106
106
  align-items: flex-start;
107
107
  }
108
108
 
@@ -121,7 +121,7 @@
121
121
  gap: var(--bh-space-sm-6);
122
122
  }
123
123
 
124
- .ds-activity-feed-item--rtl .ds-activity-feed-item__topline {
124
+ .ds-activity-feed-item:dir(rtl) .ds-activity-feed-item__topline {
125
125
  justify-content: flex-start;
126
126
  }
127
127
 
@@ -139,7 +139,7 @@
139
139
  word-break: break-word;
140
140
  }
141
141
 
142
- .ds-activity-feed-item--rtl .ds-activity-feed-item__text {
142
+ .ds-activity-feed-item:dir(rtl) .ds-activity-feed-item__text {
143
143
  justify-content: flex-start;
144
144
  text-align: right;
145
145
  }
@@ -149,7 +149,7 @@
149
149
  font-weight: var(--bh-font-weight-medium);
150
150
  }
151
151
 
152
- .ds-activity-feed-item--rtl .ds-activity-feed-item__text strong {
152
+ .ds-activity-feed-item:dir(rtl) .ds-activity-feed-item__text strong {
153
153
  font-weight: var(--bh-font-weight-semibold);
154
154
  }
155
155
 
@@ -199,7 +199,7 @@
199
199
  padding: var(--activity-feed-space-xl);
200
200
  }
201
201
 
202
- .ds-activity-feed-item--rtl .ds-activity-feed-item__caption {
202
+ .ds-activity-feed-item:dir(rtl) .ds-activity-feed-item__caption {
203
203
  justify-content: flex-start;
204
204
  text-align: right;
205
205
  }
@@ -216,7 +216,7 @@
216
216
  line-height: var(--bh-text-body-sm-regular-line-height);
217
217
  }
218
218
 
219
- .ds-activity-feed-item--rtl .ds-activity-feed-item__slot {
219
+ .ds-activity-feed-item:dir(rtl) .ds-activity-feed-item__slot {
220
220
  place-items: center start;
221
221
  text-align: right;
222
222
  }
@@ -230,7 +230,7 @@
230
230
  line-height: var(--bh-text-body-sm-regular-line-height);
231
231
  }
232
232
 
233
- .ds-activity-feed-item--rtl .ds-activity-feed-item__timestamp {
233
+ .ds-activity-feed-item:dir(rtl) .ds-activity-feed-item__timestamp {
234
234
  text-align: right;
235
235
  }
236
236
 
@@ -0,0 +1,66 @@
1
+ .ds-activity-heatmap {
2
+ --activity-heatmap-cell-size: var(--bh-space-3xl-16);
3
+ --activity-heatmap-gap: var(--bh-space-xs-4);
4
+ --activity-heatmap-radius: var(--bh-radius-sm-4);
5
+ --activity-heatmap-level-0: var(--bh-bg-neutral-medium);
6
+ --activity-heatmap-level-1: var(--bh-bg-accent-purple-subtle);
7
+ --activity-heatmap-level-2: var(--bh-bg-accent-purple-soft);
8
+ --activity-heatmap-level-3: var(--bh-bg-accent-purple-default);
9
+ --activity-heatmap-level-4: var(--bh-content-accent-purple-strong);
10
+
11
+ box-sizing: border-box;
12
+ width: 100%;
13
+ min-width: 0;
14
+ max-width: 100%;
15
+ overflow-x: auto;
16
+ overflow-y: hidden;
17
+ outline: none;
18
+ color: var(--bh-content-default);
19
+ font-family: var(--bh-font-family);
20
+ }
21
+
22
+ .ds-activity-heatmap:focus-visible {
23
+ box-shadow: var(--shadow-component-focus-ring);
24
+ }
25
+
26
+ .ds-activity-heatmap *,
27
+ .ds-activity-heatmap *::before,
28
+ .ds-activity-heatmap *::after {
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ .ds-activity-heatmap__grid {
33
+ display: grid;
34
+ grid-auto-flow: column;
35
+ grid-auto-columns: var(--activity-heatmap-cell-size);
36
+ grid-template-rows: repeat(7, var(--activity-heatmap-cell-size));
37
+ justify-content: start;
38
+ gap: var(--activity-heatmap-gap);
39
+ width: max-content;
40
+ min-width: 100%;
41
+ }
42
+
43
+ .ds-activity-heatmap__cell {
44
+ display: block;
45
+ inline-size: var(--activity-heatmap-cell-size);
46
+ block-size: var(--activity-heatmap-cell-size);
47
+ aspect-ratio: 1;
48
+ border-radius: var(--activity-heatmap-radius);
49
+ background: var(--activity-heatmap-level-0);
50
+ }
51
+
52
+ .ds-activity-heatmap__cell[data-level="1"] {
53
+ background: var(--activity-heatmap-level-1);
54
+ }
55
+
56
+ .ds-activity-heatmap__cell[data-level="2"] {
57
+ background: var(--activity-heatmap-level-2);
58
+ }
59
+
60
+ .ds-activity-heatmap__cell[data-level="3"] {
61
+ background: var(--activity-heatmap-level-3);
62
+ }
63
+
64
+ .ds-activity-heatmap__cell[data-level="4"] {
65
+ background: var(--activity-heatmap-level-4);
66
+ }
@@ -1,10 +1,10 @@
1
1
  .ds-banner {
2
- --banner-bg-brand: var(--bh-bg-brand-default);
2
+ --banner-bg-brand: var(--bh-bg-brand-bold);
3
3
  --banner-bg-brand-soft: var(--bh-bg-brand-soft);
4
4
  --banner-bg-muted: var(--bh-bg-muted);
5
5
  --banner-border-subtle: var(--bh-border-subtle);
6
6
  --banner-content-default: var(--bh-content-default);
7
- --banner-content-inverse: var(--bh-content-inverse);
7
+ --banner-content-inverse: var(--bh-content-on-brand);
8
8
  --banner-content-link: var(--bh-content-link);
9
9
  --banner-radius-floating: var(--bh-radius-xl-10);
10
10
  --banner-space-xxs: var(--bh-space-xxs-2);
@@ -17,17 +17,18 @@
17
17
  --banner-height-default: calc(var(--bh-space-8xl-48) + var(--bh-space-xl-12));
18
18
  --banner-height-title: calc(var(--bh-space-8xl-48) + var(--bh-space-xs-4));
19
19
  --banner-input-width: var(--bh-input-width);
20
- --banner-shadow-floating: var(--shadow-component-default);
20
+ --banner-shadow-floating: var(--shadow-xl);
21
21
 
22
22
  box-sizing: border-box;
23
23
  position: relative;
24
24
  display: flex;
25
+ flex-wrap: wrap;
25
26
  align-items: center;
26
27
  justify-content: center;
27
28
  gap: var(--banner-space-3xl);
28
29
  width: 100%;
29
30
  min-height: var(--banner-height-slim);
30
- height: 100%;
31
+ height: auto;
31
32
  padding: var(--banner-space-xl) var(--banner-space-3xl);
32
33
  border: var(--bh-space-xxxs-1) solid transparent;
33
34
  border-radius: 0;
@@ -104,6 +105,9 @@
104
105
  }
105
106
 
106
107
  .ds-banner__main {
108
+ max-width: 100%;
109
+ flex: 1 1 calc(var(--bh-space-19xl-384) - var(--bh-space-8xl-48));
110
+ flex-wrap: wrap;
107
111
  justify-content: center;
108
112
  gap: var(--banner-space-xl);
109
113
  }
@@ -114,11 +118,16 @@
114
118
  }
115
119
 
116
120
  .ds-banner__leading {
121
+ max-width: 100%;
122
+ flex: 1 1 var(--bh-space-17xl-288);
123
+ flex-wrap: wrap;
117
124
  gap: var(--banner-space-xl);
118
125
  }
119
126
 
120
127
  .ds-banner__tail {
121
- flex: 0 0 auto;
128
+ max-width: 100%;
129
+ flex: 0 1 auto;
130
+ flex-wrap: wrap;
122
131
  gap: var(--banner-space-3xl);
123
132
  }
124
133
 
@@ -139,10 +148,15 @@
139
148
  color: var(--banner-icon-fg);
140
149
  }
141
150
 
142
- .ds-banner__icon-wrap,
143
- .ds-banner__icon {
144
- width: var(--bh-space-4xl-20);
145
- height: var(--bh-space-4xl-20);
151
+ .ds-banner__icon-wrap {
152
+ width: var(--bh-icon-slot-size-default);
153
+ height: var(--bh-icon-slot-size-default);
154
+ }
155
+
156
+ .ds-banner__icon,
157
+ .ds-banner__icon-wrap > svg {
158
+ width: var(--bh-icon-size-default);
159
+ height: var(--bh-icon-size-default);
146
160
  }
147
161
 
148
162
  .ds-banner__icon,
@@ -157,7 +171,7 @@
157
171
  .ds-banner__separator,
158
172
  .ds-banner__description {
159
173
  letter-spacing: var(--bh-text-body-md-medium-letter-spacing);
160
- white-space: nowrap;
174
+ white-space: normal;
161
175
  word-break: break-word;
162
176
  }
163
177
 
@@ -220,26 +234,27 @@
220
234
 
221
235
  .ds-banner__input {
222
236
  flex: 0 1 var(--banner-input-width);
223
- width: var(--banner-input-width);
237
+ width: min(100%, var(--banner-input-width));
238
+ min-width: 0;
224
239
  }
225
240
 
226
- .ds-banner--rtl {
241
+ .ds-banner:dir(rtl) {
227
242
  font-family: var(--bh-font-family);
228
243
  }
229
244
 
230
- .ds-banner--rtl.ds-banner--title .ds-banner__title-only {
245
+ .ds-banner:dir(rtl).ds-banner--title .ds-banner__title-only {
231
246
  font-size: var(--bh-text-body-2xs-medium-font-size);
232
247
  font-weight: var(--bh-text-body-2xs-medium-font-weight);
233
248
  line-height: var(--bh-text-body-2xs-medium-line-height);
234
249
  text-align: right;
235
250
  }
236
251
 
237
- .ds-banner--rtl .ds-banner__description {
252
+ .ds-banner:dir(rtl) .ds-banner__description {
238
253
  font-size: var(--bh-text-body-2xs-medium-font-size);
239
254
  font-weight: var(--bh-text-body-2xs-medium-font-weight);
240
255
  line-height: var(--bh-text-body-2xs-medium-line-height);
241
256
  }
242
257
 
243
- .ds-banner--rtl .ds-banner__title {
258
+ .ds-banner:dir(rtl) .ds-banner__title {
244
259
  text-align: right;
245
260
  }
@@ -73,8 +73,8 @@
73
73
  }
74
74
 
75
75
  .ds-breadcrumbs__icon {
76
- width: var(--bh-space-4xl-20);
77
- height: var(--bh-space-4xl-20);
76
+ width: var(--bh-icon-slot-size-default);
77
+ height: var(--bh-icon-slot-size-default);
78
78
  flex: 0 0 auto;
79
79
  display: inline-grid;
80
80
  place-items: center;
@@ -86,8 +86,8 @@
86
86
  }
87
87
 
88
88
  .ds-breadcrumbs__icon svg {
89
- width: var(--bh-space-4xl-20);
90
- height: var(--bh-space-4xl-20);
89
+ width: var(--bh-icon-size-default);
90
+ height: var(--bh-icon-size-default);
91
91
  display: block;
92
92
  }
93
93
 
@@ -123,7 +123,7 @@
123
123
  display: block;
124
124
  }
125
125
 
126
- .ds-breadcrumbs[dir="rtl"] .ds-breadcrumbs__separator svg {
126
+ .ds-breadcrumbs:dir(rtl) .ds-breadcrumbs__separator svg {
127
127
  transform: scaleX(-1);
128
128
  }
129
129
 
@@ -195,7 +195,7 @@
195
195
  --ds-file-upload-row-border: var(--bh-border-danger-strong);
196
196
  --ds-file-upload-row-shadow:
197
197
  inset 0px 0px 0px var(--bh-border-width-default) var(--ds-file-upload-row-border),
198
- var(--shadow-xs);
198
+ var(--shadow-sm);
199
199
  }
200
200
 
201
201
  .ds-file-upload-row__content {
@@ -442,11 +442,11 @@
442
442
  }
443
443
 
444
444
  .ds-file-upload-row__action svg {
445
- width: var(--bh-space-4xl-20);
446
- height: var(--bh-space-4xl-20);
445
+ width: var(--bh-icon-size-default);
446
+ height: var(--bh-icon-size-default);
447
447
  }
448
448
 
449
- .ds-file-upload[dir="rtl"] {
449
+ .ds-file-upload:dir(rtl) {
450
450
  font-family: var(--bh-font-family);
451
451
  }
452
452
 
@@ -13,7 +13,8 @@
13
13
  --onboarding-step-width: calc(var(--bh-space-17xl-288) - var(--bh-space-md-8));
14
14
  --onboarding-step-height: var(--bh-space-7xl-40);
15
15
  --onboarding-step-line-wrap-size: var(--bh-space-5xl-24);
16
- --onboarding-step-check-size: var(--bh-space-4xl-20);
16
+ --onboarding-step-check-size: var(--bh-icon-size-default);
17
+ --onboarding-step-check-slot-size: var(--bh-icon-slot-size-default);
17
18
  --onboarding-step-line-width: var(--bh-space-xxs-2);
18
19
  --onboarding-step-line-offset: calc(-1 * var(--bh-space-md-8));
19
20
  --onboarding-step-line-segment-height: calc(var(--bh-space-2xl-14) - var(--bh-space-xxxs-1));
@@ -56,7 +57,7 @@
56
57
  color: var(--onboarding-step-content-subtle);
57
58
  }
58
59
 
59
- .ds-onboarding-step--rtl {
60
+ .ds-onboarding-step:dir(rtl) {
60
61
  font-family: var(--bh-font-family);
61
62
  }
62
63
 
@@ -78,18 +79,26 @@
78
79
  word-break: break-word;
79
80
  }
80
81
 
81
- .ds-onboarding-step--rtl .ds-onboarding-step__label {
82
+ .ds-onboarding-step:dir(rtl) .ds-onboarding-step__label {
82
83
  text-align: right;
83
84
  }
84
85
 
85
- .ds-onboarding-step__check {
86
+ .ds-onboarding-step__check-slot {
86
87
  position: relative;
87
88
  z-index: 1;
88
- display: block;
89
+ display: inline-flex;
89
90
  flex: 0 0 auto;
91
+ align-items: center;
92
+ justify-content: center;
93
+ width: var(--onboarding-step-check-slot-size);
94
+ height: var(--onboarding-step-check-slot-size);
95
+ color: var(--onboarding-step-content-success);
96
+ }
97
+
98
+ .ds-onboarding-step__check {
99
+ display: block;
90
100
  width: var(--onboarding-step-check-size);
91
101
  height: var(--onboarding-step-check-size);
92
- color: var(--onboarding-step-content-success);
93
102
  }
94
103
 
95
104
  .ds-onboarding-step__line {
@@ -113,7 +122,7 @@
113
122
  .ds-onboarding-step__line--active {
114
123
  position: relative;
115
124
  left: auto;
116
- height: var(--onboarding-step-check-size);
125
+ height: var(--onboarding-step-check-slot-size);
117
126
  transform: none;
118
127
  background: var(--onboarding-step-border-brand-strong);
119
128
  }
@@ -36,7 +36,7 @@
36
36
  box-sizing: border-box;
37
37
  }
38
38
 
39
- .ds-page-header h1,
39
+ .ds-page-header__title,
40
40
  .ds-page-header p,
41
41
  .ds-page-header ol {
42
42
  margin: 0;
@@ -84,14 +84,16 @@
84
84
  color: var(--page-header-content-default);
85
85
  }
86
86
 
87
- .ds-page-header__breadcrumb-label {
87
+ .ds-page-header__breadcrumb-label,
88
+ .ds-page-header__breadcrumbs .ds-breadcrumbs__label {
88
89
  max-width: 20ch;
89
90
  overflow: hidden;
90
91
  text-overflow: ellipsis;
91
92
  white-space: nowrap;
92
93
  }
93
94
 
94
- .ds-page-header__breadcrumb-icon {
95
+ .ds-page-header__breadcrumb-icon,
96
+ .ds-page-header__breadcrumbs .ds-breadcrumbs__icon {
95
97
  width: var(--page-header-space-4xl);
96
98
  height: var(--page-header-space-4xl);
97
99
  display: inline-grid;
@@ -99,7 +101,8 @@
99
101
  color: currentColor;
100
102
  }
101
103
 
102
- .ds-page-header__breadcrumb-separator {
104
+ .ds-page-header__breadcrumb-separator,
105
+ .ds-page-header__breadcrumbs .ds-breadcrumbs__separator {
103
106
  width: var(--page-header-space-3xl);
104
107
  height: var(--page-header-space-3xl);
105
108
  display: inline-flex;
@@ -163,7 +166,7 @@
163
166
  display: block;
164
167
  }
165
168
 
166
- .ds-page-header h1 {
169
+ .ds-page-header__title {
167
170
  min-width: 0;
168
171
  color: var(--page-header-content-heading);
169
172
  font-size: var(--bh-text-heading-md-semibold-font-size);
@@ -235,15 +238,15 @@
235
238
  width: 100%;
236
239
  }
237
240
 
238
- .ds-page-header[dir="rtl"] {
241
+ .ds-page-header:dir(rtl) {
239
242
  font-family: var(--bh-font-family);
240
243
  }
241
244
 
242
- .ds-page-header[dir="rtl"] .ds-page-header__topline,
243
- .ds-page-header[dir="rtl"] .ds-page-header__heading-row,
244
- .ds-page-header[dir="rtl"] .ds-page-header__heading-main,
245
- .ds-page-header[dir="rtl"] .ds-page-header__actions,
246
- .ds-page-header[dir="rtl"] .ds-page-header__breadcrumbs ol {
245
+ .ds-page-header:dir(rtl) .ds-page-header__topline,
246
+ .ds-page-header:dir(rtl) .ds-page-header__heading-row,
247
+ .ds-page-header:dir(rtl) .ds-page-header__heading-main,
248
+ .ds-page-header:dir(rtl) .ds-page-header__actions,
249
+ .ds-page-header:dir(rtl) .ds-page-header__breadcrumbs ol {
247
250
  direction: rtl;
248
251
  }
249
252
 
@@ -86,7 +86,7 @@
86
86
  padding: 0;
87
87
  }
88
88
 
89
- .ds-slideout--rtl {
89
+ .ds-slideout:dir(rtl) {
90
90
  font-family: var(--bh-font-family);
91
91
  }
92
92
 
@@ -113,7 +113,8 @@
113
113
  align-items: center;
114
114
  gap: var(--slideout-space-3xl);
115
115
  min-height: var(--slideout-header-height);
116
- padding: var(--slideout-space-3xl) var(--slideout-space-3xl) var(--slideout-space-3xl) var(--slideout-space-4xl);
116
+ padding-block: var(--slideout-space-3xl);
117
+ padding-inline: var(--slideout-space-4xl) var(--slideout-space-3xl);
117
118
  border-bottom: var(--bh-space-xxxs-1) solid var(--slideout-border-subtle);
118
119
  background: var(--slideout-bg-raised);
119
120
  }
@@ -122,11 +123,6 @@
122
123
  gap: var(--slideout-space-lg);
123
124
  }
124
125
 
125
- .ds-slideout--rtl .ds-slideout__header {
126
- padding-right: var(--slideout-space-4xl);
127
- padding-left: var(--slideout-space-3xl);
128
- }
129
-
130
126
  .ds-slideout__close-icon {
131
127
  width: var(--slideout-space-4xl);
132
128
  height: var(--slideout-space-4xl);