@burdenoff/microfe-movethewheels 2026.703.6 → 2026.703.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AIAssistantPage-BmILdHgO.js → AIAssistantPage-MWJLAMN_.js} +5 -5
- package/dist/{AnalyticsPage-BSlsiSDE.js → AnalyticsPage-900jpV2T.js} +9 -9
- package/dist/{CreateOrderPage-DaCgVaO3.js → CreateOrderPage-V8aXfcpN.js} +11 -11
- package/dist/{CustomerDetailsPage-DErpbafW.js → CustomerDetailsPage-CHzg75Q5.js} +16 -16
- package/dist/{CustomersPage-C1lRU6xs.js → CustomersPage-CwtVspuq.js} +24 -22
- package/dist/{DashboardPage-Q5-5EKAU.js → DashboardPage-DiD-cWwD.js} +17 -17
- package/dist/DataTable-CmdZd6iV.js +369 -0
- package/dist/{DocumentsCard-T9y6cv4-.js → DocumentsCard-y2ybnAlu.js} +4 -4
- package/dist/{DriverDetailsPage-DnHGkDC7.js → DriverDetailsPage-DjaXaATQ.js} +14 -14
- package/dist/{DriversPage-C0ujWVOn.js → DriversPage-DW-FGPFW.js} +26 -24
- package/dist/{FinancePage-CA2XEgsQ.js → FinancePage-DYadOUzC.js} +9 -9
- package/dist/{FleetPage-DrvXW7wK.js → FleetPage-P9k4zZqP.js} +10 -10
- package/dist/{FormError-CRsMP7TQ.js → FormError-D4T5FWZA.js} +1 -1
- package/dist/{ImportExportPage-Cac9HjFx.js → ImportExportPage-BhWGfbH3.js} +6 -6
- package/dist/{InventoryPage-Ezf4gqKI.js → InventoryPage-BWikjZMW.js} +10 -10
- package/dist/{LiveTrackingPage-CzbVwDqK.js → LiveTrackingPage-UQBWlthJ.js} +10 -10
- package/dist/{MarketplacePage-BHDmSQmo.js → MarketplacePage-DMH0HNDH.js} +9 -9
- package/dist/{MetricCard-DQlDNqmK.js → MetricCard-CqU5WsyW.js} +2 -2
- package/dist/{Notice-GmA7JDR3.js → Notice-BrXJ85dA.js} +2 -2
- package/dist/{OrderDetailsPage-CR0Wc1aN.js → OrderDetailsPage-2J4ua0wd.js} +28 -24
- package/dist/OrdersListPage-DvICveRv.js +388 -0
- package/dist/{PageLayout-DX1Ou6V6.js → PageLayout-j9Zw3wBN.js} +542 -517
- package/dist/{ProductDetailsPage-B_ns2MOe.js → ProductDetailsPage-BSjWLrty.js} +9 -9
- package/dist/{ProductsPage-c92BsEoA.js → ProductsPage-Bn1U2jTj.js} +21 -19
- package/dist/{ReportsPage-CPLXtLT2.js → ReportsPage-MU8F9DQC.js} +9 -9
- package/dist/{RouteDetailsPage-DOfcRiFv.js → RouteDetailsPage-CgSY1CTd.js} +18 -18
- package/dist/{RoutesPage-BZGublby.js → RoutesPage-Dqd5Don6.js} +19 -17
- package/dist/{SettingsPage-5cweX_xh.js → SettingsPage-2a05Sq2k.js} +4 -4
- package/dist/{Sparkline-zSXvG6vA.js → Sparkline-DTGdlxUH.js} +1 -1
- package/dist/{StatusBadge-oZjownr1.js → StatusBadge-BfiF-nNI.js} +1 -1
- package/dist/{TrackingPage-Ln9qVflK.js → TrackingPage-SnjW6qeD.js} +11 -11
- package/dist/{VehicleDetailsPage-CrkzE0dN.js → VehicleDetailsPage-CvRMJ2zC.js} +12 -12
- package/dist/{VehiclesPage-CTQWH7af.js → VehiclesPage-qxf-1C1B.js} +26 -24
- package/dist/{WarehouseDetailsPage-CwDLaG65.js → WarehouseDetailsPage-D0Wyyj1Y.js} +11 -11
- package/dist/{WarehousesPage-KW02DvZg.js → WarehousesPage-44Wj7AGT.js} +19 -17
- package/dist/{arrow-left-DJDw_Yqv.js → arrow-left-1dVWv2dg.js} +1 -1
- package/dist/{arrow-right-Cb2fLTPJ.js → arrow-right-PUCNATnk.js} +1 -1
- package/dist/{arrow-up-PxaOIyiT.js → arrow-up-VQuGMABN.js} +1 -1
- package/dist/{box-hSJVtvGf.js → box-DW1KNP8j.js} +1 -1
- package/dist/{boxes-DDnxEkT5.js → boxes-D6I00XqA.js} +1 -1
- package/dist/{chart-column-xXgAZvRl.js → chart-column-BwQ5H9ol.js} +1 -1
- package/dist/{charts-CfCwQg6o.js → charts-Dv_zxP7L.js} +2 -2
- package/dist/{chevron-left-dhEGJYdh.js → chevron-left-DzNxoaBG.js} +1 -1
- package/dist/{chevron-right-Cud2NDvm.js → chevron-right-CKm3ZC1T.js} +1 -1
- package/dist/{circle-alert-Rx0p3D5w.js → circle-alert-CtBm6oIb.js} +1 -1
- package/dist/{circle-check-BCxRFdFo.js → circle-check-B_Y7FDyR.js} +1 -1
- package/dist/{circle-check-big-BcIJ8xjx.js → circle-check-big-H5pLiMBW.js} +1 -1
- package/dist/{clock-B2_YxJgB.js → clock-B4-qjGuB.js} +1 -1
- package/dist/{dollar-sign-CQmAICv4.js → dollar-sign-CYGHy2oS.js} +1 -1
- package/dist/{download-CG4Tponq.js → download-BJonq2ty.js} +1 -1
- package/dist/{file-text-CzH-zMub.js → file-text-C-cZx58r.js} +1 -1
- package/dist/{filter-C0u2Lwfn.js → filter-B_S6WOqr.js} +1 -1
- package/dist/{fuel-C2KELcM-.js → fuel-Cjt6IxKr.js} +1 -1
- package/dist/index.js +33 -33
- package/dist/{map-FuPu5aTw.js → map-CO0aWUae.js} +1 -1
- package/dist/{map-pin-czpLv9uy.js → map-pin-BISLzLwb.js} +1 -1
- package/dist/{maps-D9m7PKrs.js → maps-CtfuCAmh.js} +1 -1
- package/dist/{navigation-D5_pdCSS.js → navigation-BFki5UJz.js} +1 -1
- package/dist/{package-B0sdi6lU.js → package-UyaWiALC.js} +1 -1
- package/dist/{phone-V2nuzPu9.js → phone-Bav_V7rR.js} +1 -1
- package/dist/{plus-BqQxkfoU.js → plus-Bk_G-lFC.js} +1 -1
- package/dist/{refresh-cw-CEOAPEcV.js → refresh-cw-C4-jecjy.js} +1 -1
- package/dist/{route-CZWcW-Dw.js → route-WpCP6F1x.js} +1 -1
- package/dist/{save-DDFvrxWl.js → save-CcfoIn2J.js} +1 -1
- package/dist/{search-D7Ya6jxj.js → search-C3YRxW9e.js} +1 -1
- package/dist/{square-pen-DoZZS4Lw.js → square-pen-Dr1X-P2s.js} +1 -1
- package/dist/{star-B7PgVu5j.js → star-1Ixfuzai.js} +1 -1
- package/dist/{store-YVzcIG4A.js → store-BwU935v5.js} +1 -1
- package/dist/{trash-2-BegnBzwI.js → trash-2-CC4KugEJ.js} +1 -1
- package/dist/{trending-up-DBd3XNdb.js → trending-up-1brglj1E.js} +1 -1
- package/dist/{triangle-alert-Bxk3Kgs6.js → triangle-alert-Dh56Yu3-.js} +1 -1
- package/dist/{truck-Clrn0oHp.js → truck-DxhtLfkG.js} +1 -1
- package/dist/{upload-Df5JmMwH.js → upload-CLf0JLXW.js} +1 -1
- package/dist/{useAssistant-Cb8nnIVC.js → useAssistant-B9qBtRKm.js} +1 -1
- package/dist/{useCustomers-Dq2IR2HQ.js → useCustomers-BQ4AIEAT.js} +1 -1
- package/dist/{useFleet-CapnWBcA.js → useFleet-BXSocBD_.js} +1 -1
- package/dist/{useImportExport-BoGzrlJy.js → useImportExport-7-O8noRJ.js} +1 -1
- package/dist/{useInventory-Ci6M2d9f.js → useInventory-DmZficcp.js} +1 -1
- package/dist/{useOrders-BuQU1OHX.js → useOrders-B5FV0kcz.js} +1 -1
- package/dist/{useReports-DIx8W7CO.js → useReports-hUXb8ryJ.js} +1 -1
- package/dist/{useRoutes-D7EvI_pm.js → useRoutes-C_ZCYJ_h.js} +1 -1
- package/dist/{useSettings-BhX251UQ.js → useSettings-CteNasBE.js} +1 -1
- package/dist/{useTracking-C40jmZ6W.js → useTracking-B7ttexRe.js} +3 -3
- package/dist/{user-BlcJrbtE.js → user-B1IjWJtn.js} +1 -1
- package/dist/{user-check-DtnQmimP.js → user-check-Cx6fHHll.js} +1 -1
- package/dist/{users-Cvwko-Dx.js → users-BKmsb79k.js} +1 -1
- package/dist/{warehouse-LWLVTk6G.js → warehouse-DE1irFyJ.js} +1 -1
- package/dist/{wrench-Cme0RbyR.js → wrench-DTJGFs17.js} +1 -1
- package/dist/{x-D8C9Pg5V.js → x-CvsUGJy1.js} +1 -1
- package/package.json +1 -1
- package/src/movethewheels/components/DataTable.tsx +40 -0
- package/src/movethewheels/components/GlassPanel.tsx +1 -3
- package/src/movethewheels/components/MetricCard.tsx +16 -3
- package/src/movethewheels/components/charts/StatusDonut.tsx +2 -6
- package/src/movethewheels/components/charts/TrendChart.tsx +2 -6
- package/src/movethewheels/components/maps/LogisticsMap.tsx +1 -4
- package/src/movethewheels/components/maps/RouteMap.tsx +3 -5
- package/src/movethewheels/components/maps/TrackingMap.tsx +11 -2
- package/src/movethewheels/pages/CustomerDetailsPage.tsx +3 -2
- package/src/movethewheels/pages/CustomersPage.tsx +3 -1
- package/src/movethewheels/pages/DriverDetailsPage.tsx +2 -2
- package/src/movethewheels/pages/DriversPage.tsx +3 -1
- package/src/movethewheels/pages/OrderDetailsPage.tsx +2 -1
- package/src/movethewheels/pages/OrdersListPage.tsx +3 -1
- package/src/movethewheels/pages/ProductsPage.tsx +3 -1
- package/src/movethewheels/pages/RoutesPage.tsx +3 -1
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +2 -2
- package/src/movethewheels/pages/VehiclesPage.tsx +12 -2
- package/src/movethewheels/pages/WarehouseDetailsPage.tsx +3 -1
- package/src/movethewheels/pages/WarehousesPage.tsx +3 -1
- package/src/movethewheels/utils/graphqlClient.ts +103 -8
- package/dist/DataTable-KjzbwnRL.js +0 -340
- package/dist/OrdersListPage-C8Bu6wXM.js +0 -386
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e, t } from "./chunk-BdsCSvBP.js";
|
|
2
|
-
import { at as n, it as r, rt as i, st as a } from "./PageLayout-
|
|
3
|
-
import { $ as o, A as s, B as c, C as l, D as u, E as d, F as f, G as p, H as m, I as h, J as g, K as _, L as v, M as y, N as ee, O as b, P as te, Q as ne, R as x, S as re, T as ie, U as ae, V as oe, W as se, X as ce, Y as le, Z as S, _ as ue, a as de, b as fe, c as pe, d as me, et as he, f as ge, g as _e, h as ve, i as ye, j as be, k as C, l as xe, m as Se, n as w, nt as Ce, o as we, p as Te, q as Ee, r as De, s as T, tt as Oe, u as ke, v as Ae, w as je, x as Me, y as Ne, z as Pe } from "./Sparkline-
|
|
2
|
+
import { at as n, it as r, rt as i, st as a } from "./PageLayout-j9Zw3wBN.js";
|
|
3
|
+
import { $ as o, A as s, B as c, C as l, D as u, E as d, F as f, G as p, H as m, I as h, J as g, K as _, L as v, M as y, N as ee, O as b, P as te, Q as ne, R as x, S as re, T as ie, U as ae, V as oe, W as se, X as ce, Y as le, Z as S, _ as ue, a as de, b as fe, c as pe, d as me, et as he, f as ge, g as _e, h as ve, i as ye, j as be, k as C, l as xe, m as Se, n as w, nt as Ce, o as we, p as Te, q as Ee, r as De, s as T, tt as Oe, u as ke, v as Ae, w as je, x as Me, y as Ne, z as Pe } from "./Sparkline-DTGdlxUH.js";
|
|
4
4
|
import E, { PureComponent as Fe, useCallback as D, useEffect as O, useId as Ie, useMemo as k, useState as A } from "react";
|
|
5
5
|
import { jsx as j, jsxs as M } from "react/jsx-runtime";
|
|
6
6
|
//#region src/movethewheels/hooks/useAnalytics.ts
|
package/dist/index.js
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as ee, S as te, T as ne, U as re, V as ie, W as ae, X as oe, Y as se, Z as ce, _ as le, a as ue, b as de, c as fe, ct as pe, d as me, et as he, f as ge, g as _e, h as ve, i as ye, j as be, k as xe, l as Se, m as Ce, n as v, nt as y, o as b, ot as x, p as S, q as C, r as w, rt as T, s as E, st as D, t as O, tt as k, u as A, ut as j, v as we, w as Te, x as Ee, y as De, z as Oe } from "./PageLayout-
|
|
2
|
-
import { t as ke } from "./DataTable-
|
|
3
|
-
import { n as Ae, t as je } from "./useAssistant-
|
|
4
|
-
import { t as Me } from "./boxes-
|
|
5
|
-
import { t as Ne } from "./chart-column-
|
|
6
|
-
import { t as Pe } from "./dollar-sign-
|
|
7
|
-
import { n as Fe, t as Ie } from "./DocumentsCard-
|
|
8
|
-
import { t as Le } from "./file-text-
|
|
9
|
-
import { n as Re, r as ze, t as Be } from "./useSettings-
|
|
10
|
-
import { n as Ve, t as He } from "./Notice-
|
|
11
|
-
import { t as Ue } from "./map-
|
|
12
|
-
import { t as We } from "./package-
|
|
13
|
-
import { t as Ge } from "./route-
|
|
14
|
-
import { t as Ke } from "./store-
|
|
15
|
-
import { t as M } from "./truck-
|
|
16
|
-
import { t as qe } from "./user-check-
|
|
17
|
-
import { t as Je } from "./users-
|
|
18
|
-
import { t as N } from "./warehouse-
|
|
19
|
-
import { n as Ye, r as Xe, t as Ze } from "./useOrders-
|
|
20
|
-
import { a as Qe, i as $e, n as et, o as tt, r as nt, t as rt } from "./useFleet-
|
|
21
|
-
import { a as it, c as at, n as ot, o as st, r as ct, t as lt } from "./useInventory-
|
|
22
|
-
import { n as ut, r as dt, t as ft } from "./useCustomers-
|
|
23
|
-
import { n as pt, r as mt, t as ht } from "./useRoutes-
|
|
24
|
-
import { a as gt, c as _t, d as vt, f as yt, i as bt, l as xt, n as St, o as Ct, r as wt, s as Tt, t as Et, u as Dt } from "./charts-
|
|
25
|
-
import { a as Ot, i as kt, n as At, o as jt, r as Mt, s as Nt, t as Pt } from "./useTracking-
|
|
26
|
-
import { t as Ft } from "./useReports-
|
|
27
|
-
import { t as It } from "./useImportExport-
|
|
28
|
-
import { n as Lt, r as Rt, t as zt } from "./Sparkline-
|
|
29
|
-
import { n as Bt, r as Vt, t as Ht } from "./MetricCard-
|
|
30
|
-
import { a as Ut, c as Wt, i as Gt, n as Kt, o as qt, r as Jt, s as Yt, t as Xt } from "./maps-
|
|
31
|
-
import { a as Zt, i as Qt, n as $t, r as en, t as tn } from "./StatusBadge-
|
|
32
|
-
import { t as nn } from "./FormError-
|
|
1
|
+
import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as ee, S as te, T as ne, U as re, V as ie, W as ae, X as oe, Y as se, Z as ce, _ as le, a as ue, b as de, c as fe, ct as pe, d as me, et as he, f as ge, g as _e, h as ve, i as ye, j as be, k as xe, l as Se, m as Ce, n as v, nt as y, o as b, ot as x, p as S, q as C, r as w, rt as T, s as E, st as D, t as O, tt as k, u as A, ut as j, v as we, w as Te, x as Ee, y as De, z as Oe } from "./PageLayout-j9Zw3wBN.js";
|
|
2
|
+
import { t as ke } from "./DataTable-CmdZd6iV.js";
|
|
3
|
+
import { n as Ae, t as je } from "./useAssistant-B9qBtRKm.js";
|
|
4
|
+
import { t as Me } from "./boxes-D6I00XqA.js";
|
|
5
|
+
import { t as Ne } from "./chart-column-BwQ5H9ol.js";
|
|
6
|
+
import { t as Pe } from "./dollar-sign-CYGHy2oS.js";
|
|
7
|
+
import { n as Fe, t as Ie } from "./DocumentsCard-y2ybnAlu.js";
|
|
8
|
+
import { t as Le } from "./file-text-C-cZx58r.js";
|
|
9
|
+
import { n as Re, r as ze, t as Be } from "./useSettings-CteNasBE.js";
|
|
10
|
+
import { n as Ve, t as He } from "./Notice-BrXJ85dA.js";
|
|
11
|
+
import { t as Ue } from "./map-CO0aWUae.js";
|
|
12
|
+
import { t as We } from "./package-UyaWiALC.js";
|
|
13
|
+
import { t as Ge } from "./route-WpCP6F1x.js";
|
|
14
|
+
import { t as Ke } from "./store-BwU935v5.js";
|
|
15
|
+
import { t as M } from "./truck-DxhtLfkG.js";
|
|
16
|
+
import { t as qe } from "./user-check-Cx6fHHll.js";
|
|
17
|
+
import { t as Je } from "./users-BKmsb79k.js";
|
|
18
|
+
import { t as N } from "./warehouse-DE1irFyJ.js";
|
|
19
|
+
import { n as Ye, r as Xe, t as Ze } from "./useOrders-B5FV0kcz.js";
|
|
20
|
+
import { a as Qe, i as $e, n as et, o as tt, r as nt, t as rt } from "./useFleet-BXSocBD_.js";
|
|
21
|
+
import { a as it, c as at, n as ot, o as st, r as ct, t as lt } from "./useInventory-DmZficcp.js";
|
|
22
|
+
import { n as ut, r as dt, t as ft } from "./useCustomers-BQ4AIEAT.js";
|
|
23
|
+
import { n as pt, r as mt, t as ht } from "./useRoutes-C_ZCYJ_h.js";
|
|
24
|
+
import { a as gt, c as _t, d as vt, f as yt, i as bt, l as xt, n as St, o as Ct, r as wt, s as Tt, t as Et, u as Dt } from "./charts-Dv_zxP7L.js";
|
|
25
|
+
import { a as Ot, i as kt, n as At, o as jt, r as Mt, s as Nt, t as Pt } from "./useTracking-B7ttexRe.js";
|
|
26
|
+
import { t as Ft } from "./useReports-hUXb8ryJ.js";
|
|
27
|
+
import { t as It } from "./useImportExport-7-O8noRJ.js";
|
|
28
|
+
import { n as Lt, r as Rt, t as zt } from "./Sparkline-DTGdlxUH.js";
|
|
29
|
+
import { n as Bt, r as Vt, t as Ht } from "./MetricCard-CqU5WsyW.js";
|
|
30
|
+
import { a as Ut, c as Wt, i as Gt, n as Kt, o as qt, r as Jt, s as Yt, t as Xt } from "./maps-CtfuCAmh.js";
|
|
31
|
+
import { a as Zt, i as Qt, n as $t, r as en, t as tn } from "./StatusBadge-BfiF-nNI.js";
|
|
32
|
+
import { t as nn } from "./FormError-D4T5FWZA.js";
|
|
33
33
|
import { Suspense as rn, lazy as P, useEffect as F } from "react";
|
|
34
34
|
import { Route as I, Routes as an, useNavigate as on } from "react-router-dom";
|
|
35
35
|
import { jsx as L, jsxs as R } from "react/jsx-runtime";
|
|
@@ -117,7 +117,7 @@ function mn() {
|
|
|
117
117
|
})
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
|
-
var hn = P(() => import("./DashboardPage-
|
|
120
|
+
var hn = P(() => import("./DashboardPage-DiD-cWwD.js")), gn = P(() => import("./OrdersListPage-DvICveRv.js")), _n = P(() => import("./OrderDetailsPage-2J4ua0wd.js")), B = P(() => import("./CreateOrderPage-V8aXfcpN.js")), vn = P(() => import("./TrackingPage-SnjW6qeD.js")), yn = P(() => import("./LiveTrackingPage-UQBWlthJ.js")), bn = P(() => import("./FleetPage-P9k4zZqP.js")), xn = P(() => import("./VehiclesPage-qxf-1C1B.js")), V = P(() => import("./VehicleDetailsPage-CvRMJ2zC.js")), Sn = P(() => import("./DriversPage-DW-FGPFW.js")), H = P(() => import("./DriverDetailsPage-DjaXaATQ.js")), Cn = P(() => import("./InventoryPage-BWikjZMW.js")), wn = P(() => import("./ProductsPage-Bn1U2jTj.js")), U = P(() => import("./ProductDetailsPage-BSjWLrty.js")), Tn = P(() => import("./WarehousesPage-44Wj7AGT.js")), W = P(() => import("./WarehouseDetailsPage-D0Wyyj1Y.js")), En = P(() => import("./CustomersPage-CwtVspuq.js")), G = P(() => import("./CustomerDetailsPage-CHzg75Q5.js")), Dn = P(() => import("./RoutesPage-Dqd5Don6.js")), K = P(() => import("./RouteDetailsPage-CgSY1CTd.js")), On = P(() => import("./AnalyticsPage-900jpV2T.js")), kn = P(() => import("./FinancePage-DYadOUzC.js")), An = P(() => import("./MarketplacePage-DMH0HNDH.js")), jn = P(() => import("./ImportExportPage-BhWGfbH3.js")), Mn = P(() => import("./ReportsPage-MU8F9DQC.js")), Nn = P(() => import("./SettingsPage-2a05Sq2k.js")), Pn = P(() => import("./AIAssistantPage-MWJLAMN_.js"));
|
|
121
121
|
function Fn() {
|
|
122
122
|
return /* @__PURE__ */ L(rn, {
|
|
123
123
|
fallback: /* @__PURE__ */ L(mn, {}),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ut as e } from "./PageLayout-
|
|
1
|
+
import { ut as e } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
//#region node_modules/lucide-react/dist/esm/icons/map-pin.js
|
|
3
3
|
var t = e("MapPin", [["path", {
|
|
4
4
|
d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as e, t } from "./chunk-BdsCSvBP.js";
|
|
2
|
-
import { rt as n } from "./PageLayout-
|
|
2
|
+
import { rt as n } from "./PageLayout-j9Zw3wBN.js";
|
|
3
3
|
import r, { createContext as i, forwardRef as a, use as o, useCallback as s, useEffect as c, useImperativeHandle as l, useMemo as u, useRef as d, useState as f } from "react";
|
|
4
4
|
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
5
5
|
import { createPortal as h } from "react-dom";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ut as e } from "./PageLayout-
|
|
1
|
+
import { ut as e } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
//#region node_modules/lucide-react/dist/esm/icons/square-pen.js
|
|
3
3
|
var t = e("SquarePen", [["path", {
|
|
4
4
|
d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ut as e } from "./PageLayout-
|
|
1
|
+
import { ut as e } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
//#region node_modules/lucide-react/dist/esm/icons/star.js
|
|
3
3
|
var t = e("Star", [["path", {
|
|
4
4
|
d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t, ut as n } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t, ut as n } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as r, useMemo as i, useState as a } from "react";
|
|
3
3
|
//#region node_modules/lucide-react/dist/esm/icons/bot.js
|
|
4
4
|
var o = n("Bot", [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
|
|
3
3
|
//#region src/movethewheels/hooks/useCustomers.ts
|
|
4
4
|
var o = "\n query ListCustomers($filter: CustomerFilterInput, $pagination: PaginationInput) {\n customers(filter: $filter, pagination: $pagination) {\n id\n name\n email\n phone\n type\n company\n address\n businessLicense\n taxId\n rating\n createdAt\n updatedAt\n deletedAt\n }\n }\n", s = "\n query GetCustomer($id: ID!) {\n customer(id: $id) {\n id\n name\n email\n phone\n type\n company\n address\n businessLicense\n taxId\n rating\n createdAt\n updatedAt\n deletedAt\n }\n }\n", c = "\n mutation CreateCustomer($input: CreateCustomerInput!) {\n createCustomer(input: $input) {\n id\n name\n email\n phone\n type\n company\n address\n businessLicense\n taxId\n rating\n createdAt\n updatedAt\n deletedAt\n }\n }\n", l = "\n mutation UpdateCustomer($id: ID!, $input: UpdateCustomerInput!) {\n updateCustomer(id: $id, input: $input) {\n id\n name\n email\n phone\n type\n company\n address\n businessLicense\n taxId\n rating\n createdAt\n updatedAt\n deletedAt\n }\n }\n", u = "\n mutation DeleteCustomer($id: ID!) {\n deleteCustomer(id: $id)\n }\n";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
|
|
3
3
|
//#region src/movethewheels/hooks/useFleet.ts
|
|
4
4
|
var o = "\n query ListVehicles($filter: VehicleFilterInput, $pagination: PaginationInput) {\n vehicles(filter: $filter, pagination: $pagination) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", s = "\n query ListDrivers($filter: DriverFilterInput, $pagination: PaginationInput) {\n drivers(filter: $filter, pagination: $pagination) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", c = "\n query GetVehicle($id: ID!) {\n vehicle(id: $id) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", l = "\n query GetDriver($id: ID!) {\n driver(id: $id) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", u = "\n mutation UpdateVehicleStatus($id: ID!, $status: VehicleStatus!) {\n updateVehicleStatus(id: $id, status: $status) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", d = "\n mutation AssignDriverVehicle($id: ID!, $vehicleId: ID) {\n assignDriverVehicle(id: $id, vehicleId: $vehicleId) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", f = "\n mutation UpdateDriverStatus($id: ID!, $status: DriverStatus!) {\n updateDriverStatus(id: $id, status: $status) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", p = "\n mutation CreateVehicle($input: CreateVehicleInput!) {\n createVehicle(input: $input) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", m = "\n mutation CreateDriver($input: CreateDriverInput!) {\n createDriver(input: $input) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", h = "\n query GetFleetStats {\n fleetStats {\n totalVehicles\n activeVehicles\n inTransitVehicles\n maintenanceVehicles\n totalDrivers\n availableDrivers\n onDeliveryDrivers\n avgDriverRating\n }\n }\n";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as n, useMemo as r, useState as i } from "react";
|
|
3
3
|
//#region src/movethewheels/hooks/useImportExport.ts
|
|
4
4
|
var a = "\n mutation MovethewheelsExportData($input: MovethewheelsExportDataInput!) {\n exportData(input: $input) {\n success\n message\n payload\n }\n }\n", o = "\n mutation MovethewheelsImportData($input: MovethewheelsImportDataInput!) {\n importData(input: $input) {\n success\n message\n payload\n }\n }\n";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
|
|
3
3
|
//#region src/movethewheels/hooks/useInventory.ts
|
|
4
4
|
var o = "\n query ListInventoryItems($filter: InventoryFilterInput, $pagination: PaginationInput) {\n inventoryItems(filter: $filter, pagination: $pagination) {\n id\n productId\n warehouseId\n onHand\n available\n allocated\n damaged\n reorderPoint\n createdAt\n updatedAt\n }\n }\n", s = "\n query ListProducts($filter: ProductFilterInput, $pagination: PaginationInput) {\n products(filter: $filter, pagination: $pagination) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", c = "\n query ListWarehouses($filter: WarehouseFilterInput, $pagination: PaginationInput) {\n warehouses(filter: $filter, pagination: $pagination) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", l = "\n query GetProduct($id: ID!) {\n product(id: $id) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", u = "\n query GetWarehouse($id: ID!) {\n warehouse(id: $id) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", d = "\n query GetInventoryStats {\n inventoryStats {\n totalOnHand\n totalAvailable\n totalAllocated\n totalDamaged\n lowStockCount\n }\n }\n", f = "\n mutation CreateProduct($input: CreateProductInput!) {\n createProduct(input: $input) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", p = "\n mutation CreateWarehouse($input: CreateWarehouseInput!) {\n createWarehouse(input: $input) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", m = "\n mutation AdjustInventoryStock($input: AdjustInventoryStockInput!) {\n adjustInventoryStock(input: $input) {\n id\n productId\n warehouseId\n onHand\n available\n allocated\n damaged\n reorderPoint\n createdAt\n updatedAt\n }\n }\n";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
|
|
3
3
|
//#region src/movethewheels/hooks/useOrders.ts
|
|
4
4
|
var o = "\n query ListMovethewheelsOrders($filter: OrderFilterInput, $pagination: PaginationInput) {\n movethewheelsOrders(filter: $filter, pagination: $pagination) {\n id\n orderNumber\n customerId\n orderType\n status\n priority\n pickupAddress\n deliveryAddress\n items\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n }\n }\n", s = "\n query GetMovethewheelsOrder($id: ID!) {\n movethewheelsOrder(id: $id) {\n id\n orderNumber\n customerId\n orderType\n status\n priority\n pickupAddress\n deliveryAddress\n items\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n }\n }\n", c = "\n query GetOrderStatsBundle {\n orderStats {\n total\n pending\n inTransit\n delivered\n cancelled\n failed\n }\n financeMetrics {\n revenue {\n totalRevenue\n averageOrderValue\n }\n }\n }\n", l = "\n mutation CreateMovethewheelsOrder($input: CreateOrderInput!) {\n createMovethewheelsOrder(input: $input) {\n id\n orderNumber\n customerId\n orderType\n status\n priority\n pickupAddress\n deliveryAddress\n items\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n }\n }\n", u = "\n mutation UpdateMovethewheelsOrder($id: ID!, $input: UpdateOrderInput!) {\n updateMovethewheelsOrder(id: $id, input: $input) {\n id\n orderNumber\n customerId\n orderType\n status\n priority\n pickupAddress\n deliveryAddress\n items\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n }\n }\n", d = "\n mutation UpdateMovethewheelsOrderStatus($id: ID!, $input: UpdateOrderStatusInput!) {\n updateMovethewheelsOrderStatus(id: $id, input: $input) {\n id\n orderNumber\n customerId\n orderType\n status\n priority\n pickupAddress\n deliveryAddress\n items\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n }\n }\n", f = "\n mutation DeleteMovethewheelsOrder($id: ID!) {\n deleteMovethewheelsOrder(id: $id)\n }\n";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
|
|
3
3
|
//#region src/movethewheels/hooks/useReports.ts
|
|
4
4
|
var o = "\n id\n name\n description\n type\n status\n schedule\n lastGenerated\n createdAt\n updatedAt\n", s = `
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
|
|
3
3
|
//#region src/movethewheels/hooks/useRoutes.ts
|
|
4
4
|
var o = "\n query ListRoutes($filter: RouteFilterInput, $pagination: PaginationInput) {\n routes(filter: $filter, pagination: $pagination) {\n id\n name\n status\n shipmentId\n vehicleId\n driverId\n waypoints\n estimatedDistance\n estimatedDuration\n fuelCost\n actualDistance\n actualDuration\n createdAt\n }\n }\n", s = "\n query GetRoute($id: ID!) {\n route(id: $id) {\n id\n name\n status\n shipmentId\n vehicleId\n driverId\n waypoints\n estimatedDistance\n estimatedDuration\n fuelCost\n actualDistance\n actualDuration\n createdAt\n }\n }\n", c = "\n mutation CreateRoute($input: CreateRouteInput!) {\n createRoute(input: $input) {\n id\n name\n status\n shipmentId\n vehicleId\n driverId\n waypoints\n estimatedDistance\n estimatedDuration\n fuelCost\n actualDistance\n actualDuration\n createdAt\n }\n }\n", l = "\n mutation UpdateRoute($id: ID!, $input: UpdateRouteInput!) {\n updateRoute(id: $id, input: $input) {\n id\n name\n status\n shipmentId\n vehicleId\n driverId\n waypoints\n estimatedDistance\n estimatedDuration\n fuelCost\n actualDistance\n actualDuration\n createdAt\n }\n }\n", u = "\n mutation DeleteRoute($id: ID!) {\n deleteRoute(id: $id)\n }\n", d = "\n mutation OptimizeRoute($id: ID!) {\n optimizeRoute(id: $id) {\n id\n name\n status\n shipmentId\n vehicleId\n driverId\n waypoints\n estimatedDistance\n estimatedDuration\n fuelCost\n actualDistance\n actualDuration\n createdAt\n }\n }\n";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as e, st as t, ut as n } from "./PageLayout-
|
|
1
|
+
import { at as e, st as t, ut as n } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
import { useCallback as r, useEffect as i, useMemo as a, useState as o } from "react";
|
|
3
3
|
//#region node_modules/lucide-react/dist/esm/icons/globe.js
|
|
4
4
|
var s = n("Globe", [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { at as e, st as t } from "./PageLayout-
|
|
2
|
-
import { r as n, t as r } from "./useOrders-
|
|
3
|
-
import { a as i, n as a, o, t as s } from "./useFleet-
|
|
1
|
+
import { at as e, st as t } from "./PageLayout-j9Zw3wBN.js";
|
|
2
|
+
import { r as n, t as r } from "./useOrders-B5FV0kcz.js";
|
|
3
|
+
import { a as i, n as a, o, t as s } from "./useFleet-BXSocBD_.js";
|
|
4
4
|
import { useCallback as c, useEffect as l, useMemo as u, useState as d } from "react";
|
|
5
5
|
//#region src/movethewheels/hooks/useTracking.ts
|
|
6
6
|
var f = "\n query ListShipments($filter: ShipmentFilterInput, $pagination: PaginationInput) {\n shipments(filter: $filter, pagination: $pagination) {\n id\n shipmentNumber\n orderId\n status\n estimatedDelivery\n }\n }\n", p = "\n query GetShipment($id: ID!) {\n shipment(id: $id) {\n id\n shipmentNumber\n orderId\n status\n estimatedDelivery\n trackingEvents {\n id\n shipmentId\n eventType\n location\n details\n timestamp\n }\n }\n }\n", m = "\n query GetOrderTracking($orderId: ID!) {\n orderTracking(orderId: $orderId) {\n id\n shipmentId\n eventType\n location\n details\n timestamp\n }\n }\n", h = "\n query GetActiveDeliveries {\n activeDeliveries {\n id\n shipmentNumber\n orderId\n status\n estimatedDelivery\n }\n }\n", g = "\n query GetTrackingAlerts {\n trackingAlerts {\n shipmentId\n shipmentNumber\n alertType\n message\n }\n }\n";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ut as e } from "./PageLayout-
|
|
1
|
+
import { ut as e } from "./PageLayout-j9Zw3wBN.js";
|
|
2
2
|
//#region node_modules/lucide-react/dist/esm/icons/wrench.js
|
|
3
3
|
var t = e("Wrench", [["path", {
|
|
4
4
|
d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",
|
package/package.json
CHANGED
|
@@ -26,6 +26,8 @@ import {
|
|
|
26
26
|
ArrowUpDown,
|
|
27
27
|
ArrowUp,
|
|
28
28
|
ArrowDown,
|
|
29
|
+
AlertTriangle,
|
|
30
|
+
RefreshCw,
|
|
29
31
|
} from 'lucide-react';
|
|
30
32
|
|
|
31
33
|
export interface Column<T> {
|
|
@@ -42,6 +44,15 @@ interface DataTableProps<T> {
|
|
|
42
44
|
columns: Column<T>[];
|
|
43
45
|
data: T[];
|
|
44
46
|
isLoading?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* When the underlying fetch ultimately failed (after retries) and no rows are
|
|
49
|
+
* available to show, the table renders a distinct error state with a Retry
|
|
50
|
+
* action instead of the "empty" state — so a backend failure never reads as
|
|
51
|
+
* "no data".
|
|
52
|
+
*/
|
|
53
|
+
error?: Error | null;
|
|
54
|
+
/** Invoked by the error-state Retry button (typically the hook's refetch). */
|
|
55
|
+
onRetry?: () => void;
|
|
45
56
|
searchable?: boolean;
|
|
46
57
|
searchPlaceholder?: string;
|
|
47
58
|
searchFields?: (keyof T)[];
|
|
@@ -90,6 +101,8 @@ export function DataTable<T extends object>({
|
|
|
90
101
|
columns,
|
|
91
102
|
data,
|
|
92
103
|
isLoading = false,
|
|
104
|
+
error = null,
|
|
105
|
+
onRetry,
|
|
93
106
|
searchable = false,
|
|
94
107
|
searchPlaceholder = 'Search...',
|
|
95
108
|
searchFields,
|
|
@@ -276,6 +289,33 @@ export function DataTable<T extends object>({
|
|
|
276
289
|
);
|
|
277
290
|
}
|
|
278
291
|
|
|
292
|
+
// A failed load with nothing to fall back on renders an explicit error state
|
|
293
|
+
// (never the misleading "empty" state). Stale rows, if any, are kept visible.
|
|
294
|
+
if (error && data.length === 0) {
|
|
295
|
+
return (
|
|
296
|
+
<div
|
|
297
|
+
className={cn(
|
|
298
|
+
'flex flex-col items-center justify-center gap-3 rounded-card border border-border-seam bg-bg-surface px-6 py-14 text-center shadow-elevation-1',
|
|
299
|
+
className
|
|
300
|
+
)}
|
|
301
|
+
>
|
|
302
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-full bg-status-error-bg text-status-error-text">
|
|
303
|
+
<AlertTriangle size={22} />
|
|
304
|
+
</div>
|
|
305
|
+
<p className="text-base font-medium text-text-primary">Couldn’t load this list</p>
|
|
306
|
+
<p className="max-w-sm text-sm text-text-secondary">
|
|
307
|
+
The service was briefly unreachable. This is usually momentary — try again.
|
|
308
|
+
</p>
|
|
309
|
+
{onRetry && (
|
|
310
|
+
<Button variant="outline" size="sm" onClick={onRetry} className="mt-1">
|
|
311
|
+
<RefreshCw size={14} className="mr-1.5" />
|
|
312
|
+
Retry
|
|
313
|
+
</Button>
|
|
314
|
+
)}
|
|
315
|
+
</div>
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
|
|
279
319
|
const isEmpty = paginatedData.length === 0;
|
|
280
320
|
|
|
281
321
|
const renderEmpty = () =>
|
|
@@ -58,9 +58,7 @@ export function GlassPanel({
|
|
|
58
58
|
{title != null && (
|
|
59
59
|
<h3 className="truncate text-sm font-semibold text-text-primary">{title}</h3>
|
|
60
60
|
)}
|
|
61
|
-
{description != null &&
|
|
62
|
-
<p className="text-xs text-text-secondary">{description}</p>
|
|
63
|
-
)}
|
|
61
|
+
{description != null && <p className="text-xs text-text-secondary">{description}</p>}
|
|
64
62
|
</div>
|
|
65
63
|
{action != null && <div className="flex shrink-0 items-center gap-2">{action}</div>}
|
|
66
64
|
</div>
|