@medialane/ui 0.290.0 → 0.292.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 (102) hide show
  1. package/dist/components/account/input-otp.d.cts +2 -2
  2. package/dist/components/account/input-otp.d.ts +2 -2
  3. package/dist/components/action-button.cjs +3 -30
  4. package/dist/components/action-button.cjs.map +1 -1
  5. package/dist/components/action-button.d.cts +1 -2
  6. package/dist/components/action-button.d.ts +1 -2
  7. package/dist/components/action-button.js +1 -28
  8. package/dist/components/action-button.js.map +1 -1
  9. package/dist/components/badge.d.cts +1 -1
  10. package/dist/components/badge.d.ts +1 -1
  11. package/dist/components/button.d.cts +2 -2
  12. package/dist/components/button.d.ts +2 -2
  13. package/dist/components/drop/create/launch-dialog.cjs +10 -7
  14. package/dist/components/drop/create/launch-dialog.cjs.map +1 -1
  15. package/dist/components/drop/create/launch-dialog.js +10 -7
  16. package/dist/components/drop/create/launch-dialog.js.map +1 -1
  17. package/dist/components/drop/page/drop-manage.cjs +6 -3
  18. package/dist/components/drop/page/drop-manage.cjs.map +1 -1
  19. package/dist/components/drop/page/drop-manage.js +6 -3
  20. package/dist/components/drop/page/drop-manage.js.map +1 -1
  21. package/dist/components/drop/page/drop-mint-dialog.cjs +9 -6
  22. package/dist/components/drop/page/drop-mint-dialog.cjs.map +1 -1
  23. package/dist/components/drop/page/drop-mint-dialog.js +9 -6
  24. package/dist/components/drop/page/drop-mint-dialog.js.map +1 -1
  25. package/dist/components/fast-mint/fast-mint.cjs +6 -13
  26. package/dist/components/fast-mint/fast-mint.cjs.map +1 -1
  27. package/dist/components/fast-mint/fast-mint.d.cts +2 -2
  28. package/dist/components/fast-mint/fast-mint.d.ts +2 -2
  29. package/dist/components/fast-mint/fast-mint.js +7 -15
  30. package/dist/components/fast-mint/fast-mint.js.map +1 -1
  31. package/dist/components/gated-content.cjs +2 -1
  32. package/dist/components/gated-content.cjs.map +1 -1
  33. package/dist/components/gated-content.js +2 -1
  34. package/dist/components/gated-content.js.map +1 -1
  35. package/dist/components/listings-grid.cjs +147 -0
  36. package/dist/components/listings-grid.cjs.map +1 -0
  37. package/dist/components/listings-grid.d.cts +15 -0
  38. package/dist/components/listings-grid.d.ts +15 -0
  39. package/dist/components/listings-grid.js +113 -0
  40. package/dist/components/listings-grid.js.map +1 -0
  41. package/dist/components/media-wallet/action-button.cjs +0 -18
  42. package/dist/components/media-wallet/action-button.cjs.map +1 -1
  43. package/dist/components/media-wallet/action-button.d.cts +1 -3
  44. package/dist/components/media-wallet/action-button.d.ts +1 -3
  45. package/dist/components/media-wallet/action-button.js +0 -16
  46. package/dist/components/media-wallet/action-button.js.map +1 -1
  47. package/dist/components/media-wallet/activate-card.cjs +2 -2
  48. package/dist/components/media-wallet/activate-card.cjs.map +1 -1
  49. package/dist/components/media-wallet/activate-card.js +1 -1
  50. package/dist/components/media-wallet/activate-card.js.map +1 -1
  51. package/dist/components/media-wallet/media-wallet-activity.cjs +4 -6
  52. package/dist/components/media-wallet/media-wallet-activity.cjs.map +1 -1
  53. package/dist/components/media-wallet/media-wallet-activity.js +4 -6
  54. package/dist/components/media-wallet/media-wallet-activity.js.map +1 -1
  55. package/dist/components/media-wallet/media-wallet-home.cjs +2 -1
  56. package/dist/components/media-wallet/media-wallet-home.cjs.map +1 -1
  57. package/dist/components/media-wallet/media-wallet-home.js +2 -1
  58. package/dist/components/media-wallet/media-wallet-home.js.map +1 -1
  59. package/dist/components/media-wallet/quick-action.cjs +3 -3
  60. package/dist/components/media-wallet/quick-action.cjs.map +1 -1
  61. package/dist/components/media-wallet/quick-action.d.cts +1 -1
  62. package/dist/components/media-wallet/quick-action.d.ts +1 -1
  63. package/dist/components/media-wallet/quick-action.js +1 -1
  64. package/dist/components/media-wallet/quick-action.js.map +1 -1
  65. package/dist/components/media-wallet/success-dialog.cjs +2 -2
  66. package/dist/components/media-wallet/success-dialog.cjs.map +1 -1
  67. package/dist/components/media-wallet/success-dialog.js +1 -1
  68. package/dist/components/media-wallet/success-dialog.js.map +1 -1
  69. package/dist/components/media-wallet/wallet-activity-icon.cjs +5 -4
  70. package/dist/components/media-wallet/wallet-activity-icon.cjs.map +1 -1
  71. package/dist/components/media-wallet/wallet-activity-icon.js +5 -4
  72. package/dist/components/media-wallet/wallet-activity-icon.js.map +1 -1
  73. package/dist/components/medialane-collection-card.cjs +6 -6
  74. package/dist/components/medialane-collection-card.cjs.map +1 -1
  75. package/dist/components/medialane-collection-card.js +6 -6
  76. package/dist/components/medialane-collection-card.js.map +1 -1
  77. package/dist/components/sheet.d.cts +1 -1
  78. package/dist/components/sheet.d.ts +1 -1
  79. package/dist/components/wallet/self-fund-consent-dialog.cjs +6 -4
  80. package/dist/components/wallet/self-fund-consent-dialog.cjs.map +1 -1
  81. package/dist/components/wallet/self-fund-consent-dialog.js +6 -4
  82. package/dist/components/wallet/self-fund-consent-dialog.js.map +1 -1
  83. package/dist/data/brand.cjs +54 -2
  84. package/dist/data/brand.cjs.map +1 -1
  85. package/dist/data/brand.d.cts +16 -1
  86. package/dist/data/brand.d.ts +16 -1
  87. package/dist/data/brand.js +47 -1
  88. package/dist/data/brand.js.map +1 -1
  89. package/dist/index.cjs +11 -3
  90. package/dist/index.cjs.map +1 -1
  91. package/dist/index.d.cts +2 -2
  92. package/dist/index.d.ts +2 -2
  93. package/dist/index.js +7 -3
  94. package/dist/index.js.map +1 -1
  95. package/dist/medialane.css +14 -23
  96. package/package.json +1 -1
  97. package/dist/components/action-dialog.cjs +0 -70
  98. package/dist/components/action-dialog.cjs.map +0 -1
  99. package/dist/components/action-dialog.d.cts +0 -12
  100. package/dist/components/action-dialog.d.ts +0 -12
  101. package/dist/components/action-dialog.js +0 -46
  102. package/dist/components/action-dialog.js.map +0 -1
@@ -23,6 +23,7 @@ __export(wallet_activity_icon_exports, {
23
23
  module.exports = __toCommonJS(wallet_activity_icon_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
25
  var import_sdk = require("@medialane/sdk");
26
+ var import_brand = require("../../data/brand.js");
26
27
  var import_currency_icon = require("../currency-icon.js");
27
28
  function WalletActivityIcon({ a }) {
28
29
  if (a.type === "SEND" || a.type === "RECEIVE") {
@@ -30,11 +31,11 @@ function WalletActivityIcon({ a }) {
30
31
  if (symbol) {
31
32
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "grid h-11 w-11 shrink-0 place-items-center rounded-full bg-foreground/[0.06]", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_currency_icon.CurrencyIcon, { symbol, size: 22 }) });
32
33
  }
33
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: a.type === "RECEIVE" ? "#3b7bff" : "#f6608f", children: a.type === "RECEIVE" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArrowDownIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArrowUpIcon, {}) });
34
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: a.type === "RECEIVE" ? import_brand.BRAND_COLOR.blue : import_brand.BRAND_COLOR.rose, children: a.type === "RECEIVE" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArrowDownIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArrowUpIcon, {}) });
34
35
  }
35
- if (a.type === "SWAP") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: "#8a3ff0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SwapIcon, {}) });
36
- if (a.type === "DEPLOY") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: "#fb7a32", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RocketIcon, {}) });
37
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: "#5b4ce6", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShieldIcon, {}) });
36
+ if (a.type === "SWAP") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: import_brand.BRAND_COLOR.purple, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SwapIcon, {}) });
37
+ if (a.type === "DEPLOY") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: import_brand.BRAND_COLOR.orange, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RocketIcon, {}) });
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue: import_brand.BRAND_COLOR.purple, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShieldIcon, {}) });
38
39
  }
39
40
  function ActionIcon({ hue, children }) {
40
41
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "grid h-11 w-11 shrink-0 place-items-center rounded-2xl bg-foreground/[0.06]", style: { color: hue }, children });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/media-wallet/wallet-activity-icon.tsx"],"sourcesContent":["import { getTokenByAddress, type ApiWalletActivity } from \"@medialane/sdk\";\nimport { CurrencyIcon } from \"../currency-icon.js\";\n\nexport function WalletActivityIcon({ a }: { a: ApiWalletActivity }) {\n if (a.type === \"SEND\" || a.type === \"RECEIVE\") {\n const symbol = a.tokenAddress ? getTokenByAddress(a.tokenAddress)?.symbol : undefined;\n if (symbol) {\n return (\n <div className=\"grid h-11 w-11 shrink-0 place-items-center rounded-full bg-foreground/[0.06]\">\n <CurrencyIcon symbol={symbol} size={22} />\n </div>\n );\n }\n return <ActionIcon hue={a.type === \"RECEIVE\" ? \"#3b7bff\" : \"#f6608f\"}>{a.type === \"RECEIVE\" ? <ArrowDownIcon /> : <ArrowUpIcon />}</ActionIcon>;\n }\n if (a.type === \"SWAP\") return <ActionIcon hue=\"#8a3ff0\"><SwapIcon /></ActionIcon>;\n if (a.type === \"DEPLOY\") return <ActionIcon hue=\"#fb7a32\"><RocketIcon /></ActionIcon>;\n return <ActionIcon hue=\"#5b4ce6\"><ShieldIcon /></ActionIcon>;\n}\n\nfunction ActionIcon({ hue, children }: { hue: string; children: React.ReactNode }) {\n return (\n <span className=\"grid h-11 w-11 shrink-0 place-items-center rounded-2xl bg-foreground/[0.06]\" style={{ color: hue }}>\n {children}\n </span>\n );\n}\n\nconst s = { fill: \"none\", stroke: \"currentColor\", strokeWidth: 1.9, strokeLinecap: \"round\", strokeLinejoin: \"round\" } as const;\nfunction ArrowDownIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 4v16M6 14l6 6 6-6\" /></svg>; }\nfunction ArrowUpIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 20V4M6 10l6-6 6 6\" /></svg>; }\nfunction SwapIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M7 10l-3-3 3-3M4 7h13M17 14l3 3-3 3M20 17H7\" /></svg>; }\nfunction RocketIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 00-2.91-.09z\" /><path d=\"M12 15l-3-3a22 22 0 012-3.95A12.88 12.88 0 0122 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 01-4 2z\" /><path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\" /></svg>; }\nfunction ShieldIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 2l7 4v6c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6z\" /><path d=\"M9 12l2 2 4-4\" /></svg>; }\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASU;AATV,iBAA0D;AAC1D,2BAA6B;AAEtB,SAAS,mBAAmB,EAAE,EAAE,GAA6B;AAClE,MAAI,EAAE,SAAS,UAAU,EAAE,SAAS,WAAW;AAC7C,UAAM,SAAS,EAAE,mBAAe,8BAAkB,EAAE,YAAY,GAAG,SAAS;AAC5E,QAAI,QAAQ;AACV,aACE,4CAAC,SAAI,WAAU,gFACb,sDAAC,qCAAa,QAAgB,MAAM,IAAI,GAC1C;AAAA,IAEJ;AACA,WAAO,4CAAC,cAAW,KAAK,EAAE,SAAS,YAAY,YAAY,WAAY,YAAE,SAAS,YAAY,4CAAC,iBAAc,IAAK,4CAAC,eAAY,GAAG;AAAA,EACpI;AACA,MAAI,EAAE,SAAS,OAAQ,QAAO,4CAAC,cAAW,KAAI,WAAU,sDAAC,YAAS,GAAE;AACpE,MAAI,EAAE,SAAS,SAAU,QAAO,4CAAC,cAAW,KAAI,WAAU,sDAAC,cAAW,GAAE;AACxE,SAAO,4CAAC,cAAW,KAAI,WAAU,sDAAC,cAAW,GAAE;AACjD;AAEA,SAAS,WAAW,EAAE,KAAK,SAAS,GAA+C;AACjF,SACE,4CAAC,UAAK,WAAU,+EAA8E,OAAO,EAAE,OAAO,IAAI,GAC/G,UACH;AAEJ;AAEA,MAAM,IAAI,EAAE,MAAM,QAAQ,QAAQ,gBAAgB,aAAa,KAAK,eAAe,SAAS,gBAAgB,QAAQ;AACpH,SAAS,gBAAgB;AAAE,SAAO,4CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,sDAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACnI,SAAS,cAAc;AAAE,SAAO,4CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,sDAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACjI,SAAS,WAAW;AAAE,SAAO,4CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,sDAAC,UAAK,GAAE,+CAA8C,GAAE;AAAQ;AACpJ,SAAS,aAAa;AAAE,SAAO,6CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,gDAAC,UAAK,GAAE,4FAA2F;AAAA,IAAE,4CAAC,UAAK,GAAE,+FAA8F;AAAA,IAAE,4CAAC,UAAK,GAAE,iFAAgF;AAAA,KAAE;AAAQ;AACrY,SAAS,aAAa;AAAE,SAAO,6CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,gDAAC,UAAK,GAAE,gDAA+C;AAAA,IAAE,4CAAC,UAAK,GAAE,iBAAgB;AAAA,KAAE;AAAQ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/media-wallet/wallet-activity-icon.tsx"],"sourcesContent":["import { getTokenByAddress, type ApiWalletActivity } from \"@medialane/sdk\";\nimport { BRAND_COLOR } from \"../../data/brand.js\";\nimport { CurrencyIcon } from \"../currency-icon.js\";\n\nexport function WalletActivityIcon({ a }: { a: ApiWalletActivity }) {\n if (a.type === \"SEND\" || a.type === \"RECEIVE\") {\n const symbol = a.tokenAddress ? getTokenByAddress(a.tokenAddress)?.symbol : undefined;\n if (symbol) {\n return (\n <div className=\"grid h-11 w-11 shrink-0 place-items-center rounded-full bg-foreground/[0.06]\">\n <CurrencyIcon symbol={symbol} size={22} />\n </div>\n );\n }\n return <ActionIcon hue={a.type === \"RECEIVE\" ? BRAND_COLOR.blue : BRAND_COLOR.rose}>{a.type === \"RECEIVE\" ? <ArrowDownIcon /> : <ArrowUpIcon />}</ActionIcon>;\n }\n if (a.type === \"SWAP\") return <ActionIcon hue={BRAND_COLOR.purple}><SwapIcon /></ActionIcon>;\n if (a.type === \"DEPLOY\") return <ActionIcon hue={BRAND_COLOR.orange}><RocketIcon /></ActionIcon>;\n return <ActionIcon hue={BRAND_COLOR.purple}><ShieldIcon /></ActionIcon>;\n}\n\nfunction ActionIcon({ hue, children }: { hue: string; children: React.ReactNode }) {\n return (\n <span className=\"grid h-11 w-11 shrink-0 place-items-center rounded-2xl bg-foreground/[0.06]\" style={{ color: hue }}>\n {children}\n </span>\n );\n}\n\nconst s = { fill: \"none\", stroke: \"currentColor\", strokeWidth: 1.9, strokeLinecap: \"round\", strokeLinejoin: \"round\" } as const;\nfunction ArrowDownIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 4v16M6 14l6 6 6-6\" /></svg>; }\nfunction ArrowUpIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 20V4M6 10l6-6 6 6\" /></svg>; }\nfunction SwapIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M7 10l-3-3 3-3M4 7h13M17 14l3 3-3 3M20 17H7\" /></svg>; }\nfunction RocketIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 00-2.91-.09z\" /><path d=\"M12 15l-3-3a22 22 0 012-3.95A12.88 12.88 0 0122 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 01-4 2z\" /><path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\" /></svg>; }\nfunction ShieldIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 2l7 4v6c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6z\" /><path d=\"M9 12l2 2 4-4\" /></svg>; }\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUU;AAVV,iBAA0D;AAC1D,mBAA4B;AAC5B,2BAA6B;AAEtB,SAAS,mBAAmB,EAAE,EAAE,GAA6B;AAClE,MAAI,EAAE,SAAS,UAAU,EAAE,SAAS,WAAW;AAC7C,UAAM,SAAS,EAAE,mBAAe,8BAAkB,EAAE,YAAY,GAAG,SAAS;AAC5E,QAAI,QAAQ;AACV,aACE,4CAAC,SAAI,WAAU,gFACb,sDAAC,qCAAa,QAAgB,MAAM,IAAI,GAC1C;AAAA,IAEJ;AACA,WAAO,4CAAC,cAAW,KAAK,EAAE,SAAS,YAAY,yBAAY,OAAO,yBAAY,MAAO,YAAE,SAAS,YAAY,4CAAC,iBAAc,IAAK,4CAAC,eAAY,GAAG;AAAA,EAClJ;AACA,MAAI,EAAE,SAAS,OAAQ,QAAO,4CAAC,cAAW,KAAK,yBAAY,QAAQ,sDAAC,YAAS,GAAE;AAC/E,MAAI,EAAE,SAAS,SAAU,QAAO,4CAAC,cAAW,KAAK,yBAAY,QAAQ,sDAAC,cAAW,GAAE;AACnF,SAAO,4CAAC,cAAW,KAAK,yBAAY,QAAQ,sDAAC,cAAW,GAAE;AAC5D;AAEA,SAAS,WAAW,EAAE,KAAK,SAAS,GAA+C;AACjF,SACE,4CAAC,UAAK,WAAU,+EAA8E,OAAO,EAAE,OAAO,IAAI,GAC/G,UACH;AAEJ;AAEA,MAAM,IAAI,EAAE,MAAM,QAAQ,QAAQ,gBAAgB,aAAa,KAAK,eAAe,SAAS,gBAAgB,QAAQ;AACpH,SAAS,gBAAgB;AAAE,SAAO,4CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,sDAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACnI,SAAS,cAAc;AAAE,SAAO,4CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,sDAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACjI,SAAS,WAAW;AAAE,SAAO,4CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,sDAAC,UAAK,GAAE,+CAA8C,GAAE;AAAQ;AACpJ,SAAS,aAAa;AAAE,SAAO,6CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,gDAAC,UAAK,GAAE,4FAA2F;AAAA,IAAE,4CAAC,UAAK,GAAE,+FAA8F;AAAA,IAAE,4CAAC,UAAK,GAAE,iFAAgF;AAAA,KAAE;AAAQ;AACrY,SAAS,aAAa;AAAE,SAAO,6CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,gDAAC,UAAK,GAAE,gDAA+C;AAAA,IAAE,4CAAC,UAAK,GAAE,iBAAgB;AAAA,KAAE;AAAQ;","names":[]}
@@ -1,5 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { getTokenByAddress } from "@medialane/sdk";
3
+ import { BRAND_COLOR } from "../../data/brand.js";
3
4
  import { CurrencyIcon } from "../currency-icon.js";
