@vertesia/ui 1.5.0-dev.20260807.073259Z → 1.5.0-dev.20260901.005903Z

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 (502) hide show
  1. package/README.md +1 -7
  2. package/lib/core/components/FormItem.d.ts.map +1 -1
  3. package/lib/core/components/FormItem.js +2 -3
  4. package/lib/core/components/FormItem.js.map +1 -1
  5. package/lib/core/components/InfoTip.d.ts +20 -0
  6. package/lib/core/components/InfoTip.d.ts.map +1 -0
  7. package/lib/core/components/InfoTip.js +18 -0
  8. package/lib/core/components/InfoTip.js.map +1 -0
  9. package/lib/core/components/index.d.ts +1 -0
  10. package/lib/core/components/index.d.ts.map +1 -1
  11. package/lib/core/components/index.js +1 -0
  12. package/lib/core/components/index.js.map +1 -1
  13. package/lib/core/components/shadcn/Panel.d.ts.map +1 -1
  14. package/lib/core/components/shadcn/Panel.js +3 -3
  15. package/lib/core/components/shadcn/Panel.js.map +1 -1
  16. package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js +1 -1
  17. package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -1
  18. package/lib/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -1
  19. package/lib/core/components/shadcn/filters/filter/dateFilter.js +1 -1
  20. package/lib/core/components/shadcn/filters/filter/dateFilter.js.map +1 -1
  21. package/lib/core/components/shadcn/filters/filters.d.ts.map +1 -1
  22. package/lib/core/components/shadcn/filters/filters.js +1 -1
  23. package/lib/core/components/shadcn/filters/filters.js.map +1 -1
  24. package/lib/core/components/shadcn/index.d.ts +1 -0
  25. package/lib/core/components/shadcn/index.d.ts.map +1 -1
  26. package/lib/core/components/shadcn/index.js +1 -0
  27. package/lib/core/components/shadcn/index.js.map +1 -1
  28. package/lib/core/components/shadcn/modal/dialog.d.ts.map +1 -1
  29. package/lib/core/components/shadcn/modal/dialog.js +1 -3
  30. package/lib/core/components/shadcn/modal/dialog.js.map +1 -1
  31. package/lib/core/components/shadcn/overflowTabs.d.ts +59 -0
  32. package/lib/core/components/shadcn/overflowTabs.d.ts.map +1 -0
  33. package/lib/core/components/shadcn/overflowTabs.js +173 -0
  34. package/lib/core/components/shadcn/overflowTabs.js.map +1 -0
  35. package/lib/core/components/shadcn/selectBox.js +2 -2
  36. package/lib/core/components/shadcn/selectBox.js.map +1 -1
  37. package/lib/core/components/shadcn/theme/ThemeProvider.d.ts +3 -1
  38. package/lib/core/components/shadcn/theme/ThemeProvider.d.ts.map +1 -1
  39. package/lib/core/components/shadcn/theme/ThemeProvider.js +8 -9
  40. package/lib/core/components/shadcn/theme/ThemeProvider.js.map +1 -1
  41. package/lib/core/utils/dayjs.d.ts +12 -0
  42. package/lib/core/utils/dayjs.d.ts.map +1 -0
  43. package/lib/core/utils/dayjs.js +16 -0
  44. package/lib/core/utils/dayjs.js.map +1 -0
  45. package/lib/env/index.d.ts +17 -0
  46. package/lib/env/index.d.ts.map +1 -1
  47. package/lib/env/index.js +18 -1
  48. package/lib/env/index.js.map +1 -1
  49. package/lib/features/agent/PayloadBuilder.d.ts +1 -0
  50. package/lib/features/agent/PayloadBuilder.d.ts.map +1 -1
  51. package/lib/features/agent/PayloadBuilder.js +22 -5
  52. package/lib/features/agent/PayloadBuilder.js.map +1 -1
  53. package/lib/features/agent/chat/AgentRightPanel.d.ts.map +1 -1
  54. package/lib/features/agent/chat/AgentRightPanel.js +3 -135
  55. package/lib/features/agent/chat/AgentRightPanel.js.map +1 -1
  56. package/lib/features/agent/chat/ArtifactsTab.d.ts.map +1 -1
  57. package/lib/features/agent/chat/ArtifactsTab.js +1 -1
  58. package/lib/features/agent/chat/ArtifactsTab.js.map +1 -1
  59. package/lib/features/agent/chat/AskUserWidget.d.ts.map +1 -1
  60. package/lib/features/agent/chat/AskUserWidget.js +19 -4
  61. package/lib/features/agent/chat/AskUserWidget.js.map +1 -1
  62. package/lib/features/agent/chat/ModernAgentConversation.d.ts +6 -0
  63. package/lib/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  64. package/lib/features/agent/chat/ModernAgentConversation.js +99 -29
  65. package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -1
  66. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.d.ts.map +1 -1
  67. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.js +10 -9
  68. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.js.map +1 -1
  69. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  70. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +5 -8
  71. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  72. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.d.ts.map +1 -1
  73. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js +45 -4
  74. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js.map +1 -1
  75. package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +1 -1
  76. package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -1
  77. package/lib/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
  78. package/lib/features/agent/chat/ModernAgentOutput/Header.js +3 -3
  79. package/lib/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  80. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  81. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +1 -1
  82. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  83. package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +1 -1
  84. package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.js +1 -1
  85. package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -1
  86. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +1 -1
  87. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
  88. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -1
  89. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +9 -121
  90. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
  91. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts +6 -0
  92. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
  93. package/lib/features/agent/chat/ModernAgentOutput/utils.js +19 -11
  94. package/lib/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
  95. package/lib/features/agent/chat/VegaLiteChart.d.ts.map +1 -1
  96. package/lib/features/agent/chat/VegaLiteChart.js +11 -3
  97. package/lib/features/agent/chat/VegaLiteChart.js.map +1 -1
  98. package/lib/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
  99. package/lib/features/agent/chat/hooks/useAgentStream.js +3 -0
  100. package/lib/features/agent/chat/hooks/useAgentStream.js.map +1 -1
  101. package/lib/features/document-viewer/UniversalDocumentViewer.d.ts.map +1 -1
  102. package/lib/features/document-viewer/UniversalDocumentViewer.js +1 -1
  103. package/lib/features/document-viewer/UniversalDocumentViewer.js.map +1 -1
  104. package/lib/features/facets/AgentRunnerFacetsNav.d.ts +14 -2
  105. package/lib/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -1
  106. package/lib/features/facets/AgentRunnerFacetsNav.js +20 -2
  107. package/lib/features/facets/AgentRunnerFacetsNav.js.map +1 -1
  108. package/lib/features/facets/CollectionsFacetsNav.d.ts +3 -3
  109. package/lib/features/facets/CollectionsFacetsNav.d.ts.map +1 -1
  110. package/lib/features/facets/CollectionsFacetsNav.js +6 -1
  111. package/lib/features/facets/CollectionsFacetsNav.js.map +1 -1
  112. package/lib/features/facets/DocumentsFacetsNav.d.ts +3 -3
  113. package/lib/features/facets/DocumentsFacetsNav.d.ts.map +1 -1
  114. package/lib/features/facets/DocumentsFacetsNav.js +20 -8
  115. package/lib/features/facets/DocumentsFacetsNav.js.map +1 -1
  116. package/lib/features/facets/InteractionsFacetsNav.d.ts +3 -3
  117. package/lib/features/facets/InteractionsFacetsNav.d.ts.map +1 -1
  118. package/lib/features/facets/InteractionsFacetsNav.js +11 -1
  119. package/lib/features/facets/InteractionsFacetsNav.js.map +1 -1
  120. package/lib/features/facets/PromptsFacetsNav.d.ts +3 -3
  121. package/lib/features/facets/PromptsFacetsNav.d.ts.map +1 -1
  122. package/lib/features/facets/PromptsFacetsNav.js +6 -1
  123. package/lib/features/facets/PromptsFacetsNav.js.map +1 -1
  124. package/lib/features/facets/RunsFacetsNav.d.ts +4 -14
  125. package/lib/features/facets/RunsFacetsNav.d.ts.map +1 -1
  126. package/lib/features/facets/RunsFacetsNav.js +26 -15
  127. package/lib/features/facets/RunsFacetsNav.js.map +1 -1
  128. package/lib/features/facets/WorkflowExecutionsFacetsNav.d.ts +4 -3
  129. package/lib/features/facets/WorkflowExecutionsFacetsNav.d.ts.map +1 -1
  130. package/lib/features/facets/WorkflowExecutionsFacetsNav.js +18 -10
  131. package/lib/features/facets/WorkflowExecutionsFacetsNav.js.map +1 -1
  132. package/lib/features/facets/index.d.ts +1 -1
  133. package/lib/features/facets/index.d.ts.map +1 -1
  134. package/lib/features/facets/index.js.map +1 -1
  135. package/lib/features/facets/utils/SearchInterface.d.ts +4 -3
  136. package/lib/features/facets/utils/SearchInterface.d.ts.map +1 -1
  137. package/lib/features/facets/utils/SearchInterface.js +4 -0
  138. package/lib/features/facets/utils/SearchInterface.js.map +1 -1
  139. package/lib/features/layout/GenericPageNavHeader.d.ts +8 -1
  140. package/lib/features/layout/GenericPageNavHeader.d.ts.map +1 -1
  141. package/lib/features/layout/GenericPageNavHeader.js +9 -1
  142. package/lib/features/layout/GenericPageNavHeader.js.map +1 -1
  143. package/lib/features/magic-pdf/DownloadPopover.d.ts +3 -2
  144. package/lib/features/magic-pdf/DownloadPopover.d.ts.map +1 -1
  145. package/lib/features/magic-pdf/DownloadPopover.js.map +1 -1
  146. package/lib/features/magic-pdf/GroundedExtractionView.d.ts.map +1 -1
  147. package/lib/features/magic-pdf/GroundedExtractionView.js +51 -64
  148. package/lib/features/magic-pdf/GroundedExtractionView.js.map +1 -1
  149. package/lib/features/oauth/McpConnectionsButton.d.ts +1 -1
  150. package/lib/features/oauth/McpConnectionsButton.d.ts.map +1 -1
  151. package/lib/features/oauth/McpConnectionsButton.js +2 -2
  152. package/lib/features/oauth/McpConnectionsButton.js.map +1 -1
  153. package/lib/features/oauth/McpConnectionsDialog.d.ts +1 -1
  154. package/lib/features/oauth/McpConnectionsDialog.js +2 -2
  155. package/lib/features/oauth/McpConnectionsDialog.js.map +1 -1
  156. package/lib/features/oauth/useMcpConnections.d.ts +4 -5
  157. package/lib/features/oauth/useMcpConnections.d.ts.map +1 -1
  158. package/lib/features/oauth/useMcpConnections.js +20 -4
  159. package/lib/features/oauth/useMcpConnections.js.map +1 -1
  160. package/lib/features/pdf-viewer/PdfPageRenderer.d.ts.map +1 -1
  161. package/lib/features/pdf-viewer/PdfPageRenderer.js +9 -11
  162. package/lib/features/pdf-viewer/PdfPageRenderer.js.map +1 -1
  163. package/lib/features/pdf-viewer/lazyReactPdf.d.ts +10 -0
  164. package/lib/features/pdf-viewer/lazyReactPdf.d.ts.map +1 -0
  165. package/lib/features/pdf-viewer/lazyReactPdf.js +25 -0
  166. package/lib/features/pdf-viewer/lazyReactPdf.js.map +1 -0
  167. package/lib/features/store/collections/CollectionsTable.d.ts.map +1 -1
  168. package/lib/features/store/collections/CollectionsTable.js +1 -3
  169. package/lib/features/store/collections/CollectionsTable.js.map +1 -1
  170. package/lib/features/store/collections/EditCollectionView.js +1 -1
  171. package/lib/features/store/collections/EditCollectionView.js.map +1 -1
  172. package/lib/features/store/objects/ExportPropertiesModal.d.ts +3 -1
  173. package/lib/features/store/objects/ExportPropertiesModal.d.ts.map +1 -1
  174. package/lib/features/store/objects/ExportPropertiesModal.js +5 -5
  175. package/lib/features/store/objects/ExportPropertiesModal.js.map +1 -1
  176. package/lib/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  177. package/lib/features/store/objects/components/ContentOverview.js +4 -10
  178. package/lib/features/store/objects/components/ContentOverview.js.map +1 -1
  179. package/lib/features/store/objects/components/TextEditorPanel.d.ts.map +1 -1
  180. package/lib/features/store/objects/components/TextEditorPanel.js +8 -3
  181. package/lib/features/store/objects/components/TextEditorPanel.js.map +1 -1
  182. package/lib/features/store/objects/layout/renderers.d.ts.map +1 -1
  183. package/lib/features/store/objects/layout/renderers.js +1 -5
  184. package/lib/features/store/objects/layout/renderers.js.map +1 -1
  185. package/lib/features/store/objects/search/DocumentSearchContext.d.ts +44 -62
  186. package/lib/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
  187. package/lib/features/store/objects/search/DocumentSearchContext.js +47 -2
  188. package/lib/features/store/objects/search/DocumentSearchContext.js.map +1 -1
  189. package/lib/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
  190. package/lib/features/store/objects/selection/actions/DeleteObjectsAction.js +5 -0
  191. package/lib/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
  192. package/lib/features/store/objects/upload/DocumentUploadModal.d.ts +6 -1
  193. package/lib/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
  194. package/lib/features/store/objects/upload/DocumentUploadModal.js +4 -3
  195. package/lib/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
  196. package/lib/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -1
  197. package/lib/features/store/objects/upload/useSmartFileUploadProcessing.js +2 -2
  198. package/lib/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -1
  199. package/lib/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
  200. package/lib/features/store/types/ContentObjectTypesTable.js +1 -3
  201. package/lib/features/store/types/ContentObjectTypesTable.js.map +1 -1
  202. package/lib/features/store/types/IntakePolicyEditor.d.ts.map +1 -1
  203. package/lib/features/store/types/IntakePolicyEditor.js +12 -2
  204. package/lib/features/store/types/IntakePolicyEditor.js.map +1 -1
  205. package/lib/features/store/types/IntakePolicyForm.d.ts.map +1 -1
  206. package/lib/features/store/types/IntakePolicyForm.js +15 -15
  207. package/lib/features/store/types/IntakePolicyForm.js.map +1 -1
  208. package/lib/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
  209. package/lib/features/store/types/ObjectSchemaEditor.js +6 -2
  210. package/lib/features/store/types/ObjectSchemaEditor.js.map +1 -1
  211. package/lib/features/store/types/TableLayoutEditor.d.ts.map +1 -1
  212. package/lib/features/store/types/TableLayoutEditor.js +2 -0
  213. package/lib/features/store/types/TableLayoutEditor.js.map +1 -1
  214. package/lib/features/store/types/TypeRegistry.d.ts +282 -0
  215. package/lib/features/store/types/TypeRegistry.d.ts.map +1 -1
  216. package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts +281 -0
  217. package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts.map +1 -1
  218. package/lib/features/user/UserInfo.d.ts.map +1 -1
  219. package/lib/features/user/UserInfo.js +2 -4
  220. package/lib/features/user/UserInfo.js.map +1 -1
  221. package/lib/features/views/ViewActions.d.ts +32 -0
  222. package/lib/features/views/ViewActions.d.ts.map +1 -0
  223. package/lib/features/views/ViewActions.js +186 -0
  224. package/lib/features/views/ViewActions.js.map +1 -0
  225. package/lib/features/views/ViewDropTarget.d.ts +15 -0
  226. package/lib/features/views/ViewDropTarget.d.ts.map +1 -0
  227. package/lib/features/views/ViewDropTarget.js +79 -0
  228. package/lib/features/views/ViewDropTarget.js.map +1 -0
  229. package/lib/features/views/ViewExperience.d.ts +3 -2
  230. package/lib/features/views/ViewExperience.d.ts.map +1 -1
  231. package/lib/features/views/ViewExperience.js +103 -12
  232. package/lib/features/views/ViewExperience.js.map +1 -1
  233. package/lib/features/views/ViewNavigation.d.ts +1 -1
  234. package/lib/features/views/ViewNavigation.d.ts.map +1 -1
  235. package/lib/features/views/ViewNavigation.js +14 -5
  236. package/lib/features/views/ViewNavigation.js.map +1 -1
  237. package/lib/features/views/ViewResults.d.ts +1 -1
  238. package/lib/features/views/ViewResults.d.ts.map +1 -1
  239. package/lib/features/views/ViewResults.js +124 -34
  240. package/lib/features/views/ViewResults.js.map +1 -1
  241. package/lib/features/views/index.d.ts +1 -0
  242. package/lib/features/views/index.d.ts.map +1 -1
  243. package/lib/features/views/index.js +1 -0
  244. package/lib/features/views/index.js.map +1 -1
  245. package/lib/features/views/types.d.ts +46 -1
  246. package/lib/features/views/types.d.ts.map +1 -1
  247. package/lib/features/views/viewState.d.ts.map +1 -1
  248. package/lib/features/views/viewState.js +34 -0
  249. package/lib/features/views/viewState.js.map +1 -1
  250. package/lib/i18n/LanguageProvider.d.ts +3 -1
  251. package/lib/i18n/LanguageProvider.d.ts.map +1 -1
  252. package/lib/i18n/LanguageProvider.js +9 -7
  253. package/lib/i18n/LanguageProvider.js.map +1 -1
  254. package/lib/i18n/instance.d.ts +2 -0
  255. package/lib/i18n/instance.d.ts.map +1 -1
  256. package/lib/i18n/instance.js +45 -26
  257. package/lib/i18n/instance.js.map +1 -1
  258. package/lib/i18n/locales/ar.json +296 -15
  259. package/lib/i18n/locales/de.json +294 -13
  260. package/lib/i18n/locales/en.json +65 -4
  261. package/lib/i18n/locales/es.json +295 -14
  262. package/lib/i18n/locales/fr.json +294 -13
  263. package/lib/i18n/locales/it.json +294 -13
  264. package/lib/i18n/locales/ja.json +292 -10
  265. package/lib/i18n/locales/ko.json +292 -10
  266. package/lib/i18n/locales/pt.json +294 -13
  267. package/lib/i18n/locales/ru.json +291 -10
  268. package/lib/i18n/locales/tr.json +291 -10
  269. package/lib/i18n/locales/zh-TW.json +292 -10
  270. package/lib/i18n/locales/zh.json +292 -10
  271. package/lib/router/RouteComponent.d.ts +8 -0
  272. package/lib/router/RouteComponent.d.ts.map +1 -1
  273. package/lib/router/RouteComponent.js +41 -9
  274. package/lib/router/RouteComponent.js.map +1 -1
  275. package/lib/session/UserSessionProvider.d.ts.map +1 -1
  276. package/lib/session/UserSessionProvider.js +20 -29
  277. package/lib/session/UserSessionProvider.js.map +1 -1
  278. package/lib/session/auth/composable.d.ts.map +1 -1
  279. package/lib/session/auth/composable.js +25 -19
  280. package/lib/session/auth/composable.js.map +1 -1
  281. package/lib/session/auth/domainRouting.d.ts +11 -0
  282. package/lib/session/auth/domainRouting.d.ts.map +1 -1
  283. package/lib/session/auth/domainRouting.js +13 -0
  284. package/lib/session/auth/domainRouting.js.map +1 -1
  285. package/lib/session/auth/firebase.js +1 -1
  286. package/lib/session/auth/firebase.js.map +1 -1
  287. package/lib/session/useUXTracking.d.ts.map +1 -1
  288. package/lib/session/useUXTracking.js +6 -1
  289. package/lib/session/useUXTracking.js.map +1 -1
  290. package/lib/shell/VertesiaShell.d.ts.map +1 -1
  291. package/lib/shell/VertesiaShell.js +2 -1
  292. package/lib/shell/VertesiaShell.js.map +1 -1
  293. package/lib/shell/apps/AppInstallationProvider.d.ts +4 -2
  294. package/lib/shell/apps/AppInstallationProvider.d.ts.map +1 -1
  295. package/lib/shell/apps/IframeAppContextSync.d.ts +3 -0
  296. package/lib/shell/apps/IframeAppContextSync.d.ts.map +1 -0
  297. package/lib/shell/apps/IframeAppContextSync.js +95 -0
  298. package/lib/shell/apps/IframeAppContextSync.js.map +1 -0
  299. package/lib/shell/apps/iframe-auth.d.ts +55 -0
  300. package/lib/shell/apps/iframe-auth.d.ts.map +1 -0
  301. package/lib/shell/apps/iframe-auth.js +154 -0
  302. package/lib/shell/apps/iframe-auth.js.map +1 -0
  303. package/lib/shell/apps/index.d.ts +2 -0
  304. package/lib/shell/apps/index.d.ts.map +1 -1
  305. package/lib/shell/apps/index.js +2 -0
  306. package/lib/shell/apps/index.js.map +1 -1
  307. package/lib/vertesia-ui-core.js +199 -4
  308. package/lib/vertesia-ui-core.js.map +1 -1
  309. package/lib/vertesia-ui-env.js +1 -1
  310. package/lib/vertesia-ui-env.js.map +1 -1
  311. package/lib/vertesia-ui-features.js +975 -35
  312. package/lib/vertesia-ui-features.js.map +1 -1
  313. package/lib/vertesia-ui-i18n.BJBGsq-8.chunk.js +5 -0
  314. package/lib/vertesia-ui-i18n.BJBGsq-8.chunk.js.map +1 -0
  315. package/lib/vertesia-ui-i18n.BY5YG5cX.chunk.js +5 -0
  316. package/lib/vertesia-ui-i18n.BY5YG5cX.chunk.js.map +1 -0
  317. package/lib/vertesia-ui-i18n.Bd5_1BXO.chunk.js +5 -0
  318. package/lib/vertesia-ui-i18n.Bd5_1BXO.chunk.js.map +1 -0
  319. package/lib/vertesia-ui-i18n.Bvwej2HH.chunk.js +5 -0
  320. package/lib/vertesia-ui-i18n.Bvwej2HH.chunk.js.map +1 -0
  321. package/lib/vertesia-ui-i18n.CMT3f4gf.chunk.js +5 -0
  322. package/lib/vertesia-ui-i18n.CMT3f4gf.chunk.js.map +1 -0
  323. package/lib/vertesia-ui-i18n.D56DNPJW.chunk.js +5 -0
  324. package/lib/vertesia-ui-i18n.D56DNPJW.chunk.js.map +1 -0
  325. package/lib/vertesia-ui-i18n.DDzKLNx6.chunk.js +5 -0
  326. package/lib/vertesia-ui-i18n.DDzKLNx6.chunk.js.map +1 -0
  327. package/lib/vertesia-ui-i18n.D_Am1LpF.chunk.js +5 -0
  328. package/lib/vertesia-ui-i18n.D_Am1LpF.chunk.js.map +1 -0
  329. package/lib/vertesia-ui-i18n.DrZizgGV.chunk.js +5 -0
  330. package/lib/vertesia-ui-i18n.DrZizgGV.chunk.js.map +1 -0
  331. package/lib/vertesia-ui-i18n.DwHsq86z.chunk.js +5 -0
  332. package/lib/vertesia-ui-i18n.DwHsq86z.chunk.js.map +1 -0
  333. package/lib/vertesia-ui-i18n.PLpo0Bbz.chunk.js +5 -0
  334. package/lib/vertesia-ui-i18n.PLpo0Bbz.chunk.js.map +1 -0
  335. package/lib/vertesia-ui-i18n.js +2 -38
  336. package/lib/vertesia-ui-i18n.js.map +1 -1
  337. package/lib/vertesia-ui-i18n.xVbXALqz.chunk.js +5 -0
  338. package/lib/vertesia-ui-i18n.xVbXALqz.chunk.js.map +1 -0
  339. package/lib/vertesia-ui-layout.js +80 -1
  340. package/lib/vertesia-ui-layout.js.map +1 -1
  341. package/lib/vertesia-ui-rich-text.js +278 -4
  342. package/lib/vertesia-ui-rich-text.js.map +1 -1
  343. package/lib/vertesia-ui-router.js +1 -1
  344. package/lib/vertesia-ui-router.js.map +1 -1
  345. package/lib/vertesia-ui-session.js +1 -1
  346. package/lib/vertesia-ui-session.js.map +1 -1
  347. package/lib/vertesia-ui-shell.js +118 -1
  348. package/lib/vertesia-ui-shell.js.map +1 -1
  349. package/lib/vertesia-ui-widgets.js +336 -20
  350. package/lib/vertesia-ui-widgets.js.map +1 -1
  351. package/lib/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
  352. package/lib/widgets/markdown/MarkdownRenderer.js +43 -2
  353. package/lib/widgets/markdown/MarkdownRenderer.js.map +1 -1
  354. package/lib/widgets/markdown/MermaidDiagram.d.ts.map +1 -1
  355. package/lib/widgets/markdown/MermaidDiagram.js +35 -22
  356. package/lib/widgets/markdown/MermaidDiagram.js.map +1 -1
  357. package/lib/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -1
  358. package/lib/widgets/monacoEditor/MonacoEditor.js +14 -10
  359. package/lib/widgets/monacoEditor/MonacoEditor.js.map +1 -1
  360. package/lib/widgets/xml-viewer/hooks/useCollapsible.d.ts +1 -1
  361. package/package.json +24 -29
  362. package/src/core/components/FormItem.tsx +2 -5
  363. package/src/core/components/InfoTip.test.tsx +33 -0
  364. package/src/core/components/InfoTip.tsx +32 -0
  365. package/src/core/components/index.ts +1 -0
  366. package/src/core/components/shadcn/Panel.tsx +3 -7
  367. package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +1 -1
  368. package/src/core/components/shadcn/filters/filter/dateFilter.tsx +1 -1
  369. package/src/core/components/shadcn/filters/filters.tsx +1 -1
  370. package/src/core/components/shadcn/index.ts +1 -0
  371. package/src/core/components/shadcn/modal/dialog.test.tsx +35 -0
  372. package/src/core/components/shadcn/modal/dialog.tsx +0 -4
  373. package/src/core/components/shadcn/overflowTabs.tsx +320 -0
  374. package/src/core/components/shadcn/selectBox.tsx +2 -2
  375. package/src/core/components/shadcn/theme/ThemeProvider.tsx +10 -9
  376. package/src/core/utils/dayjs.ts +17 -0
  377. package/src/css/base.css +78 -0
  378. package/src/env/index.test.ts +94 -0
  379. package/src/env/index.ts +36 -1
  380. package/src/features/agent/PayloadBuilder.test.ts +68 -0
  381. package/src/features/agent/PayloadBuilder.tsx +28 -4
  382. package/src/features/agent/chat/AgentRightPanel.tsx +2 -252
  383. package/src/features/agent/chat/ArtifactsTab.tsx +1 -0
  384. package/src/features/agent/chat/AskUserWidget.test.tsx +20 -1
  385. package/src/features/agent/chat/AskUserWidget.tsx +22 -6
  386. package/src/features/agent/chat/ModernAgentConversation.test.tsx +160 -0
  387. package/src/features/agent/chat/ModernAgentConversation.tsx +111 -31
  388. package/src/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.tsx +86 -67
  389. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +90 -7
  390. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +4 -6
  391. package/src/features/agent/chat/ModernAgentOutput/AttachmentPreview.test.ts +103 -1
  392. package/src/features/agent/chat/ModernAgentOutput/AttachmentPreview.tsx +50 -4
  393. package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +1 -1
  394. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +18 -1
  395. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +1 -1
  396. package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +1 -1
  397. package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +1 -1
  398. package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +37 -167
  399. package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +94 -0
  400. package/src/features/agent/chat/ModernAgentOutput/utils.ts +19 -10
  401. package/src/features/agent/chat/VegaLiteChart.tsx +32 -14
  402. package/src/features/agent/chat/hooks/useAgentStream.test.tsx +18 -0
  403. package/src/features/agent/chat/hooks/useAgentStream.ts +3 -0
  404. package/src/features/document-viewer/UniversalDocumentViewer.tsx +1 -1
  405. package/src/features/facets/AgentRunnerFacetsNav.tsx +44 -4
  406. package/src/features/facets/CollectionsFacetsNav.tsx +15 -4
  407. package/src/features/facets/DocumentsFacetsNav.tsx +25 -8
  408. package/src/features/facets/FacetQueryHandlers.test.ts +84 -0
  409. package/src/features/facets/InteractionsFacetsNav.tsx +20 -4
  410. package/src/features/facets/PromptsFacetsNav.tsx +15 -4
  411. package/src/features/facets/RunsFacetsNav.test.ts +59 -0
  412. package/src/features/facets/RunsFacetsNav.tsx +40 -30
  413. package/src/features/facets/WorkflowExecutionsFacetsNav.test.ts +57 -0
  414. package/src/features/facets/WorkflowExecutionsFacetsNav.tsx +36 -16
  415. package/src/features/facets/index.ts +1 -0
  416. package/src/features/facets/utils/SearchInterface.tsx +12 -3
  417. package/src/features/layout/GenericPageNavHeader.tsx +16 -0
  418. package/src/features/magic-pdf/DownloadPopover.tsx +1 -2
  419. package/src/features/magic-pdf/GroundedExtractionView.test.tsx +7 -1
  420. package/src/features/magic-pdf/GroundedExtractionView.tsx +162 -242
  421. package/src/features/oauth/McpConnectionsButton.test.tsx +18 -1
  422. package/src/features/oauth/McpConnectionsButton.tsx +6 -2
  423. package/src/features/oauth/McpConnectionsDialog.tsx +3 -3
  424. package/src/features/oauth/useMcpConnections.test.ts +1 -0
  425. package/src/features/oauth/useMcpConnections.ts +24 -7
  426. package/src/features/pdf-viewer/PdfPageRenderer.tsx +76 -71
  427. package/src/features/pdf-viewer/lazyReactPdf.ts +33 -0
  428. package/src/features/store/collections/CollectionsTable.tsx +1 -4
  429. package/src/features/store/collections/EditCollectionView.tsx +1 -1
  430. package/src/features/store/objects/ExportPropertiesModal.tsx +25 -16
  431. package/src/features/store/objects/components/ContentOverview.tsx +2 -28
  432. package/src/features/store/objects/components/TextEditorPanel.tsx +13 -3
  433. package/src/features/store/objects/layout/renderers.tsx +1 -6
  434. package/src/features/store/objects/search/DocumentSearchContext.test.ts +45 -0
  435. package/src/features/store/objects/search/DocumentSearchContext.ts +54 -4
  436. package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +5 -0
  437. package/src/features/store/objects/upload/DocumentUploadModal.tsx +10 -3
  438. package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +15 -6
  439. package/src/features/store/types/ContentObjectTypesTable.tsx +1 -4
  440. package/src/features/store/types/IntakePolicyEditor.tsx +14 -5
  441. package/src/features/store/types/IntakePolicyForm.tsx +120 -20
  442. package/src/features/store/types/ObjectSchemaEditor.tsx +6 -2
  443. package/src/features/store/types/TableLayoutEditor.tsx +2 -0
  444. package/src/features/user/UserInfo.test.tsx +10 -0
  445. package/src/features/user/UserInfo.tsx +2 -7
  446. package/src/features/views/ViewActions.test.tsx +80 -0
  447. package/src/features/views/ViewActions.tsx +352 -0
  448. package/src/features/views/ViewDropTarget.test.tsx +150 -0
  449. package/src/features/views/ViewDropTarget.tsx +140 -0
  450. package/src/features/views/ViewExperience.test.tsx +72 -0
  451. package/src/features/views/ViewExperience.tsx +189 -22
  452. package/src/features/views/ViewMedia.test.tsx +180 -0
  453. package/src/features/views/ViewNavigation.test.tsx +42 -0
  454. package/src/features/views/ViewNavigation.tsx +43 -5
  455. package/src/features/views/ViewResults.tsx +243 -26
  456. package/src/features/views/index.ts +1 -0
  457. package/src/features/views/types.ts +50 -0
  458. package/src/features/views/viewState.test.ts +7 -1
  459. package/src/features/views/viewState.ts +32 -0
  460. package/src/i18n/LanguageProvider.tsx +15 -8
  461. package/src/i18n/instance.test.ts +30 -0
  462. package/src/i18n/instance.ts +67 -40
  463. package/src/i18n/locales/ar.json +1192 -911
  464. package/src/i18n/locales/de.json +1148 -867
  465. package/src/i18n/locales/en.json +65 -4
  466. package/src/i18n/locales/es.json +1159 -878
  467. package/src/i18n/locales/fr.json +1159 -878
  468. package/src/i18n/locales/it.json +1159 -878
  469. package/src/i18n/locales/ja.json +1148 -866
  470. package/src/i18n/locales/ko.json +1148 -866
  471. package/src/i18n/locales/pt.json +1159 -878
  472. package/src/i18n/locales/ru.json +1170 -889
  473. package/src/i18n/locales/tr.json +1148 -867
  474. package/src/i18n/locales/zh-TW.json +1148 -866
  475. package/src/i18n/locales/zh.json +1148 -866
  476. package/src/i18n/rtl.test.ts +16 -7
  477. package/src/rich-text/VertesiaRichTextEditor.test.tsx +33 -1
  478. package/src/router/RouteComponent.test.tsx +139 -0
  479. package/src/router/RouteComponent.tsx +54 -9
  480. package/src/session/UserSessionProvider.tsx +20 -31
  481. package/src/session/auth/composable.scope.test.ts +1 -1
  482. package/src/session/auth/composable.test.ts +61 -1
  483. package/src/session/auth/composable.ts +29 -23
  484. package/src/session/auth/domainRouting.test.ts +24 -1
  485. package/src/session/auth/domainRouting.ts +29 -0
  486. package/src/session/auth/firebase.ts +1 -1
  487. package/src/session/useUXTracking.tsx +6 -1
  488. package/src/shell/VertesiaShell.tsx +2 -0
  489. package/src/shell/apps/IframeAppContextSync.test.tsx +196 -0
  490. package/src/shell/apps/IframeAppContextSync.tsx +101 -0
  491. package/src/shell/apps/iframe-auth.test.ts +118 -0
  492. package/src/shell/apps/iframe-auth.ts +193 -0
  493. package/src/shell/apps/index.ts +2 -0
  494. package/src/widgets/markdown/ArtifactEditingSurface.test.tsx +12 -3
  495. package/src/widgets/markdown/MarkdownRenderer.tsx +50 -2
  496. package/src/widgets/markdown/MermaidDiagram.tsx +38 -22
  497. package/src/widgets/monacoEditor/MonacoEditor.tsx +27 -20
  498. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.d.ts +0 -25
  499. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.d.ts.map +0 -1
  500. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.js +0 -42
  501. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.js.map +0 -1
  502. package/src/features/magic-pdf/GroundedExtractionAssistantPanel.tsx +0 -86
