@fairmint/ui 0.3.2 → 0.3.3

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 (38) hide show
  1. package/dist/_virtual/index3.cjs +5 -3
  2. package/dist/_virtual/index3.cjs.map +1 -1
  3. package/dist/_virtual/index3.js +5 -2
  4. package/dist/_virtual/index3.js.map +1 -1
  5. package/dist/_virtual/index4.cjs +3 -5
  6. package/dist/_virtual/index4.cjs.map +1 -1
  7. package/dist/_virtual/index4.js +2 -5
  8. package/dist/_virtual/index4.js.map +1 -1
  9. package/dist/components/specific/WalletList/WalletList.cjs +129 -141
  10. package/dist/components/specific/WalletList/WalletList.cjs.map +1 -1
  11. package/dist/components/specific/WalletList/WalletList.d.ts +2 -10
  12. package/dist/components/specific/WalletList/WalletList.d.ts.map +1 -1
  13. package/dist/components/specific/WalletList/WalletList.js +131 -143
  14. package/dist/components/specific/WalletList/WalletList.js.map +1 -1
  15. package/dist/components/specific/WalletListItem/WalletListItem.cjs +161 -0
  16. package/dist/components/specific/WalletListItem/WalletListItem.cjs.map +1 -0
  17. package/dist/components/specific/WalletListItem/WalletListItem.d.ts +32 -0
  18. package/dist/components/specific/WalletListItem/WalletListItem.d.ts.map +1 -0
  19. package/dist/components/specific/WalletListItem/WalletListItem.js +161 -0
  20. package/dist/components/specific/WalletListItem/WalletListItem.js.map +1 -0
  21. package/dist/fairmint-ui.cjs +3 -0
  22. package/dist/fairmint-ui.cjs.map +1 -1
  23. package/dist/fairmint-ui.js +4 -1
  24. package/dist/fairmint-ui.js.map +1 -1
  25. package/dist/index.d.ts +5 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.cjs +1 -1
  28. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.js +1 -1
  29. package/dist/node_modules/prop-types/index.cjs +1 -1
  30. package/dist/node_modules/prop-types/index.js +1 -1
  31. package/dist/styles.css +2 -1
  32. package/dist/utils/wallets.cjs +18 -2
  33. package/dist/utils/wallets.cjs.map +1 -1
  34. package/dist/utils/wallets.d.ts +13 -0
  35. package/dist/utils/wallets.d.ts.map +1 -1
  36. package/dist/utils/wallets.js +18 -2
  37. package/dist/utils/wallets.js.map +1 -1
  38. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const colors = require("../theme/colors.cjs");
3
4
  const SYSTEM_TYPES = /* @__PURE__ */ new Set(["fairmint", "privy"]);
