@0xsequence/marketplace-sdk 0.8.3 → 0.8.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/CHANGELOG.md +16 -1
- package/dist/{chunk-25CAMYCG.js → chunk-BB2PTJHI.js} +22 -20
- package/dist/chunk-BB2PTJHI.js.map +1 -0
- package/dist/{chunk-5ATGT5S4.js → chunk-EZFCQZHU.js} +14 -6
- package/dist/chunk-EZFCQZHU.js.map +1 -0
- package/dist/{chunk-DFI52A2E.js → chunk-KCLMSSPS.js} +364 -242
- package/dist/chunk-KCLMSSPS.js.map +1 -0
- package/dist/{chunk-XUNDLCEH.js → chunk-LDZZUYG7.js} +2 -2
- package/dist/{chunk-QTV77W42.js → chunk-SFSFIGHM.js} +45 -35
- package/dist/chunk-SFSFIGHM.js.map +1 -0
- package/dist/{chunk-FSJKN4YN.js → chunk-ZSCZLHKX.js} +194 -2
- package/dist/chunk-ZSCZLHKX.js.map +1 -0
- package/dist/{chunk-FH4TZRDV.js → chunk-ZVTG6US2.js} +2 -2
- package/dist/index.css +4 -4
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/{lowestListing-DUZ_nYml.d.ts → lowestListing-W7P4EkC3.d.ts} +34 -11
- package/dist/react/_internal/databeat/index.js +5 -5
- package/dist/react/_internal/index.d.ts +1 -1
- package/dist/react/_internal/index.js +3 -1
- package/dist/react/_internal/wagmi/index.d.ts +3 -2
- package/dist/react/_internal/wagmi/index.js +3 -1
- package/dist/react/hooks/index.d.ts +8 -5
- package/dist/react/hooks/index.js +6 -4
- package/dist/react/hooks/options/index.js +2 -2
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +9 -7
- package/dist/react/queries/index.d.ts +1 -1
- package/dist/react/queries/index.js +6 -2
- package/dist/react/ssr/index.js +1 -1
- package/dist/react/ui/components/collectible-card/index.d.ts +3 -2
- package/dist/react/ui/components/collectible-card/index.js +7 -7
- package/dist/react/ui/icons/index.js +1 -1
- package/dist/react/ui/index.js +7 -7
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +5 -5
- package/dist/types/index.js +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +19 -19
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +35 -21
- package/src/react/_internal/wagmi/__tests__/create-config.test.ts +1 -11
- package/src/react/_internal/wagmi/get-connectors.ts +27 -24
- package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +4 -9
- package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +5 -4
- package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +14 -10
- package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +115 -65
- package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +10 -7
- package/src/react/hooks/__tests__/useInventory.test.tsx +294 -0
- package/src/react/hooks/index.ts +1 -0
- package/src/react/hooks/useAutoSelectFeeOption.tsx +10 -3
- package/src/react/hooks/useCancelOrder.tsx +1 -0
- package/src/react/hooks/useCancelTransactionSteps.tsx +18 -4
- package/src/react/hooks/useGenerateOfferTransaction.tsx +11 -1
- package/src/react/hooks/useInventory.tsx +15 -0
- package/src/react/hooks/util/optimisticCancelUpdates.ts +115 -0
- package/src/react/queries/index.ts +1 -0
- package/src/react/queries/inventory.ts +303 -0
- package/src/react/queries/listBalances.ts +1 -8
- package/src/react/queries/listCollectibles.ts +12 -3
- package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +27 -94
- package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +59 -0
- package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +73 -0
- package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +77 -0
- package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +3 -2
- package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +4 -3
- package/src/react/ui/components/collectible-card/CollectibleAsset.tsx +1 -0
- package/src/react/ui/components/collectible-card/CollectibleCard.tsx +18 -12
- package/src/react/ui/components/collectible-card/__tests__/CollectibleAsset.test.tsx +200 -0
- package/src/react/ui/components/collectible-card/__tests__/CollectibleCard.test.tsx +92 -123
- package/src/react/ui/components/collectible-card/__tests__/Footer.test.tsx +136 -0
- package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +2 -8
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +74 -104
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +108 -78
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +72 -135
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +286 -0
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +16 -4
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +35 -132
- package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +199 -0
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +55 -0
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/ActionButtons.test.tsx +72 -0
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/BalanceIndicator.test.tsx +50 -0
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +193 -0
- package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +2 -2
- package/test/const.ts +24 -0
- package/test/test-utils.tsx +85 -47
- package/.changeset/flat-parks-clean.md +0 -8
- package/.changeset/red-buckets-deny.md +0 -6
- package/.changeset/seven-doors-taste.md +0 -5
- package/dist/chunk-25CAMYCG.js.map +0 -1
- package/dist/chunk-5ATGT5S4.js.map +0 -1
- package/dist/chunk-DFI52A2E.js.map +0 -1
- package/dist/chunk-FSJKN4YN.js.map +0 -1
- package/dist/chunk-QTV77W42.js.map +0 -1
- package/src/react/ui/components/_internals/action-button/__tests__/ActionButton.test.tsx +0 -107
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/index.test.tsx +0 -164
- /package/dist/{chunk-XUNDLCEH.js.map → chunk-LDZZUYG7.js.map} +0 -0
- /package/dist/{chunk-FH4TZRDV.js.map → chunk-ZVTG6US2.js.map} +0 -0
|
@@ -65,6 +65,9 @@ function getTokenSuppliesOptions(args, config) {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
// src/react/queries/inventory.ts
|
|
69
|
+
import { infiniteQueryOptions as infiniteQueryOptions3 } from "@tanstack/react-query";
|
|
70
|
+
|
|
68
71
|
// src/react/queries/listCollectibles.ts
|
|
69
72
|
import { infiniteQueryOptions as infiniteQueryOptions2 } from "@tanstack/react-query";
|
|
70
73
|
|
|
@@ -82,6 +85,7 @@ async function fetchBalances(args, config, page) {
|
|
|
82
85
|
body: JSON.stringify({
|
|
83
86
|
chainId: args.chainId.toString(),
|
|
84
87
|
accountAddress: args.accountAddress,
|
|
88
|
+
contractAddress: args.contractAddress,
|
|
85
89
|
includeMetadata: args.includeMetadata ?? true,
|
|
86
90
|
page: {
|
|
87
91
|
sort: [
|
|
@@ -127,7 +131,15 @@ async function fetchCollectibles(args, config, page) {
|
|
|
127
131
|
};
|
|
128
132
|
if (args.isLaos721 && args.side === "listing" /* listing */) {
|
|
129
133
|
try {
|
|
130
|
-
const
|
|
134
|
+
const fetchBalancesArgs = {
|
|
135
|
+
chainId: args.chainId,
|
|
136
|
+
accountAddress: args.filter?.inAccounts?.[0],
|
|
137
|
+
contractAddress: args.collectionAddress,
|
|
138
|
+
page,
|
|
139
|
+
includeMetadata: true,
|
|
140
|
+
isLaos721: true
|
|
141
|
+
};
|
|
142
|
+
const balances = await fetchBalances(fetchBalancesArgs, config, page);
|
|
131
143
|
const collectibles = balances.balances.map(
|
|
132
144
|
(balance) => {
|
|
133
145
|
if (!balance.tokenMetadata)
|
|
@@ -166,6 +178,184 @@ function listCollectiblesOptions(args, config) {
|
|
|
166
178
|
});
|
|
167
179
|
}
|
|
168
180
|
|
|
181
|
+
// src/react/queries/inventory.ts
|
|
182
|
+
var stateByCollection = /* @__PURE__ */ new Map();
|
|
183
|
+
var getCollectionKey = (args) => `${args.chainId}-${args.collectionAddress}-${args.accountAddress}`;
|
|
184
|
+
function getOrInitState(collectionKey) {
|
|
185
|
+
if (!stateByCollection.has(collectionKey)) {
|
|
186
|
+
stateByCollection.set(collectionKey, {
|
|
187
|
+
seenTokenIds: /* @__PURE__ */ new Set(),
|
|
188
|
+
marketplaceFinished: false,
|
|
189
|
+
indexerTokensFetched: false,
|
|
190
|
+
indexerTokenBalances: /* @__PURE__ */ new Map()
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return stateByCollection.get(collectionKey);
|
|
194
|
+
}
|
|
195
|
+
function collectibleFromTokenBalance(token) {
|
|
196
|
+
return {
|
|
197
|
+
metadata: {
|
|
198
|
+
tokenId: token.tokenID ?? "",
|
|
199
|
+
attributes: token.tokenMetadata?.attributes ?? [],
|
|
200
|
+
image: token.tokenMetadata?.image,
|
|
201
|
+
name: token.tokenMetadata?.name ?? "",
|
|
202
|
+
description: token.tokenMetadata?.description,
|
|
203
|
+
video: token.tokenMetadata?.video,
|
|
204
|
+
audio: token.tokenMetadata?.audio
|
|
205
|
+
},
|
|
206
|
+
contractInfo: token.contractInfo,
|
|
207
|
+
contractType: token.contractType,
|
|
208
|
+
balance: token.balance
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
async function fetchAllIndexerTokens(chainId, accountAddress, collectionAddress, config, state) {
|
|
212
|
+
const indexerClient = getIndexerClient(chainId, config);
|
|
213
|
+
let page = {
|
|
214
|
+
pageSize: 50
|
|
215
|
+
};
|
|
216
|
+
while (true) {
|
|
217
|
+
const { balances, page: nextPage } = await indexerClient.getTokenBalances({
|
|
218
|
+
accountAddress,
|
|
219
|
+
contractAddress: collectionAddress,
|
|
220
|
+
includeMetadata: true,
|
|
221
|
+
page
|
|
222
|
+
});
|
|
223
|
+
for (const balance of balances) {
|
|
224
|
+
if (balance.tokenID) {
|
|
225
|
+
state.indexerTokenBalances.set(
|
|
226
|
+
balance.tokenID,
|
|
227
|
+
collectibleFromTokenBalance(balance)
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (!nextPage.more) {
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
page = nextPage;
|
|
235
|
+
}
|
|
236
|
+
state.indexerTokensFetched = true;
|
|
237
|
+
}
|
|
238
|
+
function processRemainingIndexerTokens(state, page) {
|
|
239
|
+
const allTokens = Array.from(state.indexerTokenBalances.values());
|
|
240
|
+
const newTokens = allTokens.filter(
|
|
241
|
+
(token) => !state.seenTokenIds.has(token.metadata.tokenId)
|
|
242
|
+
);
|
|
243
|
+
const startIndex = (page.page - 1) * page.pageSize;
|
|
244
|
+
const endIndex = startIndex + page.pageSize;
|
|
245
|
+
const paginatedTokens = newTokens.slice(startIndex, endIndex);
|
|
246
|
+
for (const token of paginatedTokens) {
|
|
247
|
+
state.seenTokenIds.add(token.metadata.tokenId);
|
|
248
|
+
}
|
|
249
|
+
return {
|
|
250
|
+
collectibles: paginatedTokens,
|
|
251
|
+
page: {
|
|
252
|
+
page: page.page,
|
|
253
|
+
pageSize: page.pageSize,
|
|
254
|
+
more: endIndex < newTokens.length
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function processMarketplaceCollectibles(collectibles, state, page) {
|
|
259
|
+
for (const c of collectibles) {
|
|
260
|
+
state.seenTokenIds.add(c.metadata.tokenId);
|
|
261
|
+
}
|
|
262
|
+
const enrichedCollectibles = collectibles.map((c) => {
|
|
263
|
+
const tokenId = c.metadata.tokenId;
|
|
264
|
+
const indexerData = state.indexerTokenBalances.get(tokenId);
|
|
265
|
+
return {
|
|
266
|
+
...c,
|
|
267
|
+
balance: indexerData?.balance,
|
|
268
|
+
contractInfo: indexerData?.contractInfo,
|
|
269
|
+
contractType: indexerData?.contractType
|
|
270
|
+
};
|
|
271
|
+
});
|
|
272
|
+
const marketplaceTokenIds = new Set(
|
|
273
|
+
enrichedCollectibles.map((c) => c.metadata.tokenId)
|
|
274
|
+
);
|
|
275
|
+
const missingTokens = Array.from(state.indexerTokenBalances.entries()).filter(([tokenId]) => !marketplaceTokenIds.has(tokenId)).map(([_, balance]) => balance).slice(0, page.pageSize);
|
|
276
|
+
return { enrichedCollectibles, missingTokens };
|
|
277
|
+
}
|
|
278
|
+
async function fetchInventory(args, config, page) {
|
|
279
|
+
const { accountAddress, collectionAddress, chainId, isLaos721 } = args;
|
|
280
|
+
const collectionKey = getCollectionKey(args);
|
|
281
|
+
const state = getOrInitState(collectionKey);
|
|
282
|
+
if (!state.indexerTokensFetched) {
|
|
283
|
+
await fetchAllIndexerTokens(
|
|
284
|
+
chainId,
|
|
285
|
+
accountAddress,
|
|
286
|
+
collectionAddress,
|
|
287
|
+
config,
|
|
288
|
+
state
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
if (state.marketplaceFinished) {
|
|
292
|
+
return processRemainingIndexerTokens(state, page);
|
|
293
|
+
}
|
|
294
|
+
const collectibles = await fetchCollectibles(
|
|
295
|
+
{
|
|
296
|
+
chainId,
|
|
297
|
+
collectionAddress,
|
|
298
|
+
filter: {
|
|
299
|
+
inAccounts: [accountAddress],
|
|
300
|
+
includeEmpty: true
|
|
301
|
+
},
|
|
302
|
+
side: "listing" /* listing */,
|
|
303
|
+
isLaos721
|
|
304
|
+
},
|
|
305
|
+
config,
|
|
306
|
+
page
|
|
307
|
+
);
|
|
308
|
+
const { enrichedCollectibles, missingTokens } = processMarketplaceCollectibles(collectibles.collectibles, state, page);
|
|
309
|
+
if (!collectibles.page?.more) {
|
|
310
|
+
state.marketplaceFinished = true;
|
|
311
|
+
return {
|
|
312
|
+
collectibles: [...enrichedCollectibles, ...missingTokens],
|
|
313
|
+
page: {
|
|
314
|
+
page: collectibles.page?.page ?? page.page,
|
|
315
|
+
pageSize: collectibles.page?.pageSize ?? page.pageSize,
|
|
316
|
+
more: missingTokens.length > 0
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
return {
|
|
321
|
+
collectibles: enrichedCollectibles,
|
|
322
|
+
page: {
|
|
323
|
+
page: collectibles.page?.page ?? page.page,
|
|
324
|
+
pageSize: collectibles.page?.pageSize ?? page.pageSize,
|
|
325
|
+
more: Boolean(collectibles.page?.more)
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
function inventoryOptions(args, config) {
|
|
330
|
+
const collectionKey = getCollectionKey(args);
|
|
331
|
+
const enabledQuery = args.query?.enabled ?? true;
|
|
332
|
+
const enabled = enabledQuery && !!args.accountAddress && !!args.collectionAddress;
|
|
333
|
+
return infiniteQueryOptions3({
|
|
334
|
+
queryKey: [
|
|
335
|
+
"inventory",
|
|
336
|
+
args.accountAddress,
|
|
337
|
+
args.collectionAddress,
|
|
338
|
+
args.chainId
|
|
339
|
+
],
|
|
340
|
+
queryFn: ({ pageParam }) => fetchInventory(
|
|
341
|
+
{
|
|
342
|
+
...args,
|
|
343
|
+
isLaos721: args.isLaos721 ?? false
|
|
344
|
+
},
|
|
345
|
+
config,
|
|
346
|
+
pageParam
|
|
347
|
+
),
|
|
348
|
+
initialPageParam: { page: 1, pageSize: 30 },
|
|
349
|
+
getNextPageParam: (lastPage) => lastPage.page?.more ? lastPage.page : void 0,
|
|
350
|
+
enabled,
|
|
351
|
+
meta: {
|
|
352
|
+
onInvalidate: () => {
|
|
353
|
+
stateByCollection.delete(collectionKey);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
|
|
169
359
|
// src/react/queries/highestOffer.ts
|
|
170
360
|
import { queryOptions as queryOptions3 } from "@tanstack/react-query";
|
|
171
361
|
async function fetchHighestOffer(args, config) {
|
|
@@ -211,9 +401,11 @@ export {
|
|
|
211
401
|
listBalancesOptions,
|
|
212
402
|
fetchCollectibles,
|
|
213
403
|
listCollectiblesOptions,
|
|
404
|
+
fetchInventory,
|
|
405
|
+
inventoryOptions,
|
|
214
406
|
fetchHighestOffer,
|
|
215
407
|
highestOfferOptions,
|
|
216
408
|
fetchLowestListing,
|
|
217
409
|
lowestListingOptions
|
|
218
410
|
};
|
|
219
|
-
//# sourceMappingURL=chunk-
|
|
411
|
+
//# sourceMappingURL=chunk-ZSCZLHKX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/queries/balanceOfCollectible.ts","../src/react/queries/getTokenSupplies.ts","../src/react/queries/inventory.ts","../src/react/queries/listCollectibles.ts","../src/react/queries/listBalances.ts","../src/react/queries/highestOffer.ts","../src/react/queries/lowestListing.ts"],"sourcesContent":["import { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { UseQueryParameters } from 'wagmi/query';\nimport type { SdkConfig } from '../../types';\nimport { LaosAPI, collectableKeys, getIndexerClient } from '../_internal';\n\nexport type UseBalanceOfCollectibleArgs = {\n\tcollectionAddress: Hex;\n\tcollectableId: string;\n\tuserAddress: Hex | undefined;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tquery?: UseQueryParameters;\n};\n\n/**\n * Fetches the balance of a specific collectible for a user\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @returns The balance data\n */\nexport async function fetchBalanceOfCollectible(\n\targs: Omit<UseBalanceOfCollectibleArgs, 'userAddress'> & { userAddress: Hex },\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\tconst response = await laosApi.getTokenBalances({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\taccountAddress: args.userAddress,\n\t\t\tincludeMetadata: true,\n\t\t});\n\n\t\treturn response.balances[0] || null;\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient\n\t\t.getTokenBalances({\n\t\t\taccountAddress: args.userAddress,\n\t\t\tcontractAddress: args.collectionAddress,\n\t\t\ttokenID: args.collectableId,\n\t\t\tincludeMetadata: false,\n\t\t\tmetadataOptions: {\n\t\t\t\tverifiedOnly: true,\n\t\t\t\tincludeContracts: [args.collectionAddress],\n\t\t\t},\n\t\t})\n\t\t.then((res) => res.balances[0] || null);\n}\n\n/**\n * Creates a tanstack query options object for the balance query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function balanceOfCollectibleOptions(\n\targs: UseBalanceOfCollectibleArgs,\n\tconfig: SdkConfig,\n) {\n\tconst enabled = !!args.userAddress && (args.query?.enabled ?? true);\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.userBalances, args],\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchBalanceOfCollectible(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: this is guaranteed by the userAddress check above\n\t\t\t\t\t\t\tuserAddress: args.userAddress!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t)\n\t\t\t: skipToken,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\n//TODO: This is not complete, there is no hook for this,\n// add it if we need it in the future\nimport { LaosAPI, getIndexerClient } from '../_internal';\n\nexport type UseGetTokenSuppliesArgs = {\n\tchainId: number;\n\tcontractAddress: string;\n\ttokenId: string;\n\tisLaos721?: boolean;\n};\n\nexport async function getTokenSupplies(\n\targs: UseGetTokenSuppliesArgs,\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\treturn laosApi.getTokenSupplies({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\tcontractAddress: args.contractAddress,\n\t\t});\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn await indexerClient.getTokenSupplies(args);\n}\n\nexport function getTokenSuppliesOptions(\n\targs: UseGetTokenSuppliesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tqueryKey: ['getTokenSupplies', args],\n\t\tqueryFn: () => getTokenSupplies(args, config),\n\t});\n}\n","import type {\n\tContractInfo,\n\tPage as IndexerPage,\n\tTokenBalance,\n} from '@0xsequence/indexer';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport { OrderSide, type Page, type SdkConfig } from '../../types';\nimport {\n\ttype CollectibleOrder,\n\ttype ContractType,\n\tgetIndexerClient,\n} from '../_internal';\nimport { fetchCollectibles } from './listCollectibles';\n\nexport interface UseInventoryArgs {\n\taccountAddress: Address;\n\tcollectionAddress: Address;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\n// Maintain collection state across calls\ninterface InventoryState {\n\tseenTokenIds: Set<string>;\n\tmarketplaceFinished: boolean;\n\t// Track if we've already fetched all indexer tokens\n\tindexerTokensFetched: boolean;\n\t// Store the token balances from the indexer\n\tindexerTokenBalances: Map<string, CollectibleWithBalance>;\n}\n\n// Store state per collection\nconst stateByCollection = new Map<string, InventoryState>();\n\nconst getCollectionKey = (args: UseInventoryArgs) =>\n\t`${args.chainId}-${args.collectionAddress}-${args.accountAddress}`;\n\ninterface GetInventoryArgs extends Omit<UseInventoryArgs, 'query'> {\n\tisLaos721: boolean;\n}\n\ninterface CollectibleWithBalance extends CollectibleOrder {\n\tbalance: string;\n\tcontractInfo?: ContractInfo;\n\tcontractType: ContractType.ERC1155 | ContractType.ERC721;\n}\n\nexport interface CollectiblesResponse {\n\tcollectibles: CollectibleWithBalance[];\n\tpage: Page;\n}\n\nfunction getOrInitState(collectionKey: string): InventoryState {\n\tif (!stateByCollection.has(collectionKey)) {\n\t\tstateByCollection.set(collectionKey, {\n\t\t\tseenTokenIds: new Set<string>(),\n\t\t\tmarketplaceFinished: false,\n\t\t\tindexerTokensFetched: false,\n\t\t\tindexerTokenBalances: new Map(),\n\t\t});\n\t}\n\n\t// biome-ignore lint/style/noNonNullAssertion: guaranteed to exist, by the above init\n\treturn stateByCollection.get(collectionKey)!;\n}\n\nfunction collectibleFromTokenBalance(\n\ttoken: TokenBalance,\n): CollectibleWithBalance {\n\treturn {\n\t\tmetadata: {\n\t\t\ttokenId: token.tokenID ?? '',\n\t\t\tattributes: token.tokenMetadata?.attributes ?? [],\n\t\t\timage: token.tokenMetadata?.image,\n\t\t\tname: token.tokenMetadata?.name ?? '',\n\t\t\tdescription: token.tokenMetadata?.description,\n\t\t\tvideo: token.tokenMetadata?.video,\n\t\t\taudio: token.tokenMetadata?.audio,\n\t\t},\n\t\tcontractInfo: token.contractInfo,\n\t\tcontractType: token.contractType as\n\t\t\t| ContractType.ERC1155\n\t\t\t| ContractType.ERC721,\n\t\tbalance: token.balance,\n\t};\n}\n\nasync function fetchAllIndexerTokens(\n\tchainId: number,\n\taccountAddress: Address,\n\tcollectionAddress: Address,\n\tconfig: SdkConfig,\n\tstate: InventoryState,\n): Promise<void> {\n\tconst indexerClient = getIndexerClient(chainId, config);\n\n\tlet page: IndexerPage = {\n\t\tpageSize: 50,\n\t};\n\n\twhile (true) {\n\t\tconst { balances, page: nextPage } = await indexerClient.getTokenBalances({\n\t\t\taccountAddress,\n\t\t\tcontractAddress: collectionAddress,\n\t\t\tincludeMetadata: true,\n\t\t\tpage: page,\n\t\t});\n\n\t\tfor (const balance of balances) {\n\t\t\tif (balance.tokenID) {\n\t\t\t\tstate.indexerTokenBalances.set(\n\t\t\t\t\tbalance.tokenID,\n\t\t\t\t\tcollectibleFromTokenBalance(balance),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!nextPage.more) {\n\t\t\tbreak;\n\t\t}\n\t\tpage = nextPage;\n\t}\n\n\tstate.indexerTokensFetched = true;\n}\n\n// Process indexer tokens that we haven't seen yet\nfunction processRemainingIndexerTokens(\n\tstate: InventoryState,\n\tpage: Page,\n): CollectiblesResponse {\n\tconst allTokens = Array.from(state.indexerTokenBalances.values());\n\n\t// Filter out tokens that we've already seen\n\tconst newTokens = allTokens.filter(\n\t\t(token) => !state.seenTokenIds.has(token.metadata.tokenId),\n\t);\n\n\t// Calculate pagination\n\tconst startIndex = (page.page - 1) * page.pageSize;\n\tconst endIndex = startIndex + page.pageSize;\n\tconst paginatedTokens = newTokens.slice(startIndex, endIndex);\n\n\t// Add new token IDs to the set\n\tfor (const token of paginatedTokens) {\n\t\tstate.seenTokenIds.add(token.metadata.tokenId);\n\t}\n\n\treturn {\n\t\tcollectibles: paginatedTokens,\n\t\tpage: {\n\t\t\tpage: page.page,\n\t\t\tpageSize: page.pageSize,\n\t\t\tmore: endIndex < newTokens.length,\n\t\t},\n\t};\n}\n\nfunction processMarketplaceCollectibles(\n\tcollectibles: CollectibleOrder[],\n\tstate: InventoryState,\n\tpage: Page,\n): {\n\tenrichedCollectibles: CollectibleWithBalance[];\n\tmissingTokens: CollectibleWithBalance[];\n} {\n\t// Add new token IDs to the set\n\tfor (const c of collectibles) {\n\t\tstate.seenTokenIds.add(c.metadata.tokenId);\n\t}\n\n\t// Enrich marketplace collectibles with balance data from indexer\n\tconst enrichedCollectibles = collectibles.map((c: CollectibleOrder) => {\n\t\tconst tokenId = c.metadata.tokenId;\n\t\tconst indexerData = state.indexerTokenBalances.get(tokenId);\n\n\t\treturn {\n\t\t\t...c,\n\t\t\tbalance: indexerData?.balance,\n\t\t\tcontractInfo: indexerData?.contractInfo,\n\t\t\tcontractType: indexerData?.contractType,\n\t\t} as CollectibleWithBalance;\n\t});\n\n\t// Check for missing tokens in the marketplace data\n\tconst marketplaceTokenIds = new Set(\n\t\tenrichedCollectibles.map((c) => c.metadata.tokenId),\n\t);\n\n\tconst missingTokens = Array.from(state.indexerTokenBalances.entries())\n\t\t.filter(([tokenId]) => !marketplaceTokenIds.has(tokenId))\n\t\t.map(([_, balance]) => balance)\n\t\t.slice(0, page.pageSize);\n\n\treturn { enrichedCollectibles, missingTokens };\n}\n\nexport async function fetchInventory(\n\targs: GetInventoryArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<CollectiblesResponse> {\n\tconst { accountAddress, collectionAddress, chainId, isLaos721 } = args;\n\tconst collectionKey = getCollectionKey(args);\n\tconst state = getOrInitState(collectionKey);\n\n\t// On first run, fetch all pages from the indexer\n\tif (!state.indexerTokensFetched) {\n\t\tawait fetchAllIndexerTokens(\n\t\t\tchainId,\n\t\t\taccountAddress,\n\t\t\tcollectionAddress,\n\t\t\tconfig,\n\t\t\tstate,\n\t\t);\n\t}\n\n\t// If marketplace API has no more results, use the indexer data\n\tif (state.marketplaceFinished) {\n\t\treturn processRemainingIndexerTokens(state, page);\n\t}\n\n\t// Fetch collectibles from marketplace API\n\tconst collectibles = await fetchCollectibles(\n\t\t{\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tfilter: {\n\t\t\t\tinAccounts: [accountAddress],\n\t\t\t\tincludeEmpty: true,\n\t\t\t},\n\t\t\tside: OrderSide.listing,\n\t\t\tisLaos721,\n\t\t},\n\t\tconfig,\n\t\tpage,\n\t);\n\n\t// Process the collectibles and find missing tokens\n\tconst { enrichedCollectibles, missingTokens } =\n\t\tprocessMarketplaceCollectibles(collectibles.collectibles, state, page);\n\n\t// If there are no more results from the marketplace API\n\tif (!collectibles.page?.more) {\n\t\t// Mark marketplace as finished and start using indexer data on next call\n\t\tstate.marketplaceFinished = true;\n\t\treturn {\n\t\t\tcollectibles: [...enrichedCollectibles, ...missingTokens],\n\t\t\tpage: {\n\t\t\t\tpage: collectibles.page?.page ?? page.page,\n\t\t\t\tpageSize: collectibles.page?.pageSize ?? page.pageSize,\n\t\t\t\tmore: missingTokens.length > 0,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\tcollectibles: enrichedCollectibles,\n\t\tpage: {\n\t\t\tpage: collectibles.page?.page ?? page.page,\n\t\t\tpageSize: collectibles.page?.pageSize ?? page.pageSize,\n\t\t\tmore: Boolean(collectibles.page?.more),\n\t\t},\n\t};\n}\n\nexport function inventoryOptions(args: UseInventoryArgs, config: SdkConfig) {\n\tconst collectionKey = getCollectionKey(args);\n\tconst enabledQuery = args.query?.enabled ?? true;\n\tconst enabled =\n\t\tenabledQuery && !!args.accountAddress && !!args.collectionAddress;\n\n\treturn infiniteQueryOptions({\n\t\tqueryKey: [\n\t\t\t'inventory',\n\t\t\targs.accountAddress,\n\t\t\targs.collectionAddress,\n\t\t\targs.chainId,\n\t\t],\n\t\tqueryFn: ({ pageParam }) =>\n\t\t\tfetchInventory(\n\t\t\t\t{\n\t\t\t\t\t...args,\n\t\t\t\t\tisLaos721: args.isLaos721 ?? false,\n\t\t\t\t},\n\t\t\t\tconfig,\n\t\t\t\tpageParam,\n\t\t\t),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) =>\n\t\t\tlastPage.page?.more ? lastPage.page : undefined,\n\t\tenabled,\n\t\tmeta: {\n\t\t\tonInvalidate: () => {\n\t\t\t\tstateByCollection.delete(collectionKey);\n\t\t\t},\n\t\t},\n\t});\n}\n","import { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address, Hex } from 'viem';\nimport type { Page, SdkConfig } from '../../types';\nimport type {\n\tCollectibleOrder,\n\tCollectiblesFilter,\n\tListCollectiblesArgs,\n\tListCollectiblesReturn,\n} from '../_internal';\nimport { OrderSide, collectableKeys, getMarketplaceClient } from '../_internal';\nimport { type UseListBalancesArgs, fetchBalances } from './listBalances';\nexport type UseListCollectiblesArgs = {\n\tcollectionAddress: Hex;\n\tchainId: number;\n\tside: OrderSide;\n\tfilter?: CollectiblesFilter;\n\tisLaos721?: boolean;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n};\n\n/**\n * Fetches a list of collectibles with pagination support\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @param page - Page parameters for pagination\n * @returns The collectibles data\n */\nexport async function fetchCollectibles(\n\targs: UseListCollectiblesArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<ListCollectiblesReturn> {\n\tconst marketplaceClient = getMarketplaceClient(args.chainId, config);\n\tconst parsedArgs = {\n\t\t...args,\n\t\tcontractAddress: args.collectionAddress,\n\t\tpage: page,\n\t\tside: args.side,\n\t} satisfies ListCollectiblesArgs;\n\n\tif (args.isLaos721 && args.side === OrderSide.listing) {\n\t\ttry {\n\t\t\tconst fetchBalancesArgs = {\n\t\t\t\tchainId: args.chainId,\n\t\t\t\taccountAddress: args.filter?.inAccounts?.[0] as Address,\n\t\t\t\tcontractAddress: args.collectionAddress,\n\t\t\t\tpage: page,\n\t\t\t\tincludeMetadata: true,\n\t\t\t\tisLaos721: true,\n\t\t\t} satisfies UseListBalancesArgs;\n\n\t\t\tconst balances = await fetchBalances(fetchBalancesArgs, config, page);\n\t\t\tconst collectibles: CollectibleOrder[] = balances.balances.map(\n\t\t\t\t(balance) => {\n\t\t\t\t\tif (!balance.tokenMetadata)\n\t\t\t\t\t\tthrow new Error('Token metadata not found');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\ttokenId: balance.tokenID ?? '',\n\t\t\t\t\t\t\tattributes: balance.tokenMetadata.attributes,\n\t\t\t\t\t\t\timage: balance.tokenMetadata.image,\n\t\t\t\t\t\t\tname: balance.tokenMetadata.name,\n\t\t\t\t\t\t\tdescription: balance.tokenMetadata.description,\n\t\t\t\t\t\t\tvideo: balance.tokenMetadata.video,\n\t\t\t\t\t\t\taudio: balance.tokenMetadata.audio,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcollectibles: collectibles,\n\t\t\t\t//@ts-expect-error\n\t\t\t\tpage: balances.page,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\t// If the request fails, ignore the error and return the collectibles from our indexer\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\treturn await marketplaceClient.listCollectibles(parsedArgs);\n}\n\n/**\n * Creates a tanstack infinite query options object for the collectibles query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function listCollectiblesOptions(\n\targs: UseListCollectiblesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn infiniteQueryOptions({\n\t\t...args.query,\n\t\tqueryKey: [...collectableKeys.lists, args, config],\n\t\tqueryFn: ({ pageParam }) => fetchCollectibles(args, config, pageParam),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) =>\n\t\t\tlastPage.page?.more ? lastPage.page : undefined,\n\t});\n}\n","import type { GetTokenBalancesReturn, Page } from '@0xsequence/indexer';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { balanceQueries, getIndexerClient } from '../_internal';\n\nexport type UseListBalancesArgs = {\n\tchainId: number;\n\taccountAddress?: Hex;\n\tcontractAddress?: Hex;\n\ttokenId?: string;\n\tincludeMetadata?: boolean;\n\tmetadataOptions?: {\n\t\tverifiedOnly?: boolean;\n\t\tunverifiedOnly?: boolean;\n\t\tincludeContracts?: Hex[];\n\t};\n\tincludeCollectionTokens?: boolean;\n\tpage?: Page;\n\tisLaos721?: boolean;\n\t//TODO: More options\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n};\n\nexport async function fetchBalances(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<GetTokenBalancesReturn> {\n\tif (args.isLaos721) {\n\t\tconst response = await fetch(\n\t\t\t'https://extensions.api.laosnetwork.io/token/GetTokenBalances',\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tchainId: args.chainId.toString(),\n\t\t\t\t\taccountAddress: args.accountAddress,\n\t\t\t\t\tcontractAddress: args.contractAddress,\n\t\t\t\t\tincludeMetadata: args.includeMetadata ?? true,\n\t\t\t\t\tpage: {\n\t\t\t\t\t\tsort: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolumn: 'CREATED_AT',\n\t\t\t\t\t\t\t\torder: 'DESC',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Laos API request failed with status ${response.status}`);\n\t\t}\n\n\t\t// TODO: This is pretty unsafe, we should validate the response\n\t\treturn response.json() as Promise<GetTokenBalancesReturn>;\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient.getTokenBalances({\n\t\t...args,\n\t\ttokenID: args.tokenId,\n\t\tpage: page,\n\t});\n}\n\n/**\n * Creates a tanstack infinite query options object for the balances query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function listBalancesOptions(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn infiniteQueryOptions({\n\t\t...args.query,\n\t\tqueryKey: [...balanceQueries.lists, args, config],\n\t\tqueryFn: ({ pageParam }) => fetchBalances(args, config, pageParam),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) => lastPage.page.after,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCollectibleHighestOfferArgs,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n} from '../_internal';\n\nexport interface UseHighestOfferArgs\n\textends Omit<GetCollectibleHighestOfferArgs, 'contractAddress'> {\n\tcollectionAddress: Address;\n\tchainId: number;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nexport async function fetchHighestOffer(\n\targs: UseHighestOfferArgs,\n\tconfig: SdkConfig,\n) {\n\tconst marketplaceClient = getMarketplaceClient(args.chainId, config);\n\n\tconst data = await marketplaceClient.getCollectibleHighestOffer({\n\t\tcontractAddress: args.collectionAddress,\n\t\t...args,\n\t});\n\n\t// let order: Order | undefined;\n\t// if (data.order) {\n\t// \torder = {\n\t// \t\t...data.order,\n\t// \t\tpriceAmount: BigInt(data.order.priceAmount),\n\t// \t\tpriceAmountNet: BigInt(data.order.priceAmountNet),\n\t// \t};\n\t// }\n\n\treturn data.order ?? null;\n}\n\n/**\n * Creates a tanstack query options object for the highest offer query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function highestOfferOptions(\n\targs: UseHighestOfferArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tenabled: args.query?.enabled ?? true,\n\t\tqueryKey: [...collectableKeys.highestOffers, args],\n\t\tqueryFn: () => fetchHighestOffer(args, config),\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCollectibleLowestListingArgs,\n\ttype GetCollectibleLowestListingReturn,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n} from '../_internal';\n\nexport interface UseLowestListingArgs\n\textends Omit<GetCollectibleLowestListingArgs, 'contractAddress'> {\n\tcollectionAddress: Address;\n\tchainId: number;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nexport async function fetchLowestListing(\n\targs: UseLowestListingArgs,\n\tconfig: SdkConfig,\n): Promise<GetCollectibleLowestListingReturn['order'] | null> {\n\tconst marketplaceClient = getMarketplaceClient(args.chainId, config);\n\n\tconst data = await marketplaceClient.getCollectibleLowestListing({\n\t\tcontractAddress: args.collectionAddress,\n\t\t...args,\n\t});\n\n\t// let order: Order | undefined;\n\t// if (data.order) {\n\t// \torder = {\n\t// \t\t...data.order,\n\t// \t\tpriceAmount: BigInt(data.order.priceAmount),\n\t// \t\tpriceAmountNet: BigInt(data.order.priceAmountNet),\n\t// \t};\n\t// }\n\n\treturn data.order || null;\n}\n\nexport function lowestListingOptions(\n\targs: UseLowestListingArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tenabled: args.query?.enabled ?? true,\n\t\tqueryKey: [...collectableKeys.lowestListings, args],\n\t\tqueryFn: () => fetchLowestListing(args, config),\n\t});\n}\n"],"mappings":"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","names":["queryOptions","queryOptions","infiniteQueryOptions","infiniteQueryOptions","infiniteQueryOptions","infiniteQueryOptions","queryOptions","queryOptions","queryOptions","queryOptions"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KCLMSSPS.js";
|
|
4
4
|
|
|
5
5
|
// src/react/_internal/databeat/index.ts
|
|
6
6
|
import { Databeat } from "@databeat/tracker";
|
|
@@ -50,4 +50,4 @@ export {
|
|
|
50
50
|
DatabeatAnalytics,
|
|
51
51
|
useAnalytics
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-ZVTG6US2.js.map
|
package/dist/index.css
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"Segoe UI Emoji",
|
|
12
12
|
"Segoe UI Symbol",
|
|
13
13
|
"Noto Color Emoji";
|
|
14
|
-
--color-indigo-400: oklch(
|
|
15
|
-
--color-violet-400: oklch(
|
|
14
|
+
--color-indigo-400: oklch(67.3% 0.182 276.935);
|
|
15
|
+
--color-violet-400: oklch(70.2% 0.183 293.541);
|
|
16
16
|
--color-black: #000;
|
|
17
17
|
--color-white: #fff;
|
|
18
18
|
--spacing: 0.25rem;
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
}
|
|
213
213
|
@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
|
|
214
214
|
::placeholder {
|
|
215
|
-
color: color-mix(in oklab,
|
|
215
|
+
color: color-mix(in oklab, currentcolor 50%, transparent);
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
textarea {
|
|
@@ -2370,7 +2370,7 @@
|
|
|
2370
2370
|
--seq-color-background-contrast: rgba(244, 244, 244, 0.5);
|
|
2371
2371
|
--seq-color-background-muted: rgba(0, 0, 0, 0.05);
|
|
2372
2372
|
--seq-color-background-control: rgba(0, 0, 0, 0.25);
|
|
2373
|
-
--seq-color-background-inverse:
|
|
2373
|
+
--seq-color-background-inverse: rgba(0, 0, 0, 1);
|
|
2374
2374
|
--seq-color-background-backdrop: rgba(221, 221, 221, 0.9);
|
|
2375
2375
|
--seq-color-background-overlay: rgba(244, 244, 244, 0.7);
|
|
2376
2376
|
--seq-color-background-raised: rgba(192, 192, 192, 0.7);
|