@burdenoff/microfe-kadaikodi 2026.625.1 → 2026.626.2

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 (91) hide show
  1. package/dist/kadaikodi/pages/HomePage.js +19 -14
  2. package/dist/kadaikodi/pages/HomePage.js.map +1 -1
  3. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +118 -83
  4. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
  5. package/dist/kadaikodi/pages/admin/AdminDashboard.js +75 -46
  6. package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
  7. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +144 -128
  8. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
  9. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +255 -237
  10. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
  11. package/dist/kadaikodi/pages/admin/AdminProfilePage.js +129 -128
  12. package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
  13. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +178 -150
  14. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
  15. package/dist/kadaikodi/pages/admin/CartManagementPage.js +182 -159
  16. package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
  17. package/dist/kadaikodi/pages/admin/UserManagementPage.js +325 -303
  18. package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
  19. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +500 -469
  20. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  21. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +534 -503
  22. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  23. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +73 -48
  24. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  25. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +103 -96
  26. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  27. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +130 -129
  28. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  29. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +673 -670
  30. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  31. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +517 -514
  32. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
  33. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +140 -125
  34. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
  35. package/dist/kadaikodi/pages/common/HelpSupportPage.js +302 -311
  36. package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
  37. package/dist/kadaikodi/pages/common/NotificationCenterPage.js +102 -91
  38. package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
  39. package/dist/kadaikodi/pages/common/SettingsPage.js +766 -734
  40. package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
  41. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +366 -356
  42. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
  43. package/dist/kadaikodi/pages/customer/CartDetailPage.js +243 -213
  44. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  45. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +200 -195
  46. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
  47. package/dist/kadaikodi/pages/customer/CheckoutPage.js +95 -89
  48. package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
  49. package/dist/kadaikodi/pages/customer/CustomerDashboard.js +430 -387
  50. package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
  51. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +488 -478
  52. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
  53. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +523 -512
  54. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
  55. package/dist/kadaikodi/pages/customer/FavoritesPage.js +83 -75
  56. package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
  57. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +116 -108
  58. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
  59. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +67 -61
  60. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  61. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +90 -73
  62. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
  63. package/dist/kadaikodi/pages/customer/ReviewsPage.js +80 -72
  64. package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
  65. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +70 -53
  66. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
  67. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +289 -255
  68. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
  69. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +92 -84
  70. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  71. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +63 -55
  72. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  73. package/dist/kadaikodi/pages/investor/InvestorDashboard.js +339 -311
  74. package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
  75. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +40 -32
  76. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  77. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +174 -150
  78. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
  79. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +385 -381
  80. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
  81. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +302 -273
  82. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  83. package/dist/kadaikodi/pages/worker/WorkerDashboard.js +87 -59
  84. package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
  85. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +82 -75
  86. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
  87. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +81 -77
  88. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
  89. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +78 -71
  90. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
  91. package/package.json +2 -2
@@ -5,35 +5,36 @@ import { EmptyState as r } from "../../components/EmptyState.js";
5
5
  import { useInvestmentOpportunities as i, useProviders as a } from "../../hooks/useKadaikodiApi.js";
6
6
  import { formatCurrency as o, formatDistance as s } from "../../utils/formatters.js";
7
7
  import { useMemo as c, useState as l } from "react";
8
- import { AlertCircle as u, Calendar as d, CheckCircle2 as f, Clock as p, Home as m, Info as h, Loader2 as g, MapPin as _, Search as v, Star as y, Tag as b, TrendingUp as x, X as S } from "lucide-react";
9
- import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
8
+ import { AlertCircle as u, Calendar as d, CheckCircle2 as f, Clock as p, Home as m, Info as h, Loader2 as g, MapPin as _, Search as v, Star as y, Tag as ee, TrendingUp as b, X as x } from "lucide-react";
9
+ import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
10
+ import { EmphasisPanel as T, PagePurpose as E } from "@burdenoff/fe-libs/ui";
10
11
  //#region src/kadaikodi/pages/customer/CartDiscoveryPage.tsx
