@almadar/ui 6.27.0 → 6.28.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.
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { ReactNode } from 'react';
3
- import { ResolvedEntity, EventPayload, EntityRow, OrbitalSchema, BusEventSource, SExpr, ResolvedTrait, ResolvedTraitBinding, TraitConfig } from '@almadar/core';
3
+ import { ResolvedEntity, EventPayload, EntityRow, UserContext, OrbitalSchema, BusEventSource, SExpr, ResolvedTrait, ResolvedTraitBinding, TraitConfig } from '@almadar/core';
4
4
  import { AnyPatternConfig } from '@almadar/core/patterns';
5
5
  import { ServerEffectResult, TransitionResult } from '@almadar/runtime';
6
6
 
@@ -169,7 +169,18 @@ interface ServerBridgeContextValue {
169
169
  result: TransitionResult;
170
170
  }>,
171
171
  /** Part G: the client's own current entity snapshot per trait. */
172
- entityByTrait?: Readonly<Record<string, EntityRow>>) => Promise<SendEventResult>;
172
+ entityByTrait?: Readonly<Record<string, EntityRow>>,
173
+ /**
174
+ * The current viewer (persona), for `@user.X` guard/effect bindings.
175
+ * The persona-switcher's picked viewer never used to reach server-side
176
+ * effects on the stateless path — it only ever drove client-side guard
177
+ * evaluation — so a `fetch`/`persist` comparing against `@user.id`
178
+ * (e.g. a chat channel's `member == @user.id` scope filter, a profile
179
+ * page's self-lookup) always compared against `undefined` (confirmed
180
+ * 2026-09-17). `undefined` here sends the request unauthenticated,
181
+ * exactly as before this field existed.
182
+ */
183
+ user?: UserContext) => Promise<SendEventResult>;
173
184
  }
174
185
  /**
175
186
  * Transport adapter for ServerBridgeProvider. Decouples the bridge's
@@ -213,7 +224,9 @@ interface ServerBridgeTransport {
213
224
  * misrouted to the standalone `std-project-manager` orbital of the
214
225
  * same name). An unmodified server ignores the extra field.
215
226
  */
216
- behaviorHint?: string) => Promise<OrbitalEventResponse>;
227
+ behaviorHint?: string,
228
+ /** See `ServerBridgeContextValue.sendEvent`'s `user` param. */
229
+ user?: UserContext) => Promise<OrbitalEventResponse>;
217
230
  }
218
231
  /**
219
232
  * Supplies the bearer token the hosting server authenticates with. Resolved
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { ReactNode } from 'react';
3
- import { ResolvedEntity, EventPayload, EntityRow, OrbitalSchema, BusEventSource, SExpr, ResolvedTrait, ResolvedTraitBinding, TraitConfig } from '@almadar/core';
3
+ import { ResolvedEntity, EventPayload, EntityRow, UserContext, OrbitalSchema, BusEventSource, SExpr, ResolvedTrait, ResolvedTraitBinding, TraitConfig } from '@almadar/core';
4
4
  import { AnyPatternConfig } from '@almadar/core/patterns';
5
5
  import { ServerEffectResult, TransitionResult } from '@almadar/runtime';
6
6
 
@@ -169,7 +169,18 @@ interface ServerBridgeContextValue {
169
169
  result: TransitionResult;
170
170
  }>,
171
171
  /** Part G: the client's own current entity snapshot per trait. */
172
- entityByTrait?: Readonly<Record<string, EntityRow>>) => Promise<SendEventResult>;
172
+ entityByTrait?: Readonly<Record<string, EntityRow>>,
173
+ /**
174
+ * The current viewer (persona), for `@user.X` guard/effect bindings.
175
+ * The persona-switcher's picked viewer never used to reach server-side
176
+ * effects on the stateless path — it only ever drove client-side guard
177
+ * evaluation — so a `fetch`/`persist` comparing against `@user.id`
178
+ * (e.g. a chat channel's `member == @user.id` scope filter, a profile
179
+ * page's self-lookup) always compared against `undefined` (confirmed
180
+ * 2026-09-17). `undefined` here sends the request unauthenticated,
181
+ * exactly as before this field existed.
182
+ */
183
+ user?: UserContext) => Promise<SendEventResult>;
173
184
  }
