@actabldesign/bellhop-styles 0.0.3 → 0.0.12

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 (127) hide show
  1. package/README.md +105 -70
  2. package/dist/index.css +1538 -0
  3. package/dist/utilities.css +5730 -0
  4. package/llms.txt +2852 -0
  5. package/package.json +29 -20
  6. package/project.json +29 -0
  7. package/rollup.config.js +44 -0
  8. package/{base → src/base}/normalize.css +4 -0
  9. package/src/bh-tokens/_primitives.scss +296 -0
  10. package/src/bh-tokens/_semantic.scss +158 -0
  11. package/src/bh-tokens/components/_avatar.tokens.scss +64 -0
  12. package/src/bh-tokens/components/_badge-dot.tokens.scss +33 -0
  13. package/src/bh-tokens/components/_badge.tokens.scss +61 -0
  14. package/src/bh-tokens/components/_button-icon.tokens.scss +65 -0
  15. package/src/bh-tokens/components/_button.tokens.scss +185 -0
  16. package/src/bh-tokens/components/_checkbox.tokens.scss +67 -0
  17. package/src/bh-tokens/components/_dropdown.tokens.scss +103 -0
  18. package/src/bh-tokens/components/_featured-icon.tokens.scss +57 -0
  19. package/src/bh-tokens/components/_input-number.tokens.scss +50 -0
  20. package/src/bh-tokens/components/_input.tokens.scss +86 -0
  21. package/src/bh-tokens/components/_label.tokens.scss +37 -0
  22. package/src/bh-tokens/components/_modal.tokens.scss +42 -0
  23. package/src/bh-tokens/components/_pagination.tokens.scss +104 -0
  24. package/src/bh-tokens/components/_password.tokens.scss +63 -0
  25. package/src/bh-tokens/components/_progress-bar.tokens.scss +34 -0
  26. package/src/bh-tokens/components/_progress-spinner.tokens.scss +51 -0
  27. package/src/bh-tokens/components/_radiobutton.tokens.scss +90 -0
  28. package/src/bh-tokens/components/_skeleton.tokens.scss +22 -0
  29. package/src/bh-tokens/components/_textarea.tokens.scss +76 -0
  30. package/src/bh-tokens/components/_toggle.tokens.scss +74 -0
  31. package/src/bh-tokens/components/avatar.scss +288 -0
  32. package/src/bh-tokens/components/badge-dot.scss +177 -0
  33. package/src/bh-tokens/components/badge.scss +497 -0
  34. package/src/bh-tokens/components/button-icon.scss +227 -0
  35. package/src/bh-tokens/components/button.scss +640 -0
  36. package/src/bh-tokens/components/checkbox.scss +254 -0
  37. package/src/bh-tokens/components/dropdown.scss +231 -0
  38. package/src/bh-tokens/components/featured-icon.scss +219 -0
  39. package/src/bh-tokens/components/input-number.scss +147 -0
  40. package/src/bh-tokens/components/input.scss +271 -0
  41. package/src/bh-tokens/components/label.scss +176 -0
  42. package/src/bh-tokens/components/modal.scss +103 -0
  43. package/src/bh-tokens/components/pagination.scss +324 -0
  44. package/src/bh-tokens/components/password.scss +193 -0
  45. package/src/bh-tokens/components/progress-bar.scss +124 -0
  46. package/src/bh-tokens/components/progress-spinner.scss +130 -0
  47. package/src/bh-tokens/components/radiobutton.scss +193 -0
  48. package/src/bh-tokens/components/skeleton.scss +50 -0
  49. package/src/bh-tokens/components/textarea.scss +228 -0
  50. package/src/bh-tokens/components/toggle.scss +320 -0
  51. package/src/index.css +22 -0
  52. package/src/mixins/_responsive.scss +167 -0
  53. package/src/tokens/bellhop-animations.css +392 -0
  54. package/src/tokens/bellhop-global.css +175 -0
  55. package/src/tokens/bellhop-icons.css +77 -0
  56. package/src/tokens/bellhop-layout.css +216 -0
  57. package/src/tokens/bellhop-primary-colors.css +96 -0
  58. package/src/tokens/bellhop-radius.css +14 -0
  59. package/src/tokens/bellhop-secondary-colors.css +154 -0
  60. package/src/tokens/bellhop-shadows.css +55 -0
  61. package/src/tokens/bellhop-spacing.css +66 -0
  62. package/src/tokens/bellhop-styles.css +174 -0
  63. package/src/tokens/bellhop-typography.css +146 -0
  64. package/src/tokens/colors.json +737 -0
  65. package/src/tokens/colors.mdx +59 -0
  66. package/src/tokens/index.css +17 -0
  67. package/src/utilities/_breakpoints.scss +19 -0
  68. package/src/utilities/_flex.scss +228 -0
  69. package/src/utilities/_grid.scss +189 -0
  70. package/src/utilities/_index.scss +32 -0
  71. package/src/utilities/_scrollable.scss +239 -0
  72. package/src/utilities/_sizing.scss +229 -0
  73. package/src/utilities/_spacing.scss +187 -0
  74. package/src/utilities/_truncation.scss +126 -0
  75. package/src/utilities/_visibility.scss +117 -0
  76. package/src/utilities.scss +32 -0
  77. package/components/appbar.css +0 -167
  78. package/components/autocomplete-menu.css +0 -142
  79. package/components/avatar-add.css +0 -112
  80. package/components/avatar.css +0 -253
  81. package/components/badge-dot.css +0 -78
  82. package/components/badge.css +0 -337
  83. package/components/bar-chart-card.css +0 -261
  84. package/components/bar-chart.css +0 -149
  85. package/components/breadcrumbs.css +0 -136
  86. package/components/button.css +0 -266
  87. package/components/chart-tooltip.css +0 -96
  88. package/components/checkbox-label.css +0 -53
  89. package/components/checkbox.css +0 -127
  90. package/components/container-footer.css +0 -22
  91. package/components/container.css +0 -17
  92. package/components/date-picker-content.css +0 -337
  93. package/components/date-picker.css +0 -103
  94. package/components/date-range-picker-content.css +0 -85
  95. package/components/date-range-picker.css +0 -72
  96. package/components/dropdown-menu.css +0 -204
  97. package/components/dropdown.css +0 -126
  98. package/components/empty-state.css +0 -83
  99. package/components/featured-icon.css +0 -194
  100. package/components/illustrations.css +0 -120
  101. package/components/input-autocomplete.css +0 -158
  102. package/components/input-number.css +0 -2
  103. package/components/input-verification.css +0 -137
  104. package/components/input.css +0 -374
  105. package/components/loader-spinner.css +0 -421
  106. package/components/logo-box.css +0 -85
  107. package/components/month-picker-content.css +0 -190
  108. package/components/month-picker.css +0 -83
  109. package/components/nav-item.css +0 -110
  110. package/components/notification.css +0 -262
  111. package/components/page-navigation.css +0 -294
  112. package/components/picker-menu.css +0 -43
  113. package/components/pie-chart-card.css +0 -213
  114. package/components/pie-chart.css +0 -80
  115. package/components/product-switcher.css +0 -127
  116. package/components/property-switcher.css +0 -95
  117. package/components/radio-button-label.css +0 -53
  118. package/components/radio-button.css +0 -134
  119. package/components/sidebar.css +0 -178
  120. package/components/skeleton-loader.css +0 -47
  121. package/components/tag.css +0 -214
  122. package/components/textarea.css +0 -211
  123. package/components/toggle.css +0 -298
  124. package/components/tooltip.css +0 -85
  125. package/components/trend-chart-card.css +0 -189
  126. package/components/trend-chart.css +0 -94
  127. package/index.css +0 -8115
