@opensite/ui 0.7.5 → 0.7.7

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.
package/dist/registry.cjs CHANGED
@@ -78,6 +78,16 @@ var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMe
78
78
  function cn(...inputs) {
79
79
  return tailwindMerge.twMerge(clsx.clsx(inputs));
80
80
  }
81
+ var BRIGHTNESS_CLASS_MAP = {
82
+ "10": "brightness-[.1]",
83
+ "20": "brightness-[.2]",
84
+ "25": "brightness-[.25]",
85
+ "30": "brightness-[.3]",
86
+ "40": "brightness-[.4]",
87
+ "50": "brightness-50",
88
+ "75": "brightness-75",
89
+ "100": "brightness-100"
90
+ };
81
91
  var maxWidthStyles = {
82
92
  sm: "max-w-screen-sm",
83
93
  md: "max-w-screen-md",
@@ -17279,16 +17289,6 @@ function ContactHelpCenter({
17279
17289
  }
17280
17290
  );
17281
17291
  }
17282
- var BRIGHTNESS_CLASS_MAP = {
17283
- "10": "brightness-[.1]",
17284
- "20": "brightness-[.2]",
17285
- "25": "brightness-[.25]",
17286
- "30": "brightness-[.3]",
17287
- "40": "brightness-[.4]",
17288
- "50": "brightness-50",
17289
- "75": "brightness-75",
17290
- "100": "brightness-100"
17291
- };
17292
17292
  function CarouselAnimatedSections({
17293
17293
  sections,
17294
17294
  sectionsSlot,
@@ -18280,7 +18280,7 @@ function CarouselFullscreenScrollFx({
18280
18280
  slides,
18281
18281
  slidesSlot,
18282
18282
  className,
18283
- containerClassName = "h-full flex flex-col justify-center",
18283
+ containerClassName = "mx-auto w-full p-0 px-0 sm:px-0 lg:px-0 max-w-full relative z-10 h-full flex flex-col justify-center",
18284
18284
  navigationClassName,
18285
18285
  contentClassName,
18286
18286
  subtitleClassName,
@@ -18302,9 +18302,9 @@ function CarouselFullscreenScrollFx({
18302
18302
  const scrollContainer = scrollContainerRef.current;
18303
18303
  if (!scrollContainer || !slides?.length) return;
18304
18304
  const handleScroll = () => {
18305
- const scrollLeft = scrollContainer.scrollLeft;
18306
- const slideWidth = scrollContainer.clientWidth;
18307
- const newIndex = Math.round(scrollLeft / slideWidth);
18305
+ const scrollTop = scrollContainer.scrollTop;
18306
+ const slideHeight = scrollContainer.clientHeight;
18307
+ const newIndex = Math.round(scrollTop / slideHeight);
18308
18308
  setActiveIndex(newIndex);
18309
18309
  };
18310
18310
  scrollContainer.addEventListener("scroll", handleScroll);
@@ -18313,14 +18313,14 @@ function CarouselFullscreenScrollFx({
18313
18313
  const scrollToSlide = React52__namespace.useCallback((index) => {
18314
18314
  const scrollContainer = scrollContainerRef.current;
18315
18315
  if (!scrollContainer) return;
18316
- const slideWidth = scrollContainer.clientWidth;
18316
+ const slideHeight = scrollContainer.clientHeight;
18317
18317
  if (typeof scrollContainer.scrollTo === "function") {
18318
18318
  scrollContainer.scrollTo({
18319
- left: slideWidth * index,
18319
+ top: slideHeight * index,
18320
18320
  behavior: "smooth"
18321
18321
  });
18322
18322
  } else {
18323
- scrollContainer.scrollLeft = slideWidth * index;
18323
+ scrollContainer.scrollTop = slideHeight * index;
18324
18324
  }
18325
18325
  }, []);
18326
18326
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -18333,7 +18333,7 @@ function CarouselFullscreenScrollFx({
18333
18333
  pattern,
18334
18334
  patternOpacity,
18335
18335
  containerMaxWidth,
18336
- containerClassName: "p-0",
18336
+ containerClassName,
18337
18337
  children: [
18338
18338
  /* @__PURE__ */ jsxRuntime.jsx(
18339
18339
  "div",
@@ -18360,7 +18360,7 @@ function CarouselFullscreenScrollFx({
18360
18360
  "div",
18361
18361
  {
18362
18362
  ref: scrollContainerRef,
18363
- className: "flex h-screen snap-x snap-mandatory overflow-x-auto overflow-y-hidden scroll-smooth",
18363
+ className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
18364
18364
  style: { scrollbarWidth: "none", msOverflowStyle: "none" },
18365
18365
  children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
18366
18366
  const renderActions = React52__namespace.useMemo(() => {
@@ -18396,7 +18396,7 @@ function CarouselFullscreenScrollFx({
18396
18396
  {
18397
18397
  id: `fullscreen-${slide.id}`,
18398
18398
  className: cn(
18399
- "relative flex h-screen min-w-full snap-start items-center justify-center overflow-hidden",
18399
+ "relative flex h-screen min-h-screen w-full snap-start items-center justify-center overflow-hidden",
18400
18400
  slide.className
18401
18401
  ),
18402
18402
  children: [
@@ -18427,7 +18427,7 @@ function CarouselFullscreenScrollFx({
18427
18427
  "div",
18428
18428
  {
18429
18429
  className: cn(
18430
- "relative z-10 mx-auto max-w-4xl md:max-w-2xl px-6 text-center text-white text-shadow",
18430
+ "relative z-10 mx-auto max-w-4xl md:max-w-xl px-6 text-center text-shadow",
18431
18431
  contentClassName
18432
18432
  ),
18433
18433
  children: [
@@ -18466,12 +18466,14 @@ function CarouselFullscreenScrollFx({
18466
18466
  }
18467
18467
  ),
18468
18468
  index < (slides?.length ?? 0) - 1 && /* @__PURE__ */ jsxRuntime.jsx(
18469
- "div",
18469
+ "button",
18470
18470
  {
18471
+ onClick: () => scrollToSlide(index + 1),
18471
18472
  className: cn(
18472
- "absolute bottom-8 left-1/2 -translate-x-1/2",
18473
+ "absolute bottom-8 left-1/2 -translate-x-1/2 cursor-pointer transition-opacity hover:opacity-80 focus:outline-none focus-visible:ring-2 focus-visible:ring-white/50 focus-visible:ring-offset-2 focus-visible:ring-offset-black rounded-lg p-2",
18473
18474
  scrollIndicatorClassName
18474
18475
  ),
18476
+ "aria-label": "Scroll to next slide",
18475
18477
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18476
18478
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs uppercase tracking-widest text-white/50", children: "Scroll" }),
18477
18479
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-px animate-pulse bg-linear-to-b from-white/50 to-transparent" })
@@ -18963,7 +18965,14 @@ function CarouselMultiStepShowcase({
18963
18965
  if (actionsSlot) return actionsSlot;
18964
18966
  if (!actions || actions.length === 0) return null;
18965
18967
  return actions.map((action, index) => {
18966
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
18968
+ const {
18969
+ label,
18970
+ icon,
18971
+ iconAfter,
18972
+ children,
18973
+ className: actionClassName,
18974
+ ...pressableProps
18975
+ } = action;
18967
18976
  return /* @__PURE__ */ jsxRuntime.jsx(
18968
18977
  Pressable,
18969
18978
  {
@@ -18973,7 +18982,14 @@ function CarouselMultiStepShowcase({
18973
18982
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
18974
18983
  icon,
18975
18984
  label,
18976
- iconAfter ?? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16, className: "ml-2" })
18985
+ iconAfter ?? /* @__PURE__ */ jsxRuntime.jsx(
18986
+ DynamicIcon,
18987
+ {
18988
+ name: "lucide/arrow-right",
18989
+ size: 16,
18990
+ className: "ml-2"
18991
+ }
18992
+ )
18977
18993
  ] })
18978
18994
  },
18979
18995
  index
@@ -19007,124 +19023,187 @@ function CarouselMultiStepShowcase({
19007
19023
  patternOpacity,
19008
19024
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container mx-auto px-4", containerClassName), children: [
19009
19025
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
19010
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
19011
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", subheadingClassName), children: subheading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subheadingClassName, children: subheading }))
19026
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
19027
+ "h2",
19028
+ {
19029
+ className: cn(
19030
+ "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl",
19031
+ headingClassName
19032
+ ),
19033
+ children: heading
19034
+ }
19035
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
19036
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
19037
+ "p",
19038
+ {
19039
+ className: cn(
19040
+ "mt-4 text-lg text-muted-foreground",
19041
+ subheadingClassName
19042
+ ),
19043
+ children: subheading
19044
+ }
19045
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subheadingClassName, children: subheading }))
19012
19046
  ] }),
19013
- stepsSlot ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: stepNavigationClassName, children: stepsSlot }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8 flex flex-wrap justify-center gap-2", stepNavigationClassName), children: steps?.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(
19014
- "button",
19047
+ stepsSlot ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: stepNavigationClassName, children: stepsSlot }) : /* @__PURE__ */ jsxRuntime.jsx(
19048
+ "div",
19015
19049
  {
19016
- onClick: () => goToStep(index),
19017
19050
  className: cn(
19018
- "flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition-all",
19019
- activeStep === index ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80",
19020
- step.className
19051
+ "mb-8 flex flex-wrap justify-center gap-2",
19052
+ stepNavigationClassName
19053
+ ),
19054
+ children: steps?.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(
19055
+ "button",
19056
+ {
19057
+ onClick: () => goToStep(index),
19058
+ className: cn(
19059
+ "flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition-all",
19060
+ activeStep === index ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80",
19061
+ step.className
19062
+ ),
19063
+ children: [
19064
+ /* @__PURE__ */ jsxRuntime.jsx(
19065
+ "span",
19066
+ {
19067
+ className: cn(
19068
+ "flex h-6 w-6 items-center justify-center rounded-full text-xs",
19069
+ activeStep === index ? "bg-primary-foreground text-primary" : "bg-background"
19070
+ ),
19071
+ children: step.step
19072
+ }
19073
+ ),
19074
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: typeof step.title === "string" ? step.title.split(":")[0] : step.title })
19075
+ ]
19076
+ },
19077
+ step.id
19078
+ ))
19079
+ }
19080
+ ),
19081
+ /* @__PURE__ */ jsxRuntime.jsx(
19082
+ "div",
19083
+ {
19084
+ className: cn(
19085
+ "mx-auto mb-12 h-1 max-w-2xl overflow-hidden rounded-full bg-muted",
19086
+ progressClassName
19087
+ ),
19088
+ children: /* @__PURE__ */ jsxRuntime.jsx(
19089
+ framerMotion.motion.div,
19090
+ {
19091
+ className: "h-full bg-primary",
19092
+ initial: { width: 0 },
19093
+ animate: {
19094
+ width: `${(activeStep + 1) / (steps?.length ?? 1) * 100}%`
19095
+ },
19096
+ transition: { duration: 0.3 }
19097
+ }
19098
+ )
19099
+ }
19100
+ ),
19101
+ /* @__PURE__ */ jsxRuntime.jsxs(
19102
+ "div",
19103
+ {
19104
+ className: cn(
19105
+ "grid gap-8 lg:grid-cols-2 lg:gap-12",
19106
+ contentClassName
19021
19107
  ),
19022
19108
  children: [
19023
19109
  /* @__PURE__ */ jsxRuntime.jsx(
19024
- "span",
19110
+ "div",
19025
19111
  {
19026
19112
  className: cn(
19027
- "flex h-6 w-6 items-center justify-center rounded-full text-xs",
19028
- activeStep === index ? "bg-primary-foreground text-primary" : "bg-background"
19113
+ "relative aspect-video overflow-hidden rounded-xl bg-muted",
19114
+ imageClassName
19029
19115
  ),
19030
- children: step.step
19116
+ children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
19117
+ framerMotion.motion.div,
19118
+ {
19119
+ custom: direction,
19120
+ variants: slideVariants2,
19121
+ initial: "enter",
19122
+ animate: "center",
19123
+ exit: "exit",
19124
+ transition: { duration: 0.3, ease: "easeInOut" },
19125
+ className: cn(
19126
+ "absolute inset-0",
19127
+ steps?.[activeStep]?.imageClassName
19128
+ ),
19129
+ children: /* @__PURE__ */ jsxRuntime.jsx(
19130
+ img.Img,
19131
+ {
19132
+ src: steps?.[activeStep]?.image,
19133
+ alt: typeof steps?.[activeStep]?.title === "string" ? steps[activeStep].title : `Step ${activeStep + 1}`,
19134
+ className: "h-full w-full object-cover",
19135
+ optixFlowConfig
19136
+ }
19137
+ )
19138
+ },
19139
+ activeStep
19140
+ ) })
19031
19141
  }
19032
19142
  ),
19033
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: typeof step.title === "string" ? step.title.split(":")[0] : step.title })
19034
- ]
19035
- },
19036
- step.id
19037
- )) }),
19038
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto mb-12 h-1 max-w-2xl overflow-hidden rounded-full bg-muted", progressClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
19039
- framerMotion.motion.div,
19040
- {
19041
- className: "h-full bg-primary",
19042
- initial: { width: 0 },
19043
- animate: {
19044
- width: `${(activeStep + 1) / (steps?.length ?? 1) * 100}%`
19045
- },
19046
- transition: { duration: 0.3 }
19047
- }
19048
- ) }),
19049
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2 lg:gap-12", contentClassName), children: [
19050
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative aspect-video overflow-hidden rounded-xl bg-muted", imageClassName), children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
19051
- framerMotion.motion.div,
19052
- {
19053
- custom: direction,
19054
- variants: slideVariants2,
19055
- initial: "enter",
19056
- animate: "center",
19057
- exit: "exit",
19058
- transition: { duration: 0.3, ease: "easeInOut" },
19059
- className: cn("absolute inset-0", steps?.[activeStep]?.imageClassName),
19060
- children: /* @__PURE__ */ jsxRuntime.jsx(
19061
- img.Img,
19143
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
19144
+ framerMotion.motion.div,
19062
19145
  {
19063
- src: steps?.[activeStep]?.image,
19064
- alt: typeof steps?.[activeStep]?.title === "string" ? steps[activeStep].title : `Step ${activeStep + 1}`,
19065
- className: "h-full w-full object-cover",
19066
- optixFlowConfig
19067
- }
19068
- )
19069
- },
19070
- activeStep
19071
- ) }) }),
19072
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
19073
- framerMotion.motion.div,
19074
- {
19075
- initial: { opacity: 0, y: 20 },
19076
- animate: { opacity: 1, y: 0 },
19077
- exit: { opacity: 0, y: -20 },
19078
- transition: { duration: 0.3 },
19079
- children: [
19080
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 inline-flex items-center gap-2 rounded-full bg-primary/10 px-3 py-1 text-sm font-medium text-primary", children: [
19081
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check-circle", size: 16 }),
19082
- "Step ",
19083
- steps?.[activeStep]?.step,
19084
- " of ",
19085
- steps?.length ?? 0
19086
- ] }),
19087
- steps?.[activeStep]?.title && (typeof steps[activeStep].title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold md:text-3xl", children: steps[activeStep].title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: steps[activeStep].title })),
19088
- steps?.[activeStep]?.description && (typeof steps[activeStep].description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: steps[activeStep].description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: steps[activeStep].description })),
19089
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-8 flex gap-4", actionsClassName), children: [
19090
- /* @__PURE__ */ jsxRuntime.jsxs(
19091
- Pressable,
19092
- {
19093
- onClick: goToPrev,
19094
- asButton: true,
19095
- variant: "outline",
19096
- disabled: activeStep === 0,
19097
- className: "disabled:opacity-50",
19098
- children: [
19099
- /* @__PURE__ */ jsxRuntime.jsx(
19100
- DynamicIcon,
19101
- {
19102
- name: "lucide/arrow-left",
19103
- size: 16,
19104
- className: "mr-2"
19105
- }
19106
- ),
19107
- "Previous"
19108
- ]
19109
- }
19110
- ),
19111
- activeStep < (steps?.length ?? 0) - 1 ? /* @__PURE__ */ jsxRuntime.jsxs(Pressable, { onClick: goToNext, asButton: true, children: [
19112
- "Next",
19113
- /* @__PURE__ */ jsxRuntime.jsx(
19114
- DynamicIcon,
19146
+ initial: { opacity: 0, y: 20 },
19147
+ animate: { opacity: 1, y: 0 },
19148
+ exit: { opacity: 0, y: -20 },
19149
+ transition: { duration: 0.3 },
19150
+ children: [
19151
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 inline-flex items-center gap-2 rounded-full bg-primary/10 px-3 py-1 text-sm font-medium text-primary", children: [
19152
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check-circle", size: 16 }),
19153
+ "Step ",
19154
+ steps?.[activeStep]?.step,
19155
+ " of ",
19156
+ steps?.length ?? 0
19157
+ ] }),
19158
+ steps?.[activeStep]?.title && (typeof steps[activeStep].title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold md:text-3xl", children: steps[activeStep].title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: steps[activeStep].title })),
19159
+ steps?.[activeStep]?.description && (typeof steps[activeStep].description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: steps[activeStep].description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: steps[activeStep].description })),
19160
+ /* @__PURE__ */ jsxRuntime.jsxs(
19161
+ "div",
19115
19162
  {
19116
- name: "lucide/arrow-right",
19117
- size: 16,
19118
- className: "ml-2"
19163
+ className: cn("mt-8 flex gap-3 flex-wrap", actionsClassName),
19164
+ children: [
19165
+ /* @__PURE__ */ jsxRuntime.jsxs(
19166
+ Pressable,
19167
+ {
19168
+ onClick: goToPrev,
19169
+ asButton: true,
19170
+ variant: "outline",
19171
+ disabled: activeStep === 0,
19172
+ className: "disabled:opacity-50",
19173
+ children: [
19174
+ /* @__PURE__ */ jsxRuntime.jsx(
19175
+ DynamicIcon,
19176
+ {
19177
+ name: "lucide/arrow-left",
19178
+ size: 16,
19179
+ className: "mr-2"
19180
+ }
19181
+ ),
19182
+ "Previous"
19183
+ ]
19184
+ }
19185
+ ),
19186
+ activeStep < (steps?.length ?? 0) - 1 ? /* @__PURE__ */ jsxRuntime.jsxs(Pressable, { onClick: goToNext, asButton: true, children: [
19187
+ "Next",
19188
+ /* @__PURE__ */ jsxRuntime.jsx(
19189
+ DynamicIcon,
19190
+ {
19191
+ name: "lucide/arrow-right",
19192
+ size: 16,
19193
+ className: "ml-2"
19194
+ }
19195
+ )
19196
+ ] }) : (actionsSlot || actions && actions.length > 0) && renderActions()
19197
+ ]
19119
19198
  }
19120
19199
  )
19121
- ] }) : (actionsSlot || actions && actions.length > 0) && renderActions()
19122
- ] })
19123
- ]
19124
- },
19125
- activeStep
19126
- ) }) })
19127
- ] })
19200
+ ]
19201
+ },
19202
+ activeStep
19203
+ ) }) })
19204
+ ]
19205
+ }
19206
+ )
19128
19207
  ] })
