@almadar/ui 5.5.8 → 5.6.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.
@@ -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,
@@ -39972,7 +39973,7 @@ var init_FeatureDetailPageTemplate = __esm({
39972
39973
  background: resolved.hero.background
39973
39974
  }
39974
39975
  ),
39975
- resolved.sections.map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
39976
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
39976
39977
  SplitSection,
39977
39978
  {
39978
39979
  title: section.title,
@@ -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
@@ -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,
@@ -39923,7 +39924,7 @@ var init_FeatureDetailPageTemplate = __esm({
39923
39924
  background: resolved.hero.background
39924
39925
  }
39925
39926
  ),
39926
- resolved.sections.map((section, index) => /* @__PURE__ */ jsx(
39927
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsx(
39927
39928
  SplitSection,
39928
39929
  {
39929
39930
  title: section.title,
@@ -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(() => {
@@ -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,
@@ -36030,7 +36031,7 @@ var init_FeatureDetailPageTemplate = __esm({
36030
36031
  background: resolved.hero.background
36031
36032
  }
36032
36033
  ),
36033
- resolved.sections.map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
36034
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
36034
36035
  exports.SplitSection,
36035
36036
  {
36036
36037
  title: section.title,
@@ -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,
@@ -35981,7 +35982,7 @@ var init_FeatureDetailPageTemplate = __esm({
35981
35982
  background: resolved.hero.background
35982
35983
  }
35983
35984
  ),
35984
- resolved.sections.map((section, index) => /* @__PURE__ */ jsx(
35985
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsx(
35985
35986
  SplitSection,
35986
35987
  {
35987
35988
  title: section.title,
@@ -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,
@@ -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,
@@ -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,
@@ -36787,7 +36788,7 @@ var init_FeatureDetailPageTemplate = __esm({
36787
36788
  background: resolved.hero.background
36788
36789
  }
36789
36790
  ),
36790
- resolved.sections.map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
36791
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
36791
36792
  SplitSection,
36792
36793
  {
36793
36794
  title: section.title,
@@ -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,
@@ -36738,7 +36739,7 @@ var init_FeatureDetailPageTemplate = __esm({
36738
36739
  background: resolved.hero.background
36739
36740
  }
36740
36741
  ),
36741
- resolved.sections.map((section, index) => /* @__PURE__ */ jsx(
36742
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsx(
36742
36743
  SplitSection,
36743
36744
  {
36744
36745
  title: section.title,
@@ -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,
@@ -36354,7 +36355,7 @@ var init_FeatureDetailPageTemplate = __esm({
36354
36355
  background: resolved.hero.background
36355
36356
  }
36356
36357
  ),
36357
- resolved.sections.map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
36358
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsxRuntime.jsx(
36358
36359
  SplitSection,
36359
36360
  {
36360
36361
  title: section.title,
@@ -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(() => {
@@ -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,
@@ -36305,7 +36306,7 @@ var init_FeatureDetailPageTemplate = __esm({
36305
36306
  background: resolved.hero.background
36306
36307
  }
36307
36308
  ),
36308
- resolved.sections.map((section, index) => /* @__PURE__ */ jsx(
36309
+ (Array.isArray(resolved.sections) ? resolved.sections : []).map((section, index) => /* @__PURE__ */ jsx(
36309
36310
  SplitSection,
36310
36311
  {
36311
36312
  title: section.title,
@@ -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.8",
3
+ "version": "5.6.0",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [