@burdenoff/microfe-kadaikodi 2026.704.3 → 2026.704.5

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 (145) hide show
  1. package/dist/kadaikodi/KadaikodiRoutes.js +34 -26
  2. package/dist/kadaikodi/KadaikodiRoutes.js.map +1 -1
  3. package/dist/kadaikodi/components/viz/AllocationBar.js +68 -0
  4. package/dist/kadaikodi/components/viz/AllocationBar.js.map +1 -0
  5. package/dist/kadaikodi/components/viz/AreaChart.js +102 -0
  6. package/dist/kadaikodi/components/viz/AreaChart.js.map +1 -0
  7. package/dist/kadaikodi/components/viz/AvatarStack.js +36 -0
  8. package/dist/kadaikodi/components/viz/AvatarStack.js.map +1 -0
  9. package/dist/kadaikodi/components/viz/BarChart.js +83 -0
  10. package/dist/kadaikodi/components/viz/BarChart.js.map +1 -0
  11. package/dist/kadaikodi/components/viz/CertificateCard.js +4 -0
  12. package/dist/kadaikodi/components/viz/DonutChart.js +109 -0
  13. package/dist/kadaikodi/components/viz/DonutChart.js.map +1 -0
  14. package/dist/kadaikodi/components/viz/HBarFunnel.js +54 -0
  15. package/dist/kadaikodi/components/viz/HBarFunnel.js.map +1 -0
  16. package/dist/kadaikodi/components/viz/Heatmap.js +3 -0
  17. package/dist/kadaikodi/components/viz/KanbanBoard.js +50 -0
  18. package/dist/kadaikodi/components/viz/KanbanBoard.js.map +1 -0
  19. package/dist/kadaikodi/components/viz/LineChart.js +4 -0
  20. package/dist/kadaikodi/components/viz/OrgTree.js +2 -0
  21. package/dist/kadaikodi/components/viz/PathSteps.js +3 -0
  22. package/dist/kadaikodi/components/viz/ProgressRing.js +68 -0
  23. package/dist/kadaikodi/components/viz/ProgressRing.js.map +1 -0
  24. package/dist/kadaikodi/components/viz/RatingStars.js +51 -0
  25. package/dist/kadaikodi/components/viz/RatingStars.js.map +1 -0
  26. package/dist/kadaikodi/components/viz/SegmentedTabs.js +69 -0
  27. package/dist/kadaikodi/components/viz/SegmentedTabs.js.map +1 -0
  28. package/dist/kadaikodi/components/viz/SkillBar.js +3 -0
  29. package/dist/kadaikodi/components/viz/Sparkline.js +74 -0
  30. package/dist/kadaikodi/components/viz/Sparkline.js.map +1 -0
  31. package/dist/kadaikodi/components/viz/StatCard.js +60 -0
  32. package/dist/kadaikodi/components/viz/StatCard.js.map +1 -0
  33. package/dist/kadaikodi/components/viz/StepProgress.js +64 -0
  34. package/dist/kadaikodi/components/viz/StepProgress.js.map +1 -0
  35. package/dist/kadaikodi/components/viz/Timeline.js +66 -0
  36. package/dist/kadaikodi/components/viz/Timeline.js.map +1 -0
  37. package/dist/kadaikodi/components/viz/index.js +23 -0
  38. package/dist/kadaikodi/components/viz/lib/Avatar.js +30 -0
  39. package/dist/kadaikodi/components/viz/lib/Avatar.js.map +1 -0
  40. package/dist/kadaikodi/components/viz/lib/CartesianFrame.js +119 -0
  41. package/dist/kadaikodi/components/viz/lib/CartesianFrame.js.map +1 -0
  42. package/dist/kadaikodi/components/viz/lib/ResponsiveSvg.js +35 -0
  43. package/dist/kadaikodi/components/viz/lib/ResponsiveSvg.js.map +1 -0
  44. package/dist/kadaikodi/components/viz/lib/format.js +21 -0
  45. package/dist/kadaikodi/components/viz/lib/format.js.map +1 -0
  46. package/dist/kadaikodi/components/viz/lib/geometry.js +61 -0
  47. package/dist/kadaikodi/components/viz/lib/geometry.js.map +1 -0
  48. package/dist/kadaikodi/components/viz/lib/hooks.js +39 -0
  49. package/dist/kadaikodi/components/viz/lib/hooks.js.map +1 -0
  50. package/dist/kadaikodi/components/viz/lib/palette.js +27 -0
  51. package/dist/kadaikodi/components/viz/lib/palette.js.map +1 -0
  52. package/dist/kadaikodi/hooks/useKadaikodiApi.js +84 -6
  53. package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
  54. package/dist/kadaikodi/pages/HomePage.js +373 -631
  55. package/dist/kadaikodi/pages/HomePage.js.map +1 -1
  56. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +304 -169
  57. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
  58. package/dist/kadaikodi/pages/admin/AdminDashboard.js +255 -271
  59. package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
  60. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +185 -125
  61. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
  62. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +141 -102
  63. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
  64. package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
  65. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +332 -276
  66. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
  67. package/dist/kadaikodi/pages/admin/CartManagementPage.js +564 -729
  68. package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
  69. package/dist/kadaikodi/pages/admin/UserManagementPage.js +310 -366
  70. package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
  71. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +201 -120
  72. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  73. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +290 -257
  74. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  75. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +173 -194
  76. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  77. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +270 -228
  78. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  79. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +194 -173
  80. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  81. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +428 -347
  82. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  83. package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js +332 -0
  84. package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js.map +1 -0
  85. package/dist/kadaikodi/pages/cart-owner/MerchantOnboardingPage.js +373 -0
  86. package/dist/kadaikodi/pages/cart-owner/MerchantOnboardingPage.js.map +1 -0
  87. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +294 -162
  88. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
  89. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +180 -181
  90. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
  91. package/dist/kadaikodi/pages/common/HelpSupportPage.js +310 -317
  92. package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
  93. package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
  94. package/dist/kadaikodi/pages/common/SettingsPage.js +502 -586
  95. package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
  96. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +239 -156
  97. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
  98. package/dist/kadaikodi/pages/customer/CartDetailPage.js +405 -248
  99. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  100. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +258 -232
  101. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
  102. package/dist/kadaikodi/pages/customer/CheckoutPage.js +254 -205
  103. package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
  104. package/dist/kadaikodi/pages/customer/CustomerDashboard.js +5 -5
  105. package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
  106. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +189 -199
  107. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
  108. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +272 -230
  109. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
  110. package/dist/kadaikodi/pages/customer/FavoritesPage.js +150 -413
  111. package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
  112. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +173 -134
  113. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
  114. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +411 -305
  115. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  116. package/dist/kadaikodi/pages/customer/ReviewsPage.js +310 -406
  117. package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
  118. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
  119. package/dist/kadaikodi/pages/customer/shared.js +181 -0
  120. package/dist/kadaikodi/pages/customer/shared.js.map +1 -0
  121. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +438 -311
  122. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
  123. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +320 -293
  124. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  125. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +159 -91
  126. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  127. package/dist/kadaikodi/pages/investor/InvestorDashboard.js +137 -107
  128. package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
  129. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +157 -135
  130. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  131. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +280 -206
  132. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
  133. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +441 -514
  134. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
  135. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +428 -431
  136. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  137. package/dist/kadaikodi/pages/worker/WorkerDashboard.js +328 -445
  138. package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
  139. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +141 -164
  140. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
  141. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +360 -288
  142. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
  143. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +303 -281
  144. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
  145. package/package.json +1 -1
