@courtneyring/components-library 1.0.36 → 1.0.37

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 (74) hide show
  1. package/dist/AccordionItem-DUGBw5pW.js +40 -0
  2. package/dist/ScrollTrigger-6HnikosL.js +1086 -0
  3. package/dist/animations/FadeIn.js +34 -0
  4. package/dist/animations/FadeInMotion.js +4805 -0
  5. package/dist/assets/Background.css +1 -0
  6. package/dist/assets/Banner.css +1 -0
  7. package/dist/assets/Button.css +1 -0
  8. package/dist/assets/ButtonGroup.css +1 -0
  9. package/dist/assets/Container.css +1 -0
  10. package/dist/assets/Countdown.css +1 -0
  11. package/dist/assets/Fifty.css +1 -0
  12. package/dist/assets/FloatingWordsHero.css +1 -0
  13. package/dist/assets/Footer.css +1 -0
  14. package/dist/assets/GridGallery.css +1 -0
  15. package/dist/assets/HorizontalScrollImages.css +1 -0
  16. package/dist/assets/IconDetail.css +1 -0
  17. package/dist/assets/ImageTextBlock.css +1 -0
  18. package/dist/assets/List.css +1 -0
  19. package/dist/assets/Map.css +1 -0
  20. package/dist/assets/MenuButton.css +1 -0
  21. package/dist/assets/Navbar.css +1 -0
  22. package/dist/assets/Note.css +1 -0
  23. package/dist/assets/Overlay.css +1 -0
  24. package/dist/assets/PageContainer.css +1 -0
  25. package/dist/assets/ParallaxImageGrid.css +1 -0
  26. package/dist/assets/PromoGroup.css +1 -0
  27. package/dist/assets/TextBlock.css +1 -0
  28. package/dist/assets/Timeline.css +1 -0
  29. package/dist/assets/Toolbar.css +1 -0
  30. package/dist/assets/icons/checkmark.svg +3 -0
  31. package/dist/components/Accordion/Accordion.js +33 -0
  32. package/dist/components/Accordion/AccordionItem.js +8 -0
  33. package/dist/components/Background/Background.js +59 -0
  34. package/dist/components/Banner/Banner.js +23 -0
  35. package/dist/components/Button/Button.js +44 -0
  36. package/dist/components/ButtonGroup/ButtonGroup.js +11 -0
  37. package/dist/components/Countdown/Countdown.js +41 -0
  38. package/dist/components/Fifty/Fifty.js +55 -0
  39. package/dist/components/Fifty/Fifty.stories.js +32 -0
  40. package/dist/components/FloatingWordsHero/FloatingWordsHero.js +60 -0
  41. package/dist/components/IconDetail/IconDetail.js +14 -0
  42. package/dist/components/ImageTextBlock/ImageTextBlock.js +36 -0
  43. package/dist/components/Navbar/Navbar.js +98 -0
  44. package/dist/components/Note/Note.js +30 -0
  45. package/dist/components/OverlayHero/OverlayHero.js +67 -0
  46. package/dist/components/PageContainer/PageContainer.js +39 -0
  47. package/dist/components/ParallaxImageGrid/ParallaxImageGrid.js +92 -0
  48. package/dist/components/PromoGroup/PromoGroup.js +107 -0
  49. package/dist/components/Schedule/Schedule.js +24 -0
  50. package/dist/components/Spacer/Spacer.js +6 -0
  51. package/dist/components/TextBlock/TextBlock.js +27 -0
  52. package/dist/components/Timeline/Timeline.js +54 -0
  53. package/dist/hooks/useActiveSection.js +27 -0
  54. package/dist/hooks/useFadeIn.js +52 -0
  55. package/dist/hooks/useImageReveal.js +55 -0
  56. package/dist/hooks/useNavColor.js +15 -0
  57. package/dist/hooks/useRepeatable.js +32 -0
  58. package/dist/hooks/useResize.js +23 -0
  59. package/dist/hooks/useResponsive.js +15 -0
  60. package/dist/hooks/useReveal.js +38 -0
  61. package/dist/hooks/useStagger.js +43 -0
  62. package/dist/index-B2JRaoNz.js +48 -0
  63. package/dist/index-BmTo-IS6.js +2018 -0
  64. package/dist/index-DyQs5aC7.js +388 -0
  65. package/dist/index-K0WrPJ_C.js +29 -0
  66. package/dist/index.js +50 -0
  67. package/dist/index.modern-DPbS1w7M.js +1443 -0
  68. package/dist/presets/animations.js +24 -0
  69. package/dist/utils/breakpoints.js +8 -0
  70. package/dist/utils/gsapSetup.js +8 -0
  71. package/dist/utils/parse.js +12 -0
  72. package/package.json +1 -1
  73. /package/dist/components/{GenericOverlay 6 → GenericOverlay}/GenericOverlay.js +0 -0
  74. /package/dist/components/{PinnedImage 8 → PinnedImage}/PinnedImage.js +0 -0
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ import { jsxs as u, jsx as n } from "react/jsx-runtime";
3
+ import { useRef as h, useState as l, useEffect as f, cloneElement as k } from "react";
4
+ import w from "../MenuButton/MenuButton.js";
5
+ import { r as N } from "../../index-DyQs5aC7.js";
6
+ import D from "../Overlay/Overlay.js";
7
+ import x from "../Container/Container.js";
8
+ import { c as E } from "../../index-B2JRaoNz.js";
9
+ import '../../assets/Navbar.css';const y = "_navbar_1ue9a_1", O = "_hide_1ue9a_19", Y = "_background_1ue9a_22", S = "_navbar__link_1ue9a_22", $ = "_navbar__logo_1ue9a_26", j = "_component_1ue9a_34", B = "_navbar__links_1ue9a_38", C = "_navbar__mobileDialog_1ue9a_95", F = "_open_1ue9a_107", L = "_navbar__toggle_1ue9a_118", e = {
10
+ navbar: y,
11
+ hide: O,
12
+ background: Y,
13
+ navbar__link: S,
14
+ navbar__logo: $,
15
+ component: j,
16
+ navbar__links: B,
17
+ navbar__mobileDialog: C,
18
+ open: F,
19
+ navbar__toggle: L
20
+ }, M = {}, Q = ({
21
+ links: c,
22
+ logoImage: s,
23
+ backgroundColor: I,
24
+ color: P,
25
+ logoComponent: t,
26
+ hidden: b,
27
+ position: d = "absolute"
28
+ }) => {
29
+ const o = h(0), [R, v] = l("up"), [r, _] = l(!1), [m, p] = l(!1);
30
+ f(() => (window.addEventListener("scroll", i), () => window.removeEventListener("scroll", i)), []);
31
+ const i = () => {
32
+ p(window.scrollY > 30);
33
+ const a = window.scrollY;
34
+ a - o.current !== 0 && v(a > o.current ? "down" : "up"), o.current = a > 0 ? a : 0;
35
+ };
36
+ return /* @__PURE__ */ u(
37
+ "nav",
38
+ {
39
+ className: E(
40
+ e.navbar,
41
+ m && e.background,
42
+ r && e.open,
43
+ // (direction === "down" || hidden) && styles.hide
44
+ b && e.hide
45
+ ),
46
+ style: r ? {} : { position: d },
47
+ children: [
48
+ /* @__PURE__ */ u("a", { className: e.navbar__logo, href: "/", children: [
49
+ s && /* @__PURE__ */ n("img", { src: s }),
50
+ t && k(t, {
51
+ className: e.component
52
+ })
53
+ ] }),
54
+ /* @__PURE__ */ n("div", { className: e.navbar__toggle, children: /* @__PURE__ */ n(
55
+ w,
56
+ {
57
+ clickFn: () => _(!r),
58
+ isOpen: r,
59
+ theme: "color-white"
60
+ }
61
+ ) }),
62
+ /* @__PURE__ */ n("div", { className: e.navbar__links, children: c.map((a, g) => /* @__PURE__ */ n(
63
+ "a",
64
+ {
65
+ className: `${e.navbar__link}`,
66
+ href: a.value,
67
+ children: a.label
68
+ },
69
+ `navbar-d-${a.value}`
70
+ )) }),
71
+ r && N.createPortal(
72
+ /* @__PURE__ */ n(
73
+ D,
74
+ {
75
+ closeFn: () => _(!1),
76
+ hideClose: !0,
77
+ background: M.white,
78
+ fullscreen: !0,
79
+ children: /* @__PURE__ */ n(x, { color: "color-white", children: /* @__PURE__ */ n("div", { className: e.navbar__mobileDialog, children: c.map((a, g) => /* @__PURE__ */ n(
80
+ "a",
81
+ {
82
+ className: e.navbar__link,
83
+ href: a.value,
84
+ children: a.label
85
+ },
86
+ `m-${a.value}`
87
+ )) }) })
88
+ }
89
+ ),
90
+ document.body
91
+ )
92
+ ]
93
+ }
94
+ );
95
+ };
96
+ export {
97
+ Q as default
98
+ };
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { jsxs as o, jsx as s } from "react/jsx-runtime";
3
+ import { useReveal as m } from "../../hooks/useReveal.js";
4
+ import { appleReveal as i } from "../../presets/animations.js";
5
+ import _ from "../../utils/parse.js";
6
+ import '../../assets/Note.css';const p = "_salutation_vtem0_2", d = "_opener_vtem0_48", u = "_from_vtem0_53", f = "_body_vtem0_100", v = "_close_vtem0_152", N = "_signature_vtem0_199", e = {
7
+ salutation: p,
8
+ opener: d,
9
+ from: u,
10
+ body: f,
11
+ close: v,
12
+ signature: N
13
+ }, x = ({ salutation: t, from: a, body: n, signature: r, close: c }) => {
14
+ const l = m(i);
15
+ return /* @__PURE__ */ o("div", { className: e.note, ref: l, children: [
16
+ /* @__PURE__ */ o("p", { className: e.salutation, children: [
17
+ /* @__PURE__ */ o("span", { className: e.opener, children: [
18
+ t,
19
+ " "
20
+ ] }),
21
+ /* @__PURE__ */ s("span", { className: e.from, children: a })
22
+ ] }),
23
+ /* @__PURE__ */ s("div", { className: e.body, children: _(n) }),
24
+ /* @__PURE__ */ s("p", { className: e.close, children: c }),
25
+ /* @__PURE__ */ s("p", { className: e.signature, children: r })
26
+ ] });
27
+ };
28
+ export {
29
+ x as default
30
+ };
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { jsxs as f, jsx as o } from "react/jsx-runtime";
3
+ import y from "../../utils/parse.js";
4
+ import { useRef as e, useEffect as N } from "react";
5
+ import { g as t } from "../../index-BmTo-IS6.js";
6
+ import { S as B } from "../../ScrollTrigger-6HnikosL.js";
7
+ import T from "../../hooks/useResize.js";
8
+ import '../../assets/OverlayHero.css';const S = "_hero_7ipms_5", j = "_heroBg_7ipms_34", k = "_overlay_7ipms_42", E = "_eyebrow_7ipms_69", P = "_title_7ipms_76", W = "_subtitle_7ipms_94", r = {
9
+ hero: S,
10
+ heroBg: j,
11
+ overlay: k,
12
+ eyebrow: E,
13
+ title: P,
14
+ subtitle: W
15
+ };
16
+ t.registerPlugin(B);
17
+ const q = ({ text: z, image: d, pos: g, eyebrow: c, title: h, subtitle: i }) => {
18
+ const { innerWidth: _ } = T(), s = e(null), n = e(), l = e(null), a = e(null), u = e(null), m = e(null);
19
+ return N(() => {
20
+ const b = s.current, v = l.current, w = window.matchMedia("(prefers-reduced-motion: reduce)").matches, p = n.current;
21
+ if (w || _ < 390) return;
22
+ const R = t.context(() => {
23
+ t.fromTo(
24
+ v,
25
+ { opacity: 0 },
26
+ { opacity: 1, duration: 1.2, ease: "power2.out" }
27
+ );
28
+ const x = [a.current, u.current, m.current].filter(Boolean);
29
+ t.fromTo(
30
+ x,
31
+ { opacity: 0, y: 10 },
32
+ {
33
+ opacity: 1,
34
+ y: 0,
35
+ duration: 1,
36
+ ease: "power2.out",
37
+ stagger: 0.2,
38
+ delay: 1.2
39
+ }
40
+ ), t.fromTo(
41
+ p,
42
+ { scale: 1.1, opacity: 0 },
43
+ { scale: 1, opacity: 1, duration: 2, ease: "power1.out" }
44
+ ), t.to(p, {
45
+ y: "15%",
46
+ ease: "none",
47
+ scrollTrigger: {
48
+ trigger: b,
49
+ start: "top top",
50
+ end: "bottom top",
51
+ scrub: !0
52
+ }
53
+ });
54
+ }, s);
55
+ return () => R.revert();
56
+ }, []), /* @__PURE__ */ f("div", { ref: s, className: r.hero, children: [
57
+ /* @__PURE__ */ o("div", { ref: n, className: r.heroBg, style: { backgroundImage: `url(${d})`, backgroundPosition: g, opacity: 0 } }),
58
+ /* @__PURE__ */ f("div", { ref: l, className: r.overlay, style: { opacity: 0 }, children: [
59
+ c && /* @__PURE__ */ o("p", { ref: a, className: r.eyebrow, children: c }),
60
+ /* @__PURE__ */ o("h1", { ref: u, className: r.title, children: y(h) }),
61
+ i && /* @__PURE__ */ o("div", { ref: m, className: r.subtitle, children: y(i) })
62
+ ] })
63
+ ] });
64
+ };
65
+ export {
66
+ q as default
67
+ };
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { jsxs as i, jsx as o } from "react/jsx-runtime";
3
+ import '../../assets/PageContainer.css';const s = "_container__inner_1mlm4_2", m = "_removePadding_1mlm4_55", l = "_container__body_1mlm4_59", y = "_container__copy_1mlm4_74", n = {
4
+ container__inner: s,
5
+ removePadding: m,
6
+ container__body: l,
7
+ container__copy: y
8
+ }, P = ({
9
+ heroImage: g,
10
+ pageTitle: r,
11
+ children: t,
12
+ hero: h,
13
+ copy: e,
14
+ excludePadding: c = []
15
+ }) => {
16
+ const a = () => {
17
+ let _ = {};
18
+ for (let d of c)
19
+ _[`padding-${d}`] = 0;
20
+ return _;
21
+ };
22
+ return /* @__PURE__ */ i("main", { children: [
23
+ /* @__PURE__ */ o(
24
+ "div",
25
+ {
26
+ className: `${n.container__inner} ${!r && !e && n.removePadding}`,
27
+ style: a(),
28
+ children: /* @__PURE__ */ i("div", { className: n.container__copy, children: [
29
+ /* @__PURE__ */ o("h1", { children: r }),
30
+ e && /* @__PURE__ */ o("div", { className: n.container__body, children: e })
31
+ ] })
32
+ }
33
+ ),
34
+ t
35
+ ] });
36
+ };
37
+ export {
38
+ P as default
39
+ };
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ import { jsx as a, jsxs as _ } from "react/jsx-runtime";
3
+ import { useRef as o, useEffect as b } from "react";
4
+ import { g as i } from "../../index-BmTo-IS6.js";
5
+ import { S as w } from "../../ScrollTrigger-6HnikosL.js";
6
+ import '../../assets/ParallaxImageGrid.css';const h = "_container_1tu23_1", R = "_center_1tu23_10", T = "_wrapper_1tu23_17", k = "_box_1tu23_29", n = {
7
+ container: h,
8
+ center: R,
9
+ wrapper: T,
10
+ box: k
11
+ };
12
+ i.registerPlugin(w);
13
+ const A = ({ images: y, center: l }) => {
14
+ const c = o(null), u = o([]), p = o(), g = o(), x = [
15
+ { x: -500, y: -200 },
16
+ { x: -75, y: -200 },
17
+ { x: 200, y: 0 },
18
+ { x: 500, y: -200 },
19
+ { x: -500, y: 100 },
20
+ { x: -200, y: 0 },
21
+ { x: 75, y: 200 },
22
+ { x: 500, y: 200 }
23
+ ], f = (e) => {
24
+ const r = g.current.getBoundingClientRect(), t = r.width / 100 * x[e].x, s = r.height / 100 * x[e].y;
25
+ return { x: t, y: s };
26
+ };
27
+ return b(() => {
28
+ const e = i.context(() => {
29
+ const r = i.timeline({
30
+ scrollTrigger: {
31
+ trigger: c.current,
32
+ start: "top-=25% top",
33
+ toggleActions: "play none none none"
34
+ // end: "top-=10% top",
35
+ // end: "+=250%",
36
+ // scrub: true,
37
+ }
38
+ });
39
+ r.fromTo(
40
+ p.current,
41
+ { scale: 2, y: -200 },
42
+ { scale: 1, y: 0, ease: "power1.out", duration: 2 },
43
+ 0.7
44
+ ), u.current.forEach((t, s) => {
45
+ const { x: m, y: d } = f(s);
46
+ r.fromTo(
47
+ t,
48
+ { x: m, y: d, opacity: 0 },
49
+ {
50
+ x: 0,
51
+ y: 0,
52
+ opacity: 1,
53
+ ease: "power1.out",
54
+ duration: 3
55
+ },
56
+ 0
57
+ );
58
+ });
59
+ }, c);
60
+ return () => e.revert();
61
+ }, []), /* @__PURE__ */ a("div", { className: n.container, ref: c, children: /* @__PURE__ */ _("section", { className: n.wrapper, ref: g, children: [
62
+ y.map((e, r) => /* @__PURE__ */ a(
63
+ "div",
64
+ {
65
+ className: n.box,
66
+ ref: (t) => u.current[r] = t,
67
+ style: {
68
+ backgroundImage: `url(${e.src})`,
69
+ backgroundPosition: e.position,
70
+ backgroundSize: e.size,
71
+ gridArea: `area-${r + 1}`
72
+ }
73
+ },
74
+ r
75
+ )),
76
+ /* @__PURE__ */ a(
77
+ "div",
78
+ {
79
+ className: n.center,
80
+ ref: p,
81
+ style: {
82
+ backgroundImage: `url(${l.src})`,
83
+ backgroundPosition: l.position,
84
+ gridArea: "center"
85
+ }
86
+ }
87
+ )
88
+ ] }) });
89
+ };
90
+ export {
91
+ A as default
92
+ };
@@ -0,0 +1,107 @@
1
+ "use client";
2
+ import { jsxs as n, Fragment as N, jsx as a } from "react/jsx-runtime";
3
+ import { useMemo as q } from "react";
4
+ import "../../index-K0WrPJ_C.js";
5
+ import "../../hooks/useFadeIn.js";
6
+ import f from "../Button/Button.js";
7
+ import { appleStagger as r } from "../../presets/animations.js";
8
+ import { c as m } from "../../index-B2JRaoNz.js";
9
+ import "../OverlayHero/OverlayHero.js";
10
+ import "../../index-DyQs5aC7.js";
11
+ import { useStagger as y } from "../../hooks/useStagger.js";
12
+ import "../FloatingWordsHero/FloatingWordsHero.js";
13
+ import "../../index.modern-DPbS1w7M.js";
14
+ import '../../assets/PromoGroup.css';const C = "_group_iq3ie_2", b = "_slider_iq3ie_27", x = "_header_iq3ie_33", v = "_promo_iq3ie_81", T = "_icon_iq3ie_131", $ = "_cta_iq3ie_141", j = "_imageContainer_iq3ie_149", F = "_image_iq3ie_149", k = "_promo__header_iq3ie_161", S = "_promo__body_iq3ie_253", z = "_stats_iq3ie_300", A = "_stat_iq3ie_300", B = "_statText_iq3ie_314", e = {
15
+ group: C,
16
+ slider: b,
17
+ header: x,
18
+ promo: v,
19
+ icon: T,
20
+ cta: $,
21
+ imageContainer: j,
22
+ image: F,
23
+ promo__header: k,
24
+ promo__body: S,
25
+ stats: z,
26
+ stat: A,
27
+ statText: B,
28
+ "count-4": "_count-4_iq3ie_381",
29
+ "count-2": "_count-2_iq3ie_381"
30
+ }, Q = ({ header: d, promos: i, direction: c = "vertical", slider: g }) => {
31
+ const h = ["icon", "header", "body", "cta", "stats", "image"], p = y(`.${e.promo}`, r.from, {
32
+ ...r.to,
33
+ stagger: r.stagger,
34
+ scrollTrigger: { start: r.start }
35
+ }), l = q(() => {
36
+ let t = 0;
37
+ for (let s of h)
38
+ i.some((o) => !!o[s]) && (t += 1);
39
+ return t;
40
+ }, [i]);
41
+ return /* @__PURE__ */ n(N, { children: [
42
+ /* @__PURE__ */ a("h2", { className: e.header, children: d }),
43
+ /* @__PURE__ */ a(
44
+ "div",
45
+ {
46
+ ref: p,
47
+ className: m(
48
+ e.group,
49
+ e[`count-${i.length}`],
50
+ g && e.slider
51
+ ),
52
+ style: {
53
+ "--promos": i.length,
54
+ "--propCount": c == "horizontal" ? l - 1 : l
55
+ },
56
+ children: i.map((t, s) => {
57
+ const o = t.containerCta ? "a" : "div";
58
+ return /* @__PURE__ */ n(
59
+ o,
60
+ {
61
+ onClick: t.containerCta?.onClick || null,
62
+ href: t.containerCta?.href || null,
63
+ target: t.containerCta?.target || null,
64
+ delay: 0.1 * s,
65
+ className: e.promo,
66
+ "data-color": t.color,
67
+ "data-text-align": t.textAlign,
68
+ "data-direction": c,
69
+ children: [
70
+ t.icon && /* @__PURE__ */ a(
71
+ "span",
72
+ {
73
+ className: m(
74
+ "material-symbols-outlined",
75
+ e.icon,
76
+ !t.icon && "hidden"
77
+ ),
78
+ children: t.icon
79
+ }
80
+ ),
81
+ t.image && /* @__PURE__ */ a("div", { className: e.imageContainer, children: /* @__PURE__ */ a(
82
+ "img",
83
+ {
84
+ style: { objectFit: t.imageFit },
85
+ className: e.image,
86
+ src: t.image
87
+ }
88
+ ) }),
89
+ t.header && /* @__PURE__ */ a("h3", { className: e.promo__header, children: t.header }),
90
+ /* @__PURE__ */ a("p", { className: e.promo__body, children: t.body }),
91
+ t.cta && /* @__PURE__ */ a("div", { className: e.cta, children: /* @__PURE__ */ a(f, { ...t.cta }) }),
92
+ t.stats && /* @__PURE__ */ a("div", { className: e.stats, children: t.stats.map((_, u) => /* @__PURE__ */ n("div", { className: e.stat, children: [
93
+ /* @__PURE__ */ a("span", { className: "material-symbols-outlined", children: _.icon }),
94
+ /* @__PURE__ */ a("span", { className: e.statText, children: _.text })
95
+ ] }, `stat-${u}`)) })
96
+ ]
97
+ },
98
+ `promo-${s}`
99
+ );
100
+ })
101
+ }
102
+ )
103
+ ] });
104
+ };
105
+ export {
106
+ Q as default
107
+ };
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsxs as s, jsx as i } from "react/jsx-runtime";
3
+ import { Fragment as l } from "react";
4
+ import '../../assets/Schedule.css';const n = "_schedule_rm7y9_2", a = "_timeline_rm7y9_79", r = "_time_rm7y9_79", o = "_dot_rm7y9_92", _ = "_diagram_rm7y9_100", h = "_line_rm7y9_106", e = {
5
+ schedule: n,
6
+ timeline: a,
7
+ time: r,
8
+ dot: o,
9
+ diagram: _,
10
+ line: h
11
+ }, y = ({ slots: c, header: d }) => /* @__PURE__ */ s("div", { className: e.schedule, children: [
12
+ /* @__PURE__ */ i("h3", { children: d }),
13
+ /* @__PURE__ */ i("div", { className: e.timeline, children: c.map((m, t) => /* @__PURE__ */ s(l, { children: [
14
+ /* @__PURE__ */ i("div", { className: e.time, children: m.time }),
15
+ /* @__PURE__ */ s("div", { className: e.diagram, children: [
16
+ /* @__PURE__ */ i("span", { className: e.line }),
17
+ /* @__PURE__ */ i("div", { className: e.dot })
18
+ ] }),
19
+ /* @__PURE__ */ i("div", { className: e.description, children: m.description })
20
+ ] }, t)) })
21
+ ] });
22
+ export {
23
+ y as default
24
+ };
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ const s = ({ height: r, className: t }) => /* @__PURE__ */ e("div", { style: { height: r }, className: t });
4
+ export {
5
+ s as default
6
+ };
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { jsxs as i, jsx as s } from "react/jsx-runtime";
3
+ import { createElement as d } from "react";
4
+ import n from "../../utils/parse.js";
5
+ import m from "../IconDetail/IconDetail.js";
6
+ import '../../assets/TextBlock.css';const _ = "_title_1iuzs_1", p = "_blocks_1iuzs_52", k = "_block_1iuzs_52", h = "_blockHeader_1iuzs_63", b = "_description_1iuzs_92", e = {
7
+ title: _,
8
+ blocks: p,
9
+ block: k,
10
+ blockHeader: h,
11
+ description: b
12
+ }, z = ({ header: l, blocks: t }) => /* @__PURE__ */ i("div", { className: e.container, children: [
13
+ /* @__PURE__ */ s("h2", { className: e.title, children: l }),
14
+ /* @__PURE__ */ s("div", { className: e.blocks, children: t.map((c, o) => (
15
+ // <div className={styles.block} key={`block-${idx}`}>
16
+ /* @__PURE__ */ i("div", { className: e.block, children: [
17
+ /* @__PURE__ */ s("h3", { className: e.blockHeader, children: c.header }),
18
+ /* @__PURE__ */ i("div", { className: e.content, children: [
19
+ /* @__PURE__ */ s("div", { className: e.description, children: n(c.description) }),
20
+ /* @__PURE__ */ s("div", { className: e.details, children: c.details && c.details.map((a, r) => /* @__PURE__ */ d(m, { ...a, key: r })) })
21
+ ] })
22
+ ] }, `block-${o}`)
23
+ )) })
24
+ ] });
25
+ export {
26
+ z as default
27
+ };
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { jsxs as l, Fragment as g, jsx as t } from "react/jsx-runtime";
3
+ import { useRef as a, useEffect as f } from "react";
4
+ import { g as o } from "../../index-BmTo-IS6.js";
5
+ import { S as p } from "../../ScrollTrigger-6HnikosL.js";
6
+ import '../../assets/Timeline.css';const h = "_spacer_1g76i_1", u = "_timelineWrapper_1g76i_6", x = "_linePin_1g76i_12", v = "_timelineLine_1g76i_22", N = "_items_1g76i_33", y = "_item_1g76i_33", P = "_text_1g76i_49", i = {
7
+ spacer: h,
8
+ timelineWrapper: u,
9
+ linePin: x,
10
+ timelineLine: v,
11
+ items: N,
12
+ item: y,
13
+ text: P
14
+ };
15
+ o.registerPlugin(p);
16
+ const W = [
17
+ { year: "2019", text: "Started the journey" },
18
+ { year: "2021", text: "Major milestone" },
19
+ { year: "2024", text: "Where we are today" }
20
+ ];
21
+ function R() {
22
+ const s = a(null), d = a(null), m = a(null);
23
+ return f(() => {
24
+ const e = window.innerHeight, c = o.context(() => {
25
+ p.create({
26
+ trigger: s.current,
27
+ start: "top top",
28
+ end: `+=${e * 2}`,
29
+ // controls how long it stays pinned
30
+ pin: d.current,
31
+ scrub: !0,
32
+ onUpdate: (_) => {
33
+ const r = _.progress;
34
+ let n;
35
+ r < 0.25 ? n = r / 0.25 * 0.5 * e : r < 0.75 ? n = 0.5 * e : n = 0.5 * e + (r - 0.75) / 0.25 * 0.5 * e, o.set(m.current, { height: n });
36
+ }
37
+ });
38
+ }, s);
39
+ return () => c.revert();
40
+ }, []), /* @__PURE__ */ l(g, { children: [
41
+ /* @__PURE__ */ t("div", { className: i.spacer }),
42
+ /* @__PURE__ */ l("section", { className: i.timelineWrapper, ref: s, children: [
43
+ /* @__PURE__ */ t("div", { className: i.linePin, children: /* @__PURE__ */ t("div", { className: i.timelineLine, ref: m }) }),
44
+ /* @__PURE__ */ t("div", { className: i.items, children: W.map((e, c) => /* @__PURE__ */ t("div", { className: i.item, children: /* @__PURE__ */ l("div", { className: i.text, children: [
45
+ /* @__PURE__ */ t("h3", { children: e.year }),
46
+ /* @__PURE__ */ t("p", { children: e.text })
47
+ ] }) }, c)) })
48
+ ] }),
49
+ /* @__PURE__ */ t("div", { className: i.spacer })
50
+ ] });
51
+ }
52
+ export {
53
+ R as default
54
+ };
@@ -0,0 +1,27 @@
1
+ import { useState as s, useEffect as l } from "react";
2
+ function a() {
3
+ const [o, r] = s < string | null > null;
4
+ return l(() => {
5
+ const c = Array.from(
6
+ document.querySelectorAll < HTMLElement > '[id^="section-"]'
7
+ ), t = new IntersectionObserver(
8
+ (e) => {
9
+ e.forEach((n) => {
10
+ if (n.isIntersecting) {
11
+ const i = n.target.id.replace("section-", "");
12
+ r(i);
13
+ }
14
+ });
15
+ },
16
+ {
17
+ root: null,
18
+ rootMargin: "-40% 0px -40% 0px",
19
+ threshold: 0
20
+ }
21
+ );
22
+ return c.forEach((e) => t.observe(e)), () => t.disconnect();
23
+ }, []), o;
24
+ }
25
+ export {
26
+ a as useActiveSection
27
+ };
@@ -0,0 +1,52 @@
1
+ import { useRef as f } from "react";
2
+ import { g as s } from "../index-BmTo-IS6.js";
3
+ import { S as g } from "../ScrollTrigger-6HnikosL.js";
4
+ import { u as m } from "../index-K0WrPJ_C.js";
5
+ s.registerPlugin(g);
6
+ function b({
7
+ direction: u = "none",
8
+ // 'up' | 'down' | 'left' | 'right' | 'none'
9
+ distance: t = 40,
10
+ duration: c = 0.8,
11
+ delay: i = 0,
12
+ ease: n = "power2.out",
13
+ start: a = "top 85%",
14
+ once: p = !0
15
+ } = {}) {
16
+ const r = f(null);
17
+ return m(
18
+ () => {
19
+ if (!r.current) return;
20
+ const e = { opacity: 0 }, o = {
21
+ opacity: 1,
22
+ duration: c,
23
+ delay: i,
24
+ ease: n,
25
+ scrollTrigger: {
26
+ trigger: r.current,
27
+ start: a,
28
+ once: p
29
+ }
30
+ };
31
+ switch (u) {
32
+ case "up":
33
+ e.y = t, o.y = 0;
34
+ break;
35
+ case "down":
36
+ e.y = -t, o.y = 0;
37
+ break;
38
+ case "left":
39
+ e.x = t, o.x = 0;
40
+ break;
41
+ case "right":
42
+ e.x = -t, o.x = 0;
43
+ break;
44
+ }
45
+ s.fromTo(r.current, e, o);
46
+ },
47
+ { scope: r }
48
+ ), r;
49
+ }
50
+ export {
51
+ b as useFadeIn
52
+ };