@wwtdev/bsds-css 2.6.0 → 2.7.1

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.
@@ -0,0 +1,169 @@
1
+ @mixin chart() {
2
+ .bs-chart {
3
+ display: block;
4
+ height: 100%;
5
+ width: 100%;
6
+ }
7
+
8
+ .bs-chart :where(figure) {
9
+ column-gap: 2.5rem;
10
+ display: grid;
11
+ font-size: .875rem;
12
+ grid-template-areas: var(--chart-gridareas, "chart" "legend");
13
+ grid-template-columns: var(--chart-gridcols, 100%);
14
+ grid-template-rows: var(--chart-gridrows, minmax(0px, auto) minmax(0px, min-content));
15
+ height: 100%;
16
+ margin-block: unset;
17
+ margin-inline: unset;
18
+ position: relative;
19
+ width: 100%;
20
+ }
21
+
22
+ .bs-chart :where(figure > :first-child) {
23
+ grid-area: chart;
24
+ }
25
+
26
+ .bs-chart :where(figure > :last-child) {
27
+ grid-area: legend;
28
+ }
29
+
30
+ .bs-chart :where(figure > div) {
31
+ min-width: 100%;
32
+ width: 100%;
33
+ }
34
+ .bs-chart :where(canvas) {
35
+ width: 100%;
36
+ }
37
+
38
+ /* --------- Legend Styles --------- */
39
+
40
+ .bs-chart :where(figcaption) {
41
+ background-color: var(--legend-bg-color, transparent);
42
+ border-radius: .5rem;
43
+ border: 1px solid var(--legend-border-color, transparent);
44
+ clip-path: var(--legend-clip-path, none);
45
+ max-height: var(--legend-max-height, 100%);
46
+ overflow-y: var(--legend-overflow-y, hidden);
47
+ }
48
+
49
+ .bs-chart :where(figcaption[data-hidden="true"]) {
50
+ border: 0;
51
+ clip: rect(0 0 0 0);
52
+ height: 1px;
53
+ margin: 0;
54
+ overflow: hidden;
55
+ padding: 0;
56
+ position: absolute;
57
+ white-space: nowrap;
58
+ width: 1px;
59
+ }
60
+
61
+ .bs-chart :where(ul) {
62
+ align-items: var(--legend-flexalign, center);
63
+ display: flex;
64
+ column-gap: 2.5rem;
65
+ flex-direction: var(--legend-flexdir, row);
66
+ flex-wrap: var(--legend-flexwrap, wrap);
67
+ padding-block: var(--legend-padding-block, .25rem);
68
+ /* cjs-legend-padding is set dynamically by chart.js for bar charts */
69
+ padding-inline: var(--legend-padding-inline, var(--cjs-legend-padding-inline, 2.5rem));
70
+ row-gap: .75rem;
71
+ }
72
+
73
+ .bs-chart :where(li, li:focus, li:active, li:focus-visible) {
74
+ align-items: center;
75
+ cursor: pointer;
76
+ display: flex;
77
+ flex-direction: row;
78
+ outline: 0;
79
+ position: relative;
80
+ width: var(--legend-item-width, auto);
81
+ }
82
+
83
+ .bs-chart :where(li)::after {
84
+ border: solid var(--focus-color, transparent) 2px;
85
+ border-radius: 0.25rem;
86
+ content: '';
87
+ display: block;
88
+ inset: -.25rem;
89
+ position: absolute;
90
+ }
91
+
92
+ .bs-chart :where(li:focus-visible) {
93
+ --focus-color: var(--bs-blue-base);
94
+ }
95
+
96
+ .bs-chart :where(li span) {
97
+ background: var(--legend-item-box-fill);
98
+ border-color: var(--legend-item-box-stroke);
99
+ border-radius: var(--legend-item-swatch-radius, 3px);
100
+ display: inline-block;
101
+ height: var(--bs-text-f-md);
102
+ margin-right: 10px;
103
+ width: var(--bs-text-f-md);
104
+ }
105
+
106
+ .bs-chart :where(li p) {
107
+ color: var(--legend-item-text-color);
108
+ font-size: var(--bs-text-f-md);
109
+ margin: 0;
110
+ padding: 0;
111
+ text-decoration: var(--legend-item-text-decoration);
112
+ }
113
+
114
+ /* --------- Chart Layout Variants --------- */
115
+ /*
116
+ For now, per design team instructions, these are NOT responsive as we're only to expose these
117
+ variants for a very specific, single use-case that involves horizontal scroll...
118
+ If we want to make these responsive in the future, can wrap in media query.
119
+ */
120
+ .bs-chart:where([data-layout="chart-right"], [data-layout="chart-left"]) {
121
+ --chart-gridrows: minmax(0px, auto);
122
+ --legend-bg-color: var(--bs-bg-base);
123
+ --legend-border-color: var(--bs-gray-light);
124
+ --legend-clip-path: border-box;
125
+ --legend-flexalign: start;
126
+ --legend-flexdir: column;
127
+ --legend-flexwrap: nowrap;
128
+ --legend-item-width: 100%;
129
+ --legend-max-height: 17.1875rem;
130
+ --legend-overflow-y: auto;
131
+ --legend-padding-block: .75rem;
132
+ --legend-padding-inline: .75rem;
133
+ }
134
+
135
+ .bs-chart:where([data-layout="chart-left"]) {
136
+ --chart-gridareas: "chart legend";
137
+ --chart-gridcols: auto minmax(150px, auto);
138
+ }
139
+
140
+ .bs-chart:where([data-layout="chart-right"]) {
141
+ --chart-gridareas: "legend chart";
142
+ --chart-gridcols: minmax(150px, auto) auto;
143
+ }
144
+
145
+ .bs-chart-table {
146
+ border: 0;
147
+ clip: rect(0 0 0 0);
148
+ height: 1px;
149
+ margin: 0;
150
+ overflow: hidden;
151
+ padding: 0;
152
+ position: absolute;
153
+ white-space: nowrap;
154
+ width: 1px;
155
+ }
156
+ /*
157
+ uncomment to make visible when testing
158
+ .bs-chart-table {
159
+ clip: none;
160
+ overflow: auto;
161
+ height: auto;
162
+ position: relative;
163
+ width: auto;
164
+ }
165
+
166
+ */
167
+
168
+ }
169
+
@@ -166,9 +166,9 @@ a.bs-circle-button {
166
166
  /* Color Variants */
167
167
  .bs-circle-button:where([data-variant^="color"]) {
168
168
  --btn-focus-inset: .125rem;
169
- --btn-gap: 0;
169
+ --btn-gap: .5rem;
170
170
  --btn-icon-bg-color: transparent;
171
- --btn-icon-padding: .5rem;
171
+ --btn-icon-padding: 0;
172
172
  --btn-icon-size: .75rem; /* stays the same for all sizes */
173
173
  --btn-icon-stroke-color: var(--btn-text-color);
174
174
  --btn-secondary: transparent;
@@ -150,5 +150,18 @@
150
150
  }
151
151
  }
