@statsbygg/layout 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -267,7 +267,7 @@ npm run lint
267
267
  ## Dependencies
268
268
 
269
269
  This package includes:
270
- - `@digdir/designsystemet-react` ^1.5.1
270
+ - `@digdir/designsystemet-react` 1.9.0
271
271
  - `@statsbygg/design-tokens` ^0.2.0
272
272
  - `clsx` ^2.0.0
273
273
  - `zustand` ^5.0.4
@@ -1,28 +1,331 @@
1
1
  .footer {
2
- background-color: var(--ds-color-neutral-surface-subtle);
3
- border-top: 1px solid var(--ds-color-neutral-border-subtle);
4
- margin-top: auto;
2
+ background-color: var(--ds-color-accent-base-active);
3
+ color: var(--ds-color-background-tinted);
4
+ padding: var(--ds-size-12) var(--ds-size-8) var(--ds-size-12) var(--ds-size-8);
5
5
  }
6
6
 
7
- .container {
8
- max-width: 1440px;
7
+ .footer a,
8
+ .footer a:hover,
9
+ .footer a:active,
10
+ .footer a:focus,
11
+ .footer a:visited {
12
+ color: var(--ds-color-background-tinted);
13
+ }
14
+
15
+ .footerContent {
16
+ font-family: var(--ds-font-family);
17
+ display: grid;
18
+ grid-template-columns: 2fr 1fr;
19
+ column-gap: var(--ds-size-8);
20
+ row-gap: var(--ds-size-13);
21
+ max-width: 90rem;
9
22
  margin: 0 auto;
10
- padding: var(--ds-spacing-6) var(--ds-spacing-4);
11
23
  }
12
24
 
13
- .content {
25
+ .footerLeft {
26
+ display: grid;
27
+ grid-template-columns: 1fr 1fr;
28
+ gap: 0;
29
+
30
+ }
31
+
32
+ .shortcutsContainer {
33
+ column-gap: var(--ds-size-8);
34
+ }
35
+
36
+ .contactSectionsContainer {
37
+ display: grid;
38
+ grid-template-columns: 1fr 1fr 1fr;
39
+ grid-template-rows: auto 1fr;
40
+ grid-column: span 2;
41
+ column-gap: var(--ds-size-8);
42
+ row-gap: 0;
43
+ }
44
+
45
+ .footerLeftWide {
46
+ gap: var(--ds-size-13);
47
+ }
48
+
49
+ .footerLogo {
50
+ align-self: end;
51
+ }
52
+
53
+ .sectionHeading {
54
+ font-family: "IBM Plex Sans";
55
+ font-size: var(--ds-font-size-4);
56
+ font-style: normal;
57
+ font-weight: 400;
58
+ line-height: 130%;
59
+ letter-spacing: 0.027px;
60
+ text-transform: uppercase;
61
+ padding-bottom: var(--ds-size-1);
62
+ margin: 0;
63
+ border-bottom: 1px solid rgba(255, 255, 255, 0.3);
64
+ margin-bottom: var(--ds-size-4);
65
+ }
66
+
67
+ .hidden {
68
+ visibility: hidden;
69
+ }
70
+
71
+ .footerList {
72
+ list-style: none;
73
+ padding: 0;
74
+ margin: 0;
75
+ display: flex;
76
+ flex-direction: column;
77
+ line-height: var(--ds-size-8);
78
+ gap: var(--ds-size-1);
79
+ }
80
+
81
+ .footerList li {
82
+ margin-top: 0;
83
+ }
84
+
85
+ .footerSection a {
86
+ text-decoration: none;
87
+ font-size: var(--ds-font-size-3);
88
+ }
89
+
90
+ .externalLink {
91
+ display: inline-box;
92
+ align-items: center;
93
+ gap: var(--ds-size-1);
94
+ }
95
+
96
+ .externalLink svg {
97
+ vertical-align: middle;
98
+ margin-left: var(--ds-size-1);
99
+ width: 17.5px;
100
+ height: 17.5px;
101
+ margin-bottom: var(--ds-size-1);
102
+ }
103
+
104
+ .socialLink {
14
105
  display: flex;
15
- justify-content: space-between;
16
106
  align-items: center;
17
- gap: var(--ds-spacing-4);
18
- flex-wrap: wrap;
107
+ gap: var(--ds-size-1);
108
+ }
109
+
110
+ .socialIcon {
111
+ width: 24px;
112
+ height: 24px;
113
+ flex-shrink: 0;
114
+ }
115
+
116
+ .vimeoIcon {
117
+ font-size: 1.125rem;
118
+ font-weight: bold;
119
+ }
120
+
121
+ .footerBottom {
122
+ display: grid;
123
+ grid-template-columns: 1fr 1fr 1fr 1fr;
124
+ gap: var(--ds-size-10);
125
+ padding-top: var(--ds-size-10);
126
+ }
127
+
128
+ .contactHeadingWide,
129
+ .shortcutsHeadingWide {
130
+ margin-top: 0;
131
+ font-family: var(--ds-font-family);
132
+ font-size: var(--ds-font-size-4);
133
+ font-style: normal;
134
+ font-weight: 600;
135
+ line-height: 130%; /* 23.4px */
136
+ letter-spacing: 0.027px;
137
+ grid-column: span 3;
138
+ }
139
+
140
+ .contactHeading {
141
+ margin-top: 0;
142
+ margin-bottom: var(--ds-size-2);
143
+ font-family: var(--ds-font-family);
144
+ font-size: var(--ds-font-size-4);
145
+ font-style: normal;
146
+ font-weight: 600;
147
+ line-height: 130%; /* 23.4px */
148
+ letter-spacing: 0.027px;
149
+ }
150
+
151
+ .contactSection p,
152
+ .contactSection a {
153
+ font-size: 0.875rem;
154
+ line-height: 1.6;
155
+ text-decoration: none;
156
+ margin: 0;
157
+ }
158
+
159
+ .contactSection p {
160
+ margin-bottom: var(--ds-spacing-2);
161
+ }
162
+
163
+ .contactSection a:hover {
164
+ text-decoration: underline;
165
+ }
166
+
167
+ .logoSection {
168
+ display: flex;
169
+ justify-content: flex-end;
170
+ align-items: center;
171
+ background-size: 228px auto;
172
+ background-repeat: no-repeat;
173
+ background-position: top center;
174
+ width: 228px;
175
+ height: 73px;
176
+ overflow: hidden;
177
+ }
178
+
179
+ .tagline {
180
+ font-size: 1.25rem;
181
+ font-weight: bold;
182
+ text-transform: uppercase;
183
+ letter-spacing: 0.05em;
184
+ text-align: right;
185
+ margin: 0;
19
186
  }
20
187
 
21
188
  @media (max-width: 768px) {
22
- .content {
23
- flex-direction: column;
24
- align-items: flex-start;
189
+ .footerLogo {
190
+ grid-column: span 2;
191
+ }
192
+
193
+ .footer {
194
+ padding: var(--ds-size-12) var(--ds-size-6) var(--ds-size-12) var(--ds-size-6);
195
+ }
196
+
197
+ .footerContent {
198
+ grid-template-columns: 1fr 1fr;
199
+ row-gap: var(--ds-size-13);
200
+ }
201
+
202
+ .footerLeft {
203
+ grid-template-columns: 1fr 1fr;
204
+ gap: 0;
205
+ grid-column: span 2;
206
+ }
207
+
208
+ .footerLeftWide {
209
+ grid-template-columns: 1fr;
210
+ gap: var(--ds-size-13);
211
+ }
212
+
213
+ .contactSectionsContainer {
214
+ grid-template-columns: 1fr;
215
+ gap: 0;
216
+ }
217
+
218
+ .contactSectionsContainer .contactSection:last-child {
219
+ grid-column: 1 / -1;
220
+ }
221
+
222
+ .contactHeadingWide {
223
+ grid-column: span 1;
224
+ margin-top: 0;
225
+ }
226
+
227
+ .shortcutsHeadingWide {
228
+ grid-column: span 2;
229
+ margin-top: 0;
230
+ }
231
+
232
+ .footerBottom {
233
+ grid-template-columns: 1fr 1fr;
234
+ gap: var(--ds-size-10);
235
+ align-items: start;
236
+ }
237
+
238
+ .contactSection:first-child {
239
+ grid-column: 1 / -1;
240
+ }
241
+
242
+ .logoSection {
243
+ grid-column: 1 / -1;
244
+ justify-content: flex-start;
245
+ }
246
+
247
+ .tagline {
248
+ text-align: left;
249
+ }
250
+
251
+ .shortcutsContainer {
252
+ column-gap: var(--ds-size-8);
253
+ }
254
+
255
+ .contactSectionsContainer > .contactSection:nth-child(2) {
256
+ margin-bottom: var(--ds-size-6);
257
+ }
258
+
259
+ .contactSectionsContainer > .contactSection:nth-child(3) {
260
+ margin-bottom: var(--ds-size-6);
25
261
  }
26
262
 
263
+ }
264
+
265
+ @media (max-width: 480px) {
266
+ .footer {
267
+ padding: var(--ds-size-12) var(--ds-size-4) var(--ds-size-12) var(--ds-size-4);
268
+ }
269
+
270
+ .footerContent {
271
+ row-gap: var(--ds-size-10);
272
+ grid-template-columns: 1fr;
273
+ column-gap: 0;
274
+ }
275
+
276
+ .footerLeft {
277
+ grid-template-columns: 1fr;
278
+ gap: 0;
279
+ grid-column: span 1;
280
+ }
27
281
 
282
+ .footerLeftWide {
283
+ grid-template-columns: 1fr;
284
+ gap: var(--ds-size-13);
285
+ }
286
+
287
+ .contactSectionsContainer {
288
+ grid-template-columns: 1fr;
289
+ gap: 0;
290
+ }
291
+
292
+ .contactSectionsContainer .contactSection:last-child {
293
+ grid-column: 1;
294
+ }
295
+
296
+ .sectionHeading.hidden {
297
+ border-bottom: none;
298
+ }
299
+
300
+ .socialLinks .footerList {
301
+ flex-direction: row;
302
+ flex-wrap: wrap;
303
+ row-gap: var(--ds-size-1);
304
+ column-gap: var(--ds-size-4);
305
+ }
306
+
307
+ .socialLinks .footerList li {
308
+ margin-bottom: 0;
309
+ }
310
+
311
+ .footerBottom {
312
+ grid-template-columns: 1fr;
313
+ gap: var(--ds-size-10);
314
+ }
315
+
316
+ .contactSection:first-child {
317
+ grid-column: 1;
318
+ }
319
+
320
+ .logoSection {
321
+ grid-column: 1;
322
+ margin-top: var(--ds-spacing-5);
323
+ }
324
+
325
+ .tagline {
326
+ font-size: 1.125rem;
327
+ }
328
+ .footerSection {
329
+ grid-column: span 2;
330
+ }
28
331
  }
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/index.d.ts CHANGED
@@ -19,6 +19,17 @@ type AncestorChain = {
19
19
  declare function findAppRootWithAncestors(node: RouteNode, ancestors?: RouteNode[]): AncestorChain;
20
20
  declare function getBreadcrumbs(routes: RouteNode, pathname: string): BreadcrumbItem[];
21
21
 
22
+ type GlobalHeaderProps = {
23
+ className?: string;
24
+ routes: RouteNode;
25
+ appBasePath?: string;
26
+ pathname?: string;
27
+ };
28
+
29
+ declare function GlobalHeader({ className, routes, appBasePath, pathname }: GlobalHeaderProps & {
30
+ pathname?: string;
31
+ }): react_jsx_runtime.JSX.Element;
32
+
22
33
  type RootLayoutProps = {
23
34
  children: React.ReactNode;
24
35
  routes: RouteNode;
@@ -28,6 +39,14 @@ type RootLayoutProps = {
28
39
 
29
40
  declare function RootLayout({ children, routes, appBasePath, className }: RootLayoutProps): react_jsx_runtime.JSX.Element;
30
41
 
42
+ interface GlobalFooterProps {
43
+ className?: string;
44
+ logoUrl?: string;
45
+ logoAlt?: string;
46
+ }
47
+
48
+ declare function GlobalFooter({ className, logoUrl, logoAlt }: GlobalFooterProps): react_jsx_runtime.JSX.Element;
49
+
31
50
  type Theme = 'light' | 'dark' | 'system';
32
51
  type GlobalState = {
33
52
  user?: {
@@ -98,4 +117,4 @@ type MenuSection = {
98
117
  subsections?: MenuSubsection[];
99
118
  };
100
119
 
101
- export { type BreadcrumbItem, type GlobalState, type MenuItem, type MenuSection, type MenuSubsection, RootLayout, type RootLayoutProps, type RouteNode, SmartLink, type SmartLinkProps, findAppRootWithAncestors, getBreadcrumbs, useBreadcrumbs, useGlobalStore };
120
+ export { type BreadcrumbItem, GlobalFooter, type GlobalFooterProps, GlobalHeader, type GlobalHeaderProps, type GlobalState, type MenuItem, type MenuSection, type MenuSubsection, RootLayout, type RootLayoutProps, type RouteNode, SmartLink, type SmartLinkProps, findAppRootWithAncestors, getBreadcrumbs, useBreadcrumbs, useGlobalStore };
package/dist/index.js CHANGED
@@ -1,10 +1,5 @@
1
1
  "use client";
2
2
 
3
- // src/components/RootLayout/RootLayout.tsx
4
- import { useEffect as useEffect2 } from "react";
5
- import clsx5 from "clsx";
6
- import { SkipLink } from "@digdir/designsystemet-react";
7
-
8
3
  // src/components/GlobalHeader/GlobalHeader.tsx
9
4
  import { Button as Button2, Link as Link3 } from "@digdir/designsystemet-react";
10
5
  import { Search as Search2 } from "lucide-react";
@@ -160,7 +155,26 @@ var translations = {
160
155
  "common.youAreHere": "Du er her:",
161
156
  "common.skipLink": "Hopp til hovedinnhold",
162
157
  "common.home": "Hjem",
163
- "footer.content": "Statsbygg Footer",
158
+ "footer.shortcuts": "Snarveier",
159
+ "footer.news": "Nyheter",
160
+ "footer.press": "For pressen",
161
+ "footer.whistleblowing": "Varsling",
162
+ "footer.privacy": "Personvern og informasjonskapsler",
163
+ "footer.accessibility": "Tilgjengelighet",
164
+ "footer.about": "About Statsbygg / Statsbygg birra",
165
+ "footer.publications": "Publikasjoner",
166
+ "footer.stateFacilities": "Statens lokaler",
167
+ "footer.mmfmHelpdesk": "MMFM \u2013 helpdesk",
168
+ "footer.simba": "Simba \u2013 Statsbyggs BIM-sider",
169
+ "footer.stateRental": "Statens innleie",
170
+ "footer.publicJournal": "S\xF8k innsyn via offentlig postjournal",
171
+ "footer.followUs": "F\xF8lg oss",
172
+ "footer.contactUs": "Kontakt oss",
173
+ "footer.phone": "Telefon",
174
+ "footer.findEmployee": "Finn en ansatt",
175
+ "footer.visitAddress": "Bes\xF8ksadresse",
176
+ "footer.postalAddress": "Postadresse",
177
+ "footer.tagline": "Bygg med mening",
164
178
  "menu.helpTitle": "Hva kan vi hjelpe deg med?",
165
179
  "menu.mainMenuLabel": "Hovedmeny",
166
180
  "menu.closeMenu": "Lukk meny",
@@ -197,8 +211,8 @@ function BreadcrumbLink({
197
211
  // src/components/Breadcrumbs/Breadcrumbs.tsx
198
212
  import styles from "./Breadcrumbs.module.css";
199
213
  import { jsx as jsx2 } from "react/jsx-runtime";
200
- function SbBreadcrumbs({ className, routes, appBasePath }) {
201
- const pathname = usePathname();
214
+ function SbBreadcrumbs({ className, routes, appBasePath, pathname: propPathname }) {
215
+ const pathname = propPathname != null ? propPathname : usePathname();
202
216
  const manualBreadcrumbs = useGlobalStore((state) => state.breadcrumbs);
203
217
  const { t } = useLayoutTranslation();
204
218
  const breadcrumbs = useMemo(() => {
@@ -596,7 +610,7 @@ function MenuButton({ className, appBasePath }) {
596
610
  // src/components/GlobalHeader/GlobalHeader.tsx
597
611
  import styles4 from "./GlobalHeader.module.css";
598
612
  import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
599
- function GlobalHeader({ className, routes, appBasePath }) {
613
+ function GlobalHeader({ className, routes, appBasePath, pathname }) {
600
614
  const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);
601
615
  const setIsMenuOpen = useGlobalStore((state) => state.setIsMenuOpen);
602
616
  const setTheme = useGlobalStore((state) => state.setTheme);
@@ -635,23 +649,143 @@ function GlobalHeader({ className, routes, appBasePath }) {
635
649
  /* @__PURE__ */ jsx7(MenuButton, { appBasePath })
636
650
  ] })
637
651
  ] }),
638
- /* @__PURE__ */ jsx7(SbBreadcrumbs, { routes, appBasePath })
652
+ /* @__PURE__ */ jsx7(SbBreadcrumbs, { routes, appBasePath, pathname })
639
653
  ] }) });
640
654
  }
641
655
 
656
+ // src/components/RootLayout/RootLayout.tsx
657
+ import { useEffect as useEffect2 } from "react";
658
+ import clsx5 from "clsx";
659
+ import { SkipLink } from "@digdir/designsystemet-react";
660
+
642
661
  // src/components/GlobalFooter/GlobalFooter.tsx
643
- import { Paragraph } from "@digdir/designsystemet-react";
662
+ import { Link as Link4, Heading as Heading2, List as List2, Paragraph } from "@digdir/designsystemet-react";
663
+ import { ExternalLink as ExternalLink2 } from "lucide-react";
644
664
  import clsx4 from "clsx";
645
665
  import styles5 from "./GlobalFooter.module.css";
646
- import { jsx as jsx8 } from "react/jsx-runtime";
647
- function GlobalFooter({ className }) {
666
+
667
+ // src/assets/images/footer.png
668
+ var footer_default = "data:image/png;base64,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";
669
+
670
+ // src/assets/images/linkedin.png
671
+ var linkedin_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+oCEAs7B/9RA8EAAAGISURBVEjH7ZU9TyNBDIYfhxWbFR8nQHy1oUCiQFDdCYmWgt+AhEAIJH5FWnoorkJ8NZQU/AG6a6juylNEgQQku4QgdmZJMAVJWE5ZBcI2J/FW4xl7Xttje+ALbSBxwQ/tDsKGiHR1cpmqPgH7g1l3pSVBYOwdIn2fclm1MpB1+xui889xpumJsqtQE2FVRJxOs9LaUNkb9Ny1etqqCJudBpRJCjSm8fSZjDkJQS6XQluVDI8o62+DToMAbiVDDkCEEjCmqmcIFmVEIAecKHqFyBTKgoi0dyMw9j6wkQbWnjZL19jDwEZ6UXwYB7gJw/nrcnkiblcMw6UXu0gDYyvveYNEDHve2Z/z88JlpTLU2Nve2jpS+PuRR05EoVBwp3/M/fa63aJvzAZAPp9XUf2VCoE3OjorwmTdfPG1v/BTIXBq0vNaberF1tVUCNJqtP+HIKnRZn0THdcb7TtAb6/z0zeRAR2J6U039ICZtpMvpXF9N5B1v7VMkQp7qlrr/G6tqXDw9Y9/CM/e8Z8u4UfBnwAAAABJRU5ErkJggg==";
672
+
673
+ // src/assets/images/instagram.png
674
+ var instagram_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+oCEAs6J90kEkgAAALjSURBVEjH3VVNbxNJEH0VG0g0DvEFx9o9JFo4grSr3PcHoPyQ3EMQR5+zSMsN/keWnAcCQlkZWIL4ktgVJo4Ue+zuCWQyVR1nikMmaGzPWHBkW+rD1FTXx6uqV8CPfmhU0ArDqndhZmWKcJ2ILqvqDAHnQeQNKap+UuCEiGJV/TdRbEYS31uoVsNCB0EU/Voun7sP4CcAUGgHoAiKAaCfR2KbBaEMqEeg+VS4NxgcL1/yvH+QF7kVt2dYkj7zercbzX8rDN1uNN9nXjcsiRXX/hCGc2NKvVhuWXHaZ17/HoyDKPrNxHLzba9X6TOvW3Hai+XWmKJheWhYkqLIG40GtYKo3gqieqPRoMy7v604NbGstYKoblgSw/JgzIAV1zYinVF5s9ksm1huWnG7Vpymd9fEsub7fqnHvGJZHncOD68BgBHpWHHtcQcsB4bduzHjzBtWnFqWI8vyKL1HVpwa5o1ms1keRsK9sywHeQ4iy+71kPJp5GpYtvfDcPFMvh+GC4ZlO4XmxrAd99qyRHk1EMuyk8Xcitu1LEf7Ybgwqr8fhgtpJq1sTSzLjmGRPAeJYXn+tW2DqJ5Cs1XUQZZly4rTTuewlrHzzLCcnH1PFT2eTjT5ViZQD1qkkHUwIKB09nH37u0AwEcASwUQLSqwBOBjvVIJMh7LAAZ56R7lFHmtoMiLmSKvTipytsUGmskAAP579fLPX65e/Z1oavn89Mwby/L0lKOwRETTqtjY2X5yZ4gDgRLlZiBuL2/QfN8vmVhuWHGtzKC1TCyrvu+XxpplwqBtGZakFUT1SaQ2iQTzqOJrkU8U94mIKrOl1SIDtZrXqdW8TtH/ymxplYgIis0ium6ndP3HpEzyIu8z307pejdL13kL5y8AP6cLpwvQIYAEqsP8QjR3ioBWCHQ2aO3jwfFyzfNeFK7MD2E4d/HCzApOV+aVdGWWQHRxZGVGCrh0Zb6HYvOTxPcWq9UD/K/OFyS7VUlMESf+AAAAAElFTkSuQmCC";
675
+
676
+ // src/assets/images/facebook.png
677
+ var facebook_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+oCEAs5MpvUpWAAAAF9SURBVEjH7VW7SgNBFD13ZpPNQppICj8goEKwVhBsRVLYBCHrL9hbWNj5A1a2YuIPWPkFdsKiBivBKhgMiYHJY3euTQaSNZvsJthIbjX3MnPOzJk7Z4BVzAkKF5pKuZLEGQObRGTFAWFmn4B6wPoy7zjVSIKmUidSyJtldhzowB0nmSBo9foeiIpLacLs5TL2tkknJGBgi+KBfGvGHYB3AgIQ7xGJksEYnzpBQEQyht7DgT/cWc9mX0ztS/UHIJRGGFYkQcyueDTgn51OQabsIxDvT+mXxQgY1DBjmc64RLiIAgcAkfACnwH9YFKt/Set+ZoZb7HeQas/4Nm756s12z4N11u93j1IHJo8Z6dpoRMQUGgotWvyRrdb/FKqzCQ2otYkvAM6SJHsAigDQMqyjonE+awV4q+96J8RMLO/LGAYwwp1SR3APLNLf7TbuZHvOPS7015n2XVFCnm7pF1X8o5TmypR3nGqgQ5cMHtJ5GJmH8ze6C+orf7xRPED2beQY4MoJMwAAAAASUVORK5CYII=";
678
+
679
+ // src/assets/images/youtube.png
680
+ var youtube_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+oCEAs3ENA3yQoAAAFkSURBVEjH7VQ9TgJRGJx5i8uuECL+JEY7GgsrLyCxsPEQmtiamOgFvIE30MRD2BkTPYNYqZ2EBIKEKCyRfWODgCzrT8BGme69fDPfmzf5PmCCPw/2HypBkDfiNgxyEJdITEtKEXBAZj4wpbqAkGRDQgNQEcKDpc7mPe8q0qASBHkDXpI0o7xYkg1lNxZ8/xoAumIG3B1VHABIGodmt6fbw+oYv3410oDE0mcM+2o3IRW+6WIx6kDIfEaaS3sXxfu7NVkdSqp9EcRMJORq0GqTdOI42aTbrX2s12d91z0CuDeMI6k96yWnBjP4FZg+K8FXxYVCYarabB34bvKeNPtxjvu1En3J1ACk4sTLL60tx+ExiZVvpFyLNJBUIrkcx0kkeP6DYSsNm4ObMX79baRBKHsqyY6q3FkVJ0OXXbnZXHdgdmCQo7gIIiUp3Rme7IDQU+f+GcKLqBIsHkLYs/c9NME/wRuiKYYuo9BUkwAAAABJRU5ErkJggg==";
681
+
682
+ // src/assets/images/vimeo.png
683
+ var vimeo_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+oCEAs1NjAMLnUAAAJvSURBVEjH7VVNaBNBFH5vEppN0zZtQgO1VRDNxSAIIgV/MBch9VgLIl7FW0FBehAPe7K9WMSDeBJvQvAg3lR6smAL1YNaKAaKGBt1sz9NTHZ3dpM8DzYxmd1E1B77YGHn8b3vm/czMwB79q+WzWZZscqnNNOc2VDVgW64b5VKSrPtBd12nuo2f6SZ5vQfybd0fcKw+bLBHTK4Q4btrK8VCmERp1v8um5zt4Xb+VTLutzEMDGoaFlnwv2Rt4B4quVEOHJwOH61HaeZ5jQyXETEoMjBkM36CmimeSGA7AUijopBGICp5r8sy4gseLtHEZK/99Yi57PI4C4iMr8IItJjUii+k+XpAGO3gCCGiCd8wD9GpNBQRwbI8Cwg5qlBc0SkejJAjH3RtHEAgNFweDkWCmXuLcxPEtEbn/2893jypdLIuqJEAABUy7okNs7gDilVO+NpNOdLIk63+JynB/ujUSOVSFQBAD6srmYJSBHJggyPtq8/bW9HgeCkUB6L15yHXacIACCdTtepAc88pUU43r4ekqQ5RJQ6MECLY4ODak+BX8j6c8/4AWRyuVwfAECxXD6MgNfESn8tl+eFGH8zXXeJiOpCp6PD+w6cWysUwoG+0BNA7G+bMmrUGleaZfaMqZ/pNl9BxEnxoBNRERGPtTsb1LgTl6QbPln3Mnrp4xwXyYFoRc/nb/ox9BSok6+A5+qqViszyWTS+WsBZXPzNRFp3ROkkltzz0/E41vdID0FUqmUC0D3fbmBvtfqtXQiEnn3X+/ChqoO6LbzseO02vyVUiod2rXH57NqjmkWf2DY/LFuWRdlWca9J3nX7Cd8NE/XacTiWgAAAABJRU5ErkJggg==";
684
+
685
+ // src/components/GlobalFooter/GlobalFooter.tsx
686
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
687
+ function GlobalFooter({
688
+ className,
689
+ logoUrl = footer_default,
690
+ logoAlt
691
+ }) {
648
692
  const { t } = useLayoutTranslation();
649
- return /* @__PURE__ */ jsx8("footer", { className: clsx4(styles5.footer, className), children: /* @__PURE__ */ jsx8("div", { className: styles5.container, children: /* @__PURE__ */ jsx8("div", { className: styles5.content, children: /* @__PURE__ */ jsx8(Paragraph, { children: t("footer.content") }) }) }) });
693
+ return /* @__PURE__ */ jsx8("footer", { className: clsx4(styles5.footer, className), children: /* @__PURE__ */ jsxs5("div", { className: styles5.footerContent, children: [
694
+ /* @__PURE__ */ jsxs5("div", { className: clsx4(styles5.footerLeft, styles5.shortcutsContainer), children: [
695
+ /* @__PURE__ */ jsx8("div", { className: styles5.shortcutsHeadingWide, children: /* @__PURE__ */ jsx8(Heading2, { level: 2, "data-size": "2xs", className: styles5.sectionHeading, children: t("footer.shortcuts") }) }),
696
+ /* @__PURE__ */ jsx8("div", { className: styles5.footerSection, children: /* @__PURE__ */ jsxs5(List2.Unordered, { className: styles5.footerList, children: [
697
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.news") }) }),
698
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.press") }) }),
699
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.whistleblowing") }) }),
700
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.privacy") }) }),
701
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.accessibility") }) }),
702
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.about") }) })
703
+ ] }) }),
704
+ /* @__PURE__ */ jsx8("div", { className: styles5.footerSection, children: /* @__PURE__ */ jsxs5(List2.Unordered, { className: styles5.footerList, children: [
705
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.publications") }) }),
706
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.stateFacilities") }) }),
707
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.mmfmHelpdesk") }) }),
708
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "https://simba.statsbygg.no/", className: styles5.externalLink, target: "_blank", rel: "noopener noreferrer", children: [
709
+ t("footer.simba"),
710
+ /* @__PURE__ */ jsx8(ExternalLink2, { size: 14, "aria-hidden": "true" })
711
+ ] }) }),
712
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "https://statensinnleie.no", className: styles5.externalLink, target: "_blank", rel: "noopener noreferrer", children: [
713
+ t("footer.stateRental"),
714
+ /* @__PURE__ */ jsx8(ExternalLink2, { size: 14, "aria-hidden": "true" })
715
+ ] }) }),
716
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "https://einnsyn.no/sok?f=0279324b-adee-4116-ae84-3895f61c0db9", className: styles5.externalLink, target: "_blank", rel: "noopener noreferrer", children: [
717
+ t("footer.publicJournal"),
718
+ /* @__PURE__ */ jsx8(ExternalLink2, { size: 14, "aria-hidden": "true" })
719
+ ] }) })
720
+ ] }) })
721
+ ] }),
722
+ /* @__PURE__ */ jsxs5("div", { className: clsx4(styles5.footerSection, styles5.socialLinks), children: [
723
+ /* @__PURE__ */ jsx8(Heading2, { level: 2, "data-size": "2xs", className: styles5.sectionHeading, children: t("footer.followUs") }),
724
+ /* @__PURE__ */ jsxs5(List2.Unordered, { className: styles5.footerList, children: [
725
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "#", className: styles5.socialLink, children: [
726
+ "LinkedIn",
727
+ /* @__PURE__ */ jsx8("img", { src: typeof linkedin_default === "string" ? linkedin_default : linkedin_default.src, alt: "", className: styles5.socialIcon, "aria-hidden": "true" })
728
+ ] }) }),
729
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "#", className: styles5.socialLink, children: [
730
+ "Instagram",
731
+ /* @__PURE__ */ jsx8("img", { src: typeof instagram_default === "string" ? instagram_default : instagram_default.src, alt: "", className: styles5.socialIcon, "aria-hidden": "true" })
732
+ ] }) }),
733
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "#", className: styles5.socialLink, children: [
734
+ "Facebook",
735
+ /* @__PURE__ */ jsx8("img", { src: typeof facebook_default === "string" ? facebook_default : facebook_default.src, alt: "", className: styles5.socialIcon, "aria-hidden": "true" })
736
+ ] }) }),
737
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "#", className: styles5.socialLink, children: [
738
+ "YouTube",
739
+ /* @__PURE__ */ jsx8("img", { src: typeof youtube_default === "string" ? youtube_default : youtube_default.src, alt: "", className: styles5.socialIcon, "aria-hidden": "true" })
740
+ ] }) }),
741
+ /* @__PURE__ */ jsx8(List2.Item, { children: /* @__PURE__ */ jsxs5(Link4, { href: "#", className: styles5.socialLink, children: [
742
+ "Vimeo",
743
+ /* @__PURE__ */ jsx8("img", { src: typeof vimeo_default === "string" ? vimeo_default : vimeo_default.src, alt: "", className: styles5.socialIcon, "aria-hidden": "true" })
744
+ ] }) })
745
+ ] })
746
+ ] }),
747
+ /* @__PURE__ */ jsx8("div", { className: styles5.footerLeftWide, children: /* @__PURE__ */ jsxs5("div", { className: clsx4(styles5.footerSection, styles5.contactSectionsContainer), children: [
748
+ /* @__PURE__ */ jsx8("div", { className: styles5.contactHeadingWide, children: /* @__PURE__ */ jsx8(Heading2, { level: 2, "data-size": "2xs", className: styles5.sectionHeading, children: t("footer.contactUs") }) }),
749
+ /* @__PURE__ */ jsxs5("div", { className: styles5.contactSection, children: [
750
+ /* @__PURE__ */ jsx8(Paragraph, { "data-size": "sm", children: /* @__PURE__ */ jsxs5(Link4, { href: "tel:22955000", children: [
751
+ t("footer.phone"),
752
+ ": 22 95 50 00"
753
+ ] }) }),
754
+ /* @__PURE__ */ jsx8(Paragraph, { "data-size": "sm", children: /* @__PURE__ */ jsx8(Link4, { href: "mailto:postmottak@statsbygg.no", children: "postmottak@statsbygg.no" }) }),
755
+ /* @__PURE__ */ jsx8(Paragraph, { "data-size": "sm", children: /* @__PURE__ */ jsx8(Link4, { href: "#", children: t("footer.findEmployee") }) })
756
+ ] }),
757
+ /* @__PURE__ */ jsxs5("div", { className: styles5.contactSection, children: [
758
+ /* @__PURE__ */ jsx8(Heading2, { level: 2, "data-size": "2xs", className: styles5.contactHeading, children: t("footer.visitAddress") }),
759
+ /* @__PURE__ */ jsxs5(Paragraph, { "data-size": "sm", children: [
760
+ "Biskop Gunnerus' gate 6,",
761
+ /* @__PURE__ */ jsx8("br", {}),
762
+ "0155 Oslo (Byporten)"
763
+ ] })
764
+ ] }),
765
+ /* @__PURE__ */ jsxs5("div", { className: styles5.contactSection, children: [
766
+ /* @__PURE__ */ jsx8(Heading2, { level: 2, "data-size": "2xs", className: styles5.contactHeading, children: t("footer.postalAddress") }),
767
+ /* @__PURE__ */ jsxs5(Paragraph, { "data-size": "sm", children: [
768
+ "Postboks 232 Sentrum,",
769
+ /* @__PURE__ */ jsx8("br", {}),
770
+ "0103 Oslo"
771
+ ] })
772
+ ] })
773
+ ] }) }),
774
+ /* @__PURE__ */ jsx8("div", { className: clsx4(styles5.footerSection, styles5.socialLinks, styles5.footerLogo), children: /* @__PURE__ */ jsx8(
775
+ "div",
776
+ {
777
+ className: styles5.logoSection,
778
+ style: { backgroundImage: `url(${typeof logoUrl === "string" ? logoUrl : logoUrl.src})` },
779
+ role: "img",
780
+ "aria-label": logoAlt || t("footer.tagline")
781
+ }
782
+ ) })
783
+ ] }) });
650
784
  }
