@opensite/ui 3.2.6 → 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.
Files changed (37) hide show
  1. package/dist/about-developer-story.cjs +7 -1
  2. package/dist/about-developer-story.js +7 -1
  3. package/dist/badge.d.cts +1 -1
  4. package/dist/badge.d.ts +1 -1
  5. package/dist/hero-overlay-cta-grid.cjs +82 -19
  6. package/dist/hero-overlay-cta-grid.d.cts +8 -13
  7. package/dist/hero-overlay-cta-grid.d.ts +8 -13
  8. package/dist/hero-overlay-cta-grid.js +83 -20
  9. package/dist/process-expandable-timeline.cjs +1 -2
  10. package/dist/process-expandable-timeline.js +1 -2
  11. package/dist/process-icon-timeline.cjs +9 -99
  12. package/dist/process-icon-timeline.d.cts +3 -3
  13. package/dist/process-icon-timeline.d.ts +3 -3
  14. package/dist/process-icon-timeline.js +9 -99
  15. package/dist/process-mission-principles.cjs +5 -67
  16. package/dist/process-mission-principles.d.cts +3 -3
  17. package/dist/process-mission-principles.d.ts +3 -3
  18. package/dist/process-mission-principles.js +5 -67
  19. package/dist/process-numbered-services.cjs +23 -117
  20. package/dist/process-numbered-services.d.cts +3 -3
  21. package/dist/process-numbered-services.d.ts +3 -3
  22. package/dist/process-numbered-services.js +23 -117
  23. package/dist/process-scroll-image.cjs +20 -85
  24. package/dist/process-scroll-image.d.cts +3 -11
  25. package/dist/process-scroll-image.d.ts +3 -11
  26. package/dist/process-scroll-image.js +18 -83
  27. package/dist/process-steps-grid.cjs +31 -99
  28. package/dist/process-steps-grid.d.cts +3 -3
  29. package/dist/process-steps-grid.d.ts +3 -3
  30. package/dist/process-steps-grid.js +31 -99
  31. package/dist/process-sticky-steps.cjs +90 -76
  32. package/dist/process-sticky-steps.d.cts +9 -1
  33. package/dist/process-sticky-steps.d.ts +9 -1
  34. package/dist/process-sticky-steps.js +90 -76
  35. package/dist/registry.cjs +128 -182
  36. package/dist/registry.js +128 -182
  37. 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
  ),
@@ -78225,46 +78230,11 @@ function ProcessStickySteps({
78225
78230
  stepsClassName,
78226
78231
  stepItemClassName,
78227
78232
  background,
78228
- spacing = "py-6 md:py-32",
78233
+ spacing = "lg",
78229
78234
  pattern,
78230
- patternOpacity
78235
+ patternOpacity,
78236
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78231
78237
  }) {
78232
- const renderActions = useMemo(() => {
78233
- return () => {
78234
- if (actionsSlot) return actionsSlot;
78235
- if (!actions?.length) return null;
78236
- return /* @__PURE__ */ jsx(
78237
- "div",
78238
- {
78239
- className: cn("flex flex-wrap items-center gap-2", actionsClassName),
78240
- children: actions.map((action, index) => {
78241
- const {
78242
- label,
78243
- icon,
78244
- iconAfter,
78245
- children,
78246
- className: actionClassName,
78247
- ...pressableProps
78248
- } = action;
78249
- return /* @__PURE__ */ jsx(
78250
- Pressable,
78251
- {
78252
- asButton: true,
78253
- className: cn(actionClassName),
78254
- ...pressableProps,
78255
- children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
78256
- icon,
78257
- label,
78258
- iconAfter
78259
- ] })
78260
- },
78261
- index
78262
- );
78263
- })
78264
- }
78265
- );
78266
- };
78267
- }, [actionsSlot, actions, actionsClassName]);
78268
78238
  const renderSteps = useMemo(() => {
78269
78239
  if (stepsSlot) return stepsSlot;
78270
78240
  if (!steps?.length) return null;
@@ -78277,21 +78247,28 @@ function ProcessStickySteps({
78277
78247
  step.className
78278
78248
  ),
78279
78249
  children: [
78280
- /* @__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
+ ),
78281
78259
  /* @__PURE__ */ jsx(
78282
78260
  "div",
78283
78261
  {
78284
78262
  className: cn(
78285
78263
  "flex size-12 items-center justify-center px-4 py-1 tracking-tighter",
78286
- getNestedCardBg(background, "muted"),
78287
- getNestedCardTextColor(background)
78264
+ "bg-muted text-muted-foreground"
78288
78265
  ),
78289
78266
  children: step.step ?? `0${index + 1}`
78290
78267
  }
78291
78268
  ),
78292
78269
  /* @__PURE__ */ jsxs("div", { children: [
78293
- 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 })),
78294
- 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)
78295
78272
  ] })
