@vertesia/ui 1.0.0-dev.20260227.112605Z → 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.
- package/lib/esm/core/components/SelectList.js +3 -1
- package/lib/esm/core/components/SelectList.js.map +1 -1
- package/lib/esm/core/components/SidePanel.js +2 -2
- package/lib/esm/core/components/SidePanel.js.map +1 -1
- package/lib/esm/core/components/index.js +0 -5
- package/lib/esm/core/components/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/breadcrumb.js +11 -7
- package/lib/esm/core/components/shadcn/breadcrumb.js.map +1 -1
- package/lib/esm/core/components/shadcn/button.js +5 -3
- package/lib/esm/core/components/shadcn/button.js.map +1 -1
- package/lib/esm/core/components/shadcn/collaspible.js +14 -0
- package/lib/esm/core/components/shadcn/collaspible.js.map +1 -0
- package/lib/esm/core/components/shadcn/dropdown.js +64 -0
- package/lib/esm/core/components/shadcn/dropdown.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +3 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +3 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +1 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js +1 -1
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +4 -2
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filterBar.js +7 -4
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
- package/lib/esm/core/components/shadcn/index.js +4 -0
- package/lib/esm/core/components/shadcn/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/modal/ConfirmModal.js +4 -2
- package/lib/esm/core/components/shadcn/modal/ConfirmModal.js.map +1 -1
- package/lib/esm/core/components/shadcn/modal/DeleteModal.js +5 -3
- package/lib/esm/core/components/shadcn/modal/DeleteModal.js.map +1 -1
- package/lib/esm/core/components/shadcn/popover.js +11 -7
- package/lib/esm/core/components/shadcn/popover.js.map +1 -1
- package/lib/esm/core/components/shadcn/radioGroup.js +29 -0
- package/lib/esm/core/components/shadcn/radioGroup.js.map +1 -0
- package/lib/esm/core/components/shadcn/selectBox.js +1 -1
- package/lib/esm/core/components/shadcn/switch.js +19 -0
- package/lib/esm/core/components/shadcn/switch.js.map +1 -0
- package/lib/esm/core/components/shadcn/tabs.js +6 -6
- package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js +8 -6
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -1
- package/lib/esm/core/components/shadcn/tooltip.js +1 -1
- package/lib/esm/core/components/shadcn/tooltip.js.map +1 -1
- package/lib/esm/core/components/toast/NotificationPanel.js +3 -3
- package/lib/esm/core/components/toast/NotificationPanel.js.map +1 -1
- package/lib/esm/core/hooks/PortalContainerProvider.js +9 -3
- package/lib/esm/core/hooks/PortalContainerProvider.js.map +1 -1
- package/lib/esm/env/index.js +16 -9
- package/lib/esm/env/index.js.map +1 -1
- package/lib/esm/features/agent/PayloadBuilder.js +87 -15
- package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
- package/lib/esm/features/agent/chat/AgentRightPanel.js +159 -0
- package/lib/esm/features/agent/chat/AgentRightPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/ArtifactsTab.js +69 -0
- package/lib/esm/features/agent/chat/ArtifactsTab.js.map +1 -0
- package/lib/esm/features/agent/chat/AskUserWidget.js +12 -6
- package/lib/esm/features/agent/chat/AskUserWidget.js.map +1 -1
- package/lib/esm/features/agent/chat/DocumentPanel.js +6 -3
- package/lib/esm/features/agent/chat/DocumentPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ImageLightbox.js +3 -1
- package/lib/esm/features/agent/chat/ImageLightbox.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +241 -113
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +122 -52
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +5 -3
- package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +76 -33
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +82 -83
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +16 -14
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +20 -5
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +8 -6
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +12 -10
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js +5 -3
- package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +104 -13
- package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +9 -5
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +160 -76
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +3 -1
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +1 -1
- package/lib/esm/features/agent/chat/VegaLiteChart.js +14 -2
- package/lib/esm/features/agent/chat/VegaLiteChart.js.map +1 -1
- package/lib/esm/features/agent/chat/hooks/useAgentPlans.js +3 -8
- package/lib/esm/features/agent/chat/hooks/useAgentPlans.js.map +1 -1
- package/lib/esm/features/agent/chat/hooks/useAgentStream.js +79 -16
- package/lib/esm/features/agent/chat/hooks/useAgentStream.js.map +1 -1
- package/lib/esm/features/agent/chat/hooks/useArtifacts.js +108 -0
- package/lib/esm/features/agent/chat/hooks/useArtifacts.js.map +1 -0
- package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js +56 -5
- package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/hooks/useFileProcessing.js +12 -10
- package/lib/esm/features/agent/chat/hooks/useFileProcessing.js.map +1 -1
- package/lib/esm/features/errors/PanelErrorBoundary.js +3 -1
- package/lib/esm/features/errors/PanelErrorBoundary.js.map +1 -1
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js +45 -33
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/RunsFacetsNav.js +9 -2
- package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/index.js +1 -1
- package/lib/esm/features/facets/index.js.map +1 -1
- package/lib/esm/features/layout/GenericPageNavHeader.js +40 -28
- package/lib/esm/features/layout/GenericPageNavHeader.js.map +1 -1
- package/lib/esm/features/layout/NotFoundView.js +3 -1
- package/lib/esm/features/layout/NotFoundView.js.map +1 -1
- package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js +9 -5
- package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
- package/lib/esm/features/magic-pdf/DownloadPopover.js +5 -4
- package/lib/esm/features/magic-pdf/DownloadPopover.js.map +1 -1
- package/lib/esm/features/magic-pdf/MagicPdfView.js +8 -5
- package/lib/esm/features/magic-pdf/MagicPdfView.js.map +1 -1
- package/lib/esm/features/pdf-viewer/PdfPageSlider.js +9 -5
- package/lib/esm/features/pdf-viewer/PdfPageSlider.js.map +1 -1
- package/lib/esm/features/pdf-viewer/SimplePdfViewer.js +5 -3
- package/lib/esm/features/pdf-viewer/SimplePdfViewer.js.map +1 -1
- package/lib/esm/features/permissions/UserPermissionsProvider.js +3 -1
- package/lib/esm/features/permissions/UserPermissionsProvider.js.map +1 -1
- package/lib/esm/features/store/collections/BrowseCollectionView.js +9 -1
- package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/CollectionsTable.js +14 -7
- package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -1
- package/lib/esm/features/store/collections/CreateCollection.js +21 -18
- package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +23 -19
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/SelectCollection.js +25 -10
- package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
- package/lib/esm/features/store/collections/SharedPropsEditor.js +5 -3
- package/lib/esm/features/store/collections/SharedPropsEditor.js.map +1 -1
- package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js +5 -3
- package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js +14 -12
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentSearchResults.js +15 -5
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentTable.js +10 -7
- package/lib/esm/features/store/objects/DocumentTable.js.map +1 -1
- package/lib/esm/features/store/objects/ExportPropertiesModal.js +5 -2
- package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/ContentDispositionButton.js +3 -1
- package/lib/esm/features/store/objects/components/ContentDispositionButton.js.map +1 -1
- package/lib/esm/features/store/objects/components/ContentOverview.js +55 -40
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
- package/lib/esm/features/store/objects/components/DocumentIcon.js +4 -3
- package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +13 -11
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +15 -18
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/SelectDocument.js +9 -6
- package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
- package/lib/esm/features/store/objects/components/TextEditorPanel.js +97 -0
- package/lib/esm/features/store/objects/components/TextEditorPanel.js.map +1 -0
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js +3 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js +4 -2
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +1 -1
- package/lib/esm/features/store/objects/components/useDownloadFile.js +12 -10
- package/lib/esm/features/store/objects/components/useDownloadFile.js.map +1 -1
- package/lib/esm/features/store/objects/layout/documentLayout.js +10 -6
- package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
- package/lib/esm/features/store/objects/layout/renderers.js +10 -1
- package/lib/esm/features/store/objects/layout/renderers.js.map +1 -1
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js +3 -2
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +3 -0
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +1 -1
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +22 -109
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -1
- package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js +50 -0
- package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js.map +1 -0
- package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js +27 -0
- package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js.map +1 -0
- package/lib/esm/features/store/objects/selection/SelectionActions.js +10 -6
- package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +17 -12
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +9 -5
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js +4 -2
- package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +24 -23
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +10 -5
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +13 -9
- package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +14 -8
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +1 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +42 -39
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +4 -2
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -1
- package/lib/esm/features/store/objects/upload/useUploadHandler.js +9 -7
- package/lib/esm/features/store/objects/upload/useUploadHandler.js.map +1 -1
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js +6 -4
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +1 -1
- package/lib/esm/features/store/types/ContentObjectTypesTable.js +3 -1
- package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +1 -1
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +6 -7
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -1
- package/lib/esm/features/store/types/ObjectSchemaEditor.js +9 -7
- package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
- package/lib/esm/features/store/types/SelectContentType.js +9 -7
- package/lib/esm/features/store/types/SelectContentType.js.map +1 -1
- package/lib/esm/features/store/types/SelectContentTypeModal.js +5 -2
- package/lib/esm/features/store/types/SelectContentTypeModal.js.map +1 -1
- package/lib/esm/features/store/types/TableLayoutEditor.js +6 -4
- package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -1
- package/lib/esm/features/user/UserInfo.js +40 -50
- package/lib/esm/features/user/UserInfo.js.map +1 -1
- package/lib/esm/i18n/index.js +31 -0
- package/lib/esm/i18n/index.js.map +1 -0
- package/lib/esm/i18n/instance.js +46 -0
- package/lib/esm/i18n/instance.js.map +1 -0
- package/lib/esm/i18n/locales/ar.json +696 -0
- package/lib/esm/i18n/locales/de.json +664 -0
- package/lib/esm/i18n/locales/en.json +665 -0
- package/lib/esm/i18n/locales/es.json +670 -0
- package/lib/esm/i18n/locales/fr.json +672 -0
- package/lib/esm/i18n/locales/it.json +670 -0
- package/lib/esm/i18n/locales/ja.json +664 -0
- package/lib/esm/i18n/locales/ko.json +664 -0
- package/lib/esm/i18n/locales/pt.json +670 -0
- package/lib/esm/i18n/locales/ru.json +680 -0
- package/lib/esm/i18n/locales/tr.json +664 -0
- package/lib/esm/i18n/locales/zh-TW.json +664 -0
- package/lib/esm/i18n/locales/zh.json +664 -0
- package/lib/esm/layout/FullHeightLayout.js +3 -0
- package/lib/esm/layout/FullHeightLayout.js.map +1 -1
- package/lib/esm/layout/Navbar.js +3 -1
- package/lib/esm/layout/Navbar.js.map +1 -1
- package/lib/esm/layout/RegionTag.js +15 -0
- package/lib/esm/layout/RegionTag.js.map +1 -0
- package/lib/esm/layout/Sidebar.js +2 -2
- package/lib/esm/layout/Sidebar.js.map +1 -1
- package/lib/esm/layout/index.js +1 -0
- package/lib/esm/layout/index.js.map +1 -1
- package/lib/esm/router/HistoryNavigator.js +1 -1
- package/lib/esm/router/HistoryNavigator.js.map +1 -1
- package/lib/esm/router/Nav.js +5 -3
- package/lib/esm/router/Nav.js.map +1 -1
- package/lib/esm/router/NestedNavigationContext.js +4 -0
- package/lib/esm/router/NestedNavigationContext.js.map +1 -1
- package/lib/esm/router/NestedRouterProvider.js +3 -1
- package/lib/esm/router/NestedRouterProvider.js.map +1 -1
- package/lib/esm/router/Router.js +21 -6
- package/lib/esm/router/Router.js.map +1 -1
- package/lib/esm/session/UserSession.js +33 -4
- package/lib/esm/session/UserSession.js.map +1 -1
- package/lib/esm/session/UserSessionProvider.js +6 -13
- package/lib/esm/session/UserSessionProvider.js.map +1 -1
- package/lib/esm/session/auth/composable.js +1 -1
- package/lib/esm/session/auth/composable.js.map +1 -1
- package/lib/esm/session/auth/domainRouting.js +17 -0
- package/lib/esm/session/auth/domainRouting.js.map +1 -0
- package/lib/esm/session/auth/firebase.js +1 -1
- package/lib/esm/session/auth/firebase.js.map +1 -1
- package/lib/esm/session/auth/useCurrentTenant.js +3 -1
- package/lib/esm/session/auth/useCurrentTenant.js.map +1 -1
- package/lib/esm/shell/SplashScreen.js +3 -7
- package/lib/esm/shell/SplashScreen.js.map +1 -1
- package/lib/esm/shell/apps/StandaloneApp.js +5 -2
- package/lib/esm/shell/apps/StandaloneApp.js.map +1 -1
- package/lib/esm/shell/login/EnterpriseSigninButton.js +5 -3
- package/lib/esm/shell/login/EnterpriseSigninButton.js.map +1 -1
- package/lib/esm/shell/login/GitHubSignInButton.js +3 -7
- package/lib/esm/shell/login/GitHubSignInButton.js.map +1 -1
- package/lib/esm/shell/login/GoogleSignInButton.js +3 -1
- package/lib/esm/shell/login/GoogleSignInButton.js.map +1 -1
- package/lib/esm/shell/login/InviteAcceptModal.js +5 -2
- package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -1
- package/lib/esm/shell/login/MicrosoftSigninButton.js +4 -6
- package/lib/esm/shell/login/MicrosoftSigninButton.js.map +1 -1
- package/lib/esm/shell/login/SigninScreen.js +6 -2
- package/lib/esm/shell/login/SigninScreen.js.map +1 -1
- package/lib/esm/shell/login/SignupForm.js +36 -34
- package/lib/esm/shell/login/SignupForm.js.map +1 -1
- package/lib/esm/shell/login/TerminalLogin.js +29 -22
- package/lib/esm/shell/login/TerminalLogin.js.map +1 -1
- package/lib/esm/shell/login/UserInfo.js +6 -4
- package/lib/esm/shell/login/UserInfo.js.map +1 -1
- package/lib/esm/shell/login/UserSessionMenu.js +3 -4
- package/lib/esm/shell/login/UserSessionMenu.js.map +1 -1
- package/lib/esm/widgets/index.js +0 -1
- package/lib/esm/widgets/index.js.map +1 -1
- package/lib/esm/widgets/json-view/JSONCode.js +1 -1
- package/lib/esm/widgets/json-view/JSONCode.js.map +1 -1
- package/lib/esm/widgets/json-view/JSONDisplay.js +6 -2
- package/lib/esm/widgets/json-view/JSONDisplay.js.map +1 -1
- package/lib/esm/widgets/json-view/JSONSwitcher.js +6 -0
- package/lib/esm/widgets/json-view/JSONSwitcher.js.map +1 -0
- package/lib/esm/widgets/json-view/JSONView.js +1 -1
- package/lib/esm/widgets/json-view/JSONView.js.map +1 -1
- package/lib/esm/widgets/json-view/index.js +1 -0
- package/lib/esm/widgets/json-view/index.js.map +1 -1
- package/lib/esm/widgets/markdown/ArtifactContentRenderer.js +6 -5
- package/lib/esm/widgets/markdown/ArtifactContentRenderer.js.map +1 -1
- package/lib/esm/widgets/markdown/CodeBlockContext.js +11 -0
- package/lib/esm/widgets/markdown/CodeBlockContext.js.map +1 -0
- package/lib/esm/widgets/markdown/MarkdownRenderer.js +11 -10
- package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +1 -1
- package/lib/esm/widgets/markdown/codeBlockHandlers.js +11 -12
- package/lib/esm/widgets/markdown/codeBlockHandlers.js.map +1 -1
- package/lib/esm/widgets/markdown/index.js +10 -9
- package/lib/esm/widgets/markdown/index.js.map +1 -1
- package/lib/esm/widgets/markdown/remarkDirectiveHandler.js +0 -1
- package/lib/esm/widgets/markdown/remarkDirectiveHandler.js.map +1 -1
- package/lib/esm/widgets/schema-editor/ManagedSchema.js +6 -5
- package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +1 -1
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +7 -3
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +1 -1
- package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +3 -1
- package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
- package/lib/esm/widgets/upload/DropZone.js +9 -11
- package/lib/esm/widgets/upload/DropZone.js.map +1 -1
- package/lib/esm/widgets/upload/UploadResultCategory.js +3 -1
- package/lib/esm/widgets/upload/UploadResultCategory.js.map +1 -1
- package/lib/esm/widgets/upload/UploadSummary.js +3 -1
- package/lib/esm/widgets/upload/UploadSummary.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/SelectList.d.ts.map +1 -1
- package/lib/types/core/components/SidePanel.d.ts +4 -2
- package/lib/types/core/components/SidePanel.d.ts.map +1 -1
- package/lib/types/core/components/index.d.ts +0 -5
- package/lib/types/core/components/index.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/badge.d.ts +2 -2
- package/lib/types/core/components/shadcn/breadcrumb.d.ts +1 -1
- package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/button.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/collaspible.d.ts +6 -0
- package/lib/types/core/components/shadcn/collaspible.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/dropdown.d.ts +51 -0
- package/lib/types/core/components/shadcn/dropdown.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/index.d.ts +4 -0
- package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/input.d.ts +1 -1
- package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts +2 -1
- package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/popover.d.ts +11 -3
- package/lib/types/core/components/shadcn/popover.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/radioGroup.d.ts +26 -0
- package/lib/types/core/components/shadcn/radioGroup.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/switch.d.ts +12 -0
- package/lib/types/core/components/shadcn/switch.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/tabs.d.ts +4 -2
- package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +8 -2
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -1
- package/lib/types/core/components/toast/NotificationPanel.d.ts.map +1 -1
- package/lib/types/core/hooks/PortalContainerProvider.d.ts +1 -0
- package/lib/types/core/hooks/PortalContainerProvider.d.ts.map +1 -1
- package/lib/types/env/index.d.ts +12 -3
- package/lib/types/env/index.d.ts.map +1 -1
- package/lib/types/features/agent/PayloadBuilder.d.ts +31 -3
- package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
- package/lib/types/features/agent/chat/AgentRightPanel.d.ts +50 -0
- package/lib/types/features/agent/chat/AgentRightPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ArtifactsTab.d.ts +9 -0
- package/lib/types/features/agent/chat/ArtifactsTab.d.ts.map +1 -0
- package/lib/types/features/agent/chat/AskUserWidget.d.ts.map +1 -1
- package/lib/types/features/agent/chat/DocumentPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ImageLightbox.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +22 -9
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +3 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +13 -4
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts +3 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts +5 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +16 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
- package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -1
- package/lib/types/features/agent/chat/VegaLiteChart.d.ts.map +1 -1
- package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts.map +1 -1
- package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts +5 -3
- package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
- package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts +18 -0
- package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts.map +1 -0
- package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts +4 -4
- package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts.map +1 -1
- package/lib/types/features/agent/chat/types/document.d.ts +2 -0
- package/lib/types/features/agent/chat/types/document.d.ts.map +1 -1
- package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +1 -1
- package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts +2 -1
- package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -1
- package/lib/types/features/facets/RunsFacetsNav.d.ts.map +1 -1
- package/lib/types/features/facets/index.d.ts +1 -1
- package/lib/types/features/facets/index.d.ts.map +1 -1
- package/lib/types/features/layout/GenericPageNavHeader.d.ts +2 -2
- package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -1
- package/lib/types/features/layout/NotFoundView.d.ts.map +1 -1
- package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts.map +1 -1
- package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +1 -1
- package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +1 -1
- package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts.map +1 -1
- package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -1
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +1 -1
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/collections/CollectionsTable.d.ts +4 -0
- package/lib/types/features/store/collections/CollectionsTable.d.ts.map +1 -1
- package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -1
- package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -1
- package/lib/types/features/store/collections/SharedPropsEditor.d.ts.map +1 -1
- package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts.map +1 -1
- package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -1
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
- package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -1
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts +2 -1
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/SelectDocument.d.ts +3 -1
- package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/TextEditorPanel.d.ts +10 -0
- package/lib/types/features/store/objects/components/TextEditorPanel.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/useDownloadFile.d.ts.map +1 -1
- package/lib/types/features/store/objects/layout/documentLayout.d.ts +3 -2
- package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -1
- package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -1
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
- package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +3 -20
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts +16 -0
- package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts +7 -0
- package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +4 -1
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts +6 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +1 -1
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +1 -1
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -1
- package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +1 -1
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -1
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +2 -1
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +1 -1
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
- package/lib/types/features/store/types/SelectContentType.d.ts.map +1 -1
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +1 -1
- package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -1
- package/lib/types/features/user/UserInfo.d.ts +2 -2
- package/lib/types/features/user/UserInfo.d.ts.map +1 -1
- package/lib/types/i18n/index.d.ts +14 -0
- package/lib/types/i18n/index.d.ts.map +1 -0
- package/lib/types/i18n/instance.d.ts +5 -0
- package/lib/types/i18n/instance.d.ts.map +1 -0
- package/lib/types/layout/FullHeightLayout.d.ts +3 -0
- package/lib/types/layout/FullHeightLayout.d.ts.map +1 -1
- package/lib/types/layout/Navbar.d.ts.map +1 -1
- package/lib/types/layout/RegionTag.d.ts +4 -0
- package/lib/types/layout/RegionTag.d.ts.map +1 -0
- package/lib/types/layout/Sidebar.d.ts +2 -1
- package/lib/types/layout/Sidebar.d.ts.map +1 -1
- package/lib/types/layout/index.d.ts +1 -0
- package/lib/types/layout/index.d.ts.map +1 -1
- package/lib/types/router/Nav.d.ts +5 -1
- package/lib/types/router/Nav.d.ts.map +1 -1
- package/lib/types/router/NestedNavigationContext.d.ts.map +1 -1
- package/lib/types/router/NestedRouterProvider.d.ts.map +1 -1
- package/lib/types/router/Router.d.ts +2 -0
- package/lib/types/router/Router.d.ts.map +1 -1
- package/lib/types/session/UserSession.d.ts +1 -0
- package/lib/types/session/UserSession.d.ts.map +1 -1
- package/lib/types/session/UserSessionProvider.d.ts +0 -1
- package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
- package/lib/types/session/auth/domainRouting.d.ts +3 -0
- package/lib/types/session/auth/domainRouting.d.ts.map +1 -0
- package/lib/types/session/auth/useCurrentTenant.d.ts.map +1 -1
- package/lib/types/shell/SplashScreen.d.ts.map +1 -1
- package/lib/types/shell/apps/StandaloneApp.d.ts.map +1 -1
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +1 -1
- package/lib/types/shell/login/GitHubSignInButton.d.ts.map +1 -1
- package/lib/types/shell/login/GoogleSignInButton.d.ts.map +1 -1
- package/lib/types/shell/login/InviteAcceptModal.d.ts.map +1 -1
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts +1 -1
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +1 -1
- package/lib/types/shell/login/SigninScreen.d.ts.map +1 -1
- package/lib/types/shell/login/SignupForm.d.ts.map +1 -1
- package/lib/types/shell/login/TerminalLogin.d.ts.map +1 -1
- package/lib/types/shell/login/UserInfo.d.ts.map +1 -1
- package/lib/types/shell/login/UserSessionMenu.d.ts.map +1 -1
- package/lib/types/widgets/index.d.ts +0 -1
- package/lib/types/widgets/index.d.ts.map +1 -1
- package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +1 -1
- package/lib/types/widgets/json-view/JSONSwitcher.d.ts +6 -0
- package/lib/types/widgets/json-view/JSONSwitcher.d.ts.map +1 -0
- package/lib/types/widgets/json-view/index.d.ts +1 -0
- package/lib/types/widgets/json-view/index.d.ts.map +1 -1
- package/lib/types/widgets/markdown/ArtifactContentRenderer.d.ts.map +1 -1
- package/lib/types/widgets/markdown/CodeBlockContext.d.ts +21 -0
- package/lib/types/widgets/markdown/CodeBlockContext.d.ts.map +1 -0
- package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
- package/lib/types/widgets/markdown/codeBlockHandlers.d.ts +0 -12
- package/lib/types/widgets/markdown/codeBlockHandlers.d.ts.map +1 -1
- package/lib/types/widgets/markdown/index.d.ts +10 -9
- package/lib/types/widgets/markdown/index.d.ts.map +1 -1
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +1 -1
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +1 -1
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +1 -1
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -1
- package/lib/types/widgets/upload/DropZone.d.ts.map +1 -1
- package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +1 -1
- package/lib/types/widgets/upload/UploadSummary.d.ts.map +1 -1
- package/lib/vertesia-ui-core.js +1 -1
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-env.js +1 -1
- package/lib/vertesia-ui-env.js.map +1 -1
- package/lib/vertesia-ui-features.js +1 -1
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-i18n.js +2 -0
- package/lib/vertesia-ui-i18n.js.map +1 -0
- package/lib/vertesia-ui-layout.js +1 -1
- package/lib/vertesia-ui-layout.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js +1 -1
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/lib/vertesia-ui-widgets.js +1 -1
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/llms.txt +124 -4
- package/package.json +50 -22
- package/src/core/components/SelectList.tsx +3 -1
- package/src/core/components/SidePanel.tsx +5 -4
- package/src/core/components/index.ts +0 -5
- package/src/core/components/shadcn/breadcrumb.tsx +16 -9
- package/src/core/components/shadcn/button.tsx +5 -3
- package/src/core/components/shadcn/collaspible.tsx +33 -0
- package/src/core/components/shadcn/dropdown.tsx +325 -0
- package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +3 -1
- package/src/core/components/shadcn/filters/comboBox/SelectCombobox.tsx +3 -1
- package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +1 -1
- package/src/core/components/shadcn/filters/filter/StringListFilter.tsx +1 -1
- package/src/core/components/shadcn/filters/filter/dateFilter.tsx +5 -3
- package/src/core/components/shadcn/filters/filterBar.tsx +8 -5
- package/src/core/components/shadcn/index.ts +5 -1
- package/src/core/components/shadcn/modal/ConfirmModal.tsx +7 -3
- package/src/core/components/shadcn/modal/DeleteModal.tsx +5 -3
- package/src/core/components/shadcn/popover.tsx +12 -7
- package/src/core/components/shadcn/radioGroup.tsx +100 -0
- package/src/core/components/shadcn/selectBox.tsx +1 -1
- package/src/core/components/shadcn/switch.tsx +60 -0
- package/src/core/components/shadcn/tabs.tsx +29 -27
- package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +19 -10
- package/src/core/components/shadcn/tooltip.tsx +1 -1
- package/src/core/components/toast/NotificationPanel.tsx +38 -44
- package/src/core/hooks/PortalContainerProvider.tsx +11 -3
- package/src/css/base.css +31 -0
- package/src/css/color.css +136 -0
- package/src/css/custom-tooltips.css +64 -0
- package/src/css/index.css +27 -0
- package/src/css/theme.css +86 -0
- package/src/css/typography.css +88 -0
- package/src/css/utilities.css +72 -0
- package/src/env/index.ts +24 -13
- package/src/features/agent/PayloadBuilder.tsx +100 -13
- package/src/features/agent/chat/AgentRightPanel.tsx +424 -0
- package/src/features/agent/chat/ArtifactsTab.tsx +197 -0
- package/src/features/agent/chat/AskUserWidget.tsx +14 -8
- package/src/features/agent/chat/DocumentPanel.tsx +24 -9
- package/src/features/agent/chat/ImageLightbox.tsx +6 -3
- package/src/features/agent/chat/ModernAgentConversation.tsx +538 -364
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +151 -55
- package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +6 -4
- package/src/features/agent/chat/ModernAgentOutput/Header.tsx +183 -105
- package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +21 -31
- package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +119 -114
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +26 -9
- package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +9 -7
- package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +15 -13
- package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +8 -3
- package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +149 -49
- package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +9 -5
- package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +229 -0
- package/src/features/agent/chat/ModernAgentOutput/utils.ts +202 -97
- package/src/features/agent/chat/SlidingThinkingIndicator.tsx +5 -3
- package/src/features/agent/chat/VegaLiteChart.tsx +20 -8
- package/src/features/agent/chat/hooks/useAgentPlans.ts +3 -9
- package/src/features/agent/chat/hooks/useAgentStream.ts +86 -19
- package/src/features/agent/chat/hooks/useArtifacts.ts +151 -0
- package/src/features/agent/chat/hooks/useDocumentPanel.ts +65 -5
- package/src/features/agent/chat/hooks/useFileProcessing.ts +14 -13
- package/src/features/agent/chat/types/document.ts +2 -0
- package/src/features/errors/PanelErrorBoundary.tsx +5 -3
- package/src/features/facets/AgentRunnerFacetsNav.tsx +54 -35
- package/src/features/facets/RunsFacetsNav.tsx +15 -7
- package/src/features/facets/index.ts +1 -1
- package/src/features/layout/GenericPageNavHeader.tsx +64 -41
- package/src/features/layout/NotFoundView.tsx +4 -1
- package/src/features/magic-pdf/AnnotatedImageSlider.tsx +12 -8
- package/src/features/magic-pdf/DownloadPopover.tsx +11 -10
- package/src/features/magic-pdf/MagicPdfView.tsx +10 -7
- package/src/features/pdf-viewer/PdfPageSlider.tsx +10 -6
- package/src/features/pdf-viewer/SimplePdfViewer.tsx +5 -3
- package/src/features/permissions/UserPermissionsProvider.tsx +3 -1
- package/src/features/store/collections/BrowseCollectionView.tsx +11 -1
- package/src/features/store/collections/CollectionsTable.tsx +20 -12
- package/src/features/store/collections/CreateCollection.tsx +45 -40
- package/src/features/store/collections/EditCollectionView.tsx +31 -28
- package/src/features/store/collections/SelectCollection.tsx +50 -14
- package/src/features/store/collections/SharedPropsEditor.tsx +7 -5
- package/src/features/store/collections/SyncMemberHeadsToggle.tsx +6 -4
- package/src/features/store/objects/DocumentPreviewPanel.tsx +30 -28
- package/src/features/store/objects/DocumentSearchResults.tsx +31 -21
- package/src/features/store/objects/DocumentTable.tsx +11 -5
- package/src/features/store/objects/ExportPropertiesModal.tsx +8 -5
- package/src/features/store/objects/components/ContentDispositionButton.tsx +3 -1
- package/src/features/store/objects/components/ContentOverview.tsx +96 -50
- package/src/features/store/objects/components/DocumentIcon.tsx +11 -3
- package/src/features/store/objects/components/PropertiesEditorModal.tsx +14 -12
- package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +24 -37
- package/src/features/store/objects/components/SelectDocument.tsx +15 -6
- package/src/features/store/objects/components/TextEditorPanel.tsx +143 -0
- package/src/features/store/objects/components/VectorSearchWidget.tsx +11 -8
- package/src/features/store/objects/components/useContentPanelHooks.ts +4 -2
- package/src/features/store/objects/components/useDownloadFile.ts +12 -10
- package/src/features/store/objects/layout/documentLayout.tsx +16 -6
- package/src/features/store/objects/layout/renderers.tsx +27 -1
- package/src/features/store/objects/search/DocumentSearchContext.ts +3 -2
- package/src/features/store/objects/search/DocumentSearchProvider.tsx +3 -0
- package/src/features/store/objects/selection/ObjectsActionContext.tsx +26 -128
- package/src/features/store/objects/selection/ObjectsActionContextClass.ts +59 -0
- package/src/features/store/objects/selection/ObjectsActionHooks.ts +33 -0
- package/src/features/store/objects/selection/ObjectsActionSpec.ts +4 -1
- package/src/features/store/objects/selection/SelectionActions.tsx +14 -6
- package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +19 -14
- package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +9 -5
- package/src/features/store/objects/selection/actions/ConfirmAction.tsx +4 -3
- package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +24 -23
- package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +10 -5
- package/src/features/store/objects/selection/actions/RemoveFromCollectionAction.tsx +13 -9
- package/src/features/store/objects/selection/actions/StartWorkflowComponent.tsx +14 -8
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +56 -55
- package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +4 -2
- package/src/features/store/objects/upload/useUploadHandler.ts +9 -7
- package/src/features/store/types/ContentObjectTypesSearch.tsx +10 -8
- package/src/features/store/types/ContentObjectTypesTable.tsx +6 -4
- package/src/features/store/types/CreateOrUpdateTypeModal.tsx +11 -12
- package/src/features/store/types/ObjectSchemaEditor.tsx +11 -9
- package/src/features/store/types/SelectContentType.tsx +15 -13
- package/src/features/store/types/SelectContentTypeModal.tsx +16 -13
- package/src/features/store/types/TableLayoutEditor.tsx +16 -12
- package/src/features/user/UserInfo.tsx +47 -56
- package/src/i18n/index.tsx +45 -0
- package/src/i18n/instance.ts +49 -0
- package/src/i18n/locales/ar.json +696 -0
- package/src/i18n/locales/de.json +664 -0
- package/src/i18n/locales/en.json +665 -0
- package/src/i18n/locales/es.json +670 -0
- package/src/i18n/locales/fr.json +672 -0
- package/src/i18n/locales/it.json +670 -0
- package/src/i18n/locales/ja.json +664 -0
- package/src/i18n/locales/ko.json +664 -0
- package/src/i18n/locales/pt.json +670 -0
- package/src/i18n/locales/ru.json +680 -0
- package/src/i18n/locales/tr.json +664 -0
- package/src/i18n/locales/zh-TW.json +664 -0
- package/src/i18n/locales/zh.json +664 -0
- package/src/layout/FullHeightLayout.tsx +8 -0
- package/src/layout/Navbar.tsx +4 -2
- package/src/layout/RegionTag.tsx +25 -0
- package/src/layout/Sidebar.tsx +4 -3
- package/src/layout/index.ts +2 -1
- package/src/router/HistoryNavigator.ts +10 -10
- package/src/router/Nav.tsx +9 -3
- package/src/router/NestedNavigationContext.tsx +4 -0
- package/src/router/NestedRouterProvider.tsx +3 -1
- package/src/router/Router.tsx +23 -7
- package/src/session/UserSession.ts +34 -5
- package/src/session/UserSessionProvider.tsx +6 -14
- package/src/session/auth/composable.ts +1 -1
- package/src/session/auth/domainRouting.test.ts +110 -0
- package/src/session/auth/domainRouting.ts +22 -0
- package/src/session/auth/firebase.ts +1 -1
- package/src/session/auth/useCurrentTenant.ts +3 -1
- package/src/shell/SplashScreen.tsx +22 -26
- package/src/shell/apps/StandaloneApp.tsx +9 -6
- package/src/shell/login/EnterpriseSigninButton.tsx +6 -4
- package/src/shell/login/GitHubSignInButton.tsx +3 -7
- package/src/shell/login/GoogleSignInButton.tsx +3 -1
- package/src/shell/login/InviteAcceptModal.tsx +5 -2
- package/src/shell/login/MicrosoftSigninButton.tsx +4 -6
- package/src/shell/login/SigninScreen.tsx +18 -13
- package/src/shell/login/SignupForm.tsx +46 -46
- package/src/shell/login/TerminalLogin.tsx +36 -33
- package/src/shell/login/UserInfo.tsx +15 -13
- package/src/shell/login/UserSessionMenu.tsx +28 -31
- package/src/widgets/index.ts +0 -1
- package/src/widgets/json-view/JSONCode.tsx +1 -1
- package/src/widgets/json-view/JSONDisplay.tsx +8 -3
- package/src/widgets/json-view/JSONSwitcher.tsx +24 -0
- package/src/widgets/json-view/JSONView.tsx +1 -1
- package/src/widgets/json-view/index.ts +1 -0
- package/src/widgets/markdown/ArtifactContentRenderer.tsx +15 -7
- package/src/widgets/markdown/CodeBlockContext.tsx +34 -0
- package/src/widgets/markdown/MarkdownRenderer.tsx +14 -13
- package/src/widgets/markdown/codeBlockHandlers.tsx +17 -36
- package/src/widgets/markdown/index.ts +27 -34
- package/src/widgets/markdown/remarkDirectiveHandler.ts +1 -1
- package/src/widgets/schema-editor/ManagedSchema.ts +6 -5
- package/src/widgets/schema-editor/editor/PropertyEditor.tsx +7 -3
- package/src/widgets/schema-editor/editor/SchemaEditor.tsx +3 -1
- package/src/widgets/upload/DropZone.tsx +10 -13
- package/src/widgets/upload/UploadResultCategory.tsx +3 -1
- package/src/widgets/upload/UploadSummary.tsx +13 -11
- package/tsconfig.dist.json +1 -1
- package/lib/esm/core/components/Dropdown.js +0 -16
- package/lib/esm/core/components/Dropdown.js.map +0 -1
- package/lib/esm/core/components/DropdownList.js +0 -9
- package/lib/esm/core/components/DropdownList.js.map +0 -1
- package/lib/esm/core/components/RadioGroup.js +0 -34
- package/lib/esm/core/components/RadioGroup.js.map +0 -1
- package/lib/esm/core/components/SelectStack.js +0 -8
- package/lib/esm/core/components/SelectStack.js.map +0 -1
- package/lib/esm/core/components/Switch.js +0 -12
- package/lib/esm/core/components/Switch.js.map +0 -1
- package/lib/esm/widgets/popover/Popover.js +0 -73
- package/lib/esm/widgets/popover/Popover.js.map +0 -1
- package/lib/esm/widgets/popover/context.js +0 -7
- package/lib/esm/widgets/popover/context.js.map +0 -1
- package/lib/esm/widgets/popover/index.js +0 -3
- package/lib/esm/widgets/popover/index.js.map +0 -1
- package/lib/esm/widgets/popover/slots.js +0 -22
- package/lib/esm/widgets/popover/slots.js.map +0 -1
- package/lib/types/core/components/Dropdown.d.ts +0 -15
- package/lib/types/core/components/Dropdown.d.ts.map +0 -1
- package/lib/types/core/components/DropdownList.d.ts +0 -13
- package/lib/types/core/components/DropdownList.d.ts.map +0 -1
- package/lib/types/core/components/RadioGroup.d.ts +0 -26
- package/lib/types/core/components/RadioGroup.d.ts.map +0 -1
- package/lib/types/core/components/SelectStack.d.ts +0 -13
- package/lib/types/core/components/SelectStack.d.ts.map +0 -1
- package/lib/types/core/components/Switch.d.ts +0 -11
- package/lib/types/core/components/Switch.d.ts.map +0 -1
- package/lib/types/widgets/popover/Popover.d.ts +0 -38
- package/lib/types/widgets/popover/Popover.d.ts.map +0 -1
- package/lib/types/widgets/popover/context.d.ts +0 -8
- package/lib/types/widgets/popover/context.d.ts.map +0 -1
- package/lib/types/widgets/popover/index.d.ts +0 -3
- package/lib/types/widgets/popover/index.d.ts.map +0 -1
- package/lib/types/widgets/popover/slots.d.ts +0 -5
- package/lib/types/widgets/popover/slots.d.ts.map +0 -1
- package/src/core/components/Dropdown.tsx +0 -63
- package/src/core/components/DropdownList.tsx +0 -72
- package/src/core/components/RadioGroup.tsx +0 -100
- package/src/core/components/SelectStack.tsx +0 -63
- package/src/core/components/Switch.tsx +0 -30
- package/src/widgets/popover/Popover.tsx +0 -171
- package/src/widgets/popover/context.ts +0 -15
- package/src/widgets/popover/index.ts +0 -2
- package/src/widgets/popover/slots.ts +0 -24
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Button, Modal, ModalBody, ModalTitle, SelectBox, Spinner } from "@vertesia/ui/core";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
+
import { useUITranslation } from '../../../i18n/index.js';
|
|
3
4
|
|
|
4
5
|
export enum ExportTypes {
|
|
5
6
|
CSV = "CSV", JSON = "JSON"
|
|
@@ -32,6 +33,7 @@ interface SelectPanelProps {
|
|
|
32
33
|
onClose: (exportType?: string | null, exportAll?: boolean) => void;
|
|
33
34
|
}
|
|
34
35
|
function SelectPanel({ onClose }: SelectPanelProps) {
|
|
36
|
+
const { t } = useUITranslation();
|
|
35
37
|
const [exportType, setExportType] = useState<string | undefined>(undefined);
|
|
36
38
|
const [exportAll, setExportAll] = useState<string | undefined>(undefined);
|
|
37
39
|
|
|
@@ -52,7 +54,7 @@ function SelectPanel({ onClose }: SelectPanelProps) {
|
|
|
52
54
|
options={selectionOption}
|
|
53
55
|
value={exportAll}
|
|
54
56
|
onChange={setExportAll}
|
|
55
|
-
placeholder=
|
|
57
|
+
placeholder={t('store.chooseWhatToExport')}
|
|
56
58
|
className="h-full w-full text-sm"
|
|
57
59
|
filterBy="name"
|
|
58
60
|
isClearable
|
|
@@ -63,13 +65,13 @@ function SelectPanel({ onClose }: SelectPanelProps) {
|
|
|
63
65
|
options={Object.values(ExportTypes)}
|
|
64
66
|
value={exportType}
|
|
65
67
|
onChange={setExportType}
|
|
66
|
-
placeholder=
|
|
68
|
+
placeholder={t('store.chooseAFormat')}
|
|
67
69
|
className="h-full w-full text-sm"
|
|
68
70
|
filterBy="name"
|
|
69
71
|
isClearable
|
|
70
72
|
/>
|
|
71
73
|
|
|
72
|
-
<Button className="w-full" isDisabled={!exportType || !exportAll} onClick={onSubmit}>
|
|
74
|
+
<Button className="w-full" isDisabled={!exportType || !exportAll} onClick={onSubmit}>{t('store.actions.exportProperties')}</Button>
|
|
73
75
|
</div>
|
|
74
76
|
</ModalBody>
|
|
75
77
|
)
|
|
@@ -77,12 +79,13 @@ function SelectPanel({ onClose }: SelectPanelProps) {
|
|
|
77
79
|
|
|
78
80
|
interface WaitingPanelProps { }
|
|
79
81
|
function WaitingPanel({ }: WaitingPanelProps) {
|
|
82
|
+
const { t } = useUITranslation();
|
|
80
83
|
return (
|
|
81
84
|
<ModalBody className="min-h-[84px] pt-0">
|
|
82
85
|
<div className='h-full grid flex-col gap-y-2 content-between justify-items-center'>
|
|
83
86
|
<div className="text-sm flex flex-col gap-x-2">
|
|
84
|
-
<p>
|
|
85
|
-
<p className="pt-2 grid justify-items-center">
|
|
87
|
+
<p>{t('store.exportInProgress')}</p>
|
|
88
|
+
<p className="pt-2 grid justify-items-center">{t('store.pleaseWait')}</p>
|
|
86
89
|
</div>
|
|
87
90
|
<Spinner size='lg' />
|
|
88
91
|
</div>
|
|
@@ -2,6 +2,7 @@ import { LayoutGrid, TableProperties } from 'lucide-react'
|
|
|
2
2
|
import { useState } from 'react'
|
|
3
3
|
|
|
4
4
|
import { Button } from '@vertesia/ui/core'
|
|
5
|
+
import { useUITranslation } from '@vertesia/ui/i18n'
|
|
5
6
|
|
|
6
7
|
const LAST_DISPLAYED_VIEW = 'vertesia.content_store.lastDisplayedView'
|
|
7
8
|
|
|
@@ -9,6 +10,7 @@ interface ContentDispositionButtonProps {
|
|
|
9
10
|
onUpdate: (value: boolean) => void
|
|
10
11
|
}
|
|
11
12
|
export function ContentDispositionButton({ onUpdate }: Readonly<ContentDispositionButtonProps>) {
|
|
13
|
+
const { t } = useUITranslation()
|
|
12
14
|
const [isGridView, setIsGridView] = useState(localStorage.getItem(LAST_DISPLAYED_VIEW) === "grid")
|
|
13
15
|
|
|
14
16
|
const updateView = () => {
|
|
@@ -32,7 +34,7 @@ export function ContentDispositionButton({ onUpdate }: Readonly<ContentDispositi
|
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
return (
|
|
35
|
-
<Button variant="outline" onClick={updateView} alt={isGridView ?
|
|
37
|
+
<Button variant="outline" onClick={updateView} alt={isGridView ? t('misc.tableView') : t('misc.thumbnailView')}>
|
|
36
38
|
{
|
|
37
39
|
isGridView
|
|
38
40
|
? <TableProperties />
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { memo, useEffect, useRef, useState, type RefObject } from "react";
|
|
2
2
|
|
|
3
|
-
import { AUDIO_RENDITION_NAME, AudioMetadata, ContentNature, ContentObject, ContentObjectStatus, DocAnalyzerProgress, DocProcessorOutputFormat, DocumentMetadata, ImageRenditionFormat, MarkdownRenditionFormat, PDF_RENDITION_NAME, POSTER_RENDITION_NAME, VideoMetadata, WorkflowExecutionStatus } from "@vertesia/common";
|
|
3
|
+
import { AUDIO_RENDITION_NAME, AudioMetadata, ContentNature, ContentObject, ContentObjectStatus, DocAnalyzerProgress, DocProcessorOutputFormat, DocumentMetadata, ImageRenditionFormat, MarkdownRenditionFormat, PDF_RENDITION_NAME, Permission, POSTER_RENDITION_NAME, VideoMetadata, WorkflowExecutionStatus } from "@vertesia/common";
|
|
4
4
|
import { Button, Portal, ResizableHandle, ResizablePanel, ResizablePanelGroup, Spinner, useToast } from "@vertesia/ui/core";
|
|
5
5
|
import { NavLink } from "@vertesia/ui/router";
|
|
6
6
|
import { useUserSession } from "@vertesia/ui/session";
|
|
7
7
|
import { JSONDisplay, MarkdownRenderer, Progress, XMLViewer } from "@vertesia/ui/widgets";
|
|
8
8
|
import { AlertTriangle, Copy, Download, FileSearch, SquarePen } from "lucide-react";
|
|
9
|
+
import { useUITranslation } from '../../../../i18n/index.js';
|
|
9
10
|
import { MagicPdfView } from "../../../magic-pdf";
|
|
10
11
|
import { SimplePdfViewer } from "../../../pdf-viewer";
|
|
12
|
+
import { SecureButton } from "../../../permissions/SecureButton.js";
|
|
11
13
|
import { getWorkflowStatusColor, getWorkflowStatusName, isPreviewableAsPdf } from "../../../utils/index.js";
|
|
12
14
|
import { PropertiesEditorModal } from "./PropertiesEditorModal";
|
|
15
|
+
import { TextEditorPanel } from "./TextEditorPanel.js";
|
|
13
16
|
import { useObjectText, useOfficePdfConversion, usePdfProcessingStatus } from "./useContentPanelHooks.js";
|
|
14
17
|
import { useDownloadFile } from "./useDownloadFile.js";
|
|
15
18
|
|
|
@@ -30,18 +33,6 @@ const WEB_SUPPORTED_AUDIO_FORMATS = [
|
|
|
30
33
|
'audio/webm', // WebM audio
|
|
31
34
|
];
|
|
32
35
|
|
|
33
|
-
// Panel height constants for consistent layout
|
|
34
|
-
const PANEL_HEIGHTS = {
|
|
35
|
-
/** Main resizable panel group */
|
|
36
|
-
main: "h-[calc(100vh-208px)]",
|
|
37
|
-
/** Properties panel content area */
|
|
38
|
-
properties: "h-[calc(100vh-228px)]",
|
|
39
|
-
/** Text/PDF content panel */
|
|
40
|
-
content: "h-[calc(100vh-218px)]",
|
|
41
|
-
/** Video max height */
|
|
42
|
-
video: "max-h-[calc(100vh-268px)]",
|
|
43
|
-
} as const;
|
|
44
|
-
|
|
45
36
|
// ----- Type Definitions -----
|
|
46
37
|
|
|
47
38
|
interface TextActionsProps {
|
|
@@ -50,6 +41,9 @@ interface TextActionsProps {
|
|
|
50
41
|
fullText: string | undefined;
|
|
51
42
|
handleCopyContent: (content: string, type: "text" | "properties") => Promise<void>;
|
|
52
43
|
textContainerRef: RefObject<HTMLDivElement | null>;
|
|
44
|
+
isEditing?: boolean;
|
|
45
|
+
onToggleEdit?: () => void;
|
|
46
|
+
canEdit?: boolean;
|
|
53
47
|
}
|
|
54
48
|
|
|
55
49
|
interface TextPanelProps {
|
|
@@ -163,7 +157,7 @@ function looksLikeMarkdown(text: string | undefined): boolean {
|
|
|
163
157
|
* Returns empty string if visible, 'hidden' if not visible.
|
|
164
158
|
*/
|
|
165
159
|
function getPanelVisibility(isVisible: boolean): string {
|
|
166
|
-
return isVisible ? '' : 'hidden';
|
|
160
|
+
return isVisible ? 'h-full overflow-auto' : 'hidden';
|
|
167
161
|
}
|
|
168
162
|
|
|
169
163
|
enum PanelView {
|
|
@@ -186,6 +180,7 @@ export function ContentOverview({
|
|
|
186
180
|
refetch,
|
|
187
181
|
}: ContentOverviewProps) {
|
|
188
182
|
const toast = useToast();
|
|
183
|
+
const { t } = useUITranslation();
|
|
189
184
|
|
|
190
185
|
const handleCopyContent = async (
|
|
191
186
|
content: string,
|
|
@@ -195,16 +190,16 @@ export function ContentOverview({
|
|
|
195
190
|
await navigator.clipboard.writeText(content);
|
|
196
191
|
toast({
|
|
197
192
|
status: "success",
|
|
198
|
-
title:
|
|
199
|
-
description:
|
|
193
|
+
title: t('store.contentCopied', { type: type === "text" ? t('store.contentType') : t('store.properties') }),
|
|
194
|
+
description: t('store.successfullyCopied', { type }),
|
|
200
195
|
duration: 2000,
|
|
201
196
|
});
|
|
202
197
|
} catch (err) {
|
|
203
198
|
console.error(`Failed to copy ${type}:`, err);
|
|
204
199
|
toast({
|
|
205
200
|
status: "error",
|
|
206
|
-
title:
|
|
207
|
-
description:
|
|
201
|
+
title: t('store.copyFailed'),
|
|
202
|
+
description: t('store.failedToCopy', { type }),
|
|
208
203
|
duration: 5000,
|
|
209
204
|
});
|
|
210
205
|
}
|
|
@@ -212,7 +207,7 @@ export function ContentOverview({
|
|
|
212
207
|
|
|
213
208
|
return (
|
|
214
209
|
<>
|
|
215
|
-
<ResizablePanelGroup direction="horizontal" className=
|
|
210
|
+
<ResizablePanelGroup direction="horizontal" className='h-full'>
|
|
216
211
|
<ResizablePanel className="min-w-[100px]">
|
|
217
212
|
<PropertiesPanel object={object} refetch={refetch ?? (() => Promise.resolve())} handleCopyContent={handleCopyContent} />
|
|
218
213
|
</ResizablePanel>
|
|
@@ -228,6 +223,7 @@ export function ContentOverview({
|
|
|
228
223
|
}
|
|
229
224
|
|
|
230
225
|
function PropertiesPanel({ object, refetch, handleCopyContent }: { object: ContentObject, refetch: () => Promise<unknown>, handleCopyContent: (content: string, type: "text" | "properties") => Promise<void> }) {
|
|
226
|
+
const { t } = useUITranslation();
|
|
231
227
|
const [viewCode, setViewCode] = useState(false);
|
|
232
228
|
const [isPropertiesModalOpen, setPropertiesModalOpen] = useState(false);
|
|
233
229
|
|
|
@@ -246,7 +242,7 @@ function PropertiesPanel({ object, refetch, handleCopyContent }: { object: Conte
|
|
|
246
242
|
<Button
|
|
247
243
|
variant={`${viewCode ? "ghost" : "primary"}`}
|
|
248
244
|
size="sm"
|
|
249
|
-
alt=
|
|
245
|
+
alt={t('store.previewProperties')}
|
|
250
246
|
onClick={() => setViewCode(!viewCode)}
|
|
251
247
|
>
|
|
252
248
|
Properties
|
|
@@ -254,7 +250,7 @@ function PropertiesPanel({ object, refetch, handleCopyContent }: { object: Conte
|
|
|
254
250
|
<Button
|
|
255
251
|
variant={`${viewCode ? "primary" : "ghost"}`}
|
|
256
252
|
size="sm"
|
|
257
|
-
alt=
|
|
253
|
+
alt={t('store.viewInJsonFormat')}
|
|
258
254
|
onClick={() => setViewCode(!viewCode)}
|
|
259
255
|
>
|
|
260
256
|
JSON
|
|
@@ -294,7 +290,7 @@ function PropertiesPanel({ object, refetch, handleCopyContent }: { object: Conte
|
|
|
294
290
|
|
|
295
291
|
{
|
|
296
292
|
object.properties ? (
|
|
297
|
-
<div className={
|
|
293
|
+
<div className={`h-full px-2`}>
|
|
298
294
|
<JSONDisplay
|
|
299
295
|
value={object.properties}
|
|
300
296
|
viewCode={viewCode}
|
|
@@ -302,8 +298,8 @@ function PropertiesPanel({ object, refetch, handleCopyContent }: { object: Conte
|
|
|
302
298
|
/>
|
|
303
299
|
</div>
|
|
304
300
|
) : (
|
|
305
|
-
<div className={
|
|
306
|
-
<div>
|
|
301
|
+
<div className={`h-full px-2`}>
|
|
302
|
+
<div>{t('store.noPropertiesDefined')}</div>
|
|
307
303
|
</div>
|
|
308
304
|
)
|
|
309
305
|
}
|
|
@@ -319,6 +315,7 @@ function PropertiesPanel({ object, refetch, handleCopyContent }: { object: Conte
|
|
|
319
315
|
}
|
|
320
316
|
|
|
321
317
|
function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: ContentObject, loadText: boolean, handleCopyContent: (content: string, type: "text" | "properties") => Promise<void>, refetch?: () => Promise<unknown> }) {
|
|
318
|
+
const { t } = useUITranslation();
|
|
322
319
|
const isImage = object?.metadata?.type === ContentNature.Image;
|
|
323
320
|
const isVideo = object?.metadata?.type === ContentNature.Video;
|
|
324
321
|
const isAudio = object?.metadata?.type === ContentNature.Audio;
|
|
@@ -341,12 +338,24 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
341
338
|
|
|
342
339
|
const [currentPanel, setCurrentPanel] = useState<PanelView>(getInitialView());
|
|
343
340
|
|
|
341
|
+
// Text editing state
|
|
342
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
343
|
+
const canEdit = !!(
|
|
344
|
+
object.content?.source &&
|
|
345
|
+
object.content?.type &&
|
|
346
|
+
!isCreatedOrProcessing &&
|
|
347
|
+
!object.is_locked &&
|
|
348
|
+
object.user_permissions?.can_write !== false &&
|
|
349
|
+
(object.content.type.startsWith('text/') || object.content.type === 'application/json' || object.content.type === 'application/xml')
|
|
350
|
+
);
|
|
351
|
+
|
|
344
352
|
// Use custom hooks for text loading, PDF processing, and Office conversion
|
|
345
353
|
const {
|
|
346
354
|
fullText,
|
|
347
355
|
displayText,
|
|
348
356
|
isLoading: isLoadingText,
|
|
349
357
|
isCropped: isTextCropped,
|
|
358
|
+
loadText: reloadText,
|
|
350
359
|
} = useObjectText(object.id, object.text, loadText);
|
|
351
360
|
|
|
352
361
|
// Poll for PDF/document processing status when object is created or processing
|
|
@@ -387,7 +396,7 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
387
396
|
<Button
|
|
388
397
|
variant={currentPanel === PanelView.Image ? "primary" : "ghost"}
|
|
389
398
|
size="sm"
|
|
390
|
-
alt=
|
|
399
|
+
alt={t('store.viewImage')}
|
|
391
400
|
onClick={() => setCurrentPanel(PanelView.Image)}
|
|
392
401
|
>
|
|
393
402
|
Image
|
|
@@ -397,7 +406,7 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
397
406
|
<Button
|
|
398
407
|
variant={currentPanel === PanelView.Video ? "primary" : "ghost"}
|
|
399
408
|
size="sm"
|
|
400
|
-
alt=
|
|
409
|
+
alt={t('store.viewVideo')}
|
|
401
410
|
onClick={() => setCurrentPanel(PanelView.Video)}
|
|
402
411
|
>
|
|
403
412
|
Video
|
|
@@ -407,7 +416,7 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
407
416
|
<Button
|
|
408
417
|
variant={currentPanel === PanelView.Audio ? "primary" : "ghost"}
|
|
409
418
|
size="sm"
|
|
410
|
-
alt=
|
|
419
|
+
alt={t('store.viewAudio')}
|
|
411
420
|
onClick={() => setCurrentPanel(PanelView.Audio)}
|
|
412
421
|
>
|
|
413
422
|
Audio
|
|
@@ -417,7 +426,7 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
417
426
|
<Button
|
|
418
427
|
variant={currentPanel === PanelView.Transcript ? "primary" : "ghost"}
|
|
419
428
|
size="sm"
|
|
420
|
-
alt=
|
|
429
|
+
alt={t('store.viewTranscript')}
|
|
421
430
|
onClick={() => setCurrentPanel(PanelView.Transcript)}
|
|
422
431
|
>
|
|
423
432
|
Transcript
|
|
@@ -426,7 +435,7 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
426
435
|
<Button
|
|
427
436
|
variant={currentPanel === PanelView.Text ? "primary" : "ghost"}
|
|
428
437
|
size="sm"
|
|
429
|
-
alt=
|
|
438
|
+
alt={t('store.viewText')}
|
|
430
439
|
onClick={() => setCurrentPanel(PanelView.Text)}
|
|
431
440
|
>
|
|
432
441
|
Text
|
|
@@ -435,7 +444,7 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
435
444
|
<Button
|
|
436
445
|
variant={currentPanel === PanelView.Pdf ? "primary" : "ghost"}
|
|
437
446
|
size="sm"
|
|
438
|
-
alt=
|
|
447
|
+
alt={t('store.viewPdf')}
|
|
439
448
|
onClick={() => setCurrentPanel(PanelView.Pdf)}
|
|
440
449
|
>
|
|
441
450
|
PDF
|
|
@@ -445,7 +454,7 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
445
454
|
<Button
|
|
446
455
|
variant={currentPanel === PanelView.Pdf ? "primary" : "ghost"}
|
|
447
456
|
size="sm"
|
|
448
|
-
alt=
|
|
457
|
+
alt={t('store.viewAsPdf')}
|
|
449
458
|
onClick={() => {
|
|
450
459
|
setCurrentPanel(PanelView.Pdf);
|
|
451
460
|
if (!pdfRendition && !officePdfUrl && !officePdfConverting) {
|
|
@@ -460,13 +469,16 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
460
469
|
</div>
|
|
461
470
|
<PdfActions object={object} />
|
|
462
471
|
</div>
|
|
463
|
-
{currentPanel === PanelView.Text && !showProcessingPanel && (
|
|
472
|
+
{currentPanel === PanelView.Text && !showProcessingPanel && !isEditing && (
|
|
464
473
|
<TextActions
|
|
465
474
|
object={object}
|
|
466
475
|
text={displayText}
|
|
467
476
|
fullText={fullText}
|
|
468
477
|
handleCopyContent={handleCopyContent}
|
|
469
478
|
textContainerRef={textContainerRef}
|
|
479
|
+
isEditing={isEditing}
|
|
480
|
+
onToggleEdit={() => setIsEditing(true)}
|
|
481
|
+
canEdit={canEdit}
|
|
470
482
|
/>
|
|
471
483
|
)}
|
|
472
484
|
{currentPanel === PanelView.Pdf && isPreviewableAsPdfDoc && (pdfRendition || officePdfUrl) && (
|
|
@@ -525,6 +537,18 @@ function DataPanel({ object, loadText, handleCopyContent, refetch }: { object: C
|
|
|
525
537
|
textContainerRef={textContainerRef}
|
|
526
538
|
/>
|
|
527
539
|
</div>
|
|
540
|
+
{isEditing && currentPanel === PanelView.Text && fullText != null && (
|
|
541
|
+
<TextEditorPanel
|
|
542
|
+
object={object}
|
|
543
|
+
text={fullText}
|
|
544
|
+
onClose={() => setIsEditing(false)}
|
|
545
|
+
onSaved={() => {
|
|
546
|
+
setIsEditing(false);
|
|
547
|
+
reloadText();
|
|
548
|
+
refetch?.();
|
|
549
|
+
}}
|
|
550
|
+
/>
|
|
551
|
+
)}
|
|
528
552
|
</div>
|
|
529
553
|
);
|
|
530
554
|
}
|
|
@@ -534,9 +558,12 @@ function TextActions({
|
|
|
534
558
|
text,
|
|
535
559
|
fullText,
|
|
536
560
|
handleCopyContent,
|
|
561
|
+
onToggleEdit,
|
|
562
|
+
canEdit,
|
|
537
563
|
}: TextActionsProps) {
|
|
538
564
|
const { client } = useUserSession();
|
|
539
565
|
const toast = useToast();
|
|
566
|
+
const { t } = useUITranslation();
|
|
540
567
|
const content = object.content;
|
|
541
568
|
const { renderDocument, isDownloading } = useDownloadFile({ client, toast });
|
|
542
569
|
|
|
@@ -556,7 +583,7 @@ function TextActions({
|
|
|
556
583
|
toast({
|
|
557
584
|
status: "info",
|
|
558
585
|
title: `Preparing ${format.toUpperCase()}`,
|
|
559
|
-
description:
|
|
586
|
+
description: t('store.renderingDocument'),
|
|
560
587
|
duration: 2000,
|
|
561
588
|
});
|
|
562
589
|
|
|
@@ -608,6 +635,18 @@ function TextActions({
|
|
|
608
635
|
<Button variant="ghost" size="sm" title="Copy text" onClick={() => handleCopyContent(fullText, "text")}>
|
|
609
636
|
<Copy className="size-4" />
|
|
610
637
|
</Button>
|
|
638
|
+
{canEdit && onToggleEdit && (
|
|
639
|
+
<SecureButton
|
|
640
|
+
permission={Permission.content_write}
|
|
641
|
+
variant="ghost"
|
|
642
|
+
size="sm"
|
|
643
|
+
onClick={onToggleEdit}
|
|
644
|
+
title={t('store.editText')}
|
|
645
|
+
className="flex items-center gap-2"
|
|
646
|
+
>
|
|
647
|
+
<SquarePen className="size-4" />
|
|
648
|
+
</SecureButton>
|
|
649
|
+
)}
|
|
611
650
|
<Button variant="ghost" size="sm" title="Download text" onClick={handleDownloadText}>
|
|
612
651
|
<Download className="size-4" />
|
|
613
652
|
</Button>
|
|
@@ -657,6 +696,7 @@ const TextPanel = memo(({
|
|
|
657
696
|
isTextCropped,
|
|
658
697
|
textContainerRef,
|
|
659
698
|
}: TextPanelProps) => {
|
|
699
|
+
const { t } = useUITranslation();
|
|
660
700
|
const content = object.content;
|
|
661
701
|
const isCreatedOrProcessing = isCreatedOrProcessingStatus(object?.status);
|
|
662
702
|
|
|
@@ -680,12 +720,12 @@ const TextPanel = memo(({
|
|
|
680
720
|
<div className="px-2 py-2 bg-attention/10 border-l-4 border-attention mx-2 mb-2 rounded">
|
|
681
721
|
<div className="flex items-center gap-2 text-attention">
|
|
682
722
|
<AlertTriangle className="size-4" />
|
|
683
|
-
<span className="text-sm font-semibold">
|
|
723
|
+
<span className="text-sm font-semibold">{t('store.showingFirst128K')}</span>
|
|
684
724
|
</div>
|
|
685
725
|
</div>
|
|
686
726
|
)}
|
|
687
727
|
<div
|
|
688
|
-
className={`max-w-7xl px-2
|
|
728
|
+
className={`max-w-7xl px-2 h-full overflow-auto`}
|
|
689
729
|
ref={textContainerRef}
|
|
690
730
|
>
|
|
691
731
|
{isXml ? (
|
|
@@ -771,6 +811,7 @@ function ImagePanel({ object }: { object: ContentObject }) {
|
|
|
771
811
|
}
|
|
772
812
|
|
|
773
813
|
function VideoPanel({ object }: { object: ContentObject }) {
|
|
814
|
+
const { t } = useUITranslation();
|
|
774
815
|
const { client } = useUserSession();
|
|
775
816
|
const [videoUrl, setVideoUrl] = useState<string>();
|
|
776
817
|
const [posterUrl, setPosterUrl] = useState<string>();
|
|
@@ -842,12 +883,12 @@ function VideoPanel({ object }: { object: ContentObject }) {
|
|
|
842
883
|
}, [isVideo, webRendition, isOriginalWebSupported, content?.source, client]);
|
|
843
884
|
|
|
844
885
|
return (
|
|
845
|
-
<div className="mb-4 px-2">
|
|
886
|
+
<div className="mb-4 px-2 w-full h-full">
|
|
846
887
|
{!webRendition && !isOriginalWebSupported ? (
|
|
847
888
|
<div className="flex justify-center items-center h-[400px] text-muted">
|
|
848
889
|
<div className="text-center">
|
|
849
|
-
<p>
|
|
850
|
-
<p className="text-sm mt-2">
|
|
890
|
+
<p>{t('store.noVideoRendition')}</p>
|
|
891
|
+
<p className="text-sm mt-2">{t('store.videoFormatRequired')}</p>
|
|
851
892
|
</div>
|
|
852
893
|
</div>
|
|
853
894
|
) : isLoading ? (
|
|
@@ -859,7 +900,7 @@ function VideoPanel({ object }: { object: ContentObject }) {
|
|
|
859
900
|
src={videoUrl}
|
|
860
901
|
poster={posterUrl}
|
|
861
902
|
controls
|
|
862
|
-
className={`w-full
|
|
903
|
+
className={`w-full h-full object-contain`}
|
|
863
904
|
>
|
|
864
905
|
Your browser does not support the video tag.
|
|
865
906
|
</video>
|
|
@@ -873,6 +914,7 @@ function VideoPanel({ object }: { object: ContentObject }) {
|
|
|
873
914
|
}
|
|
874
915
|
|
|
875
916
|
function AudioPanel({ object }: { object: ContentObject }) {
|
|
917
|
+
const { t } = useUITranslation();
|
|
876
918
|
const { client } = useUserSession();
|
|
877
919
|
const [audioUrl, setAudioUrl] = useState<string>();
|
|
878
920
|
const [isLoading, setIsLoading] = useState<boolean>(true);
|
|
@@ -928,8 +970,8 @@ function AudioPanel({ object }: { object: ContentObject }) {
|
|
|
928
970
|
{!audioRendition && !isOriginalWebSupported ? (
|
|
929
971
|
<div className="flex justify-center items-center h-[200px] text-muted">
|
|
930
972
|
<div className="text-center">
|
|
931
|
-
<p>
|
|
932
|
-
<p className="text-sm mt-2">
|
|
973
|
+
<p>{t('store.noAudioRendition')}</p>
|
|
974
|
+
<p className="text-sm mt-2">{t('store.audioFormatRequired')}</p>
|
|
933
975
|
</div>
|
|
934
976
|
</div>
|
|
935
977
|
) : isLoading ? (
|
|
@@ -972,6 +1014,7 @@ function formatDuration(seconds: number): string {
|
|
|
972
1014
|
}
|
|
973
1015
|
|
|
974
1016
|
function TranscriptPanel({ object, handleCopyContent }: { object: ContentObject, handleCopyContent: (content: string, type: "text" | "properties") => Promise<void> }) {
|
|
1017
|
+
const { t } = useUITranslation();
|
|
975
1018
|
const transcript = object.transcript;
|
|
976
1019
|
const transcriptText = transcript?.text;
|
|
977
1020
|
const segments = transcript?.segments;
|
|
@@ -1004,7 +1047,7 @@ function TranscriptPanel({ object, handleCopyContent }: { object: ContentObject,
|
|
|
1004
1047
|
</Button>
|
|
1005
1048
|
)}
|
|
1006
1049
|
</div>
|
|
1007
|
-
<div className={
|
|
1050
|
+
<div className={`h-full} overflow-auto px-2`}>
|
|
1008
1051
|
{segments && segments.length > 0 ? (
|
|
1009
1052
|
<div className="space-y-2">
|
|
1010
1053
|
{segments.map((segment, idx) => (
|
|
@@ -1022,7 +1065,7 @@ function TranscriptPanel({ object, handleCopyContent }: { object: ContentObject,
|
|
|
1022
1065
|
{transcriptText}
|
|
1023
1066
|
</pre>
|
|
1024
1067
|
) : (
|
|
1025
|
-
<div className="text-muted">
|
|
1068
|
+
<div className="text-muted">{t('store.noTranscriptAvailable')}</div>
|
|
1026
1069
|
)}
|
|
1027
1070
|
</div>
|
|
1028
1071
|
</div>
|
|
@@ -1064,6 +1107,7 @@ function OfficePdfActions({
|
|
|
1064
1107
|
}: OfficePdfActionsProps) {
|
|
1065
1108
|
const { client } = useUserSession();
|
|
1066
1109
|
const toast = useToast();
|
|
1110
|
+
const { t } = useUITranslation();
|
|
1067
1111
|
const [isDownloading, setIsDownloading] = useState(false);
|
|
1068
1112
|
|
|
1069
1113
|
const handleDownloadPdf = async () => {
|
|
@@ -1089,8 +1133,8 @@ function OfficePdfActions({
|
|
|
1089
1133
|
console.error('Failed to download PDF:', err);
|
|
1090
1134
|
toast({
|
|
1091
1135
|
status: 'error',
|
|
1092
|
-
title: '
|
|
1093
|
-
description: '
|
|
1136
|
+
title: t('store.downloadFailed'),
|
|
1137
|
+
description: t('store.failedToDownloadPdf'),
|
|
1094
1138
|
duration: 5000,
|
|
1095
1139
|
});
|
|
1096
1140
|
} finally {
|
|
@@ -1115,7 +1159,7 @@ function OfficePdfActions({
|
|
|
1115
1159
|
|
|
1116
1160
|
function PdfPreviewPanel({ object }: { object: ContentObject }) {
|
|
1117
1161
|
return (
|
|
1118
|
-
<div className=
|
|
1162
|
+
<div className='h-full'>
|
|
1119
1163
|
<SimplePdfViewer
|
|
1120
1164
|
object={object}
|
|
1121
1165
|
className="h-full"
|
|
@@ -1135,11 +1179,12 @@ function OfficePdfPreviewPanel({
|
|
|
1135
1179
|
officePdfError,
|
|
1136
1180
|
onConvert,
|
|
1137
1181
|
}: OfficePdfPreviewPanelProps) {
|
|
1182
|
+
const { t } = useUITranslation();
|
|
1138
1183
|
if (officePdfConverting) {
|
|
1139
1184
|
return (
|
|
1140
1185
|
<div className="flex flex-col justify-center items-center flex-1 gap-2">
|
|
1141
1186
|
<Spinner size="lg" />
|
|
1142
|
-
<span className="text-muted">
|
|
1187
|
+
<span className="text-muted">{t('store.convertingToPdf')}</span>
|
|
1143
1188
|
</div>
|
|
1144
1189
|
);
|
|
1145
1190
|
}
|
|
@@ -1155,7 +1200,7 @@ function OfficePdfPreviewPanel({
|
|
|
1155
1200
|
|
|
1156
1201
|
if (pdfRendition?.content?.source) {
|
|
1157
1202
|
return (
|
|
1158
|
-
<div className=
|
|
1203
|
+
<div className='h-full'>
|
|
1159
1204
|
<SimplePdfViewer source={pdfRendition.content.source} className="h-full" />
|
|
1160
1205
|
</div>
|
|
1161
1206
|
);
|
|
@@ -1163,7 +1208,7 @@ function OfficePdfPreviewPanel({
|
|
|
1163
1208
|
|
|
1164
1209
|
if (officePdfUrl) {
|
|
1165
1210
|
return (
|
|
1166
|
-
<div className=
|
|
1211
|
+
<div className='h-full'>
|
|
1167
1212
|
<SimplePdfViewer url={officePdfUrl} className="h-full" />
|
|
1168
1213
|
</div>
|
|
1169
1214
|
);
|
|
@@ -1179,6 +1224,7 @@ function OfficePdfPreviewPanel({
|
|
|
1179
1224
|
}
|
|
1180
1225
|
|
|
1181
1226
|
function PdfProcessingPanel({ progress, status, outputFormat }: { progress?: DocAnalyzerProgress, status?: WorkflowExecutionStatus, outputFormat?: DocProcessorOutputFormat }) {
|
|
1227
|
+
const { t } = useUITranslation();
|
|
1182
1228
|
const statusColor = getWorkflowStatusColor(status);
|
|
1183
1229
|
const statusName = getWorkflowStatusName(status);
|
|
1184
1230
|
|
|
@@ -1219,7 +1265,7 @@ function PdfProcessingPanel({ progress, status, outputFormat }: { progress?: Doc
|
|
|
1219
1265
|
{!progress && (
|
|
1220
1266
|
<div className="flex items-center gap-2 text-muted">
|
|
1221
1267
|
<Spinner size="sm" />
|
|
1222
|
-
<span>
|
|
1268
|
+
<span>{t('store.loadingProcessingStatus')}</span>
|
|
1223
1269
|
</div>
|
|
1224
1270
|
)}
|
|
1225
1271
|
</div>
|
|
@@ -6,13 +6,14 @@ import { ContentObjectItem } from '@vertesia/common'
|
|
|
6
6
|
import { Button, Card, CardContent, Separator, VTooltip } from "@vertesia/ui/core"
|
|
7
7
|
import { useUserSession } from "@vertesia/ui/session"
|
|
8
8
|
import { DocumentSelection } from '../DocumentSelectionProvider'
|
|
9
|
-
import { Eye } from 'lucide-react'
|
|
9
|
+
import { CheckIcon, Eye } from 'lucide-react'
|
|
10
10
|
|
|
11
11
|
interface DocumentIconProps {
|
|
12
12
|
document: ContentObjectItem
|
|
13
13
|
onSelectionChange: ((object: ContentObjectItem, ev: ChangeEvent<HTMLInputElement>) => void);
|
|
14
14
|
selection: DocumentSelection;
|
|
15
15
|
onRowClick?: (object: ContentObjectItem) => void;
|
|
16
|
+
highlightRow?: (item: ContentObjectItem) => boolean;
|
|
16
17
|
previewObject?: (objectId: string) => void;
|
|
17
18
|
selectedObject?: ContentObjectItem | null;
|
|
18
19
|
}
|
|
@@ -46,7 +47,7 @@ export function DocumentIconSkeleton({ isLoading = false, counts = 6 }: { isLoad
|
|
|
46
47
|
)
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
export function DocumentIcon({ selection, document, onSelectionChange, onRowClick, previewObject, selectedObject }: Readonly<DocumentIconProps>) {
|
|
50
|
+
export function DocumentIcon({ selection, document, onSelectionChange, onRowClick, highlightRow, previewObject, selectedObject }: Readonly<DocumentIconProps>) {
|
|
50
51
|
const { client } = useUserSession()
|
|
51
52
|
|
|
52
53
|
const [renditionUrl, setRenditionUrl] = useState<string | undefined>(undefined)
|
|
@@ -67,8 +68,15 @@ export function DocumentIcon({ selection, document, onSelectionChange, onRowClic
|
|
|
67
68
|
retrieveRendition(client, document, setRenditionUrl, setRenditionAlt, setRenditionStatus)
|
|
68
69
|
}, [document])
|
|
69
70
|
|
|
71
|
+
const isHighlighted = highlightRow?.(document);
|
|
72
|
+
|
|
70
73
|
return (
|
|
71
|
-
<Card className={`relative flex flex-col border h-fit w-full ${selectedObject?.id === document.id ? 'border-attention border-4' : ''}`} onClick={() => (onRowClick && onRowClick(document))}>
|
|
74
|
+
<Card className={`relative flex flex-col border h-fit w-full ${selectedObject?.id === document.id ? 'border-attention border-4' : ''} ${isHighlighted ? 'border-blue-400 dark:border-blue-500 bg-blue-50/50 dark:bg-blue-900/20' : ''}`} onClick={() => (onRowClick && onRowClick(document))}>
|
|
75
|
+
{isHighlighted && (
|
|
76
|
+
<div className="absolute top-2 right-8 z-10">
|
|
77
|
+
<CheckIcon className="size-4 text-blue-600 dark:text-blue-400" />
|
|
78
|
+
</div>
|
|
79
|
+
)}
|
|
72
80
|
{
|
|
73
81
|
selection && (
|
|
74
82
|
<div
|