@thurinlabs/identity-kit 1.3.3 → 1.3.5
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/README.md +2 -0
- package/dist/{chunk-3QHL7DEN.js → chunk-CF64QQZO.js} +20 -1
- package/dist/chunk-CF64QQZO.js.map +1 -0
- package/dist/{chunk-CIMLLM5N.cjs → chunk-YTO7Z5SI.cjs} +21 -2
- package/dist/chunk-YTO7Z5SI.cjs.map +1 -0
- package/dist/core.cjs +8 -2
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +33 -1
- package/dist/core.d.ts +33 -1
- package/dist/core.js +7 -1
- package/dist/embed.global.js +408 -28
- package/dist/embed.global.js.map +1 -1
- package/dist/index.cjs +88 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +18 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +59 -11
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/dist/chunk-3QHL7DEN.js.map +0 -1
- package/dist/chunk-CIMLLM5N.cjs.map +0 -1
package/dist/embed.global.js
CHANGED
|
@@ -8816,9 +8816,9 @@ var ThurinEmbed = (() => {
|
|
|
8816
8816
|
// node_modules/viem/_esm/utils/address/isAddress.js
|
|
8817
8817
|
function isAddress(address, options) {
|
|
8818
8818
|
const { strict = true } = options ?? {};
|
|
8819
|
-
const
|
|
8820
|
-
if (isAddressCache.has(
|
|
8821
|
-
return isAddressCache.get(
|
|
8819
|
+
const cacheKey2 = `${address}.${strict}`;
|
|
8820
|
+
if (isAddressCache.has(cacheKey2))
|
|
8821
|
+
return isAddressCache.get(cacheKey2);
|
|
8822
8822
|
const result = (() => {
|
|
8823
8823
|
if (!addressRegex.test(address))
|
|
8824
8824
|
return false;
|
|
@@ -8828,7 +8828,7 @@ var ThurinEmbed = (() => {
|
|
|
8828
8828
|
return checksumAddress(address) === address;
|
|
8829
8829
|
return true;
|
|
8830
8830
|
})();
|
|
8831
|
-
isAddressCache.set(
|
|
8831
|
+
isAddressCache.set(cacheKey2, result);
|
|
8832
8832
|
return result;
|
|
8833
8833
|
}
|
|
8834
8834
|
var addressRegex, isAddressCache;
|
|
@@ -23153,6 +23153,53 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
23153
23153
|
}
|
|
23154
23154
|
}
|
|
23155
23155
|
|
|
23156
|
+
// node_modules/viem/_esm/utils/observe.js
|
|
23157
|
+
var listenersCache = /* @__PURE__ */ new Map();
|
|
23158
|
+
var cleanupCache = /* @__PURE__ */ new Map();
|
|
23159
|
+
var callbackCount = 0;
|
|
23160
|
+
function observe(observerId, callbacks, fn2) {
|
|
23161
|
+
const callbackId = ++callbackCount;
|
|
23162
|
+
const getListeners = () => listenersCache.get(observerId) || [];
|
|
23163
|
+
const unsubscribe = () => {
|
|
23164
|
+
const listeners2 = getListeners();
|
|
23165
|
+
listenersCache.set(observerId, listeners2.filter((cb) => cb.id !== callbackId));
|
|
23166
|
+
};
|
|
23167
|
+
const unwatch = () => {
|
|
23168
|
+
const listeners2 = getListeners();
|
|
23169
|
+
if (!listeners2.some((cb) => cb.id === callbackId))
|
|
23170
|
+
return;
|
|
23171
|
+
const cleanup2 = cleanupCache.get(observerId);
|
|
23172
|
+
if (listeners2.length === 1 && cleanup2) {
|
|
23173
|
+
const p2 = cleanup2();
|
|
23174
|
+
if (p2 instanceof Promise)
|
|
23175
|
+
p2.catch(() => {
|
|
23176
|
+
});
|
|
23177
|
+
}
|
|
23178
|
+
unsubscribe();
|
|
23179
|
+
};
|
|
23180
|
+
const listeners = getListeners();
|
|
23181
|
+
listenersCache.set(observerId, [
|
|
23182
|
+
...listeners,
|
|
23183
|
+
{ id: callbackId, fns: callbacks }
|
|
23184
|
+
]);
|
|
23185
|
+
if (listeners && listeners.length > 0)
|
|
23186
|
+
return unwatch;
|
|
23187
|
+
const emit = {};
|
|
23188
|
+
for (const key in callbacks) {
|
|
23189
|
+
emit[key] = ((...args) => {
|
|
23190
|
+
const listeners2 = getListeners();
|
|
23191
|
+
if (listeners2.length === 0)
|
|
23192
|
+
return;
|
|
23193
|
+
for (const listener of listeners2)
|
|
23194
|
+
listener.fns[key]?.(...args);
|
|
23195
|
+
});
|
|
23196
|
+
}
|
|
23197
|
+
const cleanup = fn2(emit);
|
|
23198
|
+
if (typeof cleanup === "function")
|
|
23199
|
+
cleanupCache.set(observerId, cleanup);
|
|
23200
|
+
return unwatch;
|
|
23201
|
+
}
|
|
23202
|
+
|
|
23156
23203
|
// node_modules/viem/_esm/utils/wait.js
|
|
23157
23204
|
async function wait(time) {
|
|
23158
23205
|
return new Promise((res) => setTimeout(res, time));
|
|
@@ -23181,6 +23228,178 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
23181
23228
|
});
|
|
23182
23229
|
}
|
|
23183
23230
|
|
|
23231
|
+
// node_modules/viem/_esm/actions/public/watchBlockNumber.js
|
|
23232
|
+
init_fromHex();
|
|
23233
|
+
|
|
23234
|
+
// node_modules/viem/_esm/utils/poll.js
|
|
23235
|
+
function poll(fn2, { emitOnBegin, initialWaitTime, interval }) {
|
|
23236
|
+
let active = true;
|
|
23237
|
+
const unwatch = () => active = false;
|
|
23238
|
+
const watch = async () => {
|
|
23239
|
+
let data;
|
|
23240
|
+
if (emitOnBegin)
|
|
23241
|
+
data = await fn2({ unpoll: unwatch });
|
|
23242
|
+
const initialWait = await initialWaitTime?.(data) ?? interval;
|
|
23243
|
+
await wait(initialWait);
|
|
23244
|
+
const poll2 = async () => {
|
|
23245
|
+
if (!active)
|
|
23246
|
+
return;
|
|
23247
|
+
await fn2({ unpoll: unwatch });
|
|
23248
|
+
await wait(interval);
|
|
23249
|
+
poll2();
|
|
23250
|
+
};
|
|
23251
|
+
poll2();
|
|
23252
|
+
};
|
|
23253
|
+
watch();
|
|
23254
|
+
return unwatch;
|
|
23255
|
+
}
|
|
23256
|
+
|
|
23257
|
+
// node_modules/viem/_esm/actions/public/watchBlockNumber.js
|
|
23258
|
+
init_stringify();
|
|
23259
|
+
|
|
23260
|
+
// node_modules/viem/_esm/utils/promise/withCache.js
|
|
23261
|
+
var promiseCache = /* @__PURE__ */ new Map();
|
|
23262
|
+
var responseCache = /* @__PURE__ */ new Map();
|
|
23263
|
+
function getCache(cacheKey2) {
|
|
23264
|
+
const buildCache = (cacheKey3, cache) => ({
|
|
23265
|
+
clear: () => cache.delete(cacheKey3),
|
|
23266
|
+
get: () => cache.get(cacheKey3),
|
|
23267
|
+
set: (data) => cache.set(cacheKey3, data)
|
|
23268
|
+
});
|
|
23269
|
+
const promise = buildCache(cacheKey2, promiseCache);
|
|
23270
|
+
const response = buildCache(cacheKey2, responseCache);
|
|
23271
|
+
return {
|
|
23272
|
+
clear: () => {
|
|
23273
|
+
promise.clear();
|
|
23274
|
+
response.clear();
|
|
23275
|
+
},
|
|
23276
|
+
promise,
|
|
23277
|
+
response
|
|
23278
|
+
};
|
|
23279
|
+
}
|
|
23280
|
+
async function withCache(fn2, { cacheKey: cacheKey2, cacheTime = Number.POSITIVE_INFINITY }) {
|
|
23281
|
+
const cache = getCache(cacheKey2);
|
|
23282
|
+
const response = cache.response.get();
|
|
23283
|
+
if (response && cacheTime > 0) {
|
|
23284
|
+
const age = Date.now() - response.created.getTime();
|
|
23285
|
+
if (age < cacheTime)
|
|
23286
|
+
return response.data;
|
|
23287
|
+
}
|
|
23288
|
+
let promise = cache.promise.get();
|
|
23289
|
+
if (!promise) {
|
|
23290
|
+
promise = fn2();
|
|
23291
|
+
cache.promise.set(promise);
|
|
23292
|
+
}
|
|
23293
|
+
try {
|
|
23294
|
+
const data = await promise;
|
|
23295
|
+
cache.response.set({ created: /* @__PURE__ */ new Date(), data });
|
|
23296
|
+
return data;
|
|
23297
|
+
} finally {
|
|
23298
|
+
cache.promise.clear();
|
|
23299
|
+
}
|
|
23300
|
+
}
|
|
23301
|
+
|
|
23302
|
+
// node_modules/viem/_esm/actions/public/getBlockNumber.js
|
|
23303
|
+
var cacheKey = (id) => `blockNumber.${id}`;
|
|
23304
|
+
async function getBlockNumber(client, { cacheTime = client.cacheTime } = {}) {
|
|
23305
|
+
const blockNumberHex = await withCache(() => client.request({
|
|
23306
|
+
method: "eth_blockNumber"
|
|
23307
|
+
}), { cacheKey: cacheKey(client.uid), cacheTime });
|
|
23308
|
+
return BigInt(blockNumberHex);
|
|
23309
|
+
}
|
|
23310
|
+
|
|
23311
|
+
// node_modules/viem/_esm/actions/public/watchBlockNumber.js
|
|
23312
|
+
function watchBlockNumber(client, { emitOnBegin = false, emitMissed = false, onBlockNumber, onError, poll: poll_, pollingInterval = client.pollingInterval }) {
|
|
23313
|
+
const enablePolling = (() => {
|
|
23314
|
+
if (typeof poll_ !== "undefined")
|
|
23315
|
+
return poll_;
|
|
23316
|
+
if (client.transport.type === "webSocket" || client.transport.type === "ipc")
|
|
23317
|
+
return false;
|
|
23318
|
+
if (client.transport.type === "fallback" && (client.transport.transports[0].config.type === "webSocket" || client.transport.transports[0].config.type === "ipc"))
|
|
23319
|
+
return false;
|
|
23320
|
+
return true;
|
|
23321
|
+
})();
|
|
23322
|
+
let prevBlockNumber;
|
|
23323
|
+
const pollBlockNumber = () => {
|
|
23324
|
+
const observerId = stringify([
|
|
23325
|
+
"watchBlockNumber",
|
|
23326
|
+
client.uid,
|
|
23327
|
+
emitOnBegin,
|
|
23328
|
+
emitMissed,
|
|
23329
|
+
pollingInterval
|
|
23330
|
+
]);
|
|
23331
|
+
return observe(observerId, { onBlockNumber, onError }, (emit) => poll(async () => {
|
|
23332
|
+
try {
|
|
23333
|
+
const blockNumber = await getAction(client, getBlockNumber, "getBlockNumber")({ cacheTime: 0 });
|
|
23334
|
+
if (prevBlockNumber !== void 0) {
|
|
23335
|
+
if (blockNumber === prevBlockNumber)
|
|
23336
|
+
return;
|
|
23337
|
+
if (blockNumber - prevBlockNumber > 1 && emitMissed) {
|
|
23338
|
+
for (let i2 = prevBlockNumber + 1n; i2 < blockNumber; i2++) {
|
|
23339
|
+
emit.onBlockNumber(i2, prevBlockNumber);
|
|
23340
|
+
prevBlockNumber = i2;
|
|
23341
|
+
}
|
|
23342
|
+
}
|
|
23343
|
+
}
|
|
23344
|
+
if (prevBlockNumber === void 0 || blockNumber > prevBlockNumber) {
|
|
23345
|
+
emit.onBlockNumber(blockNumber, prevBlockNumber);
|
|
23346
|
+
prevBlockNumber = blockNumber;
|
|
23347
|
+
}
|
|
23348
|
+
} catch (err) {
|
|
23349
|
+
emit.onError?.(err);
|
|
23350
|
+
}
|
|
23351
|
+
}, {
|
|
23352
|
+
emitOnBegin,
|
|
23353
|
+
interval: pollingInterval
|
|
23354
|
+
}));
|
|
23355
|
+
};
|
|
23356
|
+
const subscribeBlockNumber = () => {
|
|
23357
|
+
const observerId = stringify([
|
|
23358
|
+
"watchBlockNumber",
|
|
23359
|
+
client.uid,
|
|
23360
|
+
emitOnBegin,
|
|
23361
|
+
emitMissed
|
|
23362
|
+
]);
|
|
23363
|
+
return observe(observerId, { onBlockNumber, onError }, (emit) => {
|
|
23364
|
+
let active = true;
|
|
23365
|
+
let unsubscribe = () => active = false;
|
|
23366
|
+
(async () => {
|
|
23367
|
+
try {
|
|
23368
|
+
const transport = (() => {
|
|
23369
|
+
if (client.transport.type === "fallback") {
|
|
23370
|
+
const transport2 = client.transport.transports.find((transport3) => transport3.config.type === "webSocket" || transport3.config.type === "ipc");
|
|
23371
|
+
if (!transport2)
|
|
23372
|
+
return client.transport;
|
|
23373
|
+
return transport2.value;
|
|
23374
|
+
}
|
|
23375
|
+
return client.transport;
|
|
23376
|
+
})();
|
|
23377
|
+
const { unsubscribe: unsubscribe_ } = await transport.subscribe({
|
|
23378
|
+
params: ["newHeads"],
|
|
23379
|
+
onData(data) {
|
|
23380
|
+
if (!active)
|
|
23381
|
+
return;
|
|
23382
|
+
const blockNumber = hexToBigInt(data.result?.number);
|
|
23383
|
+
emit.onBlockNumber(blockNumber, prevBlockNumber);
|
|
23384
|
+
prevBlockNumber = blockNumber;
|
|
23385
|
+
},
|
|
23386
|
+
onError(error) {
|
|
23387
|
+
emit.onError?.(error);
|
|
23388
|
+
}
|
|
23389
|
+
});
|
|
23390
|
+
unsubscribe = unsubscribe_;
|
|
23391
|
+
if (!active)
|
|
23392
|
+
unsubscribe();
|
|
23393
|
+
} catch (err) {
|
|
23394
|
+
onError?.(err);
|
|
23395
|
+
}
|
|
23396
|
+
})();
|
|
23397
|
+
return () => unsubscribe();
|
|
23398
|
+
});
|
|
23399
|
+
};
|
|
23400
|
+
return enablePolling ? pollBlockNumber() : subscribeBlockNumber();
|
|
23401
|
+
}
|
|
23402
|
+
|
|
23184
23403
|
// node_modules/viem/_esm/utils/buildRequest.js
|
|
23185
23404
|
init_base();
|
|
23186
23405
|
init_request();
|
|
@@ -23189,14 +23408,14 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
23189
23408
|
|
|
23190
23409
|
// node_modules/viem/_esm/utils/promise/withDedupe.js
|
|
23191
23410
|
init_lru();
|
|
23192
|
-
var
|
|
23411
|
+
var promiseCache2 = /* @__PURE__ */ new LruMap(8192);
|
|
23193
23412
|
function withDedupe(fn2, { enabled = true, id }) {
|
|
23194
23413
|
if (!enabled || !id)
|
|
23195
23414
|
return fn2();
|
|
23196
|
-
if (
|
|
23197
|
-
return
|
|
23198
|
-
const promise = fn2().finally(() =>
|
|
23199
|
-
|
|
23415
|
+
if (promiseCache2.get(id))
|
|
23416
|
+
return promiseCache2.get(id);
|
|
23417
|
+
const promise = fn2().finally(() => promiseCache2.delete(id));
|
|
23418
|
+
promiseCache2.set(id, promise);
|
|
23200
23419
|
return promise;
|
|
23201
23420
|
}
|
|
23202
23421
|
|
|
@@ -24752,7 +24971,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
24752
24971
|
}
|
|
24753
24972
|
|
|
24754
24973
|
// src/provider.tsx
|
|
24755
|
-
var
|
|
24974
|
+
var import_react8 = __toESM(require_react(), 1);
|
|
24756
24975
|
|
|
24757
24976
|
// node_modules/wagmi/dist/esm/context.js
|
|
24758
24977
|
var import_react2 = __toESM(require_react(), 1);
|
|
@@ -25501,6 +25720,14 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
25501
25720
|
}
|
|
25502
25721
|
}
|
|
25503
25722
|
|
|
25723
|
+
// node_modules/@wagmi/core/dist/esm/actions/getBlockNumber.js
|
|
25724
|
+
function getBlockNumber2(config, parameters = {}) {
|
|
25725
|
+
const { chainId, ...rest } = parameters;
|
|
25726
|
+
const client = config.getClient({ chainId });
|
|
25727
|
+
const action = getAction2(client, getBlockNumber, "getBlockNumber");
|
|
25728
|
+
return action(rest);
|
|
25729
|
+
}
|
|
25730
|
+
|
|
25504
25731
|
// node_modules/@wagmi/core/dist/esm/actions/getChainId.js
|
|
25505
25732
|
function getChainId(config) {
|
|
25506
25733
|
return config.state.chainId;
|
|
@@ -25629,6 +25856,28 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
25629
25856
|
}
|
|
25630
25857
|
};
|
|
25631
25858
|
|
|
25859
|
+
// node_modules/@wagmi/core/dist/esm/actions/watchBlockNumber.js
|
|
25860
|
+
function watchBlockNumber2(config, parameters) {
|
|
25861
|
+
const { syncConnectedChain = config._internal.syncConnectedChain, ...rest } = parameters;
|
|
25862
|
+
let unwatch;
|
|
25863
|
+
const listener = (chainId) => {
|
|
25864
|
+
if (unwatch)
|
|
25865
|
+
unwatch();
|
|
25866
|
+
const client = config.getClient({ chainId });
|
|
25867
|
+
const action = getAction2(client, watchBlockNumber, "watchBlockNumber");
|
|
25868
|
+
unwatch = action(rest);
|
|
25869
|
+
return unwatch;
|
|
25870
|
+
};
|
|
25871
|
+
const unlisten = listener(parameters.chainId);
|
|
25872
|
+
let unsubscribe;
|
|
25873
|
+
if (syncConnectedChain && !parameters.chainId)
|
|
25874
|
+
unsubscribe = config.subscribe(({ chainId }) => chainId, async (chainId) => listener(chainId));
|
|
25875
|
+
return () => {
|
|
25876
|
+
unlisten?.();
|
|
25877
|
+
unsubscribe?.();
|
|
25878
|
+
};
|
|
25879
|
+
}
|
|
25880
|
+
|
|
25632
25881
|
// node_modules/@wagmi/core/dist/esm/actions/watchChainId.js
|
|
25633
25882
|
function watchChainId(config, parameters) {
|
|
25634
25883
|
const { onChange } = parameters;
|
|
@@ -29619,6 +29868,22 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
29619
29868
|
return rest;
|
|
29620
29869
|
}
|
|
29621
29870
|
|
|
29871
|
+
// node_modules/@wagmi/core/dist/esm/query/getBlockNumber.js
|
|
29872
|
+
function getBlockNumberQueryOptions(config, options = {}) {
|
|
29873
|
+
return {
|
|
29874
|
+
gcTime: 0,
|
|
29875
|
+
async queryFn({ queryKey }) {
|
|
29876
|
+
const { scopeKey: _2, ...parameters } = queryKey[1];
|
|
29877
|
+
const blockNumber = await getBlockNumber2(config, parameters);
|
|
29878
|
+
return blockNumber ?? null;
|
|
29879
|
+
},
|
|
29880
|
+
queryKey: getBlockNumberQueryKey(options)
|
|
29881
|
+
};
|
|
29882
|
+
}
|
|
29883
|
+
function getBlockNumberQueryKey(options = {}) {
|
|
29884
|
+
return ["blockNumber", filterQueryOptions(options)];
|
|
29885
|
+
}
|
|
29886
|
+
|
|
29622
29887
|
// node_modules/@wagmi/core/dist/esm/query/getEnsAddress.js
|
|
29623
29888
|
function getEnsAddressQueryOptions(config, options = {}) {
|
|
29624
29889
|
return {
|
|
@@ -29944,6 +30209,63 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
29944
30209
|
return (0, import_react4.useSyncExternalStore)((onChange) => watchChainId(config, { onChange }), () => getChainId(config), () => getChainId(config));
|
|
29945
30210
|
}
|
|
29946
30211
|
|
|
30212
|
+
// node_modules/wagmi/dist/esm/hooks/useWatchBlockNumber.js
|
|
30213
|
+
var import_react5 = __toESM(require_react(), 1);
|
|
30214
|
+
function useWatchBlockNumber(parameters = {}) {
|
|
30215
|
+
const { enabled = true, onBlockNumber, config: _2, ...rest } = parameters;
|
|
30216
|
+
const config = useConfig(parameters);
|
|
30217
|
+
const configChainId = useChainId({ config });
|
|
30218
|
+
const chainId = parameters.chainId ?? configChainId;
|
|
30219
|
+
(0, import_react5.useEffect)(() => {
|
|
30220
|
+
if (!enabled)
|
|
30221
|
+
return;
|
|
30222
|
+
if (!onBlockNumber)
|
|
30223
|
+
return;
|
|
30224
|
+
return watchBlockNumber2(config, {
|
|
30225
|
+
...rest,
|
|
30226
|
+
chainId,
|
|
30227
|
+
onBlockNumber
|
|
30228
|
+
});
|
|
30229
|
+
}, [
|
|
30230
|
+
chainId,
|
|
30231
|
+
config,
|
|
30232
|
+
enabled,
|
|
30233
|
+
onBlockNumber,
|
|
30234
|
+
///
|
|
30235
|
+
rest.onError,
|
|
30236
|
+
rest.emitMissed,
|
|
30237
|
+
rest.emitOnBegin,
|
|
30238
|
+
rest.poll,
|
|
30239
|
+
rest.pollingInterval,
|
|
30240
|
+
rest.syncConnectedChain
|
|
30241
|
+
]);
|
|
30242
|
+
}
|
|
30243
|
+
|
|
30244
|
+
// node_modules/wagmi/dist/esm/hooks/useBlockNumber.js
|
|
30245
|
+
function useBlockNumber(parameters = {}) {
|
|
30246
|
+
const { query = {}, watch } = parameters;
|
|
30247
|
+
const config = useConfig(parameters);
|
|
30248
|
+
const queryClient = useQueryClient();
|
|
30249
|
+
const configChainId = useChainId({ config });
|
|
30250
|
+
const chainId = parameters.chainId ?? configChainId;
|
|
30251
|
+
const options = getBlockNumberQueryOptions(config, {
|
|
30252
|
+
...parameters,
|
|
30253
|
+
chainId
|
|
30254
|
+
});
|
|
30255
|
+
useWatchBlockNumber({
|
|
30256
|
+
...{
|
|
30257
|
+
config: parameters.config,
|
|
30258
|
+
chainId: parameters.chainId,
|
|
30259
|
+
...typeof watch === "object" ? watch : {}
|
|
30260
|
+
},
|
|
30261
|
+
enabled: Boolean((query.enabled ?? true) && (typeof watch === "object" ? watch.enabled : watch)),
|
|
30262
|
+
onBlockNumber(blockNumber) {
|
|
30263
|
+
queryClient.setQueryData(options.queryKey, blockNumber);
|
|
30264
|
+
}
|
|
30265
|
+
});
|
|
30266
|
+
return useQuery2({ ...query, ...options });
|
|
30267
|
+
}
|
|
30268
|
+
|
|
29947
30269
|
// node_modules/wagmi/dist/esm/hooks/useEnsAddress.js
|
|
29948
30270
|
function useEnsAddress(parameters = {}) {
|
|
29949
30271
|
const { name, query = {} } = parameters;
|
|
@@ -30000,12 +30322,12 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
30000
30322
|
}
|
|
30001
30323
|
|
|
30002
30324
|
// node_modules/wagmi/dist/esm/hooks/useReadContracts.js
|
|
30003
|
-
var
|
|
30325
|
+
var import_react6 = __toESM(require_react(), 1);
|
|
30004
30326
|
function useReadContracts(parameters = {}) {
|
|
30005
30327
|
const { contracts = [], query = {} } = parameters;
|
|
30006
30328
|
const config = useConfig(parameters);
|
|
30007
30329
|
const chainId = useChainId({ config });
|
|
30008
|
-
const contractsChainId = (0,
|
|
30330
|
+
const contractsChainId = (0, import_react6.useMemo)(() => {
|
|
30009
30331
|
if (contracts.length === 0)
|
|
30010
30332
|
return void 0;
|
|
30011
30333
|
const firstChainId = contracts[0].chainId;
|
|
@@ -30014,7 +30336,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
30014
30336
|
return void 0;
|
|
30015
30337
|
}, [contracts]);
|
|
30016
30338
|
const options = readContractsQueryOptions(config, { ...parameters, chainId: contractsChainId ?? chainId });
|
|
30017
|
-
const enabled = (0,
|
|
30339
|
+
const enabled = (0, import_react6.useMemo)(() => {
|
|
30018
30340
|
let isContractsValid = false;
|
|
30019
30341
|
for (const contract of contracts) {
|
|
30020
30342
|
const { abi, address, functionName } = contract;
|
|
@@ -30035,14 +30357,14 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
30035
30357
|
}
|
|
30036
30358
|
|
|
30037
30359
|
// src/context.ts
|
|
30038
|
-
var
|
|
30360
|
+
var import_react7 = __toESM(require_react(), 1);
|
|
30039
30361
|
var defaultConfig = {
|
|
30040
30362
|
baseUrl: "https://thurin.id",
|
|
30041
30363
|
network: "mainnet"
|
|
30042
30364
|
};
|
|
30043
|
-
var IdentityKitContext = (0,
|
|
30365
|
+
var IdentityKitContext = (0, import_react7.createContext)(defaultConfig);
|
|
30044
30366
|
function useIdentityKitConfig() {
|
|
30045
|
-
return (0,
|
|
30367
|
+
return (0, import_react7.useContext)(IdentityKitContext);
|
|
30046
30368
|
}
|
|
30047
30369
|
|
|
30048
30370
|
// src/provider.tsx
|
|
@@ -30068,7 +30390,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
30068
30390
|
hasWagmi = true;
|
|
30069
30391
|
} catch {
|
|
30070
30392
|
}
|
|
30071
|
-
const wagmiConfig = (0,
|
|
30393
|
+
const wagmiConfig = (0, import_react8.useMemo)(() => createDefaultWagmiConfig(rpcUrl, network), [rpcUrl, network]);
|
|
30072
30394
|
if (hasWagmi) {
|
|
30073
30395
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children });
|
|
30074
30396
|
}
|
|
@@ -30082,13 +30404,29 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
30082
30404
|
network = "mainnet",
|
|
30083
30405
|
registryAddress
|
|
30084
30406
|
}) {
|
|
30085
|
-
const config = (0,
|
|
30407
|
+
const config = (0, import_react8.useMemo)(
|
|
30086
30408
|
() => ({ rpcUrl, neynarApiKey, baseUrl, network, registryAddress }),
|
|
30087
30409
|
[rpcUrl, neynarApiKey, baseUrl, network, registryAddress]
|
|
30088
30410
|
);
|
|
30089
30411
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(IdentityKitContext.Provider, { value: config, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(WagmiDetector, { rpcUrl, network, children }) });
|
|
30090
30412
|
}
|
|
30091
30413
|
|
|
30414
|
+
// src/core/identityError.ts
|
|
30415
|
+
function needsRpcProbe(s2) {
|
|
30416
|
+
return s2.ensEmpty || s2.ensFailed || s2.claimsFailed;
|
|
30417
|
+
}
|
|
30418
|
+
function identityErrorKind(s2) {
|
|
30419
|
+
if (!needsRpcProbe(s2) || s2.rpcAnswered === void 0) return null;
|
|
30420
|
+
if (!s2.rpcAnswered) return "rpc";
|
|
30421
|
+
if (s2.ensEmpty && !s2.ensFailed) return "not-found";
|
|
30422
|
+
return "read";
|
|
30423
|
+
}
|
|
30424
|
+
var IDENTITY_ERROR_TEXT = {
|
|
30425
|
+
rpc: "Couldn't reach the RPC, so nothing here is known yet.",
|
|
30426
|
+
"not-found": "No address for this name.",
|
|
30427
|
+
read: "Couldn't read the registry."
|
|
30428
|
+
};
|
|
30429
|
+
|
|
30092
30430
|
// node_modules/@adraffy/ens-normalize/dist/index.mjs
|
|
30093
30431
|
var COMPRESSED$1 = "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";
|
|
30094
30432
|
var FENCED = /* @__PURE__ */ new Map([[8217, "apostrophe"], [8260, "fraction slash"], [12539, "middle dot"]]);
|
|
@@ -31035,7 +31373,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31035
31373
|
const registry = getRegistry(config.network, config.registryAddress);
|
|
31036
31374
|
const chain = chainFor(config.network);
|
|
31037
31375
|
const owner = address;
|
|
31038
|
-
const { data: rows, isLoading: rowsLoading } = useReadContract({
|
|
31376
|
+
const { data: rows, isLoading: rowsLoading, isFetched: rowsFetched, error: rowsError, refetch: refetchRows } = useReadContract({
|
|
31039
31377
|
address: registry.address,
|
|
31040
31378
|
abi: REGISTRY_ABI,
|
|
31041
31379
|
functionName: "attestationsOf",
|
|
@@ -31051,7 +31389,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31051
31389
|
args: [owner, BigInt(i2)],
|
|
31052
31390
|
chainId: chain.id
|
|
31053
31391
|
})) : [];
|
|
31054
|
-
const { data: payloads, isLoading: payloadsLoading } = useReadContracts({
|
|
31392
|
+
const { data: payloads, isLoading: payloadsLoading, error: payloadsError, refetch: refetchPayloads } = useReadContracts({
|
|
31055
31393
|
contracts,
|
|
31056
31394
|
query: { enabled: contracts.length > 0 }
|
|
31057
31395
|
});
|
|
@@ -31091,7 +31429,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31091
31429
|
enabled: !!rows && payloadsReady,
|
|
31092
31430
|
staleTime: 3e5
|
|
31093
31431
|
});
|
|
31094
|
-
const isLoading = rowsLoading || payloadsLoading || verifyLoading || !!owner && rows !== void 0 && !payloadsReady;
|
|
31432
|
+
const isLoading = rowsLoading || !!owner && !rowsFetched || payloadsLoading || verifyLoading || !!owner && rows !== void 0 && !payloadsReady;
|
|
31095
31433
|
const activeClaims = (claims || []).filter((c2) => !c2.revoked);
|
|
31096
31434
|
const verifiedClaims = activeClaims.filter((c2) => c2.verification?.verified);
|
|
31097
31435
|
const currentFingerprint = verifiedClaims.length > 0 ? verifiedClaims[verifiedClaims.length - 1].fingerprint : null;
|
|
@@ -31100,7 +31438,15 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31100
31438
|
totalClaims: count,
|
|
31101
31439
|
activeClaims: activeClaims.length,
|
|
31102
31440
|
currentFingerprint,
|
|
31103
|
-
isLoading
|
|
31441
|
+
isLoading,
|
|
31442
|
+
/** A registry read failed (the RPC may be down; useThurinIdentity finds out which). */
|
|
31443
|
+
error: rowsError ?? payloadsError ?? null,
|
|
31444
|
+
refetch: () => {
|
|
31445
|
+
if (owner) {
|
|
31446
|
+
refetchRows();
|
|
31447
|
+
if (contracts.length > 0) refetchPayloads();
|
|
31448
|
+
}
|
|
31449
|
+
}
|
|
31104
31450
|
};
|
|
31105
31451
|
}
|
|
31106
31452
|
|
|
@@ -31513,7 +31859,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31513
31859
|
const chain = chainFor(useIdentityKitConfig().network);
|
|
31514
31860
|
const isAddr = ensOrAddress ? isAddress2(ensOrAddress) : false;
|
|
31515
31861
|
const ensInput = ensOrAddress && !isAddr ? safeNormalize(ensOrAddress) : void 0;
|
|
31516
|
-
const { data: resolvedAddress } = useEnsAddress({
|
|
31862
|
+
const { data: resolvedAddress, error: ensError, isFetched: ensFetched, refetch: refetchEns } = useEnsAddress({
|
|
31517
31863
|
name: ensInput,
|
|
31518
31864
|
chainId: chain.id,
|
|
31519
31865
|
query: { enabled: !!ensInput }
|
|
@@ -31531,7 +31877,9 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31531
31877
|
totalClaims,
|
|
31532
31878
|
activeClaims,
|
|
31533
31879
|
currentFingerprint,
|
|
31534
|
-
isLoading: claimsLoading
|
|
31880
|
+
isLoading: claimsLoading,
|
|
31881
|
+
error: claimsError,
|
|
31882
|
+
refetch: refetchClaims
|
|
31535
31883
|
} = useAttestations(address);
|
|
31536
31884
|
const currentClaim = [...claims].reverse().find(
|
|
31537
31885
|
(c2) => !c2.revoked && c2.verification?.verified && c2.fingerprint === currentFingerprint
|
|
@@ -31542,6 +31890,21 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31542
31890
|
isLoading: proofsLoading
|
|
31543
31891
|
} = usePGPProofs(currentFingerprint, currentClaim?.pgpPublicKey ?? null);
|
|
31544
31892
|
const { efp, isLoading: efpLoading } = useEFPGraph(address);
|
|
31893
|
+
const lookup = { ensEmpty: !!ensInput && ensFetched && !resolvedAddress, ensFailed: !!ensError, claimsFailed: !!claimsError };
|
|
31894
|
+
const probeNeeded = needsRpcProbe(lookup);
|
|
31895
|
+
const probe = useBlockNumber({
|
|
31896
|
+
chainId: chain.id,
|
|
31897
|
+
scopeKey: `thurin-rpc-probe:${ensOrAddress ?? ""}`,
|
|
31898
|
+
query: { enabled: probeNeeded, retry: 0, staleTime: 0, gcTime: 0 }
|
|
31899
|
+
});
|
|
31900
|
+
const rpcAnswered = !probeNeeded || probe.isFetching ? void 0 : probe.isSuccess ? true : probe.isError ? false : void 0;
|
|
31901
|
+
const errorKind = identityErrorKind({ ...lookup, rpcAnswered });
|
|
31902
|
+
const probing = probeNeeded && rpcAnswered === void 0;
|
|
31903
|
+
const retry = () => {
|
|
31904
|
+
if (ensInput) refetchEns();
|
|
31905
|
+
refetchClaims();
|
|
31906
|
+
if (probeNeeded) probe.refetch();
|
|
31907
|
+
};
|
|
31545
31908
|
return {
|
|
31546
31909
|
address,
|
|
31547
31910
|
ensName: displayName,
|
|
@@ -31553,8 +31916,12 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31553
31916
|
pgpKeyInfo,
|
|
31554
31917
|
proofs,
|
|
31555
31918
|
efp,
|
|
31556
|
-
|
|
31557
|
-
|
|
31919
|
+
// "Not finished" counts as loading, including queries paused in a background tab: the card
|
|
31920
|
+
// must not render defaults (zeros) for an identity it hasn't looked up yet.
|
|
31921
|
+
isLoading: !!ensInput && !ensFetched || claimsLoading || proofsLoading || efpLoading || probing,
|
|
31922
|
+
error: errorKind ? new Error(IDENTITY_ERROR_TEXT[errorKind]) : null,
|
|
31923
|
+
errorKind,
|
|
31924
|
+
retry
|
|
31558
31925
|
};
|
|
31559
31926
|
}
|
|
31560
31927
|
|
|
@@ -31578,6 +31945,19 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31578
31945
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "thurin-card", "data-thurin-theme": theme, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "thurin-card-loading", children: "Loading identity..." }) });
|
|
31579
31946
|
}
|
|
31580
31947
|
const displayAddress = identity.address || null;
|
|
31948
|
+
if (identity.errorKind) {
|
|
31949
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "thurin-card", "data-thurin-theme": theme, children: [
|
|
31950
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "thurin-card-header", children: [
|
|
31951
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ThurinLogo, {}),
|
|
31952
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "thurin-card-name", children: identity.ensName || ens || address }) })
|
|
31953
|
+
] }),
|
|
31954
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "thurin-card-error", role: "status", children: [
|
|
31955
|
+
identity.error?.message,
|
|
31956
|
+
identity.errorKind !== "not-found" && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("button", { type: "button", className: "thurin-card-retry", onClick: identity.retry, children: "Try again" })
|
|
31957
|
+
] }),
|
|
31958
|
+
profileUrl && identity.errorKind !== "not-found" && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("a", { className: "thurin-card-link", href: profileUrl, target: "_blank", rel: "noopener noreferrer", children: "View on Thurin" })
|
|
31959
|
+
] });
|
|
31960
|
+
}
|
|
31581
31961
|
const verifiedProofs = identity.proofs.filter((p2) => p2.status === "verified").length;
|
|
31582
31962
|
const hasVerifiedPgp = identity.claims.some((c2) => c2.verification?.verified && !c2.revoked);
|
|
31583
31963
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "thurin-card", "data-thurin-theme": theme, children: [
|
|
@@ -31605,7 +31985,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31605
31985
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "thurin-card-stat-label", children: "Proofs" })
|
|
31606
31986
|
] }),
|
|
31607
31987
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "thurin-card-stat", children: [
|
|
31608
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "thurin-card-stat-value", children: identity.efp
|
|
31988
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "thurin-card-stat-value", children: identity.efp ? identity.efp.followers : "\u2013" }),
|
|
31609
31989
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "thurin-card-stat-label", children: "Followers" })
|
|
31610
31990
|
] })
|
|
31611
31991
|
] }),
|
|
@@ -31638,7 +32018,7 @@ ${prettyStateOverride(stateOverride)}`;
|
|
|
31638
32018
|
var themes_default = '[data-thurin-theme="thurin"] {\n --thurin-bg: #1a1a12;\n --thurin-surface: #252518;\n --thurin-surface-deep: #151510;\n --thurin-border: #3a3a2a;\n --thurin-text: #faf9f5;\n --thurin-text-muted: #a8a598;\n --thurin-heading: #7c9a3e;\n --thurin-primary: #7c9a3e;\n --thurin-primary-dim: #5c7a2e;\n --thurin-secondary: #c9a227;\n --thurin-success: #7c9a3e;\n --thurin-error: #d44a4a;\n}\n\n[data-thurin-theme="dark"] {\n --thurin-bg: #141010;\n --thurin-surface: #1e1918;\n --thurin-surface-deep: #110e0c;\n --thurin-border: #352a22;\n --thurin-text: #ede5d8;\n --thurin-text-muted: #a09080;\n --thurin-heading: #f0ece4;\n --thurin-primary: #c9a227;\n --thurin-primary-dim: #8a7020;\n --thurin-secondary: #d4a04a;\n --thurin-success: #7c9a3e;\n --thurin-error: #d44a4a;\n}\n\n[data-thurin-theme="light"] {\n --thurin-bg: #faf9f5;\n --thurin-surface: #f0efe8;\n --thurin-surface-deep: #e8e7e0;\n --thurin-border: #d0cfc4;\n --thurin-text: #2a2a22;\n --thurin-text-muted: #6b6960;\n --thurin-heading: #5a7228;\n --thurin-primary: #5a7228;\n --thurin-primary-dim: #7c9a3e;\n --thurin-secondary: #a8861e;\n --thurin-success: #5a7228;\n --thurin-error: #b83a3a;\n}\n';
|
|
31639
32019
|
|
|
31640
32020
|
// src/components/ThurinCard/ThurinCard.css?raw
|
|
31641
|
-
var ThurinCard_default = ".thurin-card {\n font-family: 'Crimson Pro', Georgia, serif;\n background: var(--thurin-surface);\n border: 1px solid var(--thurin-border);\n border-radius: 8px;\n padding: 20px;\n color: var(--thurin-text);\n max-width: 380px;\n width: 100%;\n}\n\n.thurin-card * {\n box-sizing: border-box;\n}\n\n.thurin-card-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 16px;\n text-decoration: none;\n color: inherit;\n cursor: pointer;\n}\n\n.thurin-card-header:hover .thurin-card-name {\n color: var(--thurin-primary);\n}\n\n.thurin-card-avatar {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n border: 2px solid var(--thurin-border);\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.thurin-card-avatar-placeholder {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n border: 2px solid var(--thurin-border);\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.thurin-card-name {\n font-family: 'Cinzel', serif;\n font-size: 18px;\n font-weight: 700;\n color: var(--thurin-heading);\n line-height: 1.2;\n}\n\n.thurin-card-address {\n font-family: 'Share Tech Mono', monospace;\n font-size: 11px;\n color: var(--thurin-text-muted);\n margin-top: 2px;\n word-break: break-all;\n}\n\n.thurin-card-stats {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.thurin-card-stat {\n text-align: center;\n padding: 8px 4px;\n background: var(--thurin-surface-deep);\n border-radius: 4px;\n}\n\n.thurin-card-stat-value {\n font-family: 'Cinzel', serif;\n font-size: 20px;\n font-weight: 700;\n color: var(--thurin-heading);\n display: block;\n}\n\n.thurin-card-stat-label {\n font-family: 'Share Tech Mono', monospace;\n font-size: 10px;\n color: var(--thurin-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.thurin-card-badges {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-bottom: 16px;\n}\n\n.thurin-card-badge {\n font-family: 'Share Tech Mono', monospace;\n font-size: 11px;\n padding: 3px 8px;\n border-radius: 3px;\n border: 1px solid;\n}\n\n.thurin-card-badge--verified {\n color: var(--thurin-success);\n border-color: var(--thurin-success);\n}\n\n.thurin-card-badge--unverified {\n color: var(--thurin-text-muted);\n border-color: var(--thurin-border);\n}\n\n.thurin-card-link {\n display: block;\n text-align: right;\n font-size: 12px;\n color: var(--thurin-text-muted);\n text-decoration: none;\n}\n\n.thurin-card-link:hover {\n color: var(--thurin-primary);\n}\n\n.thurin-card-loading {\n text-align: center;\n padding: 24px;\n color: var(--thurin-text-muted);\n font-size: 14px;\n}\n";
|
|
32021
|
+
var ThurinCard_default = ".thurin-card {\n font-family: 'Crimson Pro', Georgia, serif;\n background: var(--thurin-surface);\n border: 1px solid var(--thurin-border);\n border-radius: 8px;\n padding: 20px;\n color: var(--thurin-text);\n max-width: 380px;\n width: 100%;\n}\n\n.thurin-card * {\n box-sizing: border-box;\n}\n\n.thurin-card-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 16px;\n text-decoration: none;\n color: inherit;\n cursor: pointer;\n}\n\n.thurin-card-header:hover .thurin-card-name {\n color: var(--thurin-primary);\n}\n\n.thurin-card-avatar {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n border: 2px solid var(--thurin-border);\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.thurin-card-avatar-placeholder {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n border: 2px solid var(--thurin-border);\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.thurin-card-name {\n font-family: 'Cinzel', serif;\n font-size: 18px;\n font-weight: 700;\n color: var(--thurin-heading);\n line-height: 1.2;\n}\n\n.thurin-card-address {\n font-family: 'Share Tech Mono', monospace;\n font-size: 11px;\n color: var(--thurin-text-muted);\n margin-top: 2px;\n word-break: break-all;\n}\n\n.thurin-card-stats {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.thurin-card-stat {\n text-align: center;\n padding: 8px 4px;\n background: var(--thurin-surface-deep);\n border-radius: 4px;\n}\n\n.thurin-card-stat-value {\n font-family: 'Cinzel', serif;\n font-size: 20px;\n font-weight: 700;\n color: var(--thurin-heading);\n display: block;\n}\n\n.thurin-card-stat-label {\n font-family: 'Share Tech Mono', monospace;\n font-size: 10px;\n color: var(--thurin-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.thurin-card-badges {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-bottom: 16px;\n}\n\n.thurin-card-badge {\n font-family: 'Share Tech Mono', monospace;\n font-size: 11px;\n padding: 3px 8px;\n border-radius: 3px;\n border: 1px solid;\n}\n\n.thurin-card-badge--verified {\n color: var(--thurin-success);\n border-color: var(--thurin-success);\n}\n\n.thurin-card-badge--unverified {\n color: var(--thurin-text-muted);\n border-color: var(--thurin-border);\n}\n\n.thurin-card-link {\n display: block;\n text-align: right;\n font-size: 12px;\n color: var(--thurin-text-muted);\n text-decoration: none;\n}\n\n.thurin-card-link:hover {\n color: var(--thurin-primary);\n}\n\n.thurin-card-loading {\n text-align: center;\n padding: 24px;\n color: var(--thurin-text-muted);\n font-size: 14px;\n}\n\n.thurin-card-error {\n margin: 12px 0;\n font-size: 13px;\n line-height: 1.5;\n color: var(--thurin-text-muted);\n}\n\n.thurin-card-retry {\n display: inline;\n margin-left: 8px;\n padding: 0;\n background: none;\n border: none;\n font: inherit;\n color: var(--thurin-primary);\n text-decoration: underline;\n text-underline-offset: 3px;\n cursor: pointer;\n}\n";
|
|
31642
32022
|
|
|
31643
32023
|
// src/embed.tsx
|
|
31644
32024
|
var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
|