@vertesia/ui 1.0.0 → 1.1.0-dev.20260427.060440Z
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/ComboBox.js +23 -24
- package/lib/esm/core/components/ComboBox.js.map +1 -1
- package/lib/esm/core/components/FormItem.js +2 -2
- package/lib/esm/core/components/FormItem.js.map +1 -1
- package/lib/esm/core/components/SidePanel.js +1 -1
- package/lib/esm/core/components/SidePanel.js.map +1 -1
- package/lib/esm/core/components/shadcn/collaspible.js +3 -4
- package/lib/esm/core/components/shadcn/collaspible.js.map +1 -1
- package/lib/esm/core/components/shadcn/dropdown.js +37 -12
- package/lib/esm/core/components/shadcn/dropdown.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +6 -6
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filterBar.js +5 -3
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
- package/lib/esm/core/components/shadcn/radioGroup.js +1 -2
- package/lib/esm/core/components/shadcn/radioGroup.js.map +1 -1
- package/lib/esm/core/components/shadcn/switch.js +0 -1
- package/lib/esm/core/components/shadcn/switch.js.map +1 -1
- package/lib/esm/core/components/shadcn/tabs.js +2 -2
- package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
- package/lib/esm/core/components/shadcn/tooltip.js +17 -1
- package/lib/esm/core/components/shadcn/tooltip.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 +5 -8
- package/lib/esm/env/index.js.map +1 -1
- package/lib/esm/features/agent/chat/AgentRightPanel.js +21 -11
- package/lib/esm/features/agent/chat/AgentRightPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/AskUserWidget.js +2 -6
- package/lib/esm/features/agent/chat/AskUserWidget.js.map +1 -1
- package/lib/esm/features/agent/chat/DocumentPanel.js +8 -5
- package/lib/esm/features/agent/chat/DocumentPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/DocumentTabBar.js +5 -13
- package/lib/esm/features/agent/chat/DocumentTabBar.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +57 -26
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +20 -16
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +56 -45
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +3 -9
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +1 -1
- package/lib/esm/features/agent/chat/hooks/useAgentStream.js +9 -5
- package/lib/esm/features/agent/chat/hooks/useAgentStream.js.map +1 -1
- package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js +4 -0
- package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js.map +1 -1
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js +1 -1
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/DocumentsFacetsNav.js +3 -2
- package/lib/esm/features/facets/DocumentsFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/RunsFacetsNav.js +8 -1
- package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js +1 -1
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/index.js +1 -0
- package/lib/esm/features/facets/index.js.map +1 -1
- package/lib/esm/features/facets/utils/VInteractionFacet.js +5 -5
- package/lib/esm/features/facets/utils/VInteractionFacet.js.map +1 -1
- package/lib/esm/features/index.js +1 -0
- package/lib/esm/features/index.js.map +1 -1
- package/lib/esm/features/oauth/OAuthProviderConnectButton.js +85 -0
- package/lib/esm/features/oauth/OAuthProviderConnectButton.js.map +1 -0
- package/lib/esm/features/oauth/RemoteMcpConnectionButton.js +119 -0
- package/lib/esm/features/oauth/RemoteMcpConnectionButton.js.map +1 -0
- package/lib/esm/features/oauth/index.js +4 -0
- package/lib/esm/features/oauth/index.js.map +1 -0
- package/lib/esm/features/oauth/useOAuthPopup.js +89 -0
- package/lib/esm/features/oauth/useOAuthPopup.js.map +1 -0
- package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +9 -2
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
- package/lib/esm/features/store/objects/components/ContentOverview.js +19 -7
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js +35 -15
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +1 -1
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +3 -3
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -1
- package/lib/esm/features/store/objects/selection/SelectionActions.js +4 -3
- package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +11 -3
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +1 -5
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/esm/features/user/UserInfo.js +33 -10
- package/lib/esm/features/user/UserInfo.js.map +1 -1
- package/lib/esm/i18n/locales/ar.json +81 -98
- package/lib/esm/i18n/locales/de.json +44 -73
- package/lib/esm/i18n/locales/en.json +31 -61
- package/lib/esm/i18n/locales/es.json +55 -79
- package/lib/esm/i18n/locales/fr.json +55 -81
- package/lib/esm/i18n/locales/it.json +55 -79
- package/lib/esm/i18n/locales/ja.json +46 -75
- package/lib/esm/i18n/locales/ko.json +44 -73
- package/lib/esm/i18n/locales/pt.json +55 -79
- package/lib/esm/i18n/locales/ru.json +58 -81
- package/lib/esm/i18n/locales/tr.json +46 -75
- package/lib/esm/i18n/locales/zh-TW.json +46 -75
- package/lib/esm/i18n/locales/zh.json +46 -75
- package/lib/esm/session/UserSession.js +2 -4
- package/lib/esm/session/UserSession.js.map +1 -1
- package/lib/esm/session/UserSessionProvider.js +22 -17
- package/lib/esm/session/UserSessionProvider.js.map +1 -1
- package/lib/esm/session/auth/composable.js +20 -2
- package/lib/esm/session/auth/composable.js.map +1 -1
- package/lib/esm/session/auth/domainRouting.js +7 -0
- package/lib/esm/session/auth/domainRouting.js.map +1 -0
- package/lib/esm/shell/login/InviteAcceptModal.js +1 -0
- package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -1
- package/lib/esm/widgets/form/Form.js +2 -2
- package/lib/esm/widgets/form/Form.js.map +1 -1
- package/lib/esm/widgets/markdown/MarkdownRenderer.js +2 -1
- package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +1 -1
- package/lib/esm/widgets/markdown/preprocessMathDelimiters.js +226 -0
- package/lib/esm/widgets/markdown/preprocessMathDelimiters.js.map +1 -0
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js +40 -5
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js.map +1 -1
- package/lib/esm/widgets/monacoEditor/foldingProviders.js +132 -0
- package/lib/esm/widgets/monacoEditor/foldingProviders.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/ComboBox.d.ts +12 -2
- package/lib/types/core/components/ComboBox.d.ts.map +1 -1
- package/lib/types/core/components/FormItem.d.ts +5 -2
- package/lib/types/core/components/FormItem.d.ts.map +1 -1
- package/lib/types/core/components/SidePanel.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/badge.d.ts +2 -2
- package/lib/types/core/components/shadcn/collaspible.d.ts +3 -3
- package/lib/types/core/components/shadcn/collaspible.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/dropdown.d.ts +11 -3
- package/lib/types/core/components/shadcn/dropdown.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts +2 -1
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/input.d.ts +1 -1
- package/lib/types/core/components/shadcn/radioGroup.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/switch.d.ts.map +1 -1
- 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/text.d.ts +1 -1
- package/lib/types/core/components/shadcn/tooltip.d.ts +1 -1
- package/lib/types/core/components/shadcn/tooltip.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 +2 -2
- package/lib/types/env/index.d.ts.map +1 -1
- package/lib/types/features/agent/chat/AgentChart.d.ts +1 -1
- package/lib/types/features/agent/chat/AgentChart.d.ts.map +1 -1
- package/lib/types/features/agent/chat/AgentRightPanel.d.ts +7 -2
- package/lib/types/features/agent/chat/AgentRightPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/DocumentPanel.d.ts +2 -2
- package/lib/types/features/agent/chat/DocumentPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/DocumentTabBar.d.ts +1 -2
- package/lib/types/features/agent/chat/DocumentTabBar.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +5 -3
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +4 -2
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +4 -4
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
- package/lib/types/features/agent/chat/VegaLiteChart.d.ts +1 -1
- package/lib/types/features/agent/chat/VegaLiteChart.d.ts.map +1 -1
- package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts +4 -2
- package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
- package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts +1 -0
- package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -1
- package/lib/types/features/facets/DocumentsFacetsNav.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 -0
- package/lib/types/features/facets/index.d.ts.map +1 -1
- package/lib/types/features/index.d.ts +1 -0
- package/lib/types/features/index.d.ts.map +1 -1
- package/lib/types/features/oauth/OAuthProviderConnectButton.d.ts +11 -0
- package/lib/types/features/oauth/OAuthProviderConnectButton.d.ts.map +1 -0
- package/lib/types/features/oauth/RemoteMcpConnectionButton.d.ts +25 -0
- package/lib/types/features/oauth/RemoteMcpConnectionButton.d.ts.map +1 -0
- package/lib/types/features/oauth/index.d.ts +4 -0
- package/lib/types/features/oauth/index.d.ts.map +1 -0
- package/lib/types/features/oauth/useOAuthPopup.d.ts +12 -0
- package/lib/types/features/oauth/useOAuthPopup.d.ts.map +1 -0
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +3 -3
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +2 -1
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts +3 -3
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -1
- package/lib/types/features/user/UserInfo.d.ts +2 -1
- package/lib/types/features/user/UserInfo.d.ts.map +1 -1
- 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/composable.d.ts +4 -0
- package/lib/types/session/auth/composable.d.ts.map +1 -1
- package/lib/types/session/auth/domainRouting.d.ts +8 -0
- package/lib/types/session/auth/domainRouting.d.ts.map +1 -0
- package/lib/types/shell/login/InviteAcceptModal.d.ts.map +1 -1
- package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
- package/lib/types/widgets/markdown/preprocessMathDelimiters.d.ts +24 -0
- package/lib/types/widgets/markdown/preprocessMathDelimiters.d.ts.map +1 -0
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts +2 -1
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -1
- package/lib/types/widgets/monacoEditor/foldingProviders.d.ts +2 -0
- package/lib/types/widgets/monacoEditor/foldingProviders.d.ts.map +1 -0
- 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 +1 -1
- package/lib/vertesia-ui-i18n.js.map +1 -1
- package/lib/vertesia-ui-layout.js +1 -1
- package/lib/vertesia-ui-layout.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/package.json +15 -15
- package/src/core/components/ComboBox.tsx +66 -29
- package/src/core/components/FormItem.tsx +9 -6
- package/src/core/components/SidePanel.tsx +5 -3
- package/src/core/components/shadcn/collaspible.tsx +5 -7
- package/src/core/components/shadcn/dropdown.tsx +68 -13
- package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +6 -6
- package/src/core/components/shadcn/filters/filterBar.tsx +5 -3
- package/src/core/components/shadcn/radioGroup.tsx +1 -3
- package/src/core/components/shadcn/switch.tsx +0 -2
- package/src/core/components/shadcn/tabs.tsx +15 -2
- package/src/core/components/shadcn/tooltip.tsx +20 -3
- package/src/core/hooks/PortalContainerProvider.tsx +11 -3
- package/src/env/index.ts +7 -10
- package/src/features/agent/chat/AgentRightPanel.tsx +43 -23
- package/src/features/agent/chat/DocumentPanel.tsx +21 -19
- package/src/features/agent/chat/DocumentTabBar.tsx +21 -32
- package/src/features/agent/chat/ModernAgentConversation.tsx +72 -27
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +21 -9
- package/src/features/agent/chat/ModernAgentOutput/Header.tsx +136 -115
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +0 -3
- package/src/features/agent/chat/hooks/useAgentStream.ts +13 -7
- package/src/features/agent/chat/hooks/useDocumentPanel.ts +8 -0
- package/src/features/facets/AgentRunnerFacetsNav.tsx +1 -1
- package/src/features/facets/DocumentsFacetsNav.tsx +3 -1
- package/src/features/facets/RunsFacetsNav.tsx +9 -1
- package/src/features/facets/WorkflowExecutionsFacetsNav.tsx +1 -1
- package/src/features/facets/index.ts +1 -0
- package/src/features/facets/utils/VInteractionFacet.tsx +12 -12
- package/src/features/index.ts +1 -0
- package/src/features/oauth/OAuthProviderConnectButton.tsx +125 -0
- package/src/features/oauth/RemoteMcpConnectionButton.tsx +274 -0
- package/src/features/oauth/index.ts +3 -0
- package/src/features/oauth/useOAuthPopup.ts +125 -0
- package/src/features/store/collections/BrowseCollectionView.tsx +3 -3
- package/src/features/store/collections/EditCollectionView.tsx +10 -1
- package/src/features/store/objects/components/ContentOverview.tsx +108 -87
- package/src/features/store/objects/components/useContentPanelHooks.ts +50 -15
- package/src/features/store/objects/selection/ObjectsActionContext.tsx +5 -5
- package/src/features/store/objects/selection/ObjectsActionSpec.ts +2 -1
- package/src/features/store/objects/selection/SelectionActions.tsx +6 -5
- package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +12 -3
- package/src/features/user/UserInfo.tsx +82 -10
- package/src/i18n/locales/ar.json +81 -98
- package/src/i18n/locales/de.json +44 -73
- package/src/i18n/locales/en.json +31 -61
- package/src/i18n/locales/es.json +55 -79
- package/src/i18n/locales/fr.json +55 -81
- package/src/i18n/locales/it.json +55 -79
- package/src/i18n/locales/ja.json +46 -75
- package/src/i18n/locales/ko.json +44 -73
- package/src/i18n/locales/pt.json +55 -79
- package/src/i18n/locales/ru.json +58 -81
- package/src/i18n/locales/tr.json +46 -75
- package/src/i18n/locales/zh-TW.json +46 -75
- package/src/i18n/locales/zh.json +46 -75
- package/src/session/UserSession.ts +2 -5
- package/src/session/UserSessionProvider.tsx +23 -18
- package/src/session/auth/auth-flow.md +1 -1
- package/src/session/auth/composable.ts +21 -2
- package/src/session/auth/domainRouting.test.ts +26 -0
- package/src/session/auth/domainRouting.ts +13 -0
- package/src/shell/login/InviteAcceptModal.tsx +1 -0
- package/src/widgets/form/Form.tsx +2 -2
- package/src/widgets/markdown/MarkdownRenderer.tsx +2 -1
- package/src/widgets/markdown/markdown.css +12 -0
- package/src/widgets/markdown/preprocessMathDelimiters.test.ts +87 -0
- package/src/widgets/markdown/preprocessMathDelimiters.ts +229 -0
- package/src/widgets/monacoEditor/MonacoEditor.tsx +47 -4
- package/src/widgets/monacoEditor/foldingProviders.ts +122 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiKey, PrincipalType, User, UserGroup } from "@vertesia/common";
|
|
2
2
|
import { Avatar, Popover, PopoverContent, PopoverTrigger, Table, useFetch } from "@vertesia/ui/core";
|
|
3
3
|
import { useUserSession } from "@vertesia/ui/session";
|
|
4
|
-
import { Users } from "lucide-react";
|
|
4
|
+
import { Users, Users2 } from "lucide-react";
|
|
5
5
|
import { ReactNode } from "react";
|
|
6
6
|
import { useUITranslation } from '../../i18n/index.js';
|
|
7
7
|
|
|
@@ -72,15 +72,30 @@ function SystemAvatar({ showTitle = false, size = "md" }: InfoProps) {
|
|
|
72
72
|
</UserPopoverPanel>
|
|
73
73
|
)
|
|
74
74
|
}
|
|
75
|
+
|
|
76
|
+
function ProjectMembersAvatar({ showTitle = false, size = "md" }: InfoProps) {
|
|
77
|
+
const { t } = useUITranslation();
|
|
78
|
+
return (
|
|
79
|
+
<UserPopoverPanel title={t('user.allProjectMembers')} description={t('user.allProjectMembersDescription')}>
|
|
80
|
+
<div className="flex gap-2 items-center">
|
|
81
|
+
<Users2 className="size-4" size={size} />
|
|
82
|
+
{showTitle && <div className="text-sm font-semibold pl-2">{t('user.allProjectMembers')}</div>}
|
|
83
|
+
</div>
|
|
84
|
+
</UserPopoverPanel>
|
|
85
|
+
)
|
|
86
|
+
}
|
|
75
87
|
interface ServiceInfoProps extends InfoProps {
|
|
76
88
|
accountId: string;
|
|
77
89
|
}
|
|
78
90
|
function ServiceAccountAvatar({ accountId, showTitle = false, size = "md" }: ServiceInfoProps) {
|
|
79
91
|
const { t } = useUITranslation();
|
|
92
|
+
const _type = accountId.split(':')[0];
|
|
93
|
+
const _accountId = accountId.split(':')[1];
|
|
80
94
|
const description = (
|
|
81
95
|
<>
|
|
82
96
|
<div>{t('user.serviceAccountDescription')}</div>
|
|
83
|
-
<div className="text-
|
|
97
|
+
<div className="text-muted text-sm"><span className="font-semibold">Type:</span> {_type}</div>
|
|
98
|
+
<div className="text-muted text-sm"><span className="font-semibold">ID:</span> {_accountId}</div>
|
|
84
99
|
</>
|
|
85
100
|
)
|
|
86
101
|
|
|
@@ -88,7 +103,46 @@ function ServiceAccountAvatar({ accountId, showTitle = false, size = "md" }: Ser
|
|
|
88
103
|
<UserPopoverPanel title={t('user.serviceAccount')} description={description}>
|
|
89
104
|
<div className="flex flex-row items-center gap-2">
|
|
90
105
|
<Avatar src="/cloud.svg" name="SA" color="bg-amber-500" className="px-[5px] text-white" size={size} />
|
|
91
|
-
{showTitle && <div className="text-sm font-semibold pl-2 truncate">{t('user.serviceAccount')} : {
|
|
106
|
+
{showTitle && <div className="text-sm font-semibold pl-2 truncate">{t('user.serviceAccount')} : ~{_accountId.slice(-6)}</div>}
|
|
107
|
+
</div>
|
|
108
|
+
</UserPopoverPanel>
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
interface EmailAgentAvatarProps extends InfoProps {
|
|
114
|
+
email: string;
|
|
115
|
+
}
|
|
116
|
+
function EmailAgentAvatar({ email, showTitle = false, size = "md" }: EmailAgentAvatarProps) {
|
|
117
|
+
const { t } = useUITranslation();
|
|
118
|
+
|
|
119
|
+
const description = (
|
|
120
|
+
<>
|
|
121
|
+
<div>{t('user.serviceAccountDescription')}</div>
|
|
122
|
+
<div className="text-muted text-sm"><span className="font-semibold">Email:</span> {email}</div>
|
|
123
|
+
</>
|
|
124
|
+
)
|
|
125
|
+
return (
|
|
126
|
+
<UserPopoverPanel title={'Email Agent'} description={description}>
|
|
127
|
+
<div className="flex items-center gap-2">
|
|
128
|
+
<div className="flex items-center -space-x-2">
|
|
129
|
+
<Avatar
|
|
130
|
+
src="/cloud.svg"
|
|
131
|
+
color="bg-amber-500"
|
|
132
|
+
className="px-[5px] text-white border-2 border-white dark:border-gray-800"
|
|
133
|
+
size={size}
|
|
134
|
+
/>
|
|
135
|
+
<Avatar
|
|
136
|
+
name={email}
|
|
137
|
+
size={size}
|
|
138
|
+
className="border-2 border-white dark:border-gray-800"
|
|
139
|
+
/>
|
|
140
|
+
</div>
|
|
141
|
+
{showTitle && (
|
|
142
|
+
<div className="text-sm font-semibold truncate">
|
|
143
|
+
{t('user.agentOnBehalfOf')} : {email}
|
|
144
|
+
</div>
|
|
145
|
+
)}
|
|
92
146
|
</div>
|
|
93
147
|
</UserPopoverPanel>
|
|
94
148
|
);
|
|
@@ -114,7 +168,8 @@ function AgentAvatar({ agentId, onBehalfOfType, onBehalfOfId, showTitle = false,
|
|
|
114
168
|
const apiKey = shouldFetchApiKey ? apiKeyResult.data : undefined;
|
|
115
169
|
|
|
116
170
|
// Determine title and description
|
|
117
|
-
const
|
|
171
|
+
const shortenedAgentId = agentId.slice(-6);
|
|
172
|
+
const title = user ? t('user.agentOnBehalfOf') : apiKey ? t('user.agentOnBehalfOfApiKey') : t('user.serviceAccount') + `~${shortenedAgentId}`;
|
|
118
173
|
const _title = isScheduleAgent ? t('user.schedule', { title }) : title;
|
|
119
174
|
|
|
120
175
|
const description = (
|
|
@@ -125,7 +180,7 @@ function AgentAvatar({ agentId, onBehalfOfType, onBehalfOfId, showTitle = false,
|
|
|
125
180
|
<Avatar src={user.picture} name={user.name} size="sm" />
|
|
126
181
|
<div>
|
|
127
182
|
<div className="font-medium">{user.name || user.email}</div>
|
|
128
|
-
{user.email && user.name && <div className="text-xs text-muted
|
|
183
|
+
{user.email && user.name && <div className="text-xs text-muted">{user.email}</div>}
|
|
129
184
|
</div>
|
|
130
185
|
</div>
|
|
131
186
|
</>
|
|
@@ -178,7 +233,7 @@ function AgentAvatar({ agentId, onBehalfOfType, onBehalfOfId, showTitle = false,
|
|
|
178
233
|
</div>
|
|
179
234
|
{showTitle && (
|
|
180
235
|
<div className="text-sm font-semibold truncate">
|
|
181
|
-
{user ? `Agent
|
|
236
|
+
{user ? `Agent (${user.name || user.email})` : apiKey ? `Agent (${apiKey.name})` : title}
|
|
182
237
|
</div>
|
|
183
238
|
)}
|
|
184
239
|
</div>
|
|
@@ -206,6 +261,7 @@ interface UserInfoProps extends InfoProps {
|
|
|
206
261
|
* @example user:123
|
|
207
262
|
* @example service_account:123
|
|
208
263
|
* @example apikey:123
|
|
264
|
+
* @example project:* (all project members — synthetic principal used in ACLs)
|
|
209
265
|
*/
|
|
210
266
|
userRef: string | undefined;
|
|
211
267
|
}
|
|
@@ -266,10 +322,11 @@ export function UserInfo({ userRef, showTitle = false, size = "md" }: UserInfoPr
|
|
|
266
322
|
}
|
|
267
323
|
|
|
268
324
|
case PrincipalType.Schedule: {
|
|
269
|
-
// format: schedule:
|
|
270
|
-
|
|
271
|
-
const
|
|
272
|
-
const
|
|
325
|
+
// format: schedule:{scheduleID}:agent:{accountID}:{projectID}:{agentID}:user:{userId}
|
|
326
|
+
|
|
327
|
+
const agentId = parts[2] === 'agent' ? parts.slice(3, 6).join(':') : 'unknown-agent';
|
|
328
|
+
const onBehalfOfType = parts[6]; // e.g. "user"
|
|
329
|
+
const onBehalfOfId = parts[7]; // e.g. userId
|
|
273
330
|
|
|
274
331
|
return <AgentAvatar
|
|
275
332
|
agentId={agentId}
|
|
@@ -281,9 +338,24 @@ export function UserInfo({ userRef, showTitle = false, size = "md" }: UserInfoPr
|
|
|
281
338
|
/>
|
|
282
339
|
}
|
|
283
340
|
|
|
341
|
+
case "email": {
|
|
342
|
+
// format: email:userEmail
|
|
343
|
+
return <EmailAgentAvatar email={parts[1]} showTitle={showTitle} size={size} />
|
|
344
|
+
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
|
|
284
348
|
case PrincipalType.ApiKey:
|
|
285
349
|
return <ApiKeyAvatar keyId={parts[1]} size={size} showTitle={showTitle} />
|
|
286
350
|
|
|
351
|
+
case "project":
|
|
352
|
+
// Only the wildcard "project:*" is a valid synthetic principal (all project members).
|
|
353
|
+
// Any other project:<...> shape falls through to the error default.
|
|
354
|
+
if (parts[1] === "*") {
|
|
355
|
+
return <ProjectMembersAvatar showTitle={showTitle} size={size} />
|
|
356
|
+
}
|
|
357
|
+
break;
|
|
358
|
+
|
|
287
359
|
default:
|
|
288
360
|
return <ErrorAvatar title={t('user.unknownUser')} error={`Invalid user ref type: ${type}`} showTitle={showTitle} size={size} />
|
|
289
361
|
}
|
package/src/i18n/locales/ar.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"agent.
|
|
2
|
+
"agent.activeWorkstreams_zero": "لا يوجد لدى الوكيل مسارات عمل نشطة",
|
|
3
|
+
"agent.activeWorkstreams_one": "لدى الوكيل مسار عمل نشط واحد قيد التشغيل",
|
|
4
|
+
"agent.activeWorkstreams_two": "لدى الوكيل مساران نشطان قيد التشغيل",
|
|
3
5
|
"agent.activeWorkstreams_few": "لدى الوكيل {{count}} مسارات عمل نشطة قيد التشغيل",
|
|
4
6
|
"agent.activeWorkstreams_many": "لدى الوكيل {{count}} مسار عمل نشط قيد التشغيل",
|
|
5
|
-
"agent.activeWorkstreams_one": "لدى الوكيل مسار عمل نشط واحد قيد التشغيل",
|
|
6
7
|
"agent.activeWorkstreams_other": "لدى الوكيل {{count}} مسار عمل نشط قيد التشغيل",
|
|
7
|
-
"agent.activeWorkstreams_two": "لدى الوكيل مساران نشطان قيد التشغيل",
|
|
8
|
-
"agent.activeWorkstreams_zero": "لا يوجد لدى الوكيل مسارات عمل نشطة",
|
|
9
8
|
"agent.agentConversation": "محادثة الوكيل",
|
|
10
9
|
"agent.agentInterrupted": "تم إيقاف الوكيل",
|
|
11
10
|
"agent.agentPlan": "خطة الوكيل",
|
|
12
11
|
"agent.agentProcessing": "الوكيل يعالج، يمكنك المتابعة بعد الانتهاء...",
|
|
12
|
+
"agent.agentRunIdCopied": "تم نسخ معرف تشغيل الوكيل",
|
|
13
13
|
"agent.agentStarted": "تم بدء الوكيل",
|
|
14
14
|
"agent.agentWorking": "الوكيل يعمل... (Esc Esc للإيقاف)",
|
|
15
15
|
"agent.agentWorkingStop": "الوكيل يعمل... اضغط Esc مرتين أو انقر إيقاف للمقاطعة",
|
|
@@ -17,24 +17,28 @@
|
|
|
17
17
|
"agent.artifacts": "المخرجات",
|
|
18
18
|
"agent.askAnything": "اسأل أي شيء... (اسحب أو الصق الملفات)",
|
|
19
19
|
"agent.batch": "دفعة",
|
|
20
|
+
"agent.canceled": "",
|
|
20
21
|
"agent.cancelWorkflow": "إلغاء سير العمل",
|
|
21
|
-
"agent.canceling": "جارٍ الإلغاء",
|
|
22
22
|
"agent.clickToEnlarge": "انقر للتكبير",
|
|
23
|
+
"agent.cloneConversation": "استنساخ المحادثة",
|
|
23
24
|
"agent.close": "إغلاق",
|
|
24
25
|
"agent.closeFullscreen": "إغلاق ملء الشاشة",
|
|
25
26
|
"agent.completed": "مكتمل",
|
|
26
|
-
"agent.
|
|
27
|
-
"agent.
|
|
27
|
+
"agent.continueConversation": "متابعة المحادثة",
|
|
28
|
+
"agent.conversationCloned": "تم استنساخ المحادثة",
|
|
29
|
+
"agent.conversationContinued": "تمت متابعة المحادثة",
|
|
28
30
|
"agent.copied": "تم النسخ",
|
|
29
31
|
"agent.copiedAllToolCalls": "تم نسخ جميع استدعاءات الأدوات إلى الحافظة",
|
|
30
32
|
"agent.copiedBatchDetails": "تم نسخ تفاصيل الدفعة إلى الحافظة",
|
|
31
33
|
"agent.copiedToClipboard": "تم النسخ إلى الحافظة",
|
|
32
34
|
"agent.copy": "نسخ",
|
|
35
|
+
"agent.copyAgentRunId": "نسخ معرف تشغيل الوكيل",
|
|
33
36
|
"agent.copyAllToolCalls": "نسخ جميع استدعاءات الأدوات",
|
|
34
37
|
"agent.copyBatchDetails": "نسخ تفاصيل الدفعة",
|
|
35
38
|
"agent.copyMessage": "نسخ الرسالة",
|
|
36
|
-
"agent.copyRunId": "نسخ
|
|
39
|
+
"agent.copyRunId": "نسخ معرّف التشغيل",
|
|
37
40
|
"agent.copyToClipboard": "نسخ إلى الحافظة",
|
|
41
|
+
"agent.copyWorkflowRunId": "نسخ معرف تشغيل سير العمل",
|
|
38
42
|
"agent.dashboard": "لوحة المعلومات",
|
|
39
43
|
"agent.details": "تفاصيل",
|
|
40
44
|
"agent.document": "مستند",
|
|
@@ -56,25 +60,23 @@
|
|
|
56
60
|
"agent.exportAsPdf": "تصدير كـ PDF",
|
|
57
61
|
"agent.exportAsPng": "تصدير كـ PNG",
|
|
58
62
|
"agent.exportAsWord": "تصدير كـ Word",
|
|
59
|
-
"agent.exportMessage": "تصدير الرسالة",
|
|
60
63
|
"agent.exporting": "جارٍ التصدير...",
|
|
64
|
+
"agent.exportMessage": "تصدير الرسالة",
|
|
61
65
|
"agent.failedToCancelWorkflow": "فشل إلغاء سير العمل",
|
|
66
|
+
"agent.failedToCloneConversation": "فشل استنساخ المحادثة",
|
|
67
|
+
"agent.failedToContinueConversation": "فشل متابعة المحادثة",
|
|
62
68
|
"agent.failedToDownload": "فشل تنزيل المحادثة",
|
|
63
|
-
"agent.failedToForkConversation": "فشل تفريع المحادثة",
|
|
64
69
|
"agent.failedToInterrupt": "فشل الإيقاف",
|
|
65
70
|
"agent.failedToLoadDocument": "فشل تحميل المستند",
|
|
66
|
-
"agent.failedToRenderMessage": "فشل في عرض الرسالة",
|
|
67
|
-
"agent.failedToRestartConversation": "فشل إعادة تشغيل المحادثة",
|
|
68
71
|
"agent.failedToSend": "فشل إرسال الرسالة",
|
|
69
72
|
"agent.filesProcessing": "لا تزال الملفات قيد المعالجة",
|
|
73
|
+
"agent.filesStagedCount_zero": "لا توجد ملفات مُعدّة",
|
|
74
|
+
"agent.filesStagedCount_one": "ملف واحد مُعدّ - سيتم رفعه عند بدء المحادثة",
|
|
75
|
+
"agent.filesStagedCount_two": "ملفان مُعدّان - سيتم رفعهما عند بدء المحادثة",
|
|
70
76
|
"agent.filesStagedCount_few": "{{count}} ملفات مُعدّة - سيتم رفعها عند بدء المحادثة",
|
|
71
77
|
"agent.filesStagedCount_many": "{{count}} ملفًا مُعدًّا - سيتم رفعها عند بدء المحادثة",
|
|
72
|
-
"agent.filesStagedCount_one": "ملف واحد مُعدّ - سيتم رفعه عند بدء المحادثة",
|
|
73
78
|
"agent.filesStagedCount_other": "{{count}} ملف مُعدّ - سيتم رفعها عند بدء المحادثة",
|
|
74
|
-
"agent.filesStagedCount_two": "ملفان مُعدّان - سيتم رفعهما عند بدء المحادثة",
|
|
75
|
-
"agent.filesStagedCount_zero": "لا توجد ملفات مُعدّة",
|
|
76
79
|
"agent.filesUploadedDescription": "الملفات المرفوعة في هذه المحادثة تظل متاحة طوال الوقت. يمكن للوكيل الوصول إليها في أي وقت.",
|
|
77
|
-
"agent.forkConversation": "تفريع المحادثة",
|
|
78
80
|
"agent.fullscreen": "ملء الشاشة",
|
|
79
81
|
"agent.hideDetails": "إخفاء التفاصيل",
|
|
80
82
|
"agent.hideSidebar": "إخفاء الشريط الجانبي",
|
|
@@ -102,6 +104,7 @@
|
|
|
102
104
|
"agent.olderPlan": "خطة أقدم",
|
|
103
105
|
"agent.openDocument": "فتح المستند",
|
|
104
106
|
"agent.openInNewTab": "فتح في علامة تبويب جديدة",
|
|
107
|
+
"agent.payload": "الحمولة",
|
|
105
108
|
"agent.pdfExportFailed": "فشل تصدير PDF",
|
|
106
109
|
"agent.pdfExportReady": "تصدير PDF جاهز",
|
|
107
110
|
"agent.pending": "معلق",
|
|
@@ -113,11 +116,8 @@
|
|
|
113
116
|
"agent.ready": "جاهز",
|
|
114
117
|
"agent.refresh": "تحديث",
|
|
115
118
|
"agent.remaining": "{{seconds}}ث متبقية",
|
|
116
|
-
"agent.resizeRightPanel": "تغيير حجم اللوحة اليمنى",
|
|
117
|
-
"agent.restartConversation": "إعادة تشغيل المحادثة",
|
|
118
119
|
"agent.retry": "إعادة المحاولة",
|
|
119
120
|
"agent.runIdCopied": "تم نسخ معرّف التشغيل",
|
|
120
|
-
"agent.running": "قيد التشغيل",
|
|
121
121
|
"agent.searchDocuments": "البحث في المستندات",
|
|
122
122
|
"agent.selectInteraction": "اختر تفاعلاً وانقر ابدأ لتشغيل الوكيل",
|
|
123
123
|
"agent.send": "إرسال",
|
|
@@ -126,19 +126,19 @@
|
|
|
126
126
|
"agent.showSidebar": "عرض الشريط الجانبي",
|
|
127
127
|
"agent.staged": "مُعدّ",
|
|
128
128
|
"agent.startAgent": "بدء الوكيل",
|
|
129
|
-
"agent.startNewConversation": "بدء محادثة جديدة",
|
|
130
129
|
"agent.startingAgent": "جارٍ بدء الوكيل...",
|
|
131
130
|
"agent.startingAgentUploading": "جارٍ بدء الوكيل ورفع الملفات...",
|
|
131
|
+
"agent.startNewConversation": "بدء محادثة جديدة",
|
|
132
132
|
"agent.stepByStepPlan": "خطة خطوة بخطوة",
|
|
133
133
|
"agent.stop": "إيقاف",
|
|
134
134
|
"agent.stopAgent": "إيقاف الوكيل",
|
|
135
135
|
"agent.submitSelection": "إرسال الاختيار",
|
|
136
|
+
"agent.submitSelectionCount_zero": "إرسال الاختيار ({{count}})",
|
|
137
|
+
"agent.submitSelectionCount_one": "إرسال الاختيار ({{count}})",
|
|
138
|
+
"agent.submitSelectionCount_two": "إرسال الاختيار ({{count}})",
|
|
136
139
|
"agent.submitSelectionCount_few": "إرسال الاختيار ({{count}})",
|
|
137
140
|
"agent.submitSelectionCount_many": "إرسال الاختيار ({{count}})",
|
|
138
|
-
"agent.submitSelectionCount_one": "إرسال الاختيار ({{count}})",
|
|
139
141
|
"agent.submitSelectionCount_other": "إرسال الاختيار ({{count}})",
|
|
140
|
-
"agent.submitSelectionCount_two": "إرسال الاختيار ({{count}})",
|
|
141
|
-
"agent.submitSelectionCount_zero": "إرسال الاختيار ({{count}})",
|
|
142
142
|
"agent.summary": "ملخص",
|
|
143
143
|
"agent.taskProgress": "تقدم المهام",
|
|
144
144
|
"agent.toggleRightSidebar": "تبديل الشريط الجانبي الأيمن",
|
|
@@ -150,8 +150,8 @@
|
|
|
150
150
|
"agent.unknownError": "خطأ غير معروف",
|
|
151
151
|
"agent.unknownTime": "وقت غير معروف",
|
|
152
152
|
"agent.upload": "رفع",
|
|
153
|
-
"agent.uploadFailed": "فشل الرفع",
|
|
154
153
|
"agent.uploadedFiles": "الملفات المرفوعة",
|
|
154
|
+
"agent.uploadFailed": "فشل الرفع",
|
|
155
155
|
"agent.uploading": "جارٍ الرفع...",
|
|
156
156
|
"agent.uploads": "المرفوعات",
|
|
157
157
|
"agent.waitForFiles": "انتظر حتى تنتهي معالجة الملفات",
|
|
@@ -159,6 +159,7 @@
|
|
|
159
159
|
"agent.waiting": "في الانتظار...",
|
|
160
160
|
"agent.waitingForAgentResponse": "في انتظار رد الوكيل...",
|
|
161
161
|
"agent.workflowCancelled": "تم إلغاء سير العمل",
|
|
162
|
+
"agent.workflowRunIdCopied": "تم نسخ معرف تشغيل سير العمل",
|
|
162
163
|
"agent.working": "جارٍ العمل...",
|
|
163
164
|
"agent.workstreams": "تدفقات العمل",
|
|
164
165
|
"agent.yes": "نعم",
|
|
@@ -195,11 +196,7 @@
|
|
|
195
196
|
"filter.noResultsFound": "لم يتم العثور على نتائج.",
|
|
196
197
|
"filter.selectRange": "اختر نطاقاً",
|
|
197
198
|
"filter.to": "إلى:",
|
|
198
|
-
"form.clickToRemove": "انقر للإزالة",
|
|
199
|
-
"form.createValue": "إنشاء \"{{value}}\"",
|
|
200
199
|
"form.filter": "تصفية...",
|
|
201
|
-
"form.noMoreOptions": "لا توجد خيارات أخرى متاحة",
|
|
202
|
-
"form.noOptionsFound": "لم يتم العثور على خيارات",
|
|
203
200
|
"layout.pageNotFound": "الصفحة غير موجودة",
|
|
204
201
|
"layout.search": "بحث",
|
|
205
202
|
"layout.searchPlaceholder": "بحث...",
|
|
@@ -209,10 +206,10 @@
|
|
|
209
206
|
"login.terminal.account": "الحساب",
|
|
210
207
|
"login.terminal.accountRequired": "الحساب مطلوب",
|
|
211
208
|
"login.terminal.accountRequiredDesc": "يرجى اختيار حساب لتفويض العميل للوصول إلى خوادم ComposablePrompts",
|
|
209
|
+
"login.terminal.authorizeClient": "تفويض العميل",
|
|
212
210
|
"login.terminal.authPayloadCopied": "تم نسخ حمولة المصادقة",
|
|
213
211
|
"login.terminal.authPayloadCopiedSuccess": "يمكنك إغلاق هذه الصفحة. من المفترض أن CLI قد تلقى الرمز.",
|
|
214
212
|
"login.terminal.authPayloadCopiedWithError": "يمكنك لصق الحمولة في الطرفية. ملاحظة: لم يتلقَّ CLI الرمز. حدث خطأ: {{error}}",
|
|
215
|
-
"login.terminal.authorizeClient": "تفويض العميل",
|
|
216
213
|
"login.terminal.browserPermissionNote": "ملاحظة: إذا طلب متصفحك إذناً للوصول إلى شبكتك المحلية، يرجى السماح بذلك. هذا مطلوب لإرسال رمز التفويض إلى أداة CLI. وإلا ستحتاج إلى نسخ/لصق الرمز يدوياً في طرفيتك.",
|
|
217
214
|
"login.terminal.chooseAccountProject": "يجب اختيار الحساب والمشروع المستهدفين لوصول العميل.",
|
|
218
215
|
"login.terminal.clientAuthenticated": "تم مصادقة العميل. يمكنك إغلاق هذه الصفحة.",
|
|
@@ -237,6 +234,13 @@
|
|
|
237
234
|
"login.terminal.projectRequiredDesc": "يرجى اختيار مشروع لتفويض العميل للوصول إلى خوادم ComposablePrompts",
|
|
238
235
|
"login.terminal.selectAccount": "اختر حساباً",
|
|
239
236
|
"login.terminal.selectProject": "اختر مشروعاً",
|
|
237
|
+
"mcpOAuth.authenticate": "المصادقة",
|
|
238
|
+
"mcpOAuth.authenticating": "جارٍ المصادقة...",
|
|
239
|
+
"mcpOAuth.connect": "اتصال",
|
|
240
|
+
"mcpOAuth.connected": "متصل",
|
|
241
|
+
"mcpOAuth.connecting": "جارٍ الاتصال...",
|
|
242
|
+
"mcpOAuth.disconnect": "قطع الاتصال",
|
|
243
|
+
"mcpOAuth.notConnected": "غير متصل",
|
|
240
244
|
"misc.copiedToClipboard": "تم النسخ إلى الحافظة",
|
|
241
245
|
"misc.copy": "نسخ",
|
|
242
246
|
"misc.failedToCopy": "فشل النسخ",
|
|
@@ -261,45 +265,10 @@
|
|
|
261
265
|
"modal.saveVersion.versionLabel": "تسمية النسخة (اختياري)",
|
|
262
266
|
"modal.saveVersion.versionLabelDescription": "تسمية اختيارية للنسخة الجديدة.",
|
|
263
267
|
"modal.saveVersion.versionLabelPlaceholder": "مثال: v1.2، معتمد، بعد المراجعة",
|
|
264
|
-
"
|
|
265
|
-
"
|
|
266
|
-
"
|
|
267
|
-
"
|
|
268
|
-
"oauthApps.clientId": "Client ID",
|
|
269
|
-
"oauthApps.clientSecret": "Client Secret",
|
|
270
|
-
"oauthApps.clientSecretConfigured": "تم تكوين Secret (اتركه فارغاً للإبقاء عليه)",
|
|
271
|
-
"oauthApps.clientSecretHelp": "اختياري. مطلوب للعملاء السريين. مشفّر أثناء التخزين.",
|
|
272
|
-
"oauthApps.clientSecretPlaceholder": "أدخل Client Secret",
|
|
273
|
-
"oauthApps.connect": "اتصال",
|
|
274
|
-
"oauthApps.connected": "متصل",
|
|
275
|
-
"oauthApps.create": "إنشاء",
|
|
276
|
-
"oauthApps.createDescription": "تكوين تطبيق OAuth جديد لهذا المشروع.",
|
|
277
|
-
"oauthApps.created": "تم إنشاء تطبيق OAuth",
|
|
278
|
-
"oauthApps.defaultScopes": "النطاقات الافتراضية",
|
|
279
|
-
"oauthApps.defaultScopesHelp": "قائمة نطاقات OAuth مفصولة بمسافات.",
|
|
280
|
-
"oauthApps.deleteConfirm": "حذف تطبيق OAuth",
|
|
281
|
-
"oauthApps.deleteConfirmMessage": "هل أنت متأكد من رغبتك في الحذف",
|
|
282
|
-
"oauthApps.deleteFailed": "فشل حذف تطبيق OAuth",
|
|
283
|
-
"oauthApps.deleted": "تم حذف تطبيق OAuth",
|
|
284
|
-
"oauthApps.description": "تكوين تطبيقات OAuth للتكاملات مع الأطراف الخارجية.",
|
|
285
|
-
"oauthApps.disconnect": "قطع الاتصال",
|
|
286
|
-
"oauthApps.displayName": "اسم العرض",
|
|
287
|
-
"oauthApps.edit": "تعديل تطبيق OAuth",
|
|
288
|
-
"oauthApps.editDescription": "تحديث إعدادات تطبيق OAuth.",
|
|
289
|
-
"oauthApps.empty": "لم يتم تكوين أي تطبيقات OAuth بعد.",
|
|
290
|
-
"oauthApps.endpointsOptionalHelp": "اختياري. اتركه فارغًا لخوادم MCP التي تدعم اكتشاف .well-known.",
|
|
291
|
-
"oauthApps.name": "الاسم",
|
|
292
|
-
"oauthApps.nameHelp": "معرّف بتنسيق kebab-case (مثال: my-oauth-app). لا يمكن تغييره بعد الإنشاء.",
|
|
293
|
-
"oauthApps.notConnected": "غير متصل",
|
|
294
|
-
"oauthApps.revocationEndpoint": "نقطة نهاية الإبطال",
|
|
295
|
-
"oauthApps.save": "حفظ",
|
|
296
|
-
"oauthApps.saveFailed": "فشل حفظ تطبيق OAuth",
|
|
297
|
-
"oauthApps.saving": "جارٍ الحفظ...",
|
|
298
|
-
"oauthApps.status": "الحالة",
|
|
299
|
-
"oauthApps.title": "تطبيقات OAuth",
|
|
300
|
-
"oauthApps.tokenEndpoint": "نقطة نهاية الرمز المميز",
|
|
301
|
-
"oauthApps.updated": "تم تحديث تطبيق OAuth",
|
|
302
|
-
"oauthApps.usePkce": "استخدام PKCE (موصى به)",
|
|
268
|
+
"oauthProvider.authenticate": "مصادقة",
|
|
269
|
+
"oauthProvider.authenticating": "جارٍ المصادقة...",
|
|
270
|
+
"oauthProvider.connected": "متصل",
|
|
271
|
+
"oauthProvider.disconnect": "قطع الاتصال",
|
|
303
272
|
"pdf.close": "إغلاق",
|
|
304
273
|
"pdf.closeFullscreen": "إغلاق ملء الشاشة",
|
|
305
274
|
"pdf.download": "تحميل",
|
|
@@ -355,7 +324,12 @@
|
|
|
355
324
|
"store.actions.addToCollectionFailure": "فشل الإضافة إلى المجموعة",
|
|
356
325
|
"store.actions.addToCollectionFailureDesc": "فشل إضافة الكائنات المحددة إلى المجموعة",
|
|
357
326
|
"store.actions.addToCollectionSuccess": "نجاح الإضافة إلى المجموعة",
|
|
358
|
-
"store.actions.
|
|
327
|
+
"store.actions.addToCollectionSuccessDesc_zero": "لم يُضَف أي كائن إلى المجموعة",
|
|
328
|
+
"store.actions.addToCollectionSuccessDesc_one": "تمت إضافة {{count}} كائن إلى المجموعة",
|
|
329
|
+
"store.actions.addToCollectionSuccessDesc_two": "تمت إضافة {{count}} كائنَين إلى المجموعة",
|
|
330
|
+
"store.actions.addToCollectionSuccessDesc_few": "تمت إضافة {{count}} كائنات إلى المجموعة",
|
|
331
|
+
"store.actions.addToCollectionSuccessDesc_many": "تمت إضافة {{count}} كائنًا إلى المجموعة",
|
|
332
|
+
"store.actions.addToCollectionSuccessDesc_other": "تمت إضافة {{count}} كائن إلى المجموعة",
|
|
359
333
|
"store.actions.addToCollectionTitle": "إضافة إلى مجموعة",
|
|
360
334
|
"store.actions.areYouSure": "هل أنت متأكد؟",
|
|
361
335
|
"store.actions.cannotRemoveNoCollection": "لا يمكن إزالة الكائنات: لم يتم تحديد مجموعة",
|
|
@@ -366,7 +340,6 @@
|
|
|
366
340
|
"store.actions.chooseWorkflowRule": "اختر قاعدة سير عمل للبدء:",
|
|
367
341
|
"store.actions.confirmDeleteAll": "هل أنت متأكد من حذف جميع الكائنات المحددة؟ لا يمكن التراجع عن هذا الإجراء.",
|
|
368
342
|
"store.actions.confirmDeleteSelected": "هل أنت متأكد من حذف الكائنات المحددة؟\nهذا ليس إزالة من المجموعات.",
|
|
369
|
-
"store.actions.confirmRemoveFromCollection": "هل أنت متأكد من إزالة الكائنات المحددة من هذه المجموعة؟",
|
|
370
343
|
"store.actions.createNew": "إنشاء جديد",
|
|
371
344
|
"store.actions.delete": "حذف",
|
|
372
345
|
"store.actions.deleteObjects": "حذف الكائنات",
|
|
@@ -382,8 +355,6 @@
|
|
|
382
355
|
"store.actions.noObjectsSelected": "لم يتم تحديد كائنات",
|
|
383
356
|
"store.actions.pleaseSelectObjectsToDelete": "يرجى تحديد كائنات للحذف",
|
|
384
357
|
"store.actions.pleaseSelectObjectsToRemove": "يرجى تحديد كائنات لإزالتها من المجموعة",
|
|
385
|
-
"store.actions.removeFromCollection": "إزالة من المجموعة",
|
|
386
|
-
"store.actions.removeFromCollectionDesc": "إزالة الكائنات المحددة من هذه المجموعة",
|
|
387
358
|
"store.actions.selectCollection": "اختر مجموعة",
|
|
388
359
|
"store.actions.startWorkflow": "بدء سير العمل",
|
|
389
360
|
"store.actions.startWorkflowByRule": "بدء سير عمل بقاعدة",
|
|
@@ -407,9 +378,14 @@
|
|
|
407
378
|
"store.collectionDeleted": "تم حذف المجموعة",
|
|
408
379
|
"store.collectionFetchFailed": "فشل جلب المجموعة",
|
|
409
380
|
"store.collectionPropertiesUpdated": "تم تحديث خصائص المجموعة",
|
|
381
|
+
"store.collectionsSelected_zero": "لم يتم تحديد أي مجموعة",
|
|
382
|
+
"store.collectionsSelected_one": "تم تحديد {{count}} مجموعة",
|
|
383
|
+
"store.collectionsSelected_two": "تم تحديد {{count}} مجموعتَين",
|
|
384
|
+
"store.collectionsSelected_few": "تم تحديد {{count}} مجموعات",
|
|
385
|
+
"store.collectionsSelected_many": "تم تحديد {{count}} مجموعة",
|
|
386
|
+
"store.collectionsSelected_other": "تم تحديد {{count}} مجموعة",
|
|
410
387
|
"store.collectionUpdated": "تم تحديث المجموعة",
|
|
411
388
|
"store.collectionUpdatedSuccess": "تم تحديث المجموعة بنجاح",
|
|
412
|
-
"store.collectionsSelected": "تم اختيار {{count}} مجموعة",
|
|
413
389
|
"store.configuration": "الإعدادات",
|
|
414
390
|
"store.confirmSelection": "تأكيد الاختيار",
|
|
415
391
|
"store.contentCopied": "تم نسخ {{type}}",
|
|
@@ -419,9 +395,9 @@
|
|
|
419
395
|
"store.copyFailed": "فشل النسخ",
|
|
420
396
|
"store.createACollection": "إنشاء مجموعة",
|
|
421
397
|
"store.createCollection": "إنشاء مجموعة",
|
|
422
|
-
"store.createType": "إنشاء نوع",
|
|
423
398
|
"store.created": "تاريخ الإنشاء",
|
|
424
399
|
"store.createdBy": "أنشأه",
|
|
400
|
+
"store.createType": "إنشاء نوع",
|
|
425
401
|
"store.deleteCollection": "حذف المجموعة",
|
|
426
402
|
"store.documentExported": "تم تصدير المستند",
|
|
427
403
|
"store.documentInformation": "معلومات المستند",
|
|
@@ -431,11 +407,11 @@
|
|
|
431
407
|
"store.downloadFailed": "فشل التحميل",
|
|
432
408
|
"store.dynamicCollection": "مجموعة ديناميكية",
|
|
433
409
|
"store.dynamicCollectionDescription": "جلب المحتوى ديناميكياً للمجموعة بناءً على استعلام. إذا لم يتم التفعيل، يجب إضافة المحتوى من قبل المستخدمين أو الوكلاء.",
|
|
410
|
+
"store.editingGenericDocument": "تحرير خصائص مستند عام",
|
|
434
411
|
"store.editJson": "تحرير JSON",
|
|
435
412
|
"store.editProperties": "تحرير الخصائص",
|
|
436
413
|
"store.editSchema": "تحرير المخطط",
|
|
437
414
|
"store.editText": "تحرير النص",
|
|
438
|
-
"store.editingGenericDocument": "تحرير خصائص مستند عام",
|
|
439
415
|
"store.embeddings": "التضمينات",
|
|
440
416
|
"store.enableSyncMemberHeads": "تفعيل مزامنة رؤوس الأعضاء",
|
|
441
417
|
"store.error": "خطأ",
|
|
@@ -495,6 +471,7 @@
|
|
|
495
471
|
"store.noCollectionsAvailable": "لا توجد مجموعات متاحة.",
|
|
496
472
|
"store.noCollectionsFound": "لم يتم العثور على مجموعات.",
|
|
497
473
|
"store.noFilesSelected": "لم يتم اختيار ملفات",
|
|
474
|
+
"store.none": "لا شيء",
|
|
498
475
|
"store.noObjectsDragAndDrop": "لا توجد كائنات. اسحب وأفلت المستندات أو الصور هنا لإنشاء كائنات محتوى.",
|
|
499
476
|
"store.noPreviewAvailable": "لا تتوفر معاينة لهذا النوع من المستندات.",
|
|
500
477
|
"store.noProjectSelected": "لم يتم اختيار مشروع",
|
|
@@ -504,7 +481,6 @@
|
|
|
504
481
|
"store.noType": "بدون نوع",
|
|
505
482
|
"store.noValidFilesSelected": "لم يتم اختيار ملفات صالحة",
|
|
506
483
|
"store.noVideoRendition": "لا يتوفر إصدار فيديو متوافق مع الويب",
|
|
507
|
-
"store.none": "لا شيء",
|
|
508
484
|
"store.openFullDocument": "فتح المستند الكامل",
|
|
509
485
|
"store.openFullDocumentView": "فتح العرض الكامل للمستند",
|
|
510
486
|
"store.optional": "(اختياري)",
|
|
@@ -533,11 +509,10 @@
|
|
|
533
509
|
"store.search": "بحث",
|
|
534
510
|
"store.searchCollections": "البحث في المجموعات",
|
|
535
511
|
"store.searchFailed": "فشل البحث",
|
|
512
|
+
"store.searching": "جارٍ البحث...",
|
|
536
513
|
"store.searchPlaceholder": "اكتب ما تبحث عنه، أو اختر عامل تصفية",
|
|
537
514
|
"store.searchTypes": "البحث في الأنواع",
|
|
538
|
-
"store.searching": "جارٍ البحث...",
|
|
539
515
|
"store.selectACollection": "اختر مجموعة",
|
|
540
|
-
"store.selectContent": "اختر محتوى",
|
|
541
516
|
"store.selectContentType": "اختر نوع المحتوى",
|
|
542
517
|
"store.selectContentTypeAuto": "اختر نوع محتوى أو اتركه فارغاً للكشف التلقائي",
|
|
543
518
|
"store.selectContentTypeLabel": "اختر نوع محتوى",
|
|
@@ -579,14 +554,14 @@
|
|
|
579
554
|
"store.viewAsPdf": "عرض كـ PDF",
|
|
580
555
|
"store.viewAudio": "عرض الصوت",
|
|
581
556
|
"store.viewImage": "عرض الصورة",
|
|
557
|
+
"store.viewingNewVersion": "عرض النسخة الجديدة",
|
|
558
|
+
"store.viewingNewVersionDefault": "يتم الآن عرض النسخة الجديدة",
|
|
559
|
+
"store.viewingVersionLabel": "يتم الآن عرض النسخة '{{label}}'",
|
|
582
560
|
"store.viewInJsonFormat": "عرض بصيغة JSON",
|
|
583
561
|
"store.viewPdf": "عرض PDF",
|
|
584
562
|
"store.viewText": "عرض النص",
|
|
585
563
|
"store.viewTranscript": "عرض النص المكتوب",
|
|
586
564
|
"store.viewVideo": "عرض الفيديو",
|
|
587
|
-
"store.viewingNewVersion": "عرض النسخة الجديدة",
|
|
588
|
-
"store.viewingNewVersionDefault": "يتم الآن عرض النسخة الجديدة",
|
|
589
|
-
"store.viewingVersionLabel": "يتم الآن عرض النسخة '{{label}}'",
|
|
590
565
|
"theme.dark": "داكن",
|
|
591
566
|
"theme.label": "المظهر",
|
|
592
567
|
"theme.light": "فاتح",
|
|
@@ -594,7 +569,13 @@
|
|
|
594
569
|
"type.description": "الوصف",
|
|
595
570
|
"type.name": "الاسم",
|
|
596
571
|
"type.nameRequired": "الاسم مطلوب",
|
|
597
|
-
"
|
|
572
|
+
"type.type": "النوع",
|
|
573
|
+
"upload.allFilesExist_zero": "لا توجد ملفات موجودة مسبقًا",
|
|
574
|
+
"upload.allFilesExist_one": "{{count}} ملف موجود مسبقًا",
|
|
575
|
+
"upload.allFilesExist_two": "{{count}} ملفَان موجودان مسبقًا",
|
|
576
|
+
"upload.allFilesExist_few": "{{count}} ملفات موجودة مسبقًا",
|
|
577
|
+
"upload.allFilesExist_many": "{{count}} ملفًا موجودًا مسبقًا",
|
|
578
|
+
"upload.allFilesExist_other": "{{count}} ملف موجود مسبقًا",
|
|
598
579
|
"upload.analyzingFiles": "جارٍ تحليل الملفات...",
|
|
599
580
|
"upload.checkingForDuplicates": "جارٍ التحقق من التكرارات والتحديثات",
|
|
600
581
|
"upload.collectionLabel": "المجموعة:",
|
|
@@ -605,42 +586,42 @@
|
|
|
605
586
|
"upload.failedToUpload": "فشل الرفع",
|
|
606
587
|
"upload.fileAnalysisResults": "نتائج تحليل الملفات",
|
|
607
588
|
"upload.filesAnalyzed": "تم تحليل الملفات",
|
|
589
|
+
"upload.filesProcessed_zero": "لم تتم معالجة أي ملفات",
|
|
590
|
+
"upload.filesProcessed_one": "تمت معالجة ملف واحد",
|
|
591
|
+
"upload.filesProcessed_two": "تمت معالجة ملفين",
|
|
608
592
|
"upload.filesProcessed_few": "تمت معالجة {{count}} ملفات",
|
|
609
593
|
"upload.filesProcessed_many": "تمت معالجة {{count}} ملفًا",
|
|
610
|
-
"upload.filesProcessed_one": "تمت معالجة ملف واحد",
|
|
611
594
|
"upload.filesProcessed_other": "تمت معالجة {{count}} ملف",
|
|
612
|
-
"upload.
|
|
613
|
-
"upload.
|
|
595
|
+
"upload.filesReadyToProcess_zero": "لا توجد ملفات جاهزة للمعالجة",
|
|
596
|
+
"upload.filesReadyToProcess_one": "ملف واحد جاهز للمعالجة",
|
|
597
|
+
"upload.filesReadyToProcess_two": "ملفان جاهزان للمعالجة",
|
|
614
598
|
"upload.filesReadyToProcess_few": "{{count}} ملفات جاهزة للمعالجة",
|
|
615
599
|
"upload.filesReadyToProcess_many": "{{count}} ملفًا جاهزًا للمعالجة",
|
|
616
|
-
"upload.filesReadyToProcess_one": "ملف واحد جاهز للمعالجة",
|
|
617
600
|
"upload.filesReadyToProcess_other": "{{count}} ملف جاهز للمعالجة",
|
|
618
|
-
"upload.
|
|
619
|
-
"upload.
|
|
601
|
+
"upload.filesToSkip_zero": "لا توجد ملفات للتخطي.",
|
|
602
|
+
"upload.filesToSkip_one": "ملف واحد موجود بالفعل في النظام وسيتم تخطيه.",
|
|
603
|
+
"upload.filesToSkip_two": "ملفان موجودان بالفعل في النظام وسيتم تخطيهما.",
|
|
620
604
|
"upload.filesToSkip_few": "{{count}} ملفات موجودة بالفعل في النظام وسيتم تخطيها.",
|
|
621
605
|
"upload.filesToSkip_many": "{{count}} ملفًا موجودًا بالفعل في النظام وسيتم تخطيه.",
|
|
622
|
-
"upload.filesToSkip_one": "ملف واحد موجود بالفعل في النظام وسيتم تخطيه.",
|
|
623
606
|
"upload.filesToSkip_other": "{{count}} ملف موجود بالفعل في النظام وسيتم تخطيه.",
|
|
624
|
-
"upload.filesToSkip_two": "ملفان موجودان بالفعل في النظام وسيتم تخطيهما.",
|
|
625
|
-
"upload.filesToSkip_zero": "لا توجد ملفات للتخطي.",
|
|
626
607
|
"upload.folderLabel": "المجلد:",
|
|
627
608
|
"upload.inCollection": " في المجموعة '{{collection}}'",
|
|
628
609
|
"upload.inFolder": " في المجلد '{{location}}'",
|
|
629
610
|
"upload.new": "جديد",
|
|
630
611
|
"upload.noFilesToProcess": "لا توجد ملفات للمعالجة.",
|
|
631
612
|
"upload.noItems": "لا توجد عناصر للعرض",
|
|
613
|
+
"upload.preparingFiles_zero": "جاري التحضير للرفع...",
|
|
614
|
+
"upload.preparingFiles_one": "جاري التحضير لرفع ملف واحد...",
|
|
615
|
+
"upload.preparingFiles_two": "جاري التحضير لرفع ملفين...",
|
|
632
616
|
"upload.preparingFiles_few": "جاري التحضير لرفع {{count}} ملفات...",
|
|
633
617
|
"upload.preparingFiles_many": "جاري التحضير لرفع {{count}} ملفًا...",
|
|
634
|
-
"upload.preparingFiles_one": "جاري التحضير لرفع ملف واحد...",
|
|
635
618
|
"upload.preparingFiles_other": "جاري التحضير لرفع {{count}} ملف...",
|
|
636
|
-
"upload.
|
|
637
|
-
"upload.
|
|
619
|
+
"upload.preparingFolder_zero": "جاري التحضير للرفع...",
|
|
620
|
+
"upload.preparingFolder_one": "جاري التحضير لرفع مجلد واحد يحتوي على {{fileCount}} ملفات...",
|
|
621
|
+
"upload.preparingFolder_two": "جاري التحضير لرفع مجلدين يحتويان على {{fileCount}} ملفات...",
|
|
638
622
|
"upload.preparingFolder_few": "جاري التحضير لرفع {{folderCount}} مجلدات تحتوي على {{fileCount}} ملفات...",
|
|
639
623
|
"upload.preparingFolder_many": "جاري التحضير لرفع {{folderCount}} مجلدًا يحتوي على {{fileCount}} ملفات...",
|
|
640
|
-
"upload.preparingFolder_one": "جاري التحضير لرفع مجلد واحد يحتوي على {{fileCount}} ملفات...",
|
|
641
624
|
"upload.preparingFolder_other": "جاري التحضير لرفع {{folderCount}} مجلد يحتوي على {{fileCount}} ملفات...",
|
|
642
|
-
"upload.preparingFolder_two": "جاري التحضير لرفع مجلدين يحتويان على {{fileCount}} ملفات...",
|
|
643
|
-
"upload.preparingFolder_zero": "جاري التحضير للرفع...",
|
|
644
625
|
"upload.processedCount": "تمت معالجة {{processed}}/{{total}} ملف...",
|
|
645
626
|
"upload.processingFilesAction": "معالجة الملفات ({{action}})",
|
|
646
627
|
"upload.selectFiles": "اختيار ملفات",
|
|
@@ -652,15 +633,17 @@
|
|
|
652
633
|
"upload.update": "تحديث",
|
|
653
634
|
"upload.uploadComplete": "اكتمل الرفع",
|
|
654
635
|
"upload.uploadFiles": "رفع الملفات",
|
|
636
|
+
"upload.uploadingFiles": "جارٍ رفع الملفات",
|
|
655
637
|
"upload.uploadLocation": "موقع الرفع:",
|
|
656
638
|
"upload.uploadMore": "رفع المزيد",
|
|
657
639
|
"upload.uploadProcessInterrupted": "تم مقاطعة عملية الرفع",
|
|
658
|
-
"upload.uploadingFiles": "جارٍ رفع الملفات",
|
|
659
640
|
"upload.useAutoDetection": "استخدام الكشف التلقائي عن النوع",
|
|
660
641
|
"upload.useTypeName": "استخدام {{typeName}}",
|
|
661
642
|
"user.account": "الحساب:",
|
|
662
643
|
"user.agentOnBehalfOf": "وكيل بالنيابة عن",
|
|
663
644
|
"user.agentOnBehalfOfApiKey": "وكيل بالنيابة عن مفتاح API",
|
|
645
|
+
"user.allProjectMembers": "جميع أعضاء المشروع",
|
|
646
|
+
"user.allProjectMembersDescription": "كل عضو في هذا المشروع لديه هذا الإذن.",
|
|
664
647
|
"user.appVersion": "إصدار التطبيق",
|
|
665
648
|
"user.environment": "البيئة",
|
|
666
649
|
"user.failedToFetchApiKey": "فشل جلب مفتاح API",
|