@burdenoff/microfe-movethewheels 2026.703.3 → 2026.703.4

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 (125) hide show
  1. package/dist/{AIAssistantPage-C3cPsWt-.js → AIAssistantPage-3YOnHO9Y.js} +3 -3
  2. package/dist/{AnalyticsPage-Dz6g2MvK.js → AnalyticsPage-CMpI1070.js} +11 -11
  3. package/dist/CreateOrderPage-DRAgGo9i.js +490 -0
  4. package/dist/CustomerDetailsPage-BCeMmOFe.js +615 -0
  5. package/dist/{CustomersPage-BKxMS1AV.js → CustomersPage-CaNBMXmM.js} +64 -53
  6. package/dist/{DashboardPage-BVjQi0EB.js → DashboardPage-DIKlXde3.js} +16 -16
  7. package/dist/DataTable-XvUcTjwi.js +340 -0
  8. package/dist/DocumentsCard-U2lSe-cn.js +169 -0
  9. package/dist/{DriverDetailsPage-CN3WQ0B9.js → DriverDetailsPage-BQrYd_Lp.js} +178 -195
  10. package/dist/{DriversPage-CH9rjQC-.js → DriversPage-PYmdFiby.js} +65 -54
  11. package/dist/FinancePage-Cwh9Bw4M.js +136 -0
  12. package/dist/{FleetPage-DqkFi3s3.js → FleetPage-3ZHsB-TN.js} +23 -22
  13. package/dist/{FormError-BlOjnXOq.js → FormError-cuLV2jVD.js} +1 -1
  14. package/dist/{ImportExportPage-DKJRCezl.js → ImportExportPage-C6f7DqhM.js} +50 -70
  15. package/dist/{InventoryPage-e0ze63iX.js → InventoryPage-DpiqVu1v.js} +8 -8
  16. package/dist/{LiveTrackingPage-DCX-K-LR.js → LiveTrackingPage-FAzzlVnX.js} +9 -9
  17. package/dist/MarketplacePage-Bh_2ns4v.js +426 -0
  18. package/dist/Notice-CSoDYKw9.js +46 -0
  19. package/dist/OrderDetailsPage-zCj0lW0j.js +584 -0
  20. package/dist/{OrdersListPage-Cn90P1Xx.js → OrdersListPage-CAMsuUck.js} +166 -89
  21. package/dist/{ProductDetailsPage-C9uOiYLp.js → ProductDetailsPage-wsxAQkA0.js} +12 -12
  22. package/dist/{ProductsPage-QJfHHpqB.js → ProductsPage-DC5qDLfz.js} +60 -49
  23. package/dist/ReportsPage-BwUJ37eO.js +356 -0
  24. package/dist/RouteDetailsPage-DyMJE9AS.js +583 -0
  25. package/dist/{RoutesPage-DMfoicM1.js → RoutesPage-Dtc669yc.js} +57 -46
  26. package/dist/{SettingsPage-Bn-v0mbQ.js → SettingsPage-CpH9xhQg.js} +5 -27
  27. package/dist/{TrackingPage-W-jtdM3Y.js → TrackingPage-DaNEFG_h.js} +10 -10
  28. package/dist/{VehicleDetailsPage-Bceo5oz3.js → VehicleDetailsPage-DldYNsYV.js} +125 -142
  29. package/dist/{VehiclesPage-ApKThYeG.js → VehiclesPage-BFw13iMt.js} +61 -50
  30. package/dist/{WarehouseDetailsPage-L_6sWigM.js → WarehouseDetailsPage-CMG7or6G.js} +17 -17
  31. package/dist/{WarehousesPage-DCbXXXWE.js → WarehousesPage-Wkytnt86.js} +58 -47
  32. package/dist/arrow-right-Q3XQpTPR.js +11 -0
  33. package/dist/arrow-up-xNF1zJUG.js +17 -0
  34. package/dist/chevron-left-B2_r0Elx.js +8 -0
  35. package/dist/{wrench-CANXWxF-.js → fuel-B6_lnKDs.js} +2 -5
  36. package/dist/index.js +163 -174
  37. package/dist/upload-CHZofOqb.js +21 -0
  38. package/dist/{useAnalytics-DS8n0xgg.js → useAnalytics-D7HW2XRb.js} +52 -2
  39. package/dist/{useCustomers-BmTNGxiI.js → useCustomers-BPW4__PR.js} +29 -26
  40. package/dist/{useFleet-DKqXZ16m.js → useFleet-ChBkxAd6.js} +81 -69
  41. package/dist/{useInventory-DkyiVY_A.js → useInventory-CAAVMRp6.js} +83 -38
  42. package/dist/{useOrders-Cfk1GLiq.js → useOrders-B465S2nt.js} +58 -47
  43. package/dist/{useReports-CTqZr-AB.js → useReports-jQ3GpNOm.js} +40 -34
  44. package/dist/{useRoutes-BQWO607N.js → useRoutes-hS3d5-xr.js} +49 -41
  45. package/dist/{useTracking-B-va1kO3.js → useTracking-RjGz9PZG.js} +2 -2
  46. package/dist/user-check-BEKRCi7v.js +20 -0
  47. package/dist/wrench-q_rgJfaP.js +8 -0
  48. package/dist/x-tMeDMcCw.js +11 -0
  49. package/package.json +1 -1
  50. package/src/movethewheels/components/DataTable.tsx +252 -84
  51. package/src/movethewheels/components/DocumentsCard.tsx +102 -0
  52. package/src/movethewheels/components/Notice.tsx +61 -0
  53. package/src/movethewheels/components/index.ts +7 -0
  54. package/src/movethewheels/hooks/index.ts +9 -0
  55. package/src/movethewheels/hooks/useAnalytics.ts +95 -0
  56. package/src/movethewheels/hooks/useCustomers.ts +11 -4
  57. package/src/movethewheels/hooks/useEntityDocuments.ts +132 -0
  58. package/src/movethewheels/hooks/useFleet.ts +26 -7
  59. package/src/movethewheels/hooks/useInventory.ts +70 -7
  60. package/src/movethewheels/hooks/useOrders.ts +32 -2
  61. package/src/movethewheels/hooks/useReports.ts +14 -4
  62. package/src/movethewheels/hooks/useRoutes.ts +20 -3
  63. package/src/movethewheels/pages/AnalyticsPage.tsx +2 -2
  64. package/src/movethewheels/pages/CreateOrderPage.tsx +44 -16
  65. package/src/movethewheels/pages/CustomerDetailsPage.tsx +239 -33
  66. package/src/movethewheels/pages/CustomersPage.tsx +27 -11
  67. package/src/movethewheels/pages/DriverDetailsPage.tsx +16 -30
  68. package/src/movethewheels/pages/DriversPage.tsx +26 -9
  69. package/src/movethewheels/pages/FinancePage.tsx +67 -84
  70. package/src/movethewheels/pages/MarketplacePage.tsx +265 -50
  71. package/src/movethewheels/pages/OrderDetailsPage.tsx +214 -10
  72. package/src/movethewheels/pages/OrdersListPage.tsx +76 -13
  73. package/src/movethewheels/pages/ProductsPage.tsx +27 -7
  74. package/src/movethewheels/pages/ReportsPage.tsx +65 -4
  75. package/src/movethewheels/pages/RouteDetailsPage.tsx +74 -13
  76. package/src/movethewheels/pages/RoutesPage.tsx +22 -6
  77. package/src/movethewheels/pages/SettingsPage.tsx +3 -19
  78. package/src/movethewheels/pages/VehicleDetailsPage.tsx +3 -33
  79. package/src/movethewheels/pages/VehiclesPage.tsx +26 -5
  80. package/src/movethewheels/pages/WarehousesPage.tsx +22 -17
  81. package/src/movethewheels/types/index.ts +8 -0
  82. package/src/movethewheels/utils/download.ts +62 -0
  83. package/dist/CreateOrderPage-C5iwnjp4.js +0 -479
  84. package/dist/CustomerDetailsPage-B6nwFyLO.js +0 -406
  85. package/dist/DataTable-DmciIKKM.js +0 -249
  86. package/dist/FinancePage-DEDykSOP.js +0 -158
  87. package/dist/MarketplacePage-CIQ97_zp.js +0 -247
  88. package/dist/OrderDetailsPage-DYiZ-9UK.js +0 -429
  89. package/dist/ReportsPage-Zp53q3_8.js +0 -284
  90. package/dist/RouteDetailsPage-DUStXSf9.js +0 -531
  91. /package/dist/{MetricCard-BY0QrMD4.js → MetricCard-CVBVpu7o.js} +0 -0
  92. /package/dist/{StatusBadge-BZurYHMy.js → StatusBadge-C87mDpDP.js} +0 -0
  93. /package/dist/{box-D9Pal4HM.js → box-Eu05PXDh.js} +0 -0
  94. /package/dist/{chart-column-BFIJysDR.js → chart-column-ouzgxIv_.js} +0 -0
  95. /package/dist/{chevron-right-EMIIyyJ1.js → chevron-right-eV4LjaSi.js} +0 -0
  96. /package/dist/{circle-alert-iY24lSlp.js → circle-alert-Bzh2DBSF.js} +0 -0
  97. /package/dist/{circle-check-big-w0TrLKMF.js → circle-check-big-CGMSpQmD.js} +0 -0
  98. /package/dist/{clock-DJZtdl8u.js → clock-Bl3ptexL.js} +0 -0
  99. /package/dist/{dollar-sign-CgKQRz_e.js → dollar-sign-CAVU95SO.js} +0 -0
  100. /package/dist/{download-DRXxoiQR.js → download-C5NbvVDc.js} +0 -0
  101. /package/dist/{file-text-DWWY6_f5.js → file-text-D-1uvLZG.js} +0 -0
  102. /package/dist/{filter-DloLC2eE.js → filter-DUfUg6BO.js} +0 -0
  103. /package/dist/{formatters-CF2S2l1m.js → formatters-BQr-aR5W.js} +0 -0
  104. /package/dist/{map-CkJaULb2.js → map-C-M-FQLR.js} +0 -0
  105. /package/dist/{map-pin-BGiCvyCs.js → map-pin-Dznl5l40.js} +0 -0
  106. /package/dist/{navigation-D36prnAn.js → navigation-BJSJl-VG.js} +0 -0
  107. /package/dist/{package-BChUzpJS.js → package-CcRttV2N.js} +0 -0
  108. /package/dist/{phone-Ac9s3mo_.js → phone-DVSZHt_j.js} +0 -0
  109. /package/dist/{plus-Z76q-FZm.js → plus-C_XZDwBz.js} +0 -0
  110. /package/dist/{refresh-cw-DKt6f5T6.js → refresh-cw-CfgN67l3.js} +0 -0
  111. /package/dist/{save-CojywNhG.js → save-DJE8Fpdv.js} +0 -0
  112. /package/dist/{search-CDGefqb3.js → search-D_VyGcZT.js} +0 -0
  113. /package/dist/{square-pen-CopE9GmB.js → square-pen-D-6JYrVQ.js} +0 -0
  114. /package/dist/{star-nHlLjDKR.js → star-BpRlUZuU.js} +0 -0
  115. /package/dist/{store-BR9Voi5E.js → store-B-8HMuyZ.js} +0 -0
  116. /package/dist/{trash-2-BKhar6Hs.js → trash-2-8vmv-XV_.js} +0 -0
  117. /package/dist/{trending-up-Dohgd4t_.js → trending-up-Dz6PqPRj.js} +0 -0
  118. /package/dist/{triangle-alert-i-XQL9Rd.js → triangle-alert-D7Y3J_4z.js} +0 -0
  119. /package/dist/{truck-C0v_hbLR.js → truck-D-y2IDzv.js} +0 -0
  120. /package/dist/{useAssistant-D4v3oxD3.js → useAssistant-DVW4QgQb.js} +0 -0
  121. /package/dist/{useImportExport-DHr-SWSw.js → useImportExport-DrPDHEDK.js} +0 -0
  122. /package/dist/{useSettings-CkDH_-gM.js → useSettings-BB8X2RLh.js} +0 -0
  123. /package/dist/{user-jyFU3lXk.js → user-DzfTn4dE.js} +0 -0
  124. /package/dist/{users-DZ-ilS6B.js → users-CCrq-w0C.js} +0 -0
  125. /package/dist/{warehouse-6m5kXMLu.js → warehouse-CaqfmMKh.js} +0 -0
