@burdenoff/microfe-kadaikodi 2026.801.1 → 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.
Files changed (30) hide show
  1. package/dist/kadaikodi/KadaikodiRoutes.js +1 -1
  2. package/dist/kadaikodi/KadaikodiRoutes.js.map +1 -1
  3. package/dist/kadaikodi/context/KadaikodiContext.js +1 -1
  4. package/dist/kadaikodi/context/KadaikodiContext.js.map +1 -1
  5. package/dist/kadaikodi/pages/customer/BookingDetailsPage.d.ts.map +1 -1
  6. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +1 -1
  7. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
  8. package/dist/kadaikodi/pages/customer/CartDetailPage.js +1 -1
  9. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  10. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +1 -1
  11. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
  12. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +1 -1
  13. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  14. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +1 -1
  15. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
  16. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +1 -1
  17. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  18. package/dist/services/createSandboxAssistantTransport.js +6 -4
  19. package/dist/services/createSandboxAssistantTransport.js.map +1 -1
  20. package/dist/stories/CartCard.stories.d.ts +16 -0
  21. package/dist/stories/CartCard.stories.d.ts.map +1 -0
  22. package/dist/stories/InvestmentCard.stories.d.ts +17 -0
  23. package/dist/stories/InvestmentCard.stories.d.ts.map +1 -0
  24. package/dist/stories/OrderCard.stories.d.ts +17 -0
  25. package/dist/stories/OrderCard.stories.d.ts.map +1 -0
  26. package/dist/stories/RatingDisplay.stories.d.ts +16 -0
  27. package/dist/stories/RatingDisplay.stories.d.ts.map +1 -0
  28. package/dist/utils/pageContext.js +54 -0
  29. package/dist/utils/pageContext.js.map +1 -0
  30. package/package.json +3 -3
@@ -1,12 +1,14 @@
1
- import { useSandboxAssistantTransport as e } from "@burdenoff/fe-libs/shared/assistant";
1
+ import { gatherPageContext as e } from "../utils/pageContext.js";
2
+ import { useSandboxAssistantTransport as t } from "@burdenoff/fe-libs/shared/assistant";
2
3
  //#region src/services/createSandboxAssistantTransport.ts
