@opensite/ui 1.5.4 → 1.5.5

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.
@@ -1786,7 +1786,7 @@ function FooterNewsletterMinimal({
1786
1786
  ] })
1787
1787
  ] }),
1788
1788
  /* @__PURE__ */ jsxs("div", { className: cn("mt-20 flex flex-col justify-between gap-15 lg:flex-row", newsletterSectionClassName), children: [
1789
- /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
1789
+ formConfig?.token && /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
1790
1790
  newsletterLabel && /* @__PURE__ */ jsx("p", { children: newsletterLabel }),
1791
1791
  /* @__PURE__ */ jsxs(
1792
1792
  Form,
package/dist/index.cjs CHANGED
@@ -5445,7 +5445,7 @@ function FooterNewsletterMinimal({
5445
5445
  ] })
5446
5446
  ] }),
5447
5447
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-20 flex flex-col justify-between gap-15 lg:flex-row", newsletterSectionClassName), children: [
5448
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
5448
+ formConfig?.token && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
5449
5449
  newsletterLabel && /* @__PURE__ */ jsxRuntime.jsx("p", { children: newsletterLabel }),
5450
5450
  /* @__PURE__ */ jsxRuntime.jsxs(
5451
5451
  forms.Form,
package/dist/index.js CHANGED
@@ -5422,7 +5422,7 @@ function FooterNewsletterMinimal({
5422
5422
  ] })
5423
5423
  ] }),
5424
5424
  /* @__PURE__ */ jsxs("div", { className: cn("mt-20 flex flex-col justify-between gap-15 lg:flex-row", newsletterSectionClassName), children: [
5425
- /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
5425
+ formConfig?.token && /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
5426
5426
  newsletterLabel && /* @__PURE__ */ jsx("p", { children: newsletterLabel }),
5427
5427
  /* @__PURE__ */ jsxs(
5428
5428
  Form,
package/dist/registry.cjs CHANGED
@@ -24495,7 +24495,7 @@ function FooterNewsletterMinimal({
24495
24495
  ] })
24496
24496
  ] }),
24497
24497
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-20 flex flex-col justify-between gap-15 lg:flex-row", newsletterSectionClassName), children: [
24498
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
24498
+ formConfig?.token && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
24499
24499
  newsletterLabel && /* @__PURE__ */ jsxRuntime.jsx("p", { children: newsletterLabel }),
