@opensite/ui 3.2.7 → 3.2.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/badge.d.cts CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "outline" | "default" | "secondary" | "destructive" | null | undefined;
7
+ variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
10
10
  asChild?: boolean;
package/dist/badge.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "outline" | "default" | "secondary" | "destructive" | null | undefined;
7
+ variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
10
10
  asChild?: boolean;
@@ -658,20 +658,26 @@ function CommunityInitiatives({
658
658
  children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: category.id, children: category.title }, category.id))
659
659
  }
660
660
  ) }),
661
- /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
662
- TabsTrigger,
661
+ /* @__PURE__ */ jsxRuntime.jsx(
662
+ TabsList,
663
663
  {
664
- value: category.id,
665
- className: cn(
666
- "px-3 py-2.5 cursor-pointer",
667
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
668
- "hover:bg-muted hover:text-muted-foreground",
669
- "transition-all duration-500"
670
- ),
671
- children: category.title
672
- },
673
- category.id
674
- )) })
664
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
665
+ children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
666
+ TabsTrigger,
667
+ {
668
+ value: category.id,
669
+ className: cn(
670
+ "px-3 py-2.5 cursor-pointer",
671
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
672
+ "hover:bg-muted hover:text-muted-foreground",
673
+ "transition-all duration-500"
674
+ ),
675
+ children: category.title
676
+ },
677
+ category.id
678
+ ))
679
+ }
680
+ )
675
681
  ] }),
676
682
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "relative", children: currentCategory?.description }) }),
677
683
  categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -748,7 +754,7 @@ function CommunityInitiatives({
748
754
  )
749
755
  }
750
756
  ),
751
- /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
757
+ /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "mx-auto", children: initiative.title })
752
758
  ] })
753
759
  }
754
760
  )
@@ -824,29 +830,15 @@ function CommunityInitiatives({
824
830
  {
825
831
  className: cn(
826
832
  "mt-10 md:mt-24 p-6 md:p-16",
827
- "text-center flex flex-col items-center",
828
- "bg-muted text-muted-foreground",
833
+ "text-center flex flex-col items-center justify-center gap-6",
834
+ "bg-card text-card-foreground",
829
835
  "rounded-2xl shadow-lg",
830
836
  ctaClassName
831
837
  ),
832
838
  children: [
833
- ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx(
834
- "div",
835
- {
836
- className: cn(
837
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
838
- ),
839
- children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
840
- }
841
- ),
842
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
843
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
844
- "p",
845
- {
846
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
847
- children: ctaDescription
848
- }
849
- ) : ctaDescription),
839
+ ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: ctaBadgeText }) }),
840
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
841
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
850
842
  /* @__PURE__ */ jsxRuntime.jsx(
851
843
  BlockActions,
852
844
  {
@@ -636,20 +636,26 @@ function CommunityInitiatives({
636
636
  children: categories.map((category) => /* @__PURE__ */ jsx("option", { value: category.id, children: category.title }, category.id))
637
637
  }
638
638
  ) }),
639
- /* @__PURE__ */ jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsx(
640
- TabsTrigger,
639
+ /* @__PURE__ */ jsx(
640
+ TabsList,
641
641
  {
642
- value: category.id,
643
- className: cn(
644
- "px-3 py-2.5 cursor-pointer",
645
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
646
- "hover:bg-muted hover:text-muted-foreground",
647
- "transition-all duration-500"
648
- ),
649
- children: category.title
650
- },
651
- category.id
652
- )) })
642
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
643
+ children: categories.map((category) => /* @__PURE__ */ jsx(
644
+ TabsTrigger,
645
+ {
646
+ value: category.id,
647
+ className: cn(
648
+ "px-3 py-2.5 cursor-pointer",
649
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
650
+ "hover:bg-muted hover:text-muted-foreground",
651
+ "transition-all duration-500"
652
+ ),
653
+ children: category.title
654
+ },
655
+ category.id
656
+ ))
657
+ }
658
+ )
653
659
  ] }),
654
660
  /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: "relative", children: currentCategory?.description }) }),
655
661
  categories.map((category) => /* @__PURE__ */ jsx(
@@ -726,7 +732,7 @@ function CommunityInitiatives({
726
732
  )
727
733
  }
728
734
  ),
729
- /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
735
+ /* @__PURE__ */ jsx(Badge, { className: "mx-auto", children: initiative.title })
730
736
  ] })
731
737
  }
732
738
  )
@@ -802,29 +808,15 @@ function CommunityInitiatives({
802
808
  {
803
809
  className: cn(
804
810
  "mt-10 md:mt-24 p-6 md:p-16",
805
- "text-center flex flex-col items-center",
806
- "bg-muted text-muted-foreground",
811
+ "text-center flex flex-col items-center justify-center gap-6",
812
+ "bg-card text-card-foreground",
807
813
  "rounded-2xl shadow-lg",
808
814
  ctaClassName
809
815
  ),
810
816
  children: [
811
- ctaBadgeText && /* @__PURE__ */ jsx(
812
- "div",
813
- {
814
- className: cn(
815
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
816
- ),
817
- children: /* @__PURE__ */ jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
818
- }
819
- ),
820
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
821
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx(
822
- "p",
823
- {
824
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
825
- children: ctaDescription
826
- }
827
- ) : ctaDescription),
817
+ ctaBadgeText && /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsx(Badge, { children: ctaBadgeText }) }),
818
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
819
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
828
820
  /* @__PURE__ */ jsx(
829
821
  BlockActions,
830
822
  {
@@ -2273,20 +2273,26 @@ function CommunityInitiatives({
2273
2273
  children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: category.id, children: category.title }, category.id))
2274
2274
  }
2275
2275
  ) }),
