@opensite/ui 3.2.6 → 3.2.8

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 (37) hide show
  1. package/dist/about-developer-story.cjs +7 -1
  2. package/dist/about-developer-story.js +7 -1
  3. package/dist/badge.d.cts +1 -1
  4. package/dist/badge.d.ts +1 -1
  5. package/dist/hero-overlay-cta-grid.cjs +82 -19
  6. package/dist/hero-overlay-cta-grid.d.cts +8 -13
  7. package/dist/hero-overlay-cta-grid.d.ts +8 -13
  8. package/dist/hero-overlay-cta-grid.js +83 -20
  9. package/dist/process-expandable-timeline.cjs +1 -2
  10. package/dist/process-expandable-timeline.js +1 -2
  11. package/dist/process-icon-timeline.cjs +9 -99
  12. package/dist/process-icon-timeline.d.cts +3 -3
  13. package/dist/process-icon-timeline.d.ts +3 -3
  14. package/dist/process-icon-timeline.js +9 -99
  15. package/dist/process-mission-principles.cjs +5 -67
  16. package/dist/process-mission-principles.d.cts +3 -3
  17. package/dist/process-mission-principles.d.ts +3 -3
  18. package/dist/process-mission-principles.js +5 -67
  19. package/dist/process-numbered-services.cjs +23 -117
  20. package/dist/process-numbered-services.d.cts +3 -3
  21. package/dist/process-numbered-services.d.ts +3 -3
  22. package/dist/process-numbered-services.js +23 -117
  23. package/dist/process-scroll-image.cjs +20 -85
  24. package/dist/process-scroll-image.d.cts +3 -11
  25. package/dist/process-scroll-image.d.ts +3 -11
  26. package/dist/process-scroll-image.js +18 -83
  27. package/dist/process-steps-grid.cjs +31 -99
  28. package/dist/process-steps-grid.d.cts +3 -3
  29. package/dist/process-steps-grid.d.ts +3 -3
  30. package/dist/process-steps-grid.js +31 -99
  31. package/dist/process-sticky-steps.cjs +90 -76
  32. package/dist/process-sticky-steps.d.cts +9 -1
  33. package/dist/process-sticky-steps.d.ts +9 -1
  34. package/dist/process-sticky-steps.js +90 -76
  35. package/dist/registry.cjs +128 -182
  36. package/dist/registry.js +128 -182
  37. package/package.json +1 -1
@@ -121,15 +121,15 @@ interface ProcessNumberedServicesProps {
121
121
  */
122
122
  optixFlowConfig?: OptixFlowConfig;
123
123
  /**
124
- * @deprecated Use `heading` instead
124
+ * Additional CSS classes for the container
125
125
  */
126
- title?: string;
126
+ containerClassName?: string;
127
127
  /** Optional Section ID */
128
128
  sectionId?: string;
129
129
  }
130
130
  /**
131
131
  * ProcessNumberedServices - A numbered services section with capabilities grid.
132
132
  */
133
- declare function ProcessNumberedServices({ sectionId, heading, description, services, servicesSlot, className, contentClassName, headerClassName, headingClassName, descriptionClassName, servicesClassName, serviceItemClassName, serviceBadgeClassName, capabilitiesClassName, background, spacing, pattern, patternOpacity, title, }: ProcessNumberedServicesProps): React.JSX.Element;
133
+ declare function ProcessNumberedServices({ sectionId, heading, description, services, servicesSlot, className, contentClassName, headerClassName, headingClassName, descriptionClassName, servicesClassName, serviceItemClassName, serviceBadgeClassName, capabilitiesClassName, background, spacing, pattern, patternOpacity, containerClassName, }: ProcessNumberedServicesProps): React.JSX.Element;
134
134
 
135
135
  export { ProcessNumberedServices, type ProcessNumberedServicesProps };
@@ -11,88 +11,6 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
11
11
  function cn(...inputs) {
12
12
  return twMerge(clsx(inputs));
13
13
  }
