@burdenoff/microfe-movethewheels 2026.626.2 → 2026.703.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/{AIAssistantPage-AvsMbunM.js → AIAssistantPage-C3ovZ0Fh.js} +100 -73
  2. package/dist/AnalyticsPage-O8SpY-V4.js +215 -0
  3. package/dist/{CreateOrderPage-CjlnEtk3.js → CreateOrderPage-CB1_-_mN.js} +33 -35
  4. package/dist/{CustomerDetailsPage-I6cdDHUi.js → CustomerDetailsPage-BaeKEI1D.js} +42 -44
  5. package/dist/{CustomersPage-CGGfD4ki.js → CustomersPage-DRaLuHMC.js} +26 -28
  6. package/dist/{DashboardPage-D2HRqwg9.js → DashboardPage-DPjhNfKB.js} +85 -83
  7. package/dist/{DataTable-CD9ZhpLB.js → DataTable-DmciIKKM.js} +3 -3
  8. package/dist/{DriverDetailsPage-rg_pGNuP.js → DriverDetailsPage-CSSQTOzn.js} +52 -54
  9. package/dist/{DriversPage-DKiynISH.js → DriversPage-C2Bk0w4Q.js} +24 -26
  10. package/dist/{FinancePage-Vg8WPs38.js → FinancePage-lmp0Sdsw.js} +9 -9
  11. package/dist/FleetPage-DZn5pIqd.js +365 -0
  12. package/dist/ImportExportPage-BIUJZc7O.js +290 -0
  13. package/dist/InventoryPage-Cxh1zYJd.js +253 -0
  14. package/dist/{LiveTrackingPage-DQ1q4Id3.js → LiveTrackingPage-BY1yAkIt.js} +60 -56
  15. package/dist/MarketplacePage-RMuL17EA.js +247 -0
  16. package/dist/{MetricCard-B7yMyvMX.js → MetricCard-7aYgzZHK.js} +1 -1
  17. package/dist/{OrderDetailsPage-CFASgsYX.js → OrderDetailsPage-C2Mf4KSy.js} +83 -85
  18. package/dist/{OrdersListPage-BHeT8S5o.js → OrdersListPage-BrPBtnhp.js} +31 -33
  19. package/dist/{PageLayout-D3N8MCTm.js → PageLayout-D4LDHJJq.js} +483 -422
  20. package/dist/{ProductDetailsPage-CFGcbaHo.js → ProductDetailsPage-CezzzZcj.js} +27 -29
  21. package/dist/{ProductsPage--xEpbQ8A.js → ProductsPage-I5DilIoY.js} +21 -23
  22. package/dist/ReportsPage-BDXNmUng.js +284 -0
  23. package/dist/RouteDetailsPage-BcomL20M.js +263 -0
  24. package/dist/RoutesPage-lqX9ylHP.js +144 -0
  25. package/dist/SettingsPage-CQVIOaNs.js +421 -0
  26. package/dist/StatusBadge-NpTeHVlw.js +152 -0
  27. package/dist/{TrackingPage-CcRc_dva.js → TrackingPage-BXrjz7V8.js} +59 -61
  28. package/dist/{VehicleDetailsPage-3YDMPsPs.js → VehicleDetailsPage-DZjLcJgr.js} +40 -42
  29. package/dist/{VehiclesPage-UlxPWP9K.js → VehiclesPage-6W39XT5W.js} +19 -21
  30. package/dist/{WarehouseDetailsPage-Db7KeN-d.js → WarehouseDetailsPage-C10pgRGW.js} +38 -40
  31. package/dist/{WarehousesPage-CuTO-OPp.js → WarehousesPage-CHvBqNaQ.js} +15 -17
  32. package/dist/{arrow-left-CBpZKkpq.js → arrow-left-n48Y-Wis.js} +1 -1
  33. package/dist/{box-CAaiElsb.js → box-D9Pal4HM.js} +1 -1
  34. package/dist/{chart-column-D1Ym15-S.js → chart-column-BFIJysDR.js} +1 -1
  35. package/dist/{chevron-right-BIFGi0UA.js → chevron-right-EMIIyyJ1.js} +1 -1
  36. package/dist/{circle-alert-DjmNo5_L.js → circle-alert-iY24lSlp.js} +1 -1
  37. package/dist/{circle-check-big-CjuPVo3_.js → circle-check-big-w0TrLKMF.js} +1 -1
  38. package/dist/{clock-BjkdnddD.js → clock-DJZtdl8u.js} +1 -1
  39. package/dist/{dollar-sign-IB4O0wuQ.js → dollar-sign-CgKQRz_e.js} +1 -1
  40. package/dist/{download-Dpa9vqoG.js → download-DRXxoiQR.js} +1 -1
  41. package/dist/{file-text-C8Uioy11.js → file-text-DWWY6_f5.js} +1 -1
  42. package/dist/{filter-Da5OZaHI.js → filter-DloLC2eE.js} +1 -1
  43. package/dist/index.js +119 -111
  44. package/dist/{map-_Per4sT9.js → map-CkJaULb2.js} +1 -1
  45. package/dist/{map-pin-BSaf5IDL.js → map-pin-BGiCvyCs.js} +1 -1
  46. package/dist/{navigation-DaTbrhw2.js → navigation-D36prnAn.js} +1 -1
  47. package/dist/{package-BE7U0wQE.js → package-BChUzpJS.js} +1 -1
  48. package/dist/{phone-DV4StZiA.js → phone-Ac9s3mo_.js} +1 -1
  49. package/dist/{plus-Dl1rLeJR.js → plus-Z76q-FZm.js} +1 -1
  50. package/dist/{refresh-cw-CWfERAit.js → refresh-cw-DKt6f5T6.js} +1 -1
  51. package/dist/{save-XH8vydOn.js → save-CojywNhG.js} +1 -1
  52. package/dist/{search-OxoIiL_C.js → search-CDGefqb3.js} +1 -1
  53. package/dist/{square-pen-hLIbFQFV.js → square-pen-CopE9GmB.js} +1 -1
  54. package/dist/{star-YsVV3MNQ.js → star-nHlLjDKR.js} +1 -1
  55. package/dist/{store-RCBl7HB-.js → store-BR9Voi5E.js} +1 -1
  56. package/dist/{trending-up-C-85AwGT.js → trending-up-B7W-GL6P.js} +1 -1
  57. package/dist/{triangle-alert-BOhfGgmh.js → triangle-alert-BonHFFNz.js} +1 -1
  58. package/dist/{truck-CtDjNFbi.js → truck-DrlfSpRC.js} +1 -1
  59. package/dist/{useAnalytics-ph7eTIK6.js → useAnalytics-CgdzUfY_.js} +40 -40
  60. package/dist/useAssistant-D4v3oxD3.js +84 -0
  61. package/dist/{useCustomers-bS3a4ytk.js → useCustomers-QrlozybF.js} +24 -24
  62. package/dist/{useFleet-BdETplNE.js → useFleet-DiAC-IiH.js} +70 -67
  63. package/dist/useImportExport-BLMnAKCC.js +55 -0
  64. package/dist/{useInventory-Dwn18FPz.js → useInventory-DKoks37x.js} +33 -33
  65. package/dist/{useOrders-D_3_hGMp.js → useOrders-D3UZVy8Y.js} +42 -42
  66. package/dist/useReports-Puq4DCH9.js +78 -0
  67. package/dist/{useRoutes-v4aBaS-E.js → useRoutes-Do57LvRb.js} +31 -31
  68. package/dist/useSettings-CkDH_-gM.js +81 -0
  69. package/dist/{useTracking-De2KIUNu.js → useTracking-GJify4HN.js} +22 -22
  70. package/dist/{user-Dz5TJZFs.js → user-CjSoudeu.js} +1 -1
  71. package/dist/{users-g2N0eL-Z.js → users-BAM4gHTn.js} +1 -1
  72. package/dist/{warehouse-D3WWDeTX.js → warehouse-C7MSr47B.js} +1 -1
  73. package/dist/{wrench-CmxY1n4I.js → wrench-CANXWxF-.js} +1 -1
  74. package/package.json +1 -1
  75. package/src/movethewheels/MoveTheWheelsRoutes.tsx +27 -3
  76. package/src/movethewheels/components/StatusBadge.tsx +18 -37
  77. package/src/movethewheels/constants/index.ts +67 -26
  78. package/src/movethewheels/hooks/index.ts +12 -0
  79. package/src/movethewheels/hooks/useAnalytics.ts +20 -6
  80. package/src/movethewheels/hooks/useAssistant.ts +74 -0
  81. package/src/movethewheels/hooks/useFleet.ts +63 -59
  82. package/src/movethewheels/hooks/useImportExport.ts +101 -0
  83. package/src/movethewheels/hooks/useReports.ts +158 -0
  84. package/src/movethewheels/hooks/useSettings.ts +120 -0
  85. package/src/movethewheels/pages/AIAssistantPage.tsx +53 -15
  86. package/src/movethewheels/pages/AnalyticsPage.tsx +67 -64
  87. package/src/movethewheels/pages/CustomerDetailsPage.tsx +1 -1
  88. package/src/movethewheels/pages/CustomersPage.tsx +1 -1
  89. package/src/movethewheels/pages/DashboardPage.tsx +42 -22
  90. package/src/movethewheels/pages/DriverDetailsPage.tsx +1 -1
  91. package/src/movethewheels/pages/DriversPage.tsx +1 -1
  92. package/src/movethewheels/pages/FleetPage.tsx +96 -38
  93. package/src/movethewheels/pages/ImportExportPage.tsx +174 -68
  94. package/src/movethewheels/pages/InventoryPage.tsx +66 -28
  95. package/src/movethewheels/pages/LiveTrackingPage.tsx +12 -3
  96. package/src/movethewheels/pages/MarketplacePage.tsx +87 -45
  97. package/src/movethewheels/pages/OrderDetailsPage.tsx +2 -2
  98. package/src/movethewheels/pages/ReportsPage.tsx +194 -90
  99. package/src/movethewheels/pages/RouteDetailsPage.tsx +5 -11
  100. package/src/movethewheels/pages/RoutesPage.tsx +4 -9
  101. package/src/movethewheels/pages/SettingsPage.tsx +234 -56
  102. package/src/movethewheels/pages/TrackingPage.tsx +6 -6
  103. package/src/movethewheels/providers/MoveTheWheelsProvider.tsx +7 -6
  104. package/src/movethewheels/store/movethewheelsStore.ts +1 -1
  105. package/dist/AnalyticsPage-CCLfHgQZ.js +0 -212
  106. package/dist/FleetPage-DddXt8r8.js +0 -332
  107. package/dist/ImportExportPage-BW6qO3kc.js +0 -248
  108. package/dist/InventoryPage-rMGuaJN-.js +0 -222
  109. package/dist/MarketplacePage-DKrXAv62.js +0 -219
  110. package/dist/ReportsPage-Bb7_90rK.js +0 -235
  111. package/dist/RouteDetailsPage-CVtDVb1N.js +0 -282
  112. package/dist/RoutesPage-s57PtgcQ.js +0 -163
  113. package/dist/SettingsPage-BYNCBOpN.js +0 -298
  114. package/dist/StatusBadge-CijYQXtb.js +0 -209
  115. package/dist/graphqlClient-CdJyR_ed.js +0 -55
  116. package/dist/navigation-BgnOfsVd.js +0 -6
  117. package/dist/route-Dp9JiN_E.js +0 -51
  118. package/dist/settings-3Rw5NwFF.js +0 -28
  119. package/src/movethewheels/constants/mockData.ts +0 -1342
  120. /package/dist/{formatters-_vJlC-47.js → formatters-DhKZ-eA1.js} +0 -0
