@wwtdev/bsds-css 2.28.0 → 3.0.0-rc.21

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 (94) hide show
  1. package/README.md +4 -4
  2. package/dist/wwt-bsds-preset.js +196 -68
  3. package/dist/wwt-bsds.css +2189 -1471
  4. package/dist/wwt-bsds.min.css +1 -1
  5. package/package.json +7 -11
  6. package/dist/components/_accordions.scss +0 -122
  7. package/dist/components/_alert.scss +0 -143
  8. package/dist/components/_badge.scss +0 -95
  9. package/dist/components/_banner.scss +0 -68
  10. package/dist/components/_buttons.scss +0 -289
  11. package/dist/components/_chart.scss +0 -169
  12. package/dist/components/_circle-buttons.scss +0 -231
  13. package/dist/components/_dropdown-options.scss +0 -236
  14. package/dist/components/_dropdown.scss +0 -189
  15. package/dist/components/_empty-state.scss +0 -99
  16. package/dist/components/_filter-buttons.scss +0 -116
  17. package/dist/components/_flyout.scss +0 -75
  18. package/dist/components/_form-booleans.scss +0 -182
  19. package/dist/components/_form-character-count.scss +0 -21
  20. package/dist/components/_form-container.scss +0 -111
  21. package/dist/components/_form-elements.scss +0 -40
  22. package/dist/components/_form-field-details.scss +0 -19
  23. package/dist/components/_form-hints.scss +0 -22
  24. package/dist/components/_form-input-composite.scss +0 -312
  25. package/dist/components/_form-input-phone.scss +0 -21
  26. package/dist/components/_form-input-search.scss +0 -74
  27. package/dist/components/_form-labels.scss +0 -40
  28. package/dist/components/_form-switches.scss +0 -154
  29. package/dist/components/_form-text-fields.scss +0 -205
  30. package/dist/components/_horizontal-navigation-mobile.scss +0 -238
  31. package/dist/components/_horizontal-navigation.scss +0 -220
  32. package/dist/components/_inline-tabs.scss +0 -86
  33. package/dist/components/_loader.scss +0 -105
  34. package/dist/components/_modal.scss +0 -185
  35. package/dist/components/_overlay.scss +0 -34
  36. package/dist/components/_pagination.scss +0 -85
  37. package/dist/components/_pills.scss +0 -224
  38. package/dist/components/_profile-details.scss +0 -44
  39. package/dist/components/_profile-img.scss +0 -73
  40. package/dist/components/_profile-layout.scss +0 -29
  41. package/dist/components/_spinner.scss +0 -95
  42. package/dist/components/_tab-list.scss +0 -151
  43. package/dist/components/_table.scss +0 -331
  44. package/dist/components/_tables.scss +0 -84
  45. package/dist/components/_timeline.scss +0 -122
  46. package/dist/components/_toast.scss +0 -149
  47. package/dist/components/_toaster.scss +0 -27
  48. package/dist/components/_tooltip.scss +0 -179
  49. package/dist/components/_vertical-navigation.scss +0 -280
  50. package/dist/components/accordions.css +0 -118
  51. package/dist/components/alert.css +0 -139
  52. package/dist/components/badge.css +0 -91
  53. package/dist/components/banner.css +0 -64
  54. package/dist/components/buttons.css +0 -285
  55. package/dist/components/chart.css +0 -165
  56. package/dist/components/circle-buttons.css +0 -227
  57. package/dist/components/dropdown-options.css +0 -232
  58. package/dist/components/dropdown.css +0 -185
  59. package/dist/components/empty-state.css +0 -95
  60. package/dist/components/filter-buttons.css +0 -112
  61. package/dist/components/flyout.css +0 -71
  62. package/dist/components/form-booleans.css +0 -178
  63. package/dist/components/form-character-count.css +0 -17
  64. package/dist/components/form-container.css +0 -108
  65. package/dist/components/form-elements.css +0 -36
  66. package/dist/components/form-field-details.css +0 -15
  67. package/dist/components/form-hints.css +0 -18
  68. package/dist/components/form-input-composite.css +0 -308
  69. package/dist/components/form-input-phone.css +0 -17
  70. package/dist/components/form-input-search.css +0 -70
  71. package/dist/components/form-labels.css +0 -36
  72. package/dist/components/form-switches.css +0 -150
  73. package/dist/components/form-text-fields.css +0 -201
  74. package/dist/components/horizontal-navigation-mobile.css +0 -234
  75. package/dist/components/horizontal-navigation.css +0 -216
  76. package/dist/components/inline-tabs.css +0 -83
  77. package/dist/components/loader.css +0 -101
  78. package/dist/components/modal.css +0 -181
  79. package/dist/components/overlay.css +0 -30
  80. package/dist/components/pagination.css +0 -81
  81. package/dist/components/pills.css +0 -220
  82. package/dist/components/profile-details.css +0 -40
  83. package/dist/components/profile-img.css +0 -69
  84. package/dist/components/profile-layout.css +0 -25
  85. package/dist/components/spinner.css +0 -91
  86. package/dist/components/tab-list.css +0 -147
  87. package/dist/components/table.css +0 -327
  88. package/dist/components/tables.css +0 -80
  89. package/dist/components/timeline.css +0 -118
  90. package/dist/components/toast.css +0 -145
  91. package/dist/components/toaster.css +0 -23
  92. package/dist/components/tooltip.css +0 -175
  93. package/dist/components/vertical-navigation.css +0 -276
  94. package/dist/wwt-bsds-wc-base.css +0 -1129