19129
19208
  }
19130
19209
  );
@@ -19514,6 +19593,8 @@ function SliderWrapper({ children, value, className }) {
19514
19593
  ) });
19515
19594
  }
19516
19595
  function CarouselProgressSlider({
19596
+ heading,
19597
+ subheading,
19517
19598
  slides,
19518
19599
  slidesSlot,
19519
19600
  duration = 5e3,
@@ -19527,8 +19608,8 @@ function CarouselProgressSlider({
19527
19608
  buttonClassName,
19528
19609
  progressBarClassName,
19529
19610
  optixFlowConfig,
19530
- background = "white",
19531
- spacing = "xl",
19611
+ background,
19612
+ spacing,
19532
19613
  pattern,
19533
19614
  patternOpacity
19534
19615
  }) {
@@ -19594,12 +19675,14 @@ function CarouselProgressSlider({
19594
19675
  children: /* @__PURE__ */ jsxRuntime.jsx(
19595
19676
  Section,
19596
19677
  {
19678
+ title: heading,
19679
+ subtitle: subheading,
19597
19680
  background,
19598
19681
  spacing,
19599
19682
  className: cn(className),
19600
19683
  pattern,
19601
19684
  patternOpacity,
19602
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto px-4", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", contentClassName), children: [
19685
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", contentClassName), children: [
19603
19686
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative min-h-[300px]", imageClassName), children: slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsxRuntime.jsx(
19604
19687
  SliderWrapper,
19605
19688
  {
@@ -19610,26 +19693,44 @@ function CarouselProgressSlider({
19610
19693
  {
19611
19694
  src: slide.image,
19612
19695
  alt: typeof slide.title === "string" ? slide.title : `Slide ${slide.id}`,
19613
- className: cn("h-full w-full object-cover", slide.imageClassName),
19696
+ className: cn(
19697
+ "h-full w-full object-cover",
19698
+ slide.imageClassName
19699
+ ),
19614
19700
  optixFlowConfig
19615
19701
  }
19616
19702
  ) })
19617
19703
  },
19618
19704
  slide.id
19619
19705
  )) }),
19620
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col justify-center gap-4", navigationClassName), children: slides?.map((slide) => /* @__PURE__ */ jsxRuntime.jsxs(
19621
- SliderBtn,
19706
+ /* @__PURE__ */ jsxRuntime.jsx(
19707
+ "div",
19622
19708
  {
19623
- value: slide.id,
19624
- className: cn("rounded-lg border p-4 text-left transition-colors hover:bg-muted", buttonClassName),
19625
- progressBarClass: cn("bottom-0 h-1 bg-primary", progressBarClassName),
19626
- children: [
19627
- slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold", children: slide.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: slide.title })),
19628
- slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: slide.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1", children: slide.description }))
19629
- ]
19630
- },
19631
- slide.id
19632
- )) })
19709
+ className: cn(
19710
+ "flex flex-col justify-center gap-4",
19711
+ navigationClassName
19712
+ ),
19713
+ children: slides?.map((slide) => /* @__PURE__ */ jsxRuntime.jsxs(
19714
+ SliderBtn,
19715
+ {
19716
+ value: slide.id,
19717
+ className: cn(
19718
+ "rounded-lg border p-4 text-left transition-colors hover:bg-muted",
19719
+ buttonClassName
19720
+ ),
19721
+ progressBarClass: cn(
19722
+ "bottom-0 h-1 bg-primary",
19723
+ progressBarClassName
19724
+ ),
19725
+ children: [
19726
+ slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold", children: slide.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: slide.title })),
19727
+ slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: slide.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1", children: slide.description }))
19728
+ ]
19729
+ },
19730
+ slide.id
19731
+ ))
19732
+ }
19733
+ )
19633
19734
  ] }) })
19634
19735
  }
19635
19736
  )