4
5
  function WalletActivityIcon({ a }) {
5
6
  if (a.type === "SEND" || a.type === "RECEIVE") {
@@ -7,11 +8,11 @@ function WalletActivityIcon({ a }) {
7
8
  if (symbol) {
8
9
  return /* @__PURE__ */ jsx("div", { className: "grid h-11 w-11 shrink-0 place-items-center rounded-full bg-foreground/[0.06]", children: /* @__PURE__ */ jsx(CurrencyIcon, { symbol, size: 22 }) });
9
10
  }
10
- return /* @__PURE__ */ jsx(ActionIcon, { hue: a.type === "RECEIVE" ? "#3b7bff" : "#f6608f", children: a.type === "RECEIVE" ? /* @__PURE__ */ jsx(ArrowDownIcon, {}) : /* @__PURE__ */ jsx(ArrowUpIcon, {}) });
11
+ return /* @__PURE__ */ jsx(ActionIcon, { hue: a.type === "RECEIVE" ? BRAND_COLOR.blue : BRAND_COLOR.rose, children: a.type === "RECEIVE" ? /* @__PURE__ */ jsx(ArrowDownIcon, {}) : /* @__PURE__ */ jsx(ArrowUpIcon, {}) });
11
12
  }
12
- if (a.type === "SWAP") return /* @__PURE__ */ jsx(ActionIcon, { hue: "#8a3ff0", children: /* @__PURE__ */ jsx(SwapIcon, {}) });
13
- if (a.type === "DEPLOY") return /* @__PURE__ */ jsx(ActionIcon, { hue: "#fb7a32", children: /* @__PURE__ */ jsx(RocketIcon, {}) });
14
- return /* @__PURE__ */ jsx(ActionIcon, { hue: "#5b4ce6", children: /* @__PURE__ */ jsx(ShieldIcon, {}) });
13
+ if (a.type === "SWAP") return /* @__PURE__ */ jsx(ActionIcon, { hue: BRAND_COLOR.purple, children: /* @__PURE__ */ jsx(SwapIcon, {}) });
14
+ if (a.type === "DEPLOY") return /* @__PURE__ */ jsx(ActionIcon, { hue: BRAND_COLOR.orange, children: /* @__PURE__ */ jsx(RocketIcon, {}) });
15
+ return /* @__PURE__ */ jsx(ActionIcon, { hue: BRAND_COLOR.purple, children: /* @__PURE__ */ jsx(ShieldIcon, {}) });
15
16
  }
16
17
  function ActionIcon({ hue, children }) {
17
18
  return /* @__PURE__ */ jsx("span", { className: "grid h-11 w-11 shrink-0 place-items-center rounded-2xl bg-foreground/[0.06]", style: { color: hue }, children });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/media-wallet/wallet-activity-icon.tsx"],"sourcesContent":["import { getTokenByAddress, type ApiWalletActivity } from \"@medialane/sdk\";\nimport { CurrencyIcon } from \"../currency-icon.js\";\n\nexport function WalletActivityIcon({ a }: { a: ApiWalletActivity }) {\n if (a.type === \"SEND\" || a.type === \"RECEIVE\") {\n const symbol = a.tokenAddress ? getTokenByAddress(a.tokenAddress)?.symbol : undefined;\n if (symbol) {\n return (\n <div className=\"grid h-11 w-11 shrink-0 place-items-center rounded-full bg-foreground/[0.06]\">\n <CurrencyIcon symbol={symbol} size={22} />\n </div>\n );\n }\n return <ActionIcon hue={a.type === \"RECEIVE\" ? \"#3b7bff\" : \"#f6608f\"}>{a.type === \"RECEIVE\" ? <ArrowDownIcon /> : <ArrowUpIcon />}</ActionIcon>;\n }\n if (a.type === \"SWAP\") return <ActionIcon hue=\"#8a3ff0\"><SwapIcon /></ActionIcon>;\n if (a.type === \"DEPLOY\") return <ActionIcon hue=\"#fb7a32\"><RocketIcon /></ActionIcon>;\n return <ActionIcon hue=\"#5b4ce6\"><ShieldIcon /></ActionIcon>;\n}\n\nfunction ActionIcon({ hue, children }: { hue: string; children: React.ReactNode }) {\n return (\n <span className=\"grid h-11 w-11 shrink-0 place-items-center rounded-2xl bg-foreground/[0.06]\" style={{ color: hue }}>\n {children}\n </span>\n );\n}\n\nconst s = { fill: \"none\", stroke: \"currentColor\", strokeWidth: 1.9, strokeLinecap: \"round\", strokeLinejoin: \"round\" } as const;\nfunction ArrowDownIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 4v16M6 14l6 6 6-6\" /></svg>; }\nfunction ArrowUpIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 20V4M6 10l6-6 6 6\" /></svg>; }\nfunction SwapIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M7 10l-3-3 3-3M4 7h13M17 14l3 3-3 3M20 17H7\" /></svg>; }\nfunction RocketIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 00-2.91-.09z\" /><path d=\"M12 15l-3-3a22 22 0 012-3.95A12.88 12.88 0 0122 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 01-4 2z\" /><path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\" /></svg>; }\nfunction ShieldIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 2l7 4v6c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6z\" /><path d=\"M9 12l2 2 4-4\" /></svg>; }\n"],"mappings":"AASU,cAuBqB,YAvBrB;AATV,SAAS,yBAAiD;AAC1D,SAAS,oBAAoB;AAEtB,SAAS,mBAAmB,EAAE,EAAE,GAA6B;AAClE,MAAI,EAAE,SAAS,UAAU,EAAE,SAAS,WAAW;AAC7C,UAAM,SAAS,EAAE,eAAe,kBAAkB,EAAE,YAAY,GAAG,SAAS;AAC5E,QAAI,QAAQ;AACV,aACE,oBAAC,SAAI,WAAU,gFACb,8BAAC,gBAAa,QAAgB,MAAM,IAAI,GAC1C;AAAA,IAEJ;AACA,WAAO,oBAAC,cAAW,KAAK,EAAE,SAAS,YAAY,YAAY,WAAY,YAAE,SAAS,YAAY,oBAAC,iBAAc,IAAK,oBAAC,eAAY,GAAG;AAAA,EACpI;AACA,MAAI,EAAE,SAAS,OAAQ,QAAO,oBAAC,cAAW,KAAI,WAAU,8BAAC,YAAS,GAAE;AACpE,MAAI,EAAE,SAAS,SAAU,QAAO,oBAAC,cAAW,KAAI,WAAU,8BAAC,cAAW,GAAE;AACxE,SAAO,oBAAC,cAAW,KAAI,WAAU,8BAAC,cAAW,GAAE;AACjD;AAEA,SAAS,WAAW,EAAE,KAAK,SAAS,GAA+C;AACjF,SACE,oBAAC,UAAK,WAAU,+EAA8E,OAAO,EAAE,OAAO,IAAI,GAC/G,UACH;AAEJ;AAEA,MAAM,IAAI,EAAE,MAAM,QAAQ,QAAQ,gBAAgB,aAAa,KAAK,eAAe,SAAS,gBAAgB,QAAQ;AACpH,SAAS,gBAAgB;AAAE,SAAO,oBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,8BAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACnI,SAAS,cAAc;AAAE,SAAO,oBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,8BAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACjI,SAAS,WAAW;AAAE,SAAO,oBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,8BAAC,UAAK,GAAE,+CAA8C,GAAE;AAAQ;AACpJ,SAAS,aAAa;AAAE,SAAO,qBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,wBAAC,UAAK,GAAE,4FAA2F;AAAA,IAAE,oBAAC,UAAK,GAAE,+FAA8F;AAAA,IAAE,oBAAC,UAAK,GAAE,iFAAgF;AAAA,KAAE;AAAQ;AACrY,SAAS,aAAa;AAAE,SAAO,qBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,wBAAC,UAAK,GAAE,gDAA+C;AAAA,IAAE,oBAAC,UAAK,GAAE,iBAAgB;AAAA,KAAE;AAAQ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/media-wallet/wallet-activity-icon.tsx"],"sourcesContent":["import { getTokenByAddress, type ApiWalletActivity } from \"@medialane/sdk\";\nimport { BRAND_COLOR } from \"../../data/brand.js\";\nimport { CurrencyIcon } from \"../currency-icon.js\";\n\nexport function WalletActivityIcon({ a }: { a: ApiWalletActivity }) {\n if (a.type === \"SEND\" || a.type === \"RECEIVE\") {\n const symbol = a.tokenAddress ? getTokenByAddress(a.tokenAddress)?.symbol : undefined;\n if (symbol) {\n return (\n <div className=\"grid h-11 w-11 shrink-0 place-items-center rounded-full bg-foreground/[0.06]\">\n <CurrencyIcon symbol={symbol} size={22} />\n </div>\n );\n }\n return <ActionIcon hue={a.type === \"RECEIVE\" ? BRAND_COLOR.blue : BRAND_COLOR.rose}>{a.type === \"RECEIVE\" ? <ArrowDownIcon /> : <ArrowUpIcon />}</ActionIcon>;\n }\n if (a.type === \"SWAP\") return <ActionIcon hue={BRAND_COLOR.purple}><SwapIcon /></ActionIcon>;\n if (a.type === \"DEPLOY\") return <ActionIcon hue={BRAND_COLOR.orange}><RocketIcon /></ActionIcon>;\n return <ActionIcon hue={BRAND_COLOR.purple}><ShieldIcon /></ActionIcon>;\n}\n\nfunction ActionIcon({ hue, children }: { hue: string; children: React.ReactNode }) {\n return (\n <span className=\"grid h-11 w-11 shrink-0 place-items-center rounded-2xl bg-foreground/[0.06]\" style={{ color: hue }}>\n {children}\n </span>\n );\n}\n\nconst s = { fill: \"none\", stroke: \"currentColor\", strokeWidth: 1.9, strokeLinecap: \"round\", strokeLinejoin: \"round\" } as const;\nfunction ArrowDownIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 4v16M6 14l6 6 6-6\" /></svg>; }\nfunction ArrowUpIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 20V4M6 10l6-6 6 6\" /></svg>; }\nfunction SwapIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M7 10l-3-3 3-3M4 7h13M17 14l3 3-3 3M20 17H7\" /></svg>; }\nfunction RocketIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 00-2.91-.09z\" /><path d=\"M12 15l-3-3a22 22 0 012-3.95A12.88 12.88 0 0122 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 01-4 2z\" /><path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\" /></svg>; }\nfunction ShieldIcon() { return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" {...s}><path d=\"M12 2l7 4v6c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6z\" /><path d=\"M9 12l2 2 4-4\" /></svg>; }\n"],"mappings":"AAUU,cAuBqB,YAvBrB;AAVV,SAAS,yBAAiD;AAC1D,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAEtB,SAAS,mBAAmB,EAAE,EAAE,GAA6B;AAClE,MAAI,EAAE,SAAS,UAAU,EAAE,SAAS,WAAW;AAC7C,UAAM,SAAS,EAAE,eAAe,kBAAkB,EAAE,YAAY,GAAG,SAAS;AAC5E,QAAI,QAAQ;AACV,aACE,oBAAC,SAAI,WAAU,gFACb,8BAAC,gBAAa,QAAgB,MAAM,IAAI,GAC1C;AAAA,IAEJ;AACA,WAAO,oBAAC,cAAW,KAAK,EAAE,SAAS,YAAY,YAAY,OAAO,YAAY,MAAO,YAAE,SAAS,YAAY,oBAAC,iBAAc,IAAK,oBAAC,eAAY,GAAG;AAAA,EAClJ;AACA,MAAI,EAAE,SAAS,OAAQ,QAAO,oBAAC,cAAW,KAAK,YAAY,QAAQ,8BAAC,YAAS,GAAE;AAC/E,MAAI,EAAE,SAAS,SAAU,QAAO,oBAAC,cAAW,KAAK,YAAY,QAAQ,8BAAC,cAAW,GAAE;AACnF,SAAO,oBAAC,cAAW,KAAK,YAAY,QAAQ,8BAAC,cAAW,GAAE;AAC5D;AAEA,SAAS,WAAW,EAAE,KAAK,SAAS,GAA+C;AACjF,SACE,oBAAC,UAAK,WAAU,+EAA8E,OAAO,EAAE,OAAO,IAAI,GAC/G,UACH;AAEJ;AAEA,MAAM,IAAI,EAAE,MAAM,QAAQ,QAAQ,gBAAgB,aAAa,KAAK,eAAe,SAAS,gBAAgB,QAAQ;AACpH,SAAS,gBAAgB;AAAE,SAAO,oBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,8BAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACnI,SAAS,cAAc;AAAE,SAAO,oBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,8BAAC,UAAK,GAAE,yBAAwB,GAAE;AAAQ;AACjI,SAAS,WAAW;AAAE,SAAO,oBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG,8BAAC,UAAK,GAAE,+CAA8C,GAAE;AAAQ;AACpJ,SAAS,aAAa;AAAE,SAAO,qBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,wBAAC,UAAK,GAAE,4FAA2F;AAAA,IAAE,oBAAC,UAAK,GAAE,+FAA8F;AAAA,IAAE,oBAAC,UAAK,GAAE,iFAAgF;AAAA,KAAE;AAAQ;AACrY,SAAS,aAAa;AAAE,SAAO,qBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAa,GAAG,GAAG;AAAA,wBAAC,UAAK,GAAE,gDAA+C;AAAA,IAAE,oBAAC,UAAK,GAAE,iBAAgB;AAAA,KAAE;AAAQ;","names":[]}
