@viasat/beam-styles 2.0.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 (76) hide show
  1. package/README.md +150 -0
  2. package/all.scss +3 -0
  3. package/components/accordion.module.scss +166 -0
  4. package/components/accordion.vars.scss +3 -0
  5. package/components/actionList.module.scss +211 -0
  6. package/components/actionList.vars.scss +6 -0
  7. package/components/alert.module.scss +158 -0
  8. package/components/aspectRatio.module.scss +21 -0
  9. package/components/avatar.module.scss +204 -0
  10. package/components/badge.module.scss +166 -0
  11. package/components/badgeDot.module.scss +90 -0
  12. package/components/box.module.scss +127 -0
  13. package/components/breadcrumbs.module.scss +149 -0
  14. package/components/button.module.scss +179 -0
  15. package/components/button.vars.scss +129 -0
  16. package/components/card.module.scss +232 -0
  17. package/components/checkbox.module.scss +123 -0
  18. package/components/chip.module.scss +173 -0
  19. package/components/chipsGroup.module.scss +13 -0
  20. package/components/closeButton.module.scss +52 -0
  21. package/components/combobox.module.scss +243 -0
  22. package/components/dialog.module.scss +199 -0
  23. package/components/divider.module.scss +255 -0
  24. package/components/emptyState.module.scss +61 -0
  25. package/components/fileUpload.module.scss +282 -0
  26. package/components/flag.module.scss +11 -0
  27. package/components/floatingui.module.scss +40 -0
  28. package/components/header.module.scss +123 -0
  29. package/components/helperText.module.scss +86 -0
  30. package/components/icon.module.scss +46 -0
  31. package/components/icon.vars.scss +31 -0
  32. package/components/index.scss +40 -0
  33. package/components/inputChoiceGroup.module.scss +46 -0
  34. package/components/label.module.scss +67 -0
  35. package/components/link.module.scss +118 -0
  36. package/components/list.module.scss +204 -0
  37. package/components/logo.module.scss +11 -0
  38. package/components/menu.module.scss +13 -0
  39. package/components/nativeSelect.module.scss +139 -0
  40. package/components/navigation.module.scss +156 -0
  41. package/components/pageHeader.module.scss +93 -0
  42. package/components/pageLayout.module.scss +38 -0
  43. package/components/pagination.module.scss +71 -0
  44. package/components/popover.module.scss +71 -0
  45. package/components/progressBar.module.scss +107 -0
  46. package/components/radioButton.module.scss +115 -0
  47. package/components/segmentedControl.module.scss +212 -0
  48. package/components/sideNav.module.scss +355 -0
  49. package/components/slider.module.scss +240 -0
  50. package/components/spinner.module.scss +261 -0
  51. package/components/spinner.vars.scss +85 -0
  52. package/components/stepper.module.scss +255 -0
  53. package/components/switch.module.scss +194 -0
  54. package/components/tabs.module.scss +412 -0
  55. package/components/text.module.scss +112 -0
  56. package/components/textArea.module.scss +183 -0
  57. package/components/textField.module.scss +162 -0
  58. package/components/toast.module.scss +235 -0
  59. package/components/toastContainer.module.scss +68 -0
  60. package/components/tooltip.module.scss +112 -0
  61. package/package.json +47 -0
  62. package/styles.css +11719 -0
  63. package/styles.css.map +1 -0
  64. package/styles.min.css +20 -0
  65. package/styles.min.css.map +1 -0
  66. package/utils/animation.scss +13 -0
  67. package/utils/constants.scss +1 -0
  68. package/utils/cursors.scss +35 -0
  69. package/utils/globals.scss +17 -0
  70. package/utils/helpers.scss +14 -0
  71. package/utils/index.scss +10 -0
  72. package/utils/mixins.scss +93 -0
  73. package/utils/spacing.scss +82 -0
  74. package/utils/stateLayer.module.scss +55 -0
  75. package/utils/stateLayerVars.scss +75 -0
  76. package/utils/tokens.scss +14 -0
