@almadar/ui 4.44.0 → 4.44.1

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.
@@ -14699,7 +14699,7 @@ function recordTransition(trace) {
14699
14699
  ...trace,
14700
14700
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
14701
14701
  };
14702
- log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
14702
+ log2.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
14703
14703
  getState().transitions.push(entry);
14704
14704
  if (getState().transitions.length > MAX_TRANSITIONS) {
14705
14705
  getState().transitions.shift();
@@ -52867,7 +52867,7 @@ function MaybeTraitScope({
52867
52867
  const schemaCtx = useEntitySchemaOptional();
52868
52868
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
52869
52869
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
52870
- scopeWrapLog.info("decide", {
52870
+ scopeWrapLog.debug("decide", {
52871
52871
  sourceTrait,
52872
52872
  schemaCtxPresent: schemaCtx !== null,
52873
52873
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -56492,7 +56492,7 @@ function VerificationProvider({
56492
56492
  },
56493
56493
  timestamp: Date.now()
56494
56494
  });
56495
- log3.info("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
56495
+ log3.debug("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
56496
56496
  } else if (parsed.kind === "error" && parsed.event) {
56497
56497
  const key = `${parsed.traitName}:${parsed.event}`;
56498
56498
  const pending = pendingRef.current.get(key);
@@ -56990,7 +56990,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
56990
56990
  const slots = uiSlotsRef.current;
56991
56991
  const embedded = embeddedTraitsRef.current;
56992
56992
  if (patterns.length === 0) {
56993
- flushLog.info("clear", { traitName, slot });
56993
+ flushLog.debug("clear", { traitName, slot });
56994
56994
  slots.clearBySource(slot, traitName);
56995
56995
  return;
56996
56996
  }
@@ -57005,7 +57005,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57005
57005
  const props = convertFnFormLambdasInProps(rawProps);
57006
57006
  const isEmbedded = embedded?.has(traitName) ?? false;
57007
57007
  if (isEmbedded) {
57008
- flushLog.info("embed-route", {
57008
+ flushLog.debug("embed-route", {
57009
57009
  traitName,
57010
57010
  slot,
57011
57011
  patternType: typeof patternType === "string" ? patternType : void 0,
@@ -57019,12 +57019,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57019
57019
  });
57020
57020
  return;
57021
57021
  }
57022
- flushLog.info("slot-render", {
57022
+ flushLog.debug("slot-render", () => ({
57023
57023
  traitName,
57024
57024
  slot,
57025
57025
  patternType: typeof patternType === "string" ? patternType : void 0,
57026
57026
  embedded: Array.from(embedded ?? [])
57027
- });
57027
+ }));
57028
57028
  slots.render({
57029
57029
  target: slot,
57030
57030
  pattern: patternType,
@@ -57209,12 +57209,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57209
57209
  const bindings = traitBindingsRef.current;
57210
57210
  const currentManager = managerRef.current;
57211
57211
  console.log("[TraitStateMachine] Processing event:", normalizedEvent, "payload:", payload);
57212
- crossTraitLog.debug("processEvent:enter", {
57212
+ crossTraitLog.debug("processEvent:enter", () => ({
57213
57213
  event: normalizedEvent,
57214
57214
  traitCount: bindings.length,
57215
57215
  traitNames: bindings.map((b) => b.trait.name).join(","),
57216
57216
  orbitalsByTrait: JSON.stringify(orbitalsByTrait ?? null)
57217
- });
57217
+ }));
57218
57218
  const bindingMap = new Map(bindings.map((b) => [b.trait.name, b]));
57219
57219
  const entityByTrait = {};
57220
57220
  for (const [name, fields] of traitFieldStatesRef.current) {
@@ -57400,7 +57400,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57400
57400
  const executor = new runtime.EffectExecutor({ handlers: trackingHandlers, bindings: bindingCtx, context: effectContext });
57401
57401
  try {
57402
57402
  await executor.executeAll(result.effects);
57403
- stateLog.info("transition:render-ui-dispatched", {
57403
+ stateLog.debug("transition:render-ui-dispatched", () => ({
57404
57404
  traitName,
57405
57405
  fromState: result.previousState,
57406
57406
  toState: result.newState,
@@ -57409,7 +57409,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57409
57409
  patternTypes: Array.from(pendingSlots.entries()).map(
57410
57410
  ([slot, patterns]) => `${slot}:[${patterns.map((p2) => p2.pattern?.type ?? "null").join(",")}]`
57411
57411
  ).join(";")
57412
- });
57412
+ }));
57413
57413
  void slotSource;
57414
57414
  for (const [slot, patterns] of pendingSlots) {
57415
57415
  flushSlot(traitName, slot, patterns);
@@ -57578,7 +57578,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57578
57578
  crossTraitLog.debug("self:fire-skipped-bridge-echo", { traitName, busKey: selfBusKey, eventKey });
57579
57579
  return;
57580
57580
  }
57581
- crossTraitLog.info("self:fire", { traitName, busKey: selfBusKey, eventKey });
57581
+ crossTraitLog.debug("self:fire", { traitName, busKey: selfBusKey, eventKey });
57582
57582
  enqueueAndDrain(eventKey, event.payload);
57583
57583
  });
57584
57584
  unsubscribes.push(() => {
@@ -57604,7 +57604,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57604
57604
  const busKey = `UI:${sourceOrbital}.${sourceTrait}.${listen.event}`;
57605
57605
  crossTraitLog.debug("listen:subscribed", { busKey, targetTrait: binding.trait.name, sourceOrbital, sourceTrait, listenEvent: listen.event, triggers: listen.triggers });
57606
57606
  const unsub = eventBus.on(busKey, (event) => {
57607
- crossTraitLog.info("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
57607
+ crossTraitLog.debug("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
57608
57608
  enqueueAndDrain(listen.triggers, event.payload);
57609
57609
  });
57610
57610
  unsubscribes.push(() => {
@@ -57910,7 +57910,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
57910
57910
  };
57911
57911
  const props = convertFnFormLambdasInProps(rawProps);
57912
57912
  if (isEmbedded) {
57913
- xOrbitalLog2.info("slot:embed-routed", {
57913
+ xOrbitalLog2.debug("slot:embed-routed", {
57914
57914
  sourceTrait,
57915
57915
  slot: eff.slot,
57916
57916
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -57922,7 +57922,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
57922
57922
  animation: "fade"
57923
57923
  });
57924
57924
  } else {
57925
- xOrbitalLog2.info("slot-write", {
57925
+ xOrbitalLog2.debug("slot-write", {
57926
57926
  slot: eff.slot,
57927
57927
  sourceTrait,
57928
57928
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -57945,12 +57945,12 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
57945
57945
  const onEventProcessed = React147.useCallback(async (event, payload, dispatchedOrbitals) => {
57946
57946
  if (!bridge.connected || !orbitalNames?.length) return;
57947
57947
  const targets = dispatchedOrbitals && dispatchedOrbitals.size > 0 ? orbitalNames.filter((n) => dispatchedOrbitals.has(n)) : orbitalNames;
57948
- xOrbitalLog2.info("TraitInitializer:fanout", {
57948
+ xOrbitalLog2.debug("TraitInitializer:fanout", () => ({
57949
57949
  event,
57950
57950
  sentTo: targets,
57951
57951
  skipped: orbitalNames.filter((n) => !targets.includes(n)),
57952
57952
  dispatchedOrbitalsSize: dispatchedOrbitals?.size ?? 0
57953
- });
57953
+ }));
57954
57954
  for (const name of targets) {
57955
57955
  const { effects, meta } = await bridge.sendEvent(name, event, payload);
57956
57956
  recordServerResponse(name, event, meta);
@@ -57963,7 +57963,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
57963
57963
  React147.useEffect(() => {
57964
57964
  const traitNames = traits2.map((b) => b.trait?.name ?? "").filter(Boolean).sort().join(",");
57965
57965
  if (prevTraitNamesRef.current && prevTraitNamesRef.current !== traitNames) {
57966
- navLog.info("page:trait-set-changed", {
57966
+ navLog.debug("page:trait-set-changed", {
57967
57967
  from: prevTraitNamesRef.current,
57968
57968
  to: traitNames,
57969
57969
  action: "clearAll-slots"
@@ -58230,11 +58230,11 @@ function OrbPreview({
58230
58230
  }, [initialPageName, currentPage]);
58231
58231
  const handleNavigate = React147.useCallback((path) => {
58232
58232
  const match = pages.find(({ page }) => page.path === path);
58233
- navLog.info("handleNavigate", {
58233
+ navLog.debug("handleNavigate", () => ({
58234
58234
  path,
58235
58235
  matched: match?.page.name ?? null,
58236
58236
  availablePaths: pages.map((p2) => p2.page.path)
58237
- });
58237
+ }));
58238
58238
  if (match) {
58239
58239
  setCurrentPage(match.page.name);
58240
58240
  if (typeof window !== "undefined") {
@@ -58256,19 +58256,19 @@ function OrbPreview({
58256
58256
  const el = containerRef.current;
58257
58257
  if (!el) return;
58258
58258
  if (pages.length <= 1) {
58259
- navLog.info("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
58259
+ navLog.debug("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
58260
58260
  return;
58261
58261
  }
58262
58262
  const handler = (e) => {
58263
58263
  const anchor = e.target.closest("a");
58264
58264
  if (!anchor) return;
58265
58265
  const href = anchor.getAttribute("href") ?? anchor.getAttribute("to") ?? "";
58266
- navLog.info("click:intercepted", {
58266
+ navLog.debug("click:intercepted", {
58267
58267
  href,
58268
58268
  anchorText: anchor.textContent?.trim().slice(0, 40)
58269
58269
  });
58270
58270
  if (!href || href.startsWith("http") || href.startsWith("mailto:") || href.startsWith("#")) {
58271
- navLog.info("click:skipped", { href, reason: "external/empty/hash" });
58271
+ navLog.debug("click:skipped", { href, reason: "external/empty/hash" });
58272
58272
  return;
58273
58273
  }
58274
58274
  e.preventDefault();
@@ -59728,11 +59728,11 @@ function FlowCanvasInner({
59728
59728
  const EDGE_TYPES_LOCAL = React147.useMemo(() => ({
59729
59729
  eventFlow: EventFlowEdge
59730
59730
  }), []);
59731
- flowCanvasLog.info("node-type-registry:render", {
59731
+ flowCanvasLog.debug("node-type-registry:render", () => ({
59732
59732
  registered: Object.keys(NODE_TYPES2),
59733
59733
  preview: typeof OrbPreviewNode,
59734
59734
  previewIsValid: typeof OrbPreviewNode === "function" || typeof OrbPreviewNode === "object" && OrbPreviewNode !== null
59735
- });
59735
+ }));
59736
59736
  const parsedSchema = React147.useMemo(() => {
59737
59737
  if (typeof schemaProp === "string") return JSON.parse(schemaProp);
59738
59738
  return schemaProp;
package/dist/avl/index.js CHANGED
@@ -14653,7 +14653,7 @@ function recordTransition(trace) {
14653
14653
  ...trace,
14654
14654
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
14655
14655
  };
14656
- log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
14656
+ log2.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
14657
14657
  getState().transitions.push(entry);
14658
14658
  if (getState().transitions.length > MAX_TRANSITIONS) {
14659
14659
  getState().transitions.shift();
@@ -52821,7 +52821,7 @@ function MaybeTraitScope({
52821
52821
  const schemaCtx = useEntitySchemaOptional();
52822
52822
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
52823
52823
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
52824
- scopeWrapLog.info("decide", {
52824
+ scopeWrapLog.debug("decide", {
52825
52825
  sourceTrait,
52826
52826
  schemaCtxPresent: schemaCtx !== null,
52827
52827
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -56446,7 +56446,7 @@ function VerificationProvider({
56446
56446
  },
56447
56447
  timestamp: Date.now()
56448
56448
  });
56449
- log3.info("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
56449
+ log3.debug("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
56450
56450
  } else if (parsed.kind === "error" && parsed.event) {
56451
56451
  const key = `${parsed.traitName}:${parsed.event}`;
56452
56452
  const pending = pendingRef.current.get(key);
@@ -56944,7 +56944,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
56944
56944
  const slots = uiSlotsRef.current;
56945
56945
  const embedded = embeddedTraitsRef.current;
56946
56946
  if (patterns.length === 0) {
56947
- flushLog.info("clear", { traitName, slot });
56947
+ flushLog.debug("clear", { traitName, slot });
56948
56948
  slots.clearBySource(slot, traitName);
56949
56949
  return;
56950
56950
  }
@@ -56959,7 +56959,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
56959
56959
  const props = convertFnFormLambdasInProps(rawProps);
56960
56960
  const isEmbedded = embedded?.has(traitName) ?? false;
56961
56961
  if (isEmbedded) {
56962
- flushLog.info("embed-route", {
56962
+ flushLog.debug("embed-route", {
56963
56963
  traitName,
56964
56964
  slot,
56965
56965
  patternType: typeof patternType === "string" ? patternType : void 0,
@@ -56973,12 +56973,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
56973
56973
  });
56974
56974
  return;
56975
56975
  }
56976
- flushLog.info("slot-render", {
56976
+ flushLog.debug("slot-render", () => ({
56977
56977
  traitName,
56978
56978
  slot,
56979
56979
  patternType: typeof patternType === "string" ? patternType : void 0,
56980
56980
  embedded: Array.from(embedded ?? [])
56981
- });
56981
+ }));
56982
56982
  slots.render({
56983
56983
  target: slot,
56984
56984
  pattern: patternType,
@@ -57163,12 +57163,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57163
57163
  const bindings = traitBindingsRef.current;
57164
57164
  const currentManager = managerRef.current;
57165
57165
  console.log("[TraitStateMachine] Processing event:", normalizedEvent, "payload:", payload);
57166
- crossTraitLog.debug("processEvent:enter", {
57166
+ crossTraitLog.debug("processEvent:enter", () => ({
57167
57167
  event: normalizedEvent,
57168
57168
  traitCount: bindings.length,
57169
57169
  traitNames: bindings.map((b) => b.trait.name).join(","),
57170
57170
  orbitalsByTrait: JSON.stringify(orbitalsByTrait ?? null)
57171
- });
57171
+ }));
57172
57172
  const bindingMap = new Map(bindings.map((b) => [b.trait.name, b]));
57173
57173
  const entityByTrait = {};
57174
57174
  for (const [name, fields] of traitFieldStatesRef.current) {
@@ -57354,7 +57354,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57354
57354
  const executor = new EffectExecutor({ handlers: trackingHandlers, bindings: bindingCtx, context: effectContext });
57355
57355
  try {
57356
57356
  await executor.executeAll(result.effects);
57357
- stateLog.info("transition:render-ui-dispatched", {
57357
+ stateLog.debug("transition:render-ui-dispatched", () => ({
57358
57358
  traitName,
57359
57359
  fromState: result.previousState,
57360
57360
  toState: result.newState,
@@ -57363,7 +57363,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57363
57363
  patternTypes: Array.from(pendingSlots.entries()).map(
57364
57364
  ([slot, patterns]) => `${slot}:[${patterns.map((p2) => p2.pattern?.type ?? "null").join(",")}]`
57365
57365
  ).join(";")
57366
- });
57366
+ }));
57367
57367
  void slotSource;
57368
57368
  for (const [slot, patterns] of pendingSlots) {
57369
57369
  flushSlot(traitName, slot, patterns);
@@ -57532,7 +57532,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57532
57532
  crossTraitLog.debug("self:fire-skipped-bridge-echo", { traitName, busKey: selfBusKey, eventKey });
57533
57533
  return;
57534
57534
  }
57535
- crossTraitLog.info("self:fire", { traitName, busKey: selfBusKey, eventKey });
57535
+ crossTraitLog.debug("self:fire", { traitName, busKey: selfBusKey, eventKey });
57536
57536
  enqueueAndDrain(eventKey, event.payload);
57537
57537
  });
57538
57538
  unsubscribes.push(() => {
@@ -57558,7 +57558,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
57558
57558
  const busKey = `UI:${sourceOrbital}.${sourceTrait}.${listen.event}`;
57559
57559
  crossTraitLog.debug("listen:subscribed", { busKey, targetTrait: binding.trait.name, sourceOrbital, sourceTrait, listenEvent: listen.event, triggers: listen.triggers });
57560
57560
  const unsub = eventBus.on(busKey, (event) => {
57561
- crossTraitLog.info("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
57561
+ crossTraitLog.debug("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
57562
57562
  enqueueAndDrain(listen.triggers, event.payload);
57563
57563
  });
57564
57564
  unsubscribes.push(() => {
@@ -57864,7 +57864,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
57864
57864
  };
57865
57865
  const props = convertFnFormLambdasInProps(rawProps);
57866
57866
  if (isEmbedded) {
57867
- xOrbitalLog2.info("slot:embed-routed", {
57867
+ xOrbitalLog2.debug("slot:embed-routed", {
57868
57868
  sourceTrait,
57869
57869
  slot: eff.slot,
57870
57870
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -57876,7 +57876,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
57876
57876
  animation: "fade"
57877
57877
  });
57878
57878
  } else {
57879
- xOrbitalLog2.info("slot-write", {
57879
+ xOrbitalLog2.debug("slot-write", {
57880
57880
  slot: eff.slot,
57881
57881
  sourceTrait,
57882
57882
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -57899,12 +57899,12 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
57899
57899
  const onEventProcessed = useCallback(async (event, payload, dispatchedOrbitals) => {
57900
57900
  if (!bridge.connected || !orbitalNames?.length) return;
57901
57901
  const targets = dispatchedOrbitals && dispatchedOrbitals.size > 0 ? orbitalNames.filter((n) => dispatchedOrbitals.has(n)) : orbitalNames;
57902
- xOrbitalLog2.info("TraitInitializer:fanout", {
57902
+ xOrbitalLog2.debug("TraitInitializer:fanout", () => ({
57903
57903
  event,
57904
57904
  sentTo: targets,
57905
57905
  skipped: orbitalNames.filter((n) => !targets.includes(n)),
57906
57906
  dispatchedOrbitalsSize: dispatchedOrbitals?.size ?? 0
57907
- });
57907
+ }));
57908
57908
  for (const name of targets) {
57909
57909
  const { effects, meta } = await bridge.sendEvent(name, event, payload);
57910
57910
  recordServerResponse(name, event, meta);
@@ -57917,7 +57917,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
57917
57917
  useEffect(() => {
57918
57918
  const traitNames = traits2.map((b) => b.trait?.name ?? "").filter(Boolean).sort().join(",");
57919
57919
  if (prevTraitNamesRef.current && prevTraitNamesRef.current !== traitNames) {
57920
- navLog.info("page:trait-set-changed", {
57920
+ navLog.debug("page:trait-set-changed", {
57921
57921
  from: prevTraitNamesRef.current,
57922
57922
  to: traitNames,
57923
57923
  action: "clearAll-slots"
@@ -58184,11 +58184,11 @@ function OrbPreview({
58184
58184
  }, [initialPageName, currentPage]);
58185
58185
  const handleNavigate = useCallback((path) => {
58186
58186
  const match = pages.find(({ page }) => page.path === path);
58187
- navLog.info("handleNavigate", {
58187
+ navLog.debug("handleNavigate", () => ({
58188
58188
  path,
58189
58189
  matched: match?.page.name ?? null,
58190
58190
  availablePaths: pages.map((p2) => p2.page.path)
58191
- });
58191
+ }));
58192
58192
  if (match) {
58193
58193
  setCurrentPage(match.page.name);
58194
58194
  if (typeof window !== "undefined") {
@@ -58210,19 +58210,19 @@ function OrbPreview({
58210
58210
  const el = containerRef.current;
58211
58211
  if (!el) return;
58212
58212
  if (pages.length <= 1) {
58213
- navLog.info("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
58213
+ navLog.debug("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
58214
58214
  return;
58215
58215
  }
58216
58216
  const handler = (e) => {
58217
58217
  const anchor = e.target.closest("a");
58218
58218
  if (!anchor) return;
58219
58219
  const href = anchor.getAttribute("href") ?? anchor.getAttribute("to") ?? "";
58220
- navLog.info("click:intercepted", {
58220
+ navLog.debug("click:intercepted", {
58221
58221
  href,
58222
58222
  anchorText: anchor.textContent?.trim().slice(0, 40)
58223
58223
  });
58224
58224
  if (!href || href.startsWith("http") || href.startsWith("mailto:") || href.startsWith("#")) {
58225
- navLog.info("click:skipped", { href, reason: "external/empty/hash" });
58225
+ navLog.debug("click:skipped", { href, reason: "external/empty/hash" });
58226
58226
  return;
58227
58227
  }
58228
58228
  e.preventDefault();
@@ -59682,11 +59682,11 @@ function FlowCanvasInner({
59682
59682
  const EDGE_TYPES_LOCAL = useMemo(() => ({
59683
59683
  eventFlow: EventFlowEdge
59684
59684
  }), []);
59685
- flowCanvasLog.info("node-type-registry:render", {
59685
+ flowCanvasLog.debug("node-type-registry:render", () => ({
59686
59686
  registered: Object.keys(NODE_TYPES2),
59687
59687
  preview: typeof OrbPreviewNode,
59688
59688
  previewIsValid: typeof OrbPreviewNode === "function" || typeof OrbPreviewNode === "object" && OrbPreviewNode !== null
59689
- });
59689
+ }));
59690
59690
  const parsedSchema = useMemo(() => {
59691
59691
  if (typeof schemaProp === "string") return JSON.parse(schemaProp);
59692
59692
  return schemaProp;
@@ -43869,7 +43869,7 @@ function MaybeTraitScope({
43869
43869
  const schemaCtx = useEntitySchemaOptional();
43870
43870
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
43871
43871
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
43872
- scopeWrapLog.info("decide", {
43872
+ scopeWrapLog.debug("decide", {
43873
43873
  sourceTrait,
43874
43874
  schemaCtxPresent: schemaCtx !== null,
43875
43875
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -43823,7 +43823,7 @@ function MaybeTraitScope({
43823
43823
  const schemaCtx = useEntitySchemaOptional();
43824
43824
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
43825
43825
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
43826
- scopeWrapLog.info("decide", {
43826
+ scopeWrapLog.debug("decide", {
43827
43827
  sourceTrait,
43828
43828
  schemaCtxPresent: schemaCtx !== null,
43829
43829
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -482,7 +482,7 @@ function recordTransition(trace) {
482
482
  ...trace,
483
483
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
484
484
  };
485
- log.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
485
+ log.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
486
486
  getState().transitions.push(entry);
487
487
  if (getState().transitions.length > MAX_TRANSITIONS) {
488
488
  getState().transitions.shift();
package/dist/lib/index.js CHANGED
@@ -480,7 +480,7 @@ function recordTransition(trace) {
480
480
  ...trace,
481
481
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
482
482
  };
483
- log.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
483
+ log.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
484
484
  getState().transitions.push(entry);
485
485
  if (getState().transitions.length > MAX_TRANSITIONS) {
486
486
  getState().transitions.shift();
@@ -10318,7 +10318,7 @@ function recordTransition(trace) {
10318
10318
  ...trace,
10319
10319
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
10320
10320
  };
10321
- log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10321
+ log2.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10322
10322
  getState().transitions.push(entry);
10323
10323
  if (getState().transitions.length > MAX_TRANSITIONS) {
10324
10324
  getState().transitions.shift();
@@ -44190,7 +44190,7 @@ function MaybeTraitScope({
44190
44190
  const schemaCtx = useEntitySchemaOptional();
44191
44191
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
44192
44192
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
44193
- scopeWrapLog.info("decide", {
44193
+ scopeWrapLog.debug("decide", {
44194
44194
  sourceTrait,
44195
44195
  schemaCtxPresent: schemaCtx !== null,
44196
44196
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -45171,7 +45171,7 @@ function VerificationProvider({
45171
45171
  },
45172
45172
  timestamp: Date.now()
45173
45173
  });
45174
- log3.info("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
45174
+ log3.debug("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
45175
45175
  } else if (parsed.kind === "error" && parsed.event) {
45176
45176
  const key = `${parsed.traitName}:${parsed.event}`;
45177
45177
  const pending = pendingRef.current.get(key);
@@ -10272,7 +10272,7 @@ function recordTransition(trace) {
10272
10272
  ...trace,
10273
10273
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
10274
10274
  };
10275
- log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10275
+ log2.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10276
10276
  getState().transitions.push(entry);
10277
10277
  if (getState().transitions.length > MAX_TRANSITIONS) {
10278
10278
  getState().transitions.shift();
@@ -44144,7 +44144,7 @@ function MaybeTraitScope({
44144
44144
  const schemaCtx = useEntitySchemaOptional();
44145
44145
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
44146
44146
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
44147
- scopeWrapLog.info("decide", {
44147
+ scopeWrapLog.debug("decide", {
44148
44148
  sourceTrait,
44149
44149
  schemaCtxPresent: schemaCtx !== null,
44150
44150
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -45125,7 +45125,7 @@ function VerificationProvider({
45125
45125
  },
45126
45126
  timestamp: Date.now()
45127
45127
  });
45128
- log3.info("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
45128
+ log3.debug("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
45129
45129
  } else if (parsed.kind === "error" && parsed.event) {
45130
45130
  const key = `${parsed.traitName}:${parsed.event}`;
45131
45131
  const pending = pendingRef.current.get(key);
@@ -10206,7 +10206,7 @@ function recordTransition(trace) {
10206
10206
  ...trace,
10207
10207
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
10208
10208
  };
10209
- log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10209
+ log2.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10210
10210
  getState().transitions.push(entry);
10211
10211
  if (getState().transitions.length > MAX_TRANSITIONS) {
10212
10212
  getState().transitions.shift();
@@ -43776,7 +43776,7 @@ function MaybeTraitScope({
43776
43776
  const schemaCtx = useEntitySchemaOptional();
43777
43777
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
43778
43778
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
43779
- scopeWrapLog.info("decide", {
43779
+ scopeWrapLog.debug("decide", {
43780
43780
  sourceTrait,
43781
43781
  schemaCtxPresent: schemaCtx !== null,
43782
43782
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -44617,7 +44617,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44617
44617
  const slots = uiSlotsRef.current;
44618
44618
  const embedded = embeddedTraitsRef.current;
44619
44619
  if (patterns.length === 0) {
44620
- flushLog.info("clear", { traitName, slot });
44620
+ flushLog.debug("clear", { traitName, slot });
44621
44621
  slots.clearBySource(slot, traitName);
44622
44622
  return;
44623
44623
  }
@@ -44632,7 +44632,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44632
44632
  const props = convertFnFormLambdasInProps(rawProps);
44633
44633
  const isEmbedded = embedded?.has(traitName) ?? false;
44634
44634
  if (isEmbedded) {
44635
- flushLog.info("embed-route", {
44635
+ flushLog.debug("embed-route", {
44636
44636
  traitName,
44637
44637
  slot,
44638
44638
  patternType: typeof patternType === "string" ? patternType : void 0,
@@ -44646,12 +44646,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44646
44646
  });
44647
44647
  return;
44648
44648
  }
44649
- flushLog.info("slot-render", {
44649
+ flushLog.debug("slot-render", () => ({
44650
44650
  traitName,
44651
44651
  slot,
44652
44652
  patternType: typeof patternType === "string" ? patternType : void 0,
44653
44653
  embedded: Array.from(embedded ?? [])
44654
- });
44654
+ }));
44655
44655
  slots.render({
44656
44656
  target: slot,
44657
44657
  pattern: patternType,
@@ -44836,12 +44836,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44836
44836
  const bindings = traitBindingsRef.current;
44837
44837
  const currentManager = managerRef.current;
44838
44838
  console.log("[TraitStateMachine] Processing event:", normalizedEvent, "payload:", payload);
44839
- crossTraitLog.debug("processEvent:enter", {
44839
+ crossTraitLog.debug("processEvent:enter", () => ({
44840
44840
  event: normalizedEvent,
44841
44841
  traitCount: bindings.length,
44842
44842
  traitNames: bindings.map((b) => b.trait.name).join(","),
44843
44843
  orbitalsByTrait: JSON.stringify(orbitalsByTrait ?? null)
44844
- });
44844
+ }));
44845
44845
  const bindingMap = new Map(bindings.map((b) => [b.trait.name, b]));
44846
44846
  const entityByTrait = {};
44847
44847
  for (const [name, fields] of traitFieldStatesRef.current) {
@@ -45027,7 +45027,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
45027
45027
  const executor = new runtime.EffectExecutor({ handlers: trackingHandlers, bindings: bindingCtx, context: effectContext });
45028
45028
  try {
45029
45029
  await executor.executeAll(result.effects);
45030
- stateLog.info("transition:render-ui-dispatched", {
45030
+ stateLog.debug("transition:render-ui-dispatched", () => ({
45031
45031
  traitName,
45032
45032
  fromState: result.previousState,
45033
45033
  toState: result.newState,
@@ -45036,7 +45036,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
45036
45036
  patternTypes: Array.from(pendingSlots.entries()).map(
45037
45037
  ([slot, patterns]) => `${slot}:[${patterns.map((p2) => p2.pattern?.type ?? "null").join(",")}]`
45038
45038
  ).join(";")
45039
- });
45039
+ }));
45040
45040
  void slotSource;
45041
45041
  for (const [slot, patterns] of pendingSlots) {
45042
45042
  flushSlot(traitName, slot, patterns);
@@ -45205,7 +45205,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
45205
45205
  crossTraitLog.debug("self:fire-skipped-bridge-echo", { traitName, busKey: selfBusKey, eventKey });
45206
45206
  return;
45207
45207
  }
45208
- crossTraitLog.info("self:fire", { traitName, busKey: selfBusKey, eventKey });
45208
+ crossTraitLog.debug("self:fire", { traitName, busKey: selfBusKey, eventKey });
45209
45209
  enqueueAndDrain(eventKey, event.payload);
45210
45210
  });
45211
45211
  unsubscribes.push(() => {
@@ -45231,7 +45231,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
45231
45231
  const busKey = `UI:${sourceOrbital}.${sourceTrait}.${listen.event}`;
45232
45232
  crossTraitLog.debug("listen:subscribed", { busKey, targetTrait: binding.trait.name, sourceOrbital, sourceTrait, listenEvent: listen.event, triggers: listen.triggers });
45233
45233
  const unsub = eventBus.on(busKey, (event) => {
45234
- crossTraitLog.info("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
45234
+ crossTraitLog.debug("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
45235
45235
  enqueueAndDrain(listen.triggers, event.payload);
45236
45236
  });
45237
45237
  unsubscribes.push(() => {
@@ -45765,7 +45765,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
45765
45765
  };
45766
45766
  const props = convertFnFormLambdasInProps(rawProps);
45767
45767
  if (isEmbedded) {
45768
- xOrbitalLog2.info("slot:embed-routed", {
45768
+ xOrbitalLog2.debug("slot:embed-routed", {
45769
45769
  sourceTrait,
45770
45770
  slot: eff.slot,
45771
45771
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -45777,7 +45777,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
45777
45777
  animation: "fade"
45778
45778
  });
45779
45779
  } else {
45780
- xOrbitalLog2.info("slot-write", {
45780
+ xOrbitalLog2.debug("slot-write", {
45781
45781
  slot: eff.slot,
45782
45782
  sourceTrait,
45783
45783
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -45800,12 +45800,12 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
45800
45800
  const onEventProcessed = React135.useCallback(async (event, payload, dispatchedOrbitals) => {
45801
45801
  if (!bridge.connected || !orbitalNames?.length) return;
45802
45802
  const targets = dispatchedOrbitals && dispatchedOrbitals.size > 0 ? orbitalNames.filter((n) => dispatchedOrbitals.has(n)) : orbitalNames;
45803
- xOrbitalLog2.info("TraitInitializer:fanout", {
45803
+ xOrbitalLog2.debug("TraitInitializer:fanout", () => ({
45804
45804
  event,
45805
45805
  sentTo: targets,
45806
45806
  skipped: orbitalNames.filter((n) => !targets.includes(n)),
45807
45807
  dispatchedOrbitalsSize: dispatchedOrbitals?.size ?? 0
45808
- });
45808
+ }));
45809
45809
  for (const name of targets) {
45810
45810
  const { effects, meta } = await bridge.sendEvent(name, event, payload);
45811
45811
  recordServerResponse(name, event, meta);
@@ -45818,7 +45818,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
45818
45818
  React135.useEffect(() => {
45819
45819
  const traitNames = traits2.map((b) => b.trait?.name ?? "").filter(Boolean).sort().join(",");
45820
45820
  if (prevTraitNamesRef.current && prevTraitNamesRef.current !== traitNames) {
45821
- navLog.info("page:trait-set-changed", {
45821
+ navLog.debug("page:trait-set-changed", {
45822
45822
  from: prevTraitNamesRef.current,
45823
45823
  to: traitNames,
45824
45824
  action: "clearAll-slots"
@@ -46085,11 +46085,11 @@ function OrbPreview({
46085
46085
  }, [initialPageName, currentPage]);
46086
46086
  const handleNavigate = React135.useCallback((path) => {
46087
46087
  const match = pages.find(({ page }) => page.path === path);
46088
- navLog.info("handleNavigate", {
46088
+ navLog.debug("handleNavigate", () => ({
46089
46089
  path,
46090
46090
  matched: match?.page.name ?? null,
46091
46091
  availablePaths: pages.map((p2) => p2.page.path)
46092
- });
46092
+ }));
46093
46093
  if (match) {
46094
46094
  setCurrentPage(match.page.name);
46095
46095
  if (typeof window !== "undefined") {
@@ -46111,19 +46111,19 @@ function OrbPreview({
46111
46111
  const el = containerRef.current;
46112
46112
  if (!el) return;
46113
46113
  if (pages.length <= 1) {
46114
- navLog.info("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
46114
+ navLog.debug("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
46115
46115
  return;
46116
46116
  }
46117
46117
  const handler = (e) => {
46118
46118
  const anchor = e.target.closest("a");
46119
46119
  if (!anchor) return;
46120
46120
  const href = anchor.getAttribute("href") ?? anchor.getAttribute("to") ?? "";
46121
- navLog.info("click:intercepted", {
46121
+ navLog.debug("click:intercepted", {
46122
46122
  href,
46123
46123
  anchorText: anchor.textContent?.trim().slice(0, 40)
46124
46124
  });
46125
46125
  if (!href || href.startsWith("http") || href.startsWith("mailto:") || href.startsWith("#")) {
46126
- navLog.info("click:skipped", { href, reason: "external/empty/hash" });
46126
+ navLog.debug("click:skipped", { href, reason: "external/empty/hash" });
46127
46127
  return;
46128
46128
  }
46129
46129
  e.preventDefault();
@@ -10160,7 +10160,7 @@ function recordTransition(trace) {
10160
10160
  ...trace,
10161
10161
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
10162
10162
  };
10163
- log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10163
+ log2.debug("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
10164
10164
  getState().transitions.push(entry);
10165
10165
  if (getState().transitions.length > MAX_TRANSITIONS) {
10166
10166
  getState().transitions.shift();
@@ -43730,7 +43730,7 @@ function MaybeTraitScope({
43730
43730
  const schemaCtx = useEntitySchemaOptional();
43731
43731
  const orbital = sourceTrait !== void 0 && schemaCtx !== null ? schemaCtx.orbitalsByTrait.get(sourceTrait) : void 0;
43732
43732
  const wrap = sourceTrait !== void 0 && orbital !== void 0;
43733
- scopeWrapLog.info("decide", {
43733
+ scopeWrapLog.debug("decide", {
43734
43734
  sourceTrait,
43735
43735
  schemaCtxPresent: schemaCtx !== null,
43736
43736
  orbitalsByTraitSize: schemaCtx?.orbitalsByTrait.size ?? 0,
@@ -44571,7 +44571,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44571
44571
  const slots = uiSlotsRef.current;
44572
44572
  const embedded = embeddedTraitsRef.current;
44573
44573
  if (patterns.length === 0) {
44574
- flushLog.info("clear", { traitName, slot });
44574
+ flushLog.debug("clear", { traitName, slot });
44575
44575
  slots.clearBySource(slot, traitName);
44576
44576
  return;
44577
44577
  }
@@ -44586,7 +44586,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44586
44586
  const props = convertFnFormLambdasInProps(rawProps);
44587
44587
  const isEmbedded = embedded?.has(traitName) ?? false;
44588
44588
  if (isEmbedded) {
44589
- flushLog.info("embed-route", {
44589
+ flushLog.debug("embed-route", {
44590
44590
  traitName,
44591
44591
  slot,
44592
44592
  patternType: typeof patternType === "string" ? patternType : void 0,
@@ -44600,12 +44600,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44600
44600
  });
44601
44601
  return;
44602
44602
  }
44603
- flushLog.info("slot-render", {
44603
+ flushLog.debug("slot-render", () => ({
44604
44604
  traitName,
44605
44605
  slot,
44606
44606
  patternType: typeof patternType === "string" ? patternType : void 0,
44607
44607
  embedded: Array.from(embedded ?? [])
44608
- });
44608
+ }));
44609
44609
  slots.render({
44610
44610
  target: slot,
44611
44611
  pattern: patternType,
@@ -44790,12 +44790,12 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44790
44790
  const bindings = traitBindingsRef.current;
44791
44791
  const currentManager = managerRef.current;
44792
44792
  console.log("[TraitStateMachine] Processing event:", normalizedEvent, "payload:", payload);
44793
- crossTraitLog.debug("processEvent:enter", {
44793
+ crossTraitLog.debug("processEvent:enter", () => ({
44794
44794
  event: normalizedEvent,
44795
44795
  traitCount: bindings.length,
44796
44796
  traitNames: bindings.map((b) => b.trait.name).join(","),
44797
44797
  orbitalsByTrait: JSON.stringify(orbitalsByTrait ?? null)
44798
- });
44798
+ }));
44799
44799
  const bindingMap = new Map(bindings.map((b) => [b.trait.name, b]));
44800
44800
  const entityByTrait = {};
44801
44801
  for (const [name, fields] of traitFieldStatesRef.current) {
@@ -44981,7 +44981,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44981
44981
  const executor = new EffectExecutor({ handlers: trackingHandlers, bindings: bindingCtx, context: effectContext });
44982
44982
  try {
44983
44983
  await executor.executeAll(result.effects);
44984
- stateLog.info("transition:render-ui-dispatched", {
44984
+ stateLog.debug("transition:render-ui-dispatched", () => ({
44985
44985
  traitName,
44986
44986
  fromState: result.previousState,
44987
44987
  toState: result.newState,
@@ -44990,7 +44990,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
44990
44990
  patternTypes: Array.from(pendingSlots.entries()).map(
44991
44991
  ([slot, patterns]) => `${slot}:[${patterns.map((p2) => p2.pattern?.type ?? "null").join(",")}]`
44992
44992
  ).join(";")
44993
- });
44993
+ }));
44994
44994
  void slotSource;
44995
44995
  for (const [slot, patterns] of pendingSlots) {
44996
44996
  flushSlot(traitName, slot, patterns);
@@ -45159,7 +45159,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
45159
45159
  crossTraitLog.debug("self:fire-skipped-bridge-echo", { traitName, busKey: selfBusKey, eventKey });
45160
45160
  return;
45161
45161
  }
45162
- crossTraitLog.info("self:fire", { traitName, busKey: selfBusKey, eventKey });
45162
+ crossTraitLog.debug("self:fire", { traitName, busKey: selfBusKey, eventKey });
45163
45163
  enqueueAndDrain(eventKey, event.payload);
45164
45164
  });
45165
45165
  unsubscribes.push(() => {
@@ -45185,7 +45185,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
45185
45185
  const busKey = `UI:${sourceOrbital}.${sourceTrait}.${listen.event}`;
45186
45186
  crossTraitLog.debug("listen:subscribed", { busKey, targetTrait: binding.trait.name, sourceOrbital, sourceTrait, listenEvent: listen.event, triggers: listen.triggers });
45187
45187
  const unsub = eventBus.on(busKey, (event) => {
45188
- crossTraitLog.info("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
45188
+ crossTraitLog.debug("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
45189
45189
  enqueueAndDrain(listen.triggers, event.payload);
45190
45190
  });
45191
45191
  unsubscribes.push(() => {
@@ -45719,7 +45719,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
45719
45719
  };
45720
45720
  const props = convertFnFormLambdasInProps(rawProps);
45721
45721
  if (isEmbedded) {
45722
- xOrbitalLog2.info("slot:embed-routed", {
45722
+ xOrbitalLog2.debug("slot:embed-routed", {
45723
45723
  sourceTrait,
45724
45724
  slot: eff.slot,
45725
45725
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -45731,7 +45731,7 @@ function applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits) {
45731
45731
  animation: "fade"
45732
45732
  });
45733
45733
  } else {
45734
- xOrbitalLog2.info("slot-write", {
45734
+ xOrbitalLog2.debug("slot-write", {
45735
45735
  slot: eff.slot,
45736
45736
  sourceTrait,
45737
45737
  patternType: typeof patternType === "string" ? patternType : void 0
@@ -45754,12 +45754,12 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
45754
45754
  const onEventProcessed = useCallback(async (event, payload, dispatchedOrbitals) => {
45755
45755
  if (!bridge.connected || !orbitalNames?.length) return;
45756
45756
  const targets = dispatchedOrbitals && dispatchedOrbitals.size > 0 ? orbitalNames.filter((n) => dispatchedOrbitals.has(n)) : orbitalNames;
45757
- xOrbitalLog2.info("TraitInitializer:fanout", {
45757
+ xOrbitalLog2.debug("TraitInitializer:fanout", () => ({
45758
45758
  event,
45759
45759
  sentTo: targets,
45760
45760
  skipped: orbitalNames.filter((n) => !targets.includes(n)),
45761
45761
  dispatchedOrbitalsSize: dispatchedOrbitals?.size ?? 0
45762
- });
45762
+ }));
45763
45763
  for (const name of targets) {
45764
45764
  const { effects, meta } = await bridge.sendEvent(name, event, payload);
45765
45765
  recordServerResponse(name, event, meta);
@@ -45772,7 +45772,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
45772
45772
  useEffect(() => {
45773
45773
  const traitNames = traits2.map((b) => b.trait?.name ?? "").filter(Boolean).sort().join(",");
45774
45774
  if (prevTraitNamesRef.current && prevTraitNamesRef.current !== traitNames) {
45775
- navLog.info("page:trait-set-changed", {
45775
+ navLog.debug("page:trait-set-changed", {
45776
45776
  from: prevTraitNamesRef.current,
45777
45777
  to: traitNames,
45778
45778
  action: "clearAll-slots"
@@ -46039,11 +46039,11 @@ function OrbPreview({
46039
46039
  }, [initialPageName, currentPage]);
46040
46040
  const handleNavigate = useCallback((path) => {
46041
46041
  const match = pages.find(({ page }) => page.path === path);
46042
- navLog.info("handleNavigate", {
46042
+ navLog.debug("handleNavigate", () => ({
46043
46043
  path,
46044
46044
  matched: match?.page.name ?? null,
46045
46045
  availablePaths: pages.map((p2) => p2.page.path)
46046
- });
46046
+ }));
46047
46047
  if (match) {
46048
46048
  setCurrentPage(match.page.name);
46049
46049
  if (typeof window !== "undefined") {
@@ -46065,19 +46065,19 @@ function OrbPreview({
46065
46065
  const el = containerRef.current;
46066
46066
  if (!el) return;
46067
46067
  if (pages.length <= 1) {
46068
- navLog.info("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
46068
+ navLog.debug("interceptor:skipped", { reason: "single-page schema", pageCount: pages.length });
46069
46069
  return;
46070
46070
  }
46071
46071
  const handler = (e) => {
46072
46072
  const anchor = e.target.closest("a");
46073
46073
  if (!anchor) return;
46074
46074
  const href = anchor.getAttribute("href") ?? anchor.getAttribute("to") ?? "";
46075
- navLog.info("click:intercepted", {
46075
+ navLog.debug("click:intercepted", {
46076
46076
  href,
46077
46077
  anchorText: anchor.textContent?.trim().slice(0, 40)
46078
46078
  });
46079
46079
  if (!href || href.startsWith("http") || href.startsWith("mailto:") || href.startsWith("#")) {
46080
- navLog.info("click:skipped", { href, reason: "external/empty/hash" });
46080
+ navLog.debug("click:skipped", { href, reason: "external/empty/hash" });
46081
46081
  return;
46082
46082
  }
46083
46083
  e.preventDefault();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "4.44.0",
3
+ "version": "4.44.1",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [