@opensite/ui 1.3.0 → 1.3.1

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
@@ -23945,7 +23945,7 @@ function FeatureIconGridBordered({
23945
23945
  "div",
23946
23946
  {
23947
23947
  className: cn(
23948
- "relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-3 md:border-l md:px-5",
23948
+ "relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-0 md:border-l md:px-5",
23949
23949
  cardClassName,
23950
23950
  feature.className
23951
23951
  ),
@@ -24817,7 +24817,7 @@ function FeatureNumberedCards({
24817
24817
  "span",
24818
24818
  {
24819
24819
  className: cn(
24820
- "absolute top-5 left-5 flex size-6 items-center justify-center rounded-sm bg-primary font-mono text-xs text-primary-foreground md:top-10 md:left-10",
24820
+ "absolute top-2 md:top-5 left-2 md:left-5 flex size-10 md:size-12 items-center justify-center rounded-md shadow-lg bg-primary text-sm md:text-md text-primary-foreground lg:top-10 lg:left-10 font-semibold",
24821
24821
  badgeClassName
24822
24822
  ),
24823
24823
  children: String(index + 1).padStart(2, "0")
@@ -25005,13 +25005,13 @@ function FeatureThreeColumnValues({
25005
25005
  values,
25006
25006
  valuesSlot,
25007
25007
  className,
25008
- containerClassName,
25008
+ containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
25009
25009
  labelClassName,
25010
25010
  titleClassName,
25011
25011
  gridClassName,
25012
25012
  cardClassName,
25013
25013
  background,
25014
- spacing = "py-6 md:py-32",
25014
+ spacing = "py-12 md:py-32",
25015
25015
  pattern,
25016
25016
  patternOpacity,
25017
25017
  patternClassName
@@ -25314,59 +25314,124 @@ function FeatureBadgeGridSix({
25314
25314
  );
25315
25315
  }
25316
25316
  function FeaturePatternGridLinks({
25317
+ title,
25318
+ description,
25319
+ titleClassName,
25320
+ descriptionClassName,
25321
+ headerClassName,
25317
25322
  features,
25318
25323
  featuresSlot,
25319
25324
  className,
25320
- containerClassName,
25325
+ spacing = "py-12 md:py-32",
25326
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
25321
25327
  gridClassName,
25322
25328
  cardClassName,
25323
25329
  background,
25324
- spacing,
25325
25330
  pattern,
25326
25331
  patternOpacity,
25327
25332
  patternClassName
25328
25333
  }) {
25329
- const renderFeatureIcon = useCallback((feature) => {
25330
- if (feature.icon) return feature.icon;
25331
- if (feature.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName, size: 24, className: feature.iconClassName });
25332
- return null;
25333
- }, []);
25334
- const renderFeatureLink = useCallback((feature) => {
25335
- if (feature.linkSlot) return feature.linkSlot;
25336
- if (!feature.link && !feature.linkLabel) return null;
25337
- const label = feature.linkLabel || (feature.link ? "Learn more" : null);
25338
- if (!label) return null;
25339
- return /* @__PURE__ */ jsxs(
25340
- Pressable,
25341
- {
25342
- href: feature.link,
25343
- className: cn("flex items-center gap-2 text-sm font-medium", feature.linkClassName),
25344
- children: [
25345
- label,
25346
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
25347
- ]
25348
- }
25349
- );
25350
- }, []);
25334
+ const renderFeatureIcon = useCallback(
25335
+ (feature) => {
25336
+ if (feature.icon) return feature.icon;
25337
+ if (feature.iconName)
25338
+ return /* @__PURE__ */ jsx(
25339
+ DynamicIcon,
25340
+ {
25341
+ name: feature.iconName,
25342
+ size: 24,
25343
+ className: feature.iconClassName
25344
+ }
25345
+ );
25346
+ return null;
25347
+ },
25348
+ []
25349
+ );
25350
+ const renderFeatureLink = useCallback(
25351
+ (feature) => {
25352
+ if (feature.linkSlot) return feature.linkSlot;
25353
+ if (!feature.link && !feature.linkLabel) return null;
25354
+ const label = feature.linkLabel || (feature.link ? "Learn more" : null);
25355
+ if (!label) return null;
25356
+ return /* @__PURE__ */ jsxs(
25357
+ Pressable,
25358
+ {
25359
+ href: feature.link,
25360
+ className: cn(
25361
+ "flex items-center gap-2 text-sm font-medium",
25362
+ feature.linkClassName
25363
+ ),
25364
+ children: [
25365
+ label,
25366
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
25367
+ ]
25368
+ }
25369
+ );
25370
+ },
25371
+ []
25372
+ );
25351
25373
  const featuresContent = useMemo$1(() => {
25352
25374
  if (featuresSlot) return featuresSlot;
25353
25375
  if (!features || features.length === 0) return null;
25354
25376
  return features.map((feature, index) => /* @__PURE__ */ jsxs(
25355
25377
  "div",
25356
25378
  {
25357
- className: cn("flex flex-col gap-10 rounded-lg border p-8", cardClassName, feature.className),
25379
+ className: cn(
25380
+ "flex flex-col gap-10 rounded-lg border p-8",
25381
+ cardClassName,
25382
+ feature.className
25383
+ ),
25358
25384
  children: [
25359
25385
  /* @__PURE__ */ jsxs("div", { children: [
25360
25386
  renderFeatureIcon(feature),
25361
- feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mt-6 mb-2 font-medium", feature.titleClassName), children: feature.title }) : /* @__PURE__ */ jsx("div", { className: cn("mt-6 mb-2 font-medium", feature.titleClassName), children: feature.title })),
25362
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm", getTextColor(background, "muted"), feature.descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsx("div", { className: cn("text-sm", getTextColor(background, "muted"), feature.descriptionClassName), children: feature.description }))
25387
+ feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx(
25388
+ "h3",
25389
+ {
25390
+ className: cn("mt-6 mb-2 font-medium", feature.titleClassName),
25391
+ children: feature.title
25392
+ }
25393
+ ) : /* @__PURE__ */ jsx(
25394
+ "div",
25395
+ {
25396
+ className: cn("mt-6 mb-2 font-medium", feature.titleClassName),
25397
+ children: feature.title
25398
+ }
25399
+ )),
25400
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx(
25401
+ "p",
25402
+ {
25403
+ className: cn(
25404
+ "text-sm",
25405
+ getTextColor(background, "muted"),
25406
+ feature.descriptionClassName
25407
+ ),
25408
+ children: feature.description
25409
+ }
25410
+ ) : /* @__PURE__ */ jsx(
25411
+ "div",
25412
+ {
25413
+ className: cn(
25414
+ "text-sm",
25415
+ getTextColor(background, "muted"),
25416
+ feature.descriptionClassName
25417
+ ),
25418
+ children: feature.description
25419
+ }
25420
+ ))
25363
25421
  ] }),
25364
25422
  renderFeatureLink(feature)
25365
25423
  ]
25366
25424
  },
25367
25425
  index
25368
25426
  ));
25369
- }, [featuresSlot, features, cardClassName, renderFeatureIcon, renderFeatureLink, background]);
25427
+ }, [
25428
+ featuresSlot,
25429
+ features,
25430
+ cardClassName,
25431
+ renderFeatureIcon,
25432
+ renderFeatureLink,
25433
+ background
25434
+ ]);
25370
25435
  return /* @__PURE__ */ jsx(
25371
25436
  Section,
25372
25437
  {
@@ -25377,7 +25442,55 @@ function FeaturePatternGridLinks({
25377
25442
  patternClassName,
25378
25443
  className,
25379
25444
  containerClassName,
25380
- children: /* @__PURE__ */ jsx("div", { className: cn("grid gap-6 md:grid-cols-2 lg:grid-cols-3", gridClassName), children: featuresContent })
25445
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
25446
+ title || description ? /* @__PURE__ */ jsxs(
25447
+ "div",
25448
+ {
25449
+ className: cn(
25450
+ "flex flex-col gap-4 md:gap-6 text-left",
25451
+ headerClassName
25452
+ ),
25453
+ children: [
25454
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
25455
+ "h2",
25456
+ {
25457
+ className: cn(
25458
+ "text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
25459
+ titleClassName
25460
+ ),
25461
+ children: title
25462
+ }
25463
+ ) : /* @__PURE__ */ jsx(
25464
+ "div",
25465
+ {
25466
+ className: cn(
25467
+ "text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
25468
+ titleClassName
25469
+ ),
25470
+ children: title
25471
+ }
25472
+ )),
25473
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-lg md:max-w-md", descriptionClassName), children: description }) : /* @__PURE__ */ jsx(
25474
+ "div",
25475
+ {
25476
+ className: cn("max-w-lg md:max-w-md", descriptionClassName),
25477
+ children: description
25478
+ }
25479
+ ))
25480
+ ]
25481
+ }
25482
+ ) : null,
25483
+ /* @__PURE__ */ jsx(
25484
+ "div",
25485
+ {
25486
+ className: cn(
25487
+ "grid gap-6 md:grid-cols-2 lg:grid-cols-3",
25488
+ gridClassName
25489
+ ),
25490
+ children: featuresContent
25491
+ }
25492
+ )
25493
+ ] })
25381
25494
  }