@@ -38,28 +38,28 @@ function MedialaneCollectionCard({
38
38
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_cn.cn)(className), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "rounded-[24px] border border-border", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
39
39
  "div",
40
40
  {
41
- className: "ml-card-material relative rounded-[23px] overflow-hidden text-[#0a0e1f] dark:text-white",
41
+ className: "ml-card-material relative rounded-[23px] overflow-hidden text-brand-navy dark:text-white",
42
42
  children: [
43
43
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "p-2.5 pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative aspect-square w-full overflow-hidden rounded-[16px] ring-1 ring-black/10 dark:ring-white/10 bg-muted", children: image ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: image, alt: displayName, loading: "lazy", decoding: "async", className: "h-full w-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-full w-full flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ImageIcon, { className: "h-8 w-8 text-muted-foreground/40" }) }) }) }),
44
44
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative px-4 pt-3 pb-4", children: [
45
45
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-start gap-2", children: [
46
46
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "min-w-0 flex-1 text-[18px] font-bold leading-snug truncate", children: displayName }),
47
- serial && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-[#0a0e1f]/80 dark:text-white/80 tabular-nums", children: serial })
47
+ serial && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-brand-navy/80 dark:text-white/80 tabular-nums", children: serial })
48
48
  ] }),
49
- collection && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-0.5 text-[12.5px] text-[#0a0e1f]/55 dark:text-white/55 truncate", children: collection }),
49
+ collection && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-0.5 text-[12.5px] text-brand-navy/55 dark:text-white/55 truncate", children: collection }),
50
50
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "my-3 h-px bg-black/10 dark:bg-white/10" }),
51
51
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
52
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-2xs font-bold tracking-[0.18em] text-[#0a0e1f]/50 dark:text-white/50", children: "STARKNET" }),
52
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-2xs font-bold tracking-[0.18em] text-brand-navy/50 dark:text-white/50", children: "STARKNET" }),
53
53
  creator && (creatorHref ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
54
  "a",
55
55
  {
56
56
  href: creatorHref,
57
57
  target: "_blank",
58
58
  rel: "noopener noreferrer",
59
- className: "ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums hover:text-[#0a0e1f]/80 dark:hover:text-white/80 transition-colors",
59
+ className: "ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums hover:text-brand-navy/80 dark:hover:text-white/80 transition-colors",
60
60
  children: creator
61
61
  }
62
- ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums", children: creator }))
62
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums", children: creator }))
63
63
  ] })
64
64
  ] })
