@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,282 @@
1
+ @use 'sass:map';
2
+ @use 'sass:math';
3
+ @use '../utils/constants.scss';
4
+ @use '../utils/tokens.scss' as tokens;
5
+ @use '../utils/stateLayerVars.scss' as stateLayerVars;
6
+
7
+ @import '../../../../tokens/src/lib/components/FileUpload';
8
+
9
+ $fileUploadBaseClass: '#{constants.$prefix}file-upload';
10
+ $fileUploadListBaseClass: '#{constants.$prefix}file-upload-list';
11
+ $fileUploadListItemBaseClass: '#{constants.$prefix}file-upload-list-item';
12
+ $fileUploadDropzoneBaseClass: '#{constants.$prefix}file-upload-dropzone';
13
+ $fileUploadButtonBaseClass: '#{constants.$prefix}file-upload-button';
14
+
15
+ .#{$fileUploadBaseClass} {
16
+ display: flex;
17
+ flex-direction: column;
18
+ gap: tokens.$bm-sem-space-100;
19
+ max-width: tokens.$bm-comp-input-size-field-width;
20
+ width: 100%;
21
+
22
+ &--fluid {
23
+ max-width: none;
24
+ }
25
+
26
+ &__uploader {
27
+ display: flex;
28
+ gap: 0;
29
+ flex-direction: column;
30
+ }
31
+ }
32
+
33
+ .#{$fileUploadListBaseClass} {
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: tokens.$bm-sem-space-50;
37
+ }
38
+
39
+ .#{$fileUploadListItemBaseClass} {
40
+ $root: &;
41
+
42
+ box-sizing: border-box;
43
+ display: flex;
44
+ border-radius: tokens.$bm-comp-file-upload-radius-file;
45
+ min-height: tokens.$bm-comp-file-upload-size-file-md-height;
46
+ padding: tokens.$bm-comp-file-upload-space-file-md-y
47
+ tokens.$bm-comp-file-upload-space-file-x;
48
+ gap: tokens.$bm-comp-file-upload-space-file-gap;
49
+ align-items: center;
50
+ background: tokens.$bm-comp-file-upload-color-file-bg;
51
+ position: relative;
52
+ overflow: hidden;
53
+
54
+ &--uploading,
55
+ &--uploaded,
56
+ &--success {
57
+ display: flex;
58
+ }
59
+
60
+ &--error {
61
+ align-items: flex-start;
62
+ outline: tokens.$bm-sem-border-width-lg solid
63
+ tokens.$bm-sem-color-border-negative-strong;
64
+ }
65
+
66
+ &--lg {
67
+ min-height: tokens.$bm-comp-file-upload-size-file-lg-height;
68
+ padding: tokens.$bm-comp-file-upload-space-file-lg-y
69
+ tokens.$bm-comp-file-upload-space-file-x;
70
+ }
71
+
72
+ &__thumbnail {
73
+ display: flex;
74
+
75
+ width: tokens.$bm-comp-file-upload-size-file-md-thumbnail;
76
+ height: tokens.$bm-comp-file-upload-size-file-md-thumbnail;
77
+
78
+ justify-content: center;
79
+ align-items: center;
80
+ flex-shrink: 0;
81
+ border-radius: tokens.$bm-comp-file-upload-radius-thumbnail;
82
+ background-color: tokens.$bm-sem-color-surface-highlight;
83
+ overflow: hidden;
84
+
85
+ #{$root}--lg & {
86
+ width: tokens.$bm-comp-file-upload-size-file-lg-thumbnail;
87
+ height: tokens.$bm-comp-file-upload-size-file-lg-thumbnail;
88
+ }
89
+
90
+ img {
91
+ width: 100%;
92
+ height: 100%;
93
+ object-fit: cover;
94
+ }
95
+ }
96
+
97
+ &__content {
98
+ display: flex;
99
+ flex: 1 0 0;
100
+ flex-direction: row;
101
+ gap: tokens.$bm-comp-file-upload-space-file-gap-inner;
102
+ min-width: 0;
103
+
104
+ #{$root}--lg &,
105
+ #{$root}--error & {
106
+ align-items: flex-start;
107
+ }
108
+ }
109
+
110
+ &__content-start {
111
+ display: flex;
112
+ align-items: center;
113
+ gap: tokens.$bm-comp-file-upload-space-file-gap-inner;
114
+ flex: 1 0 0;
115
+ flex-direction: row;
116
+ min-width: 0;
117
+
118
+ #{$root}--lg &,
119
+ #{$root}--error & {
120
+ gap: 0;
121
+ flex-direction: column;
122
+ align-items: flex-start;
123
+ flex: 1;
124
+ }
125
+ }
126
+
127
+ &__content-end {
128
+ display: flex;
129
+ gap: tokens.$bm-comp-file-upload-space-file-gap-inner;
130
+ align-items: center;
131
+ }
132
+
133
+ &__filename {
134
+ overflow: hidden;
135
+ white-space: nowrap;
136
+ text-overflow: ellipsis;
137
+
138
+ color: tokens.$bm-comp-file-upload-color-file-name;
139
+ font: tokens.$bm-comp-file-upload-typo-file;
140
+
141
+ margin: 0;
142
+ padding: 0;
143
+
144
+ max-width: 100%;
145
+ }
146
+
147
+ &__size {
148
+ flex-shrink: 0;
149
+
150
+ color: tokens.$bm-comp-file-upload-color-file-detail;
151
+ font: tokens.$bm-comp-file-upload-typo-file;
152
+
153
+ margin: 0;
154
+ padding: 0;
155
+
156
+ #{$root}--error & {
157
+ display: none;
158
+ }
159
+ }
160
+
161
+ &__status {
162
+ display: flex;
163
+ align-items: center;
164
+ justify-content: center;
165
+ flex-shrink: 0;
166
+
167
+ & bm-icon {
168
+ display: flex;
169
+ }
170
+ }
171
+
172
+ &__remove {
173
+ display: flex;
174
+ }
175
+
176
+ &__progress-bar {
177
+ position: absolute;
178
+ bottom: 0;
179
+ left: 0;
180
+ right: 0;
181
+ }
182
+
183
+ &__error {
184
+ --bm-comp-helper-text-space-top: 0;
185
+ }
186
+ }
187
+
188
+ .#{$fileUploadDropzoneBaseClass} {
189
+ $root: &;
190
+
191
+ position: relative;
192
+ display: flex;
193
+ padding: tokens.$bm-comp-file-upload-space-dropzone-md-y
194
+ tokens.$bm-comp-file-upload-space-dropzone-x;
195
+ flex-direction: column;
196
+ justify-content: center;
197
+ align-items: center;
198
+ gap: tokens.$bm-comp-file-upload-space-dropzone-gap;
199
+ flex-shrink: 0;
200
+
201
+ border-radius: tokens.$bm-comp-file-upload-radius-dropzone;
202
+ background: tokens.$bm-comp-file-upload-color-dropzone-bg;
203
+
204
+ &:focus-visible {
205
+ outline: none;
206
+ }
207
+
208
+ &--dragging:not(&--disabled) {
209
+ background: tokens.$bm-comp-file-upload-color-dropzone-bg-drag;
210
+ }
211
+
212
+ &--disabled {
213
+ opacity: tokens.$bm-sem-opacity-disabled;
214
+ }
215
+
216
+ &:not(&--disabled) {
217
+ cursor: pointer;
218
+ }
219
+
220
+ &__state-layer.#{stateLayerVars.$stateLayerBaseClass} {
221
+ #{stateLayerVars.$opacity}: 1;
222
+ #{stateLayerVars.$outline-style}: dashed;
223
+ #{stateLayerVars.$outline-offset}: calc(
224
+ -1 * #{tokens.$bm-comp-file-upload-border-width-dropzone-default}
225
+ );
226
+ #{stateLayerVars.$outline-color}: #{tokens.$bm-comp-file-upload-color-dropzone-border};
227
+ #{stateLayerVars.$outline-width}: #{tokens.$bm-comp-file-upload-border-width-dropzone-default};
228
+
229
+ *:focus-within > & {
230
+ #{stateLayerVars.$outline-offset}: 0;
231
+ #{stateLayerVars.$outline-style}: solid;
232
+ #{stateLayerVars.$outline-color}: #{tokens.$bm-sem-color-border-focus};
233
+ #{stateLayerVars.$outline-width}: #{tokens.$bm-sem-border-width-focus};
234
+ }
235
+
236
+ #{$root}--dragging:not(#{$root}--disabled) > & {
237
+ #{stateLayerVars.$outline-color}: #{tokens.$bm-comp-file-upload-color-dropzone-border-drag};
238
+ #{stateLayerVars.$outline-width}: #{tokens.$bm-comp-file-upload-border-width-dropzone-drag};
239
+ #{stateLayerVars.$outline-style}: solid;
240
+ #{stateLayerVars.$background}: transparent;
241
+ }
242
+
243
+ #{$root}--disabled > &,
244
+ *:disabled > & {
245
+ #{stateLayerVars.$background}: transparent;
246
+ #{stateLayerVars.$opacity}: 1;
247
+ }
248
+
249
+ #{$root}--error > & {
250
+ #{stateLayerVars.$outline-color}: #{tokens.$bm-comp-input-color-border-error};
251
+ #{stateLayerVars.$outline-width}: #{tokens.$bm-comp-input-border-width-field-error};
252
+ #{stateLayerVars.$outline-offset}: calc(
253
+ -1 * #{tokens.$bm-comp-input-border-width-field-error}
254
+ );
255
+ #{stateLayerVars.$outline-style}: dashed;
256
+ }
257
+ }
258
+
259
+ &__icon {
260
+ color: tokens.$bm-comp-file-upload-color-dropzone-icon;
261
+ z-index: 1;
262
+
263
+ #{$root}--dragging:not(#{$root}--disabled) & {
264
+ color: tokens.$bm-comp-file-upload-color-dropzone-icon-drag;
265
+ }
266
+ }
267
+
268
+ &__text {
269
+ color: tokens.$bm-comp-file-upload-color-dropzone-text;
270
+ text-align: center;
271
+ font: tokens.$bm-comp-file-upload-typo-dropzone;
272
+ z-index: 1;
273
+ }
274
+
275
+ &__link {
276
+ color: tokens.$bm-sem-color-link-primary;
277
+
278
+ #{$root}:is(:hover, #{$root}--dragging):not(:disabled, #{$root}--disabled) & {
279
+ text-decoration: underline;
280
+ }
281
+ }
282
+ }
@@ -0,0 +1,11 @@
1
+ @use '../utils/constants.scss';
2
+
3
+ $flagBaseClass: '#{constants.$prefix}flag';
4
+
5
+ .#{$flagBaseClass} {
6
+ &--clickable { cursor: pointer; }
7
+ &--inline { display: inline; }
8
+ &--inline-block { display: inline-block; }
9
+ &--block { display: block; }
10
+ &--none { display: none; }
11
+ }
@@ -0,0 +1,40 @@
1
+ @use 'sass:map';
2
+ @use '../utils/constants.scss';
3
+ @use '../utils/mixins.scss' as mixins;
4
+ @use '../utils/tokens.scss' as tokens;
5
+
6
+ $floatingBaseClass: '#{constants.$prefix}floatingui';
7
+
8
+ .#{$floatingBaseClass} {
9
+ z-index: 999;
10
+ position: absolute;
11
+ // unset popover api styles
12
+ // https://developer.mozilla.org/en-US/docs/Web/API/Popover_API/Using#styling_popovers
13
+ inset: unset;
14
+ top: 0;
15
+ left: 0;
16
+ width: max-content;
17
+ overflow: unset;
18
+ border: unset;
19
+
20
+ &__arrow {
21
+ position: absolute;
22
+ // to allow the beak to be positioned correctly
23
+ transform-origin: bottom center;
24
+ }
25
+
26
+ &__overlay {
27
+ background: tokens.$bm-comp-dialog-color-overlay;
28
+ padding: tokens.$bm-comp-dialog-space-viewport-offset;
29
+
30
+ display: flex;
31
+ justify-content: center;
32
+ align-items: center;
33
+
34
+ z-index: 1;
35
+
36
+ &--transparent {
37
+ background: transparent;
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,123 @@
1
+ @use '../utils/constants.scss';
2
+ @use '../utils/mixins.scss' as mixins;
3
+ @use '../utils/tokens.scss' as tokens;
4
+
5
+ @import '../../../../tokens/src/lib/components/Header';
6
+
7
+ $headerBaseClass: '#{constants.$prefix}header';
8
+ $headerHeight: tokens.$bm-comp-header-size-height;
9
+ // $desktopBreakpoint: tokens.$bm-sem-size-breakpoint-xl;
10
+ $desktopBreakpoint: 1200px; // TODO: Replace by token when it is available
11
+
12
+ .#{$headerBaseClass} {
13
+ display: flex;
14
+ z-index: 2;
15
+
16
+ border-bottom: tokens.$bm-sem-border-width-md solid
17
+ tokens.$bm-comp-header-color-border;
18
+ background: tokens.$bm-comp-header-color-bg;
19
+ padding-inline: tokens.$bm-comp-header-space-x;
20
+ height: $headerHeight;
21
+
22
+ &__menu-button-container {
23
+ display: flex;
24
+ align-items: center;
25
+ padding-inline-start: tokens.$bm-sem-space-25;
26
+
27
+ .#{$headerBaseClass}__menu-button {
28
+ margin-inline-end: tokens.$bm-comp-header-space-gap;
29
+ height: fit-content;
30
+
31
+ [dir='rtl'] & {
32
+ transform: unset;
33
+ }
34
+
35
+ @media screen and (min-width: $desktopBreakpoint) {
36
+ [dir='rtl'] & {
37
+ transform: rotateX(180deg) rotateY(180deg);
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+ &__content {
44
+ display: flex;
45
+ flex: 1;
46
+ justify-content: space-between;
47
+ gap: tokens.$bm-comp-header-space-gap;
48
+ align-items: center;
49
+ }
50
+
51
+ &__nav-container {
52
+ display: flex;
53
+ flex: 1;
54
+
55
+ &--mobile-enabled {
56
+ @media screen and (max-width: calc(#{$desktopBreakpoint} - 1px)) {
57
+ display: none;
58
+ }
59
+ }
60
+ }
61
+
62
+ &__masthead {
63
+ display: flex;
64
+ gap: tokens.$bm-sem-space-25;
65
+ text-decoration: none;
66
+ margin: #{tokens.$bm-sem-space-50} 0;
67
+ width: fit-content;
68
+
69
+ &:focus-visible {
70
+ @include mixins.simulated-inset-outline();
71
+ border-radius: tokens.$bm-sem-radius-focus-md;
72
+ }
73
+
74
+ &--content {
75
+ display: flex;
76
+ align-items: center;
77
+ gap: tokens.$bm-sem-space-25;
78
+ }
79
+
80
+ &--content:has(&--signal) {
81
+ gap: tokens.$bm-sem-space-75;
82
+ }
83
+
84
+ &--logo {
85
+ padding-bottom: tokens.$bm-sem-space-75;
86
+ }
87
+
88
+ @media screen and (max-width: $desktopBreakpoint) {
89
+ padding-inline-start: unset;
90
+ }
91
+ }
92
+
93
+ &__actions {
94
+ display: flex;
95
+ align-items: center;
96
+ gap: tokens.$bm-comp-header-space-actions-gap;
97
+ }
98
+
99
+ &__menu-button-icon__mobile,
100
+ &__menu-button-icon__desktop {
101
+ display: block;
102
+ }
103
+ }
104
+
105
+ .#{constants.$prefix}button__icon-wrap svg {
106
+ &.#{$headerBaseClass} {
107
+ &__menu-button-icon {
108
+ &__mobile {
109
+ display: block;
110
+ @media screen and (min-width: $desktopBreakpoint) {
111
+ display: none;
112
+ }
113
+ }
114
+
115
+ &__desktop {
116
+ display: none;
117
+ @media screen and (min-width: $desktopBreakpoint) {
118
+ display: block;
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
@@ -0,0 +1,86 @@
1
+ @use 'sass:map';
2
+ @use '../utils/constants.scss';
3
+ @use '../utils/tokens.scss' as tokens;
4
+
5
+ @import '../../../../tokens/src/lib/components/HelperText';
6
+
7
+ $helperTextBaseClass: '#{constants.$prefix}helper-text';
8
+
9
+ $spaceTop: '--#{constants.$prefix}comp-helper-text-space-top';
10
+
11
+ $sizes: (
12
+ sm: (
13
+ message: tokens.$bm-comp-helper-text-typo-sm,
14
+ icon: tokens.$bm-comp-helper-text-size-sm-icon,
15
+ ),
16
+ md: (
17
+ message: tokens.$bm-comp-helper-text-typo-md,
18
+ icon: tokens.$bm-comp-helper-text-size-md-icon,
19
+ ),
20
+ );
21
+
22
+ $colors: (
23
+ info: (
24
+ icon: tokens.$bm-comp-helper-text-color-info-icon,
25
+ message: tokens.$bm-comp-helper-text-color-info-text,
26
+ ),
27
+ warning: (
28
+ icon: tokens.$bm-comp-helper-text-color-warning-icon,
29
+ message: tokens.$bm-comp-helper-text-color-warning-text,
30
+ ),
31
+ positive: (
32
+ icon: tokens.$bm-comp-helper-text-color-positive-icon,
33
+ message: tokens.$bm-comp-helper-text-color-positive-text,
34
+ ),
35
+ negative: (
36
+ icon: tokens.$bm-comp-helper-text-color-negative-icon,
37
+ message: tokens.$bm-comp-helper-text-color-negative-text,
38
+ ),
39
+ disabled: (
40
+ icon: tokens.$bm-comp-helper-text-color-info-icon,
41
+ message: tokens.$bm-comp-helper-text-color-info-text,
42
+ ),
43
+ );
44
+
45
+ .#{$helperTextBaseClass} {
46
+ display: flex;
47
+ gap: tokens.$bm-comp-helper-text-space-gap;
48
+ margin-top: var(#{$spaceTop}, tokens.$bm-sem-space-0);
49
+
50
+ @each $size, $sizeValue in $sizes {
51
+ &--#{$size} &__message {
52
+ font: map.get($sizeValue, 'message');
53
+ }
54
+
55
+ &--#{$size} {
56
+ svg,
57
+ ::slotted([slot='icon']) {
58
+ width: map.get($sizeValue, 'icon');
59
+ height: map.get($sizeValue, 'icon');
60
+ }
61
+ }
62
+ }
63
+
64
+ @each $appearance, $color in $colors {
65
+ &--#{$appearance} &__message {
66
+ color: map.get($color, 'message');
67
+ }
68
+
69
+ &--#{$appearance} {
70
+ svg,
71
+ ::slotted([slot='icon']) {
72
+ color: map.get($color, 'icon');
73
+ }
74
+ }
75
+ }
76
+
77
+ &--disabled {
78
+ opacity: tokens.$bm-sem-opacity-disabled;
79
+ }
80
+
81
+ svg,
82
+ ::slotted([slot='icon']) {
83
+ flex-shrink: tokens.$bm-sem-space-0;
84
+ margin-top: tokens.$bm-sem-space-12;
85
+ }
86
+ }
@@ -0,0 +1,46 @@
1
+ @use 'sass:map';
2
+ @use '../utils/tokens.scss' as tokens;
3
+ @use './icon.vars.scss' as vars;
4
+
5
+ %icon-rendering-preset {
6
+ -webkit-font-feature-settings: 'liga';
7
+ font-feature-settings: 'liga';
8
+ -webkit-font-smoothing: antialiased;
9
+ }
10
+
11
+ .#{vars.$iconBaseClass} {
12
+ @extend %icon-rendering-preset;
13
+ #{vars.$iconColor}: inherit;
14
+ box-sizing: border-box !important;
15
+ font-weight: normal;
16
+ font-style: normal;
17
+ fill: currentColor;
18
+ font-size: var(#{vars.$iconSize}, tokens.$bm-sem-size-icon-md);
19
+ width: var(#{vars.$iconSize}, tokens.$bm-sem-size-icon-md);
20
+ height: var(#{vars.$iconSize}, tokens.$bm-sem-size-icon-md);
21
+ color: var(#{vars.$iconColor});
22
+ vertical-align: middle;
23
+
24
+ line-height: inherit;
25
+ letter-spacing: normal;
26
+ text-transform: none;
27
+ display: inline-block;
28
+ white-space: nowrap;
29
+ word-wrap: normal;
30
+
31
+ @each $color, $value in vars.$iconColors {
32
+ &--#{$color} {
33
+ #{vars.$iconColor}: #{$value};
34
+ }
35
+ }
36
+
37
+ @each $size, $value in vars.$iconSizes {
38
+ &--#{$size} {
39
+ #{vars.$iconSize}: #{$value};
40
+ }
41
+ }
42
+
43
+ &--clickable {
44
+ cursor: pointer;
45
+ }
46
+ }
@@ -0,0 +1,31 @@
1
+ @use '../utils/constants.scss';
2
+ @use '../utils/tokens.scss' as tokens;
3
+
4
+ $iconBaseClass: '#{constants.$prefix}icon';
5
+ $iconSize: '--#{constants.$prefix}comp-icon-size';
6
+ $iconColor: '--#{constants.$prefix}comp-icon-color';
7
+
8
+ $iconColors: (
9
+ 'primary': tokens.$bm-sem-color-icon-primary,
10
+ 'secondary': tokens.$bm-sem-color-icon-secondary,
11
+ 'positive': tokens.$bm-sem-color-icon-positive,
12
+ 'warning': tokens.$bm-sem-color-icon-warning,
13
+ 'negative': tokens.$bm-sem-color-icon-negative,
14
+ 'infoPrimary': tokens.$bm-sem-color-icon-info-primary,
15
+ 'infoSecondary': tokens.$bm-sem-color-icon-info-secondary,
16
+ 'positiveStrong': tokens.$bm-sem-color-icon-positive-strong,
17
+ 'warningStrong': tokens.$bm-sem-color-icon-warning-strong,
18
+ 'negativeStrong': tokens.$bm-sem-color-icon-negative-strong,
19
+ 'infoPrimaryStrong': tokens.$bm-sem-color-icon-info-primary-strong,
20
+ 'infoSecondaryStrong': tokens.$bm-sem-color-icon-info-secondary-strong,
21
+ 'primaryInverse': tokens.$bm-sem-color-icon-primary-inverse,
22
+ 'secondaryInverse': tokens.$bm-sem-color-icon-secondary-inverse,
23
+ );
24
+
25
+ $iconSizes: (
26
+ 'xs': tokens.$bm-sem-size-icon-xs,
27
+ 'sm': tokens.$bm-sem-size-icon-sm,
28
+ 'md': tokens.$bm-sem-size-icon-md,
29
+ 'lg': tokens.$bm-sem-size-icon-lg,
30
+ 'xl': tokens.$bm-sem-size-icon-xl,
31
+ );
@@ -0,0 +1,40 @@
1
+ // Component Styles
2
+ @use './accordion.module.scss';
3
+ @use './actionList.module.scss';
4
+ @use './alert.module.scss';
5
+ @use './badge.module.scss';
6
+ @use './badgeDot.module.scss';
7
+ @use './box.module.scss';
8
+ @use './button.module';
9
+ @use './breadcrumbs.module';
10
+ @use './checkbox.module.scss';
11
+ @use './chip.module.scss';
12
+ @use './chipsGroup.module';
13
+ @use './closeButton.module.scss';
14
+ @use './dialog.module.scss';
15
+ @use './divider.module.scss';
16
+ @use './emptyState.module.scss';
17
+ @use './fileUpload.module.scss';
18
+ @use './flag.module.scss';
19
+ @use './helperText.module.scss';
20
+ @use './inputChoiceGroup.module';
21
+ @use './label.module.scss';
22
+ @use './link.module.scss';
23
+ @use './logo.module.scss';
24
+ @use './pageLayout.module.scss';
25
+ @use './popover.module.scss';
26
+ @use './progressBar.module';
27
+ @use './radioButton.module.scss';
28
+ @use './segmentedControl.module';
29
+ @use './nativeSelect.module';
30
+ @use './sideNav.module.scss';
31
+ @use './switch.module.scss';
32
+ @use './text.module.scss';
33
+ @use './textField.module.scss';
34
+ @use './toast.module.scss';
35
+ @use './toastContainer.module.scss';
36
+ @use './tooltip.module.scss';
37
+ @use './tabs.module';
38
+
39
+ // State Layer Styles
40
+ @use '../utils/stateLayer.module.scss';
@@ -0,0 +1,46 @@
1
+ @use '../utils/constants.scss';
2
+ @use '../utils/tokens.scss' as tokens;
3
+
4
+ @import '../../../../tokens/src/lib/components/Input';
5
+
6
+ $inputChoiceGroupBaseClass: '#{constants.$prefix}input-choice-group';
7
+
8
+ $labelSpaceBottom: '--#{constants.$prefix}label-space-bottom';
9
+ $helperTextSpaceTop: '--#{constants.$prefix}helper-text-space-top';
10
+
11
+ .#{$inputChoiceGroupBaseClass} {
12
+ #{$labelSpaceBottom}: #{tokens.$bm-comp-label-space-bottom};
13
+ #{$helperTextSpaceTop}: #{tokens.$bm-comp-helper-text-space-top};
14
+
15
+ &,
16
+ legend {
17
+ border: none;
18
+ margin: tokens.$bm-sem-space-0;
19
+ padding: tokens.$bm-sem-space-0;
20
+ }
21
+
22
+ &__inputs {
23
+ display: flex;
24
+ gap: tokens.$bm-comp-input-space-choice-gap-items-y
25
+ tokens.$bm-comp-input-space-choice-gap-items-x;
26
+ }
27
+
28
+ &--vertical &__inputs {
29
+ flex-direction: column;
30
+ }
31
+
32
+ &--horizontal &__inputs {
33
+ flex-wrap: wrap;
34
+ flex-direction: row;
35
+ }
36
+
37
+ &--horizontalFluid &__inputs {
38
+ flex-direction: row;
39
+ justify-content: space-between;
40
+
41
+ & > *,
42
+ & > ::slotted(*) {
43
+ flex: 1 1 auto;
44
+ }
45
+ }
46
+ }