@vertesia/ui 1.0.0-dev.20260305.083323Z → 1.0.0-dev.20260331.091034Z

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 (783) hide show
  1. package/lib/esm/core/components/SelectList.js +3 -1
  2. package/lib/esm/core/components/SelectList.js.map +1 -1
  3. package/lib/esm/core/components/SidePanel.js +2 -2
  4. package/lib/esm/core/components/SidePanel.js.map +1 -1
  5. package/lib/esm/core/components/index.js +0 -5
  6. package/lib/esm/core/components/index.js.map +1 -1
  7. package/lib/esm/core/components/shadcn/breadcrumb.js +11 -7
  8. package/lib/esm/core/components/shadcn/breadcrumb.js.map +1 -1
  9. package/lib/esm/core/components/shadcn/button.js +5 -3
  10. package/lib/esm/core/components/shadcn/button.js.map +1 -1
  11. package/lib/esm/core/components/shadcn/collaspible.js +14 -0
  12. package/lib/esm/core/components/shadcn/collaspible.js.map +1 -0
  13. package/lib/esm/core/components/shadcn/dropdown.js +64 -0
  14. package/lib/esm/core/components/shadcn/dropdown.js.map +1 -0
  15. package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +3 -1
  16. package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -1
  17. package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +3 -1
  18. package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -1
  19. package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +1 -1
  20. package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -1
  21. package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js +1 -1
  22. package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +1 -1
  23. package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +4 -2
  24. package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +1 -1
  25. package/lib/esm/core/components/shadcn/filters/filterBar.js +7 -4
  26. package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
  27. package/lib/esm/core/components/shadcn/index.js +4 -0
  28. package/lib/esm/core/components/shadcn/index.js.map +1 -1
  29. package/lib/esm/core/components/shadcn/modal/ConfirmModal.js +4 -2
  30. package/lib/esm/core/components/shadcn/modal/ConfirmModal.js.map +1 -1
  31. package/lib/esm/core/components/shadcn/modal/DeleteModal.js +5 -3
  32. package/lib/esm/core/components/shadcn/modal/DeleteModal.js.map +1 -1
  33. package/lib/esm/core/components/shadcn/popover.js +11 -7
  34. package/lib/esm/core/components/shadcn/popover.js.map +1 -1
  35. package/lib/esm/core/components/shadcn/radioGroup.js +29 -0
  36. package/lib/esm/core/components/shadcn/radioGroup.js.map +1 -0
  37. package/lib/esm/core/components/shadcn/switch.js +19 -0
  38. package/lib/esm/core/components/shadcn/switch.js.map +1 -0
  39. package/lib/esm/core/components/shadcn/tabs.js +6 -6
  40. package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
  41. package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js +7 -4
  42. package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -1
  43. package/lib/esm/core/components/toast/NotificationPanel.js +3 -3
  44. package/lib/esm/core/components/toast/NotificationPanel.js.map +1 -1
  45. package/lib/esm/core/hooks/PortalContainerProvider.js +9 -3
  46. package/lib/esm/core/hooks/PortalContainerProvider.js.map +1 -1
  47. package/lib/esm/env/index.js +16 -9
  48. package/lib/esm/env/index.js.map +1 -1
  49. package/lib/esm/features/agent/PayloadBuilder.js +87 -15
  50. package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
  51. package/lib/esm/features/agent/chat/AgentRightPanel.js +159 -0
  52. package/lib/esm/features/agent/chat/AgentRightPanel.js.map +1 -0
  53. package/lib/esm/features/agent/chat/ArtifactsTab.js +69 -0
  54. package/lib/esm/features/agent/chat/ArtifactsTab.js.map +1 -0
  55. package/lib/esm/features/agent/chat/AskUserWidget.js +12 -6
  56. package/lib/esm/features/agent/chat/AskUserWidget.js.map +1 -1
  57. package/lib/esm/features/agent/chat/DocumentPanel.js +6 -3
  58. package/lib/esm/features/agent/chat/DocumentPanel.js.map +1 -1
  59. package/lib/esm/features/agent/chat/ImageLightbox.js +3 -1
  60. package/lib/esm/features/agent/chat/ImageLightbox.js.map +1 -1
  61. package/lib/esm/features/agent/chat/ModernAgentConversation.js +241 -113
  62. package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
  63. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +122 -52
  64. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  65. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +5 -3
  66. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -1
  67. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +76 -33
  68. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  69. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +82 -83
  70. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -1
  71. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +16 -14
  72. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
  73. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +20 -5
  74. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  75. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +8 -6
  76. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -1
  77. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +12 -10
  78. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -1
  79. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js +5 -3
  80. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -1
  81. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +104 -13
  82. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
  83. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +9 -5
  84. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
  85. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +160 -76
  86. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
  87. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +3 -1
  88. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +1 -1
  89. package/lib/esm/features/agent/chat/VegaLiteChart.js +14 -2
  90. package/lib/esm/features/agent/chat/VegaLiteChart.js.map +1 -1
  91. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js +3 -8
  92. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js.map +1 -1
  93. package/lib/esm/features/agent/chat/hooks/useAgentStream.js +79 -16
  94. package/lib/esm/features/agent/chat/hooks/useAgentStream.js.map +1 -1
  95. package/lib/esm/features/agent/chat/hooks/useArtifacts.js +108 -0
  96. package/lib/esm/features/agent/chat/hooks/useArtifacts.js.map +1 -0
  97. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js +56 -5
  98. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js.map +1 -1
  99. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js +12 -10
  100. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js.map +1 -1
  101. package/lib/esm/features/errors/PanelErrorBoundary.js +3 -1
  102. package/lib/esm/features/errors/PanelErrorBoundary.js.map +1 -1
  103. package/lib/esm/features/facets/AgentRunnerFacetsNav.js +45 -33
  104. package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +1 -1
  105. package/lib/esm/features/facets/RunsFacetsNav.js +9 -2
  106. package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -1
  107. package/lib/esm/features/facets/index.js +1 -1
  108. package/lib/esm/features/facets/index.js.map +1 -1
  109. package/lib/esm/features/layout/GenericPageNavHeader.js +40 -28
  110. package/lib/esm/features/layout/GenericPageNavHeader.js.map +1 -1
  111. package/lib/esm/features/layout/NotFoundView.js +3 -1
  112. package/lib/esm/features/layout/NotFoundView.js.map +1 -1
  113. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js +9 -5
  114. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
  115. package/lib/esm/features/magic-pdf/DownloadPopover.js +5 -4
  116. package/lib/esm/features/magic-pdf/DownloadPopover.js.map +1 -1
  117. package/lib/esm/features/magic-pdf/MagicPdfView.js +8 -5
  118. package/lib/esm/features/magic-pdf/MagicPdfView.js.map +1 -1
  119. package/lib/esm/features/pdf-viewer/PdfPageSlider.js +9 -5
  120. package/lib/esm/features/pdf-viewer/PdfPageSlider.js.map +1 -1
  121. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js +5 -3
  122. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js.map +1 -1
  123. package/lib/esm/features/permissions/UserPermissionsProvider.js +3 -1
  124. package/lib/esm/features/permissions/UserPermissionsProvider.js.map +1 -1
  125. package/lib/esm/features/store/collections/BrowseCollectionView.js +9 -1
  126. package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
  127. package/lib/esm/features/store/collections/CollectionsTable.js +14 -7
  128. package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -1
  129. package/lib/esm/features/store/collections/CreateCollection.js +12 -9
  130. package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
  131. package/lib/esm/features/store/collections/EditCollectionView.js +23 -19
  132. package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
  133. package/lib/esm/features/store/collections/SelectCollection.js +25 -10
  134. package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
  135. package/lib/esm/features/store/collections/SharedPropsEditor.js +5 -3
  136. package/lib/esm/features/store/collections/SharedPropsEditor.js.map +1 -1
  137. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js +5 -3
  138. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js.map +1 -1
  139. package/lib/esm/features/store/objects/DocumentPreviewPanel.js +14 -12
  140. package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +1 -1
  141. package/lib/esm/features/store/objects/DocumentSearchResults.js +15 -5
  142. package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
  143. package/lib/esm/features/store/objects/DocumentTable.js +10 -7
  144. package/lib/esm/features/store/objects/DocumentTable.js.map +1 -1
  145. package/lib/esm/features/store/objects/ExportPropertiesModal.js +5 -2
  146. package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +1 -1
  147. package/lib/esm/features/store/objects/components/ContentDispositionButton.js +3 -1
  148. package/lib/esm/features/store/objects/components/ContentDispositionButton.js.map +1 -1
  149. package/lib/esm/features/store/objects/components/ContentOverview.js +55 -40
  150. package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
  151. package/lib/esm/features/store/objects/components/DocumentIcon.js +4 -3
  152. package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
  153. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +13 -11
  154. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
  155. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +15 -18
  156. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
  157. package/lib/esm/features/store/objects/components/SelectDocument.js +9 -6
  158. package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
  159. package/lib/esm/features/store/objects/components/TextEditorPanel.js +97 -0
  160. package/lib/esm/features/store/objects/components/TextEditorPanel.js.map +1 -0
  161. package/lib/esm/features/store/objects/components/VectorSearchWidget.js +3 -1
  162. package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
  163. package/lib/esm/features/store/objects/components/useContentPanelHooks.js +4 -2
  164. package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +1 -1
  165. package/lib/esm/features/store/objects/components/useDownloadFile.js +12 -10
  166. package/lib/esm/features/store/objects/components/useDownloadFile.js.map +1 -1
  167. package/lib/esm/features/store/objects/layout/documentLayout.js +10 -6
  168. package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
  169. package/lib/esm/features/store/objects/layout/renderers.js +10 -1
  170. package/lib/esm/features/store/objects/layout/renderers.js.map +1 -1
  171. package/lib/esm/features/store/objects/search/DocumentSearchContext.js +3 -2
  172. package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
  173. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +3 -0
  174. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +1 -1
  175. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +22 -109
  176. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -1
  177. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js +50 -0
  178. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js.map +1 -0
  179. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js +27 -0
  180. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js.map +1 -0
  181. package/lib/esm/features/store/objects/selection/SelectionActions.js +10 -6
  182. package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
  183. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +17 -12
  184. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
  185. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +9 -5
  186. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -1
  187. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js +4 -2
  188. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js.map +1 -1
  189. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +24 -23
  190. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
  191. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +10 -5
  192. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -1
  193. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +13 -9
  194. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +1 -1
  195. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +14 -8
  196. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +1 -1
  197. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +42 -39
  198. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
  199. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +4 -2
  200. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -1
  201. package/lib/esm/features/store/objects/upload/useUploadHandler.js +9 -7
  202. package/lib/esm/features/store/objects/upload/useUploadHandler.js.map +1 -1
  203. package/lib/esm/features/store/types/ContentObjectTypesSearch.js +6 -4
  204. package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +1 -1
  205. package/lib/esm/features/store/types/ContentObjectTypesTable.js +3 -1
  206. package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +1 -1
  207. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +6 -7
  208. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -1
  209. package/lib/esm/features/store/types/ObjectSchemaEditor.js +9 -7
  210. package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
  211. package/lib/esm/features/store/types/SelectContentType.js +9 -7
  212. package/lib/esm/features/store/types/SelectContentType.js.map +1 -1
  213. package/lib/esm/features/store/types/SelectContentTypeModal.js +5 -2
  214. package/lib/esm/features/store/types/SelectContentTypeModal.js.map +1 -1
  215. package/lib/esm/features/store/types/TableLayoutEditor.js +6 -4
  216. package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -1
  217. package/lib/esm/features/user/UserInfo.js +40 -50
  218. package/lib/esm/features/user/UserInfo.js.map +1 -1
  219. package/lib/esm/i18n/index.js +31 -0
  220. package/lib/esm/i18n/index.js.map +1 -0
  221. package/lib/esm/i18n/instance.js +46 -0
  222. package/lib/esm/i18n/instance.js.map +1 -0
  223. package/lib/esm/i18n/locales/ar.json +696 -0
  224. package/lib/esm/i18n/locales/de.json +664 -0
  225. package/lib/esm/i18n/locales/en.json +665 -0
  226. package/lib/esm/i18n/locales/es.json +670 -0
  227. package/lib/esm/i18n/locales/fr.json +672 -0
  228. package/lib/esm/i18n/locales/it.json +670 -0
  229. package/lib/esm/i18n/locales/ja.json +664 -0
  230. package/lib/esm/i18n/locales/ko.json +664 -0
  231. package/lib/esm/i18n/locales/pt.json +670 -0
  232. package/lib/esm/i18n/locales/ru.json +680 -0
  233. package/lib/esm/i18n/locales/tr.json +664 -0
  234. package/lib/esm/i18n/locales/zh-TW.json +664 -0
  235. package/lib/esm/i18n/locales/zh.json +664 -0
  236. package/lib/esm/layout/FullHeightLayout.js +3 -0
  237. package/lib/esm/layout/FullHeightLayout.js.map +1 -1
  238. package/lib/esm/layout/Navbar.js +3 -1
  239. package/lib/esm/layout/Navbar.js.map +1 -1
  240. package/lib/esm/layout/RegionTag.js +15 -0
  241. package/lib/esm/layout/RegionTag.js.map +1 -0
  242. package/lib/esm/layout/Sidebar.js +2 -2
  243. package/lib/esm/layout/Sidebar.js.map +1 -1
  244. package/lib/esm/layout/index.js +1 -0
  245. package/lib/esm/layout/index.js.map +1 -1
  246. package/lib/esm/router/HistoryNavigator.js +1 -1
  247. package/lib/esm/router/HistoryNavigator.js.map +1 -1
  248. package/lib/esm/router/Nav.js +5 -3
  249. package/lib/esm/router/Nav.js.map +1 -1
  250. package/lib/esm/router/NestedNavigationContext.js +4 -0
  251. package/lib/esm/router/NestedNavigationContext.js.map +1 -1
  252. package/lib/esm/router/NestedRouterProvider.js +3 -1
  253. package/lib/esm/router/NestedRouterProvider.js.map +1 -1
  254. package/lib/esm/router/Router.js +21 -6
  255. package/lib/esm/router/Router.js.map +1 -1
  256. package/lib/esm/session/UserSession.js +25 -4
  257. package/lib/esm/session/UserSession.js.map +1 -1
  258. package/lib/esm/session/UserSessionProvider.js +6 -13
  259. package/lib/esm/session/UserSessionProvider.js.map +1 -1
  260. package/lib/esm/session/auth/composable.js +1 -1
  261. package/lib/esm/session/auth/composable.js.map +1 -1
  262. package/lib/esm/session/auth/domainRouting.js +17 -0
  263. package/lib/esm/session/auth/domainRouting.js.map +1 -0
  264. package/lib/esm/session/auth/firebase.js +1 -1
  265. package/lib/esm/session/auth/firebase.js.map +1 -1
  266. package/lib/esm/session/auth/useCurrentTenant.js +3 -1
  267. package/lib/esm/session/auth/useCurrentTenant.js.map +1 -1
  268. package/lib/esm/shell/SplashScreen.js +3 -7
  269. package/lib/esm/shell/SplashScreen.js.map +1 -1
  270. package/lib/esm/shell/apps/StandaloneApp.js +5 -2
  271. package/lib/esm/shell/apps/StandaloneApp.js.map +1 -1
  272. package/lib/esm/shell/login/EnterpriseSigninButton.js +5 -3
  273. package/lib/esm/shell/login/EnterpriseSigninButton.js.map +1 -1
  274. package/lib/esm/shell/login/GitHubSignInButton.js +3 -7
  275. package/lib/esm/shell/login/GitHubSignInButton.js.map +1 -1
  276. package/lib/esm/shell/login/GoogleSignInButton.js +3 -1
  277. package/lib/esm/shell/login/GoogleSignInButton.js.map +1 -1
  278. package/lib/esm/shell/login/InviteAcceptModal.js +5 -2
  279. package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -1
  280. package/lib/esm/shell/login/MicrosoftSigninButton.js +4 -6
  281. package/lib/esm/shell/login/MicrosoftSigninButton.js.map +1 -1
  282. package/lib/esm/shell/login/SigninScreen.js +6 -2
  283. package/lib/esm/shell/login/SigninScreen.js.map +1 -1
  284. package/lib/esm/shell/login/SignupForm.js +36 -34
  285. package/lib/esm/shell/login/SignupForm.js.map +1 -1
  286. package/lib/esm/shell/login/TerminalLogin.js +28 -21
  287. package/lib/esm/shell/login/TerminalLogin.js.map +1 -1
  288. package/lib/esm/shell/login/UserInfo.js +6 -4
  289. package/lib/esm/shell/login/UserInfo.js.map +1 -1
  290. package/lib/esm/shell/login/UserSessionMenu.js +3 -4
  291. package/lib/esm/shell/login/UserSessionMenu.js.map +1 -1
  292. package/lib/esm/widgets/index.js +0 -1
  293. package/lib/esm/widgets/index.js.map +1 -1
  294. package/lib/esm/widgets/json-view/JSONCode.js +1 -1
  295. package/lib/esm/widgets/json-view/JSONCode.js.map +1 -1
  296. package/lib/esm/widgets/json-view/JSONDisplay.js +6 -2
  297. package/lib/esm/widgets/json-view/JSONDisplay.js.map +1 -1
  298. package/lib/esm/widgets/json-view/JSONSwitcher.js +6 -0
  299. package/lib/esm/widgets/json-view/JSONSwitcher.js.map +1 -0
  300. package/lib/esm/widgets/json-view/JSONView.js +1 -1
  301. package/lib/esm/widgets/json-view/JSONView.js.map +1 -1
  302. package/lib/esm/widgets/json-view/index.js +1 -0
  303. package/lib/esm/widgets/json-view/index.js.map +1 -1
  304. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js +6 -5
  305. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js.map +1 -1
  306. package/lib/esm/widgets/markdown/CodeBlockContext.js +11 -0
  307. package/lib/esm/widgets/markdown/CodeBlockContext.js.map +1 -0
  308. package/lib/esm/widgets/markdown/MarkdownRenderer.js +11 -10
  309. package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +1 -1
  310. package/lib/esm/widgets/markdown/codeBlockHandlers.js +11 -12
  311. package/lib/esm/widgets/markdown/codeBlockHandlers.js.map +1 -1
  312. package/lib/esm/widgets/markdown/index.js +10 -9
  313. package/lib/esm/widgets/markdown/index.js.map +1 -1
  314. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js +0 -1
  315. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js.map +1 -1
  316. package/lib/esm/widgets/schema-editor/ManagedSchema.js +6 -5
  317. package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +1 -1
  318. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +7 -3
  319. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +1 -1
  320. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +3 -1
  321. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
  322. package/lib/esm/widgets/upload/DropZone.js +9 -11
  323. package/lib/esm/widgets/upload/DropZone.js.map +1 -1
  324. package/lib/esm/widgets/upload/UploadResultCategory.js +3 -1
  325. package/lib/esm/widgets/upload/UploadResultCategory.js.map +1 -1
  326. package/lib/esm/widgets/upload/UploadSummary.js +3 -1
  327. package/lib/esm/widgets/upload/UploadSummary.js.map +1 -1
  328. package/lib/tsconfig.tsbuildinfo +1 -1
  329. package/lib/types/core/components/SelectList.d.ts.map +1 -1
  330. package/lib/types/core/components/SidePanel.d.ts +4 -2
  331. package/lib/types/core/components/SidePanel.d.ts.map +1 -1
  332. package/lib/types/core/components/index.d.ts +0 -5
  333. package/lib/types/core/components/index.d.ts.map +1 -1
  334. package/lib/types/core/components/shadcn/badge.d.ts +2 -2
  335. package/lib/types/core/components/shadcn/breadcrumb.d.ts +1 -1
  336. package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -1
  337. package/lib/types/core/components/shadcn/button.d.ts.map +1 -1
  338. package/lib/types/core/components/shadcn/collaspible.d.ts +6 -0
  339. package/lib/types/core/components/shadcn/collaspible.d.ts.map +1 -0
  340. package/lib/types/core/components/shadcn/dropdown.d.ts +51 -0
  341. package/lib/types/core/components/shadcn/dropdown.d.ts.map +1 -0
  342. package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +1 -1
  343. package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +1 -1
  344. package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -1
  345. package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
  346. package/lib/types/core/components/shadcn/index.d.ts +4 -0
  347. package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
  348. package/lib/types/core/components/shadcn/input.d.ts +1 -1
  349. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts +2 -1
  350. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -1
  351. package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts.map +1 -1
  352. package/lib/types/core/components/shadcn/popover.d.ts +11 -3
  353. package/lib/types/core/components/shadcn/popover.d.ts.map +1 -1
  354. package/lib/types/core/components/shadcn/radioGroup.d.ts +26 -0
  355. package/lib/types/core/components/shadcn/radioGroup.d.ts.map +1 -0
  356. package/lib/types/core/components/shadcn/switch.d.ts +12 -0
  357. package/lib/types/core/components/shadcn/switch.d.ts.map +1 -0
  358. package/lib/types/core/components/shadcn/tabs.d.ts +4 -2
  359. package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -1
  360. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +3 -2
  361. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -1
  362. package/lib/types/core/components/toast/NotificationPanel.d.ts.map +1 -1
  363. package/lib/types/core/hooks/PortalContainerProvider.d.ts +1 -0
  364. package/lib/types/core/hooks/PortalContainerProvider.d.ts.map +1 -1
  365. package/lib/types/env/index.d.ts +12 -3
  366. package/lib/types/env/index.d.ts.map +1 -1
  367. package/lib/types/features/agent/PayloadBuilder.d.ts +31 -3
  368. package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
  369. package/lib/types/features/agent/chat/AgentRightPanel.d.ts +50 -0
  370. package/lib/types/features/agent/chat/AgentRightPanel.d.ts.map +1 -0
  371. package/lib/types/features/agent/chat/ArtifactsTab.d.ts +9 -0
  372. package/lib/types/features/agent/chat/ArtifactsTab.d.ts.map +1 -0
  373. package/lib/types/features/agent/chat/AskUserWidget.d.ts.map +1 -1
  374. package/lib/types/features/agent/chat/DocumentPanel.d.ts.map +1 -1
  375. package/lib/types/features/agent/chat/ImageLightbox.d.ts.map +1 -1
  376. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +22 -9
  377. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  378. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +3 -1
  379. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  380. package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts.map +1 -1
  381. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +13 -4
  382. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
  383. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +1 -1
  384. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -1
  385. package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
  386. package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  387. package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -1
  388. package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +1 -1
  389. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts +3 -1
  390. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +1 -1
  391. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts +5 -1
  392. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -1
  393. package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -1
  394. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +16 -1
  395. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
  396. package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -1
  397. package/lib/types/features/agent/chat/VegaLiteChart.d.ts.map +1 -1
  398. package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts.map +1 -1
  399. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts +5 -3
  400. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
  401. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts +18 -0
  402. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts.map +1 -0
  403. package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -1
  404. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts +4 -4
  405. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts.map +1 -1
  406. package/lib/types/features/agent/chat/types/document.d.ts +2 -0
  407. package/lib/types/features/agent/chat/types/document.d.ts.map +1 -1
  408. package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +1 -1
  409. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts +2 -1
  410. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -1
  411. package/lib/types/features/facets/RunsFacetsNav.d.ts.map +1 -1
  412. package/lib/types/features/facets/index.d.ts +1 -1
  413. package/lib/types/features/facets/index.d.ts.map +1 -1
  414. package/lib/types/features/layout/GenericPageNavHeader.d.ts +2 -2
  415. package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -1
  416. package/lib/types/features/layout/NotFoundView.d.ts.map +1 -1
  417. package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts.map +1 -1
  418. package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +1 -1
  419. package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +1 -1
  420. package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts.map +1 -1
  421. package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -1
  422. package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +1 -1
  423. package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
  424. package/lib/types/features/store/collections/CollectionsTable.d.ts +4 -0
  425. package/lib/types/features/store/collections/CollectionsTable.d.ts.map +1 -1
  426. package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -1
  427. package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
  428. package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -1
  429. package/lib/types/features/store/collections/SharedPropsEditor.d.ts.map +1 -1
  430. package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts.map +1 -1
  431. package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -1
  432. package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
  433. package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -1
  434. package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +1 -1
  435. package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -1
  436. package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  437. package/lib/types/features/store/objects/components/DocumentIcon.d.ts +2 -1
  438. package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -1
  439. package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -1
  440. package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -1
  441. package/lib/types/features/store/objects/components/SelectDocument.d.ts +3 -1
  442. package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +1 -1
  443. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts +10 -0
  444. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts.map +1 -0
  445. package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -1
  446. package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
  447. package/lib/types/features/store/objects/components/useDownloadFile.d.ts.map +1 -1
  448. package/lib/types/features/store/objects/layout/documentLayout.d.ts +3 -2
  449. package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -1
  450. package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -1
  451. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
  452. package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +1 -1
  453. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +3 -20
  454. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
  455. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts +16 -0
  456. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts.map +1 -0
  457. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts +7 -0
  458. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts.map +1 -0
  459. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +4 -1
  460. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -1
  461. package/lib/types/features/store/objects/selection/SelectionActions.d.ts +6 -1
  462. package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
  463. package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +1 -1
  464. package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -1
  465. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +1 -1
  466. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +1 -1
  467. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
  468. package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -1
  469. package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +1 -1
  470. package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +1 -1
  471. package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
  472. package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -1
  473. package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +1 -1
  474. package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -1
  475. package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
  476. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +2 -1
  477. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +1 -1
  478. package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
  479. package/lib/types/features/store/types/SelectContentType.d.ts.map +1 -1
  480. package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +1 -1
  481. package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -1
  482. package/lib/types/features/user/UserInfo.d.ts +2 -2
  483. package/lib/types/features/user/UserInfo.d.ts.map +1 -1
  484. package/lib/types/i18n/index.d.ts +14 -0
  485. package/lib/types/i18n/index.d.ts.map +1 -0
  486. package/lib/types/i18n/instance.d.ts +5 -0
  487. package/lib/types/i18n/instance.d.ts.map +1 -0
  488. package/lib/types/layout/FullHeightLayout.d.ts +3 -0
  489. package/lib/types/layout/FullHeightLayout.d.ts.map +1 -1
  490. package/lib/types/layout/Navbar.d.ts.map +1 -1
  491. package/lib/types/layout/RegionTag.d.ts +4 -0
  492. package/lib/types/layout/RegionTag.d.ts.map +1 -0
  493. package/lib/types/layout/Sidebar.d.ts +2 -1
  494. package/lib/types/layout/Sidebar.d.ts.map +1 -1
  495. package/lib/types/layout/index.d.ts +1 -0
  496. package/lib/types/layout/index.d.ts.map +1 -1
  497. package/lib/types/router/Nav.d.ts +5 -1
  498. package/lib/types/router/Nav.d.ts.map +1 -1
  499. package/lib/types/router/NestedNavigationContext.d.ts.map +1 -1
  500. package/lib/types/router/NestedRouterProvider.d.ts.map +1 -1
  501. package/lib/types/router/Router.d.ts +2 -0
  502. package/lib/types/router/Router.d.ts.map +1 -1
  503. package/lib/types/session/UserSession.d.ts +1 -0
  504. package/lib/types/session/UserSession.d.ts.map +1 -1
  505. package/lib/types/session/UserSessionProvider.d.ts +0 -1
  506. package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
  507. package/lib/types/session/auth/domainRouting.d.ts +3 -0
  508. package/lib/types/session/auth/domainRouting.d.ts.map +1 -0
  509. package/lib/types/session/auth/useCurrentTenant.d.ts.map +1 -1
  510. package/lib/types/shell/SplashScreen.d.ts.map +1 -1
  511. package/lib/types/shell/apps/StandaloneApp.d.ts.map +1 -1
  512. package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +1 -1
  513. package/lib/types/shell/login/GitHubSignInButton.d.ts.map +1 -1
  514. package/lib/types/shell/login/GoogleSignInButton.d.ts.map +1 -1
  515. package/lib/types/shell/login/InviteAcceptModal.d.ts.map +1 -1
  516. package/lib/types/shell/login/MicrosoftSigninButton.d.ts +1 -1
  517. package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +1 -1
  518. package/lib/types/shell/login/SigninScreen.d.ts.map +1 -1
  519. package/lib/types/shell/login/SignupForm.d.ts.map +1 -1
  520. package/lib/types/shell/login/TerminalLogin.d.ts.map +1 -1
  521. package/lib/types/shell/login/UserInfo.d.ts.map +1 -1
  522. package/lib/types/shell/login/UserSessionMenu.d.ts.map +1 -1
  523. package/lib/types/widgets/index.d.ts +0 -1
  524. package/lib/types/widgets/index.d.ts.map +1 -1
  525. package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +1 -1
  526. package/lib/types/widgets/json-view/JSONSwitcher.d.ts +6 -0
  527. package/lib/types/widgets/json-view/JSONSwitcher.d.ts.map +1 -0
  528. package/lib/types/widgets/json-view/index.d.ts +1 -0
  529. package/lib/types/widgets/json-view/index.d.ts.map +1 -1
  530. package/lib/types/widgets/markdown/ArtifactContentRenderer.d.ts.map +1 -1
  531. package/lib/types/widgets/markdown/CodeBlockContext.d.ts +21 -0
  532. package/lib/types/widgets/markdown/CodeBlockContext.d.ts.map +1 -0
  533. package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
  534. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts +0 -12
  535. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts.map +1 -1
  536. package/lib/types/widgets/markdown/index.d.ts +10 -9
  537. package/lib/types/widgets/markdown/index.d.ts.map +1 -1
  538. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +1 -1
  539. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +1 -1
  540. package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +1 -1
  541. package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -1
  542. package/lib/types/widgets/upload/DropZone.d.ts.map +1 -1
  543. package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +1 -1
  544. package/lib/types/widgets/upload/UploadSummary.d.ts.map +1 -1
  545. package/lib/vertesia-ui-core.js +1 -1
  546. package/lib/vertesia-ui-core.js.map +1 -1
  547. package/lib/vertesia-ui-env.js +1 -1
  548. package/lib/vertesia-ui-env.js.map +1 -1
  549. package/lib/vertesia-ui-features.js +1 -1
  550. package/lib/vertesia-ui-features.js.map +1 -1
  551. package/lib/vertesia-ui-i18n.js +2 -0
  552. package/lib/vertesia-ui-i18n.js.map +1 -0
  553. package/lib/vertesia-ui-layout.js +1 -1
  554. package/lib/vertesia-ui-layout.js.map +1 -1
  555. package/lib/vertesia-ui-router.js +1 -1
  556. package/lib/vertesia-ui-router.js.map +1 -1
  557. package/lib/vertesia-ui-session.js +1 -1
  558. package/lib/vertesia-ui-session.js.map +1 -1
  559. package/lib/vertesia-ui-shell.js +1 -1
  560. package/lib/vertesia-ui-shell.js.map +1 -1
  561. package/lib/vertesia-ui-widgets.js +1 -1
  562. package/lib/vertesia-ui-widgets.js.map +1 -1
  563. package/package.json +36 -22
  564. package/src/core/components/SelectList.tsx +3 -1
  565. package/src/core/components/SidePanel.tsx +5 -4
  566. package/src/core/components/index.ts +0 -5
  567. package/src/core/components/shadcn/breadcrumb.tsx +16 -9
  568. package/src/core/components/shadcn/button.tsx +5 -3
  569. package/src/core/components/shadcn/collaspible.tsx +33 -0
  570. package/src/core/components/shadcn/dropdown.tsx +325 -0
  571. package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +3 -1
  572. package/src/core/components/shadcn/filters/comboBox/SelectCombobox.tsx +3 -1
  573. package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +1 -1
  574. package/src/core/components/shadcn/filters/filter/StringListFilter.tsx +1 -1
  575. package/src/core/components/shadcn/filters/filter/dateFilter.tsx +5 -3
  576. package/src/core/components/shadcn/filters/filterBar.tsx +8 -5
  577. package/src/core/components/shadcn/index.ts +5 -1
  578. package/src/core/components/shadcn/modal/ConfirmModal.tsx +7 -3
  579. package/src/core/components/shadcn/modal/DeleteModal.tsx +5 -3
  580. package/src/core/components/shadcn/popover.tsx +12 -7
  581. package/src/core/components/shadcn/radioGroup.tsx +100 -0
  582. package/src/core/components/shadcn/switch.tsx +60 -0
  583. package/src/core/components/shadcn/tabs.tsx +29 -27
  584. package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +13 -9
  585. package/src/core/components/toast/NotificationPanel.tsx +38 -44
  586. package/src/core/hooks/PortalContainerProvider.tsx +11 -3
  587. package/src/env/index.ts +24 -13
  588. package/src/features/agent/PayloadBuilder.tsx +100 -13
  589. package/src/features/agent/chat/AgentRightPanel.tsx +424 -0
  590. package/src/features/agent/chat/ArtifactsTab.tsx +197 -0
  591. package/src/features/agent/chat/AskUserWidget.tsx +14 -8
  592. package/src/features/agent/chat/DocumentPanel.tsx +24 -9
  593. package/src/features/agent/chat/ImageLightbox.tsx +6 -3
  594. package/src/features/agent/chat/ModernAgentConversation.tsx +460 -279
  595. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +151 -55
  596. package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +6 -4
  597. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +183 -105
  598. package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +21 -31
  599. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +119 -114
  600. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +26 -9
  601. package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +9 -7
  602. package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +15 -13
  603. package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +8 -3
  604. package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +149 -49
  605. package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +9 -5
  606. package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +229 -0
  607. package/src/features/agent/chat/ModernAgentOutput/utils.ts +202 -97
  608. package/src/features/agent/chat/SlidingThinkingIndicator.tsx +5 -3
  609. package/src/features/agent/chat/VegaLiteChart.tsx +20 -8
  610. package/src/features/agent/chat/hooks/useAgentPlans.ts +3 -9
  611. package/src/features/agent/chat/hooks/useAgentStream.ts +86 -19
  612. package/src/features/agent/chat/hooks/useArtifacts.ts +151 -0
  613. package/src/features/agent/chat/hooks/useDocumentPanel.ts +65 -5
  614. package/src/features/agent/chat/hooks/useFileProcessing.ts +14 -13
  615. package/src/features/agent/chat/types/document.ts +2 -0
  616. package/src/features/errors/PanelErrorBoundary.tsx +5 -3
  617. package/src/features/facets/AgentRunnerFacetsNav.tsx +54 -35
  618. package/src/features/facets/RunsFacetsNav.tsx +15 -7
  619. package/src/features/facets/index.ts +1 -1
  620. package/src/features/layout/GenericPageNavHeader.tsx +64 -41
  621. package/src/features/layout/NotFoundView.tsx +4 -1
  622. package/src/features/magic-pdf/AnnotatedImageSlider.tsx +12 -8
  623. package/src/features/magic-pdf/DownloadPopover.tsx +11 -10
  624. package/src/features/magic-pdf/MagicPdfView.tsx +10 -7
  625. package/src/features/pdf-viewer/PdfPageSlider.tsx +10 -6
  626. package/src/features/pdf-viewer/SimplePdfViewer.tsx +5 -3
  627. package/src/features/permissions/UserPermissionsProvider.tsx +3 -1
  628. package/src/features/store/collections/BrowseCollectionView.tsx +11 -1
  629. package/src/features/store/collections/CollectionsTable.tsx +20 -12
  630. package/src/features/store/collections/CreateCollection.tsx +14 -11
  631. package/src/features/store/collections/EditCollectionView.tsx +31 -28
  632. package/src/features/store/collections/SelectCollection.tsx +50 -14
  633. package/src/features/store/collections/SharedPropsEditor.tsx +7 -5
  634. package/src/features/store/collections/SyncMemberHeadsToggle.tsx +6 -4
  635. package/src/features/store/objects/DocumentPreviewPanel.tsx +30 -28
  636. package/src/features/store/objects/DocumentSearchResults.tsx +31 -21
  637. package/src/features/store/objects/DocumentTable.tsx +11 -5
  638. package/src/features/store/objects/ExportPropertiesModal.tsx +8 -5
  639. package/src/features/store/objects/components/ContentDispositionButton.tsx +3 -1
  640. package/src/features/store/objects/components/ContentOverview.tsx +96 -50
  641. package/src/features/store/objects/components/DocumentIcon.tsx +11 -3
  642. package/src/features/store/objects/components/PropertiesEditorModal.tsx +14 -12
  643. package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +24 -37
  644. package/src/features/store/objects/components/SelectDocument.tsx +15 -6
  645. package/src/features/store/objects/components/TextEditorPanel.tsx +143 -0
  646. package/src/features/store/objects/components/VectorSearchWidget.tsx +11 -8
  647. package/src/features/store/objects/components/useContentPanelHooks.ts +4 -2
  648. package/src/features/store/objects/components/useDownloadFile.ts +12 -10
  649. package/src/features/store/objects/layout/documentLayout.tsx +16 -6
  650. package/src/features/store/objects/layout/renderers.tsx +27 -1
  651. package/src/features/store/objects/search/DocumentSearchContext.ts +3 -2
  652. package/src/features/store/objects/search/DocumentSearchProvider.tsx +3 -0
  653. package/src/features/store/objects/selection/ObjectsActionContext.tsx +26 -128
  654. package/src/features/store/objects/selection/ObjectsActionContextClass.ts +59 -0
  655. package/src/features/store/objects/selection/ObjectsActionHooks.ts +33 -0
  656. package/src/features/store/objects/selection/ObjectsActionSpec.ts +4 -1
  657. package/src/features/store/objects/selection/SelectionActions.tsx +14 -6
  658. package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +19 -14
  659. package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +9 -5
  660. package/src/features/store/objects/selection/actions/ConfirmAction.tsx +4 -3
  661. package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +24 -23
  662. package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +10 -5
  663. package/src/features/store/objects/selection/actions/RemoveFromCollectionAction.tsx +13 -9
  664. package/src/features/store/objects/selection/actions/StartWorkflowComponent.tsx +14 -8
  665. package/src/features/store/objects/upload/DocumentUploadModal.tsx +56 -55
  666. package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +4 -2
  667. package/src/features/store/objects/upload/useUploadHandler.ts +9 -7
  668. package/src/features/store/types/ContentObjectTypesSearch.tsx +10 -8
  669. package/src/features/store/types/ContentObjectTypesTable.tsx +6 -4
  670. package/src/features/store/types/CreateOrUpdateTypeModal.tsx +11 -12
  671. package/src/features/store/types/ObjectSchemaEditor.tsx +11 -9
  672. package/src/features/store/types/SelectContentType.tsx +15 -13
  673. package/src/features/store/types/SelectContentTypeModal.tsx +16 -13
  674. package/src/features/store/types/TableLayoutEditor.tsx +16 -12
  675. package/src/features/user/UserInfo.tsx +47 -56
  676. package/src/i18n/index.tsx +45 -0
  677. package/src/i18n/instance.ts +49 -0
  678. package/src/i18n/locales/ar.json +696 -0
  679. package/src/i18n/locales/de.json +664 -0
  680. package/src/i18n/locales/en.json +665 -0
  681. package/src/i18n/locales/es.json +670 -0
  682. package/src/i18n/locales/fr.json +672 -0
  683. package/src/i18n/locales/it.json +670 -0
  684. package/src/i18n/locales/ja.json +664 -0
  685. package/src/i18n/locales/ko.json +664 -0
  686. package/src/i18n/locales/pt.json +670 -0
  687. package/src/i18n/locales/ru.json +680 -0
  688. package/src/i18n/locales/tr.json +664 -0
  689. package/src/i18n/locales/zh-TW.json +664 -0
  690. package/src/i18n/locales/zh.json +664 -0
  691. package/src/layout/FullHeightLayout.tsx +8 -0
  692. package/src/layout/Navbar.tsx +4 -2
  693. package/src/layout/RegionTag.tsx +25 -0
  694. package/src/layout/Sidebar.tsx +4 -3
  695. package/src/layout/index.ts +2 -1
  696. package/src/router/HistoryNavigator.ts +10 -10
  697. package/src/router/Nav.tsx +9 -3
  698. package/src/router/NestedNavigationContext.tsx +4 -0
  699. package/src/router/NestedRouterProvider.tsx +3 -1
  700. package/src/router/Router.tsx +23 -7
  701. package/src/session/UserSession.ts +26 -5
  702. package/src/session/UserSessionProvider.tsx +6 -14
  703. package/src/session/auth/composable.ts +1 -1
  704. package/src/session/auth/domainRouting.test.ts +110 -0
  705. package/src/session/auth/domainRouting.ts +22 -0
  706. package/src/session/auth/firebase.ts +1 -1
  707. package/src/session/auth/useCurrentTenant.ts +3 -1
  708. package/src/shell/SplashScreen.tsx +22 -26
  709. package/src/shell/apps/StandaloneApp.tsx +9 -6
  710. package/src/shell/login/EnterpriseSigninButton.tsx +6 -4
  711. package/src/shell/login/GitHubSignInButton.tsx +3 -7
  712. package/src/shell/login/GoogleSignInButton.tsx +3 -1
  713. package/src/shell/login/InviteAcceptModal.tsx +5 -2
  714. package/src/shell/login/MicrosoftSigninButton.tsx +4 -6
  715. package/src/shell/login/SigninScreen.tsx +18 -13
  716. package/src/shell/login/SignupForm.tsx +46 -46
  717. package/src/shell/login/TerminalLogin.tsx +35 -31
  718. package/src/shell/login/UserInfo.tsx +15 -13
  719. package/src/shell/login/UserSessionMenu.tsx +28 -31
  720. package/src/widgets/index.ts +0 -1
  721. package/src/widgets/json-view/JSONCode.tsx +1 -1
  722. package/src/widgets/json-view/JSONDisplay.tsx +8 -3
  723. package/src/widgets/json-view/JSONSwitcher.tsx +24 -0
  724. package/src/widgets/json-view/JSONView.tsx +1 -1
  725. package/src/widgets/json-view/index.ts +1 -0
  726. package/src/widgets/markdown/ArtifactContentRenderer.tsx +15 -7
  727. package/src/widgets/markdown/CodeBlockContext.tsx +34 -0
  728. package/src/widgets/markdown/MarkdownRenderer.tsx +14 -13
  729. package/src/widgets/markdown/codeBlockHandlers.tsx +17 -36
  730. package/src/widgets/markdown/index.ts +27 -34
  731. package/src/widgets/markdown/remarkDirectiveHandler.ts +1 -1
  732. package/src/widgets/schema-editor/ManagedSchema.ts +6 -5
  733. package/src/widgets/schema-editor/editor/PropertyEditor.tsx +7 -3
  734. package/src/widgets/schema-editor/editor/SchemaEditor.tsx +3 -1
  735. package/src/widgets/upload/DropZone.tsx +10 -13
  736. package/src/widgets/upload/UploadResultCategory.tsx +3 -1
  737. package/src/widgets/upload/UploadSummary.tsx +13 -11
  738. package/tsconfig.dist.json +1 -1
  739. package/lib/esm/core/components/Dropdown.js +0 -16
  740. package/lib/esm/core/components/Dropdown.js.map +0 -1
  741. package/lib/esm/core/components/DropdownList.js +0 -9
  742. package/lib/esm/core/components/DropdownList.js.map +0 -1
  743. package/lib/esm/core/components/RadioGroup.js +0 -34
  744. package/lib/esm/core/components/RadioGroup.js.map +0 -1
  745. package/lib/esm/core/components/SelectStack.js +0 -8
  746. package/lib/esm/core/components/SelectStack.js.map +0 -1
  747. package/lib/esm/core/components/Switch.js +0 -12
  748. package/lib/esm/core/components/Switch.js.map +0 -1
  749. package/lib/esm/widgets/popover/Popover.js +0 -73
  750. package/lib/esm/widgets/popover/Popover.js.map +0 -1
  751. package/lib/esm/widgets/popover/context.js +0 -7
  752. package/lib/esm/widgets/popover/context.js.map +0 -1
  753. package/lib/esm/widgets/popover/index.js +0 -3
  754. package/lib/esm/widgets/popover/index.js.map +0 -1
  755. package/lib/esm/widgets/popover/slots.js +0 -22
  756. package/lib/esm/widgets/popover/slots.js.map +0 -1
  757. package/lib/types/core/components/Dropdown.d.ts +0 -15
  758. package/lib/types/core/components/Dropdown.d.ts.map +0 -1
  759. package/lib/types/core/components/DropdownList.d.ts +0 -13
  760. package/lib/types/core/components/DropdownList.d.ts.map +0 -1
  761. package/lib/types/core/components/RadioGroup.d.ts +0 -26
  762. package/lib/types/core/components/RadioGroup.d.ts.map +0 -1
  763. package/lib/types/core/components/SelectStack.d.ts +0 -13
  764. package/lib/types/core/components/SelectStack.d.ts.map +0 -1
  765. package/lib/types/core/components/Switch.d.ts +0 -11
  766. package/lib/types/core/components/Switch.d.ts.map +0 -1
  767. package/lib/types/widgets/popover/Popover.d.ts +0 -38
  768. package/lib/types/widgets/popover/Popover.d.ts.map +0 -1
  769. package/lib/types/widgets/popover/context.d.ts +0 -8
  770. package/lib/types/widgets/popover/context.d.ts.map +0 -1
  771. package/lib/types/widgets/popover/index.d.ts +0 -3
  772. package/lib/types/widgets/popover/index.d.ts.map +0 -1
  773. package/lib/types/widgets/popover/slots.d.ts +0 -5
  774. package/lib/types/widgets/popover/slots.d.ts.map +0 -1
  775. package/src/core/components/Dropdown.tsx +0 -63
  776. package/src/core/components/DropdownList.tsx +0 -72
  777. package/src/core/components/RadioGroup.tsx +0 -100
  778. package/src/core/components/SelectStack.tsx +0 -63
  779. package/src/core/components/Switch.tsx +0 -30
  780. package/src/widgets/popover/Popover.tsx +0 -171
  781. package/src/widgets/popover/context.ts +0 -15
  782. package/src/widgets/popover/index.ts +0 -2
  783. package/src/widgets/popover/slots.ts +0 -24
