@vertesia/ui 1.4.0-dev.20260615.051508Z → 1.4.0

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 (337) hide show
  1. package/lib/core/components/shadcn/dropdown.d.ts.map +1 -1
  2. package/lib/core/components/shadcn/dropdown.js +6 -2
  3. package/lib/core/components/shadcn/dropdown.js.map +1 -1
  4. package/lib/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
  5. package/lib/core/components/shadcn/filters/filterBar.js +9 -2
  6. package/lib/core/components/shadcn/filters/filterBar.js.map +1 -1
  7. package/lib/core/components/shadcn/modal/ConfirmModal.d.ts +16 -1
  8. package/lib/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -1
  9. package/lib/core/components/shadcn/modal/ConfirmModal.js +25 -3
  10. package/lib/core/components/shadcn/modal/ConfirmModal.js.map +1 -1
  11. package/lib/core/components/shadcn/modal/dialog.js +1 -1
  12. package/lib/core/components/shadcn/modal/dialog.js.map +1 -1
  13. package/lib/core/components/shadcn/popover.d.ts.map +1 -1
  14. package/lib/core/components/shadcn/popover.js +3 -1
  15. package/lib/core/components/shadcn/popover.js.map +1 -1
  16. package/lib/core/components/shadcn/switch.js +3 -3
  17. package/lib/core/components/shadcn/switch.js.map +1 -1
  18. package/lib/core/components/shadcn/tabs.js +1 -1
  19. package/lib/core/components/shadcn/tabs.js.map +1 -1
  20. package/lib/core/components/shadcn/tooltip.d.ts.map +1 -1
  21. package/lib/core/components/shadcn/tooltip.js +3 -1
  22. package/lib/core/components/shadcn/tooltip.js.map +1 -1
  23. package/lib/env/index.d.ts +0 -19
  24. package/lib/env/index.d.ts.map +1 -1
  25. package/lib/env/index.js +0 -6
  26. package/lib/env/index.js.map +1 -1
  27. package/lib/features/agent/PayloadBuilder.d.ts +4 -0
  28. package/lib/features/agent/PayloadBuilder.d.ts.map +1 -1
  29. package/lib/features/agent/PayloadBuilder.js +16 -0
  30. package/lib/features/agent/PayloadBuilder.js.map +1 -1
  31. package/lib/features/agent/chat/AgentApprovalModeSelector.d.ts +10 -0
  32. package/lib/features/agent/chat/AgentApprovalModeSelector.d.ts.map +1 -0
  33. package/lib/features/agent/chat/AgentApprovalModeSelector.js +50 -0
  34. package/lib/features/agent/chat/AgentApprovalModeSelector.js.map +1 -0
  35. package/lib/features/agent/chat/AgentChatFixtureReplay.d.ts +2 -1
  36. package/lib/features/agent/chat/AgentChatFixtureReplay.d.ts.map +1 -1
  37. package/lib/features/agent/chat/AgentChatFixtureReplay.js +3 -3
  38. package/lib/features/agent/chat/AgentChatFixtureReplay.js.map +1 -1
  39. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts +5 -2
  40. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts.map +1 -1
  41. package/lib/features/agent/chat/AgentRequestInputOverlay.js +41 -7
  42. package/lib/features/agent/chat/AgentRequestInputOverlay.js.map +1 -1
  43. package/lib/features/agent/chat/AgentRightPanel.d.ts.map +1 -1
  44. package/lib/features/agent/chat/AgentRightPanel.js +133 -12
  45. package/lib/features/agent/chat/AgentRightPanel.js.map +1 -1
  46. package/lib/features/agent/chat/AnimatedThinkingDots.js +1 -1
  47. package/lib/features/agent/chat/AnimatedThinkingDots.js.map +1 -1
  48. package/lib/features/agent/chat/ArtifactsTab.d.ts.map +1 -1
  49. package/lib/features/agent/chat/ArtifactsTab.js +11 -65
  50. package/lib/features/agent/chat/ArtifactsTab.js.map +1 -1
  51. package/lib/features/agent/chat/AskUserWidget.d.ts +3 -1
  52. package/lib/features/agent/chat/AskUserWidget.d.ts.map +1 -1
  53. package/lib/features/agent/chat/AskUserWidget.js +4 -3
  54. package/lib/features/agent/chat/AskUserWidget.js.map +1 -1
  55. package/lib/features/agent/chat/ModernAgentConversation.d.ts +10 -2
  56. package/lib/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  57. package/lib/features/agent/chat/ModernAgentConversation.js +526 -117
  58. package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -1
  59. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.d.ts +8 -0
  60. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.d.ts.map +1 -0
  61. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.js +19 -0
  62. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.js.map +1 -0
  63. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +8 -2
  64. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  65. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +551 -92
  66. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  67. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.d.ts.map +1 -1
  68. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js +7 -6
  69. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js.map +1 -1
  70. package/lib/features/agent/chat/ModernAgentOutput/Header.js +2 -2
  71. package/lib/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  72. package/lib/features/agent/chat/ModernAgentOutput/MessageDeliveryStatus.d.ts +8 -0
  73. package/lib/features/agent/chat/ModernAgentOutput/MessageDeliveryStatus.d.ts.map +1 -0
  74. package/lib/features/agent/chat/ModernAgentOutput/MessageDeliveryStatus.js +61 -0
  75. package/lib/features/agent/chat/ModernAgentOutput/MessageDeliveryStatus.js.map +1 -0
  76. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +15 -2
  77. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
  78. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js +28 -38
  79. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
  80. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +1 -1
  81. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  82. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +3 -2
  83. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  84. package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.js +2 -1
  85. package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.js.map +1 -1
  86. package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.js +1 -1
  87. package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +1 -1
  88. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.d.ts +5 -0
  89. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.d.ts.map +1 -1
  90. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.js +59 -4
  91. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.js.map +1 -1
  92. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +2 -2
  93. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
  94. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts +9 -0
  95. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts.map +1 -1
  96. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js +180 -0
  97. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js.map +1 -1
  98. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts +6 -0
  99. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
  100. package/lib/features/agent/chat/ModernAgentOutput/utils.js +92 -2
  101. package/lib/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
  102. package/lib/features/agent/chat/clipboardFiles.d.ts +15 -0
  103. package/lib/features/agent/chat/clipboardFiles.d.ts.map +1 -0
  104. package/lib/features/agent/chat/clipboardFiles.js +35 -0
  105. package/lib/features/agent/chat/clipboardFiles.js.map +1 -0
  106. package/lib/features/agent/chat/hooks/useAgentStream.d.ts +6 -0
  107. package/lib/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
  108. package/lib/features/agent/chat/hooks/useAgentStream.js +218 -37
  109. package/lib/features/agent/chat/hooks/useAgentStream.js.map +1 -1
  110. package/lib/features/agent/chat/hooks/useArtifacts.d.ts +1 -8
  111. package/lib/features/agent/chat/hooks/useArtifacts.d.ts.map +1 -1
  112. package/lib/features/agent/chat/hooks/useArtifacts.js +10 -28
  113. package/lib/features/agent/chat/hooks/useArtifacts.js.map +1 -1
  114. package/lib/features/agent/chat/index.d.ts +2 -1
  115. package/lib/features/agent/chat/index.d.ts.map +1 -1
  116. package/lib/features/agent/chat/index.js +2 -1
  117. package/lib/features/agent/chat/index.js.map +1 -1
  118. package/lib/features/agent/chat/workstreams.d.ts +1 -0
  119. package/lib/features/agent/chat/workstreams.d.ts.map +1 -1
  120. package/lib/features/agent/chat/workstreams.js +28 -0
  121. package/lib/features/agent/chat/workstreams.js.map +1 -1
  122. package/lib/features/facets/AgentRunnerFacetsNav.d.ts +10 -1
  123. package/lib/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -1
  124. package/lib/features/facets/AgentRunnerFacetsNav.js +6 -3
  125. package/lib/features/facets/AgentRunnerFacetsNav.js.map +1 -1
  126. package/lib/features/facets/CollectionsFacetsNav.d.ts +10 -1
  127. package/lib/features/facets/CollectionsFacetsNav.d.ts.map +1 -1
  128. package/lib/features/facets/CollectionsFacetsNav.js +14 -5
  129. package/lib/features/facets/CollectionsFacetsNav.js.map +1 -1
  130. package/lib/features/facets/PromptsFacetsNav.d.ts +10 -1
  131. package/lib/features/facets/PromptsFacetsNav.d.ts.map +1 -1
  132. package/lib/features/facets/PromptsFacetsNav.js +14 -5
  133. package/lib/features/facets/PromptsFacetsNav.js.map +1 -1
  134. package/lib/features/facets/RunsFacetsNav.d.ts +10 -1
  135. package/lib/features/facets/RunsFacetsNav.d.ts.map +1 -1
  136. package/lib/features/facets/RunsFacetsNav.js +14 -5
  137. package/lib/features/facets/RunsFacetsNav.js.map +1 -1
  138. package/lib/features/index.d.ts +0 -1
  139. package/lib/features/index.d.ts.map +1 -1
  140. package/lib/features/index.js +0 -1
  141. package/lib/features/index.js.map +1 -1
  142. package/lib/features/oauth/McpConnectionsButton.d.ts +30 -0
  143. package/lib/features/oauth/McpConnectionsButton.d.ts.map +1 -0
  144. package/lib/features/oauth/McpConnectionsButton.js +70 -0
  145. package/lib/features/oauth/McpConnectionsButton.js.map +1 -0
  146. package/lib/features/oauth/McpConnectionsDialog.d.ts +25 -0
  147. package/lib/features/oauth/McpConnectionsDialog.d.ts.map +1 -0
  148. package/lib/features/oauth/McpConnectionsDialog.js +26 -0
  149. package/lib/features/oauth/McpConnectionsDialog.js.map +1 -0
  150. package/lib/features/oauth/RemoteMcpConnectionButton.d.ts.map +1 -1
  151. package/lib/features/oauth/RemoteMcpConnectionButton.js +14 -6
  152. package/lib/features/oauth/RemoteMcpConnectionButton.js.map +1 -1
  153. package/lib/features/oauth/index.d.ts +3 -0
  154. package/lib/features/oauth/index.d.ts.map +1 -1
  155. package/lib/features/oauth/index.js +3 -0
  156. package/lib/features/oauth/index.js.map +1 -1
  157. package/lib/features/oauth/useMcpConnections.d.ts +44 -0
  158. package/lib/features/oauth/useMcpConnections.d.ts.map +1 -0
  159. package/lib/features/oauth/useMcpConnections.js +168 -0
  160. package/lib/features/oauth/useMcpConnections.js.map +1 -0
  161. package/lib/features/permissions/UserPermissionsProvider.d.ts +4 -6
  162. package/lib/features/permissions/UserPermissionsProvider.d.ts.map +1 -1
  163. package/lib/features/permissions/UserPermissionsProvider.js +40 -42
  164. package/lib/features/permissions/UserPermissionsProvider.js.map +1 -1
  165. package/lib/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -1
  166. package/lib/features/store/objects/DocumentPreviewPanel.js +2 -1
  167. package/lib/features/store/objects/DocumentPreviewPanel.js.map +1 -1
  168. package/lib/features/store/objects/DocumentQuickFilter.d.ts +23 -0
  169. package/lib/features/store/objects/DocumentQuickFilter.d.ts.map +1 -0
  170. package/lib/features/store/objects/DocumentQuickFilter.js +30 -0
  171. package/lib/features/store/objects/DocumentQuickFilter.js.map +1 -0
  172. package/lib/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
  173. package/lib/features/store/objects/DocumentSearchResults.js +17 -1
  174. package/lib/features/store/objects/DocumentSearchResults.js.map +1 -1
  175. package/lib/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  176. package/lib/features/store/objects/components/ContentOverview.js +17 -74
  177. package/lib/features/store/objects/components/ContentOverview.js.map +1 -1
  178. package/lib/features/store/objects/layout/DocumentTableColumn.d.ts +7 -1
  179. package/lib/features/store/objects/layout/DocumentTableColumn.d.ts.map +1 -1
  180. package/lib/features/store/objects/layout/DocumentTableColumn.js +27 -3
  181. package/lib/features/store/objects/layout/DocumentTableColumn.js.map +1 -1
  182. package/lib/features/store/objects/layout/documentLayout.js +1 -1
  183. package/lib/features/store/objects/layout/renderers.d.ts +2 -1
  184. package/lib/features/store/objects/layout/renderers.d.ts.map +1 -1
  185. package/lib/features/store/objects/layout/renderers.js +27 -20
  186. package/lib/features/store/objects/layout/renderers.js.map +1 -1
  187. package/lib/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -1
  188. package/lib/features/store/types/ContentObjectTypesSearch.js +4 -1
  189. package/lib/features/store/types/ContentObjectTypesSearch.js.map +1 -1
  190. package/lib/features/store/types/ContentObjectTypesTable.d.ts +2 -1
  191. package/lib/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
  192. package/lib/features/store/types/ContentObjectTypesTable.js +8 -3
  193. package/lib/features/store/types/ContentObjectTypesTable.js.map +1 -1
  194. package/lib/i18n/instance.d.ts.map +1 -1
  195. package/lib/i18n/instance.js +1 -0
  196. package/lib/i18n/instance.js.map +1 -1
  197. package/lib/i18n/locales/ar.json +72 -45
  198. package/lib/i18n/locales/de.json +65 -34
  199. package/lib/i18n/locales/en.json +63 -47
  200. package/lib/i18n/locales/es.json +65 -35
  201. package/lib/i18n/locales/fr.json +65 -35
  202. package/lib/i18n/locales/it.json +72 -42
  203. package/lib/i18n/locales/ja.json +72 -41
  204. package/lib/i18n/locales/ko.json +72 -41
  205. package/lib/i18n/locales/pt.json +72 -42
  206. package/lib/i18n/locales/ru.json +72 -43
  207. package/lib/i18n/locales/tr.json +72 -41
  208. package/lib/i18n/locales/zh-TW.json +72 -41
  209. package/lib/i18n/locales/zh.json +72 -41
  210. package/lib/session/UserSession.d.ts +0 -6
  211. package/lib/session/UserSession.d.ts.map +1 -1
  212. package/lib/session/UserSession.js +0 -15
  213. package/lib/session/UserSession.js.map +1 -1
  214. package/lib/session/UserSessionProvider.d.ts.map +1 -1
  215. package/lib/session/UserSessionProvider.js +39 -98
  216. package/lib/session/UserSessionProvider.js.map +1 -1
  217. package/lib/session/auth/composable.d.ts.map +1 -1
  218. package/lib/session/auth/composable.js +3 -33
  219. package/lib/session/auth/composable.js.map +1 -1
  220. package/lib/shell/login/SignInPrimitives.d.ts.map +1 -1
  221. package/lib/shell/login/SignInPrimitives.js +3 -2
  222. package/lib/shell/login/SignInPrimitives.js.map +1 -1
  223. package/lib/vertesia-ui-core.js +1 -1
  224. package/lib/vertesia-ui-core.js.map +1 -1
  225. package/lib/vertesia-ui-env.js +1 -1
  226. package/lib/vertesia-ui-env.js.map +1 -1
  227. package/lib/vertesia-ui-features.js +1 -1
  228. package/lib/vertesia-ui-features.js.map +1 -1
  229. package/lib/vertesia-ui-i18n.js +1 -1
  230. package/lib/vertesia-ui-i18n.js.map +1 -1
  231. package/lib/vertesia-ui-session.js +1 -1
  232. package/lib/vertesia-ui-session.js.map +1 -1
  233. package/lib/vertesia-ui-shell.js +1 -1
  234. package/lib/vertesia-ui-shell.js.map +1 -1
  235. package/lib/vertesia-ui-widgets.js +1 -1
  236. package/lib/vertesia-ui-widgets.js.map +1 -1
  237. package/lib/widgets/schema-editor/editor/Editable.js +1 -1
  238. package/lib/widgets/schema-editor/editor/Editable.js.map +1 -1
  239. package/llms.txt +70 -70
  240. package/package.json +35 -32
  241. package/src/core/components/shadcn/dropdown.tsx +2 -0
  242. package/src/core/components/shadcn/filters/filterBar.tsx +9 -2
  243. package/src/core/components/shadcn/modal/ConfirmModal.tsx +65 -3
  244. package/src/core/components/shadcn/modal/dialog.tsx +1 -1
  245. package/src/core/components/shadcn/popover.tsx +1 -0
  246. package/src/core/components/shadcn/switch.tsx +4 -4
  247. package/src/core/components/shadcn/tabs.tsx +1 -1
  248. package/src/core/components/shadcn/tooltip.tsx +1 -0
  249. package/src/env/index.ts +0 -24
  250. package/src/features/agent/PayloadBuilder.tsx +18 -0
  251. package/src/features/agent/chat/AgentApprovalModeSelector.tsx +130 -0
  252. package/src/features/agent/chat/AgentChatFixtureReplay.test.tsx +22 -2
  253. package/src/features/agent/chat/AgentChatFixtureReplay.tsx +33 -27
  254. package/src/features/agent/chat/AgentRequestInputOverlay.test.tsx +122 -0
  255. package/src/features/agent/chat/AgentRequestInputOverlay.tsx +91 -17
  256. package/src/features/agent/chat/AgentRightPanel.tsx +238 -50
  257. package/src/features/agent/chat/AnimatedThinkingDots.tsx +1 -1
  258. package/src/features/agent/chat/ArtifactsTab.tsx +21 -155
  259. package/src/features/agent/chat/AskUserWidget.tsx +6 -2
  260. package/src/features/agent/chat/ModernAgentConversation.test.tsx +1157 -47
  261. package/src/features/agent/chat/ModernAgentConversation.tsx +703 -136
  262. package/src/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.tsx +74 -0
  263. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +1420 -126
  264. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +934 -111
  265. package/src/features/agent/chat/ModernAgentOutput/AttachmentPreview.tsx +31 -40
  266. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +28 -28
  267. package/src/features/agent/chat/ModernAgentOutput/MessageDeliveryStatus.tsx +83 -0
  268. package/src/features/agent/chat/ModernAgentOutput/MessageInput.test.tsx +38 -2
  269. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +121 -98
  270. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +7 -1
  271. package/src/features/agent/chat/ModernAgentOutput/SlideInPanel.tsx +3 -3
  272. package/src/features/agent/chat/ModernAgentOutput/SlidingMessages.tsx +1 -1
  273. package/src/features/agent/chat/ModernAgentOutput/SummaryConversation.ts +82 -2
  274. package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +2 -2
  275. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.ts +216 -0
  276. package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +149 -0
  277. package/src/features/agent/chat/ModernAgentOutput/utils.ts +103 -2
  278. package/src/features/agent/chat/clipboardFiles.ts +33 -0
  279. package/src/features/agent/chat/hooks/useAgentStream.test.tsx +355 -4
  280. package/src/features/agent/chat/hooks/useAgentStream.ts +270 -43
  281. package/src/features/agent/chat/hooks/useArtifacts.ts +11 -44
  282. package/src/features/agent/chat/index.ts +10 -1
  283. package/src/features/agent/chat/workstreams.ts +42 -0
  284. package/src/features/facets/AgentRunnerFacetsNav.tsx +23 -3
  285. package/src/features/facets/CollectionsFacetsNav.tsx +30 -5
  286. package/src/features/facets/PromptsFacetsNav.tsx +30 -5
  287. package/src/features/facets/RunsFacetsNav.tsx +32 -5
  288. package/src/features/index.ts +0 -1
  289. package/src/features/oauth/McpConnectionsButton.test.tsx +248 -0
  290. package/src/features/oauth/McpConnectionsButton.tsx +269 -0
  291. package/src/features/oauth/McpConnectionsDialog.tsx +142 -0
  292. package/src/features/oauth/RemoteMcpConnectionButton.tsx +37 -14
  293. package/src/features/oauth/index.ts +3 -0
  294. package/src/features/oauth/useMcpConnections.test.ts +94 -0
  295. package/src/features/oauth/useMcpConnections.ts +210 -0
  296. package/src/features/permissions/UserPermissionsProvider.tsx +41 -59
  297. package/src/features/store/objects/DocumentPreviewPanel.tsx +4 -2
  298. package/src/features/store/objects/DocumentQuickFilter.tsx +72 -0
  299. package/src/features/store/objects/DocumentSearchResults.tsx +30 -11
  300. package/src/features/store/objects/components/ContentOverview.tsx +30 -99
  301. package/src/features/store/objects/layout/DocumentTableColumn.tsx +29 -4
  302. package/src/features/store/objects/layout/documentLayout.tsx +1 -1
  303. package/src/features/store/objects/layout/renderers.tsx +80 -20
  304. package/src/features/store/types/ContentObjectTypesSearch.tsx +7 -1
  305. package/src/features/store/types/ContentObjectTypesTable.tsx +34 -4
  306. package/src/i18n/instance.ts +1 -0
  307. package/src/i18n/locales/ar.json +72 -45
  308. package/src/i18n/locales/de.json +65 -34
  309. package/src/i18n/locales/en.json +63 -47
  310. package/src/i18n/locales/es.json +65 -35
  311. package/src/i18n/locales/fr.json +65 -35
  312. package/src/i18n/locales/it.json +72 -42
  313. package/src/i18n/locales/ja.json +72 -41
  314. package/src/i18n/locales/ko.json +72 -41
  315. package/src/i18n/locales/pt.json +72 -42
  316. package/src/i18n/locales/ru.json +72 -43
  317. package/src/i18n/locales/tr.json +72 -41
  318. package/src/i18n/locales/zh-TW.json +72 -41
  319. package/src/i18n/locales/zh.json +72 -41
  320. package/src/i18n/rtl.test.ts +57 -1
  321. package/src/session/UserSession.ts +0 -16
  322. package/src/session/UserSessionProvider.tsx +51 -123
  323. package/src/session/auth/composable.ts +3 -34
  324. package/src/shell/login/SignInPrimitives.tsx +3 -2
  325. package/src/widgets/schema-editor/editor/Editable.tsx +1 -1
  326. package/lib/features/document-viewer/UniversalDocumentViewer.d.ts +0 -73
  327. package/lib/features/document-viewer/UniversalDocumentViewer.d.ts.map +0 -1
  328. package/lib/features/document-viewer/UniversalDocumentViewer.js +0 -415
  329. package/lib/features/document-viewer/UniversalDocumentViewer.js.map +0 -1
  330. package/lib/features/document-viewer/index.d.ts +0 -2
  331. package/lib/features/document-viewer/index.d.ts.map +0 -1
  332. package/lib/features/document-viewer/index.js +0 -2
  333. package/lib/features/document-viewer/index.js.map +0 -1
  334. package/src/features/document-viewer/UniversalDocumentViewer.test.tsx +0 -123
  335. package/src/features/document-viewer/UniversalDocumentViewer.tsx +0 -746
  336. package/src/features/document-viewer/index.ts +0 -1
  337. package/src/session/auth/composable.test.ts +0 -79
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpConnectionsDialog.js","sourceRoot":"","sources":["../../../src/features/oauth/McpConnectionsDialog.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteMcpConnectionButton.d.ts","sourceRoot":"","sources":["../../../src/features/oauth/RemoteMcpConnectionButton.tsx"],"names":[],"mappings":"AAOA,UAAU,8BAA8B;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAUD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACtC,KAAK,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EAAE,qBAAqB,EACpC,YAAY,EACZ,OAAO,EACP,OAAmB,EACnB,SAAiB,EACjB,cAAsB,EACtB,QAAgB,GACnB,EAAE,8BAA8B,+BAuNhC"}
1
+ {"version":3,"file":"RemoteMcpConnectionButton.d.ts","sourceRoot":"","sources":["../../../src/features/oauth/RemoteMcpConnectionButton.tsx"],"names":[],"mappings":"AAOA,UAAU,8BAA8B;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAUD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACtC,KAAK,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EAAE,qBAAqB,EACpC,YAAY,EACZ,OAAO,EACP,OAAmB,EACnB,SAAiB,EACjB,cAAsB,EACtB,QAAgB,GACnB,EAAE,8BAA8B,+BA8OhC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useUITranslation } from '@vertesia/ui/i18n';
3
3
  import { useUserSession } from '@vertesia/ui/session';
4
- import { CheckCircle2, ExternalLink, ShieldAlertIcon } from 'lucide-react';
4
+ import { CheckCircle2, Link2, ShieldAlertIcon, Unlink2 } from 'lucide-react';
5
5
  import { useCallback, useEffect, useState } from 'react';
6
6
  import { Button, Spinner } from '../../core/index.js';
7
7
  import { useOAuthPopup } from './useOAuthPopup.js';
@@ -15,16 +15,21 @@ export function RemoteMcpConnectionButton({ appId, collectionId, collectionName,
15
15
  const { client } = useUserSession();
16
16
  const { t } = useUITranslation();
17
17
  const [status, setStatus] = useState(null);
18
- const [loading, setLoading] = useState(providedAuthenticated === undefined);
18
+ const [loading, setLoading] = useState(providedAuthenticated === undefined && !readOnly);
19
19
  const [authenticating, setAuthenticating] = useState(false);
20
20
  const [disconnecting, setDisconnecting] = useState(false);
21
21
  const authenticated = providedAuthenticated ?? status?.authenticated ?? false;
22
22
  const displayName = collectionName ?? collectionId;
23
+ const compactActionClassName = 'h-6 w-32 justify-center px-2 text-xs';
23
24
  const loadStatus = useCallback(async () => {
24
25
  if (providedAuthenticated !== undefined) {
25
26
  setLoading(false);
26
27
  return;
27
28
  }
29
+ if (readOnly) {
30
+ setLoading(false);
31
+ return;
32
+ }
28
33
  try {
29
34
  setLoading(true);
30
35
  const data = await client.remoteMcpConnections.getCollectionStatus(appId, collectionId);
@@ -36,7 +41,7 @@ export function RemoteMcpConnectionButton({ appId, collectionId, collectionName,
36
41
  finally {
37
42
  setLoading(false);
38
43
  }
39
- }, [client, appId, collectionId, providedAuthenticated]);
44
+ }, [client, appId, collectionId, providedAuthenticated, readOnly]);
40
45
  useEffect(() => {
41
46
  void loadStatus();
42
47
  }, [loadStatus]);
@@ -94,6 +99,9 @@ export function RemoteMcpConnectionButton({ appId, collectionId, collectionName,
94
99
  }
95
100
  };
96
101
  if (loading) {
102
+ if (variant === 'compact') {
103
+ return (_jsx(Button, { variant: "outline", size: "sm", disabled: true, className: compactActionClassName, "aria-label": t('mcpConnections.checkingStatus'), title: t('mcpConnections.checkingStatus'), children: _jsx(Spinner, { className: "size-3" }) }));
104
+ }
97
105
  return (_jsx("div", { className: "flex items-center gap-2 text-sm", children: _jsx(Spinner, { className: "size-4" }) }));
98
106
  }
99
107
  if (variant === 'full') {
@@ -104,7 +112,7 @@ export function RemoteMcpConnectionButton({ appId, collectionId, collectionName,
104
112
  }
105
113
  if (authenticated) {
106
114
  if (variant === 'compact') {
107
- return (_jsxs("div", { className: "flex items-center gap-2", children: [showLabel && _jsxs("span", { className: "font-medium text-xs text-foreground", children: [displayName, ":"] }), _jsxs("div", { className: "flex items-center gap-1 text-success", children: [_jsx(CheckCircle2, { className: "size-3" }), _jsx("span", { className: "text-xs", children: t('mcpOAuth.connected') })] }), !readOnly && showDisconnect && (_jsx(Button, { variant: "ghost", size: "sm", onClick: handleDisconnect, disabled: disconnecting, className: "h-6 px-2 text-xs", children: disconnecting ? _jsx(Spinner, { className: "size-3" }) : t('mcpOAuth.disconnect') }))] }));
115
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [showLabel && _jsxs("span", { className: "font-medium text-xs text-foreground", children: [displayName, ":"] }), !readOnly && showDisconnect && (_jsx(Button, { variant: "outline", size: "sm", onClick: handleDisconnect, disabled: disconnecting, className: compactActionClassName, children: disconnecting ? (_jsx(Spinner, { className: "size-3" })) : (_jsxs(_Fragment, { children: [_jsx(Unlink2, { className: "size-3" }), _jsx("span", { children: t('mcpOAuth.disconnect') })] })) }))] }));
108
116
  }
109
117
  return (_jsxs("div", { className: "flex items-center gap-1 text-success", children: [_jsx(CheckCircle2, { className: "size-4" }), _jsx("span", { className: "text-sm", children: t('mcpOAuth.connected') })] }));
110
118
  }
@@ -112,8 +120,8 @@ export function RemoteMcpConnectionButton({ appId, collectionId, collectionName,
112
120
  if (readOnly) {
113
121
  return (_jsxs("div", { className: "flex items-center gap-2", children: [showLabel && _jsxs("span", { className: "font-medium text-xs text-foreground", children: [collectionName, ":"] }), _jsx("div", { className: "flex items-center gap-1 text-muted", children: _jsx("span", { className: "text-xs", children: t('mcpOAuth.notConnected') }) })] }));
114
122
  }
115
- return (_jsxs("div", { className: "flex items-center gap-2", children: [showLabel && _jsxs("span", { className: "font-medium text-xs text-foreground", children: [displayName, ":"] }), _jsx(Button, { variant: "outline", size: "sm", onClick: handleConnect, disabled: authenticating, className: "h-6 px-2 text-xs", children: authenticating ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { className: "size-3" }), _jsx("span", { children: t('mcpOAuth.connecting') })] })) : (_jsxs(_Fragment, { children: [_jsx(ExternalLink, { className: "size-3 me-1" }), _jsx("span", { children: t('mcpOAuth.connect') })] })) })] }));
123
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [showLabel && _jsxs("span", { className: "font-medium text-xs text-foreground", children: [displayName, ":"] }), _jsx(Button, { variant: "outline", size: "sm", onClick: handleConnect, disabled: authenticating, className: compactActionClassName, children: authenticating ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { className: "size-3" }), _jsx("span", { children: t('mcpOAuth.connecting') })] })) : (_jsxs(_Fragment, { children: [_jsx(Link2, { className: "size-3" }), _jsx("span", { children: t('mcpOAuth.connect') })] })) })] }));
116
124
  }