@@ -92,6 +92,7 @@
92
92
  "agent.filesProcessing": "文件处理中",
93
93
  "agent.fileStagedTooltip": "文件已暂存 - 对话开始时将上传",
94
94
  "agent.fullscreen": "全屏",
95
+ "agent.hideActiveWorkstreams": "隐藏活跃工作流",
95
96
  "agent.hideDetails": "隐藏详情",
96
97
  "agent.hideSidebar": "隐藏侧边栏",
97
98
  "agent.hideThinkingDetails": "隐藏思考详情",
@@ -124,7 +125,7 @@
124
125
  "agent.noPlanAvailable": "暂无计划",
125
126
  "agent.noPlanDetected": "尚未检测到计划",
126
127
  "agent.olderPlan": "较旧的计划",
127
- "agent.onlySystemArtifacts": "Only system files in this run. Enable \"System files\" to view them.",
128
+ "agent.onlySystemArtifacts": "此次运行中只有系统文件。启用“系统文件”即可查看。",
128
129
  "agent.openDocument": "打开文档",
129
130
  "agent.openInNewTab": "在新标签页中打开",
130
131
  "agent.panelRenderError": "无法渲染 {{name}}",
@@ -173,13 +174,17 @@
173
174
  "agent.selectOption": "选择选项",