174
185
  /**
175
186
  * Transport adapter for ServerBridgeProvider. Decouples the bridge's
@@ -213,7 +224,9 @@ interface ServerBridgeTransport {
213
224
  * misrouted to the standalone `std-project-manager` orbital of the
214
225
  * same name). An unmodified server ignores the extra field.
215
226
  */
216
- behaviorHint?: string) => Promise<OrbitalEventResponse>;
227
+ behaviorHint?: string,
228
+ /** See `ServerBridgeContextValue.sendEvent`'s `user` param. */
229
+ user?: UserContext) => Promise<OrbitalEventResponse>;
217
230
  }
218
231
  /**
219
232
  * Supplies the bearer token the hosting server authenticates with. Resolved
@@ -60835,7 +60835,7 @@ function NavStackRefBridge({ apiRef }) {
60835
60835
  }, [api, apiRef]);
60836
60836
  return null;
60837
60837
  }
60838
- function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
60838
+ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, user, children }) {
60839
60839
  const bridge = providers.useServerBridge();
60840
60840
  const activeTraitNames = React96.useMemo(
60841
60841
  () => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
@@ -60867,12 +60867,12 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
60867
60867
  void bridge.sendEvent(name, event, withActiveTraits(payload), tick, sourceTrait);
60868
60868
  continue;
60869
60869
  }
60870
- void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait).then(({ effects, meta }) => {
60870
+ void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait, user ?? void 0).then(({ effects, meta }) => {
60871
60871
  recordServerResponse(name, event, { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
60872
60872
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
60873
60873
  });
60874
60874
  }
60875
- }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits]);
60875
+ }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, user]);
60876
60876
  const opts = orbitalNames ? { onEventProcessed, navigate: onNavigate, navigateBack: onNavigateBack, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams } : { navigate: onNavigate, navigateBack: onNavigateBack, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams };
60877
60877
  const { sendEvent, entityBindingSource } = useTraitStateMachine(traits2, uiSlots, opts);
60878
60878
  const initSentRef = React96.useRef(false);
@@ -60914,7 +60914,17 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
60914
60914
  initSentRef.current = true;
60915
60915
  (async () => {
60916
60916
  for (const name of orbitalNames) {
60917
- const { effects, meta } = await bridge.sendEvent(name, "INIT", withActiveTraits({ ...routeParams ?? {} }));
60917
+ const { effects, meta } = await bridge.sendEvent(
60918
+ name,
60919
+ "INIT",
60920
+ withActiveTraits({ ...routeParams ?? {} }),
60921
+ void 0,
60922
+ void 0,
60923
+ void 0,
60924
+ void 0,
60925
+ void 0,
60926
+ user ?? void 0
60927
+ );
60918
60928
  recordServerResponse(name, "INIT", { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
60919
60929
  const effectTraces = [
60920
60930
  { type: "fetch", args: [], status: "executed" },
@@ -60935,7 +60945,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
60935
60945
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
60936
60946
  }
60937
60947
  })();
60938
- }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
60948
+ }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams, user]);
60939
60949
  return /* @__PURE__ */ jsxRuntime.jsx(providers.EntityBindingContext.Provider, { value: entityBindingSource, children });
60940
60950
  }
60941
60951
  function FitToBox({ children }) {
@@ -60962,7 +60972,7 @@ function FitToBox({ children }) {
60962
60972
  }, []);
60963
60973
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: outerRef, className: "relative h-full w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: innerRef, style: { transform: `scale(${scale})`, transformOrigin: "top left", width: "fit-content" }, children }) });
60964
60974
  }
60965
- function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
60975
+ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, user }) {
60966
60976
  const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
60967
60977
  const allPageTraits = React96.useMemo(() => {
60968
60978
  let base;
@@ -61127,6 +61137,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
61127
61137
  onLocalFallback,
61128
61138
  localFallbackTimeoutMs,
61129
61139
  persistence,
61140
+ user,
61130
61141
  children: /* @__PURE__ */ jsxRuntime.jsx(providers.OrbitalThemeProvider, { theme: activeOrbitalTheme, children: /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "h-full min-h-full overflow-auto p-4", children: /* @__PURE__ */ jsxRuntime.jsx(UISlotRenderer, { includeHud: true, hudMode: "inline", includeFloating: true }) }) })
61131
61142
  }