117
- return (_jsx(Button, { variant: "outline", size: "sm", onClick: handleConnect, disabled: authenticating, children: authenticating ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { className: "size-4" }), _jsx("span", { children: t('mcpOAuth.connecting') })] })) : (_jsxs(_Fragment, { children: [_jsx(ExternalLink, { className: "size-4 me-1" }), _jsx("span", { children: t('mcpOAuth.connect') })] })) }));
125
+ return (_jsx(Button, { variant: "outline", size: "sm", onClick: handleConnect, disabled: readOnly || authenticating, children: authenticating ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { className: "size-4" }), _jsx("span", { children: t('mcpOAuth.connecting') })] })) : (_jsxs(_Fragment, { children: [_jsx(Link2, { className: "size-4 me-1" }), _jsx("span", { children: t('mcpOAuth.connect') })] })) }));
118
126
  }
119
127
  //# sourceMappingURL=RemoteMcpConnectionButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteMcpConnectionButton.js","sourceRoot":"","sources":["../../../src/features/oauth/RemoteMcpConnectionButton.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteMcpConnectionButton.js","sourceRoot":"","sources":["../../../src/features/oauth/RemoteMcpConnectionButton.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
+ export * from './McpConnectionsButton.js';
2
+ export * from './McpConnectionsDialog.js';
1
3
  export * from './OAuthProviderConnectButton.js';
