@microcosmmoney/portal-react 3.4.1 → 3.5.1

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 (46) hide show
  1. package/dist/components/auction/auction-page.js +0 -1
  2. package/dist/components/dashboard/assets-summary.js +2 -3
  3. package/dist/components/dashboard/dashboard-overview.js +0 -1
  4. package/dist/components/dashboard/ecosystem-stats.js +0 -1
  5. package/dist/components/dashboard/lock-periods.js +0 -1
  6. package/dist/components/dashboard/market-overview-bar.js +0 -1
  7. package/dist/components/dashboard/mcc-token-stats.js +0 -1
  8. package/dist/components/dashboard/mcd-stats.js +0 -1
  9. package/dist/components/dashboard/mining-weight.js +4 -4
  10. package/dist/components/dashboard/minting-stats.js +0 -1
  11. package/dist/components/dashboard/my-mining.js +0 -1
  12. package/dist/components/dashboard/price-chart.js +0 -1
  13. package/dist/components/dashboard/quick-actions.js +0 -1
  14. package/dist/components/fragment/fragment-page.js +0 -1
  15. package/dist/components/kpi-radial-chart.js +0 -1
  16. package/dist/components/lending/lending-page.js +0 -1
  17. package/dist/components/mcd/mcd-page.js +0 -1
  18. package/dist/components/menu-section.js +0 -1
  19. package/dist/components/messages/messages-page.d.ts +7 -0
  20. package/dist/components/messages/messages-page.js +10 -0
  21. package/dist/components/mining/mining-page.js +0 -1
  22. package/dist/components/mining-progress-bar.js +0 -1
  23. package/dist/components/notifications/notifications-page.d.ts +8 -0
  24. package/dist/components/notifications/notifications-page.js +10 -0
  25. package/dist/components/organization/organization-page.js +0 -1
  26. package/dist/components/reincarnation/reincarnation-page.d.ts +7 -0
  27. package/dist/components/reincarnation/reincarnation-page.js +33 -0
  28. package/dist/components/terminal-countdown.js +0 -1
  29. package/dist/components/terminal-dialog.js +0 -1
  30. package/dist/components/terminal-input.js +0 -1
  31. package/dist/components/terminal-table.js +0 -1
  32. package/dist/components/terminal-tabs.js +0 -1
  33. package/dist/components/terminal-tooltip.js +0 -1
  34. package/dist/components/terminal.js +0 -1
  35. package/dist/components/territory/territory-page.js +0 -1
  36. package/dist/components/territory-card.js +0 -1
  37. package/dist/components/vote-result-bar.js +0 -1
  38. package/dist/components/voting/voting-page.js +0 -1
  39. package/dist/components/wallet/wallet-page.js +0 -1
  40. package/dist/index.d.ts +4 -0
  41. package/dist/index.js +7 -2
  42. package/dist/lib/cn.js +0 -1
  43. package/dist/link-context.d.ts +15 -0
  44. package/dist/link-context.js +15 -0
  45. package/dist/menu-config.js +0 -1
  46. package/package.json +3 -3
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmAuctionPage = MicrocosmAuctionPage;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmAssetsSummary = MicrocosmAssetsSummary;
@@ -12,7 +11,7 @@ const RANK_COLOR = {
12
11
  function MicrocosmAssetsSummary({ basePath = '', onNavigate, accentColor }) {
13
12
  const { balance: mccData, loading: mccLoading } = (0, auth_react_1.useMCC)(120000);
14
13
  const { balance: mcdData, loading: mcdLoading } = (0, auth_react_1.useMCD)(120000);
15
- const { data: levelData } = (0, auth_react_1.useUserLevel)();
14
+ const { data: levelData } = (0, auth_react_1.useLevelProgress)();
16
15
  const { data: wallets } = (0, auth_react_1.useWallets)();
17
16
  const { data: locks } = (0, auth_react_1.useMCCLocks)();
18
17
  const { data: marketData } = (0, auth_react_1.useMarketData)();
@@ -28,7 +27,7 @@ function MicrocosmAssetsSummary({ basePath = '', onNavigate, accentColor }) {
28
27
  const lockedAmount = activeLocks.reduce((sum, l) => sum + (l.amount || 0), 0);
29
28
  const rank = levelData?.level ?? null;
30
29
  const nextRank = levelData?.next_level ?? null;
31
- const progress = levelData?.upgrade_progress?.percentage ?? 0;
30
+ const progress = levelData?.progress_percent ?? 0;
32
31
  const fmt = (n, d = 2) => n.toLocaleString('en-US', { minimumFractionDigits: d, maximumFractionDigits: d });
33
32
  const rankColor = accentColor
34
33
  ? undefined
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmDashboardOverview = MicrocosmDashboardOverview;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmEcosystemStats = MicrocosmEcosystemStats;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmLockPeriods = MicrocosmLockPeriods;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMarketBar = MicrocosmMarketBar;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMCCTokenStats = MicrocosmMCCTokenStats;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMCDStats = MicrocosmMCDStats;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMiningWeight = MicrocosmMiningWeight;
@@ -34,13 +33,14 @@ function getCompanionYield(rank) {
34
33
  ];
35
34
  }
36
35
  function MicrocosmMiningWeight({ accentColor } = {}) {
37
- const { data, loading: loadingLevel } = (0, auth_react_1.useUserLevel)();
36
+ const { data, loading: loadingLevel } = (0, auth_react_1.useLevelProgress)();
38
37
  const { data: techBonus, loading: loadingTech } = (0, auth_react_1.useTechBonusDetail)();
39
38
  const { data: miningStats, loading: loadingMining } = (0, auth_react_1.useMiningStats)();
40
39
  const loading = loadingLevel || loadingTech || loadingMining;
41
40
  const ac = accentColor || '#22d3ee';
42
- const rank = data?.level ?? null;
43
- const miningDays = data?.upgrade_progress?.current_days ?? miningStats?.active_days_30d ?? 0;
41
+ const rank = data?.current_rank?.toLowerCase() ?? null;
42
+ const totalHoldings = data ? (data.holdings.station + data.holdings.matrix + data.holdings.sector + data.holdings.system) : 0;
43
+ const miningDays = totalHoldings > 0 ? totalHoldings : (miningStats?.active_days_30d ?? 0);
44
44
  const companionYield = getCompanionYield(rank);
45
45
  const bonusMultiplier = techBonus?.bonus_multiplier ?? 0;
46
46
  const discountPct = bonusMultiplier > 0 ? `+${(bonusMultiplier * 100).toFixed(0)}%` : '0%';
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMintingStats = MicrocosmMintingStats;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMyMining = MicrocosmMyMining;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmPriceChart = MicrocosmPriceChart;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmQuickActions = MicrocosmQuickActions;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmFragmentPage = MicrocosmFragmentPage;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.KPIRadialChart = KPIRadialChart;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmLendingPage = MicrocosmLendingPage;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMCDPage = MicrocosmMCDPage;
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MicrocosmMenuSection = MicrocosmMenuSection;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- // AI-generated · AI-managed · AI-maintained
9
8
  const react_1 = __importDefault(require("react"));
10
9
  const menu_config_1 = require("../menu-config");
11
10
  function isActive(itemPath, currentPath) {
@@ -0,0 +1,7 @@
1
+ export interface MicrocosmMessagesPageProps {
2
+ accentColor?: string;
3
+ title?: string;
4
+ subtitle?: string;
5
+ emptyText?: string;
6
+ }
7
+ export declare function MicrocosmMessagesPage({ accentColor, title, subtitle, emptyText, }?: MicrocosmMessagesPageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MicrocosmMessagesPage = MicrocosmMessagesPage;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const lucide_react_1 = require("lucide-react");
7
+ const terminal_1 = require("../terminal");
8
+ function MicrocosmMessagesPage({ accentColor, title = 'Messages', subtitle = 'Private messages and system replies', emptyText = 'No messages yet', } = {}) {
9
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "max-w-7xl mx-auto px-3 py-4 space-y-3 xs:px-4 xs:space-y-4 sm:px-6 sm:py-6 sm:space-y-6 font-mono", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h1", { className: "text-lg sm:text-2xl font-bold text-white tracking-wider", children: title }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs sm:text-sm text-neutral-400", children: subtitle })] }), (0, jsx_runtime_1.jsx)(terminal_1.TerminalCard, { children: (0, jsx_runtime_1.jsxs)("div", { className: "text-center py-8 text-neutral-500", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.MessageSquare, { className: "w-12 h-12 mx-auto mb-4 text-neutral-500" }), (0, jsx_runtime_1.jsx)("p", { children: emptyText })] }) })] }));
10
+ }
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmMiningPage = MicrocosmMiningPage;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MiningProgressBar = MiningProgressBar;
@@ -0,0 +1,8 @@
1
+ export interface MicrocosmNotificationsPageProps {
2
+ accentColor?: string;
3
+ title?: string;
4
+ subtitle?: string;
5
+ emptyText?: string;
6
+ emptyHint?: string;
7
+ }
8
+ export declare function MicrocosmNotificationsPage({ accentColor, title, subtitle, emptyText, emptyHint, }?: MicrocosmNotificationsPageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MicrocosmNotificationsPage = MicrocosmNotificationsPage;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const lucide_react_1 = require("lucide-react");
7
+ const terminal_1 = require("../terminal");
8
+ function MicrocosmNotificationsPage({ accentColor, title = 'Notifications', subtitle = 'System alerts and messages', emptyText = 'No notifications', emptyHint = 'You will be notified when something important happens', } = {}) {
9
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "max-w-4xl mx-auto px-3 py-4 space-y-3 xs:px-4 xs:space-y-4 sm:px-6 sm:py-6 sm:space-y-6 font-mono", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h1", { className: "text-lg sm:text-2xl font-bold text-white tracking-wider", children: title }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs sm:text-sm text-neutral-400", children: subtitle })] }), (0, jsx_runtime_1.jsx)(terminal_1.TerminalCard, { children: (0, jsx_runtime_1.jsxs)("div", { className: "text-center py-12 text-neutral-500", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Bell, { className: "w-12 h-12 mx-auto mb-3 opacity-50" }), (0, jsx_runtime_1.jsx)("p", { className: "text-lg", children: emptyText }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm mt-1", children: emptyHint })] }) })] }));
10
+ }
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmOrganizationPage = MicrocosmOrganizationPage;
@@ -0,0 +1,7 @@
1
+ export interface MicrocosmReincarnationPageProps {
2
+ basePath?: string;
3
+ onNavigate?: (path: string) => void;
4
+ title?: string;
5
+ subtitle?: string;
6
+ }
7
+ export declare function MicrocosmReincarnationPage({ title, subtitle, }?: MicrocosmReincarnationPageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MicrocosmReincarnationPage = MicrocosmReincarnationPage;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const auth_react_1 = require("@microcosmmoney/auth-react");
8
+ const terminal_1 = require("../terminal");
9
+ const POOL_ADDRESS = 'REDEh89TzpwCtoWQuuNPtxskrVoUDQgowR7e7sZpWj9';
10
+ const USDT_VAULT = 'BnHA9jSm88wzQS4c2nCgTXch1Byzc3FWn2G7Wgrvazy3';
11
+ const USDC_VAULT = '5L8vPTvGH14keLq4R6CGGvSFksZFjb7bRPXarCwZbmUA';
12
+ function CopyButton({ text }) {
13
+ const [copied, setCopied] = (0, react_1.useState)(false);
14
+ const handleCopy = async () => {
15
+ try {
16
+ await navigator.clipboard.writeText(text);
17
+ setCopied(true);
18
+ setTimeout(() => setCopied(false), 2000);
19
+ }
20
+ catch { }
21
+ };
22
+ return ((0, jsx_runtime_1.jsx)("button", { onClick: handleCopy, className: "text-neutral-400 hover:text-white transition-colors text-xs", "aria-label": "Copy", children: copied ? '✓' : '⧉' }));
23
+ }
24
+ function formatNumber(num, decimals = 2) {
25
+ if (num >= 1000000)
26
+ return (num / 1000000).toFixed(2) + 'M';
27
+ return num.toLocaleString('en-US', { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
28
+ }
29
+ function MicrocosmReincarnationPage({ title = 'Reincarnation Pool', subtitle = '2140 Protocol autonomous market making', } = {}) {
30
+ const { data: priceData, loading } = (0, auth_react_1.useMCCPrice)({ refetchInterval: 60000 });
31
+ const basePrice = priceData?.price ?? 0;
32
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "max-w-7xl mx-auto px-3 py-4 space-y-3 xs:px-4 xs:space-y-4 sm:px-6 sm:py-6 sm:space-y-6 font-mono", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h1", { className: "text-lg sm:text-2xl font-bold text-white tracking-wider", children: title }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs sm:text-sm text-neutral-400 mt-1", children: subtitle })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4", children: [(0, jsx_runtime_1.jsxs)(terminal_1.TerminalCard, { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-400 tracking-wider mb-2", children: "BASE PRICE" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-2xl font-bold text-cyan-400", children: [loading ? '—' : formatNumber(basePrice, 4), (0, jsx_runtime_1.jsx)("span", { className: "text-sm font-normal text-neutral-500 ml-1", children: "USD" })] })] }), (0, jsx_runtime_1.jsxs)(terminal_1.TerminalCard, { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-400 tracking-wider mb-2", children: "PROTOCOL" }), (0, jsx_runtime_1.jsx)("div", { className: "text-2xl font-bold text-white", children: "2140" }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-500 mt-1", children: "EMA weighted" })] }), (0, jsx_runtime_1.jsxs)(terminal_1.TerminalCard, { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-400 tracking-wider mb-2", children: "EPOCH" }), (0, jsx_runtime_1.jsx)("div", { className: "text-2xl font-bold text-white", children: "1h" }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-500 mt-1", children: "Auto buyback" })] }), (0, jsx_runtime_1.jsxs)(terminal_1.TerminalCard, { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-400 tracking-wider mb-2", children: "DEX" }), (0, jsx_runtime_1.jsx)("div", { className: "text-2xl font-bold text-cyan-400", children: "Raydium" }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-500 mt-1", children: "CPMM pool" })] })] }), (0, jsx_runtime_1.jsx)(terminal_1.TerminalCard, { title: "Contract Addresses", children: (0, jsx_runtime_1.jsxs)("div", { className: "space-y-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-neutral-800 rounded p-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-400 tracking-wider mb-1", children: "Reincarnation Pool PDA" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [(0, jsx_runtime_1.jsx)("code", { className: "text-sm text-cyan-400 break-all", children: POOL_ADDRESS }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 shrink-0", children: [(0, jsx_runtime_1.jsx)(CopyButton, { text: POOL_ADDRESS }), (0, jsx_runtime_1.jsx)("a", { href: `https://solscan.io/account/${POOL_ADDRESS}`, target: "_blank", rel: "noopener noreferrer", className: "text-neutral-400 hover:text-white text-xs", children: "\u2197" })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-neutral-800 rounded p-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-400 tracking-wider mb-1", children: "USDT Vault" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [(0, jsx_runtime_1.jsx)("code", { className: "text-xs text-neutral-400 break-all", children: USDT_VAULT }), (0, jsx_runtime_1.jsx)(CopyButton, { text: USDT_VAULT })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-neutral-800 rounded p-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-neutral-400 tracking-wider mb-1", children: "USDC Vault" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [(0, jsx_runtime_1.jsx)("code", { className: "text-xs text-neutral-400 break-all", children: USDC_VAULT }), (0, jsx_runtime_1.jsx)(CopyButton, { text: USDC_VAULT })] })] })] })] }) }), (0, jsx_runtime_1.jsx)(terminal_1.TerminalCard, { title: "Mechanism", children: (0, jsx_runtime_1.jsxs)("div", { className: "text-sm space-y-2", children: [(0, jsx_runtime_1.jsx)("div", { className: "font-medium text-cyan-400 tracking-wider", children: "Autonomous Market Making" }), (0, jsx_runtime_1.jsx)("p", { className: "text-neutral-400 leading-relaxed", children: "The Reincarnation Pool is a Solana PDA-owned autonomous market maker. Every epoch (1 hour), it reads the CPMM spot price, updates an EMA-weighted oracle (weight 2140), and executes a permissionless buyback via CPMM swap. Proceeds flow to the Mining Vault for the next cycle of community mining." }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-wrap items-center gap-2 mt-3 text-xs", children: [(0, jsx_runtime_1.jsx)("span", { className: "px-2 py-1 rounded bg-white/10 text-white", children: "Raydium CPMM" }), (0, jsx_runtime_1.jsx)("span", { className: "px-2 py-1 rounded bg-cyan-400/20 text-cyan-400", children: "PDA Autonomous" }), (0, jsx_runtime_1.jsx)("span", { className: "px-2 py-1 rounded bg-cyan-400/20 text-cyan-400", children: "EMA Oracle" }), (0, jsx_runtime_1.jsx)("span", { className: "px-2 py-1 rounded bg-cyan-400/20 text-cyan-400", children: "Permissionless" })] })] }) })] }));
33
+ }
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerminalCountdown = TerminalCountdown;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerminalDialog = TerminalDialog;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerminalInput = TerminalInput;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerminalTable = TerminalTable;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerminalTabs = TerminalTabs;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerminalTooltip = TerminalTooltip;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerminalCard = TerminalCard;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmTerritoryPage = MicrocosmTerritoryPage;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.TerritoryCard = TerritoryCard;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  "use client";
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.VoteResultBar = VoteResultBar;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmVotingPage = MicrocosmVotingPage;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // AI-generated · AI-managed · AI-maintained
3
2
  'use client';
4
3
  Object.defineProperty(exports, "__esModule", { value: true });
5
4
  exports.MicrocosmWalletPage = MicrocosmWalletPage;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { MicrocosmMenuSection } from './components/menu-section';
2
2
  export type { MicrocosmMenuSectionProps } from './components/menu-section';
3
+ export { LinkProvider, useLinkComponent } from './link-context';
4
+ export type { LinkProps, LinkComponent } from './link-context';
3
5
  export { blockchainMenu, web3OsMenu, dashboardMenu, microcosmMenuGroups, getAllMenuItems, resolveMenuPath, getMenuTitle, getMenuDescription, } from './menu-config';
4
6
  export type { MicrocosmMenuItem, MicrocosmMenuGroup, MenuLocale } from './menu-config';
5
7
  export { TerminalCard, StatBox, TerminalCommand, TerminalPageHeader, TerminalLoading, TerminalError, TerminalEmpty, TerminalBadge, TerminalDataRow, TerminalProgress, } from './components/terminal';
@@ -65,3 +67,5 @@ export { MicrocosmOrganizationPage } from './components/organization/organizatio
65
67
  export type { MicrocosmOrganizationPageProps } from './components/organization/organization-page';
66
68
  export { MicrocosmVotingPage } from './components/voting/voting-page';
67
69
  export type { MicrocosmVotingPageProps } from './components/voting/voting-page';
70
+ export { MicrocosmReincarnationPage } from './components/reincarnation/reincarnation-page';
71
+ export type { MicrocosmReincarnationPageProps } from './components/reincarnation/reincarnation-page';
package/dist/index.js CHANGED
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MicrocosmVotingPage = exports.MicrocosmOrganizationPage = exports.MicrocosmTerritoryPage = exports.MicrocosmAuctionPage = exports.MicrocosmMCDPage = exports.MicrocosmMiningPage = exports.MicrocosmWalletPage = exports.MicrocosmLendingPage = exports.MicrocosmFragmentPage = exports.MicrocosmLockPeriods = exports.MicrocosmMCDStats = exports.MicrocosmMCCTokenStats = exports.MicrocosmEcosystemStats = exports.MicrocosmMyMining = exports.MicrocosmMiningWeight = exports.MicrocosmMintingStats = exports.MicrocosmPriceChart = exports.MicrocosmAssetsSummary = exports.MicrocosmQuickActions = exports.MicrocosmMarketBar = exports.MicrocosmDashboardOverview = exports.KPIRadialChart = exports.VoteResultBar = exports.MiningProgressBar = exports.TerritoryCard = exports.TerminalTooltip = exports.TerminalInput = exports.TerminalCountdown = exports.TerminalDialog = exports.TerminalTabs = exports.TerminalTable = exports.TerminalProgress = exports.TerminalDataRow = exports.TerminalBadge = exports.TerminalEmpty = exports.TerminalError = exports.TerminalLoading = exports.TerminalPageHeader = exports.TerminalCommand = exports.StatBox = exports.TerminalCard = exports.getMenuDescription = exports.getMenuTitle = exports.resolveMenuPath = exports.getAllMenuItems = exports.microcosmMenuGroups = exports.dashboardMenu = exports.web3OsMenu = exports.blockchainMenu = exports.MicrocosmMenuSection = void 0;
4
- // AI-generated · AI-managed · AI-maintained
3
+ exports.MicrocosmTerritoryPage = exports.MicrocosmAuctionPage = exports.MicrocosmMCDPage = exports.MicrocosmMiningPage = exports.MicrocosmWalletPage = exports.MicrocosmLendingPage = exports.MicrocosmFragmentPage = exports.MicrocosmLockPeriods = exports.MicrocosmMCDStats = exports.MicrocosmMCCTokenStats = exports.MicrocosmEcosystemStats = exports.MicrocosmMyMining = exports.MicrocosmMiningWeight = exports.MicrocosmMintingStats = exports.MicrocosmPriceChart = exports.MicrocosmAssetsSummary = exports.MicrocosmQuickActions = exports.MicrocosmMarketBar = exports.MicrocosmDashboardOverview = exports.KPIRadialChart = exports.VoteResultBar = exports.MiningProgressBar = exports.TerritoryCard = exports.TerminalTooltip = exports.TerminalInput = exports.TerminalCountdown = exports.TerminalDialog = exports.TerminalTabs = exports.TerminalTable = exports.TerminalProgress = exports.TerminalDataRow = exports.TerminalBadge = exports.TerminalEmpty = exports.TerminalError = exports.TerminalLoading = exports.TerminalPageHeader = exports.TerminalCommand = exports.StatBox = exports.TerminalCard = exports.getMenuDescription = exports.getMenuTitle = exports.resolveMenuPath = exports.getAllMenuItems = exports.microcosmMenuGroups = exports.dashboardMenu = exports.web3OsMenu = exports.blockchainMenu = exports.useLinkComponent = exports.LinkProvider = exports.MicrocosmMenuSection = void 0;
4
+ exports.MicrocosmReincarnationPage = exports.MicrocosmVotingPage = exports.MicrocosmOrganizationPage = void 0;
5
5
  var menu_section_1 = require("./components/menu-section");
6
6
  Object.defineProperty(exports, "MicrocosmMenuSection", { enumerable: true, get: function () { return menu_section_1.MicrocosmMenuSection; } });
7
+ var link_context_1 = require("./link-context");
8
+ Object.defineProperty(exports, "LinkProvider", { enumerable: true, get: function () { return link_context_1.LinkProvider; } });
9
+ Object.defineProperty(exports, "useLinkComponent", { enumerable: true, get: function () { return link_context_1.useLinkComponent; } });
7
10
  var menu_config_1 = require("./menu-config");
8
11
  Object.defineProperty(exports, "blockchainMenu", { enumerable: true, get: function () { return menu_config_1.blockchainMenu; } });
9
12
  Object.defineProperty(exports, "web3OsMenu", { enumerable: true, get: function () { return menu_config_1.web3OsMenu; } });
@@ -86,3 +89,5 @@ var organization_page_1 = require("./components/organization/organization-page")
86
89
  Object.defineProperty(exports, "MicrocosmOrganizationPage", { enumerable: true, get: function () { return organization_page_1.MicrocosmOrganizationPage; } });
87
90
  var voting_page_1 = require("./components/voting/voting-page");
88
91
  Object.defineProperty(exports, "MicrocosmVotingPage", { enumerable: true, get: function () { return voting_page_1.MicrocosmVotingPage; } });
92
+ var reincarnation_page_1 = require("./components/reincarnation/reincarnation-page");
93
+ Object.defineProperty(exports, "MicrocosmReincarnationPage", { enumerable: true, get: function () { return reincarnation_page_1.MicrocosmReincarnationPage; } });
package/dist/lib/cn.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cn = cn;
4
- // AI-generated · AI-managed · AI-maintained
5
4
  function cn(...inputs) {
6
5
  return inputs.filter(Boolean).join(' ');
7
6
  }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface LinkProps {
3
+ href: string;
4
+ className?: string;
5
+ children?: React.ReactNode;
6
+ onClick?: (e: React.MouseEvent) => void;
7
+ target?: string;
8
+ rel?: string;
9
+ }
10
+ export type LinkComponent = React.ComponentType<LinkProps>;
11
+ export declare function LinkProvider({ component, children }: {
12
+ component: LinkComponent;
13
+ children: React.ReactNode;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ export declare function useLinkComponent(): LinkComponent;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LinkProvider = LinkProvider;
5
+ exports.useLinkComponent = useLinkComponent;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const DefaultLink = ({ href, className, children, onClick, target, rel }) => ((0, jsx_runtime_1.jsx)("a", { href: href, className: className, onClick: onClick, target: target, rel: rel, children: children }));
9
+ const LinkContext = (0, react_1.createContext)(DefaultLink);
10
+ function LinkProvider({ component, children }) {
11
+ return (0, jsx_runtime_1.jsx)(LinkContext.Provider, { value: component, children: children });
12
+ }
13
+ function useLinkComponent() {
14
+ return (0, react_1.useContext)(LinkContext);
15
+ }
@@ -5,7 +5,6 @@ exports.getMenuTitle = getMenuTitle;
5
5
  exports.getMenuDescription = getMenuDescription;
6
6
  exports.getAllMenuItems = getAllMenuItems;
7
7
  exports.resolveMenuPath = resolveMenuPath;
8
- // AI-generated · AI-managed · AI-maintained
9
8
  const lucide_react_1 = require("lucide-react");
10
9
  /** Resolve localized title — falls back to `item.title` (English) */
11
10
  function getMenuTitle(item, locale) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microcosmmoney/portal-react",
3
- "version": "3.4.1",
3
+ "version": "3.5.1",
4
4
  "description": "Microcosm Portal UI components for React/Next.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,8 +18,8 @@
18
18
  "lucide-react": ">=0.300.0"
19
19
  },
20
20
  "dependencies": {
21
- "@microcosmmoney/auth-core": "^2.3.1",
22
- "@microcosmmoney/auth-react": "^2.3.1"
21
+ "@microcosmmoney/auth-core": "^2.3.2",
22
+ "@microcosmmoney/auth-react": "^2.3.2"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/react": "^18.0.0",