65
65
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/medialane-collection-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { ImageIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport interface MedialaneCollectionCardProps {\n\n image?: string | null;\n\n name?: string;\n\n collection?: string;\n\n serial?: string;\n\n creator?: string;\n\n creatorHref?: string;\n className?: string;\n}\n\nexport function MedialaneCollectionCard({\n image,\n name,\n collection,\n serial,\n creator,\n creatorHref,\n className,\n}: MedialaneCollectionCardProps) {\n const displayName = name?.trim() || \"Untitled\";\n\n return (\n <div className={cn(className)}>\n <div className=\"rounded-[24px] border border-border\">\n <div\n className=\"ml-card-material relative rounded-[23px] overflow-hidden text-[#0a0e1f] dark:text-white\"\n >\n\n <div className=\"p-2.5 pb-0\">\n <div className=\"relative aspect-square w-full overflow-hidden rounded-[16px] ring-1 ring-black/10 dark:ring-white/10 bg-muted\">\n {image ? (\n\n <img src={image} alt={displayName} loading=\"lazy\" decoding=\"async\" className=\"h-full w-full object-cover\" />\n ) : (\n <div className=\"h-full w-full flex items-center justify-center\">\n <ImageIcon className=\"h-8 w-8 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"relative px-4 pt-3 pb-4\">\n <div className=\"flex items-start gap-2\">\n <p className=\"min-w-0 flex-1 text-[18px] font-bold leading-snug truncate\">\n {displayName}\n </p>\n {serial && (\n <span className=\"mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-[#0a0e1f]/80 dark:text-white/80 tabular-nums\">\n {serial}\n </span>\n )}\n </div>\n {collection && (\n <p className=\"mt-0.5 text-[12.5px] text-[#0a0e1f]/55 dark:text-white/55 truncate\">{collection}</p>\n )}\n <div className=\"my-3 h-px bg-black/10 dark:bg-white/10\" />\n <div className=\"flex items-center gap-2\">\n <span className=\"text-2xs font-bold tracking-[0.18em] text-[#0a0e1f]/50 dark:text-white/50\">\n STARKNET\n </span>\n {creator && (\n creatorHref ? (\n <a\n href={creatorHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums hover:text-[#0a0e1f]/80 dark:hover:text-white/80 transition-colors\"\n >\n {creator}\n </a>\n ) : (\n <span className=\"ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums\">\n {creator}\n </span>\n )\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CgB;AAzChB,0BAA0B;AAC1B,gBAAmB;AAkBZ,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiC;AAC/B,QAAM,cAAc,MAAM,KAAK,KAAK;AAEpC,SACE,4CAAC,SAAI,eAAW,cAAG,SAAS,GAC1B,sDAAC,SAAI,WAAU,uCACb;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MAGV;AAAA,oDAAC,SAAI,WAAU,cACb,sDAAC,SAAI,WAAU,iHACZ,kBAEC,4CAAC,SAAI,KAAK,OAAO,KAAK,aAAa,SAAQ,QAAO,UAAS,SAAQ,WAAU,8BAA6B,IAE1G,4CAAC,SAAI,WAAU,kDACb,sDAAC,iCAAU,WAAU,oCAAmC,GAC1D,GAEJ,GACF;AAAA,QAEA,6CAAC,SAAI,WAAU,2BACb;AAAA,uDAAC,SAAI,WAAU,0BACb;AAAA,wDAAC,OAAE,WAAU,8DACV,uBACH;AAAA,YACC,UACC,4CAAC,UAAK,WAAU,iJACb,kBACH;AAAA,aAEJ;AAAA,UACC,cACC,4CAAC,OAAE,WAAU,sEAAsE,sBAAW;AAAA,UAEhG,4CAAC,SAAI,WAAU,0CAAyC;AAAA,UACxD,6CAAC,SAAI,WAAU,2BACb;AAAA,wDAAC,UAAK,WAAU,6EAA4E,sBAE5F;AAAA,YACC,YACC,cACE;AAAA,cAAC;AAAA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBAET;AAAA;AAAA,YACH,IAEA,4CAAC,UAAK,WAAU,uFACb,mBACH;AAAA,aAGN;AAAA,WACF;AAAA;AAAA;AAAA,EACF,GACF,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/medialane-collection-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { ImageIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport interface MedialaneCollectionCardProps {\n\n image?: string | null;\n\n name?: string;\n\n collection?: string;\n\n serial?: string;\n\n creator?: string;\n\n creatorHref?: string;\n className?: string;\n}\n\nexport function MedialaneCollectionCard({\n image,\n name,\n collection,\n serial,\n creator,\n creatorHref,\n className,\n}: MedialaneCollectionCardProps) {\n const displayName = name?.trim() || \"Untitled\";\n\n return (\n <div className={cn(className)}>\n <div className=\"rounded-[24px] border border-border\">\n <div\n className=\"ml-card-material relative rounded-[23px] overflow-hidden text-brand-navy dark:text-white\"\n >\n\n <div className=\"p-2.5 pb-0\">\n <div className=\"relative aspect-square w-full overflow-hidden rounded-[16px] ring-1 ring-black/10 dark:ring-white/10 bg-muted\">\n {image ? (\n\n <img src={image} alt={displayName} loading=\"lazy\" decoding=\"async\" className=\"h-full w-full object-cover\" />\n ) : (\n <div className=\"h-full w-full flex items-center justify-center\">\n <ImageIcon className=\"h-8 w-8 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"relative px-4 pt-3 pb-4\">\n <div className=\"flex items-start gap-2\">\n <p className=\"min-w-0 flex-1 text-[18px] font-bold leading-snug truncate\">\n {displayName}\n </p>\n {serial && (\n <span className=\"mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-brand-navy/80 dark:text-white/80 tabular-nums\">\n {serial}\n </span>\n )}\n </div>\n {collection && (\n <p className=\"mt-0.5 text-[12.5px] text-brand-navy/55 dark:text-white/55 truncate\">{collection}</p>\n )}\n <div className=\"my-3 h-px bg-black/10 dark:bg-white/10\" />\n <div className=\"flex items-center gap-2\">\n <span className=\"text-2xs font-bold tracking-[0.18em] text-brand-navy/50 dark:text-white/50\">\n STARKNET\n </span>\n {creator && (\n creatorHref ? (\n <a\n href={creatorHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums hover:text-brand-navy/80 dark:hover:text-white/80 transition-colors\"\n >\n {creator}\n </a>\n ) : (\n <span className=\"ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums\">\n {creator}\n </span>\n )\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CgB;AAzChB,0BAA0B;AAC1B,gBAAmB;AAkBZ,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiC;AAC/B,QAAM,cAAc,MAAM,KAAK,KAAK;AAEpC,SACE,4CAAC,SAAI,eAAW,cAAG,SAAS,GAC1B,sDAAC,SAAI,WAAU,uCACb;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MAGV;AAAA,oDAAC,SAAI,WAAU,cACb,sDAAC,SAAI,WAAU,iHACZ,kBAEC,4CAAC,SAAI,KAAK,OAAO,KAAK,aAAa,SAAQ,QAAO,UAAS,SAAQ,WAAU,8BAA6B,IAE1G,4CAAC,SAAI,WAAU,kDACb,sDAAC,iCAAU,WAAU,oCAAmC,GAC1D,GAEJ,GACF;AAAA,QAEA,6CAAC,SAAI,WAAU,2BACb;AAAA,uDAAC,SAAI,WAAU,0BACb;AAAA,wDAAC,OAAE,WAAU,8DACV,uBACH;AAAA,YACC,UACC,4CAAC,UAAK,WAAU,kJACb,kBACH;AAAA,aAEJ;AAAA,UACC,cACC,4CAAC,OAAE,WAAU,uEAAuE,sBAAW;AAAA,UAEjG,4CAAC,SAAI,WAAU,0CAAyC;AAAA,UACxD,6CAAC,SAAI,WAAU,2BACb;AAAA,wDAAC,UAAK,WAAU,8EAA6E,sBAE7F;AAAA,YACC,YACC,cACE;AAAA,cAAC;AAAA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBAET;AAAA;AAAA,YACH,IAEA,4CAAC,UAAK,WAAU,wFACb,mBACH;AAAA,aAGN;AAAA,WACF;AAAA;AAAA;AAAA,EACF,GACF,GACF;AAEJ;","names":[]}
@@ -15,28 +15,28 @@ function MedialaneCollectionCard({
15
15
  return /* @__PURE__ */ jsx("div", { className: cn(className), children: /* @__PURE__ */ jsx("div", { className: "rounded-[24px] border border-border", children: /* @__PURE__ */ jsxs(
16
16
  "div",
17
17
  {
18
- className: "ml-card-material relative rounded-[23px] overflow-hidden text-[#0a0e1f] dark:text-white",
18
+ className: "ml-card-material relative rounded-[23px] overflow-hidden text-brand-navy dark:text-white",
19
19
  children: [
20
20
  /* @__PURE__ */ jsx("div", { className: "p-2.5 pb-0", children: /* @__PURE__ */ jsx("div", { className: "relative aspect-square w-full overflow-hidden rounded-[16px] ring-1 ring-black/10 dark:ring-white/10 bg-muted", children: image ? /* @__PURE__ */ jsx("img", { src: image, alt: displayName, loading: "lazy", decoding: "async", className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsx("div", { className: "h-full w-full flex items-center justify-center", children: /* @__PURE__ */ jsx(ImageIcon, { className: "h-8 w-8 text-muted-foreground/40" }) }) }) }),
21
21
  /* @__PURE__ */ jsxs("div", { className: "relative px-4 pt-3 pb-4", children: [
22
22
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
23
23
  /* @__PURE__ */ jsx("p", { className: "min-w-0 flex-1 text-[18px] font-bold leading-snug truncate", children: displayName }),
24
- serial && /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-[#0a0e1f]/80 dark:text-white/80 tabular-nums", children: serial })
24
+ serial && /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-brand-navy/80 dark:text-white/80 tabular-nums", children: serial })
25
25
  ] }),
26
- collection && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-[12.5px] text-[#0a0e1f]/55 dark:text-white/55 truncate", children: collection }),
26
+ collection && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-[12.5px] text-brand-navy/55 dark:text-white/55 truncate", children: collection }),
27
27
  /* @__PURE__ */ jsx("div", { className: "my-3 h-px bg-black/10 dark:bg-white/10" }),
28
28
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
29
- /* @__PURE__ */ jsx("span", { className: "text-2xs font-bold tracking-[0.18em] text-[#0a0e1f]/50 dark:text-white/50", children: "STARKNET" }),
29
+ /* @__PURE__ */ jsx("span", { className: "text-2xs font-bold tracking-[0.18em] text-brand-navy/50 dark:text-white/50", children: "STARKNET" }),
30
30
  creator && (creatorHref ? /* @__PURE__ */ jsx(
31
31
  "a",
32
32
  {
33
33
  href: creatorHref,
34
34
  target: "_blank",
35
35
  rel: "noopener noreferrer",
36
- className: "ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums hover:text-[#0a0e1f]/80 dark:hover:text-white/80 transition-colors",
36
+ className: "ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums hover:text-brand-navy/80 dark:hover:text-white/80 transition-colors",
37
37
  children: creator
38
38
  }
39
- ) : /* @__PURE__ */ jsx("span", { className: "ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums", children: creator }))
39
+ ) : /* @__PURE__ */ jsx("span", { className: "ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums", children: creator }))
40
40
  ] })
41
41
  ] })
42
42
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/medialane-collection-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { ImageIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport interface MedialaneCollectionCardProps {\n\n image?: string | null;\n\n name?: string;\n\n collection?: string;\n\n serial?: string;\n\n creator?: string;\n\n creatorHref?: string;\n className?: string;\n}\n\nexport function MedialaneCollectionCard({\n image,\n name,\n collection,\n serial,\n creator,\n creatorHref,\n className,\n}: MedialaneCollectionCardProps) {\n const displayName = name?.trim() || \"Untitled\";\n\n return (\n <div className={cn(className)}>\n <div className=\"rounded-[24px] border border-border\">\n <div\n className=\"ml-card-material relative rounded-[23px] overflow-hidden text-[#0a0e1f] dark:text-white\"\n >\n\n <div className=\"p-2.5 pb-0\">\n <div className=\"relative aspect-square w-full overflow-hidden rounded-[16px] ring-1 ring-black/10 dark:ring-white/10 bg-muted\">\n {image ? (\n\n <img src={image} alt={displayName} loading=\"lazy\" decoding=\"async\" className=\"h-full w-full object-cover\" />\n ) : (\n <div className=\"h-full w-full flex items-center justify-center\">\n <ImageIcon className=\"h-8 w-8 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"relative px-4 pt-3 pb-4\">\n <div className=\"flex items-start gap-2\">\n <p className=\"min-w-0 flex-1 text-[18px] font-bold leading-snug truncate\">\n {displayName}\n </p>\n {serial && (\n <span className=\"mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-[#0a0e1f]/80 dark:text-white/80 tabular-nums\">\n {serial}\n </span>\n )}\n </div>\n {collection && (\n <p className=\"mt-0.5 text-[12.5px] text-[#0a0e1f]/55 dark:text-white/55 truncate\">{collection}</p>\n )}\n <div className=\"my-3 h-px bg-black/10 dark:bg-white/10\" />\n <div className=\"flex items-center gap-2\">\n <span className=\"text-2xs font-bold tracking-[0.18em] text-[#0a0e1f]/50 dark:text-white/50\">\n STARKNET\n </span>\n {creator && (\n creatorHref ? (\n <a\n href={creatorHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums hover:text-[#0a0e1f]/80 dark:hover:text-white/80 transition-colors\"\n >\n {creator}\n </a>\n ) : (\n <span className=\"ml-auto min-w-0 truncate text-2xs text-[#0a0e1f]/55 dark:text-white/55 tabular-nums\">\n {creator}\n </span>\n )\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";AA2CgB,cAUJ,YAVI;AAzChB,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AAkBZ,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiC;AAC/B,QAAM,cAAc,MAAM,KAAK,KAAK;AAEpC,SACE,oBAAC,SAAI,WAAW,GAAG,SAAS,GAC1B,8BAAC,SAAI,WAAU,uCACb;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MAGV;AAAA,4BAAC,SAAI,WAAU,cACb,8BAAC,SAAI,WAAU,iHACZ,kBAEC,oBAAC,SAAI,KAAK,OAAO,KAAK,aAAa,SAAQ,QAAO,UAAS,SAAQ,WAAU,8BAA6B,IAE1G,oBAAC,SAAI,WAAU,kDACb,8BAAC,aAAU,WAAU,oCAAmC,GAC1D,GAEJ,GACF;AAAA,QAEA,qBAAC,SAAI,WAAU,2BACb;AAAA,+BAAC,SAAI,WAAU,0BACb;AAAA,gCAAC,OAAE,WAAU,8DACV,uBACH;AAAA,YACC,UACC,oBAAC,UAAK,WAAU,iJACb,kBACH;AAAA,aAEJ;AAAA,UACC,cACC,oBAAC,OAAE,WAAU,sEAAsE,sBAAW;AAAA,UAEhG,oBAAC,SAAI,WAAU,0CAAyC;AAAA,UACxD,qBAAC,SAAI,WAAU,2BACb;AAAA,gCAAC,UAAK,WAAU,6EAA4E,sBAE5F;AAAA,YACC,YACC,cACE;AAAA,cAAC;AAAA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBAET;AAAA;AAAA,YACH,IAEA,oBAAC,UAAK,WAAU,uFACb,mBACH;AAAA,aAGN;AAAA,WACF;AAAA;AAAA;AAAA,EACF,GACF,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/medialane-collection-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { ImageIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport interface MedialaneCollectionCardProps {\n\n image?: string | null;\n\n name?: string;\n\n collection?: string;\n\n serial?: string;\n\n creator?: string;\n\n creatorHref?: string;\n className?: string;\n}\n\nexport function MedialaneCollectionCard({\n image,\n name,\n collection,\n serial,\n creator,\n creatorHref,\n className,\n}: MedialaneCollectionCardProps) {\n const displayName = name?.trim() || \"Untitled\";\n\n return (\n <div className={cn(className)}>\n <div className=\"rounded-[24px] border border-border\">\n <div\n className=\"ml-card-material relative rounded-[23px] overflow-hidden text-brand-navy dark:text-white\"\n >\n\n <div className=\"p-2.5 pb-0\">\n <div className=\"relative aspect-square w-full overflow-hidden rounded-[16px] ring-1 ring-black/10 dark:ring-white/10 bg-muted\">\n {image ? (\n\n <img src={image} alt={displayName} loading=\"lazy\" decoding=\"async\" className=\"h-full w-full object-cover\" />\n ) : (\n <div className=\"h-full w-full flex items-center justify-center\">\n <ImageIcon className=\"h-8 w-8 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"relative px-4 pt-3 pb-4\">\n <div className=\"flex items-start gap-2\">\n <p className=\"min-w-0 flex-1 text-[18px] font-bold leading-snug truncate\">\n {displayName}\n </p>\n {serial && (\n <span className=\"mt-0.5 shrink-0 rounded-full bg-black/5 dark:bg-white/10 px-2 py-0.5 text-2xs font-semibold text-brand-navy/80 dark:text-white/80 tabular-nums\">\n {serial}\n </span>\n )}\n </div>\n {collection && (\n <p className=\"mt-0.5 text-[12.5px] text-brand-navy/55 dark:text-white/55 truncate\">{collection}</p>\n )}\n <div className=\"my-3 h-px bg-black/10 dark:bg-white/10\" />\n <div className=\"flex items-center gap-2\">\n <span className=\"text-2xs font-bold tracking-[0.18em] text-brand-navy/50 dark:text-white/50\">\n STARKNET\n </span>\n {creator && (\n creatorHref ? (\n <a\n href={creatorHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums hover:text-brand-navy/80 dark:hover:text-white/80 transition-colors\"\n >\n {creator}\n </a>\n ) : (\n <span className=\"ml-auto min-w-0 truncate text-2xs text-brand-navy/55 dark:text-white/55 tabular-nums\">\n {creator}\n </span>\n )\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";AA2CgB,cAUJ,YAVI;AAzChB,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AAkBZ,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiC;AAC/B,QAAM,cAAc,MAAM,KAAK,KAAK;AAEpC,SACE,oBAAC,SAAI,WAAW,GAAG,SAAS,GAC1B,8BAAC,SAAI,WAAU,uCACb;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MAGV;AAAA,4BAAC,SAAI,WAAU,cACb,8BAAC,SAAI,WAAU,iHACZ,kBAEC,oBAAC,SAAI,KAAK,OAAO,KAAK,aAAa,SAAQ,QAAO,UAAS,SAAQ,WAAU,8BAA6B,IAE1G,oBAAC,SAAI,WAAU,kDACb,8BAAC,aAAU,WAAU,oCAAmC,GAC1D,GAEJ,GACF;AAAA,QAEA,qBAAC,SAAI,WAAU,2BACb;AAAA,+BAAC,SAAI,WAAU,0BACb;AAAA,gCAAC,OAAE,WAAU,8DACV,uBACH;AAAA,YACC,UACC,oBAAC,UAAK,WAAU,kJACb,kBACH;AAAA,aAEJ;AAAA,UACC,cACC,oBAAC,OAAE,WAAU,uEAAuE,sBAAW;AAAA,UAEjG,oBAAC,SAAI,WAAU,0CAAyC;AAAA,UACxD,qBAAC,SAAI,WAAU,2BACb;AAAA,gCAAC,UAAK,WAAU,8EAA6E,sBAE7F;AAAA,YACC,YACC,cACE;AAAA,cAAC;AAAA;AAAA,gBACC,MAAM;AAAA,gBACN,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBAET;AAAA;AAAA,YACH,IAEA,oBAAC,UAAK,WAAU,wFACb,mBACH;AAAA,aAGN;AAAA,WACF;AAAA;AAAA;AAAA,EACF,GACF,GACF;AAEJ;","names":[]}
@@ -10,7 +10,7 @@ declare const SheetClose: React.ForwardRefExoticComponent<SheetPrimitive.DialogC
10
10
  declare const SheetPortal: React.FC<SheetPrimitive.DialogPortalProps>;
11
11
  declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  declare const sheetVariants: (props?: ({
13
- side?: "left" | "right" | "bottom" | "top" | null | undefined;
13
+ side?: "bottom" | "left" | "right" | "top" | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string;
15
15
  interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
16
16
  overlayClassName?: string;
@@ -10,7 +10,7 @@ declare const SheetClose: React.ForwardRefExoticComponent<SheetPrimitive.DialogC
10
10
  declare const SheetPortal: React.FC<SheetPrimitive.DialogPortalProps>;
11
11
  declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  declare const sheetVariants: (props?: ({
13
- side?: "left" | "right" | "bottom" | "top" | null | undefined;
13
+ side?: "bottom" | "left" | "right" | "top" | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string;
15
15
  interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
16
16
  overlayClassName?: string;
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(self_fund_consent_dialog_exports);
26
26
  var import_jsx_runtime = require("react/jsx-runtime");
27
27
  var import_react = require("react");
28
28
  var import_sdk = require("@medialane/sdk");
29
- var import_action_dialog = require("../action-dialog.js");
29
+ var import_dialog = require("../dialog.js");
30
30
  function amountLabel(raw, unit) {
31
31
  const [whole, fraction = ""] = (0, import_sdk.formatAmount)(raw.toString(), 18).split(".");
32
32
  const trimmed = fraction.slice(0, 6).replace(/0+$/, "");
@@ -58,9 +58,11 @@ function SelfFundConsentDialog({ consent }) {
58
58
  const estimate = pending?.feeEstimate && pending.feeEstimate !== "loading" ? pending.feeEstimate : null;
59
59
  const balanceLabel = estimate?.balanceRaw != null ? amountLabel(estimate.balanceRaw, estimate.unit) : null;
60
60
  const notEnough = estimate?.balanceRaw != null && estimate.balanceRaw < estimate.feeRaw;
61
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_action_dialog.ActionDialog, { open: pending !== null, onClose: () => respond(false), width: 420, shadow: false, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "p-6 space-y-4", children: [
62
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-lg font-semibold", children: "Network fee needed" }),
63
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-muted-foreground", children: "Medialane usually covers network fees for you, but can't right now. You can pay this one from your wallet, or try again later." }),
61
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dialog.Dialog, { open: pending !== null, onOpenChange: (next) => {
62
+ if (!next) respond(false);
63
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dialog.DialogContent, { className: "sm:max-w-md", children: [
64
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dialog.DialogTitle, { children: "Network fee needed" }),
65
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dialog.DialogDescription, { children: "Medialane usually covers network fees for you, but can't right now. You can pay this one from your wallet, or try again later." }),
64
66
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "rounded-lg bg-muted px-4 py-3 flex items-center justify-between", children: [
65
67
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-sm text-muted-foreground", children: "Network fee" }),
66
68
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-sm font-semibold", children: label ? `\u2248 ${label}` : "Estimating\u2026" })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/wallet/self-fund-consent-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { formatAmount } from \"@medialane/sdk\";\nimport type { SelfFundConsent, SelfFundFeeEstimate } from \"@medialane/sdk/starknet\";\nimport { ActionDialog } from \"../action-dialog.js\";\n\ninterface PendingRequest {\n resolve: (consented: boolean) => void;\n feeEstimate: SelfFundFeeEstimate | null | \"loading\";\n}\n\nfunction amountLabel(raw: bigint, unit: string): string {\n const [whole, fraction = \"\"] = formatAmount(raw.toString(), 18).split(\".\");\n const trimmed = fraction.slice(0, 6).replace(/0+$/, \"\");\n const amount = trimmed ? `${whole}.${trimmed}` : whole;\n return `${amount} ${unit === \"FRI\" ? \"STRK\" : \"ETH\"}`;\n}\n\nexport function feeLabelFor(estimate: SelfFundFeeEstimate | null | \"loading\"): string | null {\n if (estimate === \"loading\" || estimate == null) return null;\n return amountLabel(estimate.feeRaw, estimate.unit);\n}\n\nexport function SelfFundConsentDialog({ consent }: { consent: SelfFundConsent }) {\n const [pending, setPending] = useState<PendingRequest | null>(null);\n\n useEffect(() => {\n consent.registerHandler((feeEstimatePromise) => {\n return new Promise<boolean>((resolve) => {\n setPending({ resolve, feeEstimate: \"loading\" });\n void feeEstimatePromise.then((feeEstimate) => {\n setPending((current) => (current ? { ...current, feeEstimate } : current));\n });\n });\n });\n return () => consent.registerHandler(null);\n }, [consent]);\n\n const respond = (consented: boolean) => {\n pending?.resolve(consented);\n setPending(null);\n };\n\n const label = feeLabelFor(pending?.feeEstimate ?? null);\n const estimate = pending?.feeEstimate && pending.feeEstimate !== \"loading\" ? pending.feeEstimate : null;\n const balanceLabel = estimate?.balanceRaw != null ? amountLabel(estimate.balanceRaw, estimate.unit) : null;\n const notEnough = estimate?.balanceRaw != null && estimate.balanceRaw < estimate.feeRaw;\n\n return (\n <ActionDialog open={pending !== null} onClose={() => respond(false)} width={420} shadow={false}>\n <div className=\"p-6 space-y-4\">\n <h2 className=\"text-lg font-semibold\">Network fee needed</h2>\n <p className=\"text-sm text-muted-foreground\">\n Medialane usually covers network fees for you, but can&apos;t right now. You can pay this one from your\n wallet, or try again later.\n </p>\n <div className=\"rounded-lg bg-muted px-4 py-3 flex items-center justify-between\">\n <span className=\"text-sm text-muted-foreground\">Network fee</span>\n <span className=\"text-sm font-semibold\">{label ? `≈ ${label}` : \"Estimating…\"}</span>\n </div>\n {balanceLabel && (\n <div className=\"flex items-center justify-between px-4\">\n <span className=\"text-sm text-muted-foreground\">Your balance</span>\n <span className=\"text-sm font-semibold\">{balanceLabel}</span>\n </div>\n )}\n {notEnough && (\n <p className=\"text-sm text-destructive\">\n You don&apos;t have enough to pay this fee. Try again later, when Medialane can cover it.\n </p>\n )}\n <div className=\"flex justify-end gap-2\">\n <button\n type=\"button\"\n onClick={() => respond(false)}\n className=\"px-4 py-2 rounded-lg text-sm font-medium text-muted-foreground hover:bg-muted transition-colors\"\n >\n Try again later\n </button>\n <button\n type=\"button\"\n onClick={() => respond(true)}\n disabled={notEnough}\n className=\"px-4 py-2 rounded-lg text-sm font-medium bg-primary text-primary-foreground hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {label ? `Pay ${label}` : \"Pay from my wallet\"}\n </button>\n </div>\n </div>\n </ActionDialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoDQ;AAlDR,mBAAoC;AACpC,iBAA6B;AAE7B,2BAA6B;AAO7B,SAAS,YAAY,KAAa,MAAsB;AACtD,QAAM,CAAC,OAAO,WAAW,EAAE,QAAI,yBAAa,IAAI,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG;AACzE,QAAM,UAAU,SAAS,MAAM,GAAG,CAAC,EAAE,QAAQ,OAAO,EAAE;AACtD,QAAM,SAAS,UAAU,GAAG,KAAK,IAAI,OAAO,KAAK;AACjD,SAAO,GAAG,MAAM,IAAI,SAAS,QAAQ,SAAS,KAAK;AACrD;AAEO,SAAS,YAAY,UAAiE;AAC3F,MAAI,aAAa,aAAa,YAAY,KAAM,QAAO;AACvD,SAAO,YAAY,SAAS,QAAQ,SAAS,IAAI;AACnD;AAEO,SAAS,sBAAsB,EAAE,QAAQ,GAAiC;AAC/E,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAgC,IAAI;AAElE,8BAAU,MAAM;AACd,YAAQ,gBAAgB,CAAC,uBAAuB;AAC9C,aAAO,IAAI,QAAiB,CAAC,YAAY;AACvC,mBAAW,EAAE,SAAS,aAAa,UAAU,CAAC;AAC9C,aAAK,mBAAmB,KAAK,CAAC,gBAAgB;AAC5C,qBAAW,CAAC,YAAa,UAAU,EAAE,GAAG,SAAS,YAAY,IAAI,OAAQ;AAAA,QAC3E,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AACD,WAAO,MAAM,QAAQ,gBAAgB,IAAI;AAAA,EAC3C,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,CAAC,cAAuB;AACtC,aAAS,QAAQ,SAAS;AAC1B,eAAW,IAAI;AAAA,EACjB;AAEA,QAAM,QAAQ,YAAY,SAAS,eAAe,IAAI;AACtD,QAAM,WAAW,SAAS,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,cAAc;AACnG,QAAM,eAAe,UAAU,cAAc,OAAO,YAAY,SAAS,YAAY,SAAS,IAAI,IAAI;AACtG,QAAM,YAAY,UAAU,cAAc,QAAQ,SAAS,aAAa,SAAS;AAEjF,SACE,4CAAC,qCAAa,MAAM,YAAY,MAAM,SAAS,MAAM,QAAQ,KAAK,GAAG,OAAO,KAAK,QAAQ,OACvF,uDAAC,SAAI,WAAU,iBACb;AAAA,gDAAC,QAAG,WAAU,yBAAwB,gCAAkB;AAAA,IACxD,4CAAC,OAAE,WAAU,iCAAgC,4IAG7C;AAAA,IACA,6CAAC,SAAI,WAAU,mEACb;AAAA,kDAAC,UAAK,WAAU,iCAAgC,yBAAW;AAAA,MAC3D,4CAAC,UAAK,WAAU,yBAAyB,kBAAQ,UAAK,KAAK,KAAK,oBAAc;AAAA,OAChF;AAAA,IACC,gBACC,6CAAC,SAAI,WAAU,0CACb;AAAA,kDAAC,UAAK,WAAU,iCAAgC,0BAAY;AAAA,MAC5D,4CAAC,UAAK,WAAU,yBAAyB,wBAAa;AAAA,OACxD;AAAA,IAED,aACC,4CAAC,OAAE,WAAU,4BAA2B,kGAExC;AAAA,IAEF,6CAAC,SAAI,WAAU,0BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,KAAK;AAAA,UAC5B,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,IAAI;AAAA,UAC3B,UAAU;AAAA,UACV,WAAU;AAAA,UAET,kBAAQ,OAAO,KAAK,KAAK;AAAA;AAAA,MAC5B;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/wallet/self-fund-consent-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { formatAmount } from \"@medialane/sdk\";\nimport type { SelfFundConsent, SelfFundFeeEstimate } from \"@medialane/sdk/starknet\";\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"../dialog.js\";\n\ninterface PendingRequest {\n resolve: (consented: boolean) => void;\n feeEstimate: SelfFundFeeEstimate | null | \"loading\";\n}\n\nfunction amountLabel(raw: bigint, unit: string): string {\n const [whole, fraction = \"\"] = formatAmount(raw.toString(), 18).split(\".\");\n const trimmed = fraction.slice(0, 6).replace(/0+$/, \"\");\n const amount = trimmed ? `${whole}.${trimmed}` : whole;\n return `${amount} ${unit === \"FRI\" ? \"STRK\" : \"ETH\"}`;\n}\n\nexport function feeLabelFor(estimate: SelfFundFeeEstimate | null | \"loading\"): string | null {\n if (estimate === \"loading\" || estimate == null) return null;\n return amountLabel(estimate.feeRaw, estimate.unit);\n}\n\nexport function SelfFundConsentDialog({ consent }: { consent: SelfFundConsent }) {\n const [pending, setPending] = useState<PendingRequest | null>(null);\n\n useEffect(() => {\n consent.registerHandler((feeEstimatePromise) => {\n return new Promise<boolean>((resolve) => {\n setPending({ resolve, feeEstimate: \"loading\" });\n void feeEstimatePromise.then((feeEstimate) => {\n setPending((current) => (current ? { ...current, feeEstimate } : current));\n });\n });\n });\n return () => consent.registerHandler(null);\n }, [consent]);\n\n const respond = (consented: boolean) => {\n pending?.resolve(consented);\n setPending(null);\n };\n\n const label = feeLabelFor(pending?.feeEstimate ?? null);\n const estimate = pending?.feeEstimate && pending.feeEstimate !== \"loading\" ? pending.feeEstimate : null;\n const balanceLabel = estimate?.balanceRaw != null ? amountLabel(estimate.balanceRaw, estimate.unit) : null;\n const notEnough = estimate?.balanceRaw != null && estimate.balanceRaw < estimate.feeRaw;\n\n return (\n <Dialog open={pending !== null} onOpenChange={(next) => { if (!next) respond(false); }}>\n <DialogContent className=\"sm:max-w-md\">\n <DialogTitle>Network fee needed</DialogTitle>\n <DialogDescription>\n Medialane usually covers network fees for you, but can&apos;t right now. You can pay this one from your\n wallet, or try again later.\n </DialogDescription>\n <div className=\"rounded-lg bg-muted px-4 py-3 flex items-center justify-between\">\n <span className=\"text-sm text-muted-foreground\">Network fee</span>\n <span className=\"text-sm font-semibold\">{label ? `≈ ${label}` : \"Estimating…\"}</span>\n </div>\n {balanceLabel && (\n <div className=\"flex items-center justify-between px-4\">\n <span className=\"text-sm text-muted-foreground\">Your balance</span>\n <span className=\"text-sm font-semibold\">{balanceLabel}</span>\n </div>\n )}\n {notEnough && (\n <p className=\"text-sm text-destructive\">\n You don&apos;t have enough to pay this fee. Try again later, when Medialane can cover it.\n </p>\n )}\n <div className=\"flex justify-end gap-2\">\n <button\n type=\"button\"\n onClick={() => respond(false)}\n className=\"px-4 py-2 rounded-lg text-sm font-medium text-muted-foreground hover:bg-muted transition-colors\"\n >\n Try again later\n </button>\n <button\n type=\"button\"\n onClick={() => respond(true)}\n disabled={notEnough}\n className=\"px-4 py-2 rounded-lg text-sm font-medium bg-primary text-primary-foreground hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {label ? `Pay ${label}` : \"Pay from my wallet\"}\n </button>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoDQ;AAlDR,mBAAoC;AACpC,iBAA6B;AAE7B,oBAAsE;AAOtE,SAAS,YAAY,KAAa,MAAsB;AACtD,QAAM,CAAC,OAAO,WAAW,EAAE,QAAI,yBAAa,IAAI,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG;AACzE,QAAM,UAAU,SAAS,MAAM,GAAG,CAAC,EAAE,QAAQ,OAAO,EAAE;AACtD,QAAM,SAAS,UAAU,GAAG,KAAK,IAAI,OAAO,KAAK;AACjD,SAAO,GAAG,MAAM,IAAI,SAAS,QAAQ,SAAS,KAAK;AACrD;AAEO,SAAS,YAAY,UAAiE;AAC3F,MAAI,aAAa,aAAa,YAAY,KAAM,QAAO;AACvD,SAAO,YAAY,SAAS,QAAQ,SAAS,IAAI;AACnD;AAEO,SAAS,sBAAsB,EAAE,QAAQ,GAAiC;AAC/E,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAgC,IAAI;AAElE,8BAAU,MAAM;AACd,YAAQ,gBAAgB,CAAC,uBAAuB;AAC9C,aAAO,IAAI,QAAiB,CAAC,YAAY;AACvC,mBAAW,EAAE,SAAS,aAAa,UAAU,CAAC;AAC9C,aAAK,mBAAmB,KAAK,CAAC,gBAAgB;AAC5C,qBAAW,CAAC,YAAa,UAAU,EAAE,GAAG,SAAS,YAAY,IAAI,OAAQ;AAAA,QAC3E,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AACD,WAAO,MAAM,QAAQ,gBAAgB,IAAI;AAAA,EAC3C,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,CAAC,cAAuB;AACtC,aAAS,QAAQ,SAAS;AAC1B,eAAW,IAAI;AAAA,EACjB;AAEA,QAAM,QAAQ,YAAY,SAAS,eAAe,IAAI;AACtD,QAAM,WAAW,SAAS,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,cAAc;AACnG,QAAM,eAAe,UAAU,cAAc,OAAO,YAAY,SAAS,YAAY,SAAS,IAAI,IAAI;AACtG,QAAM,YAAY,UAAU,cAAc,QAAQ,SAAS,aAAa,SAAS;AAEjF,SACE,4CAAC,wBAAO,MAAM,YAAY,MAAM,cAAc,CAAC,SAAS;AAAE,QAAI,CAAC,KAAM,SAAQ,KAAK;AAAA,EAAG,GACnF,uDAAC,+BAAc,WAAU,eACvB;AAAA,gDAAC,6BAAY,gCAAkB;AAAA,IAC/B,4CAAC,mCAAkB,4IAGnB;AAAA,IACA,6CAAC,SAAI,WAAU,mEACb;AAAA,kDAAC,UAAK,WAAU,iCAAgC,yBAAW;AAAA,MAC3D,4CAAC,UAAK,WAAU,yBAAyB,kBAAQ,UAAK,KAAK,KAAK,oBAAc;AAAA,OAChF;AAAA,IACC,gBACC,6CAAC,SAAI,WAAU,0CACb;AAAA,kDAAC,UAAK,WAAU,iCAAgC,0BAAY;AAAA,MAC5D,4CAAC,UAAK,WAAU,yBAAyB,wBAAa;AAAA,OACxD;AAAA,IAED,aACC,4CAAC,OAAE,WAAU,4BAA2B,kGAExC;AAAA,IAEF,6CAAC,SAAI,WAAU,0BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,KAAK;AAAA,UAC5B,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,IAAI;AAAA,UAC3B,UAAU;AAAA,UACV,WAAU;AAAA,UAET,kBAAQ,OAAO,KAAK,KAAK;AAAA;AAAA,MAC5B;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useState } from "react";
4
4
  import { formatAmount } from "@medialane/sdk";
5
- import { ActionDialog } from "../action-dialog.js";
5
+ import { Dialog, DialogContent, DialogDescription, DialogTitle } from "../dialog.js";
6
6
  function amountLabel(raw, unit) {
7
7
  const [whole, fraction = ""] = formatAmount(raw.toString(), 18).split(".");
8
8
  const trimmed = fraction.slice(0, 6).replace(/0+$/, "");
@@ -34,9 +34,11 @@ function SelfFundConsentDialog({ consent }) {
34
34
  const estimate = pending?.feeEstimate && pending.feeEstimate !== "loading" ? pending.feeEstimate : null;
35
35
  const balanceLabel = estimate?.balanceRaw != null ? amountLabel(estimate.balanceRaw, estimate.unit) : null;
36
36
  const notEnough = estimate?.balanceRaw != null && estimate.balanceRaw < estimate.feeRaw;
37
- return /* @__PURE__ */ jsx(ActionDialog, { open: pending !== null, onClose: () => respond(false), width: 420, shadow: false, children: /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-4", children: [
38
- /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold", children: "Network fee needed" }),
39
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Medialane usually covers network fees for you, but can't right now. You can pay this one from your wallet, or try again later." }),
37
+ return /* @__PURE__ */ jsx(Dialog, { open: pending !== null, onOpenChange: (next) => {
38
+ if (!next) respond(false);
39
+ }, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
40
+ /* @__PURE__ */ jsx(DialogTitle, { children: "Network fee needed" }),
41
+ /* @__PURE__ */ jsx(DialogDescription, { children: "Medialane usually covers network fees for you, but can't right now. You can pay this one from your wallet, or try again later." }),
40
42
  /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-muted px-4 py-3 flex items-center justify-between", children: [
41
43
  /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Network fee" }),
42
44
  /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold", children: label ? `\u2248 ${label}` : "Estimating\u2026" })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/wallet/self-fund-consent-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { formatAmount } from \"@medialane/sdk\";\nimport type { SelfFundConsent, SelfFundFeeEstimate } from \"@medialane/sdk/starknet\";\nimport { ActionDialog } from \"../action-dialog.js\";\n\ninterface PendingRequest {\n resolve: (consented: boolean) => void;\n feeEstimate: SelfFundFeeEstimate | null | \"loading\";\n}\n\nfunction amountLabel(raw: bigint, unit: string): string {\n const [whole, fraction = \"\"] = formatAmount(raw.toString(), 18).split(\".\");\n const trimmed = fraction.slice(0, 6).replace(/0+$/, \"\");\n const amount = trimmed ? `${whole}.${trimmed}` : whole;\n return `${amount} ${unit === \"FRI\" ? \"STRK\" : \"ETH\"}`;\n}\n\nexport function feeLabelFor(estimate: SelfFundFeeEstimate | null | \"loading\"): string | null {\n if (estimate === \"loading\" || estimate == null) return null;\n return amountLabel(estimate.feeRaw, estimate.unit);\n}\n\nexport function SelfFundConsentDialog({ consent }: { consent: SelfFundConsent }) {\n const [pending, setPending] = useState<PendingRequest | null>(null);\n\n useEffect(() => {\n consent.registerHandler((feeEstimatePromise) => {\n return new Promise<boolean>((resolve) => {\n setPending({ resolve, feeEstimate: \"loading\" });\n void feeEstimatePromise.then((feeEstimate) => {\n setPending((current) => (current ? { ...current, feeEstimate } : current));\n });\n });\n });\n return () => consent.registerHandler(null);\n }, [consent]);\n\n const respond = (consented: boolean) => {\n pending?.resolve(consented);\n setPending(null);\n };\n\n const label = feeLabelFor(pending?.feeEstimate ?? null);\n const estimate = pending?.feeEstimate && pending.feeEstimate !== \"loading\" ? pending.feeEstimate : null;\n const balanceLabel = estimate?.balanceRaw != null ? amountLabel(estimate.balanceRaw, estimate.unit) : null;\n const notEnough = estimate?.balanceRaw != null && estimate.balanceRaw < estimate.feeRaw;\n\n return (\n <ActionDialog open={pending !== null} onClose={() => respond(false)} width={420} shadow={false}>\n <div className=\"p-6 space-y-4\">\n <h2 className=\"text-lg font-semibold\">Network fee needed</h2>\n <p className=\"text-sm text-muted-foreground\">\n Medialane usually covers network fees for you, but can&apos;t right now. You can pay this one from your\n wallet, or try again later.\n </p>\n <div className=\"rounded-lg bg-muted px-4 py-3 flex items-center justify-between\">\n <span className=\"text-sm text-muted-foreground\">Network fee</span>\n <span className=\"text-sm font-semibold\">{label ? `≈ ${label}` : \"Estimating…\"}</span>\n </div>\n {balanceLabel && (\n <div className=\"flex items-center justify-between px-4\">\n <span className=\"text-sm text-muted-foreground\">Your balance</span>\n <span className=\"text-sm font-semibold\">{balanceLabel}</span>\n </div>\n )}\n {notEnough && (\n <p className=\"text-sm text-destructive\">\n You don&apos;t have enough to pay this fee. Try again later, when Medialane can cover it.\n </p>\n )}\n <div className=\"flex justify-end gap-2\">\n <button\n type=\"button\"\n onClick={() => respond(false)}\n className=\"px-4 py-2 rounded-lg text-sm font-medium text-muted-foreground hover:bg-muted transition-colors\"\n >\n Try again later\n </button>\n <button\n type=\"button\"\n onClick={() => respond(true)}\n disabled={notEnough}\n className=\"px-4 py-2 rounded-lg text-sm font-medium bg-primary text-primary-foreground hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {label ? `Pay ${label}` : \"Pay from my wallet\"}\n </button>\n </div>\n </div>\n </ActionDialog>\n );\n}\n"],"mappings":";AAoDQ,cAKA,YALA;AAlDR,SAAS,WAAW,gBAAgB;AACpC,SAAS,oBAAoB;AAE7B,SAAS,oBAAoB;AAO7B,SAAS,YAAY,KAAa,MAAsB;AACtD,QAAM,CAAC,OAAO,WAAW,EAAE,IAAI,aAAa,IAAI,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG;AACzE,QAAM,UAAU,SAAS,MAAM,GAAG,CAAC,EAAE,QAAQ,OAAO,EAAE;AACtD,QAAM,SAAS,UAAU,GAAG,KAAK,IAAI,OAAO,KAAK;AACjD,SAAO,GAAG,MAAM,IAAI,SAAS,QAAQ,SAAS,KAAK;AACrD;AAEO,SAAS,YAAY,UAAiE;AAC3F,MAAI,aAAa,aAAa,YAAY,KAAM,QAAO;AACvD,SAAO,YAAY,SAAS,QAAQ,SAAS,IAAI;AACnD;AAEO,SAAS,sBAAsB,EAAE,QAAQ,GAAiC;AAC/E,QAAM,CAAC,SAAS,UAAU,IAAI,SAAgC,IAAI;AAElE,YAAU,MAAM;AACd,YAAQ,gBAAgB,CAAC,uBAAuB;AAC9C,aAAO,IAAI,QAAiB,CAAC,YAAY;AACvC,mBAAW,EAAE,SAAS,aAAa,UAAU,CAAC;AAC9C,aAAK,mBAAmB,KAAK,CAAC,gBAAgB;AAC5C,qBAAW,CAAC,YAAa,UAAU,EAAE,GAAG,SAAS,YAAY,IAAI,OAAQ;AAAA,QAC3E,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AACD,WAAO,MAAM,QAAQ,gBAAgB,IAAI;AAAA,EAC3C,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,CAAC,cAAuB;AACtC,aAAS,QAAQ,SAAS;AAC1B,eAAW,IAAI;AAAA,EACjB;AAEA,QAAM,QAAQ,YAAY,SAAS,eAAe,IAAI;AACtD,QAAM,WAAW,SAAS,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,cAAc;AACnG,QAAM,eAAe,UAAU,cAAc,OAAO,YAAY,SAAS,YAAY,SAAS,IAAI,IAAI;AACtG,QAAM,YAAY,UAAU,cAAc,QAAQ,SAAS,aAAa,SAAS;AAEjF,SACE,oBAAC,gBAAa,MAAM,YAAY,MAAM,SAAS,MAAM,QAAQ,KAAK,GAAG,OAAO,KAAK,QAAQ,OACvF,+BAAC,SAAI,WAAU,iBACb;AAAA,wBAAC,QAAG,WAAU,yBAAwB,gCAAkB;AAAA,IACxD,oBAAC,OAAE,WAAU,iCAAgC,4IAG7C;AAAA,IACA,qBAAC,SAAI,WAAU,mEACb;AAAA,0BAAC,UAAK,WAAU,iCAAgC,yBAAW;AAAA,MAC3D,oBAAC,UAAK,WAAU,yBAAyB,kBAAQ,UAAK,KAAK,KAAK,oBAAc;AAAA,OAChF;AAAA,IACC,gBACC,qBAAC,SAAI,WAAU,0CACb;AAAA,0BAAC,UAAK,WAAU,iCAAgC,0BAAY;AAAA,MAC5D,oBAAC,UAAK,WAAU,yBAAyB,wBAAa;AAAA,OACxD;AAAA,IAED,aACC,oBAAC,OAAE,WAAU,4BAA2B,kGAExC;AAAA,IAEF,qBAAC,SAAI,WAAU,0BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,KAAK;AAAA,UAC5B,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,IAAI;AAAA,UAC3B,UAAU;AAAA,UACV,WAAU;AAAA,UAET,kBAAQ,OAAO,KAAK,KAAK;AAAA;AAAA,MAC5B;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/wallet/self-fund-consent-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { formatAmount } from \"@medialane/sdk\";\nimport type { SelfFundConsent, SelfFundFeeEstimate } from \"@medialane/sdk/starknet\";\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"../dialog.js\";\n\ninterface PendingRequest {\n resolve: (consented: boolean) => void;\n feeEstimate: SelfFundFeeEstimate | null | \"loading\";\n}\n\nfunction amountLabel(raw: bigint, unit: string): string {\n const [whole, fraction = \"\"] = formatAmount(raw.toString(), 18).split(\".\");\n const trimmed = fraction.slice(0, 6).replace(/0+$/, \"\");\n const amount = trimmed ? `${whole}.${trimmed}` : whole;\n return `${amount} ${unit === \"FRI\" ? \"STRK\" : \"ETH\"}`;\n}\n\nexport function feeLabelFor(estimate: SelfFundFeeEstimate | null | \"loading\"): string | null {\n if (estimate === \"loading\" || estimate == null) return null;\n return amountLabel(estimate.feeRaw, estimate.unit);\n}\n\nexport function SelfFundConsentDialog({ consent }: { consent: SelfFundConsent }) {\n const [pending, setPending] = useState<PendingRequest | null>(null);\n\n useEffect(() => {\n consent.registerHandler((feeEstimatePromise) => {\n return new Promise<boolean>((resolve) => {\n setPending({ resolve, feeEstimate: \"loading\" });\n void feeEstimatePromise.then((feeEstimate) => {\n setPending((current) => (current ? { ...current, feeEstimate } : current));\n });\n });\n });\n return () => consent.registerHandler(null);\n }, [consent]);\n\n const respond = (consented: boolean) => {\n pending?.resolve(consented);\n setPending(null);\n };\n\n const label = feeLabelFor(pending?.feeEstimate ?? null);\n const estimate = pending?.feeEstimate && pending.feeEstimate !== \"loading\" ? pending.feeEstimate : null;\n const balanceLabel = estimate?.balanceRaw != null ? amountLabel(estimate.balanceRaw, estimate.unit) : null;\n const notEnough = estimate?.balanceRaw != null && estimate.balanceRaw < estimate.feeRaw;\n\n return (\n <Dialog open={pending !== null} onOpenChange={(next) => { if (!next) respond(false); }}>\n <DialogContent className=\"sm:max-w-md\">\n <DialogTitle>Network fee needed</DialogTitle>\n <DialogDescription>\n Medialane usually covers network fees for you, but can&apos;t right now. You can pay this one from your\n wallet, or try again later.\n </DialogDescription>\n <div className=\"rounded-lg bg-muted px-4 py-3 flex items-center justify-between\">\n <span className=\"text-sm text-muted-foreground\">Network fee</span>\n <span className=\"text-sm font-semibold\">{label ? `≈ ${label}` : \"Estimating…\"}</span>\n </div>\n {balanceLabel && (\n <div className=\"flex items-center justify-between px-4\">\n <span className=\"text-sm text-muted-foreground\">Your balance</span>\n <span className=\"text-sm font-semibold\">{balanceLabel}</span>\n </div>\n )}\n {notEnough && (\n <p className=\"text-sm text-destructive\">\n You don&apos;t have enough to pay this fee. Try again later, when Medialane can cover it.\n </p>\n )}\n <div className=\"flex justify-end gap-2\">\n <button\n type=\"button\"\n onClick={() => respond(false)}\n className=\"px-4 py-2 rounded-lg text-sm font-medium text-muted-foreground hover:bg-muted transition-colors\"\n >\n Try again later\n </button>\n <button\n type=\"button\"\n onClick={() => respond(true)}\n disabled={notEnough}\n className=\"px-4 py-2 rounded-lg text-sm font-medium bg-primary text-primary-foreground hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {label ? `Pay ${label}` : \"Pay from my wallet\"}\n </button>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";AAoDQ,cAKA,YALA;AAlDR,SAAS,WAAW,gBAAgB;AACpC,SAAS,oBAAoB;AAE7B,SAAS,QAAQ,eAAe,mBAAmB,mBAAmB;AAOtE,SAAS,YAAY,KAAa,MAAsB;AACtD,QAAM,CAAC,OAAO,WAAW,EAAE,IAAI,aAAa,IAAI,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG;AACzE,QAAM,UAAU,SAAS,MAAM,GAAG,CAAC,EAAE,QAAQ,OAAO,EAAE;AACtD,QAAM,SAAS,UAAU,GAAG,KAAK,IAAI,OAAO,KAAK;AACjD,SAAO,GAAG,MAAM,IAAI,SAAS,QAAQ,SAAS,KAAK;AACrD;AAEO,SAAS,YAAY,UAAiE;AAC3F,MAAI,aAAa,aAAa,YAAY,KAAM,QAAO;AACvD,SAAO,YAAY,SAAS,QAAQ,SAAS,IAAI;AACnD;AAEO,SAAS,sBAAsB,EAAE,QAAQ,GAAiC;AAC/E,QAAM,CAAC,SAAS,UAAU,IAAI,SAAgC,IAAI;AAElE,YAAU,MAAM;AACd,YAAQ,gBAAgB,CAAC,uBAAuB;AAC9C,aAAO,IAAI,QAAiB,CAAC,YAAY;AACvC,mBAAW,EAAE,SAAS,aAAa,UAAU,CAAC;AAC9C,aAAK,mBAAmB,KAAK,CAAC,gBAAgB;AAC5C,qBAAW,CAAC,YAAa,UAAU,EAAE,GAAG,SAAS,YAAY,IAAI,OAAQ;AAAA,QAC3E,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AACD,WAAO,MAAM,QAAQ,gBAAgB,IAAI;AAAA,EAC3C,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,CAAC,cAAuB;AACtC,aAAS,QAAQ,SAAS;AAC1B,eAAW,IAAI;AAAA,EACjB;AAEA,QAAM,QAAQ,YAAY,SAAS,eAAe,IAAI;AACtD,QAAM,WAAW,SAAS,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,cAAc;AACnG,QAAM,eAAe,UAAU,cAAc,OAAO,YAAY,SAAS,YAAY,SAAS,IAAI,IAAI;AACtG,QAAM,YAAY,UAAU,cAAc,QAAQ,SAAS,aAAa,SAAS;AAEjF,SACE,oBAAC,UAAO,MAAM,YAAY,MAAM,cAAc,CAAC,SAAS;AAAE,QAAI,CAAC,KAAM,SAAQ,KAAK;AAAA,EAAG,GACnF,+BAAC,iBAAc,WAAU,eACvB;AAAA,wBAAC,eAAY,gCAAkB;AAAA,IAC/B,oBAAC,qBAAkB,4IAGnB;AAAA,IACA,qBAAC,SAAI,WAAU,mEACb;AAAA,0BAAC,UAAK,WAAU,iCAAgC,yBAAW;AAAA,MAC3D,oBAAC,UAAK,WAAU,yBAAyB,kBAAQ,UAAK,KAAK,KAAK,oBAAc;AAAA,OAChF;AAAA,IACC,gBACC,qBAAC,SAAI,WAAU,0CACb;AAAA,0BAAC,UAAK,WAAU,iCAAgC,0BAAY;AAAA,MAC5D,oBAAC,UAAK,WAAU,yBAAyB,wBAAa;AAAA,OACxD;AAAA,IAED,aACC,oBAAC,OAAE,WAAU,4BAA2B,kGAExC;AAAA,IAEF,qBAAC,SAAI,WAAU,0BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,KAAK;AAAA,UAC5B,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,QAAQ,IAAI;AAAA,UAC3B,UAAU;AAAA,UACV,WAAU;AAAA,UAET,kBAAQ,OAAO,KAAK,KAAK;AAAA;AAAA,MAC5B;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
@@ -18,7 +18,13 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var brand_exports = {};
20
20
  __export(brand_exports, {
21
- BRAND: () => BRAND
21
+ ACTION_FOREGROUNDS: () => ACTION_FOREGROUNDS,
22
+ ACTION_GRADIENTS: () => ACTION_GRADIENTS,
23
+ BRAND: () => BRAND,
24
+ BRAND_COLOR: () => BRAND_COLOR,
25
+ BRAND_GRADIENT: () => BRAND_GRADIENT,
26
+ TONE_FOREGROUNDS: () => TONE_FOREGROUNDS,
27
+ TONE_GRADIENTS: () => TONE_GRADIENTS
22
28
  });
23
29
  module.exports = __toCommonJS(brand_exports);
24
30
  const BRAND = {
@@ -62,8 +68,54 @@ const BRAND = {
62
68
  to: "to-brand-navy/10"
63
69
  }
64
70
  };
71
+ const token = (name) => `hsl(var(--${name}))`;
72
+ const BRAND_COLOR = {
73
+ blue: token("brand-blue"),
74
+ purple: token("brand-purple"),
75
+ rose: token("brand-rose"),
76
+ orange: token("brand-orange"),
77
+ maeve: token("brand-maeve"),
78
+ navy: token("brand-navy"),
79
+ red: token("destructive")
80
+ };
81
+ const loop = (a, b) => [BRAND_COLOR[a], BRAND_COLOR[b], BRAND_COLOR[a]];
82
+ const ACTION_GRADIENTS = {
83
+ buy: loop("blue", "purple"),
84
+ submit: loop("maeve", "purple"),
85
+ offer: loop("rose", "orange"),
86
+ remix: loop("purple", "rose"),
87
+ license: loop("blue", "purple")
88
+ };
89
+ const ACTION_FOREGROUNDS = {
90
+ buy: BRAND_COLOR.blue,
91
+ submit: BRAND_COLOR.purple,
92
+ offer: BRAND_COLOR.orange,
93
+ remix: BRAND_COLOR.purple,
94
+ license: BRAND_COLOR.blue
95
+ };
96
+ const TONE_GRADIENTS = {
97
+ blue: loop("blue", "purple"),
98
+ purple: loop("purple", "rose"),
99
+ orange: loop("orange", "rose"),
100
+ red: loop("red", "rose"),
101
+ rose: loop("rose", "orange")
102
+ };
103
+ const TONE_FOREGROUNDS = {
104
+ blue: BRAND_COLOR.blue,
105
+ purple: BRAND_COLOR.purple,
106
+ orange: BRAND_COLOR.orange,
107
+ red: BRAND_COLOR.red,
108
+ rose: BRAND_COLOR.rose
109
+ };
110
+ const BRAND_GRADIENT = `linear-gradient(115deg, ${[BRAND_COLOR.blue, BRAND_COLOR.purple, BRAND_COLOR.rose, BRAND_COLOR.orange, BRAND_COLOR.blue].join(", ")})`;
65
111
  // Annotate the CommonJS export names for ESM import in node:
66
112
  0 && (module.exports = {
67
- BRAND
113
+ ACTION_FOREGROUNDS,
114
+ ACTION_GRADIENTS,
115
+ BRAND,
116
+ BRAND_COLOR,
117
+ BRAND_GRADIENT,
118
+ TONE_FOREGROUNDS,
119
+ TONE_GRADIENTS
68
120
  });
69
121
  //# sourceMappingURL=brand.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/data/brand.ts"],"sourcesContent":["\nexport const BRAND = {\n blue: {\n text: \"text-brand-blue\",\n bg: \"bg-brand-blue/10\",\n bgSolid: \"bg-brand-blue/15\",\n from: \"from-brand-blue/20\",\n to: \"to-brand-blue/20\",\n },\n purple: {\n text: \"text-brand-purple\",\n bg: \"bg-brand-purple/10\",\n bgSolid: \"bg-brand-purple/15\",\n from: \"from-brand-purple/20\",\n to: \"to-brand-purple/20\",\n },\n rose: {\n text: \"text-brand-rose\",\n bg: \"bg-brand-rose/10\",\n bgSolid: \"bg-brand-rose/15\",\n from: \"from-brand-rose/20\",\n to: \"to-brand-rose/20\",\n },\n orange: {\n text: \"text-brand-orange\",\n bg: \"bg-brand-orange/10\",\n bgSolid: \"bg-brand-orange/15\",\n from: \"from-brand-orange/20\",\n to: \"to-brand-orange/20\",\n },\n maeve: {\n text: \"text-brand-maeve\",\n bg: \"bg-brand-maeve/10\",\n bgSolid: \"bg-brand-maeve/15\",\n },\n navy: {\n text: \"text-brand-navy\",\n bg: \"bg-brand-navy/10\",\n from: \"from-brand-navy/10\",\n to: \"to-brand-navy/10\",\n },\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,MAAM,QAAQ;AAAA,EACnB,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,IACL,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/data/brand.ts"],"sourcesContent":["\nexport const BRAND = {\n blue: {\n text: \"text-brand-blue\",\n bg: \"bg-brand-blue/10\",\n bgSolid: \"bg-brand-blue/15\",\n from: \"from-brand-blue/20\",\n to: \"to-brand-blue/20\",\n },\n purple: {\n text: \"text-brand-purple\",\n bg: \"bg-brand-purple/10\",\n bgSolid: \"bg-brand-purple/15\",\n from: \"from-brand-purple/20\",\n to: \"to-brand-purple/20\",\n },\n rose: {\n text: \"text-brand-rose\",\n bg: \"bg-brand-rose/10\",\n bgSolid: \"bg-brand-rose/15\",\n from: \"from-brand-rose/20\",\n to: \"to-brand-rose/20\",\n },\n orange: {\n text: \"text-brand-orange\",\n bg: \"bg-brand-orange/10\",\n bgSolid: \"bg-brand-orange/15\",\n from: \"from-brand-orange/20\",\n to: \"to-brand-orange/20\",\n },\n maeve: {\n text: \"text-brand-maeve\",\n bg: \"bg-brand-maeve/10\",\n bgSolid: \"bg-brand-maeve/15\",\n },\n navy: {\n text: \"text-brand-navy\",\n bg: \"bg-brand-navy/10\",\n from: \"from-brand-navy/10\",\n to: \"to-brand-navy/10\",\n },\n} as const;\n\nconst token = (name: string) => `hsl(var(--${name}))`;\n\nexport const BRAND_COLOR = {\n blue: token(\"brand-blue\"),\n purple: token(\"brand-purple\"),\n rose: token(\"brand-rose\"),\n orange: token(\"brand-orange\"),\n maeve: token(\"brand-maeve\"),\n navy: token(\"brand-navy\"),\n red: token(\"destructive\"),\n} as const;\n\nexport type BrandColorName = keyof typeof BRAND_COLOR;\n\nconst loop = (a: BrandColorName, b: BrandColorName): [string, string, string] => [BRAND_COLOR[a], BRAND_COLOR[b], BRAND_COLOR[a]];\n\nexport const ACTION_GRADIENTS: Record<string, [string, string, string]> = {\n buy: loop(\"blue\", \"purple\"),\n submit: loop(\"maeve\", \"purple\"),\n offer: loop(\"rose\", \"orange\"),\n remix: loop(\"purple\", \"rose\"),\n license: loop(\"blue\", \"purple\"),\n};\n\nexport const ACTION_FOREGROUNDS: Record<string, string> = {\n buy: BRAND_COLOR.blue,\n submit: BRAND_COLOR.purple,\n offer: BRAND_COLOR.orange,\n remix: BRAND_COLOR.purple,\n license: BRAND_COLOR.blue,\n};\n\nexport const TONE_GRADIENTS: Record<string, [string, string, string]> = {\n blue: loop(\"blue\", \"purple\"),\n purple: loop(\"purple\", \"rose\"),\n orange: loop(\"orange\", \"rose\"),\n red: loop(\"red\", \"rose\"),\n rose: loop(\"rose\", \"orange\"),\n};\n\nexport const TONE_FOREGROUNDS: Record<string, string> = {\n blue: BRAND_COLOR.blue,\n purple: BRAND_COLOR.purple,\n orange: BRAND_COLOR.orange,\n red: BRAND_COLOR.red,\n rose: BRAND_COLOR.rose,\n};\n\nexport const BRAND_GRADIENT = `linear-gradient(115deg, ${[BRAND_COLOR.blue, BRAND_COLOR.purple, BRAND_COLOR.rose, BRAND_COLOR.orange, BRAND_COLOR.blue].join(\", \")})`;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,MAAM,QAAQ;AAAA,EACnB,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,IACL,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AACF;AAEA,MAAM,QAAQ,CAAC,SAAiB,aAAa,IAAI;AAE1C,MAAM,cAAc;AAAA,EACzB,MAAM,MAAM,YAAY;AAAA,EACxB,QAAQ,MAAM,cAAc;AAAA,EAC5B,MAAM,MAAM,YAAY;AAAA,EACxB,QAAQ,MAAM,cAAc;AAAA,EAC5B,OAAO,MAAM,aAAa;AAAA,EAC1B,MAAM,MAAM,YAAY;AAAA,EACxB,KAAK,MAAM,aAAa;AAC1B;AAIA,MAAM,OAAO,CAAC,GAAmB,MAAgD,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC,CAAC;AAEzH,MAAM,mBAA6D;AAAA,EACxE,KAAK,KAAK,QAAQ,QAAQ;AAAA,EAC1B,QAAQ,KAAK,SAAS,QAAQ;AAAA,EAC9B,OAAO,KAAK,QAAQ,QAAQ;AAAA,EAC5B,OAAO,KAAK,UAAU,MAAM;AAAA,EAC5B,SAAS,KAAK,QAAQ,QAAQ;AAChC;AAEO,MAAM,qBAA6C;AAAA,EACxD,KAAK,YAAY;AAAA,EACjB,QAAQ,YAAY;AAAA,EACpB,OAAO,YAAY;AAAA,EACnB,OAAO,YAAY;AAAA,EACnB,SAAS,YAAY;AACvB;AAEO,MAAM,iBAA2D;AAAA,EACtE,MAAM,KAAK,QAAQ,QAAQ;AAAA,EAC3B,QAAQ,KAAK,UAAU,MAAM;AAAA,EAC7B,QAAQ,KAAK,UAAU,MAAM;AAAA,EAC7B,KAAK,KAAK,OAAO,MAAM;AAAA,EACvB,MAAM,KAAK,QAAQ,QAAQ;AAC7B;AAEO,MAAM,mBAA2C;AAAA,EACtD,MAAM,YAAY;AAAA,EAClB,QAAQ,YAAY;AAAA,EACpB,QAAQ,YAAY;AAAA,EACpB,KAAK,YAAY;AAAA,EACjB,MAAM,YAAY;AACpB;AAEO,MAAM,iBAAiB,2BAA2B,CAAC,YAAY,MAAM,YAAY,QAAQ,YAAY,MAAM,YAAY,QAAQ,YAAY,IAAI,EAAE,KAAK,IAAI,CAAC;","names":[]}
@@ -39,5 +39,20 @@ declare const BRAND: {
39
39
  readonly to: "to-brand-navy/10";
40
40
  };
41
41
  };
42
+ declare const BRAND_COLOR: {
43
+ readonly blue: string;
44
+ readonly purple: string;
45
+ readonly rose: string;
46
+ readonly orange: string;
47
+ readonly maeve: string;
48
+ readonly navy: string;
49
+ readonly red: string;
50
+ };
51
+ type BrandColorName = keyof typeof BRAND_COLOR;
52
+ declare const ACTION_GRADIENTS: Record<string, [string, string, string]>;
53
+ declare const ACTION_FOREGROUNDS: Record<string, string>;
54
+ declare const TONE_GRADIENTS: Record<string, [string, string, string]>;
55
+ declare const TONE_FOREGROUNDS: Record<string, string>;
56
+ declare const BRAND_GRADIENT: string;
42
57
 
43
- export { BRAND };
58
+ export { ACTION_FOREGROUNDS, ACTION_GRADIENTS, BRAND, BRAND_COLOR, BRAND_GRADIENT, type BrandColorName, TONE_FOREGROUNDS, TONE_GRADIENTS };
@@ -39,5 +39,20 @@ declare const BRAND: {
39
39
  readonly to: "to-brand-navy/10";
40
40
  };
41
41
  };
42
+ declare const BRAND_COLOR: {
43
+ readonly blue: string;
44
+ readonly purple: string;
45
+ readonly rose: string;
46
+ readonly orange: string;
47
+ readonly maeve: string;
48
+ readonly navy: string;
49
+ readonly red: string;
50
+ };
51
+ type BrandColorName = keyof typeof BRAND_COLOR;
52
+ declare const ACTION_GRADIENTS: Record<string, [string, string, string]>;
53
+ declare const ACTION_FOREGROUNDS: Record<string, string>;
54
+ declare const TONE_GRADIENTS: Record<string, [string, string, string]>;
55
+ declare const TONE_FOREGROUNDS: Record<string, string>;
56
+ declare const BRAND_GRADIENT: string;
42
57
 
43
- export { BRAND };
58
+ export { ACTION_FOREGROUNDS, ACTION_GRADIENTS, BRAND, BRAND_COLOR, BRAND_GRADIENT, type BrandColorName, TONE_FOREGROUNDS, TONE_GRADIENTS };
@@ -39,7 +39,53 @@ const BRAND = {
39
39
  to: "to-brand-navy/10"
40
40
  }
41
41
  };
42
+ const token = (name) => `hsl(var(--${name}))`;
43
+ const BRAND_COLOR = {
44
+ blue: token("brand-blue"),
45
+ purple: token("brand-purple"),
46
+ rose: token("brand-rose"),
47
+ orange: token("brand-orange"),
48
+ maeve: token("brand-maeve"),
49
+ navy: token("brand-navy"),
50
+ red: token("destructive")
51
+ };
52
+ const loop = (a, b) => [BRAND_COLOR[a], BRAND_COLOR[b], BRAND_COLOR[a]];
53
+ const ACTION_GRADIENTS = {
54
+ buy: loop("blue", "purple"),
55
+ submit: loop("maeve", "purple"),
56
+ offer: loop("rose", "orange"),
57
+ remix: loop("purple", "rose"),
58
+ license: loop("blue", "purple")
59
+ };
60
+ const ACTION_FOREGROUNDS = {
61
+ buy: BRAND_COLOR.blue,
62
+ submit: BRAND_COLOR.purple,
63
+ offer: BRAND_COLOR.orange,
64
+ remix: BRAND_COLOR.purple,
65
+ license: BRAND_COLOR.blue
66
+ };
67
+ const TONE_GRADIENTS = {
68
+ blue: loop("blue", "purple"),
69
+ purple: loop("purple", "rose"),
70
+ orange: loop("orange", "rose"),
71
+ red: loop("red", "rose"),
72
+ rose: loop("rose", "orange")
73
+ };
74
+ const TONE_FOREGROUNDS = {
75
+ blue: BRAND_COLOR.blue,
76
+ purple: BRAND_COLOR.purple,
77
+ orange: BRAND_COLOR.orange,
78
+ red: BRAND_COLOR.red,
79
+ rose: BRAND_COLOR.rose
80
+ };
81
+ const BRAND_GRADIENT = `linear-gradient(115deg, ${[BRAND_COLOR.blue, BRAND_COLOR.purple, BRAND_COLOR.rose, BRAND_COLOR.orange, BRAND_COLOR.blue].join(", ")})`;
42
82
  export {
43
- BRAND
83
+ ACTION_FOREGROUNDS,
84
+ ACTION_GRADIENTS,
85
+ BRAND,
86
+ BRAND_COLOR,
87
+ BRAND_GRADIENT,
88
+ TONE_FOREGROUNDS,
89
+ TONE_GRADIENTS
44
90
  };
45
91
  //# sourceMappingURL=brand.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/data/brand.ts"],"sourcesContent":["\nexport const BRAND = {\n blue: {\n text: \"text-brand-blue\",\n bg: \"bg-brand-blue/10\",\n bgSolid: \"bg-brand-blue/15\",\n from: \"from-brand-blue/20\",\n to: \"to-brand-blue/20\",\n },\n purple: {\n text: \"text-brand-purple\",\n bg: \"bg-brand-purple/10\",\n bgSolid: \"bg-brand-purple/15\",\n from: \"from-brand-purple/20\",\n to: \"to-brand-purple/20\",\n },\n rose: {\n text: \"text-brand-rose\",\n bg: \"bg-brand-rose/10\",\n bgSolid: \"bg-brand-rose/15\",\n from: \"from-brand-rose/20\",\n to: \"to-brand-rose/20\",\n },\n orange: {\n text: \"text-brand-orange\",\n bg: \"bg-brand-orange/10\",\n bgSolid: \"bg-brand-orange/15\",\n from: \"from-brand-orange/20\",\n to: \"to-brand-orange/20\",\n },\n maeve: {\n text: \"text-brand-maeve\",\n bg: \"bg-brand-maeve/10\",\n bgSolid: \"bg-brand-maeve/15\",\n },\n navy: {\n text: \"text-brand-navy\",\n bg: \"bg-brand-navy/10\",\n from: \"from-brand-navy/10\",\n to: \"to-brand-navy/10\",\n },\n} as const;\n"],"mappings":"AACO,MAAM,QAAQ;AAAA,EACnB,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,IACL,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/data/brand.ts"],"sourcesContent":["\nexport const BRAND = {\n blue: {\n text: \"text-brand-blue\",\n bg: \"bg-brand-blue/10\",\n bgSolid: \"bg-brand-blue/15\",\n from: \"from-brand-blue/20\",\n to: \"to-brand-blue/20\",\n },\n purple: {\n text: \"text-brand-purple\",\n bg: \"bg-brand-purple/10\",\n bgSolid: \"bg-brand-purple/15\",\n from: \"from-brand-purple/20\",\n to: \"to-brand-purple/20\",\n },\n rose: {\n text: \"text-brand-rose\",\n bg: \"bg-brand-rose/10\",\n bgSolid: \"bg-brand-rose/15\",\n from: \"from-brand-rose/20\",\n to: \"to-brand-rose/20\",\n },\n orange: {\n text: \"text-brand-orange\",\n bg: \"bg-brand-orange/10\",\n bgSolid: \"bg-brand-orange/15\",\n from: \"from-brand-orange/20\",\n to: \"to-brand-orange/20\",\n },\n maeve: {\n text: \"text-brand-maeve\",\n bg: \"bg-brand-maeve/10\",\n bgSolid: \"bg-brand-maeve/15\",\n },\n navy: {\n text: \"text-brand-navy\",\n bg: \"bg-brand-navy/10\",\n from: \"from-brand-navy/10\",\n to: \"to-brand-navy/10\",\n },\n} as const;\n\nconst token = (name: string) => `hsl(var(--${name}))`;\n\nexport const BRAND_COLOR = {\n blue: token(\"brand-blue\"),\n purple: token(\"brand-purple\"),\n rose: token(\"brand-rose\"),\n orange: token(\"brand-orange\"),\n maeve: token(\"brand-maeve\"),\n navy: token(\"brand-navy\"),\n red: token(\"destructive\"),\n} as const;\n\nexport type BrandColorName = keyof typeof BRAND_COLOR;\n\nconst loop = (a: BrandColorName, b: BrandColorName): [string, string, string] => [BRAND_COLOR[a], BRAND_COLOR[b], BRAND_COLOR[a]];\n\nexport const ACTION_GRADIENTS: Record<string, [string, string, string]> = {\n buy: loop(\"blue\", \"purple\"),\n submit: loop(\"maeve\", \"purple\"),\n offer: loop(\"rose\", \"orange\"),\n remix: loop(\"purple\", \"rose\"),\n license: loop(\"blue\", \"purple\"),\n};\n\nexport const ACTION_FOREGROUNDS: Record<string, string> = {\n buy: BRAND_COLOR.blue,\n submit: BRAND_COLOR.purple,\n offer: BRAND_COLOR.orange,\n remix: BRAND_COLOR.purple,\n license: BRAND_COLOR.blue,\n};\n\nexport const TONE_GRADIENTS: Record<string, [string, string, string]> = {\n blue: loop(\"blue\", \"purple\"),\n purple: loop(\"purple\", \"rose\"),\n orange: loop(\"orange\", \"rose\"),\n red: loop(\"red\", \"rose\"),\n rose: loop(\"rose\", \"orange\"),\n};\n\nexport const TONE_FOREGROUNDS: Record<string, string> = {\n blue: BRAND_COLOR.blue,\n purple: BRAND_COLOR.purple,\n orange: BRAND_COLOR.orange,\n red: BRAND_COLOR.red,\n rose: BRAND_COLOR.rose,\n};\n\nexport const BRAND_GRADIENT = `linear-gradient(115deg, ${[BRAND_COLOR.blue, BRAND_COLOR.purple, BRAND_COLOR.rose, BRAND_COLOR.orange, BRAND_COLOR.blue].join(\", \")})`;\n"],"mappings":"AACO,MAAM,QAAQ;AAAA,EACnB,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,IACL,MAAS;AAAA,IACT,IAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAS;AAAA,IACT,IAAS;AAAA,IACT,MAAS;AAAA,IACT,IAAS;AAAA,EACX;AACF;AAEA,MAAM,QAAQ,CAAC,SAAiB,aAAa,IAAI;AAE1C,MAAM,cAAc;AAAA,EACzB,MAAM,MAAM,YAAY;AAAA,EACxB,QAAQ,MAAM,cAAc;AAAA,EAC5B,MAAM,MAAM,YAAY;AAAA,EACxB,QAAQ,MAAM,cAAc;AAAA,EAC5B,OAAO,MAAM,aAAa;AAAA,EAC1B,MAAM,MAAM,YAAY;AAAA,EACxB,KAAK,MAAM,aAAa;AAC1B;AAIA,MAAM,OAAO,CAAC,GAAmB,MAAgD,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC,CAAC;AAEzH,MAAM,mBAA6D;AAAA,EACxE,KAAK,KAAK,QAAQ,QAAQ;AAAA,EAC1B,QAAQ,KAAK,SAAS,QAAQ;AAAA,EAC9B,OAAO,KAAK,QAAQ,QAAQ;AAAA,EAC5B,OAAO,KAAK,UAAU,MAAM;AAAA,EAC5B,SAAS,KAAK,QAAQ,QAAQ;AAChC;AAEO,MAAM,qBAA6C;AAAA,EACxD,KAAK,YAAY;AAAA,EACjB,QAAQ,YAAY;AAAA,EACpB,OAAO,YAAY;AAAA,EACnB,OAAO,YAAY;AAAA,EACnB,SAAS,YAAY;AACvB;AAEO,MAAM,iBAA2D;AAAA,EACtE,MAAM,KAAK,QAAQ,QAAQ;AAAA,EAC3B,QAAQ,KAAK,UAAU,MAAM;AAAA,EAC7B,QAAQ,KAAK,UAAU,MAAM;AAAA,EAC7B,KAAK,KAAK,OAAO,MAAM;AAAA,EACvB,MAAM,KAAK,QAAQ,QAAQ;AAC7B;AAEO,MAAM,mBAA2C;AAAA,EACtD,MAAM,YAAY;AAAA,EAClB,QAAQ,YAAY;AAAA,EACpB,QAAQ,YAAY;AAAA,EACpB,KAAK,YAAY;AAAA,EACjB,MAAM,YAAY;AACpB;AAEO,MAAM,iBAAiB,2BAA2B,CAAC,YAAY,MAAM,YAAY,QAAQ,YAAY,MAAM,YAAY,QAAQ,YAAY,IAAI,EAAE,KAAK,IAAI,CAAC;","names":[]}