rk-designsystem 1.3.0 → 1.3.2

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 (64) hide show
  1. package/README.md +14 -7
  2. package/dist/assets/images/ChevronLeftIcon.js +31 -0
  3. package/dist/assets/images/ChevronRightIcon.js +31 -0
  4. package/dist/components/Alert/index.js +16 -0
  5. package/dist/components/Avatar/index.js +9 -0
  6. package/dist/components/Badge/index.js +11 -0
  7. package/dist/components/Breadcrumbs/index.js +9 -0
  8. package/dist/components/Button/index.js +11 -0
  9. package/dist/components/Card/index.js +8 -0
  10. package/dist/components/Carousel/index.js +379 -0
  11. package/dist/components/Carousel/styles.module.css.js +38 -0
  12. package/dist/components/Checkbox/index.js +10 -0
  13. package/dist/components/Chip/index.js +6 -0
  14. package/dist/components/DateInput/index.js +258 -0
  15. package/dist/components/DateInput/styles.module.css.js +20 -0
  16. package/dist/components/DatePicker/index.js +360 -0
  17. package/dist/components/DatePicker/styles.module.css.js +30 -0
  18. package/dist/components/Details/index.js +6 -0
  19. package/dist/components/Dialog/index.js +6 -0
  20. package/dist/components/Divider/index.js +6 -0
  21. package/dist/components/Donor/index.js +382 -0
  22. package/dist/components/Donor/styles.module.css.js +42 -0
  23. package/dist/components/Dropdown/index.js +12 -0
  24. package/dist/components/ErrorSummary/index.js +6 -0
  25. package/dist/components/Field/index.js +10 -0
  26. package/dist/components/Fieldset/index.js +6 -0
  27. package/dist/components/Footer/index.js +722 -0
  28. package/dist/components/Footer/styles.module.css.js +138 -0
  29. package/dist/components/GraphicElement/index.js +317 -0
  30. package/dist/components/GraphicElement/styles.module.css.js +16 -0
  31. package/dist/components/Header/index.js +677 -0
  32. package/dist/components/Header/styles.module.css.js +114 -0
  33. package/dist/components/Heading/index.js +9 -0
  34. package/dist/components/Input/index.js +7 -0
  35. package/dist/components/Label/index.js +9 -0
  36. package/dist/components/Link/index.js +6 -0
  37. package/dist/components/List/index.js +6 -0
  38. package/dist/components/Pagination/index.js +11 -0
  39. package/dist/components/Paragraph/index.js +11 -0
  40. package/dist/components/Popover/index.js +6 -0
  41. package/dist/components/Radio/index.js +7 -0
  42. package/dist/components/Search/index.js +10 -0
  43. package/dist/components/Select/index.js +6 -0
  44. package/dist/components/SkeletonLoader/index.js +6 -0
  45. package/dist/components/SkipLink/index.js +6 -0
  46. package/dist/components/SpinnerLoader/index.js +6 -0
  47. package/dist/components/Suggestion/index.js +7 -0
  48. package/dist/components/Switch/index.js +6 -0
  49. package/dist/components/Table/index.js +6 -0
  50. package/dist/components/Tabs/index.js +6 -0
  51. package/dist/components/Tag/index.js +14 -0
  52. package/dist/components/Textarea/index.js +6 -0
  53. package/dist/components/Textfield/index.js +6 -0
  54. package/dist/components/ToggleGroup/index.js +6 -0
  55. package/dist/components/Tooltip/index.js +6 -0
  56. package/dist/components/ValidationMessage/index.js +9 -0
  57. package/dist/context/LanguageContext.js +91 -0
  58. package/dist/index.d.ts +170 -147
  59. package/dist/index.js +118 -0
  60. package/dist/rk-designsystem.css +1 -1
  61. package/dist/{componentlibrary.es.js → translations/index.js} +267 -3904
  62. package/dist/utils/search-index.js +106 -0
  63. package/package.json +21 -35
  64. package/dist/componentlibrary.umd.js +0 -1266
package/README.md CHANGED
@@ -66,8 +66,8 @@ The design system includes the following components:
66
66
  npm install rk-designsystem
