@wwtdev/bsds-css 1.15.11 → 1.15.12

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 (41) hide show
  1. package/dist/components/_accordions.scss +1 -1
  2. package/dist/components/_banner.scss +1 -1
  3. package/dist/components/_buttons.scss +16 -16
  4. package/dist/components/_circle-buttons.scss +1 -1
  5. package/dist/components/_dropdown.scss +6 -6
  6. package/dist/components/_form-booleans.scss +1 -1
  7. package/dist/components/_form-elements.scss +3 -3
  8. package/dist/components/_form-hints.scss +1 -1
  9. package/dist/components/_form-input-composite.scss +13 -11
  10. package/dist/components/_form-labels.scss +10 -2
  11. package/dist/components/_form-switches.scss +1 -1
  12. package/dist/components/_form-text-fields.scss +1 -1
  13. package/dist/components/_modal.scss +1 -1
  14. package/dist/components/_overlay.scss +1 -1
  15. package/dist/components/_pagination.scss +2 -2
  16. package/dist/components/_pills.scss +8 -7
  17. package/dist/components/_profile-img.scss +3 -3
  18. package/dist/components/_toast.scss +5 -5
  19. package/dist/components/_tooltip.scss +11 -6
  20. package/dist/components/accordions.css +1 -1
  21. package/dist/components/banner.css +1 -1
  22. package/dist/components/buttons.css +16 -16
  23. package/dist/components/circle-buttons.css +1 -1
  24. package/dist/components/dropdown.css +6 -6
  25. package/dist/components/form-booleans.css +1 -1
  26. package/dist/components/form-elements.css +3 -3
  27. package/dist/components/form-hints.css +1 -1
  28. package/dist/components/form-input-composite.css +13 -11
  29. package/dist/components/form-labels.css +10 -2
  30. package/dist/components/form-switches.css +1 -1
  31. package/dist/components/form-text-fields.css +1 -1
  32. package/dist/components/modal.css +1 -1
  33. package/dist/components/overlay.css +1 -1
  34. package/dist/components/pagination.css +2 -2
  35. package/dist/components/pills.css +8 -7
  36. package/dist/components/profile-img.css +3 -3
  37. package/dist/components/toast.css +5 -5
  38. package/dist/components/tooltip.css +11 -6
  39. package/dist/wwt-bsds.css +84 -70
  40. package/dist/wwt-bsds.min.css +1 -1
  41. package/package.json +1 -1
@@ -103,7 +103,7 @@
103
103
  }
104
104
 
105
105
  /* Accordion Group */
106
- :where(.bs-accordion[data-stacked]) + .bs-accordion:where([data-stacked]) {
106
+ :where(.bs-accordion[data-stacked]:not([data-stacked="false"])) + .bs-accordion:where([data-stacked]:not([data-stacked="false"])) {
107
107
  border-block-start-color: transparent;
108
108
  }
109
109
 
@@ -10,7 +10,7 @@
10
10
  padding-top: 1rem;
11
11
  }
12
12
 
13
- .bs-banner:where([data-dismissed]) {
13
+ .bs-banner:where([data-dismissed]:not([data-dismissed="false"])) {
14
14
  display: none;
15
15
  }
16
16
 
@@ -66,21 +66,21 @@
66
66
  }
67
67
 
68
68
  /* Ghost Buttons */
