@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
@@ -3,926 +3,332 @@ import { cn as t } from "../utils/cn.js";
3
3
  import { PageLayout as n } from "../components/PageLayout.js";
4
4
  import { MetricsCard as r } from "../components/MetricsCard.js";
5
5
  import { StatusBadge as i } from "../components/StatusBadge.js";
6
- import { EmptyState as a } from "../components/EmptyState.js";
7
- import { useCoolAndLovelyApi as o } from "../hooks/useCoolAndLovelyApi.js";
8
- import { formatCurrency as s, formatDistance as ee, formatRelativeTime as c } from "../utils/formatters.js";
9
- import { useCallback as l, useMemo as u, useState as d } from "react";
10
- import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
- import { Activity as p, AlertCircle as m, ArrowRight as h, BadgeCheck as g, BarChart3 as _, CheckCircle2 as v, ChefHat as y, ClipboardList as b, Clock as x, FileText as S, GraduationCap as C, HandCoins as w, Heart as T, Home as E, IndianRupee as D, LayoutDashboard as O, Loader2 as k, MapPin as A, Package as j, Scissors as M, Search as N, Settings as P, Shirt as F, ShoppingBag as I, ShoppingCart as L, Sparkles as R, Star as z, Store as B, TrendingUp as V, Truck as H, Users as U, Wallet as W, Wrench as G } from "lucide-react";
12
- import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
13
- import { EmphasisPanel as Y, GlassCard as X, GradientText as Z, PagePurpose as Q } from "@burdenoff/fe-libs/ui";
6
+ import { ErrorView as a, LoadingView as o } from "../components/StateViews.js";
7
+ import { Thumbnail as s } from "../components/Thumbnail.js";
8
+ import { useBrands as c, useCollaborations as l, useLooks as u, useStyleItems as d, useWardrobeItems as f } from "../hooks/useCoolAndLovelyApi.js";
9
+ import "../hooks/index.js";
10
+ import { formatRelativeTime as p, titleCase as m } from "../utils/formatters.js";
11
+ import { useMemo as h } from "react";
12
+ import { ArrowRight as g, BookHeart as _, Handshake as v, Heart as y, Plus as b, Shapes as x, Shirt as S, Sparkles as C, Star as w, Store as T, UserCircle as E } from "lucide-react";
13
+ import { jsx as D, jsxs as O } from "react/jsx-runtime";
14
+ import { EmphasisPanel as k, PagePurpose as A } from "@burdenoff/fe-libs/ui";
14
15
  //#region src/coolandlovely/pages/HomePage.tsx