3
- function t() {
4
- return e({
4
+ function n() {
5
+ return t({
5
6
  product: "kadaikodi",
7
+ gatherPageContext: e,
6
8
  enableCredits: !0
7
9
  });
8
10
  }
9
11
  //#endregion
10
- export { t as useSandboxAssistantTransport };
12
+ export { n as useSandboxAssistantTransport };
11
13
 
12
14
  //# sourceMappingURL=createSandboxAssistantTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSandboxAssistantTransport.js","names":[],"sources":["../../src/services/createSandboxAssistantTransport.ts"],"sourcesContent":["/**\n * kadaikodi adapter for the shared fe-libs AssistantWidget transport.\n *\n * The sandbox lifecycle + poll/stream loop now lives in\n * `@burdenoff/fe-libs/shared/assistant` (one implementation for all products);\n * this is a thin wrapper. The exported name/shape are unchanged so app-shell\n * imports don't move. The public return type is a LOCALLY-declared structural\n * mirror — never re-export fe-libs types (vite-plugin-dts path rewriting).\n */\n\nimport { useSandboxAssistantTransport as useSharedTransport } from '@burdenoff/fe-libs/shared/assistant';\n\n\ninterface AssistantSendArgs {\n prompt: string;\n onProgress: (partialText: string) => void;\n signal: AbortSignal;\n}\n\nexport interface AssistantTransport {\n sendPrompt: (args: AssistantSendArgs) => Promise<{ text: string }>;\n prewarm?: (level?: 'probe' | 'full') => void;\n suspend?: () => void;\n}\n\nexport function useSandboxAssistantTransport(): AssistantTransport {\n return useSharedTransport({\n product: 'kadaikodi',\n \n enableCredits: true,\n });\n}\n"],"mappings":";;AAyBA,SAAgB,IAAmD;AACjE,QAAO,EAAmB;EACxB,SAAS;EAET,eAAe;EAChB,CAAC"}
1
+ {"version":3,"file":"createSandboxAssistantTransport.js","names":[],"sources":["../../src/services/createSandboxAssistantTransport.ts"],"sourcesContent":["/**\n * kadaikodi adapter for the shared fe-libs AssistantWidget transport.\n *\n * The sandbox lifecycle + poll/stream loop now lives in\n * `@burdenoff/fe-libs/shared/assistant` (one implementation for all products);\n * this is a thin wrapper. The exported name/shape are unchanged so app-shell\n * imports don't move. The public return type is a LOCALLY-declared structural\n * mirror — never re-export fe-libs types (vite-plugin-dts path rewriting).\n */\n\nimport { useSandboxAssistantTransport as useSharedTransport } from '@burdenoff/fe-libs/shared/assistant';\nimport { gatherPageContext } from '../utils/pageContext';\n\ninterface AssistantSendArgs {\n prompt: string;\n onProgress: (partialText: string) => void;\n signal: AbortSignal;\n}\n\nexport interface AssistantTransport {\n sendPrompt: (args: AssistantSendArgs) => Promise<{ text: string }>;\n prewarm?: (level?: 'probe' | 'full') => void;\n suspend?: () => void;\n}\n\nexport function useSandboxAssistantTransport(): AssistantTransport {\n return useSharedTransport({\n product: 'kadaikodi',\n gatherPageContext: gatherPageContext,\n enableCredits: true,\n });\n}\n"],"mappings":";;;AAyBA,SAAgB,IAAmD;AACjE,QAAO,EAAmB;EACxB,SAAS;EACU;EACnB,eAAe;EAChB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { CartCard } from '../kadaikodi/components/CartCard';
3
+
4
+ declare const meta: Meta<typeof CartCard>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const Open: Story;
8
+ export declare const Busy: Story;
9
+ export declare const TemporarilyClosed: Story;
10
+ /**
11
+ * Interaction test: the card is an activatable control, so both a pointer click
12
+ * and a keyboard Enter must invoke `onClick` with the provider id. This is the
13
+ * regression that the story smoke run in CI actually gates (BOFF-3368).
14
+ */
15
+ export declare const ActivatesOnClickAndKeyboard: Story;
16
+ //# sourceMappingURL=CartCard.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartCard.stories.d.ts","sourceRoot":"","sources":["../../src/stories/CartCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAuB/B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,IAAI,EAAE,KAAU,CAAC;AAE9B,eAAO,MAAM,IAAI,EAAE,KAQlB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAK/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAYzC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { InvestmentCard } from '../kadaikodi/components/InvestmentCard';
3
+
4
+ declare const meta: Meta<typeof InvestmentCard>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const Active: Story;
8
+ export declare const LowRisk: Story;
9
+ export declare const FullyFunded: Story;
10
+ /**
11
+ * Interaction test: the progress percentage is derived arithmetic and must stay
12
+ * clamped to 0-100 even when raised exceeds target. Guards a division/clamp
13
+ * regression that a pure render smoke test would not catch.
14
+ */
15
+ export declare const ProgressIsClampedAndCardActivates: Story;
16
+ export declare const ZeroTargetDoesNotDivideByZero: Story;
17
+ //# sourceMappingURL=InvestmentCard.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvestmentCard.stories.d.ts","sourceRoot":"","sources":["../../src/stories/InvestmentCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAwBrC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,MAAM,EAAE,KAAU,CAAC;AAEhC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAE,KAY/C,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,KAS3C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { OrderCard } from '../kadaikodi/components/OrderCard';
3
+
4
+ declare const meta: Meta<typeof OrderCard>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const Preparing: Story;
8
+ export declare const OutForDelivery: Story;
9
+ export declare const Cancelled: Story;
10
+ /**
11
+ * Interaction test: order cards render a short id, a pluralised item count and a
12
+ * localised currency total. All three have silently regressed before, so assert
13
+ * them rather than only smoke-rendering the story.
14
+ */
15
+ export declare const RendersSummaryAndActivates: Story;
16
+ export declare const SingleItemUsesSingularLabel: Story;
17
+ //# sourceMappingURL=OrderCard.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderCard.stories.d.ts","sourceRoot":"","sources":["../../src/stories/OrderCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAwBhC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAAU,CAAC;AAEnC,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,KAUxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KASzC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { RatingDisplay } from '../kadaikodi/components/RatingDisplay';
3
+
4
+ declare const meta: Meta<typeof RatingDisplay>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const WithReviewCount: Story;
8
+ export declare const NoReviewCount: Story;
9
+ export declare const Medium: Story;
10
+ /**
11
+ * Interaction test: ratings arriving from the API are not guaranteed to be in
12
+ * range, so the component clamps them. Assert both ends of the clamp.
13
+ */
14
+ export declare const ClampsOutOfRangeValues: Story;
15
+ export declare const ClampsNegativeValues: Story;
16
+ //# sourceMappingURL=RatingDisplay.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingDisplay.stories.d.ts","sourceRoot":"","sources":["../../src/stories/RatingDisplay.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAMpC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,eAAe,EAAE,KAK7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAI3B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAMpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAUpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAQlC,CAAC"}
@@ -0,0 +1,54 @@
1
+ //#region src/utils/pageContext.ts
2
+ var e = [
3
+ [/^\/kadaikodi\/customer\/cart\/([^/]+)\/direct-service\/?$/, "KADAIKODI_SERVICE_BOOKING"],
4
+ [/^\/kadaikodi\/customer\/cart\/([^/]+)\/?$/, "KADAIKODI_SERVICE_PROVIDER"],
5
+ [/^\/kadaikodi\/customer\/orders\/([^/]+)\/track\/?$/, "KADAIKODI_ORDER"],
6
+ [/^\/kadaikodi\/customer\/booking\/([^/]+)\/?$/, "KADAIKODI_BOOKING"],
7
+ [/^\/kadaikodi\/worker\/task\/([^/]+)\/?$/, "KADAIKODI_WORKER_TASK"],
8
+ [/^\/kadaikodi\/investor\/opportunity\/([^/]+)\/?$/, "KADAIKODI_INVESTMENT_OPPORTUNITY"],
9
+ [/^\/kadaikodi\/investor\/investments\/([^/]+)\/?$/, "KADAIKODI_INVESTMENT"]
10
+ ], t = [
11
+ "customer",
12
+ "cart-owner",
13
+ "worker",
14
+ "investor",
15
+ "admin"
16
+ ];
17
+ function n(n, r) {
18
+ let i = new URLSearchParams(r), a = n.split("/").filter(Boolean), o = t.find((e) => e === a[1]);
19
+ for (let [t, r] of e) {
20
+ let e = n.match(t);
21
+ if (e) return {
22
+ entityType: r,
23
+ entityId: e[1],
24
+ metadata: {
25
+ routePattern: t.source,
26
+ ...o ? { persona: o } : {}
27
+ }
28
+ };
29
+ }
30
+ let s = i.get("tab") ?? (a.length > 2 ? a[a.length - 1] : void 0);
31
+ return {
32
+ activeTab: s ?? void 0,
33
+ metadata: {
34
+ ...s ? { activeTab: s } : {},
35
+ ...o ? { persona: o } : {}
36
+ }
37
+ };
38
+ }
39
+ function r() {
40
+ let { href: e, pathname: t, search: r } = window.location, i = t.split("/").filter(Boolean).slice(0, 3).join("/") || "home", a = n(t, r);
41
+ return {
42
+ currentUrl: e,
43
+ currentPage: i,
44
+ entityType: a.entityType,
45
+ entityId: a.entityId,
46
+ platform: "kadaikodi",
47
+ version: "2026.719.4",
48
+ viewportSize: `${window.innerWidth}x${window.innerHeight}`
49
+ };
50
+ }
51
+ //#endregion
52
+ export { r as gatherPageContext };
53
+
54
+ //# sourceMappingURL=pageContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageContext.js","names":[],"sources":["../../src/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering (BOFF-3777) — captures the user's current browser\n * context so it can be sent alongside every assistant prompt, giving the shared\n * assistant page + entity awareness across all `/kadaikodi/*` routes.\n *\n * Contract note: the key MUST be `currentUrl` (NOT `activeUrl`). The agent's\n * ALLOWED_CONTEXT_KEYS filter drops anything else, so a rename here silently\n * removes the assistant's awareness rather than failing loudly.\n *\n * Only the seven allowed context keys are emitted. `userAgent` and `timestamp`\n * are intentionally kept local and not forwarded to the agent.\n */\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface PageContext {\n currentUrl: string;\n currentPage: string;\n entityType?: string;\n entityId?: string;\n platform: string;\n version: string;\n viewportSize: string;\n}\n\n/**\n * Route patterns that identify a concrete Kadaikodi entity. Ordered most\n * specific first — `customer/cart/:cartId/direct-service` must win over\n * `customer/cart/:cartId`.\n */\nconst ENTITY_ROUTES: Array<[RegExp, string]> = [\n [/^\\/kadaikodi\\/customer\\/cart\\/([^/]+)\\/direct-service\\/?$/, 'KADAIKODI_SERVICE_BOOKING'],\n [/^\\/kadaikodi\\/customer\\/cart\\/([^/]+)\\/?$/, 'KADAIKODI_SERVICE_PROVIDER'],\n [/^\\/kadaikodi\\/customer\\/orders\\/([^/]+)\\/track\\/?$/, 'KADAIKODI_ORDER'],\n [/^\\/kadaikodi\\/customer\\/booking\\/([^/]+)\\/?$/, 'KADAIKODI_BOOKING'],\n [/^\\/kadaikodi\\/worker\\/task\\/([^/]+)\\/?$/, 'KADAIKODI_WORKER_TASK'],\n [/^\\/kadaikodi\\/investor\\/opportunity\\/([^/]+)\\/?$/, 'KADAIKODI_INVESTMENT_OPPORTUNITY'],\n [/^\\/kadaikodi\\/investor\\/investments\\/([^/]+)\\/?$/, 'KADAIKODI_INVESTMENT'],\n];\n\n/**\n * Persona-level surfaces. These are not entity pages, but knowing which console\n * the user is in (\"cart-owner\" vs \"investor\") materially changes what the\n * assistant should suggest, so it travels as metadata.\n */\nconst PERSONAS = ['customer', 'cart-owner', 'worker', 'investor', 'admin'] as const;\n\nexport function resolveKadaikodiConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n const segments = pathname.split('/').filter(Boolean);\n const persona = PERSONAS.find((candidate) => candidate === segments[1]);\n\n for (const [pattern, entityType] of ENTITY_ROUTES) {\n const match = pathname.match(pattern);\n if (match) {\n return {\n entityType,\n entityId: match[1],\n metadata: {\n routePattern: pattern.source,\n ...(persona ? { persona } : {}),\n },\n };\n }\n }\n\n const activeTab =\n params.get('tab') ?? (segments.length > 2 ? segments[segments.length - 1] : undefined);\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n ...(persona ? { persona } : {}),\n },\n };\n}\n\nexport function gatherPageContext(): PageContext {\n const { href, pathname, search } = window.location;\n const pathSegments = pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveKadaikodiConversationContext(pathname, search);\n\n return {\n currentUrl: href,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: 'kadaikodi',\n version: import.meta.env.VITE_APP_VERSION ?? '2026.719.4',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n };\n}\n"],"mappings":";AAmCA,IAAM,IAAyC;CAC7C,CAAC,6DAA6D,4BAA4B;CAC1F,CAAC,6CAA6C,6BAA6B;CAC3E,CAAC,sDAAsD,kBAAkB;CACzE,CAAC,gDAAgD,oBAAoB;CACrE,CAAC,2CAA2C,wBAAwB;CACpE,CAAC,oDAAoD,mCAAmC;CACxF,CAAC,oDAAoD,uBAAuB;CAC7E,EAOK,IAAW;CAAC;CAAY;CAAc;CAAU;CAAY;CAAQ;AAE1E,SAAgB,EACd,GACA,GAC0B;CAC1B,IAAM,IAAS,IAAI,gBAAgB,EAAO,EACpC,IAAW,EAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,EAC9C,IAAU,EAAS,MAAM,MAAc,MAAc,EAAS,GAAG;AAEvE,MAAK,IAAM,CAAC,GAAS,MAAe,GAAe;EACjD,IAAM,IAAQ,EAAS,MAAM,EAAQ;AACrC,MAAI,EACF,QAAO;GACL;GACA,UAAU,EAAM;GAChB,UAAU;IACR,cAAc,EAAQ;IACtB,GAAI,IAAU,EAAE,YAAS,GAAG,EAAE;IAC/B;GACF;;CAIL,IAAM,IACJ,EAAO,IAAI,MAAM,KAAK,EAAS,SAAS,IAAI,EAAS,EAAS,SAAS,KAAK,KAAA;AAE9E,QAAO;EACL,WAAW,KAAa,KAAA;EACxB,UAAU;GACR,GAAI,IAAY,EAAE,cAAW,GAAG,EAAE;GAClC,GAAI,IAAU,EAAE,YAAS,GAAG,EAAE;GAC/B;EACF;;AAGH,SAAgB,IAAiC;CAC/C,IAAM,EAAE,SAAM,aAAU,cAAW,OAAO,UAEpC,IADe,EAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CACvB,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI,IAAI,QACpD,IAAS,EAAoC,GAAU,EAAO;AAEpE,QAAO;EACL,YAAY;EACZ;EACA,YAAY,EAAO;EACnB,UAAU,EAAO;EACjB,UAAU;EACV,SAA6C;EAC7C,cAAc,GAAG,OAAO,WAAW,GAAG,OAAO;EAC9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-kadaikodi",
3
- "version": "2026.801.1",
3
+ "version": "2026.802.1",
4
4
  "description": "Burdenoff Kadaikodi Microfrontend - Mobile services marketplace platform for connecting service providers with customers",
5
5
  "type": "module",
6
6
  "files": [
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@apollo/client": "^4.0.11",
50
- "@burdenoff/fe-libs": "2026.713.6",
50
+ "@burdenoff/fe-libs": "2026.801.1",
51
51
  "@capacitor/core": "8.3.1",
52
52
  "@capacitor/local-notifications": "8.2.1",
53
53
  "@tanstack/react-query": "^5.90.16",
@@ -56,7 +56,7 @@
56
56
  "lucide-react": "^0.468.0",
57
57
  "react": "^19.0.0",
58
58
  "react-dom": "^19.0.0",
59
- "react-router-dom": "^7.1.3",
59
+ "react-router": "^8.3.0",
60
60
  "tailwind-merge": "^3.4.0",
61
61
  "zustand": "^5.0.7"
62
62
  },