@innovaccer/design-system 4.23.0 → 4.25.0
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.
- package/CHANGELOG.md +115 -0
- package/README.md +3 -3
- package/css/dist/index.css +1374 -348
- package/css/dist/index.css.map +1 -1
- package/css/src/ai-components/button.module.css +4 -24
- package/css/src/ai-components/chip.module.css +5 -30
- package/css/src/ai-components/iconButton.module.css +2 -12
- package/css/src/components/avatarGroup.module.css +7 -0
- package/css/src/components/avatarSelection.module.css +22 -0
- package/css/src/components/badge.module.css +3 -3
- package/css/src/components/button.module.css +187 -18
- package/css/src/components/calendar.module.css +49 -0
- package/css/src/components/card.module.css +14 -0
- package/css/src/components/chatBubble.module.css +6 -1
- package/css/src/components/chatInput.module.css +14 -3
- package/css/src/components/chip.module.css +65 -13
- package/css/src/components/datePicker.module.css +9 -0
- package/css/src/components/dateRangePicker.module.css +5 -0
- package/css/src/components/dropdown.module.css +7 -0
- package/css/src/components/dropzone.module.css +36 -0
- package/css/src/components/grid.module.css +29 -12
- package/css/src/components/horizontalNav.module.css +17 -6
- package/css/src/components/input.module.css +1 -0
- package/css/src/components/link.module.css +59 -6
- package/css/src/components/linkButton.module.css +82 -10
- package/css/src/components/listbox.module.css +85 -1
- package/css/src/components/metricInput.module.css +89 -35
- package/css/src/components/modal.module.css +8 -0
- package/css/src/components/pageHeader.module.css +103 -8
- package/css/src/components/segmentedControl.module.css +1 -1
- package/css/src/components/select.module.css +7 -0
- package/css/src/components/selectionCard.module.css +38 -0
- package/css/src/components/sidesheet.module.css +8 -0
- package/css/src/components/slider.module.css +21 -0
- package/css/src/components/switch.module.css +39 -0
- package/css/src/components/table.module.css +32 -1
- package/css/src/components/tabs.module.css +20 -0
- package/css/src/components/timePicker.module.css +4 -0
- package/css/src/components/toast.module.css +10 -0
- package/css/src/components/tooltip.module.css +1 -0
- package/css/src/tokens/index.css +156 -156
- package/css/src/utils/utility.css +4 -0
- package/css/src/variables/index.css +116 -1
- package/dist/brotli/index.js +1 -1
- package/dist/brotli/index.js.br +0 -0
- package/dist/cjs/index.js +1 -1
- package/dist/core/components/atoms/heading/Heading.d.ts +1 -0
- package/dist/core/components/atoms/link/Link.d.ts +4 -2
- package/dist/core/components/atoms/linkButton/LinkButton.d.ts +1 -0
- package/dist/core/components/atoms/message/Message.d.ts +2 -0
- package/dist/core/components/atoms/outsideClick/OutsideClick.d.ts +1 -0
- package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +1 -0
- package/dist/core/components/atoms/progressBar/ProgressBar.d.ts +2 -0
- package/dist/core/components/atoms/progressRing/ProgressRing.d.ts +3 -0
- package/dist/core/components/atoms/segmentedControl/SegmentedControl.d.ts +2 -0
- package/dist/core/components/atoms/subheading/Subheading.d.ts +1 -0
- package/dist/core/components/atoms/text/Text.d.ts +1 -0
- package/dist/core/components/atoms/toast/Toast.d.ts +3 -0
- package/dist/core/components/molecules/chat/Chat.d.ts +3 -0
- package/dist/core/components/molecules/chat/chatBubble/IncomingBubble.d.ts +1 -0
- package/dist/core/components/molecules/chat/chatBubble/OutgoingBubble.d.ts +1 -0
- package/dist/core/components/molecules/chat/chatInput/ChatInput.d.ts +1 -0
- package/dist/core/components/molecules/chat/unreadMessage/UnreadMessage.d.ts +3 -0
- package/dist/core/components/molecules/dropzone/Dropzone.d.ts +1 -0
- package/dist/core/components/molecules/editableInput/EditableInput.d.ts +4 -0
- package/dist/core/components/molecules/emptyState/EmptyState.d.ts +1 -0
- package/dist/core/components/molecules/emptyState/EmptyStateTitle.d.ts +1 -0
- package/dist/core/components/molecules/inputMask/InputMask.d.ts +1 -0
- package/dist/core/components/molecules/modal/ModalHeader.d.ts +1 -0
- package/dist/core/components/molecules/overlayHeader/OverlayHeader.d.ts +1 -0
- package/dist/core/components/molecules/popover/Popover.d.ts +1 -0
- package/dist/core/components/organisms/grid/Grid.d.ts +1 -0
- package/dist/core/components/organisms/grid/GridContext.d.ts +1 -0
- package/dist/core/components/organisms/grid/VirtualList.d.ts +1 -0
- package/dist/core/components/organisms/listbox/reorderList/Draggable.d.ts +11 -0
- package/dist/core/components/organisms/menu/SubMenuContext.d.ts +1 -0
- package/dist/core/components/organisms/pageHeader/utils.d.ts +9 -9
- package/dist/core/components/organisms/textField/TextFieldCommon.d.ts +1 -0
- package/dist/core/components/organisms/verticalNav/VerticalNav.d.ts +2 -0
- package/dist/esm/index.js +2058 -874
- package/dist/gzip/index.js +1 -1
- package/dist/gzip/index.js.gz +0 -0
- package/dist/index.js +1872 -745
- package/dist/index.js.map +1 -1
- package/dist/index.umd.css +1371 -345
- package/dist/index.umd.js +1 -1
- package/dist/types/tsconfig.type.tsbuildinfo +173 -134
- package/package.json +1 -1
|
@@ -74,6 +74,11 @@
|
|
|
74
74
|
clip-path: polygon(0 0, 100% 0, 0 100%);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
.Listbox-item--tight.Listbox-item--selected::before {
|
|
78
|
+
top: var(--spacing-05);
|
|
79
|
+
left: var(--spacing-05);
|
|
80
|
+
}
|
|
81
|
+
|
|
77
82
|
.Listbox-item--selected:hover {
|
|
78
83
|
background: color-mod(var(--primary-lighter) a(var(--opacity-12)));
|
|
79
84
|
}
|
|
@@ -122,6 +127,11 @@
|
|
|
122
127
|
clip-path: polygon(0 0, 100% 0, 0 100%);
|
|
123
128
|
}
|
|
124
129
|
|
|
130
|
+
.Listbox-item--tight.Listbox-item--activated::before {
|
|
131
|
+
top: var(--spacing-05);
|
|
132
|
+
left: var(--spacing-05);
|
|
133
|
+
}
|
|
134
|
+
|
|
125
135
|
/* Listbox type - description */
|
|
126
136
|
|
|
127
137
|
.Listbox-item--description:focus-visible {
|
|
@@ -137,6 +147,10 @@
|
|
|
137
147
|
|
|
138
148
|
/* Listbox type - draggable */
|
|
139
149
|
|
|
150
|
+
.Listbox-item--draggable:hover {
|
|
151
|
+
background-color: var(--secondary-lightest);
|
|
152
|
+
}
|
|
153
|
+
|
|
140
154
|
.Listbox-item--draggable:focus-visible {
|
|
141
155
|
outline: var(--border-width-05) solid var(--primary-focus);
|
|
142
156
|
outline-offset: calc(-1 * var(--border-width-05));
|
|
@@ -144,13 +158,83 @@
|
|
|
144
158
|
|
|
145
159
|
.Listbox-item--drag-icon {
|
|
146
160
|
cursor: grab;
|
|
147
|
-
|
|
161
|
+
padding: var(--spacing-10);
|
|
162
|
+
margin-right: calc(var(--spacing-20) - var(--spacing-10));
|
|
163
|
+
margin-left: calc(-1 * var(--spacing-10));
|
|
164
|
+
border-radius: var(--border-radius-10);
|
|
165
|
+
transition: background-color var(--duration--moderate-01) var(--standard-productive-curve),
|
|
166
|
+
color var(--duration--moderate-01) var(--standard-productive-curve),
|
|
167
|
+
box-shadow var(--duration--moderate-01) var(--standard-productive-curve);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.Listbox-item--drag-icon:focus-visible {
|
|
171
|
+
outline: var(--border-width-05) solid var(--primary-focus);
|
|
172
|
+
outline-offset: var(--spacing-05);
|
|
148
173
|
}
|
|
149
174
|
|
|
150
175
|
.Listbox-item--drag-icon:hover {
|
|
176
|
+
background-color: var(--secondary);
|
|
151
177
|
color: var(--inverse);
|
|
152
178
|
}
|
|
153
179
|
|
|
154
180
|
.Listbox-item--drag-icon:active {
|
|
181
|
+
background-color: var(--secondary-dark);
|
|
182
|
+
color: var(--primary);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/* Drag and reorder interaction states */
|
|
186
|
+
|
|
187
|
+
.Listbox-item--sticky-picked,
|
|
188
|
+
.Listbox-item--drag-picked {
|
|
189
|
+
background-color: var(--text-white);
|
|
190
|
+
box-shadow: var(--shadow-l);
|
|
191
|
+
rotate: 0.5deg;
|
|
192
|
+
cursor: grabbing;
|
|
193
|
+
z-index: 1000;
|
|
194
|
+
position: relative;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.Listbox-item--sticky-picked .Listbox-item--selected,
|
|
198
|
+
.Listbox-item--drag-picked .Listbox-item--selected {
|
|
199
|
+
background-color: color-mod(var(--primary-lightest) a(var(--opacity-12)));
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.Listbox-item--sticky-picked .Listbox-item--drag-icon {
|
|
203
|
+
background-color: var(--primary);
|
|
204
|
+
color: var(--text-white);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.Listbox-item--drag-picked .Listbox-item--drag-icon {
|
|
208
|
+
background-color: var(--primary-ultra-light);
|
|
155
209
|
color: var(--primary);
|
|
210
|
+
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--primary);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.Listbox-aria-live {
|
|
214
|
+
position: absolute;
|
|
215
|
+
width: var(--spacing-2-5);
|
|
216
|
+
height: var(--spacing-2-5);
|
|
217
|
+
padding: 0;
|
|
218
|
+
margin: calc(-1 * var(--spacing-2-5));
|
|
219
|
+
overflow: hidden;
|
|
220
|
+
clip: rect(0, 0, 0, 0);
|
|
221
|
+
white-space: nowrap;
|
|
222
|
+
border: 0;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@media (forced-colors: active) {
|
|
226
|
+
.Listbox-item--description:focus-visible {
|
|
227
|
+
outline: var(--border-width-05) solid Highlight;
|
|
228
|
+
outline-offset: calc(-1 * var(--border-width-05));
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.Listbox-item--disabled {
|
|
232
|
+
opacity: 1;
|
|
233
|
+
color: GrayText;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.Listbox-item--selected::before,
|
|
237
|
+
.Listbox-item--activated::before {
|
|
238
|
+
background-color: Highlight;
|
|
239
|
+
}
|
|
156
240
|
}
|
|
@@ -9,25 +9,21 @@
|
|
|
9
9
|
align-items: center;
|
|
10
10
|
box-sizing: border-box;
|
|
11
11
|
border-radius: var(--border-radius-10);
|
|
12
|
-
|
|
12
|
+
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
|
|
13
13
|
background: var(--white);
|
|
14
|
-
overflow: hidden;
|
|
15
14
|
transition: var(--duration--fast-01) var(--standard-productive-curve);
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
.MetricInput--regular {
|
|
19
18
|
height: var(--spacing-80);
|
|
20
|
-
padding-left: var(--spacing-30);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
.MetricInput--large {
|
|
24
22
|
height: 40px;
|
|
25
|
-
padding-left: var(--spacing-40);
|
|
26
23
|
}
|
|
27
24
|
|
|
28
25
|
.MetricInput--small {
|
|
29
26
|
height: var(--spacing-60);
|
|
30
|
-
padding-left: var(--spacing-20);
|
|
31
27
|
}
|
|
32
28
|
|
|
33
29
|
.MetricInput:hover {
|
|
@@ -37,9 +33,12 @@
|
|
|
37
33
|
|
|
38
34
|
.MetricInput:focus-within {
|
|
39
35
|
background: var(--white);
|
|
40
|
-
|
|
36
|
+
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.MetricInput:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
|
|
41
40
|
outline: var(--border-width-05) solid var(--primary-focus);
|
|
42
|
-
outline-offset: var(--spacing-
|
|
41
|
+
outline-offset: var(--spacing-05);
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
.MetricInput:focus-within .MetricInput-icon {
|
|
@@ -48,13 +47,13 @@
|
|
|
48
47
|
|
|
49
48
|
.MetricInput--disabled {
|
|
50
49
|
background: var(--secondary-lightest);
|
|
51
|
-
|
|
50
|
+
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary-light);
|
|
52
51
|
pointer-events: none;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
.MetricInput--readOnly {
|
|
56
55
|
background: var(--secondary-lightest);
|
|
57
|
-
|
|
56
|
+
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
|
|
58
57
|
pointer-events: none;
|
|
59
58
|
}
|
|
60
59
|
|
|
@@ -65,19 +64,46 @@
|
|
|
65
64
|
.MetricInput--error,
|
|
66
65
|
.MetricInput--error:hover {
|
|
67
66
|
background: var(--white);
|
|
68
|
-
|
|
67
|
+
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--alert);
|
|
69
68
|
}
|
|
70
69
|
|
|
71
70
|
.MetricInput--error:focus-within {
|
|
72
|
-
|
|
71
|
+
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.MetricInput--error:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
|
|
73
75
|
outline: var(--border-width-05) solid var(--alert);
|
|
74
|
-
outline-offset: var(--spacing-
|
|
76
|
+
outline-offset: var(--spacing-05);
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
.MetricInput--error:focus-within .MetricInput-icon {
|
|
78
80
|
color: var(--alert);
|
|
79
81
|
}
|
|
80
82
|
|
|
83
|
+
/* Content wrapper — holds icon, prefix, input, suffix */
|
|
84
|
+
.MetricInput-content {
|
|
85
|
+
flex: 1;
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
min-width: 0;
|
|
89
|
+
overflow: hidden;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.MetricInput-content--regular {
|
|
93
|
+
padding: var(--spacing-15) var(--spacing-15);
|
|
94
|
+
gap: var(--spacing-05);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.MetricInput-content--large {
|
|
98
|
+
padding: var(--spacing-20) var(--spacing-15);
|
|
99
|
+
gap: var(--spacing-15);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.MetricInput-content--small {
|
|
103
|
+
padding: var(--spacing-10) var(--spacing-15);
|
|
104
|
+
gap: var(--spacing-05);
|
|
105
|
+
}
|
|
106
|
+
|
|
81
107
|
.MetricInput-input {
|
|
82
108
|
display: flex;
|
|
83
109
|
width: 100%;
|
|
@@ -141,23 +167,14 @@
|
|
|
141
167
|
margin: 0;
|
|
142
168
|
}
|
|
143
169
|
|
|
144
|
-
|
|
145
|
-
border-left: var(--border);
|
|
146
|
-
box-sizing: border-box;
|
|
147
|
-
border-radius: 0;
|
|
148
|
-
background: transparent;
|
|
149
|
-
display: flex;
|
|
150
|
-
flex-direction: column;
|
|
151
|
-
height: 100%;
|
|
152
|
-
flex-shrink: 0;
|
|
153
|
-
overflow: hidden;
|
|
154
|
-
}
|
|
155
|
-
|
|
170
|
+
/* Arrow buttons (decrement on left, increment on right) */
|
|
156
171
|
.MetricInput-arrowButton {
|
|
157
|
-
|
|
158
|
-
|
|
172
|
+
flex-shrink: 0;
|
|
173
|
+
align-self: stretch;
|
|
174
|
+
width: var(--spacing-60);
|
|
159
175
|
background: var(--secondary-light);
|
|
160
176
|
color: var(--inverse);
|
|
177
|
+
border: none;
|
|
161
178
|
cursor: pointer;
|
|
162
179
|
display: flex;
|
|
163
180
|
align-items: center;
|
|
@@ -165,7 +182,16 @@
|
|
|
165
182
|
padding: 0;
|
|
166
183
|
margin: 0;
|
|
167
184
|
user-select: none;
|
|
168
|
-
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.MetricInput-arrowButton--left {
|
|
188
|
+
border-right: var(--border);
|
|
189
|
+
border-radius: var(--border-radius-10) 0 0 var(--border-radius-10);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.MetricInput-arrowButton--right {
|
|
193
|
+
border-left: var(--border);
|
|
194
|
+
border-radius: 0 var(--border-radius-10) var(--border-radius-10) 0;
|
|
169
195
|
}
|
|
170
196
|
|
|
171
197
|
.MetricInput-arrowButton:hover {
|
|
@@ -178,14 +204,42 @@
|
|
|
178
204
|
|
|
179
205
|
.MetricInput-arrowButton:focus {
|
|
180
206
|
outline: 0;
|
|
181
|
-
box-shadow: var(--shadow-spread) var(--secondary-shadow);
|
|
182
207
|
}
|
|
183
208
|
|
|
184
|
-
.MetricInput-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
209
|
+
.MetricInput-arrowButton:focus-visible {
|
|
210
|
+
outline: var(--border-width-05) solid var(--primary-focus);
|
|
211
|
+
outline-offset: var(--spacing-05);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@media (forced-colors: active) {
|
|
215
|
+
/* box-shadow is stripped — restore a real border for the wrapper boundary */
|
|
216
|
+
.MetricInput {
|
|
217
|
+
border: var(--border-width-2-5) solid ButtonText;
|
|
218
|
+
box-shadow: none;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.MetricInput--disabled {
|
|
222
|
+
border-color: GrayText;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/* Wrapper focus rings */
|
|
226
|
+
.MetricInput:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
|
|
227
|
+
outline: var(--border-width-05) solid Highlight;
|
|
228
|
+
outline-offset: var(--spacing-05);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.MetricInput--error:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
|
|
232
|
+
outline: var(--border-width-05) solid Highlight;
|
|
233
|
+
outline-offset: var(--spacing-05);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/* Arrow button states */
|
|
237
|
+
.MetricInput-arrowButton:disabled {
|
|
238
|
+
color: GrayText;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.MetricInput-arrowButton:focus-visible {
|
|
242
|
+
outline: var(--border-width-05) solid Highlight;
|
|
243
|
+
outline-offset: var(--spacing-05);
|
|
244
|
+
}
|
|
191
245
|
}
|
|
@@ -95,3 +95,11 @@
|
|
|
95
95
|
.Modal-header [tabindex='-1']:focus {
|
|
96
96
|
outline: none;
|
|
97
97
|
}
|
|
98
|
+
|
|
99
|
+
@media (forced-colors: active) {
|
|
100
|
+
/* box-shadow is the only visual boundary; add a real border so the modal is visible */
|
|
101
|
+
.Modal {
|
|
102
|
+
border: var(--border-width-2-5) solid ButtonText;
|
|
103
|
+
box-shadow: none;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
border-bottom: none;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
.PageHeader-bottom--withTabs {
|
|
18
|
+
margin-top: var(--spacing-30);
|
|
19
|
+
}
|
|
20
|
+
|
|
17
21
|
.PageHeader .Row {
|
|
18
22
|
width: 100%;
|
|
19
23
|
}
|
|
@@ -41,16 +45,11 @@
|
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
.PageHeader-navigationWrapper {
|
|
44
|
-
margin-top: var(--spacing-
|
|
48
|
+
margin-top: var(--spacing-30);
|
|
45
49
|
}
|
|
46
50
|
|
|
47
|
-
.PageHeader
|
|
48
|
-
|
|
49
|
-
align-items: center;
|
|
50
|
-
margin-top: 0 !important;
|
|
51
|
-
padding-right: var(--spacing-20);
|
|
52
|
-
padding-left: var(--spacing-20);
|
|
53
|
-
display: flex;
|
|
51
|
+
.PageHeader-navigationWrapper--noMargin {
|
|
52
|
+
margin-top: 0;
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
.PageHeader-title {
|
|
@@ -64,3 +63,99 @@
|
|
|
64
63
|
justify-content: flex-end;
|
|
65
64
|
padding-left: var(--spacing-20);
|
|
66
65
|
}
|
|
66
|
+
|
|
67
|
+
/* =====================================================
|
|
68
|
+
Responsive main header row
|
|
69
|
+
===================================================== */
|
|
70
|
+
|
|
71
|
+
/* Base: flex layout — used by all variants */
|
|
72
|
+
.PageHeader-row {
|
|
73
|
+
display: flex;
|
|
74
|
+
flex-wrap: wrap;
|
|
75
|
+
align-items: start;
|
|
76
|
+
width: 100%;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.PageHeader-group--title {
|
|
80
|
+
flex: 1 1 auto;
|
|
81
|
+
min-width: 0;
|
|
82
|
+
order: 1;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Center-nav group — navigation/stepper in center position */
|
|
86
|
+
.PageHeader-group--center {
|
|
87
|
+
flex: 0 0 auto;
|
|
88
|
+
display: flex;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
align-items: center;
|
|
91
|
+
padding: 0 var(--spacing-20);
|
|
92
|
+
min-width: 0;
|
|
93
|
+
order: 2;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Actions / right-side group */
|
|
97
|
+
.PageHeader-group--actions {
|
|
98
|
+
flex: 0 0 auto;
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-wrap: wrap;
|
|
101
|
+
justify-content: flex-end;
|
|
102
|
+
align-items: center;
|
|
103
|
+
padding-left: var(--spacing-20);
|
|
104
|
+
row-gap: var(--spacing-30);
|
|
105
|
+
order: 3;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* Default (full): CSS Grid for true 3-col centering */
|
|
109
|
+
.PageHeader-row--withCenter {
|
|
110
|
+
display: grid;
|
|
111
|
+
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
112
|
+
align-items: start;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Ghost: center nav stays in the grid for measurement but is invisible and out of flow.
|
|
116
|
+
Used when collision detection moves the nav to PageHeader-bottom. */
|
|
117
|
+
.PageHeader-group--center--ghost {
|
|
118
|
+
position: absolute;
|
|
119
|
+
visibility: hidden;
|
|
120
|
+
pointer-events: none;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* All stacked: flex marker on the row + full-width children */
|
|
124
|
+
.PageHeader-row--allStacked {
|
|
125
|
+
display: flex;
|
|
126
|
+
flex-wrap: wrap;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.PageHeader-group--title--stacked {
|
|
130
|
+
flex: 0 0 100%;
|
|
131
|
+
order: 1;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.PageHeader-group--actions--stacked {
|
|
135
|
+
flex: 0 0 100%;
|
|
136
|
+
order: 2;
|
|
137
|
+
padding-left: 0;
|
|
138
|
+
padding-top: var(--spacing-10);
|
|
139
|
+
justify-content: flex-start;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* =====================================================
|
|
143
|
+
Level 1: inter-section spacing when right group wraps
|
|
144
|
+
===================================================== */
|
|
145
|
+
|
|
146
|
+
/* At < 576 px, the actions group sits between title and nav/stepper/tabs.
|
|
147
|
+
For level 1 headers that have actions, increase the gap to 12 px so all
|
|
148
|
+
three sections (title, actions, nav) have consistent breathing room. */
|
|
149
|
+
@media (max-width: 575px) {
|
|
150
|
+
.PageHeader-group--actions--level1Responsive {
|
|
151
|
+
padding-top: var(--spacing-30);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.PageHeader-bottom--level1Responsive {
|
|
155
|
+
margin-top: var(--spacing-30);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.PageHeader-navigationWrapper--noMarginSm {
|
|
159
|
+
margin-top: 0;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
outline: none;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
.SegmentedControl-segment:focus-visible
|
|
100
|
+
.SegmentedControl-segment:focus-visible {
|
|
101
101
|
outline: var(--border-width-05) solid var(--primary-focus);
|
|
102
102
|
outline-offset: var(--spacing-05);
|
|
103
103
|
border-radius: var(--border-radius-10);
|
|
@@ -198,3 +198,10 @@
|
|
|
198
198
|
.Select-trigger--error {
|
|
199
199
|
border: var(--border-width-2-5) solid var(--alert) !important;
|
|
200
200
|
}
|
|
201
|
+
|
|
202
|
+
@media (forced-colors: active) {
|
|
203
|
+
.Select-input:focus-within {
|
|
204
|
+
outline: var(--border-width-05) solid Highlight !important;
|
|
205
|
+
outline-offset: var(--spacing-05);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
@@ -97,3 +97,41 @@
|
|
|
97
97
|
background-color: var(--primary-lightest);
|
|
98
98
|
opacity: var(--opacity-10);
|
|
99
99
|
}
|
|
100
|
+
|
|
101
|
+
@media (forced-colors: active) {
|
|
102
|
+
/* All states use inset box-shadow as the sole border — replace with real borders */
|
|
103
|
+
.Selection-card--default,
|
|
104
|
+
.Selection-card--default:hover,
|
|
105
|
+
.Selection-card--default:active,
|
|
106
|
+
.Selection-card--default-disabled {
|
|
107
|
+
border: var(--border-width-2-5) solid ButtonText;
|
|
108
|
+
box-shadow: none;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* Interactive selected states — use Highlight to signal selection */
|
|
112
|
+
.Selection-card--selected,
|
|
113
|
+
.Selection-card--selected:hover,
|
|
114
|
+
.Selection-card--selected:active {
|
|
115
|
+
border: var(--border-width-2-5) solid Highlight;
|
|
116
|
+
box-shadow: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.Selection-card--selected-disabled {
|
|
120
|
+
border: var(--border-width-2-5) solid GrayText;
|
|
121
|
+
box-shadow: none;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.Selection-card--default:focus,
|
|
125
|
+
.Selection-card--default:focus-visible,
|
|
126
|
+
.Selection-card--selected:focus,
|
|
127
|
+
.Selection-card--selected:focus-visible {
|
|
128
|
+
outline: var(--border-width-05) solid Highlight;
|
|
129
|
+
outline-offset: var(--spacing-05);
|
|
130
|
+
box-shadow: none;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Disabled: suppress the focus indicator */
|
|
134
|
+
.Selection-card--disabled {
|
|
135
|
+
outline: none;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -116,3 +116,11 @@
|
|
|
116
116
|
.Sidesheet-header [tabindex='-1']:focus {
|
|
117
117
|
outline: none;
|
|
118
118
|
}
|
|
119
|
+
|
|
120
|
+
@media (forced-colors: active) {
|
|
121
|
+
/* box-shadow is the only visual boundary; add a real left border so the panel edge is visible */
|
|
122
|
+
.Sidesheet {
|
|
123
|
+
border-left: var(--border-width-2-5) solid ButtonText;
|
|
124
|
+
box-shadow: none;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -134,3 +134,24 @@
|
|
|
134
134
|
outline: none;
|
|
135
135
|
box-shadow: none;
|
|
136
136
|
}
|
|
137
|
+
|
|
138
|
+
@media (forced-colors: active) {
|
|
139
|
+
/* Handle elevation comes from box-shadow only — add a real border so it stays visible */
|
|
140
|
+
.Slider-handle {
|
|
141
|
+
border: var(--border-width-05) solid ButtonText;
|
|
142
|
+
box-shadow: none;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Restore focus ring on the handle (outline:none is set unconditionally) */
|
|
146
|
+
.Slider-handle:focus,
|
|
147
|
+
.Slider-handle:focus-visible {
|
|
148
|
+
outline: var(--border-width-05) solid Highlight;
|
|
149
|
+
outline-offset: var(--spacing-05);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* Filled portion of the track */
|
|
153
|
+
.Slider-progress--inRange {
|
|
154
|
+
forced-color-adjust: none;
|
|
155
|
+
background: Highlight;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -135,3 +135,42 @@
|
|
|
135
135
|
.Switch-wrapper--checkedDisabled:before {
|
|
136
136
|
border-color: transparent;
|
|
137
137
|
}
|
|
138
|
+
|
|
139
|
+
@media (forced-colors: active) {
|
|
140
|
+
.Switch-wrapper {
|
|
141
|
+
outline: var(--border-width-2-5) solid ButtonText;
|
|
142
|
+
outline-offset: calc(-1 * var(--border-width-2-5));
|
|
143
|
+
box-shadow: none;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Checked (enabled) track: use Highlight to distinguish on-state */
|
|
147
|
+
.Switch-wrapper--checked:not(.Switch-wrapper--checkedDisabled) {
|
|
148
|
+
background-color: Highlight;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.Switch-wrapper--checkedDisabled {
|
|
152
|
+
background-color: ButtonFace;
|
|
153
|
+
outline-color: GrayText;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* Thumb: box-shadow is removed in forced-colors mode — ensure the existing border is visible */
|
|
157
|
+
.Switch-wrapper:before {
|
|
158
|
+
box-shadow: none;
|
|
159
|
+
border-color: ButtonText;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* In the checked (enabled) state the thumb border is transparent — make it contrast against the track */
|
|
163
|
+
.Switch-wrapper--checked:not(.Switch-wrapper--checkedDisabled):before {
|
|
164
|
+
border-color: HighlightText;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* Checked-disabled thumb: use GrayText so it reads as disabled */
|
|
168
|
+
.Switch-wrapper--checkedDisabled:before {
|
|
169
|
+
border-color: GrayText;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* Unchecked-disabled thumb */
|
|
173
|
+
.Switch-wrapper--disabled:before {
|
|
174
|
+
border-color: GrayText;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -28,11 +28,42 @@
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.Table-Header-Label--hide {
|
|
31
|
-
animation:
|
|
31
|
+
animation: tableHeaderFadeOut var(--duration--fast-02) var(--exit-productive-curve);
|
|
32
32
|
animation-fill-mode: forwards;
|
|
33
|
+
pointer-events: none;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
.Table-Header-Label--show {
|
|
36
37
|
animation: fadeIn var(--duration--moderate-01) var(--entrance-productive-curve);
|
|
37
38
|
animation-fill-mode: forwards;
|
|
38
39
|
}
|
|
40
|
+
|
|
41
|
+
@keyframes tableHeaderFadeOut {
|
|
42
|
+
from {
|
|
43
|
+
opacity: 1;
|
|
44
|
+
visibility: visible;
|
|
45
|
+
}
|
|
46
|
+
to {
|
|
47
|
+
opacity: 0;
|
|
48
|
+
visibility: hidden;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@media (prefers-reduced-motion: reduce) {
|
|
53
|
+
.Table-Header-Label--hide,
|
|
54
|
+
.Table-Header-Label--show {
|
|
55
|
+
animation-duration: 0.001ms;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.Table-srOnly {
|
|
60
|
+
position: absolute;
|
|
61
|
+
width: var(--spacing-2-5);
|
|
62
|
+
height: var(--spacing-2-5);
|
|
63
|
+
padding: 0;
|
|
64
|
+
margin: calc(-1 * var(--spacing-2-5));
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
clip: rect(0, 0, 0, 0);
|
|
67
|
+
white-space: nowrap;
|
|
68
|
+
border: 0;
|
|
69
|
+
}
|
|
@@ -182,3 +182,23 @@
|
|
|
182
182
|
display: flex;
|
|
183
183
|
box-sizing: border-box;
|
|
184
184
|
}
|
|
185
|
+
|
|
186
|
+
@media (forced-colors: active) {
|
|
187
|
+
/* Dismissible tab close icons have outline:none unconditionally — restore focus ring in forced-colors mode */
|
|
188
|
+
.DismissibleRegularTab-icon--right:focus-visible,
|
|
189
|
+
.DismissibleSmallTab-icon--right:focus-visible {
|
|
190
|
+
outline: var(--border-width-05) solid Highlight;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.Tab--active::after {
|
|
194
|
+
background-color: transparent;
|
|
195
|
+
border-top: var(--spacing-05) solid Highlight;
|
|
196
|
+
box-sizing: border-box;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* Disabled tab pills use opacity — use GrayText instead */
|
|
200
|
+
.Tab-pills--disabled {
|
|
201
|
+
opacity: 1;
|
|
202
|
+
color: GrayText;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
@@ -196,3 +196,13 @@
|
|
|
196
196
|
background: var(--warning-darker);
|
|
197
197
|
color: var(--text-white);
|
|
198
198
|
}
|
|
199
|
+
|
|
200
|
+
@media (forced-colors: active) {
|
|
201
|
+
/* Close icon focus ring is conveyed via box-shadow only — replace with outline */
|
|
202
|
+
.Toast-close-icon:focus,
|
|
203
|
+
.Toast-close-icon:focus-visible {
|
|
204
|
+
outline: var(--border-width-05) solid Highlight;
|
|
205
|
+
outline-offset: var(--spacing-05);
|
|
206
|
+
box-shadow: none;
|
|
207
|
+
}
|
|
208
|
+
}
|