@@ -3,37 +3,32 @@ import { cn as t } from "../../utils/cn.js";
3
3
  import { PageLayout as n } from "../../components/PageLayout.js";
4
4
  import { StatusBadge as r } from "../../components/StatusBadge.js";
5
5
  import { EmptyState as i } from "../../components/EmptyState.js";
6
- import { useOrder as a } from "../../hooks/useKadaikodiApi.js";
7
- import { formatCurrency as o, formatDate as s } from "../../utils/formatters.js";
8
- import { ArrowLeft as c, CheckCircle2 as l, ChefHat as u, Circle as d, Clock as f, MapPin as p, MessageCircle as m, Package as h, Phone as g, ShoppingBag as _, Star as v, Truck as y, XCircle as b } from "lucide-react";
9
- import { useParams as x } from "react-router-dom";
10
- import { jsx as S, jsxs as C } from "react/jsx-runtime";
11
- import { GlassCard as w, PagePurpose as T } from "@burdenoff/fe-libs/ui";
6
+ import { useCreateReview as a, useOrder as o } from "../../hooks/useKadaikodiApi.js";
7
+ import { formatCurrency as s, formatDate as c } from "../../utils/formatters.js";
8
+ import { Timeline as l } from "../../components/viz/Timeline.js";
9
+ import "../../components/viz/index.js";
10
+ import { StylizedRouteMap as u } from "./shared.js";
11
+ import { useState as d } from "react";
12
+ import { ArrowLeft as f, CheckCircle2 as p, Clock as m, Loader2 as h, MapPin as g, MessageCircle as _, Phone as v, ShoppingBag as y, Star as b, X as x, XCircle as S } from "lucide-react";
13
+ import { useParams as C } from "react-router-dom";
14
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
15
+ import { GlassCard as E, PagePurpose as D } from "@burdenoff/fe-libs/ui";
12
16
  //#region src/kadaikodi/pages/customer/OrderTrackingPage.tsx
