@obosbbl/grunnmuren-react 1.11.1 → 1.12.1

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.
@@ -0,0 +1,1370 @@
1
+ 'use client';
2
+ import { jsx as a, jsxs as f, Fragment as Z } from "react/jsx-runtime";
3
+ import he, { useState as L, useCallback as R, useEffect as pe, useId as $, createContext as y, useContext as v, forwardRef as h, Children as j, isValidElement as ee, cloneElement as W, useRef as M, useMemo as k } from "react";
4
+ import { ChevronDown as re, Warning as te, InfoCircle as ne, LoadingSpinner as Ae, MenuAlt as ve, Close as xe, ChevronRight as Ne, ChevronLeft as we } from "@obosbbl/grunnmuren-icons";
5
+ import ye from "react-collapsed";
6
+ import d from "clsx";
7
+ import K from "@seznam/compose-react-refs";
8
+ const w = () => {
9
+ };
10
+ var ae = {}, x = {};
11
+ Object.defineProperty(x, "__esModule", { value: !0 });
12
+ x.isNavigator = x.isBrowser = x.off = x.on = x.noop = void 0;
13
+ var Ie = function() {
14
+ };
15
+ x.noop = Ie;
16
+ function Ce(e) {
17
+ for (var t = [], r = 1; r < arguments.length; r++)
18
+ t[r - 1] = arguments[r];
19
+ e && e.addEventListener && e.addEventListener.apply(e, t);
20
+ }
21
+ x.on = Ce;
22
+ function Ee(e) {
23
+ for (var t = [], r = 1; r < arguments.length; r++)
24
+ t[r - 1] = arguments[r];
25
+ e && e.removeEventListener && e.removeEventListener.apply(e, t);
26
+ }
27
+ x.off = Ee;
28
+ x.isBrowser = typeof window < "u";
29
+ x.isNavigator = typeof navigator < "u";
30
+ Object.defineProperty(ae, "__esModule", { value: !0 });
31
+ var H = he, qe = x, Re = function(e, t) {
32
+ return t !== void 0 ? t : qe.isBrowser ? window.matchMedia(e).matches : (process.env.NODE_ENV !== "production" && console.warn("`useMedia` When server side rendering, defaultState should be defined to prevent a hydration mismatches."), !1);
33
+ }, Le = function(e, t) {
34
+ var r = H.useState(Re(e, t)), n = r[0], o = r[1];
35
+ return H.useEffect(function() {
36
+ var s = !0, i = window.matchMedia(e), c = function() {
37
+ s && o(!!i.matches);
38
+ };
39
+ return i.addListener(c), o(i.matches), function() {
40
+ s = !1, i.removeListener(c);
41
+ };
42
+ }, [e]), n;
43
+ }, oe = ae.default = Le;
44
+ const Me = "(prefers-reduced-motion: reduce)", ke = (e = !1) => oe(Me, e);
45
+ function se(e) {
46
+ switch (e) {
47
+ case "gray":
48
+ return "bg-gray-concrete";
49
+ case "green":
50
+ return "bg-green-lightest";
51
+ case "yellow":
52
+ return "bg-yellow";
53
+ case "blue":
54
+ return "bg-blue-lightest";
55
+ }
56
+ }
57
+ const ze = (e) => oe("(max-width: 767.9px)", e);
58
+ function z(e, t = !0) {
59
+ const [r, n] = L("indeterminate"), [o, s] = L(), i = R((l) => {
60
+ l.target.checkValidity() && (n("valid"), s(void 0));
61
+ }, []), c = R(
62
+ (l) => {
63
+ r !== "indeterminate" && l.target.checkValidity() && (n("valid"), s(void 0));
64
+ },
65
+ [r]
66
+ ), m = R((l) => {
67
+ l.preventDefault();
68
+ const u = l.target.validationMessage;
69
+ s(u), n("invalid");
70
+ }, []);
71
+ return pe(() => {
72
+ var u;
73
+ const { current: l } = e;
74
+ return t && // @ts-expect-error respect the <form noValidate> attribute if we are rendered inside a form
75
+ ((u = l == null ? void 0 : l.form) == null ? void 0 : u.noValidate) !== !0 && (l == null || l.addEventListener("blur", i), l == null || l.addEventListener("input", c), l == null || l.addEventListener("invalid", m)), () => {
76
+ l == null || l.removeEventListener("blur", i), l == null || l.removeEventListener("input", c), l == null || l.removeEventListener("invalid", m);
77
+ };
78
+ }, [t, c]), { validity: r, validationMessage: o };
79
+ }
80
+ function C(e) {
81
+ const t = $();
82
+ return e ?? t;
83
+ }
84
+ const Pe = 300, Se = "duration-300", Y = (e) => {
85
+ const { className: t, ...r } = e;
86
+ return /* @__PURE__ */ a("div", { className: d(t, "flex flex-col gap-2"), ...r });
87
+ }, X = y({
88
+ isExpanded: !1,
89
+ setExpanded: w,
90
+ // @ts-expect-error noop
91
+ getCollapseProps: w,
92
+ // @ts-expect-error noop
93
+ getToggleProps: w,
94
+ onChange: w
95
+ }), Ve = (e) => {
96
+ const t = ke(), { className: r, defaultOpen: n, onChange: o = w, open: s, ...i } = e, c = ye({
97
+ defaultExpanded: n,
98
+ isExpanded: s,
99
+ duration: Pe,
100
+ hasDisabledAnimation: t,
101
+ easing: "cubic-bezier(0.25, 0.1, 0.25, 1)"
102
+ });
103
+ return /* @__PURE__ */ a(X.Provider, { value: { onChange: o, ...c }, children: /* @__PURE__ */ a(
104
+ "div",
105
+ {
106
+ className: d(
107
+ r,
108
+ "rounded-sm border-b-2 border-l-4 border-solid",
109
+ c.isExpanded ? "border-l-green-dark" : "border-l-green"
110
+ ),
111
+ ...i
112
+ }
113
+ ) });
114
+ }, Je = (e) => {
115
+ const { children: t, className: r, as: n = "h3", ...o } = e, { getToggleProps: s, onChange: i, isExpanded: c } = v(X), m = s({ onClick: () => i(!c) });
116
+ return /* @__PURE__ */ a(n, { children: /* @__PURE__ */ f(
117
+ "button",
118
+ {
119
+ className: d(
120
+ r,
121
+ "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"
122
+ ),
123
+ ...o,
124
+ ...m,
125
+ id: ie(m["aria-controls"]),
126
+ children: [
127
+ t,
128
+ /* @__PURE__ */ a(
129
+ re,
130
+ {
131
+ className: `shrink-0 text-sm ${Se} group-aria-expanded:rotate-180`
132
+ }
133
+ )
134
+ ]
135
+ }
136
+ ) });
137
+ }, Oe = (e) => {
138
+ const { getCollapseProps: t } = v(X), { className: r, ...n } = e, o = t();
139
+ return /* @__PURE__ */ a(
140
+ "div",
141
+ {
142
+ ...o,
143
+ role: "region",
144
+ "aria-labelledby": ie(o.id),
145
+ children: /* @__PURE__ */ a("div", { className: d(r, "p-5 pb-10"), ...n })
146
+ }
147
+ );
148
+ }, ie = (e) => e + "toggle";
149
+ Y.Item = Ve;
150
+ Y.Header = Je;
151
+ Y.Content = Oe;
152
+ const mr = (e) => {
153
+ const { className: t, children: r, heading: n, severity: o = "alert", ...s } = e;
154
+ return /* @__PURE__ */ a(
155
+ "section",
156
+ {
157
+ className: d(t, "p-4 md:py-8", {
158
+ "bg-orange-light": o === "info",
159
+ "bg-red-light": o === "alert"
160
+ }),
161
+ role: "alert",
162
+ ...s,
163
+ children: /* @__PURE__ */ f("div", { className: "flex justify-center", children: [
164
+ /* @__PURE__ */ a(
165
+ Te,
166
+ {
167
+ className: "mr-4 flex-none md:mr-8 md:text-2xl",
168
+ severity: o
169
+ }
170
+ ),
171
+ /* @__PURE__ */ f("div", { className: "w-prose flex-initial", children: [
172
+ /* @__PURE__ */ a("h2", { className: "h4 mb-2", children: n }),
173
+ r
174
+ ] })
175
+ ] })
176
+ }
177
+ );
178
+ }, Te = ({ severity: e, className: t }) => e === "alert" ? /* @__PURE__ */ a(te, { className: d(t, "text-red") }) : /* @__PURE__ */ a(ne, { className: d(t, "text-orange") }), ur = (e) => {
179
+ const {
180
+ bgColor: t,
181
+ className: r,
182
+ children: n,
183
+ heading: o,
184
+ image: s,
185
+ ...i
186
+ } = e, c = se(t);
187
+ return /* @__PURE__ */ a("article", { className: d(r, c, "py-8 px-4 md:py-14"), ...i, children: /* @__PURE__ */ f("div", { className: "container flex gap-4 max-md:flex-wrap md:gap-12", children: [
188
+ s,
189
+ /* @__PURE__ */ f("div", { className: "w-prose", children: [
190
+ o && /* @__PURE__ */ a("h2", { className: "mb-4", children: o }),
191
+ n
192
+ ] })
193
+ ] }) });
194
+ }, fr = (e) => /* @__PURE__ */ a(
195
+ "img",
196
+ {
197
+ loading: "lazy",
198
+ decoding: "async",
199
+ className: "w-24 flex-none self-center md:w-40 md:self-start",
200
+ ...e
201
+ }
202
+ ), Fe = {
203
+ "standard-primary": "bg-green border-green text-white",
204
+ "standard-secondary": "bg-white border-green text-black",
205
+ "light-green-primary": "bg-green-light border-green-light text-black",
206
+ "light-green-secondary": "bg-transparent border-green-light text-green-light",
207
+ "white-primary": "bg-white border-white text-black",
208
+ "white-secondary": "bg-transparent border-white text-white"
209
+ }, gr = h((e, t) => {
210
+ const {
211
+ children: r,
212
+ className: n,
213
+ color: o,
214
+ href: s,
215
+ loading: i,
216
+ type: c = "button",
217
+ variant: m = "primary",
218
+ ...l
219
+ } = e, u = v(P), b = Fe[`${o ?? u}-${m}`], p = d(n, b, "button"), A = i ? /* @__PURE__ */ a(Ze, { children: r }) : r;
220
+ return /* @__PURE__ */ a(Z, { children: s ? /* @__PURE__ */ a(
221
+ "a",
222
+ {
223
+ "aria-busy": i ? !0 : void 0,
224
+ ...l,
225
+ href: s,
226
+ ref: t,
227
+ className: p,
228
+ children: A
229
+ }
230
+ ) : /* @__PURE__ */ a(
231
+ "button",
232
+ {
233
+ "aria-busy": i ? !0 : void 0,
234
+ ...l,
235
+ type: c,
236
+ ref: t,
237
+ className: p,
238
+ children: A
239
+ }
240
+ ) });
241
+ }), Ze = (e) => /* @__PURE__ */ f(Z, { children: [
242
+ le(e.children),
243
+ /* @__PURE__ */ a(
244
+ "span",
245
+ {
246
+ className: "!visible absolute top-1 bottom-1 left-1 right-1 grid place-items-center overflow-hidden bg-inherit",
247
+ "aria-hidden": !0,
248
+ children: /* @__PURE__ */ a(Ae, { className: "animate-spin" })
249
+ }
250
+ )
251
+ ] });
252
+ function le(e) {
253
+ return j.map(e, (t) => {
254
+ if (!ee(t))
255
+ return typeof t == "string" ? /* @__PURE__ */ a("span", { children: t }) : t;
256
+ if (t.props.children) {
257
+ const r = {
258
+ children: le(t.props.children)
259
+ };
260
+ t = W(t, r);
261
+ }
262
+ return t;
263
+ });
264
+ }
265
+ const P = y("standard"), de = y(!0), je = (e, t) => {
266
+ const {
267
+ as: r = "div",
268
+ body: n,
269
+ className: o,
270
+ image: s,
271
+ rightAlignBody: i = !0,
272
+ ...c
273
+ } = e;
274
+ return /* @__PURE__ */ f(
275
+ r,
276
+ {
277
+ className: d(
278
+ o,
279
+ "grid gap-8 md:grid-flow-col md:grid-cols-[50%,50%] md:gap-0"
280
+ ),
281
+ ...c,
282
+ ref: t,
283
+ children: [
284
+ /* @__PURE__ */ a(de.Provider, { value: i, children: s }),
285
+ n
286
+ ]
287
+ }
288
+ );
289
+ }, We = h(je), Ke = h(
290
+ (e, t) => {
291
+ const { className: r, ...n } = e;
292
+ return /* @__PURE__ */ a(
293
+ "div",
294
+ {
295
+ className: d(r, "md:mx-18 self-center"),
296
+ ref: t,
297
+ ...n
298
+ }
299
+ );
300
+ }
301
+ ), Ye = h(
302
+ (e, t) => {
303
+ const { className: r, children: n, ...o } = e, s = v(de), i = d(
304
+ r,
305
+ "max-md:rounded-b-3xl w-full",
306
+ s ? "md:rounded-r-3xl" : "md:rounded-l-3xl md:order-1"
307
+ );
308
+ if (ee(n)) {
309
+ const c = j.only(n);
310
+ return W(c, {
311
+ // @ts-expect-error assume className prop is allowed
312
+ className: i,
313
+ ref: t,
314
+ ...o
315
+ });
316
+ }
317
+ return /* @__PURE__ */ a("img", { className: i, ref: t, ...o });
318
+ }
319
+ ), br = Object.assign({}, We, {
320
+ Body: Ke,
321
+ Image: Ye
322
+ }), Xe = (e, t) => {
323
+ const {
324
+ as: r = "div",
325
+ className: n,
326
+ bgColor: o = "white",
327
+ ...s
328
+ } = e;
329
+ return /* @__PURE__ */ a(
330
+ r,
331
+ {
332
+ className: d(n, "relative overflow-hidden rounded-3xl", {
333
+ "border-2 border-solid bg-white": o === "white",
334
+ "bg-gray-light": o === "gray"
335
+ }),
336
+ ...s,
337
+ ref: t
338
+ }
339
+ );
340
+ }, hr = h(Xe), pr = h(
341
+ (e, t) => {
342
+ const { className: r, ...n } = e;
343
+ return /* @__PURE__ */ a(
344
+ "img",
345
+ {
346
+ className: d(r, "w-full object-cover"),
347
+ loading: "lazy",
348
+ ...n,
349
+ ref: t
350
+ }
351
+ );
352
+ }
353
+ ), Ar = h(
354
+ (e, t) => {
355
+ const { bgColor: r, className: n, ...o } = e, s = se(r);
356
+ return /* @__PURE__ */ a("div", { className: d(s, n), children: /* @__PURE__ */ a(
357
+ "div",
358
+ {
359
+ className: "container grid grid-cols-1 gap-12 py-16 md:grid-cols-2 md:py-20 lg:py-24",
360
+ ...o,
361
+ ref: t
362
+ }
363
+ ) });
364
+ }
365
+ ), vr = h(
366
+ (e, t) => {
367
+ const { className: r, ...n } = e;
368
+ return /* @__PURE__ */ a("div", { className: d(r, "p-8 md:px-10"), ...n, ref: t });
369
+ }
370
+ ), xr = h((e, t) => {
371
+ const { className: r, ...n } = e;
372
+ return /* @__PURE__ */ a(
373
+ "a",
374
+ {
375
+ className: d(
376
+ r,
377
+ "no-underline before:absolute before:top-0 before:left-0 before:block before:h-full before:w-full hover:underline"
378
+ ),
379
+ ref: t,
380
+ ...n
381
+ }
382
+ );
383
+ }), Nr = h(
384
+ (e, t) => {
385
+ const {
386
+ children: r,
387
+ className: n,
388
+ error: o,
389
+ id: s,
390
+ disableValidation: i = !1,
391
+ ...c
392
+ } = e, m = M(null), { validity: l, validationMessage: u } = z(
393
+ m,
394
+ !i
395
+ ), g = C(s), b = g + "err", p = o || u;
396
+ return /* @__PURE__ */ f("div", { className: "grid gap-2", children: [
397
+ /* @__PURE__ */ f("label", { className: d(n, "flex cursor-pointer gap-2.5"), children: [
398
+ /* @__PURE__ */ a(
399
+ "input",
400
+ {
401
+ id: g,
402
+ className: d(
403
+ "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",
404
+ {
405
+ "border-gray-dark focus:ring-black": !o,
406
+ "border-red focus:ring-red": !!o
407
+ }
408
+ ),
409
+ ref: t,
410
+ type: "checkbox",
411
+ ...c,
412
+ "aria-describedby": p ? b : void 0,
413
+ "aria-invalid": !!o || l === "invalid"
414
+ }
415
+ ),
416
+ r
417
+ ] }),
418
+ p && /* @__PURE__ */ a(E, { id: b, children: p })
419
+ ] });
420
+ }
421
+ ), Be = {
422
+ "blue-light": "bg-blue-light border-blue-light",
423
+ "red-light": "bg-red-light border-red-light",
424
+ "green-light": "bg-green-light border-green-light",
425
+ "orange-light": "bg-orange-light border-orange-light"
426
+ }, Qe = {
427
+ "blue-light": "text-blue-dark",
428
+ "red-light": "text-red",
429
+ "green-light": "text-green",
430
+ "orange-light": "text-black"
431
+ }, wr = (e) => {
432
+ const { className: t, color: r, icon: n, children: o, variant: s = "filled" } = e, i = r && Be[r], c = r && Qe[r];
433
+ return /* @__PURE__ */ f(
434
+ "div",
435
+ {
436
+ className: d(
437
+ "inline-flex items-center gap-0.5 overflow-hidden rounded-lg border-2 text-sm font-semibold",
438
+ i,
439
+ t
440
+ ),
441
+ children: [
442
+ n && /* @__PURE__ */ a("div", { className: d("px-3 py-2", c), children: n }),
443
+ /* @__PURE__ */ a(
444
+ "div",
445
+ {
446
+ className: d("flex-1 py-2 px-4", {
447
+ "bg-white": s === "outline"
448
+ }),
449
+ children: o
450
+ }
451
+ )
452
+ ]
453
+ }
454
+ );
455
+ }, yr = (e) => {
456
+ const { className: t, children: r, ...n } = e;
457
+ return /* @__PURE__ */ a(P.Provider, { value: "white", children: /* @__PURE__ */ a(
458
+ "footer",
459
+ {
460
+ className: d(
461
+ t,
462
+ // calculated height for psuedo element fixes rendering artifict that sometimes occurs on specific screen sizes and zoom levels
463
+ "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 "
464
+ ),
465
+ ...n,
466
+ children: /* @__PURE__ */ a("div", { className: "container", children: r })
467
+ }
468
+ ) });
469
+ }, Ir = (e) => {
470
+ const { heading: t, children: r, className: n, ...o } = e;
471
+ return /* @__PURE__ */ f(
472
+ "form",
473
+ {
474
+ className: d(
475
+ n,
476
+ "border-blue-dark block overflow-hidden rounded-t-3xl rounded-b-lg border-2"
477
+ ),
478
+ ...o,
479
+ children: [
480
+ t && /* @__PURE__ */ a(Ue, { children: t }),
481
+ /* @__PURE__ */ a("div", { className: "p-6 md:p-10", children: r })
482
+ ]
483
+ }
484
+ );
485
+ }, Ue = (e) => {
486
+ const { className: t, ...r } = e;
487
+ return /* @__PURE__ */ a(
488
+ "h2",
489
+ {
490
+ className: d(
491
+ t,
492
+ "bg-blue-dark p-6 text-xl font-bold text-white md:px-10 md:py-8 md:text-2xl"
493
+ ),
494
+ ...r
495
+ }
496
+ );
497
+ }, Cr = (e) => {
498
+ const { className: t, ...r } = e;
499
+ return /* @__PURE__ */ a(
500
+ "div",
501
+ {
502
+ "aria-live": "polite",
503
+ className: d(
504
+ t,
505
+ "border-red bg-red-light rounded-lg border-2 p-6 text-sm"
506
+ ),
507
+ ...r,
508
+ children: "Beklager! Noe gikk dessverre galt under innesendingen av skjemaet. Prøv gjerne igjen om en stund."
509
+ }
510
+ );
511
+ }, E = (e) => {
512
+ const { children: t, className: r, ...n } = e;
513
+ return /* @__PURE__ */ f(
514
+ "div",
515
+ {
516
+ className: d(
517
+ r,
518
+ "bg-red-light text-red flex items-center gap-2 rounded py-1 px-2 text-sm"
519
+ ),
520
+ "aria-live": "polite",
521
+ ...n,
522
+ children: [
523
+ /* @__PURE__ */ a(te, { className: "text-red flex-shrink-0" }),
524
+ t
525
+ ]
526
+ }
527
+ );
528
+ }, S = (e) => {
529
+ const { className: t, children: r, ...n } = e;
530
+ return /* @__PURE__ */ a("div", { className: d(t, "text-gray-dark text-sm"), ...n, children: r });
531
+ }, V = (e) => {
532
+ const { className: t, children: r, isRequired: n, isInvalid: o, ...s } = e;
533
+ return /* @__PURE__ */ f(
534
+ "label",
535
+ {
536
+ className: d(t, "block cursor-pointer font-semibold"),
537
+ ...s,
538
+ children: [
539
+ n && /* @__PURE__ */ a(
540
+ "span",
541
+ {
542
+ "aria-hidden": !0,
543
+ className: d(
544
+ "mr-1 select-none",
545
+ o ? "text-red" : "text-blue"
546
+ ),
547
+ children: "*"
548
+ }
549
+ ),
550
+ r
551
+ ]
552
+ }
553
+ );
554
+ }, Er = (e) => {
555
+ const { className: t, heading: r, text: n, ...o } = e;
556
+ return /* @__PURE__ */ f(
557
+ "div",
558
+ {
559
+ className: d(
560
+ t,
561
+ "bg-gray-concrete flex flex-col gap-8 p-8 text-center"
562
+ ),
563
+ ...o,
564
+ children: [
565
+ /* @__PURE__ */ a(
566
+ "img",
567
+ {
568
+ className: "mx-auto",
569
+ alt: "Innsending fullført",
570
+ height: "220",
571
+ width: "247",
572
+ src: "data:image/png;base64,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"
573
+ }
574
+ ),
575
+ r && /* @__PURE__ */ a("h2", { className: "text-blue text-2xl", children: r }),
576
+ n && /* @__PURE__ */ a("p", { className: "text-lg", children: n })
577
+ ]
578
+ }
579
+ );
580
+ };
581
+ function ce(e) {
582
+ return e !== "vertical-split" && e !== "below-center" && e !== "below-left";
583
+ }
584
+ const J = y({ bgColor: "white", contentPosition: "below-center", hasImage: !1 }), qr = h((e, t) => {
585
+ const {
586
+ bgColor: r = "white",
587
+ children: n,
588
+ className: o,
589
+ contentPosition: s = "below-center",
590
+ image: i,
591
+ ...c
592
+ } = e, m = i != null, l = m ? s : "below-center", u = k(
593
+ () => ({
594
+ bgColor: r,
595
+ contentPosition: l,
596
+ hasImage: m
597
+ }),
598
+ [r, l, m]
599
+ );
600
+ return /* @__PURE__ */ a(
601
+ P.Provider,
602
+ {
603
+ value: r === "white" ? "standard" : "light-green",
604
+ children: /* @__PURE__ */ a(J.Provider, { value: u, children: /* @__PURE__ */ f(
605
+ "div",
606
+ {
607
+ className: d(
608
+ o,
609
+ // disable padding on small screens so the hero image is flush with the screen edges
610
+ "container max-md:px-0 md:grid",
611
+ {
612
+ "md:grid-cols-[50%,50%]": l === "vertical-split"
613
+ }
614
+ ),
615
+ style: ce(l) ? { gridTemplateAreas: '"hero"' } : void 0,
616
+ ...c,
617
+ ref: t,
618
+ children: [
619
+ i,
620
+ n
621
+ ]
622
+ }
623
+ ) })
624
+ }
625
+ );
626
+ }), Rr = h(
627
+ (e, t) => {
628
+ const { contentPosition: r } = v(J);
629
+ return /* @__PURE__ */ f(
630
+ "picture",
631
+ {
632
+ className: d(e.className, "aspect-w-6 aspect-h-7 block", {
633
+ "sm:aspect-w-8 sm:aspect-h-4": r !== "vertical-split",
634
+ // calculate a square aspect ratio
635
+ "sm:aspect-w-8 sm:aspect-h-8": r === "vertical-split"
636
+ }),
637
+ style: r !== "vertical-split" && r !== "below-center" && r !== "below-left" ? { gridArea: "hero" } : void 0,
638
+ ref: t,
639
+ children: [
640
+ /* @__PURE__ */ a("source", { media: "(min-width: 768px)", srcSet: e.mdSrc }),
641
+ /* @__PURE__ */ a(
642
+ "img",
643
+ {
644
+ className: "object-cover",
645
+ decoding: "async",
646
+ src: e.src,
647
+ alt: e.alt
648
+ }
649
+ )
650
+ ]
651
+ }
652
+ );
653
+ }
654
+ ), Lr = h(
655
+ (e, t) => {
656
+ const { bgColor: r, contentPosition: n, hasImage: o } = v(J), { children: s, className: i, heading: c, description: m, ...l } = e, u = ce(n);
657
+ return /* @__PURE__ */ f(
658
+ "div",
659
+ {
660
+ className: d(
661
+ i,
662
+ "relative grid grid-flow-row grid-cols-[minmax(auto,_37rem)] content-center gap-6 rounded-3xl py-10 px-6 text-center max-md:mx-4 md:p-12",
663
+ {
664
+ // On mobile we use negative margin on the content to pull the content up into the image
665
+ "max-md:-mt-18": o,
666
+ "text-white": r !== "white",
667
+ "bg-green-dark": r === "green",
668
+ "bg-blue-dark": r === "blue",
669
+ "bg-white": r === "white",
670
+ // vertical split
671
+ // 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
672
+ "md:z-10 md:-order-1 md:mt-0 md:-mr-5 md:justify-center md:rounded-l-none md:text-left": n === "vertical-split",
673
+ // below center/content header
674
+ "justify-center md:mx-auto md:w-4/5": n === "below-center",
675
+ "md:-mt-18": o && n === "below-center",
676
+ // Below left style
677
+ "md:ml-[8%] md:-mt-32 md:max-w-[58%] md:text-left": n === "below-left",
678
+ // styles for when the contain is fully contained within the image
679
+ "md:my-9 md:mx-32 md:w-2/5": u,
680
+ "self-end justify-self-start": n === "bottom-left",
681
+ "self-start justify-self-start": n === "top-left",
682
+ "self-start justify-self-end": n === "top-right",
683
+ "self-end justify-self-end": n === "bottom-right",
684
+ "self-center justify-self-center": n === "center"
685
+ }
686
+ ),
687
+ ...l,
688
+ style: u ? { gridArea: "hero" } : void 0,
689
+ ref: t,
690
+ children: [
691
+ /* @__PURE__ */ a("h1", { children: c }),
692
+ m && /* @__PURE__ */ a("p", { className: "text-lg font-semibold md:text-xl", children: m }),
693
+ s
694
+ ]
695
+ }
696
+ );
697
+ }
698
+ ), Mr = h(
699
+ (e, t) => {
700
+ const { className: r, ...n } = e, { contentPosition: o } = v(J);
701
+ return /* @__PURE__ */ a(
702
+ "div",
703
+ {
704
+ className: d(
705
+ r,
706
+ "grid items-center justify-center justify-items-center gap-4 md:grid-flow-col",
707
+ // Left align actions/buttons
708
+ {
709
+ "md:justify-start": o === "vertical-split" || o === "below-left"
710
+ }
711
+ ),
712
+ ...n,
713
+ ref: t
714
+ }
715
+ );
716
+ }
717
+ ), me = h((e, t) => {
718
+ const {
719
+ className: r,
720
+ isInvalid: n,
721
+ size: o,
722
+ as: s,
723
+ type: i,
724
+ rightAddon: c,
725
+ leftAddon: m,
726
+ ...l
727
+ } = e, u = s ?? "input", g = Ge(u, i);
728
+ return /* @__PURE__ */ f(
729
+ "div",
730
+ {
731
+ className: d(
732
+ r,
733
+ "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",
734
+ {
735
+ "focus-within:border-blue-dark border-black": !n,
736
+ "border-red focus-within:border-red": n,
737
+ "w-fit": o != null,
738
+ "w-full": o == null,
739
+ "pl-4": m,
740
+ "pr-4": c
741
+ }
742
+ ),
743
+ children: [
744
+ m,
745
+ /* @__PURE__ */ a(
746
+ u,
747
+ {
748
+ "aria-invalid": n,
749
+ ref: t,
750
+ className: "focus:none placeholder-gray w-full rounded-lg border-none px-4 py-3.5 focus:outline-none",
751
+ size: o,
752
+ type: g,
753
+ ...l
754
+ }
755
+ ),
756
+ c
757
+ ]
758
+ }
759
+ );
760
+ });
761
+ function Ge(e, t) {
762
+ if (t != null)
763
+ return t;
764
+ if (e === "input")
765
+ return "text";
766
+ }
767
+ const kr = (e) => {
768
+ let t = "";
769
+ return e.icon && (t = "inline-flex items-center gap-2"), /* @__PURE__ */ f("a", { className: t, href: e.href, children: [
770
+ e.icon,
771
+ e.children
772
+ ] });
773
+ }, q = y({
774
+ setIsExpanded: w,
775
+ isExpanded: !1,
776
+ collapsibleId: ""
777
+ }), zr = (e) => {
778
+ const { className: t, children: r, ...n } = e, o = $(), [s, i] = L(!1), c = k(
779
+ () => ({ isExpanded: s, setIsExpanded: i, collapsibleId: o }),
780
+ [s, o]
781
+ );
782
+ return /* @__PURE__ */ a(P.Provider, { value: "white", children: /* @__PURE__ */ a(q.Provider, { value: c, children: /* @__PURE__ */ a(
783
+ "div",
784
+ {
785
+ className: d(
786
+ t,
787
+ "bg-blue relative pt-6 pb-12 text-white before:absolute before:bottom-0 before:left-0 before:right-0 before:h-6 before:rounded-t-3xl before:bg-white md:pt-8 md:pb-14"
788
+ ),
789
+ ...n,
790
+ children: /* @__PURE__ */ a("div", { className: "container", children: r })
791
+ }
792
+ ) }) });
793
+ }, Pr = (e) => {
794
+ const { className: t, children: r, ...n } = e, { isExpanded: o } = v(q);
795
+ return /* @__PURE__ */ a(
796
+ "nav",
797
+ {
798
+ className: d(
799
+ t,
800
+ "my-8 flex flex-col md:mb-0 md:flex md:flex-row md:flex-wrap md:gap-x-8",
801
+ {
802
+ hidden: !o
803
+ }
804
+ ),
805
+ ...n,
806
+ children: r
807
+ }
808
+ );
809
+ }, Sr = h(
810
+ (e, t) => {
811
+ const { active: r, className: n, children: o, ...s } = e;
812
+ return /* @__PURE__ */ a(
813
+ "a",
814
+ {
815
+ "aria-current": r ? "page" : void 0,
816
+ className: d(
817
+ n,
818
+ "border-b border-[#0156E0] py-3 no-underline md:border-b-2 md:border-transparent md:py-2 md:hover:border-white",
819
+ {
820
+ "md:bg-blue-dark font-bold md:-mx-3 md:rounded-t-lg md:px-3": r
821
+ }
822
+ ),
823
+ ref: t,
824
+ ...s,
825
+ children: o
826
+ }
827
+ );
828
+ }
829
+ ), He = () => {
830
+ const { isExpanded: e, setIsExpanded: t, collapsibleId: r } = v(q);
831
+ let n = ve, o = "Meny";
832
+ return e && (n = xe, o = "Lukk"), /* @__PURE__ */ f(
833
+ "button",
834
+ {
835
+ "aria-controls": r,
836
+ "aria-expanded": e,
837
+ className: "inline-flex items-center gap-2 md:hidden",
838
+ onClick: () => t((s) => !s),
839
+ children: [
840
+ o,
841
+ " ",
842
+ /* @__PURE__ */ a(n, {})
843
+ ]
844
+ }
845
+ );
846
+ }, Vr = (e) => {
847
+ const { className: t, children: r, logo: n, ...o } = e;
848
+ return /* @__PURE__ */ f(
849
+ "div",
850
+ {
851
+ className: d(t, "flex items-center justify-between gap-8"),
852
+ ...o,
853
+ children: [
854
+ n,
855
+ /* @__PURE__ */ a("div", { className: "hidden md:block", children: r }),
856
+ /* @__PURE__ */ a(He, {})
857
+ ]
858
+ }
859
+ );
860
+ }, Jr = (e) => {
861
+ const { className: t, children: r, ...n } = e, { collapsibleId: o, isExpanded: s } = v(q);
862
+ return /* @__PURE__ */ a(
863
+ "div",
864
+ {
865
+ ...n,
866
+ "aria-hidden": !s,
867
+ className: d(t, "md:-mb-8 md:block", {
868
+ hidden: !s
869
+ }),
870
+ id: o,
871
+ children: r
872
+ }
873
+ );
874
+ }, Or = (e) => {
875
+ const { isExpanded: t } = v(q), r = ze(!1);
876
+ return !t || !r ? null : /* @__PURE__ */ a(Z, { children: e.children });
877
+ }, N = 2, O = y({ currentPage: 0, pageCount: 0 }), Tr = (e) => {
878
+ const {
879
+ className: t,
880
+ page: r,
881
+ count: n,
882
+ onChange: o,
883
+ getItemHref: s,
884
+ getItemAriaLabel: i,
885
+ nextPageAriaLabel: c,
886
+ prevPageAriaLabel: m,
887
+ ...l
888
+ } = e, u = k(
889
+ () => ({
890
+ currentPage: Math.max(1, Math.min(r, n)),
891
+ pageCount: Math.max(1, n)
892
+ }),
893
+ [r, n]
894
+ ), g = (b) => (p) => {
895
+ o && (p.preventDefault(), o(b));
896
+ };
897
+ return /* @__PURE__ */ a(O.Provider, { value: u, children: /* @__PURE__ */ f(
898
+ "nav",
899
+ {
900
+ className: d("flex justify-center gap-2 sm:gap-4", t),
901
+ ...l,
902
+ children: [
903
+ /* @__PURE__ */ a(
904
+ _e,
905
+ {
906
+ "aria-label": m,
907
+ href: s(r - 1),
908
+ onClick: g(r - 1)
909
+ }
910
+ ),
911
+ /* @__PURE__ */ a(
912
+ D,
913
+ {
914
+ page: 1,
915
+ href: s(1),
916
+ onClick: g(1),
917
+ "aria-label": i(1),
918
+ selected: r === 1
919
+ }
920
+ ),
921
+ n > 2 + N * 2 && r > N + 2 && /* @__PURE__ */ a($e, {}),
922
+ /* @__PURE__ */ a(er, { children: (b) => /* @__PURE__ */ a(
923
+ D,
924
+ {
925
+ href: s(b),
926
+ onClick: g(b),
927
+ "aria-label": i(b),
928
+ page: b,
929
+ selected: b === r
930
+ },
931
+ b
932
+ ) }),
933
+ /* @__PURE__ */ a(
934
+ De,
935
+ {
936
+ "aria-label": c,
937
+ href: s(r + 1),
938
+ onClick: g(r + 1)
939
+ }
940
+ )
941
+ ]
942
+ }
943
+ ) });
944
+ }, De = h((e, t) => {
945
+ const { currentPage: r, pageCount: n } = v(O), o = r >= n;
946
+ return /* @__PURE__ */ a(
947
+ B,
948
+ {
949
+ "aria-hidden": o,
950
+ className: o ? "invisible" : void 0,
951
+ ref: t,
952
+ rel: "next",
953
+ ...e,
954
+ children: /* @__PURE__ */ a(Ne, {})
955
+ }
956
+ );
957
+ }), _e = h((e, t) => {
958
+ const { currentPage: r } = v(O), n = r <= 1;
959
+ return /* @__PURE__ */ a(
960
+ B,
961
+ {
962
+ "aria-hidden": n,
963
+ className: n ? "invisible" : void 0,
964
+ ref: t,
965
+ rel: "prev",
966
+ ...e,
967
+ children: /* @__PURE__ */ a(we, {})
968
+ }
969
+ );
970
+ }), B = h((e, t) => {
971
+ const { className: r, ...n } = e;
972
+ return /* @__PURE__ */ a(
973
+ "a",
974
+ {
975
+ className: d(
976
+ r,
977
+ "aria-[current]:border-green hover:bg-gray-concrete flex h-9 w-9 items-center justify-center rounded-lg border-2 border-transparent no-underline sm:h-10 sm:w-10"
978
+ ),
979
+ ref: t,
980
+ ...n
981
+ }
982
+ );
983
+ }), $e = () => /* @__PURE__ */ a("span", { className: "flex h-9 w-9 cursor-default items-center justify-center border-2 border-transparent sm:h-10 sm:w-10", children: "..." }), er = ({ children: e }) => {
984
+ const { currentPage: t, pageCount: r } = v(O), n = Math.min(
985
+ Math.max(2 + N * 2, t + N),
986
+ r
987
+ );
988
+ let o = Math.max(
989
+ Math.min(t - N, n - N * 2),
990
+ 1
991
+ );
992
+ return o - N === 0 && (o = o - 1), Array.from({ length: n - o }, (i, c) => o + c + 1).map((i) => e(i));
993
+ }, D = h((e, t) => {
994
+ const { page: r, selected: n, ...o } = e;
995
+ return /* @__PURE__ */ a(B, { "aria-current": n ? "page" : void 0, ref: t, ...o, children: r });
996
+ }), ue = y({
997
+ defaultValue: void 0,
998
+ isControlled: !1,
999
+ name: void 0,
1000
+ onChange: w,
1001
+ required: !1,
1002
+ value: void 0,
1003
+ error: !1
1004
+ }), Fr = h((e, t) => {
1005
+ const { children: r, className: n, ...o } = e, { defaultValue: s, isControlled: i, name: c, onChange: m, required: l, value: u, error: g } = v(ue);
1006
+ return /* @__PURE__ */ f("label", { className: d(n, "flex cursor-pointer gap-2.5"), children: [
1007
+ /* @__PURE__ */ a(
1008
+ "input",
1009
+ {
1010
+ className: d("radio", g && "border-red"),
1011
+ defaultChecked: i ? void 0 : o.value === s,
1012
+ checked: i ? o.value === u : void 0,
1013
+ name: c,
1014
+ onChange: i ? m : void 0,
1015
+ required: l,
1016
+ type: "radio",
1017
+ ref: t,
1018
+ ...o
1019
+ }
1020
+ ),
1021
+ r
1022
+ ] });
1023
+ }), Zr = h(
1024
+ (e, t) => {
1025
+ const r = "value" in e, {
1026
+ className: n,
1027
+ defaultValue: o,
1028
+ description: s,
1029
+ error: i,
1030
+ id: c,
1031
+ children: m,
1032
+ label: l,
1033
+ name: u,
1034
+ onChange: g,
1035
+ required: b,
1036
+ value: p,
1037
+ ...A
1038
+ } = e, I = R(
1039
+ (ge) => {
1040
+ const be = ge.target.value;
1041
+ g == null || g(be);
1042
+ },
1043
+ [g]
1044
+ ), fe = k(
1045
+ () => ({
1046
+ defaultValue: o,
1047
+ isControlled: r,
1048
+ name: u,
1049
+ onChange: I,
1050
+ required: b,
1051
+ value: p,
1052
+ error: Boolean(i)
1053
+ }),
1054
+ [o, r, u, I, b, p, i]
1055
+ ), T = C(c), Q = `${T}:label`, U = `${T}:help`, G = T + "err", F = i;
1056
+ return /* @__PURE__ */ a(ue.Provider, { value: fe, children: /* @__PURE__ */ f(
1057
+ "div",
1058
+ {
1059
+ "aria-describedby": d({
1060
+ [G]: F,
1061
+ [U]: s
1062
+ }) || void 0,
1063
+ "aria-invalid": !!i,
1064
+ "aria-labelledby": l ? Q : void 0,
1065
+ className: d(n, "flex flex-col gap-4"),
1066
+ role: "radiogroup",
1067
+ ref: t,
1068
+ ...A,
1069
+ children: [
1070
+ l && /* @__PURE__ */ a(V, { id: Q, isRequired: b, isInvalid: !!i, children: l }),
1071
+ s && /* @__PURE__ */ a(S, { id: U, children: s }),
1072
+ m,
1073
+ F && /* @__PURE__ */ a(E, { id: G, children: F })
1074
+ ]
1075
+ }
1076
+ ) });
1077
+ }
1078
+ ), rr = h(
1079
+ (e, t) => {
1080
+ const { children: r, className: n, isInvalid: o, size: s, ...i } = e, c = s === "small";
1081
+ return /* @__PURE__ */ f("div", { className: d(n, "relative", c && "text-sm"), children: [
1082
+ /* @__PURE__ */ a(
1083
+ "select",
1084
+ {
1085
+ "aria-invalid": o,
1086
+ ...i,
1087
+ className: d(
1088
+ "w-full cursor-pointer appearance-none border border-b-[3px] bg-white focus:-mt-0.5 focus:-ml-0.5 focus:border-[3px] focus:shadow focus:outline-none",
1089
+ c ? "rounded px-3.5 py-2" : "rounded-lg px-4 py-3.5",
1090
+ o ? "border-red focus:border-red" : "focus:border-blue-dark border-black"
1091
+ ),
1092
+ ref: t,
1093
+ children: r
1094
+ }
1095
+ ),
1096
+ /* @__PURE__ */ a(
1097
+ re,
1098
+ {
1099
+ className: d(
1100
+ "pointer-events-none absolute top-0 bottom-0 my-auto",
1101
+ c ? "right-3.5" : "right-4"
1102
+ )
1103
+ }
1104
+ )
1105
+ ] });
1106
+ }
1107
+ ), jr = h(
1108
+ (e, t) => {
1109
+ const {
1110
+ description: r,
1111
+ error: n,
1112
+ id: o,
1113
+ label: s,
1114
+ disableValidation: i = !1,
1115
+ ...c
1116
+ } = e, m = M(null), { validity: l, validationMessage: u } = z(
1117
+ m,
1118
+ !i
1119
+ ), g = C(o), b = g + "help", p = g + "err", A = n || u;
1120
+ return /* @__PURE__ */ f("div", { className: "grid gap-2", children: [
1121
+ /* @__PURE__ */ a(
1122
+ V,
1123
+ {
1124
+ htmlFor: g,
1125
+ isRequired: e.required,
1126
+ isInvalid: !!n || l === "invalid",
1127
+ children: s
1128
+ }
1129
+ ),
1130
+ r && /* @__PURE__ */ a(S, { id: b, children: r }),
1131
+ /* @__PURE__ */ a(
1132
+ rr,
1133
+ {
1134
+ id: g,
1135
+ ref: K(m, t),
1136
+ ...c,
1137
+ isInvalid: !!n || l === "invalid",
1138
+ "aria-describedby": d({
1139
+ [p]: A,
1140
+ [b]: r
1141
+ }) || void 0
1142
+ }
1143
+ ),
1144
+ A && /* @__PURE__ */ a(E, { id: p, children: A })
1145
+ ] });
1146
+ }
1147
+ ), Wr = (e) => {
1148
+ const { heading: t, children: r, closeSnackbar: n } = e, [o, s] = L(!1);
1149
+ return /* @__PURE__ */ a("div", { className: "container max-w-[59rem]", children: /* @__PURE__ */ a("div", { className: "bg-orange-light px-8 py-4 max-md:p-4", children: /* @__PURE__ */ f("div", { className: "snackbar grid items-center", children: [
1150
+ /* @__PURE__ */ a(ne, { className: "text-orange snackbar-icon mr-4 self-start md:mr-8 md:text-2xl" }),
1151
+ /* @__PURE__ */ a(
1152
+ "h3",
1153
+ {
1154
+ className: d(
1155
+ "snackbar-header min-w-0 max-w-prose text-base font-medium",
1156
+ {
1157
+ "overflow-hidden overflow-ellipsis whitespace-nowrap": !o
1158
+ }
1159
+ ),
1160
+ children: t
1161
+ }
1162
+ ),
1163
+ /* @__PURE__ */ f("div", { className: "snackbar-actions flex justify-end gap-4 max-md:mt-3 md:ml-4", children: [
1164
+ /* @__PURE__ */ a(
1165
+ _,
1166
+ {
1167
+ "aria-expanded": o,
1168
+ onClick: () => s(!o),
1169
+ children: o ? "Les mindre" : "Les mer"
1170
+ }
1171
+ ),
1172
+ /* @__PURE__ */ a(_, { onClick: n, children: "Ok" })
1173
+ ] }),
1174
+ o && r
1175
+ ] }) }) });
1176
+ }, _ = (e) => /* @__PURE__ */ a(
1177
+ "button",
1178
+ {
1179
+ className: d(
1180
+ e.className,
1181
+ "focus-visible:ring-offset flex-shrink-0 underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black"
1182
+ ),
1183
+ ...e,
1184
+ children: e.children
1185
+ }
1186
+ ), Kr = (e) => /* @__PURE__ */ a(
1187
+ "div",
1188
+ {
1189
+ className: "snackbar-content my-4 max-h-[50vh] max-w-prose overflow-y-auto",
1190
+ ...e,
1191
+ children: e.children
1192
+ }
1193
+ ), tr = (e) => {
1194
+ const { align: t = "center", children: r, className: n, ...o } = e;
1195
+ return /* @__PURE__ */ a("ol", { className: d(n, "flex flex-col gap-8 md:gap-12"), ...o, children: j.map(r, (s) => W(s, {
1196
+ align: t
1197
+ })) });
1198
+ }, nr = (e) => {
1199
+ const { className: t, children: r, bullet: n, align: o = "center", ...s } = e;
1200
+ return /* @__PURE__ */ f(
1201
+ "li",
1202
+ {
1203
+ className: d(
1204
+ t,
1205
+ "group relative flex gap-4 text-sm md:gap-8 md:text-base",
1206
+ { "items-center": o === "center" }
1207
+ ),
1208
+ ...s,
1209
+ children: [
1210
+ /* @__PURE__ */ a(ar, { align: o, children: n }),
1211
+ r
1212
+ ]
1213
+ }
1214
+ );
1215
+ }, ar = ({ align: e, ...t }) => /* @__PURE__ */ a(
1216
+ "span",
1217
+ {
1218
+ "aria-hidden": !0,
1219
+ className: d(
1220
+ "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",
1221
+ {
1222
+ "before:absolute before:top-0 before:bottom-1/2 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",
1223
+ "after:top-10 after:-bottom-8 after:md:-bottom-12 after:md:top-20": e === "top"
1224
+ }
1225
+ ),
1226
+ ...t
1227
+ }
1228
+ );
1229
+ tr.Item = nr;
1230
+ const Yr = h(
1231
+ (e, t) => {
1232
+ const {
1233
+ description: r,
1234
+ error: n,
1235
+ id: o,
1236
+ label: s,
1237
+ disableValidation: i = !1,
1238
+ ...c
1239
+ } = e, m = M(null), { validity: l, validationMessage: u } = z(
1240
+ m,
1241
+ !i
1242
+ ), g = C(o), b = g + "help", p = g + "err", A = n || u;
1243
+ return /* @__PURE__ */ f("div", { className: "grid gap-2", children: [
1244
+ /* @__PURE__ */ a(
1245
+ V,
1246
+ {
1247
+ htmlFor: g,
1248
+ isRequired: e.required,
1249
+ isInvalid: !!n || l === "invalid",
1250
+ children: s
1251
+ }
1252
+ ),
1253
+ r && /* @__PURE__ */ a(S, { id: b, children: r }),
1254
+ /* @__PURE__ */ a(
1255
+ me,
1256
+ {
1257
+ as: "textarea",
1258
+ ref: K(m, t),
1259
+ id: g,
1260
+ ...c,
1261
+ isInvalid: !!n || l === "invalid",
1262
+ "aria-describedby": d({
1263
+ [p]: A,
1264
+ [b]: r
1265
+ }) || void 0
1266
+ }
1267
+ ),
1268
+ A && /* @__PURE__ */ a(E, { id: p, children: A })
1269
+ ] });
1270
+ }
1271
+ ), Xr = h(
1272
+ (e, t) => {
1273
+ const {
1274
+ description: r,
1275
+ error: n,
1276
+ id: o,
1277
+ label: s,
1278
+ type: i = "text",
1279
+ disableValidation: c = !1,
1280
+ ...m
1281
+ } = e, l = M(null), { validity: u, validationMessage: g } = z(
1282
+ l,
1283
+ !c
1284
+ ), b = C(o), p = b + "help", A = b + "err", I = n || g;
1285
+ return /* @__PURE__ */ f("div", { className: "grid gap-2", children: [
1286
+ /* @__PURE__ */ a(
1287
+ V,
1288
+ {
1289
+ htmlFor: b,
1290
+ isRequired: e.required,
1291
+ isInvalid: !!n || u === "invalid",
1292
+ children: s
1293
+ }
1294
+ ),
1295
+ r && /* @__PURE__ */ a(S, { id: p, children: r }),
1296
+ /* @__PURE__ */ a(
1297
+ me,
1298
+ {
1299
+ id: b,
1300
+ ref: K(l, t),
1301
+ type: i,
1302
+ ...m,
1303
+ isInvalid: !!n || u === "invalid",
1304
+ "aria-describedby": d({
1305
+ [A]: I,
1306
+ [p]: r
1307
+ }) || void 0
1308
+ }
1309
+ ),
1310
+ I && /* @__PURE__ */ a(E, { id: A, children: I })
1311
+ ] });
1312
+ }
1313
+ );
1314
+ export {
1315
+ Y as Accordion,
1316
+ Oe as AccordionContent,
1317
+ Je as AccordionHeader,
1318
+ Ve as AccordionItem,
1319
+ mr as Alert,
1320
+ ur as Banner,
1321
+ fr as BannerImage,
1322
+ gr as Button,
1323
+ P as ButtonColorContext,
1324
+ br as Campaign,
1325
+ hr as Card,
1326
+ vr as CardContent,
1327
+ pr as CardImage,
1328
+ xr as CardLinkOverlay,
1329
+ Ar as CardList,
1330
+ Nr as Checkbox,
1331
+ wr as Chip,
1332
+ yr as Footer,
1333
+ Ir as Form,
1334
+ Cr as FormError,
1335
+ E as FormErrorMessage,
1336
+ Ue as FormHeading,
1337
+ S as FormHelperText,
1338
+ V as FormLabel,
1339
+ Er as FormSuccess,
1340
+ qr as Hero,
1341
+ Mr as HeroActions,
1342
+ Lr as HeroContent,
1343
+ J as HeroContext,
1344
+ Rr as HeroImage,
1345
+ me as Input,
1346
+ kr as Link,
1347
+ zr as Navbar,
1348
+ Jr as NavbarCollapsible,
1349
+ Vr as NavbarContent,
1350
+ Or as NavbarExpandedMobileContent,
1351
+ Sr as NavbarItem,
1352
+ Pr as NavbarItems,
1353
+ Tr as Pagination,
1354
+ Fr as Radio,
1355
+ Zr as RadioGroup,
1356
+ jr as Select,
1357
+ Wr as Snackbar,
1358
+ _ as SnackbarButton,
1359
+ Kr as SnackbarContent,
1360
+ tr as StepList,
1361
+ nr as StepListItem,
1362
+ Yr as TextArea,
1363
+ Xr as TextField,
1364
+ se as useBlockBackgroundColor,
1365
+ C as useFallbackId,
1366
+ z as useFormControlValidity,
1367
+ oe as useMedia,
1368
+ ke as usePrefersReducedMotion,
1369
+ ze as useScreenMaxWidthMd
1370
+ };