@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,83 +0,0 @@
1
- .bs-inline-tabs {
2
- display: flex;
3
- gap: var(--bs-space-2);
4
- }
5
-
6
- .bs-inline-tab {
7
- display: inline-flex;
8
- justify-content: center;
9
- align-items: center;
10
- padding: var(--bs-space-2) var(--bs-space-3);
11
- font-size: var(--bs-text-sm);
12
- font-weight: 600;
13
- line-height: 1.5;
14
- color: var(--bs-ink-royal);
15
- text-align: center; /* needed for "as link" wrap cases */
16
- text-decoration: none;
17
- background-color: var(--bs-bg-medium);
18
- border-radius: var(--bs-space-1);
19
- border: 1px solid transparent;
20
- outline: none;
21
- cursor: pointer;
22
- transition: all 100ms ease-in-out;
23
- }
24
-
25
- /* Variant */
26
- .bs-inline-tab:where([data-variant="white"]) {
27
- background-color: var(--bs-bg-base);
28
- }
29
-
30
- /* Hover */
31
- .bs-inline-tab:where(:not([data-selected]):hover) {
32
- border-color: var(--bs-ink-royal); /* "ink-royal" instead of "royal-base", matches Figma design */
33
- }
34
-
35
- /* Keyboard Focus */
36
- .bs-inline-tab:where(:focus-visible) {
37
- outline: 2px solid var(--bs-ink-royal);
38
-
39
- &:where([data-selected]) {
40
- outline-offset: 2px;
41
- }
42
- }
43
-
44
- /* Selected */
45
- .bs-inline-tab:where([data-selected]) {
46
- color: var(--bs-ink-white);
47
- background-color: var(--bs-royal-400); /* "400" instead of "base", matches Figma design */
48
- }
49
-
50
- /* Disabled (as button or link) */
51
- .bs-inline-tab:where(:disabled, [aria-disabled="true"]) {
52
- color: var(--bs-ink-light);
53
- background-color: var(--bs-gray-light);
54
- cursor: default;
55
- pointer-events: none;
56
- }
57
-
58
- /* Selected & Disabled */
59
- .bs-inline-tab:where([data-selected]):where(:disabled, [aria-disabled="true"]) {
60
- color: var(--bs-ink-white);
61
- background-color: var(--bs-gray-base);
62
- }
63
-
64
- /* -- Dark Mode Overrides -- */
65
-
66
- :where(.dark .bs-inline-tab) {
67
-
68
- /* Ink */
69
- &:not([data-selected], :disabled, [aria-disabled="true"]) {
70
- color: var(--bs-ink-medium);
71
- }
72
-
73
- /* Selected & Disabled */
74
- &[data-selected]:where(:disabled, [aria-disabled="true"]) {
75
- color: var(--bs-ink-invert-base);
76
- }
77
-
78
- /* Keyboard Focus */
79
- &[data-selected]:where(:focus-visible) {
80
- outline-offset: 0;
81
- }
82
-
83
- }
@@ -1,101 +0,0 @@
1
- .bs-loader {
2
- --loader-dot-bg: var(--bs-blue-500);
3
- --loader-dot-size: .75rem;
4
- --loader-dot-top: calc(50% - var(--loader-dot-size)/2);
5
- --loader-dot-translate: 1.75rem; /* i.e., calc(var(--loader-width)/2 - var(--loader-dot-size)/2); */
6
- --loader-height: 3rem;
7
- --loader-width: 4rem; /* approx 6 * dot size */
8
- display: block;
9
- height: var(--loader-height);
10
- margin-inline-start: auto;
11
- margin-inline-end: auto;
12
- position: relative;
13
- width: var(--loader-width);
14
- }
15
- .bs-loader:where([data-size="xs"]) {
16
- --loader-dot-size: .3rem;
17
- --loader-dot-translate: .75rem;
18
- --loader-height: .3rem;
19
- --loader-width: 1.8rem;
20
- }
21
- .bs-loader:where([data-size="sm"]) {
22
- --loader-dot-size: .5rem;
23
- --loader-dot-translate: 1.125rem;
24
- --loader-height: .5rem;
25
- --loader-width: 3rem;
26
- }
27
- .bs-loader:where([data-size="lg"]) {
28
- --loader-dot-size: 1rem;
29
- --loader-dot-translate: 2.375rem;
30
- --loader-height: 4rem;
31
- --loader-width: 6rem;
32
- }
33
-
34
- /* ----- loader dots ----- */
35
- .bs-loader > :where(*:not(.visually-hidden)) {
36
- background-color: var(--loader-dot-bg);
37
- border-radius: 50%;
38
- display: block;
39
- height: var(--loader-dot-size);
40
- position: absolute;
41
- top: var(--loader-dot-top);
42
- width: var(--loader-dot-size);
43
- }
44
-
45
- .bs-loader > :where(*:not(.visually-hidden)) {
46
- animation-timing-function: cubic-bezier(0, 1, 1, 0);
47
- }
48
- .bs-loader > :where(*:nth-child(1)) {
49
- animation: loading-1 0.6s infinite;
50
- left: 0%;
51
- }
52
- .bs-loader > :where(*:nth-child(2)) {
53
- animation: loading-2 0.6s infinite;
54
- left: 0%;
55
- }
56
- .bs-loader > :where(*:nth-child(3)) {
57
- animation: loading-2 0.6s infinite;
58
- left: 40%;
59
- }
60
- .bs-loader > :where(*:nth-child(4)) {
61
- animation: loading-3 0.6s infinite;
62
- left: 80%;
63
- }
64
-
65
- /* ----- color variants ----- */
66
- .bs-loader:where([data-variant="black"]) {
67
- --loader-dot-bg: var(--bs-black);
68
- }
69
- .bs-loader:where([data-variant="gray"]) {
70
- --loader-dot-bg: var(--bs-gray-400);
71
- }
72
- .bs-loader:where([data-variant="white"]) {
73
- --loader-dot-bg: var(--bs-white);
74
- }
75
-
76
- @keyframes loading-1 {
77
- 0% {
78
- transform: scale(0);
79
- }
80
- 100% {
81
- transform: scale(1);
82
- }
83
- }
84
-
85
- @keyframes loading-2 {
86
- 0% {
87
- transform: translate(0, 0);
88
- }
89
- 100% {
90
- transform: translate(var(--loader-dot-translate), 0);
91
- }
92
- }
93
-
94
- @keyframes loading-3 {
95
- 0% {
96
- transform: scale(1);
97
- }
98
- 100% {
99
- transform: scale(0);
100
- }
101
- }
@@ -1,181 +0,0 @@
1
- .bs-modal {
2
- --base-modal-width: 35rem; /* 560px */
3
- --lg-modal-padding: 2rem; /* 32px */
4
- --lg-modal-width: 45.3125rem; /* 725px */
5
- --modal-padding: 1.5rem; /* 24px */
6
- --sm-modal-width: 21.25rem; /* 340px */
7
- background-color: var(--bs-bg-base-to-medium);
8
- border-radius: 4px;
9
- bottom: 0;
10
- box-shadow: var(--bs-shadow-contentHigh);
11
- display: flex;
12
- flex-direction: column;
13
- height: fit-content;
14
- left: 0;
15
- margin: auto;
16
- max-height: calc(100% - 3rem);
17
- opacity: 0;
18
- overflow: auto;
19
- position: fixed;
20
- right: 0;
21
- top: 0;
22
- transition-duration: 75ms;
23
- transition-property: opacity;
24
- transition-timing-function: ease-in-out;
25
- width: calc(100% - 3rem);
26
- z-index: 9999;
27
- }
28
-
29
- @media (min-width: 752px) {
30
- .bs-modal {
31
- max-height: min(calc(100dvh - 3rem), 40.625rem);
32
- width: var(--base-modal-width);
33
- }
34
-
35
- .bs-modal:where([data-size="sm"]) {
36
- width: var(--sm-modal-width);
37
- }
38
-
39
- .bs-modal:where([data-size="lg"]) {
40
- width: var(--lg-modal-width);
41
- }
42
- }
43
-
44
- .bs-modal:where([data-shown="true"]) {
45
- opacity: 1;
46
- }
47
-
48
- /* Header Container */
49
- .bs-modal :where(.bs-modal-header-container) {
50
- padding: var(--modal-padding);
51
- }
52
-
53
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-header-container) {
54
- padding: var(--lg-modal-padding);
55
- }
56
-
57
- .bs-modal:where([data-header-border="true"]) :where(.bs-modal-header-container) {
58
- border-bottom: 1px solid var(--bs-border-base);
59
- }
60
-
61
- .bs-modal:where([data-full-width="true"]) :where(.bs-modal-header-container) {
62
- padding-left: 0;
63
- padding-right: 0;
64
- }
65
-
66
- /* Header Row */
67
- .bs-modal :where(.bs-modal-header) {
68
- align-items: center;
69
- display: flex;
70
- justify-content: space-between;
71
- }
72
-
73
- /* Title */
74
- .bs-modal :where(.bs-modal-title) {
75
- flex-grow: 1;
76
- font-size: var(--bs-text-lg);
77
- font-weight: 400;
78
- margin-right: 2rem;
79
- }
80
-
81
- /* Subtitle */
82
- .bs-modal :where(.bs-modal-subtitle) {
83
- font-size: var(--bs-text-sm);
84
- font-weight: 400;
85
- margin-top: 0.5rem;
86
- width: 100%;
87
- }
88
-
89
- /* Close Button */
90
- .bs-modal :where(.bs-modal-close-button) {
91
- background-color: transparent;
92
- cursor: pointer;
93
- z-index: 10000;
94
- }
95
-
96
- .bs-modal:where(:not(:has(.bs-modal-header-container))) :where(.bs-modal-close-button) {
97
- position: absolute;
98
- right: 1rem;
99
- top: 1rem;
100
- }
101
-
102
- .bs-modal:where([data-full-width="true"]:has(> .bs-modal-header-container)) :where(.bs-modal-close-button) {
103
- margin-right: var(--modal-padding);
104
- }
105
-
106
- .bs-modal:where([data-full-width="true"][data-size="lg"]:has(> .bs-modal-header-container)) :where(.bs-modal-close-button) {
107
- margin-right: var(--lg-modal-padding);
108
- }
109
-
110
- /* Progress */
111
- .bs-modal :where(.bs-modal-progress) {
112
- margin-top: 1.5rem;
113
- width: 100%;
114
- }
115
-
116
- /* Body */
117
- .bs-modal :where(.bs-modal-body) {
118
- overflow-y: auto;
119
- padding: var(--modal-padding);
120
- }
121
-
122
- .bs-modal:where([data-full-height="true"]) :where(.bs-modal-body) {
123
- padding-bottom: 0;
124
- padding-top: 0;
125
- }
126
-
127
- .bs-modal:where([data-full-width="true"]) :where(.bs-modal-body) {
128
- padding-left: 0;
129
- padding-right: 0;
130
- }
131
-
132
- /* Has header, but no header border */
133
- .bs-modal:where(:not([data-header-border]):has(.bs-modal-header-container)) :where(.bs-modal-body),
134
- .bs-modal:where([data-header-border="false"]:has(.bs-modal-header-container)) :where(.bs-modal-body) {
135
- padding-top: 0;
136
- }
137
-
138
- /* Has footer, but no footer border */
139
- .bs-modal:where(:not([data-footer-border])) :where(.bs-modal-body:has(~ .bs-modal-footer)),
140
- .bs-modal:where([data-footer-border="false"]) :where(.bs-modal-body:has(~ .bs-modal-footer)) {
141
- padding-bottom: 0;
142
- }
143
-
144
- .bs-modal:where([data-body-background-contrast="true"]) :where(.bs-modal-body) {
145
- background-color: var(--bs-bg-light);
146
- }
147
-
148
- /* Footer */
149
- .bs-modal :where(.bs-modal-footer) {
150
- padding-bottom: 1rem;
151
- padding-left: var(--modal-padding);
152
- padding-right: var(--modal-padding);
153
- padding-top: 1rem;
154
- }
155
-
156
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-footer) {
157
- padding-bottom: 1.5rem;
158
- padding-left: var(--lg-modal-padding);
159
- padding-right: var(--lg-modal-padding);
160
- padding-top: 1.5rem;
161
- }
162
-
163
- .bs-modal:where([data-footer-border="true"]) :where(.bs-modal-footer) {
164
- border-top: 1px solid var(--bs-border-base);
165
- }
166
-
167
- .bs-modal:where([data-full-width="true"]) :where(.bs-modal-footer) {
168
- padding-left: 0;
169
- padding-right: 0;
170
- }
171
-
172
- /* Vue Transition Styles - Only used in Vue component */
173
- .bs-modal:where(.bs-modal-enter-from),
174
- .bs-modal:where(.bs-modal-leave-to) {
175
- opacity: 0;
176
- }
177
-
178
- .bs-modal:where(.bs-modal-enter-to),
179
- .bs-modal:where(.bs-modal-leave-from) {
180
- opacity: 1;
181
- }
@@ -1,30 +0,0 @@
1
- .bs-overlay {
2
- -webkit-backdrop-filter: blur(4px);
3
- backdrop-filter: blur(4px);
4
- background: rgba(29, 30, 72, 0.05);
5
- bottom: 0;
6
- left: 0;
7
- opacity: 0;
8
- position: fixed;
9
- right: 0;
10
- top: 0;
11
- transition-duration: 75ms;
12
- transition-property: opacity;
13
- transition-timing-function: ease-in-out;
14
- z-index: 9998;
15
- }
16
-
17
- .bs-overlay:where([data-shown]:not([data-shown="false"])) {
18
- opacity: 1;
19
- }
20
-
21
- /* Vue Transition Styles - Only used in Vue component */
22
- .bs-overlay:where(.bs-overlay-enter-from),
23
- .bs-overlay:where(.bs-overlay-leave-to) {
24
- opacity: 0;
25
- }
26
-
27
- .bs-overlay:where(.bs-overlay-enter-to),
28
- .bs-overlay:where(.bs-overlay-leave-from) {
29
- opacity: 1;
30
- }
@@ -1,81 +0,0 @@
1
- .bs-pagination {
2
- background-color: var(--bs-bg-base);
3
- color: var(--bs-ink-base);
4
- display: flex;
5
- gap: 1.5rem;
6
- justify-content: center;
7
- }
8
-
9
- .bs-pagination:where([data-variant="group"]) {
10
- gap: 2.5rem;
11
- }
12
-
13
- .bs-pagination:where([data-variant="results"]) {
14
- gap: 1rem;
15
- }
16
-
17
- .bs-pagination :where(button) {
18
- align-items: center;
19
- border-radius: 4px;
20
- cursor: pointer;
21
- display: flex;
22
- min-height: 1.5rem;
23
- justify-content: center;
24
- outline: 2px solid transparent;
25
- min-width: 1.5rem;
26
- }
27
-
28
- .bs-pagination button:where(:focus),
29
- .bs-pagination button:where(:focus-visible) {
30
- outline: 2px solid var(--bs-blue-base);
31
- }
32
-
33
- .bs-pagination button:where(:focus:not(:focus-visible)) {
34
- outline: 2px solid transparent;
35
- }
36
-
37
- .bs-pagination button:where(:disabled) {
38
- color: var(--bs-ink-disabled);
39
- cursor: default;
40
- }
41
-
42
- .bs-pagination button:where([data-selected]:not([data-selected="false"])) {
43
- background-color: var(--bs-blue-base);
44
- color: var(--bs-gray-50);
45
- }
46
-
47
- .bs-pagination:where([data-fixed]:not([data-fixed="false"])) {
48
- background-color: var(--bs-bg-base-elevated);
49
- bottom: 0;
50
- left: 0;
51
- padding: 1rem;
52
- position: fixed;
53
- width: 100%;
54
- }
55
-
56
- .bs-pagination :where(.bs-pagination-page-numbers) {
57
- display: flex;
58
- gap: 1rem;
59
- }
60
-
61
- .bs-pagination :where(.bs-pagination-carets) {
62
- display: flex;
63
- gap: 1.5rem;
64
- }
65
-
66
- .bs-pagination :where(.bs-pagination-word-caret) {
67
- align-items: center;
68
- gap: 0.5rem;
69
- width: auto;
70
- }
71
-
72
- .bs-pagination :where(.bs-pagination-results-numbers) {
73
- display: flex;
74
- gap: 0.5rem;
75
- }
76
-
77
- .bs-pagination :where(.bs-pagination-results-numbers) button {
78
- padding-left: 2px;
79
- padding-right: 2px;
80
- width: auto;
81
- }
@@ -1,220 +0,0 @@
1
- .bs-pill {
2
- --pill-background: var(--bs-bg-medium);
3
- --pill-border: transparent;
4
- --pill-text: #162FB4; /* one-off component-specific */
5
- --pill-gap: var(--bs-space-2);
6
-
7
- align-items: center;
8
- appearance: none;
9
- background-color: var(--pill-background);
10
- border: 1px solid var(--pill-border);
11
- border-radius: 4px;
12
- color: var(--pill-text);
13
- display: inline-flex;
14
- font-size: var(--bs-text-xs);
15
- height: 1.5rem;
16
- gap: var(--pill-gap);
17
- line-height: 1rem;
18
- padding: 0 .375rem;
19
- text-decoration: none;
20
- }
21
-
22
- :where(.bs-pill .bs-icon) {
23
- height: 1rem;
24
- width: 1rem;
25
- }
26
-
27
- /* ------------------------------- Dark mode (basic & status types only) ------------------------------- */
28
- :where(.dark) .bs-pill {
29
- --pill-text: #7585D1;
30
- }
31
-
32
- /* ------------------------------ Auto-truncation for content ------------------------------ */
33
- .bs-pill:has([data-truncate="true"]) {
34
- max-width: 100%;
35
- }
36
- .bs-pill > :where([data-truncate="true"]) {
37
- display: inline-block;
38
- overflow: hidden;
39
- text-overflow: ellipsis;
40
- white-space: nowrap;
41
- }
42
-
43
- /* If false, pass thru .bs-pill display styles */
44
- .bs-pill > :where([data-truncate="false"]) {
45
- display: inline-flex;
46
- align-items: center;
47
- gap: var(--pill-gap);
48
- }
49
-
50
- /* ------------------------------ Button and Link Styles ------------------------------ */
51
- :is(a, button).bs-pill {
52
- color: var(--pill-text);
53
- cursor: pointer;
54
- transition: all 0.15s ease-in-out;
55
- }
56
- :is(a, button).bs-pill:is(:hover, :focus) {
57
- --pill-border: var(--bs-royal-base);
58
-
59
- color: var(--pill-text);
60
- outline: transparent;
61
- }
62
-
63
- /* ------------------------------ Background Colors ------------------------------ */
64
- :where(.box[data-invert]) .bs-pill {
65
- --pill-background: var(--bs-bg-invert-to-base-subtle);
66
- --pill-text: var(--bs-gray-100);
67
- }
68
- :where(.box[data-invert]) :is(a, button).bs-pill:is(:hover, :focus) {
69
- --pill-border: var(--bs-gray-100);
70
- }
71
- :where(.dark .box[data-invert]) .bs-pill {
72
- --pill-text: var(--bs-royal-400);
73
- }
74
- :where(.dark .box[data-invert]) :is(a, button).bs-pill:is(:hover, :focus) {
75
- --pill-border: var(--bs-royal-400);
76
- }
77
-
78
- /* ------------------ Generally Applicable ::Before Styles ------------------ */
79
- .bs-pill::before {
80
- flex-shrink: 0;
81
- }
82
-
83
- /* ------------------------------ Status Styles ------------------------------ */
84
- .bs-pill:where([data-status]) {
85
- --status-color: var(--bs-blue-base);
86
- }
87
- .bs-pill:where([data-status])::before {
88
- background-color: var(--status-color);
89
- border-radius: 100%;
90
- content: '';
91
- height: 12px;
92
- width: 12px;
93
- }
94
-
95
- /* ----- Status Colors ----- */
96
- .bs-pill:where([data-status^="active"]) {
97
- --status-color: var(--bs-blue-base);
98
- }
99
- .bs-pill:where([data-status^="complete"]) {
100
- --status-color: var(--bs-purple-400);
101
- }
102
- .bs-pill:where([data-status^="disabled"]) {
103
- --status-color: var(--bs-gray-300);
104
- }
105
- .bs-pill:where([data-status^="error"]) {
106
- --status-color: var(--bs-red-400);
107
- }
108
- .bs-pill:where([data-status^="positive"]) {
109
- --status-color: #16986D;
110
- }
111
- .bs-pill:where([data-status^="warning"]) {
112
- --status-color: var(--bs-orange-warning);
113
- }
114
- /* Deprecated; use "data-status disabled" instead */
115
- .bs-pill:where([data-status^="inactive"]) {
116
- --status-color: var(--bs-gray-300);
117
- }
118
-
119
- /* ------------------------------ Filter Styles ------------------------------ */
120
- .bs-pill:where([data-variant^="filter"]) {
121
- --pill-background: var(--bs-bg-base);
122
- --pill-border: var(--bs-border-base);
123
- --pill-text: var(--bs-ink-base);
124
- }
125
- .bs-pill:where([data-variant^="filter"]):is(:hover, :focus) {
126
- --pill-border: var(--bs-border-base);
127
- }
128
- :is(a, button).bs-pill:where([data-variant^="filter"]):is(:hover, :focus) {
129
- --pill-border: var(--bs-ink-base);
130
- }
131
-
132
- /* ------------------------------ Variant: "Filter Add" Styles ------------------------------ */
133
- /* Black + */
134
- .bs-pill:where([data-variant^="filter"][data-variant*="add"])::after {
135
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.5 4.5V8h1V4.5H8v-1H4.5V0h-1v3.5H0v1h3.5Z' fill='%230A0B19'/%3E%3C/svg%3E");
136
- }
137
- /* White + */
138
- :where(.dark) .bs-pill:where([data-variant^="filter"][data-variant*="add"]):not(:disabled, [aria-disabled="true"])::after{
139
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.5 4.5V8h1V4.5H8v-1H4.5V0h-1v3.5H0v1h3.5Z' fill='%23ffffff'/%3E%3C/svg%3E");
140
- }
141
-
142
-
143
- /* ------------------------------ Variant: "Filter Remove" Styles ------------------------------ */
144
- /* Black X */
145
- .bs-pill:where([data-variant^="filter"][data-variant*="remove"])::after {
146
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%230A0B19'/%3E%3C/svg%3E%0A");
147
- }
148
- /* White X */
149
- :where(.dark) .bs-pill:where([data-variant^="filter"][data-variant*="remove"]):not(:disabled, [aria-disabled="true"])::after {
150
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23ffffff'/%3E%3C/svg%3E%0A");
151
- }
152
- /* Dark Red X */
153
- .bs-pill:where([data-variant^="filter"][data-variant*="remove"]):hover::after {
154
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23D91214'/%3E%3C/svg%3E%0A");
155
- }
156
- /* Light Red X */
157
- :where(.dark) .bs-pill:where([data-variant^="filter"][data-variant*="remove"]):hover::after {
158
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23F15355'/%3E%3C/svg%3E%0A");
159
- }
160
-
161
- /* ------------------------------ Variant: "Filter Active" Styles ------------------------------ */
162
- .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])) {
163
- --pill-background: var(--bs-blue-base);
164
- --pill-border: transparent;
165
- --pill-text: var(--bs-white);
166
- }
167
- .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])):is(:hover, :focus) {
168
- --pill-border: transparent;
169
- }
170
- :is(a, button).bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])):is(:hover, :focus) {
171
- --pill-background: var(--bs-blue-500);
172
- --pill-border: transparent;
173
- }
174
- /* White X */
175
- .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"]))::after {
176
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23fff'/%3E%3C/svg%3E");
177
- }
178
- /* Black X */
179
- .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])):where(:disabled, [aria-disabled="true"])::after {
180
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%230A0B19'/%3E%3C/svg%3E%0A");
181
- }
182
-
183
- /* ------------------------------ Variant: "Live Now" Styles ------------------------------ */
184
- .bs-pill:where([data-variant^="live"]) {
185
- --pill-background: var(--bs-plum-base);
186
- --pill-text: var(--bs-white);
187
- --pill-gap: var(--bs-space-1);
188
- text-transform: uppercase;
189
- }
190
- .bs-pill:where([data-variant^="live"]):hover {
191
- --pill-border: transparent;
192
- }
193
- .bs-pill:where([data-variant^="live"])::before {
194
- background-color: var(--bs-red-400);
195
- border: 3px solid var(--bs-white);
196
- border-radius: 100%;
197
- content: '';
198
- height: 12px;
199
- width: 12px;
200
- }
201
-
202
- /* ------------------------------ Variant: "Inactive" Styles ------------------------------ */
203
- .bs-pill:where([data-variant^="inactive"]) {
204
- --pill-background: var(--bs-gray-base);
205
- --pill-text: var(--bs-ink-invert);
206
- }
207
-
208
-
209
- /* ------------------------------ Disabled Styles ------------------------------ */
210
- /* ----- Not to be confused with data-status="disabled" or variant "inactive". These are for link/button/filter pills. ----- */
211
- .bs-pill:is(:disabled, [aria-disabled="true"]) {
212
- pointer-events: none;
213
- color: var(--bs-ink-disabled);
214
- background-color: var(--bs-bg-disabled);
215
- }
216
-
217
- .bs-pill:where([data-variant^="filter"]):not([data-active]):is(:disabled, [aria-disabled="true"]),
218
- .bs-pill:where([data-variant^="filter"])[data-active="false"]:is(:disabled, [aria-disabled="true"]) {
219
- --pill-border: var(--bs-gray-400);
220
- }