@leabankab/component-library 8.11.0 → 8.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/component-library.es.js +1292 -1277
- package/dist/component-library.es.js.map +1 -1
- package/dist/component-library.umd.js +2 -2
- package/dist/component-library.umd.js.map +1 -1
- package/dist/cookie-consent-react.cjs +1 -1
- package/dist/cookie-consent-react.cjs.map +1 -1
- package/dist/cookie-consent-react.mjs +8 -8
- package/dist/cookie-consent-react.mjs.map +1 -1
- package/dist/cookie-consent.css +1 -1
- package/dist/i18n/languages.d.ts +34 -0
- package/dist/index.css +1 -1
- package/dist/next-intl/index.d.ts +21 -0
- package/dist/next-intl/lea-intl-provider.d.ts +35 -0
- package/dist/next-intl/server.d.ts +24 -0
- package/dist/next-intl/texts.d.ts +77 -0
- package/dist/next-intl/use-texts.d.ts +28 -0
- package/dist/next-intl-server.mjs +11 -0
- package/dist/next-intl-server.mjs.map +1 -0
- package/dist/next-intl-texts-De3tiuSm.mjs +25 -0
- package/dist/next-intl-texts-De3tiuSm.mjs.map +1 -0
- package/dist/next-intl.mjs +37 -0
- package/dist/next-intl.mjs.map +1 -0
- package/dist/website/arrow-reveal-link.d.ts +11 -4
- package/dist/website/side-nav/side-nav.d.ts +5 -2
- package/dist/website.cjs +1 -1
- package/dist/website.cjs.map +1 -1
- package/dist/website.css +1 -1
- package/dist/website.mjs +84 -65
- package/dist/website.mjs.map +1 -1
- package/package.json +15 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `@leabankab/component-library/next-intl` entry: the library in an app
|
|
3
|
+
* that uses next-intl. `LeaIntlProvider` sets the library's language and
|
|
4
|
+
* country from next-intl's locale, and `useTexts` reads the app's own texts
|
|
5
|
+
* in that language, with every language of the app's locales required.
|
|
6
|
+
* Server components use `@leabankab/component-library/next-intl/server`.
|
|
7
|
+
*
|
|
8
|
+
* It is an entry of its own so that next-intl stays an optional peer: the
|
|
9
|
+
* main entry never imports it. Two rules for the files in this folder, both
|
|
10
|
+
* checked by tests/entries.test.tsx:
|
|
11
|
+
*
|
|
12
|
+
* - What they share with the main entry at run time (`LeaProvider`,
|
|
13
|
+
* `CountryProvider`) they import from "../index". The build leaves that
|
|
14
|
+
* module out and points the import at the main bundle, so the language
|
|
15
|
+
* reaches the app's copy of the components.
|
|
16
|
+
* - Anything else they import from `src/` is bundled in, so it has to be
|
|
17
|
+
* plain data or a helper without state: `toLanguage`.
|
|
18
|
+
*/
|
|
19
|
+
export { LeaIntlProvider, type LeaIntlProviderProps, } from './lea-intl-provider';
|
|
20
|
+
export { useTexts } from './use-texts';
|
|
21
|
+
export type { AppLanguage, LanguagesOf, TextFunction, Texts, TextsResult, TextValue, TranslatedText, } from './texts';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Locale } from 'next-intl';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { Country } from '../index';
|
|
4
|
+
import { UnsupportedLocaleKey } from './texts';
|
|
5
|
+
export type LeaIntlProviderProps = {
|
|
6
|
+
/**
|
|
7
|
+
* The country of the formatting hooks (`useFormatCurrency` and the rest).
|
|
8
|
+
* Give it where the country is not the locale's. By default it is the
|
|
9
|
+
* locale's region when that is a Lea Bank country (`sv-FI`), or else the
|
|
10
|
+
* country of its language.
|
|
11
|
+
*/
|
|
12
|
+
country?: Country;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
} & {
|
|
15
|
+
[K in UnsupportedLocaleKey<Locale>]: never;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Sets the library's language and country from next-intl's locale: what
|
|
19
|
+
* `LeaProvider` and `CountryProvider` do, with no map from locale to
|
|
20
|
+
* language in the app. Put it inside `NextIntlClientProvider`, once:
|
|
21
|
+
*
|
|
22
|
+
* ```tsx
|
|
23
|
+
* // app/[locale]/layout.tsx
|
|
24
|
+
* import { NextIntlClientProvider } from "next-intl";
|
|
25
|
+
* import { LeaIntlProvider } from "@leabankab/component-library/next-intl";
|
|
26
|
+
*
|
|
27
|
+
* <NextIntlClientProvider>
|
|
28
|
+
* <LeaIntlProvider>{children}</LeaIntlProvider>
|
|
29
|
+
* </NextIntlClientProvider>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* The library's components then speak the locale's language, and the
|
|
33
|
+
* formatting hooks format for its country.
|
|
34
|
+
*/
|
|
35
|
+
export declare function LeaIntlProvider({ country, children }: LeaIntlProviderProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Locale } from 'next-intl';
|
|
2
|
+
import { AppLanguage, TextsResult } from './texts';
|
|
3
|
+
export type GetTextsOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* The locale, where next-intl can't tell it: in `generateMetadata` of a
|
|
6
|
+
* page that is rendered statically. By default, next-intl's `getLocale()`.
|
|
7
|
+
*/
|
|
8
|
+
locale?: Locale;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Texts in the language of next-intl's locale, for a server component. The
|
|
12
|
+
* texts are the same `satisfies Texts` objects that `useTexts` reads:
|
|
13
|
+
*
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { getTexts } from "@leabankab/component-library/next-intl/server";
|
|
16
|
+
*
|
|
17
|
+
* export default async function Page() {
|
|
18
|
+
* const { t } = await getTexts();
|
|
19
|
+
* return <h1>{t(texts.title)}</h1>;
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function getTexts<L extends AppLanguage = AppLanguage>(options?: GetTextsOptions): Promise<TextsResult<L>>;
|
|
24
|
+
export type { AppLanguage, LanguagesOf, TextFunction, Texts, TextsResult, TextValue, TranslatedText, } from './texts';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Locale } from 'next-intl';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
import { Language, LanguageOfLocale } from '../i18n/languages';
|
|
4
|
+
/**
|
|
5
|
+
* What a text can be in one language: a string, or an element for a text
|
|
6
|
+
* with markup in it (a link, a bold word).
|
|
7
|
+
*/
|
|
8
|
+
export type TextValue = string | ReactElement;
|
|
9
|
+
/** The locales in `L` that stand for no language of the library. */
|
|
10
|
+
type UnsupportedLocale<L extends string> = L extends string ? [LanguageOfLocale<L>] extends [never] ? L : never : never;
|
|
11
|
+
/**
|
|
12
|
+
* The guard on the app's locales. For each locale the library has no
|
|
13
|
+
* language for, a key that every text is then missing, so the error names
|
|
14
|
+
* the locale. `never` when every locale has a language.
|
|
15
|
+
*/
|
|
16
|
+
export type UnsupportedLocaleKey<L extends string> = string extends L ? never : `No library language for locale "${UnsupportedLocale<L>}"`;
|
|
17
|
+
/**
|
|
18
|
+
* The languages that texts for the locales `L` must have: the language of
|
|
19
|
+
* each locale, by `LanguageOfLocale`. `"sv" | "fi" | "nb"` gives
|
|
20
|
+
* `"se" | "fi" | "no"`. Without a list of locales (`string`), all four.
|
|
21
|
+
*/
|
|
22
|
+
export type LanguagesOf<L extends string> = string extends L ? Language : LanguageOfLocale<L> | UnsupportedLocaleKey<L>;
|
|
23
|
+
/**
|
|
24
|
+
* The languages every text in the app must have: one for each locale the app
|
|
25
|
+
* declares to next-intl. With
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* declare module "next-intl" {
|
|
29
|
+
* interface AppConfig {
|
|
30
|
+
* Locale: "sv" | "fi" | "nb";
|
|
31
|
+
* }
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* it is `"se" | "fi" | "no"`. An app that declares no `Locale` needs all
|
|
36
|
+
* four.
|
|
37
|
+
*/
|
|
38
|
+
export type AppLanguage = LanguagesOf<Locale>;
|
|
39
|
+
/** One text, in every language of `L`. */
|
|
40
|
+
export type TranslatedText<L extends string = AppLanguage> = {
|
|
41
|
+
readonly [K in L]: TextValue;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The texts of a component or a page: texts, functions that take what goes
|
|
45
|
+
* into a text and return it, and groups of either. Check the object with
|
|
46
|
+
* `satisfies Texts`, so a text that lacks one of the app's languages is a
|
|
47
|
+
* type error:
|
|
48
|
+
*
|
|
49
|
+
* ```tsx
|
|
50
|
+
* const texts = {
|
|
51
|
+
* title: { se: "Ditt lån", no: "Ditt lån", fi: "Lainasi" },
|
|
52
|
+
* greeting: (name: string) => ({ se: `Hej ${name}`, no: `Hei ${name}`, fi: `Hei ${name}` }),
|
|
53
|
+
* } satisfies Texts;
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* `Texts<"se">` is for a feature that only some markets have. Read its texts
|
|
57
|
+
* with `useTexts<"se">()`.
|
|
58
|
+
*/
|
|
59
|
+
export type Texts<L extends string = AppLanguage> = {
|
|
60
|
+
readonly [key: string]: TranslatedText<L> | ((...args: never[]) => TranslatedText<L>) | Texts<L>;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* `t`: a text in the current language. A string text gives a string, an
|
|
64
|
+
* element an element. Where `L` leaves out some of the app's languages, the
|
|
65
|
+
* text may have none for the current one, so the result can be `undefined`.
|
|
66
|
+
*/
|
|
67
|
+
export type TextFunction<L extends string = AppLanguage> = <T extends TranslatedText<L>>(text: T) => [AppLanguage] extends [L] ? T[L] : T[L] | undefined;
|
|
68
|
+
/** What `useTexts` and `getTexts` give. */
|
|
69
|
+
export type TextsResult<L extends string = AppLanguage> = {
|
|
70
|
+
/** A text in the current language. */
|
|
71
|
+
t: TextFunction<L>;
|
|
72
|
+
/** The current language, from next-intl's locale. */
|
|
73
|
+
language: AppLanguage;
|
|
74
|
+
};
|
|
75
|
+
/** The `t` and `language` for a language. Shared by the hook and the server. */
|
|
76
|
+
export declare function createTexts<L extends string>(language: Language): TextsResult<L>;
|
|
77
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AppLanguage, TextsResult } from './texts';
|
|
2
|
+
/**
|
|
3
|
+
* Texts in the language of next-intl's locale, for a client component. Keep
|
|
4
|
+
* the texts beside the component and check them with `satisfies Texts`:
|
|
5
|
+
*
|
|
6
|
+
* ```tsx
|
|
7
|
+
* "use client";
|
|
8
|
+
* import { useTexts, type Texts } from "@leabankab/component-library/next-intl";
|
|
9
|
+
*
|
|
10
|
+
* const texts = {
|
|
11
|
+
* title: { se: "Ditt lån", no: "Ditt lån", fi: "Lainasi" },
|
|
12
|
+
* greeting: (name: string) => ({ se: `Hej ${name}`, no: `Hei ${name}`, fi: `Hei ${name}` }),
|
|
13
|
+
* } satisfies Texts;
|
|
14
|
+
*
|
|
15
|
+
* function LoanHeader({ name }: { name: string }) {
|
|
16
|
+
* const { t } = useTexts();
|
|
17
|
+
* return <h1>{t(texts.title)}, {t(texts.greeting(name))}</h1>;
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* It reads the locale from `NextIntlClientProvider`, so it needs no provider
|
|
22
|
+
* of the library's. In a server component, use `getTexts` from
|
|
23
|
+
* `@leabankab/component-library/next-intl/server`.
|
|
24
|
+
*
|
|
25
|
+
* `useTexts<"se">()` reads texts that only some markets have (`Texts<"se">`).
|
|
26
|
+
* `t` then gives `undefined` in a language the text doesn't have.
|
|
27
|
+
*/
|
|
28
|
+
export declare function useTexts<L extends AppLanguage = AppLanguage>(): TextsResult<L>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { n as e, t } from "./next-intl-texts-De3tiuSm.mjs";
|
|
2
|
+
import { getLocale as n } from "next-intl/server";
|
|
3
|
+
//#region src/next-intl/server.ts
|
|
4
|
+
async function r(r = {}) {
|
|
5
|
+
let i = r.locale ?? await n();
|
|
6
|
+
return t(e(i));
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { r as getTexts };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=next-intl-server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl-server.mjs","names":[],"sources":["../src/next-intl/server.ts"],"sourcesContent":["/**\n * The `@leabankab/component-library/next-intl/server` entry: `getTexts`,\n * the server component's `useTexts`.\n *\n * It is apart from `next-intl` because that one is a client module, and a\n * server component can't call a function from a client module. For the same\n * reason nothing here imports from \"../index\", the main bundle, which is a\n * client module too. tests/entries.test.tsx checks both.\n */\nimport type { Locale } from \"next-intl\";\nimport { getLocale } from \"next-intl/server\";\n\nimport { toLanguage } from \"../i18n/languages\";\nimport { type AppLanguage, createTexts, type TextsResult } from \"./texts\";\n\nexport type GetTextsOptions = {\n /**\n * The locale, where next-intl can't tell it: in `generateMetadata` of a\n * page that is rendered statically. By default, next-intl's `getLocale()`.\n */\n locale?: Locale;\n};\n\n/**\n * Texts in the language of next-intl's locale, for a server component. The\n * texts are the same `satisfies Texts` objects that `useTexts` reads:\n *\n * ```tsx\n * import { getTexts } from \"@leabankab/component-library/next-intl/server\";\n *\n * export default async function Page() {\n * const { t } = await getTexts();\n * return <h1>{t(texts.title)}</h1>;\n * }\n * ```\n */\nexport async function getTexts<L extends AppLanguage = AppLanguage>(\n options: GetTextsOptions = {},\n): Promise<TextsResult<L>> {\n const locale = options.locale ?? (await getLocale());\n return createTexts<L>(toLanguage(locale));\n}\n\nexport type {\n AppLanguage,\n LanguagesOf,\n TextFunction,\n Texts,\n TextsResult,\n TextValue,\n TranslatedText,\n} from \"./texts\";\n"],"mappings":";;;AAoCA,eAAsB,EACpB,IAA2B,CAAC,GACH;CACzB,IAAM,IAAS,EAAQ,UAAW,MAAM,EAAU;CAClD,OAAO,EAAe,EAAW,CAAM,CAAC;AAC1C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
no: "no",
|
|
3
|
+
nb: "no",
|
|
4
|
+
nn: "no",
|
|
5
|
+
sv: "se",
|
|
6
|
+
se: "se",
|
|
7
|
+
fi: "fi",
|
|
8
|
+
es: "es"
|
|
9
|
+
};
|
|
10
|
+
function t(t) {
|
|
11
|
+
let n = t.toLowerCase().split("-")[0];
|
|
12
|
+
return Object.hasOwn(e, n) ? e[n] : "no";
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/next-intl/texts.ts
|
|
16
|
+
function n(e) {
|
|
17
|
+
return {
|
|
18
|
+
t: (t) => t[e],
|
|
19
|
+
language: e
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { t as n, n as t };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=next-intl-texts-De3tiuSm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl-texts-De3tiuSm.mjs","names":[],"sources":["../src/i18n/languages.ts","../src/next-intl/texts.ts"],"sourcesContent":["/**\n * Languages supported by the component library's built-in translations. The\n * consumer selects one via `LeaProvider`'s `language` prop; components read it\n * with `useLanguage` (usually through `createTranslation`).\n */\nexport const LANGUAGES = [\"no\", \"se\", \"fi\", \"es\"] as const;\n\nexport type Language = (typeof LANGUAGES)[number];\n\n/** Fallback language used when no provider is present or a key is missing. */\nexport const DEFAULT_LANGUAGE = \"no\" satisfies Language;\n\n/**\n * The language each first part of a locale code stands for. Bokmål, Nynorsk\n * and Norwegian are all `no`. Swedish is `se`, the library's name for it,\n * which some apps also use as their locale.\n */\nconst LANGUAGE_BY_SUBTAG = {\n no: \"no\",\n nb: \"no\",\n nn: \"no\",\n sv: \"se\",\n se: \"se\",\n fi: \"fi\",\n es: \"es\",\n} as const satisfies Record<string, Language>;\n\ntype LanguageSubtag = keyof typeof LANGUAGE_BY_SUBTAG;\n\n/**\n * The library language a locale code stands for, read from its first part:\n * `nb`, `nb-NO`, `nn` and `no` are `\"no\"`; `sv`, `sv-SE` and `se` are `\"se\"`;\n * `fi-FI` is `\"fi\"` and `es-ES` is `\"es\"`. `never` for a code the library has\n * no language for, such as `en`. The type of what `toLanguage` returns.\n */\nexport type LanguageOfLocale<L extends string> =\n L extends `${infer Subtag}-${string}`\n ? Subtag extends LanguageSubtag\n ? (typeof LANGUAGE_BY_SUBTAG)[Subtag]\n : never\n : L extends LanguageSubtag\n ? (typeof LANGUAGE_BY_SUBTAG)[L]\n : never;\n\n/**\n * The library language for a locale code as an app writes it for next-intl\n * or `Intl`, by the rules of `LanguageOfLocale`, in upper or lower case. A\n * code the library has no language for gives `DEFAULT_LANGUAGE`.\n *\n * ```tsx\n * toLanguage(\"nb\"); // \"no\"\n * toLanguage(\"sv-SE\"); // \"se\"\n * ```\n */\nexport function toLanguage(locale: string): Language {\n const subtag = locale.toLowerCase().split(\"-\")[0];\n return Object.hasOwn(LANGUAGE_BY_SUBTAG, subtag)\n ? LANGUAGE_BY_SUBTAG[subtag as LanguageSubtag]\n : DEFAULT_LANGUAGE;\n}\n","import type { Locale } from \"next-intl\";\nimport type { ReactElement } from \"react\";\n\nimport type { Language, LanguageOfLocale } from \"../i18n/languages\";\n\n/**\n * What a text can be in one language: a string, or an element for a text\n * with markup in it (a link, a bold word).\n */\nexport type TextValue = string | ReactElement;\n\n/** The locales in `L` that stand for no language of the library. */\ntype UnsupportedLocale<L extends string> = L extends string\n ? [LanguageOfLocale<L>] extends [never]\n ? L\n : never\n : never;\n\n/**\n * The guard on the app's locales. For each locale the library has no\n * language for, a key that every text is then missing, so the error names\n * the locale. `never` when every locale has a language.\n */\nexport type UnsupportedLocaleKey<L extends string> = string extends L\n ? never\n : `No library language for locale \"${UnsupportedLocale<L>}\"`;\n\n/**\n * The languages that texts for the locales `L` must have: the language of\n * each locale, by `LanguageOfLocale`. `\"sv\" | \"fi\" | \"nb\"` gives\n * `\"se\" | \"fi\" | \"no\"`. Without a list of locales (`string`), all four.\n */\nexport type LanguagesOf<L extends string> = string extends L\n ? Language\n : LanguageOfLocale<L> | UnsupportedLocaleKey<L>;\n\n/**\n * The languages every text in the app must have: one for each locale the app\n * declares to next-intl. With\n *\n * ```ts\n * declare module \"next-intl\" {\n * interface AppConfig {\n * Locale: \"sv\" | \"fi\" | \"nb\";\n * }\n * }\n * ```\n *\n * it is `\"se\" | \"fi\" | \"no\"`. An app that declares no `Locale` needs all\n * four.\n */\nexport type AppLanguage = LanguagesOf<Locale>;\n\n/** One text, in every language of `L`. */\nexport type TranslatedText<L extends string = AppLanguage> = {\n readonly [K in L]: TextValue;\n};\n\n/**\n * The texts of a component or a page: texts, functions that take what goes\n * into a text and return it, and groups of either. Check the object with\n * `satisfies Texts`, so a text that lacks one of the app's languages is a\n * type error:\n *\n * ```tsx\n * const texts = {\n * title: { se: \"Ditt lån\", no: \"Ditt lån\", fi: \"Lainasi\" },\n * greeting: (name: string) => ({ se: `Hej ${name}`, no: `Hei ${name}`, fi: `Hei ${name}` }),\n * } satisfies Texts;\n * ```\n *\n * `Texts<\"se\">` is for a feature that only some markets have. Read its texts\n * with `useTexts<\"se\">()`.\n */\nexport type Texts<L extends string = AppLanguage> = {\n readonly [key: string]:\n | TranslatedText<L>\n | ((...args: never[]) => TranslatedText<L>)\n | Texts<L>;\n};\n\n/**\n * `t`: a text in the current language. A string text gives a string, an\n * element an element. Where `L` leaves out some of the app's languages, the\n * text may have none for the current one, so the result can be `undefined`.\n */\nexport type TextFunction<L extends string = AppLanguage> = <\n T extends TranslatedText<L>,\n>(\n text: T,\n) => [AppLanguage] extends [L] ? T[L] : T[L] | undefined;\n\n/** What `useTexts` and `getTexts` give. */\nexport type TextsResult<L extends string = AppLanguage> = {\n /** A text in the current language. */\n t: TextFunction<L>;\n /** The current language, from next-intl's locale. */\n language: AppLanguage;\n};\n\n/** The `t` and `language` for a language. Shared by the hook and the server. */\nexport function createTexts<L extends string>(\n language: Language,\n): TextsResult<L> {\n const t = (text: Partial<Record<Language, TextValue>>) => text[language];\n return {\n t: t as TextFunction<L>,\n language: language as AppLanguage,\n };\n}\n"],"mappings":"AAiBA,IAAM,IAAqB;CACzB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AA6BA,SAAgB,EAAW,GAA0B;CACnD,IAAM,IAAS,EAAO,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;CAC/C,OAAO,OAAO,OAAO,GAAoB,CAAM,IAC3C,EAAmB,KAAA;AAEzB;;;AC0CA,SAAgB,EACd,GACgB;CAEhB,OAAO;EACF,IAFM,MAA+C,EAAK;EAGnD;CACZ;AACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { n as e, t } from "./next-intl-texts-De3tiuSm.mjs";
|
|
3
|
+
import { useLocale as n } from "next-intl";
|
|
4
|
+
import { COUNTRIES as r, CountryProvider as i, LeaProvider as a } from "./component-library.es.js";
|
|
5
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
6
|
+
import { useMemo as s } from "react";
|
|
7
|
+
//#region src/next-intl/lea-intl-provider.tsx
|
|
8
|
+
var c = {
|
|
9
|
+
no: "NO",
|
|
10
|
+
se: "SE",
|
|
11
|
+
fi: "FI",
|
|
12
|
+
es: "ES"
|
|
13
|
+
};
|
|
14
|
+
function l(t) {
|
|
15
|
+
let n = t.split("-")[1]?.toUpperCase();
|
|
16
|
+
return n !== void 0 && Object.hasOwn(r, n) ? n : c[e(t)];
|
|
17
|
+
}
|
|
18
|
+
function u({ country: t, children: r }) {
|
|
19
|
+
let s = n();
|
|
20
|
+
return /* @__PURE__ */ o(a, {
|
|
21
|
+
language: e(s),
|
|
22
|
+
children: /* @__PURE__ */ o(i, {
|
|
23
|
+
country: t ?? l(s),
|
|
24
|
+
children: r
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/next-intl/use-texts.ts
|
|
30
|
+
function d() {
|
|
31
|
+
let r = n();
|
|
32
|
+
return s(() => t(e(r)), [r]);
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { u as LeaIntlProvider, d as useTexts };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=next-intl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl.mjs","names":[],"sources":["../src/next-intl/lea-intl-provider.tsx","../src/next-intl/use-texts.ts"],"sourcesContent":["\"use client\";\n\nimport { type Locale, useLocale } from \"next-intl\";\nimport { type ReactNode } from \"react\";\n\nimport { type Language, toLanguage } from \"../i18n/languages\";\nimport { COUNTRIES, type Country, CountryProvider, LeaProvider } from \"../index\";\nimport type { UnsupportedLocaleKey } from \"./texts\";\n\n/** The country whose language each language is. */\nconst COUNTRY_OF_LANGUAGE = {\n no: \"NO\",\n se: \"SE\",\n fi: \"FI\",\n es: \"ES\",\n} as const satisfies Record<Language, Country>;\n\n/**\n * The country of a locale: its region, when that is one of Lea Bank's\n * countries (`sv-FI` is Finland), or else the country of its language.\n */\nfunction countryOf(locale: string): Country {\n const region = locale.split(\"-\")[1]?.toUpperCase();\n return region !== undefined && Object.hasOwn(COUNTRIES, region)\n ? (region as Country)\n : COUNTRY_OF_LANGUAGE[toLanguage(locale)];\n}\n\nexport type LeaIntlProviderProps = {\n /**\n * The country of the formatting hooks (`useFormatCurrency` and the rest).\n * Give it where the country is not the locale's. By default it is the\n * locale's region when that is a Lea Bank country (`sv-FI`), or else the\n * country of its language.\n */\n country?: Country;\n children: ReactNode;\n} & {\n // The guard on the app's locales: a locale the library has no language for\n // makes this a prop that can't be given, and the error names the locale.\n [K in UnsupportedLocaleKey<Locale>]: never;\n};\n\n/**\n * Sets the library's language and country from next-intl's locale: what\n * `LeaProvider` and `CountryProvider` do, with no map from locale to\n * language in the app. Put it inside `NextIntlClientProvider`, once:\n *\n * ```tsx\n * // app/[locale]/layout.tsx\n * import { NextIntlClientProvider } from \"next-intl\";\n * import { LeaIntlProvider } from \"@leabankab/component-library/next-intl\";\n *\n * <NextIntlClientProvider>\n * <LeaIntlProvider>{children}</LeaIntlProvider>\n * </NextIntlClientProvider>\n * ```\n *\n * The library's components then speak the locale's language, and the\n * formatting hooks format for its country.\n */\nexport function LeaIntlProvider({ country, children }: LeaIntlProviderProps) {\n const locale = useLocale();\n return (\n <LeaProvider language={toLanguage(locale)}>\n <CountryProvider country={country ?? countryOf(locale)}>\n {children}\n </CountryProvider>\n </LeaProvider>\n );\n}\n","\"use client\";\n\nimport { useLocale } from \"next-intl\";\nimport { useMemo } from \"react\";\n\nimport { toLanguage } from \"../i18n/languages\";\nimport { type AppLanguage, createTexts, type TextsResult } from \"./texts\";\n\n/**\n * Texts in the language of next-intl's locale, for a client component. Keep\n * the texts beside the component and check them with `satisfies Texts`:\n *\n * ```tsx\n * \"use client\";\n * import { useTexts, type Texts } from \"@leabankab/component-library/next-intl\";\n *\n * const texts = {\n * title: { se: \"Ditt lån\", no: \"Ditt lån\", fi: \"Lainasi\" },\n * greeting: (name: string) => ({ se: `Hej ${name}`, no: `Hei ${name}`, fi: `Hei ${name}` }),\n * } satisfies Texts;\n *\n * function LoanHeader({ name }: { name: string }) {\n * const { t } = useTexts();\n * return <h1>{t(texts.title)}, {t(texts.greeting(name))}</h1>;\n * }\n * ```\n *\n * It reads the locale from `NextIntlClientProvider`, so it needs no provider\n * of the library's. In a server component, use `getTexts` from\n * `@leabankab/component-library/next-intl/server`.\n *\n * `useTexts<\"se\">()` reads texts that only some markets have (`Texts<\"se\">`).\n * `t` then gives `undefined` in a language the text doesn't have.\n */\nexport function useTexts<\n L extends AppLanguage = AppLanguage,\n>(): TextsResult<L> {\n const locale = useLocale();\n return useMemo(() => createTexts<L>(toLanguage(locale)), [locale]);\n}\n"],"mappings":";;;;;;;AAUA,IAAM,IAAsB;CAC1B,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAMA,SAAS,EAAU,GAAyB;CAC1C,IAAM,IAAS,EAAO,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,YAAY;CACjD,OAAO,MAAW,KAAA,KAAa,OAAO,OAAO,GAAW,CAAM,IACzD,IACD,EAAoB,EAAW,CAAM;AAC3C;AAmCA,SAAgB,EAAgB,EAAE,YAAS,eAAkC;CAC3E,IAAM,IAAS,EAAU;CACzB,OACE,kBAAC,GAAD;EAAa,UAAU,EAAW,CAAM;EACtC,UAAA,kBAAC,GAAD;GAAiB,SAAS,KAAW,EAAU,CAAM;GAClD;EACc,CAAA;CACN,CAAA;AAEjB;;;ACpCA,SAAgB,IAEI;CAClB,IAAM,IAAS,EAAU;CACzB,OAAO,QAAc,EAAe,EAAW,CAAM,CAAC,GAAG,CAAC,CAAM,CAAC;AACnE"}
|
|
@@ -2,21 +2,28 @@ import { useRender } from '@base-ui/react/use-render';
|
|
|
2
2
|
export type ArrowRevealLinkProps = useRender.ComponentProps<"a"> & {
|
|
3
3
|
/**
|
|
4
4
|
* `"md"`: the header's menus, 16px, the arrow growing in on hover. `"lg"`:
|
|
5
|
-
* the `SideNav`, 18px, underlined on hover, the arrow before the
|
|
6
|
-
*
|
|
5
|
+
* the `SideNav`, 18px, underlined on hover, the arrow before the
|
|
6
|
+
* `marked` link only.
|
|
7
7
|
* @default "md"
|
|
8
8
|
*/
|
|
9
9
|
size?: "md" | "lg";
|
|
10
|
+
/**
|
|
11
|
+
* `lg` only: the arrow shows before this link, and grows in when it is
|
|
12
|
+
* set. `SideNav` marks the current page's link, and a link as soon as it
|
|
13
|
+
* is clicked.
|
|
14
|
+
*/
|
|
15
|
+
marked?: boolean;
|
|
10
16
|
};
|
|
11
17
|
/**
|
|
12
18
|
* Internal: Figma's `.ArrowRevealLink`. At `md`, the links of the header's
|
|
13
19
|
* menus: a plain 16px link whose purple arrow grows in on hover while the
|
|
14
20
|
* text turns purple and steps aside, as the website's `DropdownLink`. At
|
|
15
21
|
* `lg`, the links of `SideNav`: 18px, underlined on hover, and the arrow
|
|
16
|
-
* marks the current page, as the website's `SidebarLink`. Not
|
|
22
|
+
* marks the current page (`marked`), as the website's `SidebarLink`. Not
|
|
23
|
+
* exported.
|
|
17
24
|
*
|
|
18
25
|
* Renders an `<a>`, or the element passed to `render`: a router link, or the
|
|
19
26
|
* `NavigationMenu.Link` of the desktop menu, which renders the page's own
|
|
20
27
|
* link in turn.
|
|
21
28
|
*/
|
|
22
|
-
export declare function ArrowRevealLink({ render, className, children, size, ...rest }: ArrowRevealLinkProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
|
|
29
|
+
export declare function ArrowRevealLink({ render, className, children, size, marked, ...rest }: ArrowRevealLinkProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
|
|
@@ -51,7 +51,10 @@ export type SideNavProps = Omit<ComponentProps<"div">, "children"> & {
|
|
|
51
51
|
* panel, and stays in view while the page scrolls (32 from the top); below
|
|
52
52
|
* 1024px it is a block over the panel, 32 apart. The sidebar is a `nav`
|
|
53
53
|
* named by `label`; the link to this page is marked `aria-current="page"`
|
|
54
|
-
* and has a purple arrow before it, the others underline on hover.
|
|
55
|
-
*
|
|
54
|
+
* and has a purple arrow before it, the others underline on hover. A click
|
|
55
|
+
* on another link moves the arrow there at once (it grows in over 0.2s),
|
|
56
|
+
* before the next page arrives; `aria-current` stays on this page until
|
|
57
|
+
* `items` says otherwise. The panel is a `Panel size="sm"`: what is in it
|
|
58
|
+
* stacks 16 apart.
|
|
56
59
|
*/
|
|
57
60
|
export declare function SideNav({ items, label, breadcrumbs, children, className, ...rest }: SideNavProps): import("react").JSX.Element;
|
package/dist/website.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});require('./website.css');let e=require("@base-ui/react/use-render"),t=require("lucide-react"),n=require("react/jsx-runtime"),r=require("react"),i=require("./component-library.umd.js"),a=require("@base-ui/react/navigation-menu"),o=require("@base-ui/react/collapsible"),s=require("@base-ui/react/drawer");function c({className:e,id:t,children:r}){return typeof r==`string`||typeof r==`number`?(0,n.jsx)(`p`,{className:e,id:t,children:r}):(0,n.jsx)(`div`,{className:e,id:t,children:r})}var l={AlertBanner:`_AlertBanner_11ase_11`,Icon:`_Icon_11ase_67`,Content:`_Content_11ase_81`,Title:`_Title_11ase_90`,Text:`_Text_11ase_97`};function u({render:t,children:n}){return(0,e.useRender)({render:t,defaultTagName:`h2`,props:{className:l.Title,children:n}})}function d({title:e,text:r,titleRender:i,icon:a,color:o=`error`,className:s,...d}){let f=a===void 0?(0,n.jsx)(t.TriangleAlert,{}):a;return(0,n.jsxs)(`div`,{...d,className:[l.AlertBanner,s].filter(Boolean).join(` `),"data-color":o,children:[f!=null&&f!==!1&&(0,n.jsx)(`span`,{"aria-hidden":!0,className:l.Icon,children:f}),(0,n.jsxs)(`div`,{className:l.Content,children:[e!=null&&(0,n.jsx)(u,{render:i,children:e}),r!=null&&(0,n.jsx)(c,{className:l.Text,children:r})]})]})}var f=(e,t)=>n=>[e,typeof t==`function`?t(n):t].filter(Boolean).join(` `),p={BrandLetters:`_BrandLetters_1ygg1_9`,Letters:`_Letters_1ygg1_17`,Letter:`_Letter_1ygg1_17`,Video:`_Video_1ygg1_48`},m=(0,i.createTranslation)({play:{no:`Spill av videoene`,se:`Spela upp videorna`,fi:`Toista videot`,es:`Reproducir los vídeos`},pause:{no:`Sett videoene på pause`,se:`Pausa videorna`,fi:`Keskeytä videot`,es:`Pausar los vídeos`}}),h=`(prefers-reduced-motion: reduce)`,g=[`L`,`E`,`A`];function _({videos:a,render:o,ref:s,className:c,...l}){let u=m(),d=(0,r.useRef)([]),[_,v]=(0,r.useState)(!1),y=e=>{for(let t of d.current)t&&e(t)},b=e=>{e.muted=!0,e.play().catch(()=>{})};(0,r.useEffect)(()=>{let e=window.matchMedia(h);e.matches||y(b);let t=e=>{e.matches&&y(e=>e.pause())};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let x=()=>v(d.current.some(e=>e!=null&&!e.paused)),S=()=>{y(_?e=>e.pause():b)};return(0,e.useRender)({render:o,ref:s,defaultTagName:`div`,props:{...l,className:f(p.BrandLetters,c)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:p.Letters,children:g.map((e,t)=>(0,n.jsx)(`div`,{className:p.Letter,"data-letter":e,children:(0,n.jsx)(`video`,{ref:e=>{d.current[t]=e},className:p.Video,src:a[t].src,poster:a[t].poster,muted:!0,loop:!0,playsInline:!0,"aria-hidden":!0,onPlay:x,onPause:x})},e))}),(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":_?u.pause:u.play,onClick:S,children:_?(0,n.jsx)(t.Pause,{"aria-hidden":!0}):(0,n.jsx)(t.Play,{"aria-hidden":!0})})]})}})}var v={Calculator:`_Calculator_1mamd_12`,Body:`_Body_1mamd_26`,Panel:`_Panel_1mamd_41`,Summary:`_Summary_1mamd_55`,Results:`_Results_1mamd_64`,Result:`_Result_1mamd_64`,Label:`_Label_1mamd_77`,Value:`_Value_1mamd_78`,Actions:`_Actions_1mamd_95`,Price:`_Price_1mamd_103`};function y({header:t,results:r,action:i,priceExample:a,render:o,ref:s,className:c,children:l,...u}){return(0,e.useRender)({render:o,ref:s,defaultTagName:`div`,props:{...u,className:f(v.Calculator,c)({}),children:(0,n.jsxs)(n.Fragment,{children:[t,(0,n.jsxs)(`div`,{className:v.Body,children:[(0,n.jsx)(`div`,{className:v.Panel,children:l}),(0,n.jsxs)(`div`,{className:v.Summary,children:[r.length>0&&(0,n.jsx)(`dl`,{className:v.Results,"aria-live":`polite`,children:r.map((e,t)=>(0,n.jsxs)(`div`,{className:v.Result,children:[(0,n.jsx)(`dt`,{className:v.Label,children:e.label}),(0,n.jsx)(`dd`,{className:v.Value,children:e.value})]},t))}),(i!=null||a!=null)&&(0,n.jsxs)(`div`,{className:v.Actions,children:[i,a!=null&&(0,n.jsx)(`p`,{className:v.Price,children:a})]})]})]})]})}})}var b={Carousel:`_Carousel_17a24_14`,Viewport:`_Viewport_17a24_31`,Track:`_Track_17a24_66`,Slide:`_Slide_17a24_94`,Controls:`_Controls_17a24_100`,VisuallyHidden:`_VisuallyHidden_17a24_109`},x={fast:`0.15s`,normal:`0.2s`,emphasis:`0.3s`},S=`(prefers-reduced-motion: reduce)`,C=150,w=parseFloat(x.emphasis)*1e3;function ee(e){let t=(e,t,n)=>3*t*e*(1-e)**2+3*n*e**2*(1-e)+e**3,n=0,r=1;for(let i=0;i<20;i+=1){let i=(n+r)/2;t(i,.42,.58)<e?n=i:r=i}return t((n+r)/2,0,1)}function te(e,t){let n=(0,r.useRef)([0]),i=(0,r.useRef)(void 0),a=(0,r.useRef)(void 0),[o,s]=(0,r.useState)(()=>({pageCount:Math.max(1,t-1),page:0,settledPage:0,atStart:!0,atEnd:t<=2,overflowing:t>2,moved:!1})),c=(0,r.useCallback)((t,r=!1)=>{let i=e.current;if(!i)return;let a=i.scrollLeft,o=Math.max(0,i.scrollWidth-i.clientWidth),c=n.current,l=0;for(let e=1;e<c.length;e+=1)Math.abs(c[e]-a)<Math.abs(c[l]-a)&&(l=e);s(e=>{let n={pageCount:c.length,page:l,settledPage:t?l:e.settledPage,atStart:a<=1,atEnd:a>=o-1,overflowing:o>1,moved:e.moved||r};return Object.keys(n).every(t=>n[t]===e[t])?e:n})},[e]),l=(0,r.useCallback)(()=>{let t=e.current;if(!t)return;let r=Math.max(0,t.scrollWidth-t.clientWidth),i=Array.from(t.children),a=i[0]?.offsetLeft??0,o=[];for(let e of i){let t=Math.min(Math.max(0,e.offsetLeft-a),r);(o.length===0||t-o[o.length-1]>1)&&o.push(t)}n.current=o.length>0?o:[0],c(!0)},[c,e]),u=(0,r.useCallback)(()=>{a.current&&(cancelAnimationFrame(a.current.frame),a.current=void 0,e.current?.style.removeProperty(`scroll-snap-type`))},[e]);(0,r.useEffect)(()=>{let t=e.current;if(!t)return;l();let n=()=>{c(!1,!0),clearTimeout(i.current),i.current=setTimeout(()=>c(!0),C)},r=new ResizeObserver(l),a=[`pointerdown`,`touchstart`,`wheel`,`keydown`];t.addEventListener(`scroll`,n,{passive:!0});for(let e of a)t.addEventListener(e,u,{passive:!0});return r.observe(t),()=>{t.removeEventListener(`scroll`,n);for(let e of a)t.removeEventListener(e,u);r.disconnect(),clearTimeout(i.current),u()}},[l,c,t,u,e]);let d=(0,r.useCallback)(t=>{let r=e.current;if(!r)return;let i=n.current,o=i[Math.min(i.length-1,Math.max(0,t))];if(a.current?.to===o)return;u();let s=r.scrollLeft;if(window.matchMedia(S).matches||Math.abs(o-s)<1){r.scrollTo({left:o,behavior:`instant`});return}r.style.setProperty(`scroll-snap-type`,`none`);let c=performance.now(),l=e=>{let t=Math.min(1,(e-c)/w);r.scrollTo({left:s+(o-s)*ee(t),behavior:`instant`}),t<1?a.current={frame:requestAnimationFrame(l),to:o}:(a.current=void 0,r.style.removeProperty(`scroll-snap-type`))};a.current={frame:requestAnimationFrame(l),to:o}},[u,e]);return{...o,goTo:d}}var ne=(0,i.createTranslation)({carousel:{no:`karusell`,se:`karusell`,fi:`karuselli`,es:`carrusel`},previous:{no:`Forrige`,se:`Föregående`,fi:`Edellinen`,es:`Anterior`},next:{no:`Neste`,se:`Nästa`,fi:`Seuraava`,es:`Siguiente`},status:{no:`Side {page} av {count}`,se:`Sida {page} av {count}`,fi:`Sivu {page}/{count}`,es:`Página {page} de {count}`}});function T({getItemLabel:a,render:o,ref:s,className:c,children:l,...u}){let d=ne(),p=(0,r.useRef)(null),m=r.Children.toArray(l),{pageCount:h,page:g,settledPage:_,atStart:v,atEnd:y,overflowing:x,moved:S,goTo:C}=te(p,m.length);return(0,e.useRender)({render:o,ref:s,defaultTagName:`div`,props:{role:`region`,"aria-roledescription":d.carousel,...u,className:f(b.Carousel,c)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:b.Viewport,"data-at-start":v||void 0,"data-at-end":y||void 0,children:(0,n.jsx)(`ul`,{ref:p,className:b.Track,tabIndex:x?0:void 0,children:m.map((e,t)=>(0,n.jsx)(`li`,{className:b.Slide,children:e},t))})}),h>1&&(0,n.jsxs)(`div`,{className:b.Controls,children:[(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":d.previous,disabled:g===0,focusableWhenDisabled:!0,onClick:()=>C(g-1),children:(0,n.jsx)(t.ChevronLeft,{"aria-hidden":!0})}),(0,n.jsx)(i.PaginationDots,{count:h,value:g+1,onValueChange:e=>C(e-1),getItemLabel:a}),(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":d.next,disabled:g===h-1,focusableWhenDisabled:!0,onClick:()=>C(g+1),children:(0,n.jsx)(t.ChevronRight,{"aria-hidden":!0})}),(0,n.jsx)(`span`,{role:`status`,className:b.VisuallyHidden,children:S&&d.status.replace(`{page}`,String(_+1)).replace(`{count}`,String(h))})]})]})}})}var E={CtaBanner:`_CtaBanner_vkp5c_7`,Title:`_Title_vkp5c_15`,Content:`_Content_vkp5c_24`,Text:`_Text_vkp5c_32`,Action:`_Action_vkp5c_48`,Price:`_Price_vkp5c_53`};function re({title:t,titleRender:r,text:i,action:a,priceExample:o,render:s,ref:l,className:u,...d}){let p=(0,e.useRender)({render:r,defaultTagName:`h2`,props:{className:E.Title,children:t}}),m=i!=null||a!=null||o!=null;return(0,e.useRender)({render:s,ref:l,defaultTagName:`div`,props:{...d,"data-has-content":m||void 0,className:f(E.CtaBanner,u)({}),children:(0,n.jsxs)(n.Fragment,{children:[p,m&&(0,n.jsxs)(`div`,{className:E.Content,children:[i!=null&&(0,n.jsx)(c,{className:E.Text,children:i}),a!=null&&(0,n.jsx)(`div`,{className:E.Action,children:a}),o!=null&&(0,n.jsx)(`p`,{className:E.Price,children:o})]})]})}})}var ie=(0,r.createContext)({open:!0}),D={ExpandingCards:`_ExpandingCards_14pq8_19`,List:`_List_14pq8_23`,Item:`_Item_14pq8_32`},ae=`(min-width: 1312px)`,oe={open:!0},se={open:!1},ce=e=>{let t=window.matchMedia(ae);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)},le=()=>(0,r.useSyncExternalStore)(ce,()=>window.matchMedia(ae).matches,()=>!0);function ue({defaultOpen:t=`first`,render:i,ref:a,className:o,children:s,...c}){let l=r.Children.toArray(s),u=le(),[d,p]=(0,r.useState)(()=>t===`last`?Math.max(0,l.length-1):0);return(0,e.useRender)({render:i,ref:a,defaultTagName:`div`,props:{...c,className:f(D.ExpandingCards,o)({}),children:(0,n.jsx)(`ul`,{className:D.List,style:{"--expanding-cards-count":l.length},children:l.map((e,t)=>(0,n.jsx)(`li`,{className:D.Item,"data-open":t===d||void 0,onPointerEnter:()=>p(t),onFocus:()=>p(t),children:(0,n.jsx)(ie.Provider,{value:!u||t===d?oe:se,children:e})},t))})}})}var O={ExpandingCardsItem:`_ExpandingCardsItem_1v7ai_17`,Content:`_Content_1v7ai_53`,Title:`_Title_1v7ai_70`,Text:`_Text_1v7ai_81`,Action:`_Action_1v7ai_99`,Photo:`_Photo_1v7ai_110`,Image:`_Image_1v7ai_117`};function de({title:t,titleRender:a,text:o,action:s,src:l,alt:u,imageRender:d,surface:p=`base`,render:m,ref:h,className:g,..._}){let{open:v}=(0,r.useContext)(ie),y=(0,e.useRender)({render:a,defaultTagName:`h2`,props:{className:O.Title,children:t}}),b=(0,e.useRender)({enabled:l!=null,render:d,defaultTagName:`img`,props:{src:l,alt:u,className:O.Image}}),x=(0,r.isValidElement)(s)&&s.type===i.ActionButton?(0,r.cloneElement)(s,{iconOnly:!v}):s;return(0,e.useRender)({render:m,ref:h,defaultTagName:`div`,props:{..._,"data-surface":p,"data-open":v||void 0,"data-image":l!=null||void 0,className:f(O.ExpandingCardsItem,g)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:O.Content,children:[y,o!=null&&(0,n.jsx)(c,{className:O.Text,children:o}),s!=null&&(0,n.jsx)(`div`,{className:O.Action,children:x})]}),b!=null&&(0,n.jsx)(`div`,{className:O.Photo,children:b})]})}})}var k={Hero:`_Hero_1ik22_8`,Background:`_Background_1ik22_24`,Image:`_Image_1ik22_30`,Container:`_Container_1ik22_37`,Box:`_Box_1ik22_45`,Title:`_Title_1ik22_50`,Text:`_Text_1ik22_59`,Action:`_Action_1ik22_75`,Price:`_Price_1ik22_80`};function fe({src:t,alt:r,imageRender:a,title:o,titleRender:s,text:l,action:u,priceExample:d,render:p,ref:m,className:h,...g}){let _=(0,e.useRender)({render:s,defaultTagName:`h1`,props:{className:k.Title,children:o}}),v=(0,e.useRender)({render:a,defaultTagName:`img`,props:{src:t,alt:r,className:k.Image}});return(0,e.useRender)({render:p,ref:m,defaultTagName:`section`,props:{...g,className:f(k.Hero,h)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:k.Container,children:(0,n.jsxs)(i.Panel,{className:k.Box,children:[_,l!=null&&(0,n.jsx)(c,{className:k.Text,children:l}),u!=null&&(0,n.jsx)(`div`,{className:k.Action,children:u}),d!=null&&(0,n.jsx)(`p`,{className:k.Price,children:d})]})}),(0,n.jsx)(`div`,{className:k.Background,children:v})]})}})}var A={HeroServiceGrid:`_HeroServiceGrid_yr3eo_8`,Cards:`_Cards_yr3eo_15`,Item:`_Item_yr3eo_26`,Featured:`_Featured_yr3eo_51`};function pe({src:t,alt:a,imageRender:o,action:s,imagePosition:c=`start`,render:l,ref:u,className:d,children:p,...m}){let h=r.Children.toArray(p);return(0,e.useRender)({render:l,ref:u,defaultTagName:`div`,props:{...m,"data-image-position":c,className:f(A.HeroServiceGrid,d)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.FeaturedImage,{className:A.Featured,src:t,alt:a,imageRender:o,action:s}),h.length>0&&(0,n.jsx)(`ul`,{className:A.Cards,children:h.map((e,t)=>(0,n.jsx)(`li`,{className:A.Item,children:e},t))})]})}})}var j={NavigationGrid:`_NavigationGrid_ocatr_9`,Title:`_Title_ocatr_16`,List:`_List_ocatr_25`,Item:`_Item_ocatr_35`};function me({title:t,titleRender:i,render:a,ref:o,className:s,children:c,...l}){let u=r.Children.toArray(c),d=u.length>=3&&u.length%2==1,p=(0,e.useRender)({enabled:t!=null,render:i,defaultTagName:`h2`,props:{className:j.Title,children:t}});return(0,e.useRender)({render:a,ref:o,defaultTagName:`div`,props:{...l,className:f(j.NavigationGrid,s)({}),children:(0,n.jsxs)(n.Fragment,{children:[p,(0,n.jsx)(`ul`,{className:j.List,"data-odd":d||void 0,children:u.map((e,t)=>(0,n.jsx)(`li`,{className:j.Item,children:e},t))})]})}})}var M={PartnerList:`_PartnerList_9o9wx_7`,List:`_List_9o9wx_11`,Controls:`_Controls_9o9wx_19`,VisuallyHidden:`_VisuallyHidden_9o9wx_29`},he=(0,i.createTranslation)({previous:{no:`Forrige side`,se:`Föregående sida`,fi:`Edellinen sivu`,es:`Página anterior`},next:{no:`Neste side`,se:`Nästa sida`,fi:`Seuraava sivu`,es:`Página siguiente`},status:{no:`Side {page} av {count}`,se:`Sida {page} av {count}`,fi:`Sivu {page}/{count}`,es:`Página {page} de {count}`},collation:{no:`nb`,se:`sv`,fi:`fi`,es:`es`}});function ge({items:a,pageSize:o=9,value:s,defaultValue:c=1,onValueChange:l,render:u,ref:d,className:p,...m}){let h=he(),[g,_]=(0,r.useState)(c),v=(0,r.useMemo)(()=>{let e=new Intl.Collator(h.collation,{sensitivity:`base`});return[...a].sort((t,n)=>e.compare(t.name,n.name))},[a,h.collation]),y=Math.max(1,Math.floor(o)),b=Math.max(1,Math.ceil(v.length/y)),x=Math.min(b,Math.max(1,s??g)),S=(x-1)*y,C=e=>{let t=Math.min(b,Math.max(1,e));s===void 0&&_(t),t!==x&&l?.(t)};return(0,e.useRender)({enabled:v.length>0,render:u,ref:d,defaultTagName:`div`,props:{...m,className:f(M.PartnerList,p)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`ul`,{className:M.List,children:v.slice(S,S+y).map(({name:e,content:t,...r},a)=>(0,n.jsx)(i.PartnerRow,{...r,render:(0,n.jsx)(`li`,{}),children:t},`${S+a}-${e}`))}),b>1&&(0,n.jsxs)(`div`,{className:M.Controls,children:[(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":h.previous,disabled:x===1,focusableWhenDisabled:!0,onClick:()=>C(x-1),children:(0,n.jsx)(t.ChevronLeft,{"aria-hidden":!0})}),(0,n.jsx)(i.PaginationDots,{count:b,value:x,onValueChange:C}),(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":h.next,disabled:x===b,focusableWhenDisabled:!0,onClick:()=>C(x+1),children:(0,n.jsx)(t.ChevronRight,{"aria-hidden":!0})}),(0,n.jsx)(`span`,{role:`status`,className:M.VisuallyHidden,children:h.status.replace(`{page}`,String(x)).replace(`{count}`,String(b))})]})]})}})}var N={Grid:`_Grid_1vukg_10`,Content:`_Content_1vukg_17`,Logos:`_Logos_1vukg_28`,LogoItem:`_LogoItem_1vukg_38`,Logo:`_Logo_1vukg_28`,Text:`_Text_1vukg_60`,Title:`_Title_1vukg_66`,Description:`_Description_1vukg_75`,Actions:`_Actions_1vukg_91`,Price:`_Price_1vukg_98`,Media:`_Media_1vukg_106`,PaymentFeature:`_PaymentFeature_1vukg_111`,Image:`_Image_1vukg_115`};function _e({logos:t,title:r,titleRender:a,text:o,actions:s,priceExample:l,src:u,alt:d,imageRender:f,imagePosition:p=`end`,className:m,...h}){let g=(0,e.useRender)({render:a,defaultTagName:`h2`,props:{className:N.Title,children:r}}),_=(0,e.useRender)({enabled:u!=null,render:f,defaultTagName:`img`,props:{src:u,alt:d,className:N.Image}});return(0,n.jsx)(i.Panel,{...h,className:[N.PaymentFeature,m].filter(Boolean).join(` `),"data-image-position":p,"data-has-image":_!=null||void 0,children:(0,n.jsxs)(`div`,{className:N.Grid,children:[(0,n.jsxs)(`div`,{className:N.Content,children:[t!=null&&t.length>0&&(0,n.jsx)(`ul`,{className:N.Logos,children:t.map((e,t)=>(0,n.jsx)(ve,{...e},t))}),(0,n.jsxs)(`div`,{className:N.Text,children:[g,o!=null&&(0,n.jsx)(c,{className:N.Description,children:o})]}),s!=null&&(0,n.jsx)(`div`,{className:N.Actions,children:s}),l!=null&&(0,n.jsx)(`p`,{className:N.Price,children:l})]}),_!=null&&(0,n.jsx)(`div`,{className:N.Media,children:_})]})})}function ve({src:t,alt:r,imageRender:i}){let a=(0,e.useRender)({render:i,defaultTagName:`img`,props:{src:t,alt:r,className:N.Logo}});return(0,n.jsx)(`li`,{className:N.LogoItem,children:a})}var P={PromoGrid:`_PromoGrid_1l2yi_10`,Featured:`_Featured_1l2yi_19`,Content:`_Content_1l2yi_23`,Photos:`_Photos_1l2yi_31`,Photo:`_Photo_1l2yi_31`,Block:`_Block_1l2yi_51`,Title:`_Title_1l2yi_63`,Subtitle:`_Subtitle_1l2yi_73`};function ye({src:t,alt:r,imageRender:a,action:o,images:s,title:l,titleRender:u,subtitle:d,imagePosition:p=`start`,render:m,ref:h,className:g,..._}){let v=(0,e.useRender)({render:u,defaultTagName:`h2`,props:{className:P.Title,children:l}});return(0,e.useRender)({render:m,ref:h,defaultTagName:`div`,props:{..._,"data-image-position":p,className:f(P.PromoGrid,g)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.FeaturedImage,{className:P.Featured,src:t,alt:r,imageRender:a,action:o}),(0,n.jsxs)(`div`,{className:P.Content,children:[s!=null&&s.length>0&&(0,n.jsx)(`div`,{className:P.Photos,"data-count":s.length,children:s.map((e,t)=>(0,n.jsx)(be,{...e},t))}),(0,n.jsxs)(`div`,{className:P.Block,children:[v,d!=null&&(0,n.jsx)(c,{className:P.Subtitle,children:d})]})]})]})}})}function be({src:t,alt:n,imageRender:r}){return(0,e.useRender)({render:r,defaultTagName:`img`,props:{src:t,alt:n,className:P.Photo}})}var xe={Section:`_Section_f8rp9_11`,Content:`_Content_f8rp9_60`};function Se({surface:t=`base`,spacingTop:r=`lg`,spacingBottom:i=`lg`,width:a=`full`,render:o,ref:s,className:c,children:l,...u}){return(0,e.useRender)({render:o,ref:s,defaultTagName:`section`,props:{...u,"data-surface":t,"data-spacing-top":r,"data-spacing-bottom":i,className:f(xe.Section,c)({}),children:(0,n.jsx)(`div`,{className:xe.Content,"data-width":a,children:l})}})}var F={SectionHeader:`_SectionHeader_11mff_8`,Text:`_Text_11mff_17`,Eyebrow:`_Eyebrow_11mff_25`,Title:`_Title_11mff_33`,Subtitle:`_Subtitle_11mff_49`,Actions:`_Actions_11mff_67`,Price:`_Price_11mff_75`};function Ce({eyebrow:t,title:r,titleRender:i,titleSize:a=`lg`,subtitle:o,actions:s,priceExample:l,render:u,ref:d,className:p,...m}){let h=(0,e.useRender)({render:i,defaultTagName:`h2`,props:{className:F.Title,children:r}});return(0,e.useRender)({render:u,ref:d,defaultTagName:`div`,props:{...m,"data-title-size":a,className:f(F.SectionHeader,p)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:F.Text,children:[t!=null&&(0,n.jsx)(`p`,{className:F.Eyebrow,children:t}),h,o!=null&&(0,n.jsx)(c,{className:F.Subtitle,children:o})]}),s!=null&&(0,n.jsx)(`div`,{className:F.Actions,children:s}),l!=null&&(0,n.jsx)(`p`,{className:F.Price,children:l})]})}})}var I={ServiceCardGrid:`_ServiceCardGrid_nutvc_9`,List:`_List_nutvc_13`,Item:`_Item_nutvc_23`};function we({render:t,ref:i,className:a,children:o,...s}){let c=r.Children.toArray(o);return(0,e.useRender)({render:t,ref:i,defaultTagName:`div`,props:{...s,className:f(I.ServiceCardGrid,a)({}),children:(0,n.jsx)(`ul`,{className:I.List,"data-count":c.length,children:c.map((e,t)=>(0,n.jsx)(`li`,{className:I.Item,children:e},t))})}})}var L={ArrowRevealLink:`_ArrowRevealLink_140ct_2`,Arrow:`_Arrow_140ct_2`,Text:`_Text_140ct_40`};function R({render:r,className:i,children:a,size:o=`md`,...s}){return(0,e.useRender)({render:r,defaultTagName:`a`,props:{...s,"data-size":o===`md`?void 0:o,className:f(L.ArrowRevealLink,i)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:L.Arrow,children:(0,n.jsx)(t.ArrowRight,{})}),(0,n.jsx)(`span`,{className:L.Text,children:a})]})}})}var z={SideNav:`_SideNav_1ha5v_6`,Sidebar:`_Sidebar_1ha5v_29`,List:`_List_1ha5v_44`,Content:`_Content_1ha5v_61`},Te=(0,i.createTranslation)({navigation:{no:`Sidemeny`,se:`Sidomeny`,fi:`Sivuvalikko`,es:`Menú lateral`}});function Ee({items:e,label:t,breadcrumbs:r,children:a,className:o,...s}){let c=Te();return(0,n.jsxs)(`div`,{...s,className:[z.SideNav,o].filter(Boolean).join(` `),children:[(0,n.jsx)(`nav`,{className:z.Sidebar,"aria-label":t??c.navigation,children:(0,n.jsx)(`ul`,{className:z.List,children:e.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{size:`lg`,href:e.href,render:e.render,"aria-current":e.current?`page`:void 0,children:e.label})},t))})}),(0,n.jsxs)(i.Panel,{size:`sm`,className:z.Content,children:[r,a]})]})}var B=`M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20Z`,V=`M19.9154 8.69625H7.82613H7.82609V0.238281C6.90195 0.443203 6.02582 0.775352 5.21738 1.21648V8.69617V8.69621H0.0846484C0.0289844 9.1232 0 9.55852 0 10.0006C0 10.4427 0.0289844 10.878 0.0846484 11.3049H5.21734H5.21738V18.7846C6.02582 19.2257 6.90195 19.558 7.82609 19.7629V11.305V11.305H19.9154C19.9709 10.878 20 10.4427 20 10.0006C20 9.55852 19.9709 9.1232 19.9154 8.69625V8.69625Z`;function H({children:e,...t}){return(0,n.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,"aria-hidden":!0,focusable:`false`,...t,children:e})}function De(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:B,fill:`#F0F0F0`}),(0,n.jsx)(`path`,{d:`M0.34375 12.6094C0.922344 14.7562 2.19754 16.6169 3.9123 17.9345V12.6094H0.34375Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M9.12891 19.9626C9.41555 19.9873 9.70543 20.0007 9.99848 20.0007C14.6188 20.0007 18.5065 16.867 19.654 12.6094H9.12891V19.9626Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M19.654 7.39129C18.5065 3.13363 14.6188 0 9.99848 0C9.70543 0 9.41555 0.0133594 9.12891 0.0380469V7.39129H19.654Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M3.9123 2.06641C2.19754 3.38398 0.922344 5.24465 0.34375 7.39148H3.9123V2.06641Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:V,fill:`#0052B4`})]})}function Oe(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:B,fill:`#FFDA44`}),(0,n.jsx)(`path`,{d:`M7.82816 8.69566H19.9174C19.2782 3.78914 15.0828 0 10.002 0C9.25539 0 8.52809 0.0825391 7.82812 0.237695V8.69566H7.82816Z`,fill:`#0052B4`}),(0,n.jsx)(`path`,{d:`M5.21867 8.69848V1.21875C2.47281 2.71695 0.507148 5.46504 0.0859375 8.69852H5.21867V8.69848Z`,fill:`#0052B4`}),(0,n.jsx)(`path`,{d:`M5.21863 11.3047H0.0859375C0.507148 14.5382 2.47281 17.2863 5.21867 18.7844L5.21863 11.3047Z`,fill:`#0052B4`}),(0,n.jsx)(`path`,{d:`M7.82812 11.3047V19.7627C8.52809 19.9178 9.25539 20.0004 10.002 20.0004C15.0828 20.0004 19.2782 16.2112 19.9174 11.3047H7.82812V11.3047Z`,fill:`#0052B4`})]})}function ke(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:B,fill:`#F0F0F0`}),(0,n.jsx)(`path`,{d:V,fill:`#0052B4`})]})}function Ae(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:`M0 10.0002C0 11.2234 0.220039 12.3951 0.621992 13.4784L10 14.348L19.378 13.4784C19.78 12.3951 20 11.2234 20 10.0002C20 8.77695 19.78 7.60523 19.378 6.52191L10 5.65234L0.621992 6.52191C0.220039 7.60523 0 8.77695 0 10.0002H0Z`,fill:`#FFDA44`}),(0,n.jsx)(`path`,{d:`M19.3771 6.52176C17.9642 2.71379 14.2987 0 9.9991 0C5.69945 0 2.03402 2.71379 0.621094 6.52176H19.3771Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M0.621094 13.4766C2.03402 17.2845 5.69945 19.9983 9.9991 19.9983C14.2987 19.9983 17.9642 17.2845 19.3771 13.4766H0.621094Z`,fill:`#D80027`})]})}function U({href:t,render:n,...r}){return(0,e.useRender)({render:n,defaultTagName:`a`,props:t==null?r:{...r,href:t}})}var W=e=>e.groups!=null&&e.groups.length>0,G=e=>e.href!=null||e.render!=null,K={SiteFooter:`_SiteFooter_o2ixe_7`,Content:`_Content_o2ixe_23`,Main:`_Main_o2ixe_32`,Home:`_Home_o2ixe_46`,Columns:`_Columns_o2ixe_64`,Column:`_Column_o2ixe_64`,Title:`_Title_o2ixe_94`,Links:`_Links_o2ixe_108`,Social:`_Social_o2ixe_109`,Link:`_Link_o2ixe_108`,SocialIcon:`_SocialIcon_o2ixe_147`,Market:`_Market_o2ixe_161`,Divider:`_Divider_o2ixe_165`,CookieSettings:`_CookieSettings_o2ixe_176`,Copyright:`_Copyright_o2ixe_192`},je=(0,i.createTranslation)({market:{no:`Marked`,se:`Marknad`,fi:`Markkina`,es:`Mercado`},social:{no:`Sosiale medier`,se:`Sociala medier`,fi:`Sosiaalinen media`,es:`Redes sociales`},cookieSettings:{no:`Cookie-innstillinger`,se:`Cookieinställningar`,fi:`Evästeasetukset`,es:`Configuración de cookies`},collation:{no:`nb`,se:`sv`,fi:`fi`,es:`es`}}),q=(0,i.createTranslation)({navigation:{no:`Hovedmeny`,se:`Huvudmeny`,fi:`Päävalikko`,es:`Menú principal`},menu:{no:`Meny`,se:`Meny`,fi:`Valikko`,es:`Menú`},closeMenu:{no:`Lukk meny`,se:`Stäng menyn`,fi:`Sulje valikko`,es:`Cerrar menú`},home:{no:`Lea Bank, forside`,se:`Lea Bank, startsida`,fi:`Lea Bank, etusivu`,es:`Lea Bank, página de inicio`}}),J={no:{name:`Norge`,flag:(0,n.jsx)(De,{})},se:{name:`Sverige`,flag:(0,n.jsx)(Oe,{})},fi:{name:`Suomi`,flag:(0,n.jsx)(ke,{})},es:{name:`España`,flag:(0,n.jsx)(Ae,{})}},Me=[`no`,`se`,`fi`,`es`];function Y({render:t,id:n,children:r}){return(0,e.useRender)({render:t,defaultTagName:`h2`,props:{id:n,className:K.Title,children:r}})}function Ne({market:e,render:t}){let a=je(),o=(0,r.useId)(),s=e.options??Me,c=(0,r.useMemo)(()=>{let e=new Intl.Collator(a.collation,{sensitivity:`base`});return[...s].sort((t,n)=>e.compare(J[t].name,J[n].name)).map(e=>({value:e,label:J[e].name,icon:J[e].flag}))},[s,a.collation]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Y,{render:t,id:o,children:e.title??a.market}),(0,n.jsx)(i.Select,{size:`sm`,"aria-labelledby":o,options:c,value:e.value,onValueChange:e.onValueChange,className:K.Market})]})}function Pe({logo:e,homeRender:t,columns:r=[],market:i,social:a,onOpenCookieSettings:o,copyright:s,titleRender:l,className:u,...d}){let f=je(),p=q(),m=o!=null||s!=null;return(0,n.jsx)(`footer`,{...d,className:[K.SiteFooter,u].filter(Boolean).join(` `),children:(0,n.jsxs)(`div`,{className:K.Content,children:[(0,n.jsxs)(`div`,{className:K.Main,children:[(0,n.jsx)(U,{href:t==null?`/`:void 0,render:t,className:K.Home,"aria-label":p.home,children:e}),(0,n.jsxs)(`div`,{className:K.Columns,children:[r.map((e,t)=>(0,n.jsxs)(`div`,{className:K.Column,children:[(0,n.jsx)(Y,{render:l,children:e.title}),e.links.length>0&&(0,n.jsx)(`ul`,{className:K.Links,children:e.links.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(U,{href:e.href,render:e.render,className:K.Link,children:e.label})},t))})]},t)),(i!=null||a!=null)&&(0,n.jsxs)(`div`,{className:K.Column,children:[i!=null&&(0,n.jsx)(Ne,{market:i,render:l}),a!=null&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Y,{render:l,children:a.title??f.social}),(0,n.jsx)(`ul`,{className:K.Social,children:a.links.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsxs)(U,{href:e.href,render:e.render,className:K.Link,children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:K.SocialIcon,children:e.icon}),e.label]})},t))})]})]})]})]}),m&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:K.Divider}),o!=null&&(0,n.jsx)(`button`,{type:`button`,className:K.CookieSettings,onClick:o,children:f.cookieSettings}),s!=null&&(0,n.jsx)(c,{className:K.Copyright,children:s})]})]})})}var X={SiteHeader:`_SiteHeader_dcn2t_9`,Bar:`_Bar_dcn2t_19`,BarContent:`_BarContent_dcn2t_24`,Home:`_Home_dcn2t_40`,Actions:`_Actions_dcn2t_57`,Account:`_Account_dcn2t_64`,MenuButton:`_MenuButton_dcn2t_80`,Action:`_Action_dcn2t_57`,Nav:`_Nav_dcn2t_121`,Pill:`_Pill_dcn2t_128`,Cta:`_Cta_dcn2t_129`,List:`_List_dcn2t_136`,Item:`_Item_dcn2t_148`,Chevron:`_Chevron_dcn2t_189`,Positioner:`_Positioner_dcn2t_263`,Popup:`_Popup_dcn2t_291`,Viewport:`_Viewport_dcn2t_311`,Content:`_Content_dcn2t_319`,Group:`_Group_dcn2t_339`,GroupTitle:`_GroupTitle_dcn2t_348`,Links:`_Links_dcn2t_355`,Separator:`_Separator_dcn2t_370`,CtaArrow:`_CtaArrow_dcn2t_402`,Backdrop:`_Backdrop_dcn2t_410`,DrawerViewport:`_DrawerViewport_dcn2t_424`,MenuPopup:`_MenuPopup_dcn2t_439`,MenuTop:`_MenuTop_dcn2t_479`,MenuContent:`_MenuContent_dcn2t_486`,MenuList:`_MenuList_dcn2t_499`,Row:`_Row_dcn2t_506`,RowChevron:`_RowChevron_dcn2t_545`,SubmenuPanel:`_SubmenuPanel_dcn2t_556`,Submenu:`_Submenu_dcn2t_556`,Parent:`_Parent_dcn2t_577`},Fe=`(min-width: 1312px)`;function Ie({item:e,open:r,onOpenChange:i}){let a=e.groups.flatMap(e=>e.links),s=e.groups.flatMap(e=>e.cta==null?[]:[e.cta]);return(0,n.jsxs)(o.Collapsible.Root,{open:r,onOpenChange:i,children:[(0,n.jsxs)(o.Collapsible.Trigger,{className:X.Row,children:[e.label,(0,n.jsx)(t.ChevronDown,{"aria-hidden":!0,className:X.RowChevron})]}),(0,n.jsx)(o.Collapsible.Panel,{className:X.SubmenuPanel,children:(0,n.jsxs)(`div`,{className:X.Submenu,children:[(G(e)||a.length>0)&&(0,n.jsxs)(`ul`,{className:X.Links,children:[G(e)&&(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{className:X.Parent,href:e.href,render:e.render,children:e.label})}),a.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{href:e.href,render:e.render,children:e.label})},t))]}),s.length>0&&a.length>0&&(0,n.jsx)(`span`,{"aria-hidden":!0,className:X.Separator}),s.map((e,r)=>(0,n.jsxs)(U,{className:X.Cta,href:e.href,render:e.render,children:[(0,n.jsx)(`span`,{children:e.label}),(0,n.jsx)(t.ArrowUpRight,{"aria-hidden":!0,className:X.CtaArrow})]},r))]})})]})}function Le({items:e}){let t=q(),[i,a]=(0,r.useState)(null);return(0,n.jsx)(`nav`,{"aria-label":t.navigation,children:(0,n.jsx)(`ul`,{className:X.MenuList,children:e.map((e,t)=>(0,n.jsx)(`li`,{children:W(e)?(0,n.jsx)(Ie,{item:e,open:i===t,onOpenChange:e=>a(e?t:null)}):(0,n.jsx)(U,{className:X.Row,href:e.href,render:e.render,children:e.label})},t))})})}function Re({items:e,home:a,account:o}){let c=q(),[l,u]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{if(!l)return;let e=window.matchMedia(Fe),t=()=>{e.matches&&u(!1)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[l]),(0,n.jsxs)(s.Drawer.Root,{open:l,onOpenChange:u,swipeDirection:`up`,children:[(0,n.jsx)(s.Drawer.Trigger,{className:X.MenuButton,"aria-label":c.menu,children:(0,n.jsx)(t.Menu,{"aria-hidden":!0})}),(0,n.jsxs)(s.Drawer.Portal,{children:[(0,n.jsx)(s.Drawer.Backdrop,{className:X.Backdrop}),(0,n.jsx)(s.Drawer.Viewport,{className:X.DrawerViewport,children:(0,n.jsxs)(s.Drawer.Popup,{className:X.MenuPopup,"aria-label":c.menu,onClick:e=>{e.target instanceof Element&&e.target.closest(`a`)&&u(!1)},children:[(0,n.jsxs)(`div`,{className:X.MenuTop,children:[(0,n.jsx)(`div`,{className:X.Bar,children:(0,n.jsxs)(`div`,{className:X.BarContent,children:[(0,n.jsx)(s.Drawer.Close,{className:X.MenuButton,"aria-label":c.closeMenu,children:(0,n.jsx)(t.X,{"aria-hidden":!0})}),a,o&&(0,n.jsx)(`div`,{className:X.Actions,children:o})]})}),(0,n.jsx)(i.BrandDivider,{size:`sm`})]}),(0,n.jsx)(s.Drawer.Content,{className:X.MenuContent,children:(0,n.jsx)(Le,{items:e})})]})})]})]})}function ze({group:e}){let i=(0,r.useId)(),o=e.title!=null,s=e.links.length>0;return(0,n.jsxs)(`div`,{className:X.Group,children:[o&&(0,n.jsx)(`p`,{id:i,className:X.GroupTitle,children:e.title}),s&&(0,n.jsx)(`ul`,{className:X.Links,"aria-labelledby":o?i:void 0,children:e.links.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{render:(0,n.jsx)(a.NavigationMenu.Link,{closeOnClick:!0,href:e.href,render:e.render}),children:e.label})},t))}),e.cta!=null&&s&&(0,n.jsx)(`span`,{"aria-hidden":!0,className:X.Separator}),e.cta!=null&&(0,n.jsxs)(a.NavigationMenu.Link,{closeOnClick:!0,className:X.Cta,href:e.cta.href,render:e.cta.render,children:[(0,n.jsx)(`span`,{children:e.cta.label}),(0,n.jsx)(t.ArrowUpRight,{"aria-hidden":!0,className:X.CtaArrow})]})]})}function Be({item:e,value:r,end:i,onFocus:o}){return(0,n.jsx)(a.NavigationMenu.Item,{value:r,className:X.Item,"data-end":i||void 0,onFocus:()=>o(r),children:W(e)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.NavigationMenu.Trigger,{className:X.Pill,children:[e.label,(0,n.jsx)(a.NavigationMenu.Icon,{className:X.Chevron,children:(0,n.jsx)(t.ChevronDown,{})})]}),(0,n.jsx)(a.NavigationMenu.Content,{keepMounted:!0,className:X.Content,children:e.groups.map((e,t)=>(0,n.jsx)(ze,{group:e},t))})]}):(0,n.jsx)(a.NavigationMenu.Link,{closeOnClick:!0,className:X.Pill,href:e.href,render:e.render,children:e.label})})}function Ve({logo:e,homeRender:o,items:s,endItems:c=[],account:l,action:u,className:d,...f}){let p=q(),[m,h]=(0,r.useState)(null),g=e=>{m!=null&&m!==e&&h(null)},_=(0,n.jsx)(U,{href:o==null?`/`:void 0,render:o,className:X.Home,"aria-label":p.home,children:e}),v=l!=null&&(0,n.jsx)(U,{href:l.href,render:l.render,className:X.Account,"aria-label":l.label,children:l.icon??(0,n.jsx)(t.CircleUserRound,{"aria-hidden":!0})});return(0,n.jsxs)(`header`,{...f,className:[X.SiteHeader,d].filter(Boolean).join(` `),children:[(0,n.jsx)(`div`,{className:X.Bar,children:(0,n.jsxs)(`div`,{className:X.BarContent,children:[(0,n.jsx)(Re,{items:[...s,...c],home:_,account:v}),_,(0,n.jsxs)(a.NavigationMenu.Root,{className:X.Nav,"aria-label":p.navigation,closeDelay:150,value:m,onValueChange:h,children:[(0,n.jsx)(a.NavigationMenu.List,{className:X.List,children:[...s,...c].map((e,t)=>(0,n.jsx)(Be,{item:e,value:`item-${t}`,end:c.length>0&&t===s.length,onFocus:g},t))}),(0,n.jsx)(a.NavigationMenu.Portal,{children:(0,n.jsx)(a.NavigationMenu.Positioner,{className:X.Positioner,side:`bottom`,align:`start`,sideOffset:8,collisionPadding:16,children:(0,n.jsx)(a.NavigationMenu.Popup,{className:X.Popup,render:(0,n.jsx)(`div`,{}),children:(0,n.jsx)(a.NavigationMenu.Viewport,{className:X.Viewport})})})})]}),(v||u!=null)&&(0,n.jsxs)(`div`,{className:X.Actions,children:[v,u!=null&&(0,n.jsx)(`div`,{className:X.Action,children:u})]})]})}),(0,n.jsx)(i.BrandDivider,{size:`sm`})]})}var Z={SplitContent:`_SplitContent_16c8f_11`,Grid:`_Grid_16c8f_19`,Text:`_Text_16c8f_26`,Title:`_Title_16c8f_33`,Description:`_Description_16c8f_42`,Media:`_Media_16c8f_58`,Image:`_Image_16c8f_67`,Actions:`_Actions_16c8f_75`,Price:`_Price_16c8f_82`};function He({title:t,titleRender:r,text:i,src:a,alt:o,imageRender:s,imagePosition:l=`end`,action:u,priceExample:d,render:p,ref:m,className:h,...g}){let _=(0,e.useRender)({render:r,defaultTagName:`h2`,props:{className:Z.Title,children:t}}),v=(0,e.useRender)({enabled:a!=null,render:s,defaultTagName:`img`,props:{src:a,alt:o,className:Z.Image}});return(0,e.useRender)({render:p,ref:m,defaultTagName:`div`,props:{...g,"data-image-position":l,"data-has-image":v!=null||void 0,className:f(Z.SplitContent,h)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:Z.Grid,children:[(0,n.jsxs)(`div`,{className:Z.Text,children:[_,i!=null&&(0,n.jsx)(c,{className:Z.Description,children:i})]}),v!=null&&(0,n.jsx)(`div`,{className:Z.Media,children:v})]}),(u!=null||d!=null)&&(0,n.jsxs)(`div`,{className:Z.Actions,children:[u,d!=null&&(0,n.jsx)(`p`,{className:Z.Price,children:d})]})]})}})}var Q={Stats:`_Stats_1o0ef_16`,List:`_List_1o0ef_25`,Bar:`_Bar_1o0ef_33`,Stat:`_Stat_1o0ef_16`,Number:`_Number_1o0ef_59`,Labels:`_Labels_1o0ef_69`,Title:`_Title_1o0ef_77`,Text:`_Text_1o0ef_85`,Actions:`_Actions_1o0ef_95`,Price:`_Price_1o0ef_103`};function Ue({header:t,items:i,titleRender:a,action:o,priceExample:s,render:c,ref:l,className:u,...d}){return(0,e.useRender)({render:c,ref:l,defaultTagName:`div`,props:{...d,className:f(Q.Stats,u)({}),children:(0,n.jsxs)(n.Fragment,{children:[t,(0,n.jsxs)(`ul`,{className:Q.List,children:[i.map((e,t)=>(0,n.jsxs)(r.Fragment,{children:[(0,n.jsx)(`li`,{"aria-hidden":!0,className:Q.Bar}),(0,n.jsx)(We,{...e,titleRender:a})]},t)),(0,n.jsx)(`li`,{"aria-hidden":!0,className:Q.Bar})]}),(o!=null||s!=null)&&(0,n.jsxs)(`div`,{className:Q.Actions,children:[o,s!=null&&(0,n.jsx)(`p`,{className:Q.Price,children:s})]})]})}})}function We({number:t,title:r,text:i,titleRender:a}){let o=(0,e.useRender)({enabled:r!=null,render:a,defaultTagName:`h3`,props:{className:Q.Title,children:r}});return(0,n.jsxs)(`li`,{className:Q.Stat,children:[(0,n.jsx)(`p`,{className:Q.Number,children:t}),(o!=null||i!=null)&&(0,n.jsxs)(`div`,{className:Q.Labels,children:[o,i!=null&&(0,n.jsx)(`p`,{className:Q.Text,children:i})]})]})}var $={Testimonials:`_Testimonials_13hpt_11`,Featured:`_Featured_13hpt_18`,Video:`_Video_13hpt_31`,Quote:`_Quote_13hpt_36`,Blockquote:`_Blockquote_13hpt_44`,Person:`_Person_13hpt_72`,Name:`_Name_13hpt_81`,Meta:`_Meta_13hpt_88`,Still:`_Still_13hpt_124`,Play:`_Play_13hpt_133`,DialogViewport:`_DialogViewport_13hpt_143`,DialogPopup:`_DialogPopup_13hpt_143`,DialogVideo:`_DialogVideo_13hpt_149`,Close:`_Close_13hpt_157`},Ge=(0,i.createTranslation)({reviews:{no:`Kundeomtaler`,se:`Kundomdömen`,fi:`Asiakasarviot`,es:`Opiniones de clientes`},play:{no:`Spill av video`,se:`Spela upp video`,fi:`Toista video`,es:`Reproducir vídeo`},video:{no:`Video fra kunde`,se:`Video från kund`,fi:`Asiakkaan video`,es:`Vídeo de un cliente`},close:{no:`Lukk video`,se:`Stäng video`,fi:`Sulje video`,es:`Cerrar vídeo`},captionsLanguage:{no:`nb`,se:`sv`,fi:`fi`,es:`es`},captionsLabel:{no:`Norsk`,se:`Svenska`,fi:`Suomi`,es:`Español`}});function Ke({title:a,titleRender:o,subtitle:s,quote:c,name:l,meta:u,rating:d,videoSrc:p,videoPoster:m,videoCaptions:h,videoPosition:g=`start`,render:_,ref:v,className:y,children:b,...x}){let S=Ge(),C=(0,r.useId)(),w=c!=null||l!=null,ee=r.Children.toArray(b).length>0;return(0,e.useRender)({render:_,ref:v,defaultTagName:`div`,props:{...x,className:f($.Testimonials,y)({}),children:(0,n.jsxs)(n.Fragment,{children:[a!=null&&(0,n.jsx)(Ce,{title:a,titleRender:(0,r.cloneElement)(o??(0,n.jsx)(`h2`,{}),{id:C}),subtitle:s}),(w||p!=null)&&(0,n.jsxs)(`div`,{className:$.Featured,"data-video":p!=null||void 0,"data-video-position":g,children:[w&&(0,n.jsxs)(`figure`,{className:$.Quote,children:[d!=null&&(0,n.jsx)(i.StarRating,{rating:d}),c!=null&&(0,n.jsx)(`blockquote`,{className:$.Blockquote,children:typeof c==`string`||typeof c==`number`?(0,n.jsx)(`p`,{children:c}):c}),(l!=null||u!=null)&&(0,n.jsxs)(`figcaption`,{className:$.Person,children:[l!=null&&(0,n.jsx)(`span`,{className:$.Name,children:l}),u!=null&&(0,n.jsx)(`span`,{className:$.Meta,children:u})]})]}),p!=null&&(0,n.jsxs)(`div`,{className:$.Video,children:[m==null?(0,n.jsx)(`video`,{className:$.Still,src:`${p}#t=0.1`,preload:`metadata`,muted:!0,playsInline:!0,"aria-hidden":!0,tabIndex:-1}):(0,n.jsx)(`img`,{className:$.Still,src:m,alt:``}),(0,n.jsxs)(i.Dialog.Root,{children:[(0,n.jsx)(i.Dialog.Trigger,{render:(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":S.play,className:$.Play,children:(0,n.jsx)(t.Play,{"aria-hidden":!0})})}),(0,n.jsxs)(i.Dialog.Portal,{children:[(0,n.jsx)(i.Dialog.Backdrop,{}),(0,n.jsx)(i.Dialog.Viewport,{className:$.DialogViewport,children:(0,n.jsxs)(i.Dialog.Popup,{size:`lg`,"aria-label":S.video,className:$.DialogPopup,children:[(0,n.jsx)(i.Dialog.Close,{render:(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":S.close,className:$.Close,children:(0,n.jsx)(t.X,{"aria-hidden":!0})})}),(0,n.jsx)(`video`,{className:$.DialogVideo,src:p,controls:!0,autoPlay:!0,playsInline:!0,children:h!=null&&(0,n.jsx)(`track`,{kind:`captions`,src:h,srcLang:S.captionsLanguage,label:S.captionsLabel,default:!0})})]})})]})]})]})]}),ee&&(0,n.jsx)(T,{...a==null?{"aria-label":S.reviews}:{"aria-labelledby":C},children:b})]})}})}exports.AlertBanner=d,exports.BrandLetters=_,exports.Calculator=y,exports.Carousel=T,exports.CtaBanner=re,exports.ExpandingCards=ue,exports.ExpandingCardsItem=de,exports.Hero=fe,exports.HeroServiceGrid=pe,exports.NavigationGrid=me,exports.PartnerList=ge,exports.PaymentFeature=_e,exports.PromoGrid=ye,exports.Section=Se,exports.SectionHeader=Ce,exports.ServiceCardGrid=we,exports.SideNav=Ee,exports.SiteFooter=Pe,exports.SiteHeader=Ve,exports.SplitContent=He,exports.Stats=Ue,exports.Testimonials=Ke;
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});require('./website.css');let e=require("@base-ui/react/use-render"),t=require("lucide-react"),n=require("react/jsx-runtime"),r=require("react"),i=require("./component-library.umd.js"),a=require("@base-ui/react/navigation-menu"),o=require("@base-ui/react/collapsible"),s=require("@base-ui/react/drawer");function c({className:e,id:t,children:r}){return typeof r==`string`||typeof r==`number`?(0,n.jsx)(`p`,{className:e,id:t,children:r}):(0,n.jsx)(`div`,{className:e,id:t,children:r})}var l={AlertBanner:`_AlertBanner_11ase_11`,Icon:`_Icon_11ase_67`,Content:`_Content_11ase_81`,Title:`_Title_11ase_90`,Text:`_Text_11ase_97`};function u({render:t,children:n}){return(0,e.useRender)({render:t,defaultTagName:`h2`,props:{className:l.Title,children:n}})}function d({title:e,text:r,titleRender:i,icon:a,color:o=`error`,className:s,...d}){let f=a===void 0?(0,n.jsx)(t.TriangleAlert,{}):a;return(0,n.jsxs)(`div`,{...d,className:[l.AlertBanner,s].filter(Boolean).join(` `),"data-color":o,children:[f!=null&&f!==!1&&(0,n.jsx)(`span`,{"aria-hidden":!0,className:l.Icon,children:f}),(0,n.jsxs)(`div`,{className:l.Content,children:[e!=null&&(0,n.jsx)(u,{render:i,children:e}),r!=null&&(0,n.jsx)(c,{className:l.Text,children:r})]})]})}var f=(e,t)=>n=>[e,typeof t==`function`?t(n):t].filter(Boolean).join(` `),p={BrandLetters:`_BrandLetters_1ygg1_9`,Letters:`_Letters_1ygg1_17`,Letter:`_Letter_1ygg1_17`,Video:`_Video_1ygg1_48`},m=(0,i.createTranslation)({play:{no:`Spill av videoene`,se:`Spela upp videorna`,fi:`Toista videot`,es:`Reproducir los vídeos`},pause:{no:`Sett videoene på pause`,se:`Pausa videorna`,fi:`Keskeytä videot`,es:`Pausar los vídeos`}}),h=`(prefers-reduced-motion: reduce)`,g=[`L`,`E`,`A`];function _({videos:a,render:o,ref:s,className:c,...l}){let u=m(),d=(0,r.useRef)([]),[_,v]=(0,r.useState)(!1),y=e=>{for(let t of d.current)t&&e(t)},b=e=>{e.muted=!0,e.play().catch(()=>{})};(0,r.useEffect)(()=>{let e=window.matchMedia(h);e.matches||y(b);let t=e=>{e.matches&&y(e=>e.pause())};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let x=()=>v(d.current.some(e=>e!=null&&!e.paused)),S=()=>{y(_?e=>e.pause():b)};return(0,e.useRender)({render:o,ref:s,defaultTagName:`div`,props:{...l,className:f(p.BrandLetters,c)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:p.Letters,children:g.map((e,t)=>(0,n.jsx)(`div`,{className:p.Letter,"data-letter":e,children:(0,n.jsx)(`video`,{ref:e=>{d.current[t]=e},className:p.Video,src:a[t].src,poster:a[t].poster,muted:!0,loop:!0,playsInline:!0,"aria-hidden":!0,onPlay:x,onPause:x})},e))}),(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":_?u.pause:u.play,onClick:S,children:_?(0,n.jsx)(t.Pause,{"aria-hidden":!0}):(0,n.jsx)(t.Play,{"aria-hidden":!0})})]})}})}var v={Calculator:`_Calculator_1mamd_12`,Body:`_Body_1mamd_26`,Panel:`_Panel_1mamd_41`,Summary:`_Summary_1mamd_55`,Results:`_Results_1mamd_64`,Result:`_Result_1mamd_64`,Label:`_Label_1mamd_77`,Value:`_Value_1mamd_78`,Actions:`_Actions_1mamd_95`,Price:`_Price_1mamd_103`};function y({header:t,results:r,action:i,priceExample:a,render:o,ref:s,className:c,children:l,...u}){return(0,e.useRender)({render:o,ref:s,defaultTagName:`div`,props:{...u,className:f(v.Calculator,c)({}),children:(0,n.jsxs)(n.Fragment,{children:[t,(0,n.jsxs)(`div`,{className:v.Body,children:[(0,n.jsx)(`div`,{className:v.Panel,children:l}),(0,n.jsxs)(`div`,{className:v.Summary,children:[r.length>0&&(0,n.jsx)(`dl`,{className:v.Results,"aria-live":`polite`,children:r.map((e,t)=>(0,n.jsxs)(`div`,{className:v.Result,children:[(0,n.jsx)(`dt`,{className:v.Label,children:e.label}),(0,n.jsx)(`dd`,{className:v.Value,children:e.value})]},t))}),(i!=null||a!=null)&&(0,n.jsxs)(`div`,{className:v.Actions,children:[i,a!=null&&(0,n.jsx)(`p`,{className:v.Price,children:a})]})]})]})]})}})}var b={Carousel:`_Carousel_17a24_14`,Viewport:`_Viewport_17a24_31`,Track:`_Track_17a24_66`,Slide:`_Slide_17a24_94`,Controls:`_Controls_17a24_100`,VisuallyHidden:`_VisuallyHidden_17a24_109`},x={fast:`0.15s`,normal:`0.2s`,emphasis:`0.3s`},S=`(prefers-reduced-motion: reduce)`,C=150,w=parseFloat(x.emphasis)*1e3;function ee(e){let t=(e,t,n)=>3*t*e*(1-e)**2+3*n*e**2*(1-e)+e**3,n=0,r=1;for(let i=0;i<20;i+=1){let i=(n+r)/2;t(i,.42,.58)<e?n=i:r=i}return t((n+r)/2,0,1)}function te(e,t){let n=(0,r.useRef)([0]),i=(0,r.useRef)(void 0),a=(0,r.useRef)(void 0),[o,s]=(0,r.useState)(()=>({pageCount:Math.max(1,t-1),page:0,settledPage:0,atStart:!0,atEnd:t<=2,overflowing:t>2,moved:!1})),c=(0,r.useCallback)((t,r=!1)=>{let i=e.current;if(!i)return;let a=i.scrollLeft,o=Math.max(0,i.scrollWidth-i.clientWidth),c=n.current,l=0;for(let e=1;e<c.length;e+=1)Math.abs(c[e]-a)<Math.abs(c[l]-a)&&(l=e);s(e=>{let n={pageCount:c.length,page:l,settledPage:t?l:e.settledPage,atStart:a<=1,atEnd:a>=o-1,overflowing:o>1,moved:e.moved||r};return Object.keys(n).every(t=>n[t]===e[t])?e:n})},[e]),l=(0,r.useCallback)(()=>{let t=e.current;if(!t)return;let r=Math.max(0,t.scrollWidth-t.clientWidth),i=Array.from(t.children),a=i[0]?.offsetLeft??0,o=[];for(let e of i){let t=Math.min(Math.max(0,e.offsetLeft-a),r);(o.length===0||t-o[o.length-1]>1)&&o.push(t)}n.current=o.length>0?o:[0],c(!0)},[c,e]),u=(0,r.useCallback)(()=>{a.current&&(cancelAnimationFrame(a.current.frame),a.current=void 0,e.current?.style.removeProperty(`scroll-snap-type`))},[e]);(0,r.useEffect)(()=>{let t=e.current;if(!t)return;l();let n=()=>{c(!1,!0),clearTimeout(i.current),i.current=setTimeout(()=>c(!0),C)},r=new ResizeObserver(l),a=[`pointerdown`,`touchstart`,`wheel`,`keydown`];t.addEventListener(`scroll`,n,{passive:!0});for(let e of a)t.addEventListener(e,u,{passive:!0});return r.observe(t),()=>{t.removeEventListener(`scroll`,n);for(let e of a)t.removeEventListener(e,u);r.disconnect(),clearTimeout(i.current),u()}},[l,c,t,u,e]);let d=(0,r.useCallback)(t=>{let r=e.current;if(!r)return;let i=n.current,o=i[Math.min(i.length-1,Math.max(0,t))];if(a.current?.to===o)return;u();let s=r.scrollLeft;if(window.matchMedia(S).matches||Math.abs(o-s)<1){r.scrollTo({left:o,behavior:`instant`});return}r.style.setProperty(`scroll-snap-type`,`none`);let c=performance.now(),l=e=>{let t=Math.min(1,(e-c)/w);r.scrollTo({left:s+(o-s)*ee(t),behavior:`instant`}),t<1?a.current={frame:requestAnimationFrame(l),to:o}:(a.current=void 0,r.style.removeProperty(`scroll-snap-type`))};a.current={frame:requestAnimationFrame(l),to:o}},[u,e]);return{...o,goTo:d}}var ne=(0,i.createTranslation)({carousel:{no:`karusell`,se:`karusell`,fi:`karuselli`,es:`carrusel`},previous:{no:`Forrige`,se:`Föregående`,fi:`Edellinen`,es:`Anterior`},next:{no:`Neste`,se:`Nästa`,fi:`Seuraava`,es:`Siguiente`},status:{no:`Side {page} av {count}`,se:`Sida {page} av {count}`,fi:`Sivu {page}/{count}`,es:`Página {page} de {count}`}});function T({getItemLabel:a,render:o,ref:s,className:c,children:l,...u}){let d=ne(),p=(0,r.useRef)(null),m=r.Children.toArray(l),{pageCount:h,page:g,settledPage:_,atStart:v,atEnd:y,overflowing:x,moved:S,goTo:C}=te(p,m.length);return(0,e.useRender)({render:o,ref:s,defaultTagName:`div`,props:{role:`region`,"aria-roledescription":d.carousel,...u,className:f(b.Carousel,c)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:b.Viewport,"data-at-start":v||void 0,"data-at-end":y||void 0,children:(0,n.jsx)(`ul`,{ref:p,className:b.Track,tabIndex:x?0:void 0,children:m.map((e,t)=>(0,n.jsx)(`li`,{className:b.Slide,children:e},t))})}),h>1&&(0,n.jsxs)(`div`,{className:b.Controls,children:[(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":d.previous,disabled:g===0,focusableWhenDisabled:!0,onClick:()=>C(g-1),children:(0,n.jsx)(t.ChevronLeft,{"aria-hidden":!0})}),(0,n.jsx)(i.PaginationDots,{count:h,value:g+1,onValueChange:e=>C(e-1),getItemLabel:a}),(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":d.next,disabled:g===h-1,focusableWhenDisabled:!0,onClick:()=>C(g+1),children:(0,n.jsx)(t.ChevronRight,{"aria-hidden":!0})}),(0,n.jsx)(`span`,{role:`status`,className:b.VisuallyHidden,children:S&&d.status.replace(`{page}`,String(_+1)).replace(`{count}`,String(h))})]})]})}})}var E={CtaBanner:`_CtaBanner_vkp5c_7`,Title:`_Title_vkp5c_15`,Content:`_Content_vkp5c_24`,Text:`_Text_vkp5c_32`,Action:`_Action_vkp5c_48`,Price:`_Price_vkp5c_53`};function re({title:t,titleRender:r,text:i,action:a,priceExample:o,render:s,ref:l,className:u,...d}){let p=(0,e.useRender)({render:r,defaultTagName:`h2`,props:{className:E.Title,children:t}}),m=i!=null||a!=null||o!=null;return(0,e.useRender)({render:s,ref:l,defaultTagName:`div`,props:{...d,"data-has-content":m||void 0,className:f(E.CtaBanner,u)({}),children:(0,n.jsxs)(n.Fragment,{children:[p,m&&(0,n.jsxs)(`div`,{className:E.Content,children:[i!=null&&(0,n.jsx)(c,{className:E.Text,children:i}),a!=null&&(0,n.jsx)(`div`,{className:E.Action,children:a}),o!=null&&(0,n.jsx)(`p`,{className:E.Price,children:o})]})]})}})}var ie=(0,r.createContext)({open:!0}),D={ExpandingCards:`_ExpandingCards_14pq8_19`,List:`_List_14pq8_23`,Item:`_Item_14pq8_32`},ae=`(min-width: 1312px)`,oe={open:!0},se={open:!1},ce=e=>{let t=window.matchMedia(ae);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)},le=()=>(0,r.useSyncExternalStore)(ce,()=>window.matchMedia(ae).matches,()=>!0);function ue({defaultOpen:t=`first`,render:i,ref:a,className:o,children:s,...c}){let l=r.Children.toArray(s),u=le(),[d,p]=(0,r.useState)(()=>t===`last`?Math.max(0,l.length-1):0);return(0,e.useRender)({render:i,ref:a,defaultTagName:`div`,props:{...c,className:f(D.ExpandingCards,o)({}),children:(0,n.jsx)(`ul`,{className:D.List,style:{"--expanding-cards-count":l.length},children:l.map((e,t)=>(0,n.jsx)(`li`,{className:D.Item,"data-open":t===d||void 0,onPointerEnter:()=>p(t),onFocus:()=>p(t),children:(0,n.jsx)(ie.Provider,{value:!u||t===d?oe:se,children:e})},t))})}})}var O={ExpandingCardsItem:`_ExpandingCardsItem_1v7ai_17`,Content:`_Content_1v7ai_53`,Title:`_Title_1v7ai_70`,Text:`_Text_1v7ai_81`,Action:`_Action_1v7ai_99`,Photo:`_Photo_1v7ai_110`,Image:`_Image_1v7ai_117`};function de({title:t,titleRender:a,text:o,action:s,src:l,alt:u,imageRender:d,surface:p=`base`,render:m,ref:h,className:g,..._}){let{open:v}=(0,r.useContext)(ie),y=(0,e.useRender)({render:a,defaultTagName:`h2`,props:{className:O.Title,children:t}}),b=(0,e.useRender)({enabled:l!=null,render:d,defaultTagName:`img`,props:{src:l,alt:u,className:O.Image}}),x=(0,r.isValidElement)(s)&&s.type===i.ActionButton?(0,r.cloneElement)(s,{iconOnly:!v}):s;return(0,e.useRender)({render:m,ref:h,defaultTagName:`div`,props:{..._,"data-surface":p,"data-open":v||void 0,"data-image":l!=null||void 0,className:f(O.ExpandingCardsItem,g)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:O.Content,children:[y,o!=null&&(0,n.jsx)(c,{className:O.Text,children:o}),s!=null&&(0,n.jsx)(`div`,{className:O.Action,children:x})]}),b!=null&&(0,n.jsx)(`div`,{className:O.Photo,children:b})]})}})}var k={Hero:`_Hero_1ik22_8`,Background:`_Background_1ik22_24`,Image:`_Image_1ik22_30`,Container:`_Container_1ik22_37`,Box:`_Box_1ik22_45`,Title:`_Title_1ik22_50`,Text:`_Text_1ik22_59`,Action:`_Action_1ik22_75`,Price:`_Price_1ik22_80`};function fe({src:t,alt:r,imageRender:a,title:o,titleRender:s,text:l,action:u,priceExample:d,render:p,ref:m,className:h,...g}){let _=(0,e.useRender)({render:s,defaultTagName:`h1`,props:{className:k.Title,children:o}}),v=(0,e.useRender)({render:a,defaultTagName:`img`,props:{src:t,alt:r,className:k.Image}});return(0,e.useRender)({render:p,ref:m,defaultTagName:`section`,props:{...g,className:f(k.Hero,h)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:k.Container,children:(0,n.jsxs)(i.Panel,{className:k.Box,children:[_,l!=null&&(0,n.jsx)(c,{className:k.Text,children:l}),u!=null&&(0,n.jsx)(`div`,{className:k.Action,children:u}),d!=null&&(0,n.jsx)(`p`,{className:k.Price,children:d})]})}),(0,n.jsx)(`div`,{className:k.Background,children:v})]})}})}var A={HeroServiceGrid:`_HeroServiceGrid_yr3eo_8`,Cards:`_Cards_yr3eo_15`,Item:`_Item_yr3eo_26`,Featured:`_Featured_yr3eo_51`};function pe({src:t,alt:a,imageRender:o,action:s,imagePosition:c=`start`,render:l,ref:u,className:d,children:p,...m}){let h=r.Children.toArray(p);return(0,e.useRender)({render:l,ref:u,defaultTagName:`div`,props:{...m,"data-image-position":c,className:f(A.HeroServiceGrid,d)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.FeaturedImage,{className:A.Featured,src:t,alt:a,imageRender:o,action:s}),h.length>0&&(0,n.jsx)(`ul`,{className:A.Cards,children:h.map((e,t)=>(0,n.jsx)(`li`,{className:A.Item,children:e},t))})]})}})}var j={NavigationGrid:`_NavigationGrid_ocatr_9`,Title:`_Title_ocatr_16`,List:`_List_ocatr_25`,Item:`_Item_ocatr_35`};function me({title:t,titleRender:i,render:a,ref:o,className:s,children:c,...l}){let u=r.Children.toArray(c),d=u.length>=3&&u.length%2==1,p=(0,e.useRender)({enabled:t!=null,render:i,defaultTagName:`h2`,props:{className:j.Title,children:t}});return(0,e.useRender)({render:a,ref:o,defaultTagName:`div`,props:{...l,className:f(j.NavigationGrid,s)({}),children:(0,n.jsxs)(n.Fragment,{children:[p,(0,n.jsx)(`ul`,{className:j.List,"data-odd":d||void 0,children:u.map((e,t)=>(0,n.jsx)(`li`,{className:j.Item,children:e},t))})]})}})}var M={PartnerList:`_PartnerList_9o9wx_7`,List:`_List_9o9wx_11`,Controls:`_Controls_9o9wx_19`,VisuallyHidden:`_VisuallyHidden_9o9wx_29`},he=(0,i.createTranslation)({previous:{no:`Forrige side`,se:`Föregående sida`,fi:`Edellinen sivu`,es:`Página anterior`},next:{no:`Neste side`,se:`Nästa sida`,fi:`Seuraava sivu`,es:`Página siguiente`},status:{no:`Side {page} av {count}`,se:`Sida {page} av {count}`,fi:`Sivu {page}/{count}`,es:`Página {page} de {count}`},collation:{no:`nb`,se:`sv`,fi:`fi`,es:`es`}});function ge({items:a,pageSize:o=9,value:s,defaultValue:c=1,onValueChange:l,render:u,ref:d,className:p,...m}){let h=he(),[g,_]=(0,r.useState)(c),v=(0,r.useMemo)(()=>{let e=new Intl.Collator(h.collation,{sensitivity:`base`});return[...a].sort((t,n)=>e.compare(t.name,n.name))},[a,h.collation]),y=Math.max(1,Math.floor(o)),b=Math.max(1,Math.ceil(v.length/y)),x=Math.min(b,Math.max(1,s??g)),S=(x-1)*y,C=e=>{let t=Math.min(b,Math.max(1,e));s===void 0&&_(t),t!==x&&l?.(t)};return(0,e.useRender)({enabled:v.length>0,render:u,ref:d,defaultTagName:`div`,props:{...m,className:f(M.PartnerList,p)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`ul`,{className:M.List,children:v.slice(S,S+y).map(({name:e,content:t,...r},a)=>(0,n.jsx)(i.PartnerRow,{...r,render:(0,n.jsx)(`li`,{}),children:t},`${S+a}-${e}`))}),b>1&&(0,n.jsxs)(`div`,{className:M.Controls,children:[(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":h.previous,disabled:x===1,focusableWhenDisabled:!0,onClick:()=>C(x-1),children:(0,n.jsx)(t.ChevronLeft,{"aria-hidden":!0})}),(0,n.jsx)(i.PaginationDots,{count:b,value:x,onValueChange:C}),(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":h.next,disabled:x===b,focusableWhenDisabled:!0,onClick:()=>C(x+1),children:(0,n.jsx)(t.ChevronRight,{"aria-hidden":!0})}),(0,n.jsx)(`span`,{role:`status`,className:M.VisuallyHidden,children:h.status.replace(`{page}`,String(x)).replace(`{count}`,String(b))})]})]})}})}var N={Grid:`_Grid_1vukg_10`,Content:`_Content_1vukg_17`,Logos:`_Logos_1vukg_28`,LogoItem:`_LogoItem_1vukg_38`,Logo:`_Logo_1vukg_28`,Text:`_Text_1vukg_60`,Title:`_Title_1vukg_66`,Description:`_Description_1vukg_75`,Actions:`_Actions_1vukg_91`,Price:`_Price_1vukg_98`,Media:`_Media_1vukg_106`,PaymentFeature:`_PaymentFeature_1vukg_111`,Image:`_Image_1vukg_115`};function _e({logos:t,title:r,titleRender:a,text:o,actions:s,priceExample:l,src:u,alt:d,imageRender:f,imagePosition:p=`end`,className:m,...h}){let g=(0,e.useRender)({render:a,defaultTagName:`h2`,props:{className:N.Title,children:r}}),_=(0,e.useRender)({enabled:u!=null,render:f,defaultTagName:`img`,props:{src:u,alt:d,className:N.Image}});return(0,n.jsx)(i.Panel,{...h,className:[N.PaymentFeature,m].filter(Boolean).join(` `),"data-image-position":p,"data-has-image":_!=null||void 0,children:(0,n.jsxs)(`div`,{className:N.Grid,children:[(0,n.jsxs)(`div`,{className:N.Content,children:[t!=null&&t.length>0&&(0,n.jsx)(`ul`,{className:N.Logos,children:t.map((e,t)=>(0,n.jsx)(ve,{...e},t))}),(0,n.jsxs)(`div`,{className:N.Text,children:[g,o!=null&&(0,n.jsx)(c,{className:N.Description,children:o})]}),s!=null&&(0,n.jsx)(`div`,{className:N.Actions,children:s}),l!=null&&(0,n.jsx)(`p`,{className:N.Price,children:l})]}),_!=null&&(0,n.jsx)(`div`,{className:N.Media,children:_})]})})}function ve({src:t,alt:r,imageRender:i}){let a=(0,e.useRender)({render:i,defaultTagName:`img`,props:{src:t,alt:r,className:N.Logo}});return(0,n.jsx)(`li`,{className:N.LogoItem,children:a})}var P={PromoGrid:`_PromoGrid_1l2yi_10`,Featured:`_Featured_1l2yi_19`,Content:`_Content_1l2yi_23`,Photos:`_Photos_1l2yi_31`,Photo:`_Photo_1l2yi_31`,Block:`_Block_1l2yi_51`,Title:`_Title_1l2yi_63`,Subtitle:`_Subtitle_1l2yi_73`};function ye({src:t,alt:r,imageRender:a,action:o,images:s,title:l,titleRender:u,subtitle:d,imagePosition:p=`start`,render:m,ref:h,className:g,..._}){let v=(0,e.useRender)({render:u,defaultTagName:`h2`,props:{className:P.Title,children:l}});return(0,e.useRender)({render:m,ref:h,defaultTagName:`div`,props:{..._,"data-image-position":p,className:f(P.PromoGrid,g)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.FeaturedImage,{className:P.Featured,src:t,alt:r,imageRender:a,action:o}),(0,n.jsxs)(`div`,{className:P.Content,children:[s!=null&&s.length>0&&(0,n.jsx)(`div`,{className:P.Photos,"data-count":s.length,children:s.map((e,t)=>(0,n.jsx)(be,{...e},t))}),(0,n.jsxs)(`div`,{className:P.Block,children:[v,d!=null&&(0,n.jsx)(c,{className:P.Subtitle,children:d})]})]})]})}})}function be({src:t,alt:n,imageRender:r}){return(0,e.useRender)({render:r,defaultTagName:`img`,props:{src:t,alt:n,className:P.Photo}})}var xe={Section:`_Section_f8rp9_11`,Content:`_Content_f8rp9_60`};function Se({surface:t=`base`,spacingTop:r=`lg`,spacingBottom:i=`lg`,width:a=`full`,render:o,ref:s,className:c,children:l,...u}){return(0,e.useRender)({render:o,ref:s,defaultTagName:`section`,props:{...u,"data-surface":t,"data-spacing-top":r,"data-spacing-bottom":i,className:f(xe.Section,c)({}),children:(0,n.jsx)(`div`,{className:xe.Content,"data-width":a,children:l})}})}var F={SectionHeader:`_SectionHeader_11mff_8`,Text:`_Text_11mff_17`,Eyebrow:`_Eyebrow_11mff_25`,Title:`_Title_11mff_33`,Subtitle:`_Subtitle_11mff_49`,Actions:`_Actions_11mff_67`,Price:`_Price_11mff_75`};function Ce({eyebrow:t,title:r,titleRender:i,titleSize:a=`lg`,subtitle:o,actions:s,priceExample:l,render:u,ref:d,className:p,...m}){let h=(0,e.useRender)({render:i,defaultTagName:`h2`,props:{className:F.Title,children:r}});return(0,e.useRender)({render:u,ref:d,defaultTagName:`div`,props:{...m,"data-title-size":a,className:f(F.SectionHeader,p)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:F.Text,children:[t!=null&&(0,n.jsx)(`p`,{className:F.Eyebrow,children:t}),h,o!=null&&(0,n.jsx)(c,{className:F.Subtitle,children:o})]}),s!=null&&(0,n.jsx)(`div`,{className:F.Actions,children:s}),l!=null&&(0,n.jsx)(`p`,{className:F.Price,children:l})]})}})}var I={ServiceCardGrid:`_ServiceCardGrid_nutvc_9`,List:`_List_nutvc_13`,Item:`_Item_nutvc_23`};function we({render:t,ref:i,className:a,children:o,...s}){let c=r.Children.toArray(o);return(0,e.useRender)({render:t,ref:i,defaultTagName:`div`,props:{...s,className:f(I.ServiceCardGrid,a)({}),children:(0,n.jsx)(`ul`,{className:I.List,"data-count":c.length,children:c.map((e,t)=>(0,n.jsx)(`li`,{className:I.Item,children:e},t))})}})}var L={ArrowRevealLink:`_ArrowRevealLink_zq26l_2`,Arrow:`_Arrow_zq26l_2`,Text:`_Text_zq26l_40`};function R({render:r,className:i,children:a,size:o=`md`,marked:s=!1,...c}){return(0,e.useRender)({render:r,defaultTagName:`a`,props:{...c,"data-size":o===`md`?void 0:o,"data-marked":s?``:void 0,className:f(L.ArrowRevealLink,i)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:L.Arrow,children:(0,n.jsx)(t.ArrowRight,{})}),(0,n.jsx)(`span`,{className:L.Text,children:a})]})}})}var z={SideNav:`_SideNav_1ha5v_6`,Sidebar:`_Sidebar_1ha5v_29`,List:`_List_1ha5v_44`,Content:`_Content_1ha5v_61`},Te=(0,i.createTranslation)({navigation:{no:`Sidemeny`,se:`Sidomeny`,fi:`Sivuvalikko`,es:`Menú lateral`}});function Ee({items:e,label:t,breadcrumbs:a,children:o,className:s,...c}){let l=Te(),u=e.findIndex(e=>e.current),[d,f]=(0,r.useState)(null);d&&d.from!==u&&f(null);let p=d?.index??u;return(0,r.useEffect)(()=>{let e=e=>{e.persisted&&f(null)};return window.addEventListener(`pageshow`,e),()=>window.removeEventListener(`pageshow`,e)},[]),(0,n.jsxs)(`div`,{...c,className:[z.SideNav,s].filter(Boolean).join(` `),children:[(0,n.jsx)(`nav`,{className:z.Sidebar,"aria-label":t??l.navigation,children:(0,n.jsx)(`ul`,{className:z.List,children:e.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{size:`lg`,href:e.href,render:e.render,"aria-current":e.current?`page`:void 0,marked:t===p,onClick:e=>{De(e)&&f({index:t,from:u})},children:e.label})},t))})}),(0,n.jsxs)(i.Panel,{size:`sm`,className:z.Content,children:[a,o]})]})}function De(e){let t=e.currentTarget,n=t.getAttribute(`target`);return!e.defaultPrevented&&e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&(!n||n===`_self`)&&!t.hasAttribute(`download`)}var B=`M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20Z`,V=`M19.9154 8.69625H7.82613H7.82609V0.238281C6.90195 0.443203 6.02582 0.775352 5.21738 1.21648V8.69617V8.69621H0.0846484C0.0289844 9.1232 0 9.55852 0 10.0006C0 10.4427 0.0289844 10.878 0.0846484 11.3049H5.21734H5.21738V18.7846C6.02582 19.2257 6.90195 19.558 7.82609 19.7629V11.305V11.305H19.9154C19.9709 10.878 20 10.4427 20 10.0006C20 9.55852 19.9709 9.1232 19.9154 8.69625V8.69625Z`;function H({children:e,...t}){return(0,n.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,"aria-hidden":!0,focusable:`false`,...t,children:e})}function Oe(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:B,fill:`#F0F0F0`}),(0,n.jsx)(`path`,{d:`M0.34375 12.6094C0.922344 14.7562 2.19754 16.6169 3.9123 17.9345V12.6094H0.34375Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M9.12891 19.9626C9.41555 19.9873 9.70543 20.0007 9.99848 20.0007C14.6188 20.0007 18.5065 16.867 19.654 12.6094H9.12891V19.9626Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M19.654 7.39129C18.5065 3.13363 14.6188 0 9.99848 0C9.70543 0 9.41555 0.0133594 9.12891 0.0380469V7.39129H19.654Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M3.9123 2.06641C2.19754 3.38398 0.922344 5.24465 0.34375 7.39148H3.9123V2.06641Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:V,fill:`#0052B4`})]})}function ke(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:B,fill:`#FFDA44`}),(0,n.jsx)(`path`,{d:`M7.82816 8.69566H19.9174C19.2782 3.78914 15.0828 0 10.002 0C9.25539 0 8.52809 0.0825391 7.82812 0.237695V8.69566H7.82816Z`,fill:`#0052B4`}),(0,n.jsx)(`path`,{d:`M5.21867 8.69848V1.21875C2.47281 2.71695 0.507148 5.46504 0.0859375 8.69852H5.21867V8.69848Z`,fill:`#0052B4`}),(0,n.jsx)(`path`,{d:`M5.21863 11.3047H0.0859375C0.507148 14.5382 2.47281 17.2863 5.21867 18.7844L5.21863 11.3047Z`,fill:`#0052B4`}),(0,n.jsx)(`path`,{d:`M7.82812 11.3047V19.7627C8.52809 19.9178 9.25539 20.0004 10.002 20.0004C15.0828 20.0004 19.2782 16.2112 19.9174 11.3047H7.82812V11.3047Z`,fill:`#0052B4`})]})}function Ae(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:B,fill:`#F0F0F0`}),(0,n.jsx)(`path`,{d:V,fill:`#0052B4`})]})}function je(e){return(0,n.jsxs)(H,{...e,children:[(0,n.jsx)(`path`,{d:`M0 10.0002C0 11.2234 0.220039 12.3951 0.621992 13.4784L10 14.348L19.378 13.4784C19.78 12.3951 20 11.2234 20 10.0002C20 8.77695 19.78 7.60523 19.378 6.52191L10 5.65234L0.621992 6.52191C0.220039 7.60523 0 8.77695 0 10.0002H0Z`,fill:`#FFDA44`}),(0,n.jsx)(`path`,{d:`M19.3771 6.52176C17.9642 2.71379 14.2987 0 9.9991 0C5.69945 0 2.03402 2.71379 0.621094 6.52176H19.3771Z`,fill:`#D80027`}),(0,n.jsx)(`path`,{d:`M0.621094 13.4766C2.03402 17.2845 5.69945 19.9983 9.9991 19.9983C14.2987 19.9983 17.9642 17.2845 19.3771 13.4766H0.621094Z`,fill:`#D80027`})]})}function U({href:t,render:n,...r}){return(0,e.useRender)({render:n,defaultTagName:`a`,props:t==null?r:{...r,href:t}})}var W=e=>e.groups!=null&&e.groups.length>0,G=e=>e.href!=null||e.render!=null,K={SiteFooter:`_SiteFooter_o2ixe_7`,Content:`_Content_o2ixe_23`,Main:`_Main_o2ixe_32`,Home:`_Home_o2ixe_46`,Columns:`_Columns_o2ixe_64`,Column:`_Column_o2ixe_64`,Title:`_Title_o2ixe_94`,Links:`_Links_o2ixe_108`,Social:`_Social_o2ixe_109`,Link:`_Link_o2ixe_108`,SocialIcon:`_SocialIcon_o2ixe_147`,Market:`_Market_o2ixe_161`,Divider:`_Divider_o2ixe_165`,CookieSettings:`_CookieSettings_o2ixe_176`,Copyright:`_Copyright_o2ixe_192`},Me=(0,i.createTranslation)({market:{no:`Marked`,se:`Marknad`,fi:`Markkina`,es:`Mercado`},social:{no:`Sosiale medier`,se:`Sociala medier`,fi:`Sosiaalinen media`,es:`Redes sociales`},cookieSettings:{no:`Cookie-innstillinger`,se:`Cookieinställningar`,fi:`Evästeasetukset`,es:`Configuración de cookies`},collation:{no:`nb`,se:`sv`,fi:`fi`,es:`es`}}),q=(0,i.createTranslation)({navigation:{no:`Hovedmeny`,se:`Huvudmeny`,fi:`Päävalikko`,es:`Menú principal`},menu:{no:`Meny`,se:`Meny`,fi:`Valikko`,es:`Menú`},closeMenu:{no:`Lukk meny`,se:`Stäng menyn`,fi:`Sulje valikko`,es:`Cerrar menú`},home:{no:`Lea Bank, forside`,se:`Lea Bank, startsida`,fi:`Lea Bank, etusivu`,es:`Lea Bank, página de inicio`}}),J={no:{name:`Norge`,flag:(0,n.jsx)(Oe,{})},se:{name:`Sverige`,flag:(0,n.jsx)(ke,{})},fi:{name:`Suomi`,flag:(0,n.jsx)(Ae,{})},es:{name:`España`,flag:(0,n.jsx)(je,{})}},Ne=[`no`,`se`,`fi`,`es`];function Y({render:t,id:n,children:r}){return(0,e.useRender)({render:t,defaultTagName:`h2`,props:{id:n,className:K.Title,children:r}})}function Pe({market:e,render:t}){let a=Me(),o=(0,r.useId)(),s=e.options??Ne,c=(0,r.useMemo)(()=>{let e=new Intl.Collator(a.collation,{sensitivity:`base`});return[...s].sort((t,n)=>e.compare(J[t].name,J[n].name)).map(e=>({value:e,label:J[e].name,icon:J[e].flag}))},[s,a.collation]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Y,{render:t,id:o,children:e.title??a.market}),(0,n.jsx)(i.Select,{size:`sm`,"aria-labelledby":o,options:c,value:e.value,onValueChange:e.onValueChange,className:K.Market})]})}function Fe({logo:e,homeRender:t,columns:r=[],market:i,social:a,onOpenCookieSettings:o,copyright:s,titleRender:l,className:u,...d}){let f=Me(),p=q(),m=o!=null||s!=null;return(0,n.jsx)(`footer`,{...d,className:[K.SiteFooter,u].filter(Boolean).join(` `),children:(0,n.jsxs)(`div`,{className:K.Content,children:[(0,n.jsxs)(`div`,{className:K.Main,children:[(0,n.jsx)(U,{href:t==null?`/`:void 0,render:t,className:K.Home,"aria-label":p.home,children:e}),(0,n.jsxs)(`div`,{className:K.Columns,children:[r.map((e,t)=>(0,n.jsxs)(`div`,{className:K.Column,children:[(0,n.jsx)(Y,{render:l,children:e.title}),e.links.length>0&&(0,n.jsx)(`ul`,{className:K.Links,children:e.links.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(U,{href:e.href,render:e.render,className:K.Link,children:e.label})},t))})]},t)),(i!=null||a!=null)&&(0,n.jsxs)(`div`,{className:K.Column,children:[i!=null&&(0,n.jsx)(Pe,{market:i,render:l}),a!=null&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Y,{render:l,children:a.title??f.social}),(0,n.jsx)(`ul`,{className:K.Social,children:a.links.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsxs)(U,{href:e.href,render:e.render,className:K.Link,children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:K.SocialIcon,children:e.icon}),e.label]})},t))})]})]})]})]}),m&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:K.Divider}),o!=null&&(0,n.jsx)(`button`,{type:`button`,className:K.CookieSettings,onClick:o,children:f.cookieSettings}),s!=null&&(0,n.jsx)(c,{className:K.Copyright,children:s})]})]})})}var X={SiteHeader:`_SiteHeader_dcn2t_9`,Bar:`_Bar_dcn2t_19`,BarContent:`_BarContent_dcn2t_24`,Home:`_Home_dcn2t_40`,Actions:`_Actions_dcn2t_57`,Account:`_Account_dcn2t_64`,MenuButton:`_MenuButton_dcn2t_80`,Action:`_Action_dcn2t_57`,Nav:`_Nav_dcn2t_121`,Pill:`_Pill_dcn2t_128`,Cta:`_Cta_dcn2t_129`,List:`_List_dcn2t_136`,Item:`_Item_dcn2t_148`,Chevron:`_Chevron_dcn2t_189`,Positioner:`_Positioner_dcn2t_263`,Popup:`_Popup_dcn2t_291`,Viewport:`_Viewport_dcn2t_311`,Content:`_Content_dcn2t_319`,Group:`_Group_dcn2t_339`,GroupTitle:`_GroupTitle_dcn2t_348`,Links:`_Links_dcn2t_355`,Separator:`_Separator_dcn2t_370`,CtaArrow:`_CtaArrow_dcn2t_402`,Backdrop:`_Backdrop_dcn2t_410`,DrawerViewport:`_DrawerViewport_dcn2t_424`,MenuPopup:`_MenuPopup_dcn2t_439`,MenuTop:`_MenuTop_dcn2t_479`,MenuContent:`_MenuContent_dcn2t_486`,MenuList:`_MenuList_dcn2t_499`,Row:`_Row_dcn2t_506`,RowChevron:`_RowChevron_dcn2t_545`,SubmenuPanel:`_SubmenuPanel_dcn2t_556`,Submenu:`_Submenu_dcn2t_556`,Parent:`_Parent_dcn2t_577`},Ie=`(min-width: 1312px)`;function Le({item:e,open:r,onOpenChange:i}){let a=e.groups.flatMap(e=>e.links),s=e.groups.flatMap(e=>e.cta==null?[]:[e.cta]);return(0,n.jsxs)(o.Collapsible.Root,{open:r,onOpenChange:i,children:[(0,n.jsxs)(o.Collapsible.Trigger,{className:X.Row,children:[e.label,(0,n.jsx)(t.ChevronDown,{"aria-hidden":!0,className:X.RowChevron})]}),(0,n.jsx)(o.Collapsible.Panel,{className:X.SubmenuPanel,children:(0,n.jsxs)(`div`,{className:X.Submenu,children:[(G(e)||a.length>0)&&(0,n.jsxs)(`ul`,{className:X.Links,children:[G(e)&&(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{className:X.Parent,href:e.href,render:e.render,children:e.label})}),a.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{href:e.href,render:e.render,children:e.label})},t))]}),s.length>0&&a.length>0&&(0,n.jsx)(`span`,{"aria-hidden":!0,className:X.Separator}),s.map((e,r)=>(0,n.jsxs)(U,{className:X.Cta,href:e.href,render:e.render,children:[(0,n.jsx)(`span`,{children:e.label}),(0,n.jsx)(t.ArrowUpRight,{"aria-hidden":!0,className:X.CtaArrow})]},r))]})})]})}function Re({items:e}){let t=q(),[i,a]=(0,r.useState)(null);return(0,n.jsx)(`nav`,{"aria-label":t.navigation,children:(0,n.jsx)(`ul`,{className:X.MenuList,children:e.map((e,t)=>(0,n.jsx)(`li`,{children:W(e)?(0,n.jsx)(Le,{item:e,open:i===t,onOpenChange:e=>a(e?t:null)}):(0,n.jsx)(U,{className:X.Row,href:e.href,render:e.render,children:e.label})},t))})})}function ze({items:e,home:a,account:o}){let c=q(),[l,u]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{if(!l)return;let e=window.matchMedia(Ie),t=()=>{e.matches&&u(!1)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[l]),(0,n.jsxs)(s.Drawer.Root,{open:l,onOpenChange:u,swipeDirection:`up`,children:[(0,n.jsx)(s.Drawer.Trigger,{className:X.MenuButton,"aria-label":c.menu,children:(0,n.jsx)(t.Menu,{"aria-hidden":!0})}),(0,n.jsxs)(s.Drawer.Portal,{children:[(0,n.jsx)(s.Drawer.Backdrop,{className:X.Backdrop}),(0,n.jsx)(s.Drawer.Viewport,{className:X.DrawerViewport,children:(0,n.jsxs)(s.Drawer.Popup,{className:X.MenuPopup,"aria-label":c.menu,onClick:e=>{e.target instanceof Element&&e.target.closest(`a`)&&u(!1)},children:[(0,n.jsxs)(`div`,{className:X.MenuTop,children:[(0,n.jsx)(`div`,{className:X.Bar,children:(0,n.jsxs)(`div`,{className:X.BarContent,children:[(0,n.jsx)(s.Drawer.Close,{className:X.MenuButton,"aria-label":c.closeMenu,children:(0,n.jsx)(t.X,{"aria-hidden":!0})}),a,o&&(0,n.jsx)(`div`,{className:X.Actions,children:o})]})}),(0,n.jsx)(i.BrandDivider,{size:`sm`})]}),(0,n.jsx)(s.Drawer.Content,{className:X.MenuContent,children:(0,n.jsx)(Re,{items:e})})]})})]})]})}function Be({group:e}){let i=(0,r.useId)(),o=e.title!=null,s=e.links.length>0;return(0,n.jsxs)(`div`,{className:X.Group,children:[o&&(0,n.jsx)(`p`,{id:i,className:X.GroupTitle,children:e.title}),s&&(0,n.jsx)(`ul`,{className:X.Links,"aria-labelledby":o?i:void 0,children:e.links.map((e,t)=>(0,n.jsx)(`li`,{children:(0,n.jsx)(R,{render:(0,n.jsx)(a.NavigationMenu.Link,{closeOnClick:!0,href:e.href,render:e.render}),children:e.label})},t))}),e.cta!=null&&s&&(0,n.jsx)(`span`,{"aria-hidden":!0,className:X.Separator}),e.cta!=null&&(0,n.jsxs)(a.NavigationMenu.Link,{closeOnClick:!0,className:X.Cta,href:e.cta.href,render:e.cta.render,children:[(0,n.jsx)(`span`,{children:e.cta.label}),(0,n.jsx)(t.ArrowUpRight,{"aria-hidden":!0,className:X.CtaArrow})]})]})}function Ve({item:e,value:r,end:i,onFocus:o}){return(0,n.jsx)(a.NavigationMenu.Item,{value:r,className:X.Item,"data-end":i||void 0,onFocus:()=>o(r),children:W(e)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.NavigationMenu.Trigger,{className:X.Pill,children:[e.label,(0,n.jsx)(a.NavigationMenu.Icon,{className:X.Chevron,children:(0,n.jsx)(t.ChevronDown,{})})]}),(0,n.jsx)(a.NavigationMenu.Content,{keepMounted:!0,className:X.Content,children:e.groups.map((e,t)=>(0,n.jsx)(Be,{group:e},t))})]}):(0,n.jsx)(a.NavigationMenu.Link,{closeOnClick:!0,className:X.Pill,href:e.href,render:e.render,children:e.label})})}function He({logo:e,homeRender:o,items:s,endItems:c=[],account:l,action:u,className:d,...f}){let p=q(),[m,h]=(0,r.useState)(null),g=e=>{m!=null&&m!==e&&h(null)},_=(0,n.jsx)(U,{href:o==null?`/`:void 0,render:o,className:X.Home,"aria-label":p.home,children:e}),v=l!=null&&(0,n.jsx)(U,{href:l.href,render:l.render,className:X.Account,"aria-label":l.label,children:l.icon??(0,n.jsx)(t.CircleUserRound,{"aria-hidden":!0})});return(0,n.jsxs)(`header`,{...f,className:[X.SiteHeader,d].filter(Boolean).join(` `),children:[(0,n.jsx)(`div`,{className:X.Bar,children:(0,n.jsxs)(`div`,{className:X.BarContent,children:[(0,n.jsx)(ze,{items:[...s,...c],home:_,account:v}),_,(0,n.jsxs)(a.NavigationMenu.Root,{className:X.Nav,"aria-label":p.navigation,closeDelay:150,value:m,onValueChange:h,children:[(0,n.jsx)(a.NavigationMenu.List,{className:X.List,children:[...s,...c].map((e,t)=>(0,n.jsx)(Ve,{item:e,value:`item-${t}`,end:c.length>0&&t===s.length,onFocus:g},t))}),(0,n.jsx)(a.NavigationMenu.Portal,{children:(0,n.jsx)(a.NavigationMenu.Positioner,{className:X.Positioner,side:`bottom`,align:`start`,sideOffset:8,collisionPadding:16,children:(0,n.jsx)(a.NavigationMenu.Popup,{className:X.Popup,render:(0,n.jsx)(`div`,{}),children:(0,n.jsx)(a.NavigationMenu.Viewport,{className:X.Viewport})})})})]}),(v||u!=null)&&(0,n.jsxs)(`div`,{className:X.Actions,children:[v,u!=null&&(0,n.jsx)(`div`,{className:X.Action,children:u})]})]})}),(0,n.jsx)(i.BrandDivider,{size:`sm`})]})}var Z={SplitContent:`_SplitContent_16c8f_11`,Grid:`_Grid_16c8f_19`,Text:`_Text_16c8f_26`,Title:`_Title_16c8f_33`,Description:`_Description_16c8f_42`,Media:`_Media_16c8f_58`,Image:`_Image_16c8f_67`,Actions:`_Actions_16c8f_75`,Price:`_Price_16c8f_82`};function Ue({title:t,titleRender:r,text:i,src:a,alt:o,imageRender:s,imagePosition:l=`end`,action:u,priceExample:d,render:p,ref:m,className:h,...g}){let _=(0,e.useRender)({render:r,defaultTagName:`h2`,props:{className:Z.Title,children:t}}),v=(0,e.useRender)({enabled:a!=null,render:s,defaultTagName:`img`,props:{src:a,alt:o,className:Z.Image}});return(0,e.useRender)({render:p,ref:m,defaultTagName:`div`,props:{...g,"data-image-position":l,"data-has-image":v!=null||void 0,className:f(Z.SplitContent,h)({}),children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:Z.Grid,children:[(0,n.jsxs)(`div`,{className:Z.Text,children:[_,i!=null&&(0,n.jsx)(c,{className:Z.Description,children:i})]}),v!=null&&(0,n.jsx)(`div`,{className:Z.Media,children:v})]}),(u!=null||d!=null)&&(0,n.jsxs)(`div`,{className:Z.Actions,children:[u,d!=null&&(0,n.jsx)(`p`,{className:Z.Price,children:d})]})]})}})}var Q={Stats:`_Stats_1o0ef_16`,List:`_List_1o0ef_25`,Bar:`_Bar_1o0ef_33`,Stat:`_Stat_1o0ef_16`,Number:`_Number_1o0ef_59`,Labels:`_Labels_1o0ef_69`,Title:`_Title_1o0ef_77`,Text:`_Text_1o0ef_85`,Actions:`_Actions_1o0ef_95`,Price:`_Price_1o0ef_103`};function We({header:t,items:i,titleRender:a,action:o,priceExample:s,render:c,ref:l,className:u,...d}){return(0,e.useRender)({render:c,ref:l,defaultTagName:`div`,props:{...d,className:f(Q.Stats,u)({}),children:(0,n.jsxs)(n.Fragment,{children:[t,(0,n.jsxs)(`ul`,{className:Q.List,children:[i.map((e,t)=>(0,n.jsxs)(r.Fragment,{children:[(0,n.jsx)(`li`,{"aria-hidden":!0,className:Q.Bar}),(0,n.jsx)(Ge,{...e,titleRender:a})]},t)),(0,n.jsx)(`li`,{"aria-hidden":!0,className:Q.Bar})]}),(o!=null||s!=null)&&(0,n.jsxs)(`div`,{className:Q.Actions,children:[o,s!=null&&(0,n.jsx)(`p`,{className:Q.Price,children:s})]})]})}})}function Ge({number:t,title:r,text:i,titleRender:a}){let o=(0,e.useRender)({enabled:r!=null,render:a,defaultTagName:`h3`,props:{className:Q.Title,children:r}});return(0,n.jsxs)(`li`,{className:Q.Stat,children:[(0,n.jsx)(`p`,{className:Q.Number,children:t}),(o!=null||i!=null)&&(0,n.jsxs)(`div`,{className:Q.Labels,children:[o,i!=null&&(0,n.jsx)(`p`,{className:Q.Text,children:i})]})]})}var $={Testimonials:`_Testimonials_13hpt_11`,Featured:`_Featured_13hpt_18`,Video:`_Video_13hpt_31`,Quote:`_Quote_13hpt_36`,Blockquote:`_Blockquote_13hpt_44`,Person:`_Person_13hpt_72`,Name:`_Name_13hpt_81`,Meta:`_Meta_13hpt_88`,Still:`_Still_13hpt_124`,Play:`_Play_13hpt_133`,DialogViewport:`_DialogViewport_13hpt_143`,DialogPopup:`_DialogPopup_13hpt_143`,DialogVideo:`_DialogVideo_13hpt_149`,Close:`_Close_13hpt_157`},Ke=(0,i.createTranslation)({reviews:{no:`Kundeomtaler`,se:`Kundomdömen`,fi:`Asiakasarviot`,es:`Opiniones de clientes`},play:{no:`Spill av video`,se:`Spela upp video`,fi:`Toista video`,es:`Reproducir vídeo`},video:{no:`Video fra kunde`,se:`Video från kund`,fi:`Asiakkaan video`,es:`Vídeo de un cliente`},close:{no:`Lukk video`,se:`Stäng video`,fi:`Sulje video`,es:`Cerrar vídeo`},captionsLanguage:{no:`nb`,se:`sv`,fi:`fi`,es:`es`},captionsLabel:{no:`Norsk`,se:`Svenska`,fi:`Suomi`,es:`Español`}});function qe({title:a,titleRender:o,subtitle:s,quote:c,name:l,meta:u,rating:d,videoSrc:p,videoPoster:m,videoCaptions:h,videoPosition:g=`start`,render:_,ref:v,className:y,children:b,...x}){let S=Ke(),C=(0,r.useId)(),w=c!=null||l!=null,ee=r.Children.toArray(b).length>0;return(0,e.useRender)({render:_,ref:v,defaultTagName:`div`,props:{...x,className:f($.Testimonials,y)({}),children:(0,n.jsxs)(n.Fragment,{children:[a!=null&&(0,n.jsx)(Ce,{title:a,titleRender:(0,r.cloneElement)(o??(0,n.jsx)(`h2`,{}),{id:C}),subtitle:s}),(w||p!=null)&&(0,n.jsxs)(`div`,{className:$.Featured,"data-video":p!=null||void 0,"data-video-position":g,children:[w&&(0,n.jsxs)(`figure`,{className:$.Quote,children:[d!=null&&(0,n.jsx)(i.StarRating,{rating:d}),c!=null&&(0,n.jsx)(`blockquote`,{className:$.Blockquote,children:typeof c==`string`||typeof c==`number`?(0,n.jsx)(`p`,{children:c}):c}),(l!=null||u!=null)&&(0,n.jsxs)(`figcaption`,{className:$.Person,children:[l!=null&&(0,n.jsx)(`span`,{className:$.Name,children:l}),u!=null&&(0,n.jsx)(`span`,{className:$.Meta,children:u})]})]}),p!=null&&(0,n.jsxs)(`div`,{className:$.Video,children:[m==null?(0,n.jsx)(`video`,{className:$.Still,src:`${p}#t=0.1`,preload:`metadata`,muted:!0,playsInline:!0,"aria-hidden":!0,tabIndex:-1}):(0,n.jsx)(`img`,{className:$.Still,src:m,alt:``}),(0,n.jsxs)(i.Dialog.Root,{children:[(0,n.jsx)(i.Dialog.Trigger,{render:(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":S.play,className:$.Play,children:(0,n.jsx)(t.Play,{"aria-hidden":!0})})}),(0,n.jsxs)(i.Dialog.Portal,{children:[(0,n.jsx)(i.Dialog.Backdrop,{}),(0,n.jsx)(i.Dialog.Viewport,{className:$.DialogViewport,children:(0,n.jsxs)(i.Dialog.Popup,{size:`lg`,"aria-label":S.video,className:$.DialogPopup,children:[(0,n.jsx)(i.Dialog.Close,{render:(0,n.jsx)(i.IconButton,{variant:`elevated`,color:`secondary`,"aria-label":S.close,className:$.Close,children:(0,n.jsx)(t.X,{"aria-hidden":!0})})}),(0,n.jsx)(`video`,{className:$.DialogVideo,src:p,controls:!0,autoPlay:!0,playsInline:!0,children:h!=null&&(0,n.jsx)(`track`,{kind:`captions`,src:h,srcLang:S.captionsLanguage,label:S.captionsLabel,default:!0})})]})})]})]})]})]}),ee&&(0,n.jsx)(T,{...a==null?{"aria-label":S.reviews}:{"aria-labelledby":C},children:b})]})}})}exports.AlertBanner=d,exports.BrandLetters=_,exports.Calculator=y,exports.Carousel=T,exports.CtaBanner=re,exports.ExpandingCards=ue,exports.ExpandingCardsItem=de,exports.Hero=fe,exports.HeroServiceGrid=pe,exports.NavigationGrid=me,exports.PartnerList=ge,exports.PaymentFeature=_e,exports.PromoGrid=ye,exports.Section=Se,exports.SectionHeader=Ce,exports.ServiceCardGrid=we,exports.SideNav=Ee,exports.SiteFooter=Fe,exports.SiteHeader=He,exports.SplitContent=Ue,exports.Stats=We,exports.Testimonials=qe;
|
|
2
2
|
//# sourceMappingURL=website.cjs.map
|