@npm_leadtech/legal-contracts-ui 0.188.3 → 0.188.5

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 (32) hide show
  1. package/dist/components/AiLegalDocumentReviewerTemplate.d.ts +8 -3
  2. package/dist/components/ContactBanner.d.ts +1 -0
  3. package/dist/components/ContactBanner.js +20 -20
  4. package/dist/components/ConversionSection.d.ts +8 -3
  5. package/dist/components/ElectronicSignatureTemplate.d.ts +8 -3
  6. package/dist/components/ExploreToolsSection.d.ts +24 -0
  7. package/dist/components/ExploreToolsSection.js +46 -0
  8. package/dist/components/Header.d.ts +0 -5
  9. package/dist/components/Header.js +4 -4
  10. package/dist/components/Hero2Section.d.ts +8 -3
  11. package/dist/components/HomeTemplate.d.ts +2 -1
  12. package/dist/components/LockIcon.d.ts +4 -0
  13. package/dist/components/LockIcon.js +34 -0
  14. package/dist/components/NavMenu.d.ts +0 -5
  15. package/dist/components/NavMenuItem.d.ts +0 -5
  16. package/dist/components/NavMenuItem.js +53 -65
  17. package/dist/components/PdfToolsBenefitsSection.d.ts +17 -0
  18. package/dist/components/PdfToolsBenefitsSection.js +37 -0
  19. package/dist/components/PdfToolsHero.d.ts +38 -0
  20. package/dist/components/PdfToolsHero.js +53 -0
  21. package/dist/components/PdfToolsTemplate.d.ts +126 -0
  22. package/dist/components/PdfToolsTemplate.js +49 -0
  23. package/dist/components/PreformMobile.js +3 -1
  24. package/dist/components/ProcessSection.d.ts +2 -1
  25. package/dist/components/ProcessSection.js +36 -27
  26. package/dist/components/UploadDocIcon.d.ts +4 -0
  27. package/dist/components/UploadDocIcon.js +32 -0
  28. package/dist/components/UploadZone.d.ts +8 -3
  29. package/dist/components/UploadZone.js +97 -49
  30. package/dist/components/index.d.ts +69 -9
  31. package/dist/index.js +105 -100
  32. package/package.json +50 -24
@@ -131,10 +131,15 @@ export interface ToastProps {
131
131
  }
132
132
 