2
4
  export * from './RemoteMcpConnectionButton.js';
5
+ export * from './useMcpConnections.js';
3
6
  export * from './useOAuthPopup.js';
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
@@ -1,4 +1,7 @@
1
+ export * from './McpConnectionsButton.js';
2
+ export * from './McpConnectionsDialog.js';
1
3
  export * from './OAuthProviderConnectButton.js';
2
4
  export * from './RemoteMcpConnectionButton.js';
5
+ export * from './useMcpConnections.js';
3
6
  export * from './useOAuthPopup.js';
4
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { type OAuthAuthStatus } from '@vertesia/common';
2
+ /**
3
+ * A group of MCP tool collections that share a single OAuth connection.
4
+ * Connection/activation operations act on the whole group.
5
+ */
6
+ export interface McpConnectionGroup {
7
+ key: string;
8
+ appId: string;
9
+ appName: string;
10
+ /** Display label: provider display_name, oauth_app name, or individual collection name */
11
+ label: string;
12
+ /** Representative collection ID used for OAuth operations (all in group share the same OAuth provider) */
13
+ representativeId: string;
14
+ /** All collection IDs in this group (used for per-conversation activation toggles) */
15
+ memberIds: string[];
16
+ /** Names of all collections in this group (for tooltip when > 1) */
17
+ memberNames: string[];
18
+ authStatus?: OAuthAuthStatus;
19
+ }
20
+ /**
21
+ * Loads the project's installed MCP tool collections that require OAuth, grouped by their
22
+ * shared OAuth provider/app, and resolves each group's current connection status.
23
+ *
24
+ * Shared by the MCP connections button (badge count) and dialog (list) so the data is
25
+ * fetched once and refreshed together after connect/disconnect.
26
+ */
27
+ export declare function useMcpConnections(): {
28
+ groups: McpConnectionGroup[];
29
+ loading: boolean;
30
+ statusLoading: boolean;
31
+ reload: () => Promise<void>;
32
+ };
33
+ /** True when every collection in the group is present in the disabled set. */
34
+ export declare function isGroupDisabled(group: McpConnectionGroup, disabled?: string[]): boolean;
35
+ /**
36
+ * Toggle a group's activation, returning the next disabled-collection list.
37
+ * Disabling adds all member ids; enabling removes them.
38
+ */
39
+ export declare function toggleGroupDisabled(group: McpConnectionGroup, disabled: string[] | undefined, active: boolean): string[];
40
+ /** Count connected MCP groups that are enabled for the current conversation. */
41
+ export declare function countConnectedActiveGroups(groups: McpConnectionGroup[], disabled?: string[]): number;
42
+ /** Names of connected MCP groups that are enabled for the current conversation. */
43
+ export declare function getConnectedActiveGroupLabels(groups: McpConnectionGroup[], disabled?: string[]): string[];
44
+ //# sourceMappingURL=useMcpConnections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMcpConnections.d.ts","sourceRoot":"","sources":["../../../src/features/oauth/useMcpConnections.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,kBAAkB,CAAC;AAI1B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;IACd,0GAA0G;IAC1G,gBAAgB,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oEAAoE;IACpE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB;;;;;EAyIhC;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAGvF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,MAAM,EAAE,OAAO,GAChB,MAAM,EAAE,CAQV;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAGpG;AAED,mFAAmF;AACnF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAIzG"}
@@ -0,0 +1,168 @@
1
+ import { normalizeToolCollection, } from '@vertesia/common';
2
+ import { useUserSession } from '@vertesia/ui/session';
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ /**
5
+ * Loads the project's installed MCP tool collections that require OAuth, grouped by their
6
+ * shared OAuth provider/app, and resolves each group's current connection status.
7
+ *
8
+ * Shared by the MCP connections button (badge count) and dialog (list) so the data is
9
+ * fetched once and refreshed together after connect/disconnect.
10
+ */
11
+ export function useMcpConnections() {
12
+ const { client } = useUserSession();
13
+ const [groups, setGroups] = useState([]);
14
+ const [loading, setLoading] = useState(true);
15
+ const [statusLoading, setStatusLoading] = useState(false);
16
+ const reloadIdRef = useRef(0);
17
+ const reload = useCallback(async () => {
18
+ const reloadId = reloadIdRef.current + 1;
19
+ reloadIdRef.current = reloadId;
20
+ setLoading(true);
21
+ setStatusLoading(false);
22
+ try {
23
+ const apps = await client.apps.getInstalledApps('tools');
24
+ const allGroups = [];
25
+ for (const app of apps) {
26
+ const inst = app;
27
+ const oauthIds = inst.oauth_collection_ids ?? [];
28
+ const manifestProviders = inst.manifest.oauth_providers ?? {};
29
+ if (!inst.manifest.tool_collections)
30
+ continue;
31
+ const oauthCollections = inst.manifest.tool_collections
32
+ .map((c) => normalizeToolCollection(c))
33
+ .filter((c) => c.type === 'mcp' && oauthIds.includes(c.id));
34
+ const providerMap = new Map();
35
+ const oauthAppMap = new Map();
36
+ const individualCols = [];
37
+ for (const col of oauthCollections) {
38
+ if (col.oauth_provider) {
39
+ const g = providerMap.get(col.oauth_provider) ?? [];
40
+ g.push(col);
41
+ providerMap.set(col.oauth_provider, g);
42
+ }
43
+ else if (col.oauth_app) {
44
+ const g = oauthAppMap.get(col.oauth_app) ?? [];
45
+ g.push(col);
46
+ oauthAppMap.set(col.oauth_app, g);
47
+ }
48
+ else {
49
+ individualCols.push(col);
50
+ }
51
+ }
52
+ for (const [providerKey, cols] of providerMap) {
53
+ allGroups.push({
54
+ key: `${inst.id}:provider:${providerKey}`,
55
+ appId: inst.id,
56
+ appName: inst.manifest.title || inst.manifest.name,
57
+ label: manifestProviders[providerKey]?.display_name || providerKey,
58
+ representativeId: cols[0].id,
59
+ memberIds: cols.map((c) => c.id),
60
+ memberNames: cols.map((c) => c.name),
61
+ });
62
+ }
63
+ for (const [oauthApp, cols] of oauthAppMap) {
64
+ allGroups.push({
65
+ key: `${inst.id}:oauthapp:${oauthApp}`,
66
+ appId: inst.id,
67
+ appName: inst.manifest.title || inst.manifest.name,
68
+ label: oauthApp,
69
+ representativeId: cols[0].id,
70
+ memberIds: cols.map((c) => c.id),
71
+ memberNames: cols.map((c) => c.name),
72
+ });
73
+ }
74
+ for (const col of individualCols) {
75
+ allGroups.push({
76
+ key: `${inst.id}:individual:${col.id}`,
77
+ appId: inst.id,
78
+ appName: inst.manifest.title || inst.manifest.name,
79
+ label: col.name,
80
+ representativeId: col.id,
81
+ memberIds: [col.id],
82
+ memberNames: [col.name],
83
+ });
84
+ }
85
+ }
86
+ if (reloadIdRef.current !== reloadId) {
87
+ return;
88
+ }
89
+ setGroups(allGroups);
90
+ setLoading(false);
91
+ if (allGroups.length === 0) {
92
+ return;
93
+ }
94
+ setStatusLoading(true);
95
+ // Fetch OAuth status once per app installation; getStatus(appId) returns all collection statuses.
96
+ const statusRequestsByApp = new Map();
97
+ const groupsWithStatus = await Promise.all(allGroups.map(async (group) => {
98
+ try {
99
+ let statusRequest = statusRequestsByApp.get(group.appId);
100
+ if (!statusRequest) {
101
+ statusRequest = client.remoteMcpConnections.getStatus(group.appId);
102
+ statusRequestsByApp.set(group.appId, statusRequest);
103
+ }
104
+ const statuses = await statusRequest;
105
+ const status = statuses.find((s) => s.collection_id === group.representativeId);
106
+ return { ...group, authStatus: status };
107
+ }
108
+ catch {
109
+ return group;
110
+ }
111
+ }));
112
+ if (reloadIdRef.current !== reloadId) {
113
+ return;
114
+ }
115
+ setGroups(groupsWithStatus);
116
+ }
117
+ catch (error) {
118
+ if (reloadIdRef.current === reloadId) {
119
+ console.error('Failed to load MCP tool collections:', error);
120
+ setGroups([]);
121
+ }
122
+ }
123
+ finally {
124
+ if (reloadIdRef.current === reloadId) {
125
+ setLoading(false);
126
+ setStatusLoading(false);
127
+ }
128
+ }
129
+ }, [client]);
130
+ useEffect(() => {
131
+ void reload();
132
+ }, [reload]);
133
+ return { groups, loading, statusLoading, reload };
134
+ }
135
+ /** True when every collection in the group is present in the disabled set. */
136
+ export function isGroupDisabled(group, disabled) {
137
+ if (!disabled?.length)
138
+ return false;
139
+ return group.memberIds.every((id) => disabled.includes(id));
140
+ }
141
+ /**
142
+ * Toggle a group's activation, returning the next disabled-collection list.
143
+ * Disabling adds all member ids; enabling removes them.
144
+ */
145
+ export function toggleGroupDisabled(group, disabled, active) {
146
+ const current = new Set(disabled ?? []);
147
+ if (active) {
148
+ for (const id of group.memberIds)
149
+ current.delete(id);
150
+ }
151
+ else {
152
+ for (const id of group.memberIds)
153
+ current.add(id);
154
+ }
155
+ return Array.from(current);
156
+ }
157
+ /** Count connected MCP groups that are enabled for the current conversation. */
158
+ export function countConnectedActiveGroups(groups, disabled) {
159
+ return groups.filter((group) => group.authStatus?.authenticated === true && !isGroupDisabled(group, disabled))
160
+ .length;
161
+ }
162
+ /** Names of connected MCP groups that are enabled for the current conversation. */
163
+ export function getConnectedActiveGroupLabels(groups, disabled) {
164
+ return groups
165
+ .filter((group) => group.authStatus?.authenticated === true && !isGroupDisabled(group, disabled))
166
+ .map((group) => group.label);
167
+ }
168
+ //# sourceMappingURL=useMcpConnections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMcpConnections.js","sourceRoot":"","sources":["../../../src/features/oauth/useMcpConnections.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
- import { type AuthTokenPayload, type Permission, type ProjectRoles } from '@vertesia/common';
2
- type ListRolesResponse = {
3
- name: ProjectRoles;
4
- permissions: Permission[];
5
- }[];
1
+ import { type SystemRoleDefinition } from '@vertesia/common';
2
+ import { type UserSession } from '@vertesia/ui/session';
3
+ type ListRolesResponse = SystemRoleDefinition[];
6
4
  export declare class UserPermissions {
7
5
  system_roles: ListRolesResponse;
8
6
  roles: Set<string>;
9
7
  permissions: Set<string>;
10
- constructor(authToken: AuthTokenPayload, roles?: ListRolesResponse);
8
+ constructor(session: UserSession, roles: ListRolesResponse);
11
9
  hasPermission(permission: string | string[]): boolean;
12
10
  }
