@powerhousedao/reactor-browser 6.2.0-dev.5 → 6.2.0-dev.50
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/{client-CYhc2W1V.d.ts → client-09xv0Dq6.d.ts} +1 -1
- package/dist/{client-CYhc2W1V.d.ts.map → client-09xv0Dq6.d.ts.map} +1 -1
- package/dist/{client-CvgFU1Dv.js → client-_Gh2Uf0E.js} +1 -1
- package/dist/{client-CvgFU1Dv.js.map → client-_Gh2Uf0E.js.map} +1 -1
- package/dist/client-u13cr-Vg.js +51 -0
- package/dist/client-u13cr-Vg.js.map +1 -0
- package/dist/{document-by-id-BrIy0iHX.js → document-by-id-dLYFX-xz.js} +3 -3
- package/dist/{document-by-id-BrIy0iHX.js.map → document-by-id-dLYFX-xz.js.map} +1 -1
- package/dist/{index-Bz4MqX_j.d.ts → index-D3bV5rcl.d.ts} +1 -2
- package/dist/index-D3bV5rcl.d.ts.map +1 -0
- package/dist/{index-ZltD7u5Z.d.ts → index-DS4W07Y8.d.ts} +2 -45
- package/dist/index-DS4W07Y8.d.ts.map +1 -0
- package/dist/index.d.ts +43 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +137 -131
- package/dist/index.js.map +1 -1
- package/dist/inspector-proxy-CvQDDxmT.d.ts +255 -0
- package/dist/inspector-proxy-CvQDDxmT.d.ts.map +1 -0
- package/dist/{make-ph-event-functions-DwiD1zH9.js → make-ph-event-functions-BHoLPif5.js} +2 -2
- package/dist/{make-ph-event-functions-DwiD1zH9.js.map → make-ph-event-functions-BHoLPif5.js.map} +1 -1
- package/dist/{relational-4_LVwp8p.js → relational-Dj06-YkI.js} +14 -2
- package/dist/relational-Dj06-YkI.js.map +1 -0
- package/dist/{renown-Dzmo1gJD.js → renown-D-1c_Bvx.js} +35 -48
- package/dist/renown-D-1c_Bvx.js.map +1 -0
- package/dist/src/analytics/index.d.ts +2 -2
- package/dist/src/analytics/index.js +2 -2
- package/dist/src/document-model.d.ts +8 -0
- package/dist/src/document-model.d.ts.map +1 -0
- package/dist/src/document-model.js +14 -0
- package/dist/src/document-model.js.map +1 -0
- package/dist/src/graphql/client.d.ts +1 -1
- package/dist/src/graphql/client.js +1 -1
- package/dist/src/relational/index.d.ts +46 -2
- package/dist/src/relational/index.d.ts.map +1 -0
- package/dist/src/relational/index.js +1 -1
- package/dist/src/renown/index.d.ts +1 -1
- package/dist/src/renown/index.js +1 -1
- package/dist/src/rpc/index.d.ts +240 -0
- package/dist/src/rpc/index.d.ts.map +1 -0
- package/dist/src/rpc/index.js +1250 -0
- package/dist/src/rpc/index.js.map +1 -0
- package/dist/{types-BmR60pPN.d.ts → types-CPV0Cnsy.d.ts} +1 -1
- package/dist/{types-BmR60pPN.d.ts.map → types-CPV0Cnsy.d.ts.map} +1 -1
- package/package.json +37 -11
- package/dist/index-Bz4MqX_j.d.ts.map +0 -1
- package/dist/index-ZltD7u5Z.d.ts.map +0 -1
- package/dist/relational-4_LVwp8p.js.map +0 -1
- package/dist/renown-Dzmo1gJD.js.map +0 -1
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
//#region src/rpc/protocol.d.ts
|
|
2
|
+
type CorrelationId = string;
|
|
3
|
+
type ErrorInfo = {
|
|
4
|
+
name: string;
|
|
5
|
+
message: string;
|
|
6
|
+
stack?: string;
|
|
7
|
+
cause?: ErrorInfo;
|
|
8
|
+
};
|
|
9
|
+
type RpcRequest = {
|
|
10
|
+
k: "req";
|
|
11
|
+
id: CorrelationId;
|
|
12
|
+
method: string;
|
|
13
|
+
args: unknown[];
|
|
14
|
+
abortAt?: number;
|
|
15
|
+
};
|
|
16
|
+
type RpcResponse = {
|
|
17
|
+
k: "res";
|
|
18
|
+
id: CorrelationId;
|
|
19
|
+
value: unknown;
|
|
20
|
+
};
|
|
21
|
+
type RpcError = {
|
|
22
|
+
k: "err";
|
|
23
|
+
id: CorrelationId;
|
|
24
|
+
error: ErrorInfo;
|
|
25
|
+
};
|
|
26
|
+
/** Failed document subscribe; routed to the change-subscription registry. */
|
|
27
|
+
type RpcSubError = {
|
|
28
|
+
k: "sub-err";
|
|
29
|
+
id: CorrelationId;
|
|
30
|
+
error: ErrorInfo;
|
|
31
|
+
};
|
|
32
|
+
/** Failed live query; routed to the live-query registry. */
|
|
33
|
+
type RpcLiveError = {
|
|
34
|
+
k: "live-err";
|
|
35
|
+
id: CorrelationId;
|
|
36
|
+
error: ErrorInfo;
|
|
37
|
+
};
|
|
38
|
+
type RpcAbort = {
|
|
39
|
+
k: "abort";
|
|
40
|
+
targetId: CorrelationId;
|
|
41
|
+
};
|
|
42
|
+
type RpcSubscribe = {
|
|
43
|
+
k: "sub";
|
|
44
|
+
id: CorrelationId;
|
|
45
|
+
search: unknown;
|
|
46
|
+
view?: unknown;
|
|
47
|
+
};
|
|
48
|
+
type RpcEvent = {
|
|
49
|
+
k: "event";
|
|
50
|
+
id: CorrelationId;
|
|
51
|
+
change: unknown;
|
|
52
|
+
};
|
|
53
|
+
type RpcUnsub = {
|
|
54
|
+
k: "unsub";
|
|
55
|
+
id: CorrelationId;
|
|
56
|
+
};
|
|
57
|
+
type RpcNextPage = {
|
|
58
|
+
k: "page";
|
|
59
|
+
id: CorrelationId;
|
|
60
|
+
token: string;
|
|
61
|
+
};
|
|
62
|
+
declare const RPC_PROTOCOL_VERSION = 2;
|
|
63
|
+
type VersionFingerprint = {
|
|
64
|
+
appBuildId: string;
|
|
65
|
+
rpcProtocolVersion: number;
|
|
66
|
+
models: {
|
|
67
|
+
id: string;
|
|
68
|
+
version: number;
|
|
69
|
+
}[];
|
|
70
|
+
};
|
|
71
|
+
type RpcHello = {
|
|
72
|
+
k: "hello";
|
|
73
|
+
id: CorrelationId;
|
|
74
|
+
version: VersionFingerprint;
|
|
75
|
+
construct?: unknown;
|
|
76
|
+
packages?: string[];
|
|
77
|
+
};
|
|
78
|
+
type RpcRegisterPackages = {
|
|
79
|
+
k: "register-packages";
|
|
80
|
+
id: CorrelationId;
|
|
81
|
+
specs: string[];
|
|
82
|
+
};
|
|
83
|
+
type RpcUnregisterPackages = {
|
|
84
|
+
k: "unregister-packages";
|
|
85
|
+
id: CorrelationId;
|
|
86
|
+
names: string[];
|
|
87
|
+
};
|
|
88
|
+
type RpcReload = {
|
|
89
|
+
k: "reload";
|
|
90
|
+
reason: string;
|
|
91
|
+
workerGen?: string;
|
|
92
|
+
};
|
|
93
|
+
type RpcAdmin = {
|
|
94
|
+
k: "admin";
|
|
95
|
+
id: CorrelationId;
|
|
96
|
+
method: "info" | "restart" | "clearStorage" | "migrate";
|
|
97
|
+
};
|
|
98
|
+
type WorkerMigrationState = {
|
|
99
|
+
status: "idle" | "needed" | "migrating" | "failed";
|
|
100
|
+
legacyMajor?: number;
|
|
101
|
+
phase?: "clone" | "dump" | "restore";
|
|
102
|
+
error?: string;
|
|
103
|
+
};
|
|
104
|
+
type RpcMigration = {
|
|
105
|
+
k: "migration";
|
|
106
|
+
state: WorkerMigrationState;
|
|
107
|
+
};
|
|
108
|
+
type WorkerInspectorInfo = {
|
|
109
|
+
namespace: string;
|
|
110
|
+
ownerId: string;
|
|
111
|
+
bootedAtMs: number;
|
|
112
|
+
connectedClients: number;
|
|
113
|
+
appBuildId: string;
|
|
114
|
+
rpcProtocolVersion: number;
|
|
115
|
+
};
|
|
116
|
+
type ReactorIdentity = {
|
|
117
|
+
address: string;
|
|
118
|
+
chainId: number;
|
|
119
|
+
networkId: string;
|
|
120
|
+
};
|
|
121
|
+
type RpcIdentity = {
|
|
122
|
+
k: "identity";
|
|
123
|
+
user: ReactorIdentity | null;
|
|
124
|
+
};
|
|
125
|
+
type RpcBusEvent = {
|
|
126
|
+
k: "bus-event";
|
|
127
|
+
eventType: number;
|
|
128
|
+
event: unknown;
|
|
129
|
+
};
|
|
130
|
+
type OpKind = "sync-op" | "db-op" | "inspector-op";
|
|
131
|
+
type MethodCallMessage<K extends OpKind> = {
|
|
132
|
+
k: K;
|
|
133
|
+
id: CorrelationId;
|
|
134
|
+
method: string;
|
|
135
|
+
args: unknown[];
|
|
136
|
+
};
|
|
137
|
+
type RpcSyncOp = MethodCallMessage<"sync-op">;
|
|
138
|
+
type RpcDbOp = MethodCallMessage<"db-op">;
|
|
139
|
+
type RpcInspectorOp = MethodCallMessage<"inspector-op">;
|
|
140
|
+
type RpcLiveSubscribe = {
|
|
141
|
+
k: "sub-live";
|
|
142
|
+
id: CorrelationId;
|
|
143
|
+
sql: string;
|
|
144
|
+
params: unknown[];
|
|
145
|
+
};
|
|
146
|
+
type RpcLiveEvent = {
|
|
147
|
+
k: "event-live";
|
|
148
|
+
id: CorrelationId;
|
|
149
|
+
results: unknown;
|
|
150
|
+
};
|
|
151
|
+
type RpcLiveUnsub = {
|
|
152
|
+
k: "unsub-live";
|
|
153
|
+
id: CorrelationId;
|
|
154
|
+
};
|
|
155
|
+
type RpcPing = {
|
|
156
|
+
k: "ping";
|
|
157
|
+
id: CorrelationId;
|
|
158
|
+
};
|
|
159
|
+
type RpcPong = {
|
|
160
|
+
k: "pong";
|
|
161
|
+
id: CorrelationId;
|
|
162
|
+
ownerId: string;
|
|
163
|
+
bootedAtMs: number;
|
|
164
|
+
};
|
|
165
|
+
type ClientMessage = RpcRequest | RpcAbort | RpcSubscribe | RpcUnsub | RpcNextPage | RpcHello | RpcRegisterPackages | RpcUnregisterPackages | RpcIdentity | RpcAdmin | RpcSyncOp | RpcDbOp | RpcInspectorOp | RpcLiveSubscribe | RpcLiveUnsub | RpcPing;
|
|
166
|
+
type OwnerMessage = RpcResponse | RpcError | RpcSubError | RpcLiveError | RpcEvent | RpcReload | RpcBusEvent | RpcLiveEvent | RpcMigration | RpcPong;
|
|
167
|
+
type RpcMessage = ClientMessage | OwnerMessage;
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/rpc/rpc-correlator.d.ts
|
|
170
|
+
type RpcRequestOptions = {
|
|
171
|
+
/** Reject if no response arrives within this many ms; omit for no timeout. */timeoutMs?: number; /** Maps a successful response value (e.g. paged-result rehydration). */
|
|
172
|
+
transform?: (value: unknown) => unknown; /** Runs after the post; may return a cleanup invoked when the request settles. */
|
|
173
|
+
setup?: (id: CorrelationId) => (() => void) | void;
|
|
174
|
+
};
|
|
175
|
+
/** Anything that can send a client message (the router). */
|
|
176
|
+
type RpcPoster = {
|
|
177
|
+
post(message: ClientMessage): void;
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Request/response correlation shared by every RPC proxy: one pending map,
|
|
181
|
+
* res/err settlement, and per-request timeout/transform/cleanup.
|
|
182
|
+
*/
|
|
183
|
+
declare class RpcCorrelator {
|
|
184
|
+
private readonly poster;
|
|
185
|
+
private readonly prefix;
|
|
186
|
+
private counter;
|
|
187
|
+
private readonly pending;
|
|
188
|
+
constructor(poster: RpcPoster, prefix?: string);
|
|
189
|
+
nextId(): CorrelationId;
|
|
190
|
+
/** Settle the pending request a res/err refers to; a missing id is a no-op. */
|
|
191
|
+
handleMessage(message: OwnerMessage): void;
|
|
192
|
+
/** Send a request, resolving on its res/err. `build` stamps the generated id. */
|
|
193
|
+
request(build: (id: CorrelationId) => ClientMessage, options?: RpcRequestOptions): Promise<unknown>;
|
|
194
|
+
}
|
|
195
|
+
//#endregion
|
|
196
|
+
//#region src/rpc/transport.d.ts
|
|
197
|
+
interface IRpcTransport {
|
|
198
|
+
post(message: RpcMessage): void;
|
|
199
|
+
onMessage(listener: (message: RpcMessage) => void): () => void;
|
|
200
|
+
close(): void;
|
|
201
|
+
}
|
|
202
|
+
declare function createPortTransport(port: MessagePort): IRpcTransport;
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region src/rpc/message-router.d.ts
|
|
205
|
+
type OwnerKind = OwnerMessage["k"];
|
|
206
|
+
/**
|
|
207
|
+
* Owns the single transport.onMessage and dispatches each message to the one
|
|
208
|
+
* consumer that owns its kind. Composes the shared RpcCorrelator (res/err) and
|
|
209
|
+
* exposes request/nextId; attach/detach swap the transport for reconnect.
|
|
210
|
+
*/
|
|
211
|
+
declare class MessageRouter {
|
|
212
|
+
private readonly handlers;
|
|
213
|
+
private readonly correlator;
|
|
214
|
+
private transport;
|
|
215
|
+
private detachTransport;
|
|
216
|
+
constructor(prefix?: string);
|
|
217
|
+
attach(transport: IRpcTransport): void;
|
|
218
|
+
detach(): void;
|
|
219
|
+
post(message: ClientMessage): void;
|
|
220
|
+
/** Register the sole owner of a message kind; throws on a duplicate. */
|
|
221
|
+
on<K extends OwnerKind>(kind: K, handler: (message: Extract<OwnerMessage, {
|
|
222
|
+
k: K;
|
|
223
|
+
}>) => void): () => void;
|
|
224
|
+
request(build: (id: CorrelationId) => ClientMessage, options?: RpcRequestOptions): Promise<unknown>;
|
|
225
|
+
nextId(): CorrelationId;
|
|
226
|
+
}
|
|
227
|
+
//#endregion
|
|
228
|
+
//#region src/rpc/admin-client.d.ts
|
|
229
|
+
interface IWorkerAdminClient {
|
|
230
|
+
info(): Promise<WorkerInspectorInfo>;
|
|
231
|
+
restart(): Promise<void>;
|
|
232
|
+
clearStorage(): Promise<void>;
|
|
233
|
+
migrate(): Promise<void>;
|
|
234
|
+
getMigrationState(): WorkerMigrationState;
|
|
235
|
+
subscribeMigration(callback: () => void): () => void;
|
|
236
|
+
}
|
|
237
|
+
/** Worker lifecycle channel (info/restart/clearStorage/migrate) over the shared router. */
|
|
238
|
+
declare function createWorkerAdminClient(router: MessageRouter): IWorkerAdminClient;
|
|
239
|
+
//#endregion
|
|
240
|
+
//#region src/rpc/inspector-proxy.d.ts
|
|
241
|
+
interface IInspectorProxy {
|
|
242
|
+
getQueueState(): Promise<unknown>;
|
|
243
|
+
pauseQueue(): Promise<void>;
|
|
244
|
+
resumeQueue(): Promise<void>;
|
|
245
|
+
getProcessors(): Promise<unknown>;
|
|
246
|
+
retryProcessor(processorId: string): Promise<void>;
|
|
247
|
+
validateDocument(documentId: string, branch?: string): Promise<unknown>;
|
|
248
|
+
rebuildKeyframes(documentId: string, branch?: string): Promise<unknown>;
|
|
249
|
+
rebuildSnapshots(documentId: string, branch?: string): Promise<unknown>;
|
|
250
|
+
queryReactorDb(sql: string, params?: unknown[]): Promise<unknown>;
|
|
251
|
+
}
|
|
252
|
+
declare function createInspectorProxy(router: MessageRouter): IInspectorProxy;
|
|
253
|
+
//#endregion
|
|
254
|
+
export { RpcMessage as C, WorkerMigrationState as E, RpcLiveUnsub as S, WorkerInspectorInfo as T, RPC_PROTOCOL_VERSION as _, MessageRouter as a, RpcLiveEvent as b, RpcCorrelator as c, ClientMessage as d, CorrelationId as f, OwnerMessage as g, OpKind as h, createWorkerAdminClient as i, RpcPoster as l, MethodCallMessage as m, createInspectorProxy as n, IRpcTransport as o, ErrorInfo as p, IWorkerAdminClient as r, createPortTransport as s, IInspectorProxy as t, RpcRequestOptions as u, ReactorIdentity as v, VersionFingerprint as w, RpcLiveSubscribe as x, RpcDbOp as y };
|
|
255
|
+
//# sourceMappingURL=inspector-proxy-CvQDDxmT.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector-proxy-CvQDDxmT.d.ts","names":[],"sources":["../src/rpc/protocol.ts","../src/rpc/rpc-correlator.ts","../src/rpc/transport.ts","../src/rpc/message-router.ts","../src/rpc/admin-client.ts","../src/rpc/inspector-proxy.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useSyncExternalStore } from "react";
|
|
2
1
|
import { capitalCase } from "change-case";
|
|
2
|
+
import { useSyncExternalStore } from "react";
|
|
3
3
|
//#region src/hooks/make-ph-event-functions.ts
|
|
4
4
|
const isServer = typeof window === "undefined";
|
|
5
5
|
function makePHEventFunctions(key) {
|
|
@@ -50,4 +50,4 @@ function makePHEventFunctions(key) {
|
|
|
50
50
|
//#endregion
|
|
51
51
|
export { makePHEventFunctions as t };
|
|
52
52
|
|
|
53
|
-
//# sourceMappingURL=make-ph-event-functions-
|
|
53
|
+
//# sourceMappingURL=make-ph-event-functions-BHoLPif5.js.map
|
package/dist/{make-ph-event-functions-DwiD1zH9.js.map → make-ph-event-functions-BHoLPif5.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-ph-event-functions-
|
|
1
|
+
{"version":3,"file":"make-ph-event-functions-BHoLPif5.js","names":[],"sources":["../src/hooks/make-ph-event-functions.ts"],"sourcesContent":["import type {\n PHGlobal,\n PHGlobalKey,\n SetEvent,\n} from \"@powerhousedao/reactor-browser\";\nimport { capitalCase } from \"change-case\";\nimport { useSyncExternalStore } from \"react\";\n\n// guard condition for server side rendering\nconst isServer = typeof window === \"undefined\";\n\nexport function makePHEventFunctions<TKey extends PHGlobalKey>(key: TKey) {\n const setEventName = `ph:set${capitalCase(key)}` as const;\n const updateEventName = `ph:${key}Updated` as const;\n\n function setValue(value: PHGlobal[TKey] | undefined) {\n if (isServer) {\n return;\n }\n const event = new CustomEvent(setEventName, {\n detail: { [key]: value },\n });\n window.dispatchEvent(event);\n }\n\n function dispatchUpdatedEvent() {\n if (isServer) {\n return;\n }\n const event = new CustomEvent(updateEventName);\n window.dispatchEvent(event);\n }\n\n function handleSetValueEvent(event: SetEvent<TKey>) {\n if (isServer) {\n return;\n }\n const value = event.detail[key];\n if (!window.ph) {\n window.ph = {};\n }\n window.ph[key] = value;\n dispatchUpdatedEvent();\n }\n\n function addEventHandler() {\n if (isServer) {\n return;\n }\n window.addEventListener(setEventName, handleSetValueEvent as EventListener);\n }\n\n function subscribeToValue(onStoreChange: () => void) {\n if (isServer) return () => {};\n window.addEventListener(updateEventName, onStoreChange);\n return () => {\n window.removeEventListener(updateEventName, onStoreChange);\n };\n }\n\n function getSnapshot() {\n if (isServer) {\n return undefined;\n }\n // The store is legitimately read before the first `setValue` (subscribers\n // mount before init runs), so an uninitialized store is expected, not an\n // error — return `undefined` quietly rather than warning on every render.\n return window.ph?.[key];\n }\n\n function getServerSnapshot() {\n return undefined;\n }\n\n function useValue() {\n return useSyncExternalStore(\n subscribeToValue,\n getSnapshot,\n getServerSnapshot,\n );\n }\n\n return {\n useValue,\n setValue,\n addEventHandler,\n };\n}\n"],"mappings":";;;AASA,MAAM,WAAW,OAAO,WAAW;AAEnC,SAAgB,qBAA+C,KAAW;CACxE,MAAM,eAAe,SAAS,YAAY,IAAI;CAC9C,MAAM,kBAAkB,MAAM,IAAI;CAElC,SAAS,SAAS,OAAmC;AACnD,MAAI,SACF;EAEF,MAAM,QAAQ,IAAI,YAAY,cAAc,EAC1C,QAAQ,GAAG,MAAM,OAAO,EACzB,CAAC;AACF,SAAO,cAAc,MAAM;;CAG7B,SAAS,uBAAuB;AAC9B,MAAI,SACF;EAEF,MAAM,QAAQ,IAAI,YAAY,gBAAgB;AAC9C,SAAO,cAAc,MAAM;;CAG7B,SAAS,oBAAoB,OAAuB;AAClD,MAAI,SACF;EAEF,MAAM,QAAQ,MAAM,OAAO;AAC3B,MAAI,CAAC,OAAO,GACV,QAAO,KAAK,EAAE;AAEhB,SAAO,GAAG,OAAO;AACjB,wBAAsB;;CAGxB,SAAS,kBAAkB;AACzB,MAAI,SACF;AAEF,SAAO,iBAAiB,cAAc,oBAAqC;;CAG7E,SAAS,iBAAiB,eAA2B;AACnD,MAAI,SAAU,cAAa;AAC3B,SAAO,iBAAiB,iBAAiB,cAAc;AACvD,eAAa;AACX,UAAO,oBAAoB,iBAAiB,cAAc;;;CAI9D,SAAS,cAAc;AACrB,MAAI,SACF;AAKF,SAAO,OAAO,KAAK;;CAGrB,SAAS,oBAAoB;CAI7B,SAAS,WAAW;AAClB,SAAO,qBACL,kBACA,aACA,kBACD;;AAGH,QAAO;EACL;EACA;EACA;EACD"}
|
|
@@ -19,6 +19,18 @@ const usePGliteDB = () => {
|
|
|
19
19
|
}, []);
|
|
20
20
|
return state;
|
|
21
21
|
};
|
|
22
|
+
function setPGliteDB(pglite) {
|
|
23
|
+
const currentPowerhouse = window.powerhouse ?? {};
|
|
24
|
+
const currentPGliteState = window.powerhouse?.pglite ?? defaultPGliteState;
|
|
25
|
+
window.powerhouse = {
|
|
26
|
+
...currentPowerhouse,
|
|
27
|
+
pglite: {
|
|
28
|
+
...currentPGliteState,
|
|
29
|
+
...pglite
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
window.dispatchEvent(new CustomEvent(PGLITE_UPDATE_EVENT));
|
|
33
|
+
}
|
|
22
34
|
//#endregion
|
|
23
35
|
//#region src/relational/hooks/useRelationalDb.ts
|
|
24
36
|
function createRelationalDbWithLive(pgliteInstance) {
|
|
@@ -118,6 +130,6 @@ function createProcessorQuery(ProcessorClass) {
|
|
|
118
130
|
return useQuery;
|
|
119
131
|
}
|
|
120
132
|
//#endregion
|
|
121
|
-
export { useRelationalQuery as n, useRelationalDb as r, createProcessorQuery as t };
|
|
133
|
+
export { setPGliteDB as i, useRelationalQuery as n, useRelationalDb as r, createProcessorQuery as t };
|
|
122
134
|
|
|
123
|
-
//# sourceMappingURL=relational-
|
|
135
|
+
//# sourceMappingURL=relational-Dj06-YkI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relational-Dj06-YkI.js","names":[],"sources":["../src/pglite/usePGlite.ts","../src/relational/hooks/useRelationalDb.ts","../src/relational/hooks/useRelationalQuery.ts","../src/relational/utils/createProcessorQuery.ts"],"sourcesContent":["import type { PGliteWithLive } from \"@electric-sql/pglite/live\";\nimport { useEffect, useState } from \"react\";\n\nexport const PGLITE_UPDATE_EVENT = \"ph:pglite-update\";\n\nexport interface PGliteState {\n db: PGliteWithLive | null;\n isLoading: boolean;\n error: Error | null;\n}\n\nconst defaultPGliteState: PGliteState = {\n db: null,\n isLoading: true,\n error: null,\n};\n\nexport const usePGliteDB = () => {\n const [state, setState] = useState<PGliteState>(\n () => window.powerhouse?.pglite ?? defaultPGliteState,\n );\n\n useEffect(() => {\n const handlePgliteUpdate = () =>\n setState(window.powerhouse?.pglite ?? defaultPGliteState);\n\n window.addEventListener(PGLITE_UPDATE_EVENT, handlePgliteUpdate);\n\n return () =>\n window.removeEventListener(PGLITE_UPDATE_EVENT, handlePgliteUpdate);\n }, []);\n\n return state;\n};\n\nexport function setPGliteDB(pglite: Partial<PGliteState>): void {\n const currentPowerhouse = window.powerhouse ?? {};\n const currentPGliteState = window.powerhouse?.pglite ?? defaultPGliteState;\n\n window.powerhouse = {\n ...currentPowerhouse,\n pglite: {\n ...currentPGliteState,\n ...pglite,\n },\n };\n window.dispatchEvent(new CustomEvent(PGLITE_UPDATE_EVENT));\n}\n\nexport const useSetPGliteDB = () => setPGliteDB;\n\nexport const usePGlite = () => {\n const pglite = usePGliteDB();\n const setPGlite = useSetPGliteDB();\n\n return [pglite, setPGlite];\n};\n","import type { PGlite } from \"@electric-sql/pglite\";\nimport type { LiveNamespace, PGliteWithLive } from \"@electric-sql/pglite/live\";\nimport { createRelationalDb } from \"@powerhousedao/reactor\";\nimport type { IRelationalDb as IRelationalDbCore } from \"@powerhousedao/shared/processors\";\nimport { Kysely } from \"kysely\";\nimport { PGliteDialect } from \"kysely-pglite-dialect\";\nimport { useMemo } from \"react\";\nimport { usePGliteDB } from \"../../pglite/usePGlite.js\";\n\n// Type for Relational DB instance enhanced with live capabilities\nexport type RelationalDbWithLive<Schema> = IRelationalDbCore<Schema> & {\n live: LiveNamespace;\n};\n\ninterface IRelationalDbState<Schema> {\n db: RelationalDbWithLive<Schema> | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n// Custom initializer that creates enhanced Kysely instance with live capabilities\nfunction createRelationalDbWithLive<Schema>(\n pgliteInstance: PGliteWithLive,\n): RelationalDbWithLive<Schema> {\n const baseDb = new Kysely<Schema>({\n dialect: new PGliteDialect(pgliteInstance as unknown as PGlite),\n });\n const relationalDb = createRelationalDb(baseDb);\n\n // Inject the live namespace with proper typing\n const relationalDBWithLive =\n relationalDb as unknown as RelationalDbWithLive<Schema>;\n relationalDBWithLive.live = pgliteInstance.live;\n\n return relationalDBWithLive;\n}\n\nexport const useRelationalDb = <Schema>(): IRelationalDbState<Schema> => {\n const pglite = usePGliteDB();\n\n const relationalDb = useMemo<IRelationalDbState<Schema>>(() => {\n if (!pglite.db || pglite.isLoading || pglite.error) {\n return {\n db: null,\n isLoading: pglite.isLoading,\n error: pglite.error,\n };\n }\n\n const db = createRelationalDbWithLive<Schema>(pglite.db);\n\n return {\n db,\n isLoading: false,\n error: null,\n };\n }, [pglite]);\n\n return relationalDb;\n};\n","import type { LiveQueryResults } from \"@electric-sql/pglite/live\";\nimport type {\n IRelationalQueryBuilder,\n RelationalDbProcessorClass,\n} from \"@powerhousedao/shared/processors\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useRelationalDb } from \"./useRelationalDb.js\";\n\nexport type QueryCallbackReturnType = {\n sql: string;\n parameters?: readonly unknown[];\n};\n\nexport type useRelationalQueryOptions = {\n // Whether to hash the namespace to avoid namespace size limit. True by default\n hashNamespace?: boolean;\n};\n\nconst MAX_RETRIES = 5;\nconst RETRY_DELAY = 200;\n\nconst isRelationNotExistError = (error: unknown): boolean => {\n const errorMessage =\n error instanceof Error\n ? error.message\n : typeof error === \"string\"\n ? error\n : String(error);\n\n return (\n errorMessage.toLowerCase().includes(\"relation\") &&\n errorMessage.toLowerCase().includes(\"does not exist\")\n );\n};\n\ntype LiveQueryType = {\n unsubscribe: () => void;\n};\n\nexport function useRelationalQuery<Schema, T = unknown, TParams = undefined>(\n ProcessorClass: RelationalDbProcessorClass<Schema>,\n driveId: string,\n queryCallback: (\n db: IRelationalQueryBuilder<Schema>,\n parameters?: TParams,\n ) => QueryCallbackReturnType,\n parameters?: TParams,\n _options?: useRelationalQueryOptions,\n) {\n const [result, setResult] = useState<LiveQueryResults<T> | null>(null);\n const [queryLoading, setQueryLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n const retryCount = useRef(0);\n const retryTimeoutRef = useRef<NodeJS.Timeout>(null);\n\n const relationalDb = useRelationalDb<Schema>();\n\n const executeLiveQuery = async (\n sql: string,\n queryParameters: readonly unknown[] | undefined,\n retryAttempt = 0,\n ): Promise<LiveQueryType | null> => {\n if (!relationalDb.db) {\n return null;\n }\n\n try {\n const live = await relationalDb.db.live.query<T>(\n sql,\n queryParameters ? [...queryParameters] : [],\n (result) => {\n setResult(result);\n setQueryLoading(false);\n retryCount.current = 0; // Reset retry count on success\n },\n );\n\n return live as LiveQueryType;\n } catch (err: unknown) {\n if (isRelationNotExistError(err) && retryAttempt < MAX_RETRIES) {\n return new Promise((resolve) => {\n retryTimeoutRef.current = setTimeout(() => {\n resolve(executeLiveQuery(sql, queryParameters, retryAttempt + 1));\n }, RETRY_DELAY);\n });\n }\n\n setQueryLoading(false);\n setError(err instanceof Error ? err : new Error(String(err)));\n return null;\n }\n };\n\n useEffect(() => {\n setError(undefined);\n setQueryLoading(true);\n retryCount.current = 0;\n\n if (!relationalDb.db) {\n return;\n }\n\n // Use the processor helper to obtain a typed namespaced query builder\n const db = ProcessorClass.query(driveId, relationalDb.db);\n\n const compiledQuery = queryCallback(db, parameters);\n const { sql, parameters: queryParameters } = compiledQuery;\n\n const liveQueryPromise = executeLiveQuery(sql, queryParameters);\n\n return () => {\n if (retryTimeoutRef.current) {\n clearTimeout(retryTimeoutRef.current);\n }\n void liveQueryPromise.then((live) => {\n if (live?.unsubscribe) {\n live.unsubscribe();\n }\n });\n };\n }, [relationalDb.db, ProcessorClass, driveId, queryCallback, parameters]);\n\n return {\n isLoading: relationalDb.isLoading || queryLoading,\n error: error || relationalDb.error,\n result,\n } as const;\n}\n","import type { LiveQueryResults } from \"@electric-sql/pglite/live\";\nimport type {\n QueryCallbackReturnType,\n useRelationalQueryOptions,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n IRelationalQueryBuilder,\n RelationalDbProcessorClass,\n} from \"@powerhousedao/shared/processors\";\nimport type { CompiledQuery } from \"kysely\";\nimport deepEqual from \"lodash.isequal\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { useRelationalQuery } from \"../hooks/useRelationalQuery.js\";\n\n// Custom hook for parameter memoization\nfunction useStableParams<T>(params: T): T {\n const prevParamsRef = useRef<T>(null);\n\n return useMemo(() => {\n if (!deepEqual(prevParamsRef.current, params)) {\n prevParamsRef.current = params;\n }\n return prevParamsRef.current as T;\n }, [params]);\n}\n\nexport function createProcessorQuery<TSchema>(\n ProcessorClass: RelationalDbProcessorClass<TSchema>,\n) {\n // Overload for queries without parameters\n function useQuery<\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n };\n\n // Overload for queries with parameters\n function useQuery<\n TParams,\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n parameters: TParams,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n parameters: TParams,\n options?: useRelationalQueryOptions,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n };\n\n function useQuery<\n TParams,\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n parameters?: TParams,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n parameters?: TParams,\n options?: useRelationalQueryOptions,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n } {\n type InferredResult =\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any;\n\n // Automatically memoize parameters using deep comparison\n const stableParams = useStableParams(parameters);\n\n // Memoize the callback to prevent infinite loops, updating when parameters change\n const memoizedCallback = useCallback(queryCallback, [stableParams]);\n\n return useRelationalQuery<TSchema, InferredResult, TParams>(\n ProcessorClass,\n driveId,\n memoizedCallback,\n stableParams,\n options,\n ) as {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<InferredResult> | null;\n };\n }\n\n return useQuery;\n}\n"],"mappings":";;;;;;AAGA,MAAa,sBAAsB;AAQnC,MAAM,qBAAkC;CACtC,IAAI;CACJ,WAAW;CACX,OAAO;CACR;AAED,MAAa,oBAAoB;CAC/B,MAAM,CAAC,OAAO,YAAY,eAClB,OAAO,YAAY,UAAU,mBACpC;AAED,iBAAgB;EACd,MAAM,2BACJ,SAAS,OAAO,YAAY,UAAU,mBAAmB;AAE3D,SAAO,iBAAiB,qBAAqB,mBAAmB;AAEhE,eACE,OAAO,oBAAoB,qBAAqB,mBAAmB;IACpE,EAAE,CAAC;AAEN,QAAO;;AAGT,SAAgB,YAAY,QAAoC;CAC9D,MAAM,oBAAoB,OAAO,cAAc,EAAE;CACjD,MAAM,qBAAqB,OAAO,YAAY,UAAU;AAExD,QAAO,aAAa;EAClB,GAAG;EACH,QAAQ;GACN,GAAG;GACH,GAAG;GACJ;EACF;AACD,QAAO,cAAc,IAAI,YAAY,oBAAoB,CAAC;;;;ACzB5D,SAAS,2BACP,gBAC8B;CAO9B,MAAM,uBAHe,mBAHN,IAAI,OAAe,EAChC,SAAS,IAAI,cAAc,eAAoC,EAChE,CAAC,CAC6C;AAK/C,sBAAqB,OAAO,eAAe;AAE3C,QAAO;;AAGT,MAAa,wBAA4D;CACvE,MAAM,SAAS,aAAa;AAoB5B,QAlBqB,cAA0C;AAC7D,MAAI,CAAC,OAAO,MAAM,OAAO,aAAa,OAAO,MAC3C,QAAO;GACL,IAAI;GACJ,WAAW,OAAO;GAClB,OAAO,OAAO;GACf;AAKH,SAAO;GACL,IAHS,2BAAmC,OAAO,GAAG;GAItD,WAAW;GACX,OAAO;GACR;IACA,CAAC,OAAO,CAAC;;;;ACtCd,MAAM,cAAc;AACpB,MAAM,cAAc;AAEpB,MAAM,2BAA2B,UAA4B;CAC3D,MAAM,eACJ,iBAAiB,QACb,MAAM,UACN,OAAO,UAAU,WACf,QACA,OAAO,MAAM;AAErB,QACE,aAAa,aAAa,CAAC,SAAS,WAAW,IAC/C,aAAa,aAAa,CAAC,SAAS,iBAAiB;;AAQzD,SAAgB,mBACd,gBACA,SACA,eAIA,YACA,UACA;CACA,MAAM,CAAC,QAAQ,aAAa,SAAqC,KAAK;CACtE,MAAM,CAAC,cAAc,mBAAmB,SAAS,KAAK;CACtD,MAAM,CAAC,OAAO,YAAY,SAA4B,KAAA,EAAU;CAChE,MAAM,aAAa,OAAO,EAAE;CAC5B,MAAM,kBAAkB,OAAuB,KAAK;CAEpD,MAAM,eAAe,iBAAyB;CAE9C,MAAM,mBAAmB,OACvB,KACA,iBACA,eAAe,MACmB;AAClC,MAAI,CAAC,aAAa,GAChB,QAAO;AAGT,MAAI;AAWF,UAVa,MAAM,aAAa,GAAG,KAAK,MACtC,KACA,kBAAkB,CAAC,GAAG,gBAAgB,GAAG,EAAE,GAC1C,WAAW;AACV,cAAU,OAAO;AACjB,oBAAgB,MAAM;AACtB,eAAW,UAAU;KAExB;WAGM,KAAc;AACrB,OAAI,wBAAwB,IAAI,IAAI,eAAe,YACjD,QAAO,IAAI,SAAS,YAAY;AAC9B,oBAAgB,UAAU,iBAAiB;AACzC,aAAQ,iBAAiB,KAAK,iBAAiB,eAAe,EAAE,CAAC;OAChE,YAAY;KACf;AAGJ,mBAAgB,MAAM;AACtB,YAAS,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC;AAC7D,UAAO;;;AAIX,iBAAgB;AACd,WAAS,KAAA,EAAU;AACnB,kBAAgB,KAAK;AACrB,aAAW,UAAU;AAErB,MAAI,CAAC,aAAa,GAChB;EAOF,MAAM,EAAE,KAAK,YAAY,oBADH,cAFX,eAAe,MAAM,SAAS,aAAa,GAAG,EAEjB,WAAW;EAGnD,MAAM,mBAAmB,iBAAiB,KAAK,gBAAgB;AAE/D,eAAa;AACX,OAAI,gBAAgB,QAClB,cAAa,gBAAgB,QAAQ;AAElC,oBAAiB,MAAM,SAAS;AACnC,QAAI,MAAM,YACR,MAAK,aAAa;KAEpB;;IAEH;EAAC,aAAa;EAAI;EAAgB;EAAS;EAAe;EAAW,CAAC;AAEzE,QAAO;EACL,WAAW,aAAa,aAAa;EACrC,OAAO,SAAS,aAAa;EAC7B;EACD;;;;AC/GH,SAAS,gBAAmB,QAAc;CACxC,MAAM,gBAAgB,OAAU,KAAK;AAErC,QAAO,cAAc;AACnB,MAAI,CAAC,UAAU,cAAc,SAAS,OAAO,CAC3C,eAAc,UAAU;AAE1B,SAAO,cAAc;IACpB,CAAC,OAAO,CAAC;;AAGd,SAAgB,qBACd,gBACA;CAqCA,SAAS,SAOP,SACA,eACA,YACA,SAOA;EAKA,MAAM,eAAe,gBAAgB,WAAW;AAKhD,SAAO,mBACL,gBACA,SAJuB,YAAY,eAAe,CAAC,aAAa,CAAC,EAMjE,cACA,QACD;;AAOH,QAAO"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as makePHEventFunctions } from "./make-ph-event-functions-
|
|
1
|
+
import { t as makePHEventFunctions } from "./make-ph-event-functions-BHoLPif5.js";
|
|
2
2
|
import { logger } from "document-model";
|
|
3
3
|
import { Children, cloneElement, forwardRef, isValidElement, useCallback, useEffect, useRef, useState, useSyncExternalStore } from "react";
|
|
4
4
|
import { BrowserKeyStorage, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, DOMAIN_TYPE, ISSUER_TYPE, RenownBuilder, RenownCryptoBuilder, VERIFIABLE_CREDENTIAL_EIP712_TYPE } from "@renown/sdk";
|
|
@@ -166,7 +166,7 @@ function RenownLogo({ width = 71, height = 19, hovered = false, color = "current
|
|
|
166
166
|
]
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
|
-
function CopyIcon({ size = 14, color = "#9EA0A1" }) {
|
|
169
|
+
function CopyIcon({ size = 14, color = "var(--muted-foreground, #9EA0A1)" }) {
|
|
170
170
|
return /* @__PURE__ */ jsxs("svg", {
|
|
171
171
|
width: size,
|
|
172
172
|
height: size,
|
|
@@ -188,7 +188,7 @@ function CopyIcon({ size = 14, color = "#9EA0A1" }) {
|
|
|
188
188
|
})]
|
|
189
189
|
});
|
|
190
190
|
}
|
|
191
|
-
function DisconnectIcon({ size = 14, color = "#EA4335" }) {
|
|
191
|
+
function DisconnectIcon({ size = 14, color = "var(--destructive, #EA4335)" }) {
|
|
192
192
|
return /* @__PURE__ */ jsxs("svg", {
|
|
193
193
|
width: size,
|
|
194
194
|
height: size,
|
|
@@ -357,30 +357,17 @@ const Slot = forwardRef(({ children, ...props }, ref) => {
|
|
|
357
357
|
Slot.displayName = "Slot";
|
|
358
358
|
//#endregion
|
|
359
359
|
//#region src/renown/components/RenownLoginButton.tsx
|
|
360
|
-
const
|
|
360
|
+
const colorStyles = {
|
|
361
361
|
trigger: {
|
|
362
|
-
backgroundColor: "#ffffff",
|
|
362
|
+
backgroundColor: "var(--card, #ffffff)",
|
|
363
363
|
borderWidth: "1px",
|
|
364
364
|
borderStyle: "solid",
|
|
365
|
-
borderColor: "#d1d5db",
|
|
366
|
-
color: "#111827"
|
|
365
|
+
borderColor: "var(--border, #d1d5db)",
|
|
366
|
+
color: "var(--card-foreground, #111827)"
|
|
367
367
|
},
|
|
368
368
|
triggerHover: {
|
|
369
|
-
backgroundColor: "#ecf3f8",
|
|
370
|
-
borderColor: "#
|
|
371
|
-
}
|
|
372
|
-
};
|
|
373
|
-
const darkStyles = {
|
|
374
|
-
trigger: {
|
|
375
|
-
backgroundColor: "#1f2937",
|
|
376
|
-
borderWidth: "1px",
|
|
377
|
-
borderStyle: "solid",
|
|
378
|
-
borderColor: "#4b5563",
|
|
379
|
-
color: "#ecf3f8"
|
|
380
|
-
},
|
|
381
|
-
triggerHover: {
|
|
382
|
-
backgroundColor: "#374151",
|
|
383
|
-
borderColor: "#6b7280"
|
|
369
|
+
backgroundColor: "var(--accent, #ecf3f8)",
|
|
370
|
+
borderColor: "var(--border, #d1d5db)"
|
|
384
371
|
}
|
|
385
372
|
};
|
|
386
373
|
const styles$1 = {
|
|
@@ -403,7 +390,7 @@ const styles$1 = {
|
|
|
403
390
|
transition: "background-color 150ms, border-color 150ms"
|
|
404
391
|
}
|
|
405
392
|
};
|
|
406
|
-
function RenownLoginButton({ onLogin: onLoginProp,
|
|
393
|
+
function RenownLoginButton({ onLogin: onLoginProp, style, className, asChild = false, children }) {
|
|
407
394
|
const onLogin = onLoginProp ?? (() => openRenown());
|
|
408
395
|
const [isLoading, setIsLoading] = useState(false);
|
|
409
396
|
const [isHovered, setIsHovered] = useState(false);
|
|
@@ -415,7 +402,7 @@ function RenownLoginButton({ onLogin: onLoginProp, darkMode = false, style, clas
|
|
|
415
402
|
onLogin();
|
|
416
403
|
}
|
|
417
404
|
};
|
|
418
|
-
const themeStyles =
|
|
405
|
+
const themeStyles = colorStyles;
|
|
419
406
|
const triggerStyle = {
|
|
420
407
|
...styles$1.trigger,
|
|
421
408
|
...themeStyles.trigger,
|
|
@@ -461,19 +448,19 @@ const styles = {
|
|
|
461
448
|
padding: "6px 12px",
|
|
462
449
|
borderWidth: "1px",
|
|
463
450
|
borderStyle: "solid",
|
|
464
|
-
borderColor: "#e5e7eb",
|
|
465
|
-
backgroundColor: "#ffffff",
|
|
451
|
+
borderColor: "var(--border, #e5e7eb)",
|
|
452
|
+
backgroundColor: "var(--card, #ffffff)",
|
|
466
453
|
cursor: "pointer",
|
|
467
454
|
borderRadius: "8px",
|
|
468
455
|
fontSize: "12px",
|
|
469
456
|
fontWeight: 500,
|
|
470
457
|
fontFamily: "inherit",
|
|
471
|
-
color: "#111827",
|
|
458
|
+
color: "var(--card-foreground, #111827)",
|
|
472
459
|
transition: "background-color 150ms, border-color 150ms"
|
|
473
460
|
},
|
|
474
461
|
triggerHover: {
|
|
475
|
-
backgroundColor: "#
|
|
476
|
-
borderColor: "#
|
|
462
|
+
backgroundColor: "var(--accent, #f3f4f6)",
|
|
463
|
+
borderColor: "var(--border, #e5e7eb)"
|
|
477
464
|
},
|
|
478
465
|
avatar: {
|
|
479
466
|
width: "28px",
|
|
@@ -507,31 +494,31 @@ const styles = {
|
|
|
507
494
|
chevron: {
|
|
508
495
|
flexShrink: 0,
|
|
509
496
|
transition: "transform 150ms",
|
|
510
|
-
color: "#6b7280"
|
|
497
|
+
color: "var(--muted-foreground, #6b7280)"
|
|
511
498
|
},
|
|
512
499
|
chevronOpen: { transform: "rotate(180deg)" },
|
|
513
500
|
popoverBase: {
|
|
514
501
|
position: "absolute",
|
|
515
502
|
right: 0,
|
|
516
|
-
backgroundColor: "#ffffff",
|
|
503
|
+
backgroundColor: "var(--popover, #ffffff)",
|
|
517
504
|
borderRadius: "8px",
|
|
518
505
|
boxShadow: "0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08)",
|
|
519
506
|
width: "100%",
|
|
520
507
|
zIndex: 1e3,
|
|
521
|
-
color: "#111827",
|
|
508
|
+
color: "var(--popover-foreground, #111827)",
|
|
522
509
|
borderWidth: "1px",
|
|
523
510
|
borderStyle: "solid",
|
|
524
|
-
borderColor: "#e5e7eb",
|
|
511
|
+
borderColor: "var(--border, #e5e7eb)",
|
|
525
512
|
overflow: "hidden"
|
|
526
513
|
},
|
|
527
514
|
header: {
|
|
528
515
|
padding: "12px 16px",
|
|
529
|
-
borderBottom: "1px solid #e5e7eb"
|
|
516
|
+
borderBottom: "1px solid var(--border, #e5e7eb)"
|
|
530
517
|
},
|
|
531
518
|
headerUsername: {
|
|
532
519
|
fontSize: "14px",
|
|
533
520
|
fontWeight: 600,
|
|
534
|
-
color: "#111827",
|
|
521
|
+
color: "var(--foreground, #111827)",
|
|
535
522
|
margin: 0
|
|
536
523
|
},
|
|
537
524
|
addressRow: {
|
|
@@ -549,14 +536,14 @@ const styles = {
|
|
|
549
536
|
backgroundColor: "transparent",
|
|
550
537
|
cursor: "pointer",
|
|
551
538
|
fontSize: "12px",
|
|
552
|
-
color: "#6b7280",
|
|
539
|
+
color: "var(--muted-foreground, #6b7280)",
|
|
553
540
|
fontFamily: "inherit",
|
|
554
541
|
position: "relative",
|
|
555
542
|
width: "100%"
|
|
556
543
|
},
|
|
557
544
|
copiedText: {
|
|
558
545
|
fontSize: "12px",
|
|
559
|
-
color: "#059669",
|
|
546
|
+
color: "var(--success, #059669)",
|
|
560
547
|
position: "absolute",
|
|
561
548
|
left: 0,
|
|
562
549
|
transition: "opacity 150ms",
|
|
@@ -579,16 +566,16 @@ const styles = {
|
|
|
579
566
|
backgroundColor: "transparent",
|
|
580
567
|
cursor: "pointer",
|
|
581
568
|
fontSize: "14px",
|
|
582
|
-
color: "#
|
|
569
|
+
color: "var(--foreground, #111827)",
|
|
583
570
|
textDecoration: "none",
|
|
584
571
|
fontFamily: "inherit",
|
|
585
572
|
transition: "background-color 150ms"
|
|
586
573
|
},
|
|
587
|
-
menuItemHover: { backgroundColor: "#f3f4f6" },
|
|
588
|
-
disconnectItem: { color: "#dc2626" },
|
|
574
|
+
menuItemHover: { backgroundColor: "var(--accent, #f3f4f6)" },
|
|
575
|
+
disconnectItem: { color: "var(--destructive, #dc2626)" },
|
|
589
576
|
separator: {
|
|
590
577
|
height: "1px",
|
|
591
|
-
backgroundColor: "#e5e7eb",
|
|
578
|
+
backgroundColor: "var(--border, #e5e7eb)",
|
|
592
579
|
margin: 0,
|
|
593
580
|
border: "none"
|
|
594
581
|
}
|
|
@@ -723,7 +710,7 @@ function RenownUserButton({ address: addressProp, username: usernameProp, avatar
|
|
|
723
710
|
},
|
|
724
711
|
children: [/* @__PURE__ */ jsx("span", { children: truncateAddress(address) }), /* @__PURE__ */ jsx(CopyIcon, {
|
|
725
712
|
size: 12,
|
|
726
|
-
color: "#9ca3af"
|
|
713
|
+
color: "var(--muted-foreground, #9ca3af)"
|
|
727
714
|
})]
|
|
728
715
|
}), /* @__PURE__ */ jsx("div", {
|
|
729
716
|
style: {
|
|
@@ -749,7 +736,7 @@ function RenownUserButton({ address: addressProp, username: usernameProp, avatar
|
|
|
749
736
|
},
|
|
750
737
|
children: [/* @__PURE__ */ jsx(UserIcon, {
|
|
751
738
|
size: 14,
|
|
752
|
-
color: "#6b7280"
|
|
739
|
+
color: "var(--muted-foreground, #6b7280)"
|
|
753
740
|
}), "View Profile"]
|
|
754
741
|
}), menuItems?.map((item) => /* @__PURE__ */ jsxs("button", {
|
|
755
742
|
type: "button",
|
|
@@ -779,7 +766,7 @@ function RenownUserButton({ address: addressProp, username: usernameProp, avatar
|
|
|
779
766
|
},
|
|
780
767
|
children: [/* @__PURE__ */ jsx(DisconnectIcon, {
|
|
781
768
|
size: 14,
|
|
782
|
-
color: "#dc2626"
|
|
769
|
+
color: "var(--destructive, #dc2626)"
|
|
783
770
|
}), "Log out"]
|
|
784
771
|
})
|
|
785
772
|
})
|
|
@@ -806,19 +793,19 @@ function RenownAuthButton({ className = "", darkMode, loginContent, userContent,
|
|
|
806
793
|
gap: "8px",
|
|
807
794
|
padding: "6px 12px",
|
|
808
795
|
borderRadius: "8px",
|
|
809
|
-
border: "1px solid #
|
|
796
|
+
border: "1px solid var(--border, #f0f0f0)",
|
|
810
797
|
animation: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite"
|
|
811
798
|
},
|
|
812
799
|
children: [/* @__PURE__ */ jsx("div", { style: {
|
|
813
800
|
width: "28px",
|
|
814
801
|
height: "28px",
|
|
815
802
|
borderRadius: "50%",
|
|
816
|
-
backgroundColor: "#
|
|
803
|
+
backgroundColor: "var(--secondary, #f0f0f0)"
|
|
817
804
|
} }), /* @__PURE__ */ jsx("div", { style: {
|
|
818
805
|
width: "80px",
|
|
819
806
|
height: "14px",
|
|
820
807
|
borderRadius: "4px",
|
|
821
|
-
backgroundColor: "#
|
|
808
|
+
backgroundColor: "var(--secondary, #f0f0f0)"
|
|
822
809
|
} })]
|
|
823
810
|
}), /* @__PURE__ */ jsx("style", { children: `@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }` })]
|
|
824
811
|
});
|
|
@@ -923,4 +910,4 @@ function Renown({ onError, ...initOptions }) {
|
|
|
923
910
|
//#endregion
|
|
924
911
|
export { useLoginStatus as A, RENOWN_CHAIN_ID as C, addRenownEventHandler as D, VERIFIABLE_CREDENTIAL_EIP712_TYPE as E, setLoading as F, useLoading as I, useUser as M, addLoadingEventHandler as N, setRenown as O, loading as P, ISSUER_TYPE as S, RENOWN_URL as T, openRenown as _, RenownAuthButton as a, CREDENTIAL_TYPES as b, ChevronDownIcon as c, RenownLogo as d, SpinnerIcon as f, logout as g, login as h, initRenownCrypto as i, useRenown as j, useDid as k, CopyIcon as l, useRenownAuth as m, useRenownInit as n, RenownUserButton as o, UserIcon as p, initConnectCrypto as r, RenownLoginButton as s, Renown as t, DisconnectIcon as u, CREDENTIAL_SCHEMA_EIP712_TYPE as v, RENOWN_NETWORK_ID as w, DOMAIN_TYPE as x, CREDENTIAL_SUBJECT_TYPE as y };
|
|
925
912
|
|
|
926
|
-
//# sourceMappingURL=renown-
|
|
913
|
+
//# sourceMappingURL=renown-D-1c_Bvx.js.map
|