15
- var $ = {
16
- customer: [
17
- {
18
- label: "Discover Services",
19
- description: "Browse carts near you",
20
- icon: /* @__PURE__ */ q(N, { className: "h-5 w-5" }),
21
- path: "/customer/carts",
22
- color: "bg-accent-blue-subtle/10 text-accent-blue"
23
- },
24
- {
25
- label: "My Orders",
26
- description: "Track your orders",
27
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
28
- path: "/customer/orders",
29
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
30
- },
31
- {
32
- label: "Favorites",
33
- description: "Your saved carts",
34
- icon: /* @__PURE__ */ q(T, { className: "h-5 w-5" }),
35
- path: "/customer/favorites",
36
- color: "bg-accent-pink-subtle/10 text-accent-pink"
37
- },
38
- {
39
- label: "Settings",
40
- description: "Manage preferences",
41
- icon: /* @__PURE__ */ q(P, { className: "h-5 w-5" }),
42
- path: "/settings",
43
- color: "bg-bg-sunken text-text-secondary"
44
- }
45
- ],
46
- cart_owner: [
47
- {
48
- label: "My Cart",
49
- description: "Manage your cart",
50
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
51
- path: "/owner/dashboard",
52
- color: "bg-accent-purple-subtle/10 text-accent-purple"
53
- },
54
- {
55
- label: "Orders",
56
- description: "Incoming orders",
57
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
58
- path: "/owner/orders",
59
- color: "bg-accent-blue-subtle/10 text-accent-blue"
60
- },
61
- {
62
- label: "Analytics",
63
- description: "Revenue & insights",
64
- icon: /* @__PURE__ */ q(_, { className: "h-5 w-5" }),
65
- path: "/owner/analytics",
66
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
67
- },
68
- {
69
- label: "Staff",
70
- description: "Manage workers",
71
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
72
- path: "/owner/staff",
73
- color: "bg-accent-orange-subtle/10 text-accent-orange"
74
- }
75
- ],
76
- worker: [
77
- {
78
- label: "My Tasks",
79
- description: "View assigned tasks",
80
- icon: /* @__PURE__ */ q(b, { className: "h-5 w-5" }),
81
- path: "/worker/dashboard",
82
- color: "bg-accent-orange-subtle/10 text-accent-orange"
83
- },
84
- {
85
- label: "Schedule",
86
- description: "View shifts",
87
- icon: /* @__PURE__ */ q(x, { className: "h-5 w-5" }),
88
- path: "/worker/schedule",
89
- color: "bg-accent-blue-subtle/10 text-accent-blue"
90
- },
91
- {
92
- label: "Earnings",
93
- description: "Track pay",
94
- icon: /* @__PURE__ */ q(W, { className: "h-5 w-5" }),
95
- path: "/worker/earnings",
96
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
97
- },
98
- {
99
- label: "Performance",
100
- description: "Ratings & stats",
101
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
102
- path: "/worker/performance",
103
- color: "bg-status-warning-bg-subtle/10 text-status-warning-text"
104
- }
105
- ],
106
- investor: [
107
- {
108
- label: "Portfolio",
109
- description: "Your investments",
110
- icon: /* @__PURE__ */ q(V, { className: "h-5 w-5" }),
111
- path: "/investor/dashboard",
112
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
113
- },
114
- {
115
- label: "Opportunities",
116
- description: "New investments",
117
- icon: /* @__PURE__ */ q(w, { className: "h-5 w-5" }),
118
- path: "/investor/opportunities",
119
- color: "bg-accent-blue-subtle/10 text-accent-blue"
120
- },
121
- {
122
- label: "Returns",
123
- description: "Earnings history",
124
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
125
- path: "/investor/returns",
126
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
127
- },
128
- {
129
- label: "Reports",
130
- description: "Performance reports",
131
- icon: /* @__PURE__ */ q(S, { className: "h-5 w-5" }),
132
- path: "/investor/reports",
133
- color: "bg-accent-purple-subtle/10 text-accent-purple"
134
- }
135
- ],
136
- admin: [
137
- {
138
- label: "Dashboard",
139
- description: "Platform overview",
140
- icon: /* @__PURE__ */ q(O, { className: "h-5 w-5" }),
141
- path: "/admin/dashboard",
142
- color: "bg-status-error-bg-subtle/10 text-status-error-text"
143
- },
144
- {
145
- label: "Users",
146
- description: "Manage accounts",
147
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
148
- path: "/admin/users",
149
- color: "bg-accent-blue-subtle/10 text-accent-blue"
150
- },
151
- {
152
- label: "Carts",
153
- description: "Approve & manage",
154
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
155
- path: "/admin/carts",
156
- color: "bg-accent-purple-subtle/10 text-accent-purple"
157
- },
158
- {
159
- label: "Analytics",
160
- description: "Revenue reports",
161
- icon: /* @__PURE__ */ q(_, { className: "h-5 w-5" }),
162
- path: "/admin/analytics",
163
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
164
- }
165
- ]
166
- };
167
- function te(e, t, n) {
168
- switch (e) {
169
- case "customer": return [
170
- {
171
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
172
- value: t.length.toString(),
173
- label: "Total Orders",
174
- trend: "up",
175
- trendValue: "+2 this week"
176
- },
177
- {
178
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
179
- value: (n?.activeProviders ?? 0).toString(),
180
- label: "Nearby Providers",
181
- trend: "up",
182
- trendValue: "+3"
183
- },
184
- {
185
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
186
- value: (n?.avgRating ?? 0).toFixed(1),
187
- label: "Avg. Rating",
188
- trend: "up",
189
- trendValue: "+0.1"
190
- },
191
- {
192
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
193
- value: s(t.reduce((e, t) => e + t.total, 0), { minimumFractionDigits: 0 }),
194
- label: "Total Spent",
195
- trend: "neutral",
196
- trendValue: ""
197
- }
198
- ];
199
- case "cart_owner": return [
200
- {
201
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
202
- value: "48",
203
- label: "Orders Today",
204
- trend: "up",
205
- trendValue: "+12%"
206
- },
207
- {
208
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
209
- value: s(12850, { minimumFractionDigits: 0 }),
210
- label: "Today's Revenue",
211
- trend: "up",
212
- trendValue: "+8%"
213
- },
214
- {
215
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
216
- value: "4.6",
217
- label: "Cart Rating",
218
- trend: "up",
219
- trendValue: "+0.2"
220
- },
221
- {
222
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
223
- value: "5",
224
- label: "Active Staff",
225
- trend: "neutral",
226
- trendValue: ""
227
- }
228
- ];
229
- case "worker": return [
230
- {
231
- icon: /* @__PURE__ */ q(b, { className: "h-5 w-5" }),
232
- value: "5",
233
- label: "Tasks Today",
234
- trend: "up",
235
- trendValue: "+2"
236
- },
237
- {
238
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
239
- value: s(425, { minimumFractionDigits: 0 }),
240
- label: "Today's Earnings",
241
- trend: "up",
242
- trendValue: "+15%"
243
- },
244
- {
245
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
246
- value: "4.7",
247
- label: "Rating",
248
- trend: "up",
249
- trendValue: "+0.1"
250
- },
251
- {
252
- icon: /* @__PURE__ */ q(v, { className: "h-5 w-5" }),
253
- value: "96.8%",
254
- label: "Completion Rate",
255
- trend: "up",
256
- trendValue: "+0.5%"
257
- }
258
- ];
259
- case "investor": return [
260
- {
261
- icon: /* @__PURE__ */ q(V, { className: "h-5 w-5" }),
262
- value: "3",
263
- label: "Active Investments",
264
- trend: "up",
265
- trendValue: "+1"
266
- },
267
- {
268
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
269
- value: s(45e4, { minimumFractionDigits: 0 }),
270
- label: "Total Invested",
271
- trend: "up",
272
- trendValue: ""
273
- },
274
- {
275
- icon: /* @__PURE__ */ q(w, { className: "h-5 w-5" }),
276
- value: "16.5%",
277
- label: "Avg. Returns",
278
- trend: "up",
279
- trendValue: "+2.1%"
280
- },
281
- {
282
- icon: /* @__PURE__ */ q(_, { className: "h-5 w-5" }),
283
- value: s(74250, { minimumFractionDigits: 0 }),
284
- label: "Total Returns",
285
- trend: "up",
286
- trendValue: "+8.5%"
287
- }
288
- ];
289
- default: return [
290
- {
291
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
292
- value: (n?.activeCustomers ?? 0).toLocaleString("en-IN"),
293
- label: "Active Customers",
294
- trend: "up",
295
- trendValue: "+50"
296
- },
297
- {
298
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
299
- value: (n?.activeProviders ?? 0).toString(),
300
- label: "Service Providers",
301
- trend: "up",
302
- trendValue: "+3"
303
- },
304
- {
305
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
306
- value: (n?.totalOrders ?? 0).toLocaleString("en-IN"),
307
- label: "Total Orders",
308
- trend: "up",
309
- trendValue: "+12%"
310
- },
311
- {
312
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
313
- value: s(n?.totalRevenue ?? 0, { minimumFractionDigits: 0 }),
314
- label: "Total Revenue",
315
- trend: "up",
316
- trendValue: "+8.5%"
317
- }
318
- ];
319
- }
320
- }
321
- var ne = [
16
+ var j = [
322
17
  {
323
- label: "Food & Beverage",
324
- icon: /* @__PURE__ */ q(y, { className: "h-6 w-6" }),
325
- color: "bg-accent-orange-subtle/10 text-accent-orange"
18
+ label: "New Brand",
19
+ description: "Launch a storefront",
20
+ icon: /* @__PURE__ */ D(T, { className: "h-5 w-5" }),
21
+ path: "/brands/new",
22
+ color: "bg-accent-purple-subtle text-text-primary"
326
23
  },
327
24
  {
328
- label: "Personal Care & Beauty",
329
- icon: /* @__PURE__ */ q(M, { className: "h-6 w-6" }),
330
- color: "bg-accent-pink-subtle/10 text-accent-pink"
25
+ label: "Add Style Item",
26
+ description: "List a piece",
27
+ icon: /* @__PURE__ */ D(S, { className: "h-5 w-5" }),
28
+ path: "/items/new",
29
+ color: "bg-[var(--color-accent-soft)] text-text-primary"
331
30
  },
332
31
  {
333
- label: "Repair & Maintenance",
334
- icon: /* @__PURE__ */ q(G, { className: "h-6 w-6" }),
335
- color: "bg-accent-blue-subtle/10 text-accent-blue"
32
+ label: "Publish a Look",
33
+ description: "Shop-the-look outfit",
34
+ icon: /* @__PURE__ */ D(C, { className: "h-5 w-5" }),
35
+ path: "/looks/new",
36
+ color: "bg-status-success-bg-subtle text-status-success-text"
336
37
  },
337
38
  {
338
- label: "Home Services",
339
- icon: /* @__PURE__ */ q(E, { className: "h-6 w-6" }),
340
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
341
- },
342
- {
343
- label: "Clothing & Fashion",
344
- icon: /* @__PURE__ */ q(F, { className: "h-6 w-6" }),
345
- color: "bg-accent-purple-subtle/10 text-accent-purple"
346
- },
347
- {
348
- label: "Health & Wellness",
349
- icon: /* @__PURE__ */ q(T, { className: "h-6 w-6" }),
350
- color: "bg-status-error-bg-subtle/10 text-status-error-text"
351
- },
352
- {
353
- label: "Education & Skills",
354
- icon: /* @__PURE__ */ q(C, { className: "h-6 w-6" }),
355
- color: "bg-status-warning-bg-subtle/10 text-status-warning-text"
356
- },
357
- {
358
- label: "Retail & Merchandise",
359
- icon: /* @__PURE__ */ q(j, { className: "h-6 w-6" }),
360
- color: "bg-accent-indigo-subtle/10 text-accent-indigo"
361
- },
362
- {
363
- label: "Grocery & Essentials",
364
- icon: /* @__PURE__ */ q(L, { className: "h-6 w-6" }),
365
- color: "bg-status-success-bg-subtle/10 text-status-success-text"
366
- }
367
- ], re = [
368
- {
369
- step: 1,
370
- title: "Browse Services",
371
- description: "Discover local service providers and carts near you.",
372
- icon: /* @__PURE__ */ q(N, { className: "h-6 w-6" })
373
- },
374
- {
375
- step: 2,
376
- title: "Place an Order",
377
- description: "Select items or services and place your order seamlessly.",
378
- icon: /* @__PURE__ */ q(I, { className: "h-6 w-6" })
379
- },
380
- {
381
- step: 3,
382
- title: "Track in Real-time",
383
- description: "Get live updates on your order from confirmation to delivery.",
384
- icon: /* @__PURE__ */ q(H, { className: "h-6 w-6" })
385
- },
386
- {
387
- step: 4,
388
- title: "Rate & Review",
389
- description: "Share your experience and help others find great services.",
390
- icon: /* @__PURE__ */ q(z, { className: "h-6 w-6" })
39
+ label: "My Wardrobe",
40
+ description: "What you own",
41
+ icon: /* @__PURE__ */ D(y, { className: "h-5 w-5" }),
42
+ path: "/wardrobe",
43
+ color: "bg-status-warning-bg-subtle text-status-warning-text"
391
44
  }
392
- ], ie = [
45
+ ], M = [
393
46
  {
394
- id: "ha-1",
395
- description: "New order placed at Dosa Express",
396
- time: "2 mins ago",
397
- type: "order"
47
+ label: "Brands",
48
+ description: "Storefronts with a publish lifecycle",
49
+ icon: /* @__PURE__ */ D(T, { className: "h-6 w-6" }),
50
+ path: "/brands",
51
+ color: "bg-accent-purple-subtle text-text-primary"
398
52
  },
399
53
  {
400
- id: "ha-2",
401
- description: "Quick Cuts Salon received a new review",
402
- time: "15 mins ago",
403
- type: "review"
54
+ label: "Collections",
55
+ description: "Seasonal drops & curated edits",
56
+ icon: /* @__PURE__ */ D(x, { className: "h-6 w-6" }),
57
+ path: "/collections",
58
+ color: "bg-accent-blue-subtle text-accent-blue"
404
59
  },
405
60
  {
406
- id: "ha-3",
407
- description: "Investment opportunity funded: Spotless Cleaning",
408
- time: "1 hour ago",
409
- type: "investment"
61
+ label: "Style Items",
62
+ description: "The shoppable catalogue",
63
+ icon: /* @__PURE__ */ D(S, { className: "h-6 w-6" }),
64
+ path: "/items",
65
+ color: "bg-[var(--color-accent-soft)] text-text-primary"
410
66
  },
411
67
  {
412
- id: "ha-4",
413
- description: "New cart registered: Gadget Zone Brigade",
414
- time: "3 hours ago",
415
- type: "cart"
68
+ label: "Looks",
69
+ description: "Published shop-the-look outfits",
70
+ icon: /* @__PURE__ */ D(C, { className: "h-6 w-6" }),
71
+ path: "/looks",
72
+ color: "bg-status-success-bg-subtle text-status-success-text"
416
73
  },
417
74
  {
418
- id: "ha-5",
419
- description: "Order delivered: Fix-It Mobile Repair",
420
- time: "5 hours ago",
421
- type: "order"
422
- }
423
- ], ae = [
424
- {
425
- label: "Service Providers",
426
- value: "21+",
427
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" })
75
+ label: "Collaborations",
76
+ description: "Brand × creator partnerships",
77
+ icon: /* @__PURE__ */ D(v, { className: "h-6 w-6" }),
78
+ path: "/collaborations",
79
+ color: "bg-status-warning-bg-subtle text-status-warning-text"
428
80
  },
429
81
  {
430
- label: "Categories",
431
- value: "9",
432
- icon: /* @__PURE__ */ q(j, { className: "h-5 w-5" })
82
+ label: "Wardrobe",
83
+ description: "Your digital closet & wear log",
84
+ icon: /* @__PURE__ */ D(y, { className: "h-6 w-6" }),
85
+ path: "/wardrobe",
86
+ color: "bg-status-error-bg-subtle text-status-error-text"
433
87
  },
434
88
  {
435
- label: "Happy Customers",
436
- value: "534+",
437
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" })
89
+ label: "Lookbooks",
90
+ description: "Themed boards of saved pieces",
91
+ icon: /* @__PURE__ */ D(_, { className: "h-6 w-6" }),
92
+ path: "/lookbooks",
93
+ color: "bg-accent-purple-subtle text-text-primary"
438
94
  },
439
95
  {
440
- label: "Orders Completed",
441
- value: "1,247+",
442
- icon: /* @__PURE__ */ q(v, { className: "h-5 w-5" })
96
+ label: "Style Profile",
97
+ description: "Your taste, palette & sizing",
98
+ icon: /* @__PURE__ */ D(E, { className: "h-6 w-6" }),
99
+ path: "/profile",
100
+ color: "bg-accent-blue-subtle text-accent-blue"
443
101
  }
444
102
  ];
445
- function oe() {
446
- let { navigateTo: _, currentUser: v } = e(), { t: y } = f(), [b, S] = d(""), { providers: C, orders: w, dashboardStats: T } = o(), E = l((e, t) => {
447
- let n = y(e);
448
- return n === e ? t : n;
449
- }, [y]), O = v?.firstName ?? v?.name ?? "there", j = v?.role ?? "customer", M = {
450
- customer: E("coolandlovely.home.role.customer", "Customer"),
451
- cart_owner: E("coolandlovely.home.role.cartOwner", "Cart Owner"),
452
- worker: E("coolandlovely.home.role.worker", "Worker"),
453
- investor: E("coolandlovely.home.role.investor", "Investor"),
454
- admin: E("coolandlovely.home.role.admin", "Administrator")
455
- }, P = {
456
- customer: E("coolandlovely.home.greeting.customer", "Discover amazing services near you"),
457
- cart_owner: E("coolandlovely.home.greeting.cartOwner", "Manage your business and grow"),
458
- worker: E("coolandlovely.home.greeting.worker", "Check your tasks and earnings"),
459
- investor: E("coolandlovely.home.greeting.investor", "Track your investments and returns"),
460
- admin: E("coolandlovely.home.greeting.admin", "Monitor and manage the platform")
461
- }, F = $[j] ?? $.customer, I = te(j, w.data ?? [], T.data), L = u(() => {
462
- let e = (C.data ?? []).filter((e) => e.isOpen);
463
- if (b) {
464
- let t = b.toLowerCase();
465
- e = e.filter((e) => e.name.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
466
- }
467
- return e.sort((e, t) => t.rating - e.rating).slice(0, 6);
468
- }, [C.data, b]), B = u(() => [...w.data ?? []].sort((e, t) => new Date(t.orderDate).getTime() - new Date(e.orderDate).getTime()).slice(0, 3), [w.data]), V = {
469
- order: "text-accent-blue",
470
- review: "text-status-warning-text",
471
- investment: "text-status-success-text",
472
- cart: "text-accent-purple"
473
- }, H = (w.data ?? []).length === 0 && !w.isLoading, U = C.isLoading || w.isLoading || T.isLoading, W = C.isError || w.isError || T.isError;
474
- return U ? /* @__PURE__ */ q(n, {
475
- title: E("coolandlovely.common.loading", "Loading..."),
476
- children: /* @__PURE__ */ q("div", {
477
- className: "flex h-[60vh] items-center justify-center",
478
- children: /* @__PURE__ */ q(k, { className: "h-8 w-8 animate-spin text-primary" })
479
- })
480
- }) : W ? /* @__PURE__ */ q(n, {
481
- title: E("coolandlovely.common.error", "Error"),
482
- children: /* @__PURE__ */ J("div", {
483
- className: "flex h-[60vh] flex-col items-center justify-center gap-4",
484
- children: [
485
- /* @__PURE__ */ q(m, { className: "h-12 w-12 text-status-error-text" }),
486
- /* @__PURE__ */ q("h2", {
487
- className: "text-xl font-semibold",
488
- children: E("coolandlovely.common.errorLoading", "Error loading data")
489
- }),
490
- /* @__PURE__ */ q("p", {
491
- className: "text-text-secondary",
492
- children: E("coolandlovely.common.tryAgain", "Please try again later.")
493
- })
494
- ]
103
+ function N() {
104
+ let { navigateTo: _, currentUser: x } = e(), E = c(), N = d(), P = u(), F = l(), I = f(), L = x?.firstName ?? x?.name ?? "there", R = E.isLoading || N.isLoading || P.isLoading || F.isLoading || I.isLoading, z = E.isError && N.isError && P.isError && F.isError, B = h(() => {
105
+ let e = E.data?.items ?? [], t = N.data?.items ?? [], n = P.data?.items ?? [], r = F.data ?? [], i = I.data ?? [];
106
+ return {
107
+ totalBrands: e.length,
108
+ publishedBrands: e.filter((e) => e.status === "PUBLISHED").length,
109
+ totalStyleItems: t.length,
110
+ activeStyleItems: t.filter((e) => e.status === "ACTIVE").length,
111
+ totalLooks: n.length,
112
+ featuredLooks: n.filter((e) => e.isFeatured).length,
113
+ activeCollaborations: r.filter((e) => e.status === "ACCEPTED" || e.status === "IN_PROGRESS").length,
114
+ wardrobeItems: i.length
115
+ };
116
+ }, [
117
+ E.data,
118
+ N.data,
119
+ P.data,
120
+ F.data,
121
+ I.data
122
+ ]), V = h(() => [...P.data?.items ?? []].slice(0, 6), [P.data]), H = h(() => [...E.data?.items ?? []].sort((e, t) => new Date(t.updatedAt).getTime() - new Date(e.updatedAt).getTime()).slice(0, 4), [E.data]);
123
+ if (R) return /* @__PURE__ */ D(n, {
124
+ title: "CoolAndLovely",
125
+ children: /* @__PURE__ */ D(o, { label: "Loading your style command center…" })
126
+ });
127
+ if (z) return /* @__PURE__ */ D(n, {
128
+ title: "CoolAndLovely",
129
+ children: /* @__PURE__ */ D(a, {
130
+ title: "Could not load CoolAndLovely",
131
+ message: "The fashion service did not respond. Please try again.",
132
+ onRetry: () => {
133
+ E.refetch(), N.refetch(), P.refetch(), F.refetch(), I.refetch();
134
+ }
495
135
  })
496
- }) : /* @__PURE__ */ J(n, {
136
+ });
137
+ let U = [
138
+ {
139
+ icon: /* @__PURE__ */ D(T, { className: "h-5 w-5" }),
140
+ value: B.totalBrands.toString(),
141
+ label: "Brands",
142
+ sub: `${B.publishedBrands} published`
143
+ },
144
+ {
145
+ icon: /* @__PURE__ */ D(S, { className: "h-5 w-5" }),
146
+ value: B.totalStyleItems.toString(),
147
+ label: "Style Items",
148
+ sub: `${B.activeStyleItems} active`
149
+ },
150
+ {
151
+ icon: /* @__PURE__ */ D(C, { className: "h-5 w-5" }),
152
+ value: B.totalLooks.toString(),
153
+ label: "Looks",
154
+ sub: `${B.featuredLooks} featured`
155
+ },
156
+ {
157
+ icon: /* @__PURE__ */ D(v, { className: "h-5 w-5" }),
158
+ value: B.activeCollaborations.toString(),
159
+ label: "Active Collabs",
160
+ sub: `${B.wardrobeItems} in wardrobe`
161
+ }
162
+ ];
163
+ return /* @__PURE__ */ O(n, {
164
+ title: `Hello, ${L}`,
165
+ description: "Your fashion & lifestyle command center",
497
166
  hero: !0,
498
- title: /* @__PURE__ */ J(K, { children: [
499
- E("coolandlovely.home.hello", "Hello"),
500
- ",",
501
- " ",
502
- /* @__PURE__ */ q(Z, { children: O }),
503
- "!"
504
- ] }),
505
- description: P[j],
506
167
  children: [
507
- /* @__PURE__ */ q(Q, {
168
+ /* @__PURE__ */ D(A, {
508
169
  className: "mb-6",
509
- icon: /* @__PURE__ */ q(R, { className: "h-4 w-4" }),
510
- children: E("coolandlovely.home.purpose", "Your starting point on CoolAndLovely. Search nearby carts and services, jump into the actions that matter for your role, and pick up recent orders and recommendations — everything you need to get going is one tap away from here.")
170
+ children: "CoolAndLovely connects the three sides of style on one workspace-native model: brands launch storefronts and seasonal collections, you build a wardrobe and lookbooks, and creators publish shop-the-look outfits and run brand collaborations. Jump into any module below — all data is live from the CoolAndLovely service."
511
171
  }),
512
- H && /* @__PURE__ */ q(Y, {
513
- className: "mb-6 p-6",
514
- children: /* @__PURE__ */ J("div", {
515
- className: "flex items-start gap-4",
516
- children: [/* @__PURE__ */ q("div", {
517
- className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-action-primary-bg/10",
518
- children: /* @__PURE__ */ q(R, { className: "h-6 w-6 text-primary" })
519
- }), /* @__PURE__ */ J("div", {
520
- className: "flex-1",
521
- children: [
522
- /* @__PURE__ */ q("h2", {
523
- className: "text-lg font-semibold text-text-primary",
524
- children: E("coolandlovely.home.welcomeTitle", "Welcome to CoolAndLovely!")
525
- }),
526
- /* @__PURE__ */ q("p", {
527
- className: "mt-1 text-sm text-text-secondary",
528
- children: E("coolandlovely.home.welcomeDescription", "Your local services marketplace. Start by exploring service providers near you or browse categories to find what you need.")
529
- }),
530
- /* @__PURE__ */ J("button", {
531
- type: "button",
532
- onClick: () => _("/customer/carts"),
533
- className: "mt-3 inline-flex items-center gap-1.5 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",
534
- children: [/* @__PURE__ */ q(N, { className: "h-4 w-4" }), E("coolandlovely.home.exploreServices", "Explore Services")]
535
- })
536
- ]
537
- })]
538
- })
539
- }),
540
- /* @__PURE__ */ q(X, {
541
- treatment: "glass",
542
- className: "mb-6 p-6",
543
- children: /* @__PURE__ */ J("div", {
544
- className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
545
- children: [/* @__PURE__ */ J("div", { children: [
546
- /* @__PURE__ */ q("div", {
547
- className: "flex items-center gap-2 mb-1",
548
- children: /* @__PURE__ */ J("span", {
549
- className: "inline-flex items-center rounded-full bg-action-primary-bg/10 px-2.5 py-0.5 text-xs font-medium text-primary",
550
- children: [/* @__PURE__ */ q(g, { className: "mr-1 h-3 w-3" }), M[j]]
551
- })
552
- }),
553
- /* @__PURE__ */ J("h2", {
554
- className: "text-xl font-bold text-text-primary",
555
- children: [
556
- E("coolandlovely.home.good", "Good"),
557
- " ",
558
- (/* @__PURE__ */ new Date()).getHours() < 12 ? E("coolandlovely.home.time.morning", "morning") : (/* @__PURE__ */ new Date()).getHours() < 17 ? E("coolandlovely.home.time.afternoon", "afternoon") : E("coolandlovely.home.time.evening", "evening"),
559
- ", ",
560
- O
561
- ]
562
- }),
563
- /* @__PURE__ */ q("p", {
564
- className: "mt-1 text-sm text-text-secondary",
565
- children: P[j]
566
- })
567
- ] }), /* @__PURE__ */ J("div", {
568
- className: "relative w-full sm:w-72",
569
- children: [/* @__PURE__ */ q(N, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ q("input", {
570
- type: "text",
571
- placeholder: E("coolandlovely.home.searchPlaceholder", "Search services, carts..."),
572
- value: b,
573
- onChange: (e) => S(e.target.value),
574
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2.5 pl-10 pr-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
575
- })]
576
- })]
577
- })
578
- }),
579
- /* @__PURE__ */ J("section", {
172
+ /* @__PURE__ */ O(k, {
580
173
  className: "mb-8",
581
- children: [/* @__PURE__ */ q("h2", {
582
- className: "text-lg font-semibold text-text-primary mb-4",
583
- children: E("coolandlovely.home.quickStats", "Quick Stats")
584
- }), /* @__PURE__ */ q("div", {
174
+ children: [/* @__PURE__ */ D("h2", {
175
+ className: "mb-4 text-lg font-semibold text-text-primary",
176
+ children: "At a glance"
177
+ }), /* @__PURE__ */ D("div", {
585
178
  className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
586
- children: I.map((e, t) => /* @__PURE__ */ q(r, {
587
- featured: t === 0,
179
+ children: U.map((e) => /* @__PURE__ */ D(r, {
588
180
  icon: e.icon,
589
181
  value: e.value,
590
182
  label: e.label,
591
- trend: e.trend,
592
- trendValue: e.trendValue
183
+ trendValue: e.sub,
184
+ trend: "neutral"
593
185
  }, e.label))
594
186
  })]
595
187
  }),
596
- /* @__PURE__ */ J("section", {
188
+ /* @__PURE__ */ O("section", {
597
189
  className: "mb-8",
598
- children: [/* @__PURE__ */ q("h2", {
599
- className: "text-lg font-semibold text-text-primary mb-4",
600
- children: E("coolandlovely.home.quickActions", "Quick Actions")
601
- }), /* @__PURE__ */ q("div", {
190
+ children: [/* @__PURE__ */ D("h2", {
191
+ className: "mb-4 text-lg font-semibold text-text-primary",
192
+ children: "Quick actions"
193
+ }), /* @__PURE__ */ D("div", {
602
194
  className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
603
- children: F.map((e) => /* @__PURE__ */ J("button", {
195
+ children: j.map((e) => /* @__PURE__ */ O("button", {
604
196
  type: "button",
605
197
  onClick: () => _(e.path),
606
- className: t("flex items-start gap-3 rounded-lg border border-border-seam bg-bg-surface p-4 text-left transition-all bg-gloss-card shadow-pop", "hover:border-accent-foreground/20 hover:shadow-md"),
198
+ className: t("flex items-start gap-3 rounded-lg border border-border-seam bg-bg-surface p-4 text-left shadow-sm transition-all", "hover:border-accent-foreground/20 hover:shadow-md"),
607
199
  children: [
608
- /* @__PURE__ */ q("div", {
200
+ /* @__PURE__ */ D("div", {
609
201
  className: t("flex h-10 w-10 shrink-0 items-center justify-center rounded-lg", e.color),
610
202
  children: e.icon
611
203
  }),
612
- /* @__PURE__ */ J("div", {
204
+ /* @__PURE__ */ O("div", {
613
205
  className: "min-w-0 flex-1",
614
- children: [/* @__PURE__ */ q("p", {
206
+ children: [/* @__PURE__ */ D("p", {
615
207
  className: "text-sm font-semibold text-text-primary",
616
208
  children: e.label
617
- }), /* @__PURE__ */ q("p", {
209
+ }), /* @__PURE__ */ D("p", {
618
210
  className: "mt-0.5 text-xs text-text-secondary",
619
211
  children: e.description
620
212
  })]
621
213
  }),
622
- /* @__PURE__ */ q(h, { className: "h-4 w-4 text-text-secondary shrink-0 mt-1" })
214
+ /* @__PURE__ */ D(b, { className: "mt-1 h-4 w-4 shrink-0 text-text-secondary" })
623
215
  ]
624
216
  }, e.label))
625
217
  })]
626
218
  }),
627
- /* @__PURE__ */ J("section", {
219
+ /* @__PURE__ */ O("section", {
628
220
  className: "mb-8",
629
- children: [/* @__PURE__ */ J("div", {
630
- className: "flex items-center justify-between mb-4",
631
- children: [/* @__PURE__ */ q("h2", {
632
- className: "text-lg font-semibold text-text-primary",
633
- children: b ? E("coolandlovely.home.searchResults", "Search Results") : E("coolandlovely.home.featuredCarts", "Featured Carts")
634
- }), /* @__PURE__ */ J("button", {
221
+ children: [/* @__PURE__ */ D("h2", {
222
+ className: "mb-4 text-lg font-semibold text-text-primary",
223
+ children: "Explore"
224
+ }), /* @__PURE__ */ D("div", {
225
+ className: "grid grid-cols-2 gap-4 sm:grid-cols-3 lg:grid-cols-4",
226
+ children: M.map((e) => /* @__PURE__ */ O("button", {
635
227
  type: "button",
636
- onClick: () => _("/customer/carts"),
637
- className: "flex items-center gap-1 text-sm font-medium text-primary hover:underline",
638
- children: [
639
- E("coolandlovely.common.viewAll", "View All"),
640
- " ",
641
- /* @__PURE__ */ q(h, { className: "h-3.5 w-3.5" })
642
- ]
643
- })]
644
- }), L.length === 0 ? /* @__PURE__ */ q(a, {
645
- icon: /* @__PURE__ */ q(N, { className: "h-10 w-10" }),
646
- title: E("coolandlovely.home.noCartsFound", "No carts found"),
647
- description: E("coolandlovely.home.noCartsDescription", "Try adjusting your search or browse all categories"),
648
- action: /* @__PURE__ */ q("button", {
649
- type: "button",
650
- onClick: () => S(""),
651
- className: "rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
652
- children: E("coolandlovely.home.clearSearch", "Clear Search")
653
- })
654
- }) : /* @__PURE__ */ q("div", {
655
- className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
656
- children: L.map((e) => /* @__PURE__ */ J("div", {
657
- role: "button",
658
- tabIndex: 0,
659
- onClick: () => _(`/customer/cart/${e.id}`),
660
- onKeyDown: (t) => {
661
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), _(`/customer/cart/${e.id}`));
662
- },
663
- className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm overflow-hidden transition-all hover:shadow-md hover:border-accent-foreground/20 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
664
- children: [/* @__PURE__ */ J("div", {
665
- className: "relative h-40 bg-bg-sunken",
666
- children: [
667
- /* @__PURE__ */ q("img", {
668
- src: e.image,
669
- alt: e.name,
670
- className: "h-full w-full object-cover",
671
- loading: "lazy"
672
- }),
673
- /* @__PURE__ */ q("div", {
674
- className: "absolute top-2 right-2",
675
- children: /* @__PURE__ */ q(i, { status: e.isOpen ? "open" : "closed" })
676
- }),
677
- e.isVerified && /* @__PURE__ */ q("div", {
678
- className: "absolute top-2 left-2",
679
- children: /* @__PURE__ */ J("span", {
680
- className: "inline-flex items-center gap-1 rounded-full bg-accent-blue-subtle/90 px-2 py-0.5 text-xs font-medium text-white backdrop-blur-sm",
681
- children: [
682
- /* @__PURE__ */ q(g, { className: "h-3 w-3" }),
683
- " ",
684
- E("coolandlovely.home.verified", "Verified")
685
- ]
686
- })
687
- }),
688
- /* @__PURE__ */ q("div", {
689
- className: "absolute bottom-2 right-2",
690
- children: /* @__PURE__ */ J("span", {
691
- className: "inline-flex items-center gap-1 rounded-full bg-black/60 px-2 py-0.5 text-xs text-white backdrop-blur-sm",
692
- children: [
693
- /* @__PURE__ */ q(x, { className: "h-3 w-3" }),
694
- " ",
695
- e.estimatedTime,
696
- " min"
697
- ]
698
- })
699
- })
700
- ]
701
- }), /* @__PURE__ */ J("div", {
702
- className: "p-4",
703
- children: [
704
- /* @__PURE__ */ J("div", {
705
- className: "flex items-start justify-between",
706
- children: [/* @__PURE__ */ J("div", {
707
- className: "min-w-0 flex-1",
708
- children: [/* @__PURE__ */ q("h3", {
709
- className: "text-base font-semibold text-text-primary truncate",
710
- children: e.name
711
- }), /* @__PURE__ */ q("p", {
712
- className: "mt-0.5 text-sm text-text-secondary",
713
- children: e.category
714
- })]
715
- }), /* @__PURE__ */ J("div", {
716
- className: "flex items-center gap-1 rounded bg-status-success-bg-subtle px-1.5 py-0.5 ml-2 shrink-0",
717
- children: [/* @__PURE__ */ q(z, { className: "h-3 w-3 fill-white text-white" }), /* @__PURE__ */ q("span", {
718
- className: "text-xs font-bold text-white",
719
- children: e.rating
720
- })]
721
- })]
722
- }),
723
- /* @__PURE__ */ J("div", {
724
- className: "mt-3 flex items-center gap-4 text-xs text-text-secondary",
725
- children: [
726
- /* @__PURE__ */ J("span", {
727
- className: "flex items-center gap-1",
728
- children: [
729
- /* @__PURE__ */ q(A, { className: "h-3 w-3" }),
730
- " ",
731
- ee(e.distance)
732
- ]
733
- }),
734
- /* @__PURE__ */ J("span", {
735
- className: "flex items-center gap-1",
736
- children: [
737
- /* @__PURE__ */ q(z, { className: "h-3 w-3" }),
738
- " ",
739
- e.totalRatings,
740
- " ",
741
- E("coolandlovely.home.reviews", "reviews")
742
- ]
743
- }),
744
- e.averageOrderValue && /* @__PURE__ */ J("span", {
745
- className: "flex items-center gap-1",
746
- children: [
747
- /* @__PURE__ */ q(D, { className: "h-3 w-3" }),
748
- " ",
749
- E("coolandlovely.home.average", "Avg."),
750
- " ",
751
- s(e.averageOrderValue, { minimumFractionDigits: 0 })
752
- ]
753
- })
754
- ]
755
- }),
756
- e.serviceTypes && e.serviceTypes.length > 0 && /* @__PURE__ */ q("div", {
757
- className: "mt-3 flex flex-wrap gap-1.5",
758
- children: e.serviceTypes.slice(0, 3).map((e) => /* @__PURE__ */ q("span", {
759
- className: "inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
760
- children: e.replace(/_/g, " ")
761
- }, e))
762
- })
763
- ]
764
- })]
765
- }, e.id))
228
+ onClick: () => _(e.path),
229
+ className: "flex flex-col gap-3 rounded-lg border border-border-seam bg-bg-surface p-5 text-left transition-all hover:border-accent-foreground/20 hover:shadow-md",
230
+ children: [/* @__PURE__ */ D("div", {
231
+ className: t("flex h-12 w-12 items-center justify-center rounded-full", e.color),
232
+ children: e.icon
233
+ }), /* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("p", {
234
+ className: "text-sm font-semibold text-text-primary",
235
+ children: e.label
236
+ }), /* @__PURE__ */ D("p", {
237
+ className: "mt-0.5 text-xs text-text-secondary",
238
+ children: e.description
239
+ })] })]
240
+ }, e.label))
766
241
  })]
767
242
  }),
768
- B.length > 0 && /* @__PURE__ */ J("section", {
243
+ /* @__PURE__ */ O("section", {
769
244
  className: "mb-8",
770
- children: [/* @__PURE__ */ J("div", {
771
- className: "flex items-center justify-between mb-4",
772
- children: [/* @__PURE__ */ q("h2", {
245
+ children: [/* @__PURE__ */ O("div", {
246
+ className: "mb-4 flex items-center justify-between",
247
+ children: [/* @__PURE__ */ D("h2", {
773
248
  className: "text-lg font-semibold text-text-primary",
774
- children: E("coolandlovely.home.recentOrders", "Recent Orders")
775
- }), /* @__PURE__ */ J("button", {
249
+ children: "Latest looks"
250
+ }), /* @__PURE__ */ O("button", {
776
251
  type: "button",
777
- onClick: () => _("/customer/orders"),
252
+ onClick: () => _("/looks"),
778
253
  className: "flex items-center gap-1 text-sm font-medium text-primary hover:underline",
779
- children: [
780
- E("coolandlovely.common.viewAll", "View All"),
781
- " ",
782
- /* @__PURE__ */ q(h, { className: "h-3.5 w-3.5" })
783
- ]
254
+ children: ["View all ", /* @__PURE__ */ D(g, { className: "h-3.5 w-3.5" })]
784
255
  })]
785
- }), /* @__PURE__ */ q("div", {
786
- className: "rounded-lg border border-border-subtle bg-bg-surface divide-y divide-border",
787
- children: B.map((e) => /* @__PURE__ */ J("div", {
788
- role: "button",
789
- tabIndex: 0,
790
- onClick: () => _(`/customer/order/${e.id}`),
791
- onKeyDown: (t) => {
792
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), _(`/customer/order/${e.id}`));
793
- },
794
- className: "flex items-center gap-4 px-4 py-3 hover:bg-accent/50 transition-colors cursor-pointer",
795
- children: [
796
- /* @__PURE__ */ q("img", {
797
- src: e.cartImage,
798
- alt: e.cartName,
799
- className: "h-12 w-12 rounded-lg object-cover shrink-0"
800
- }),
801
- /* @__PURE__ */ J("div", {
802
- className: "flex-1 min-w-0",
803
- children: [/* @__PURE__ */ J("div", {
804
- className: "flex items-center gap-2",
805
- children: [/* @__PURE__ */ q("p", {
806
- className: "text-sm font-medium text-text-primary truncate",
807
- children: e.cartName
808
- }), /* @__PURE__ */ q(i, { status: e.status })]
809
- }), /* @__PURE__ */ q("p", {
810
- className: "text-xs text-text-secondary mt-0.5",
811
- children: e.items.map((e) => e.name).join(", ")
812
- })]
813
- }),
814
- /* @__PURE__ */ J("div", {
815
- className: "text-right shrink-0",
816
- children: [/* @__PURE__ */ q("p", {
817
- className: "text-sm font-semibold text-text-primary",
818
- children: s(e.total, { minimumFractionDigits: 0 })
819
- }), /* @__PURE__ */ q("p", {
256
+ }), V.length === 0 ? /* @__PURE__ */ D("p", {
257
+ className: "rounded-lg border border-border-seam bg-bg-surface p-6 text-sm text-text-secondary",
258
+ children: "No looks published yet. Be the first to publish a shop-the-look outfit."
259
+ }) : /* @__PURE__ */ D("div", {
260
+ className: "grid grid-cols-2 gap-4 sm:grid-cols-3 lg:grid-cols-6",
261
+ children: V.map((e) => /* @__PURE__ */ O("button", {
262
+ type: "button",
263
+ onClick: () => _(`/looks/${e.id}`),
264
+ className: "group overflow-hidden rounded-lg border border-border-seam bg-bg-surface text-left transition-all hover:border-accent-foreground/20 hover:shadow-md",
265
+ children: [/* @__PURE__ */ D(s, {
266
+ icon: /* @__PURE__ */ D(C, { className: "h-7 w-7" }),
267
+ seed: e.id,
268
+ className: "h-28 w-full"
269
+ }), /* @__PURE__ */ O("div", {
270
+ className: "p-3",
271
+ children: [/* @__PURE__ */ D("p", {
272
+ className: "truncate text-sm font-medium text-text-primary",
273
+ children: e.title
274
+ }), /* @__PURE__ */ O("div", {
275
+ className: "mt-1.5 flex items-center justify-between",
276
+ children: [/* @__PURE__ */ D("span", {
820
277
  className: "text-xs text-text-secondary",
821
- children: c(e.orderDate)
278
+ children: m(e.occasion)
279
+ }), /* @__PURE__ */ O("span", {
280
+ className: "flex items-center gap-1 text-xs text-text-secondary",
281
+ children: [
282
+ /* @__PURE__ */ D(y, { className: "h-3 w-3" }),
283
+ " ",
284
+ e.likeCount
285
+ ]
822
286
  })]
823
- })
824
- ]
825
- }, e.id))
826
- })]
827
- }),
828
- /* @__PURE__ */ J("section", {
829
- className: "mb-8",
830
- children: [/* @__PURE__ */ q("h2", {
831
- className: "text-lg font-semibold text-text-primary mb-4",
832
- children: E("coolandlovely.home.howItWorks", "How It Works")
833
- }), /* @__PURE__ */ q("div", {
834
- className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
835
- children: re.map((e) => /* @__PURE__ */ J("div", {
836
- className: "relative rounded-lg border border-border-seam bg-bg-surface p-5 text-center bg-gloss-card shadow-pop",
837
- children: [
838
- /* @__PURE__ */ q("div", {
839
- className: "absolute -top-3 left-1/2 -translate-x-1/2",
840
- children: /* @__PURE__ */ q("span", {
841
- className: "inline-flex h-6 w-6 items-center justify-center rounded-full bg-action-primary-bg text-xs font-bold text-action-primary-text",
842
- children: e.step
843
- })
844
- }),
845
- /* @__PURE__ */ q("div", {
846
- className: "mt-2 flex justify-center text-text-secondary mb-3",
847
- children: e.icon
848
- }),
849
- /* @__PURE__ */ q("h3", {
850
- className: "text-sm font-semibold text-text-primary",
851
- children: e.title
852
- }),
853
- /* @__PURE__ */ q("p", {
854
- className: "mt-1 text-xs text-text-secondary",
855
- children: e.description
856
- })
857
- ]
858
- }, e.step))
859
- })]
860
- }),
861
- /* @__PURE__ */ J("section", {
862
- className: "mb-8",
863
- children: [/* @__PURE__ */ q("h2", {
864
- className: "text-lg font-semibold text-text-primary mb-4",
865
- children: E("coolandlovely.home.browseByCategory", "Browse by Category")
866
- }), /* @__PURE__ */ q("div", {
867
- className: "grid grid-cols-3 gap-3 sm:grid-cols-4 lg:grid-cols-5",
868
- children: ne.map((e) => /* @__PURE__ */ J("button", {
869
- type: "button",
870
- onClick: () => _(`/customer/carts?category=${encodeURIComponent(e.label)}`),
871
- className: "flex flex-col items-center gap-2 rounded-lg border border-border-seam bg-bg-surface p-4 text-center hover:shadow-sm hover:border-accent-foreground/20 transition-all bg-gloss-card shadow-pop",
872
- children: [/* @__PURE__ */ q("div", {
873
- className: t("flex h-12 w-12 items-center justify-center rounded-full", e.color),
874
- children: e.icon
875
- }), /* @__PURE__ */ q("span", {
876
- className: "text-xs font-medium text-text-primary leading-tight",
877
- children: e.label
287
+ })]
878
288
  })]
879
- }, e.label))
289
+ }, e.id))
880
290
  })]
881
291
  }),
882
- /* @__PURE__ */ J("section", {
883
- className: "mb-8",
884
- children: [/* @__PURE__ */ q("h2", {
885
- className: "text-lg font-semibold text-text-primary mb-4",
886
- children: E("coolandlovely.home.platformStats", "Platform Stats")
887
- }), /* @__PURE__ */ q("div", {
888
- className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
889
- children: ae.map((e) => /* @__PURE__ */ J("div", {
890
- className: "flex items-center gap-3 rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
891
- children: [/* @__PURE__ */ q("div", {
892
- className: "flex h-10 w-10 items-center justify-center rounded-full bg-action-primary-bg/10 text-primary shrink-0",
893
- children: e.icon
894
- }), /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("p", {
895
- className: "text-lg font-bold text-text-primary",
896
- children: e.value
897
- }), /* @__PURE__ */ q("p", {
898
- className: "text-xs text-text-secondary",
899
- children: e.label
900
- })] })]
901
- }, e.label))
292
+ H.length > 0 && /* @__PURE__ */ O("section", { children: [/* @__PURE__ */ O("div", {
293
+ className: "mb-4 flex items-center justify-between",
294
+ children: [/* @__PURE__ */ D("h2", {
295
+ className: "text-lg font-semibold text-text-primary",
296
+ children: "Recently updated brands"
297
+ }), /* @__PURE__ */ O("button", {
298
+ type: "button",
299
+ onClick: () => _("/brands"),
300
+ className: "flex items-center gap-1 text-sm font-medium text-primary hover:underline",
301
+ children: ["View all ", /* @__PURE__ */ D(g, { className: "h-3.5 w-3.5" })]
902
302
  })]
903
- }),
904
- /* @__PURE__ */ J("section", { children: [/* @__PURE__ */ q("h2", {
905
- className: "text-lg font-semibold text-text-primary mb-4",
906
- children: E("coolandlovely.home.recentActivity", "Recent Activity")
907
- }), /* @__PURE__ */ q("div", {
908
- className: "rounded-lg border border-border-subtle bg-bg-surface divide-y divide-border",
909
- children: ie.map((e) => /* @__PURE__ */ J("div", {
910
- className: "flex items-center gap-3 px-4 py-3",
303
+ }), /* @__PURE__ */ D("div", {
304
+ className: "divide-y divide-border-seam rounded-lg border border-border-seam bg-bg-surface",
305
+ children: H.map((e) => /* @__PURE__ */ O("button", {
306
+ type: "button",
307
+ onClick: () => _(`/brands/${e.id}`),
308
+ className: "flex w-full items-center gap-4 px-4 py-3 text-left transition-colors hover:bg-bg-sunken/50",
911
309
  children: [
912
- /* @__PURE__ */ q("div", {
913
- className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken",
914
- children: /* @__PURE__ */ q(p, { className: t("h-4 w-4", V[e.type] ?? "text-text-secondary") })
310
+ /* @__PURE__ */ D(s, {
311
+ icon: /* @__PURE__ */ D(T, { className: "h-5 w-5" }),
312
+ seed: e.id,
313
+ className: "h-11 w-11 shrink-0"
915
314
  }),
916
- /* @__PURE__ */ q("div", {
917
- className: "flex-1 min-w-0",
918
- children: /* @__PURE__ */ q("p", {
919
- className: "text-sm text-text-primary truncate",
920
- children: e.description
921
- })
315
+ /* @__PURE__ */ O("div", {
316
+ className: "min-w-0 flex-1",
317
+ children: [/* @__PURE__ */ O("div", {
318
+ className: "flex items-center gap-2",
319
+ children: [/* @__PURE__ */ D("p", {
320
+ className: "truncate text-sm font-medium text-text-primary",
321
+ children: e.name
322
+ }), e.isFeatured && /* @__PURE__ */ D(w, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" })]
323
+ }), /* @__PURE__ */ O("p", {
324
+ className: "truncate text-xs text-text-secondary",
325
+ children: ["@", e.handle]
326
+ })]
922
327
  }),
923
- /* @__PURE__ */ q("span", {
924
- className: "text-xs text-text-secondary whitespace-nowrap",
925
- children: e.time
328
+ /* @__PURE__ */ D(i, { status: e.status }),
329
+ /* @__PURE__ */ D("span", {
330
+ className: "hidden shrink-0 text-xs text-text-secondary sm:inline",
331
+ children: p(e.updatedAt)
926
332
  })
927
333
  ]
928
334
  }, e.id))
@@ -931,6 +337,6 @@ function oe() {
931
337
  });
932
338
  }
933
339
  //#endregion
934
- export { oe as HomePage };
340
+ export { N as HomePage };
935
341
 
936
342
  //# sourceMappingURL=HomePage.js.map