13
- var E = {
14
- pending: f,
15
- confirmed: l,
16
- preparing: u,
17
- ready: h,
18
- picked_up: h,
19
- out_for_delivery: y,
20
- delivered: l,
21
- cancelled: b
22
- }, D = [
17
+ var O = [
23
18
  "pending",
24
19
  "confirmed",
25
20
  "preparing",
26
21
  "ready",
27
22
  "out_for_delivery",
28
23
  "delivered"
29
- ], O = {
24
+ ], k = {
30
25
  pending: "Order Placed",
31
26
  confirmed: "Confirmed",
32
27
  preparing: "Preparing",
33
28
  ready: "Ready",
34
29
  out_for_delivery: "Out for Delivery",
35
30
  delivered: "Delivered"
36
- }, k = {
31
+ }, A = {
37
32
  pending: "Your order has been received",
38
33
  confirmed: "Cart has accepted your order",
39
34
  preparing: "Your food is being prepared",
@@ -41,348 +36,459 @@ var E = {
41
36
  out_for_delivery: "Your order is on the way",
42
37
  delivered: "Order has been delivered"
43
38
  };
44
- function A() {
45
- let { orderId: u } = x(), { navigateTo: h } = e(), { data: y, isLoading: A } = a(u);
46
- if (A) return /* @__PURE__ */ S(n, {
39
+ function j() {
40
+ let { orderId: j } = C(), { navigateTo: M, currentUser: N } = e(), { data: P, isLoading: F } = o(j), I = a(), [L, R] = d(!1), [z, B] = d(5), [V, H] = d(""), [U, W] = d(null), G = (e) => {
41
+ W(e), setTimeout(() => W(null), 3e3);
42
+ }, K = () => {
43
+ if (!P || !N?.id) {
44
+ G("Please sign in to rate this order.");
45
+ return;
46
+ }
47
+ I.mutate({
48
+ providerId: P.cartId,
49
+ orderId: P.id,
50
+ customerId: N.id,
51
+ rating: z,
52
+ review: V.trim() || void 0
53
+ }, {
54
+ onSuccess: () => {
55
+ R(!1), H(""), G("Thanks! Your rating has been submitted.");
56
+ },
57
+ onError: () => G("Could not submit your rating. Please try again.")
58
+ });
59
+ };
60
+ if (F) return /* @__PURE__ */ w(n, {
47
61
  title: "Track Order",
48
- children: /* @__PURE__ */ C("div", {
62
+ children: /* @__PURE__ */ T("div", {
49
63
  className: "flex flex-col items-center justify-center py-16 text-center",
50
- children: [/* @__PURE__ */ S("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-foreground mx-auto mb-4" }), /* @__PURE__ */ S("p", {
64
+ children: [/* @__PURE__ */ w("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-foreground mx-auto mb-4" }), /* @__PURE__ */ w("p", {
51
65
  className: "text-sm text-text-secondary",
52
66
  children: "Loading order details..."
53
67
  })]
54
68
  })
55
69
  });
56
- if (!y) return /* @__PURE__ */ S(n, {
70
+ if (!P) return /* @__PURE__ */ w(n, {
57
71
  title: "Order Not Found",
58
- children: /* @__PURE__ */ S(i, {
59
- icon: /* @__PURE__ */ S(_, { className: "h-12 w-12" }),
72
+ children: /* @__PURE__ */ w(i, {
73
+ icon: /* @__PURE__ */ w(y, { className: "h-12 w-12" }),
60
74
  title: "Order not found",
61
75
  description: "The order you're looking for doesn't exist.",
62
- action: /* @__PURE__ */ S("button", {
76
+ action: /* @__PURE__ */ w("button", {
63
77
  type: "button",
64
- onClick: () => h("/customer/orders"),
78
+ onClick: () => M("/customer/orders"),
65
79
  className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
66
80
  children: "View All Orders"
67
81
  })
68
82
  })
69
83
  });
70
- let j = D.indexOf(y.status), M = y.status === "cancelled", N = y.status === "delivered", P = (e) => D.indexOf(e) <= j, F = (e) => e === y.status;
71
- return /* @__PURE__ */ C(n, {
72
- title: /* @__PURE__ */ C("div", {
84
+ let q = O.indexOf(P.status), J = P.status === "cancelled", Y = P.status === "delivered", X = P.estimatedDeliveryTime ? Math.max(0, Math.round((new Date(P.estimatedDeliveryTime).getTime() - Date.now()) / 6e4)) : null, Z = q < 0 ? 0 : q / (O.length - 1), Q = O.map((e, n) => {
85
+ let r = n < q ? "success" : n === q ? "accent" : "muted", i = n === q;
86
+ return {
87
+ id: e,
88
+ title: k[e],
89
+ tone: r,
90
+ meta: /* @__PURE__ */ w("span", {
91
+ className: t(i ? "text-text-primary" : void 0),
92
+ children: A[e]
93
+ })
94
+ };
95
+ });
96
+ return /* @__PURE__ */ T(n, {
97
+ title: /* @__PURE__ */ T("div", {
73
98
  className: "flex items-center gap-3",
74
- children: [/* @__PURE__ */ S("button", {
99
+ children: [/* @__PURE__ */ w("button", {
75
100
  type: "button",
76
- onClick: () => h("/customer/orders"),
101
+ onClick: () => M("/customer/orders"),
77
102
  className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
78
- children: /* @__PURE__ */ S(c, { className: "h-5 w-5" })
79
- }), /* @__PURE__ */ S("span", { children: "Track Order" })]
103
+ children: /* @__PURE__ */ w(f, { className: "h-5 w-5" })
104
+ }), /* @__PURE__ */ w("span", { children: "Track Order" })]
80
105
  }),
81
- actions: /* @__PURE__ */ S(r, { status: y.status }),
82
- children: [/* @__PURE__ */ S(T, {
83
- className: "mb-6",
84
- children: "Follow your order in real time — see exactly where it is from kitchen to doorstep, who's delivering it, and reach out for help if anything looks off. The live status updates as your order moves through each stage."
85
- }), /* @__PURE__ */ C("div", {
86
- className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
87
- children: [/* @__PURE__ */ C("div", {
88
- className: "lg:col-span-2 space-y-6",
89
- children: [
90
- /* @__PURE__ */ C(w, {
91
- treatment: "glass",
92
- glow: !0,
93
- className: "p-5",
94
- children: [/* @__PURE__ */ C("div", {
95
- className: "flex flex-col sm:flex-row sm:justify-between sm:items-start gap-3",
96
- children: [/* @__PURE__ */ C("div", {
97
- className: "flex-1",
98
- children: [
99
- /* @__PURE__ */ C("h2", {
100
- className: "text-lg font-semibold text-text-primary",
101
- children: ["Order #", y.id]
102
- }),
103
- /* @__PURE__ */ S("p", {
104
- className: "text-sm text-text-secondary",
105
- children: y.cartName
106
- }),
107
- /* @__PURE__ */ S("p", {
108
- className: "text-xs text-text-secondary mt-0.5",
109
- children: s(y.orderDate)
110
- })
111
- ]
112
- }), /* @__PURE__ */ C("div", {
113
- className: "text-left sm:text-right",
114
- children: [/* @__PURE__ */ S("p", {
115
- className: "text-xl font-bold text-text-primary",
116
- children: o(y.total, { minimumFractionDigits: 0 })
117
- }), /* @__PURE__ */ S("p", {
118
- className: "text-xs text-text-secondary uppercase",
119
- children: y.paymentMethod
120
- })]
121
- })]
122
- }), M ? /* @__PURE__ */ C("div", {
123
- className: "mt-4 flex items-start gap-3 rounded-lg bg-status-error-bg/10 p-4 border border-status-error-border/20",
124
- children: [/* @__PURE__ */ S(b, { className: "h-5 w-5 text-status-error-text mt-0.5 shrink-0" }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
125
- className: "font-medium text-status-error-text",
126
- children: "Order Cancelled"
127
- }), y.cancellationReason && /* @__PURE__ */ S("p", {
128
- className: "text-sm text-status-error-text/80 mt-0.5",
129
- children: y.cancellationReason
130
- })] })]
131
- }) : /* @__PURE__ */ C("div", {
132
- className: t("mt-4 flex items-start gap-3 rounded-lg p-4 border", N ? "bg-status-success-bg-subtle border-status-success-text/20" : "bg-[var(--color-accent-soft)] border-border-focus/20"),
133
- children: [N ? /* @__PURE__ */ S(l, { className: "h-5 w-5 text-status-success-text mt-0.5 shrink-0" }) : /* @__PURE__ */ S(f, { className: "h-5 w-5 text-text-primary mt-0.5 shrink-0" }), /* @__PURE__ */ S("p", {
134
- className: t("text-sm font-medium", N ? "text-status-success-text" : "text-text-primary"),
135
- children: N ? `Delivered at ${s(y.actualDeliveryTime)}` : y.estimatedDeliveryTime ? `Estimated delivery by ${s(y.estimatedDeliveryTime)}` : "Estimated delivery time: TBD"
136
- })]
137
- })]
138
- }),
139
- !M && /* @__PURE__ */ C("div", {
140
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
141
- children: [/* @__PURE__ */ S("h3", {
142
- className: "text-base font-semibold text-text-primary mb-5",
143
- children: "Order Status"
144
- }), /* @__PURE__ */ S("div", {
145
- className: "relative space-y-0",
146
- children: D.map((e, n) => {
147
- let r = P(e), i = F(e), a = n === D.length - 1, o = E[e] ?? d;
148
- return /* @__PURE__ */ C("div", {
149
- className: "flex items-start relative",
106
+ actions: /* @__PURE__ */ w(r, { status: P.status }),
107
+ children: [
108
+ /* @__PURE__ */ w(D, {
109
+ className: "mb-6",
110
+ children: "Follow your order in real time — see exactly where it is from kitchen to doorstep, who's delivering it, and reach out for help if anything looks off. The live status updates as your order moves through each stage."
111
+ }),
112
+ /* @__PURE__ */ T("div", {
113
+ className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
114
+ children: [/* @__PURE__ */ T("div", {
115
+ className: "lg:col-span-2 space-y-6",
116
+ children: [
117
+ /* @__PURE__ */ T(E, {
118
+ treatment: "glass",
119
+ glow: !0,
120
+ className: "p-5",
121
+ children: [/* @__PURE__ */ T("div", {
122
+ className: "flex flex-col sm:flex-row sm:justify-between sm:items-start gap-3",
123
+ children: [/* @__PURE__ */ T("div", {
124
+ className: "flex-1",
150
125
  children: [
151
- !a && /* @__PURE__ */ S("div", { className: t("absolute left-5 top-10 w-0.5 h-8 z-0", r ? "bg-status-success-text" : "bg-border") }),
152
- /* @__PURE__ */ S("div", {
153
- className: t("relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full", r ? "bg-status-success-bg-subtle border-2 border-status-success-text text-status-success-text" : "bg-bg-sunken border-2 border-border-subtle text-text-secondary", i && "ring-4 ring-status-success-text/20"),
154
- children: /* @__PURE__ */ S(o, { className: "h-4 w-4" })
126
+ /* @__PURE__ */ T("h2", {
127
+ className: "text-lg font-semibold text-text-primary",
128
+ children: ["Order #", P.id]
155
129
  }),
156
- /* @__PURE__ */ C("div", {
157
- className: "ml-4 flex-1 pb-8",
130
+ /* @__PURE__ */ w("p", {
131
+ className: "text-sm text-text-secondary",
132
+ children: P.cartName
133
+ }),
134
+ /* @__PURE__ */ w("p", {
135
+ className: "text-xs text-text-secondary mt-0.5",
136
+ children: c(P.orderDate)
137
+ })
138
+ ]
139
+ }), /* @__PURE__ */ T("div", {
140
+ className: "text-left sm:text-right",
141
+ children: [/* @__PURE__ */ w("p", {
142
+ className: "text-xl font-bold text-text-primary",
143
+ children: s(P.total, { minimumFractionDigits: 0 })
144
+ }), /* @__PURE__ */ w("p", {
145
+ className: "text-xs text-text-secondary uppercase",
146
+ children: P.paymentMethod
147
+ })]
148
+ })]
149
+ }), J ? /* @__PURE__ */ T("div", {
150
+ className: "mt-4 flex items-start gap-3 rounded-lg bg-status-error-bg/10 p-4 border border-status-error-border/20",
151
+ children: [/* @__PURE__ */ w(S, { className: "h-5 w-5 text-status-error-text mt-0.5 shrink-0" }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
152
+ className: "font-medium text-status-error-text",
153
+ children: "Order Cancelled"
154
+ }), P.cancellationReason && /* @__PURE__ */ w("p", {
155
+ className: "text-sm text-status-error-text/80 mt-0.5",
156
+ children: P.cancellationReason
157
+ })] })]
158
+ }) : /* @__PURE__ */ T("div", {
159
+ className: t("mt-4 flex items-start gap-3 rounded-lg p-4 border", Y ? "bg-status-success-bg-subtle border-status-success-text/20" : "bg-[var(--color-accent-soft)] border-border-focus/20"),
160
+ children: [Y ? /* @__PURE__ */ w(p, { className: "h-5 w-5 text-status-success-text mt-0.5 shrink-0" }) : /* @__PURE__ */ w(m, { className: "h-5 w-5 text-text-primary mt-0.5 shrink-0" }), /* @__PURE__ */ w("p", {
161
+ className: t("text-sm font-medium", Y ? "text-status-success-text" : "text-text-primary"),
162
+ children: Y ? `Delivered at ${c(P.actualDeliveryTime)}` : P.estimatedDeliveryTime ? `Estimated delivery by ${c(P.estimatedDeliveryTime)}` : "Estimated delivery time: TBD"
163
+ })]
164
+ })]
165
+ }),
166
+ !J && /* @__PURE__ */ T("div", {
167
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
168
+ children: [
169
+ /* @__PURE__ */ T("div", {
170
+ className: "mb-4 flex flex-wrap items-center justify-between gap-2",
171
+ children: [/* @__PURE__ */ w("h3", {
172
+ className: "text-base font-semibold text-text-primary",
173
+ children: "Order Status"
174
+ }), !Y && X != null && /* @__PURE__ */ T("span", {
175
+ className: "inline-flex items-center gap-1.5 rounded-full bg-[var(--color-accent-soft)] px-3 py-1 text-sm font-semibold text-accent-primary",
176
+ children: [
177
+ /* @__PURE__ */ w(m, { className: "h-3.5 w-3.5" }),
178
+ "Arriving in ~",
179
+ X,
180
+ " min"
181
+ ]
182
+ })]
183
+ }),
184
+ /* @__PURE__ */ w(u, {
185
+ progress: Z,
186
+ originLabel: P.cartName,
187
+ destinationLabel: "You",
188
+ className: "mb-6 h-44"
189
+ }),
190
+ /* @__PURE__ */ w(l, { items: Q })
191
+ ]
192
+ }),
193
+ /* @__PURE__ */ T("div", {
194
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
195
+ children: [
196
+ /* @__PURE__ */ w("h3", {
197
+ className: "text-base font-semibold text-text-primary mb-3",
198
+ children: "Order Items"
199
+ }),
200
+ /* @__PURE__ */ w("div", {
201
+ className: "space-y-2",
202
+ children: P.items.map((e, t) => /* @__PURE__ */ T("div", {
203
+ className: "flex justify-between items-start pb-2 border-b border-border-subtle last:border-b-0",
204
+ children: [/* @__PURE__ */ T("div", {
205
+ className: "flex-1 pr-2",
158
206
  children: [
159
- /* @__PURE__ */ S("h4", {
160
- className: t("text-sm font-semibold", r ? "text-text-primary" : "text-text-secondary"),
161
- children: O[e]
207
+ /* @__PURE__ */ w("p", {
208
+ className: "text-sm font-medium text-text-primary",
209
+ children: e.name
162
210
  }),
163
- /* @__PURE__ */ S("p", {
164
- className: t("text-xs", r ? "text-text-secondary" : "text-text-secondary/50"),
165
- children: k[e]
211
+ e.customizations && e.customizations.length > 0 && /* @__PURE__ */ w("p", {
212
+ className: "text-xs text-text-secondary",
213
+ children: e.customizations.join(", ")
166
214
  }),
167
- i && y.assignedWorker && /* @__PURE__ */ C("div", {
168
- className: "mt-1.5 text-xs text-text-primary",
169
- children: [/* @__PURE__ */ C("p", { children: ["Driver: ", y.assignedWorker.name] }), /* @__PURE__ */ C("p", { children: ["Contact: ", y.assignedWorker.phone] })]
215
+ /* @__PURE__ */ T("p", {
216
+ className: "text-xs text-text-secondary",
217
+ children: [
218
+ s(e.price, { minimumFractionDigits: 0 }),
219
+ " x ",
220
+ e.quantity
221
+ ]
170
222
  })
171
223
  ]
224
+ }), /* @__PURE__ */ w("p", {
225
+ className: "text-sm font-medium text-text-primary",
226
+ children: s(e.price * e.quantity, { minimumFractionDigits: 0 })
227
+ })]
228
+ }, t))
229
+ }),
230
+ /* @__PURE__ */ T("div", {
231
+ className: "mt-4 pt-4 border-t border-border-subtle space-y-2 text-sm",
232
+ children: [
233
+ /* @__PURE__ */ T("div", {
234
+ className: "flex justify-between text-text-secondary",
235
+ children: [/* @__PURE__ */ w("span", { children: "Subtotal" }), /* @__PURE__ */ w("span", { children: s(P.subtotal, { minimumFractionDigits: 0 }) })]
236
+ }),
237
+ /* @__PURE__ */ T("div", {
238
+ className: "flex justify-between text-text-secondary",
239
+ children: [/* @__PURE__ */ w("span", { children: "Delivery Fee" }), /* @__PURE__ */ w("span", { children: P.deliveryFee === 0 ? "FREE" : s(P.deliveryFee, { minimumFractionDigits: 0 }) })]
240
+ }),
241
+ /* @__PURE__ */ T("div", {
242
+ className: "flex justify-between text-text-secondary",
243
+ children: [/* @__PURE__ */ w("span", { children: "Tax" }), /* @__PURE__ */ w("span", { children: s(P.taxes, { minimumFractionDigits: 0 }) })]
244
+ }),
245
+ P.discount && P.discount > 0 && /* @__PURE__ */ T("div", {
246
+ className: "flex justify-between text-status-success-text",
247
+ children: [/* @__PURE__ */ w("span", { children: "Discount" }), /* @__PURE__ */ T("span", { children: ["-", s(P.discount, { minimumFractionDigits: 0 })] })]
248
+ }),
249
+ /* @__PURE__ */ T("div", {
250
+ className: "flex justify-between font-semibold pt-2 border-t border-border-subtle text-text-primary",
251
+ children: [/* @__PURE__ */ w("span", { children: "Total" }), /* @__PURE__ */ w("span", { children: s(P.total, { minimumFractionDigits: 0 }) })]
172
252
  })
173
253
  ]
174
- }, e);
175
- })
176
- })]
177
- }),
178
- /* @__PURE__ */ C("div", {
179
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
180
- children: [
181
- /* @__PURE__ */ S("h3", {
254
+ })
255
+ ]
256
+ })
257
+ ]
258
+ }), /* @__PURE__ */ T("div", {
259
+ className: "lg:col-span-1 space-y-6",
260
+ children: [
261
+ /* @__PURE__ */ T("div", {
262
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
263
+ children: [/* @__PURE__ */ w("h3", {
182
264
  className: "text-base font-semibold text-text-primary mb-3",
183
- children: "Order Items"
184
- }),
185
- /* @__PURE__ */ S("div", {
186
- className: "space-y-2",
187
- children: y.items.map((e, t) => /* @__PURE__ */ C("div", {
188
- className: "flex justify-between items-start pb-2 border-b border-border-subtle last:border-b-0",
189
- children: [/* @__PURE__ */ C("div", {
190
- className: "flex-1 pr-2",
191
- children: [
192
- /* @__PURE__ */ S("p", {
265
+ children: "Delivery Details"
266
+ }), /* @__PURE__ */ T("div", {
267
+ className: "space-y-3",
268
+ children: [
269
+ /* @__PURE__ */ T("div", {
270
+ className: "flex items-start gap-2",
271
+ children: [/* @__PURE__ */ w(g, { className: "mt-0.5 h-4 w-4 shrink-0 text-text-secondary" }), /* @__PURE__ */ T("div", { children: [
272
+ /* @__PURE__ */ w("p", {
273
+ className: "text-xs text-text-secondary",
274
+ children: "Delivery Address"
275
+ }),
276
+ /* @__PURE__ */ w("p", {
193
277
  className: "text-sm font-medium text-text-primary",
194
- children: e.name
278
+ children: P.deliveryAddress.street
195
279
  }),
196
- e.customizations && e.customizations.length > 0 && /* @__PURE__ */ S("p", {
197
- className: "text-xs text-text-secondary",
198
- children: e.customizations.join(", ")
280
+ /* @__PURE__ */ w("p", {
281
+ className: "text-sm text-text-secondary",
282
+ children: P.deliveryAddress.area
199
283
  }),
200
- /* @__PURE__ */ C("p", {
201
- className: "text-xs text-text-secondary",
284
+ /* @__PURE__ */ T("p", {
285
+ className: "text-sm text-text-secondary",
202
286
  children: [
203
- o(e.price, { minimumFractionDigits: 0 }),
204
- " x ",
205
- e.quantity
287
+ P.deliveryAddress.city,
288
+ ", ",
289
+ P.deliveryAddress.pincode
206
290
  ]
291
+ }),
292
+ P.deliveryAddress.landmark && /* @__PURE__ */ T("p", {
293
+ className: "text-xs text-text-secondary mt-0.5",
294
+ children: ["Landmark: ", P.deliveryAddress.landmark]
207
295
  })
208
- ]
209
- }), /* @__PURE__ */ S("p", {
210
- className: "text-sm font-medium text-text-primary",
211
- children: o(e.price * e.quantity, { minimumFractionDigits: 0 })
212
- })]
213
- }, t))
214
- }),
215
- /* @__PURE__ */ C("div", {
216
- className: "mt-4 pt-4 border-t border-border-subtle space-y-2 text-sm",
217
- children: [
218
- /* @__PURE__ */ C("div", {
219
- className: "flex justify-between text-text-secondary",
220
- children: [/* @__PURE__ */ S("span", { children: "Subtotal" }), /* @__PURE__ */ S("span", { children: o(y.subtotal, { minimumFractionDigits: 0 }) })]
221
- }),
222
- /* @__PURE__ */ C("div", {
223
- className: "flex justify-between text-text-secondary",
224
- children: [/* @__PURE__ */ S("span", { children: "Delivery Fee" }), /* @__PURE__ */ S("span", { children: y.deliveryFee === 0 ? "FREE" : o(y.deliveryFee, { minimumFractionDigits: 0 }) })]
225
- }),
226
- /* @__PURE__ */ C("div", {
227
- className: "flex justify-between text-text-secondary",
228
- children: [/* @__PURE__ */ S("span", { children: "Tax" }), /* @__PURE__ */ S("span", { children: o(y.taxes, { minimumFractionDigits: 0 }) })]
229
- }),
230
- y.discount && y.discount > 0 && /* @__PURE__ */ C("div", {
231
- className: "flex justify-between text-status-success-text",
232
- children: [/* @__PURE__ */ S("span", { children: "Discount" }), /* @__PURE__ */ C("span", { children: ["-", o(y.discount, { minimumFractionDigits: 0 })] })]
296
+ ] })]
233
297
  }),
234
- /* @__PURE__ */ C("div", {
235
- className: "flex justify-between font-semibold pt-2 border-t border-border-subtle text-text-primary",
236
- children: [/* @__PURE__ */ S("span", { children: "Total" }), /* @__PURE__ */ S("span", { children: o(y.total, { minimumFractionDigits: 0 }) })]
237
- })
238
- ]
239
- })
240
- ]
241
- })
242
- ]
243
- }), /* @__PURE__ */ C("div", {
244
- className: "lg:col-span-1 space-y-6",
245
- children: [
246
- /* @__PURE__ */ C("div", {
247
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
248
- children: [/* @__PURE__ */ S("h3", {
249
- className: "text-base font-semibold text-text-primary mb-3",
250
- children: "Delivery Details"
251
- }), /* @__PURE__ */ C("div", {
252
- className: "space-y-3",
253
- children: [
254
- /* @__PURE__ */ C("div", {
255
- className: "flex items-start gap-2",
256
- children: [/* @__PURE__ */ S(p, { className: "mt-0.5 h-4 w-4 shrink-0 text-text-secondary" }), /* @__PURE__ */ C("div", { children: [
257
- /* @__PURE__ */ S("p", {
298
+ P.customerNotes && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
299
+ className: "text-xs text-text-secondary",
300
+ children: "Customer Notes"
301
+ }), /* @__PURE__ */ w("p", {
302
+ className: "text-sm text-text-primary",
303
+ children: P.customerNotes
304
+ })] }),
305
+ /* @__PURE__ */ T("div", { children: [
306
+ /* @__PURE__ */ w("p", {
258
307
  className: "text-xs text-text-secondary",
259
- children: "Delivery Address"
308
+ children: "Payment Method"
260
309
  }),
261
- /* @__PURE__ */ S("p", {
262
- className: "text-sm font-medium text-text-primary",
263
- children: y.deliveryAddress.street
310
+ /* @__PURE__ */ w("p", {
311
+ className: "text-sm font-medium text-text-primary capitalize",
312
+ children: P.paymentMethod
264
313
  }),
265
- /* @__PURE__ */ S("p", {
266
- className: "text-sm text-text-secondary",
267
- children: y.deliveryAddress.area
314
+ /* @__PURE__ */ w("p", {
315
+ className: "text-xs text-text-secondary",
316
+ children: P.paymentStatus === "completed" ? "Paid" : "Payment Pending"
317
+ })
318
+ ] })
319
+ ]
320
+ })]
321
+ }),
322
+ P.assignedWorker && /* @__PURE__ */ T("div", {
323
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
324
+ children: [/* @__PURE__ */ w("h3", {
325
+ className: "text-base font-semibold text-text-primary mb-3",
326
+ children: "Delivery Partner"
327
+ }), /* @__PURE__ */ T("div", {
328
+ className: "space-y-3",
329
+ children: [/* @__PURE__ */ T("div", {
330
+ className: "flex items-center gap-3",
331
+ children: [
332
+ /* @__PURE__ */ w("div", {
333
+ className: "flex h-10 w-10 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
334
+ children: /* @__PURE__ */ w("span", {
335
+ className: "text-sm font-semibold",
336
+ children: P.assignedWorker.name.charAt(0)
337
+ })
268
338
  }),
269
- /* @__PURE__ */ C("p", {
270
- className: "text-sm text-text-secondary",
271
- children: [
272
- y.deliveryAddress.city,
273
- ", ",
274
- y.deliveryAddress.pincode
275
- ]
339
+ /* @__PURE__ */ T("div", {
340
+ className: "flex-1 min-w-0",
341
+ children: [/* @__PURE__ */ w("p", {
342
+ className: "text-sm font-medium text-text-primary",
343
+ children: P.assignedWorker.name
344
+ }), /* @__PURE__ */ T("div", {
345
+ className: "flex items-center gap-1.5 mt-0.5",
346
+ children: [/* @__PURE__ */ w(b, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ T("span", {
347
+ className: "text-xs text-text-secondary",
348
+ children: [P.assignedWorker.rating, "/5"]
349
+ })]
350
+ })]
276
351
  }),
277
- y.deliveryAddress.landmark && /* @__PURE__ */ C("p", {
278
- className: "text-xs text-text-secondary mt-0.5",
279
- children: ["Landmark: ", y.deliveryAddress.landmark]
352
+ /* @__PURE__ */ w("a", {
353
+ href: `tel:${P.assignedWorker.phone}`,
354
+ className: "flex h-9 w-9 items-center justify-center rounded-full bg-bg-sunken text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
355
+ children: /* @__PURE__ */ w(v, { className: "h-4 w-4" })
280
356
  })
281
- ] })]
282
- }),
283
- y.customerNotes && /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
284
- className: "text-xs text-text-secondary",
285
- children: "Customer Notes"
286
- }), /* @__PURE__ */ S("p", {
287
- className: "text-sm text-text-primary",
288
- children: y.customerNotes
289
- })] }),
290
- /* @__PURE__ */ C("div", { children: [
291
- /* @__PURE__ */ S("p", {
292
- className: "text-xs text-text-secondary",
293
- children: "Payment Method"
294
- }),
295
- /* @__PURE__ */ S("p", {
296
- className: "text-sm font-medium text-text-primary capitalize",
297
- children: y.paymentMethod
298
- }),
299
- /* @__PURE__ */ S("p", {
300
- className: "text-xs text-text-secondary",
301
- children: y.paymentStatus === "completed" ? "Paid" : "Payment Pending"
302
- })
303
- ] })
304
- ]
305
- })]
306
- }),
307
- y.assignedWorker && /* @__PURE__ */ C("div", {
308
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
309
- children: [/* @__PURE__ */ S("h3", {
310
- className: "text-base font-semibold text-text-primary mb-3",
311
- children: "Delivery Partner"
312
- }), /* @__PURE__ */ C("div", {
313
- className: "space-y-3",
314
- children: [/* @__PURE__ */ C("div", {
315
- className: "flex items-center gap-3",
357
+ ]
358
+ }), /* @__PURE__ */ T("div", {
359
+ className: "grid grid-cols-2 gap-2",
360
+ children: [/* @__PURE__ */ T("a", {
361
+ href: `tel:${P.assignedWorker.phone}`,
362
+ className: "flex items-center justify-center gap-2 rounded-lg bg-action-primary-bg px-3 py-2.5 text-sm font-semibold text-action-primary-text hover:bg-action-primary-bg-hover transition-colors",
363
+ children: [/* @__PURE__ */ w(v, { className: "h-4 w-4" }), "Call"]
364
+ }), /* @__PURE__ */ T("button", {
365
+ type: "button",
366
+ disabled: !0,
367
+ title: "In-app chat is coming soon",
368
+ className: "flex items-center justify-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-sm font-medium text-text-secondary cursor-not-allowed opacity-70",
369
+ children: [/* @__PURE__ */ w(_, { className: "h-4 w-4" }), "Chat"]
370
+ })]
371
+ })]
372
+ })]
373
+ }),
374
+ /* @__PURE__ */ T("div", {
375
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
376
+ children: [/* @__PURE__ */ w("h3", {
377
+ className: "text-base font-semibold text-text-primary mb-3",
378
+ children: "Need Help?"
379
+ }), /* @__PURE__ */ T("div", {
380
+ className: "space-y-2",
316
381
  children: [
317
- /* @__PURE__ */ S("div", {
318
- className: "flex h-10 w-10 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
319
- children: /* @__PURE__ */ S("span", {
320
- className: "text-sm font-semibold",
321
- children: y.assignedWorker.name.charAt(0)
322
- })
382
+ /* @__PURE__ */ T("a", {
383
+ href: "mailto:support@kadaikodi.com",
384
+ className: "w-full flex items-center justify-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
385
+ children: [/* @__PURE__ */ w(_, { className: "h-4 w-4" }), "Email Support"]
323
386
  }),
324
- /* @__PURE__ */ C("div", {
325
- className: "flex-1 min-w-0",
326
- children: [/* @__PURE__ */ S("p", {
327
- className: "text-sm font-medium text-text-primary",
328
- children: y.assignedWorker.name
329
- }), /* @__PURE__ */ C("div", {
330
- className: "flex items-center gap-1.5 mt-0.5",
331
- children: [/* @__PURE__ */ S(v, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ C("span", {
332
- className: "text-xs text-text-secondary",
333
- children: [y.assignedWorker.rating, "/5"]
334
- })]
335
- })]
387
+ /* @__PURE__ */ T("button", {
388
+ type: "button",
389
+ onClick: () => window.location.href = "tel:7012270561",
390
+ className: "w-full flex items-center justify-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
391
+ children: [/* @__PURE__ */ w(v, { className: "h-4 w-4" }), "Call Support"]
336
392
  }),
337
- /* @__PURE__ */ S("a", {
338
- href: `tel:${y.assignedWorker.phone}`,
339
- className: "flex h-9 w-9 items-center justify-center rounded-full bg-bg-sunken text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
340
- children: /* @__PURE__ */ S(g, { className: "h-4 w-4" })
393
+ Y && !P.rating && /* @__PURE__ */ T("button", {
394
+ type: "button",
395
+ onClick: () => R(!0),
396
+ className: "w-full flex items-center justify-center gap-2 rounded-lg bg-foreground px-3 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
397
+ children: [/* @__PURE__ */ w(b, { className: "h-4 w-4" }), "Rate Order"]
341
398
  })
342
399
  ]
343
- }), /* @__PURE__ */ C("button", {
344
- type: "button",
345
- onClick: () => window.location.href = `tel:${y.assignedWorker.phone}`,
346
- className: "w-full flex items-center justify-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
347
- children: [/* @__PURE__ */ S(g, { className: "h-4 w-4" }), "Call Driver"]
348
400
  })]
349
- })]
350
- }),
351
- /* @__PURE__ */ C("div", {
352
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
353
- children: [/* @__PURE__ */ S("h3", {
354
- className: "text-base font-semibold text-text-primary mb-3",
355
- children: "Need Help?"
356
- }), /* @__PURE__ */ C("div", {
357
- className: "space-y-2",
358
- children: [
359
- /* @__PURE__ */ C("button", {
401
+ })
402
+ ]
403
+ })]
404
+ }),
405
+ U && /* @__PURE__ */ T("div", {
406
+ className: "fixed bottom-4 left-1/2 z-50 -translate-x-1/2 rounded-lg border border-status-success-text/30 bg-status-success-bg-subtle px-4 py-3 shadow-lg flex items-center gap-2",
407
+ children: [/* @__PURE__ */ w(p, { className: "h-4 w-4 text-status-success-text shrink-0" }), /* @__PURE__ */ w("p", {
408
+ className: "text-sm text-status-success-text",
409
+ children: U
410
+ })]
411
+ }),
412
+ L && /* @__PURE__ */ w("div", {
413
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
414
+ children: /* @__PURE__ */ w("div", {
415
+ className: "w-full max-w-md rounded-lg border border-border-subtle bg-bg-surface shadow-lg",
416
+ children: /* @__PURE__ */ T("div", {
417
+ className: "p-5",
418
+ children: [
419
+ /* @__PURE__ */ T("div", {
420
+ className: "flex items-center justify-between mb-4",
421
+ children: [/* @__PURE__ */ w("h3", {
422
+ className: "text-lg font-semibold text-text-primary",
423
+ children: "Rate your order"
424
+ }), /* @__PURE__ */ w("button", {
360
425
  type: "button",
361
- onClick: () => alert("Chat support coming soon!"),
362
- className: "w-full flex items-center justify-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
363
- children: [/* @__PURE__ */ S(m, { className: "h-4 w-4" }), "Chat Support"]
364
- }),
365
- /* @__PURE__ */ C("button", {
426
+ onClick: () => R(!1),
427
+ className: "rounded-md p-2 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
428
+ children: /* @__PURE__ */ w(x, { className: "h-4 w-4" })
429
+ })]
430
+ }),
431
+ /* @__PURE__ */ T("div", {
432
+ className: "mb-4",
433
+ children: [/* @__PURE__ */ w("label", {
434
+ className: "block text-sm font-medium text-text-primary mb-2",
435
+ children: "Your rating"
436
+ }), /* @__PURE__ */ w("div", {
437
+ className: "flex items-center gap-1",
438
+ children: [
439
+ 1,
440
+ 2,
441
+ 3,
442
+ 4,
443
+ 5
444
+ ].map((e) => /* @__PURE__ */ w("button", {
445
+ type: "button",
446
+ onClick: () => B(e),
447
+ className: "p-0.5",
448
+ "aria-label": `${e} star${e > 1 ? "s" : ""}`,
449
+ children: /* @__PURE__ */ w(b, { className: t("h-7 w-7", e <= z ? "fill-status-warning-text text-status-warning-text" : "fill-none text-text-secondary/40") })
450
+ }, e))
451
+ })]
452
+ }),
453
+ /* @__PURE__ */ T("div", {
454
+ className: "mb-5",
455
+ children: [/* @__PURE__ */ T("label", {
456
+ className: "block text-sm font-medium text-text-primary mb-1.5",
457
+ children: ["Review ", /* @__PURE__ */ w("span", {
458
+ className: "text-text-secondary font-normal",
459
+ children: "(optional)"
460
+ })]
461
+ }), /* @__PURE__ */ w("textarea", {
462
+ rows: 4,
463
+ value: V,
464
+ onChange: (e) => H(e.target.value),
465
+ placeholder: "How was your order?",
466
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] resize-none"
467
+ })]
468
+ }),
469
+ /* @__PURE__ */ T("div", {
470
+ className: "flex items-center gap-3",
471
+ children: [/* @__PURE__ */ T("button", {
366
472
  type: "button",
367
- onClick: () => window.location.href = "tel:7012270561",
368
- className: "w-full flex items-center justify-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
369
- children: [/* @__PURE__ */ S(g, { className: "h-4 w-4" }), "Call Support"]
370
- }),
371
- N && !y.rating && /* @__PURE__ */ C("button", {
473
+ onClick: K,
474
+ disabled: I.isPending,
475
+ className: t("flex-1 inline-flex items-center justify-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background transition-opacity", I.isPending ? "opacity-60 cursor-not-allowed" : "hover:opacity-90"),
476
+ children: [I.isPending && /* @__PURE__ */ w(h, { className: "h-4 w-4 animate-spin" }), "Submit Rating"]
477
+ }), /* @__PURE__ */ w("button", {
372
478
  type: "button",
373
- onClick: () => h(`/customer/orders/${y.id}/rate`),
374
- className: "w-full flex items-center justify-center gap-2 rounded-lg bg-foreground px-3 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
375
- children: [/* @__PURE__ */ S(v, { className: "h-4 w-4" }), "Rate Order"]
376
- })
377
- ]
378
- })]
479
+ onClick: () => R(!1),
480
+ className: "rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
481
+ children: "Cancel"
482
+ })]
483
+ })
484
+ ]
379
485
  })
380
- ]
381
- })]
382
- })]
486
+ })
487
+ })
488
+ ]
383
489
  });
384
490
  }
385
491
  //#endregion
386
- export { A as OrderTrackingPage };
492
+ export { j as OrderTrackingPage };
387
493
 
388
494
  //# sourceMappingURL=OrderTrackingPage.js.map