14
- function getNestedCardBg(parentBg, variant = "muted", options) {
15
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
16
- if (isDark) {
17
- switch (variant) {
18
- case "muted":
19
- return "bg-background";
20
- case "card":
21
- return "bg-card";
22
- case "accent":
23
- return "bg-accent";
24
- case "subtle":
25
- return "bg-background/50";
26
- }
27
- } else {
28
- switch (variant) {
29
- case "muted":
30
- return "bg-muted";
31
- case "card":
32
- return "bg-card";
33
- case "accent":
34
- return "bg-accent";
35
- case "subtle":
36
- return "bg-muted/50";
37
- }
38
- }
39
- }
40
- function getNestedCardTextColor(parentBg, options) {
41
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
- return isDark ? "text-foreground" : "";
43
- }
44
- function getTextColor(parentBg, variant = "default", options) {
45
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
- if (isDark) {
47
- switch (variant) {
48
- case "default":
49
- return "text-foreground";
50
- case "muted":
51
- return "text-foreground/80";
52
- case "subtle":
53
- return "text-foreground/60";
54
- case "accent":
55
- return "text-accent-foreground";
56
- }
57
- } else {
58
- switch (variant) {
59
- case "default":
60
- return "text-foreground";
61
- case "muted":
62
- return "text-muted-foreground";
63
- case "subtle":
64
- return "text-muted-foreground/70";
65
- case "accent":
66
- return "text-primary";
67
- }
68
- }
69
- }
70
- function getAccentColor(parentBg, options) {
71
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
72
- return isDark ? "text-accent-foreground" : "text-primary";
73
- }
74
- function getBorderColor(parentBg, variant = "default", options) {
75
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
76
- if (isDark) {
77
- switch (variant) {
78
- case "default":
79
- return "border-foreground/20";
80
- case "muted":
81
- return "border-foreground/10";
82
- case "accent":
83
- return "border-accent-foreground";
84
- }
85
- } else {
86
- switch (variant) {
87
- case "default":
88
- return "border-border";
89
- case "muted":
90
- return "border-muted";
91
- case "accent":
92
- return "border-primary";
93
- }
94
- }
95
- }
96
14
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
97
15
  var DynamicIcon = React.memo(function DynamicIcon2({
98
16
  apiKey,
@@ -493,13 +411,12 @@ function ProcessNumberedServices({
493
411
  serviceBadgeClassName,
494
412
  capabilitiesClassName,
495
413
  background,
496
- spacing = "py-6 md:py-32",
414
+ spacing = "md",
497
415
  pattern,
498
416
  patternOpacity,
499
- // Backwards compatibility
500
- title
417
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
501
418
  }) {
502
- const resolvedHeading = title ?? heading;
419
+ const resolvedHeading = heading;
503
420
  const renderServiceAction = useMemo(() => {
504
421
  return (service) => {
505
422
  if (service.actionSlot) return service.actionSlot;
@@ -517,11 +434,19 @@ function ProcessNumberedServices({
517
434
  className: actionClassName,
518
435
  ...pressableProps
519
436
  } = action;
520
- return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: cn(actionClassName), ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
521
- icon,
522
- label,
523
- iconAfter && iconAfter
524
- ] }) });
437
+ return /* @__PURE__ */ jsx(
438
+ Pressable,
439
+ {
440
+ asButton: true,
441
+ className: cn(actionClassName, "mt-4"),
442
+ ...pressableProps,
443
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
444
+ icon,
445
+ label,
446
+ iconAfter && iconAfter
447
+ ] })
448
+ }
449
+ );
525
450
  };
526
451
  }, []);