61132
61143
  )
@@ -61333,7 +61344,8 @@ function OrbPreview({
61333
61344
  onNavigateBack: handleNavigateBack,
61334
61345
  onLocalFallback: handleLocalFallback,
61335
61346
  localFallbackTimeoutMs,
61336
- persistence
61347
+ persistence,
61348
+ user
61337
61349
  }
61338
61350
  ) }) : /* @__PURE__ */ jsxRuntime.jsx(
61339
61351
  SchemaRunner,
@@ -61349,7 +61361,8 @@ function OrbPreview({
61349
61361
  onNavigateBack: handleNavigateBack,
61350
61362
  onLocalFallback: handleLocalFallback,
61351
61363
  localFallbackTimeoutMs,
61352
- persistence
61364
+ persistence,
61365
+ user
61353
61366
  }
61354
61367
  ) }) })
61355
61368
  ]
package/dist/avl/index.js CHANGED
@@ -60759,7 +60759,7 @@ function NavStackRefBridge({ apiRef }) {
60759
60759
  }, [api, apiRef]);
60760
60760
  return null;
60761
60761
  }
60762
- function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
60762
+ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, user, children }) {
60763
60763
  const bridge = useServerBridge();
60764
60764
  const activeTraitNames = useMemo(
60765
60765
  () => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
@@ -60791,12 +60791,12 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
60791
60791
  void bridge.sendEvent(name, event, withActiveTraits(payload), tick, sourceTrait);
60792
60792
  continue;
60793
60793
  }
60794
- void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait).then(({ effects, meta }) => {
60794
+ void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait, user ?? void 0).then(({ effects, meta }) => {
60795
60795
  recordServerResponse(name, event, { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
60796
60796
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
60797
60797
  });
60798
60798
  }
60799
- }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits]);
60799
+ }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, user]);
60800
60800
  const opts = orbitalNames ? { onEventProcessed, navigate: onNavigate, navigateBack: onNavigateBack, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams } : { navigate: onNavigate, navigateBack: onNavigateBack, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams };
60801
60801
  const { sendEvent, entityBindingSource } = useTraitStateMachine(traits2, uiSlots, opts);
60802
60802
  const initSentRef = useRef(false);
@@ -60838,7 +60838,17 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
60838
60838
  initSentRef.current = true;
60839
60839
  (async () => {
60840
60840
  for (const name of orbitalNames) {
60841
- const { effects, meta } = await bridge.sendEvent(name, "INIT", withActiveTraits({ ...routeParams ?? {} }));
60841
+ const { effects, meta } = await bridge.sendEvent(
60842
+ name,
60843
+ "INIT",
60844
+ withActiveTraits({ ...routeParams ?? {} }),
60845
+ void 0,
60846
+ void 0,
60847
+ void 0,
60848
+ void 0,
60849
+ void 0,
60850
+ user ?? void 0
60851
+ );
60842
60852
  recordServerResponse(name, "INIT", { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
60843
60853
  const effectTraces = [
60844
60854
  { type: "fetch", args: [], status: "executed" },
@@ -60859,7 +60869,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
60859
60869
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
60860
60870
  }
60861
60871
  })();
60862
- }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
60872
+ }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams, user]);
60863
60873
  return /* @__PURE__ */ jsx(EntityBindingContext.Provider, { value: entityBindingSource, children });
60864
60874
  }
60865
60875
  function FitToBox({ children }) {
@@ -60886,7 +60896,7 @@ function FitToBox({ children }) {
60886
60896
  }, []);
60887
60897
  return /* @__PURE__ */ jsx("div", { ref: outerRef, className: "relative h-full w-full overflow-hidden", children: /* @__PURE__ */ jsx("div", { ref: innerRef, style: { transform: `scale(${scale})`, transformOrigin: "top left", width: "fit-content" }, children }) });
60888
60898
  }
