@wwtdev/bsds-css 2.29.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 +2182 -1460
  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 -216
  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 -183
  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 -212
  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 -179
  93. package/dist/components/vertical-navigation.css +0 -276
  94. package/dist/wwt-bsds-wc-base.css +0 -1129
@@ -1,236 +0,0 @@
1
- @mixin dropdown-options() {
2
- /* Option list */
3
- .bs-dropdown-options {
4
- display: flex;
5
- flex-direction: column;
6
- gap: 0.5rem;
7
- list-style: none;
8
- margin-bottom: 0.25rem;
9
- margin-top: 0.25rem;
10
- max-height: var(--options-height-max, 20rem);/* constrain scrollable to options section */
11
- overflow-y: auto;
12
- padding-block: 0.5rem;
13
- padding-left: 0;
14
- position: relative;
15
- }
16
-
17
- .bs-dropdown-options:focus-visible {
18
- outline: none;
19
- }
20
-
21
- /* Stabilize scrollbar gutter for Firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=764076) */
22
- @media (min-width: 1166px) {
23
- /* 5th or 8th child triggers overflow-y (depending on variant) */
24
- :where([data-width="content"]) > .bs-dropdown-options:where(:has([data-variant*="description"]:nth-child(5))),
25
- :where([data-width="content"]) > .bs-dropdown-options:where(:has(li:not([data-variant*="description"]):nth-child(8))) {
26
- scrollbar-gutter: stable;
27
- }
28
-
29
- /* Fallback for older Firefox+ only if we're not setting data-overflow values */
30
- @supports not selector(:has(*)) {
31
- :where([data-width="content"]) > .bs-dropdown-options {
32
- scrollbar-gutter: stable;
33
- }
34
- }
35
-
36
- /* Also allow this for js solutions if :has not available via data-overflow */
37
- /* Reset scrollbar gutter when data-overflow is used */
38
- :where([data-width="content"]) > .bs-dropdown-options:where([data-overflow]) {
39
- scrollbar-gutter: auto;
40
- }
41
-
42
- :where([data-width="content"]) > .bs-dropdown-options:where([data-overflow="true"]) {
43
- scrollbar-gutter: stable;
44
- }
45
- }
46
-
47
- /* Option list item */
48
- .bs-dropdown-options :where(li) {
49
- align-items: center;
50
- border-bottom: 2px solid transparent;
51
- border-left: 4px solid transparent;
52
- border-radius: 3px;
53
- border-right: 2px solid transparent;
54
- border-top: 2px solid transparent;
55
- color: var(--bs-ink-base);
56
- column-gap: 0.5rem;
57
- cursor: pointer;
58
- display: grid;
59
- padding-block: 0.25rem;
60
- padding-inline: 1.25rem;
61
- row-gap: 0.125rem;
62
- word-break: break-word;
63
- word-wrap: break-word;
64
- }
65
-
66
- /* Variant: 2-col */
67
- .bs-dropdown-options :where(li[data-variant~="2-col"]) {
68
- grid-template-columns: min-content 1fr;
69
- }
70
-
71
- /* Variant: 3-col */
72
- .bs-dropdown-options :where(li[data-variant~="3-col"]) {
73
- grid-template-columns: min-content min-content 1fr;
74
- }
75
-
76
- /* Variant: description */
77
- .bs-dropdown-options :where(li:not([data-variant*="-col"])[data-variant~="description"] > :nth-child(2)),
78
- .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"] > :nth-child(3)),
79
- .bs-dropdown-options :where(li[data-variant~="3-col"][data-variant~="description"] > :nth-child(4)) {
80
- color: var(--bs-ink-light);
81
- font-size: var(--bs-text-xs);
82
- min-height: 1.125rem;
83
- line-height: 1.125rem;
84
- }
85
-
86
- /* Variant: 2-col description */
87
- .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"] > :nth-child(3)) {
88
- grid-column-start: 2;
89
- }
90
-
91
- /* Variant: 3-col description */
92
- .bs-dropdown-options :where(li[data-variant~="3-col"][data-variant~="description"] > :nth-child(4)) {
93
- grid-column-start: 3;
94
- }
95
-
96
- /* Hover or data-selected */
97
- .bs-dropdown-options :where(li:not([role="separator"]):hover),
98
- .bs-dropdown-options :where(li[data-selected]) {
99
- background-color: var(--bs-bg-medium-to-light);
100
- border-left: 4px solid var(--bs-ink-blue);
101
- color: var(--bs-ink-blue);
102
- outline: none;
103
- }
104
-
105
- /* Variant: negative */
106
- .bs-dropdown-options :where(li[data-variant~="negative"]:hover),
107
- .bs-dropdown-options :where(li[data-variant~="negative"][data-selected]),
108
- .bs-dropdown-options :where(li[data-variant~="negative"][data-selected]:hover) {
109
- /* 25% alpha version of --bs-red-400 */
110
- background-color: rgba(248, 169, 170, 0.25);
111
- border-left: 4px solid var(--bs-ink-red);
112
- color: var(--bs-ink-red);
113
- }
114
-
115
- /* Hover or data-selected for 2-col/3-col/description variants */
116
- .bs-dropdown-options :where(li:not([data-variant*="-col"])[data-variant~="description"]:hover > :nth-child(2)),
117
- .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"]:hover > :nth-child(3)),
118
- .bs-dropdown-options :where(li[data-variant~="3-col"][data-variant~="description"]:hover > :nth-child(4)),
119
- .bs-dropdown-options :where(li:not([data-variant*="-col"])[data-variant~="description"][data-selected] > :nth-child(2)),
120
- .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"][data-selected] > :nth-child(3)),
121
- .bs-dropdown-options :where(li[data-variant~="3-col"][data-variant~="description"][data-selected] > :nth-child(4)) {
122
- color: var(--bs-ink-blue);
123
- }
124
-
125
- /* Hover or data-selected for negative + 2-col/3-col/description variants */
126
- .bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant*="-col"])[data-variant~="description"]:hover > :nth-child(2)),
127
- .bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"]:hover > :nth-child(3)),
128
- .bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="3-col"][data-variant~="description"]:hover > :nth-child(4)),
129
- .bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant*="-col"])[data-variant~="description"][data-selected] > :nth-child(2)),
130
- .bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"][data-selected] > :nth-child(3)),
131
- .bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="3-col"][data-variant~="description"][data-selected] > :nth-child(4)) {
132
- color: var(--bs-ink-red);
133
- }
134
-
135
- /* List option keyboard navigation focus */
136
- .bs-dropdown-options:where(:focus-visible) :where(li[data-active]) {
137
- --focus-border-color: var(--bs-blue-base);
138
- border: 2px solid var(--focus-border-color);
139
- outline: none;
140
- padding-left: 1.375rem;
141
- }
142
-
143
- /* Navigation focus on a selected element should preserve 4px left border */
144
- .bs-dropdown-options:where(:focus-visible) :where(li[data-selected][data-active]) {
145
- border-left: 4px solid var(--focus-border-color);
146
- padding-left: 1.25rem;
147
- }
148
-
149
- /* data-variant="negative" list option keyboard navigation focus */
150
- .bs-dropdown-options:where(:focus-visible) :where(li[data-variant~="negative"][data-active]) {
151
- --focus-border-color: var(--bs-red-200);
152
- }
153
-
154
- /* Multi-select divider */
155
- .bs-dropdown-options :where(li[role="separator"]) {
156
- cursor: default;
157
- padding-block: 0.125rem;
158
- padding-right: 1.375rem;
159
- }
160
-
161
- /* Multi-select divider line */
162
- .bs-dropdown-options :where(hr) {
163
- background-color: var(--bs-navy-light);
164
- height: .0625rem;
165
- margin-block: 0;
166
- margin-inline: 0;
167
- }
168
-
169
- /* Disable hover styles */
170
- .bs-dropdown-options :where(li[data-no-hover]:hover) {
171
- background-color: transparent;
172
- border-left-color: transparent;
173
- color: var(--bs-ink-base);
174
- cursor: default;
175
- }
176
-
177
- /* Style label to look like other options */
178
- .bs-dropdown-options :where(li label) {
179
- cursor: pointer;
180
- font-size: 1rem;
181
- font-weight: 400;
182
- }
183
-
184
- /* Don't change option color when checkbox is present */
185
- .bs-dropdown-options :where(li[data-variant~="checkbox"]):hover,
186
- .bs-dropdown-options :where(li[data-variant~="checkbox"][data-selected]) {
187
- color: var(--bs-ink-base);
188
- }
189
-
190
- /* Don't change description color when checkbox is present */
191
- .bs-dropdown-options :where(li[data-variant~="checkbox"][data-variant~="2-col"][data-variant~="description"]):hover > :nth-child(3),
192
- .bs-dropdown-options :where(li[data-variant~="checkbox"][data-variant~="2-col"][data-variant~="description"][data-selected]) > :nth-child(3),
193
- .bs-dropdown-options :where(li[data-variant~="checkbox"][data-variant~="3-col"][data-variant~="description"]):hover > :nth-child(4),
194
- .bs-dropdown-options :where(li[data-variant~="checkbox"][data-variant~="3-col"][data-variant~="description"][data-selected]) > :nth-child(4) {
195
- color: var(--bs-ink-light);
196
- }
197
-
198
- /* Overrides mobile style when not min-width 1166 */
199
- .bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options) :where(li) {
200
- padding-left: 0.5rem;
201
- padding-right: 0.75rem;
202
- }
203
-
204
- .bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options) :where(li[role="separator"]) {
205
- padding-right: 0.625rem;
206
- }
207
-
208
- .bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options:focus-visible) :where(li[data-active]) {
209
- padding-left: 0.625rem;
210
- }
211
-
212
- .bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options:focus-visible) :where(li[data-selected][data-active]) {
213
- padding-left: 0.5rem;
214
- }
215
-
216
- @media (min-width: 1166px) {
217
- .bs-dropdown-options :where(li) {
218
- padding-left: 0.5rem;
219
- padding-right: 0.75rem;
220
- }
221
-
222
- .bs-dropdown-options :where(li[role="separator"]) {
223
- padding-right: 0.625rem;
224
- }
225
-
226
- .bs-dropdown-options:where(:focus-visible) :where(li[data-active]) {
227
- padding-left: 0.625rem;
228
- }
229
-
230
- .bs-dropdown-options:where(:focus-visible) :where(li[data-selected][data-active]) {
231
- padding-left: 0.5rem;
232
- }
233
- }
234
-
235
- }
236
-
@@ -1,189 +0,0 @@
1
- @mixin dropdown() {
2
- /* Parent */
3
- .bs-dropdown-parent {
4
- display: inline-block;
5
- position: relative;
6
- }
7
-
8
- /* Backdrop for mobile bottom sheet */
9
- .bs-dropdown-backdrop {
10
- -webkit-backdrop-filter: blur(4px);
11
- backdrop-filter: blur(4px);
12
- background: rgba(29, 30, 72, 0.05);
13
- bottom: 0;
14
- content: "";
15
- left: 0;
16
- position: fixed;
17
- right: 0;
18
- top: 0;
19
- z-index: 998;
20
- }
21
-
22
- /* Content */
23
- .bs-dropdown {
24
- --dropdown-bottom: 0;
25
- --dropdown-left: 0;
26
- --dropdown-right: auto;
27
- --dropdown-top: auto;
28
- --dropdown-width: 100%;
29
- --dropdown-transform: translate(0, 100%);
30
-
31
- background-color: var(--bs-bg-base-to-medium);
32
- border-radius: 4px;
33
- bottom: var(--dropdown-bottom);
34
- box-shadow: var(--bs-shadow-contentMedium);
35
- left: var(--dropdown-left);
36
- line-height: 1.5rem;
37
- margin: 0;
38
- opacity: 0;
39
- overflow-y: auto;
40
- position: fixed;
41
- right: var(--dropdown-right);
42
- top: var(--dropdown-top);
43
- transform-origin: center bottom;
44
- transform: var(--dropdown-transform);
45
- transition-duration: 75ms;
46
- transition-property: opacity, transform;
47
- transition-timing-function: ease-in-out;
48
- width: var(--dropdown-width);
49
- z-index: 999;
50
- }
51
-
52
- /* Mobile Header */
53
- .bs-dropdown > :where(header) {
54
- border-bottom: 1px solid var(--bs-border-base);
55
- display: flex;
56
- justify-content: space-between;
57
- padding: 1.5rem;
58
- }
59
-
60
- .bs-dropdown > :where(header) :where(h3) {
61
- font-size: 1.25rem;
62
- }
63
-
64
- .bs-dropdown > :where(header) :where(p) {
65
- font-size: 1rem;
66
- }
67
-
68
- .bs-dropdown > :where(header) :where(button) {
69
- cursor: pointer;
70
- height: 1rem;
71
- width: 1rem;
72
- }
73
-
74
- /* data-shown */
75
- .bs-dropdown:where([data-shown]:not([data-shown="false"])) {
76
- --dropdown-transform: translate(0, 0);
77
- opacity: 1;
78
- }
79
-
80
- /* Sizing */
81
- .bs-dropdown:where([data-width="sm"]) {
82
- --dropdown-wscreen-width: 10rem;
83
- }
84
-
85
- .bs-dropdown:where([data-width="md"]),
86
- .bs-dropdown:where(:not([data-width])) {
87
- --dropdown-wscreen-width: 20rem;
88
- }
89
-
90
- .bs-dropdown:where([data-width="lg"]) {
91
- --dropdown-wscreen-width: 40rem;
92
- }
93
-
94
- .bs-dropdown:where([data-width="content"]) {
95
- --dropdown-wscreen-width: max-content;
96
- }
97
-
98
- .bs-dropdown-parent:where([data-width="anchor"]) :where(.bs-dropdown) {
99
- --dropdown-wscreen-width: 100%;
100
- }
101
-
102
- /* data-top */
103
- .bs-dropdown:where([data-top]:not([data-top="false"])) {
104
- --dropdown-wscreen-bottom: calc(100% + 0.5rem);
105
- --dropdown-wscreen-top: auto;
106
- }
107
-
108
- /* data-center */
109
- .bs-dropdown-parent:where([data-center]:not([data-center="false"])) :where(.bs-dropdown) {
110
- --dropdown-transform: translate(-50%, 0);
111
- --dropdown-wscreen-left: 50%;
112
- }
113
-
114
- /* data-right */
115
- .bs-dropdown-parent:where([data-right]:not([data-right="false"])) :where(.bs-dropdown) {
116
- --dropdown-transform: translate(0, 0);
117
- --dropdown-wscreen-left: auto;
118
- --dropdown-wscreen-right: 0;
119
- }
120
-
121
- /* Overrides mobile style when not min-width 1166 */
122
- .bs-dropdown:where([data-no-mobile="true"]) {
123
- --dropdown-bottom: var(--dropdown-wscreen-bottom, auto);
124
- --dropdown-left: var(--dropdown-wscreen-left, initial);
125
- --dropdown-right: var(--dropdown-wscreen-right, initial);
126
- --dropdown-top: var(--dropdown-wscreen-top, calc(100% + 0.5rem));
127
- --dropdown-width: var(--dropdown-wscreen-width, initial);
128
- --dropdown-transform: initial;
129
-
130
- position: absolute;
131
- }
132
-
133
- .bs-dropdown:where([data-no-mobile="true"]) > :where(header) {
134
- display: none;
135
- }
136
-
137
- @media (min-width: 1166px) {
138
- .bs-dropdown-backdrop {
139
- display: none;
140
- }
141
-
142
- .bs-dropdown {
143
- --dropdown-bottom: var(--dropdown-wscreen-bottom, auto);
144
- --dropdown-left: var(--dropdown-wscreen-left, initial);
145
- --dropdown-right: var(--dropdown-wscreen-right, initial);
146
- --dropdown-top: var(--dropdown-wscreen-top, calc(100% + 0.5rem));
147
- --dropdown-width: var(--dropdown-wscreen-width, initial);
148
- --dropdown-transform: initial;
149
-
150
- position: absolute;
151
- }
152
-
153
- /* Hide the header */
154
- .bs-dropdown > :where(header) {
155
- display: none;
156
- }
157
- }
158
-
159
- /* Vue Transition Styles - Only used in Vue component */
160
- .bs-dropdown:where(.bs-dropdown-enter-from),
161
- .bs-dropdown:where(.bs-dropdown-leave-to) {
162
- opacity: 0;
163
- transform: var(--dropdown-transform);
164
- }
165
-
166
- .bs-dropdown:where(.bs-dropdown-enter-to),
167
- .bs-dropdown:where(.bs-dropdown-leave-from) {
168
- opacity: 1;
169
- transform: translate(0, 0);
170
- }
171
-
172
- .bs-dropdown :where(.mobile-select-button-container) {
173
- display: none;
174
- overflow: hidden;
175
- }
176
-
177
- @media (max-width: 1166px) {
178
- .bs-dropdown :where(.mobile-select-button-container) {
179
- display: flex;
180
- }
181
- }
182
-
183
- .bs-dropdown :where(.mobile-select-button) {
184
- margin: .875rem;
185
- width: 100%;
186
- }
187
-
188
- }
189
-
@@ -1,99 +0,0 @@
1
- @mixin empty-state() {
2
- .bs-empty-state {
3
- --bs-empty-state-description-color: var(--bs-ink-light);
4
- --bs-empty-state-icon-color: var(--bs-violet-300);
5
- --bs-empty-state-title-color: var(--bs-ink-base);
6
- --col-gap: var(--bs-space-6);
7
- --cta-spacing: var(--bs-space-4);
8
- --description-font-size: var(--bs-text-base);
9
- --description-line-height: var(--bs-leading-base);
10
- --description-weight: var(--bs-font-normal);
11
- --icon-size: 3rem;
12
- --title-font-size: var(--bs-text-lg);
13
- --title-line-height: 130%;
14
- --title-spacing: 0.5rem;
15
- --title-weight: var(--bs-font-normal);
16
-
17
- align-items: center;
18
- column-gap: var(--col-gap);
19
- display: grid;
20
- grid-template-columns: auto 1fr;
21
- }
22
-
23
- .bs-empty-state :where(.bs-empty-state-icon) {
24
- align-self: start;
25
- height: auto;
26
- max-width: var(--icon-size);
27
- width: 100%;
28
- }
29
-
30
- .bs-empty-state :where(.bs-empty-state-icon path) {
31
- fill: var(--bs-empty-state-icon-color);
32
- }
33
-
34
- .bs-empty-state :where(.bs-empty-state-title) {
35
- color: var(--bs-empty-state-title-color);
36
- font-size: var(--title-font-size);
37
- font-weight: var(--title-weight);
38
- line-height: var(--title-line-height);
39
- padding-block-end: var(--title-spacing);
40
- }
41
-
42
- .bs-empty-state :where(.bs-empty-state-description) {
43
- color: var(--bs-empty-state-description-color);
44
- font-size: var(--description-font-size);
45
- font-weight: var(--description-weight);
46
- line-height: var(--description-line-height);
47
- }
48
-
49
- .bs-empty-state :where(a) {
50
- color: var(--bs-ink-blue);
51
- text-decoration: underline;
52
- }
53
-
54
- .bs-empty-state :where(a:hover) {
55
- cursor: pointer;
56
- }
57
-
58
- /* Call to Actions */
59
-
60
- .bs-empty-state
61
- :where(
62
- .bs-empty-state-description + *,
63
- .bs-empty-state-title + *:not(.bs-empty-state-description)
64
- ) {
65
- margin-block-start: var(--cta-spacing, var(--bs-space-4));
66
- }
67
-
68
- /* Sizing */
69
-
70
- .bs-empty-state:where([data-size^='xs']) {
71
- --col-gap: var(--bs-space-4);
72
- --cta-spacing: var(--bs-space-2);
73
- --icon-size: 1.5rem;
74
- --title-color: var(--bs-ink-light);
75
- --title-font-size: var(--bs-text-md);
76
- --title-line-height: var(--bs-leading-base);
77
- --title-spacing: 0;
78
- }
79
-
80
- .bs-empty-state:where([data-size^='sm']) {
81
- --description-font-size: var(--bs-text-sm);
82
- --icon-size: 2rem;
83
- --title-font-size: var(--bs-text-md);
84
- --title-line-height: var(--bs-leading-base);
85
- --title-spacing: 0.125rem;
86
- }
87
-
88
- .bs-empty-state:where([data-size^='lg']) {
89
- --col-gap: var(--bs-space-8);
90
- --cta-spacing: var(--bs-space-6);
91
- --description-font-size: var(--bs-text-md);
92
- --icon-size: 4rem;
93
- --title-font-size: var(--bs-text-xl);
94
- --title-line-height: 110%;
95
- --title-weight: var(--bs-font-bold);
96
- }
97
-
98
- }
99
-
@@ -1,116 +0,0 @@
1
- @mixin filter-buttons() {
2
- /*
3
- custom properties:
4
- --filterbtn-caret-size
5
- --filterbtn-caret-transform
6
- --filterbtn-color
7
- --filterbtn-focus-color
8
- --filterbtn-height
9
- --filterbtn-text-size
10
- --filterbtn-weight
11
- */
12
-
13
- button:where(.bs-filter-button) {
14
- --filterbtn-caret-size: 1rem;
15
- --filterbtn-caret-transform: rotate(0deg);
16
- --filterbtn-color: var(--bs-ink-blue);
17
- --filterbtn-focus-color: transparent;
18
- --filterbtn-height: 1.5rem;
19
- --filterbtn-text-size: var(--bs-text-base);
20
- --filterbtn-weight: 400;
21
- flex-shrink: 0;
22
- position: relative;
23
- }
24
-
25
- .bs-filter-button {
26
- align-items: center;
27
- color: var(--filterbtn-color);
28
- column-gap: 0.5rem;
29
- cursor: pointer;
30
- display: inline-flex;
31
- font-size: var(--filterbtn-text-size);
32
- font-weight: var(--filterbtn-weight);
33
- height: var(--filterbtn-height);
34
- line-height: 1.5;
35
- transition: outline-color 100ms ease-in-out;
36
- width: max-content;
37
- }
38
- .bs-filter-button::after {
39
- border: solid var(--filterbtn-focus-color) 2px;
40
- border-radius: 0.25rem;
41
- content: '';
42
- display: block;
43
- height: 100%;
44
- position: absolute;
45
- transform: scale(1.25);
46
- width: 100%;
47
- }
48
-
49
- .bs-filter-button :where(.bs-icon),
50
- .bs-filter-button :where(span:has(svg:only-child)) {
51
- display: block;
52
- height: var(--filterbtn-caret-size);
53
- line-height: 1;
54
- transform: var(--filterbtn-caret-transform);
55
- transform-origin: center;
56
- transition: var(--bs-trans-rotate180);
57
- width: var(--filterbtn-caret-size);
58
- }
59
-
60
- .bs-filter-button:where([data-size="sm"],[data-size="xs"]) {
61
-
62
- --filterbtn-text-size: var(--bs-text-sm);
63
- --filterbtn-caret-size: .75rem;
64
- }
65
-
66
- .bs-filter-button:where([data-size="sm"]) {
67
- --filterbtn-text-size: var(--bs-text-sm);
68
- }
69
-
70
- .bs-filter-button:where([data-size="xs"]) {
71
- --filterbtn-text-size: var(--bs-text-xs);
72
- --filterbtn-weight: 600;
73
- }
74
-
75
- /* Hover state */
76
- .bs-filter-button:hover {
77
- --filterbtn-color: var(--bs-blue-base);
78
- }
79
-
80
- /* Focus state */
81
- .bs-filter-button:where(:focus-visible) {
82
- outline: none;
83
- --filterbtn-focus-color: var(--bs-blue-base);
84
- }
85
-
86
- /* Filter open state */
87
- .bs-filter-button:where([aria-expanded="true"],[data-open="true"]) {
88
- --filterbtn-caret-transform: rotate(180deg);
89
- }
90
-
91
- /* Badge non-standard color */
92
- .bs-filter-button :where(.bs-badge) {
93
- --badge-bg: var(--bs-ink-blue);
94
- }
95
-
96
- :where(.dark) .bs-filter-button :where(.bs-badge) {
97
- --badge-bg: var(--bs-blue-medium);
98
- }
99
-
100
- .bs-filter-button:hover :where(.bs-badge) {
101
- --badge-bg: var(--filterbtn-color);
102
- }
103
-
104
- /* Disabled state */
105
- .bs-filter-button:where(:disabled) {
106
- --filterbtn-color: var(--bs-ink-disabled);
107
- cursor: default;
108
- }
109
-
110
- .bs-filter-button:where(:disabled) :where(.bs-badge) {
111
- --badge-bg: var(--bs-bg-disabled);
112
- --badge-text: var(--bs-ink-disabled);
113
- }
114
-
115
- }
116
-
@@ -1,75 +0,0 @@
1
- @mixin flyout() {
2
- .bs-flyout {
3
- background-color: var(--bs-bg-base-to-light);
4
- box-shadow: var(--bs-shadow-drawerRight);
5
- height: 100%;
6
- left: 0;
7
- margin: 0;
8
- max-width: 100vw;
9
- opacity: 0;
10
- padding: 1.5rem;
11
- position: fixed;
12
- top: 0;
13
- transform: translateX(-100%);
14
- transition-duration: 300ms;
15
- transition-property: opacity, transform;
16
- transition-timing-function: ease;
17
- width: 360px;
18
- z-index: 1000;
19
- }
20
-
21
- .bs-flyout:where([data-absolute="true"]) {
22
- position: absolute;
23
- }
24
-
25
- .bs-flyout:where([data-position="right"]) {
26
- box-shadow: var(--bs-shadow-drawerLeft);
27
- left: auto;
28
- right: 0;
29
- transform: translateX(100%);
30
- }
31
-
32
- .bs-flyout:where([data-size="lg"]) {
33
- width: 535px;
34
- }
35
-
36
- .bs-flyout:where([data-shown="true"]) {
37
- opacity: 1;
38
- /*
39
- Needs to be "none" instead of "0" so as not to interfere with calculating
40
- "containing block" for absolute and fixed positioned elements (see https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block)
41
- */
42
- transform: none;
43
- }
44
-
45
- .bs-flyout :where(.bs-flyout-close-container) {
46
- display: flex;
47
- justify-content: flex-end;
48
- }
49
-
50
- .bs-flyout :where(.bs-flyout-close-container button) {
51
- cursor: pointer;
52
- outline-offset: 2px;
53
- padding: 2px;
54
- }
55
-
56
- /* Vue Transition Styles - Only used in Vue component */
57
- .bs-flyout:where(.bs-flyout-enter-from),
58
- .bs-flyout:where(.bs-flyout-leave-to) {
59
- opacity: 0;
60
- transform: translateX(-100%);
61
- }
62
-
63
- .bs-flyout:where([data-position="right"].bs-flyout-enter-from),
64
- .bs-flyout:where([data-position="right"].bs-flyout-leave-to) {
65
- transform: translateX(100%);
66
- }
67
-
68
- .bs-flyout:where(.bs-flyout-enter-to),
69
- .bs-flyout:where(.bs-flyout-leave-from) {
70
- opacity: 1;
71
- transform: translateX(0);
72
- }
73
-
74
- }
75
-