@sensorario/sg-components 0.0.87 → 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
@@ -64,6 +64,17 @@ var c = {
64
64
  })
65
65
  ] }),
66
66
  check: /* @__PURE__ */ o("polyline", { points: "4 12 9 17 20 6" }),
67
+ x: /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o("line", {
68
+ x1: "6",
69
+ y1: "6",
70
+ x2: "18",
71
+ y2: "18"
72
+ }), /* @__PURE__ */ o("line", {
73
+ x1: "18",
74
+ y1: "6",
75
+ x2: "6",
76
+ y2: "18"
77
+ })] }),
67
78
  "file-plus": /* @__PURE__ */ s(a, { children: [
68
79
  /* @__PURE__ */ o("path", { d: "M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z" }),
69
80
  /* @__PURE__ */ o("polyline", { points: "14 3 14 8 19 8" }),
@@ -148,7 +159,10 @@ var c = {
148
159
  width: "8",
149
160
  height: "16",
150
161
  rx: "1.5"
151
- })] })
162
+ })] }),
163
+ "tech-node": /* @__PURE__ */ o("polygon", { points: "12,3 19.8,7.5 19.8,16.5 12,21 4.2,16.5 4.2,7.5" }),
164
+ "tech-go": /* @__PURE__ */ o("polygon", { points: "12,3 21,12 12,21 3,12" }),
165
+ "tech-php": /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o("path", { d: "M9 4c-1.5 0-2.5 1-2.5 2.5v3c0 1-.5 1.5-1.5 2.5 1 1 1.5 1.5 1.5 2.5v3c0 1.5 1 2.5 2.5 2.5" }), /* @__PURE__ */ o("path", { d: "M15 4c1.5 0 2.5 1 2.5 2.5v3c0 1 .5 1.5 1.5 2.5-1 1-1.5 1.5-1.5 2.5v3c0 1.5-1 2.5-2.5 2.5" })] })
152
166
  }, l = ({ name: e, size: t = 18, ...n }) => /* @__PURE__ */ o("svg", {
153
167
  className: "sg-icon",
154
168
  width: t,
@@ -184,7 +198,43 @@ var c = {
184
198
  style: { marginLeft: "16px" },
185
199
  children: e
186
200
  }, t)) })]
187
- }), 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
+ }, _ = [
188
238
  {
189
239
  label: "guitar",
190
240
  href: "https://guitar.simonegentili.com"
@@ -205,11 +255,11 @@ var c = {
205
255
  label: "code2image",
206
256
  href: "https://code2image.simonegentili.com"
207
257
  }
208
- ], p = () => /* @__PURE__ */ o(d, {
258
+ ], v = () => /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(d, {
209
259
  href: "https://simonegentili.com",
210
260
  copyright: "© 2026 simonegentili.com",
211
- links: f
212
- }), 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", {
213
263
  className: i ? `header ${i}` : "header",
214
264
  children: /* @__PURE__ */ s("div", {
215
265
  className: "header-container",
@@ -227,11 +277,11 @@ var c = {
227
277
  children: r
228
278
  })]
229
279
  })
230
- }), h = ({ onNavigate: e }) => /* @__PURE__ */ o(m, {
280
+ }), b = ({ onNavigate: e }) => /* @__PURE__ */ o(y, {
231
281
  onNavigate: e,
232
282
  title: "Simone Gentili - senior web developer, tech author and chess enthusiast",
233
283
  homePageKey: "home"
234
- }), 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", {
235
285
  onClick: n,
236
286
  style: {
237
287
  fontSize: "0.9rem",
@@ -245,14 +295,14 @@ var c = {
245
295
  padding: "0.4rem 1rem"
246
296
  },
247
297
  children: "Login"
248
- }) }), _ = 220, v = ({ open: t, onClose: r, title: a, icon: c, children: l, buttons: d, footer: f, closeLabel: p = "Close", className: m }) => {
249
- 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({
250
300
  x: 0,
251
301
  y: 0
252
- }), b = e.useRef(null), [x, S] = i(!1), C = (e) => {
302
+ }), y = e.useRef(null), [b, x] = i(!1), C = (e) => {
253
303
  h || (g(!0), setTimeout(() => {
254
304
  g(!1), e();
255
- }, _));
305
+ }, S));
256
306
  };
