@npm_leadtech/legal-contracts-ui 0.188.4 → 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.
@@ -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 };
@@ -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,
@@ -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 min-w-5.25 px-1",
10
- emphasized: "bg-[var(--tag-emphasized-bg,var(--primary-300))] h-4.5 min-w-5.25 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",
@@ -33,66 +27,60 @@ var c = {
33
27
  },
34
28
  nested: {
35
29
  liClass: "relative",
36
- triggerClass: "p-1 hover:bg-primary-100 w-full rounded",
30
+ triggerClass: "p-1 hover:bg-primary-100 w-full rounded min-w-48.5",
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 w-max min-w-40 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 };
@@ -97,7 +97,9 @@ var u = ({ radioFieldData: u, inputFieldData: d, cta: f, trustedBadge: p, hasMob
97
97
  className: "px-6",
98
98
  children: p
99
99
  }), /* @__PURE__ */ c("div", {
100
- className: h ? "hidden" : "block",
100
+ "data-qa": "preform_mobile_inline",
101
+ className: h ? "invisible" : void 0,
102
+ inert: h,
101
103
  children: y(!1)
102
104
  })]
103
105
  })
@@ -160,6 +160,7 @@ export declare interface ContactBannerProps {
160
160
  phoneNumber?: string;
161
161
  contactHoursText?: string;
162
162
  contactHours?: string;
163
+ /** @deprecated No longer used: the banner keeps a fixed height and scrolls away with the page to avoid layout shifts. */
163
164
  isScrolled?: boolean;
164
165
  }
165
166
 
@@ -1000,8 +1001,6 @@ export declare type NavMenuItemProps = {
1000
1001
  dropdownItems: (NavMenuItemProps | NavMenuLink)[];
1001
1002
  hasDropdown: true;
1002
1003
  isNested?: boolean;
1003
- tag?: string;
1004
- tagVariant?: NavMenuTagVariant;
1005
1004
  onItemClick?: () => void;
1006
1005
  isOpen?: boolean;
1007
1006
  onToggle?: (open: boolean) => void;
@@ -1011,7 +1010,6 @@ export declare type NavMenuLink = {
1011
1010
  id: string;
1012
1011
  link: ReactNode;
1013
1012
  tag?: string;
1014
- tagVariant?: NavMenuTagVariant;
1015
1013
  hasDropdown: false;
1016
1014
  isNested?: boolean;
1017
1015
  bold?: boolean;
@@ -1026,8 +1024,6 @@ export declare interface NavMenuProps {
1026
1024
  className?: string;
1027
1025
  }
1028
1026
 
1029
- export declare type NavMenuTagVariant = 'standard' | 'emphasized';
1030
-
1031
1027
  export declare const PartnersSection: FC<PartnersSectionProps>;
1032
1028
 
1033
1029
  export declare interface PartnersSectionProps {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@npm_leadtech/legal-contracts-ui",
3
- "version": "0.188.4",
3
+ "version": "0.188.5",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -741,6 +741,29 @@
741
741
  "bugs": {
742
742
  "url": "https://bitbucket.org/grupoblidoo/legal-contracts-ui/issues"
743
743
  },
744
+ "scripts": {
745
+ "dev": "vite",
746
+ "build": "tsc --project tsconfig.build.json && vite build && cp lib/globals-core.css dist/globals.css",
747
+ "sonar:scan": "bash scripts/sonar.sh",
748
+ "sonar": "pnpm test && pnpm sonar:scan",
749
+ "chromatic": "npx chromatic --project-token=chpt_be90ce8462f803c",
750
+ "yalc-push": "pnpm build && yalc push",
751
+ "format": "prettier --write .",
752
+ "prettier": "prettier --check .",
753
+ "eslint": "eslint . --quiet",
754
+ "test": "vitest run --coverage --project unit",
755
+ "test:storybook": "vitest run --project storybook --reporter=default",
756
+ "test:all": "pnpm test && pnpm test:storybook",
757
+ "test:watch": "vitest --coverage --project unit",
758
+ "storybook": "storybook dev -p 6006",
759
+ "build-storybook": "storybook build",
760
+ "reinstall-force": "rm -Rf node_modules && pnpm install",
761
+ "prepare-upgrade": "pnpm reinstall-force && pnpm build && pnpm chromatic && git add . && git commit -m \"$MSG\" --allow-empty && npm config set tag-version-prefix ''",
762
+ "upgrade-patch": "pnpm prepare-upgrade && npm version patch -m \"Update patch version number\" && git push && git push --tags",
763
+ "upgrade-minor": "pnpm prepare-upgrade && npm version minor -m \"Update minor version number\" && git push && git push --tags",
764
+ "upgrade-major": "pnpm prepare-upgrade && npm version major -m \"Update major version number\" && git push && git push --tags",
765
+ "prepare": "husky"
766
+ },
744
767
  "dependencies": {
745
768
  "clsx": "^2.1.1",
746
769
  "react-markdown": "^10.1.0",
@@ -818,26 +841,5 @@
818
841
  "prettier --write --ignore-unknown"
819
842
  ]
820
843
  },
821
- "scripts": {
822
- "dev": "vite",
823
- "build": "tsc --project tsconfig.build.json && vite build && cp lib/globals-core.css dist/globals.css",
824
- "sonar:scan": "bash scripts/sonar.sh",
825
- "sonar": "pnpm test && pnpm sonar:scan",
826
- "chromatic": "npx chromatic --project-token=chpt_be90ce8462f803c",
827
- "yalc-push": "pnpm build && yalc push",
828
- "format": "prettier --write .",
829
- "prettier": "prettier --check .",
830
- "eslint": "eslint . --quiet",
831
- "test": "vitest run --coverage --project unit",
832
- "test:storybook": "vitest run --project storybook --reporter=default",
833
- "test:all": "pnpm test && pnpm test:storybook",
834
- "test:watch": "vitest --coverage --project unit",
835
- "storybook": "storybook dev -p 6006",
836
- "build-storybook": "storybook build",
837
- "reinstall-force": "rm -Rf node_modules && pnpm install",
838
- "prepare-upgrade": "pnpm reinstall-force && pnpm build && pnpm chromatic && git add . && git commit -m \"$MSG\" --allow-empty && npm config set tag-version-prefix ''",
839
- "upgrade-patch": "pnpm prepare-upgrade && npm version patch -m \"Update patch version number\" && git push && git push --tags",
840
- "upgrade-minor": "pnpm prepare-upgrade && npm version minor -m \"Update minor version number\" && git push && git push --tags",
841
- "upgrade-major": "pnpm prepare-upgrade && npm version major -m \"Update major version number\" && git push && git push --tags"
842
- }
843
- }
844
+ "packageManager": "pnpm@10.28.0+sha512.05df71d1421f21399e053fde567cea34d446fa02c76571441bfc1c7956e98e363088982d940465fd34480d4d90a0668bc12362f8aa88000a64e83d0b0e47be48"
845
+ }