@iota/dapp-kit 0.10.4 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/components/AccountDropdownMenu.css +50 -16
  3. package/dist/cjs/components/AccountDropdownMenu.css.css +39 -16
  4. package/dist/cjs/components/AccountDropdownMenu.css.css.map +3 -3
  5. package/dist/cjs/components/AccountDropdownMenu.css.d.ts +3 -0
  6. package/dist/cjs/components/AccountDropdownMenu.css.d.ts.map +1 -1
  7. package/dist/cjs/components/AccountDropdownMenu.css.js +12 -6
  8. package/dist/cjs/components/AccountDropdownMenu.css.js.map +2 -2
  9. package/dist/cjs/components/AccountDropdownMenu.css.map +3 -3
  10. package/dist/cjs/components/AccountDropdownMenu.d.ts.map +1 -1
  11. package/dist/cjs/components/AccountDropdownMenu.js +184 -86
  12. package/dist/cjs/components/AccountDropdownMenu.js.map +4 -4
  13. package/dist/cjs/components/ConnectButton.css +50 -16
  14. package/dist/cjs/components/ConnectButton.css.map +3 -3
  15. package/dist/cjs/components/ConnectButton.js +259 -161
  16. package/dist/cjs/components/ConnectButton.js.map +4 -4
  17. package/dist/cjs/components/IotaNameNftImage.css +11 -0
  18. package/dist/cjs/components/IotaNameNftImage.css.css +11 -0
  19. package/dist/cjs/components/IotaNameNftImage.css.css.map +7 -0
  20. package/dist/cjs/components/IotaNameNftImage.css.d.ts +2 -0
  21. package/dist/cjs/components/IotaNameNftImage.css.d.ts.map +1 -0
  22. package/dist/cjs/components/IotaNameNftImage.css.js +27 -0
  23. package/dist/cjs/components/IotaNameNftImage.css.js.map +7 -0
  24. package/dist/cjs/components/IotaNameNftImage.css.map +7 -0
  25. package/dist/cjs/components/IotaNameNftImage.d.ts +8 -0
  26. package/dist/cjs/components/IotaNameNftImage.d.ts.map +1 -0
  27. package/dist/cjs/components/IotaNameNftImage.js +165 -0
  28. package/dist/cjs/components/IotaNameNftImage.js.map +7 -0
  29. package/dist/cjs/hooks/useGetDefaultIotaName.d.ts +1 -1
  30. package/dist/cjs/hooks/useGetDefaultIotaName.d.ts.map +1 -1
  31. package/dist/cjs/hooks/useGetDefaultIotaName.js +26 -16
  32. package/dist/cjs/hooks/useGetDefaultIotaName.js.map +4 -4
  33. package/dist/cjs/hooks/useGetIotaNameAvatar.d.ts +2 -0
  34. package/dist/cjs/hooks/useGetIotaNameAvatar.d.ts.map +1 -0
  35. package/dist/cjs/hooks/useGetIotaNameAvatar.js +144 -0
  36. package/dist/cjs/hooks/useGetIotaNameAvatar.js.map +7 -0
  37. package/dist/cjs/hooks/useIotaNamesClient.d.ts +7 -0
  38. package/dist/cjs/hooks/useIotaNamesClient.d.ts.map +1 -0
  39. package/dist/cjs/hooks/useIotaNamesClient.js +71 -0
  40. package/dist/cjs/hooks/useIotaNamesClient.js.map +7 -0
  41. package/dist/cjs/index.css +50 -16
  42. package/dist/cjs/index.css.map +3 -3
  43. package/dist/cjs/index.js +171 -76
  44. package/dist/cjs/index.js.map +4 -4
  45. package/dist/esm/components/AccountDropdownMenu.css +50 -16
  46. package/dist/esm/components/AccountDropdownMenu.css.css +39 -16
  47. package/dist/esm/components/AccountDropdownMenu.css.css.map +3 -3
  48. package/dist/esm/components/AccountDropdownMenu.css.d.ts +3 -0
  49. package/dist/esm/components/AccountDropdownMenu.css.d.ts.map +1 -1
  50. package/dist/esm/components/AccountDropdownMenu.css.js +12 -6
  51. package/dist/esm/components/AccountDropdownMenu.css.js.map +2 -2
  52. package/dist/esm/components/AccountDropdownMenu.css.map +3 -3
  53. package/dist/esm/components/AccountDropdownMenu.d.ts.map +1 -1
  54. package/dist/esm/components/AccountDropdownMenu.js +177 -79
  55. package/dist/esm/components/AccountDropdownMenu.js.map +4 -4
  56. package/dist/esm/components/ConnectButton.css +50 -16
  57. package/dist/esm/components/ConnectButton.css.map +3 -3
  58. package/dist/esm/components/ConnectButton.js +236 -138
  59. package/dist/esm/components/ConnectButton.js.map +4 -4
  60. package/dist/esm/components/IotaNameNftImage.css +11 -0
  61. package/dist/esm/components/IotaNameNftImage.css.css +11 -0
  62. package/dist/esm/components/IotaNameNftImage.css.css.map +7 -0
  63. package/dist/esm/components/IotaNameNftImage.css.d.ts +2 -0
  64. package/dist/esm/components/IotaNameNftImage.css.d.ts.map +1 -0
  65. package/dist/esm/components/IotaNameNftImage.css.js +6 -0
  66. package/dist/esm/components/IotaNameNftImage.css.js.map +7 -0
  67. package/dist/esm/components/IotaNameNftImage.css.map +7 -0
  68. package/dist/esm/components/IotaNameNftImage.d.ts +8 -0
  69. package/dist/esm/components/IotaNameNftImage.d.ts.map +1 -0
  70. package/dist/esm/components/IotaNameNftImage.js +144 -0
  71. package/dist/esm/components/IotaNameNftImage.js.map +7 -0
  72. package/dist/esm/hooks/useGetDefaultIotaName.d.ts +1 -1
  73. package/dist/esm/hooks/useGetDefaultIotaName.d.ts.map +1 -1
  74. package/dist/esm/hooks/useGetDefaultIotaName.js +26 -16
  75. package/dist/esm/hooks/useGetDefaultIotaName.js.map +4 -4
  76. package/dist/esm/hooks/useGetIotaNameAvatar.d.ts +2 -0
  77. package/dist/esm/hooks/useGetIotaNameAvatar.d.ts.map +1 -0
  78. package/dist/esm/hooks/useGetIotaNameAvatar.js +123 -0
  79. package/dist/esm/hooks/useGetIotaNameAvatar.js.map +7 -0
  80. package/dist/esm/hooks/useIotaNamesClient.d.ts +7 -0
  81. package/dist/esm/hooks/useIotaNamesClient.d.ts.map +1 -0
  82. package/dist/esm/hooks/useIotaNamesClient.js +50 -0
  83. package/dist/esm/hooks/useIotaNamesClient.js.map +7 -0
  84. package/dist/esm/index.css +50 -16
  85. package/dist/esm/index.css.map +3 -3
  86. package/dist/esm/index.js +142 -47
  87. package/dist/esm/index.js.map +4 -4
  88. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  89. package/dist/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +3 -3
  91. package/src/components/AccountDropdownMenu.css.ts +24 -1
  92. package/src/components/AccountDropdownMenu.tsx +12 -2
  93. package/src/components/IotaNameNftImage.css.ts +14 -0
  94. package/src/components/IotaNameNftImage.tsx +30 -0
  95. package/src/hooks/useGetDefaultIotaName.ts +6 -22
  96. package/src/hooks/useGetIotaNameAvatar.ts +72 -0
  97. package/src/hooks/useIotaNamesClient.ts +29 -0
@@ -199,13 +199,16 @@ function useSwitchAccount({
199
199
  }
200
200
 
201
201
  // src/components/AccountDropdownMenu.css.ts
202
+ var accountIdentity = "AccountDropdownMenu_accountIdentity__1x0gmpf8";
203
+ var accountName = "AccountDropdownMenu_accountName__1x0gmpf1";
204
+ var accountNameMenuItem = "AccountDropdownMenu_accountNameMenuItem__1x0gmpf2";
202
205
  var connectedAccount = "AccountDropdownMenu_connectedAccount__1x0gmpf0";
203
- var menuContainer = "AccountDropdownMenu_menuContainer__1x0gmpf1";
204
- var menuContent = "AccountDropdownMenu_menuContent__1x0gmpf2";
205
- var menuItem = "AccountDropdownMenu_menuItem__1x0gmpf4";
206
- var scrollableContent = "AccountDropdownMenu_scrollableContent__1x0gmpf3";
207
- var separator = "AccountDropdownMenu_separator__1x0gmpf6";
208
- var switchAccountMenuItem = "AccountDropdownMenu_switchAccountMenuItem__1x0gmpf5";
206
+ var menuContainer = "AccountDropdownMenu_menuContainer__1x0gmpf3";
207
+ var menuContent = "AccountDropdownMenu_menuContent__1x0gmpf4";
208
+ var menuItem = "AccountDropdownMenu_menuItem__1x0gmpf6";
209
+ var scrollableContent = "AccountDropdownMenu_scrollableContent__1x0gmpf5";
210
+ var separator = "AccountDropdownMenu_separator__1x0gmpf9";
211
+ var switchAccountMenuItem = "AccountDropdownMenu_switchAccountMenuItem__1x0gmpf7";
209
212
 
210
213
  // src/components/icons/CheckIcon.tsx
211
214
  import { jsx } from "react/jsx-runtime";
@@ -234,6 +237,147 @@ function ChevronIcon(props) {
234
237
  ) });