60889
- function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
60899
+ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, user }) {
60890
60900
  const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
60891
60901
  const allPageTraits = useMemo(() => {
60892
60902
  let base;
@@ -61051,6 +61061,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
61051
61061
  onLocalFallback,
61052
61062
  localFallbackTimeoutMs,
61053
61063
  persistence,
61064
+ user,
61054
61065
  children: /* @__PURE__ */ jsx(OrbitalThemeProvider, { theme: activeOrbitalTheme, children: /* @__PURE__ */ jsx(Box, { className: "h-full min-h-full overflow-auto p-4", children: /* @__PURE__ */ jsx(UISlotRenderer, { includeHud: true, hudMode: "inline", includeFloating: true }) }) })
61055
61066
  }
61056
61067
  )
@@ -61257,7 +61268,8 @@ function OrbPreview({
61257
61268
  onNavigateBack: handleNavigateBack,
61258
61269
  onLocalFallback: handleLocalFallback,
61259
61270
  localFallbackTimeoutMs,
61260
- persistence
61271
+ persistence,
61272
+ user
61261
61273
  }
61262
61274
  ) }) : /* @__PURE__ */ jsx(
61263
61275
  SchemaRunner,
@@ -61273,7 +61285,8 @@ function OrbPreview({
61273
61285
  onNavigateBack: handleNavigateBack,
61274
61286
  onLocalFallback: handleLocalFallback,
61275
61287
  localFallbackTimeoutMs,
61276
- persistence
61288
+ persistence,
61289
+ user
61277
61290
  }
61278
61291
  ) }) })
61279
61292
  ]
@@ -54890,7 +54890,7 @@ function createHttpTransport(serverUrl, getAccessToken) {
54890
54890
  } catch {
54891
54891
  }
54892
54892
  },