2276
- /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
2277
- TabsTrigger,
2276
+ /* @__PURE__ */ jsxRuntime.jsx(
2277
+ TabsList,
2278
2278
  {
2279
- value: category.id,
2280
- className: cn(
2281
- "px-3 py-2.5 cursor-pointer",
2282
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2283
- "hover:bg-muted hover:text-muted-foreground",
2284
- "transition-all duration-500"
2285
- ),
2286
- children: category.title
2287
- },
2288
- category.id
2289
- )) })
2279
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
2280
+ children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
2281
+ TabsTrigger,
2282
+ {
2283
+ value: category.id,
2284
+ className: cn(
2285
+ "px-3 py-2.5 cursor-pointer",
2286
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2287
+ "hover:bg-muted hover:text-muted-foreground",
2288
+ "transition-all duration-500"
2289
+ ),
2290
+ children: category.title
2291
+ },
2292
+ category.id
2293
+ ))
2294
+ }
2295
+ )
2290
2296
  ] }),
2291
2297
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "relative", children: currentCategory?.description }) }),
2292
2298
  categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -2363,7 +2369,7 @@ function CommunityInitiatives({
2363
2369
  )
2364
2370
  }
2365
2371
  ),
2366
- /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
2372
+ /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "mx-auto", children: initiative.title })
2367
2373
  ] })
2368
2374
  }
2369
2375
  )
@@ -2439,29 +2445,15 @@ function CommunityInitiatives({
2439
2445
  {
2440
2446
  className: cn(
2441
2447
  "mt-10 md:mt-24 p-6 md:p-16",
2442
- "text-center flex flex-col items-center",
2443
- "bg-muted text-muted-foreground",
2448
+ "text-center flex flex-col items-center justify-center gap-6",
2449
+ "bg-card text-card-foreground",
2444
2450
  "rounded-2xl shadow-lg",
2445
2451
  ctaClassName
2446
2452
  ),
2447
2453
  children: [
2448
- ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx(
2449
- "div",
2450
- {
2451
- className: cn(
2452
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
2453
- ),
2454
- children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
2455
- }
2456
- ),
2457
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2458
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
2459
- "p",
2460
- {
2461
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
2462
- children: ctaDescription
2463
- }
2464
- ) : ctaDescription),
2454
+ ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: ctaBadgeText }) }),
2455
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2456
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
2465
2457
  /* @__PURE__ */ jsxRuntime.jsx(
2466
2458
  BlockActions,
2467
2459
  {
@@ -2250,20 +2250,26 @@ function CommunityInitiatives({
2250
2250
  children: categories.map((category) => /* @__PURE__ */ jsx("option", { value: category.id, children: category.title }, category.id))
2251
2251
  }
2252
2252
  ) }),
2253
- /* @__PURE__ */ jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsx(
2254
- TabsTrigger,
2253
+ /* @__PURE__ */ jsx(
2254
+ TabsList,
2255
2255
  {
2256
- value: category.id,
2257
- className: cn(
2258
- "px-3 py-2.5 cursor-pointer",
2259
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2260
- "hover:bg-muted hover:text-muted-foreground",
2261
- "transition-all duration-500"
2262
- ),
2263
- children: category.title
2264
- },
2265
- category.id
2266
- )) })
2256
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
2257
+ children: categories.map((category) => /* @__PURE__ */ jsx(
2258
+ TabsTrigger,
2259
+ {
2260
+ value: category.id,
2261
+ className: cn(
2262
+ "px-3 py-2.5 cursor-pointer",
2263
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2264
+ "hover:bg-muted hover:text-muted-foreground",
2265
+ "transition-all duration-500"
2266
+ ),
2267
+ children: category.title
2268
+ },
2269
+ category.id
2270
+ ))
2271
+ }
2272
+ )
2267
2273
  ] }),
2268
2274
  /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: "relative", children: currentCategory?.description }) }),
2269
2275
  categories.map((category) => /* @__PURE__ */ jsx(
@@ -2340,7 +2346,7 @@ function CommunityInitiatives({
2340
2346
  )
2341
2347
  }
2342
2348
  ),
2343
- /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
2349
+ /* @__PURE__ */ jsx(Badge, { className: "mx-auto", children: initiative.title })
2344
2350
  ] })
2345
2351
  }
2346
2352
  )
@@ -2416,29 +2422,15 @@ function CommunityInitiatives({
2416
2422
  {
2417
2423
  className: cn(
2418
2424
  "mt-10 md:mt-24 p-6 md:p-16",
2419
- "text-center flex flex-col items-center",
2420
- "bg-muted text-muted-foreground",
2425
+ "text-center flex flex-col items-center justify-center gap-6",
2426
+ "bg-card text-card-foreground",
2421
2427
  "rounded-2xl shadow-lg",
2422
2428
  ctaClassName
2423
2429
  ),
2424
2430
  children: [
2425
- ctaBadgeText && /* @__PURE__ */ jsx(
2426
- "div",
2427
- {
2428
- className: cn(
2429
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
2430
- ),
2431
- children: /* @__PURE__ */ jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
2432
- }
2433
- ),
2434
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2435
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx(
2436
- "p",
2437
- {
2438
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
2439
- children: ctaDescription
2440
- }
2441
- ) : ctaDescription),
2431
+ ctaBadgeText && /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsx(Badge, { children: ctaBadgeText }) }),
2432
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2433
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
2442
2434
  /* @__PURE__ */ jsx(
2443
2435
  BlockActions,
2444
2436
  {
package/dist/index.cjs CHANGED
@@ -2334,20 +2334,26 @@ function CommunityInitiatives({
2334
2334
  children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: category.id, children: category.title }, category.id))
2335
2335
  }
2336
2336
  ) }),