235
238
  }
236
239
 
240
+ // src/components/IotaNameNftImage.tsx
241
+ import { useState as useState2 } from "react";
242
+
243
+ // src/hooks/useGetIotaNameAvatar.ts
244
+ import { getSubnameRegistrationType, isSubname, normalizeIotaName as normalizeIotaName2 } from "@iota/iota-names-sdk";
245
+ import { useQuery as useQuery2 } from "@tanstack/react-query";
246
+
247
+ // src/hooks/useGetDefaultIotaName.ts
248
+ import { normalizeIotaName } from "@iota/iota-names-sdk";
249
+ import { useQuery } from "@tanstack/react-query";
250
+
251
+ // src/hooks/useIotaNamesClient.ts
252
+ import { IotaGraphQLClient } from "@iota/iota-sdk/graphql";
253
+ import { IotaNamesClient } from "@iota/iota-names-sdk";
254
+ import { getNetwork as getNetwork2 } from "@iota/iota-sdk/client";
255
+ import { useMemo as useMemo2 } from "react";
256
+
257
+ // src/hooks/useIotaClient.ts
258
+ import { useContext as useContext2 } from "react";
259
+
260
+ // src/components/IotaClientProvider.tsx
261
+ import { getNetwork, isIotaClient, Network, IotaClient } from "@iota/iota-sdk/client";
262
+ import { createContext as createContext2, useMemo, useState } from "react";
263
+ import { jsx as jsx3 } from "react/jsx-runtime";
264
+ var IotaClientContext = createContext2(null);
265
+ var DEFAULT_NETWORKS = {
266
+ localnet: { url: getNetwork(Network.Localnet)?.url }
267
+ };
268
+
269
+ // src/hooks/useIotaClient.ts
270
+ function useIotaClientContext() {
271
+ const iotaClient = useContext2(IotaClientContext);
272
+ if (!iotaClient) {
273
+ throw new Error(
274
+ "Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider"
275
+ );
276
+ }
277
+ return iotaClient;
278
+ }
279
+ function useIotaClient() {
280
+ return useIotaClientContext().client;
281
+ }
282
+
283
+ // src/hooks/useIotaNamesClient.ts
284
+ function useIotaNamesClient() {
285
+ const { network: networkId } = useIotaClientContext();
286
+ const network = getNetwork2(networkId);
287
+ const iotaNamesClient = useMemo2(() => {
288
+ if (!network.graphql) return null;
289
+ return new IotaNamesClient({
290
+ graphQlClient: new IotaGraphQLClient({ url: network.graphql }),
291
+ network: network.id
292
+ });
293
+ }, [network.id, network.graphql]);
294
+ return {
295
+ iotaNamesClient,
296
+ networkId: network.id,
297
+ isSupported: !!iotaNamesClient?.config
298
+ };
299
+ }
300
+
301
+ // src/hooks/useGetDefaultIotaName.ts
302
+ function useGetDefaultIotaName(address, iotaNamesEnabled) {
303
+ const { iotaNamesClient, networkId, isSupported } = useIotaNamesClient();
304
+ return useQuery({
305
+ queryKey: ["iota-name", "default-name", address, networkId],
306
+ queryFn: async () => {
307
+ if (!address) return null;
308
+ const name = await iotaNamesClient?.getPublicName(address);
309
+ return name ? normalizeIotaName(name) : name;
310
+ },
311
+ enabled: !!address && iotaNamesEnabled && isSupported,
312
+ staleTime: 1e3 * 60 * 10
313
+ });
314
+ }
315
+
316
+ // src/hooks/useGetIotaNameAvatar.ts
317
+ function useGetIotaNameAvatar(address, iotaNamesEnabled) {
318
+ const client = useIotaClient();
319
+ const { iotaNamesClient, networkId, isSupported } = useIotaNamesClient();
320
+ const { data: name } = useGetDefaultIotaName(address, iotaNamesEnabled);
321
+ return useQuery2({
322
+ // eslint-disable-next-line @tanstack/query/exhaustive-deps
323
+ queryKey: ["iota-name", "avatar", name, networkId],
324
+ queryFn: async () => {
325
+ if (!name || !address || !iotaNamesClient) return null;
326
+ const nameRecord = await iotaNamesClient.getNameRecord(name);
327
+ if (!nameRecord) return null;
328
+ const avatarObjectId = nameRecord.avatar ?? (isSubname(name) ? await findSubnameNftId() : nameRecord.nftId);
329
+ if (!avatarObjectId) return null;
330
+ const objectResponse = await client.getObject({
331
+ id: avatarObjectId,
332
+ options: { showDisplay: true }
333
+ });
334
+ return objectResponse?.data?.display?.data?.image_url ?? null;
335
+ async function findSubnameNftId() {
336
+ let subnameType;
337
+ try {
338
+ subnameType = getSubnameRegistrationType(
339
+ iotaNamesClient.getPackage("packageId", "v1")
340
+ );
341
+ } catch {
342
+ return null;
343
+ }
344
+ const { data } = await client.getOwnedObjects({
345
+ owner: address,
346
+ filter: { StructType: subnameType },
347
+ options: { showDisplay: true }
348
+ });
349
+ return data.find((object) => {
350
+ try {
351
+ return normalizeIotaName2(object.data?.display?.data?.name ?? "") === name;
352
+ } catch {
353
+ return false;
354
+ }
355
+ })?.data?.objectId ?? null;
356
+ }
357
+ },
358
+ enabled: iotaNamesEnabled && isSupported && !!name && !!address,
359
+ staleTime: 1e3 * 60 * 5
360
+ });
361
+ }
362
+
363
+ // src/components/IotaNameNftImage.css.ts
364
+ var image = "IotaNameNftImage_image__qs9r060";
365
+
366
+ // src/components/IotaNameNftImage.tsx
367
+ import { jsx as jsx4 } from "react/jsx-runtime";
368
+ function IotaNameNftImage({
369
+ address,
370
+ iotaNamesEnabled,
371
+ alt = "name NFT avatar"
372
+ }) {
373
+ const { data: imageUrl, isLoading } = useGetIotaNameAvatar(address, iotaNamesEnabled);
374
+ const [imgError, setImgError] = useState2(false);
375
+ if (!iotaNamesEnabled || isLoading || !imageUrl || imgError) {
376
+ return null;
377
+ }
378
+ return /* @__PURE__ */ jsx4("img", { src: imageUrl, alt, className: image, onError: () => setImgError(true) });
379
+ }
380
+
237
381
  // src/components/styling/StyleMarker.tsx
238
382
  import { Slot } from "@radix-ui/react-slot";
239
383
  import { forwardRef } from "react";
@@ -245,8 +389,8 @@ var styleDataAttribute = { [styleDataAttributeName]: "" };
245
389
 
246
390
  // src/components/styling/StyleMarker.tsx
247
391
  var import_StyleMarker_css = __toESM(require_StyleMarker_css());