651
785
 
652
786
  // src/components/RootLayout/RootLayout.tsx
653
787
  import styles6 from "./RootLayout.module.css";
654
- import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
788
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
655
789
  function RootLayout({ children, routes, appBasePath, className }) {
656
790
  const initialize = useGlobalStore((state) => state.initialize);
657
791
  const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);
@@ -659,7 +793,7 @@ function RootLayout({ children, routes, appBasePath, className }) {
659
793
  useEffect2(() => {
660
794
  initialize();
661
795
  }, [initialize]);
662
- return /* @__PURE__ */ jsxs5("div", { className: clsx5(styles6.root, isMenuOpen && styles6.menuOpen, className), children: [
796
+ return /* @__PURE__ */ jsxs6("div", { className: clsx5(styles6.root, isMenuOpen && styles6.menuOpen, className), children: [
663
797
  /* @__PURE__ */ jsx9(SkipLink, { className: styles6.skipLink, href: "#main-content", children: t("common.skipLink") }),
664
798
  /* @__PURE__ */ jsx9(GlobalHeader, { routes, appBasePath }),
665
799
  /* @__PURE__ */ jsx9("main", { id: "main-content", tabIndex: -1, className: styles6.main, children }),
@@ -680,6 +814,8 @@ function useBreadcrumbs(breadcrumbs) {
680
814
  }, [serialized, setBreadcrumbs]);
681
815
  }
682
816
  export {
817
+ GlobalFooter,
818
+ GlobalHeader,
683
819
  RootLayout,
684
820
  SmartLink,
685
821
  findAppRootWithAncestors,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/RootLayout/RootLayout.tsx","../src/components/GlobalHeader/GlobalHeader.tsx","../src/components/Breadcrumbs/Breadcrumbs.tsx","../src/routes.ts","../src/store/globalState.ts","../src/locales/translations.ts","../src/hooks/use-layout-translation.ts","../src/components/BreadcrumbLink/BreadcrumbLink.tsx","../src/components/MenuButton/MenuButton.tsx","../src/components/NavigationMenu/NavigationMenu.tsx","../src/navigationMenu.ts","../src/components/NavigationMenuItem/NavigationMenuItem.tsx","../src/components/SmartLink/SmartLink.tsx","../src/components/GlobalFooter/GlobalFooter.tsx","../src/hooks/use-breadcrumbs.ts"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\nimport clsx from 'clsx';\nimport { SkipLink } from '@digdir/designsystemet-react';\nimport { GlobalHeader } from '../GlobalHeader';\nimport { GlobalFooter } from '../GlobalFooter';\nimport { useGlobalStore } from '@/store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { RootLayoutProps } from './RootLayout.types';\nimport styles from './RootLayout.module.css';\n\nexport function RootLayout({ children, routes, appBasePath, className }: RootLayoutProps) {\n const initialize = useGlobalStore((state) => state.initialize);\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const { t } = useLayoutTranslation();\n\n useEffect(() => {\n initialize();\n }, [initialize]);\n\n return (\n <div className={clsx(styles.root, isMenuOpen && styles.menuOpen, className)}>\n <SkipLink className={styles.skipLink} href=\"#main-content\">\n {t('common.skipLink')}\n </SkipLink>\n <GlobalHeader routes={routes} appBasePath={appBasePath} />\n <main id=\"main-content\" tabIndex={-1} className={styles.main}>\n {children}\n </main>\n <GlobalFooter />\n </div>\n );\n}","'use client';\n\nimport { Button, Link } from '@digdir/designsystemet-react';\nimport { Search } from 'lucide-react';\nimport clsx from 'clsx';\nimport { Breadcrumbs } from '../Breadcrumbs';\nimport { MenuButton } from '../MenuButton';\nimport { ALLOW_DARK_THEME, useGlobalStore } from '@/store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { GlobalHeaderProps } from './GlobalHeader.types';\nimport styles from './GlobalHeader.module.css';\n\nexport function GlobalHeader({ className, routes, appBasePath }: GlobalHeaderProps) {\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const setIsMenuOpen = useGlobalStore((state) => state.setIsMenuOpen);\n const setTheme = useGlobalStore((state) => state.setTheme);\n const theme = useGlobalStore((state) => state.theme);\n const { t } = useLayoutTranslation();\n\n function toggleDarkMode() {\n setTheme(theme === 'dark' ? 'light' : 'dark');\n }\n\n return (\n <header className={clsx(styles.header, isMenuOpen && styles.menuOpen, className)}>\n <div className={styles.headerContainer}>\n <div className={styles.topBarContainer}>\n <Link href=\"https://www.statsbygg.no\">\n <img\n src=\"https://dok.statsbygg.no/wp-content/uploads/2025/11/Statsbygg_logo.svg\"\n alt=\"Logo\"\n className={styles.logo}\n />\n </Link>\n <div className={styles.actionsContainer}>\n {!isMenuOpen && (\n <>\n {ALLOW_DARK_THEME && (\n <Button onClick={toggleDarkMode} className={styles.themeToggleButton}>\n {theme === 'dark' ? '☀️' : '🌙'}\n </Button>\n )}\n <Button\n variant=\"secondary\"\n onClick={() => setIsMenuOpen(true)}\n className={styles.searchButton}\n aria-label={t('common.search')}\n >\n <Search size={20} aria-hidden=\"true\" />\n {t('common.search')}\n </Button>\n </>\n )}\n <MenuButton appBasePath={appBasePath} />\n </div>\n </div>\n <Breadcrumbs routes={routes} appBasePath={appBasePath} />\n </div>\n </header>\n );\n}","'use client';\n\nimport { useMemo } from 'react';\nimport { usePathname } from 'next/navigation';\nimport { Breadcrumbs } from '@digdir/designsystemet-react';\nimport clsx from 'clsx';\nimport { getBreadcrumbs, findAppRootWithAncestors, BreadcrumbItem } from '@/routes';\nimport { useGlobalStore } from '@/store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport { BreadcrumbLink } from '../BreadcrumbLink';\nimport type { BreadcrumbsProps } from './Breadcrumbs.types';\nimport styles from './Breadcrumbs.module.css';\n\nexport function SbBreadcrumbs({ className, routes, appBasePath }: BreadcrumbsProps) {\n const pathname = usePathname();\n const manualBreadcrumbs = useGlobalStore((state) => state.breadcrumbs);\n const { t } = useLayoutTranslation();\n\n const breadcrumbs = useMemo((): BreadcrumbItem[] => {\n if (manualBreadcrumbs) {\n const { externalAncestors } = findAppRootWithAncestors(routes);\n const baseBreadcrumbs = externalAncestors.map((node) => ({\n label: node.label,\n href: node.path,\n }));\n const manualHrefs = new Set(manualBreadcrumbs.map((b) => b.href));\n const uniqueBase = baseBreadcrumbs.filter((b) => !manualHrefs.has(b.href));\n return [...uniqueBase, ...manualBreadcrumbs];\n }\n return getBreadcrumbs(routes, pathname);\n }, [routes, pathname, manualBreadcrumbs]);\n\n if (breadcrumbs.length === 0) {\n return null;\n }\n\n return (\n <Breadcrumbs\n aria-label={t('common.youAreHere')}\n className={clsx(styles.breadcrumbs, className)}\n >\n <Breadcrumbs.List>\n {breadcrumbs.map((crumb, index) => {\n const isLast = index === breadcrumbs.length - 1;\n\n return (\n <Breadcrumbs.Item key={`${crumb.href}-${index}`}>\n <BreadcrumbLink\n href={crumb.href}\n ariaCurrent={isLast ? 'page' : undefined}\n className={isLast ? styles.currentLink : styles.link}\n >\n {crumb.label}\n </BreadcrumbLink>\n </Breadcrumbs.Item>\n );\n })}\n </Breadcrumbs.List>\n </Breadcrumbs>\n );\n}","export type RouteNode = {\n path: string;\n label: string;\n children?: RouteNode[];\n};\n\nexport type BreadcrumbItem = {\n label: string;\n href: string;\n};\n\nfunction isExternalPath(path: string): boolean {\n return path.startsWith('http://') || path.startsWith('https://');\n}\n\nfunction normalizePath(path: string): string {\n if (path === '/') return '/';\n return path.replace(/\\/+$/, '');\n}\n\nfunction formatSegmentLabel(segment: string): string {\n try {\n const decoded = decodeURIComponent(segment).replace(/[-_]+/g, ' ').trim();\n return decoded ? decoded.charAt(0).toUpperCase() + decoded.slice(1) : segment;\n } catch {\n return segment;\n }\n}\n\ntype AncestorChain = {\n externalAncestors: RouteNode[];\n appRoot: RouteNode | null;\n};\n\nexport function findAppRootWithAncestors(node: RouteNode, ancestors: RouteNode[] = []): AncestorChain {\n if (!isExternalPath(node.path)) {\n return {\n externalAncestors: ancestors,\n appRoot: node,\n };\n }\n\n if (node.children) {\n for (const child of node.children) {\n const result = findAppRootWithAncestors(child, [...ancestors, node]);\n if (result.appRoot) return result;\n }\n }\n\n return { externalAncestors: ancestors, appRoot: null };\n}\n\ntype InternalMatch = {\n node: RouteNode;\n ancestors: RouteNode[];\n};\n\nfunction findInternalMatch(\n node: RouteNode,\n pathname: string,\n ancestors: RouteNode[] = []\n): InternalMatch | null {\n const nodePath = normalizePath(node.path);\n\n if (pathname === nodePath) {\n return { node, ancestors };\n }\n\n if (node.children) {\n for (const child of node.children) {\n if (isExternalPath(child.path)) continue;\n\n const result = findInternalMatch(child, pathname, [...ancestors, node]);\n if (result) return result;\n }\n }\n\n const pathPrefix = nodePath === '/' ? '/' : nodePath + '/';\n if (pathname.startsWith(pathPrefix) || pathname === nodePath) {\n return { node, ancestors };\n }\n\n return null;\n}\n\nexport function getBreadcrumbs(routes: RouteNode, pathname: string): BreadcrumbItem[] {\n const normalizedPathname = normalizePath(pathname);\n const { externalAncestors, appRoot } = findAppRootWithAncestors(routes);\n\n if (!appRoot) {\n return externalAncestors.map((node) => ({\n label: node.label,\n href: node.path,\n }));\n }\n\n const breadcrumbs: BreadcrumbItem[] = externalAncestors.map((node) => ({\n label: node.label,\n href: node.path,\n }));\n\n const internalMatch = findInternalMatch(appRoot, normalizedPathname);\n\n if (!internalMatch) {\n breadcrumbs.push({ label: appRoot.label, href: appRoot.path });\n return breadcrumbs;\n }\n\n for (const ancestor of internalMatch.ancestors) {\n breadcrumbs.push({\n label: ancestor.label,\n href: ancestor.path,\n });\n }\n\n breadcrumbs.push({\n label: internalMatch.node.label,\n href: internalMatch.node.path,\n });\n\n const matchedPath = normalizePath(internalMatch.node.path);\n if (normalizedPathname !== matchedPath) {\n const remainingPath = normalizedPathname.slice(\n matchedPath === '/' ? 1 : matchedPath.length + 1\n );\n const dynamicSegments = remainingPath.split('/').filter(Boolean);\n\n let accumulatedPath = matchedPath;\n for (const segment of dynamicSegments) {\n accumulatedPath = accumulatedPath === '/' ? `/${segment}` : `${accumulatedPath}/${segment}`;\n breadcrumbs.push({\n label: formatSegmentLabel(segment),\n href: accumulatedPath,\n });\n }\n }\n\n return breadcrumbs;\n}","import { create, StateCreator } from 'zustand';\nimport { persist, createJSONStorage } from 'zustand/middleware';\nimport type { BreadcrumbItem } from '../routes';\n\nexport type Theme = 'light' | 'dark' | 'system';\n\nexport const ALLOW_DARK_THEME = false;\n\nexport type GlobalState = {\n user?: { id: string; name?: string } | null;\n theme: Theme;\n locale: string;\n isMenuOpen: boolean;\n breadcrumbs: BreadcrumbItem[] | null;\n setUser: (user: GlobalState['user']) => void;\n setTheme: (theme: Theme) => void;\n setLocale: (locale: string) => void;\n setIsMenuOpen: (isOpen: boolean) => void;\n toggleMenu: () => void;\n setBreadcrumbs: (breadcrumbs: BreadcrumbItem[] | null) => void;\n initialize: () => void;\n};\n\nconst creator: StateCreator<GlobalState, [['zustand/persist', unknown]]> = (set, get) => ({\n user: null,\n theme: 'light',\n locale: 'no',\n isMenuOpen: false,\n breadcrumbs: null,\n setUser: (user) => set({ user }),\n setTheme: (theme) => {\n set({ theme: ALLOW_DARK_THEME ? theme : 'light' });\n if (typeof document !== 'undefined' && ALLOW_DARK_THEME) {\n document.documentElement.setAttribute('data-color-scheme', theme);\n }\n },\n setLocale: (locale) => set({ locale }),\n setIsMenuOpen: (isMenuOpen) => set({ isMenuOpen }),\n toggleMenu: () => set((state) => ({ isMenuOpen: !state.isMenuOpen })),\n setBreadcrumbs: (breadcrumbs) => set({ breadcrumbs }),\n initialize: () => {\n if (typeof document !== 'undefined' && ALLOW_DARK_THEME) {\n document.documentElement.setAttribute('data-color-scheme', get().theme);\n }\n },\n});\n\nexport const useGlobalStore = create<GlobalState>()(\n persist(creator, {\n name: 'statsbygg-global-state',\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => ({\n user: state.user,\n theme: ALLOW_DARK_THEME ? state.theme : 'light',\n locale: state.locale,\n }),\n })\n);","export const translations = {\n no: {\n 'common.menu': 'Meny',\n 'common.close': 'Lukk',\n 'common.search': 'Søk',\n 'common.searchLabel': 'Søk',\n 'common.youAreHere': 'Du er her:',\n 'common.skipLink': 'Hopp til hovedinnhold',\n 'common.home': 'Hjem',\n 'footer.content': 'Statsbygg Footer',\n 'menu.helpTitle': 'Hva kan vi hjelpe deg med?',\n 'menu.mainMenuLabel': 'Hovedmeny',\n 'menu.closeMenu': 'Lukk meny',\n 'menu.openMenu': 'Åpne meny',\n }\n};\n\nexport type TranslationKey = keyof typeof translations.no;","import { TranslationKey, translations } from '@/locales/translations';\nimport { useGlobalStore } from '@/store/globalState';\n\nexport function useLayoutTranslation() {\n const locale = useGlobalStore((state) => state.locale) as keyof typeof translations;\n \n const languageMap = translations[locale] || translations.no;\n\n function t(key: TranslationKey): string {\n return languageMap[key] || key;\n }\n\n return { t, locale };\n}","'use client';\n\nimport Link from 'next/link';\nimport type { ReactNode } from 'react';\n\ntype BreadcrumbLinkProps = {\n href: string;\n className?: string;\n ariaCurrent?: 'page' | undefined;\n children: ReactNode;\n};\n\n/**\n * Renders breadcrumb links correctly:\n * - External URLs (http/https): standard anchor tag\n * - Internal paths: Next.js Link (handles basePath automatically)\n */\nexport function BreadcrumbLink({\n href,\n className,\n ariaCurrent,\n children,\n}: BreadcrumbLinkProps) {\n const isExternal = href.startsWith('http://') || href.startsWith('https://');\n\n if (isExternal) {\n return (\n <a href={href} className={className} aria-current={ariaCurrent}>\n {children}\n </a>\n );\n }\n\n return (\n <Link href={href} className={className} aria-current={ariaCurrent}>\n {children}\n </Link>\n );\n}","'use client';\n\nimport { Button } from '@digdir/designsystemet-react';\nimport { Menu, X } from 'lucide-react';\nimport { useGlobalStore } from '@/store/globalState';\nimport { NavigationMenu } from '../NavigationMenu';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { MenuButtonProps } from './MenuButton.types';\n\nexport function MenuButton({ className, appBasePath }: MenuButtonProps) {\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const toggleMenu = useGlobalStore((state) => state.toggleMenu);\n const { t } = useLayoutTranslation();\n\n return (\n <>\n <Button\n variant=\"primary\"\n onClick={toggleMenu}\n aria-expanded={isMenuOpen}\n aria-label={isMenuOpen ? t('menu.closeMenu') : t('menu.openMenu')}\n className={className}\n >\n {isMenuOpen ? <X size={20} aria-hidden=\"true\" /> : <Menu size={20} aria-hidden=\"true\" />}\n {isMenuOpen ? t('common.close') : t('common.menu')}\n </Button>\n <NavigationMenu appBasePath={appBasePath} />\n </>\n );\n}","'use client';\n\nimport { useState, useEffect, useRef } from 'react';\nimport { Heading, Search } from '@digdir/designsystemet-react';\nimport { NAVIGATION_MENU, MenuSection } from '../../navigationMenu';\nimport { NavigationMenuItem } from '../NavigationMenuItem/NavigationMenuItem';\nimport { useGlobalStore } from '../../store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { NavigationMenuProps } from './NavigationMenu.types';\nimport styles from './NavigationMenu.module.css';\n\nexport function NavigationMenu({ className, appBasePath }: NavigationMenuProps) {\n const [searchValue, setSearchValue] = useState('');\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const setIsMenuOpen = useGlobalStore((state) => state.setIsMenuOpen);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const { t } = useLayoutTranslation();\n\n useEffect(() => {\n if (!isMenuOpen) return;\n\n function handleEscape(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n setIsMenuOpen(false);\n }\n }\n\n setTimeout(() => {\n searchInputRef.current?.focus();\n }, 100);\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [setIsMenuOpen, isMenuOpen]);\n\n function handleBackdropClick(e: React.MouseEvent<HTMLDivElement>) {\n if (e.target === e.currentTarget) {\n setIsMenuOpen(false);\n }\n }\n\n return (\n <>\n {isMenuOpen && <div className={styles.backdrop} onClick={handleBackdropClick} />}\n <div className={`${styles.menuOverlay} ${!isMenuOpen ? styles.hidden : ''} ${className ?? ''}`}>\n <div className={styles.container}>\n <div className={styles.searchSection}>\n <Heading level={1}>{t('menu.helpTitle')}</Heading>\n <Search>\n <Search.Input\n aria-label={t('common.search')}\n ref={searchInputRef}\n value={searchValue}\n onChange={(e) => setSearchValue(e.target.value)}\n placeholder={t('common.search')}\n className={styles.searchField}\n />\n <Search.Clear />\n </Search>\n </div>\n\n <nav className={styles.menuSections} aria-label={t('menu.mainMenuLabel')}>\n {NAVIGATION_MENU.map((section: MenuSection, sectionIndex: number) => (\n <section\n key={sectionIndex}\n className={styles.section}\n style={{ animationDelay: `${0.15 + sectionIndex * 0.06}s` }}\n >\n {section.layout !== 'subsections' && (\n <Heading level={2} className={styles.sectionHeader}>\n {section.title}\n </Heading>\n )}\n\n {section.layout === 'subsections' && section.subsections ? (\n <div className={styles.subsectionsGrid}>\n {section.subsections.map((subsection, subsectionIndex) => (\n <div key={subsectionIndex} className={styles.subsection}>\n <Heading level={2} className={styles.subsectionHeader}>\n {subsection.title}\n </Heading>\n <div className={styles.subsectionItems}>\n {subsection.items.map((item, itemIndex) => (\n <NavigationMenuItem\n key={itemIndex}\n item={item}\n animationDelay={\n 150 + sectionIndex * 60 + subsectionIndex * 40 + itemIndex * 25\n }\n appBasePath={appBasePath}\n compact\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className={sectionIndex === 2 ? styles.itemsGridThreeCol : styles.itemsGrid}>\n {section.items?.map((item, itemIndex) => (\n <NavigationMenuItem\n key={itemIndex}\n item={item}\n animationDelay={150 + sectionIndex * 60 + itemIndex * 25}\n appBasePath={appBasePath}\n />\n ))}\n </div>\n )}\n </section>\n ))}\n </nav>\n </div>\n </div>\n </>\n );\n}","export type MenuItem = {\n label: string;\n href: string;\n external?: boolean;\n children?: MenuItem[];\n};\n\nexport type MenuSubsection = {\n title: string;\n items: MenuItem[];\n};\n\nexport type MenuSection = {\n title: string;\n layout?: 'columns' | 'subsections';\n items?: MenuItem[];\n subsections?: MenuSubsection[];\n};\n\nexport const NAVIGATION_MENU: MenuSection[] = [\n {\n title: 'Våre tjenester',\n layout: 'columns',\n items: [\n {\n label: 'Statens eide og leide lokaler',\n href: '/lokaler',\n children: [\n { label: 'Lokalbruk', href: '/lokaler/lokalbruk' },\n { label: 'Statlige eiendommer', href: '/lokaler/statlige-eiendommer' },\n { label: 'Ledig for fremleie', href: '/lokaler/ledig-for-fremleie' },\n { label: 'Statistikk for lokalbruk', href: '/lokaler/statistikk' },\n { label: 'Veiledning', href: '/lokaler/veiledning' },\n ],\n },\n {\n label: 'For leietakere',\n href: '/for-leietakere',\n children: [\n { label: 'Leieveileder', href: '/for-leietakere/leieveileder' },\n ],\n },\n {\n label: 'For byggebransjen',\n href: '/byggebransjen',\n children: [\n { label: 'Våre krav', href: '/byggebransjen/vare-krav' },\n { label: 'BIM', href: '/byggebransjen/bim' },\n { label: 'ByggBoks', href: '/byggebransjen/byggboks' },\n ],\n },\n {\n label: 'Karriere',\n href: '/karriere',\n children: [\n { label: 'Ledige stillinger', href: '/karriere/ledige-stillinger' },\n { label: 'Å jobbe hos oss', href: '/karriere/jobbe-hos-oss' },\n { label: 'Møt en statsbygger', href: '/karriere/mot-en-statsbygger' },\n { label: 'Summer internship', href: '/karriere/summer-internship' },\n { label: 'Studenter og lærlinger', href: '/karriere/studenter-og-laerlinger' },\n ],\n },\n ],\n },\n {\n title: 'Informasjon om statsbygg',\n layout: 'subsections',\n subsections: [\n {\n title: 'Informasjon om statsbygg',\n items: [\n { label: 'Om Statsbygg', href: '/om-statsbygg' },\n { label: 'Samfunnsansvar', href: '/samfunnsansvar' },\n { label: 'Tilgjengelighet', href: '/tilgjengelighet' },\n { label: 'About Statsbygg', href: '/about-statsbygg' },\n { label: 'Statsbygg birra', href: '/statsbygg-birra' },\n ],\n },\n {\n title: 'Kontakt oss',\n items: [\n { label: 'Kontakt oss', href: '/kontakt' },\n { label: 'Ansattsøk', href: '/ansattsok' },\n { label: 'For pressen', href: '/for-pressen' },\n { label: 'Varsling', href: '/varsling' },\n ],\n },\n {\n title: 'Arkiv',\n items: [\n { label: 'Nyheter', href: '/nyheter' },\n { label: 'Artikler om bygg', href: '/artikler-om-bygg' },\n { label: 'Dokumenter', href: '/dokumenter' },\n ],\n },\n ],\n },\n {\n title: 'Eksterne lenker',\n layout: 'columns',\n items: [\n {\n label: 'Statens lokaler',\n href: 'https://statensinnleie.no',\n external: true,\n },\n {\n label: 'Statens innleie',\n href: 'https://statensinnleie.no',\n external: true,\n },\n {\n label: 'MainManager FM',\n href: 'https://mainmanager.no',\n external: true,\n },\n {\n label: 'Offentlig postjournal',\n href: 'https://postjournal.no',\n external: true,\n },\n {\n label: 'SIMBA (BIM)',\n href: 'https://bim.statsbygg.no',\n external: true,\n },\n ],\n },\n];","'use client';\n\nimport { List } from '@digdir/designsystemet-react';\nimport { ExternalLink } from 'lucide-react';\nimport { usePathname } from 'next/navigation';\nimport clsx from 'clsx';\nimport { SmartLink } from '../SmartLink';\nimport type { MenuItem } from '../../navigationMenu';\nimport type { NavigationMenuItemProps } from './NavigationMenuItem.types';\nimport styles from './NavigationMenuItem.module.css';\n\nexport function NavigationMenuItem({\n item,\n animationDelay,\n compact = false,\n appBasePath,\n}: NavigationMenuItemProps) {\n const pathname = usePathname();\n\n const isActive = (href: string) => {\n if (href === '/') return pathname === '/';\n return pathname?.startsWith(href);\n };\n\n const isParentActive = isActive(item.href);\n\n if (compact) {\n return (\n <div\n className={styles.itemColumn}\n style={{ animationDelay: `${animationDelay}ms` }}\n >\n <SmartLink\n href={item.href}\n appBasePath={appBasePath}\n external={item.external}\n className={clsx(styles.compactLink, isParentActive && styles.active)}\n >\n {item.label}\n {item.external && <ExternalLink size={16} aria-hidden=\"true\" />}\n </SmartLink>\n </div>\n );\n }\n\n return (\n <div\n className={styles.itemColumn}\n style={{ animationDelay: `${animationDelay}ms` }}\n >\n <SmartLink\n href={item.href}\n appBasePath={appBasePath}\n external={item.external}\n className={clsx(styles.parentLink, isParentActive && styles.active)}\n >\n {item.label}\n {item.external && <ExternalLink size={20} aria-hidden=\"true\" />}\n </SmartLink>\n\n {item.children && item.children.length > 0 && (\n <List.Unordered className={styles.childItems}>\n {item.children.map((child: MenuItem, childIndex: number) => {\n const isChildActive = isActive(child.href);\n\n return (\n <List.Item\n key={childIndex}\n className={styles.childItem}\n style={{ animationDelay: `${animationDelay + 30 + childIndex * 15}ms` }}\n >\n <SmartLink\n href={child.href}\n appBasePath={appBasePath}\n external={child.external}\n className={clsx(styles.childLink, isChildActive && styles.active)}\n >\n {child.label}\n {child.external && <ExternalLink size={16} aria-hidden=\"true\" />}\n </SmartLink>\n </List.Item>\n );\n })}\n </List.Unordered>\n )}\n </div>\n );\n}","'use client';\n\nimport Link from 'next/link';\nimport { Link as DsLink } from '@digdir/designsystemet-react';\nimport type { SmartLinkProps } from './SmartLink.types';\n\n/**\n * Determines if a given href belongs to the current zone, another zone or should be external\n */\nexport function SmartLink({\n href,\n appBasePath,\n external = false,\n className,\n children,\n}: SmartLinkProps) {\n const isExternalUrl = href.startsWith('http://') || href.startsWith('https://');\n const isLocalRoute =\n appBasePath &&\n !isExternalUrl &&\n (href === appBasePath || href.startsWith(`${appBasePath}/`));\n\n if (isExternalUrl || external) {\n return (\n <DsLink\n href={href}\n className={className}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children}\n </DsLink>\n );\n }\n\n if (isLocalRoute) {\n // Strip the basePath\n const localHref = href.replace(appBasePath, '') || '/';\n\n return (\n <Link href={localHref} className={className}>\n {children}\n </Link>\n );\n }\n\n // Cross-zone navigation: use standard anchor for full page load\n return (\n <DsLink href={href} className={className}>\n {children}\n </DsLink>\n );\n}","'use client';\n\nimport { Paragraph } from '@digdir/designsystemet-react';\nimport clsx from 'clsx';\nimport type { GlobalFooterProps } from './GlobalFooter.types';\nimport styles from './GlobalFooter.module.css';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\n\nexport function GlobalFooter({ className }: GlobalFooterProps) {\n const { t } = useLayoutTranslation();\n\n return (\n <footer className={clsx(styles.footer, className)}>\n <div className={styles.container}>\n <div className={styles.content}>\n <Paragraph>\n {t('footer.content')}\n </Paragraph>\n\n\n </div>\n </div>\n </footer>\n );\n}","import { useEffect } from 'react';\nimport { useGlobalStore } from '../store/globalState';\nimport type { BreadcrumbItem } from '../routes';\n\n/**\n * Hook for manually setting breadcrumbs on dynamic routes.\n * Overrides automatic breadcrumb generation, preserving external ancestors.\n *\n * @param breadcrumbs - Array of breadcrumb items for the current dynamic route\n */\nexport function useBreadcrumbs(breadcrumbs: BreadcrumbItem[]): void {\n const setBreadcrumbs = useGlobalStore((state) => state.setBreadcrumbs);\n const serialized = JSON.stringify(breadcrumbs);\n\n useEffect(() => {\n setBreadcrumbs(JSON.parse(serialized));\n\n return () => {\n setBreadcrumbs(null);\n };\n }, [serialized, setBreadcrumbs]);\n}"],"mappings":"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","names":["useEffect","clsx","Button","Link","Search","clsx","jsx","usePathname","clsx","Link","jsx","styles","jsx","usePathname","clsx","styles","jsx","jsxs","Fragment","jsx","jsxs","styles","Fragment","jsx","jsxs","clsx","Link","Button","Search","clsx","styles","jsx","clsx","styles","styles","jsx","jsxs","useEffect","clsx","useEffect","useEffect"]}
1
+ {"version":3,"sources":["../src/components/GlobalHeader/GlobalHeader.tsx","../src/components/Breadcrumbs/Breadcrumbs.tsx","../src/routes.ts","../src/store/globalState.ts","../src/locales/translations.ts","../src/hooks/use-layout-translation.ts","../src/components/BreadcrumbLink/BreadcrumbLink.tsx","../src/components/MenuButton/MenuButton.tsx","../src/components/NavigationMenu/NavigationMenu.tsx","../src/navigationMenu.ts","../src/components/NavigationMenuItem/NavigationMenuItem.tsx","../src/components/SmartLink/SmartLink.tsx","../src/components/RootLayout/RootLayout.tsx","../src/components/GlobalFooter/GlobalFooter.tsx","../src/hooks/use-breadcrumbs.ts"],"sourcesContent":["'use client';\n\nimport { Button, Link } from '@digdir/designsystemet-react';\nimport { Search } from 'lucide-react';\nimport clsx from 'clsx';\nimport { Breadcrumbs } from '../Breadcrumbs';\nimport { MenuButton } from '../MenuButton';\nimport { ALLOW_DARK_THEME, useGlobalStore } from '@/store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { GlobalHeaderProps } from './GlobalHeader.types';\nimport styles from './GlobalHeader.module.css';\n\nexport function GlobalHeader({ className, routes, appBasePath, pathname }: GlobalHeaderProps & { pathname?: string }) {\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const setIsMenuOpen = useGlobalStore((state) => state.setIsMenuOpen);\n const setTheme = useGlobalStore((state) => state.setTheme);\n const theme = useGlobalStore((state) => state.theme);\n const { t } = useLayoutTranslation();\n\n function toggleDarkMode() {\n setTheme(theme === 'dark' ? 'light' : 'dark');\n }\n\n return (\n <header className={clsx(styles.header, isMenuOpen && styles.menuOpen, className)}>\n <div className={styles.headerContainer}>\n <div className={styles.topBarContainer}>\n <Link href=\"https://www.statsbygg.no\">\n <img\n src=\"https://dok.statsbygg.no/wp-content/uploads/2025/11/Statsbygg_logo.svg\"\n alt=\"Logo\"\n className={styles.logo}\n />\n </Link>\n <div className={styles.actionsContainer}>\n {!isMenuOpen && (\n <>\n {ALLOW_DARK_THEME && (\n <Button onClick={toggleDarkMode} className={styles.themeToggleButton}>\n {theme === 'dark' ? '☀️' : '🌙'}\n </Button>\n )}\n <Button\n variant=\"secondary\"\n onClick={() => setIsMenuOpen(true)}\n className={styles.searchButton}\n aria-label={t('common.search')}\n >\n <Search size={20} aria-hidden=\"true\" />\n {t('common.search')}\n </Button>\n </>\n )}\n <MenuButton appBasePath={appBasePath} />\n </div>\n </div>\n <Breadcrumbs routes={routes} appBasePath={appBasePath} pathname={pathname} />\n </div>\n </header>\n );\n}","'use client';\n\nimport { useMemo } from 'react';\nimport { usePathname } from 'next/navigation';\nimport { Breadcrumbs } from '@digdir/designsystemet-react';\nimport clsx from 'clsx';\nimport { getBreadcrumbs, findAppRootWithAncestors, BreadcrumbItem } from '@/routes';\nimport { useGlobalStore } from '@/store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport { BreadcrumbLink } from '../BreadcrumbLink';\nimport type { BreadcrumbsProps } from './Breadcrumbs.types';\nimport styles from './Breadcrumbs.module.css';\n\nexport function SbBreadcrumbs({ className, routes, appBasePath, pathname: propPathname }: BreadcrumbsProps) {\n const pathname = propPathname ?? usePathname();\n const manualBreadcrumbs = useGlobalStore((state) => state.breadcrumbs);\n const { t } = useLayoutTranslation();\n\n const breadcrumbs = useMemo((): BreadcrumbItem[] => {\n if (manualBreadcrumbs) {\n const { externalAncestors } = findAppRootWithAncestors(routes);\n const baseBreadcrumbs = externalAncestors.map((node) => ({\n label: node.label,\n href: node.path,\n }));\n const manualHrefs = new Set(manualBreadcrumbs.map((b) => b.href));\n const uniqueBase = baseBreadcrumbs.filter((b) => !manualHrefs.has(b.href));\n return [...uniqueBase, ...manualBreadcrumbs];\n }\n return getBreadcrumbs(routes, pathname);\n }, [routes, pathname, manualBreadcrumbs]);\n\n if (breadcrumbs.length === 0) {\n return null;\n }\n\n return (\n <Breadcrumbs\n aria-label={t('common.youAreHere')}\n className={clsx(styles.breadcrumbs, className)}\n >\n <Breadcrumbs.List>\n {breadcrumbs.map((crumb, index) => {\n const isLast = index === breadcrumbs.length - 1;\n\n return (\n <Breadcrumbs.Item key={`${crumb.href}-${index}`}>\n <BreadcrumbLink\n href={crumb.href}\n ariaCurrent={isLast ? 'page' : undefined}\n className={isLast ? styles.currentLink : styles.link}\n >\n {crumb.label}\n </BreadcrumbLink>\n </Breadcrumbs.Item>\n );\n })}\n </Breadcrumbs.List>\n </Breadcrumbs>\n );\n}","export type RouteNode = {\n path: string;\n label: string;\n children?: RouteNode[];\n};\n\nexport type BreadcrumbItem = {\n label: string;\n href: string;\n};\n\nfunction isExternalPath(path: string): boolean {\n return path.startsWith('http://') || path.startsWith('https://');\n}\n\nfunction normalizePath(path: string): string {\n if (path === '/') return '/';\n return path.replace(/\\/+$/, '');\n}\n\nfunction formatSegmentLabel(segment: string): string {\n try {\n const decoded = decodeURIComponent(segment).replace(/[-_]+/g, ' ').trim();\n return decoded ? decoded.charAt(0).toUpperCase() + decoded.slice(1) : segment;\n } catch {\n return segment;\n }\n}\n\ntype AncestorChain = {\n externalAncestors: RouteNode[];\n appRoot: RouteNode | null;\n};\n\nexport function findAppRootWithAncestors(node: RouteNode, ancestors: RouteNode[] = []): AncestorChain {\n if (!isExternalPath(node.path)) {\n return {\n externalAncestors: ancestors,\n appRoot: node,\n };\n }\n\n if (node.children) {\n for (const child of node.children) {\n const result = findAppRootWithAncestors(child, [...ancestors, node]);\n if (result.appRoot) return result;\n }\n }\n\n return { externalAncestors: ancestors, appRoot: null };\n}\n\ntype InternalMatch = {\n node: RouteNode;\n ancestors: RouteNode[];\n};\n\nfunction findInternalMatch(\n node: RouteNode,\n pathname: string,\n ancestors: RouteNode[] = []\n): InternalMatch | null {\n const nodePath = normalizePath(node.path);\n\n if (pathname === nodePath) {\n return { node, ancestors };\n }\n\n if (node.children) {\n for (const child of node.children) {\n if (isExternalPath(child.path)) continue;\n\n const result = findInternalMatch(child, pathname, [...ancestors, node]);\n if (result) return result;\n }\n }\n\n const pathPrefix = nodePath === '/' ? '/' : nodePath + '/';\n if (pathname.startsWith(pathPrefix) || pathname === nodePath) {\n return { node, ancestors };\n }\n\n return null;\n}\n\nexport function getBreadcrumbs(routes: RouteNode, pathname: string): BreadcrumbItem[] {\n const normalizedPathname = normalizePath(pathname);\n const { externalAncestors, appRoot } = findAppRootWithAncestors(routes);\n\n if (!appRoot) {\n return externalAncestors.map((node) => ({\n label: node.label,\n href: node.path,\n }));\n }\n\n const breadcrumbs: BreadcrumbItem[] = externalAncestors.map((node) => ({\n label: node.label,\n href: node.path,\n }));\n\n const internalMatch = findInternalMatch(appRoot, normalizedPathname);\n\n if (!internalMatch) {\n breadcrumbs.push({ label: appRoot.label, href: appRoot.path });\n return breadcrumbs;\n }\n\n for (const ancestor of internalMatch.ancestors) {\n breadcrumbs.push({\n label: ancestor.label,\n href: ancestor.path,\n });\n }\n\n breadcrumbs.push({\n label: internalMatch.node.label,\n href: internalMatch.node.path,\n });\n\n const matchedPath = normalizePath(internalMatch.node.path);\n if (normalizedPathname !== matchedPath) {\n const remainingPath = normalizedPathname.slice(\n matchedPath === '/' ? 1 : matchedPath.length + 1\n );\n const dynamicSegments = remainingPath.split('/').filter(Boolean);\n\n let accumulatedPath = matchedPath;\n for (const segment of dynamicSegments) {\n accumulatedPath = accumulatedPath === '/' ? `/${segment}` : `${accumulatedPath}/${segment}`;\n breadcrumbs.push({\n label: formatSegmentLabel(segment),\n href: accumulatedPath,\n });\n }\n }\n\n return breadcrumbs;\n}","import { create, StateCreator } from 'zustand';\nimport { persist, createJSONStorage } from 'zustand/middleware';\nimport type { BreadcrumbItem } from '../routes';\n\nexport type Theme = 'light' | 'dark' | 'system';\n\nexport const ALLOW_DARK_THEME = false;\n\nexport type GlobalState = {\n user?: { id: string; name?: string } | null;\n theme: Theme;\n locale: string;\n isMenuOpen: boolean;\n breadcrumbs: BreadcrumbItem[] | null;\n setUser: (user: GlobalState['user']) => void;\n setTheme: (theme: Theme) => void;\n setLocale: (locale: string) => void;\n setIsMenuOpen: (isOpen: boolean) => void;\n toggleMenu: () => void;\n setBreadcrumbs: (breadcrumbs: BreadcrumbItem[] | null) => void;\n initialize: () => void;\n};\n\nconst creator: StateCreator<GlobalState, [['zustand/persist', unknown]]> = (set, get) => ({\n user: null,\n theme: 'light',\n locale: 'no',\n isMenuOpen: false,\n breadcrumbs: null,\n setUser: (user) => set({ user }),\n setTheme: (theme) => {\n set({ theme: ALLOW_DARK_THEME ? theme : 'light' });\n if (typeof document !== 'undefined' && ALLOW_DARK_THEME) {\n document.documentElement.setAttribute('data-color-scheme', theme);\n }\n },\n setLocale: (locale) => set({ locale }),\n setIsMenuOpen: (isMenuOpen) => set({ isMenuOpen }),\n toggleMenu: () => set((state) => ({ isMenuOpen: !state.isMenuOpen })),\n setBreadcrumbs: (breadcrumbs) => set({ breadcrumbs }),\n initialize: () => {\n if (typeof document !== 'undefined' && ALLOW_DARK_THEME) {\n document.documentElement.setAttribute('data-color-scheme', get().theme);\n }\n },\n});\n\nexport const useGlobalStore = create<GlobalState>()(\n persist(creator, {\n name: 'statsbygg-global-state',\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => ({\n user: state.user,\n theme: ALLOW_DARK_THEME ? state.theme : 'light',\n locale: state.locale,\n }),\n })\n);","export const translations = {\n no: {\n 'common.menu': 'Meny',\n 'common.close': 'Lukk',\n 'common.search': 'Søk',\n 'common.searchLabel': 'Søk',\n 'common.youAreHere': 'Du er her:',\n 'common.skipLink': 'Hopp til hovedinnhold',\n 'common.home': 'Hjem',\n 'footer.shortcuts': 'Snarveier',\n 'footer.news': 'Nyheter',\n 'footer.press': 'For pressen',\n 'footer.whistleblowing': 'Varsling',\n 'footer.privacy': 'Personvern og informasjonskapsler',\n 'footer.accessibility': 'Tilgjengelighet',\n 'footer.about': 'About Statsbygg / Statsbygg birra',\n 'footer.publications': 'Publikasjoner',\n 'footer.stateFacilities': 'Statens lokaler',\n 'footer.mmfmHelpdesk': 'MMFM – helpdesk',\n 'footer.simba': 'Simba – Statsbyggs BIM-sider',\n 'footer.stateRental': 'Statens innleie',\n 'footer.publicJournal': 'Søk innsyn via offentlig postjournal',\n 'footer.followUs': 'Følg oss',\n 'footer.contactUs': 'Kontakt oss',\n 'footer.phone': 'Telefon',\n 'footer.findEmployee': 'Finn en ansatt',\n 'footer.visitAddress': 'Besøksadresse',\n 'footer.postalAddress': 'Postadresse',\n 'footer.tagline': 'Bygg med mening',\n 'menu.helpTitle': 'Hva kan vi hjelpe deg med?',\n 'menu.mainMenuLabel': 'Hovedmeny',\n 'menu.closeMenu': 'Lukk meny',\n 'menu.openMenu': 'Åpne meny',\n }\n};\n\nexport type TranslationKey = keyof typeof translations.no;","import { TranslationKey, translations } from '@/locales/translations';\nimport { useGlobalStore } from '@/store/globalState';\n\nexport function useLayoutTranslation() {\n const locale = useGlobalStore((state) => state.locale) as keyof typeof translations;\n \n const languageMap = translations[locale] || translations.no;\n\n function t(key: TranslationKey): string {\n return languageMap[key] || key;\n }\n\n return { t, locale };\n}","'use client';\n\nimport Link from 'next/link';\nimport type { ReactNode } from 'react';\n\ntype BreadcrumbLinkProps = {\n href: string;\n className?: string;\n ariaCurrent?: 'page' | undefined;\n children: ReactNode;\n};\n\n/**\n * Renders breadcrumb links correctly:\n * - External URLs (http/https): standard anchor tag\n * - Internal paths: Next.js Link (handles basePath automatically)\n */\nexport function BreadcrumbLink({\n href,\n className,\n ariaCurrent,\n children,\n}: BreadcrumbLinkProps) {\n const isExternal = href.startsWith('http://') || href.startsWith('https://');\n\n if (isExternal) {\n return (\n <a href={href} className={className} aria-current={ariaCurrent}>\n {children}\n </a>\n );\n }\n\n return (\n <Link href={href} className={className} aria-current={ariaCurrent}>\n {children}\n </Link>\n );\n}","'use client';\n\nimport { Button } from '@digdir/designsystemet-react';\nimport { Menu, X } from 'lucide-react';\nimport { useGlobalStore } from '@/store/globalState';\nimport { NavigationMenu } from '../NavigationMenu';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { MenuButtonProps } from './MenuButton.types';\n\nexport function MenuButton({ className, appBasePath }: MenuButtonProps) {\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const toggleMenu = useGlobalStore((state) => state.toggleMenu);\n const { t } = useLayoutTranslation();\n\n return (\n <>\n <Button\n variant=\"primary\"\n onClick={toggleMenu}\n aria-expanded={isMenuOpen}\n aria-label={isMenuOpen ? t('menu.closeMenu') : t('menu.openMenu')}\n className={className}\n >\n {isMenuOpen ? <X size={20} aria-hidden=\"true\" /> : <Menu size={20} aria-hidden=\"true\" />}\n {isMenuOpen ? t('common.close') : t('common.menu')}\n </Button>\n <NavigationMenu appBasePath={appBasePath} />\n </>\n );\n}","'use client';\n\nimport { useState, useEffect, useRef } from 'react';\nimport { Heading, Search } from '@digdir/designsystemet-react';\nimport { NAVIGATION_MENU, MenuSection } from '../../navigationMenu';\nimport { NavigationMenuItem } from '../NavigationMenuItem/NavigationMenuItem';\nimport { useGlobalStore } from '../../store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { NavigationMenuProps } from './NavigationMenu.types';\nimport styles from './NavigationMenu.module.css';\n\nexport function NavigationMenu({ className, appBasePath }: NavigationMenuProps) {\n const [searchValue, setSearchValue] = useState('');\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const setIsMenuOpen = useGlobalStore((state) => state.setIsMenuOpen);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const { t } = useLayoutTranslation();\n\n useEffect(() => {\n if (!isMenuOpen) return;\n\n function handleEscape(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n setIsMenuOpen(false);\n }\n }\n\n setTimeout(() => {\n searchInputRef.current?.focus();\n }, 100);\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [setIsMenuOpen, isMenuOpen]);\n\n function handleBackdropClick(e: React.MouseEvent<HTMLDivElement>) {\n if (e.target === e.currentTarget) {\n setIsMenuOpen(false);\n }\n }\n\n return (\n <>\n {isMenuOpen && <div className={styles.backdrop} onClick={handleBackdropClick} />}\n <div className={`${styles.menuOverlay} ${!isMenuOpen ? styles.hidden : ''} ${className ?? ''}`}>\n <div className={styles.container}>\n <div className={styles.searchSection}>\n <Heading level={1}>{t('menu.helpTitle')}</Heading>\n <Search>\n <Search.Input\n aria-label={t('common.search')}\n ref={searchInputRef}\n value={searchValue}\n onChange={(e) => setSearchValue(e.target.value)}\n placeholder={t('common.search')}\n className={styles.searchField}\n />\n <Search.Clear />\n </Search>\n </div>\n\n <nav className={styles.menuSections} aria-label={t('menu.mainMenuLabel')}>\n {NAVIGATION_MENU.map((section: MenuSection, sectionIndex: number) => (\n <section\n key={sectionIndex}\n className={styles.section}\n style={{ animationDelay: `${0.15 + sectionIndex * 0.06}s` }}\n >\n {section.layout !== 'subsections' && (\n <Heading level={2} className={styles.sectionHeader}>\n {section.title}\n </Heading>\n )}\n\n {section.layout === 'subsections' && section.subsections ? (\n <div className={styles.subsectionsGrid}>\n {section.subsections.map((subsection, subsectionIndex) => (\n <div key={subsectionIndex} className={styles.subsection}>\n <Heading level={2} className={styles.subsectionHeader}>\n {subsection.title}\n </Heading>\n <div className={styles.subsectionItems}>\n {subsection.items.map((item, itemIndex) => (\n <NavigationMenuItem\n key={itemIndex}\n item={item}\n animationDelay={\n 150 + sectionIndex * 60 + subsectionIndex * 40 + itemIndex * 25\n }\n appBasePath={appBasePath}\n compact\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className={sectionIndex === 2 ? styles.itemsGridThreeCol : styles.itemsGrid}>\n {section.items?.map((item, itemIndex) => (\n <NavigationMenuItem\n key={itemIndex}\n item={item}\n animationDelay={150 + sectionIndex * 60 + itemIndex * 25}\n appBasePath={appBasePath}\n />\n ))}\n </div>\n )}\n </section>\n ))}\n </nav>\n </div>\n </div>\n </>\n );\n}","export type MenuItem = {\n label: string;\n href: string;\n external?: boolean;\n children?: MenuItem[];\n};\n\nexport type MenuSubsection = {\n title: string;\n items: MenuItem[];\n};\n\nexport type MenuSection = {\n title: string;\n layout?: 'columns' | 'subsections';\n items?: MenuItem[];\n subsections?: MenuSubsection[];\n};\n\nexport const NAVIGATION_MENU: MenuSection[] = [\n {\n title: 'Våre tjenester',\n layout: 'columns',\n items: [\n {\n label: 'Statens eide og leide lokaler',\n href: '/lokaler',\n children: [\n { label: 'Lokalbruk', href: '/lokaler/lokalbruk' },\n { label: 'Statlige eiendommer', href: '/lokaler/statlige-eiendommer' },\n { label: 'Ledig for fremleie', href: '/lokaler/ledig-for-fremleie' },\n { label: 'Statistikk for lokalbruk', href: '/lokaler/statistikk' },\n { label: 'Veiledning', href: '/lokaler/veiledning' },\n ],\n },\n {\n label: 'For leietakere',\n href: '/for-leietakere',\n children: [\n { label: 'Leieveileder', href: '/for-leietakere/leieveileder' },\n ],\n },\n {\n label: 'For byggebransjen',\n href: '/byggebransjen',\n children: [\n { label: 'Våre krav', href: '/byggebransjen/vare-krav' },\n { label: 'BIM', href: '/byggebransjen/bim' },\n { label: 'ByggBoks', href: '/byggebransjen/byggboks' },\n ],\n },\n {\n label: 'Karriere',\n href: '/karriere',\n children: [\n { label: 'Ledige stillinger', href: '/karriere/ledige-stillinger' },\n { label: 'Å jobbe hos oss', href: '/karriere/jobbe-hos-oss' },\n { label: 'Møt en statsbygger', href: '/karriere/mot-en-statsbygger' },\n { label: 'Summer internship', href: '/karriere/summer-internship' },\n { label: 'Studenter og lærlinger', href: '/karriere/studenter-og-laerlinger' },\n ],\n },\n ],\n },\n {\n title: 'Informasjon om statsbygg',\n layout: 'subsections',\n subsections: [\n {\n title: 'Informasjon om statsbygg',\n items: [\n { label: 'Om Statsbygg', href: '/om-statsbygg' },\n { label: 'Samfunnsansvar', href: '/samfunnsansvar' },\n { label: 'Tilgjengelighet', href: '/tilgjengelighet' },\n { label: 'About Statsbygg', href: '/about-statsbygg' },\n { label: 'Statsbygg birra', href: '/statsbygg-birra' },\n ],\n },\n {\n title: 'Kontakt oss',\n items: [\n { label: 'Kontakt oss', href: '/kontakt' },\n { label: 'Ansattsøk', href: '/ansattsok' },\n { label: 'For pressen', href: '/for-pressen' },\n { label: 'Varsling', href: '/varsling' },\n ],\n },\n {\n title: 'Arkiv',\n items: [\n { label: 'Nyheter', href: '/nyheter' },\n { label: 'Artikler om bygg', href: '/artikler-om-bygg' },\n { label: 'Dokumenter', href: '/dokumenter' },\n ],\n },\n ],\n },\n {\n title: 'Eksterne lenker',\n layout: 'columns',\n items: [\n {\n label: 'Statens lokaler',\n href: 'https://statensinnleie.no',\n external: true,\n },\n {\n label: 'Statens innleie',\n href: 'https://statensinnleie.no',\n external: true,\n },\n {\n label: 'MainManager FM',\n href: 'https://mainmanager.no',\n external: true,\n },\n {\n label: 'Offentlig postjournal',\n href: 'https://postjournal.no',\n external: true,\n },\n {\n label: 'SIMBA (BIM)',\n href: 'https://bim.statsbygg.no',\n external: true,\n },\n ],\n },\n];","'use client';\n\nimport { List } from '@digdir/designsystemet-react';\nimport { ExternalLink } from 'lucide-react';\nimport { usePathname } from 'next/navigation';\nimport clsx from 'clsx';\nimport { SmartLink } from '../SmartLink';\nimport type { MenuItem } from '../../navigationMenu';\nimport type { NavigationMenuItemProps } from './NavigationMenuItem.types';\nimport styles from './NavigationMenuItem.module.css';\n\nexport function NavigationMenuItem({\n item,\n animationDelay,\n compact = false,\n appBasePath,\n}: NavigationMenuItemProps) {\n const pathname = usePathname();\n\n const isActive = (href: string) => {\n if (href === '/') return pathname === '/';\n return pathname?.startsWith(href);\n };\n\n const isParentActive = isActive(item.href);\n\n if (compact) {\n return (\n <div\n className={styles.itemColumn}\n style={{ animationDelay: `${animationDelay}ms` }}\n >\n <SmartLink\n href={item.href}\n appBasePath={appBasePath}\n external={item.external}\n className={clsx(styles.compactLink, isParentActive && styles.active)}\n >\n {item.label}\n {item.external && <ExternalLink size={16} aria-hidden=\"true\" />}\n </SmartLink>\n </div>\n );\n }\n\n return (\n <div\n className={styles.itemColumn}\n style={{ animationDelay: `${animationDelay}ms` }}\n >\n <SmartLink\n href={item.href}\n appBasePath={appBasePath}\n external={item.external}\n className={clsx(styles.parentLink, isParentActive && styles.active)}\n >\n {item.label}\n {item.external && <ExternalLink size={20} aria-hidden=\"true\" />}\n </SmartLink>\n\n {item.children && item.children.length > 0 && (\n <List.Unordered className={styles.childItems}>\n {item.children.map((child: MenuItem, childIndex: number) => {\n const isChildActive = isActive(child.href);\n\n return (\n <List.Item\n key={childIndex}\n className={styles.childItem}\n style={{ animationDelay: `${animationDelay + 30 + childIndex * 15}ms` }}\n >\n <SmartLink\n href={child.href}\n appBasePath={appBasePath}\n external={child.external}\n className={clsx(styles.childLink, isChildActive && styles.active)}\n >\n {child.label}\n {child.external && <ExternalLink size={16} aria-hidden=\"true\" />}\n </SmartLink>\n </List.Item>\n );\n })}\n </List.Unordered>\n )}\n </div>\n );\n}","'use client';\n\nimport Link from 'next/link';\nimport { Link as DsLink } from '@digdir/designsystemet-react';\nimport type { SmartLinkProps } from './SmartLink.types';\n\n/**\n * Determines if a given href belongs to the current zone, another zone or should be external\n */\nexport function SmartLink({\n href,\n appBasePath,\n external = false,\n className,\n children,\n}: SmartLinkProps) {\n const isExternalUrl = href.startsWith('http://') || href.startsWith('https://');\n const isLocalRoute =\n appBasePath &&\n !isExternalUrl &&\n (href === appBasePath || href.startsWith(`${appBasePath}/`));\n\n if (isExternalUrl || external) {\n return (\n <DsLink\n href={href}\n className={className}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children}\n </DsLink>\n );\n }\n\n if (isLocalRoute) {\n // Strip the basePath\n const localHref = href.replace(appBasePath, '') || '/';\n\n return (\n <Link href={localHref} className={className}>\n {children}\n </Link>\n );\n }\n\n // Cross-zone navigation: use standard anchor for full page load\n return (\n <DsLink href={href} className={className}>\n {children}\n </DsLink>\n );\n}","'use client';\n\nimport { useEffect } from 'react';\nimport clsx from 'clsx';\nimport { SkipLink } from '@digdir/designsystemet-react';\nimport { GlobalHeader } from '../GlobalHeader';\nimport { GlobalFooter } from '../GlobalFooter';\nimport { useGlobalStore } from '@/store/globalState';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport type { RootLayoutProps } from './RootLayout.types';\nimport styles from './RootLayout.module.css';\n\nexport function RootLayout({ children, routes, appBasePath, className }: RootLayoutProps) {\n const initialize = useGlobalStore((state) => state.initialize);\n const isMenuOpen = useGlobalStore((state) => state.isMenuOpen);\n const { t } = useLayoutTranslation();\n\n useEffect(() => {\n initialize();\n }, [initialize]);\n\n return (\n <div className={clsx(styles.root, isMenuOpen && styles.menuOpen, className)}>\n <SkipLink className={styles.skipLink} href=\"#main-content\">\n {t('common.skipLink')}\n </SkipLink>\n <GlobalHeader routes={routes} appBasePath={appBasePath} />\n <main id=\"main-content\" tabIndex={-1} className={styles.main}>\n {children}\n </main>\n <GlobalFooter />\n </div>\n );\n}","'use client';\n\nimport { Link, Heading, List, Paragraph } from '@digdir/designsystemet-react';\nimport { ExternalLink } from 'lucide-react';\nimport clsx from 'clsx';\nimport type { GlobalFooterProps } from './GlobalFooter.types';\nimport styles from './GlobalFooter.module.css';\nimport { useLayoutTranslation } from '@/hooks/use-layout-translation';\nimport footerImage from '@/assets/images/footer.png';\nimport { linkedinIcon, instagramIcon, facebookIcon, youtubeIcon, vimeoIcon } from '@/assets/images/icons';\n\nexport function GlobalFooter({ \n className,\n logoUrl = footerImage,\n logoAlt\n}: GlobalFooterProps) {\n const { t } = useLayoutTranslation();\n\n return (\n <footer className={clsx(styles.footer, className)}>\n <div className={styles.footerContent}>\n <div className={clsx(styles.footerLeft, styles.shortcutsContainer)}>\n <div className={styles.shortcutsHeadingWide}>\n <Heading level={2} data-size=\"2xs\" className={styles.sectionHeading}>\n {t('footer.shortcuts')}\n </Heading>\n </div>\n <div className={styles.footerSection}>\n <List.Unordered className={styles.footerList}>\n <List.Item><Link href=\"#\">{t('footer.news')}</Link></List.Item>\n <List.Item><Link href=\"#\">{t('footer.press')}</Link></List.Item>\n <List.Item><Link href=\"#\">{t('footer.whistleblowing')}</Link></List.Item>\n <List.Item><Link href=\"#\">{t('footer.privacy')}</Link></List.Item>\n <List.Item><Link href=\"#\">{t('footer.accessibility')}</Link></List.Item>\n <List.Item><Link href=\"#\">{t('footer.about')}</Link></List.Item>\n </List.Unordered>\n </div>\n <div className={styles.footerSection}>\n <List.Unordered className={styles.footerList}>\n <List.Item><Link href=\"#\">{t('footer.publications')}</Link></List.Item>\n <List.Item><Link href=\"#\">{t('footer.stateFacilities')}</Link></List.Item>\n <List.Item><Link href=\"#\">{t('footer.mmfmHelpdesk')}</Link></List.Item>\n <List.Item>\n <Link href=\"https://simba.statsbygg.no/\" className={styles.externalLink} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('footer.simba')}\n <ExternalLink size={14} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n <List.Item>\n <Link href=\"https://statensinnleie.no\" className={styles.externalLink} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('footer.stateRental')}\n <ExternalLink size={14} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n <List.Item>\n <Link href=\"https://einnsyn.no/sok?f=0279324b-adee-4116-ae84-3895f61c0db9\" className={styles.externalLink} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('footer.publicJournal')}\n <ExternalLink size={14} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n </List.Unordered>\n </div>\n </div>\n\n <div className={clsx(styles.footerSection, styles.socialLinks)}>\n <Heading level={2} data-size=\"2xs\" className={styles.sectionHeading}>\n {t('footer.followUs')}\n </Heading>\n <List.Unordered className={styles.footerList}>\n <List.Item>\n <Link href=\"#\" className={styles.socialLink}>\n LinkedIn\n {/*\n To support image src resolution in sandbox, dev, and storybook\n */}\n <img src={typeof linkedinIcon === 'string' ? linkedinIcon : (linkedinIcon as any).src} alt=\"\" className={styles.socialIcon} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n <List.Item>\n <Link href=\"#\" className={styles.socialLink}>\n Instagram\n <img src={typeof instagramIcon === 'string' ? instagramIcon : (instagramIcon as any).src} alt=\"\" className={styles.socialIcon} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n <List.Item>\n <Link href=\"#\" className={styles.socialLink}>\n Facebook\n <img src={typeof facebookIcon === 'string' ? facebookIcon : (facebookIcon as any).src} alt=\"\" className={styles.socialIcon} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n <List.Item>\n <Link href=\"#\" className={styles.socialLink}>\n YouTube\n <img src={typeof youtubeIcon === 'string' ? youtubeIcon : (youtubeIcon as any).src} alt=\"\" className={styles.socialIcon} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n <List.Item>\n <Link href=\"#\" className={styles.socialLink}>\n Vimeo\n <img src={typeof vimeoIcon === 'string' ? vimeoIcon : (vimeoIcon as any).src} alt=\"\" className={styles.socialIcon} aria-hidden=\"true\" />\n </Link>\n </List.Item>\n </List.Unordered>\n </div>\n\n <div className={styles.footerLeftWide}>\n <div className={clsx(styles.footerSection, styles.contactSectionsContainer)}>\n <div className={styles.contactHeadingWide}>\n <Heading level={2} data-size=\"2xs\" className={styles.sectionHeading}>\n {t('footer.contactUs')}\n </Heading>\n </div>\n <div className={styles.contactSection}>\n <Paragraph data-size=\"sm\">\n <Link href=\"tel:22955000\">{t('footer.phone')}: 22 95 50 00</Link>\n </Paragraph>\n <Paragraph data-size=\"sm\">\n <Link href=\"mailto:postmottak@statsbygg.no\">postmottak@statsbygg.no</Link>\n </Paragraph>\n <Paragraph data-size=\"sm\">\n <Link href=\"#\">{t('footer.findEmployee')}</Link>\n </Paragraph>\n </div>\n\n <div className={styles.contactSection}>\n <Heading level={2} data-size=\"2xs\" className={styles.contactHeading}>\n {t('footer.visitAddress')}\n </Heading>\n <Paragraph data-size=\"sm\">\n Biskop Gunnerus' gate 6,<br />\n 0155 Oslo (Byporten)\n </Paragraph>\n </div>\n\n <div className={styles.contactSection}>\n <Heading level={2} data-size=\"2xs\" className={styles.contactHeading}>\n {t('footer.postalAddress')}\n </Heading>\n <Paragraph data-size=\"sm\">\n Postboks 232 Sentrum,<br />\n 0103 Oslo\n </Paragraph>\n </div>\n </div>\n </div>\n\n <div className={clsx(styles.footerSection, styles.socialLinks, styles.footerLogo)}>\n <div \n className={styles.logoSection}\n // To support image src resolution in sandbox, dev, and storybook\n style={{ backgroundImage: `url(${typeof logoUrl === 'string' ? logoUrl : (logoUrl as any).src})` }}\n role=\"img\"\n aria-label={logoAlt || t('footer.tagline')}\n />\n </div>\n </div>\n </footer>\n );\n}","import { useEffect } from 'react';\nimport { useGlobalStore } from '../store/globalState';\nimport type { BreadcrumbItem } from '../routes';\n\n/**\n * Hook for manually setting breadcrumbs on dynamic routes.\n * Overrides automatic breadcrumb generation, preserving external ancestors.\n *\n * @param breadcrumbs - Array of breadcrumb items for the current dynamic route\n */\nexport function useBreadcrumbs(breadcrumbs: BreadcrumbItem[]): void {\n const setBreadcrumbs = useGlobalStore((state) => state.setBreadcrumbs);\n const serialized = JSON.stringify(breadcrumbs);\n\n useEffect(() => {\n setBreadcrumbs(JSON.parse(serialized));\n\n return () => {\n setBreadcrumbs(null);\n };\n }, [serialized, setBreadcrumbs]);\n}"],"mappings":"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","names":["Button","Link","Search","clsx","jsx","usePathname","clsx","Link","jsx","styles","jsx","usePathname","clsx","styles","jsx","jsxs","Fragment","jsx","jsxs","styles","Fragment","jsx","jsxs","clsx","Link","Button","Search","useEffect","clsx","Link","Heading","List","ExternalLink","clsx","styles","jsx","jsxs","clsx","styles","Heading","List","Link","ExternalLink","styles","jsx","jsxs","useEffect","clsx","useEffect","useEffect"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@statsbygg/layout",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -35,7 +35,7 @@
35
35
  "@statsbygg/design-tokens": "0.4.1"
36
36
  },
37
37
  "dependencies": {
38
- "@digdir/designsystemet-react": "^1.9.0",
38
+ "@digdir/designsystemet-react": "1.9.0",
39
39
  "clsx": "^2.0.0",
40
40
  "lucide-react": "^0.514.0"
41
41
  },