@@ -0,0 +1,261 @@
1
+ @use 'sass:map';
2
+ @use 'sass:math';
3
+ @use '../utils/tokens.scss' as tokens;
4
+ @use './spinner.vars.scss' as vars;
5
+
6
+ @function get-var($suffix, $spinnerVarPrefix: vars.$spinnerVarPrefix) {
7
+ @return var(#{$spinnerVarPrefix}#{vars.$spinnerBgStrokeVarSuffix});
8
+ }
9
+
10
+ @function getRadius($side-length, $stroke-width) {
11
+ // NOTE: Leave for future refactor. Svg Circle sizing:
12
+ // 2 * radius + stroke width = browser computet square area side length (sideLength)
13
+ // (2r + width = sideLength)
14
+ // so
15
+ // 2r = sideLength - width
16
+
17
+ $radius: math.div($side-length - $stroke-width, 2);
18
+ @return $radius;
19
+ }
20
+
21
+ @function get-size-prop-var-name(
22
+ $size,
23
+ $suffix,
24
+ $spinnerVarPrefix: vars.$spinnerVarPrefix
25
+ ) {
26
+ @return '#{$spinnerVarPrefix}-#{$size}-#{$suffix}';
27
+ }
28
+
29
+ @function get-size-prop-var(
30
+ $size,
31
+ $suffix,
32
+ $spinnerVarPrefix: vars.$spinnerVarPrefix
33
+ ) {
34
+ @return var(#{$spinnerVarPrefix}-#{$size}-#{$suffix});
35
+ }
36
+
37
+ @mixin square($size) {
38
+ width: $size;
39
+ height: $size;
40
+ }
41
+
42
+ %spinnerShared {
43
+ position: relative;
44
+ margin: 0 auto;
45
+
46
+ @include square(var(#{vars.$spinnerSideLengthVar}));
47
+ }
48
+
49
+ %circlesShared {
50
+ r: calc(
51
+ (var(#{vars.$spinnerSideLengthVar}) - var(#{vars.$spinnerStrokeWidth})) / 2
52
+ );
53
+ stroke-width: var(#{vars.$spinnerStrokeWidth});
54
+ }
55
+
56
+ %spinnerSvgElement {
57
+ position: relative;
58
+ transform: rotate(#{vars.$initialRotation}deg) translate3d(0, 0, 0);
59
+
60
+ @include square(calc(var(#{vars.$spinnerSideLengthVar})));
61
+ }
62
+
63
+ %spinnerCircleElement {
64
+ @extend %circlesShared;
65
+ stroke: tokens.$bm-comp-spinner-color-indicator;
66
+
67
+ stroke-linecap: round;
68
+ transform-origin: center;
69
+ }
70
+
71
+ %spinnerCircleBgElement {
72
+ @extend %circlesShared;
73
+ stroke: tokens.$bm-comp-spinner-color-track;
74
+ }
75
+
76
+ %indeterminateSpinnerWrap {
77
+ $muchLargerThanCircumference: 500;
78
+ $asSmallThatItLooksLikeDot: 1;
79
+
80
+ @function stroke-dash($multiplier) {
81
+ @return calc(
82
+ (var(#{vars.$spinnerSideLengthVar}) - var(#{vars.$spinnerStrokeWidth})) * #{math.$pi} *
83
+ #{$multiplier}
84
+ );
85
+ }
86
+
87
+ @keyframes dash {
88
+ 0% {
89
+ stroke-dashoffset: 0;
90
+ stroke-dasharray: 1, stroke-dash(1.6);
91
+ }
92
+
93
+ 50% {
94
+ stroke-dasharray: stroke-dash(0.712), $muchLargerThanCircumference;
95
+ stroke-dashoffset: stroke-dash(-0.278);
96
+ }
97
+
98
+ 100% {
99
+ stroke-dasharray: stroke-dash(0.708), $muchLargerThanCircumference;
100
+ stroke-dashoffset: stroke-dash(-0.992);
101
+ }
102
+ }
103
+ }
104
+
105
+ .#{vars.$spinnerClassBase} {
106
+ @extend %spinnerShared;
107
+
108
+ &__#{vars.$svgEl} {
109
+ @extend %spinnerSvgElement;
110
+ }
111
+
112
+ &__#{vars.$circleEl} {
113
+ @extend %spinnerCircleElement;
114
+ }
115
+
116
+ &__#{vars.$circleBgEl} {
117
+ @extend %spinnerCircleBgElement;
118
+ }
119
+
120
+ &__content-wrapper {
121
+ display: flex;
122
+ flex-direction: column;
123
+ align-items: center;
124
+ gap: var(#{vars.$spinnerLabelToDescriptionSpacingVar});
125
+ }
126
+
127
+ &__heading {
128
+ display: inline-flex;
129
+ color: tokens.$bm-comp-spinner-color-heading;
130
+ font: tokens.$bm-comp-spinner-typo-heading;
131
+ }
132
+
133
+ &__percentage-indicator {
134
+ &:before {
135
+ content: '\a0'; // non-breaking space, works with rtl too (nbsp in html won't)
136
+ }
137
+ }
138
+
139
+ &__body {
140
+ margin: 0;
141
+ color: tokens.$bm-comp-spinner-color-body;
142
+ font: tokens.$bm-comp-spinner-typo-body;
143
+ text-align: center;
144
+ }
145
+
146
+ @keyframes rotation {
147
+ 0% {
148
+ transform: rotate(#{vars.$initialRotation}deg);
149
+ }
150
+
151
+ 100% {
152
+ transform: rotate(#{360 + vars.$initialRotation}deg);
153
+ }
154
+ }
155
+ }
156
+
157
+ .#{vars.$spinnerIndeterminate} {
158
+ @extend %indeterminateSpinnerWrap;
159
+
160
+ .#{vars.$spinnerClassBase}__#{vars.$svgEl} {
161
+ animation: rotation calc(var(#{vars.$spinnerAnimationSpeedVar}) / 2) linear
162
+ infinite;
163
+ }
164
+
165
+ .#{vars.$spinnerClassBase}__#{vars.$circleEl} {
166
+ animation: dash calc(var(#{vars.$spinnerAnimationSpeedVar}) / 2) ease infinite;
167
+ }
168
+ }
169
+
170
+ .#{vars.$spinnerDeterminate} {
171
+ .#{vars.$spinnerClassBase}__#{vars.$circleEl} {
172
+ transition: stroke-dasharray 0.5s ease;
173
+
174
+ stroke-dasharray: calc(
175
+ (
176
+ (var(#{vars.$spinnerSideLengthVar}) - var(#{vars.$spinnerStrokeWidth})) *
177
+ #{math.$pi}
178
+ ) * (var(#{vars.$spinnerValueVar}) / 100)
179
+ )
180
+ 300px;
181
+ stroke-dashoffset: 0;
182
+ }
183
+ }
184
+
185
+ .#{vars.$spinnerWrapClassBase} {
186
+ #{vars.$spinnerAnimationSpeedVar}: 3s;
187
+ max-width: tokens.$bm-comp-spinner-size-width;
188
+ margin: 0 auto;
189
+ display: flex;
190
+ flex-direction: column;
191
+ align-items: center;
192
+ gap: var(#{vars.$spinnerLabelToSpinnerSpacingVar});
193
+
194
+ progress {
195
+ -webkit-appearance: none;
196
+ appearance: none;
197
+ border: none;
198
+ position: absolute;
199
+ visibility: hidden;
200
+ width: 0;
201
+ }
202
+
203
+ ::-moz-progress-bar,
204
+ ::-webkit-progress-bar,
205
+ ::-webkit-progress-value,
206
+ ::-webkit-progress-inner-element {
207
+ -webkit-appearance: none;
208
+ appearance: none;
209
+ }
210
+
211
+ &--xs,
212
+ &--xxs {
213
+ display: inline-flex;
214
+ flex-direction: row;
215
+ align-items: center;
216
+ justify-content: center;
217
+ max-width: unset;
218
+
219
+ .#{vars.$spinnerClassBase} {
220
+ box-sizing: content-box;
221
+ margin-bottom: 0;
222
+ padding: tokens.$bm-comp-spinner-space-nudge-y 0;
223
+
224
+ &__content-wrapper {
225
+ display: inline-flex;
226
+ flex-direction: row;
227
+ }
228
+
229
+ &__body {
230
+ text-align: left;
231
+ }
232
+ }
233
+ }
234
+
235
+ &--xxs {
236
+ .#{vars.$spinnerClassBase} {
237
+ &__heading {
238
+ font: tokens.$bm-sem-typo-label-sm;
239
+ }
240
+
241
+ &__body {
242
+ font: tokens.$bm-sem-typo-body-sm;
243
+ }
244
+ }
245
+ }
246
+
247
+ @each $size, $token-values in vars.$fromTokens {
248
+ &--#{$size} {
249
+ #{vars.$spinnerSideLengthVar}: map.get($token-values, 'side-length');
250
+ #{vars.$spinnerStrokeWidth}: map.get($token-values, 'stroke-width');
251
+ #{vars.$spinnerLabelToSpinnerSpacingVar}: map.get(
252
+ $token-values,
253
+ 'label-to-spinner-spacing'
254
+ );
255
+ #{vars.$spinnerLabelToDescriptionSpacingVar}: map.get(
256
+ $token-values,
257
+ 'label-to-description-spacing'
258
+ );
259
+ }
260
+ }
261
+ }
@@ -0,0 +1,85 @@
1
+ @use '../utils/constants.scss';
2
+ @use '../utils/tokens.scss' as tokens;
3
+
4
+ @import '../../../../tokens/src/lib/components/Spinner';
5
+
6
+ $initialRotation: -90;
7
+
8
+ $spinnerClassBase: '#{constants.$prefix}spinner';
9
+ $spinnerWrapClassBase: '#{$spinnerClassBase}-wrap';
10
+ $hasValueButNotEmptyValue: '[value]:not([value=""])';
11
+
12
+ $interdeterminateSuffix: '--indeterminate';
13
+ $determinateSuffix: '--determinate';
14
+
15
+ $spinnerIndeterminate: '#{$spinnerClassBase}#{$interdeterminateSuffix}';
16
+ $spinnerDeterminate: '#{$spinnerClassBase}#{$determinateSuffix}';
17
+
18
+ $svgEl: 'svg';
19
+ $circleEl: 'circle';
20
+ $circleBgEl: 'circle-bg';
21
+
22
+ $spinnerSvgClassBase: '#{$spinnerClassBase}__#{svgEl}';
23
+ $circleSvgClassBase: '#{$spinnerClassBase}__#{$circleEl}';
24
+ $circleBgClassBase: '#{$spinnerClassBase}__#{$circleBgEl}';
25
+
26
+ $spinnerVarPrefix: '--#{$spinnerClassBase}-' !default;
27
+
28
+ $spinnerStrokeWidth: '#{$spinnerVarPrefix}stroke-width';
29
+ $spinnerCircleRadiusVar: '#{$spinnerVarPrefix}circle-radius';
30
+ $spinnerSideLengthVar: '#{$spinnerVarPrefix}side-length';
31
+ $spinnerLabelToSpinnerSpacingVar: '#{$spinnerVarPrefix}label-to-spinner-spacing';
32
+ $spinnerLabelToDescriptionSpacingVar: '#{$spinnerVarPrefix}label-to-description-spacing';
33
+ $spinnerAnimationSpeedVar: '#{$spinnerVarPrefix}animation-speed';
34
+ $spinnerStrokeVar: '#{$spinnerVarPrefix}stroke-color';
35
+ $spinnerBgStrokeVar: '#{$spinnerVarPrefix}spinner-bg';
36
+ $spinnerValueVar: '#{$spinnerVarPrefix}value';
37
+
38
+ $fromTokens: (
39
+ 'xxs': (
40
+ side-length: tokens.$bm-comp-spinner-size-xxs-track,
41
+ stroke-width: tokens.$bm-comp-spinner-size-xxs-border-width,
42
+ label-to-spinner-spacing: tokens.$bm-comp-spinner-space-xs-gap,
43
+ label-to-description-spacing: tokens.$bm-comp-spinner-space-content-gap,
44
+ ),
45
+ 'xs': (
46
+ side-length: tokens.$bm-comp-spinner-size-xs-track,
47
+ stroke-width: tokens.$bm-comp-spinner-size-xs-border-width,
48
+ label-to-spinner-spacing: tokens.$bm-comp-spinner-space-xs-gap,
49
+ label-to-description-spacing: tokens.$bm-comp-spinner-space-content-gap,
50
+ ),
51
+ 'sm': (
52
+ side-length: tokens.$bm-comp-spinner-size-sm-track,
53
+ stroke-width: tokens.$bm-comp-spinner-size-sm-border-width,
54
+ label-to-spinner-spacing: tokens.$bm-comp-spinner-space-sm-gap,
55
+ label-to-description-spacing: tokens.$bm-comp-spinner-space-content-gap,
56
+ ),
57
+ 'md': (
58
+ side-length: tokens.$bm-comp-spinner-size-md-track,
59
+ stroke-width: tokens.$bm-comp-spinner-size-md-border-width,
60
+ label-to-spinner-spacing: tokens.$bm-comp-spinner-space-md-gap,
61
+ label-to-description-spacing: tokens.$bm-comp-spinner-space-content-gap,
62
+ ),
63
+ 'lg': (
64
+ side-length: tokens.$bm-comp-spinner-size-lg-track,
65
+ stroke-width: tokens.$bm-comp-spinner-size-lg-border-width,
66
+ label-to-spinner-spacing: tokens.$bm-comp-spinner-space-lg-gap,
67
+ label-to-description-spacing: tokens.$bm-comp-spinner-space-content-gap,
68
+ ),
69
+ );
70
+
71
+ $sizeModifiers: (
72
+ xs: 'xs',
73
+ small: 'small',
74
+ medium: 'medium',
75
+ large: 'large',
76
+ );
77
+
78
+ $spinnerColors: (
79
+ stroke-color: tokens.$bm-comp-spinner-color-indicator,
80
+ spinner-bg: tokens.$bm-comp-spinner-color-track,
81
+ );
82
+
83
+ $interdeterminateSpinnerFillingAnimationTime: 3s;
84
+ $interdeterminateSpinnerRotationAnimationTime: 2 *
85
+ $interdeterminateSpinnerFillingAnimationTime;
@@ -0,0 +1,255 @@
1
+ @use '../utils/constants.scss';
2
+ @use '../utils/mixins.scss';
3
+ @use '../utils/tokens.scss' as tokens;
4
+
5
+ @import '../../../../tokens/src/lib/components/Stepper';
6
+
7
+ $stepperBaseClass: '#{constants.$prefix}stepper';
8
+
9
+ $stepperLineThicknessVarName: '--#{constants.$prefix}comp-stepper-line-thickness';
10
+ $stepperMarkerContainerSizeVarName: '--#{constants.$prefix}comp-stepper-size-container';
11
+ $stepperInlineStartLineSpaceVarName: '--#{constants.$prefix}comp-stepper-space-inline-start';
12
+ $stepperVerticalLineMinHeightVarName: '--#{constants.$prefix}comp-stepper-size-line-min-height';
13
+ $stepperLineColorVarName: '--#{constants.$prefix}comp-stepper-line-color';
14
+
15
+ .#{$stepperBaseClass} {
16
+ #{$stepperLineThicknessVarName}: #{tokens.$bm-comp-stepper-border-width-line};
17
+ #{$stepperMarkerContainerSizeVarName}: #{tokens.$bm-comp-stepper-size-md-container};
18
+ #{$stepperInlineStartLineSpaceVarName}: calc(
19
+ #{tokens.$bm-comp-stepper-space-horizontal-line-gap} + var(
20
+ #{$stepperMarkerContainerSizeVarName}
21
+ ) / 2
22
+ );
23
+ #{$stepperVerticalLineMinHeightVarName}: 1.5rem;
24
+
25
+ .#{$stepperBaseClass}__step--marker-only {
26
+ #{$stepperMarkerContainerSizeVarName}: #{tokens.$bm-comp-stepper-size-sm-container};
27
+ #{$stepperInlineStartLineSpaceVarName}: calc(
28
+ #{tokens.$bm-comp-stepper-space-horizontal-line-gap} + var(
29
+ #{$stepperMarkerContainerSizeVarName}
30
+ ) / 2
31
+ );
32
+ }
33
+
34
+ display: flex;
35
+ justify-content: center;
36
+ width: 100%;
37
+ padding: unset;
38
+ align-items: flex-start;
39
+
40
+ &--horizontal {
41
+ flex-direction: row;
42
+ }
43
+
44
+ &--vertical {
45
+ #{$stepperLineThicknessVarName}: #{tokens.$bm-comp-stepper-border-width-container};
46
+ #{$stepperInlineStartLineSpaceVarName}: calc(
47
+ #{tokens.$bm-comp-stepper-size-md-line-wrapper} / 2
48
+ );
49
+
50
+ .#{$stepperBaseClass}__step--marker-only {
51
+ #{$stepperInlineStartLineSpaceVarName}: calc(
52
+ #{tokens.$bm-comp-stepper-size-sm-line-wrapper} / 2
53
+ );
54
+ }
55
+
56
+ flex-direction: column;
57
+ }
58
+ }
59
+
60
+ .#{$stepperBaseClass}__step {
61
+ #{$stepperLineColorVarName}: #{tokens.$bm-comp-stepper-color-line};
62
+
63
+ display: flex;
64
+ position: relative;
65
+ padding-block: 0;
66
+ align-items: center;
67
+ justify-content: center;
68
+ flex: 1 1 0;
69
+
70
+ &--error {
71
+ .#{$stepperBaseClass}__marker {
72
+ border-color: tokens.$bm-comp-stepper-color-error-border;
73
+ background: tokens.$bm-comp-stepper-color-error-bg;
74
+ color: tokens.$bm-comp-stepper-color-error-fg;
75
+ }
76
+
77
+ .#{$stepperBaseClass}__heading {
78
+ color: tokens.$bm-comp-stepper-color-error-heading;
79
+ }
80
+ }
81
+
82
+ &--current {
83
+ .#{$stepperBaseClass}__marker {
84
+ border-color: tokens.$bm-comp-stepper-color-current-border;
85
+ background: tokens.$bm-comp-stepper-color-current-bg;
86
+ color: tokens.$bm-comp-stepper-color-current-fg;
87
+ }
88
+
89
+ .#{$stepperBaseClass}__heading {
90
+ color: tokens.$bm-comp-stepper-color-current-heading;
91
+ }
92
+ }
93
+
94
+ &--complete {
95
+ .#{$stepperBaseClass}__marker {
96
+ border-color: tokens.$bm-comp-stepper-color-complete-border;
97
+ background: tokens.$bm-comp-stepper-color-complete-bg;
98
+ color: tokens.$bm-comp-stepper-color-complete-fg;
99
+ }
100
+
101
+ .#{$stepperBaseClass}__heading {
102
+ color: tokens.$bm-comp-stepper-color-complete-heading;
103
+ }
104
+
105
+ #{$stepperLineColorVarName}: #{tokens.$bm-comp-stepper-color-line-complete};
106
+
107
+ .#{$stepperBaseClass}__content-wrapper {
108
+ border-inline-start-color: var(#{$stepperLineColorVarName});
109
+ }
110
+ }
111
+
112
+ &--horizontal {
113
+ min-width: var(#{$stepperMarkerContainerSizeVarName});
114
+
115
+ &::after {
116
+ content: '';
117
+ inline-size: calc(
118
+ 100% -
119
+ (
120
+ var(#{$stepperMarkerContainerSizeVarName}) + 2 * #{tokens.$bm-comp-stepper-space-horizontal-line-gap}
121
+ )
122
+ );
123
+ inset-inline-start: calc(50% + var(#{$stepperInlineStartLineSpaceVarName}));
124
+ background: var(#{$stepperLineColorVarName});
125
+ height: var(#{$stepperLineThicknessVarName});
126
+ inset-block-start: calc(
127
+ var(#{$stepperMarkerContainerSizeVarName}) / 2 -
128
+ var(#{$stepperLineThicknessVarName}) / 2
129
+ );
130
+ position: absolute;
131
+ }
132
+
133
+ &:last-child {
134
+ &::after {
135
+ content: unset;
136
+ }
137
+ }
138
+
139
+ .#{$stepperBaseClass}__body {
140
+ text-align: center;
141
+ }
142
+ }
143
+
144
+ &--vertical {
145
+ flex-direction: column;
146
+ align-items: start;
147
+ width: 100%;
148
+
149
+ .#{$stepperBaseClass}__content-wrapper {
150
+ width: calc(
151
+ 100% -
152
+ (
153
+ var(#{$stepperInlineStartLineSpaceVarName}) + #{tokens.$bm-comp-stepper-space-vertical-content-wrapper-gap}
154
+ )
155
+ );
156
+ min-height: var(#{$stepperVerticalLineMinHeightVarName});
157
+ flex: 1;
158
+ border-inline-start: 0.0625rem solid var(#{$stepperLineColorVarName});
159
+ padding-inline-start: calc(
160
+ var(#{$stepperInlineStartLineSpaceVarName}) + #{tokens.$bm-comp-stepper-space-vertical-content-wrapper-gap}
161
+ );
162
+ margin-inline-start: calc(
163
+ var(#{$stepperInlineStartLineSpaceVarName}) -
164
+ (var(#{$stepperLineThicknessVarName}) / 2)
165
+ );
166
+ padding-block-end: tokens.$bm-comp-stepper-space-vertical-content-bottom;
167
+ margin-block: tokens.$bm-comp-stepper-space-vertical-content-wrapper-y;
168
+ }
169
+
170
+ &:last-child {
171
+ .#{$stepperBaseClass}__content-wrapper {
172
+ border: unset;
173
+ }
174
+ }
175
+ }
176
+ }
177
+
178
+ .#{$stepperBaseClass}__marker-wrapper {
179
+ display: flex;
180
+ flex-direction: column;
181
+ justify-content: center;
182
+ align-items: center;
183
+ gap: tokens.$bm-comp-stepper-space-gap;
184
+
185
+ &--vertical {
186
+ flex-direction: row;
187
+ justify-content: flex-start;
188
+ padding-inline-start: unset;
189
+ gap: tokens.$bm-comp-stepper-space-gap;
190
+ }
191
+
192
+ > div {
193
+ display: flex;
194
+ flex-direction: column;
195
+ gap: tokens.$bm-comp-stepper-space-content-gap;
196
+ padding: 0 #{tokens.$bm-comp-stepper-space-horizontal-content-x};
197
+ justify-content: center;
198
+ align-items: center;
199
+ text-align: center;
200
+ }
201
+ }
202
+
203
+ .#{$stepperBaseClass}__marker {
204
+ width: tokens.$bm-comp-stepper-size-md-container;
205
+ height: tokens.$bm-comp-stepper-size-md-container;
206
+ display: flex;
207
+ justify-content: center;
208
+ align-items: center;
209
+ border-radius: tokens.$bm-comp-stepper-radius;
210
+ border: tokens.$bm-comp-stepper-border-width-container solid
211
+ tokens.$bm-comp-stepper-color-incomplete-border;
212
+ background: tokens.$bm-comp-stepper-color-incomplete-bg;
213
+ font: tokens.$bm-comp-stepper-typo-number;
214
+ color: tokens.$bm-comp-stepper-color-incomplete-fg;
215
+ text-align: center;
216
+ padding: unset;
217
+
218
+ &--interactive {
219
+ cursor: pointer;
220
+ &:focus-visible {
221
+ @include mixins.simulated-inset-outline();
222
+ }
223
+ }
224
+
225
+ > svg {
226
+ width: tokens.$bm-sem-size-icon-sm;
227
+ height: tokens.$bm-sem-size-icon-sm;
228
+ flex-shrink: 0;
229
+ }
230
+
231
+ &--marker-only {
232
+ width: tokens.$bm-comp-stepper-size-sm-container;
233
+ height: tokens.$bm-comp-stepper-size-sm-container;
234
+
235
+ > svg {
236
+ width: tokens.$bm-sem-size-icon-xs;
237
+ height: tokens.$bm-sem-size-icon-xs;
238
+ }
239
+ }
240
+ }
241
+
242
+ .#{$stepperBaseClass}__heading {
243
+ font: tokens.$bm-comp-stepper-typo-heading;
244
+ color: tokens.$bm-comp-stepper-color-incomplete-heading;
245
+ text-align: center;
246
+ &--interactive {
247
+ cursor: pointer;
248
+ }
249
+ }
250
+
251
+ .#{$stepperBaseClass}__body {
252
+ color: tokens.$bm-comp-stepper-color-body;
253
+ font: tokens.$bm-comp-stepper-typo-body;
254
+ text-align: start;
255
+ }