13
11
  declare const UserPermissionsContext: import("react").Context<UserPermissions | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"UserPermissionsProvider.d.ts","sourceRoot":"","sources":["../../../src/features/permissions/UserPermissionsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,gBAAgB,EAGrB,KAAK,UAAU,EAEf,KAAK,YAAY,EACpB,MAAM,kBAAkB,CAAC;AAO1B,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC7B,EAAE,CAAC;AAEJ,qBAAa,eAAe;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEb,SAAS,EAAE,gBAAgB,EAAE,KAAK,GAAE,iBAAqC;IAcrF,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;CAe9C;AAwBD,QAAA,MAAM,sBAAsB,sDAAwD,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,wBAAgB,kBAAkB,oBAMjC;AAED,UAAU,2BAA2B;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AACD,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,2CA+B/E"}
1
+ {"version":3,"file":"UserPermissionsProvider.d.ts","sourceRoot":"","sources":["../../../src/features/permissions/UserPermissionsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7F,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAIxE,KAAK,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;AAEhD,qBAAa,eAAe;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEb,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAmC1D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;CAe9C;AAED,QAAA,MAAM,sBAAsB,sDAAwD,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,wBAAgB,kBAAkB,oBAMjC;AAED,UAAU,2BAA2B;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AACD,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,2CAwB/E"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { getPermissionsForRoles, listRoles, PrincipalType, } from '@vertesia/common';
2
+ import { PrincipalType } from '@vertesia/common';
3
3
  import { ErrorBox, errorMessage, useFetch } from '@vertesia/ui/core';
4
4
  import { useUITranslation } from '@vertesia/ui/i18n';
5
5
  import { useUserSession } from '@vertesia/ui/session';
@@ -9,15 +9,38 @@ export class UserPermissions {
9
9
  system_roles; // all roles defined in the system
10
10
  roles; // all roles of the current user
11
11
  permissions; // all permissions of the current user
12
- constructor(authToken, roles = listSystemRoles()) {
12
+ constructor(session, roles) {
13
+ if (!session.authToken) {
14
+ throw new Error('No auth token found in user session');
15
+ }
13
16
  this.system_roles = roles;
14
- const roleNames = [...(authToken.account_roles || []), ...(authToken.project_roles || [])];
15
- const userRoles = new Set(roleNames);
17
+ const userRoles = new Set(session.authToken.account_roles || []);
18
+ if (session.authToken.project_roles) {
19
+ for (const role of session.authToken.project_roles) {
20
+ userRoles.add(role);
21
+ }
22
+ }
16
23
  this.roles = userRoles;
17
- const rolePermissions = authToken.permissions ?? getPermissionsForRolesFromMappings(roleNames, roles);
18
- // OAuth access tokens are capped to the permissions granted to the token (its scopes).
19
- const permissionCap = authToken.type === PrincipalType.OAuthAccess ? new Set(authToken.permissions ?? []) : undefined;
20
- this.permissions = new Set(permissionCap ? rolePermissions.filter((permission) => permissionCap.has(permission)) : rolePermissions);
24
+ // build a temporary role to permissions map
25
+ const map = {};
26
+ for (const role of roles) {
27
+ map[role.name] = role.permissions;
28
+ }
29
+ const permissionCap = session.authToken.type === PrincipalType.OAuthAccess
30
+ ? new Set(session.authToken.permissions ?? [])
31
+ : undefined;
32
+ const permissions = new Set();
33
+ for (const role of userRoles) {
34
+ const rolePermissions = map[role];
35
+ if (rolePermissions) {
36
+ for (const permission of rolePermissions) {
37
+ if (!permissionCap || permissionCap.has(permission)) {
38
+ permissions.add(permission);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ this.permissions = permissions;
21
44
  }
22
45
  hasPermission(permission) {
23
46
  if (typeof permission === 'string') {
@@ -37,25 +60,6 @@ export class UserPermissions {
37
60
  }
38
61
  }
39
62
  }
40
- function listSystemRoles() {
41
- return listRoles().map((role) => ({
42
- name: role.name,
43
- permissions: Array.from(role.permissions),
44
- }));
45
- }
46
- function getPermissionsForRolesFromMappings(roleNames, roles) {
47
- if (roles.length === 0) {
48
- return getPermissionsForRoles(roleNames);
49
- }
50
- const permissionsByRole = new Map(roles.map((role) => [role.name, role.permissions]));
51
- const permissions = new Set();
52
- for (const role of roleNames) {
53
- for (const permission of permissionsByRole.get(role) ?? []) {
54
- permissions.add(permission);
55
- }
56
- }
57
- return Array.from(permissions);
58
- }
59
63
  const UserPermissionsContext = createContext(undefined);
60
64
  export { UserPermissionsContext };
61
65
  export function useUserPermissions() {
@@ -68,28 +72,22 @@ export function useUserPermissions() {
68
72
  export function UserPermissionProvider({ children }) {
69
73
  const { t } = useUITranslation();
70
74
  const session = useUserSession();
71
- const authToken = session.authToken;
72
- const shouldFetchRoleMappings = Boolean(authToken && !authToken.permissions);
73
75
  const { data, error, isLoading } = useFetch(() => {
74
- if (shouldFetchRoleMappings) {
75
- return session.client.iam.roles.list();
76
+ if (session.user) {
77
+ return session.client.iam.roles.listSystem();
76
78
  }
77
- return Promise.resolve(undefined);
78
- }, [session, shouldFetchRoleMappings]);
79
+ else {
80
+ return Promise.resolve(undefined);
81
+ }
82
+ }, [session.user]);
79
83
  const perms = useMemo(() => {
80
- if (authToken) {
81
- if (authToken.permissions || !shouldFetchRoleMappings) {
82
- return new UserPermissions(authToken);
83
- }
84
- if (data && !isLoading) {
85
- return new UserPermissions(authToken, data);
86
- }
84
+ if (session.authToken && data && !isLoading) {
85
+ return new UserPermissions(session, data);
87
86
  }
88
87
  else {
89
88
  return undefined;
90
89
  }
91
- return undefined;
92
- }, [authToken, data, isLoading, shouldFetchRoleMappings]);
90
+ }, [session, data, isLoading]);
93
91
  if (error) {
94
92
  return _jsx(ErrorBox, { title: t('store.failedToFetchRoleMappings'), children: errorMessage(error) });
95
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UserPermissionsProvider.js","sourceRoot":"","sources":["../../../src/features/permissions/UserPermissionsProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserPermissionsProvider.js","sourceRoot":"","sources":["../../../src/features/permissions/UserPermissionsProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAmB,aAAa,EAA6B,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,OAAO,eAAe;IACxB,YAAY,CAAoB,CAAC,kCAAkC;IACnE,KAAK,CAAc,CAAC,gCAAgC;IACpD,WAAW,CAAc,CAAC,sCAAsC;IAEhE,YAAY,OAAoB,EAAE,KAAwB;QACtD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;gBACjD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,4CAA4C;QAC5C,MAAM,GAAG,GAAiC,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,CAAC;QACD,MAAM,aAAa,GACf,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW;YAChD,CAAC,CAAC,IAAI,GAAG,CAAS,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,eAAe,EAAE,CAAC;gBAClB,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;oBACvC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAClD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAChC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,UAA6B;QACvC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,CAAC,UAA0B,CAAC,EAAE,CAAC;YAC7C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,SAAS;YACT,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CACJ;AAED,MAAM,sBAAsB,GAAG,aAAa,CAA8B,SAAS,CAAC,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,MAAM,UAAU,kBAAkB;IAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAKD,MAAM,UAAU,sBAAsB,CAAC,EAAE,QAAQ,EAA+B;IAC5E,MAAM,EAAE,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAgC,GAAG,EAAE;QAC5E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACvB,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/B,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,iCAAiC,CAAC,YAAG,YAAY,CAAC,KAAK,CAAC,GAAY,CAAC;IACnG,CAAC;IAED,OAAO,KAAK,IAAI,KAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAmC,CAAC;AAChH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentPreviewPanel.d.ts","sourceRoot":"","sources":["../../../../src/features/store/objects/DocumentPreviewPanel.tsx"],"names":[],"mappings":"AASA,UAAU,yBAAyB;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,yBAAyB,sCA0W5F"}
1
+ {"version":3,"file":"DocumentPreviewPanel.d.ts","sourceRoot":"","sources":["../../../../src/features/store/objects/DocumentPreviewPanel.tsx"],"names":[],"mappings":"AASA,UAAU,yBAAyB;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,yBAAyB,sCA4W5F"}
@@ -106,7 +106,8 @@ export function DocumentPreviewPanel({ objectId, isOpen, onClose }) {
106
106
  const isPdf = object?.content?.type === 'application/pdf';
107
107
  if (!isOpen)
108
108
  return null;
109
- return (_jsxs("div", { className: `fixed inset-y-0 end-0 w-2/5 dark:bg-slate-900 shadow-xl z-50 flex flex-col transition-transform duration-300 transform ${isOpen ? 'translate-x-0' : 'translate-x-full rtl:-translate-x-full'}`, children: [_jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-b dark:border-gray-700 bg-gradient-to-r from-indigo-50 to-gray-50 dark:from-gray-800 dark:to-gray-900", children: [_jsxs("div", { className: "flex items-center", children: [_jsx(FileText, { className: "h-5 w-5 text-indigo-600 me-2" }), _jsx("h2", { className: "text-lg font-semibold text-gray-800 dark:text-gray-200 truncate", children: isLoading ? t('store.loadingDocument') : object?.name || t('store.documentPreview') })] }), _jsxs("div", { className: "flex items-center space-x-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleViewFullDocument, className: "flex items-center gap-1 text-indigo-600 hover:text-indigo-800", children: [_jsx(Maximize2, { className: "h-4 w-4" }), _jsx("span", { children: t('store.fullView') })] }), _jsx(Button, { variant: "ghost", size: "sm", onClick: onClose, className: "flex items-center text-gray-600 hover:text-gray-800 dark:text-gray-300 dark:hover:text-gray-100", children: _jsx(X, { className: "h-5 w-5" }) })] })] }), isLoading ? (_jsx("div", { className: "flex-1 flex items-center justify-center", children: _jsxs("div", { className: "text-center", children: [_jsx(Spinner, { size: "lg", className: "text-indigo-600 dark:text-indigo-400 mb-2" }), _jsx("p", { className: "text-gray-600 dark:text-gray-400", children: t('store.loadingDocument') })] }) })) : (_jsxs("div", { className: "flex-1 flex flex-col h-full", children: [_jsx("div", { className: "border-b", children: _jsxs("div", { className: "flex px-4", children: [_jsx(Button, { variant: "unstyled", className: `py-2 px-4 font-medium border-b-2 ${currentTab === 'preview'
109
+ const panelTranslateClass = isOpen ? 'translate-x-0' : 'translate-x-full rtl:-translate-x-full'; // rtl-ok: mirrored inline-end transform
110
+ return (_jsxs("div", { className: `fixed inset-y-0 end-0 w-2/5 dark:bg-slate-900 shadow-xl z-50 flex flex-col transition-transform duration-300 transform ${panelTranslateClass}`, children: [_jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-b dark:border-gray-700 bg-gradient-to-r from-indigo-50 to-gray-50 dark:from-gray-800 dark:to-gray-900", children: [_jsxs("div", { className: "flex items-center", children: [_jsx(FileText, { className: "h-5 w-5 text-indigo-600 me-2" }), _jsx("h2", { className: "text-lg font-semibold text-gray-800 dark:text-gray-200 truncate", children: isLoading ? t('store.loadingDocument') : object?.name || t('store.documentPreview') })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleViewFullDocument, className: "flex items-center gap-1 text-indigo-600 hover:text-indigo-800", children: [_jsx(Maximize2, { className: "h-4 w-4" }), _jsx("span", { children: t('store.fullView') })] }), _jsx(Button, { variant: "ghost", size: "sm", onClick: onClose, className: "flex items-center text-gray-600 hover:text-gray-800 dark:text-gray-300 dark:hover:text-gray-100", children: _jsx(X, { className: "h-5 w-5" }) })] })] }), isLoading ? (_jsx("div", { className: "flex-1 flex items-center justify-center", children: _jsxs("div", { className: "text-center", children: [_jsx(Spinner, { size: "lg", className: "text-indigo-600 dark:text-indigo-400 mb-2" }), _jsx("p", { className: "text-gray-600 dark:text-gray-400", children: t('store.loadingDocument') })] }) })) : (_jsxs("div", { className: "flex-1 flex flex-col h-full", children: [_jsx("div", { className: "border-b", children: _jsxs("div", { className: "flex px-4", children: [_jsx(Button, { variant: "unstyled", className: `py-2 px-4 font-medium border-b-2 ${currentTab === 'preview'
110
111
  ? 'border-indigo-600 text-indigo-700 dark:text-indigo-300'
111
112
  : 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200'}`, onClick: () => setCurrentTab('preview'), children: _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(LayoutGrid, { className: "h-4 w-4" }), _jsx("span", { children: t('store.preview') })] }) }), _jsx(Button, { variant: "unstyled", className: `py-2 px-4 font-medium border-b-2 ${currentTab === 'properties'
112
113
  ? 'border-indigo-600 text-indigo-700 dark:text-indigo-300'