174
175
  "agent.send": "发送",
175
176
  "agent.sendTooltip": "点击或Enter发送",
177
+ "agent.showActiveWorkstreams": "显示活跃工作流",
176
178
  "agent.showAllMessages": "显示所有消息",
177
179
  "agent.showDetails": "显示详情",
178
180
  "agent.showLess": "显示更少",
179
181
  "agent.showMore": "显示更多",
180
182
  "agent.showSidebar": "显示侧边栏",
181
- "agent.showSystemArtifacts": "System files",
183
+ "agent.showSystemArtifacts": "系统文件",
182
184
  "agent.staged": "已暂存",
185
+ "agent.stagedFilesNotDelivered": "文件未送达代理",
186
+ "agent.stagedFilesNotDeliveredDescription": "代理已启动,但无法收到有关您文件的通知。请在对话中发送消息以送达这些文件。",
187
+ "agent.stagedFilesUploadFailed": "部分文件上传失败",
183
188
  "agent.startAgent": "启动代理",
184
189
  "agent.startingAgent": "正在启动代理...",
185
190
  "agent.startingAgentUploading": "正在启动代理并上传文件...",
@@ -346,6 +351,7 @@
346
351
  "login.terminal.selectAccount": "选择账户",
347
352
  "login.terminal.selectProject": "选择项目",