@@ -1,5 +1,6 @@
1
1
  import { useMemo, useRef, useState } from 'react';
2
2
 
3
+ import { useUITranslation } from '../../../i18n/index.js';
3
4
  import { useUserSession } from '@vertesia/ui/session';
4
5
  import { MonacoEditor, EditorApi, SchemaEditor, useSchema } from '@vertesia/ui/widgets';
5
6
  import { Button, useToast, useTheme, Panel } from '@vertesia/ui/core';
@@ -13,6 +14,7 @@ interface ObjectSchemaEditorProps {
13
14
  }
14
15
  export function ObjectSchemaEditor({ objectType, onSchemaUpdate, readonly = false }: ObjectSchemaEditorProps) {
15
16
  const { store } = useUserSession();
17
+ const { t } = useUITranslation();
16
18
  const toast = useToast();
17
19
  const { theme } = useTheme();
18
20
 
@@ -37,14 +39,14 @@ export function ObjectSchemaEditor({ objectType, onSchemaUpdate, readonly = fals
37
39
  onSchemaUpdate(schema);
38
40
  toast({
39
41
  status: 'success',
40
- title: 'Schema updated',
41
- description: 'The schema has been updated successfully',
42
+ title: t('store.schemaUpdated'),
43
+ description: t('store.schemaUpdatedSuccess'),
42
44
  duration: 2000
43
45
  });
44
46
  }).catch((err) => {
45
47
  toast({
46
48
  status: 'error',
47
- title: 'Failed to update schema',
49
+ title: t('store.failedToUpdateSchema'),
48
50
  description: err.message,
49
51
  duration: 5000
50
52
  })
@@ -73,7 +75,7 @@ export function ObjectSchemaEditor({ objectType, onSchemaUpdate, readonly = fals
73
75
  } catch (err: any) {
74
76
  toast({
75
77
  status: 'error',
76
- title: 'Invalid JSON Schema',
78
+ title: t('store.invalidJsonSchema'),
77
79
  description: err.message,
78
80
  duration: 5000
79
81
  })
@@ -84,11 +86,11 @@ export function ObjectSchemaEditor({ objectType, onSchemaUpdate, readonly = fals
84
86
  };
85
87
 
86
88
  const title = (
87
- <div className='flex gap-2 items-center'><div className="text-base font-semibold">Schema Editor</div>
89
+ <div className='flex gap-2 items-center'><div className="text-base font-semibold">{t('store.schemaEditor')}</div>
88
90
  {!readonly && <div>
89
91
  <Button variant="outline" size="sm" onClick={handleOnSave}>
90
92
  {
91
- displayJson ? "Edit Schema" : "Edit Json"
93
+ displayJson ? t('store.editSchema') : t('store.editJson')
92
94
  }
93
95
  </Button>
94
96
  </div>}
@@ -96,8 +98,8 @@ export function ObjectSchemaEditor({ objectType, onSchemaUpdate, readonly = fals
96
98
  );
97
99
 
98
100
  return (
99
- <Panel title={title} className="bg-background! h-[calc(100vh-197px)]"
100
- action={!readonly ? <Button isLoading={isUpdating} variant="outline" size="sm" onClick={onSave}>Save Changes</Button> : undefined}
101
+ <Panel title={title} className="bg-background! h-full"
102
+ action = {!readonly ? <Button isLoading={isUpdating} variant="outline" size="sm" onClick={onSave}>{t('modal.saveChanges')}</Button> : undefined}
101
103
  >
102
104
  {
103
105
  displayJson
@@ -141,6 +143,6 @@ const validateSchema = (schema: Record<string, any>) => {
141
143
  // against the JSON Schema draft that ajv supports by default.
142
144
  ajv.compile(schema);
143
145
  } catch (error: any) {
144
- throw new Error(`Invalid JSON Schema definition: ${error.message}`);
146
+ throw new Error(`Invalid JSON Schema definition: ${error.message}`, { cause: error });
145
147
  }
146
148
  };
@@ -2,17 +2,7 @@ import { ContentObjectTypeItem } from "@vertesia/common";
2
2
  import { SelectBox } from "@vertesia/ui/core";
3
3
  import { useEffect, useState } from "react";
4
4
  import { useTypeRegistry } from "./TypeRegistryProvider.js";
5
-
6
- const optionLabel = (t: ContentObjectTypeItem | null) => {
7
- if (t === null) return 'None';
8
-
9
- return (
10
- <div>
11
- <div className="text-sm">{t.name}</div>
12
- <div className="text-xs text-muted truncate">{t.description}</div>
13
- </div>
14
- );
15
- };
5
+ import { useUITranslation } from '../../../i18n/index.js';
16
6
 
17
7
  interface SelectContentTypeProps {
18
8
  defaultValue?: string | string[] | null; // the typeId
@@ -22,8 +12,20 @@ interface SelectContentTypeProps {
22
12
  multiple?: boolean;
23
13
  }
24
14
  export function SelectContentType({ className, defaultValue, onChange, isClearable, multiple}: SelectContentTypeProps) {
15
+ const { t } = useUITranslation();
25
16
  const { registry: typeRegistry } = useTypeRegistry();
26
17
  const [isMounted, setIsMounted] = useState(false);
18
+
19
+ const optionLabel = (type: ContentObjectTypeItem | null) => {
20
+ if (type === null) return t('store.none');
21
+
22
+ return (
23
+ <div>
24
+ <div className="text-sm">{type.name}</div>
25
+ <div className="text-xs text-muted truncate">{type.description}</div>
26
+ </div>
27
+ );
28
+ };
27
29
  const [selectedType, setSelectedType] = useState<ContentObjectTypeItem | undefined>();
28
30
  const [selectedTypes, setSelectedTypes] = useState<ContentObjectTypeItem[]>([])
29
31
 
@@ -60,7 +62,7 @@ export function SelectContentType({ className, defaultValue, onChange, isClearab
60
62
  options={typeRegistry?.types || []}
61
63
  value={selectedTypes}
62
64
  onChange={_onChangeMultiple}
63
- placeholder="Choose Content Types..."
65
+ placeholder={t('store.chooseContentTypes')}
64
66
  optionLabel={optionLabel}
65
67
  className={className || "text-sm bg-background"}
66
68
  filterBy="name"
@@ -77,7 +79,7 @@ export function SelectContentType({ className, defaultValue, onChange, isClearab
77
79
  options={typeRegistry?.types || []}
78
80
  value={selectedType}
79
81
  onChange={_onChange}
80
- placeholder="Choose a Content Type..."
82
+ placeholder={t('store.chooseContentType')}
81
83
  optionLabel={optionLabel}
82
84
  className={className || "text-sm bg-background"}
83
85
  filterBy="name"
@@ -10,6 +10,7 @@ import {
10
10
  } from "@vertesia/ui/core";
11
11
  import { ContentObjectTypeItem } from "@vertesia/common";
12
12
  import { useTypeRegistry } from "./TypeRegistryProvider.js";
13
+ import { useUITranslation } from '../../../i18n/index.js';
13
14
  import { CheckCircleIcon, Info } from "lucide-react";
14
15
 
15
16
  /**
@@ -44,11 +45,13 @@ interface SelectContentTypeModalProps {
44
45
  export function SelectContentTypeModal({
45
46
  isOpen,
46
47
  onClose,
47
- title = "Select Content Type",
48
+ title,
48
49
  children,
49
50
  initialSelectedType = null,
50
51
  allowNone = true,
51
52
  }: SelectContentTypeModalProps) {
53
+ const { t } = useUITranslation();
54
+ const resolvedTitle = title ?? t('store.selectContentType');
52
55
  const { registry: typeRegistry } = useTypeRegistry();
53
56
  const [selectedType, setSelectedType] = useState<ContentObjectTypeItem | null>(initialSelectedType);
54
57
 
@@ -72,21 +75,21 @@ export function SelectContentTypeModal({
72
75
  onClose={handleClose}
73
76
  className="w-full max-w-xl mx-auto"
74
77
  >
75
- <ModalTitle>{title}</ModalTitle>
78
+ <ModalTitle>{resolvedTitle}</ModalTitle>
76
79
  <ModalBody>
77
80
  {children}
78
81
 
79
82
  {/* Type selection */}
80
83
  <div className="mb-4 mt-4">
81
84
  <label className="block text-sm font-medium mb-2">
82
- Content Type {allowNone && <span className="text-gray-500 font-normal">(Optional)</span>}
85
+ {t('store.contentType')} {allowNone && <span className="text-gray-500 font-normal">{t('store.optional')}</span>}
83
86
  </label>
84
87
  {allowNone ? (
85
88
  <SelectBox
86
89
  options={types}
87
90
  value={selectedType}
88
- optionLabel={(type) => type ? type.name : 'Select a content type'}
89
- placeholder="Select a content type or leave empty for automatic detection"
91
+ optionLabel={(type) => type ? type.name : t('store.selectContentTypeLabel')}
92
+ placeholder={t('store.selectContentTypeAuto')}
90
93
  onChange={(selected: ContentObjectTypeItem | null | undefined) => setSelectedType(selected || null)}
91
94
  filterBy="name"
92
95
  isClearable={true}
@@ -95,8 +98,8 @@ export function SelectContentTypeModal({
95
98
  <SelectBox
96
99
  options={types}
97
100
  value={selectedType}
98
- optionLabel={(type) => type ? type.name : 'Select a content type'}
99
- placeholder="Select a content type"
101
+ optionLabel={(type) => type ? type.name : t('store.selectContentTypeLabel')}
102
+ placeholder={t('store.selectContentTypeLabel')}
100
103
  onChange={(selected: ContentObjectTypeItem | null | undefined) => setSelectedType(selected || null)}
101
104
  filterBy="name"
102
105
  />
@@ -106,9 +109,9 @@ export function SelectContentTypeModal({
106
109
  {!selectedType && (
107
110
  <div className="flex items-center text-attention">
108
111
  <CheckCircleIcon className="size-4 mr-1" />
109
- Automatic Type Detection
112
+ {t('store.automaticTypeDetection')}
110
113
  <VTooltip
111
- description="Vertesia will analyze the content and select the most appropriate type. This is recommended for most uploads and ensures optimal processing."
114
+ description={t('store.automaticTypeDetectionDescription')}
112
115
  placement="top" size="xs"
113
116
  >
114
117
  <Info className="size-3 ml-2" />
@@ -117,11 +120,11 @@ export function SelectContentTypeModal({
117
120
  )}
118
121
  </ModalBody>
119
122
  <ModalFooter>
120
- <Button variant="ghost" onClick={handleClose} alt="Cancel">
121
- Cancel
123
+ <Button variant="ghost" onClick={handleClose} alt={t('modal.cancel')}>
124
+ {t('modal.cancel')}
122
125
  </Button>
123
- <Button onClick={handleConfirm} alt="Confirm selection">
124
- Confirm
126
+ <Button onClick={handleConfirm} alt={t('store.confirmSelection')}>
127
+ {t('modal.confirm')}
125
128
  </Button>
126
129
  </ModalFooter>
127
130
  </Modal>
@@ -3,6 +3,7 @@ import { ColumnLayout, ContentObjectType } from '@vertesia/common';
3
3
  import { Button, useToast, useTheme, Panel } from '@vertesia/ui/core';
4
4
  import { useUserSession } from '@vertesia/ui/session';
5
5
  import { MonacoEditor, EditorApi } from '@vertesia/ui/widgets';
6
+ import { useUITranslation } from '../../../i18n/index.js';
6
7
 
7
8
  interface TableLayoutEditorProps {
8
9
  objectType: ContentObjectType;
@@ -12,6 +13,7 @@ interface TableLayoutEditorProps {
12
13
  export function TableLayoutEditor({ objectType, onLayoutUpdate, readonly = false }: TableLayoutEditorProps) {
13
14
  const toast = useToast();
14
15
  const { theme } = useTheme();
16
+ const { t } = useUITranslation();
15
17
 
16
18
  const [isUpdating, setUpdating] = useState(false);
17
19
  const { store } = useUserSession();
@@ -60,15 +62,15 @@ export function TableLayoutEditor({ objectType, onLayoutUpdate, readonly = false
60
62
  }).then((response) => {
61
63
  toast({
62
64
  status: 'success',
63
- title: 'Table Layout updated',
64
- description: 'The table layout has been updated successfully',
65
+ title: t('store.tableLayoutUpdated'),
66
+ description: t('store.tableLayoutUpdatedDesc'),
65
67
  duration: 2000
66
68
  });
67
69
  onLayoutUpdate(response.table_layout);
68
70
  }).catch((err) => {
69
71
  toast({
70
72
  status: 'error',
71
- title: 'Failed to update table layout',
73
+ title: t('store.failedToUpdateTableLayout'),
72
74
  description: err.message,
73
75
  duration: 5000
74
76
  })
@@ -79,16 +81,18 @@ export function TableLayoutEditor({ objectType, onLayoutUpdate, readonly = false
79
81
 
80
82
 
81
83
  return (
82
- <Panel title="Table Layout Editor" className="bg-background! h-[calc(100vh-197px)]" action={
83
- !readonly ? <Button isLoading={isUpdating} variant="outline" size="sm" onClick={onSave}>Save Changes</Button> : undefined
84
+ <Panel title="Table Layout Editor" className="bg-background! h-full" action={
85
+ !readonly ? <Button isLoading={isUpdating} variant="outline" size="sm" onClick={onSave}>{t('store.saveChanges')}</Button> : undefined
84
86
  }>
85
- <MonacoEditor
86
- value={value}
87
- language="json"
88
- editorRef={editorRef}
89
- theme={theme === 'dark' ? 'vs-dark' : 'vs'}
90
- options={{ readOnly: readonly }}
91
- />
87
+ <div className="h-full">
88
+ <MonacoEditor
89
+ value={value}
90
+ language="json"
91
+ editorRef={editorRef}
92
+ theme={theme === 'dark' ? 'vs-dark' : 'vs'}
93
+ options={{ readOnly: readonly }}
94
+ />
95
+ </div>
92
96
  </Panel>
93
97
  )
94
98
  }
@@ -3,12 +3,24 @@ import { Avatar, Popover, PopoverContent, PopoverTrigger, Table, useFetch } from
3
3
  import { useUserSession } from "@vertesia/ui/session";
4
4
  import { Users } from "lucide-react";
5
5
  import { ReactNode } from "react";
6
+ import { useUITranslation } from '../../i18n/index.js';
6
7
 
7
- //TODO use a real cache
8
8
  const USER_CACHE: Record<string, Promise<User>> = {};
9
9
  const GROUP_CACHE: Record<string, Promise<UserGroup>> = {};
10
10
  const APIKEY_CACHE: Record<string, Promise<ApiKey>> = {};
11
11
 
12
+ function cachedFetch<T>(cache: Record<string, Promise<T>>, key: string, fetcher: () => Promise<T>): Promise<T> {
13
+ let entry = cache[key];
14
+ if (!entry) {
15
+ entry = fetcher().catch((err) => {
16
+ delete cache[key]; // evict on failure so retries work
17
+ throw err;
18
+ });
19
+ cache[key] = entry;
20
+ }
21
+ return entry;
22
+ }
23
+
12
24
  /**
13
25
  * Fetch the user information given a user reference.
14
26
  * The reference has the format: `type:id`. A special reference `system` is used to refer to the system user.
@@ -17,16 +29,7 @@ const APIKEY_CACHE: Record<string, Promise<ApiKey>> = {};
17
29
  export function useFetchUserInfo(userId: string) {
18
30
  const { client } = useUserSession();
19
31
 
20
- return useFetch(() => {
21
- let user: Promise<User> | undefined = USER_CACHE[userId];
22
- if (!user) {
23
- user = client.users.retrieve(userId).then(user => {
24
- return user;
25
- });
26
- USER_CACHE[userId] = user;
27
- }
28
- return user;
29
- }, [userId]);
32
+ return useFetch(() => cachedFetch(USER_CACHE, userId, () => client.users.retrieve(userId)), [userId]);
30
33
  }
31
34
 
32
35
  /**
@@ -36,16 +39,7 @@ export function useFetchUserInfo(userId: string) {
36
39
  export function useFetchGroupInfo(groupId: string) {
37
40
  const { client } = useUserSession();
38
41
 
39
- return useFetch(() => {
40
- let group: Promise<UserGroup> | undefined = GROUP_CACHE[groupId];
41
- if (!group) {
42
- group = client.iam.groups.retrieve(groupId).then(group => {
43
- return group;
44
- });
45
- GROUP_CACHE[groupId] = group;
46
- }
47
- return group;
48
- }, [groupId]);
42
+ return useFetch(() => cachedFetch(GROUP_CACHE, groupId, () => client.iam.groups.retrieve(groupId)), [groupId]);
49
43
  }
50
44
 
51
45
  /**
@@ -55,16 +49,7 @@ export function useFetchGroupInfo(groupId: string) {
55
49
  export function useFetchApiKeyInfo(keyId: string) {
56
50
  const { client } = useUserSession();
57
51
 
58
- return useFetch(() => {
59
- let apikey: Promise<ApiKey> | undefined = APIKEY_CACHE[keyId];
60
- if (!apikey) {
61
- apikey = client.apikeys.retrieve(keyId).then(apikey => {
62
- return apikey;
63
- });
64
- APIKEY_CACHE[keyId] = apikey;
65
- }
66
- return apikey;
67
- }, [keyId]);
52
+ return useFetch(() => cachedFetch(APIKEY_CACHE, keyId, () => client.apikeys.retrieve(keyId)), [keyId]);
68
53
  }
69
54
 
70
55
  function AvatarPlaceholder() {
@@ -77,11 +62,12 @@ interface InfoProps {
77
62
  }
78
63
 
79
64
  function SystemAvatar({ showTitle = false, size = "md" }: InfoProps) {
65
+ const { t } = useUITranslation();
80
66
  return (
81
- <UserPopoverPanel title="System User" description="The system user is used to initialize built-in objects.">
67
+ <UserPopoverPanel title={t('user.systemUser')} description={t('user.systemUserDescription')}>
82
68
  <div className="flex gap-2 items-center">
83
69
  <Avatar src="/icon.svg" size={size} />
84
- {showTitle && <div className="text-sm font-semibold pl-2">System User</div>}
70
+ {showTitle && <div className="text-sm font-semibold pl-2">{t('user.systemUser')}</div>}
85
71
  </div>
86
72
  </UserPopoverPanel>
87
73
  )
@@ -90,18 +76,19 @@ interface ServiceInfoProps extends InfoProps {
90
76
  accountId: string;
91
77
  }
92
78
  function ServiceAccountAvatar({ accountId, showTitle = false, size = "md" }: ServiceInfoProps) {
79
+ const { t } = useUITranslation();
93
80
  const description = (
94
81
  <>
95
- <div>This user is used by robots like workflow workers.</div>
82
+ <div>{t('user.serviceAccountDescription')}</div>
96
83
  <div className="text-gray-800 dark:text-gray-500 text-sm"><span className="font-semibold">ID:</span> {accountId}</div>
97
84
  </>
98
85
  )
99
86
 
100
87
  return (
101
- <UserPopoverPanel title="Service Account" description={description}>
88
+ <UserPopoverPanel title={t('user.serviceAccount')} description={description}>
102
89
  <div className="flex flex-row items-center gap-2">
103
90
  <Avatar src="/cloud.svg" name="SA" color="bg-amber-500" className="px-[5px] text-white" size={size} />
104
- {showTitle && <div className="text-sm font-semibold pl-2 truncate">Service Account : {accountId}</div>}
91
+ {showTitle && <div className="text-sm font-semibold pl-2 truncate">{t('user.serviceAccount')} : {accountId}</div>}
105
92
  </div>
106
93
  </UserPopoverPanel>
107
94
  );
@@ -114,6 +101,7 @@ interface AgentAvatarProps extends InfoProps {
114
101
  isScheduleAgent?: boolean;
115
102
  }
116
103
  function AgentAvatar({ agentId, onBehalfOfType, onBehalfOfId, showTitle = false, size = "md", isScheduleAgent = false }: AgentAvatarProps) {
104
+ const { t } = useUITranslation();
117
105
  // Fetch user info - must call hooks unconditionally per React rules
118
106
  const shouldFetchUser = onBehalfOfType === 'user' && onBehalfOfId;
119
107
  const shouldFetchApiKey = onBehalfOfType === 'apikey' && onBehalfOfId;
@@ -126,8 +114,8 @@ function AgentAvatar({ agentId, onBehalfOfType, onBehalfOfId, showTitle = false,
126
114
  const apiKey = shouldFetchApiKey ? apiKeyResult.data : undefined;
127
115
 
128
116
  // Determine title and description
129
- const title = user ? "Agent on behalf of" : apiKey ? "Agent on behalf of API key" : "Service Account";
130
- const _title = isScheduleAgent ? `Schedule ${title}` : title;
117
+ const title = user ? t('user.agentOnBehalfOf') : apiKey ? t('user.agentOnBehalfOfApiKey') : t('user.serviceAccount');
118
+ const _title = isScheduleAgent ? t('user.schedule', { title }) : title;
131
119
 
132
120
  const description = (
133
121
  <div className="space-y-2">
@@ -152,7 +140,7 @@ function AgentAvatar({ agentId, onBehalfOfType, onBehalfOfId, showTitle = false,
152
140
  )}
153
141
  {!user && !apiKey && (
154
142
  <>
155
- <div>This user is used by robots like workflow workers.</div>
143
+ <div>{t('user.serviceAccountDescription')}</div>
156
144
  <div className="text-gray-800 dark:text-gray-500 text-sm">
157
145
  <span className="font-semibold">ID:</span> {agentId}
158
146
  </div>
@@ -222,8 +210,9 @@ interface UserInfoProps extends InfoProps {
222
210
  userRef: string | undefined;
223
211
  }
224
212
  export function UserInfo({ userRef, showTitle = false, size = "md" }: UserInfoProps) {
213
+ const { t } = useUITranslation();
225
214
  if (!userRef) {
226
- return <UnknownAvatar title="Unknown User" message="User information is not available." showTitle={showTitle} size={size} />
215
+ return <UnknownAvatar title={t('user.unknownUser')} message={t('user.unknownUserDescription')} showTitle={showTitle} size={size} />
227
216
  }
228
217
 
229
218
  const parts = userRef.split(':');
@@ -296,7 +285,7 @@ export function UserInfo({ userRef, showTitle = false, size = "md" }: UserInfoPr
296
285
  return <ApiKeyAvatar keyId={parts[1]} size={size} showTitle={showTitle} />
297
286
 
298
287
  default:
299
- return <ErrorAvatar title="Unknown User" error={`Invalid user ref type: ${type}`} showTitle={showTitle} size={size} />
288
+ return <ErrorAvatar title={t('user.unknownUser')} error={`Invalid user ref type: ${type}`} showTitle={showTitle} size={size} />
300
289
  }
301
290
  }
302
291
 
@@ -320,10 +309,11 @@ interface GroupAvatarProps extends InfoProps {
320
309
  userId: string;
321
310
  }
322
311
  function GroupAvatar({ userId, showTitle = false, size = "md" }: GroupAvatarProps) {
312
+ const { t } = useUITranslation();
323
313
  const { data: group, error } = useFetchGroupInfo(userId);
324
314
 
325
315
  if (error) {
326
- return <ErrorAvatar title="Failed to fetch group" error={error} showTitle={showTitle} size={size} />
316
+ return <ErrorAvatar title={t('user.failedToFetchGroup')} error={error} showTitle={showTitle} size={size} />
327
317
  }
328
318
 
329
319
  if (!group) {
@@ -333,7 +323,7 @@ function GroupAvatar({ userId, showTitle = false, size = "md" }: GroupAvatarProp
333
323
  const description = (
334
324
  <div className="space-y-1">
335
325
  {group.description && <div className="text-sm">{group.description}</div>}
336
- <div className="text-xs text-muted-foreground">Group ID: {group.id}</div>
326
+ <div className="text-xs text-muted-foreground">{t('user.groupId', { id: group.id })}</div>
337
327
  {group.tags && group.tags.length > 0 && (
338
328
  <div className="flex flex-wrap gap-1">
339
329
  {group.tags.map(tag => (
@@ -345,10 +335,10 @@ function GroupAvatar({ userId, showTitle = false, size = "md" }: GroupAvatarProp
345
335
  )
346
336
 
347
337
  return (
348
- <UserPopoverPanel title={group.name || "Unnamed Group"} description={description}>
338
+ <UserPopoverPanel title={group.name || t('user.unnamedGroup')} description={description}>
349
339
  <div className="flex flex-row items-center gap-2">
350
340
  <Users className="size-6 text-indigo-500" size={size} />
351
- {showTitle && <div className="text-sm font-semibold pl-2">{group.name || "Unnamed Group"}</div>}
341
+ {showTitle && <div className="text-sm font-semibold pl-2">{group.name || t('user.unnamedGroup')}</div>}
352
342
  </div>
353
343
  </UserPopoverPanel>
354
344
  )
@@ -358,10 +348,11 @@ interface UserAvatarProps extends InfoProps {
358
348
  userId: string;
359
349
  }
360
350
  function UserAvatar({ userId, showTitle = false, size = "md" }: UserAvatarProps) {
351
+ const { t } = useUITranslation();
361
352
  const { data: user, error } = useFetchUserInfo(userId);
362
353
 
363
354
  if (error) {
364
- return <ErrorAvatar title="Failed to fetch user" error={error} showTitle={showTitle} size={size} />
355
+ return <ErrorAvatar title={t('user.failedToFetchUser')} error={error} showTitle={showTitle} size={size} />
365
356
  }
366
357
 
367
358
  if (!user) {
@@ -373,10 +364,10 @@ function UserAvatar({ userId, showTitle = false, size = "md" }: UserAvatarProps)
373
364
  )
374
365
 
375
366
  return (
376
- <UserPopoverPanel title={user.name || user.email || user.username || "unknown"} description={description}>
367
+ <UserPopoverPanel title={user.name || user.email || user.username || t('user.unknown')} description={description}>
377
368
  <div className="flex flex-row items-center gap-2">
378
369
  <Avatar src={user.picture} name={user.name} color="bg-indigo-500" size={size} />
379
- {showTitle && <div className="text-sm font-semibold pl-2">{user.name || user.email || user.username || "unknown"}</div>}
370
+ {showTitle && <div className="text-sm font-semibold pl-2">{user.name || user.email || user.username || t('user.unknown')}</div>}
380
371
  </div>
381
372
  </UserPopoverPanel>
382
373
  )
@@ -386,31 +377,31 @@ interface ApiKeyAvatarProps extends InfoProps {
386
377
  keyId: string;
387
378
  }
388
379
  export function ApiKeyAvatar({ keyId, showTitle = false, size = "md" }: ApiKeyAvatarProps) {
389
- const { client } = useUserSession();
390
- const { data, error } = useFetch<ApiKey>(() => client.apikeys.retrieve(keyId), []);
380
+ const { t } = useUITranslation();
381
+ const { data, error } = useFetchApiKeyInfo(keyId);
391
382
 
392
383
  if (error) {
393
- return <ErrorAvatar title="Failed to fetch the apikey" error={error} showTitle={showTitle} size={size} />
384
+ return <ErrorAvatar title={t('user.failedToFetchApiKey')} error={error} showTitle={showTitle} size={size} />
394
385
  }
395
386
 
396
387
  if (!data) {
397
388
  return <AvatarPlaceholder />
398
389
  }
399
390
 
400
- const title = "Private Key";
391
+ const title = t('user.privateKey');
401
392
  const avatar = <Avatar name={"PK"} color="bg-pink-500" size={size} />;
402
393
  const description = (
403
394
  <Table className="dark:bg-gray-800 dark:text-gray-200 table-fixed w-full">
404
395
  <tr>
405
- <td className="font-semibold w-20">Key:</td>
396
+ <td className="font-semibold w-20">{t('user.key')}</td>
406
397
  <td className="truncate max-w-0">{data?.name}</td>
407
398
  </tr>
408
399
  <tr>
409
- <td className="font-semibold w-20">Account:</td>
400
+ <td className="font-semibold w-20">{t('user.account')}</td>
410
401
  <td className="truncate max-w-0">{data?.account}</td>
411
402
  </tr>
412
403
  <tr>
413
- <td className="font-semibold w-20">Project:</td>
404
+ <td className="font-semibold w-20">{t('user.project')}</td>
414
405
  <td className="truncate max-w-0">{data?.project.name}</td>
415
406
  </tr>
416
407
  </Table>
@@ -420,7 +411,7 @@ export function ApiKeyAvatar({ keyId, showTitle = false, size = "md" }: ApiKeyAv
420
411
  <UserPopoverPanel title={title} description={description}>
421
412
  <div className="flex flex-row items-center gap-2">
422
413
  {avatar}
423
- {showTitle && <div className="text-sm font-semibold">{data?.name || data?.account || data?.project.name || "unknown"}</div>}
414
+ {showTitle && <div className="text-sm font-semibold">{data?.name || data?.account || data?.project.name || t('user.unknown')}</div>}
424
415
  </div>
425
416
  </UserPopoverPanel >
426
417
  )
@@ -0,0 +1,45 @@
1
+ import { useEffect, type ReactNode } from 'react';
2
+ import { I18nextProvider, useTranslation } from 'react-i18next';
3
+ import { i18nInstance, NAMESPACE } from './instance.js';
4
+
5
+ export interface I18nProviderProps {
6
+ /** Force a specific language. If omitted, uses browser language detection with 'en' fallback. */
7
+ lng?: string;
8
+ children: ReactNode;
9
+ }
10
+
11
+ function detectLanguage(lng?: string): string {
12
+ return lng ?? navigator.language?.split('-')[0] ?? 'en';
13
+ }
14
+
15
+ export function I18nProvider({ lng, children }: I18nProviderProps) {
16
+ // Set language synchronously on first render to avoid flash of wrong language
17
+ const language = detectLanguage(lng);
18
+ if (i18nInstance.language !== language) {
19
+ void i18nInstance.changeLanguage(language);
20
+ }
21
+
22
+ // Also react to prop changes
23
+ useEffect(() => {
24
+ const lang = detectLanguage(lng);
25
+ if (i18nInstance.language !== lang) {
26
+ void i18nInstance.changeLanguage(lang);
27
+ }
28
+ }, [lng]);
29
+
30
+ return (
31
+ <I18nextProvider i18n={i18nInstance}>
32
+ {children}
33
+ </I18nextProvider>
34
+ );
35
+ }
36
+
37
+ /**
38
+ * Hook for components inside @vertesia/ui to get translation functions.
39
+ * Always binds to the 'vertesia.ui' namespace on the scoped instance.
40
+ */
41
+ export function useUITranslation() {
42
+ return useTranslation(NAMESPACE, { i18n: i18nInstance });
43
+ }
44
+
45
+ export { i18nInstance, NAMESPACE } from './instance.js';
@@ -0,0 +1,49 @@
1
+ import i18next, { type i18n } from 'i18next';
2
+ import { initReactI18next } from 'react-i18next';
3
+ import ar from './locales/ar.json';
4
+ import de from './locales/de.json';
5
+ import en from './locales/en.json';
6
+ import es from './locales/es.json';
7
+ import fr from './locales/fr.json';
8
+ import it from './locales/it.json';
9
+ import ja from './locales/ja.json';
10
+ import ko from './locales/ko.json';
11
+ import pt from './locales/pt.json';
12
+ import ru from './locales/ru.json';
13
+ import tr from './locales/tr.json';
14
+ import zh from './locales/zh.json';
15
+ import zhTW from './locales/zh-TW.json';
16
+
17
+ export const NAMESPACE = 'vertesia.ui';
18
+
19
+ // Scoped instance — does NOT touch the global i18next singleton
20
+ const i18nInstance: i18n = i18next.createInstance();
21
+
22
+ void i18nInstance.use(initReactI18next).init({
23
+ resources: {
24
+ ar: { [NAMESPACE]: ar },
25
+ de: { [NAMESPACE]: de },
26
+ en: { [NAMESPACE]: en },
27
+ es: { [NAMESPACE]: es },
28
+ fr: { [NAMESPACE]: fr },
29
+ it: { [NAMESPACE]: it },
30
+ ja: { [NAMESPACE]: ja },
31
+ ko: { [NAMESPACE]: ko },
32
+ pt: { [NAMESPACE]: pt },
33
+ ru: { [NAMESPACE]: ru },
34
+ tr: { [NAMESPACE]: tr },
35
+ zh: { [NAMESPACE]: zh },
36
+ 'zh-TW': { [NAMESPACE]: zhTW },
37
+ },
38
+ fallbackLng: 'en',
39
+ ns: [NAMESPACE],
40
+ defaultNS: NAMESPACE,
41
+ interpolation: {
42
+ escapeValue: false, // React already escapes
43
+ },
44
+ react: {
45
+ useSuspense: false, // Translations are bundled, no async loading
46
+ },
47
+ });
48
+
49
+ export { i18nInstance };