@@ -0,0 +1,421 @@
1
+ import { A as e, F as t, I as n, J as r, L as i, P as a, R as o, V as s, X as c, Y as l, Z as u, d, f, g as p, h as m, i as h, j as g, lt as _, p as v, u as y } from "./PageLayout-D4LDHJJq.js";
2
+ import { n as b, r as x, t as S } from "./useSettings-CkDH_-gM.js";
3
+ import { t as C } from "./save-CojywNhG.js";
4
+ import { t as w } from "./user-CjSoudeu.js";
5
+ import { useEffect as T, useMemo as E, useState as D } from "react";
6
+ import { jsx as O, jsxs as k } from "react/jsx-runtime";
7
+ import { EmphasisPanel as A, NextSteps as j, PagePurpose as M } from "@burdenoff/fe-libs/ui";
8
+ //#region node_modules/lucide-react/dist/esm/icons/bell.js
9
+ var N = _("Bell", [["path", {
10
+ d: "M10.268 21a2 2 0 0 0 3.464 0",
11
+ key: "vwvbt9"
12
+ }], ["path", {
13
+ d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",
14
+ key: "11g9vi"
15
+ }]]), P = _("Shield", [["path", {
16
+ d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
17
+ key: "oel41y"
18
+ }]]), F = _("Webhook", [
19
+ ["path", {
20
+ d: "M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",
21
+ key: "q3hayz"
22
+ }],
23
+ ["path", {
24
+ d: "m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",
25
+ key: "1go1hn"
26
+ }],
27
+ ["path", {
28
+ d: "m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",
29
+ key: "qlwsc0"
30
+ }]
31
+ ]), I = [
32
+ {
33
+ key: "googleMaps",
34
+ name: "Google Maps"
35
+ },
36
+ {
37
+ key: "stripe",
38
+ name: "Stripe"
39
+ },
40
+ {
41
+ key: "twilio",
42
+ name: "Twilio"
43
+ }
44
+ ], L = [
45
+ {
46
+ key: "orderUpdates",
47
+ label: "Order updates",
48
+ desc: "Receive notifications for order status changes"
49
+ },
50
+ {
51
+ key: "deliveryAlerts",
52
+ label: "Delivery alerts",
53
+ desc: "Get notified about delivery issues"
54
+ },
55
+ {
56
+ key: "systemNotifications",
57
+ label: "System notifications",
58
+ desc: "Important system updates and maintenance"
59
+ },
60
+ {
61
+ key: "weeklyReports",
62
+ label: "Weekly reports",
63
+ desc: "Receive weekly performance summary"
64
+ }
65
+ ];
66
+ function R(e) {
67
+ let t = e.company ?? {}, n = e.localization ?? {}, r = e.notifications ?? {}, i = e.security ?? {}, a = e.integrations ?? {};
68
+ return {
69
+ company: {
70
+ name: t.name ?? "",
71
+ email: t.email ?? "",
72
+ phone: t.phone ?? "",
73
+ website: t.website ?? ""
74
+ },
75
+ localization: {
76
+ timezone: n.timezone ?? "utc",
77
+ currency: n.currency ?? "usd",
78
+ language: n.language ?? "en"
79
+ },
80
+ notifications: {
81
+ orderUpdates: r.orderUpdates ?? !0,
82
+ deliveryAlerts: r.deliveryAlerts ?? !0,
83
+ systemNotifications: r.systemNotifications ?? !0,
84
+ weeklyReports: r.weeklyReports ?? !1
85
+ },
86
+ twoFactorEnabled: i.twoFactorEnabled ?? !1,
87
+ integrations: a
88
+ };
89
+ }
90
+ function z() {
91
+ let { preferences: _, isLoading: z, isSaving: B, error: V, savePreferences: H } = S(), [U, W] = D("general"), [G, K] = D(() => R({})), [q, J] = D(!1), Y = E(() => R(_), [_]);
92
+ T(() => {
93
+ K(Y);
94
+ }, [Y]);
95
+ let X = (e) => K((t) => ({
96
+ ...t,
97
+ company: {
98
+ ...t.company,
99
+ ...e
100
+ }
101
+ })), Z = (e) => K((t) => ({
102
+ ...t,
103
+ localization: {
104
+ ...t.localization,
105
+ ...e
106
+ }
107
+ })), Q = (e, t) => K((n) => ({
108
+ ...n,
109
+ notifications: {
110
+ ...n.notifications,
111
+ [e]: t
112
+ }
113
+ })), $ = async () => {
114
+ J(!1);
115
+ try {
116
+ await H({
117
+ company: G.company,
118
+ localization: G.localization,
119
+ notifications: G.notifications,
120
+ security: { twoFactorEnabled: G.twoFactorEnabled },
121
+ integrations: G.integrations
122
+ }), J(!0);
123
+ } catch {}
124
+ };
125
+ return /* @__PURE__ */ k(h, {
126
+ title: "Settings",
127
+ subtitle: "Manage your account and preferences",
128
+ icon: /* @__PURE__ */ O(b, { size: 24 }),
129
+ children: [
130
+ /* @__PURE__ */ O(M, {
131
+ icon: /* @__PURE__ */ O(b, { size: 18 }),
132
+ children: "Configure how MoveTheWheels works for your business — company details and localization, which notifications you receive, account security, and the integrations (maps, payments, messaging) that power deliveries. Set these once so the rest of the app behaves the way you expect."
133
+ }),
134
+ (q || V) && /* @__PURE__ */ O("div", {
135
+ role: "status",
136
+ className: `rounded-lg p-3 text-sm ${V ? "bg-status-error-bg-subtle text-status-error-text" : "bg-status-success-bg-subtle text-status-success-text"}`,
137
+ children: V ? V.message : "Settings saved."
138
+ }),
139
+ /* @__PURE__ */ O(j, {
140
+ storageKey: "movethewheels-settings",
141
+ steps: [
142
+ {
143
+ id: "company",
144
+ label: "Confirm company details & localization",
145
+ description: "Set your name, contact info, timezone, currency and language.",
146
+ icon: /* @__PURE__ */ O(w, { size: 16 }),
147
+ onClick: () => W("general")
148
+ },
149
+ {
150
+ id: "notifications",
151
+ label: "Choose your notifications",
152
+ description: "Decide which order, delivery and report emails you receive.",
153
+ icon: /* @__PURE__ */ O(N, { size: 16 }),
154
+ onClick: () => W("notifications")
155
+ },
156
+ {
157
+ id: "security",
158
+ label: "Secure your account",
159
+ description: "Update your password and enable two-factor authentication.",
160
+ icon: /* @__PURE__ */ O(P, { size: 16 }),
161
+ onClick: () => W("security")
162
+ },
163
+ {
164
+ id: "integrations",
165
+ label: "Connect your tools",
166
+ description: "Link maps, payments and messaging providers.",
167
+ icon: /* @__PURE__ */ O(F, { size: 16 }),
168
+ onClick: () => W("integrations")
169
+ }
170
+ ]
171
+ }),
172
+ /* @__PURE__ */ k(r, {
173
+ value: U,
174
+ onValueChange: W,
175
+ children: [
176
+ /* @__PURE__ */ k(c, {
177
+ className: "mb-6",
178
+ children: [
179
+ /* @__PURE__ */ k(u, {
180
+ value: "general",
181
+ children: [/* @__PURE__ */ O(w, { size: 16 }), " General"]
182
+ }),
183
+ /* @__PURE__ */ k(u, {
184
+ value: "notifications",
185
+ children: [/* @__PURE__ */ O(N, { size: 16 }), " Notifications"]
186
+ }),
187
+ /* @__PURE__ */ k(u, {
188
+ value: "security",
189
+ children: [/* @__PURE__ */ O(P, { size: 16 }), " Security"]
190
+ }),
191
+ /* @__PURE__ */ k(u, {
192
+ value: "integrations",
193
+ children: [/* @__PURE__ */ O(F, { size: 16 }), " Integrations"]
194
+ })
195
+ ]
196
+ }),
197
+ /* @__PURE__ */ k(l, {
198
+ value: "general",
199
+ className: "space-y-6",
200
+ children: [/* @__PURE__ */ k(A, { children: [
201
+ /* @__PURE__ */ O("h2", {
202
+ className: "text-base font-semibold text-text-primary",
203
+ children: "Company Information"
204
+ }),
205
+ /* @__PURE__ */ O("p", {
206
+ className: "text-sm text-text-secondary mb-4",
207
+ children: "Basic company details"
208
+ }),
209
+ /* @__PURE__ */ k("div", {
210
+ className: "grid grid-cols-2 gap-4",
211
+ children: [
212
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Company Name" }), /* @__PURE__ */ O(e, {
213
+ value: G.company.name,
214
+ placeholder: "Your company name",
215
+ disabled: z,
216
+ onChange: (e) => X({ name: e.target.value })
217
+ })] }),
218
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Contact Email" }), /* @__PURE__ */ O(e, {
219
+ type: "email",
220
+ value: G.company.email,
221
+ placeholder: "contact@example.com",
222
+ disabled: z,
223
+ onChange: (e) => X({ email: e.target.value })
224
+ })] }),
225
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Phone" }), /* @__PURE__ */ O(e, {
226
+ value: G.company.phone,
227
+ placeholder: "+1-555-0100",
228
+ disabled: z,
229
+ onChange: (e) => X({ phone: e.target.value })
230
+ })] }),
231
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Website" }), /* @__PURE__ */ O(e, {
232
+ value: G.company.website,
233
+ placeholder: "https://example.com",
234
+ disabled: z,
235
+ onChange: (e) => X({ website: e.target.value })
236
+ })] })
237
+ ]
238
+ })
239
+ ] }), /* @__PURE__ */ k(d, { children: [/* @__PURE__ */ O(m, { children: /* @__PURE__ */ k(p, {
240
+ className: "flex items-center gap-2",
241
+ children: [/* @__PURE__ */ O(x, { size: 18 }), " Localization"]
242
+ }) }), /* @__PURE__ */ O(f, {
243
+ className: "space-y-4",
244
+ children: /* @__PURE__ */ k("div", {
245
+ className: "grid grid-cols-3 gap-4",
246
+ children: [
247
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Timezone" }), /* @__PURE__ */ k(a, {
248
+ value: G.localization.timezone,
249
+ onValueChange: (e) => Z({ timezone: e }),
250
+ children: [/* @__PURE__ */ O(i, { children: /* @__PURE__ */ O(o, {}) }), /* @__PURE__ */ k(t, { children: [
251
+ /* @__PURE__ */ O(n, {
252
+ value: "pst",
253
+ children: "Pacific Time (PST)"
254
+ }),
255
+ /* @__PURE__ */ O(n, {
256
+ value: "est",
257
+ children: "Eastern Time (EST)"
258
+ }),
259
+ /* @__PURE__ */ O(n, {
260
+ value: "utc",
261
+ children: "UTC"
262
+ })
263
+ ] })]
264
+ })] }),
265
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Currency" }), /* @__PURE__ */ k(a, {
266
+ value: G.localization.currency,
267
+ onValueChange: (e) => Z({ currency: e }),
268
+ children: [/* @__PURE__ */ O(i, { children: /* @__PURE__ */ O(o, {}) }), /* @__PURE__ */ k(t, { children: [
269
+ /* @__PURE__ */ O(n, {
270
+ value: "usd",
271
+ children: "USD ($)"
272
+ }),
273
+ /* @__PURE__ */ O(n, {
274
+ value: "eur",
275
+ children: "EUR (€)"
276
+ }),
277
+ /* @__PURE__ */ O(n, {
278
+ value: "gbp",
279
+ children: "GBP (£)"
280
+ })
281
+ ] })]
282
+ })] }),
283
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Language" }), /* @__PURE__ */ k(a, {
284
+ value: G.localization.language,
285
+ onValueChange: (e) => Z({ language: e }),
286
+ children: [/* @__PURE__ */ O(i, { children: /* @__PURE__ */ O(o, {}) }), /* @__PURE__ */ k(t, { children: [
287
+ /* @__PURE__ */ O(n, {
288
+ value: "en",
289
+ children: "English"
290
+ }),
291
+ /* @__PURE__ */ O(n, {
292
+ value: "es",
293
+ children: "Spanish"
294
+ }),
295
+ /* @__PURE__ */ O(n, {
296
+ value: "fr",
297
+ children: "French"
298
+ })
299
+ ] })]
300
+ })] })
301
+ ]
302
+ })
303
+ })] })]
304
+ }),
305
+ /* @__PURE__ */ O(l, {
306
+ value: "notifications",
307
+ className: "space-y-6",
308
+ children: /* @__PURE__ */ k(d, { children: [/* @__PURE__ */ O(m, { children: /* @__PURE__ */ O(p, { children: "Email Notifications" }) }), /* @__PURE__ */ O(f, {
309
+ className: "space-y-4",
310
+ children: L.map((e) => /* @__PURE__ */ k("div", {
311
+ className: "flex items-center justify-between",
312
+ children: [/* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("p", {
313
+ className: "font-medium",
314
+ children: e.label
315
+ }), /* @__PURE__ */ O("p", {
316
+ className: "text-sm text-text-secondary",
317
+ children: e.desc
318
+ })] }), /* @__PURE__ */ O(s, {
319
+ checked: G.notifications[e.key],
320
+ disabled: z,
321
+ onCheckedChange: (t) => Q(e.key, t)
322
+ })]
323
+ }, e.key))
324
+ })] })
325
+ }),
326
+ /* @__PURE__ */ k(l, {
327
+ value: "security",
328
+ className: "space-y-6",
329
+ children: [/* @__PURE__ */ k(d, { children: [/* @__PURE__ */ k(m, { children: [/* @__PURE__ */ O(p, { children: "Password" }), /* @__PURE__ */ O(v, { children: "Passwords are managed by your workspace identity provider." })] }), /* @__PURE__ */ k(f, {
330
+ className: "space-y-4",
331
+ children: [
332
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Current Password" }), /* @__PURE__ */ O(e, {
333
+ type: "password",
334
+ autoComplete: "current-password"
335
+ })] }),
336
+ /* @__PURE__ */ k("div", {
337
+ className: "grid grid-cols-2 gap-4",
338
+ children: [/* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "New Password" }), /* @__PURE__ */ O(e, {
339
+ type: "password",
340
+ autoComplete: "new-password"
341
+ })] }), /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O(g, { children: "Confirm Password" }), /* @__PURE__ */ O(e, {
342
+ type: "password",
343
+ autoComplete: "new-password"
344
+ })] })]
345
+ }),
346
+ /* @__PURE__ */ O(y, {
347
+ variant: "outline",
348
+ children: "Update Password"
349
+ })
350
+ ]
351
+ })] }), /* @__PURE__ */ k(d, { children: [/* @__PURE__ */ k(m, { children: [/* @__PURE__ */ O(p, { children: "Two-Factor Authentication" }), /* @__PURE__ */ O(v, { children: "Add an extra layer of security" })] }), /* @__PURE__ */ O(f, { children: /* @__PURE__ */ k("div", {
352
+ className: "flex items-center justify-between",
353
+ children: [/* @__PURE__ */ k("p", { children: [
354
+ "Status:",
355
+ " ",
356
+ /* @__PURE__ */ O("span", {
357
+ className: `font-medium ${G.twoFactorEnabled ? "text-status-success-text" : "text-status-warning-text"}`,
358
+ children: G.twoFactorEnabled ? "Enabled" : "Disabled"
359
+ })
360
+ ] }), /* @__PURE__ */ O(y, {
361
+ variant: "outline",
362
+ disabled: B,
363
+ onClick: () => K((e) => ({
364
+ ...e,
365
+ twoFactorEnabled: !e.twoFactorEnabled
366
+ })),
367
+ children: G.twoFactorEnabled ? "Disable 2FA" : "Enable 2FA"
368
+ })]
369
+ }) })] })]
370
+ }),
371
+ /* @__PURE__ */ O(l, {
372
+ value: "integrations",
373
+ className: "space-y-6",
374
+ children: /* @__PURE__ */ k(d, { children: [/* @__PURE__ */ k(m, { children: [/* @__PURE__ */ O(p, { children: "Connected Services" }), /* @__PURE__ */ O(v, { children: "Connect the providers that power maps, payments and messaging." })] }), /* @__PURE__ */ O(f, {
375
+ className: "space-y-3",
376
+ children: I.map((e) => {
377
+ let t = G.integrations[e.key] === !0;
378
+ return /* @__PURE__ */ k("div", {
379
+ className: "flex items-center justify-between p-3 border rounded-lg",
380
+ children: [/* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("span", {
381
+ className: "font-medium",
382
+ children: e.name
383
+ }), /* @__PURE__ */ O("p", {
384
+ className: "text-sm text-text-secondary",
385
+ children: t ? "Connected" : "Not configured"
386
+ })] }), /* @__PURE__ */ O(y, {
387
+ variant: t ? "outline" : "default",
388
+ size: "sm",
389
+ disabled: B,
390
+ onClick: () => K((n) => ({
391
+ ...n,
392
+ integrations: {
393
+ ...n.integrations,
394
+ [e.key]: !t
395
+ }
396
+ })),
397
+ children: t ? "Disconnect" : "Connect"
398
+ })]
399
+ }, e.key);
400
+ })
401
+ })] })
402
+ })
403
+ ]
404
+ }),
405
+ /* @__PURE__ */ O("div", {
406
+ className: "flex justify-end",
407
+ children: /* @__PURE__ */ k(y, {
408
+ onClick: () => void $(),
409
+ disabled: B || z,
410
+ children: [
411
+ /* @__PURE__ */ O(C, { size: 16 }),
412
+ " ",
413
+ B ? "Saving…" : "Save Changes"
414
+ ]
415
+ })
416
+ })
417
+ ]
418
+ });
419
+ }
420
+ //#endregion
421
+ export { z as default };
@@ -0,0 +1,152 @@
1
+ import { l as e, rt as t } from "./PageLayout-D4LDHJJq.js";
2
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ //#region src/movethewheels/constants/index.ts
4
+ var i = {
5
+ bg: "bg-status-success-bg-subtle",
6
+ text: "text-status-success-text",
7
+ border: "border-status-success-border"
8
+ }, a = {
9
+ bg: "bg-status-warning-bg-subtle",
10
+ text: "text-status-warning-text",
11
+ border: "border-status-warning-border"
12
+ }, o = {
13
+ bg: "bg-status-error-bg-subtle",
14
+ text: "text-status-error-text",
15
+ border: "border-status-error-border"
16
+ }, s = {
17
+ bg: "bg-status-info-bg-subtle",
18
+ text: "text-status-info-text",
19
+ border: "border-status-info-border"
20
+ }, c = {
21
+ bg: "bg-bg-sunken",
22
+ text: "text-text-secondary"
23
+ }, l = {
24
+ pending: a,
25
+ confirmed: s,
26
+ assigned: s,
27
+ picked_up: s,
28
+ in_transit: s,
29
+ out_for_delivery: a,
30
+ delivered: i,
31
+ cancelled: o,
32
+ failed: o
33
+ }, u = {
34
+ available: i,
35
+ assigned: s,
36
+ maintenance: a,
37
+ out_of_service: o
38
+ }, d = {
39
+ available: i,
40
+ busy: s,
41
+ offline: c,
42
+ on_break: a
43
+ }, f = {
44
+ low: c,
45
+ normal: s,
46
+ high: a,
47
+ urgent: o
48
+ }, p = {
49
+ planned: s,
50
+ in_progress: a,
51
+ completed: i,
52
+ cancelled: o
53
+ }, m = {
54
+ sm: "text-xs px-2 py-0.5",
55
+ md: "text-sm px-2.5 py-1",
56
+ lg: "text-base px-3 py-1.5"
57
+ };
58
+ function h({ status: i, type: a = "custom", customColors: o, size: s = "md", showDot: c = !0, className: f }) {
59
+ let p = o, h = {
60
+ bg: "bg-bg-sunken",
61
+ text: "text-text-secondary"
62
+ };
63
+ if (!p) switch (a) {
64
+ case "order":
65
+ p = l[i] || h;
66
+ break;
67
+ case "vehicle":
68
+ p = u[i] || h;
69
+ break;
70
+ case "driver":
71
+ p = d[i] || h;
72
+ break;
73
+ default: p = h;
74
+ }
75
+ let g = i.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
76
+ return /* @__PURE__ */ r(e, {
77
+ variant: "outline",
78
+ className: t("font-medium capitalize border-0 whitespace-nowrap inline-flex items-center", p.bg, p.text, m[s], f),
79
+ children: [c && /* @__PURE__ */ n("span", {
80
+ "aria-hidden": "true",
81
+ className: t("w-1.5 h-1.5 rounded-full mr-1.5 flex-shrink-0 motion-safe:animate-vc-glow-pulse", p.text.replace("text-", "bg-"))
82
+ }), g]
83
+ });
84
+ }
85
+ function g({ priority: r, size: i = "md", className: a }) {
86
+ let o = f[r];
87
+ return /* @__PURE__ */ n(e, {
88
+ variant: "outline",
89
+ className: t("font-medium capitalize border-0 whitespace-nowrap", o.bg, o.text, m[i], a),
90
+ children: r
91
+ });
92
+ }
93
+ function _({ type: r, size: i = "md", className: a }) {
94
+ let o = {
95
+ b2b: {
96
+ bg: "bg-status-info-bg-subtle",
97
+ text: "text-status-info-text"
98
+ },
99
+ b2c: {
100
+ bg: "bg-status-success-bg-subtle",
101
+ text: "text-status-success-text"
102
+ }
103
+ }[r];
104
+ return /* @__PURE__ */ n(e, {
105
+ variant: "outline",
106
+ className: t("font-medium uppercase border-0 whitespace-nowrap", o.bg, o.text, m[i], a),
107
+ children: r
108
+ });
109
+ }
110
+ function v({ status: r, size: i = "md", className: a }) {
111
+ let o = {
112
+ pending: {
113
+ bg: "bg-status-warning-bg-subtle",
114
+ text: "text-status-warning-text"
115
+ },
116
+ paid: {
117
+ bg: "bg-status-success-bg-subtle",
118
+ text: "text-status-success-text"
119
+ },
120
+ failed: {
121
+ bg: "bg-status-error-bg-subtle",
122
+ text: "text-status-error-text"
123
+ },
124
+ refunded: {
125
+ bg: "bg-bg-sunken",
126
+ text: "text-text-secondary"
127
+ }
128
+ }[r];
129
+ return /* @__PURE__ */ n(e, {
130
+ variant: "outline",
131
+ className: t("font-medium capitalize border-0 whitespace-nowrap", o.bg, o.text, m[i], a),
132
+ children: r
133
+ });
134
+ }
135
+ function y({ type: i, size: a = "md", className: o }) {
136
+ return /* @__PURE__ */ r(e, {
137
+ variant: "outline",
138
+ className: t("font-medium capitalize whitespace-nowrap inline-flex items-center", m[a], o),
139
+ children: [/* @__PURE__ */ n("span", {
140
+ className: "mr-1",
141
+ children: {
142
+ van: "🚐",
143
+ truck: "🚚",
144
+ motorcycle: "🏍️",
145
+ bicycle: "🚲",
146
+ car: "🚗"
147
+ }[i]
148
+ }), i]
149
+ });
150
+ }
151
+ //#endregion
152
+ export { y as a, _ as i, g as n, p as o, h as r, v as t };