2337
- /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
2338
- TabsTrigger,
2337
+ /* @__PURE__ */ jsxRuntime.jsx(
2338
+ TabsList,
2339
2339
  {
2340
- value: category.id,
2341
- className: cn(
2342
- "px-3 py-2.5 cursor-pointer",
2343
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2344
- "hover:bg-muted hover:text-muted-foreground",
2345
- "transition-all duration-500"
2346
- ),
2347
- children: category.title
2348
- },
2349
- category.id
2350
- )) })
2340
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
2341
+ children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
2342
+ TabsTrigger,
2343
+ {
2344
+ value: category.id,
2345
+ className: cn(
2346
+ "px-3 py-2.5 cursor-pointer",
2347
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2348
+ "hover:bg-muted hover:text-muted-foreground",
2349
+ "transition-all duration-500"
2350
+ ),
2351
+ children: category.title
2352
+ },
2353
+ category.id
2354
+ ))
2355
+ }
2356
+ )
2351
2357
  ] }),
2352
2358
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "relative", children: currentCategory?.description }) }),
2353
2359
  categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -2424,7 +2430,7 @@ function CommunityInitiatives({
2424
2430
  )
2425
2431
  }
2426
2432
  ),
2427
- /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
2433
+ /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "mx-auto", children: initiative.title })
2428
2434
  ] })
2429
2435
  }
2430
2436
  )
@@ -2500,29 +2506,15 @@ function CommunityInitiatives({
2500
2506
  {
2501
2507
  className: cn(
2502
2508
  "mt-10 md:mt-24 p-6 md:p-16",
2503
- "text-center flex flex-col items-center",
2504
- "bg-muted text-muted-foreground",
2509
+ "text-center flex flex-col items-center justify-center gap-6",
2510
+ "bg-card text-card-foreground",
2505
2511
  "rounded-2xl shadow-lg",
2506
2512
  ctaClassName
2507
2513
  ),
2508
2514
  children: [
2509
- ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx(
2510
- "div",
2511
- {
2512
- className: cn(
2513
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
2514
- ),
2515
- children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
2516
- }
2517
- ),
2518
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2519
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
2520
- "p",
2521
- {
2522
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
2523
- children: ctaDescription
2524
- }
2525
- ) : ctaDescription),
2515
+ ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: ctaBadgeText }) }),
2516
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2517
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
2526
2518
  /* @__PURE__ */ jsxRuntime.jsx(
2527
2519
  BlockActions,
2528
2520
  {
package/dist/index.js CHANGED
@@ -2312,20 +2312,26 @@ function CommunityInitiatives({
2312
2312
  children: categories.map((category) => /* @__PURE__ */ jsx("option", { value: category.id, children: category.title }, category.id))
2313
2313
  }
2314
2314
  ) }),
2315
- /* @__PURE__ */ jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsx(
2316
- TabsTrigger,
2315
+ /* @__PURE__ */ jsx(
2316
+ TabsList,
2317
2317
  {
2318
- value: category.id,
2319
- className: cn(
2320
- "px-3 py-2.5 cursor-pointer",
2321
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2322
- "hover:bg-muted hover:text-muted-foreground",
2323
- "transition-all duration-500"
2324
- ),
2325
- children: category.title
2326
- },
2327
- category.id
2328
- )) })
2318
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
2319
+ children: categories.map((category) => /* @__PURE__ */ jsx(
2320
+ TabsTrigger,
2321
+ {
2322
+ value: category.id,
2323
+ className: cn(
2324
+ "px-3 py-2.5 cursor-pointer",
2325
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2326
+ "hover:bg-muted hover:text-muted-foreground",
2327
+ "transition-all duration-500"
2328
+ ),
2329
+ children: category.title
2330
+ },
2331
+ category.id
2332
+ ))
2333
+ }
2334
+ )
2329
2335
  ] }),
2330
2336
  /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: "relative", children: currentCategory?.description }) }),
2331
2337
  categories.map((category) => /* @__PURE__ */ jsx(
@@ -2402,7 +2408,7 @@ function CommunityInitiatives({
2402
2408
  )
2403
2409
  }
2404
2410
  ),
2405
- /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
2411
+ /* @__PURE__ */ jsx(Badge, { className: "mx-auto", children: initiative.title })
2406
2412
  ] })
2407
2413
  }
2408
2414
  )