25382
25495
  );
25383
25496
  }
@@ -25662,7 +25775,14 @@ function FeatureUtilityCardsGrid({
25662
25775
  const renderLabelIcon = useMemo$1(() => {
25663
25776
  if (labelIcon) return labelIcon;
25664
25777
  if (labelIconName)
25665
- return /* @__PURE__ */ jsx(DynamicIcon, { name: labelIconName, size: 20, className: getAccentColor(background) });
25778
+ return /* @__PURE__ */ jsx(
25779
+ DynamicIcon,
25780
+ {
25781
+ name: labelIconName,
25782
+ size: 20,
25783
+ className: getAccentColor(background)
25784
+ }
25785
+ );
25666
25786
  return null;
25667
25787
  }, [labelIcon, labelIconName, background]);
25668
25788
  const learnMoreContent = useMemo$1(() => {
@@ -25759,10 +25879,19 @@ function FeatureUtilityCardsGrid({
25759
25879
  headerClassName
25760
25880
  ),
25761
25881
  children: [
25762
- (label || labelIcon || labelIconName) && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-1 ", labelClassName), children: [
25763
- renderLabelIcon,
25764
- label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { children: label }) : /* @__PURE__ */ jsx("div", { children: label }))
25765
- ] }),
25882
+ (label || labelIcon || labelIconName) && /* @__PURE__ */ jsxs(
25883
+ "div",
25884
+ {
25885
+ className: cn(
25886
+ "text-lg flex items-center gap-4",
25887
+ labelClassName
25888
+ ),
25889
+ children: [
25890
+ renderLabelIcon,
25891
+ label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { children: label }) : /* @__PURE__ */ jsx("div", { children: label }))
25892
+ ]
25893
+ }
25894
+ ),
25766
25895
  learnMoreContent