348
353
  "mcpConnections.activateAria": "为此对话启用 {{name}}",
354
+ "mcpConnections.apiKey": "API 密钥",
349
355
  "mcpConnections.checkingStatus": "正在检查状态",
350
356
  "mcpConnections.deactivateAria": "为此对话停用 {{name}}",
351
357
  "mcpConnections.disabled": "已停用",
@@ -768,12 +774,14 @@
768
774
  "user.user": "用户",
769
775
  "user.userId": "用户ID",
770
776
  "view.display": "显示",
777
+ "view.filterNavigation": "筛选{{label}}",
771
778
  "view.from": "起始",
772
779
  "view.pagination": "结果页面",
773
780
  "view.ranges": "范围",
774
781
  "view.removeSelection": "移除 {{value}}",
775
782
  "view.resultsCount_other": "{{count}} 个结果",
776
783
  "view.searchFields": "搜索字段",
784
+ "view.searchNavigation": "搜索{{label}}",
777
785
  "view.sort": "排序",
778
786
  "view.to": "结束",
779
787
  "view.warning": "视图通知",
@@ -882,12 +890,286 @@
882
890
  "richText.markdownSourceEditor": "Markdown 源码编辑器",
883
891
  "richText.sourceCompatibilityWarningDescription": "富文本编辑会规范化此文档中的部分 Markdown 语法,并可能重写未更改的行。若要保留精确格式,请编辑 Markdown 源码;如果可以接受规范化,也可以继续使用富文本。",