@@ -2478,29 +2484,15 @@ function CommunityInitiatives({
2478
2484
  {
2479
2485
  className: cn(
2480
2486
  "mt-10 md:mt-24 p-6 md:p-16",
2481
- "text-center flex flex-col items-center",
2482
- "bg-muted text-muted-foreground",
2487
+ "text-center flex flex-col items-center justify-center gap-6",
2488
+ "bg-card text-card-foreground",
2483
2489
  "rounded-2xl shadow-lg",
2484
2490
  ctaClassName
2485
2491
  ),
2486
2492
  children: [
2487
- ctaBadgeText && /* @__PURE__ */ jsx(
2488
- "div",
2489
- {
2490
- className: cn(
2491
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
2492
- ),
2493
- children: /* @__PURE__ */ jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
2494
- }
2495
- ),
2496
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2497
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx(
2498
- "p",
2499
- {
2500
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
2501
- children: ctaDescription
2502
- }
2503
- ) : ctaDescription),
2493
+ ctaBadgeText && /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsx(Badge, { children: ctaBadgeText }) }),
2494
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2495
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
2504
2496
  /* @__PURE__ */ jsx(
2505
2497
  BlockActions,
2506
2498
  {
@@ -432,7 +432,7 @@ function ProcessNumberedServices({
432
432
  serviceBadgeClassName,
433
433
  capabilitiesClassName,
434
434
  background,
435
- spacing = "py-6 md:py-32",
435
+ spacing = "md",
436
436
  pattern,
437
437
  patternOpacity,
438
438
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
@@ -411,7 +411,7 @@ function ProcessNumberedServices({
411
411
  serviceBadgeClassName,
412
412
  capabilitiesClassName,
413
413
  background,
414
- spacing = "py-6 md:py-32",
414
+ spacing = "md",
415
415
  pattern,
416
416
  patternOpacity,
417
417
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
@@ -416,6 +416,70 @@ var Section = React__namespace.default.forwardRef(
416
416
  }
417
417
  );
418
418
  Section.displayName = "Section";
419
+ var MOBILE_CLASSES = {
420
+ "fit-left": "items-start md:items-center",
421
+ "fit-center": "items-center",
422
+ "fit-right": "items-end md:items-center",
423
+ "full-left": "items-stretch md:items-center",
424
+ "full-center": "items-stretch md:items-center",
425
+ "full-right": "items-stretch md:items-center"
426
+ };
427
+ function BlockActions({
428
+ mobileConfig,
429
+ actionsClassName,
430
+ verticalSpacing = "mt-4 md:mt-8",
431
+ actions,
432
+ actionsSlot
433
+ }) {
434
+ const width = mobileConfig?.width ?? "full";
435
+ const position = mobileConfig?.position ?? "center";
436
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
437
+ if (actionsSlot) {
438
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
439
+ } else if (actions && actions?.length > 0) {
440
+ return /* @__PURE__ */ jsxRuntime.jsx(
441
+ "div",
442
+ {
443
+ className: cn(
444
+ "flex flex-col md:flex-row flex-wrap gap-4",
445
+ mobileLayoutClass,
446
+ actionsClassName,
447
+ verticalSpacing
448
+ ),
449
+ children: actions.map((action, index) => /* @__PURE__ */ jsxRuntime.jsx(ActionComponent, { action }, index))
450
+ }
451
+ );
452
+ } else {
453
+ return null;
454
+ }
455
+ }
456
+ function ActionComponent({ action }) {
457
+ const {
458
+ label,
459
+ icon,
460
+ iconAfter,
461
+ children,
462
+ href,
463
+ onClick,
464
+ className: actionClassName,
465
+ ...pressableProps
466
+ } = action;
467
+ return /* @__PURE__ */ jsxRuntime.jsx(
468
+ pressable.Pressable,
469
+ {
470
+ href,
471
+ onClick,
472
+ asButton: action.asButton ?? true,
473
+ className: actionClassName,
474
+ ...pressableProps,
475
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
476
+ icon,
477
+ label,
478
+ iconAfter
479
+ ] })
480
+ }
481
+ );
482
+ }
419
483
  var CornerIllustration = (props) => {
420
484
  return /* @__PURE__ */ jsxRuntime.jsxs(
421
485
  "svg",
@@ -469,47 +533,11 @@ function ProcessStickySteps({
469
533
  stepsClassName,
470
534
  stepItemClassName,
471
535
  background,
472
- spacing = "py-6 md:py-32",
536
+ spacing = "lg",
473
537
  pattern,
474
538
  patternOpacity,
475
539
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
476
540
  }) {
477
- const renderActions = React.useMemo(() => {
478
- return () => {
479
- if (actionsSlot) return actionsSlot;
480
- if (!actions?.length) return null;
481
- return /* @__PURE__ */ jsxRuntime.jsx(
482
- "div",
483
- {
484
- className: cn("flex flex-wrap items-center gap-2", actionsClassName),
485
- children: actions.map((action, index) => {
486
- const {
487
- label,
488
- icon,
489
- iconAfter,
490
- children,
491
- className: actionClassName,
492
- ...pressableProps
493
- } = action;
494
- return /* @__PURE__ */ jsxRuntime.jsx(
495
- pressable.Pressable,
496
- {
497
- asButton: true,
498
- className: cn(actionClassName),
499
- ...pressableProps,
500
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
501
- icon,
502
- label,
503
- iconAfter
504
- ] })
505
- },
506
- index
507
- );
508
- })
509
- }
510
- );
511
- };
512
- }, [actionsSlot, actions, actionsClassName]);
513
541
  const renderSteps = React.useMemo(() => {
514
542
  if (stepsSlot) return stepsSlot;
515
543
  if (!steps?.length) return null;
@@ -522,7 +550,15 @@ function ProcessStickySteps({
522
550
  step.className
523
551
  ),
524
552
  children: [
525
- /* @__PURE__ */ jsxRuntime.jsx(CornerIllustration, { className: "absolute top-4 right-0" }),
553
+ /* @__PURE__ */ jsxRuntime.jsx(
554
+ pressable.Pressable,
555
+ {
556
+ href: step.href,
557
+ "aria-label": typeof step.title === "string" ? step.title : "View step",
558
+ className: "absolute top-4 right-0 inline-flex",
559
+ children: /* @__PURE__ */ jsxRuntime.jsx(CornerIllustration, {})
560
+ }
561
+ ),
526
562
  /* @__PURE__ */ jsxRuntime.jsx(
527
563
  "div",
528
564
  {
@@ -534,8 +570,8 @@ function ProcessStickySteps({
534
570
  }
535
571
  ),
536
572
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
537
- step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: step.title })),
538
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "", children: step.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "", children: step.description }))
573
+ step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: step.href, className: "mb-4 block", children: /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) }) : /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: step.href, className: "mb-4 block", children: step.title })),
574
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: step.description }) : step.description)
539
575
  ] })
