@medialane/ui 0.294.0 → 0.295.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/components/account/input-otp.d.cts +2 -2
  2. package/dist/components/account/input-otp.d.ts +2 -2
  3. package/dist/components/badge.d.cts +1 -1
  4. package/dist/components/badge.d.ts +1 -1
  5. package/dist/components/button.d.cts +2 -2
  6. package/dist/components/button.d.ts +2 -2
  7. package/dist/components/create-sponsorship-aside.cjs +52 -0
  8. package/dist/components/create-sponsorship-aside.cjs.map +1 -0
  9. package/dist/components/create-sponsorship-aside.d.cts +5 -0
  10. package/dist/components/create-sponsorship-aside.d.ts +5 -0
  11. package/dist/components/create-sponsorship-aside.js +28 -0
  12. package/dist/components/create-sponsorship-aside.js.map +1 -0
  13. package/dist/components/fast-mint/fast-mint.d.cts +2 -2
  14. package/dist/components/fast-mint/fast-mint.d.ts +2 -2
  15. package/dist/components/journey-content.cjs +156 -0
  16. package/dist/components/journey-content.cjs.map +1 -0
  17. package/dist/components/journey-content.d.cts +7 -0
  18. package/dist/components/journey-content.d.ts +7 -0
  19. package/dist/components/journey-content.js +122 -0
  20. package/dist/components/journey-content.js.map +1 -0
  21. package/dist/components/page-skeletons.cjs +152 -0
  22. package/dist/components/page-skeletons.cjs.map +1 -0
  23. package/dist/components/page-skeletons.d.cts +10 -0
  24. package/dist/components/page-skeletons.d.ts +10 -0
  25. package/dist/components/page-skeletons.js +123 -0
  26. package/dist/components/page-skeletons.js.map +1 -0
  27. package/dist/components/rewards-page.cjs +41 -0
  28. package/dist/components/rewards-page.cjs.map +1 -0
  29. package/dist/components/rewards-page.d.cts +5 -0
  30. package/dist/components/rewards-page.d.ts +5 -0
  31. package/dist/components/rewards-page.js +17 -0
  32. package/dist/components/rewards-page.js.map +1 -0
  33. package/dist/components/route-error.cjs +65 -0
  34. package/dist/components/route-error.cjs.map +1 -0
  35. package/dist/components/route-error.d.cts +10 -0
  36. package/dist/components/route-error.d.ts +10 -0
  37. package/dist/components/route-error.js +41 -0
  38. package/dist/components/route-error.js.map +1 -0
  39. package/dist/components/settings-snapshots.cjs +124 -0
  40. package/dist/components/settings-snapshots.cjs.map +1 -0
  41. package/dist/components/settings-snapshots.d.cts +12 -0
  42. package/dist/components/settings-snapshots.d.ts +12 -0
  43. package/dist/components/settings-snapshots.js +89 -0
  44. package/dist/components/settings-snapshots.js.map +1 -0
  45. package/dist/components/sheet.d.cts +1 -1
  46. package/dist/components/sheet.d.ts +1 -1
  47. package/dist/index.cjs +30 -0
  48. package/dist/index.cjs.map +1 -1
  49. package/dist/index.d.cts +6 -0
  50. package/dist/index.d.ts +6 -0
  51. package/dist/index.js +18 -0
  52. package/dist/index.js.map +1 -1
  53. package/package.json +1 -1
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var settings_snapshots_exports = {};
31
+ __export(settings_snapshots_exports, {
32
+ PortfolioSnapshot: () => PortfolioSnapshot,
33
+ RewardsSnapshot: () => RewardsSnapshot
34
+ });
35
+ module.exports = __toCommonJS(settings_snapshots_exports);
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_link = __toESM(require("./link.js"), 1);
38
+ var import_lucide_react = require("lucide-react");
39
+ var import_level_badge = require("./rewards/level-badge.js");
40
+ var import_use_rewards = require("../utils/use-rewards.js");
41
+ function SnapshotStat({ icon: Icon, value, label }) {
42
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 min-w-0 text-center", children: [
43
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex items-center justify-center gap-1 text-muted-foreground/70", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-3 w-3" }) }),
44
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-1 text-lg font-bold tabular-nums text-foreground", children: value }),
45
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-[10.5px] text-muted-foreground", children: label })
46
+ ] });
47
+ }
48
+ function PortfolioSnapshot({ assets, listings, collections }) {
49
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "rounded-2xl border border-border/60 bg-card p-5 space-y-4", children: [
50
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
51
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-2xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Portfolio" }),
52
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-0.5 text-xs text-muted-foreground/70", children: "What you own on Medialane" })
53
+ ] }),
54
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center border-t border-border/60 pt-4", children: [
55
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SnapshotStat, { icon: import_lucide_react.Gem, value: assets, label: "Assets" }),
56
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SnapshotStat, { icon: import_lucide_react.Tag, value: listings, label: "Listed" }),
57
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SnapshotStat, { icon: import_lucide_react.LayoutGrid, value: collections, label: "Collections" })
58
+ ] }),
59
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
60
+ import_link.default,
61
+ {
62
+ href: "/portfolio",
63
+ className: "flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline",
64
+ children: [
65
+ "View portfolio",
66
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowUpRight, { className: "h-3 w-3" })
67
+ ]
68
+ }
69
+ )
70
+ ] });
71
+ }
72
+ function RewardsSnapshot({ address }) {
73
+ const { data: rewards } = (0, import_use_rewards.useRewards)(address);
74
+ if (!rewards) return null;
75
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "rounded-2xl border border-border/60 bg-card p-5 space-y-4", children: [
76
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between", children: [
77
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
78
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-2xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Rewards" }),
79
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-0.5 text-xs text-muted-foreground/70", children: "Your creator journey" })
80
+ ] }),
81
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Trophy, { className: "h-4 w-4 text-muted-foreground/50" })
82
+ ] }),
83
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "border-t border-border/60 pt-4 space-y-2", children: [
84
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between", children: [
85
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_level_badge.LevelBadge, { level: rewards.currentLevel, name: rewards.currentLevelName, badgeColor: rewards.badgeColor }),
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "text-xs tabular-nums text-muted-foreground", children: [
87
+ rewards.totalXp.toLocaleString(),
88
+ " XP"
89
+ ] })
90
+ ] }),
91
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-2 rounded-full bg-muted-foreground/15 overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ "div",
93
+ {
94
+ className: "h-full rounded-full",
95
+ style: { width: `${rewards.progressPct}%`, backgroundColor: rewards.badgeColor }
96
+ }
97
+ ) }),
98
+ rewards.nextLevel && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { className: "text-[10.5px] text-muted-foreground", children: [
99
+ rewards.nextLevel.xpRequired - rewards.totalXp,
100
+ " XP to Lv.",
101
+ rewards.nextLevel.level,
102
+ " ",
103
+ rewards.nextLevel.name
104
+ ] })
105
+ ] }),
106
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
107
+ import_link.default,
108
+ {
109
+ href: "/rewards",
110
+ className: "flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline",
111
+ children: [
112
+ "View rewards",
113
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowUpRight, { className: "h-3 w-3" })
114
+ ]
115
+ }
116
+ )
117
+ ] });
118
+ }
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ PortfolioSnapshot,
122
+ RewardsSnapshot
123
+ });
124
+ //# sourceMappingURL=settings-snapshots.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/settings-snapshots.tsx"],"sourcesContent":["\"use client\";\n\nimport type React from \"react\";\nimport Link from \"./link.js\";\nimport { ArrowUpRight, Gem, LayoutGrid, Tag, Trophy } from \"lucide-react\";\nimport { LevelBadge } from \"./rewards/level-badge.js\";\nimport { useRewards } from \"../utils/use-rewards.js\";\n\nfunction SnapshotStat({ icon: Icon, value, label }: { icon: React.ElementType; value: number; label: string }) {\n return (\n <div className=\"flex-1 min-w-0 text-center\">\n <div className=\"flex items-center justify-center gap-1 text-muted-foreground/70\">\n <Icon className=\"h-3 w-3\" />\n </div>\n <p className=\"mt-1 text-lg font-bold tabular-nums text-foreground\">{value}</p>\n <p className=\"text-[10.5px] text-muted-foreground\">{label}</p>\n </div>\n );\n}\n\nexport function PortfolioSnapshot({ assets, listings, collections }: { assets: number; listings: number; collections: number }) {\n return (\n <div className=\"rounded-2xl border border-border/60 bg-card p-5 space-y-4\">\n <div>\n <p className=\"text-2xs font-semibold uppercase tracking-wide text-muted-foreground\">Portfolio</p>\n <p className=\"mt-0.5 text-xs text-muted-foreground/70\">What you own on Medialane</p>\n </div>\n <div className=\"flex items-center border-t border-border/60 pt-4\">\n <SnapshotStat icon={Gem} value={assets} label=\"Assets\" />\n <SnapshotStat icon={Tag} value={listings} label=\"Listed\" />\n <SnapshotStat icon={LayoutGrid} value={collections} label=\"Collections\" />\n </div>\n <Link\n href=\"/portfolio\"\n className=\"flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline\"\n >\n View portfolio\n <ArrowUpRight className=\"h-3 w-3\" />\n </Link>\n </div>\n );\n}\n\nexport function RewardsSnapshot({ address }: { address?: string | null }) {\n const { data: rewards } = useRewards(address);\n if (!rewards) return null;\n\n return (\n <div className=\"rounded-2xl border border-border/60 bg-card p-5 space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-2xs font-semibold uppercase tracking-wide text-muted-foreground\">Rewards</p>\n <p className=\"mt-0.5 text-xs text-muted-foreground/70\">Your creator journey</p>\n </div>\n <Trophy className=\"h-4 w-4 text-muted-foreground/50\" />\n </div>\n <div className=\"border-t border-border/60 pt-4 space-y-2\">\n <div className=\"flex items-center justify-between\">\n <LevelBadge level={rewards.currentLevel} name={rewards.currentLevelName} badgeColor={rewards.badgeColor} />\n <span className=\"text-xs tabular-nums text-muted-foreground\">{rewards.totalXp.toLocaleString()} XP</span>\n </div>\n <div className=\"h-2 rounded-full bg-muted-foreground/15 overflow-hidden\">\n <div\n className=\"h-full rounded-full\"\n style={{ width: `${rewards.progressPct}%`, backgroundColor: rewards.badgeColor }}\n />\n </div>\n {rewards.nextLevel && (\n <p className=\"text-[10.5px] text-muted-foreground\">\n {rewards.nextLevel.xpRequired - rewards.totalXp} XP to Lv.{rewards.nextLevel.level} {rewards.nextLevel.name}\n </p>\n )}\n </div>\n <Link\n href=\"/rewards\"\n className=\"flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline\"\n >\n View rewards\n <ArrowUpRight className=\"h-3 w-3\" />\n </Link>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUI;AAPJ,kBAAiB;AACjB,0BAA2D;AAC3D,yBAA2B;AAC3B,yBAA2B;AAE3B,SAAS,aAAa,EAAE,MAAM,MAAM,OAAO,MAAM,GAA8D;AAC7G,SACE,6CAAC,SAAI,WAAU,8BACb;AAAA,gDAAC,SAAI,WAAU,mEACb,sDAAC,QAAK,WAAU,WAAU,GAC5B;AAAA,IACA,4CAAC,OAAE,WAAU,uDAAuD,iBAAM;AAAA,IAC1E,4CAAC,OAAE,WAAU,uCAAuC,iBAAM;AAAA,KAC5D;AAEJ;AAEO,SAAS,kBAAkB,EAAE,QAAQ,UAAU,YAAY,GAA8D;AAC9H,SACE,6CAAC,SAAI,WAAU,6DACb;AAAA,iDAAC,SACC;AAAA,kDAAC,OAAE,WAAU,wEAAuE,uBAAS;AAAA,MAC7F,4CAAC,OAAE,WAAU,2CAA0C,uCAAyB;AAAA,OAClF;AAAA,IACA,6CAAC,SAAI,WAAU,oDACb;AAAA,kDAAC,gBAAa,MAAM,yBAAK,OAAO,QAAQ,OAAM,UAAS;AAAA,MACvD,4CAAC,gBAAa,MAAM,yBAAK,OAAO,UAAU,OAAM,UAAS;AAAA,MACzD,4CAAC,gBAAa,MAAM,gCAAY,OAAO,aAAa,OAAM,eAAc;AAAA,OAC1E;AAAA,IACA;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACX;AAAA;AAAA,UAEC,4CAAC,oCAAa,WAAU,WAAU;AAAA;AAAA;AAAA,IACpC;AAAA,KACF;AAEJ;AAEO,SAAS,gBAAgB,EAAE,QAAQ,GAAgC;AACxE,QAAM,EAAE,MAAM,QAAQ,QAAI,+BAAW,OAAO;AAC5C,MAAI,CAAC,QAAS,QAAO;AAErB,SACE,6CAAC,SAAI,WAAU,6DACb;AAAA,iDAAC,SAAI,WAAU,qCACb;AAAA,mDAAC,SACC;AAAA,oDAAC,OAAE,WAAU,wEAAuE,qBAAO;AAAA,QAC3F,4CAAC,OAAE,WAAU,2CAA0C,kCAAoB;AAAA,SAC7E;AAAA,MACA,4CAAC,8BAAO,WAAU,oCAAmC;AAAA,OACvD;AAAA,IACA,6CAAC,SAAI,WAAU,4CACb;AAAA,mDAAC,SAAI,WAAU,qCACb;AAAA,oDAAC,iCAAW,OAAO,QAAQ,cAAc,MAAM,QAAQ,kBAAkB,YAAY,QAAQ,YAAY;AAAA,QACzG,6CAAC,UAAK,WAAU,8CAA8C;AAAA,kBAAQ,QAAQ,eAAe;AAAA,UAAE;AAAA,WAAG;AAAA,SACpG;AAAA,MACA,4CAAC,SAAI,WAAU,2DACb;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAO,GAAG,QAAQ,WAAW,KAAK,iBAAiB,QAAQ,WAAW;AAAA;AAAA,MACjF,GACF;AAAA,MACC,QAAQ,aACP,6CAAC,OAAE,WAAU,uCACV;AAAA,gBAAQ,UAAU,aAAa,QAAQ;AAAA,QAAQ;AAAA,QAAW,QAAQ,UAAU;AAAA,QAAM;AAAA,QAAE,QAAQ,UAAU;AAAA,SACzG;AAAA,OAEJ;AAAA,IACA;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACX;AAAA;AAAA,UAEC,4CAAC,oCAAa,WAAU,WAAU;AAAA;AAAA;AAAA,IACpC;AAAA,KACF;AAEJ;","names":["Link"]}
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function PortfolioSnapshot({ assets, listings, collections }: {
4
+ assets: number;
5
+ listings: number;
6
+ collections: number;
7
+ }): react_jsx_runtime.JSX.Element;
8
+ declare function RewardsSnapshot({ address }: {
9
+ address?: string | null;
10
+ }): react_jsx_runtime.JSX.Element | null;
11
+
12
+ export { PortfolioSnapshot, RewardsSnapshot };
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function PortfolioSnapshot({ assets, listings, collections }: {
4
+ assets: number;
5
+ listings: number;
6
+ collections: number;
7
+ }): react_jsx_runtime.JSX.Element;
8
+ declare function RewardsSnapshot({ address }: {
9
+ address?: string | null;
10
+ }): react_jsx_runtime.JSX.Element | null;
11
+
12
+ export { PortfolioSnapshot, RewardsSnapshot };
@@ -0,0 +1,89 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import Link from "./link.js";
4
+ import { ArrowUpRight, Gem, LayoutGrid, Tag, Trophy } from "lucide-react";
5
+ import { LevelBadge } from "./rewards/level-badge.js";
6
+ import { useRewards } from "../utils/use-rewards.js";
7
+ function SnapshotStat({ icon: Icon, value, label }) {
8
+ return /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 text-center", children: [
9
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center gap-1 text-muted-foreground/70", children: /* @__PURE__ */ jsx(Icon, { className: "h-3 w-3" }) }),
10
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-lg font-bold tabular-nums text-foreground", children: value }),
11
+ /* @__PURE__ */ jsx("p", { className: "text-[10.5px] text-muted-foreground", children: label })
12
+ ] });
13
+ }
14
+ function PortfolioSnapshot({ assets, listings, collections }) {
15
+ return /* @__PURE__ */ jsxs("div", { className: "rounded-2xl border border-border/60 bg-card p-5 space-y-4", children: [
16
+ /* @__PURE__ */ jsxs("div", { children: [
17
+ /* @__PURE__ */ jsx("p", { className: "text-2xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Portfolio" }),
18
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-muted-foreground/70", children: "What you own on Medialane" })
19
+ ] }),
20
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center border-t border-border/60 pt-4", children: [
21
+ /* @__PURE__ */ jsx(SnapshotStat, { icon: Gem, value: assets, label: "Assets" }),
22
+ /* @__PURE__ */ jsx(SnapshotStat, { icon: Tag, value: listings, label: "Listed" }),
23
+ /* @__PURE__ */ jsx(SnapshotStat, { icon: LayoutGrid, value: collections, label: "Collections" })
24
+ ] }),
25
+ /* @__PURE__ */ jsxs(
26
+ Link,
27
+ {
28
+ href: "/portfolio",
29
+ className: "flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline",
30
+ children: [
31
+ "View portfolio",
32
+ /* @__PURE__ */ jsx(ArrowUpRight, { className: "h-3 w-3" })
33
+ ]
34
+ }
35
+ )
36
+ ] });
37
+ }
38
+ function RewardsSnapshot({ address }) {
39
+ const { data: rewards } = useRewards(address);
40
+ if (!rewards) return null;
41
+ return /* @__PURE__ */ jsxs("div", { className: "rounded-2xl border border-border/60 bg-card p-5 space-y-4", children: [
42
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
43
+ /* @__PURE__ */ jsxs("div", { children: [
44
+ /* @__PURE__ */ jsx("p", { className: "text-2xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Rewards" }),
45
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-muted-foreground/70", children: "Your creator journey" })
46
+ ] }),
47
+ /* @__PURE__ */ jsx(Trophy, { className: "h-4 w-4 text-muted-foreground/50" })
48
+ ] }),
49
+ /* @__PURE__ */ jsxs("div", { className: "border-t border-border/60 pt-4 space-y-2", children: [
50
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
51
+ /* @__PURE__ */ jsx(LevelBadge, { level: rewards.currentLevel, name: rewards.currentLevelName, badgeColor: rewards.badgeColor }),
52
+ /* @__PURE__ */ jsxs("span", { className: "text-xs tabular-nums text-muted-foreground", children: [
53
+ rewards.totalXp.toLocaleString(),
54
+ " XP"
55
+ ] })
56
+ ] }),
57
+ /* @__PURE__ */ jsx("div", { className: "h-2 rounded-full bg-muted-foreground/15 overflow-hidden", children: /* @__PURE__ */ jsx(
58
+ "div",
59
+ {
60
+ className: "h-full rounded-full",
61
+ style: { width: `${rewards.progressPct}%`, backgroundColor: rewards.badgeColor }
62
+ }
63
+ ) }),
64
+ rewards.nextLevel && /* @__PURE__ */ jsxs("p", { className: "text-[10.5px] text-muted-foreground", children: [
65
+ rewards.nextLevel.xpRequired - rewards.totalXp,
66
+ " XP to Lv.",
67
+ rewards.nextLevel.level,
68
+ " ",
69
+ rewards.nextLevel.name
70
+ ] })
71
+ ] }),
72
+ /* @__PURE__ */ jsxs(
73
+ Link,
74
+ {
75
+ href: "/rewards",
76
+ className: "flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline",
77
+ children: [
78
+ "View rewards",
79
+ /* @__PURE__ */ jsx(ArrowUpRight, { className: "h-3 w-3" })
80
+ ]
81
+ }
82
+ )
83
+ ] });
84
+ }
85
+ export {
86
+ PortfolioSnapshot,
87
+ RewardsSnapshot
88
+ };
89
+ //# sourceMappingURL=settings-snapshots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/settings-snapshots.tsx"],"sourcesContent":["\"use client\";\n\nimport type React from \"react\";\nimport Link from \"./link.js\";\nimport { ArrowUpRight, Gem, LayoutGrid, Tag, Trophy } from \"lucide-react\";\nimport { LevelBadge } from \"./rewards/level-badge.js\";\nimport { useRewards } from \"../utils/use-rewards.js\";\n\nfunction SnapshotStat({ icon: Icon, value, label }: { icon: React.ElementType; value: number; label: string }) {\n return (\n <div className=\"flex-1 min-w-0 text-center\">\n <div className=\"flex items-center justify-center gap-1 text-muted-foreground/70\">\n <Icon className=\"h-3 w-3\" />\n </div>\n <p className=\"mt-1 text-lg font-bold tabular-nums text-foreground\">{value}</p>\n <p className=\"text-[10.5px] text-muted-foreground\">{label}</p>\n </div>\n );\n}\n\nexport function PortfolioSnapshot({ assets, listings, collections }: { assets: number; listings: number; collections: number }) {\n return (\n <div className=\"rounded-2xl border border-border/60 bg-card p-5 space-y-4\">\n <div>\n <p className=\"text-2xs font-semibold uppercase tracking-wide text-muted-foreground\">Portfolio</p>\n <p className=\"mt-0.5 text-xs text-muted-foreground/70\">What you own on Medialane</p>\n </div>\n <div className=\"flex items-center border-t border-border/60 pt-4\">\n <SnapshotStat icon={Gem} value={assets} label=\"Assets\" />\n <SnapshotStat icon={Tag} value={listings} label=\"Listed\" />\n <SnapshotStat icon={LayoutGrid} value={collections} label=\"Collections\" />\n </div>\n <Link\n href=\"/portfolio\"\n className=\"flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline\"\n >\n View portfolio\n <ArrowUpRight className=\"h-3 w-3\" />\n </Link>\n </div>\n );\n}\n\nexport function RewardsSnapshot({ address }: { address?: string | null }) {\n const { data: rewards } = useRewards(address);\n if (!rewards) return null;\n\n return (\n <div className=\"rounded-2xl border border-border/60 bg-card p-5 space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-2xs font-semibold uppercase tracking-wide text-muted-foreground\">Rewards</p>\n <p className=\"mt-0.5 text-xs text-muted-foreground/70\">Your creator journey</p>\n </div>\n <Trophy className=\"h-4 w-4 text-muted-foreground/50\" />\n </div>\n <div className=\"border-t border-border/60 pt-4 space-y-2\">\n <div className=\"flex items-center justify-between\">\n <LevelBadge level={rewards.currentLevel} name={rewards.currentLevelName} badgeColor={rewards.badgeColor} />\n <span className=\"text-xs tabular-nums text-muted-foreground\">{rewards.totalXp.toLocaleString()} XP</span>\n </div>\n <div className=\"h-2 rounded-full bg-muted-foreground/15 overflow-hidden\">\n <div\n className=\"h-full rounded-full\"\n style={{ width: `${rewards.progressPct}%`, backgroundColor: rewards.badgeColor }}\n />\n </div>\n {rewards.nextLevel && (\n <p className=\"text-[10.5px] text-muted-foreground\">\n {rewards.nextLevel.xpRequired - rewards.totalXp} XP to Lv.{rewards.nextLevel.level} {rewards.nextLevel.name}\n </p>\n )}\n </div>\n <Link\n href=\"/rewards\"\n className=\"flex items-center justify-center gap-1 text-xs font-medium text-primary hover:underline\"\n >\n View rewards\n <ArrowUpRight className=\"h-3 w-3\" />\n </Link>\n </div>\n );\n}\n"],"mappings":";AAUI,SAEI,KAFJ;AAPJ,OAAO,UAAU;AACjB,SAAS,cAAc,KAAK,YAAY,KAAK,cAAc;AAC3D,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,SAAS,aAAa,EAAE,MAAM,MAAM,OAAO,MAAM,GAA8D;AAC7G,SACE,qBAAC,SAAI,WAAU,8BACb;AAAA,wBAAC,SAAI,WAAU,mEACb,8BAAC,QAAK,WAAU,WAAU,GAC5B;AAAA,IACA,oBAAC,OAAE,WAAU,uDAAuD,iBAAM;AAAA,IAC1E,oBAAC,OAAE,WAAU,uCAAuC,iBAAM;AAAA,KAC5D;AAEJ;AAEO,SAAS,kBAAkB,EAAE,QAAQ,UAAU,YAAY,GAA8D;AAC9H,SACE,qBAAC,SAAI,WAAU,6DACb;AAAA,yBAAC,SACC;AAAA,0BAAC,OAAE,WAAU,wEAAuE,uBAAS;AAAA,MAC7F,oBAAC,OAAE,WAAU,2CAA0C,uCAAyB;AAAA,OAClF;AAAA,IACA,qBAAC,SAAI,WAAU,oDACb;AAAA,0BAAC,gBAAa,MAAM,KAAK,OAAO,QAAQ,OAAM,UAAS;AAAA,MACvD,oBAAC,gBAAa,MAAM,KAAK,OAAO,UAAU,OAAM,UAAS;AAAA,MACzD,oBAAC,gBAAa,MAAM,YAAY,OAAO,aAAa,OAAM,eAAc;AAAA,OAC1E;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACX;AAAA;AAAA,UAEC,oBAAC,gBAAa,WAAU,WAAU;AAAA;AAAA;AAAA,IACpC;AAAA,KACF;AAEJ;AAEO,SAAS,gBAAgB,EAAE,QAAQ,GAAgC;AACxE,QAAM,EAAE,MAAM,QAAQ,IAAI,WAAW,OAAO;AAC5C,MAAI,CAAC,QAAS,QAAO;AAErB,SACE,qBAAC,SAAI,WAAU,6DACb;AAAA,yBAAC,SAAI,WAAU,qCACb;AAAA,2BAAC,SACC;AAAA,4BAAC,OAAE,WAAU,wEAAuE,qBAAO;AAAA,QAC3F,oBAAC,OAAE,WAAU,2CAA0C,kCAAoB;AAAA,SAC7E;AAAA,MACA,oBAAC,UAAO,WAAU,oCAAmC;AAAA,OACvD;AAAA,IACA,qBAAC,SAAI,WAAU,4CACb;AAAA,2BAAC,SAAI,WAAU,qCACb;AAAA,4BAAC,cAAW,OAAO,QAAQ,cAAc,MAAM,QAAQ,kBAAkB,YAAY,QAAQ,YAAY;AAAA,QACzG,qBAAC,UAAK,WAAU,8CAA8C;AAAA,kBAAQ,QAAQ,eAAe;AAAA,UAAE;AAAA,WAAG;AAAA,SACpG;AAAA,MACA,oBAAC,SAAI,WAAU,2DACb;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAO,GAAG,QAAQ,WAAW,KAAK,iBAAiB,QAAQ,WAAW;AAAA;AAAA,MACjF,GACF;AAAA,MACC,QAAQ,aACP,qBAAC,OAAE,WAAU,uCACV;AAAA,gBAAQ,UAAU,aAAa,QAAQ;AAAA,QAAQ;AAAA,QAAW,QAAQ,UAAU;AAAA,QAAM;AAAA,QAAE,QAAQ,UAAU;AAAA,SACzG;AAAA,OAEJ;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACX;AAAA;AAAA,UAEC,oBAAC,gBAAa,WAAU,WAAU;AAAA;AAAA;AAAA,IACpC;AAAA,KACF;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?: "bottom" | "left" | "right" | "top" | null | undefined;
13
+ side?: "left" | "right" | "bottom" | "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?: "bottom" | "left" | "right" | "top" | null | undefined;
13
+ side?: "left" | "right" | "bottom" | "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;
package/dist/index.cjs CHANGED
@@ -24,10 +24,12 @@ __export(index_exports, {
24
24
  ACTIVITY_TYPE_CONFIG: () => import_activity.ACTIVITY_TYPE_CONFIG,
25
25
  AI_POLICIES: () => import_ip.AI_POLICIES,
26
26
  ASSET_ACCENTS: () => import_asset_accents.ASSET_ACCENTS,
27
+ AccountLoading: () => import_page_skeletons.AccountLoading,
27
28
  AccountSection: () => import_account_section.AccountSection,
28
29
  ActionButton: () => import_action_button.ActionButton,
29
30
  ActiveFilters: () => import_marketplace_filters.ActiveFilters,
30
31
  ActivitiesFeed: () => import_activities_feed.ActivitiesFeed,
32
+ ActivitiesLoading: () => import_page_skeletons.ActivitiesLoading,
31
33
  ActivityCard: () => import_activity_card.ActivityCard,
32
34
  ActivityCardSkeleton: () => import_activity_card.ActivityCardSkeleton,
33
35
  ActivityFeedShell: () => import_activity_feed_shell.ActivityFeedShell,
@@ -110,11 +112,14 @@ __export(index_exports, {
110
112
  CollectionSettings: () => import_collection_settings.CollectionSettings,
111
113
  CollectionTraitsTab: () => import_collection_traits_tab.CollectionTraitsTab,
112
114
  CollectionTypeChoices: () => import_new_collection_menu.CollectionTypeChoices,
115
+ CollectionsLoading: () => import_page_skeletons.CollectionsLoading,
113
116
  CollectionsPage: () => import_collections_page.CollectionsPage,
114
117
  CommentsSection: () => import_comments_section.CommentsSection,
118
+ CreateSponsorshipAside: () => import_create_sponsorship_aside.CreateSponsorshipAside,
115
119
  CreationRecord: () => import_creation_record.CreationRecord,
116
120
  CreatorChip: () => import_creator_chip.CreatorChip,
117
121
  CreatorHeader: () => import_creator_header.CreatorHeader,
122
+ CreatorLoading: () => import_page_skeletons.CreatorLoading,
118
123
  CreatorPage: () => import_creator_page.CreatorPage,
119
124
  CreatorScoreInline: () => import_creator_score_inline.CreatorScoreInline,
120
125
  CreatorsPage: () => import_creators_page.CreatorsPage,
@@ -233,6 +238,7 @@ __export(index_exports, {
233
238
  IpTypeNav: () => import_ip_type_nav.IpTypeNav,
234
239
  IpTypePage: () => import_ip_type_page.IpTypePage,
235
240
  IpfsGatewayFallback: () => import_ipfs_gateway_fallback2.IpfsGatewayFallback,
241
+ JourneyContent: () => import_journey_content.JourneyContent,
236
242
  JourneyPath: () => import_journey_path.JourneyPath,
237
243
  JsonLd: () => import_json_ld.JsonLd,
238
244
  KineticWords: () => import_motion_primitives.KineticWords,
@@ -267,6 +273,7 @@ __export(index_exports, {
267
273
  MarketplaceConfirmStep: () => import_marketplace_dialog_primitives.MarketplaceConfirmStep,
268
274
  MarketplaceDialogHero: () => import_marketplace_dialog_primitives.MarketplaceDialogHero,
269
275
  MarketplaceErrorState: () => import_marketplace_dialog_primitives.MarketplaceErrorState,
276
+ MarketplaceLoading: () => import_page_skeletons.MarketplaceLoading,
270
277
  MarketplaceProcessingState: () => import_marketplace_dialog_primitives.MarketplaceProcessingState,
271
278
  MarketplaceSearch: () => import_marketplace_search.MarketplaceSearch,
272
279
  MarketplaceSignInGate: () => import_marketplace_dialog_primitives.MarketplaceSignInGate,
@@ -315,9 +322,11 @@ __export(index_exports, {
315
322
  PortfolioChipFilter: () => import_portfolio_chip_filter.PortfolioChipFilter,
316
323
  PortfolioCollections: () => import_portfolio_collections.PortfolioCollections,
317
324
  PortfolioHeader: () => import_portfolio_header.PortfolioHeader,
325
+ PortfolioLoading: () => import_page_skeletons.PortfolioLoading,
318
326
  PortfolioOrders: () => import_portfolio_orders.PortfolioOrders,
319
327
  PortfolioSection: () => import_portfolio_section.PortfolioSection,
320
328
  PortfolioShell: () => import_portfolio_shell.PortfolioShell,
329
+ PortfolioSnapshot: () => import_settings_snapshots.PortfolioSnapshot,
321
330
  PortfolioSponsorships: () => import_portfolio_sponsorships.PortfolioSponsorships,
322
331
  PriceHistoryChart: () => import_price_history_chart.PriceHistoryChart,
323
332
  QUERY_PREFIX: () => import_query_keys.QUERY_PREFIX,
@@ -330,7 +339,10 @@ __export(index_exports, {
330
339
  ResultThumbnail: () => import_result_thumbnail.ResultThumbnail,
331
340
  RewardEarned: () => import_reward_earned.RewardEarned,
332
341
  RewardsDashboard: () => import_rewards_dashboard.RewardsDashboard,
342
+ RewardsPage: () => import_rewards_page.RewardsPage,
333
343
  RewardsSection: () => import_rewards_section.RewardsSection,
344
+ RewardsSnapshot: () => import_settings_snapshots.RewardsSnapshot,
345
+ RouteError: () => import_route_error.RouteError,
334
346
  SEARCH_MIN_LENGTH: () => import_use_search.SEARCH_MIN_LENGTH,
335
347
  SERVICE_HUES: () => import_launchpad_services.SERVICE_HUES,
336
348
  SINGLE_PRESET: () => import_collection_create_presets.SINGLE_PRESET,
@@ -724,6 +736,12 @@ var import_search_page = require("./components/search-page.js");
724
736
  var import_portfolio_orders = require("./components/portfolio-orders.js");
725
737
  var import_portfolio_assets = require("./components/portfolio-assets.js");
726
738
  var import_portfolio_shell = require("./components/portfolio-shell.js");
739
+ var import_rewards_page = require("./components/rewards-page.js");
740
+ var import_journey_content = require("./components/journey-content.js");
741
+ var import_settings_snapshots = require("./components/settings-snapshots.js");
742
+ var import_route_error = require("./components/route-error.js");
743
+ var import_create_sponsorship_aside = require("./components/create-sponsorship-aside.js");
744
+ var import_page_skeletons = require("./components/page-skeletons.js");
727
745
  var import_rewards_dashboard = require("./components/rewards/rewards-dashboard.js");
728
746
  var import_leaderboard_panel = require("./components/rewards/leaderboard-panel.js");
729
747
  var import_collection_name_claim = require("./components/collection-name-claim.js");
@@ -897,10 +915,12 @@ var import_asset_accents = require("./utils/asset-accents.js");
897
915
  ACTIVITY_TYPE_CONFIG,
898
916
  AI_POLICIES,
899
917
  ASSET_ACCENTS,
918
+ AccountLoading,
900
919
  AccountSection,
901
920
  ActionButton,
902
921
  ActiveFilters,
903
922
  ActivitiesFeed,
923
+ ActivitiesLoading,
904
924
  ActivityCard,
905
925
  ActivityCardSkeleton,
906
926
  ActivityFeedShell,
@@ -983,11 +1003,14 @@ var import_asset_accents = require("./utils/asset-accents.js");
983
1003
  CollectionSettings,
984
1004
  CollectionTraitsTab,
985
1005
  CollectionTypeChoices,
1006
+ CollectionsLoading,
986
1007
  CollectionsPage,
987
1008
  CommentsSection,
1009
+ CreateSponsorshipAside,
988
1010
  CreationRecord,
989
1011
  CreatorChip,
990
1012
  CreatorHeader,
1013
+ CreatorLoading,
991
1014
  CreatorPage,
992
1015
  CreatorScoreInline,
993
1016
  CreatorsPage,
@@ -1106,6 +1129,7 @@ var import_asset_accents = require("./utils/asset-accents.js");
1106
1129
  IpTypeNav,
1107
1130
  IpTypePage,
1108
1131
  IpfsGatewayFallback,
1132
+ JourneyContent,
1109
1133
  JourneyPath,
1110
1134
  JsonLd,
1111
1135
  KineticWords,
@@ -1140,6 +1164,7 @@ var import_asset_accents = require("./utils/asset-accents.js");
1140
1164
  MarketplaceConfirmStep,
1141
1165
  MarketplaceDialogHero,
1142
1166
  MarketplaceErrorState,
1167
+ MarketplaceLoading,
1143
1168
  MarketplaceProcessingState,
1144
1169
  MarketplaceSearch,
1145
1170
  MarketplaceSignInGate,
@@ -1188,9 +1213,11 @@ var import_asset_accents = require("./utils/asset-accents.js");
1188
1213
  PortfolioChipFilter,
1189
1214
  PortfolioCollections,
1190
1215
  PortfolioHeader,
1216
+ PortfolioLoading,
1191
1217
  PortfolioOrders,
1192
1218
  PortfolioSection,
1193
1219
  PortfolioShell,
1220
+ PortfolioSnapshot,
1194
1221
  PortfolioSponsorships,
1195
1222
  PriceHistoryChart,
1196
1223
  QUERY_PREFIX,
@@ -1203,7 +1230,10 @@ var import_asset_accents = require("./utils/asset-accents.js");
1203
1230
  ResultThumbnail,
1204
1231
  RewardEarned,
1205
1232
  RewardsDashboard,
1233
+ RewardsPage,
1206
1234
  RewardsSection,
1235
+ RewardsSnapshot,
1236
+ RouteError,
1207
1237
  SEARCH_MIN_LENGTH,
1208
1238
  SERVICE_HUES,
1209
1239
  SINGLE_PRESET,