54893
- sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait, behaviorHint) => {
54893
+ sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait, behaviorHint, user) => {
54894
54894
  const traits2 = results?.map((r) => ({ trait: r.traitName, from: r.result.previousState }));
54895
54895
  const body = {
54896
54896
  event,
@@ -54911,7 +54911,8 @@ function createHttpTransport(serverUrl, getAccessToken) {
54911
54911
  // "do nothing" and break every organism's INIT on the stateless path.
54912
54912
  ...results !== void 0 ? { traits: traits2 ?? [] } : {},
54913
54913
  ...entityByTrait ? { entityByTrait } : {},
54914
- ...behaviorHint !== void 0 ? { behavior: behaviorHint } : {}
54914
+ ...behaviorHint !== void 0 ? { behavior: behaviorHint } : {},
54915
+ ...user ? { user } : {}
54915
54916
  };
54916
54917
  const res = await fetch(`${serverUrl}/${orbitalName}/events`, {
54917
54918
  method: "POST",
@@ -54973,7 +54974,7 @@ function ServerBridgeProvider({
54973
54974
  disposedRef.current = true;
54974
54975
  };
54975
54976
  }, []);
54976
- const sendEvent = React89.useCallback(async (orbitalName, event, payload, tick, sourceTrait, locallyEmitted, results, entityByTrait) => {
54977
+ const sendEvent = React89.useCallback(async (orbitalName, event, payload, tick, sourceTrait, locallyEmitted, results, entityByTrait, user) => {
54977
54978
  const emptyMeta = { success: false, transitioned: false, clientEffects: 0, dataEntities: {}, emittedEvents: [] };
54978
54979
  if (!connected) return { effects: [], meta: emptyMeta };
54979
54980
  if (tick !== void 0) {
@@ -54983,7 +54984,7 @@ function ServerBridgeProvider({
54983
54984
  return commandPump.enqueue(async () => {
54984
54985
  if (disposedRef.current) return { effects: [], meta: emptyMeta };
54985
54986
  try {
54986
- const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait, schema.name);
54987
+ const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait, schema.name, user);
54987
54988
  const effects = [];
54988
54989
  const responseData = result.data || {};
54989
54990
  const dataEntities = {};
@@ -6,7 +6,7 @@ export { a as CurrentPagePathContext, b as CurrentPagePathProvider, c as Current
6
6
  import { b as UserData } from '../UserContext-D566nfWA.cjs';
7
7
  export { U as UserContext, a as UserContextValue, c as UserProvider, d as UserProviderProps, u as useHasPermission, e as useHasRole, f as useUser, g as useUserForEvaluation } from '../UserContext-D566nfWA.cjs';
8
8
  import { E as EventBusContextType } from '../event-bus-types-Bl78kokd.cjs';
9
- export { A as AccessTokenProvider, E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-CTZw2DbY.cjs';
9
+ export { A as AccessTokenProvider, E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-C6FgxdfG.cjs';
10
10
  import { i as UseOfflineExecutorResult, U as UseOfflineExecutorOptions } from '../offline-executor-DdV2o0Zu.cjs';
11
11
  export { N as NavigationContextValue, c as NavigationProvider, d as NavigationProviderProps, e as NavigationState, j as comparePathSpecificity, l as extractRouteParams, m as findPageByName, n as findPageByPath, o as getAllPages, p as getDefaultPage, q as matchPath, r as matchPathAmong, s as pathMatches, u as useActivePage, t as useInitPayload, v as useNavigateTo, w as useNavigation, x as useNavigationId, y as useNavigationState } from '../offline-executor-DdV2o0Zu.cjs';
12
12
  import '../verificationRegistry-DTrKDRoa.cjs';
@@ -6,7 +6,7 @@ export { a as CurrentPagePathContext, b as CurrentPagePathProvider, c as Current
6
6
  import { b as UserData } from '../UserContext-D566nfWA.js';
7
7
  export { U as UserContext, a as UserContextValue, c as UserProvider, d as UserProviderProps, u as useHasPermission, e as useHasRole, f as useUser, g as useUserForEvaluation } from '../UserContext-D566nfWA.js';
8
8
  import { E as EventBusContextType } from '../event-bus-types-Bl78kokd.js';
9
- export { A as AccessTokenProvider, E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-CTZw2DbY.js';
9
+ export { A as AccessTokenProvider, E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-C6FgxdfG.js';
10
10
  import { i as UseOfflineExecutorResult, U as UseOfflineExecutorOptions } from '../offline-executor-DdV2o0Zu.js';
11
11
  export { N as NavigationContextValue, c as NavigationProvider, d as NavigationProviderProps, e as NavigationState, j as comparePathSpecificity, l as extractRouteParams, m as findPageByName, n as findPageByPath, o as getAllPages, p as getDefaultPage, q as matchPath, r as matchPathAmong, s as pathMatches, u as useActivePage, t as useInitPayload, v as useNavigateTo, w as useNavigation, x as useNavigationId, y as useNavigationState } from '../offline-executor-DdV2o0Zu.js';
12
12
  import '../verificationRegistry-Cwa52VyK.js';
@@ -54816,7 +54816,7 @@ function createHttpTransport(serverUrl, getAccessToken) {
54816
54816
  } catch {
54817
54817
  }
54818
54818
  },
54819
- sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait, behaviorHint) => {
54819
+ sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait, behaviorHint, user) => {
54820
54820
  const traits2 = results?.map((r) => ({ trait: r.traitName, from: r.result.previousState }));
54821
54821
  const body = {
54822
54822
  event,
@@ -54837,7 +54837,8 @@ function createHttpTransport(serverUrl, getAccessToken) {
54837
54837
  // "do nothing" and break every organism's INIT on the stateless path.
54838
54838
  ...results !== void 0 ? { traits: traits2 ?? [] } : {},
54839
54839
  ...entityByTrait ? { entityByTrait } : {},
54840
- ...behaviorHint !== void 0 ? { behavior: behaviorHint } : {}
54840
+ ...behaviorHint !== void 0 ? { behavior: behaviorHint } : {},
54841
+ ...user ? { user } : {}
54841
54842
  };
54842
54843
  const res = await fetch(`${serverUrl}/${orbitalName}/events`, {
54843
54844
  method: "POST",
@@ -54899,7 +54900,7 @@ function ServerBridgeProvider({
54899
54900
  disposedRef.current = true;
54900
54901
  };
54901
54902
  }, []);
54902
- const sendEvent = useCallback(async (orbitalName, event, payload, tick, sourceTrait, locallyEmitted, results, entityByTrait) => {
54903
+ const sendEvent = useCallback(async (orbitalName, event, payload, tick, sourceTrait, locallyEmitted, results, entityByTrait, user) => {
54903
54904
  const emptyMeta = { success: false, transitioned: false, clientEffects: 0, dataEntities: {}, emittedEvents: [] };
54904
54905
  if (!connected) return { effects: [], meta: emptyMeta };
54905
54906
  if (tick !== void 0) {
@@ -54909,7 +54910,7 @@ function ServerBridgeProvider({
54909
54910
  return commandPump.enqueue(async () => {
54910
54911
  if (disposedRef.current) return { effects: [], meta: emptyMeta };
54911
54912
  try {
54912
- const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait, schema.name);
54913
+ const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait, schema.name, user);
54913
54914
  const effects = [];
54914
54915
  const responseData = result.data || {};
54915
54916
  const dataEntities = {};
@@ -55062,7 +55062,7 @@ function NavStackRefBridge({ apiRef }) {
55062
55062
  }, [api, apiRef]);
55063
55063
  return null;
55064
55064
  }
55065
- function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
55065
+ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, user, children }) {
55066
55066
  const bridge = providers.useServerBridge();
55067
55067
  const activeTraitNames = React87.useMemo(
55068
55068
  () => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
@@ -55094,12 +55094,12 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
55094
55094
  void bridge.sendEvent(name, event, withActiveTraits(payload), tick, sourceTrait);
55095
55095
  continue;
55096
55096
  }
55097
- void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait).then(({ effects, meta }) => {
55097
+ void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait, user ?? void 0).then(({ effects, meta }) => {
55098
55098
  recordServerResponse(name, event, { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
55099
55099
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
55100
55100
  });
55101
55101
  }
55102
- }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits]);
55102
+ }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, user]);
55103
55103
  const opts = orbitalNames ? { onEventProcessed, navigate: onNavigate, navigateBack: onNavigateBack, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams } : { navigate: onNavigate, navigateBack: onNavigateBack, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams };
55104
55104
  const { sendEvent, entityBindingSource } = useTraitStateMachine(traits2, uiSlots, opts);
55105
55105
  const initSentRef = React87.useRef(false);
@@ -55141,7 +55141,17 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
55141
55141
  initSentRef.current = true;
55142
55142
  (async () => {
55143
55143
  for (const name of orbitalNames) {
55144
- const { effects, meta } = await bridge.sendEvent(name, "INIT", withActiveTraits({ ...routeParams ?? {} }));
55144
+ const { effects, meta } = await bridge.sendEvent(
55145
+ name,
55146
+ "INIT",
55147
+ withActiveTraits({ ...routeParams ?? {} }),
55148
+ void 0,
55149
+ void 0,
55150
+ void 0,
55151
+ void 0,
55152
+ void 0,
55153
+ user ?? void 0
55154
+ );
55145
55155
  recordServerResponse(name, "INIT", { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
55146
55156
  const effectTraces = [
55147
55157
  { type: "fetch", args: [], status: "executed" },
@@ -55162,7 +55172,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
55162
55172
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
55163
55173
  }
55164
55174
  })();
55165
- }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
55175
+ }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams, user]);
55166
55176
  return /* @__PURE__ */ jsxRuntime.jsx(providers.EntityBindingContext.Provider, { value: entityBindingSource, children });
55167
55177
  }
55168
55178
  function FitToBox({ children }) {
@@ -55189,7 +55199,7 @@ function FitToBox({ children }) {
55189
55199
  }, []);
55190
55200
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: outerRef, className: "relative h-full w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: innerRef, style: { transform: `scale(${scale})`, transformOrigin: "top left", width: "fit-content" }, children }) });
55191
55201
  }
55192
- function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
55202
+ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, user }) {
55193
55203
  const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
55194
55204
  const allPageTraits = React87.useMemo(() => {
55195
55205
  let base;
@@ -55354,6 +55364,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
55354
55364
  onLocalFallback,
55355
55365
  localFallbackTimeoutMs,
55356
55366
  persistence,
55367
+ user,
55357
55368
  children: /* @__PURE__ */ jsxRuntime.jsx(providers.OrbitalThemeProvider, { theme: activeOrbitalTheme, children: /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "h-full min-h-full overflow-auto p-4", children: /* @__PURE__ */ jsxRuntime.jsx(UISlotRenderer, { includeHud: true, hudMode: "inline", includeFloating: true }) }) })
55358
55369
  }
55359
55370
  )
@@ -55560,7 +55571,8 @@ function OrbPreview({
55560
55571
  onNavigateBack: handleNavigateBack,
55561
55572
  onLocalFallback: handleLocalFallback,
55562
55573
  localFallbackTimeoutMs,
55563
- persistence
55574
+ persistence,
55575
+ user
55564
55576
  }
55565
55577
  ) }) : /* @__PURE__ */ jsxRuntime.jsx(
55566
55578
  SchemaRunner,
@@ -55576,7 +55588,8 @@ function OrbPreview({
55576
55588
  onNavigateBack: handleNavigateBack,
55577
55589
  onLocalFallback: handleLocalFallback,
55578
55590
  localFallbackTimeoutMs,
55579
- persistence
55591
+ persistence,
55592
+ user
55580
55593
  }
55581
55594
  ) }) })
55582
55595
  ]
@@ -5,8 +5,8 @@ import * as _almadar_runtime from '@almadar/runtime';
5
5
  import { TraitState, TransitionResult, EffectHandlers } from '@almadar/runtime';
6
6
  import { K as KeyCaptureTable } from '../useKeyboardRouter-CVn8lfiX.cjs';
7
7
  import { c as useUISlots } from '../UISlotContext-BlRDbHDy.cjs';
8
- import { a as EntityBindingSource, h as ServerBridgeTransport, A as AccessTokenProvider } from '../EntityBindingContext-CTZw2DbY.cjs';
9
- export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-CTZw2DbY.cjs';
8
+ import { a as EntityBindingSource, h as ServerBridgeTransport, A as AccessTokenProvider } from '../EntityBindingContext-C6FgxdfG.cjs';
9
+ export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-C6FgxdfG.cjs';
10
10
  import '../verificationRegistry-DTrKDRoa.cjs';
11
11
  export { PERF_NAMESPACE, PerfEntry, PreparedPreviewSchema, adjustSchemaForMockData, buildMockData, clearPerf, perfEnd, perfStart, perfTime, prepareSchemaForPreview, wrapCallbackForEvent } from '@almadar/runtime/ui';
12
12
  import React__default, { ReactNode } from 'react';
@@ -5,8 +5,8 @@ import * as _almadar_runtime from '@almadar/runtime';
5
5
  import { TraitState, TransitionResult, EffectHandlers } from '@almadar/runtime';
6
6
  import { K as KeyCaptureTable } from '../useKeyboardRouter-B1pIi9jo.js';
7
7
  import { c as useUISlots } from '../UISlotContext-CB89mv7N.js';
8
- import { a as EntityBindingSource, h as ServerBridgeTransport, A as AccessTokenProvider } from '../EntityBindingContext-CTZw2DbY.js';
9
- export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-CTZw2DbY.js';
8
+ import { a as EntityBindingSource, h as ServerBridgeTransport, A as AccessTokenProvider } from '../EntityBindingContext-C6FgxdfG.js';
9
+ export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-C6FgxdfG.js';
10
10
  import '../verificationRegistry-Cwa52VyK.js';
11
11
  export { PERF_NAMESPACE, PerfEntry, PreparedPreviewSchema, adjustSchemaForMockData, buildMockData, clearPerf, perfEnd, perfStart, perfTime, prepareSchemaForPreview, wrapCallbackForEvent } from '@almadar/runtime/ui';
12
12
  import React__default, { ReactNode } from 'react';
@@ -54988,7 +54988,7 @@ function NavStackRefBridge({ apiRef }) {
54988
54988
  }, [api, apiRef]);
54989
54989
  return null;
54990
54990
  }
54991
- function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
54991
+ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, user, children }) {
54992
54992
  const bridge = useServerBridge();
54993
54993
  const activeTraitNames = useMemo(
54994
54994
  () => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
@@ -55020,12 +55020,12 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
55020
55020
  void bridge.sendEvent(name, event, withActiveTraits(payload), tick, sourceTrait);
55021
55021
  continue;
55022
55022
  }
55023
- void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait).then(({ effects, meta }) => {
55023
+ void bridge.sendEvent(name, event, withActiveTraits(payload), void 0, void 0, locallyEmitted, results, entityByTrait, user ?? void 0).then(({ effects, meta }) => {
55024
55024
  recordServerResponse(name, event, { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
55025
55025
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
55026
55026
  });
55027
55027
  }
55028
- }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits]);
55028
+ }, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, user]);
55029
55029
  const opts = orbitalNames ? { onEventProcessed, navigate: onNavigate, navigateBack: onNavigateBack, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams } : { navigate: onNavigate, navigateBack: onNavigateBack, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, initPayload: routeParams };