67
67
  ```
68
68
 
69
- > Since v2 the library declares `@digdir/designsystemet-react` and
70
- > `@digdir/designsystemet-css` as peer dependencies (`^1.13.2`) and requires
69
+ > Since 1.4.0 the library declares `@digdir/designsystemet-react` and
70
+ > `@digdir/designsystemet-css` as peer dependencies (`~1.13.2`) and requires
71
71
  > React `>=18.3.1`. npm 7+ installs peers automatically; with older
72
72
  > setups install them alongside the package.
73
73
 
@@ -221,13 +221,20 @@ The guide remains the main human-readable reference. The manifest is additive an
221
221
 
222
222
  This guide provides a set of standards and best practices for creating new components. Following these guidelines ensures that our component library remains consistent, accessible, and easy to maintain.
223
223
 
224
- ## Migrating to v2
224
+ ## Migration notes (1.3.0 / 1.4.0)
225
225
 
226
- v2 collects the breaking changes below. (Note: 1.2.5 already contained the
226
+ The library is pre-production, so breaking changes ship as minor versions
227
+ until it has real production consumers. The breaking changes below landed in
228
+ 1.3.0 unless marked otherwise. (Note: 1.2.5 already contained the
227
229
  Button prop removals, mislabeled as a patch — 1.2.5 is deprecated.)
228
230
 
229
- - **Peer dependencies:** `@digdir/designsystemet-react` and
230
- `@digdir/designsystemet-css` (`^1.13.2`) are peers; React `>=18.3.1 || ^19`.
231
+ - **Peer dependencies (1.4.0):** `@digdir/designsystemet-react` and
232
+ `@digdir/designsystemet-css` (`~1.13.2`) are peers; React `>=18.3.1 || ^19`.
233
+ - **ESM-only (1.4.0):** the CommonJS/UMD entry is removed, so
234
+ `require('rk-designsystem')` now fails explicitly. It never actually worked:
235
+ the UMD file was parsed as ESM (the package is `"type": "module"`), and the
236
+ underlying Digdir library's own CJS entry is broken as well. Use `import`
237
+ (every bundler and modern Node setup).
231
238
  - **`import 'rk-designsystem/styles'` now delivers everything:** Digdir base,
232
239
  the Røde Kors theme, the component CSS and Source Sans 3.
233
240
  - **Button:** `shape`/`pill` and `soft` props are removed — styling comes
@@ -353,7 +360,7 @@ Your Storybook file is the official documentation. It must be clear and comprehe
353
360
 
354
361
  ## Using NAV/Aksel Icons
355
362
 
356
- This library is designed to work seamlessly with the official icon set from NAV/Aksel. Since v2, `@navikt/aksel-icons` ships as a regular dependency of `rk-designsystem` — no separate install needed. To use the icons directly in your own code:
363
+ This library is designed to work seamlessly with the official icon set from NAV/Aksel. Since 1.4.0, `@navikt/aksel-icons` ships as a regular dependency of `rk-designsystem` — no separate install needed. To use the icons directly in your own code:
357
364
 
358
365
  ### Install (only for direct use in your app)
359
366
 
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { jsxs as n, jsx as o } from "react/jsx-runtime";
3
+ const i = ({ title: e, ...l }) => /* @__PURE__ */ n(
4
+ "svg",
5
+ {
6
+ xmlns: "http://www.w3.org/2000/svg",
7
+ width: "1em",
8
+ height: "1em",
9
+ viewBox: "0 0 28 28",
10
+ fill: "none",
11
+ "aria-hidden": e ? void 0 : !0,
12
+ focusable: "false",
13
+ ...l,
14
+ children: [
15
+ e && /* @__PURE__ */ o("title", { children: e }),
16
+ /* @__PURE__ */ o(
17
+ "path",
18
+ {
19
+ fillRule: "evenodd",
20
+ clipRule: "evenodd",
21
+ d: "M16.952 6.96459C16.6103 6.62289 16.0563 6.62289 15.7146 6.96459L9.2979 13.3813C8.95621 13.723 8.95621 14.277 9.2979 14.6187L15.7146 21.0354C16.0563 21.3771 16.6103 21.3771 16.952 21.0354C17.2937 20.6937 17.2937 20.1396 16.952 19.7979L11.1541 14L16.952 8.20203C17.2937 7.86032 17.2937 7.3063 16.952 6.96459Z",
22
+ fill: "currentColor"
23
+ }
24
+ )
25
+ ]
26
+ }
27
+ );
28
+ i.displayName = "ChevronLeftIcon";
29
+ export {
30
+ i as ChevronLeftIcon
31
+ };
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { jsxs as l, jsx as o } from "react/jsx-runtime";
3
+ const n = ({ title: e, ...i }) => /* @__PURE__ */ l(
4
+ "svg",
5
+ {
6
+ xmlns: "http://www.w3.org/2000/svg",
7
+ width: "1em",
8
+ height: "1em",
9
+ viewBox: "0 0 28 28",
10
+ fill: "none",
11
+ "aria-hidden": e ? void 0 : !0,
12
+ focusable: "false",
13
+ ...i,
14
+ children: [
15
+ e && /* @__PURE__ */ o("title", { children: e }),
16
+ /* @__PURE__ */ o(
17
+ "path",
18
+ {
19
+ fillRule: "evenodd",
20
+ clipRule: "evenodd",
21
+ d: "M11.048 6.96459C11.3897 6.62289 11.9437 6.62289 12.2854 6.96459L18.7021 13.3813C19.0438 13.723 19.0438 14.277 18.7021 14.6187L12.2854 21.0354C11.9437 21.3771 11.3897 21.3771 11.048 21.0354C10.7063 20.6937 10.7063 20.1396 11.048 19.7979L16.8459 14L11.048 8.20203C10.7063 7.86032 10.7063 7.3063 11.048 6.96459Z",
22
+ fill: "currentColor"
23
+ }
24
+ )
25
+ ]
26
+ }
27
+ );
28
+ n.displayName = "ChevronRightIcon";
29
+ export {
30
+ n as ChevronRightIcon
31
+ };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { jsxs as o, jsx as t } from "react/jsx-runtime";
3
+ import { forwardRef as m } from "react";
4
+ import { Alert as d } from "@digdir/designsystemet-react";
5
+ import { Heading as n } from "../Heading/index.js";
6
+ const c = m((s, i) => {
7
+ const { title: e, titleLevel: r, children: l, ...a } = s;
8
+ return /* @__PURE__ */ o(d, { ref: i, ...a, children: [
9
+ e && (r ? /* @__PURE__ */ t(n, { level: r, "data-size": "2xs", style: { marginBottom: "var(--ds-size-1)" }, children: e }) : /* @__PURE__ */ t("p", { className: "ds-heading", "data-size": "2xs", style: { marginBottom: "var(--ds-size-1)" }, children: e })),
10
+ l
11
+ ] });
12
+ });
13
+ c.displayName = "Alert";
14
+ export {
15
+ c as Alert
16
+ };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { forwardRef as o } from "react";
4
+ import { Avatar as m } from "@digdir/designsystemet-react";
5
+ const e = o((r, a) => /* @__PURE__ */ t(m, { ref: a, ...r }));
6
+ e.displayName = "Avatar";
7
+ export {
8
+ e as Avatar
9
+ };
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ import { forwardRef as i } from "react";
4
+ import { BadgePosition as r, Badge as t } from "@digdir/designsystemet-react";
5
+ const s = i((o, e) => /* @__PURE__ */ a(t, { ref: e, ...o }));
6
+ s.displayName = "Badge";
7
+ const n = r;
8
+ export {
9
+ s as Badge,
10
+ n as BadgePosition
11
+ };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { Breadcrumbs as r, BreadcrumbsItem as s, BreadcrumbsLink as e, BreadcrumbsList as c } from "@digdir/designsystemet-react";
3
+ const a = r, t = c, u = s, b = e;
4
+ export {
5
+ a as Breadcrumbs,
6
+ u as BreadcrumbsItem,
7
+ b as BreadcrumbsLink,
8
+ t as BreadcrumbsList
9
+ };
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ import { Button as u } from "@digdir/designsystemet-react";
4
+ import { forwardRef as m } from "react";
5
+ const e = m(function({ variant: t, ...o }, r) {
6
+ return /* @__PURE__ */ n(u, { ref: r, variant: t, ...o });
7
+ });
8
+ e.displayName = "Button";
9
+ export {
10
+ e as Button
11
+ };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { Card as a, CardBlock as r } from "@digdir/designsystemet-react";
3
+ const d = a, C = r;
4
+ d.displayName = "Card";
5
+ export {
6
+ d as Card,
7
+ C as CardBlock
8
+ };
@@ -0,0 +1,379 @@
1
+ "use client";
2
+ import { jsxs as u, jsx as n } from "react/jsx-runtime";
3
+ import { useEffect as p, useState as d, useRef as J, useCallback as h, useMemo as Q } from "react";
4
+ import Y from "embla-carousel-react";
5
+ import a from "./styles.module.css.js";
6
+ import { ChevronLeftIcon as Z, ChevronRightIcon as V, PlayIcon as ee, PauseIcon as te } from "@navikt/aksel-icons";
7
+ import { Button as B } from "../Button/index.js";
8
+ import { Spinner as re } from "../SpinnerLoader/index.js";
9
+ import { useLanguageOptional as oe } from "../../context/LanguageContext.js";
10
+ const ae = ({
11
+ images: e,
12
+ autoPlay: l = !1,
13
+ autoDelay: b = 5,
14
+ showArrows: v = !0,
15
+ showDots: x = !0,
16
+ variant: P,
17
+ slidesPerView: $ = 1,
18
+ slideSpacing: y = 16,
19
+ cornerRadius: g = 0,
20
+ "data-color": A,
21
+ "data-size": F
22
+ }) => {
23
+ const { t: s } = oe();
24
+ p(() => {
25
+ const r = "rk-carousel-inline-styles";
26
+ if (typeof document > "u" || document.getElementById(r)) return;
27
+ const o = ie(a), i = document.createElement("style");
28
+ i.id = r, i.textContent = o, document.head.prepend(i);
29
+ }, []);
30
+ const R = {
31
+ loop: !0,
32
+ align: "start",
33
+ containScroll: "trimSnaps",
34
+ slidesToScroll: 1
35
+ }, [T, t] = Y(R), [M, O] = d(0), [_, w] = d([]), [z, I] = d([]), k = J([]), D = (e ?? []).map((r) => r.src).join(`
36
+ `);
37
+ p(() => {
38
+ I(
39
+ (e ?? []).map((r, o) => {
40
+ const i = k.current[o];
41
+ return !!(i && i.complete && i.naturalWidth > 0);
42
+ })
43
+ );
44
+ }, [D]);
45
+ const N = h((r) => {
46
+ I((o) => {
47
+ if (o[r]) return o;
48
+ const i = [...o];
49
+ return i[r] = !0, i;
50
+ });
51
+ }, []), C = Q(() => b * 1e3, [b]), c = h(() => {
52
+ t && O(t.selectedScrollSnap());
53
+ }, [t]), H = h((r) => t && t.scrollTo(r), [t]), K = h(() => t && t.scrollPrev(), [t]), U = h(() => t && t.scrollNext(), [t]);
54
+ p(() => {
55
+ if (t)
56
+ return t.on("select", c), t.on("reInit", c), w(t.scrollSnapList()), () => {
57
+ t.off("select", c), t.off("reInit", c);
58
+ };
59
+ }, [t, c]), p(() => {
60
+ t && (t.reInit(), w(t.scrollSnapList()));
61
+ }, [t, e, $, y]);
62
+ const [f, W] = d(!1), [X, S] = d(!1), [q, L] = d(!1), j = l && !f && !X && !q;
63
+ p(() => {
64
+ if (!j || !t || !e || e.length <= 1) return;
65
+ const r = window.setInterval(() => {
66
+ t.canScrollNext() && t.scrollNext();
67
+ }, C);
68
+ return () => {
69
+ window.clearInterval(r);
70
+ };
71
+ }, [j, C, t, e]);
72
+ const E = Math.max(1, $), G = `${100 / E}%`, m = y / 2;
73
+ return /* @__PURE__ */ u(
74
+ "div",
75
+ {
76
+ className: a.carouselContainer,
77
+ "data-color": A,
78
+ "data-size": F,
79
+ "data-variant": P,
80
+ onMouseEnter: l ? () => S(!0) : void 0,
81
+ onMouseLeave: l ? () => S(!1) : void 0,
82
+ onFocus: l ? () => L(!0) : void 0,
83
+ onBlur: l ? (r) => {
84
+ r.currentTarget.contains(r.relatedTarget) || L(!1);
85
+ } : void 0,
86
+ children: [
87
+ /* @__PURE__ */ n("div", { className: a.viewport, ref: T, children: /* @__PURE__ */ n(
88
+ "div",
89
+ {
90
+ className: a.slides,
91
+ style: {
92
+ marginLeft: `-${m}px`,
93
+ marginRight: `-${m}px`
94
+ },
95
+ children: e && e.length > 0 ? e.map((r, o) => /* @__PURE__ */ n(
96
+ "div",
97
+ {
98
+ className: a.slide,
99
+ style: {
100
+ flex: `0 0 ${G}`,
101
+ paddingLeft: `${m}px`,
102
+ paddingRight: `${m}px`,
103
+ borderRadius: g > 0 ? `${g}px` : void 0,
104
+ overflow: "hidden"
105
+ // Ensure radius clips content
106
+ },
107
+ children: /* @__PURE__ */ u("div", { className: a.slideInner, style: { borderRadius: `${g}px`, overflow: "hidden", position: "relative", width: "100%", height: "100%" }, children: [
108
+ !z[o] && /* @__PURE__ */ n("div", { className: a.loaderOverlay, children: /* @__PURE__ */ n(re, { "aria-label": s("carousel.loading") }) }),
109
+ /* @__PURE__ */ n(
110
+ "img",
111
+ {
112
+ ref: (i) => {
113
+ k.current[o] = i;
114
+ },
115
+ className: `${a.image} ${z[o] ? a.loaded : a.loadingImage}`,
116
+ src: r.src,
117
+ alt: r.alt,
118
+ loading: o < E ? "eager" : "lazy",
119
+ crossOrigin: "anonymous",
120
+ onLoad: () => N(o),
121
+ onError: (i) => {
122
+ i.target.style.display = "none", N(o);
123
+ }
124
+ }
125
+ )
126
+ ] })
127
+ },
128
+ `image-${o}-${r.src}`
129
+ )) : /* @__PURE__ */ n("div", { className: a.slide, style: { flex: "0 0 100%" }, children: /* @__PURE__ */ n("div", { className: a.empty, children: "Ingen bilder" }) })
130
+ }
131
+ ) }),
132
+ (v || x && e && e.length > 1) && /* @__PURE__ */ u("div", { className: a.controls, "aria-hidden": "false", children: [
133
+ v && /* @__PURE__ */ u("div", { className: a.arrows, children: [
134
+ /* @__PURE__ */ n(
135
+ B,
136
+ {
137
+ variant: "primary",
138
+ icon: !0,
139
+ "aria-label": s("carousel.previousImage"),
140
+ onClick: K,
141
+ disabled: !e || e.length <= 1,
142
+ children: /* @__PURE__ */ n(Z, { "aria-hidden": !0 })
143
+ }
144
+ ),
145
+ /* @__PURE__ */ n(
146
+ B,
147
+ {
148
+ variant: "primary",
149
+ icon: !0,
150
+ "aria-label": s("carousel.nextImage"),
151
+ onClick: U,
152
+ disabled: !e || e.length <= 1,
153
+ children: /* @__PURE__ */ n(V, { "aria-hidden": !0 })
154
+ }
155
+ )
156
+ ] }),
157
+ x && e && e.length > 1 && /* @__PURE__ */ u("div", { className: a.dots, role: "group", "aria-label": s("carousel.imagePosition"), children: [
158
+ l && /* @__PURE__ */ n(
159
+ "button",
160
+ {
161
+ type: "button",
162
+ className: a.playPause,
163
+ onClick: () => W((r) => !r),
164
+ "aria-label": s(f ? "carousel.resumeAutoplay" : "carousel.pauseAutoplay"),
165
+ "aria-pressed": f,
166
+ children: f ? /* @__PURE__ */ n(ee, { "aria-hidden": !0 }) : /* @__PURE__ */ n(te, { "aria-hidden": !0 })
167
+ }
168
+ ),
169
+ _.map((r, o) => {
170
+ const i = o === M;
171
+ return /* @__PURE__ */ n(
172
+ "button",
173
+ {
174
+ type: "button",
175
+ className: `${a.dot} ${i ? a.dotActive : ""}`,
176
+ onClick: () => H(o),
177
+ "aria-label": `${s("carousel.goToImage")} ${o + 1}`,
178
+ "aria-current": i || void 0
179
+ },
180
+ `dot-${o}`
181
+ );
182
+ })
183
+ ] })
184
+ ] })
185
+ ]
186
+ }
187
+ );
188
+ };
189
+ ae.displayName = "Carousel";
190
+ function ie(e) {
191
+ return `
192
+ .${e.carouselContainer} {
193
+ position: relative;
194
+ display: block;
195
+ width: 100%;
196
+ height: 100%;
197
+ min-height: 200px;
198
+ background-color: var(--ds-color-background-default, #fff);
199
+ color: var(--ds-color-text-default, #2b2b2b);
200
+ border-radius: var(--ds-border-radius-md, 4px);
201
+ box-sizing: border-box;
202
+ max-width: 100%;
203
+ }
204
+ .${e.viewport} {
205
+ overflow: hidden;
206
+ width: 100%;
207
+ height: 100%;
208
+ }
209
+ .${e.slides} {
210
+ display: flex;
211
+ height: 100%;
212
+ user-select: none;
213
+ -webkit-touch-callout: none;
214
+ -khtml-user-select: none;
215
+ -moz-user-select: none;
216
+ -ms-user-select: none;
217
+ }
218
+ .${e.slide} {
219
+ position: relative;
220
+ min-width: 0;
221
+ height: 100%;
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: center;
225
+ box-sizing: border-box;
226
+ }
227
+ .${e.slideInner} {
228
+ position: relative;
229
+ width: 100%;
230
+ height: 100%;
231
+ background-color: var(--ds-color-neutral-surface-tinted, #f5f5f5);
232
+ overflow: hidden;
233
+ }
234
+ .${e.loaderOverlay} {
235
+ position: absolute;
236
+ inset: 0;
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: center;
240
+ background-color: rgba(0, 0, 0, 0.05);
241
+ z-index: 2;
242
+ }
243
+ .${e.image} {
244
+ position: absolute;
245
+ inset: 0;
246
+ width: 100%;
247
+ height: 100%;
248
+ object-fit: cover;
249
+ opacity: 0;
250
+ transition: opacity 0.3s ease-in-out;
251
+ z-index: 1;
252
+ }
253
+ .${e.image}.${e.loaded} {
254
+ opacity: 1;
255
+ }
256
+ .${e.loading} {
257
+ display: inline-flex;
258
+ align-items: center;
259
+ gap: var(--ds-size-2, 8px);
260
+ color: var(--ds-color-text-subtle, #5d5d5d);
261
+ font-size: var(--ds-font-size-2, 14px);
262
+ }
263
+ .${e.empty} {
264
+ color: var(--ds-color-text-subtle, #5d5d5d);
265
+ font-size: var(--ds-font-size-2, 14px);
266
+ text-align: center;
267
+ }
268
+ .${e.controls} {
269
+ position: absolute;
270
+ inset: 0;
271
+ display: flex;
272
+ align-items: center;
273
+ justify-content: center;
274
+ pointer-events: none;
275
+ z-index: 10;
276
+ }
277
+ .${e.arrows} {
278
+ display: flex;
279
+ align-items: center;
280
+ justify-content: space-between;
281
+ width: 100%;
282
+ padding: 0 var(--ds-size-4, 16px);
283
+ box-sizing: border-box;
284
+ pointer-events: auto;
285
+ }
286
+ .${e.dots} {
287
+ position: absolute;
288
+ left: 50%;
289
+ transform: translateX(-50%);
290
+ bottom: var(--ds-size-3, 12px);
291
+ display: inline-flex;
292
+ align-items: center;
293
+ gap: var(--ds-size-2, 8px);
294
+ pointer-events: auto;
295
+ background-color: rgba(255, 255, 255, 0.1);
296
+ backdrop-filter: blur(4px);
297
+ padding: var(--ds-size-1, 4px) var(--ds-size-2, 8px);
298
+ border-radius: 999px;
299
+ }
300
+ .${e.dot} {
301
+ width: 12px;
302
+ height: 12px;
303
+ border-radius: 999px;
304
+ border: var(--ds-border-width-default, 1px) solid var(--ds-color-border-subtle, #d6d6d6);
305
+ background-color: rgba(255, 255, 255, 0.6);
306
+ padding: 0;
307
+ margin: 0;
308
+ cursor: pointer;
309
+ transition: all 0.2s ease;
310
+ }
311
+ .${e.playPause} {
312
+ display: inline-flex;
313
+ align-items: center;
314
+ justify-content: center;
315
+ width: var(--ds-size-6, 24px);
316
+ height: var(--ds-size-6, 24px);
317
+ border-radius: 999px;
318
+ border: var(--ds-border-width-default, 1px) solid var(--ds-color-border-subtle, #d6d6d6);
319
+ background-color: rgba(255, 255, 255, 0.85);
320
+ color: var(--ds-color-neutral-text-default, #2b2b2b);
321
+ padding: 0;
322
+ margin: 0;
323
+ cursor: pointer;
324
+ }
325
+ .${e.dotActive} {
326
+ background-color: var(--ds-color-primary-color-red-base-default, #D52B1E);
327
+ border-color: var(--ds-color-primary-color-red-base-default, #D52B1E);
328
+ transform: scale(1.1);
329
+ }
330
+ @media (max-width: 640px) {
331
+ .${e.carouselContainer} {
332
+ height: auto;
333
+ min-height: 150px;
334
+ aspect-ratio: 16 / 9;
335
+ }
336
+ .${e.viewport} {
337
+ aspect-ratio: 16 / 9;
338
+ height: auto;
339
+ }
340
+ .${e.slides} {
341
+ height: auto;
342
+ min-height: 150px;
343
+ }
344
+ .${e.slide} {
345
+ height: auto;
346
+ min-height: 150px;
347
+ }
348
+ .${e.slideInner} {
349
+ aspect-ratio: 16 / 9;
350
+ height: auto;
351
+ }
352
+ .${e.arrows} {
353
+ padding: 0 var(--ds-size-2, 8px);
354
+ }
355
+ .${e.dots} {
356
+ bottom: var(--ds-size-2, 8px);
357
+ gap: var(--ds-size-1, 4px);
358
+ }
359
+ .${e.dot} {
360
+ width: 10px;
361
+ height: 10px;
362
+ }
363
+ }
364
+ @media (max-width: 400px) {
365
+ .${e.carouselContainer} {
366
+ min-height: 120px;
367
+ }
368
+ .${e.arrows} {
369
+ padding: 0 var(--ds-size-1, 4px);
370
+ }
371
+ .${e.arrows} button {
372
+ transform: scale(0.85);
373
+ }
374
+ }
375
+ `;
376
+ }
377
+ export {
378
+ ae as Carousel
379
+ };
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ const o = "_carouselContainer_oit30_1", t = "_viewport_oit30_14", s = "_slides_oit30_20", _ = "_slide_oit30_20", e = "_slideInner_oit30_40", i = "_loaderOverlay_oit30_48", n = "_image_oit30_58", l = "_loaded_oit30_69", a = "_loading_oit30_73", d = "_empty_oit30_81", r = "_controls_oit30_87", c = "_arrows_oit30_97", p = "_dots_oit30_107", y = "_playPause_oit30_122", v = "_dot_oit30_107", u = "_dotActive_oit30_153", g = {
3
+ carouselContainer: o,
4
+ viewport: t,
5
+ slides: s,
6
+ slide: _,
7
+ slideInner: e,
8
+ loaderOverlay: i,
9
+ image: n,
10
+ loaded: l,
11
+ loading: a,
12
+ empty: d,
13
+ controls: r,
14
+ arrows: c,
15
+ dots: p,
16
+ playPause: y,
17
+ dot: v,
18
+ dotActive: u
19
+ };
20
+ export {
21
+ c as arrows,
22
+ o as carouselContainer,
23
+ r as controls,
24
+ g as default,
25
+ v as dot,
26
+ u as dotActive,
27
+ p as dots,
28
+ d as empty,
29
+ n as image,
30
+ l as loaded,
31
+ i as loaderOverlay,
32
+ a as loading,
33
+ y as playPause,
34
+ _ as slide,
35
+ e as slideInner,
36
+ s as slides,
37
+ t as viewport
38
+ };
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { Checkbox as e, useCheckboxGroup as o, Fieldset as s } from "@digdir/designsystemet-react";
3
+ const c = e, t = s, x = o;
4
+ c.displayName = "Checkbox";
5
+ t.displayName = "Fieldset";
6
+ export {
7
+ c as Checkbox,
8
+ t as Fieldset,
9
+ x as useCheckboxGroup
10
+ };
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import { Chip as i } from "@digdir/designsystemet-react";
3
+ const o = i;
4
+ export {
5
+ o as Chip
6
+ };