@burdenoff/microfe-coolandlovely 2026.614.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 (284) hide show
  1. package/README.md +12 -0
  2. package/dist/coolandlovely/CoolAndLovelyRoot.d.ts +5 -0
  3. package/dist/coolandlovely/CoolAndLovelyRoot.d.ts.map +1 -0
  4. package/dist/coolandlovely/CoolAndLovelyRoot.js +177 -0
  5. package/dist/coolandlovely/CoolAndLovelyRoot.js.map +1 -0
  6. package/dist/coolandlovely/CoolAndLovelyRoutes.d.ts +4 -0
  7. package/dist/coolandlovely/CoolAndLovelyRoutes.d.ts.map +1 -0
  8. package/dist/coolandlovely/CoolAndLovelyRoutes.js +215 -0
  9. package/dist/coolandlovely/CoolAndLovelyRoutes.js.map +1 -0
  10. package/dist/coolandlovely/components/CartCard.d.ts +18 -0
  11. package/dist/coolandlovely/components/CartCard.d.ts.map +1 -0
  12. package/dist/coolandlovely/components/EmptyState.d.ts +12 -0
  13. package/dist/coolandlovely/components/EmptyState.d.ts.map +1 -0
  14. package/dist/coolandlovely/components/EmptyState.js +28 -0
  15. package/dist/coolandlovely/components/EmptyState.js.map +1 -0
  16. package/dist/coolandlovely/components/InvestmentCard.d.ts +18 -0
  17. package/dist/coolandlovely/components/InvestmentCard.d.ts.map +1 -0
  18. package/dist/coolandlovely/components/InvestmentCard.js +96 -0
  19. package/dist/coolandlovely/components/InvestmentCard.js.map +1 -0
  20. package/dist/coolandlovely/components/MetricsCard.d.ts +14 -0
  21. package/dist/coolandlovely/components/MetricsCard.d.ts.map +1 -0
  22. package/dist/coolandlovely/components/MetricsCard.js +46 -0
  23. package/dist/coolandlovely/components/MetricsCard.js.map +1 -0
  24. package/dist/coolandlovely/components/OrderCard.d.ts +18 -0
  25. package/dist/coolandlovely/components/OrderCard.d.ts.map +1 -0
  26. package/dist/coolandlovely/components/PageLayout.d.ts +12 -0
  27. package/dist/coolandlovely/components/PageLayout.d.ts.map +1 -0
  28. package/dist/coolandlovely/components/PageLayout.js +26 -0
  29. package/dist/coolandlovely/components/PageLayout.js.map +1 -0
  30. package/dist/coolandlovely/components/RatingDisplay.d.ts +12 -0
  31. package/dist/coolandlovely/components/RatingDisplay.d.ts.map +1 -0
  32. package/dist/coolandlovely/components/RatingDisplay.js +35 -0
  33. package/dist/coolandlovely/components/RatingDisplay.js.map +1 -0
  34. package/dist/coolandlovely/components/StatusBadge.d.ts +9 -0
  35. package/dist/coolandlovely/components/StatusBadge.d.ts.map +1 -0
  36. package/dist/coolandlovely/components/StatusBadge.js +45 -0
  37. package/dist/coolandlovely/components/StatusBadge.js.map +1 -0
  38. package/dist/coolandlovely/components/index.d.ts +13 -0
  39. package/dist/coolandlovely/components/index.d.ts.map +1 -0
  40. package/dist/coolandlovely/context/CoolAndLovelyContext.d.ts +16 -0
  41. package/dist/coolandlovely/context/CoolAndLovelyContext.d.ts.map +1 -0
  42. package/dist/coolandlovely/context/CoolAndLovelyContext.js +93 -0
  43. package/dist/coolandlovely/context/CoolAndLovelyContext.js.map +1 -0
  44. package/dist/coolandlovely/context/index.d.ts +6 -0
  45. package/dist/coolandlovely/context/index.d.ts.map +1 -0
  46. package/dist/coolandlovely/context/index.js +1 -0
  47. package/dist/coolandlovely/hooks/index.d.ts +2 -0
  48. package/dist/coolandlovely/hooks/index.d.ts.map +1 -0
  49. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.d.ts +44 -0
  50. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.d.ts.map +1 -0
  51. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js +223 -0
  52. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js.map +1 -0
  53. package/dist/coolandlovely/index.d.ts +11 -0
  54. package/dist/coolandlovely/index.d.ts.map +1 -0
  55. package/dist/coolandlovely/index.js +7 -0
  56. package/dist/coolandlovely/mocks/data.d.ts +61 -0
  57. package/dist/coolandlovely/mocks/data.d.ts.map +1 -0
  58. package/dist/coolandlovely/mocks/data.js +1517 -0
  59. package/dist/coolandlovely/mocks/data.js.map +1 -0
  60. package/dist/coolandlovely/mocks/index.d.ts +7 -0
  61. package/dist/coolandlovely/mocks/index.d.ts.map +1 -0
  62. package/dist/coolandlovely/mocks/users.d.ts +18 -0
  63. package/dist/coolandlovely/mocks/users.d.ts.map +1 -0
  64. package/dist/coolandlovely/mocks/users.js +34 -0
  65. package/dist/coolandlovely/mocks/users.js.map +1 -0
  66. package/dist/coolandlovely/pages/HomePage.d.ts +10 -0
  67. package/dist/coolandlovely/pages/HomePage.d.ts.map +1 -0
  68. package/dist/coolandlovely/pages/HomePage.js +921 -0
  69. package/dist/coolandlovely/pages/HomePage.js.map +1 -0
  70. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.d.ts +11 -0
  71. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.d.ts.map +1 -0
  72. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js +645 -0
  73. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js.map +1 -0
  74. package/dist/coolandlovely/pages/admin/AdminDashboard.d.ts +10 -0
  75. package/dist/coolandlovely/pages/admin/AdminDashboard.d.ts.map +1 -0
  76. package/dist/coolandlovely/pages/admin/AdminDashboard.js +639 -0
  77. package/dist/coolandlovely/pages/admin/AdminDashboard.js.map +1 -0
  78. package/dist/coolandlovely/pages/admin/AdminFinancialPage.d.ts +11 -0
  79. package/dist/coolandlovely/pages/admin/AdminFinancialPage.d.ts.map +1 -0
  80. package/dist/coolandlovely/pages/admin/AdminFinancialPage.js +421 -0
  81. package/dist/coolandlovely/pages/admin/AdminFinancialPage.js.map +1 -0
  82. package/dist/coolandlovely/pages/admin/AdminOrdersPage.d.ts +10 -0
  83. package/dist/coolandlovely/pages/admin/AdminOrdersPage.d.ts.map +1 -0
  84. package/dist/coolandlovely/pages/admin/AdminOrdersPage.js +660 -0
  85. package/dist/coolandlovely/pages/admin/AdminOrdersPage.js.map +1 -0
  86. package/dist/coolandlovely/pages/admin/AdminProfilePage.d.ts +10 -0
  87. package/dist/coolandlovely/pages/admin/AdminProfilePage.d.ts.map +1 -0
  88. package/dist/coolandlovely/pages/admin/AdminProfilePage.js +259 -0
  89. package/dist/coolandlovely/pages/admin/AdminProfilePage.js.map +1 -0
  90. package/dist/coolandlovely/pages/admin/AdminSettingsPage.d.ts +10 -0
  91. package/dist/coolandlovely/pages/admin/AdminSettingsPage.d.ts.map +1 -0
  92. package/dist/coolandlovely/pages/admin/AdminSettingsPage.js +649 -0
  93. package/dist/coolandlovely/pages/admin/AdminSettingsPage.js.map +1 -0
  94. package/dist/coolandlovely/pages/admin/CartManagementPage.d.ts +10 -0
  95. package/dist/coolandlovely/pages/admin/CartManagementPage.d.ts.map +1 -0
  96. package/dist/coolandlovely/pages/admin/CartManagementPage.js +869 -0
  97. package/dist/coolandlovely/pages/admin/CartManagementPage.js.map +1 -0
  98. package/dist/coolandlovely/pages/admin/UserManagementPage.d.ts +10 -0
  99. package/dist/coolandlovely/pages/admin/UserManagementPage.d.ts.map +1 -0
  100. package/dist/coolandlovely/pages/admin/UserManagementPage.js +893 -0
  101. package/dist/coolandlovely/pages/admin/UserManagementPage.js.map +1 -0
  102. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.d.ts +12 -0
  103. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.d.ts.map +1 -0
  104. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js +834 -0
  105. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js.map +1 -0
  106. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.d.ts +11 -0
  107. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.d.ts.map +1 -0
  108. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js +700 -0
  109. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js.map +1 -0
  110. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.d.ts +11 -0
  111. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.d.ts.map +1 -0
  112. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js +760 -0
  113. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js.map +1 -0
  114. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.d.ts +12 -0
  115. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.d.ts.map +1 -0
  116. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js +886 -0
  117. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js.map +1 -0
  118. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.d.ts +11 -0
  119. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.d.ts.map +1 -0
  120. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js +631 -0
  121. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js.map +1 -0
  122. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.d.ts +11 -0
  123. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.d.ts.map +1 -0
  124. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js +913 -0
  125. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js.map +1 -0
  126. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.d.ts +10 -0
  127. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.d.ts.map +1 -0
  128. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js +881 -0
  129. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js.map +1 -0
  130. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.d.ts +11 -0
  131. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.d.ts.map +1 -0
  132. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js +833 -0
  133. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js.map +1 -0
  134. package/dist/coolandlovely/pages/common/HelpSupportPage.d.ts +11 -0
  135. package/dist/coolandlovely/pages/common/HelpSupportPage.d.ts.map +1 -0
  136. package/dist/coolandlovely/pages/common/HelpSupportPage.js +1325 -0
  137. package/dist/coolandlovely/pages/common/HelpSupportPage.js.map +1 -0
  138. package/dist/coolandlovely/pages/common/NotificationCenterPage.d.ts +11 -0
  139. package/dist/coolandlovely/pages/common/NotificationCenterPage.d.ts.map +1 -0
  140. package/dist/coolandlovely/pages/common/NotificationCenterPage.js +665 -0
  141. package/dist/coolandlovely/pages/common/NotificationCenterPage.js.map +1 -0
  142. package/dist/coolandlovely/pages/common/SettingsPage.d.ts +9 -0
  143. package/dist/coolandlovely/pages/common/SettingsPage.d.ts.map +1 -0
  144. package/dist/coolandlovely/pages/common/SettingsPage.js +964 -0
  145. package/dist/coolandlovely/pages/common/SettingsPage.js.map +1 -0
  146. package/dist/coolandlovely/pages/customer/BookingDetailsPage.d.ts +12 -0
  147. package/dist/coolandlovely/pages/customer/BookingDetailsPage.d.ts.map +1 -0
  148. package/dist/coolandlovely/pages/customer/BookingDetailsPage.js +593 -0
  149. package/dist/coolandlovely/pages/customer/BookingDetailsPage.js.map +1 -0
  150. package/dist/coolandlovely/pages/customer/CartDetailPage.d.ts +13 -0
  151. package/dist/coolandlovely/pages/customer/CartDetailPage.d.ts.map +1 -0
  152. package/dist/coolandlovely/pages/customer/CartDetailPage.js +620 -0
  153. package/dist/coolandlovely/pages/customer/CartDetailPage.js.map +1 -0
  154. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.d.ts +11 -0
  155. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.d.ts.map +1 -0
  156. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js +547 -0
  157. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js.map +1 -0
  158. package/dist/coolandlovely/pages/customer/CheckoutPage.d.ts +9 -0
  159. package/dist/coolandlovely/pages/customer/CheckoutPage.d.ts.map +1 -0
  160. package/dist/coolandlovely/pages/customer/CheckoutPage.js +532 -0
  161. package/dist/coolandlovely/pages/customer/CheckoutPage.js.map +1 -0
  162. package/dist/coolandlovely/pages/customer/CustomerDashboard.d.ts +10 -0
  163. package/dist/coolandlovely/pages/customer/CustomerDashboard.d.ts.map +1 -0
  164. package/dist/coolandlovely/pages/customer/CustomerDashboard.js +496 -0
  165. package/dist/coolandlovely/pages/customer/CustomerDashboard.js.map +1 -0
  166. package/dist/coolandlovely/pages/customer/CustomerProfilePage.d.ts +10 -0
  167. package/dist/coolandlovely/pages/customer/CustomerProfilePage.d.ts.map +1 -0
  168. package/dist/coolandlovely/pages/customer/CustomerProfilePage.js +621 -0
  169. package/dist/coolandlovely/pages/customer/CustomerProfilePage.js.map +1 -0
  170. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.d.ts +12 -0
  171. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.d.ts.map +1 -0
  172. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js +623 -0
  173. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js.map +1 -0
  174. package/dist/coolandlovely/pages/customer/FavoritesPage.d.ts +11 -0
  175. package/dist/coolandlovely/pages/customer/FavoritesPage.d.ts.map +1 -0
  176. package/dist/coolandlovely/pages/customer/FavoritesPage.js +477 -0
  177. package/dist/coolandlovely/pages/customer/FavoritesPage.js.map +1 -0
  178. package/dist/coolandlovely/pages/customer/OrderHistoryPage.d.ts +9 -0
  179. package/dist/coolandlovely/pages/customer/OrderHistoryPage.d.ts.map +1 -0
  180. package/dist/coolandlovely/pages/customer/OrderHistoryPage.js +438 -0
  181. package/dist/coolandlovely/pages/customer/OrderHistoryPage.js.map +1 -0
  182. package/dist/coolandlovely/pages/customer/OrderTrackingPage.d.ts +9 -0
  183. package/dist/coolandlovely/pages/customer/OrderTrackingPage.d.ts.map +1 -0
  184. package/dist/coolandlovely/pages/customer/OrderTrackingPage.js +388 -0
  185. package/dist/coolandlovely/pages/customer/OrderTrackingPage.js.map +1 -0
  186. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.d.ts +11 -0
  187. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.d.ts.map +1 -0
  188. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js +488 -0
  189. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js.map +1 -0
  190. package/dist/coolandlovely/pages/customer/ReviewsPage.d.ts +11 -0
  191. package/dist/coolandlovely/pages/customer/ReviewsPage.d.ts.map +1 -0
  192. package/dist/coolandlovely/pages/customer/ReviewsPage.js +606 -0
  193. package/dist/coolandlovely/pages/customer/ReviewsPage.js.map +1 -0
  194. package/dist/coolandlovely/pages/customer/SavedAddressesPage.d.ts +10 -0
  195. package/dist/coolandlovely/pages/customer/SavedAddressesPage.d.ts.map +1 -0
  196. package/dist/coolandlovely/pages/customer/SavedAddressesPage.js +443 -0
  197. package/dist/coolandlovely/pages/customer/SavedAddressesPage.js.map +1 -0
  198. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.d.ts +10 -0
  199. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.d.ts.map +1 -0
  200. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js +849 -0
  201. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js.map +1 -0
  202. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.d.ts +10 -0
  203. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.d.ts.map +1 -0
  204. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js +939 -0
  205. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js.map +1 -0
  206. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.d.ts +11 -0
  207. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.d.ts.map +1 -0
  208. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js +681 -0
  209. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js.map +1 -0
  210. package/dist/coolandlovely/pages/investor/InvestorDashboard.d.ts +9 -0
  211. package/dist/coolandlovely/pages/investor/InvestorDashboard.d.ts.map +1 -0
  212. package/dist/coolandlovely/pages/investor/InvestorDashboard.js +419 -0
  213. package/dist/coolandlovely/pages/investor/InvestorDashboard.js.map +1 -0
  214. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.d.ts +10 -0
  215. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.d.ts.map +1 -0
  216. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js +399 -0
  217. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js.map +1 -0
  218. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.d.ts +10 -0
  219. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.d.ts.map +1 -0
  220. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js +569 -0
  221. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js.map +1 -0
  222. package/dist/coolandlovely/pages/investor/InvestorProfilePage.d.ts +12 -0
  223. package/dist/coolandlovely/pages/investor/InvestorProfilePage.d.ts.map +1 -0
  224. package/dist/coolandlovely/pages/investor/InvestorProfilePage.js +1065 -0
  225. package/dist/coolandlovely/pages/investor/InvestorProfilePage.js.map +1 -0
  226. package/dist/coolandlovely/pages/worker/TaskDetailsPage.d.ts +22 -0
  227. package/dist/coolandlovely/pages/worker/TaskDetailsPage.d.ts.map +1 -0
  228. package/dist/coolandlovely/pages/worker/TaskDetailsPage.js +496 -0
  229. package/dist/coolandlovely/pages/worker/TaskDetailsPage.js.map +1 -0
  230. package/dist/coolandlovely/pages/worker/WorkerDashboard.d.ts +18 -0
  231. package/dist/coolandlovely/pages/worker/WorkerDashboard.d.ts.map +1 -0
  232. package/dist/coolandlovely/pages/worker/WorkerDashboard.js +634 -0
  233. package/dist/coolandlovely/pages/worker/WorkerDashboard.js.map +1 -0
  234. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.d.ts +18 -0
  235. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.d.ts.map +1 -0
  236. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js +675 -0
  237. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js.map +1 -0
  238. package/dist/coolandlovely/pages/worker/WorkerProfilePage.d.ts +18 -0
  239. package/dist/coolandlovely/pages/worker/WorkerProfilePage.d.ts.map +1 -0
  240. package/dist/coolandlovely/pages/worker/WorkerProfilePage.js +687 -0
  241. package/dist/coolandlovely/pages/worker/WorkerProfilePage.js.map +1 -0
  242. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.d.ts +17 -0
  243. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.d.ts.map +1 -0
  244. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js +578 -0
  245. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js.map +1 -0
  246. package/dist/coolandlovely/store/coolandlovelyStore.d.ts +60 -0
  247. package/dist/coolandlovely/store/coolandlovelyStore.d.ts.map +1 -0
  248. package/dist/coolandlovely/store/coolandlovelyStore.js +38 -0
  249. package/dist/coolandlovely/store/coolandlovelyStore.js.map +1 -0
  250. package/dist/coolandlovely/store/index.d.ts +6 -0
  251. package/dist/coolandlovely/store/index.d.ts.map +1 -0
  252. package/dist/coolandlovely/store/index.js +1 -0
  253. package/dist/coolandlovely/types/index.d.ts +458 -0
  254. package/dist/coolandlovely/types/index.d.ts.map +1 -0
  255. package/dist/coolandlovely/utils/cn.d.ts +4 -0
  256. package/dist/coolandlovely/utils/cn.d.ts.map +1 -0
  257. package/dist/coolandlovely/utils/cn.js +10 -0
  258. package/dist/coolandlovely/utils/cn.js.map +1 -0
  259. package/dist/coolandlovely/utils/formatters.d.ts +78 -0
  260. package/dist/coolandlovely/utils/formatters.d.ts.map +1 -0
  261. package/dist/coolandlovely/utils/formatters.js +51 -0
  262. package/dist/coolandlovely/utils/formatters.js.map +1 -0
  263. package/dist/coolandlovely/utils/index.d.ts +8 -0
  264. package/dist/coolandlovely/utils/index.d.ts.map +1 -0
  265. package/dist/coolandlovely/utils/navigation.d.ts +20 -0
  266. package/dist/coolandlovely/utils/navigation.d.ts.map +1 -0
  267. package/dist/coolandlovely/utils/navigation.js +9 -0
  268. package/dist/coolandlovely/utils/navigation.js.map +1 -0
  269. package/dist/generated/global-operations.d.ts +2 -0
  270. package/dist/generated/global-operations.d.ts.map +1 -0
  271. package/dist/generated/global-types.d.ts +23527 -0
  272. package/dist/generated/global-types.d.ts.map +1 -0
  273. package/dist/generated/wspace-operations.d.ts +2 -0
  274. package/dist/generated/wspace-operations.d.ts.map +1 -0
  275. package/dist/generated/wspace-types.d.ts +57851 -0
  276. package/dist/generated/wspace-types.d.ts.map +1 -0
  277. package/dist/index.d.ts +6 -0
  278. package/dist/index.d.ts.map +1 -0
  279. package/dist/index.js +7 -0
  280. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +18 -0
  281. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -0
  282. package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
  283. package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  284. package/package.json +106 -0
