@opensite/ui 3.2.7 → 3.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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;
@@ -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
@@ -78270,47 +78270,11 @@ function ProcessStickySteps({
78270
78270
  stepsClassName,
78271
78271
  stepItemClassName,
78272
78272
  background,
78273
- spacing = "py-6 md:py-32",
78273
+ spacing = "lg",
78274
78274
  pattern,
78275
78275
  patternOpacity,
78276
78276
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78277
78277
  }) {
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
78278
  const renderSteps = React30.useMemo(() => {
78315
78279
  if (stepsSlot) return stepsSlot;
78316
78280
  if (!steps?.length) return null;
@@ -78323,7 +78287,15 @@ function ProcessStickySteps({
78323
78287
  step.className
78324
78288
  ),
78325
78289
  children: [
78326
- /* @__PURE__ */ jsxRuntime.jsx(CornerIllustration, { className: "absolute top-4 right-0" }),
78290
+ /* @__PURE__ */ jsxRuntime.jsx(
78291
+ pressable.Pressable,
78292
+ {
78293
+ href: step.href,
78294
+ "aria-label": typeof step.title === "string" ? step.title : "View step",
78295
+ className: "absolute top-4 right-0 inline-flex",
78296
+ children: /* @__PURE__ */ jsxRuntime.jsx(CornerIllustration, {})
78297
+ }
78298
+ ),
78327
78299
  /* @__PURE__ */ jsxRuntime.jsx(
78328
78300
  "div",
78329
78301
  {
@@ -78335,8 +78307,8 @@ function ProcessStickySteps({
78335
78307
  }
78336
78308
  ),
78337
78309
  /* @__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 }))
78310
+ 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 })),
78311
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: step.description }) : step.description)
78340
78312
  ] })
78341
78313
  ]
78342
78314
  },
@@ -78374,7 +78346,14 @@ function ProcessStickySteps({
78374
78346
  )
78375
78347
  ] }),
78376
78348
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
78377
- renderActions()
78349
+ /* @__PURE__ */ jsxRuntime.jsx(
78350
+ BlockActions,
78351
+ {
78352
+ actions,
78353
+ actionsSlot,
78354
+ actionsClassName
78355
+ }
78356
+ )
78378
78357
  ] }),
78379
78358
  renderSteps
78380
78359
  ]
@@ -79562,7 +79541,7 @@ function ProcessNumberedServices({
79562
79541
  serviceBadgeClassName,
79563
79542
  capabilitiesClassName,
79564
79543
  background,
79565
- spacing = "py-6 md:py-32",
79544
+ spacing = "md",
79566
79545
  pattern,
79567
79546
  patternOpacity,
79568
79547
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
package/dist/registry.js CHANGED
@@ -78230,47 +78230,11 @@ function ProcessStickySteps({
78230
78230
  stepsClassName,
78231
78231
  stepItemClassName,
78232
78232
  background,
78233
- spacing = "py-6 md:py-32",
78233
+ spacing = "lg",
78234
78234
  pattern,
78235
78235
  patternOpacity,
78236
78236
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78237
78237
  }) {
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
78238
  const renderSteps = useMemo(() => {
78275
78239
  if (stepsSlot) return stepsSlot;
78276
78240
  if (!steps?.length) return null;
@@ -78283,7 +78247,15 @@ function ProcessStickySteps({
78283
78247
  step.className
78284
78248
  ),
78285
78249
  children: [
78286
- /* @__PURE__ */ jsx(CornerIllustration, { className: "absolute top-4 right-0" }),
78250
+ /* @__PURE__ */ jsx(
78251
+ Pressable,
78252
+ {
78253
+ href: step.href,
78254
+ "aria-label": typeof step.title === "string" ? step.title : "View step",
78255
+ className: "absolute top-4 right-0 inline-flex",
78256
+ children: /* @__PURE__ */ jsx(CornerIllustration, {})
78257
+ }
78258
+ ),
78287
78259
  /* @__PURE__ */ jsx(
78288
78260
  "div",
78289
78261
  {
@@ -78295,8 +78267,8 @@ function ProcessStickySteps({
78295
78267
  }
78296
78268
  ),
78297
78269
  /* @__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 }))
78270
+ 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 })),
78271
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { children: step.description }) : step.description)
78300
78272
  ] })
78301
78273
  ]
78302
78274
  },
@@ -78334,7 +78306,14 @@ function ProcessStickySteps({
78334
78306
  )
78335
78307
  ] }),
78336
78308
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
78337
- renderActions()
78309
+ /* @__PURE__ */ jsx(
78310
+ BlockActions,
78311
+ {
78312
+ actions,
78313
+ actionsSlot,
78314
+ actionsClassName
78315
+ }
78316
+ )
78338
78317
  ] }),
78339
78318
  renderSteps
78340
78319
  ]
@@ -79522,7 +79501,7 @@ function ProcessNumberedServices({
79522
79501
  serviceBadgeClassName,
79523
79502
  capabilitiesClassName,
79524
79503
  background,
79525
- spacing = "py-6 md:py-32",
79504
+ spacing = "md",
79526
79505
  pattern,
79527
79506
  patternOpacity,
79528
79507
  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.8",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",