55030
55030
  const { sendEvent, entityBindingSource } = useTraitStateMachine(traits2, uiSlots, opts);
55031
55031
  const initSentRef = useRef(false);
@@ -55067,7 +55067,17 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
55067
55067
  initSentRef.current = true;
55068
55068
  (async () => {
55069
55069
  for (const name of orbitalNames) {
55070
- const { effects, meta } = await bridge.sendEvent(name, "INIT", withActiveTraits({ ...routeParams ?? {} }));
55070
+ const { effects, meta } = await bridge.sendEvent(
55071
+ name,
55072
+ "INIT",
55073
+ withActiveTraits({ ...routeParams ?? {} }),
55074
+ void 0,
55075
+ void 0,
55076
+ void 0,
55077
+ void 0,
55078
+ void 0,
55079
+ user ?? void 0
55080
+ );
55071
55081
  recordServerResponse(name, "INIT", { ...meta, effectResults: effectResultsToTraces(meta.effectResults) });
55072
55082
  const effectTraces = [
55073
55083
  { type: "fetch", args: [], status: "executed" },
@@ -55088,7 +55098,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
55088
55098
  applyServerEffects(effects, uiSlots, onNavigate, embeddedTraits, activeTraitNamesRef.current, onNavigateBack);
55089
55099
  }
55090
55100
  })();
55091
- }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
55101
+ }, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams, user]);
55092
55102
  return /* @__PURE__ */ jsx(EntityBindingContext.Provider, { value: entityBindingSource, children });