540
576
  ]
541
577
  },
@@ -573,7 +609,14 @@ function ProcessStickySteps({
573
609
  )
574
610
  ] }),
575
611
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
576
- renderActions()
612
+ /* @__PURE__ */ jsxRuntime.jsx(
613
+ BlockActions,
614
+ {
615
+ actions,
616
+ actionsSlot,
617
+ actionsClassName
618
+ }
619
+ )
577
620
  ] }),
578
621
  renderSteps
579
622
  ]
@@ -26,6 +26,10 @@ interface ProcessStickyStepItem {
26
26
  * Additional CSS classes for the step item
27
27
  */
28
28
  className?: string;
29
+ /**
30
+ * Optional URL
31
+ */
32
+ href?: string;
29
33
  }
30
34
  interface ProcessStickyStepsProps {
31
35
  /**
@@ -26,6 +26,10 @@ interface ProcessStickyStepItem {
26
26
  * Additional CSS classes for the step item
27
27
  */
28
28
  className?: string;
29
+ /**
30
+ * Optional URL
31
+ */
32
+ href?: string;
29
33
  }
30
34
  interface ProcessStickyStepsProps {
31
35
  /**
@@ -395,6 +395,70 @@ var Section = React__default.forwardRef(
395
395
  }
396
396
  );
397
397
  Section.displayName = "Section";
398
+ var MOBILE_CLASSES = {
399
+ "fit-left": "items-start md:items-center",
400
+ "fit-center": "items-center",
401
+ "fit-right": "items-end md:items-center",
402
+ "full-left": "items-stretch md:items-center",
403
+ "full-center": "items-stretch md:items-center",
404
+ "full-right": "items-stretch md:items-center"
405
+ };
406
+ function BlockActions({
407
+ mobileConfig,
408
+ actionsClassName,
409
+ verticalSpacing = "mt-4 md:mt-8",
410
+ actions,
411
+ actionsSlot
412
+ }) {
413
+ const width = mobileConfig?.width ?? "full";
414
+ const position = mobileConfig?.position ?? "center";
415
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
416
+ if (actionsSlot) {
417
+ return /* @__PURE__ */ jsx("div", { children: actionsSlot });
418
+ } else if (actions && actions?.length > 0) {
419
+ return /* @__PURE__ */ jsx(
420
+ "div",
421
+ {
422
+ className: cn(
423
+ "flex flex-col md:flex-row flex-wrap gap-4",
424
+ mobileLayoutClass,
425
+ actionsClassName,
426
+ verticalSpacing
427
+ ),
428
+ children: actions.map((action, index) => /* @__PURE__ */ jsx(ActionComponent, { action }, index))
429
+ }
430
+ );
431
+ } else {
432
+ return null;
433
+ }
434
+ }
435
+ function ActionComponent({ action }) {
436
+ const {
437
+ label,
438
+ icon,
439
+ iconAfter,
440
+ children,
441
+ href,
442
+ onClick,
443
+ className: actionClassName,
444
+ ...pressableProps
445
+ } = action;
446
+ return /* @__PURE__ */ jsx(
447
+ Pressable,
448
+ {
449
+ href,
450
+ onClick,
451
+ asButton: action.asButton ?? true,
452
+ className: actionClassName,
453
+ ...pressableProps,
454
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
455
+ icon,
456
+ label,
457
+ iconAfter
458
+ ] })
459
+ }
460
+ );
461
+ }
398
462
  var CornerIllustration = (props) => {
399
463
  return /* @__PURE__ */ jsxs(
400
464
  "svg",
@@ -448,47 +512,11 @@ function ProcessStickySteps({
448
512
  stepsClassName,
449
513
  stepItemClassName,
450
514
  background,
451
- spacing = "py-6 md:py-32",
515
+ spacing = "lg",
452
516
  pattern,
453
517
  patternOpacity,
454
518
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
455
519
  }) {
456
- const renderActions = useMemo(() => {
457
- return () => {
458
- if (actionsSlot) return actionsSlot;
459
- if (!actions?.length) return null;
460
- return /* @__PURE__ */ jsx(
461
- "div",
462
- {
463
- className: cn("flex flex-wrap items-center gap-2", actionsClassName),
464
- children: actions.map((action, index) => {
465
- const {
466
- label,
467
- icon,
468
- iconAfter,
469
- children,
470
- className: actionClassName,
471
- ...pressableProps
472
- } = action;
473
- return /* @__PURE__ */ jsx(
474
- Pressable,
475
- {
476
- asButton: true,
477
- className: cn(actionClassName),
478
- ...pressableProps,
479
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
480
- icon,
481
- label,
482
- iconAfter
483
- ] })
484
- },
485
- index
486
- );
487
- })
488
- }
489
- );
490
- };
491
- }, [actionsSlot, actions, actionsClassName]);
492
520
  const renderSteps = useMemo(() => {
493
521
  if (stepsSlot) return stepsSlot;
494
522
  if (!steps?.length) return null;
@@ -501,7 +529,15 @@ function ProcessStickySteps({
501
529
  step.className
502
530
  ),
503
531
  children: [
504
- /* @__PURE__ */ jsx(CornerIllustration, { className: "absolute top-4 right-0" }),
532
+ /* @__PURE__ */ jsx(
533
+ Pressable,
534
+ {
535
+ href: step.href,
536
+ "aria-label": typeof step.title === "string" ? step.title : "View step",
537
+ className: "absolute top-4 right-0 inline-flex",
538
+ children: /* @__PURE__ */ jsx(CornerIllustration, {})
539
+ }
540
+ ),
505
541
  /* @__PURE__ */ jsx(
506
542
  "div",
507
543
  {
@@ -513,8 +549,8 @@ function ProcessStickySteps({
513
549
  }
514
550
  ),
515
551
  /* @__PURE__ */ jsxs("div", { children: [
516
- step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-4 text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) : /* @__PURE__ */ jsx("div", { className: "mb-4", children: step.title })),
517
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: "", children: step.description }) : /* @__PURE__ */ jsx("div", { className: "", children: step.description }))
552
+ step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx(Pressable, { href: step.href, className: "mb-4 block", children: /* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) }) : /* @__PURE__ */ jsx(Pressable, { href: step.href, className: "mb-4 block", children: step.title })),
553
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { children: step.description }) : step.description)
518
554
  ] })
519
555
  ]
520
556
  },
@@ -552,7 +588,14 @@ function ProcessStickySteps({
552
588
  )
553
589
  ] }),
554
590
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
555
- renderActions()
591
+ /* @__PURE__ */ jsx(
592
+ BlockActions,
593
+ {
594
+ actions,
595
+ actionsSlot,
596
+ actionsClassName
597
+ }
598
+ )
556
599
  ] }),
557
600
  renderSteps
558
601
  ]
package/dist/registry.cjs CHANGED
@@ -2068,20 +2068,26 @@ function CommunityInitiatives({
2068
2068
  children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: category.id, children: category.title }, category.id))
2069
2069
  }
2070
2070
  ) }),
2071
- /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
2072
- TabsTrigger,
2071
+ /* @__PURE__ */ jsxRuntime.jsx(
2072
+ TabsList,
2073
2073
  {
2074
- value: category.id,
2075
- className: cn(
2076
- "px-3 py-2.5 cursor-pointer",
2077
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2078
- "hover:bg-muted hover:text-muted-foreground",
2079
- "transition-all duration-500"
2080
- ),
2081
- children: category.title
2082
- },
2083
- category.id
2084
- )) })
2074
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
2075
+ children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
2076
+ TabsTrigger,
2077
+ {
2078
+ value: category.id,
2079
+ className: cn(
2080
+ "px-3 py-2.5 cursor-pointer",
2081
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2082
+ "hover:bg-muted hover:text-muted-foreground",
2083
+ "transition-all duration-500"
2084
+ ),
2085
+ children: category.title
2086
+ },
2087
+ category.id
2088
+ ))
2089
+ }
2090
+ )
2085
2091
  ] }),
2086
2092
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "relative", children: currentCategory?.description }) }),
2087
2093
  categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -2158,7 +2164,7 @@ function CommunityInitiatives({
2158
2164
  )
2159
2165
  }
2160
2166
  ),
2161
- /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
2167
+ /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "mx-auto", children: initiative.title })
2162
2168
  ] })
2163
2169
  }
2164
2170
  )
