@burdenoff/microfe-kadaikodi 2026.827.1 → 2026.830.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.
- package/dist/kadaikodi/KadaikodiRoot.d.ts.map +1 -1
- package/dist/kadaikodi/KadaikodiRoot.js +69 -72
- package/dist/kadaikodi/KadaikodiRoot.js.map +1 -1
- package/dist/kadaikodi/components/InvestmentCard.d.ts.map +1 -1
- package/dist/kadaikodi/components/InvestmentCard.js +58 -54
- package/dist/kadaikodi/components/InvestmentCard.js.map +1 -1
- package/dist/kadaikodi/components/OrderCard.d.ts.map +1 -1
- package/dist/kadaikodi/components/StatusBadge.d.ts.map +1 -1
- package/dist/kadaikodi/components/StatusBadge.js +17 -13
- package/dist/kadaikodi/components/StatusBadge.js.map +1 -1
- package/dist/kadaikodi/pages/HomePage.d.ts.map +1 -1
- package/dist/kadaikodi/pages/HomePage.js +284 -282
- package/dist/kadaikodi/pages/HomePage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js +286 -286
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +97 -97
- package/dist/shared/hooks/useTr.d.ts +2 -0
- package/dist/shared/hooks/useTr.d.ts.map +1 -0
- package/dist/shared/hooks/useTr.js +14 -0
- package/dist/shared/hooks/useTr.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,235 +1,237 @@
|
|
|
1
1
|
import { useKadaikodi as e } from "../context/KadaikodiContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { AlertCircle as
|
|
2
|
+
import { useTr as t } from "../../shared/hooks/useTr.js";
|
|
3
|
+
import { cn as n } from "../utils/cn.js";
|
|
4
|
+
import { PageLayout as r } from "../components/PageLayout.js";
|
|
5
|
+
import { StatusBadge as i } from "../components/StatusBadge.js";
|
|
6
|
+
import { EmptyState as a } from "../components/EmptyState.js";
|
|
7
|
+
import { useKadaikodiApi as o } from "../hooks/useKadaikodiApi.js";
|
|
8
|
+
import { formatCurrency as s, formatDistance as c, formatRelativeTime as l } from "../utils/formatters.js";
|
|
9
|
+
import { useCallback as u, useMemo as d, useState as f } from "react";
|
|
10
|
+
import { AlertCircle as p, ArrowRight as m, BadgeCheck as h, BarChart3 as g, ChefHat as _, ChevronRight as v, ClipboardList as y, Clock as b, GraduationCap as x, HandCoins as S, Heart as C, Home as w, IndianRupee as T, LayoutDashboard as E, Loader2 as ee, Lock as D, MapPin as O, Package as k, Scissors as A, Search as j, Settings as M, Shield as N, Shirt as P, ShoppingBag as F, ShoppingCart as I, Sparkles as L, Star as R, Store as z, TrendingUp as B, Truck as V, UserCheck as H, Users as U, Wrench as W } from "lucide-react";
|
|
11
11
|
import { Fragment as G, jsx as K, jsxs as q } from "react/jsx-runtime";
|
|
12
12
|
import { PagePurpose as J } from "@burdenoff/fe-libs/ui";
|
|
13
13
|
//#region src/kadaikodi/pages/HomePage.tsx
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
14
|
+
function Y(e) {
|
|
15
|
+
return {
|
|
16
|
+
customer: [
|
|
17
|
+
{
|
|
18
|
+
label: e("kadaikodi.home.quickAction.discover.label", "Discover"),
|
|
19
|
+
description: e("kadaikodi.home.quickAction.discover.description", "Browse carts near you"),
|
|
20
|
+
icon: /* @__PURE__ */ K(j, { className: "h-5 w-5" }),
|
|
21
|
+
path: "/customer/discover",
|
|
22
|
+
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
label: e("kadaikodi.home.quickAction.myOrders.label", "My Orders"),
|
|
26
|
+
description: e("kadaikodi.home.quickAction.myOrders.description", "Track your orders"),
|
|
27
|
+
icon: /* @__PURE__ */ K(F, { className: "h-5 w-5" }),
|
|
28
|
+
path: "/customer/orders",
|
|
29
|
+
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: e("kadaikodi.home.quickAction.favorites.label", "Favorites"),
|
|
33
|
+
description: e("kadaikodi.home.quickAction.favorites.description", "Your saved carts"),
|
|
34
|
+
icon: /* @__PURE__ */ K(C, { className: "h-5 w-5" }),
|
|
35
|
+
path: "/customer/favorites",
|
|
36
|
+
color: "bg-accent-purple-subtle text-text-primary"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: e("kadaikodi.home.quickAction.settings.label", "Settings"),
|
|
40
|
+
description: e("kadaikodi.home.quickAction.settings.description", "Manage preferences"),
|
|
41
|
+
icon: /* @__PURE__ */ K(M, { className: "h-5 w-5" }),
|
|
42
|
+
path: "/settings",
|
|
43
|
+
color: "bg-bg-sunken text-text-secondary"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
cart_owner: [
|
|
47
|
+
{
|
|
48
|
+
label: e("kadaikodi.home.quickAction.merchantDashboard.label", "Dashboard"),
|
|
49
|
+
description: e("kadaikodi.home.quickAction.merchantDashboard.description", "Run your cart"),
|
|
50
|
+
icon: /* @__PURE__ */ K(z, { className: "h-5 w-5" }),
|
|
51
|
+
path: "/cart-owner/dashboard",
|
|
52
|
+
color: "bg-accent-primary/10 text-accent-primary"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
label: e("kadaikodi.home.quickAction.merchantOrders.label", "Orders"),
|
|
56
|
+
description: e("kadaikodi.home.quickAction.merchantOrders.description", "Incoming orders"),
|
|
57
|
+
icon: /* @__PURE__ */ K(F, { className: "h-5 w-5" }),
|
|
58
|
+
path: "/cart-owner/orders",
|
|
59
|
+
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: e("kadaikodi.home.quickAction.merchantAnalytics.label", "Analytics"),
|
|
63
|
+
description: e("kadaikodi.home.quickAction.merchantAnalytics.description", "Revenue & insights"),
|
|
64
|
+
icon: /* @__PURE__ */ K(g, { className: "h-5 w-5" }),
|
|
65
|
+
path: "/cart-owner/analytics",
|
|
66
|
+
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
label: e("kadaikodi.home.quickAction.merchantStaff.label", "Staff"),
|
|
70
|
+
description: e("kadaikodi.home.quickAction.merchantStaff.description", "Manage workers"),
|
|
71
|
+
icon: /* @__PURE__ */ K(U, { className: "h-5 w-5" }),
|
|
72
|
+
path: "/cart-owner/staff",
|
|
73
|
+
color: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
worker: [
|
|
77
|
+
{
|
|
78
|
+
label: e("kadaikodi.home.quickAction.workerTasks.label", "My Tasks"),
|
|
79
|
+
description: e("kadaikodi.home.quickAction.workerTasks.description", "Assigned work"),
|
|
80
|
+
icon: /* @__PURE__ */ K(y, { className: "h-5 w-5" }),
|
|
81
|
+
path: "/worker/dashboard",
|
|
82
|
+
color: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
label: e("kadaikodi.home.quickAction.workerSchedule.label", "Schedule"),
|
|
86
|
+
description: e("kadaikodi.home.quickAction.workerSchedule.description", "View shifts"),
|
|
87
|
+
icon: /* @__PURE__ */ K(b, { className: "h-5 w-5" }),
|
|
88
|
+
path: "/worker/schedule",
|
|
89
|
+
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
label: e("kadaikodi.home.quickAction.workerDeliveries.label", "Deliveries"),
|
|
93
|
+
description: e("kadaikodi.home.quickAction.workerDeliveries.description", "Active runs"),
|
|
94
|
+
icon: /* @__PURE__ */ K(k, { className: "h-5 w-5" }),
|
|
95
|
+
path: "/worker/orders",
|
|
96
|
+
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
label: e("kadaikodi.home.quickAction.workerProfile.label", "Profile"),
|
|
100
|
+
description: e("kadaikodi.home.quickAction.workerProfile.description", "Your details"),
|
|
101
|
+
icon: /* @__PURE__ */ K(H, { className: "h-5 w-5" }),
|
|
102
|
+
path: "/worker/profile",
|
|
103
|
+
color: "bg-bg-sunken text-text-secondary"
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
investor: [
|
|
107
|
+
{
|
|
108
|
+
label: e("kadaikodi.home.quickAction.investorPortfolio.label", "Portfolio"),
|
|
109
|
+
description: e("kadaikodi.home.quickAction.investorPortfolio.description", "Your investments"),
|
|
110
|
+
icon: /* @__PURE__ */ K(B, { className: "h-5 w-5" }),
|
|
111
|
+
path: "/investor/portfolio",
|
|
112
|
+
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
label: e("kadaikodi.home.quickAction.investorOpportunities.label", "Opportunities"),
|
|
116
|
+
description: e("kadaikodi.home.quickAction.investorOpportunities.description", "New investments"),
|
|
117
|
+
icon: /* @__PURE__ */ K(S, { className: "h-5 w-5" }),
|
|
118
|
+
path: "/investor/opportunities",
|
|
119
|
+
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
label: e("kadaikodi.home.quickAction.investorInvestments.label", "Investments"),
|
|
123
|
+
description: e("kadaikodi.home.quickAction.investorInvestments.description", "Active positions"),
|
|
124
|
+
icon: /* @__PURE__ */ K(T, { className: "h-5 w-5" }),
|
|
125
|
+
path: "/investor/investments",
|
|
126
|
+
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
label: e("kadaikodi.home.quickAction.investorAnalytics.label", "Analytics"),
|
|
130
|
+
description: e("kadaikodi.home.quickAction.investorAnalytics.description", "Performance"),
|
|
131
|
+
icon: /* @__PURE__ */ K(g, { className: "h-5 w-5" }),
|
|
132
|
+
path: "/investor/analytics",
|
|
133
|
+
color: "bg-accent-purple-subtle text-text-primary"
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
admin: [
|
|
137
|
+
{
|
|
138
|
+
label: e("kadaikodi.home.quickAction.adminDashboard.label", "Dashboard"),
|
|
139
|
+
description: e("kadaikodi.home.quickAction.adminDashboard.description", "Platform overview"),
|
|
140
|
+
icon: /* @__PURE__ */ K(E, { className: "h-5 w-5" }),
|
|
141
|
+
path: "/admin/dashboard",
|
|
142
|
+
color: "bg-status-error-bg-subtle text-status-error-text"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
label: e("kadaikodi.home.quickAction.adminUsers.label", "Users"),
|
|
146
|
+
description: e("kadaikodi.home.quickAction.adminUsers.description", "Manage accounts"),
|
|
147
|
+
icon: /* @__PURE__ */ K(U, { className: "h-5 w-5" }),
|
|
148
|
+
path: "/admin/users",
|
|
149
|
+
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
label: e("kadaikodi.home.quickAction.adminCarts.label", "Carts"),
|
|
153
|
+
description: e("kadaikodi.home.quickAction.adminCarts.description", "Approve & manage"),
|
|
154
|
+
icon: /* @__PURE__ */ K(z, { className: "h-5 w-5" }),
|
|
155
|
+
path: "/admin/carts",
|
|
156
|
+
color: "bg-accent-purple-subtle text-text-primary"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
label: e("kadaikodi.home.quickAction.adminAnalytics.label", "Analytics"),
|
|
160
|
+
description: e("kadaikodi.home.quickAction.adminAnalytics.description", "Revenue reports"),
|
|
161
|
+
icon: /* @__PURE__ */ K(g, { className: "h-5 w-5" }),
|
|
162
|
+
path: "/admin/analytics",
|
|
163
|
+
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function X(e) {
|
|
169
|
+
return [
|
|
67
170
|
{
|
|
68
|
-
label: "
|
|
69
|
-
|
|
70
|
-
icon: /* @__PURE__ */ K(U, { className: "h-5 w-5" }),
|
|
71
|
-
path: "/cart-owner/staff",
|
|
171
|
+
label: e("kadaikodi.home.categories.foodAndBeverage", "Food & Beverage"),
|
|
172
|
+
icon: /* @__PURE__ */ K(_, { className: "h-6 w-6" }),
|
|
72
173
|
color: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
73
|
-
}
|
|
74
|
-
],
|
|
75
|
-
worker: [
|
|
76
|
-
{
|
|
77
|
-
label: "My Tasks",
|
|
78
|
-
description: "Assigned work",
|
|
79
|
-
icon: /* @__PURE__ */ K(v, { className: "h-5 w-5" }),
|
|
80
|
-
path: "/worker/dashboard",
|
|
81
|
-
color: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
label: "Schedule",
|
|
85
|
-
description: "View shifts",
|
|
86
|
-
icon: /* @__PURE__ */ K(y, { className: "h-5 w-5" }),
|
|
87
|
-
path: "/worker/schedule",
|
|
88
|
-
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
label: "Deliveries",
|
|
92
|
-
description: "Active runs",
|
|
93
|
-
icon: /* @__PURE__ */ K(k, { className: "h-5 w-5" }),
|
|
94
|
-
path: "/worker/orders",
|
|
95
|
-
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
96
174
|
},
|
|
97
175
|
{
|
|
98
|
-
label: "
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
path: "/worker/profile",
|
|
102
|
-
color: "bg-bg-sunken text-text-secondary"
|
|
103
|
-
}
|
|
104
|
-
],
|
|
105
|
-
investor: [
|
|
106
|
-
{
|
|
107
|
-
label: "Portfolio",
|
|
108
|
-
description: "Your investments",
|
|
109
|
-
icon: /* @__PURE__ */ K(B, { className: "h-5 w-5" }),
|
|
110
|
-
path: "/investor/portfolio",
|
|
111
|
-
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
176
|
+
label: e("kadaikodi.home.categories.personalCareAndBeauty", "Personal Care & Beauty"),
|
|
177
|
+
icon: /* @__PURE__ */ K(A, { className: "h-6 w-6" }),
|
|
178
|
+
color: "bg-accent-purple-subtle text-text-primary"
|
|
112
179
|
},
|
|
113
180
|
{
|
|
114
|
-
label: "
|
|
115
|
-
|
|
116
|
-
icon: /* @__PURE__ */ K(x, { className: "h-5 w-5" }),
|
|
117
|
-
path: "/investor/opportunities",
|
|
181
|
+
label: e("kadaikodi.home.categories.repairAndMaintenance", "Repair & Maintenance"),
|
|
182
|
+
icon: /* @__PURE__ */ K(W, { className: "h-6 w-6" }),
|
|
118
183
|
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
119
184
|
},
|
|
120
185
|
{
|
|
121
|
-
label: "
|
|
122
|
-
|
|
123
|
-
icon: /* @__PURE__ */ K(w, { className: "h-5 w-5" }),
|
|
124
|
-
path: "/investor/investments",
|
|
186
|
+
label: e("kadaikodi.home.categories.homeServices", "Home Services"),
|
|
187
|
+
icon: /* @__PURE__ */ K(w, { className: "h-6 w-6" }),
|
|
125
188
|
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
126
189
|
},
|
|
127
190
|
{
|
|
128
|
-
label: "
|
|
129
|
-
|
|
130
|
-
icon: /* @__PURE__ */ K(h, { className: "h-5 w-5" }),
|
|
131
|
-
path: "/investor/analytics",
|
|
191
|
+
label: e("kadaikodi.home.categories.clothingAndFashion", "Clothing & Fashion"),
|
|
192
|
+
icon: /* @__PURE__ */ K(P, { className: "h-6 w-6" }),
|
|
132
193
|
color: "bg-accent-purple-subtle text-text-primary"
|
|
133
|
-
}
|
|
134
|
-
],
|
|
135
|
-
admin: [
|
|
194
|
+
},
|
|
136
195
|
{
|
|
137
|
-
label: "
|
|
138
|
-
|
|
139
|
-
icon: /* @__PURE__ */ K(T, { className: "h-5 w-5" }),
|
|
140
|
-
path: "/admin/dashboard",
|
|
196
|
+
label: e("kadaikodi.home.categories.healthAndWellness", "Health & Wellness"),
|
|
197
|
+
icon: /* @__PURE__ */ K(C, { className: "h-6 w-6" }),
|
|
141
198
|
color: "bg-status-error-bg-subtle text-status-error-text"
|
|
142
199
|
},
|
|
143
200
|
{
|
|
144
|
-
label: "
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
path: "/admin/users",
|
|
148
|
-
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
201
|
+
label: e("kadaikodi.home.categories.educationAndSkills", "Education & Skills"),
|
|
202
|
+
icon: /* @__PURE__ */ K(x, { className: "h-6 w-6" }),
|
|
203
|
+
color: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
149
204
|
},
|
|
150
205
|
{
|
|
151
|
-
label: "
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
path: "/admin/carts",
|
|
155
|
-
color: "bg-accent-purple-subtle text-text-primary"
|
|
206
|
+
label: e("kadaikodi.home.categories.retailAndMerchandise", "Retail & Merchandise"),
|
|
207
|
+
icon: /* @__PURE__ */ K(k, { className: "h-6 w-6" }),
|
|
208
|
+
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
156
209
|
},
|
|
157
210
|
{
|
|
158
|
-
label: "
|
|
159
|
-
|
|
160
|
-
icon: /* @__PURE__ */ K(h, { className: "h-5 w-5" }),
|
|
161
|
-
path: "/admin/analytics",
|
|
211
|
+
label: e("kadaikodi.home.categories.groceryAndEssentials", "Grocery & Essentials"),
|
|
212
|
+
icon: /* @__PURE__ */ K(I, { className: "h-6 w-6" }),
|
|
162
213
|
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
163
214
|
}
|
|
164
|
-
]
|
|
165
|
-
}
|
|
166
|
-
{
|
|
167
|
-
label: "Food & Beverage",
|
|
168
|
-
icon: /* @__PURE__ */ K(g, { className: "h-6 w-6" }),
|
|
169
|
-
color: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
label: "Personal Care & Beauty",
|
|
173
|
-
icon: /* @__PURE__ */ K(A, { className: "h-6 w-6" }),
|
|
174
|
-
color: "bg-accent-purple-subtle text-text-primary"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
label: "Repair & Maintenance",
|
|
178
|
-
icon: /* @__PURE__ */ K(W, { className: "h-6 w-6" }),
|
|
179
|
-
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
label: "Home Services",
|
|
183
|
-
icon: /* @__PURE__ */ K(C, { className: "h-6 w-6" }),
|
|
184
|
-
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
label: "Clothing & Fashion",
|
|
188
|
-
icon: /* @__PURE__ */ K(P, { className: "h-6 w-6" }),
|
|
189
|
-
color: "bg-accent-purple-subtle text-text-primary"
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
label: "Health & Wellness",
|
|
193
|
-
icon: /* @__PURE__ */ K(S, { className: "h-6 w-6" }),
|
|
194
|
-
color: "bg-status-error-bg-subtle text-status-error-text"
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
label: "Education & Skills",
|
|
198
|
-
icon: /* @__PURE__ */ K(b, { className: "h-6 w-6" }),
|
|
199
|
-
color: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
200
|
-
},
|
|
201
|
-
{
|
|
202
|
-
label: "Retail & Merchandise",
|
|
203
|
-
icon: /* @__PURE__ */ K(k, { className: "h-6 w-6" }),
|
|
204
|
-
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
label: "Grocery & Essentials",
|
|
208
|
-
icon: /* @__PURE__ */ K(I, { className: "h-6 w-6" }),
|
|
209
|
-
color: "bg-status-success-bg-subtle text-status-success-text"
|
|
210
|
-
}
|
|
211
|
-
];
|
|
215
|
+
];
|
|
216
|
+
}
|
|
212
217
|
function Z() {
|
|
213
|
-
let { navigateTo:
|
|
214
|
-
let n = v(e);
|
|
215
|
-
return n === e ? t : n;
|
|
216
|
-
}, [v]), M = g?.firstName ?? g?.name ?? "there", P = g?.role ?? "customer", B = P === "admin", H = Y[P] ?? Y.customer, U = l(() => (S.data ?? []).find((e) => e.ownerId === g?.id), [S.data, g?.id]), W = (C.data ?? []).length, Z = l(() => (k.data ?? []).reduce((e, t) => e + t.currentValue, 0), [k.data]), te = c((e) => {
|
|
218
|
+
let { navigateTo: g, currentUser: _ } = e(), y = t(), [b, x] = f(""), { providers: C, orders: w, dashboardStats: E, investments: k } = o(), A = _?.firstName ?? _?.name ?? "there", M = _?.role ?? "customer", P = M === "admin", B = d(() => Y(y)[M] ?? Y(y).customer, [y, M]), H = d(() => X(y), [y]), U = d(() => (C.data ?? []).find((e) => e.ownerId === _?.id), [C.data, _?.id]), W = (w.data ?? []).length, Z = d(() => (k.data ?? []).reduce((e, t) => e + t.currentValue, 0), [k.data]), te = u((e) => {
|
|
217
219
|
switch (e) {
|
|
218
220
|
case "customer": return {
|
|
219
221
|
value: W.toString(),
|
|
220
|
-
label: W === 1 ?
|
|
222
|
+
label: W === 1 ? y("kadaikodi.home.order", "order") : y("kadaikodi.home.orders", "orders")
|
|
221
223
|
};
|
|
222
224
|
case "cart_owner": return U ? {
|
|
223
225
|
value: `★ ${U.rating.toFixed(1)}`,
|
|
224
|
-
label:
|
|
226
|
+
label: y("kadaikodi.home.rating", "rating")
|
|
225
227
|
} : null;
|
|
226
228
|
case "investor": return Z > 0 ? {
|
|
227
|
-
value:
|
|
228
|
-
label:
|
|
229
|
+
value: s(Z, { minimumFractionDigits: 0 }),
|
|
230
|
+
label: y("kadaikodi.home.portfolio", "portfolio")
|
|
229
231
|
} : null;
|
|
230
|
-
case "admin": return
|
|
231
|
-
value: (
|
|
232
|
-
label:
|
|
232
|
+
case "admin": return P ? {
|
|
233
|
+
value: (E.data?.activeProviders ?? 0).toString(),
|
|
234
|
+
label: y("kadaikodi.home.providers", "providers")
|
|
233
235
|
} : null;
|
|
234
236
|
default: return null;
|
|
235
237
|
}
|
|
@@ -237,87 +239,87 @@ function Z() {
|
|
|
237
239
|
W,
|
|
238
240
|
U,
|
|
239
241
|
Z,
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
242
|
+
P,
|
|
243
|
+
E.data,
|
|
244
|
+
y
|
|
243
245
|
]), ne = [
|
|
244
246
|
{
|
|
245
247
|
role: "customer",
|
|
246
|
-
title:
|
|
247
|
-
description:
|
|
248
|
+
title: y("kadaikodi.home.roleCard.customer.title", "Shop as Customer"),
|
|
249
|
+
description: y("kadaikodi.home.roleCard.customer.desc", "Discover carts & order"),
|
|
248
250
|
icon: /* @__PURE__ */ K(I, { className: "h-6 w-6" }),
|
|
249
251
|
path: "/customer/dashboard",
|
|
250
252
|
iconClass: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
251
253
|
},
|
|
252
254
|
{
|
|
253
255
|
role: "cart_owner",
|
|
254
|
-
title:
|
|
255
|
-
description:
|
|
256
|
+
title: y("kadaikodi.home.roleCard.merchant.title", "My Cart (Merchant)"),
|
|
257
|
+
description: y("kadaikodi.home.roleCard.merchant.desc", "Run your business"),
|
|
256
258
|
icon: /* @__PURE__ */ K(z, { className: "h-6 w-6" }),
|
|
257
259
|
path: "/cart-owner/dashboard",
|
|
258
260
|
iconClass: "bg-accent-primary/10 text-accent-primary"
|
|
259
261
|
},
|
|
260
262
|
{
|
|
261
263
|
role: "worker",
|
|
262
|
-
title:
|
|
263
|
-
description:
|
|
264
|
+
title: y("kadaikodi.home.roleCard.worker.title", "Work"),
|
|
265
|
+
description: y("kadaikodi.home.roleCard.worker.desc", "Deliveries & tasks"),
|
|
264
266
|
icon: /* @__PURE__ */ K(V, { className: "h-6 w-6" }),
|
|
265
267
|
path: "/worker/dashboard",
|
|
266
268
|
iconClass: "bg-status-warning-bg-subtle text-status-warning-text"
|
|
267
269
|
},
|
|
268
270
|
{
|
|
269
271
|
role: "investor",
|
|
270
|
-
title:
|
|
271
|
-
description:
|
|
272
|
-
icon: /* @__PURE__ */ K(
|
|
272
|
+
title: y("kadaikodi.home.roleCard.investor.title", "Invest"),
|
|
273
|
+
description: y("kadaikodi.home.roleCard.investor.desc", "Back local merchants"),
|
|
274
|
+
icon: /* @__PURE__ */ K(S, { className: "h-6 w-6" }),
|
|
273
275
|
path: "/investor/dashboard",
|
|
274
276
|
iconClass: "bg-status-success-bg-subtle text-status-success-text"
|
|
275
277
|
},
|
|
276
278
|
{
|
|
277
279
|
role: "admin",
|
|
278
|
-
title:
|
|
279
|
-
description:
|
|
280
|
+
title: y("kadaikodi.home.roleCard.admin.title", "Admin"),
|
|
281
|
+
description: y("kadaikodi.home.roleCard.admin.desc", "Platform operations"),
|
|
280
282
|
icon: /* @__PURE__ */ K(N, { className: "h-6 w-6" }),
|
|
281
283
|
path: "/admin/dashboard",
|
|
282
284
|
iconClass: "bg-bg-sunken text-text-secondary"
|
|
283
285
|
}
|
|
284
|
-
], Q =
|
|
285
|
-
let e = (
|
|
286
|
-
if (
|
|
287
|
-
let t =
|
|
286
|
+
], Q = d(() => {
|
|
287
|
+
let e = (C.data ?? []).filter((e) => e.isOpen);
|
|
288
|
+
if (b) {
|
|
289
|
+
let t = b.toLowerCase();
|
|
288
290
|
e = e.filter((e) => e.name.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
|
|
289
291
|
}
|
|
290
292
|
return e.sort((e, t) => t.rating - e.rating).slice(0, 6);
|
|
291
|
-
}, [
|
|
292
|
-
return ie ? /* @__PURE__ */ K(
|
|
293
|
-
title:
|
|
293
|
+
}, [C.data, b]), $ = d(() => [...w.data ?? []].sort((e, t) => new Date(t.orderDate).getTime() - new Date(e.orderDate).getTime()).slice(0, 3), [w.data]), re = (w.data ?? []).length === 0 && !w.isLoading, ie = C.isLoading || w.isLoading || E.isLoading, ae = C.isError || w.isError || E.isError;
|
|
294
|
+
return ie ? /* @__PURE__ */ K(r, {
|
|
295
|
+
title: y("kadaikodi.common.loading", "Loading..."),
|
|
294
296
|
children: /* @__PURE__ */ K("div", {
|
|
295
297
|
className: "flex h-[60vh] items-center justify-center",
|
|
296
|
-
children: /* @__PURE__ */ K(
|
|
298
|
+
children: /* @__PURE__ */ K(ee, { className: "h-8 w-8 animate-spin text-accent-primary" })
|
|
297
299
|
})
|
|
298
|
-
}) : ae ? /* @__PURE__ */ K(
|
|
299
|
-
title:
|
|
300
|
+
}) : ae ? /* @__PURE__ */ K(r, {
|
|
301
|
+
title: y("kadaikodi.common.error", "Error"),
|
|
300
302
|
children: /* @__PURE__ */ q("div", {
|
|
301
303
|
className: "flex h-[60vh] flex-col items-center justify-center gap-4",
|
|
302
304
|
children: [
|
|
303
|
-
/* @__PURE__ */ K(
|
|
305
|
+
/* @__PURE__ */ K(p, { className: "h-12 w-12 text-status-error-text" }),
|
|
304
306
|
/* @__PURE__ */ K("h2", {
|
|
305
307
|
className: "text-xl font-semibold text-text-primary",
|
|
306
|
-
children:
|
|
308
|
+
children: y("kadaikodi.common.errorLoading", "Error loading data")
|
|
307
309
|
}),
|
|
308
310
|
/* @__PURE__ */ K("p", {
|
|
309
311
|
className: "text-text-secondary",
|
|
310
|
-
children:
|
|
312
|
+
children: y("kadaikodi.common.tryAgain", "Please try again later.")
|
|
311
313
|
})
|
|
312
314
|
]
|
|
313
315
|
})
|
|
314
|
-
}) : /* @__PURE__ */ q(
|
|
315
|
-
title: `${
|
|
316
|
-
description:
|
|
316
|
+
}) : /* @__PURE__ */ q(r, {
|
|
317
|
+
title: `${y("kadaikodi.home.hi", "Hi")}, ${A}`,
|
|
318
|
+
description: y("kadaikodi.home.everyRole", "One account, every role"),
|
|
317
319
|
children: [
|
|
318
320
|
/* @__PURE__ */ K(J, {
|
|
319
321
|
className: "mb-6",
|
|
320
|
-
children:
|
|
322
|
+
children: y("kadaikodi.home.purpose", "Kadaikodi gives you one account for every side of local commerce. Jump into the role you need — shop as a customer, run your cart as a merchant, pick up delivery work, or back local businesses — and pick up right where you left off.")
|
|
321
323
|
}),
|
|
322
324
|
re && /* @__PURE__ */ K("section", {
|
|
323
325
|
className: "mb-8 overflow-hidden rounded-xl border border-border-subtle bg-accent-primary/5 p-6",
|
|
@@ -331,17 +333,17 @@ function Z() {
|
|
|
331
333
|
children: [
|
|
332
334
|
/* @__PURE__ */ K("h2", {
|
|
333
335
|
className: "text-lg font-semibold text-text-primary",
|
|
334
|
-
children:
|
|
336
|
+
children: y("kadaikodi.home.welcomeTitle", "Welcome to Kadaikodi!")
|
|
335
337
|
}),
|
|
336
338
|
/* @__PURE__ */ K("p", {
|
|
337
339
|
className: "mt-1 text-sm text-text-secondary",
|
|
338
|
-
children:
|
|
340
|
+
children: y("kadaikodi.home.welcomeDescription", "Your local commerce hub. Start by exploring service providers near you, or pick a role above to get going.")
|
|
339
341
|
}),
|
|
340
342
|
/* @__PURE__ */ q("button", {
|
|
341
343
|
type: "button",
|
|
342
|
-
onClick: () =>
|
|
344
|
+
onClick: () => g("/customer/discover"),
|
|
343
345
|
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 transition-colors hover:bg-action-primary-bg-hover",
|
|
344
|
-
children: [/* @__PURE__ */ K(j, { className: "h-4 w-4" }),
|
|
346
|
+
children: [/* @__PURE__ */ K(j, { className: "h-4 w-4" }), y("kadaikodi.home.exploreServices", "Explore Services")]
|
|
345
347
|
})
|
|
346
348
|
]
|
|
347
349
|
})]
|
|
@@ -353,26 +355,26 @@ function Z() {
|
|
|
353
355
|
className: "mb-4 flex items-center justify-between",
|
|
354
356
|
children: [/* @__PURE__ */ K("h2", {
|
|
355
357
|
className: "text-lg font-semibold text-text-primary",
|
|
356
|
-
children:
|
|
358
|
+
children: y("kadaikodi.home.chooseRole", "Choose how you want to show up")
|
|
357
359
|
}), /* @__PURE__ */ q("span", {
|
|
358
360
|
className: "hidden items-center gap-1 text-xs font-medium text-text-muted sm:inline-flex",
|
|
359
|
-
children: [/* @__PURE__ */ K(N, { className: "h-3.5 w-3.5" }),
|
|
361
|
+
children: [/* @__PURE__ */ K(N, { className: "h-3.5 w-3.5" }), y("kadaikodi.home.rbac", "RBAC & multi-tenant")]
|
|
360
362
|
})]
|
|
361
363
|
}), /* @__PURE__ */ K("div", {
|
|
362
364
|
className: "grid gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3",
|
|
363
365
|
children: ne.map((e) => {
|
|
364
|
-
let
|
|
366
|
+
let t = e.role === M, r = e.role === "admin" && !P, i = te(e.role);
|
|
365
367
|
return /* @__PURE__ */ q("button", {
|
|
366
368
|
type: "button",
|
|
367
369
|
disabled: r,
|
|
368
370
|
onClick: () => {
|
|
369
|
-
r ||
|
|
371
|
+
r || g(e.path);
|
|
370
372
|
},
|
|
371
373
|
"aria-label": e.title,
|
|
372
|
-
className:
|
|
374
|
+
className: n("group relative flex items-center gap-4 rounded-xl border p-4 text-left transition-all sm:p-5", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]", t ? "border-accent-primary/40 bg-accent-primary/5 shadow-[var(--shadow-glow)]" : "border-border-subtle bg-bg-surface hover:border-border-strong hover:shadow-md", r && "cursor-not-allowed opacity-70 hover:border-border-subtle hover:shadow-none"),
|
|
373
375
|
children: [
|
|
374
376
|
/* @__PURE__ */ K("div", {
|
|
375
|
-
className:
|
|
377
|
+
className: n("flex h-12 w-12 shrink-0 items-center justify-center rounded-xl", e.iconClass),
|
|
376
378
|
children: r ? /* @__PURE__ */ K(D, { className: "h-6 w-6" }) : e.icon
|
|
377
379
|
}),
|
|
378
380
|
/* @__PURE__ */ q("div", {
|
|
@@ -382,9 +384,9 @@ function Z() {
|
|
|
382
384
|
children: [/* @__PURE__ */ K("p", {
|
|
383
385
|
className: "truncate text-base font-semibold text-text-primary",
|
|
384
386
|
children: e.title
|
|
385
|
-
}),
|
|
387
|
+
}), t && /* @__PURE__ */ K("span", {
|
|
386
388
|
className: "inline-flex items-center rounded-full bg-accent-primary/10 px-2 py-0.5 text-[11px] font-medium text-accent-primary",
|
|
387
|
-
children:
|
|
389
|
+
children: y("kadaikodi.home.current", "Current")
|
|
388
390
|
})]
|
|
389
391
|
}), /* @__PURE__ */ K("p", {
|
|
390
392
|
className: "mt-0.5 truncate text-sm text-text-secondary",
|
|
@@ -395,7 +397,7 @@ function Z() {
|
|
|
395
397
|
className: "flex shrink-0 items-center gap-3",
|
|
396
398
|
children: r ? /* @__PURE__ */ q("span", {
|
|
397
399
|
className: "inline-flex items-center gap-1 whitespace-nowrap text-xs font-medium text-text-muted",
|
|
398
|
-
children: [
|
|
400
|
+
children: [y("kadaikodi.home.operatorsOnly", "operators only"), /* @__PURE__ */ K(D, { className: "h-3.5 w-3.5" })]
|
|
399
401
|
}) : /* @__PURE__ */ q(G, { children: [i && /* @__PURE__ */ q("div", {
|
|
400
402
|
className: "hidden text-right sm:block",
|
|
401
403
|
children: [/* @__PURE__ */ K("p", {
|
|
@@ -405,7 +407,7 @@ function Z() {
|
|
|
405
407
|
className: "text-[11px] text-text-secondary",
|
|
406
408
|
children: i.label
|
|
407
409
|
})]
|
|
408
|
-
}), /* @__PURE__ */ K(
|
|
410
|
+
}), /* @__PURE__ */ K(v, { className: "h-5 w-5 text-text-secondary transition group-hover:translate-x-0.5 group-hover:text-text-primary" })] })
|
|
409
411
|
})
|
|
410
412
|
]
|
|
411
413
|
}, e.role);
|
|
@@ -416,16 +418,16 @@ function Z() {
|
|
|
416
418
|
className: "mb-8",
|
|
417
419
|
children: [/* @__PURE__ */ K("h2", {
|
|
418
420
|
className: "mb-4 text-lg font-semibold text-text-primary",
|
|
419
|
-
children:
|
|
421
|
+
children: y("kadaikodi.home.quickActions", "Quick Actions")
|
|
420
422
|
}), /* @__PURE__ */ K("div", {
|
|
421
423
|
className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
|
|
422
|
-
children:
|
|
424
|
+
children: B.map((e) => /* @__PURE__ */ q("button", {
|
|
423
425
|
type: "button",
|
|
424
|
-
onClick: () =>
|
|
425
|
-
className:
|
|
426
|
+
onClick: () => g(e.path),
|
|
427
|
+
className: n("group flex items-start gap-3 rounded-lg border border-border-subtle bg-bg-surface p-4 text-left shadow-sm transition-all", "hover:border-border-strong hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]"),
|
|
426
428
|
children: [
|
|
427
429
|
/* @__PURE__ */ K("div", {
|
|
428
|
-
className:
|
|
430
|
+
className: n("flex h-10 w-10 shrink-0 items-center justify-center rounded-lg", e.color),
|
|
429
431
|
children: e.icon
|
|
430
432
|
}),
|
|
431
433
|
/* @__PURE__ */ q("div", {
|
|
@@ -438,7 +440,7 @@ function Z() {
|
|
|
438
440
|
children: e.description
|
|
439
441
|
})]
|
|
440
442
|
}),
|
|
441
|
-
/* @__PURE__ */ K(
|
|
443
|
+
/* @__PURE__ */ K(m, { className: "mt-1 h-4 w-4 shrink-0 text-text-secondary transition group-hover:translate-x-0.5" })
|
|
442
444
|
]
|
|
443
445
|
}, e.label))
|
|
444
446
|
})]
|
|
@@ -449,48 +451,48 @@ function Z() {
|
|
|
449
451
|
className: "mb-4 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
|
|
450
452
|
children: [/* @__PURE__ */ K("h2", {
|
|
451
453
|
className: "text-lg font-semibold text-text-primary",
|
|
452
|
-
children:
|
|
454
|
+
children: b ? y("kadaikodi.home.searchResults", "Search Results") : y("kadaikodi.home.openNearby", "What's open nearby")
|
|
453
455
|
}), /* @__PURE__ */ q("div", {
|
|
454
456
|
className: "flex items-center gap-3",
|
|
455
457
|
children: [/* @__PURE__ */ q("div", {
|
|
456
458
|
className: "relative w-full sm:w-64",
|
|
457
459
|
children: [/* @__PURE__ */ K(j, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ K("input", {
|
|
458
460
|
type: "text",
|
|
459
|
-
placeholder:
|
|
460
|
-
value:
|
|
461
|
-
onChange: (e) =>
|
|
461
|
+
placeholder: y("kadaikodi.home.searchPlaceholder", "Search carts..."),
|
|
462
|
+
value: b,
|
|
463
|
+
onChange: (e) => x(e.target.value),
|
|
462
464
|
className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 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)]"
|
|
463
465
|
})]
|
|
464
466
|
}), /* @__PURE__ */ q("button", {
|
|
465
467
|
type: "button",
|
|
466
|
-
onClick: () =>
|
|
468
|
+
onClick: () => g("/customer/discover"),
|
|
467
469
|
className: "hidden items-center gap-1 whitespace-nowrap text-sm font-medium text-accent-primary hover:underline sm:flex",
|
|
468
470
|
children: [
|
|
469
|
-
|
|
471
|
+
y("kadaikodi.common.viewAll", "View All"),
|
|
470
472
|
" ",
|
|
471
|
-
/* @__PURE__ */ K(
|
|
473
|
+
/* @__PURE__ */ K(m, { className: "h-3.5 w-3.5" })
|
|
472
474
|
]
|
|
473
475
|
})]
|
|
474
476
|
})]
|
|
475
|
-
}), Q.length === 0 ? /* @__PURE__ */ K(
|
|
477
|
+
}), Q.length === 0 ? /* @__PURE__ */ K(a, {
|
|
476
478
|
illustration: "empty-search",
|
|
477
479
|
icon: /* @__PURE__ */ K(j, { className: "h-10 w-10" }),
|
|
478
|
-
title:
|
|
479
|
-
description:
|
|
480
|
-
action:
|
|
480
|
+
title: y("kadaikodi.home.noCartsFound", "No carts found"),
|
|
481
|
+
description: y("kadaikodi.home.noCartsDescription", "Try adjusting your search or browse all categories"),
|
|
482
|
+
action: b ? /* @__PURE__ */ K("button", {
|
|
481
483
|
type: "button",
|
|
482
|
-
onClick: () =>
|
|
484
|
+
onClick: () => x(""),
|
|
483
485
|
className: "rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken",
|
|
484
|
-
children:
|
|
486
|
+
children: y("kadaikodi.home.clearSearch", "Clear Search")
|
|
485
487
|
}) : void 0
|
|
486
488
|
}) : /* @__PURE__ */ K("div", {
|
|
487
489
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
488
490
|
children: Q.map((e) => /* @__PURE__ */ q("div", {
|
|
489
491
|
role: "button",
|
|
490
492
|
tabIndex: 0,
|
|
491
|
-
onClick: () =>
|
|
493
|
+
onClick: () => g(`/customer/cart/${e.id}`),
|
|
492
494
|
onKeyDown: (t) => {
|
|
493
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(),
|
|
495
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), g(`/customer/cart/${e.id}`));
|
|
494
496
|
},
|
|
495
497
|
className: "group cursor-pointer overflow-hidden rounded-xl border border-border-subtle bg-bg-surface shadow-sm transition-all hover:border-border-strong hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
|
|
496
498
|
children: [/* @__PURE__ */ q("div", {
|
|
@@ -499,13 +501,13 @@ function Z() {
|
|
|
499
501
|
/* @__PURE__ */ K(z, { className: "h-8 w-8 text-text-secondary/50" }),
|
|
500
502
|
/* @__PURE__ */ K("div", {
|
|
501
503
|
className: "absolute right-2 top-2",
|
|
502
|
-
children: /* @__PURE__ */ K(
|
|
504
|
+
children: /* @__PURE__ */ K(i, { status: e.isOpen ? "open" : "closed" })
|
|
503
505
|
}),
|
|
504
506
|
e.isVerified && /* @__PURE__ */ K("div", {
|
|
505
507
|
className: "absolute left-2 top-2",
|
|
506
508
|
children: /* @__PURE__ */ q("span", {
|
|
507
509
|
className: "inline-flex items-center gap-1 rounded-full bg-bg-surface/80 px-2 py-0.5 text-xs font-medium text-accent-primary backdrop-blur-sm",
|
|
508
|
-
children: [/* @__PURE__ */ K(
|
|
510
|
+
children: [/* @__PURE__ */ K(h, { className: "h-3 w-3" }), y("kadaikodi.home.verified", "Verified")]
|
|
509
511
|
})
|
|
510
512
|
})
|
|
511
513
|
]
|
|
@@ -539,7 +541,7 @@ function Z() {
|
|
|
539
541
|
children: [
|
|
540
542
|
/* @__PURE__ */ K(O, { className: "h-3 w-3" }),
|
|
541
543
|
" ",
|
|
542
|
-
|
|
544
|
+
c(e.distance)
|
|
543
545
|
]
|
|
544
546
|
}),
|
|
545
547
|
/* @__PURE__ */ q("span", {
|
|
@@ -549,17 +551,17 @@ function Z() {
|
|
|
549
551
|
" ",
|
|
550
552
|
e.totalRatings,
|
|
551
553
|
" ",
|
|
552
|
-
|
|
554
|
+
y("kadaikodi.home.reviews", "reviews")
|
|
553
555
|
]
|
|
554
556
|
}),
|
|
555
557
|
e.averageOrderValue != null && e.averageOrderValue > 0 && /* @__PURE__ */ q("span", {
|
|
556
558
|
className: "flex items-center gap-1",
|
|
557
559
|
children: [
|
|
558
|
-
/* @__PURE__ */ K(
|
|
560
|
+
/* @__PURE__ */ K(T, { className: "h-3 w-3" }),
|
|
559
561
|
" ",
|
|
560
|
-
|
|
562
|
+
y("kadaikodi.home.average", "Avg."),
|
|
561
563
|
" ",
|
|
562
|
-
|
|
564
|
+
s(e.averageOrderValue, { minimumFractionDigits: 0 })
|
|
563
565
|
]
|
|
564
566
|
})
|
|
565
567
|
]
|
|
@@ -582,15 +584,15 @@ function Z() {
|
|
|
582
584
|
className: "mb-4 flex items-center justify-between",
|
|
583
585
|
children: [/* @__PURE__ */ K("h2", {
|
|
584
586
|
className: "text-lg font-semibold text-text-primary",
|
|
585
|
-
children:
|
|
587
|
+
children: y("kadaikodi.home.recentOrders", "Recent Orders")
|
|
586
588
|
}), /* @__PURE__ */ q("button", {
|
|
587
589
|
type: "button",
|
|
588
|
-
onClick: () =>
|
|
590
|
+
onClick: () => g("/customer/orders"),
|
|
589
591
|
className: "flex items-center gap-1 text-sm font-medium text-accent-primary hover:underline",
|
|
590
592
|
children: [
|
|
591
|
-
|
|
593
|
+
y("kadaikodi.common.viewAll", "View All"),
|
|
592
594
|
" ",
|
|
593
|
-
/* @__PURE__ */ K(
|
|
595
|
+
/* @__PURE__ */ K(m, { className: "h-3.5 w-3.5" })
|
|
594
596
|
]
|
|
595
597
|
})]
|
|
596
598
|
}), /* @__PURE__ */ K("div", {
|
|
@@ -598,9 +600,9 @@ function Z() {
|
|
|
598
600
|
children: $.map((e) => /* @__PURE__ */ q("div", {
|
|
599
601
|
role: "button",
|
|
600
602
|
tabIndex: 0,
|
|
601
|
-
onClick: () =>
|
|
603
|
+
onClick: () => g(`/customer/orders/${e.id}/track`),
|
|
602
604
|
onKeyDown: (t) => {
|
|
603
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(),
|
|
605
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), g(`/customer/orders/${e.id}/track`));
|
|
604
606
|
},
|
|
605
607
|
className: "flex cursor-pointer items-center gap-4 px-4 py-3 transition-colors hover:bg-bg-sunken/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
|
|
606
608
|
children: [
|
|
@@ -615,7 +617,7 @@ function Z() {
|
|
|
615
617
|
children: [/* @__PURE__ */ K("p", {
|
|
616
618
|
className: "truncate text-sm font-medium text-text-primary",
|
|
617
619
|
children: e.cartName
|
|
618
|
-
}), /* @__PURE__ */ K(
|
|
620
|
+
}), /* @__PURE__ */ K(i, { status: e.status })]
|
|
619
621
|
}), /* @__PURE__ */ K("p", {
|
|
620
622
|
className: "mt-0.5 truncate text-xs text-text-secondary",
|
|
621
623
|
children: e.items.map((e) => e.name).join(", ")
|
|
@@ -625,10 +627,10 @@ function Z() {
|
|
|
625
627
|
className: "shrink-0 text-right",
|
|
626
628
|
children: [/* @__PURE__ */ K("p", {
|
|
627
629
|
className: "text-sm font-semibold text-text-primary tabular-nums",
|
|
628
|
-
children:
|
|
630
|
+
children: s(e.total, { minimumFractionDigits: 0 })
|
|
629
631
|
}), /* @__PURE__ */ K("p", {
|
|
630
632
|
className: "text-xs text-text-secondary",
|
|
631
|
-
children:
|
|
633
|
+
children: l(e.orderDate)
|
|
632
634
|
})]
|
|
633
635
|
})
|
|
634
636
|
]
|
|
@@ -639,15 +641,15 @@ function Z() {
|
|
|
639
641
|
className: "mb-8",
|
|
640
642
|
children: [/* @__PURE__ */ K("h2", {
|
|
641
643
|
className: "mb-4 text-lg font-semibold text-text-primary",
|
|
642
|
-
children:
|
|
644
|
+
children: y("kadaikodi.home.browseByCategory", "Browse by Category")
|
|
643
645
|
}), /* @__PURE__ */ K("div", {
|
|
644
646
|
className: "grid grid-cols-3 gap-3 sm:grid-cols-4 lg:grid-cols-5",
|
|
645
|
-
children:
|
|
647
|
+
children: H.map((e) => /* @__PURE__ */ q("button", {
|
|
646
648
|
type: "button",
|
|
647
|
-
onClick: () =>
|
|
649
|
+
onClick: () => g(`/customer/discover?category=${encodeURIComponent(e.label)})`),
|
|
648
650
|
className: "flex flex-col items-center gap-2 rounded-lg border border-border-subtle bg-bg-surface p-4 text-center transition-all hover:border-border-strong hover:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
|
|
649
651
|
children: [/* @__PURE__ */ K("div", {
|
|
650
|
-
className:
|
|
652
|
+
className: n("flex h-12 w-12 items-center justify-center rounded-full", e.color),
|
|
651
653
|
children: e.icon
|
|
652
654
|
}), /* @__PURE__ */ K("span", {
|
|
653
655
|
className: "text-xs font-medium leading-tight text-text-primary",
|
|
@@ -658,7 +660,7 @@ function Z() {
|
|
|
658
660
|
}),
|
|
659
661
|
/* @__PURE__ */ K("p", {
|
|
660
662
|
className: "mt-2 text-center text-xs text-text-muted",
|
|
661
|
-
children:
|
|
663
|
+
children: y("kadaikodi.home.footerNote", "RBAC & multi-tenancy inherited from the Burdenoff platform")
|
|
662
664
|
})
|
|
663
665
|
]
|
|
664
666
|
});
|