@anyblades/blades 3.1.0-beta.7 → 3.1.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.
Files changed (74) hide show
  1. package/README.md +173 -140
  2. package/css/blades.css +6 -6
  3. package/css/blades.min.css +6 -6
  4. package/css/blades.ninja.css +6 -6
  5. package/css/blades.ninja.min.css +6 -6
  6. package/css/float-label.css +1 -1
  7. package/css/float-label.min.css +1 -1
  8. package/css/layered/README.md +164 -0
  9. package/css/layered/_compact.css +30 -0
  10. package/css/layered/_utilities.css +23 -0
  11. package/css/layered/_variables-blades.css +8 -0
  12. package/css/layered/_variables.css +258 -0
  13. package/css/layered/blades.layered.css +6 -6
  14. package/css/layered/blades.layered.min.css +6 -6
  15. package/css/layered/components/_accordion.css +93 -0
  16. package/css/layered/components/_card.css +37 -0
  17. package/css/layered/components/_dropdown-popover.css +89 -0
  18. package/css/layered/components/_dropdown.css +188 -0
  19. package/css/layered/components/_group.css +89 -0
  20. package/css/layered/components/_index.css +950 -0
  21. package/css/layered/components/_loading.css +51 -0
  22. package/css/layered/components/_modal-modern.css +17 -0
  23. package/css/layered/components/_modal.css +144 -0
  24. package/css/layered/components/_nav.css +114 -0
  25. package/css/layered/components/_progress.css +68 -0
  26. package/css/layered/components/_timeline.css +7 -0
  27. package/css/layered/components/_tooltip.css +158 -0
  28. package/css/layered/content/_button.css +125 -0
  29. package/css/layered/content/_code-block.css +17 -0
  30. package/css/layered/content/_code.css +46 -0
  31. package/css/layered/content/_embedded-content.css +33 -0
  32. package/css/layered/content/_figure.css +10 -0
  33. package/css/layered/content/_icon.css +30 -0
  34. package/css/layered/content/_index.css +456 -0
  35. package/css/layered/content/_link.css +59 -0
  36. package/css/layered/content/_misc.css +15 -0
  37. package/css/layered/content/_table.css +24 -0
  38. package/css/layered/content/_typography.css +137 -0
  39. package/css/layered/forms/_basics.css +257 -0
  40. package/css/layered/forms/_checkbox-radio-switch.css +132 -0
  41. package/css/layered/forms/_index.css +617 -0
  42. package/css/layered/forms/_input-color.css +17 -0
  43. package/css/layered/forms/_input-datetime.css +37 -0
  44. package/css/layered/forms/_input-file.css +25 -0
  45. package/css/layered/forms/_input-range.css +111 -0
  46. package/css/layered/forms/_input-search.css +32 -0
  47. package/css/layered/forms/float-label/_core.css +28 -0
  48. package/css/layered/forms/float-label/_index.css +54 -0
  49. package/css/layered/forms/float-label/_theme.css +25 -0
  50. package/css/layered/forms/float-label/core.css +1 -1
  51. package/css/layered/forms/float-label.css +1 -1
  52. package/css/layered/layout/_columns.css +7 -0
  53. package/css/layered/layout/_container.css +39 -0
  54. package/css/layered/layout/_document.css +37 -0
  55. package/css/layered/layout/_grid.css +17 -0
  56. package/css/layered/layout/_index.css +103 -0
  57. package/css/layered/layout/_landmarks.css +3 -0
  58. package/css/layered/layout/_overflow-auto.css +3 -0
  59. package/css/layered/layout/_section.css +3 -0
  60. package/css/pico.canonical.css +2512 -0
  61. package/css/pico.canonical.min.css +1 -0
  62. package/css/pico.canonical.unmin.css +2512 -0
  63. package/css/pico.canonical.unmin.min.css +1 -0
  64. package/css/pico.conditional.css +2 -2
  65. package/css/pico.conditional.min.css +2 -2
  66. package/css/pico.css +2 -2
  67. package/css/pico.min.css +2 -2
  68. package/css/pico.unmin.css +2365 -0
  69. package/css/pico.unmin.min.css +7 -0
  70. package/package.json +12 -9
  71. package/src/blades/_index.css +1 -1
  72. package/src/blades/forms/float-label/_core.css +1 -1
  73. package/src/blades.css +2 -2
  74. package/src/pico/_index.css +2 -2
