@opensite/ui 1.8.7 → 1.8.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/registry.js CHANGED
@@ -7229,7 +7229,16 @@ function FooterNavSocial({
7229
7229
  }
7230
7230
  );
7231
7231
  }
7232
+ var MOBILE_CLASSES = {
7233
+ "fit-left": "items-start md:items-center",
7234
+ "fit-center": "items-center",
7235
+ "fit-right": "items-end md:items-center",
7236
+ "full-left": "items-stretch md:items-center",
7237
+ "full-center": "items-stretch md:items-center",
7238
+ "full-right": "items-stretch md:items-center"
7239
+ };
7232
7240
  function BlockActions({
7241
+ mobileConfig,
7233
7242
  actionsClassName,
7234
7243
  verticalSpacing = "mt-4 md:mt-8",
7235
7244
  actions,
@@ -7242,13 +7251,17 @@ function BlockActions({
7242
7251
  icon,
7243
7252
  iconAfter,
7244
7253
  children,
7254
+ href,
7255
+ onClick,
7245
7256
  className: actionClassName,
7246
7257
  ...pressableProps
7247
7258
  } = action;
7248
7259
  return /* @__PURE__ */ jsx(
7249
7260
  Pressable,
7250
7261
  {
7251
- asButton: true,
7262
+ href,
7263
+ onClick,
7264
+ asButton: action.asButton || true,
7252
7265
  className: actionClassName,
7253
7266
  ...pressableProps,
7254
7267
  children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -7262,6 +7275,9 @@ function BlockActions({
7262
7275
  },
7263
7276
  []
7264
7277
  );
7278
+ const width = mobileConfig?.width ?? "full";
7279
+ const position = mobileConfig?.position ?? "center";
7280
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
7265
7281
  if (actionsSlot) {
7266
7282
  return /* @__PURE__ */ jsx("div", { children: actionsSlot });
7267
7283
  } else if (actions && actions?.length > 0) {
@@ -7270,6 +7286,7 @@ function BlockActions({
7270
7286
  {
7271
7287
  className: cn(
7272
7288
  "flex flex-col md:flex-row flex-wrap gap-4",
7289
+ mobileLayoutClass,
7273
7290
  actionsClassName,
7274
7291
  verticalSpacing
7275
7292
  ),
@@ -7293,7 +7310,6 @@ function AboutDeveloperProfile({
7293
7310
  actions,
7294
7311
  actionsSlot,
7295
7312
  className,
7296
- containerClassName,
7297
7313
  contentClassName,
7298
7314
  nameClassName,
7299
7315
  roleClassName,
@@ -7305,7 +7321,8 @@ function AboutDeveloperProfile({
7305
7321
  actionsClassName,
7306
7322
  optixFlowConfig,
7307
7323
  background,
7308
- spacing,
7324
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
7325
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
7309
7326
  pattern,
7310
7327
  patternOpacity
7311
7328
  }) {
@@ -7345,7 +7362,7 @@ function AboutDeveloperProfile({
7345
7362
  spacing,
7346
7363
  pattern,
7347
7364
  patternOpacity,
7348
- className: cn(className),
7365
+ className,
7349
7366
  containerClassName,
7350
7367
  children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
7351
7368
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row md:items-start", children: [
@@ -8232,25 +8249,10 @@ function AboutStoryExpertise({
8232
8249
  const storyContent = useMemo(() => {
8233
8250
  if (storySlot) return storySlot;
8234
8251
  if (!storyParagraphs || storyParagraphs.length === 0) return null;
8235
- return /* @__PURE__ */ jsx("div", { className: cn("space-y-4", getTextColor(background, "muted"), storyClassName), children: storyParagraphs.map(
8252
+ return /* @__PURE__ */ jsx("div", { className: cn("space-y-4", storyClassName), children: storyParagraphs.map(
8236
8253
  (paragraph, idx) => typeof paragraph === "string" ? /* @__PURE__ */ jsx("p", { children: paragraph }, idx) : /* @__PURE__ */ jsx("div", { children: paragraph }, idx)
8237
8254
  ) });
8238
8255
  }, [storySlot, storyParagraphs, storyClassName]);
8239
- const actionsContent = useMemo(() => {
8240
- if (actionsSlot) return actionsSlot;
8241
- if (!actions || actions.length === 0) return null;
8242
- return /* @__PURE__ */ jsx("div", { className: cn("flex flex-wrap gap-4", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsx(
8243
- Pressable,
8244
- {
8245
- href: action.href,
8246
- onClick: action.onClick,
8247
- size: action.size || "lg",
8248
- variant: action.variant || "default",
8249
- children: action.label
8250
- },
8251
- idx
8252
- )) });
8253
- }, [actionsSlot, actions, actionsClassName]);
8254
8256
  const highlightContent = useMemo(() => {
8255
8257
  if (highlightSlot) return highlightSlot;
8256
8258
  if (!highlight) return null;
@@ -8258,18 +8260,26 @@ function AboutStoryExpertise({
8258
8260
  "div",
8259
8261
  {
8260
8262
  className: cn(
8261
- "rounded-2xl border border-border/60 bg-background/90 p-6 shadow-xl",
8263
+ "rounded-2xl border border-border/60 p-6 shadow-xl",
8262
8264
  highlightClassName
8263
8265
  ),
8264
8266
  children: [
8265
8267
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center gap-4", children: [
8266
8268
  /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground", children: highlight.icon }),
8267
8269
  /* @__PURE__ */ jsxs("div", { children: [
8268
- highlight.label && (typeof highlight.label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xs font-semibold uppercase tracking-[0.2em]", getTextColor(background, "muted")), children: highlight.label }) : highlight.label),
8270
+ highlight.label && (typeof highlight.label === "string" ? /* @__PURE__ */ jsx(
8271
+ "p",
8272
+ {
8273
+ className: cn(
8274
+ "text-xs font-semibold uppercase tracking-[0.2em]"
8275
+ ),
8276
+ children: highlight.label
8277
+ }
8278
+ ) : highlight.label),
8269
8279
  highlight.title && (typeof highlight.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold", children: highlight.title }) : highlight.title)
8270
8280
  ] })
8271
8281
  ] }),
8272
- highlight.description && (typeof highlight.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm", getTextColor(background, "muted")), children: highlight.description }) : highlight.description)
8282
+ highlight.description && (typeof highlight.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm"), children: highlight.description }) : highlight.description)
8273
8283
  ]
8274
8284
  }
8275
8285
  );
@@ -8293,14 +8303,18 @@ function AboutStoryExpertise({
8293
8303
  transition: { duration: 0.3, delay: idx * 0.05 },
8294
8304
  className: "flex items-start gap-4 rounded-2xl bg-background p-6 shadow-sm transition-all duration-300 hover:-translate-y-1 hover:shadow-lg",
8295
8305
  children: [
8296
- /* @__PURE__ */ jsx("div", { className: cn(
8297
- "flex h-12 w-12 items-center justify-center rounded-xl",
8298
- getNestedCardBg(background, "muted"),
8299
- getAccentColor(background)
8300
- ), children: area.icon }),
8306
+ /* @__PURE__ */ jsx(
8307
+ "div",
8308
+ {
8309
+ className: cn(
8310
+ "flex h-12 w-12 items-center justify-center rounded-xl"
8311
+ ),
8312
+ children: area.icon
8313
+ }
8314
+ ),
8301
8315
  /* @__PURE__ */ jsxs("div", { children: [
8302
8316
  area.title && (typeof area.title === "string" ? /* @__PURE__ */ jsx("h4", { className: "text-lg font-bold", children: area.title }) : area.title),
8303
- area.description && (typeof area.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-1 text-sm", getTextColor(background, "muted")), children: area.description }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: area.description }))
8317
+ area.description && (typeof area.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-1 text-sm"), children: area.description }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: area.description }))
8304
8318
  ] })
8305
8319
  ]
8306
8320
  },
@@ -8334,7 +8348,6 @@ function AboutStoryExpertise({
8334
8348
  {
8335
8349
  className: cn(
8336
8350
  "text-sm font-semibold uppercase tracking-[0.2em]",
8337
- getAccentColor(background),
8338
8351
  eyebrowClassName
8339
8352
  ),
8340
8353
  children: eyebrow
@@ -8352,7 +8365,14 @@ function AboutStoryExpertise({
8352
8365
  ) : /* @__PURE__ */ jsx("div", { className: cn("mt-2", headingClassName), children: heading }))
8353
8366
  ] }),
8354
8367
  storyContent,
8355
- actionsContent
8368
+ /* @__PURE__ */ jsx(
8369
+ BlockActions,
8370
+ {
8371
+ actions,
8372
+ actionsClassName,
8373
+ actionsSlot
8374
+ }
8375
+ )
8356
8376
  ]
8357
8377
  }
8358
8378
  ),
@@ -8394,12 +8414,11 @@ function AboutStoryExpertise({
8394
8414
  {
8395
8415
  className: cn(
8396
8416
  "mt-20 rounded-3xl p-8 md:p-12",
8397
- getNestedCardBg(background, "subtle"),
8398
8417
  expertiseSectionClassName
8399
8418
  ),
8400
8419
  children: [
8401
8420
  /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
8402
- /* @__PURE__ */ jsx("p", { className: cn("text-sm font-semibold uppercase tracking-[0.2em]", getAccentColor(background)), children: "Our Expertise" }),
8421
+ /* @__PURE__ */ jsx("p", { className: cn("text-sm font-semibold uppercase tracking-[0.2em]"), children: "Our Expertise" }),
8403
8422
  expertiseHeading && (typeof expertiseHeading === "string" ? /* @__PURE__ */ jsx(
8404
8423
  "h3",
8405
8424
  {
@@ -8415,7 +8434,6 @@ function AboutStoryExpertise({
8415
8434
  {
8416
8435
  className: cn(
8417
8436
  "mx-auto mt-3 max-w-2xl",
8418
- getTextColor(background, "muted"),
8419
8437
  expertiseDescriptionClassName
8420
8438
  ),
8421
8439
  children: expertiseDescription
@@ -56248,10 +56266,10 @@ function HeroStatsSocialProof({
56248
56266
  statusCard,
56249
56267
  statusCardSlot,
56250
56268
  background,
56251
- spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
56252
56269
  pattern,
56253
56270
  patternOpacity,
56254
56271
  className,
56272
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
56255
56273
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
56256
56274
  contentClassName,
56257
56275
  badgeClassName,
@@ -56322,7 +56340,8 @@ function HeroStatsSocialProof({
56322
56340
  {
56323
56341
  actions,
56324
56342
  actionsClassName,
56325
- actionsSlot
56343
+ actionsSlot,
56344
+ mobileConfig: { position: "left", width: "fit" }
56326
56345
  }
56327
56346
  ),
56328
56347
  (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsx(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "1.8.7",
3
+ "version": "1.8.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",
@@ -3384,7 +3384,7 @@
3384
3384
  },
3385
3385
  "dependencies": {
3386
3386
  "@opensite/hooks": "2.0.8",
3387
- "@page-speed/forms": "0.4.7",
3387
+ "@page-speed/forms": "0.4.8",
3388
3388
  "@page-speed/img": "0.4.5",
3389
3389
  "@page-speed/lightbox": "0.2.1",
3390
3390
  "@page-speed/pdf-viewer": "0.1.9",