@npm_leadtech/legal-contracts-ui 0.103.1 → 0.103.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AboutUsTemplate.d.ts +1 -0
- package/dist/components/CheckIcon.d.ts +4 -0
- package/dist/components/CheckIcon.js +12 -0
- package/dist/components/Checkbox.d.ts +2 -0
- package/dist/components/Checkbox.js +25 -12
- package/dist/components/ClearIcon.d.ts +4 -0
- package/dist/components/ClearIcon.js +12 -0
- package/dist/components/ContactFormSection.d.ts +39 -12
- package/dist/components/ContactFormSection.js +64 -94
- package/dist/components/ContactMethodCard.js +25 -24
- package/dist/components/ContactUsTemplate.d.ts +41 -12
- package/dist/components/ContactUsTemplate.js +32 -22
- package/dist/components/DoneIcon.d.ts +4 -0
- package/dist/components/DoneIcon.js +12 -0
- package/dist/components/FaqsTemplate.d.ts +1 -0
- package/dist/components/Input.d.ts +2 -0
- package/dist/components/Input.js +110 -43
- package/dist/components/Jumbotron2.d.ts +1 -0
- package/dist/components/Jumbotron2.js +24 -10
- package/dist/components/QuestionOutlineIcon.d.ts +4 -0
- package/dist/components/QuestionOutlineIcon.js +15 -0
- package/dist/components/Select.d.ts +2 -0
- package/dist/components/Select.js +51 -35
- package/dist/components/SinglePhoneIcon.js +4 -4
- package/dist/components/Textarea.d.ts +2 -0
- package/dist/components/Textarea.js +30 -11
- package/dist/components/Toast.js +1 -1
- package/dist/globals.css +1 -1
- package/package.json +17 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
const l = (i) => /* @__PURE__ */ o("svg", { width: "16", height: "16", viewBox: "0 0 16 16", xmlns: "http://www.w3.org/2000/svg", ...i, children: /* @__PURE__ */ o(
|
|
4
|
+
"path",
|
|
5
|
+
{
|
|
6
|
+
fill: i.fill ?? "var(--color-primary-800)",
|
|
7
|
+
d: "M5.867 10.6 3.533 8.267A.66.66 0 1 0 2.6 9.2l3.089 3.089a.25.25 0 0 0 .355 0L13.4 4.933A.66.66 0 0 0 12.467 4z"
|
|
8
|
+
}
|
|
9
|
+
) });
|
|
10
|
+
export {
|
|
11
|
+
l as CheckIcon
|
|
12
|
+
};
|
|
@@ -1,18 +1,31 @@
|
|
|
1
|
-
import { jsxs as a, jsx as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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",
|
|
5
16
|
{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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, {})
|
|
12
25
|
}
|
|
13
26
|
),
|
|
14
|
-
/* @__PURE__ */
|
|
27
|
+
/* @__PURE__ */ r("span", { className: "leading-tight text-neutral-800", children: l })
|
|
15
28
|
] });
|
|
16
29
|
export {
|
|
17
|
-
|
|
30
|
+
u as Checkbox
|
|
18
31
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
const t = (r) => /* @__PURE__ */ i("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...r, children: /* @__PURE__ */ i(
|
|
4
|
+
"path",
|
|
5
|
+
{
|
|
6
|
+
d: "M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z",
|
|
7
|
+
fill: r.fill ?? "var(--color-primary-800)"
|
|
8
|
+
}
|
|
9
|
+
) });
|
|
10
|
+
export {
|
|
11
|
+
t as ClearIcon
|
|
12
|
+
};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ChangeEventHandler } from 'react';
|
|
2
|
+
import { ComponentProps } from 'react';
|
|
1
3
|
import { ComponentPropsWithRef } from 'react';
|
|
2
4
|
import { FC } from 'react';
|
|
3
5
|
import { ReactNode } from 'react';
|
|
@@ -13,6 +15,17 @@ export type ButtonSize = 'small' | 'default' | 'large';
|
|
|
13
15
|
|
|
14
16
|
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';
|
|
15
17
|
|
|
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
|
+
|
|
16
29
|
export declare interface ContactFormFieldProps {
|
|
17
30
|
label: string;
|
|
18
31
|
id: string;
|
|
@@ -20,6 +33,7 @@ export declare interface ContactFormFieldProps {
|
|
|
20
33
|
placeholder?: string;
|
|
21
34
|
required?: boolean;
|
|
22
35
|
tooltip?: string;
|
|
36
|
+
error?: boolean;
|
|
23
37
|
errorMessage?: string;
|
|
24
38
|
}
|
|
25
39
|
|
|
@@ -31,23 +45,36 @@ export declare interface ContactFormSectionProps {
|
|
|
31
45
|
label: string;
|
|
32
46
|
value: string;
|
|
33
47
|
}[];
|
|
34
|
-
fullNameField: Omit<
|
|
35
|
-
emailField: Omit<
|
|
36
|
-
referenceNumberField:
|
|
37
|
-
subjectField:
|
|
38
|
-
messageField:
|
|
48
|
+
fullNameField: Omit<ContactFormTextFieldProps, 'tooltip'>;
|
|
49
|
+
emailField: Omit<ContactFormTextFieldProps, 'tooltip'>;
|
|
50
|
+
referenceNumberField: ContactFormTextFieldProps;
|
|
51
|
+
subjectField: ContactFormSelectFieldProps;
|
|
52
|
+
messageField: ContactFormTextareaFieldProps;
|
|
39
53
|
requiredFieldsText: string;
|
|
40
|
-
privacyField:
|
|
54
|
+
privacyField: ContactFormCheckboxFieldProps;
|
|
41
55
|
securityHint: string;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
cta?: ReactNode;
|
|
47
|
-
};
|
|
56
|
+
status?: 'default' | 'loading' | 'success' | 'error';
|
|
57
|
+
successFeedback: ContactFormFeedbackProps;
|
|
58
|
+
errorFeedback: ContactFormFeedbackProps;
|
|
59
|
+
onSubmit?: ComponentProps<'form'>['onSubmit'];
|
|
48
60
|
button: ButtonProps;
|
|
49
61
|
}
|
|
50
62
|
|
|
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
|
+
|
|
51
78
|
export type IconPosition = 'left' | 'right' | 'top';
|
|
52
79
|
|
|
53
80
|
export type ResponsiveButtonVariant = ButtonVariant | {
|
|
@@ -1,104 +1,74 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { Textarea as
|
|
3
|
-
import { Checkbox as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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" })
|
|
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 })
|
|
27
17
|
] }),
|
|
28
|
-
/* @__PURE__ */
|
|
29
|
-
|
|
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(
|
|
30
59
|
"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,
|
|
92
60
|
{
|
|
93
61
|
id: "security-hint",
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
+
]
|
|
97
67
|
}
|
|
98
68
|
),
|
|
99
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ e(o, { ...c, className: "w-fit self-center", type: "submit", children: c.children })
|
|
100
70
|
] })
|
|
101
71
|
] });
|
|
102
72
|
export {
|
|
103
|
-
|
|
73
|
+
G as ContactFormSection
|
|
104
74
|
};
|
|
@@ -1,36 +1,37 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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" }),
|
|
10
11
|
" ",
|
|
11
12
|
e
|
|
12
13
|
] }),
|
|
13
|
-
/* @__PURE__ */
|
|
14
|
-
/* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(
|
|
15
|
-
/* @__PURE__ */
|
|
16
|
-
/* @__PURE__ */ a(
|
|
17
|
-
|
|
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 })
|
|
18
19
|
] })
|
|
19
20
|
] }),
|
|
20
|
-
|
|
21
|
+
i && /* @__PURE__ */ a("p", { className: "text-small mx-auto text-neutral-600 md:mx-0 md:hidden", children: i })
|
|
21
22
|
] }),
|
|
22
|
-
|
|
23
|
-
/* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(
|
|
24
|
-
/* @__PURE__ */
|
|
25
|
-
/* @__PURE__ */ a(
|
|
26
|
-
|
|
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 })
|
|
27
28
|
] })
|
|
28
29
|
] }),
|
|
29
|
-
|
|
30
|
-
/* @__PURE__ */ a("span", { className: "shrink-0", children: /* @__PURE__ */ a(
|
|
31
|
-
|
|
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 })
|
|
32
33
|
] })
|
|
33
34
|
] });
|
|
34
35
|
export {
|
|
35
|
-
|
|
36
|
+
v as ContactMethodCard
|
|
36
37
|
};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ChangeEventHandler } from 'react';
|
|
2
|
+
import { ComponentProps } from 'react';
|
|
1
3
|
import { ComponentPropsWithRef } from 'react';
|
|
2
4
|
import { FC } from 'react';
|
|
3
5
|
import { ReactNode } from 'react';
|
|
@@ -13,6 +15,17 @@ export type ButtonSize = 'small' | 'default' | 'large';
|
|
|
13
15
|
|
|
14
16
|
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';
|
|
15
17
|
|
|
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
|
+
|
|
16
29
|
export interface ContactFormFieldProps {
|
|
17
30
|
label: string;
|
|
18
31
|
id: string;
|
|
@@ -20,6 +33,7 @@ export interface ContactFormFieldProps {
|
|
|
20
33
|
placeholder?: string;
|
|
21
34
|
required?: boolean;
|
|
22
35
|
tooltip?: string;
|
|
36
|
+
error?: boolean;
|
|
23
37
|
errorMessage?: string;
|
|
24
38
|
}
|
|
25
39
|
|
|
@@ -29,23 +43,36 @@ export interface ContactFormSectionProps {
|
|
|
29
43
|
label: string;
|
|
30
44
|
value: string;
|
|
31
45
|
}[];
|
|
32
|
-
fullNameField: Omit<
|
|
33
|
-
emailField: Omit<
|
|
34
|
-
referenceNumberField:
|
|
35
|
-
subjectField:
|
|
36
|
-
messageField:
|
|
46
|
+
fullNameField: Omit<ContactFormTextFieldProps, 'tooltip'>;
|
|
47
|
+
emailField: Omit<ContactFormTextFieldProps, 'tooltip'>;
|
|
48
|
+
referenceNumberField: ContactFormTextFieldProps;
|
|
49
|
+
subjectField: ContactFormSelectFieldProps;
|
|
50
|
+
messageField: ContactFormTextareaFieldProps;
|
|
37
51
|
requiredFieldsText: string;
|
|
38
|
-
privacyField:
|
|
52
|
+
privacyField: ContactFormCheckboxFieldProps;
|
|
39
53
|
securityHint: string;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
cta?: ReactNode;
|
|
45
|
-
};
|
|
54
|
+
status?: 'default' | 'loading' | 'success' | 'error';
|
|
55
|
+
successFeedback: ContactFormFeedbackProps;
|
|
56
|
+
errorFeedback: ContactFormFeedbackProps;
|
|
57
|
+
onSubmit?: ComponentProps<'form'>['onSubmit'];
|
|
46
58
|
button: ButtonProps;
|
|
47
59
|
}
|
|
48
60
|
|
|
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
|
+
|
|
49
76
|
export interface ContactMethod {
|
|
50
77
|
id: string;
|
|
51
78
|
label?: ReactNode;
|
|
@@ -68,6 +95,7 @@ export declare interface ContactUsTemplateProps {
|
|
|
68
95
|
faqText: string;
|
|
69
96
|
faqCta: ReactNode;
|
|
70
97
|
};
|
|
98
|
+
bgImage: ReactNode | null;
|
|
71
99
|
}
|
|
72
100
|
|
|
73
101
|
export type IconPosition = 'left' | 'right' | 'top';
|
|
@@ -77,6 +105,7 @@ export interface Jumbotron2Props {
|
|
|
77
105
|
subtitle?: string;
|
|
78
106
|
className?: string;
|
|
79
107
|
children?: React.ReactNode;
|
|
108
|
+
variant?: 'default' | 'contact';
|
|
80
109
|
}
|
|
81
110
|
|
|
82
111
|
export type ResponsiveButtonVariant = ButtonVariant | {
|
|
@@ -1,26 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ContactFormSection as
|
|
3
|
-
import { Jumbotron2 as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { LinkWrapper as
|
|
7
|
-
const
|
|
8
|
-
jumbotron:
|
|
9
|
-
contactMethods:
|
|
10
|
-
contactForm:
|
|
11
|
-
faqSection:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/* @__PURE__ */
|
|
15
|
-
|
|
16
|
-
/* @__PURE__ */
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import { jsxs as a, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { ContactFormSection as o } from "./ContactFormSection.js";
|
|
3
|
+
import { Jumbotron2 as s } from "./Jumbotron2.js";
|
|
4
|
+
import { Markdown as m } from "./Markdown.js";
|
|
5
|
+
import { ContactMethodsSection as d } from "./ContactMethodsSection.js";
|
|
6
|
+
import { LinkWrapper as n } from "./LinkWrapper.js";
|
|
7
|
+
const v = ({
|
|
8
|
+
jumbotron: t,
|
|
9
|
+
contactMethods: i,
|
|
10
|
+
contactForm: c,
|
|
11
|
+
faqSection: l,
|
|
12
|
+
bgImage: r
|
|
13
|
+
}) => /* @__PURE__ */ a("main", { className: "bg-primary-50 relative flex-1 pt-10 pb-20 md:px-6 lg:px-8 xl:px-0", children: [
|
|
14
|
+
!!r && /* @__PURE__ */ e("div", { className: "absolute right-0 bottom-0 hidden md:block", children: r }),
|
|
15
|
+
/* @__PURE__ */ a("div", { className: "relative mx-auto flex w-full max-w-300 flex-col gap-12", children: [
|
|
16
|
+
/* @__PURE__ */ e(s, { ...t, className: "flex flex-col gap-4 pb-0!", variant: "contact", children: /* @__PURE__ */ e(
|
|
17
|
+
m,
|
|
18
|
+
{
|
|
19
|
+
content: t.children,
|
|
20
|
+
className: "text-medium text-neutral-600 [&_p:last-child]:mb-0"
|
|
21
|
+
}
|
|
22
|
+
) }),
|
|
23
|
+
/* @__PURE__ */ a("div", { className: "relative flex flex-col gap-10 md:grid md:grid-cols-2 md:items-start md:gap-x-10 md:gap-y-8 lg:gap-x-16 xl:gap-x-20", children: [
|
|
24
|
+
/* @__PURE__ */ e(d, { ...i }),
|
|
25
|
+
/* @__PURE__ */ e("div", { className: "md:row-span-2", children: /* @__PURE__ */ e(o, { ...c }) }),
|
|
26
|
+
/* @__PURE__ */ a("div", { className: "flex flex-col gap-8 px-6", children: [
|
|
27
|
+
/* @__PURE__ */ e("h3", { className: "text-large text-primary-700 font-bold", children: l.faqTitle }),
|
|
28
|
+
/* @__PURE__ */ e("div", { className: "flex flex-col gap-8", children: /* @__PURE__ */ e(m, { content: l.faqText, className: "text-medium text-neutral-800 [&_p:last-child]:mb-0" }) }),
|
|
29
|
+
/* @__PURE__ */ e(n, { className: "w-fit", variant: "secondary-green", children: l.faqCta })
|
|
30
|
+
] })
|
|
21
31
|
] })
|
|
22
32
|
] })
|
|
23
|
-
] })
|
|
33
|
+
] });
|
|
24
34
|
export {
|
|
25
|
-
|
|
35
|
+
v as ContactUsTemplate
|
|
26
36
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
const l = (o) => /* @__PURE__ */ r("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...o, children: /* @__PURE__ */ r(
|
|
4
|
+
"path",
|
|
5
|
+
{
|
|
6
|
+
d: "M8.79995 15.9L5.29995 12.4C4.91335 12.0134 4.28655 12.0134 3.89995 12.4C3.51335 12.7866 3.51335 13.4134 3.89995 13.8L8.53328 18.4333C8.68056 18.5806 8.91934 18.5806 9.06662 18.4333L20.1 7.39999C20.4866 7.01339 20.4866 6.38659 20.1 5.99999C19.7134 5.61339 19.0866 5.61339 18.7 5.99999L8.79995 15.9Z",
|
|
7
|
+
fill: o.fill ?? "var(--color-primary-800)"
|
|
8
|
+
}
|
|
9
|
+
) });
|
|
10
|
+
export {
|
|
11
|
+
l as DoneIcon
|
|
12
|
+
};
|