527
452
  const renderServices = useMemo(() => {
@@ -540,9 +465,7 @@ function ProcessNumberedServices({
540
465
  "div",
541
466
  {
542
467
  className: cn(
543
- "flex size-16 items-center justify-center rounded-full border-2 text-xl font-bold transition-colors",
544
- getBorderColor(background, "accent"),
545
- getAccentColor(background),
468
+ "flex size-16 items-center justify-center rounded-full border-2 border-primary text-primary text-xl font-bold transition-colors",
546
469
  "bg-primary/5 group-hover:bg-primary group-hover:text-primary-foreground",
547
470
  serviceBadgeClassName
548
471
  ),
@@ -550,8 +473,8 @@ function ProcessNumberedServices({
550
473
  }
551
474
  ) }),
552
475
  /* @__PURE__ */ jsxs("div", { className: "lg:col-span-4", children: [
553
- service.title && (typeof service.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title }) : /* @__PURE__ */ jsx("div", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title })),
554
- service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description })),
476
+ service.title && (typeof service.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title }) : service.title),
477
+ service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed"), children: service.description }) : service.description),
555
478
  renderServiceAction(service)
556
479
  ] }),
557
480
  /* @__PURE__ */ jsx("div", { className: "lg:col-span-7", children: service.capabilities?.length ? /* @__PURE__ */ jsx(
@@ -566,18 +489,10 @@ function ProcessNumberedServices({
566
489
  {
567
490
  className: cn(
568
491
  "flex items-center gap-3 rounded-lg px-4 py-3",
569
- getNestedCardBg(background, "muted"),
570
- getNestedCardTextColor(background)
492
+ "bg-muted text-muted-foreground"
571
493
  ),
572
494
  children: [
573
- /* @__PURE__ */ jsx(
574
- DynamicIcon,
575
- {
576
- name: "lucide/check-circle-2",
577
- size: 18,
578
- className: getAccentColor(background)
579
- }
580
- ),
495
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 18 }),
581
496
  /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: capability })
582
497
  ]
583
498
  },
@@ -608,6 +523,7 @@ function ProcessNumberedServices({
608
523
  className,
609
524
  pattern,
610
525
  patternOpacity,
526
+ containerClassName,
611
527
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
612
528
  /* @__PURE__ */ jsxs("div", { className: cn("mb-16 max-w-2xl", headerClassName), children: [
613
529
  resolvedHeading && (typeof resolvedHeading === "string" ? /* @__PURE__ */ jsx(
@@ -620,17 +536,7 @@ function ProcessNumberedServices({
620
536
  children: resolvedHeading
621
537
  }
622
538
  ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: resolvedHeading })),
623
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
624
- "p",
625
- {
626
- className: cn(
627
- "text-lg",
628
- getTextColor(background, "muted"),
629
- descriptionClassName
630
- ),
631
- children: description
632
- }
633
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
539
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description }) : description)
634
540
  ] }),
635
541
  renderServices
636
542
  ] })
@@ -1,13 +1,12 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React4 = require('react');
4
+ var React3 = require('react');
5
5
  var framerMotion = require('framer-motion');
6
6
  var clsx = require('clsx');
7
7
  var tailwindMerge = require('tailwind-merge');
8
8
  var img = require('@page-speed/img');
9
9
  var pressable = require('@page-speed/pressable');
10
- var icon = require('@page-speed/icon');
11
10
  var jsxRuntime = require('react/jsx-runtime');
12
11
 
