@opensite/ui 1.6.5 → 1.6.6

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.js CHANGED
@@ -49765,7 +49765,7 @@ function HeroOverlayCtaGrid({
49765
49765
  containerClassName,
49766
49766
  children: [
49767
49767
  renderBackground,
49768
- /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-12", children: [
49768
+ /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-12 px-6", children: [
49769
49769
  /* @__PURE__ */ jsxs(
49770
49770
  motion.div,
49771
49771
  {
@@ -50736,7 +50736,6 @@ function HeroPatternBadgeLogos({
50736
50736
  badgeClassName,
50737
50737
  actionsClassName,
50738
50738
  logosClassName,
50739
- backgroundClassName,
50740
50739
  optixFlowConfig
50741
50740
  }) {
50742
50741
  const renderActions = useMemo(() => {
@@ -50830,7 +50829,7 @@ function HeroPatternBadgeLogos({
50830
50829
  spacing,
50831
50830
  pattern,
50832
50831
  patternOpacity,
50833
- className: cn("relative p-0", className),
50832
+ className,
50834
50833
  containerClassName,
50835
50834
  children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
50836
50835
  "div",
@@ -50882,7 +50881,7 @@ function HeroPatternBadgeLogos({
50882
50881
  ),
50883
50882
  children: [
50884
50883
  logosTagline && (typeof logosTagline === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-sm"), children: logosTagline }) : logosTagline),
50885
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 place-items-center items-center justify-center gap-6 opacity-80 sm:grid-cols-4 sm:gap-4 w-full", children: renderLogos })
50884
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center flex-wrap gap-12", children: renderLogos })
50886
50885
  ]
50887
50886
  }
50888
50887
  )
@@ -51106,14 +51105,14 @@ function HeroPatternLogoTechStack({
51106
51105
  ),
51107
51106
  children: [
51108
51107
  techStackLabel && (typeof techStackLabel === "string" ? /* @__PURE__ */ jsx("p", { className: cn("font-medium lg:text-left"), children: techStackLabel }) : techStackLabel),
51109
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-4", children: techLogos.map((techLogo, index) => {
51108
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col md:flex-row flex-wrap items-center justify-center gap-8 md:gap-4", children: techLogos.map((techLogo, index) => {
51110
51109
  const techLogoSrc = typeof techLogo.src === "string" ? techLogo.src : techLogo.src.light;
51111
51110
  return /* @__PURE__ */ jsx(
51112
51111
  Pressable,
51113
51112
  {
51114
51113
  href: techLogo.href,
51115
51114
  className: cn(
51116
- "group flex w-auto h-10 items-center justify-center max-w-12 max-h-10 min-h-10 p-1",
51115
+ "group flex w-auto h-12 md:h-10 items-center justify-center max-w-full md:max-w-30 max-h-12 md:max-h-10 min-h-12 md:min-h-10 p-2 md:p-1",
51117
51116
  techLogo.className
51118
51117
  ),
51119
51118
  children: /* @__PURE__ */ jsx(
@@ -51278,18 +51277,20 @@ function HeroTechCarousel({
51278
51277
  description,
51279
51278
  technologies,
51280
51279
  carouselSlot,
51281
- autoplayDelay = 4e3,
51280
+ autoplayDelay = 5e3,
51282
51281
  background,
51283
- spacing,
51284
51282
  pattern,
51285
51283
  patternOpacity,
51286
51284
  className,
51287
- containerClassName,
51285
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
51286
+ spacing = "py-6 md:py-32",
51288
51287
  headingClassName,
51289
51288
  descriptionClassName,
51290
51289
  optixFlowConfig
51291
51290
  }) {
51292
- const plugin = useRef(Autoplay({ delay: autoplayDelay, stopOnInteraction: false }));
51291
+ const plugin = useRef(
51292
+ Autoplay({ delay: autoplayDelay, stopOnInteraction: false })
51293
+ );
51293
51294
  const [api, setApi] = useState();
51294
51295
  const [current, setCurrent] = useState(0);
51295
51296
  const [fadeIn, setFadeIn] = useState(true);
@@ -51337,12 +51338,12 @@ function HeroTechCarousel({
51337
51338
  "div",
51338
51339
  {
51339
51340
  className: cn(
51340
- "flex cursor-pointer items-center justify-center gap-2 rounded-md border p-6",
51341
+ "flex cursor-pointer items-center justify-center gap-2 rounded-md border px-4 py-2",
51341
51342
  idx === current ? "border-input" : "border-transparent"
51342
51343
  ),
51343
51344
  onClick: () => selectTechnology(idx),
51344
51345
  children: [
51345
- /* @__PURE__ */ jsx(
51346
+ technology.logo && /* @__PURE__ */ jsx(
51346
51347
  Img,
51347
51348
  {
51348
51349
  className: "h-4 shrink-0 md:h-7",
@@ -51351,7 +51352,7 @@ function HeroTechCarousel({
51351
51352
  optixFlowConfig
51352
51353
  }
51353
51354
  ),
51354
- /* @__PURE__ */ jsx("p", { children: technology.name })
51355
+ /* @__PURE__ */ jsx("p", { className: "text-nowrap", children: technology.name })
51355
51356
  ]
51356
51357
  }
51357
51358
  )
@@ -51360,7 +51361,15 @@ function HeroTechCarousel({
51360
51361
  )) })
51361
51362
  }
51362
51363
  );
51363
- }, [carouselSlot, technologies, setApi, plugin, current, selectTechnology, optixFlowConfig]);
51364
+ }, [
51365
+ carouselSlot,
51366
+ technologies,
51367
+ setApi,
51368
+ plugin,
51369
+ current,
51370
+ selectTechnology,
51371
+ optixFlowConfig
51372
+ ]);
51364
51373
  return /* @__PURE__ */ jsx(
51365
51374
  Section,
51366
51375
  {
@@ -51368,36 +51377,77 @@ function HeroTechCarousel({
51368
51377
  spacing,
51369
51378
  pattern,
51370
51379
  patternOpacity,
51371
- className: cn(className),
51372
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
51380
+ className,
51381
+ containerClassName,
51382
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
51373
51383
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center", children: [
51374
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl", headingClassName), children: heading })),
51375
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-4 max-w-xl text-center text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
51376
- technologies && technologies.length > 0 && /* @__PURE__ */ jsx("div", { className: cn(
51377
- "mx-auto mt-8 mb-12 flex h-[60px] w-fit items-center gap-2 rounded-md px-4 py-2 text-center",
51378
- getNestedCardBg(background),
51379
- getNestedCardTextColor(background)
51380
- ), children: /* @__PURE__ */ jsxs(
51384
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
51385
+ "h1",
51386
+ {
51387
+ className: cn(
51388
+ "mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl text-balance",
51389
+ headingClassName
51390
+ ),
51391
+ children: heading
51392
+ }
51393
+ ) : /* @__PURE__ */ jsx(
51394
+ "h1",
51395
+ {
51396
+ className: cn(
51397
+ "mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl text-balance",
51398
+ headingClassName
51399
+ ),
51400
+ children: heading
51401
+ }
51402
+ )),
51403
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
51404
+ "p",
51405
+ {
51406
+ className: cn(
51407
+ "mx-auto mt-4 max-w-xl text-center text-lg text-balance",
51408
+ descriptionClassName
51409
+ ),
51410
+ children: description
51411
+ }
51412
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
51413
+ technologies && technologies.length > 0 && /* @__PURE__ */ jsx(
51381
51414
  "div",
51382
51415
  {
51383
51416
  className: cn(
51384
- "flex items-center gap-2 transition-opacity duration-300",
51385
- fadeIn ? "opacity-100" : "opacity-0"
51417
+ "mx-auto bg-muted mt-8 mb-12 flex h-[60px] w-fit items-center gap-2 rounded-md px-4 py-2 text-center"
51386
51418
  ),
51387
- children: [
51388
- /* @__PURE__ */ jsx(
51389
- Img,
51390
- {
51391
- src: technologies[current]?.logo,
51392
- alt: technologies[current]?.name,
51393
- className: "h-4 md:h-7",
51394
- optixFlowConfig
51395
- }
51396
- ),
51397
- /* @__PURE__ */ jsx("p", { className: "border-l px-2 font-mono text-sm", children: technologies[current]?.command })
51398
- ]
51419
+ children: /* @__PURE__ */ jsxs(
51420
+ "div",
51421
+ {
51422
+ className: cn(
51423
+ "flex items-center gap-2 transition-opacity duration-300",
51424
+ fadeIn ? "opacity-100" : "opacity-0"
51425
+ ),
51426
+ children: [
51427
+ technologies && current && technologies[current] && technologies[current].logo && /* @__PURE__ */ jsx(
51428
+ Img,
51429
+ {
51430
+ src: technologies[current]?.logo,
51431
+ alt: technologies[current]?.name,
51432
+ className: "h-4 md:h-7",
51433
+ optixFlowConfig
51434
+ }
51435
+ ),
51436
+ /* @__PURE__ */ jsx(
51437
+ "p",
51438
+ {
51439
+ className: cn(
51440
+ "px-2 font-mono text-sm",
51441
+ technologies && technologies[current] && technologies[current].logo ? "border-l" : ""
51442
+ ),
51443
+ children: technologies[current]?.command
51444
+ }
51445
+ )
51446
+ ]
51447
+ }
51448
+ )
51399
51449
  }
51400
- ) })
51450
+ )
51401
51451
  ] }),
51402
51452
  renderCarousel
51403
51453
  ] })
@@ -51477,17 +51527,18 @@ function HeroPlatformFeaturesGrid({
51477
51527
  logo,
51478
51528
  logoSlot,
51479
51529
  subtitle,
51530
+ description,
51480
51531
  heading,
51481
51532
  action,
51482
51533
  actionSlot,
51483
51534
  features,
51484
51535
  featuresSlot,
51485
51536
  background,
51486
- spacing,
51537
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
51538
+ spacing = "py-6 md:py-32",
51487
51539
  pattern,
51488
51540
  patternOpacity,
51489
51541
  className,
51490
- containerClassName,
51491
51542
  headerClassName,
51492
51543
  headingClassName,
51493
51544
  featuresClassName,
@@ -51502,7 +51553,10 @@ function HeroPlatformFeaturesGrid({
51502
51553
  {
51503
51554
  src: logoSrc,
51504
51555
  alt: logo.alt,
51505
- className: cn("mx-auto mb-5 w-16 md:mb-6 md:w-24 lg:mb-7 lg:w-28", logo.imgClassName),
51556
+ className: cn(
51557
+ "mx-auto mb-5 w-16 md:mb-6 md:w-24 lg:mb-7 lg:w-28",
51558
+ logo.imgClassName
51559
+ ),
51506
51560
  optixFlowConfig
51507
51561
  }
51508
51562
  );
@@ -51510,7 +51564,14 @@ function HeroPlatformFeaturesGrid({
51510
51564
  const renderAction = useMemo(() => {
51511
51565
  if (actionSlot) return actionSlot;
51512
51566
  if (!action) return null;
51513
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
51567
+ const {
51568
+ label,
51569
+ icon,
51570
+ iconAfter,
51571
+ children,
51572
+ className: actionClassName,
51573
+ ...pressableProps
51574
+ } = action;
51514
51575
  return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
51515
51576
  icon,
51516
51577
  label,
@@ -51520,13 +51581,30 @@ function HeroPlatformFeaturesGrid({
51520
51581
  const renderFeatures = useMemo(() => {
51521
51582
  if (featuresSlot) return featuresSlot;
51522
51583
  if (!features || features.length === 0) return null;
51523
- return /* @__PURE__ */ jsx("div", { className: cn("mt-16 grid gap-px overflow-hidden rounded-lg border bg-input md:grid-cols-2 lg:grid-cols-4", featuresClassName), children: features.map((feature, index) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 bg-background p-5 md:gap-6", children: [
51524
- feature.icon ?? (feature.iconName && /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName, size: 24 })),
51525
- /* @__PURE__ */ jsxs("div", { children: [
51526
- feature.title && /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold md:text-base", children: feature.title }),
51527
- feature.description && /* @__PURE__ */ jsx("p", { className: cn("text-sm md:text-base", getTextColor(background, "muted")), children: feature.description })
51528
- ] })
51529
- ] }, index)) });
51584
+ return /* @__PURE__ */ jsx(
51585
+ "div",
51586
+ {
51587
+ className: cn(
51588
+ "mt-16 grid gap-px overflow-hidden rounded-lg border bg-input md:grid-cols-2 lg:grid-cols-4 w-full",
51589
+ featuresClassName
51590
+ ),
51591
+ children: features.map((feature, index) => /* @__PURE__ */ jsxs(
51592
+ Pressable,
51593
+ {
51594
+ href: feature.href,
51595
+ className: "flex flex-col gap-3 bg-card text-card-foreground p-5 md:gap-6",
51596
+ children: [
51597
+ feature.icon ?? (feature.iconName && /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName, size: 24 })),
51598
+ /* @__PURE__ */ jsxs("div", { children: [
51599
+ feature.title && /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold md:text-base", children: feature.title }),
51600
+ feature.description && /* @__PURE__ */ jsx("p", { className: cn("text-sm md:text-base"), children: feature.description })
51601
+ ] })
51602
+ ]
51603
+ },
51604
+ index
51605
+ ))
51606
+ }
51607
+ );
51530
51608
  }, [featuresSlot, features, featuresClassName]);
51531
51609
  return /* @__PURE__ */ jsx(
51532
51610
  Section,
@@ -51536,13 +51614,42 @@ function HeroPlatformFeaturesGrid({
51536
51614
  pattern,
51537
51615
  patternOpacity,
51538
51616
  className: cn(className),
51539
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
51540
- /* @__PURE__ */ jsxs("div", { className: cn("text-center", headerClassName), children: [
51541
- renderLogo,
51542
- subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsx("span", { className: cn("mb-3 text-sm tracking-widest md:text-base", getTextColor(background, "muted")), children: subtitle }) : subtitle),
51543
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mt-4 text-4xl font-semibold text-balance lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("mt-4 text-4xl font-semibold text-balance lg:text-6xl", headingClassName), children: heading })),
51544
- renderAction
51545
- ] }),
51617
+ containerClassName,
51618
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center w-full", children: [
51619
+ /* @__PURE__ */ jsxs(
51620
+ "div",
51621
+ {
51622
+ className: cn(
51623
+ "flex flex-col items-center w-full gap-6 text-center",
51624
+ headerClassName
51625
+ ),
51626
+ children: [
51627
+ renderLogo,
51628
+ subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsx("span", { className: cn("mb-3 text-sm tracking-widest md:text-base"), children: subtitle }) : subtitle),
51629
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
51630
+ "h1",
51631
+ {
51632
+ className: cn(
51633
+ "mt-4 text-4xl font-semibold text-balance lg:text-6xl",
51634
+ headingClassName
51635
+ ),
51636
+ children: heading
51637
+ }
51638
+ ) : /* @__PURE__ */ jsx(
51639
+ "h1",
51640
+ {
51641
+ className: cn(
51642
+ "mt-4 text-4xl font-semibold text-balance lg:text-6xl",
51643
+ headingClassName
51644
+ ),
51645
+ children: heading
51646
+ }
51647
+ )),
51648
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-2xl md:text-lg text-balance"), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("max-w-2xl md:text-lg text-balance"), children: description })),
51649
+ renderAction
51650
+ ]
51651
+ }
51652
+ ),
51546
51653
  renderFeatures
51547
51654
  ] })
51548
51655
  }
@@ -99367,22 +99474,13 @@ function LinkTreeBlock({
99367
99474
  patternClassName,
99368
99475
  containerClassName,
99369
99476
  children: [
99370
- /* @__PURE__ */ jsx(
99371
- "div",
99372
- {
99373
- className: cn(
99374
- "flex min-h-screen w-full items-start justify-center py-12",
99375
- containerClassName
99376
- ),
99377
- children: /* @__PURE__ */ jsxs("div", { className: cn("w-full max-w-md space-y-6", contentClassName), children: [
99378
- renderBrandHeader,
99379
- renderLinks,
99380
- renderMediaGallery,
99381
- renderSocialLinks,
99382
- /* @__PURE__ */ jsx("div", { className: "pt-4", children: renderFooter })
99383
- ] })
99384
- }
99385
- ),
99477
+ /* @__PURE__ */ jsx("div", { className: "flex min-h-screen w-full items-start justify-center py-12", children: /* @__PURE__ */ jsxs("div", { className: cn("w-full max-w-md space-y-6", contentClassName), children: [
99478
+ renderBrandHeader,
99479
+ renderLinks,
99480
+ renderMediaGallery,
99481
+ renderSocialLinks,
99482
+ /* @__PURE__ */ jsx("div", { className: "pt-4", children: renderFooter })
99483
+ ] }) }),
99386
99484
  lightboxOpen && lightboxItems.length > 0 && /* @__PURE__ */ jsx(
99387
99485
  Lightbox,
99388
99486
  {
@@ -99767,11 +99865,21 @@ function LinkPageNewsletterSocial({
99767
99865
  }
99768
99866
  });
99769
99867
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
99770
- const resolvedSubmitAction = submitAction ?? {
99771
- label: buttonText,
99772
- variant: "default",
99773
- size: "lg"
99774
- };
99868
+ const resolvedSubmitAction = useMemo(() => {
99869
+ if (submitAction) {
99870
+ return {
99871
+ ...submitAction,
99872
+ label: buttonText || submitAction?.label || "Submit",
99873
+ variant: submitAction?.variant || "default",
99874
+ size: submitAction?.size || "lg"
99875
+ };
99876
+ }
99877
+ return {
99878
+ label: buttonText || "Submit",
99879
+ variant: "default",
99880
+ size: "lg"
99881
+ };
99882
+ }, [submitAction, buttonText]);
99775
99883
  const resolvedChevronIcon = linkChevronIcon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 });
99776
99884
  const renderProfile = useMemo(() => {
99777
99885
  if (profileSlot) return profileSlot;
@@ -99929,7 +100037,7 @@ function LinkPageNewsletterSocial({
99929
100037
  {
99930
100038
  className: cn(
99931
100039
  "space-y-4 rounded-2xl p-6",
99932
- "border border-border bg-card shadow-sm",
100040
+ "border border-border bg-card text-card-foreground shadow-sm",
99933
100041
  newsletterCardClassName
99934
100042
  ),
99935
100043
  children: [
@@ -100016,7 +100124,7 @@ function LinkPageNewsletterSocial({
100016
100124
  className: cn(
100017
100125
  "flex w-full bg-card text-card-foreground items-center gap-3 rounded-xl px-4 py-3 transition-all duration-200",
100018
100126
  "hover:scale-[1.02] active:scale-[0.98]",
100019
- "border border-border bg-card hover:opacity-80",
100127
+ "border border-border hover:opacity-80",
100020
100128
  linkClassName,
100021
100129
  linkItemClassName
100022
100130
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "1.6.5",
3
+ "version": "1.6.6",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",