@opensite/ui 0.7.2 → 0.7.4

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, {}),
@@ -18239,6 +18280,7 @@ function CarouselFullscreenScrollFx({
18239
18280
  slides,
18240
18281
  slidesSlot,
18241
18282
  className,
18283
+ containerClassName = "h-full flex flex-col justify-center",
18242
18284
  navigationClassName,
18243
18285
  contentClassName,
18244
18286
  subtitleClassName,
@@ -18247,10 +18289,11 @@ function CarouselFullscreenScrollFx({
18247
18289
  scrollIndicatorClassName,
18248
18290
  counterClassName,
18249
18291
  optixFlowConfig,
18250
- background = "white",
18251
- spacing = "xl",
18252
- pattern,
18253
- patternOpacity
18292
+ background = "dark",
18293
+ spacing = "py-0",
18294
+ containerMaxWidth = "full",
18295
+ pattern = "diagonalCrossBasic",
18296
+ patternOpacity = 0.033
18254
18297
  }) {
18255
18298
  const containerRef = React52__namespace.useRef(null);
18256
18299
  const [activeIndex, setActiveIndex] = React52__namespace.useState(0);
@@ -18286,27 +18329,41 @@ function CarouselFullscreenScrollFx({
18286
18329
  className: cn(className),
18287
18330
  pattern,
18288
18331
  patternOpacity,
18332
+ containerMaxWidth,
18333
+ containerClassName,
18289
18334
  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",
18335
+ /* @__PURE__ */ jsxRuntime.jsx(
18336
+ "div",
18292
18337
  {
18293
- onClick: () => {
18294
- const element = document.getElementById(`fullscreen-${slide.id}`);
18295
- element?.scrollIntoView({ behavior: "smooth" });
18296
- },
18297
18338
  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"
18339
+ "fixed right-6 top-1/2 z-50 hidden -translate-y-1/2 flex-col gap-3 lg:flex",
18340
+ navigationClassName
18300
18341
  ),
18301
- "aria-label": `Go to ${typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`}`
18302
- },
18303
- slide.id
18304
- )) }),
18342
+ children: slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
18343
+ "button",
18344
+ {
18345
+ onClick: () => {
18346
+ const element = document.getElementById(`fullscreen-${slide.id}`);
18347
+ element?.scrollIntoView({ behavior: "smooth" });
18348
+ },
18349
+ className: cn(
18350
+ "h-3 w-3 rounded-full border-2 transition-all",
18351
+ activeIndex === index ? "scale-125 border-white bg-white" : "border-white/50 bg-transparent hover:border-white"
18352
+ ),
18353
+ "aria-label": `Go to ${typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`}`
18354
+ },
18355
+ slide.id
18356
+ ))
18357
+ }
18358
+ ),
18305
18359
  slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
18306
18360
  "div",
18307
18361
  {
18308
18362
  id: `fullscreen-${slide.id}`,
18309
- className: cn("relative flex h-screen w-full items-center justify-center overflow-hidden", slide.className),
18363
+ className: cn(
18364
+ "relative flex h-screen w-full items-center justify-center overflow-hidden",
18365
+ slide.className
18366
+ ),
18310
18367
  children: [
18311
18368
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0", children: [
18312
18369
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -18314,7 +18371,10 @@ function CarouselFullscreenScrollFx({
18314
18371
  {
18315
18372
  src: slide.image,
18316
18373
  alt: typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`,
18317
- className: cn("h-full w-full object-cover", slide.imageClassName),
18374
+ className: cn(
18375
+ "h-full w-full object-cover",
18376
+ slide.imageClassName
18377
+ ),
18318
18378
  optixFlowConfig
18319
18379
  }
18320
18380
  ),
@@ -18328,21 +18388,75 @@ function CarouselFullscreenScrollFx({
18328
18388
  }
18329
18389
  )
18330
18390
  ] }),
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
- ] })
18391
+ /* @__PURE__ */ jsxRuntime.jsxs(
18392
+ "div",
18393
+ {
18394
+ className: cn(
18395
+ "relative z-10 mx-auto max-w-4xl md:max-w-2xl px-6 text-center text-white text-shadow",
18396
+ contentClassName
18397
+ ),
18398
+ children: [
18399
+ slide.subtitle && (typeof slide.subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18400
+ "p",
18401
+ {
18402
+ className: cn(
18403
+ "mb-4 text-sm font-medium uppercase tracking-widest text-white/70",
18404
+ subtitleClassName
18405
+ ),
18406
+ children: slide.subtitle
18407
+ }
18408
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subtitleClassName, children: slide.subtitle })),
18409
+ slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18410
+ "h2",
18411
+ {
18412
+ className: cn(
18413
+ "mb-6 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
18414
+ titleClassName
18415
+ ),
18416
+ children: slide.title
18417
+ }
18418
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: slide.title })),
18419
+ slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
18420
+ "p",
18421
+ {
18422
+ className: cn(
18423
+ "mx-auto text-lg text-white/80 md:text-xl text-balance",
18424
+ descriptionClassName
18425
+ ),
18426
+ children: slide.description
18427
+ }
18428
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: slide.description }))
18429
+ ]
18430
+ }
18431
+ ),
18432
+ index < (slides?.length ?? 0) - 1 && /* @__PURE__ */ jsxRuntime.jsx(
18433
+ "div",
18434
+ {
18435
+ className: cn(
18436
+ "absolute bottom-8 left-1/2 -translate-x-1/2",
18437
+ scrollIndicatorClassName
18438
+ ),
18439
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18440
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs uppercase tracking-widest text-white/50", children: "Scroll" }),
18441
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-px animate-pulse bg-linear-to-b from-white/50 to-transparent" })
18442
+ ] })
18443
+ }
18444
+ ),
18445
+ /* @__PURE__ */ jsxRuntime.jsxs(
18446
+ "div",
18447
+ {
18448
+ className: cn(
18449
+ "absolute bottom-8 right-8 text-sm text-white/50",
18450
+ counterClassName
18451
+ ),
18452
+ children: [
18453
+ String(index + 1).padStart(2, "0"),
18454
+ " /",
18455
+ " ",
18456
+ String(slides?.length ?? 0).padStart(2, "0")
18457
+ ]
18458
+ }
18459
+ )
18346
18460
  ]
18347
18461
  },
18348
18462
  slide.id
@@ -76828,7 +76942,7 @@ function ListSearchableGrid({
76828
76942
  }
76829
76943
  );
76830
76944
  }
76831
- var { useMemo: useMemo439 } = React52__namespace;
76945
+ var { useMemo: useMemo440 } = React52__namespace;
76832
76946
  function OfferModalNewsletterDiscount({
76833
76947
  title,
76834
76948
  emailPlaceholder,
@@ -76895,7 +77009,7 @@ function OfferModalNewsletterDiscount({
76895
77009
  });
76896
77010
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
76897
77011
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
76898
- const renderCloseButton = useMemo439(() => {
77012
+ const renderCloseButton = useMemo440(() => {
76899
77013
  if (closeButtonSlot) return closeButtonSlot;
76900
77014
  if (!closeButtonText) return null;
76901
77015
  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 +77023,12 @@ function OfferModalNewsletterDiscount({
76909
77023
  }
76910
77024
  ) }) });
76911
77025
  }, [closeButtonSlot, closeButtonText, closeClassName]);
76912
- const renderHeader = useMemo439(() => {
77026
+ const renderHeader = useMemo440(() => {
76913
77027
  if (headerSlot) return headerSlot;
76914
77028
  if (!title) return null;
76915
77029
  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
77030
  }, [headerSlot, title, headerClassName, titleClassName]);
76917
- const renderForm = useMemo439(() => {
77031
+ const renderForm = useMemo440(() => {
76918
77032
  if (formSlot) return formSlot;
76919
77033
  return /* @__PURE__ */ jsxRuntime.jsxs(
76920
77034
  forms.Form,
@@ -76976,7 +77090,7 @@ function OfferModalNewsletterDiscount({
76976
77090
  }
76977
77091
  ) });
76978
77092
  }
76979
- var { useMemo: useMemo440 } = React52__namespace;
77093
+ var { useMemo: useMemo441 } = React52__namespace;
76980
77094
  function OfferModalMembershipImage({
76981
77095
  overline,
76982
77096
  title,
@@ -77052,7 +77166,7 @@ function OfferModalMembershipImage({
77052
77166
  });
77053
77167
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
77054
77168
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
77055
- const renderImage = useMemo440(() => {
77169
+ const renderImage = useMemo441(() => {
77056
77170
  if (imageSlot) return imageSlot;
77057
77171
  if (!image) return null;
77058
77172
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-h-[290px] h-full overflow-hidden max-lg:hidden", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -77065,7 +77179,7 @@ function OfferModalMembershipImage({
77065
77179
  }
77066
77180
  ) });
77067
77181
  }, [imageSlot, image, imageWrapperClassName, imageClassName, optixFlowConfig]);
77068
- const renderCloseButton = useMemo440(() => {
77182
+ const renderCloseButton = useMemo441(() => {
77069
77183
  if (closeButtonSlot) return closeButtonSlot;
77070
77184
  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
77185
  Pressable,
@@ -77081,7 +77195,7 @@ function OfferModalMembershipImage({
77081
77195
  }
77082
77196
  ) }) });
77083
77197
  }, [closeButtonSlot, closeClassName]);
77084
- const renderForm = useMemo440(() => {
77198
+ const renderForm = useMemo441(() => {
77085
77199
  if (formSlot) return formSlot;
77086
77200
  return /* @__PURE__ */ jsxRuntime.jsxs(
77087
77201
  forms.Form,
@@ -77144,7 +77258,7 @@ function OfferModalMembershipImage({
77144
77258
  }
77145
77259
  );
77146
77260
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
77147
- const renderFooter = useMemo440(() => {
77261
+ const renderFooter = useMemo441(() => {
77148
77262
  if (footerSlot) return footerSlot;
77149
77263
  if (!description) return null;
77150
77264
  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 +77286,7 @@ function OfferModalMembershipImage({
77172
77286
  }
77173
77287
  ) });
77174
77288
  }
77175
- var { useMemo: useMemo441 } = React52__namespace;
77289
+ var { useMemo: useMemo442 } = React52__namespace;
77176
77290
  function OfferModalSheetNewsletter({
77177
77291
  logo,
77178
77292
  logoSlot,
@@ -77254,7 +77368,7 @@ function OfferModalSheetNewsletter({
77254
77368
  });
77255
77369
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
77256
77370
  const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
77257
- const renderLogo = useMemo441(() => {
77371
+ const renderLogo = useMemo442(() => {
77258
77372
  if (logoSlot) return logoSlot;
77259
77373
  if (!logo) return null;
77260
77374
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
@@ -77268,7 +77382,7 @@ function OfferModalSheetNewsletter({
77268
77382
  }
77269
77383
  );
77270
77384
  }, [logoSlot, logo, logoClassName, optixFlowConfig]);
77271
- const renderHeader = useMemo441(() => {
77385
+ const renderHeader = useMemo442(() => {
77272
77386
  if (headerSlot) return headerSlot;
77273
77387
  return /* @__PURE__ */ jsxRuntime.jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
77274
77388
  renderLogo,
@@ -77278,7 +77392,7 @@ function OfferModalSheetNewsletter({
77278
77392
  ] })
77279
77393
  ] });
77280
77394
  }, [headerSlot, renderLogo, headerClassName, title, titleClassName, description, descriptionClassName]);
77281
- const renderForm = useMemo441(() => {
77395
+ const renderForm = useMemo442(() => {
77282
77396
  if (formSlot) return formSlot;
77283
77397
  return /* @__PURE__ */ jsxRuntime.jsx(
77284
77398
  forms.Form,
@@ -77326,7 +77440,7 @@ function OfferModalSheetNewsletter({
77326
77440
  }
77327
77441
  );
77328
77442
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
77329
- const renderLegal = useMemo441(() => {
77443
+ const renderLegal = useMemo442(() => {
77330
77444
  if (legalSlot) return legalSlot;
77331
77445
  if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
77332
77446
  return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
@@ -77340,7 +77454,7 @@ function OfferModalSheetNewsletter({
77340
77454
  "."
77341
77455
  ] });
77342
77456
  }, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
77343
- const renderImage = useMemo441(() => {
77457
+ const renderImage = useMemo442(() => {
77344
77458
  if (imageSlot) return imageSlot;
77345
77459
  if (!image) return null;
77346
77460
  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(