@@ -2234,29 +2240,15 @@ function CommunityInitiatives({
2234
2240
  {
2235
2241
  className: cn(
2236
2242
  "mt-10 md:mt-24 p-6 md:p-16",
2237
- "text-center flex flex-col items-center",
2238
- "bg-muted text-muted-foreground",
2243
+ "text-center flex flex-col items-center justify-center gap-6",
2244
+ "bg-card text-card-foreground",
2239
2245
  "rounded-2xl shadow-lg",
2240
2246
  ctaClassName
2241
2247
  ),
2242
2248
  children: [
2243
- ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx(
2244
- "div",
2245
- {
2246
- className: cn(
2247
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
2248
- ),
2249
- children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
2250
- }
2251
- ),
2252
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2253
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
2254
- "p",
2255
- {
2256
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
2257
- children: ctaDescription
2258
- }
2259
- ) : ctaDescription),
2249
+ ctaBadgeText && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: ctaBadgeText }) }),
2250
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2251
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
2260
2252
  /* @__PURE__ */ jsxRuntime.jsx(
2261
2253
  BlockActions,
2262
2254
  {
@@ -78270,47 +78262,11 @@ function ProcessStickySteps({
78270
78262
  stepsClassName,
78271
78263
  stepItemClassName,
78272
78264
  background,
78273
- spacing = "py-6 md:py-32",
78265
+ spacing = "lg",
78274
78266
  pattern,
78275
78267
  patternOpacity,
78276
78268
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78277
78269
  }) {
78278
- const renderActions = React30.useMemo(() => {
78279
- return () => {
78280
- if (actionsSlot) return actionsSlot;
78281
- if (!actions?.length) return null;
78282
- return /* @__PURE__ */ jsxRuntime.jsx(
78283
- "div",
78284
- {
78285
- className: cn("flex flex-wrap items-center gap-2", actionsClassName),
78286
- children: actions.map((action, index) => {
78287
- const {
78288
- label,
78289
- icon,
78290
- iconAfter,
78291
- children,
78292
- className: actionClassName,
78293
- ...pressableProps
78294
- } = action;
78295
- return /* @__PURE__ */ jsxRuntime.jsx(
78296
- pressable.Pressable,
78297
- {
78298
- asButton: true,
78299
- className: cn(actionClassName),
78300
- ...pressableProps,
78301
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
78302
- icon,
78303
- label,
78304
- iconAfter
78305
- ] })
78306
- },
78307
- index
78308
- );
78309
- })
78310
- }
78311
- );
78312
- };
78313
- }, [actionsSlot, actions, actionsClassName]);
78314
78270
  const renderSteps = React30.useMemo(() => {
78315
78271
  if (stepsSlot) return stepsSlot;
78316
78272
  if (!steps?.length) return null;
@@ -78323,7 +78279,15 @@ function ProcessStickySteps({
78323
78279
  step.className
78324
78280
  ),
78325
78281
  children: [
78326
- /* @__PURE__ */ jsxRuntime.jsx(CornerIllustration, { className: "absolute top-4 right-0" }),
78282
+ /* @__PURE__ */ jsxRuntime.jsx(
78283
+ pressable.Pressable,
78284
+ {
78285
+ href: step.href,
78286
+ "aria-label": typeof step.title === "string" ? step.title : "View step",
78287
+ className: "absolute top-4 right-0 inline-flex",
78288
+ children: /* @__PURE__ */ jsxRuntime.jsx(CornerIllustration, {})
78289
+ }
78290
+ ),
78327
78291
  /* @__PURE__ */ jsxRuntime.jsx(
78328
78292
  "div",
78329
78293
  {
@@ -78335,8 +78299,8 @@ function ProcessStickySteps({
78335
78299
  }
78336
78300
  ),
78337
78301
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
78338
- step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: step.title })),
78339
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "", children: step.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "", children: step.description }))
78302
+ step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: step.href, className: "mb-4 block", children: /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) }) : /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: step.href, className: "mb-4 block", children: step.title })),
78303
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: step.description }) : step.description)
78340
78304
  ] })
78341
78305
  ]
78342
78306
  },
@@ -78374,7 +78338,14 @@ function ProcessStickySteps({
78374
78338
  )
78375
78339
  ] }),
78376
78340
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
78377
- renderActions()
78341
+ /* @__PURE__ */ jsxRuntime.jsx(
78342
+ BlockActions,
78343
+ {
78344
+ actions,
78345
+ actionsSlot,
78346
+ actionsClassName
78347
+ }
78348
+ )
78378
78349
  ] }),
78379
78350
  renderSteps
78380
78351
  ]
@@ -79562,7 +79533,7 @@ function ProcessNumberedServices({
79562
79533
  serviceBadgeClassName,
79563
79534
  capabilitiesClassName,
79564
79535
  background,
79565
- spacing = "py-6 md:py-32",
79536
+ spacing = "md",
79566
79537
  pattern,
79567
79538
  patternOpacity,
79568
79539
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
package/dist/registry.js CHANGED
@@ -2028,20 +2028,26 @@ function CommunityInitiatives({
2028
2028
  children: categories.map((category) => /* @__PURE__ */ jsx("option", { value: category.id, children: category.title }, category.id))
2029
2029
  }
2030
2030
  ) }),
2031
- /* @__PURE__ */ jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsx(
2032
- TabsTrigger,
2031
+ /* @__PURE__ */ jsx(
2032
+ TabsList,
2033
2033
  {
2034
- value: category.id,
2035
- className: cn(
2036
- "px-3 py-2.5 cursor-pointer",
2037
- "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2038
- "hover:bg-muted hover:text-muted-foreground",
2039
- "transition-all duration-500"
2040
- ),
2041
- children: category.title
2042
- },
2043
- category.id
2044
- )) })
2034
+ className: `hidden h-auto grid-cols-${categories.length} p-1 md:grid ring-2 ring-primary`,
2035
+ children: categories.map((category) => /* @__PURE__ */ jsx(
2036
+ TabsTrigger,
2037
+ {
2038
+ value: category.id,
2039
+ className: cn(
2040
+ "px-3 py-2.5 cursor-pointer",
2041
+ "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2042
+ "hover:bg-muted hover:text-muted-foreground",
2043
+ "transition-all duration-500"
2044
+ ),
2045
+ children: category.title
2046
+ },
2047
+ category.id
2048
+ ))
2049
+ }
2050
+ )
2045
2051
  ] }),
2046
2052
  /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: "relative", children: currentCategory?.description }) }),
2047
2053
  categories.map((category) => /* @__PURE__ */ jsx(
@@ -2118,7 +2124,7 @@ function CommunityInitiatives({
2118
2124
  )
2119
2125
  }
2120
2126
  ),
2121
- /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
2127
+ /* @__PURE__ */ jsx(Badge, { className: "mx-auto", children: initiative.title })
2122
2128
  ] })
2123
2129
  }
2124
2130
  )