@@ -1,158 +0,0 @@
1
- import { d as e, f as t, g as n, h as r, i, lt as a, u as o } from "./PageLayout-D4LDHJJq.js";
2
- import { t as s } from "./dollar-sign-CgKQRz_e.js";
3
- import { t as c } from "./download-DRXxoiQR.js";
4
- import { t as l } from "./file-text-DWWY6_f5.js";
5
- import { t as u } from "./trending-up-Dohgd4t_.js";
6
- import { n as d } from "./useOrders-Cfk1GLiq.js";
7
- import { t as f } from "./useAnalytics-DS8n0xgg.js";
8
- import { r as p, t as m } from "./MetricCard-BY0QrMD4.js";
9
- import { n as h } from "./formatters-CF2S2l1m.js";
10
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
11
- import { EmphasisPanel as v, IllustratedEmptyState as y, PagePurpose as b } from "@burdenoff/fe-libs/ui";
12
- //#region node_modules/lucide-react/dist/esm/icons/credit-card.js
13
- var x = a("CreditCard", [["rect", {
14
- width: "20",
15
- height: "14",
16
- x: "2",
17
- y: "5",
18
- rx: "2",
19
- key: "ynyp8z"
20
- }], ["line", {
21
- x1: "2",
22
- x2: "22",
23
- y1: "10",
24
- y2: "10",
25
- key: "1b3vmo"
26
- }]]);
27
- //#endregion
28
- //#region src/movethewheels/pages/FinancePage.tsx
29
- function S() {
30
- let { analytics: a } = f(), { stats: S } = d(), C = S.totalRevenue * .15, w = S.totalRevenue * .85;
31
- return /* @__PURE__ */ _(i, {
32
- title: "Finance",
33
- subtitle: "Financial overview and reports",
34
- icon: /* @__PURE__ */ g(s, { size: 24 }),
35
- headerActions: /* @__PURE__ */ _("div", {
36
- className: "flex gap-2",
37
- children: [/* @__PURE__ */ _(o, {
38
- variant: "outline",
39
- children: [/* @__PURE__ */ g(l, { size: 16 }), " Invoices"]
40
- }), /* @__PURE__ */ _(o, {
41
- variant: "outline",
42
- children: [/* @__PURE__ */ g(c, { size: 16 }), " Export"]
43
- })]
44
- }),
45
- children: [
46
- /* @__PURE__ */ g(b, {
47
- icon: /* @__PURE__ */ g(s, { size: 18 }),
48
- children: "Follow the money behind your deliveries. See revenue earned, what's been collected versus still owed, and average order value — use it to chase pending payments, forecast cash flow, and confirm which shipments have actually been paid for."
49
- }),
50
- /* @__PURE__ */ _(p, {
51
- columns: 4,
52
- children: [
53
- /* @__PURE__ */ g(m, {
54
- treatment: "glass",
55
- glow: !0,
56
- label: "Total Revenue",
57
- value: h(a.overview.totalRevenue),
58
- icon: /* @__PURE__ */ g(s, { size: 20 }),
59
- change: "+12.5%",
60
- changeType: "positive",
61
- trend: "up"
62
- }),
63
- /* @__PURE__ */ g(m, {
64
- label: "Completed",
65
- value: h(w),
66
- icon: /* @__PURE__ */ g(u, { size: 20 }),
67
- changeType: "positive"
68
- }),
69
- /* @__PURE__ */ g(m, {
70
- label: "Pending",
71
- value: h(C),
72
- icon: /* @__PURE__ */ g(x, { size: 20 }),
73
- changeType: "neutral"
74
- }),
75
- /* @__PURE__ */ g(m, {
76
- label: "Avg Order Value",
77
- value: h(S.avgOrderValue),
78
- icon: /* @__PURE__ */ g(s, { size: 20 })
79
- })
80
- ]
81
- }),
82
- /* @__PURE__ */ _("div", {
83
- className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
84
- children: [/* @__PURE__ */ _(e, { children: [/* @__PURE__ */ g(r, { children: /* @__PURE__ */ g(n, { children: "Revenue by Month" }) }), /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g("div", {
85
- className: "space-y-4",
86
- children: a.trends.revenue.map((e) => /* @__PURE__ */ _("div", {
87
- className: "flex items-center justify-between p-3 bg-bg-sunken/50 rounded-lg",
88
- children: [/* @__PURE__ */ _("span", {
89
- className: "font-medium",
90
- children: [e.month, " 2024"]
91
- }), /* @__PURE__ */ g("span", {
92
- className: "text-lg font-bold",
93
- children: h(e.revenue)
94
- })]
95
- }, e.month))
96
- }) })] }), /* @__PURE__ */ _(v, {
97
- className: "space-y-4",
98
- children: [/* @__PURE__ */ g("h2", {
99
- className: "text-base font-semibold text-text-primary",
100
- children: "Payment Status"
101
- }), /* @__PURE__ */ _("div", {
102
- className: "space-y-4",
103
- children: [/* @__PURE__ */ _("div", {
104
- className: "flex items-center justify-between p-4 bg-status-success-bg/10 rounded-lg",
105
- children: [/* @__PURE__ */ _("div", {
106
- className: "flex items-center gap-3",
107
- children: [/* @__PURE__ */ g("div", {
108
- className: "w-10 h-10 rounded-full bg-status-success-bg/20 flex items-center justify-center",
109
- children: /* @__PURE__ */ g(u, {
110
- size: 20,
111
- className: "text-status-success-text"
112
- })
113
- }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
114
- className: "font-medium",
115
- children: "Paid"
116
- }), /* @__PURE__ */ _("p", {
117
- className: "text-sm text-text-secondary",
118
- children: [S.byStatus.delivered, " orders"]
119
- })] })]
120
- }), /* @__PURE__ */ g("span", {
121
- className: "text-xl font-bold text-status-success-text",
122
- children: h(w)
123
- })]
124
- }), /* @__PURE__ */ _("div", {
125
- className: "flex items-center justify-between p-4 bg-status-warning-bg/10 rounded-lg",
126
- children: [/* @__PURE__ */ _("div", {
127
- className: "flex items-center gap-3",
128
- children: [/* @__PURE__ */ g("div", {
129
- className: "w-10 h-10 rounded-full bg-status-warning-bg/20 flex items-center justify-center",
130
- children: /* @__PURE__ */ g(x, {
131
- size: 20,
132
- className: "text-status-warning-text"
133
- })
134
- }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
135
- className: "font-medium",
136
- children: "Pending"
137
- }), /* @__PURE__ */ _("p", {
138
- className: "text-sm text-text-secondary",
139
- children: [S.byStatus.pending + S.byStatus.in_transit, " orders"]
140
- })] })]
141
- }), /* @__PURE__ */ g("span", {
142
- className: "text-xl font-bold text-status-warning-text",
143
- children: h(C)
144
- })]
145
- })]
146
- })]
147
- })]
148
- }),
149
- /* @__PURE__ */ _(e, { children: [/* @__PURE__ */ g(r, { children: /* @__PURE__ */ g(n, { children: "Recent Transactions" }) }), /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g(y, {
150
- illustration: "empty-data",
151
- title: "No transactions yet",
152
- description: "Once payments are processed, your transaction history will appear here. Connect a payment gateway to start recording transactions."
153
- }) })] })
154
- ]
155
- });
156
- }
157
- //#endregion
158
- export { S as default };
@@ -1,247 +0,0 @@
1
- import { A as e, B as t, d as n, f as r, g as i, h as a, i as o, it as s, l as c, ot as l, u } from "./PageLayout-D4LDHJJq.js";
2
- import { t as d } from "./clock-DJZtdl8u.js";
3
- import { t as f } from "./filter-DloLC2eE.js";
4
- import { t as p } from "./map-pin-BGiCvyCs.js";
5
- import { t as m } from "./search-CDGefqb3.js";
6
- import { t as h } from "./star-nHlLjDKR.js";
7
- import { t as g } from "./store-BR9Voi5E.js";
8
- import { n as _ } from "./formatters-CF2S2l1m.js";
9
- import { useCallback as v, useEffect as y, useMemo as b, useState as x } from "react";
10
- import { jsx as S, jsxs as C } from "react/jsx-runtime";
11
- import { EmphasisPanel as w, IllustratedEmptyState as T, PagePurpose as E } from "@burdenoff/fe-libs/ui";
12
- //#region src/movethewheels/pages/MarketplacePage.tsx
13
- var D = "\n query ListServiceProviders($filter: ServiceProviderFilterInput, $pagination: PaginationInput) {\n serviceProviders(filter: $filter, pagination: $pagination) {\n id\n name\n type\n description\n rating\n isVerified\n isActive\n services\n contactInfo\n }\n }\n", O = "\n query ListServiceOfferings($filter: ServiceOfferingFilterInput, $pagination: PaginationInput) {\n serviceOfferings(filter: $filter, pagination: $pagination) {\n id\n providerId\n name\n description\n category\n price\n currency\n availability\n provider {\n id\n name\n type\n rating\n }\n }\n }\n";
14
- function k() {
15
- let { apiGatewayUrl: k, authToken: A, workspaceToken: j, workspaceId: M, tenantId: N, currentUser: P } = l(), [F, I] = x([]), [L, R] = x([]), [z, B] = x(""), [V, H] = x(!1), [U, W] = x(null), G = b(() => ({
16
- apiGatewayUrl: k,
17
- authToken: A,
18
- workspaceToken: j,
19
- workspaceId: M,
20
- tenantId: N,
21
- actorId: P?.id
22
- }), [
23
- k,
24
- A,
25
- j,
26
- M,
27
- N,
28
- P?.id
29
- ]), K = v(async () => {
30
- H(!0), W(null);
31
- try {
32
- let [e, t] = await Promise.all([s(G, D, { pagination: {
33
- limit: 200,
34
- offset: 0
35
- } }), s(G, O, { pagination: {
36
- limit: 200,
37
- offset: 0
38
- } })]);
39
- I(e.serviceProviders), R(t.serviceOfferings);
40
- } catch (e) {
41
- W(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load marketplace"));
42
- } finally {
43
- H(!1);
44
- }
45
- }, [G]);
46
- y(() => {
47
- K();
48
- }, [K]);
49
- let q = b(() => {
50
- let e = z.trim().toLowerCase();
51
- return e ? F.filter((t) => t.name.toLowerCase().includes(e) || (t.description ?? "").toLowerCase().includes(e) || t.type.toLowerCase().includes(e)) : F;
52
- }, [F, z]), J = b(() => {
53
- let e = z.trim().toLowerCase();
54
- return e ? L.filter((t) => t.name.toLowerCase().includes(e) || (t.description ?? "").toLowerCase().includes(e) || (t.category ?? "").toLowerCase().includes(e)) : L;
55
- }, [L, z]);
56
- return /* @__PURE__ */ C(o, {
57
- title: "Marketplace",
58
- subtitle: "Find logistics service providers",
59
- icon: /* @__PURE__ */ S(g, { size: 24 }),
60
- headerActions: /* @__PURE__ */ C(u, {
61
- variant: "outline",
62
- children: [/* @__PURE__ */ S(f, { size: 16 }), " Filters"]
63
- }),
64
- children: [
65
- /* @__PURE__ */ S(E, {
66
- icon: /* @__PURE__ */ S(g, { size: 18 }),
67
- children: "Don't own every leg of the journey? Find vetted third-party logistics providers and service offerings here — compare ratings, verification status and pricing, then engage a partner to cover routes, warehousing or specialised handling you can't do in-house."
68
- }),
69
- /* @__PURE__ */ S(n, { children: /* @__PURE__ */ S(r, {
70
- className: "p-4",
71
- children: /* @__PURE__ */ C("div", {
72
- className: "relative",
73
- children: [/* @__PURE__ */ S(m, {
74
- className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary",
75
- size: 20
76
- }), /* @__PURE__ */ S(e, {
77
- placeholder: "Search services, providers, locations...",
78
- className: "pl-10",
79
- value: z,
80
- onChange: (e) => B(e.target.value)
81
- })]
82
- })
83
- }) }),
84
- /* @__PURE__ */ C("div", {
85
- className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
86
- children: [/* @__PURE__ */ C("div", {
87
- className: "lg:col-span-2 space-y-4",
88
- children: [
89
- /* @__PURE__ */ C("h3", {
90
- className: "font-semibold",
91
- children: [
92
- "Service Providers (",
93
- q.length,
94
- ")"
95
- ]
96
- }),
97
- U && !V && /* @__PURE__ */ S(n, {
98
- className: "border-status-error-border",
99
- children: /* @__PURE__ */ C(r, {
100
- className: "p-6 text-center space-y-3",
101
- children: [
102
- /* @__PURE__ */ S("p", {
103
- className: "text-status-error-text font-medium",
104
- children: "Couldn't load providers"
105
- }),
106
- /* @__PURE__ */ S("p", {
107
- className: "text-sm text-text-secondary",
108
- children: U.message
109
- }),
110
- /* @__PURE__ */ S(u, {
111
- variant: "outline",
112
- onClick: () => void K(),
113
- children: "Retry"
114
- })
115
- ]
116
- })
117
- }),
118
- V && Array.from({ length: 3 }).map((e, n) => /* @__PURE__ */ S(t, { className: "h-32 w-full rounded-lg" }, n)),
119
- !V && !U && q.length === 0 && /* @__PURE__ */ S(n, { children: /* @__PURE__ */ S(r, {
120
- className: "p-0",
121
- children: /* @__PURE__ */ S(T, {
122
- illustration: z.trim() ? "empty-search" : "empty-people",
123
- title: z.trim() ? "No providers match your search" : "No providers yet",
124
- description: z.trim() ? "Try a different search term to find logistics partners." : "Verified logistics service providers will appear here as they join the marketplace."
125
- })
126
- }) }),
127
- !V && !U && q.map((e) => /* @__PURE__ */ S(n, {
128
- className: "hover:shadow-md transition-shadow",
129
- children: /* @__PURE__ */ S(r, {
130
- className: "p-6",
131
- children: /* @__PURE__ */ C("div", {
132
- className: "flex items-start justify-between",
133
- children: [/* @__PURE__ */ C("div", { children: [
134
- /* @__PURE__ */ C("div", {
135
- className: "flex items-center gap-2",
136
- children: [
137
- /* @__PURE__ */ S("h4", {
138
- className: "font-semibold text-lg",
139
- children: e.name
140
- }),
141
- e.isVerified && /* @__PURE__ */ S(c, {
142
- variant: "default",
143
- children: "Verified"
144
- }),
145
- /* @__PURE__ */ S(c, {
146
- variant: e.isActive ? "default" : "secondary",
147
- children: e.isActive ? "active" : "inactive"
148
- })
149
- ]
150
- }),
151
- /* @__PURE__ */ S("p", {
152
- className: "text-text-secondary mt-1",
153
- children: e.description
154
- }),
155
- /* @__PURE__ */ C("div", {
156
- className: "flex items-center gap-4 mt-3 text-sm text-text-secondary",
157
- children: [
158
- /* @__PURE__ */ C("span", {
159
- className: "flex items-center gap-1",
160
- children: [
161
- /* @__PURE__ */ S(h, {
162
- size: 14,
163
- className: "text-status-warning-text fill-current"
164
- }),
165
- " ",
166
- e.rating ?? 0
167
- ]
168
- }),
169
- /* @__PURE__ */ C("span", {
170
- className: "flex items-center gap-1",
171
- children: [
172
- /* @__PURE__ */ S(p, { size: 14 }),
173
- " ",
174
- e.type
175
- ]
176
- }),
177
- /* @__PURE__ */ C("span", {
178
- className: "flex items-center gap-1",
179
- children: [/* @__PURE__ */ S(d, { size: 14 }), " Listed"]
180
- })
181
- ]
182
- })
183
- ] }), /* @__PURE__ */ C("div", {
184
- className: "text-right",
185
- children: [/* @__PURE__ */ S("p", {
186
- className: "text-sm text-text-secondary",
187
- children: "Services"
188
- }), /* @__PURE__ */ S("p", {
189
- className: "text-lg font-bold",
190
- children: Array.isArray(e.services) ? e.services.length : 0
191
- })]
192
- })]
193
- })
194
- })
195
- }, e.id))
196
- ]
197
- }), /* @__PURE__ */ C(w, {
198
- className: "space-y-4",
199
- children: [
200
- /* @__PURE__ */ S("h3", {
201
- className: "text-base font-semibold text-text-primary",
202
- children: "Popular Services"
203
- }),
204
- J.length === 0 && /* @__PURE__ */ S(T, {
205
- illustration: z.trim() ? "empty-search" : "empty-generic",
206
- title: z.trim() ? "No matching services" : "No services listed yet",
207
- description: z.trim() ? "Adjust your search to discover service offerings." : "Service offerings from providers will be listed here."
208
- }),
209
- J.map((e) => /* @__PURE__ */ C(n, { children: [/* @__PURE__ */ S(a, { children: /* @__PURE__ */ S(i, {
210
- className: "text-base",
211
- children: e.name
212
- }) }), /* @__PURE__ */ C(r, { children: [
213
- /* @__PURE__ */ S("p", {
214
- className: "text-sm text-text-secondary mb-3",
215
- children: e.description
216
- }),
217
- /* @__PURE__ */ C("div", {
218
- className: "flex flex-wrap gap-1 mb-3",
219
- children: [/* @__PURE__ */ S(c, {
220
- variant: "outline",
221
- className: "text-xs",
222
- children: e.category ?? "general"
223
- }), /* @__PURE__ */ S(c, {
224
- variant: "outline",
225
- className: "text-xs",
226
- children: e.provider?.name ?? "provider"
227
- })]
228
- }),
229
- /* @__PURE__ */ C("div", {
230
- className: "flex items-center justify-between",
231
- children: [/* @__PURE__ */ S("span", {
232
- className: "font-bold",
233
- children: _(e.price)
234
- }), /* @__PURE__ */ S("span", {
235
- className: "text-sm text-text-secondary",
236
- children: e.currency
237
- })]
238
- })
239
- ] })] }, e.id))
240
- ]
241
- })]
242
- })
243
- ]
244
- });
245
- }
246
- //#endregion
247
- export { k as default };