suus-component-library 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/components/form/button/Button.d.ts +1 -1
  2. package/dist/components/form/button/Button.d.ts.map +1 -1
  3. package/dist/components/form/chip/Chip.d.ts +11 -3
  4. package/dist/components/form/chip/Chip.d.ts.map +1 -1
  5. package/dist/components/form/password/Password.d.ts +1 -3
  6. package/dist/components/form/password/Password.d.ts.map +1 -1
  7. package/dist/components/form/postal-code/PostalCode.d.ts.map +1 -1
  8. package/dist/components/form/radiobutton/RadioButton.d.ts.map +1 -1
  9. package/dist/components/form/switch/Switch.d.ts +0 -16
  10. package/dist/components/form/switch/Switch.d.ts.map +1 -1
  11. package/dist/suus-component-library.css +1 -1
  12. package/dist/suus-component-library.js +176 -146
  13. package/dist/suus-component-library.umd.cjs +1 -1
  14. package/package.json +3 -2
  15. package/dist/components/form/button/Button.stories.d.ts +0 -33
  16. package/dist/components/form/button/Button.stories.d.ts.map +0 -1
  17. package/dist/components/form/checkbox/Checkbox.stories.d.ts +0 -25
  18. package/dist/components/form/checkbox/Checkbox.stories.d.ts.map +0 -1
  19. package/dist/components/form/chip/Chip.stories.d.ts +0 -37
  20. package/dist/components/form/chip/Chip.stories.d.ts.map +0 -1
  21. package/dist/components/form/date-picker/DatePicker.stories.d.ts +0 -389
  22. package/dist/components/form/date-picker/DatePicker.stories.d.ts.map +0 -1
  23. package/dist/components/form/dropdown/Dropdown.stories.d.ts +0 -370
  24. package/dist/components/form/dropdown/Dropdown.stories.d.ts.map +0 -1
  25. package/dist/components/form/link/Link.stories.d.ts +0 -56
  26. package/dist/components/form/link/Link.stories.d.ts.map +0 -1
  27. package/dist/components/form/password/Password.stories.d.ts +0 -73
  28. package/dist/components/form/password/Password.stories.d.ts.map +0 -1
  29. package/dist/components/form/postal-code/PostalCode.stories.d.ts +0 -384
  30. package/dist/components/form/postal-code/PostalCode.stories.d.ts.map +0 -1
  31. package/dist/components/form/radiobutton/RadioButton.stories.d.ts +0 -74
  32. package/dist/components/form/radiobutton/RadioButton.stories.d.ts.map +0 -1
  33. package/dist/components/form/switch/Switch.stories.d.ts +0 -62
  34. package/dist/components/form/switch/Switch.stories.d.ts.map +0 -1
  35. package/dist/components/form/textfield/TextField.stories.d.ts +0 -59
  36. package/dist/components/form/textfield/TextField.stories.d.ts.map +0 -1
  37. package/dist/components/form/upload/Upload.stories.d.ts +0 -389
  38. package/dist/components/form/upload/Upload.stories.d.ts.map +0 -1
@@ -1,19 +1,19 @@
1
1
  import { Fragment as e, jsx as t, jsxs as n } from "react/jsx-runtime";
2
2
  import { useEffect as r, useId as i, useMemo as a, useRef as o, useState as s } from "react";
3
3
  var c = {
4
- suusButton: "_suusButton_1q9to_1",
5
- icon: "_icon_1q9to_45",
6
- label: "_label_1q9to_62",
7
- primary: "_primary_1q9to_69",
8
- secondary: "_secondary_1q9to_113",
9
- loading: "_loading_1q9to_169",
10
- loader: "_loader_1q9to_173",
11
- "btn-spin": "_btn-spin_1q9to_1",
12
- loaderSecondary: "_loaderSecondary_1q9to_182"
4
+ suusButton: "_suusButton_1ucmz_1",
5
+ icon: "_icon_1ucmz_45",
6
+ label: "_label_1ucmz_62",
7
+ primary: "_primary_1ucmz_69",
8
+ secondary: "_secondary_1ucmz_113",
9
+ loading: "_loading_1ucmz_169",
10
+ loader: "_loader_1ucmz_173",
11
+ "btn-spin": "_btn-spin_1ucmz_1",
12
+ loaderSecondary: "_loaderSecondary_1ucmz_182"
13
13
  };
14
14
  //#endregion
15
15
  //#region src/components/form/button/Button.tsx
