@burdenoff/microfe-proserviceworld 2026.709.2 → 2026.709.4

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 (51) hide show
  1. package/dist/node_modules/clsx/dist/clsx.js +1 -1
  2. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  3. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +130 -130
  4. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  5. package/dist/proserviceworld/ProServiceWorldRoot.js +4 -2
  6. package/dist/proserviceworld/ProServiceWorldRoot.js.map +1 -1
  7. package/dist/proserviceworld/ProServiceWorldRoutes.js.map +1 -1
  8. package/dist/proserviceworld/components/DiscussionThread.js.map +1 -1
  9. package/dist/proserviceworld/components/FeatureFlaggedPage.js.map +1 -1
  10. package/dist/proserviceworld/components/LoadMore.js.map +1 -1
  11. package/dist/proserviceworld/components/TagPicker.js.map +1 -1
  12. package/dist/proserviceworld/components/ui.js.map +1 -1
  13. package/dist/proserviceworld/hooks/useAnalytics.js.map +1 -1
  14. package/dist/proserviceworld/hooks/useEntityComments.js.map +1 -1
  15. package/dist/proserviceworld/hooks/useFiles.js.map +1 -1
  16. package/dist/proserviceworld/hooks/usePageViewAnalytics.js.map +1 -1
  17. package/dist/proserviceworld/hooks/useProServiceWorldApi.js.map +1 -1
  18. package/dist/proserviceworld/i18n/index.d.ts.map +1 -1
  19. package/dist/proserviceworld/i18n/index.js +30 -1
  20. package/dist/proserviceworld/i18n/index.js.map +1 -1
  21. package/dist/proserviceworld/index.js +5 -4
  22. package/dist/proserviceworld/pages/AnalyticsPage.js.map +1 -1
  23. package/dist/proserviceworld/pages/ClientDetailPage.js.map +1 -1
  24. package/dist/proserviceworld/pages/ClientsPage.d.ts.map +1 -1
  25. package/dist/proserviceworld/pages/ClientsPage.js +1 -1
  26. package/dist/proserviceworld/pages/ClientsPage.js.map +1 -1
  27. package/dist/proserviceworld/pages/CompliancePage.js.map +1 -1
  28. package/dist/proserviceworld/pages/ConflictsPage.js.map +1 -1
  29. package/dist/proserviceworld/pages/DashboardPage.js.map +1 -1
  30. package/dist/proserviceworld/pages/DocumentsPage.js.map +1 -1
  31. package/dist/proserviceworld/pages/EngagementDetailPage.js.map +1 -1
  32. package/dist/proserviceworld/pages/EngagementsPage.d.ts.map +1 -1
  33. package/dist/proserviceworld/pages/EngagementsPage.js +123 -122
  34. package/dist/proserviceworld/pages/EngagementsPage.js.map +1 -1
  35. package/dist/proserviceworld/pages/InvoicesPage.js.map +1 -1
  36. package/dist/proserviceworld/pages/MattersPage.d.ts.map +1 -1
  37. package/dist/proserviceworld/pages/MattersPage.js +124 -123
  38. package/dist/proserviceworld/pages/MattersPage.js.map +1 -1
  39. package/dist/proserviceworld/pages/PracticeAreasPage.js.map +1 -1
  40. package/dist/proserviceworld/pages/TimePage.js.map +1 -1
  41. package/dist/proserviceworld/providers/ProServiceWorldProvider.js.map +1 -1
  42. package/dist/proserviceworld/services/assistantApi.js.map +1 -1
  43. package/dist/proserviceworld/services/createSandboxAssistantTransport.js.map +1 -1
  44. package/dist/proserviceworld/utils/cn.js +1 -1
  45. package/dist/proserviceworld/utils/cn.js.map +1 -1
  46. package/dist/proserviceworld/utils/native.js.map +1 -1
  47. package/dist/proserviceworld/utils/nav.js.map +1 -1
  48. package/dist/proserviceworld/utils/navigation.js.map +1 -1
  49. package/dist/proserviceworld/utils/pageContext.js +14 -16
  50. package/dist/proserviceworld/utils/pageContext.js.map +1 -1
  51. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"pageContext.js","names":[],"sources":["../../../src/proserviceworld/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering for ProServiceWorld.\n *\n * Captures the user's current browser context to be sent alongside every\n * assistant prompt. The exported shape matches the agent's allow-list contract\n * (`currentUrl`, `currentPage`, `entityType`, `entityId`, `platform`, `version`,\n * `viewportSize`).\n */\n\nimport type { PageContext } from '../types';\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\nconst PRODUCT_ID = 'proserviceworld';\n\nexport function gatherPageContext(): PageContext {\n const url = window.location.href;\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveProServiceWorldConversationContext(\n window.location.pathname,\n window.location.search\n );\n\n return {\n currentUrl: url,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: PRODUCT_ID,\n version: import.meta.env.VITE_APP_VERSION ?? '2026.709.1',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n userAgent: navigator.userAgent,\n timestamp: new Date().toISOString(),\n };\n}\n\nfunction matchPath(pattern: RegExp, pathname: string): RegExpMatchArray | null {\n return pathname.match(pattern);\n}\n\nexport function resolveProServiceWorldConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n\n const directMatches: Array<[RegExp, string]> = [\n [/^\\/proserviceworld\\/clients\\/([^/]+)$/, 'PROSERVICEWORLD_CLIENT'],\n [/^\\/proserviceworld\\/engagements\\/([^/]+)$/, 'PROSERVICEWORLD_ENGAGEMENT'],\n [/^\\/proserviceworld\\/matters\\/([^/]+)$/, 'PROSERVICEWORLD_MATTER'],\n [/^\\/proserviceworld\\/invoices\\/([^/]+)$/, 'PROSERVICEWORLD_INVOICE'],\n [/^\\/proserviceworld\\/compliance\\/([^/]+)$/, 'PROSERVICEWORLD_COMPLIANCE'],\n [/^\\/proserviceworld\\/conflicts\\/([^/]+)$/, 'PROSERVICEWORLD_CONFLICT'],\n [/^\\/proserviceworld\\/documents\\/([^/]+)$/, 'PROSERVICEWORLD_DOCUMENT'],\n [/^\\/proserviceworld\\/practice-areas\\/([^/]+)$/, 'PROSERVICEWORLD_PRACTICE_AREA'],\n ];\n\n for (const [pattern, entityType] of directMatches) {\n const match = matchPath(pattern, pathname);\n if (match) {\n return {\n entityType,\n entityId: match[1],\n metadata: { routePattern: pattern.source },\n };\n }\n }\n\n const listEntityMap: Record<string, string> = {\n clients: 'PROSERVICEWORLD_CLIENT_LIST',\n engagements: 'PROSERVICEWORLD_ENGAGEMENT_LIST',\n matters: 'PROSERVICEWORLD_MATTER_LIST',\n time: 'PROSERVICEWORLD_TIME',\n invoices: 'PROSERVICEWORLD_INVOICE_LIST',\n compliance: 'PROSERVICEWORLD_COMPLIANCE_LIST',\n conflicts: 'PROSERVICEWORLD_CONFLICT_LIST',\n documents: 'PROSERVICEWORLD_DOCUMENT_LIST',\n 'practice-areas': 'PROSERVICEWORLD_PRACTICE_AREA_LIST',\n analytics: 'PROSERVICEWORLD_ANALYTICS',\n };\n\n const listMatch = pathname.match(/^\\/proserviceworld\\/([^/]+)$/);\n if (listMatch) {\n const entityType = listEntityMap[listMatch[1] ?? ''];\n if (entityType) {\n return { entityType, metadata: { routePattern: listMatch[0] } };\n }\n }\n\n const activeTab =\n params.get('tab') ??\n (() => {\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 2 ? segments[segments.length - 1] : undefined;\n })();\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n ...(params.get('selectedTargetId')\n ? { selectedTargetId: params.get('selectedTargetId') }\n : {}),\n ...(params.get('actionId') ? { actionId: params.get('actionId') } : {}),\n },\n };\n}\n"],"mappings":";AAkBA,IAAM,IAAa;AAEnB,SAAgB,IAAiC;CAC/C,IAAM,IAAM,OAAO,SAAS,MAEtB,IADe,OAAO,SAAS,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CACvC,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI,IAAI,QACpD,IAAS,EACb,OAAO,SAAS,UAChB,OAAO,SAAS,OACjB;AAED,QAAO;EACL,YAAY;EACZ;EACA,YAAY,EAAO;EACnB,UAAU,EAAO;EACjB,UAAU;EACV,SAA6C;EAC7C,cAAc,GAAG,OAAO,WAAW,GAAG,OAAO;EAC7C,WAAW,UAAU;EACrB,4BAAW,IAAI,MAAM,EAAC,aAAa;EACpC;;AAGH,SAAS,EAAU,GAAiB,GAA2C;AAC7E,QAAO,EAAS,MAAM,EAAQ;;AAGhC,SAAgB,EACd,GACA,GAC0B;CAC1B,IAAM,IAAS,IAAI,gBAAgB,EAAO;AAa1C,MAAK,IAAM,CAAC,GAAS,MAX0B;EAC7C,CAAC,yCAAyC,yBAAyB;EACnE,CAAC,6CAA6C,6BAA6B;EAC3E,CAAC,yCAAyC,yBAAyB;EACnE,CAAC,0CAA0C,0BAA0B;EACrE,CAAC,4CAA4C,6BAA6B;EAC1E,CAAC,2CAA2C,2BAA2B;EACvE,CAAC,2CAA2C,2BAA2B;EACvE,CAAC,gDAAgD,gCAAgC;EAClF,EAEkD;EACjD,IAAM,IAAQ,EAAU,GAAS,EAAS;AAC1C,MAAI,EACF,QAAO;GACL;GACA,UAAU,EAAM;GAChB,UAAU,EAAE,cAAc,EAAQ,QAAQ;GAC3C;;CAIL,IAAM,IAAwC;EAC5C,SAAS;EACT,aAAa;EACb,SAAS;EACT,MAAM;EACN,UAAU;EACV,YAAY;EACZ,WAAW;EACX,WAAW;EACX,kBAAkB;EAClB,WAAW;EACZ,EAEK,IAAY,EAAS,MAAM,+BAA+B;AAChE,KAAI,GAAW;EACb,IAAM,IAAa,EAAc,EAAU,MAAM;AACjD,MAAI,EACF,QAAO;GAAE;GAAY,UAAU,EAAE,cAAc,EAAU,IAAI;GAAE;;CAInE,IAAM,IACJ,EAAO,IAAI,MAAM,WACV;EACL,IAAM,IAAW,EAAS,MAAM,IAAI,CAAC,OAAO,QAAQ;AACpD,SAAO,EAAS,SAAS,IAAI,EAAS,EAAS,SAAS,KAAK,KAAA;KAC3D;AAEN,QAAO;EACL,WAAW,KAAa,KAAA;EACxB,UAAU;GACR,GAAI,IAAY,EAAE,cAAW,GAAG,EAAE;GAClC,GAAI,EAAO,IAAI,mBAAmB,GAC9B,EAAE,kBAAkB,EAAO,IAAI,mBAAmB,EAAE,GACpD,EAAE;GACN,GAAI,EAAO,IAAI,WAAW,GAAG,EAAE,UAAU,EAAO,IAAI,WAAW,EAAE,GAAG,EAAE;GACvE;EACF"}