24500
24500
  /* @__PURE__ */ jsxRuntime.jsxs(
24501
24501
  forms.Form,
@@ -27465,66 +27465,39 @@ function FeatureIntegrationCards({
27465
27465
  patternOpacity,
27466
27466
  patternClassName
27467
27467
  }) {
27468
- const renderIntegrationIcon = React52.useCallback((integration) => {
27469
- if (integration.iconSlot) return integration.iconSlot;
27470
- if (!integration.icon) return null;
27471
- return /* @__PURE__ */ jsxRuntime.jsx(
27472
- img.Img,
27473
- {
27474
- src: integration.icon,
27475
- alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
27476
- className: cn("h-auto w-7", integration.iconClassName),
27477
- loading: "lazy",
27478
- optixFlowConfig
27479
- }
27480
- );
27481
- }, [optixFlowConfig]);
27482
- const renderLinkLabel = React52.useCallback((integration) => {
27483
- if (integration.linkLabelSlot) return integration.linkLabelSlot;
27484
- if (!integration.linkLabel) return null;
27485
- return /* @__PURE__ */ jsxRuntime.jsxs(
27486
- "span",
27487
- {
27488
- className: cn(
27489
- "flex items-center gap-1.5 rounded-full border px-3 py-2 text-sm font-medium transition-colors",
27490
- getBorderColor(background),
27491
- getAccentColor(background),
27492
- integration.linkLabelClassName
27493
- ),
27494
- children: [
27495
- integration.linkLabel,
27496
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 14 })
27497
- ]
27498
- }
27499
- );
27500
- }, [background]);
27468
+ const renderIntegrationIcon = React52.useCallback(
27469
+ (integration) => {
27470
+ if (integration.iconSlot) return integration.iconSlot;
27471
+ if (!integration.icon) return null;
27472
+ return /* @__PURE__ */ jsxRuntime.jsx(
27473
+ img.Img,
27474
+ {
27475
+ src: integration.icon,
27476
+ alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
27477
+ className: cn(
27478
+ "min-h-12 h-auto w-auto object-contain",
27479
+ integration.iconClassName
27480
+ ),
27481
+ loading: "lazy",
27482
+ optixFlowConfig
27483
+ }
27484
+ );
27485
+ },
27486
+ [optixFlowConfig]
27487
+ );
27501
27488
  const integrationsContent = React52.useMemo(() => {
27502
27489
  if (integrationsSlot) return integrationsSlot;
27503
27490
  if (!integrations || integrations.length === 0) return null;
27504
27491
  return integrations.map((integration, index) => {
27505
27492
  const iconContent = renderIntegrationIcon(integration);
27506
- const linkLabelContent = renderLinkLabel(integration);
27507
27493
  const cardContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
27508
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
27509
- iconContent && /* @__PURE__ */ jsxRuntime.jsx(
27510
- "span",
27511
- {
27512
- className: cn(
27513
- "grid size-12 shrink-0 place-content-center rounded-lg border bg-background/50",
27514
- getBorderColor(background)
27515
- ),
27516
- children: iconContent
27517
- }
27518
- ),
27519
- linkLabelContent
27520
- ] }),
27494
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start gap-2 justify-between", children: iconContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex"), children: iconContent }) }),
27521
27495
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
27522
27496
  integration.title && (typeof integration.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
27523
27497
  "h3",
27524
27498
  {
27525
27499
  className: cn(
27526
27500
  "font-semibold md:text-lg",
27527
- getTextColor(background),
27528
27501
  integration.titleClassName
27529
27502
  ),
27530
27503
  children: integration.title
@@ -27534,7 +27507,6 @@ function FeatureIntegrationCards({
27534
27507
  {
27535
27508
  className: cn(
27536
27509
  "font-semibold md:text-lg",
27537
- getTextColor(background),
27538
27510
  integration.titleClassName
27539
27511
  ),
27540
27512
  children: integration.title
@@ -27545,7 +27517,6 @@ function FeatureIntegrationCards({
27545
27517
  {
27546
27518
  className: cn(
27547
27519
  "text-sm leading-relaxed md:text-base",
27548
- getTextColor(background, "muted"),
27549
27520
  integration.descriptionClassName
27550
27521
  ),
27551
27522
  children: integration.description
@@ -27555,7 +27526,6 @@ function FeatureIntegrationCards({
27555
27526
  {
27556
27527
  className: cn(
27557
27528
  "text-sm leading-relaxed md:text-base",
27558
- getTextColor(background, "muted"),
27559
27529
  integration.descriptionClassName
27560
27530
  ),
27561
27531
  children: integration.description
@@ -27564,8 +27534,7 @@ function FeatureIntegrationCards({
27564
27534
  ] })
27565
27535
  ] });
27566
27536
  const cardClasses = cn(
27567
- "flex flex-col gap-5 rounded-xl border p-6 transition-all duration-300",
27568
- getBorderColor(background),
27537
+ "flex flex-col gap-5 rounded-xl border p-6 transition-all duration-300 bg-card card-text-foreground",
27569
27538
  "hover:shadow-lg",
27570
27539
  cardClassName,
27571
27540
  integration.className
@@ -27583,7 +27552,7 @@ function FeatureIntegrationCards({
27583
27552
  }
27584
27553
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cardClasses, children: cardContent }, index);
27585
27554
  });
27586
- }, [integrationsSlot, integrations, cardClassName, renderIntegrationIcon, renderLinkLabel, background]);
27555
+ }, [integrationsSlot, integrations, cardClassName, renderIntegrationIcon]);
27587
27556
  return /* @__PURE__ */ jsxRuntime.jsxs(
27588
27557
  Section,
27589
27558
  {
@@ -27595,11 +27564,47 @@ function FeatureIntegrationCards({
27595
27564
  className,
27596
27565
  containerClassName,
27597
27566
  children: [
27598
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto mb-12 flex max-w-3xl flex-col items-center gap-4 text-center", headerClassName), children: [
27599
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-semibold md:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-semibold md:text-4xl", titleClassName), children: title })),
27600
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }))
27601
- ] }),
27602
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-6 sm:grid-cols-2 lg:grid-cols-4", gridClassName), children: integrationsContent })
27567
+ /* @__PURE__ */ jsxRuntime.jsxs(
27568
+ "div",
27569
+ {
27570
+ className: cn(
27571
+ "mx-auto mb-12 flex max-w-3xl flex-col items-center gap-4 text-center",
27572
+ headerClassName
27573
+ ),
27574
+ children: [
27575
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
27576
+ "h2",
27577
+ {
27578
+ className: cn(
27579
+ "text-3xl font-semibold md:text-4xl",
27580
+ titleClassName
27581
+ ),
27582
+ children: title
27583
+ }
27584
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
27585
+ "div",
27586
+ {
27587
+ className: cn(
27588
+ "text-3xl font-semibold md:text-4xl",
27589
+ titleClassName
27590
+ ),
27591
+ children: title
27592
+ }
27593
+ )),
27594
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(descriptionClassName), children: description }))
27595
+ ]
27596
+ }
27597
+ ),
27598
+ /* @__PURE__ */ jsxRuntime.jsx(
27599
+ "div",
27600
+ {
27601
+ className: cn(
27602
+ "grid gap-6 sm:grid-cols-2 lg:grid-cols-4",
27603
+ gridClassName
27604
+ ),
27605
+ children: integrationsContent
27606
+ }
27607
+ )
27603
27608
  ]
