@npm_leadtech/legal-contracts-ui 0.124.9 → 0.125.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/components/AboutUsTemplate.d.ts +1 -0
  2. package/dist/components/AiLegalDocumentReviewerTemplate.d.ts +2 -0
  3. package/dist/components/AllDocumentsTemplate.d.ts +0 -1
  4. package/dist/components/Button.d.ts +2 -1
  5. package/dist/components/Button.js +23 -10
  6. package/dist/components/Checkbox.d.ts +1 -0
  7. package/dist/components/Checkbox.js +27 -15
  8. package/dist/components/ContactFormSection.d.ts +2 -0
  9. package/dist/components/ContactUsSection.d.ts +1 -0
  10. package/dist/components/ContactUsSection.js +6 -6
  11. package/dist/components/ContactUsTemplate.d.ts +2 -0
  12. package/dist/components/ContentItem.d.ts +0 -1
  13. package/dist/components/ConversionSection.d.ts +2 -0
  14. package/dist/components/ConversionSection.js +4 -4
  15. package/dist/components/CookiesBar.d.ts +1 -0
  16. package/dist/components/ElectronicSignatureTemplate.d.ts +1 -0
  17. package/dist/components/Footer.d.ts +1 -0
  18. package/dist/components/Footer.js +3 -3
  19. package/dist/components/Header.d.ts +1 -0
  20. package/dist/components/Hero2Section.d.ts +1 -0
  21. package/dist/components/ImageWithPreview.d.ts +0 -1
  22. package/dist/components/ImageWithPreview.js +9 -11
  23. package/dist/components/Input.d.ts +1 -0
  24. package/dist/components/Input.js +32 -30
  25. package/dist/components/LanguageSelector.js +17 -14
  26. package/dist/components/MobileMenu.d.ts +1 -0
  27. package/dist/components/MobileMenu.js +5 -4
  28. package/dist/components/PhoneButton.d.ts +2 -1
  29. package/dist/components/PhoneButton.js +5 -4
  30. package/dist/components/Preform.d.ts +2 -0
  31. package/dist/components/Preform.js +7 -6
  32. package/dist/components/PreformMobile.d.ts +2 -0
  33. package/dist/components/PreformOption.d.ts +1 -0
  34. package/dist/components/PreformOption.js +3 -2
  35. package/dist/components/PreviewDownload.d.ts +0 -2
  36. package/dist/components/PreviewDownload.js +19 -22
  37. package/dist/components/PreviewSection.d.ts +0 -1
  38. package/dist/components/PreviewSection.js +11 -24
  39. package/dist/components/ProductTemplate.d.ts +2 -3
  40. package/dist/components/Select.d.ts +1 -0
  41. package/dist/components/Select.js +22 -20
  42. package/dist/components/Textarea.d.ts +1 -0
  43. package/dist/components/Textarea.js +18 -16
  44. package/dist/components/UploadZone.d.ts +1 -0
  45. package/dist/components/UploadZone.js +12 -11
  46. package/dist/components/index.d.ts +1340 -0
  47. package/package.json +1 -1
@@ -31,6 +31,7 @@ export interface ContactUsSectionProps {
31
31
  icon: ReactNode;
32
32
  helper?: string;
33
33
  url?: string;
34
+ dataQa?: string;
34
35
  }>;
35
36
  }
36
37
 
@@ -32,6 +32,7 @@ export interface ConversionSectionProps {
32
32
  icon: ReactNode;
33
33
  title: string;
34
34
  uploadZone: UploadZoneProps;
35
+ dataQa?: string;
35
36
  }
36
37
 
37
38
  export interface FaqItemProps {
@@ -136,5 +137,6 @@ export interface UploadZoneProps {
136
137
  containerClassName?: string;
137
138
  onAddDocument?: () => void;
138
139
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
140
+ dataQa?: string;
139
141
  }
140
142
 
@@ -96,7 +96,6 @@ export interface FaqSectionProps {
96
96
  export interface ImageWithPreviewProps {
97
97
  small: ReactNode;
98
98
  large: ReactNode;
99
- onZoomClick?: () => void;
100
99
  }
101
100
 
102
101
  export interface JumboCardProps {
@@ -2,13 +2,14 @@ import { ComponentPropsWithRef } from 'react';
2
2
  import { JSX } from 'react/jsx-runtime';
3
3
  import { ReactNode } from 'react';
4
4
 
5
- export declare const Button: ({ children, type, size, variant, iconPosition, className, disabled, ref, ...props }: ButtonProps) => JSX.Element;
5
+ export declare const Button: ({ children, type, size, variant, iconPosition, className, disabled, ref, dataQa, ...props }: ButtonProps) => JSX.Element;
6
6
 
7
7
  export declare interface ButtonProps extends Omit<ComponentPropsWithRef<'button'>, 'children'> {
8
8
  children: ReactNode;
9
9
  size?: ButtonSize;
10
10
  variant?: ResponsiveButtonVariant;
11
11
  iconPosition?: IconPosition;
12
+ dataQa?: string;
12
13
  }
13
14
 
14
15
  export type ButtonSize = 'small' | 'default' | 'large';
@@ -1,20 +1,33 @@
1
- import { jsx as l } from "react/jsx-runtime";
2
- import { getButtonClasses as p } from "./Button.utils.js";
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { getButtonClasses as c } from "./Button.utils.js";
3
3
  import "react";
4
- const x = ({
4
+ const B = ({
5
5
  children: o,
6
6
  type: r = "button",
7
- size: s = "default",
8
- variant: e = "primary-green",
9
- iconPosition: a = "left",
7
+ size: a = "default",
8
+ variant: s = "primary-green",
9
+ iconPosition: e = "left",
10
10
  className: n,
11
11
  disabled: t = !1,
12
12
  ref: m,
13
- ...u
13
+ dataQa: u,
14
+ ...f
14
15
  }) => {
15
- const f = p(s, e, a, t, n);
16
- return /* @__PURE__ */ l("button", { ref: m, type: r, disabled: t, "aria-disabled": t, className: f, ...u, children: o });
16
+ const l = c(a, s, e, t, n);
17
+ return /* @__PURE__ */ p(
18
+ "button",
19
+ {
20
+ "data-qa": u,
21
+ ref: m,
22
+ type: r,
23
+ disabled: t,
24
+ "aria-disabled": t,
25
+ className: l,
26
+ ...f,
27
+ children: o
28
+ }
29
+ );
17
30
  };
18
31
  export {
19
- x as Button
32
+ B as Button
20
33
  };
@@ -4,6 +4,7 @@ import { ReactNode } from 'react';
4
4
  export declare const Checkbox: FC<CheckboxProps>;
5
5
 
6
6
  export declare interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {
7
+ dataQa?: string;
7
8
  id: string;
8
9
  name: string;
9
10
  required?: boolean;
@@ -1,31 +1,43 @@
1
- import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
- import m from "clsx";
3
- import { CheckIcon as c } from "./CheckIcon.js";
4
- const u = ({
5
- id: o,
6
- name: s,
7
- required: i = !1,
1
+ import { jsxs as m, jsx as r } from "react/jsx-runtime";
2
+ import c from "clsx";
3
+ import { CheckIcon as p } from "./CheckIcon.js";
4
+ const d = ({
5
+ dataQa: s,
6
+ id: t,
7
+ name: i,
8
+ required: a = !1,
8
9
  children: l,
9
10
  checked: e,
10
- error: t = !1,
11
+ error: o = !1,
11
12
  ...n
12
- }) => /* @__PURE__ */ a("label", { htmlFor: o, className: "text-medium flex cursor-pointer items-center gap-2 text-neutral-800 select-none", children: [
13
- /* @__PURE__ */ r("input", { id: o, name: s, type: "checkbox", required: i, className: "peer sr-only", ...n }),
13
+ }) => /* @__PURE__ */ m("label", { htmlFor: t, className: "text-medium flex cursor-pointer items-center gap-2 text-neutral-800 select-none", children: [
14
+ /* @__PURE__ */ r(
15
+ "input",
16
+ {
17
+ "data-qa": s,
18
+ id: t,
19
+ name: i,
20
+ type: "checkbox",
21
+ required: a,
22
+ className: "peer sr-only",
23
+ ...n
24
+ }
25
+ ),
14
26
  /* @__PURE__ */ r(
15
27
  "div",
16
28
  {
17
- className: m(
29
+ className: c(
18
30
  "flex h-5.5 w-5.5 items-center justify-center rounded transition-colors",
19
31
  "peer-focus-visible:ring-primary-500 peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2",
20
- !t && !e && "hover:bg-primary-200 border border-neutral-800 bg-white",
32
+ !o && !e && "hover:bg-primary-200 border border-neutral-800 bg-white",
21
33
  e && "border-primary-500 bg-primary-200 border-2",
22
- t && "border-error-500 bg-error-20 border"
34
+ o && "border-error-500 bg-error-20 border"
23
35
  ),
24
- children: e && /* @__PURE__ */ r(c, {})
36
+ children: e && /* @__PURE__ */ r(p, {})
25
37
  }
26
38
  ),
27
39
  /* @__PURE__ */ r("span", { className: "leading-tight text-neutral-800", children: l })
28
40
  ] });
29
41
  export {
30
- u as Checkbox
42
+ d as Checkbox
31
43
  };
@@ -9,6 +9,7 @@ export interface ButtonProps extends Omit<ComponentPropsWithRef<'button'>, 'chil
9
9
  size?: ButtonSize;
10
10
  variant?: ResponsiveButtonVariant;
11
11
  iconPosition?: IconPosition;
12
+ dataQa?: string;
12
13
  }
13
14
 
14
15
  export type ButtonSize = 'small' | 'default' | 'large';
@@ -27,6 +28,7 @@ export interface ContactFormFeedbackProps {
27
28
  }
28
29
 
29
30
  export declare interface ContactFormFieldProps {
31
+ dataQa: string;
30
32
  label: string;
31
33
  id: string;
32
34
  name: string;
@@ -11,6 +11,7 @@ export declare interface ContactUsSectionProps {
11
11
  icon: ReactNode;
12
12
  helper?: string;
13
13
  url?: string;
14
+ dataQa?: string;
14
15
  }>;
15
16
  }
16
17
 
@@ -1,17 +1,17 @@
1
1
  import { jsx as l, jsxs as r } from "react/jsx-runtime";
2
- import a from "clsx";
2
+ import t from "clsx";
3
3
  import { SectionHeading as c } from "./SectionHeading.js";
4
- const d = ({ header: t, contactOptions: s }) => s.length === 0 ? null : /* @__PURE__ */ l("section", { className: "bg-neutral-25 px-4 pt-16 pb-20", children: /* @__PURE__ */ r("div", { className: "mx-auto max-w-6xl space-y-10", children: [
5
- /* @__PURE__ */ l(c, { ...t, className: "px-6" }),
6
- /* @__PURE__ */ l("div", { className: "flex flex-col items-center gap-6 sm:flex-row sm:items-start sm:justify-center", children: s.map((e) => /* @__PURE__ */ r(
4
+ const d = ({ header: s, contactOptions: a }) => a.length === 0 ? null : /* @__PURE__ */ l("section", { className: "bg-neutral-25 px-4 pt-16 pb-20", children: /* @__PURE__ */ r("div", { className: "mx-auto max-w-6xl space-y-10", children: [
5
+ /* @__PURE__ */ l(c, { ...s, className: "px-6" }),
6
+ /* @__PURE__ */ l("div", { className: "flex flex-col items-center gap-6 sm:flex-row sm:items-start sm:justify-center", children: a.map((e) => /* @__PURE__ */ r(
7
7
  "article",
8
8
  {
9
- className: a(
9
+ className: t(
10
10
  "relative flex h-36 w-52 flex-col items-center justify-center gap-4 rounded bg-white text-center shadow-sm",
11
11
  e.url && 'cursor-pointer [&_a]:before:absolute [&_a]:before:inset-0 [&_a]:before:content-[""]'
12
12
  ),
13
13
  children: [
14
- e.url && /* @__PURE__ */ l("a", { href: e.url, children: /* @__PURE__ */ l("span", { className: "sr-only", children: e.title }) }),
14
+ e.url && /* @__PURE__ */ l("a", { "data-qa": e.dataQa, href: e.url, children: /* @__PURE__ */ l("span", { className: "sr-only", children: e.title }) }),
15
15
  /* @__PURE__ */ l("div", { className: "bg-primary-50 rounded-full p-3", children: e.icon }),
16
16
  /* @__PURE__ */ r("div", { className: "flex flex-col items-center justify-center", children: [
17
17
  /* @__PURE__ */ l("p", { className: "text-neutral-800", children: e.title }),
@@ -9,6 +9,7 @@ export interface ButtonProps extends Omit<ComponentPropsWithRef<'button'>, 'chil
9
9
  size?: ButtonSize;
10
10
  variant?: ResponsiveButtonVariant;
11
11
  iconPosition?: IconPosition;
12
+ dataQa?: string;
12
13
  }
13
14
 
14
15
  export type ButtonSize = 'small' | 'default' | 'large';
@@ -27,6 +28,7 @@ export interface ContactFormFeedbackProps {
27
28
  }
28
29
 
29
30
  export interface ContactFormFieldProps {
31
+ dataQa: string;
30
32
  label: string;
31
33
  id: string;
32
34
  name: string;
@@ -38,7 +38,6 @@ export interface DefaultSubtypeDocumentProps extends BaseSubtypeDocumentProps {
38
38
  export interface ImageWithPreviewProps {
39
39
  small: ReactNode;
40
40
  large: ReactNode;
41
- onZoomClick?: () => void;
42
41
  }
43
42
 
44
43
  export interface LinkedProductProps {
@@ -7,6 +7,7 @@ export declare interface ConversionSectionProps {
7
7
  icon: ReactNode;
8
8
  title: string;
9
9
  uploadZone: UploadZoneProps;
10
+ dataQa?: string;
10
11
  }
11
12
 
12
13
  export interface UploadZoneProps {
@@ -17,5 +18,6 @@ export interface UploadZoneProps {
17
18
  containerClassName?: string;
18
19
  onAddDocument?: () => void;
19
20
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
21
+ dataQa?: string;
20
22
  }
21
23
 
@@ -1,12 +1,12 @@
1
1
  import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
- import { UploadZone as s } from "./UploadZone.js";
3
- const n = ({ icon: a, title: t, uploadZone: r }) => /* @__PURE__ */ e("section", { className: "bg-white px-6 py-8 xl:px-0", children: /* @__PURE__ */ l("div", { className: "bg-ratafia mx-auto flex w-full max-w-300 shrink flex-col gap-6 rounded-2xl p-6 md:flex-row md:items-center md:gap-10 md:p-8 lg:pe-10 lg:pl-16 xl:items-start xl:gap-20", children: [
2
+ import { UploadZone as m } from "./UploadZone.js";
3
+ const x = ({ icon: a, title: t, uploadZone: r, dataQa: s }) => /* @__PURE__ */ e("section", { className: "bg-white px-6 py-8 xl:px-0", children: /* @__PURE__ */ l("div", { className: "bg-ratafia mx-auto flex w-full max-w-300 shrink flex-col gap-6 rounded-2xl p-6 md:flex-row md:items-center md:gap-10 md:p-8 lg:pe-10 lg:pl-16 xl:items-start xl:gap-20", children: [
4
4
  /* @__PURE__ */ l("div", { className: "flex flex-col gap-4", children: [
5
5
  /* @__PURE__ */ e("span", { className: "xl:pt-12", children: a }),
6
6
  /* @__PURE__ */ e("h4", { className: "text-super-large md:text-extra-large font-bold text-white", children: t })
7
7
  ] }),
8
- /* @__PURE__ */ e(s, { ...r, containerClassName: "md:min-w-77 lg:min-w-115" })
8
+ /* @__PURE__ */ e(m, { dataQa: s, ...r, containerClassName: "md:min-w-77 lg:min-w-115" })
9
9
  ] }) });
10
10
  export {
11
- n as ConversionSection
11
+ x as ConversionSection
12
12
  };
@@ -7,6 +7,7 @@ export interface ButtonProps extends Omit<ComponentPropsWithRef<'button'>, 'chil
7
7
  size?: ButtonSize;
8
8
  variant?: ResponsiveButtonVariant;
9
9
  iconPosition?: IconPosition;
10
+ dataQa?: string;
10
11
  }
11
12
 
12
13
  export type ButtonSize = 'small' | 'default' | 'large';
@@ -129,5 +129,6 @@ export interface UploadZoneProps {
129
129
  containerClassName?: string;
130
130
  onAddDocument?: () => void;
131
131
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
132
+ dataQa?: string;
132
133
  }
133
134
 
@@ -20,6 +20,7 @@ export declare interface FooterProps {
20
20
  phoneNumber: string;
21
21
  contactHoursText: string;
22
22
  contactHours: string;
23
+ dataQa?: string;
23
24
  };
24
25
  logoGray?: ReactNode;
25
26
  socialLinks?: ReactNode[];
@@ -1,7 +1,7 @@
1
1
  import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { PhoneButton as o } from "./PhoneButton.js";
4
- import { FooterNav as f } from "./FooterNav.js";
4
+ import { FooterNav as h } from "./FooterNav.js";
5
5
  const g = ({
6
6
  nav: r,
7
7
  contactInfo: t,
@@ -14,13 +14,13 @@ const g = ({
14
14
  languageSelector: s
15
15
  }) => /* @__PURE__ */ l("footer", { className: "text-neutral-25 max-w-full overflow-x-hidden", children: [
16
16
  /* @__PURE__ */ e("div", { className: "bg-primary-900", children: /* @__PURE__ */ l("div", { className: "mx-auto flex w-full max-w-300 flex-col items-start gap-8 px-6 py-10 md:grid md:grid-cols-3 lg:flex lg:flex-row lg:justify-between", children: [
17
- r.map((a) => /* @__PURE__ */ e(f, { ...a }, a.title)),
17
+ r.map((a) => /* @__PURE__ */ e(h, { ...a }, a.title)),
18
18
  /* @__PURE__ */ l("div", { className: "flex flex-col gap-6 max-sm:w-full md:contents lg:flex", children: [
19
19
  /* @__PURE__ */ l("div", { className: "", children: [
20
20
  /* @__PURE__ */ e("div", { className: "mb-8 xl:hidden", children: !!s && /* @__PURE__ */ e("div", { className: "language-selector-mobile-container", children: s }) }),
21
21
  /* @__PURE__ */ l("div", { children: [
22
22
  /* @__PURE__ */ e("p", { className: "text-small hidden font-bold text-white sm:block", children: t.phoneNumber }),
23
- /* @__PURE__ */ e("div", { className: "mb-2 w-full text-center sm:hidden", children: /* @__PURE__ */ e(o, { phoneNumber: t.phoneNumber }) }),
23
+ /* @__PURE__ */ e("div", { className: "mb-2 w-full text-center sm:hidden", children: /* @__PURE__ */ e(o, { dataQa: t.dataQa, phoneNumber: t.phoneNumber }) }),
24
24
  /* @__PURE__ */ l("p", { className: "text-neutral-25 text-medium md:text-small text-center md:text-left", children: [
25
25
  t.contactHoursText,
26
26
  " ",
@@ -34,6 +34,7 @@ export interface MobileContactInfo {
34
34
  phoneNumber: string;
35
35
  contactHoursLabel?: string;
36
36
  contactHours?: string;
37
+ dataQa?: string;
37
38
  }
38
39
 
39
40
  export interface MobileMenuProps {
@@ -27,5 +27,6 @@ export interface UploadZoneProps {
27
27
  containerClassName?: string;
28
28
  onAddDocument?: () => void;
29
29
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
30
+ dataQa?: string;
30
31
  }
31
32
 
@@ -6,6 +6,5 @@ export declare const ImageWithPreview: FC<ImageWithPreviewProps>;
6
6
  export declare interface ImageWithPreviewProps {
7
7
  small: ReactNode;
8
8
  large: ReactNode;
9
- onZoomClick?: () => void;
10
9
  }
11
10
 
@@ -1,17 +1,15 @@
1
1
  "use client";
2
- import { jsxs as a, jsx as e } from "react/jsx-runtime";
3
- import { useState as n } from "react";
4
- import { ZoomIcon as c } from "./ZoomIcon.js";
2
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
3
+ import { useState as s } from "react";
4
+ import { ZoomIcon as a } from "./ZoomIcon.js";
5
5
  import { Modal as m } from "./Modal.js";
6
- const b = ({ small: l, large: s, onZoomClick: r }) => {
7
- const [t, o] = n(!1);
8
- return /* @__PURE__ */ a("div", { className: "relative aspect-3/4 w-75 self-center overflow-hidden border border-neutral-200", children: [
9
- /* @__PURE__ */ e("div", { className: "h-full w-full [&_img]:h-full [&_img]:w-full [&_img]:object-cover", children: l }),
10
- /* @__PURE__ */ e("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ e(m, { trigger: /* @__PURE__ */ e(c, { className: "bg-primary-700 size-8 rounded p-2 opacity-80 hover:opacity-100" }), isOpen: t, setIsOpen: (i) => {
11
- o(i), i && r && r();
12
- }, children: s }) })
6
+ const u = ({ small: r, large: i }) => {
7
+ const [o, t] = s(!1);
8
+ return /* @__PURE__ */ l("div", { className: "relative aspect-3/4 w-75 self-center overflow-hidden border border-neutral-200", children: [
9
+ /* @__PURE__ */ e("div", { className: "h-full w-full [&_img]:h-full [&_img]:w-full [&_img]:object-cover", children: r }),
10
+ /* @__PURE__ */ e("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ e(m, { trigger: /* @__PURE__ */ e(a, { className: "bg-primary-700 size-8 rounded p-2 opacity-80 hover:opacity-100" }), isOpen: o, setIsOpen: t, children: i }) })
13
11
  ] });
14
12
  };
15
13
  export {
16
- b as ImageWithPreview
14
+ u as ImageWithPreview
17
15
  };
@@ -4,6 +4,7 @@ import { HTMLInputTypeAttribute } from 'react';
4
4
  export declare const Input: FC<InputProps>;
5
5
 
6
6
  export declare interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
7
+ dataQa?: string;
7
8
  label: string;
8
9
  id: string;
9
10
  name: string;
@@ -1,28 +1,29 @@
1
1
  import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
2
  import { useState as p } from "react";
3
3
  import u from "clsx";
4
- import { QuestionOutlineIcon as N } from "./QuestionOutlineIcon.js";
5
- import { CloseIcon as y } from "./CloseIcon.js";
6
- import { InfoIcon as I } from "./InfoIcon.js";
7
- const $ = ({
8
- label: m,
4
+ import { QuestionOutlineIcon as y } from "./QuestionOutlineIcon.js";
5
+ import { CloseIcon as I } from "./CloseIcon.js";
6
+ import { InfoIcon as C } from "./InfoIcon.js";
7
+ const z = ({
8
+ dataQa: m,
9
+ label: d,
9
10
  id: l,
10
- name: d,
11
- type: f = "text",
12
- placeholder: h,
11
+ name: f,
12
+ type: h = "text",
13
+ placeholder: x,
13
14
  required: o = !1,
14
15
  tooltip: i,
15
- onInputChange: x,
16
- containerClassName: b = "",
16
+ onInputChange: b,
17
+ containerClassName: g = "",
17
18
  error: s = !1,
18
- errorMessage: g,
19
- ...v
19
+ errorMessage: v,
20
+ ...w
20
21
  }) => {
21
- const [n, c] = p(!1), [w, r] = p(!1);
22
- return /* @__PURE__ */ t("div", { className: `flex flex-col gap-2 ${b}`, children: [
22
+ const [n, c] = p(!1), [N, a] = p(!1);
23
+ return /* @__PURE__ */ t("div", { className: `flex flex-col gap-2 ${g}`, children: [
23
24
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
24
25
  /* @__PURE__ */ t("label", { htmlFor: l, className: "font-bold text-neutral-800", children: [
25
- m,
26
+ d,
26
27
  " ",
27
28
  o && /* @__PURE__ */ e("span", { className: "text-neutral-800", children: "*" })
28
29
  ] }),
@@ -31,7 +32,7 @@ const $ = ({
31
32
  {
32
33
  className: "group relative inline-flex",
33
34
  onMouseLeave: () => {
34
- r(!1);
35
+ a(!1);
35
36
  },
36
37
  children: [
37
38
  /* @__PURE__ */ e(
@@ -41,9 +42,9 @@ const $ = ({
41
42
  type: "button",
42
43
  "aria-expanded": n,
43
44
  onClick: () => {
44
- r(!1), c((a) => !a);
45
+ a(!1), c((r) => !r);
45
46
  },
46
- children: /* @__PURE__ */ e(N, { "aria-hidden": "true" })
47
+ children: /* @__PURE__ */ e(y, { "aria-hidden": "true" })
47
48
  }
48
49
  ),
49
50
  /* @__PURE__ */ t(
@@ -52,7 +53,7 @@ const $ = ({
52
53
  className: u(
53
54
  "invisible absolute top-6 -left-21 z-10 w-max max-w-60 rounded bg-neutral-800 p-2 transition-opacity lg:max-w-80 xl:-left-15 xl:max-w-112",
54
55
  "opacity-0",
55
- !w && "group-focus-within:visible group-focus-within:opacity-100 group-hover:visible group-hover:opacity-100",
56
+ !N && "group-focus-within:visible group-focus-within:opacity-100 group-hover:visible group-hover:opacity-100",
56
57
  n && "visible opacity-100"
57
58
  ),
58
59
  role: "tooltip",
@@ -72,9 +73,9 @@ const $ = ({
72
73
  type: "button",
73
74
  className: "cursor-pointer p-0",
74
75
  onClick: () => {
75
- r(!0), c(!1);
76
+ a(!0), c(!1);
76
77
  },
77
- children: /* @__PURE__ */ e(y, { width: 20, height: 20, fill: "white" })
78
+ children: /* @__PURE__ */ e(I, { width: 20, height: 20, fill: "white" })
78
79
  }
79
80
  )
80
81
  ] })
@@ -88,28 +89,29 @@ const $ = ({
88
89
  /* @__PURE__ */ e(
89
90
  "input",
90
91
  {
92
+ "data-qa": m,
91
93
  id: l,
92
- name: d,
93
- type: f,
94
- placeholder: h,
94
+ name: f,
95
+ type: h,
96
+ placeholder: x,
95
97
  required: o,
96
98
  className: u(
97
99
  "text-small focus-visible:outline-primary-500 w-full rounded border p-3 text-neutral-800 placeholder:text-neutral-600 focus-visible:outline-2",
98
100
  s ? "border-error-500 bg-error-25" : "bg-neutral-25 border-neutral-400"
99
101
  ),
100
- onChange: (a) => {
101
- x?.(a.target.value);
102
+ onChange: (r) => {
103
+ b?.(r.target.value);
102
104
  },
103
- ...v
105
+ ...w
104
106
  }
105
107
  ),
106
108
  s && /* @__PURE__ */ t("p", { id: `${l}-error-message`, className: "text-small text-error-500 flex items-center gap-1", children: [
107
- /* @__PURE__ */ e(I, { width: 20, height: 20, fill: "var(--color-error-500)", "aria-hidden": "true" }),
109
+ /* @__PURE__ */ e(C, { width: 20, height: 20, fill: "var(--color-error-500)", "aria-hidden": "true" }),
108
110
  " ",
109
- g
111
+ v
110
112
  ] })
111
113
  ] });
112
114
  };
113
115
  export {
114
- $ as Input
116
+ z as Input
115
117
  };
@@ -1,19 +1,20 @@
1
- import { jsxs as s, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
2
  import { ChevronDownIcon as o } from "./ChevronDownIcon.js";
3
3
  const f = ({
4
4
  currentLanguage: l,
5
- availableLanguages: i,
6
- variant: a = "default",
7
- isOpen: r = !1,
5
+ availableLanguages: r,
6
+ variant: i = "default",
7
+ isOpen: s = !1,
8
8
  onToggle: c
9
- }) => a === "compact" ? /* @__PURE__ */ s("div", { className: "group relative inline-flex cursor-pointer flex-col py-2", children: [
10
- /* @__PURE__ */ s("div", { className: "flex items-center gap-2 px-2 py-1", children: [
9
+ }) => i === "compact" ? /* @__PURE__ */ a("div", { "data-qa": "language-selector", className: "group relative inline-flex cursor-pointer flex-col py-2", children: [
10
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 px-2 py-1", children: [
11
11
  /* @__PURE__ */ e("span", { className: "flex items-center justify-center", children: l.flag }),
12
12
  /* @__PURE__ */ e("span", { className: "text-medium text-gray-600", children: l.name })
13
13
  ] }),
14
- /* @__PURE__ */ e("div", { className: "pointer-events-none absolute top-full z-10 flex flex-col gap-2 rounded-lg bg-white p-2 opacity-0 shadow-md transition-opacity duration-200 group-hover:pointer-events-auto group-hover:opacity-100", children: i.map((t) => /* @__PURE__ */ s(
14
+ /* @__PURE__ */ e("div", { className: "pointer-events-none absolute top-full z-10 flex flex-col gap-2 rounded-lg bg-white p-2 opacity-0 shadow-md transition-opacity duration-200 group-hover:pointer-events-auto group-hover:opacity-100", children: r.map((t) => /* @__PURE__ */ a(
15
15
  "a",
16
16
  {
17
+ "data-qa": t.code,
17
18
  href: t.url,
18
19
  className: "hover:bg-primary-100 flex items-center gap-2 rounded-sm bg-white px-2 py-1 transition-colors",
19
20
  children: [
@@ -23,28 +24,30 @@ const f = ({
23
24
  },
24
25
  t.code
25
26
  )) })
26
- ] }) : /* @__PURE__ */ s("div", { className: "relative flex w-full flex-col items-stretch", children: [
27
- /* @__PURE__ */ s(
27
+ ] }) : /* @__PURE__ */ a("div", { className: "relative flex w-full flex-col items-stretch", children: [
28
+ /* @__PURE__ */ a(
28
29
  "button",
29
30
  {
30
- className: `bg-primary-800 flex w-full cursor-pointer items-center justify-between px-4 py-2 ${r ? "bg-gray-50" : ""}`,
31
+ "data-qa": "language-selector-mobile",
32
+ className: `bg-primary-800 flex w-full cursor-pointer items-center justify-between px-4 py-2 ${s ? "bg-gray-50" : ""}`,
31
33
  onClick: c,
32
34
  children: [
33
- /* @__PURE__ */ s("div", { className: "flex items-center gap-2 px-2 text-gray-800", children: [
35
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 px-2 text-gray-800", children: [
34
36
  /* @__PURE__ */ e("span", { className: "flex items-center justify-center", children: l.flag }),
35
37
  /* @__PURE__ */ e("span", { className: "text-base text-white", children: l.name })
36
38
  ] }),
37
- /* @__PURE__ */ e("div", { className: `mr-1 transition-transform duration-200 ${r ? "rotate-180" : "rotate-0"}`, children: /* @__PURE__ */ e(o, { fill: "#ffff", width: 24, height: 24 }) })
39
+ /* @__PURE__ */ e("div", { className: `mr-1 transition-transform duration-200 ${s ? "rotate-180" : "rotate-0"}`, children: /* @__PURE__ */ e(o, { fill: "#ffff", width: 24, height: 24 }) })
38
40
  ]
39
41
  }
40
42
  ),
41
- r && /* @__PURE__ */ e("div", { className: "absolute top-10 z-10 flex w-full flex-col", children: i.map((t, n) => /* @__PURE__ */ e(
43
+ s && /* @__PURE__ */ e("div", { className: "absolute top-10 z-10 flex w-full flex-col", children: r.map((t, n) => /* @__PURE__ */ e(
42
44
  "a",
43
45
  {
46
+ "data-qa": `language-selector-mobile-option-${t.code}`,
44
47
  href: t.url,
45
48
  className: "mt-2 w-full animate-[slideDown_0.3s_both] items-center justify-between rounded-md bg-white px-4 py-3 ease-out",
46
49
  style: { animationDelay: `${String(n * 0.05)}s` },
47
- children: /* @__PURE__ */ s("div", { className: "flex items-center gap-2 px-2 text-gray-600", children: [
50
+ children: /* @__PURE__ */ a("div", { className: "flex items-center gap-2 px-2 text-gray-600", children: [
48
51
  /* @__PURE__ */ e("span", { className: "flex items-center justify-center", children: t.flag }),
49
52
  /* @__PURE__ */ e("span", { className: "text-base", children: t.name })
50
53
  ] })
@@ -6,6 +6,7 @@ export declare interface MobileContactInfo {
6
6
  phoneNumber: string;
7
7
  contactHoursLabel?: string;
8
8
  contactHours?: string;
9
+ dataQa?: string;
9
10
  }
10
11
 
11
12
  export declare const MobileMenu: FC<MobileMenuProps>;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { SearchBar as u } from "./SearchBar.js";
3
+ import { SearchBar as x } from "./SearchBar.js";
4
4
  import { CloseIcon as f } from "./CloseIcon.js";
5
5
  import { LinkWrapper as h } from "./LinkWrapper.js";
6
6
  import { PhoneTalkIcon as b } from "./PhoneTalkIcon.js";
@@ -12,7 +12,7 @@ const k = ({
12
12
  searchBarProps: o,
13
13
  sections: p = [],
14
14
  contactInfo: t,
15
- closeText: x
15
+ closeText: u
16
16
  }) => s ? /* @__PURE__ */ l("div", { className: "fixed inset-0 z-50 flex flex-col overflow-y-auto bg-white text-neutral-800 lg:hidden", children: [
17
17
  /* @__PURE__ */ l("div", { className: "flex items-center justify-between px-6 py-4", children: [
18
18
  c,
@@ -23,7 +23,7 @@ const k = ({
23
23
  onClick: m,
24
24
  "aria-label": "Close menu",
25
25
  children: [
26
- x,
26
+ u,
27
27
  /* @__PURE__ */ r(f, { fill: "var(--color-primary-500)" })
28
28
  ]
29
29
  }
@@ -32,7 +32,7 @@ const k = ({
32
32
  /* @__PURE__ */ l("div", { className: "flex flex-1 flex-col pb-6", children: [
33
33
  /* @__PURE__ */ l("div", { className: "flex flex-col gap-6 px-6", children: [
34
34
  /* @__PURE__ */ r("div", { className: "flex items-center gap-4", children: d }),
35
- /* @__PURE__ */ r(u, { ...o })
35
+ /* @__PURE__ */ r(x, { ...o })
36
36
  ] }),
37
37
  /* @__PURE__ */ r("nav", { className: "flex flex-col gap-0", children: p.map((e, n) => {
38
38
  const i = e.icon != null;
@@ -62,6 +62,7 @@ const k = ({
62
62
  /* @__PURE__ */ l(
63
63
  "a",
64
64
  {
65
+ "data-qa": "mobile_menu_contact_phone",
65
66
  href: `tel:${t.phoneNumber.replaceAll(" ", "")}`,
66
67
  className: "bg-primary-700 flex w-full items-center justify-center gap-2 rounded-md p-3 text-base font-semibold text-white",
67
68
  children: [