@burdenoff/fe-libs 2026.731.5 → 2026.801.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.
@@ -3,7 +3,7 @@ import { useSafeShellUi as t } from "../shared/providers/shell/ShellUiProvider.j
3
3
  import { useEffect as n, useMemo as r, useState as i } from "react";
4
4
  import { ChevronRight as a, Home as o, PanelTopClose as s, PanelTopOpen as c } from "lucide-react";
5
5
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
- import { useLocation as d, useNavigate as f } from "react-router-dom";
6
+ import { useLocation as d, useNavigate as f } from "react-router";
7
7
  //#region src/chrome/AutoBreadcrumbs.tsx
8
8
  var p = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, m = /* @__PURE__ */ new Map();
9
9
  function h(e, t) {
@@ -7,7 +7,7 @@ import { useEffect as o, useMemo as s, useState as c } from "react";
7
7
  import { Github as l, Globe as u, Linkedin as d, MessageCircle as f, Twitter as p, Youtube as m } from "lucide-react";
8
8
  import { jsx as h } from "react/jsx-runtime";
9
9
  import { gql as g } from "@apollo/client/core";
10
- import { Link as _ } from "react-router-dom";
10
+ import { Link as _ } from "react-router";
11
11
  //#region src/chrome/DynamicFooter.tsx
12
12
  var v = g`
13
13
  query GetFooterContentPages($filter: ContentPageFilterInput, $limit: Int) {
@@ -120,7 +120,7 @@ export declare const DEFAULT_SOCIAL_LINKS: SocialLink[];
120
120
  *
121
121
  * @example Custom columns and router integration
122
122
  * ```tsx
123
- * import { Link } from 'react-router-dom';
123
+ * import { Link } from 'react-router';
124
124
  *
125
125
  * <Footer
126
126
  * columns={myColumns}
@@ -2,7 +2,7 @@ import { cn as e } from "../lib/utils.js";
2
2
  import "react";
3
3
  import { ChevronRightIcon as t } from "lucide-react";
4
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
- import { Link as i } from "react-router-dom";
5
+ import { Link as i } from "react-router";
6
6
  //#region src/chrome/PageHeader.tsx
7
7
  function a({ title: a, description: o, actions: s, breadcrumb: c, icon: l, toolbar: u, className: d }) {
8
8
  return /* @__PURE__ */ r("header", {
@@ -1,7 +1,7 @@
1
1
  import { useRouteRegistryStore as e } from "../shared/plugins/registries/useRouteRegistry.js";
2
2
  import { Suspense as t, useMemo as n } from "react";
3
3
  import { Fragment as r, jsx as i } from "react/jsx-runtime";
4
- import { matchPath as a, useLocation as o } from "react-router-dom";
4
+ import { matchPath as a, useLocation as o } from "react-router";
5
5
  //#region src/chrome/PluginRoutes.tsx
6
6
  var s = ({ fallback: s = null, notFound: c = null }) => {
7
7
  let l = o(), u = e((e) => e.items), d = n(() => u.filter((e) => e.visible !== !1).sort((e, t) => t.path.length - e.path.length), [u]), f = n(() => d.find((e) => !!a({
@@ -9,7 +9,7 @@ import { NavCustomizeDialog as l } from "./NavCustomizeDialog.js";
9
9
  import { PersonaSimulationPill as u, PersonaSurfaceControls as d } from "./PersonaSurfaceControls.js";
10
10
  import { useMemo as f } from "react";
11
11
  import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
12
- import { useLocation as g, useNavigate as _ } from "react-router-dom";
12
+ import { useLocation as g, useNavigate as _ } from "react-router";
13
13
  //#region src/chrome/ProductSideNav.tsx
14
14
  function v({ logo: v, appName: y, groupOrder: b, groupLabels: x, mobileActions: S, customHeader: C, homeAriaLabel: w = "Go to dashboard", collapseLabel: T = "Collapse" }) {
15
15
  let E = _(), D = g(), { sidebarCollapsed: O, toggleSidebar: k } = r(), A = o(), j = e((e) => e.items), M = n(), N = i(), P = N?.simulation ?? null, F = M?.hasPermission, I = !!M && !M.isLoading && !M.error, L = f(() => {
@@ -1,7 +1,7 @@
1
1
  import { isShellLessRoute as e } from "../config/shellRoutes.js";
2
2
  import { Suspense as t } from "react";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
- import { useLocation as i } from "react-router-dom";
4
+ import { useLocation as i } from "react-router";
5
5
  //#region src/shared/components/ConditionalShell.tsx
6
6
  function a({ children: a, routes: o, ShellComponent: s, shellExtras: c, shellFallback: l }) {
7
7
  return e(i().pathname, o) ? /* @__PURE__ */ n("div", {
@@ -23,7 +23,7 @@ import { WidgetHeader as me } from "./contextConversationWidget/WidgetHeader.js"
23
23
  import { useEffect as u, useMemo as d, useRef as he, useState as f } from "react";
24
24
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
25
25
  import { useQuery as h } from "@apollo/client/react";
26
- import { useNavigate as ge } from "react-router-dom";
26
+ import { useNavigate as ge } from "react-router";
27
27
  //#region src/shared/components/ContextConversationWidget.tsx
28
28
  function g({ className: g, widgetKey: _ }) {
29
29
  let { t: v } = te(), { workspaceId: y } = n(), b = t(), x = ne(), S = e("workspace"), C = ge(), [w, T] = f(null), [E, D] = f(null), [O, k] = f(""), [A, _e] = f(() => typeof window < "u" ? window.innerWidth < 768 : !1), [j, M] = f(null), [N, P] = f(null), [F, I] = f(""), [L, R] = f(null), [z, B] = f([]), V = he(null), H = d(() => (e, t) => {
@@ -3,7 +3,7 @@ import { m as t } from "../../node_modules/react-error-boundary/dist/react-error
3
3
  import { PageLoadingFallback as n } from "./LoadingFallback.js";
4
4
  import { Suspense as r } from "react";
5
5
  import { jsx as i } from "react/jsx-runtime";
6
- import { useLocation as a } from "react-router-dom";
6
+ import { useLocation as a } from "react-router";
7
7
  //#region src/shared/components/MicrofrontendErrorBoundary.tsx
8
8
  function o({ children: o, fallback: s, loadingMessage: c = "Loading..." }) {
9
9
  return /* @__PURE__ */ i(t, {
@@ -30,9 +30,9 @@ export interface RequireAuthProps {
30
30
  * - Customizable redirect
31
31
  * - Flexible fallback components
32
32
  *
33
- * @example Basic usage (with Navigate from react-router-dom)
33
+ * @example Basic usage (with Navigate from react-router)
34
34
  * ```tsx
35
- * import { Navigate } from 'react-router-dom';
35
+ * import { Navigate } from 'react-router';
36
36
  *
37
37
  * <RequireAuth redirect={(path) => <Navigate to={path} replace />}>
38
38
  * <ProtectedPage />
@@ -1,6 +1,6 @@
1
1
  import { DEFAULT_ACTIVE_CONTEXT_URL_PARAMS as e } from "../../providers/shell/ActiveContextStorage.js";
2
2
  import { useActiveContext as t } from "../../providers/shell/ActiveContextProvider.js";
3
- import { useParams as n, useSearchParams as r } from "react-router-dom";
3
+ import { useParams as n, useSearchParams as r } from "react-router";
4
4
  //#region src/shared/hooks/shell/useEffectiveContext.ts
5
5
  var i = e;
6
6
  function a(e, t, n) {
@@ -3,7 +3,7 @@ import { useAppShell as t } from "../providers/shell/AppShellContext.js";
3
3
  import { useAuth as n } from "../providers/shell/AuthProvider.js";
4
4
  import { useActiveContext as r } from "../providers/shell/ActiveContextProvider.js";
5
5
  import { useEffect as i, useMemo as a, useRef as o } from "react";
6
- import { useLocation as s } from "react-router-dom";
6
+ import { useLocation as s } from "react-router";
7
7
  //#region src/shared/hooks/useReferralAttribution.ts
8
8
  var c = "boff-referral-attribution", l = [
9
9
  "ref",
@@ -5,7 +5,7 @@ import { useEffect as n, useState as r } from "react";
5
5
  import { ArrowLeft as i, Clock as a, FileText as o, Shield as s } from "lucide-react";
6
6
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
7
7
  import { gql as u } from "@apollo/client";
8
- import { Link as d, useParams as f } from "react-router-dom";
8
+ import { Link as d, useParams as f } from "react-router";
9
9
  //#region src/shared/pages/LegalPage.tsx
10
10
  var p = u`
11
11
  query GetResolvedContentPage($slug: String!, $productId: String!) {
@@ -13,7 +13,7 @@ import { SearchPagination as le } from "./searchPage/SearchPagination.js";
13
13
  import { useCallback as ue, useEffect as de, useMemo as c, useState as l } from "react";
14
14
  import { FileText as fe } from "lucide-react";
15
15
  import { jsx as u, jsxs as pe } from "react/jsx-runtime";
16
- import { useSearchParams as me } from "react-router-dom";
16
+ import { useSearchParams as me } from "react-router";
17
17
  //#region src/shared/pages/SearchPage.tsx
18
18
  function d({ entityTypeOptions: d = a, entityTypeIcons: he = i, productOptions: ge = ee, defaultProductSources: _e = [], placeholder: ve = "Search for documents, tags, projects, tasks...", subtitle: ye = "Search across all entities in your workspace", supplementalSearch: f } = {}) {
19
19
  let be = t(), [p, xe] = me(), { workspaceId: Se } = e(), { searchFull: Ce, isSearching: we } = n(), Te = p.get("q") || "", Ee = p.get("mode") || "FULLTEXT", De = p.get("sortBy") || "SCORE_DESC", Oe = s(p.get("types") || ""), ke = s(p.get("excludeTypes") || ""), Ae = s(p.get("products") || ""), je = p.get("createdBy") || "", Me = p.get("updatedBy") || "", Ne = p.get("projectId") || "", Pe = p.get("from") || "", Fe = p.get("to") || "", Ie = p.get("updatedFrom") || "", Le = p.get("updatedTo") || "", Re = s(p.get("excludeIds") || ""), m = ne(p.get("tagFilter"), {}), ze = te(ne(p.get("metadataConditions"), [])), Be = parseInt(p.get("page") || "1", 10), [h, Ve] = l(Te), [g, He] = l(Ee), [_, Ue] = l(De), [v, We] = l(Oe), [y, Ge] = l(ke), [b, Ke] = l(Ae.length > 0 ? Ae : _e), [x, qe] = l(je), [S, Je] = l(Me), [C, Ye] = l(Ne), [w, Xe] = l(Pe), [T, E] = l(Fe), [D, O] = l(Ie), [k, Ze] = l(Le), [A, j] = l(Re.join(", ")), [M, N] = l((m.tagIds ?? []).join(", ")), [P, F] = l((m.tagKeys ?? []).join(", ")), [I, L] = l((m.hierarchyPaths ?? []).join(", ")), [R, z] = l((m.vocabularyKeys ?? []).join(", ")), [B, V] = l(m.matchAll ?? !1), [H, U] = l(m.includeDescendants ?? !0), [W, G] = l(m.depth === void 0 ? "" : String(m.depth)), [K, q] = l(ze), [J, Y] = l(Be), [Qe, $e] = l([]), [et, tt] = l(0), [nt, rt] = l(!1), [it, at] = l(0), [ot, st] = l(), [ct, X] = l(null), [lt, ut] = l(!1), [dt, ft] = l(Te), pt = ue((e) => {
@@ -34,7 +34,7 @@ import { ToursProvider as F, useToursContext as I } from "../tours/ToursContext.
34
34
  import { TourInitializer as L } from "../tours/TourInitializer.js";
35
35
  import { Suspense as R, useCallback as z, useEffect as B, useMemo as V, useRef as H } from "react";
36
36
  import { Fragment as U, jsx as W, jsxs as G } from "react/jsx-runtime";
37
- import { BrowserRouter as le, useLocation as K } from "react-router-dom";
37
+ import { BrowserRouter as le, useLocation as K } from "react-router";
38
38
  import { Toaster as q, toast as J } from "sonner";
39
39
  import { MutationCache as ue, QueryCache as de, QueryClient as fe, QueryClientProvider as pe } from "@tanstack/react-query";
40
40
  //#region src/shared/providers/AppShellProvider.tsx
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { useLocation } from 'react-router-dom';
2
+ import { useLocation } from 'react-router';
3
3
  export interface PageConversationContext {
4
4
  product: string;
5
5
  pagePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PageConversationContextProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/PageConversationContextProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CACf,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,KACrC,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1D;AAqBD,wBAAgB,+BAA+B,CAAC,EAC9C,QAAQ,EACR,OAAO,EACP,cAAc,GACf,EAAE,oCAAoC,2CAgEtC;AAED,wBAAgB,0BAA0B,IAAI,uBAAuB,CAQpE;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,GACzD,IAAI,CAcN"}
1
+ {"version":3,"file":"PageConversationContextProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/PageConversationContextProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CACf,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,KACrC,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1D;AAqBD,wBAAgB,+BAA+B,CAAC,EAC9C,QAAQ,EACR,OAAO,EACP,cAAc,GACf,EAAE,oCAAoC,2CAgEtC;AAED,wBAAgB,0BAA0B,IAAI,uBAAuB,CAQpE;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,GACzD,IAAI,CAcN"}
@@ -1,6 +1,6 @@
1
1
  import { createContext as e, use as t, useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
2
2
  import { jsx as o } from "react/jsx-runtime";
3
- import { useLocation as s } from "react-router-dom";
3
+ import { useLocation as s } from "react-router";
4
4
  //#region src/shared/providers/shell/PageConversationContextProvider.tsx
5
5
  var c = e(null);
6
6
  function l(e) {
@@ -8,7 +8,7 @@ import { MobileTourSheet as l } from "./tourTrigger/MobileTourSheet.js";
8
8
  import { DesktopTourDropdown as u } from "./tourTrigger/DesktopTourDropdown.js";
9
9
  import { useCallback as d, useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
10
10
  import { jsx as g, jsxs as _ } from "react/jsx-runtime";
11
- import { useInRouterContext as v, useLocation as y, useNavigate as b } from "react-router-dom";
11
+ import { useInRouterContext as v, useLocation as y, useNavigate as b } from "react-router";
12
12
  //#region src/shared/tours/TourTrigger.tsx
13
13
  var x = 5e3, S = 100, C = 150;
14
14
  function w(e, t) {
@@ -14,7 +14,7 @@ import { useIdleReady as ee } from "./toursContext/useIdleReady.js";
14
14
  import { useTourMutations as te } from "./toursContext/useTourMutations.js";
15
15
  import { createContext as f, use as p, useCallback as m, useEffect as h, useMemo as g, useRef as _, useState as v } from "react";
16
16
  import { jsx as ne } from "react/jsx-runtime";
17
- import { useLocation as y } from "react-router-dom";
17
+ import { useLocation as y } from "react-router";
18
18
  //#region src/shared/tours/ToursContext.tsx
19
19
  var b = f(null);
20
20
  function x({ children: f, defaultPageId: p = "home", getPageIdFromPath: x, disabled: S = !1 }) {
@@ -4,7 +4,7 @@ import { useNavRegistryStore as n } from "../hooks/shell/useNavRegistry.js";
4
4
  import { useFooterRegistryStore as r } from "../hooks/shell/useFooterRegistry.js";
5
5
  import { useCallback as i, useEffect as a, useTransition as o } from "react";
6
6
  import { Fragment as s, jsx as c } from "react/jsx-runtime";
7
- import { useNavigate as l } from "react-router-dom";
7
+ import { useNavigate as l } from "react-router";
8
8
  //#region src/shared/utils/appHelpers.tsx
9
9
  function u({ user: n, authToken: r, workspaceId: i, tenantId: o, projectId: l, children: u }) {
10
10
  let { login: d, isAuthenticated: f } = e(), { setWorkspace: p, setTenant: m, setProject: h } = t();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.731.5",
3
+ "version": "2026.801.1",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {
@@ -340,6 +340,7 @@
340
340
  "lefthook": "^2.1.1",
341
341
  "postcss": "8.5.12",
342
342
  "prettier": "^3.4.2",
343
+ "react-router": "^8.3.0",
343
344
  "tailwindcss": "^4.0.0",
344
345
  "tw-animate-css": "^1.4.0",
345
346
  "typescript": "^5.9.0",
@@ -356,7 +357,7 @@
356
357
  "graphql": "^16.12.0",
357
358
  "react": "^19.0.0",
358
359
  "react-dom": "^19.0.0",
359
- "react-router-dom": "^7.12.0",
360
+ "react-router": "^8.3.0",
360
361
  "zustand": "^5.0.5",
361
362
  "framer-motion": "^12.0.0"
362
363
  },
@@ -139,7 +139,7 @@ export function createMicrofrontendConfig(
139
139
  ...additionalAliases,
140
140
  },
141
141
  // Ensure consistent dependency resolution
142
- dedupe: ['react', 'react-dom', 'react-router-dom', '@apollo/client', 'graphql', 'zustand'],
142
+ dedupe: ['react', 'react-dom', 'react-router', '@apollo/client', 'graphql', 'zustand'],
143
143
  },
144
144
 
145
145
  // Vite 8 uses Oxc for transforms instead of esbuild
@@ -154,7 +154,7 @@ export function createMicrofrontendConfig(
154
154
  include: [
155
155
  'react',
156
156
  'react-dom',
157
- 'react-router-dom',
157
+ 'react-router',
158
158
  '@apollo/client',
159
159
  'graphql',
160
160
  'lucide-react',
@@ -91,7 +91,7 @@ export function createAppShellConfig(config: AppShellConfig, configPath: string)
91
91
 
92
92
  // Default manual chunks for optimal caching
93
93
  const defaultManualChunks: Record<string, string[]> = {
94
- 'vendor-react': ['react', 'react-dom', 'react-router-dom'],
94
+ 'vendor-react': ['react', 'react-dom', 'react-router'],
95
95
  'vendor-apollo': ['@apollo/client', 'graphql'],
96
96
  'vendor-ui': ['lucide-react', 'zustand'],
97
97
  ...manualChunks,
@@ -172,7 +172,7 @@ export function createAppShellConfig(config: AppShellConfig, configPath: string)
172
172
  dedupe: [
173
173
  'react',
174
174
  'react-dom',
175
- 'react-router-dom',
175
+ 'react-router',
176
176
  '@apollo/client',
177
177
  'graphql',
178
178
  'zustand',
@@ -199,7 +199,7 @@ export function createAppShellConfig(config: AppShellConfig, configPath: string)
199
199
  'react-dom/client',
200
200
  'react/jsx-runtime',
201
201
  'react/jsx-dev-runtime',
202
- 'react-router-dom',
202
+ 'react-router',
203
203
  'react-error-boundary',
204
204
  '@apollo/client',
205
205
  '@apollo/client/react',
package/src/vite/types.ts CHANGED
@@ -78,7 +78,7 @@ export const STANDARD_MFE_EXTERNALS = [
78
78
  'react-dom',
79
79
  'react/jsx-runtime',
80
80
  'react/jsx-dev-runtime',
81
- 'react-router-dom',
81
+ 'react-router',
82
82
 
83
83
  // Apollo Client
84
84
  '@apollo/client',