@multiplatform.one/keycloak-theme 7.83.1 → 7.83.2
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/cjs/SpringboardStyles.cjs +61 -0
- package/dist/cjs/SpringboardStyles.native.js +67 -0
- package/dist/cjs/SpringboardStyles.native.js.map +1 -0
- package/dist/cjs/css.cjs +555 -0
- package/dist/cjs/css.native.js +559 -0
- package/dist/cjs/css.native.js.map +1 -0
- package/dist/cjs/glyph.cjs +71 -0
- package/dist/cjs/glyph.native.js +75 -0
- package/dist/cjs/glyph.native.js.map +1 -0
- package/dist/cjs/index.cjs +53 -0
- package/dist/cjs/index.native.js +56 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/themeName.cjs +42 -0
- package/dist/cjs/themeName.native.js +45 -0
- package/dist/cjs/themeName.native.js.map +1 -0
- package/dist/cjs/tokens.cjs +133 -0
- package/dist/cjs/tokens.native.js +136 -0
- package/dist/cjs/tokens.native.js.map +1 -0
- package/dist/esm/SpringboardStyles.mjs +35 -0
- package/dist/esm/SpringboardStyles.mjs.map +1 -0
- package/dist/esm/SpringboardStyles.native.js +38 -0
- package/dist/esm/SpringboardStyles.native.js.map +1 -0
- package/dist/esm/css.mjs +530 -0
- package/dist/esm/css.mjs.map +1 -0
- package/dist/esm/css.native.js +531 -0
- package/dist/esm/css.native.js.map +1 -0
- package/dist/esm/glyph.mjs +42 -0
- package/dist/esm/glyph.mjs.map +1 -0
- package/dist/esm/glyph.native.js +43 -0
- package/dist/esm/glyph.native.js.map +1 -0
- package/dist/esm/index.mjs +7 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +7 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/themeName.mjs +15 -0
- package/dist/esm/themeName.mjs.map +1 -0
- package/dist/esm/themeName.native.js +15 -0
- package/dist/esm/themeName.native.js.map +1 -0
- package/dist/esm/tokens.mjs +98 -0
- package/dist/esm/tokens.mjs.map +1 -0
- package/dist/esm/tokens.native.js +98 -0
- package/dist/esm/tokens.native.js.map +1 -0
- package/package.json +12 -3
package/dist/esm/css.mjs
ADDED
|
@@ -0,0 +1,530 @@
|
|
|
1
|
+
import { accent, caption, field, fontFamily as defaultFontFamily, icon, ink, plate, status, trigger, wallpaperColors, wallpaperLayers } from "./tokens.mjs";
|
|
2
|
+
function cssString(value) {
|
|
3
|
+
return JSON.stringify(value);
|
|
4
|
+
}
|
|
5
|
+
function customProperties() {
|
|
6
|
+
return [
|
|
7
|
+
// Surfaces.
|
|
8
|
+
`--kc-page-bg: ${wallpaperColors.base};`, `--kc-card-bg: ${plate.fill};`, `--kc-input-bg: ${field.background};`,
|
|
9
|
+
// Ink.
|
|
10
|
+
`--kc-text: ${ink.primary};`, `--kc-muted: ${ink.muted};`, `--kc-placeholder: ${ink.faint};`,
|
|
11
|
+
// Hairlines.
|
|
12
|
+
`--kc-border: ${field.border};`, `--kc-border-hover: ${field.borderHover};`, `--kc-border-focus: ${field.borderFocus};`, `--kc-border-strong: ${field.borderHover};`, `--kc-divider: ${field.divider};`,
|
|
13
|
+
// Interaction.
|
|
14
|
+
`--kc-hover-bg: ${field.ghost};`, `--kc-press-bg: ${field.ghostHover};`, `--kc-ring: ${accent.sky};`, `--kc-link: ${accent.sky};`,
|
|
15
|
+
// Call to action.
|
|
16
|
+
`--kc-cta-bg: ${accent.indigo};`, `--kc-cta-fg: ${ink.primary};`, `--kc-cta-hover: ${accent.indigoHover};`, `--kc-cta-press: ${accent.indigoPress};`,
|
|
17
|
+
// Disabled — washed chrome, lowest legible ink.
|
|
18
|
+
`--kc-disabled-bg: ${field.ghost};`, `--kc-disabled-border: ${field.border};`, `--kc-disabled-text: ${ink.faint};`,
|
|
19
|
+
// Feedback.
|
|
20
|
+
`--kc-error-text: ${status.error};`, `--kc-error-border: ${status.error};`, `--kc-warning-border: ${status.warning};`, `--kc-success-border: ${status.success};`, `--kc-info-border: ${status.info};`, `--kc-menu-shadow: rgba(0,0,0,0.45);`,
|
|
21
|
+
// Springboard's own, consumed only by this sheet.
|
|
22
|
+
`--sb-plate-fill: ${plate.fill};`, `--sb-plate-highlight: ${plate.highlight};`, `--sb-plate-radius: ${plate.radius}px;`, `--sb-icon-size: ${icon.size}px;`, `--sb-icon-radius: ${icon.radius}px;`, `--sb-caption-size: ${caption.fontSize}px;`, `--sb-caption-line: ${caption.lineHeight}px;`].join("\n ");
|
|
23
|
+
}
|
|
24
|
+
const onWallpaperShadow = `0 ${caption.shadowOffsetY}px ${caption.shadowBlur}px ${wallpaperColors.textShadow}`;
|
|
25
|
+
const plateShadow = `0 ${trigger.shadowOffsetY}px ${trigger.shadowBlur}px rgba(0,0,0,0.45)`;
|
|
26
|
+
const iconShadow = `0 ${icon.shadowOffsetY}px ${icon.shadowBlur}px ${icon.shadowColor}`;
|
|
27
|
+
function markRules(scope, mark) {
|
|
28
|
+
const monogramSize = Math.round(icon.size * 0.34);
|
|
29
|
+
const monogramLine = Math.round(icon.size * 0.4);
|
|
30
|
+
return `
|
|
31
|
+
/* \u2500\u2500 the estate's glyph: the springboard's own squircle \u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
32
|
+
${scope} .login-pf-page #kc-page-title,
|
|
33
|
+
${scope} .login-pf-page #kc-username {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: ${caption.marginTop}px;
|
|
38
|
+
}
|
|
39
|
+
${scope} .login-pf-page #kc-page-title::before,
|
|
40
|
+
${scope} .login-pf-page #kc-username::before {
|
|
41
|
+
content: ${cssString(mark.monogram)};
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
width: var(--sb-icon-size);
|
|
44
|
+
height: var(--sb-icon-size);
|
|
45
|
+
border-radius: var(--sb-icon-radius);
|
|
46
|
+
background: ${mark.background};
|
|
47
|
+
color: ${mark.foreground};
|
|
48
|
+
box-shadow: ${iconShadow};
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
font-size: ${monogramSize}px;
|
|
53
|
+
line-height: ${monogramLine}px;
|
|
54
|
+
font-weight: 800;
|
|
55
|
+
letter-spacing: 0.5px;
|
|
56
|
+
user-select: none;
|
|
57
|
+
}`;
|
|
58
|
+
}
|
|
59
|
+
function buildSpringboardCss(options = {}) {
|
|
60
|
+
const {
|
|
61
|
+
mark,
|
|
62
|
+
fontFamily = defaultFontFamily,
|
|
63
|
+
focusRingWidthPx = 2,
|
|
64
|
+
focusRingOffsetPx = 2,
|
|
65
|
+
minPressTargetPx = 44,
|
|
66
|
+
cardMaxWidthPx = 420
|
|
67
|
+
} = options;
|
|
68
|
+
const scope = "html.login-pf";
|
|
69
|
+
const vars = customProperties();
|
|
70
|
+
const cardPadY = plate.paddingVertical + 12;
|
|
71
|
+
const cardPadX = plate.paddingHorizontal + 8;
|
|
72
|
+
return `
|
|
73
|
+
/* \u2500\u2500 springboard tokens, both colour schemes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
74
|
+
/* One dark surface in light and dark alike \u2014 see ./tokens.ts. */
|
|
75
|
+
${scope},
|
|
76
|
+
${scope}.t_dark {
|
|
77
|
+
${vars}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* \u2500\u2500 the wallpaper \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
81
|
+
${scope} {
|
|
82
|
+
background-color: ${wallpaperColors.base};
|
|
83
|
+
background-image: ${wallpaperLayers};
|
|
84
|
+
/* Fixed so the glows stay anchored to the viewport instead of tiling
|
|
85
|
+
down a page that grew a scrollbar (a long consent screen, a locale
|
|
86
|
+
list). The springboard's wallpaper is a layer behind everything, not
|
|
87
|
+
a background that scrolls with content. */
|
|
88
|
+
background-attachment: fixed;
|
|
89
|
+
background-repeat: no-repeat;
|
|
90
|
+
background-size: cover;
|
|
91
|
+
min-height: 100%;
|
|
92
|
+
}
|
|
93
|
+
${scope} body {
|
|
94
|
+
background: transparent none;
|
|
95
|
+
color: ${ink.primary};
|
|
96
|
+
font-family: ${fontFamily};
|
|
97
|
+
-webkit-font-smoothing: antialiased;
|
|
98
|
+
}
|
|
99
|
+
${scope} .login-pf-page {
|
|
100
|
+
background: transparent;
|
|
101
|
+
padding-bottom: 40px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* \u2500\u2500 the realm title, sitting straight on the wallpaper \u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
105
|
+
/* Caption anatomy from the launcher: white with a halo, because this
|
|
106
|
+
text has no plate under it and may land on either glow. */
|
|
107
|
+
${scope} .login-pf-page #kc-header-wrapper {
|
|
108
|
+
color: ${wallpaperColors.text};
|
|
109
|
+
text-shadow: ${onWallpaperShadow};
|
|
110
|
+
font-weight: 700;
|
|
111
|
+
font-size: 22px;
|
|
112
|
+
line-height: 1.3;
|
|
113
|
+
letter-spacing: normal;
|
|
114
|
+
text-transform: none;
|
|
115
|
+
padding: 44px 16px 18px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* \u2500\u2500 the card: the dock's glass shelf, grown to hold a form \u2500\u2500 */
|
|
119
|
+
${scope} .login-pf-page .card-pf {
|
|
120
|
+
max-width: ${cardMaxWidthPx}px;
|
|
121
|
+
margin: 0 auto;
|
|
122
|
+
background: var(--sb-plate-fill);
|
|
123
|
+
border: 1px solid var(--sb-plate-highlight);
|
|
124
|
+
border-radius: var(--sb-plate-radius);
|
|
125
|
+
/* The shelf's top-edge inner highlight ('inset 0 1px 0 #fff4' in the
|
|
126
|
+
launcher payload) plus the trigger's elevation under the slab. */
|
|
127
|
+
box-shadow:
|
|
128
|
+
inset 0 1px 0 ${plate.highlight},
|
|
129
|
+
${plateShadow};
|
|
130
|
+
/* "blur-ish" is the launcher's own word for the dock material. Where
|
|
131
|
+
backdrop-filter is unsupported the fill alone still reads as a slab,
|
|
132
|
+
so this degrades rather than breaks. */
|
|
133
|
+
backdrop-filter: blur(22px) saturate(140%);
|
|
134
|
+
-webkit-backdrop-filter: blur(22px) saturate(140%);
|
|
135
|
+
padding: ${cardPadY}px ${cardPadX}px;
|
|
136
|
+
overflow: hidden;
|
|
137
|
+
}
|
|
138
|
+
${scope} .login-pf-page .login-pf-header h1,
|
|
139
|
+
${scope} .login-pf-page #kc-page-title {
|
|
140
|
+
color: ${ink.primary};
|
|
141
|
+
font-weight: 700;
|
|
142
|
+
font-size: 20px;
|
|
143
|
+
line-height: 1.3;
|
|
144
|
+
margin: 0 0 ${plate.gap}px;
|
|
145
|
+
}
|
|
146
|
+
${mark ? markRules(scope, mark) : ""}
|
|
147
|
+
|
|
148
|
+
/* \u2500\u2500 labels and prose \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
149
|
+
${scope} .login-pf-page label,
|
|
150
|
+
${scope} .login-pf-page .pf-c-form__label,
|
|
151
|
+
${scope} .login-pf-page .pf-c-form__label-text {
|
|
152
|
+
color: ${ink.secondary};
|
|
153
|
+
font-weight: 500;
|
|
154
|
+
font-size: 14px;
|
|
155
|
+
}
|
|
156
|
+
${scope} .login-pf-page .instruction,
|
|
157
|
+
${scope} .login-pf-page .subtitle,
|
|
158
|
+
${scope} .login-pf-page .pf-c-form__helper-text,
|
|
159
|
+
${scope} .login-pf-page #kc-info,
|
|
160
|
+
${scope} .login-pf-page .login-pf-signup {
|
|
161
|
+
color: ${ink.muted};
|
|
162
|
+
}
|
|
163
|
+
${scope} .login-pf-page #kc-attempted-username {
|
|
164
|
+
color: ${ink.primary};
|
|
165
|
+
font-weight: 600;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* \u2500\u2500 fields: inset into the slab, not laid on top of it \u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
169
|
+
${scope} .login-pf-page .pf-c-form-control,
|
|
170
|
+
${scope} .login-pf-page input[type="text"],
|
|
171
|
+
${scope} .login-pf-page input[type="password"],
|
|
172
|
+
${scope} .login-pf-page input[type="email"],
|
|
173
|
+
${scope} .login-pf-page input[type="tel"],
|
|
174
|
+
${scope} .login-pf-page input[type="number"],
|
|
175
|
+
${scope} .login-pf-page select,
|
|
176
|
+
${scope} .login-pf-page textarea {
|
|
177
|
+
min-height: ${minPressTargetPx}px;
|
|
178
|
+
background-color: ${field.background};
|
|
179
|
+
color: ${ink.primary};
|
|
180
|
+
border: 1px solid ${field.border};
|
|
181
|
+
box-shadow: none;
|
|
182
|
+
}
|
|
183
|
+
${scope} .login-pf-page .pf-c-form-control:hover,
|
|
184
|
+
${scope} .login-pf-page select:hover,
|
|
185
|
+
${scope} .login-pf-page textarea:hover {
|
|
186
|
+
border-color: ${field.borderHover};
|
|
187
|
+
}
|
|
188
|
+
${scope} .login-pf-page .pf-c-form-control:focus,
|
|
189
|
+
${scope} .login-pf-page select:focus,
|
|
190
|
+
${scope} .login-pf-page textarea:focus {
|
|
191
|
+
border-color: ${field.borderFocus};
|
|
192
|
+
background-color: ${field.background};
|
|
193
|
+
}
|
|
194
|
+
${scope} .login-pf-page .pf-c-form-control::placeholder,
|
|
195
|
+
${scope} .login-pf-page input::placeholder {
|
|
196
|
+
color: ${ink.faint};
|
|
197
|
+
}
|
|
198
|
+
${scope} .login-pf-page .pf-c-form-control[aria-invalid="true"] {
|
|
199
|
+
border-color: ${status.error};
|
|
200
|
+
}
|
|
201
|
+
/* \u2605 THE INPUT GROUP IS OPAQUE WHITE IN PATTERNFLY, and that one fact
|
|
202
|
+
defeats the whole field treatment above. '.pf-c-input-group' wraps the
|
|
203
|
+
password field and its visibility toggle; both of those are painted in
|
|
204
|
+
TRANSLUCENT springboard colours, so over a white parent the field
|
|
205
|
+
composites to mid-grey and the toggle to near-white \u2014 which is exactly
|
|
206
|
+
how it rendered before this rule existed. Clearing the parent is what
|
|
207
|
+
makes the two translucent children land on the slab instead. */
|
|
208
|
+
/* LC-149 FIELD-TRAILING-ACTION: the reveal sits inside the password field
|
|
209
|
+
as a chromeless trailing eye, not a bordered button beside it. The field
|
|
210
|
+
keeps the end cap clear, and PatternFly's in-field invalid glyph steps
|
|
211
|
+
aside for it. */
|
|
212
|
+
${scope} .login-pf-page .pf-c-input-group {
|
|
213
|
+
background: transparent;
|
|
214
|
+
position: relative;
|
|
215
|
+
display: flex;
|
|
216
|
+
align-items: stretch;
|
|
217
|
+
}
|
|
218
|
+
${scope} .login-pf-page .pf-c-input-group .pf-c-form-control,
|
|
219
|
+
${scope} .login-pf-page .pf-c-input-group .pf-c-form-control[aria-invalid="true"] {
|
|
220
|
+
flex: 1 1 auto;
|
|
221
|
+
padding-inline-end: ${minPressTargetPx}px;
|
|
222
|
+
background-image: none;
|
|
223
|
+
}
|
|
224
|
+
${scope} .login-pf-page .pf-c-input-group .pf-c-button.pf-m-control,
|
|
225
|
+
${scope} .login-pf-page .pf-c-input-group .pf-c-button.pf-m-control:hover,
|
|
226
|
+
${scope} .login-pf-page .pf-c-input-group .pf-c-button.pf-m-control:active {
|
|
227
|
+
position: absolute;
|
|
228
|
+
inset-block: 0;
|
|
229
|
+
inset-inline-end: 0;
|
|
230
|
+
z-index: 1;
|
|
231
|
+
width: ${minPressTargetPx}px;
|
|
232
|
+
min-width: ${minPressTargetPx}px;
|
|
233
|
+
min-height: 0;
|
|
234
|
+
padding: 0;
|
|
235
|
+
background-color: transparent;
|
|
236
|
+
border-color: transparent;
|
|
237
|
+
box-shadow: none;
|
|
238
|
+
color: ${ink.secondary};
|
|
239
|
+
}
|
|
240
|
+
${scope} .login-pf-page .pf-c-input-group .pf-c-button.pf-m-control:hover {
|
|
241
|
+
color: ${ink.primary};
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/* Chrome paints autofilled inputs a fixed pale yellow that no colour
|
|
245
|
+
property overrides \u2014 the inset shadow is the documented way to repaint
|
|
246
|
+
the field, and without it a remembered username lands as a white bar in
|
|
247
|
+
the middle of the slab. */
|
|
248
|
+
${scope} .login-pf-page input:-webkit-autofill,
|
|
249
|
+
${scope} .login-pf-page input:-webkit-autofill:hover,
|
|
250
|
+
${scope} .login-pf-page input:-webkit-autofill:focus {
|
|
251
|
+
-webkit-box-shadow: 0 0 0 1000px ${field.background} inset;
|
|
252
|
+
-webkit-text-fill-color: ${ink.primary};
|
|
253
|
+
caret-color: ${ink.primary};
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/* \u2500\u2500 buttons \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
257
|
+
${scope} .login-pf-page .pf-c-button {
|
|
258
|
+
min-height: ${minPressTargetPx}px;
|
|
259
|
+
font-weight: 600;
|
|
260
|
+
}
|
|
261
|
+
${scope} .login-pf-page .pf-c-button.pf-m-primary,
|
|
262
|
+
${scope} .login-pf-page input.pf-m-primary[type="submit"],
|
|
263
|
+
${scope} .login-pf-page input.pf-m-primary[type="button"] {
|
|
264
|
+
background-color: ${accent.indigo};
|
|
265
|
+
border-color: ${accent.indigo};
|
|
266
|
+
color: ${ink.primary};
|
|
267
|
+
box-shadow: ${iconShadow};
|
|
268
|
+
}
|
|
269
|
+
${scope} .login-pf-page .pf-c-button.pf-m-primary:hover,
|
|
270
|
+
${scope} .login-pf-page input.pf-m-primary[type="submit"]:hover {
|
|
271
|
+
background-color: ${accent.indigoHover};
|
|
272
|
+
border-color: ${accent.indigoHover};
|
|
273
|
+
}
|
|
274
|
+
${scope} .login-pf-page .pf-c-button.pf-m-primary:active,
|
|
275
|
+
${scope} .login-pf-page input.pf-m-primary[type="submit"]:active {
|
|
276
|
+
background-color: ${accent.indigoPress};
|
|
277
|
+
border-color: ${accent.indigoPress};
|
|
278
|
+
}
|
|
279
|
+
${scope} .login-pf-page .pf-c-button.pf-m-primary:disabled,
|
|
280
|
+
${scope} .login-pf-page input.pf-m-primary[type="submit"]:disabled {
|
|
281
|
+
background-color: ${field.ghost};
|
|
282
|
+
border-color: ${field.border};
|
|
283
|
+
color: ${ink.faint};
|
|
284
|
+
box-shadow: none;
|
|
285
|
+
}
|
|
286
|
+
${scope} .login-pf-page .pf-c-button.pf-m-control,
|
|
287
|
+
${scope} .login-pf-page .pf-c-button.pf-m-secondary,
|
|
288
|
+
${scope} .login-pf-page .pf-c-button.btn-default:not(.pf-m-primary) {
|
|
289
|
+
background-color: ${field.ghost};
|
|
290
|
+
border-color: ${field.border};
|
|
291
|
+
color: ${ink.primary};
|
|
292
|
+
}
|
|
293
|
+
${scope} .login-pf-page .pf-c-button.pf-m-control:hover,
|
|
294
|
+
${scope} .login-pf-page .pf-c-button.pf-m-secondary:hover,
|
|
295
|
+
${scope} .login-pf-page .pf-c-button.btn-default:not(.pf-m-primary):hover {
|
|
296
|
+
background-color: ${field.ghostHover};
|
|
297
|
+
border-color: ${field.borderHover};
|
|
298
|
+
color: ${ink.primary};
|
|
299
|
+
}
|
|
300
|
+
/* PatternFly draws control-button borders on an ::after overlay and
|
|
301
|
+
accents its bottom edge on interaction; on the slab that reads as a
|
|
302
|
+
stray underline beneath the password-visibility toggle. */
|
|
303
|
+
${scope} .login-pf-page .pf-c-button::after,
|
|
304
|
+
${scope} .login-pf-page .pf-c-button:hover::after,
|
|
305
|
+
${scope} .login-pf-page .pf-c-button:focus::after,
|
|
306
|
+
${scope} .login-pf-page .pf-c-button:active::after {
|
|
307
|
+
content: none;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/* \u2500\u2500 the remember-me checkbox \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
311
|
+
/* \u2605 THE RESET IS PART OF THE SKIN, not borrowed from the house sheet.
|
|
312
|
+
A native checkbox is a 13px white box drawn by the platform: no colour
|
|
313
|
+
property reaches it, so on the slab it reads as a bright chip with no
|
|
314
|
+
relationship to anything around it. 'appearance: none' is what makes it
|
|
315
|
+
paintable at all. The visual square stays 22px inside a transparent
|
|
316
|
+
border that pads the hit box out to the press-target floor, so the
|
|
317
|
+
control is small and the target is not (DG-A11Y-01).
|
|
318
|
+
|
|
319
|
+
The house sheet bakes its tick glyph as a data-URI at build time from
|
|
320
|
+
the ramp's CTA foreground, so the springboard's tick is restated here
|
|
321
|
+
rather than inherited through a custom property. */
|
|
322
|
+
${scope} .login-pf-page input[type="checkbox"] {
|
|
323
|
+
appearance: none;
|
|
324
|
+
-webkit-appearance: none;
|
|
325
|
+
position: static;
|
|
326
|
+
box-sizing: content-box;
|
|
327
|
+
width: 22px;
|
|
328
|
+
height: 22px;
|
|
329
|
+
border: ${Math.round((minPressTargetPx - 22) / 2)}px solid transparent;
|
|
330
|
+
border-radius: ${Math.round((minPressTargetPx - 22) / 2) + 8}px;
|
|
331
|
+
background-clip: padding-box;
|
|
332
|
+
background-repeat: no-repeat;
|
|
333
|
+
background-position: center;
|
|
334
|
+
background-size: 15px 15px;
|
|
335
|
+
margin: 0 4px 0 0;
|
|
336
|
+
flex: 0 0 auto;
|
|
337
|
+
cursor: pointer;
|
|
338
|
+
background-color: ${field.background};
|
|
339
|
+
box-shadow: inset 0 0 0 1.5px ${field.borderHover};
|
|
340
|
+
}
|
|
341
|
+
${scope} .login-pf-page .checkbox label,
|
|
342
|
+
${scope} .login-pf-page .pf-c-check {
|
|
343
|
+
display: inline-flex;
|
|
344
|
+
align-items: center;
|
|
345
|
+
min-height: ${minPressTargetPx}px;
|
|
346
|
+
padding-left: 0;
|
|
347
|
+
margin: 0;
|
|
348
|
+
cursor: pointer;
|
|
349
|
+
}
|
|
350
|
+
${scope} .login-pf-page input[type="checkbox"]:checked,
|
|
351
|
+
${scope}.t_dark .login-pf-page input[type="checkbox"]:checked {
|
|
352
|
+
background-color: ${accent.indigo};
|
|
353
|
+
box-shadow: inset 0 0 0 1.5px ${accent.indigo};
|
|
354
|
+
background-image: url("data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="${ink.primary}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>`)}");
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/* \u2500\u2500 links \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
358
|
+
${scope} .login-pf-page a {
|
|
359
|
+
color: ${accent.sky};
|
|
360
|
+
}
|
|
361
|
+
${scope} .login-pf-page a:hover {
|
|
362
|
+
color: ${accent.sky};
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/* \u2500\u2500 alerts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
366
|
+
${scope} .login-pf-page .pf-c-alert.pf-m-inline {
|
|
367
|
+
background: ${field.background};
|
|
368
|
+
border: 1px solid ${field.border};
|
|
369
|
+
border-left-width: 3px;
|
|
370
|
+
border-left-color: ${status.info};
|
|
371
|
+
}
|
|
372
|
+
${scope} .login-pf-page .pf-c-alert.pf-m-inline.pf-m-danger {
|
|
373
|
+
border-left-color: ${status.error};
|
|
374
|
+
}
|
|
375
|
+
${scope} .login-pf-page .pf-c-alert.pf-m-inline.pf-m-warning {
|
|
376
|
+
border-left-color: ${status.warning};
|
|
377
|
+
}
|
|
378
|
+
${scope} .login-pf-page .pf-c-alert.pf-m-inline.pf-m-success {
|
|
379
|
+
border-left-color: ${status.success};
|
|
380
|
+
}
|
|
381
|
+
${scope} .login-pf-page .pf-c-alert__title {
|
|
382
|
+
color: ${ink.primary};
|
|
383
|
+
}
|
|
384
|
+
${scope} .login-pf-page .pf-c-alert__icon {
|
|
385
|
+
color: ${ink.muted};
|
|
386
|
+
}
|
|
387
|
+
${scope} .login-pf-page span#input-error,
|
|
388
|
+
${scope} .login-pf-page [id^="input-error"],
|
|
389
|
+
${scope} .login-pf-page .pf-m-error,
|
|
390
|
+
${scope} .login-pf-page .required {
|
|
391
|
+
color: ${status.error};
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/* \u2500\u2500 identity providers: the SSO buttons \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
395
|
+
/* \u2605 CHROME ONLY. Every provider row is an <a href={p.loginUrl}> that
|
|
396
|
+
keycloakify renders from social.providers; nothing here changes what
|
|
397
|
+
it points at, what it is called, or whether it appears. */
|
|
398
|
+
${scope} .login-pf-page #kc-social-providers h2 {
|
|
399
|
+
color: ${ink.muted};
|
|
400
|
+
font-size: 13px;
|
|
401
|
+
font-weight: 500;
|
|
402
|
+
}
|
|
403
|
+
${scope} .login-pf-page hr,
|
|
404
|
+
${scope} .login-pf-page #kc-social-providers hr {
|
|
405
|
+
border-top: 1px solid ${field.divider};
|
|
406
|
+
opacity: 1;
|
|
407
|
+
}
|
|
408
|
+
${scope} .login-pf-page .kc-social-item,
|
|
409
|
+
${scope} .login-pf-page .kc-social-links a,
|
|
410
|
+
${scope} .login-pf-page #kc-social-providers li a {
|
|
411
|
+
min-height: ${minPressTargetPx}px;
|
|
412
|
+
background: ${field.ghost};
|
|
413
|
+
border: 1px solid ${field.border};
|
|
414
|
+
border-radius: var(--sb-icon-radius);
|
|
415
|
+
color: ${ink.primary};
|
|
416
|
+
text-decoration: none;
|
|
417
|
+
}
|
|
418
|
+
${scope} .login-pf-page .kc-social-item:hover,
|
|
419
|
+
${scope} .login-pf-page .kc-social-links a:hover,
|
|
420
|
+
${scope} .login-pf-page #kc-social-providers li a:hover {
|
|
421
|
+
background: ${field.ghostHover};
|
|
422
|
+
border-color: ${field.borderHover};
|
|
423
|
+
color: ${ink.primary};
|
|
424
|
+
}
|
|
425
|
+
${scope} .login-pf-page .kc-social-provider-name,
|
|
426
|
+
${scope} .login-pf-page .kc-social-icon-text {
|
|
427
|
+
color: ${ink.primary};
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/* \u2500\u2500 the OTP credential tiles (login-otp.ftl) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
431
|
+
${scope} .login-pf-page .pf-c-tile {
|
|
432
|
+
background: ${field.background};
|
|
433
|
+
border: 1px solid ${field.border};
|
|
434
|
+
border-radius: var(--sb-icon-radius);
|
|
435
|
+
color: ${ink.primary};
|
|
436
|
+
}
|
|
437
|
+
${scope} .login-pf-page .pf-c-tile__input:checked + .pf-c-tile,
|
|
438
|
+
${scope} .login-pf-page .pf-c-tile__input:checked + label {
|
|
439
|
+
border-color: ${accent.indigo};
|
|
440
|
+
background: ${field.ghostHover};
|
|
441
|
+
}
|
|
442
|
+
${scope} .login-pf-page .pf-c-tile__title,
|
|
443
|
+
${scope} .login-pf-page .pf-c-tile__icon {
|
|
444
|
+
color: ${ink.primary};
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/* \u2500\u2500 the registration / back-to-app footer band \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
448
|
+
/* The stock sheet bleeds #kc-info to the card edge as a #f0f0f0 band.
|
|
449
|
+
On the slab it becomes the dock's own darker step. */
|
|
450
|
+
${scope} .login-pf-page #kc-info {
|
|
451
|
+
margin: ${plate.gap}px -${cardPadX}px -${cardPadY}px;
|
|
452
|
+
padding: 0;
|
|
453
|
+
color: ${ink.muted};
|
|
454
|
+
}
|
|
455
|
+
${scope} .login-pf-page #kc-info-wrapper {
|
|
456
|
+
background: rgba(8, 11, 20, 0.42);
|
|
457
|
+
border-top: 1px solid ${field.divider};
|
|
458
|
+
border-radius: 0 0 ${plate.radius - 1}px ${plate.radius - 1}px;
|
|
459
|
+
padding: 14px ${cardPadX}px;
|
|
460
|
+
color: ${ink.muted};
|
|
461
|
+
text-align: center;
|
|
462
|
+
}
|
|
463
|
+
${scope} .login-pf-page #kc-info-wrapper a {
|
|
464
|
+
color: ${accent.sky};
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/* \u2500\u2500 the locale menu \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
468
|
+
${scope} .login-pf-page #kc-current-locale-link {
|
|
469
|
+
color: ${ink.muted};
|
|
470
|
+
}
|
|
471
|
+
${scope} .login-pf-page #kc-current-locale-link:hover {
|
|
472
|
+
background: ${field.ghost};
|
|
473
|
+
color: ${ink.primary};
|
|
474
|
+
}
|
|
475
|
+
${scope} .login-pf-page .pf-c-dropdown__menu {
|
|
476
|
+
background: ${wallpaperColors.base};
|
|
477
|
+
border: 1px solid ${plate.highlight};
|
|
478
|
+
box-shadow: ${plateShadow};
|
|
479
|
+
}
|
|
480
|
+
${scope} .login-pf-page .pf-c-dropdown__menu-item {
|
|
481
|
+
color: ${ink.primary};
|
|
482
|
+
}
|
|
483
|
+
${scope} .login-pf-page .pf-c-dropdown__menu-item:hover {
|
|
484
|
+
background: ${field.ghost};
|
|
485
|
+
color: ${ink.primary};
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/* \u2500\u2500 focus ring (DG-A11Y-01: non-removable) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
489
|
+
/* !important outranks both PatternFly's focus styles and the house
|
|
490
|
+
ThemeProvider's global outline reset. The keyboard ring is the one
|
|
491
|
+
affordance a skin must never take away. */
|
|
492
|
+
${scope} a:focus-visible,
|
|
493
|
+
${scope} button:focus-visible,
|
|
494
|
+
${scope} input:focus-visible,
|
|
495
|
+
${scope} select:focus-visible,
|
|
496
|
+
${scope} textarea:focus-visible,
|
|
497
|
+
${scope} [tabindex]:focus-visible {
|
|
498
|
+
outline: ${focusRingWidthPx}px solid ${accent.sky} !important;
|
|
499
|
+
outline-offset: ${focusRingOffsetPx}px !important;
|
|
500
|
+
box-shadow: none !important;
|
|
501
|
+
}
|
|
502
|
+
/* LC-133 FOCUS-IS-BORDER (FZ-7717): a text field is the exception. It
|
|
503
|
+
focuses with its own border in the accent, at the width it already has,
|
|
504
|
+
so it changes colour and never size. */
|
|
505
|
+
${scope} .login-pf-page .pf-c-form-control:focus,
|
|
506
|
+
${scope} .login-pf-page .pf-c-form-control:focus-visible {
|
|
507
|
+
border-color: ${field.borderFocus};
|
|
508
|
+
outline: none !important;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/* \u2500\u2500 small screens keep the slab \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
512
|
+
@media (max-width: 767px) {
|
|
513
|
+
${scope} .login-pf-page .card-pf {
|
|
514
|
+
margin: 0 12px;
|
|
515
|
+
background: var(--sb-plate-fill);
|
|
516
|
+
border: 1px solid var(--sb-plate-highlight);
|
|
517
|
+
border-radius: var(--sb-plate-radius);
|
|
518
|
+
box-shadow:
|
|
519
|
+
inset 0 1px 0 ${plate.highlight},
|
|
520
|
+
${plateShadow};
|
|
521
|
+
}
|
|
522
|
+
${scope} .login-pf-page #kc-header-wrapper {
|
|
523
|
+
padding: 28px 16px 14px;
|
|
524
|
+
font-size: 19px;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
`;
|
|
528
|
+
}
|
|
529
|
+
export { buildSpringboardCss };
|
|
530
|
+
//# sourceMappingURL=css.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["accent","caption","field","fontFamily","defaultFontFamily","icon","ink","plate","status","trigger","wallpaperColors","wallpaperLayers","cssString","value","JSON","stringify","customProperties","base","fill","background","primary","muted","faint","border","borderHover","borderFocus","divider","ghost","ghostHover","sky","indigo","indigoHover","indigoPress","error","warning","success","info","highlight","radius","size","fontSize","lineHeight","join","onWallpaperShadow","shadowOffsetY","shadowBlur","textShadow","plateShadow","iconShadow","shadowColor","markRules","scope","mark","monogramSize","Math","round","monogramLine","marginTop","monogram","foreground","buildSpringboardCss","options","focusRingWidthPx","focusRingOffsetPx","minPressTargetPx","cardMaxWidthPx","vars","cardPadY","paddingVertical","cardPadX","paddingHorizontal","text","gap","secondary","encodeURIComponent"],"sources":["../../src/css.ts"],"sourcesContent":[null],"mappings":"AA8CA,SACEA,MAAA,EACAC,OAAA,EACAC,KAAA,EACAC,UAAA,IAAcC,iBAAA,EACdC,IAAA,EACAC,GAAA,EACAC,KAAA,EACAC,MAAA,EACAC,OAAA,EACAC,eAAA,EACAC,eAAA,QACK;AA4BP,SAASC,UAAUC,KAAA,EAAuB;EACxC,OAAOC,IAAA,CAAKC,SAAA,CAAUF,KAAK;AAC7B;AAQA,SAASG,iBAAA,EAA2B;EAClC,OAAO;EAAA;EAEL,iBAAiBN,eAAA,CAAgBO,IAAI,KACrC,iBAAiBV,KAAA,CAAMW,IAAI,KAC3B,kBAAkBhB,KAAA,CAAMiB,UAAU;EAAA;EAElC,cAAcb,GAAA,CAAIc,OAAO,KACzB,eAAed,GAAA,CAAIe,KAAK,KACxB,qBAAqBf,GAAA,CAAIgB,KAAK;EAAA;EAE9B,gBAAgBpB,KAAA,CAAMqB,MAAM,KAC5B,sBAAsBrB,KAAA,CAAMsB,WAAW,KACvC,sBAAsBtB,KAAA,CAAMuB,WAAW,KACvC,uBAAuBvB,KAAA,CAAMsB,WAAW,KACxC,iBAAiBtB,KAAA,CAAMwB,OAAO;EAAA;EAE9B,kBAAkBxB,KAAA,CAAMyB,KAAK,KAC7B,kBAAkBzB,KAAA,CAAM0B,UAAU,KAClC,cAAc5B,MAAA,CAAO6B,GAAG,KACxB,cAAc7B,MAAA,CAAO6B,GAAG;EAAA;EAExB,gBAAgB7B,MAAA,CAAO8B,MAAM,KAC7B,gBAAgBxB,GAAA,CAAIc,OAAO,KAC3B,mBAAmBpB,MAAA,CAAO+B,WAAW,KACrC,mBAAmB/B,MAAA,CAAOgC,WAAW;EAAA;EAErC,qBAAqB9B,KAAA,CAAMyB,KAAK,KAChC,yBAAyBzB,KAAA,CAAMqB,MAAM,KACrC,uBAAuBjB,GAAA,CAAIgB,KAAK;EAAA;EAEhC,oBAAoBd,MAAA,CAAOyB,KAAK,KAChC,sBAAsBzB,MAAA,CAAOyB,KAAK,KAClC,wBAAwBzB,MAAA,CAAO0B,OAAO,KACtC,wBAAwB1B,MAAA,CAAO2B,OAAO,KACtC,qBAAqB3B,MAAA,CAAO4B,IAAI,KAChC;EAAA;EAEA,oBAAoB7B,KAAA,CAAMW,IAAI,KAC9B,yBAAyBX,KAAA,CAAM8B,SAAS,KACxC,sBAAsB9B,KAAA,CAAM+B,MAAM,OAClC,mBAAmBjC,IAAA,CAAKkC,IAAI,OAC5B,qBAAqBlC,IAAA,CAAKiC,MAAM,OAChC,sBAAsBrC,OAAA,CAAQuC,QAAQ,OACtC,sBAAsBvC,OAAA,CAAQwC,UAAU,MAC1C,CAAEC,IAAA,CAAK,MAAM;AACf;AAGA,MAAMC,iBAAA,GAAoB,KAAK1C,OAAA,CAAQ2C,aAAa,MAAM3C,OAAA,CAAQ4C,UAAU,MAAMnC,eAAA,CAAgBoC,UAAU;AAG5G,MAAMC,WAAA,GAAc,KAAKtC,OAAA,CAAQmC,aAAa,MAAMnC,OAAA,CAAQoC,UAAU;AAGtE,MAAMG,UAAA,GAAa,KAAK3C,IAAA,CAAKuC,aAAa,MAAMvC,IAAA,CAAKwC,UAAU,MAAMxC,IAAA,CAAK4C,WAAW;AAuBrF,SAASC,UAAUC,KAAA,EAAeC,IAAA,EAAyB;EACzD,MAAMC,YAAA,GAAeC,IAAA,CAAKC,KAAA,CAAMlD,IAAA,CAAKkC,IAAA,GAAO,IAAI;EAChD,MAAMiB,YAAA,GAAeF,IAAA,CAAKC,KAAA,CAAMlD,IAAA,CAAKkC,IAAA,GAAO,GAAG;EAC/C,OAAO;AAAA;AAAA,EAEPY,KAAK;AAAA,EACLA,KAAK;AAAA;AAAA;AAAA;AAAA,SAIElD,OAAA,CAAQwD,SAAS;AAAA;AAAA,EAExBN,KAAK;AAAA,EACLA,KAAK;AAAA,aACMvC,SAAA,CAAUwC,IAAA,CAAKM,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKrBN,IAAA,CAAKjC,UAAU;AAAA,WACpBiC,IAAA,CAAKO,UAAU;AAAA,gBACVX,UAAU;AAAA;AAAA;AAAA;AAAA,eAIXK,YAAY;AAAA,iBACVG,YAAY;AAAA;AAAA;AAAA;AAAA;AAK7B;AAGO,SAASI,oBAAoBC,OAAA,GAAiC,CAAC,GAAW;EAC/E,MAAM;IACJT,IAAA;IACAjD,UAAA,GAAaC,iBAAA;IACb0D,gBAAA,GAAmB;IACnBC,iBAAA,GAAoB;IACpBC,gBAAA,GAAmB;IACnBC,cAAA,GAAiB;EACnB,IAAIJ,OAAA;EAEJ,MAAMV,KAAA,GAAQ;EACd,MAAMe,IAAA,GAAOlD,gBAAA,CAAiB;EAK9B,MAAMmD,QAAA,GAAW5D,KAAA,CAAM6D,eAAA,GAAkB;EACzC,MAAMC,QAAA,GAAW9D,KAAA,CAAM+D,iBAAA,GAAoB;EAE3C,OAAO;AAAA;AAAA;AAAA,EAGPnB,KAAK;AAAA,EACLA,KAAK;AAAA,IACHe,IAAI;AAAA;AAAA;AAAA;AAAA,EAINf,KAAK;AAAA,sBACezC,eAAA,CAAgBO,IAAI;AAAA,sBACpBN,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnCwC,KAAK;AAAA;AAAA,WAEI7C,GAAA,CAAIc,OAAO;AAAA,iBACLjB,UAAU;AAAA;AAAA;AAAA,EAGzBgD,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQLA,KAAK;AAAA,WACIzC,eAAA,CAAgB6D,IAAI;AAAA,iBACd5B,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhCQ,KAAK;AAAA,eACQc,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQT1D,KAAA,CAAM8B,SAAS;AAAA,MAC7BU,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAMJoB,QAAQ,MAAME,QAAQ;AAAA;AAAA;AAAA,EAGjClB,KAAK;AAAA,EACLA,KAAK;AAAA,WACI7C,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA,gBAINb,KAAA,CAAMiE,GAAG;AAAA;AAAA,EAEvBpB,IAAA,GAAOF,SAAA,CAAUC,KAAA,EAAOC,IAAI,IAAI,EAAE;AAAA;AAAA;AAAA,EAGlCD,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,WACI7C,GAAA,CAAImE,SAAS;AAAA;AAAA;AAAA;AAAA,EAItBtB,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,WACI7C,GAAA,CAAIe,KAAK;AAAA;AAAA,EAElB8B,KAAK;AAAA,WACI7C,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,gBACSa,gBAAgB;AAAA,sBACV9D,KAAA,CAAMiB,UAAU;AAAA,WAC3Bb,GAAA,CAAIc,OAAO;AAAA,sBACAlB,KAAA,CAAMqB,MAAM;AAAA;AAAA;AAAA,EAGhC4B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,kBACWjD,KAAA,CAAMsB,WAAW;AAAA;AAAA,EAEjC2B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,kBACWjD,KAAA,CAAMuB,WAAW;AAAA,sBACbvB,KAAA,CAAMiB,UAAU;AAAA;AAAA,EAEpCgC,KAAK;AAAA,EACLA,KAAK;AAAA,WACI7C,GAAA,CAAIgB,KAAK;AAAA;AAAA,EAElB6B,KAAK;AAAA,kBACW3C,MAAA,CAAOyB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa5BkB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMLA,KAAK;AAAA,EACLA,KAAK;AAAA;AAAA,wBAEiBa,gBAAgB;AAAA;AAAA;AAAA,EAGtCb,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,WAKIa,gBAAgB;AAAA,eACZA,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMpB1D,GAAA,CAAImE,SAAS;AAAA;AAAA,EAEtBtB,KAAK;AAAA,WACI7C,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,qCAC8BjD,KAAA,CAAMiB,UAAU;AAAA,6BACxBb,GAAA,CAAIc,OAAO;AAAA,iBACvBd,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA,EAI1B+B,KAAK;AAAA,gBACSa,gBAAgB;AAAA;AAAA;AAAA,EAG9Bb,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,sBACenD,MAAA,CAAO8B,MAAM;AAAA,kBACjB9B,MAAA,CAAO8B,MAAM;AAAA,WACpBxB,GAAA,CAAIc,OAAO;AAAA,gBACN4B,UAAU;AAAA;AAAA,EAExBG,KAAK;AAAA,EACLA,KAAK;AAAA,sBACenD,MAAA,CAAO+B,WAAW;AAAA,kBACtB/B,MAAA,CAAO+B,WAAW;AAAA;AAAA,EAElCoB,KAAK;AAAA,EACLA,KAAK;AAAA,sBACenD,MAAA,CAAOgC,WAAW;AAAA,kBACtBhC,MAAA,CAAOgC,WAAW;AAAA;AAAA,EAElCmB,KAAK;AAAA,EACLA,KAAK;AAAA,sBACejD,KAAA,CAAMyB,KAAK;AAAA,kBACfzB,KAAA,CAAMqB,MAAM;AAAA,WACnBjB,GAAA,CAAIgB,KAAK;AAAA;AAAA;AAAA,EAGlB6B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,sBACejD,KAAA,CAAMyB,KAAK;AAAA,kBACfzB,KAAA,CAAMqB,MAAM;AAAA,WACnBjB,GAAA,CAAIc,OAAO;AAAA;AAAA,EAEpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,sBACejD,KAAA,CAAM0B,UAAU;AAAA,kBACpB1B,KAAA,CAAMsB,WAAW;AAAA,WACxBlB,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBLA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOKG,IAAA,CAAKC,KAAA,EAAOS,gBAAA,GAAmB,MAAM,CAAC,CAAC;AAAA,mBAChCV,IAAA,CAAKC,KAAA,EAAOS,gBAAA,GAAmB,MAAM,CAAC,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAQxC9D,KAAA,CAAMiB,UAAU;AAAA,kCACJjB,KAAA,CAAMsB,WAAW;AAAA;AAAA,EAEjD2B,KAAK;AAAA,EACLA,KAAK;AAAA;AAAA;AAAA,gBAGSa,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9Bb,KAAK;AAAA,EACLA,KAAK;AAAA,sBACenD,MAAA,CAAO8B,MAAM;AAAA,kCACD9B,MAAA,CAAO8B,MAAM;AAAA,8CACD4C,kBAAA,CAC1C,mFAAmFpE,GAAA,CAAIc,OAAO,uGAChG,CAAC;AAAA;AAAA;AAAA;AAAA,EAID+B,KAAK;AAAA,WACInD,MAAA,CAAO6B,GAAG;AAAA;AAAA,EAEnBsB,KAAK;AAAA,WACInD,MAAA,CAAO6B,GAAG;AAAA;AAAA;AAAA;AAAA,EAInBsB,KAAK;AAAA,gBACSjD,KAAA,CAAMiB,UAAU;AAAA,sBACVjB,KAAA,CAAMqB,MAAM;AAAA;AAAA,uBAEXf,MAAA,CAAO4B,IAAI;AAAA;AAAA,EAEhCe,KAAK;AAAA,uBACgB3C,MAAA,CAAOyB,KAAK;AAAA;AAAA,EAEjCkB,KAAK;AAAA,uBACgB3C,MAAA,CAAO0B,OAAO;AAAA;AAAA,EAEnCiB,KAAK;AAAA,uBACgB3C,MAAA,CAAO2B,OAAO;AAAA;AAAA,EAEnCgB,KAAK;AAAA,WACI7C,GAAA,CAAIc,OAAO;AAAA;AAAA,EAEpB+B,KAAK;AAAA,WACI7C,GAAA,CAAIe,KAAK;AAAA;AAAA,EAElB8B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,WACI3C,MAAA,CAAOyB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrBkB,KAAK;AAAA,WACI7C,GAAA,CAAIe,KAAK;AAAA;AAAA;AAAA;AAAA,EAIlB8B,KAAK;AAAA,EACLA,KAAK;AAAA,0BACmBjD,KAAA,CAAMwB,OAAO;AAAA;AAAA;AAAA,EAGrCyB,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,gBACSa,gBAAgB;AAAA,gBAChB9D,KAAA,CAAMyB,KAAK;AAAA,sBACLzB,KAAA,CAAMqB,MAAM;AAAA;AAAA,WAEvBjB,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA,EAGpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,gBACSjD,KAAA,CAAM0B,UAAU;AAAA,kBACd1B,KAAA,CAAMsB,WAAW;AAAA,WACxBlB,GAAA,CAAIc,OAAO;AAAA;AAAA,EAEpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,WACI7C,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA,EAIpB+B,KAAK;AAAA,gBACSjD,KAAA,CAAMiB,UAAU;AAAA,sBACVjB,KAAA,CAAMqB,MAAM;AAAA;AAAA,WAEvBjB,GAAA,CAAIc,OAAO;AAAA;AAAA,EAEpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,kBACWnD,MAAA,CAAO8B,MAAM;AAAA,gBACf5B,KAAA,CAAM0B,UAAU;AAAA;AAAA,EAE9BuB,KAAK;AAAA,EACLA,KAAK;AAAA,WACI7C,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB+B,KAAK;AAAA,YACK5C,KAAA,CAAMiE,GAAG,OAAOH,QAAQ,OAAOF,QAAQ;AAAA;AAAA,WAExC7D,GAAA,CAAIe,KAAK;AAAA;AAAA,EAElB8B,KAAK;AAAA;AAAA,0BAEmBjD,KAAA,CAAMwB,OAAO;AAAA,uBAChBnB,KAAA,CAAM+B,MAAA,GAAS,CAAC,MAAM/B,KAAA,CAAM+B,MAAA,GAAS,CAAC;AAAA,kBAC3C+B,QAAQ;AAAA,WACf/D,GAAA,CAAIe,KAAK;AAAA;AAAA;AAAA,EAGlB8B,KAAK;AAAA,WACInD,MAAA,CAAO6B,GAAG;AAAA;AAAA;AAAA;AAAA,EAInBsB,KAAK;AAAA,WACI7C,GAAA,CAAIe,KAAK;AAAA;AAAA,EAElB8B,KAAK;AAAA,gBACSjD,KAAA,CAAMyB,KAAK;AAAA,WAChBrB,GAAA,CAAIc,OAAO;AAAA;AAAA,EAEpB+B,KAAK;AAAA,gBACSzC,eAAA,CAAgBO,IAAI;AAAA,sBACdV,KAAA,CAAM8B,SAAS;AAAA,gBACrBU,WAAW;AAAA;AAAA,EAEzBI,KAAK;AAAA,WACI7C,GAAA,CAAIc,OAAO;AAAA;AAAA,EAEpB+B,KAAK;AAAA,gBACSjD,KAAA,CAAMyB,KAAK;AAAA,WAChBrB,GAAA,CAAIc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpB+B,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,EACLA,KAAK;AAAA,aACMW,gBAAgB,YAAY9D,MAAA,CAAO6B,GAAG;AAAA,oBAC/BkC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnCZ,KAAK;AAAA,EACLA,KAAK;AAAA,kBACWjD,KAAA,CAAMuB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM/B0B,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMa5C,KAAA,CAAM8B,SAAS;AAAA,QAC7BU,WAAW;AAAA;AAAA,IAEfI,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMT","ignoreList":[]}
|