27604
27609
  }
27605
27610
  );
@@ -44099,7 +44104,7 @@ function FooterNewsletterContact({
44099
44104
  className: cn(className),
44100
44105
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-10", children: [
44101
44106
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-x-16 gap-y-8 md:grid-cols-2 xl:grid-cols-4", children: [
44102
- (newsletterTitle || newsletterDescription || newsletterButtonText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
44107
+ formConfig?.token && (newsletterTitle || newsletterDescription || newsletterButtonText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
44103
44108
  newsletterTitle && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-3xl font-medium font-serif leading-none", children: newsletterTitle }),
44104
44109
  newsletterDescription && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-light leading-normal", children: newsletterDescription }),
44105
44110
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -44538,43 +44543,45 @@ function FooterAccordionSocial({
44538
44543
  optixFlowConfig
44539
44544
  }
44540
44545
  ),
44541
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
44542
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold", children: newsletterTitle }),
44543
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-80", children: newsletterDescription })
44544
- ] }),
44545
- /* @__PURE__ */ jsxRuntime.jsxs(
44546
- forms.Form,
44547
- {
44548
- form,
44549
- action: formConfig?.endpoint,
44550
- method: formMethod,
44551
- className: "flex gap-2",
44552
- children: [
44553
- /* @__PURE__ */ jsxRuntime.jsx(forms.Field, { name: "email", className: "flex-1", children: ({ field, meta }) => /* @__PURE__ */ jsxRuntime.jsx(
44554
- TextInput,
44555
- {
44556
- ...field,
44557
- type: "email",
44558
- placeholder: "Email Address",
44559
- error: meta.touched && !!meta.error,
44560
- className: "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
44561
- "aria-label": "Email Address"
44562
- }
44563
- ) }),
44564
- /* @__PURE__ */ jsxRuntime.jsx(
44565
- Pressable,
44566
- {
44567
- componentType: "button",
44568
- type: "submit",
44569
- className: "inline-flex h-10 items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground hover:bg-primary/90",
44570
- asButton: false,
44571
- disabled: form.isSubmitting,
44572
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
44573
- }
44574
- )
44575
- ]
44576
- }
44577
- )
44546
+ formConfig?.token && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
44547
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
44548
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold", children: newsletterTitle }),
44549
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-80", children: newsletterDescription })
44550
+ ] }),
44551
+ /* @__PURE__ */ jsxRuntime.jsxs(
44552
+ forms.Form,
44553
+ {
44554
+ form,
44555
+ action: formConfig?.endpoint,
44556
+ method: formMethod,
44557
+ className: "flex gap-2",
44558
+ children: [
44559
+ /* @__PURE__ */ jsxRuntime.jsx(forms.Field, { name: "email", className: "flex-1", children: ({ field, meta }) => /* @__PURE__ */ jsxRuntime.jsx(
44560
+ TextInput,
44561
+ {
44562
+ ...field,
44563
+ type: "email",
44564
+ placeholder: "Email Address",
44565
+ error: meta.touched && !!meta.error,
44566
+ className: "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
44567
+ "aria-label": "Email Address"
44568
+ }
44569
+ ) }),
44570
+ /* @__PURE__ */ jsxRuntime.jsx(
44571
+ Pressable,
44572
+ {
44573
+ componentType: "button",
44574
+ type: "submit",
44575
+ className: "inline-flex h-10 items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground hover:bg-primary/90",
44576
+ asButton: false,
44577
+ disabled: form.isSubmitting,
44578
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
44579
+ }
44580
+ )
44581
+ ]
44582
+ }
44583
+ )
44584
+ ] })
44578
44585
  ] }),
