banhaten 0.2.0 → 0.3.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 (101) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +1 -1
  3. package/docs/design-system/component-implementation-ownership-audit.md +244 -0
  4. package/docs/design-system/component-quality-audit-2026-08-20.md +223 -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 +2 -2
  11. package/docs/design-system/components/avatar.md +1 -1
  12. package/docs/design-system/components/badge.md +1 -1
  13. package/docs/design-system/components/banner.md +5 -1
  14. package/docs/design-system/components/breadcrumbs.md +3 -0
  15. package/docs/design-system/components/button-group.md +1 -0
  16. package/docs/design-system/components/button.md +1 -1
  17. package/docs/design-system/components/card.md +11 -3
  18. package/docs/design-system/components/catalog-components.md +3 -0
  19. package/docs/design-system/components/date-picker.md +1 -1
  20. package/docs/design-system/components/file-upload.md +4 -0
  21. package/docs/design-system/components/modal.md +1 -1
  22. package/docs/design-system/components/navigation-menu.md +1 -1
  23. package/docs/design-system/components/onboarding-step-list-item.md +1 -0
  24. package/docs/design-system/components/page-header.md +3 -1
  25. package/docs/design-system/components/pagination.md +1 -0
  26. package/docs/design-system/components/resizable.md +1 -1
  27. package/docs/design-system/components/scroll-area.md +7 -3
  28. package/docs/design-system/components/sidebar.md +3 -1
  29. package/docs/design-system/components/slideout.md +4 -1
  30. package/docs/design-system/components/steps.md +7 -2
  31. package/docs/design-system/components/table.md +25 -7
  32. package/docs/design-system/components/tag.md +1 -1
  33. package/docs/design-system/components/timeline.md +4 -1
  34. package/docs/design-system/components/toggle.md +1 -1
  35. package/docs/design-system/components/toolbar.md +1 -1
  36. package/docs/design-system/components/tooltip.md +1 -1
  37. package/docs/design-system/density-and-elevation.md +18 -1
  38. package/docs/design-system/gap-promotion-report.md +1 -67
  39. package/docs/design-system/launch-comparison-shadcn.md +10 -10
  40. package/package.json +3 -2
  41. package/registry/components/alert-dialog.tsx +1 -1
  42. package/registry/components/alert.tsx +15 -11
  43. package/registry/components/avatar.tsx +7 -3
  44. package/registry/components/badge.tsx +17 -17
  45. package/registry/components/button-group.tsx +3 -1
  46. package/registry/components/button.tsx +2 -2
  47. package/registry/components/card.tsx +19 -3
  48. package/registry/components/carousel.tsx +14 -0
  49. package/registry/components/command.tsx +37 -3
  50. package/registry/components/date-picker.tsx +67 -31
  51. package/registry/components/expanded/ActivityFeed.tsx +3 -7
  52. package/registry/components/expanded/ActivityHeatmap.tsx +64 -0
  53. package/registry/components/expanded/Banner.tsx +0 -1
  54. package/registry/components/expanded/Breadcrumbs.tsx +3 -0
  55. package/registry/components/expanded/CatalogComponentsShowcase.tsx +3 -4
  56. package/registry/components/expanded/CatalogDivider.tsx +3 -2
  57. package/registry/components/expanded/FileUpload.tsx +7 -5
  58. package/registry/components/expanded/OnboardingStepListItem.tsx +0 -2
  59. package/registry/components/expanded/PageHeader.tsx +35 -44
  60. package/registry/components/expanded/Slideout.tsx +18 -13
  61. package/registry/components/expanded/Steps.tsx +147 -9
  62. package/registry/components/expanded/Table.tsx +50 -18
  63. package/registry/components/expanded/Timeline.tsx +11 -24
  64. package/registry/components/expanded/activityFeed.css +8 -8
  65. package/registry/components/expanded/activityHeatmap.css +66 -0
  66. package/registry/components/expanded/banner.css +21 -11
  67. package/registry/components/expanded/breadcrumbs.css +1 -1
  68. package/registry/components/expanded/fileUpload.css +1 -1
  69. package/registry/components/expanded/onboardingStepListItem.css +2 -2
  70. package/registry/components/expanded/pageHeader.css +14 -11
  71. package/registry/components/expanded/slideout.css +3 -7
  72. package/registry/components/expanded/steps.css +75 -12
  73. package/registry/components/expanded/table.css +58 -67
  74. package/registry/components/expanded/timeline.css +17 -16
  75. package/registry/components/field.tsx +61 -8
  76. package/registry/components/menu.tsx +56 -6
  77. package/registry/components/modal.tsx +1 -1
  78. package/registry/components/navigation-menu.tsx +1 -1
  79. package/registry/components/pagination.css +36 -0
  80. package/registry/components/pagination.tsx +8 -6
  81. package/registry/components/progress-slider.tsx +1 -1
  82. package/registry/components/resizable.tsx +36 -2
  83. package/registry/components/scroll-area.tsx +30 -6
  84. package/registry/components/select.tsx +34 -11
  85. package/registry/components/sidebar.tsx +11 -5
  86. package/registry/components/social-button.tsx +12 -5
  87. package/registry/components/table-elements.tsx +128 -0
  88. package/registry/components/tabs.tsx +5 -10
  89. package/registry/components/tag.tsx +1 -1
  90. package/registry/components/toggle.tsx +2 -2
  91. package/registry/components/toolbar.tsx +5 -5
  92. package/registry/components/tooltip.tsx +1 -1
  93. package/registry/examples/avatar-demo.tsx +7 -4
  94. package/registry/examples/expanded/activity-heatmap-demo.tsx +29 -0
  95. package/registry/examples/expanded/breadcrumbs-demo.tsx +3 -3
  96. package/registry/examples/pagination-demo.tsx +5 -5
  97. package/registry/examples/sidebar-demo.tsx +4 -2
  98. package/registry/index.json +392 -33
  99. package/registry/styles/globals.css +68 -42
  100. package/registry.json +40 -3
  101. package/tokens/banhaten.tokens.json +165 -55
