@medialane/ui 0.291.0 → 0.293.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.
- package/dist/components/account/input-otp.d.cts +2 -2
- package/dist/components/account/input-otp.d.ts +2 -2
- package/dist/components/action-button.cjs +3 -30
- package/dist/components/action-button.cjs.map +1 -1
- package/dist/components/action-button.d.cts +1 -2
- package/dist/components/action-button.d.ts +1 -2
- package/dist/components/action-button.js +1 -28
- package/dist/components/action-button.js.map +1 -1
- package/dist/components/button.d.cts +2 -2
- package/dist/components/button.d.ts +2 -2
- package/dist/components/drop/create/launch-dialog.cjs +10 -7
- package/dist/components/drop/create/launch-dialog.cjs.map +1 -1
- package/dist/components/drop/create/launch-dialog.js +10 -7
- package/dist/components/drop/create/launch-dialog.js.map +1 -1
- package/dist/components/drop/page/drop-manage.cjs +6 -3
- package/dist/components/drop/page/drop-manage.cjs.map +1 -1
- package/dist/components/drop/page/drop-manage.js +6 -3
- package/dist/components/drop/page/drop-manage.js.map +1 -1
- package/dist/components/drop/page/drop-mint-dialog.cjs +9 -6
- package/dist/components/drop/page/drop-mint-dialog.cjs.map +1 -1
- package/dist/components/drop/page/drop-mint-dialog.js +9 -6
- package/dist/components/drop/page/drop-mint-dialog.js.map +1 -1
- package/dist/components/fast-mint/fast-mint.cjs +6 -13
- package/dist/components/fast-mint/fast-mint.cjs.map +1 -1
- package/dist/components/fast-mint/fast-mint.d.cts +2 -2
- package/dist/components/fast-mint/fast-mint.d.ts +2 -2
- package/dist/components/fast-mint/fast-mint.js +7 -15
- package/dist/components/fast-mint/fast-mint.js.map +1 -1
- package/dist/components/gated-content.cjs +2 -1
- package/dist/components/gated-content.cjs.map +1 -1
- package/dist/components/gated-content.js +2 -1
- package/dist/components/gated-content.js.map +1 -1
- package/dist/components/launchpad/edition-mint-schema.d.cts +2 -2
- package/dist/components/launchpad/edition-mint-schema.d.ts +2 -2
- package/dist/components/media-wallet/action-button.cjs +0 -18
- package/dist/components/media-wallet/action-button.cjs.map +1 -1
- package/dist/components/media-wallet/action-button.d.cts +1 -3
- package/dist/components/media-wallet/action-button.d.ts +1 -3
- package/dist/components/media-wallet/action-button.js +0 -16
- package/dist/components/media-wallet/action-button.js.map +1 -1
- package/dist/components/media-wallet/activate-card.cjs +2 -2
- package/dist/components/media-wallet/activate-card.cjs.map +1 -1
- package/dist/components/media-wallet/activate-card.js +1 -1
- package/dist/components/media-wallet/activate-card.js.map +1 -1
- package/dist/components/media-wallet/media-wallet-activity.cjs +4 -6
- package/dist/components/media-wallet/media-wallet-activity.cjs.map +1 -1
- package/dist/components/media-wallet/media-wallet-activity.js +4 -6
- package/dist/components/media-wallet/media-wallet-activity.js.map +1 -1
- package/dist/components/media-wallet/media-wallet-home.cjs +2 -1
- package/dist/components/media-wallet/media-wallet-home.cjs.map +1 -1
- package/dist/components/media-wallet/media-wallet-home.js +2 -1
- package/dist/components/media-wallet/media-wallet-home.js.map +1 -1
- package/dist/components/media-wallet/quick-action.cjs +3 -3
- package/dist/components/media-wallet/quick-action.cjs.map +1 -1
- package/dist/components/media-wallet/quick-action.d.cts +1 -1
- package/dist/components/media-wallet/quick-action.d.ts +1 -1
- package/dist/components/media-wallet/quick-action.js +1 -1
- package/dist/components/media-wallet/quick-action.js.map +1 -1
- package/dist/components/media-wallet/success-dialog.cjs +2 -2
- package/dist/components/media-wallet/success-dialog.cjs.map +1 -1
- package/dist/components/media-wallet/success-dialog.js +1 -1
- package/dist/components/media-wallet/success-dialog.js.map +1 -1
- package/dist/components/media-wallet/wallet-activity-icon.cjs +5 -4
- package/dist/components/media-wallet/wallet-activity-icon.cjs.map +1 -1
- package/dist/components/media-wallet/wallet-activity-icon.js +5 -4
- package/dist/components/media-wallet/wallet-activity-icon.js.map +1 -1
- package/dist/components/medialane-collection-card.cjs +6 -6
- package/dist/components/medialane-collection-card.cjs.map +1 -1
- package/dist/components/medialane-collection-card.js +6 -6
- package/dist/components/medialane-collection-card.js.map +1 -1
- package/dist/components/sheet.d.cts +1 -1
- package/dist/components/sheet.d.ts +1 -1
- package/dist/components/transaction-dialog.cjs +2 -10
- package/dist/components/transaction-dialog.cjs.map +1 -1
- package/dist/components/transaction-dialog.js +2 -10
- package/dist/components/transaction-dialog.js.map +1 -1
- package/dist/components/wallet/self-fund-consent-dialog.cjs +6 -4
- package/dist/components/wallet/self-fund-consent-dialog.cjs.map +1 -1
- package/dist/components/wallet/self-fund-consent-dialog.js +6 -4
- package/dist/components/wallet/self-fund-consent-dialog.js.map +1 -1
- package/dist/data/brand.cjs +54 -2
- package/dist/data/brand.cjs.map +1 -1
- package/dist/data/brand.d.cts +16 -1
- package/dist/data/brand.d.ts +16 -1
- package/dist/data/brand.js +47 -1
- package/dist/data/brand.js.map +1 -1
- package/dist/index.cjs +14 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/medialane.css +14 -23
- package/dist/utils/use-confetti.cjs +36 -0
- package/dist/utils/use-confetti.cjs.map +1 -0
- package/dist/utils/use-confetti.d.cts +3 -0
- package/dist/utils/use-confetti.d.ts +3 -0
- package/dist/utils/use-confetti.js +12 -0
- package/dist/utils/use-confetti.js.map +1 -0
- package/package.json +1 -1
- package/dist/components/action-dialog.cjs +0 -70
- package/dist/components/action-dialog.cjs.map +0 -1
- package/dist/components/action-dialog.d.cts +0 -12
- package/dist/components/action-dialog.d.ts +0 -12
- package/dist/components/action-dialog.js +0 -46
- package/dist/components/action-dialog.js.map +0 -1
|
@@ -23,7 +23,7 @@ __export(quick_action_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(quick_action_exports);
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
-
var
|
|
26
|
+
var import_brand = require("../../data/brand.js");
|
|
27
27
|
function QuickAction({
|
|
28
28
|
label,
|
|
29
29
|
icon,
|
|
@@ -31,7 +31,7 @@ function QuickAction({
|
|
|
31
31
|
onClick,
|
|
32
32
|
disabled
|
|
33
33
|
}) {
|
|
34
|
-
const grad = `linear-gradient(115deg, ${
|
|
34
|
+
const grad = `linear-gradient(115deg, ${import_brand.ACTION_GRADIENTS[action].join(",")})`;
|
|
35
35
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
36
36
|
"button",
|
|
37
37
|
{
|
|
@@ -43,7 +43,7 @@ function QuickAction({
|
|
|
43
43
|
"span",
|
|
44
44
|
{
|
|
45
45
|
className: "ml-gbtn relative grid h-12 w-12 place-items-center rounded-[15px] bg-transparent transition-transform group-active:scale-95",
|
|
46
|
-
style: { "--ml-grad": grad, color:
|
|
46
|
+
style: { "--ml-grad": grad, color: import_brand.ACTION_FOREGROUNDS[action] },
|
|
47
47
|
children: icon
|
|
48
48
|
}
|
|
49
49
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/media-wallet/quick-action.tsx"],"sourcesContent":["\"use client\";\n\nimport { ACTION_GRADIENTS, ACTION_FOREGROUNDS } from \"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/media-wallet/quick-action.tsx"],"sourcesContent":["\"use client\";\n\nimport { ACTION_GRADIENTS, ACTION_FOREGROUNDS } from \"../../data/brand.js\";\n\nexport function QuickAction({\n label,\n icon,\n action,\n onClick,\n disabled,\n}: {\n label: string;\n icon: React.ReactNode;\n action: keyof typeof ACTION_GRADIENTS;\n onClick?: () => void;\n disabled?: boolean;\n}) {\n const grad = `linear-gradient(115deg, ${ACTION_GRADIENTS[action].join(\",\")})`;\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={`group flex flex-col items-center gap-1.5 ${disabled ? \"pointer-events-none opacity-40\" : \"\"}`}\n >\n <span\n className=\"ml-gbtn relative grid h-12 w-12 place-items-center rounded-[15px] bg-transparent transition-transform group-active:scale-95\"\n style={{ \"--ml-grad\": grad, color: ACTION_FOREGROUNDS[action] } as React.CSSProperties}\n >\n {icon}\n </span>\n <span className=\"text-2xs font-medium text-muted-foreground\">{label}</span>\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBI;AAjBJ,mBAAqD;AAE9C,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AACD,QAAM,OAAO,2BAA2B,8BAAiB,MAAM,EAAE,KAAK,GAAG,CAAC;AAC1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW,4CAA4C,WAAW,mCAAmC,EAAE;AAAA,MAEvG;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,aAAa,MAAM,OAAO,gCAAmB,MAAM,EAAE;AAAA,YAE7D;AAAA;AAAA,QACH;AAAA,QACA,4CAAC,UAAK,WAAU,8CAA8C,iBAAM;AAAA;AAAA;AAAA,EACtE;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/media-wallet/quick-action.tsx"],"sourcesContent":["\"use client\";\n\nimport { ACTION_GRADIENTS, ACTION_FOREGROUNDS } from \"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/media-wallet/quick-action.tsx"],"sourcesContent":["\"use client\";\n\nimport { ACTION_GRADIENTS, ACTION_FOREGROUNDS } from \"../../data/brand.js\";\n\nexport function QuickAction({\n label,\n icon,\n action,\n onClick,\n disabled,\n}: {\n label: string;\n icon: React.ReactNode;\n action: keyof typeof ACTION_GRADIENTS;\n onClick?: () => void;\n disabled?: boolean;\n}) {\n const grad = `linear-gradient(115deg, ${ACTION_GRADIENTS[action].join(\",\")})`;\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={`group flex flex-col items-center gap-1.5 ${disabled ? \"pointer-events-none opacity-40\" : \"\"}`}\n >\n <span\n className=\"ml-gbtn relative grid h-12 w-12 place-items-center rounded-[15px] bg-transparent transition-transform group-active:scale-95\"\n style={{ \"--ml-grad\": grad, color: ACTION_FOREGROUNDS[action] } as React.CSSProperties}\n >\n {icon}\n </span>\n <span className=\"text-2xs font-medium text-muted-foreground\">{label}</span>\n </button>\n );\n}\n"],"mappings":";AAmBI,SAKE,KALF;AAjBJ,SAAS,kBAAkB,0BAA0B;AAE9C,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AACD,QAAM,OAAO,2BAA2B,iBAAiB,MAAM,EAAE,KAAK,GAAG,CAAC;AAC1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW,4CAA4C,WAAW,mCAAmC,EAAE;AAAA,MAEvG;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,aAAa,MAAM,OAAO,mBAAmB,MAAM,EAAE;AAAA,YAE7D;AAAA;AAAA,QACH;AAAA,QACA,oBAAC,UAAK,WAAU,8CAA8C,iBAAM;AAAA;AAAA;AAAA,EACtE;AAEJ;","names":[]}
|
|
@@ -28,8 +28,8 @@ var import_action_button = require("../action-button.js");
|
|
|
28
28
|
var import_action_modal = require("./action-modal.js");
|
|
29
29
|
var import_confetti = require("../../utils/media-wallet/confetti.js");
|
|
30
30
|
var import_wallet_format = require("../../utils/media-wallet/wallet-format.js");
|
|
31
|
+
var import_brand = require("../../data/brand.js");
|
|
31
32
|
var import_types = require("./types.js");
|
|
32
|
-
const BRAND_GRADIENT = "linear-gradient(115deg, #3b7bff, #8a5cf6, #f6608f, #fb8b46, #3b7bff)";
|
|
33
33
|
function SuccessDialog({
|
|
34
34
|
title,
|
|
35
35
|
message,
|
|
@@ -58,7 +58,7 @@ function SuccessDialog({
|
|
|
58
58
|
children: "View transaction \u2197"
|
|
59
59
|
}
|
|
60
60
|
),
|
|
61
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_action_button.ActionButton, { big: true, onClick: onClose, className: "mt-5 w-full", style: { "--ml-grad": BRAND_GRADIENT }, children: actionLabel })
|
|
61
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_action_button.ActionButton, { big: true, onClick: onClose, className: "mt-5 w-full", style: { "--ml-grad": import_brand.BRAND_GRADIENT }, children: actionLabel })
|
|
62
62
|
] })
|
|
63
63
|
] }) });
|
|
64
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/media-wallet/success-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { ActionButton } from \"../action-button.js\";\nimport { ActionBackdrop, CanvasPortal } from \"./action-modal.js\";\nimport { fireConfetti } from \"../../utils/media-wallet/confetti.js\";\nimport { explorerTxUrl } from \"../../utils/media-wallet/wallet-format.js\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/media-wallet/success-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { ActionButton } from \"../action-button.js\";\nimport { ActionBackdrop, CanvasPortal } from \"./action-modal.js\";\nimport { fireConfetti } from \"../../utils/media-wallet/confetti.js\";\nimport { explorerTxUrl } from \"../../utils/media-wallet/wallet-format.js\";\nimport { BRAND_GRADIENT } from \"../../data/brand.js\";\nimport { useMediaWalletApp } from \"./types.js\";\n\nexport function SuccessDialog({\n title,\n message,\n actionLabel = \"Done\",\n txHash,\n onClose,\n}: {\n title: string;\n message: string;\n actionLabel?: string;\n txHash?: string;\n onClose: () => void;\n}) {\n const { explorerUrl } = useMediaWalletApp();\n useEffect(() => {\n fireConfetti();\n }, []);\n return (\n <CanvasPortal>\n <div className=\"absolute inset-0 z-[70] grid place-items-center p-6\" onClick={onClose}>\n <ActionBackdrop />\n <div className=\"card-base relative z-10 w-full max-w-[320px] p-6 text-center\" onClick={(e) => e.stopPropagation()}>\n <div role=\"status\">\n <h2 className=\"font-[family-name:var(--font-display)] text-xl font-extrabold tracking-tight\">{title}</h2>\n <p className=\"mt-1.5 text-sm leading-relaxed text-muted-foreground\">{message}</p>\n </div>\n {txHash && (\n <a\n href={explorerTxUrl(explorerUrl, txHash)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"mt-3 inline-block text-xs text-brand-blue hover:underline\"\n >\n View transaction ↗\n </a>\n )}\n <ActionButton big onClick={onClose} className=\"mt-5 w-full\" style={{ \"--ml-grad\": BRAND_GRADIENT } as React.CSSProperties}>\n {actionLabel}\n </ActionButton>\n </div>\n </div>\n </CanvasPortal>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BQ;AA5BR,mBAA0B;AAC1B,2BAA6B;AAC7B,0BAA6C;AAC7C,sBAA6B;AAC7B,2BAA8B;AAC9B,mBAA+B;AAC/B,mBAAkC;AAE3B,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AACF,GAMG;AACD,QAAM,EAAE,YAAY,QAAI,gCAAkB;AAC1C,8BAAU,MAAM;AACd,sCAAa;AAAA,EACf,GAAG,CAAC,CAAC;AACL,SACE,4CAAC,oCACC,uDAAC,SAAI,WAAU,uDAAsD,SAAS,SAC5E;AAAA,gDAAC,sCAAe;AAAA,IAChB,6CAAC,SAAI,WAAU,gEAA+D,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAC9G;AAAA,mDAAC,SAAI,MAAK,UACR;AAAA,oDAAC,QAAG,WAAU,gFAAgF,iBAAM;AAAA,QACpG,4CAAC,OAAE,WAAU,wDAAwD,mBAAQ;AAAA,SAC/E;AAAA,MACC,UACC;AAAA,QAAC;AAAA;AAAA,UACC,UAAM,oCAAc,aAAa,MAAM;AAAA,UACvC,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MAEF,4CAAC,qCAAa,KAAG,MAAC,SAAS,SAAS,WAAU,eAAc,OAAO,EAAE,aAAa,4BAAe,GAC9F,uBACH;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -5,8 +5,8 @@ import { ActionButton } from "../action-button.js";
|
|
|
5
5
|
import { ActionBackdrop, CanvasPortal } from "./action-modal.js";
|
|
6
6
|
import { fireConfetti } from "../../utils/media-wallet/confetti.js";
|
|
7
7
|
import { explorerTxUrl } from "../../utils/media-wallet/wallet-format.js";
|
|
8
|
+
import { BRAND_GRADIENT } from "../../data/brand.js";
|
|
8
9
|
import { useMediaWalletApp } from "./types.js";
|
|
9
|
-
const BRAND_GRADIENT = "linear-gradient(115deg, #3b7bff, #8a5cf6, #f6608f, #fb8b46, #3b7bff)";
|
|
10
10
|
function SuccessDialog({
|
|
11
11
|
title,
|
|
12
12
|
message,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/media-wallet/success-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { ActionButton } from \"../action-button.js\";\nimport { ActionBackdrop, CanvasPortal } from \"./action-modal.js\";\nimport { fireConfetti } from \"../../utils/media-wallet/confetti.js\";\nimport { explorerTxUrl } from \"../../utils/media-wallet/wallet-format.js\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/media-wallet/success-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { ActionButton } from \"../action-button.js\";\nimport { ActionBackdrop, CanvasPortal } from \"./action-modal.js\";\nimport { fireConfetti } from \"../../utils/media-wallet/confetti.js\";\nimport { explorerTxUrl } from \"../../utils/media-wallet/wallet-format.js\";\nimport { BRAND_GRADIENT } from \"../../data/brand.js\";\nimport { useMediaWalletApp } from \"./types.js\";\n\nexport function SuccessDialog({\n title,\n message,\n actionLabel = \"Done\",\n txHash,\n onClose,\n}: {\n title: string;\n message: string;\n actionLabel?: string;\n txHash?: string;\n onClose: () => void;\n}) {\n const { explorerUrl } = useMediaWalletApp();\n useEffect(() => {\n fireConfetti();\n }, []);\n return (\n <CanvasPortal>\n <div className=\"absolute inset-0 z-[70] grid place-items-center p-6\" onClick={onClose}>\n <ActionBackdrop />\n <div className=\"card-base relative z-10 w-full max-w-[320px] p-6 text-center\" onClick={(e) => e.stopPropagation()}>\n <div role=\"status\">\n <h2 className=\"font-[family-name:var(--font-display)] text-xl font-extrabold tracking-tight\">{title}</h2>\n <p className=\"mt-1.5 text-sm leading-relaxed text-muted-foreground\">{message}</p>\n </div>\n {txHash && (\n <a\n href={explorerTxUrl(explorerUrl, txHash)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"mt-3 inline-block text-xs text-brand-blue hover:underline\"\n >\n View transaction ↗\n </a>\n )}\n <ActionButton big onClick={onClose} className=\"mt-5 w-full\" style={{ \"--ml-grad\": BRAND_GRADIENT } as React.CSSProperties}>\n {actionLabel}\n </ActionButton>\n </div>\n </div>\n </CanvasPortal>\n );\n}\n"],"mappings":";AA8BQ,cAEE,YAFF;AA5BR,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB,oBAAoB;AAC7C,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAE3B,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AACF,GAMG;AACD,QAAM,EAAE,YAAY,IAAI,kBAAkB;AAC1C,YAAU,MAAM;AACd,iBAAa;AAAA,EACf,GAAG,CAAC,CAAC;AACL,SACE,oBAAC,gBACC,+BAAC,SAAI,WAAU,uDAAsD,SAAS,SAC5E;AAAA,wBAAC,kBAAe;AAAA,IAChB,qBAAC,SAAI,WAAU,gEAA+D,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAC9G;AAAA,2BAAC,SAAI,MAAK,UACR;AAAA,4BAAC,QAAG,WAAU,gFAAgF,iBAAM;AAAA,QACpG,oBAAC,OAAE,WAAU,wDAAwD,mBAAQ;AAAA,SAC/E;AAAA,MACC,UACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,cAAc,aAAa,MAAM;AAAA,UACvC,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MAEF,oBAAC,gBAAa,KAAG,MAAC,SAAS,SAAS,WAAU,eAAc,OAAO,EAAE,aAAa,eAAe,GAC9F,uBACH;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -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" ?
|
|
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:
|
|
36
|
-
if (a.type === "DEPLOY") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue:
|
|
37
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActionIcon, { hue:
|
|
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\" ?
|
|
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" ?
|
|
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:
|
|
13
|
-
if (a.type === "DEPLOY") return /* @__PURE__ */ jsx(ActionIcon, { hue:
|
|
14
|
-
return /* @__PURE__ */ jsx(ActionIcon, { hue:
|
|
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\" ?
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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?: "
|
|
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?: "
|
|
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;
|
|
@@ -23,11 +23,10 @@ __export(transaction_dialog_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(transaction_dialog_exports);
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
-
var import_react = require("react");
|
|
27
26
|
var import_lucide_react = require("lucide-react");
|
|
28
27
|
var import_dialog = require("./dialog.js");
|
|
29
28
|
var import_button = require("./button.js");
|
|
30
|
-
var
|
|
29
|
+
var import_use_confetti = require("../utils/use-confetti.js");
|
|
31
30
|
const ACTIVE_STEP = { preparing: 0, submitting: 1, confirming: 2 };
|
|
32
31
|
function TransactionDialog({ tx, title, workingLabel, firstStepLabel = "Prepare", children }) {
|
|
33
32
|
const { phase, error, reset, retryable = true } = tx;
|
|
@@ -35,14 +34,7 @@ function TransactionDialog({ tx, title, workingLabel, firstStepLabel = "Prepare"
|
|
|
35
34
|
const success = phase === "success";
|
|
36
35
|
const failed = phase === "error";
|
|
37
36
|
const steps = [firstStepLabel, "Submit transaction", "Confirm transaction"];
|
|
38
|
-
|
|
39
|
-
(0, import_react.useEffect)(() => {
|
|
40
|
-
if (success && !confettiFired.current) {
|
|
41
|
-
confettiFired.current = true;
|
|
42
|
-
(0, import_confetti.fireConfetti)();
|
|
43
|
-
}
|
|
44
|
-
if (!success) confettiFired.current = false;
|
|
45
|
-
}, [success]);
|
|
37
|
+
(0, import_use_confetti.useConfetti)(success);
|
|
46
38
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dialog.Dialog, { open: phase !== "idle", modal: true, onOpenChange: (open) => {
|
|
47
39
|
if (!open && !working) reset();
|
|
48
40
|
}, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/transaction-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/components/transaction-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { CheckCircle2, Loader2, XCircle } from \"lucide-react\";\nimport { Dialog, DialogContent, DialogTitle } from \"./dialog.js\";\nimport { Button } from \"./button.js\";\nimport { useConfetti } from \"../utils/use-confetti.js\";\nimport type { useTransaction } from \"../utils/use-transaction.js\";\n\nexport interface TransactionDialogProps {\n tx: Pick<ReturnType<typeof useTransaction>, \"phase\" | \"error\" | \"reset\"> & { retryable?: boolean };\n title: string;\n workingLabel: string;\n firstStepLabel?: string;\n children?: ReactNode;\n}\n\nconst ACTIVE_STEP = { preparing: 0, submitting: 1, confirming: 2 } as const;\n\nexport function TransactionDialog({ tx, title, workingLabel, firstStepLabel = \"Prepare\", children }: TransactionDialogProps) {\n const { phase, error, reset, retryable = true } = tx;\n const working = phase === \"preparing\" || phase === \"submitting\" || phase === \"confirming\";\n const success = phase === \"success\";\n const failed = phase === \"error\";\n const steps = [firstStepLabel, \"Submit transaction\", \"Confirm transaction\"];\n\n useConfetti(success);\n\n return (\n <Dialog open={phase !== \"idle\"} modal onOpenChange={(open) => { if (!open && !working) reset(); }}>\n <DialogContent\n className=\"sm:max-w-md\"\n onInteractOutside={working ? (e) => e.preventDefault() : undefined}\n onEscapeKeyDown={working ? (e) => e.preventDefault() : undefined}\n {...(working ? { hideClose: true } : {})}\n >\n <DialogTitle className=\"sr-only\">{working ? workingLabel : title}</DialogTitle>\n\n {working && (\n <div className=\"flex flex-col items-center gap-6 py-4\">\n <div className=\"flex h-16 w-16 items-center justify-center rounded-full bg-primary/10\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n <div className=\"space-y-1 text-center\">\n <p className=\"text-lg font-semibold\">{workingLabel}</p>\n <p className=\"text-sm text-muted-foreground\">\n {phase === \"confirming\" ? \"Waiting for block confirmation\" : \"Submitting transaction\"}\n </p>\n </div>\n <ol className=\"w-full space-y-2 rounded-xl border border-border/60 bg-muted/30 p-4\">\n {steps.map((label, i) => {\n const active = i === ACTIVE_STEP[phase];\n const done = i < ACTIVE_STEP[phase];\n return (\n <li key={label} data-step aria-current={active ? \"step\" : undefined} className=\"flex items-center gap-3\">\n {done ? (\n <CheckCircle2 className=\"h-4 w-4 shrink-0 text-emerald-500\" />\n ) : active ? (\n <Loader2 className=\"h-4 w-4 shrink-0 animate-spin text-primary\" />\n ) : (\n <div className=\"h-4 w-4 shrink-0 rounded-full border-2 border-muted-foreground/30\" />\n )}\n <span className={done ? \"text-sm text-foreground\" : active ? \"text-sm font-medium text-primary\" : \"text-sm text-muted-foreground\"}>\n {label}\n </span>\n </li>\n );\n })}\n </ol>\n <p className=\"text-center text-xs text-muted-foreground\">This usually takes 10–30 seconds. Do not close this window.</p>\n </div>\n )}\n\n {success && children}\n\n {failed && (\n <div className=\"flex flex-col items-center gap-5 py-2\">\n <div className=\"flex h-16 w-16 items-center justify-center rounded-full bg-destructive/10\">\n <XCircle className=\"h-9 w-9 text-destructive\" />\n </div>\n <div className=\"space-y-1 text-center\">\n <p className=\"text-xl font-bold\">{title}</p>\n <p className=\"mx-auto max-w-xs text-sm text-muted-foreground\">{error}</p>\n </div>\n <Button variant=\"outline\" className=\"w-full\" onClick={reset}>\n {retryable ? \"Try again\" : \"Close\"}\n </Button>\n </div>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCQ;AAjCR,0BAA+C;AAC/C,oBAAmD;AACnD,oBAAuB;AACvB,0BAA4B;AAW5B,MAAM,cAAc,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,EAAE;AAE1D,SAAS,kBAAkB,EAAE,IAAI,OAAO,cAAc,iBAAiB,WAAW,SAAS,GAA2B;AAC3H,QAAM,EAAE,OAAO,OAAO,OAAO,YAAY,KAAK,IAAI;AAClD,QAAM,UAAU,UAAU,eAAe,UAAU,gBAAgB,UAAU;AAC7E,QAAM,UAAU,UAAU;AAC1B,QAAM,SAAS,UAAU;AACzB,QAAM,QAAQ,CAAC,gBAAgB,sBAAsB,qBAAqB;AAE1E,uCAAY,OAAO;AAEnB,SACE,4CAAC,wBAAO,MAAM,UAAU,QAAQ,OAAK,MAAC,cAAc,CAAC,SAAS;AAAE,QAAI,CAAC,QAAQ,CAAC,QAAS,OAAM;AAAA,EAAG,GAC9F;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,mBAAmB,UAAU,CAAC,MAAM,EAAE,eAAe,IAAI;AAAA,MACzD,iBAAiB,UAAU,CAAC,MAAM,EAAE,eAAe,IAAI;AAAA,MACtD,GAAI,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;AAAA,MAEtC;AAAA,oDAAC,6BAAY,WAAU,WAAW,oBAAU,eAAe,OAAM;AAAA,QAEhE,WACC,6CAAC,SAAI,WAAU,yCACb;AAAA,sDAAC,SAAI,WAAU,yEACb,sDAAC,+BAAQ,WAAU,qCAAoC,GACzD;AAAA,UACA,6CAAC,SAAI,WAAU,yBACb;AAAA,wDAAC,OAAE,WAAU,yBAAyB,wBAAa;AAAA,YACnD,4CAAC,OAAE,WAAU,iCACV,oBAAU,eAAe,mCAAmC,0BAC/D;AAAA,aACF;AAAA,UACA,4CAAC,QAAG,WAAU,uEACX,gBAAM,IAAI,CAAC,OAAO,MAAM;AACvB,kBAAM,SAAS,MAAM,YAAY,KAAK;AACtC,kBAAM,OAAO,IAAI,YAAY,KAAK;AAClC,mBACE,6CAAC,QAAe,aAAS,MAAC,gBAAc,SAAS,SAAS,QAAW,WAAU,2BAC5E;AAAA,qBACC,4CAAC,oCAAa,WAAU,qCAAoC,IAC1D,SACF,4CAAC,+BAAQ,WAAU,8CAA6C,IAEhE,4CAAC,SAAI,WAAU,qEAAoE;AAAA,cAErF,4CAAC,UAAK,WAAW,OAAO,4BAA4B,SAAS,qCAAqC,iCAC/F,iBACH;AAAA,iBAVO,KAWT;AAAA,UAEJ,CAAC,GACH;AAAA,UACA,4CAAC,OAAE,WAAU,6CAA4C,8EAA2D;AAAA,WACtH;AAAA,QAGD,WAAW;AAAA,QAEX,UACC,6CAAC,SAAI,WAAU,yCACb;AAAA,sDAAC,SAAI,WAAU,6EACb,sDAAC,+BAAQ,WAAU,4BAA2B,GAChD;AAAA,UACA,6CAAC,SAAI,WAAU,yBACb;AAAA,wDAAC,OAAE,WAAU,qBAAqB,iBAAM;AAAA,YACxC,4CAAC,OAAE,WAAU,kDAAkD,iBAAM;AAAA,aACvE;AAAA,UACA,4CAAC,wBAAO,SAAQ,WAAU,WAAU,UAAS,SAAS,OACnD,sBAAY,cAAc,SAC7B;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ,GACF;AAEJ;","names":[]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useRef } from "react";
|
|
4
3
|
import { CheckCircle2, Loader2, XCircle } from "lucide-react";
|
|
5
4
|
import { Dialog, DialogContent, DialogTitle } from "./dialog.js";
|
|
6
5
|
import { Button } from "./button.js";
|
|
7
|
-
import {
|
|
6
|
+
import { useConfetti } from "../utils/use-confetti.js";
|
|
8
7
|
const ACTIVE_STEP = { preparing: 0, submitting: 1, confirming: 2 };
|
|
9
8
|
function TransactionDialog({ tx, title, workingLabel, firstStepLabel = "Prepare", children }) {
|
|
10
9
|
const { phase, error, reset, retryable = true } = tx;
|
|
@@ -12,14 +11,7 @@ function TransactionDialog({ tx, title, workingLabel, firstStepLabel = "Prepare"
|
|
|
12
11
|
const success = phase === "success";
|
|
13
12
|
const failed = phase === "error";
|
|
14
13
|
const steps = [firstStepLabel, "Submit transaction", "Confirm transaction"];
|
|
15
|
-
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
if (success && !confettiFired.current) {
|
|
18
|
-
confettiFired.current = true;
|
|
19
|
-
fireConfetti();
|
|
20
|
-
}
|
|
21
|
-
if (!success) confettiFired.current = false;
|
|
22
|
-
}, [success]);
|
|
14
|
+
useConfetti(success);
|
|
23
15
|
return /* @__PURE__ */ jsx(Dialog, { open: phase !== "idle", modal: true, onOpenChange: (open) => {
|
|
24
16
|
if (!open && !working) reset();
|
|
25
17
|
}, children: /* @__PURE__ */ jsxs(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/transaction-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/components/transaction-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { CheckCircle2, Loader2, XCircle } from \"lucide-react\";\nimport { Dialog, DialogContent, DialogTitle } from \"./dialog.js\";\nimport { Button } from \"./button.js\";\nimport { useConfetti } from \"../utils/use-confetti.js\";\nimport type { useTransaction } from \"../utils/use-transaction.js\";\n\nexport interface TransactionDialogProps {\n tx: Pick<ReturnType<typeof useTransaction>, \"phase\" | \"error\" | \"reset\"> & { retryable?: boolean };\n title: string;\n workingLabel: string;\n firstStepLabel?: string;\n children?: ReactNode;\n}\n\nconst ACTIVE_STEP = { preparing: 0, submitting: 1, confirming: 2 } as const;\n\nexport function TransactionDialog({ tx, title, workingLabel, firstStepLabel = \"Prepare\", children }: TransactionDialogProps) {\n const { phase, error, reset, retryable = true } = tx;\n const working = phase === \"preparing\" || phase === \"submitting\" || phase === \"confirming\";\n const success = phase === \"success\";\n const failed = phase === \"error\";\n const steps = [firstStepLabel, \"Submit transaction\", \"Confirm transaction\"];\n\n useConfetti(success);\n\n return (\n <Dialog open={phase !== \"idle\"} modal onOpenChange={(open) => { if (!open && !working) reset(); }}>\n <DialogContent\n className=\"sm:max-w-md\"\n onInteractOutside={working ? (e) => e.preventDefault() : undefined}\n onEscapeKeyDown={working ? (e) => e.preventDefault() : undefined}\n {...(working ? { hideClose: true } : {})}\n >\n <DialogTitle className=\"sr-only\">{working ? workingLabel : title}</DialogTitle>\n\n {working && (\n <div className=\"flex flex-col items-center gap-6 py-4\">\n <div className=\"flex h-16 w-16 items-center justify-center rounded-full bg-primary/10\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n <div className=\"space-y-1 text-center\">\n <p className=\"text-lg font-semibold\">{workingLabel}</p>\n <p className=\"text-sm text-muted-foreground\">\n {phase === \"confirming\" ? \"Waiting for block confirmation\" : \"Submitting transaction\"}\n </p>\n </div>\n <ol className=\"w-full space-y-2 rounded-xl border border-border/60 bg-muted/30 p-4\">\n {steps.map((label, i) => {\n const active = i === ACTIVE_STEP[phase];\n const done = i < ACTIVE_STEP[phase];\n return (\n <li key={label} data-step aria-current={active ? \"step\" : undefined} className=\"flex items-center gap-3\">\n {done ? (\n <CheckCircle2 className=\"h-4 w-4 shrink-0 text-emerald-500\" />\n ) : active ? (\n <Loader2 className=\"h-4 w-4 shrink-0 animate-spin text-primary\" />\n ) : (\n <div className=\"h-4 w-4 shrink-0 rounded-full border-2 border-muted-foreground/30\" />\n )}\n <span className={done ? \"text-sm text-foreground\" : active ? \"text-sm font-medium text-primary\" : \"text-sm text-muted-foreground\"}>\n {label}\n </span>\n </li>\n );\n })}\n </ol>\n <p className=\"text-center text-xs text-muted-foreground\">This usually takes 10–30 seconds. Do not close this window.</p>\n </div>\n )}\n\n {success && children}\n\n {failed && (\n <div className=\"flex flex-col items-center gap-5 py-2\">\n <div className=\"flex h-16 w-16 items-center justify-center rounded-full bg-destructive/10\">\n <XCircle className=\"h-9 w-9 text-destructive\" />\n </div>\n <div className=\"space-y-1 text-center\">\n <p className=\"text-xl font-bold\">{title}</p>\n <p className=\"mx-auto max-w-xs text-sm text-muted-foreground\">{error}</p>\n </div>\n <Button variant=\"outline\" className=\"w-full\" onClick={reset}>\n {retryable ? \"Try again\" : \"Close\"}\n </Button>\n </div>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";AAoCQ,cAOI,YAPJ;AAjCR,SAAS,cAAc,SAAS,eAAe;AAC/C,SAAS,QAAQ,eAAe,mBAAmB;AACnD,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAW5B,MAAM,cAAc,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,EAAE;AAE1D,SAAS,kBAAkB,EAAE,IAAI,OAAO,cAAc,iBAAiB,WAAW,SAAS,GAA2B;AAC3H,QAAM,EAAE,OAAO,OAAO,OAAO,YAAY,KAAK,IAAI;AAClD,QAAM,UAAU,UAAU,eAAe,UAAU,gBAAgB,UAAU;AAC7E,QAAM,UAAU,UAAU;AAC1B,QAAM,SAAS,UAAU;AACzB,QAAM,QAAQ,CAAC,gBAAgB,sBAAsB,qBAAqB;AAE1E,cAAY,OAAO;AAEnB,SACE,oBAAC,UAAO,MAAM,UAAU,QAAQ,OAAK,MAAC,cAAc,CAAC,SAAS;AAAE,QAAI,CAAC,QAAQ,CAAC,QAAS,OAAM;AAAA,EAAG,GAC9F;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,mBAAmB,UAAU,CAAC,MAAM,EAAE,eAAe,IAAI;AAAA,MACzD,iBAAiB,UAAU,CAAC,MAAM,EAAE,eAAe,IAAI;AAAA,MACtD,GAAI,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;AAAA,MAEtC;AAAA,4BAAC,eAAY,WAAU,WAAW,oBAAU,eAAe,OAAM;AAAA,QAEhE,WACC,qBAAC,SAAI,WAAU,yCACb;AAAA,8BAAC,SAAI,WAAU,yEACb,8BAAC,WAAQ,WAAU,qCAAoC,GACzD;AAAA,UACA,qBAAC,SAAI,WAAU,yBACb;AAAA,gCAAC,OAAE,WAAU,yBAAyB,wBAAa;AAAA,YACnD,oBAAC,OAAE,WAAU,iCACV,oBAAU,eAAe,mCAAmC,0BAC/D;AAAA,aACF;AAAA,UACA,oBAAC,QAAG,WAAU,uEACX,gBAAM,IAAI,CAAC,OAAO,MAAM;AACvB,kBAAM,SAAS,MAAM,YAAY,KAAK;AACtC,kBAAM,OAAO,IAAI,YAAY,KAAK;AAClC,mBACE,qBAAC,QAAe,aAAS,MAAC,gBAAc,SAAS,SAAS,QAAW,WAAU,2BAC5E;AAAA,qBACC,oBAAC,gBAAa,WAAU,qCAAoC,IAC1D,SACF,oBAAC,WAAQ,WAAU,8CAA6C,IAEhE,oBAAC,SAAI,WAAU,qEAAoE;AAAA,cAErF,oBAAC,UAAK,WAAW,OAAO,4BAA4B,SAAS,qCAAqC,iCAC/F,iBACH;AAAA,iBAVO,KAWT;AAAA,UAEJ,CAAC,GACH;AAAA,UACA,oBAAC,OAAE,WAAU,6CAA4C,8EAA2D;AAAA,WACtH;AAAA,QAGD,WAAW;AAAA,QAEX,UACC,qBAAC,SAAI,WAAU,yCACb;AAAA,8BAAC,SAAI,WAAU,6EACb,8BAAC,WAAQ,WAAU,4BAA2B,GAChD;AAAA,UACA,qBAAC,SAAI,WAAU,yBACb;AAAA,gCAAC,OAAE,WAAU,qBAAqB,iBAAM;AAAA,YACxC,oBAAC,OAAE,WAAU,kDAAkD,iBAAM;AAAA,aACvE;AAAA,UACA,oBAAC,UAAO,SAAQ,WAAU,WAAU,UAAS,SAAS,OACnD,sBAAY,cAAc,SAC7B;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ,GACF;AAEJ;","names":[]}
|
|
@@ -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
|
|
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)(
|
|
62
|
-
|
|
63
|
-
|
|
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" })
|