@npm_leadtech/legal-contracts-ui 0.182.6 → 0.182.22

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.
@@ -4,7 +4,7 @@ import r from "clsx";
4
4
  //#region lib/components/atoms/Checkbox.tsx
5
5
  var i = ({ dataQa: i, id: a, name: o, required: s = !1, children: c, checked: l, error: u = !1, ...d }) => /* @__PURE__ */ n("label", {
6
6
  htmlFor: a,
7
- className: "text-medium flex cursor-pointer items-center gap-2 text-neutral-800 select-none",
7
+ className: "text-medium flex cursor-pointer items-start gap-2 text-neutral-800 select-none",
8
8
  children: [
9
9
  /* @__PURE__ */ t("input", {
10
10
  id: a,
@@ -16,11 +16,11 @@ var i = ({ dataQa: i, id: a, name: o, required: s = !1, children: c, checked: l,
16
16
  }),
17
17
  /* @__PURE__ */ t("div", {
18
18
  "data-qa": i,
19
- className: r("flex h-5.5 w-5.5 items-center justify-center rounded transition-colors", "peer-focus-visible:ring-primary-500 peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2", !u && !l && "hover:bg-primary-200 border border-neutral-800 bg-white", l && "border-primary-500 bg-primary-200 border-2", u && "border-error-500 bg-error-20 border"),
19
+ className: r("flex h-5.5 w-5.5 shrink-0 items-center justify-center rounded transition-colors", "peer-focus-visible:ring-primary-500 peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2", !u && !l && "hover:bg-primary-200 border border-neutral-800 bg-white", l && "border-primary-500 bg-primary-200 border-2", u && "border-error-500 bg-error-20 border"),
20
20
  children: l && /* @__PURE__ */ t(e, {})
21
21
  }),
22
22
  /* @__PURE__ */ t("span", {
23
- className: "leading-tight text-neutral-800",
23
+ className: "min-w-0 leading-tight text-neutral-800",
24
24
  children: c
25
25
  })
26
26
  ]
@@ -32,11 +32,11 @@ var c = ({ id: c, title: l, content: u, linkedProducts: d, sampleImage: f, cta:
32
32
  }),
33
33
  h && /* @__PURE__ */ s("div", {
34
34
  className: "flex w-75 gap-4 self-center",
35
- children: [!!h.pdfDownload && /* @__PURE__ */ o(t, {
35
+ children: [/* @__PURE__ */ o(t, {
36
36
  className: "w-full",
37
37
  variant: "secondary-black",
38
38
  children: h.pdfDownload
39
- }), !!h.wordDownload && /* @__PURE__ */ o(t, {
39
+ }), /* @__PURE__ */ o(t, {
40
40
  className: "w-full",
41
41
  variant: "secondary-black",
42
42
  children: h.wordDownload
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+
3
+ export declare const LeadGateErrorModal: FC<LeadGateErrorModalProps>;
4
+
5
+ export declare interface LeadGateErrorModalProps {
6
+ isOpen: boolean;
7
+ setIsOpen: (open: boolean) => void;
8
+ title: string;
9
+ closeLeadGateLabel: string;
10
+ heading: string;
11
+ description: string;
12
+ ctaLabel: string;
13
+ onRetry?: () => void;
14
+ }
15
+
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ "use client";
3
+ import { ClearIcon as e } from "./ClearIcon.js";
4
+ import { Button as t } from "./Button.js";
5
+ import { Markdown as n } from "./Markdown.js";
6
+ import { Modal as r } from "./Modal.js";
7
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
8
+ //#region lib/components/molecules/LeadGateErrorModal.tsx
9
+ var o = ({ isOpen: o, setIsOpen: s, title: c, closeLeadGateLabel: l, heading: u, description: d, ctaLabel: f, onRetry: p }) => /* @__PURE__ */ i(r, {
10
+ isOpen: o,
11
+ setIsOpen: s,
12
+ showClose: !1,
13
+ overlayVariant: "grey",
14
+ children: /* @__PURE__ */ a("div", {
15
+ className: "shadow-small flex w-[338px] max-w-[calc(100vw-3rem)] flex-col rounded-sm bg-white p-6 sm:w-96",
16
+ children: [/* @__PURE__ */ a("div", {
17
+ className: "flex items-center gap-2",
18
+ children: [/* @__PURE__ */ i("div", {
19
+ className: "flex min-w-0 flex-1 items-center gap-1",
20
+ children: /* @__PURE__ */ i("h2", {
21
+ id: "lead-gate-error-modal-title",
22
+ className: "text-big min-w-0 flex-1 font-bold break-words text-neutral-800",
23
+ children: c
24
+ })
25
+ }), /* @__PURE__ */ i(t, {
26
+ type: "button",
27
+ variant: "tertiary-icon",
28
+ className: "shrink-0 p-0!",
29
+ dataQa: "lead_gate_close",
30
+ "aria-label": l,
31
+ onClick: () => {
32
+ s(!1);
33
+ },
34
+ children: /* @__PURE__ */ i(e, {
35
+ width: 24,
36
+ height: 24,
37
+ fill: "var(--color-neutral-800)",
38
+ "aria-hidden": "true"
39
+ })
40
+ })]
41
+ }), /* @__PURE__ */ a("div", {
42
+ className: "mt-4 flex w-full flex-col",
43
+ children: [/* @__PURE__ */ i("span", { className: "h-px w-full bg-neutral-200" }), /* @__PURE__ */ a("div", {
44
+ className: "mt-10 flex w-full flex-col gap-10",
45
+ children: [/* @__PURE__ */ a("div", {
46
+ className: "mx-auto flex w-full max-w-80 flex-col items-center gap-4",
47
+ children: [/* @__PURE__ */ i("div", {
48
+ className: "bg-error-20 flex size-[74px] items-center justify-center rounded-full",
49
+ children: /* @__PURE__ */ i(e, {
50
+ width: 48,
51
+ height: 48,
52
+ fill: "var(--color-error-500)",
53
+ "aria-hidden": "true"
54
+ })
55
+ }), /* @__PURE__ */ a("div", {
56
+ className: "flex w-full flex-col gap-2 text-center",
57
+ children: [/* @__PURE__ */ i("p", {
58
+ className: "text-big font-bold text-neutral-800",
59
+ children: u
60
+ }), /* @__PURE__ */ i(n, {
61
+ className: "text-medium w-auto! text-neutral-800 [&_p]:mb-0",
62
+ content: d
63
+ })]
64
+ })]
65
+ }), /* @__PURE__ */ i(t, {
66
+ type: "button",
67
+ variant: "primary-green",
68
+ className: "w-full",
69
+ dataQa: "lead_gate_retry",
70
+ onClick: p,
71
+ children: f
72
+ })]
73
+ })]
74
+ })]
75
+ })
76
+ });
77
+ //#endregion
78
+ export { o as LeadGateErrorModal };
@@ -0,0 +1,33 @@
1
+ import { FC } from 'react';
2
+
3
+ export declare const LeadGateModal: FC<LeadGateModalProps>;
4
+
5
+ export declare interface LeadGateModalErrors {
6
+ email?: boolean;
7
+ hasAcceptedTerms?: boolean;
8
+ }
9
+
10
+ export declare interface LeadGateModalPayload {
11
+ email: string;
12
+ hasAcceptedTerms: boolean;
13
+ hasAcceptedMarketing: boolean;
14
+ }
15
+
16
+ export declare interface LeadGateModalProps {
17
+ isOpen: boolean;
18
+ setIsOpen: (open: boolean) => void;
19
+ title: string;
20
+ closeLeadGateLabel: string;
21
+ description: string;
22
+ emailLabel: string;
23
+ emailPlaceholder: string;
24
+ emailErrorMessage: string;
25
+ termsLabel: string;
26
+ marketingLabel: string;
27
+ ctaLabel: string;
28
+ payload: LeadGateModalPayload;
29
+ errors?: LeadGateModalErrors;
30
+ onPayloadChange: (payload: LeadGateModalPayload) => void;
31
+ onSubmit?: () => void;
32
+ }
33
+
@@ -0,0 +1,128 @@
1
+ "use client";
2
+ "use client";
3
+ import { ClearIcon as e } from "./ClearIcon.js";
4
+ import { Button as t } from "./Button.js";
5
+ import { Markdown as n } from "./Markdown.js";
6
+ import { Input as r } from "./Input.js";
7
+ import { Checkbox as i } from "./Checkbox.js";
8
+ import { Modal as a } from "./Modal.js";
9
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
10
+ //#region lib/components/molecules/LeadGateModal.tsx
11
+ var c = (e) => {
12
+ !(e.target instanceof HTMLElement) || !e.target.closest("a") || e.stopPropagation();
13
+ }, l = ({ isOpen: l, setIsOpen: u, title: d, closeLeadGateLabel: f, description: p, emailLabel: m, emailPlaceholder: h, emailErrorMessage: g, termsLabel: _, marketingLabel: v, ctaLabel: y, payload: b, errors: x = {}, onPayloadChange: S, onSubmit: C }) => {
14
+ let w = !!(x.email || x.hasAcceptedTerms);
15
+ return /* @__PURE__ */ o(a, {
16
+ isOpen: l,
17
+ setIsOpen: u,
18
+ showClose: !1,
19
+ overlayVariant: "grey",
20
+ children: /* @__PURE__ */ s("div", {
21
+ className: "shadow-small flex w-[338px] max-w-[calc(100vw-3rem)] flex-col rounded-sm bg-white p-6 sm:w-96",
22
+ children: [/* @__PURE__ */ s("div", {
23
+ className: "flex items-center gap-2",
24
+ children: [/* @__PURE__ */ o("div", {
25
+ className: "flex min-w-0 flex-1 items-center gap-1",
26
+ children: /* @__PURE__ */ o("h2", {
27
+ id: "lead-gate-capture-modal-title",
28
+ className: "text-big min-w-0 flex-1 font-bold break-words text-neutral-800",
29
+ children: d
30
+ })
31
+ }), /* @__PURE__ */ o(t, {
32
+ type: "button",
33
+ variant: "tertiary-icon",
34
+ className: "shrink-0 p-0!",
35
+ dataQa: "lead_gate_close",
36
+ "aria-label": f,
37
+ onClick: () => {
38
+ u(!1);
39
+ },
40
+ children: /* @__PURE__ */ o(e, {
41
+ width: 24,
42
+ height: 24,
43
+ fill: "var(--color-neutral-800)",
44
+ "aria-hidden": "true"
45
+ })
46
+ })]
47
+ }), /* @__PURE__ */ s("div", {
48
+ className: "mt-4 flex w-full flex-col gap-4",
49
+ children: [/* @__PURE__ */ o("span", { className: "h-px w-full bg-neutral-200" }), /* @__PURE__ */ s("form", {
50
+ className: "flex w-full flex-col gap-4",
51
+ noValidate: !0,
52
+ onSubmit: (e) => {
53
+ e.preventDefault(), C?.();
54
+ },
55
+ children: [
56
+ /* @__PURE__ */ o(n, {
57
+ className: "text-medium w-auto! text-center text-neutral-800 [&_p]:mb-0",
58
+ content: p
59
+ }),
60
+ /* @__PURE__ */ o(r, {
61
+ id: "lead-gate-email",
62
+ name: "email",
63
+ type: "email",
64
+ label: m,
65
+ placeholder: h,
66
+ dataQa: "lead_gate_email",
67
+ value: b.email,
68
+ error: w,
69
+ errorMessage: g,
70
+ onInputChange: (e) => {
71
+ S({
72
+ ...b,
73
+ email: e
74
+ });
75
+ }
76
+ }),
77
+ /* @__PURE__ */ s("div", {
78
+ className: "flex flex-col gap-4",
79
+ children: [/* @__PURE__ */ o(i, {
80
+ id: "lead-gate-terms",
81
+ name: "hasAcceptedTerms",
82
+ dataQa: "lead_gate_terms",
83
+ checked: b.hasAcceptedTerms,
84
+ error: x.hasAcceptedTerms,
85
+ onChange: (e) => {
86
+ S({
87
+ ...b,
88
+ hasAcceptedTerms: e.currentTarget.checked
89
+ });
90
+ },
91
+ children: /* @__PURE__ */ o("span", {
92
+ className: "min-w-0",
93
+ onClick: c,
94
+ onKeyDown: c,
95
+ children: /* @__PURE__ */ o(n, {
96
+ className: "[&_p]:mb-0",
97
+ content: _
98
+ })
99
+ })
100
+ }), /* @__PURE__ */ o(i, {
101
+ id: "lead-gate-marketing",
102
+ name: "hasAcceptedMarketing",
103
+ dataQa: "lead_gate_marketing",
104
+ checked: b.hasAcceptedMarketing,
105
+ onChange: (e) => {
106
+ S({
107
+ ...b,
108
+ hasAcceptedMarketing: e.currentTarget.checked
109
+ });
110
+ },
111
+ children: v
112
+ })]
113
+ }),
114
+ /* @__PURE__ */ o(t, {
115
+ type: "submit",
116
+ variant: "primary-green",
117
+ className: "w-full",
118
+ dataQa: "lead_gate_download",
119
+ children: y
120
+ })
121
+ ]
122
+ })]
123
+ })]
124
+ })
125
+ });
126
+ };
127
+ //#endregion
128
+ export { l as LeadGateModal };
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+
3
+ export declare type LeadGateMediaContent = {
4
+ url: string;
5
+ alternativeText?: string | null;
6
+ };
7
+
8
+ export declare const LeadGateSuccessFeatureItem: FC<LeadGateSuccessFeatureItemProps>;
9
+
10
+ export declare interface LeadGateSuccessFeatureItemProps {
11
+ title: string;
12
+ description: string;
13
+ icon?: LeadGateMediaContent | null;
14
+ }
15
+
@@ -0,0 +1,27 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ //#region lib/components/molecules/LeadGateSuccessFeatureItem.tsx
3
+ var n = ({ url: t }) => /* @__PURE__ */ e("div", {
4
+ className: "bg-primary-500 h-6 w-6",
5
+ style: {
6
+ WebkitMask: `url(${t}) no-repeat center / contain`,
7
+ mask: `url(${t}) no-repeat center / contain`
8
+ },
9
+ "aria-hidden": "true"
10
+ }), r = ({ icon: r, title: i, description: a }) => /* @__PURE__ */ t("li", {
11
+ className: "flex items-start gap-4",
12
+ children: [r?.url ? /* @__PURE__ */ e("span", {
13
+ className: "mt-0.5 shrink-0",
14
+ children: /* @__PURE__ */ e(n, { url: r.url })
15
+ }) : null, /* @__PURE__ */ t("div", {
16
+ className: "flex min-w-0 flex-1 flex-col gap-2",
17
+ children: [/* @__PURE__ */ e("p", {
18
+ className: "text-medium font-bold text-neutral-800",
19
+ children: i
20
+ }), /* @__PURE__ */ e("p", {
21
+ className: "text-small text-neutral-600",
22
+ children: a
23
+ })]
24
+ })]
25
+ });
26
+ //#endregion
27
+ export { r as LeadGateSuccessFeatureItem };
@@ -0,0 +1,28 @@
1
+ import { FC } from 'react';
2
+
3
+ export declare type LeadGateMediaContent = {
4
+ url: string;
5
+ alternativeText?: string | null;
6
+ };
7
+
8
+ export declare interface LeadGateSuccessFeatureItemProps {
9
+ title: string;
10
+ description: string;
11
+ icon?: LeadGateMediaContent | null;
12
+ }
13
+
14
+ export declare const LeadGateSuccessModal: FC<LeadGateSuccessModalProps>;
15
+
16
+ export declare interface LeadGateSuccessModalProps {
17
+ isOpen: boolean;
18
+ setIsOpen: (open: boolean) => void;
19
+ title: string;
20
+ closeLeadGateLabel: string;
21
+ subtitle: string;
22
+ featureItems: LeadGateSuccessFeatureItemProps[];
23
+ ctaLabel: string;
24
+ footer: string;
25
+ headerImage: LeadGateMediaContent | null;
26
+ onCtaClick?: () => void;
27
+ }
28
+
@@ -0,0 +1,96 @@
1
+ "use client";
2
+ "use client";
3
+ import { DoneCircleIcon as e } from "./DoneCircleIcon.js";
4
+ import { DocOutlineIcon as t } from "./DocOutlineIcon.js";
5
+ import { ClearIcon as n } from "./ClearIcon.js";
6
+ import { Button as r } from "./Button.js";
7
+ import { Markdown as i } from "./Markdown.js";
8
+ import { Modal as a } from "./Modal.js";
9
+ import { LeadGateSuccessFeatureItem as o } from "./LeadGateSuccessFeatureItem.js";
10
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
11
+ //#region lib/components/molecules/LeadGateSuccessModal.tsx
12
+ var l = ({ isOpen: l, setIsOpen: u, title: d, closeLeadGateLabel: f, subtitle: p, featureItems: m, ctaLabel: h, footer: g, headerImage: _, onCtaClick: v }) => /* @__PURE__ */ s(a, {
13
+ isOpen: l,
14
+ setIsOpen: u,
15
+ showClose: !1,
16
+ overlayVariant: "grey",
17
+ children: /* @__PURE__ */ c("div", {
18
+ className: "shadow-small flex w-[338px] max-w-[calc(100vw-3rem)] flex-col rounded-sm bg-white p-6 sm:w-96",
19
+ children: [/* @__PURE__ */ c("div", {
20
+ className: "flex items-center gap-2",
21
+ children: [/* @__PURE__ */ c("div", {
22
+ className: "flex min-w-0 flex-1 items-center gap-1",
23
+ children: [/* @__PURE__ */ s(e, {
24
+ width: 20,
25
+ height: 20,
26
+ fill: "var(--color-primary-500)",
27
+ "aria-hidden": "true",
28
+ className: "shrink-0"
29
+ }), /* @__PURE__ */ s("h2", {
30
+ id: "lead-gate-success-modal-title",
31
+ className: "text-big min-w-0 flex-1 font-bold break-words text-neutral-800",
32
+ children: d
33
+ })]
34
+ }), /* @__PURE__ */ s(r, {
35
+ type: "button",
36
+ variant: "tertiary-icon",
37
+ className: "shrink-0 p-0!",
38
+ dataQa: "lead_gate_close",
39
+ "aria-label": f,
40
+ onClick: () => {
41
+ u(!1);
42
+ },
43
+ children: /* @__PURE__ */ s(n, {
44
+ width: 24,
45
+ height: 24,
46
+ fill: "var(--color-neutral-800)",
47
+ "aria-hidden": "true"
48
+ })
49
+ })]
50
+ }), /* @__PURE__ */ c("div", {
51
+ className: "mt-6 flex w-full flex-col gap-6",
52
+ children: [
53
+ /* @__PURE__ */ s("div", {
54
+ className: "relative h-[227px] w-[302px] max-w-full overflow-hidden",
55
+ children: _ ? /* @__PURE__ */ s("img", {
56
+ src: _.url,
57
+ alt: _.alternativeText ?? "",
58
+ width: 302,
59
+ height: 227,
60
+ className: "h-full w-full object-contain"
61
+ }) : null
62
+ }),
63
+ /* @__PURE__ */ s("p", {
64
+ className: "text-medium text-primary-500 w-full text-center",
65
+ children: p
66
+ }),
67
+ /* @__PURE__ */ s("span", { className: "h-px w-full bg-neutral-200" }),
68
+ /* @__PURE__ */ s("ul", {
69
+ className: "flex w-full flex-col gap-4",
70
+ children: m.map((e) => /* @__PURE__ */ s(o, { ...e }, e.title))
71
+ }),
72
+ /* @__PURE__ */ c("div", {
73
+ className: "flex w-full flex-col gap-4",
74
+ children: [/* @__PURE__ */ c(r, {
75
+ type: "button",
76
+ variant: "primary-green",
77
+ className: "w-full",
78
+ dataQa: "lead_gate_success_cta",
79
+ onClick: v,
80
+ children: [/* @__PURE__ */ s(t, {
81
+ width: 22,
82
+ height: 22,
83
+ fill: "currentColor",
84
+ "aria-hidden": "true"
85
+ }), h]
86
+ }), /* @__PURE__ */ s(i, {
87
+ className: "text-extra-small [&_strong]:text-primary-500 text-center text-neutral-600 [&_p]:mb-0",
88
+ content: g
89
+ })]
90
+ })
91
+ ]
92
+ })]
93
+ })
94
+ });
95
+ //#endregion
96
+ export { l as LeadGateSuccessModal };
@@ -1,7 +1,9 @@
1
1
  import { JSX } from 'react';
2
2
  import { ReactNode } from 'react';
3
3
 
4
- export declare const Modal: ({ trigger, children, isOpen, setIsOpen, showClose, onTrigger }: ModalProps) => JSX.Element;
4
+ export declare const Modal: ({ trigger, children, isOpen, setIsOpen, showClose, onTrigger, overlayVariant }: ModalProps) => JSX.Element;
5
+
6
+ export declare type ModalOverlayVariant = 'primary' | 'grey';
5
7
 
6
8
  export interface ModalProps {
7
9
  trigger?: ReactNode;
@@ -10,5 +12,6 @@ export interface ModalProps {
10
12
  setIsOpen: (open: boolean) => void;
11
13
  showClose?: boolean;
12
14
  onTrigger?: () => void;
15
+ overlayVariant?: ModalOverlayVariant;
13
16
  }
14
17
 
@@ -3,51 +3,55 @@
3
3
  import { CloseIcon as e } from "./CloseIcon.js";
4
4
  import { useEffect as t } from "react";
5
5
  import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
6
- import { createPortal as a } from "react-dom";
6
+ import a from "clsx";
7
+ import { createPortal as o } from "react-dom";
7
8
  //#region lib/components/atoms/Modal.tsx
8
- var o = ({ trigger: o, children: s, isOpen: c, setIsOpen: l, showClose: u, onTrigger: d }) => {
9
- let f = () => {
10
- d?.(), l(!0);
11
- }, p = () => {
12
- l(!1);
9
+ var s = {
10
+ primary: "bg-primary-900/80",
11
+ grey: "bg-backdrop-grey"
12
+ }, c = ({ trigger: c, children: l, isOpen: u, setIsOpen: d, showClose: f, onTrigger: p, overlayVariant: m = "primary" }) => {
13
+ let h = () => {
14
+ p?.(), d(!0);
15
+ }, g = () => {
16
+ d(!1);
13
17
  };
14
18
  return t(() => {
15
- if (!c) return;
19
+ if (!u) return;
16
20
  let e = document.body.style.overflow;
17
21
  return document.body.style.overflow = "hidden", () => {
18
22
  document.body.style.overflow = e;
19
23
  };
20
- }, [c]), /* @__PURE__ */ i(n, { children: [!!o && /* @__PURE__ */ r("button", {
24
+ }, [u]), /* @__PURE__ */ i(n, { children: [!!c && /* @__PURE__ */ r("button", {
21
25
  type: "button",
22
26
  "aria-label": "zoom",
23
- onClick: f,
27
+ onClick: h,
24
28
  className: "flex w-full cursor-pointer justify-center",
25
- children: o
26
- }), c && a(/* @__PURE__ */ i("div", {
29
+ children: c
30
+ }), u && o(/* @__PURE__ */ i("div", {
27
31
  role: "dialog",
28
32
  "aria-modal": "true",
29
- className: "bg-primary-900/80 fixed inset-0 z-1001 flex items-center justify-center",
33
+ className: a(s[m], "fixed inset-0 z-1001"),
30
34
  children: [/* @__PURE__ */ r("button", {
31
35
  type: "button",
32
36
  tabIndex: -1,
33
37
  "data-testid": "modal-backdrop",
34
- className: "absolute inset-0 cursor-default border-none bg-transparent p-0",
35
- onClick: p,
38
+ className: "absolute inset-0 z-0 cursor-default border-none bg-transparent p-0",
39
+ onClick: g,
36
40
  "aria-label": "Close modal"
37
41
  }), /* @__PURE__ */ r("div", {
38
- className: "pointer-events-none relative flex max-h-screen w-full items-start justify-center overflow-y-auto px-6 py-24",
42
+ className: "pointer-events-none relative z-10 flex min-h-full w-full items-center justify-center overflow-y-auto p-6",
39
43
  children: /* @__PURE__ */ i("div", {
40
44
  className: "pointer-events-auto relative",
41
- children: [u && /* @__PURE__ */ r("button", {
45
+ children: [f && /* @__PURE__ */ r("button", {
42
46
  type: "button",
43
47
  className: "absolute top-4 right-4 z-10 cursor-pointer rounded-full p-2 transition-colors hover:bg-neutral-100 focus:outline-none",
44
- onClick: p,
48
+ onClick: g,
45
49
  "aria-label": "Close",
46
50
  children: /* @__PURE__ */ r(e, {})
47
- }), s]
51
+ }), l]
48
52
  })
49
53
  })]
50
54
  }), document.body)] });
51
55
  };
52
56
  //#endregion
53
- export { o as Modal };
57
+ export { c as Modal };
@@ -48,11 +48,11 @@ var s = ({ title: s, footerText: c, preview: l, cta: u, pdfDownload: d, wordDown
48
48
  children: c
49
49
  }), /* @__PURE__ */ o("div", {
50
50
  className: "flex w-full gap-4",
51
- children: [!!d && /* @__PURE__ */ a(n, {
51
+ children: [/* @__PURE__ */ a(n, {
52
52
  className: "w-full",
53
53
  variant: "secondary-black",
54
54
  children: d
55
- }), !!f && /* @__PURE__ */ a(n, {
55
+ }), /* @__PURE__ */ a(n, {
56
56
  className: "w-full",
57
57
  variant: "secondary-black",
58
58
  children: f
@@ -793,6 +793,78 @@ export declare interface LawGeniusStepCardProps {
793
793
  iconAlt?: string;
794
794
  }
795
795
 
796
+ export declare const LeadGateErrorModal: FC<LeadGateErrorModalProps>;
797
+
798
+ export declare interface LeadGateErrorModalProps {
799
+ isOpen: boolean;
800
+ setIsOpen: (open: boolean) => void;
801
+ title: string;
802
+ closeLeadGateLabel: string;
803
+ heading: string;
804
+ description: string;
805
+ ctaLabel: string;
806
+ onRetry?: () => void;
807
+ }
808
+
809
+ export declare type LeadGateMediaContent = {
810
+ url: string;
811
+ alternativeText?: string | null;
812
+ };
813
+
814
+ export declare const LeadGateModal: FC<LeadGateModalProps>;
815
+
816
+ export declare interface LeadGateModalErrors {
817
+ email?: boolean;
818
+ hasAcceptedTerms?: boolean;
819
+ }
820
+
821
+ export declare interface LeadGateModalPayload {
822
+ email: string;
823
+ hasAcceptedTerms: boolean;
824
+ hasAcceptedMarketing: boolean;
825
+ }
826
+
827
+ export declare interface LeadGateModalProps {
828
+ isOpen: boolean;
829
+ setIsOpen: (open: boolean) => void;
830
+ title: string;
831
+ closeLeadGateLabel: string;
832
+ description: string;
833
+ emailLabel: string;
834
+ emailPlaceholder: string;
835
+ emailErrorMessage: string;
836
+ termsLabel: string;
837
+ marketingLabel: string;
838
+ ctaLabel: string;
839
+ payload: LeadGateModalPayload;
840
+ errors?: LeadGateModalErrors;
841
+ onPayloadChange: (payload: LeadGateModalPayload) => void;
842
+ onSubmit?: () => void;
843
+ }
844
+
845
+ export declare const LeadGateSuccessFeatureItem: FC<LeadGateSuccessFeatureItemProps>;
846
+
847
+ export declare interface LeadGateSuccessFeatureItemProps {
848
+ title: string;
849
+ description: string;
850
+ icon?: LeadGateMediaContent | null;
851
+ }
852
+
853
+ export declare const LeadGateSuccessModal: FC<LeadGateSuccessModalProps>;
854
+
855
+ export declare interface LeadGateSuccessModalProps {
856
+ isOpen: boolean;
857
+ setIsOpen: (open: boolean) => void;
858
+ title: string;
859
+ closeLeadGateLabel: string;
860
+ subtitle: string;
861
+ featureItems: LeadGateSuccessFeatureItemProps[];
862
+ ctaLabel: string;
863
+ footer: string;
864
+ headerImage: LeadGateMediaContent | null;
865
+ onCtaClick?: () => void;
866
+ }
867
+
796
868
  export declare const LinkedinIcon: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
797
869
 
798
870
  export declare interface LinkedProductProps {
@@ -875,7 +947,9 @@ export declare interface MobileMenuSection {
875
947
  content?: ReactNode | null;
876
948
  }
877
949
 
878
- export declare const Modal: ({ trigger, children, isOpen, setIsOpen, showClose, onTrigger }: ModalProps) => JSX.Element;
950
+ export declare const Modal: ({ trigger, children, isOpen, setIsOpen, showClose, onTrigger, overlayVariant }: ModalProps) => JSX.Element;
951
+
952
+ export declare type ModalOverlayVariant = 'primary' | 'grey';
879
953
 
880
954
  export interface ModalProps {
881
955
  trigger?: ReactNode;
@@ -884,6 +958,7 @@ export interface ModalProps {
884
958
  setIsOpen: (open: boolean) => void;
885
959
  showClose?: boolean;
886
960
  onTrigger?: () => void;
961
+ overlayVariant?: ModalOverlayVariant;
887
962
  }
888
963
 
889
964
  export declare const MoreTemplatesSection: FC<PopularDocumentsProps>;
package/dist/index.js CHANGED
@@ -98,52 +98,56 @@ import { Tooltips as Ve } from "./components/Tooltips.js";
98
98
  import { FreeDocumentModal as He } from "./components/FreeDocumentModal.js";
99
99
  import { Article as Ue } from "./components/Article.js";
100
100
  import { ContinueEditingBanner as We } from "./components/ContinueEditingBanner.js";
101
- import { BlogSection as Ge } from "./components/BlogSection.js";
102
- import { AsideNavMenu as Ke } from "./components/AsideNavMenu.js";
103
- import { BenefitsBar as qe } from "./components/BenefitsBar.js";
104
- import { CategoriesSection as Je } from "./components/CategoriesSection.js";
105
- import { ContactBanner as Ye } from "./components/ContactBanner.js";
106
- import { FaqSection as Xe } from "./components/FaqSection.js";
107
- import { FaqTeaserSection as Ze } from "./components/FaqTeaserSection.js";
108
- import { Footer as Qe } from "./components/Footer.js";
109
- import { MobileMenu as $e } from "./components/MobileMenu.js";
110
- import { Header as et } from "./components/Header.js";
111
- import { HeroSection as tt } from "./components/HeroSection.js";
112
- import { Hero2Section as nt } from "./components/Hero2Section.js";
113
- import { HowItWorksSection as rt } from "./components/HowItWorksSection.js";
114
- import { Jumbotron as it } from "./components/Jumbotron.js";
115
- import { Jumbotron2 as at } from "./components/Jumbotron2.js";
116
- import { Jumbotron3 as ot } from "./components/Jumbotron3.js";
117
- import { MoreTemplatesSection as st } from "./components/MoreTemplatesSection.js";
118
- import { PricingOfferingsSection as ct } from "./components/PricingOfferingsSection.js";
119
- import { PricingPlansSection as lt } from "./components/PricingPlansSection.js";
120
- import { PricingSupportTeaserSection as ut } from "./components/PricingSupportTeaserSection.js";
121
- import { Preform as dt } from "./components/Preform.js";
122
- import { PreviewSection as ft } from "./components/PreviewSection.js";
123
- import { ProcessSection as pt } from "./components/ProcessSection.js";
124
- import { ProductInfo as mt } from "./components/ProductInfo.js";
125
- import { RatafiaSection as ht } from "./components/RatafiaSection.js";
126
- import { TrustSection as gt } from "./components/TrustSection.js";
127
- import { TryNowSection as _t } from "./components/TryNowSection.js";
128
- import { IntroSection as vt } from "./components/IntroSection.js";
129
- import { MissionSection as yt } from "./components/MissionSection.js";
130
- import { ValuesSection as bt } from "./components/ValuesSection.js";
131
- import { Storyline as xt } from "./components/Storyline.js";
132
- import { WeHelpSection as St } from "./components/WeHelpSection.js";
133
- import { GuidelinesSection as Ct } from "./components/GuidelinesSection.js";
134
- import { ExpertsSection as wt } from "./components/ExpertsSection.js";
135
- import { FastAndSimpleSection as Tt } from "./components/FastAndSimpleSection.js";
136
- import { FeaturesSection as Et } from "./components/FeaturesSection.js";
137
- import { BannerTagSection as Dt } from "./components/BannerTagSection.js";
138
- import { PartnersSection as Ot } from "./components/PartnersSection.js";
139
- import { CtaFeatureTag as kt, CtaSample as At, CtaSection as jt } from "./components/CtaSection.js";
140
- import { ContactUsSection as Mt } from "./components/ContactUsSection.js";
141
- import { UnsubscribeSection as Nt } from "./components/UnsubscribeSection.js";
142
- import { JumboCard as Pt } from "./components/JumboCard.js";
143
- import { DocumentCategories as Ft } from "./components/DocumentCategories.js";
144
- import { DocumentSection as It } from "./components/DocumentSection.js";
145
- import { ContactFormSection as Lt } from "./components/ContactFormSection.js";
146
- import { ContactMethodsSection as Rt } from "./components/ContactMethodsSection.js";
147
- import { JumboDocs as zt } from "./components/JumboDocs.js";
148
- import { TrustPilotSection as Bt } from "./components/TrustPilotSection.js";
149
- export { i as AddIcon, Re as AlternativeSubtypeDocument, Ue as Article, Ke as AsideNavMenu, e as Badge, Dt as BannerTagSection, qe as BenefitsBar, Ge as BlogSection, Q as Breadcrumb, y as BusinessIcon, ee as Button, B as CaFlagIcon, Je as CategoriesSection, X as CheckIcon, ce as Checkbox, c as ChevronDownIcon, l as ChevronRightIcon, J as ClearIcon, N as CloseIcon, D as CommunicationIcon, Ye as ContactBanner, Lt as ContactFormSection, Le as ContactMethodCard, Rt as ContactMethodsSection, Mt as ContactUsSection, he as ContentItem, We as ContinueEditingBanner, ge as CookiesBar, kt as CtaFeatureTag, At as CtaSample, jt as CtaSection, H as DeFlagIcon, ze as DefaultSubtypeDocument, O as DocEditFillIcon, I as DocOutlineIcon, Ft as DocumentCategories, Ie as DocumentItem, Be as DocumentReviewUploadCard, It as DocumentSection, T as DoneCircleIcon, q as DoneIcon, x as EmploymentIcon, _ as EstatePlanningIcon, wt as ExpertsSection, t as FacebookIcon, b as FamilyIcon, ve as FaqItem, _e as FaqItemWrapper, Xe as FaqSection, Ze as FaqTeaserSection, Tt as FastAndSimpleSection, Et as FeaturesSection, L as FillFormsIcon, h as FinanceIcon, Qe as Footer, ye as FooterNav, He as FreeDocumentModal, V as GbFlagIcon, Ct as GuidelinesSection, M as HamburgerIcon, et as Header, E as HelpGuideIcon, nt as Hero2Section, be as HeroImageShell, tt as HeroSection, te as HighlightedText, F as HistoryIcon, rt as HowItWorksSection, pe as ImageWithPreview, u as InfoIcon, ae as Input, s as InstagramIcon, vt as IntroSection, ne as Item, Pt as JumboCard, zt as JumboDocs, it as Jumbotron, at as Jumbotron2, ot as Jumbotron3, xe as LanguageSelector, Se as LawGeniusImageShell, Ce as LawGeniusStepCard, le as LinkWrapper, me as LinkedProducts, o as LinkedinIcon, P as LocationIcon, j as MailFillIcon, ie as Markdown, yt as MissionSection, $e as MobileMenu, ue as Modal, st as MoreTemplatesSection, we as NavMenu, re as NavMenuItem, Ot as PartnersSection, v as PersonalIcon, fe as PhoneButton, r as PhoneIcon, k as PhoneTalkIcon, A as PlusIcon, dt as Preform, Ee as PreformOption, De as PreviewDownload, ft as PreviewSection, ct as PricingOfferingsSection, Te as PricingPlanCard, lt as PricingPlansSection, ut as PricingSupportTeaserSection, R as PrintIcon, C as PrivateIcon, pt as ProcessSection, mt as ProductInfo, G as QuestionIcon, Y as QuestionOutlineIcon, ht as RatafiaSection, g as RealStateIcon, Oe as ResourcesImageShell, m as SaveIcon, U as ScalatorIcon, ke as SearchBar, d as SearchIcon, Ae as SectionHeading, Z as SecurityIcon, oe as Select, K as SinglePhoneIcon, W as SparkIcon, S as StarsIcon, je as StepImageShell, xt as Storyline, Ne as TableOfContents, Me as TableOfContentsWrapper, se as Textarea, n as TikTokIcon, z as TimeIcon, de as Toast, Ve as Tooltips, Bt as TrustPilotSection, gt as TrustSection, Pe as TrustedBadge, p as TrustedIcon, _t as TryNowSection, Fe as TwoColumnSection, Nt as UnsubscribeSection, f as UsFlagIcon, bt as ValuesSection, w as VerifiedIcon, St as WeHelpSection, a as ZoomIcon, $ as getButtonClasses };
101
+ import { LeadGateErrorModal as Ge } from "./components/LeadGateErrorModal.js";
102
+ import { LeadGateModal as Ke } from "./components/LeadGateModal.js";
103
+ import { LeadGateSuccessFeatureItem as qe } from "./components/LeadGateSuccessFeatureItem.js";
104
+ import { LeadGateSuccessModal as Je } from "./components/LeadGateSuccessModal.js";
105
+ import { BlogSection as Ye } from "./components/BlogSection.js";
106
+ import { AsideNavMenu as Xe } from "./components/AsideNavMenu.js";
107
+ import { BenefitsBar as Ze } from "./components/BenefitsBar.js";
108
+ import { CategoriesSection as Qe } from "./components/CategoriesSection.js";
109
+ import { ContactBanner as $e } from "./components/ContactBanner.js";
110
+ import { FaqSection as et } from "./components/FaqSection.js";
111
+ import { FaqTeaserSection as tt } from "./components/FaqTeaserSection.js";
112
+ import { Footer as nt } from "./components/Footer.js";
113
+ import { MobileMenu as rt } from "./components/MobileMenu.js";
114
+ import { Header as it } from "./components/Header.js";
115
+ import { HeroSection as at } from "./components/HeroSection.js";
116
+ import { Hero2Section as ot } from "./components/Hero2Section.js";
117
+ import { HowItWorksSection as st } from "./components/HowItWorksSection.js";
118
+ import { Jumbotron as ct } from "./components/Jumbotron.js";
119
+ import { Jumbotron2 as lt } from "./components/Jumbotron2.js";
120
+ import { Jumbotron3 as ut } from "./components/Jumbotron3.js";
121
+ import { MoreTemplatesSection as dt } from "./components/MoreTemplatesSection.js";
122
+ import { PricingOfferingsSection as ft } from "./components/PricingOfferingsSection.js";
123
+ import { PricingPlansSection as pt } from "./components/PricingPlansSection.js";
124
+ import { PricingSupportTeaserSection as mt } from "./components/PricingSupportTeaserSection.js";
125
+ import { Preform as ht } from "./components/Preform.js";
126
+ import { PreviewSection as gt } from "./components/PreviewSection.js";
127
+ import { ProcessSection as _t } from "./components/ProcessSection.js";
128
+ import { ProductInfo as vt } from "./components/ProductInfo.js";
129
+ import { RatafiaSection as yt } from "./components/RatafiaSection.js";
130
+ import { TrustSection as bt } from "./components/TrustSection.js";
131
+ import { TryNowSection as xt } from "./components/TryNowSection.js";
132
+ import { IntroSection as St } from "./components/IntroSection.js";
133
+ import { MissionSection as Ct } from "./components/MissionSection.js";
134
+ import { ValuesSection as wt } from "./components/ValuesSection.js";
135
+ import { Storyline as Tt } from "./components/Storyline.js";
136
+ import { WeHelpSection as Et } from "./components/WeHelpSection.js";
137
+ import { GuidelinesSection as Dt } from "./components/GuidelinesSection.js";
138
+ import { ExpertsSection as Ot } from "./components/ExpertsSection.js";
139
+ import { FastAndSimpleSection as kt } from "./components/FastAndSimpleSection.js";
140
+ import { FeaturesSection as At } from "./components/FeaturesSection.js";
141
+ import { BannerTagSection as jt } from "./components/BannerTagSection.js";
142
+ import { PartnersSection as Mt } from "./components/PartnersSection.js";
143
+ import { CtaFeatureTag as Nt, CtaSample as Pt, CtaSection as Ft } from "./components/CtaSection.js";
144
+ import { ContactUsSection as It } from "./components/ContactUsSection.js";
145
+ import { UnsubscribeSection as Lt } from "./components/UnsubscribeSection.js";
146
+ import { JumboCard as Rt } from "./components/JumboCard.js";
147
+ import { DocumentCategories as zt } from "./components/DocumentCategories.js";
148
+ import { DocumentSection as Bt } from "./components/DocumentSection.js";
149
+ import { ContactFormSection as Vt } from "./components/ContactFormSection.js";
150
+ import { ContactMethodsSection as Ht } from "./components/ContactMethodsSection.js";
151
+ import { JumboDocs as Ut } from "./components/JumboDocs.js";
152
+ import { TrustPilotSection as Wt } from "./components/TrustPilotSection.js";
153
+ export { i as AddIcon, Re as AlternativeSubtypeDocument, Ue as Article, Xe as AsideNavMenu, e as Badge, jt as BannerTagSection, Ze as BenefitsBar, Ye as BlogSection, Q as Breadcrumb, y as BusinessIcon, ee as Button, B as CaFlagIcon, Qe as CategoriesSection, X as CheckIcon, ce as Checkbox, c as ChevronDownIcon, l as ChevronRightIcon, J as ClearIcon, N as CloseIcon, D as CommunicationIcon, $e as ContactBanner, Vt as ContactFormSection, Le as ContactMethodCard, Ht as ContactMethodsSection, It as ContactUsSection, he as ContentItem, We as ContinueEditingBanner, ge as CookiesBar, Nt as CtaFeatureTag, Pt as CtaSample, Ft as CtaSection, H as DeFlagIcon, ze as DefaultSubtypeDocument, O as DocEditFillIcon, I as DocOutlineIcon, zt as DocumentCategories, Ie as DocumentItem, Be as DocumentReviewUploadCard, Bt as DocumentSection, T as DoneCircleIcon, q as DoneIcon, x as EmploymentIcon, _ as EstatePlanningIcon, Ot as ExpertsSection, t as FacebookIcon, b as FamilyIcon, ve as FaqItem, _e as FaqItemWrapper, et as FaqSection, tt as FaqTeaserSection, kt as FastAndSimpleSection, At as FeaturesSection, L as FillFormsIcon, h as FinanceIcon, nt as Footer, ye as FooterNav, He as FreeDocumentModal, V as GbFlagIcon, Dt as GuidelinesSection, M as HamburgerIcon, it as Header, E as HelpGuideIcon, ot as Hero2Section, be as HeroImageShell, at as HeroSection, te as HighlightedText, F as HistoryIcon, st as HowItWorksSection, pe as ImageWithPreview, u as InfoIcon, ae as Input, s as InstagramIcon, St as IntroSection, ne as Item, Rt as JumboCard, Ut as JumboDocs, ct as Jumbotron, lt as Jumbotron2, ut as Jumbotron3, xe as LanguageSelector, Se as LawGeniusImageShell, Ce as LawGeniusStepCard, Ge as LeadGateErrorModal, Ke as LeadGateModal, qe as LeadGateSuccessFeatureItem, Je as LeadGateSuccessModal, le as LinkWrapper, me as LinkedProducts, o as LinkedinIcon, P as LocationIcon, j as MailFillIcon, ie as Markdown, Ct as MissionSection, rt as MobileMenu, ue as Modal, dt as MoreTemplatesSection, we as NavMenu, re as NavMenuItem, Mt as PartnersSection, v as PersonalIcon, fe as PhoneButton, r as PhoneIcon, k as PhoneTalkIcon, A as PlusIcon, ht as Preform, Ee as PreformOption, De as PreviewDownload, gt as PreviewSection, ft as PricingOfferingsSection, Te as PricingPlanCard, pt as PricingPlansSection, mt as PricingSupportTeaserSection, R as PrintIcon, C as PrivateIcon, _t as ProcessSection, vt as ProductInfo, G as QuestionIcon, Y as QuestionOutlineIcon, yt as RatafiaSection, g as RealStateIcon, Oe as ResourcesImageShell, m as SaveIcon, U as ScalatorIcon, ke as SearchBar, d as SearchIcon, Ae as SectionHeading, Z as SecurityIcon, oe as Select, K as SinglePhoneIcon, W as SparkIcon, S as StarsIcon, je as StepImageShell, Tt as Storyline, Ne as TableOfContents, Me as TableOfContentsWrapper, se as Textarea, n as TikTokIcon, z as TimeIcon, de as Toast, Ve as Tooltips, Wt as TrustPilotSection, bt as TrustSection, Pe as TrustedBadge, p as TrustedIcon, xt as TryNowSection, Fe as TwoColumnSection, Lt as UnsubscribeSection, f as UsFlagIcon, wt as ValuesSection, w as VerifiedIcon, Et as WeHelpSection, a as ZoomIcon, $ as getButtonClasses };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@npm_leadtech/legal-contracts-ui",
3
- "version": "0.182.6",
3
+ "version": "0.182.22",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -354,6 +354,22 @@
354
354
  "import": "./dist/components/LawGeniusStepCard.js",
355
355
  "types": "./dist/components/LawGeniusStepCard.d.ts"
356
356
  },
357
+ "./components/LeadGateErrorModal": {
358
+ "import": "./dist/components/LeadGateErrorModal.js",
359
+ "types": "./dist/components/LeadGateErrorModal.d.ts"
360
+ },
361
+ "./components/LeadGateModal": {
362
+ "import": "./dist/components/LeadGateModal.js",
363
+ "types": "./dist/components/LeadGateModal.d.ts"
364
+ },
365
+ "./components/LeadGateSuccessFeatureItem": {
366
+ "import": "./dist/components/LeadGateSuccessFeatureItem.js",
367
+ "types": "./dist/components/LeadGateSuccessFeatureItem.d.ts"
368
+ },
369
+ "./components/LeadGateSuccessModal": {
370
+ "import": "./dist/components/LeadGateSuccessModal.js",
371
+ "types": "./dist/components/LeadGateSuccessModal.d.ts"
372
+ },
357
373
  "./components/LinkedProducts": {
358
374
  "import": "./dist/components/LinkedProducts.js",
359
375
  "types": "./dist/components/LinkedProducts.d.ts"
@@ -701,27 +717,6 @@
701
717
  "bugs": {
702
718
  "url": "https://bitbucket.org/grupoblidoo/legal-contracts-ui/issues"
703
719
  },
704
- "scripts": {
705
- "dev": "vite",
706
- "build": "tsc --project tsconfig.build.json && vite build && cp lib/globals-core.css dist/globals.css",
707
- "sonar:scan": "bash scripts/sonar.sh",
708
- "sonar": "pnpm test && pnpm sonar:scan",
709
- "chromatic": "npx chromatic --project-token=chpt_f2cdc115a03f4c9",
710
- "yalc-push": "pnpm build && yalc push",
711
- "format": "prettier --write .",
712
- "prettier": "prettier --check .",
713
- "eslint": "eslint . --quiet",
714
- "test": "vitest run --coverage --project unit",
715
- "test:watch": "vitest --coverage --project unit",
716
- "storybook": "storybook dev -p 6006",
717
- "build-storybook": "storybook build",
718
- "reinstall-force": "rm -Rf node_modules && pnpm install",
719
- "prepare-upgrade": "pnpm reinstall-force && pnpm build && pnpm chromatic && git add . && git commit -m \"$MSG\" --allow-empty && npm config set tag-version-prefix ''",
720
- "upgrade-patch": "pnpm prepare-upgrade && npm version patch -m \"Update patch version number\" && git push && git push --tags",
721
- "upgrade-minor": "pnpm prepare-upgrade && npm version minor -m \"Update minor version number\" && git push && git push --tags",
722
- "upgrade-major": "pnpm prepare-upgrade && npm version major -m \"Update major version number\" && git push && git push --tags",
723
- "prepare": "husky"
724
- },
725
720
  "dependencies": {
726
721
  "clsx": "^2.1.1",
727
722
  "react-markdown": "^10.1.0",
@@ -793,16 +788,30 @@
793
788
  "@ast-grep/napi-linux-x64-gnu": "^0.44.1",
794
789
  "@rollup/rollup-linux-x64-gnu": "^4.62.2"
795
790
  },
796
- "pnpm": {
797
- "onlyBuiltDependencies": [
798
- "esbuild",
799
- "unrs-resolver"
800
- ]
801
- },
802
791
  "lint-staged": {
803
792
  "**/*": [
804
793
  "eslint --fix",
805
794
  "prettier --write --ignore-unknown"
806
795
  ]
796
+ },
797
+ "scripts": {
798
+ "dev": "vite",
799
+ "build": "tsc --project tsconfig.build.json && vite build && cp lib/globals-core.css dist/globals.css",
800
+ "sonar:scan": "bash scripts/sonar.sh",
801
+ "sonar": "pnpm test && pnpm sonar:scan",
802
+ "chromatic": "npx chromatic --project-token=chpt_f2cdc115a03f4c9",
803
+ "yalc-push": "pnpm build && yalc push",
804
+ "format": "prettier --write .",
805
+ "prettier": "prettier --check .",
806
+ "eslint": "eslint . --quiet",
807
+ "test": "vitest run --coverage",
808
+ "test:watch": "vitest --coverage",
809
+ "storybook": "storybook dev -p 6006",
810
+ "build-storybook": "storybook build",
811
+ "reinstall-force": "rm -Rf node_modules && pnpm install",
812
+ "prepare-upgrade": "pnpm reinstall-force && pnpm build && pnpm chromatic && git add . && git commit -m \"$MSG\" --allow-empty && npm config set tag-version-prefix ''",
813
+ "upgrade-patch": "pnpm prepare-upgrade && npm version patch -m \"Update patch version number\" && git push && git push --tags",
814
+ "upgrade-minor": "pnpm prepare-upgrade && npm version minor -m \"Update minor version number\" && git push && git push --tags",
815
+ "upgrade-major": "pnpm prepare-upgrade && npm version major -m \"Update major version number\" && git push && git push --tags"
807
816
  }
808
- }
817
+ }