55093
55103
  }
55094
55104
  function FitToBox({ children }) {
@@ -55115,7 +55125,7 @@ function FitToBox({ children }) {
55115
55125
  }, []);
55116
55126
  return /* @__PURE__ */ jsx("div", { ref: outerRef, className: "relative h-full w-full overflow-hidden", children: /* @__PURE__ */ jsx("div", { ref: innerRef, style: { transform: `scale(${scale})`, transformOrigin: "top left", width: "fit-content" }, children }) });
55117
55127
  }
55118
- function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
55128
+ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, user }) {
55119
55129
  const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
55120
55130
  const allPageTraits = useMemo(() => {
55121
55131
  let base;
@@ -55280,6 +55290,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
55280
55290
  onLocalFallback,
55281
55291
  localFallbackTimeoutMs,
55282
55292
  persistence,
55293
+ user,
55283
55294
  children: /* @__PURE__ */ jsx(OrbitalThemeProvider, { theme: activeOrbitalTheme, children: /* @__PURE__ */ jsx(Box, { className: "h-full min-h-full overflow-auto p-4", children: /* @__PURE__ */ jsx(UISlotRenderer, { includeHud: true, hudMode: "inline", includeFloating: true }) }) })
55284
55295
  }
55285
55296
  )
@@ -55486,7 +55497,8 @@ function OrbPreview({
55486
55497
  onNavigateBack: handleNavigateBack,
55487
55498
  onLocalFallback: handleLocalFallback,
55488
55499
  localFallbackTimeoutMs,
55489
- persistence
55500
+ persistence,
55501
+ user
55490
55502
  }
55491
55503
  ) }) : /* @__PURE__ */ jsx(
55492
55504
  SchemaRunner,
@@ -55502,7 +55514,8 @@ function OrbPreview({
55502
55514
  onNavigateBack: handleNavigateBack,
55503
55515
  onLocalFallback: handleLocalFallback,
55504
55516
  localFallbackTimeoutMs,
55505
- persistence
55517
+ persistence,
55518
+ user
55506
55519
  }
55507
55520
  ) }) })
55508
55521
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "6.27.0",
3
+ "version": "6.28.0",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [