@opensite/ui 3.2.6 → 3.2.7

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.
Files changed (35) hide show
  1. package/dist/about-developer-story.cjs +7 -1
  2. package/dist/about-developer-story.js +7 -1
  3. package/dist/hero-overlay-cta-grid.cjs +82 -19
  4. package/dist/hero-overlay-cta-grid.d.cts +8 -13
  5. package/dist/hero-overlay-cta-grid.d.ts +8 -13
  6. package/dist/hero-overlay-cta-grid.js +83 -20
  7. package/dist/process-expandable-timeline.cjs +1 -2
  8. package/dist/process-expandable-timeline.js +1 -2
  9. package/dist/process-icon-timeline.cjs +9 -99
  10. package/dist/process-icon-timeline.d.cts +3 -3
  11. package/dist/process-icon-timeline.d.ts +3 -3
  12. package/dist/process-icon-timeline.js +9 -99
  13. package/dist/process-mission-principles.cjs +5 -67
  14. package/dist/process-mission-principles.d.cts +3 -3
  15. package/dist/process-mission-principles.d.ts +3 -3
  16. package/dist/process-mission-principles.js +5 -67
  17. package/dist/process-numbered-services.cjs +22 -116
  18. package/dist/process-numbered-services.d.cts +3 -3
  19. package/dist/process-numbered-services.d.ts +3 -3
  20. package/dist/process-numbered-services.js +22 -116
  21. package/dist/process-scroll-image.cjs +20 -85
  22. package/dist/process-scroll-image.d.cts +3 -11
  23. package/dist/process-scroll-image.d.ts +3 -11
  24. package/dist/process-scroll-image.js +18 -83
  25. package/dist/process-steps-grid.cjs +31 -99
  26. package/dist/process-steps-grid.d.cts +3 -3
  27. package/dist/process-steps-grid.d.ts +3 -3
  28. package/dist/process-steps-grid.js +31 -99
  29. package/dist/process-sticky-steps.cjs +6 -35
  30. package/dist/process-sticky-steps.d.cts +5 -1
  31. package/dist/process-sticky-steps.d.ts +5 -1
  32. package/dist/process-sticky-steps.js +6 -35
  33. package/dist/registry.cjs +107 -140
  34. package/dist/registry.js +107 -140
  35. package/package.json +1 -1
