@npm_leadtech/legal-contracts-ui 0.103.0 → 0.103.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.
Files changed (53) hide show
  1. package/dist/components/AboutUsTemplate.d.ts +5 -5
  2. package/dist/components/AboutUsTemplate.js +28 -28
  3. package/dist/components/BlogSection.d.ts +1 -0
  4. package/dist/components/CategoriesSection.d.ts +1 -0
  5. package/dist/components/CategoryProductTemplate.d.ts +1 -0
  6. package/dist/components/Checkbox.d.ts +0 -2
  7. package/dist/components/Checkbox.js +12 -25
  8. package/dist/components/ContactFormSection.d.ts +12 -39
  9. package/dist/components/ContactFormSection.js +94 -64
  10. package/dist/components/ContactMethodCard.js +24 -25
  11. package/dist/components/ContactUsSection.d.ts +1 -0
  12. package/dist/components/ContactUsTemplate.d.ts +12 -41
  13. package/dist/components/ContactUsTemplate.js +22 -32
  14. package/dist/components/CtaSection.js +5 -5
  15. package/dist/components/ExpertsSection.d.ts +1 -0
  16. package/dist/components/ExpertsSection.js +6 -6
  17. package/dist/components/FaqTeaserSection.d.ts +1 -0
  18. package/dist/components/FaqsTemplate.d.ts +0 -1
  19. package/dist/components/GuidelinesSection.d.ts +3 -2
  20. package/dist/components/GuidelinesSection.js +10 -9
  21. package/dist/components/HomeTemplate.d.ts +1 -0
  22. package/dist/components/Input.d.ts +0 -2
  23. package/dist/components/Input.js +43 -110
  24. package/dist/components/Jumbotron2.d.ts +0 -1
  25. package/dist/components/Jumbotron2.js +10 -24
  26. package/dist/components/MissionSection.d.ts +1 -1
  27. package/dist/components/MissionSection.js +10 -9
  28. package/dist/components/MoreTemplatesSection.d.ts +1 -0
  29. package/dist/components/PartnersSection.d.ts +1 -0
  30. package/dist/components/ProcessSection.d.ts +1 -0
  31. package/dist/components/SectionHeading.d.ts +1 -0
  32. package/dist/components/SectionHeading.js +20 -16
  33. package/dist/components/Select.d.ts +0 -2
  34. package/dist/components/Select.js +35 -51
  35. package/dist/components/SinglePhoneIcon.js +4 -4
  36. package/dist/components/Storyline.js +17 -16
  37. package/dist/components/Textarea.d.ts +0 -2
  38. package/dist/components/Textarea.js +11 -30
  39. package/dist/components/Toast.js +1 -1
  40. package/dist/components/TrustPilotSection.js +9 -7
  41. package/dist/components/TrustSection.d.ts +1 -0
  42. package/dist/components/ValuesSection.d.ts +1 -1
  43. package/dist/components/ValuesSection.js +10 -9
  44. package/dist/globals.css +1 -1
  45. package/package.json +1 -17
  46. package/dist/components/CheckIcon.d.ts +0 -4
  47. package/dist/components/CheckIcon.js +0 -12
  48. package/dist/components/ClearIcon.d.ts +0 -4
  49. package/dist/components/ClearIcon.js +0 -12
  50. package/dist/components/DoneIcon.d.ts +0 -4
  51. package/dist/components/DoneIcon.js +0 -12
  52. package/dist/components/QuestionOutlineIcon.d.ts +0 -4
  53. package/dist/components/QuestionOutlineIcon.js +0 -15
@@ -64,12 +64,12 @@ export interface GuidelinesSectionProps {
64
64
  guidelineCards: Array<{
65
65
  title: string;
66
66
  image: ReactNode;
67
- content: ReactNode;
67
+ content: string;
68
68
  }>;
69
69
  footerCard: {
70
70
  title: string;
71
71
  image: ReactNode;
72
- content: ReactNode;
72
+ content: string;
73
73
  cta: ButtonProps;
74
74
  };
75
75
  }
@@ -89,12 +89,11 @@ export interface Jumbotron2Props {
89
89
  subtitle?: string;
90
90
  className?: string;
91
91
  children?: React.ReactNode;
92
- variant?: 'default' | 'contact';
93
92
  }
94
93
 
95
94
  export interface MissionSectionProps {
96
95
  title: string;
97
- children: ReactNode;
96
+ body: string;
98
97
  image: ReactNode;
99
98
  }
100
99
 
@@ -121,6 +120,7 @@ export interface SectionHeadingProps {
121
120
  align?: 'start' | 'center';
122
121
  titleClass?: string;
123
122
  className?: string;
123
+ hasMaxWidth?: boolean;
124
124
  }
