@medialane/ui 0.268.0 → 0.270.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/badge.d.cts +1 -1
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/button.d.cts +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/discover-hero.cjs +5 -6
- package/dist/components/discover-hero.cjs.map +1 -1
- package/dist/components/discover-hero.js +5 -6
- package/dist/components/discover-hero.js.map +1 -1
- package/dist/components/discover-page.cjs +21 -19
- package/dist/components/discover-page.cjs.map +1 -1
- package/dist/components/discover-page.js +21 -19
- package/dist/components/discover-page.js.map +1 -1
- package/dist/components/media-header.cjs +2 -2
- package/dist/components/media-header.cjs.map +1 -1
- package/dist/components/media-header.js +2 -2
- package/dist/components/media-header.js.map +1 -1
- package/dist/utils/media-wallet/use-erc20-balance.d.cts +1 -1
- package/dist/utils/media-wallet/use-erc20-balance.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
7
|
+
variant?: "default" | "secondary" | "outline" | "destructive" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
10
10
|
}
|
|
@@ -4,7 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
7
|
+
variant?: "default" | "secondary" | "outline" | "destructive" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
10
10
|
}
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
|
|
5
5
|
declare const buttonVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "link" | "default" | "secondary" | "outline" | "destructive" | "ghost" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
|
|
7
7
|
size?: "default" | "icon" | "sm" | "lg" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
|
|
5
5
|
declare const buttonVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "link" | "default" | "secondary" | "outline" | "destructive" | "ghost" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
|
|
7
7
|
size?: "default" | "icon" | "sm" | "lg" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
@@ -29,12 +29,12 @@ var import_activity_ticker = require("./activity-ticker.js");
|
|
|
29
29
|
function DiscoverHero({
|
|
30
30
|
stats,
|
|
31
31
|
orders,
|
|
32
|
-
badgeText
|
|
32
|
+
badgeText,
|
|
33
33
|
headlineText = "Create, share & explore",
|
|
34
34
|
getTickerHref
|
|
35
35
|
}) {
|
|
36
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-6 pt-2
|
|
37
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
36
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-6 pt-2", children: [
|
|
37
|
+
badgeText ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
38
38
|
import_framer_motion.motion.div,
|
|
39
39
|
{
|
|
40
40
|
initial: { opacity: 0, y: 12 },
|
|
@@ -42,7 +42,7 @@ function DiscoverHero({
|
|
|
42
42
|
transition: { duration: 0.4, ease: import_motion_primitives.EASE_OUT },
|
|
43
43
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "pill-badge", children: badgeText })
|
|
44
44
|
}
|
|
45
|
-
),
|
|
45
|
+
) : null,
|
|
46
46
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
47
47
|
import_framer_motion.motion.div,
|
|
48
48
|
{
|
|
@@ -63,8 +63,7 @@ function DiscoverHero({
|
|
|
63
63
|
transition: { duration: 0.4, delay: 0.35, ease: import_motion_primitives.EASE_OUT },
|
|
64
64
|
children: [
|
|
65
65
|
{ label: "Collections", value: stats.collections },
|
|
66
|
-
{ label: "Assets", value: stats.tokens }
|
|
67
|
-
{ label: "Sales", value: stats.sales }
|
|
66
|
+
{ label: "Assets", value: stats.tokens }
|
|
68
67
|
].map(({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
69
68
|
"div",
|
|
70
69
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/discover-hero.tsx"],"sourcesContent":["\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { KineticWords, EASE_OUT } from \"./motion-primitives.js\";\nimport { ActivityTicker } from \"./activity-ticker.js\";\nimport type { ApiOrder } from \"@medialane/sdk\";\n\nexport interface DiscoverHeroProps {\n stats: { collections: number; tokens: number; sales: number } | null;\n orders: ApiOrder[];\n badgeText?: string;\n headlineText?: string;\n getTickerHref?: (order: ApiOrder) => string;\n}\n\nexport function DiscoverHero({\n stats,\n orders,\n badgeText
|
|
1
|
+
{"version":3,"sources":["../../src/components/discover-hero.tsx"],"sourcesContent":["\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { KineticWords, EASE_OUT } from \"./motion-primitives.js\";\nimport { ActivityTicker } from \"./activity-ticker.js\";\nimport type { ApiOrder } from \"@medialane/sdk\";\n\nexport interface DiscoverHeroProps {\n stats: { collections: number; tokens: number; sales: number } | null;\n orders: ApiOrder[];\n badgeText?: string;\n headlineText?: string;\n getTickerHref?: (order: ApiOrder) => string;\n}\n\nexport function DiscoverHero({\n stats,\n orders,\n badgeText,\n headlineText = \"Create, share & explore\",\n getTickerHref,\n}: DiscoverHeroProps) {\n return (\n <div className=\"space-y-6 pt-2\">\n {badgeText ? (\n <motion.div\n initial={{ opacity: 0, y: 12 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.4, ease: EASE_OUT }}\n >\n <span className=\"pill-badge\">{badgeText}</span>\n </motion.div>\n ) : null}\n\n <motion.div\n className=\"text-3xl sm:text-4xl lg:text-5xl font-black leading-[1.1]\"\n style={{ perspective: \"800px\" }}\n initial={{ opacity: 0, y: 16 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, delay: 0.1, ease: EASE_OUT }}\n >\n <span className=\"gradient-text\">\n <KineticWords text={headlineText} />\n </span>\n </motion.div>\n\n {stats && (\n <motion.div\n className=\"flex flex-wrap gap-2\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.4, delay: 0.35, ease: EASE_OUT }}\n >\n {[\n { label: \"Collections\", value: stats.collections },\n { label: \"Assets\", value: stats.tokens },\n ].map(({ label, value }) => (\n <div\n key={label}\n className=\"flex items-center gap-1.5 rounded-full border border-border bg-card px-3.5 py-1.5 text-sm\"\n >\n <span className=\"font-bold tabular-nums\">{value?.toLocaleString() ?? \"—\"}</span>\n <span className=\"text-muted-foreground\">{label}</span>\n </div>\n ))}\n </motion.div>\n )}\n\n <ActivityTicker orders={orders} getHref={getTickerHref} />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BU;AA5BV,2BAAuB;AACvB,+BAAuC;AACvC,6BAA+B;AAWxB,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AACF,GAAsB;AACpB,SACE,6CAAC,SAAI,WAAU,kBACZ;AAAA,gBACC;AAAA,MAAC,4BAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,QAC5B,YAAY,EAAE,UAAU,KAAK,MAAM,kCAAS;AAAA,QAE5C,sDAAC,UAAK,WAAU,cAAc,qBAAU;AAAA;AAAA,IAC1C,IACE;AAAA,IAEJ;AAAA,MAAC,4BAAO;AAAA,MAAP;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,aAAa,QAAQ;AAAA,QAC9B,SAAS,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,QAC5B,YAAY,EAAE,UAAU,KAAK,OAAO,KAAK,MAAM,kCAAS;AAAA,QAExD,sDAAC,UAAK,WAAU,iBACd,sDAAC,yCAAa,MAAM,cAAc,GACpC;AAAA;AAAA,IACF;AAAA,IAEC,SACC;AAAA,MAAC,4BAAO;AAAA,MAAP;AAAA,QACC,WAAU;AAAA,QACV,SAAS,EAAE,SAAS,EAAE;AAAA,QACtB,SAAS,EAAE,SAAS,EAAE;AAAA,QACtB,YAAY,EAAE,UAAU,KAAK,OAAO,MAAM,MAAM,kCAAS;AAAA,QAExD;AAAA,UACC,EAAE,OAAO,eAAe,OAAO,MAAM,YAAY;AAAA,UACjD,EAAE,OAAO,UAAU,OAAO,MAAM,OAAO;AAAA,QACzC,EAAE,IAAI,CAAC,EAAE,OAAO,MAAM,MACpB;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YAEV;AAAA,0DAAC,UAAK,WAAU,0BAA0B,iBAAO,eAAe,KAAK,UAAI;AAAA,cACzE,4CAAC,UAAK,WAAU,yBAAyB,iBAAM;AAAA;AAAA;AAAA,UAJ1C;AAAA,QAKP,CACD;AAAA;AAAA,IACH;AAAA,IAGF,4CAAC,yCAAe,QAAgB,SAAS,eAAe;AAAA,KAC1D;AAEJ;","names":[]}
|
|
@@ -6,12 +6,12 @@ import { ActivityTicker } from "./activity-ticker.js";
|
|
|
6
6
|
function DiscoverHero({
|
|
7
7
|
stats,
|
|
8
8
|
orders,
|
|
9
|
-
badgeText
|
|
9
|
+
badgeText,
|
|
10
10
|
headlineText = "Create, share & explore",
|
|
11
11
|
getTickerHref
|
|
12
12
|
}) {
|
|
13
|
-
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pt-2
|
|
14
|
-
/* @__PURE__ */ jsx(
|
|
13
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pt-2", children: [
|
|
14
|
+
badgeText ? /* @__PURE__ */ jsx(
|
|
15
15
|
motion.div,
|
|
16
16
|
{
|
|
17
17
|
initial: { opacity: 0, y: 12 },
|
|
@@ -19,7 +19,7 @@ function DiscoverHero({
|
|
|
19
19
|
transition: { duration: 0.4, ease: EASE_OUT },
|
|
20
20
|
children: /* @__PURE__ */ jsx("span", { className: "pill-badge", children: badgeText })
|
|
21
21
|
}
|
|
22
|
-
),
|
|
22
|
+
) : null,
|
|
23
23
|
/* @__PURE__ */ jsx(
|
|
24
24
|
motion.div,
|
|
25
25
|
{
|
|
@@ -40,8 +40,7 @@ function DiscoverHero({
|
|
|
40
40
|
transition: { duration: 0.4, delay: 0.35, ease: EASE_OUT },
|
|
41
41
|
children: [
|
|
42
42
|
{ label: "Collections", value: stats.collections },
|
|
43
|
-
{ label: "Assets", value: stats.tokens }
|
|
44
|
-
{ label: "Sales", value: stats.sales }
|
|
43
|
+
{ label: "Assets", value: stats.tokens }
|
|
45
44
|
].map(({ label, value }) => /* @__PURE__ */ jsxs(
|
|
46
45
|
"div",
|
|
47
46
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/discover-hero.tsx"],"sourcesContent":["\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { KineticWords, EASE_OUT } from \"./motion-primitives.js\";\nimport { ActivityTicker } from \"./activity-ticker.js\";\nimport type { ApiOrder } from \"@medialane/sdk\";\n\nexport interface DiscoverHeroProps {\n stats: { collections: number; tokens: number; sales: number } | null;\n orders: ApiOrder[];\n badgeText?: string;\n headlineText?: string;\n getTickerHref?: (order: ApiOrder) => string;\n}\n\nexport function DiscoverHero({\n stats,\n orders,\n badgeText
|
|
1
|
+
{"version":3,"sources":["../../src/components/discover-hero.tsx"],"sourcesContent":["\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { KineticWords, EASE_OUT } from \"./motion-primitives.js\";\nimport { ActivityTicker } from \"./activity-ticker.js\";\nimport type { ApiOrder } from \"@medialane/sdk\";\n\nexport interface DiscoverHeroProps {\n stats: { collections: number; tokens: number; sales: number } | null;\n orders: ApiOrder[];\n badgeText?: string;\n headlineText?: string;\n getTickerHref?: (order: ApiOrder) => string;\n}\n\nexport function DiscoverHero({\n stats,\n orders,\n badgeText,\n headlineText = \"Create, share & explore\",\n getTickerHref,\n}: DiscoverHeroProps) {\n return (\n <div className=\"space-y-6 pt-2\">\n {badgeText ? (\n <motion.div\n initial={{ opacity: 0, y: 12 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.4, ease: EASE_OUT }}\n >\n <span className=\"pill-badge\">{badgeText}</span>\n </motion.div>\n ) : null}\n\n <motion.div\n className=\"text-3xl sm:text-4xl lg:text-5xl font-black leading-[1.1]\"\n style={{ perspective: \"800px\" }}\n initial={{ opacity: 0, y: 16 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, delay: 0.1, ease: EASE_OUT }}\n >\n <span className=\"gradient-text\">\n <KineticWords text={headlineText} />\n </span>\n </motion.div>\n\n {stats && (\n <motion.div\n className=\"flex flex-wrap gap-2\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.4, delay: 0.35, ease: EASE_OUT }}\n >\n {[\n { label: \"Collections\", value: stats.collections },\n { label: \"Assets\", value: stats.tokens },\n ].map(({ label, value }) => (\n <div\n key={label}\n className=\"flex items-center gap-1.5 rounded-full border border-border bg-card px-3.5 py-1.5 text-sm\"\n >\n <span className=\"font-bold tabular-nums\">{value?.toLocaleString() ?? \"—\"}</span>\n <span className=\"text-muted-foreground\">{label}</span>\n </div>\n ))}\n </motion.div>\n )}\n\n <ActivityTicker orders={orders} getHref={getTickerHref} />\n </div>\n );\n}\n"],"mappings":";AA8BU,cA2BE,YA3BF;AA5BV,SAAS,cAAc;AACvB,SAAS,cAAc,gBAAgB;AACvC,SAAS,sBAAsB;AAWxB,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AACF,GAAsB;AACpB,SACE,qBAAC,SAAI,WAAU,kBACZ;AAAA,gBACC;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,QAC5B,YAAY,EAAE,UAAU,KAAK,MAAM,SAAS;AAAA,QAE5C,8BAAC,UAAK,WAAU,cAAc,qBAAU;AAAA;AAAA,IAC1C,IACE;AAAA,IAEJ;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,aAAa,QAAQ;AAAA,QAC9B,SAAS,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,QAC5B,YAAY,EAAE,UAAU,KAAK,OAAO,KAAK,MAAM,SAAS;AAAA,QAExD,8BAAC,UAAK,WAAU,iBACd,8BAAC,gBAAa,MAAM,cAAc,GACpC;AAAA;AAAA,IACF;AAAA,IAEC,SACC;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC,WAAU;AAAA,QACV,SAAS,EAAE,SAAS,EAAE;AAAA,QACtB,SAAS,EAAE,SAAS,EAAE;AAAA,QACtB,YAAY,EAAE,UAAU,KAAK,OAAO,MAAM,MAAM,SAAS;AAAA,QAExD;AAAA,UACC,EAAE,OAAO,eAAe,OAAO,MAAM,YAAY;AAAA,UACjD,EAAE,OAAO,UAAU,OAAO,MAAM,OAAO;AAAA,QACzC,EAAE,IAAI,CAAC,EAAE,OAAO,MAAM,MACpB;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YAEV;AAAA,kCAAC,UAAK,WAAU,0BAA0B,iBAAO,eAAe,KAAK,UAAI;AAAA,cACzE,oBAAC,UAAK,WAAU,yBAAyB,iBAAM;AAAA;AAAA;AAAA,UAJ1C;AAAA,QAKP,CACD;AAAA;AAAA,IACH;AAAA,IAGF,oBAAC,kBAAe,QAAgB,SAAS,eAAe;AAAA,KAC1D;AAEJ;","names":[]}
|
|
@@ -43,25 +43,27 @@ function DiscoverPage({ useMarketActions, heroBadge, heroHeadline }) {
|
|
|
43
43
|
const { orders: feedOrders, isLoading: feedLoading } = (0, import_use_orders.useOrders)({ status: "ACTIVE", sort: "recent", limit: 10 });
|
|
44
44
|
const { collections, isLoading: collectionsLoading } = (0, import_use_collections.useCollections)(1, 8);
|
|
45
45
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_page_container.PageContainer, { className: "box-border max-w-full space-y-14 px-4 pt-20 sm:space-y-20 sm:px-5 lg:px-6", children: [
|
|
46
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-8 sm:space-y-10", children: [
|
|
47
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
48
|
+
import_discover_hero.DiscoverHero,
|
|
49
|
+
{
|
|
50
|
+
stats: stats ?? null,
|
|
51
|
+
orders: tickerOrders,
|
|
52
|
+
badgeText: heroBadge,
|
|
53
|
+
headlineText: heroHeadline,
|
|
54
|
+
getTickerHref: (o) => (0, import_sdk.assetHref)("STARKNET", o.nftContract, o.nftTokenId)
|
|
55
|
+
}
|
|
56
|
+
),
|
|
57
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
58
|
+
import_discover_collections_strip.DiscoverCollectionsStrip,
|
|
59
|
+
{
|
|
60
|
+
collections,
|
|
61
|
+
isLoading: collectionsLoading,
|
|
62
|
+
getHref: (c) => (0, import_sdk.collectionHref)("STARKNET", c.contractAddress),
|
|
63
|
+
allCollectionsHref: "/collections"
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
] }),
|
|
65
67
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
66
68
|
import_discover_feed_section.DiscoverActivityStrip,
|
|
67
69
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/discover-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { assetHref, collectionHref } from \"@medialane/sdk\";\nimport { PageContainer } from \"./page-container.js\";\nimport { DiscoverHero } from \"./discover-hero.js\";\nimport { DiscoverCollectionsStrip } from \"./discover-collections-strip.js\";\nimport { DiscoverActivityStrip } from \"./discover-feed-section.js\";\nimport { DiscoverCommunitySection } from \"./discover-community-section.js\";\nimport { IpTypeNav } from \"./ip-type-nav.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport type { CollectionMarketActions } from \"./collection-page.js\";\nimport { useOrders } from \"../utils/use-orders.js\";\nimport { useCollections } from \"../utils/use-collections.js\";\nimport { usePlatformStats } from \"../utils/use-platform-stats.js\";\nimport { isSameAddress } from \"../utils/same-address.js\";\n\nexport interface DiscoverPageProps {\n useMarketActions: () => CollectionMarketActions;\n heroBadge?: string;\n heroHeadline?: string;\n}\n\nexport function DiscoverPage({ useMarketActions, heroBadge, heroHeadline }: DiscoverPageProps) {\n const { walletAddress } = useMedialaneApp();\n const market = useMarketActions();\n const { stats } = usePlatformStats();\n const { orders: tickerOrders } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 14 });\n const { orders: feedOrders, isLoading: feedLoading } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 10 });\n const { collections, isLoading: collectionsLoading } = useCollections(1, 8);\n\n return (\n <PageContainer className=\"box-border max-w-full space-y-14 px-4 pt-20 sm:space-y-20 sm:px-5 lg:px-6\">\n <DiscoverHero\n
|
|
1
|
+
{"version":3,"sources":["../../src/components/discover-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { assetHref, collectionHref } from \"@medialane/sdk\";\nimport { PageContainer } from \"./page-container.js\";\nimport { DiscoverHero } from \"./discover-hero.js\";\nimport { DiscoverCollectionsStrip } from \"./discover-collections-strip.js\";\nimport { DiscoverActivityStrip } from \"./discover-feed-section.js\";\nimport { DiscoverCommunitySection } from \"./discover-community-section.js\";\nimport { IpTypeNav } from \"./ip-type-nav.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport type { CollectionMarketActions } from \"./collection-page.js\";\nimport { useOrders } from \"../utils/use-orders.js\";\nimport { useCollections } from \"../utils/use-collections.js\";\nimport { usePlatformStats } from \"../utils/use-platform-stats.js\";\nimport { isSameAddress } from \"../utils/same-address.js\";\n\nexport interface DiscoverPageProps {\n useMarketActions: () => CollectionMarketActions;\n heroBadge?: string;\n heroHeadline?: string;\n}\n\nexport function DiscoverPage({ useMarketActions, heroBadge, heroHeadline }: DiscoverPageProps) {\n const { walletAddress } = useMedialaneApp();\n const market = useMarketActions();\n const { stats } = usePlatformStats();\n const { orders: tickerOrders } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 14 });\n const { orders: feedOrders, isLoading: feedLoading } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 10 });\n const { collections, isLoading: collectionsLoading } = useCollections(1, 8);\n\n return (\n <PageContainer className=\"box-border max-w-full space-y-14 px-4 pt-20 sm:space-y-20 sm:px-5 lg:px-6\">\n <div className=\"space-y-8 sm:space-y-10\">\n <DiscoverHero\n stats={stats ?? null}\n orders={tickerOrders}\n badgeText={heroBadge}\n headlineText={heroHeadline}\n getTickerHref={(o) => assetHref(\"STARKNET\", o.nftContract, o.nftTokenId)}\n />\n <DiscoverCollectionsStrip\n collections={collections}\n isLoading={collectionsLoading}\n getHref={(c) => collectionHref(\"STARKNET\", c.contractAddress)}\n allCollectionsHref=\"/collections\"\n />\n </div>\n <DiscoverActivityStrip\n orders={feedOrders}\n isLoading={feedLoading}\n marketplaceHref=\"/marketplace\"\n onBuyOrder={market.buy}\n isOwnOrder={(o) => !!walletAddress && !!o.offerer && isSameAddress(o.offerer, walletAddress)}\n />\n <IpTypeNav />\n <DiscoverCommunitySection />\n {market.dialogs}\n </PageContainer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCM;AA9BN,iBAA0C;AAC1C,4BAA8B;AAC9B,2BAA6B;AAC7B,wCAAyC;AACzC,mCAAsC;AACtC,wCAAyC;AACzC,yBAA0B;AAC1B,2BAAgC;AAEhC,wBAA0B;AAC1B,6BAA+B;AAC/B,gCAAiC;AACjC,0BAA8B;AAQvB,SAAS,aAAa,EAAE,kBAAkB,WAAW,aAAa,GAAsB;AAC7F,QAAM,EAAE,cAAc,QAAI,sCAAgB;AAC1C,QAAM,SAAS,iBAAiB;AAChC,QAAM,EAAE,MAAM,QAAI,4CAAiB;AACnC,QAAM,EAAE,QAAQ,aAAa,QAAI,6BAAU,EAAE,QAAQ,UAAU,MAAM,UAAU,OAAO,GAAG,CAAC;AAC1F,QAAM,EAAE,QAAQ,YAAY,WAAW,YAAY,QAAI,6BAAU,EAAE,QAAQ,UAAU,MAAM,UAAU,OAAO,GAAG,CAAC;AAChH,QAAM,EAAE,aAAa,WAAW,mBAAmB,QAAI,uCAAe,GAAG,CAAC;AAE1E,SACE,6CAAC,uCAAc,WAAU,6EACvB;AAAA,iDAAC,SAAI,WAAU,2BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,SAAS;AAAA,UAChB,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,cAAc;AAAA,UACd,eAAe,CAAC,UAAM,sBAAU,YAAY,EAAE,aAAa,EAAE,UAAU;AAAA;AAAA,MACzE;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,WAAW;AAAA,UACX,SAAS,CAAC,UAAM,2BAAe,YAAY,EAAE,eAAe;AAAA,UAC5D,oBAAmB;AAAA;AAAA,MACrB;AAAA,OACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,iBAAgB;AAAA,QAChB,YAAY,OAAO;AAAA,QACnB,YAAY,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,eAAW,mCAAc,EAAE,SAAS,aAAa;AAAA;AAAA,IAC7F;AAAA,IACA,4CAAC,gCAAU;AAAA,IACX,4CAAC,8DAAyB;AAAA,IACzB,OAAO;AAAA,KACV;AAEJ;","names":[]}
|
|
@@ -20,25 +20,27 @@ function DiscoverPage({ useMarketActions, heroBadge, heroHeadline }) {
|
|
|
20
20
|
const { orders: feedOrders, isLoading: feedLoading } = useOrders({ status: "ACTIVE", sort: "recent", limit: 10 });
|
|
21
21
|
const { collections, isLoading: collectionsLoading } = useCollections(1, 8);
|
|
22
22
|
return /* @__PURE__ */ jsxs(PageContainer, { className: "box-border max-w-full space-y-14 px-4 pt-20 sm:space-y-20 sm:px-5 lg:px-6", children: [
|
|
23
|
-
/* @__PURE__ */
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
23
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-8 sm:space-y-10", children: [
|
|
24
|
+
/* @__PURE__ */ jsx(
|
|
25
|
+
DiscoverHero,
|
|
26
|
+
{
|
|
27
|
+
stats: stats ?? null,
|
|
28
|
+
orders: tickerOrders,
|
|
29
|
+
badgeText: heroBadge,
|
|
30
|
+
headlineText: heroHeadline,
|
|
31
|
+
getTickerHref: (o) => assetHref("STARKNET", o.nftContract, o.nftTokenId)
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
/* @__PURE__ */ jsx(
|
|
35
|
+
DiscoverCollectionsStrip,
|
|
36
|
+
{
|
|
37
|
+
collections,
|
|
38
|
+
isLoading: collectionsLoading,
|
|
39
|
+
getHref: (c) => collectionHref("STARKNET", c.contractAddress),
|
|
40
|
+
allCollectionsHref: "/collections"
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] }),
|
|
42
44
|
/* @__PURE__ */ jsx(
|
|
43
45
|
DiscoverActivityStrip,
|
|
44
46
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/discover-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { assetHref, collectionHref } from \"@medialane/sdk\";\nimport { PageContainer } from \"./page-container.js\";\nimport { DiscoverHero } from \"./discover-hero.js\";\nimport { DiscoverCollectionsStrip } from \"./discover-collections-strip.js\";\nimport { DiscoverActivityStrip } from \"./discover-feed-section.js\";\nimport { DiscoverCommunitySection } from \"./discover-community-section.js\";\nimport { IpTypeNav } from \"./ip-type-nav.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport type { CollectionMarketActions } from \"./collection-page.js\";\nimport { useOrders } from \"../utils/use-orders.js\";\nimport { useCollections } from \"../utils/use-collections.js\";\nimport { usePlatformStats } from \"../utils/use-platform-stats.js\";\nimport { isSameAddress } from \"../utils/same-address.js\";\n\nexport interface DiscoverPageProps {\n useMarketActions: () => CollectionMarketActions;\n heroBadge?: string;\n heroHeadline?: string;\n}\n\nexport function DiscoverPage({ useMarketActions, heroBadge, heroHeadline }: DiscoverPageProps) {\n const { walletAddress } = useMedialaneApp();\n const market = useMarketActions();\n const { stats } = usePlatformStats();\n const { orders: tickerOrders } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 14 });\n const { orders: feedOrders, isLoading: feedLoading } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 10 });\n const { collections, isLoading: collectionsLoading } = useCollections(1, 8);\n\n return (\n <PageContainer className=\"box-border max-w-full space-y-14 px-4 pt-20 sm:space-y-20 sm:px-5 lg:px-6\">\n <DiscoverHero\n
|
|
1
|
+
{"version":3,"sources":["../../src/components/discover-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { assetHref, collectionHref } from \"@medialane/sdk\";\nimport { PageContainer } from \"./page-container.js\";\nimport { DiscoverHero } from \"./discover-hero.js\";\nimport { DiscoverCollectionsStrip } from \"./discover-collections-strip.js\";\nimport { DiscoverActivityStrip } from \"./discover-feed-section.js\";\nimport { DiscoverCommunitySection } from \"./discover-community-section.js\";\nimport { IpTypeNav } from \"./ip-type-nav.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport type { CollectionMarketActions } from \"./collection-page.js\";\nimport { useOrders } from \"../utils/use-orders.js\";\nimport { useCollections } from \"../utils/use-collections.js\";\nimport { usePlatformStats } from \"../utils/use-platform-stats.js\";\nimport { isSameAddress } from \"../utils/same-address.js\";\n\nexport interface DiscoverPageProps {\n useMarketActions: () => CollectionMarketActions;\n heroBadge?: string;\n heroHeadline?: string;\n}\n\nexport function DiscoverPage({ useMarketActions, heroBadge, heroHeadline }: DiscoverPageProps) {\n const { walletAddress } = useMedialaneApp();\n const market = useMarketActions();\n const { stats } = usePlatformStats();\n const { orders: tickerOrders } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 14 });\n const { orders: feedOrders, isLoading: feedLoading } = useOrders({ status: \"ACTIVE\", sort: \"recent\", limit: 10 });\n const { collections, isLoading: collectionsLoading } = useCollections(1, 8);\n\n return (\n <PageContainer className=\"box-border max-w-full space-y-14 px-4 pt-20 sm:space-y-20 sm:px-5 lg:px-6\">\n <div className=\"space-y-8 sm:space-y-10\">\n <DiscoverHero\n stats={stats ?? null}\n orders={tickerOrders}\n badgeText={heroBadge}\n headlineText={heroHeadline}\n getTickerHref={(o) => assetHref(\"STARKNET\", o.nftContract, o.nftTokenId)}\n />\n <DiscoverCollectionsStrip\n collections={collections}\n isLoading={collectionsLoading}\n getHref={(c) => collectionHref(\"STARKNET\", c.contractAddress)}\n allCollectionsHref=\"/collections\"\n />\n </div>\n <DiscoverActivityStrip\n orders={feedOrders}\n isLoading={feedLoading}\n marketplaceHref=\"/marketplace\"\n onBuyOrder={market.buy}\n isOwnOrder={(o) => !!walletAddress && !!o.offerer && isSameAddress(o.offerer, walletAddress)}\n />\n <IpTypeNav />\n <DiscoverCommunitySection />\n {market.dialogs}\n </PageContainer>\n );\n}\n"],"mappings":";AAgCM,SACE,KADF;AA9BN,SAAS,WAAW,sBAAsB;AAC1C,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,gCAAgC;AACzC,SAAS,6BAA6B;AACtC,SAAS,gCAAgC;AACzC,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAEhC,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAQvB,SAAS,aAAa,EAAE,kBAAkB,WAAW,aAAa,GAAsB;AAC7F,QAAM,EAAE,cAAc,IAAI,gBAAgB;AAC1C,QAAM,SAAS,iBAAiB;AAChC,QAAM,EAAE,MAAM,IAAI,iBAAiB;AACnC,QAAM,EAAE,QAAQ,aAAa,IAAI,UAAU,EAAE,QAAQ,UAAU,MAAM,UAAU,OAAO,GAAG,CAAC;AAC1F,QAAM,EAAE,QAAQ,YAAY,WAAW,YAAY,IAAI,UAAU,EAAE,QAAQ,UAAU,MAAM,UAAU,OAAO,GAAG,CAAC;AAChH,QAAM,EAAE,aAAa,WAAW,mBAAmB,IAAI,eAAe,GAAG,CAAC;AAE1E,SACE,qBAAC,iBAAc,WAAU,6EACvB;AAAA,yBAAC,SAAI,WAAU,2BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,SAAS;AAAA,UAChB,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,cAAc;AAAA,UACd,eAAe,CAAC,MAAM,UAAU,YAAY,EAAE,aAAa,EAAE,UAAU;AAAA;AAAA,MACzE;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,WAAW;AAAA,UACX,SAAS,CAAC,MAAM,eAAe,YAAY,EAAE,eAAe;AAAA,UAC5D,oBAAmB;AAAA;AAAA,MACrB;AAAA,OACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,iBAAgB;AAAA,QAChB,YAAY,OAAO;AAAA,QACnB,YAAY,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,cAAc,EAAE,SAAS,aAAa;AAAA;AAAA,IAC7F;AAAA,IACA,oBAAC,aAAU;AAAA,IACX,oBAAC,4BAAyB;AAAA,IACzB,OAAO;AAAA,KACV;AAEJ;","names":[]}
|
|
@@ -36,8 +36,8 @@ function PageBackdrop({ image }) {
|
|
|
36
36
|
src: image,
|
|
37
37
|
alt: "",
|
|
38
38
|
"aria-hidden": true,
|
|
39
|
-
className: "absolute inset-0 w-full h-full object-cover opacity-
|
|
40
|
-
style: { filter: "blur(
|
|
39
|
+
className: "absolute inset-0 w-full h-full object-cover opacity-50 dark:opacity-40 scale-110",
|
|
40
|
+
style: { filter: "blur(80px) saturate(1.8)" }
|
|
41
41
|
}
|
|
42
42
|
) });
|
|
43
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/media-header.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, type ElementType, type ReactNode } from \"react\";\nimport { Skeleton } from \"./skeleton.js\";\n\nexport interface MediaHeaderProps {\n image: string | null;\n imageAlt: string;\n fallbackIcon: ElementType;\n loading?: boolean;\n children: ReactNode;\n}\n\nexport function PageBackdrop({ image }: { image: string | null }) {\n if (!image) return null;\n return (\n <div className=\"fixed inset-0 -z-10 overflow-hidden pointer-events-none\">\n <img\n src={image}\n alt=\"\"\n aria-hidden\n className=\"absolute inset-0 w-full h-full object-cover opacity-
|
|
1
|
+
{"version":3,"sources":["../../src/components/media-header.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, type ElementType, type ReactNode } from \"react\";\nimport { Skeleton } from \"./skeleton.js\";\n\nexport interface MediaHeaderProps {\n image: string | null;\n imageAlt: string;\n fallbackIcon: ElementType;\n loading?: boolean;\n children: ReactNode;\n}\n\nexport function PageBackdrop({ image }: { image: string | null }) {\n if (!image) return null;\n return (\n <div className=\"fixed inset-0 -z-10 overflow-hidden pointer-events-none\">\n <img\n src={image}\n alt=\"\"\n aria-hidden\n className=\"absolute inset-0 w-full h-full object-cover opacity-50 dark:opacity-40 scale-110\"\n style={{ filter: \"blur(80px) saturate(1.8)\" }}\n />\n </div>\n );\n}\n\nconst FRAME = \"w-full sm:w-44 lg:w-56 shrink-0 rounded-2xl overflow-hidden bg-muted\";\n\nexport function MediaHeader({ image, imageAlt, fallbackIcon: FallbackIcon, loading = false, children }: MediaHeaderProps) {\n const [imgError, setImgError] = useState(false);\n\n if (loading) {\n return (\n <div className=\"flex flex-col sm:flex-row gap-6 lg:gap-8 items-start lg:max-w-5xl lg:mx-auto\">\n <Skeleton className={`${FRAME} aspect-square`} />\n <div className=\"flex-1 w-full space-y-3\">\n <Skeleton className=\"h-6 w-40\" />\n <Skeleton className=\"h-10 w-2/3\" />\n <Skeleton className=\"h-16 w-full\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col sm:flex-row gap-6 lg:gap-8 items-start lg:max-w-5xl lg:mx-auto\">\n <PageBackdrop image={image} />\n\n <div className={FRAME}>\n {image && !imgError ? (\n <img src={image} alt={imageAlt} onError={() => setImgError(true)} className=\"block w-full h-auto max-h-[80vh] object-contain sm:aspect-square sm:h-full sm:object-cover\" />\n ) : (\n <div className=\"aspect-square w-full flex items-center justify-center\">\n <FallbackIcon className=\"h-1/3 w-1/3 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n\n <div className=\"flex-1 space-y-5 min-w-0 w-full\">{children}</div>\n </div>\n );\n}\n\nexport function HeaderStats({ children }: { children: ReactNode }) {\n return <div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-muted-foreground\">{children}</div>;\n}\n\nexport function HeaderStat({ label, children }: { label: string; children: ReactNode }) {\n return (\n <span className=\"inline-flex items-center gap-1.5\">\n <span>{label}</span>\n <span className=\"font-semibold text-foreground tabular-nums\">{children}</span>\n </span>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBM;AAfN,mBAA2D;AAC3D,sBAAyB;AAUlB,SAAS,aAAa,EAAE,MAAM,GAA6B;AAChE,MAAI,CAAC,MAAO,QAAO;AACnB,SACE,4CAAC,SAAI,WAAU,2DACb;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,KAAI;AAAA,MACJ,eAAW;AAAA,MACX,WAAU;AAAA,MACV,OAAO,EAAE,QAAQ,2BAA2B;AAAA;AAAA,EAC9C,GACF;AAEJ;AAEA,MAAM,QAAQ;AAEP,SAAS,YAAY,EAAE,OAAO,UAAU,cAAc,cAAc,UAAU,OAAO,SAAS,GAAqB;AACxH,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,KAAK;AAE9C,MAAI,SAAS;AACX,WACE,6CAAC,SAAI,WAAU,gFACb;AAAA,kDAAC,4BAAS,WAAW,GAAG,KAAK,kBAAkB;AAAA,MAC/C,6CAAC,SAAI,WAAU,2BACb;AAAA,oDAAC,4BAAS,WAAU,YAAW;AAAA,QAC/B,4CAAC,4BAAS,WAAU,cAAa;AAAA,QACjC,4CAAC,4BAAS,WAAU,eAAc;AAAA,SACpC;AAAA,OACF;AAAA,EAEJ;AAEA,SACE,6CAAC,SAAI,WAAU,gFACb;AAAA,gDAAC,gBAAa,OAAc;AAAA,IAE5B,4CAAC,SAAI,WAAW,OACb,mBAAS,CAAC,WACT,4CAAC,SAAI,KAAK,OAAO,KAAK,UAAU,SAAS,MAAM,YAAY,IAAI,GAAG,WAAU,8FAA6F,IAEzK,4CAAC,SAAI,WAAU,yDACb,sDAAC,gBAAa,WAAU,wCAAuC,GACjE,GAEJ;AAAA,IAEA,4CAAC,SAAI,WAAU,mCAAmC,UAAS;AAAA,KAC7D;AAEJ;AAEO,SAAS,YAAY,EAAE,SAAS,GAA4B;AACjE,SAAO,4CAAC,SAAI,WAAU,6EAA6E,UAAS;AAC9G;AAEO,SAAS,WAAW,EAAE,OAAO,SAAS,GAA2C;AACtF,SACE,6CAAC,UAAK,WAAU,oCACd;AAAA,gDAAC,UAAM,iBAAM;AAAA,IACb,4CAAC,UAAK,WAAU,8CAA8C,UAAS;AAAA,KACzE;AAEJ;","names":[]}
|
|
@@ -10,8 +10,8 @@ function PageBackdrop({ image }) {
|
|
|
10
10
|
src: image,
|
|
11
11
|
alt: "",
|
|
12
12
|
"aria-hidden": true,
|
|
13
|
-
className: "absolute inset-0 w-full h-full object-cover opacity-
|
|
14
|
-
style: { filter: "blur(
|
|
13
|
+
className: "absolute inset-0 w-full h-full object-cover opacity-50 dark:opacity-40 scale-110",
|
|
14
|
+
style: { filter: "blur(80px) saturate(1.8)" }
|
|
15
15
|
}
|
|
16
16
|
) });
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/media-header.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, type ElementType, type ReactNode } from \"react\";\nimport { Skeleton } from \"./skeleton.js\";\n\nexport interface MediaHeaderProps {\n image: string | null;\n imageAlt: string;\n fallbackIcon: ElementType;\n loading?: boolean;\n children: ReactNode;\n}\n\nexport function PageBackdrop({ image }: { image: string | null }) {\n if (!image) return null;\n return (\n <div className=\"fixed inset-0 -z-10 overflow-hidden pointer-events-none\">\n <img\n src={image}\n alt=\"\"\n aria-hidden\n className=\"absolute inset-0 w-full h-full object-cover opacity-
|
|
1
|
+
{"version":3,"sources":["../../src/components/media-header.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, type ElementType, type ReactNode } from \"react\";\nimport { Skeleton } from \"./skeleton.js\";\n\nexport interface MediaHeaderProps {\n image: string | null;\n imageAlt: string;\n fallbackIcon: ElementType;\n loading?: boolean;\n children: ReactNode;\n}\n\nexport function PageBackdrop({ image }: { image: string | null }) {\n if (!image) return null;\n return (\n <div className=\"fixed inset-0 -z-10 overflow-hidden pointer-events-none\">\n <img\n src={image}\n alt=\"\"\n aria-hidden\n className=\"absolute inset-0 w-full h-full object-cover opacity-50 dark:opacity-40 scale-110\"\n style={{ filter: \"blur(80px) saturate(1.8)\" }}\n />\n </div>\n );\n}\n\nconst FRAME = \"w-full sm:w-44 lg:w-56 shrink-0 rounded-2xl overflow-hidden bg-muted\";\n\nexport function MediaHeader({ image, imageAlt, fallbackIcon: FallbackIcon, loading = false, children }: MediaHeaderProps) {\n const [imgError, setImgError] = useState(false);\n\n if (loading) {\n return (\n <div className=\"flex flex-col sm:flex-row gap-6 lg:gap-8 items-start lg:max-w-5xl lg:mx-auto\">\n <Skeleton className={`${FRAME} aspect-square`} />\n <div className=\"flex-1 w-full space-y-3\">\n <Skeleton className=\"h-6 w-40\" />\n <Skeleton className=\"h-10 w-2/3\" />\n <Skeleton className=\"h-16 w-full\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col sm:flex-row gap-6 lg:gap-8 items-start lg:max-w-5xl lg:mx-auto\">\n <PageBackdrop image={image} />\n\n <div className={FRAME}>\n {image && !imgError ? (\n <img src={image} alt={imageAlt} onError={() => setImgError(true)} className=\"block w-full h-auto max-h-[80vh] object-contain sm:aspect-square sm:h-full sm:object-cover\" />\n ) : (\n <div className=\"aspect-square w-full flex items-center justify-center\">\n <FallbackIcon className=\"h-1/3 w-1/3 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n\n <div className=\"flex-1 space-y-5 min-w-0 w-full\">{children}</div>\n </div>\n );\n}\n\nexport function HeaderStats({ children }: { children: ReactNode }) {\n return <div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-muted-foreground\">{children}</div>;\n}\n\nexport function HeaderStat({ label, children }: { label: string; children: ReactNode }) {\n return (\n <span className=\"inline-flex items-center gap-1.5\">\n <span>{label}</span>\n <span className=\"font-semibold text-foreground tabular-nums\">{children}</span>\n </span>\n );\n}\n"],"mappings":";AAiBM,cAoBE,YApBF;AAfN,SAAS,gBAAkD;AAC3D,SAAS,gBAAgB;AAUlB,SAAS,aAAa,EAAE,MAAM,GAA6B;AAChE,MAAI,CAAC,MAAO,QAAO;AACnB,SACE,oBAAC,SAAI,WAAU,2DACb;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,KAAI;AAAA,MACJ,eAAW;AAAA,MACX,WAAU;AAAA,MACV,OAAO,EAAE,QAAQ,2BAA2B;AAAA;AAAA,EAC9C,GACF;AAEJ;AAEA,MAAM,QAAQ;AAEP,SAAS,YAAY,EAAE,OAAO,UAAU,cAAc,cAAc,UAAU,OAAO,SAAS,GAAqB;AACxH,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,MAAI,SAAS;AACX,WACE,qBAAC,SAAI,WAAU,gFACb;AAAA,0BAAC,YAAS,WAAW,GAAG,KAAK,kBAAkB;AAAA,MAC/C,qBAAC,SAAI,WAAU,2BACb;AAAA,4BAAC,YAAS,WAAU,YAAW;AAAA,QAC/B,oBAAC,YAAS,WAAU,cAAa;AAAA,QACjC,oBAAC,YAAS,WAAU,eAAc;AAAA,SACpC;AAAA,OACF;AAAA,EAEJ;AAEA,SACE,qBAAC,SAAI,WAAU,gFACb;AAAA,wBAAC,gBAAa,OAAc;AAAA,IAE5B,oBAAC,SAAI,WAAW,OACb,mBAAS,CAAC,WACT,oBAAC,SAAI,KAAK,OAAO,KAAK,UAAU,SAAS,MAAM,YAAY,IAAI,GAAG,WAAU,8FAA6F,IAEzK,oBAAC,SAAI,WAAU,yDACb,8BAAC,gBAAa,WAAU,wCAAuC,GACjE,GAEJ;AAAA,IAEA,oBAAC,SAAI,WAAU,mCAAmC,UAAS;AAAA,KAC7D;AAEJ;AAEO,SAAS,YAAY,EAAE,SAAS,GAA4B;AACjE,SAAO,oBAAC,SAAI,WAAU,6EAA6E,UAAS;AAC9G;AAEO,SAAS,WAAW,EAAE,OAAO,SAAS,GAA2C;AACtF,SACE,qBAAC,UAAK,WAAU,oCACd;AAAA,wBAAC,UAAM,iBAAM;AAAA,IACb,oBAAC,UAAK,WAAU,8CAA8C,UAAS;AAAA,KACzE;AAEJ;","names":[]}
|
|
@@ -7,7 +7,7 @@ declare function useTokenBalance(symbol: string | null, holderAddress: string |
|
|
|
7
7
|
rawBalance: bigint | null;
|
|
8
8
|
isLoading: boolean;
|
|
9
9
|
error: any;
|
|
10
|
-
decimals:
|
|
10
|
+
decimals: 8 | 6 | 18;
|
|
11
11
|
};
|
|
12
12
|
declare function hasSufficientBalance(rawBalance: bigint | null, requiredHuman: string, decimals: number): boolean | null;
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ declare function useTokenBalance(symbol: string | null, holderAddress: string |
|
|
|
7
7
|
rawBalance: bigint | null;
|
|
8
8
|
isLoading: boolean;
|
|
9
9
|
error: any;
|
|
10
|
-
decimals:
|
|
10
|
+
decimals: 8 | 6 | 18;
|
|
11
11
|
};
|
|
12
12
|
declare function hasSufficientBalance(rawBalance: bigint | null, requiredHuman: string, decimals: number): boolean | null;
|
|
13
13
|
|