@@ -2194,29 +2200,15 @@ function CommunityInitiatives({
2194
2200
  {
2195
2201
  className: cn(
2196
2202
  "mt-10 md:mt-24 p-6 md:p-16",
2197
- "text-center flex flex-col items-center",
2198
- "bg-muted text-muted-foreground",
2203
+ "text-center flex flex-col items-center justify-center gap-6",
2204
+ "bg-card text-card-foreground",
2199
2205
  "rounded-2xl shadow-lg",
2200
2206
  ctaClassName
2201
2207
  ),
2202
2208
  children: [
2203
- ctaBadgeText && /* @__PURE__ */ jsx(
2204
- "div",
2205
- {
2206
- className: cn(
2207
- "mb-8 inline-flex items-center justify-center rounded-full p-1"
2208
- ),
2209
- children: /* @__PURE__ */ jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
2210
- }
2211
- ),
2212
- ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2213
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx(
2214
- "p",
2215
- {
2216
- className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
2217
- children: ctaDescription
2218
- }
2219
- ) : ctaDescription),
2209
+ ctaBadgeText && /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center p-1"), children: /* @__PURE__ */ jsx(Badge, { children: ctaBadgeText }) }),
2210
+ ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("text-3xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
2211
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn(ctaDescriptionClassName, "text-balance"), children: ctaDescription }) : ctaDescription),
2220
2212
  /* @__PURE__ */ jsx(
2221
2213
  BlockActions,
2222
2214
  {
@@ -78230,47 +78222,11 @@ function ProcessStickySteps({
78230
78222
  stepsClassName,
78231
78223
  stepItemClassName,
78232
78224
  background,
78233
- spacing = "py-6 md:py-32",
78225
+ spacing = "lg",
78234
78226
  pattern,
78235
78227
  patternOpacity,
78236
78228
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78237
78229
  }) {
78238
- const renderActions = useMemo(() => {
78239
- return () => {
78240
- if (actionsSlot) return actionsSlot;
78241
- if (!actions?.length) return null;
78242
- return /* @__PURE__ */ jsx(
78243
- "div",
78244
- {
78245
- className: cn("flex flex-wrap items-center gap-2", actionsClassName),
78246
- children: actions.map((action, index) => {
78247
- const {
78248
- label,
78249
- icon,
78250
- iconAfter,
78251
- children,
78252
- className: actionClassName,
78253
- ...pressableProps
78254
- } = action;
78255
- return /* @__PURE__ */ jsx(
78256
- Pressable,
78257
- {
78258
- asButton: true,
78259
- className: cn(actionClassName),
78260
- ...pressableProps,
78261
- children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
78262
- icon,
78263
- label,
78264
- iconAfter
78265
- ] })
78266
- },
78267
- index
78268
- );
78269
- })
78270
- }
78271
- );
78272
- };
78273
- }, [actionsSlot, actions, actionsClassName]);
78274
78230
  const renderSteps = useMemo(() => {
78275
78231
  if (stepsSlot) return stepsSlot;
78276
78232
  if (!steps?.length) return null;
@@ -78283,7 +78239,15 @@ function ProcessStickySteps({
78283
78239
  step.className
78284
78240
  ),
78285
78241
  children: [
78286
- /* @__PURE__ */ jsx(CornerIllustration, { className: "absolute top-4 right-0" }),
78242
+ /* @__PURE__ */ jsx(
78243
+ Pressable,
78244
+ {
78245
+ href: step.href,
78246
+ "aria-label": typeof step.title === "string" ? step.title : "View step",
78247
+ className: "absolute top-4 right-0 inline-flex",
78248
+ children: /* @__PURE__ */ jsx(CornerIllustration, {})
78249
+ }
78250
+ ),
78287
78251
  /* @__PURE__ */ jsx(
78288
78252
  "div",
78289
78253
  {
@@ -78295,8 +78259,8 @@ function ProcessStickySteps({
78295
78259
  }
78296
78260
  ),
78297
78261
  /* @__PURE__ */ jsxs("div", { children: [
78298
- step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-4 text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) : /* @__PURE__ */ jsx("div", { className: "mb-4", children: step.title })),
78299
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: "", children: step.description }) : /* @__PURE__ */ jsx("div", { className: "", children: step.description }))
78262
+ step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx(Pressable, { href: step.href, className: "mb-4 block", children: /* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold tracking-tighter lg:text-3xl", children: step.title }) }) : /* @__PURE__ */ jsx(Pressable, { href: step.href, className: "mb-4 block", children: step.title })),
78263
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { children: step.description }) : step.description)
78300
78264
  ] })
78301
78265
  ]
78302
78266
  },
@@ -78334,7 +78298,14 @@ function ProcessStickySteps({
78334
78298
  )
78335
78299
  ] }),
78336
78300
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
78337
- renderActions()
78301
+ /* @__PURE__ */ jsx(
78302
+ BlockActions,
78303
+ {
78304
+ actions,
78305
+ actionsSlot,
78306
+ actionsClassName
78307
+ }
78308
+ )
78338
78309
  ] }),
78339
78310
  renderSteps
78340
78311
  ]
@@ -79522,7 +79493,7 @@ function ProcessNumberedServices({
79522
79493
  serviceBadgeClassName,
79523
79494
  capabilitiesClassName,
79524
79495
  background,
79525
- spacing = "py-6 md:py-32",
79496
+ spacing = "md",
79526
79497
  pattern,
79527
79498
  patternOpacity,
79528
79499
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.2.7",
3
+ "version": "3.2.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",