@opensite/ui 3.1.7 → 3.1.9

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
@@ -20209,8 +20209,8 @@ function CarouselFullscreenScrollFx({
20209
20209
  {
20210
20210
  onClick: () => scrollToSlide(index),
20211
20211
  className: cn(
20212
- "h-3 w-3 rounded-full border-2 transition-all",
20213
- activeIndex === index ? "scale-125 border-foreground bg-foreground" : "border-foreground/50 bg-transparent hover:border-foreground"
20212
+ "h-3 w-3 rounded-full border-2 transition-all cursor-pointer",
20213
+ activeIndex === index ? "scale-125 border-white bg-white" : "border-white bg-transparent hover:bg-white"
20214
20214
  ),
20215
20215
  "aria-label": `Go to ${typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`}`
20216
20216
  },
@@ -20319,7 +20319,8 @@ function CarouselFullscreenScrollFx({
20319
20319
  "div",
20320
20320
  {
20321
20321
  className: cn(
20322
- "relative z-10 mx-auto max-w-4xl md:max-w-xl px-6 text-center text-shadow",
20322
+ "relative z-10 mx-auto max-w-full md:max-w-md",
20323
+ "px-6 text-center text-shadow",
20323
20324
  contentClassName
20324
20325
  ),
20325
20326
  children: [
@@ -20514,7 +20515,7 @@ function CarouselGalleryThumbnails({
20514
20515
  "button",
20515
20516
  {
20516
20517
  className: cn(
20517
- "relative h-20 w-20 shrink-0 transition-all duration-200",
20518
+ "relative h-20 w-20 shrink-0 transition-all duration-200 rounded-lg",
20518
20519
  index === currentIndex ? "ring-2 ring-primary ring-offset-2" : "opacity-70 hover:opacity-100",
20519
20520
  thumbnailClassName
20520
20521
  ),
@@ -20524,7 +20525,7 @@ function CarouselGalleryThumbnails({
20524
20525
  {
20525
20526
  src: image.src,
20526
20527
  alt: `Thumbnail ${index + 1}`,
20527
- className: "h-full w-full rounded-sm object-cover",
20528
+ className: "h-full w-full rounded-lg object-cover",
20528
20529
  optixFlowConfig
20529
20530
  }
20530
20531
  )
@@ -20768,7 +20769,7 @@ function CarouselImageHero({
20768
20769
  indicatorsClassName,
20769
20770
  optixFlowConfig,
20770
20771
  background,
20771
- spacing = "py-0 md:py-32",
20772
+ spacing = "hero",
20772
20773
  pattern,
20773
20774
  patternOpacity
20774
20775
  }) {
@@ -20833,87 +20834,96 @@ function CarouselImageHero({
20833
20834
  patternOpacity,
20834
20835
  containerClassName,
20835
20836
  children: [
20836
- /* @__PURE__ */ jsxs("div", { className: cn("absolute inset-0", imageClassName), children: [
20837
- !hasImages ? null : images?.map((image, index) => /* @__PURE__ */ jsxs(
20838
- "div",
20839
- {
20840
- className: cn(
20841
- "absolute inset-0 transition-opacity duration-1000",
20842
- index === currentImageIndex ? "opacity-100" : "opacity-0"
20843
- ),
20844
- children: [
20845
- /* @__PURE__ */ jsx(
20846
- Img,
20847
- {
20848
- src: image.src,
20849
- alt: image.alt,
20850
- className: cn("h-full w-full object-cover", image.className),
20851
- optixFlowConfig
20852
- }
20853
- ),
20854
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-black/40" })
20855
- ]
20856
- },
20857
- index
20858
- )),
20859
- /* @__PURE__ */ jsxs(
20860
- "div",
20861
- {
20862
- className: cn(
20863
- "absolute bottom-6 left-1/2 z-10 flex -translate-x-1/2 items-center justify-center gap-5",
20864
- indicatorsClassName
20865
- ),
20866
- children: [
20867
- /* @__PURE__ */ jsx(
20868
- Pressable,
20869
- {
20870
- onClick: handlePrev,
20871
- asButton: true,
20872
- variant: "ghost",
20873
- size: "icon",
20874
- className: cn(
20875
- "flex size-6 cursor-pointer items-center justify-center rounded-full p-0.5 opacity-80 hover:opacity-100 active:scale-95 bg-white/20 text-white backdrop-blur-sm"
20837
+ /* @__PURE__ */ jsxs(
20838
+ "div",
20839
+ {
20840
+ className: cn(
20841
+ "absolute inset-0 mx-4 md:mx-8 rounded-2xl overflow-hidden",
20842
+ imageClassName
20843
+ ),
20844
+ children: [
20845
+ !hasImages ? null : images?.map((image, index) => /* @__PURE__ */ jsxs(
20846
+ "div",
20847
+ {
20848
+ className: cn(
20849
+ "absolute inset-0 transition-opacity duration-1000",
20850
+ index === currentImageIndex ? "opacity-100" : "opacity-0"
20851
+ ),
20852
+ children: [
20853
+ /* @__PURE__ */ jsx(
20854
+ Img,
20855
+ {
20856
+ src: image.src,
20857
+ alt: image.alt,
20858
+ className: cn("h-full w-full object-cover", image.className),
20859
+ optixFlowConfig
20860
+ }
20876
20861
  ),
20877
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 })
20878
- }
20879
- ),
20880
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center gap-1", children: images?.map((_, index) => /* @__PURE__ */ jsx(
20881
- motion.button,
20882
- {
20883
- initial: false,
20884
- onClick: () => handleDotClick(index),
20885
- animate: {
20886
- width: index === currentImageIndex ? "30px" : "8px"
20887
- },
20888
- className: "relative flex h-2 cursor-pointer items-center justify-center overflow-hidden rounded-full p-0.5 bg-white/50",
20889
- "aria-label": `Go to image ${index + 1}`,
20890
- children: currentImageIndex === index && /* @__PURE__ */ jsx(
20891
- motion.div,
20862
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-black/40" })
20863
+ ]
20864
+ },
20865
+ index
20866
+ )),
20867
+ /* @__PURE__ */ jsxs(
20868
+ "div",
20869
+ {
20870
+ className: cn(
20871
+ "absolute bottom-6 left-1/2 z-20 flex -translate-x-1/2 items-center justify-center gap-5",
20872
+ indicatorsClassName
20873
+ ),
20874
+ children: [
20875
+ /* @__PURE__ */ jsx(
20876
+ Pressable,
20892
20877
  {
20893
- style: { clipPath },
20894
- className: "absolute left-0 top-0 h-full w-full origin-left rounded-full bg-white"
20878
+ onClick: handlePrev,
20879
+ asButton: true,
20880
+ variant: "ghost",
20881
+ size: "icon",
20882
+ className: cn(
20883
+ "flex size-6 cursor-pointer items-center justify-center rounded-full p-0.5 opacity-80 hover:opacity-100 active:scale-95 bg-white/20 text-white backdrop-blur-sm"
20884
+ ),
20885
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 })
20895
20886
  }
20896
- )
20897
- },
20898
- index
20899
- )) }),
20900
- /* @__PURE__ */ jsx(
20901
- Pressable,
20902
- {
20903
- onClick: handleNext,
20904
- asButton: true,
20905
- variant: "ghost",
20906
- size: "icon",
20907
- className: cn(
20908
- "flex size-6 cursor-pointer items-center justify-center rounded-full p-0.5 opacity-80 hover:opacity-100 active:scale-95 bg-white/20 text-white backdrop-blur-sm"
20909
20887
  ),
20910
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
20911
- }
20912
- )
20913
- ]
20914
- }
20915
- )
20916
- ] }),
20888
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center gap-1", children: images?.map((_, index) => /* @__PURE__ */ jsx(
20889
+ motion.button,
20890
+ {
20891
+ initial: false,
20892
+ onClick: () => handleDotClick(index),
20893
+ animate: {
20894
+ width: index === currentImageIndex ? "30px" : "8px"
20895
+ },
20896
+ className: "relative flex h-2 cursor-pointer items-center justify-center overflow-hidden rounded-full p-0.5 bg-white/50",
20897
+ "aria-label": `Go to image ${index + 1}`,
20898
+ children: currentImageIndex === index && /* @__PURE__ */ jsx(
20899
+ motion.div,
20900
+ {
20901
+ style: { clipPath },
20902
+ className: "absolute left-0 top-0 h-full w-full origin-left rounded-full bg-white"
20903
+ }
20904
+ )
20905
+ },
20906
+ index
20907
+ )) }),
20908
+ /* @__PURE__ */ jsx(
20909
+ Pressable,
20910
+ {
20911
+ onClick: handleNext,
20912
+ asButton: true,
20913
+ variant: "ghost",
20914
+ size: "icon",
20915
+ className: cn(
20916
+ "flex size-6 cursor-pointer items-center justify-center rounded-full p-0.5 opacity-80 hover:opacity-100 active:scale-95 bg-white/20 text-white backdrop-blur-sm"
20917
+ ),
20918
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
20919
+ }
20920
+ )
20921
+ ]
20922
+ }
20923
+ )
20924
+ ]
20925
+ }
20926
+ ),
20917
20927
  /* @__PURE__ */ jsx(
20918
20928
  "div",
20919
20929
  {
@@ -20952,14 +20962,14 @@ function CarouselImageHero({
20952
20962
  }
20953
20963
  ) : description)
20954
20964
  ] }),
20955
- /* @__PURE__ */ jsx(
20965
+ /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", children: /* @__PURE__ */ jsx(
20956
20966
  BlockActions,
20957
20967
  {
20958
20968
  actions,
20959
20969
  actionsSlot,
20960
20970
  actionsClassName
20961
20971
  }
20962
- )
20972
+ ) })
20963
20973
  ] })
20964
20974
  }
20965
20975
  )
@@ -21464,7 +21474,7 @@ function CarouselProductFeatureShowcase({
21464
21474
  actions,
21465
21475
  actionsSlot,
21466
21476
  className,
21467
- containerClassName,
21477
+ containerClassName = "px-4 md:px-10 lg:px-16",
21468
21478
  headerClassName,
21469
21479
  headingClassName,
21470
21480
  subheadingClassName,
@@ -21476,7 +21486,7 @@ function CarouselProductFeatureShowcase({
21476
21486
  indicatorsClassName,
21477
21487
  optixFlowConfig,
21478
21488
  background,
21479
- spacing,
21489
+ spacing = "hero",
21480
21490
  pattern,
21481
21491
  patternOpacity
21482
21492
  }) {
@@ -21553,7 +21563,8 @@ function CarouselProductFeatureShowcase({
21553
21563
  className: cn(className),
21554
21564
  pattern,
21555
21565
  patternOpacity,
21556
- children: /* @__PURE__ */ jsxs("div", { className: cn("relative", containerClassName), children: [
21566
+ containerClassName,
21567
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
21557
21568
  /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
21558
21569
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
21559
21570
  "h2",
@@ -21564,17 +21575,14 @@ function CarouselProductFeatureShowcase({
21564
21575
  ),
21565
21576
  children: heading
21566
21577
  }
21567
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
21578
+ ) : heading),
21568
21579
  subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx(
21569
21580
  "p",
21570
21581
  {
21571
- className: cn(
21572
- "mt-4 text-lg text-muted-foreground",
21573
- subheadingClassName
21574
- ),
21582
+ className: cn("mt-4 text-lg text-balance", subheadingClassName),
21575
21583
  children: subheading
21576
21584
  }
21577
- ) : /* @__PURE__ */ jsx("div", { className: subheadingClassName, children: subheading }))
21585
+ ) : subheading)
21578
21586
  ] }),
21579
21587
  featuresSlot ? /* @__PURE__ */ jsx("div", { className: contentClassName, children: featuresSlot }) : /* @__PURE__ */ jsxs(
21580
21588
  "div",
@@ -21662,7 +21670,7 @@ function CarouselProductFeatureShowcase({
21662
21670
  transition: { duration: 0.3 },
21663
21671
  children: [
21664
21672
  activeFeature?.title && (typeof activeFeature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold md:text-3xl", children: activeFeature.title }) : /* @__PURE__ */ jsx("div", { children: activeFeature.title })),
21665
- activeFeature?.description && (typeof activeFeature.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: activeFeature.description }) : /* @__PURE__ */ jsx("div", { className: "mt-4", children: activeFeature.description })),
21673
+ activeFeature?.description && (typeof activeFeature.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-4 text-lg text-balance", children: activeFeature.description }) : /* @__PURE__ */ jsx("div", { className: "mt-4", children: activeFeature.description })),
21666
21674
  activeFeature?.colors && activeFeature.colors.length > 0 && /* @__PURE__ */ jsxs("div", { className: cn("mt-6", colorSelectorClassName), children: [
21667
21675
  /* @__PURE__ */ jsx("p", { className: "mb-3 text-sm font-medium", children: "Available Colors" }),
21668
21676
  /* @__PURE__ */ jsx("div", { className: "flex gap-3", children: activeFeature.colors.map((color, index) => /* @__PURE__ */ jsx(
@@ -21779,7 +21787,7 @@ function CarouselProgressSlider({
21779
21787
  fastDuration = 400,
21780
21788
  vertical = false,
21781
21789
  className,
21782
- containerClassName,
21790
+ containerClassName = "px-4 md:px-10 lg:px-16",
21783
21791
  contentClassName,
21784
21792
  imageClassName,
21785
21793
  navigationClassName,
@@ -21873,76 +21881,86 @@ function CarouselProgressSlider({
21873
21881
  className: cn(className),
21874
21882
  pattern,
21875
21883
  patternOpacity,
21876
- children: /* @__PURE__ */ jsx("div", { className: cn("relative", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("grid gap-4 lg:gap-8 lg:grid-cols-2", contentClassName), children: [
21877
- /* @__PURE__ */ jsx("div", { className: cn("relative", imageClassName), children: /* @__PURE__ */ jsxs("div", { className: "relative aspect-video", children: [
21878
- slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsx(
21879
- SliderWrapper,
21880
- {
21881
- value: slide.id,
21882
- className: cn("absolute inset-0", slide.className),
21883
- children: /* @__PURE__ */ jsx("div", { className: "aspect-video overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx(
21884
- Img,
21884
+ containerClassName,
21885
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
21886
+ "div",
21887
+ {
21888
+ className: cn(
21889
+ "grid gap-4 lg:gap-8 lg:grid-cols-2",
21890
+ contentClassName
21891
+ ),
21892
+ children: [
21893
+ /* @__PURE__ */ jsx("div", { className: cn("relative", imageClassName), children: /* @__PURE__ */ jsxs("div", { className: "relative aspect-video", children: [
21894
+ slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsx(
21895
+ SliderWrapper,
21885
21896
  {
21886
- src: slide.image,
21887
- alt: typeof slide.title === "string" ? slide.title : `Slide ${slide.id}`,
21888
- className: cn(
21889
- "h-full w-full object-cover",
21890
- slide.imageClassName
21891
- ),
21892
- optixFlowConfig
21893
- }
21894
- ) })
21895
- },
21896
- slide.id
21897
- )),
21898
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-4 left-4 z-10", children: /* @__PURE__ */ jsx(
21899
- Pressable,
21900
- {
21901
- onClick: togglePause,
21902
- asButton: true,
21903
- variant: "outline",
21904
- size: "icon",
21905
- className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted/80 backdrop-blur-sm",
21906
- "aria-label": isPaused ? "Play" : "Pause",
21907
- children: /* @__PURE__ */ jsx(
21908
- DynamicIcon,
21897
+ value: slide.id,
21898
+ className: cn("absolute inset-0", slide.className),
21899
+ children: /* @__PURE__ */ jsx("div", { className: "aspect-video overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx(
21900
+ Img,
21901
+ {
21902
+ src: slide.image,
21903
+ alt: typeof slide.title === "string" ? slide.title : `Slide ${slide.id}`,
21904
+ className: cn(
21905
+ "h-full w-full object-cover",
21906
+ slide.imageClassName
21907
+ ),
21908
+ optixFlowConfig
21909
+ }
21910
+ ) })
21911
+ },
21912
+ slide.id
21913
+ )),
21914
+ /* @__PURE__ */ jsx("div", { className: "absolute bottom-4 left-4 z-10", children: /* @__PURE__ */ jsx(
21915
+ Pressable,
21909
21916
  {
21910
- name: isPaused ? "lucide/play" : "lucide/pause",
21911
- size: 18
21917
+ onClick: togglePause,
21918
+ asButton: true,
21919
+ variant: "outline",
21920
+ size: "icon",
21921
+ className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted/80 backdrop-blur-sm",
21922
+ "aria-label": isPaused ? "Play" : "Pause",
21923
+ children: /* @__PURE__ */ jsx(
21924
+ DynamicIcon,
21925
+ {
21926
+ name: isPaused ? "lucide/play" : "lucide/pause",
21927
+ size: 18
21928
+ }
21929
+ )
21912
21930
  }
21913
- )
21914
- }
21915
- ) })
21916
- ] }) }),
21917
- /* @__PURE__ */ jsx(
21918
- "div",
21919
- {
21920
- className: cn(
21921
- "flex flex-col justify-center gap-4",
21922
- navigationClassName
21923
- ),
21924
- children: slides?.map((slide) => /* @__PURE__ */ jsxs(
21925
- SliderBtn,
21931
+ ) })
21932
+ ] }) }),
21933
+ /* @__PURE__ */ jsx(
21934
+ "div",
21926
21935
  {
21927
- value: slide.id,
21928
21936
  className: cn(
21929
- "rounded-lg border p-4 text-left transition-colors hover:bg-muted",
21930
- buttonClassName
21931
- ),
21932
- progressBarClass: cn(
21933
- "bottom-0 h-1 bg-primary",
21934
- progressBarClassName
21937
+ "flex flex-col justify-center gap-4",
21938
+ navigationClassName
21935
21939
  ),
21936
- children: [
21937
- slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold", children: slide.title }) : /* @__PURE__ */ jsx("div", { children: slide.title })),
21938
- slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: slide.description }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: slide.description }))
21939
- ]
21940
- },
21941
- slide.id
21942
- ))
21943
- }
21944
- )
21945
- ] }) })
21940
+ children: slides?.map((slide) => /* @__PURE__ */ jsxs(
21941
+ SliderBtn,
21942
+ {
21943
+ value: slide.id,
21944
+ className: cn(
21945
+ "rounded-lg border p-4 text-left transition-colors hover:bg-muted",
21946
+ buttonClassName
21947
+ ),
21948
+ progressBarClass: cn(
21949
+ "bottom-0 h-1 bg-primary",
21950
+ progressBarClassName
21951
+ ),
21952
+ children: [
21953
+ slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold", children: slide.title }) : slide.title),
21954
+ slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-balance", children: slide.description }) : slide.description)
21955
+ ]
21956
+ },
21957
+ slide.id
21958
+ ))
21959
+ }
21960
+ )
21961
+ ]
21962
+ }
21963
+ ) })
21946
21964
  }
21947
21965
  )
21948
21966
  }
@@ -22023,13 +22041,19 @@ function CarouselScrollingFeatureShowcase({
22023
22041
  "h2",
22024
22042
  {
22025
22043
  className: cn(
22026
- "text-3xl font-bold tracking-tight md:text-4xl",
22044
+ "text-3xl font-bold tracking-tight md:text-4xl text-pretty",
22027
22045
  headingClassName
22028
22046
  ),
22029
22047
  children: heading
22030
22048
  }
22031
22049
  ) : heading),
22032
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", subheadingClassName), children: subheading }) : subheading)
22050
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx(
22051
+ "p",
22052
+ {
22053
+ className: cn("mt-4 text-lg text-balance", subheadingClassName),
22054
+ children: subheading
22055
+ }
22056
+ ) : subheading)
22033
22057
  ] }),
22034
22058
  /* @__PURE__ */ jsxs(
22035
22059
  "div",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.1.7",
3
+ "version": "3.1.9",
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",