package/dist/registry.js CHANGED
@@ -7531,7 +7531,13 @@ function AboutDeveloperStory({
7531
7531
  containerClassName,
7532
7532
  children: [
7533
7533
  /* @__PURE__ */ jsxs("div", { className: "mx-auto flex max-w-4xl flex-col items-center gap-8 text-center", children: [
7534
- /* @__PURE__ */ jsx(ContentGroup, { items: contentItems }),
7534
+ /* @__PURE__ */ jsx(
7535
+ ContentGroup,
7536
+ {
7537
+ items: contentItems,
7538
+ className: "flex flex-col justify-center items-center gap-6"
7539
+ }
7540
+ ),
7535
7541
  /* @__PURE__ */ jsx(
7536
7542
  BlockActions,
7537
7543
  {
@@ -49314,9 +49320,9 @@ function HeroOverlayCtaGrid({
49314
49320
  badgeSlot,
49315
49321
  heading,
49316
49322
  description,
49317
- primaryCta,
49318
- secondaryCta,
49323
+ actions,
49319
49324
  actionsSlot,
49325
+ actionsClassName,
49320
49326
  cards,
49321
49327
  cardsSlot,
49322
49328
  backgroundImage,
@@ -49341,24 +49347,16 @@ function HeroOverlayCtaGrid({
49341
49347
  badgeText
49342
49348
  ] });
49343
49349
  }, [badgeSlot, badgeText, badgeIcon]);
49344
- const renderActions = useMemo(() => {
49345
- if (actionsSlot) return actionsSlot;
49346
- if (!primaryCta && !secondaryCta) return null;
49347
- return /* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-col items-center justify-center gap-4 sm:flex-row", children: [
49348
- primaryCta && /* @__PURE__ */ jsx(Pressable, { href: primaryCta.href, size: "lg", variant: "default", children: primaryCta.label }),
49349
- secondaryCta && /* @__PURE__ */ jsx(Pressable, { href: secondaryCta.href, size: "lg", variant: "secondary", children: secondaryCta.label })
49350
- ] });
49351
- }, [actionsSlot, primaryCta, secondaryCta]);
49352
49350
  const renderCards = useMemo(() => {
49353
49351
  if (cardsSlot) return cardsSlot;
49354
49352
  if (!cards || cards.length === 0) return null;
49355
- return /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-6xl overflow-hidden rounded-3xl border border-border bg-white/95 shadow-2xl px-0", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 divide-y divide-border md:grid-cols-3 md:divide-x md:divide-y-0", children: cards.map((card) => /* @__PURE__ */ jsxs(
49353
+ return /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-6xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl px-0", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 divide-y divide-border md:grid-cols-3 md:divide-x md:divide-y-0", children: cards.map((card) => /* @__PURE__ */ jsxs(
49356
49354
  Pressable,
49357
49355
  {
49358
49356
  href: card.href,
49359
49357
  className: "group flex items-center gap-4 px-6 py-6 transition-colors",
49360
49358
  children: [
49361
- /* @__PURE__ */ jsx(
49359
+ card.icon ? /* @__PURE__ */ jsx(
49362
49360
  "div",
49363
49361
  {
49364
49362
  className: cn(
@@ -49366,19 +49364,19 @@ function HeroOverlayCtaGrid({
49366
49364
  ),
49367
49365
  children: /* @__PURE__ */ jsx(DynamicIcon, { name: card.icon, size: 22 })
49368
49366
  }
49369
- ),
49367
+ ) : null,
49370
49368
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
49371
- /* @__PURE__ */ jsx("p", { className: "text-base font-semibold ", children: card.label }),
49372
- /* @__PURE__ */ jsx("p", { className: cn("text-sm text-black"), children: card.subtitle })
49369
+ /* @__PURE__ */ jsx("p", { className: "text-base font-semibold text-card-foreground", children: card.label }),
49370
+ /* @__PURE__ */ jsx("p", { className: cn("text-sm text-card-foreground"), children: card.subtitle })
49373
49371
  ] }),
49374
- /* @__PURE__ */ jsx(
49372
+ card.href ? /* @__PURE__ */ jsx(
49375
49373
  DynamicIcon,
49376
49374
  {
49377
49375
  name: "lucide/arrow-right",
49378
49376
  size: 18,
49379
- className: cn("ml-auto flex-none text-muted")
49377
+ className: cn("ml-auto flex-none text-card-foreground")
49380
49378
  }
49381
- )
49379
+ ) : null
49382
49380
  ]
49383
49381
  },
49384
49382
  card.label
@@ -49463,7 +49461,14 @@ function HeroOverlayCtaGrid({
49463
49461
  children: description
49464
49462
  }
49465
49463
  )),
49466
- renderActions
49464
+ /* @__PURE__ */ jsx(
49465
+ BlockActions,
49466
+ {
49467
+ actions,
49468
+ actionsSlot,
49469
+ actionsClassName
49470
+ }
49471
+ )
49467
49472
  ]
49468
49473
  }
49469
49474
  ),
@@ -78227,7 +78232,8 @@ function ProcessStickySteps({
78227
78232
  background,
78228
78233
  spacing = "py-6 md:py-32",
78229
78234
  pattern,
78230
- patternOpacity
78235
+ patternOpacity,
78236
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78231
78237
  }) {
78232
78238
  const renderActions = useMemo(() => {
78233
78239
  return () => {
@@ -78283,8 +78289,7 @@ function ProcessStickySteps({
78283
78289
  {
78284
78290
  className: cn(
78285
78291
  "flex size-12 items-center justify-center px-4 py-1 tracking-tighter",
78286
- getNestedCardBg(background, "muted"),
78287
- getNestedCardTextColor(background)
78292
+ "bg-muted text-muted-foreground"
78288
78293
  ),
78289
78294
  children: step.step ?? `0${index + 1}`
78290
78295
  }
@@ -78307,6 +78312,7 @@ function ProcessStickySteps({
78307
78312
  className,
78308
78313
  pattern,
78309
78314
  patternOpacity,
78315
+ containerClassName,
78310
78316
  children: /* @__PURE__ */ jsxs(
78311
78317
  "div",
78312
78318
  {
@@ -78317,7 +78323,7 @@ function ProcessStickySteps({
78317
78323
  children: [
78318
78324
  /* @__PURE__ */ jsxs("div", { className: "top-10 col-span-2 h-fit w-fit gap-3 space-y-7 py-8 lg:sticky", children: [
78319
78325
  /* @__PURE__ */ jsxs("div", { className: "relative w-fit text-5xl font-semibold tracking-tight lg:text-7xl", children: [
78320
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("w-fit", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
78326
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("w-fit", headingClassName), children: heading }) : heading),
78321
78327
  /* @__PURE__ */ jsx(
78322
78328
  DynamicIcon,
78323
78329
  {
@@ -78327,7 +78333,7 @@ function ProcessStickySteps({
78327
78333
  }
78328
78334
  )
78329
78335
  ] }),
78330
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
78336
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
78331
78337
  renderActions()
78332
78338
  ] }),
78333
78339
  renderSteps
@@ -78373,10 +78379,10 @@ var ProcessCard = ({
78373
78379
  step.className
78374
78380
  ),
78375
78381
  children: [
78376
- /* @__PURE__ */ jsx("div", { className: "flex w-fit items-center justify-center px-4 py-1 text-9xl tracking-tighter", children: step.step ?? `0${index + 1}` }),
78382
+ /* @__PURE__ */ jsx("div", { className: "flex w-fit items-center justify-center px-4 py-1 text-5xl md:text-7xl tracking-tighter", children: step.step ?? `0${index + 1}` }),
78377
78383
  /* @__PURE__ */ jsxs("div", { children: [
78378
78384
  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 })),
78379
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: step.description }) : /* @__PURE__ */ jsx("div", { className: getTextColor(background, "muted"), children: step.description }))
78385
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { children: step.description }) : step.description)
78380
78386
  ] })
78381
78387
  ]
78382
78388
  }
@@ -78404,29 +78410,12 @@ function ProcessScrollImage({
78404
78410
  pattern,
78405
78411
  patternOpacity,
78406
78412
  optixFlowConfig,
78407
- // Backwards compatibility
78408
- title,
78409
- ctaText,
78410
- ctaUrl
78413
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78411
78414
  }) {
78412
78415
  const [active, setActive] = React30.useState(0);
78413
78416
  const previousActive = usePrevious(active);
78414
- const resolvedHeading = title ?? heading;
78415
- const resolvedActions = actions ?? (ctaText && ctaUrl ? [
78416
- {
78417
- label: ctaText,
78418
- href: ctaUrl,
78419
- variant: "ghost",
78420
- icon: /* @__PURE__ */ jsx(
78421
- DynamicIcon,
78422
- {
78423
- name: "lucide/corner-down-right",
78424
- size: 20,
78425
- className: getAccentColor(background)
78426
- }
78427
- )
78428
- }
78429
- ] : []);
78417
+ const resolvedHeading = heading;
78418
+ const resolvedActions = actions || [];
78430
78419
  const renderActions = useMemo(() => {
78431
78420
  return () => {
78432
78421
  if (actionsSlot) return actionsSlot;
@@ -78495,6 +78484,7 @@ function ProcessScrollImage({
78495
78484
  className,
78496
78485
  pattern,
78497
78486
  patternOpacity,
78487
+ containerClassName,
78498
78488
  children: /* @__PURE__ */ jsxs(
78499
78489
  "div",
78500
78490
  {
@@ -78520,18 +78510,8 @@ function ProcessScrollImage({
78520
78510
  ),
78521
78511
  children: resolvedHeading
78522
78512
  }
78523
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: resolvedHeading })),
78524
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
78525
- "p",
78526
- {
78527
- className: cn(
78528
- "text-base",
78529
- getTextColor(background, "muted"),
78530
- descriptionClassName
78531
- ),
78532
- children: description
78533
- }
78534
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
78513
+ ) : resolvedHeading),
78514
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base", descriptionClassName), children: description }) : description),
78535
78515
  /* @__PURE__ */ jsxs(
78536
78516
  "div",
78537
78517
  {
@@ -78770,10 +78750,9 @@ function ProcessIconTimeline({
78770
78750
  spacing,
78771
78751
  pattern,
78772
78752
  patternOpacity,
78773
- // Backwards compatibility
78774
- title
78753
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78775
78754
  }) {
78776
- const resolvedHeading = title ?? heading;
78755
+ const resolvedHeading = heading;
78777
78756
  const renderSteps = useMemo(() => {
78778
78757
  if (stepsSlot) return stepsSlot;
78779
78758
  if (!steps?.length) return null;
@@ -78809,14 +78788,13 @@ function ProcessIconTimeline({
78809
78788
  {
78810
78789
  className: cn(
78811
78790
  "rounded-lg border p-6 shadow-sm",
78812
- getNestedCardBg(background, "card"),
78813
- getNestedCardTextColor(background),
78791
+ "bg-card text-card-foreground",
78814
78792
  index % 2 === 0 ? "lg:mr-12" : "lg:ml-12",
78815
78793
  stepCardClassName
78816
78794
  ),
78817
78795
  children: [
78818
78796
  step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-2 text-xl font-semibold tracking-tight", children: step.title }) : /* @__PURE__ */ jsx("div", { className: "mb-2 text-xl font-semibold tracking-tight", children: step.title })),
78819
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4", getTextColor(background, "muted")), children: step.description }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", getTextColor(background, "muted")), children: step.description })),
78797
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4"), children: step.description }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4"), children: step.description })),
78820
78798
  step.highlights?.length ? /* @__PURE__ */ jsx(
78821
78799
  "div",
78822
78800
  {
@@ -78829,8 +78807,7 @@ function ProcessIconTimeline({
78829
78807
  {
78830
78808
  className: cn(
78831
78809
  "rounded-full px-3 py-1 text-xs font-medium",
78832
- getNestedCardBg(background, "muted"),
78833
- getNestedCardTextColor(background)
78810
+ "bg-primary text-primary-foreground"
78834
78811
  ),
78835
78812
  children: highlight
78836
78813
  },
@@ -78858,6 +78835,7 @@ function ProcessIconTimeline({
78858
78835
  className,
78859
78836
  pattern,
78860
78837
  patternOpacity,
78838
+ containerClassName,
78861
78839
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
78862
78840
  /* @__PURE__ */ jsxs("div", { className: cn("mb-16 max-w-2xl", headerClassName), children: [
78863
78841
  resolvedHeading && (typeof resolvedHeading === "string" ? /* @__PURE__ */ jsx(
@@ -78869,18 +78847,8 @@ function ProcessIconTimeline({
78869
78847
  ),
78870
78848
  children: resolvedHeading
78871
78849
  }
78872
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: resolvedHeading })),
78873
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
78874
- "p",
78875
- {
78876
- className: cn(
78877
- "text-lg",
78878
- getTextColor(background, "muted"),
78879
- descriptionClassName
78880
- ),
78881
- children: description
78882
- }
78883
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
78850
+ ) : resolvedHeading),
78851
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description }) : description)
78884
78852
  ] }),
78885
78853
  /* @__PURE__ */ jsxs("div", { className: cn("relative", timelineClassName), children: [
78886
78854
  /* @__PURE__ */ jsx(
@@ -78888,7 +78856,7 @@ function ProcessIconTimeline({
78888
78856
  {
78889
78857
  className: cn(
78890
78858
  "absolute left-6 top-0 bottom-0 w-px lg:left-1/2 lg:-translate-x-1/2",
78891
- getBorderColor(background, "default"),
78859
+ "border-border border",
78892
78860
  timelineLineClassName
78893
78861
  )
78894
78862
  }
@@ -78970,7 +78938,7 @@ function ProcessExpandableTimeline({
78970
78938
  onClick: () => toggleExpand(index),
78971
78939
  className: cn(
78972
78940
  "group relative flex w-full items-start gap-6 border-b p-6 text-left transition-colors",
78973
- `hover:bg-card hover:text-card-foreground`,
78941
+ "hover:bg-card hover:text-card-foreground",
78974
78942
  expandedIndex === index ? "bg-card text-card-foreground" : "",
78975
78943
  stepItemClassName
78976
78944
  ),
@@ -79087,7 +79055,6 @@ function ProcessExpandableTimeline({
79087
79055
  {
79088
79056
  className: cn(
79089
79057
  "absolute left-6 top-0 bottom-0 w-px",
79090
- "border-2 border-dashed",
79091
79058
  timelineLineClassName
79092
79059
  )
79093
79060
  }
@@ -79308,10 +79275,9 @@ function ProcessMissionPrinciples({
79308
79275
  spacing,
79309
79276
  pattern,
79310
79277
  patternOpacity,
79311
- // Backwards compatibility
79312
- missionTitle
79278
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
79313
79279
  }) {
79314
- const resolvedMissionHeading = missionTitle ?? missionHeading;
79280
+ const resolvedMissionHeading = missionHeading;
79315
79281
  const renderPrinciples = useMemo(() => {
79316
79282
  if (principlesSlot) return principlesSlot;
79317
79283
  if (!principles?.length) return null;
@@ -79327,8 +79293,7 @@ function ProcessMissionPrinciples({
79327
79293
  {
79328
79294
  className: cn(
79329
79295
  "group relative rounded-lg border p-6 transition-shadow hover:shadow-md",
79330
- getNestedCardBg(background, "card"),
79331
- getNestedCardTextColor(background),
79296
+ "bg-card text-card-foreground",
79332
79297
  principleCardClassName,
79333
79298
  principle.className
79334
79299
  ),
@@ -79345,7 +79310,7 @@ function ProcessMissionPrinciples({
79345
79310
  ),
79346
79311
  /* @__PURE__ */ jsxs("div", { className: "pt-4", children: [
79347
79312
  principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-xl font-semibold tracking-tight", children: principle.title }) : /* @__PURE__ */ jsx("div", { className: "mb-3 text-xl font-semibold tracking-tight", children: principle.title })),
79348
- principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: principle.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: principle.description }))
79313
+ principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed"), children: principle.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-relaxed"), children: principle.description }))
79349
79314
  ] })
79350
79315
  ]
79351
79316
  },
@@ -79370,6 +79335,7 @@ function ProcessMissionPrinciples({
79370
79335
  className,
79371
79336
  pattern,
79372
79337
  patternOpacity,
79338
+ containerClassName,
79373
79339
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
79374
79340
  /* @__PURE__ */ jsxs("div", { className: cn("mb-20 max-w-3xl", missionClassName), children: [
79375
79341
  missionLabel && (typeof missionLabel === "string" ? /* @__PURE__ */ jsx(
@@ -79377,7 +79343,6 @@ function ProcessMissionPrinciples({
79377
79343
  {
79378
79344
  className: cn(
79379
79345
  "mb-4 inline-block text-sm font-semibold uppercase tracking-wider",
79380
- getAccentColor(background),
79381
79346
  missionLabelClassName
79382
79347
  ),
79383
79348
  children: missionLabel
@@ -79439,10 +79404,9 @@ function ProcessStepsGrid({
79439
79404
  spacing,
79440
79405
  pattern,
79441
79406
  patternOpacity,
79442
- // Backwards compatibility
79443
- title
79407
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
79444
79408
  }) {
79445
- const resolvedHeading = title ?? heading;
79409
+ const resolvedHeading = heading;
79446
79410
  const renderSteps = useMemo(() => {
79447
79411
  if (stepsSlot) return stepsSlot;
79448
79412
  if (!steps || steps.length === 0) return null;
@@ -79457,30 +79421,38 @@ function ProcessStepsGrid({
79457
79421
  "div",
79458
79422
  {
79459
79423
  className: cn(
79460
- "group relative overflow-hidden rounded-lg border p-8 transition-all hover:shadow-lg",
79461
- `hover:${getBorderColor(background, "accent")}/50`,
79462
- getNestedCardBg(background, "card"),
79463
- getNestedCardTextColor(background),
79424
+ "group relative overflow-hidden rounded-lg p-8 transition-all hover:shadow-lg",
79425
+ "border border-border hover:border-primary",
79426
+ "bg-card text-card-foreground",
79464
79427
  stepCardClassName,
79465
79428
  step.className
79466
79429
  ),
79467
79430
  children: [
79468
- /* @__PURE__ */ jsx("span", { className: cn("absolute -right-4 -top-4 text-[120px] font-bold leading-none transition-colors", getTextColor(background, "muted"), "opacity-20 group-hover:opacity-10", `group-hover:${getAccentColor(background)}`), children: String(index + 1).padStart(2, "0") }),
79431
+ /* @__PURE__ */ jsx(
79432
+ "span",
79433
+ {
79434
+ className: cn(
79435
+ "absolute -right-4 -top-4 text-[120px] font-bold leading-none transition-colors",
79436
+ "opacity-20 group-hover:opacity-100",
79437
+ "group-hover:text-primary"
79438
+ ),
79439
+ children: String(index + 1).padStart(2, "0")
79440
+ }
79441
+ ),
79469
79442
  /* @__PURE__ */ jsxs("div", { className: "relative z-10", children: [
79470
79443
  (step.iconSlot || step.icon) && /* @__PURE__ */ jsx(
79471
79444
  "div",
79472
79445
  {
79473
79446
  className: cn(
79474
79447
  "mb-6 flex size-14 items-center justify-center rounded-lg transition-colors",
79475
- getAccentColor(background),
79476
79448
  "bg-primary/10 group-hover:bg-primary group-hover:text-primary-foreground",
79477
79449
  stepIconClassName
79478
79450
  ),
79479
79451
  children: step.iconSlot ?? (step.icon && /* @__PURE__ */ jsx(DynamicIcon, { name: step.icon, size: 28 }))
79480
79452
  }
79481
79453
  ),
79482
- step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-xl font-semibold tracking-tight", children: step.title }) : /* @__PURE__ */ jsx("div", { className: "mb-3 text-xl font-semibold tracking-tight", children: step.title })),
79483
- step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: step.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: step.description }))
79454
+ step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-xl font-semibold tracking-tight", children: step.title }) : /* @__PURE__ */ jsx("div", { className: "mb-3", children: step.title })),
79455
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed"), children: step.description }) : step.description)
79484
79456
  ] })
79485
79457
  ]
79486
79458
  },
@@ -79488,7 +79460,14 @@ function ProcessStepsGrid({
79488
79460
  ))
79489
79461
  }
79490
79462
  );
79491
- }, [stepsSlot, steps, background, stepsGridClassName, stepCardClassName, stepIconClassName]);
79463
+ }, [
79464
+ stepsSlot,
79465
+ steps,
79466
+ background,
79467
+ stepsGridClassName,
79468
+ stepCardClassName,
79469
+ stepIconClassName
79470
+ ]);
79492
79471
  return /* @__PURE__ */ jsx(
79493
79472
  Section,
79494
79473
  {
@@ -79498,29 +79477,29 @@ function ProcessStepsGrid({
79498
79477
  className,
79499
79478
  pattern,
79500
79479
  patternOpacity,
79480
+ containerClassName,
79501
79481
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
79502
79482
  /* @__PURE__ */ jsxs("div", { className: cn("mb-16 text-center", headerClassName), children: [
79503
79483
  resolvedHeading && (typeof resolvedHeading === "string" ? /* @__PURE__ */ jsx(
79504
79484
  "h1",
79505
79485
  {
79506
79486
  className: cn(
79507
- "mb-4 text-4xl font-semibold tracking-tight lg:text-5xl",
79487
+ "mb-4 text-4xl font-semibold tracking-tight lg:text-5xl text-pretty",
79508
79488
  headingClassName
79509
79489
  ),
79510
79490
  children: resolvedHeading
79511
79491
  }
79512
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: resolvedHeading })),
79492
+ ) : resolvedHeading),
79513
79493
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
79514
79494
  "p",
79515
79495
  {
79516
79496
  className: cn(
79517
- "mx-auto max-w-2xl text-lg",
79518
- getTextColor(background, "muted"),
79497
+ "mx-auto max-w-2xl text-lg text-balance",
79519
79498
  descriptionClassName
79520
79499
  ),
79521
79500
  children: description
79522
79501
  }
79523
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
79502
+ ) : description)
79524
79503
  ] }),
79525
79504
  renderSteps
79526
79505
  ] })
@@ -79546,10 +79525,9 @@ function ProcessNumberedServices({
79546
79525
  spacing = "py-6 md:py-32",
79547
79526
  pattern,
79548
79527
  patternOpacity,
79549
- // Backwards compatibility
79550
- title
79528
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
79551
79529
  }) {
79552
- const resolvedHeading = title ?? heading;
79530
+ const resolvedHeading = heading;
79553
79531
  const renderServiceAction = useMemo(() => {
79554
79532
  return (service) => {
79555
79533
  if (service.actionSlot) return service.actionSlot;
@@ -79567,11 +79545,19 @@ function ProcessNumberedServices({
79567
79545
  className: actionClassName,
79568
79546
  ...pressableProps
79569
79547
  } = action;
79570
- return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: cn(actionClassName), ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
79571
- icon,
79572
- label,
79573
- iconAfter && iconAfter
79574
- ] }) });
79548
+ return /* @__PURE__ */ jsx(
79549
+ Pressable,
79550
+ {
79551
+ asButton: true,
79552
+ className: cn(actionClassName, "mt-4"),
79553
+ ...pressableProps,
79554
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
79555
+ icon,
79556
+ label,
79557
+ iconAfter && iconAfter
79558
+ ] })
79559
+ }
79560
+ );
79575
79561
  };
79576
79562
  }, []);
79577
79563
  const renderServices = useMemo(() => {
@@ -79590,9 +79576,7 @@ function ProcessNumberedServices({
79590
79576
  "div",
79591
79577
  {
79592
79578
  className: cn(
79593
- "flex size-16 items-center justify-center rounded-full border-2 text-xl font-bold transition-colors",
79594
- getBorderColor(background, "accent"),
79595
- getAccentColor(background),
79579
+ "flex size-16 items-center justify-center rounded-full border-2 border-primary text-primary text-xl font-bold transition-colors",
79596
79580
  "bg-primary/5 group-hover:bg-primary group-hover:text-primary-foreground",
79597
79581
  serviceBadgeClassName
79598
79582
  ),
@@ -79600,8 +79584,8 @@ function ProcessNumberedServices({
79600
79584
  }
79601
79585
  ) }),
79602
79586
  /* @__PURE__ */ jsxs("div", { className: "lg:col-span-4", children: [
79603
- service.title && (typeof service.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title }) : /* @__PURE__ */ jsx("div", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title })),
79604
- service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description })),
79587
+ service.title && (typeof service.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title }) : service.title),
79588
+ service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed"), children: service.description }) : service.description),
79605
79589
  renderServiceAction(service)
79606
79590
  ] }),
79607
79591
  /* @__PURE__ */ jsx("div", { className: "lg:col-span-7", children: service.capabilities?.length ? /* @__PURE__ */ jsx(
@@ -79616,18 +79600,10 @@ function ProcessNumberedServices({
79616
79600
  {
79617
79601
  className: cn(
79618
79602
  "flex items-center gap-3 rounded-lg px-4 py-3",
79619
- getNestedCardBg(background, "muted"),
79620
- getNestedCardTextColor(background)
79603
+ "bg-muted text-muted-foreground"
79621
79604
  ),
79622
79605
  children: [
79623
- /* @__PURE__ */ jsx(
79624
- DynamicIcon,
79625
- {
79626
- name: "lucide/check-circle-2",
79627
- size: 18,
79628
- className: getAccentColor(background)
79629
- }
79630
- ),
79606
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 18 }),
79631
79607
  /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: capability })
79632
79608
  ]
79633
79609
  },
@@ -79658,6 +79634,7 @@ function ProcessNumberedServices({
79658
79634
  className,
79659
79635
  pattern,
79660
79636
  patternOpacity,
79637
+ containerClassName,
79661
79638
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
79662
79639
  /* @__PURE__ */ jsxs("div", { className: cn("mb-16 max-w-2xl", headerClassName), children: [
79663
79640
  resolvedHeading && (typeof resolvedHeading === "string" ? /* @__PURE__ */ jsx(
@@ -79670,17 +79647,7 @@ function ProcessNumberedServices({
79670
79647
  children: resolvedHeading
79671
79648
  }
79672
79649
  ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: resolvedHeading })),
79673
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
79674
- "p",
79675
- {
79676
- className: cn(
79677
- "text-lg",
79678
- getTextColor(background, "muted"),
79679
- descriptionClassName
79680
- ),
79681
- children: description
79682
- }
79683
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
79650
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description }) : description)
79684
79651
  ] }),
79685
79652
  renderServices
79686
79653
  ] })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.2.6",
3
+ "version": "3.2.7",
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",