257
307
  n(() => {
258
308
  if (!t) return;
@@ -262,28 +312,28 @@ var c = {
262
312
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
263
313
  }, [t, r]);
264
314
  let [w, T] = i(t);
265
- if (t !== w && (T(t), t && y({
315
+ if (t !== w && (T(t), t && v({
266
316
  x: 0,
267
317
  y: 0
268
318
  })), !t) return null;
269
319
  function E(e) {
270
- e.target.closest(".modal-close") || (b.current = {
320
+ e.target.closest(".modal-close") || (y.current = {
271
321
  pointerX: e.clientX,
272
322
  pointerY: e.clientY,
273
- offsetX: v.x,
274
- offsetY: v.y
275
- }, S(!0), e.currentTarget.setPointerCapture(e.pointerId));
323
+ offsetX: _.x,
324
+ offsetY: _.y
325
+ }, x(!0), e.currentTarget.setPointerCapture(e.pointerId));
276
326
  }
277
327
  function D(e) {
278
- if (!b.current) return;
279
- let { pointerX: t, pointerY: n, offsetX: r, offsetY: i } = b.current;
280
- y({
328
+ if (!y.current) return;
329
+ let { pointerX: t, pointerY: n, offsetX: r, offsetY: i } = y.current;
330
+ v({
281
331
  x: r + (e.clientX - t),
282
332
  y: i + (e.clientY - n)
283
333
  });
284
334
  }
285
335
  function O() {
286
- b.current = null, S(!1);
336
+ y.current = null, x(!1);
287
337
  }
288
338
  return /* @__PURE__ */ o("div", {
289
339
  className: `modal-overlay${h ? " modal-overlay-closing" : ""}`,
@@ -291,13 +341,13 @@ var c = {
291
341
  children: /* @__PURE__ */ s("div", {
292
342
  className: `modal-content${m ? ` ${m}` : ""}${h ? " modal-content-closing" : ""}`,
293
343
  style: {
294
- "--drag-x": `${v.x}px`,
295
- "--drag-y": `${v.y}px`
344
+ "--drag-x": `${_.x}px`,
345
+ "--drag-y": `${_.y}px`
296
346
  },
297
347
  onClick: (e) => e.stopPropagation(),
298
348
  children: [
299
349
  /* @__PURE__ */ s("div", {
300
- className: `modal-header${x ? " modal-header-dragging" : ""}`,
350
+ className: `modal-header${b ? " modal-header-dragging" : ""}`,
301
351
  onPointerDown: E,
302
352
  onPointerMove: D,
303
353
  onPointerUp: O,
@@ -340,7 +390,7 @@ var c = {
340
390
  ]
341
391
  })
342
392
  });
343
- }, y = ({ label: e, invalid: t, ...n }) => /* @__PURE__ */ s("div", {
393
+ }, w = ({ label: e, invalid: t, ...n }) => /* @__PURE__ */ s("div", {
344
394
  className: "input-wrapper",
345
395
  children: [e && /* @__PURE__ */ o("label", {
346
396
  className: "input-label",
@@ -349,7 +399,7 @@ var c = {
349
399
  className: `input-field${t ? " input-field--invalid" : ""}`,
350
400
  ...n
351
401
  })]
352
- }), b = ({ label: e, ...t }) => /* @__PURE__ */ s("div", {
402
+ }), T = ({ label: e, ...t }) => /* @__PURE__ */ s("div", {
353
403
  className: "input-wrapper",
354
404
  children: [e && /* @__PURE__ */ o("label", {
355
405
  className: "input-label",
@@ -359,9 +409,9 @@ var c = {
359
409
  className: "input-field",
360
410
  ...t
361
411
  })]
362
- }), x = ({ open: e, onClose: t, onLogin: n }) => {
412
+ }), E = ({ open: e, onClose: t, onLogin: n }) => {
363
413
  let [r, a] = i(""), [c, l] = i("");
364
- return /* @__PURE__ */ o(v, {
414
+ return /* @__PURE__ */ o(C, {
365
415
  open: e,
366
416
  onClose: t,
367
417
  title: "Login",
@@ -370,13 +420,13 @@ var c = {
370
420
  e.preventDefault(), n(r, c);
371
421
  },
372
422
  children: [
373
- /* @__PURE__ */ o(y, {
423
+ /* @__PURE__ */ o(w, {
374
424
  label: "Username",
375
425
  value: r,
376
426
  onChange: (e) => a(e.target.value),
377
427
  autoFocus: !0
378
428
  }),
379
- /* @__PURE__ */ o(b, {
429
+ /* @__PURE__ */ o(T, {
380
430
  label: "Password",
381
431
  value: c,
382
432
  onChange: (e) => l(e.target.value)
@@ -389,57 +439,57 @@ var c = {
389
439
  ]
390
440
  })
391
441
  });
392
- }, 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) => {
393
443
  let t = document.cookie.split("; ").find((t) => t.startsWith(`${e}=`));
394
444
  return t ? t.slice(e.length + 1) : null;
395
- }, T = (e, t) => {
445
+ }, A = (e, t) => {
396
446
  try {
397
447
  return JSON.parse(atob(e.split(".")[1].replace(/-/g, "+").replace(/_/g, "/")))[t] ?? null;
398
448
  } catch {
399
449
  return null;
400
450
  }
401
- }, 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 }, _) => {
402
- let [v, y] = i(() => C(l)), [b, E] = i(!1);
403
- r(_, () => ({ openLoginModal: () => E(!0) }));
404
- 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);
405
455
  return n(() => {
406
- h?.(v, v ? D : null);
407
- }, []), /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(m, {
456
+ m?.(g, g ? S : null);
457
+ }, []), /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(y, {
408
458
  onNavigate: c,
409
459
  title: e,
410
460
  homePageKey: t,
411
461
  className: "quadrato-header",
412
462
  children: /* @__PURE__ */ s("div", {
413
463
  className: "quadrato-header-auth",
414
- children: [v && D && /* @__PURE__ */ o("span", {
464
+ children: [g && S && /* @__PURE__ */ o("span", {
415
465
  className: "quadrato-header-username",
416
- children: D
417
- }), /* @__PURE__ */ o(g, {
418
- isLoggedIn: v,
419
- handleLogin: () => E(!0),
466
+ children: S
467
+ }), /* @__PURE__ */ o(x, {
468
+ isLoggedIn: g,
469
+ handleLogin: () => b(!0),
420
470
  handleLogout: () => {
421
471
  p?.();
422
- let e = C(l);
423
- y(e), h?.(e, null);
472
+ let e = O(l);
473
+ _(e), m?.(e, null);
424
474
  }
425
475
  })]
426
476
  })
427
- }), /* @__PURE__ */ o(x, {
428
- open: b,
429
- onClose: () => E(!1),
477
+ }), /* @__PURE__ */ o(E, {
478
+ open: v,
479
+ onClose: () => b(!1),
430
480
  onLogin: async (e, t) => {
431
481
  await f(e, t);
432
- let n = C(l);
433
- 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);
434
484
  }
435
485
  })] });
436
486
  });
437
- E.displayName = "QuadratoHeader";
487
+ j.displayName = "QuadratoHeader";
438
488
  //#endregion
439
489
  //#region src/components/SetPasswordModal/SetPasswordModal.tsx
440
- var D = ({ open: e, onClose: t, onSubmit: n }) => {
490
+ var M = ({ open: e, onClose: t, onSubmit: n }) => {
441
491
  let [r, a] = i(""), [c, l] = i(""), [d, f] = i("");
442
- return /* @__PURE__ */ o(v, {
492
+ return /* @__PURE__ */ o(C, {
443
493
  open: e,
444
494
  onClose: t,
445
495
  title: "Imposta una nuova password",
@@ -457,13 +507,13 @@ var D = ({ open: e, onClose: t, onSubmit: n }) => {
457
507
  f(""), n(r);
458
508
  },
459
509
  children: [
460
- /* @__PURE__ */ o(b, {
510
+ /* @__PURE__ */ o(T, {
461
511
  label: "Nuova password",
462
512
  value: r,
463
513
  onChange: (e) => a(e.target.value),
464
514
  autoFocus: !0
465
515
  }),
466
- /* @__PURE__ */ o(b, {
516
+ /* @__PURE__ */ o(T, {
467
517
  label: "Conferma password",
468
518
  value: c,
469
519
  onChange: (e) => l(e.target.value)
@@ -482,4 +532,4 @@ var D = ({ open: e, onClose: t, onSubmit: n }) => {
482
532
  });
483
533
  };
484
534
  //#endregion
485
- 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(--primary-radius);border:1px solid var(--primary-border);background:var(--primary-bg);cursor:pointer;font-size:var(--primary-font);font-family:var(--font-family);padding:8px 16px;transition:background .2s}.custom-button:hover{background:var(--primary-hover-bg)}.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)}.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}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,12 +1,11 @@
1
1
  {
2
2
  "name": "@sensorario/sg-components",
3
- "version": "0.0.87",
3
+ "version": "0.0.90",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "scripts": {
7
7
  "dev": "vite",
8
- "prebuild": "npm version patch --no-git-tag-version",
9
- "build": "tsc -b && vite build",
8
+ "build": "npm version patch --no-git-tag-version && tsc -b && vite build",
10
9
  "lint": "eslint .",
11
10
  "preview": "vite preview",
12
11
  "storybook": "storybook dev -p 6006",