884
892
  "richText.sourceCompatibilityWarningTitle": "部分 Markdown 格式可能会改变",
885
- "agent.addComment": "Add comment",
886
- "agent.blockMode": "Block mode",
887
- "agent.commentingOn": "Commenting on",
888
- "agent.comments": "Comments",
889
- "agent.deleteComment": "Remove comment",
890
- "agent.editMode": "Edit mode",
891
- "agent.selectTextToComment": "Select text in the document to comment on it",
892
- "agent.sendToAgent": "Send to agent"
893
+ "agent.addComment": "添加评论",
894
+ "agent.blockMode": "区块模式",
895
+ "agent.commentingOn": "评论对象",
896
+ "agent.comments": "评论",
897
+ "agent.deleteComment": "删除评论",
898
+ "agent.editMode": "编辑模式",
899
+ "agent.selectTextToComment": "选择文档中的文本以添加评论",
900
+ "agent.sendToAgent": "发送给智能体",
901
+ "grounded.aiVerified": "AI 审核器已对照页面图像验证",
902
+ "grounded.assistant": "提取助手",
903
+ "grounded.assistantField": "正在更正字段:",
904
+ "grounded.assistantTooltip": "打开助手更正字段 — 它会读取页面并应用有依据的编辑",
905
+ "grounded.breakdownDigital": "已在文档文本中验证",
906
+ "grounded.breakdownImageRead": "从图像读取(未验证)",
907
+ "grounded.breakdownOcr": "已对照 OCR 验证",
908
+ "grounded.breakdownReviewer": "AI 审核器已确认",
909
+ "grounded.breakdownSnapped": "已重新锚定到匹配区块",
910
+ "grounded.breakdownTitle": "验证明细",
911
+ "grounded.breakdownUnverifiedList": "未验证的值 — 单击以定位",
912
+ "grounded.breakdownVerificationHelp": "文本核验:值与文档文本一致。AI 核验:审阅者对照页面图像确认。扫描件没有文本层,出现后者属正常。",
913
+ "grounded.confidence": "验证率 {{percent}}%",
914
+ "grounded.confidenceHint": "已通过文档文本或 AI 审阅者确认的值。未确认的值不计入。",
915
+ "grounded.conflicts": "提取窗口之间有 {{count}} 个值不同 — 已保留最早的值",
916
+ "grounded.digitalVerifiedHint": "数字验证:与文档文本(数字文本层或 OCR)逐字匹配。对于没有可靠文本层的扫描或手写内容无法进行此验证。",
917
+ "grounded.digitalVerifiedOf": "{{count}}/{{total}} 个文本验证",
918
+ "grounded.downloadAnnotated": "下载带批注的 PDF",
919
+ "grounded.downloadBlocks": "下载本页文本区块(JSON)",
920
+ "grounded.downloadCitations": "下载引用(JSON)",
921
+ "grounded.downloadOcr": "下载本页原始 OCR 词语(TSV,含逐词置信度)",
922
+ "grounded.failedToLoad": "无法加载有依据的提取结果",
923
+ "grounded.fullyVerified": "已在文档中验证",
924
+ "grounded.hardness": "复杂度 {{percent}}%",
925
+ "grounded.hardnessHint": "文档阅读难度:0% 表示清晰的数字文本,100% 表示无法辨认。扫描件和手写内容会提高难度;↑ 表示提取已升级到更强的模型。",
926
+ "grounded.modelVerifiedHint": "AI 验证:审核模型读取页面图像并确认了该值。这是一种可靠的验证,也是扫描和手写文档的主要信号。",
927
+ "grounded.modelVerifiedOf": "{{count}} 个 AI 验证",
928
+ "grounded.nextPage": "下一页",
929
+ "grounded.notFound": "未找到此文档的有依据提取结果",
930
+ "grounded.pageAlt": "第 {{page}} 页",
931
+ "grounded.previousPage": "上一页",
932
+ "grounded.readFromImage": "从页面图像读取(文本层中没有逐字内容)",
933
+ "grounded.reviewCorrections": "审核器更正了 {{count}} 个值",
934
+ "grounded.reviewSummary": "审核器",
935
+ "grounded.scoreHint": "该值的来源依据。100% 表示与文档文本逐字匹配;低于此值表示 OCR 或从页面图像读取。",
936
+ "grounded.title": "有依据的提取",
937
+ "grounded.unverifiedCount": "{{count}} 个未验证",
938
+ "grounded.unverifiedHint": "从页面图像读取,但既未匹配文本也未由审核器确认。建议人工检查。",
939
+ "grounded.verdictByConfidence": "根据提取置信度",
940
+ "grounded.verdictByReviewer": "由 AI 审核器判定",
941
+ "grounded.verdictDetails": "显示可信度结论详情",
942
+ "grounded.verdictGoodToGo": "✓ 可以使用",
943
+ "grounded.verdictHint": "对提取内容的总体信任程度。“可以使用”表示值可直接使用;“需要审核”表示应由人工核实。这反映内容的正确性,而不是渲染了多少引用框。",
944
+ "grounded.verdictNeedsReview": "⚠ 需要审核",
945
+ "grounded.verified": "已对照文档文本验证",
946
+ "grounded.verifiedOf": "{{verified}}/{{total}} 个已验证",
947
+ "intakePolicy.action.addRange": "添加范围",
948
+ "intakePolicy.action.examples": "示例",
949
+ "intakePolicy.action.format": "格式化",
950
+ "intakePolicy.action.insertExample": "插入示例",
951
+ "intakePolicy.action.removeRange": "删除范围",
952
+ "intakePolicy.action.revert": "还原",
953
+ "intakePolicy.action.save": "保存",
954
+ "intakePolicy.action.validate": "验证",
955
+ "intakePolicy.error.fixJsonBeforeForm": "请先修复 JSON 错误,再返回表单编辑器。",
956
+ "intakePolicy.example.extraction_only.description": "以视觉方式提取属性,生成紧凑的文本摘要,并保留源视图。",
957
+ "intakePolicy.example.extraction_only.label": "仅提取",
958
+ "intakePolicy.example.full_reference.description": "包含代表值的全部可用选项。请精简为此类型所需的选项。",
959
+ "intakePolicy.example.full_reference.label": "完整参考",
960
+ "intakePolicy.example.grounded.description": "提取引用和带批注的证据,并对困难扫描件升级处理和审核。",
961
+ "intakePolicy.example.grounded.label": "有依据的提取",
962
+ "intakePolicy.example.media_no_transcript.description": "禁用转换,同时保留属性提取设置。",
963
+ "intakePolicy.example.media_no_transcript.label": "媒体(无转录)",
964
+ "intakePolicy.example.minimal.description": "使用项目默认值,只添加类型选择说明。",
965
+ "intakePolicy.example.minimal.label": "最小配置",
966
+ "intakePolicy.example.structured_spreadsheet.description": "对 Excel 和 CSV 文件使用结构化工作表文本。",
967
+ "intakePolicy.example.structured_spreadsheet.label": "电子表格文本",
968
+ "intakePolicy.example.visual_first.description": "对 PDF、扫描件、演示文稿、图表和重布局内容使用视觉证据。",
969
+ "intakePolicy.example.visual_first.label": "视觉优先",
970
+ "intakePolicy.field.agent": "智能体",
971
+ "intakePolicy.field.allowedDetails": "允许的详细程度",
972
+ "intakePolicy.field.contactSheetDetail": "联系表大小",
973
+ "intakePolicy.field.coverageThreshold": "覆盖率阈值",
974
+ "intakePolicy.field.defaultDetail": "默认详细程度",
975
+ "intakePolicy.field.defaultView": "默认视图",
976
+ "intakePolicy.field.distinguishFrom": "区别于",
977
+ "intakePolicy.field.enabled": "已启用",
978
+ "intakePolicy.field.environment": "环境",
979
+ "intakePolicy.field.examples": "已确认示例",
980
+ "intakePolicy.field.forceOcr": "强制 OCR",
981
+ "intakePolicy.field.forceReview": "始终审核",
982
+ "intakePolicy.field.generateToc": "生成目录",
983
+ "intakePolicy.field.hardModel": "困难内容模型",
984
+ "intakePolicy.field.hardnessThreshold": "难度阈值",
985
+ "intakePolicy.field.identificationGuidance": "识别说明",
986
+ "intakePolicy.field.imageEmbedding": "图像嵌入",
987
+ "intakePolicy.field.instructions": "说明",
988
+ "intakePolicy.field.interaction": "交互",
989
+ "intakePolicy.field.locateInstructions": "定位说明",
990
+ "intakePolicy.field.locateMinPages": "文档最少页数",
991
+ "intakePolicy.field.materiality": "重要性说明",
992
+ "intakePolicy.field.maxImageTokens": "最大图像令牌数",
993
+ "intakePolicy.field.maxPages": "最大页数",
994
+ "intakePolicy.field.maxPagesPerCall": "每次调用最大页数",
995
+ "intakePolicy.field.maxPayloadMb": "最大负载 (MB)",
996
+ "intakePolicy.field.maxRetries": "最大重试次数",
997
+ "intakePolicy.field.method": "方法",
998
+ "intakePolicy.field.minCitationDensity": "最小引用密度",
999
+ "intakePolicy.field.mode": "编排模式",
1000
+ "intakePolicy.field.model": "模型",
1001
+ "intakePolicy.field.omitBlockBoxes": "省略区块框",
1002
+ "intakePolicy.field.onFailure": "失败时",
1003
+ "intakePolicy.field.outputFormat": "输出格式",
1004
+ "intakePolicy.field.pageRanges": "页面范围",
1005
+ "intakePolicy.field.pageScope": "页面范围",
1006
+ "intakePolicy.field.primaryModel": "主模型",
1007
+ "intakePolicy.field.propertiesEmbedding": "属性嵌入",
1008
+ "intakePolicy.field.rangeEnd": "范围结束",
1009
+ "intakePolicy.field.rangeStart": "范围开始",
1010
+ "intakePolicy.field.refreshOcr": "刷新 OCR",
1011
+ "intakePolicy.field.renderDpi": "渲染 DPI",
1012
+ "intakePolicy.field.renderingTemplate": "渲染模板",
1013
+ "intakePolicy.field.reviewModel": "审核模型",
1014
+ "intakePolicy.field.reviewThreshold": "审核阈值",
1015
+ "intakePolicy.field.source": "证据来源",
1016
+ "intakePolicy.field.textEmbedding": "文本嵌入",
1017
+ "intakePolicy.field.threshold": "阈值",
1018
+ "intakePolicy.field.updateProperties": "更新属性",
1019
+ "intakePolicy.field.useVision": "使用视觉",
1020
+ "intakePolicy.field.windowPages": "每个窗口的页数",
1021
+ "intakePolicy.help.contactSheetDetail": "每张缩略图页数。页数越少,图块越大越易读。",
1022
+ "intakePolicy.help.coverageThreshold": "当某页的引用覆盖率低于此值时进行审核,这表明可能有内容被遗漏。",
1023
+ "intakePolicy.help.defaultView": "此类型对象首选的初始视图。",
1024
+ "intakePolicy.help.distinguishFrom": "容易与此类型混淆的其他类型。",
1025
+ "intakePolicy.help.embeddings": "可选的按类型文本、图像和属性嵌入开关。",
1026
+ "intakePolicy.help.examples": "此内容类型中经人工确认的示例对象 ID。",
1027
+ "intakePolicy.help.extractionInteraction": "用你自己的交互替代内置提取器。",
1028
+ "intakePolicy.help.extractionMaxPages": "进入提取环节的页数上限。",
1029
+ "intakePolicy.help.extractionSource": "选择用于提取的文本、视觉或组合证据。",
1030
+ "intakePolicy.help.forceOcr": "对每一页执行 OCR,包括已有文本层的页面。",
1031
+ "intakePolicy.help.forceReview": "无论难度分值如何,都审核每一份文档。",
1032
+ "intakePolicy.help.grounding": "为属性提取创建区块级引用和带批注的证据。",
1033
+ "intakePolicy.help.hardnessThreshold": "达到或超过该分值时改用难读内容模型。",
1034
+ "intakePolicy.help.identification": "提取前自动选择类型的说明。",
1035
+ "intakePolicy.help.identificationGuidance": "描述此内容类型及应选择它的情形。",
1036
+ "intakePolicy.help.locateInstructions": "设置此项可在转换和提取前识别相关页面。",
1037
+ "intakePolicy.help.locateMinPages": "文档短于此页数时跳过页面定位。",
1038
+ "intakePolicy.help.maxImageTokens": "真正起作用的预算:每次调用的预估图像令牌数。",
1039
+ "intakePolicy.help.maxPayloadMb": "这是传输上限,不是质量设置。",
1040
+ "intakePolicy.help.method": "文本来自内置解析、模型,还是你自己的交互。",
1041
+ "intakePolicy.help.minCitationDensity": "每个提取值的引用过少时,该轮会重试。",
1042
+ "intakePolicy.help.mode": "默认使用程序化采集;智能体采集将编排委派给智能体。",
1043
+ "intakePolicy.help.omitBlockBoxes": "从提示中去掉区块边框。仅在启用视觉时才安全。",
1044
+ "intakePolicy.help.pageRanges": "包含起始页和结束页。负值从文档末尾开始计数。",
1045
+ "intakePolicy.help.pageScope": "全部页面,或仅定位器选出的页面。",
1046
+ "intakePolicy.help.refreshOcr": "重新运行 OCR,而不是复用已存储的 OCR 结果。",
1047
+ "intakePolicy.help.renderDpi": "为模型渲染每一页时的分辨率。150 几乎适用于所有情况,仅在字迹极小时才调高。",
1048
+ "intakePolicy.help.renderingTemplate": "用于将提取属性呈现为对象文本的 Handlebars 模板。",
1049
+ "intakePolicy.help.review": "对困难或低覆盖率页面进行可选的模型审核。",
1050
+ "intakePolicy.help.section.classification": "Vertesia 如何识别此类型,以及其对象默认以何种方式打开。",
1051
+ "intakePolicy.help.section.conversion": "在提取任何内容之前,先把源文件转换为可读文本。",
1052
+ "intakePolicy.help.section.conversionModel": "负责将页面转为文本的模型,通常比提取模型更便宜。",
1053
+ "intakePolicy.help.section.customConversion": "用你自己的交互或智能体替代内置转换器。",
1054
+ "intakePolicy.help.section.embeddings": "哪些内容会被编入搜索索引,以及是否生成目录。",
1055
+ "intakePolicy.help.section.extraction": "此类型的架构属性如何从文档中填充。",
1056
+ "intakePolicy.help.section.extractionModel": "负责读取文档并填充属性的模型。",
1057
+ "intakePolicy.help.section.grounding": "将每个提取值追溯到其来源页面上的区块或视觉位置。",
1058
+ "intakePolicy.help.section.locate": "在正式处理前,用低成本的视觉扫描找出重要页面。",
1059
+ "intakePolicy.help.section.models": "根据文档页面的阅读难度选择使用的模型。",
1060
+ "intakePolicy.help.section.pageRanges": "要转换的固定页面。设置后优先于页面范围;负值从末尾开始计数。",
1061
+ "intakePolicy.help.section.rendering": "将提取的属性转换为对象正文的模板。",
1062
+ "intakePolicy.help.section.review": "对引用稀少或难以阅读的页面追加一轮处理。",
1063
+ "intakePolicy.help.section.visionBudget": "单次提取调用可携带的页面图像量。",
1064
+ "intakePolicy.help.textConversion": "控制提取和嵌入前的 Markdown 或文本生成。",
1065
+ "intakePolicy.help.title": "字段指南",
1066
+ "intakePolicy.help.updateProperties": "将带依据的结果写回对象属性。",
1067
+ "intakePolicy.help.useVision": "将带批注的页面图像与文本一起发送。",
1068
+ "intakePolicy.help.visionDetail": "此类型可使用的图像质量配置。配置本身由平台定义。",
1069
+ "intakePolicy.help.windowPages": "拆分前,单次依据调用处理的页数。",
1070
+ "intakePolicy.option.agentic": "智能体",
1071
+ "intakePolicy.option.all": "所有页面",
1072
+ "intakePolicy.option.auto": "自动",
1073
+ "intakePolicy.option.basic": "基础",
1074
+ "intakePolicy.option.block": "区块",
1075
+ "intakePolicy.option.custom": "自定义",
1076
+ "intakePolicy.option.disabled": "已禁用",
1077
+ "intakePolicy.option.enabled": "已启用",
1078
+ "intakePolicy.option.flag": "标记以供审核",
1079
+ "intakePolicy.option.high": "高",
1080
+ "intakePolicy.option.image": "图像",
1081
+ "intakePolicy.option.inherit": "继承",
1082
+ "intakePolicy.option.llm": "LLM",
1083
+ "intakePolicy.option.located": "已定位页面",
1084
+ "intakePolicy.option.low": "低",
1085
+ "intakePolicy.option.markdown": "Markdown",
1086
+ "intakePolicy.option.mixed": "文本和视觉",
1087
+ "intakePolicy.option.pagesPerSheet": "每张 {{count}} 页",
1088
+ "intakePolicy.option.pdf": "PDF",
1089
+ "intakePolicy.option.programmatic": "程序化",
1090
+ "intakePolicy.option.properties": "属性",
1091
+ "intakePolicy.option.set": "设置",
1092
+ "intakePolicy.option.standard": "标准",
1093
+ "intakePolicy.option.text": "文本",
1094
+ "intakePolicy.option.vision": "视觉",
1095
+ "intakePolicy.placeholder.environment": "选择环境",
1096
+ "intakePolicy.placeholder.model": "选择模型",
1097
+ "intakePolicy.placeholder.objectId": "添加对象 ID",
1098
+ "intakePolicy.section.classification": "分类和默认值",
1099
+ "intakePolicy.section.conversion": "文本转换",
1100
+ "intakePolicy.section.conversionModel": "转换模型",
1101
+ "intakePolicy.section.customConversion": "自定义转换",
1102
+ "intakePolicy.section.embeddings": "搜索和生成内容",
1103
+ "intakePolicy.section.extraction": "属性提取",
1104
+ "intakePolicy.section.extractionModel": "提取模型",
1105
+ "intakePolicy.section.grounding": "有依据的提取",
1106
+ "intakePolicy.section.locate": "相关页面定位器",
1107
+ "intakePolicy.section.models": "提取模型",
1108
+ "intakePolicy.section.pageRanges": "静态页面范围",
1109
+ "intakePolicy.section.rendering": "生成的文本",
1110
+ "intakePolicy.section.review": "提取后审核",
1111
+ "intakePolicy.section.verification": "验证",
1112
+ "intakePolicy.section.visionBudget": "视觉证据预算",
1113
+ "intakePolicy.status.unsaved": "未保存",
1114
+ "intakePolicy.summary.conversion": "转换",
1115
+ "intakePolicy.summary.defaultView": "默认视图",
1116
+ "intakePolicy.summary.extraction": "提取",
1117
+ "intakePolicy.summary.grounding": "依据",
1118
+ "intakePolicy.summary.method": "方法",
1119
+ "intakePolicy.summary.mode": "模式",
1120
+ "intakePolicy.summary.source": "来源",
1121
+ "intakePolicy.summary.template": "模板",
1122
+ "intakePolicy.summary.toc": "目录",
1123
+ "intakePolicy.tab.conversion": "转换",
1124
+ "intakePolicy.tab.extraction": "提取",
1125
+ "intakePolicy.tab.grounding": "依据",
1126
+ "intakePolicy.tab.json": "JSON",
1127
+ "intakePolicy.tab.output": "输出",
1128
+ "intakePolicy.tab.overview": "概览",
1129
+ "intakePolicy.title": "采集策略",
1130
+ "intakePolicy.toast.invalid": "采集策略无效",
1131
+ "intakePolicy.toast.saved": "采集策略已保存。",
1132
+ "intakePolicy.toast.schemaValid": "JSON 有效并符合采集策略架构。",
1133
+ "intakePolicy.toast.updateFailed": "无法更新采集策略",
1134
+ "intakePolicy.toast.updated": "采集策略已更新",
1135
+ "intakePolicy.toast.valid": "有效的采集策略",
1136
+ "store.actions.affectedItems": "受影响的项目:",
1137
+ "store.actions.clearSelection": "清除选择",
1138
+ "store.actions.deleteSelected": "删除所选项",
1139
+ "store.actions.deleteTypeConfirm_one": "删除此类型?它将被永久删除。此操作无法撤销。",
1140
+ "store.actions.deleteTypeConfirm_other": "删除选中的 {{count}} 个类型?它们将被永久删除。此操作无法撤销。",
1141
+ "store.actions.deleteType_one": "删除类型",
1142
+ "store.actions.deleteType_other": "删除类型",
1143
+ "store.actions.deleting": "正在删除...",
1144
+ "store.actions.failedToDeleteTypes": "无法删除类型",
1145
+ "store.actions.selectAllTypes": "选择所有类型",
1146
+ "store.actions.selectType": "选择类型 {{name}}",
1147
+ "store.actions.selectedCount": "已选择 {{n}} 个",
1148
+ "store.actions.typeDeletePartial": "已删除 {{succeeded}} 个,{{failed}} 个失败",
1149
+ "store.actions.typeDeleted_one": "已删除 {{count}} 个类型",
1150
+ "store.actions.typeDeleted_other": "已删除 {{count}} 个类型",
1151
+ "store.actions.typeToConfirmDelete": "输入“delete”以确认",
1152
+ "test.emptyTranslationFallback": "test.emptyTranslationFallback",
1153
+ "view.actionFailed": "操作失败",
1154
+ "view.actionFailedDescription": "无法完成此操作。",
1155
+ "view.actions": "更多操作",
1156
+ "view.clearSelection": "清除选择",
1157
+ "view.confirmAction_one": "对选中的 {{count}} 个项目运行 {{action}}?",
1158
+ "view.confirmAction_other": "对选中的 {{count}} 个项目运行 {{action}}?",
1159
+ "view.deletedObjects_one": "已删除 {{count}} 个对象",
1160
+ "view.deletedObjects_other": "已删除 {{count}} 个对象",
1161
+ "view.dropFailed": "拖放操作失败",
1162
+ "view.dropFiles": "将文件或文件夹拖放到此处",
1163
+ "view.resultsCount_one": "{{count}} 个结果",
1164
+ "view.selectFiles": "选择文件或文件夹",
1165
+ "view.selectPage": "选择此页的所有结果",
1166
+ "view.selectResult": "选择 {{name}}",
1167
+ "view.selectedCount_one": "已选择 {{count}} 个",
1168
+ "view.selectedCount_other": "已选择 {{count}} 个",
1169
+ "view.typeDeleteToConfirm": "输入 delete 以确认",
1170
+ "view.uploadToView": "上传内容",
1171
+ "widgets.schema.extractFromDocument": "提取",
1172
+ "widgets.schema.extractFromDocumentHint": "关闭后,提取模型将跳过此字段(存储 x-extract: false)。适用于匹配分数、ERP ID 或在提取流程外填写的字段。",
1173
+ "widgets.schema.noExtract": "不提取",
1174
+ "widgets.schema.propertyColumn": "属性"
893
1175
  }
