@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 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
- ], p = () => /* @__PURE__ */ o(d, {
258
+ ], v = () => /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(d, {
223
259
  href: "https://simonegentili.com",
224
260
  copyright: "© 2026 simonegentili.com",
225
- links: f
226
- }), m = ({ onNavigate: e, title: t = "Simone Gentili - senior web developer, tech author and chess enthusiast", homePageKey: n = "home", children: r, className: i }) => /* @__PURE__ */ o("header", {
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
- }), h = ({ onNavigate: e }) => /* @__PURE__ */ o(m, {
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
- }), g = ({ isLoggedIn: e, handleLogin: t, handleLogout: n }) => /* @__PURE__ */ o(a, { children: e ? /* @__PURE__ */ o("button", {
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
- }) }), _ = 220, v = ({ open: t, onClose: r, title: a, icon: c, children: l, buttons: d, footer: f, closeLabel: p = "Close", className: m }) => {
263
- let [h, g] = i(!1), [v, y] = i({
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
- }), b = e.useRef(null), [x, S] = i(!1), C = (e) => {
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 && y({
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") || (b.current = {
320
+ e.target.closest(".modal-close") || (y.current = {
285
321
  pointerX: e.clientX,
286
322
  pointerY: e.clientY,
287
- offsetX: v.x,
288
- offsetY: v.y
289
- }, S(!0), e.currentTarget.setPointerCapture(e.pointerId));
323
+ offsetX: _.x,
324
+ offsetY: _.y
325
+ }, x(!0), e.currentTarget.setPointerCapture(e.pointerId));
290
326
  }
291
327
  function D(e) {
292
- if (!b.current) return;
293
- let { pointerX: t, pointerY: n, offsetX: r, offsetY: i } = b.current;
294
- y({
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
- b.current = null, S(!1);
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": `${v.x}px`,
309
- "--drag-y": `${v.y}px`
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${x ? " modal-header-dragging" : ""}`,
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
- }, y = ({ label: e, invalid: t, ...n }) => /* @__PURE__ */ s("div", {
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
- }), b = ({ label: e, ...t }) => /* @__PURE__ */ s("div", {
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
- }), x = ({ open: e, onClose: t, onLogin: n }) => {
412
+ }), E = ({ open: e, onClose: t, onLogin: n }) => {
377
413
  let [r, a] = i(""), [c, l] = i("");
378
- return /* @__PURE__ */ o(v, {
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(y, {
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(b, {
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
- }, S = "simonegentili.com-access-token", C = (e) => document.cookie.split("; ").some((t) => t.startsWith(`${e}=`) && t.slice(e.length + 1).length > 0), w = (e) => {
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
- }, T = (e, t) => {
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
- }, E = t(({ title: e = "Quadrato", homePageKey: t = "home", onNavigate: c, cookieName: l = S, username: u = null, usernameJwtField: d = "sub", onLogin: f, onLogout: p, onUserAuthenticated: h }, _) => {
416
- let [v, y] = i(() => C(l)), [b, E] = i(!1);
417
- r(_, () => ({ openLoginModal: () => E(!0) }));
418
- let D = u ?? (v ? T(w(l) ?? "", d) : null);
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
- h?.(v, v ? D : null);
421
- }, []), /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(m, {
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: [v && D && /* @__PURE__ */ o("span", {
464
+ children: [g && S && /* @__PURE__ */ o("span", {
429
465
  className: "quadrato-header-username",
430
- children: D
431
- }), /* @__PURE__ */ o(g, {
432
- isLoggedIn: v,
433
- handleLogin: () => E(!0),
466
+ children: S
467
+ }), /* @__PURE__ */ o(x, {
468
+ isLoggedIn: g,
469
+ handleLogin: () => b(!0),
434
470
  handleLogout: () => {
435
471
  p?.();
436
- let e = C(l);
437
- y(e), h?.(e, null);
472
+ let e = O(l);
473
+ _(e), m?.(e, null);
438
474
  }
439
475
  })]
440
476
  })
441
- }), /* @__PURE__ */ o(x, {
442
- open: b,
443
- onClose: () => E(!1),
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 = C(l);
447
- y(n), E(!1), h?.(n, n ? u ?? e : null);
482
+ let n = O(l);
483
+ _(n), b(!1), m?.(n, n ? u ?? e : null);
448
484
  }
449
485
  })] });
450
486
  });
451
- E.displayName = "QuadratoHeader";
487
+ j.displayName = "QuadratoHeader";
452
488
  //#endregion
453
489
  //#region src/components/SetPasswordModal/SetPasswordModal.tsx
454
- var D = ({ open: e, onClose: t, onSubmit: n }) => {
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(v, {
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(b, {
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(b, {
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 { g as Authenticator, u as Button, d as Footer, m as Header, l as Icon, v as Modal, E as QuadratoHeader, p as SGFooter, h as SGHeader, D as SetPasswordModal };
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 };
@@ -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*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sensorario/sg-components",
3
- "version": "0.0.89",
3
+ "version": "0.0.90",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "scripts": {