@elaraai/e3-ui-components 1.0.13 → 1.0.15

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.
@@ -21,6 +21,7 @@ export interface BindHandle {
21
21
  read: () => unknown;
22
22
  write: (value: unknown) => null;
23
23
  writeAndStart: (value: unknown) => null;
24
+ start: () => null;
24
25
  source: () => unknown;
25
26
  pending: () => boolean;
26
27
  commit: () => null;
@@ -71,6 +72,8 @@ export declare class BindRuntime {
71
72
  clearCache(): void;
72
73
  /** Subscribe to write-queue errors. Returns an unsubscribe fn. */
73
74
  onWriteError(cb: (error: unknown) => void): () => void;
75
+ /** Fan a write/persistence error out to every registered listener. */
76
+ private emitWriteError;
74
77
  /** Resolve once every currently-queued write has finished
75
78
  * (success or failure). Errors are NOT thrown — subscribe via
76
79
  * {@link onWriteError} for those. */
@@ -1 +1 @@
1
- {"version":3,"file":"bind-runtime.d.ts","sourceRoot":"","sources":["../../src/platform/bind-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bind-runtime.d.ts","sourceRoot":"","sources":["../../src/platform/bind-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-hooks.d.ts","sourceRoot":"","sources":["../../src/platform/dataset-hooks.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EASH,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAEH,KAAK,6BAA6B,EAGrC,MAAM,oBAAoB,CAAC;AAmB5B;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,QAAQ,GACX,EAAE,4BAA4B,2CA6E9B;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,6BAA6B,CAMvE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,6BAA6B,GAAG,IAAI,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAM5D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAc/F;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,6BAA6B,CAkD9G;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,0BAA0B;IAC1B,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,qCAAqC;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,QAAQ,EACR,QAAQ,EACR,QAAe,EACf,OAAO,GACV,EAAE,0BAA0B,2CAuB5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,IAAI,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,UAAU,KAChB,OAAO,CAAC,IAAI,CAAC,CAOjB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAchF"}
1
+ {"version":3,"file":"dataset-hooks.d.ts","sourceRoot":"","sources":["../../src/platform/dataset-hooks.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EASH,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAEH,KAAK,6BAA6B,EAGrC,MAAM,oBAAoB,CAAC;AAwB5B;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,QAAQ,GACX,EAAE,4BAA4B,2CA2F9B;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,6BAA6B,CAMvE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,6BAA6B,GAAG,IAAI,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAM5D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAc/F;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,6BAA6B,CAkD9G;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,0BAA0B;IAC1B,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,qCAAqC;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,QAAQ,EACR,QAAQ,EACR,QAAe,EACf,OAAO,GACV,EAAE,0BAA0B,2CAuB5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,IAAI,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,UAAU,KAChB,OAAO,CAAC,IAAI,CAAC,CAOjB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAchF"}
@@ -86,6 +86,15 @@ export interface ReactiveDatasetCacheInterface {
86
86
  * that you don't want to drive the dataflow on every tick.
87
87
  */
88
88
  writeAndStart(workspace: string, path: TreePath, value: Uint8Array): Promise<void>;
89
+ /**
90
+ * Launch a workspace dataflow run WITHOUT writing anything first, so
91
+ * downstream tasks recompute against the current dataset state. This is the
92
+ * standalone half of {@link writeAndStart} — use it after an out-of-band
93
+ * mutation (e.g. a record commit) or to drive an explicit "Run" affordance.
94
+ * Fire-and-await: resolves once the server accepts the request, not when
95
+ * the dataflow finishes.
96
+ */
97
+ launchDataflow(workspace: string): Promise<void>;
89
98
  /** Preload a dataset into cache */
90
99
  preload(workspace: string, path: TreePath): Promise<void>;
91
100
  /** List fields at a path */
@@ -99,6 +108,15 @@ export interface ReactiveDatasetCacheInterface {
99
108
  * session accumulates watched paths (and network traffic) forever.
100
109
  */
101
110
  clearRefetchInterval(workspace: string, path: TreePath): void;
111
+ /**
112
+ * Force one immediate workspace-status poll, reconciling every watched
113
+ * path's content against the server (hash-gated; only changed datasets
114
+ * refetch). Use after an out-of-band server mutation (e.g. a record
115
+ * mutation commit) so a watched dataset picks up the new bytes without
116
+ * waiting for the standing poll interval. No-op if the workspace has no
117
+ * active poller. Fire-and-forget; resolves when the poll settles.
118
+ */
119
+ refresh(workspace: string): Promise<void>;
102
120
  /** Subscribe to changes on a specific key */
103
121
  subscribe(key: string, callback: () => void): () => void;
104
122
  /** Subscribe to all changes */
@@ -204,13 +222,17 @@ export declare class ReactiveDatasetCache implements ReactiveDatasetCacheInterfa
204
222
  * Polling continues to surface live status as tasks complete.
205
223
  */
206
224
  writeAndStart(workspace: string, path: TreePath, value: Uint8Array): Promise<void>;
225
+ /**
226
+ * Launch a workspace dataflow run without writing first. The standalone
227
+ * half of {@link writeAndStart}; see the interface doc for semantics.
228
+ */
229
+ launchDataflow(workspace: string): Promise<void>;
207
230
  /**
208
231
  * Preload a dataset into cache. Concurrent preloads of the same key
209
232
  * share one fetch (query-core dedup); a write racing the fetch cancels
210
233
  * it, so a preload can never clobber optimistic bytes.
211
234
  */
212
235
  preload(workspace: string, path: TreePath): Promise<void>;
213
- private fetchDataset;
214
236
  /**
215
237
  * List fields at a path. Empty path lists workspace root.
216
238
  */
@@ -234,6 +256,7 @@ export declare class ReactiveDatasetCache implements ReactiveDatasetCacheInterfa
234
256
  * last watched path is cleared.
235
257
  */
236
258
  clearRefetchInterval(workspace: string, path: TreePath): void;
259
+ refresh(workspace: string): Promise<void>;
237
260
  /**
238
261
  * Poll workspace status and reconcile the cache with the server.
239
262
  * Concurrent calls for the same workspace dedupe to a single fetch.
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-store.d.ts","sourceRoot":"","sources":["../../src/platform/dataset-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataset-store.d.ts","sourceRoot":"","sources":["../../src/platform/dataset-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import { EastType, EastTypeValue } from '@elaraai/east';
1
+ import { EastType, EastTypeValue, ValueTypeOf } from '@elaraai/east';
2
2
  import { PlatformFunction } from '@elaraai/east/internal';
3
+ import { FuncErrorType } from '@elaraai/e3-ui/internal';
3
4
  import { ExecuteResult, FunctionSignature } from '@elaraai/e3-api-client';
5
+ import { TrackedChannelStore } from './tracked-channel.js';
4
6
  /** Request shape for {@link FunctionApi.call} — beast2-encoded positional
5
7
  * args. Runner/limit overrides are deliberately not exposed (the deployed
6
8
  * function's runner is authoritative). */
@@ -23,8 +25,10 @@ export interface FunctionApi {
23
25
  * `@elaraai/e3-api-client`.
24
26
  */
25
27
  export declare function createDefaultFunctionApi(apiUrl: string, repo: string, getToken: () => string | null): FunctionApi;
28
+ type FuncError = ValueTypeOf<FuncErrorType>;
29
+ type FuncStatusTag = "idle" | "running" | "succeeded" | "failed" | "cancelled";
26
30
  /** A handle's signature, recovered from the instantiated handle type. */
27
- interface HandleSignature {
31
+ interface FuncHandleSignature {
28
32
  readonly inputs: EastTypeValue[];
29
33
  readonly output: EastTypeValue;
30
34
  }
@@ -34,7 +38,18 @@ interface HandleSignature {
34
38
  * field's `Option(Output)` return. The handle's shape IS the signature —
35
39
  * there are no duplicate signature arguments to drift out of sync.
36
40
  */
37
- export declare function signatureOfHandleType(handleType: EastTypeValue): HandleSignature;
41
+ export declare function signatureOfFuncHandleType(handleType: EastTypeValue): FuncHandleSignature;
42
+ /** One tracked channel per `(workspace, name)`. */
43
+ interface FuncEntry {
44
+ status: FuncStatusTag;
45
+ /** Monotonic; a settling call whose seq is no longer current is
46
+ * discarded (latest-wins, and `cancel` orphans by bumping it). */
47
+ launchSeq: number;
48
+ /** Decoded Output of the last `succeeded` call. */
49
+ result?: unknown;
50
+ /** Detail of the last `failed` call. */
51
+ error?: FuncError;
52
+ }
38
53
  /** Tracked-channel key. */
39
54
  export declare function funcChannelKey(workspace: string, name: string): string;
40
55
  /**
@@ -42,27 +57,16 @@ export declare function funcChannelKey(workspace: string, name: string): string;
42
57
  * {@link defaultFuncRuntime} instance backs the registered platform; tests
43
58
  * construct their own for isolation.
44
59
  */
45
- export declare class FuncRuntime {
60
+ export declare class FuncRuntime extends TrackedChannelStore<FuncEntry> {
46
61
  private api;
47
62
  private workspace;
48
- private readonly entries;
49
63
  private signatureLists;
50
- private readonly keySubscribers;
51
- private readonly keyVersions;
52
- private trackingContext;
64
+ protected createEntry(): FuncEntry;
53
65
  /** Install the API adapter + workspace — called by the React provider
54
66
  * (or a test/showcase harness) before any handle is used. */
55
67
  initialize(api: FunctionApi, workspace: string): void;
56
68
  /** Tear down the adapter and all call state. */
57
69
  clear(): void;
58
- enableTracking(): Set<string>;
59
- disableTracking(): string[];
60
- isTracking(): boolean;
61
- private track;
62
- subscribe(key: string, callback: () => void): () => void;
63
- getKeyVersion(key: string): number;
64
- private notify;
65
- private entry;
66
70
  /** The deployed signature list for a workspace (fetched once). */
67
71
  private signatures;
68
72
  /** Validate a declared signature against the deployed list. Returns a
@@ -1 +1 @@
1
- {"version":3,"file":"func-runtime.d.ts","sourceRoot":"","sources":["../../src/platform/func-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"func-runtime.d.ts","sourceRoot":"","sources":["../../src/platform/func-runtime.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@
11
11
  export { ReactiveDatasetCache, createReactiveDatasetCache, createDefaultDatasetApi, realClock, type ReactiveDatasetCacheInterface, type ReactiveDatasetCacheConfig, type DatasetApi, type Clock, datasetCacheKey, datasetPathToString, } from './dataset-store.js';
12
12
  export { StagedStore, IndexedDBStagedAdapter, MemoryStagedAdapter, type StagedStoreInterface, type StagedPersistenceAdapter, type StagedEntry, type PersistedStagedEntry, getStagedStore, initializeStagedStore, clearStagedStoreSingleton, } from './staged-store.js';
13
13
  export { BindRuntime, defaultBindRuntime, BindPlatform, createScopedBindPlatform, getReactiveDatasetCache, initializeReactiveDatasetCache, clearReactiveDatasetCache, enableBindingTracking, disableBindingTracking, isBindingTracking, trackDatasetPath, getBindingTypes, clearBindingRegistry, type BindingTypes, type BindHandle, preloadReactiveDatasetList, clearReactiveDatasetListCache, onWriteError, awaitPendingWrites, clearPendingWrites, } from './bind-runtime.js';
14
- export { FuncRuntime, defaultFuncRuntime, FuncPlatform, createScopedFuncPlatform, createDefaultFunctionApi, initializeFunctionApi, clearFunctionApi, funcChannelKey, signatureOfHandleType, createInMemoryFunctionApi, type InMemoryFunctionDef, type FunctionApi, type FunctionCallArgs, } from './func-runtime.js';
14
+ export { FuncRuntime, defaultFuncRuntime, FuncPlatform, createScopedFuncPlatform, createDefaultFunctionApi, initializeFunctionApi, clearFunctionApi, funcChannelKey, signatureOfFuncHandleType, createInMemoryFunctionApi, type InMemoryFunctionDef, type FunctionApi, type FunctionCallArgs, } from './func-runtime.js';
15
+ export { RecordRuntime, defaultRecordRuntime, RecordPlatform, createScopedRecordPlatform, createDefaultRecordApi, initializeRecordApi, clearRecordApi, recordChannelKey, createInMemoryRecordApi, type InMemoryRecordDef, type RecordApi, type RecordMutateArgs, } from './record-runtime.js';
15
16
  export { E3Provider, useE3Config, useE3ConfigOptional, type E3Config, type E3ProviderProps, } from './e3-config.js';
16
17
  export { ReactiveDatasetProvider, type ReactiveDatasetProviderProps, useReactiveDatasetCache, useReactiveDatasetCacheSubscription, useReactiveDatasetKey, usePreloadReactiveDatasets, type ReactiveDatasetToPreload, type PreloadReactiveDatasetsResult, useReactiveDatasetWrite, useReactiveDatasetHas, ReactiveDatasetLoader, type ReactiveDatasetLoaderProps, } from './dataset-hooks.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAGH,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,SAAS,EACT,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,KAAK,EACV,eAAe,EACf,mBAAmB,GACtB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACH,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,cAAc,EACd,qBAAqB,EACrB,yBAAyB,GAC5B,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,0BAA0B,EAC1B,6BAA6B,EAC7B,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACxB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EACH,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,KAAK,QAAQ,EACb,KAAK,eAAe,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACH,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,uBAAuB,EACvB,mCAAmC,EACnC,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,0BAA0B,GAClC,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAGH,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,SAAS,EACT,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,KAAK,EACV,eAAe,EACf,mBAAmB,GACtB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACH,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,cAAc,EACd,qBAAqB,EACrB,yBAAyB,GAC5B,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,0BAA0B,EAC1B,6BAA6B,EAC7B,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,gBAAgB,GACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACH,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,KAAK,QAAQ,EACb,KAAK,eAAe,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACH,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,uBAAuB,EACvB,mCAAmC,EACnC,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,0BAA0B,GAClC,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,127 @@
1
+ import { EastType, EastTypeValue, ValueTypeOf } from '@elaraai/east';
2
+ import { PlatformFunction } from '@elaraai/east/internal';
3
+ import { RecordErrorType } from '@elaraai/e3-ui/internal';
4
+ import { RecordSignature, MutationResult, RecordHistoryResult } from '@elaraai/e3-api-client';
5
+ import { TrackedChannelStore } from './tracked-channel.js';
6
+ import { ReactiveDatasetCacheInterface } from './dataset-store.js';
7
+ /** Request shape for {@link RecordApi.mutate} — beast2-encoded positional
8
+ * args (the extra reducer parameters, after the implicit state). */
9
+ export interface RecordMutateArgs {
10
+ args: Uint8Array[];
11
+ }
12
+ /**
13
+ * Adapter for the workspace record endpoints. The default wraps
14
+ * `@elaraai/e3-api-client`'s `workspaceRecordDescribe` /
15
+ * `workspaceRecordMutate` / `workspaceRecordHistory`. `read()` does NOT go
16
+ * through here — it reads the record's dataset bytes from the shared cache.
17
+ */
18
+ export interface RecordApi {
19
+ /** Describe a record's mutations (name + extra arg types), for validation. */
20
+ describe(workspace: string, record: string): Promise<RecordSignature>;
21
+ /** Apply a mutation synchronously, returning its terminal MutationResult. */
22
+ mutate(workspace: string, record: string, mutation: string, req: RecordMutateArgs): Promise<MutationResult>;
23
+ /** Read a record's commit chain (newest first). */
24
+ history(workspace: string, record: string, limit: number | undefined, from?: string): Promise<RecordHistoryResult>;
25
+ }
26
+ /**
27
+ * Build the default {@link RecordApi} that talks to a real e3 server via
28
+ * `@elaraai/e3-api-client`.
29
+ */
30
+ export declare function createDefaultRecordApi(apiUrl: string, repo: string, getToken: () => string | null): RecordApi;
31
+ type RecordError = ValueTypeOf<RecordErrorType>;
32
+ type RecordMutateTag = "idle" | "running" | "committed" | "failed" | "cancelled";
33
+ /** A handle's signature, recovered from the instantiated handle type. */
34
+ interface RecordHandleSignature {
35
+ readonly stateType: EastTypeValue;
36
+ readonly mutations: ReadonlyMap<string, EastTypeValue[]>;
37
+ }
38
+ /**
39
+ * Introspect the instantiated handle struct type `H`: the state type comes
40
+ * from the `read` field's FunctionType output, and the mutation names + arg
41
+ * types come from the `mutate` sub-struct's non-reserved FunctionType fields.
42
+ * The handle's shape IS the signature — there are no duplicate signature
43
+ * arguments to drift out of sync.
44
+ */
45
+ export declare function signatureOfRecordHandleType(handleType: EastTypeValue): RecordHandleSignature;
46
+ /** Tracked mutation-channel key (one per record). */
47
+ export declare function recordChannelKey(workspace: string, name: string): string;
48
+ /** One tracked mutation channel per `(workspace, record)`. */
49
+ interface RecordEntry {
50
+ status: RecordMutateTag;
51
+ /** Monotonic; a settling mutation whose seq is no longer current is
52
+ * discarded (latest-wins, and `cancel` orphans by bumping it). */
53
+ launchSeq: number;
54
+ /** Detail of the last `failed` mutation. */
55
+ error?: RecordError;
56
+ /** The settle promise of the in-flight mutation, if one is running. `start()`
57
+ * awaits it so a commit lands before the dataflow run reads the record. */
58
+ inflight?: Promise<void>;
59
+ }
60
+ /**
61
+ * Encapsulates all `Record.bind` runtime state. The module-level
62
+ * {@link defaultRecordRuntime} instance backs the registered platform; tests
63
+ * construct their own for isolation.
64
+ */
65
+ export declare class RecordRuntime extends TrackedChannelStore<RecordEntry> {
66
+ private api;
67
+ private cache;
68
+ private workspace;
69
+ private readonly signatureCache;
70
+ private readonly histories;
71
+ private readonly historyInFlight;
72
+ private readonly historyFailed;
73
+ protected createEntry(): RecordEntry;
74
+ /** Install the API adapter + dataset cache + workspace — called by the
75
+ * React provider (or a test/showcase harness) before any handle is used. */
76
+ initialize(api: RecordApi, cache: ReactiveDatasetCacheInterface, workspace: string): void;
77
+ /** Tear down the adapter and all record state. */
78
+ clear(): void;
79
+ private resolveWorkspace;
80
+ /** The deployed describe signature for a record (fetched once, evicted on failure). */
81
+ private signature;
82
+ /** Validate a mutation's declared arg types against the deployed signature. */
83
+ private validate;
84
+ /** Fetch a record's history once per channel (deduped); notify on settle. */
85
+ private fetchHistory;
86
+ private launchMutation;
87
+ /** Build the handle value for one `Record.bind` platform evaluation. */
88
+ buildHandle(handleType: EastTypeValue, name: string): Record<string, unknown>;
89
+ /** Build a `Record.bind` PlatformFunction bound to this runtime. Pass
90
+ * `allowed=null` for an unscoped impl; pass a Set of record names for
91
+ * manifest scoping. */
92
+ buildPlatform(allowed: ReadonlySet<string> | null): PlatformFunction;
93
+ }
94
+ /** Process-global runtime backing the `RecordPlatform` export. */
95
+ export declare const defaultRecordRuntime: RecordRuntime;
96
+ /** Install the record API adapter + dataset cache + workspace — called by the
97
+ * React provider on mount (or by a test/showcase harness). */
98
+ export declare function initializeRecordApi(api: RecordApi, cache: ReactiveDatasetCacheInterface, workspace: string): void;
99
+ /** Tear down the record API adapter and all record state. */
100
+ export declare function clearRecordApi(): void;
101
+ /** Global, manifest-unscoped `Record.bind` impl. Registered on module load. */
102
+ export declare const RecordPlatform: PlatformFunction[];
103
+ /** Build a manifest-scoped `Record.bind` implementation. */
104
+ export declare function createScopedRecordPlatform(records: readonly string[]): PlatformFunction[];
105
+ /** One offline record implementation for {@link createInMemoryRecordApi}. */
106
+ export interface InMemoryRecordDef {
107
+ /** Record name (what `Record.bind` is bound to). */
108
+ name: string;
109
+ /** The record's state type. */
110
+ stateType: EastType | EastTypeValue;
111
+ /** Initial state value (seeds the dataset cache). */
112
+ initial: unknown;
113
+ /** Mutations — each a reducer over the decoded state + decoded args. */
114
+ mutations: {
115
+ name: string;
116
+ argTypes: (EastType | EastTypeValue)[];
117
+ reduce: (state: unknown, ...args: unknown[]) => unknown;
118
+ }[];
119
+ }
120
+ /**
121
+ * Build an offline {@link RecordApi} from local implementations — the
122
+ * showcase/snapshot harnesses' stand-in for a deployed record. Seeds each
123
+ * record's current value into the dataset cache so `read()` works offline.
124
+ */
125
+ export declare function createInMemoryRecordApi(cache: ReactiveDatasetCacheInterface, workspace: string, defs: InMemoryRecordDef[]): RecordApi;
126
+ export {};
127
+ //# sourceMappingURL=record-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-runtime.d.ts","sourceRoot":"","sources":["../../src/platform/record-runtime.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,12 @@ export interface StagedStoreInterface {
51
51
  listKeys(): string[];
52
52
  subscribe(key: string, callback: () => void): () => void;
53
53
  getKeyVersion(key: string): number;
54
+ /** Register a listener for durable-persistence failures (save / remove /
55
+ * hydrate), keyed by the affected `datasetCacheKey` (empty string for a
56
+ * whole-store hydrate failure). Returns an unsubscribe. With no listener,
57
+ * failures fall back to a console warning. Lets a host surface a
58
+ * 'not durably saved' state, mirroring `BindRuntime.onWriteError`. */
59
+ onPersistError(cb: (key: string, err: unknown) => void): () => void;
54
60
  }
55
61
  /**
56
62
  * IndexedDB-backed persistence adapter. Stores entries as native
@@ -84,6 +90,8 @@ export declare class StagedStore implements StagedStoreInterface {
84
90
  private adapter;
85
91
  private hydrated;
86
92
  private inFlight;
93
+ private saveChains;
94
+ private errorListeners;
87
95
  constructor(adapter: StagedPersistenceAdapter);
88
96
  ready(): Promise<void>;
89
97
  flushPending(): Promise<void>;
@@ -96,10 +104,18 @@ export declare class StagedStore implements StagedStoreInterface {
96
104
  listKeys(): string[];
97
105
  subscribe(key: string, callback: () => void): () => void;
98
106
  getKeyVersion(key: string): number;
107
+ onPersistError(cb: (key: string, err: unknown) => void): () => void;
99
108
  /** Test-only: clear in-memory + persisted state. */
100
109
  clear(): Promise<void>;
101
110
  private notify;
102
- private track;
111
+ /**
112
+ * Serialize a persistence op behind any prior op for the same key, so they
113
+ * land in IndexedDB in call order (last write wins) rather than racing.
114
+ * Tracks the op for {@link flushPending} and routes failures to
115
+ * {@link onPersistError} listeners (falling back to a console warning).
116
+ */
117
+ private persist;
118
+ private emitPersistError;
103
119
  private hydrate;
104
120
  }
105
121
  export declare function getStagedStore(): StagedStoreInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"staged-store.d.ts","sourceRoot":"","sources":["../../src/platform/staged-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staged-store.d.ts","sourceRoot":"","sources":["../../src/platform/staged-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOlD,qDAAqD;AACrD,MAAM,WAAW,WAAW;IACxB;2EACuE;IACvE,QAAQ,EAAE,UAAU,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,EAAE,UAAU,CAAC;CACxB;AAED;;qCAEqC;AACrC,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;CACxB;AAED;iCACiC;AACjC,MAAM,WAAW,wBAAwB;IACrC,6EAA6E;IAC7E,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtD,4CAA4C;IAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,8CAA8C;IAC9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,oCAAoC;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACjC;wEACoE;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;8CAE0C;IAC1C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,sDAAsD;IACtD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvD,2EAA2E;IAC3E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACvE,iEAAiE;IACjE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACvE,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAErE;wEACoE;IACpE,KAAK,CACD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,UAAU,EACzB,QAAQ,EAAE,UAAU,GACrB,IAAI,CAAC;IAER,uEAAuE;IACvE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAEpD,+DAA+D;IAC/D,QAAQ,IAAI,MAAM,EAAE,CAAC;IAGrB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACzD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC;;;;2EAIuE;IACvE,cAAc,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACvE;AAUD;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,wBAAwB;IACnE,OAAO,CAAC,SAAS,CAAqC;IAEtD,OAAO,CAAC,KAAK;IAsBP,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAoBrD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS/B;AAMD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,wBAAwB;IAChE,OAAO,CAAC,GAAG,CAA2C;IAEhD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAKrD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAMD,qBAAa,WAAY,YAAW,oBAAoB;IACpD,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAiC;IAGjD,OAAO,CAAC,UAAU,CAAyC;IAE3D,OAAO,CAAC,cAAc,CAAuD;gBAEjE,OAAO,EAAE,wBAAwB;IAO7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO;IAItD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;IAItE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;IAItE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS;IAIpE,KAAK,CACD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,UAAU,EACzB,QAAQ,EAAE,UAAU,GACrB,IAAI;IAgBP,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO;IASnD,QAAQ,IAAI,MAAM,EAAE;IAIpB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAaxD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIlC,cAAc,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnE,oDAAoD;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,OAAO,CAAC,MAAM;IAMd;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,gBAAgB;YAcV,OAAO;CAgBxB;AAmBD,wBAAgB,cAAc,IAAI,oBAAoB,CAKrD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAEvE;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * TrackedChannelStore — shared base for the `Func.bind` / `Record.bind`
7
+ * runtimes. Both expose one tracked channel per `(workspace, name)`: a
8
+ * latest-wins async operation whose settling state is gated by a monotonic
9
+ * `launchSeq`, plus a per-key reactive subscription shim that the renderer's
10
+ * `Reactive.Root` machinery reads through (the same contract the dataset
11
+ * cache uses).
12
+ *
13
+ * Subclasses supply their own API seam, per-channel entry shape, and the
14
+ * operation body; the base owns the entries map, the tracking context, the
15
+ * subscription shim, and the launch / settle / cancel latch.
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ /** The minimal per-channel state the base manages. */
20
+ export interface ChannelEntry {
21
+ /** Lifecycle tag — at least `"idle"` | `"running"` | `"cancelled"`, plus
22
+ * whatever terminal states the subclass adds. */
23
+ status: string;
24
+ /** Monotonic launch counter; a settling op whose seq is no longer current
25
+ * is discarded (latest-wins, and `cancel` orphans by bumping it). */
26
+ launchSeq: number;
27
+ }
28
+ /**
29
+ * Base for a runtime that manages latest-wins channels keyed by string, with
30
+ * per-key reactive subscriptions.
31
+ *
32
+ * @typeParam E - The per-channel entry type (extends {@link ChannelEntry}).
33
+ */
34
+ export declare abstract class TrackedChannelStore<E extends ChannelEntry> {
35
+ protected readonly entries: Map<string, E>;
36
+ private readonly keySubscribers;
37
+ private readonly keyVersions;
38
+ private trackingContext;
39
+ /** Build a fresh channel entry in its initial (idle) state. */
40
+ protected abstract createEntry(): E;
41
+ enableTracking(): Set<string>;
42
+ disableTracking(): string[];
43
+ isTracking(): boolean;
44
+ /** Record a channel-key dependency for the current render (no-op when not
45
+ * tracking). */
46
+ protected track(key: string): void;
47
+ subscribe(key: string, callback: () => void): () => void;
48
+ getKeyVersion(key: string): number;
49
+ protected notify(key: string): void;
50
+ protected entry(key: string): E;
51
+ /**
52
+ * Open a latest-wins launch on a channel: bump the seq, mark the entry
53
+ * `running`, optionally `reset` it (e.g. clear a prior error), notify, and
54
+ * return a `settle` that applies a terminal mutation only if this launch is
55
+ * still the current one (a superseded / cancelled launch settles to a
56
+ * no-op).
57
+ */
58
+ protected beginLaunch(key: string, reset?: (entry: E) => void): {
59
+ entry: E;
60
+ settle: (mutate: (entry: E) => void) => void;
61
+ };
62
+ /**
63
+ * Client-side cancel: if the channel is running, orphan the in-flight wait
64
+ * (bump the seq) and mark it `cancelled`. `after` runs before the notify,
65
+ * for subclass-specific cleanup (e.g. dropping an in-flight handle).
66
+ */
67
+ protected cancelChannel(key: string, after?: (entry: E) => void): void;
68
+ /** Drop all channel state (entries + subscriptions + versions). */
69
+ protected clearChannels(): void;
70
+ }
71
+ //# sourceMappingURL=tracked-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracked-channel.d.ts","sourceRoot":"","sources":["../../src/platform/tracked-channel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,sDAAsD;AACtD,MAAM,WAAW,YAAY;IACzB;sDACkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf;0EACsE;IACtE,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,8BAAsB,mBAAmB,CAAC,CAAC,SAAS,YAAY;IAC5D,SAAS,CAAC,QAAQ,CAAC,OAAO,iBAAwB;IAGlD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAIzD,OAAO,CAAC,eAAe,CAA4B;IAEnD,+DAA+D;IAC/D,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC;IAInC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC;IAK7B,eAAe,IAAI,MAAM,EAAE;IAM3B,UAAU,IAAI,OAAO;IAIrB;qBACiB;IACjB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMlC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAexD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIlC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQnC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC;IAS/B;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CACjB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAA;KAAE;IAiB7D;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAUtE,mEAAmE;IACnE,SAAS,CAAC,aAAa,IAAI,IAAI;CAKlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/e3-ui-components",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "React Query hooks and preview components for the e3 API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -36,12 +36,12 @@
36
36
  "@tanstack/react-query": "^5.62.0",
37
37
  "react": "^19.0.0",
38
38
  "react-dom": "^19.0.0",
39
- "@elaraai/e3-api-client": "1.0.13",
40
- "@elaraai/e3-types": "1.0.13",
41
- "@elaraai/e3-ui": "1.0.13",
42
- "@elaraai/east": "1.0.13",
43
- "@elaraai/east-ui": "1.0.13",
44
- "@elaraai/east-ui-components": "1.0.13"
39
+ "@elaraai/e3-api-client": "1.0.15",
40
+ "@elaraai/e3-ui": "1.0.15",
41
+ "@elaraai/e3-types": "1.0.15",
42
+ "@elaraai/east": "1.0.15",
43
+ "@elaraai/east-ui-components": "1.0.15",
44
+ "@elaraai/east-ui": "1.0.15"
45
45
  },
46
46
  "dependencies": {
47
47
  "@emotion/react": "^11.14.0",
@@ -81,13 +81,13 @@
81
81
  "typescript": "~5.9.2",
82
82
  "vite": "^6.0.0",
83
83
  "vite-plugin-dts": "^4.3.0",
84
- "@elaraai/e3": "1.0.13",
85
- "@elaraai/e3-api-client": "1.0.13",
86
- "@elaraai/e3-types": "1.0.13",
87
- "@elaraai/east": "1.0.13",
88
- "@elaraai/e3-ui": "1.0.13",
89
- "@elaraai/east-ui": "1.0.13",
90
- "@elaraai/east-ui-components": "1.0.13"
84
+ "@elaraai/e3": "1.0.15",
85
+ "@elaraai/e3-api-client": "1.0.15",
86
+ "@elaraai/e3-types": "1.0.15",
87
+ "@elaraai/east": "1.0.15",
88
+ "@elaraai/e3-ui": "1.0.15",
89
+ "@elaraai/east-ui": "1.0.15",
90
+ "@elaraai/east-ui-components": "1.0.15"
91
91
  },
92
92
  "repository": {
93
93
  "type": "git",