152
152
 
153
+ /* Vue Transition Styles - Only used in Vue component */
154
+ .bs-dropdown:where(.bs-dropdown-enter-from),
155
+ .bs-dropdown:where(.bs-dropdown-leave-to) {
156
+ opacity: 0;
157
+ transform: var(--dropdown-transform);
158
+ }
159
+
160
+ .bs-dropdown:where(.bs-dropdown-enter-to),
161
+ .bs-dropdown:where(.bs-dropdown-leave-from) {
162
+ opacity: 1;
163
+ transform: translate(0, 0);
164
+ }
165
+
153
166
  }
154
167
 
@@ -0,0 +1,71 @@
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
+ transform: translateX(0);
39
+ }
40
+
41
+ .bs-flyout :where(.bs-flyout-close-container) {
42
+ display: flex;
43
+ justify-content: flex-end;
44
+ }
45
+
46
+ .bs-flyout :where(.bs-flyout-close-container button) {
47
+ cursor: pointer;
48
+ outline-offset: 2px;
49
+ padding: 2px;
50
+ }
51
+
52
+ /* Vue Transition Styles - Only used in Vue component */
53
+ .bs-flyout:where(.bs-flyout-enter-from),
54
+ .bs-flyout:where(.bs-flyout-leave-to) {
55
+ opacity: 0;
56
+ transform: translateX(-100%);
57
+ }
58
+
59
+ .bs-flyout:where([data-position="right"].bs-flyout-enter-from),
60
+ .bs-flyout:where([data-position="right"].bs-flyout-leave-to) {
61
+ transform: translateX(100%);
62
+ }
63
+
64
+ .bs-flyout:where(.bs-flyout-enter-to),
65
+ .bs-flyout:where(.bs-flyout-leave-from) {
66
+ opacity: 1;
67
+ transform: translateX(0);
68
+ }
69
+
70
+ }
71
+
@@ -15,7 +15,7 @@
15
15
  }
16
16
  :where(.box[data-invert]) :is(input, textarea, select):where(:focus-visible),
17
17
  :where(.box[data-invert]) :is(.bs-input, .bs-textarea, .bs-select):where(:focus-visible) {
18
- --offset-color: var(--bs-bg-invert-base);
18
+ --offset-color: var(--bs-bg-invert-to-base);
19
19
  }
20
20
 
21
21
  /* Errors and Messages */
@@ -173,7 +173,9 @@ and issues with box-sizing
173
173
  }
174
174
 
175
175
  /* -------- Hover styles -------- */
176
- .bs-input-addon:hover {
176
+ .bs-input-addon:hover,
177
+ :where(label):hover + .bs-input-addon,
178
+ :where(label):hover + * .bs-input-addon:where(:not(label .bs-input-addon, label + .bs-input-addon)) {
177
179
  --input-bg: var(--bs-bg-input-hover);
178
180
  }
179
181
 
@@ -2,6 +2,7 @@
2
2
  :where(label, legend),
3
3
  label:where(.bs-label) {
4
4
  display: inline-block;
5
+ position: relative;
5
6
  width: 100%;
6
7
  }
7
8
 
@@ -29,5 +30,11 @@ label:where(.bs-label) {
29
30
  --label-color: var(--bs-ink-disabled);
30
31
  }
31
32
 
33
+ .bs-label:where(:has(+ input), :has(+ .bs-input-addon), :has(+ :not(label) .bs-input-addon))::after {
34
+ content: '';
35
+ inset: 0 0 -.25rem 0;
36
+ position: absolute;
37
+ }
38
+
32
39
  }
33
40
 
@@ -137,7 +137,7 @@
137
137
  }
138
138
  :where(.box[data-invert]) .bs-switch :where(input:focus-visible) + :where(span),
139
139
  :where(.box[data-invert]) .bs-switch:where(:focus-visible) :where(button span) {
140
- --offset-color: var(--bs-bg-invert-base);
140
+ --offset-color: var(--bs-bg-invert-to-base);
141
141
  }
142
142
 
143
143
  /* Disabled state */
@@ -56,5 +56,16 @@
56
56
  }
57
57
  }
58
58
 
59
+ /* Vue Transition Styles - Only used in Vue component */
60
+ .bs-modal:where(.bs-modal-enter-from),
61
+ .bs-modal:where(.bs-modal-leave-to) {
62
+ opacity: 0;
63
+ }
64
+
65
+ .bs-modal:where(.bs-modal-enter-to),
66
+ .bs-modal:where(.bs-modal-leave-from) {
67
+ opacity: 1;
68
+ }
69
+
59
70
  }
60
71
 
@@ -19,5 +19,16 @@
19
19
  opacity: 1;