@@ -0,0 +1,939 @@
1
+ import { useCoolAndLovely as e } from "../../context/CoolAndLovelyContext.js";
2
+ import { cn as t } from "../../utils/cn.js";
3
+ import { PageLayout as n } from "../../components/PageLayout.js";
4
+ import { EmptyState as r } from "../../components/EmptyState.js";
5
+ import { formatCurrency as i, formatNumber as a } from "../../utils/formatters.js";
6
+ import { useCallback as o, useEffect as s, useMemo as c, useState as l } from "react";
7
+ import { CheckCircle2 as u, Eye as d, FileText as f, IndianRupee as p, MapPin as m, Search as h, Star as g, X as _ } from "lucide-react";
8
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
9
+ //#region src/coolandlovely/pages/investor/InvestmentOpportunitiesPage.tsx
10
+ var b = [
11
+ {
12
+ id: "opp-001",
13
+ cartId: "cart-005",
14
+ cartName: "Organic Salad Bar",
15
+ cartOwner: "Sarah Johnson",
16
+ description: "Premium organic salad bar serving health-conscious customers in tech parks. Looking to expand to 3 new locations.",
17
+ targetAmount: 5e5,
18
+ raisedAmount: 325e3,
19
+ minimumInvestment: 25e3,
20
+ maximumInvestment: 1e5,
21
+ investorCount: 8,
22
+ daysLeft: 15,
23
+ expectedReturns: 22,
24
+ paybackPeriod: 36,
25
+ riskLevel: "low",
26
+ category: "Healthy Food",
27
+ location: "Whitefield, Bangalore",
28
+ image: "https://images.unsplash.com/photo-1512621776951-a57141f2eefd?w=400",
29
+ businessMetrics: {
30
+ monthlyRevenue: 28e4,
31
+ monthlyOrders: 1800,
32
+ averageOrderValue: 156,
33
+ rating: 4.9,
34
+ reviewCount: 342,
35
+ operatingSince: "2022-03-15"
36
+ },
37
+ financials: {
38
+ grossMargin: 65,
39
+ netMargin: 28,
40
+ monthlyExpenses: 78e3,
41
+ breakEvenAchieved: !0
42
+ },
43
+ investmentTerms: {
44
+ equityOffered: 25,
45
+ dividendFrequency: "monthly",
46
+ lockInPeriod: 24,
47
+ exitOptions: [
48
+ "Buyback",
49
+ "Secondary Sale",
50
+ "IPO"
51
+ ]
52
+ },
53
+ documents: [
54
+ {
55
+ name: "Business Plan",
56
+ type: "PDF",
57
+ uploadedOn: "2024-06-01"
58
+ },
59
+ {
60
+ name: "Financial Statements",
61
+ type: "PDF",
62
+ uploadedOn: "2024-06-01"
63
+ },
64
+ {
65
+ name: "Legal Documents",
66
+ type: "PDF",
67
+ uploadedOn: "2024-06-01"
68
+ }
69
+ ],
70
+ status: "active"
71
+ },
72
+ {
73
+ id: "opp-002",
74
+ cartId: "cart-006",
75
+ cartName: "Midnight Munchies",
76
+ cartOwner: "Ravi Mehta",
77
+ description: "Late-night food delivery cart specializing in comfort food for night shift workers and students. Operating near IT corridors.",
78
+ targetAmount: 3e5,
79
+ raisedAmount: 18e4,
80
+ minimumInvestment: 15e3,
81
+ maximumInvestment: 75e3,
82
+ investorCount: 12,
83
+ daysLeft: 22,
84
+ expectedReturns: 18,
85
+ paybackPeriod: 30,
86
+ riskLevel: "medium",
87
+ category: "Fast Food",
88
+ location: "Electronic City, Bangalore",
89
+ image: "https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?w=400",
90
+ businessMetrics: {
91
+ monthlyRevenue: 195e3,
92
+ monthlyOrders: 1200,
93
+ averageOrderValue: 163,
94
+ rating: 4.7,
95
+ reviewCount: 256,
96
+ operatingSince: "2023-01-10"
97
+ },
98
+ financials: {
99
+ grossMargin: 58,
100
+ netMargin: 22,
101
+ monthlyExpenses: 65e3,
102
+ breakEvenAchieved: !0
103
+ },
104
+ investmentTerms: {
105
+ equityOffered: 20,
106
+ dividendFrequency: "quarterly",
107
+ lockInPeriod: 18,
108
+ exitOptions: ["Buyback", "Secondary Sale"]
109
+ },
110
+ documents: [{
111
+ name: "Business Plan",
112
+ type: "PDF",
113
+ uploadedOn: "2024-06-05"
114
+ }, {
115
+ name: "Market Analysis",
116
+ type: "PDF",
117
+ uploadedOn: "2024-06-05"
118
+ }],
119
+ status: "active"
120
+ },
121
+ {
122
+ id: "opp-003",
123
+ cartId: "cart-007",
124
+ cartName: "Fusion Street Tacos",
125
+ cartOwner: "Maria Rodriguez",
126
+ description: "Innovative fusion taco cart combining Mexican and Indian flavors. Winner of Street Food Awards 2023.",
127
+ targetAmount: 4e5,
128
+ raisedAmount: 4e5,
129
+ minimumInvestment: 2e4,
130
+ maximumInvestment: 8e4,
131
+ investorCount: 15,
132
+ daysLeft: 0,
133
+ expectedReturns: 25,
134
+ paybackPeriod: 24,
135
+ riskLevel: "low",
136
+ category: "Fusion Food",
137
+ location: "Indiranagar, Bangalore",
138
+ image: "https://images.unsplash.com/photo-1551504734-5ee1c4a1479b?w=400",
139
+ businessMetrics: {
140
+ monthlyRevenue: 32e4,
141
+ monthlyOrders: 2100,
142
+ averageOrderValue: 152,
143
+ rating: 4.8,
144
+ reviewCount: 512,
145
+ operatingSince: "2021-08-20"
146
+ },
147
+ financials: {
148
+ grossMargin: 68,
149
+ netMargin: 32,
150
+ monthlyExpenses: 85e3,
151
+ breakEvenAchieved: !0
152
+ },
153
+ investmentTerms: {
154
+ equityOffered: 30,
155
+ dividendFrequency: "monthly",
156
+ lockInPeriod: 12,
157
+ exitOptions: ["Buyback", "Franchise Conversion"]
158
+ },
159
+ documents: [{
160
+ name: "Business Plan",
161
+ type: "PDF",
162
+ uploadedOn: "2024-05-20"
163
+ }, {
164
+ name: "Awards & Recognition",
165
+ type: "PDF",
166
+ uploadedOn: "2024-05-20"
167
+ }],
168
+ status: "funded"
169
+ },
170
+ {
171
+ id: "opp-004",
172
+ cartId: "cart-008",
173
+ cartName: "Bubble Tea Express",
174
+ cartOwner: "Chen Wei",
175
+ description: "Trendy bubble tea cart with proprietary recipes. Planning expansion through franchise model.",
176
+ targetAmount: 6e5,
177
+ raisedAmount: 12e4,
178
+ minimumInvestment: 3e4,
179
+ maximumInvestment: 15e4,
180
+ investorCount: 4,
181
+ daysLeft: 45,
182
+ expectedReturns: 20,
183
+ paybackPeriod: 36,
184
+ riskLevel: "high",
185
+ category: "Beverages",
186
+ location: "Koramangala, Bangalore",
187
+ image: "https://images.unsplash.com/photo-1558857563-b371033873b8?w=400",
188
+ businessMetrics: {
189
+ monthlyRevenue: 15e4,
190
+ monthlyOrders: 900,
191
+ averageOrderValue: 167,
192
+ rating: 4.6,
193
+ reviewCount: 189,
194
+ operatingSince: "2023-11-01"
195
+ },
196
+ financials: {
197
+ grossMargin: 72,
198
+ netMargin: 18,
199
+ monthlyExpenses: 55e3,
200
+ breakEvenAchieved: !1
201
+ },
202
+ investmentTerms: {
203
+ equityOffered: 35,
204
+ dividendFrequency: "quarterly",
205
+ lockInPeriod: 36,
206
+ exitOptions: ["Franchise Sale", "Acquisition"]
207
+ },
208
+ documents: [{
209
+ name: "Franchise Plan",
210
+ type: "PDF",
211
+ uploadedOn: "2024-06-10"
212
+ }, {
213
+ name: "Recipe Patents",
214
+ type: "PDF",
215
+ uploadedOn: "2024-06-10"
216
+ }],
217
+ status: "active"
218
+ }
219
+ ], x = {
220
+ totalOpportunities: 24,
221
+ averageReturns: 21.5,
222
+ totalFunded: 156e5,
223
+ successRate: 89
224
+ };
225
+ function S(e) {
226
+ switch (e) {
227
+ case "low": return "bg-green-500/20 text-green-600 dark:text-green-400";
228
+ case "medium": return "bg-yellow-500/20 text-yellow-600 dark:text-yellow-400";
229
+ case "high": return "bg-red-500/20 text-red-600 dark:text-red-400";
230
+ default: return "bg-secondary text-secondary-foreground";
231
+ }
232
+ }
233
+ function C(e) {
234
+ switch (e) {
235
+ case "low": return "Low Risk";
236
+ case "medium": return "Medium Risk";
237
+ case "high": return "High Risk";
238
+ default: return e;
239
+ }
240
+ }
241
+ function w(e, t) {
242
+ return t > 0 ? Math.min(e / t * 100, 100) : 0;
243
+ }
244
+ function T() {
245
+ let { navigateTo: T } = e(), [E, D] = l(!0), [O, k] = l(null), [A, j] = l(!1), [M, N] = l(""), [P, F] = l("idle"), [I, L] = l({
246
+ searchQuery: "",
247
+ category: "",
248
+ riskLevel: "",
249
+ minimumAmount: "",
250
+ location: "",
251
+ sortBy: "featured"
252
+ });
253
+ s(() => {
254
+ let e = setTimeout(() => D(!1), 600);
255
+ return () => clearTimeout(e);
256
+ }, []);
257
+ let R = o((e, t) => {
258
+ L((n) => ({
259
+ ...n,
260
+ [e]: t
261
+ }));
262
+ }, []), z = c(() => {
263
+ let e = [...b];
264
+ if (I.searchQuery.trim()) {
265
+ let t = I.searchQuery.toLowerCase();
266
+ e = e.filter((e) => e.cartName.toLowerCase().includes(t) || e.description.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
267
+ }
268
+ if (I.category && (e = e.filter((e) => e.category === I.category)), I.riskLevel && (e = e.filter((e) => e.riskLevel === I.riskLevel)), I.location && (e = e.filter((e) => e.location.includes(I.location))), I.minimumAmount) {
269
+ let t = parseInt(I.minimumAmount, 10);
270
+ e = e.filter((e) => e.minimumInvestment <= t);
271
+ }
272
+ switch (I.sortBy) {
273
+ case "returns":
274
+ e.sort((e, t) => t.expectedReturns - e.expectedReturns);
275
+ break;
276
+ case "funding":
277
+ e.sort((e, t) => t.raisedAmount / t.targetAmount - e.raisedAmount / e.targetAmount);
278
+ break;
279
+ case "closing":
280
+ e.sort((e, t) => e.daysLeft - t.daysLeft);
281
+ break;
282
+ case "minimum":
283
+ e.sort((e, t) => e.minimumInvestment - t.minimumInvestment);
284
+ break;
285
+ default: break;
286
+ }
287
+ return e;
288
+ }, [I]), B = o(() => {
289
+ if (!O || !M) return;
290
+ let e = parseInt(M, 10);
291
+ if (!isNaN(e)) {
292
+ if (e < O.minimumInvestment) {
293
+ F("error");
294
+ return;
295
+ }
296
+ if (e > O.maximumInvestment) {
297
+ F("error");
298
+ return;
299
+ }
300
+ F("success"), setTimeout(() => {
301
+ j(!1), N(""), F("idle"), T("/investor/portfolio");
302
+ }, 1500);
303
+ }
304
+ }, [
305
+ O,
306
+ M,
307
+ T
308
+ ]), V = o((e) => {
309
+ k(e), N(""), F("idle"), j(!0);
310
+ }, []);
311
+ return E ? /* @__PURE__ */ v(n, {
312
+ title: "Investment Opportunities",
313
+ description: "Loading opportunities...",
314
+ children: /* @__PURE__ */ v("div", {
315
+ className: "flex items-center justify-center py-20",
316
+ children: /* @__PURE__ */ y("div", {
317
+ className: "text-center",
318
+ children: [/* @__PURE__ */ v("div", { className: "mx-auto mb-4 h-12 w-12 animate-spin rounded-full border-b-2 border-primary" }), /* @__PURE__ */ v("p", {
319
+ className: "text-sm text-muted-foreground",
320
+ children: "Loading opportunities..."
321
+ })]
322
+ })
323
+ })
324
+ }) : /* @__PURE__ */ y(n, {
325
+ title: "Investment Opportunities",
326
+ description: "Discover and invest in growing local businesses",
327
+ actions: /* @__PURE__ */ y("span", {
328
+ className: "text-sm text-muted-foreground",
329
+ children: [z.length, " opportunities"]
330
+ }),
331
+ children: [
332
+ /* @__PURE__ */ y("div", {
333
+ className: "grid grid-cols-2 gap-3 sm:gap-4 lg:grid-cols-4",
334
+ children: [
335
+ /* @__PURE__ */ y("div", {
336
+ className: "rounded-lg border border-border bg-card p-3 sm:p-4",
337
+ children: [/* @__PURE__ */ v("p", {
338
+ className: "text-xs text-muted-foreground",
339
+ children: "Active Opportunities"
340
+ }), /* @__PURE__ */ v("p", {
341
+ className: "text-lg font-bold text-foreground sm:text-2xl",
342
+ children: x.totalOpportunities
343
+ })]
344
+ }),
345
+ /* @__PURE__ */ y("div", {
346
+ className: "rounded-lg border border-border bg-card p-3 sm:p-4",
347
+ children: [/* @__PURE__ */ v("p", {
348
+ className: "text-xs text-muted-foreground",
349
+ children: "Average Returns"
350
+ }), /* @__PURE__ */ y("p", {
351
+ className: "text-lg font-bold text-green-600 dark:text-green-400 sm:text-2xl",
352
+ children: [x.averageReturns, "%"]
353
+ })]
354
+ }),
355
+ /* @__PURE__ */ y("div", {
356
+ className: "rounded-lg border border-border bg-card p-3 sm:p-4",
357
+ children: [/* @__PURE__ */ v("p", {
358
+ className: "text-xs text-muted-foreground",
359
+ children: "Total Funded"
360
+ }), /* @__PURE__ */ v("p", {
361
+ className: "text-lg font-bold text-foreground sm:text-2xl",
362
+ children: i(x.totalFunded, {
363
+ minimumFractionDigits: 0,
364
+ notation: "compact"
365
+ })
366
+ })]
367
+ }),
368
+ /* @__PURE__ */ y("div", {
369
+ className: "rounded-lg border border-border bg-card p-3 sm:p-4",
370
+ children: [/* @__PURE__ */ v("p", {
371
+ className: "text-xs text-muted-foreground",
372
+ children: "Success Rate"
373
+ }), /* @__PURE__ */ y("p", {
374
+ className: "text-lg font-bold text-foreground sm:text-2xl",
375
+ children: [x.successRate, "%"]
376
+ })]
377
+ })
378
+ ]
379
+ }),
380
+ /* @__PURE__ */ v("div", {
381
+ className: "mt-6 rounded-lg border border-border bg-card p-4 sm:p-6",
382
+ children: /* @__PURE__ */ y("div", {
383
+ className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6",
384
+ children: [
385
+ /* @__PURE__ */ y("div", {
386
+ className: "relative sm:col-span-2 lg:col-span-1",
387
+ children: [/* @__PURE__ */ v(h, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }), /* @__PURE__ */ v("input", {
388
+ type: "text",
389
+ placeholder: "Search opportunities...",
390
+ value: I.searchQuery,
391
+ onChange: (e) => R("searchQuery", e.target.value),
392
+ className: "w-full rounded-lg border border-border bg-card py-2 pl-10 pr-4 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring"
393
+ })]
394
+ }),
395
+ /* @__PURE__ */ y("select", {
396
+ value: I.category,
397
+ onChange: (e) => R("category", e.target.value),
398
+ className: "rounded-lg border border-border bg-card px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring",
399
+ children: [
400
+ /* @__PURE__ */ v("option", {
401
+ value: "",
402
+ children: "All Categories"
403
+ }),
404
+ /* @__PURE__ */ v("option", {
405
+ value: "Healthy Food",
406
+ children: "Healthy Food"
407
+ }),
408
+ /* @__PURE__ */ v("option", {
409
+ value: "Fast Food",
410
+ children: "Fast Food"
411
+ }),
412
+ /* @__PURE__ */ v("option", {
413
+ value: "Fusion Food",
414
+ children: "Fusion Food"
415
+ }),
416
+ /* @__PURE__ */ v("option", {
417
+ value: "Beverages",
418
+ children: "Beverages"
419
+ }),
420
+ /* @__PURE__ */ v("option", {
421
+ value: "Street Food",
422
+ children: "Street Food"
423
+ })
424
+ ]
425
+ }),
426
+ /* @__PURE__ */ y("select", {
427
+ value: I.riskLevel,
428
+ onChange: (e) => R("riskLevel", e.target.value),
429
+ className: "rounded-lg border border-border bg-card px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring",
430
+ children: [
431
+ /* @__PURE__ */ v("option", {
432
+ value: "",
433
+ children: "All Risk Levels"
434
+ }),
435
+ /* @__PURE__ */ v("option", {
436
+ value: "low",
437
+ children: "Low Risk"
438
+ }),
439
+ /* @__PURE__ */ v("option", {
440
+ value: "medium",
441
+ children: "Medium Risk"
442
+ }),
443
+ /* @__PURE__ */ v("option", {
444
+ value: "high",
445
+ children: "High Risk"
446
+ })
447
+ ]
448
+ }),
449
+ /* @__PURE__ */ y("select", {
450
+ value: I.minimumAmount,
451
+ onChange: (e) => R("minimumAmount", e.target.value),
452
+ className: "rounded-lg border border-border bg-card px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring",
453
+ children: [
454
+ /* @__PURE__ */ v("option", {
455
+ value: "",
456
+ children: "Any Amount"
457
+ }),
458
+ /* @__PURE__ */ v("option", {
459
+ value: "15000",
460
+ children: "Under ₹15,000"
461
+ }),
462
+ /* @__PURE__ */ v("option", {
463
+ value: "25000",
464
+ children: "Under ₹25,000"
465
+ }),
466
+ /* @__PURE__ */ v("option", {
467
+ value: "50000",
468
+ children: "Under ₹50,000"
469
+ }),
470
+ /* @__PURE__ */ v("option", {
471
+ value: "100000",
472
+ children: "Under ₹1,00,000"
473
+ })
474
+ ]
475
+ }),
476
+ /* @__PURE__ */ y("select", {
477
+ value: I.location,
478
+ onChange: (e) => R("location", e.target.value),
479
+ className: "rounded-lg border border-border bg-card px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring",
480
+ children: [
481
+ /* @__PURE__ */ v("option", {
482
+ value: "",
483
+ children: "All Locations"
484
+ }),
485
+ /* @__PURE__ */ v("option", {
486
+ value: "Whitefield",
487
+ children: "Whitefield"
488
+ }),
489
+ /* @__PURE__ */ v("option", {
490
+ value: "Koramangala",
491
+ children: "Koramangala"
492
+ }),
493
+ /* @__PURE__ */ v("option", {
494
+ value: "Indiranagar",
495
+ children: "Indiranagar"
496
+ }),
497
+ /* @__PURE__ */ v("option", {
498
+ value: "Electronic City",
499
+ children: "Electronic City"
500
+ })
501
+ ]
502
+ }),
503
+ /* @__PURE__ */ y("select", {
504
+ value: I.sortBy,
505
+ onChange: (e) => R("sortBy", e.target.value),
506
+ className: "rounded-lg border border-border bg-card px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring",
507
+ children: [
508
+ /* @__PURE__ */ v("option", {
509
+ value: "featured",
510
+ children: "Featured"
511
+ }),
512
+ /* @__PURE__ */ v("option", {
513
+ value: "returns",
514
+ children: "Highest Returns"
515
+ }),
516
+ /* @__PURE__ */ v("option", {
517
+ value: "funding",
518
+ children: "Most Funded"
519
+ }),
520
+ /* @__PURE__ */ v("option", {
521
+ value: "closing",
522
+ children: "Closing Soon"
523
+ }),
524
+ /* @__PURE__ */ v("option", {
525
+ value: "minimum",
526
+ children: "Lowest Minimum"
527
+ })
528
+ ]
529
+ })
530
+ ]
531
+ })
532
+ }),
533
+ z.length === 0 ? /* @__PURE__ */ v("div", {
534
+ className: "mt-6",
535
+ children: /* @__PURE__ */ v(r, {
536
+ icon: /* @__PURE__ */ v(h, { className: "h-10 w-10" }),
537
+ title: "No opportunities found",
538
+ description: "Try adjusting your filters to find more opportunities",
539
+ action: /* @__PURE__ */ v("button", {
540
+ type: "button",
541
+ onClick: () => L({
542
+ searchQuery: "",
543
+ category: "",
544
+ riskLevel: "",
545
+ minimumAmount: "",
546
+ location: "",
547
+ sortBy: "featured"
548
+ }),
549
+ className: "rounded-lg bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",
550
+ children: "Clear Filters"
551
+ })
552
+ })
553
+ }) : /* @__PURE__ */ v("div", {
554
+ className: "mt-6 grid grid-cols-1 gap-4 lg:grid-cols-2",
555
+ children: z.map((e) => {
556
+ let n = w(e.raisedAmount, e.targetAmount);
557
+ return /* @__PURE__ */ y("div", {
558
+ className: "rounded-lg border border-border bg-card shadow-sm hover:shadow-md transition-shadow",
559
+ children: [/* @__PURE__ */ y("div", {
560
+ className: "relative",
561
+ children: [
562
+ /* @__PURE__ */ v("div", {
563
+ className: "h-40 w-full overflow-hidden rounded-t-lg bg-muted sm:h-48",
564
+ children: /* @__PURE__ */ v("img", {
565
+ src: e.image,
566
+ alt: e.cartName,
567
+ className: "h-full w-full object-cover",
568
+ loading: "lazy"
569
+ })
570
+ }),
571
+ e.status === "funded" && /* @__PURE__ */ v("div", {
572
+ className: "absolute right-2 top-2 rounded-full bg-green-500 px-2 py-1 text-xs font-medium text-white sm:right-4 sm:top-4 sm:px-3",
573
+ children: "Fully Funded"
574
+ }),
575
+ e.daysLeft > 0 && e.daysLeft <= 7 && /* @__PURE__ */ y("div", {
576
+ className: "absolute left-2 top-2 rounded-full bg-red-500 px-2 py-1 text-xs font-medium text-white sm:left-4 sm:top-4 sm:px-3",
577
+ children: [e.daysLeft, " days left"]
578
+ })
579
+ ]
580
+ }), /* @__PURE__ */ y("div", {
581
+ className: "p-4 sm:p-6",
582
+ children: [
583
+ /* @__PURE__ */ y("div", {
584
+ className: "mb-4 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
585
+ children: [/* @__PURE__ */ y("div", {
586
+ className: "flex-1",
587
+ children: [
588
+ /* @__PURE__ */ v("h3", {
589
+ className: "text-base font-semibold text-foreground sm:text-xl",
590
+ children: e.cartName
591
+ }),
592
+ /* @__PURE__ */ y("p", {
593
+ className: "text-xs text-muted-foreground sm:text-sm",
594
+ children: ["by ", e.cartOwner]
595
+ }),
596
+ /* @__PURE__ */ y("div", {
597
+ className: "mt-2 flex flex-wrap items-center gap-2",
598
+ children: [/* @__PURE__ */ v("span", {
599
+ className: "text-xs text-muted-foreground sm:text-sm",
600
+ children: e.category
601
+ }), /* @__PURE__ */ v("span", {
602
+ className: t("rounded-full px-2 py-0.5 text-xs font-medium", S(e.riskLevel)),
603
+ children: C(e.riskLevel)
604
+ })]
605
+ })
606
+ ]
607
+ }), /* @__PURE__ */ y("div", {
608
+ className: "text-left sm:text-right",
609
+ children: [/* @__PURE__ */ y("p", {
610
+ className: "text-xl font-bold text-green-600 dark:text-green-400 sm:text-2xl",
611
+ children: [e.expectedReturns, "%"]
612
+ }), /* @__PURE__ */ v("p", {
613
+ className: "text-xs text-muted-foreground",
614
+ children: "Expected Returns"
615
+ })]
616
+ })]
617
+ }),
618
+ /* @__PURE__ */ v("p", {
619
+ className: "mb-4 text-sm leading-relaxed text-muted-foreground line-clamp-2",
620
+ children: e.description
621
+ }),
622
+ /* @__PURE__ */ y("div", {
623
+ className: "mb-4",
624
+ children: [
625
+ /* @__PURE__ */ y("div", {
626
+ className: "mb-1 flex justify-between text-xs sm:text-sm",
627
+ children: [/* @__PURE__ */ y("span", {
628
+ className: "font-medium text-foreground",
629
+ children: [
630
+ i(e.raisedAmount, { minimumFractionDigits: 0 }),
631
+ " ",
632
+ "raised"
633
+ ]
634
+ }), /* @__PURE__ */ y("span", {
635
+ className: "text-muted-foreground",
636
+ children: ["of ", i(e.targetAmount, { minimumFractionDigits: 0 })]
637
+ })]
638
+ }),
639
+ /* @__PURE__ */ v("div", {
640
+ className: "h-2 w-full overflow-hidden rounded-full bg-muted",
641
+ children: /* @__PURE__ */ v("div", {
642
+ className: "h-full rounded-full bg-primary transition-all duration-300",
643
+ style: { width: `${n}%` }
644
+ })
645
+ }),
646
+ /* @__PURE__ */ y("div", {
647
+ className: "mt-1 flex justify-between text-xs text-muted-foreground",
648
+ children: [/* @__PURE__ */ y("span", { children: [e.investorCount, " investors"] }), /* @__PURE__ */ y("span", { children: [n.toFixed(0), "% funded"] })]
649
+ })
650
+ ]
651
+ }),
652
+ /* @__PURE__ */ y("div", {
653
+ className: "mb-4 grid grid-cols-3 gap-2 text-center sm:gap-4",
654
+ children: [
655
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
656
+ className: "text-sm font-bold text-foreground sm:text-lg",
657
+ children: i(e.minimumInvestment, { minimumFractionDigits: 0 })
658
+ }), /* @__PURE__ */ v("p", {
659
+ className: "text-xs text-muted-foreground",
660
+ children: "Min Investment"
661
+ })] }),
662
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("p", {
663
+ className: "text-sm font-bold text-foreground sm:text-lg",
664
+ children: [e.paybackPeriod, " mo"]
665
+ }), /* @__PURE__ */ v("p", {
666
+ className: "text-xs text-muted-foreground",
667
+ children: "Payback Period"
668
+ })] }),
669
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("div", {
670
+ className: "flex items-center justify-center gap-1",
671
+ children: [/* @__PURE__ */ v(g, { className: "h-3.5 w-3.5 fill-yellow-400 text-yellow-400" }), /* @__PURE__ */ v("p", {
672
+ className: "text-sm font-bold text-foreground sm:text-lg",
673
+ children: e.businessMetrics.rating
674
+ })]
675
+ }), /* @__PURE__ */ v("p", {
676
+ className: "text-xs text-muted-foreground",
677
+ children: "Rating"
678
+ })] })
679
+ ]
680
+ }),
681
+ /* @__PURE__ */ y("div", {
682
+ className: "mb-4 border-t border-border pt-3 sm:pt-4",
683
+ children: [/* @__PURE__ */ v("p", {
684
+ className: "mb-2 text-xs font-medium text-muted-foreground sm:text-sm",
685
+ children: "Business Performance"
686
+ }), /* @__PURE__ */ y("div", {
687
+ className: "grid grid-cols-1 gap-2 text-xs sm:grid-cols-2 sm:text-sm",
688
+ children: [
689
+ /* @__PURE__ */ y("div", {
690
+ className: "flex justify-between",
691
+ children: [/* @__PURE__ */ v("span", {
692
+ className: "text-muted-foreground",
693
+ children: "Monthly Revenue:"
694
+ }), /* @__PURE__ */ v("span", {
695
+ className: "font-medium text-foreground",
696
+ children: i(e.businessMetrics.monthlyRevenue, { minimumFractionDigits: 0 })
697
+ })]
698
+ }),
699
+ /* @__PURE__ */ y("div", {
700
+ className: "flex justify-between",
701
+ children: [/* @__PURE__ */ v("span", {
702
+ className: "text-muted-foreground",
703
+ children: "Gross Margin:"
704
+ }), /* @__PURE__ */ y("span", {
705
+ className: "font-medium text-foreground",
706
+ children: [e.financials.grossMargin, "%"]
707
+ })]
708
+ }),
709
+ /* @__PURE__ */ y("div", {
710
+ className: "flex justify-between",
711
+ children: [/* @__PURE__ */ v("span", {
712
+ className: "text-muted-foreground",
713
+ children: "Monthly Orders:"
714
+ }), /* @__PURE__ */ v("span", {
715
+ className: "font-medium text-foreground",
716
+ children: a(e.businessMetrics.monthlyOrders)
717
+ })]
718
+ }),
719
+ /* @__PURE__ */ y("div", {
720
+ className: "flex justify-between",
721
+ children: [/* @__PURE__ */ v("span", {
722
+ className: "text-muted-foreground",
723
+ children: "Net Margin:"
724
+ }), /* @__PURE__ */ y("span", {
725
+ className: "font-medium text-foreground",
726
+ children: [e.financials.netMargin, "%"]
727
+ })]
728
+ })
729
+ ]
730
+ })]
731
+ }),
732
+ /* @__PURE__ */ v("div", {
733
+ className: "mb-4 border-t border-border pt-3",
734
+ children: /* @__PURE__ */ y("div", {
735
+ className: "flex items-center gap-1.5 text-xs text-muted-foreground",
736
+ children: [/* @__PURE__ */ v(f, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ y("span", { children: [e.documents.length, " documents available"] })]
737
+ })
738
+ }),
739
+ /* @__PURE__ */ y("div", {
740
+ className: "mb-4 flex items-center gap-1.5 text-xs text-muted-foreground",
741
+ children: [/* @__PURE__ */ v(m, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ v("span", { children: e.location })]
742
+ }),
743
+ /* @__PURE__ */ y("div", {
744
+ className: "flex flex-col gap-2 sm:flex-row sm:gap-3",
745
+ children: [/* @__PURE__ */ v("button", {
746
+ type: "button",
747
+ onClick: () => V(e),
748
+ disabled: e.status === "funded",
749
+ className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", e.status === "funded" ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"),
750
+ children: e.status === "funded" ? "Fully Funded" : "Invest Now"
751
+ }), /* @__PURE__ */ y("button", {
752
+ type: "button",
753
+ onClick: () => T(`/investor/opportunities/${e.id}`),
754
+ className: "flex flex-1 items-center justify-center gap-2 rounded-lg border border-border px-4 py-2.5 text-sm font-medium text-foreground hover:bg-accent transition-colors",
755
+ children: [/* @__PURE__ */ v(d, { className: "h-4 w-4" }), "View Details"]
756
+ })]
757
+ })
758
+ ]
759
+ })]
760
+ }, e.id);
761
+ })
762
+ }),
763
+ A && O && /* @__PURE__ */ v("div", {
764
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
765
+ children: /* @__PURE__ */ y("div", {
766
+ className: "relative max-h-[90vh] w-full max-w-md overflow-y-auto rounded-lg border border-border bg-card p-4 sm:p-6",
767
+ children: [
768
+ /* @__PURE__ */ v("button", {
769
+ type: "button",
770
+ onClick: () => {
771
+ j(!1), N(""), F("idle");
772
+ },
773
+ className: "absolute right-3 top-3 rounded-lg p-1 text-muted-foreground hover:bg-accent transition-colors",
774
+ children: /* @__PURE__ */ v(_, { className: "h-5 w-5" })
775
+ }),
776
+ /* @__PURE__ */ y("h3", {
777
+ className: "mb-4 text-base font-semibold text-foreground sm:text-lg",
778
+ children: ["Invest in ", O.cartName]
779
+ }),
780
+ P === "success" ? /* @__PURE__ */ y("div", {
781
+ className: "py-8 text-center",
782
+ children: [
783
+ /* @__PURE__ */ v(u, { className: "mx-auto mb-3 h-12 w-12 text-green-600 dark:text-green-400" }),
784
+ /* @__PURE__ */ v("p", {
785
+ className: "text-sm font-medium text-foreground",
786
+ children: "Investment successful!"
787
+ }),
788
+ /* @__PURE__ */ v("p", {
789
+ className: "mt-1 text-xs text-muted-foreground",
790
+ children: "Redirecting to your portfolio..."
791
+ })
792
+ ]
793
+ }) : /* @__PURE__ */ y("div", {
794
+ className: "space-y-4",
795
+ children: [
796
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
797
+ className: "mb-1 text-xs text-muted-foreground sm:text-sm",
798
+ children: "Investment Range"
799
+ }), /* @__PURE__ */ y("p", {
800
+ className: "text-sm font-medium text-foreground sm:text-base",
801
+ children: [
802
+ i(O.minimumInvestment, { minimumFractionDigits: 0 }),
803
+ " ",
804
+ "-",
805
+ " ",
806
+ i(O.maximumInvestment, { minimumFractionDigits: 0 })
807
+ ]
808
+ })] }),
809
+ /* @__PURE__ */ y("div", { children: [
810
+ /* @__PURE__ */ v("label", {
811
+ className: "mb-1 block text-xs font-medium text-foreground sm:text-sm",
812
+ children: "Investment Amount"
813
+ }),
814
+ /* @__PURE__ */ y("div", {
815
+ className: "relative",
816
+ children: [/* @__PURE__ */ v(p, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }), /* @__PURE__ */ v("input", {
817
+ type: "number",
818
+ value: M,
819
+ onChange: (e) => {
820
+ N(e.target.value), F("idle");
821
+ },
822
+ placeholder: "Enter amount",
823
+ className: "w-full rounded-lg border border-border bg-card py-2 pl-10 pr-4 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring"
824
+ })]
825
+ }),
826
+ P === "error" && /* @__PURE__ */ y("p", {
827
+ className: "mt-1 text-xs text-red-600 dark:text-red-400",
828
+ children: [
829
+ "Amount must be between",
830
+ " ",
831
+ i(O.minimumInvestment, { minimumFractionDigits: 0 }),
832
+ " ",
833
+ "and",
834
+ " ",
835
+ i(O.maximumInvestment, { minimumFractionDigits: 0 })
836
+ ]
837
+ })
838
+ ] }),
839
+ M && !isNaN(parseInt(M, 10)) && parseInt(M, 10) > 0 && /* @__PURE__ */ y("div", {
840
+ className: "rounded-lg border border-border bg-muted/50 p-3 sm:p-4",
841
+ children: [/* @__PURE__ */ v("p", {
842
+ className: "mb-2 text-xs text-muted-foreground sm:text-sm",
843
+ children: "Expected Returns"
844
+ }), /* @__PURE__ */ y("div", {
845
+ className: "space-y-1.5",
846
+ children: [
847
+ /* @__PURE__ */ y("div", {
848
+ className: "flex justify-between",
849
+ children: [/* @__PURE__ */ v("span", {
850
+ className: "text-xs text-foreground sm:text-sm",
851
+ children: "Investment:"
852
+ }), /* @__PURE__ */ v("span", {
853
+ className: "text-xs font-medium text-foreground sm:text-sm",
854
+ children: i(parseInt(M, 10), { minimumFractionDigits: 0 })
855
+ })]
856
+ }),
857
+ /* @__PURE__ */ y("div", {
858
+ className: "flex justify-between",
859
+ children: [/* @__PURE__ */ y("span", {
860
+ className: "text-xs text-foreground sm:text-sm",
861
+ children: [
862
+ "Expected Return (",
863
+ O.expectedReturns,
864
+ "%):"
865
+ ]
866
+ }), /* @__PURE__ */ y("span", {
867
+ className: "text-xs font-medium text-green-600 dark:text-green-400 sm:text-sm",
868
+ children: ["+", i(parseInt(M, 10) * O.expectedReturns / 100, { minimumFractionDigits: 0 })]
869
+ })]
870
+ }),
871
+ /* @__PURE__ */ y("div", {
872
+ className: "flex justify-between border-t border-border pt-2",
873
+ children: [/* @__PURE__ */ v("span", {
874
+ className: "text-xs font-medium text-foreground sm:text-sm",
875
+ children: "Total Value:"
876
+ }), /* @__PURE__ */ v("span", {
877
+ className: "text-xs font-bold text-foreground sm:text-sm",
878
+ children: i(parseInt(M, 10) * (1 + O.expectedReturns / 100), { minimumFractionDigits: 0 })
879
+ })]
880
+ })
881
+ ]
882
+ })]
883
+ }),
884
+ /* @__PURE__ */ y("div", {
885
+ className: "space-y-1 text-xs text-muted-foreground sm:text-sm",
886
+ children: [
887
+ /* @__PURE__ */ y("p", { children: [
888
+ "• Minimum lock-in period:",
889
+ " ",
890
+ O.investmentTerms.lockInPeriod,
891
+ " months"
892
+ ] }),
893
+ /* @__PURE__ */ y("p", { children: [
894
+ "• Dividend frequency:",
895
+ " ",
896
+ O.investmentTerms.dividendFrequency
897
+ ] }),
898
+ /* @__PURE__ */ y("p", { children: [
899
+ "• Your equity stake:",
900
+ " ",
901
+ ((parseInt(M, 10) || 0) / O.targetAmount * O.investmentTerms.equityOffered).toFixed(2),
902
+ "%"
903
+ ] }),
904
+ /* @__PURE__ */ y("p", { children: [
905
+ "• Exit options:",
906
+ " ",
907
+ O.investmentTerms.exitOptions.join(", ")
908
+ ] })
909
+ ]
910
+ }),
911
+ /* @__PURE__ */ y("div", {
912
+ className: "flex flex-col gap-2 pt-2 sm:flex-row sm:gap-3",
913
+ children: [/* @__PURE__ */ v("button", {
914
+ type: "button",
915
+ onClick: () => {
916
+ j(!1), N(""), F("idle");
917
+ },
918
+ className: "flex-1 rounded-lg border border-border px-4 py-2.5 text-sm font-medium text-foreground hover:bg-accent transition-colors",
919
+ children: "Cancel"
920
+ }), /* @__PURE__ */ v("button", {
921
+ type: "button",
922
+ onClick: B,
923
+ disabled: !M || isNaN(parseInt(M, 10)) || parseInt(M, 10) < O.minimumInvestment,
924
+ className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", !M || isNaN(parseInt(M, 10)) || parseInt(M, 10) < O.minimumInvestment ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"),
925
+ children: "Confirm Investment"
926
+ })]
927
+ })
928
+ ]
929
+ })
930
+ ]
931
+ })
932
+ })
933
+ ]
934
+ });
935
+ }
936
+ //#endregion
937
+ export { T as InvestmentOpportunitiesPage };
938
+
939
+ //# sourceMappingURL=InvestmentOpportunitiesPage.js.map