@obosbbl/grunnmuren-react 1.14.10 → 1.14.11

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 (2) hide show
  1. package/dist/grunnmuren.mjs +128 -129
  2. package/package.json +1 -1
@@ -3,13 +3,13 @@ import { jsx as o, jsxs as f, Fragment as O } from "react/jsx-runtime";
3
3
  import { createContext as y, useContext as A, useState as q, useCallback as N, useEffect as fe, useId as ee, forwardRef as h, Children as Z, isValidElement as W, cloneElement as K, useRef as E, useMemo as C, useReducer as ge } from "react";
4
4
  import { ChevronDown as te, Warning as re, InfoCircle as ne, LoadingSpinner as he, CheckCircle as pe, MenuAlt as Ae, Close as xe, ChevronRight as ve, ChevronLeft as Ne } from "@obosbbl/grunnmuren-icons";
5
5
  import { useCollapse as ye } from "react-collapsed";
6
- import c from "clsx";
6
+ import d from "clsx";
7
7
  import { useMediaQuery as ae, useUpdateEffect as we } from "@react-hookz/web";
8
8
  import { mergeRefs as X } from "react-merge-refs";
9
9
  const I = () => {
10
10
  }, Ie = 300, Ce = "duration-300", Y = (e) => {
11
11
  const { className: r, ...t } = e;
12
- return /* @__PURE__ */ o("div", { className: c(r, "flex flex-col gap-2"), ...t });
12
+ return /* @__PURE__ */ o("div", { className: d(r, "flex flex-col gap-2"), ...t });
13
13
  }, Q = y({
14
14
  isExpanded: !1,
15
15
  setExpanded: I,
@@ -28,7 +28,7 @@ const I = () => {
28
28
  return /* @__PURE__ */ o(Q.Provider, { value: { onChange: n, ...i }, children: /* @__PURE__ */ o(
29
29
  "div",
30
30
  {
31
- className: c(
31
+ className: d(
32
32
  r,
33
33
  "rounded-sm border-b-2 border-l-4 border-solid",
34
34
  i.isExpanded ? "border-l-green-dark" : "border-l-green"
@@ -37,11 +37,11 @@ const I = () => {
37
37
  }
38
38
  ) });
39
39
  }, Se = (e) => {
40
- const { children: r, className: t, as: n = "h3", ...a } = e, { getToggleProps: s, onChange: i, isExpanded: d } = A(Q), u = s({ onClick: () => i(!d) });
40
+ const { children: r, className: t, as: n = "h3", ...a } = e, { getToggleProps: s, onChange: i, isExpanded: c } = A(Q), u = s({ onClick: () => i(!c) });
41
41
  return /* @__PURE__ */ o(n, { children: /* @__PURE__ */ f(
42
42
  "button",
43
43
  {
44
- className: c(
44
+ className: d(
45
45
  t,
46
46
  "focus-visible:outline-blue-dark aria-expanded:bg-green-dark group flex min-h-[4rem] w-full items-center justify-between px-5 py-4 text-left text-lg font-semibold focus:outline-none focus-visible:outline-4 focus-visible:outline-offset-0 aria-expanded:text-white"
47
47
  ),
@@ -61,17 +61,17 @@ const I = () => {
61
61
  ) });
62
62
  }, Re = (e) => {
63
63
  const { getCollapseProps: r } = A(Q), { className: t, ...n } = e, a = r();
64
- return /* @__PURE__ */ o("div", { ...a, "aria-labelledby": oe(a.id), children: /* @__PURE__ */ o("div", { className: c(t, "p-5 pb-10"), ...n }) });
64
+ return /* @__PURE__ */ o("div", { ...a, "aria-labelledby": oe(a.id), children: /* @__PURE__ */ o("div", { className: d(t, "p-5 pb-10"), ...n }) });
65
65
  }, oe = (e) => e + "toggle";
66
66
  Y.Item = Ee;
67
67
  Y.Header = Se;
68
68
  Y.Content = Re;
69
- const ct = (e) => {
69
+ const dt = (e) => {
70
70
  const { className: r, children: t, heading: n, severity: a = "alert", ...s } = e;
71
71
  return /* @__PURE__ */ o(
72
72
  "section",
73
73
  {
74
- className: c(r, "p-4 md:py-8", {
74
+ className: d(r, "p-4 md:py-8", {
75
75
  "bg-orange-light": a === "info",
76
76
  "bg-red-light": a === "alert"
77
77
  }),
@@ -92,7 +92,7 @@ const ct = (e) => {
92
92
  ] })
93
93
  }
94
94
  );
95
- }, ke = ({ severity: e, className: r }) => e === "alert" ? /* @__PURE__ */ o(re, { className: c(r, "text-red") }) : /* @__PURE__ */ o(ne, { className: c(r, "text-orange") }), qe = "(prefers-reduced-motion: reduce)", dt = (e = !1) => ae(qe, { initializeWithValue: e });
95
+ }, ke = ({ severity: e, className: r }) => e === "alert" ? /* @__PURE__ */ o(re, { className: d(r, "text-red") }) : /* @__PURE__ */ o(ne, { className: d(r, "text-orange") }), qe = "(prefers-reduced-motion: reduce)", ct = (e = !1) => ae(qe, { initializeWithValue: e });
96
96
  function se(e) {
97
97
  switch (e) {
98
98
  case "gray":
@@ -111,7 +111,7 @@ const Pe = (e) => ae("(max-width: 767.9px)", { initializeWithValue: e });
111
111
  function P(e, r = !0) {
112
112
  const [t, n] = q("indeterminate"), [a, s] = q(), i = N((l) => {
113
113
  l.target.checkValidity() && (n("valid"), s(void 0));
114
- }, []), d = N(
114
+ }, []), c = N(
115
115
  (l) => {
116
116
  t !== "indeterminate" && l.target.checkValidity() && (n("valid"), s(void 0));
117
117
  },
@@ -125,10 +125,10 @@ function P(e, r = !0) {
125
125
  var m;
126
126
  const { current: l } = e;
127
127
  return r && // @ts-expect-error respect the <form noValidate> attribute if we are rendered inside a form
128
- ((m = l == null ? void 0 : l.form) == null ? void 0 : m.noValidate) !== !0 && (l == null || l.addEventListener("blur", i), l == null || l.addEventListener("input", d), l == null || l.addEventListener("invalid", u)), () => {
129
- l == null || l.removeEventListener("blur", i), l == null || l.removeEventListener("input", d), l == null || l.removeEventListener("invalid", u);
128
+ ((m = l == null ? void 0 : l.form) == null ? void 0 : m.noValidate) !== !0 && (l == null || l.addEventListener("blur", i), l == null || l.addEventListener("input", c), l == null || l.addEventListener("invalid", u)), () => {
129
+ l == null || l.removeEventListener("blur", i), l == null || l.removeEventListener("input", c), l == null || l.removeEventListener("invalid", u);
130
130
  };
131
- }, [r, d]), { validity: t, validationMessage: a };
131
+ }, [r, c]), { validity: t, validationMessage: a };
132
132
  }
133
133
  function S(e) {
134
134
  const r = ee();
@@ -142,8 +142,8 @@ const mt = (e) => {
142
142
  heading: a,
143
143
  image: s,
144
144
  ...i
145
- } = e, d = se(r);
146
- return /* @__PURE__ */ o("article", { className: c(t, d, "px-4 py-8 md:py-14"), ...i, children: /* @__PURE__ */ f("div", { className: "container flex flex-col justify-center gap-4 md:flex-row md:gap-12", children: [
145
+ } = e, c = se(r);
146
+ return /* @__PURE__ */ o("article", { className: d(t, c, "px-4 py-8 md:py-14"), ...i, children: /* @__PURE__ */ f("div", { className: "container flex flex-col justify-center gap-4 md:flex-row md:gap-12", children: [
147
147
  s,
148
148
  /* @__PURE__ */ f("div", { className: "max-w-prose", children: [
149
149
  a && /* @__PURE__ */ o("h2", { className: "h3 mb-4", children: a }),
@@ -174,10 +174,10 @@ const mt = (e) => {
174
174
  color: a,
175
175
  href: s,
176
176
  loading: i,
177
- type: d = "button",
177
+ type: c = "button",
178
178
  variant: u = "primary",
179
179
  ...l
180
- } = e, m = A(L), b = Le[`${a ?? m}-${u}`], p = c(n, b, "button"), x = i ? /* @__PURE__ */ o(Me, { children: t }) : t;
180
+ } = e, m = A(L), b = Le[`${a ?? m}-${u}`], p = d(n, b, "button"), x = i ? /* @__PURE__ */ o(Me, { children: t }) : t;
181
181
  return /* @__PURE__ */ o(O, { children: s ? /* @__PURE__ */ o(
182
182
  "a",
183
183
  {
@@ -193,7 +193,7 @@ const mt = (e) => {
193
193
  {
194
194
  "aria-busy": i ? !0 : void 0,
195
195
  ...l,
196
- type: d,
196
+ type: c,
197
197
  ref: r,
198
198
  className: p,
199
199
  children: x
@@ -230,16 +230,16 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
230
230
  className: a,
231
231
  image: s,
232
232
  rightAlignBody: i = !0,
233
- ...d
233
+ ...c
234
234
  } = e;
235
235
  return /* @__PURE__ */ f(
236
236
  t,
237
237
  {
238
- className: c(
238
+ className: d(
239
239
  a,
240
240
  "grid gap-8 md:grid-flow-col md:grid-cols-[50%,50%] md:gap-0"
241
241
  ),
242
- ...d,
242
+ ...c,
243
243
  ref: r,
244
244
  children: [
245
245
  /* @__PURE__ */ o(le.Provider, { value: i, children: s }),
@@ -253,7 +253,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
253
253
  return /* @__PURE__ */ o(
254
254
  "div",
255
255
  {
256
- className: c(t, "md:mx-18 self-center"),
256
+ className: d(t, "md:mx-18 self-center"),
257
257
  ref: r,
258
258
  ...n
259
259
  }
@@ -261,14 +261,14 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
261
261
  }
262
262
  ), Fe = h(
263
263
  (e, r) => {
264
- const { className: t, children: n, ...a } = e, s = A(le), i = c(
264
+ const { className: t, children: n, ...a } = e, s = A(le), i = d(
265
265
  t,
266
- "max-md:rounded-b-3xl w-full",
267
- s ? "md:rounded-r-3xl" : "md:rounded-l-3xl md:order-1"
266
+ "rounded-b-3xl w-full",
267
+ s ? "md:rounded-r-3xl md:rounded-l-none" : "md:rounded-l-3xl md:rounded-r-none md:order-1"
268
268
  );
269
269
  if (W(n)) {
270
- const d = Z.only(n);
271
- return K(d, {
270
+ const c = Z.only(n);
271
+ return K(c, {
272
272
  // @ts-expect-error assume className prop is allowed
273
273
  className: i,
274
274
  ref: r,
@@ -290,7 +290,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
290
290
  return /* @__PURE__ */ o(
291
291
  t,
292
292
  {
293
- className: c(n, "relative overflow-hidden rounded-3xl", {
293
+ className: d(n, "relative overflow-hidden rounded-3xl", {
294
294
  "border-2 border-solid bg-white": a === "white",
295
295
  "bg-gray-light": a === "gray"
296
296
  }),
@@ -304,7 +304,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
304
304
  return /* @__PURE__ */ o(
305
305
  "img",
306
306
  {
307
- className: c(t, "w-full object-cover"),
307
+ className: d(t, "w-full object-cover"),
308
308
  loading: "lazy",
309
309
  ...n,
310
310
  ref: r
@@ -314,7 +314,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
314
314
  ), pt = h(
315
315
  (e, r) => {
316
316
  const { bgColor: t, className: n, ...a } = e, s = se(t);
317
- return /* @__PURE__ */ o("div", { className: c(s, n), children: /* @__PURE__ */ o(
317
+ return /* @__PURE__ */ o("div", { className: d(s, n), children: /* @__PURE__ */ o(
318
318
  "div",
319
319
  {
320
320
  className: "container grid grid-cols-1 gap-12 py-16 md:grid-cols-2 md:py-20 lg:py-24",
@@ -326,14 +326,14 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
326
326
  ), At = h(
327
327
  (e, r) => {
328
328
  const { className: t, ...n } = e;
329
- return /* @__PURE__ */ o("div", { className: c(t, "p-8 md:px-10"), ...n, ref: r });
329
+ return /* @__PURE__ */ o("div", { className: d(t, "p-8 md:px-10"), ...n, ref: r });
330
330
  }
331
331
  ), xt = h((e, r) => {
332
332
  const { className: t, ...n } = e;
333
333
  return /* @__PURE__ */ o(
334
334
  "a",
335
335
  {
336
- className: c(
336
+ className: d(
337
337
  t,
338
338
  "no-underline before:absolute before:left-0 before:top-0 before:block before:h-full before:w-full hover:underline"
339
339
  ),
@@ -349,18 +349,18 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
349
349
  error: a,
350
350
  id: s,
351
351
  disableValidation: i = !1,
352
- ...d
352
+ ...c
353
353
  } = e, u = E(null), { validity: l, validationMessage: m } = P(
354
354
  u,
355
355
  !i
356
356
  ), g = S(s), b = g + "err", p = a || m;
357
357
  return /* @__PURE__ */ f("div", { className: "grid gap-2", children: [
358
- /* @__PURE__ */ f("label", { className: c(n, "flex cursor-pointer gap-2.5"), children: [
358
+ /* @__PURE__ */ f("label", { className: d(n, "flex cursor-pointer gap-2.5"), children: [
359
359
  /* @__PURE__ */ o(
360
360
  "input",
361
361
  {
362
362
  id: g,
363
- className: c(
363
+ className: d(
364
364
  "checkbox checked:bg-green checked:border-green grid h-[1.25em] w-[1.25em] flex-none translate-y-[0.1em] cursor-pointer appearance-none place-content-center rounded border-2 border-solid bg-white text-white focus:outline-none focus:ring-2",
365
365
  {
366
366
  "border-gray-dark focus:ring-black": !a,
@@ -369,7 +369,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
369
369
  ),
370
370
  ref: r,
371
371
  type: "checkbox",
372
- ...d,
372
+ ...c,
373
373
  "aria-describedby": p ? b : void 0,
374
374
  "aria-invalid": !!a || l === "invalid"
375
375
  }
@@ -394,21 +394,21 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
394
394
  "green-light": "text-green",
395
395
  "blue-light": "text-blue-dark"
396
396
  }, Nt = (e) => {
397
- const { className: r, color: t, icon: n, children: a, variant: s = "filled" } = e, i = t && je[t], d = t && Oe[t];
397
+ const { className: r, color: t, icon: n, children: a, variant: s = "filled" } = e, i = t && je[t], c = t && Oe[t];
398
398
  return /* @__PURE__ */ f(
399
399
  "div",
400
400
  {
401
- className: c(
401
+ className: d(
402
402
  "inline-flex items-center gap-0.5 overflow-hidden rounded-lg border-2 text-sm font-semibold",
403
403
  i,
404
404
  r
405
405
  ),
406
406
  children: [
407
- n && /* @__PURE__ */ o("div", { className: c("px-3 py-2", d), children: n }),
407
+ n && /* @__PURE__ */ o("div", { className: d("px-3 py-2", c), children: n }),
408
408
  /* @__PURE__ */ o(
409
409
  "div",
410
410
  {
411
- className: c("flex-1 px-4 py-2", {
411
+ className: d("flex-1 px-4 py-2", {
412
412
  "bg-white": s === "outline"
413
413
  }),
414
414
  children: a
@@ -422,7 +422,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
422
422
  return /* @__PURE__ */ o(L.Provider, { value: "white", children: /* @__PURE__ */ o(
423
423
  "footer",
424
424
  {
425
- className: c(
425
+ className: d(
426
426
  r,
427
427
  // calculated height for psuedo element fixes rendering artifict that sometimes occurs on specific screen sizes and zoom levels
428
428
  "bg-blue pt-18 relative pb-12 text-white before:absolute before:-top-px before:left-0 before:right-0 before:h-[calc(1.5rem_+_1px)] before:rounded-b-3xl before:bg-white "
@@ -436,7 +436,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
436
436
  return /* @__PURE__ */ f(
437
437
  "form",
438
438
  {
439
- className: c(
439
+ className: d(
440
440
  n,
441
441
  "border-blue-dark block overflow-hidden rounded-b-lg rounded-t-3xl border-2"
442
442
  ),
@@ -452,7 +452,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
452
452
  return /* @__PURE__ */ o(
453
453
  "h2",
454
454
  {
455
- className: c(
455
+ className: d(
456
456
  r,
457
457
  "bg-blue-dark p-6 text-xl font-bold text-white md:px-10 md:py-8 md:text-2xl"
458
458
  ),
@@ -465,7 +465,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
465
465
  "div",
466
466
  {
467
467
  "aria-live": "polite",
468
- className: c(
468
+ className: d(
469
469
  r,
470
470
  "border-red bg-red-light rounded-lg border-2 p-6 text-sm"
471
471
  ),
@@ -478,7 +478,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
478
478
  return /* @__PURE__ */ f(
479
479
  "div",
480
480
  {
481
- className: c(
481
+ className: d(
482
482
  t,
483
483
  "bg-red-light flex items-center gap-2 rounded px-2 py-1 text-sm text-[#C03850]"
484
484
  ),
@@ -492,19 +492,19 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
492
492
  );
493
493
  }, M = (e) => {
494
494
  const { className: r, children: t, ...n } = e;
495
- return /* @__PURE__ */ o("div", { className: c(r, "text-gray-dark text-sm"), ...n, children: t });
495
+ return /* @__PURE__ */ o("div", { className: d(r, "text-gray-dark text-sm"), ...n, children: t });
496
496
  }, z = (e) => {
497
497
  const { className: r, children: t, isRequired: n, isInvalid: a, ...s } = e;
498
498
  return /* @__PURE__ */ f(
499
499
  "label",
500
500
  {
501
- className: c(r, "block cursor-pointer font-semibold"),
501
+ className: d(r, "block cursor-pointer font-semibold"),
502
502
  ...s,
503
503
  children: [
504
504
  n && /* @__PURE__ */ o(
505
505
  "span",
506
506
  {
507
- className: c(
507
+ className: d(
508
508
  "mr-1 select-none",
509
509
  a ? "text-red" : "text-blue"
510
510
  ),
@@ -520,7 +520,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
520
520
  return /* @__PURE__ */ f(
521
521
  "div",
522
522
  {
523
- className: c(
523
+ className: d(
524
524
  r,
525
525
  "bg-gray-lightest flex flex-col gap-8 p-8 text-center"
526
526
  ),
@@ -549,7 +549,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
549
549
  type: "button",
550
550
  "aria-disabled": t,
551
551
  onClick: a,
552
- className: c(
552
+ className: d(
553
553
  r,
554
554
  "border-blue-dark w-full rounded-t-lg border-2 py-4 pl-4 md:py-8 ",
555
555
  {
@@ -592,7 +592,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
592
592
  return /* @__PURE__ */ f(
593
593
  "h2",
594
594
  {
595
- className: c(
595
+ className: d(
596
596
  "grid grid-cols-[auto_1fr] grid-rows-[1fr_auto] items-center text-left text-xl font-bold md:text-2xl",
597
597
  {
598
598
  "text-white": !r
@@ -602,7 +602,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
602
602
  /* @__PURE__ */ o(
603
603
  "div",
604
604
  {
605
- className: c(
605
+ className: d(
606
606
  "row-span-2 mr-4 flex h-10 w-10 items-center justify-center self-center rounded-full border-2 font-bold md:h-12 md:w-12",
607
607
  {
608
608
  "border-white text-white": !r,
@@ -618,7 +618,7 @@ const L = y("standard"), le = y(!0), ze = (e, r) => {
618
618
  r && /* @__PURE__ */ o(
619
619
  "div",
620
620
  {
621
- className: c(
621
+ className: d(
622
622
  "text-base font-normal",
623
623
  a === "completed" ? "text-white" : "text-black"
624
624
  ),
@@ -648,26 +648,26 @@ function Xe(e) {
648
648
  const [r, t] = A(U), n = N(async () => {
649
649
  t({ type: "PREV_STEP" });
650
650
  }, [t]), a = N(
651
- (d) => {
651
+ (c) => {
652
652
  t({
653
653
  type: "SET_FORM_STEP_DATA",
654
654
  formId: `form${e}`,
655
- formValues: d
655
+ formValues: c
656
656
  });
657
657
  },
658
658
  [t, e]
659
659
  ), s = N(() => {
660
660
  t({ type: "NEXT_STEP" });
661
661
  }, [t]), i = N(
662
- (d) => {
663
- a(d), s();
662
+ (c) => {
663
+ a(c), s();
664
664
  },
665
665
  [s, a]
666
666
  );
667
667
  return {
668
668
  isActive: r.activeStep === e,
669
669
  activeStep: r.activeStep,
670
- setActiveStep: (d) => t({ type: "SET_STEP", step: d }),
670
+ setActiveStep: (c) => t({ type: "SET_STEP", step: c }),
671
671
  previousFormStep: n,
672
672
  nextFormStep: s,
673
673
  submitAndNextFormStep: i,
@@ -717,18 +717,18 @@ const Rt = (e) => {
717
717
  formStatus: a = "blank",
718
718
  onSubmit: s,
719
719
  className: i,
720
- onHeaderClick: d,
720
+ onHeaderClick: c,
721
721
  ...u
722
722
  } = e, { isActive: l, setActiveStep: m, activeStep: g } = Xe(n), b = E(null), p = N(() => {
723
- n < g && (d == null || d(n), m(n));
724
- }, [g, n, m, d]);
723
+ n < g && (c == null || c(n), m(n));
724
+ }, [g, n, m, c]);
725
725
  return we(() => {
726
726
  var x;
727
727
  l && ((x = b.current) == null || x.scrollIntoView({ behavior: "smooth" }));
728
728
  }, [l]), /* @__PURE__ */ f(
729
729
  "form",
730
730
  {
731
- className: c("block", i, {
731
+ className: d("block", i, {
732
732
  "border-none": a === "completed" && !l
733
733
  }),
734
734
  onSubmit: s,
@@ -750,7 +750,7 @@ const Rt = (e) => {
750
750
  }
751
751
  );
752
752
  };
753
- function ce(e) {
753
+ function de(e) {
754
754
  return e !== "vertical-split" && e !== "below-center" && e !== "below-left";
755
755
  }
756
756
  const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 }), kt = h((e, r) => {
@@ -760,7 +760,7 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
760
760
  className: a,
761
761
  contentPosition: s = "below-center",
762
762
  image: i,
763
- ...d
763
+ ...c
764
764
  } = e, u = i != null, l = u ? s : "below-center", m = C(
765
765
  () => ({
766
766
  bgColor: t,
@@ -776,7 +776,7 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
776
776
  children: /* @__PURE__ */ o(V.Provider, { value: m, children: /* @__PURE__ */ f(
777
777
  "div",
778
778
  {
779
- className: c(
779
+ className: d(
780
780
  a,
781
781
  // disable padding on small screens so the hero image is flush with the screen edges
782
782
  "container px-0 md:grid lg:px-4",
@@ -784,8 +784,8 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
784
784
  "md:grid-cols-[50%,50%]": l === "vertical-split"
785
785
  }
786
786
  ),
787
- style: ce(l) ? { gridTemplateAreas: '"hero"' } : void 0,
788
- ...d,
787
+ style: de(l) ? { gridTemplateAreas: '"hero"' } : void 0,
788
+ ...c,
789
789
  ref: r,
790
790
  children: [
791
791
  i,
@@ -801,7 +801,7 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
801
801
  return /* @__PURE__ */ f(
802
802
  "picture",
803
803
  {
804
- className: c(e.className, "aspect-w-6 aspect-h-7 block", {
804
+ className: d(e.className, "aspect-w-6 aspect-h-7 block", {
805
805
  "sm:aspect-w-8 sm:aspect-h-4": t !== "vertical-split",
806
806
  // calculate a square aspect ratio
807
807
  "sm:aspect-w-8 sm:aspect-h-8": t === "vertical-split"
@@ -825,28 +825,27 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
825
825
  }
826
826
  ), Pt = h(
827
827
  (e, r) => {
828
- const { bgColor: t, contentPosition: n, hasImage: a } = A(V), { children: s, className: i, heading: d, description: u, ...l } = e, m = ce(n);
828
+ const { bgColor: t, contentPosition: n, hasImage: a } = A(V), { children: s, className: i, heading: c, description: u, ...l } = e, m = de(n);
829
829
  return /* @__PURE__ */ f(
830
830
  "div",
831
831
  {
832
- className: c(
832
+ className: d(
833
833
  i,
834
- "relative grid grid-flow-row grid-cols-[minmax(auto,_37rem)] content-center gap-6 rounded-3xl px-6 py-10 text-center max-md:mx-4 md:p-12",
834
+ "relative mx-4 grid grid-flow-row grid-cols-[minmax(auto,_37rem)] content-center gap-6 rounded-3xl px-6 py-10 text-center md:p-12",
835
835
  {
836
836
  // On mobile we use negative margin on the content to pull the content up into the image
837
- "max-md:-mt-18": a,
837
+ "-mt-18": a,
838
838
  "text-white": t !== "white",
839
839
  "bg-green-dark": t === "green",
840
840
  "bg-blue-dark": t === "blue",
841
841
  "bg-white": t === "white",
842
842
  // vertical split
843
843
  // vertically center the content, remove the border radius on the edge, add some negative margin to pull the image beneath the hero content, left align the content
844
- "md:z-10 md:-order-1 md:-mr-5 md:mt-0 md:justify-center md:rounded-l-none md:text-left": n === "vertical-split",
844
+ "md:z-10 md:-order-1 md:-mr-5 md:ml-0 md:mt-0 md:justify-center md:rounded-l-none md:text-left": n === "vertical-split",
845
845
  // below center/content header
846
846
  "justify-center md:mx-auto md:w-4/5": n === "below-center",
847
- "md:-mt-18": a && n === "below-center",
848
847
  // Below left style
849
- "md:-mt-32 md:ml-[8%] md:max-w-[58%] md:text-left": n === "below-left",
848
+ "md:-mt-32 md:ml-[8%] md:mr-0 md:max-w-[58%] md:text-left": n === "below-left",
850
849
  // styles for when the contain is fully contained within the image
851
850
  "md:mx-32 md:my-9 md:w-2/5": m,
852
851
  "self-end justify-self-start": n === "bottom-left",
@@ -860,7 +859,7 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
860
859
  style: m ? { gridArea: "hero" } : void 0,
861
860
  ref: r,
862
861
  children: [
863
- /* @__PURE__ */ o("h1", { children: d }),
862
+ /* @__PURE__ */ o("h1", { children: c }),
864
863
  u && /* @__PURE__ */ o("p", { className: "text-lg font-semibold md:text-xl", children: u }),
865
864
  s
866
865
  ]
@@ -873,7 +872,7 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
873
872
  return /* @__PURE__ */ o(
874
873
  "div",
875
874
  {
876
- className: c(
875
+ className: d(
877
876
  t,
878
877
  "grid items-center justify-center justify-items-center gap-4 md:grid-flow-col",
879
878
  // Left align actions/buttons
@@ -886,21 +885,21 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
886
885
  }
887
886
  );
888
887
  }
889
- ), de = h((e, r) => {
888
+ ), ce = h((e, r) => {
890
889
  const {
891
890
  className: t,
892
891
  isInvalid: n,
893
892
  size: a,
894
893
  as: s,
895
894
  type: i,
896
- rightAddon: d,
895
+ rightAddon: c,
897
896
  leftAddon: u,
898
897
  ...l
899
898
  } = e, m = s ?? "input", g = Qe(m, i);
900
899
  return /* @__PURE__ */ f(
901
900
  "div",
902
901
  {
903
- className: c(
902
+ className: d(
904
903
  t,
905
904
  "relative flex items-center rounded-lg border border-b-[3px] focus-within:-ml-[2px] focus-within:-mt-[2px] focus-within:border-[3px] focus-within:shadow",
906
905
  {
@@ -909,7 +908,7 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
909
908
  "w-fit": a != null,
910
909
  "w-full": a == null,
911
910
  "pl-4": u,
912
- "pr-4": d
911
+ "pr-4": c
913
912
  }
914
913
  ),
915
914
  children: [
@@ -925,7 +924,7 @@ const V = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 })
925
924
  ...l
926
925
  }
927
926
  ),
928
- d
927
+ c
929
928
  ]
930
929
  }
931
930
  );
@@ -947,14 +946,14 @@ const Mt = (e) => {
947
946
  isExpanded: !1,
948
947
  collapsibleId: ""
949
948
  }), zt = (e) => {
950
- const { className: r, children: t, ...n } = e, a = ee(), [s, i] = q(!1), d = C(
949
+ const { className: r, children: t, ...n } = e, a = ee(), [s, i] = q(!1), c = C(
951
950
  () => ({ isExpanded: s, setIsExpanded: i, collapsibleId: a }),
952
951
  [s, a]
953
952
  );
954
- return /* @__PURE__ */ o(L.Provider, { value: "white", children: /* @__PURE__ */ o(k.Provider, { value: d, children: /* @__PURE__ */ o(
953
+ return /* @__PURE__ */ o(L.Provider, { value: "white", children: /* @__PURE__ */ o(k.Provider, { value: c, children: /* @__PURE__ */ o(
955
954
  "div",
956
955
  {
957
- className: c(
956
+ className: d(
958
957
  r,
959
958
  "bg-blue relative pb-12 pt-6 text-white before:absolute before:bottom-0 before:left-0 before:right-0 before:h-6 before:rounded-t-3xl before:bg-white md:pb-14 md:pt-8"
960
959
  ),
@@ -967,7 +966,7 @@ const Mt = (e) => {
967
966
  return /* @__PURE__ */ o(
968
967
  "nav",
969
968
  {
970
- className: c(
969
+ className: d(
971
970
  r,
972
971
  "my-8 flex flex-col md:mb-0 md:flex md:flex-row md:flex-wrap md:gap-x-8",
973
972
  {
@@ -985,7 +984,7 @@ const Mt = (e) => {
985
984
  "a",
986
985
  {
987
986
  "aria-current": t ? "page" : void 0,
988
- className: c(
987
+ className: d(
989
988
  n,
990
989
  "border-b border-[#0156E0] py-3 no-underline md:border-b-2 md:border-transparent md:py-2 md:hover:border-white",
991
990
  {
@@ -1020,7 +1019,7 @@ const Mt = (e) => {
1020
1019
  return /* @__PURE__ */ f(
1021
1020
  "div",
1022
1021
  {
1023
- className: c(r, "flex items-center justify-between gap-8"),
1022
+ className: d(r, "flex items-center justify-between gap-8"),
1024
1023
  ...a,
1025
1024
  children: [
1026
1025
  n,
@@ -1036,7 +1035,7 @@ const Mt = (e) => {
1036
1035
  {
1037
1036
  ...n,
1038
1037
  "aria-hidden": !s,
1039
- className: c(r, "md:-mb-8 md:block", {
1038
+ className: d(r, "md:-mb-8 md:block", {
1040
1039
  hidden: !s
1041
1040
  }),
1042
1041
  id: a,
@@ -1054,7 +1053,7 @@ const Mt = (e) => {
1054
1053
  onChange: a,
1055
1054
  getItemHref: s,
1056
1055
  getItemAriaLabel: i,
1057
- nextPageAriaLabel: d,
1056
+ nextPageAriaLabel: c,
1058
1057
  prevPageAriaLabel: u,
1059
1058
  ...l
1060
1059
  } = e, m = C(
@@ -1069,7 +1068,7 @@ const Mt = (e) => {
1069
1068
  return /* @__PURE__ */ o(T.Provider, { value: m, children: /* @__PURE__ */ f(
1070
1069
  "nav",
1071
1070
  {
1072
- className: c("flex justify-center gap-2 sm:gap-4", r),
1071
+ className: d("flex justify-center gap-2 sm:gap-4", r),
1073
1072
  ...l,
1074
1073
  children: [
1075
1074
  /* @__PURE__ */ o(
@@ -1105,7 +1104,7 @@ const Mt = (e) => {
1105
1104
  /* @__PURE__ */ o(
1106
1105
  Be,
1107
1106
  {
1108
- "aria-label": d,
1107
+ "aria-label": c,
1109
1108
  href: s(t + 1),
1110
1109
  onClick: g(t + 1)
1111
1110
  }
@@ -1144,7 +1143,7 @@ const Mt = (e) => {
1144
1143
  return /* @__PURE__ */ o(
1145
1144
  "a",
1146
1145
  {
1147
- className: c(
1146
+ className: d(
1148
1147
  t,
1149
1148
  "aria-[current]:border-green hover:bg-gray-lightest flex h-9 w-9 items-center justify-center rounded-lg border-2 border-transparent no-underline sm:h-10 sm:w-10"
1150
1149
  ),
@@ -1161,7 +1160,7 @@ const Mt = (e) => {
1161
1160
  Math.min(r - w, n - w * 2),
1162
1161
  1
1163
1162
  );
1164
- return a - w === 0 && (a = a - 1), Array.from({ length: n - a }, (i, d) => a + d + 1).map((i) => e(i));
1163
+ return a - w === 0 && (a = a - 1), Array.from({ length: n - a }, (i, c) => a + c + 1).map((i) => e(i));
1165
1164
  }, _ = h((e, r) => {
1166
1165
  const { page: t, selected: n, ...a } = e;
1167
1166
  return /* @__PURE__ */ o(B, { "aria-current": n ? "page" : void 0, ref: r, ...a, children: t });
@@ -1174,15 +1173,15 @@ const Mt = (e) => {
1174
1173
  value: void 0,
1175
1174
  error: !1
1176
1175
  }), Zt = h((e, r) => {
1177
- const { children: t, className: n, ...a } = e, { defaultValue: s, isControlled: i, name: d, onChange: u, required: l, value: m, error: g } = A(me);
1178
- return /* @__PURE__ */ f("label", { className: c(n, "flex cursor-pointer gap-2.5"), children: [
1176
+ const { children: t, className: n, ...a } = e, { defaultValue: s, isControlled: i, name: c, onChange: u, required: l, value: m, error: g } = A(me);
1177
+ return /* @__PURE__ */ f("label", { className: d(n, "flex cursor-pointer gap-2.5"), children: [
1179
1178
  /* @__PURE__ */ o(
1180
1179
  "input",
1181
1180
  {
1182
- className: c("radio", g && "border-red"),
1181
+ className: d("radio", g && "border-red"),
1183
1182
  defaultChecked: i ? void 0 : a.value === s,
1184
1183
  checked: i ? a.value === m : void 0,
1185
- name: d,
1184
+ name: c,
1186
1185
  onChange: i ? u : void 0,
1187
1186
  required: l,
1188
1187
  type: "radio",
@@ -1199,7 +1198,7 @@ const Mt = (e) => {
1199
1198
  defaultValue: a,
1200
1199
  description: s,
1201
1200
  error: i,
1202
- id: d,
1201
+ id: c,
1203
1202
  children: u,
1204
1203
  label: l,
1205
1204
  name: m,
@@ -1224,17 +1223,17 @@ const Mt = (e) => {
1224
1223
  error: !!i
1225
1224
  }),
1226
1225
  [a, t, m, v, b, p, i]
1227
- ), J = S(d), D = `${J}:label`, H = `${J}:help`, G = J + "err", j = i;
1226
+ ), J = S(c), D = `${J}:label`, H = `${J}:help`, G = J + "err", j = i;
1228
1227
  return /* @__PURE__ */ o(me.Provider, { value: F, children: /* @__PURE__ */ f(
1229
1228
  "div",
1230
1229
  {
1231
- "aria-describedby": c({
1230
+ "aria-describedby": d({
1232
1231
  [G]: j,
1233
1232
  [H]: s
1234
1233
  }) || void 0,
1235
1234
  "aria-invalid": !!i,
1236
1235
  "aria-labelledby": l ? D : void 0,
1237
- className: c(n, "flex flex-col gap-4"),
1236
+ className: d(n, "flex flex-col gap-4"),
1238
1237
  role: "radiogroup",
1239
1238
  ref: r,
1240
1239
  ...x,
@@ -1249,16 +1248,16 @@ const Mt = (e) => {
1249
1248
  }
1250
1249
  ), _e = h(
1251
1250
  (e, r) => {
1252
- const { children: t, className: n, isInvalid: a, size: s, ...i } = e, d = s === "small";
1253
- return /* @__PURE__ */ f("div", { className: c(n, "relative", d && "text-sm"), children: [
1251
+ const { children: t, className: n, isInvalid: a, size: s, ...i } = e, c = s === "small";
1252
+ return /* @__PURE__ */ f("div", { className: d(n, "relative", c && "text-sm"), children: [
1254
1253
  /* @__PURE__ */ o(
1255
1254
  "select",
1256
1255
  {
1257
1256
  "aria-invalid": a,
1258
1257
  ...i,
1259
- className: c(
1258
+ className: d(
1260
1259
  "w-full cursor-pointer appearance-none border border-b-[3px] bg-white focus:-ml-0.5 focus:-mt-0.5 focus:border-[3px] focus:shadow focus:outline-none",
1261
- d ? "rounded px-3.5 py-2" : "rounded-lg px-4 py-3.5",
1260
+ c ? "rounded px-3.5 py-2" : "rounded-lg px-4 py-3.5",
1262
1261
  a ? "border-red focus:border-red" : "focus:border-blue-dark border-black"
1263
1262
  ),
1264
1263
  ref: r,
@@ -1268,9 +1267,9 @@ const Mt = (e) => {
1268
1267
  /* @__PURE__ */ o(
1269
1268
  te,
1270
1269
  {
1271
- className: c(
1270
+ className: d(
1272
1271
  "pointer-events-none absolute bottom-0 top-0 my-auto",
1273
- d ? "right-3.5" : "right-4"
1272
+ c ? "right-3.5" : "right-4"
1274
1273
  )
1275
1274
  }
1276
1275
  )
@@ -1284,7 +1283,7 @@ const Mt = (e) => {
1284
1283
  id: a,
1285
1284
  label: s,
1286
1285
  disableValidation: i = !1,
1287
- ...d
1286
+ ...c
1288
1287
  } = e, u = E(null), l = X([u, r]), { validity: m, validationMessage: g } = P(
1289
1288
  u,
1290
1289
  !i
@@ -1305,9 +1304,9 @@ const Mt = (e) => {
1305
1304
  {
1306
1305
  id: b,
1307
1306
  ref: l,
1308
- ...d,
1307
+ ...c,
1309
1308
  isInvalid: !!n || m === "invalid",
1310
- "aria-describedby": c({
1309
+ "aria-describedby": d({
1311
1310
  [x]: v,
1312
1311
  [p]: t
1313
1312
  }) || void 0
@@ -1318,12 +1317,12 @@ const Mt = (e) => {
1318
1317
  }
1319
1318
  ), Xt = (e) => {
1320
1319
  const { heading: r, children: t, closeSnackbar: n } = e, [a, s] = q(!1);
1321
- return /* @__PURE__ */ o("div", { className: "container max-w-[59rem]", children: /* @__PURE__ */ o("div", { className: "bg-orange-light px-8 py-4 max-md:p-4", children: /* @__PURE__ */ f("div", { className: "snackbar grid items-center", children: [
1320
+ return /* @__PURE__ */ o("div", { className: "container max-w-[59rem]", children: /* @__PURE__ */ o("div", { className: "bg-orange-light p-4 md:px-8", children: /* @__PURE__ */ f("div", { className: "snackbar grid items-center", children: [
1322
1321
  /* @__PURE__ */ o(ne, { className: "text-orange snackbar-icon mr-4 self-start md:mr-8 md:text-2xl" }),
1323
1322
  /* @__PURE__ */ o(
1324
1323
  "h3",
1325
1324
  {
1326
- className: c(
1325
+ className: d(
1327
1326
  "snackbar-header min-w-0 max-w-prose text-base font-medium",
1328
1327
  {
1329
1328
  "overflow-hidden overflow-ellipsis whitespace-nowrap": !a
@@ -1332,7 +1331,7 @@ const Mt = (e) => {
1332
1331
  children: r
1333
1332
  }
1334
1333
  ),
1335
- /* @__PURE__ */ f("div", { className: "snackbar-actions flex justify-end gap-4 max-md:mt-3 md:ml-4", children: [
1334
+ /* @__PURE__ */ f("div", { className: "snackbar-actions mt-3 flex justify-end gap-4 md:ml-4 md:mt-0", children: [
1336
1335
  /* @__PURE__ */ o(
1337
1336
  $,
1338
1337
  {
@@ -1348,7 +1347,7 @@ const Mt = (e) => {
1348
1347
  }, $ = (e) => /* @__PURE__ */ o(
1349
1348
  "button",
1350
1349
  {
1351
- className: c(
1350
+ className: d(
1352
1351
  e.className,
1353
1352
  "focus-visible:ring-offset flex-shrink-0 underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black"
1354
1353
  ),
@@ -1364,7 +1363,7 @@ const Mt = (e) => {
1364
1363
  }
1365
1364
  ), $e = (e) => {
1366
1365
  const { align: r = "center", children: t, className: n, ...a } = e;
1367
- return /* @__PURE__ */ o("ol", { className: c(n, "flex flex-col gap-8 md:gap-12"), ...a, children: Z.map(t, (s) => {
1366
+ return /* @__PURE__ */ o("ol", { className: d(n, "flex flex-col gap-8 md:gap-12"), ...a, children: Z.map(t, (s) => {
1368
1367
  if (W(s))
1369
1368
  return K(s, {
1370
1369
  align: r
@@ -1375,7 +1374,7 @@ const Mt = (e) => {
1375
1374
  return /* @__PURE__ */ f(
1376
1375
  "li",
1377
1376
  {
1378
- className: c(
1377
+ className: d(
1379
1378
  r,
1380
1379
  "group relative flex gap-4 text-sm md:gap-8 md:text-base",
1381
1380
  { "items-center": a === "center" }
@@ -1391,7 +1390,7 @@ const Mt = (e) => {
1391
1390
  "span",
1392
1391
  {
1393
1392
  "aria-hidden": !0,
1394
- className: c(
1393
+ className: d(
1395
1394
  "text-green after:bg-gray-light before:bg-gray-light grid h-10 w-10 flex-none place-content-center justify-items-center rounded-full border-2 text-sm font-bold after:absolute after:bottom-0 after:w-0.5 after:translate-x-1/2 group-last:after:hidden md:h-20 md:w-20 md:text-xl",
1396
1395
  {
1397
1396
  "before:absolute before:bottom-1/2 before:top-0 before:w-0.5 before:-translate-y-5 before:translate-x-1/2 after:top-1/2 after:translate-y-5 group-first:before:hidden before:md:-translate-y-10 after:md:translate-y-10": e === "center",
@@ -1410,7 +1409,7 @@ const Qt = h(
1410
1409
  id: a,
1411
1410
  label: s,
1412
1411
  disableValidation: i = !1,
1413
- ...d
1412
+ ...c
1414
1413
  } = e, u = E(null), l = X([u, r]), { validity: m, validationMessage: g } = P(
1415
1414
  u,
1416
1415
  !i
@@ -1427,14 +1426,14 @@ const Qt = h(
1427
1426
  ),
1428
1427
  t && /* @__PURE__ */ o(M, { id: p, children: t }),
1429
1428
  /* @__PURE__ */ o(
1430
- de,
1429
+ ce,
1431
1430
  {
1432
1431
  as: "textarea",
1433
1432
  ref: l,
1434
1433
  id: b,
1435
- ...d,
1434
+ ...c,
1436
1435
  isInvalid: !!n || m === "invalid",
1437
- "aria-describedby": c({
1436
+ "aria-describedby": d({
1438
1437
  [x]: v,
1439
1438
  [p]: t
1440
1439
  }) || void 0
@@ -1451,11 +1450,11 @@ const Qt = h(
1451
1450
  id: a,
1452
1451
  label: s,
1453
1452
  type: i = "text",
1454
- disableValidation: d = !1,
1453
+ disableValidation: c = !1,
1455
1454
  ...u
1456
1455
  } = e, l = E(null), { validity: m, validationMessage: g } = P(
1457
1456
  l,
1458
- !d
1457
+ !c
1459
1458
  ), b = S(a), p = b + "help", x = b + "err", v = n || g, F = X([l, r]);
1460
1459
  return /* @__PURE__ */ f("div", { className: "grid gap-2", children: [
1461
1460
  /* @__PURE__ */ o(
@@ -1469,14 +1468,14 @@ const Qt = h(
1469
1468
  ),
1470
1469
  t && /* @__PURE__ */ o(M, { id: p, children: t }),
1471
1470
  /* @__PURE__ */ o(
1472
- de,
1471
+ ce,
1473
1472
  {
1474
1473
  id: b,
1475
1474
  ref: F,
1476
1475
  type: i,
1477
1476
  ...u,
1478
1477
  isInvalid: !!n || m === "invalid",
1479
- "aria-describedby": c({
1478
+ "aria-describedby": d({
1480
1479
  [x]: v,
1481
1480
  [p]: t
1482
1481
  }) || void 0
@@ -1491,7 +1490,7 @@ export {
1491
1490
  Re as AccordionContent,
1492
1491
  Se as AccordionHeader,
1493
1492
  Ee as AccordionItem,
1494
- ct as Alert,
1493
+ dt as Alert,
1495
1494
  mt as Banner,
1496
1495
  ut as BannerImage,
1497
1496
  bt as Button,
@@ -1523,7 +1522,7 @@ export {
1523
1522
  Pt as HeroContent,
1524
1523
  V as HeroContext,
1525
1524
  qt as HeroImage,
1526
- de as Input,
1525
+ ce as Input,
1527
1526
  Mt as Link,
1528
1527
  zt as Navbar,
1529
1528
  Jt as NavbarCollapsible,
@@ -1547,6 +1546,6 @@ export {
1547
1546
  Et as useFormContext,
1548
1547
  P as useFormControlValidity,
1549
1548
  Xe as useFormStepContext,
1550
- dt as usePrefersReducedMotion,
1549
+ ct as usePrefersReducedMotion,
1551
1550
  Pe as useScreenMaxWidthMd
1552
1551
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obosbbl/grunnmuren-react",
3
- "version": "1.14.10",
3
+ "version": "1.14.11",
4
4
  "description": "OBOS Grunnmuren design system React components",
5
5
  "license": "MIT",
6
6
  "repository": {