@@ -1,91 +0,0 @@
1
- .bs-badge {
2
- --badge-bg: var(--bs-red-400);
3
- --badge-text: var(--bs-white);
4
- display: inline-block;
5
- }
6
-
7
- /* ------ Badge wrapped around text ------ */
8
-
9
- /* Badge DOT */
10
- .bs-badge:where([data-position^='left'])::before,
11
- .bs-badge:where(:not([data-position^='left']))::after {
12
- align-items: center;
13
- background: var(--badge-bg);
14
- border-radius: 0.5rem;
15
- content: '';
16
- display: inline-flex;
17
- font-size: 0.8125rem;
18
- font-weight: 600;
19
- height: 6px;
20
- justify-content: center;
21
- line-height: 1.25;
22
- position: relative;
23
- vertical-align: top;
24
- width: 6px;
25
- }
26
-
27
- .bs-pill .bs-badge::before,
28
- .bs-pill .bs-badge::after {
29
- font-size: 0.8125em;
30
- }
31
-
32
- /* Badge COUNT */
33
-
34
- .bs-badge:where([data-count][data-position^='left'])::before,
35
- .bs-badge:where([data-count]:not([data-position^='left']))::after {
36
- color: var(--badge-text);
37
- content: attr(data-count);
38
- height: 1rem;
39
- min-width: 1rem;
40
- padding: 0 4px;
41
- top: -0.0625rem;
42
- vertical-align: unset;
43
- width: auto;
44
- }
45
-
46
- .bs-badge:where([data-count='0'])::before,
47
- .bs-badge:where([data-count='0'])::after {
48
- display: none;
49
- }
50
-
51
- .bs-badge:where([data-show-zero]):where(:not([data-show-zero="false"]))::before,
52
- .bs-badge:where([data-show-zero]):where(:not([data-show-zero="false"]))::after {
53
- display: inline-flex;
54
- }
55
-
56
- /* Badge SPACING against wrapped text */
57
-
58
- .bs-badge::before {
59
- margin-right: 0.25rem;
60
- }
61
-
62
- .bs-badge::after {
63
- margin-left: 0.25rem;
64
- }
65
-
66
- /* Badge COLORS */
67
-
68
- .bs-badge:where([data-badge-color^='blue']) {
69
- --badge-bg: var(--bs-blue-base);
70
- }
71
- .bs-badge:where([data-badge-color^='white']) {
72
- --badge-bg: var(--bs-white);
73
- --badge-text: var(--bs-black);
74
- }
75
-
76
- /* ------ Standalone Badge (not wrapped around text) ------ */
77
- .bs-badge:where([data-variant="notext"]) {
78
- align-items: center;
79
- display: inline-flex;
80
- justify-content: center;
81
- }
82
-
83
- .bs-badge:where([data-variant="notext"]) {
84
- line-height: 1;
85
- }
86
-
87
- .bs-badge:where([data-variant="notext"])::after,
88
- .bs-badge:where([data-variant="notext"])::before {
89
- margin: 0;
90
- top: unset;
91
- }
@@ -1,64 +0,0 @@
1
- :where(.bs-banner) {
2
- --banner-bg: var(--bs-royal-400);
3
- --banner-icon-display: none;
4
- --banner-padding: var(--banner-padding-m);
5
- --banner-padding-m: 1rem 1.5rem;
6
- --banner-padding-dt: .5rem 2.25rem;
7
- }
8
-
9
- .bs-banner {
10
- background-color: var(--banner-bg);
11
- color: var(--bs-ink-white);
12
- display: flex;
13
- justify-content: center;
14
- min-height: 3rem;
15
- padding: var(--banner-padding);
16
- }
17
-
18
- .bs-banner:where([data-dismissed]:not([data-dismissed="false"])) {
19
- display: none;
20
- }
21
-
22
- .bs-banner :where(.bs-banner-content) {
23
- align-items: center;
24
- display: flex;
25
- /* Content locks at globally configured width */
26
- max-width: var(--bs-content-max-width);
27
- width: 100%;
28
- }
29
-
30
- .bs-banner :where(.bs-banner-content .bs-banner-warning-icon) {
31
- /* Do not display icon on smaller screens */
32
- display: var(--banner-icon-display);
33
- margin-right: 0.625rem;
34
- }
35
-
36
- .bs-banner :where(.bs-banner-content p) {
37
- flex-grow: 1;
38
- padding-right: 1.25rem;
39
- }
40
-
41
- .bs-banner :where(.bs-banner-content p a) {
42
- text-decoration: underline;
43
- }
44
-
45
- .bs-banner :where(a:hover) {
46
- color: rgba(255, 255, 255, 0.8);
47
- }
48
-
49
- .bs-banner :where(.bs-banner-content button) {
50
- background-color: inherit;
51
- color: inherit;
52
- cursor: pointer;
53
- }
54
-
55
- .bs-banner:where([data-variant="negative"]) {
56
- --banner-bg: var(--bs-red-300);
57
- }
58
-
59
- @media (min-width: 957px) {
60
- .bs-banner {
61
- --banner-icon-display: inline-flex;
62
- --banner-padding: var(--banner-padding-dt);
63
- }
64
- }
@@ -1,285 +0,0 @@
1
- /*
2
- --btn-main: (this is doing too much.. look into backwards-compatible way to break this up)
3
- background color (base)
4
- focus ring color
5
-
6
- background colors:
7
- --btn-secondary: background color (active, hover)
8
- --btn-light: background color (ghost hover, ghost focus)
9
-
10
- border / box-shadow:
11
- --btn-ghost-ink: the box shadow color for ghost buttons is synced to ink
12
- --btn-highlight: box shadow color (w/ --btn-main) (active)
13
-
14
- padding:
15
- --btn-padding: padding (changes by size, and on text btns)
16
-
17
- text color:
18
- --btn-ink: text color
19
- --btn-ghost-ink: text color (ghost)
20
-
21
- */
22
-
23
- .bs-button {
24
- --btn-focus-inset: -0.25rem;
25
- --btn-focus-pseudo-width: calc(100% + 0.5rem);
26
- --btn-ghost-ink: var(--bs-ink-blue);
27
- --btn-highlight: var(--bs-blue-100);
28
- --btn-ink: var(--bs-white);
29
- --btn-main: var(--bs-blue-400);
30
- --btn-padding: .25rem .75rem;
31
- --btn-secondary: var(--bs-blue-medium);
32
- --btn-text-size: var(--bs-text-md);
33
- --btn-weight: 600;
34
- --btn-height: 2.5rem;
35
- align-items: center;
36
- background-color: var(--btn-main);
37
- border: none;
38
- border-radius: 0.25rem;
39
- color: var(--btn-ink);
40
- column-gap: var(--bs-space-2);
41
- cursor: pointer;
42
- display: inline-flex;
43
- font-size: var(--btn-text-size);
44
- font-weight: var(--btn-weight);
45
- height: var(--btn-height);
46
- justify-content: center;
47
- line-height: 1.5;
48
- outline: 2px solid transparent;
49
- padding: var(--btn-padding);
50
- position: relative;
51
- text-decoration: none;
52
- transition: all 100ms ease-in-out;
53
- vertical-align: middle;
54
- }
55
-
56
- .bs-button:where(:not(:disabled):not([aria-disabled="true"]):hover) {
57
- background-color: var(--btn-secondary);
58
- }
59
-
60
- .bs-button:where(:not(:disabled):not([aria-disabled="true"]):active) {
61
- background-color: var(--btn-secondary);
62
- box-shadow: inset 0px 0px 4px 1px var(--btn-main);
63
- transform-origin: center;
64
- transform: scale(0.97);
65
- }
66
-
67
- /* ------------ Focus Styles ------------ */
68
- .bs-button::before {
69
- border-color: transparent;
70
- border-radius: 0.5rem;
71
- border-style: solid;
72
- border-width: 0.125rem;
73
- content: '';
74
- height: calc(100% + 0.5rem);
75
- inset: var(--btn-focus-inset);
76
- position: absolute;
77
- transition: border-color 0.125s ease-in-out;
78
- width: var(--btn-focus-pseudo-width);
79
- }
80
-
81
- .bs-button:where(:focus:not(:disabled):not([aria-disabled="true"]))::before {
82
- border-color: var(--btn-main);
83
- }
84
-
85
- .bs-button:where(:focus-visible:not(:disabled):not([aria-disabled="true"]))::before {
86
- border-color: var(--btn-main);
87
- box-shadow: none;
88
- }
89
-
90
- .bs-button:where(:focus:not(:focus-visible):not(:disabled):not([aria-disabled="true"]))::before {
91
- border-color: transparent;
92
- box-shadow: none;
93
- }
94
-
95
- /* ------------ Ghost Buttons ------------ */
96
- .bs-button:where([data-ghost]:not([data-ghost="false"])) {
97
- --btn-ink: var(--btn-ghost-ink);
98
- --btn-light: var(--bs-blue-10);
99
- --btn-secondary: var(--bs-blue-10);
100
- background-color: transparent;
101
- box-shadow: inset 0 0 0 1px var(--btn-ghost-ink);
102
- }
103
- .bs-button:where([data-ghost]:not([data-ghost="false"]))::before {
104
- border-radius: 0.4375rem;
105
- }
106
- .bs-button:where([data-ghost]:not([data-ghost="false"]):not(:disabled):not([aria-disabled="true"]):hover),
107
- .bs-button:where([data-ghost]:not([data-ghost="false"]):not(:disabled):not([aria-disabled="true"]):focus) {
108
- background-color: var(--btn-light);
109
- }
110
- .bs-button:where([data-ghost]:not([data-ghost="false"]):not(:disabled):not([aria-disabled="true"]):active) {
111
- box-shadow:
112
- inset 0 0 0 1px var(--btn-main),
113
- inset 0px 0px 4px 1px var(--btn-highlight);
114
- }
115
-
116
- /* ------------ VARIANTS ------------ */
117
- .bs-button:where([data-variant^='secondary']) {
118
- --btn-ghost-ink: var(--bs-ink-plum);
119
- --btn-highlight: var(--bs-plum-100);
120
- --btn-light: var(--bs-plum-10);
121
- --btn-main: var(--bs-plum-base);
122
- --btn-secondary: var(--bs-plum-medium);
123
- }
124
- .dark .bs-button:where([data-variant^='secondary']) {
125
- --btn-highlight: var(--bs-plum-400);
126
- --btn-light: var(--bs-navy-400);
127
- }
128
- .bs-button:where([data-variant^='positive']) {
129
- --btn-ghost-ink: var(--bs-ink-purple);
130
- --btn-highlight: var(--bs-purple-100);
131
- --btn-light: var(--bs-purple-10);
132
- --btn-main: var(--bs-purple-400);
133
- --btn-secondary: var(--bs-purple-medium);
134
- }
135
- .bs-button:where([data-variant^='warning']) {
136
- --btn-ghost-ink: var(--bs-ink-orange);
137
- --btn-highlight: var(--bs-orange-100);
138
- --btn-light: var(--bs-orange-10);
139
- --btn-main: var(--bs-orange-warning);
140
- --btn-secondary: var(--bs-orange-base);
141
- }
142
- .bs-button:where([data-variant^='negative']) {
143
- --btn-ghost-ink: var(--bs-ink-red);
144
- --btn-highlight: var(--bs-red-100);
145
- --btn-light: var(--bs-red-10);
146
- --btn-main: var(--bs-red-400);
147
- --btn-secondary: var(--bs-red-medium);
148
- }
149
-
150
- /* pink variant */
151
- .bs-button:where([data-variant^='pink']) {
152
- --btn-ghost-ink: var(--bs-ink-pink);
153
- --btn-highlight: var(--bs-pink-400);
154
- --btn-light: var(--bs-pink-10);
155
- --btn-main: var(--bs-pink-400);
156
- --btn-secondary: var(--bs-pink-300);
157
- }
158
-
159
- /* royal blue variant */
160
- .bs-button:where([data-variant^='royal']) {
161
- --btn-ghost-ink: var(--bs-ink-royal);
162
- --btn-highlight: var(--bs-royal-400);
163
- --btn-light: var(--bs-royal-10);
164
- --btn-main: var(--bs-royal-400);
165
- --btn-secondary: var(--bs-royal-300);
166
- }
167
-
168
- /* white variant - for dark backgrounds + ghost btn or text btn only */
169
- .bs-button:where([data-variant^='white'][data-ghost]:not([data-ghost="false"])) {
170
- --btn-ghost-ink: var(--bs-ink-white);
171
- --btn-highlight: var(--bs-ink-white);
172
- --btn-light: var(--bs-white-10);
173
- --btn-main: var(--bs-ink-white);
174
- }
175
-
176
- /* ------------ Text Button ------------ */
177
- .bs-button:where([data-text]:not([data-text="false"])) {
178
- --btn-focus-inset: -0.25rem -0.5rem;
179
- --btn-focus-pseudo-width: calc(100% + 1rem); /* text btns don't have side padding, but we do want focus outline to look padded */
180
- --btn-height: auto;
181
- --btn-ink: var(--bs-ink-blue);
182
- --btn-padding: 0;
183
- --btn-secondary: transparent;
184
- --btn-text-size: var(--bs-text-md);
185
- --btn-weight: 400;
186
- background-color: transparent;
187
- cursor: pointer;
188
- line-height: 150%;
189
- }
190
- .bs-button:where([data-text]:not([data-text="false"]):not(:disabled):not([aria-disabled="true"]):hover) {
191
- --btn-ink: var(--bs-blue-base);
192
- background-color: transparent;
193
- text-decoration: underline;
194
- }
195
- .bs-button:where([data-text]:not([data-text="false"]):not(:disabled):not([aria-disabled="true"]):hover):has(svg) {
196
- text-decoration: none;
197
- }
198
- .bs-button:where([data-text]:not([data-text="false"]):not(:disabled):not([aria-disabled="true"]):active) {
199
- box-shadow: none;
200
- transform: none;
201
- }
202
-
203
- .bs-button:where([data-variant^='negative'][data-text]:not([data-text="false"])),
204
- .bs-button:where([data-variant^='negative'][data-text]:not([data-text="false"]):not(:disabled):not([aria-disabled="true"]):hover) {
205
- --btn-ink: var(--bs-ink-red);
206
- }
207
-
208
- .bs-button:where([data-variant^='white'][data-text]:not([data-text="false"])),
209
- .bs-button:where([data-variant^='white'][data-text]:not([data-text="false"]):not(:disabled):not([aria-disabled="true"]):hover) {
210
- --btn-ink: var(--bs-ink-white);
211
- --btn-main: var(--bs-ink-white);
212
- }
213
-
214
- /* ------------ Button Sizes, Media-based Text Sizing -------------- */
215
- /* Std button: Mobile text size, DT text size */
216
- .bs-button {
217
- --btn-text-size: 1rem;
218
- }
219
-
220
- @media (min-width: 1166px) {
221
- .bs-button {
222
- --btn-text-size: 1.125rem;
223
- }
224
- }
225
-
226
- .bs-button:where([data-size^='sm']) {
227
- --btn-height: 1.75rem;
228
- --btn-padding: .25rem .75rem .375rem;
229
- /* Std button size="sm" text size is same across all media sizes */
230
- --btn-text-size: var(--bs-text-sm);
231
- }
232
-
233
- /* Text buttons: For now, text size not dependent on media size */
234
- .bs-button:where([data-text]:not([data-text="false"])) {
235
- --btn-height: auto;
236
- --btn-padding: 0;
237
- --btn-text-size: var(--bs-text-md);
238
- }
239
-
240
- .bs-button:where([data-size^='sm'][data-text]:not([data-text="false"])) {
241
- --btn-text-size: var(--bs-text-base);
242
- }
243
-
244
- /* Size XS & XXS only applies to text buttons */
245
- .bs-button:where([data-size^='xs'][data-text]:not([data-text="false"])) {
246
- --btn-text-size: var(--bs-text-sm);
247
- }
248
-
249
- .bs-button:where([data-size^='xxs'][data-text]:not([data-text="false"])) {
250
- --btn-text-size: var(--bs-text-xs);
251
- --btn-weight: 600;
252
- }
253
-
254
-
255
- /* ------------ Disabled Styling ------------ */
256
- :where(button:disabled),
257
- .bs-button:where(:disabled),
258
- .bs-button:where([aria-disabled="true"]) /* for links as buttons */ {
259
- pointer-events: none;
260
- }
261
- .bs-button:where(:disabled),
262
- .bs-button:where([aria-disabled="true"]) {
263
- --btn-ink: var(--bs-ink-disabled);
264
- --btn-main: var(--bs-bg-disabled);
265
- box-shadow: none;
266
- transform: none;
267
- }
268
-
269
- .bs-button:where([data-ghost]:not([data-ghost="false"])):disabled,
270
- .bs-button:where([data-ghost]:not([data-ghost="false"]))[aria-disabled="true"] {
271
- --btn-ghost-ink: var(--bs-ink-disabled);
272
- }
273
-
274
- .bs-button:where([data-text]:not([data-text="false"])):disabled,
275
- .bs-button:where([data-text]:not([data-text="false"]))[aria-disabled="true"] {
276
- --btn-main: transparent;
277
- }
278
-
279
- /* ------------ links as buttons ------------ */
280
- a.bs-button {
281
- align-items: center;
282
- display: inline-flex;
283
- outline: none;
284
- vertical-align: middle;
285
- }
@@ -1,165 +0,0 @@
1
- .bs-chart {
2
- display: block;
3
- height: 100%;
4
- width: 100%;
5
- }
6
-
7
- .bs-chart :where(figure) {
8
- column-gap: 2.5rem;
9
- display: grid;
10
- font-size: .875rem;
11
- grid-template-areas: var(--chart-gridareas, "chart" "legend");
12
- grid-template-columns: var(--chart-gridcols, 100%);
13
- grid-template-rows: var(--chart-gridrows, minmax(0px, auto) minmax(0px, min-content));
14
- height: 100%;
15
- margin-block: unset;
16
- margin-inline: unset;
17
- position: relative;
18
- width: 100%;
19
- }
20
-
21
- .bs-chart :where(figure > :first-child) {
22
- grid-area: chart;
23
- }
24
-
25
- .bs-chart :where(figure > :last-child) {
26
- grid-area: legend;
27
- }
28
-
29
- .bs-chart :where(figure > div) {
30
- min-width: 100%;
31
- width: 100%;
32
- }
33
- .bs-chart :where(canvas) {
34
- width: 100%;
35
- }
36
-
37
- /* --------- Legend Styles --------- */
38
-
39
- .bs-chart :where(figcaption) {
40
- background-color: var(--legend-bg-color, transparent);
41
- border-radius: .5rem;
42
- border: 1px solid var(--legend-border-color, transparent);
43
- clip-path: var(--legend-clip-path, none);
44
- max-height: var(--legend-max-height, 100%);
45
- overflow-y: var(--legend-overflow-y, hidden);
46
- }
47
-
48
- .bs-chart :where(figcaption[data-hidden="true"]) {
49
- border: 0;
50
- clip: rect(0 0 0 0);
51
- height: 1px;
52
- margin: 0;
53
- overflow: hidden;
54
- padding: 0;
55
- position: absolute;
56
- white-space: nowrap;
57
- width: 1px;
58
- }
59
-
60
- .bs-chart :where(ul) {
61
- align-items: var(--legend-flexalign, center);
62
- display: flex;
63
- column-gap: 2.5rem;
64
- flex-direction: var(--legend-flexdir, row);
65
- flex-wrap: var(--legend-flexwrap, wrap);
66
- padding-block: var(--legend-padding-block, .25rem);
67
- /* cjs-legend-padding is set dynamically by chart.js for bar charts */
68
- padding-inline: var(--legend-padding-inline, var(--cjs-legend-padding-inline, 2.5rem));
69
- row-gap: .75rem;
70
- }
71
-
72
- .bs-chart :where(li, li:focus, li:active, li:focus-visible) {
73
- align-items: center;
74
- cursor: pointer;
75
- display: flex;
76
- flex-direction: row;
77
- outline: 0;
78
- position: relative;
79
- width: var(--legend-item-width, auto);
80
- }
81
-
82
- .bs-chart :where(li)::after {
83
- border: solid var(--focus-color, transparent) 2px;
84
- border-radius: 0.25rem;
85
- content: '';
86
- display: block;
87
- inset: -.25rem;
88
- position: absolute;
89
- }
90
-
91
- .bs-chart :where(li:focus-visible) {
92
- --focus-color: var(--bs-blue-base);
93
- }
94
-
95
- .bs-chart :where(li span) {
96
- background: var(--legend-item-box-fill);
97
- border-color: var(--legend-item-box-stroke);
98
- border-radius: var(--legend-item-swatch-radius, 3px);
99
- display: inline-block;
100
- height: var(--bs-text-f-md);
101
- margin-right: 10px;
102
- width: var(--bs-text-f-md);
103
- }
104
-
105
- .bs-chart :where(li p) {
106
- color: var(--legend-item-text-color);
107
- font-size: var(--bs-text-f-md);
108
- margin: 0;
109
- padding: 0;
110
- text-decoration: var(--legend-item-text-decoration);
111
- }
112
-
113
- /* --------- Chart Layout Variants --------- */
114
- /*
115
- For now, per design team instructions, these are NOT responsive as we're only to expose these
116
- variants for a very specific, single use-case that involves horizontal scroll...
117
- If we want to make these responsive in the future, can wrap in media query.
118
- */
119
- .bs-chart:where([data-layout="chart-right"], [data-layout="chart-left"]) {
120
- --chart-gridrows: minmax(0px, auto);
121
- --legend-bg-color: var(--bs-bg-base);
122
- --legend-border-color: var(--bs-gray-light);
123
- --legend-clip-path: border-box;
124
- --legend-flexalign: start;
125
- --legend-flexdir: column;
126
- --legend-flexwrap: nowrap;
127
- --legend-item-width: 100%;
128
- --legend-max-height: 17.1875rem;
129
- --legend-overflow-y: auto;
130
- --legend-padding-block: .75rem;
131
- --legend-padding-inline: .75rem;
132
- }
133
-
134
- .bs-chart:where([data-layout="chart-left"]) {
135
- --chart-gridareas: "chart legend";
136
- --chart-gridcols: auto minmax(150px, auto);
137
- }
138
-
139
- .bs-chart:where([data-layout="chart-right"]) {
140
- --chart-gridareas: "legend chart";
141
- --chart-gridcols: minmax(150px, auto) auto;
142
- }
143
-
144
- .bs-chart-table {
145
- border: 0;
146
- clip: rect(0 0 0 0);
147
- height: 1px;
148
- margin: 0;
149
- overflow: hidden;
150
- padding: 0;
151
- position: absolute;
152
- white-space: nowrap;
153
- width: 1px;
154
- }
155
- /*
156
- uncomment to make visible when testing
157
- .bs-chart-table {
158
- clip: none;
159
- overflow: auto;
160
- height: auto;
161
- position: relative;
162
- width: auto;
163
- }
164
-
165
- */