@opensite/ui 3.3.6 → 3.3.8

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
@@ -12576,10 +12576,19 @@ function CtaVideoBackgroundHero({
12576
12576
  const [skinClasses, setSkinClasses] = React30.useState(null);
12577
12577
  const [skinStyle, setSkinStyle] = React30.useState(null);
12578
12578
  React30.useEffect(() => {
12579
+ let isMounted = true;
12579
12580
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
12581
+ if (!isMounted) return;
12580
12582
  setSkinClasses(skins.resolveVideoClasses(skin));
12581
12583
  setSkinStyle(skins.getSkinStyleObject(skin));
12584
+ }).catch(() => {
12585
+ if (!isMounted) return;
12586
+ setSkinClasses(null);
12587
+ setSkinStyle(null);
12582
12588
  });
12589
+ return () => {
12590
+ isMounted = false;
12591
+ };
12583
12592
  }, []);
12584
12593
  const handleOpenModal = () => {
12585
12594
  setIsModalOpen(true);
@@ -49597,7 +49606,12 @@ function HeroSplitIconCards({
49597
49606
  }
49598
49607
  function HeroFloatingImages({
49599
49608
  sectionId = "hero-floating-images",
49600
- children,
49609
+ badge,
49610
+ badgeIcon,
49611
+ heading,
49612
+ description,
49613
+ actions,
49614
+ actionsSlot,
49601
49615
  images,
49602
49616
  imagesSlot,
49603
49617
  zoomIconName = "lucide/zoom-in",
@@ -49608,6 +49622,10 @@ function HeroFloatingImages({
49608
49622
  className,
49609
49623
  gridClassName,
49610
49624
  contentClassName,
49625
+ badgeClassName,
49626
+ headingClassName,
49627
+ descriptionClassName,
49628
+ actionsClassName,
49611
49629
  galleryClassName,
49612
49630
  featuredImageClassName,
49613
49631
  secondaryImageClassName,
@@ -49665,7 +49683,7 @@ function HeroFloatingImages({
49665
49683
  "absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100",
49666
49684
  zoomIndicatorClassName
49667
49685
  ),
49668
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-background/90 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: zoomIconName, size: 20 }) })
49686
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: zoomIconName, size: 20 }) })
49669
49687
  }
49670
49688
  ),
49671
49689
  [zoomIconName, zoomIndicatorClassName]
@@ -49783,8 +49801,10 @@ function HeroFloatingImages({
49783
49801
  secondaryImagesContent
49784
49802
  ]);
49785
49803
  const hasContent = React30.useMemo(() => {
49786
- return children !== void 0 && children !== null;
49787
- }, [children]);
49804
+ return Boolean(
49805
+ badge || badgeIcon || heading || description || actionsSlot || actions && actions.length > 0
49806
+ );
49807
+ }, [actions, actionsSlot, badge, badgeIcon, description, heading]);
49788
49808
  const hasGallery = React30.useMemo(() => {
49789
49809
  return imagesSlot || images && images.length > 0;
49790
49810
  }, [imagesSlot, images]);
@@ -49807,7 +49827,45 @@ function HeroFloatingImages({
49807
49827
  gridClassName
49808
49828
  ),
49809
49829
  children: [
49810
- hasContent ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col justify-center", contentClassName), children }) : null,
49830
+ hasContent ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col justify-center", contentClassName), children: [
49831
+ badge && /* @__PURE__ */ jsxRuntime.jsxs(
49832
+ Badge,
49833
+ {
49834
+ variant: "secondary",
49835
+ className: cn("mb-6 w-fit", badgeClassName),
49836
+ children: [
49837
+ badge,
49838
+ badgeIcon
49839
+ ]
49840
+ }
49841
+ ),
49842
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
49843
+ "h1",
49844
+ {
49845
+ className: cn(
49846
+ "mb-6 text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl",
49847
+ headingClassName
49848
+ ),
49849
+ children: heading
49850
+ }
49851
+ ) : heading),
49852
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
49853
+ "p",
49854
+ {
49855
+ className: cn("mb-8 max-w-lg text-lg", descriptionClassName),
49856
+ children: description
49857
+ }
49858
+ ) : description),
49859
+ /* @__PURE__ */ jsxRuntime.jsx(
49860
+ BlockActions,
49861
+ {
49862
+ actions,
49863
+ actionsSlot,
49864
+ actionsClassName,
49865
+ verticalSpacing: description ? "mt-0" : void 0
49866
+ }
49867
+ )
49868
+ ] }) : null,
49811
49869
  hasGallery ? galleryContent : null