11
- var E = "All";
12
- function D() {
13
- let { navigateTo: D } = e(), [O, k] = l(""), [A, j] = l(E), [M, N] = l(""), [P, F] = l(""), [I, L] = l("rating"), [R, z] = l(9), [B, V] = l(!1), [H, U] = l(null), { data: W = [], isLoading: G, isError: K } = a(), { data: q = [] } = i(), J = c(() => {
12
+ var D = "All";
13
+ function O() {
14
+ let { navigateTo: O } = e(), [k, A] = l(""), [j, M] = l(D), [N, P] = l(""), [F, I] = l(""), [L, R] = l("rating"), [z, B] = l(9), [V, H] = l(!1), [U, W] = l(null), { data: G = [], isLoading: K, isError: q } = a(), { data: J = [] } = i(), Y = c(() => {
14
15
  let e = /* @__PURE__ */ new Set();
15
- return W.forEach((t) => {
16
+ return G.forEach((t) => {
16
17
  t.category && e.add(t.category);
17
- }), [E, ...Array.from(e)];
18
- }, [W]), Y = c(() => {
19
- let e = [...W];
20
- if (O.trim()) {
21
- let t = O.toLowerCase();
18
+ }), [D, ...Array.from(e)];
19
+ }, [G]), X = c(() => {
20
+ let e = [...G];
21
+ if (k.trim()) {
22
+ let t = k.toLowerCase();
22
23
  e = e.filter((e) => e.name.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
23
24
  }
24
- if (A !== E && (e = e.filter((e) => e.category === A)), M) {
25
- let t = parseFloat(M);
25
+ if (j !== D && (e = e.filter((e) => e.category === j)), N) {
26
+ let t = parseFloat(N);
26
27
  e = e.filter((e) => e.rating >= t);
27
28
  }
28
- switch (P && (e = e.filter((e) => {
29
+ switch (F && (e = e.filter((e) => {
29
30
  let t = e.averageOrderValue ?? 0;
30
- switch (P) {
31
+ switch (F) {
31
32
  case "low": return t <= 300;
32
33
  case "medium": return t > 300 && t <= 800;
33
34
  case "high": return t > 800;
34
35
  default: return !0;
35
36
  }
36
- })), I) {
37
+ })), L) {
37
38
  case "rating":
38
39
  e.sort((e, t) => t.rating - e.rating);
39
40
  break;
@@ -49,34 +50,34 @@ function D() {
49
50
  }
50
51
  return e;
51
52
  }, [
52
- W,
53
- O,
54
- A,
55
- M,
56
- P,
57
- I
58
- ]), X = Y.slice(0, R), Z = R < Y.length, Q = A !== E || M !== "" || P !== "" || O.trim() !== "", $ = () => {
59
- k(""), j(E), N(""), F(""), L("rating"), z(9);
53
+ G,
54
+ k,
55
+ j,
56
+ N,
57
+ F,
58
+ L
59
+ ]), Z = X.slice(0, z), Q = z < X.length, te = j !== D || N !== "" || F !== "" || k.trim() !== "", $ = () => {
60
+ A(""), M(D), P(""), I(""), R("rating"), B(9);
60
61
  };
61
- return G ? /* @__PURE__ */ w(n, {
62
+ return K ? /* @__PURE__ */ C(n, {
62
63
  title: "Discover Carts",
63
64
  description: "Finding services and shops near you...",
64
- children: /* @__PURE__ */ w("div", {
65
+ children: /* @__PURE__ */ C("div", {
65
66
  className: "flex h-[60vh] items-center justify-center",
66
- children: /* @__PURE__ */ w(g, { className: "h-8 w-8 animate-spin text-primary" })
67
+ children: /* @__PURE__ */ C(g, { className: "h-8 w-8 animate-spin text-primary" })
67
68
  })
68
- }) : K ? /* @__PURE__ */ w(n, {
69
+ }) : q ? /* @__PURE__ */ C(n, {
69
70
  title: "Discover Carts",
70
71
  description: "Error loading carts",
71
- children: /* @__PURE__ */ T("div", {
72
+ children: /* @__PURE__ */ w("div", {
72
73
  className: "flex h-[60vh] flex-col items-center justify-center gap-4",
73
74
  children: [
74
- /* @__PURE__ */ w(u, { className: "h-12 w-12 text-status-error-text" }),
75
- /* @__PURE__ */ w("h2", {
75
+ /* @__PURE__ */ C(u, { className: "h-12 w-12 text-status-error-text" }),
76
+ /* @__PURE__ */ C("h2", {
76
77
  className: "text-xl font-semibold",
77
78
  children: "Error loading service providers"
78
79
  }),
79
- /* @__PURE__ */ w("button", {
80
+ /* @__PURE__ */ C("button", {
80
81
  type: "button",
81
82
  onClick: () => window.location.reload(),
82
83
  className: "rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text",
@@ -84,115 +85,119 @@ function D() {
84
85
  })
85
86
  ]
86
87
  })
87
- }) : /* @__PURE__ */ T(n, {
88
+ }) : /* @__PURE__ */ w(n, {
88
89
  title: "Discover Carts",
89
90
  description: "Find services and shops near you",
90
- actions: /* @__PURE__ */ T("span", {
91
+ actions: /* @__PURE__ */ w("span", {
91
92
  className: "text-sm text-text-secondary",
92
- children: [Y.length, " carts found"]
93
+ children: [X.length, " carts found"]
93
94
  }),
94
95
  children: [
95
- /* @__PURE__ */ T("div", {
96
+ /* @__PURE__ */ C(E, {
97
+ className: "mb-4",
98
+ children: "Find mobile food carts and shops near you. Search by name, dish or category, then filter by rating and price to land on exactly what you're craving — tap any cart to see its menu and order."
99
+ }),
100
+ /* @__PURE__ */ C(T, { children: /* @__PURE__ */ w("div", {
96
101
  className: "relative",
97
102
  children: [
98
- /* @__PURE__ */ w(v, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }),
99
- /* @__PURE__ */ w("input", {
103
+ /* @__PURE__ */ C(v, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }),
104
+ /* @__PURE__ */ C("input", {
100
105
  type: "text",
101
106
  placeholder: "Search carts, services, or items...",
102
- value: O,
103
- onChange: (e) => k(e.target.value),
107
+ value: k,
108
+ onChange: (e) => A(e.target.value),
104
109
  className: t("w-full rounded-lg border border-border-subtle bg-bg-surface py-2.5 pl-10 pr-10 text-sm text-text-primary", "placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]")
105
110
  }),
106
- O && /* @__PURE__ */ w("button", {
111
+ k && /* @__PURE__ */ C("button", {
107
112
  type: "button",
108
- onClick: () => k(""),
113
+ onClick: () => A(""),
109
114
  className: "absolute right-3 top-1/2 -translate-y-1/2 text-text-secondary hover:text-text-primary",
110
- children: /* @__PURE__ */ w(S, { className: "h-4 w-4" })
115
+ children: /* @__PURE__ */ C(x, { className: "h-4 w-4" })
111
116
  })
112
117
  ]
113
- }),
114
- /* @__PURE__ */ w("div", {
118
+ }) }),
119
+ /* @__PURE__ */ C("div", {
115
120
  className: "mt-4 flex flex-wrap gap-2",
116
- children: J.map((e) => /* @__PURE__ */ w("button", {
121
+ children: Y.map((e) => /* @__PURE__ */ C("button", {
117
122
  type: "button",
118
- onClick: () => j(e),
119
- className: t("rounded-full px-3 py-1.5 text-xs font-medium transition-colors", A === e ? "bg-foreground text-background" : "bg-bg-sunken text-text-secondary hover:bg-accent hover:text-text-primary"),
123
+ onClick: () => M(e),
124
+ className: t("rounded-full px-3 py-1.5 text-xs font-medium transition-colors", j === e ? "bg-foreground text-background" : "bg-bg-sunken text-text-secondary hover:bg-accent hover:text-text-primary"),
120
125
  children: e
121
126
  }, e))
122
127
  }),
123
- /* @__PURE__ */ T("div", {
128
+ /* @__PURE__ */ w("div", {
124
129
  className: "mt-4 flex flex-wrap items-center gap-3",
125
130
  children: [
126
- /* @__PURE__ */ T("select", {
127
- value: M,
128
- onChange: (e) => N(e.target.value),
131
+ /* @__PURE__ */ w("select", {
132
+ value: N,
133
+ onChange: (e) => P(e.target.value),
129
134
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-xs text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
130
135
  children: [
131
- /* @__PURE__ */ w("option", {
136
+ /* @__PURE__ */ C("option", {
132
137
  value: "",
133
138
  children: "Any Rating"
134
139
  }),
135
- /* @__PURE__ */ w("option", {
140
+ /* @__PURE__ */ C("option", {
136
141
  value: "4.5",
137
142
  children: "4.5+ Stars"
138
143
  }),
139
- /* @__PURE__ */ w("option", {
144
+ /* @__PURE__ */ C("option", {
140
145
  value: "4.0",
141
146
  children: "4.0+ Stars"
142
147
  }),
143
- /* @__PURE__ */ w("option", {
148
+ /* @__PURE__ */ C("option", {
144
149
  value: "3.5",
145
150
  children: "3.5+ Stars"
146
151
  })
147
152
  ]
148
153
  }),
149
- /* @__PURE__ */ T("select", {
150
- value: P,
151
- onChange: (e) => F(e.target.value),
154
+ /* @__PURE__ */ w("select", {
155
+ value: F,
156
+ onChange: (e) => I(e.target.value),
152
157
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-xs text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
153
158
  children: [
154
- /* @__PURE__ */ w("option", {
159
+ /* @__PURE__ */ C("option", {
155
160
  value: "",
156
161
  children: "Any Price"
157
162
  }),
158
- /* @__PURE__ */ w("option", {
163
+ /* @__PURE__ */ C("option", {
159
164
  value: "low",
160
165
  children: "Under ₹300"
161
166
  }),
162
- /* @__PURE__ */ w("option", {
167
+ /* @__PURE__ */ C("option", {
163
168
  value: "medium",
164
169
  children: "₹300 - ₹800"
165
170
  }),
166
- /* @__PURE__ */ w("option", {
171
+ /* @__PURE__ */ C("option", {
167
172
  value: "high",
168
173
  children: "₹800+"
169
174
  })
170
175
  ]
171
176
  }),
172
- /* @__PURE__ */ T("select", {
173
- value: I,
174
- onChange: (e) => L(e.target.value),
177
+ /* @__PURE__ */ w("select", {
178
+ value: L,
179
+ onChange: (e) => R(e.target.value),
175
180
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-xs text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
176
181
  children: [
177
- /* @__PURE__ */ w("option", {
182
+ /* @__PURE__ */ C("option", {
178
183
  value: "rating",
179
184
  children: "Highest Rated"
180
185
  }),
181
- /* @__PURE__ */ w("option", {
186
+ /* @__PURE__ */ C("option", {
182
187
  value: "popularity",
183
188
  children: "Most Popular"
184
189
  }),
185
- /* @__PURE__ */ w("option", {
190
+ /* @__PURE__ */ C("option", {
186
191
  value: "distance",
187
192
  children: "Nearest"
188
193
  }),
189
- /* @__PURE__ */ w("option", {
194
+ /* @__PURE__ */ C("option", {
190
195
  value: "newest",
191
196
  children: "Newest"
192
197
  })
193
198
  ]
194
199
  }),
195
- Q && /* @__PURE__ */ w("button", {
200
+ te && /* @__PURE__ */ C("button", {
196
201
  type: "button",
197
202
  onClick: $,
198
203
  className: "rounded-lg border border-border-subtle px-3 py-2 text-xs font-medium text-text-secondary hover:text-text-primary transition-colors",
@@ -200,55 +205,55 @@ function D() {
200
205
  })
201
206
  ]
202
207
  }),
203
- X.length > 0 ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w("div", {
208
+ Z.length > 0 ? /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C("div", {
204
209
  className: "mt-6 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
205
- children: X.map((e) => {
206
- let n = q.find((t) => t.cartId === e.id);
207
- return /* @__PURE__ */ T("div", {
210
+ children: Z.map((e) => {
211
+ let n = J.find((t) => t.cartId === e.id);
212
+ return /* @__PURE__ */ w("div", {
208
213
  className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm overflow-hidden hover:shadow-md transition-shadow flex flex-col",
209
- children: [/* @__PURE__ */ T("div", {
214
+ children: [/* @__PURE__ */ w("div", {
210
215
  className: "relative h-40 bg-bg-sunken",
211
216
  children: [
212
- /* @__PURE__ */ w("img", {
217
+ /* @__PURE__ */ C("img", {
213
218
  src: e.image,
214
219
  alt: e.name,
215
220
  className: "h-full w-full object-cover"
216
221
  }),
217
- /* @__PURE__ */ T("div", {
222
+ /* @__PURE__ */ w("div", {
218
223
  className: "absolute top-2 left-2 flex gap-1.5",
219
- children: [/* @__PURE__ */ w("span", {
224
+ children: [/* @__PURE__ */ C("span", {
220
225
  className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium backdrop-blur-sm", e.isOpen ? "bg-status-success-bg-subtle text-status-success-text" : "bg-status-error-bg-subtle text-status-error-text"),
221
226
  children: e.isOpen ? "Open" : "Closed"
222
- }), e.isVerified && /* @__PURE__ */ T("span", {
227
+ }), e.isVerified && /* @__PURE__ */ w("span", {
223
228
  className: "inline-flex items-center gap-0.5 rounded-full bg-[var(--color-accent-soft)] px-2 py-0.5 text-xs font-medium text-text-primary backdrop-blur-sm",
224
- children: [/* @__PURE__ */ w(f, { className: "h-3 w-3" }), "Verified"]
229
+ children: [/* @__PURE__ */ C(f, { className: "h-3 w-3" }), "Verified"]
225
230
  })]
226
231
  }),
227
- /* @__PURE__ */ w("div", {
232
+ /* @__PURE__ */ C("div", {
228
233
  className: "absolute top-2 right-2",
229
- children: /* @__PURE__ */ T("span", {
234
+ children: /* @__PURE__ */ w("span", {
230
235
  className: "rounded-full bg-black/50 px-2 py-0.5 text-xs text-white backdrop-blur-sm",
231
236
  children: [e.estimatedTime, " min"]
232
237
  })
233
238
  })
234
239
  ]
235
- }), /* @__PURE__ */ T("div", {
240
+ }), /* @__PURE__ */ w("div", {
236
241
  className: "flex flex-col flex-1 p-4",
237
242
  children: [
238
- /* @__PURE__ */ T("div", {
243
+ /* @__PURE__ */ w("div", {
239
244
  className: "flex items-start justify-between gap-2 mb-1",
240
- children: [/* @__PURE__ */ w("h3", {
245
+ children: [/* @__PURE__ */ C("h3", {
241
246
  className: "text-sm font-semibold text-text-primary truncate flex-1",
242
247
  children: e.name
243
- }), /* @__PURE__ */ T("div", {
248
+ }), /* @__PURE__ */ w("div", {
244
249
  className: "flex items-center gap-1 shrink-0",
245
250
  children: [
246
- /* @__PURE__ */ w(y, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }),
247
- /* @__PURE__ */ w("span", {
251
+ /* @__PURE__ */ C(y, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }),
252
+ /* @__PURE__ */ C("span", {
248
253
  className: "text-xs font-medium text-text-primary",
249
254
  children: e.rating
250
255
  }),
251
- /* @__PURE__ */ T("span", {
256
+ /* @__PURE__ */ w("span", {
252
257
  className: "text-xs text-text-secondary",
253
258
  children: [
254
259
  "(",
@@ -259,83 +264,83 @@ function D() {
259
264
  ]
260
265
  })]
261
266
  }),
262
- /* @__PURE__ */ w("p", {
267
+ /* @__PURE__ */ C("p", {
263
268
  className: "text-xs text-text-secondary mb-2",
264
269
  children: e.category
265
270
  }),
266
- /* @__PURE__ */ w("div", {
271
+ /* @__PURE__ */ C("div", {
267
272
  className: "flex items-center gap-3 text-xs text-text-secondary mb-2",
268
- children: /* @__PURE__ */ T("span", {
273
+ children: /* @__PURE__ */ w("span", {
269
274
  className: "flex items-center gap-1",
270
- children: [/* @__PURE__ */ w(_, { className: "h-3 w-3" }), e.location?.address?.split(",")[0] || "Unknown"]
275
+ children: [/* @__PURE__ */ C(_, { className: "h-3 w-3" }), e.location?.address?.split(",")[0] || "Unknown"]
271
276
  })
272
277
  }),
273
- /* @__PURE__ */ T("div", {
278
+ /* @__PURE__ */ w("div", {
274
279
  className: "flex items-center gap-3 text-xs text-text-secondary mb-3",
275
- children: [e.averageOrderValue && /* @__PURE__ */ T("span", { children: ["Avg ", o(e.averageOrderValue, { minimumFractionDigits: 0 })] }), /* @__PURE__ */ T("span", {
280
+ children: [e.averageOrderValue && /* @__PURE__ */ w("span", { children: ["Avg ", o(e.averageOrderValue, { minimumFractionDigits: 0 })] }), /* @__PURE__ */ w("span", {
276
281
  className: "flex items-center gap-1",
277
- children: [/* @__PURE__ */ w(_, { className: "h-3 w-3" }), s(e.distance)]
282
+ children: [/* @__PURE__ */ C(_, { className: "h-3 w-3" }), s(e.distance)]
278
283
  })]
279
284
  }),
280
- e.serviceTypes?.includes("appointment") && /* @__PURE__ */ w("div", {
285
+ e.serviceTypes?.includes("appointment") && /* @__PURE__ */ C("div", {
281
286
  className: "mb-3 rounded-md bg-[var(--color-accent-soft)] border border-border-focus/20 p-2",
282
- children: /* @__PURE__ */ T("div", {
287
+ children: /* @__PURE__ */ w("div", {
283
288
  className: "flex items-center gap-1 text-xs text-text-primary",
284
- children: [/* @__PURE__ */ w(d, { className: "h-3 w-3" }), /* @__PURE__ */ w("span", {
289
+ children: [/* @__PURE__ */ C(d, { className: "h-3 w-3" }), /* @__PURE__ */ C("span", {
285
290
  className: "font-medium",
286
291
  children: "Appointment available"
287
292
  })]
288
293
  })
289
294
  }),
290
- e.serviceTypes?.includes("direct_service") && /* @__PURE__ */ w("div", {
295
+ e.serviceTypes?.includes("direct_service") && /* @__PURE__ */ C("div", {
291
296
  className: "mb-3 rounded-md bg-accent-purple-subtle border border-accent-purple/20 p-2",
292
- children: /* @__PURE__ */ T("div", {
297
+ children: /* @__PURE__ */ w("div", {
293
298
  className: "flex items-center gap-1 text-xs text-text-primary",
294
- children: [/* @__PURE__ */ w(m, { className: "h-3 w-3" }), /* @__PURE__ */ w("span", {
299
+ children: [/* @__PURE__ */ C(m, { className: "h-3 w-3" }), /* @__PURE__ */ C("span", {
295
300
  className: "font-medium",
296
301
  children: "Direct Service Available"
297
302
  })]
298
303
  })
299
304
  }),
300
- e.serviceTypes && e.serviceTypes.length > 0 && /* @__PURE__ */ w("div", {
305
+ e.serviceTypes && e.serviceTypes.length > 0 && /* @__PURE__ */ C("div", {
301
306
  className: "flex flex-wrap gap-1 mb-3",
302
- children: e.serviceTypes.slice(0, 3).map((e) => /* @__PURE__ */ w("span", {
307
+ children: e.serviceTypes.slice(0, 3).map((e) => /* @__PURE__ */ C("span", {
303
308
  className: "rounded-full bg-bg-sunken px-2 py-0.5 text-[10px] text-text-secondary",
304
309
  children: e.replace(/_/g, " ")
305
310
  }, e))
306
311
  }),
307
- /* @__PURE__ */ T("div", {
312
+ /* @__PURE__ */ w("div", {
308
313
  className: "mt-auto flex gap-2",
309
314
  children: [
310
- /* @__PURE__ */ w("button", {
315
+ /* @__PURE__ */ C("button", {
311
316
  type: "button",
312
- onClick: () => D(`/customer/cart/${e.id}`),
317
+ onClick: () => O(`/customer/cart/${e.id}`),
313
318
  disabled: !e.isOpen,
314
319
  className: t("flex-1 rounded-lg py-2 text-xs font-medium transition-opacity", e.isOpen ? "bg-foreground text-background hover:opacity-90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
315
320
  children: e.isOpen ? "View Services" : "Closed"
316
321
  }),
317
- e.serviceTypes?.includes("direct_service") && /* @__PURE__ */ w("button", {
322
+ e.serviceTypes?.includes("direct_service") && /* @__PURE__ */ C("button", {
318
323
  type: "button",
319
- onClick: () => D(`/customer/cart/${e.id}`),
324
+ onClick: () => O(`/customer/cart/${e.id}`),
320
325
  className: "rounded-lg border border-border-subtle px-2 py-2 text-xs text-text-primary hover:bg-accent transition-colors",
321
326
  title: "Book Direct Service",
322
- children: /* @__PURE__ */ w(m, { className: "h-3.5 w-3.5" })
327
+ children: /* @__PURE__ */ C(m, { className: "h-3.5 w-3.5" })
323
328
  }),
324
- n && /* @__PURE__ */ w("button", {
329
+ n && /* @__PURE__ */ C("button", {
325
330
  type: "button",
326
331
  onClick: () => alert("Investment opportunity available! View in Investor section."),
327
332
  className: "rounded-lg border border-status-success-text/30 bg-status-success-bg-subtle px-2 py-2 text-xs text-status-success-text hover:bg-status-success-bg-subtle transition-colors",
328
333
  title: "Investment Opportunity",
329
- children: /* @__PURE__ */ w(x, { className: "h-3.5 w-3.5" })
334
+ children: /* @__PURE__ */ C(b, { className: "h-3.5 w-3.5" })
330
335
  }),
331
- /* @__PURE__ */ w("button", {
336
+ /* @__PURE__ */ C("button", {
332
337
  type: "button",
333
338
  onClick: () => {
334
- U(e), V(!0);
339
+ W(e), H(!0);
335
340
  },
336
341
  className: "rounded-lg border border-border-subtle px-2 py-2 text-xs text-text-primary hover:bg-accent transition-colors",
337
342
  title: "Cart Info",
338
- children: /* @__PURE__ */ w(h, { className: "h-3.5 w-3.5" })
343
+ children: /* @__PURE__ */ C(h, { className: "h-3.5 w-3.5" })
339
344
  })
340
345
  ]
341
346
  })
@@ -343,22 +348,22 @@ function D() {
343
348
  })]
344
349
  }, e.id);
345
350
  })
346
- }), Z && /* @__PURE__ */ w("div", {
351
+ }), Q && /* @__PURE__ */ C("div", {
347
352
  className: "mt-8 text-center",
348
- children: /* @__PURE__ */ w("button", {
353
+ children: /* @__PURE__ */ C("button", {
349
354
  type: "button",
350
- onClick: () => z((e) => e + 9),
355
+ onClick: () => B((e) => e + 9),
351
356
  className: "rounded-lg border border-border-subtle px-6 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
352
357
  children: "Load More Carts"
353
358
  })
354
- })] }) : /* @__PURE__ */ w("div", {
359
+ })] }) : /* @__PURE__ */ C("div", {
355
360
  className: "mt-6",
356
- children: /* @__PURE__ */ w(r, {
361
+ children: /* @__PURE__ */ C(r, {
357
362
  illustration: "empty-search",
358
- icon: /* @__PURE__ */ w(v, { className: "h-12 w-12" }),
363
+ icon: /* @__PURE__ */ C(v, { className: "h-12 w-12" }),
359
364
  title: "No carts found",
360
- description: O ? `No results for "${O}". Try a different search term.` : "No carts available with these filters.",
361
- action: /* @__PURE__ */ w("button", {
365
+ description: k ? `No results for "${k}". Try a different search term.` : "No carts available with these filters.",
366
+ action: /* @__PURE__ */ C("button", {
362
367
  type: "button",
363
368
  onClick: $,
364
369
  className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
@@ -366,171 +371,171 @@ function D() {
366
371
  })
367
372
  })
368
373
  }),
369
- B && H && /* @__PURE__ */ w("div", {
374
+ V && U && /* @__PURE__ */ C("div", {
370
375
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
371
- children: /* @__PURE__ */ w("div", {
376
+ children: /* @__PURE__ */ C("div", {
372
377
  className: "w-full max-w-2xl max-h-[90vh] overflow-y-auto rounded-lg border border-border-subtle bg-bg-surface",
373
- children: /* @__PURE__ */ T("div", {
378
+ children: /* @__PURE__ */ w("div", {
374
379
  className: "p-5",
375
380
  children: [
376
- /* @__PURE__ */ T("div", {
381
+ /* @__PURE__ */ w("div", {
377
382
  className: "flex items-center justify-between mb-4",
378
- children: [/* @__PURE__ */ w("h3", {
383
+ children: [/* @__PURE__ */ C("h3", {
379
384
  className: "text-lg font-semibold text-text-primary",
380
385
  children: "Cart Information"
381
- }), /* @__PURE__ */ w("button", {
386
+ }), /* @__PURE__ */ C("button", {
382
387
  type: "button",
383
- onClick: () => V(!1),
388
+ onClick: () => H(!1),
384
389
  className: "rounded-md p-1 text-text-secondary hover:text-text-primary transition-colors",
385
- children: /* @__PURE__ */ w(S, { className: "h-5 w-5" })
390
+ children: /* @__PURE__ */ C(x, { className: "h-5 w-5" })
386
391
  })]
387
392
  }),
388
- /* @__PURE__ */ w("div", {
393
+ /* @__PURE__ */ C("div", {
389
394
  className: "h-48 rounded-lg overflow-hidden mb-4",
390
- children: /* @__PURE__ */ w("img", {
391
- src: H.image,
392
- alt: H.name,
395
+ children: /* @__PURE__ */ C("img", {
396
+ src: U.image,
397
+ alt: U.name,
393
398
  className: "h-full w-full object-cover"
394
399
  })
395
400
  }),
396
- /* @__PURE__ */ w("h4", {
401
+ /* @__PURE__ */ C("h4", {
397
402
  className: "text-xl font-semibold text-text-primary mb-1",
398
- children: H.name
403
+ children: U.name
399
404
  }),
400
- /* @__PURE__ */ T("div", {
405
+ /* @__PURE__ */ w("div", {
401
406
  className: "flex flex-wrap items-center gap-3 mb-4",
402
- children: [/* @__PURE__ */ T("div", {
407
+ children: [/* @__PURE__ */ w("div", {
403
408
  className: "flex items-center gap-1",
404
409
  children: [
405
- /* @__PURE__ */ w(y, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }),
406
- /* @__PURE__ */ w("span", {
410
+ /* @__PURE__ */ C(y, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }),
411
+ /* @__PURE__ */ C("span", {
407
412
  className: "text-sm font-medium",
408
- children: H.rating
413
+ children: U.rating
409
414
  }),
410
- /* @__PURE__ */ T("span", {
415
+ /* @__PURE__ */ w("span", {
411
416
  className: "text-xs text-text-secondary",
412
417
  children: [
413
418
  "(",
414
- H.totalRatings,
419
+ U.totalRatings,
415
420
  " reviews)"
416
421
  ]
417
422
  })
418
423
  ]
419
- }), /* @__PURE__ */ w("span", {
420
- className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium", H.isOpen ? "bg-status-success-bg-subtle text-status-success-text" : "bg-status-error-bg-subtle text-status-error-text"),
421
- children: H.isOpen ? "Open" : "Closed"
424
+ }), /* @__PURE__ */ C("span", {
425
+ className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium", U.isOpen ? "bg-status-success-bg-subtle text-status-success-text" : "bg-status-error-bg-subtle text-status-error-text"),
426
+ children: U.isOpen ? "Open" : "Closed"
422
427
  })]
423
428
  }),
424
- /* @__PURE__ */ T("div", {
429
+ /* @__PURE__ */ w("div", {
425
430
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2 mb-4",
426
431
  children: [
427
- /* @__PURE__ */ T("div", {
432
+ /* @__PURE__ */ w("div", {
428
433
  className: "rounded-md bg-bg-sunken p-3",
429
- children: [/* @__PURE__ */ T("p", {
434
+ children: [/* @__PURE__ */ w("p", {
430
435
  className: "text-xs font-medium text-text-secondary flex items-center gap-1",
431
- children: [/* @__PURE__ */ w(_, { className: "h-3 w-3" }), " Location"]
432
- }), /* @__PURE__ */ w("p", {
436
+ children: [/* @__PURE__ */ C(_, { className: "h-3 w-3" }), " Location"]
437
+ }), /* @__PURE__ */ C("p", {
433
438
  className: "mt-1 text-sm text-text-primary",
434
- children: H.location.address
439
+ children: U.location.address
435
440
  })]
436
441
  }),
437
- /* @__PURE__ */ T("div", {
442
+ /* @__PURE__ */ w("div", {
438
443
  className: "rounded-md bg-bg-sunken p-3",
439
- children: [/* @__PURE__ */ T("p", {
444
+ children: [/* @__PURE__ */ w("p", {
440
445
  className: "text-xs font-medium text-text-secondary flex items-center gap-1",
441
- children: [/* @__PURE__ */ w(b, { className: "h-3 w-3" }), " Category"]
442
- }), /* @__PURE__ */ w("p", {
446
+ children: [/* @__PURE__ */ C(ee, { className: "h-3 w-3" }), " Category"]
447
+ }), /* @__PURE__ */ C("p", {
443
448
  className: "mt-1 text-sm text-text-primary",
444
- children: H.category
449
+ children: U.category
445
450
  })]
446
451
  }),
447
- H.averageOrderValue && /* @__PURE__ */ T("div", {
452
+ U.averageOrderValue && /* @__PURE__ */ w("div", {
448
453
  className: "rounded-md bg-bg-sunken p-3",
449
- children: [/* @__PURE__ */ w("p", {
454
+ children: [/* @__PURE__ */ C("p", {
450
455
  className: "text-xs font-medium text-text-secondary",
451
456
  children: "Average Order"
452
- }), /* @__PURE__ */ w("p", {
457
+ }), /* @__PURE__ */ C("p", {
453
458
  className: "mt-1 text-sm text-text-primary",
454
- children: o(H.averageOrderValue, { minimumFractionDigits: 0 })
459
+ children: o(U.averageOrderValue, { minimumFractionDigits: 0 })
455
460
  })]
456
461
  }),
457
- /* @__PURE__ */ T("div", {
462
+ /* @__PURE__ */ w("div", {
458
463
  className: "rounded-md bg-bg-sunken p-3",
459
- children: [/* @__PURE__ */ T("p", {
464
+ children: [/* @__PURE__ */ w("p", {
460
465
  className: "text-xs font-medium text-text-secondary flex items-center gap-1",
461
- children: [/* @__PURE__ */ w(p, { className: "h-3 w-3" }), " Estimated Time"]
462
- }), /* @__PURE__ */ T("p", {
466
+ children: [/* @__PURE__ */ C(p, { className: "h-3 w-3" }), " Estimated Time"]
467
+ }), /* @__PURE__ */ w("p", {
463
468
  className: "mt-1 text-sm text-text-primary",
464
- children: [H.estimatedTime, " minutes"]
469
+ children: [U.estimatedTime, " minutes"]
465
470
  })]
466
471
  }),
467
- /* @__PURE__ */ T("div", {
472
+ /* @__PURE__ */ w("div", {
468
473
  className: "rounded-md bg-bg-sunken p-3",
469
- children: [/* @__PURE__ */ w("p", {
474
+ children: [/* @__PURE__ */ C("p", {
470
475
  className: "text-xs font-medium text-text-secondary",
471
476
  children: "Distance"
472
- }), /* @__PURE__ */ w("p", {
477
+ }), /* @__PURE__ */ C("p", {
473
478
  className: "mt-1 text-sm text-text-primary",
474
- children: s(H.distance)
479
+ children: s(U.distance)
475
480
  })]
476
481
  }),
477
- H.isVerified && /* @__PURE__ */ T("div", {
482
+ U.isVerified && /* @__PURE__ */ w("div", {
478
483
  className: "rounded-md bg-bg-sunken p-3",
479
- children: [/* @__PURE__ */ T("p", {
484
+ children: [/* @__PURE__ */ w("p", {
480
485
  className: "text-xs font-medium text-text-secondary flex items-center gap-1",
481
- children: [/* @__PURE__ */ w(f, { className: "h-3 w-3" }), " Verification"]
482
- }), /* @__PURE__ */ w("p", {
486
+ children: [/* @__PURE__ */ C(f, { className: "h-3 w-3" }), " Verification"]
487
+ }), /* @__PURE__ */ C("p", {
483
488
  className: "mt-1 text-sm text-text-primary",
484
489
  children: "Verified cart"
485
490
  })]
486
491
  })
487
492
  ]
488
493
  }),
489
- H.serviceTypes && H.serviceTypes.length > 0 && /* @__PURE__ */ T("div", {
494
+ U.serviceTypes && U.serviceTypes.length > 0 && /* @__PURE__ */ w("div", {
490
495
  className: "mb-4",
491
- children: [/* @__PURE__ */ w("p", {
496
+ children: [/* @__PURE__ */ C("p", {
492
497
  className: "text-xs font-medium text-text-secondary mb-2",
493
498
  children: "Service Types"
494
- }), /* @__PURE__ */ w("div", {
499
+ }), /* @__PURE__ */ C("div", {
495
500
  className: "flex flex-wrap gap-2",
496
- children: H.serviceTypes.map((e) => /* @__PURE__ */ w("span", {
501
+ children: U.serviceTypes.map((e) => /* @__PURE__ */ C("span", {
497
502
  className: "rounded-full bg-bg-sunken px-2.5 py-1 text-xs text-text-secondary capitalize",
498
503
  children: e.replace(/_/g, " ")
499
504
  }, e))
500
505
  })]
501
506
  }),
502
- H.businessHours && Object.keys(H.businessHours).length > 0 && /* @__PURE__ */ T("div", {
507
+ U.businessHours && Object.keys(U.businessHours).length > 0 && /* @__PURE__ */ w("div", {
503
508
  className: "mb-4",
504
- children: [/* @__PURE__ */ w("p", {
509
+ children: [/* @__PURE__ */ C("p", {
505
510
  className: "text-xs font-medium text-text-secondary mb-2",
506
511
  children: "Operating Hours"
507
- }), /* @__PURE__ */ w("div", {
512
+ }), /* @__PURE__ */ C("div", {
508
513
  className: "space-y-1",
509
- children: Object.entries(H.businessHours).map(([e, t]) => /* @__PURE__ */ T("div", {
514
+ children: Object.entries(U.businessHours).map(([e, t]) => /* @__PURE__ */ w("div", {
510
515
  className: "flex justify-between text-xs",
511
- children: [/* @__PURE__ */ w("span", {
516
+ children: [/* @__PURE__ */ C("span", {
512
517
  className: "capitalize text-text-primary",
513
518
  children: e
514
- }), /* @__PURE__ */ w("span", {
519
+ }), /* @__PURE__ */ C("span", {
515
520
  className: "text-text-secondary",
516
521
  children: t.isOpen ? `${t.open} - ${t.close}` : "Closed"
517
522
  })]
518
523
  }, e))
519
524
  })]
520
525
  }),
521
- /* @__PURE__ */ T("div", {
526
+ /* @__PURE__ */ w("div", {
522
527
  className: "flex gap-3 mt-6",
523
- children: [/* @__PURE__ */ w("button", {
528
+ children: [/* @__PURE__ */ C("button", {
524
529
  type: "button",
525
530
  onClick: () => {
526
- V(!1), D(`/customer/carts/${H.id}`);
531
+ H(!1), O(`/customer/carts/${U.id}`);
527
532
  },
528
- disabled: !H.isOpen,
529
- className: t("flex-1 rounded-lg py-2.5 text-sm font-medium transition-opacity", H.isOpen ? "bg-foreground text-background hover:opacity-90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
530
- children: H.isOpen ? "View Menu" : "Currently Closed"
531
- }), /* @__PURE__ */ w("button", {
533
+ disabled: !U.isOpen,
534
+ className: t("flex-1 rounded-lg py-2.5 text-sm font-medium transition-opacity", U.isOpen ? "bg-foreground text-background hover:opacity-90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
535
+ children: U.isOpen ? "View Menu" : "Currently Closed"
536
+ }), /* @__PURE__ */ C("button", {
532
537
  type: "button",
533
- onClick: () => V(!1),
538
+ onClick: () => H(!1),
534
539
  className: "rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
535
540
  children: "Close"
536
541
  })]
@@ -543,6 +548,6 @@ function D() {
543
548
  });
544
549
  }
545
550
  //#endregion
546
- export { D as CartDiscoveryPage };
551
+ export { O as CartDiscoveryPage };
547
552
 
548
553
  //# sourceMappingURL=CartDiscoveryPage.js.map