@@ -0,0 +1,324 @@
1
+ /* ==========================================================================
2
+ BH-PAGINATION COMPONENT STYLES
3
+ Uses tokens from _pagination.tokens.scss
4
+ ========================================================================== */
5
+
6
+ @use './_pagination.tokens.scss';
7
+
8
+ /* ==========================================================================
9
+ BASE PAGINATION CONTAINER
10
+ ========================================================================== */
11
+
12
+ .pagination {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ gap: var(--bh-pagination-gap);
17
+ padding: var(--bh-pagination-padding-block) var(--bh-pagination-padding-inline);
18
+ background-color: var(--bh-pagination-bg);
19
+ border-top: var(--bh-pagination-border-width) solid var(--bh-pagination-border-color);
20
+ font-family: var(--bh-font-family);
21
+ }
22
+
23
+ /* ==========================================================================
24
+ DISABLED STATE
25
+ ========================================================================== */
26
+
27
+ .pagination-disabled {
28
+ opacity: var(--bh-pagination-disabled-opacity);
29
+ pointer-events: none;
30
+ }
31
+
32
+ /* ==========================================================================
33
+ INFO SECTION
34
+ ========================================================================== */
35
+
36
+ .pagination-info {
37
+ display: flex;
38
+ align-items: center;
39
+ }
40
+
41
+ .pagination-info-text {
42
+ font-size: var(--bh-pagination-info-font-size);
43
+ color: var(--bh-pagination-info-color);
44
+ white-space: nowrap;
45
+ }
46
+
47
+ /* ==========================================================================
48
+ CONTROLS SECTION
49
+ ========================================================================== */
50
+
51
+ .pagination-controls {
52
+ display: flex;
53
+ justify-content: space-between;
54
+ align-items: center;
55
+ width: 100%;
56
+ gap: var(--bh-pagination-controls-gap);
57
+ }
58
+
59
+ /* ==========================================================================
60
+ PAGE SIZE SELECTOR
61
+ ========================================================================== */
62
+
63
+ .pagination-page-size {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: var(--bh-pagination-page-size-gap);
67
+ }
68
+
69
+ .pagination-page-size-label {
70
+ font-size: var(--bh-pagination-page-size-label-font-size);
71
+ color: var(--bh-pagination-page-size-label-color);
72
+ white-space: nowrap;
73
+ }
74
+
75
+ .pagination-select {
76
+ appearance: none;
77
+ -webkit-appearance: none;
78
+ -moz-appearance: none;
79
+ background-color: var(--bh-pagination-select-bg);
80
+ border: 1px solid var(--bh-pagination-select-border);
81
+ border-radius: var(--bh-pagination-select-border-radius);
82
+ padding: 0 var(--bh-pagination-select-padding-inline-end) 0 var(--bh-pagination-select-padding-inline);
83
+ height: var(--bh-pagination-select-height);
84
+ font-size: var(--bh-pagination-select-font-size);
85
+ color: var(--bh-pagination-select-color);
86
+ cursor: pointer;
87
+ transition: var(--bh-pagination-select-transition);
88
+
89
+ /* Custom dropdown arrow */
90
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%2364748b'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
91
+ background-repeat: no-repeat;
92
+ background-position: right 4px center;
93
+ background-size: 16px;
94
+ }
95
+
96
+ .pagination-select:hover:not(:disabled) {
97
+ border-color: var(--bh-pagination-select-border-hover);
98
+ }
99
+
100
+ .pagination-select:focus {
101
+ outline: none;
102
+ border-color: var(--bh-pagination-select-border-focus);
103
+ box-shadow: var(--bh-pagination-select-focus-ring);
104
+ }
105
+
106
+ .pagination-select:disabled,
107
+ .pagination-select-disabled {
108
+ background-color: var(--bh-pagination-select-bg-disabled);
109
+ cursor: not-allowed;
110
+ }
111
+
112
+ /* ==========================================================================
113
+ NAVIGATION BUTTONS
114
+ ========================================================================== */
115
+
116
+ .pagination-nav {
117
+ display: flex;
118
+ align-items: center;
119
+ gap: var(--bh-pagination-nav-gap);
120
+ }
121
+
122
+ .pagination-btn {
123
+ display: inline-flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ width: var(--bh-pagination-btn-size);
127
+ height: var(--bh-pagination-btn-size);
128
+ padding: 0;
129
+ border: none;
130
+ border-radius: var(--bh-pagination-btn-border-radius);
131
+ background-color: var(--bh-pagination-btn-bg);
132
+ color: var(--bh-pagination-btn-color);
133
+ cursor: pointer;
134
+ transition: var(--bh-pagination-btn-transition);
135
+ }
136
+
137
+ .pagination-btn .material-symbols-outlined {
138
+ font-size: var(--bh-pagination-btn-icon-size);
139
+ font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20;
140
+ }
141
+
142
+ .pagination-btn:hover:not(:disabled) {
143
+ background-color: var(--bh-pagination-btn-bg-hover);
144
+ color: var(--bh-pagination-btn-color-hover);
145
+ }
146
+
147
+ .pagination-btn:focus-visible {
148
+ outline: none;
149
+ box-shadow: var(--bh-pagination-btn-focus-ring);
150
+ }
151
+
152
+ .pagination-btn:active:not(:disabled) {
153
+ background-color: var(--bh-pagination-btn-bg-active);
154
+ }
155
+
156
+ .pagination-btn:disabled,
157
+ .pagination-btn-disabled {
158
+ opacity: var(--bh-pagination-btn-disabled-opacity);
159
+ cursor: not-allowed;
160
+ }
161
+
162
+ /* ==========================================================================
163
+ PAGE NUMBERS DISPLAY
164
+ ========================================================================== */
165
+
166
+ .pagination-pages {
167
+ display: flex;
168
+ align-items: center;
169
+ gap: var(--bh-pagination-nav-gap);
170
+ }
171
+
172
+ .pagination-page-btn {
173
+ display: inline-flex;
174
+ align-items: center;
175
+ justify-content: center;
176
+ min-width: var(--bh-pagination-page-btn-min-width);
177
+ height: var(--bh-pagination-page-btn-height);
178
+ padding: 0 var(--bh-pagination-page-btn-padding-inline);
179
+ border: 1px solid transparent;
180
+ border-radius: var(--bh-pagination-page-btn-border-radius);
181
+ background-color: var(--bh-pagination-page-btn-bg);
182
+ color: var(--bh-pagination-page-btn-color);
183
+ font-size: var(--bh-pagination-page-btn-font-size);
184
+ font-weight: var(--bh-pagination-page-btn-font-weight);
185
+ cursor: pointer;
186
+ transition: var(--bh-pagination-page-btn-transition);
187
+ }
188
+
189
+ .pagination-page-btn:hover:not(:disabled) {
190
+ background-color: var(--bh-pagination-page-btn-bg-hover);
191
+ color: var(--bh-pagination-page-btn-color-hover);
192
+ }
193
+
194
+ .pagination-page-btn-active {
195
+ background-color: var(--bh-pagination-page-btn-bg-active);
196
+ color: var(--bh-pagination-page-btn-color-active);
197
+ border-color: var(--bh-pagination-page-btn-border-color-active);
198
+ }
199
+
200
+ .pagination-page-btn-active:hover:not(:disabled) {
201
+ background-color: var(--bh-pagination-page-btn-bg-active);
202
+ border-color: var(--bh-pagination-page-btn-border-color-active);
203
+ color: var(--bh-pagination-page-btn-color-active);
204
+ }
205
+
206
+ .pagination-page-btn:focus-visible {
207
+ outline: none;
208
+ box-shadow: var(--bh-pagination-page-btn-focus-ring);
209
+ }
210
+
211
+ .pagination-page-btn:disabled,
212
+ .pagination-page-btn-disabled {
213
+ opacity: var(--bh-pagination-page-btn-disabled-opacity);
214
+ cursor: not-allowed;
215
+ }
216
+
217
+ .pagination-ellipsis {
218
+ display: inline-flex;
219
+ align-items: center;
220
+ justify-content: center;
221
+ min-width: var(--bh-pagination-ellipsis-min-width);
222
+ color: var(--bh-pagination-ellipsis-color);
223
+ font-size: var(--bh-pagination-ellipsis-font-size);
224
+ user-select: none;
225
+ }
226
+
227
+ /* ==========================================================================
228
+ COMPACT MODE - PAGE INPUT
229
+ ========================================================================== */
230
+
231
+ .pagination-page-display {
232
+ display: flex;
233
+ align-items: center;
234
+ gap: var(--bh-pagination-page-display-gap);
235
+ }
236
+
237
+ .pagination-page-text {
238
+ font-size: var(--bh-pagination-page-text-font-size);
239
+ color: var(--bh-pagination-page-text-color);
240
+ white-space: nowrap;
241
+ }
242
+
243
+ .pagination-page-input {
244
+ width: var(--bh-pagination-page-input-width);
245
+ height: var(--bh-pagination-page-input-height);
246
+ padding: 0 var(--bh-pagination-page-input-padding);
247
+ border: 1px solid var(--bh-pagination-page-input-border);
248
+ border-radius: var(--bh-pagination-page-input-border-radius);
249
+ font-size: var(--bh-pagination-page-input-font-size);
250
+ text-align: center;
251
+ color: var(--bh-pagination-page-input-color);
252
+ background-color: var(--bh-pagination-page-input-bg);
253
+ transition: var(--bh-pagination-page-input-transition);
254
+ }
255
+
256
+ .pagination-page-input:hover:not(:disabled) {
257
+ border-color: var(--bh-pagination-page-input-border-hover);
258
+ }
259
+
260
+ .pagination-page-input:focus {
261
+ outline: none;
262
+ border-color: var(--bh-pagination-page-input-border-focus);
263
+ box-shadow: var(--bh-pagination-page-input-focus-ring);
264
+ }
265
+
266
+ .pagination-page-input:disabled,
267
+ .pagination-page-input-disabled {
268
+ background-color: var(--bh-pagination-page-input-bg-disabled);
269
+ cursor: not-allowed;
270
+ }
271
+
272
+ /* Remove number input spinners */
273
+ .pagination-page-input::-webkit-inner-spin-button,
274
+ .pagination-page-input::-webkit-outer-spin-button {
275
+ -webkit-appearance: none;
276
+ margin: 0;
277
+ }
278
+
279
+ .pagination-page-input[type='number'] {
280
+ -moz-appearance: textfield;
281
+ }
282
+
283
+ /* ==========================================================================
284
+ ACCESSIBILITY
285
+ ========================================================================== */
286
+
287
+ @media (prefers-reduced-motion: reduce) {
288
+ .pagination-btn,
289
+ .pagination-page-btn,
290
+ .pagination-select,
291
+ .pagination-page-input {
292
+ transition: none;
293
+ }
294
+ }
295
+
296
+ /* ==========================================================================
297
+ RESPONSIVE ADJUSTMENTS
298
+ ========================================================================== */
299
+
300
+ @media (max-width: 640px) {
301
+ .pagination {
302
+ flex-direction: column;
303
+ align-items: stretch;
304
+ gap: var(--bh-pagination-mobile-gap);
305
+ }
306
+
307
+ .pagination-info {
308
+ justify-content: center;
309
+ }
310
+
311
+ .pagination-controls {
312
+ justify-content: center;
313
+ flex-wrap: wrap;
314
+ }
315
+
316
+ .pagination-page-size {
317
+ width: 100%;
318
+ justify-content: center;
319
+ }
320
+
321
+ .pagination-nav {
322
+ justify-content: center;
323
+ }
324
+ }
@@ -0,0 +1,193 @@
1
+ /* ==========================================================================
2
+ BH-PASSWORD COMPONENT STYLES
3
+ Uses tokens from _password.tokens.scss
4
+ Extends base input styles
5
+ ========================================================================== */
6
+
7
+ @use './password.tokens' as *;
8
+ @use './input.scss' as *;
9
+
10
+ :host {
11
+ display: block;
12
+ font-family: var(--bh-input-font-family);
13
+ }
14
+
15
+ /* ==========================================================================
16
+ PASSWORD CONTAINER
17
+ ========================================================================== */
18
+
19
+ .password-container {
20
+ display: flex;
21
+ align-items: center;
22
+ gap: var(--bh-password-container-gap);
23
+ padding: var(--bh-password-container-padding-md);
24
+ height: var(--bh-password-height-md);
25
+ background: var(--bh-password-bg);
26
+ border: var(--bh-password-border-width) solid var(--bh-password-border);
27
+ border-radius: var(--bh-password-radius);
28
+ transition: var(--bh-password-transition);
29
+ cursor: text;
30
+ box-sizing: border-box;
31
+ }
32
+
33
+ /* ==========================================================================
34
+ PASSWORD SIZES
35
+ ========================================================================== */
36
+
37
+ .password-container.password-container-small {
38
+ height: var(--bh-password-height-sm);
39
+ padding: var(--bh-password-container-padding-sm);
40
+ font-size: var(--bh-input-font-size-sm);
41
+ }
42
+
43
+ .password-container.password-container-large {
44
+ height: var(--bh-password-height-lg);
45
+ padding: var(--bh-password-container-padding-lg);
46
+ font-size: var(--bh-input-font-size-lg);
47
+ }
48
+
49
+ /* ==========================================================================
50
+ PASSWORD VARIANTS
51
+ ========================================================================== */
52
+
53
+ .password-container.password-container-filled {
54
+ background: var(--bh-input-filled-bg);
55
+ border-color: var(--bh-input-filled-border);
56
+ }
57
+
58
+ .password-container.password-container-filled:not(.password-container-disabled):hover {
59
+ background: var(--bh-input-filled-bg-hover);
60
+ }
61
+
62
+ .password-container.password-container-filled.password-container-focused {
63
+ background: var(--bh-input-filled-bg-focused);
64
+ border-color: var(--bh-input-filled-border-focused);
65
+ }
66
+
67
+ /* ==========================================================================
68
+ FLUID (FULL-WIDTH)
69
+ ========================================================================== */
70
+
71
+ .password-container.password-container-fluid {
72
+ width: 100%;
73
+ }
74
+
75
+ /* ==========================================================================
76
+ PASSWORD STATES
77
+ ========================================================================== */
78
+
79
+ .password-container.password-container-hover {
80
+ border-color: var(--bh-input-border-hover);
81
+ }
82
+
83
+ .password-container.password-container-focused {
84
+ border-color: var(--bh-input-border-focused);
85
+ box-shadow: var(--bh-input-shadow-focused);
86
+ }
87
+
88
+ .password-container.password-container-disabled {
89
+ opacity: var(--bh-input-opacity-disabled);
90
+ cursor: not-allowed;
91
+ background: var(--bh-input-bg-disabled);
92
+ }
93
+
94
+ .password-container.password-container-invalid {
95
+ border-color: var(--bh-input-border-invalid);
96
+ }
97
+
98
+ .password-container.password-container-invalid.password-container-hover {
99
+ border-color: var(--bh-input-border-invalid-hover);
100
+ }
101
+
102
+ .password-container.password-container-invalid.password-container-focused {
103
+ border-color: var(--bh-input-border-invalid-focused);
104
+ }
105
+
106
+ /* ==========================================================================
107
+ TOGGLE MASK BUTTON
108
+ ========================================================================== */
109
+
110
+ .password-toggle-button {
111
+ display: inline-flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+ padding: 0;
115
+ width: var(--bh-password-toggle-button-size);
116
+ height: var(--bh-password-toggle-button-size);
117
+ border: none;
118
+ background: transparent;
119
+ cursor: pointer;
120
+ color: var(--bh-password-toggle-button-color);
121
+ transition: var(--bh-password-toggle-button-transition);
122
+ flex-shrink: 0;
123
+ }
124
+
125
+ .password-toggle-button:hover {
126
+ color: var(--bh-password-toggle-button-color-hover);
127
+ }
128
+
129
+ .password-toggle-button .material-symbols-outlined {
130
+ font-size: var(--bh-password-toggle-icon-size);
131
+ }
132
+
133
+ /* ==========================================================================
134
+ FEEDBACK PANEL
135
+ ========================================================================== */
136
+
137
+ .password-feedback-panel {
138
+ margin-top: var(--bh-password-feedback-panel-margin-top);
139
+ padding: var(--bh-password-feedback-panel-padding);
140
+ background: var(--bh-password-feedback-panel-bg);
141
+ border: var(--bh-password-feedback-panel-border);
142
+ border-radius: var(--bh-password-feedback-panel-radius);
143
+ box-shadow: var(--bh-password-feedback-panel-shadow);
144
+ }
145
+
146
+ .password-feedback-header {
147
+ display: flex;
148
+ justify-content: space-between;
149
+ align-items: center;
150
+ margin-bottom: var(--bh-password-feedback-header-gap);
151
+ font-family: inherit;
152
+ font-weight: var(--bh-password-feedback-header-font-weight);
153
+ font-size: var(--bh-password-feedback-header-font-size);
154
+ line-height: 1.43;
155
+ }
156
+
157
+ .password-prompt {
158
+ color: var(--bh-password-prompt-color);
159
+ }
160
+
161
+ .password-strength-label {
162
+ color: var(--bh-password-strength-label-color);
163
+ }
164
+
165
+ /* ==========================================================================
166
+ STRENGTH METER
167
+ ========================================================================== */
168
+
169
+ .password-strength-meter-container {
170
+ width: var(--bh-password-strength-meter-width);
171
+ height: var(--bh-password-strength-meter-height);
172
+ background: var(--bh-password-strength-meter-bg);
173
+ border-radius: var(--bh-password-strength-meter-radius);
174
+ overflow: hidden;
175
+ }
176
+
177
+ .strength-meter {
178
+ height: 100%;
179
+ transition: var(--bh-password-strength-meter-transition);
180
+ border-radius: var(--bh-password-strength-meter-radius);
181
+ }
182
+
183
+ .strength-meter.strength-meter-weak {
184
+ background: var(--bh-password-strength-weak-color);
185
+ }
186
+
187
+ .strength-meter.strength-meter-medium {
188
+ background: var(--bh-password-strength-medium-color);
189
+ }
190
+
191
+ .strength-meter.strength-meter-strong {
192
+ background: var(--bh-password-strength-strong-color);
193
+ }
@@ -0,0 +1,124 @@
1
+ /* ==========================================================================
2
+ BH-PROGRESS-BAR COMPONENT STYLES
3
+ Uses tokens from _progress-bar.tokens.scss
4
+ ========================================================================== */
5
+
6
+ @use './_progress-bar.tokens.scss';
7
+
8
+ :host {
9
+ display: block;
10
+ width: 100%;
11
+ position: relative;
12
+ }
13
+
14
+ .bh-progress-bar:has(.bh-progress-bar-value-right) {
15
+ margin-right: 50px;
16
+ }
17
+
18
+ /* ==========================================================================
19
+ BASE PROGRESS BAR CONTAINER
20
+ ========================================================================== */
21
+
22
+ .bh-progress-bar-container {
23
+ position: relative;
24
+ height: var(--bh-progress-bar-height);
25
+ background-color: var(--bh-progress-bar-bg);
26
+ border-radius: var(--bh-progress-bar-radius);
27
+ /* overflow: visible is required for all floating and right labels */
28
+ overflow: visible;
29
+ }
30
+
31
+ /* ==========================================================================
32
+ PROGRESS BAR VALUE (FILLED PORTION)
33
+ ========================================================================== */
34
+ .bh-progress-bar-value {
35
+ height: 100%;
36
+ background-color: var(--bh-progress-bar-bg-filled);
37
+ transition: var(--bh-progress-bar-transition);
38
+ border-radius: var(--bh-progress-bar-radius);
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: flex-end;
42
+ }
43
+
44
+ /* ==========================================================================
45
+ INDETERMINATE MODE (ANIMATION)
46
+ ========================================================================== */
47
+
48
+ /* The class is usually applied to the host via controller.classes */
49
+ :host-context(.bh-progress-bar-indeterminate),
50
+ .bh-progress-bar-indeterminate {
51
+ .bh-progress-bar-value {
52
+ width: 100% !important;
53
+ background-image: linear-gradient(
54
+ to right,
55
+ var(--bh-progress-bar-bg-filled) 10%,
56
+ var(--bh-brand-300) 50%,
57
+ var(--bh-progress-bar-bg-filled) 100%
58
+ );
59
+ background-size: 200% 100%;
60
+ animation: bh-progress-bar-shimmer var(--bh-progress-bar-animation-duration)
61
+ linear infinite;
62
+ }
63
+ }
64
+
65
+ @keyframes bh-progress-bar-shimmer {
66
+ 0% {
67
+ background-position: 200% 0;
68
+ }
69
+ 100% {
70
+ background-position: -200% 0;
71
+ }
72
+ }
73
+
74
+ /* ==========================================================================
75
+ VALUE LABEL POSITIONS
76
+ ========================================================================== */
77
+
78
+ .bh-progress-bar-label {
79
+ color: var(--bh-progress-bar-label-color);
80
+ font-size: var(--bh-progress-bar-label-font-size);
81
+ line-height: var(--bh-progress-bar-label-line-height);
82
+ font-weight: var(--bh-progress-bar-label-font-weight);
83
+ white-space: nowrap;
84
+ position: absolute; /* All labels are now absolute relative to the container */
85
+
86
+ /* 1. RIGHT: Fixed at the end of the gray track (100% of container width) */
87
+ &.bh-progress-bar-value-right {
88
+ left: calc(100% + var(--bh-spacing-sm));
89
+ top: 50%;
90
+ transform: translateY(-50%);
91
+ text-align: left;
92
+ min-width: 3rem;
93
+ }
94
+
95
+ /* 2. BOTTOM: Aligned to the far right, below the bar */
96
+ &.bh-progress-bar-value-bottom {
97
+ right: 0;
98
+ top: calc(100% + var(--bh-spacing-xs));
99
+ text-align: right;
100
+ }
101
+
102
+ /* 3. FLOATING: Tied to the 'left' style percentage from the template */
103
+ &.bh-progress-bar-value-top-floating,
104
+ &.bh-progress-bar-value-bottom-floating {
105
+ transform: translateX(-50%);
106
+ transition: left var(--bh-progress-bar-transition);
107
+ }
108
+
109
+ &.bh-progress-bar-value-top-floating {
110
+ bottom: calc(100% + var(--bh-spacing-xs));
111
+ }
112
+
113
+ &.bh-progress-bar-value-bottom-floating {
114
+ top: calc(100% + var(--bh-spacing-xs));
115
+ }
116
+
117
+ &.bh-progress-bar-value-floating {
118
+ padding: var(--bh-spacing-xxs) var(--bh-spacing-xs);
119
+ background-color: var(--bh-white);
120
+ border: 1px solid var(--bh-progress-bar-label-border);
121
+ border-radius: var(--bh-progress-bar-label-radius);
122
+ box-shadow: var(--bh-progress-bar-label-shadow);
123
+ }
124
+ }