@sensorario/sg-components 0.0.89 → 0.0.90
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/index.es.js +90 -54
- package/dist/sg-components.css +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -198,7 +198,43 @@ var c = {
|
|
|
198
198
|
style: { marginLeft: "16px" },
|
|
199
199
|
children: e
|
|
200
200
|
}, t)) })]
|
|
201
|
-
}), f =
|
|
201
|
+
}), f = "simonegentili.com-cookie-consent", p = 3600 * 24 * 365;
|
|
202
|
+
function m() {
|
|
203
|
+
return document.cookie.split("; ").some((e) => e.startsWith(`${f}=`));
|
|
204
|
+
}
|
|
205
|
+
function h() {
|
|
206
|
+
document.cookie = `${f}=accepted; path=/; domain=.simonegentili.com; max-age=${p}; secure; samesite=strict`;
|
|
207
|
+
}
|
|
208
|
+
var g = ({ privacyPolicyHref: e = "https://simonegentili.com/privacy" }) => {
|
|
209
|
+
let [t, r] = i(!1);
|
|
210
|
+
return n(() => {
|
|
211
|
+
r(!m());
|
|
212
|
+
}, []), t ? /* @__PURE__ */ s("div", {
|
|
213
|
+
className: "cookie-consent",
|
|
214
|
+
role: "region",
|
|
215
|
+
"aria-label": "Informativa sui cookie",
|
|
216
|
+
children: [/* @__PURE__ */ s("p", {
|
|
217
|
+
className: "cookie-consent-text",
|
|
218
|
+
children: [
|
|
219
|
+
"Questo sito utilizza esclusivamente cookie tecnici necessari al funzionamento (es. autenticazione). Non sono presenti cookie di profilazione o di terze parti. Per saperne di più consulta la",
|
|
220
|
+
" ",
|
|
221
|
+
/* @__PURE__ */ o("a", {
|
|
222
|
+
href: e,
|
|
223
|
+
target: "_blank",
|
|
224
|
+
rel: "noopener noreferrer",
|
|
225
|
+
children: "Privacy Policy"
|
|
226
|
+
}),
|
|
227
|
+
"."
|
|
228
|
+
]
|
|
229
|
+
}), /* @__PURE__ */ o(u, {
|
|
230
|
+
label: "Accetta",
|
|
231
|
+
onClick: () => {
|
|
232
|
+
h(), r(!1);
|
|
233
|
+
},
|
|
234
|
+
className: "cookie-consent-accept"
|
|
235
|
+
})]
|
|
236
|
+
}) : null;
|
|
237
|
+
}, _ = [
|
|
202
238
|
{
|
|
203
239
|
label: "guitar",
|
|
204
240
|
href: "https://guitar.simonegentili.com"
|
|
@@ -219,11 +255,11 @@ var c = {
|
|
|
219
255
|
label: "code2image",
|
|
220
256
|
href: "https://code2image.simonegentili.com"
|
|
221
257
|
}
|
|
222
|
-
],
|
|
258
|
+
], v = () => /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(d, {
|
|
223
259
|
href: "https://simonegentili.com",
|
|
224
260
|
copyright: "© 2026 simonegentili.com",
|
|
225
|
-
links:
|
|
226
|
-
}),
|
|
261
|
+
links: _
|
|
262
|
+
}), /* @__PURE__ */ o(g, {})] }), y = ({ onNavigate: e, title: t = "Simone Gentili - senior web developer, tech author and chess enthusiast", homePageKey: n = "home", children: r, className: i }) => /* @__PURE__ */ o("header", {
|
|
227
263
|
className: i ? `header ${i}` : "header",
|
|
228
264
|
children: /* @__PURE__ */ s("div", {
|
|
229
265
|
className: "header-container",
|
|
@@ -241,11 +277,11 @@ var c = {
|
|
|
241
277
|
children: r
|
|
242
278
|
})]
|
|
243
279
|
})
|
|
244
|
-
}),
|
|
280
|
+
}), b = ({ onNavigate: e }) => /* @__PURE__ */ o(y, {
|
|
245
281
|
onNavigate: e,
|
|
246
282
|
title: "Simone Gentili - senior web developer, tech author and chess enthusiast",
|
|
247
283
|
homePageKey: "home"
|
|
248
|
-
}),
|
|
284
|
+
}), x = ({ isLoggedIn: e, handleLogin: t, handleLogout: n }) => /* @__PURE__ */ o(a, { children: e ? /* @__PURE__ */ o("button", {
|
|
249
285
|
onClick: n,
|
|
250
286
|
style: {
|
|
251
287
|
fontSize: "0.9rem",
|
|
@@ -259,14 +295,14 @@ var c = {
|
|
|
259
295
|
padding: "0.4rem 1rem"
|
|
260
296
|
},
|
|
261
297
|
children: "Login"
|
|
262
|
-
}) }),
|
|
263
|
-
let [h, g] = i(!1), [
|
|
298
|
+
}) }), S = 220, C = ({ open: t, onClose: r, title: a, icon: c, children: l, buttons: d, footer: f, closeLabel: p = "Close", className: m }) => {
|
|
299
|
+
let [h, g] = i(!1), [_, v] = i({
|
|
264
300
|
x: 0,
|
|
265
301
|
y: 0
|
|
266
|
-
}),
|
|
302
|
+
}), y = e.useRef(null), [b, x] = i(!1), C = (e) => {
|
|
267
303
|
h || (g(!0), setTimeout(() => {
|
|
268
304
|
g(!1), e();
|
|
269
|
-
},
|
|
305
|
+
}, S));
|
|
270
306
|
};
|
|
271
307
|
n(() => {
|
|
272
308
|
if (!t) return;
|
|
@@ -276,28 +312,28 @@ var c = {
|
|
|
276
312
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
277
313
|
}, [t, r]);
|
|
278
314
|
let [w, T] = i(t);
|
|
279
|
-
if (t !== w && (T(t), t &&
|
|
315
|
+
if (t !== w && (T(t), t && v({
|
|
280
316
|
x: 0,
|
|
281
317
|
y: 0
|
|
282
318
|
})), !t) return null;
|
|
283
319
|
function E(e) {
|
|
284
|
-
e.target.closest(".modal-close") || (
|
|
320
|
+
e.target.closest(".modal-close") || (y.current = {
|
|
285
321
|
pointerX: e.clientX,
|
|
286
322
|
pointerY: e.clientY,
|
|
287
|
-
offsetX:
|
|
288
|
-
offsetY:
|
|
289
|
-
},
|
|
323
|
+
offsetX: _.x,
|
|
324
|
+
offsetY: _.y
|
|
325
|
+
}, x(!0), e.currentTarget.setPointerCapture(e.pointerId));
|
|
290
326
|
}
|
|
291
327
|
function D(e) {
|
|
292
|
-
if (!
|
|
293
|
-
let { pointerX: t, pointerY: n, offsetX: r, offsetY: i } =
|
|
294
|
-
|
|
328
|
+
if (!y.current) return;
|
|
329
|
+
let { pointerX: t, pointerY: n, offsetX: r, offsetY: i } = y.current;
|
|
330
|
+
v({
|
|
295
331
|
x: r + (e.clientX - t),
|
|
296
332
|
y: i + (e.clientY - n)
|
|
297
333
|
});
|
|
298
334
|
}
|
|
299
335
|
function O() {
|
|
300
|
-
|
|
336
|
+
y.current = null, x(!1);
|
|
301
337
|
}
|
|
302
338
|
return /* @__PURE__ */ o("div", {
|
|
303
339
|
className: `modal-overlay${h ? " modal-overlay-closing" : ""}`,
|
|
@@ -305,13 +341,13 @@ var c = {
|
|
|
305
341
|
children: /* @__PURE__ */ s("div", {
|
|
306
342
|
className: `modal-content${m ? ` ${m}` : ""}${h ? " modal-content-closing" : ""}`,
|
|
307
343
|
style: {
|
|
308
|
-
"--drag-x": `${
|
|
309
|
-
"--drag-y": `${
|
|
344
|
+
"--drag-x": `${_.x}px`,
|
|
345
|
+
"--drag-y": `${_.y}px`
|
|
310
346
|
},
|
|
311
347
|
onClick: (e) => e.stopPropagation(),
|
|
312
348
|
children: [
|
|
313
349
|
/* @__PURE__ */ s("div", {
|
|
314
|
-
className: `modal-header${
|
|
350
|
+
className: `modal-header${b ? " modal-header-dragging" : ""}`,
|
|
315
351
|
onPointerDown: E,
|
|
316
352
|
onPointerMove: D,
|
|
317
353
|
onPointerUp: O,
|
|
@@ -354,7 +390,7 @@ var c = {
|
|
|
354
390
|
]
|
|
355
391
|
})
|
|
356
392
|
});
|
|
357
|
-
},
|
|
393
|
+
}, w = ({ label: e, invalid: t, ...n }) => /* @__PURE__ */ s("div", {
|
|
358
394
|
className: "input-wrapper",
|
|
359
395
|
children: [e && /* @__PURE__ */ o("label", {
|
|
360
396
|
className: "input-label",
|
|
@@ -363,7 +399,7 @@ var c = {
|
|
|
363
399
|
className: `input-field${t ? " input-field--invalid" : ""}`,
|
|
364
400
|
...n
|
|
365
401
|
})]
|
|
366
|
-
}),
|
|
402
|
+
}), T = ({ label: e, ...t }) => /* @__PURE__ */ s("div", {
|
|
367
403
|
className: "input-wrapper",
|
|
368
404
|
children: [e && /* @__PURE__ */ o("label", {
|
|
369
405
|
className: "input-label",
|
|
@@ -373,9 +409,9 @@ var c = {
|
|
|
373
409
|
className: "input-field",
|
|
374
410
|
...t
|
|
375
411
|
})]
|
|
376
|
-
}),
|
|
412
|
+
}), E = ({ open: e, onClose: t, onLogin: n }) => {
|
|
377
413
|
let [r, a] = i(""), [c, l] = i("");
|
|
378
|
-
return /* @__PURE__ */ o(
|
|
414
|
+
return /* @__PURE__ */ o(C, {
|
|
379
415
|
open: e,
|
|
380
416
|
onClose: t,
|
|
381
417
|
title: "Login",
|
|
@@ -384,13 +420,13 @@ var c = {
|
|
|
384
420
|
e.preventDefault(), n(r, c);
|
|
385
421
|
},
|
|
386
422
|
children: [
|
|
387
|
-
/* @__PURE__ */ o(
|
|
423
|
+
/* @__PURE__ */ o(w, {
|
|
388
424
|
label: "Username",
|
|
389
425
|
value: r,
|
|
390
426
|
onChange: (e) => a(e.target.value),
|
|
391
427
|
autoFocus: !0
|
|
392
428
|
}),
|
|
393
|
-
/* @__PURE__ */ o(
|
|
429
|
+
/* @__PURE__ */ o(T, {
|
|
394
430
|
label: "Password",
|
|
395
431
|
value: c,
|
|
396
432
|
onChange: (e) => l(e.target.value)
|
|
@@ -403,57 +439,57 @@ var c = {
|
|
|
403
439
|
]
|
|
404
440
|
})
|
|
405
441
|
});
|
|
406
|
-
},
|
|
442
|
+
}, D = "simonegentili.com-access-token", O = (e) => document.cookie.split("; ").some((t) => t.startsWith(`${e}=`) && t.slice(e.length + 1).length > 0), k = (e) => {
|
|
407
443
|
let t = document.cookie.split("; ").find((t) => t.startsWith(`${e}=`));
|
|
408
444
|
return t ? t.slice(e.length + 1) : null;
|
|
409
|
-
},
|
|
445
|
+
}, A = (e, t) => {
|
|
410
446
|
try {
|
|
411
447
|
return JSON.parse(atob(e.split(".")[1].replace(/-/g, "+").replace(/_/g, "/")))[t] ?? null;
|
|
412
448
|
} catch {
|
|
413
449
|
return null;
|
|
414
450
|
}
|
|
415
|
-
},
|
|
416
|
-
let [
|
|
417
|
-
r(
|
|
418
|
-
let
|
|
451
|
+
}, j = t(({ title: e = "Quadrato", homePageKey: t = "home", onNavigate: c, cookieName: l = D, username: u = null, usernameJwtField: d = "sub", onLogin: f, onLogout: p, onUserAuthenticated: m }, h) => {
|
|
452
|
+
let [g, _] = i(() => O(l)), [v, b] = i(!1);
|
|
453
|
+
r(h, () => ({ openLoginModal: () => b(!0) }));
|
|
454
|
+
let S = u ?? (g ? A(k(l) ?? "", d) : null);
|
|
419
455
|
return n(() => {
|
|
420
|
-
|
|
421
|
-
}, []), /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(
|
|
456
|
+
m?.(g, g ? S : null);
|
|
457
|
+
}, []), /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(y, {
|
|
422
458
|
onNavigate: c,
|
|
423
459
|
title: e,
|
|
424
460
|
homePageKey: t,
|
|
425
461
|
className: "quadrato-header",
|
|
426
462
|
children: /* @__PURE__ */ s("div", {
|
|
427
463
|
className: "quadrato-header-auth",
|
|
428
|
-
children: [
|
|
464
|
+
children: [g && S && /* @__PURE__ */ o("span", {
|
|
429
465
|
className: "quadrato-header-username",
|
|
430
|
-
children:
|
|
431
|
-
}), /* @__PURE__ */ o(
|
|
432
|
-
isLoggedIn:
|
|
433
|
-
handleLogin: () =>
|
|
466
|
+
children: S
|
|
467
|
+
}), /* @__PURE__ */ o(x, {
|
|
468
|
+
isLoggedIn: g,
|
|
469
|
+
handleLogin: () => b(!0),
|
|
434
470
|
handleLogout: () => {
|
|
435
471
|
p?.();
|
|
436
|
-
let e =
|
|
437
|
-
|
|
472
|
+
let e = O(l);
|
|
473
|
+
_(e), m?.(e, null);
|
|
438
474
|
}
|
|
439
475
|
})]
|
|
440
476
|
})
|
|
441
|
-
}), /* @__PURE__ */ o(
|
|
442
|
-
open:
|
|
443
|
-
onClose: () =>
|
|
477
|
+
}), /* @__PURE__ */ o(E, {
|
|
478
|
+
open: v,
|
|
479
|
+
onClose: () => b(!1),
|
|
444
480
|
onLogin: async (e, t) => {
|
|
445
481
|
await f(e, t);
|
|
446
|
-
let n =
|
|
447
|
-
|
|
482
|
+
let n = O(l);
|
|
483
|
+
_(n), b(!1), m?.(n, n ? u ?? e : null);
|
|
448
484
|
}
|
|
449
485
|
})] });
|
|
450
486
|
});
|
|
451
|
-
|
|
487
|
+
j.displayName = "QuadratoHeader";
|
|
452
488
|
//#endregion
|
|
453
489
|
//#region src/components/SetPasswordModal/SetPasswordModal.tsx
|
|
454
|
-
var
|
|
490
|
+
var M = ({ open: e, onClose: t, onSubmit: n }) => {
|
|
455
491
|
let [r, a] = i(""), [c, l] = i(""), [d, f] = i("");
|
|
456
|
-
return /* @__PURE__ */ o(
|
|
492
|
+
return /* @__PURE__ */ o(C, {
|
|
457
493
|
open: e,
|
|
458
494
|
onClose: t,
|
|
459
495
|
title: "Imposta una nuova password",
|
|
@@ -471,13 +507,13 @@ var D = ({ open: e, onClose: t, onSubmit: n }) => {
|
|
|
471
507
|
f(""), n(r);
|
|
472
508
|
},
|
|
473
509
|
children: [
|
|
474
|
-
/* @__PURE__ */ o(
|
|
510
|
+
/* @__PURE__ */ o(T, {
|
|
475
511
|
label: "Nuova password",
|
|
476
512
|
value: r,
|
|
477
513
|
onChange: (e) => a(e.target.value),
|
|
478
514
|
autoFocus: !0
|
|
479
515
|
}),
|
|
480
|
-
/* @__PURE__ */ o(
|
|
516
|
+
/* @__PURE__ */ o(T, {
|
|
481
517
|
label: "Conferma password",
|
|
482
518
|
value: c,
|
|
483
519
|
onChange: (e) => l(e.target.value)
|
|
@@ -496,4 +532,4 @@ var D = ({ open: e, onClose: t, onSubmit: n }) => {
|
|
|
496
532
|
});
|
|
497
533
|
};
|
|
498
534
|
//#endregion
|
|
499
|
-
export {
|
|
535
|
+
export { x as Authenticator, u as Button, g as CookieConsent, d as Footer, y as Header, l as Icon, C as Modal, j as QuadratoHeader, v as SGFooter, b as SGHeader, M as SetPasswordModal };
|
package/dist/sg-components.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.custom-button{border-radius:var(--button-radius);background:var(--button-bg);color:var(--button-color);cursor:pointer;font-size:var(--primary-font);font-weight:600;font-family:var(--font-family);box-shadow:var(--button-shadow);transition:background .15s var(--button-ease-standard), transform var(--button-ease-bounce) .2s;border:none;padding:8px 20px}.custom-button:hover:not(:disabled){background:var(--button-bg-hover);transform:translateY(-1px)}.custom-button:active:not(:disabled){transform:scale(.97)}.custom-button:disabled{opacity:.6;cursor:default}.custom-button-with-icon{align-items:center;gap:8px;display:inline-flex}.custom-button-label-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sg-icon{vertical-align:middle;flex-shrink:0;display:inline-block}.footer{background-color:var(--primary-bg);border-top:1px solid var(--primary-border);font-family:var(--font-family);color:#555;justify-content:space-between;align-items:center;width:100%;padding:16px 32px;font-size:14px;display:flex;position:fixed;bottom:0;left:0}.footer a{color:#1ea7fd;text-decoration:none}.footer a:hover{text-decoration:underline}.logo-text{font-size:var(--font-size-h1);font-family:var(--font-family);margin:0;font-weight:400}.header{z-index:100;width:100%;font-size:var(--font-size);background-color:#fff;border-bottom:1px solid #e1e5e9;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.header-container{justify-content:flex-start;align-items:center;max-width:1200px;margin:0 auto;padding:16px;display:flex}.header-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.logo{cursor:pointer;color:#333;font-size:24px;font-weight:700;transition:color .2s}.logo:hover{color:#007acc}.logo-full{display:inline}.logo-short{display:none}@media (width<=768px){.header-container{padding:12px 16px}.logo{font-size:var(--font-size)}.logo-full{display:none}.logo-short{display:inline}}@media (width<=480px){.header-container{padding:8px 12px}.logo{font-size:var(--font-size)}}.modal-overlay{background:var(--modal-overlay);z-index:1000;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.25s ease-out sg-modal-overlay-fade-in;display:flex;position:fixed;top:0;left:0}.modal-overlay.modal-overlay-closing{animation:.22s ease-in forwards sg-modal-overlay-fade-out}.modal-content{--drag-x:0px;--drag-y:0px;background:var(--modal-bg);border-radius:var(--primary-radius);font-size:var(--primary-font);min-width:320px;max-width:calc(100vw - 40px);max-height:90vh;transform:translate(var(--drag-x), var(--drag-y));flex-direction:column;animation:.3s ease-out sg-modal-slide-in;display:flex;overflow:hidden;box-shadow:0 2px 16px #00000026}.modal-content.modal-content-closing{animation:.22s ease-in forwards sg-modal-slide-out}@keyframes sg-modal-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sg-modal-overlay-fade-out{0%{opacity:1}to{opacity:0}}@keyframes sg-modal-slide-in{0%{transform:translate(var(--drag-x), calc(var(--drag-y) - 24px)) scale(.97);opacity:0}to{transform:translate(var(--drag-x), var(--drag-y)) scale(1);opacity:1}}@keyframes sg-modal-slide-out{0%{transform:translate(var(--drag-x), var(--drag-y)) scale(1);opacity:1}to{transform:translate(var(--drag-x), calc(var(--drag-y) - 24px)) scale(.97);opacity:0}}.modal-header{background:var(--primary-bg);border-top-left-radius:var(--primary-radius);border-top-right-radius:var(--primary-radius);cursor:grab;touch-action:none;flex:none;align-items:center;gap:8px;padding:16px;display:flex}.modal-header-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.modal-icon{color:var(--modal-title-color);display:inline-flex}.modal-title{color:var(--modal-title-color);font-family:var(--font-family);font-size:var(--primary-font);flex:1;margin:0}.modal-close{cursor:pointer;color:var(--modal-title-color);background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1}.modal-close:disabled{cursor:default;opacity:.6}.modal-children{font-family:var(--font-family);padding:16px;overflow-y:auto}.modal-footer{border-top:1px solid var(--primary-border);flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.input-label{font-weight:500;font-family:var(--font-family);font-size:var(--primary-font);margin-bottom:4px;display:block}.input-field--invalid{background-color:#ffe5e5;border-color:#c00}.input-wrapper{margin-bottom:16px}.input-label{font-weight:500;font-size:var(--primary-font);margin-bottom:4px;display:block}.input-field{border-radius:var(--radius);width:calc(100% - 16px);font-size:var(--primary-font);border-style:solid;border-width:1px;padding:8px}.login-modal-form{font-family:var(--font-family);font-size:var(--primary-font);flex-direction:column;gap:16px;display:flex}.header.quadrato-header{z-index:999}.quadrato-header-auth{align-items:center;gap:12px;display:flex}.quadrato-header-username{font-size:var(--font-size);color:#333}:root{--unit:3px;--primary-bg:#f5f5f5;--primary-border:#ccc;--radius:calc(var(--unit) * 2);--primary-radius:var(--radius);--primary-font:var(--font-size);--primary-hover-bg:#e0e0e0;--modal-bg:#fff;--modal-overlay:#0000004d;--modal-title-color:#222;--input-bg:#fff;--input-border:#ccc;--input-radius:var(--radius);--input-font:1rem;--font-size:14px;--font-family:Arial, sans-serif;--font-size-h1:calc(var(--font-size) * 1.5);--button-bg:#6f9cf7;--button-bg-hover:#5480e6;--button-color:#fff;--button-radius:999px;--button-shadow:0 1px 2px #5480e61f, 0 1px 3px #5480e61a;--button-ease-standard:cubic-bezier(.4, 0, .2, 1);--button-ease-bounce:cubic-bezier(.34, 1.56, .64, 1)}.theme-dark{--primary-bg:#222;--primary-border:#444;--primary-font:1rem;--font-family:"Inter", Arial, sans-serif;--primary-hover-bg:#333;--modal-bg:#222;--modal-title-color:#fff;--input-bg:#333;--input-border:#555;--input-font:1rem;--button-bg:#6f9cf7;--button-bg-hover:#86aefc;--button-color:#fff}form{font-family:var(--font-family)}.set-password-modal-form{font-family:var(--font-family);font-size:var(--primary-font);flex-direction:column;gap:16px;display:flex}.set-password-modal-error{color:#d32f2f;font-size:var(--primary-font);margin:0}
|
|
1
|
+
.custom-button{border-radius:var(--button-radius);background:var(--button-bg);color:var(--button-color);cursor:pointer;font-size:var(--primary-font);font-weight:600;font-family:var(--font-family);box-shadow:var(--button-shadow);transition:background .15s var(--button-ease-standard), transform var(--button-ease-bounce) .2s;border:none;padding:8px 20px}.custom-button:hover:not(:disabled){background:var(--button-bg-hover);transform:translateY(-1px)}.custom-button:active:not(:disabled){transform:scale(.97)}.custom-button:disabled{opacity:.6;cursor:default}.custom-button-with-icon{align-items:center;gap:8px;display:inline-flex}.custom-button-label-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sg-icon{vertical-align:middle;flex-shrink:0;display:inline-block}.footer{background-color:var(--primary-bg);border-top:1px solid var(--primary-border);font-family:var(--font-family);color:#555;justify-content:space-between;align-items:center;width:100%;padding:16px 32px;font-size:14px;display:flex;position:fixed;bottom:0;left:0}.footer a{color:#1ea7fd;text-decoration:none}.footer a:hover{text-decoration:underline}.cookie-consent{background-color:var(--primary-bg);border-top:1px solid var(--primary-border);font-family:var(--font-family);color:#555;z-index:1000;box-sizing:border-box;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;width:100%;padding:16px 32px;font-size:14px;display:flex;position:fixed;bottom:0;left:0}.cookie-consent-text{flex:320px;margin:0}.cookie-consent a{color:#1ea7fd;text-decoration:none}.cookie-consent a:hover{text-decoration:underline}.cookie-consent-accept{flex:none}.logo-text{font-size:var(--font-size-h1);font-family:var(--font-family);margin:0;font-weight:400}.header{z-index:100;width:100%;font-size:var(--font-size);background-color:#fff;border-bottom:1px solid #e1e5e9;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.header-container{justify-content:flex-start;align-items:center;max-width:1200px;margin:0 auto;padding:16px;display:flex}.header-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.logo{cursor:pointer;color:#333;font-size:24px;font-weight:700;transition:color .2s}.logo:hover{color:#007acc}.logo-full{display:inline}.logo-short{display:none}@media (width<=768px){.header-container{padding:12px 16px}.logo{font-size:var(--font-size)}.logo-full{display:none}.logo-short{display:inline}}@media (width<=480px){.header-container{padding:8px 12px}.logo{font-size:var(--font-size)}}.modal-overlay{background:var(--modal-overlay);z-index:1000;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.25s ease-out sg-modal-overlay-fade-in;display:flex;position:fixed;top:0;left:0}.modal-overlay.modal-overlay-closing{animation:.22s ease-in forwards sg-modal-overlay-fade-out}.modal-content{--drag-x:0px;--drag-y:0px;background:var(--modal-bg);border-radius:var(--primary-radius);font-size:var(--primary-font);min-width:320px;max-width:calc(100vw - 40px);max-height:90vh;transform:translate(var(--drag-x), var(--drag-y));flex-direction:column;animation:.3s ease-out sg-modal-slide-in;display:flex;overflow:hidden;box-shadow:0 2px 16px #00000026}.modal-content.modal-content-closing{animation:.22s ease-in forwards sg-modal-slide-out}@keyframes sg-modal-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sg-modal-overlay-fade-out{0%{opacity:1}to{opacity:0}}@keyframes sg-modal-slide-in{0%{transform:translate(var(--drag-x), calc(var(--drag-y) - 24px)) scale(.97);opacity:0}to{transform:translate(var(--drag-x), var(--drag-y)) scale(1);opacity:1}}@keyframes sg-modal-slide-out{0%{transform:translate(var(--drag-x), var(--drag-y)) scale(1);opacity:1}to{transform:translate(var(--drag-x), calc(var(--drag-y) - 24px)) scale(.97);opacity:0}}.modal-header{background:var(--primary-bg);border-top-left-radius:var(--primary-radius);border-top-right-radius:var(--primary-radius);cursor:grab;touch-action:none;flex:none;align-items:center;gap:8px;padding:16px;display:flex}.modal-header-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.modal-icon{color:var(--modal-title-color);display:inline-flex}.modal-title{color:var(--modal-title-color);font-family:var(--font-family);font-size:var(--primary-font);flex:1;margin:0}.modal-close{cursor:pointer;color:var(--modal-title-color);background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1}.modal-close:disabled{cursor:default;opacity:.6}.modal-children{font-family:var(--font-family);padding:16px;overflow-y:auto}.modal-footer{border-top:1px solid var(--primary-border);flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.input-label{font-weight:500;font-family:var(--font-family);font-size:var(--primary-font);margin-bottom:4px;display:block}.input-field--invalid{background-color:#ffe5e5;border-color:#c00}.input-wrapper{margin-bottom:16px}.input-label{font-weight:500;font-size:var(--primary-font);margin-bottom:4px;display:block}.input-field{border-radius:var(--radius);width:calc(100% - 16px);font-size:var(--primary-font);border-style:solid;border-width:1px;padding:8px}.login-modal-form{font-family:var(--font-family);font-size:var(--primary-font);flex-direction:column;gap:16px;display:flex}.header.quadrato-header{z-index:999}.quadrato-header-auth{align-items:center;gap:12px;display:flex}.quadrato-header-username{font-size:var(--font-size);color:#333}:root{--unit:3px;--primary-bg:#f5f5f5;--primary-border:#ccc;--radius:calc(var(--unit) * 2);--primary-radius:var(--radius);--primary-font:var(--font-size);--primary-hover-bg:#e0e0e0;--modal-bg:#fff;--modal-overlay:#0000004d;--modal-title-color:#222;--input-bg:#fff;--input-border:#ccc;--input-radius:var(--radius);--input-font:1rem;--font-size:14px;--font-family:Arial, sans-serif;--font-size-h1:calc(var(--font-size) * 1.5);--button-bg:#6f9cf7;--button-bg-hover:#5480e6;--button-color:#fff;--button-radius:999px;--button-shadow:0 1px 2px #5480e61f, 0 1px 3px #5480e61a;--button-ease-standard:cubic-bezier(.4, 0, .2, 1);--button-ease-bounce:cubic-bezier(.34, 1.56, .64, 1)}.theme-dark{--primary-bg:#222;--primary-border:#444;--primary-font:1rem;--font-family:"Inter", Arial, sans-serif;--primary-hover-bg:#333;--modal-bg:#222;--modal-title-color:#fff;--input-bg:#333;--input-border:#555;--input-font:1rem;--button-bg:#6f9cf7;--button-bg-hover:#86aefc;--button-color:#fff}form{font-family:var(--font-family)}.set-password-modal-form{font-family:var(--font-family);font-size:var(--primary-font);flex-direction:column;gap:16px;display:flex}.set-password-modal-error{color:#d32f2f;font-size:var(--primary-font);margin:0}
|
|
2
2
|
/*$vite$:1*/
|