13
12
  function _interopNamespace(e) {
@@ -28,50 +27,12 @@ function _interopNamespace(e) {
28
27
  return Object.freeze(n);
29
28
  }
30
29
 
31
- var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
30
+ var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
32
31
 
33
32
  // components/blocks/process/process-scroll-image.tsx
34
33
  function cn(...inputs) {
35
34
  return tailwindMerge.twMerge(clsx.clsx(inputs));
36
35
  }
37
- function getTextColor(parentBg, variant = "default", options) {
38
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
39
- if (isDark) {
40
- switch (variant) {
41
- case "default":
42
- return "text-foreground";
43
- case "muted":
44
- return "text-foreground/80";
45
- case "subtle":
46
- return "text-foreground/60";
47
- case "accent":
48
- return "text-accent-foreground";
49
- }
50
- } else {
51
- switch (variant) {
52
- case "default":
53
- return "text-foreground";
54
- case "muted":
55
- return "text-muted-foreground";
56
- case "subtle":
57
- return "text-muted-foreground/70";
58
- case "accent":
59
- return "text-primary";
60
- }
61
- }
62
- }
63
- function getAccentColor(parentBg, options) {
64
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
65
- return isDark ? "text-accent-foreground" : "text-primary";
66
- }
67
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
68
- var DynamicIcon = React4__namespace.memo(function DynamicIcon2({
69
- apiKey,
70
- ...props
71
- }) {
72
- return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
73
- });
74
- DynamicIcon.displayName = "DynamicIcon";
75
36
  var maxWidthStyles = {
76
37
  sm: "max-w-screen-sm",
77
38
  md: "max-w-screen-md",
@@ -81,7 +42,7 @@ var maxWidthStyles = {
81
42
  "4xl": "max-w-[1536px]",
82
43
  full: "max-w-full"
83
44
  };
84
- var Container = React4__namespace.default.forwardRef(
45
+ var Container = React3__namespace.default.forwardRef(
85
46
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
86
47
  const Component = as;
87
48
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -387,7 +348,7 @@ var spacingStyles = {
387
348
  };
388
349
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
389
350
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
390
- var Section = React4__namespace.default.forwardRef(
351
+ var Section = React3__namespace.default.forwardRef(
391
352
  ({
392
353
  id,
393
354
  title,
@@ -449,9 +410,9 @@ var Section = React4__namespace.default.forwardRef(
449
410
  );
450
411
  Section.displayName = "Section";
451
412
  var usePrevious = (value) => {
452
- const [prev, setPrev] = React4__namespace.useState(void 0);
453
- const ref = React4__namespace.useRef(value);
454
- React4__namespace.useEffect(() => {
413
+ const [prev, setPrev] = React3__namespace.useState(void 0);
414
+ const ref = React3__namespace.useRef(value);
415
+ React3__namespace.useEffect(() => {
455
416
  setPrev(ref.current);
456
417
  ref.current = value;
457
418
  }, [value]);
@@ -464,12 +425,12 @@ var ProcessCard = ({
464
425
  itemClassName,
465
426
  background
466
427
  }) => {
467
- const ref = React4__namespace.useRef(null);
428
+ const ref = React3__namespace.useRef(null);
468
429
  const itemInView = framerMotion.useInView(ref, {
469
430
  amount: 0,
470
431
  margin: "0px 0px -60% 0px"
471
432
  });
472
- React4__namespace.useEffect(() => {
433
+ React3__namespace.useEffect(() => {
473
434
  if (itemInView) {
474
435
  setActive(index);
475
436
  }
@@ -484,10 +445,10 @@ var ProcessCard = ({
484
445
  step.className
485
446
  ),
486
447
  children: [
487
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-fit items-center justify-center px-4 py-1 text-9xl tracking-tighter", children: step.step ?? `0${index + 1}` }),
448
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-fit items-center justify-center px-4 py-1 text-5xl md:text-7xl tracking-tighter", children: step.step ?? `0${index + 1}` }),
488
449
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
489
450
  step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: step.title })),
490
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: step.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: getTextColor(background, "muted"), children: step.description }))
451
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: step.description }) : step.description)
491
452
  ] })
492
453
  ]
493
454
  }
@@ -515,30 +476,13 @@ function ProcessScrollImage({
515
476
  pattern,
516
477
  patternOpacity,
517
478
  optixFlowConfig,
518
- // Backwards compatibility
519
- title,
520
- ctaText,
521
- ctaUrl
479
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
522
480
  }) {
523
- const [active, setActive] = React4__namespace.useState(0);
481
+ const [active, setActive] = React3__namespace.useState(0);
524
482
  const previousActive = usePrevious(active);
525
- const resolvedHeading = title ?? heading;
526
- const resolvedActions = actions ?? (ctaText && ctaUrl ? [
527
- {
528
- label: ctaText,
529
- href: ctaUrl,
530
- variant: "ghost",
531
- icon: /* @__PURE__ */ jsxRuntime.jsx(
532
- DynamicIcon,
533
- {
534
- name: "lucide/corner-down-right",
535
- size: 20,
536
- className: getAccentColor(background)
537
- }
538
- )
539
- }
540
- ] : []);
541
- const renderActions = React4.useMemo(() => {
483
+ const resolvedHeading = heading;
484
+ const resolvedActions = actions || [];
485
+ const renderActions = React3.useMemo(() => {
542
486
  return () => {
543
487
  if (actionsSlot) return actionsSlot;
544
488
  if (!resolvedActions?.length) return null;
@@ -577,7 +521,7 @@ function ProcessScrollImage({
577
521
  );
578
522
  };
579
523
  }, [actionsSlot, resolvedActions, actionsClassName]);
580
- const renderSteps = React4.useMemo(() => {
524
+ const renderSteps = React3.useMemo(() => {
581
525
  if (stepsSlot) return stepsSlot;
582
526
  if (!steps?.length) return null;
583
527
  return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("relative w-full lg:pl-22", stepsClassName), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -606,6 +550,7 @@ function ProcessScrollImage({
606
550
  className,
607
551
  pattern,
608
552
  patternOpacity,
553
+ containerClassName,
609
554
  children: /* @__PURE__ */ jsxRuntime.jsxs(
610
555
  "div",
611
556
  {
@@ -631,18 +576,8 @@ function ProcessScrollImage({
631
576
  ),
632
577
  children: resolvedHeading
633
578
  }
634
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: resolvedHeading })),
635
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
636
- "p",
637
- {
638
- className: cn(
639
- "text-base",
640
- getTextColor(background, "muted"),
641
- descriptionClassName
642
- ),
643
- children: description
644
- }
645
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
579
+ ) : resolvedHeading),
580
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-base", descriptionClassName), children: description }) : description),
646
581
  /* @__PURE__ */ jsxRuntime.jsxs(
647
582
  "div",
648
583
  {
@@ -113,23 +113,15 @@ interface ProcessScrollImageProps {
113
113
  */
114
114
  optixFlowConfig?: OptixFlowConfig;
115
115
  /**
116
- * @deprecated Use `heading` instead
116
+ * Additional CSS classes for the container
117
117
  */
118
- title?: string;
119
- /**
120
- * @deprecated Use `actions` instead
121
- */
122
- ctaText?: string;
123
- /**
124
- * @deprecated Use `actions` instead
125
- */
126
- ctaUrl?: string;
118
+ containerClassName?: string;
127
119
  /** Optional Section ID */
128
120
  sectionId?: string;
129
121
  }
130
122
  /**
131
123
  * ProcessScrollImage - A process section with scroll-triggered image transitions.
132
124
  */
133
- declare function ProcessScrollImage({ sectionId, heading, description, actions, actionsSlot, steps, stepsSlot, className, contentClassName, sidebarClassName, headingClassName, descriptionClassName, imageContainerClassName, actionsClassName, stepsClassName, stepItemClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, title, ctaText, ctaUrl, }: ProcessScrollImageProps): React.JSX.Element;
125
+ declare function ProcessScrollImage({ sectionId, heading, description, actions, actionsSlot, steps, stepsSlot, className, contentClassName, sidebarClassName, headingClassName, descriptionClassName, imageContainerClassName, actionsClassName, stepsClassName, stepItemClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, containerClassName, }: ProcessScrollImageProps): React.JSX.Element;
134
126
 
135
127
  export { ProcessScrollImage, type ProcessScrollImageProps };
@@ -113,23 +113,15 @@ interface ProcessScrollImageProps {
113
113
  */
114
114
  optixFlowConfig?: OptixFlowConfig;
115
115
  /**
116
- * @deprecated Use `heading` instead
116
+ * Additional CSS classes for the container
117
117
  */
118
- title?: string;
119
- /**
120
- * @deprecated Use `actions` instead
121
- */
122
- ctaText?: string;
123
- /**
124
- * @deprecated Use `actions` instead
125
- */
126
- ctaUrl?: string;
118
+ containerClassName?: string;
127
119
  /** Optional Section ID */
128
120
  sectionId?: string;
129
121
  }
130
122
  /**
131
123
  * ProcessScrollImage - A process section with scroll-triggered image transitions.
132
124
  */
133
- declare function ProcessScrollImage({ sectionId, heading, description, actions, actionsSlot, steps, stepsSlot, className, contentClassName, sidebarClassName, headingClassName, descriptionClassName, imageContainerClassName, actionsClassName, stepsClassName, stepItemClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, title, ctaText, ctaUrl, }: ProcessScrollImageProps): React.JSX.Element;
125
+ declare function ProcessScrollImage({ sectionId, heading, description, actions, actionsSlot, steps, stepsSlot, className, contentClassName, sidebarClassName, headingClassName, descriptionClassName, imageContainerClassName, actionsClassName, stepsClassName, stepItemClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, containerClassName, }: ProcessScrollImageProps): React.JSX.Element;
134
126
 
135
127
  export { ProcessScrollImage, type ProcessScrollImageProps };
@@ -1,56 +1,17 @@
1
1
  "use client";
2
- import * as React4 from 'react';
3
- import React4__default, { useMemo } from 'react';
2
+ import * as React3 from 'react';
3
+ import React3__default, { useMemo } from 'react';
4
4
  import { motion, useInView } from 'framer-motion';
5
5
  import { clsx } from 'clsx';
6
6
  import { twMerge } from 'tailwind-merge';
7
7
  import { Img } from '@page-speed/img';
8
8
  import { Pressable } from '@page-speed/pressable';
9
- import { Icon } from '@page-speed/icon';
10
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
11
10
 
12
11
  // components/blocks/process/process-scroll-image.tsx
13
12
  function cn(...inputs) {
14
13
  return twMerge(clsx(inputs));
15
14
  }
16
- function getTextColor(parentBg, variant = "default", options) {
17
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
18
- if (isDark) {
19
- switch (variant) {
20
- case "default":
21
- return "text-foreground";
22
- case "muted":
23
- return "text-foreground/80";
24
- case "subtle":
25
- return "text-foreground/60";
26
- case "accent":
27
- return "text-accent-foreground";
28
- }
29
- } else {
30
- switch (variant) {
31
- case "default":
32
- return "text-foreground";
33
- case "muted":
34
- return "text-muted-foreground";
35
- case "subtle":
36
- return "text-muted-foreground/70";
37
- case "accent":
38
- return "text-primary";
39
- }
40
- }
41
- }
42
- function getAccentColor(parentBg, options) {
43
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
44
- return isDark ? "text-accent-foreground" : "text-primary";
45
- }
46
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
47
- var DynamicIcon = React4.memo(function DynamicIcon2({
48
- apiKey,
49
- ...props
50
- }) {
51
- return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
52
- });
53
- DynamicIcon.displayName = "DynamicIcon";
54
15
  var maxWidthStyles = {
55
16
  sm: "max-w-screen-sm",
56
17
  md: "max-w-screen-md",
@@ -60,7 +21,7 @@ var maxWidthStyles = {
60
21
  "4xl": "max-w-[1536px]",
61
22
  full: "max-w-full"
62
23
  };
63
- var Container = React4__default.forwardRef(
24
+ var Container = React3__default.forwardRef(
64
25
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
65
26
  const Component = as;
66
27
  return /* @__PURE__ */ jsx(
@@ -366,7 +327,7 @@ var spacingStyles = {
366
327
  };
367
328
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
368
329
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
369
- var Section = React4__default.forwardRef(
330
+ var Section = React3__default.forwardRef(
370
331
  ({
371
332
  id,
372
333
  title,
@@ -428,9 +389,9 @@ var Section = React4__default.forwardRef(
428
389
  );
429
390
  Section.displayName = "Section";
430
391
  var usePrevious = (value) => {
431
- const [prev, setPrev] = React4.useState(void 0);
432
- const ref = React4.useRef(value);
433
- React4.useEffect(() => {
392
+ const [prev, setPrev] = React3.useState(void 0);
393
+ const ref = React3.useRef(value);
394
+ React3.useEffect(() => {
434
395
  setPrev(ref.current);
435
396
  ref.current = value;
436
397
  }, [value]);
@@ -443,12 +404,12 @@ var ProcessCard = ({
443
404
  itemClassName,
444
405
  background
445
406
  }) => {
446
- const ref = React4.useRef(null);
407
+ const ref = React3.useRef(null);
447
408
  const itemInView = useInView(ref, {
448
409
  amount: 0,
449
410
  margin: "0px 0px -60% 0px"
450
411
  });
451
- React4.useEffect(() => {
412
+ React3.useEffect(() => {
452
413
  if (itemInView) {
453
414
  setActive(index);
454
415
  }
@@ -463,10 +424,10 @@ var ProcessCard = ({
463
424
  step.className
464
425
  ),
465
426
  children: [
466
- /* @__PURE__ */ jsx("div", { className: "flex w-fit items-center justify-center px-4 py-1 text-9xl tracking-tighter", children: step.step ?? `0${index + 1}` }),
427
+ /* @__PURE__ */ jsx("div", { className: "flex w-fit items-center justify-center px-4 py-1 text-5xl md:text-7xl tracking-tighter", children: step.step ?? `0${index + 1}` }),
467
428
  /* @__PURE__ */ jsxs("div", { children: [
468
429
  step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-4 text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) : /* @__PURE__ */ jsx("div", { className: "mb-4", children: step.title })),
469
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: step.description }) : /* @__PURE__ */ jsx("div", { className: getTextColor(background, "muted"), children: step.description }))
430
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { children: step.description }) : step.description)
470
431
  ] })
471
432
  ]
472
433
  }
@@ -494,29 +455,12 @@ function ProcessScrollImage({
494
455
  pattern,
495
456
  patternOpacity,
496
457
  optixFlowConfig,
497
- // Backwards compatibility
498
- title,
499
- ctaText,
500
- ctaUrl
458
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
501
459
  }) {
502
- const [active, setActive] = React4.useState(0);
460
+ const [active, setActive] = React3.useState(0);
503
461
  const previousActive = usePrevious(active);
504
- const resolvedHeading = title ?? heading;
505
- const resolvedActions = actions ?? (ctaText && ctaUrl ? [
506
- {
507
- label: ctaText,
508
- href: ctaUrl,
509
- variant: "ghost",
510
- icon: /* @__PURE__ */ jsx(
511
- DynamicIcon,
512
- {
513
- name: "lucide/corner-down-right",
514
- size: 20,
515
- className: getAccentColor(background)
516
- }
517
- )
518
- }
519
- ] : []);
462
+ const resolvedHeading = heading;
463
+ const resolvedActions = actions || [];
520
464
  const renderActions = useMemo(() => {
521
465
  return () => {
522
466
  if (actionsSlot) return actionsSlot;
@@ -585,6 +529,7 @@ function ProcessScrollImage({
585
529
  className,
586
530
  pattern,
587
531
  patternOpacity,
532
+ containerClassName,
588
533
  children: /* @__PURE__ */ jsxs(
589
534
  "div",
590
535
  {
@@ -610,18 +555,8 @@ function ProcessScrollImage({
610
555
  ),
611
556
  children: resolvedHeading
612
557
  }
613
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: resolvedHeading })),
614
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
615
- "p",
616
- {
617
- className: cn(
618
- "text-base",
619
- getTextColor(background, "muted"),
620
- descriptionClassName
621
- ),
622
- children: description
623
- }
624
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
558
+ ) : resolvedHeading),
559
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base", descriptionClassName), children: description }) : description),
625
560
  /* @__PURE__ */ jsxs(
626
561
  "div",
627
562
  {