@burdenoff/microfe-movethewheels 2026.731.2 → 2026.802.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.
@@ -1,6 +1,6 @@
1
1
  import { useMoveTheWheels as e } from "./providers/MoveTheWheelsProvider.js";
2
2
  import { Suspense as t, lazy as n } from "react";
3
- import { Route as r, Routes as i, useNavigate as a } from "react-router-dom";
3
+ import { Route as r, Routes as i, useNavigate as a } from "react-router";
4
4
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
5
  import { NotFoundPage as c } from "@burdenoff/fe-libs/shared/pages";
6
6
  //#region src/movethewheels/MoveTheWheelsRoutes.tsx
@@ -88,7 +88,8 @@ function g({ deliveryJobId: o }) {
88
88
  g.locationAccuracy != null && /* @__PURE__ */ m("span", {
89
89
  className: "text-text-secondary",
90
90
  children: [
91
- " (±",
91
+ " ",
92
+ "(±",
92
93
  Math.round(g.locationAccuracy),
93
94
  "m)"
94
95
  ]
@@ -13,7 +13,7 @@ import { Button as u, Card as d, CardContent as f, CardHeader as p, CardTitle as
13
13
  import { EmptyState as w, PageLayout as T } from "../components/PageLayout.js";
14
14
  import { FormError as E } from "../components/FormError.js";
15
15
  import { useEffect as D, useState as O } from "react";
16
- import { useParams as k } from "react-router-dom";
16
+ import { useParams as k } from "react-router";
17
17
  import { jsx as A, jsxs as j } from "react/jsx-runtime";
18
18
  import { EmphasisPanel as M, NextSteps as ne, PagePurpose as re } from "@burdenoff/fe-libs/ui";
19
19
  //#region src/movethewheels/pages/CreateOrderPage.tsx
@@ -21,7 +21,7 @@ import { FormError as j } from "../components/FormError.js";
21
21
  import { Notice as ie, useNotice as ae } from "../components/Notice.js";
22
22
  import { formatAddress as M, formatCurrency as N, formatDate as P } from "../utils/formatters.js";
23
23
  import { useEffect as oe, useState as F } from "react";
24
- import { useParams as se } from "react-router-dom";
24
+ import { useParams as se } from "react-router";
25
25
  import { Fragment as ce, jsx as I, jsxs as L } from "react/jsx-runtime";
26
26
  import { EmphasisPanel as R, NextSteps as le, PagePurpose as z } from "@burdenoff/fe-libs/ui";
27
27
  //#region src/movethewheels/pages/CustomerDetailsPage.tsx
@@ -17,7 +17,7 @@ import { FormError as E } from "../components/FormError.js";
17
17
  import { formatCurrency as D, formatDate as O } from "../utils/formatters.js";
18
18
  import { DocumentsCard as k } from "../components/DocumentsCard.js";
19
19
  import { useEffect as A, useState as j } from "react";
20
- import { useLocation as M, useParams as N } from "react-router-dom";
20
+ import { useLocation as M, useParams as N } from "react-router";
21
21
  import { jsx as P, jsxs as F } from "react/jsx-runtime";
22
22
  import { EmphasisPanel as I, NextSteps as L, PagePurpose as R } from "@burdenoff/fe-libs/ui";
23
23
  //#region src/movethewheels/pages/DriverDetailsPage.tsx
@@ -27,7 +27,7 @@ import { formatAddress as E, formatCurrency as D, formatDate as O } from "../uti
27
27
  import { DocumentsCard as Ce } from "../components/DocumentsCard.js";
28
28
  import { ProofOfDeliveryCard as we } from "../components/ProofOfDeliveryCard.js";
29
29
  import { useState as k } from "react";
30
- import { useParams as Te } from "react-router-dom";
30
+ import { useParams as Te } from "react-router";
31
31
  import { jsx as A, jsxs as j } from "react/jsx-runtime";
32
32
  import { EmphasisPanel as Ee, NextSteps as De, PagePurpose as Oe } from "@burdenoff/fe-libs/ui";
33
33
  //#region src/movethewheels/pages/OrderDetailsPage.tsx
@@ -13,7 +13,7 @@ import { ErrorState as y, LoadingState as b, PageLayout as x } from "../componen
13
13
  import { FormError as S } from "../components/FormError.js";
14
14
  import { formatCurrency as C } from "../utils/formatters.js";
15
15
  import { useEffect as w, useState as T } from "react";
16
- import { useLocation as E, useParams as D } from "react-router-dom";
16
+ import { useLocation as E, useParams as D } from "react-router";
17
17
  import { jsx as O, jsxs as k } from "react/jsx-runtime";
18
18
  import { EmphasisPanel as A, NextSteps as j, PagePurpose as M } from "@burdenoff/fe-libs/ui";
19
19
  //#region src/movethewheels/pages/ProductDetailsPage.tsx
@@ -26,7 +26,7 @@ import { Notice as L, useNotice as R } from "../components/Notice.js";
26
26
  import { formatAddress as z, formatCurrency as B, formatDate as V } from "../utils/formatters.js";
27
27
  import { firstRealLatLng as H } from "../utils/mapMarkers.js";
28
28
  import { useEffect as U, useState as W } from "react";
29
- import { useLocation as G, useParams as K } from "react-router-dom";
29
+ import { useLocation as G, useParams as K } from "react-router";
30
30
  import { jsx as q, jsxs as J } from "react/jsx-runtime";
31
31
  import { EmphasisPanel as Y, NextSteps as X, PagePurpose as Z } from "@burdenoff/fe-libs/ui";
32
32
  //#region src/movethewheels/pages/RouteDetailsPage.tsx
@@ -17,7 +17,7 @@ import { formatAddress as b, formatDate as x } from "../utils/formatters.js";
17
17
  import { firstRealLatLng as S } from "../utils/mapMarkers.js";
18
18
  import { ProofOfDeliveryCard as C } from "../components/ProofOfDeliveryCard.js";
19
19
  import { useMemo as w, useState as T } from "react";
20
- import { useSearchParams as E } from "react-router-dom";
20
+ import { useSearchParams as E } from "react-router";
21
21
  import { jsx as D, jsxs as O } from "react/jsx-runtime";
22
22
  import { EmphasisPanel as k, PagePurpose as A } from "@burdenoff/fe-libs/ui";
23
23
  import { useI18n as j } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
@@ -15,7 +15,7 @@ import { FormError as k } from "../components/FormError.js";
15
15
  import { formatDate as A } from "../utils/formatters.js";
16
16
  import { DocumentsCard as j } from "../components/DocumentsCard.js";
17
17
  import { useEffect as M, useState as N } from "react";
18
- import { useLocation as P, useParams as F } from "react-router-dom";
18
+ import { useLocation as P, useParams as F } from "react-router";
19
19
  import { jsx as I, jsxs as L } from "react/jsx-runtime";
20
20
  import { EmphasisPanel as R, NextSteps as z, PagePurpose as B } from "@burdenoff/fe-libs/ui";
21
21
  //#region src/movethewheels/pages/VehicleDetailsPage.tsx
@@ -14,7 +14,7 @@ import { ErrorState as E, LoadingState as D, PageLayout as O } from "../componen
14
14
  import { FormError as k } from "../components/FormError.js";
15
15
  import { formatAddress as A } from "../utils/formatters.js";
16
16
  import { useEffect as j, useState as M } from "react";
17
- import { useLocation as N, useParams as P } from "react-router-dom";
17
+ import { useLocation as N, useParams as P } from "react-router";
18
18
  import { jsx as F, jsxs as I } from "react/jsx-runtime";
19
19
  import { EmphasisPanel as L, NextSteps as R, PagePurpose as z } from "@burdenoff/fe-libs/ui";
20
20
  //#region src/movethewheels/pages/WarehouseDetailsPage.tsx
@@ -1,6 +1,6 @@
1
1
  import { joinPath as e } from "../utils/navigation.js";
2
2
  import { createContext as t, useContext as n, useMemo as r } from "react";
3
- import { MemoryRouter as i } from "react-router-dom";
3
+ import { MemoryRouter as i } from "react-router";
4
4
  import { jsx as a } from "react/jsx-runtime";
5
5
  //#region src/movethewheels/providers/MoveTheWheelsProvider.tsx
6
6
  var o = t(null), s = ({ children: e, ...t }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-movethewheels",
3
- "version": "2026.731.2",
3
+ "version": "2026.802.1",
4
4
  "description": "Burdenoff MoveTheWheels Microfrontend - Logistics & Supply Chain Management Platform",
5
5
  "type": "module",
6
6
  "files": [
@@ -26,13 +26,13 @@
26
26
  "types": "./dist/index.d.ts",
27
27
  "scripts": {
28
28
  "dev": "vite --port 5191",
29
- "build": "tsc && vite build",
29
+ "build": "tsc && bash scripts/build-limits.sh --gate vite build",
30
30
  "lint": "eslint .",
31
31
  "lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
32
32
  "format": "prettier --write \"src/**/*.{ts,tsx}\"",
33
- "type:check": "tsc --noEmit",
33
+ "type:check": "bash scripts/build-limits.sh tsc --noEmit",
34
34
  "validate:schema-drift": "graphql-schema-drift",
35
- "sanity": "bun run codegen && bun run validate:schema-drift && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run build-storybook",
35
+ "sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run codegen && bun run validate:schema-drift && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run build-storybook'",
36
36
  "storybook": "storybook dev -p 6006",
37
37
  "build-storybook": "storybook build",
38
38
  "test:storybook": "test-storybook",
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@apollo/client": "^4.0.11",
51
- "@burdenoff/fe-libs": "2026.726.1",
51
+ "@burdenoff/fe-libs": "2026.801.1",
52
52
  "@react-leaflet/core": "^3.0.0",
53
53
  "@tanstack/react-query": "^5.90.16",
54
54
  "clsx": "^2.1.1",
@@ -58,7 +58,7 @@
58
58
  "react": "^19.0.0",
59
59
  "react-dom": "^19.0.0",
60
60
  "react-leaflet": "^5.0.0",
61
- "react-router-dom": "^7.1.3",
61
+ "react-router": "^8.3.0",
62
62
  "recharts": "^2.15.0",
63
63
  "tailwind-merge": "^3.4.0",
64
64
  "zustand": "^5.0.3"
package/src/dev/main.tsx CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { StrictMode, useEffect, useState } from 'react';
5
5
  import { createRoot } from 'react-dom/client';
6
- import { BrowserRouter, Routes, Route, Navigate, useNavigate } from 'react-router-dom';
6
+ import { BrowserRouter, Routes, Route, Navigate, useNavigate } from 'react-router';
7
7
  import { MoveTheWheelsRoot } from '../movethewheels';
8
8
  import './styles.css';
9
9
 
@@ -5,7 +5,7 @@
5
5
  * Uses lazy loading for code splitting.
6
6
  */
7
7
 
8
- import { Routes, Route, useNavigate } from 'react-router-dom';
8
+ import { Routes, Route, useNavigate } from 'react-router';
9
9
  import { lazy, Suspense } from 'react';
10
10
  import { NotFoundPage } from '@burdenoff/fe-libs/shared/pages';
11
11
  import { useMoveTheWheels } from './providers/MoveTheWheelsProvider';
@@ -77,7 +77,10 @@ export function ProofOfDeliveryCard({ deliveryJobId }: ProofOfDeliveryCardProps)
77
77
  <p className="font-medium">
78
78
  {epod.latitude.toFixed(5)}, {epod.longitude.toFixed(5)}
79
79
  {epod.locationAccuracy != null && (
80
- <span className="text-text-secondary"> (±{Math.round(epod.locationAccuracy)}m)</span>
80
+ <span className="text-text-secondary">
81
+ {' '}
82
+ (±{Math.round(epod.locationAccuracy)}m)
83
+ </span>
81
84
  )}
82
85
  </p>
83
86
  </div>
@@ -167,7 +167,9 @@ export function useEpod(deliveryJobId: string | undefined) {
167
167
  );
168
168
  setEpod(data.epod ? mapEpod(data.epod) : null);
169
169
  } catch (fetchError) {
170
- setError(fetchError instanceof Error ? fetchError : new Error('Failed to load proof of delivery'));
170
+ setError(
171
+ fetchError instanceof Error ? fetchError : new Error('Failed to load proof of delivery')
172
+ );
171
173
  setEpod(null);
172
174
  } finally {
173
175
  setIsLoading(false);
@@ -290,7 +292,9 @@ export function useCaptureEpod() {
290
292
  return mapEpod(data.captureEpod);
291
293
  } catch (captureError) {
292
294
  const err =
293
- captureError instanceof Error ? captureError : new Error('Failed to capture proof of delivery');
295
+ captureError instanceof Error
296
+ ? captureError
297
+ : new Error('Failed to capture proof of delivery');
294
298
  setError(err);
295
299
  throw err;
296
300
  } finally {
@@ -362,7 +366,10 @@ export function useEpodPhotoUpload() {
362
366
  setProgress(100);
363
367
  return { fileId: completed.completeUpload.fileId, fileName: file.name };
364
368
  } catch (uploadError) {
365
- const err = uploadError instanceof Error ? uploadError : new Error('The photo could not be uploaded.');
369
+ const err =
370
+ uploadError instanceof Error
371
+ ? uploadError
372
+ : new Error('The photo could not be uploaded.');
366
373
  setError(err);
367
374
  throw err;
368
375
  } finally {
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import { useEffect, useState } from 'react';
8
- import { useParams } from 'react-router-dom';
8
+ import { useParams } from 'react-router';
9
9
  import { Package, ArrowLeft, Save, Plus, Trash2, Users, MapPin } from 'lucide-react';
10
10
  import { PageLayout, EmptyState } from '../components/PageLayout';
11
11
  import { FormError } from '../components/FormError';
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
- import { useParams } from 'react-router-dom';
6
+ import { useParams } from 'react-router';
7
7
  import {
8
8
  Users,
9
9
  ArrowLeft,
@@ -27,7 +27,16 @@ import {
27
27
  Upload,
28
28
  } from 'lucide-react';
29
29
  import { PageLayout } from '../components/PageLayout';
30
- import { Button, Card, CardContent, CardHeader, CardTitle, Input, Label, Textarea } from '../components/ui';
30
+ import {
31
+ Button,
32
+ Card,
33
+ CardContent,
34
+ CardHeader,
35
+ CardTitle,
36
+ Input,
37
+ Label,
38
+ Textarea,
39
+ } from '../components/ui';
31
40
  import { SignaturePad, type SignaturePadHandle } from '../components/SignaturePad';
32
41
  import { FormError } from '../components/FormError';
33
42
  import { Notice, useNotice } from '../components/Notice';
@@ -85,10 +94,14 @@ function CaptureForm({
85
94
  }
86
95
 
87
96
  const signatureData =
88
- signatureType === 'typed' ? typedSignature.trim() : signaturePadRef.current?.toDataUrl() ?? null;
97
+ signatureType === 'typed'
98
+ ? typedSignature.trim()
99
+ : (signaturePadRef.current?.toDataUrl() ?? null);
89
100
  if (!signatureData) {
90
101
  setValidationError(
91
- signatureType === 'typed' ? 'Type the recipient full name as their signature.' : 'A signature is required.'
102
+ signatureType === 'typed'
103
+ ? 'Type the recipient full name as their signature.'
104
+ : 'A signature is required.'
92
105
  );
93
106
  return;
94
107
  }
@@ -253,7 +266,11 @@ export default function DeliveryCapturePage() {
253
266
  <Notice message={message} />
254
267
 
255
268
  {selectedJob ? (
256
- <CaptureForm job={selectedJob} onCaptured={handleCaptured} onCancel={() => setSelectedJob(null)} />
269
+ <CaptureForm
270
+ job={selectedJob}
271
+ onCaptured={handleCaptured}
272
+ onCancel={() => setSelectedJob(null)}
273
+ />
257
274
  ) : isLoading ? (
258
275
  <p className="text-text-secondary text-center py-8">Loading your deliveries…</p>
259
276
  ) : error ? (
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
- import { useLocation, useParams } from 'react-router-dom';
6
+ import { useLocation, useParams } from 'react-router';
7
7
  import {
8
8
  Users,
9
9
  ArrowLeft,
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import { useState } from 'react';
8
- import { useParams } from 'react-router-dom';
8
+ import { useParams } from 'react-router';
9
9
  import {
10
10
  Package,
11
11
  ArrowLeft,
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
- import { useLocation, useParams } from 'react-router-dom';
6
+ import { useLocation, useParams } from 'react-router';
7
7
  import { Package, ArrowLeft, Edit, Box, DollarSign, Tag, Save } from 'lucide-react';
8
8
  import { PageLayout, LoadingState, ErrorState } from '../components/PageLayout';
9
9
  import {
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
- import { useParams, useLocation } from 'react-router-dom';
6
+ import { useParams, useLocation } from 'react-router';
7
7
  import {
8
8
  Navigation,
9
9
  ArrowLeft,
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import { useMemo, useState } from 'react';
8
- import { useSearchParams } from 'react-router-dom';
8
+ import { useSearchParams } from 'react-router';
9
9
  import { MapPin, Search, Package, Truck, Clock, CheckCircle, AlertCircle } from 'lucide-react';
10
10
  import { PageLayout, EmptyState } from '../components/PageLayout';
11
11
  import { StatusBadge } from '../components/StatusBadge';
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
- import { useParams, useLocation } from 'react-router-dom';
6
+ import { useParams, useLocation } from 'react-router';
7
7
  import { Truck, ArrowLeft, MapPin, Fuel, Wrench, Edit, Save } from 'lucide-react';
8
8
  import { PageLayout, LoadingState, ErrorState } from '../components/PageLayout';
9
9
  import { StatusBadge, VehicleTypeBadge } from '../components/StatusBadge';
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
- import { useLocation, useParams } from 'react-router-dom';
6
+ import { useLocation, useParams } from 'react-router';
7
7
  import { Warehouse, ArrowLeft, Edit, MapPin, Clock, Users, Box, Save } from 'lucide-react';
8
8
  import { PageLayout, LoadingState, ErrorState } from '../components/PageLayout';
9
9
  import {
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import { createContext, useContext, useMemo, type FC, type PropsWithChildren } from 'react';
9
- import { MemoryRouter } from 'react-router-dom';
9
+ import { MemoryRouter } from 'react-router';
10
10
  import type { MoveTheWheelsRootProps, MoveTheWheelsContextValue } from '../types';
11
11
  import { joinPath } from '../utils/navigation';
12
12