25767
25896
  ]
25768
25897
  }
@@ -26155,7 +26284,7 @@ function FeatureIconTabsContent({
26155
26284
  tabContentClassName,
26156
26285
  optixFlowConfig,
26157
26286
  background,
26158
- spacing = "py-6 md:py-32",
26287
+ spacing = "pt-14 pb-12 md:pt-32 md:pb-32",
26159
26288
  pattern,
26160
26289
  patternOpacity,
26161
26290
  patternClassName
@@ -26247,7 +26376,7 @@ function FeatureIconTabsContent({
26247
26376
  {
26248
26377
  value: tab.value,
26249
26378
  className: cn(
26250
- "flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border px-4 py-2.5 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
26379
+ "flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border pl-0 pr-4 md:pl-4 md:pr-4 py-2.5 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
26251
26380
  `data-[state=active]:${getBorderColor(background, "accent")}`,
26252
26381
  tabTriggerClassName,
26253
26382
  tab.className
@@ -26261,7 +26390,7 @@ function FeatureIconTabsContent({
26261
26390
  ))
26262
26391
  }
26263
26392
  ) }),
26264
- /* @__PURE__ */ jsx("div", { className: cn("py-6 lg:py-16", contentWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "relative", children: tabs.map((tab) => {
26393
+ /* @__PURE__ */ jsx("div", { className: cn("py-6 md:py-10", contentWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "p-4 md:p-8 bg-muted/50 rounded-2xl shadow-lg", children: tabs.map((tab) => {
26265
26394
  if (tab.contentSlot) {
26266
26395
  return /* @__PURE__ */ jsx(
26267
26396
  TabsContent,
@@ -26298,7 +26427,7 @@ function FeatureIconTabsContent({
26298
26427
  "h3",
26299
26428
  {
26300
26429
  className: cn(
26301
- "text-3xl font-semibold lg:text-5xl",
26430
+ "text-2xl font-semibold",
26302
26431
  content.titleClassName
26303
26432
  ),
26304
26433
  children: content.title
@@ -26307,7 +26436,7 @@ function FeatureIconTabsContent({
26307
26436
  "div",
26308
26437
  {
26309
26438
  className: cn(
26310
- "text-3xl font-semibold lg:text-5xl",
26439
+ "text-2xl font-semibold",
26311
26440
  content.titleClassName
26312
26441
  ),
26313
26442
  children: content.title
@@ -26379,7 +26508,7 @@ function FeatureIconTabsContent({
26379
26508
  "h1",
26380
26509
  {
26381
26510
  className: cn(
26382
- "max-w-2xl text-3xl font-semibold md:text-4xl text-balance",
26511
+ "max-w-4xl text-3xl font-semibold md:text-6xl text-balance",
26383
26512
  headingClassName
26384
26513
  ),
26385
26514
  children: heading
@@ -26388,7 +26517,7 @@ function FeatureIconTabsContent({
26388
26517
  "div",
26389
26518
  {
26390
26519
  className: cn(
26391
- "max-w-2xl text-3xl font-semibold md:text-4xl text-balance",
26520
+ "max-w-4xl text-3xl font-semibold md:text-6xl text-balance",
26392
26521
  headingClassName
26393
26522
  ),
26394
26523
  children: heading
@@ -26963,7 +27092,7 @@ function FeatureImageCardsThreeColumn({
26963
27092
  cardsSlot,
26964
27093
  className,
26965
27094
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
26966
- spacing = "py-6 md:py-32",
27095
+ spacing = "py-12 md:py-32",
26967
27096
  titleClassName,
26968
27097
  descriptionClassName,
26969
27098
  gridClassName,
@@ -27019,7 +27148,7 @@ function FeatureImageCardsThreeColumn({
27019
27148
  ),
27020
27149
  children: [
27021
27150
  renderImage(card, imageAlt),
27022
- /* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-0 md:translate-y-20 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
27151
+ /* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 md:translate-y-20 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
27023
27152
  /* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-4 md:p-6", children: [
27024
27153
  (card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxs(
27025
27154
  Badge,
@@ -27089,7 +27218,7 @@ function FeatureImageCardsThreeColumn({
27089
27218
  "h2",
27090
27219
  {
27091
27220
  className: cn(
27092
- "text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
27221
+ "text-2xl font-semibold text-balance md:text-3xl lg:text-4xl max-w-lg md:max-w-md",
27093
27222
  titleClassName
27094
27223
  ),
27095
27224
  children: title
@@ -27098,7 +27227,7 @@ function FeatureImageCardsThreeColumn({
27098
27227
  "div",
27099
27228
  {
27100
27229
  className: cn(
27101
- "text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
27230
+ "text-2xl font-semibold text-balance md:text-3xl lg:text-4xl max-w-lg md:max-w-md",
27102
27231
  titleClassName
27103
27232
  ),
27104
27233
  children: title
@@ -27618,8 +27747,8 @@ function FeatureCapabilitiesGrid({
27618
27747
  items,
27619
27748
  itemsSlot,
27620
27749
  className,
27621
- containerClassName = "px-4 sm:px-4 md:px-6 lg:px-8",
27622
- spacing = "py-6 md:py-32",
27750
+ containerClassName = "mx-auto w-full max-w-screen-lg md:max-w-screen-4xl relative z-10 px-6 sm:px-2 md:px-2 lg:px-2",
27751
+ spacing = "py-12 md:py-32",
27623
27752
  eyebrowClassName,
27624
27753
  headingClassName,
27625
27754
  gridClassName,
@@ -27646,7 +27775,7 @@ function FeatureCapabilitiesGrid({
27646
27775
  Card,
27647
27776
  {
27648
27777
  className: cn(
27649
- "group relative rounded-md overflow-visible border-border/10 bg-background/5 p-0 transition-colors duration-300 hover:border-border/20",
27778
+ "group relative rounded-md overflow-visible border-border/10 bg-card text-card-foreground p-0 transition-colors duration-300 hover:border-border/20",
27650
27779
  cardClassName,
27651
27780
  item.className
27652
27781
  ),
@@ -27664,7 +27793,7 @@ function FeatureCapabilitiesGrid({
27664
27793
  "div",
27665
27794
  {
27666
27795
  className: cn(
27667
- "flex h-10 w-10 items-center justify-center rounded-xl border border-border/15 bg-background/5",
27796
+ "flex h-10 w-10 items-center justify-center rounded-xl border ",
27668
27797
  item.iconClassName
27669
27798
  ),
27670
27799
  children: iconContent
@@ -27693,7 +27822,7 @@ function FeatureCapabilitiesGrid({
27693
27822
  "span",
27694
27823
  {
27695
27824
  className: cn(
27696
- "rounded-full border border-border/20 px-2 py-0.5 text-[10px] leading-none",
27825
+ "rounded-full border px-2 py-0.5 text-[10px] leading-none",
27697
27826
  item.badgeClassName
27698
27827
  ),
27699
27828
  children: item.badge
@@ -27738,7 +27867,6 @@ function FeatureCapabilitiesGrid({
27738
27867
  patternClassName,
27739
27868
  className,
27740
27869
  containerClassName,
27741
- containerMaxWidth: "lg",
27742
27870
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
27743
27871
  eyebrow || heading ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-4 md:space-y-6", children: [
27744
27872
  eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm tracking-widest", eyebrowClassName), children: eyebrow }) : /* @__PURE__ */ jsx(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
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",