69
- .bs-button:where([data-ghost]) {
69
+ .bs-button:where([data-ghost]:not([data-ghost="false"])) {
70
70
  --btn-light: var(--bs-blue-10);
71
71
  --btn-secondary: var(--bs-blue-10);
72
72
  background-color: transparent;
73
73
  box-shadow: inset 0 0 0 1px var(--btn-main);
74
74
  color: var(--btn-main);
75
75
  }
76
- .bs-button:where([data-ghost])::before {
76
+ .bs-button:where([data-ghost]:not([data-ghost="false"]))::before {
77
77
  border-radius: 0.4375rem;
78
78
  }
79
- .bs-button:where([data-ghost]):hover,
80
- .bs-button:where([data-ghost]):focus {
79
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):hover,
80
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):focus {
81
81
  background-color: var(--btn-light);
82
82
  }
83
- .bs-button:where([data-ghost]):active {
83
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):active {
84
84
  box-shadow:
85
85
  inset 0 0 0 1px var(--btn-main),
86
86
  inset 0px 0px 4px 1px var(--btn-highlight);
@@ -119,7 +119,7 @@
119
119
  }
120
120
 
121
121
  /* Text Button */
122
- .bs-button:where([data-text]) {
122
+ .bs-button:where([data-text]:not([data-text="false"])) {
123
123
  --btn-padding: 0 0;
124
124
  --btn-focus-pseudo-width: calc(100% + 1.25rem); /* text btns don't have side padding, but we do want focus outline to look padded */
125
125
  background-color: transparent;
@@ -129,15 +129,15 @@
129
129
  font-weight: 400;
130
130
  line-height: 150%;
131
131
  }
132
- .bs-button:where([data-text]):hover {
132
+ .bs-button:where([data-text]:not([data-text="false"])):hover {
133
133
  color: var(--bs-blue-base);
134
134
  background-color: transparent;
135
135
  text-decoration: underline;
136
136
  }
137
- .bs-button:where([data-text]):has(svg):hover {
137
+ .bs-button:where([data-text]:not([data-text="false"])):has(svg):hover {
138
138
  text-decoration: none;
139
139
  }
140
- .bs-button:where([data-text]):active {
140
+ .bs-button:where([data-text]:not([data-text="false"])):active {
141
141
  box-shadow: none;
142
142
  }
143
143
 
@@ -145,29 +145,29 @@
145
145
  .bs-button:where([data-size^='sm']) {
146
146
  font-size: var(--bs-text-sm);
147
147
  }
148
- .bs-button:where([data-text][data-size^='sm']) {
148
+ .bs-button:where([data-size^='sm']):where([data-text]:not([data-text="false"])) {
149
149
  font-size: var(--bs-text-base);
150
150
  }
151
151
 
152
152
  /* Disabled Styling */
153
153
  :where(button:disabled),
154
154
  .bs-button:where(:disabled),
155
- .bs-button:where([aria-disabled='true']) /* for links as buttons */ {
155
+ .bs-button:where([aria-disabled="true"]) /* for links as buttons */ {
156
156
  pointer-events: none;
157
157
  }
158
158
  .bs-button:where(:disabled),
159
- .bs-button:where([aria-disabled='true']) {
159
+ .bs-button:where([aria-disabled="true"]) {
160
160
  color: var(--bs-gray-400);
161
161
  background-color: var(--bs-gray-200);
162
162
  }
163
163
 
164
- .bs-button:where([data-ghost]):disabled,
165
- .bs-button:where([data-ghost])[aria-disabled='true'] {
164
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):disabled,
165
+ .bs-button:where([data-ghost]:not([data-ghost="false"]))[aria-disabled="true"] {
166
166
  box-shadow: inset 0 0 0 1px var(--bs-gray-400);
167
167
  }
168
168
 
169
- .bs-button:where([data-text]):disabled,
170
- .bs-button:where([data-text][aria-disabled='true']) {
169
+ .bs-button:where([data-text]:where([data-text])):disabled,
170
+ .bs-button:where([data-text]:where([data-text]))[aria-disabled="true"] {
171
171
  background-color: transparent;
172
172
  }
173
173
 
@@ -72,7 +72,7 @@ a.bs-circle-button {
72
72
  }
73
73
 
74
74
  /* Icon Buttons with Text */
75
- .bs-circle-button:where([data-text]) {
75
+ .bs-circle-button:where([data-text]:not([data-text="false"])) {
76
76
  --btn-border-radius: 0.5rem;
77
77
  }
78
78
 
@@ -53,12 +53,12 @@
53
53
  margin-left: -0.75rem;
54
54
  width: calc(100% + 1.5rem);
55
55
  }
56
- .bs-dropdown:where([data-search]) :where(.bs-dropdown-options) {
56
+ .bs-dropdown:where([data-search]:not([data-search="false"])) :where(.bs-dropdown-options) {
57
57
  --options-height-max: 11.5rem;
58
58
  }
59
59
 
60
60
  /* data-shown */
61
- .bs-dropdown:where([data-shown]) {
61
+ .bs-dropdown:where([data-shown]:not([data-shown="false"])) {
62
62
  opacity: 1;
63
63
  transform: translateY(0);
64
64
  z-index: 999;
@@ -103,18 +103,18 @@
103
103
  }
104
104
 
105
105
  /* data-shown */
106
- .bs-dropdown:where([data-shown]) {
106
+ .bs-dropdown:where([data-shown]:not([data-shown="false"])) {
107
107
  opacity: 1;
108
108
  }
109
109
 
110
110
  /* data-top */
111
- .bs-dropdown:where([data-top]) {
111
+ .bs-dropdown:where([data-top]:not([data-top="false"])) {
112
112
  --dropdown-wscreen-bottom: calc(100% + 0.5rem);
113
113
  --dropdown-wscreen-top: auto;
114
114
  }
115
115
 
116
116
  /* data-justify="center" */
117
- .bs-dropdown-parent:where([data-center]) :where(.bs-dropdown) {
117
+ .bs-dropdown-parent:where([data-center]:not([data-center="false"])) :where(.bs-dropdown) {
118
118
  --dropdown-wscreen-left: 50%;
119
119
  transform: translateX(-50%);
120
120
  }
@@ -122,7 +122,7 @@
122
122
  .bs-dropdown :where(.bs-dropdown-options) {
123
123
  --options-height-max: 20rem;
124
124
  }
125
- .bs-dropdown:where([data-search]) :where(.bs-dropdown-options) {
125
+ .bs-dropdown:where([data-search]:not([data-search="false"])) :where(.bs-dropdown-options) {
126
126
  --options-height-max: 17.25rem;
127
127
  }
128
128
  }
@@ -177,7 +177,7 @@ input:where([type='radio']):checked:disabled::before {
177
177
 
178
178
  /* Error state */
179
179
 
180
- input:where([type='checkbox'], [type='radio'])[data-error] {
180
+ input:where([type='checkbox'], [type='radio'])[data-error]:where(:not([data-error="false"])) {
181
181
  --box-shadow: var(--bs-red-base);
182
182
  --outline-color: var(--bs-red-base);
183
183
  }
@@ -1,11 +1,11 @@
1
1
  @mixin form-elements() {
2
2
  /* Generally applicable (all input types) */
3
- :where([data-required]) {
3
+ :where([data-required]:not([data-required="false"])) {
4
4
  color: var(--bs-ink-red);
5
5
  font-weight: var(--bs-font-bold, 600);
6
6
  }
7
7
 
8
- :where([data-disabled], [data-disabled] [data-required]) {
8
+ :where([data-disabled]:not([data-disabled="false"]), [data-disabled]:not([data-disabled="false"]) [data-required]:not([data-required="false"])) {
9
9
  color: var(--bs-gray-400);
10
10
  }
11
11
 
@@ -17,7 +17,7 @@
17
17
  }
18
18
 
19
19
  /* Errors and Messages */
20
- :is(input, select, textarea):where([data-error]) {
20
+ :is(input, select, textarea):where([data-error]:not([data-error="false"])) {
21
21
  --input-border: var(--bs-ink-red);
22
22
  }
23
23
 
@@ -10,7 +10,7 @@
10
10
  overflow-wrap: break-word;
11
11
  }
12
12
 
13
- .bs-hint:where([data-error]) {
13
+ .bs-hint:where([data-error]:not([data-error="false"])) {
14
14
  --hint-color: var(--bs-ink-red);
15
15
  }
16
16
 
@@ -132,8 +132,9 @@ and issues with box-sizing
132
132
  }
133
133
 
134
134
  .bs-input-addon:where(:not([data-multifocus]):focus-within),
135
- .bs-input-addon:where([data-multifocus]) :where(input, select):where(:focus, :focus-within, :focus-visible),
136
- .bs-input-addon:where([data-multifocus]) :is(bs-input, bs-select) :where(input, select):where(:focus, :focus-within, :focus-visible) {
135
+ .bs-input-addon:where([data-multifocus="false"]:focus-within),
136
+ .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) :where(input, select):where(:focus, :focus-within, :focus-visible),
137
+ .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) :is(bs-input, bs-select) :where(input, select):where(:focus, :focus-within, :focus-visible) {
137
138
  --input-border: var(--focus-border);
138
139
  position: relative;
139
140
  z-index: 1;
@@ -148,14 +149,15 @@ and issues with box-sizing
148
149
  z-index: 1;
149
150
  }
150
151
 
151
- .bs-input-addon:where([data-multifocus]) > :where(:not(.bs-input-addon)) > :where(input:focus, select:focus),
152
- .bs-input-addon:where([data-multifocus]) > :is(bs-input, bs-select) :where(input:focus, select:focus),
153
- .bs-input-addon:where([data-multifocus]) > :where(input:focus, select:focus) {
152
+ .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) > :where(:not(.bs-input-addon)) > :where(input:focus, select:focus),
153
+ .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) > :is(bs-input, bs-select) :where(input:focus, select:focus),
154
+ .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) > :where(input:focus, select:focus) {
154
155
  border-radius: .25rem;
155
156
  box-shadow: var(--focus-border) 0px 0px 0px 1px inset;
156
157
  }
157
158
 
158
- .bs-input-addon:where(:not([data-multifocus]):focus-within)::after {
159
+ .bs-input-addon:where(:not([data-multifocus]):focus-within)::after,
160
+ .bs-input-addon:where([data-multifocus="false"]:focus-within)::after {
159
161
  border-width: 1px;
160
162
  border-radius: .25rem;
161
163
  }
@@ -166,7 +168,7 @@ and issues with box-sizing
166
168
  }
167
169
 
168
170
  /* Straight-lined ::before border to fill the gap below the rounded ::after border */
169
- .bs-input-addon:where([data-multifocus]) :where(:focus-within)::before {
171
+ .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) :where(:focus-within)::before {
170
172
  border-bottom-width: 1px;
171
173
  border-color: var(--bs-violet-300);
172
174
  border-radius: 0;
@@ -186,14 +188,14 @@ and issues with box-sizing
186
188
  }
187
189
 
188
190
  /* -------- Error styles -------- */
189
- .bs-input-addon:where([data-error]),
190
- .bs-input-addon:where([data-error]) :where(.bs-input-addon) {
191
+ .bs-input-addon:where([data-error]:not([data-error="false"])),
192
+ .bs-input-addon:where([data-error]:not([data-error="false"])) :where(.bs-input-addon) {
191
193
  --focus-border: var(--bs-red-400);
192
194
  --input-border: var(--bs-red-400);
193
195
  }
194
196
 
195
- .bs-input-addon:where([data-error],[data-disabled]) > *::before,
196
- .bs-input-addon:where(.bs-input-addon[data-error] .bs-input-addon, .bs-input-addon[data-disabled] .bs-input-addon) > *::before {
197
+ .bs-input-addon:where([data-error]:not([data-error="false"]),[data-disabled]:not([data-disabled="false"])) > *::before,
198
+ .bs-input-addon:where(.bs-input-addon[data-error]:not([data-error="false"]) .bs-input-addon, .bs-input-addon[data-disabled]:not([data-disabled="false"]) .bs-input-addon) > *::before {
197
199
  border-color: var(--input-border);
198
200
  }
199
201
 
@@ -10,11 +10,19 @@
10
10
  width: 100%;
11
11
  }
12
12
 
13
- :where([data-required]) {
13
+ :where([data-required]:not([data-required="false"])) {
14
14
  color: var(--bs-ink-red);
15
15
  }
16
16
 
17
- :where(label[data-disabled], [data-disabled] [data-required], [data-disabled] label) {
17
+ :where(label[data-disabled]:not([data-disabled="false"])) {
18
+ --label-color: var(--bs-ink-disabled);
19
+ }
20
+
21
+ :where([data-disabled]:not([data-disabled="false"]) [data-required]:not([data-required="false"])) {
22
+ --label-color: var(--bs-ink-disabled);
23
+ }
24
+
25
+ :where([data-disabled]:not([data-disabled="false"])) label {
18
26
  --label-color: var(--bs-ink-disabled);
19
27
  }
20
28
 
@@ -141,7 +141,7 @@
141
141
 
142
142
  /* Disabled state */
143
143
 
144
- .bs-switch:where([data-disabled]) {
144
+ .bs-switch:where([data-disabled]:not([data-disabled="false"])) {
145
145
  --ball-background: var(--bs-ink-disabled);
146
146
  --switch-background: var(--bs-bg-disabled);
147
147
  }
@@ -56,7 +56,7 @@ textarea {
56
56
  }
57
57
 
58
58
  /* Errors and Messages */
59
- :is(input, select, textarea):where([data-error]) {
59
+ :is(input, select, textarea):where([data-error]:not([data-error="false"])) {
60
60
  --input-border: var(--bs-ink-red);
61
61
  }
62
62
 
@@ -18,7 +18,7 @@
18
18
  z-index: 9999;
19
19
  }
20
20
 
21
- .bs-modal:where([data-shown]) {
21
+ .bs-modal:where([data-shown]:not([data-shown="false"])) {
22
22
  opacity: 1;
23
23
  }
24
24
 
@@ -14,7 +14,7 @@
14
14
  z-index: 9998;
15
15
  }
16
16
 
17
- .bs-overlay:where([data-shown]) {
17
+ .bs-overlay:where([data-shown]:not([data-shown="false"])) {
18
18
  opacity: 1;
19
19
  }
20
20
 
@@ -39,12 +39,12 @@
39
39
  color: var(--bs-ink-disabled);
40
40
  }
41
41
 
42
- .bs-pagination button:where([data-selected]) {
42
+ .bs-pagination button:where([data-selected]:not([data-selected="false"])) {
43
43
  background-color: var(--bs-blue-base);
44
44
  color: var(--bs-gray-50);
45
45
  }
46
46
 
47
- .bs-pagination:where([data-fixed]) {
47
+ .bs-pagination:where([data-fixed]:not([data-fixed="false"])) {
48
48
  background-color: var(--bs-bg-base-elevated);
49
49
  bottom: 0;
50
50
  left: 0;
@@ -41,7 +41,7 @@
41
41
  }
42
42
 
43
43
  /* ------------------------------ Background Colors ------------------------------ */
44
- :where(.box, [class*="bg-"]:not([class~="bg-white"])) .bs-pill:where(:not([data-variant^="live"], [data-active])) {
44
+ :where(.box, [class*="bg-"]:not([class~="bg-white"])) .bs-pill:where(:not([data-variant^="live"], [data-active]:not([data-active="false"]))) {
45
45
  --pill-background: var(--bs-bg-base);
46
46
  }
47
47
  :where(.box[data-invert]) .bs-pill {
@@ -133,24 +133,24 @@
133
133
  }
134
134
 
135
135
  /* ----- Filter Active Styles ----- */
136
- .bs-pill:where([data-variant^="filter"][data-active]) {
136
+ .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])) {
137
137
  --pill-background: var(--bs-blue-base);
138
138
  --pill-border: transparent;
139
139
  --pill-text: var(--bs-white);
140
140
  }
141
- .bs-pill:where([data-variant^="filter"][data-active]):is(:hover, :focus) {
141
+ .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])):is(:hover, :focus) {
142
142
  --pill-border: transparent;
143
143
  }
144
- :is(a, button).bs-pill:where([data-variant^="filter"][data-active]):is(:hover, :focus) {
144
+ :is(a, button).bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])):is(:hover, :focus) {
145
145
  --pill-background: var(--bs-blue-500);
146
146
  --pill-border: transparent;
147
147
  }
148
148
  /* White X */
149
- .bs-pill:where([data-variant^="filter"][data-active])::after {
149
+ .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"]))::after {
150
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='%23fff'/%3E%3C/svg%3E");
151
151
  }
152
152
  /* Black X */
153
- .bs-pill:where([data-variant^="filter"][data-active]):where(:disabled, [aria-disabled="true"])::after {
153
+ .bs-pill:where([data-variant^="filter"][data-active]:not([data-active="false"])):where(:disabled, [aria-disabled="true"])::after {
154
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='%230A0B19'/%3E%3C/svg%3E%0A");
155
155
  }
156
156
 
@@ -180,7 +180,8 @@
180
180
  background-color: var(--bs-bg-disabled);
181
181
  }
182
182
 
183
- .bs-pill:where([data-variant^="filter"]):not([data-active]):is(:disabled, [aria-disabled="true"]) {
183
+ .bs-pill:where([data-variant^="filter"]):not([data-active]):is(:disabled, [aria-disabled="true"]),
184
+ .bs-pill:where([data-variant^="filter"])[data-active="false"]:is(:disabled, [aria-disabled="true"]) {
184
185
  --pill-border: var(--bs-gray-400);
185
186
  }
186
187
 
@@ -17,7 +17,7 @@
17
17
  object-fit: cover;
18
18
  width: 100%;
19
19
  }
20
- .bs-profile-img:where([data-no-img]) img {
20
+ .bs-profile-img:where([data-no-img]:not([data-no-img="false"])) img {
21
21
  display: none;
22
22
  }
23
23
 
@@ -35,11 +35,11 @@
35
35
  box-shadow: var(--bs-shadow-profilePhoto);
36
36
  content: '';
37
37
  }
38
- .bs-profile-img:where([data-no-img])::before {
38
+ .bs-profile-img:where([data-no-img]:not([data-no-img="false"]))::before {
39
39
  display: none;
40
40
  }
41
41
  /* Initials */
42
- .bs-profile-img:where([data-no-img])::after {
42
+ .bs-profile-img:where([data-no-img]:not([data-no-img="false"]))::after {
43
43
  border: 1px solid currentColor;
44
44
  color: var(--bs-blue-500);
45
45
  content: attr(data-initials);
@@ -20,7 +20,7 @@
20
20
  z-index: 999;
21
21
  }
22
22
 
23
- .bs-toast:where([data-stacked]) {
23
+ .bs-toast:where([data-stacked]:not([data-stacked="false"])) {
24
24
  bottom: auto;
25
25
  left: auto;
26
26
  position: static;
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  /* Mobile - Toast comes up from bottom */
32
- .bs-toast:where([data-shown]) {
32
+ .bs-toast:where([data-shown]:not([data-shown="false"])) {
33
33
  opacity: 1;
34
34
  transform: translate(0, 0);
35
35
  }
@@ -70,7 +70,7 @@
70
70
  padding-top: 0.5rem;
71
71
  }
72
72
 
73
- .bs-toast-actions:where([data-stacked]) {
73
+ .bs-toast-actions:where([data-stacked]:not([data-stacked="false"])) {
74
74
  flex-direction: column-reverse;
75
75
  }
76
76
 
@@ -119,12 +119,12 @@
119
119
  transform: translate(calc(100% + 1.5rem), 0);
120
120
  }
121
121
 
122
- .bs-toast:where([data-shown]) {
122
+ .bs-toast:where([data-shown]:not([data-shown="false"])) {
123
123
  opacity: 1;
124
124
  transform: translate(0, 0);
125
125
  }
126
126
 
127
- .bs-toast-actions:where([data-stacked]) {
127
+ .bs-toast-actions:where([data-stacked]:not([data-stacked="false"])) {
128
128
  flex-direction: row;
129
129
  }
130
130
  }
@@ -135,10 +135,10 @@
135
135
  :where(.bs-tooltip[data-position="top-right"]):focus-within :where(.bs-tooltip-text),
136
136
  :where(.bs-tooltip[data-position="bottom-left"]):focus-within :where(.bs-tooltip-text),
137
137
  :where(.bs-tooltip[data-position="bottom-right"]):focus-within :where(.bs-tooltip-text),
138
- :where(.bs-tooltip[data-position="top-left"])[data-shown] :where(.bs-tooltip-text),
139
- :where(.bs-tooltip[data-position="top-right"])[data-shown] :where(.bs-tooltip-text),
140
- :where(.bs-tooltip[data-position="bottom-left"])[data-shown] :where(.bs-tooltip-text),
141
- :where(.bs-tooltip[data-position="bottom-right"])[data-shown] :where(.bs-tooltip-text) {
138
+ :where(.bs-tooltip[data-position="top-left"]:not([data-shown="false"]))[data-shown] :where(.bs-tooltip-text),
139
+ :where(.bs-tooltip[data-position="top-right"]:not([data-shown="false"]))[data-shown] :where(.bs-tooltip-text),
140
+ :where(.bs-tooltip[data-position="bottom-left"]:not([data-shown="false"]))[data-shown] :where(.bs-tooltip-text),
141
+ :where(.bs-tooltip[data-position="bottom-right"]:not([data-shown="false"]))[data-shown] :where(.bs-tooltip-text) {
142
142
  opacity: 1;
143
143
  transform: scale(1);
144
144
  }
@@ -148,8 +148,13 @@
148
148
  Don't display unless data-shown is present
149
149
  This must go last to properly override the other classes
150
150
  */
151
- :where(.bs-tooltip[data-disabled]:not([data-shown])):hover :where(.bs-tooltip-text),
152
- :where(.bs-tooltip[data-disabled]:not([data-shown])):focus-within :where(.bs-tooltip-text) {
151
+ :where(.bs-tooltip[data-disabled]:not([data-disabled="false"]):not([data-shown])):hover :where(.bs-tooltip-text),
152
+ :where(.bs-tooltip[data-disabled]:not([data-disabled="false"]):not([data-shown])):focus-within :where(.bs-tooltip-text) {
153
+ opacity: 0;
154
+ transform: scale(0);
155
+ }
156
+ :where(.bs-tooltip[data-shown="false"][data-disabled]:not([data-disabled="false"])):hover :where(.bs-tooltip-text),
157
+ :where(.bs-tooltip[data-shown="false"][data-disabled]:not([data-disabled="false"])):focus-within :where(.bs-tooltip-text) {
153
158
  opacity: 0;
154
159
  transform: scale(0);
155
160
  }
@@ -102,6 +102,6 @@
102
102
  }
103
103
 
104
104
  /* Accordion Group */
105
- :where(.bs-accordion[data-stacked]) + .bs-accordion:where([data-stacked]) {
105
+ :where(.bs-accordion[data-stacked]:not([data-stacked="false"])) + .bs-accordion:where([data-stacked]:not([data-stacked="false"])) {
106
106
  border-block-start-color: transparent;
107
107
  }
@@ -9,7 +9,7 @@
9
9
  padding-top: 1rem;
10
10
  }
11
11
 
12
- .bs-banner:where([data-dismissed]) {
12
+ .bs-banner:where([data-dismissed]:not([data-dismissed="false"])) {
13
13
  display: none;
14
14
  }
15
15
 
@@ -65,21 +65,21 @@
65
65
  }
66
66
 
67
67
  /* Ghost Buttons */
68
- .bs-button:where([data-ghost]) {
68
+ .bs-button:where([data-ghost]:not([data-ghost="false"])) {
69
69
  --btn-light: var(--bs-blue-10);
70
70
  --btn-secondary: var(--bs-blue-10);
71
71
  background-color: transparent;
72
72
  box-shadow: inset 0 0 0 1px var(--btn-main);
73
73
  color: var(--btn-main);
74
74
  }
75
- .bs-button:where([data-ghost])::before {
75
+ .bs-button:where([data-ghost]:not([data-ghost="false"]))::before {
76
76
  border-radius: 0.4375rem;
77
77
  }
78
- .bs-button:where([data-ghost]):hover,
79
- .bs-button:where([data-ghost]):focus {
78
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):hover,
79
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):focus {
80
80
  background-color: var(--btn-light);
81
81
  }
82
- .bs-button:where([data-ghost]):active {
82
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):active {
83
83
  box-shadow:
84
84
  inset 0 0 0 1px var(--btn-main),
85
85
  inset 0px 0px 4px 1px var(--btn-highlight);
@@ -118,7 +118,7 @@
118
118
  }
119
119
 
120
120
  /* Text Button */
121
- .bs-button:where([data-text]) {
121
+ .bs-button:where([data-text]:not([data-text="false"])) {
122
122
  --btn-padding: 0 0;
123
123
  --btn-focus-pseudo-width: calc(100% + 1.25rem); /* text btns don't have side padding, but we do want focus outline to look padded */
124
124
  background-color: transparent;
@@ -128,15 +128,15 @@
128
128
  font-weight: 400;
129
129
  line-height: 150%;
130
130
  }
131
- .bs-button:where([data-text]):hover {
131
+ .bs-button:where([data-text]:not([data-text="false"])):hover {
132
132
  color: var(--bs-blue-base);
133
133
  background-color: transparent;
134
134
  text-decoration: underline;
135
135
  }
136
- .bs-button:where([data-text]):has(svg):hover {
136
+ .bs-button:where([data-text]:not([data-text="false"])):has(svg):hover {
137
137
  text-decoration: none;
138
138
  }
139
- .bs-button:where([data-text]):active {
139
+ .bs-button:where([data-text]:not([data-text="false"])):active {
140
140
  box-shadow: none;
141
141
  }
142
142
 
@@ -144,29 +144,29 @@
144
144
  .bs-button:where([data-size^='sm']) {
145
145
  font-size: var(--bs-text-sm);
146
146
  }
147
- .bs-button:where([data-text][data-size^='sm']) {
147
+ .bs-button:where([data-size^='sm']):where([data-text]:not([data-text="false"])) {
148
148
  font-size: var(--bs-text-base);
149
149
  }
150
150
 
151
151
  /* Disabled Styling */
152
152
  :where(button:disabled),
153
153
  .bs-button:where(:disabled),
154
- .bs-button:where([aria-disabled='true']) /* for links as buttons */ {
154
+ .bs-button:where([aria-disabled="true"]) /* for links as buttons */ {
155
155
  pointer-events: none;
156
156
  }
157
157
  .bs-button:where(:disabled),
158
- .bs-button:where([aria-disabled='true']) {
158
+ .bs-button:where([aria-disabled="true"]) {
159
159
  color: var(--bs-gray-400);
160
160
  background-color: var(--bs-gray-200);
161
161
  }
162
162
 
163
- .bs-button:where([data-ghost]):disabled,
164
- .bs-button:where([data-ghost])[aria-disabled='true'] {
163
+ .bs-button:where([data-ghost]:not([data-ghost="false"])):disabled,
164
+ .bs-button:where([data-ghost]:not([data-ghost="false"]))[aria-disabled="true"] {
165
165
  box-shadow: inset 0 0 0 1px var(--bs-gray-400);
166
166
  }
167
167
 
168
- .bs-button:where([data-text]):disabled,
169
- .bs-button:where([data-text][aria-disabled='true']) {
168
+ .bs-button:where([data-text]:where([data-text])):disabled,
169
+ .bs-button:where([data-text]:where([data-text]))[aria-disabled="true"] {
170
170
  background-color: transparent;
171
171
  }
172
172
 
@@ -71,7 +71,7 @@ a.bs-circle-button {
71
71
  }
72
72
 
73
73
  /* Icon Buttons with Text */
74
- .bs-circle-button:where([data-text]) {
74
+ .bs-circle-button:where([data-text]:not([data-text="false"])) {
75
75
  --btn-border-radius: 0.5rem;
76
76
  }
77
77