133
133
  export interface UploadZoneProps {
134
- uploadPromptText: string;
134
+ uploadPromptText?: string;
135
135
  addDocumentLabel: string;
136
- fileSizeText: string;
137
- disclaimer: string;
136
+ fileSizeText?: string;
137
+ disclaimer?: string;
138
+ title?: string;
139
+ description?: string;
140
+ trustLine?: string;
141
+ uploadIcon?: ReactNode;
142
+ variant?: 'default' | 'pdf-tools';
138
143
  containerClassName?: string;
139
144
  onAddDocument?: () => void;
140
145
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
@@ -7,6 +7,7 @@ export declare interface ContactBannerProps {
7
7
  phoneNumber?: string;
8
8
  contactHoursText?: string;
9
9
  contactHours?: string;
10
+ /** @deprecated No longer used: the banner keeps a fixed height and scrolls away with the page to avoid layout shifts. */
10
11
  isScrolled?: boolean;
11
12
  }
12
13
 
@@ -1,42 +1,42 @@
1
1
  import { SinglePhoneIcon as e } from "./SinglePhoneIcon.js";
2
- import { useScroll as t } from "../shared/hooks/useScroll.js";
3
2
  import "react";
4
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
5
4
  //#region lib/components/organisms/ContactBanner.tsx
6
- var i = ({ contactText: i, phoneNumber: a, contactHoursText: o, contactHours: s }) => /* @__PURE__ */ n("section", {
7
- className: `flex w-full justify-center border-b border-neutral-200 bg-neutral-50 px-4 transition-all duration-500 ease-in-out ${t(10) ? "h-0 py-0" : "h-8.75 py-2"}`,
8
- children: /* @__PURE__ */ r("div", {
5
+ var r = ({ contactText: r, phoneNumber: i, contactHoursText: a, contactHours: o }) => /* @__PURE__ */ t("section", {
6
+ "data-qa": "contact_banner",
7
+ className: "flex h-8.75 w-full justify-center border-b border-neutral-200 bg-neutral-50 px-4 py-2",
8
+ children: /* @__PURE__ */ n("div", {
9
9
  className: "flex flex-wrap items-center justify-center gap-4 text-center text-neutral-900 md:text-left",
10
10
  children: [
11
- i && /* @__PURE__ */ n("p", {
11
+ r && /* @__PURE__ */ t("p", {
12
12
  className: "text-small hidden sm:block",
13
- children: i
13
+ children: r
14
14
  }),
15
- /* @__PURE__ */ n("div", {
15
+ /* @__PURE__ */ t("div", {
16
16
  className: "h-5 w-5",
17
- children: /* @__PURE__ */ n(e, {})
17
+ children: /* @__PURE__ */ t(e, {})
18
18
  }),
19
- a && /* @__PURE__ */ n("a", {
20
- href: `tel:${a}`,
19
+ i && /* @__PURE__ */ t("a", {
20
+ href: `tel:${i}`,
21
21
  className: "text-small block font-bold sm:hidden",
22
- children: a
22
+ children: i
23
23
  }),
24
- a && /* @__PURE__ */ n("p", {
24
+ i && /* @__PURE__ */ t("p", {
25
25
  className: "text-small hidden font-bold sm:block",
26
- children: a
26
+ children: i
27
27
  }),
28
- /* @__PURE__ */ r("div", {
28
+ /* @__PURE__ */ n("div", {
29
29
  className: "text-small flex items-center gap-1",
30
- children: [o && /* @__PURE__ */ n("span", {
30
+ children: [a && /* @__PURE__ */ t("span", {
31
31
  className: "hidden sm:block",
32
- children: o
33
- }), s && /* @__PURE__ */ n("span", {
32
+ children: a
33
+ }), o && /* @__PURE__ */ t("span", {
34
34
  className: "sm:hidden",
35
- children: s
35
+ children: o
36
36
  })]
37
37
  })
38
38
  ]
39
39
  })
40
40
  });
41
41
  //#endregion
42
- export { i as ContactBanner };
42
+ export { r as ContactBanner };
@@ -11,10 +11,15 @@ export declare interface ConversionSectionProps {
11
11
  }
12
12
 
13
13
  export interface UploadZoneProps {
14
- uploadPromptText: string;
14
+ uploadPromptText?: string;
15
15
  addDocumentLabel: string;
16
- fileSizeText: string;
17
- disclaimer: string;
16
+ fileSizeText?: string;
17
+ disclaimer?: string;
18
+ title?: string;
19
+ description?: string;
20
+ trustLine?: string;
21
+ uploadIcon?: ReactNode;
22
+ variant?: 'default' | 'pdf-tools';
18
23
  containerClassName?: string;
19
24
  onAddDocument?: () => void;
20
25
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
@@ -123,10 +123,15 @@ export interface ToastProps {
123
123
  }
124
124
 
125
125
  export interface UploadZoneProps {
126
- uploadPromptText: string;
126
+ uploadPromptText?: string;
127
127
  addDocumentLabel: string;
128
- fileSizeText: string;
129
- disclaimer: string;
128
+ fileSizeText?: string;
129
+ disclaimer?: string;
130
+ title?: string;
131
+ description?: string;
132
+ trustLine?: string;
133
+ uploadIcon?: ReactNode;
134
+ variant?: 'default' | 'pdf-tools';
130
135
  containerClassName?: string;
131
136
  onAddDocument?: () => void;
132
137
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
@@ -0,0 +1,24 @@
1
+ import { FC } from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ export declare interface ExploreToolsGroup {
5
+ id: string;
6
+ icon: ReactNode;
7
+ label: string;
8
+ tools: ExploreToolsTool[];
9
+ }
10
+
11
+ export declare const ExploreToolsSection: FC<ExploreToolsSectionProps>;
12
+
13
+ export declare interface ExploreToolsSectionProps {
14
+ title: string;
15
+ description: string;
16
+ groups: ExploreToolsGroup[];
17
+ }
18
+
19
+ export declare interface ExploreToolsTool {
20
+ id: string;
21
+ label: string;
22
+ href: string;
23
+ }
24
+
@@ -0,0 +1,46 @@
1
+ import { SectionHeading as e } from "./SectionHeading.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region lib/components/organisms/ExploreToolsSection.tsx
4
+ var r = ({ title: r, description: i, groups: a }) => {
5
+ let o = a.filter((e) => e.tools.length > 0);
6
+ return o.length === 0 ? null : /* @__PURE__ */ t("section", {
7
+ className: "bg-white px-6 py-8 lg:px-8 lg:py-12 xl:px-0",
8
+ children: /* @__PURE__ */ n("div", {
9
+ className: "mx-auto flex w-full max-w-300 flex-col gap-6",
10
+ children: [/* @__PURE__ */ t(e, {
11
+ title: r,
12
+ description: i,
13
+ align: "start",
14
+ titleClass: "font-sans text-large md:text-super-large font-bold"
15
+ }), /* @__PURE__ */ t("div", {
16
+ className: "grid grid-cols-1 gap-6 md:grid-cols-5 md:gap-4 lg:gap-10",
17
+ children: o.map((e) => /* @__PURE__ */ n("div", {
18
+ className: "flex flex-col gap-2.5",
19
+ children: [/* @__PURE__ */ n("div", {
20
+ className: "flex h-10 w-full items-center gap-2 rounded-lg border border-neutral-200 bg-neutral-50 p-2",
21
+ children: [/* @__PURE__ */ t("span", {
22
+ className: "flex h-6 w-6 shrink-0 items-center justify-center rounded",
23
+ children: e.icon
24
+ }), /* @__PURE__ */ t("p", {
25
+ className: "text-small min-w-0 font-bold break-words text-neutral-800",
26
+ children: e.label
27
+ })]
28
+ }), /* @__PURE__ */ t("div", {
29
+ className: "flex flex-col gap-2.5",
30
+ children: e.tools.map((e) => /* @__PURE__ */ t("a", {
31
+ href: e.href,
32
+ title: e.label,
33
+ className: "text-small hover:bg-neutral-25 flex min-h-10 w-full items-center rounded-lg border border-neutral-200 bg-white p-2 font-bold text-neutral-800 transition-colors",
34
+ children: /* @__PURE__ */ t("span", {
35
+ className: "break-words",
36
+ children: e.label
37
+ })
38
+ }, e.id))
39
+ })]
40
+ }, e.id))
41
+ })]
42
+ })
43
+ });
44
+ };
45
+ //#endregion
46
+ export { r as ExploreToolsSection };
@@ -70,8 +70,6 @@ export type NavMenuItemProps = {
70
70
  dropdownItems: (NavMenuItemProps | NavMenuLink)[];
71
71
  hasDropdown: true;
72
72
  isNested?: boolean;
73
- tag?: string;
74
- tagVariant?: NavMenuTagVariant;
75
73
  onItemClick?: () => void;
76
74
  isOpen?: boolean;
77
75
  onToggle?: (open: boolean) => void;
@@ -81,7 +79,6 @@ export type NavMenuLink = {
81
79
  id: string;
82
80
  link: ReactNode;
83
81
  tag?: string;
84
- tagVariant?: NavMenuTagVariant;
85
82
  hasDropdown: false;
86
83
  isNested?: boolean;
87
84
  bold?: boolean;
@@ -96,8 +93,6 @@ export interface NavMenuProps {
96
93
  className?: string;
97
94
  }
98
95
 
99
- export type NavMenuTagVariant = 'standard' | 'emphasized';
100
-
101
96
  export interface SearchBarProps {
102
97
  items: SearchItem[];
103
98
  placeholder?: string;
@@ -2,15 +2,15 @@ import { ScalatorIcon as e } from "./ScalatorIcon.js";
2
2
  import { LanguageSelector as t } from "./LanguageSelector.js";
3
3
  import { NavMenu as n } from "./NavMenu.js";
4
4
  import { SearchBar as r } from "./SearchBar.js";
5
- import { useScroll as i } from "../shared/hooks/useScroll.js";
6
- import { MobileMenu as a } from "./MobileMenu.js";
5
+ import { MobileMenu as i } from "./MobileMenu.js";
6
+ import { useScroll as a } from "../shared/hooks/useScroll.js";
7
7
  import "react";
8
8
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
9
9
  //#region lib/components/organisms/Header.tsx
10
10
  var c = ({ logo: c, navMenu: l, searchBarProps: u, languageSelectorProps: d, userActions: f, mobileMenu: p }) => /* @__PURE__ */ s("div", {
11
11
  className: "sticky top-0 z-1000 flex w-full flex-col",
12
12
  children: [/* @__PURE__ */ o("header", {
13
- className: `transition-colors duration-300 ease-in-out ${i(10) ? "bg-white shadow-md" : "bg-primary-50"}`,
13
+ className: `transition-colors duration-300 ease-in-out ${a(10) ? "bg-white shadow-md" : "bg-primary-50"}`,
14
14
  children: /* @__PURE__ */ s("div", {
15
15
  className: "flex w-full items-center justify-between px-4 py-4 text-neutral-800 md:px-8",
16
16
  children: [
@@ -42,7 +42,7 @@ var c = ({ logo: c, navMenu: l, searchBarProps: u, languageSelectorProps: d, use
42
42
  })
43
43
  ]
44
44
  })
45
- }), /* @__PURE__ */ o(a, {
45
+ }), /* @__PURE__ */ o(i, {
46
46
  ...p,
47
47
  logo: c,
48
48
  userActions: f,
@@ -20,10 +20,15 @@ export declare interface Hero2SectionProps {
20
20
  }
21
21
 
22
22
  export interface UploadZoneProps {
23
- uploadPromptText: string;
23
+ uploadPromptText?: string;
24
24
  addDocumentLabel: string;
25
- fileSizeText: string;
26
- disclaimer: string;
25
+ fileSizeText?: string;
26
+ disclaimer?: string;
27
+ title?: string;
28
+ description?: string;
29
+ trustLine?: string;
30
+ uploadIcon?: ReactNode;
31
+ variant?: 'default' | 'pdf-tools';
27
32
  containerClassName?: string;
28
33
  onAddDocument?: () => void;
29
34
  onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
@@ -49,7 +49,7 @@ export interface HeroSectionProps {
49
49
  }
50
50
 
51
51
  export interface HomeStepsProps {
52
- image: ReactNode;
52
+ image?: ReactNode;
53
53
  header: SectionHeadingProps;
54
54
  steps: {
55
55
  id: string;
@@ -57,6 +57,7 @@ export interface HomeStepsProps {
57
57
  description: string;
58
58
  image: ReactNode;
59
59
  }[];
60
+ variant?: 'default' | 'pdf-tools';
60
61
  }
61
62
 
62
63
  export declare const HomeTemplate: FC<HomeTemplateProps>;
@@ -0,0 +1,4 @@
1
+ import * as React_2 from 'react';
2
+
3
+ export declare const LockIcon: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
4
+
@@ -0,0 +1,34 @@
1
+ import "react";
2
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
3
+ //#region lib/components/icons/LockIcon.tsx
4
+ var n = (n) => /* @__PURE__ */ t("svg", {
5
+ viewBox: "0 0 24 24",
6
+ fill: "none",
7
+ "aria-hidden": !0,
8
+ ...n,
9
+ children: [
10
+ /* @__PURE__ */ e("rect", {
11
+ x: "4.75",
12
+ y: "10.25",
13
+ width: "14.5",
14
+ height: "10",
15
+ rx: "2",
16
+ stroke: "currentColor",
17
+ strokeWidth: "1.5"
18
+ }),
19
+ /* @__PURE__ */ e("path", {
20
+ d: "M8 10.25V7.5a4 4 0 0 1 8 0v2.75",
21
+ stroke: "currentColor",
22
+ strokeWidth: "1.5",
23
+ strokeLinecap: "round"
24
+ }),
25
+ /* @__PURE__ */ e("path", {
26
+ d: "M12 14v2.5",
27
+ stroke: "currentColor",
28
+ strokeWidth: "1.5",
29
+ strokeLinecap: "round"
30
+ })
31
+ ]
32
+ });
33
+ //#endregion
34
+ export { n as LockIcon };
@@ -10,8 +10,6 @@ export type NavMenuItemProps = {
10
10
  dropdownItems: (NavMenuItemProps | NavMenuLink)[];
11
11
  hasDropdown: true;
12
12
  isNested?: boolean;
13
- tag?: string;
14
- tagVariant?: NavMenuTagVariant;
15
13
  onItemClick?: () => void;
16
14
  isOpen?: boolean;
17
15
  onToggle?: (open: boolean) => void;
@@ -21,7 +19,6 @@ export type NavMenuLink = {
21
19
  id: string;
22
20
  link: ReactNode;
23
21
  tag?: string;
24
- tagVariant?: NavMenuTagVariant;
25
22
  hasDropdown: false;
26
23
  isNested?: boolean;
27
24
  bold?: boolean;
@@ -35,6 +32,4 @@ export declare interface NavMenuProps {
35
32
  navItems: (NavMenuItemProps | NavMenuLink)[];
36
33
  className?: string;
37
34
  }
38
-
39
- export type NavMenuTagVariant = 'standard' | 'emphasized';
40
35
 
@@ -10,8 +10,6 @@ export declare type NavMenuItemProps = {
10
10
  dropdownItems: (NavMenuItemProps | NavMenuLink)[];
11
11
  hasDropdown: true;
12
12
  isNested?: boolean;
13
- tag?: string;
14
- tagVariant?: NavMenuTagVariant;
15
13
  onItemClick?: () => void;
16
14
  isOpen?: boolean;
17
15
  onToggle?: (open: boolean) => void;
@@ -21,7 +19,6 @@ export declare type NavMenuLink = {
21
19
  id: string;
22
20
  link: ReactNode;
23
21
  tag?: string;
24
- tagVariant?: NavMenuTagVariant;
25
22
  hasDropdown: false;
26
23
  isNested?: boolean;
27
24
  bold?: boolean;
@@ -30,6 +27,4 @@ export declare type NavMenuLink = {
30
27
  onToggle?: (open: boolean) => void;
31
28
  dataQa?: string;
32
29
  };
33
-
34
- export declare type NavMenuTagVariant = 'standard' | 'emphasized';
35
30
 
@@ -5,26 +5,20 @@ import { ChevronRightIcon as t } from "./ChevronRightIcon.js";
5
5
  import { useCallback as n, useEffect as r, useRef as i, useState as a } from "react";
6
6
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  //#region lib/components/atoms/NavMenuItem.tsx
8
- var c = {
9
- standard: "bg-secondary-200 h-4.5 w-5.25",
10
- emphasized: "bg-[var(--tag-emphasized-bg,var(--primary-300))] h-4.5 px-1"
11
- }, l = ({ tag: e, variant: t }) => /* @__PURE__ */ o("span", {
12
- className: `text-extra-small flex h-4.5 items-center justify-center rounded align-middle font-bold ${c[t]}`,
13
- children: e
14
- }), u = (c) => {
15
- let { hasDropdown: d, isNested: f, isOpen: p, onToggle: m, dataQa: h, onItemClick: g } = c, [_, v] = a(!1), [y, b] = a(null), x = p ?? _, S = n((e) => {
16
- e || b(null), m ? m(e) : v(e);
17
- }, [m]), C = i(null);
8
+ var c = (l) => {
9
+ let { hasDropdown: u, isNested: d, isOpen: f, onToggle: p, dataQa: m, onItemClick: h } = l, [g, _] = a(!1), [v, y] = a(null), b = f ?? g, x = n((e) => {
10
+ e || y(null), p ? p(e) : _(e);
11
+ }, [p]), S = i(null);
18
12
  r(() => {
19
- if (!x) return;
13
+ if (!b) return;
20
14
  let e = (e) => {
21
- C.current && !C.current.contains(e.target) && S(!1);
15
+ S.current && !S.current.contains(e.target) && x(!1);
22
16
  };
23
17
  return document.addEventListener("mousedown", e), () => {
24
18
  document.removeEventListener("mousedown", e);
25
19
  };
26
- }, [x, S]);
27
- let w = {
20
+ }, [b, x]);
21
+ let C = {
28
22
  topLevel: {
29
23
  liClass: "relative py-2",
30
24
  triggerClass: "hover:text-neutral-600",
@@ -37,62 +31,56 @@ var c = {
37
31
  dropdownPosition: "top-0 left-full -mt-4 pl-6",
38
32
  Icon: t
39
33
  }
40
- }, T = f ? w.nested : w.topLevel, E = T.Icon, D = n(() => {
41
- S(!1), g && g();
42
- }, [g, S]), O = i(null);
34
+ }, w = d ? C.nested : C.topLevel, T = w.Icon, E = n(() => {
35
+ x(!1), h && h();
36
+ }, [h, x]), D = i(null);
43
37
  r(() => {
44
- let e = O.current;
45
- if (e) return e.addEventListener("click", D), () => {
46
- e.removeEventListener("click", D);
38
+ let e = D.current;
39
+ if (e) return e.addEventListener("click", E), () => {
40
+ e.removeEventListener("click", E);
47
41
  };
48
- }, [D]);
49
- let k = (e) => {
50
- e.stopPropagation(), S(!x);
42
+ }, [E]);
43
+ let O = (e) => {
44
+ e.stopPropagation(), x(!b);
45
+ }, k = () => {
46
+ globalThis.window.matchMedia("(hover: hover)").matches && x(!0);
51
47
  }, A = () => {
52
- globalThis.window.matchMedia("(hover: hover)").matches && S(!0);
53
- }, j = () => {
54
- globalThis.window.matchMedia("(hover: hover)").matches && S(!1);
48
+ globalThis.window.matchMedia("(hover: hover)").matches && x(!1);
55
49
  };
56
- if (d) {
57
- let { dropdownItems: e, label: t, tag: n, tagVariant: r = "standard" } = c;
50
+ if (u) {
51
+ let { dropdownItems: e, label: t } = l;
58
52
  return /* @__PURE__ */ s("li", {
59
- ref: C,
60
- className: T.liClass,
61
- onMouseEnter: A,
62
- onMouseLeave: j,
63
- children: [/* @__PURE__ */ s("div", {
64
- className: "inline-flex w-full items-center gap-1",
65
- children: [/* @__PURE__ */ s("button", {
66
- "data-qa": h,
67
- className: `text-small flex flex-1 cursor-pointer items-center justify-between gap-1 text-nowrap text-neutral-800 transition-colors ${T.triggerClass}`,
68
- "aria-haspopup": "menu",
69
- "aria-expanded": x,
70
- onClick: k,
71
- children: [/* @__PURE__ */ o("span", {
72
- className: "text-medium",
73
- children: t
74
- }), /* @__PURE__ */ o(E, {
75
- fill: "#000",
76
- width: 20,
77
- height: 20
78
- })]
79
- }), n && /* @__PURE__ */ o(l, {
80
- tag: n,
81
- variant: r
53
+ ref: S,
54
+ className: w.liClass,
55
+ onMouseEnter: k,
56
+ onMouseLeave: A,
57
+ children: [/* @__PURE__ */ s("button", {
58
+ "data-qa": m,
59
+ className: `text-small flex w-full cursor-pointer items-center justify-between gap-1 text-nowrap text-neutral-800 transition-colors ${w.triggerClass}`,
60
+ "aria-haspopup": "menu",
61
+ "aria-expanded": b,
62
+ onClick: O,
63
+ children: [/* @__PURE__ */ o("span", {
64
+ className: "text-medium",
65
+ children: t
66
+ }), /* @__PURE__ */ o(T, {
67
+ fill: "#000",
68
+ width: 20,
69
+ height: 20
82
70
  })]
83
71
  }), /* @__PURE__ */ o("div", {
84
- className: `absolute z-50 min-w-48 transition-all duration-200 ${T.dropdownPosition} ${x ? "pointer-events-auto opacity-100" : "pointer-events-none opacity-0"}`,
72
+ className: `absolute z-50 min-w-48 transition-all duration-200 ${w.dropdownPosition} ${b ? "pointer-events-auto opacity-100" : "pointer-events-none opacity-0"}`,
85
73
  children: /* @__PURE__ */ o("div", {
86
74
  className: "rounded-md border border-neutral-200 bg-white p-4 shadow-lg",
87
75
  children: /* @__PURE__ */ o("ul", {
88
76
  className: "flex flex-col gap-2",
89
- children: e.map((e) => /* @__PURE__ */ o(u, {
77
+ children: e.map((e) => /* @__PURE__ */ o(c, {
90
78
  ...e,
91
79
  isNested: !0,
92
- onItemClick: D,
93
- isOpen: y === e.id,
80
+ onItemClick: E,
81
+ isOpen: v === e.id,
94
82
  onToggle: (t) => {
95
- b(t ? e.id : null);
83
+ y(t ? e.id : null);
96
84
  }
97
85
  }, e.id))
98
86
  })
@@ -100,21 +88,21 @@ var c = {
100
88
  })]
101
89
  });
102
90
  }
103
- let { link: M, tag: N, tagVariant: P = "standard", bold: F } = c;
91
+ let { link: j, tag: M, bold: N } = l;
104
92
  return /* @__PURE__ */ o("li", {
105
- ref: O,
106
- className: T.liClass,
93
+ ref: D,
94
+ className: w.liClass,
107
95
  children: /* @__PURE__ */ s("span", {
108
- className: `text-small relative flex w-full items-center gap-1 text-nowrap text-neutral-800 transition-colors ${T.triggerClass} `,
96
+ className: `text-small relative flex w-full items-center gap-1 text-nowrap text-neutral-800 transition-colors ${w.triggerClass} `,
109
97
  children: [/* @__PURE__ */ o("span", {
110
- className: `text-medium flex-1 ${F ? "font-bold" : ""} [&_a]:after:absolute [&_a]:after:inset-0`,
98
+ className: `text-medium flex-1 ${N ? "font-bold" : ""} [&_a]:after:absolute [&_a]:after:inset-0`,
99
+ children: j
100
+ }), M && /* @__PURE__ */ o("span", {
101
+ className: "bg-secondary-200 text-extra-small flex h-4.5 w-5.25 items-center justify-center rounded align-middle font-bold",
111
102
  children: M
112
- }), N && /* @__PURE__ */ o(l, {
113
- tag: N,
114
- variant: P
115
103
  })]
116
104
  })
117
105
  });
118
106
  };
119
107
  //#endregion
120
- export { u as NavMenuItem };
108
+ export { c as NavMenuItem };
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ export declare interface PdfToolsBenefitItem {
5
+ id: string;
6
+ icon: ReactNode;
7
+ title: string;
8
+ description: string;
9
+ }
10
+
11
+ export declare const PdfToolsBenefitsSection: FC<PdfToolsBenefitsSectionProps>;
12
+
13
+ export declare interface PdfToolsBenefitsSectionProps {
14
+ items: PdfToolsBenefitItem[];
15
+ image?: ReactNode | null;
16
+ }
17
+
@@ -0,0 +1,37 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import n from "clsx";
3
+ //#region lib/components/organisms/PdfToolsBenefitsSection.tsx
4
+ var r = ({ items: r, image: i }) => {
5
+ if (r.length === 0) return null;
6
+ let a = !!i;
7
+ return /* @__PURE__ */ e("section", {
8
+ className: "bg-white px-6 py-8 lg:px-8 lg:py-12 xl:px-0",
9
+ children: /* @__PURE__ */ t("div", {
10
+ className: n("mx-auto w-full max-w-300", a ? "grid grid-cols-1 gap-8 lg:grid-cols-2 lg:gap-20" : "flex flex-col"),
11
+ children: [/* @__PURE__ */ e("div", {
12
+ className: n(a ? "flex flex-col gap-8" : "grid grid-cols-1 gap-8", !a && r.length >= 4 && "md:grid-cols-4", !a && r.length < 4 && "md:grid-cols-3"),
13
+ children: r.map((n) => /* @__PURE__ */ t("div", {
14
+ className: "flex items-start gap-6",
15
+ children: [/* @__PURE__ */ e("div", {
16
+ className: "bg-primary-50 flex h-14 w-14 shrink-0 items-center justify-center rounded-2xl text-neutral-800",
17
+ children: n.icon
18
+ }), /* @__PURE__ */ t("div", {
19
+ className: "flex flex-col gap-2",
20
+ children: [/* @__PURE__ */ e("p", {
21
+ className: "text-big font-bold text-neutral-800",
22
+ children: n.title
23
+ }), /* @__PURE__ */ e("p", {
24
+ className: "text-small text-neutral-600",
25
+ children: n.description
26
+ })]
27
+ })]
28
+ }, n.id))
29
+ }), a && /* @__PURE__ */ e("div", {
30
+ className: "h-53.5 overflow-hidden rounded-2xl md:hidden lg:block lg:h-full [&_img]:h-full [&_img]:w-full [&_img]:object-cover",
31
+ children: i
32
+ })]
33
+ })
34
+ });
35
+ };
36
+ //#endregion
37
+ export { r as PdfToolsBenefitsSection };
@@ -0,0 +1,38 @@
1
+ import { FC } from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ export declare const PdfToolsHero: FC<PdfToolsHeroProps>;
5
+
6
+ export declare type PdfToolsHeroBadge = {
7
+ id: string;
8
+ icon: ReactNode;
9
+ text: string;
10
+ };
11
+
12
+ export declare interface PdfToolsHeroProps {
13
+ title: string;
14
+ titleRich?: ReactNode;
15
+ subtitle: string;
16
+ uploadZone: Omit<UploadZoneProps, 'variant'>;
17
+ badges: PdfToolsHeroBadge[];
18
+ trustPilot?: ReactNode;
19
+ bgLeft?: ReactNode | null;
20
+ bgRight?: ReactNode | null;
21
+ }
22
+
23
+ export interface UploadZoneProps {
24
+ uploadPromptText?: string;
25
+ addDocumentLabel: string;
26
+ fileSizeText?: string;
27
+ disclaimer?: string;
28
+ title?: string;
29
+ description?: string;
30
+ trustLine?: string;
31
+ uploadIcon?: ReactNode;
32
+ variant?: 'default' | 'pdf-tools';
33
+ containerClassName?: string;
34
+ onAddDocument?: () => void;
35
+ onDropDocument?: (e: React.DragEvent<HTMLDivElement>) => void;
36
+ dataQa?: string;
37
+ }
38
+