@almadar/ui 5.5.9 → 5.7.0

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.
@@ -13718,7 +13718,7 @@ var init_AboutPageTemplate = __esm({
13718
13718
  background: resolved.hero.background
13719
13719
  }
13720
13720
  ),
13721
- resolved.articles.map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
13721
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
13722
13722
  Box,
13723
13723
  {
13724
13724
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -33832,7 +33832,7 @@ var init_FeatureGrid = __esm({
33832
33832
  cols: columns,
33833
33833
  gap,
33834
33834
  className: cn(className),
33835
- children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
33835
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
33836
33836
  }
33837
33837
  );
33838
33838
  };
@@ -34158,7 +34158,7 @@ var init_SplitSection = __esm({
34158
34158
  const textContent = /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
34159
34159
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h2", children: title }),
34160
34160
  typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
34161
- bullets && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
34161
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
34162
34162
  /* @__PURE__ */ jsxRuntime.jsx(
34163
34163
  Icon,
34164
34164
  {
@@ -37963,6 +37963,7 @@ var init_MarketingFooter = __esm({
37963
37963
  logo,
37964
37964
  className
37965
37965
  }) => {
37966
+ const safeColumns = Array.isArray(columns) ? columns : [];
37966
37967
  return /* @__PURE__ */ jsxRuntime.jsx(
37967
37968
  Box,
37968
37969
  {
@@ -37976,7 +37977,7 @@ var init_MarketingFooter = __esm({
37976
37977
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
37977
37978
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
37978
37979
  logo && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: logo.href, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
37979
- columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
37980
+ safeColumns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
37980
37981
  /* @__PURE__ */ jsxRuntime.jsx(
37981
37982
  Typography,
37982
37983
  {
@@ -37985,7 +37986,7 @@ var init_MarketingFooter = __esm({
37985
37986
  children: col.title
37986
37987
  }
37987
37988
  ),
37988
- col.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
37989
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsxRuntime.jsx(
37989
37990
  "a",
37990
37991
  {
37991
37992
  href: item.href,
@@ -41950,7 +41951,7 @@ var init_LandingPageTemplate = __esm({
41950
41951
  background: resolved.hero.background
41951
41952
  }
41952
41953
  ),
41953
- resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", children: [
41954
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", children: [
41954
41955
  /* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { title: "Features" }),
41955
41956
  /* @__PURE__ */ jsxRuntime.jsx(
41956
41957
  FeatureGrid,
@@ -43767,7 +43768,7 @@ var init_PricingPageTemplate = __esm({
43767
43768
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsx(
43768
43769
  PricingGrid,
43769
43770
  {
43770
- plans: resolved.plans.map((plan) => ({
43771
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
43771
43772
  name: plan.name,
43772
43773
  price: plan.price,
43773
43774
  description: plan.description,
@@ -60300,6 +60301,14 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
60300
60301
  }));
60301
60302
  void slotSource;
60302
60303
  for (const [slot, patterns] of pendingSlots) {
60304
+ stateLog.debug("flush:slot", {
60305
+ traitName,
60306
+ slot,
60307
+ patternCount: patterns.length,
60308
+ event: eventKey,
60309
+ transition: `${result.previousState}->${result.newState}`,
60310
+ cleared: patterns.length === 0
60311
+ });
60303
60312
  flushSlot(traitName, slot, patterns);
60304
60313
  }
60305
60314
  } catch (error) {
@@ -60531,7 +60540,11 @@ function createHttpTransport(serverUrl) {
60531
60540
  const result = await res.json();
60532
60541
  return !!result.success;
60533
60542
  } catch (err) {
60534
- serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
60543
+ if (err instanceof TypeError) {
60544
+ serverBridgeLog.warn("Registration failed", { error: err.message });
60545
+ } else {
60546
+ serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
60547
+ }
60535
60548
  return false;
60536
60549
  }
60537
60550
  },
@@ -60649,12 +60662,22 @@ function ServerBridgeProvider({
60649
60662
  }
60650
60663
  return { effects, meta };
60651
60664
  } catch (err) {
60652
- xOrbitalLog.error("response:network", {
60653
- orbital: orbitalName,
60654
- event,
60655
- error: err instanceof Error ? err.message : String(err)
60656
- });
60657
- return { effects: [], meta: { ...emptyMeta, error: err instanceof Error ? err.message : String(err) } };
60665
+ const msg = err instanceof Error ? err.message : String(err);
60666
+ if (err instanceof TypeError) {
60667
+ xOrbitalLog.warn("response:network", {
60668
+ orbital: orbitalName,
60669
+ event,
60670
+ error: msg,
60671
+ reason: "peer endpoint unreachable (expected in standalone single-orbital mode)"
60672
+ });
60673
+ } else {
60674
+ xOrbitalLog.error("response:network", {
60675
+ orbital: orbitalName,
60676
+ event,
60677
+ error: msg
60678
+ });
60679
+ }
60680
+ return { effects: [], meta: { ...emptyMeta, error: msg } };
60658
60681
  }
60659
60682
  }, [connected, transport, eventBus]);
60660
60683
  React98.useEffect(() => {
package/dist/avl/index.js CHANGED
@@ -13669,7 +13669,7 @@ var init_AboutPageTemplate = __esm({
13669
13669
  background: resolved.hero.background
13670
13670
  }
13671
13671
  ),
13672
- resolved.articles.map((article, index) => /* @__PURE__ */ jsx(
13672
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsx(
13673
13673
  Box,
13674
13674
  {
13675
13675
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -33783,7 +33783,7 @@ var init_FeatureGrid = __esm({
33783
33783
  cols: columns,
33784
33784
  gap,
33785
33785
  className: cn(className),
33786
- children: items.map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
33786
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
33787
33787
  }
33788
33788
  );
33789
33789
  };
@@ -34109,7 +34109,7 @@ var init_SplitSection = __esm({
34109
34109
  const textContent = /* @__PURE__ */ jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
34110
34110
  /* @__PURE__ */ jsx(Typography, { variant: "h2", children: title }),
34111
34111
  typeof description === "string" ? /* @__PURE__ */ jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
34112
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
34112
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
34113
34113
  /* @__PURE__ */ jsx(
34114
34114
  Icon,
34115
34115
  {
@@ -37914,6 +37914,7 @@ var init_MarketingFooter = __esm({
37914
37914
  logo,
37915
37915
  className
37916
37916
  }) => {
37917
+ const safeColumns = Array.isArray(columns) ? columns : [];
37917
37918
  return /* @__PURE__ */ jsx(
37918
37919
  Box,
37919
37920
  {
@@ -37927,7 +37928,7 @@ var init_MarketingFooter = __esm({
37927
37928
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
37928
37929
  /* @__PURE__ */ jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
37929
37930
  logo && /* @__PURE__ */ jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsx("a", { href: logo.href, children: /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
37930
- columns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
37931
+ safeColumns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
37931
37932
  /* @__PURE__ */ jsx(
37932
37933
  Typography,
37933
37934
  {
@@ -37936,7 +37937,7 @@ var init_MarketingFooter = __esm({
37936
37937
  children: col.title
37937
37938
  }
37938
37939
  ),
37939
- col.items.map((item) => /* @__PURE__ */ jsx(
37940
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsx(
37940
37941
  "a",
37941
37942
  {
37942
37943
  href: item.href,
@@ -41901,7 +41902,7 @@ var init_LandingPageTemplate = __esm({
41901
41902
  background: resolved.hero.background
41902
41903
  }
41903
41904
  ),
41904
- resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
41905
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
41905
41906
  /* @__PURE__ */ jsx(SectionHeader, { title: "Features" }),
41906
41907
  /* @__PURE__ */ jsx(
41907
41908
  FeatureGrid,
@@ -43718,7 +43719,7 @@ var init_PricingPageTemplate = __esm({
43718
43719
  /* @__PURE__ */ jsx(Box, { className: "py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsx(
43719
43720
  PricingGrid,
43720
43721
  {
43721
- plans: resolved.plans.map((plan) => ({
43722
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
43722
43723
  name: plan.name,
43723
43724
  price: plan.price,
43724
43725
  description: plan.description,
@@ -60251,6 +60252,14 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
60251
60252
  }));
60252
60253
  void slotSource;
60253
60254
  for (const [slot, patterns] of pendingSlots) {
60255
+ stateLog.debug("flush:slot", {
60256
+ traitName,
60257
+ slot,
60258
+ patternCount: patterns.length,
60259
+ event: eventKey,
60260
+ transition: `${result.previousState}->${result.newState}`,
60261
+ cleared: patterns.length === 0
60262
+ });
60254
60263
  flushSlot(traitName, slot, patterns);
60255
60264
  }
60256
60265
  } catch (error) {
@@ -60482,7 +60491,11 @@ function createHttpTransport(serverUrl) {
60482
60491
  const result = await res.json();
60483
60492
  return !!result.success;
60484
60493
  } catch (err) {
60485
- serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
60494
+ if (err instanceof TypeError) {
60495
+ serverBridgeLog.warn("Registration failed", { error: err.message });
60496
+ } else {
60497
+ serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
60498
+ }
60486
60499
  return false;
60487
60500
  }
60488
60501
  },
@@ -60600,12 +60613,22 @@ function ServerBridgeProvider({
60600
60613
  }
60601
60614
  return { effects, meta };
60602
60615
  } catch (err) {
60603
- xOrbitalLog.error("response:network", {
60604
- orbital: orbitalName,
60605
- event,
60606
- error: err instanceof Error ? err.message : String(err)
60607
- });
60608
- return { effects: [], meta: { ...emptyMeta, error: err instanceof Error ? err.message : String(err) } };
60616
+ const msg = err instanceof Error ? err.message : String(err);
60617
+ if (err instanceof TypeError) {
60618
+ xOrbitalLog.warn("response:network", {
60619
+ orbital: orbitalName,
60620
+ event,
60621
+ error: msg,
60622
+ reason: "peer endpoint unreachable (expected in standalone single-orbital mode)"
60623
+ });
60624
+ } else {
60625
+ xOrbitalLog.error("response:network", {
60626
+ orbital: orbitalName,
60627
+ event,
60628
+ error: msg
60629
+ });
60630
+ }
60631
+ return { effects: [], meta: { ...emptyMeta, error: msg } };
60609
60632
  }
60610
60633
  }, [connected, transport, eventBus]);
60611
60634
  useEffect(() => {
@@ -7775,7 +7775,7 @@ var init_AboutPageTemplate = __esm({
7775
7775
  background: resolved.hero.background
7776
7776
  }
7777
7777
  ),
7778
- resolved.articles.map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
7778
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
7779
7779
  exports.Box,
7780
7780
  {
7781
7781
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -29291,7 +29291,7 @@ var init_FeatureGrid = __esm({
29291
29291
  cols: columns,
29292
29292
  gap,
29293
29293
  className: cn(className),
29294
- children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(exports.FeatureCard, { ...item }, `${item.title}-${index}`))
29294
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(exports.FeatureCard, { ...item }, `${item.title}-${index}`))
29295
29295
  }
29296
29296
  );
29297
29297
  };
@@ -29617,7 +29617,7 @@ var init_SplitSection = __esm({
29617
29617
  const textContent = /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "md", className: "flex-1 min-w-0", children: [
29618
29618
  /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "h2", children: title }),
29619
29619
  typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", color: "muted", children: description }) : description,
29620
- bullets && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
29620
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
29621
29621
  /* @__PURE__ */ jsxRuntime.jsx(
29622
29622
  exports.Icon,
29623
29623
  {
@@ -33422,6 +33422,7 @@ var init_MarketingFooter = __esm({
33422
33422
  logo,
33423
33423
  className
33424
33424
  }) => {
33425
+ const safeColumns = Array.isArray(columns) ? columns : [];
33425
33426
  return /* @__PURE__ */ jsxRuntime.jsx(
33426
33427
  exports.Box,
33427
33428
  {
@@ -33435,7 +33436,7 @@ var init_MarketingFooter = __esm({
33435
33436
  children: /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
33436
33437
  /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
33437
33438
  logo && /* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: logo.href, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
33438
- columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33439
+ safeColumns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33439
33440
  /* @__PURE__ */ jsxRuntime.jsx(
33440
33441
  exports.Typography,
33441
33442
  {
@@ -33444,7 +33445,7 @@ var init_MarketingFooter = __esm({
33444
33445
  children: col.title
33445
33446
  }
33446
33447
  ),
33447
- col.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
33448
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsxRuntime.jsx(
33448
33449
  "a",
33449
33450
  {
33450
33451
  href: item.href,
@@ -38008,7 +38009,7 @@ var init_LandingPageTemplate = __esm({
38008
38009
  background: resolved.hero.background
38009
38010
  }
38010
38011
  ),
38011
- resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "lg", children: [
38012
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "lg", children: [
38012
38013
  /* @__PURE__ */ jsxRuntime.jsx(exports.SectionHeader, { title: "Features" }),
38013
38014
  /* @__PURE__ */ jsxRuntime.jsx(
38014
38015
  exports.FeatureGrid,
@@ -39918,7 +39919,7 @@ var init_PricingPageTemplate = __esm({
39918
39919
  /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "py-16", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsx(
39919
39920
  exports.PricingGrid,
39920
39921
  {
39921
- plans: resolved.plans.map((plan) => ({
39922
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
39922
39923
  name: plan.name,
39923
39924
  price: plan.price,
39924
39925
  description: plan.description,
@@ -7726,7 +7726,7 @@ var init_AboutPageTemplate = __esm({
7726
7726
  background: resolved.hero.background
7727
7727
  }
7728
7728
  ),
7729
- resolved.articles.map((article, index) => /* @__PURE__ */ jsx(
7729
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsx(
7730
7730
  Box,
7731
7731
  {
7732
7732
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -29242,7 +29242,7 @@ var init_FeatureGrid = __esm({
29242
29242
  cols: columns,
29243
29243
  gap,
29244
29244
  className: cn(className),
29245
- children: items.map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
29245
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
29246
29246
  }
29247
29247
  );
29248
29248
  };
@@ -29568,7 +29568,7 @@ var init_SplitSection = __esm({
29568
29568
  const textContent = /* @__PURE__ */ jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
29569
29569
  /* @__PURE__ */ jsx(Typography, { variant: "h2", children: title }),
29570
29570
  typeof description === "string" ? /* @__PURE__ */ jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
29571
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
29571
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
29572
29572
  /* @__PURE__ */ jsx(
29573
29573
  Icon,
29574
29574
  {
@@ -33373,6 +33373,7 @@ var init_MarketingFooter = __esm({
33373
33373
  logo,
33374
33374
  className
33375
33375
  }) => {
33376
+ const safeColumns = Array.isArray(columns) ? columns : [];
33376
33377
  return /* @__PURE__ */ jsx(
33377
33378
  Box,
33378
33379
  {
@@ -33386,7 +33387,7 @@ var init_MarketingFooter = __esm({
33386
33387
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
33387
33388
  /* @__PURE__ */ jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
33388
33389
  logo && /* @__PURE__ */ jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsx("a", { href: logo.href, children: /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
33389
- columns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33390
+ safeColumns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33390
33391
  /* @__PURE__ */ jsx(
33391
33392
  Typography,
33392
33393
  {
@@ -33395,7 +33396,7 @@ var init_MarketingFooter = __esm({
33395
33396
  children: col.title
33396
33397
  }
33397
33398
  ),
33398
- col.items.map((item) => /* @__PURE__ */ jsx(
33399
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsx(
33399
33400
  "a",
33400
33401
  {
33401
33402
  href: item.href,
@@ -37959,7 +37960,7 @@ var init_LandingPageTemplate = __esm({
37959
37960
  background: resolved.hero.background
37960
37961
  }
37961
37962
  ),
37962
- resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
37963
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
37963
37964
  /* @__PURE__ */ jsx(SectionHeader, { title: "Features" }),
37964
37965
  /* @__PURE__ */ jsx(
37965
37966
  FeatureGrid,
@@ -39869,7 +39870,7 @@ var init_PricingPageTemplate = __esm({
39869
39870
  /* @__PURE__ */ jsx(Box, { className: "py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsx(
39870
39871
  PricingGrid,
39871
39872
  {
39872
- plans: resolved.plans.map((plan) => ({
39873
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
39873
39874
  name: plan.name,
39874
39875
  price: plan.price,
39875
39876
  description: plan.description,
@@ -4649,7 +4649,7 @@ var FeatureGrid = ({
4649
4649
  cols: columns,
4650
4650
  gap,
4651
4651
  className: cn(className),
4652
- children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
4652
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
4653
4653
  }
4654
4654
  );
4655
4655
  };
@@ -4748,7 +4748,7 @@ var SplitSection = ({
4748
4748
  const textContent = /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
4749
4749
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h2", children: title }),
4750
4750
  typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
4751
- bullets && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
4751
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
4752
4752
  /* @__PURE__ */ jsxRuntime.jsx(
4753
4753
  Icon,
4754
4754
  {
@@ -5245,6 +5245,7 @@ var MarketingFooter = ({
5245
5245
  logo,
5246
5246
  className
5247
5247
  }) => {
5248
+ const safeColumns = Array.isArray(columns) ? columns : [];
5248
5249
  return /* @__PURE__ */ jsxRuntime.jsx(
5249
5250
  Box,
5250
5251
  {
@@ -5258,7 +5259,7 @@ var MarketingFooter = ({
5258
5259
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
5259
5260
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
5260
5261
  logo && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: logo.href, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
5261
- columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
5262
+ safeColumns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
5262
5263
  /* @__PURE__ */ jsxRuntime.jsx(
5263
5264
  Typography,
5264
5265
  {
@@ -5267,7 +5268,7 @@ var MarketingFooter = ({
5267
5268
  children: col.title
5268
5269
  }
5269
5270
  ),
5270
- col.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
5271
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsxRuntime.jsx(
5271
5272
  "a",
5272
5273
  {
5273
5274
  href: item.href,
@@ -4622,7 +4622,7 @@ var FeatureGrid = ({
4622
4622
  cols: columns,
4623
4623
  gap,
4624
4624
  className: cn(className),
4625
- children: items.map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
4625
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
4626
4626
  }
4627
4627
  );
4628
4628
  };
@@ -4721,7 +4721,7 @@ var SplitSection = ({
4721
4721
  const textContent = /* @__PURE__ */ jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
4722
4722
  /* @__PURE__ */ jsx(Typography, { variant: "h2", children: title }),
4723
4723
  typeof description === "string" ? /* @__PURE__ */ jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
4724
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
4724
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
4725
4725
  /* @__PURE__ */ jsx(
4726
4726
  Icon,
4727
4727
  {
@@ -5218,6 +5218,7 @@ var MarketingFooter = ({
5218
5218
  logo,
5219
5219
  className
5220
5220
  }) => {
5221
+ const safeColumns = Array.isArray(columns) ? columns : [];
5221
5222
  return /* @__PURE__ */ jsx(
5222
5223
  Box,
5223
5224
  {
@@ -5231,7 +5232,7 @@ var MarketingFooter = ({
5231
5232
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
5232
5233
  /* @__PURE__ */ jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
5233
5234
  logo && /* @__PURE__ */ jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsx("a", { href: logo.href, children: /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
5234
- columns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
5235
+ safeColumns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
5235
5236
  /* @__PURE__ */ jsx(
5236
5237
  Typography,
5237
5238
  {
@@ -5240,7 +5241,7 @@ var MarketingFooter = ({
5240
5241
  children: col.title
5241
5242
  }
5242
5243
  ),
5243
- col.items.map((item) => /* @__PURE__ */ jsx(
5244
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsx(
5244
5245
  "a",
5245
5246
  {
5246
5247
  href: item.href,
@@ -9343,7 +9343,7 @@ var init_AboutPageTemplate = __esm({
9343
9343
  background: resolved.hero.background
9344
9344
  }
9345
9345
  ),
9346
- resolved.articles.map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
9346
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
9347
9347
  Box,
9348
9348
  {
9349
9349
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -30244,7 +30244,7 @@ var init_FeatureGrid = __esm({
30244
30244
  cols: columns,
30245
30245
  gap,
30246
30246
  className: cn(className),
30247
- children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
30247
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
30248
30248
  }
30249
30249
  );
30250
30250
  };
@@ -30570,7 +30570,7 @@ var init_SplitSection = __esm({
30570
30570
  const textContent = /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
30571
30571
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h2", children: title }),
30572
30572
  typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
30573
- bullets && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30573
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30574
30574
  /* @__PURE__ */ jsxRuntime.jsx(
30575
30575
  Icon,
30576
30576
  {
@@ -34375,6 +34375,7 @@ var init_MarketingFooter = __esm({
34375
34375
  logo,
34376
34376
  className
34377
34377
  }) => {
34378
+ const safeColumns = Array.isArray(columns) ? columns : [];
34378
34379
  return /* @__PURE__ */ jsxRuntime.jsx(
34379
34380
  Box,
34380
34381
  {
@@ -34388,7 +34389,7 @@ var init_MarketingFooter = __esm({
34388
34389
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
34389
34390
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
34390
34391
  logo && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: logo.href, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
34391
- columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
34392
+ safeColumns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
34392
34393
  /* @__PURE__ */ jsxRuntime.jsx(
34393
34394
  Typography,
34394
34395
  {
@@ -34397,7 +34398,7 @@ var init_MarketingFooter = __esm({
34397
34398
  children: col.title
34398
34399
  }
34399
34400
  ),
34400
- col.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
34401
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsxRuntime.jsx(
34401
34402
  "a",
34402
34403
  {
34403
34404
  href: item.href,
@@ -38765,7 +38766,7 @@ var init_LandingPageTemplate = __esm({
38765
38766
  background: resolved.hero.background
38766
38767
  }
38767
38768
  ),
38768
- resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", children: [
38769
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", children: [
38769
38770
  /* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { title: "Features" }),
38770
38771
  /* @__PURE__ */ jsxRuntime.jsx(
38771
38772
  FeatureGrid,
@@ -40582,7 +40583,7 @@ var init_PricingPageTemplate = __esm({
40582
40583
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsx(
40583
40584
  PricingGrid,
40584
40585
  {
40585
- plans: resolved.plans.map((plan) => ({
40586
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
40586
40587
  name: plan.name,
40587
40588
  price: plan.price,
40588
40589
  description: plan.description,
@@ -9294,7 +9294,7 @@ var init_AboutPageTemplate = __esm({
9294
9294
  background: resolved.hero.background
9295
9295
  }
9296
9296
  ),
9297
- resolved.articles.map((article, index) => /* @__PURE__ */ jsx(
9297
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsx(
9298
9298
  Box,
9299
9299
  {
9300
9300
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -30195,7 +30195,7 @@ var init_FeatureGrid = __esm({
30195
30195
  cols: columns,
30196
30196
  gap,
30197
30197
  className: cn(className),
30198
- children: items.map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
30198
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
30199
30199
  }
30200
30200
  );
30201
30201
  };
@@ -30521,7 +30521,7 @@ var init_SplitSection = __esm({
30521
30521
  const textContent = /* @__PURE__ */ jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
30522
30522
  /* @__PURE__ */ jsx(Typography, { variant: "h2", children: title }),
30523
30523
  typeof description === "string" ? /* @__PURE__ */ jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
30524
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30524
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30525
30525
  /* @__PURE__ */ jsx(
30526
30526
  Icon,
30527
30527
  {
@@ -34326,6 +34326,7 @@ var init_MarketingFooter = __esm({
34326
34326
  logo,
34327
34327
  className
34328
34328
  }) => {
34329
+ const safeColumns = Array.isArray(columns) ? columns : [];
34329
34330
  return /* @__PURE__ */ jsx(
34330
34331
  Box,
34331
34332
  {
@@ -34339,7 +34340,7 @@ var init_MarketingFooter = __esm({
34339
34340
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
34340
34341
  /* @__PURE__ */ jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
34341
34342
  logo && /* @__PURE__ */ jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsx("a", { href: logo.href, children: /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
34342
- columns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
34343
+ safeColumns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
34343
34344
  /* @__PURE__ */ jsx(
34344
34345
  Typography,
34345
34346
  {
@@ -34348,7 +34349,7 @@ var init_MarketingFooter = __esm({
34348
34349
  children: col.title
34349
34350
  }
34350
34351
  ),
34351
- col.items.map((item) => /* @__PURE__ */ jsx(
34352
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsx(
34352
34353
  "a",
34353
34354
  {
34354
34355
  href: item.href,
@@ -38716,7 +38717,7 @@ var init_LandingPageTemplate = __esm({
38716
38717
  background: resolved.hero.background
38717
38718
  }
38718
38719
  ),
38719
- resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
38720
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
38720
38721
  /* @__PURE__ */ jsx(SectionHeader, { title: "Features" }),
38721
38722
  /* @__PURE__ */ jsx(
38722
38723
  FeatureGrid,
@@ -40533,7 +40534,7 @@ var init_PricingPageTemplate = __esm({
40533
40534
  /* @__PURE__ */ jsx(Box, { className: "py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsx(
40534
40535
  PricingGrid,
40535
40536
  {
40536
- plans: resolved.plans.map((plan) => ({
40537
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
40537
40538
  name: plan.name,
40538
40539
  price: plan.price,
40539
40540
  description: plan.description,
@@ -9231,7 +9231,7 @@ var init_AboutPageTemplate = __esm({
9231
9231
  background: resolved.hero.background
9232
9232
  }
9233
9233
  ),
9234
- resolved.articles.map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
9234
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsxRuntime.jsx(
9235
9235
  Box,
9236
9236
  {
9237
9237
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -29811,7 +29811,7 @@ var init_FeatureGrid = __esm({
29811
29811
  cols: columns,
29812
29812
  gap,
29813
29813
  className: cn(className),
29814
- children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
29814
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
29815
29815
  }
29816
29816
  );
29817
29817
  };
@@ -30137,7 +30137,7 @@ var init_SplitSection = __esm({
30137
30137
  const textContent = /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
30138
30138
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h2", children: title }),
30139
30139
  typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
30140
- bullets && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30140
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30141
30141
  /* @__PURE__ */ jsxRuntime.jsx(
30142
30142
  Icon,
30143
30143
  {
@@ -33942,6 +33942,7 @@ var init_MarketingFooter = __esm({
33942
33942
  logo,
33943
33943
  className
33944
33944
  }) => {
33945
+ const safeColumns = Array.isArray(columns) ? columns : [];
33945
33946
  return /* @__PURE__ */ jsxRuntime.jsx(
33946
33947
  Box,
33947
33948
  {
@@ -33955,7 +33956,7 @@ var init_MarketingFooter = __esm({
33955
33956
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
33956
33957
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
33957
33958
  logo && /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: logo.href, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
33958
- columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33959
+ safeColumns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33959
33960
  /* @__PURE__ */ jsxRuntime.jsx(
33960
33961
  Typography,
33961
33962
  {
@@ -33964,7 +33965,7 @@ var init_MarketingFooter = __esm({
33964
33965
  children: col.title
33965
33966
  }
33966
33967
  ),
33967
- col.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
33968
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsxRuntime.jsx(
33968
33969
  "a",
33969
33970
  {
33970
33971
  href: item.href,
@@ -38332,7 +38333,7 @@ var init_LandingPageTemplate = __esm({
38332
38333
  background: resolved.hero.background
38333
38334
  }
38334
38335
  ),
38335
- resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", children: [
38336
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", children: [
38336
38337
  /* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { title: "Features" }),
38337
38338
  /* @__PURE__ */ jsxRuntime.jsx(
38338
38339
  FeatureGrid,
@@ -40149,7 +40150,7 @@ var init_PricingPageTemplate = __esm({
40149
40150
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "py-16", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxRuntime.jsx(
40150
40151
  PricingGrid,
40151
40152
  {
40152
- plans: resolved.plans.map((plan) => ({
40153
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
40153
40154
  name: plan.name,
40154
40155
  price: plan.price,
40155
40156
  description: plan.description,
@@ -47705,6 +47706,14 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
47705
47706
  }));
47706
47707
  void slotSource;
47707
47708
  for (const [slot, patterns] of pendingSlots) {
47709
+ stateLog.debug("flush:slot", {
47710
+ traitName,
47711
+ slot,
47712
+ patternCount: patterns.length,
47713
+ event: eventKey,
47714
+ transition: `${result.previousState}->${result.newState}`,
47715
+ cleared: patterns.length === 0
47716
+ });
47708
47717
  flushSlot(traitName, slot, patterns);
47709
47718
  }
47710
47719
  } catch (error) {
@@ -48173,7 +48182,11 @@ function createHttpTransport(serverUrl) {
48173
48182
  const result = await res.json();
48174
48183
  return !!result.success;
48175
48184
  } catch (err) {
48176
- serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
48185
+ if (err instanceof TypeError) {
48186
+ serverBridgeLog.warn("Registration failed", { error: err.message });
48187
+ } else {
48188
+ serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
48189
+ }
48177
48190
  return false;
48178
48191
  }
48179
48192
  },
@@ -48291,12 +48304,22 @@ function ServerBridgeProvider({
48291
48304
  }
48292
48305
  return { effects, meta };
48293
48306
  } catch (err) {
48294
- xOrbitalLog.error("response:network", {
48295
- orbital: orbitalName,
48296
- event,
48297
- error: err instanceof Error ? err.message : String(err)
48298
- });
48299
- return { effects: [], meta: { ...emptyMeta, error: err instanceof Error ? err.message : String(err) } };
48307
+ const msg = err instanceof Error ? err.message : String(err);
48308
+ if (err instanceof TypeError) {
48309
+ xOrbitalLog.warn("response:network", {
48310
+ orbital: orbitalName,
48311
+ event,
48312
+ error: msg,
48313
+ reason: "peer endpoint unreachable (expected in standalone single-orbital mode)"
48314
+ });
48315
+ } else {
48316
+ xOrbitalLog.error("response:network", {
48317
+ orbital: orbitalName,
48318
+ event,
48319
+ error: msg
48320
+ });
48321
+ }
48322
+ return { effects: [], meta: { ...emptyMeta, error: msg } };
48300
48323
  }
48301
48324
  }, [connected, transport, eventBus]);
48302
48325
  React85.useEffect(() => {
@@ -9182,7 +9182,7 @@ var init_AboutPageTemplate = __esm({
9182
9182
  background: resolved.hero.background
9183
9183
  }
9184
9184
  ),
9185
- resolved.articles.map((article, index) => /* @__PURE__ */ jsx(
9185
+ (Array.isArray(resolved.articles) ? resolved.articles : []).map((article, index) => /* @__PURE__ */ jsx(
9186
9186
  Box,
9187
9187
  {
9188
9188
  className: cn("py-12", index % 2 !== 0 && "bg-muted/20"),
@@ -29762,7 +29762,7 @@ var init_FeatureGrid = __esm({
29762
29762
  cols: columns,
29763
29763
  gap,
29764
29764
  className: cn(className),
29765
- children: items.map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
29765
+ children: (Array.isArray(items) ? items : []).map((item, index) => /* @__PURE__ */ jsx(FeatureCard, { ...item }, `${item.title}-${index}`))
29766
29766
  }
29767
29767
  );
29768
29768
  };
@@ -30088,7 +30088,7 @@ var init_SplitSection = __esm({
30088
30088
  const textContent = /* @__PURE__ */ jsxs(VStack, { gap: "md", className: "flex-1 min-w-0", children: [
30089
30089
  /* @__PURE__ */ jsx(Typography, { variant: "h2", children: title }),
30090
30090
  typeof description === "string" ? /* @__PURE__ */ jsx(Typography, { variant: "body", color: "muted", children: description }) : description,
30091
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30091
+ Array.isArray(bullets) && bullets.length > 0 && /* @__PURE__ */ jsx(VStack, { gap: "sm", children: bullets.map((bullet, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "mt-0.5", children: [
30092
30092
  /* @__PURE__ */ jsx(
30093
30093
  Icon,
30094
30094
  {
@@ -33893,6 +33893,7 @@ var init_MarketingFooter = __esm({
33893
33893
  logo,
33894
33894
  className
33895
33895
  }) => {
33896
+ const safeColumns = Array.isArray(columns) ? columns : [];
33896
33897
  return /* @__PURE__ */ jsx(
33897
33898
  Box,
33898
33899
  {
@@ -33906,7 +33907,7 @@ var init_MarketingFooter = __esm({
33906
33907
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
33907
33908
  /* @__PURE__ */ jsxs(HStack, { gap: "lg", align: "start", className: "flex-wrap w-full justify-between", children: [
33908
33909
  logo && /* @__PURE__ */ jsx(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: logo.href ? /* @__PURE__ */ jsx("a", { href: logo.href, children: /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }) : /* @__PURE__ */ jsx("img", { src: logo.src, alt: logo.alt, className: "h-8 w-auto" }) }),
33909
- columns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33910
+ safeColumns.map((col) => /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "min-w-[140px] mb-4", children: [
33910
33911
  /* @__PURE__ */ jsx(
33911
33912
  Typography,
33912
33913
  {
@@ -33915,7 +33916,7 @@ var init_MarketingFooter = __esm({
33915
33916
  children: col.title
33916
33917
  }
33917
33918
  ),
33918
- col.items.map((item) => /* @__PURE__ */ jsx(
33919
+ (Array.isArray(col.items) ? col.items : []).map((item) => /* @__PURE__ */ jsx(
33919
33920
  "a",
33920
33921
  {
33921
33922
  href: item.href,
@@ -38283,7 +38284,7 @@ var init_LandingPageTemplate = __esm({
38283
38284
  background: resolved.hero.background
38284
38285
  }
38285
38286
  ),
38286
- resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
38287
+ Array.isArray(resolved.features) && resolved.features.length > 0 && /* @__PURE__ */ jsx(Box, { className: "bg-muted/20 py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", children: [
38287
38288
  /* @__PURE__ */ jsx(SectionHeader, { title: "Features" }),
38288
38289
  /* @__PURE__ */ jsx(
38289
38290
  FeatureGrid,
@@ -40100,7 +40101,7 @@ var init_PricingPageTemplate = __esm({
40100
40101
  /* @__PURE__ */ jsx(Box, { className: "py-16", children: /* @__PURE__ */ jsx(Container, { size: "xl", padding: "lg", children: /* @__PURE__ */ jsx(
40101
40102
  PricingGrid,
40102
40103
  {
40103
- plans: resolved.plans.map((plan) => ({
40104
+ plans: (Array.isArray(resolved.plans) ? resolved.plans : []).map((plan) => ({
40104
40105
  name: plan.name,
40105
40106
  price: plan.price,
40106
40107
  description: plan.description,
@@ -47656,6 +47657,14 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
47656
47657
  }));
47657
47658
  void slotSource;
47658
47659
  for (const [slot, patterns] of pendingSlots) {
47660
+ stateLog.debug("flush:slot", {
47661
+ traitName,
47662
+ slot,
47663
+ patternCount: patterns.length,
47664
+ event: eventKey,
47665
+ transition: `${result.previousState}->${result.newState}`,
47666
+ cleared: patterns.length === 0
47667
+ });
47659
47668
  flushSlot(traitName, slot, patterns);
47660
47669
  }
47661
47670
  } catch (error) {
@@ -48124,7 +48133,11 @@ function createHttpTransport(serverUrl) {
48124
48133
  const result = await res.json();
48125
48134
  return !!result.success;
48126
48135
  } catch (err) {
48127
- serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
48136
+ if (err instanceof TypeError) {
48137
+ serverBridgeLog.warn("Registration failed", { error: err.message });
48138
+ } else {
48139
+ serverBridgeLog.error("Registration failed", { error: err instanceof Error ? err : String(err) });
48140
+ }
48128
48141
  return false;
48129
48142
  }
48130
48143
  },
@@ -48242,12 +48255,22 @@ function ServerBridgeProvider({
48242
48255
  }
48243
48256
  return { effects, meta };
48244
48257
  } catch (err) {
48245
- xOrbitalLog.error("response:network", {
48246
- orbital: orbitalName,
48247
- event,
48248
- error: err instanceof Error ? err.message : String(err)
48249
- });
48250
- return { effects: [], meta: { ...emptyMeta, error: err instanceof Error ? err.message : String(err) } };
48258
+ const msg = err instanceof Error ? err.message : String(err);
48259
+ if (err instanceof TypeError) {
48260
+ xOrbitalLog.warn("response:network", {
48261
+ orbital: orbitalName,
48262
+ event,
48263
+ error: msg,
48264
+ reason: "peer endpoint unreachable (expected in standalone single-orbital mode)"
48265
+ });
48266
+ } else {
48267
+ xOrbitalLog.error("response:network", {
48268
+ orbital: orbitalName,
48269
+ event,
48270
+ error: msg
48271
+ });
48272
+ }
48273
+ return { effects: [], meta: { ...emptyMeta, error: msg } };
48251
48274
  }
48252
48275
  }, [connected, transport, eventBus]);
48253
48276
  useEffect(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "5.5.9",
3
+ "version": "5.7.0",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -133,7 +133,7 @@
133
133
  "@almadar/evaluator": ">=2.9.2",
134
134
  "@almadar/logger": "^1.3.0",
135
135
  "@almadar/patterns": "^2.26.0",
136
- "@almadar/runtime": "^6.4.1",
136
+ "@almadar/runtime": "^6.7.0",
137
137
  "@almadar/std": ">=6.4.1",
138
138
  "@almadar/syntax": ">=1.3.1",
139
139
  "@dnd-kit/core": "^6.3.1",