@almadar/ui 6.21.0 → 6.23.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.
- package/dist/{EntityBindingContext-DoK8Xq71.d.cts → EntityBindingContext-CTZw2DbY.d.cts} +14 -1
- package/dist/{EntityBindingContext-DoK8Xq71.d.ts → EntityBindingContext-CTZw2DbY.d.ts} +14 -1
- package/dist/avl/index.cjs +9 -5
- package/dist/avl/index.js +9 -5
- package/dist/providers/index.cjs +7 -6
- package/dist/providers/index.d.cts +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.js +7 -6
- package/dist/runtime/index.cjs +9 -5
- package/dist/runtime/index.d.cts +12 -3
- package/dist/runtime/index.d.ts +12 -3
- package/dist/runtime/index.js +9 -5
- package/package.json +1 -1
|
@@ -200,7 +200,20 @@ interface ServerBridgeTransport {
|
|
|
200
200
|
sendEvent: (orbitalName: string, event: string, payload?: EventPayload, clientId?: string, tick?: string, sourceTrait?: string, results?: ReadonlyArray<{
|
|
201
201
|
traitName: string;
|
|
202
202
|
result: TransitionResult;
|
|
203
|
-
}>, entityByTrait?: Readonly<Record<string, EntityRow
|
|
203
|
+
}>, entityByTrait?: Readonly<Record<string, EntityRow>>,
|
|
204
|
+
/**
|
|
205
|
+
* The mounted top-level schema's own `name` (`ServerBridgeProvider`'s
|
|
206
|
+
* `schema` prop). Orbital names are not unique across a hosting
|
|
207
|
+
* server's whole catalog — a "whole orbital import" copies an existing
|
|
208
|
+
* orbital wholesale into a new behavior, so two catalog entries can
|
|
209
|
+
* declare an orbital with the identical name — this disambiguates
|
|
210
|
+
* which one a stateless server should resolve against instead of it
|
|
211
|
+
* guessing from a global orbital-name reverse index (verified
|
|
212
|
+
* 2026-09-16: project-friday's own imported `TaskOrbital` was
|
|
213
|
+
* misrouted to the standalone `std-project-manager` orbital of the
|
|
214
|
+
* same name). An unmodified server ignores the extra field.
|
|
215
|
+
*/
|
|
216
|
+
behaviorHint?: string) => Promise<OrbitalEventResponse>;
|
|
204
217
|
}
|
|
205
218
|
/**
|
|
206
219
|
* Supplies the bearer token the hosting server authenticates with. Resolved
|
|
@@ -200,7 +200,20 @@ interface ServerBridgeTransport {
|
|
|
200
200
|
sendEvent: (orbitalName: string, event: string, payload?: EventPayload, clientId?: string, tick?: string, sourceTrait?: string, results?: ReadonlyArray<{
|
|
201
201
|
traitName: string;
|
|
202
202
|
result: TransitionResult;
|
|
203
|
-
}>, entityByTrait?: Readonly<Record<string, EntityRow
|
|
203
|
+
}>, entityByTrait?: Readonly<Record<string, EntityRow>>,
|
|
204
|
+
/**
|
|
205
|
+
* The mounted top-level schema's own `name` (`ServerBridgeProvider`'s
|
|
206
|
+
* `schema` prop). Orbital names are not unique across a hosting
|
|
207
|
+
* server's whole catalog — a "whole orbital import" copies an existing
|
|
208
|
+
* orbital wholesale into a new behavior, so two catalog entries can
|
|
209
|
+
* declare an orbital with the identical name — this disambiguates
|
|
210
|
+
* which one a stateless server should resolve against instead of it
|
|
211
|
+
* guessing from a global orbital-name reverse index (verified
|
|
212
|
+
* 2026-09-16: project-friday's own imported `TaskOrbital` was
|
|
213
|
+
* misrouted to the standalone `std-project-manager` orbital of the
|
|
214
|
+
* same name). An unmodified server ignores the extra field.
|
|
215
|
+
*/
|
|
216
|
+
behaviorHint?: string) => Promise<OrbitalEventResponse>;
|
|
204
217
|
}
|
|
205
218
|
/**
|
|
206
219
|
* Supplies the bearer token the hosting server authenticates with. Resolved
|
package/dist/avl/index.cjs
CHANGED
|
@@ -60549,7 +60549,7 @@ function NavStackRefBridge({ apiRef }) {
|
|
|
60549
60549
|
}, [api, apiRef]);
|
|
60550
60550
|
return null;
|
|
60551
60551
|
}
|
|
60552
|
-
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
60552
|
+
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
60553
60553
|
const bridge = providers.useServerBridge();
|
|
60554
60554
|
const activeTraitNames = React96.useMemo(
|
|
60555
60555
|
() => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
|
|
@@ -60616,9 +60616,9 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
60616
60616
|
sendEvent("INIT", routeParams);
|
|
60617
60617
|
onLocalFallback?.();
|
|
60618
60618
|
}
|
|
60619
|
-
}, 5e3);
|
|
60619
|
+
}, localFallbackTimeoutMs ?? 5e3);
|
|
60620
60620
|
return () => clearTimeout(fallback);
|
|
60621
|
-
}, [traits2, orbitalNames, sendEvent, onLocalFallback, routeParams]);
|
|
60621
|
+
}, [traits2, orbitalNames, sendEvent, onLocalFallback, localFallbackTimeoutMs, routeParams]);
|
|
60622
60622
|
React96.useEffect(() => {
|
|
60623
60623
|
if (!bridge.connected || !orbitalNames?.length || initSentRef.current) return;
|
|
60624
60624
|
initSentRef.current = true;
|
|
@@ -60672,7 +60672,7 @@ function FitToBox({ children }) {
|
|
|
60672
60672
|
}, []);
|
|
60673
60673
|
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 }) });
|
|
60674
60674
|
}
|
|
60675
|
-
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
60675
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
|
|
60676
60676
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
60677
60677
|
const allPageTraits = React96.useMemo(() => {
|
|
60678
60678
|
let base;
|
|
@@ -60835,6 +60835,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
|
|
|
60835
60835
|
onNavigate,
|
|
60836
60836
|
onNavigateBack,
|
|
60837
60837
|
onLocalFallback,
|
|
60838
|
+
localFallbackTimeoutMs,
|
|
60838
60839
|
persistence,
|
|
60839
60840
|
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 }) }) })
|
|
60840
60841
|
}
|
|
@@ -60858,7 +60859,8 @@ function OrbPreview({
|
|
|
60858
60859
|
initialPagePath,
|
|
60859
60860
|
isolated = false,
|
|
60860
60861
|
fit = false,
|
|
60861
|
-
user = null
|
|
60862
|
+
user = null,
|
|
60863
|
+
localFallbackTimeoutMs
|
|
60862
60864
|
}) {
|
|
60863
60865
|
if (serverUrl && transport) {
|
|
60864
60866
|
throw new Error("OrbPreview accepts serverUrl OR transport, not both");
|
|
@@ -61040,6 +61042,7 @@ function OrbPreview({
|
|
|
61040
61042
|
onNavigate: handleNavigateEffect,
|
|
61041
61043
|
onNavigateBack: handleNavigateBack,
|
|
61042
61044
|
onLocalFallback: handleLocalFallback,
|
|
61045
|
+
localFallbackTimeoutMs,
|
|
61043
61046
|
persistence
|
|
61044
61047
|
}
|
|
61045
61048
|
) }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -61055,6 +61058,7 @@ function OrbPreview({
|
|
|
61055
61058
|
onNavigate: handleNavigateEffect,
|
|
61056
61059
|
onNavigateBack: handleNavigateBack,
|
|
61057
61060
|
onLocalFallback: handleLocalFallback,
|
|
61061
|
+
localFallbackTimeoutMs,
|
|
61058
61062
|
persistence
|
|
61059
61063
|
}
|
|
61060
61064
|
) }) })
|
package/dist/avl/index.js
CHANGED
|
@@ -60473,7 +60473,7 @@ function NavStackRefBridge({ apiRef }) {
|
|
|
60473
60473
|
}, [api, apiRef]);
|
|
60474
60474
|
return null;
|
|
60475
60475
|
}
|
|
60476
|
-
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
60476
|
+
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
60477
60477
|
const bridge = useServerBridge();
|
|
60478
60478
|
const activeTraitNames = useMemo(
|
|
60479
60479
|
() => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
|
|
@@ -60540,9 +60540,9 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
60540
60540
|
sendEvent("INIT", routeParams);
|
|
60541
60541
|
onLocalFallback?.();
|
|
60542
60542
|
}
|
|
60543
|
-
}, 5e3);
|
|
60543
|
+
}, localFallbackTimeoutMs ?? 5e3);
|
|
60544
60544
|
return () => clearTimeout(fallback);
|
|
60545
|
-
}, [traits2, orbitalNames, sendEvent, onLocalFallback, routeParams]);
|
|
60545
|
+
}, [traits2, orbitalNames, sendEvent, onLocalFallback, localFallbackTimeoutMs, routeParams]);
|
|
60546
60546
|
useEffect(() => {
|
|
60547
60547
|
if (!bridge.connected || !orbitalNames?.length || initSentRef.current) return;
|
|
60548
60548
|
initSentRef.current = true;
|
|
@@ -60596,7 +60596,7 @@ function FitToBox({ children }) {
|
|
|
60596
60596
|
}, []);
|
|
60597
60597
|
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 }) });
|
|
60598
60598
|
}
|
|
60599
|
-
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
60599
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
|
|
60600
60600
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
60601
60601
|
const allPageTraits = useMemo(() => {
|
|
60602
60602
|
let base;
|
|
@@ -60759,6 +60759,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
|
|
|
60759
60759
|
onNavigate,
|
|
60760
60760
|
onNavigateBack,
|
|
60761
60761
|
onLocalFallback,
|
|
60762
|
+
localFallbackTimeoutMs,
|
|
60762
60763
|
persistence,
|
|
60763
60764
|
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 }) }) })
|
|
60764
60765
|
}
|
|
@@ -60782,7 +60783,8 @@ function OrbPreview({
|
|
|
60782
60783
|
initialPagePath,
|
|
60783
60784
|
isolated = false,
|
|
60784
60785
|
fit = false,
|
|
60785
|
-
user = null
|
|
60786
|
+
user = null,
|
|
60787
|
+
localFallbackTimeoutMs
|
|
60786
60788
|
}) {
|
|
60787
60789
|
if (serverUrl && transport) {
|
|
60788
60790
|
throw new Error("OrbPreview accepts serverUrl OR transport, not both");
|
|
@@ -60964,6 +60966,7 @@ function OrbPreview({
|
|
|
60964
60966
|
onNavigate: handleNavigateEffect,
|
|
60965
60967
|
onNavigateBack: handleNavigateBack,
|
|
60966
60968
|
onLocalFallback: handleLocalFallback,
|
|
60969
|
+
localFallbackTimeoutMs,
|
|
60967
60970
|
persistence
|
|
60968
60971
|
}
|
|
60969
60972
|
) }) : /* @__PURE__ */ jsx(
|
|
@@ -60979,6 +60982,7 @@ function OrbPreview({
|
|
|
60979
60982
|
onNavigate: handleNavigateEffect,
|
|
60980
60983
|
onNavigateBack: handleNavigateBack,
|
|
60981
60984
|
onLocalFallback: handleLocalFallback,
|
|
60985
|
+
localFallbackTimeoutMs,
|
|
60982
60986
|
persistence
|
|
60983
60987
|
}
|
|
60984
60988
|
) }) })
|
package/dist/providers/index.cjs
CHANGED
|
@@ -54647,7 +54647,7 @@ function createHttpTransport(serverUrl, getAccessToken) {
|
|
|
54647
54647
|
} catch {
|
|
54648
54648
|
}
|
|
54649
54649
|
},
|
|
54650
|
-
sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait) => {
|
|
54650
|
+
sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait, behaviorHint) => {
|
|
54651
54651
|
const traits2 = results?.map((r) => ({ trait: r.traitName, from: r.result.previousState }));
|
|
54652
54652
|
const body = {
|
|
54653
54653
|
event,
|
|
@@ -54667,7 +54667,8 @@ function createHttpTransport(serverUrl, getAccessToken) {
|
|
|
54667
54667
|
// `traits`" would make the mount-time case indistinguishable from
|
|
54668
54668
|
// "do nothing" and break every organism's INIT on the stateless path.
|
|
54669
54669
|
...results !== void 0 ? { traits: traits2 ?? [] } : {},
|
|
54670
|
-
...entityByTrait ? { entityByTrait } : {}
|
|
54670
|
+
...entityByTrait ? { entityByTrait } : {},
|
|
54671
|
+
...behaviorHint !== void 0 ? { behavior: behaviorHint } : {}
|
|
54671
54672
|
};
|
|
54672
54673
|
const res = await fetch(`${serverUrl}/${orbitalName}/events`, {
|
|
54673
54674
|
method: "POST",
|
|
@@ -54716,9 +54717,9 @@ function ServerBridgeProvider({
|
|
|
54716
54717
|
);
|
|
54717
54718
|
const tickRelay = React89.useMemo(
|
|
54718
54719
|
() => createTickSendRelay(async (_key, snap) => {
|
|
54719
|
-
await transport.sendEvent(snap.orbitalName, snap.event, snap.payload, getTabClientId(), snap.tick, snap.sourceTrait);
|
|
54720
|
+
await transport.sendEvent(snap.orbitalName, snap.event, snap.payload, getTabClientId(), snap.tick, snap.sourceTrait, void 0, void 0, schema.name);
|
|
54720
54721
|
}),
|
|
54721
|
-
[transport]
|
|
54722
|
+
[transport, schema.name]
|
|
54722
54723
|
);
|
|
54723
54724
|
React89.useEffect(() => () => tickRelay.clear(), [tickRelay]);
|
|
54724
54725
|
const commandPump = React89.useMemo(createCommandSendPump, []);
|
|
@@ -54739,7 +54740,7 @@ function ServerBridgeProvider({
|
|
|
54739
54740
|
return commandPump.enqueue(async () => {
|
|
54740
54741
|
if (disposedRef.current) return { effects: [], meta: emptyMeta };
|
|
54741
54742
|
try {
|
|
54742
|
-
const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait);
|
|
54743
|
+
const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait, schema.name);
|
|
54743
54744
|
const effects = [];
|
|
54744
54745
|
const responseData = result.data || {};
|
|
54745
54746
|
const dataEntities = {};
|
|
@@ -54820,7 +54821,7 @@ function ServerBridgeProvider({
|
|
|
54820
54821
|
return { effects: [], meta: { ...emptyMeta, error: msg } };
|
|
54821
54822
|
}
|
|
54822
54823
|
});
|
|
54823
|
-
}, [connected, transport, eventBus, tickRelay, commandPump]);
|
|
54824
|
+
}, [connected, transport, eventBus, tickRelay, commandPump, schema.name]);
|
|
54824
54825
|
React89.useEffect(() => {
|
|
54825
54826
|
if (!schema) return;
|
|
54826
54827
|
let cancelled = false;
|
|
@@ -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-
|
|
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';
|
|
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-
|
|
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';
|
|
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';
|
package/dist/providers/index.js
CHANGED
|
@@ -54573,7 +54573,7 @@ function createHttpTransport(serverUrl, getAccessToken) {
|
|
|
54573
54573
|
} catch {
|
|
54574
54574
|
}
|
|
54575
54575
|
},
|
|
54576
|
-
sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait) => {
|
|
54576
|
+
sendEvent: async (orbitalName, event, payload, clientId, tick, sourceTrait, results, entityByTrait, behaviorHint) => {
|
|
54577
54577
|
const traits2 = results?.map((r) => ({ trait: r.traitName, from: r.result.previousState }));
|
|
54578
54578
|
const body = {
|
|
54579
54579
|
event,
|
|
@@ -54593,7 +54593,8 @@ function createHttpTransport(serverUrl, getAccessToken) {
|
|
|
54593
54593
|
// `traits`" would make the mount-time case indistinguishable from
|
|
54594
54594
|
// "do nothing" and break every organism's INIT on the stateless path.
|
|
54595
54595
|
...results !== void 0 ? { traits: traits2 ?? [] } : {},
|
|
54596
|
-
...entityByTrait ? { entityByTrait } : {}
|
|
54596
|
+
...entityByTrait ? { entityByTrait } : {},
|
|
54597
|
+
...behaviorHint !== void 0 ? { behavior: behaviorHint } : {}
|
|
54597
54598
|
};
|
|
54598
54599
|
const res = await fetch(`${serverUrl}/${orbitalName}/events`, {
|
|
54599
54600
|
method: "POST",
|
|
@@ -54642,9 +54643,9 @@ function ServerBridgeProvider({
|
|
|
54642
54643
|
);
|
|
54643
54644
|
const tickRelay = useMemo(
|
|
54644
54645
|
() => createTickSendRelay(async (_key, snap) => {
|
|
54645
|
-
await transport.sendEvent(snap.orbitalName, snap.event, snap.payload, getTabClientId(), snap.tick, snap.sourceTrait);
|
|
54646
|
+
await transport.sendEvent(snap.orbitalName, snap.event, snap.payload, getTabClientId(), snap.tick, snap.sourceTrait, void 0, void 0, schema.name);
|
|
54646
54647
|
}),
|
|
54647
|
-
[transport]
|
|
54648
|
+
[transport, schema.name]
|
|
54648
54649
|
);
|
|
54649
54650
|
useEffect(() => () => tickRelay.clear(), [tickRelay]);
|
|
54650
54651
|
const commandPump = useMemo(createCommandSendPump, []);
|
|
@@ -54665,7 +54666,7 @@ function ServerBridgeProvider({
|
|
|
54665
54666
|
return commandPump.enqueue(async () => {
|
|
54666
54667
|
if (disposedRef.current) return { effects: [], meta: emptyMeta };
|
|
54667
54668
|
try {
|
|
54668
|
-
const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait);
|
|
54669
|
+
const result = await transport.sendEvent(orbitalName, event, payload, getTabClientId(), tick, sourceTrait, results, entityByTrait, schema.name);
|
|
54669
54670
|
const effects = [];
|
|
54670
54671
|
const responseData = result.data || {};
|
|
54671
54672
|
const dataEntities = {};
|
|
@@ -54746,7 +54747,7 @@ function ServerBridgeProvider({
|
|
|
54746
54747
|
return { effects: [], meta: { ...emptyMeta, error: msg } };
|
|
54747
54748
|
}
|
|
54748
54749
|
});
|
|
54749
|
-
}, [connected, transport, eventBus, tickRelay, commandPump]);
|
|
54750
|
+
}, [connected, transport, eventBus, tickRelay, commandPump, schema.name]);
|
|
54750
54751
|
useEffect(() => {
|
|
54751
54752
|
if (!schema) return;
|
|
54752
54753
|
let cancelled = false;
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -54776,7 +54776,7 @@ function NavStackRefBridge({ apiRef }) {
|
|
|
54776
54776
|
}, [api, apiRef]);
|
|
54777
54777
|
return null;
|
|
54778
54778
|
}
|
|
54779
|
-
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
54779
|
+
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
54780
54780
|
const bridge = providers.useServerBridge();
|
|
54781
54781
|
const activeTraitNames = React87.useMemo(
|
|
54782
54782
|
() => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
|
|
@@ -54843,9 +54843,9 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
54843
54843
|
sendEvent("INIT", routeParams);
|
|
54844
54844
|
onLocalFallback?.();
|
|
54845
54845
|
}
|
|
54846
|
-
}, 5e3);
|
|
54846
|
+
}, localFallbackTimeoutMs ?? 5e3);
|
|
54847
54847
|
return () => clearTimeout(fallback);
|
|
54848
|
-
}, [traits2, orbitalNames, sendEvent, onLocalFallback, routeParams]);
|
|
54848
|
+
}, [traits2, orbitalNames, sendEvent, onLocalFallback, localFallbackTimeoutMs, routeParams]);
|
|
54849
54849
|
React87.useEffect(() => {
|
|
54850
54850
|
if (!bridge.connected || !orbitalNames?.length || initSentRef.current) return;
|
|
54851
54851
|
initSentRef.current = true;
|
|
@@ -54899,7 +54899,7 @@ function FitToBox({ children }) {
|
|
|
54899
54899
|
}, []);
|
|
54900
54900
|
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 }) });
|
|
54901
54901
|
}
|
|
54902
|
-
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
54902
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
|
|
54903
54903
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
54904
54904
|
const allPageTraits = React87.useMemo(() => {
|
|
54905
54905
|
let base;
|
|
@@ -55062,6 +55062,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
|
|
|
55062
55062
|
onNavigate,
|
|
55063
55063
|
onNavigateBack,
|
|
55064
55064
|
onLocalFallback,
|
|
55065
|
+
localFallbackTimeoutMs,
|
|
55065
55066
|
persistence,
|
|
55066
55067
|
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 }) }) })
|
|
55067
55068
|
}
|
|
@@ -55085,7 +55086,8 @@ function OrbPreview({
|
|
|
55085
55086
|
initialPagePath,
|
|
55086
55087
|
isolated = false,
|
|
55087
55088
|
fit = false,
|
|
55088
|
-
user = null
|
|
55089
|
+
user = null,
|
|
55090
|
+
localFallbackTimeoutMs
|
|
55089
55091
|
}) {
|
|
55090
55092
|
if (serverUrl && transport) {
|
|
55091
55093
|
throw new Error("OrbPreview accepts serverUrl OR transport, not both");
|
|
@@ -55267,6 +55269,7 @@ function OrbPreview({
|
|
|
55267
55269
|
onNavigate: handleNavigateEffect,
|
|
55268
55270
|
onNavigateBack: handleNavigateBack,
|
|
55269
55271
|
onLocalFallback: handleLocalFallback,
|
|
55272
|
+
localFallbackTimeoutMs,
|
|
55270
55273
|
persistence
|
|
55271
55274
|
}
|
|
55272
55275
|
) }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -55282,6 +55285,7 @@ function OrbPreview({
|
|
|
55282
55285
|
onNavigate: handleNavigateEffect,
|
|
55283
55286
|
onNavigateBack: handleNavigateBack,
|
|
55284
55287
|
onLocalFallback: handleLocalFallback,
|
|
55288
|
+
localFallbackTimeoutMs,
|
|
55285
55289
|
persistence
|
|
55286
55290
|
}
|
|
55287
55291
|
) }) })
|
package/dist/runtime/index.d.cts
CHANGED
|
@@ -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-
|
|
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-
|
|
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';
|
|
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';
|
|
@@ -292,6 +292,15 @@ interface OrbPreviewProps {
|
|
|
292
292
|
transport?: ServerBridgeTransport;
|
|
293
293
|
/** Bearer token for `serverUrl` requests (see `ServerBridgeProviderProps.getAccessToken`). */
|
|
294
294
|
getAccessToken?: AccessTokenProvider;
|
|
295
|
+
/**
|
|
296
|
+
* How long (ms) to wait for the server bridge to connect before assuming
|
|
297
|
+
* it's unreachable and falling back to local-only execution. Default
|
|
298
|
+
* 5000 (unchanged unless you pass this). Widen it for a caller whose
|
|
299
|
+
* schema is large enough that the server's first `register()` genuinely
|
|
300
|
+
* takes longer than 5s (e.g. a 53-orbital organism measured ~14.5s in
|
|
301
|
+
* production) — see `TraitInitializer`'s `localFallbackTimeoutMs` doc.
|
|
302
|
+
*/
|
|
303
|
+
localFallbackTimeoutMs?: number;
|
|
295
304
|
/**
|
|
296
305
|
* Initial page path to render (e.g. `/deals`). Resolves against the
|
|
297
306
|
* schema's `pages[]` to seed `currentPage` so the right orbital's traits
|
|
@@ -333,7 +342,7 @@ interface OrbPreviewProps {
|
|
|
333
342
|
* <OrbPreview schema={schema} serverUrl="/api/orbitals" />
|
|
334
343
|
* ```
|
|
335
344
|
*/
|
|
336
|
-
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, getAccessToken, initialPagePath, isolated, fit, user, }: OrbPreviewProps): React__default.ReactElement;
|
|
345
|
+
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, getAccessToken, initialPagePath, isolated, fit, user, localFallbackTimeoutMs, }: OrbPreviewProps): React__default.ReactElement;
|
|
337
346
|
declare namespace OrbPreview {
|
|
338
347
|
var displayName: string;
|
|
339
348
|
}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -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-
|
|
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-
|
|
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';
|
|
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';
|
|
@@ -292,6 +292,15 @@ interface OrbPreviewProps {
|
|
|
292
292
|
transport?: ServerBridgeTransport;
|
|
293
293
|
/** Bearer token for `serverUrl` requests (see `ServerBridgeProviderProps.getAccessToken`). */
|
|
294
294
|
getAccessToken?: AccessTokenProvider;
|
|
295
|
+
/**
|
|
296
|
+
* How long (ms) to wait for the server bridge to connect before assuming
|
|
297
|
+
* it's unreachable and falling back to local-only execution. Default
|
|
298
|
+
* 5000 (unchanged unless you pass this). Widen it for a caller whose
|
|
299
|
+
* schema is large enough that the server's first `register()` genuinely
|
|
300
|
+
* takes longer than 5s (e.g. a 53-orbital organism measured ~14.5s in
|
|
301
|
+
* production) — see `TraitInitializer`'s `localFallbackTimeoutMs` doc.
|
|
302
|
+
*/
|
|
303
|
+
localFallbackTimeoutMs?: number;
|
|
295
304
|
/**
|
|
296
305
|
* Initial page path to render (e.g. `/deals`). Resolves against the
|
|
297
306
|
* schema's `pages[]` to seed `currentPage` so the right orbital's traits
|
|
@@ -333,7 +342,7 @@ interface OrbPreviewProps {
|
|
|
333
342
|
* <OrbPreview schema={schema} serverUrl="/api/orbitals" />
|
|
334
343
|
* ```
|
|
335
344
|
*/
|
|
336
|
-
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, getAccessToken, initialPagePath, isolated, fit, user, }: OrbPreviewProps): React__default.ReactElement;
|
|
345
|
+
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, getAccessToken, initialPagePath, isolated, fit, user, localFallbackTimeoutMs, }: OrbPreviewProps): React__default.ReactElement;
|
|
337
346
|
declare namespace OrbPreview {
|
|
338
347
|
var displayName: string;
|
|
339
348
|
}
|
package/dist/runtime/index.js
CHANGED
|
@@ -54702,7 +54702,7 @@ function NavStackRefBridge({ apiRef }) {
|
|
|
54702
54702
|
}, [api, apiRef]);
|
|
54703
54703
|
return null;
|
|
54704
54704
|
}
|
|
54705
|
-
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
54705
|
+
function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence, traitConfigsByName, orbitalsByTrait, embeddedTraits, callsiteCaptureChildrenByTrait, serverActiveTraits, children }) {
|
|
54706
54706
|
const bridge = useServerBridge();
|
|
54707
54707
|
const activeTraitNames = useMemo(
|
|
54708
54708
|
() => new Set(traits2.map((b) => b.trait.name).filter((n) => !!n)),
|
|
@@ -54769,9 +54769,9 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
54769
54769
|
sendEvent("INIT", routeParams);
|
|
54770
54770
|
onLocalFallback?.();
|
|
54771
54771
|
}
|
|
54772
|
-
}, 5e3);
|
|
54772
|
+
}, localFallbackTimeoutMs ?? 5e3);
|
|
54773
54773
|
return () => clearTimeout(fallback);
|
|
54774
|
-
}, [traits2, orbitalNames, sendEvent, onLocalFallback, routeParams]);
|
|
54774
|
+
}, [traits2, orbitalNames, sendEvent, onLocalFallback, localFallbackTimeoutMs, routeParams]);
|
|
54775
54775
|
useEffect(() => {
|
|
54776
54776
|
if (!bridge.connected || !orbitalNames?.length || initSentRef.current) return;
|
|
54777
54777
|
initSentRef.current = true;
|
|
@@ -54825,7 +54825,7 @@ function FitToBox({ children }) {
|
|
|
54825
54825
|
}, []);
|
|
54826
54826
|
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 }) });
|
|
54827
54827
|
}
|
|
54828
|
-
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
54828
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, localFallbackTimeoutMs, persistence }) {
|
|
54829
54829
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
54830
54830
|
const allPageTraits = useMemo(() => {
|
|
54831
54831
|
let base;
|
|
@@ -54988,6 +54988,7 @@ function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData,
|
|
|
54988
54988
|
onNavigate,
|
|
54989
54989
|
onNavigateBack,
|
|
54990
54990
|
onLocalFallback,
|
|
54991
|
+
localFallbackTimeoutMs,
|
|
54991
54992
|
persistence,
|
|
54992
54993
|
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 }) }) })
|
|
54993
54994
|
}
|
|
@@ -55011,7 +55012,8 @@ function OrbPreview({
|
|
|
55011
55012
|
initialPagePath,
|
|
55012
55013
|
isolated = false,
|
|
55013
55014
|
fit = false,
|
|
55014
|
-
user = null
|
|
55015
|
+
user = null,
|
|
55016
|
+
localFallbackTimeoutMs
|
|
55015
55017
|
}) {
|
|
55016
55018
|
if (serverUrl && transport) {
|
|
55017
55019
|
throw new Error("OrbPreview accepts serverUrl OR transport, not both");
|
|
@@ -55193,6 +55195,7 @@ function OrbPreview({
|
|
|
55193
55195
|
onNavigate: handleNavigateEffect,
|
|
55194
55196
|
onNavigateBack: handleNavigateBack,
|
|
55195
55197
|
onLocalFallback: handleLocalFallback,
|
|
55198
|
+
localFallbackTimeoutMs,
|
|
55196
55199
|
persistence
|
|
55197
55200
|
}
|
|
55198
55201
|
) }) : /* @__PURE__ */ jsx(
|
|
@@ -55208,6 +55211,7 @@ function OrbPreview({
|
|
|
55208
55211
|
onNavigate: handleNavigateEffect,
|
|
55209
55212
|
onNavigateBack: handleNavigateBack,
|
|
55210
55213
|
onLocalFallback: handleLocalFallback,
|
|
55214
|
+
localFallbackTimeoutMs,
|
|
55211
55215
|
persistence
|
|
55212
55216
|
}
|
|
55213
55217
|
) }) })
|