78296
78273
  ]
78297
78274
  },
@@ -78307,6 +78284,7 @@ function ProcessStickySteps({
78307
78284
  className,
78308
78285
  pattern,
78309
78286
  patternOpacity,
78287
+ containerClassName,
78310
78288
  children: /* @__PURE__ */ jsxs(
78311
78289
  "div",
78312
78290
  {
@@ -78317,7 +78295,7 @@ function ProcessStickySteps({
78317
78295
  children: [
78318
78296
  /* @__PURE__ */ jsxs("div", { className: "top-10 col-span-2 h-fit w-fit gap-3 space-y-7 py-8 lg:sticky", children: [
78319
78297
  /* @__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 })),
78298
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("w-fit", headingClassName), children: heading }) : heading),
78321
78299
  /* @__PURE__ */ jsx(
78322
78300
  DynamicIcon,
78323
78301
  {
@@ -78327,8 +78305,15 @@ function ProcessStickySteps({
78327
78305
  }
78328
78306
  )
78329
78307
  ] }),
78330
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
78331
- renderActions()
78308
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base ", descriptionClassName), children: description }) : description),
78309
+ /* @__PURE__ */ jsx(
78310
+ BlockActions,
78311
+ {
78312
+ actions,
78313
+ actionsSlot,
78314
+ actionsClassName
78315
+ }
78316
+ )
78332
78317
  ] }),
78333
78318
  renderSteps
78334
78319
  ]
@@ -78373,10 +78358,10 @@ var ProcessCard = ({
78373
78358
  step.className
78374
78359
  ),
78375
78360
  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}` }),
78361
+ /* @__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
78362
  /* @__PURE__ */ jsxs("div", { children: [
78378
78363
  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 }))
78364
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { children: step.description }) : step.description)
78380
78365
  ] })
78381
78366
  ]
78382
78367
  }
@@ -78404,29 +78389,12 @@ function ProcessScrollImage({
78404
78389
  pattern,
78405
78390
  patternOpacity,
78406
78391
  optixFlowConfig,
78407
- // Backwards compatibility
78408
- title,
78409
- ctaText,
78410
- ctaUrl
78392
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78411
78393
  }) {
78412
78394
  const [active, setActive] = React30.useState(0);
78413
78395
  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
- ] : []);
78396
+ const resolvedHeading = heading;
78397
+ const resolvedActions = actions || [];
78430
78398
  const renderActions = useMemo(() => {
78431
78399
  return () => {
78432
78400
  if (actionsSlot) return actionsSlot;
@@ -78495,6 +78463,7 @@ function ProcessScrollImage({
78495
78463
  className,
78496
78464
  pattern,
78497
78465
  patternOpacity,
78466
+ containerClassName,
78498
78467
  children: /* @__PURE__ */ jsxs(
78499
78468
  "div",
78500
78469
  {
@@ -78520,18 +78489,8 @@ function ProcessScrollImage({
78520
78489
  ),
78521
78490
  children: resolvedHeading
78522
78491
  }
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 })),
78492
+ ) : resolvedHeading),
78493
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-base", descriptionClassName), children: description }) : description),
78535
78494
  /* @__PURE__ */ jsxs(
78536
78495
  "div",
78537
78496
  {
@@ -78770,10 +78729,9 @@ function ProcessIconTimeline({
78770
78729
  spacing,
78771
78730
  pattern,
78772
78731
  patternOpacity,
78773
- // Backwards compatibility
78774
- title
78732
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78775
78733
  }) {
78776
- const resolvedHeading = title ?? heading;
78734
+ const resolvedHeading = heading;
78777
78735
  const renderSteps = useMemo(() => {
78778
78736
  if (stepsSlot) return stepsSlot;
78779
78737
  if (!steps?.length) return null;
@@ -78809,14 +78767,13 @@ function ProcessIconTimeline({
78809
78767
  {
78810
78768
  className: cn(
78811
78769
  "rounded-lg border p-6 shadow-sm",
78812
- getNestedCardBg(background, "card"),
78813
- getNestedCardTextColor(background),
78770
+ "bg-card text-card-foreground",
78814
78771
  index % 2 === 0 ? "lg:mr-12" : "lg:ml-12",
78815
78772
  stepCardClassName
78816
78773
  ),
78817
78774
  children: [
78818
78775
  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 })),
78776
+ 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
78777
  step.highlights?.length ? /* @__PURE__ */ jsx(
78821
78778
  "div",
78822
78779
  {
@@ -78829,8 +78786,7 @@ function ProcessIconTimeline({
78829
78786
  {
78830
78787
  className: cn(
78831
78788
  "rounded-full px-3 py-1 text-xs font-medium",
78832
- getNestedCardBg(background, "muted"),
78833
- getNestedCardTextColor(background)
78789
+ "bg-primary text-primary-foreground"
78834
78790
  ),
78835
78791
  children: highlight
78836
78792
  },
@@ -78858,6 +78814,7 @@ function ProcessIconTimeline({
78858
78814
  className,
78859
78815
  pattern,
78860
78816
  patternOpacity,
78817
+ containerClassName,
78861
78818
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
78862
78819
  /* @__PURE__ */ jsxs("div", { className: cn("mb-16 max-w-2xl", headerClassName), children: [
78863
78820
  resolvedHeading && (typeof resolvedHeading === "string" ? /* @__PURE__ */ jsx(
@@ -78869,18 +78826,8 @@ function ProcessIconTimeline({
78869
78826
  ),
78870
78827
  children: resolvedHeading
78871
78828
  }
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 }))
78829
+ ) : resolvedHeading),
78830
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description }) : description)
78884
78831
  ] }),
78885
78832
  /* @__PURE__ */ jsxs("div", { className: cn("relative", timelineClassName), children: [
78886
78833
  /* @__PURE__ */ jsx(
@@ -78888,7 +78835,7 @@ function ProcessIconTimeline({
78888
78835
  {
78889
78836
  className: cn(
78890
78837
  "absolute left-6 top-0 bottom-0 w-px lg:left-1/2 lg:-translate-x-1/2",
78891
- getBorderColor(background, "default"),
78838
+ "border-border border",
78892
78839
  timelineLineClassName
78893
78840
  )
78894
78841
  }
@@ -78970,7 +78917,7 @@ function ProcessExpandableTimeline({
78970
78917
  onClick: () => toggleExpand(index),
78971
78918
  className: cn(
78972
78919
  "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`,
78920
+ "hover:bg-card hover:text-card-foreground",
78974
78921
  expandedIndex === index ? "bg-card text-card-foreground" : "",
78975
78922
  stepItemClassName
78976
78923
  ),
@@ -79087,7 +79034,6 @@ function ProcessExpandableTimeline({
79087
79034
  {
79088
79035
  className: cn(
79089
79036
  "absolute left-6 top-0 bottom-0 w-px",
79090
- "border-2 border-dashed",
79091
79037
  timelineLineClassName
79092
79038
  )
79093
79039
  }
@@ -79308,10 +79254,9 @@ function ProcessMissionPrinciples({
79308
79254
  spacing,
79309
79255
  pattern,
79310
79256
  patternOpacity,
79311
- // Backwards compatibility
79312
- missionTitle
79257
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
79313
79258
  }) {
79314
- const resolvedMissionHeading = missionTitle ?? missionHeading;
79259
+ const resolvedMissionHeading = missionHeading;
79315
79260
  const renderPrinciples = useMemo(() => {
79316
79261
  if (principlesSlot) return principlesSlot;
79317
79262
  if (!principles?.length) return null;
@@ -79327,8 +79272,7 @@ function ProcessMissionPrinciples({
79327
79272
  {
79328
79273
  className: cn(
79329
79274
  "group relative rounded-lg border p-6 transition-shadow hover:shadow-md",
79330
- getNestedCardBg(background, "card"),
79331
- getNestedCardTextColor(background),
79275
+ "bg-card text-card-foreground",
79332
79276
  principleCardClassName,
79333
79277
  principle.className
79334
79278
  ),
@@ -79345,7 +79289,7 @@ function ProcessMissionPrinciples({
79345
79289
  ),
79346
79290
  /* @__PURE__ */ jsxs("div", { className: "pt-4", children: [
79347
79291
  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 }))
79292
+ 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
79293
  ] })
79350
79294
  ]
79351
79295
  },
@@ -79370,6 +79314,7 @@ function ProcessMissionPrinciples({
79370
79314
  className,
79371
79315
  pattern,
79372
79316
  patternOpacity,
79317
+ containerClassName,
79373
79318
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
79374
79319
  /* @__PURE__ */ jsxs("div", { className: cn("mb-20 max-w-3xl", missionClassName), children: [
79375
79320
  missionLabel && (typeof missionLabel === "string" ? /* @__PURE__ */ jsx(
@@ -79377,7 +79322,6 @@ function ProcessMissionPrinciples({
79377
79322
  {
79378
79323
  className: cn(
79379
79324
  "mb-4 inline-block text-sm font-semibold uppercase tracking-wider",
79380
- getAccentColor(background),
79381
79325
  missionLabelClassName
79382
79326
  ),
79383
79327
  children: missionLabel
@@ -79439,10 +79383,9 @@ function ProcessStepsGrid({
79439
79383
  spacing,
79440
79384
  pattern,
79441
79385
  patternOpacity,
79442
- // Backwards compatibility
79443
- title
79386
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
79444
79387
  }) {
79445
- const resolvedHeading = title ?? heading;
79388
+ const resolvedHeading = heading;
79446
79389
  const renderSteps = useMemo(() => {
79447
79390
  if (stepsSlot) return stepsSlot;
79448
79391
  if (!steps || steps.length === 0) return null;
@@ -79457,30 +79400,38 @@ function ProcessStepsGrid({
79457
79400
  "div",
79458
79401
  {
79459
79402
  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),
79403
+ "group relative overflow-hidden rounded-lg p-8 transition-all hover:shadow-lg",
79404
+ "border border-border hover:border-primary",
79405
+ "bg-card text-card-foreground",
79464
79406
  stepCardClassName,
79465
79407
  step.className
79466
79408
  ),
79467
79409
  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") }),
79410
+ /* @__PURE__ */ jsx(
79411
+ "span",
79412
+ {
79413
+ className: cn(
79414
+ "absolute -right-4 -top-4 text-[120px] font-bold leading-none transition-colors",
79415
+ "opacity-20 group-hover:opacity-100",
79416
+ "group-hover:text-primary"
79417
+ ),
79418
+ children: String(index + 1).padStart(2, "0")
79419
+ }
79420
+ ),
79469
79421
  /* @__PURE__ */ jsxs("div", { className: "relative z-10", children: [
79470
79422
  (step.iconSlot || step.icon) && /* @__PURE__ */ jsx(
79471
79423
  "div",
79472
79424
  {
79473
79425
  className: cn(
79474
79426
  "mb-6 flex size-14 items-center justify-center rounded-lg transition-colors",
79475
- getAccentColor(background),
79476
79427
  "bg-primary/10 group-hover:bg-primary group-hover:text-primary-foreground",
79477
79428
  stepIconClassName
79478
79429
  ),
79479
79430
  children: step.iconSlot ?? (step.icon && /* @__PURE__ */ jsx(DynamicIcon, { name: step.icon, size: 28 }))
79480
79431
  }
79481
79432
  ),
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 }))
79433
+ 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 })),
79434
+ step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed"), children: step.description }) : step.description)
79484
79435
  ] })
79485
79436
  ]
79486
79437
  },
@@ -79488,7 +79439,14 @@ function ProcessStepsGrid({
79488
79439
  ))
79489
79440
  }
79490
79441
  );
79491
- }, [stepsSlot, steps, background, stepsGridClassName, stepCardClassName, stepIconClassName]);
79442
+ }, [
79443
+ stepsSlot,
79444
+ steps,
79445
+ background,
79446
+ stepsGridClassName,
79447
+ stepCardClassName,
79448
+ stepIconClassName
79449
+ ]);
79492
79450
  return /* @__PURE__ */ jsx(
79493
79451
  Section,
79494
79452
  {
@@ -79498,29 +79456,29 @@ function ProcessStepsGrid({
79498
79456
  className,
79499
79457
  pattern,
79500
79458
  patternOpacity,
79459
+ containerClassName,
79501
79460
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
79502
79461
  /* @__PURE__ */ jsxs("div", { className: cn("mb-16 text-center", headerClassName), children: [
79503
79462
  resolvedHeading && (typeof resolvedHeading === "string" ? /* @__PURE__ */ jsx(
79504
79463
  "h1",
79505
79464
  {
79506
79465
  className: cn(
79507
- "mb-4 text-4xl font-semibold tracking-tight lg:text-5xl",
79466
+ "mb-4 text-4xl font-semibold tracking-tight lg:text-5xl text-pretty",
79508
79467
  headingClassName
79509
79468
  ),
79510
79469
  children: resolvedHeading
79511
79470
  }
79512
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: resolvedHeading })),
79471
+ ) : resolvedHeading),
79513
79472
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
79514
79473
  "p",
79515
79474
  {
79516
79475
  className: cn(
79517
- "mx-auto max-w-2xl text-lg",
79518
- getTextColor(background, "muted"),
79476
+ "mx-auto max-w-2xl text-lg text-balance",
79519
79477
  descriptionClassName
79520
79478
  ),
79521
79479
  children: description
79522
79480
  }
79523
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
79481
+ ) : description)
79524
79482
  ] }),
79525
79483
  renderSteps
79526
79484
  ] })
@@ -79543,13 +79501,12 @@ function ProcessNumberedServices({
79543
79501
  serviceBadgeClassName,
79544
79502
  capabilitiesClassName,
79545
79503
  background,
79546
- spacing = "py-6 md:py-32",
79504
+ spacing = "md",
79547
79505
  pattern,
79548
79506
  patternOpacity,
79549
- // Backwards compatibility
79550
- title
79507
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
79551
79508
  }) {
79552
- const resolvedHeading = title ?? heading;
79509
+ const resolvedHeading = heading;
79553
79510
  const renderServiceAction = useMemo(() => {
79554
79511
  return (service) => {
79555
79512
  if (service.actionSlot) return service.actionSlot;
@@ -79567,11 +79524,19 @@ function ProcessNumberedServices({
79567
79524
  className: actionClassName,
79568
79525
  ...pressableProps
79569
79526
  } = 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
- ] }) });
79527
+ return /* @__PURE__ */ jsx(
79528
+ Pressable,
79529
+ {
79530
+ asButton: true,
79531
+ className: cn(actionClassName, "mt-4"),
79532
+ ...pressableProps,
79533
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
79534
+ icon,
79535
+ label,
79536
+ iconAfter && iconAfter
79537
+ ] })
79538
+ }
79539
+ );
79575
79540
  };
