@burdenoff/microfe-coolandlovely 2026.625.2 → 2026.628.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 (165) hide show
  1. package/dist/coolandlovely/CoolAndLovelyRoot.js +66 -122
  2. package/dist/coolandlovely/CoolAndLovelyRoot.js.map +1 -1
  3. package/dist/coolandlovely/CoolAndLovelyRoutes.js +87 -175
  4. package/dist/coolandlovely/CoolAndLovelyRoutes.js.map +1 -1
  5. package/dist/coolandlovely/components/Field.js +81 -0
  6. package/dist/coolandlovely/components/Field.js.map +1 -0
  7. package/dist/coolandlovely/components/StateViews.js +34 -0
  8. package/dist/coolandlovely/components/StateViews.js.map +1 -0
  9. package/dist/coolandlovely/components/StatusBadge.js +25 -22
  10. package/dist/coolandlovely/components/StatusBadge.js.map +1 -1
  11. package/dist/coolandlovely/components/TagList.js +21 -0
  12. package/dist/coolandlovely/components/TagList.js.map +1 -0
  13. package/dist/coolandlovely/components/Thumbnail.js +29 -0
  14. package/dist/coolandlovely/components/Thumbnail.js.map +1 -0
  15. package/dist/coolandlovely/context/CoolAndLovelyContext.js +10 -10
  16. package/dist/coolandlovely/context/CoolAndLovelyContext.js.map +1 -1
  17. package/dist/coolandlovely/hooks/index.js +1 -0
  18. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js +462 -169
  19. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js.map +1 -1
  20. package/dist/coolandlovely/pages/HomePage.js +251 -845
  21. package/dist/coolandlovely/pages/HomePage.js.map +1 -1
  22. package/dist/coolandlovely/pages/brands/BrandDetailPage.js +319 -0
  23. package/dist/coolandlovely/pages/brands/BrandDetailPage.js.map +1 -0
  24. package/dist/coolandlovely/pages/brands/BrandFormPage.js +190 -0
  25. package/dist/coolandlovely/pages/brands/BrandFormPage.js.map +1 -0
  26. package/dist/coolandlovely/pages/brands/BrandsListPage.js +158 -0
  27. package/dist/coolandlovely/pages/brands/BrandsListPage.js.map +1 -0
  28. package/dist/coolandlovely/pages/collaborations/CollaborationDetailPage.js +253 -0
  29. package/dist/coolandlovely/pages/collaborations/CollaborationDetailPage.js.map +1 -0
  30. package/dist/coolandlovely/pages/collaborations/CollaborationFormPage.js +206 -0
  31. package/dist/coolandlovely/pages/collaborations/CollaborationFormPage.js.map +1 -0
  32. package/dist/coolandlovely/pages/collaborations/CollaborationsListPage.js +129 -0
  33. package/dist/coolandlovely/pages/collaborations/CollaborationsListPage.js.map +1 -0
  34. package/dist/coolandlovely/pages/collections/CollectionDetailPage.js +217 -0
  35. package/dist/coolandlovely/pages/collections/CollectionDetailPage.js.map +1 -0
  36. package/dist/coolandlovely/pages/collections/CollectionFormPage.js +217 -0
  37. package/dist/coolandlovely/pages/collections/CollectionFormPage.js.map +1 -0
  38. package/dist/coolandlovely/pages/collections/CollectionsListPage.js +122 -0
  39. package/dist/coolandlovely/pages/collections/CollectionsListPage.js.map +1 -0
  40. package/dist/coolandlovely/pages/items/StyleItemDetailPage.js +230 -0
  41. package/dist/coolandlovely/pages/items/StyleItemDetailPage.js.map +1 -0
  42. package/dist/coolandlovely/pages/items/StyleItemFormPage.js +276 -0
  43. package/dist/coolandlovely/pages/items/StyleItemFormPage.js.map +1 -0
  44. package/dist/coolandlovely/pages/items/StyleItemsListPage.js +170 -0
  45. package/dist/coolandlovely/pages/items/StyleItemsListPage.js.map +1 -0
  46. package/dist/coolandlovely/pages/lookbooks/LookbookDetailPage.js +124 -0
  47. package/dist/coolandlovely/pages/lookbooks/LookbookDetailPage.js.map +1 -0
  48. package/dist/coolandlovely/pages/lookbooks/LookbooksListPage.js +156 -0
  49. package/dist/coolandlovely/pages/lookbooks/LookbooksListPage.js.map +1 -0
  50. package/dist/coolandlovely/pages/looks/LookDetailPage.js +238 -0
  51. package/dist/coolandlovely/pages/looks/LookDetailPage.js.map +1 -0
  52. package/dist/coolandlovely/pages/looks/LookFormPage.js +209 -0
  53. package/dist/coolandlovely/pages/looks/LookFormPage.js.map +1 -0
  54. package/dist/coolandlovely/pages/looks/LooksListPage.js +181 -0
  55. package/dist/coolandlovely/pages/looks/LooksListPage.js.map +1 -0
  56. package/dist/coolandlovely/pages/profile/StyleProfilePage.js +224 -0
  57. package/dist/coolandlovely/pages/profile/StyleProfilePage.js.map +1 -0
  58. package/dist/coolandlovely/pages/wardrobe/WardrobeFormPage.js +173 -0
  59. package/dist/coolandlovely/pages/wardrobe/WardrobeFormPage.js.map +1 -0
  60. package/dist/coolandlovely/pages/wardrobe/WardrobeListPage.js +172 -0
  61. package/dist/coolandlovely/pages/wardrobe/WardrobeListPage.js.map +1 -0
  62. package/dist/coolandlovely/store/coolandlovelyStore.js +2 -6
  63. package/dist/coolandlovely/store/coolandlovelyStore.js.map +1 -1
  64. package/dist/coolandlovely/utils/formatters.js +31 -23
  65. package/dist/coolandlovely/utils/formatters.js.map +1 -1
  66. package/dist/coolandlovely/utils/icons.js +34 -0
  67. package/dist/coolandlovely/utils/icons.js.map +1 -0
  68. package/dist/index.js +4 -4
  69. package/package.json +1 -1
  70. package/dist/coolandlovely/components/InvestmentCard.js +0 -98
  71. package/dist/coolandlovely/components/InvestmentCard.js.map +0 -1
  72. package/dist/coolandlovely/components/RatingDisplay.js +0 -35
  73. package/dist/coolandlovely/components/RatingDisplay.js.map +0 -1
  74. package/dist/coolandlovely/mocks/data.js +0 -1517
  75. package/dist/coolandlovely/mocks/data.js.map +0 -1
  76. package/dist/coolandlovely/mocks/users.js +0 -34
  77. package/dist/coolandlovely/mocks/users.js.map +0 -1
  78. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js +0 -651
  79. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js.map +0 -1
  80. package/dist/coolandlovely/pages/admin/AdminDashboard.js +0 -673
  81. package/dist/coolandlovely/pages/admin/AdminDashboard.js.map +0 -1
  82. package/dist/coolandlovely/pages/admin/AdminFinancialPage.js +0 -427
  83. package/dist/coolandlovely/pages/admin/AdminFinancialPage.js.map +0 -1
  84. package/dist/coolandlovely/pages/admin/AdminOrdersPage.js +0 -665
  85. package/dist/coolandlovely/pages/admin/AdminOrdersPage.js.map +0 -1
  86. package/dist/coolandlovely/pages/admin/AdminProfilePage.js +0 -264
  87. package/dist/coolandlovely/pages/admin/AdminProfilePage.js.map +0 -1
  88. package/dist/coolandlovely/pages/admin/AdminSettingsPage.js +0 -654
  89. package/dist/coolandlovely/pages/admin/AdminSettingsPage.js.map +0 -1
  90. package/dist/coolandlovely/pages/admin/CartManagementPage.js +0 -874
  91. package/dist/coolandlovely/pages/admin/CartManagementPage.js.map +0 -1
  92. package/dist/coolandlovely/pages/admin/UserManagementPage.js +0 -898
  93. package/dist/coolandlovely/pages/admin/UserManagementPage.js.map +0 -1
  94. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js +0 -842
  95. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js.map +0 -1
  96. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js +0 -705
  97. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js.map +0 -1
  98. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js +0 -802
  99. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js.map +0 -1
  100. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js +0 -891
  101. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js.map +0 -1
  102. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js +0 -639
  103. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js.map +0 -1
  104. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js +0 -914
  105. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js.map +0 -1
  106. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js +0 -882
  107. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js.map +0 -1
  108. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js +0 -831
  109. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js.map +0 -1
  110. package/dist/coolandlovely/pages/common/HelpSupportPage.js +0 -1325
  111. package/dist/coolandlovely/pages/common/HelpSupportPage.js.map +0 -1
  112. package/dist/coolandlovely/pages/common/NotificationCenterPage.js +0 -671
  113. package/dist/coolandlovely/pages/common/NotificationCenterPage.js.map +0 -1
  114. package/dist/coolandlovely/pages/common/SettingsPage.js +0 -973
  115. package/dist/coolandlovely/pages/common/SettingsPage.js.map +0 -1
  116. package/dist/coolandlovely/pages/customer/BookingDetailsPage.js +0 -630
  117. package/dist/coolandlovely/pages/customer/BookingDetailsPage.js.map +0 -1
  118. package/dist/coolandlovely/pages/customer/CartDetailPage.js +0 -623
  119. package/dist/coolandlovely/pages/customer/CartDetailPage.js.map +0 -1
  120. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js +0 -558
  121. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js.map +0 -1
  122. package/dist/coolandlovely/pages/customer/CheckoutPage.js +0 -529
  123. package/dist/coolandlovely/pages/customer/CheckoutPage.js.map +0 -1
  124. package/dist/coolandlovely/pages/customer/CustomerDashboard.js +0 -538
  125. package/dist/coolandlovely/pages/customer/CustomerDashboard.js.map +0 -1
  126. package/dist/coolandlovely/pages/customer/CustomerProfilePage.js +0 -658
  127. package/dist/coolandlovely/pages/customer/CustomerProfilePage.js.map +0 -1
  128. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js +0 -632
  129. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js.map +0 -1
  130. package/dist/coolandlovely/pages/customer/FavoritesPage.js +0 -487
  131. package/dist/coolandlovely/pages/customer/FavoritesPage.js.map +0 -1
  132. package/dist/coolandlovely/pages/customer/OrderHistoryPage.js +0 -447
  133. package/dist/coolandlovely/pages/customer/OrderHistoryPage.js.map +0 -1
  134. package/dist/coolandlovely/pages/customer/OrderTrackingPage.js +0 -425
  135. package/dist/coolandlovely/pages/customer/OrderTrackingPage.js.map +0 -1
  136. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js +0 -494
  137. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js.map +0 -1
  138. package/dist/coolandlovely/pages/customer/ReviewsPage.js +0 -616
  139. package/dist/coolandlovely/pages/customer/ReviewsPage.js.map +0 -1
  140. package/dist/coolandlovely/pages/customer/SavedAddressesPage.js +0 -449
  141. package/dist/coolandlovely/pages/customer/SavedAddressesPage.js.map +0 -1
  142. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js +0 -887
  143. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js.map +0 -1
  144. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js +0 -945
  145. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js.map +0 -1
  146. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js +0 -687
  147. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js.map +0 -1
  148. package/dist/coolandlovely/pages/investor/InvestorDashboard.js +0 -455
  149. package/dist/coolandlovely/pages/investor/InvestorDashboard.js.map +0 -1
  150. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js +0 -405
  151. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js.map +0 -1
  152. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js +0 -602
  153. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js.map +0 -1
  154. package/dist/coolandlovely/pages/investor/InvestorProfilePage.js +0 -1070
  155. package/dist/coolandlovely/pages/investor/InvestorProfilePage.js.map +0 -1
  156. package/dist/coolandlovely/pages/worker/TaskDetailsPage.js +0 -533
  157. package/dist/coolandlovely/pages/worker/TaskDetailsPage.js.map +0 -1
  158. package/dist/coolandlovely/pages/worker/WorkerDashboard.js +0 -671
  159. package/dist/coolandlovely/pages/worker/WorkerDashboard.js.map +0 -1
  160. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js +0 -680
  161. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js.map +0 -1
  162. package/dist/coolandlovely/pages/worker/WorkerProfilePage.js +0 -692
  163. package/dist/coolandlovely/pages/worker/WorkerProfilePage.js.map +0 -1
  164. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js +0 -583
  165. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvestmentDetailsPage.js","names":[],"sources":["../../../../src/coolandlovely/pages/investor/InvestmentDetailsPage.tsx"],"sourcesContent":["/**\n * Investment Details Page\n * @module coolandlovely/pages/investor\n *\n * 4-tab UI (overview/financials/documents/updates), manage investment modal,\n * growth indicators with progress bars, document status badges\n * (verified/pending/rejected), investment summary sidebar, back navigation.\n */\n\nimport { useState, useMemo, useEffect } from'react';\nimport {\n ArrowLeft,\n TrendingUp,\n Shield,\n AlertTriangle,\n Users,\n FileText,\n Clock,\n Building2,\n IndianRupee,\n Calendar,\n Download,\n BarChart3,\n PieChart,\n Activity,\n Package,\n Star,\n CheckCircle2,\n AlertCircle,\n X,\n} from'lucide-react';\nimport { EmphasisPanel, PagePurpose, NextSteps } from'@burdenoff/fe-libs/ui';\nimport { PageLayout } from'../../components/PageLayout';\nimport { StatusBadge } from'../../components/StatusBadge';\nimport { EmptyState } from'../../components/EmptyState';\nimport { useCoolAndLovely } from'../../context/CoolAndLovelyContext';\nimport { cn } from'../../utils/cn';\nimport { formatCurrency, formatDate } from'../../utils/formatters';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface InvestmentDetails {\n id: string;\n cartName: string;\n cartOwner: string;\n location: string;\n businessType: string;\n establishedDate: string;\n\n investmentAmount: number;\n investmentDate: string;\n equityPercentage: number;\n valuationAtInvestment: number;\n currentValuation: number;\n investmentType: string;\n\n monthlyRevenue: number;\n monthlyOrders: number;\n averageOrderValue: number;\n customerRating: number;\n activeCustomers: number;\n\n revenueGrowth: number;\n profitMargin: number;\n returnOnInvestment: number;\n paybackPeriod: string;\n\n documents: Array<{\n type: string;\n name: string;\n uploadDate: string;\n status: 'verified' | 'pending' | 'rejected';\n }>;\n\n recentUpdates: Array<{\n date: string;\n type: string;\n description: string;\n }>;\n}\n\ntype TabKey = 'overview' | 'financials' | 'documents' | 'updates';\n\n// ---------------------------------------------------------------------------\n// Mock data\n// ---------------------------------------------------------------------------\n\nconst mockInvestmentDetails: InvestmentDetails = {\n id: 'INV-001',\n cartName: 'Dosa Express - Koramangala',\n cartOwner: 'Suresh Rao',\n location: 'Koramangala 6th Block, Bangalore',\n businessType: 'South Indian Cuisine',\n establishedDate: '2022-06-15',\n\n investmentAmount: 500000,\n investmentDate: '2023-03-10',\n equityPercentage: 15,\n valuationAtInvestment: 3333333,\n currentValuation: 4333333,\n investmentType: 'Equity Investment',\n\n monthlyRevenue: 280000,\n monthlyOrders: 1850,\n averageOrderValue: 151,\n customerRating: 4.6,\n activeCustomers: 450,\n\n revenueGrowth: 18.5,\n profitMargin: 22,\n returnOnInvestment: 30,\n paybackPeriod: '2.5 years',\n\n documents: [\n {\n type: 'Investment Agreement',\n name: 'investment_agreement_dosa_express.pdf',\n uploadDate: '2023-03-10',\n status: 'verified',\n },\n {\n type: 'Financial Statement',\n name: 'financial_statement_q4_2023.pdf',\n uploadDate: '2024-01-05',\n status: 'verified',\n },\n {\n type: 'Tax Returns',\n name: 'tax_returns_2023.pdf',\n uploadDate: '2024-01-10',\n status: 'pending',\n },\n {\n type: 'Business License',\n name: 'fssai_license.pdf',\n uploadDate: '2023-03-08',\n status: 'verified',\n },\n ],\n\n recentUpdates: [\n {\n date: '2024-01-12',\n type: 'Performance',\n description: 'Monthly revenue exceeded target by 15%',\n },\n {\n date: '2024-01-08',\n type: 'Operations',\n description: 'Expanded menu with 5 new items',\n },\n {\n date: '2024-01-01',\n type: 'Financial',\n description: 'Q4 2023 profit distribution completed',\n },\n {\n date: '2023-12-20',\n type: 'Growth',\n description: 'Opened second location in BTM Layout',\n },\n ],\n};\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction getDocStatusConfig(status: string) {\n switch (status) {\n case'verified':\n return {\n color: 'text-status-success-text',\n Icon: CheckCircle2,\n label: 'Verified',\n };\n case'pending':\n return {\n color: 'text-status-warning-text',\n Icon: Clock,\n label: 'Pending',\n };\n case'rejected':\n return {\n color: 'text-status-error-text',\n Icon: AlertCircle,\n label: 'Rejected',\n };\n default:\n return {\n color: 'text-text-secondary',\n Icon: AlertCircle,\n label: status,\n };\n }\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function InvestmentDetailsPage() {\n const { navigateTo } = useCoolAndLovely();\n const [activeTab, setActiveTab] = useState<TabKey>('overview');\n const [isLoading, setIsLoading] = useState(true);\n const [showManageModal, setShowManageModal] = useState(false);\n const [investment, setInvestment] = useState<InvestmentDetails | null>(null);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setInvestment(mockInvestmentDetails);\n setIsLoading(false);\n }, 600);\n return () => clearTimeout(timer);\n }, []);\n\n const tabs: Array<{ id: TabKey; label: string; Icon: typeof BarChart3 }> = [\n { id: 'overview', label: 'Overview', Icon: BarChart3 },\n { id: 'financials', label: 'Financials', Icon: IndianRupee },\n { id: 'documents', label: 'Documents', Icon: FileText },\n { id: 'updates', label: 'Updates', Icon: Activity },\n ];\n\n if (isLoading) {\n return (\n <PageLayout title=\"Investment Details\" description=\"Loading...\">\n <div className=\"flex items-center justify-center py-20\">\n <div className=\"text-center\">\n <div className=\"mx-auto mb-4 h-12 w-12 animate-spin rounded-full border-b-2 border-primary\" />\n <p className=\"text-sm text-text-secondary\">Loading investment details...</p>\n </div>\n </div>\n </PageLayout>\n );\n }\n\n if (!investment) {\n return (\n <PageLayout title=\"Investment Not Found\">\n <EmptyState\n illustration=\"empty-search\"\n title=\"Investment not found\"\n description=\"We couldn't find this investment. It may have been removed or the link is incorrect.\"\n action={\n <button\n type=\"button\"\n onClick={() => navigateTo('/investor/portfolio')}\n className=\"rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n Back to Portfolio\n </button>\n }\n />\n </PageLayout>\n );\n }\n\n const currentReturns =\n investment.currentValuation * (investment.equityPercentage / 100) - investment.investmentAmount;\n const returnsPercentage = (currentReturns / investment.investmentAmount) * 100;\n\n return (\n <PageLayout\n title={investment.cartName}\n description=\"Investment Details & Performance\"\n actions={\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => navigateTo('/investor/portfolio')}\n className=\"flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors\"\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">Back to Portfolio</span>\n <span className=\"sm:hidden\">Back</span>\n </button>\n <button\n type=\"button\"\n onClick={() => alert('Report export initiated')}\n className=\"flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors\"\n >\n <Download className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">Export Report</span>\n <span className=\"sm:hidden\">Export</span>\n </button>\n <button\n type=\"button\"\n onClick={() => setShowManageModal(true)}\n className=\"rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <span className=\"hidden sm:inline\">Manage Investment</span>\n <span className=\"sm:hidden\">Manage</span>\n </button>\n </div>\n }\n >\n <PagePurpose className=\"mb-6\" icon={<BarChart3 className=\"h-4 w-4\" />}>\n A deep dive into one of your investments: how much you put in, your equity\n stake, current valuation and returns, plus the business's growth, documents\n and risk profile. Use it to decide whether to top up, hold, or manage your\n stake.\n </PagePurpose>\n\n <NextSteps\n className=\"mb-6\"\n storageKey=\"coolandlovely-investment-details\"\n steps={[\n {\n id: 'manage',\n label: 'Manage this investment',\n description: 'Top up, withdraw returns, or adjust your position.',\n icon: <Activity className=\"h-4 w-4\" />,\n onClick: () => setShowManageModal(true),\n },\n {\n id: 'documents',\n label: 'Review the documents',\n description: 'Check agreements and reports filed for this business.',\n icon: <FileText className=\"h-4 w-4\" />,\n onClick: () => setActiveTab('documents'),\n },\n {\n id: 'portfolio',\n label: 'Back to your portfolio',\n description: 'Compare this holding against the rest of your portfolio.',\n icon: <PieChart className=\"h-4 w-4\" />,\n onClick: () => navigateTo('/investor/portfolio'),\n },\n ]}\n />\n\n {/* Investment Summary Cards — primary emphasis zone */}\n <EmphasisPanel className=\"grid grid-cols-2 gap-4 lg:grid-cols-4 p-4\">\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <IndianRupee className=\"mx-auto mb-2 h-6 w-6 text-primary sm:h-8 sm:w-8\" />\n <div className=\"text-lg font-bold text-text-primary sm:text-2xl\">\n {formatCurrency(investment.investmentAmount, { minimumFractionDigits: 0 })}\n </div>\n <div className=\"text-xs text-text-secondary sm:text-sm\">Your Investment</div>\n </div>\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <TrendingUp className=\"mx-auto mb-2 h-6 w-6 text-status-success-text sm:h-8 sm:w-8\" />\n <div className=\"text-lg font-bold text-status-success-text sm:text-2xl\">\n {returnsPercentage > 0 ? '+' : ''}\n {returnsPercentage.toFixed(1)}%\n </div>\n <div className=\"text-xs text-text-secondary sm:text-sm\">Returns</div>\n </div>\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <PieChart className=\"mx-auto mb-2 h-6 w-6 text-accent-blue sm:h-8 sm:w-8\" />\n <div className=\"text-lg font-bold text-text-primary sm:text-2xl\">\n {investment.equityPercentage}%\n </div>\n <div className=\"text-xs text-text-secondary sm:text-sm\">Equity Stake</div>\n </div>\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <Building2 className=\"mx-auto mb-2 h-6 w-6 text-accent-purple sm:h-8 sm:w-8\" />\n <div className=\"text-lg font-bold text-text-primary sm:text-2xl\">\n {formatCurrency(investment.currentValuation * (investment.equityPercentage / 100), {\n minimumFractionDigits: 0,\n })}\n </div>\n <div className=\"text-xs text-text-secondary sm:text-sm\">Current Value</div>\n </div>\n </EmphasisPanel>\n\n {/* Tabs */}\n <div className=\"mt-6 flex gap-2 overflow-x-auto pb-2\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n 'flex items-center gap-2 whitespace-nowrap rounded-lg px-3 py-2 text-sm font-medium transition-colors sm:px-4 sm:py-3',\n activeTab === tab.id\n ? 'bg-action-primary-bg text-action-primary-text'\n : 'bg-bg-surface text-text-primary hover:bg-bg-sunken'\n )}\n >\n <tab.Icon className=\"h-4 w-4 flex-shrink-0\" />\n <span className=\"hidden sm:inline\">{tab.label}</span>\n <span className=\"sm:hidden\">{tab.label.split(' ')[0]}</span>\n </button>\n ))}\n </div>\n\n {/* Tab Content */}\n <div className=\"mt-6\">\n {/* Overview Tab */}\n {activeTab === 'overview' && (\n <div className=\"grid gap-6 lg:grid-cols-3\">\n {/* Business Details */}\n <div className=\"space-y-6 lg:col-span-2\">\n {/* Business Information */}\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop\">\n <h2 className=\"mb-4 text-lg font-semibold text-text-primary sm:mb-6\">\n Business Information\n </h2>\n <div className=\"grid gap-4 sm:grid-cols-2 sm:gap-6\">\n <div>\n <p className=\"text-sm text-text-secondary\">Owner</p>\n <p className=\"font-medium text-text-primary\">{investment.cartOwner}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Business Type</p>\n <p className=\"font-medium text-text-primary\">{investment.businessType}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Location</p>\n <p className=\"font-medium text-text-primary\">{investment.location}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Established</p>\n <p className=\"font-medium text-text-primary\">\n {formatDate(investment.establishedDate, {\n hour: undefined,\n minute: undefined,\n })}\n </p>\n </div>\n </div>\n </div>\n\n {/* Performance Metrics */}\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop\">\n <h2 className=\"mb-4 text-lg font-semibold text-text-primary sm:mb-6\">\n Performance Metrics\n </h2>\n <div className=\"grid grid-cols-1 gap-4 text-center sm:grid-cols-3 sm:gap-6\">\n <div>\n <Package className=\"mx-auto mb-2 h-6 w-6 text-primary sm:h-8 sm:w-8\" />\n <div className=\"text-xl font-bold text-text-primary sm:text-2xl\">\n {investment.monthlyOrders}\n </div>\n <div className=\"text-xs text-text-secondary sm:text-sm\">Monthly Orders</div>\n </div>\n <div>\n <IndianRupee className=\"mx-auto mb-2 h-6 w-6 text-status-success-text sm:h-8 sm:w-8\" />\n <div className=\"text-xl font-bold text-text-primary sm:text-2xl\">\n {formatCurrency(investment.monthlyRevenue, { minimumFractionDigits: 0 })}\n </div>\n <div className=\"text-xs text-text-secondary sm:text-sm\">Monthly Revenue</div>\n </div>\n <div>\n <Users className=\"mx-auto mb-2 h-6 w-6 text-accent-blue sm:h-8 sm:w-8\" />\n <div className=\"text-xl font-bold text-text-primary sm:text-2xl\">\n {investment.activeCustomers}\n </div>\n <div className=\"text-xs text-text-secondary sm:text-sm\">Active Customers</div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-col items-start justify-between gap-4 border-t border-border-subtle pt-4 sm:mt-6 sm:flex-row sm:items-center sm:pt-6\">\n <div>\n <p className=\"text-sm text-text-secondary\">Customer Rating</p>\n <div className=\"mt-1 flex items-center gap-1\">\n {Array.from({ length: 5 }, (_, i) => (\n <Star\n key={i}\n className={cn(\n 'h-4 w-4',\n i < Math.floor(investment.customerRating)\n ? 'fill-status-warning-text text-status-warning-text'\n : 'fill-none text-text-secondary/40'\n )}\n />\n ))}\n <span className=\"ml-1 text-sm font-medium text-text-primary\">\n {investment.customerRating}\n </span>\n </div>\n </div>\n <div className=\"text-left sm:text-right\">\n <p className=\"text-sm text-text-secondary\">Avg Order Value</p>\n <p className=\"text-lg font-semibold text-text-primary\">\n {formatCurrency(investment.averageOrderValue, { minimumFractionDigits: 0 })}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n {/* Sidebar */}\n <div className=\"space-y-6\">\n {/* Investment Summary */}\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop\">\n <h2 className=\"mb-4 text-lg font-semibold text-text-primary sm:mb-6\">\n Investment Summary\n </h2>\n <div className=\"space-y-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Investment Date</p>\n <p className=\"font-medium text-text-primary\">\n {formatDate(investment.investmentDate, {\n hour: undefined,\n minute: undefined,\n })}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Investment Type</p>\n <p className=\"font-medium text-text-primary\">{investment.investmentType}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Initial Valuation</p>\n <p className=\"font-medium text-text-primary\">\n {formatCurrency(investment.valuationAtInvestment, {\n minimumFractionDigits: 0,\n })}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Current Valuation</p>\n <p className=\"text-lg font-medium text-text-primary\">\n {formatCurrency(investment.currentValuation, { minimumFractionDigits: 0 })}\n </p>\n </div>\n <div className=\"border-t border-border-subtle pt-4\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">Your Returns</span>\n <span\n className={cn(\n 'text-lg font-semibold',\n currentReturns > 0\n ? 'text-status-success-text'\n : 'text-status-error-text'\n )}\n >\n {currentReturns > 0 ? '+' : ''}\n {formatCurrency(currentReturns, { minimumFractionDigits: 0 })}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Growth Indicators */}\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop\">\n <h2 className=\"mb-4 text-lg font-semibold text-text-primary sm:mb-6\">\n Growth Indicators\n </h2>\n <div className=\"space-y-4\">\n <div>\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">Revenue Growth</span>\n <span className=\"text-sm font-medium text-status-success-text\">\n +{investment.revenueGrowth}%\n </span>\n </div>\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-bg-sunken\">\n <div\n className=\"h-full rounded-full bg-status-success-bg-subtle\"\n style={{ width: `${Math.min(investment.revenueGrowth, 100)}%` }}\n />\n </div>\n </div>\n <div>\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">Profit Margin</span>\n <span className=\"text-sm font-medium text-text-primary\">\n {investment.profitMargin}%\n </span>\n </div>\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-bg-sunken\">\n <div\n className=\"h-full rounded-full bg-accent-blue-subtle\"\n style={{ width: `${investment.profitMargin}%` }}\n />\n </div>\n </div>\n <div>\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">ROI</span>\n <span className=\"text-sm font-medium text-status-success-text\">\n +{investment.returnOnInvestment}%\n </span>\n </div>\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-bg-sunken\">\n <div\n className=\"h-full rounded-full bg-status-success-bg-subtle\"\n style={{ width: `${Math.min(investment.returnOnInvestment, 100)}%` }}\n />\n </div>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Expected Payback</p>\n <p className=\"font-medium text-text-primary\">{investment.paybackPeriod}</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n )}\n\n {/* Financials Tab */}\n {activeTab === 'financials' && (\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop\">\n <h2 className=\"mb-4 text-lg font-semibold text-text-primary sm:mb-6\">\n Financial Performance\n </h2>\n\n {/* Key Financial Metrics */}\n <div className=\"mb-6 grid grid-cols-2 gap-4 lg:grid-cols-4\">\n <div className=\"rounded-lg bg-bg-sunken/50 p-3\">\n <p className=\"text-xs text-text-secondary\">Monthly Revenue</p>\n <p className=\"mt-1 text-lg font-bold text-text-primary\">\n {formatCurrency(investment.monthlyRevenue, { minimumFractionDigits: 0 })}\n </p>\n </div>\n <div className=\"rounded-lg bg-bg-sunken/50 p-3\">\n <p className=\"text-xs text-text-secondary\">Revenue Growth</p>\n <p className=\"mt-1 text-lg font-bold text-status-success-text\">\n +{investment.revenueGrowth}%\n </p>\n </div>\n <div className=\"rounded-lg bg-bg-sunken/50 p-3\">\n <p className=\"text-xs text-text-secondary\">Profit Margin</p>\n <p className=\"mt-1 text-lg font-bold text-text-primary\">{investment.profitMargin}%</p>\n </div>\n <div className=\"rounded-lg bg-bg-sunken/50 p-3\">\n <p className=\"text-xs text-text-secondary\">Avg Order Value</p>\n <p className=\"mt-1 text-lg font-bold text-text-primary\">\n {formatCurrency(investment.averageOrderValue, { minimumFractionDigits: 0 })}\n </p>\n </div>\n </div>\n\n {/* Financial Details Table */}\n <div className=\"overflow-hidden rounded-lg border border-border-subtle\">\n <table className=\"w-full\">\n <thead>\n <tr className=\"bg-bg-sunken/50\">\n <th className=\"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-text-secondary\">\n Metric\n </th>\n <th className=\"px-4 py-3 text-right text-xs font-medium uppercase tracking-wider text-text-secondary\">\n Value\n </th>\n <th className=\"px-4 py-3 text-right text-xs font-medium uppercase tracking-wider text-text-secondary\">\n Trend\n </th>\n </tr>\n </thead>\n <tbody className=\"divide-y divide-border\">\n {[\n {\n metric: 'Monthly Revenue',\n value: formatCurrency(investment.monthlyRevenue, {\n minimumFractionDigits: 0,\n }),\n trend: '+18.5%',\n },\n {\n metric: 'Monthly Orders',\n value: String(investment.monthlyOrders),\n trend: '+12%',\n },\n {\n metric: 'Average Order Value',\n value: formatCurrency(investment.averageOrderValue, {\n minimumFractionDigits: 0,\n }),\n trend: '+5.8%',\n },\n {\n metric: 'Active Customers',\n value: String(investment.activeCustomers),\n trend: '+22%',\n },\n {\n metric: 'Profit Margin',\n value: `${investment.profitMargin}%`,\n trend: '+2.1%',\n },\n {\n metric: 'Return on Investment',\n value: `${investment.returnOnInvestment}%`,\n trend: '+8.5%',\n },\n ].map((row) => (\n <tr key={row.metric} className=\"hover:bg-accent/50 transition-colors\">\n <td className=\"px-4 py-3 text-sm font-medium text-text-primary\">\n {row.metric}\n </td>\n <td className=\"px-4 py-3 text-right text-sm text-text-primary\">{row.value}</td>\n <td className=\"px-4 py-3 text-right text-sm font-medium text-status-success-text\">\n {row.trend}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n )}\n\n {/* Documents Tab */}\n {activeTab === 'documents' && (\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop\">\n <h2 className=\"mb-4 text-lg font-semibold text-text-primary sm:mb-6\">\n Investment Documents\n </h2>\n <div className=\"space-y-4\">\n {investment.documents.map((doc, index) => {\n const statusConfig = getDocStatusConfig(doc.status);\n const StatusIcon = statusConfig.Icon;\n\n return (\n <div\n key={index}\n className=\"flex flex-col gap-4 rounded-lg bg-bg-sunken/50 p-4 sm:flex-row sm:items-center sm:justify-between\"\n >\n <div className=\"flex items-start gap-3 flex-1 min-w-0 sm:items-center sm:gap-4\">\n <FileText className=\"mt-1 h-6 w-6 flex-shrink-0 text-primary sm:mt-0 sm:h-8 sm:w-8\" />\n <div className=\"min-w-0 flex-1\">\n <h4 className=\"text-sm font-medium text-text-primary sm:text-base\">\n {doc.type}\n </h4>\n <p className=\"truncate text-xs text-text-secondary sm:text-sm\">\n {doc.name}\n </p>\n <p className=\"text-xs text-text-secondary\">\n Uploaded{' '}\n {formatDate(doc.uploadDate, { hour: undefined, minute: undefined })}\n </p>\n </div>\n </div>\n <div className=\"flex w-full items-center justify-between gap-3 sm:w-auto sm:justify-end\">\n <span\n className={cn(\n 'flex items-center gap-1 text-xs sm:text-sm',\n statusConfig.color\n )}\n >\n <StatusIcon className=\"h-3 w-3 sm:h-4 sm:w-4\" />\n <span className=\"capitalize\">{statusConfig.label}</span>\n </span>\n <button\n type=\"button\"\n onClick={() => alert(`Downloading ${doc.name}`)}\n className=\"flex items-center gap-1 rounded-lg border border-border-subtle px-3 py-1.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors\"\n >\n <Download className=\"h-3 w-3 sm:h-4 sm:w-4\" />\n <span className=\"hidden sm:inline\">Download</span>\n </button>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n )}\n\n {/* Updates Tab */}\n {activeTab === 'updates' && (\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop\">\n <h2 className=\"mb-4 text-lg font-semibold text-text-primary sm:mb-6\">Recent Updates</h2>\n <div className=\"space-y-4\">\n {investment.recentUpdates.map((update, index) => (\n <div key={index} className=\"flex gap-3 rounded-lg bg-bg-sunken/50 p-4 sm:gap-4\">\n <div className=\"flex-shrink-0\">\n <Activity className=\"mt-1 h-4 w-4 text-primary sm:h-5 sm:w-5\" />\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"mb-1 flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between\">\n <h4 className=\"text-sm font-medium text-text-primary sm:text-base\">\n {update.type}\n </h4>\n <span className=\"text-xs text-text-secondary sm:text-sm\">\n {formatDate(update.date, { hour: undefined, minute: undefined })}\n </span>\n </div>\n <p className=\"text-xs text-text-secondary sm:text-sm\">{update.description}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n\n {/* Manage Investment Modal */}\n {showManageModal && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4\">\n <div className=\"relative max-h-[90vh] w-full max-w-md overflow-y-auto rounded-lg border border-border-subtle bg-bg-surface\">\n <div className=\"border-b border-border-subtle p-4 sm:p-6\">\n <button\n type=\"button\"\n onClick={() => setShowManageModal(false)}\n className=\"absolute right-3 top-3 rounded-lg p-1 text-text-secondary hover:bg-accent transition-colors\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n <h2 className=\"text-lg font-semibold text-text-primary sm:text-xl\">\n Manage Investment\n </h2>\n </div>\n <div className=\"space-y-4 p-4 sm:p-6\">\n <p className=\"text-sm text-text-secondary sm:text-base\">\n Choose an action for your investment in {investment.cartName}:\n </p>\n <div className=\"space-y-3\">\n <button\n type=\"button\"\n onClick={() => alert('Partial withdrawal request submitted')}\n className=\"w-full rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors\"\n >\n Request Partial Withdrawal\n </button>\n <button\n type=\"button\"\n onClick={() => alert('Transfer ownership feature coming soon')}\n className=\"w-full rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors\"\n >\n Transfer Ownership\n </button>\n <button\n type=\"button\"\n onClick={() => alert('Exit options will be displayed')}\n className=\"w-full rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors\"\n >\n View Exit Options\n </button>\n </div>\n <div className=\"rounded-lg border border-status-warning-border/30 bg-status-warning-bg-subtle/10 p-3 sm:p-4\">\n <p className=\"text-xs text-status-warning-text sm:text-sm\">\n Any changes to your investment require approval from the business owner and may be\n subject to terms in your investment agreement.\n </p>\n </div>\n </div>\n <div className=\"flex justify-end gap-3 border-t border-border-subtle p-4 sm:p-6\">\n <button\n type=\"button\"\n onClick={() => setShowManageModal(false)}\n className=\"rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors\"\n >\n Cancel\n </button>\n </div>\n </div>\n </div>\n )}\n </PageLayout>\n );\n}\n"],"mappings":"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"}