4
5
  const TYPE_LABELS = {
5
6
  fairmint: "Fairmint Wallet",
@@ -39,6 +40,21 @@ function defaultLabelForWalletType(key, rawType) {
39
40
  function normalizeWalletType(type) {
40
41
  return String(type ?? "").trim().toLowerCase();
41
42
  }
43
+ function getWalletIconColor(type) {
44
+ const key = normalizeWalletType(type).replace(/_/g, " ");
45
+ if (key === "fairmint" || key === "privy") return colors.colors.primary;
46
+ if (key === "metamask") return colors.colors.warning;
47
+ if (key === "coinbase wallet" || key === "coinbase smart wallet" || key === "coinbase custody") {
48
+ return colors.colors.info;
49
+ }
50
+ if (key === "phantom") return colors.colors.brandPurple;
51
+ if (key === "rainbow") return colors.colors.accent2;
52
+ if (key === "manual") return colors.colors.neutral;
53
+ if (key === "anchorage" || key === "bitgo" || key === "gemini custody" || key === "ledger vault" || key === "fireblocks") {
54
+ return colors.colors.success;
55
+ }
56
+ return colors.colors.neutral;
57
+ }
42
58
  function getWalletLabel(type, custom) {
43
59
  const key = normalizeWalletType(type);
44
60
  const rawType = typeof type === "string" ? type : String(type ?? "");
@@ -56,8 +72,7 @@ function isSystemWalletType(type) {
56
72
  }
57
73
  function getWalletKindPill(type, custom) {
58
74
  const key = normalizeWalletType(type);
59
- if (key === "fairmint") return "Embedded";
60
- if (key === "privy") return "Privy";
75
+ if (key === "fairmint" || key === "privy") return "Embedded";
61
76
  if (key === "manual") return "Manual";
62
77
  const rawType = typeof type === "string" ? type : String(type ?? "");
63
78
  if (custom?.[key]) return custom[key];
@@ -71,6 +86,7 @@ function walletKey(w) {
71
86
  return `${normalizeWalletType(w.type)}:${w.address.toLowerCase()}`;
72
87
  }
73
88
  exports.getWalletDisplayName = getWalletDisplayName;
89
+ exports.getWalletIconColor = getWalletIconColor;
74
90
  exports.getWalletKindPill = getWalletKindPill;
75
91
  exports.getWalletLabel = getWalletLabel;
76
92
  exports.isRemovableWalletType = isRemovableWalletType;
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.cjs","sources":["../../src/utils/wallets.ts"],"sourcesContent":["/** Embedded wallet types that cannot be removed by the user. */\nconst SYSTEM_TYPES = new Set([\"fairmint\", \"privy\"]);\n\nconst TYPE_LABELS: Record<string, string> = {\n fairmint: \"Fairmint Wallet\",\n // \"privy\" is the embedded wallet Fairmint creates for new users via Privy.\n // Display it as \"Fairmint Wallet\" (same brand as the legacy embedded type).\n privy: \"Fairmint Wallet\",\n manual: \"Manual\",\n};\n\n/**\n * Privy `walletClientType` values persisted as `wallet.type` (see investor `privyWalletClientTypes`).\n * Used for display when there is no custom row label.\n */\nconst CLIENT_TYPE_BRAND_LABELS: Record<string, string> = {\n metamask: \"MetaMask\",\n phantom: \"Phantom\",\n brave_wallet: \"Brave Wallet\",\n rainbow: \"Rainbow\",\n uniswap_wallet_extension: \"Uniswap\",\n uniswap_extension: \"Uniswap\",\n rabby_wallet: \"Rabby\",\n bybit_wallet: \"Bybit Wallet\",\n ronin_wallet: \"Ronin Wallet\",\n haha_wallet: \"Haha Wallet\",\n \"crypto.com_wallet_extension\": \"Crypto.com\",\n \"crypto.com_onchain\": \"Crypto.com Onchain\",\n binance: \"Binance\",\n bitget_wallet: \"Bitget Wallet\",\n coinbase_wallet: \"Coinbase Wallet\",\n coinbase_smart_wallet: \"Coinbase Smart Wallet\",\n base_account: \"Base Account\",\n unknown: \"Connected wallet\",\n};\n\nfunction defaultLabelForWalletType(key: string, rawType: string): string {\n if (TYPE_LABELS[key]) return TYPE_LABELS[key];\n if (CLIENT_TYPE_BRAND_LABELS[key]) return CLIENT_TYPE_BRAND_LABELS[key];\n if (/^[a-z0-9_]+$/.test(key) && key.length <= 64) {\n return key\n .split(\"_\")\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(\" \");\n }\n return rawType;\n}\n\n/** Normalize wallet type to trimmed lowercase for comparisons. */\nexport function normalizeWalletType(type: unknown): string {\n return String(type ?? \"\")\n .trim()\n .toLowerCase();\n}\n\n/** Map a wallet type to a human-readable label. */\nexport function getWalletLabel(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Get display name: custom label takes priority, then type-based label. */\nexport function getWalletDisplayName(\n wallet: { type: unknown; label?: string | null },\n customLabels?: Record<string, string>,\n): string {\n const label = wallet.label?.trim();\n if (label) return label;\n return getWalletLabel(wallet.type, customLabels);\n}\n\n/** Whether a wallet type is system-managed (embedded Fairmint only) and cannot be removed by users. */\nexport function isSystemWalletType(type: unknown): boolean {\n return SYSTEM_TYPES.has(normalizeWalletType(type));\n}\n\n/**\n * Short label for the wallet “kind” pill (embedded vs connected vs custodian, etc.).\n * Distinct from {@link getWalletLabel} which is used for display-name fallback.\n */\nexport function getWalletKindPill(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n if (key === \"fairmint\") return \"Embedded\";\n if (key === \"privy\") return \"Privy\";\n if (key === \"manual\") return \"Manual\";\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Whether a wallet type can be removed by the user. */\nexport function isRemovableWalletType(type: unknown): boolean {\n return !isSystemWalletType(type);\n}\n\n/** Stable React key for a wallet. */\nexport function walletKey(w: { type: unknown; address: string }): string {\n return `${normalizeWalletType(w.type)}:${w.address.toLowerCase()}`;\n}\n"],"names":[],"mappings":";;AACA,MAAM,eAAe,oBAAI,IAAI,CAAC,YAAY,OAAO,CAAC;AAElD,MAAM,cAAsC;AAAA,EAC1C,UAAU;AAAA;AAAA;AAAA,EAGV,OAAO;AAAA,EACP,QAAQ;AACV;AAMA,MAAM,2BAAmD;AAAA,EACvD,UAAU;AAAA,EACV,SAAS;AAAA,EACT,cAAc;AAAA,EACd,SAAS;AAAA,EACT,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA,EACb,+BAA+B;AAAA,EAC/B,sBAAsB;AAAA,EACtB,SAAS;AAAA,EACT,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,SAAS,0BAA0B,KAAa,SAAyB;AACvE,MAAI,YAAY,GAAG,EAAG,QAAO,YAAY,GAAG;AAC5C,MAAI,yBAAyB,GAAG,EAAG,QAAO,yBAAyB,GAAG;AACtE,MAAI,eAAe,KAAK,GAAG,KAAK,IAAI,UAAU,IAAI;AAChD,WAAO,IACJ,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAA,IAAgB,EAAE,MAAM,CAAC,CAAC,EACjD,KAAK,GAAG;AAAA,EACb;AACA,SAAO;AACT;AAGO,SAAS,oBAAoB,MAAuB;AACzD,SAAO,OAAO,QAAQ,EAAE,EACrB,KAAA,EACA,YAAA;AACL;AAGO,SAAS,eAAe,MAAe,QAAyC;AACrF,QAAM,MAAM,oBAAoB,IAAI;AACpC,QAAM,UAAU,OAAO,SAAS,WAAW,OAAO,OAAO,QAAQ,EAAE;AACnE,MAAI,SAAS,GAAG,EAAG,QAAO,OAAO,GAAG;AACpC,MAAI,SAAS,OAAO,EAAG,QAAO,OAAO,OAAO;AAC5C,SAAO,0BAA0B,KAAK,OAAO;AAC/C;AAGO,SAAS,qBACd,QACA,cACQ;AACR,QAAM,QAAQ,OAAO,OAAO,KAAA;AAC5B,MAAI,MAAO,QAAO;AAClB,SAAO,eAAe,OAAO,MAAM,YAAY;AACjD;AAGO,SAAS,mBAAmB,MAAwB;AACzD,SAAO,aAAa,IAAI,oBAAoB,IAAI,CAAC;AACnD;AAMO,SAAS,kBAAkB,MAAe,QAAyC;AACxF,QAAM,MAAM,oBAAoB,IAAI;AACpC,MAAI,QAAQ,WAAY,QAAO;AAC/B,MAAI,QAAQ,QAAS,QAAO;AAC5B,MAAI,QAAQ,SAAU,QAAO;AAC7B,QAAM,UAAU,OAAO,SAAS,WAAW,OAAO,OAAO,QAAQ,EAAE;AACnE,MAAI,SAAS,GAAG,EAAG,QAAO,OAAO,GAAG;AACpC,MAAI,SAAS,OAAO,EAAG,QAAO,OAAO,OAAO;AAC5C,SAAO,0BAA0B,KAAK,OAAO;AAC/C;AAGO,SAAS,sBAAsB,MAAwB;AAC5D,SAAO,CAAC,mBAAmB,IAAI;AACjC;AAGO,SAAS,UAAU,GAA+C;AACvE,SAAO,GAAG,oBAAoB,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,YAAA,CAAa;AAClE;;;;;;;;"}
1
+ {"version":3,"file":"wallets.cjs","sources":["../../src/utils/wallets.ts"],"sourcesContent":["import { colors } from \"../theme/colors\";\n\n/** Shared wallet shape for list rows, pickers, and management surfaces. */\nexport interface Wallet {\n /** Ethereum wallet address. */\n address: string;\n /** Wallet type identifier (e.g. \"fairmint\", \"privy\", \"manual\"). */\n type: string;\n /** Optional display label. */\n label?: string | null;\n /** Whether this is the default equity recipient wallet. */\n defaultRecipient?: boolean;\n}\n\n/** Embedded wallet types that cannot be removed by the user. */\nconst SYSTEM_TYPES = new Set([\"fairmint\", \"privy\"]);\n\nconst TYPE_LABELS: Record<string, string> = {\n fairmint: \"Fairmint Wallet\",\n // \"privy\" is the embedded wallet Fairmint creates for new users via Privy.\n // Display it as \"Fairmint Wallet\" (same brand as the legacy embedded type).\n privy: \"Fairmint Wallet\",\n manual: \"Manual\",\n};\n\n/**\n * Privy `walletClientType` values persisted as `wallet.type` (see investor `privyWalletClientTypes`).\n * Used for display when there is no custom row label.\n */\nconst CLIENT_TYPE_BRAND_LABELS: Record<string, string> = {\n metamask: \"MetaMask\",\n phantom: \"Phantom\",\n brave_wallet: \"Brave Wallet\",\n rainbow: \"Rainbow\",\n uniswap_wallet_extension: \"Uniswap\",\n uniswap_extension: \"Uniswap\",\n rabby_wallet: \"Rabby\",\n bybit_wallet: \"Bybit Wallet\",\n ronin_wallet: \"Ronin Wallet\",\n haha_wallet: \"Haha Wallet\",\n \"crypto.com_wallet_extension\": \"Crypto.com\",\n \"crypto.com_onchain\": \"Crypto.com Onchain\",\n binance: \"Binance\",\n bitget_wallet: \"Bitget Wallet\",\n coinbase_wallet: \"Coinbase Wallet\",\n coinbase_smart_wallet: \"Coinbase Smart Wallet\",\n base_account: \"Base Account\",\n unknown: \"Connected wallet\",\n};\n\nfunction defaultLabelForWalletType(key: string, rawType: string): string {\n if (TYPE_LABELS[key]) return TYPE_LABELS[key];\n if (CLIENT_TYPE_BRAND_LABELS[key]) return CLIENT_TYPE_BRAND_LABELS[key];\n if (/^[a-z0-9_]+$/.test(key) && key.length <= 64) {\n return key\n .split(\"_\")\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(\" \");\n }\n return rawType;\n}\n\n/** Normalize wallet type to trimmed lowercase for comparisons. */\nexport function normalizeWalletType(type: unknown): string {\n return String(type ?? \"\")\n .trim()\n .toLowerCase();\n}\n\n/** Map a wallet type to the semantic color used by its leading icon. */\nexport function getWalletIconColor(type: unknown): string {\n const key = normalizeWalletType(type).replace(/_/g, \" \");\n if (key === \"fairmint\" || key === \"privy\") return colors.primary;\n if (key === \"metamask\") return colors.warning;\n if (key === \"coinbase wallet\" || key === \"coinbase smart wallet\" || key === \"coinbase custody\") {\n return colors.info;\n }\n if (key === \"phantom\") return colors.brandPurple;\n if (key === \"rainbow\") return colors.accent2;\n if (key === \"manual\") return colors.neutral;\n if (\n key === \"anchorage\" ||\n key === \"bitgo\" ||\n key === \"gemini custody\" ||\n key === \"ledger vault\" ||\n key === \"fireblocks\"\n ) {\n return colors.success;\n }\n return colors.neutral;\n}\n\n/** Map a wallet type to a human-readable label. */\nexport function getWalletLabel(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Get display name: custom label takes priority, then type-based label. */\nexport function getWalletDisplayName(\n wallet: { type: unknown; label?: string | null },\n customLabels?: Record<string, string>,\n): string {\n const label = wallet.label?.trim();\n if (label) return label;\n return getWalletLabel(wallet.type, customLabels);\n}\n\n/** Whether a wallet type is system-managed (embedded Fairmint only) and cannot be removed by users. */\nexport function isSystemWalletType(type: unknown): boolean {\n return SYSTEM_TYPES.has(normalizeWalletType(type));\n}\n\n/**\n * Short label for the wallet “kind” pill (embedded vs connected vs custodian, etc.).\n * Distinct from {@link getWalletLabel} which is used for display-name fallback.\n */\nexport function getWalletKindPill(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n // fairmint and privy are the same Fairmint embedded wallet surface — keep the\n // kind pill as \"Embedded\" even when typeLabels rebrands the display name.\n if (key === \"fairmint\" || key === \"privy\") return \"Embedded\";\n if (key === \"manual\") return \"Manual\";\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Whether a wallet type can be removed by the user. */\nexport function isRemovableWalletType(type: unknown): boolean {\n return !isSystemWalletType(type);\n}\n\n/** Stable React key for a wallet. */\nexport function walletKey(w: { type: unknown; address: string }): string {\n return `${normalizeWalletType(w.type)}:${w.address.toLowerCase()}`;\n}\n"],"names":["colors"],"mappings":"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"}
@@ -1,5 +1,18 @@
1
+ /** Shared wallet shape for list rows, pickers, and management surfaces. */
2
+ export interface Wallet {
3
+ /** Ethereum wallet address. */
4
+ address: string;
5
+ /** Wallet type identifier (e.g. "fairmint", "privy", "manual"). */
6
+ type: string;
7
+ /** Optional display label. */
8
+ label?: string | null;
9
+ /** Whether this is the default equity recipient wallet. */
10
+ defaultRecipient?: boolean;
11
+ }
1
12
  /** Normalize wallet type to trimmed lowercase for comparisons. */
2
13
  export declare function normalizeWalletType(type: unknown): string;
14
+ /** Map a wallet type to the semantic color used by its leading icon. */
15
+ export declare function getWalletIconColor(type: unknown): string;
3
16
  /** Map a wallet type to a human-readable label. */
4
17
  export declare function getWalletLabel(type: unknown, custom?: Record<string, string>): string;
5
18
  /** Get display name: custom label takes priority, then type-based label. */
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/utils/wallets.ts"],"names":[],"mappings":"AAgDA,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAIzD;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMrF;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAChD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CAIR;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CASxF;AAED,wDAAwD;AACxD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEvE"}
1
+ {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/utils/wallets.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,WAAW,MAAM;IACrB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAkDD,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAIzD;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAoBxD;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMrF;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAChD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CAIR;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAUxF;AAED,wDAAwD;AACxD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEvE"}
@@ -1,3 +1,4 @@
1
+ import { colors } from "../theme/colors.js";
1
2
  const SYSTEM_TYPES = /* @__PURE__ */ new Set(["fairmint", "privy"]);
2
3
  const TYPE_LABELS = {
3
4
  fairmint: "Fairmint Wallet",
@@ -37,6 +38,21 @@ function defaultLabelForWalletType(key, rawType) {
37
38
  function normalizeWalletType(type) {
38
39
  return String(type ?? "").trim().toLowerCase();
39
40
  }
41
+ function getWalletIconColor(type) {
42
+ const key = normalizeWalletType(type).replace(/_/g, " ");
43
+ if (key === "fairmint" || key === "privy") return colors.primary;
44
+ if (key === "metamask") return colors.warning;
45
+ if (key === "coinbase wallet" || key === "coinbase smart wallet" || key === "coinbase custody") {
46
+ return colors.info;
47
+ }
48
+ if (key === "phantom") return colors.brandPurple;
49
+ if (key === "rainbow") return colors.accent2;
50
+ if (key === "manual") return colors.neutral;
51
+ if (key === "anchorage" || key === "bitgo" || key === "gemini custody" || key === "ledger vault" || key === "fireblocks") {
52
+ return colors.success;
53
+ }
54
+ return colors.neutral;
55
+ }
40
56
  function getWalletLabel(type, custom) {
41
57
  const key = normalizeWalletType(type);
42
58
  const rawType = typeof type === "string" ? type : String(type ?? "");
@@ -54,8 +70,7 @@ function isSystemWalletType(type) {
54
70
  }
55
71
  function getWalletKindPill(type, custom) {
56
72
  const key = normalizeWalletType(type);
57
- if (key === "fairmint") return "Embedded";
58
- if (key === "privy") return "Privy";
73
+ if (key === "fairmint" || key === "privy") return "Embedded";
59
74
  if (key === "manual") return "Manual";
60
75
  const rawType = typeof type === "string" ? type : String(type ?? "");
61
76
  if (custom?.[key]) return custom[key];
@@ -70,6 +85,7 @@ function walletKey(w) {
70
85
  }
71
86
  export {
72
87
  getWalletDisplayName,
88
+ getWalletIconColor,
73
89
  getWalletKindPill,
74
90
  getWalletLabel,
75
91
  isRemovableWalletType,
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.js","sources":["../../src/utils/wallets.ts"],"sourcesContent":["/** Embedded wallet types that cannot be removed by the user. */\nconst SYSTEM_TYPES = new Set([\"fairmint\", \"privy\"]);\n\nconst TYPE_LABELS: Record<string, string> = {\n fairmint: \"Fairmint Wallet\",\n // \"privy\" is the embedded wallet Fairmint creates for new users via Privy.\n // Display it as \"Fairmint Wallet\" (same brand as the legacy embedded type).\n privy: \"Fairmint Wallet\",\n manual: \"Manual\",\n};\n\n/**\n * Privy `walletClientType` values persisted as `wallet.type` (see investor `privyWalletClientTypes`).\n * Used for display when there is no custom row label.\n */\nconst CLIENT_TYPE_BRAND_LABELS: Record<string, string> = {\n metamask: \"MetaMask\",\n phantom: \"Phantom\",\n brave_wallet: \"Brave Wallet\",\n rainbow: \"Rainbow\",\n uniswap_wallet_extension: \"Uniswap\",\n uniswap_extension: \"Uniswap\",\n rabby_wallet: \"Rabby\",\n bybit_wallet: \"Bybit Wallet\",\n ronin_wallet: \"Ronin Wallet\",\n haha_wallet: \"Haha Wallet\",\n \"crypto.com_wallet_extension\": \"Crypto.com\",\n \"crypto.com_onchain\": \"Crypto.com Onchain\",\n binance: \"Binance\",\n bitget_wallet: \"Bitget Wallet\",\n coinbase_wallet: \"Coinbase Wallet\",\n coinbase_smart_wallet: \"Coinbase Smart Wallet\",\n base_account: \"Base Account\",\n unknown: \"Connected wallet\",\n};\n\nfunction defaultLabelForWalletType(key: string, rawType: string): string {\n if (TYPE_LABELS[key]) return TYPE_LABELS[key];\n if (CLIENT_TYPE_BRAND_LABELS[key]) return CLIENT_TYPE_BRAND_LABELS[key];\n if (/^[a-z0-9_]+$/.test(key) && key.length <= 64) {\n return key\n .split(\"_\")\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(\" \");\n }\n return rawType;\n}\n\n/** Normalize wallet type to trimmed lowercase for comparisons. */\nexport function normalizeWalletType(type: unknown): string {\n return String(type ?? \"\")\n .trim()\n .toLowerCase();\n}\n\n/** Map a wallet type to a human-readable label. */\nexport function getWalletLabel(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Get display name: custom label takes priority, then type-based label. */\nexport function getWalletDisplayName(\n wallet: { type: unknown; label?: string | null },\n customLabels?: Record<string, string>,\n): string {\n const label = wallet.label?.trim();\n if (label) return label;\n return getWalletLabel(wallet.type, customLabels);\n}\n\n/** Whether a wallet type is system-managed (embedded Fairmint only) and cannot be removed by users. */\nexport function isSystemWalletType(type: unknown): boolean {\n return SYSTEM_TYPES.has(normalizeWalletType(type));\n}\n\n/**\n * Short label for the wallet “kind” pill (embedded vs connected vs custodian, etc.).\n * Distinct from {@link getWalletLabel} which is used for display-name fallback.\n */\nexport function getWalletKindPill(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n if (key === \"fairmint\") return \"Embedded\";\n if (key === \"privy\") return \"Privy\";\n if (key === \"manual\") return \"Manual\";\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Whether a wallet type can be removed by the user. */\nexport function isRemovableWalletType(type: unknown): boolean {\n return !isSystemWalletType(type);\n}\n\n/** Stable React key for a wallet. */\nexport function walletKey(w: { type: unknown; address: string }): string {\n return `${normalizeWalletType(w.type)}:${w.address.toLowerCase()}`;\n}\n"],"names":[],"mappings":"AACA,MAAM,eAAe,oBAAI,IAAI,CAAC,YAAY,OAAO,CAAC;AAElD,MAAM,cAAsC;AAAA,EAC1C,UAAU;AAAA;AAAA;AAAA,EAGV,OAAO;AAAA,EACP,QAAQ;AACV;AAMA,MAAM,2BAAmD;AAAA,EACvD,UAAU;AAAA,EACV,SAAS;AAAA,EACT,cAAc;AAAA,EACd,SAAS;AAAA,EACT,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA,EACb,+BAA+B;AAAA,EAC/B,sBAAsB;AAAA,EACtB,SAAS;AAAA,EACT,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,SAAS,0BAA0B,KAAa,SAAyB;AACvE,MAAI,YAAY,GAAG,EAAG,QAAO,YAAY,GAAG;AAC5C,MAAI,yBAAyB,GAAG,EAAG,QAAO,yBAAyB,GAAG;AACtE,MAAI,eAAe,KAAK,GAAG,KAAK,IAAI,UAAU,IAAI;AAChD,WAAO,IACJ,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAA,IAAgB,EAAE,MAAM,CAAC,CAAC,EACjD,KAAK,GAAG;AAAA,EACb;AACA,SAAO;AACT;AAGO,SAAS,oBAAoB,MAAuB;AACzD,SAAO,OAAO,QAAQ,EAAE,EACrB,KAAA,EACA,YAAA;AACL;AAGO,SAAS,eAAe,MAAe,QAAyC;AACrF,QAAM,MAAM,oBAAoB,IAAI;AACpC,QAAM,UAAU,OAAO,SAAS,WAAW,OAAO,OAAO,QAAQ,EAAE;AACnE,MAAI,SAAS,GAAG,EAAG,QAAO,OAAO,GAAG;AACpC,MAAI,SAAS,OAAO,EAAG,QAAO,OAAO,OAAO;AAC5C,SAAO,0BAA0B,KAAK,OAAO;AAC/C;AAGO,SAAS,qBACd,QACA,cACQ;AACR,QAAM,QAAQ,OAAO,OAAO,KAAA;AAC5B,MAAI,MAAO,QAAO;AAClB,SAAO,eAAe,OAAO,MAAM,YAAY;AACjD;AAGO,SAAS,mBAAmB,MAAwB;AACzD,SAAO,aAAa,IAAI,oBAAoB,IAAI,CAAC;AACnD;AAMO,SAAS,kBAAkB,MAAe,QAAyC;AACxF,QAAM,MAAM,oBAAoB,IAAI;AACpC,MAAI,QAAQ,WAAY,QAAO;AAC/B,MAAI,QAAQ,QAAS,QAAO;AAC5B,MAAI,QAAQ,SAAU,QAAO;AAC7B,QAAM,UAAU,OAAO,SAAS,WAAW,OAAO,OAAO,QAAQ,EAAE;AACnE,MAAI,SAAS,GAAG,EAAG,QAAO,OAAO,GAAG;AACpC,MAAI,SAAS,OAAO,EAAG,QAAO,OAAO,OAAO;AAC5C,SAAO,0BAA0B,KAAK,OAAO;AAC/C;AAGO,SAAS,sBAAsB,MAAwB;AAC5D,SAAO,CAAC,mBAAmB,IAAI;AACjC;AAGO,SAAS,UAAU,GAA+C;AACvE,SAAO,GAAG,oBAAoB,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,YAAA,CAAa;AAClE;"}
1
+ {"version":3,"file":"wallets.js","sources":["../../src/utils/wallets.ts"],"sourcesContent":["import { colors } from \"../theme/colors\";\n\n/** Shared wallet shape for list rows, pickers, and management surfaces. */\nexport interface Wallet {\n /** Ethereum wallet address. */\n address: string;\n /** Wallet type identifier (e.g. \"fairmint\", \"privy\", \"manual\"). */\n type: string;\n /** Optional display label. */\n label?: string | null;\n /** Whether this is the default equity recipient wallet. */\n defaultRecipient?: boolean;\n}\n\n/** Embedded wallet types that cannot be removed by the user. */\nconst SYSTEM_TYPES = new Set([\"fairmint\", \"privy\"]);\n\nconst TYPE_LABELS: Record<string, string> = {\n fairmint: \"Fairmint Wallet\",\n // \"privy\" is the embedded wallet Fairmint creates for new users via Privy.\n // Display it as \"Fairmint Wallet\" (same brand as the legacy embedded type).\n privy: \"Fairmint Wallet\",\n manual: \"Manual\",\n};\n\n/**\n * Privy `walletClientType` values persisted as `wallet.type` (see investor `privyWalletClientTypes`).\n * Used for display when there is no custom row label.\n */\nconst CLIENT_TYPE_BRAND_LABELS: Record<string, string> = {\n metamask: \"MetaMask\",\n phantom: \"Phantom\",\n brave_wallet: \"Brave Wallet\",\n rainbow: \"Rainbow\",\n uniswap_wallet_extension: \"Uniswap\",\n uniswap_extension: \"Uniswap\",\n rabby_wallet: \"Rabby\",\n bybit_wallet: \"Bybit Wallet\",\n ronin_wallet: \"Ronin Wallet\",\n haha_wallet: \"Haha Wallet\",\n \"crypto.com_wallet_extension\": \"Crypto.com\",\n \"crypto.com_onchain\": \"Crypto.com Onchain\",\n binance: \"Binance\",\n bitget_wallet: \"Bitget Wallet\",\n coinbase_wallet: \"Coinbase Wallet\",\n coinbase_smart_wallet: \"Coinbase Smart Wallet\",\n base_account: \"Base Account\",\n unknown: \"Connected wallet\",\n};\n\nfunction defaultLabelForWalletType(key: string, rawType: string): string {\n if (TYPE_LABELS[key]) return TYPE_LABELS[key];\n if (CLIENT_TYPE_BRAND_LABELS[key]) return CLIENT_TYPE_BRAND_LABELS[key];\n if (/^[a-z0-9_]+$/.test(key) && key.length <= 64) {\n return key\n .split(\"_\")\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(\" \");\n }\n return rawType;\n}\n\n/** Normalize wallet type to trimmed lowercase for comparisons. */\nexport function normalizeWalletType(type: unknown): string {\n return String(type ?? \"\")\n .trim()\n .toLowerCase();\n}\n\n/** Map a wallet type to the semantic color used by its leading icon. */\nexport function getWalletIconColor(type: unknown): string {\n const key = normalizeWalletType(type).replace(/_/g, \" \");\n if (key === \"fairmint\" || key === \"privy\") return colors.primary;\n if (key === \"metamask\") return colors.warning;\n if (key === \"coinbase wallet\" || key === \"coinbase smart wallet\" || key === \"coinbase custody\") {\n return colors.info;\n }\n if (key === \"phantom\") return colors.brandPurple;\n if (key === \"rainbow\") return colors.accent2;\n if (key === \"manual\") return colors.neutral;\n if (\n key === \"anchorage\" ||\n key === \"bitgo\" ||\n key === \"gemini custody\" ||\n key === \"ledger vault\" ||\n key === \"fireblocks\"\n ) {\n return colors.success;\n }\n return colors.neutral;\n}\n\n/** Map a wallet type to a human-readable label. */\nexport function getWalletLabel(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Get display name: custom label takes priority, then type-based label. */\nexport function getWalletDisplayName(\n wallet: { type: unknown; label?: string | null },\n customLabels?: Record<string, string>,\n): string {\n const label = wallet.label?.trim();\n if (label) return label;\n return getWalletLabel(wallet.type, customLabels);\n}\n\n/** Whether a wallet type is system-managed (embedded Fairmint only) and cannot be removed by users. */\nexport function isSystemWalletType(type: unknown): boolean {\n return SYSTEM_TYPES.has(normalizeWalletType(type));\n}\n\n/**\n * Short label for the wallet “kind” pill (embedded vs connected vs custodian, etc.).\n * Distinct from {@link getWalletLabel} which is used for display-name fallback.\n */\nexport function getWalletKindPill(type: unknown, custom?: Record<string, string>): string {\n const key = normalizeWalletType(type);\n // fairmint and privy are the same Fairmint embedded wallet surface — keep the\n // kind pill as \"Embedded\" even when typeLabels rebrands the display name.\n if (key === \"fairmint\" || key === \"privy\") return \"Embedded\";\n if (key === \"manual\") return \"Manual\";\n const rawType = typeof type === \"string\" ? type : String(type ?? \"\");\n if (custom?.[key]) return custom[key];\n if (custom?.[rawType]) return custom[rawType];\n return defaultLabelForWalletType(key, rawType);\n}\n\n/** Whether a wallet type can be removed by the user. */\nexport function isRemovableWalletType(type: unknown): boolean {\n return !isSystemWalletType(type);\n}\n\n/** Stable React key for a wallet. */\nexport function walletKey(w: { type: unknown; address: string }): string {\n return `${normalizeWalletType(w.type)}:${w.address.toLowerCase()}`;\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/ui",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "type": "module",
5
5
  "description": "Fairmint design system and UI component library",
6
6
  "license": "UNLICENSED",