125
125
 
126
126
  export interface StorylineProps {
@@ -141,7 +141,7 @@ export interface TrustPilotSectionProps {
141
141
 
142
142
  export interface ValuesSectionProps {
143
143
  title: string;
144
- children: ReactNode;
144
+ body: string;
145
145
  image: ReactNode;
146
146
  }
147
147
 
@@ -1,16 +1,16 @@
1
- import { jsxs as S, jsx as o } from "react/jsx-runtime";
2
- import { MissionSection as u } from "./MissionSection.js";
3
- import { ValuesSection as x } from "./ValuesSection.js";
1
+ import { jsxs as x, jsx as o } from "react/jsx-runtime";
2
+ import { MissionSection as S } from "./MissionSection.js";
3
+ import { ValuesSection as u } from "./ValuesSection.js";
4
4
  import { Storyline as b } from "./Storyline.js";
5
- import { WeHelpSection as d } from "./WeHelpSection.js";
6
- import { GuidelinesSection as j } from "./GuidelinesSection.js";
7
- import { ExpertsSection as y } from "./ExpertsSection.js";
8
- import { TrustPilotSection as C } from "./TrustPilotSection.js";
9
- import { PartnersSection as N } from "./PartnersSection.js";
10
- import { CtaSection as P } from "./CtaSection.js";
11
- import { ContactUsSection as T } from "./ContactUsSection.js";
12
- import { Jumbotron2 as U } from "./Jumbotron2.js";
13
- import { IntroSection as g } from "./IntroSection.js";
5
+ import { WeHelpSection as y } from "./WeHelpSection.js";
6
+ import { GuidelinesSection as N } from "./GuidelinesSection.js";
7
+ import { ExpertsSection as d } from "./ExpertsSection.js";
8
+ import { TrustPilotSection as g } from "./TrustPilotSection.js";
9
+ import { PartnersSection as j } from "./PartnersSection.js";
10
+ import { CtaSection as w } from "./CtaSection.js";
11
+ import { ContactUsSection as C } from "./ContactUsSection.js";
12
+ import { Jumbotron2 as P } from "./Jumbotron2.js";
13
+ import { IntroSection as T } from "./IntroSection.js";
14
14
  const v = ({
15
15
  jumbotron: t,
16
16
  intro: r,
@@ -18,25 +18,25 @@ const v = ({
18
18
  coreValues: i,
19
19
  storyline: e,
20
20
  howWeHelp: n,
21
- guidelines: p,
22
- experts: f,
21
+ guidelines: l,
22
+ experts: p,
23
23
  trustPilot: s,
24
- partners: c,
25
- cta: l,
24
+ partners: f,
25
+ cta: c,
26
26
  contactUs: a
27
- }) => /* @__PURE__ */ S("main", { className: "mx-auto flex w-full flex-1 flex-col text-neutral-800", children: [
28
- /* @__PURE__ */ o(U, { ...t }),
29
- /* @__PURE__ */ o(g, { ...r, className: "bg-primary-50" }),
30
- /* @__PURE__ */ o(u, { ...m }),
31
- /* @__PURE__ */ o(x, { ...i }),
27
+ }) => /* @__PURE__ */ x("main", { className: "mx-auto flex w-full flex-1 flex-col text-neutral-800", children: [
28
+ /* @__PURE__ */ o(P, { ...t, className: "bg-primary-50 w-full py-4 text-3xl" }),
29
+ /* @__PURE__ */ o(T, { ...r, className: "bg-primary-50" }),
30
+ /* @__PURE__ */ o(S, { ...m }),
31
+ /* @__PURE__ */ o(u, { ...i }),
32
32
  /* @__PURE__ */ o(b, { ...e }),
33
- /* @__PURE__ */ o(d, { ...n }),
34
- /* @__PURE__ */ o(j, { ...p }),
35
- /* @__PURE__ */ o(y, { ...f }),
36
- /* @__PURE__ */ o(C, { ...s }),
37
- /* @__PURE__ */ o(N, { ...c }),
38
- /* @__PURE__ */ o(P, { ...l }),
39
- /* @__PURE__ */ o(T, { ...a })
33
+ /* @__PURE__ */ o(y, { ...n }),
34
+ /* @__PURE__ */ o(N, { ...l }),
35
+ /* @__PURE__ */ o(d, { ...p }),
36
+ /* @__PURE__ */ o(g, { ...s }),
37
+ /* @__PURE__ */ o(j, { ...f }),
38
+ /* @__PURE__ */ o(w, { ...c }),
39
+ /* @__PURE__ */ o(C, { ...a })
40
40
  ] });
41
41
  export {
42
42
  v as AboutUsTemplate
@@ -22,5 +22,6 @@ export interface SectionHeadingProps {
22
22
  align?: 'start' | 'center';
23
23
  titleClass?: string;
24
24
  className?: string;
25
+ hasMaxWidth?: boolean;
25
26
  }
26
27
 
@@ -20,5 +20,6 @@ export interface SectionHeadingProps {
20
20
  align?: 'start' | 'center';
21
21
  titleClass?: string;
22
22
  className?: string;
23
+ hasMaxWidth?: boolean;
23
24
  }
24
25
 
@@ -86,5 +86,6 @@ export interface SectionHeadingProps {
86
86
  align?: 'start' | 'center';
87
87
  titleClass?: string;
88
88
  className?: string;
89
+ hasMaxWidth?: boolean;
89
90
  }
90
91
 
@@ -8,7 +8,5 @@ export declare interface CheckboxProps extends React.InputHTMLAttributes<HTMLInp
8
8
  name: string;
9
9
  required?: boolean;
10
10
  children: ReactNode;
11
- error?: boolean;
12
- errorMessage?: string;
13
11
  }
14
12
 
@@ -1,31 +1,18 @@
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,
8
- children: l,
9
- checked: e,
10
- error: t = !1,
11
- ...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 }),
14
- /* @__PURE__ */ r(
15
- "div",
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ const n = ({ id: t, name: r, required: s = !1, children: i, ...l }) => /* @__PURE__ */ a("label", { className: "text-medium flex items-center gap-3 text-neutral-800", children: [
3
+ /* @__PURE__ */ e(
4
+ "input",
16
5
  {
17
- className: m(
18
- "flex h-5.5 w-5.5 items-center justify-center rounded transition-colors",
19
- "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",
21
- e && "border-primary-500 bg-primary-200 border-2",
22
- t && "border-error-500 bg-error-20 border"
23
- ),
24
- children: e && /* @__PURE__ */ r(c, {})
6
+ id: t,
7
+ type: "checkbox",
8
+ name: r,
9
+ required: s,
10
+ className: "text-primary-700 focus-visible:outline-primary-500 h-5 w-5 rounded border-neutral-400 focus-visible:outline-2",
11
+ ...l
25
12
  }
26
13
  ),
27
- /* @__PURE__ */ r("span", { className: "leading-tight text-neutral-800", children: l })
14
+ /* @__PURE__ */ e("span", { children: i })
28
15
  ] });
29
16
  export {
30
- u as Checkbox
17
+ n as Checkbox
31
18
  };
@@ -1,5 +1,3 @@
1
- import { ChangeEventHandler } from 'react';
2
- import { ComponentProps } from 'react';
3
1
  import { ComponentPropsWithRef } from 'react';
4
2
  import { FC } from 'react';
5
3
  import { ReactNode } from 'react';
@@ -15,17 +13,6 @@ export type ButtonSize = 'small' | 'default' | 'large';
15
13
 
16
14
  export type ButtonVariant = 'primary-green' | 'primary-darkgreen' | 'primary-yellow' | 'primary-white' | 'secondary-green' | 'secondary-yellow' | 'secondary-red' | 'secondary-black' | 'tertiary-bold' | 'tertiary-thin' | 'tertiary-icon' | 'tertiary-link' | 'icon-black' | 'icon-grey' | 'icon-mobile';
17
15
 
18
- export interface ContactFormCheckboxFieldProps extends Omit<ContactFormFieldProps, 'placeholder' | 'tooltip'> {
19
- checked: boolean;
20
- onChange: ChangeEventHandler<HTMLInputElement>;
21
- }
22
-
23
- export interface ContactFormFeedbackProps {
24
- message: string;
25
- title?: string;
26
- cta: ReactNode | ButtonProps;
27
- }
28
-
29
16
  export declare interface ContactFormFieldProps {
30
17
  label: string;
31
18
  id: string;
@@ -33,7 +20,6 @@ export declare interface ContactFormFieldProps {
33
20
  placeholder?: string;
34
21
  required?: boolean;
35
22
  tooltip?: string;
36
- error?: boolean;
37
23
  errorMessage?: string;
38
24
  }
39
25
 
@@ -45,36 +31,23 @@ export declare interface ContactFormSectionProps {
45
31
  label: string;
46
32
  value: string;
47
33
  }[];
48
- fullNameField: Omit<ContactFormTextFieldProps, 'tooltip'>;
49
- emailField: Omit<ContactFormTextFieldProps, 'tooltip'>;
50
- referenceNumberField: ContactFormTextFieldProps;
51
- subjectField: ContactFormSelectFieldProps;
52
- messageField: ContactFormTextareaFieldProps;
34
+ fullNameField: Omit<ContactFormFieldProps, 'tooltip'>;
35
+ emailField: Omit<ContactFormFieldProps, 'tooltip'>;
36
+ referenceNumberField: ContactFormFieldProps;
37
+ subjectField: Omit<ContactFormFieldProps, 'tooltip'>;
38
+ messageField: Omit<ContactFormFieldProps, 'tooltip'>;
53
39
  requiredFieldsText: string;
54
- privacyField: ContactFormCheckboxFieldProps;
40
+ privacyField: Omit<ContactFormFieldProps, 'tooltip'>;
55
41
  securityHint: string;
56
- status?: 'default' | 'loading' | 'success' | 'error';
57
- successFeedback: ContactFormFeedbackProps;
58
- errorFeedback: ContactFormFeedbackProps;
59
- onSubmit?: ComponentProps<'form'>['onSubmit'];
42
+ feedback?: {
43
+ type: 'success' | 'error';
44
+ message: string;
45
+ title?: string;
46
+ cta?: ReactNode;
47
+ };
60
48
  button: ButtonProps;
61
49
  }
62
50
 
63
- export interface ContactFormSelectFieldProps extends Omit<ContactFormFieldProps, 'tooltip'> {
64
- value: string;
65
- onChange: ChangeEventHandler<HTMLSelectElement>;
66
- }
67
-
68
- export interface ContactFormTextareaFieldProps extends Omit<ContactFormFieldProps, 'tooltip'> {
69
- value: string;
70
- onChange: ChangeEventHandler<HTMLTextAreaElement>;
71
- }
72
-
73
- export interface ContactFormTextFieldProps extends ContactFormFieldProps {
74
- value: string;
75
- onChange: ChangeEventHandler<HTMLInputElement>;
76
- }
77
-
78
51
  export type IconPosition = 'left' | 'right' | 'top';
79
52
 
80
53
  export type ResponsiveButtonVariant = ButtonVariant | {
@@ -1,74 +1,104 @@
1
- import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
- import { Textarea as b } from "./Textarea.js";
3
- import { Checkbox as v } from "./Checkbox.js";
4
- import { ClearIcon as y } from "./ClearIcon.js";
5
- import { DoneIcon as w } from "./DoneIcon.js";
6
- import { Input as n } from "./Input.js";
7
- import { Select as j } from "./Select.js";
8
- import { Markdown as I } from "./Markdown.js";
9
- import { InfoIcon as S } from "./InfoIcon.js";
10
- import { Button as o } from "./Button.js";
11
- import { LinkWrapper as k } from "./LinkWrapper.js";
12
- const C = () => /* @__PURE__ */ e("div", { role: "status", "aria-live": "polite", className: "mt-6 flex items-center justify-center rounded py-6", children: /* @__PURE__ */ e("div", { className: "border-primary-500 h-[25px] w-[25px] animate-spin rounded-full border-3 border-t-transparent" }) }), L = ({ title: r, message: l, cta: i }) => /* @__PURE__ */ t("div", { role: "status", "aria-live": "polite", className: "flex flex-col items-center justify-center gap-8 px-4 py-3", children: [
13
- /* @__PURE__ */ t("div", { className: "flex flex-col items-center gap-2", children: [
14
- /* @__PURE__ */ e("div", { className: "bg-error-20 w-fit rounded-full p-3", children: /* @__PURE__ */ e(y, { width: 48, height: 48, fill: "var(--error-500)" }) }),
15
- /* @__PURE__ */ e("p", { className: "text-big font-bold text-neutral-800", children: r }),
16
- /* @__PURE__ */ e("p", { className: "text-medium text-neutral-800", children: l })
1
+ import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
+ import { Textarea as g } from "./Textarea.js";
3
+ import { Checkbox as y } from "./Checkbox.js";
4
+ import { Input as m } from "./Input.js";
5
+ import { Select as u } from "./Select.js";
6
+ import { Markdown as M } from "./Markdown.js";
7
+ import { Item as N } from "./Item.js";
8
+ import { InfoIcon as v } from "./InfoIcon.js";
9
+ import { Button as q } from "./Button.js";
10
+ const V = ({
11
+ title: n,
12
+ subjectOptions: p,
13
+ fullNameField: o,
14
+ emailField: l,
15
+ referenceNumberField: e,
16
+ subjectField: a,
17
+ messageField: t,
18
+ privacyField: d,
19
+ requiredFieldsText: c,
20
+ securityHint: h,
21
+ feedback: i,
22
+ button: x
23
+ }) => /* @__PURE__ */ s("section", { className: "rounded-sm bg-white p-8 shadow-sm", children: [
24
+ /* @__PURE__ */ s("div", { className: "space-y-4", children: [
25
+ /* @__PURE__ */ r("p", { className: "text-big font-bold text-neutral-600", children: n }),
26
+ /* @__PURE__ */ r("div", { className: "h-px w-full bg-neutral-200", "aria-hidden": "true" })
17
27
  ] }),
18
- /* @__PURE__ */ e(o, { ...i, variant: "primary-green" })
19
- ] }), B = ({ title: r, message: l, cta: i }) => /* @__PURE__ */ t("div", { role: "status", "aria-live": "polite", className: "flex flex-col items-center justify-center gap-8 px-4 py-3", children: [
20
- /* @__PURE__ */ t("div", { className: "flex flex-col items-center gap-2", children: [
21
- /* @__PURE__ */ e("div", { className: "bg-primary-100 w-fit rounded-full p-3", children: /* @__PURE__ */ e(w, { width: 48, height: 48, fill: "var(--primary-500)" }) }),
22
- /* @__PURE__ */ e("p", { className: "text-big font-bold text-neutral-800", children: r }),
23
- /* @__PURE__ */ e("p", { className: "text-medium text-neutral-800", children: l })
24
- ] }),
25
- /* @__PURE__ */ e(k, { className: "w-fit", children: i })
26
- ] }), G = ({
27
- title: r,
28
- subjectOptions: l,
29
- fullNameField: i,
30
- emailField: m,
31
- referenceNumberField: d,
32
- subjectField: p,
33
- messageField: f,
34
- privacyField: s,
35
- requiredFieldsText: h,
36
- securityHint: x,
37
- status: a = "default",
38
- successFeedback: u,
39
- errorFeedback: N,
40
- onSubmit: g,
41
- button: c
42
- }) => /* @__PURE__ */ t("section", { className: "rounded-sm bg-white p-8 shadow-sm", children: [
43
- /* @__PURE__ */ t("div", { className: "space-y-4", children: [
44
- /* @__PURE__ */ e("p", { className: "text-big font-bold text-neutral-600", children: r }),
45
- /* @__PURE__ */ e("div", { className: "h-px w-full bg-neutral-200", "aria-hidden": "true" })
46
- ] }),
47
- a === "loading" && /* @__PURE__ */ e(C, {}),
48
- a === "error" && /* @__PURE__ */ e(L, { ...N }),
49
- a === "success" && /* @__PURE__ */ e(B, { ...u }),
50
- a === "default" && /* @__PURE__ */ t("form", { className: "mt-6 flex flex-col gap-6", noValidate: !0, onSubmit: g, children: [
51
- /* @__PURE__ */ e(n, { ...i, type: "text" }),
52
- /* @__PURE__ */ e(n, { ...m, type: "email" }),
53
- /* @__PURE__ */ e(n, { ...d }),
54
- /* @__PURE__ */ e(j, { ...p, options: l }),
55
- /* @__PURE__ */ e(b, { ...f }),
56
- /* @__PURE__ */ e("p", { className: "text-medium text-neutral-600", children: h }),
57
- /* @__PURE__ */ e(v, { ...s, children: /* @__PURE__ */ e(I, { className: "text-medium [&_p:last-child]:mb-0", content: s.label }) }),
58
- /* @__PURE__ */ t(
28
+ /* @__PURE__ */ s("form", { className: "mt-6 flex flex-col gap-6", noValidate: !0, children: [
29
+ i && /* @__PURE__ */ r(
59
30
  "div",
31
+ {
32
+ role: "status",
33
+ "aria-live": "polite",
34
+ className: i.type === "success" ? "rounded border border-green-300 bg-green-50 px-4 py-3 text-green-900" : "rounded border border-red-300 bg-red-50 px-4 py-3 text-red-800",
35
+ children: i.message
36
+ }
37
+ ),
38
+ /* @__PURE__ */ s("div", { className: "space-y-1", children: [
39
+ /* @__PURE__ */ r(m, { ...o, type: "text" }),
40
+ o.errorMessage && /* @__PURE__ */ r("p", { id: `${o.id}-error-message`, className: "text-small text-red-700", children: o.errorMessage })
41
+ ] }),
42
+ /* @__PURE__ */ s("div", { className: "space-y-1", children: [
43
+ /* @__PURE__ */ r(m, { ...l, type: "email" }),
44
+ l.errorMessage && /* @__PURE__ */ r("p", { id: `${l.id}-error-message`, className: "text-small text-red-700", children: l.errorMessage })
45
+ ] }),
46
+ /* @__PURE__ */ s("div", { className: "space-y-1", children: [
47
+ /* @__PURE__ */ r(
48
+ m,
49
+ {
50
+ label: e.label,
51
+ id: e.id,
52
+ name: e.name,
53
+ type: "text",
54
+ placeholder: e.placeholder,
55
+ tooltip: e.tooltip,
56
+ required: e.required
57
+ }
58
+ ),
59
+ e.errorMessage && /* @__PURE__ */ r("p", { id: `${e.id}-error-message`, className: "text-small text-red-700", children: e.errorMessage })
60
+ ] }),
61
+ /* @__PURE__ */ s("div", { className: "space-y-1", children: [
62
+ /* @__PURE__ */ r(
63
+ u,
64
+ {
65
+ label: a.label,
66
+ id: a.id,
67
+ name: a.name,
68
+ placeholder: a.placeholder,
69
+ options: p,
70
+ required: a.required
71
+ }
72
+ ),
73
+ a.errorMessage && /* @__PURE__ */ r("p", { id: `${a.id}-error-message`, className: "text-small text-red-700", children: a.errorMessage })
74
+ ] }),
75
+ /* @__PURE__ */ s("div", { className: "space-y-1", children: [
76
+ /* @__PURE__ */ r(
77
+ g,
78
+ {
79
+ label: t.label,
80
+ id: t.id,
81
+ name: t.name,
82
+ placeholder: t.placeholder,
83
+ required: t.required
84
+ }
85
+ ),
86
+ t.errorMessage && /* @__PURE__ */ r("p", { id: `${t.id}-error-message`, className: "text-small text-red-700", children: t.errorMessage })
87
+ ] }),
88
+ /* @__PURE__ */ r("p", { className: "text-medium text-neutral-600", children: c }),
89
+ /* @__PURE__ */ r("div", { className: "", children: /* @__PURE__ */ r(y, { id: d.id, name: d.name, required: !0, children: /* @__PURE__ */ r(M, { className: "text-medium [&_p:last-child]:mb-0", content: d.label }) }) }),
90
+ /* @__PURE__ */ r(
91
+ N,
60
92
  {
61
93
  id: "security-hint",
62
- className: "text-small flex items-start gap-2 rounded bg-neutral-50 p-4 text-neutral-600",
63
- children: [
64
- /* @__PURE__ */ e(S, { width: 24, height: 24, "aria-hidden": "true" }),
65
- /* @__PURE__ */ e("p", { children: x })
66
- ]
94
+ image: /* @__PURE__ */ r(v, { width: 24, height: 24, "aria-hidden": "true" }),
95
+ description: h,
96
+ className: "text-small flex items-start gap-2 rounded bg-neutral-50 p-4 text-neutral-600"
67
97
  }
68
98
  ),
69
- /* @__PURE__ */ e(o, { ...c, className: "w-fit self-center", type: "submit", children: c.children })
99
+ /* @__PURE__ */ r(q, { ...x, variant: "primary-green", className: "w-fit self-center" })
70
100
  ] })
71
101
  ] });
72
102
  export {
73
- G as ContactFormSection
103
+ V as ContactFormSection
74
104
  };
@@ -1,37 +1,36 @@
1
- import { jsxs as l, Fragment as r, jsx as a } from "react/jsx-runtime";
2
- import { SinglePhoneIcon as s } from "./SinglePhoneIcon.js";
3
- import { PhoneTalkIcon as m } from "./PhoneTalkIcon.js";
4
- import { MailFillIcon as c } from "./MailFillIcon.js";
5
- import { LocationIcon as o } from "./LocationIcon.js";
6
- import { LinkWrapper as n } from "./LinkWrapper.js";
7
- const v = ({ label: e, helper: i, variant: t }) => /* @__PURE__ */ l("article", { className: "bg-neutral-25 flex flex-wrap gap-2 rounded-sm p-4 md:flex-col", children: [
8
- t === "phone" && /* @__PURE__ */ l(r, { children: [
9
- /* @__PURE__ */ l(n, { variant: "primary-green", className: "w-full md:hidden", children: [
10
- /* @__PURE__ */ a(s, { width: 22, height: 22, fill: "white" }),
1
+ import { jsxs as i, Fragment as r, jsx as a } from "react/jsx-runtime";
2
+ import { PhoneTalkIcon as n } from "./PhoneTalkIcon.js";
3
+ import { MailFillIcon as m } from "./MailFillIcon.js";
4
+ import { LocationIcon as c } from "./LocationIcon.js";
5
+ import { LinkWrapper as t } from "./LinkWrapper.js";
6
+ const y = ({ label: e, helper: l, variant: s }) => /* @__PURE__ */ i("article", { className: "bg-neutral-25 flex flex-wrap gap-2 rounded-sm p-4 md:flex-col", children: [
7
+ s === "phone" && /* @__PURE__ */ i(r, { children: [
8
+ /* @__PURE__ */ i(t, { variant: "primary-green", className: "w-full md:hidden", children: [
9
+ /* @__PURE__ */ a(n, { fill: "white" }),
11
10
  " ",
12
11
  e
13
12
  ] }),
14
- /* @__PURE__ */ l("div", { className: "hidden gap-2 md:flex", children: [
15
- /* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(m, { fill: "var(--primary-800)" }) }),
16
- /* @__PURE__ */ l("div", { className: "flex flex-col gap-1", children: [
17
- /* @__PURE__ */ a(n, { className: "justify-start! p-0! no-underline!", variant: "tertiary-link", children: /* @__PURE__ */ a("span", { className: "text-medium text-primary-800 font-bold", children: e }) }),
18
- i && /* @__PURE__ */ a("p", { className: "text-small mx-auto text-neutral-600 md:mx-0", children: i })
13
+ /* @__PURE__ */ i("div", { className: "hidden gap-2 md:flex", children: [
14
+ /* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(n, { fill: "var(--primary-800)" }) }),
15
+ /* @__PURE__ */ i("div", { className: "flex flex-col gap-1", children: [
16
+ /* @__PURE__ */ a(t, { className: "justify-start! p-0! no-underline!", variant: "tertiary-link", children: /* @__PURE__ */ a("span", { className: "text-medium text-primary-800 font-bold", children: e }) }),
17
+ l && /* @__PURE__ */ a("p", { className: "text-small mx-auto text-neutral-600 md:mx-0", children: l })
19
18
  ] })
20
19
  ] }),
21
- i && /* @__PURE__ */ a("p", { className: "text-small mx-auto text-neutral-600 md:mx-0 md:hidden", children: i })
20
+ l && /* @__PURE__ */ a("p", { className: "text-small mx-auto text-neutral-600 md:mx-0 md:hidden", children: l })
22
21
  ] }),
23
- t === "email" && /* @__PURE__ */ l("div", { className: "flex gap-2", children: [
24
- /* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(c, { fill: "var(--primary-800)" }) }),
25
- /* @__PURE__ */ l("div", { className: "flex flex-col gap-1", children: [
26
- /* @__PURE__ */ a(n, { className: "justify-start! p-0!", variant: "tertiary-link", children: /* @__PURE__ */ a("span", { className: "text-medium text-primary-800 font-bold", children: e }) }),
27
- i && /* @__PURE__ */ a("p", { className: "text-small text-neutral-600", children: i })
22
+ s === "email" && /* @__PURE__ */ i("div", { className: "flex gap-2", children: [
23
+ /* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(m, { fill: "var(--primary-800)" }) }),
24
+ /* @__PURE__ */ i("div", { className: "flex flex-col gap-1", children: [
25
+ /* @__PURE__ */ a(t, { className: "justify-start! p-0!", variant: "tertiary-link", children: /* @__PURE__ */ a("span", { className: "text-medium text-primary-800 font-bold", children: e }) }),
26
+ l && /* @__PURE__ */ a("p", { className: "text-small text-neutral-600", children: l })
28
27
  ] })
29
28
  ] }),
30
- t === "location" && /* @__PURE__ */ l("div", { className: "flex gap-2", children: [
31
- /* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(o, { fill: "var(--primary-800)" }) }),
32
- i && /* @__PURE__ */ a("p", { className: "text-small text-neutral-600", children: i })
29
+ s === "location" && /* @__PURE__ */ i("div", { className: "flex gap-2", children: [
30
+ /* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(c, { fill: "var(--primary-800)" }) }),
31
+ l && /* @__PURE__ */ a("p", { className: "text-small text-neutral-600", children: l })
33
32
  ] })
34
33
  ] });
35
34
  export {
36
- v as ContactMethodCard
35
+ y as ContactMethodCard
37
36
  };
@@ -19,5 +19,6 @@ export interface SectionHeadingProps {
19
19
  align?: 'start' | 'center';
20
20
  titleClass?: string;
21
21
  className?: string;
22
+ hasMaxWidth?: boolean;
22
23
  }
23
24
 
@@ -1,5 +1,3 @@
1
- import { ChangeEventHandler } from 'react';
2
- import { ComponentProps } from 'react';
3
1
  import { ComponentPropsWithRef } from 'react';
4
2
  import { FC } from 'react';
5
3
  import { ReactNode } from 'react';
@@ -15,17 +13,6 @@ export type ButtonSize = 'small' | 'default' | 'large';
15
13
 
16
14
  export type ButtonVariant = 'primary-green' | 'primary-darkgreen' | 'primary-yellow' | 'primary-white' | 'secondary-green' | 'secondary-yellow' | 'secondary-red' | 'secondary-black' | 'tertiary-bold' | 'tertiary-thin' | 'tertiary-icon' | 'tertiary-link' | 'icon-black' | 'icon-grey' | 'icon-mobile';
17
15
 
18
- export interface ContactFormCheckboxFieldProps extends Omit<ContactFormFieldProps, 'placeholder' | 'tooltip'> {
19
- checked: boolean;
20
- onChange: ChangeEventHandler<HTMLInputElement>;
21
- }
22
-
23
- export interface ContactFormFeedbackProps {
24
- message: string;
25
- title?: string;
26
- cta: ReactNode | ButtonProps;
27
- }
28
-
29
16
  export interface ContactFormFieldProps {
30
17
  label: string;
31
18
  id: string;
@@ -33,7 +20,6 @@ export interface ContactFormFieldProps {
33
20
  placeholder?: string;
34
21
  required?: boolean;
35
22
  tooltip?: string;
36
- error?: boolean;
37
23
  errorMessage?: string;
38
24
  }
39
25
 
@@ -43,36 +29,23 @@ export interface ContactFormSectionProps {
43
29
  label: string;
44
30
  value: string;
45
31
  }[];
46
- fullNameField: Omit<ContactFormTextFieldProps, 'tooltip'>;
47
- emailField: Omit<ContactFormTextFieldProps, 'tooltip'>;
48
- referenceNumberField: ContactFormTextFieldProps;
49
- subjectField: ContactFormSelectFieldProps;
50
- messageField: ContactFormTextareaFieldProps;
32
+ fullNameField: Omit<ContactFormFieldProps, 'tooltip'>;
33
+ emailField: Omit<ContactFormFieldProps, 'tooltip'>;
34
+ referenceNumberField: ContactFormFieldProps;
35
+ subjectField: Omit<ContactFormFieldProps, 'tooltip'>;
36
+ messageField: Omit<ContactFormFieldProps, 'tooltip'>;
51
37
  requiredFieldsText: string;
52
- privacyField: ContactFormCheckboxFieldProps;
38
+ privacyField: Omit<ContactFormFieldProps, 'tooltip'>;
53
39
  securityHint: string;
54
- status?: 'default' | 'loading' | 'success' | 'error';
55
- successFeedback: ContactFormFeedbackProps;
56
- errorFeedback: ContactFormFeedbackProps;
57
- onSubmit?: ComponentProps<'form'>['onSubmit'];
40
+ feedback?: {
41
+ type: 'success' | 'error';
42
+ message: string;
43
+ title?: string;
44
+ cta?: ReactNode;
45
+ };
58
46
  button: ButtonProps;
59
47
  }
60
48
 
61
- export interface ContactFormSelectFieldProps extends Omit<ContactFormFieldProps, 'tooltip'> {
62
- value: string;
63
- onChange: ChangeEventHandler<HTMLSelectElement>;
64
- }
65
-
66
- export interface ContactFormTextareaFieldProps extends Omit<ContactFormFieldProps, 'tooltip'> {
67
- value: string;
68
- onChange: ChangeEventHandler<HTMLTextAreaElement>;
69
- }
70
-
71
- export interface ContactFormTextFieldProps extends ContactFormFieldProps {
72
- value: string;
73
- onChange: ChangeEventHandler<HTMLInputElement>;
74
- }
75
-
76
49
  export interface ContactMethod {
77
50
  id: string;
78
51
  label?: ReactNode;
@@ -95,7 +68,6 @@ export declare interface ContactUsTemplateProps {
95
68
  faqText: string;
96
69
  faqCta: ReactNode;
97
70
  };
98
- bgImage: ReactNode | null;
99
71
  }
100
72
 
101
73
  export type IconPosition = 'left' | 'right' | 'top';
@@ -105,7 +77,6 @@ export interface Jumbotron2Props {
105
77
  subtitle?: string;
106
78
  className?: string;
107
79
  children?: React.ReactNode;
108
- variant?: 'default' | 'contact';
109
80
  }
110
81
 
111
82
  export type ResponsiveButtonVariant = ButtonVariant | {