16
- function l({ label: r, onClick: i, type: a = "button", disabled: o = !1, loading: s = !1, variant: l = "primary", colorToken: u = "--colors-juice-sugarcane", icon: d, ...f }) {
16
+ function l({ label: r, onClick: i, type: a = "button", disabled: o = !1, loading: s = !1, variant: l = "primary", colorToken: u = "--color-juice-sugarcane", icon: d, ...f }) {
17
17
  return /* @__PURE__ */ t("button", {
18
18
  type: a,
19
19
  onClick: i,
@@ -39,16 +39,16 @@ function l({ label: r, onClick: i, type: a = "button", disabled: o = !1, loading
39
39
  });
40
40
  }
41
41
  var u = {
42
- checkboxWrapper: "_checkboxWrapper_137qc_1",
43
- checkboxInput: "_checkboxInput_137qc_15",
44
- checkboxLabel: "_checkboxLabel_137qc_24",
45
- customCheckbox: "_customCheckbox_137qc_34",
46
- checkIcon: "_checkIcon_137qc_57",
47
- checkboxText: "_checkboxText_137qc_76",
48
- checkboxWrapperDisabled: "_checkboxWrapperDisabled_137qc_107",
49
- checkboxWrapperError: "_checkboxWrapperError_137qc_133",
50
- errorMessage: "_errorMessage_137qc_147",
51
- checkboxWrapperGlassy: "_checkboxWrapperGlassy_137qc_157"
42
+ checkboxWrapper: "_checkboxWrapper_6w8h4_1",
43
+ checkboxInput: "_checkboxInput_6w8h4_15",
44
+ checkboxLabel: "_checkboxLabel_6w8h4_24",
45
+ customCheckbox: "_customCheckbox_6w8h4_34",
46
+ checkIcon: "_checkIcon_6w8h4_57",
47
+ checkboxText: "_checkboxText_6w8h4_76",
48
+ checkboxWrapperDisabled: "_checkboxWrapperDisabled_6w8h4_107",
49
+ checkboxWrapperError: "_checkboxWrapperError_6w8h4_133",
50
+ errorMessage: "_errorMessage_6w8h4_147",
51
+ checkboxWrapperGlassy: "_checkboxWrapperGlassy_6w8h4_154"
52
52
  };
53
53
  //#endregion
54
54
  //#region src/components/form/checkbox/Checkbox.tsx
@@ -100,19 +100,42 @@ function d({ label: e, name: r, id: i, error: a, variant: o = "default", classNa
100
100
  });
101
101
  }
102
102
  var f = {
103
- chip: "_chip_9t0x4_1",
104
- chipGlassy: "_chipGlassy_9t0x4_19"
103
+ chip: "_chip_1kgh7_1",
104
+ chipDefault: "_chipDefault_1kgh7_21",
105
+ chipGlassy: "_chipGlassy_1kgh7_36",
106
+ chipChecked: "_chipChecked_1kgh7_49",
107
+ chipDisabled: "_chipDisabled_1kgh7_56"
105
108
  };
106
109
  //#endregion
107
110
  //#region src/components/form/chip/Chip.tsx
108
- function p({ children: e, variant: n = "default", className: r, ...i }) {
109
- return /* @__PURE__ */ t("span", {
111
+ function p({ children: e, variant: n = "default", clickable: r = !0, checked: i, defaultChecked: a = !1, onCheckedChange: o, className: c, ...l }) {
112
+ let [u, d] = s(a), p = typeof i == "boolean", m = p ? i : u;
113
+ function h(e) {
114
+ if (!r) return;
115
+ let t = !m;
116
+ p || d(t), o?.(t), l.onClick?.(e);
117
+ }
118
+ let g = n === "glassy" ? f.chipGlassy : f.chipDefault, _ = m ? f.chipChecked : "", v = r ? "" : f.chipDisabled;
119
+ return r ? /* @__PURE__ */ t("button", {
120
+ type: "button",
121
+ "aria-pressed": m,
122
+ className: [
123
+ f.chip,
124
+ g,
125
+ _,
126
+ c ?? ""
127
+ ].filter(Boolean).join(" "),
128
+ onClick: h,
129
+ ...l,
130
+ children: e
131
+ }) : /* @__PURE__ */ t("span", {
110
132
  className: [
111
133
  f.chip,
112
- n === "glassy" ? f.chipGlassy : "",
113
- r ?? ""
134
+ g,
135
+ _,
136
+ v,
137
+ c ?? ""
114
138
  ].filter(Boolean).join(" "),
115
- ...i,
116
139
  children: e
117
140
  });
118
141
  }
@@ -217,13 +240,13 @@ function v() {
217
240
  });
218
241
  }
219
242
  var y = {
220
- inputBlockVertical: "_inputBlockVertical_1eq2l_1",
221
- inputLabel: "_inputLabel_1eq2l_7",
222
- inputLabelGlassy: "_inputLabelGlassy_1eq2l_13",
223
- inputSelectField: "_inputSelectField_1eq2l_17",
224
- inputSelectFieldGlassy: "_inputSelectFieldGlassy_1eq2l_27",
225
- inputError: "_inputError_1eq2l_40",
226
- errorMessage: "_errorMessage_1eq2l_44"
243
+ inputBlockVertical: "_inputBlockVertical_1yqyz_1",
244
+ inputLabel: "_inputLabel_1yqyz_7",
245
+ inputLabelGlassy: "_inputLabelGlassy_1yqyz_13",
246
+ inputSelectField: "_inputSelectField_1yqyz_17",
247
+ inputSelectFieldGlassy: "_inputSelectFieldGlassy_1yqyz_27",
248
+ inputError: "_inputError_1yqyz_40",
249
+ errorMessage: "_errorMessage_1yqyz_44"
227
250
  };
228
251
  //#endregion
229
252
  //#region src/components/form/dropdown/Dropdown.tsx
@@ -267,11 +290,12 @@ function b({ label: e, name: r, options: i, placeholder: a, error: o, variant: s
267
290
  });
268
291
  }
269
292
  var x = {
270
- appLink: "_appLink_18ja7_1",
271
- appLinkGlassy: "_appLinkGlassy_18ja7_27",
272
- label: "_label_18ja7_35",
273
- icon: "_icon_18ja7_40",
274
- arrowIcon: "_arrowIcon_18ja7_51"
293
+ appLink: "_appLink_b53rv_1",
294
+ appLinkDefault: "_appLinkDefault_b53rv_19",
295
+ appLinkGlassy: "_appLinkGlassy_b53rv_30",
296
+ label: "_label_b53rv_38",
297
+ icon: "_icon_b53rv_43",
298
+ arrowIcon: "_arrowIcon_b53rv_54"
275
299
  };
276
300
  //#endregion
277
301
  //#region src/components/form/link/Link.tsx
@@ -286,7 +310,7 @@ function S({ children: e, href: r, onClick: i, newTab: a = !1, showArrow: o = !0
286
310
  rel: r && a ? "noopener noreferrer" : void 0,
287
311
  className: [
288
312
  x.appLink,
289
- s === "glassy" ? x.appLinkGlassy : "",
313
+ s === "glassy" ? x.appLinkGlassy : x.appLinkDefault,
290
314
  c ?? ""
291
315
  ].filter(Boolean).join(" "),
292
316
  ...l,
@@ -311,59 +335,58 @@ function C() {
311
335
  });
312
336
  }
313
337
  var w = {
314
- inputBlockVertical: "_inputBlockVertical_1x5ym_1",
315
- inputLabel: "_inputLabel_1x5ym_7",
316
- inputLabelGlassy: "_inputLabelGlassy_1x5ym_13",
317
- passwordInputWrapper: "_passwordInputWrapper_1x5ym_17",
318
- inputTextField: "_inputTextField_1x5ym_22",
319
- inputTextFieldGlassy: "_inputTextFieldGlassy_1x5ym_34",
320
- inputError: "_inputError_1x5ym_52",
321
- togglePasswordButton: "_togglePasswordButton_1x5ym_56",
322
- icon: "_icon_1x5ym_88",
323
- errorMessage: "_errorMessage_1x5ym_97"
338
+ inputBlockVertical: "_inputBlockVertical_u3s35_1",
339
+ inputLabel: "_inputLabel_u3s35_7",
340
+ inputLabelGlassy: "_inputLabelGlassy_u3s35_13",
341
+ passwordInputWrapper: "_passwordInputWrapper_u3s35_17",
342
+ inputTextField: "_inputTextField_u3s35_22",
343
+ inputTextFieldGlassy: "_inputTextFieldGlassy_u3s35_34",
344
+ inputError: "_inputError_u3s35_56",
345
+ togglePasswordButton: "_togglePasswordButton_u3s35_60",
346
+ icon: "_icon_u3s35_92",
347
+ errorMessage: "_errorMessage_u3s35_101"
324
348
  };
325
349
  //#endregion
326
350
  //#region src/components/form/password/Password.tsx
327
- function T({ label: e, name: r, id: i, error: a, variant: o = "default", colorToken: c = "--colors-juice-sugarcane", className: l, disabled: u, ref: d, autoComplete: f = "current-password", ...p }) {
328
- let [m, h] = s(!1), g = i ?? r, _ = { "--password-accent-color": `var(${c})` };
329
- function v() {
330
- h((e) => !e);
351
+ function T({ label: e, name: r, id: i, error: a, variant: o = "default", className: c, disabled: l, ref: u, autoComplete: d = "current-password", ...f }) {
352
+ let [p, m] = s(!1), h = i ?? r;
353
+ function g() {
354
+ m((e) => !e);
331
355
  }
332
356
  return /* @__PURE__ */ n("div", {
333
357
  className: w.inputBlockVertical,
334
- style: _,
335
358
  children: [
336
359
  e && /* @__PURE__ */ t("label", {
337
- htmlFor: g,
360
+ htmlFor: h,
338
361
  className: [w.inputLabel, o === "glassy" ? w.inputLabelGlassy : ""].filter(Boolean).join(" "),
339
362
  children: e
340
363
  }),
341
364
  /* @__PURE__ */ n("div", {
342
365
  className: w.passwordInputWrapper,
343
366
  children: [/* @__PURE__ */ t("input", {
344
- id: g,
367
+ id: h,
345
368
  name: r,
346
- ref: d,
347
- type: m ? "text" : "password",
348
- disabled: u,
349
- autoComplete: f,
369
+ ref: u,
370
+ type: p ? "text" : "password",
371
+ disabled: l,
372
+ autoComplete: d,
350
373
  className: [
351
374
  w.inputTextField,
352
375
  o === "glassy" ? w.inputTextFieldGlassy : "",
353
376
  a ? w.inputError : "",
354
- l ?? ""
377
+ c ?? ""
355
378
  ].filter(Boolean).join(" "),
356
379
  "aria-invalid": !!a,
357
380
  "aria-describedby": a ? `${r}-error` : void 0,
358
- ...p
381
+ ...f
359
382
  }), /* @__PURE__ */ t("button", {
360
383
  type: "button",
361
384
  className: w.togglePasswordButton,
362
- onClick: v,
363
- disabled: u,
364
- "aria-label": m ? "Passwort ausblenden" : "Passwort anzeigen",
365
- "aria-pressed": m,
366
- children: t(m ? D : E, {})
385
+ onClick: g,
386
+ disabled: l,
387
+ "aria-label": p ? "Passwort ausblenden" : "Passwort anzeigen",
388
+ "aria-pressed": p,
389
+ children: t(p ? D : E, {})
367
390
  })]
368
391
  }),
369
392
  a && /* @__PURE__ */ t("span", {
@@ -399,69 +422,71 @@ function D() {
399
422
  });
400
423
  }
401
424
  var O = {
402
- inputBlockVertical: "_inputBlockVertical_n4fz9_1",
403
- inputLabel: "_inputLabel_n4fz9_7",
404
- inputLabelGlassy: "_inputLabelGlassy_n4fz9_13",
405
- inputWrapper: "_inputWrapper_n4fz9_17",
406
- inputTextField: "_inputTextField_n4fz9_22",
407
- inputTextFieldGlassy: "_inputTextFieldGlassy_n4fz9_34",
408
- inputValid: "_inputValid_n4fz9_60",
409
- inputError: "_inputError_n4fz9_64",
410
- loading: "_loading_n4fz9_68",
411
- suggestionList: "_suggestionList_n4fz9_77",
412
- suggestionItem: "_suggestionItem_n4fz9_94",
413
- postalCode: "_postalCode_n4fz9_114",
414
- locality: "_locality_n4fz9_119",
415
- emptyState: "_emptyState_n4fz9_123",
416
- successMessage: "_successMessage_n4fz9_138",
417
- errorMessage: "_errorMessage_n4fz9_144"
425
+ inputBlockVertical: "_inputBlockVertical_1xe0h_1",
426
+ inputLabel: "_inputLabel_1xe0h_7",
427
+ inputLabelGlassy: "_inputLabelGlassy_1xe0h_13",
428
+ inputWrapper: "_inputWrapper_1xe0h_17",
429
+ inputTextField: "_inputTextField_1xe0h_22",
430
+ inputTextFieldGlassy: "_inputTextFieldGlassy_1xe0h_34",
431
+ inputError: "_inputError_1xe0h_64",
432
+ loading: "_loading_1xe0h_68",
433
+ suggestionList: "_suggestionList_1xe0h_77",
434
+ suggestionItem: "_suggestionItem_1xe0h_94",
435
+ locality: "_locality_1xe0h_114",
436
+ emptyState: "_emptyState_1xe0h_118",
437
+ successMessage: "_successMessage_1xe0h_129",
438
+ errorMessage: "_errorMessage_1xe0h_135"
418
439
  };
419
440
  //#endregion
420
441
  //#region src/components/form/postal-code/PostalCode.tsx
421
442
  function k({ label: e, name: a, id: c, error: l, variant: u = "default", className: d, disabled: f, placeholder: p = "z.B. 8001 oder Zürich", ref: m, onChange: h, onBlur: g, onValueChange: _, onSuggestionSelect: v, ...y }) {
422
- let b = i(), x = c ?? `${a}-${b}`, S = o(null), [C, w] = s(""), [T, E] = s([]), [D, k] = s(!1), [A, j] = s(!1), M = /^\d+$/.test(C.trim()), N = C.trim().length >= 4 && M && !D, P = N && T.some((e) => e.postalCode === C.trim()), F = N && !P;
423
- r(() => {
424
- let e = C.trim();
443
+ let b = i(), x = c ?? `${a}-${b}`, S = o(null), C = o(!1), [w, T] = s(""), [E, D] = s([]), [k, A] = s(!1), [j, M] = s(!1), N = w.trim().match(/^(\d+)\s+(.+)$/), P = !!N, F = N?.[1], I = N?.[2], L = P && E.some((e) => e.postalCode === F && e.locality === I), R = /^\d+$/.test(w.trim()), z = w.trim().length >= 4 && R && !k, B = z && E.some((e) => e.postalCode === w.trim()), V = z && !B;
444
+ j && w.trim().length >= 4 && E.length, r(() => {
445
+ let e = w.trim();
425
446
  if (e.length < 2) {
426
- E([]), j(!1);
447
+ D([]), M(!1);
448
+ return;
449
+ }
450
+ if (C.current) {
451
+ C.current = !1;
427
452
  return;
428
453
  }
429
454
  let t = new AbortController();
430
455
  async function n() {
431
- k(!0);
456
+ A(!0);
432
457
  try {
433
- let n = /^\d+$/.test(e) ? `https://openplzapi.org/ch/Localities?postalCode=${e}` : `https://openplzapi.org/ch/Localities?locality=${encodeURIComponent(e)}`, r = await fetch(n, { signal: t.signal });
434
- if (!r.ok) throw Error("Postal-Code-Suche fehlgeschlagen");
435
- let i = await r.json();
436
- E(Array.from(new Map(i.map((e) => {
458
+ let n = e.match(/^(\d+)\s/), r = n ? n[1] : e, i = /^\d+$/.test(r) ? `https://openplzapi.org/ch/Localities?postalCode=${r}` : `https://openplzapi.org/ch/Localities?locality=${encodeURIComponent(r)}`, a = await fetch(i, { signal: t.signal });
459
+ if (!a.ok) throw Error("Postal-Code-Suche fehlgeschlagen");
460
+ let o = await a.json();
461
+ D(Array.from(new Map(o.map((e) => {
437
462
  let t = `${e.postalCode} ${e.name}`;
438
463
  return [t, {
439
464
  label: t,
440
465
  postalCode: e.postalCode,
441
466
  locality: e.name
442
467
  }];
443
- })).values()).slice(0, 10)), j(!0);
468
+ })).values()).slice(0, 10)), M(!0);
444
469
  } catch (e) {
445
470
  if (t.signal.aborted) return;
446
- console.error(e), E([]), j(!0);
471
+ console.error(e), D([]), M(!0);
447
472
  } finally {
448
- t.signal.aborted || k(!1);
473
+ t.signal.aborted || A(!1);
449
474
  }
450
475
  }
451
476
  let r = window.setTimeout(n, 300);
452
477
  return () => {
453
478
  window.clearTimeout(r), t.abort();
454
479
  };
455
- }, [C]);
456
- function I(e) {
480
+ }, [w]);
481
+ function H(e) {
457
482
  S.current = e, typeof m == "function" ? m(e) : m && (m.current = e);
458
483
  }
459
- function L(e) {
484
+ function U(e) {
460
485
  let t = e.target.value;
461
- w(t), _?.(t), h?.(e);
486
+ T(t), _?.(t), h?.(e);
462
487
  }
463
- function R(e) {
464
- w(e.label), E([]), _?.(e.label), v?.(e), S.current && (S.current.value = e.label, S.current.dispatchEvent(new Event("input", { bubbles: !0 })));
488
+ function W(e) {
489
+ C.current = !0, T(e.label), D([]), M(!1), _?.(e.label), v?.(e), S.current && (S.current.value = e.label, S.current.dispatchEvent(new Event("input", { bubbles: !0 })));
465
490
  }
466
491
  return /* @__PURE__ */ n("div", {
467
492
  className: O.inputBlockVertical,
@@ -477,57 +502,58 @@ function k({ label: e, name: a, id: c, error: l, variant: u = "default", classNa
477
502
  /* @__PURE__ */ t("input", {
478
503
  id: x,
479
504
  name: a,
480
- ref: I,
505
+ ref: H,
481
506
  type: "text",
482
507
  inputMode: "search",
483
508
  autoComplete: "postal-code",
484
509
  disabled: f,
485
510
  placeholder: p,
486
- value: C,
487
- onChange: L,
511
+ value: w,
512
+ onChange: U,
488
513
  onBlur: g,
489
514
  className: [
490
515
  O.inputTextField,
491
516
  u === "glassy" ? O.inputTextFieldGlassy : "",
492
- P ? O.inputValid : "",
493
- F || l ? O.inputError : "",
517
+ B || L ? O.inputValid : "",
518
+ V || l ? O.inputError : "",
494
519
  d ?? ""
495
520
  ].filter(Boolean).join(" "),
496
- "aria-invalid": !!l || F,
521
+ "aria-invalid": !!l || V,
497
522
  "aria-describedby": l ? `${a}-error` : void 0,
498
523
  ...y
499
524
  }),
500
- D && /* @__PURE__ */ t("span", {
525
+ k && /* @__PURE__ */ t("span", {
501
526
  className: O.loading,
502
527
  children: "Lädt…"
503
528
  }),
504
- T.length > 0 && /* @__PURE__ */ t("ul", {
529
+ E.length > 0 && /* @__PURE__ */ t("ul", {
505
530
  className: O.suggestionList,
506
- children: T.map((e) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ n("button", {
531
+ children: E.map((e) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ n("button", {
507
532
  type: "button",
508
533
  className: O.suggestionItem,
509
534
  onMouseDown: (e) => e.preventDefault(),
510
- onClick: () => R(e),
511
- children: [/* @__PURE__ */ t("span", {
512
- className: O.postalCode,
513
- children: e.postalCode
514
- }), /* @__PURE__ */ t("span", {
535
+ onClick: () => W(e),
536
+ children: [/* @__PURE__ */ t("span", { children: e.postalCode }), /* @__PURE__ */ t("span", {
515
537
  className: O.locality,
516
538
  children: e.locality
517
539
  })]
518
540
  }) }, e.label))
519
541
  }),
520
- A && C.trim().length >= 2 && T.length === 0 && !D && /* @__PURE__ */ t("div", {
542
+ j && w.trim().length >= 2 && E.length === 0 && !k && !L && !V && /* @__PURE__ */ t("div", {
521
543
  className: O.emptyState,
522
544
  children: "Keine Schweizer PLZ oder Ortschaft gefunden."
523
545
  })
524
546
  ]
525
547
  }),
526
- P && /* @__PURE__ */ t("span", {
548
+ B && /* @__PURE__ */ t("span", {
549
+ className: O.successMessage,
550
+ children: "Gültige Schweizer Postleitzahl"
551
+ }),
552
+ L && /* @__PURE__ */ t("span", {
527
553
  className: O.successMessage,
528
554
  children: "Gültige Schweizer Postleitzahl"
529
555
  }),
530
- F && /* @__PURE__ */ t("span", {
556
+ V && /* @__PURE__ */ t("span", {
531
557
  className: O.errorMessage,
532
558
  children: "Diese Schweizer Postleitzahl wurde nicht gefunden."
533
559
  }),
@@ -540,20 +566,21 @@ function k({ label: e, name: a, id: c, error: l, variant: u = "default", classNa
540
566
  });
541
567
  }
542
568
  var A = {
543
- radioGroup: "_radioGroup_tmet2_1",
544
- radioGroupGlassy: "_radioGroupGlassy_tmet2_11",
545
- radioLabel: "_radioLabel_tmet2_15",
546
- radioLabelGlassy: "_radioLabelGlassy_tmet2_20",
547
- optionGroup: "_optionGroup_tmet2_24",
548
- optionWrapper: "_optionWrapper_tmet2_31",
549
- optionWrapperDisabled: "_optionWrapperDisabled_tmet2_37",
550
- radioInput: "_radioInput_tmet2_41",
551
- optionButton: "_optionButton_tmet2_53",
552
- optionTitle: "_optionTitle_tmet2_77",
553
- optionDescription: "_optionDescription_tmet2_83",
554
- optionButtonError: "_optionButtonError_tmet2_117",
555
- optionButtonGlassy: "_optionButtonGlassy_tmet2_122",
556
- errorMessage: "_errorMessage_tmet2_144"
569
+ radioGroup: "_radioGroup_cqfjf_1",
570
+ radioGroupGlassy: "_radioGroupGlassy_cqfjf_11",
571
+ radioLabel: "_radioLabel_cqfjf_15",
572
+ radioLabelGlassy: "_radioLabelGlassy_cqfjf_20",
573
+ optionGroup: "_optionGroup_cqfjf_24",
574
+ optionWrapper: "_optionWrapper_cqfjf_31",
575
+ optionWrapperDisabled: "_optionWrapperDisabled_cqfjf_37",
576
+ radioInput: "_radioInput_cqfjf_41",
577
+ optionButton: "_optionButton_cqfjf_58",
578
+ optionTitle: "_optionTitle_cqfjf_81",
579
+ optionDescription: "_optionDescription_cqfjf_87",
580
+ optionButtonDefault: "_optionButtonDefault_cqfjf_95",
581
+ optionButtonGlassy: "_optionButtonGlassy_cqfjf_120",
582
+ optionButtonError: "_optionButtonError_cqfjf_165",
583
+ errorMessage: "_errorMessage_cqfjf_169"
557
584
  };
558
585
  //#endregion
559
586
  //#region src/components/form/radiobutton/RadioButton.tsx
@@ -590,7 +617,7 @@ function j({ label: e, name: r, options: i, error: a, variant: o = "default", cl
590
617
  }), /* @__PURE__ */ n("span", {
591
618
  className: [
592
619
  A.optionButton,
593
- o === "glassy" ? A.optionButtonGlassy : "",
620
+ o === "glassy" ? A.optionButtonGlassy : A.optionButtonDefault,
594
621
  a ? A.optionButtonError : ""
595
622
  ].filter(Boolean).join(" "),
596
623
  children: [/* @__PURE__ */ t("span", {
@@ -613,16 +640,19 @@ function j({ label: e, name: r, options: i, error: a, variant: o = "default", cl
613
640
  });
614
641
  }
615
642
  var M = {
616
- switchWrapper: "_switchWrapper_f34wd_1",
617
- switchCheckbox: "_switchCheckbox_f34wd_7",
618
- switchLabel: "_switchLabel_f34wd_15",
619
- switchLabelGlassy: "_switchLabelGlassy_f34wd_24",
620
- switchBackground: "_switchBackground_f34wd_28",
621
- switchButton: "_switchButton_f34wd_42",
622
- iconChecked: "_iconChecked_f34wd_86",
623
- iconUnchecked: "_iconUnchecked_f34wd_87",
624
- switchText: "_switchText_f34wd_119",
625
- errorMessage: "_errorMessage_f34wd_129"
643
+ switchWrapper: "_switchWrapper_14rch_1",
644
+ switchCheckbox: "_switchCheckbox_14rch_7",
645
+ switchLabel: "_switchLabel_14rch_15",
646
+ switchLabelDefault: "_switchLabelDefault_14rch_24",
647
+ switchLabelGlassy: "_switchLabelGlassy_14rch_28",
648
+ switchBackground: "_switchBackground_14rch_37",
649
+ switchBackgroundDefault: "_switchBackgroundDefault_14rch_56",
650
+ switchBackgroundGlassy: "_switchBackgroundGlassy_14rch_66",
651
+ switchButton: "_switchButton_14rch_77",
652
+ iconChecked: "_iconChecked_14rch_163",
653
+ iconUnchecked: "_iconUnchecked_14rch_164",
654
+ switchText: "_switchText_14rch_200",
655
+ errorMessage: "_errorMessage_14rch_206"
626
656
  };
627
657
  //#endregion
628
658
  //#region src/components/form/switch/Switch.tsx
@@ -643,9 +673,9 @@ function N({ name: e, id: r, label: i, error: a, variant: o = "default", classNa
643
673
  }),
644
674
  /* @__PURE__ */ n("label", {
645
675
  htmlFor: u,
646
- className: [M.switchLabel, o === "glassy" ? M.switchLabelGlassy : ""].filter(Boolean).join(" "),
676
+ className: [M.switchLabel, o === "glassy" ? M.switchLabelGlassy : M.switchLabelDefault].filter(Boolean).join(" "),
647
677
  children: [/* @__PURE__ */ t("span", {
648
- className: M.switchBackground,
678
+ className: [M.switchBackground, o === "glassy" ? M.switchBackgroundGlassy : M.switchBackgroundDefault].filter(Boolean).join(" "),
649
679
  children: /* @__PURE__ */ n("span", {
650
680
  className: M.switchButton,
651
681
  "aria-hidden": "true",
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react/jsx-runtime`),require(`react`)):typeof define==`function`&&define.amd?define([`exports`,`react/jsx-runtime`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`SUUS Component Library`]={},e.jsxRuntime,e.React))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r={suusButton:`_suusButton_1q9to_1`,icon:`_icon_1q9to_45`,label:`_label_1q9to_62`,primary:`_primary_1q9to_69`,secondary:`_secondary_1q9to_113`,loading:`_loading_1q9to_169`,loader:`_loader_1q9to_173`,"btn-spin":`_btn-spin_1q9to_1`,loaderSecondary:`_loaderSecondary_1q9to_182`};function i({label:e,onClick:n,type:i=`button`,disabled:a=!1,loading:o=!1,variant:s=`primary`,colorToken:c=`--colors-juice-sugarcane`,icon:l,...u}){return(0,t.jsx)(`button`,{type:i,onClick:n,disabled:a||o,style:{"--button-background-color":`var(${c})`},className:[r.suusButton,r[s],o?r.loading:``].filter(Boolean).join(` `),"aria-busy":o,...u,children:o?(0,t.jsx)(`span`,{className:`${r.loader} ${s===`primary`?``:r.loaderSecondary}`,"aria-hidden":`true`}):(0,t.jsxs)(t.Fragment,{children:[l?(0,t.jsx)(`span`,{className:r.icon,children:l}):null,(0,t.jsx)(`span`,{className:r.label,children:e})]})})}var a={checkboxWrapper:`_checkboxWrapper_137qc_1`,checkboxInput:`_checkboxInput_137qc_15`,checkboxLabel:`_checkboxLabel_137qc_24`,customCheckbox:`_customCheckbox_137qc_34`,checkIcon:`_checkIcon_137qc_57`,checkboxText:`_checkboxText_137qc_76`,checkboxWrapperDisabled:`_checkboxWrapperDisabled_137qc_107`,checkboxWrapperError:`_checkboxWrapperError_137qc_133`,errorMessage:`_errorMessage_137qc_147`,checkboxWrapperGlassy:`_checkboxWrapperGlassy_137qc_157`};function o({label:e,name:n,id:r,error:i,variant:o=`default`,className:s,disabled:c,...l}){let u=r??`${n}-checkbox`;return(0,t.jsxs)(`div`,{className:[a.checkboxWrapper,o===`glassy`?a.checkboxWrapperGlassy:``,i?a.checkboxWrapperError:``,c?a.checkboxWrapperDisabled:``,s??``].filter(Boolean).join(` `),children:[(0,t.jsx)(`input`,{type:`checkbox`,id:u,name:n,disabled:c,className:a.checkboxInput,"aria-invalid":!!i,"aria-describedby":i?`${n}-error`:void 0,...l}),(0,t.jsxs)(`label`,{htmlFor:u,className:a.checkboxLabel,children:[(0,t.jsx)(`span`,{className:a.customCheckbox,"aria-hidden":`true`,children:(0,t.jsx)(`svg`,{className:a.checkIcon,viewBox:`0 0 24 24`,focusable:`false`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M20 6L9 17L4 12`})})}),(0,t.jsx)(`span`,{className:a.checkboxText,children:e})]}),i&&(0,t.jsx)(`span`,{id:`${n}-error`,className:a.errorMessage,children:i})]})}var s={chip:`_chip_9t0x4_1`,chipGlassy:`_chipGlassy_9t0x4_19`};function c({children:e,variant:n=`default`,className:r,...i}){return(0,t.jsx)(`span`,{className:[s.chip,n===`glassy`?s.chipGlassy:``,r??``].filter(Boolean).join(` `),...i,children:e})}var l={inputBlockVertical:`_inputBlockVertical_1vqyb_1`,inputLabel:`_inputLabel_1vqyb_7`,inputLabelGlassy:`_inputLabelGlassy_1vqyb_13`,dateInputWrapper:`_dateInputWrapper_1vqyb_17`,inputDateField:`_inputDateField_1vqyb_22`,inputDateFieldGlassy:`_inputDateFieldGlassy_1vqyb_54`,inputError:`_inputError_1vqyb_72`,calendarIconButton:`_calendarIconButton_1vqyb_76`,icon:`_icon_1vqyb_104`,errorMessage:`_errorMessage_1vqyb_113`};function u({label:e,name:r,id:i,value:a=null,maxDate:o,minDate:s,error:c,variant:u=`default`,className:m,ref:h,onDateChange:g,onBlur:_,disabled:v,...y}){let b=i??r,x=(0,n.useRef)(null),S=o??new Date;function C(e){x.current=e,typeof h==`function`?h(e):h&&(h.current=e)}function w(e){let t=e.target.value;if(!t){g?.(null);return}g?.(f(t))}function T(){v||(x.current?.showPicker?.(),x.current?.focus())}return(0,t.jsxs)(`div`,{className:l.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:b,className:[l.inputLabel,u===`glassy`?l.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`div`,{className:l.dateInputWrapper,children:[(0,t.jsx)(`input`,{id:b,name:r,ref:C,type:`date`,value:d(a),max:d(S),min:s?d(s):void 0,disabled:v,onChange:w,onBlur:_,className:[l.inputDateField,u===`glassy`?l.inputDateFieldGlassy:``,c?l.inputError:``,m??``].filter(Boolean).join(` `),"aria-invalid":!!c,"aria-describedby":c?`${r}-error`:void 0,...y}),(0,t.jsx)(`button`,{type:`button`,className:l.calendarIconButton,onClick:T,disabled:v,"aria-label":`Datum auswählen`,tabIndex:-1,children:(0,t.jsx)(p,{})})]}),c&&(0,t.jsx)(`span`,{id:`${r}-error`,className:l.errorMessage,children:c})]})}function d(e){return e?`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`:``}function f(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r)}function p(){return(0,t.jsxs)(`svg`,{className:l.icon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,t.jsx)(`path`,{d:`M8 2V5`}),(0,t.jsx)(`path`,{d:`M16 2V5`}),(0,t.jsx)(`path`,{d:`M3.5 9.09H20.5`}),(0,t.jsx)(`path`,{d:`M21 8.5V17.5C21 20 19.75 21.5 16.75 21.5H7.25C4.25 21.5 3 20 3 17.5V8.5C3 6 4.25 4.5 7.25 4.5H16.75C19.75 4.5 21 6 21 8.5Z`})]})}var m={inputBlockVertical:`_inputBlockVertical_1eq2l_1`,inputLabel:`_inputLabel_1eq2l_7`,inputLabelGlassy:`_inputLabelGlassy_1eq2l_13`,inputSelectField:`_inputSelectField_1eq2l_17`,inputSelectFieldGlassy:`_inputSelectFieldGlassy_1eq2l_27`,inputError:`_inputError_1eq2l_40`,errorMessage:`_errorMessage_1eq2l_44`};function h({label:e,name:n,options:r,placeholder:i,error:a,variant:o=`default`,className:s,disabled:c,...l}){return(0,t.jsxs)(`div`,{className:m.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:n,className:[m.inputLabel,o===`glassy`?m.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`select`,{id:n,name:n,disabled:c,className:[m.inputSelectField,o===`glassy`?m.inputSelectFieldGlassy:``,a?m.inputError:``,s??``].filter(Boolean).join(` `),"aria-invalid":!!a,"aria-describedby":a?`${n}-error`:void 0,...l,children:[i&&(0,t.jsx)(`option`,{value:``,disabled:!0,children:i}),r.map(e=>(0,t.jsx)(`option`,{value:e.value,children:e.label},e.value))]}),a&&(0,t.jsx)(`span`,{id:`${n}-error`,className:m.errorMessage,children:a})]})}var g={appLink:`_appLink_18ja7_1`,appLinkGlassy:`_appLinkGlassy_18ja7_27`,label:`_label_18ja7_35`,icon:`_icon_18ja7_40`,arrowIcon:`_arrowIcon_18ja7_51`};function _({children:e,href:n,onClick:r,newTab:i=!1,showArrow:a=!0,variant:o=`default`,className:s,...c}){function l(e){n||e.preventDefault(),r?.(e)}return(0,t.jsxs)(`a`,{href:n??`#`,onClick:l,target:n&&i?`_blank`:void 0,rel:n&&i?`noopener noreferrer`:void 0,className:[g.appLink,o===`glassy`?g.appLinkGlassy:``,s??``].filter(Boolean).join(` `),...c,children:[(0,t.jsx)(`span`,{className:g.label,children:e}),a&&(0,t.jsx)(`span`,{className:g.icon,"aria-hidden":`true`,children:(0,t.jsx)(v,{})})]})}function v(){return(0,t.jsxs)(`svg`,{className:g.arrowIcon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,t.jsx)(`path`,{d:`M5 12H19`}),(0,t.jsx)(`path`,{d:`M13 6L19 12L13 18`})]})}var y={inputBlockVertical:`_inputBlockVertical_1x5ym_1`,inputLabel:`_inputLabel_1x5ym_7`,inputLabelGlassy:`_inputLabelGlassy_1x5ym_13`,passwordInputWrapper:`_passwordInputWrapper_1x5ym_17`,inputTextField:`_inputTextField_1x5ym_22`,inputTextFieldGlassy:`_inputTextFieldGlassy_1x5ym_34`,inputError:`_inputError_1x5ym_52`,togglePasswordButton:`_togglePasswordButton_1x5ym_56`,icon:`_icon_1x5ym_88`,errorMessage:`_errorMessage_1x5ym_97`};function b({label:e,name:r,id:i,error:a,variant:o=`default`,colorToken:s=`--colors-juice-sugarcane`,className:c,disabled:l,ref:u,autoComplete:d=`current-password`,...f}){let[p,m]=(0,n.useState)(!1),h=i??r,g={"--password-accent-color":`var(${s})`};function _(){m(e=>!e)}return(0,t.jsxs)(`div`,{className:y.inputBlockVertical,style:g,children:[e&&(0,t.jsx)(`label`,{htmlFor:h,className:[y.inputLabel,o===`glassy`?y.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`div`,{className:y.passwordInputWrapper,children:[(0,t.jsx)(`input`,{id:h,name:r,ref:u,type:p?`text`:`password`,disabled:l,autoComplete:d,className:[y.inputTextField,o===`glassy`?y.inputTextFieldGlassy:``,a?y.inputError:``,c??``].filter(Boolean).join(` `),"aria-invalid":!!a,"aria-describedby":a?`${r}-error`:void 0,...f}),(0,t.jsx)(`button`,{type:`button`,className:y.togglePasswordButton,onClick:_,disabled:l,"aria-label":p?`Passwort ausblenden`:`Passwort anzeigen`,"aria-pressed":p,children:p?(0,t.jsx)(S,{}):(0,t.jsx)(x,{})})]}),a&&(0,t.jsx)(`span`,{id:`${r}-error`,className:y.errorMessage,children:a})]})}function x(){return(0,t.jsxs)(`svg`,{className:y.icon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,t.jsx)(`path`,{d:`M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z`}),(0,t.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]})}function S(){return(0,t.jsx)(`svg`,{className:y.icon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M17.94 17.94A10.94 10.94 0 0 1 12 20C7 20 2.73 16.11 1 12c.74-1.64 1.82-3.06 3.11-4.24m3.52-2.42A10.94 10.94 0 0 1 12 4c5 0 9.27 3.89 11 8-1.1 2.42-2.91 4.5-5.06 5.94M1 1l22 22`})})}var C={inputBlockVertical:`_inputBlockVertical_n4fz9_1`,inputLabel:`_inputLabel_n4fz9_7`,inputLabelGlassy:`_inputLabelGlassy_n4fz9_13`,inputWrapper:`_inputWrapper_n4fz9_17`,inputTextField:`_inputTextField_n4fz9_22`,inputTextFieldGlassy:`_inputTextFieldGlassy_n4fz9_34`,inputValid:`_inputValid_n4fz9_60`,inputError:`_inputError_n4fz9_64`,loading:`_loading_n4fz9_68`,suggestionList:`_suggestionList_n4fz9_77`,suggestionItem:`_suggestionItem_n4fz9_94`,postalCode:`_postalCode_n4fz9_114`,locality:`_locality_n4fz9_119`,emptyState:`_emptyState_n4fz9_123`,successMessage:`_successMessage_n4fz9_138`,errorMessage:`_errorMessage_n4fz9_144`};function w({label:e,name:r,id:i,error:a,variant:o=`default`,className:s,disabled:c,placeholder:l=`z.B. 8001 oder Zürich`,ref:u,onChange:d,onBlur:f,onValueChange:p,onSuggestionSelect:m,...h}){let g=(0,n.useId)(),_=i??`${r}-${g}`,v=(0,n.useRef)(null),[y,b]=(0,n.useState)(``),[x,S]=(0,n.useState)([]),[w,T]=(0,n.useState)(!1),[E,D]=(0,n.useState)(!1),O=/^\d+$/.test(y.trim()),k=y.trim().length>=4&&O&&!w,A=k&&x.some(e=>e.postalCode===y.trim()),j=k&&!A;(0,n.useEffect)(()=>{let e=y.trim();if(e.length<2){S([]),D(!1);return}let t=new AbortController;async function n(){T(!0);try{let n=/^\d+$/.test(e)?`https://openplzapi.org/ch/Localities?postalCode=${e}`:`https://openplzapi.org/ch/Localities?locality=${encodeURIComponent(e)}`,r=await fetch(n,{signal:t.signal});if(!r.ok)throw Error(`Postal-Code-Suche fehlgeschlagen`);let i=await r.json();S(Array.from(new Map(i.map(e=>{let t=`${e.postalCode} ${e.name}`;return[t,{label:t,postalCode:e.postalCode,locality:e.name}]})).values()).slice(0,10)),D(!0)}catch(e){if(t.signal.aborted)return;console.error(e),S([]),D(!0)}finally{t.signal.aborted||T(!1)}}let r=window.setTimeout(n,300);return()=>{window.clearTimeout(r),t.abort()}},[y]);function M(e){v.current=e,typeof u==`function`?u(e):u&&(u.current=e)}function N(e){let t=e.target.value;b(t),p?.(t),d?.(e)}function P(e){b(e.label),S([]),p?.(e.label),m?.(e),v.current&&(v.current.value=e.label,v.current.dispatchEvent(new Event(`input`,{bubbles:!0})))}return(0,t.jsxs)(`div`,{className:C.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:_,className:[C.inputLabel,o===`glassy`?C.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`div`,{className:C.inputWrapper,children:[(0,t.jsx)(`input`,{id:_,name:r,ref:M,type:`text`,inputMode:`search`,autoComplete:`postal-code`,disabled:c,placeholder:l,value:y,onChange:N,onBlur:f,className:[C.inputTextField,o===`glassy`?C.inputTextFieldGlassy:``,A?C.inputValid:``,j||a?C.inputError:``,s??``].filter(Boolean).join(` `),"aria-invalid":!!a||j,"aria-describedby":a?`${r}-error`:void 0,...h}),w&&(0,t.jsx)(`span`,{className:C.loading,children:`Lädt…`}),x.length>0&&(0,t.jsx)(`ul`,{className:C.suggestionList,children:x.map(e=>(0,t.jsx)(`li`,{children:(0,t.jsxs)(`button`,{type:`button`,className:C.suggestionItem,onMouseDown:e=>e.preventDefault(),onClick:()=>P(e),children:[(0,t.jsx)(`span`,{className:C.postalCode,children:e.postalCode}),(0,t.jsx)(`span`,{className:C.locality,children:e.locality})]})},e.label))}),E&&y.trim().length>=2&&x.length===0&&!w&&(0,t.jsx)(`div`,{className:C.emptyState,children:`Keine Schweizer PLZ oder Ortschaft gefunden.`})]}),A&&(0,t.jsx)(`span`,{className:C.successMessage,children:`Gültige Schweizer Postleitzahl`}),j&&(0,t.jsx)(`span`,{className:C.errorMessage,children:`Diese Schweizer Postleitzahl wurde nicht gefunden.`}),a&&(0,t.jsx)(`span`,{id:`${r}-error`,className:C.errorMessage,children:a})]})}var T={radioGroup:`_radioGroup_tmet2_1`,radioGroupGlassy:`_radioGroupGlassy_tmet2_11`,radioLabel:`_radioLabel_tmet2_15`,radioLabelGlassy:`_radioLabelGlassy_tmet2_20`,optionGroup:`_optionGroup_tmet2_24`,optionWrapper:`_optionWrapper_tmet2_31`,optionWrapperDisabled:`_optionWrapperDisabled_tmet2_37`,radioInput:`_radioInput_tmet2_41`,optionButton:`_optionButton_tmet2_53`,optionTitle:`_optionTitle_tmet2_77`,optionDescription:`_optionDescription_tmet2_83`,optionButtonError:`_optionButtonError_tmet2_117`,optionButtonGlassy:`_optionButtonGlassy_tmet2_122`,errorMessage:`_errorMessage_tmet2_144`};function E({label:e,name:n,options:r,error:i,variant:a=`default`,className:o,disabled:s,value:c,defaultValue:l,onChange:u,...d}){let f=c!==void 0;return(0,t.jsxs)(`fieldset`,{className:[T.radioGroup,a===`glassy`?T.radioGroupGlassy:``,o??``].filter(Boolean).join(` `),"aria-invalid":!!i,"aria-describedby":i?`${n}-error`:void 0,children:[e&&(0,t.jsx)(`legend`,{className:[T.radioLabel,a===`glassy`?T.radioLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsx)(`div`,{className:T.optionGroup,children:r.map(e=>{let r=f?{checked:c===e.value}:{defaultChecked:l===e.value};return(0,t.jsxs)(`label`,{className:[T.optionWrapper,s?T.optionWrapperDisabled:``].filter(Boolean).join(` `),children:[(0,t.jsx)(`input`,{type:`radio`,name:n,value:e.value,disabled:s,className:T.radioInput,onChange:u,...r,...d}),(0,t.jsxs)(`span`,{className:[T.optionButton,a===`glassy`?T.optionButtonGlassy:``,i?T.optionButtonError:``].filter(Boolean).join(` `),children:[(0,t.jsx)(`span`,{className:T.optionTitle,children:e.label}),e.description&&(0,t.jsx)(`span`,{className:T.optionDescription,children:e.description})]})]},e.value)})}),i&&(0,t.jsx)(`span`,{id:`${n}-error`,className:T.errorMessage,children:i})]})}var D={switchWrapper:`_switchWrapper_f34wd_1`,switchCheckbox:`_switchCheckbox_f34wd_7`,switchLabel:`_switchLabel_f34wd_15`,switchLabelGlassy:`_switchLabelGlassy_f34wd_24`,switchBackground:`_switchBackground_f34wd_28`,switchButton:`_switchButton_f34wd_42`,iconChecked:`_iconChecked_f34wd_86`,iconUnchecked:`_iconUnchecked_f34wd_87`,switchText:`_switchText_f34wd_119`,errorMessage:`_errorMessage_f34wd_129`};function O({name:e,id:n,label:r,error:i,variant:a=`default`,className:o,disabled:s,...c}){let l=n??`${e}-switch`;return(0,t.jsxs)(`div`,{className:[D.switchWrapper,o??``].filter(Boolean).join(` `),children:[(0,t.jsx)(`input`,{id:l,name:e,type:`checkbox`,disabled:s,className:D.switchCheckbox,"aria-invalid":!!i,"aria-describedby":i?`${e}-error`:void 0,...c}),(0,t.jsxs)(`label`,{htmlFor:l,className:[D.switchLabel,a===`glassy`?D.switchLabelGlassy:``].filter(Boolean).join(` `),children:[(0,t.jsx)(`span`,{className:D.switchBackground,children:(0,t.jsxs)(`span`,{className:D.switchButton,"aria-hidden":`true`,children:[(0,t.jsx)(`span`,{className:D.iconChecked,children:(0,t.jsx)(k,{})}),(0,t.jsx)(`span`,{className:D.iconUnchecked,children:(0,t.jsx)(A,{})})]})}),r&&(0,t.jsx)(`span`,{className:D.switchText,children:r})]}),i&&(0,t.jsx)(`span`,{id:`${e}-error`,className:D.errorMessage,children:i})]})}function k(){return(0,t.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 12 12`,fill:`none`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M3 6.5L5.5 9L9 3`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})})}function A(){return(0,t.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 12 12`,fill:`none`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M3 3L9 9M9 3L3 9`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`})})}var j={inputBlockVertical:`_inputBlockVertical_1khad_1`,inputLabel:`_inputLabel_1khad_8`,inputLabelGlassy:`_inputLabelGlassy_1khad_14`,inputTextField:`_inputTextField_1khad_20`,inputTextFieldGlassy:`_inputTextFieldGlassy_1khad_37`,inputError:`_inputError_1khad_59`,errorMessage:`_errorMessage_1khad_63`};function M({label:e,name:n,error:r,placeholder:i,variant:a=`default`,className:o,ref:s,...c}){return(0,t.jsxs)(`div`,{className:j.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:n,className:[j.inputLabel,a===`glassy`?j.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsx)(`input`,{id:n,name:n,ref:s,placeholder:i,className:[j.inputTextField,a===`glassy`?j.inputTextFieldGlassy:``,r?j.inputError:``,o??``].filter(Boolean).join(` `),"aria-invalid":!!r,"aria-describedby":r?`${n}-error`:void 0,...c}),r&&(0,t.jsx)(`span`,{id:`${n}-error`,className:j.errorMessage,children:r})]})}var N={wrapper:`_wrapper_1jqlw_1`,label:`_label_1jqlw_7`,labelGlassy:`_labelGlassy_1jqlw_13`,dropzone:`_dropzone_1jqlw_17`,dropzoneGlassy:`_dropzoneGlassy_1jqlw_32`,dragOver:`_dragOver_1jqlw_39`,errorState:`_errorState_1jqlw_48`,disabled:`_disabled_1jqlw_52`,hiddenInput:`_hiddenInput_1jqlw_57`,dropzoneContent:`_dropzoneContent_1jqlw_65`,placeholder:`_placeholder_1jqlw_74`,big:`_big_1jqlw_80`,small:`_small_1jqlw_86`,hint:`_hint_1jqlw_91`,selected:`_selected_1jqlw_111`,preview:`_preview_1jqlw_118`,fileMeta:`_fileMeta_1jqlw_127`,fileName:`_fileName_1jqlw_134`,fileSize:`_fileSize_1jqlw_142`,remove:`_remove_1jqlw_156`,errorMessage:`_errorMessage_1jqlw_198`};function P({label:e,name:r,id:i,file:a,error:o,variant:s=`default`,accept:c=`image/*`,maxSizeBytes:l=5*1024*1024,disabled:u,className:d,onChange:f,onFileChange:p,...m}){let h=(0,n.useId)(),g=i??`${r}-${h}`,[_,v]=(0,n.useState)(!1),[y,b]=(0,n.useState)(a??null),x=a!==void 0,S=x?a:y,C=(0,n.useMemo)(()=>!S||!S.type.startsWith(`image/`)?null:URL.createObjectURL(S),[S]);(0,n.useEffect)(()=>{x&&b(a??null)},[a,x]),(0,n.useEffect)(()=>()=>{C&&URL.revokeObjectURL(C)},[C]);function w(e){return!e||(c===`image/*`||c.startsWith(`image/`))&&!e.type.startsWith(`image/`)||l&&e.size>l?null:e}function T(e){let t=w(e);x||b(t),p?.(t)}function E(e){T(e.target.files?.[0]??null),f?.(e)}function D(e){e.preventDefault(),e.stopPropagation(),u||v(!0)}function O(e){e.preventDefault(),e.stopPropagation(),!e.currentTarget.contains(e.relatedTarget)&&v(!1)}function k(e){e.preventDefault(),e.stopPropagation(),v(!1),!u&&T(e.dataTransfer.files?.[0]??null)}function A(){x||b(null),p?.(null)}let j=Math.round(l/(1024*1024));return(0,t.jsxs)(`div`,{className:[N.wrapper,d??``].filter(Boolean).join(` `),children:[(0,t.jsx)(`label`,{className:[N.label,s===`glassy`?N.labelGlassy:``].filter(Boolean).join(` `),htmlFor:g,children:e}),(0,t.jsxs)(`div`,{className:[N.dropzone,s===`glassy`?N.dropzoneGlassy:``,_?N.dragOver:``,o?N.errorState:``,u?N.disabled:``].filter(Boolean).join(` `),onDragOver:D,onDragLeave:O,onDrop:k,children:[(0,t.jsx)(`input`,{id:g,name:r,className:N.hiddenInput,type:`file`,accept:c,disabled:u,onChange:E,"aria-invalid":!!o,"aria-describedby":o?`${r}-error`:void 0,...m}),(0,t.jsx)(`label`,{htmlFor:g,className:N.dropzoneContent,children:S?(0,t.jsxs)(`span`,{className:N.selected,children:[C&&(0,t.jsx)(`img`,{className:N.preview,src:C,alt:`Vorschau von ${S.name}`}),(0,t.jsxs)(`span`,{className:N.fileMeta,children:[(0,t.jsx)(`span`,{className:N.fileName,children:S.name}),(0,t.jsxs)(`span`,{className:N.fileSize,children:[(S.size/1024).toFixed(0),` KB ·`,` `,S.type||`unknown`]})]})]}):(0,t.jsxs)(`span`,{className:N.placeholder,children:[(0,t.jsx)(`span`,{className:N.big,children:`Datei hier reinziehen`}),(0,t.jsx)(`span`,{className:N.small,children:`…oder klicken, um auszuwählen`}),(0,t.jsxs)(`span`,{className:N.hint,children:[`Erlaubt: `,c,` · max. `,j,` MB`]})]})}),S&&(0,t.jsx)(`button`,{type:`button`,className:N.remove,onClick:A,disabled:u,children:`Entfernen`})]}),o&&(0,t.jsx)(`span`,{id:`${r}-error`,className:N.errorMessage,children:o})]})}e.Button=i,e.Checkbox=o,e.Chip=c,e.DatePicker=u,e.Dropdown=h,e.Link=_,e.Password=b,e.PostalCode=w,e.RadioButton=E,e.Switch=O,e.TextField=M,e.Upload=P});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react/jsx-runtime`),require(`react`)):typeof define==`function`&&define.amd?define([`exports`,`react/jsx-runtime`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`SUUS Component Library`]={},e.jsxRuntime,e.React))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r={suusButton:`_suusButton_1ucmz_1`,icon:`_icon_1ucmz_45`,label:`_label_1ucmz_62`,primary:`_primary_1ucmz_69`,secondary:`_secondary_1ucmz_113`,loading:`_loading_1ucmz_169`,loader:`_loader_1ucmz_173`,"btn-spin":`_btn-spin_1ucmz_1`,loaderSecondary:`_loaderSecondary_1ucmz_182`};function i({label:e,onClick:n,type:i=`button`,disabled:a=!1,loading:o=!1,variant:s=`primary`,colorToken:c=`--color-juice-sugarcane`,icon:l,...u}){return(0,t.jsx)(`button`,{type:i,onClick:n,disabled:a||o,style:{"--button-background-color":`var(${c})`},className:[r.suusButton,r[s],o?r.loading:``].filter(Boolean).join(` `),"aria-busy":o,...u,children:o?(0,t.jsx)(`span`,{className:`${r.loader} ${s===`primary`?``:r.loaderSecondary}`,"aria-hidden":`true`}):(0,t.jsxs)(t.Fragment,{children:[l?(0,t.jsx)(`span`,{className:r.icon,children:l}):null,(0,t.jsx)(`span`,{className:r.label,children:e})]})})}var a={checkboxWrapper:`_checkboxWrapper_6w8h4_1`,checkboxInput:`_checkboxInput_6w8h4_15`,checkboxLabel:`_checkboxLabel_6w8h4_24`,customCheckbox:`_customCheckbox_6w8h4_34`,checkIcon:`_checkIcon_6w8h4_57`,checkboxText:`_checkboxText_6w8h4_76`,checkboxWrapperDisabled:`_checkboxWrapperDisabled_6w8h4_107`,checkboxWrapperError:`_checkboxWrapperError_6w8h4_133`,errorMessage:`_errorMessage_6w8h4_147`,checkboxWrapperGlassy:`_checkboxWrapperGlassy_6w8h4_154`};function o({label:e,name:n,id:r,error:i,variant:o=`default`,className:s,disabled:c,...l}){let u=r??`${n}-checkbox`;return(0,t.jsxs)(`div`,{className:[a.checkboxWrapper,o===`glassy`?a.checkboxWrapperGlassy:``,i?a.checkboxWrapperError:``,c?a.checkboxWrapperDisabled:``,s??``].filter(Boolean).join(` `),children:[(0,t.jsx)(`input`,{type:`checkbox`,id:u,name:n,disabled:c,className:a.checkboxInput,"aria-invalid":!!i,"aria-describedby":i?`${n}-error`:void 0,...l}),(0,t.jsxs)(`label`,{htmlFor:u,className:a.checkboxLabel,children:[(0,t.jsx)(`span`,{className:a.customCheckbox,"aria-hidden":`true`,children:(0,t.jsx)(`svg`,{className:a.checkIcon,viewBox:`0 0 24 24`,focusable:`false`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M20 6L9 17L4 12`})})}),(0,t.jsx)(`span`,{className:a.checkboxText,children:e})]}),i&&(0,t.jsx)(`span`,{id:`${n}-error`,className:a.errorMessage,children:i})]})}var s={chip:`_chip_1kgh7_1`,chipDefault:`_chipDefault_1kgh7_21`,chipGlassy:`_chipGlassy_1kgh7_36`,chipChecked:`_chipChecked_1kgh7_49`,chipDisabled:`_chipDisabled_1kgh7_56`};function c({children:e,variant:r=`default`,clickable:i=!0,checked:a,defaultChecked:o=!1,onCheckedChange:c,className:l,...u}){let[d,f]=(0,n.useState)(o),p=typeof a==`boolean`,m=p?a:d;function h(e){if(!i)return;let t=!m;p||f(t),c?.(t),u.onClick?.(e)}let g=r===`glassy`?s.chipGlassy:s.chipDefault,_=m?s.chipChecked:``,v=i?``:s.chipDisabled;return i?(0,t.jsx)(`button`,{type:`button`,"aria-pressed":m,className:[s.chip,g,_,l??``].filter(Boolean).join(` `),onClick:h,...u,children:e}):(0,t.jsx)(`span`,{className:[s.chip,g,_,v,l??``].filter(Boolean).join(` `),children:e})}var l={inputBlockVertical:`_inputBlockVertical_1vqyb_1`,inputLabel:`_inputLabel_1vqyb_7`,inputLabelGlassy:`_inputLabelGlassy_1vqyb_13`,dateInputWrapper:`_dateInputWrapper_1vqyb_17`,inputDateField:`_inputDateField_1vqyb_22`,inputDateFieldGlassy:`_inputDateFieldGlassy_1vqyb_54`,inputError:`_inputError_1vqyb_72`,calendarIconButton:`_calendarIconButton_1vqyb_76`,icon:`_icon_1vqyb_104`,errorMessage:`_errorMessage_1vqyb_113`};function u({label:e,name:r,id:i,value:a=null,maxDate:o,minDate:s,error:c,variant:u=`default`,className:m,ref:h,onDateChange:g,onBlur:_,disabled:v,...y}){let b=i??r,x=(0,n.useRef)(null),S=o??new Date;function C(e){x.current=e,typeof h==`function`?h(e):h&&(h.current=e)}function w(e){let t=e.target.value;if(!t){g?.(null);return}g?.(f(t))}function T(){v||(x.current?.showPicker?.(),x.current?.focus())}return(0,t.jsxs)(`div`,{className:l.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:b,className:[l.inputLabel,u===`glassy`?l.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`div`,{className:l.dateInputWrapper,children:[(0,t.jsx)(`input`,{id:b,name:r,ref:C,type:`date`,value:d(a),max:d(S),min:s?d(s):void 0,disabled:v,onChange:w,onBlur:_,className:[l.inputDateField,u===`glassy`?l.inputDateFieldGlassy:``,c?l.inputError:``,m??``].filter(Boolean).join(` `),"aria-invalid":!!c,"aria-describedby":c?`${r}-error`:void 0,...y}),(0,t.jsx)(`button`,{type:`button`,className:l.calendarIconButton,onClick:T,disabled:v,"aria-label":`Datum auswählen`,tabIndex:-1,children:(0,t.jsx)(p,{})})]}),c&&(0,t.jsx)(`span`,{id:`${r}-error`,className:l.errorMessage,children:c})]})}function d(e){return e?`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`:``}function f(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r)}function p(){return(0,t.jsxs)(`svg`,{className:l.icon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,t.jsx)(`path`,{d:`M8 2V5`}),(0,t.jsx)(`path`,{d:`M16 2V5`}),(0,t.jsx)(`path`,{d:`M3.5 9.09H20.5`}),(0,t.jsx)(`path`,{d:`M21 8.5V17.5C21 20 19.75 21.5 16.75 21.5H7.25C4.25 21.5 3 20 3 17.5V8.5C3 6 4.25 4.5 7.25 4.5H16.75C19.75 4.5 21 6 21 8.5Z`})]})}var m={inputBlockVertical:`_inputBlockVertical_1yqyz_1`,inputLabel:`_inputLabel_1yqyz_7`,inputLabelGlassy:`_inputLabelGlassy_1yqyz_13`,inputSelectField:`_inputSelectField_1yqyz_17`,inputSelectFieldGlassy:`_inputSelectFieldGlassy_1yqyz_27`,inputError:`_inputError_1yqyz_40`,errorMessage:`_errorMessage_1yqyz_44`};function h({label:e,name:n,options:r,placeholder:i,error:a,variant:o=`default`,className:s,disabled:c,...l}){return(0,t.jsxs)(`div`,{className:m.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:n,className:[m.inputLabel,o===`glassy`?m.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`select`,{id:n,name:n,disabled:c,className:[m.inputSelectField,o===`glassy`?m.inputSelectFieldGlassy:``,a?m.inputError:``,s??``].filter(Boolean).join(` `),"aria-invalid":!!a,"aria-describedby":a?`${n}-error`:void 0,...l,children:[i&&(0,t.jsx)(`option`,{value:``,disabled:!0,children:i}),r.map(e=>(0,t.jsx)(`option`,{value:e.value,children:e.label},e.value))]}),a&&(0,t.jsx)(`span`,{id:`${n}-error`,className:m.errorMessage,children:a})]})}var g={appLink:`_appLink_b53rv_1`,appLinkDefault:`_appLinkDefault_b53rv_19`,appLinkGlassy:`_appLinkGlassy_b53rv_30`,label:`_label_b53rv_38`,icon:`_icon_b53rv_43`,arrowIcon:`_arrowIcon_b53rv_54`};function _({children:e,href:n,onClick:r,newTab:i=!1,showArrow:a=!0,variant:o=`default`,className:s,...c}){function l(e){n||e.preventDefault(),r?.(e)}return(0,t.jsxs)(`a`,{href:n??`#`,onClick:l,target:n&&i?`_blank`:void 0,rel:n&&i?`noopener noreferrer`:void 0,className:[g.appLink,o===`glassy`?g.appLinkGlassy:g.appLinkDefault,s??``].filter(Boolean).join(` `),...c,children:[(0,t.jsx)(`span`,{className:g.label,children:e}),a&&(0,t.jsx)(`span`,{className:g.icon,"aria-hidden":`true`,children:(0,t.jsx)(v,{})})]})}function v(){return(0,t.jsxs)(`svg`,{className:g.arrowIcon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,t.jsx)(`path`,{d:`M5 12H19`}),(0,t.jsx)(`path`,{d:`M13 6L19 12L13 18`})]})}var y={inputBlockVertical:`_inputBlockVertical_u3s35_1`,inputLabel:`_inputLabel_u3s35_7`,inputLabelGlassy:`_inputLabelGlassy_u3s35_13`,passwordInputWrapper:`_passwordInputWrapper_u3s35_17`,inputTextField:`_inputTextField_u3s35_22`,inputTextFieldGlassy:`_inputTextFieldGlassy_u3s35_34`,inputError:`_inputError_u3s35_56`,togglePasswordButton:`_togglePasswordButton_u3s35_60`,icon:`_icon_u3s35_92`,errorMessage:`_errorMessage_u3s35_101`};function b({label:e,name:r,id:i,error:a,variant:o=`default`,className:s,disabled:c,ref:l,autoComplete:u=`current-password`,...d}){let[f,p]=(0,n.useState)(!1),m=i??r;function h(){p(e=>!e)}return(0,t.jsxs)(`div`,{className:y.inputBlockVertical,children:[e&&(0,t.jsx)(`label`,{htmlFor:m,className:[y.inputLabel,o===`glassy`?y.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`div`,{className:y.passwordInputWrapper,children:[(0,t.jsx)(`input`,{id:m,name:r,ref:l,type:f?`text`:`password`,disabled:c,autoComplete:u,className:[y.inputTextField,o===`glassy`?y.inputTextFieldGlassy:``,a?y.inputError:``,s??``].filter(Boolean).join(` `),"aria-invalid":!!a,"aria-describedby":a?`${r}-error`:void 0,...d}),(0,t.jsx)(`button`,{type:`button`,className:y.togglePasswordButton,onClick:h,disabled:c,"aria-label":f?`Passwort ausblenden`:`Passwort anzeigen`,"aria-pressed":f,children:f?(0,t.jsx)(S,{}):(0,t.jsx)(x,{})})]}),a&&(0,t.jsx)(`span`,{id:`${r}-error`,className:y.errorMessage,children:a})]})}function x(){return(0,t.jsxs)(`svg`,{className:y.icon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:[(0,t.jsx)(`path`,{d:`M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z`}),(0,t.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]})}function S(){return(0,t.jsx)(`svg`,{className:y.icon,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M17.94 17.94A10.94 10.94 0 0 1 12 20C7 20 2.73 16.11 1 12c.74-1.64 1.82-3.06 3.11-4.24m3.52-2.42A10.94 10.94 0 0 1 12 4c5 0 9.27 3.89 11 8-1.1 2.42-2.91 4.5-5.06 5.94M1 1l22 22`})})}var C={inputBlockVertical:`_inputBlockVertical_1xe0h_1`,inputLabel:`_inputLabel_1xe0h_7`,inputLabelGlassy:`_inputLabelGlassy_1xe0h_13`,inputWrapper:`_inputWrapper_1xe0h_17`,inputTextField:`_inputTextField_1xe0h_22`,inputTextFieldGlassy:`_inputTextFieldGlassy_1xe0h_34`,inputError:`_inputError_1xe0h_64`,loading:`_loading_1xe0h_68`,suggestionList:`_suggestionList_1xe0h_77`,suggestionItem:`_suggestionItem_1xe0h_94`,locality:`_locality_1xe0h_114`,emptyState:`_emptyState_1xe0h_118`,successMessage:`_successMessage_1xe0h_129`,errorMessage:`_errorMessage_1xe0h_135`};function w({label:e,name:r,id:i,error:a,variant:o=`default`,className:s,disabled:c,placeholder:l=`z.B. 8001 oder Zürich`,ref:u,onChange:d,onBlur:f,onValueChange:p,onSuggestionSelect:m,...h}){let g=(0,n.useId)(),_=i??`${r}-${g}`,v=(0,n.useRef)(null),y=(0,n.useRef)(!1),[b,x]=(0,n.useState)(``),[S,w]=(0,n.useState)([]),[T,E]=(0,n.useState)(!1),[D,O]=(0,n.useState)(!1),k=b.trim().match(/^(\d+)\s+(.+)$/),A=!!k,j=k?.[1],M=k?.[2],N=A&&S.some(e=>e.postalCode===j&&e.locality===M),P=/^\d+$/.test(b.trim()),F=b.trim().length>=4&&P&&!T,I=F&&S.some(e=>e.postalCode===b.trim()),L=F&&!I;D&&b.trim().length>=4&&S.length,(0,n.useEffect)(()=>{let e=b.trim();if(e.length<2){w([]),O(!1);return}if(y.current){y.current=!1;return}let t=new AbortController;async function n(){E(!0);try{let n=e.match(/^(\d+)\s/),r=n?n[1]:e,i=/^\d+$/.test(r)?`https://openplzapi.org/ch/Localities?postalCode=${r}`:`https://openplzapi.org/ch/Localities?locality=${encodeURIComponent(r)}`,a=await fetch(i,{signal:t.signal});if(!a.ok)throw Error(`Postal-Code-Suche fehlgeschlagen`);let o=await a.json();w(Array.from(new Map(o.map(e=>{let t=`${e.postalCode} ${e.name}`;return[t,{label:t,postalCode:e.postalCode,locality:e.name}]})).values()).slice(0,10)),O(!0)}catch(e){if(t.signal.aborted)return;console.error(e),w([]),O(!0)}finally{t.signal.aborted||E(!1)}}let r=window.setTimeout(n,300);return()=>{window.clearTimeout(r),t.abort()}},[b]);function R(e){v.current=e,typeof u==`function`?u(e):u&&(u.current=e)}function z(e){let t=e.target.value;x(t),p?.(t),d?.(e)}function B(e){y.current=!0,x(e.label),w([]),O(!1),p?.(e.label),m?.(e),v.current&&(v.current.value=e.label,v.current.dispatchEvent(new Event(`input`,{bubbles:!0})))}return(0,t.jsxs)(`div`,{className:C.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:_,className:[C.inputLabel,o===`glassy`?C.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsxs)(`div`,{className:C.inputWrapper,children:[(0,t.jsx)(`input`,{id:_,name:r,ref:R,type:`text`,inputMode:`search`,autoComplete:`postal-code`,disabled:c,placeholder:l,value:b,onChange:z,onBlur:f,className:[C.inputTextField,o===`glassy`?C.inputTextFieldGlassy:``,I||N?C.inputValid:``,L||a?C.inputError:``,s??``].filter(Boolean).join(` `),"aria-invalid":!!a||L,"aria-describedby":a?`${r}-error`:void 0,...h}),T&&(0,t.jsx)(`span`,{className:C.loading,children:`Lädt…`}),S.length>0&&(0,t.jsx)(`ul`,{className:C.suggestionList,children:S.map(e=>(0,t.jsx)(`li`,{children:(0,t.jsxs)(`button`,{type:`button`,className:C.suggestionItem,onMouseDown:e=>e.preventDefault(),onClick:()=>B(e),children:[(0,t.jsx)(`span`,{children:e.postalCode}),(0,t.jsx)(`span`,{className:C.locality,children:e.locality})]})},e.label))}),D&&b.trim().length>=2&&S.length===0&&!T&&!N&&!L&&(0,t.jsx)(`div`,{className:C.emptyState,children:`Keine Schweizer PLZ oder Ortschaft gefunden.`})]}),I&&(0,t.jsx)(`span`,{className:C.successMessage,children:`Gültige Schweizer Postleitzahl`}),N&&(0,t.jsx)(`span`,{className:C.successMessage,children:`Gültige Schweizer Postleitzahl`}),L&&(0,t.jsx)(`span`,{className:C.errorMessage,children:`Diese Schweizer Postleitzahl wurde nicht gefunden.`}),a&&(0,t.jsx)(`span`,{id:`${r}-error`,className:C.errorMessage,children:a})]})}var T={radioGroup:`_radioGroup_cqfjf_1`,radioGroupGlassy:`_radioGroupGlassy_cqfjf_11`,radioLabel:`_radioLabel_cqfjf_15`,radioLabelGlassy:`_radioLabelGlassy_cqfjf_20`,optionGroup:`_optionGroup_cqfjf_24`,optionWrapper:`_optionWrapper_cqfjf_31`,optionWrapperDisabled:`_optionWrapperDisabled_cqfjf_37`,radioInput:`_radioInput_cqfjf_41`,optionButton:`_optionButton_cqfjf_58`,optionTitle:`_optionTitle_cqfjf_81`,optionDescription:`_optionDescription_cqfjf_87`,optionButtonDefault:`_optionButtonDefault_cqfjf_95`,optionButtonGlassy:`_optionButtonGlassy_cqfjf_120`,optionButtonError:`_optionButtonError_cqfjf_165`,errorMessage:`_errorMessage_cqfjf_169`};function E({label:e,name:n,options:r,error:i,variant:a=`default`,className:o,disabled:s,value:c,defaultValue:l,onChange:u,...d}){let f=c!==void 0;return(0,t.jsxs)(`fieldset`,{className:[T.radioGroup,a===`glassy`?T.radioGroupGlassy:``,o??``].filter(Boolean).join(` `),"aria-invalid":!!i,"aria-describedby":i?`${n}-error`:void 0,children:[e&&(0,t.jsx)(`legend`,{className:[T.radioLabel,a===`glassy`?T.radioLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsx)(`div`,{className:T.optionGroup,children:r.map(e=>{let r=f?{checked:c===e.value}:{defaultChecked:l===e.value};return(0,t.jsxs)(`label`,{className:[T.optionWrapper,s?T.optionWrapperDisabled:``].filter(Boolean).join(` `),children:[(0,t.jsx)(`input`,{type:`radio`,name:n,value:e.value,disabled:s,className:T.radioInput,onChange:u,...r,...d}),(0,t.jsxs)(`span`,{className:[T.optionButton,a===`glassy`?T.optionButtonGlassy:T.optionButtonDefault,i?T.optionButtonError:``].filter(Boolean).join(` `),children:[(0,t.jsx)(`span`,{className:T.optionTitle,children:e.label}),e.description&&(0,t.jsx)(`span`,{className:T.optionDescription,children:e.description})]})]},e.value)})}),i&&(0,t.jsx)(`span`,{id:`${n}-error`,className:T.errorMessage,children:i})]})}var D={switchWrapper:`_switchWrapper_14rch_1`,switchCheckbox:`_switchCheckbox_14rch_7`,switchLabel:`_switchLabel_14rch_15`,switchLabelDefault:`_switchLabelDefault_14rch_24`,switchLabelGlassy:`_switchLabelGlassy_14rch_28`,switchBackground:`_switchBackground_14rch_37`,switchBackgroundDefault:`_switchBackgroundDefault_14rch_56`,switchBackgroundGlassy:`_switchBackgroundGlassy_14rch_66`,switchButton:`_switchButton_14rch_77`,iconChecked:`_iconChecked_14rch_163`,iconUnchecked:`_iconUnchecked_14rch_164`,switchText:`_switchText_14rch_200`,errorMessage:`_errorMessage_14rch_206`};function O({name:e,id:n,label:r,error:i,variant:a=`default`,className:o,disabled:s,...c}){let l=n??`${e}-switch`;return(0,t.jsxs)(`div`,{className:[D.switchWrapper,o??``].filter(Boolean).join(` `),children:[(0,t.jsx)(`input`,{id:l,name:e,type:`checkbox`,disabled:s,className:D.switchCheckbox,"aria-invalid":!!i,"aria-describedby":i?`${e}-error`:void 0,...c}),(0,t.jsxs)(`label`,{htmlFor:l,className:[D.switchLabel,a===`glassy`?D.switchLabelGlassy:D.switchLabelDefault].filter(Boolean).join(` `),children:[(0,t.jsx)(`span`,{className:[D.switchBackground,a===`glassy`?D.switchBackgroundGlassy:D.switchBackgroundDefault].filter(Boolean).join(` `),children:(0,t.jsxs)(`span`,{className:D.switchButton,"aria-hidden":`true`,children:[(0,t.jsx)(`span`,{className:D.iconChecked,children:(0,t.jsx)(k,{})}),(0,t.jsx)(`span`,{className:D.iconUnchecked,children:(0,t.jsx)(A,{})})]})}),r&&(0,t.jsx)(`span`,{className:D.switchText,children:r})]}),i&&(0,t.jsx)(`span`,{id:`${e}-error`,className:D.errorMessage,children:i})]})}function k(){return(0,t.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 12 12`,fill:`none`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M3 6.5L5.5 9L9 3`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})})}function A(){return(0,t.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 12 12`,fill:`none`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M3 3L9 9M9 3L3 9`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`})})}var j={inputBlockVertical:`_inputBlockVertical_1khad_1`,inputLabel:`_inputLabel_1khad_8`,inputLabelGlassy:`_inputLabelGlassy_1khad_14`,inputTextField:`_inputTextField_1khad_20`,inputTextFieldGlassy:`_inputTextFieldGlassy_1khad_37`,inputError:`_inputError_1khad_59`,errorMessage:`_errorMessage_1khad_63`};function M({label:e,name:n,error:r,placeholder:i,variant:a=`default`,className:o,ref:s,...c}){return(0,t.jsxs)(`div`,{className:j.inputBlockVertical,children:[(0,t.jsx)(`label`,{htmlFor:n,className:[j.inputLabel,a===`glassy`?j.inputLabelGlassy:``].filter(Boolean).join(` `),children:e}),(0,t.jsx)(`input`,{id:n,name:n,ref:s,placeholder:i,className:[j.inputTextField,a===`glassy`?j.inputTextFieldGlassy:``,r?j.inputError:``,o??``].filter(Boolean).join(` `),"aria-invalid":!!r,"aria-describedby":r?`${n}-error`:void 0,...c}),r&&(0,t.jsx)(`span`,{id:`${n}-error`,className:j.errorMessage,children:r})]})}var N={wrapper:`_wrapper_1jqlw_1`,label:`_label_1jqlw_7`,labelGlassy:`_labelGlassy_1jqlw_13`,dropzone:`_dropzone_1jqlw_17`,dropzoneGlassy:`_dropzoneGlassy_1jqlw_32`,dragOver:`_dragOver_1jqlw_39`,errorState:`_errorState_1jqlw_48`,disabled:`_disabled_1jqlw_52`,hiddenInput:`_hiddenInput_1jqlw_57`,dropzoneContent:`_dropzoneContent_1jqlw_65`,placeholder:`_placeholder_1jqlw_74`,big:`_big_1jqlw_80`,small:`_small_1jqlw_86`,hint:`_hint_1jqlw_91`,selected:`_selected_1jqlw_111`,preview:`_preview_1jqlw_118`,fileMeta:`_fileMeta_1jqlw_127`,fileName:`_fileName_1jqlw_134`,fileSize:`_fileSize_1jqlw_142`,remove:`_remove_1jqlw_156`,errorMessage:`_errorMessage_1jqlw_198`};function P({label:e,name:r,id:i,file:a,error:o,variant:s=`default`,accept:c=`image/*`,maxSizeBytes:l=5*1024*1024,disabled:u,className:d,onChange:f,onFileChange:p,...m}){let h=(0,n.useId)(),g=i??`${r}-${h}`,[_,v]=(0,n.useState)(!1),[y,b]=(0,n.useState)(a??null),x=a!==void 0,S=x?a:y,C=(0,n.useMemo)(()=>!S||!S.type.startsWith(`image/`)?null:URL.createObjectURL(S),[S]);(0,n.useEffect)(()=>{x&&b(a??null)},[a,x]),(0,n.useEffect)(()=>()=>{C&&URL.revokeObjectURL(C)},[C]);function w(e){return!e||(c===`image/*`||c.startsWith(`image/`))&&!e.type.startsWith(`image/`)||l&&e.size>l?null:e}function T(e){let t=w(e);x||b(t),p?.(t)}function E(e){T(e.target.files?.[0]??null),f?.(e)}function D(e){e.preventDefault(),e.stopPropagation(),u||v(!0)}function O(e){e.preventDefault(),e.stopPropagation(),!e.currentTarget.contains(e.relatedTarget)&&v(!1)}function k(e){e.preventDefault(),e.stopPropagation(),v(!1),!u&&T(e.dataTransfer.files?.[0]??null)}function A(){x||b(null),p?.(null)}let j=Math.round(l/(1024*1024));return(0,t.jsxs)(`div`,{className:[N.wrapper,d??``].filter(Boolean).join(` `),children:[(0,t.jsx)(`label`,{className:[N.label,s===`glassy`?N.labelGlassy:``].filter(Boolean).join(` `),htmlFor:g,children:e}),(0,t.jsxs)(`div`,{className:[N.dropzone,s===`glassy`?N.dropzoneGlassy:``,_?N.dragOver:``,o?N.errorState:``,u?N.disabled:``].filter(Boolean).join(` `),onDragOver:D,onDragLeave:O,onDrop:k,children:[(0,t.jsx)(`input`,{id:g,name:r,className:N.hiddenInput,type:`file`,accept:c,disabled:u,onChange:E,"aria-invalid":!!o,"aria-describedby":o?`${r}-error`:void 0,...m}),(0,t.jsx)(`label`,{htmlFor:g,className:N.dropzoneContent,children:S?(0,t.jsxs)(`span`,{className:N.selected,children:[C&&(0,t.jsx)(`img`,{className:N.preview,src:C,alt:`Vorschau von ${S.name}`}),(0,t.jsxs)(`span`,{className:N.fileMeta,children:[(0,t.jsx)(`span`,{className:N.fileName,children:S.name}),(0,t.jsxs)(`span`,{className:N.fileSize,children:[(S.size/1024).toFixed(0),` KB ·`,` `,S.type||`unknown`]})]})]}):(0,t.jsxs)(`span`,{className:N.placeholder,children:[(0,t.jsx)(`span`,{className:N.big,children:`Datei hier reinziehen`}),(0,t.jsx)(`span`,{className:N.small,children:`…oder klicken, um auszuwählen`}),(0,t.jsxs)(`span`,{className:N.hint,children:[`Erlaubt: `,c,` · max. `,j,` MB`]})]})}),S&&(0,t.jsx)(`button`,{type:`button`,className:N.remove,onClick:A,disabled:u,children:`Entfernen`})]}),o&&(0,t.jsx)(`span`,{id:`${r}-error`,className:N.errorMessage,children:o})]})}e.Button=i,e.Checkbox=o,e.Chip=c,e.DatePicker=u,e.Dropdown=h,e.Link=_,e.Password=b,e.PostalCode=w,e.RadioButton=E,e.Switch=O,e.TextField=M,e.Upload=P});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "suus-component-library",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "main": "./dist/suus-component-library.umd.cjs",
6
6
  "module": "./dist/suus-component-library.js",
@@ -32,6 +32,7 @@
32
32
  },
33
33
  "devDependencies": {
34
34
  "@eslint/js": "^10.0.1",
35
+ "@storybook/addon-docs": "^10.4.1",
35
36
  "@storybook/react-vite": "^10.3.6",
36
37
  "@types/react": "latest",
37
38
  "@types/react-dom": "latest",
@@ -50,6 +51,6 @@
50
51
  },
51
52
  "dependencies": {
52
53
  "msw": "^2.14.6",
53
- "suus-design-tokens": "^1.0.13"
54
+ "suus-design-tokens": "^1.0.18"
54
55
  }
55
56
  }