@@ -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-md);
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
 
@@ -157,7 +166,7 @@
157
166
  .ds-banner__separator,
158
167
  .ds-banner__description {
159
168
  letter-spacing: var(--bh-text-body-md-medium-letter-spacing);
160
- white-space: nowrap;
169
+ white-space: normal;
161
170
  word-break: break-word;
162
171
  }
163
172
 
@@ -220,26 +229,27 @@
220
229
 
221
230
  .ds-banner__input {
222
231
  flex: 0 1 var(--banner-input-width);
223
- width: var(--banner-input-width);
232
+ width: min(100%, var(--banner-input-width));
233
+ min-width: 0;
224
234
  }
225
235
 
226
- .ds-banner--rtl {
236
+ .ds-banner:dir(rtl) {
227
237
  font-family: var(--bh-font-family);
228
238
  }
229
239
 
230
- .ds-banner--rtl.ds-banner--title .ds-banner__title-only {
240
+ .ds-banner:dir(rtl).ds-banner--title .ds-banner__title-only {
231
241
  font-size: var(--bh-text-body-2xs-medium-font-size);
232
242
  font-weight: var(--bh-text-body-2xs-medium-font-weight);
233
243
  line-height: var(--bh-text-body-2xs-medium-line-height);
234
244
  text-align: right;
235
245
  }
236
246
 
237
- .ds-banner--rtl .ds-banner__description {
247
+ .ds-banner:dir(rtl) .ds-banner__description {
238
248
  font-size: var(--bh-text-body-2xs-medium-font-size);
239
249
  font-weight: var(--bh-text-body-2xs-medium-font-weight);
240
250
  line-height: var(--bh-text-body-2xs-medium-line-height);
241
251
  }
242
252
 
243
- .ds-banner--rtl .ds-banner__title {
253
+ .ds-banner:dir(rtl) .ds-banner__title {
244
254
  text-align: right;
245
255
  }
@@ -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
 
@@ -446,7 +446,7 @@
446
446
  height: var(--bh-space-4xl-20);
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
 
@@ -56,7 +56,7 @@
56
56
  color: var(--onboarding-step-content-subtle);
57
57
  }
58
58
 
59
- .ds-onboarding-step--rtl {
59
+ .ds-onboarding-step:dir(rtl) {
60
60
  font-family: var(--bh-font-family);
61
61
  }
62
62
 
@@ -78,7 +78,7 @@
78
78
  word-break: break-word;
79
79
  }
80
80
 
81
- .ds-onboarding-step--rtl .ds-onboarding-step__label {
81
+ .ds-onboarding-step:dir(rtl) .ds-onboarding-step__label {
82
82
  text-align: right;
83
83
  }
84
84
 
@@ -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);
@@ -197,7 +197,7 @@
197
197
  min-width: 0;
198
198
  }
199
199
 
200
- .ds-vertical-step-item--rtl .ds-vertical-step-item__content {
200
+ .ds-vertical-step-item:dir(rtl) .ds-vertical-step-item__content {
201
201
  align-items: flex-end;
202
202
  }
203
203
 
@@ -214,7 +214,7 @@
214
214
  text-align: start;
215
215
  }
216
216
 
217
- .ds-vertical-step-item--rtl .ds-vertical-step-item__copy {
217
+ .ds-vertical-step-item:dir(rtl) .ds-vertical-step-item__copy {
218
218
  text-align: right;
219
219
  }
220
220
 
@@ -225,10 +225,6 @@
225
225
  min-width: 0;
226
226
  }
227
227
 
228
- .ds-vertical-step-item--rtl .ds-vertical-step-item__header {
229
- direction: ltr;
230
- }
231
-
232
228
  .ds-vertical-step-item__label {
233
229
  flex: 1 0 0;
234
230
  min-width: 0;
@@ -247,11 +243,6 @@
247
243
  white-space: nowrap;
248
244
  }
249
245
 
250
- .ds-vertical-step-item--rtl .ds-vertical-step-item__label,
251
- .ds-vertical-step-item--rtl .ds-vertical-step-item__support {
252
- direction: rtl;
253
- }
254
-
255
246
  .ds-vertical-step-item__caption {
256
247
  width: 100%;
257
248
  color: var(--steps-content-subtle);
@@ -282,7 +273,7 @@
282
273
  gap: var(--steps-space-md);
283
274
  }
284
275
 
285
- .ds-vertical-step-item--rtl .ds-vertical-step-item__actions {
276
+ .ds-vertical-step-item:dir(rtl) .ds-vertical-step-item__actions {
286
277
  align-self: flex-start;
287
278
  }
288
279
 
@@ -291,3 +282,75 @@
291
282
  height: var(--bh-space-5xl-24);
292
283
  flex: 0 0 auto;
293
284
  }
285
+
286
+ .ds-progress-steps {
287
+ margin: 0;
288
+ padding: 0;
289
+ font-family: var(--bh-font-family);
290
+ }
291
+
292
+ .ds-progress-steps--markers {
293
+ display: flex;
294
+ align-items: flex-start;
295
+ list-style: none;
296
+ }
297
+
298
+ .ds-progress-steps__item {
299
+ position: relative;
300
+ display: flex;
301
+ min-width: 0;
302
+ align-items: center;
303
+ gap: var(--bh-space-md-8);
304
+ }
305
+
306
+ .ds-progress-steps__marker {
307
+ display: inline-grid;
308
+ width: var(--bh-space-5xl-24);
309
+ height: var(--bh-space-5xl-24);
310
+ flex: 0 0 auto;
311
+ place-items: center;
312
+ border-radius: var(--bh-radius-full);
313
+ background: var(--bh-interactive-secondary-default);
314
+ color: var(--bh-content-default);
315
+ }
316
+
317
+ .ds-progress-steps__item.is-complete .ds-progress-steps__marker,
318
+ .ds-progress-steps__item.is-active .ds-progress-steps__marker {
319
+ background: var(--bh-interactive-brand-default);
320
+ color: var(--bh-content-on-brand);
321
+ }
322
+
323
+ .ds-progress-steps__connector {
324
+ display: block;
325
+ width: var(--bh-space-9xl-64);
326
+ height: var(--bh-space-xxxs-1);
327
+ flex: 0 0 auto;
328
+ background: var(--bh-border-default);
329
+ }
330
+
331
+ .ds-progress-steps__connector.is-complete {
332
+ background: var(--bh-border-accent-purple-strong);
333
+ }
334
+
335
+ .ds-progress-steps--bars {
336
+ display: grid;
337
+ gap: var(--bh-space-md-8);
338
+ }
339
+
340
+ .ds-progress-steps__track {
341
+ display: flex;
342
+ gap: var(--bh-space-xs-4);
343
+ }
344
+
345
+ .ds-progress-steps__segment {
346
+ display: block;
347
+ min-width: var(--bh-space-3xl-16);
348
+ height: var(--bh-space-xs-4);
349
+ flex: 1 1 0;
350
+ border-radius: var(--bh-radius-full);
351
+ background: var(--bh-interactive-secondary-default);
352
+ }
353
+
354
+ .ds-progress-steps__segment[data-active="true"] {
355
+ background: var(--bh-interactive-brand-default);
356
+ }
@@ -64,12 +64,15 @@
64
64
  }
65
65
 
66
66
  .ds-data-table__toolbar [data-slot="toolbar-section"] {
67
+ max-width: 100%;
67
68
  min-width: 0;
69
+ flex-wrap: wrap;
68
70
  }
69
71
 
70
72
  .ds-data-table__toolbar [data-slot="toolbar-search"] {
71
- flex: 1 1 var(--bh-space-19xl-384);
72
- min-width: var(--bh-space-16xl-256);
73
+ width: min(100%, var(--bh-input-width));
74
+ min-width: 0;
75
+ flex: 1 1 min(100%, var(--bh-space-16xl-256));
73
76
  }
74
77
 
75
78
  .ds-data-table__body {
@@ -135,14 +138,21 @@
135
138
  .ds-table-wrap {
136
139
  box-sizing: border-box;
137
140
  width: 100%;
141
+ min-width: 0;
142
+ max-width: 100%;
143
+ contain: paint;
138
144
  overflow: auto;
139
- scrollbar-gutter: stable;
140
145
  border: var(--bh-space-xxxs-1) solid var(--bh-border-subtle);
141
146
  border-radius: var(--bh-radius-lg-8);
142
147
  background: var(--bh-bg-default);
143
148
  color: var(--bh-content-default);
144
149
  font-family: var(--bh-font-family);
145
150
  letter-spacing: var(--bh-text-base-letter-spacing);
151
+ outline: none;
152
+ }
153
+
154
+ .ds-table-wrap:focus-visible {
155
+ box-shadow: var(--shadow-component-focus-ring);
146
156
  }
147
157
 
148
158
  .ds-table-wrap *,
@@ -182,24 +192,26 @@
182
192
 
183
193
  .ds-table__cell {
184
194
  overflow: hidden;
185
- padding: 0 var(--bh-space-md-8);
195
+ padding-block: 0;
196
+ padding-inline: var(--bh-space-xl-12);
186
197
  vertical-align: middle;
187
198
  }
188
199
 
189
- .ds-table__cell--fill {
190
- width: auto;
200
+ .ds-table__cell--actions {
201
+ padding-inline: var(--bh-space-md-8);
191
202
  }
192
203
 
193
- .ds-table__cell--selection,
194
- .ds-table__cell--actions {
195
- text-align: center;
204
+ .ds-table__cell--fill {
205
+ width: auto;
196
206
  }
197
207
 
198
- .ds-table__cell--center {
208
+ .ds-table .ds-table__cell--selection,
209
+ .ds-table .ds-table__cell--actions,
210
+ .ds-table .ds-table__cell--center {
199
211
  text-align: center;
200
212
  }
201
213
 
202
- .ds-table__cell--end {
214
+ .ds-table .ds-table__cell--end {
203
215
  text-align: end;
204
216
  }
205
217
 
@@ -212,8 +224,12 @@
212
224
  }
213
225
 
214
226
  .ds-table__row--disabled {
215
- color: var(--bh-content-muted);
216
- opacity: var(--bh-opacity-muted);
227
+ color: var(--bh-content-default);
228
+ }
229
+
230
+ .ds-table__row--disabled .ds-table-item-text,
231
+ .ds-table__row--disabled .ds-table-avatar-text em {
232
+ color: var(--bh-content-default);
217
233
  }
218
234
 
219
235
  .ds-table__sort {
@@ -317,7 +333,7 @@
317
333
  }
318
334
 
319
335
  .ds-table-item-text {
320
- font-weight: var(--bh-font-weight-semibold);
336
+ font-weight: var(--bh-text-body-sm-regular-font-weight);
321
337
  }
322
338
 
323
339
  .ds-table-item-text--subtle {
@@ -325,7 +341,7 @@
325
341
  }
326
342
 
327
343
  .ds-table-item-text--medium {
328
- font-weight: var(--bh-font-weight-semibold);
344
+ font-weight: var(--bh-text-body-sm-medium-font-weight);
329
345
  }
330
346
 
331
347
  .ds-table-avatar-text,
@@ -352,7 +368,7 @@
352
368
 
353
369
  .ds-table-avatar-text em {
354
370
  overflow: hidden;
355
- color: var(--bh-content-muted);
371
+ color: var(--bh-content-default);
356
372
  font-size: var(--bh-text-body-2xs-regular-font-size);
357
373
  font-style: normal;
358
374
  line-height: var(--bh-text-body-2xs-regular-line-height);
@@ -361,20 +377,7 @@
361
377
  }
362
378
 
363
379
  .ds-table-avatar {
364
- width: calc(var(--bh-space-5xl-24) + var(--bh-space-xs-4));
365
- height: calc(var(--bh-space-5xl-24) + var(--bh-space-xs-4));
366
380
  flex: 0 0 auto;
367
- display: inline-grid;
368
- place-items: center;
369
- border-radius: var(--bh-radius-full);
370
- background: var(--bh-bg-brand-soft);
371
- color: var(--bh-content-brand-default);
372
- font-size: var(--bh-text-body-3xs-regular-font-size);
373
- font-weight: var(--bh-font-weight-bold);
374
- }
375
-
376
- img.ds-table-avatar {
377
- object-fit: cover;
378
381
  }
379
382
 
380
383
  .ds-table-badges,
@@ -387,8 +390,7 @@ img.ds-table-avatar {
387
390
  max-width: 100%;
388
391
  }
389
392
 
390
- .ds-table-badge,
391
- .ds-table-tags span {
393
+ .ds-table-badge {
392
394
  min-height: var(--bh-space-5xl-24);
393
395
  display: inline-flex;
394
396
  align-items: center;
@@ -447,37 +449,12 @@ img.ds-table-avatar {
447
449
 
448
450
  .ds-table-progress {
449
451
  min-width: var(--bh-table-selection-column-min-width);
450
- display: inline-grid;
451
- grid-template-columns: minmax(0, 1fr) auto;
452
- align-items: center;
453
- gap: var(--bh-space-md-8);
454
- }
455
-
456
- .ds-table-progress > span {
457
- height: var(--bh-space-md-8);
458
- overflow: hidden;
459
- border-radius: var(--bh-radius-full);
460
- background: var(--bh-bg-muted);
461
452
  }
462
453
 
463
- .ds-table-progress i {
464
- height: 100%;
465
- display: block;
466
- border-radius: inherit;
454
+ .ds-table-progress--success [data-slot="progress-fill"] {
467
455
  background: var(--bh-content-success-default);
468
456
  }
469
457
 
470
- .ds-table-progress--brand i {
471
- background: var(--bh-bg-brand-default);
472
- }
473
-
474
- .ds-table-progress em {
475
- color: var(--bh-content-subtle);
476
- font-size: var(--bh-text-body-2xs-regular-font-size);
477
- font-style: normal;
478
- font-weight: var(--bh-font-weight-semibold);
479
- }
480
-
481
458
  .ds-table-toggle {
482
459
  width: calc(var(--bh-space-6xl-32) + var(--bh-space-xxs-2));
483
460
  height: var(--bh-space-4xl-20);
@@ -574,12 +551,23 @@ img.ds-table-avatar {
574
551
  }
575
552
 
576
553
  .ds-table-rating {
554
+ display: inline-flex;
555
+ align-items: center;
556
+ gap: var(--bh-space-xxxs-1);
577
557
  color: var(--bh-bg-neutral-medium);
578
- letter-spacing: var(--bh-space-xxxs-1);
558
+ vertical-align: middle;
559
+ }
560
+
561
+ .ds-table-rating svg {
562
+ width: var(--bh-space-3xl-16);
563
+ height: var(--bh-space-3xl-16);
564
+ flex: 0 0 auto;
565
+ fill: transparent;
579
566
  }
580
567
 
581
568
  .ds-table-rating .is-filled {
582
569
  color: var(--bh-bg-accent-golden-default);
570
+ fill: currentColor;
583
571
  }
584
572
 
585
573
  .ds-table-avatar-stack .ds-table-avatar {
@@ -589,24 +577,27 @@ img.ds-table-avatar {
589
577
 
590
578
  .ds-table-avatar--count,
591
579
  .ds-table-avatar-stack button {
592
- width: calc(var(--bh-space-5xl-24) + var(--bh-space-xs-4));
593
- height: calc(var(--bh-space-5xl-24) + var(--bh-space-xs-4));
580
+ width: var(--bh-avatar-size-xs);
581
+ height: var(--bh-avatar-size-xs);
594
582
  border: var(--bh-space-xxs-2) solid var(--bh-bg-raised);
595
583
  border-radius: var(--bh-radius-full);
596
584
  background: var(--bh-bg-muted);
597
585
  color: var(--bh-content-subtle);
598
- font-size: var(--bh-text-body-3xs-regular-font-size);
599
- font-weight: var(--bh-font-weight-bold);
586
+ font-size: var(--bh-avatar-fallback-font-size-xs);
587
+ font-weight: var(--bh-font-weight-semibold);
600
588
  }
601
589
 
602
- .ds-table-wrap[dir="rtl"] {
603
- font-family: var(--bh-font-family);
590
+ .ds-table-avatar-stack--lg .ds-table-avatar--count,
591
+ .ds-table-avatar-stack--lg button {
592
+ width: var(--bh-avatar-size-md);
593
+ height: var(--bh-avatar-size-md);
594
+ font-size: var(--bh-avatar-fallback-font-size-md);
604
595
  }
605
596
 
606
- .ds-table-wrap[dir="rtl"] .ds-table-progress i {
607
- margin-inline-start: auto;
597
+ .ds-table-wrap:dir(rtl) {
598
+ font-family: var(--bh-font-family);
608
599
  }
609
600
 
610
- .ds-table-wrap[dir="rtl"] .ds-table-toggle[aria-pressed="true"] span {
601
+ .ds-table-wrap:dir(rtl) .ds-table-toggle[aria-pressed="true"] span {
611
602
  transform: translateX(calc(-1 * var(--bh-space-2xl-14)));
612
603
  }
@@ -49,10 +49,17 @@
49
49
  align-items: flex-start;
50
50
  width: min(var(--bh-timeline-grid-width), 100%);
51
51
  min-width: 0;
52
+ overflow-x: auto;
53
+ overscroll-behavior-inline: contain;
54
+ outline: none;
52
55
  }
53
56
 
54
- .ds-timeline--rtl,
55
- .ds-timeline-item--rtl {
57
+ .ds-timeline--horizontal:focus-visible {
58
+ box-shadow: var(--shadow-component-focus-ring);
59
+ }
60
+
61
+ .ds-timeline:dir(rtl),
62
+ .ds-timeline-item:dir(rtl) {
56
63
  font-family: var(--bh-font-family);
57
64
  }
58
65
 
@@ -68,7 +75,7 @@
68
75
  min-height: calc(var(--bh-space-9xl-64) + var(--bh-space-xl-12));
69
76
  }
70
77
 
71
- .ds-timeline-item--vertical.ds-timeline-item--rtl {
78
+ .ds-timeline-item--vertical:dir(rtl) {
72
79
  justify-content: flex-end;
73
80
  }
74
81
 
@@ -82,7 +89,7 @@
82
89
  width: var(--bh-timeline-sidebar-width);
83
90
  }
84
91
 
85
- .ds-timeline-item--horizontal.ds-timeline-item--rtl {
92
+ .ds-timeline-item--horizontal:dir(rtl) {
86
93
  align-items: flex-end;
87
94
  }
88
95
 
@@ -90,7 +97,6 @@
90
97
  flex: 0 0 auto;
91
98
  display: flex;
92
99
  align-items: center;
93
- direction: ltr;
94
100
  }
95
101
 
96
102
  .ds-timeline__indicator--vertical {
@@ -190,7 +196,7 @@
190
196
  color: var(--timeline-content-default);
191
197
  }
192
198
 
193
- .ds-timeline-item--rtl .ds-timeline__body {
199
+ .ds-timeline-item:dir(rtl) .ds-timeline__body {
194
200
  align-items: flex-end;
195
201
  text-align: right;
196
202
  }
@@ -198,12 +204,7 @@
198
204
  .ds-timeline-item--horizontal .ds-timeline__body {
199
205
  flex: 0 0 auto;
200
206
  width: 100%;
201
- padding-right: var(--timeline-space-xl);
202
- }
203
-
204
- .ds-timeline-item--horizontal.ds-timeline-item--rtl .ds-timeline__body {
205
- padding-right: 0;
206
- padding-left: var(--timeline-space-xl);
207
+ padding-inline-end: var(--timeline-space-xl);
207
208
  }
208
209
 
209
210
  .ds-timeline__copy {
@@ -251,7 +252,7 @@
251
252
  padding-top: var(--timeline-space-xs);
252
253
  }
253
254
 
254
- .ds-timeline-item--vertical.ds-timeline-item--ltr .ds-timeline__date--leading {
255
+ .ds-timeline-item--vertical:dir(ltr) .ds-timeline__date--leading {
255
256
  text-align: right;
256
257
  }
257
258
 
@@ -261,9 +262,9 @@
261
262
  text-align: start;
262
263
  }
263
264
 
264
- .ds-timeline-item--rtl .ds-timeline__date--leading,
265
- .ds-timeline-item--rtl .ds-timeline__date--top,
266
- .ds-timeline-item--rtl .ds-timeline__date--bottom {
265
+ .ds-timeline-item:dir(rtl) .ds-timeline__date--leading,
266
+ .ds-timeline-item:dir(rtl) .ds-timeline__date--top,
267
+ .ds-timeline-item:dir(rtl) .ds-timeline__date--bottom {
267
268
  text-align: right;
268
269
  }
269
270