@charcoal-ui/react 6.1.0-beta.4 → 6.1.0-beta.5

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/dist/layered.css CHANGED
@@ -6,356 +6,486 @@
6
6
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
7
7
  transition: 0.2s box-shadow;
8
8
  }
9
- .charcoal-button {
10
- -webkit-appearance: none;
11
- -moz-appearance: none;
12
- appearance: none;
13
- background-image: none;
14
- box-sizing: border-box;
15
- padding: 0 24px;
16
- border-style: none;
17
- outline: none;
18
- text-rendering: inherit;
19
- letter-spacing: inherit;
20
- word-spacing: inherit;
21
- text-decoration: none;
22
- font-family: inherit;
23
- font-style: inherit;
24
- font-variant: inherit;
25
- margin: 0;
26
- overflow: visible;
27
- text-transform: none;
28
- width: -moz-min-content;
29
- width: min-content;
30
- display: inline-grid;
9
+ .charcoal-checkbox__label {
10
+ position: relative;
11
+ cursor: pointer;
12
+ display: flex;
13
+ gap: 4px;
14
+ }
15
+
16
+ .charcoal-checkbox__label[aria-disabled='true'] {
17
+ cursor: default;
18
+ opacity: 0.32;
19
+ }
20
+
21
+ .charcoal-checkbox__label[aria-disabled='true'] > input {
22
+ opacity: 1;
23
+ }
24
+
25
+ .charcoal-checkbox__label_div {
26
+ flex: 1;
27
+ color: var(--charcoal-color-text-default);
28
+ font-size: 14px;
29
+ line-height: 20px;
30
+ }
31
+ .charcoal-segmented-control {
32
+ display: inline-flex;
33
+ align-items: center;
34
+
35
+ background-color: var(--charcoal-color-container-secondary-default-a);
36
+ border-radius: 16px;
37
+ }
38
+
39
+ .charcoal-segmented-control[data-uniform-segment-width='true'],
40
+ .charcoal-segmented-control[data-full-width='true'] {
41
+ display: inline-grid;
42
+ grid-auto-columns: minmax(80px, 1fr);
43
+ grid-auto-rows: 32px;
44
+ grid-auto-flow: column;
45
+ }
46
+
47
+ .charcoal-segmented-control[data-full-width='true'] {
48
+ width: 100%;
49
+ }
50
+
51
+ .charcoal-segmented-control-radio__label {
52
+ position: relative;
53
+ display: flex;
31
54
  align-items: center;
32
55
  justify-content: center;
33
56
  cursor: pointer;
34
- -webkit-user-select: none;
35
- -moz-user-select: none;
36
- user-select: none;
37
- white-space: nowrap;
38
- border-radius: 999999px;
57
+ height: 32px;
58
+
59
+ padding-right: 16px;
60
+ padding-left: 16px;
61
+ border-radius: 16px;
62
+ color: var(--charcoal-color-text-secondary-default);
63
+
39
64
  font-size: 14px;
40
65
  line-height: 22px;
41
- font-weight: bold;
42
- color: var(--charcoal-color-text-default);
43
- background-color: var(
44
- --charcoal-color-container-secondary-default-a,
45
- transparent
46
- );
47
- transition:
48
- 0.2s color,
49
- 0.2s background-color,
50
- 0.2s box-shadow;
51
- height: 40px;
52
66
  }
53
67
 
54
- .charcoal-button:disabled,
55
- .charcoal-button[aria-disabled]:not([aria-disabled='false']) {
68
+ .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
56
69
  cursor: default;
57
70
  opacity: 0.32;
58
71
  }
59
72
 
60
- .charcoal-button:not(:disabled):not([aria-disabled]):focus-visible,
61
- .charcoal-button[aria-disabled='false']:focus-visible {
62
- outline: none;
63
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
73
+ .charcoal-segmented-control-radio__label[data-checked='true'] {
74
+ background-color: var(--charcoal-color-container-primary-default);
75
+ color: var(--charcoal-color-text-on-primary-default);
64
76
  }
65
77
 
66
- .charcoal-button:not(:disabled):not([aria-disabled]):hover,
67
- .charcoal-button[aria-disabled='false']:hover {
68
- color: var(--charcoal-color-text-hover);
69
- background-color: var(--charcoal-color-container-secondary-hover-a);
78
+ .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
79
+ .charcoal-segmented-control-radio__label[data-full-width='true'] {
80
+ justify-content: center;
81
+ white-space: nowrap;
70
82
  }
71
83
 
72
- .charcoal-button:not(:disabled):not([aria-disabled]):active,
73
- .charcoal-button[aria-disabled='false']:active,
74
- .charcoal-button[data-active='true'] {
75
- color: var(--charcoal-color-text-press);
76
- background-color: var(--charcoal-color-container-secondary-press-a);
77
- }
84
+ .charcoal-segmented-control-radio__input {
85
+ position: absolute;
78
86
 
79
- .charcoal-button[data-variant='Primary'] {
80
- color: var(--charcoal-color-text-on-primary-default);
81
- background-color: var(--charcoal-color-container-primary-default);
87
+ height: 0px;
88
+ width: 0px;
89
+ padding: 0;
90
+ margin: 0;
91
+
92
+ -webkit-appearance: none;
93
+
94
+ -moz-appearance: none;
95
+
96
+ appearance: none;
97
+ box-sizing: border-box;
98
+ overflow: hidden;
99
+ white-space: nowrap;
100
+ opacity: 0;
101
+ }
102
+ .charcoal-menu-item-group {
103
+ display: block;
104
+ }
105
+
106
+ .charcoal-menu-item-group > span {
107
+ display: block;
108
+ color: var(--charcoal-color-text-tertiary-default);
109
+ font-size: 12px;
110
+ font-weight: bold;
111
+ padding: 12px 0 8px 16px;
112
+ }
113
+
114
+ .charcoal-menu-item-group > ul {
115
+ padding-left: 0;
116
+ margin: 0;
117
+ box-sizing: border-box;
118
+ list-style: none;
119
+ overflow: hidden;
120
+ }
121
+ .charcoal-hint-text {
122
+ background-color: var(--charcoal-color-container-secondary-default);
123
+ border-radius: 8px;
124
+ padding: 12px 16px;
125
+ display: flex;
126
+ align-items: flex-start;
127
+ }
128
+
129
+ .charcoal-hint-text[data-context='page'] {
130
+ justify-content: center;
82
131
  }
83
132
 
84
- .charcoal-button[data-variant='Primary']:hover:not(:disabled):not([aria-disabled]),
85
- .charcoal-button[data-variant='Primary']:hover[aria-disabled='false'] {
86
- color: var(--charcoal-color-text-on-primary-hover);
87
- background-color: var(--charcoal-color-container-primary-hover);
88
- }
133
+ @media (min-width: 744px) {
89
134
 
90
- .charcoal-button[data-variant='Primary']:active:not(:disabled):not([aria-disabled]),
91
- .charcoal-button[data-variant='Primary']:active[aria-disabled='false'],
92
- .charcoal-button[data-variant='Primary'][data-active='true'] {
93
- color: var(--charcoal-color-text-on-primary-press);
94
- background-color: var(--charcoal-color-container-primary-press);
135
+ .charcoal-hint-text[data-context='page'] {
136
+ padding: 20px 40px
137
+ }
95
138
  }
96
139
 
97
- .charcoal-button[data-variant='Overlay'] {
98
- color: var(--charcoal-color-text-on-on-img-default);
99
- background-color: var(--charcoal-color-container-on-img-default);
140
+ .charcoal-hint-text-icon {
141
+ display: flex;
142
+ align-items: center;
143
+ color: var(--charcoal-color-icon-tertiary-default);
144
+ height: 22px;
145
+ margin: 0 4px 0 0;
146
+ }
147
+
148
+ .charcoal-hint-text-message {
149
+ color: var(--charcoal-color-text-secondary-default);
150
+ font-size: 14px;
151
+ line-height: 22px;
152
+ display: flow-root;
153
+ margin: 0;
154
+ min-width: 0;
155
+ overflow-wrap: break-word;
156
+ }
157
+ .charcoal-tag-item {
158
+ --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
159
+ --charcoal-tag-item-size: 40px;
160
+ --charcoal-tag-item-padding-left: 24px;
161
+ --charcoal-tag-item-padding-right: 24px;
162
+ --charcoal-tag-item-bg: ;
163
+
164
+ isolation: isolate;
165
+ position: relative;
166
+
167
+ -webkit-appearance: none;
168
+
169
+ -moz-appearance: none;
170
+
171
+ appearance: none;
172
+ outline: none;
173
+ border-style: none;
174
+
175
+ display: inline-flex;
176
+ gap: 8px;
177
+ align-items: center;
178
+ justify-content: center;
179
+
180
+ text-decoration: none;
181
+ cursor: pointer;
182
+ overflow: hidden;
183
+
184
+ color: var(--charcoal-tag-item-color);
185
+ height: var(--charcoal-tag-item-size);
186
+ padding-top: 4px;
187
+ padding-bottom: 4px;
188
+ padding-left: var(--charcoal-tag-item-padding-left);
189
+ padding-right: var(--charcoal-tag-item-padding-right);
190
+ box-sizing: border-box;
191
+ border-radius: 4px;
192
+
193
+ transition: 0.2s box-shadow;
194
+ }
195
+
196
+ .charcoal-tag-item[data-size='M'] {
197
+ --charcoal-tag-item-size: 40px;
198
+ --charcoal-tag-item-padding-left: 24px;
199
+ --charcoal-tag-item-padding-right: 24px;
100
200
  }
101
201
 
102
- .charcoal-button[data-variant='Overlay']:hover:not(:disabled):not([aria-disabled]),
103
- .charcoal-button[data-variant='Overlay']:hover[aria-disabled='false'] {
104
- color: var(--charcoal-color-text-on-on-img-hover);
105
- background-color: var(--charcoal-color-container-on-img-hover);
106
- }
202
+ .charcoal-tag-item[data-size='S'] {
203
+ --charcoal-tag-item-size: 32px;
204
+ --charcoal-tag-item-padding-left: 16px;
205
+ --charcoal-tag-item-padding-right: 16px;
206
+ }
107
207
 
108
- .charcoal-button[data-variant='Overlay']:active:not(:disabled):not([aria-disabled]),
109
- .charcoal-button[data-variant='Overlay']:active[aria-disabled='false'],
110
- .charcoal-button[data-variant='Overlay'][data-active='true'] {
111
- color: var(--charcoal-color-text-on-on-img-press);
112
- background-color: var(--charcoal-color-container-on-img-press);
113
- }
208
+ .charcoal-tag-item[data-state='inactive'] {
209
+ --charcoal-tag-item-color: var(--charcoal-color-text-secondary-default);
210
+ }
114
211
 
115
- .charcoal-button[data-variant='Navigation'] {
116
- color: var(--charcoal-color-text-on-hud-default);
117
- background-color: var(--charcoal-color-container-hud-default);
212
+ .charcoal-tag-item[data-state='active'] {
213
+ --charcoal-tag-item-padding-left: 16px;
214
+ --charcoal-tag-item-padding-right: 8px;
118
215
  }
119
216
 
120
- .charcoal-button[data-variant='Navigation']:hover:not(:disabled):not([aria-disabled]),
121
- .charcoal-button[data-variant='Navigation']:hover[aria-disabled='false'] {
122
- color: var(--charcoal-color-text-on-hud-hover);
123
- background-color: var(--charcoal-color-container-hud-hover);
124
- }
217
+ .charcoal-tag-item:disabled,
218
+ .charcoal-tag-item[aria-disabled]:not([aria-disabled='false']) {
219
+ opacity: 0.32;
220
+ cursor: default;
221
+ }
125
222
 
126
- .charcoal-button[data-variant='Navigation']:active:not(:disabled):not([aria-disabled]),
127
- .charcoal-button[data-variant='Navigation']:active[aria-disabled='false'],
128
- .charcoal-button[data-variant='Navigation'][data-active='true'] {
129
- color: var(--charcoal-color-text-on-hud-press);
130
- background-color: var(--charcoal-color-container-hud-press);
131
- }
223
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus-visible,
224
+ .charcoal-tag-item[aria-disabled='false']:focus-visible {
225
+ outline: none;
226
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
227
+ }
132
228
 
133
- .charcoal-button[data-variant='Danger'] {
134
- color: var(--charcoal-color-text-on-negative-default);
135
- background-color: var(--charcoal-color-container-negative-default);
229
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus,
230
+ .charcoal-tag-item[aria-disabled='false']:focus {
231
+ outline: none;
232
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
136
233
  }
137
234
 
138
- .charcoal-button[data-variant='Danger']:hover:not(:disabled):not([aria-disabled]),
139
- .charcoal-button[data-variant='Danger']:hover[aria-disabled='false'] {
140
- color: var(--charcoal-color-text-on-negative-hover);
141
- background-color: var(--charcoal-color-container-negative-hover);
142
- }
235
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
236
+ .charcoal-tag-item[aria-disabled='false']:focus:not(:focus-visible) {
237
+ box-shadow: none;
238
+ }
143
239
 
144
- .charcoal-button[data-variant='Danger']:active:not(:disabled):not([aria-disabled]),
145
- .charcoal-button[data-variant='Danger']:active[aria-disabled='false'],
146
- .charcoal-button[data-variant='Danger'][data-active='true'] {
147
- color: var(--charcoal-color-text-on-negative-press);
148
- background-color: var(--charcoal-color-container-negative-press);
240
+ .charcoal-tag-item__bg {
241
+ background-color: var(--charcoal-tag-item-bg);
242
+ }
243
+
244
+ .charcoal-tag-item__bg[data-bg-variant='image'] {
245
+ background-color: var(--charcoal-color-container-on-img-default);
246
+ }
247
+
248
+ .charcoal-tag-item__bg[data-bg-variant='image']::before {
249
+ content: '';
250
+ position: absolute;
251
+ z-index: 1;
252
+ top: 0;
253
+ left: 0;
254
+ width: 100%;
255
+ height: 100%;
256
+ background-position: center;
257
+ background-size: cover;
258
+ background-image: var(--charcoal-tag-item-bg);
259
+ mix-blend-mode: overlay;
149
260
  }
150
261
 
151
- .charcoal-button[data-size='S'] {
152
- padding: 0 16px;
153
- height: 32px;
262
+ .charcoal-tag-item__bg[data-state='inactive'] {
263
+ background-color: var(--charcoal-color-container-secondary-default);
154
264
  }
155
265
 
156
- .charcoal-button[data-full-width='true'] {
157
- width: 100%;
266
+ .charcoal-tag-item__label {
267
+ height: 100%;
268
+ display: flex;
269
+ flex-direction: column;
270
+ align-items: center;
271
+ justify-content: center;
272
+ }
273
+
274
+ .charcoal-tag-item__label[data-has-translate='true'] {
275
+ justify-content: space-between;
158
276
  }
159
- .charcoal-clickable {
160
- cursor: pointer;
161
277
 
162
- /* Reset button appearance */
163
- -webkit-appearance: none;
164
- -moz-appearance: none;
165
- appearance: none;
166
- background: transparent;
167
- padding: 0;
168
- border-style: none;
169
- outline: none;
170
- color: inherit;
171
- text-rendering: inherit;
172
- letter-spacing: inherit;
173
- word-spacing: inherit;
174
- text-decoration: none;
278
+ .charcoal-tag-item__label__translated {
279
+ --charcoal-tag-item-text-font-size: 12px;
280
+ --charcoal-tag-item-text-line-height: 20px;
281
+ font-weight: bold;
282
+ }
175
283
 
176
- /* Change the font styles in all browsers. */
177
- font: inherit;
284
+ .charcoal-tag-item__label__translated::before {
285
+ display: none;
286
+ }
178
287
 
179
- /* Remove the margin in Firefox and Safari. */
180
- margin: 0;
288
+ .charcoal-tag-item__label__text {
289
+ --charcoal-tag-item-text-font-size: 14px;
290
+ --charcoal-tag-item-text-line-height: 22px;
181
291
 
182
- /* Show the overflow in Edge. */
183
- overflow: visible;
292
+ max-width: 152px;
293
+ overflow: hidden;
294
+ font-weight: bold;
184
295
 
185
- /* Remove the inheritance of text transform in Firefox. */
186
- text-transform: none;
296
+ color: inherit;
297
+ white-space: nowrap;
298
+ text-overflow: ellipsis;
187
299
  }
188
300
 
189
- .charcoal-clickable:disabled,
190
- .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
191
- cursor: default;
192
- }
193
-
194
- .charcoal-clickable:focus {
195
- outline: none;
301
+ .charcoal-tag-item__label__text[data-has-translate='true'] {
302
+ --charcoal-tag-item-text-font-size: 10px;
303
+ --charcoal-tag-item-text-line-height: 14px;
304
+ font-weight: normal;
196
305
  }
197
306
 
198
- .charcoal-clickable::-moz-focus-inner {
199
- border-style: none;
200
- padding: 0;
201
- }
202
- .charcoal-radio__label {
307
+ /* Kept flat: different class name from .charcoal-tag-item__label__text (note: "labe" typo in original) */
308
+ .charcoal-tag-item__labe__text[data-has-translate='true']::after {
309
+ display: none;
310
+ }
311
+ .charcoal-text-area-root {
203
312
  display: grid;
204
- grid-template-columns: auto 1fr;
313
+ grid-template-columns: 1fr;
205
314
  grid-gap: 4px;
206
- align-items: center;
207
- cursor: pointer;
208
315
  }
209
316
 
210
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
317
+ .charcoal-text-area-root[aria-disabled='true'] {
211
318
  opacity: 0.32;
212
- cursor: default;
213
319
  }
214
320
 
215
- .charcoal-radio__label_div {
216
- font-size: 14px;
217
- line-height: 22px;
218
- color: var(--charcoal-color-text-default);
219
- }
220
- .charcoal-radio-group {
221
- display: grid;
222
- grid-template-columns: 1fr;
223
- grid-gap: 8px;
224
- }
225
- .charcoal-multi-select {
226
- display: grid;
227
- grid-template-columns: auto 1fr;
228
- align-items: center;
321
+ .charcoal-text-area-container {
322
+ /* Runtime variable overridden by the React component. */
323
+ --charcoal-text-area-rows: 4;
324
+
229
325
  position: relative;
230
- cursor: pointer;
231
- gap: 4px;
326
+ overflow: hidden;
327
+
328
+ color: var(--charcoal-color-text-secondary-default);
329
+ background-color: var(--charcoal-color-container-secondary-default-a);
330
+ border-radius: 4px;
331
+ transition:
332
+ 0.2s background-color,
333
+ 0.2s box-shadow;
334
+ height: calc(22px * var(--charcoal-text-area-rows) + 18px);
232
335
  }
233
336
 
234
- .charcoal-multi-select:disabled,
235
- .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
236
- opacity: 0.32;
237
- cursor: default;
337
+ .charcoal-text-area-container[aria-invalid='true'] {
338
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
238
339
  }
239
340
 
240
- .charcoal-multi-select-label {
241
- display: flow-root;
242
- align-items: center;
243
- font-size: 14px;
244
- line-height: 22px;
245
- color: var(--charcoal-color-text-default);
246
- }
341
+ .charcoal-text-area-container:focus-within {
342
+ outline: none;
343
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
344
+ }
247
345
 
248
- .charcoal-multi-select-label::before {
249
- display: block;
250
- width: 0;
251
- height: 0;
252
- content: '';
253
- margin-top: -4px;
346
+ .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
347
+ height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
254
348
  }
255
349
 
256
- .charcoal-multi-select-label::after {
257
- display: block;
258
- width: 0;
259
- height: 0;
260
- content: '';
261
- margin-bottom: -4px;
350
+ .charcoal-text-area-container:not([aria-disabled='true']):hover {
351
+ background-color: var(--charcoal-color-container-secondary-hover-a);
262
352
  }
263
353
 
264
- .charcoal-multi-select-input[type='checkbox'] {
354
+ .charcoal-text-area-container[aria-invalid='true']:focus-within {
355
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
356
+ }
357
+
358
+ .charcoal-text-area-textarea {
359
+ border: none;
360
+ outline: none;
361
+ resize: none;
362
+ font-family: inherit;
363
+ color: inherit;
364
+ box-sizing: border-box;
365
+
366
+ /* Prevent zooming for iOS Safari */
367
+ --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
368
+ --charcoal-textarea-line-height: calc(
369
+ 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
370
+ );
371
+ --charcoal-textarea-padding-y: calc(
372
+ 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
373
+ );
374
+ --charcoal-textarea-padding-x: calc(
375
+ 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
376
+ );
377
+
378
+ transform-origin: top left;
379
+ transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
380
+ width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
381
+ font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
382
+ line-height: var(--charcoal-textarea-line-height);
383
+ padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
384
+ height: calc(
385
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
386
+ var(--charcoal-textarea-padding-y) * 2
387
+ );
388
+
389
+ /* Display box-shadow for iOS Safari */
265
390
  -webkit-appearance: none;
266
391
  -moz-appearance: none;
267
392
  appearance: none;
268
- display: block;
269
- width: 20px;
270
- height: 20px;
271
- margin: 0;
272
- background-color: var(--charcoal-color-container-neutral-default);
273
- border-radius: 999999px;
274
- transition:
275
- 0.2s background-color,
276
- 0.2s box-shadow;
393
+
394
+ background: none;
277
395
  }
278
396
 
279
- .charcoal-multi-select-input[type='checkbox']:checked {
280
- background-color: var(--charcoal-color-container-primary-default);
397
+ .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
398
+ padding: var(--charcoal-textarea-padding-y)
399
+ var(--charcoal-textarea-padding-x) 0;
400
+ height: calc(
401
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
402
+ var(--charcoal-textarea-padding-y)
403
+ );
281
404
  }
282
405
 
283
- .charcoal-multi-select-input[type='checkbox']:focus {
284
- outline: none;
285
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
406
+ .charcoal-text-area-textarea::-moz-placeholder {
407
+ color: var(--charcoal-color-text-placeholder-default);
286
408
  }
287
409
 
288
- .charcoal-multi-select-input[type='checkbox']:focus-visible {
289
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
410
+ .charcoal-text-area-textarea::placeholder {
411
+ color: var(--charcoal-color-text-placeholder-default);
290
412
  }
291
413
 
292
- .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
293
- box-shadow: none;
294
- }
414
+ .charcoal-text-area-counter {
415
+ position: absolute;
416
+ bottom: 9px;
417
+ right: 8px;
418
+
419
+ line-height: 22px;
420
+ font-size: 14px;
421
+ color: var(--charcoal-color-text-tertiary-default);
422
+ }
423
+ .charcoal-clickable {
424
+ cursor: pointer;
425
+
426
+ /* Reset button appearance */
427
+ -webkit-appearance: none;
428
+ -moz-appearance: none;
429
+ appearance: none;
430
+ background: transparent;
431
+ padding: 0;
432
+ border-style: none;
433
+ outline: none;
434
+ color: inherit;
435
+ text-rendering: inherit;
436
+ letter-spacing: inherit;
437
+ word-spacing: inherit;
438
+ text-decoration: none;
295
439
 
296
- .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
297
- .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
298
- background-color: var(--charcoal-color-container-neutral-hover);
299
- }
440
+ /* Change the font styles in all browsers. */
441
+ font: inherit;
300
442
 
301
- .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
302
- .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
303
- background-color: var(--charcoal-color-container-neutral-press);
304
- }
443
+ /* Remove the margin in Firefox and Safari. */
444
+ margin: 0;
305
445
 
306
- .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
307
- .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
308
- background-color: var(--charcoal-color-container-primary-hover);
309
- }
446
+ /* Show the overflow in Edge. */
447
+ overflow: visible;
310
448
 
311
- .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
312
- .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
313
- background-color: var(--charcoal-color-container-primary-press);
314
- }
449
+ /* Remove the inheritance of text transform in Firefox. */
450
+ text-transform: none;
451
+ }
315
452
 
316
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
317
- [aria-disabled]
318
- ) {
319
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
453
+ .charcoal-clickable:disabled,
454
+ .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
455
+ cursor: default;
320
456
  }
321
457
 
322
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
323
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
458
+ .charcoal-clickable:focus {
459
+ outline: none;
324
460
  }
325
461
 
326
- .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
327
- background-color: var(--charcoal-color-container-on-img-default);
462
+ .charcoal-clickable::-moz-focus-inner {
463
+ border-style: none;
464
+ padding: 0;
328
465
  }
466
+ .charcoal-text-ellipsis {
467
+ /* Runtime variables overridden by the React component. */
468
+ --charcoal-text-ellipsis-line-limit: 1;
469
+ --charcoal-text-ellipsis-line-height: inherit;
329
470
 
330
- .charcoal-multi-select-overlay {
331
- position: absolute;
332
- top: -2px;
333
- left: -2px;
334
- box-sizing: border-box;
335
- display: flex;
336
- align-items: center;
337
- justify-content: center;
338
- width: 24px;
339
- height: 24px;
340
- border-radius: 999999px;
341
- color: var(--charcoal-color-icon-on-primary-default);
342
- transition: 0.2s box-shadow;
471
+ overflow: hidden;
472
+ overflow-wrap: break-word;
473
+ display: -webkit-box;
474
+ -webkit-box-orient: vertical;
475
+ -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
343
476
  }
344
477
 
345
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
346
- [aria-disabled]
347
- ) {
348
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
478
+ .charcoal-text-ellipsis[data-has-line-height='true'] {
479
+ line-height: var(--charcoal-text-ellipsis-line-height);
349
480
  }
350
481
 
351
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
352
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
482
+ .charcoal-text-ellipsis[data-has-line-height='false'] {
483
+ line-height: inherit;
353
484
  }
354
485
 
355
- .charcoal-multi-select-overlay[data-overlay='true'] {
356
- border-color: var(--charcoal-color-border-hud);
357
- border-width: 2px;
358
- border-style: solid;
486
+ .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
487
+ text-overflow: ellipsis;
488
+ white-space: nowrap;
359
489
  }
360
490
  .charcoal-icon-button {
361
491
  cursor: pointer;
@@ -481,72 +611,6 @@
481
611
  .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
482
612
  box-shadow: none;
483
613
  }
484
- .charcoal-icon {
485
- display: inline-flex;
486
- width: var(--charcoal-icon-size);
487
- height: var(--charcoal-icon-size);
488
- }
489
-
490
- pixiv-icon:not(:defined) {
491
- --pixiv-icon-base: 24px;
492
- --pixiv-icon-scale: 1;
493
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
494
-
495
- display: inline-flex;
496
- /* --charcoal-icon-size がセットされていればそれを優先、
497
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
498
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
499
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
500
- }
501
-
502
- pixiv-icon:not(:defined)[name^='16/'] {
503
- --pixiv-icon-base: 16px;
504
- --pixiv-icon-size: 16px;
505
- }
506
-
507
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
508
- --pixiv-icon-scale: 2;
509
- }
510
-
511
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
512
- --pixiv-icon-scale: 3;
513
- }
514
-
515
- pixiv-icon:not(:defined)[name^='32/'] {
516
- --pixiv-icon-base: 32px;
517
- --pixiv-icon-size: 32px;
518
- }
519
-
520
- pixiv-icon:not(:defined)[name^='Inline/'] {
521
- --pixiv-icon-base: 16px;
522
- }
523
-
524
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
525
- --pixiv-icon-scale: 2;
526
- }
527
- .charcoal-switch__label {
528
- display: inline-grid;
529
- grid-template-columns: auto 1fr;
530
- align-items: center;
531
- cursor: pointer;
532
- outline: 0;
533
- gap: 4px;
534
- }
535
-
536
- .charcoal-switch__label[aria-disabled='true'] {
537
- opacity: 0.32;
538
- cursor: default;
539
- }
540
-
541
- .charcoal-switch__label[aria-disabled='true'] > input {
542
- opacity: 1;
543
- }
544
-
545
- .charcoal-switch__label_div {
546
- font-size: 14px;
547
- line-height: 22px;
548
- color: var(--charcoal-color-text-default);
549
- }
550
614
  .charcoal-modal-background {
551
615
  overflow: auto;
552
616
  display: flex;
@@ -562,172 +626,65 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
562
626
  background-color: var(--charcoal-color-background-overlay);
563
627
  }
564
628
 
565
- @media (max-width: 743px) {
566
- .charcoal-modal-background[data-bottom-sheet='true'],
567
- .charcoal-modal-background[data-bottom-sheet='full'] {
568
- padding: 0;
569
- }
570
- }
571
-
572
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
573
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
574
- 色や transform が変わってもアニメーションしないようにする */
575
- .charcoal-modal-background[data-animation] {
576
- overflow: hidden;
577
- }
578
-
579
- .charcoal-modal-background[data-animation='entering'],
580
- .charcoal-modal-background[data-animation='exiting'] {
581
- transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
582
- }
583
-
584
- /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
585
- 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
586
- .charcoal-modal-background[data-animation='exited'],
587
- .charcoal-modal-background[data-animation='exiting'] {
588
- background-color: transparent;
589
- pointer-events: none;
590
- }
591
-
592
- .charcoal-modal-background[data-animation='entered'] {
593
- overflow: auto;
594
- }
595
-
596
- .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
597
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
598
- transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
599
- }
600
-
601
- .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
602
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
603
- transform: translateY(100%);
604
- }
605
-
606
- .charcoal-modal-close-button {
607
- position: absolute;
608
- top: 8px;
609
- right: 8px;
610
-
611
- color: var(--charcoal-color-text-tertiary-default);
612
- transition: 0.2s color;
613
- }
614
-
615
- .charcoal-modal-title {
616
- margin: 0;
617
- font-weight: inherit;
618
- font-size: inherit;
619
- }
620
- .charcoal-text-area-root {
621
- display: grid;
622
- grid-template-columns: 1fr;
623
- grid-gap: 4px;
624
- }
625
-
626
- .charcoal-text-area-root[aria-disabled='true'] {
627
- opacity: 0.32;
628
- }
629
-
630
- .charcoal-text-area-container {
631
- /* Runtime variable overridden by the React component. */
632
- --charcoal-text-area-rows: 4;
633
-
634
- position: relative;
635
- overflow: hidden;
636
-
637
- color: var(--charcoal-color-text-secondary-default);
638
- background-color: var(--charcoal-color-container-secondary-default-a);
639
- border-radius: 4px;
640
- transition:
641
- 0.2s background-color,
642
- 0.2s box-shadow;
643
- height: calc(22px * var(--charcoal-text-area-rows) + 18px);
644
- }
645
-
646
- .charcoal-text-area-container[aria-invalid='true'] {
647
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
648
- }
649
-
650
- .charcoal-text-area-container:focus-within {
651
- outline: none;
652
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
653
- }
654
-
655
- .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
656
- height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
657
- }
658
-
659
- .charcoal-text-area-container:not([aria-disabled='true']):hover {
660
- background-color: var(--charcoal-color-container-secondary-hover-a);
661
- }
662
-
663
- .charcoal-text-area-container[aria-invalid='true']:focus-within {
664
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
665
- }
666
-
667
- .charcoal-text-area-textarea {
668
- border: none;
669
- outline: none;
670
- resize: none;
671
- font-family: inherit;
672
- color: inherit;
673
- box-sizing: border-box;
674
-
675
- /* Prevent zooming for iOS Safari */
676
- --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
677
- --charcoal-textarea-line-height: calc(
678
- 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
679
- );
680
- --charcoal-textarea-padding-y: calc(
681
- 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
682
- );
683
- --charcoal-textarea-padding-x: calc(
684
- 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
685
- );
629
+ @media (max-width: 743px) {
630
+ .charcoal-modal-background[data-bottom-sheet='true'],
631
+ .charcoal-modal-background[data-bottom-sheet='full'] {
632
+ padding: 0;
633
+ }
634
+ }
686
635
 
687
- transform-origin: top left;
688
- transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
689
- width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
690
- font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
691
- line-height: var(--charcoal-textarea-line-height);
692
- padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
693
- height: calc(
694
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
695
- var(--charcoal-textarea-padding-y) * 2
696
- );
636
+ /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
637
+ transition は entering / exiting に限定し、開いたままテーマ切り替え等で
638
+ 色や transform が変わってもアニメーションしないようにする */
639
+ .charcoal-modal-background[data-animation] {
640
+ overflow: hidden;
641
+ }
697
642
 
698
- /* Display box-shadow for iOS Safari */
699
- -webkit-appearance: none;
700
- -moz-appearance: none;
701
- appearance: none;
643
+ .charcoal-modal-background[data-animation='entering'],
644
+ .charcoal-modal-background[data-animation='exiting'] {
645
+ transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
646
+ }
702
647
 
703
- background: none;
648
+ /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
649
+ 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
650
+ .charcoal-modal-background[data-animation='exited'],
651
+ .charcoal-modal-background[data-animation='exiting'] {
652
+ background-color: transparent;
653
+ pointer-events: none;
704
654
  }
705
655
 
706
- .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
707
- padding: var(--charcoal-textarea-padding-y)
708
- var(--charcoal-textarea-padding-x) 0;
709
- height: calc(
710
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
711
- var(--charcoal-textarea-padding-y)
712
- );
713
- }
656
+ .charcoal-modal-background[data-animation='entered'] {
657
+ overflow: auto;
658
+ }
714
659
 
715
- .charcoal-text-area-textarea::-moz-placeholder {
716
- color: var(--charcoal-color-text-placeholder-default);
717
- }
660
+ .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
661
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
662
+ transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
663
+ }
718
664
 
719
- .charcoal-text-area-textarea::placeholder {
720
- color: var(--charcoal-color-text-placeholder-default);
721
- }
665
+ .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
666
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
667
+ transform: translateY(100%);
668
+ }
722
669
 
723
- .charcoal-text-area-counter {
670
+ .charcoal-modal-close-button {
724
671
  position: absolute;
725
- bottom: 9px;
672
+ top: 8px;
726
673
  right: 8px;
727
674
 
728
- line-height: 22px;
729
- font-size: 14px;
730
675
  color: var(--charcoal-color-text-tertiary-default);
676
+ transition: 0.2s color;
677
+ }
678
+
679
+ .charcoal-modal-title {
680
+ margin: 0;
681
+ font-weight: inherit;
682
+ font-size: inherit;
683
+ }
684
+ .charcoal-radio-group {
685
+ display: grid;
686
+ grid-template-columns: 1fr;
687
+ grid-gap: 8px;
731
688
  }
732
689
  .charcoal-loading-spinner {
733
690
  box-sizing: content-box;
@@ -760,722 +717,583 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
760
717
  .charcoal-loading-spinner-icon {
761
718
  width: 1em;
762
719
  height: 1em;
763
- border-radius: 1em;
764
- background-color: currentColor;
765
- animation: charcoal-loading-spinner-icon-scale-out 1s infinite both ease-out;
766
- }
767
-
768
- .charcoal-loading-spinner-icon[data-reset-animation] {
769
- animation: none;
770
- }
771
-
772
- .charcoal-loading-spinner-icon[data-once='true'] {
773
- animation-iteration-count: 1;
774
- }
775
- .charcoal-modal-header-root {
776
- height: 64px;
777
- display: grid;
778
- align-content: center;
779
- justify-content: center;
780
- }
781
-
782
- @media (max-width: 743px) {
783
- .charcoal-modal-header-root[data-bottom-sheet='true'],
784
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
785
- height: 48px;
786
- }
787
- }
788
-
789
- .charcoal-modal-header-title {
790
- color: var(--charcoal-color-text-default);
791
- font-size: 16px;
792
- line-height: 24px;
793
- font-weight: bold;
794
- display: flow-root;
795
- }
796
-
797
- .charcoal-modal-align {
798
- padding-left: 16px;
799
- padding-right: 16px;
800
- }
801
-
802
- .charcoal-modal-body {
803
- padding-bottom: 40px;
804
- }
805
-
806
- .charcoal-modal-buttons {
807
- display: grid;
808
- grid-auto-flow: row;
809
- grid-row-gap: 8px;
810
-
811
- padding-top: 16px;
812
- padding-left: 16px;
813
- padding-right: 16px;
814
- }
815
- .charcoal-text-field-root {
816
- display: grid;
817
- grid-template-columns: 1fr;
818
- grid-gap: 4px;
819
- }
820
-
821
- .charcoal-text-field-root[aria-disabled='true'] {
822
- opacity: 0.32;
823
- }
824
-
825
- .charcoal-text-field-container {
826
- display: flex;
827
- height: 40px;
828
- transition:
829
- 0.2s background-color,
830
- 0.2s box-shadow;
831
- color: var(--charcoal-color-text-secondary-default);
832
- background-color: var(--charcoal-color-container-secondary-default-a);
833
- border-radius: 4px;
834
- padding: 0 8px;
835
- line-height: 22px;
836
- font-size: 14px;
837
- }
838
-
839
- .charcoal-text-field-container[data-invalid='true'] {
840
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
841
- }
842
-
843
- .charcoal-text-field-container:not([aria-disabled='true']):hover {
844
- background-color: var(--charcoal-color-container-secondary-hover-a);
845
- }
846
-
847
- .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
848
- outline: none;
849
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
850
- }
851
-
852
- .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
853
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
854
- }
855
-
856
- .charcoal-text-field-prefix {
857
- display: flex;
858
- align-items: center;
859
- margin-right: 4px;
860
- }
861
-
862
- .charcoal-text-field-suffix {
863
- display: flex;
864
- align-items: center;
865
- gap: 8px;
866
- margin-left: 4px;
867
- }
868
-
869
- .charcoal-text-field-input-root {
870
- flex: 1;
871
- min-width: 0;
872
- overflow: hidden;
873
- }
874
-
875
- .charcoal-text-field-input {
876
- border: none;
877
- box-sizing: border-box;
878
- outline: none;
879
- font-family: inherit;
880
-
881
- /* Prevent zooming for iOS Safari */
882
- transform-origin: top left;
883
- transform: scale(0.875);
884
- width: calc(100% / 0.875);
885
- height: calc(100% / 0.875);
886
- font-size: calc(14px / 0.875);
887
- line-height: calc(22px / 0.875);
888
- padding-left: 0;
889
- padding-right: 0;
890
- border-radius: calc(4px / 0.875);
891
-
892
- /* Display box-shadow for iOS Safari */
893
- -webkit-appearance: none;
894
- -moz-appearance: none;
895
- appearance: none;
896
- background: transparent;
897
-
898
- color: var(--charcoal-color-text-secondary-default);
899
- }
900
-
901
- .charcoal-text-field-input::-moz-placeholder {
902
- color: var(--charcoal-color-text-placeholder-default);
903
- }
904
-
905
- .charcoal-text-field-input::placeholder {
906
- color: var(--charcoal-color-text-placeholder-default);
907
- }
908
-
909
- .charcoal-text-field-line-counter {
910
- line-height: 22px;
911
- font-size: 14px;
912
- color: var(--charcoal-color-text-tertiary-default);
913
- }
914
- .charcoal-dropdown-selector-menu-item {
915
- font-size: 14px;
916
- line-height: 22px;
917
- color: var(--charcoal-color-text-secondary-default);
918
- padding: 9px 0;
919
-
920
- display: flex;
921
- align-items: center;
922
- width: 100%;
923
- margin-left: 20px;
924
- }
925
-
926
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
927
- margin-left: 0px;
720
+ border-radius: 1em;
721
+ background-color: currentColor;
722
+ animation: charcoal-loading-spinner-icon-scale-out 1s infinite both ease-out;
928
723
  }
929
724
 
930
- .charcoal-dropdown-selector-menu-item-icon {
931
- color: var(--charcoal-color-text-secondary-default);
932
- padding-right: 4px;
933
- }
725
+ .charcoal-loading-spinner-icon[data-reset-animation] {
726
+ animation: none;
727
+ }
934
728
 
935
- .charcoal-dropdown-selector-menu-item-container {
729
+ .charcoal-loading-spinner-icon[data-once='true'] {
730
+ animation-iteration-count: 1;
731
+ }
732
+ .charcoal-pagination {
936
733
  display: flex;
734
+ justify-content: center;
937
735
  align-items: center;
938
736
  }
939
737
 
940
- .charcoal-dropdown-selector-menu-secondary {
941
- font-size: 12px;
942
- line-height: 20px;
943
- color: var(--charcoal-color-text-tertiary-default);
944
- padding-bottom: 9px;
738
+ .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
739
+ min-width: 32px;
740
+ min-height: 32px;
741
+ }
742
+
743
+ .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
744
+ min-width: 40px;
745
+ min-height: 40px;
746
+ }
747
+
748
+ /* stylelint-disable no-descending-specificity */
749
+ .charcoal-pagination-button {
750
+ cursor: pointer;
751
+ -webkit-appearance: none;
752
+ -moz-appearance: none;
753
+ appearance: none;
754
+ padding: 0;
755
+ border-style: none;
756
+ outline: none;
757
+ text-decoration: none;
758
+ font-family: inherit;
759
+ font-style: inherit;
760
+ font-variant: inherit;
761
+ margin: 0;
762
+ -webkit-user-select: none;
763
+ -moz-user-select: none;
764
+ user-select: none;
945
765
 
946
766
  display: flex;
947
767
  align-items: center;
948
- margin-left: 20px;
949
- }
768
+ justify-content: center;
769
+ font-size: 14px;
770
+ font-weight: 700;
771
+ line-height: 22px;
950
772
 
951
- .charcoal-dropdown-selector-menu-fullwidth {
952
- width: 100%;
953
- }
954
- .charcoal-menu-item-group {
955
- display: block;
956
- }
773
+ /* HACK:
774
+ * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
775
+ * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
776
+ */
777
+ -webkit-transform: translateZ(0);
957
778
 
958
- .charcoal-menu-item-group > span {
959
- display: block;
960
779
  color: var(--charcoal-color-text-tertiary-default);
961
- font-size: 12px;
962
- font-weight: bold;
963
- padding: 12px 0 8px 16px;
780
+ background-color: transparent;
781
+ border-radius: 20px;
782
+ transition:
783
+ 0.2s background-color,
784
+ 0.2s box-shadow;
964
785
  }
786
+ .charcoal-pagination-button:focus {
787
+ outline: none;
788
+ }
789
+ .charcoal-pagination-button::-moz-focus-inner {
790
+ border-style: none;
791
+ padding: 0;
792
+ }
793
+ .charcoal-pagination-button[hidden] {
794
+ visibility: hidden;
795
+ display: block;
796
+ }
797
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
798
+ .charcoal-pagination-button[aria-disabled='false']:hover {
799
+ color: var(--charcoal-color-text-tertiary-default);
800
+ background-color: var(--charcoal-color-container-secondary-default);
801
+ }
802
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
803
+ .charcoal-pagination-button[aria-disabled='false']:active {
804
+ color: var(--charcoal-color-text-tertiary-press);
805
+ background-color: var(--charcoal-color-container-tertiary-press);
806
+ }
807
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
808
+ .charcoal-pagination-button[aria-disabled='false']:focus {
809
+ outline: none;
810
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
811
+ }
812
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
813
+ .charcoal-pagination-button[aria-disabled='false']:focus-visible {
814
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
815
+ }
816
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
817
+ .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
818
+ box-shadow: none;
819
+ }
820
+ .charcoal-pagination-button[aria-current] {
821
+ cursor: default;
822
+ background-color: var(--charcoal-color-container-hud-default);
823
+ color: var(--charcoal-color-text-on-hud-default);
824
+ }
825
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
826
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
827
+ background-color: var(--charcoal-color-container-hud-default);
828
+ color: var(--charcoal-color-text-on-hud-default);
829
+ }
830
+ /* stylelint-enable no-descending-specificity */
965
831
 
966
- .charcoal-menu-item-group > ul {
967
- padding-left: 0;
968
- margin: 0;
969
- box-sizing: border-box;
970
- list-style: none;
971
- overflow: hidden;
972
- }
973
- .charcoal-dropdown-selector-root {
974
- display: grid;
975
- grid-template-columns: 1fr;
976
- grid-gap: 4px;
977
- width: 100%;
832
+ .charcoal-pagination-nav-button[data-hidden] {
833
+ visibility: hidden;
978
834
  }
979
835
 
980
- .charcoal-dropdown-selector-root[aria-disabled='true'] {
836
+ .charcoal-pagination-spacer,
837
+ .charcoal-pagination-spacer:hover,
838
+ .charcoal-pagination-spacer:active {
981
839
  cursor: default;
982
- opacity: 0.32;
840
+ color: var(--charcoal-color-text-tertiary-default);
841
+ background: none;
983
842
  }
984
843
 
985
- .charcoal-dropdown-selector-button {
844
+ .charcoal-pagination-spacer.charcoal-icon-button:disabled {
845
+ opacity: 1;
846
+ }
847
+ .charcoal-radio__label {
986
848
  display: grid;
987
- grid-template-columns: 1fr auto;
988
- justify-content: space-between;
849
+ grid-template-columns: auto 1fr;
850
+ grid-gap: 4px;
989
851
  align-items: center;
990
-
991
- height: 40px;
992
- width: 100%;
993
- box-sizing: border-box;
994
- border: none;
995
852
  cursor: pointer;
996
- gap: 4px;
997
-
998
- padding-right: 8px;
999
- padding-left: 8px;
1000
- background-color: var(--charcoal-color-container-secondary-default-a);
1001
- border-radius: 4px;
1002
-
1003
- transition:
1004
- 0.2s box-shadow,
1005
- 0.2s background-color;
1006
853
  }
1007
854
 
1008
- .charcoal-dropdown-selector-button:disabled {
855
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
856
+ opacity: 0.32;
1009
857
  cursor: default;
1010
858
  }
1011
859
 
1012
- .charcoal-dropdown-selector-button:not(:disabled):focus {
1013
- outline: none;
1014
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1015
- }
1016
-
1017
- .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1018
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1019
- }
1020
-
1021
- .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
1022
- .charcoal-dropdown-selector-button:not(:disabled):active {
1023
- background-color: var(--charcoal-color-container-secondary-press-a);
1024
- }
1025
-
1026
- .charcoal-dropdown-selector-button:not(:disabled):hover {
1027
- background-color: var(--charcoal-color-container-secondary-hover-a);
1028
- }
1029
-
1030
- .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1031
- box-shadow: none;
1032
- }
1033
-
1034
- .charcoal-dropdown-selector-button[aria-invalid='true'],
1035
- .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
1036
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1037
- }
1038
-
1039
- .charcoal-ui-dropdown-selector-text {
1040
- text-align: left;
860
+ .charcoal-radio__label_div {
1041
861
  font-size: 14px;
1042
862
  line-height: 22px;
1043
- display: flow-root;
1044
863
  color: var(--charcoal-color-text-default);
1045
- overflow: hidden;
1046
- text-overflow: ellipsis;
1047
- white-space: nowrap;
864
+ }
865
+ .charcoal-modal-header-root {
866
+ height: 64px;
867
+ display: grid;
868
+ align-content: center;
869
+ justify-content: center;
1048
870
  }
1049
871
 
1050
- .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
1051
- color: var(--charcoal-color-text-placeholder-default);
872
+ @media (max-width: 743px) {
873
+ .charcoal-modal-header-root[data-bottom-sheet='true'],
874
+ .charcoal-modal-header-root[data-bottom-sheet='full'] {
875
+ height: 48px;
1052
876
  }
877
+ }
1053
878
 
1054
- .charcoal-ui-dropdown-selector-icon {
1055
- color: var(--charcoal-color-icon-secondary-default);
879
+ .charcoal-modal-header-title {
880
+ color: var(--charcoal-color-text-default);
881
+ font-size: 16px;
882
+ line-height: 24px;
883
+ font-weight: bold;
884
+ display: flow-root;
1056
885
  }
1057
- .charcoal-segmented-control {
1058
- display: inline-flex;
1059
- align-items: center;
1060
886
 
1061
- background-color: var(--charcoal-color-container-secondary-default-a);
1062
- border-radius: 16px;
887
+ .charcoal-modal-align {
888
+ padding-left: 16px;
889
+ padding-right: 16px;
1063
890
  }
1064
891
 
1065
- .charcoal-segmented-control[data-uniform-segment-width='true'],
1066
- .charcoal-segmented-control[data-full-width='true'] {
1067
- display: inline-grid;
1068
- grid-auto-columns: minmax(80px, 1fr);
1069
- grid-auto-rows: 32px;
1070
- grid-auto-flow: column;
1071
- }
892
+ .charcoal-modal-body {
893
+ padding-bottom: 40px;
894
+ }
1072
895
 
1073
- .charcoal-segmented-control[data-full-width='true'] {
1074
- width: 100%;
1075
- }
896
+ .charcoal-modal-buttons {
897
+ display: grid;
898
+ grid-auto-flow: row;
899
+ grid-row-gap: 8px;
1076
900
 
1077
- .charcoal-segmented-control-radio__label {
1078
- position: relative;
1079
- display: flex;
901
+ padding-top: 16px;
902
+ padding-left: 16px;
903
+ padding-right: 16px;
904
+ }
905
+ .charcoal-button {
906
+ -webkit-appearance: none;
907
+ -moz-appearance: none;
908
+ appearance: none;
909
+ background-image: none;
910
+ box-sizing: border-box;
911
+ padding: 0 24px;
912
+ border-style: none;
913
+ outline: none;
914
+ text-rendering: inherit;
915
+ letter-spacing: inherit;
916
+ word-spacing: inherit;
917
+ text-decoration: none;
918
+ font-family: inherit;
919
+ font-style: inherit;
920
+ font-variant: inherit;
921
+ margin: 0;
922
+ overflow: visible;
923
+ text-transform: none;
924
+ width: -moz-min-content;
925
+ width: min-content;
926
+ display: inline-grid;
1080
927
  align-items: center;
1081
928
  justify-content: center;
1082
929
  cursor: pointer;
1083
- height: 32px;
1084
-
1085
- padding-right: 16px;
1086
- padding-left: 16px;
1087
- border-radius: 16px;
1088
- color: var(--charcoal-color-text-secondary-default);
1089
-
930
+ -webkit-user-select: none;
931
+ -moz-user-select: none;
932
+ user-select: none;
933
+ white-space: nowrap;
934
+ border-radius: 999999px;
1090
935
  font-size: 14px;
1091
936
  line-height: 22px;
937
+ font-weight: bold;
938
+ color: var(--charcoal-color-text-default);
939
+ background-color: var(
940
+ --charcoal-color-container-secondary-default-a,
941
+ transparent
942
+ );
943
+ transition:
944
+ 0.2s color,
945
+ 0.2s background-color,
946
+ 0.2s box-shadow;
947
+ height: 40px;
1092
948
  }
1093
949
 
1094
- .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
950
+ .charcoal-button:disabled,
951
+ .charcoal-button[aria-disabled]:not([aria-disabled='false']) {
1095
952
  cursor: default;
1096
953
  opacity: 0.32;
1097
954
  }
1098
955
 
1099
- .charcoal-segmented-control-radio__label[data-checked='true'] {
1100
- background-color: var(--charcoal-color-container-primary-default);
1101
- color: var(--charcoal-color-text-on-primary-default);
956
+ .charcoal-button:not(:disabled):not([aria-disabled]):focus-visible,
957
+ .charcoal-button[aria-disabled='false']:focus-visible {
958
+ outline: none;
959
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1102
960
  }
1103
961
 
1104
- .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
1105
- .charcoal-segmented-control-radio__label[data-full-width='true'] {
1106
- justify-content: center;
1107
- white-space: nowrap;
962
+ .charcoal-button:not(:disabled):not([aria-disabled]):hover,
963
+ .charcoal-button[aria-disabled='false']:hover {
964
+ color: var(--charcoal-color-text-hover);
965
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1108
966
  }
1109
967
 
1110
- .charcoal-segmented-control-radio__input {
1111
- position: absolute;
1112
-
1113
- height: 0px;
1114
- width: 0px;
1115
- padding: 0;
1116
- margin: 0;
968
+ .charcoal-button:not(:disabled):not([aria-disabled]):active,
969
+ .charcoal-button[aria-disabled='false']:active,
970
+ .charcoal-button[data-active='true'] {
971
+ color: var(--charcoal-color-text-press);
972
+ background-color: var(--charcoal-color-container-secondary-press-a);
973
+ }
1117
974
 
1118
- -webkit-appearance: none;
975
+ .charcoal-button[data-variant='Primary'] {
976
+ color: var(--charcoal-color-text-on-primary-default);
977
+ background-color: var(--charcoal-color-container-primary-default);
978
+ }
1119
979
 
1120
- -moz-appearance: none;
980
+ .charcoal-button[data-variant='Primary']:hover:not(:disabled):not([aria-disabled]),
981
+ .charcoal-button[data-variant='Primary']:hover[aria-disabled='false'] {
982
+ color: var(--charcoal-color-text-on-primary-hover);
983
+ background-color: var(--charcoal-color-container-primary-hover);
984
+ }
1121
985
 
1122
- appearance: none;
1123
- box-sizing: border-box;
1124
- overflow: hidden;
1125
- white-space: nowrap;
1126
- opacity: 0;
1127
- }
1128
- .charcoal-checkbox__label {
1129
- position: relative;
1130
- cursor: pointer;
1131
- display: flex;
1132
- gap: 4px;
1133
- }
986
+ .charcoal-button[data-variant='Primary']:active:not(:disabled):not([aria-disabled]),
987
+ .charcoal-button[data-variant='Primary']:active[aria-disabled='false'],
988
+ .charcoal-button[data-variant='Primary'][data-active='true'] {
989
+ color: var(--charcoal-color-text-on-primary-press);
990
+ background-color: var(--charcoal-color-container-primary-press);
991
+ }
1134
992
 
1135
- .charcoal-checkbox__label[aria-disabled='true'] {
1136
- cursor: default;
1137
- opacity: 0.32;
993
+ .charcoal-button[data-variant='Overlay'] {
994
+ color: var(--charcoal-color-text-on-on-img-default);
995
+ background-color: var(--charcoal-color-container-on-img-default);
1138
996
  }
1139
997
 
1140
- .charcoal-checkbox__label[aria-disabled='true'] > input {
1141
- opacity: 1;
998
+ .charcoal-button[data-variant='Overlay']:hover:not(:disabled):not([aria-disabled]),
999
+ .charcoal-button[data-variant='Overlay']:hover[aria-disabled='false'] {
1000
+ color: var(--charcoal-color-text-on-on-img-hover);
1001
+ background-color: var(--charcoal-color-container-on-img-hover);
1142
1002
  }
1143
1003
 
1144
- .charcoal-checkbox__label_div {
1145
- flex: 1;
1146
- color: var(--charcoal-color-text-default);
1147
- font-size: 14px;
1148
- line-height: 20px;
1149
- }
1150
- .charcoal-text-ellipsis {
1151
- /* Runtime variables overridden by the React component. */
1152
- --charcoal-text-ellipsis-line-limit: 1;
1153
- --charcoal-text-ellipsis-line-height: inherit;
1154
-
1155
- overflow: hidden;
1156
- overflow-wrap: break-word;
1157
- display: -webkit-box;
1158
- -webkit-box-orient: vertical;
1159
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1160
- }
1004
+ .charcoal-button[data-variant='Overlay']:active:not(:disabled):not([aria-disabled]),
1005
+ .charcoal-button[data-variant='Overlay']:active[aria-disabled='false'],
1006
+ .charcoal-button[data-variant='Overlay'][data-active='true'] {
1007
+ color: var(--charcoal-color-text-on-on-img-press);
1008
+ background-color: var(--charcoal-color-container-on-img-press);
1009
+ }
1161
1010
 
1162
- .charcoal-text-ellipsis[data-has-line-height='true'] {
1163
- line-height: var(--charcoal-text-ellipsis-line-height);
1011
+ .charcoal-button[data-variant='Navigation'] {
1012
+ color: var(--charcoal-color-text-on-hud-default);
1013
+ background-color: var(--charcoal-color-container-hud-default);
1164
1014
  }
1165
1015
 
1166
- .charcoal-text-ellipsis[data-has-line-height='false'] {
1167
- line-height: inherit;
1168
- }
1016
+ .charcoal-button[data-variant='Navigation']:hover:not(:disabled):not([aria-disabled]),
1017
+ .charcoal-button[data-variant='Navigation']:hover[aria-disabled='false'] {
1018
+ color: var(--charcoal-color-text-on-hud-hover);
1019
+ background-color: var(--charcoal-color-container-hud-hover);
1020
+ }
1169
1021
 
1170
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1171
- text-overflow: ellipsis;
1172
- white-space: nowrap;
1022
+ .charcoal-button[data-variant='Navigation']:active:not(:disabled):not([aria-disabled]),
1023
+ .charcoal-button[data-variant='Navigation']:active[aria-disabled='false'],
1024
+ .charcoal-button[data-variant='Navigation'][data-active='true'] {
1025
+ color: var(--charcoal-color-text-on-hud-press);
1026
+ background-color: var(--charcoal-color-container-hud-press);
1027
+ }
1028
+
1029
+ .charcoal-button[data-variant='Danger'] {
1030
+ color: var(--charcoal-color-text-on-negative-default);
1031
+ background-color: var(--charcoal-color-container-negative-default);
1173
1032
  }
1174
- .charcoal-tag-item {
1175
- --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
1176
- --charcoal-tag-item-size: 40px;
1177
- --charcoal-tag-item-padding-left: 24px;
1178
- --charcoal-tag-item-padding-right: 24px;
1179
- --charcoal-tag-item-bg: ;
1180
1033
 
1181
- isolation: isolate;
1182
- position: relative;
1034
+ .charcoal-button[data-variant='Danger']:hover:not(:disabled):not([aria-disabled]),
1035
+ .charcoal-button[data-variant='Danger']:hover[aria-disabled='false'] {
1036
+ color: var(--charcoal-color-text-on-negative-hover);
1037
+ background-color: var(--charcoal-color-container-negative-hover);
1038
+ }
1183
1039
 
1184
- -webkit-appearance: none;
1040
+ .charcoal-button[data-variant='Danger']:active:not(:disabled):not([aria-disabled]),
1041
+ .charcoal-button[data-variant='Danger']:active[aria-disabled='false'],
1042
+ .charcoal-button[data-variant='Danger'][data-active='true'] {
1043
+ color: var(--charcoal-color-text-on-negative-press);
1044
+ background-color: var(--charcoal-color-container-negative-press);
1045
+ }
1185
1046
 
1186
- -moz-appearance: none;
1047
+ .charcoal-button[data-size='S'] {
1048
+ padding: 0 16px;
1049
+ height: 32px;
1050
+ }
1187
1051
 
1188
- appearance: none;
1189
- outline: none;
1190
- border-style: none;
1052
+ .charcoal-button[data-full-width='true'] {
1053
+ width: 100%;
1054
+ }
1055
+ .charcoal-dropdown-selector-root {
1056
+ display: grid;
1057
+ grid-template-columns: 1fr;
1058
+ grid-gap: 4px;
1059
+ width: 100%;
1060
+ }
1191
1061
 
1192
- display: inline-flex;
1193
- gap: 8px;
1062
+ .charcoal-dropdown-selector-root[aria-disabled='true'] {
1063
+ cursor: default;
1064
+ opacity: 0.32;
1065
+ }
1066
+
1067
+ .charcoal-dropdown-selector-button {
1068
+ display: grid;
1069
+ grid-template-columns: 1fr auto;
1070
+ justify-content: space-between;
1194
1071
  align-items: center;
1195
- justify-content: center;
1196
1072
 
1197
- text-decoration: none;
1073
+ height: 40px;
1074
+ width: 100%;
1075
+ box-sizing: border-box;
1076
+ border: none;
1198
1077
  cursor: pointer;
1199
- overflow: hidden;
1078
+ gap: 4px;
1200
1079
 
1201
- color: var(--charcoal-tag-item-color);
1202
- height: var(--charcoal-tag-item-size);
1203
- padding-top: 4px;
1204
- padding-bottom: 4px;
1205
- padding-left: var(--charcoal-tag-item-padding-left);
1206
- padding-right: var(--charcoal-tag-item-padding-right);
1207
- box-sizing: border-box;
1080
+ padding-right: 8px;
1081
+ padding-left: 8px;
1082
+ background-color: var(--charcoal-color-container-secondary-default-a);
1208
1083
  border-radius: 4px;
1209
1084
 
1210
- transition: 0.2s box-shadow;
1085
+ transition:
1086
+ 0.2s box-shadow,
1087
+ 0.2s background-color;
1211
1088
  }
1212
1089
 
1213
- .charcoal-tag-item[data-size='M'] {
1214
- --charcoal-tag-item-size: 40px;
1215
- --charcoal-tag-item-padding-left: 24px;
1216
- --charcoal-tag-item-padding-right: 24px;
1217
- }
1218
-
1219
- .charcoal-tag-item[data-size='S'] {
1220
- --charcoal-tag-item-size: 32px;
1221
- --charcoal-tag-item-padding-left: 16px;
1222
- --charcoal-tag-item-padding-right: 16px;
1223
- }
1224
-
1225
- .charcoal-tag-item[data-state='inactive'] {
1226
- --charcoal-tag-item-color: var(--charcoal-color-text-secondary-default);
1227
- }
1228
-
1229
- .charcoal-tag-item[data-state='active'] {
1230
- --charcoal-tag-item-padding-left: 16px;
1231
- --charcoal-tag-item-padding-right: 8px;
1232
- }
1233
-
1234
- .charcoal-tag-item:disabled,
1235
- .charcoal-tag-item[aria-disabled]:not([aria-disabled='false']) {
1236
- opacity: 0.32;
1090
+ .charcoal-dropdown-selector-button:disabled {
1237
1091
  cursor: default;
1238
1092
  }
1239
1093
 
1240
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus-visible,
1241
- .charcoal-tag-item[aria-disabled='false']:focus-visible {
1242
- outline: none;
1243
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1244
- }
1245
-
1246
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus,
1247
- .charcoal-tag-item[aria-disabled='false']:focus {
1248
- outline: none;
1249
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1250
- }
1094
+ .charcoal-dropdown-selector-button:not(:disabled):focus {
1095
+ outline: none;
1096
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1097
+ }
1251
1098
 
1252
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1253
- .charcoal-tag-item[aria-disabled='false']:focus:not(:focus-visible) {
1254
- box-shadow: none;
1255
- }
1099
+ .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1100
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1101
+ }
1256
1102
 
1257
- .charcoal-tag-item__bg {
1258
- background-color: var(--charcoal-tag-item-bg);
1259
- }
1103
+ .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
1104
+ .charcoal-dropdown-selector-button:not(:disabled):active {
1105
+ background-color: var(--charcoal-color-container-secondary-press-a);
1106
+ }
1260
1107
 
1261
- .charcoal-tag-item__bg[data-bg-variant='image'] {
1262
- background-color: var(--charcoal-color-container-on-img-default);
1263
- }
1108
+ .charcoal-dropdown-selector-button:not(:disabled):hover {
1109
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1110
+ }
1264
1111
 
1265
- .charcoal-tag-item__bg[data-bg-variant='image']::before {
1266
- content: '';
1267
- position: absolute;
1268
- z-index: 1;
1269
- top: 0;
1270
- left: 0;
1271
- width: 100%;
1272
- height: 100%;
1273
- background-position: center;
1274
- background-size: cover;
1275
- background-image: var(--charcoal-tag-item-bg);
1276
- mix-blend-mode: overlay;
1112
+ .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1113
+ box-shadow: none;
1277
1114
  }
1278
1115
 
1279
- .charcoal-tag-item__bg[data-state='inactive'] {
1280
- background-color: var(--charcoal-color-container-secondary-default);
1116
+ .charcoal-dropdown-selector-button[aria-invalid='true'],
1117
+ .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
1118
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1281
1119
  }
1282
1120
 
1283
- .charcoal-tag-item__label {
1284
- height: 100%;
1285
- display: flex;
1286
- flex-direction: column;
1287
- align-items: center;
1288
- justify-content: center;
1121
+ .charcoal-ui-dropdown-selector-text {
1122
+ text-align: left;
1123
+ font-size: 14px;
1124
+ line-height: 22px;
1125
+ display: flow-root;
1126
+ color: var(--charcoal-color-text-default);
1127
+ overflow: hidden;
1128
+ text-overflow: ellipsis;
1129
+ white-space: nowrap;
1289
1130
  }
1290
1131
 
1291
- .charcoal-tag-item__label[data-has-translate='true'] {
1292
- justify-content: space-between;
1132
+ .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
1133
+ color: var(--charcoal-color-text-placeholder-default);
1293
1134
  }
1294
1135
 
1295
- .charcoal-tag-item__label__translated {
1296
- --charcoal-tag-item-text-font-size: 12px;
1297
- --charcoal-tag-item-text-line-height: 20px;
1298
- font-weight: bold;
1136
+ .charcoal-ui-dropdown-selector-icon {
1137
+ color: var(--charcoal-color-icon-secondary-default);
1138
+ }
1139
+ .charcoal-switch__label {
1140
+ display: inline-grid;
1141
+ grid-template-columns: auto 1fr;
1142
+ align-items: center;
1143
+ cursor: pointer;
1144
+ outline: 0;
1145
+ gap: 4px;
1299
1146
  }
1300
1147
 
1301
- .charcoal-tag-item__label__translated::before {
1302
- display: none;
1148
+ .charcoal-switch__label[aria-disabled='true'] {
1149
+ opacity: 0.32;
1150
+ cursor: default;
1303
1151
  }
1304
1152
 
1305
- .charcoal-tag-item__label__text {
1306
- --charcoal-tag-item-text-font-size: 14px;
1307
- --charcoal-tag-item-text-line-height: 22px;
1308
-
1309
- max-width: 152px;
1310
- overflow: hidden;
1311
- font-weight: bold;
1153
+ .charcoal-switch__label[aria-disabled='true'] > input {
1154
+ opacity: 1;
1155
+ }
1312
1156
 
1313
- color: inherit;
1314
- white-space: nowrap;
1315
- text-overflow: ellipsis;
1157
+ .charcoal-switch__label_div {
1158
+ font-size: 14px;
1159
+ line-height: 22px;
1160
+ color: var(--charcoal-color-text-default);
1161
+ }
1162
+ .charcoal-multi-select {
1163
+ display: grid;
1164
+ grid-template-columns: auto 1fr;
1165
+ align-items: center;
1166
+ position: relative;
1167
+ cursor: pointer;
1168
+ gap: 4px;
1316
1169
  }
1317
1170
 
1318
- .charcoal-tag-item__label__text[data-has-translate='true'] {
1319
- --charcoal-tag-item-text-font-size: 10px;
1320
- --charcoal-tag-item-text-line-height: 14px;
1321
- font-weight: normal;
1171
+ .charcoal-multi-select:disabled,
1172
+ .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
1173
+ opacity: 0.32;
1174
+ cursor: default;
1322
1175
  }
1323
1176
 
1324
- /* Kept flat: different class name from .charcoal-tag-item__label__text (note: "labe" typo in original) */
1325
- .charcoal-tag-item__labe__text[data-has-translate='true']::after {
1326
- display: none;
1327
- }
1328
- .charcoal-pagination {
1329
- display: flex;
1330
- justify-content: center;
1177
+ .charcoal-multi-select-label {
1178
+ display: flow-root;
1331
1179
  align-items: center;
1180
+ font-size: 14px;
1181
+ line-height: 22px;
1182
+ color: var(--charcoal-color-text-default);
1332
1183
  }
1333
1184
 
1334
- .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
1335
- min-width: 32px;
1336
- min-height: 32px;
1185
+ .charcoal-multi-select-label::before {
1186
+ display: block;
1187
+ width: 0;
1188
+ height: 0;
1189
+ content: '';
1190
+ margin-top: -4px;
1337
1191
  }
1338
1192
 
1339
- .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
1340
- min-width: 40px;
1341
- min-height: 40px;
1193
+ .charcoal-multi-select-label::after {
1194
+ display: block;
1195
+ width: 0;
1196
+ height: 0;
1197
+ content: '';
1198
+ margin-bottom: -4px;
1342
1199
  }
1343
1200
 
1344
- /* stylelint-disable no-descending-specificity */
1345
- .charcoal-pagination-button {
1346
- cursor: pointer;
1201
+ .charcoal-multi-select-input[type='checkbox'] {
1347
1202
  -webkit-appearance: none;
1348
1203
  -moz-appearance: none;
1349
1204
  appearance: none;
1350
- padding: 0;
1351
- border-style: none;
1352
- outline: none;
1353
- text-decoration: none;
1354
- font-family: inherit;
1355
- font-style: inherit;
1356
- font-variant: inherit;
1205
+ display: block;
1206
+ width: 20px;
1207
+ height: 20px;
1357
1208
  margin: 0;
1358
- -webkit-user-select: none;
1359
- -moz-user-select: none;
1360
- user-select: none;
1361
-
1362
- display: flex;
1363
- align-items: center;
1364
- justify-content: center;
1365
- font-size: 14px;
1366
- font-weight: 700;
1367
- line-height: 22px;
1368
-
1369
- /* HACK:
1370
- * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1371
- * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1372
- */
1373
- -webkit-transform: translateZ(0);
1374
-
1375
- color: var(--charcoal-color-text-tertiary-default);
1376
- background-color: transparent;
1377
- border-radius: 20px;
1209
+ background-color: var(--charcoal-color-container-neutral-default);
1210
+ border-radius: 999999px;
1378
1211
  transition:
1379
1212
  0.2s background-color,
1380
1213
  0.2s box-shadow;
1381
1214
  }
1382
- .charcoal-pagination-button:focus {
1383
- outline: none;
1384
- }
1385
- .charcoal-pagination-button::-moz-focus-inner {
1386
- border-style: none;
1387
- padding: 0;
1388
- }
1389
- .charcoal-pagination-button[hidden] {
1390
- visibility: hidden;
1391
- display: block;
1392
- }
1393
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1394
- .charcoal-pagination-button[aria-disabled='false']:hover {
1395
- color: var(--charcoal-color-text-tertiary-default);
1396
- background-color: var(--charcoal-color-container-secondary-default);
1397
- }
1398
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1399
- .charcoal-pagination-button[aria-disabled='false']:active {
1400
- color: var(--charcoal-color-text-tertiary-press);
1401
- background-color: var(--charcoal-color-container-tertiary-press);
1215
+
1216
+ .charcoal-multi-select-input[type='checkbox']:checked {
1217
+ background-color: var(--charcoal-color-container-primary-default);
1402
1218
  }
1403
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1404
- .charcoal-pagination-button[aria-disabled='false']:focus {
1219
+
1220
+ .charcoal-multi-select-input[type='checkbox']:focus {
1405
1221
  outline: none;
1406
1222
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1407
1223
  }
1408
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1409
- .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1224
+
1225
+ .charcoal-multi-select-input[type='checkbox']:focus-visible {
1410
1226
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1411
1227
  }
1412
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1413
- .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1228
+
1229
+ .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
1414
1230
  box-shadow: none;
1415
1231
  }
1416
- .charcoal-pagination-button[aria-current] {
1417
- cursor: default;
1418
- background-color: var(--charcoal-color-container-hud-default);
1419
- color: var(--charcoal-color-text-on-hud-default);
1420
- }
1421
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1422
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1423
- background-color: var(--charcoal-color-container-hud-default);
1424
- color: var(--charcoal-color-text-on-hud-default);
1425
- }
1426
- /* stylelint-enable no-descending-specificity */
1427
1232
 
1428
- .charcoal-pagination-nav-button[data-hidden] {
1429
- visibility: hidden;
1430
- }
1233
+ .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
1234
+ .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
1235
+ background-color: var(--charcoal-color-container-neutral-hover);
1236
+ }
1431
1237
 
1432
- .charcoal-pagination-spacer,
1433
- .charcoal-pagination-spacer:hover,
1434
- .charcoal-pagination-spacer:active {
1435
- cursor: default;
1436
- color: var(--charcoal-color-text-tertiary-default);
1437
- background: none;
1238
+ .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
1239
+ .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
1240
+ background-color: var(--charcoal-color-container-neutral-press);
1438
1241
  }
1439
1242
 
1440
- .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1441
- opacity: 1;
1243
+ .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
1244
+ .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
1245
+ background-color: var(--charcoal-color-container-primary-hover);
1442
1246
  }
1443
- .charcoal-hint-text {
1444
- background-color: var(--charcoal-color-container-secondary-default);
1445
- border-radius: 8px;
1446
- padding: 12px 16px;
1447
- display: flex;
1448
- align-items: flex-start;
1449
- }
1450
1247
 
1451
- .charcoal-hint-text[data-context='page'] {
1452
- justify-content: center;
1248
+ .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
1249
+ .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
1250
+ background-color: var(--charcoal-color-container-primary-press);
1453
1251
  }
1454
1252
 
1455
- @media (min-width: 744px) {
1253
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
1254
+ [aria-disabled]
1255
+ ) {
1256
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1257
+ }
1456
1258
 
1457
- .charcoal-hint-text[data-context='page'] {
1458
- padding: 20px 40px
1259
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
1260
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1459
1261
  }
1460
- }
1461
1262
 
1462
- .charcoal-hint-text-icon {
1263
+ .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
1264
+ background-color: var(--charcoal-color-container-on-img-default);
1265
+ }
1266
+
1267
+ .charcoal-multi-select-overlay {
1268
+ position: absolute;
1269
+ top: -2px;
1270
+ left: -2px;
1271
+ box-sizing: border-box;
1463
1272
  display: flex;
1464
1273
  align-items: center;
1465
- color: var(--charcoal-color-icon-tertiary-default);
1466
- height: 22px;
1467
- margin: 0 4px 0 0;
1274
+ justify-content: center;
1275
+ width: 24px;
1276
+ height: 24px;
1277
+ border-radius: 999999px;
1278
+ color: var(--charcoal-color-icon-on-primary-default);
1279
+ transition: 0.2s box-shadow;
1468
1280
  }
1469
1281
 
1470
- .charcoal-hint-text-message {
1471
- color: var(--charcoal-color-text-secondary-default);
1472
- font-size: 14px;
1473
- line-height: 22px;
1474
- display: flow-root;
1475
- margin: 0;
1476
- min-width: 0;
1477
- overflow-wrap: break-word;
1478
- }
1282
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
1283
+ [aria-disabled]
1284
+ ) {
1285
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1286
+ }
1287
+
1288
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
1289
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1290
+ }
1291
+
1292
+ .charcoal-multi-select-overlay[data-overlay='true'] {
1293
+ border-color: var(--charcoal-color-border-hud);
1294
+ border-width: 2px;
1295
+ border-style: solid;
1296
+ }
1479
1297
  .charcoal-carousel {
1480
1298
  --charcoal-carousel-gap: 0px;
1481
1299
 
@@ -1795,6 +1613,46 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1795
1613
  }
1796
1614
  }
1797
1615
  /* stylelint-enable selector-pseudo-class-no-unknown */
1616
+ .charcoal-dropdown-selector-menu-item {
1617
+ font-size: 14px;
1618
+ line-height: 22px;
1619
+ color: var(--charcoal-color-text-secondary-default);
1620
+ padding: 9px 0;
1621
+
1622
+ display: flex;
1623
+ align-items: center;
1624
+ width: 100%;
1625
+ margin-left: 20px;
1626
+ }
1627
+
1628
+ .charcoal-dropdown-selector-menu-item[data-selected='true'] {
1629
+ margin-left: 0px;
1630
+ }
1631
+
1632
+ .charcoal-dropdown-selector-menu-item-icon {
1633
+ color: var(--charcoal-color-text-secondary-default);
1634
+ padding-right: 4px;
1635
+ }
1636
+
1637
+ .charcoal-dropdown-selector-menu-item-container {
1638
+ display: flex;
1639
+ align-items: center;
1640
+ }
1641
+
1642
+ .charcoal-dropdown-selector-menu-secondary {
1643
+ font-size: 12px;
1644
+ line-height: 20px;
1645
+ color: var(--charcoal-color-text-tertiary-default);
1646
+ padding-bottom: 9px;
1647
+
1648
+ display: flex;
1649
+ align-items: center;
1650
+ margin-left: 20px;
1651
+ }
1652
+
1653
+ .charcoal-dropdown-selector-menu-fullwidth {
1654
+ width: 100%;
1655
+ }
1798
1656
  .charcoal-notification-region {
1799
1657
  position: fixed;
1800
1658
  left: 0;
@@ -1883,33 +1741,175 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1883
1741
  var(--charcoal-space-25) var(--charcoal-space-40);
1884
1742
  }
1885
1743
 
1886
- .charcoal-snackbar[data-dim='true'] {
1887
- background-color: var(--charcoal-color-container-hud-default);
1888
- color: var(--charcoal-color-text-on-hud-default);
1889
- border-color: var(--charcoal-color-border-hud);
1744
+ .charcoal-snackbar[data-dim='true'] {
1745
+ background-color: var(--charcoal-color-container-hud-default);
1746
+ color: var(--charcoal-color-text-on-hud-default);
1747
+ border-color: var(--charcoal-color-border-hud);
1748
+ }
1749
+
1750
+ @keyframes charcoal-snackbar-enter {
1751
+ from {
1752
+ opacity: 0;
1753
+ transform: translateY(var(--charcoal-snackbar-enter-offset));
1754
+ }
1755
+
1756
+ to {
1757
+ opacity: 1;
1758
+ transform: translateY(0);
1759
+ }
1760
+ }
1761
+
1762
+ @keyframes charcoal-snackbar-exit {
1763
+ from {
1764
+ opacity: 1;
1765
+ }
1766
+
1767
+ to {
1768
+ opacity: 0;
1769
+ }
1770
+ }
1771
+ .charcoal-text-field-root {
1772
+ display: grid;
1773
+ grid-template-columns: 1fr;
1774
+ grid-gap: 4px;
1775
+ }
1776
+
1777
+ .charcoal-text-field-root[aria-disabled='true'] {
1778
+ opacity: 0.32;
1779
+ }
1780
+
1781
+ .charcoal-text-field-container {
1782
+ display: flex;
1783
+ height: 40px;
1784
+ transition:
1785
+ 0.2s background-color,
1786
+ 0.2s box-shadow;
1787
+ color: var(--charcoal-color-text-secondary-default);
1788
+ background-color: var(--charcoal-color-container-secondary-default-a);
1789
+ border-radius: 4px;
1790
+ padding: 0 8px;
1791
+ line-height: 22px;
1792
+ font-size: 14px;
1793
+ }
1794
+
1795
+ .charcoal-text-field-container[data-invalid='true'] {
1796
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1797
+ }
1798
+
1799
+ .charcoal-text-field-container:not([aria-disabled='true']):hover {
1800
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1801
+ }
1802
+
1803
+ .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
1804
+ outline: none;
1805
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1806
+ }
1807
+
1808
+ .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
1809
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1810
+ }
1811
+
1812
+ .charcoal-text-field-prefix {
1813
+ display: flex;
1814
+ align-items: center;
1815
+ margin-right: 4px;
1816
+ }
1817
+
1818
+ .charcoal-text-field-suffix {
1819
+ display: flex;
1820
+ align-items: center;
1821
+ gap: 8px;
1822
+ margin-left: 4px;
1823
+ }
1824
+
1825
+ .charcoal-text-field-input-root {
1826
+ flex: 1;
1827
+ min-width: 0;
1828
+ overflow: hidden;
1829
+ }
1830
+
1831
+ .charcoal-text-field-input {
1832
+ border: none;
1833
+ box-sizing: border-box;
1834
+ outline: none;
1835
+ font-family: inherit;
1836
+
1837
+ /* Prevent zooming for iOS Safari */
1838
+ transform-origin: top left;
1839
+ transform: scale(0.875);
1840
+ width: calc(100% / 0.875);
1841
+ height: calc(100% / 0.875);
1842
+ font-size: calc(14px / 0.875);
1843
+ line-height: calc(22px / 0.875);
1844
+ padding-left: 0;
1845
+ padding-right: 0;
1846
+ border-radius: calc(4px / 0.875);
1847
+
1848
+ /* Display box-shadow for iOS Safari */
1849
+ -webkit-appearance: none;
1850
+ -moz-appearance: none;
1851
+ appearance: none;
1852
+ background: transparent;
1853
+
1854
+ color: var(--charcoal-color-text-secondary-default);
1855
+ }
1856
+
1857
+ .charcoal-text-field-input::-moz-placeholder {
1858
+ color: var(--charcoal-color-text-placeholder-default);
1859
+ }
1860
+
1861
+ .charcoal-text-field-input::placeholder {
1862
+ color: var(--charcoal-color-text-placeholder-default);
1863
+ }
1864
+
1865
+ .charcoal-text-field-line-counter {
1866
+ line-height: 22px;
1867
+ font-size: 14px;
1868
+ color: var(--charcoal-color-text-tertiary-default);
1869
+ }
1870
+ .charcoal-icon {
1871
+ display: inline-flex;
1872
+ width: var(--charcoal-icon-size);
1873
+ height: var(--charcoal-icon-size);
1874
+ }
1875
+
1876
+ pixiv-icon:not(:defined) {
1877
+ --pixiv-icon-base: 24px;
1878
+ --pixiv-icon-scale: 1;
1879
+ --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
1880
+
1881
+ display: inline-flex;
1882
+ /* --charcoal-icon-size がセットされていればそれを優先、
1883
+ なければ name / scale から導出した --pixiv-icon-size をフォールバック */
1884
+ width: var(--charcoal-icon-size, var(--pixiv-icon-size));
1885
+ height: var(--charcoal-icon-size, var(--pixiv-icon-size));
1886
+ }
1887
+
1888
+ pixiv-icon:not(:defined)[name^='16/'] {
1889
+ --pixiv-icon-base: 16px;
1890
+ --pixiv-icon-size: 16px;
1890
1891
  }
1891
1892
 
1892
- @keyframes charcoal-snackbar-enter {
1893
- from {
1894
- opacity: 0;
1895
- transform: translateY(var(--charcoal-snackbar-enter-offset));
1896
- }
1893
+ pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
1894
+ --pixiv-icon-scale: 2;
1895
+ }
1897
1896
 
1898
- to {
1899
- opacity: 1;
1900
- transform: translateY(0);
1901
- }
1902
- }
1897
+ pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
1898
+ --pixiv-icon-scale: 3;
1899
+ }
1903
1900
 
1904
- @keyframes charcoal-snackbar-exit {
1905
- from {
1906
- opacity: 1;
1901
+ pixiv-icon:not(:defined)[name^='32/'] {
1902
+ --pixiv-icon-base: 32px;
1903
+ --pixiv-icon-size: 32px;
1907
1904
  }
1908
1905
 
1909
- to {
1910
- opacity: 0;
1906
+ pixiv-icon:not(:defined)[name^='Inline/'] {
1907
+ --pixiv-icon-base: 16px;
1911
1908
  }
1912
- }
1909
+
1910
+ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1911
+ --pixiv-icon-scale: 2;
1912
+ }
1913
1913
  .charcoal-toast-region {
1914
1914
  --charcoal-toast-offset: 16px;
1915
1915
  }
@@ -1956,30 +1956,250 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1956
1956
  transform: translateY(var(--charcoal-toast-enter-offset));
1957
1957
  }
1958
1958
 
1959
- to {
1960
- opacity: 1;
1961
- transform: translateY(0);
1962
- }
1959
+ to {
1960
+ opacity: 1;
1961
+ transform: translateY(0);
1962
+ }
1963
+ }
1964
+
1965
+ @keyframes charcoal-toast-exit {
1966
+ from {
1967
+ opacity: 1;
1968
+ }
1969
+
1970
+ to {
1971
+ opacity: 0;
1972
+ }
1973
+ }
1974
+ .charcoal-text-field-assistive-text {
1975
+ font-size: 14px;
1976
+ line-height: 22px;
1977
+ margin: 0;
1978
+ color: var(--charcoal-color-text-secondary-default);
1979
+ }
1980
+
1981
+ .charcoal-text-field-assistive-text[data-invalid='true'] {
1982
+ color: var(--charcoal-color-text-negative-default);
1983
+ }
1984
+ .charcoal-checkbox-input {
1985
+ -webkit-appearance: none;
1986
+ -moz-appearance: none;
1987
+ appearance: none;
1988
+ display: flex;
1989
+ cursor: pointer;
1990
+ margin: 0;
1991
+ width: 20px;
1992
+ height: 20px;
1993
+ border-radius: 4px;
1994
+ transition:
1995
+ 0.2s box-shadow,
1996
+ 0.2s background-color;
1997
+ position: relative;
1998
+ box-sizing: border-box;
1999
+ }
2000
+
2001
+ .charcoal-checkbox-input:disabled,
2002
+ .charcoal-checkbox-input[readonly] {
2003
+ opacity: 0.32;
2004
+ cursor: default;
2005
+ }
2006
+
2007
+ .charcoal-checkbox-input:checked {
2008
+ background-color: var(--charcoal-color-container-primary-default);
2009
+ }
2010
+
2011
+ .charcoal-checkbox-input:checked::after {
2012
+ content: '';
2013
+ background-color: white;
2014
+ display: flex;
2015
+ margin: auto;
2016
+ width: 16px;
2017
+ height: 16px;
2018
+ clip-path: path(
2019
+ 'M10.6 5a1.3 1.3 0 0 1 1.8 1.9l-5.7 5.6-3-2.9a1.3 1.3 0 1 1 2-1.9l1 1z'
2020
+ );
2021
+ }
2022
+
2023
+ .charcoal-checkbox-input:not(:checked) {
2024
+ border-width: 2px;
2025
+ border-style: solid;
2026
+ border-color: var(--charcoal-color-border-default);
2027
+ }
2028
+
2029
+ .charcoal-checkbox-input:not(:disabled):focus {
2030
+ outline: none;
2031
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2032
+ }
2033
+ .charcoal-checkbox-input:not(:disabled):focus-visible {
2034
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2035
+ }
2036
+ .charcoal-checkbox-input:not(:disabled):focus:not(:focus-visible) {
2037
+ box-shadow: none;
2038
+ }
2039
+
2040
+ .charcoal-checkbox-input:checked:not(:disabled):hover {
2041
+ background-color: var(--charcoal-color-container-primary-hover);
2042
+ }
2043
+ .charcoal-checkbox-input:checked:not(:disabled):active {
2044
+ background-color: var(--charcoal-color-container-primary-press);
2045
+ }
2046
+
2047
+ .charcoal-checkbox-input[aria-invalid='true'],
2048
+ .charcoal-checkbox-input[aria-invalid='true']:not(:disabled):focus {
2049
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2050
+ }
2051
+
2052
+ .charcoal-checkbox-input[data-rounded='true'] {
2053
+ border-radius: 10px;
2054
+ background-color: var(--charcoal-color-container-secondary-default);
2055
+ border: 2px solid transparent;
2056
+ }
2057
+
2058
+ .charcoal-checkbox-input[data-rounded='true']:checked {
2059
+ background-color: var(--charcoal-color-container-primary-default);
2060
+ }
2061
+
2062
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):hover {
2063
+ background-color: var(--charcoal-color-container-secondary-hover);
2064
+ }
2065
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):active {
2066
+ background-color: var(--charcoal-color-container-secondary-press);
2067
+ }
2068
+
2069
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):focus-visible {
2070
+ box-shadow: 0 0 0 6px rgba(0, 150, 250, 0.32);
2071
+ }
2072
+
2073
+ .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):hover {
2074
+ background-color: var(--charcoal-color-container-primary-hover);
2075
+ }
2076
+ .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):active {
2077
+ background-color: var(--charcoal-color-container-primary-press);
2078
+ }
2079
+
2080
+ .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true'],
2081
+ .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true']:not(
2082
+ :disabled
2083
+ ):focus {
2084
+ box-shadow: 0 0 0 6px rgba(255, 43, 0, 0.32);
2085
+ }
2086
+
2087
+ .charcoal-checkbox-input[data-rounded='true']::before {
2088
+ content: '';
2089
+ width: 24px;
2090
+ height: 24px;
2091
+ position: absolute;
2092
+ top: -4px;
2093
+ left: -4px;
2094
+ border-radius: 12px;
2095
+ border: 2px solid #fff;
2096
+ box-sizing: border-box;
2097
+ }
2098
+ .charcoal-field-label {
2099
+ font-size: 14px;
2100
+ line-height: 22px;
2101
+ font-weight: bold;
2102
+ display: flow-root;
2103
+ color: var(--charcoal-color-text-default-text1);
2104
+ }
2105
+
2106
+ .charcoal-field-label-required-text {
2107
+ font-size: 14px;
2108
+ line-height: 22px;
2109
+ display: flow-root;
2110
+ color: var(--charcoal-color-text-secondary-default);
2111
+ }
2112
+
2113
+ .charcoal-field-label-sub-label {
2114
+ font-size: 14px;
2115
+ line-height: 22px;
2116
+ display: flow-root;
2117
+ color: var(--charcoal-color-text-tertiary-default);
2118
+ transition:
2119
+ 0.2s color,
2120
+ 0.2s box-shadow;
2121
+ }
2122
+
2123
+ .charcoal-field-label-root {
2124
+ display: inline-flex;
2125
+ align-items: center;
2126
+ }
2127
+
2128
+ .charcoal-field-label-root > .charcoal-field-label-required-text {
2129
+ margin-left: 4px;
2130
+ }
2131
+
2132
+ .charcoal-field-label-root > .charcoal-field-label-sub-label {
2133
+ margin-left: auto;
2134
+ }
2135
+ .charcoal-list-item {
2136
+ list-style: none;
2137
+ display: flex;
2138
+ align-items: center;
2139
+ min-height: 40px;
2140
+ cursor: pointer;
2141
+ outline: none;
2142
+
2143
+ padding-right: 16px;
2144
+ padding-left: 16px;
2145
+
2146
+ transition: background-color 0.2s;
2147
+ }
2148
+
2149
+ .charcoal-list-item:not([aria-disabled='true']):hover,
2150
+ .charcoal-list-item:not([aria-disabled='true']):focus,
2151
+ .charcoal-list-item:not([aria-disabled='true']):focus-within {
2152
+ background-color: var(--charcoal-color-container-secondary-default);
2153
+ }
2154
+
2155
+ .charcoal-list-item[aria-disabled='true'] {
2156
+ opacity: 0.32;
2157
+ cursor: default;
2158
+ }
2159
+ .charcoal-modal-dialog {
2160
+ margin: auto;
2161
+ position: relative;
2162
+ height: -moz-fit-content;
2163
+ height: fit-content;
2164
+ width: 440px;
2165
+
2166
+ background-color: var(--charcoal-color-container-default);
2167
+ border-radius: 24px;
2168
+ }
2169
+
2170
+ .charcoal-modal-dialog[data-size='S'] {
2171
+ width: 336px;
2172
+ }
2173
+
2174
+ .charcoal-modal-dialog[data-size='M'] {
2175
+ width: 440px;
2176
+ }
2177
+
2178
+ .charcoal-modal-dialog[data-size='L'] {
2179
+ width: 648px;
1963
2180
  }
1964
2181
 
1965
- @keyframes charcoal-toast-exit {
1966
- from {
1967
- opacity: 1;
2182
+ @media (max-width: 743px) {
2183
+ .charcoal-modal-dialog {
2184
+ max-width: 440px;
2185
+ width: calc(100% - 48px);
1968
2186
  }
1969
2187
 
1970
- to {
1971
- opacity: 0;
2188
+ .charcoal-modal-dialog[data-bottom-sheet='true'],
2189
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2190
+ max-width: unset;
2191
+ width: 100%;
2192
+ border-radius: 0;
2193
+ margin: auto 0 0 0;
2194
+ }
2195
+
2196
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2197
+ min-height: 100%;
1972
2198
  }
1973
- }
1974
- .charcoal-text-field-assistive-text {
1975
- font-size: 14px;
1976
- line-height: 22px;
1977
- margin: 0;
1978
- color: var(--charcoal-color-text-secondary-default);
1979
2199
  }
1980
2200
 
1981
- .charcoal-text-field-assistive-text[data-invalid='true'] {
1982
- color: var(--charcoal-color-text-negative-default);
2201
+ .charcoal-modal-dialog:focus {
2202
+ outline: none;
1983
2203
  }
1984
2204
  .charcoal-radio-input {
1985
2205
  -webkit-appearance: none;
@@ -2069,51 +2289,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2069
2289
  .charcoal-radio-input:checked:not(:disabled):active::after {
2070
2290
  background-color: var(--charcoal-color-icon-on-primary-press);
2071
2291
  }
2072
- .charcoal-modal-dialog {
2073
- margin: auto;
2074
- position: relative;
2075
- height: -moz-fit-content;
2076
- height: fit-content;
2077
- width: 440px;
2078
-
2079
- background-color: var(--charcoal-color-container-default);
2080
- border-radius: 24px;
2081
- }
2082
-
2083
- .charcoal-modal-dialog[data-size='S'] {
2084
- width: 336px;
2085
- }
2086
-
2087
- .charcoal-modal-dialog[data-size='M'] {
2088
- width: 440px;
2089
- }
2090
-
2091
- .charcoal-modal-dialog[data-size='L'] {
2092
- width: 648px;
2093
- }
2094
-
2095
- @media (max-width: 743px) {
2096
- .charcoal-modal-dialog {
2097
- max-width: 440px;
2098
- width: calc(100% - 48px);
2099
- }
2100
-
2101
- .charcoal-modal-dialog[data-bottom-sheet='true'],
2102
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
2103
- max-width: unset;
2104
- width: 100%;
2105
- border-radius: 0;
2106
- margin: auto 0 0 0;
2107
- }
2108
-
2109
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
2110
- min-height: 100%;
2111
- }
2112
- }
2113
-
2114
- .charcoal-modal-dialog:focus {
2115
- outline: none;
2116
- }
2117
2292
  .charcoal-switch-input {
2118
2293
  cursor: pointer;
2119
2294
  -webkit-appearance: none;
@@ -2198,185 +2373,10 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2198
2373
  .charcoal-switch-input:not(:disabled):checked:active {
2199
2374
  background-color: var(--charcoal-color-container-primary-press);
2200
2375
  }
2201
- .charcoal-field-label {
2202
- font-size: 14px;
2203
- line-height: 22px;
2204
- font-weight: bold;
2205
- display: flow-root;
2206
- color: var(--charcoal-color-text-default-text1);
2207
- }
2208
-
2209
- .charcoal-field-label-required-text {
2210
- font-size: 14px;
2211
- line-height: 22px;
2212
- display: flow-root;
2213
- color: var(--charcoal-color-text-secondary-default);
2214
- }
2215
-
2216
- .charcoal-field-label-sub-label {
2217
- font-size: 14px;
2218
- line-height: 22px;
2219
- display: flow-root;
2220
- color: var(--charcoal-color-text-tertiary-default);
2221
- transition:
2222
- 0.2s color,
2223
- 0.2s box-shadow;
2224
- }
2225
-
2226
- .charcoal-field-label-root {
2227
- display: inline-flex;
2228
- align-items: center;
2229
- }
2230
-
2231
- .charcoal-field-label-root > .charcoal-field-label-required-text {
2232
- margin-left: 4px;
2233
- }
2234
-
2235
- .charcoal-field-label-root > .charcoal-field-label-sub-label {
2236
- margin-left: auto;
2237
- }
2238
2376
  .charcoal-menu-list {
2239
2377
  padding: 0;
2240
2378
  margin: 0;
2241
2379
  }
2242
- .charcoal-checkbox-input {
2243
- -webkit-appearance: none;
2244
- -moz-appearance: none;
2245
- appearance: none;
2246
- display: flex;
2247
- cursor: pointer;
2248
- margin: 0;
2249
- width: 20px;
2250
- height: 20px;
2251
- border-radius: 4px;
2252
- transition:
2253
- 0.2s box-shadow,
2254
- 0.2s background-color;
2255
- position: relative;
2256
- box-sizing: border-box;
2257
- }
2258
-
2259
- .charcoal-checkbox-input:disabled,
2260
- .charcoal-checkbox-input[readonly] {
2261
- opacity: 0.32;
2262
- cursor: default;
2263
- }
2264
-
2265
- .charcoal-checkbox-input:checked {
2266
- background-color: var(--charcoal-color-container-primary-default);
2267
- }
2268
-
2269
- .charcoal-checkbox-input:checked::after {
2270
- content: '';
2271
- background-color: white;
2272
- display: flex;
2273
- margin: auto;
2274
- width: 16px;
2275
- height: 16px;
2276
- clip-path: path(
2277
- 'M10.6 5a1.3 1.3 0 0 1 1.8 1.9l-5.7 5.6-3-2.9a1.3 1.3 0 1 1 2-1.9l1 1z'
2278
- );
2279
- }
2280
-
2281
- .charcoal-checkbox-input:not(:checked) {
2282
- border-width: 2px;
2283
- border-style: solid;
2284
- border-color: var(--charcoal-color-border-default);
2285
- }
2286
-
2287
- .charcoal-checkbox-input:not(:disabled):focus {
2288
- outline: none;
2289
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2290
- }
2291
- .charcoal-checkbox-input:not(:disabled):focus-visible {
2292
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2293
- }
2294
- .charcoal-checkbox-input:not(:disabled):focus:not(:focus-visible) {
2295
- box-shadow: none;
2296
- }
2297
-
2298
- .charcoal-checkbox-input:checked:not(:disabled):hover {
2299
- background-color: var(--charcoal-color-container-primary-hover);
2300
- }
2301
- .charcoal-checkbox-input:checked:not(:disabled):active {
2302
- background-color: var(--charcoal-color-container-primary-press);
2303
- }
2304
-
2305
- .charcoal-checkbox-input[aria-invalid='true'],
2306
- .charcoal-checkbox-input[aria-invalid='true']:not(:disabled):focus {
2307
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2308
- }
2309
-
2310
- .charcoal-checkbox-input[data-rounded='true'] {
2311
- border-radius: 10px;
2312
- background-color: var(--charcoal-color-container-secondary-default);
2313
- border: 2px solid transparent;
2314
- }
2315
-
2316
- .charcoal-checkbox-input[data-rounded='true']:checked {
2317
- background-color: var(--charcoal-color-container-primary-default);
2318
- }
2319
-
2320
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):hover {
2321
- background-color: var(--charcoal-color-container-secondary-hover);
2322
- }
2323
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):active {
2324
- background-color: var(--charcoal-color-container-secondary-press);
2325
- }
2326
-
2327
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):focus-visible {
2328
- box-shadow: 0 0 0 6px rgba(0, 150, 250, 0.32);
2329
- }
2330
-
2331
- .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):hover {
2332
- background-color: var(--charcoal-color-container-primary-hover);
2333
- }
2334
- .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):active {
2335
- background-color: var(--charcoal-color-container-primary-press);
2336
- }
2337
-
2338
- .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true'],
2339
- .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true']:not(
2340
- :disabled
2341
- ):focus {
2342
- box-shadow: 0 0 0 6px rgba(255, 43, 0, 0.32);
2343
- }
2344
-
2345
- .charcoal-checkbox-input[data-rounded='true']::before {
2346
- content: '';
2347
- width: 24px;
2348
- height: 24px;
2349
- position: absolute;
2350
- top: -4px;
2351
- left: -4px;
2352
- border-radius: 12px;
2353
- border: 2px solid #fff;
2354
- box-sizing: border-box;
2355
- }
2356
- .charcoal-list-item {
2357
- list-style: none;
2358
- display: flex;
2359
- align-items: center;
2360
- min-height: 40px;
2361
- cursor: pointer;
2362
- outline: none;
2363
-
2364
- padding-right: 16px;
2365
- padding-left: 16px;
2366
-
2367
- transition: background-color 0.2s;
2368
- }
2369
-
2370
- .charcoal-list-item:not([aria-disabled='true']):hover,
2371
- .charcoal-list-item:not([aria-disabled='true']):focus,
2372
- .charcoal-list-item:not([aria-disabled='true']):focus-within {
2373
- background-color: var(--charcoal-color-container-secondary-default);
2374
- }
2375
-
2376
- .charcoal-list-item[aria-disabled='true'] {
2377
- opacity: 0.32;
2378
- cursor: default;
2379
- }
2380
2380
  .charcoal-popover {
2381
2381
  margin: 4px 0;
2382
2382
  list-style: none;