20
20
  }
21
21
 
22
+ /* Vue Transition Styles - Only used in Vue component */
23
+ .bs-overlay:where(.bs-overlay-enter-from),
24
+ .bs-overlay:where(.bs-overlay-leave-to) {
25
+ opacity: 0;
26
+ }
27
+
28
+ .bs-overlay:where(.bs-overlay-enter-to),
29
+ .bs-overlay:where(.bs-overlay-leave-from) {
30
+ opacity: 1;
31
+ }
32
+
22
33
  }
23
34
 
@@ -66,7 +66,7 @@
66
66
  --pill-background: var(--bs-bg-base);
67
67
  }
68
68
  :where(.box[data-invert]) .bs-pill {
69
- --pill-background: var(--bs-bg-invert-base-subtle);
69
+ --pill-background: var(--bs-bg-invert-to-base-subtle);
70
70
  --pill-text: var(--bs-gray-100);
71
71
  }
72
72
  :where(.box[data-invert]) :is(a, button).bs-pill:is(:hover, :focus) {
@@ -1,6 +1,8 @@
1
1
  @mixin toast() {
2
2
  /* Base Toast Styles */
3
3
  .bs-toast {
4
+ --toast-transform: translate(0, calc(100% + 1.5rem));
5
+
4
6
  background-color: var(--bs-bg-base-elevated);
5
7
  border-top: 4px solid var(--bs-blue-base);
6
8
  bottom: 1.5rem;
@@ -11,7 +13,7 @@
11
13
  opacity: 0;
12
14
  position: fixed;
13
15
  right: 0;
14
- transform: translate(0, calc(100% + 1.5rem));
16
+ transform: var(--toast-transform);
15
17
  transition-duration: 200ms;
16
18
  transition-property: transform, opacity;
17
19
  transition-timing-function: ease;
@@ -111,12 +113,13 @@
111
113
 
112
114
  @media (min-width: 440px) {
113
115
  .bs-toast {
116
+ --toast-transform: translate(calc(100% + 1.5rem), 0);
117
+
114
118
  left: auto;
115
119
  margin-left: 0;
116
120
  margin-right: 0;
117
121
  opacity: 0;
118
122
  right: 1.5rem;
119
- transform: translate(calc(100% + 1.5rem), 0);
120
123
  }
121
124
 
122
125
  .bs-toast:where([data-shown]:not([data-shown="false"])) {
@@ -129,5 +132,18 @@
129
132
  }
130
133
  }
131
134
 
135
+ /* Vue Transition Styles - Only used in Vue component */
136
+ .bs-toast:where(.bs-toast-enter-from),
137
+ .bs-toast:where(.bs-toast-leave-to) {
138
+ opacity: 0;
139
+ transform: var(--toast-transform);
140
+ }
141
+
142
+ .bs-toast:where(.bs-toast-enter-to),
143
+ .bs-toast:where(.bs-toast-leave-from) {
144
+ opacity: 1;
145
+ transform: translate(0, 0);
146
+ }
147
+
132
148
  }
133
149
 
@@ -0,0 +1,165 @@
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
+ */
@@ -165,9 +165,9 @@ a.bs-circle-button {
165
165
  /* Color Variants */
166
166
  .bs-circle-button:where([data-variant^="color"]) {
167
167
  --btn-focus-inset: .125rem;
168
- --btn-gap: 0;
168
+ --btn-gap: .5rem;
169
169
  --btn-icon-bg-color: transparent;
170
- --btn-icon-padding: .5rem;
170
+ --btn-icon-padding: 0;
171
171
  --btn-icon-size: .75rem; /* stays the same for all sizes */
172
172
  --btn-icon-stroke-color: var(--btn-text-color);
173
173
  --btn-secondary: transparent;
@@ -148,3 +148,16 @@
148
148
  display: none;
149
149
  }
150
150
  }
151
+
152
+ /* Vue Transition Styles - Only used in Vue component */
153
+ .bs-dropdown:where(.bs-dropdown-enter-from),
154
+ .bs-dropdown:where(.bs-dropdown-leave-to) {
155
+ opacity: 0;
156
+ transform: var(--dropdown-transform);
157
+ }
158
+
159
+ .bs-dropdown:where(.bs-dropdown-enter-to),
160
+ .bs-dropdown:where(.bs-dropdown-leave-from) {
161
+ opacity: 1;
162
+ transform: translate(0, 0);
163
+ }
@@ -0,0 +1,67 @@
1
+ .bs-flyout {
2
+ background-color: var(--bs-bg-base-to-light);
3
+ box-shadow: var(--bs-shadow-drawerRight);
4
+ height: 100%;
5
+ left: 0;
6
+ margin: 0;
7
+ max-width: 100vw;
8
+ opacity: 0;
9
+ padding: 1.5rem;
10
+ position: fixed;
11
+ top: 0;
12
+ transform: translateX(-100%);
13
+ transition-duration: 300ms;
14
+ transition-property: opacity, transform;
15
+ transition-timing-function: ease;
16
+ width: 360px;
17
+ z-index: 1000;
18
+ }
19
+
20
+ .bs-flyout:where([data-absolute="true"]) {
21
+ position: absolute;
22
+ }
23
+
24
+ .bs-flyout:where([data-position="right"]) {
25
+ box-shadow: var(--bs-shadow-drawerLeft);
26
+ left: auto;
27
+ right: 0;
28
+ transform: translateX(100%);
29
+ }
30
+
31
+ .bs-flyout:where([data-size="lg"]) {
32
+ width: 535px;
33
+ }
34
+
35
+ .bs-flyout:where([data-shown="true"]) {
36
+ opacity: 1;
37
+ transform: translateX(0);
38
+ }
39
+
40
+ .bs-flyout :where(.bs-flyout-close-container) {
41
+ display: flex;
42
+ justify-content: flex-end;
43
+ }
44
+
45
+ .bs-flyout :where(.bs-flyout-close-container button) {
46
+ cursor: pointer;
47
+ outline-offset: 2px;
48
+ padding: 2px;
49
+ }
50
+
51
+ /* Vue Transition Styles - Only used in Vue component */
52
+ .bs-flyout:where(.bs-flyout-enter-from),
53
+ .bs-flyout:where(.bs-flyout-leave-to) {
54
+ opacity: 0;
55
+ transform: translateX(-100%);
56
+ }
57
+
58
+ .bs-flyout:where([data-position="right"].bs-flyout-enter-from),
59
+ .bs-flyout:where([data-position="right"].bs-flyout-leave-to) {
60
+ transform: translateX(100%);
61
+ }
62
+
63
+ .bs-flyout:where(.bs-flyout-enter-to),
64
+ .bs-flyout:where(.bs-flyout-leave-from) {
65
+ opacity: 1;
66
+ transform: translateX(0);
67
+ }
@@ -14,7 +14,7 @@
14
14
  }
15
15
  :where(.box[data-invert]) :is(input, textarea, select):where(:focus-visible),
16
16
  :where(.box[data-invert]) :is(.bs-input, .bs-textarea, .bs-select):where(:focus-visible) {
17
- --offset-color: var(--bs-bg-invert-base);
17
+ --offset-color: var(--bs-bg-invert-to-base);
18
18
  }
19
19
 
20
20
  /* Errors and Messages */
@@ -172,7 +172,9 @@ and issues with box-sizing
172
172
  }
173
173
 
174
174
  /* -------- Hover styles -------- */
175
- .bs-input-addon:hover {
175
+ .bs-input-addon:hover,
176
+ :where(label):hover + .bs-input-addon,
177
+ :where(label):hover + * .bs-input-addon:where(:not(label .bs-input-addon, label + .bs-input-addon)) {
176
178
  --input-bg: var(--bs-bg-input-hover);
177
179
  }
178
180