79576
79541
  }, []);
79577
79542
  const renderServices = useMemo(() => {
@@ -79590,9 +79555,7 @@ function ProcessNumberedServices({
79590
79555
  "div",
79591
79556
  {
79592
79557
  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),
79558
+ "flex size-16 items-center justify-center rounded-full border-2 border-primary text-primary text-xl font-bold transition-colors",
79596
79559
  "bg-primary/5 group-hover:bg-primary group-hover:text-primary-foreground",
79597
79560
  serviceBadgeClassName
79598
79561
  ),
@@ -79600,8 +79563,8 @@ function ProcessNumberedServices({
79600
79563
  }
79601
79564
  ) }),
79602
79565
  /* @__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 })),
79566
+ service.title && (typeof service.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title }) : service.title),
79567
+ service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed"), children: service.description }) : service.description),
79605
79568
  renderServiceAction(service)
79606
79569
  ] }),
79607
79570
  /* @__PURE__ */ jsx("div", { className: "lg:col-span-7", children: service.capabilities?.length ? /* @__PURE__ */ jsx(
@@ -79616,18 +79579,10 @@ function ProcessNumberedServices({
79616
79579
  {
79617
79580
  className: cn(
79618
79581
  "flex items-center gap-3 rounded-lg px-4 py-3",
79619
- getNestedCardBg(background, "muted"),
79620
- getNestedCardTextColor(background)
79582
+ "bg-muted text-muted-foreground"
79621
79583
  ),
79622
79584
  children: [
79623
- /* @__PURE__ */ jsx(
79624
- DynamicIcon,
79625
- {
79626
- name: "lucide/check-circle-2",
79627
- size: 18,
79628
- className: getAccentColor(background)
79629
- }
79630
- ),
79585
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 18 }),
79631
79586
  /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: capability })
79632
79587
  ]
79633
79588
  },
@@ -79658,6 +79613,7 @@ function ProcessNumberedServices({
79658
79613
  className,
79659
79614
  pattern,
79660
79615
  patternOpacity,
79616
+ containerClassName,
79661
79617
  children: /* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
79662
79618
  /* @__PURE__ */ jsxs("div", { className: cn("mb-16 max-w-2xl", headerClassName), children: [
79663
79619
  resolvedHeading && (typeof resolvedHeading === "string" ? /* @__PURE__ */ jsx(
@@ -79670,17 +79626,7 @@ function ProcessNumberedServices({
79670
79626
  children: resolvedHeading
79671
79627
  }
79672
79628
  ) : /* @__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 }))
79629
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description }) : description)
79684
79630
  ] }),
79685
79631
  renderServices
79686
79632
  ] })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.2.6",
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",