1
+ {"version":3,"file":"pageContext.js","names":[],"sources":["../../../src/proserviceworld/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering for ProServiceWorld.\n *\n * Captures the user's current browser context to be sent alongside every\n * assistant prompt. The exported shape matches the agent's allow-list contract\n * (`currentUrl`, `currentPage`, `entityType`, `entityId`, `platform`, `version`,\n * `viewportSize`).\n */\n\nimport type { PageContext } from '../types';\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\nconst PRODUCT_ID = 'proserviceworld';\n\nexport function gatherPageContext(): PageContext {\n const url = window.location.href;\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveProServiceWorldConversationContext(\n window.location.pathname,\n window.location.search\n );\n\n return {\n currentUrl: url,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: PRODUCT_ID,\n version: import.meta.env.VITE_APP_VERSION ?? '2026.709.1',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n userAgent: navigator.userAgent,\n timestamp: new Date().toISOString(),\n };\n}\n\nfunction matchPath(pattern: RegExp, pathname: string): RegExpMatchArray | null {\n return pathname.match(pattern);\n}\n\nexport function resolveProServiceWorldConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n\n const directMatches: Array<[RegExp, string]> = [\n [/^\\/proserviceworld\\/clients\\/([^/]+)$/, 'PROSERVICEWORLD_CLIENT'],\n [/^\\/proserviceworld\\/engagements\\/([^/]+)$/, 'PROSERVICEWORLD_ENGAGEMENT'],\n [/^\\/proserviceworld\\/matters\\/([^/]+)$/, 'PROSERVICEWORLD_MATTER'],\n [/^\\/proserviceworld\\/invoices\\/([^/]+)$/, 'PROSERVICEWORLD_INVOICE'],\n [/^\\/proserviceworld\\/compliance\\/([^/]+)$/, 'PROSERVICEWORLD_COMPLIANCE'],\n [/^\\/proserviceworld\\/conflicts\\/([^/]+)$/, 'PROSERVICEWORLD_CONFLICT'],\n [/^\\/proserviceworld\\/documents\\/([^/]+)$/, 'PROSERVICEWORLD_DOCUMENT'],\n [/^\\/proserviceworld\\/practice-areas\\/([^/]+)$/, 'PROSERVICEWORLD_PRACTICE_AREA'],\n ];\n\n for (const [pattern, entityType] of directMatches) {\n const match = matchPath(pattern, pathname);\n if (match) {\n return {\n entityType,\n entityId: match[1],\n metadata: { routePattern: pattern.source },\n };\n }\n }\n\n const listEntityMap: Record<string, string> = {\n clients: 'PROSERVICEWORLD_CLIENT_LIST',\n engagements: 'PROSERVICEWORLD_ENGAGEMENT_LIST',\n matters: 'PROSERVICEWORLD_MATTER_LIST',\n time: 'PROSERVICEWORLD_TIME',\n invoices: 'PROSERVICEWORLD_INVOICE_LIST',\n compliance: 'PROSERVICEWORLD_COMPLIANCE_LIST',\n conflicts: 'PROSERVICEWORLD_CONFLICT_LIST',\n documents: 'PROSERVICEWORLD_DOCUMENT_LIST',\n 'practice-areas': 'PROSERVICEWORLD_PRACTICE_AREA_LIST',\n analytics: 'PROSERVICEWORLD_ANALYTICS',\n };\n\n const listMatch = pathname.match(/^\\/proserviceworld\\/([^/]+)$/);\n if (listMatch) {\n const entityType = listEntityMap[listMatch[1] ?? ''];\n if (entityType) {\n return { entityType, metadata: { routePattern: listMatch[0] } };\n }\n }\n\n const activeTab =\n params.get('tab') ??\n (() => {\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 2 ? segments[segments.length - 1] : undefined;\n })();\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n ...(params.get('selectedTargetId')\n ? { selectedTargetId: params.get('selectedTargetId') }\n : {}),\n ...(params.get('actionId') ? { actionId: params.get('actionId') } : {}),\n },\n };\n}\n"],"mappings":"AAoBA,SAAgB,IAAiC;CAC/C,IAAM,IAAM,OAAO,SAAS,MAEtB,IADe,OAAO,SAAS,SAAS,MAAM,GAAG,CAAC,CAAC,OAAO,OAC5C,CAAA,CAAa,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,QACpD,IAAS,EACb,OAAO,SAAS,UAChB,OAAO,SAAS,MAClB;CAEA,OAAO;EACL,YAAY;EACZ;EACA,YAAY,EAAO;EACnB,UAAU,EAAO;EACjB,UAAU;EACV,SAA6C;EAC7C,cAAc,GAAG,OAAO,WAAW,GAAG,OAAO;EAC7C,WAAW,UAAU;EACrB,4BAAW,IAAI,KAAK,EAAA,CAAE,YAAY;CACpC;AACF;AAEA,SAAS,EAAU,GAAiB,GAA2C;CAC7E,OAAO,EAAS,MAAM,CAAO;AAC/B;AAEA,SAAgB,EACd,GACA,GAC0B;CAC1B,IAAM,IAAS,IAAI,gBAAgB,CAAM;CAazC,KAAK,IAAM,CAAC,GAAS,MAAe;EAVlC,CAAC,yCAAyC,wBAAwB;EAClE,CAAC,6CAA6C,4BAA4B;EAC1E,CAAC,yCAAyC,wBAAwB;EAClE,CAAC,0CAA0C,yBAAyB;EACpE,CAAC,4CAA4C,4BAA4B;EACzE,CAAC,2CAA2C,0BAA0B;EACtE,CAAC,2CAA2C,0BAA0B;EACtE,CAAC,gDAAgD,+BAA+B;CAG9C,GAAe;EACjD,IAAM,IAAQ,EAAU,GAAS,CAAQ;EACzC,IAAI,GACF,OAAO;GACL;GACA,UAAU,EAAM;GAChB,UAAU,EAAE,cAAc,EAAQ,OAAO;EAC3C;CAEJ;CAEA,IAAM,IAAwC;EAC5C,SAAS;EACT,aAAa;EACb,SAAS;EACT,MAAM;EACN,UAAU;EACV,YAAY;EACZ,WAAW;EACX,WAAW;EACX,kBAAkB;EAClB,WAAW;CACb,GAEM,IAAY,EAAS,MAAM,8BAA8B;CAC/D,IAAI,GAAW;EACb,IAAM,IAAa,EAAc,EAAU,MAAM;EACjD,IAAI,GACF,OAAO;GAAE;GAAY,UAAU,EAAE,cAAc,EAAU,GAAG;EAAE;CAElE;CAEA,IAAM,IACJ,EAAO,IAAI,KAAK,YACT;EACL,IAAM,IAAW,EAAS,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO;EACnD,OAAO,EAAS,SAAS,IAAI,EAAS,EAAS,SAAS,KAAK,KAAA;CAC/D,EAAA,CAAG;CAEL,OAAO;EACL,WAAW,KAAa,KAAA;EACxB,UAAU;GACR,GAAI,IAAY,EAAE,aAAU,IAAI,CAAC;GACjC,GAAI,EAAO,IAAI,kBAAkB,IAC7B,EAAE,kBAAkB,EAAO,IAAI,kBAAkB,EAAE,IACnD,CAAC;GACL,GAAI,EAAO,IAAI,UAAU,IAAI,EAAE,UAAU,EAAO,IAAI,UAAU,EAAE,IAAI,CAAC;EACvE;CACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-proserviceworld",
3
- "version": "2026.709.2",
3
+ "version": "2026.709.4",
4
4
  "description": "Burdenoff ProServiceWorld Microfrontend",
5
5
  "type": "module",
6
6
  "files": [
@@ -76,7 +76,7 @@
76
76
  "tailwindcss": "^4.0.0",
77
77
  "typescript": "^5.9.0",
78
78
  "typescript-eslint": "^8.54.0",
79
- "vite": "8.0.8",
79
+ "vite": "8.1.4",
80
80
  "vite-plugin-dts": "3.9.1"
81
81
  },
82
82
  "peerDependencies": {