49812
49870
  ]
49813
49871
  }
@@ -55086,10 +55144,19 @@ function HeroSoftwareGrowthVideoDialog({
55086
55144
  const [skinClasses, setSkinClasses] = React30.useState(null);
55087
55145
  const [skinStyle, setSkinStyle] = React30.useState(null);
55088
55146
  React30.useEffect(() => {
55147
+ let isMounted = true;
55089
55148
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
55149
+ if (!isMounted) return;
55090
55150
  setSkinClasses(skins.resolveVideoClasses(skin));
55091
55151
  setSkinStyle(skins.getSkinStyleObject(skin));
55152
+ }).catch(() => {
55153
+ if (!isMounted) return;
55154
+ setSkinClasses(null);
55155
+ setSkinStyle(null);
55092
55156
  });
55157
+ return () => {
55158
+ isMounted = false;
55159
+ };
55093
55160
  }, []);
55094
55161
  const handleVideoClick = () => {
55095
55162
  if (onVideoClick) {
@@ -55268,10 +55335,19 @@ function HeroConversionVideoPlay({
55268
55335
  const [skinClasses, setSkinClasses] = React30.useState(null);
55269
55336
  const [skinStyle, setSkinStyle] = React30.useState(null);
55270
55337
  React30.useEffect(() => {
55338
+ let isMounted = true;
55271
55339
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
55340
+ if (!isMounted) return;
55272
55341
  setSkinClasses(skins.resolveVideoClasses(skin));
55273
55342
  setSkinStyle(skins.getSkinStyleObject(skin));
55343
+ }).catch(() => {
55344
+ if (!isMounted) return;
55345
+ setSkinClasses(null);
55346
+ setSkinStyle(null);
55274
55347
  });
55348
+ return () => {
55349
+ isMounted = false;
55350
+ };
55275
55351
  }, []);
55276
55352
  const renderActions = React30.useMemo(() => {
55277
55353
  if (actionsSlot) return actionsSlot;
@@ -57075,10 +57151,19 @@ function HeroVideoDialogGradient({
57075
57151
  const [skinClasses, setSkinClasses] = React30.useState(null);
57076
57152
  const [skinStyle, setSkinStyle] = React30.useState(null);
57077
57153
  React30.useEffect(() => {
57154
+ let isMounted = true;
57078
57155
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
57156
+ if (!isMounted) return;
57079
57157
  setSkinClasses(skins.resolveVideoClasses(skin));
57080
57158
  setSkinStyle(skins.getSkinStyleObject(skin));
57159
+ }).catch(() => {
57160
+ if (!isMounted) return;
57161
+ setSkinClasses(null);
57162
+ setSkinStyle(null);
57081
57163
  });
57164
+ return () => {
57165
+ isMounted = false;
57166
+ };
57082
57167
  }, []);
57083
57168
  const handleVideoClick = () => {
57084
57169
  if (onVideoClick) {
@@ -58078,10 +58163,19 @@ function HeroMentorshipVideoSplit({
58078
58163
  const [skinClasses, setSkinClasses] = React30.useState(null);
58079
58164
  const [skinStyle, setSkinStyle] = React30.useState(null);
58080
58165
  React30.useEffect(() => {
58166
+ let isMounted = true;
58081
58167
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
58168
+ if (!isMounted) return;
58082
58169
  setSkinClasses(skins.resolveVideoClasses(skin));
58083
58170
  setSkinStyle(skins.getSkinStyleObject(skin));
58171
+ }).catch(() => {
58172
+ if (!isMounted) return;
58173
+ setSkinClasses(null);
58174
+ setSkinStyle(null);
58084
58175
  });
58176
+ return () => {
58177
+ isMounted = false;
58178
+ };
58085
58179
  }, []);
58086
58180
  const renderAction = React30.useMemo(() => {
58087
58181
  if (actionSlot) return actionSlot;
@@ -58979,10 +59073,19 @@ function HeroCreativeStudioStacked({
58979
59073
  const [skinClasses, setSkinClasses] = React30.useState(null);
58980
59074
  const [skinStyle, setSkinStyle] = React30.useState(null);
58981
59075
  React30.useEffect(() => {
59076
+ let isMounted = true;
58982
59077
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
59078
+ if (!isMounted) return;
58983
59079
  setSkinClasses(skins.resolveVideoClasses(skin));
58984
59080
  setSkinStyle(skins.getSkinStyleObject(skin));
59081
+ }).catch(() => {
59082
+ if (!isMounted) return;
59083
+ setSkinClasses(null);
59084
+ setSkinStyle(null);
58985
59085
  });
59086
+ return () => {
59087
+ isMounted = false;
59088
+ };
58986
59089
  }, []);
58987
59090
  const handleVideoClick = () => {
58988
59091
  if (onVideoClick) {
@@ -101283,7 +101386,7 @@ function LinkTreeBlock({
101283
101386
  "div",
101284
101387
  {
101285
101388
  className: cn(
101286
- "h-24 w-24 overflow-hidden rounded-full border-4 border-background bg-muted shadow-xl",
101389
+ "flex h-24 w-full max-w-72 items-center justify-center",
101287
101390
  avatarClassName
101288
101391
  ),
101289
101392
  children: resolvedAvatar && /* @__PURE__ */ jsxRuntime.jsx(
@@ -101291,7 +101394,7 @@ function LinkTreeBlock({
101291
101394
  {
101292
101395
  src: resolvedAvatar.src,
101293
101396
  alt: resolvedAvatar.alt,
101294
- className: "h-full w-full object-cover",
101397
+ className: "h-auto max-h-24 w-auto max-w-full object-contain",
101295
101398
  optixFlowConfig
101296
101399
  }
101297
101400
  )
@@ -101744,7 +101847,7 @@ function LinkPageMinimalProfile({
101744
101847
  "div",
101745
101848
  {
101746
101849
  className: cn(
101747
- "h-20 w-20 overflow-hidden rounded-full",
101850
+ "flex h-20 w-full max-w-56 items-center justify-center sm:h-24 sm:max-w-72",
101748
101851
  avatarClassName
101749
101852
  ),
101750
101853
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -101752,7 +101855,7 @@ function LinkPageMinimalProfile({
101752
101855
  {
101753
101856
  src: resolvedAvatar.src,
101754
101857
  alt: resolvedAvatar.alt,
101755
- className: "h-full w-full object-cover",
101858
+ className: "h-auto max-h-20 w-auto max-w-full object-contain sm:max-h-24",
101756
101859
  optixFlowConfig
101757
101860
  }
101758
101861
  )
@@ -102016,7 +102119,7 @@ function LinkPageNewsletterSocial({
102016
102119
  "div",
102017
102120
  {
102018
102121
  className: cn(
102019
- "h-24 w-24 overflow-hidden rounded-full bg-muted ring-4 ring-background shadow-lg",
102122
+ "flex h-24 w-full max-w-72 items-center justify-center",
102020
102123
  avatarClassName
102021
102124
  ),
102022
102125
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -102024,7 +102127,7 @@ function LinkPageNewsletterSocial({
102024
102127
  {
102025
102128
  src: resolvedAvatar.src,
102026
102129
  alt: resolvedAvatar.alt,
102027
- className: "h-full w-full object-cover",
102130
+ className: "h-auto max-h-24 w-auto max-w-full object-contain",
102028
102131
  optixFlowConfig
102029
102132
  }
102030
102133
  )
@@ -102340,7 +102443,7 @@ function LinkPageGridCards({
102340
102443
  "div",
102341
102444
  {
102342
102445
  className: cn(
102343
- "h-20 w-20 overflow-hidden rounded-2xl shadow-lg ring-2 ring-primary",
102446
+ "flex h-20 w-full max-w-56 items-center justify-center sm:h-24 sm:max-w-72",
102344
102447
  avatarClassName
102345
102448
  ),
102346
102449
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -102348,7 +102451,7 @@ function LinkPageGridCards({
102348
102451
  {
102349
102452
  src: resolvedAvatar.src,
102350
102453
  alt: resolvedAvatar.alt,
102351
- className: "h-full w-full object-cover",
102454
+ className: "h-auto max-h-20 w-auto max-w-full object-contain sm:max-h-24",
102352
102455
  optixFlowConfig
102353
102456
  }
102354
102457
  )
@@ -102902,7 +103005,7 @@ function LinkPageBentoLayout({
102902
103005
  "div",
102903
103006
  {
102904
103007
  className: cn(
102905
- "h-20 w-20 overflow-hidden rounded-full ring-2 ring-neutral-200",
103008
+ "flex h-20 w-full max-w-56 items-center justify-center sm:h-24 sm:max-w-72",
102906
103009
  avatarClassName
102907
103010
  ),
102908
103011
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -102910,7 +103013,7 @@ function LinkPageBentoLayout({
102910
103013
  {
102911
103014
  src: resolvedAvatar.src,
102912
103015
  alt: resolvedAvatar.alt,
102913
- className: "h-full w-full object-cover",
103016
+ className: "h-auto max-h-20 w-auto max-w-full object-contain sm:max-h-24",
102914
103017
  optixFlowConfig
102915
103018
  }
102916
103019
  )
package/dist/registry.js CHANGED
@@ -12536,10 +12536,19 @@ function CtaVideoBackgroundHero({
12536
12536
  const [skinClasses, setSkinClasses] = useState(null);
12537
12537
  const [skinStyle, setSkinStyle] = useState(null);
12538
12538
  useEffect(() => {
12539
+ let isMounted = true;
12539
12540
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
12541
+ if (!isMounted) return;
12540
12542
  setSkinClasses(resolveVideoClasses(skin));
12541
12543
  setSkinStyle(getSkinStyleObject(skin));
12544
+ }).catch(() => {
12545
+ if (!isMounted) return;
12546
+ setSkinClasses(null);
12547
+ setSkinStyle(null);
12542
12548
  });
12549
+ return () => {
12550
+ isMounted = false;
12551
+ };
12543
12552
  }, []);
12544
12553
  const handleOpenModal = () => {
12545
12554
  setIsModalOpen(true);
@@ -49557,7 +49566,12 @@ function HeroSplitIconCards({
49557
49566
  }
49558
49567
  function HeroFloatingImages({
49559
49568
  sectionId = "hero-floating-images",
49560
- children,
49569
+ badge,
49570
+ badgeIcon,
49571
+ heading,
49572
+ description,
49573
+ actions,
49574
+ actionsSlot,
49561
49575
  images,
49562
49576
  imagesSlot,
49563
49577
  zoomIconName = "lucide/zoom-in",
@@ -49568,6 +49582,10 @@ function HeroFloatingImages({
49568
49582
  className,
49569
49583
  gridClassName,
49570
49584
  contentClassName,
49585
+ badgeClassName,
49586
+ headingClassName,
49587
+ descriptionClassName,
49588
+ actionsClassName,
49571
49589
  galleryClassName,
49572
49590
  featuredImageClassName,
49573
49591
  secondaryImageClassName,
@@ -49625,7 +49643,7 @@ function HeroFloatingImages({
49625
49643
  "absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100",
49626
49644
  zoomIndicatorClassName
49627
49645
  ),
49628
- children: /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-background/90 shadow-lg", children: /* @__PURE__ */ jsx(DynamicIcon, { name: zoomIconName, size: 20 }) })
49646
+ children: /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg", children: /* @__PURE__ */ jsx(DynamicIcon, { name: zoomIconName, size: 20 }) })
49629
49647
  }
49630
49648
  ),
49631
49649
  [zoomIconName, zoomIndicatorClassName]
@@ -49743,8 +49761,10 @@ function HeroFloatingImages({
49743
49761
  secondaryImagesContent
49744
49762
  ]);
49745
49763
  const hasContent = useMemo(() => {
49746
- return children !== void 0 && children !== null;
49747
- }, [children]);
49764
+ return Boolean(
49765
+ badge || badgeIcon || heading || description || actionsSlot || actions && actions.length > 0
49766
+ );
49767
+ }, [actions, actionsSlot, badge, badgeIcon, description, heading]);
49748
49768
  const hasGallery = useMemo(() => {
49749
49769
  return imagesSlot || images && images.length > 0;
49750
49770
  }, [imagesSlot, images]);
@@ -49767,7 +49787,45 @@ function HeroFloatingImages({
49767
49787
  gridClassName
49768
49788
  ),
49769
49789
  children: [
49770
- hasContent ? /* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-center", contentClassName), children }) : null,
49790
+ hasContent ? /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col justify-center", contentClassName), children: [
49791
+ badge && /* @__PURE__ */ jsxs(
49792
+ Badge,
49793
+ {
49794
+ variant: "secondary",
49795
+ className: cn("mb-6 w-fit", badgeClassName),
49796
+ children: [
49797
+ badge,
49798
+ badgeIcon
49799
+ ]
49800
+ }
49801
+ ),
49802
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
49803
+ "h1",
49804
+ {
49805
+ className: cn(
49806
+ "mb-6 text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl",
49807
+ headingClassName
49808
+ ),
49809
+ children: heading
49810
+ }
49811
+ ) : heading),
49812
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
49813
+ "p",
49814
+ {
49815
+ className: cn("mb-8 max-w-lg text-lg", descriptionClassName),
49816
+ children: description
49817
+ }
49818
+ ) : description),
49819
+ /* @__PURE__ */ jsx(
49820
+ BlockActions,
49821
+ {
49822
+ actions,
49823
+ actionsSlot,
49824
+ actionsClassName,
49825
+ verticalSpacing: description ? "mt-0" : void 0
49826
+ }
49827
+ )
49828
+ ] }) : null,
49771
49829
  hasGallery ? galleryContent : null
49772
49830
  ]
49773
49831
  }
@@ -55046,10 +55104,19 @@ function HeroSoftwareGrowthVideoDialog({
55046
55104
  const [skinClasses, setSkinClasses] = useState(null);
55047
55105
  const [skinStyle, setSkinStyle] = useState(null);
55048
55106
  useEffect(() => {
55107
+ let isMounted = true;
55049
55108
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
55109
+ if (!isMounted) return;
55050
55110
  setSkinClasses(resolveVideoClasses(skin));
55051
55111
  setSkinStyle(getSkinStyleObject(skin));
55112
+ }).catch(() => {
55113
+ if (!isMounted) return;
55114
+ setSkinClasses(null);
55115
+ setSkinStyle(null);
55052
55116
  });
55117
+ return () => {
55118
+ isMounted = false;
55119
+ };
55053
55120
  }, []);
55054
55121
  const handleVideoClick = () => {
55055
55122
  if (onVideoClick) {
@@ -55228,10 +55295,19 @@ function HeroConversionVideoPlay({
55228
55295
  const [skinClasses, setSkinClasses] = useState(null);
55229
55296
  const [skinStyle, setSkinStyle] = useState(null);
55230
55297
  useEffect(() => {
55298
+ let isMounted = true;
55231
55299
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
55300
+ if (!isMounted) return;
55232
55301
  setSkinClasses(resolveVideoClasses(skin));
55233
55302
  setSkinStyle(getSkinStyleObject(skin));
55303
+ }).catch(() => {
55304
+ if (!isMounted) return;
55305
+ setSkinClasses(null);
55306
+ setSkinStyle(null);
55234
55307
  });
55308
+ return () => {
55309
+ isMounted = false;
55310
+ };
55235
55311
  }, []);
55236
55312
  const renderActions = useMemo(() => {
55237
55313
  if (actionsSlot) return actionsSlot;
@@ -57035,10 +57111,19 @@ function HeroVideoDialogGradient({
57035
57111
  const [skinClasses, setSkinClasses] = useState(null);
57036
57112
  const [skinStyle, setSkinStyle] = useState(null);
57037
57113
  useEffect(() => {
57114
+ let isMounted = true;
57038
57115
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
57116
+ if (!isMounted) return;
57039
57117
  setSkinClasses(resolveVideoClasses(skin));
57040
57118
  setSkinStyle(getSkinStyleObject(skin));
57119
+ }).catch(() => {
57120
+ if (!isMounted) return;
57121
+ setSkinClasses(null);
57122
+ setSkinStyle(null);
57041
57123
  });
57124
+ return () => {
57125
+ isMounted = false;
57126
+ };
57042
57127
  }, []);
57043
57128
  const handleVideoClick = () => {
57044
57129
  if (onVideoClick) {
@@ -58038,10 +58123,19 @@ function HeroMentorshipVideoSplit({
58038
58123
  const [skinClasses, setSkinClasses] = useState(null);
58039
58124
  const [skinStyle, setSkinStyle] = useState(null);
58040
58125
  useEffect(() => {
58126
+ let isMounted = true;
58041
58127
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
58128
+ if (!isMounted) return;
58042
58129
  setSkinClasses(resolveVideoClasses(skin));
58043
58130
  setSkinStyle(getSkinStyleObject(skin));
58131
+ }).catch(() => {
58132
+ if (!isMounted) return;
58133
+ setSkinClasses(null);
58134
+ setSkinStyle(null);
58044
58135
  });
58136
+ return () => {
58137
+ isMounted = false;
58138
+ };
58045
58139
  }, []);
58046
58140
  const renderAction = useMemo(() => {
58047
58141
  if (actionSlot) return actionSlot;
@@ -58939,10 +59033,19 @@ function HeroCreativeStudioStacked({
58939
59033
  const [skinClasses, setSkinClasses] = useState(null);
58940
59034
  const [skinStyle, setSkinStyle] = useState(null);
58941
59035
  useEffect(() => {
59036
+ let isMounted = true;
58942
59037
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
59038
+ if (!isMounted) return;
58943
59039
  setSkinClasses(resolveVideoClasses(skin));
58944
59040
  setSkinStyle(getSkinStyleObject(skin));
59041
+ }).catch(() => {
59042
+ if (!isMounted) return;
59043
+ setSkinClasses(null);
59044
+ setSkinStyle(null);
58945
59045
  });
59046
+ return () => {
59047
+ isMounted = false;
59048
+ };
58946
59049
  }, []);
58947
59050
  const handleVideoClick = () => {
58948
59051
  if (onVideoClick) {
@@ -101243,7 +101346,7 @@ function LinkTreeBlock({
101243
101346
  "div",
101244
101347
  {
101245
101348
  className: cn(
101246
- "h-24 w-24 overflow-hidden rounded-full border-4 border-background bg-muted shadow-xl",
101349
+ "flex h-24 w-full max-w-72 items-center justify-center",
101247
101350
  avatarClassName
101248
101351
  ),
101249
101352
  children: resolvedAvatar && /* @__PURE__ */ jsx(
@@ -101251,7 +101354,7 @@ function LinkTreeBlock({
101251
101354
  {
101252
101355
  src: resolvedAvatar.src,
101253
101356
  alt: resolvedAvatar.alt,
101254
- className: "h-full w-full object-cover",
101357
+ className: "h-auto max-h-24 w-auto max-w-full object-contain",
101255
101358
  optixFlowConfig
101256
101359
  }
101257
101360
  )
@@ -101704,7 +101807,7 @@ function LinkPageMinimalProfile({
101704
101807
  "div",
101705
101808
  {
101706
101809
  className: cn(
101707
- "h-20 w-20 overflow-hidden rounded-full",
101810
+ "flex h-20 w-full max-w-56 items-center justify-center sm:h-24 sm:max-w-72",
101708
101811
  avatarClassName
101709
101812
  ),
101710
101813
  children: /* @__PURE__ */ jsx(
@@ -101712,7 +101815,7 @@ function LinkPageMinimalProfile({
101712
101815
  {
101713
101816
  src: resolvedAvatar.src,
101714
101817
  alt: resolvedAvatar.alt,
101715
- className: "h-full w-full object-cover",
101818
+ className: "h-auto max-h-20 w-auto max-w-full object-contain sm:max-h-24",
101716
101819
  optixFlowConfig
101717
101820
  }
101718
101821
  )
@@ -101976,7 +102079,7 @@ function LinkPageNewsletterSocial({
101976
102079
  "div",
101977
102080
  {
101978
102081
  className: cn(
101979
- "h-24 w-24 overflow-hidden rounded-full bg-muted ring-4 ring-background shadow-lg",
102082
+ "flex h-24 w-full max-w-72 items-center justify-center",
101980
102083
  avatarClassName
101981
102084
  ),
101982
102085
  children: /* @__PURE__ */ jsx(
@@ -101984,7 +102087,7 @@ function LinkPageNewsletterSocial({
101984
102087
  {
101985
102088
  src: resolvedAvatar.src,
101986
102089
  alt: resolvedAvatar.alt,
101987
- className: "h-full w-full object-cover",
102090
+ className: "h-auto max-h-24 w-auto max-w-full object-contain",
101988
102091
  optixFlowConfig
101989
102092
  }
101990
102093
  )
@@ -102300,7 +102403,7 @@ function LinkPageGridCards({
102300
102403
  "div",
102301
102404
  {
102302
102405
  className: cn(
102303
- "h-20 w-20 overflow-hidden rounded-2xl shadow-lg ring-2 ring-primary",
102406
+ "flex h-20 w-full max-w-56 items-center justify-center sm:h-24 sm:max-w-72",
102304
102407
  avatarClassName
102305
102408
  ),
102306
102409
  children: /* @__PURE__ */ jsx(
@@ -102308,7 +102411,7 @@ function LinkPageGridCards({
102308
102411
  {
102309
102412
  src: resolvedAvatar.src,
102310
102413
  alt: resolvedAvatar.alt,
102311
- className: "h-full w-full object-cover",
102414
+ className: "h-auto max-h-20 w-auto max-w-full object-contain sm:max-h-24",
102312
102415
  optixFlowConfig
102313
102416
  }
102314
102417
  )
@@ -102862,7 +102965,7 @@ function LinkPageBentoLayout({
102862
102965
  "div",
102863
102966
  {
102864
102967
  className: cn(
102865
- "h-20 w-20 overflow-hidden rounded-full ring-2 ring-neutral-200",
102968
+ "flex h-20 w-full max-w-56 items-center justify-center sm:h-24 sm:max-w-72",
102866
102969
  avatarClassName
102867
102970
  ),
102868
102971
  children: /* @__PURE__ */ jsx(
@@ -102870,7 +102973,7 @@ function LinkPageBentoLayout({
102870
102973
  {
102871
102974
  src: resolvedAvatar.src,
102872
102975
  alt: resolvedAvatar.alt,
102873
- className: "h-full w-full object-cover",
102976
+ className: "h-auto max-h-20 w-auto max-w-full object-contain sm:max-h-24",
102874
102977
  optixFlowConfig
102875
102978
  }
102876
102979
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.3.6",
3
+ "version": "3.3.8",
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",