@chocbite/ts-lib-form 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/style.css ADDED
@@ -0,0 +1,1823 @@
1
+ form-button {
2
+ margin-bottom: 0.5rem;
3
+ }
4
+ form-button:last-child {
5
+ margin-bottom: 0;
6
+ }
7
+ form-button:nth-last-child(1 of :not(:empty)) {
8
+ margin-bottom: 0;
9
+ }
10
+ form-button[inert] {
11
+ opacity: 0.6;
12
+ pointer-events: none;
13
+ }
14
+ form-button {
15
+ border: 0.0625rem solid var(--form-colors-border-normal);
16
+ min-height: var(--form-size-height);
17
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
18
+ border-radius: 0.6rem;
19
+ background-color: var(--form-colors-background-normal);
20
+ position: relative;
21
+ display: flex;
22
+ align-items: center;
23
+ box-sizing: border-box;
24
+ -webkit-user-select: none;
25
+ user-select: none;
26
+ min-width: min-content;
27
+ outline: none;
28
+ }
29
+ .touch form-button {
30
+ min-height: var(--form-size-touchHeight);
31
+ }
32
+ form-button.active {
33
+ box-shadow: 0 0 0.1875rem 0 var(--form-colors-border-normal);
34
+ }
35
+ form-button:focus-visible {
36
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal), 0 0 0 0.2rem var(--form-colors-focus-normal);
37
+ }
38
+ form-button:focus-visible.active {
39
+ box-shadow: 0 0 0.1875rem 0 var(--form-colors-border-normal), 0 0 0 0.2rem var(--form-colors-focus-normal);
40
+ }
41
+ @media (pointer: fine) {
42
+ form-button:hover {
43
+ background-color: var(--form-colors-background-hover);
44
+ }
45
+ }
46
+ form-button > input {
47
+ all: unset;
48
+ visibility: hidden;
49
+ position: absolute;
50
+ width: 100%;
51
+ height: 100%;
52
+ inset: 0;
53
+ }
54
+ form-button > svg {
55
+ fill: var(--form-colors-text-normal);
56
+ max-width: var(--form-size-height);
57
+ height: calc(var(--form-size-height) - 2px);
58
+ box-sizing: border-box;
59
+ width: auto;
60
+ padding: 0.2rem;
61
+ flex-shrink: 0;
62
+ }
63
+ .touch form-button > svg {
64
+ height: var(--form-size-touchHeight);
65
+ max-width: var(--form-size-touchHeight)1rem;
66
+ padding: 0.5rem;
67
+ }
68
+ form-button > svg + span {
69
+ padding-left: 0.4rem !important;
70
+ }
71
+ form-button > span {
72
+ color: var(--form-colors-text-normal);
73
+ justify-content: center;
74
+ padding-inline: 0.8rem;
75
+ }
76
+ .touch form-button > span {
77
+ font-size: var(--form-font-touch_size);
78
+ }
79
+ form-button > span:empty {
80
+ display: none;
81
+ }
82
+ form-button[color=black] {
83
+ background-color: var(--form-colors-basic-black);
84
+ }
85
+ form-button[color=green] {
86
+ background-color: var(--form-colors-basic-green);
87
+ }
88
+ form-button[color=red] {
89
+ background-color: var(--form-colors-basic-red);
90
+ }
91
+ form-button[color=blue] {
92
+ background-color: var(--form-colors-basic-blue);
93
+ }
94
+ form-button[color=yellow] {
95
+ background-color: var(--form-colors-basic-yellow);
96
+ }
97
+ form-button[color=black] > span {
98
+ color: var(--form-colors-textBlack-normal);
99
+ }
100
+ form-button[color=black] > svg {
101
+ fill: var(--form-colors-textBlack-normal);
102
+ }
103
+ form-lamp {
104
+ margin-bottom: 0.5rem;
105
+ }
106
+ form-lamp:last-child {
107
+ margin-bottom: 0;
108
+ }
109
+ form-lamp:nth-last-child(1 of :not(:empty)) {
110
+ margin-bottom: 0;
111
+ }
112
+ form-lamp[inert] {
113
+ opacity: 0.6;
114
+ pointer-events: none;
115
+ }
116
+ form-lamp {
117
+ border: 1px solid var(--form-colors-border-normal);
118
+ min-height: var(--form-size-height);
119
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
120
+ border-radius: var(--form-size-height);
121
+ background-color: var(--form-colors-background-normal);
122
+ display: flex;
123
+ box-sizing: border-box;
124
+ min-width: min-content;
125
+ -webkit-user-select: none;
126
+ user-select: none;
127
+ align-items: center;
128
+ }
129
+ .touch form-lamp {
130
+ min-height: var(--form-size-touchHeight);
131
+ border-radius: var(--form-size-touchHeight);
132
+ }
133
+ .anim-all form-lamp {
134
+ transition: min-height ease-in-out var(--animation-speed), border-color ease-in-out var(--animation-speed), background-color ease-in-out var(--animation-speed);
135
+ }
136
+ form-lamp > svg {
137
+ fill: var(--form-colors-text-normal);
138
+ height: calc(var(--form-size-height) - 2px);
139
+ box-sizing: border-box;
140
+ width: auto;
141
+ flex-shrink: 0;
142
+ background-color: initial;
143
+ padding: 0.2rem;
144
+ padding-left: 0.4rem;
145
+ }
146
+ .touch form-lamp > svg {
147
+ height: calc(var(--form-size-touchHeight) - 2px);
148
+ padding: 0.5rem;
149
+ }
150
+ .anim-all form-lamp > svg {
151
+ transition: fill ease-in-out var(--animation-speed), height ease-in-out var(--animation-speed);
152
+ }
153
+ form-lamp > span {
154
+ color: var(--form-colors-text-normal);
155
+ display: flex;
156
+ justify-content: center;
157
+ padding-inline: 0.8rem;
158
+ }
159
+ .touch form-lamp > span {
160
+ font-size: var(--form-font-touch_size);
161
+ }
162
+ form-lamp > span:empty {
163
+ display: none;
164
+ }
165
+ .anim-all form-lamp > span {
166
+ transition: color ease-in-out var(--animation-speed);
167
+ }
168
+ form-lamp > svg + span {
169
+ padding-left: 0.4rem !important;
170
+ }
171
+ form-lamp[color=black] {
172
+ background-color: var(--form-colors-basic-black);
173
+ }
174
+ form-lamp[color=green] {
175
+ background-color: var(--form-colors-basic-green);
176
+ }
177
+ form-lamp[color=red] {
178
+ background-color: var(--form-colors-basic-red);
179
+ }
180
+ form-lamp[color=blue] {
181
+ background-color: var(--form-colors-basic-blue);
182
+ }
183
+ form-lamp[color=yellow] {
184
+ background-color: var(--form-colors-basic-yellow);
185
+ }
186
+ form-lamp[color=black] > span {
187
+ color: var(--form-colors-textBlack-normal);
188
+ }
189
+ form-lamp[color=black] > svg {
190
+ fill: var(--form-colors-textBlack-normal);
191
+ }
192
+ form-switch {
193
+ margin-bottom: 0.5rem;
194
+ }
195
+ form-switch:last-child {
196
+ margin-bottom: 0;
197
+ }
198
+ form-switch:nth-last-child(1 of :not(:empty)) {
199
+ margin-bottom: 0;
200
+ }
201
+ form-switch[inert] {
202
+ opacity: 0.6;
203
+ pointer-events: none;
204
+ }
205
+ form-switch {
206
+ position: relative;
207
+ display: flex;
208
+ align-items: center;
209
+ -webkit-user-select: none;
210
+ user-select: none;
211
+ }
212
+ @media (pointer: fine) {
213
+ form-switch:hover > div::after {
214
+ background-color: var(--form-colors-background-hover);
215
+ }
216
+ }
217
+ form-switch > input {
218
+ all: unset;
219
+ visibility: hidden;
220
+ position: absolute;
221
+ width: calc(var(--form-size-height) * 2);
222
+ height: 100%;
223
+ inset: 0;
224
+ }
225
+ form-switch > div {
226
+ border: 0.0625rem solid var(--form-colors-border-normal);
227
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
228
+ border-radius: var(--form-size-height);
229
+ width: calc(var(--form-size-height) * 2);
230
+ height: var(--form-size-height);
231
+ touch-action: none;
232
+ flex-shrink: 0;
233
+ position: relative;
234
+ outline: none;
235
+ cursor: grab;
236
+ background-color: var(--form-colors-background-normal);
237
+ }
238
+ form-switch > div[off-color=black] {
239
+ background-color: var(--form-colors-basic-black);
240
+ }
241
+ form-switch > div[off-color=green] {
242
+ background-color: var(--form-colors-basic-green);
243
+ }
244
+ form-switch > div[off-color=red] {
245
+ background-color: var(--form-colors-basic-red);
246
+ }
247
+ form-switch > div[off-color=blue] {
248
+ background-color: var(--form-colors-basic-blue);
249
+ }
250
+ form-switch > div[off-color=yellow] {
251
+ background-color: var(--form-colors-basic-yellow);
252
+ }
253
+ form-switch > div.on {
254
+ background-color: var(--form-colors-background-normal);
255
+ }
256
+ form-switch > div.on[on-color=black] {
257
+ background-color: var(--form-colors-basic-black);
258
+ }
259
+ form-switch > div.on[on-color=green] {
260
+ background-color: var(--form-colors-basic-green);
261
+ }
262
+ form-switch > div.on[on-color=red] {
263
+ background-color: var(--form-colors-basic-red);
264
+ }
265
+ form-switch > div.on[on-color=blue] {
266
+ background-color: var(--form-colors-basic-blue);
267
+ }
268
+ form-switch > div.on[on-color=yellow] {
269
+ background-color: var(--form-colors-basic-yellow);
270
+ }
271
+ form-switch > div.on::after {
272
+ left: var(--form-size-height);
273
+ }
274
+ .touch form-switch > div.on::after {
275
+ left: var(--form-size-touchHeight);
276
+ }
277
+ form-switch > div.error {
278
+ background-color: var(--form-colors-background-normal);
279
+ }
280
+ form-switch > div.error[error-color=black] {
281
+ background-color: var(--form-colors-basic-black);
282
+ }
283
+ form-switch > div.error[error-color=green] {
284
+ background-color: var(--form-colors-basic-green);
285
+ }
286
+ form-switch > div.error[error-color=red] {
287
+ background-color: var(--form-colors-basic-red);
288
+ }
289
+ form-switch > div.error[error-color=blue] {
290
+ background-color: var(--form-colors-basic-blue);
291
+ }
292
+ form-switch > div.error[error-color=yellow] {
293
+ background-color: var(--form-colors-basic-yellow);
294
+ }
295
+ form-switch > div.error::after {
296
+ left: var(--form-size-height)/2;
297
+ }
298
+ .touch form-switch > div.error::after {
299
+ left: var(--form-size-touchHeight)/2;
300
+ }
301
+ form-switch > div.active {
302
+ cursor: grabbing;
303
+ }
304
+ form-switch > div::after {
305
+ touch-action: none;
306
+ content: "";
307
+ left: 0rem;
308
+ position: absolute;
309
+ background-color: var(--form-colors-background-normal);
310
+ box-shadow: inset 0 0 0px 2px var(--form-colors-border-normal), 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
311
+ width: var(--form-size-height);
312
+ height: var(--form-size-height);
313
+ border-radius: var(--form-size-height);
314
+ }
315
+ .touch form-switch > div::after {
316
+ width: var(--form-size-touchHeight);
317
+ height: var(--form-size-touchHeight);
318
+ }
319
+ .touch form-switch > div {
320
+ width: calc(var(--form-size-touchHeight) * 2);
321
+ height: var(--form-size-touchHeight);
322
+ }
323
+ form-switch > div:focus-visible {
324
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
325
+ z-index: 2;
326
+ }
327
+ form-switch > svg {
328
+ box-sizing: border-box;
329
+ fill: var(--form-colors-text-normal);
330
+ height: var(--form-size-height);
331
+ max-width: var(--form-size-height);
332
+ width: auto;
333
+ padding: 0.2rem;
334
+ flex-shrink: 0;
335
+ }
336
+ .touch form-switch > svg {
337
+ height: var(--form-size-touchHeight);
338
+ max-width: var(--form-size-touchHeight);
339
+ padding: 0.4rem;
340
+ }
341
+ .anim-all form-switch > svg {
342
+ transition: ease-in-out var(--animation-speed), height ease-in-out var(--animation-speed), max-width ease-in-out var(--animation-speed);
343
+ }
344
+ form-switch > span {
345
+ display: block;
346
+ padding: 0.1rem 0.1rem 0.1rem 0.1rem;
347
+ color: var(--form-colors-text-normal);
348
+ }
349
+ form-switch > span:empty {
350
+ display: none;
351
+ }
352
+ .anim-all form-switch > span {
353
+ transition: color ease-in-out var(--animation-speed);
354
+ }
355
+ .touch form-switch > span {
356
+ font-size: 1.1rem;
357
+ }
358
+ @font-face {
359
+ font-family: Material Symbols Rounded;
360
+ font-style: normal;
361
+ font-weight: 400;
362
+ src: url("./Material-Rounded-ZKTXTWUN.woff2") format("woff2");
363
+ }
364
+ form-group {
365
+ margin-bottom: 0.5rem;
366
+ }
367
+ form-group:last-child {
368
+ margin-bottom: 0;
369
+ }
370
+ form-group:nth-last-child(1 of :not(:empty)) {
371
+ margin-bottom: 0;
372
+ }
373
+ form-group[inert] {
374
+ opacity: 0.6;
375
+ pointer-events: none;
376
+ }
377
+ form-group {
378
+ --max_height: none;
379
+ display: flex;
380
+ flex-direction: column;
381
+ background-color: inherit;
382
+ z-index: 0;
383
+ }
384
+ form-group.inset {
385
+ border: 0.0625rem solid var(--form-colors-border-normal);
386
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
387
+ border-radius: 0.6rem;
388
+ }
389
+ form-group.outset {
390
+ border: 0.0625rem solid var(--form-colors-border-normal);
391
+ border-radius: 0.6rem;
392
+ }
393
+ form-group + form-group:not(.collapsible) {
394
+ padding-top: 0rem;
395
+ }
396
+ form-group + form-group.collapsible > div {
397
+ padding-top: 0rem;
398
+ }
399
+ form-group:not(.collapsible) {
400
+ max-height: var(--max_height);
401
+ padding: 0.6rem;
402
+ min-width: fit-content;
403
+ }
404
+ form-group:not(.collapsible).max_height {
405
+ overflow-y: auto;
406
+ }
407
+ form-group:not(.collapsible).embed {
408
+ padding: 0;
409
+ }
410
+ form-group:not(.collapsible).outset {
411
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
412
+ }
413
+ form-group:not(.collapsible):empty {
414
+ display: none;
415
+ }
416
+ form-group.collapsible.embed > div {
417
+ padding: 0;
418
+ padding-bottom: 0.5rem;
419
+ }
420
+ form-group.collapsible.max_height > div {
421
+ overflow-y: auto;
422
+ }
423
+ form-group.collapsible > div {
424
+ max-height: var(--max_height);
425
+ padding: 0.6rem;
426
+ min-width: fit-content;
427
+ border-radius: 0.5rem;
428
+ }
429
+ form-group.collapsible > span {
430
+ z-index: 2;
431
+ border: 0.0625rem solid var(--form-colors-border-normal);
432
+ min-height: var(--form-size-height);
433
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
434
+ border-radius: 0.6rem;
435
+ background-color: var(--form-colors-background-normal);
436
+ display: flex;
437
+ justify-content: space-between;
438
+ align-items: center;
439
+ cursor: pointer;
440
+ user-select: none;
441
+ outline: none;
442
+ }
443
+ .touch form-group.collapsible > span {
444
+ min-height: var(--form-size-touchHeight);
445
+ }
446
+ @media (hover: hover) and (pointer: fine) {
447
+ form-group.collapsible > span:hover {
448
+ background-color: var(--form-colors-background-hover);
449
+ }
450
+ }
451
+ form-group.collapsible > span:focus-visible {
452
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal);
453
+ }
454
+ form-group.collapsible > span:focus-visible.active {
455
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal);
456
+ }
457
+ form-group.collapsible > span > span {
458
+ color: var(--form-colors-text-normal);
459
+ font-size: var(--form-font-size);
460
+ line-height: calc(var(--form-font-size) + 0.2rem);
461
+ padding-left: 0.2rem;
462
+ flex-grow: 1;
463
+ text-align: center;
464
+ }
465
+ .touch form-group.collapsible > span > span {
466
+ font-size: var(--form-font-touch_size);
467
+ line-height: calc(var(--form-font-touch_size) + 0.2rem);
468
+ }
469
+ form-group.collapsible > span > svg {
470
+ fill: var(--form-colors-text-normal);
471
+ max-width: var(--form-size-height);
472
+ height: calc(var(--form-size-height) - 2px);
473
+ box-sizing: border-box;
474
+ width: auto;
475
+ flex-shrink: 0;
476
+ }
477
+ .touch form-group.collapsible > span > svg {
478
+ height: var(--form-size-touchHeight);
479
+ max-width: var(--form-size-touchHeight)1rem;
480
+ padding: 0.5rem;
481
+ }
482
+ form-group.collapsed.collapsible > div {
483
+ display: none;
484
+ }
485
+ form-group.collapsed.collapsible > span > :nth-last-child(2) {
486
+ display: none;
487
+ }
488
+ form-group:not(.collapsed).collapsible > span > :last-child {
489
+ display: none;
490
+ }
491
+ form-listfield {
492
+ margin-bottom: 0.5rem;
493
+ }
494
+ form-listfield:last-child {
495
+ margin-bottom: 0;
496
+ }
497
+ form-listfield:nth-last-child(1 of :not(:empty)) {
498
+ margin-bottom: 0;
499
+ }
500
+ form-listfield[inert] {
501
+ opacity: 0.6;
502
+ pointer-events: none;
503
+ }
504
+ form-listfield {
505
+ padding: 0.2rem;
506
+ }
507
+ form-numberinput {
508
+ margin-bottom: 0.5rem;
509
+ }
510
+ form-numberinput:last-child {
511
+ margin-bottom: 0;
512
+ }
513
+ form-numberinput:nth-last-child(1 of :not(:empty)) {
514
+ margin-bottom: 0;
515
+ }
516
+ form-numberinput[inert] {
517
+ opacity: 0.6;
518
+ pointer-events: none;
519
+ }
520
+ form-numberinput {
521
+ border: 0.0625rem solid var(--form-colors-border-normal);
522
+ height: var(--form-size-height);
523
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
524
+ border-radius: 0.6rem;
525
+ background-color: var(--form-colors-background-normal);
526
+ position: relative;
527
+ box-sizing: border-box;
528
+ min-width: min-content;
529
+ display: flex;
530
+ align-items: center;
531
+ -webkit-user-select: none;
532
+ user-select: none;
533
+ cursor: text;
534
+ outline: none;
535
+ }
536
+ form-numberinput:focus-within {
537
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
538
+ }
539
+ .touch form-numberinput {
540
+ min-width: 14rem;
541
+ height: var(--form-size-touchHeight);
542
+ }
543
+ @media (pointer: fine) {
544
+ form-numberinput:hover {
545
+ background-color: var(--form-colors-background-hover);
546
+ }
547
+ }
548
+ form-numberinput > span:first-child {
549
+ color: var(--form-colors-text-normal);
550
+ font-size: 0.9rem;
551
+ line-height: 1.3rem;
552
+ }
553
+ .touch form-numberinput > span:first-child {
554
+ font-size: 1.26rem;
555
+ line-height: 1.66rem;
556
+ }
557
+ form-numberinput > span:first-child {
558
+ padding-left: 0.5rem;
559
+ min-width: 4rem;
560
+ outline: none;
561
+ height: 100%;
562
+ display: flex;
563
+ text-align: end;
564
+ align-items: center;
565
+ justify-content: flex-end;
566
+ }
567
+ .touch form-numberinput > span:first-child {
568
+ min-width: 5rem;
569
+ }
570
+ form-numberinput > span:nth-child(2) {
571
+ color: var(--form-colors-text-normal);
572
+ font-size: 0.7rem;
573
+ line-height: 1.3rem;
574
+ }
575
+ .touch form-numberinput > span:nth-child(2) {
576
+ font-size: 0.98rem;
577
+ line-height: 1.66rem;
578
+ }
579
+ form-numberinput > span:nth-child(2) {
580
+ display: block;
581
+ max-width: 3.92rem;
582
+ overflow: hidden;
583
+ white-space: nowrap;
584
+ text-overflow: ellipsis;
585
+ }
586
+ form-numberinput > span:nth-child(2):empty {
587
+ width: 0px !important;
588
+ }
589
+ .touch form-numberinput > span:nth-child(2) {
590
+ max-width: 5.488rem;
591
+ }
592
+ form-numberinput > span:nth-child(2) {
593
+ padding-left: 0.3rem;
594
+ -webkit-user-select: none;
595
+ user-select: none;
596
+ }
597
+ form-numberinput > div {
598
+ color: var(--form-colors-text-normal);
599
+ display: flex;
600
+ flex-direction: column;
601
+ text-align: end;
602
+ flex-grow: 1;
603
+ padding-right: 0.3rem;
604
+ align-items: flex-end;
605
+ }
606
+ form-numberinput > div > span {
607
+ color: var(--form-colors-text-normal);
608
+ font-size: 0.7rem;
609
+ line-height: 0.7rem;
610
+ }
611
+ .touch form-numberinput > div > span {
612
+ font-size: 0.9rem;
613
+ line-height: 1rem;
614
+ }
615
+ form-numberinput > input {
616
+ all: unset;
617
+ visibility: hidden;
618
+ position: absolute;
619
+ width: 100%;
620
+ height: 100%;
621
+ inset: 0;
622
+ }
623
+ form-progress {
624
+ margin-bottom: 0.5rem;
625
+ }
626
+ form-progress:last-child {
627
+ margin-bottom: 0;
628
+ }
629
+ form-progress:nth-last-child(1 of :not(:empty)) {
630
+ margin-bottom: 0;
631
+ }
632
+ form-progress[inert] {
633
+ opacity: 0.6;
634
+ pointer-events: none;
635
+ }
636
+ form-progress {
637
+ height: var(--form-size-height);
638
+ border-radius: 0.6rem;
639
+ background-color: var(--form-colors-background-normal);
640
+ position: relative;
641
+ -webkit-user-select: none;
642
+ user-select: none;
643
+ display: flex;
644
+ align-items: center;
645
+ }
646
+ .touch form-progress {
647
+ height: var(--form-size-touchHeight);
648
+ }
649
+ .anim-all form-progress {
650
+ transition: height ease-in-out var(--animation-speed), background-color ease-in-out var(--animation-speed);
651
+ }
652
+ form-progress > div {
653
+ position: absolute;
654
+ border-radius: 0.6rem;
655
+ height: 100%;
656
+ left: 0px;
657
+ top: 0px;
658
+ width: 0%;
659
+ background-color: var(--form-colors-basic-green);
660
+ z-index: 1;
661
+ }
662
+ form-progress > span {
663
+ padding-left: 0.3rem;
664
+ height: min-content;
665
+ position: relative;
666
+ z-index: 1;
667
+ color: var(--form-colors-text-normal);
668
+ }
669
+ form-progress > span:nth-child(2) {
670
+ color: var(--form-colors-text-normal);
671
+ font-size: 0.9rem;
672
+ line-height: 1.3rem;
673
+ }
674
+ .touch form-progress > span:nth-child(2) {
675
+ font-size: 1.26rem;
676
+ line-height: 1.66rem;
677
+ }
678
+ form-progress > span:nth-child(2) {
679
+ min-width: 3rem;
680
+ text-align: end;
681
+ padding-left: 0.5rem;
682
+ }
683
+ .touch form-progress > span:nth-child(2) {
684
+ min-width: 5rem;
685
+ }
686
+ form-progress > span:last-child {
687
+ color: var(--form-colors-text-normal);
688
+ font-size: 0.7rem;
689
+ line-height: 1.3rem;
690
+ }
691
+ .touch form-progress > span:last-child {
692
+ font-size: 0.98rem;
693
+ line-height: 1.66rem;
694
+ }
695
+ form-progress > span:last-child {
696
+ display: block;
697
+ max-width: 3.92rem;
698
+ overflow: hidden;
699
+ white-space: nowrap;
700
+ text-overflow: ellipsis;
701
+ }
702
+ form-progress > span:last-child:empty {
703
+ width: 0px !important;
704
+ }
705
+ .touch form-progress > span:last-child {
706
+ max-width: 5.488rem;
707
+ }
708
+ form-progress::after {
709
+ content: "";
710
+ border: 0.0625rem solid var(--form-colors-border-normal);
711
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
712
+ border-radius: 0.6rem;
713
+ inset: 0;
714
+ position: absolute;
715
+ z-index: 1;
716
+ }
717
+ form-slider {
718
+ margin-bottom: 0.5rem;
719
+ }
720
+ form-slider:last-child {
721
+ margin-bottom: 0;
722
+ }
723
+ form-slider:nth-last-child(1 of :not(:empty)) {
724
+ margin-bottom: 0;
725
+ }
726
+ form-slider[inert] {
727
+ opacity: 0.6;
728
+ pointer-events: none;
729
+ }
730
+ form-slider {
731
+ border: 0.0625rem solid var(--form-colors-border-normal);
732
+ height: var(--form-size-height);
733
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
734
+ border-radius: 0.6rem;
735
+ background-color: var(--form-colors-background-normal);
736
+ -webkit-user-select: none;
737
+ user-select: none;
738
+ box-sizing: border-box;
739
+ position: relative;
740
+ display: flex;
741
+ flex-direction: row;
742
+ justify-content: flex-start;
743
+ }
744
+ .touch form-slider {
745
+ height: var(--form-size-touchHeight);
746
+ }
747
+ form-slider > div {
748
+ display: flex;
749
+ justify-content: space-between;
750
+ align-items: center;
751
+ height: 100%;
752
+ width: calc(100% - (4.52rem + var(--form-size-height) * 2 - 0.25rem));
753
+ position: relative;
754
+ left: -0.125rem;
755
+ z-index: 1;
756
+ }
757
+ .touch form-slider > div {
758
+ width: calc(100% - (6.088rem + var(--form-size-touchHeight) * 2 - 0.25rem));
759
+ }
760
+ form-slider > div > div {
761
+ top: -0.0625rem;
762
+ width: 4.52rem;
763
+ border: 0.0625rem solid var(--form-colors-border-normal);
764
+ height: var(--form-size-height);
765
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
766
+ border-radius: 0.6rem;
767
+ background-color: var(--form-colors-background-normal);
768
+ box-sizing: border-box;
769
+ left: 50%;
770
+ position: absolute;
771
+ display: flex;
772
+ flex-direction: column;
773
+ justify-content: center;
774
+ align-items: center;
775
+ padding-inline: 0.2rem;
776
+ outline: none;
777
+ cursor: grab;
778
+ touch-action: pan-y;
779
+ }
780
+ form-slider > div > div.active {
781
+ cursor: grabbing;
782
+ }
783
+ form-slider > div > div:focus-visible {
784
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal), 0 0 0 0.2rem var(--form-colors-focus-normal);
785
+ z-index: 2;
786
+ }
787
+ @media (pointer: fine) {
788
+ form-slider > div > div:hover {
789
+ background-color: var(--form-colors-background-hover);
790
+ }
791
+ }
792
+ .touch form-slider > div > div {
793
+ height: var(--form-size-touchHeight);
794
+ width: 6.088rem;
795
+ }
796
+ form-slider > div > div > span:first-child {
797
+ color: var(--form-colors-text-normal);
798
+ font-size: 0.9rem;
799
+ line-height: 1.3rem;
800
+ }
801
+ .touch form-slider > div > div > span:first-child {
802
+ font-size: 1.26rem;
803
+ line-height: 1.66rem;
804
+ }
805
+ form-slider > div > div > span:first-child {
806
+ box-sizing: border-box;
807
+ line-height: 0.8rem;
808
+ text-align: center;
809
+ max-width: 4.12rem;
810
+ overflow: hidden;
811
+ }
812
+ .touch form-slider > div > div > span:first-child {
813
+ line-height: 1.26rem;
814
+ max-width: 6.088rem;
815
+ }
816
+ form-slider > div > div > span:last-child {
817
+ color: var(--form-colors-text-normal);
818
+ font-size: 0.7rem;
819
+ line-height: 1.3rem;
820
+ }
821
+ .touch form-slider > div > div > span:last-child {
822
+ font-size: 0.98rem;
823
+ line-height: 1.66rem;
824
+ }
825
+ form-slider > div > div > span:last-child {
826
+ display: block;
827
+ max-width: 3.92rem;
828
+ overflow: hidden;
829
+ white-space: nowrap;
830
+ text-overflow: ellipsis;
831
+ }
832
+ form-slider > div > div > span:last-child:empty {
833
+ width: 0px !important;
834
+ }
835
+ .touch form-slider > div > div > span:last-child {
836
+ max-width: 5.488rem;
837
+ }
838
+ form-slider > div > div > span:last-child {
839
+ line-height: 0.6rem;
840
+ text-align: center;
841
+ }
842
+ .touch form-slider > div > div > span:last-child {
843
+ line-height: 0.98rem;
844
+ }
845
+ form-slider > svg {
846
+ top: -0.0625rem;
847
+ fill: var(--form-colors-text-normal);
848
+ width: var(--form-size-height);
849
+ border: 0.0625rem solid var(--form-colors-border-normal);
850
+ height: var(--form-size-height);
851
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
852
+ border-radius: 0.6rem;
853
+ background-color: var(--form-colors-background-normal);
854
+ box-sizing: border-box;
855
+ position: relative;
856
+ padding: 0.14rem;
857
+ flex-shrink: 0;
858
+ pointer-events: all;
859
+ cursor: auto;
860
+ }
861
+ form-slider > svg.active {
862
+ box-shadow: 0 0 0.1875rem 0 var(--form-colors-border-normal);
863
+ }
864
+ .touch form-slider > svg {
865
+ height: var(--form-size-touchHeight);
866
+ width: var(--form-size-touchHeight);
867
+ padding: 0.2rem;
868
+ }
869
+ @media (pointer: fine) {
870
+ form-slider > svg:hover {
871
+ background-color: var(--form-colors-background-hover);
872
+ }
873
+ }
874
+ form-slider > svg {
875
+ z-index: 1;
876
+ }
877
+ form-slider > svg:nth-child(2) {
878
+ left: -0.0625rem;
879
+ }
880
+ form-slider > svg:nth-child(4) {
881
+ position: absolute;
882
+ right: -0.0625rem;
883
+ }
884
+ form-slider > span {
885
+ position: absolute;
886
+ inset: 0;
887
+ padding-left: calc(var(--form-size-height) + 0.4rem);
888
+ padding-right: calc(var(--form-size-height) + 0.4rem);
889
+ justify-content: space-between;
890
+ align-items: center;
891
+ gap: 0.4rem;
892
+ display: flex;
893
+ }
894
+ .touch form-slider > span {
895
+ padding-left: calc(var(--form-size-touchHeight) + 0.4rem);
896
+ padding-right: calc(var(--form-size-touchHeight) + 0.4rem);
897
+ }
898
+ form-slider > span > * {
899
+ color: var(--form-colors-text-normal);
900
+ font-size: 0.7rem;
901
+ line-height: 0.7rem;
902
+ }
903
+ .touch form-slider > span > * {
904
+ font-size: 0.9rem;
905
+ line-height: 1rem;
906
+ }
907
+ form-slider > span > * {
908
+ overflow: hidden;
909
+ }
910
+ form-slider > input {
911
+ all: unset;
912
+ visibility: hidden;
913
+ position: absolute;
914
+ width: 100%;
915
+ height: 100%;
916
+ inset: 0;
917
+ }
918
+ form-stepper {
919
+ margin-bottom: 0.5rem;
920
+ }
921
+ form-stepper:last-child {
922
+ margin-bottom: 0;
923
+ }
924
+ form-stepper:nth-last-child(1 of :not(:empty)) {
925
+ margin-bottom: 0;
926
+ }
927
+ form-stepper[inert] {
928
+ opacity: 0.6;
929
+ pointer-events: none;
930
+ }
931
+ form-stepper {
932
+ height: var(--form-size-height);
933
+ border: 0.0625rem solid var(--form-colors-border-normal);
934
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
935
+ border-radius: 0.6rem;
936
+ background-color: var(--form-colors-background-normal);
937
+ box-sizing: border-box;
938
+ min-width: min-content;
939
+ display: flex;
940
+ justify-content: space-between;
941
+ align-items: stretch;
942
+ -webkit-user-select: none;
943
+ user-select: none;
944
+ cursor: ew-resize;
945
+ outline: none;
946
+ touch-action: pan-y;
947
+ }
948
+ .touch form-stepper {
949
+ min-width: 14rem;
950
+ height: var(--form-size-touchHeight);
951
+ }
952
+ form-stepper:has(:focus) {
953
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
954
+ }
955
+ form-stepper:focus-visible {
956
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
957
+ }
958
+ @media (pointer: fine) {
959
+ form-stepper:hover {
960
+ background-color: var(--form-colors-background-hover);
961
+ }
962
+ }
963
+ form-stepper > span {
964
+ display: flex;
965
+ position: relative;
966
+ align-items: center;
967
+ width: 100%;
968
+ outline: none;
969
+ }
970
+ form-stepper > span > span:nth-child(1) {
971
+ color: var(--form-colors-text-normal);
972
+ font-size: 0.9rem;
973
+ line-height: 1.3rem;
974
+ }
975
+ .touch form-stepper > span > span:nth-child(1) {
976
+ font-size: 1.26rem;
977
+ line-height: 1.66rem;
978
+ }
979
+ form-stepper > span > span:nth-child(1) {
980
+ padding-left: 0.3rem;
981
+ min-width: 3rem;
982
+ text-align: end;
983
+ outline: none;
984
+ cursor: text;
985
+ }
986
+ .touch form-stepper > span > span:nth-child(1) {
987
+ min-width: 4rem;
988
+ }
989
+ form-stepper > span > span:nth-child(2) {
990
+ color: var(--form-colors-text-normal);
991
+ font-size: 0.7rem;
992
+ line-height: 1.3rem;
993
+ }
994
+ .touch form-stepper > span > span:nth-child(2) {
995
+ font-size: 0.98rem;
996
+ line-height: 1.66rem;
997
+ }
998
+ form-stepper > span > span:nth-child(2) {
999
+ display: block;
1000
+ max-width: 3.92rem;
1001
+ overflow: hidden;
1002
+ white-space: nowrap;
1003
+ text-overflow: ellipsis;
1004
+ }
1005
+ form-stepper > span > span:nth-child(2):empty {
1006
+ width: 0px !important;
1007
+ }
1008
+ .touch form-stepper > span > span:nth-child(2) {
1009
+ max-width: 5.488rem;
1010
+ }
1011
+ form-stepper > span > span:nth-child(2) {
1012
+ padding-left: 0.3rem;
1013
+ -webkit-user-select: none;
1014
+ user-select: none;
1015
+ }
1016
+ form-stepper > span > span:nth-child(3) {
1017
+ color: var(--form-colors-text-normal);
1018
+ display: flex;
1019
+ flex-direction: column;
1020
+ text-align: end;
1021
+ flex-grow: 1;
1022
+ padding-right: 0.3rem;
1023
+ align-items: flex-end;
1024
+ }
1025
+ form-stepper > span > span:nth-child(3) > span {
1026
+ color: var(--form-colors-text-normal);
1027
+ font-size: 0.7rem;
1028
+ line-height: 0.7rem;
1029
+ }
1030
+ .touch form-stepper > span > span:nth-child(3) > span {
1031
+ font-size: 0.9rem;
1032
+ line-height: 1rem;
1033
+ }
1034
+ form-stepper > span > button {
1035
+ position: absolute;
1036
+ inset: 0;
1037
+ visibility: hidden;
1038
+ }
1039
+ form-stepper > svg {
1040
+ top: -0.0625rem;
1041
+ fill: var(--form-colors-text-normal);
1042
+ width: var(--form-size-height);
1043
+ border: 0.0625rem solid var(--form-colors-border-normal);
1044
+ height: var(--form-size-height);
1045
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1046
+ border-radius: 0.6rem;
1047
+ background-color: var(--form-colors-background-normal);
1048
+ box-sizing: border-box;
1049
+ position: relative;
1050
+ padding: 0.14rem;
1051
+ flex-shrink: 0;
1052
+ pointer-events: all;
1053
+ cursor: auto;
1054
+ }
1055
+ form-stepper > svg.active {
1056
+ box-shadow: 0 0 0.1875rem 0 var(--form-colors-border-normal);
1057
+ }
1058
+ .touch form-stepper > svg {
1059
+ height: var(--form-size-touchHeight);
1060
+ width: var(--form-size-touchHeight);
1061
+ padding: 0.2rem;
1062
+ }
1063
+ @media (pointer: fine) {
1064
+ form-stepper > svg:hover {
1065
+ background-color: var(--form-colors-background-hover);
1066
+ }
1067
+ }
1068
+ form-stepper > svg:nth-child(2) {
1069
+ left: -0.0625rem;
1070
+ }
1071
+ form-stepper > svg:last-child {
1072
+ right: -0.0625rem;
1073
+ }
1074
+ form-stepper > input {
1075
+ all: unset;
1076
+ visibility: hidden;
1077
+ position: absolute;
1078
+ width: 100%;
1079
+ height: 100%;
1080
+ inset: 0;
1081
+ }
1082
+ form-dropdown {
1083
+ margin-bottom: 0.5rem;
1084
+ }
1085
+ form-dropdown:last-child {
1086
+ margin-bottom: 0;
1087
+ }
1088
+ form-dropdown:nth-last-child(1 of :not(:empty)) {
1089
+ margin-bottom: 0;
1090
+ }
1091
+ form-dropdown[inert] {
1092
+ opacity: 0.6;
1093
+ pointer-events: none;
1094
+ }
1095
+ form-dropdown {
1096
+ background-color: var(--form-colors-background-normal);
1097
+ border: 0.0625rem solid var(--form-colors-border-normal);
1098
+ border-radius: 0.6rem;
1099
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1100
+ min-height: var(--form-size-height);
1101
+ display: flex;
1102
+ flex-direction: row;
1103
+ align-items: center;
1104
+ justify-content: space-between;
1105
+ box-sizing: border-box;
1106
+ outline: none;
1107
+ position: relative;
1108
+ -webkit-user-select: none;
1109
+ user-select: none;
1110
+ }
1111
+ .touch form-dropdown {
1112
+ min-height: var(--form-size-touchHeight);
1113
+ }
1114
+ form-dropdown:focus-visible {
1115
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal), 0 0 0 0.2rem var(--form-colors-focus-normal);
1116
+ }
1117
+ @media (pointer: fine) {
1118
+ form-dropdown:hover {
1119
+ background-color: var(--form-colors-background-hover);
1120
+ }
1121
+ }
1122
+ form-dropdown > input {
1123
+ all: unset;
1124
+ visibility: hidden;
1125
+ position: absolute;
1126
+ width: 100%;
1127
+ height: 100%;
1128
+ inset: 0;
1129
+ }
1130
+ form-dropdown > svg:first-child {
1131
+ fill: var(--form-colors-text-normal);
1132
+ max-height: calc(var(--form-size-height) - 2px);
1133
+ box-sizing: border-box;
1134
+ padding: 0.1rem;
1135
+ flex-shrink: 0;
1136
+ flex-basis: var(--form-size-height);
1137
+ }
1138
+ form-dropdown > div {
1139
+ color: var(--form-colors-text-normal);
1140
+ padding-left: 0.2rem;
1141
+ line-height: calc(var(--form-font-size) + 0.2rem);
1142
+ box-sizing: border-box;
1143
+ vertical-align: middle;
1144
+ align-items: baseline;
1145
+ flex-grow: 1;
1146
+ }
1147
+ .touch form-dropdown > div {
1148
+ font-size: var(--form-font-touch_size);
1149
+ line-height: calc(var(--form-font-touch_size) + 0.2rem);
1150
+ }
1151
+ form-dropdown > svg:nth-last-child(2) {
1152
+ box-sizing: border-box;
1153
+ flex-shrink: 0;
1154
+ fill: var(--form-colors-text-normal);
1155
+ width: 1.6rem;
1156
+ }
1157
+
1158
+ form-dropdownbox {
1159
+ position: fixed;
1160
+ display: none;
1161
+ inset: 0;
1162
+ z-index: 99999999;
1163
+ -webkit-user-select: none;
1164
+ user-select: none;
1165
+ }
1166
+ form-dropdownbox.open {
1167
+ display: block;
1168
+ }
1169
+ form-dropdownbox > div {
1170
+ border: 0.0625rem solid var(--form-colors-border-normal);
1171
+ border-radius: 0.6rem;
1172
+ background-color: var(--form-colors-background-normal);
1173
+ box-shadow: 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1174
+ outline: none;
1175
+ position: fixed;
1176
+ display: flex;
1177
+ box-sizing: border-box;
1178
+ flex-direction: row;
1179
+ overflow: hidden;
1180
+ }
1181
+ form-dropdownbox > div:focus-visible {
1182
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal);
1183
+ }
1184
+ form-dropdownbox > div > div {
1185
+ box-sizing: border-box;
1186
+ overflow-y: auto;
1187
+ overflow-x: hidden;
1188
+ scrollbar-width: thin;
1189
+ overscroll-behavior: contain;
1190
+ outline: none;
1191
+ position: relative;
1192
+ }
1193
+ form-dropdownbox > div > div.scroll {
1194
+ touch-action: auto;
1195
+ }
1196
+ form-dropdownbox > div > div > div {
1197
+ width: 100%;
1198
+ display: table;
1199
+ position: relative;
1200
+ }
1201
+ form-dropdownbox > div > div > div > div {
1202
+ fill: var(--form-colors-text-unselected);
1203
+ color: var(--form-colors-text-unselected);
1204
+ display: table-row;
1205
+ outline: none;
1206
+ position: relative;
1207
+ }
1208
+ form-dropdownbox > div > div > div > div:focus-visible::after {
1209
+ content: "";
1210
+ inset: 0;
1211
+ z-index: 0;
1212
+ position: absolute;
1213
+ box-shadow: inset 0 0 0 0.2rem var(--form-colors-focus-normal);
1214
+ }
1215
+ form-dropdownbox > div > div > div > div:first-child::after {
1216
+ border-radius: 0.6rem 0 0 0;
1217
+ }
1218
+ form-dropdownbox > div > div > div > div:last-child::after {
1219
+ border-radius: 0 0 0 0.6rem;
1220
+ }
1221
+ @media (pointer: fine) {
1222
+ form-dropdownbox > div > div > div > div:hover::after {
1223
+ content: "";
1224
+ inset: 0;
1225
+ z-index: 0;
1226
+ position: absolute;
1227
+ background-color: var(--form-colors-background-hover);
1228
+ }
1229
+ }
1230
+ form-dropdownbox > div > div > div > div.selected {
1231
+ fill: var(--form-colors-text-selected);
1232
+ color: var(--form-colors-text-selected);
1233
+ }
1234
+ form-dropdownbox > div > div > div > div.selected::after {
1235
+ content: "";
1236
+ inset: 0;
1237
+ background-color: var(--form-colors-background-hover);
1238
+ position: absolute;
1239
+ z-index: 0;
1240
+ }
1241
+ form-dropdownbox > div > div > div > div:last-child {
1242
+ padding-left: 0.2rem;
1243
+ padding-right: 0.4rem;
1244
+ }
1245
+ .touch form-dropdownbox > div > div > div > div {
1246
+ height: var(--form-size-touchHeight);
1247
+ }
1248
+ form-dropdownbox > div > div > div > div > div {
1249
+ height: var(--form-size-height);
1250
+ padding-block: 0.2rem;
1251
+ line-height: calc(var(--form-font-size) + 0.2rem);
1252
+ display: table-cell;
1253
+ box-sizing: border-box;
1254
+ vertical-align: middle;
1255
+ position: relative;
1256
+ z-index: 1;
1257
+ }
1258
+ .touch form-dropdownbox > div > div > div > div > div {
1259
+ font-size: var(--form-font-touch_size);
1260
+ line-height: calc(var(--form-font-touch_size) + 0.2rem);
1261
+ }
1262
+ form-dropdownbox > div > div > div > div > div:first-child {
1263
+ padding-inline: 0.3rem;
1264
+ width: var(--form-size-height);
1265
+ }
1266
+ form-dropdownbox > div > div > div > div > div:first-child > svg {
1267
+ height: var(--form-size-height)-0.4rem;
1268
+ display: block;
1269
+ box-sizing: border-box;
1270
+ }
1271
+ .touch form-dropdownbox > div > div > div > div > div:first-child > svg {
1272
+ height: var(--form-size-touchHeight)-0.8rem;
1273
+ }
1274
+ form-dropdownbox > div > div > div > div > div:first-child:empty {
1275
+ padding: 0;
1276
+ padding-left: 0.2rem;
1277
+ }
1278
+ form-togglebutton {
1279
+ margin-bottom: 0.5rem;
1280
+ }
1281
+ form-togglebutton:last-child {
1282
+ margin-bottom: 0;
1283
+ }
1284
+ form-togglebutton:nth-last-child(1 of :not(:empty)) {
1285
+ margin-bottom: 0;
1286
+ }
1287
+ form-togglebutton[inert] {
1288
+ opacity: 0.6;
1289
+ pointer-events: none;
1290
+ }
1291
+ form-togglebutton {
1292
+ overflow-y: hidden;
1293
+ overflow-x: auto;
1294
+ -webkit-user-select: none;
1295
+ user-select: none;
1296
+ display: grid;
1297
+ grid-template-rows: auto auto;
1298
+ grid-auto-columns: 1fr;
1299
+ position: relative;
1300
+ margin-bottom: 0.3rem;
1301
+ }
1302
+ .touch form-togglebutton {
1303
+ font-size: var(--form-font-touch_size);
1304
+ }
1305
+ form-togglebutton > div {
1306
+ color: var(--form-colors-text-unselected);
1307
+ fill: var(--form-colors-text-unselected);
1308
+ display: flex;
1309
+ justify-content: center;
1310
+ text-align: center;
1311
+ box-sizing: border-box;
1312
+ position: relative;
1313
+ padding-inline: 0.0625rem;
1314
+ }
1315
+ form-togglebutton > div.selected {
1316
+ color: var(--form-colors-text-selected);
1317
+ fill: var(--form-colors-text-selected);
1318
+ }
1319
+ form-togglebutton > div:nth-child(odd) {
1320
+ grid-row: 1;
1321
+ align-items: center;
1322
+ background-color: var(--form-colors-background-normal);
1323
+ padding: 0.2rem;
1324
+ border-block: 0.0625rem solid var(--form-colors-border-normal);
1325
+ outline: none;
1326
+ min-height: var(--form-size-height);
1327
+ }
1328
+ form-togglebutton > div:nth-child(odd).selected {
1329
+ background-color: var(--form-colors-background-hover);
1330
+ z-index: 2;
1331
+ }
1332
+ form-togglebutton > div:nth-child(odd).selected::after {
1333
+ content: "";
1334
+ position: absolute;
1335
+ inset: 0;
1336
+ box-shadow: 0 0.21rem 0.2rem 0 var(--form-colors-border-normal), 0 0 0 1px var(--form-colors-border-normal);
1337
+ z-index: 1;
1338
+ }
1339
+ .touch form-togglebutton > div:nth-child(odd) {
1340
+ min-height: var(--form-size-touchHeight)-0.125rem;
1341
+ }
1342
+ form-togglebutton > div:nth-child(odd):focus-visible {
1343
+ z-index: 1;
1344
+ }
1345
+ form-togglebutton > div:nth-child(odd):focus-visible::before {
1346
+ content: "";
1347
+ position: absolute;
1348
+ box-shadow: inset 0 0 0 0.2rem var(--form-colors-focus-normal);
1349
+ inset: -1px;
1350
+ z-index: 2;
1351
+ }
1352
+ form-togglebutton > div:nth-child(odd):focus-visible:first-child::before {
1353
+ border-radius: 0.6rem 0 0 0.6rem;
1354
+ }
1355
+ form-togglebutton > div:nth-child(odd):focus-visible:nth-last-child(2)::before {
1356
+ border-radius: 0 0.6rem 0.6rem 0;
1357
+ }
1358
+ @media (pointer: fine) {
1359
+ form-togglebutton > div:nth-child(odd):hover {
1360
+ background-color: var(--form-colors-background-hover);
1361
+ }
1362
+ }
1363
+ form-togglebutton > div:nth-child(odd) > svg {
1364
+ height: calc(var(--form-size-height) - 0.4rem - 0.125rem);
1365
+ width: auto;
1366
+ }
1367
+ .touch form-togglebutton > div:nth-child(odd) > svg {
1368
+ height: calc(var(--form-size-touchHeight) - 0.4rem - 0.125rem);
1369
+ }
1370
+ form-togglebutton > div:nth-child(odd) > input {
1371
+ all: unset;
1372
+ visibility: hidden;
1373
+ position: absolute;
1374
+ width: 100%;
1375
+ height: 100%;
1376
+ inset: 0;
1377
+ }
1378
+ form-togglebutton > div:nth-child(even) {
1379
+ grid-row: 2;
1380
+ padding: 0.2rem;
1381
+ padding-top: 0;
1382
+ padding-bottom: 0;
1383
+ min-height: 0.2rem;
1384
+ }
1385
+ form-togglebutton > div:nth-child(even):empty {
1386
+ padding: 0rem;
1387
+ }
1388
+ form-togglebutton > div:first-child {
1389
+ border-radius: 0.6rem 0 0 0.6rem;
1390
+ border-left: 0.0625rem solid var(--form-colors-border-normal);
1391
+ }
1392
+ form-togglebutton > div:first-child::after {
1393
+ border-radius: 0.6rem 0 0 0.6rem;
1394
+ }
1395
+ form-togglebutton > div:nth-last-child(2) {
1396
+ border-radius: 0 0.6rem 0.6rem 0;
1397
+ border-right: 0.0625rem solid var(--form-colors-border-normal);
1398
+ }
1399
+ form-togglebutton > div:nth-last-child(2)::after {
1400
+ border-radius: 0 0.6rem 0.6rem 0;
1401
+ }
1402
+ *:empty + form-spacer {
1403
+ height: 0 !important;
1404
+ }
1405
+ form-colorinput {
1406
+ margin-bottom: 0.5rem;
1407
+ }
1408
+ form-colorinput:last-child {
1409
+ margin-bottom: 0;
1410
+ }
1411
+ form-colorinput:nth-last-child(1 of :not(:empty)) {
1412
+ margin-bottom: 0;
1413
+ }
1414
+ form-colorinput[inert] {
1415
+ opacity: 0.6;
1416
+ pointer-events: none;
1417
+ }
1418
+ form-colorinput {
1419
+ height: var(--form-size-height);
1420
+ border: 0.0625rem solid var(--form-colors-border-normal);
1421
+ border-radius: 0.6rem;
1422
+ background-color: var(--form-colors-background-normal);
1423
+ position: relative;
1424
+ box-sizing: border-box;
1425
+ min-width: min-content;
1426
+ display: flex;
1427
+ flex-direction: column;
1428
+ align-items: center;
1429
+ -webkit-user-select: none;
1430
+ user-select: none;
1431
+ outline: none;
1432
+ overflow: hidden;
1433
+ }
1434
+ form-colorinput:focus-within {
1435
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1436
+ }
1437
+ .touch form-colorinput {
1438
+ height: var(--form-size-touchHeight);
1439
+ }
1440
+ form-colorinput::after {
1441
+ content: "";
1442
+ position: absolute;
1443
+ inset: 0;
1444
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1445
+ pointer-events: none;
1446
+ }
1447
+ @media (pointer: fine) {
1448
+ form-colorinput:hover {
1449
+ background-color: var(--form-colors-background-hover);
1450
+ }
1451
+ }
1452
+ form-colorinput > input {
1453
+ outline: none;
1454
+ appearance: none;
1455
+ width: 100%;
1456
+ height: 100%;
1457
+ border: none;
1458
+ padding: 0;
1459
+ }
1460
+ form-colorinput > input::-webkit-color-swatch-wrapper {
1461
+ padding: 0;
1462
+ }
1463
+ form-colorinput > input::-webkit-color-swatch {
1464
+ border: none;
1465
+ }
1466
+ form-datetimeinput {
1467
+ margin-bottom: 0.5rem;
1468
+ }
1469
+ form-datetimeinput:last-child {
1470
+ margin-bottom: 0;
1471
+ }
1472
+ form-datetimeinput:nth-last-child(1 of :not(:empty)) {
1473
+ margin-bottom: 0;
1474
+ }
1475
+ form-datetimeinput[inert] {
1476
+ opacity: 0.6;
1477
+ pointer-events: none;
1478
+ }
1479
+ form-datetimeinput {
1480
+ border: 0.0625rem solid var(--form-colors-border-normal);
1481
+ height: var(--form-size-height);
1482
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1483
+ border-radius: 0.6rem;
1484
+ background-color: var(--form-colors-background-normal);
1485
+ box-sizing: border-box;
1486
+ min-width: min-content;
1487
+ display: flex;
1488
+ flex-direction: row;
1489
+ align-items: center;
1490
+ -webkit-user-select: none;
1491
+ user-select: none;
1492
+ outline: none;
1493
+ overflow: hidden;
1494
+ padding: 0.3rem;
1495
+ }
1496
+ form-datetimeinput:focus-within {
1497
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1498
+ }
1499
+ .touch form-datetimeinput {
1500
+ height: var(--form-size-touchHeight);
1501
+ }
1502
+ @media (pointer: fine) {
1503
+ form-datetimeinput:hover {
1504
+ background-color: var(--form-colors-background-hover);
1505
+ }
1506
+ }
1507
+ form-datetimeinput > input {
1508
+ color: var(--form-colors-text-normal);
1509
+ display: block;
1510
+ outline: none;
1511
+ appearance: none;
1512
+ width: 100%;
1513
+ height: 100%;
1514
+ border: none;
1515
+ background-color: transparent;
1516
+ font-size: var(--form-font-size);
1517
+ }
1518
+ form-datetimeinput > input::-webkit-calendar-picker-indicator {
1519
+ display: none;
1520
+ }
1521
+ .touch form-datetimeinput > input {
1522
+ font-size: var(--form-font-touch_size);
1523
+ }
1524
+ form-datetimeinput > svg {
1525
+ display: none;
1526
+ fill: var(--form-colors-text-normal);
1527
+ width: auto;
1528
+ height: calc(var(--form-size-height) / 1.3);
1529
+ }
1530
+ form-datetimeinput > input[type=date] ~ svg[icon=material_action_calendar_month_rounded],
1531
+ form-datetimeinput > input[type=time] ~ svg[icon=material_action_schedule_rounded],
1532
+ form-datetimeinput > input[type=datetime-local] ~ svg[icon=material_action_calendar_month_rounded] {
1533
+ display: block;
1534
+ }
1535
+ form-ipinput {
1536
+ margin-bottom: 0.5rem;
1537
+ }
1538
+ form-ipinput:last-child {
1539
+ margin-bottom: 0;
1540
+ }
1541
+ form-ipinput:nth-last-child(1 of :not(:empty)) {
1542
+ margin-bottom: 0;
1543
+ }
1544
+ form-ipinput[inert] {
1545
+ opacity: 0.6;
1546
+ pointer-events: none;
1547
+ }
1548
+ form-ipinput {
1549
+ border: 0.0625rem solid var(--form-colors-border-normal);
1550
+ height: var(--form-size-height);
1551
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1552
+ border-radius: 0.6rem;
1553
+ background-color: var(--form-colors-background-normal);
1554
+ box-sizing: border-box;
1555
+ min-width: min-content;
1556
+ display: flex;
1557
+ align-items: center;
1558
+ flex-direction: row;
1559
+ -webkit-user-select: none;
1560
+ user-select: none;
1561
+ outline: none;
1562
+ overflow: hidden;
1563
+ padding: 0.2rem;
1564
+ font-size: var(--form-font-size);
1565
+ }
1566
+ form-ipinput:focus-within {
1567
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1568
+ }
1569
+ .touch form-ipinput {
1570
+ height: var(--form-size-touchHeight);
1571
+ font-size: var(--form-font-touch_size);
1572
+ }
1573
+ @media (pointer: fine) {
1574
+ form-ipinput:hover {
1575
+ background-color: var(--form-colors-background-hover);
1576
+ }
1577
+ }
1578
+ form-ipinput > div {
1579
+ all: unset;
1580
+ color: var(--form-colors-text-normal);
1581
+ display: flex;
1582
+ align-items: center;
1583
+ justify-content: center;
1584
+ outline: none;
1585
+ appearance: none;
1586
+ text-align: center;
1587
+ flex-shrink: 1;
1588
+ min-width: 2.2rem;
1589
+ height: 100%;
1590
+ border: none;
1591
+ background-color: transparent;
1592
+ }
1593
+ .touch form-ipinput > div {
1594
+ min-width: 3.2rem;
1595
+ }
1596
+ form-ipinput > input:last-child {
1597
+ all: unset;
1598
+ visibility: hidden;
1599
+ position: absolute;
1600
+ width: 100%;
1601
+ height: 100%;
1602
+ inset: 0;
1603
+ }
1604
+ form-passwordinput {
1605
+ margin-bottom: 0.5rem;
1606
+ }
1607
+ form-passwordinput:last-child {
1608
+ margin-bottom: 0;
1609
+ }
1610
+ form-passwordinput:nth-last-child(1 of :not(:empty)) {
1611
+ margin-bottom: 0;
1612
+ }
1613
+ form-passwordinput[inert] {
1614
+ opacity: 0.6;
1615
+ pointer-events: none;
1616
+ }
1617
+ form-passwordinput {
1618
+ height: var(--form-size-height);
1619
+ border: 0.0625rem solid var(--form-colors-border-normal);
1620
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1621
+ border-radius: 0.6rem;
1622
+ background-color: var(--form-colors-background-normal);
1623
+ box-sizing: border-box;
1624
+ min-width: min-content;
1625
+ display: flex;
1626
+ flex-direction: column;
1627
+ align-items: center;
1628
+ -webkit-user-select: none;
1629
+ user-select: none;
1630
+ outline: none;
1631
+ overflow: hidden;
1632
+ padding: 0.3rem;
1633
+ }
1634
+ form-passwordinput:focus-within {
1635
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1636
+ }
1637
+ .touch form-passwordinput {
1638
+ height: var(--form-size-touchHeight);
1639
+ }
1640
+ @media (pointer: fine) {
1641
+ form-passwordinput:hover {
1642
+ background-color: var(--form-colors-background-hover);
1643
+ }
1644
+ }
1645
+ form-passwordinput > input {
1646
+ color: var(--form-colors-text-normal);
1647
+ display: block;
1648
+ outline: none;
1649
+ appearance: none;
1650
+ width: 100%;
1651
+ height: 100%;
1652
+ border: none;
1653
+ background-color: transparent;
1654
+ font-size: var(--form-font-size);
1655
+ }
1656
+ .touch form-passwordinput > input {
1657
+ font-size: var(--form-font-touch_size);
1658
+ }
1659
+ form-textinput {
1660
+ margin-bottom: 0.5rem;
1661
+ }
1662
+ form-textinput:last-child {
1663
+ margin-bottom: 0;
1664
+ }
1665
+ form-textinput:nth-last-child(1 of :not(:empty)) {
1666
+ margin-bottom: 0;
1667
+ }
1668
+ form-textinput[inert] {
1669
+ opacity: 0.6;
1670
+ pointer-events: none;
1671
+ }
1672
+ form-textinput {
1673
+ display: block;
1674
+ border: 0.0625rem solid var(--form-colors-border-normal);
1675
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1676
+ border-radius: 0.6rem;
1677
+ background-color: var(--form-colors-background-normal);
1678
+ position: relative;
1679
+ box-sizing: border-box;
1680
+ user-select: none;
1681
+ -webkit-user-select: none;
1682
+ outline: none;
1683
+ overflow-x: auto;
1684
+ }
1685
+ form-textinput:focus-within {
1686
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1687
+ }
1688
+ @media (pointer: fine) {
1689
+ form-textinput:hover {
1690
+ background-color: var(--form-colors-background-hover);
1691
+ }
1692
+ }
1693
+ form-textinput > input {
1694
+ all: unset;
1695
+ color: var(--form-colors-text-normal);
1696
+ font-size: 0.9rem;
1697
+ line-height: 1.3rem;
1698
+ }
1699
+ .touch form-textinput > input {
1700
+ font-size: 1.26rem;
1701
+ line-height: 1.66rem;
1702
+ }
1703
+ form-textinput > input {
1704
+ display: block;
1705
+ padding: 0.3rem;
1706
+ box-sizing: border-box;
1707
+ outline: none;
1708
+ width: max-content;
1709
+ min-width: 100%;
1710
+ height: var(--form-size-height);
1711
+ }
1712
+ .touch form-textinput > input {
1713
+ height: var(--form-size-touchHeight);
1714
+ }
1715
+ form-textmultiline {
1716
+ margin-bottom: 0.5rem;
1717
+ }
1718
+ form-textmultiline:last-child {
1719
+ margin-bottom: 0;
1720
+ }
1721
+ form-textmultiline:nth-last-child(1 of :not(:empty)) {
1722
+ margin-bottom: 0;
1723
+ }
1724
+ form-textmultiline[inert] {
1725
+ opacity: 0.6;
1726
+ pointer-events: none;
1727
+ }
1728
+ form-textmultiline {
1729
+ display: block;
1730
+ border: 0.0625rem solid var(--form-colors-border-normal);
1731
+ box-shadow: inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1732
+ border-radius: 0.6rem;
1733
+ background-color: var(--form-colors-background-normal);
1734
+ position: relative;
1735
+ box-sizing: border-box;
1736
+ user-select: none;
1737
+ -webkit-user-select: none;
1738
+ outline: none;
1739
+ }
1740
+ form-textmultiline:focus-within {
1741
+ box-shadow: 0 0 0 0.2rem var(--form-colors-focus-normal), inset 0 0.125rem 0.1875rem 0 var(--form-colors-border-normal);
1742
+ }
1743
+ form-textmultiline > textarea {
1744
+ color: var(--form-colors-text-normal);
1745
+ font-size: 0.9rem;
1746
+ line-height: 1.3rem;
1747
+ }
1748
+ .touch form-textmultiline > textarea {
1749
+ font-size: 1.26rem;
1750
+ line-height: 1.66rem;
1751
+ }
1752
+ form-textmultiline > textarea {
1753
+ all: unset;
1754
+ display: block;
1755
+ padding: 0.3rem;
1756
+ box-sizing: border-box;
1757
+ outline: none;
1758
+ width: 100%;
1759
+ min-height: var(--form-size-height);
1760
+ }
1761
+ .touch form-textmultiline > textarea {
1762
+ min-height: var(--form-size-touchHeight);
1763
+ }
1764
+ @media (pointer: fine) {
1765
+ form-textmultiline > textarea:hover {
1766
+ background-color: var(--form-colors-background-hover);
1767
+ }
1768
+ }
1769
+ form-textmultiline > div {
1770
+ touch-action: none;
1771
+ height: calc(var(--form-size-height) / 2);
1772
+ border-radius: 0.6rem;
1773
+ border-top: var(--form-colors-border-normal) solid 0.0625rem;
1774
+ display: flex;
1775
+ cursor: ns-resize;
1776
+ align-items: center;
1777
+ justify-content: center;
1778
+ }
1779
+ .touch form-textmultiline > div {
1780
+ height: calc(var(--form-size-touchHeight) / 2);
1781
+ }
1782
+ @media (pointer: fine) {
1783
+ form-textmultiline > div:hover {
1784
+ background-color: var(--form-colors-background-hover);
1785
+ }
1786
+ }
1787
+ form-textmultiline > div > svg {
1788
+ fill: var(--form-colors-text-normal);
1789
+ }
1790
+ form-textmultiline > input {
1791
+ all: unset;
1792
+ visibility: hidden;
1793
+ position: absolute;
1794
+ width: 100%;
1795
+ height: 100%;
1796
+ inset: 0;
1797
+ }
1798
+ form-text {
1799
+ margin-bottom: 0.5rem;
1800
+ }
1801
+ form-text:last-child {
1802
+ margin-bottom: 0;
1803
+ }
1804
+ form-text:nth-last-child(1 of :not(:empty)) {
1805
+ margin-bottom: 0;
1806
+ }
1807
+ form-text[inert] {
1808
+ opacity: 0.6;
1809
+ pointer-events: none;
1810
+ }
1811
+ form-text {
1812
+ display: block;
1813
+ color: var(--form-colors-text-normal);
1814
+ display: flex;
1815
+ flex-direction: column;
1816
+ justify-content: center;
1817
+ padding-inline: 0.2rem;
1818
+ margin-bottom: 0;
1819
+ line-height: 1.2rem;
1820
+ }
1821
+ .anim-all form-text {
1822
+ transition: color ease-in-out var(--animation-speed);
1823
+ }