248
- import { jsx as jsx3 } from "react/jsx-runtime";
249
- var StyleMarker = forwardRef(({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsx3(Slot, { ref: forwardedRef, ...props, ...styleDataAttribute, children }));
392
+ import { jsx as jsx5 } from "react/jsx-runtime";
393
+ var StyleMarker = forwardRef(({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsx5(Slot, { ref: forwardedRef, ...props, ...styleDataAttribute, children }));
250
394
  StyleMarker.displayName = "StyleMarker";
251
395
 
252
396
  // src/components/ui/Button.tsx
@@ -259,11 +403,11 @@ import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntim
259
403
  var buttonVariants = _7a468({ defaultClassName: "Button_buttonVariants__ctbx2n0", variantClassNames: { variant: { primary: "Button_buttonVariants_variant_primary__ctbx2n1", outline: "Button_buttonVariants_variant_outline__ctbx2n2" }, size: { md: "Button_buttonVariants_size_md__ctbx2n3", lg: "Button_buttonVariants_size_lg__ctbx2n4" } }, defaultVariants: { variant: "primary", size: "md" }, compoundVariants: [] });
260
404
 
261
405
  // src/components/ui/Button.tsx
262
- import { jsx as jsx4 } from "react/jsx-runtime";
406
+ import { jsx as jsx6 } from "react/jsx-runtime";
263
407
  var Button = forwardRef2(
264
408
  ({ className, variant, size, asChild = false, ...props }, forwardedRef) => {
265
409
  const Comp = asChild ? Slot2 : "button";
266
- return /* @__PURE__ */ jsx4(
410
+ return /* @__PURE__ */ jsx6(
267
411
  Comp,
268
412
  {
269
413
  ...props,
@@ -285,7 +429,7 @@ import { createRuntimeFn as _7a4682 } from "@vanilla-extract/recipes/createRunti
285
429
  var textVariants = _7a4682({ defaultClassName: "Text__aprhbd0", variantClassNames: { size: { sm: "Text_textVariants_size_sm__aprhbd1" }, weight: { normal: "Text_textVariants_weight_normal__aprhbd2", medium: "Text_textVariants_weight_medium__aprhbd3", bold: "Text_textVariants_weight_bold__aprhbd4" }, color: { muted: "Text_textVariants_color_muted__aprhbd5", danger: "Text_textVariants_color_danger__aprhbd6" }, mono: { true: "Text_textVariants_mono_true__aprhbd7" } }, defaultVariants: { size: "sm", weight: "normal" }, compoundVariants: [] });
286
430
 
287
431
  // src/components/ui/Text.tsx
288
- import { jsx as jsx5 } from "react/jsx-runtime";
432
+ import { jsx as jsx7 } from "react/jsx-runtime";
289
433
  var Text = forwardRef3(
290
434
  ({
291
435
  children,
@@ -298,77 +442,21 @@ var Text = forwardRef3(
298
442
  mono,
299
443
  ...textProps
300
444
  }, forwardedRef) => {
301
- return /* @__PURE__ */ jsx5(
445
+ return /* @__PURE__ */ jsx7(
302
446
  Slot3,
303
447
  {
304
448
  ...textProps,
305
449
  ref: forwardedRef,
306
450
  className: clsx2(textVariants({ size, weight, color, mono }), className),
307
- children: asChild ? children : /* @__PURE__ */ jsx5(Tag, { children })
451
+ children: asChild ? children : /* @__PURE__ */ jsx7(Tag, { children })
308
452
  }
309
453
  );
310
454
  }
311
455
  );
312
456
  Text.displayName = "Text";
313
457
 
314
- // src/hooks/useGetDefaultIotaName.ts
315
- import { getNetwork as getNetwork2 } from "@iota/iota-sdk/client";
316
- import { useQuery } from "@tanstack/react-query";
317
- import { IotaNamesClient, normalizeIotaName } from "@iota/iota-names-sdk";
318
-
319
- // src/hooks/useIotaClient.ts
320
- import { useContext as useContext2 } from "react";
321
-
322
- // src/components/IotaClientProvider.tsx
323
- import { getNetwork, isIotaClient, Network, IotaClient } from "@iota/iota-sdk/client";
324
- import { createContext as createContext2, useMemo, useState } from "react";
325
- import { jsx as jsx6 } from "react/jsx-runtime";
326
- var IotaClientContext = createContext2(null);
327
- var DEFAULT_NETWORKS = {
328
- localnet: { url: getNetwork(Network.Localnet)?.url }
329
- };
330
-
331
- // src/hooks/useIotaClient.ts
332
- function useIotaClientContext() {
333
- const iotaClient = useContext2(IotaClientContext);
334
- if (!iotaClient) {
335
- throw new Error(
336
- "Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider"
337
- );
338
- }
339
- return iotaClient;
340
- }
341
-
342
- // src/hooks/useGetDefaultIotaName.ts
343
- import { useMemo as useMemo2 } from "react";
344
- import { IotaGraphQLClient } from "@iota/iota-sdk/graphql";
345
- function useGetDefaultIotaName(address, iotaNamesEnabled) {
346
- const iotaContext = useIotaClientContext();
347
- const network = getNetwork2(iotaContext.network);
348
- const iotaNamesClient = useMemo2(() => {
349
- const iotaGraphQLClient = new IotaGraphQLClient({
350
- url: network.graphql
351
- });
352
- return new IotaNamesClient({
353
- graphQlClient: iotaGraphQLClient,
354
- network: network.id
355
- });
356
- }, [network.id]);
357
- const iotaNamesSupported = !!iotaNamesClient.config;
358
- return useQuery({
359
- queryKey: ["iota-name", "default-name", address],
360
- queryFn: async () => {
361
- if (!address) return null;
362
- const name = await iotaNamesClient?.getPublicName(address);
363
- return name ? normalizeIotaName(name) : name;
364
- },
365
- enabled: !!iotaNamesClient && !!address && iotaNamesEnabled && iotaNamesSupported,
366
- staleTime: 1e3 * 60 * 10
367
- });
368
- }
369
-
370
458
  // src/components/AccountDropdownMenu.tsx
371
- import { jsx as jsx7, jsxs } from "react/jsx-runtime";
459
+ import { jsx as jsx8, jsxs } from "react/jsx-runtime";
372
460
  function AccountDropdownMenu({
373
461
  currentAccount,
374
462
  size = "lg",
@@ -379,12 +467,19 @@ function AccountDropdownMenu({
379
467
  const { data: iotaName } = useGetDefaultIotaName(currentAccount.address, iotaNamesEnabled);
380
468
  const displayAccount = iotaName ?? currentAccount.label ?? formatAddress(currentAccount.address);
381
469
  return /* @__PURE__ */ jsxs(DropdownMenu.Root, { modal: false, children: [
382
- /* @__PURE__ */ jsx7(StyleMarker, { children: /* @__PURE__ */ jsx7(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { size, className: connectedAccount, children: [
383
- /* @__PURE__ */ jsx7(Text, { mono: true, weight: "bold", children: displayAccount }),
384
- /* @__PURE__ */ jsx7(ChevronIcon, {})
470
+ /* @__PURE__ */ jsx8(StyleMarker, { children: /* @__PURE__ */ jsx8(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { size, className: connectedAccount, children: [
471
+ /* @__PURE__ */ jsx8(
472
+ IotaNameNftImage,
473
+ {
474
+ address: currentAccount.address,
475
+ iotaNamesEnabled
476
+ }
477
+ ),
478
+ /* @__PURE__ */ jsx8(Text, { mono: true, weight: "bold", className: accountName, children: displayAccount }),
479
+ /* @__PURE__ */ jsx8(ChevronIcon, {})
385
480
  ] }) }) }),
386
- /* @__PURE__ */ jsx7(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx7(StyleMarker, { className: menuContainer, children: /* @__PURE__ */ jsxs(DropdownMenu.Content, { className: menuContent, children: [
387
- /* @__PURE__ */ jsx7("div", { className: scrollableContent, children: accounts.map((account) => /* @__PURE__ */ jsx7(
481
+ /* @__PURE__ */ jsx8(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx8(StyleMarker, { className: menuContainer, children: /* @__PURE__ */ jsxs(DropdownMenu.Content, { className: menuContent, children: [
482
+ /* @__PURE__ */ jsx8("div", { className: scrollableContent, children: accounts.map((account) => /* @__PURE__ */ jsx8(
388
483
  AccountDropdownMenuItem,
389
484
  {
390
485
  account,
@@ -393,8 +488,8 @@ function AccountDropdownMenu({
393
488
  },
394
489
  account.address
395
490
  )) }),
396
- /* @__PURE__ */ jsx7(DropdownMenu.Separator, { className: separator }),
397
- /* @__PURE__ */ jsx7(
491
+ /* @__PURE__ */ jsx8(DropdownMenu.Separator, { className: separator }),
492
+ /* @__PURE__ */ jsx8(
398
493
  DropdownMenu.Item,
399
494
  {
400
495
  className: clsx3(menuItem),
@@ -419,8 +514,11 @@ function AccountDropdownMenuItem({
419
514
  className: clsx3(menuItem, switchAccountMenuItem),
420
515
  onSelect: () => switchAccount({ account }),
421
516
  children: [
422
- /* @__PURE__ */ jsx7(Text, { mono: true, children: displayAccount }),
423
- active ? /* @__PURE__ */ jsx7(CheckIcon, {}) : null
517
+ /* @__PURE__ */ jsxs("div", { className: accountIdentity, children: [
518
+ /* @__PURE__ */ jsx8(IotaNameNftImage, { address: account.address, iotaNamesEnabled }),
519
+ /* @__PURE__ */ jsx8(Text, { mono: true, className: accountNameMenuItem, children: displayAccount })
520
+ ] }),
521
+ active ? /* @__PURE__ */ jsx8(CheckIcon, {}) : null
424
522
  ]
425
523
  }
426
524
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["vanilla-extract-css-ns:src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9", "../../../src/components/styling/StyleMarker.css.ts", "../../../src/components/AccountDropdownMenu.tsx", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useAccounts.ts", "../../../src/hooks/wallet/useDisconnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/errors/walletErrors.ts", "../../../src/hooks/wallet/useCurrentWallet.ts", "../../../src/hooks/wallet/useSwitchAccount.ts", "../../../src/components/AccountDropdownMenu.css.ts", "../../../src/components/icons/CheckIcon.tsx", "../../../src/components/icons/ChevronIcon.tsx", "../../../src/components/styling/StyleMarker.tsx", "../../../src/constants/styleDataAttribute.ts", "../../../src/components/ui/Button.tsx", "../../../src/components/ui/Button.css.ts", "../../../src/components/ui/Text.tsx", "../../../src/components/ui/Text.css.ts", "../../../src/hooks/useGetDefaultIotaName.ts", "../../../src/hooks/useIotaClient.ts", "../../../src/components/IotaClientProvider.tsx"],
4
- "sourcesContent": ["[data-dapp-kit]:where(*), [data-dapp-kit] :where(*) {\n box-sizing: border-box;\n color: var(--dapp-kit-colors-body);\n font-family: var(--dapp-kit-typography-fontFamily);\n font-size: var(--dapp-kit-fontWeights-normal);\n font-style: var(--dapp-kit-typography-fontStyle);\n font-weight: var(--dapp-kit-fontWeights-normal);\n line-height: var(--dapp-kit-typography-lineHeight);\n letter-spacing: var(--dapp-kit-typography-letterSpacing);\n}\n[data-dapp-kit]:where(button), [data-dapp-kit] :where(button) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: transparent;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n border: 0;\n padding: 0;\n margin: 0;\n}\n[data-dapp-kit]:where(a), [data-dapp-kit] :where(a) {\n text-decoration: none;\n color: inherit;\n outline: none;\n}\n[data-dapp-kit]:where(ol, ul), [data-dapp-kit] :where(ol, ul) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n[data-dapp-kit]:where(h1, h2, h3, h4, h5, h6), [data-dapp-kit] :where(h1, h2, h3, h4, h5, h6) {\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n}", "import 'src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatAddress } from '@iota/iota-sdk/utils';\nimport type { WalletAccount } from '@iota/wallet-standard';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport clsx from 'clsx';\n\nimport { useAccounts } from '../hooks/wallet/useAccounts.js';\nimport { useDisconnectWallet } from '../hooks/wallet/useDisconnectWallet.js';\nimport { useSwitchAccount } from '../hooks/wallet/useSwitchAccount.js';\nimport * as styles from './AccountDropdownMenu.css.js';\nimport { CheckIcon } from './icons/CheckIcon.js';\nimport { ChevronIcon } from './icons/ChevronIcon.js';\nimport { StyleMarker } from './styling/StyleMarker.js';\nimport { Button } from './ui/Button.js';\nimport { Text } from './ui/Text.js';\nimport { useGetDefaultIotaName } from '../hooks/useGetDefaultIotaName.js';\n\ntype AccountDropdownMenuProps = {\n currentAccount: WalletAccount;\n size?: React.ComponentProps<typeof Button>['size'];\n iotaNamesEnabled: boolean;\n};\n\nexport function AccountDropdownMenu({\n currentAccount,\n size = 'lg',\n iotaNamesEnabled,\n}: AccountDropdownMenuProps) {\n const { mutate: disconnectWallet } = useDisconnectWallet();\n const accounts = useAccounts();\n const { data: iotaName } = useGetDefaultIotaName(currentAccount.address, iotaNamesEnabled);\n const displayAccount =\n iotaName ?? currentAccount.label ?? formatAddress(currentAccount.address);\n\n return (\n <DropdownMenu.Root modal={false}>\n <StyleMarker>\n <DropdownMenu.Trigger asChild>\n <Button size={size} className={styles.connectedAccount}>\n <Text mono weight=\"bold\">\n {displayAccount}\n </Text>\n <ChevronIcon />\n </Button>\n </DropdownMenu.Trigger>\n </StyleMarker>\n <DropdownMenu.Portal>\n <StyleMarker className={styles.menuContainer}>\n <DropdownMenu.Content className={styles.menuContent}>\n <div className={styles.scrollableContent}>\n {accounts.map((account) => (\n <AccountDropdownMenuItem\n key={account.address}\n account={account}\n active={currentAccount.address === account.address}\n iotaNamesEnabled={iotaNamesEnabled}\n />\n ))}\n </div>\n <DropdownMenu.Separator className={styles.separator} />\n <DropdownMenu.Item\n className={clsx(styles.menuItem)}\n onSelect={() => disconnectWallet()}\n >\n Disconnect\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </StyleMarker>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n\nexport function AccountDropdownMenuItem({\n account,\n active,\n iotaNamesEnabled,\n}: {\n account: WalletAccount;\n active?: boolean;\n iotaNamesEnabled: boolean;\n}) {\n const { mutate: switchAccount } = useSwitchAccount();\n const { data: iotaName } = useGetDefaultIotaName(account.address, iotaNamesEnabled);\n const displayAccount = iotaName ?? account.label ?? formatAddress(account.address);\n\n return (\n <DropdownMenu.Item\n className={clsx(styles.menuItem, styles.switchAccountMenuItem)}\n onSelect={() => switchAccount({ account })}\n >\n <Text mono>{displayAccount}</Text>\n {active ? <CheckIcon /> : null}\n </DropdownMenu.Item>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of connected accounts authorized by the dApp.\n */\nexport function useAccounts(): readonly WalletAccount[] {\n return useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype UseDisconnectWalletError = WalletNotConnectedError | Error;\n\ntype UseDisconnectWalletMutationOptions = Omit<\n UseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n void,\n UseDisconnectWalletError,\n void\n> {\n const { currentWallet } = useCurrentWallet();\n const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n return useMutation({\n mutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n mutationFn: async () => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n try {\n // Wallets aren't required to implement the disconnect feature, so we'll\n // optionally call the disconnect feature if it exists and reset the UI\n // state on the frontend at a minimum.\n await currentWallet.features['standard:disconnect']?.disconnect();\n } catch (error) {\n console.error(\n 'Failed to disconnect the application from the current wallet.',\n error,\n );\n }\n\n setWalletDisconnected();\n },\n ...mutationOptions,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransaction: formMutationKeyFn('sign-transaction'),\n signAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n switchAccount: formMutationKeyFn('switch-account'),\n reportTransactionEffects: formMutationKeyFn('report-transaction-effects'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n const supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n supportedIntents,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletAccountNotFoundError, WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype SwitchAccountArgs = {\n account: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n UseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n mutationKey,\n ...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n SwitchAccountResult,\n UseSwitchAccountError,\n SwitchAccountArgs\n> {\n const { currentWallet } = useCurrentWallet();\n const setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n return useMutation({\n mutationKey: walletMutationKeys.switchAccount(mutationKey),\n mutationFn: async ({ account }) => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n const accountToSelect = currentWallet.accounts.find(\n (walletAccount) => walletAccount.address === account.address,\n );\n if (!accountToSelect) {\n throw new WalletAccountNotFoundError(\n `No account with address ${account.address} is connected to ${currentWallet.name}.`,\n );\n }\n\n setAccountSwitched(accountToSelect);\n },\n ...mutationOptions,\n });\n}\n", "import 'src/components/AccountDropdownMenu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA6VTPW/bMBDd/Ss4NgMDqXGLlJmSdOmQqWNRGDR5plhTdwR5jOQW/e+FGH/BidMG1ULg3ed773R5awwV5M+JoqUBHwDLwhAiGAa7DS4W7di4Pq4a8WsmhNNRies43sx+zy5fqu8Byz0ha4+Q9sVtLf4pPVoYlfi0+/7aBo42eF+bWJ9j0BslVgHGm5mor7Q+gWFPqIShUHqcIoO33CnRXjexZvZ6lB1417ESV80eTM6jZIpKzJ+gqK316LZEj0kLsaRkIcmkrS9ZiUed3klpdYxy7bnCXgadHFzUbG3WLlFBKw0FSs8KDgn3UzxLe6TCxVl5skkUgl4GOBXpqopEj5BWgQa5UUIXprPsq3gu0aBE+6oZXxj6/ZB5HXIq0675fNu7ZEgyQwDDSiAhTCAVDh7hADzzUwfvUHqGPithABnSW4X/Zx7frGYtO++6MO0O9ntl9nbbYvK9Tpu7wkz4im+DZ9NtIw+n63x4+cB/lMx+tZHmyWolctQG5BJ4AMCzkp1bAaJOmunwc36sY3futUeHkbvkca1E8/+3/HU3dhLnD4QDgFt6BAAA';\nexport var connectedAccount = 'AccountDropdownMenu_connectedAccount__1x0gmpf0';\nexport var menuContainer = 'AccountDropdownMenu_menuContainer__1x0gmpf1';\nexport var menuContent = 'AccountDropdownMenu_menuContent__1x0gmpf2';\nexport var menuItem = 'AccountDropdownMenu_menuItem__1x0gmpf4';\nexport var scrollableContent = 'AccountDropdownMenu_scrollableContent__1x0gmpf3';\nexport var separator = 'AccountDropdownMenu_separator__1x0gmpf6';\nexport var switchAccountMenuItem = 'AccountDropdownMenu_switchAccountMenuItem__1x0gmpf5';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CheckIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"m11.726 5.048-4.73 5.156-1.722-1.879a.72.72 0 0 0-.529-.23.722.722 0 0 0-.525.24.858.858 0 0 0-.22.573.86.86 0 0 0 .211.576l2.255 2.458c.14.153.332.24.53.24.2 0 .391-.087.532-.24l5.261-5.735A.86.86 0 0 0 13 5.63a.858.858 0 0 0-.22-.572.722.722 0 0 0-.525-.24.72.72 0 0 0-.529.23Z\"\n />\n </svg>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function ChevronIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n stroke=\"#A0B6C3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"m4 6 4 4 4-4\"\n />\n </svg>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentPropsWithoutRef, ElementRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { styleDataAttribute } from '../../constants/styleDataAttribute.js';\n\nimport './StyleMarker.css.js';\n\ntype StyleMarker = {\n children: ReactNode;\n};\n\nexport const StyleMarker = forwardRef<\n ElementRef<typeof Slot>,\n ComponentPropsWithoutRef<typeof Slot>\n>(({ children, ...props }, forwardedRef) => (\n <Slot ref={forwardedRef} {...props} {...styleDataAttribute}>\n {children}\n </Slot>\n));\nStyleMarker.displayName = 'StyleMarker';\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nexport const styleDataAttributeName = 'data-dapp-kit';\n\nexport const styleDataAttributeSelector = `[${styleDataAttributeName}]`;\n\nexport const styleDataAttribute = { [styleDataAttributeName]: '' };\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { buttonVariants } from './Button.css.js';\nimport type { ButtonVariants } from './Button.css.js';\n\ntype ButtonProps = {\n asChild?: boolean;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants;\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n {...props}\n className={clsx(buttonVariants({ variant, size }), className)}\n ref={forwardedRef}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button };\n", "import 'src/components/ui/Button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7WSwVLCMBCG732KPcohDCA6TrjpxSfQYydt0rKQJplkC60O7+6ktCMKog56Smb/ZP9v/2R8XxNZk2bd8iQ8CkMhTXPKmpmZwGsCIDE4LVoOaDQaxQqtmkUCIDSWhiGpKnDIlSHlY3lVB8KiZbk1pAwdSoU1xLYKyyVx2Ah/xZgUzrE1EovacycFVimJdTVaJLtkfB6QSwwi00p2pNaJHKnlMBnfnLm82W9S57ESvh2aTbsemcjXpbe1kSy32voj0PcDD1EPrG+z9xrFOU9fzE8f/zUmX9qN8n8B+xgb/QTB1hSffkCY7c2tl8qzLUpacpi67lP0xUCtVhyC1SgPyl9AdmIP2Fv9W5qfR7kozQ+w36YZ8EWllRysrw9T9EJiHY4cYxlZUWvdReGElGhKDneugeltjPy8my4Ht/kFbtEJZnPXwCLZvQFzXfF3MwQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var buttonVariants = _7a468({defaultClassName:'Button_buttonVariants__ctbx2n0',variantClassNames:{variant:{primary:'Button_buttonVariants_variant_primary__ctbx2n1',outline:'Button_buttonVariants_variant_outline__ctbx2n2'},size:{md:'Button_buttonVariants_size_md__ctbx2n3',lg:'Button_buttonVariants_size_lg__ctbx2n4'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { textVariants } from './Text.css.js';\nimport type { TextVariants } from './Text.css.js';\n\ntype TextAsChildProps = {\n asChild?: boolean;\n as?: never;\n};\n\ntype TextDivProps = { as: 'div'; asChild?: never };\n\ntype TextProps = (TextAsChildProps | TextDivProps) &\n React.HTMLAttributes<HTMLDivElement> &\n TextVariants;\n\nconst Text = forwardRef<HTMLDivElement, TextProps>(\n (\n {\n children,\n className,\n asChild = false,\n as: Tag = 'div',\n size,\n weight,\n color,\n mono,\n ...textProps\n },\n forwardedRef,\n ) => {\n return (\n <Slot\n {...textProps}\n ref={forwardedRef}\n className={clsx(textVariants({ size, weight, color, mono }), className)}\n >\n {asChild ? children : <Tag>{children}</Tag>}\n </Slot>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text };\n", "import 'src/components/ui/Text.css.ts.vanilla.css?source=LlRleHRfdGV4dFZhcmlhbnRzX3NpemVfc21fX2FwcmhiZDEgewogIGZvbnQtc2l6ZTogdmFyKC0tZGFwcC1raXQtZm9udFNpemVzLXNtYWxsKTsKfQouVGV4dF90ZXh0VmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fYXByaGJkMiB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLW5vcm1hbCk7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX3dlaWdodF9tZWRpdW1fX2FwcmhiZDMgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1tZWRpdW0pOwp9Ci5UZXh0X3RleHRWYXJpYW50c193ZWlnaHRfYm9sZF9fYXByaGJkNCB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLWJvbGQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9tdXRlZF9fYXByaGJkNSB7CiAgY29sb3I6IHZhcigtLWRhcHAta2l0LWNvbG9ycy1ib2R5TXV0ZWQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9kYW5nZXJfX2FwcmhiZDYgewogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keURhbmdlcik7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX21vbm9fdHJ1ZV9fYXByaGJkNyB7CiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOwp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textVariants = _7a468({defaultClassName:'Text__aprhbd0',variantClassNames:{size:{sm:'Text_textVariants_size_sm__aprhbd1'},weight:{normal:'Text_textVariants_weight_normal__aprhbd2',medium:'Text_textVariants_weight_medium__aprhbd3',bold:'Text_textVariants_weight_bold__aprhbd4'},color:{muted:'Text_textVariants_color_muted__aprhbd5',danger:'Text_textVariants_color_danger__aprhbd6'},mono:{true:'Text_textVariants_mono_true__aprhbd7'}},defaultVariants:{size:'sm',weight:'normal'},compoundVariants:[]});", "// Copyright (c) 2025 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork } from '@iota/iota-sdk/client';\nimport { useQuery } from '@tanstack/react-query';\nimport { IotaNamesClient, normalizeIotaName } from '@iota/iota-names-sdk';\nimport { useIotaClientContext } from './useIotaClient.js';\nimport { useMemo } from 'react';\nimport { IotaGraphQLClient } from '@iota/iota-sdk/graphql';\n\nexport function useGetDefaultIotaName(\n address: string | null | undefined,\n iotaNamesEnabled: boolean,\n) {\n const iotaContext = useIotaClientContext();\n const network = getNetwork(iotaContext.network);\n\n const iotaNamesClient = useMemo(() => {\n const iotaGraphQLClient = new IotaGraphQLClient({\n url: network.graphql!,\n });\n\n return new IotaNamesClient({\n graphQlClient: iotaGraphQLClient,\n network: network.id,\n });\n }, [network.id]);\n\n const iotaNamesSupported = !!iotaNamesClient.config;\n\n return useQuery({\n queryKey: ['iota-name', 'default-name', address],\n queryFn: async () => {\n if (!address) return null;\n\n const name = await iotaNamesClient?.getPublicName(address);\n\n return name ? normalizeIotaName(name) : name;\n },\n enabled: !!iotaNamesClient && !!address && iotaNamesEnabled && iotaNamesSupported,\n staleTime: 1000 * 60 * 10,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { useContext } from 'react';\n\nimport { IotaClientContext } from '../components/IotaClientProvider.js';\n\nexport function useIotaClientContext() {\n const iotaClient = useContext(IotaClientContext);\n\n if (!iotaClient) {\n throw new Error(\n 'Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider',\n );\n }\n\n return iotaClient;\n}\n\nexport function useIotaClient(): IotaClient {\n return useIotaClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork, isIotaClient, Network, IotaClient } from '@iota/iota-sdk/client';\nimport type { IotaClientOptions } from '@iota/iota-sdk/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | IotaClient = NetworkConfig | IotaClient> = Record<\n string,\n T\n>;\n\nexport interface IotaClientProviderContext {\n client: IotaClient;\n networks: NetworkConfigs;\n network: string;\n config: NetworkConfig | null;\n selectNetwork: (network: string) => void;\n}\n\nexport const IotaClientContext = createContext<IotaClientProviderContext | null>(null);\n\nexport type IotaClientProviderProps<T extends NetworkConfigs> = {\n createClient?: (name: keyof T, config: T[keyof T]) => IotaClient;\n children: React.ReactNode;\n networks?: T;\n onNetworkChange?: (network: keyof T & string) => void;\n} & (\n | {\n defaultNetwork?: keyof T & string;\n network?: never;\n }\n | {\n defaultNetwork?: never;\n network?: keyof T & string;\n }\n);\n\nconst DEFAULT_NETWORKS = {\n localnet: { url: getNetwork(Network.Localnet)?.url },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n _name: string,\n config: NetworkConfig | IotaClient,\n) {\n if (isIotaClient(config)) {\n return config;\n }\n\n return new IotaClient(config);\n};\n\nexport function IotaClientProvider<T extends NetworkConfigs>(props: IotaClientProviderProps<T>) {\n const { onNetworkChange, network, children } = props;\n const networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n const createClient =\n (props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n const [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n props.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n );\n\n const currentNetwork = props.network ?? selectedNetwork;\n\n const client = useMemo(() => {\n return createClient(currentNetwork, networks[currentNetwork]);\n }, [createClient, currentNetwork, networks]);\n\n const ctx = useMemo((): IotaClientProviderContext => {\n return {\n client,\n networks,\n network: currentNetwork,\n config:\n networks[currentNetwork] instanceof IotaClient\n ? null\n : (networks[currentNetwork] as IotaClientOptions),\n selectNetwork: (newNetwork) => {\n if (currentNetwork === newNetwork) {\n return;\n }\n\n if (!network && newNetwork !== selectedNetwork) {\n setSelectedNetwork(newNetwork);\n }\n\n onNetworkChange?.(newNetwork);\n },\n };\n }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n return <IotaClientContext.Provider value={ctx}>{children}</IotaClientContext.Provider>;\n}\n"],
5
- "mappings": "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",
6
- "names": ["clsx", "useMutation", "useMutation", "jsx", "jsx", "Slot", "forwardRef", "jsx", "forwardRef", "Slot", "Slot", "clsx", "forwardRef", "_7a468", "jsx", "forwardRef", "Slot", "clsx", "getNetwork", "useContext", "createContext", "jsx", "useContext", "useMemo", "getNetwork", "jsx", "clsx"]
3
+ "sources": ["vanilla-extract-css-ns:src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9", "../../../src/components/styling/StyleMarker.css.ts", "../../../src/components/AccountDropdownMenu.tsx", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useAccounts.ts", "../../../src/hooks/wallet/useDisconnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/errors/walletErrors.ts", "../../../src/hooks/wallet/useCurrentWallet.ts", "../../../src/hooks/wallet/useSwitchAccount.ts", "../../../src/components/AccountDropdownMenu.css.ts", "../../../src/components/icons/CheckIcon.tsx", "../../../src/components/icons/ChevronIcon.tsx", "../../../src/components/IotaNameNftImage.tsx", "../../../src/hooks/useGetIotaNameAvatar.ts", "../../../src/hooks/useGetDefaultIotaName.ts", "../../../src/hooks/useIotaNamesClient.ts", "../../../src/hooks/useIotaClient.ts", "../../../src/components/IotaClientProvider.tsx", "../../../src/components/IotaNameNftImage.css.ts", "../../../src/components/styling/StyleMarker.tsx", "../../../src/constants/styleDataAttribute.ts", "../../../src/components/ui/Button.tsx", "../../../src/components/ui/Button.css.ts", "../../../src/components/ui/Text.tsx", "../../../src/components/ui/Text.css.ts"],
4
+ "sourcesContent": ["[data-dapp-kit]:where(*), [data-dapp-kit] :where(*) {\n box-sizing: border-box;\n color: var(--dapp-kit-colors-body);\n font-family: var(--dapp-kit-typography-fontFamily);\n font-size: var(--dapp-kit-fontWeights-normal);\n font-style: var(--dapp-kit-typography-fontStyle);\n font-weight: var(--dapp-kit-fontWeights-normal);\n line-height: var(--dapp-kit-typography-lineHeight);\n letter-spacing: var(--dapp-kit-typography-letterSpacing);\n}\n[data-dapp-kit]:where(button), [data-dapp-kit] :where(button) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: transparent;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n border: 0;\n padding: 0;\n margin: 0;\n}\n[data-dapp-kit]:where(a), [data-dapp-kit] :where(a) {\n text-decoration: none;\n color: inherit;\n outline: none;\n}\n[data-dapp-kit]:where(ol, ul), [data-dapp-kit] :where(ol, ul) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n[data-dapp-kit]:where(h1, h2, h3, h4, h5, h6), [data-dapp-kit] :where(h1, h2, h3, h4, h5, h6) {\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n}", "import 'src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatAddress } from '@iota/iota-sdk/utils';\nimport type { WalletAccount } from '@iota/wallet-standard';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport clsx from 'clsx';\n\nimport { useAccounts } from '../hooks/wallet/useAccounts.js';\nimport { useDisconnectWallet } from '../hooks/wallet/useDisconnectWallet.js';\nimport { useSwitchAccount } from '../hooks/wallet/useSwitchAccount.js';\nimport * as styles from './AccountDropdownMenu.css.js';\nimport { CheckIcon } from './icons/CheckIcon.js';\nimport { ChevronIcon } from './icons/ChevronIcon.js';\nimport { IotaNameNftImage } from './IotaNameNftImage.js';\nimport { StyleMarker } from './styling/StyleMarker.js';\nimport { Button } from './ui/Button.js';\nimport { Text } from './ui/Text.js';\nimport { useGetDefaultIotaName } from '../hooks/useGetDefaultIotaName.js';\n\ntype AccountDropdownMenuProps = {\n currentAccount: WalletAccount;\n size?: React.ComponentProps<typeof Button>['size'];\n iotaNamesEnabled: boolean;\n};\n\nexport function AccountDropdownMenu({\n currentAccount,\n size = 'lg',\n iotaNamesEnabled,\n}: AccountDropdownMenuProps) {\n const { mutate: disconnectWallet } = useDisconnectWallet();\n const accounts = useAccounts();\n const { data: iotaName } = useGetDefaultIotaName(currentAccount.address, iotaNamesEnabled);\n const displayAccount =\n iotaName ?? currentAccount.label ?? formatAddress(currentAccount.address);\n\n return (\n <DropdownMenu.Root modal={false}>\n <StyleMarker>\n <DropdownMenu.Trigger asChild>\n <Button size={size} className={styles.connectedAccount}>\n <IotaNameNftImage\n address={currentAccount.address}\n iotaNamesEnabled={iotaNamesEnabled}\n />\n <Text mono weight=\"bold\" className={styles.accountName}>\n {displayAccount}\n </Text>\n <ChevronIcon />\n </Button>\n </DropdownMenu.Trigger>\n </StyleMarker>\n <DropdownMenu.Portal>\n <StyleMarker className={styles.menuContainer}>\n <DropdownMenu.Content className={styles.menuContent}>\n <div className={styles.scrollableContent}>\n {accounts.map((account) => (\n <AccountDropdownMenuItem\n key={account.address}\n account={account}\n active={currentAccount.address === account.address}\n iotaNamesEnabled={iotaNamesEnabled}\n />\n ))}\n </div>\n <DropdownMenu.Separator className={styles.separator} />\n <DropdownMenu.Item\n className={clsx(styles.menuItem)}\n onSelect={() => disconnectWallet()}\n >\n Disconnect\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </StyleMarker>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n\nexport function AccountDropdownMenuItem({\n account,\n active,\n iotaNamesEnabled,\n}: {\n account: WalletAccount;\n active?: boolean;\n iotaNamesEnabled: boolean;\n}) {\n const { mutate: switchAccount } = useSwitchAccount();\n const { data: iotaName } = useGetDefaultIotaName(account.address, iotaNamesEnabled);\n const displayAccount = iotaName ?? account.label ?? formatAddress(account.address);\n\n return (\n <DropdownMenu.Item\n className={clsx(styles.menuItem, styles.switchAccountMenuItem)}\n onSelect={() => switchAccount({ account })}\n >\n <div className={styles.accountIdentity}>\n <IotaNameNftImage address={account.address} iotaNamesEnabled={iotaNamesEnabled} />\n <Text mono className={styles.accountNameMenuItem}>\n {displayAccount}\n </Text>\n </div>\n {active ? <CheckIcon /> : null}\n </DropdownMenu.Item>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of connected accounts authorized by the dApp.\n */\nexport function useAccounts(): readonly WalletAccount[] {\n return useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype UseDisconnectWalletError = WalletNotConnectedError | Error;\n\ntype UseDisconnectWalletMutationOptions = Omit<\n UseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n void,\n UseDisconnectWalletError,\n void\n> {\n const { currentWallet } = useCurrentWallet();\n const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n return useMutation({\n mutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n mutationFn: async () => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n try {\n // Wallets aren't required to implement the disconnect feature, so we'll\n // optionally call the disconnect feature if it exists and reset the UI\n // state on the frontend at a minimum.\n await currentWallet.features['standard:disconnect']?.disconnect();\n } catch (error) {\n console.error(\n 'Failed to disconnect the application from the current wallet.',\n error,\n );\n }\n\n setWalletDisconnected();\n },\n ...mutationOptions,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransaction: formMutationKeyFn('sign-transaction'),\n signAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n switchAccount: formMutationKeyFn('switch-account'),\n reportTransactionEffects: formMutationKeyFn('report-transaction-effects'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n const supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n supportedIntents,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletAccountNotFoundError, WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype SwitchAccountArgs = {\n account: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n UseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n mutationKey,\n ...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n SwitchAccountResult,\n UseSwitchAccountError,\n SwitchAccountArgs\n> {\n const { currentWallet } = useCurrentWallet();\n const setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n return useMutation({\n mutationKey: walletMutationKeys.switchAccount(mutationKey),\n mutationFn: async ({ account }) => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n const accountToSelect = currentWallet.accounts.find(\n (walletAccount) => walletAccount.address === account.address,\n );\n if (!accountToSelect) {\n throw new WalletAccountNotFoundError(\n `No account with address ${account.address} is connected to ${currentWallet.name}.`,\n );\n }\n\n setAccountSwitched(accountToSelect);\n },\n ...mutationOptions,\n });\n}\n", "import 'src/components/AccountDropdownMenu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7VUwW7bMAy95yt0XA8qkjTbWu20dZcetsuOwxAoEmOzkSlBoupkw/59sBInaZO0KYb6Ypi0yMf3nnj52Rifib9GH6xv6RtQnhpPBIbBbpLT6Wg5rJowH4o/AyEqHZS4DstPg7+Dy2Pn9Tr2XTewPToqRxu9lC1arpUYTYZdCSH8A8S5860SNVoL1MUYlix3CXAOQ8LUpdoaGWQK2oAS5NuowzlAuu87hmYLaHwAaPz2gBqgfOuJNRLELZSrAuW3RLKwVOKmf14sA3vaTEoRiyk4vVJi7qAM072lxQiG0ZMSxrvclJE2Y4/7sTsqasCqZiWuhttgrJAk+6DEZB0K2lqkamOBfTsIMfPRQpRRW8xJiQcd30lpdQhygVzCKJ2OFVyUv7VZVNFnstJ45+PBgd0Pt10+SbvHwsVJepKJ3jk9c/CUpPeFpF5HuVJCZ/Ynpy/kVbFTfPSsGI+c9aE0eUpTX7y3fU4QZQIHhjvbEBTrZXZIsAsc6KkdViSRoUlKGCCG+Friz57jp9WsZY1V7TrsYH+VyV4vW4jY6Lj6kpk9PaNbi2zqTebgwn48bvD7nBjnK2nWUitRbqKcAbewvrsnKDt3jd1ZIEZebYFcHwfyYhshGqR+2wyPb5pTzEDQUbPf7YybAqI31WjPr6mOSItNh/+7Yj/6tp1m/wB141KsKwYAAA==';\nexport var accountIdentity = 'AccountDropdownMenu_accountIdentity__1x0gmpf8';\nexport var accountName = 'AccountDropdownMenu_accountName__1x0gmpf1';\nexport var accountNameMenuItem = 'AccountDropdownMenu_accountNameMenuItem__1x0gmpf2';\nexport var connectedAccount = 'AccountDropdownMenu_connectedAccount__1x0gmpf0';\nexport var menuContainer = 'AccountDropdownMenu_menuContainer__1x0gmpf3';\nexport var menuContent = 'AccountDropdownMenu_menuContent__1x0gmpf4';\nexport var menuItem = 'AccountDropdownMenu_menuItem__1x0gmpf6';\nexport var scrollableContent = 'AccountDropdownMenu_scrollableContent__1x0gmpf5';\nexport var separator = 'AccountDropdownMenu_separator__1x0gmpf9';\nexport var switchAccountMenuItem = 'AccountDropdownMenu_switchAccountMenuItem__1x0gmpf7';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CheckIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"m11.726 5.048-4.73 5.156-1.722-1.879a.72.72 0 0 0-.529-.23.722.722 0 0 0-.525.24.858.858 0 0 0-.22.573.86.86 0 0 0 .211.576l2.255 2.458c.14.153.332.24.53.24.2 0 .391-.087.532-.24l5.261-5.735A.86.86 0 0 0 13 5.63a.858.858 0 0 0-.22-.572.722.722 0 0 0-.525-.24.72.72 0 0 0-.529.23Z\"\n />\n </svg>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function ChevronIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n stroke=\"#A0B6C3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"m4 6 4 4 4-4\"\n />\n </svg>\n );\n}\n", "// Copyright (c) 2026 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useState } from 'react';\n\nimport { useGetIotaNameAvatar } from '../hooks/useGetIotaNameAvatar.js';\nimport * as styles from './IotaNameNftImage.css.js';\n\ninterface IotaNameNftImageProps {\n address: string | null | undefined;\n iotaNamesEnabled: boolean;\n alt?: string;\n}\n\nexport function IotaNameNftImage({\n address,\n iotaNamesEnabled,\n alt = 'name NFT avatar',\n}: IotaNameNftImageProps) {\n const { data: imageUrl, isLoading } = useGetIotaNameAvatar(address, iotaNamesEnabled);\n const [imgError, setImgError] = useState(false);\n\n if (!iotaNamesEnabled || isLoading || !imageUrl || imgError) {\n return null;\n }\n\n return (\n <img src={imageUrl} alt={alt} className={styles.image} onError={() => setImgError(true)} />\n );\n}\n", "// Copyright (c) 2026 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getSubnameRegistrationType, isSubname, normalizeIotaName } from '@iota/iota-names-sdk';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useGetDefaultIotaName } from './useGetDefaultIotaName.js';\nimport { useIotaClient } from './useIotaClient.js';\nimport { useIotaNamesClient } from './useIotaNamesClient.js';\n\nexport function useGetIotaNameAvatar(\n address: string | null | undefined,\n iotaNamesEnabled: boolean,\n) {\n const client = useIotaClient();\n const { iotaNamesClient, networkId, isSupported } = useIotaNamesClient();\n const { data: name } = useGetDefaultIotaName(address, iotaNamesEnabled);\n\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: ['iota-name', 'avatar', name, networkId],\n queryFn: async () => {\n if (!name || !address || !iotaNamesClient) return null;\n\n const nameRecord = await iotaNamesClient.getNameRecord(name);\n if (!nameRecord) return null;\n\n const avatarObjectId =\n nameRecord.avatar ??\n (isSubname(name) ? await findSubnameNftId() : nameRecord.nftId);\n if (!avatarObjectId) return null;\n\n const objectResponse = await client.getObject({\n id: avatarObjectId,\n options: { showDisplay: true },\n });\n\n return objectResponse?.data?.display?.data?.image_url ?? null;\n\n async function findSubnameNftId() {\n let subnameType: string;\n try {\n subnameType = getSubnameRegistrationType(\n iotaNamesClient!.getPackage('packageId', 'v1'),\n );\n } catch {\n return null;\n }\n\n const { data } = await client.getOwnedObjects({\n owner: address!,\n filter: { StructType: subnameType },\n options: { showDisplay: true },\n });\n\n return (\n data.find((object) => {\n try {\n return (\n normalizeIotaName(object.data?.display?.data?.name ?? '') === name\n );\n } catch {\n return false;\n }\n })?.data?.objectId ?? null\n );\n }\n },\n enabled: iotaNamesEnabled && isSupported && !!name && !!address,\n staleTime: 1000 * 60 * 5,\n });\n}\n", "// Copyright (c) 2025 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { normalizeIotaName } from '@iota/iota-names-sdk';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useIotaNamesClient } from './useIotaNamesClient.js';\n\nexport function useGetDefaultIotaName(\n address: string | null | undefined,\n iotaNamesEnabled: boolean,\n) {\n const { iotaNamesClient, networkId, isSupported } = useIotaNamesClient();\n\n return useQuery({\n queryKey: ['iota-name', 'default-name', address, networkId],\n queryFn: async () => {\n if (!address) return null;\n\n const name = await iotaNamesClient?.getPublicName(address);\n\n return name ? normalizeIotaName(name) : name;\n },\n enabled: !!address && iotaNamesEnabled && isSupported,\n staleTime: 1000 * 60 * 10,\n });\n}\n", "// Copyright (c) 2026 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { IotaGraphQLClient } from '@iota/iota-sdk/graphql';\nimport { IotaNamesClient } from '@iota/iota-names-sdk';\nimport { getNetwork } from '@iota/iota-sdk/client';\nimport { useMemo } from 'react';\n\nimport { useIotaClientContext } from './useIotaClient.js';\n\nexport function useIotaNamesClient() {\n const { network: networkId } = useIotaClientContext();\n const network = getNetwork(networkId);\n\n const iotaNamesClient = useMemo(() => {\n if (!network.graphql) return null;\n\n return new IotaNamesClient({\n graphQlClient: new IotaGraphQLClient({ url: network.graphql }),\n network: network.id,\n });\n }, [network.id, network.graphql]);\n\n return {\n iotaNamesClient,\n networkId: network.id,\n isSupported: !!iotaNamesClient?.config,\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { useContext } from 'react';\n\nimport { IotaClientContext } from '../components/IotaClientProvider.js';\n\nexport function useIotaClientContext() {\n const iotaClient = useContext(IotaClientContext);\n\n if (!iotaClient) {\n throw new Error(\n 'Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider',\n );\n }\n\n return iotaClient;\n}\n\nexport function useIotaClient(): IotaClient {\n return useIotaClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork, isIotaClient, Network, IotaClient } from '@iota/iota-sdk/client';\nimport type { IotaClientOptions } from '@iota/iota-sdk/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | IotaClient = NetworkConfig | IotaClient> = Record<\n string,\n T\n>;\n\nexport interface IotaClientProviderContext {\n client: IotaClient;\n networks: NetworkConfigs;\n network: string;\n config: NetworkConfig | null;\n selectNetwork: (network: string) => void;\n}\n\nexport const IotaClientContext = createContext<IotaClientProviderContext | null>(null);\n\nexport type IotaClientProviderProps<T extends NetworkConfigs> = {\n createClient?: (name: keyof T, config: T[keyof T]) => IotaClient;\n children: React.ReactNode;\n networks?: T;\n onNetworkChange?: (network: keyof T & string) => void;\n} & (\n | {\n defaultNetwork?: keyof T & string;\n network?: never;\n }\n | {\n defaultNetwork?: never;\n network?: keyof T & string;\n }\n);\n\nconst DEFAULT_NETWORKS = {\n localnet: { url: getNetwork(Network.Localnet)?.url },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n _name: string,\n config: NetworkConfig | IotaClient,\n) {\n if (isIotaClient(config)) {\n return config;\n }\n\n return new IotaClient(config);\n};\n\nexport function IotaClientProvider<T extends NetworkConfigs>(props: IotaClientProviderProps<T>) {\n const { onNetworkChange, network, children } = props;\n const networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n const createClient =\n (props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n const [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n props.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n );\n\n const currentNetwork = props.network ?? selectedNetwork;\n\n const client = useMemo(() => {\n return createClient(currentNetwork, networks[currentNetwork]);\n }, [createClient, currentNetwork, networks]);\n\n const ctx = useMemo((): IotaClientProviderContext => {\n return {\n client,\n networks,\n network: currentNetwork,\n config:\n networks[currentNetwork] instanceof IotaClient\n ? null\n : (networks[currentNetwork] as IotaClientOptions),\n selectNetwork: (newNetwork) => {\n if (currentNetwork === newNetwork) {\n return;\n }\n\n if (!network && newNetwork !== selectedNetwork) {\n setSelectedNetwork(newNetwork);\n }\n\n onNetworkChange?.(newNetwork);\n },\n };\n }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n return <IotaClientContext.Provider value={ctx}>{children}</IotaClientContext.Provider>;\n}\n", "import 'src/components/IotaNameNftImage.css.ts.vanilla.css?source=LklvdGFOYW1lTmZ0SW1hZ2VfaW1hZ2VfX3FzOXIwNjAgewogIHdpZHRoOiAyNHB4OwogIGhlaWdodDogMjRweDsKICBmbGV4LXNocmluazogMDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1kYXBwLWtpdC1yYWRpaS1mdWxsKTsKICBvYmplY3QtZml0OiBjb3ZlcjsKfQ==';\nexport var image = 'IotaNameNftImage_image__qs9r060';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentPropsWithoutRef, ElementRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { styleDataAttribute } from '../../constants/styleDataAttribute.js';\n\nimport './StyleMarker.css.js';\n\ntype StyleMarker = {\n children: ReactNode;\n};\n\nexport const StyleMarker = forwardRef<\n ElementRef<typeof Slot>,\n ComponentPropsWithoutRef<typeof Slot>\n>(({ children, ...props }, forwardedRef) => (\n <Slot ref={forwardedRef} {...props} {...styleDataAttribute}>\n {children}\n </Slot>\n));\nStyleMarker.displayName = 'StyleMarker';\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nexport const styleDataAttributeName = 'data-dapp-kit';\n\nexport const styleDataAttributeSelector = `[${styleDataAttributeName}]`;\n\nexport const styleDataAttribute = { [styleDataAttributeName]: '' };\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { buttonVariants } from './Button.css.js';\nimport type { ButtonVariants } from './Button.css.js';\n\ntype ButtonProps = {\n asChild?: boolean;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants;\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n {...props}\n className={clsx(buttonVariants({ variant, size }), className)}\n ref={forwardedRef}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button };\n", "import 'src/components/ui/Button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7WSwVLCMBCG732KPcohDCA6TrjpxSfQYydt0rKQJplkC60O7+6ktCMKog56Smb/ZP9v/2R8XxNZk2bd8iQ8CkMhTXPKmpmZwGsCIDE4LVoOaDQaxQqtmkUCIDSWhiGpKnDIlSHlY3lVB8KiZbk1pAwdSoU1xLYKyyVx2Ah/xZgUzrE1EovacycFVimJdTVaJLtkfB6QSwwi00p2pNaJHKnlMBnfnLm82W9S57ESvh2aTbsemcjXpbe1kSy32voj0PcDD1EPrG+z9xrFOU9fzE8f/zUmX9qN8n8B+xgb/QTB1hSffkCY7c2tl8qzLUpacpi67lP0xUCtVhyC1SgPyl9AdmIP2Fv9W5qfR7kozQ+w36YZ8EWllRysrw9T9EJiHY4cYxlZUWvdReGElGhKDneugeltjPy8my4Ht/kFbtEJZnPXwCLZvQFzXfF3MwQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var buttonVariants = _7a468({defaultClassName:'Button_buttonVariants__ctbx2n0',variantClassNames:{variant:{primary:'Button_buttonVariants_variant_primary__ctbx2n1',outline:'Button_buttonVariants_variant_outline__ctbx2n2'},size:{md:'Button_buttonVariants_size_md__ctbx2n3',lg:'Button_buttonVariants_size_lg__ctbx2n4'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { textVariants } from './Text.css.js';\nimport type { TextVariants } from './Text.css.js';\n\ntype TextAsChildProps = {\n asChild?: boolean;\n as?: never;\n};\n\ntype TextDivProps = { as: 'div'; asChild?: never };\n\ntype TextProps = (TextAsChildProps | TextDivProps) &\n React.HTMLAttributes<HTMLDivElement> &\n TextVariants;\n\nconst Text = forwardRef<HTMLDivElement, TextProps>(\n (\n {\n children,\n className,\n asChild = false,\n as: Tag = 'div',\n size,\n weight,\n color,\n mono,\n ...textProps\n },\n forwardedRef,\n ) => {\n return (\n <Slot\n {...textProps}\n ref={forwardedRef}\n className={clsx(textVariants({ size, weight, color, mono }), className)}\n >\n {asChild ? children : <Tag>{children}</Tag>}\n </Slot>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text };\n", "import 'src/components/ui/Text.css.ts.vanilla.css?source=LlRleHRfdGV4dFZhcmlhbnRzX3NpemVfc21fX2FwcmhiZDEgewogIGZvbnQtc2l6ZTogdmFyKC0tZGFwcC1raXQtZm9udFNpemVzLXNtYWxsKTsKfQouVGV4dF90ZXh0VmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fYXByaGJkMiB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLW5vcm1hbCk7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX3dlaWdodF9tZWRpdW1fX2FwcmhiZDMgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1tZWRpdW0pOwp9Ci5UZXh0X3RleHRWYXJpYW50c193ZWlnaHRfYm9sZF9fYXByaGJkNCB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLWJvbGQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9tdXRlZF9fYXByaGJkNSB7CiAgY29sb3I6IHZhcigtLWRhcHAta2l0LWNvbG9ycy1ib2R5TXV0ZWQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9kYW5nZXJfX2FwcmhiZDYgewogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keURhbmdlcik7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX21vbm9fdHJ1ZV9fYXByaGJkNyB7CiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOwp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textVariants = _7a468({defaultClassName:'Text__aprhbd0',variantClassNames:{size:{sm:'Text_textVariants_size_sm__aprhbd1'},weight:{normal:'Text_textVariants_weight_normal__aprhbd2',medium:'Text_textVariants_weight_medium__aprhbd3',bold:'Text_textVariants_weight_bold__aprhbd4'},color:{muted:'Text_textVariants_color_muted__aprhbd5',danger:'Text_textVariants_color_danger__aprhbd6'},mono:{true:'Text_textVariants_mono_true__aprhbd7'}},defaultVariants:{size:'sm',weight:'normal'},compoundVariants:[]});"],
5
+ "mappings": "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",
6
+ "names": ["clsx", "useMutation", "useMutation", "jsx", "useState", "normalizeIotaName", "useQuery", "getNetwork", "useMemo", "useContext", "createContext", "jsx", "useContext", "getNetwork", "useMemo", "useQuery", "normalizeIotaName", "jsx", "useState", "jsx", "Slot", "forwardRef", "jsx", "forwardRef", "Slot", "Slot", "clsx", "forwardRef", "_7a468", "jsx", "forwardRef", "Slot", "clsx", "jsx", "clsx"]
7
7
  }