@opensite/ui 0.7.2 → 0.7.3

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
@@ -17279,13 +17279,23 @@ function ContactHelpCenter({
17279
17279
  }
17280
17280
  );
17281
17281
  }
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
+ };
17282
17292
  function CarouselAnimatedSections({
17283
17293
  sections,
17284
17294
  sectionsSlot,
17285
17295
  actionsSlot,
17286
17296
  actions,
17287
17297
  className,
17288
- containerClassName = "h-full",
17298
+ containerClassName = "h-full flex flex-col justify-center",
17289
17299
  contentClassName,
17290
17300
  subtitleClassName,
17291
17301
  titleClassName,
@@ -17294,7 +17304,7 @@ function CarouselAnimatedSections({
17294
17304
  navigationClassName,
17295
17305
  arrowsClassName,
17296
17306
  counterClassName,
17297
- overlayClassName,
17307
+ slideMediaBrightness = "50",
17298
17308
  optixFlowConfig,
17299
17309
  background = "dark",
17300
17310
  spacing = "py-0",
@@ -17349,7 +17359,7 @@ function CarouselAnimatedSections({
17349
17359
  })
17350
17360
  };
17351
17361
  const currentSection = sections?.[currentIndex];
17352
- const renderActions = () => {
17362
+ const actionElements = React52__namespace.useMemo(() => {
17353
17363
  if (actionsSlot) return actionsSlot;
17354
17364
  if (actions && actions.length > 0) {
17355
17365
  return actions.map((action, index) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -17359,11 +17369,8 @@ function CarouselAnimatedSections({
17359
17369
  onClick: action.onClick,
17360
17370
  asButton: true,
17361
17371
  variant: action.variant,
17362
- size: action.size || "lg",
17363
- className: cn(
17364
- "bg-white text-black hover:bg-white/90",
17365
- action.className
17366
- ),
17372
+ size: action.size,
17373
+ className: cn(action.className),
17367
17374
  children: [
17368
17375
  action.label,
17369
17376
  action.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2", children: action.icon }),
@@ -17374,7 +17381,7 @@ function CarouselAnimatedSections({
17374
17381
  ));
17375
17382
  }
17376
17383
  return null;
17377
- };
17384
+ }, [actionsSlot, actions]);
17378
17385
  return /* @__PURE__ */ jsxRuntime.jsxs(
17379
17386
  Section,
17380
17387
  {
@@ -17386,7 +17393,7 @@ function CarouselAnimatedSections({
17386
17393
  containerMaxWidth,
17387
17394
  containerClassName,
17388
17395
  children: [
17389
- sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
17396
+ sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
17390
17397
  framerMotion.motion.div,
17391
17398
  {
17392
17399
  custom: direction,
@@ -17397,26 +17404,19 @@ function CarouselAnimatedSections({
17397
17404
  transition: { duration: 0.6, ease: [0.4, 0, 0.2, 1] },
17398
17405
  onAnimationComplete: () => setIsAnimating(false),
17399
17406
  className: cn("absolute inset-0", currentSection?.className),
17400
- children: [
17401
- /* @__PURE__ */ jsxRuntime.jsx(
17402
- img.Img,
17403
- {
17404
- src: currentSection?.image,
17405
- alt: typeof currentSection?.title === "string" ? currentSection?.title : `Section ${currentSection?.id}`,
17406
- className: cn(
17407
- "h-full w-full object-cover",
17408
- currentSection?.imageClassName
17409
- ),
17410
- optixFlowConfig
17411
- }
17412
- ),
17413
- /* @__PURE__ */ jsxRuntime.jsx(
17414
- "div",
17415
- {
17416
- className: cn("absolute inset-0 bg-black/50", overlayClassName)
17417
- }
17418
- )
17419
- ]
17407
+ children: /* @__PURE__ */ jsxRuntime.jsx(
17408
+ img.Img,
17409
+ {
17410
+ src: currentSection?.image,
17411
+ alt: typeof currentSection?.title === "string" ? currentSection?.title : `Section ${currentSection?.id}`,
17412
+ className: cn(
17413
+ "h-full w-full object-cover",
17414
+ BRIGHTNESS_CLASS_MAP[slideMediaBrightness],
17415
+ currentSection?.imageClassName
17416
+ ),
17417
+ optixFlowConfig
17418
+ }
17419
+ )
17420
17420
  },
17421
17421
  currentIndex
17422
17422
  ) }) : null,
@@ -17434,7 +17434,7 @@ function CarouselAnimatedSections({
17434
17434
  animate: { opacity: 1, y: 0 },
17435
17435
  exit: { opacity: 0, y: -40 },
17436
17436
  transition: { duration: 0.4, delay: 0.2 },
17437
- className: "max-w-2xl text-white",
17437
+ className: "max-w-2xl text-white text-shadow",
17438
17438
  children: [
17439
17439
  currentSection?.subtitle && (typeof currentSection?.subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
17440
17440
  "p",
@@ -17466,7 +17466,7 @@ function CarouselAnimatedSections({
17466
17466
  children: currentSection?.description
17467
17467
  }
17468
17468
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", descriptionClassName), children: currentSection?.description })),
17469
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: renderActions() || currentSection?.ctaText && /* @__PURE__ */ jsxRuntime.jsxs(
17469
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionElements || currentSection?.ctaText && /* @__PURE__ */ jsxRuntime.jsxs(
17470
17470
  Pressable,
17471
17471
  {
17472
17472
  href: currentSection?.ctaHref,
@@ -18177,6 +18177,11 @@ function CarouselNext({
18177
18177
  }
18178
18178
  );
18179
18179
  }
18180
+ var SLIDE_LAYOUT_ASPECT_MAP = {
18181
+ horizontal: "aspect-video",
18182
+ vertical: "aspect-[9/16]",
18183
+ square: "aspect-square"
18184
+ };
18180
18185
  function CarouselFeatureBadge({
18181
18186
  badge,
18182
18187
  heading,
@@ -18192,23 +18197,34 @@ function CarouselFeatureBadge({
18192
18197
  carouselClassName,
18193
18198
  carouselItemClassName,
18194
18199
  optixFlowConfig,
18195
- background = "white",
18196
- spacing = "xl",
18200
+ background,
18201
+ spacing,
18197
18202
  pattern,
18198
- patternOpacity
18203
+ patternOpacity,
18204
+ slideLayoutVariant = "square",
18205
+ containerMaxWidth = "2xl"
18199
18206
  }) {
18200
18207
  const renderCarouselItems = () => {
18201
18208
  if (itemsSlot) return itemsSlot;
18202
18209
  if (!items || items.length === 0) return null;
18203
- return items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(CarouselItem, { className: carouselItemClassName, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex aspect-video items-center justify-center overflow-hidden rounded-md bg-muted p-6", children: /* @__PURE__ */ jsxRuntime.jsx(
18204
- img.Img,
18210
+ return items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(CarouselItem, { className: carouselItemClassName, children: /* @__PURE__ */ jsxRuntime.jsx(
18211
+ "div",
18205
18212
  {
18206
- src: item.src,
18207
- alt: item.alt,
18208
- className: cn("h-full w-full object-cover", item.className),
18209
- optixFlowConfig
18213
+ className: cn(
18214
+ "flex items-center justify-center overflow-hidden rounded-2xl",
18215
+ SLIDE_LAYOUT_ASPECT_MAP[slideLayoutVariant]
18216
+ ),
18217
+ children: /* @__PURE__ */ jsxRuntime.jsx(
18218
+ img.Img,
18219
+ {
18220
+ src: item.src,
18221
+ alt: item.alt,
18222
+ className: cn("h-full w-full object-cover", item.className),
18223
+ optixFlowConfig
18224
+ }
18225
+ )
18210
18226
  }
18211
- ) }) }, index));
18227
+ ) }, index));
18212
18228
  };
18213
18229
  return /* @__PURE__ */ jsxRuntime.jsx(
18214
18230
  Section,
@@ -18218,14 +18234,39 @@ function CarouselFeatureBadge({
18218
18234
  className: cn(className),
18219
18235
  pattern,
18220
18236
  patternOpacity,
18221
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-end justify-end gap-10 lg:grid-cols-2", children: [
18222
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-start gap-4", contentClassName), children: [
18223
- badge && /* @__PURE__ */ jsxRuntime.jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: badge }) : badge }),
18224
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
18225
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-left text-xl font-normal tracking-tighter md:text-3xl lg:max-w-xl lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
18226
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-xl text-left text-lg leading-relaxed tracking-tight text-muted-foreground lg:max-w-sm", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
18227
- ] })
18228
- ] }),
18237
+ containerMaxWidth,
18238
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-end justify-end gap-6 md:gap-20 lg:grid-cols-2", children: [
18239
+ /* @__PURE__ */ jsxRuntime.jsxs(
18240
+ "div",
18241
+ {
18242
+ className: cn("flex flex-col items-start gap-4", contentClassName),
18243
+ children: [
18244
+ badge && /* @__PURE__ */ jsxRuntime.jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: badge }) : badge }),
18245
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
18246
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18247
+ "h2",
18248
+ {
18249
+ className: cn(
18250
+ "text-left text-xl font-semibold md:text-3xl lg:max-w-xl lg:text-4xl",
18251
+ headingClassName
18252
+ ),
18253
+ children: heading
18254
+ }
18255
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
18256
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18257
+ "p",
18258
+ {
18259
+ className: cn(
18260
+ "max-w-xl text-left text-lg leading-snug lg:max-w-sm",
18261
+ descriptionClassName
18262
+ ),
18263
+ children: description
18264
+ }
18265
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
18266
+ ] })
18267
+ ]
18268
+ }
18269
+ ),
18229
18270
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full max-w-full px-6", carouselClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(Carousel, { children: [
18230
18271
  /* @__PURE__ */ jsxRuntime.jsx(CarouselContent, { children: renderCarouselItems() }),
18231
18272
  /* @__PURE__ */ jsxRuntime.jsx(CarouselPrevious, {}),
@@ -18247,10 +18288,11 @@ function CarouselFullscreenScrollFx({
18247
18288
  scrollIndicatorClassName,
18248
18289
  counterClassName,
18249
18290
  optixFlowConfig,
18250
- background = "white",
18251
- spacing = "xl",
18252
- pattern,
18253
- patternOpacity
18291
+ background = "dark",
18292
+ spacing = "py-0",
18293
+ containerMaxWidth = "full",
18294
+ pattern = "diagonalCrossBasic",
18295
+ patternOpacity = 0.033
18254
18296
  }) {
18255
18297
  const containerRef = React52__namespace.useRef(null);
18256
18298
  const [activeIndex, setActiveIndex] = React52__namespace.useState(0);
@@ -18286,27 +18328,40 @@ function CarouselFullscreenScrollFx({
18286
18328
  className: cn(className),
18287
18329
  pattern,
18288
18330
  patternOpacity,
18331
+ containerMaxWidth,
18289
18332
  children: [
18290
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("fixed right-6 top-1/2 z-50 hidden -translate-y-1/2 flex-col gap-3 lg:flex", navigationClassName), children: slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
18291
- "button",
18333
+ /* @__PURE__ */ jsxRuntime.jsx(
18334
+ "div",
18292
18335
  {
18293
- onClick: () => {
18294
- const element = document.getElementById(`fullscreen-${slide.id}`);
18295
- element?.scrollIntoView({ behavior: "smooth" });
18296
- },
18297
18336
  className: cn(
18298
- "h-3 w-3 rounded-full border-2 transition-all",
18299
- activeIndex === index ? "scale-125 border-white bg-white" : "border-white/50 bg-transparent hover:border-white"
18337
+ "fixed right-6 top-1/2 z-50 hidden -translate-y-1/2 flex-col gap-3 lg:flex",
18338
+ navigationClassName
18300
18339
  ),
18301
- "aria-label": `Go to ${typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`}`
18302
- },
18303
- slide.id
18304
- )) }),
18340
+ children: slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
18341
+ "button",
18342
+ {
18343
+ onClick: () => {
18344
+ const element = document.getElementById(`fullscreen-${slide.id}`);
18345
+ element?.scrollIntoView({ behavior: "smooth" });
18346
+ },
18347
+ className: cn(
18348
+ "h-3 w-3 rounded-full border-2 transition-all",
18349
+ activeIndex === index ? "scale-125 border-white bg-white" : "border-white/50 bg-transparent hover:border-white"
18350
+ ),
18351
+ "aria-label": `Go to ${typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`}`
18352
+ },
18353
+ slide.id
18354
+ ))
18355
+ }
18356
+ ),
18305
18357
  slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
18306
18358
  "div",
18307
18359
  {
18308
18360
  id: `fullscreen-${slide.id}`,
18309
- className: cn("relative flex h-screen w-full items-center justify-center overflow-hidden", slide.className),
18361
+ className: cn(
18362
+ "relative flex h-screen w-full items-center justify-center overflow-hidden",
18363
+ slide.className
18364
+ ),
18310
18365
  children: [
18311
18366
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0", children: [
18312
18367
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -18314,7 +18369,10 @@ function CarouselFullscreenScrollFx({
18314
18369
  {
18315
18370
  src: slide.image,
18316
18371
  alt: typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`,
18317
- className: cn("h-full w-full object-cover", slide.imageClassName),
18372
+ className: cn(
18373
+ "h-full w-full object-cover",
18374
+ slide.imageClassName
18375
+ ),
18318
18376
  optixFlowConfig
18319
18377
  }
18320
18378
  ),
@@ -18328,21 +18386,75 @@ function CarouselFullscreenScrollFx({
18328
18386
  }
18329
18387
  )
18330
18388
  ] }),
18331
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative z-10 mx-auto max-w-4xl px-6 text-center text-white", contentClassName), children: [
18332
- slide.subtitle && (typeof slide.subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-sm font-medium uppercase tracking-widest text-white/70", subtitleClassName), children: slide.subtitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subtitleClassName, children: slide.subtitle })),
18333
- slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-6 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: slide.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: slide.title })),
18334
- slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-2xl text-lg text-white/80 md:text-xl", descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: slide.description })),
18335
- index < (slides?.length ?? 0) - 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute bottom-8 left-1/2 -translate-x-1/2", scrollIndicatorClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18336
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs uppercase tracking-widest text-white/50", children: "Scroll" }),
18337
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-px animate-pulse bg-gradient-to-b from-white/50 to-transparent" })
18338
- ] }) })
18339
- ] }),
18340
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("absolute bottom-8 right-8 text-sm text-white/50", counterClassName), children: [
18341
- String(index + 1).padStart(2, "0"),
18342
- " /",
18343
- " ",
18344
- String(slides?.length ?? 0).padStart(2, "0")
18345
- ] })
18389
+ /* @__PURE__ */ jsxRuntime.jsxs(
18390
+ "div",
18391
+ {
18392
+ className: cn(
18393
+ "relative z-10 mx-auto max-w-4xl px-6 text-center text-white",
18394
+ contentClassName
18395
+ ),
18396
+ children: [
18397
+ slide.subtitle && (typeof slide.subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18398
+ "p",
18399
+ {
18400
+ className: cn(
18401
+ "mb-4 text-sm font-medium uppercase tracking-widest text-white/70",
18402
+ subtitleClassName
18403
+ ),
18404
+ children: slide.subtitle
18405
+ }
18406
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subtitleClassName, children: slide.subtitle })),
18407
+ slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18408
+ "h2",
18409
+ {
18410
+ className: cn(
18411
+ "mb-6 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
18412
+ titleClassName
18413
+ ),
18414
+ children: slide.title
18415
+ }
18416
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: slide.title })),
18417
+ slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18418
+ "p",
18419
+ {
18420
+ className: cn(
18421
+ "mx-auto max-w-2xl text-lg text-white/80 md:text-xl",
18422
+ descriptionClassName
18423
+ ),
18424
+ children: slide.description
18425
+ }
18426
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: slide.description })),
18427
+ index < (slides?.length ?? 0) - 1 && /* @__PURE__ */ jsxRuntime.jsx(
18428
+ "div",
18429
+ {
18430
+ className: cn(
18431
+ "absolute bottom-8 left-1/2 -translate-x-1/2",
18432
+ scrollIndicatorClassName
18433
+ ),
18434
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18435
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs uppercase tracking-widest text-white/50", children: "Scroll" }),
18436
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-px animate-pulse bg-gradient-to-b from-white/50 to-transparent" })
18437
+ ] })
18438
+ }
18439
+ )
18440
+ ]
18441
+ }
18442
+ ),
18443
+ /* @__PURE__ */ jsxRuntime.jsxs(
18444
+ "div",
18445
+ {
18446
+ className: cn(
18447
+ "absolute bottom-8 right-8 text-sm text-white/50",
18448
+ counterClassName
18449
+ ),
18450
+ children: [
18451
+ String(index + 1).padStart(2, "0"),
18452
+ " /",
18453
+ " ",
18454
+ String(slides?.length ?? 0).padStart(2, "0")
18455
+ ]
18456
+ }
18457
+ )
18346
18458
  ]
18347
18459
  },
18348
18460
  slide.id
@@ -76828,7 +76940,7 @@ function ListSearchableGrid({
76828
76940
  }
76829
76941
  );
76830
76942
  }
76831
- var { useMemo: useMemo439 } = React52__namespace;
76943
+ var { useMemo: useMemo440 } = React52__namespace;
76832
76944
  function OfferModalNewsletterDiscount({
76833
76945
  title,
76834
76946
  emailPlaceholder,
@@ -76895,7 +77007,7 @@ function OfferModalNewsletterDiscount({
76895
77007
  });
76896
77008
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
76897
77009
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
76898
- const renderCloseButton = useMemo439(() => {
77010
+ const renderCloseButton = useMemo440(() => {
76899
77011
  if (closeButtonSlot) return closeButtonSlot;
76900
77012
  if (!closeButtonText) return null;
76901
77013
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsxRuntime.jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -76909,12 +77021,12 @@ function OfferModalNewsletterDiscount({
76909
77021
  }
76910
77022
  ) }) });
76911
77023
  }, [closeButtonSlot, closeButtonText, closeClassName]);
76912
- const renderHeader = useMemo439(() => {
77024
+ const renderHeader = useMemo440(() => {
76913
77025
  if (headerSlot) return headerSlot;
76914
77026
  if (!title) return null;
76915
77027
  return /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { className: headerClassName, children: typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) });
76916
77028
  }, [headerSlot, title, headerClassName, titleClassName]);
76917
- const renderForm = useMemo439(() => {
77029
+ const renderForm = useMemo440(() => {
76918
77030
  if (formSlot) return formSlot;
76919
77031
  return /* @__PURE__ */ jsxRuntime.jsxs(
76920
77032
  forms.Form,
@@ -76976,7 +77088,7 @@ function OfferModalNewsletterDiscount({
76976
77088
  }
76977
77089
  ) });
76978
77090
  }
76979
- var { useMemo: useMemo440 } = React52__namespace;
77091
+ var { useMemo: useMemo441 } = React52__namespace;
76980
77092
  function OfferModalMembershipImage({
76981
77093
  overline,
76982
77094
  title,
@@ -77052,7 +77164,7 @@ function OfferModalMembershipImage({
77052
77164
  });
77053
77165
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
77054
77166
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
77055
- const renderImage = useMemo440(() => {
77167
+ const renderImage = useMemo441(() => {
77056
77168
  if (imageSlot) return imageSlot;
77057
77169
  if (!image) return null;
77058
77170
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-h-[290px] h-full overflow-hidden max-lg:hidden", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -77065,7 +77177,7 @@ function OfferModalMembershipImage({
77065
77177
  }
77066
77178
  ) });
77067
77179
  }, [imageSlot, image, imageWrapperClassName, imageClassName, optixFlowConfig]);
77068
- const renderCloseButton = useMemo440(() => {
77180
+ const renderCloseButton = useMemo441(() => {
77069
77181
  if (closeButtonSlot) return closeButtonSlot;
77070
77182
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsxRuntime.jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
77071
77183
  Pressable,
@@ -77081,7 +77193,7 @@ function OfferModalMembershipImage({
77081
77193
  }
77082
77194
  ) }) });
77083
77195
  }, [closeButtonSlot, closeClassName]);
77084
- const renderForm = useMemo440(() => {
77196
+ const renderForm = useMemo441(() => {
77085
77197
  if (formSlot) return formSlot;
77086
77198
  return /* @__PURE__ */ jsxRuntime.jsxs(
77087
77199
  forms.Form,
@@ -77144,7 +77256,7 @@ function OfferModalMembershipImage({
77144
77256
  }
77145
77257
  );
77146
77258
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
77147
- const renderFooter = useMemo440(() => {
77259
+ const renderFooter = useMemo441(() => {
77148
77260
  if (footerSlot) return footerSlot;
77149
77261
  if (!description) return null;
77150
77262
  return /* @__PURE__ */ jsxRuntime.jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { className: cn("text-muted-foreground text-center text-xs leading-relaxed", descriptionClassName), children: description }) });
@@ -77172,7 +77284,7 @@ function OfferModalMembershipImage({
77172
77284
  }
77173
77285
  ) });
77174
77286
  }
77175
- var { useMemo: useMemo441 } = React52__namespace;
77287
+ var { useMemo: useMemo442 } = React52__namespace;
77176
77288
  function OfferModalSheetNewsletter({
77177
77289
  logo,
77178
77290
  logoSlot,
@@ -77254,7 +77366,7 @@ function OfferModalSheetNewsletter({
77254
77366
  });
77255
77367
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
77256
77368
  const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
77257
- const renderLogo = useMemo441(() => {
77369
+ const renderLogo = useMemo442(() => {
77258
77370
  if (logoSlot) return logoSlot;
77259
77371
  if (!logo) return null;
77260
77372
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
@@ -77268,7 +77380,7 @@ function OfferModalSheetNewsletter({
77268
77380
  }
77269
77381
  );
77270
77382
  }, [logoSlot, logo, logoClassName, optixFlowConfig]);
77271
- const renderHeader = useMemo441(() => {
77383
+ const renderHeader = useMemo442(() => {
77272
77384
  if (headerSlot) return headerSlot;
77273
77385
  return /* @__PURE__ */ jsxRuntime.jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
77274
77386
  renderLogo,
@@ -77278,7 +77390,7 @@ function OfferModalSheetNewsletter({
77278
77390
  ] })
77279
77391
  ] });
77280
77392
  }, [headerSlot, renderLogo, headerClassName, title, titleClassName, description, descriptionClassName]);
77281
- const renderForm = useMemo441(() => {
77393
+ const renderForm = useMemo442(() => {
77282
77394
  if (formSlot) return formSlot;
77283
77395
  return /* @__PURE__ */ jsxRuntime.jsx(
77284
77396
  forms.Form,
@@ -77326,7 +77438,7 @@ function OfferModalSheetNewsletter({
77326
77438
  }
77327
77439
  );
77328
77440
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
77329
- const renderLegal = useMemo441(() => {
77441
+ const renderLegal = useMemo442(() => {
77330
77442
  if (legalSlot) return legalSlot;
77331
77443
  if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
77332
77444
  return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
@@ -77340,7 +77452,7 @@ function OfferModalSheetNewsletter({
77340
77452
  "."
77341
77453
  ] });
77342
77454
  }, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
77343
- const renderImage = useMemo441(() => {
77455
+ const renderImage = useMemo442(() => {
77344
77456
  if (imageSlot) return imageSlot;
77345
77457
  if (!image) return null;
77346
77458
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(