@@ -0,0 +1,950 @@
1
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
2
+ --pico-accordion-border-color: var(--pico-muted-border-color);
3
+ --pico-accordion-active-summary-color: var(--pico-primary-hover);
4
+ --pico-accordion-close-summary-color: var(--pico-color);
5
+ --pico-accordion-open-summary-color: var(--pico-muted-color);
6
+ }
7
+
8
+ details {
9
+ margin-bottom: var(--pico-spacing);
10
+ display: block;
11
+ }
12
+
13
+ details summary {
14
+ cursor: pointer;
15
+ transition: color var(--pico-transition);
16
+ line-height: 1rem;
17
+ list-style-type: none;
18
+ }
19
+
20
+ details summary:not([role]) {
21
+ color: var(--pico-accordion-close-summary-color);
22
+ }
23
+
24
+ details summary::-webkit-details-marker {
25
+ display: none;
26
+ }
27
+
28
+ details summary::marker {
29
+ display: none;
30
+ }
31
+
32
+ details summary::-moz-list-bullet {
33
+ list-style-type: none;
34
+ }
35
+
36
+ details summary:after {
37
+ width: 1rem;
38
+ height: 1rem;
39
+ float: right;
40
+ background-image: var(--pico-icon-chevron);
41
+ content: "";
42
+ transition: transform var(--pico-transition);
43
+ background-position: 100%;
44
+ background-repeat: no-repeat;
45
+ background-size: 1rem;
46
+ margin-inline-start: calc(var(--pico-spacing, 1rem) * .5);
47
+ display: block;
48
+ transform: rotate(-90deg);
49
+ }
50
+
51
+ details summary:focus {
52
+ outline: none;
53
+ }
54
+
55
+ details summary:focus:not([role]) {
56
+ color: var(--pico-accordion-active-summary-color);
57
+ }
58
+
59
+ details summary:focus-visible:not([role]) {
60
+ outline: var(--pico-outline-width) solid var(--pico-primary-focus);
61
+ outline-offset: calc(var(--pico-spacing, 1rem) * .5);
62
+ color: var(--pico-primary);
63
+ }
64
+
65
+ details summary[role="button"] {
66
+ text-align: start;
67
+ width: 100%;
68
+ }
69
+
70
+ details summary[role="button"]:after {
71
+ height: calc(1rem * var(--pico-line-height, 1.5));
72
+ }
73
+
74
+ details[open] > summary {
75
+ margin-bottom: var(--pico-spacing);
76
+ }
77
+
78
+ details[open] > summary:not([role]):not(:focus) {
79
+ color: var(--pico-accordion-open-summary-color);
80
+ }
81
+
82
+ details[open] > summary:after {
83
+ transform: rotate(0);
84
+ }
85
+
86
+ [dir="rtl"] details summary {
87
+ text-align: end;
88
+ }
89
+
90
+ [dir="rtl"] details summary:after {
91
+ float: left;
92
+ background-position: 0;
93
+ }
94
+
95
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
96
+ --pico-card-background-color: light-dark(var(--pico-background-color), #181c25);
97
+ --pico-card-border-color: light-dark(var(--pico-muted-border-color), var(--pico-card-background-color));
98
+ --pico-card-box-shadow: var(--pico-box-shadow);
99
+ --pico-card-sectioning-background-color: light-dark(#fbfcfc, #1a1f28);
100
+ }
101
+
102
+ article {
103
+ margin-bottom: var(--pico-block-spacing-vertical);
104
+ padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);
105
+ border-radius: var(--pico-border-radius);
106
+ background: var(--pico-card-background-color);
107
+ box-shadow: var(--pico-card-box-shadow);
108
+ }
109
+
110
+ article > header, article > footer {
111
+ margin-right: calc(var(--pico-block-spacing-horizontal) * -1);
112
+ margin-left: calc(var(--pico-block-spacing-horizontal) * -1);
113
+ padding: calc(var(--pico-block-spacing-vertical) * .66) var(--pico-block-spacing-horizontal);
114
+ background-color: var(--pico-card-sectioning-background-color);
115
+ }
116
+
117
+ article > header {
118
+ margin-top: calc(var(--pico-block-spacing-vertical) * -1);
119
+ margin-bottom: var(--pico-block-spacing-vertical);
120
+ border-bottom: var(--pico-border-width) solid var(--pico-card-border-color);
121
+ border-top-right-radius: var(--pico-border-radius);
122
+ border-top-left-radius: var(--pico-border-radius);
123
+ }
124
+
125
+ article > footer {
126
+ margin-top: var(--pico-block-spacing-vertical);
127
+ margin-bottom: calc(var(--pico-block-spacing-vertical) * -1);
128
+ border-top: var(--pico-border-width) solid var(--pico-card-border-color);
129
+ border-bottom-right-radius: var(--pico-border-radius);
130
+ border-bottom-left-radius: var(--pico-border-radius);
131
+ }
132
+
133
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
134
+ --pico-dropdown-background-color: light-dark(#fff, #181c25);
135
+ --pico-dropdown-border-color: light-dark(#eff1f4, #202632);
136
+ --pico-dropdown-box-shadow: var(--pico-box-shadow);
137
+ --pico-dropdown-color: var(--pico-color);
138
+ --pico-dropdown-hover-background-color: light-dark(#eff1f4, #202632);
139
+ }
140
+
141
+ details.dropdown {
142
+ border-bottom: none;
143
+ position: relative;
144
+ }
145
+
146
+ details.dropdown > summary:after, details.dropdown > button:after, details.dropdown > a:after {
147
+ width: 1rem;
148
+ height: calc(1rem * var(--pico-line-height, 1.5));
149
+ float: right;
150
+ background-image: var(--pico-icon-chevron);
151
+ content: "";
152
+ background-position: 100%;
153
+ background-repeat: no-repeat;
154
+ background-size: 1rem;
155
+ margin-inline-start: .25rem;
156
+ display: block;
157
+ transform: rotate(0) translateX(.2rem);
158
+ }
159
+
160
+ nav details.dropdown {
161
+ margin-bottom: 0;
162
+ }
163
+
164
+ details.dropdown > summary:not([role]) {
165
+ height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
166
+ var(--pico-border-width) * 2);
167
+ padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
168
+ border: var(--pico-border-width) solid var(--pico-form-element-border-color);
169
+ border-radius: var(--pico-border-radius);
170
+ background-color: var(--pico-form-element-background-color);
171
+ color: var(--pico-form-element-placeholder-color);
172
+ line-height: inherit;
173
+ cursor: pointer;
174
+ -webkit-user-select: none;
175
+ -moz-user-select: none;
176
+ user-select: none;
177
+ transition: background-color var(--pico-transition),
178
+ border-color var(--pico-transition),
179
+ color var(--pico-transition),
180
+ box-shadow var(--pico-transition);
181
+ }
182
+
183
+ details.dropdown > summary:not([role]):active, details.dropdown > summary:not([role]):focus {
184
+ border-color: var(--pico-form-element-active-border-color);
185
+ background-color: var(--pico-form-element-active-background-color);
186
+ }
187
+
188
+ details.dropdown > summary:not([role]):focus {
189
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
190
+ }
191
+
192
+ details.dropdown > summary:not([role]):focus-visible {
193
+ outline: none;
194
+ }
195
+
196
+ details.dropdown > summary:not([role])[aria-invalid="false"] {
197
+ --pico-form-element-border-color: var(--pico-form-element-valid-border-color);
198
+ --pico-form-element-active-border-color: var(--pico-form-element-valid-focus-color);
199
+ --pico-form-element-focus-color: var(--pico-form-element-valid-focus-color);
200
+ }
201
+
202
+ details.dropdown > summary:not([role])[aria-invalid="true"] {
203
+ --pico-form-element-border-color: var(--pico-form-element-invalid-border-color);
204
+ --pico-form-element-active-border-color: var(--pico-form-element-invalid-focus-color);
205
+ --pico-form-element-focus-color: var(--pico-form-element-invalid-focus-color);
206
+ }
207
+
208
+ nav details.dropdown {
209
+ margin: calc(var(--pico-nav-element-spacing-vertical) * -1) 0;
210
+ display: inline-block;
211
+ }
212
+
213
+ nav details.dropdown > summary:after {
214
+ transform: rotate(0) translateX(0);
215
+ }
216
+
217
+ nav details.dropdown > summary:not([role]) {
218
+ height: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);
219
+ padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
220
+ var(--pico-nav-link-spacing-horizontal);
221
+ }
222
+
223
+ nav details.dropdown > summary:not([role]):focus-visible {
224
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
225
+ }
226
+
227
+ details.dropdown > summary + ul {
228
+ z-index: 99;
229
+ width: 100%;
230
+ min-width: fit-content;
231
+ margin: 0;
232
+ margin-top: var(--pico-outline-width);
233
+ border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
234
+ border-radius: var(--pico-border-radius);
235
+ background-color: var(--pico-dropdown-background-color);
236
+ box-shadow: var(--pico-dropdown-box-shadow);
237
+ color: var(--pico-dropdown-color);
238
+ white-space: nowrap;
239
+ opacity: 0;
240
+ transition: opacity var(--pico-transition),
241
+ transform 0s ease-in-out 1s;
242
+ flex-direction: column;
243
+ padding: 0;
244
+ display: flex;
245
+ position: absolute;
246
+ left: 0;
247
+ }
248
+
249
+ details.dropdown > summary + ul[dir="rtl"] {
250
+ left: auto;
251
+ right: 0;
252
+ }
253
+
254
+ details.dropdown > summary + ul li {
255
+ width: 100%;
256
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
257
+ var(--pico-form-element-spacing-horizontal);
258
+ margin-bottom: 0;
259
+ list-style: none;
260
+ }
261
+
262
+ details.dropdown > summary + ul li:first-of-type {
263
+ margin-top: calc(var(--pico-form-element-spacing-vertical) * .5);
264
+ }
265
+
266
+ details.dropdown > summary + ul li:last-of-type {
267
+ margin-bottom: calc(var(--pico-form-element-spacing-vertical) * .5);
268
+ }
269
+
270
+ details.dropdown > summary + ul li a {
271
+ margin: calc(var(--pico-form-element-spacing-vertical) * -.5)
272
+ calc(var(--pico-form-element-spacing-horizontal) * -1);
273
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
274
+ var(--pico-form-element-spacing-horizontal);
275
+ color: var(--pico-dropdown-color);
276
+ text-overflow: ellipsis;
277
+ border-radius: 0;
278
+ text-decoration: none;
279
+ display: block;
280
+ overflow: hidden;
281
+ }
282
+
283
+ details.dropdown > summary + ul li a:hover, details.dropdown > summary + ul li a:focus, details.dropdown > summary + ul li a:active, details.dropdown > summary + ul li a:focus-visible, details.dropdown > summary + ul li a[aria-current]:not([aria-current="false"]) {
284
+ background-color: var(--pico-dropdown-hover-background-color);
285
+ }
286
+
287
+ details.dropdown > summary + ul li label {
288
+ width: 100%;
289
+ }
290
+
291
+ details.dropdown > summary + ul li:has(label):hover {
292
+ background-color: var(--pico-dropdown-hover-background-color);
293
+ }
294
+
295
+ details.dropdown[open] > summary {
296
+ margin-bottom: 0;
297
+ }
298
+
299
+ details.dropdown[open] > summary + ul {
300
+ opacity: 1;
301
+ transition: opacity var(--pico-transition),
302
+ transform 0s ease-in-out 0s;
303
+ transform: scaleY(1);
304
+ }
305
+
306
+ details.dropdown[open] > summary:before {
307
+ z-index: 1;
308
+ content: "";
309
+ cursor: default;
310
+ background: none;
311
+ width: 100vw;
312
+ height: 100vh;
313
+ display: block;
314
+ position: fixed;
315
+ inset: 0;
316
+ }
317
+
318
+ label > details.dropdown {
319
+ margin-top: calc(var(--pico-spacing) * .25);
320
+ }
321
+
322
+ :where(:scope), :host {
323
+ --pico-group-box-shadow: 0 0 0 #0000;
324
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
325
+ var(--pico-primary-focus);
326
+ --pico-group-box-shadow-focus-with-input: 0 0 0 .0625rem var(--pico-form-element-border-color);
327
+ }
328
+
329
+ [role="search"]:has(button.secondary:focus, [type="submit"].secondary:focus, [type="button"].secondary:focus, [role="button"].secondary:focus), [role="group"]:has(button.secondary:focus, [type="submit"].secondary:focus, [type="button"].secondary:focus, [role="button"].secondary:focus) {
330
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
331
+ var(--pico-secondary-focus);
332
+ }
333
+
334
+ [role="search"]:has(button.contrast:focus, [type="submit"].contrast:focus, [type="button"].contrast:focus, [role="button"].contrast:focus), [role="group"]:has(button.contrast:focus, [type="submit"].contrast:focus, [type="button"].contrast:focus, [role="button"].contrast:focus) {
335
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
336
+ var(--pico-contrast-focus);
337
+ }
338
+
339
+ [role="search"], [role="group"] {
340
+ width: 100%;
341
+ margin-bottom: var(--pico-spacing);
342
+ border-radius: var(--pico-border-radius);
343
+ box-shadow: var(--pico-group-box-shadow, 0 0 0 #0000);
344
+ vertical-align: middle;
345
+ transition: box-shadow var(--pico-transition);
346
+ display: inline-flex;
347
+ position: relative;
348
+ }
349
+
350
+ [role="search"] > *, [role="search"] input:not([type="checkbox"], [type="radio"]), [role="search"] select, [role="group"] > *, [role="group"] input:not([type="checkbox"], [type="radio"]), [role="group"] select {
351
+ flex: auto;
352
+ margin-bottom: 0;
353
+ position: relative;
354
+ }
355
+
356
+ [role="search"] > :not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] > :not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
357
+ border-top-left-radius: 0;
358
+ border-bottom-left-radius: 0;
359
+ margin-left: 0;
360
+ }
361
+
362
+ [role="search"] > :not(:last-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="search"] select:not(:last-child), [role="group"] > :not(:last-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="group"] select:not(:last-child) {
363
+ border-top-right-radius: 0;
364
+ border-bottom-right-radius: 0;
365
+ }
366
+
367
+ [role="search"] > :focus, [role="search"] input:not([type="checkbox"], [type="radio"]):focus, [role="search"] select:focus, [role="group"] > :focus, [role="group"] input:not([type="checkbox"], [type="radio"]):focus, [role="group"] select:focus {
368
+ z-index: 2;
369
+ }
370
+
371
+ [role="search"] button:not(:first-child), [role="search"] [type="submit"]:not(:first-child), [role="search"] [type="reset"]:not(:first-child), [role="search"] [type="button"]:not(:first-child), [role="search"] [role="button"]:not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] button:not(:first-child), [role="group"] [type="submit"]:not(:first-child), [role="group"] [type="reset"]:not(:first-child), [role="group"] [type="button"]:not(:first-child), [role="group"] [role="button"]:not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
372
+ margin-left: calc(var(--pico-border-width) * -1);
373
+ }
374
+
375
+ [role="search"] button, [role="search"] [type="submit"], [role="search"] [type="reset"], [role="search"] [type="button"], [role="search"] [role="button"], [role="group"] button, [role="group"] [type="submit"], [role="group"] [type="reset"], [role="group"] [type="button"], [role="group"] [role="button"] {
376
+ width: auto;
377
+ }
378
+
379
+ @supports selector(:has(*)) {
380
+ [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) {
381
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-button);
382
+ }
383
+
384
+ [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]), [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select, [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select {
385
+ border-color: #0000;
386
+ }
387
+
388
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus), [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
389
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-input);
390
+ }
391
+
392
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button, [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="submit"], [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="button"], [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [role="button"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button, [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="submit"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="button"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [role="button"] {
393
+ --pico-button-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-border);
394
+ --pico-button-hover-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-hover-border);
395
+ }
396
+
397
+ [role="search"] button:focus, [role="search"] [type="submit"]:focus, [role="search"] [type="reset"]:focus, [role="search"] [type="button"]:focus, [role="search"] [role="button"]:focus, [role="group"] button:focus, [role="group"] [type="submit"]:focus, [role="group"] [type="reset"]:focus, [role="group"] [type="button"]:focus, [role="group"] [role="button"]:focus {
398
+ box-shadow: none;
399
+ }
400
+ }
401
+
402
+ [role="search"] > :first-child {
403
+ border-top-left-radius: 5rem;
404
+ border-bottom-left-radius: 5rem;
405
+ }
406
+
407
+ [role="search"] > :last-child {
408
+ border-top-right-radius: 5rem;
409
+ border-bottom-right-radius: 5rem;
410
+ }
411
+
412
+ :where(:scope), :host {
413
+ --pico-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E");
414
+ }
415
+
416
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
417
+ --pico-loading-spinner-opacity: .5;
418
+ }
419
+
420
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:where(button, [type="submit"], [type="button"], [type="reset"], [role="button"])) {
421
+ white-space: nowrap;
422
+ }
423
+
424
+ [aria-busy="true"]:not(input, select, textarea, html, form):before {
425
+ background-image: var(--pico-icon-loading);
426
+ content: "";
427
+ vertical-align: -.125em;
428
+ background-repeat: no-repeat;
429
+ background-size: 1em;
430
+ width: 1em;
431
+ height: 1em;
432
+ display: inline-block;
433
+ }
434
+
435
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty):before {
436
+ margin-inline-end: calc(var(--pico-spacing) * .5);
437
+ }
438
+
439
+ [aria-busy="true"]:not(input, select, textarea, html, form):empty {
440
+ text-align: center;
441
+ }
442
+
443
+ button[aria-busy="true"], [type="submit"][aria-busy="true"], [type="button"][aria-busy="true"], [type="reset"][aria-busy="true"], [role="button"][aria-busy="true"], a[aria-busy="true"] {
444
+ pointer-events: none;
445
+ }
446
+
447
+ button, [type="submit"], [type="button"], [type="reset"], [role="button"] {
448
+ &[aria-busy="true"]:not(:empty) {
449
+ color: #0000;
450
+ position: relative;
451
+
452
+ & > * {
453
+ opacity: 0;
454
+ }
455
+
456
+ &:before {
457
+ margin: auto;
458
+ position: absolute;
459
+ inset: 0;
460
+ }
461
+ }
462
+ }
463
+
464
+ :where(:scope), :host {
465
+ --pico-modal-overlay-backdrop-filter: blur(.375rem);
466
+ --pico-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
467
+ }
468
+
469
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
470
+ --pico-modal-overlay-background-color: light-dark(#e8eaedbf, #08090abf);
471
+ }
472
+
473
+ :scope, :host {
474
+ --pico-scrollbar-width: 0px;
475
+ }
476
+
477
+ dialog {
478
+ z-index: 999;
479
+ width: inherit;
480
+ min-width: 100%;
481
+ height: inherit;
482
+ min-height: 100%;
483
+ backdrop-filter: var(--pico-modal-overlay-backdrop-filter);
484
+ background-color: var(--pico-modal-overlay-background-color);
485
+ color: var(--pico-color);
486
+ border: 0;
487
+ justify-content: center;
488
+ align-items: center;
489
+ padding: 0;
490
+ display: flex;
491
+ position: fixed;
492
+ inset: 0;
493
+ }
494
+
495
+ dialog > article {
496
+ width: 100%;
497
+ max-height: calc(100vh - var(--pico-spacing) * 2);
498
+ margin: var(--pico-spacing);
499
+ overflow: auto;
500
+ }
501
+
502
+ @media (width >= 576px) {
503
+ dialog > article {
504
+ max-width: 510px;
505
+ }
506
+ }
507
+
508
+ @media (width >= 768px) {
509
+ dialog > article {
510
+ max-width: 700px;
511
+ }
512
+ }
513
+
514
+ dialog > article > header > * {
515
+ margin-bottom: 0;
516
+ }
517
+
518
+ dialog > article > header .close, dialog > article > header :is(a, button)[rel="prev"] {
519
+ margin: 0;
520
+ margin-left: var(--pico-spacing);
521
+ float: right;
522
+ padding: 0;
523
+ }
524
+
525
+ dialog > article > footer {
526
+ text-align: end;
527
+ }
528
+
529
+ dialog > article > footer button, dialog > article > footer [role="button"] {
530
+ margin-bottom: 0;
531
+ }
532
+
533
+ dialog > article > footer button:not(:first-of-type), dialog > article > footer [role="button"]:not(:first-of-type) {
534
+ margin-left: calc(var(--pico-spacing) * .5);
535
+ }
536
+
537
+ dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
538
+ width: 1rem;
539
+ height: 1rem;
540
+ margin-top: calc(var(--pico-spacing) * -1);
541
+ margin-bottom: var(--pico-spacing);
542
+ background-image: var(--pico-icon-close);
543
+ opacity: .5;
544
+ transition: opacity var(--pico-transition);
545
+ background-color: #0000;
546
+ background-position: center;
547
+ background-repeat: no-repeat;
548
+ background-size: auto 1rem;
549
+ border: none;
550
+ margin-left: auto;
551
+ display: block;
552
+ }
553
+
554
+ dialog > article .close:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), dialog > article :is(a, button)[rel="prev"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
555
+ opacity: 1;
556
+ }
557
+
558
+ dialog:not([open]), dialog[open="false"] {
559
+ display: none;
560
+ }
561
+
562
+ .modal-is-open {
563
+ padding-right: var(--pico-scrollbar-width, 0px);
564
+ pointer-events: none;
565
+ touch-action: none;
566
+ overflow: hidden;
567
+ }
568
+
569
+ .modal-is-open dialog {
570
+ pointer-events: auto;
571
+ touch-action: auto;
572
+ }
573
+
574
+ :where(.modal-is-opening, .modal-is-closing) dialog, :where(.modal-is-opening, .modal-is-closing) dialog > article {
575
+ animation-duration: .2s;
576
+ animation-timing-function: ease-in-out;
577
+ animation-fill-mode: both;
578
+ }
579
+
580
+ :where(.modal-is-opening, .modal-is-closing) dialog {
581
+ animation-name: modal-overlay;
582
+ animation-duration: .8s;
583
+ }
584
+
585
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
586
+ animation-name: modal;
587
+ animation-delay: .2s;
588
+ }
589
+
590
+ .modal-is-closing dialog, .modal-is-closing dialog > article {
591
+ animation-direction: reverse;
592
+ animation-delay: 0s;
593
+ }
594
+
595
+ @keyframes modal-overlay {
596
+ from {
597
+ backdrop-filter: none;
598
+ background-color: #0000;
599
+ }
600
+ }
601
+
602
+ @keyframes modal {
603
+ from {
604
+ opacity: 0;
605
+ transform: translateY(-100%);
606
+ }
607
+ }
608
+
609
+ :where(:scope), :host {
610
+ --pico-nav-element-spacing-horizontal: .5rem;
611
+ --pico-nav-breadcrumb-divider: ">";
612
+ }
613
+
614
+ :where(nav li):before {
615
+ float: left;
616
+ content: "​";
617
+ }
618
+
619
+ nav, nav ul {
620
+ display: flex;
621
+ }
622
+
623
+ nav {
624
+ justify-content: space-between;
625
+ overflow: visible;
626
+ }
627
+
628
+ nav ol, nav ul {
629
+ align-items: center;
630
+ margin-bottom: 0;
631
+ padding: 0;
632
+ list-style: none;
633
+ }
634
+
635
+ nav ol:first-of-type, nav ul:first-of-type {
636
+ margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
637
+ }
638
+
639
+ nav ol:last-of-type, nav ul:last-of-type {
640
+ margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
641
+ }
642
+
643
+ nav li {
644
+ padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal);
645
+ margin: 0;
646
+ display: inline-block;
647
+ }
648
+
649
+ nav li :where(a, [role="link"]) {
650
+ margin: calc(var(--pico-nav-link-spacing-vertical) * -1)
651
+ calc(var(--pico-nav-link-spacing-horizontal) * -1);
652
+ padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);
653
+ border-radius: var(--pico-border-radius);
654
+ display: inline-block;
655
+ }
656
+
657
+ nav li :where(a, [role="link"]):not(:hover) {
658
+ text-decoration: none;
659
+ }
660
+
661
+ nav li button, nav li [role="button"], nav li [type="button"], nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]), nav li select {
662
+ height: auto;
663
+ margin-right: inherit;
664
+ margin-bottom: 0;
665
+ margin-left: inherit;
666
+ padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
667
+ var(--pico-nav-link-spacing-horizontal);
668
+ }
669
+
670
+ nav[aria-label="breadcrumb"] {
671
+ justify-content: start;
672
+ align-items: center;
673
+ }
674
+
675
+ nav[aria-label="breadcrumb"] ul li:not(:first-child) {
676
+ margin-inline-start: var(--pico-nav-link-spacing-horizontal);
677
+ }
678
+
679
+ nav[aria-label="breadcrumb"] ul li a {
680
+ margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0;
681
+ margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1);
682
+ }
683
+
684
+ nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
685
+ width: calc(var(--pico-nav-link-spacing-horizontal) * 4);
686
+ margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1);
687
+ content: var(--pico-nav-breadcrumb-divider);
688
+ color: var(--pico-muted-color);
689
+ text-align: center;
690
+ white-space: nowrap;
691
+ text-decoration: none;
692
+ display: inline-block;
693
+ position: absolute;
694
+ }
695
+
696
+ nav[aria-label="breadcrumb"] a[aria-current]:not([aria-current="false"]) {
697
+ color: inherit;
698
+ pointer-events: none;
699
+ background-color: #0000;
700
+ text-decoration: none;
701
+ }
702
+
703
+ aside nav, aside ol, aside ul, aside li {
704
+ display: block;
705
+ }
706
+
707
+ aside li {
708
+ padding: calc(var(--pico-nav-element-spacing-vertical) * .5)
709
+ var(--pico-nav-element-spacing-horizontal);
710
+ }
711
+
712
+ aside li a {
713
+ display: block;
714
+ }
715
+
716
+ aside li [role="button"] {
717
+ margin: inherit;
718
+ }
719
+
720
+ [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
721
+ content: "\\";
722
+ }
723
+
724
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
725
+ --pico-progress-background-color: light-dark(#dfe3eb, #202632);
726
+ --pico-progress-color: var(--pico-primary-background);
727
+ }
728
+
729
+ progress {
730
+ vertical-align: baseline;
731
+ -webkit-appearance: none;
732
+ -moz-appearance: none;
733
+ appearance: none;
734
+ width: 100%;
735
+ height: .5rem;
736
+ margin-bottom: calc(var(--pico-spacing) * .5);
737
+ border-radius: var(--pico-border-radius);
738
+ background-color: var(--pico-progress-background-color);
739
+ color: var(--pico-progress-color);
740
+ border: 0;
741
+ display: inline-block;
742
+ overflow: hidden;
743
+ }
744
+
745
+ progress::-webkit-progress-bar {
746
+ border-radius: var(--pico-border-radius);
747
+ background: none;
748
+ }
749
+
750
+ progress[value]::-webkit-progress-value {
751
+ background-color: var(--pico-progress-color);
752
+ -webkit-transition: inline-size var(--pico-transition);
753
+ transition: inline-size var(--pico-transition);
754
+ }
755
+
756
+ progress::-moz-progress-bar {
757
+ background-color: var(--pico-progress-color);
758
+ }
759
+
760
+ @media (prefers-reduced-motion: no-preference) {
761
+ progress:indeterminate {
762
+ background: var(--pico-progress-background-color)
763
+ linear-gradient(to right,
764
+ var(--pico-progress-color) 30%,
765
+ var(--pico-progress-background-color) 30%)
766
+ top left/150% 150% no-repeat;
767
+ animation: 1s linear infinite progress-indeterminate;
768
+ }
769
+
770
+ progress:indeterminate[value]::-webkit-progress-value {
771
+ background-color: #0000;
772
+ }
773
+
774
+ progress:indeterminate::-moz-progress-bar {
775
+ background-color: #0000;
776
+ }
777
+
778
+ [dir="rtl"] progress:indeterminate {
779
+ animation-direction: reverse;
780
+ }
781
+ }
782
+
783
+ @keyframes progress-indeterminate {
784
+ 0% {
785
+ background-position: 200% 0;
786
+ }
787
+
788
+ 100% {
789
+ background-position: -200% 0;
790
+ }
791
+ }
792
+
793
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
794
+ --pico-tooltip-background-color: var(--pico-contrast-background);
795
+ --pico-tooltip-color: var(--pico-contrast-inverse);
796
+ }
797
+
798
+ [data-tooltip] {
799
+ position: relative;
800
+ }
801
+
802
+ [data-tooltip]:not(a, button, input, [role="button"]) {
803
+ cursor: help;
804
+ border-bottom: 1px dotted;
805
+ text-decoration: none;
806
+ }
807
+
808
+ [data-tooltip][data-placement="top"]:before, [data-tooltip][data-placement="top"]:after, [data-tooltip]:before, [data-tooltip]:after {
809
+ z-index: 99;
810
+ border-radius: var(--pico-border-radius);
811
+ background: var(--pico-tooltip-background-color);
812
+ content: attr(data-tooltip);
813
+ color: var(--pico-tooltip-color);
814
+ font-style: normal;
815
+ font-weight: var(--pico-font-weight);
816
+ text-overflow: ellipsis;
817
+ white-space: nowrap;
818
+ opacity: 0;
819
+ pointer-events: none;
820
+ padding: .25rem .5rem;
821
+ font-size: .875rem;
822
+ text-decoration: none;
823
+ display: block;
824
+ position: absolute;
825
+ bottom: 100%;
826
+ left: 50%;
827
+ overflow: hidden;
828
+ transform: translate(-50%, -.25rem);
829
+ }
830
+
831
+ [data-tooltip][data-placement="top"]:after, [data-tooltip]:after {
832
+ content: "";
833
+ color: var(--pico-tooltip-background-color);
834
+ background-color: #0000;
835
+ border-top: .3rem solid;
836
+ border-left: .3rem solid #0000;
837
+ border-right: .3rem solid #0000;
838
+ border-radius: 0;
839
+ padding: 0;
840
+ transform: translate(-50%);
841
+ }
842
+
843
+ [data-tooltip][data-placement="bottom"]:before, [data-tooltip][data-placement="bottom"]:after {
844
+ top: 100%;
845
+ bottom: auto;
846
+ transform: translate(-50%, .25rem);
847
+ }
848
+
849
+ [data-tooltip][data-placement="bottom"]:after {
850
+ border: .3rem solid #0000;
851
+ border-bottom-color: currentColor;
852
+ transform: translate(-50%, -.3rem);
853
+ }
854
+
855
+ [data-tooltip][data-placement="left"]:before, [data-tooltip][data-placement="left"]:after {
856
+ inset: 50% 100% auto auto;
857
+ transform: translate(-.25rem, -50%);
858
+ }
859
+
860
+ [data-tooltip][data-placement="left"]:after {
861
+ border: .3rem solid #0000;
862
+ border-left-color: currentColor;
863
+ transform: translate(.3rem, -50%);
864
+ }
865
+
866
+ [data-tooltip][data-placement="right"]:before, [data-tooltip][data-placement="right"]:after {
867
+ inset: 50% auto auto 100%;
868
+ transform: translate(.25rem, -50%);
869
+ }
870
+
871
+ [data-tooltip][data-placement="right"]:after {
872
+ border: .3rem solid #0000;
873
+ border-right-color: currentColor;
874
+ transform: translate(-.3rem, -50%);
875
+ }
876
+
877
+ [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
878
+ opacity: 1;
879
+ }
880
+
881
+ @media (hover: hover) and (pointer: fine) {
882
+ [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
883
+ --pico-tooltip-slide-to: translate(-50%, -.25rem);
884
+ opacity: 0;
885
+ animation-name: tooltip-slide;
886
+ animation-duration: .2s;
887
+ animation-fill-mode: forwards;
888
+ transform: translate(-50%, .75rem);
889
+ }
890
+
891
+ [data-tooltip]:focus:after, [data-tooltip]:hover:after {
892
+ --pico-tooltip-caret-slide-to: translate(-50%, 0rem);
893
+ animation-name: tooltip-caret-slide;
894
+ transform: translate(-50%, -.25rem);
895
+ }
896
+
897
+ [data-tooltip][data-placement="bottom"]:focus:before, [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:before, [data-tooltip][data-placement="bottom"]:hover:after {
898
+ --pico-tooltip-slide-to: translate(-50%, .25rem);
899
+ animation-name: tooltip-slide;
900
+ transform: translate(-50%, -.75rem);
901
+ }
902
+
903
+ [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:after {
904
+ --pico-tooltip-caret-slide-to: translate(-50%, -.3rem);
905
+ animation-name: tooltip-caret-slide;
906
+ transform: translate(-50%, -.5rem);
907
+ }
908
+
909
+ [data-tooltip][data-placement="left"]:focus:before, [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:before, [data-tooltip][data-placement="left"]:hover:after {
910
+ --pico-tooltip-slide-to: translate(-.25rem, -50%);
911
+ animation-name: tooltip-slide;
912
+ transform: translate(.75rem, -50%);
913
+ }
914
+
915
+ [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:after {
916
+ --pico-tooltip-caret-slide-to: translate(.3rem, -50%);
917
+ animation-name: tooltip-caret-slide;
918
+ transform: translate(.05rem, -50%);
919
+ }
920
+
921
+ [data-tooltip][data-placement="right"]:focus:before, [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:before, [data-tooltip][data-placement="right"]:hover:after {
922
+ --pico-tooltip-slide-to: translate(.25rem, -50%);
923
+ animation-name: tooltip-slide;
924
+ transform: translate(-.75rem, -50%);
925
+ }
926
+
927
+ [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:after {
928
+ --pico-tooltip-caret-slide-to: translate(-.3rem, -50%);
929
+ animation-name: tooltip-caret-slide;
930
+ transform: translate(-.05rem, -50%);
931
+ }
932
+ }
933
+
934
+ @keyframes tooltip-slide {
935
+ to {
936
+ transform: var(--pico-tooltip-slide-to);
937
+ opacity: 1;
938
+ }
939
+ }
940
+
941
+ @keyframes tooltip-caret-slide {
942
+ 50% {
943
+ opacity: 0;
944
+ }
945
+
946
+ to {
947
+ transform: var(--pico-tooltip-caret-slide-to);
948
+ opacity: 1;
949
+ }
950
+ }