44579
44586
  footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-x-16 gap-y-8 lg:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
44580
44587
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-lg font-bold", children: section.title }),
package/dist/registry.js CHANGED
@@ -24455,7 +24455,7 @@ function FooterNewsletterMinimal({
24455
24455
  ] })
24456
24456
  ] }),
24457
24457
  /* @__PURE__ */ jsxs("div", { className: cn("mt-20 flex flex-col justify-between gap-15 lg:flex-row", newsletterSectionClassName), children: [
24458
- /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
24458
+ formConfig?.token && /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
24459
24459
  newsletterLabel && /* @__PURE__ */ jsx("p", { children: newsletterLabel }),
24460
24460
  /* @__PURE__ */ jsxs(
24461
24461
  Form,
@@ -27425,66 +27425,39 @@ function FeatureIntegrationCards({
27425
27425
  patternOpacity,
27426
27426
  patternClassName
27427
27427
  }) {
27428
- const renderIntegrationIcon = useCallback((integration) => {
27429
- if (integration.iconSlot) return integration.iconSlot;
27430
- if (!integration.icon) return null;
27431
- return /* @__PURE__ */ jsx(
27432
- Img,
27433
- {
27434
- src: integration.icon,
27435
- alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
27436
- className: cn("h-auto w-7", integration.iconClassName),
27437
- loading: "lazy",
27438
- optixFlowConfig
27439
- }
27440
- );
27441
- }, [optixFlowConfig]);
27442
- const renderLinkLabel = useCallback((integration) => {
27443
- if (integration.linkLabelSlot) return integration.linkLabelSlot;
27444
- if (!integration.linkLabel) return null;
27445
- return /* @__PURE__ */ jsxs(
27446
- "span",
27447
- {
27448
- className: cn(
27449
- "flex items-center gap-1.5 rounded-full border px-3 py-2 text-sm font-medium transition-colors",
27450
- getBorderColor(background),
27451
- getAccentColor(background),
27452
- integration.linkLabelClassName
27453
- ),
27454
- children: [
27455
- integration.linkLabel,
27456
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 14 })
27457
- ]
27458
- }
27459
- );
27460
- }, [background]);
27428
+ const renderIntegrationIcon = useCallback(
27429
+ (integration) => {
27430
+ if (integration.iconSlot) return integration.iconSlot;
27431
+ if (!integration.icon) return null;
27432
+ return /* @__PURE__ */ jsx(
27433
+ Img,
27434
+ {
27435
+ src: integration.icon,
27436
+ alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
27437
+ className: cn(
27438
+ "min-h-12 h-auto w-auto object-contain",
27439
+ integration.iconClassName
27440
+ ),
27441
+ loading: "lazy",
27442
+ optixFlowConfig
27443
+ }
27444
+ );
27445
+ },
27446
+ [optixFlowConfig]
27447
+ );
27461
27448
  const integrationsContent = useMemo(() => {
27462
27449
  if (integrationsSlot) return integrationsSlot;
27463
27450
  if (!integrations || integrations.length === 0) return null;
27464
27451
  return integrations.map((integration, index) => {
27465
27452
  const iconContent = renderIntegrationIcon(integration);
27466
- const linkLabelContent = renderLinkLabel(integration);
27467
27453
  const cardContent = /* @__PURE__ */ jsxs(Fragment$1, { children: [
27468
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
27469
- iconContent && /* @__PURE__ */ jsx(
27470
- "span",
27471
- {
27472
- className: cn(
27473
- "grid size-12 shrink-0 place-content-center rounded-lg border bg-background/50",
27474
- getBorderColor(background)
27475
- ),
27476
- children: iconContent
27477
- }
27478
- ),
27479
- linkLabelContent
27480
- ] }),
27454
+ /* @__PURE__ */ jsx("div", { className: "flex items-start gap-2 justify-between", children: iconContent && /* @__PURE__ */ jsx("div", { className: cn("flex"), children: iconContent }) }),
27481
27455
  /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
27482
27456
  integration.title && (typeof integration.title === "string" ? /* @__PURE__ */ jsx(
27483
27457
  "h3",
27484
27458
  {
27485
27459
  className: cn(
27486
27460
  "font-semibold md:text-lg",
27487
- getTextColor(background),
27488
27461
  integration.titleClassName
27489
27462
  ),
27490
27463
  children: integration.title
@@ -27494,7 +27467,6 @@ function FeatureIntegrationCards({
27494
27467
  {
27495
27468
  className: cn(
27496
27469
  "font-semibold md:text-lg",
27497
- getTextColor(background),
27498
27470
  integration.titleClassName
27499
27471
  ),
27500
27472
  children: integration.title
@@ -27505,7 +27477,6 @@ function FeatureIntegrationCards({
27505
27477
  {
27506
27478
  className: cn(
27507
27479
  "text-sm leading-relaxed md:text-base",
27508
- getTextColor(background, "muted"),
27509
27480
  integration.descriptionClassName
27510
27481
  ),
27511
27482
  children: integration.description
@@ -27515,7 +27486,6 @@ function FeatureIntegrationCards({
27515
27486
  {
27516
27487
  className: cn(
27517
27488
  "text-sm leading-relaxed md:text-base",
27518
- getTextColor(background, "muted"),
27519
27489
  integration.descriptionClassName
27520
27490
  ),
27521
27491
  children: integration.description
@@ -27524,8 +27494,7 @@ function FeatureIntegrationCards({
27524
27494
  ] })
27525
27495
  ] });
27526
27496
  const cardClasses = cn(
27527
- "flex flex-col gap-5 rounded-xl border p-6 transition-all duration-300",
27528
- getBorderColor(background),
27497
+ "flex flex-col gap-5 rounded-xl border p-6 transition-all duration-300 bg-card card-text-foreground",
27529
27498
  "hover:shadow-lg",
27530
27499
  cardClassName,
27531
27500
  integration.className
@@ -27543,7 +27512,7 @@ function FeatureIntegrationCards({
27543
27512
  }
27544
27513
  return /* @__PURE__ */ jsx("div", { className: cardClasses, children: cardContent }, index);
27545
27514
  });
27546
- }, [integrationsSlot, integrations, cardClassName, renderIntegrationIcon, renderLinkLabel, background]);
27515
+ }, [integrationsSlot, integrations, cardClassName, renderIntegrationIcon]);
27547
27516
  return /* @__PURE__ */ jsxs(
27548
27517
  Section,
27549
27518
  {
@@ -27555,11 +27524,47 @@ function FeatureIntegrationCards({
27555
27524
  className,
27556
27525
  containerClassName,
27557
27526
  children: [
27558
- /* @__PURE__ */ jsxs("div", { className: cn("mx-auto mb-12 flex max-w-3xl flex-col items-center gap-4 text-center", headerClassName), children: [
27559
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-semibold md:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-3xl font-semibold md:text-4xl", titleClassName), children: title })),
27560
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }))
27561
- ] }),
27562
- /* @__PURE__ */ jsx("div", { className: cn("grid gap-6 sm:grid-cols-2 lg:grid-cols-4", gridClassName), children: integrationsContent })
27527
+ /* @__PURE__ */ jsxs(
27528
+ "div",
27529
+ {
27530
+ className: cn(
27531
+ "mx-auto mb-12 flex max-w-3xl flex-col items-center gap-4 text-center",
27532
+ headerClassName
27533
+ ),
27534
+ children: [
27535
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
27536
+ "h2",
27537
+ {
27538
+ className: cn(
27539
+ "text-3xl font-semibold md:text-4xl",
27540
+ titleClassName
27541
+ ),
27542
+ children: title
27543
+ }
27544
+ ) : /* @__PURE__ */ jsx(
27545
+ "div",
27546
+ {
27547
+ className: cn(
27548
+ "text-3xl font-semibold md:text-4xl",
27549
+ titleClassName
27550
+ ),
27551
+ children: title
27552
+ }
27553
+ )),
27554
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn(descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn(descriptionClassName), children: description }))
27555
+ ]
27556
+ }
27557
+ ),
27558
+ /* @__PURE__ */ jsx(
27559
+ "div",
27560
+ {
27561
+ className: cn(
27562
+ "grid gap-6 sm:grid-cols-2 lg:grid-cols-4",
27563
+ gridClassName
27564
+ ),
27565
+ children: integrationsContent
27566
+ }
27567
+ )
27563
27568
  ]
27564
27569
  }
27565
27570
  );
@@ -44059,7 +44064,7 @@ function FooterNewsletterContact({
44059
44064
  className: cn(className),
44060
44065
  children: /* @__PURE__ */ jsxs("div", { className: "space-y-10", children: [
44061
44066
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-x-16 gap-y-8 md:grid-cols-2 xl:grid-cols-4", children: [
44062
- (newsletterTitle || newsletterDescription || newsletterButtonText) && /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
44067
+ formConfig?.token && (newsletterTitle || newsletterDescription || newsletterButtonText) && /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
44063
44068
  newsletterTitle && /* @__PURE__ */ jsx("h3", { className: "text-3xl font-medium font-serif leading-none", children: newsletterTitle }),
44064
44069
  newsletterDescription && /* @__PURE__ */ jsx("p", { className: "font-light leading-normal", children: newsletterDescription }),
44065
44070
  /* @__PURE__ */ jsxs(
@@ -44498,43 +44503,45 @@ function FooterAccordionSocial({
44498
44503
  optixFlowConfig
44499
44504
  }
44500
44505
  ),
44501
- /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
44502
- /* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold", children: newsletterTitle }),
44503
- /* @__PURE__ */ jsx("p", { className: "opacity-80", children: newsletterDescription })
44504
- ] }),
44505
- /* @__PURE__ */ jsxs(
44506
- Form,
44507
- {
44508
- form,
44509
- action: formConfig?.endpoint,
44510
- method: formMethod,
44511
- className: "flex gap-2",
44512
- children: [
44513
- /* @__PURE__ */ jsx(Field, { name: "email", className: "flex-1", children: ({ field, meta }) => /* @__PURE__ */ jsx(
44514
- TextInput,
44515
- {
44516
- ...field,
44517
- type: "email",
44518
- placeholder: "Email Address",
44519
- error: meta.touched && !!meta.error,
44520
- className: "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
44521
- "aria-label": "Email Address"
44522
- }
44523
- ) }),
44524
- /* @__PURE__ */ jsx(
44525
- Pressable,
44526
- {
44527
- componentType: "button",
44528
- type: "submit",
44529
- className: "inline-flex h-10 items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground hover:bg-primary/90",
44530
- asButton: false,
44531
- disabled: form.isSubmitting,
44532
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
44533
- }
44534
- )
44535
- ]
44536
- }
44537
- )
44506
+ formConfig?.token && /* @__PURE__ */ jsxs(Fragment$1, { children: [
44507
+ /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
44508
+ /* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold", children: newsletterTitle }),
44509
+ /* @__PURE__ */ jsx("p", { className: "opacity-80", children: newsletterDescription })
44510
+ ] }),
44511
+ /* @__PURE__ */ jsxs(
44512
+ Form,
44513
+ {
44514
+ form,
44515
+ action: formConfig?.endpoint,
44516
+ method: formMethod,
44517
+ className: "flex gap-2",
44518
+ children: [
44519
+ /* @__PURE__ */ jsx(Field, { name: "email", className: "flex-1", children: ({ field, meta }) => /* @__PURE__ */ jsx(
44520
+ TextInput,
44521
+ {
44522
+ ...field,
44523
+ type: "email",
44524
+ placeholder: "Email Address",
44525
+ error: meta.touched && !!meta.error,
44526
+ className: "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
44527
+ "aria-label": "Email Address"
44528
+ }
44529
+ ) }),
44530
+ /* @__PURE__ */ jsx(
44531
+ Pressable,
44532
+ {
44533
+ componentType: "button",
44534
+ type: "submit",
44535
+ className: "inline-flex h-10 items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground hover:bg-primary/90",
44536
+ asButton: false,
44537
+ disabled: form.isSubmitting,
44538
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
44539
+ }
44540
+ )
44541
+ ]
44542
+ }
44543
+ )
44544
+ ] })
44538
44545
  ] }),
44539
44546
  footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-x-16 gap-y-8 lg:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxs("div", { children: [
44540
44547
  /* @__PURE__ */ jsx("h3", { className: "mb-4 text-lg font-bold", children: section.title }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "1.5.4",
3
+ "version": "1.5.5",
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",