@@ -1,3 +1,11 @@
1
+ import { type Route } from './Router';
2
+ /**
3
+ * Start loading the given routes' lazy modules ahead of navigation (non-lazy routes are ignored).
4
+ * Call it during idle time after first paint: the first navigation to a prefetched route then
5
+ * renders synchronously instead of flashing the spinner while its chunk downloads. Failures are
6
+ * swallowed — navigation retries the import and reports the error the normal way.
7
+ */
8
+ export declare function prefetchLazyRoutes(routes: Route[]): Promise<unknown>;
1
9
  interface RouteComponentProps {
2
10
  spinner?: React.ReactNode;
3
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouteComponent.d.ts","sourceRoot":"","sources":["../../src/router/RouteComponent.tsx"],"names":[],"mappings":"AAGA,UAAU,mBAAmB;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AACD,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,mBAAmB,+BAY9D"}
1
+ {"version":3,"file":"RouteComponent.d.ts","sourceRoot":"","sources":["../../src/router/RouteComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,KAAK,EAEb,MAAM,UAAU,CAAC;AAkBlB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpE;AAED,UAAU,mBAAmB;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AACD,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,mBAAmB,+BAc9D"}
@@ -1,6 +1,31 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
- import { useRouterContext } from './Router';
3
+ import { useRouterContext, } from './Router';
4
+ // Resolved lazy modules, keyed by the route's LazyComponent function (a stable identity: route
5
+ // tables are declared once). A revisited lazy route renders synchronously from this cache instead
6
+ // of unmounting to the spinner for the async import() round-trip — without it, every navigation
7
+ // between two lazy routes blanks the page for at least a frame, even when the module is loaded.
8
+ const resolvedComponents = new Map();
9
+ function resolveLazyRoute(route) {
10
+ return route.LazyComponent().then((module) => {
11
+ if (!module.default) {
12
+ throw new Error(`Lazy module for ${route.path} does not have a default export`);
13
+ }
14
+ resolvedComponents.set(route.LazyComponent, module.default);
15
+ return module.default;
16
+ });
17
+ }
18
+ /**
19
+ * Start loading the given routes' lazy modules ahead of navigation (non-lazy routes are ignored).
20
+ * Call it during idle time after first paint: the first navigation to a prefetched route then
21
+ * renders synchronously instead of flashing the spinner while its chunk downloads. Failures are
22
+ * swallowed — navigation retries the import and reports the error the normal way.
23
+ */
24
+ export function prefetchLazyRoutes(routes) {
25
+ return Promise.allSettled(routes
26
+ .filter((route) => !!route.LazyComponent)
27
+ .map((route) => resolveLazyRoute(route)));
28
+ }
4
29
  export function RouteComponent({ spinner }) {
5
30
  const ctx = useRouterContext();
6
31
  const route = ctx.route;
@@ -9,23 +34,30 @@ export function RouteComponent({ spinner }) {
9
34
  return _jsx(Component, { ...ctx.params });
10
35
  }
11
36
  else if (route.LazyComponent) {
12
- return _jsx(LazyRouteComponent, { route: route, spinner: spinner });
37
+ // Keyed per path so navigating between two lazy routes remounts: a reused instance would
38
+ // keep rendering the previous route's component while the next import resolves.
39
+ return _jsx(LazyRouteComponent, { route: route, spinner: spinner }, route.path);
13
40
  }
14
41
  else {
15
42
  throw new Error(`Invalid route for ${route.path}. Either Component or LazyCOmponent must be specified.`);
16
43
  }
17
44
  }
18
45
  function LazyRouteComponent({ route, spinner }) {
19
- const [Component, setComponent] = useState(null);
46
+ const [Component, setComponent] = useState(() => resolvedComponents.get(route.LazyComponent) ?? null);
20
47
  useEffect(() => {
21
- void route.LazyComponent().then((module) => {
22
- if (!module.default) {
23
- throw new Error(`Lazy module for ${route.path} does not have a default export`);
48
+ // A slow import must not land after this instance moved on (unmount, or a route object
49
+ // swap without a path change): the stale module would overwrite the current one.
50
+ let stale = false;
51
+ void resolveLazyRoute(route).then((component) => {
52
+ if (!stale) {
53
+ // we need to wrap the component type in an arrow function
54
+ // otherwise the setState function will execute the function as a state update function
55
+ setComponent(() => component);
24
56
  }
25
- // we need to wrap the component type in an arrow function
26
- // otherwise the setState function will execute the function as a state update function
27
- setComponent(() => module.default);
28
57
  });
58
+ return () => {
59
+ stale = true;
60
+ };
29
61
  }, [route]);
30
62
  return Component ? _jsx(Component, {}) : spinner || null;
31
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouteComponent.js","sourceRoot":"","sources":["../../src/router/RouteComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAsE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAKhH,MAAM,UAAU,cAAc,CAAC,EAAE,OAAO,EAAuB;IAC3D,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAExB,IAAK,KAAwB,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,SAAS,GAAI,KAAwB,CAAC,SAAS,CAAC;QACtD,OAAO,KAAC,SAAS,OAAK,GAAG,CAAC,MAAM,GAAI,CAAC;IACzC,CAAC;SAAM,IAAK,KAA4B,CAAC,aAAa,EAAE,CAAC;QACrD,OAAO,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAA2B,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;IACxF,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,wDAAwD,CAAC,CAAC;IAC7G,CAAC;AACL,CAAC;AAMD,SAAS,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAA2B;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAoC,IAAI,CAAC,CAAC;IACpF,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,IAAI,iCAAiC,CAAC,CAAC;YACpF,CAAC;YACD,0DAA0D;YAC1D,uFAAuF;YACvF,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"RouteComponent.js","sourceRoot":"","sources":["../../src/router/RouteComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAKH,gBAAgB,GACnB,MAAM,UAAU,CAAC;AAElB,+FAA+F;AAC/F,kGAAkG;AAClG,gGAAgG;AAChG,gGAAgG;AAChG,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAmE,CAAC;AAEtG,SAAS,gBAAgB,CAAC,KAAyB;IAC/C,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,IAAI,iCAAiC,CAAC,CAAC;QACpF,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,OAAO,CAAC;IAC1B,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAC9C,OAAO,OAAO,CAAC,UAAU,CACrB,MAAM;SACD,MAAM,CAAC,CAAC,KAAK,EAA+B,EAAE,CAAC,CAAC,CAAE,KAA4B,CAAC,aAAa,CAAC;SAC7F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAC/C,CAAC;AACN,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,EAAE,OAAO,EAAuB;IAC3D,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAExB,IAAK,KAAwB,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,SAAS,GAAI,KAAwB,CAAC,SAAS,CAAC;QACtD,OAAO,KAAC,SAAS,OAAK,GAAG,CAAC,MAAM,GAAI,CAAC;IACzC,CAAC;SAAM,IAAK,KAA4B,CAAC,aAAa,EAAE,CAAC;QACrD,yFAAyF;QACzF,gFAAgF;QAChF,OAAO,KAAC,kBAAkB,IAAkB,KAAK,EAAE,KAA2B,EAAE,OAAO,EAAE,OAAO,IAAhE,KAAK,CAAC,IAAI,CAA0D,CAAC;IACzG,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,wDAAwD,CAAC,CAAC;IAC7G,CAAC;AACL,CAAC;AAMD,SAAS,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAA2B;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CACtC,GAAG,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAC5D,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACX,uFAAuF;QACvF,iFAAiF;QACjF,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,0DAA0D;gBAC1D,uFAAuF;gBACvF,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACR,KAAK,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;AACvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserSessionProvider.d.ts","sourceRoot":"","sources":["../../src/session/UserSessionProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AACpE,OAAO,EAKH,8BAA8B,EAIjC,MAAM,mBAAmB,CAAC;AAc3B,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,GAAG,EACf,KAAK,EAAE,8BAA8B,EACrC,SAAS,UAAQ,GAClB,GAAG,CA0BL;AAED,UAAU,wBAAwB;IAC9B,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AACD,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,oBAA2B,EAAE,EAAE,wBAAwB,+BAqRtG"}
1
+ {"version":3,"file":"UserSessionProvider.d.ts","sourceRoot":"","sources":["../../src/session/UserSessionProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AACpE,OAAO,EAKH,8BAA8B,EAIjC,MAAM,mBAAmB,CAAC;AAc3B,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,GAAG,EACf,KAAK,EAAE,8BAA8B,EACrC,SAAS,UAAQ,GAClB,GAAG,CA0BL;AAED,UAAU,wBAAwB;IAC9B,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AACD,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,oBAA2B,EAAE,EAAE,wBAAwB,+BA0QtG"}
@@ -4,7 +4,7 @@ import { Env } from '@vertesia/ui/env';
4
4
  import { onAuthStateChanged } from 'firebase/auth';
5
5
  import { useEffect, useRef, useState } from 'react';
6
6
  import { AuthenticationServiceError, CredentialError, getComposableToken, NoAccessibleAccountError, RequestedScopeUnavailableError, RestrictedEnvironmentError, resolveAuthSelection, UserNotFoundError, } from './auth/composable';
7
- import { authReturnUrl, shouldRedirectToCentralAuth } from './auth/domainRouting';
7
+ import { authReturnUrl, centralAuthRedirectUrl, shouldRedirectToCentralAuth } from './auth/domainRouting';
8
8
  import { getFirebaseAuth } from './auth/firebase';
9
9
  import { useAuthState } from './auth/useAuthState';
10
10
  import { UserSession, UserSessionContext } from './UserSession';
@@ -85,31 +85,27 @@ export function UserSessionProvider({ children, loadOnboardingStatus = true }) {
85
85
  setSession(session.clone());
86
86
  return true;
87
87
  };
88
- const redirectToCentralAuth = (projectId, accountId) => {
89
- const url = new URL(`${CENTRAL_AUTH_REDIRECT}?sts=${Env.endpoints.sts ?? 'https://sts.vertesia.io'}`);
90
- const currentUrl = authReturnUrl();
91
- if (projectId)
92
- currentUrl.searchParams.set('p', projectId);
93
- if (accountId)
94
- currentUrl.searchParams.set('a', accountId);
95
- url.searchParams.set('redirect_uri', currentUrl.toString());
96
- url.searchParams.set('state', generateState());
88
+ const redirectToCentralAuth = (selection) => {
89
+ const url = centralAuthRedirectUrl({
90
+ centralAuthUrl: CENTRAL_AUTH_REDIRECT,
91
+ stsEndpoint: Env.endpoints.sts ?? 'https://sts.vertesia.io',
92
+ returnUrl: authReturnUrl(),
93
+ state: generateState(),
94
+ ...selection,
95
+ });
97
96
  location.replace(url.toString());
98
97
  };
99
98
  authFlowRef.current = () => {
100
99
  // Make this effect idempotent - only run auth flow once
101
100
  if (hasInitiatedAuthRef.current) {
102
- console.log('Auth: skipping duplicate auth flow initiation');
101
+ Env.logger.debug('Skipping duplicate auth flow initiation');
103
102
  return;
104
103
  }
105
104
  hasInitiatedAuthRef.current = true;
106
- console.log('Auth: starting auth flow');
107
- Env.logger.info('Starting auth flow');
105
+ Env.logger.debug('Starting auth flow');
108
106
  const currentUrl = new URL(window.location.href);
109
107
  const { accountId: selectedAccount, projectId: selectedProject } = resolveAuthSelection(currentUrl);
110
- console.log('Auth: selected account', selectedAccount);
111
- console.log('Auth: selected project', selectedProject);
112
- Env.logger.info('Selected account and project', {
108
+ Env.logger.debug('Selected account and project', {
113
109
  vertesia: {
114
110
  account_id: selectedAccount,
115
111
  project_id: selectedProject,
@@ -148,7 +144,7 @@ export function UserSessionProvider({ children, loadOnboardingStatus = true }) {
148
144
  state: state,
149
145
  },
150
146
  });
151
- redirectToCentralAuth();
147
+ redirectToCentralAuth({ accountId: selectedAccount, projectId: selectedProject });
152
148
  }
153
149
  else {
154
150
  clearState();
@@ -169,7 +165,7 @@ export function UserSessionProvider({ children, loadOnboardingStatus = true }) {
169
165
  error: err,
170
166
  },
171
167
  });
172
- redirectToCentralAuth();
168
+ redirectToCentralAuth({ accountId: selectedAccount, projectId: selectedProject });
173
169
  });
174
170
  return;
175
171
  }
@@ -180,26 +176,23 @@ export function UserSessionProvider({ children, loadOnboardingStatus = true }) {
180
176
  return;
181
177
  // If the current host is not in the Firebase allowlist, central auth owns sign-in.
182
178
  if (!session.isLoggedIn()) {
183
- console.log('Auth: not logged in & no token/state');
184
- Env.logger.info('Not logged in & no token/state', {
179
+ Env.logger.debug('Not logged in & no token/state', {
185
180
  vertesia: {
186
181
  account_id: selectedAccount,
187
182
  project_id: selectedProject,
188
183
  },
189
184
  });
190
185
  if (shouldRedirectToCentralAuth()) {
191
- console.log('Auth: host is not in Firebase auth allowlist, redirecting to central auth with selection', selectedAccount, selectedProject);
192
- Env.logger.info('Redirecting to central auth with selection', {
186
+ Env.logger.debug('Redirecting to central auth with selection', {
193
187
  vertesia: {
194
188
  account_id: selectedAccount,
195
189
  project_id: selectedProject,
196
190
  },
197
191
  });
198
- redirectToCentralAuth();
192
+ redirectToCentralAuth({ accountId: selectedAccount, projectId: selectedProject });
199
193
  return; // Don't register onAuthStateChanged listener when redirecting
200
194
  }
201
- console.log('Auth: host is in Firebase auth allowlist');
202
- Env.logger.info('Host is in Firebase auth allowlist', {
195
+ Env.logger.debug('Host is in Firebase auth allowlist', {
203
196
  vertesia: {
204
197
  account_id: selectedAccount,
205
198
  project_id: selectedProject,
@@ -208,8 +201,7 @@ export function UserSessionProvider({ children, loadOnboardingStatus = true }) {
208
201
  }
209
202
  unsubscribe = onAuthStateChanged(getFirebaseAuth(), async (firebaseUser) => {
210
203
  if (firebaseUser) {
211
- console.log('Auth: successful login with firebase');
212
- Env.logger.info('Successful login with firebase', {
204
+ Env.logger.debug('Successful login with firebase', {
213
205
  vertesia: {
214
206
  account_id: selectedAccount,
215
207
  project_id: selectedProject,
@@ -237,8 +229,7 @@ export function UserSessionProvider({ children, loadOnboardingStatus = true }) {
237
229
  }
238
230
  else {
239
231
  // anonymous user
240
- console.log('Auth: using anonymous user');
241
- Env.logger.info('Using anonymous user', {
232
+ Env.logger.debug('Using anonymous user', {
242
233
  vertesia: {
243
234
  account_id: selectedAccount,
244
235
  project_id: selectedProject,