@arbidocs/blocks 0.5.102 → 0.5.103
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/dist/ConnectedCallDock-NEZJNTKH.js +1 -1
- package/dist/ConnectedCallDock-P7LK2HYF.cjs +1 -1
- package/dist/ConnectedCallRoom-FXTR4YFI.cjs +1 -1
- package/dist/ConnectedCallRoom-K3X6ICCG.js +1 -1
- package/dist/ConnectedNativeDocxComparison-7VJKOKYU.cjs +2 -2
- package/dist/ConnectedNativeDocxComparison-FENZYWDH.js +2 -2
- package/dist/ConnectedNativeDocxEditor-CNQAMO2N.js +2 -2
- package/dist/ConnectedNativeDocxEditor-HB5BHGZ2.cjs +2 -2
- package/dist/ConnectedStreamedWordArtifact-BF6JET2D.cjs +2 -2
- package/dist/ConnectedStreamedWordArtifact-ILMKFCDC.js +2 -2
- package/dist/{DocumentReviewCard-UUMBYSHO.cjs → DocumentReviewCard-FSOBIVED.cjs} +14 -14
- package/dist/{DocumentReviewCard-UUMBYSHO.cjs.map → DocumentReviewCard-FSOBIVED.cjs.map} +1 -1
- package/dist/{DocumentReviewCard-UEFTDEOL.js → DocumentReviewCard-XB7BE7MZ.js} +9 -9
- package/dist/{DocumentReviewCard-UEFTDEOL.js.map → DocumentReviewCard-XB7BE7MZ.js.map} +1 -1
- package/dist/{FilesViewerDialog-R5VNYH72.js → FilesViewerDialog-5PL3HGYO.js} +8 -8
- package/dist/{FilesViewerDialog-R5VNYH72.js.map → FilesViewerDialog-5PL3HGYO.js.map} +1 -1
- package/dist/{FilesViewerDialog-B6AQP2UB.cjs → FilesViewerDialog-GEIQCBBK.cjs} +9 -9
- package/dist/{FilesViewerDialog-B6AQP2UB.cjs.map → FilesViewerDialog-GEIQCBBK.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-WD754UBK.js → WorkspaceTableView-SX5FIC4C.js} +3 -3
- package/dist/{WorkspaceTableView-WD754UBK.js.map → WorkspaceTableView-SX5FIC4C.js.map} +1 -1
- package/dist/{WorkspaceTableView-3D6SYOWT.cjs → WorkspaceTableView-Y2GX5GB2.cjs} +3 -3
- package/dist/{WorkspaceTableView-3D6SYOWT.cjs.map → WorkspaceTableView-Y2GX5GB2.cjs.map} +1 -1
- package/dist/agents/index.cjs +178 -177
- package/dist/agents/index.js +5 -4
- package/dist/chat/index.cjs +1 -1
- package/dist/chat/index.js +1 -1
- package/dist/{chunk-D3DOHXBQ.cjs → chunk-4LK74S7T.cjs} +24 -24
- package/dist/{chunk-D3DOHXBQ.cjs.map → chunk-4LK74S7T.cjs.map} +1 -1
- package/dist/{chunk-PL2CVHBB.cjs → chunk-7Z5CSFYV.cjs} +5 -5
- package/dist/{chunk-PL2CVHBB.cjs.map → chunk-7Z5CSFYV.cjs.map} +1 -1
- package/dist/{chunk-FKFUAU4F.js → chunk-ASOPBELQ.js} +7 -6
- package/dist/chunk-ASOPBELQ.js.map +1 -0
- package/dist/{chunk-ICE2ZKN4.js → chunk-BQHTBUOA.js} +3 -3
- package/dist/{chunk-ICE2ZKN4.js.map → chunk-BQHTBUOA.js.map} +1 -1
- package/dist/{chunk-JJ5BXK3Q.cjs → chunk-COCZMF7B.cjs} +7 -6
- package/dist/chunk-COCZMF7B.cjs.map +1 -0
- package/dist/{chunk-CMEIU2GA.cjs → chunk-CRKWD7B5.cjs} +28 -28
- package/dist/{chunk-CMEIU2GA.cjs.map → chunk-CRKWD7B5.cjs.map} +1 -1
- package/dist/{chunk-AMIPT72L.cjs → chunk-DGOVO2QO.cjs} +8 -8
- package/dist/{chunk-AMIPT72L.cjs.map → chunk-DGOVO2QO.cjs.map} +1 -1
- package/dist/{chunk-L3CWX2BN.cjs → chunk-DZGLEEUT.cjs} +4 -4
- package/dist/{chunk-L3CWX2BN.cjs.map → chunk-DZGLEEUT.cjs.map} +1 -1
- package/dist/{chunk-ZGAUD357.cjs → chunk-EIV4H2PZ.cjs} +4 -4
- package/dist/{chunk-ZGAUD357.cjs.map → chunk-EIV4H2PZ.cjs.map} +1 -1
- package/dist/{chunk-VVCSEYDP.cjs → chunk-G4D4UGSW.cjs} +4 -4
- package/dist/{chunk-VVCSEYDP.cjs.map → chunk-G4D4UGSW.cjs.map} +1 -1
- package/dist/{chunk-GCW7PS3D.js → chunk-I6WRLTWU.js} +3 -3
- package/dist/{chunk-GCW7PS3D.js.map → chunk-I6WRLTWU.js.map} +1 -1
- package/dist/{chunk-AUQF6UJZ.js → chunk-JAIMJTXQ.js} +4 -4
- package/dist/{chunk-AUQF6UJZ.js.map → chunk-JAIMJTXQ.js.map} +1 -1
- package/dist/chunk-JCMKYQGZ.js +26 -0
- package/dist/chunk-JCMKYQGZ.js.map +1 -0
- package/dist/{chunk-6AETD75K.js → chunk-K2G2P66L.js} +3 -3
- package/dist/{chunk-6AETD75K.js.map → chunk-K2G2P66L.js.map} +1 -1
- package/dist/{chunk-W4QYNRBU.cjs → chunk-KVQ6O54R.cjs} +46 -46
- package/dist/{chunk-W4QYNRBU.cjs.map → chunk-KVQ6O54R.cjs.map} +1 -1
- package/dist/{chunk-4YQBT5EL.cjs → chunk-KXNC24EF.cjs} +35 -35
- package/dist/{chunk-4YQBT5EL.cjs.map → chunk-KXNC24EF.cjs.map} +1 -1
- package/dist/{chunk-PCSJODXV.js → chunk-M6DTLHCN.js} +3 -3
- package/dist/{chunk-PCSJODXV.js.map → chunk-M6DTLHCN.js.map} +1 -1
- package/dist/{chunk-S67KFB54.js → chunk-NTXO6IYE.js} +3 -3
- package/dist/{chunk-S67KFB54.js.map → chunk-NTXO6IYE.js.map} +1 -1
- package/dist/{chunk-HC54CTGN.cjs → chunk-OSR3GCJG.cjs} +11 -11
- package/dist/chunk-OSR3GCJG.cjs.map +1 -0
- package/dist/{chunk-6TYZ33WH.cjs → chunk-OSWKA2NQ.cjs} +6 -6
- package/dist/chunk-OSWKA2NQ.cjs.map +1 -0
- package/dist/{chunk-TOT4HHHN.js → chunk-P5RTO2WL.js} +3 -24
- package/dist/chunk-P5RTO2WL.js.map +1 -0
- package/dist/chunk-QECKDZ47.cjs +31 -0
- package/dist/chunk-QECKDZ47.cjs.map +1 -0
- package/dist/{chunk-QM6OI62U.js → chunk-QVY5DH2R.js} +5 -5
- package/dist/{chunk-QM6OI62U.js.map → chunk-QVY5DH2R.js.map} +1 -1
- package/dist/{chunk-PP2NXTOP.js → chunk-RUV2ERID.js} +12 -12
- package/dist/{chunk-PP2NXTOP.js.map → chunk-RUV2ERID.js.map} +1 -1
- package/dist/{chunk-MDMQDVCA.cjs → chunk-S3SWSAUB.cjs} +4 -4
- package/dist/{chunk-MDMQDVCA.cjs.map → chunk-S3SWSAUB.cjs.map} +1 -1
- package/dist/{chunk-CDOW3H4B.js → chunk-SOY6UUFS.js} +3 -3
- package/dist/{chunk-CDOW3H4B.js.map → chunk-SOY6UUFS.js.map} +1 -1
- package/dist/{chunk-6S2LRXJ4.js → chunk-SYMZ6L3C.js} +6 -6
- package/dist/chunk-SYMZ6L3C.js.map +1 -0
- package/dist/{chunk-ZKTMTYFN.js → chunk-UYFWLP74.js} +6 -6
- package/dist/{chunk-ZKTMTYFN.js.map → chunk-UYFWLP74.js.map} +1 -1
- package/dist/{chunk-SOS2WASA.cjs → chunk-WZAHVTTO.cjs} +2 -26
- package/dist/chunk-WZAHVTTO.cjs.map +1 -0
- package/dist/{chunk-4RQDYXLE.js → chunk-ZR4TH6DZ.js} +5 -5
- package/dist/{chunk-4RQDYXLE.js.map → chunk-ZR4TH6DZ.js.map} +1 -1
- package/dist/collaboration/index.cjs +69 -69
- package/dist/collaboration/index.js +1 -1
- package/dist/collaboration/mail/MailActionBar.d.ts +3 -2
- package/dist/collaboration/mail/MailAddToWorkspaceDialog.d.ts +20 -0
- package/dist/collaboration/mail/MailFiledChips.d.ts +15 -0
- package/dist/collaboration/mail/MailMessageView.d.ts +3 -3
- package/dist/connect/docx.cjs +2 -2
- package/dist/connect/docx.js +2 -2
- package/dist/connect/index.cjs +1083 -810
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +503 -230
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +7 -7
- package/dist/connect/viewer.js +6 -6
- package/dist/connection/connectors/ConnectedMailboxSyncDialog.d.ts +3 -1
- package/dist/connection/connectors/native-mailbox.d.ts +19 -0
- package/dist/connection/files/imports/EmailImportPanel.d.ts +2 -2
- package/dist/connection/files/imports/NativeMailImportRow.d.ts +11 -0
- package/dist/connection/mail/ConnectedMailConversation.d.ts +3 -4
- package/dist/connection/mail/ConnectedMailbox.d.ts +1 -4
- package/dist/connection/mail/types.d.ts +2 -4
- package/dist/connection/mail/useMailMessageChange.d.ts +11 -2
- package/dist/connection/mail/useMailboxDefaults.d.ts +6 -3
- package/dist/connection/workspace-access/ConnectedGrantWorkspaceAccessDialog.d.ts +1 -1
- package/dist/document-tools/viewer/index.cjs +1 -1
- package/dist/document-tools/viewer/index.cjs.map +1 -1
- package/dist/document-tools/viewer/index.js +1 -1
- package/dist/document-tools/viewer/index.js.map +1 -1
- package/dist/embed/index.cjs +13 -13
- package/dist/embed/index.js +7 -7
- package/dist/files/import/ImportParts.d.ts +6 -3
- package/dist/files/index.cjs +224 -224
- package/dist/files/index.js +3 -3
- package/dist/index.cjs +337 -336
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +1 -1
- package/dist/studio/index.js +1 -1
- package/dist/workflow-canvas/index.cjs +21 -20
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +11 -10
- package/dist/workflow-canvas/index.js.map +1 -1
- package/dist/workspaces/index.cjs +33 -28
- package/dist/workspaces/index.cjs.map +1 -1
- package/dist/workspaces/index.d.ts +1 -1
- package/dist/workspaces/index.js +3 -2
- package/dist/workspaces/index.js.map +1 -1
- package/dist/workspaces/workspace-roles.d.ts +11 -4
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/chunk-6S2LRXJ4.js.map +0 -1
- package/dist/chunk-6TYZ33WH.cjs.map +0 -1
- package/dist/chunk-FKFUAU4F.js.map +0 -1
- package/dist/chunk-HC54CTGN.cjs.map +0 -1
- package/dist/chunk-JJ5BXK3Q.cjs.map +0 -1
- package/dist/chunk-SOS2WASA.cjs.map +0 -1
- package/dist/chunk-TOT4HHHN.js.map +0 -1
package/dist/connect/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useMemberLookup, ConnectedTagEntity } from '../chunk-
|
|
3
|
-
export { ConnectedTagEntity, documentFieldContent, useMemberLookup } from '../chunk-
|
|
2
|
+
import { useMemberLookup, ConnectedTagEntity } from '../chunk-ZR4TH6DZ.js';
|
|
3
|
+
export { ConnectedTagEntity, documentFieldContent, useMemberLookup } from '../chunk-ZR4TH6DZ.js';
|
|
4
4
|
import { useSlashField, DEFAULT_DOCUMENT_VIEWER_TABS } from '../chunk-LWCLAAEX.js';
|
|
5
5
|
export { DEFAULT_ASK_SUGGESTIONS, DEFAULT_DOCUMENT_VIEWER_LABELS, DEFAULT_DOCUMENT_VIEWER_TABS } from '../chunk-LWCLAAEX.js';
|
|
6
6
|
import { useBillingSupport, DEFAULT_SPEND_CAP_PENCE, findProPrices, packPrice, calcSavingsPercent, parseBudgetPounds, formatMoney, isProProject, useSelfExtId, addonCharge, formatPeriodEnd, quoteParts, taxDetail, money2, ANNUAL_PREMIUM_AI_NOTE, totalWithTaxWord, planBadgeView, isAddonBudgetZero, useRewardBalance, getQuotaItems, aiUsageResetTimestamp, formatResetDate, ZERO_BUDGET_MESSAGE, CAP_REACHED_MESSAGE, quoteError, POSTCODE_COUNTRIES, addonPrice, checkoutBlockPriceText, ADDON_BLOCK_AI_GBP, STORAGE_BLOCK_GB, quoteTotalLine, PRO_PACKS, apiErrorDetail, checkoutItemsLabel, planNameForPacks, proTierName, projectGroupBilling, SUGGESTED_DAILY_CAP_PER_USER, TAX_LOCATION_INVALID, FREE_COLLABORATORS, FREE_AI_GBP, FREE_STORAGE_MB, MAX_CHECKOUT_BLOCKS, PRO_AI_GBP, PRO_STORAGE_GB, plusVat, planPreviewLines, PAY_TODAY_UNPRICED, PLAN_CHOICE_PACKS, reduceBounds, splitBlocks, autoRoom, nextRemovedBlockSize, stepLabel, addStepCaption, blocksLabel, MIN_AUTO_TOPUP_THRESHOLD_GBP, USAGE_CAP_LABEL, USAGE_CAP_HELP, nextPeriodBody, addonSettingsBody, budgetSavedMessage } from '../chunk-FNGFSHVE.js';
|
|
@@ -8,27 +8,27 @@ export { CAP_REACHED_MESSAGE, ZERO_BUDGET_MESSAGE, aiUsageResetTimestamp, format
|
|
|
8
8
|
export { ConnectedMailInviteCard } from '../chunk-BT2DDHMM.js';
|
|
9
9
|
import { SharedFileView, SharedFilesInbox } from '../chunk-4ML5AMMO.js';
|
|
10
10
|
export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-Y5P5ZMHQ.js';
|
|
11
|
-
import { ConnectedTaskComposer, useProjectSummaries, useProjectSummary, primaryProjectWorkspace, ConnectedThreadTaskBar, useTaskPeople, ConnectedTaskActivityDialog } from '../chunk-
|
|
12
|
-
export { ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedThreadTaskBar, ConnectedWorkflowHistory, ConnectedWorkflowRunPage, ConnectedWorkflowRunner, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_PAGE_LABELS, WorkflowRunThread, WorkflowRunWorkspaceChangedError, buildProjectSummaries, primaryProjectWorkspace, useEnsureRequiredLabels, useProjectSummaries, useProjectSummary, useRenderTaskPerson, useRequiredLabels, useTaskPeople, useWorkflowsPageState, workflowRunView } from '../chunk-
|
|
13
|
-
import {
|
|
11
|
+
import { ConnectedTaskComposer, useProjectSummaries, useProjectSummary, primaryProjectWorkspace, ConnectedThreadTaskBar, useTaskPeople, ConnectedTaskActivityDialog } from '../chunk-QVY5DH2R.js';
|
|
12
|
+
export { ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedThreadTaskBar, ConnectedWorkflowHistory, ConnectedWorkflowRunPage, ConnectedWorkflowRunner, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_PAGE_LABELS, WorkflowRunThread, WorkflowRunWorkspaceChangedError, buildProjectSummaries, primaryProjectWorkspace, useEnsureRequiredLabels, useProjectSummaries, useProjectSummary, useRenderTaskPerson, useRequiredLabels, useTaskPeople, useWorkflowsPageState, workflowRunView } from '../chunk-QVY5DH2R.js';
|
|
13
|
+
import { WorkspaceTypeBadge, PageLoading, WorkspacePageFrame, WorkspaceIdentityPanel, WorkspaceProjectSlot, WorkspaceAudienceLine, CommonWorkspaceToggle, ExpandableSection, LeaveFooter, ItalicNone, WorkspaceList, WorkspaceGroup, WorkspaceCard } from '../chunk-P5RTO2WL.js';
|
|
14
14
|
import { ProjectPicker, ProjectOptionRow, WorkspaceFormModal, ModalActionRow, FormErrorBanner, WorkspaceFieldsView, FormActions } from '../chunk-SEBNGA3F.js';
|
|
15
15
|
import { isAgentAccount, workspaceConversationCount, workspaceDocumentCount, isListedWorkspace, WORKSPACE_CATEGORY_FILTERS, projectFilterId, workspaceFilterAttributes, groupWorkspacesByProject, byRecentUpdate } from '../chunk-57CG33XJ.js';
|
|
16
|
-
import { ConnectedProfileCard, ConnectedSecuritySection, ConnectedIdentityVerification, ConnectedSessionsRow, ConnectedDangerZone, ConnectedLogoutDialog, ConnectedNotificationPreferences, useSsoSignIn, ConnectedModelSelector, useAuthPages, ConversationComposer, AgentSteps, MessageLiveSeconds, resolveSsoName, completeSsoSignIn, ConnectedForgotPassword, ConnectedPasswordChangeDialog, useContextualHints, ssoAccountStatus, AskAgainContext, ConnectedMessageArea } from '../chunk-
|
|
17
|
-
export { AgentSteps, AnswerTable, ArbiChat, AskAgainContext, ConnectedBranchControls, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedCompactLogin, ConnectedConversationDocumentPicker, ConnectedDangerZone, ConnectedEmbeddedChat, ConnectedForgotPassword, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedModelSelector, ConnectedNotificationPreferences, ConnectedPasswordChangeDialog, ConnectedProfileCard, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedThreadsPreview, ConversationComposer, EmbeddedChatPanel, MessageDetailsModal, MessageLiveSeconds, PENDING_RECOVERY_KEY, PREMIUM_TIER_TAG, RunningSubagents, STANDARD_TIER_TAG, WorkflowStepMessage, backUpOnSignup, defaultHost, renderConnectedUser, renderSessionStatusIcon, resolveSsoName, useAuthPages, useContextualHints, useModelPicker, useOpenChunk, useOpenWorkspaceIcon, useSsoSignIn, useWorkspaceDocTitles } from '../chunk-
|
|
16
|
+
import { ConnectedProfileCard, ConnectedSecuritySection, ConnectedIdentityVerification, ConnectedSessionsRow, ConnectedDangerZone, ConnectedLogoutDialog, ConnectedNotificationPreferences, useSsoSignIn, ConnectedModelSelector, useAuthPages, ConversationComposer, AgentSteps, MessageLiveSeconds, resolveSsoName, completeSsoSignIn, ConnectedForgotPassword, ConnectedPasswordChangeDialog, useContextualHints, ssoAccountStatus, AskAgainContext, ConnectedMessageArea } from '../chunk-JAIMJTXQ.js';
|
|
17
|
+
export { AgentSteps, AnswerTable, ArbiChat, AskAgainContext, ConnectedBranchControls, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedCompactLogin, ConnectedConversationDocumentPicker, ConnectedDangerZone, ConnectedEmbeddedChat, ConnectedForgotPassword, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedModelSelector, ConnectedNotificationPreferences, ConnectedPasswordChangeDialog, ConnectedProfileCard, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedThreadsPreview, ConversationComposer, EmbeddedChatPanel, MessageDetailsModal, MessageLiveSeconds, PENDING_RECOVERY_KEY, PREMIUM_TIER_TAG, RunningSubagents, STANDARD_TIER_TAG, WorkflowStepMessage, backUpOnSignup, defaultHost, renderConnectedUser, renderSessionStatusIcon, resolveSsoName, useAuthPages, useContextualHints, useModelPicker, useOpenChunk, useOpenWorkspaceIcon, useSsoSignIn, useWorkspaceDocTitles } from '../chunk-JAIMJTXQ.js';
|
|
18
18
|
import { useSlashSkillWorkflows, ConnectedWorkflowStart, useLaunchWorkflow } from '../chunk-GARDQALH.js';
|
|
19
19
|
export { ConnectedWorkflowStart, PROMPT_BINDINGS, parseTypedSkill, useLaunchWorkflow, useSlashItems, useSlashMenuItems, useSlashSkillWorkflows } from '../chunk-GARDQALH.js';
|
|
20
|
-
import { useSelectWorkspace } from '../chunk-
|
|
21
|
-
export { useConnectedThreadActivity } from '../chunk-
|
|
22
|
-
import { DocumentUser } from '../chunk-
|
|
23
|
-
export { DocumentUser } from '../chunk-
|
|
20
|
+
import { useSelectWorkspace } from '../chunk-M6DTLHCN.js';
|
|
21
|
+
export { useConnectedThreadActivity } from '../chunk-M6DTLHCN.js';
|
|
22
|
+
import { DocumentUser } from '../chunk-K2G2P66L.js';
|
|
23
|
+
export { DocumentUser } from '../chunk-K2G2P66L.js';
|
|
24
24
|
import { useIsExternalAccount, withoutMarketplace, useNamedWorkflows, isExternalAccount, useWorkflowDefinitions, useCanBrowseSkills, useWorkflowTasks } from '../chunk-DBHBJIF4.js';
|
|
25
25
|
export { useCanBrowseSkills, useIsExternalAccount, useSkillsEnabled, useWorkflowDefinitions, useWorkflowTasks } from '../chunk-DBHBJIF4.js';
|
|
26
|
+
import { FactSearchBar, FactSearchTotals, FactSearchPending, FactSearchNoMatches, FactSearchResult, FactsToolbar, FactsFieldsButton, FactComposer, FactDateInput, FactSourcesRow, FactsLoading, FactsLoadError, FactsEmptyState, FactsCalendar, FactsGanttPane, FactsBulkBar, FactFieldRow, FactLabelsCell, enableFactTableColumnResize, createFactColumns, FactRowActions, FactSourceGroup, sourceDocCount, DEFAULT_FACT_COLUMN_LABELS } from '../chunk-M3OK6KGR.js';
|
|
27
|
+
import { docIdsOf, toFactCitations, EMPTY_FACT_DATE_FIELDS, withoutChunk, factDateSpanToFields, withChunk, factDateFieldsToSpan, withoutDoc, withDoc, citedVersionRef } from '../chunk-CDDOLWSF.js';
|
|
26
28
|
import { HomeLoadError, HomeFrame, HomeMain, HomeCenteredScroll, HomeCenteredColumn, DashboardRoot, DashboardBand, DashboardColumns, RecentList, DASHBOARD_QUIET_ACTION_CLASS, DashboardAction, FactsStrip, ActionMenuDialog, GettingStartedStrip, FactMark, CreateTile } from '../chunk-VY3HTT37.js';
|
|
27
29
|
import { ProjectBandTitle, PlainBandTitle } from '../chunk-DEJ3EWPK.js';
|
|
28
30
|
import '../chunk-CPLZ6XGT.js';
|
|
29
31
|
import '../chunk-5PAQWN5U.js';
|
|
30
|
-
import { FactSearchBar, FactSearchTotals, FactSearchPending, FactSearchNoMatches, FactSearchResult, FactsToolbar, FactsFieldsButton, FactComposer, FactDateInput, FactSourcesRow, FactsLoading, FactsLoadError, FactsEmptyState, FactsCalendar, FactsGanttPane, FactsBulkBar, FactFieldRow, FactLabelsCell, enableFactTableColumnResize, createFactColumns, FactRowActions, FactSourceGroup, sourceDocCount, DEFAULT_FACT_COLUMN_LABELS } from '../chunk-M3OK6KGR.js';
|
|
31
|
-
import { docIdsOf, toFactCitations, EMPTY_FACT_DATE_FIELDS, withoutChunk, factDateSpanToFields, withChunk, factDateFieldsToSpan, withoutDoc, withDoc, citedVersionRef } from '../chunk-CDDOLWSF.js';
|
|
32
32
|
export { EMBEDDED_SELECTED_DOCS_KEY, SELECTED_WORKSPACE_KEY } from '../chunk-PTCHPYWX.js';
|
|
33
33
|
import '../chunk-AZDPAV7E.js';
|
|
34
34
|
import { useConnectedWorkspaceRole, ConnectedWorkflowsTable } from '../chunk-IIUEDF3F.js';
|
|
@@ -44,34 +44,34 @@ import { compareDocumentsIn } from '../chunk-QTSNHGSI.js';
|
|
|
44
44
|
export { compareDocumentsIn, useDocumentViewerSupport, useViewerIsDetached, useViewerPassageCitation, useViewerStreamingDocument } from '../chunk-QTSNHGSI.js';
|
|
45
45
|
import { ConnectedDocumentToolsProvider } from '../chunk-KYLQRS3O.js';
|
|
46
46
|
export { ConnectedDocumentToolsProvider } from '../chunk-KYLQRS3O.js';
|
|
47
|
-
import { usePendingFolders, useFilesStore, useAiReviewStore, useFilesPrefs, filesViewMode, useFilesGridStates, FILES_PREFS_KEY, useFilesDialogs } from '../chunk-
|
|
48
|
-
export { FILES_PREFS_KEY, filesViewMode, useAiReviewStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, usePendingFolders } from '../chunk-
|
|
47
|
+
import { usePendingFolders, useFilesStore, useAiReviewStore, useFilesPrefs, filesViewMode, useFilesGridStates, FILES_PREFS_KEY, useFilesDialogs } from '../chunk-NTXO6IYE.js';
|
|
48
|
+
export { FILES_PREFS_KEY, filesViewMode, useAiReviewStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, usePendingFolders } from '../chunk-NTXO6IYE.js';
|
|
49
49
|
import { DocumentWorkspaceContext, useDocumentWorkspace, ConnectedMarkdown, WorkspaceDocumentReference } from '../chunk-3PV25ICC.js';
|
|
50
50
|
export { ConnectedMarkdown, DocumentWorkspaceContext, ExternalLink, InternalDocLink, MermaidDiagram, WorkspaceDocumentReference, useDocumentWorkspace } from '../chunk-3PV25ICC.js';
|
|
51
|
-
import { FolderTile, FileTile, openPendingSyncDialog, UserAvatar, useDocumentFolders, DocumentNameCell, DocumentFolderCell, RelatedDocumentsCell, DocumentSharedCell, DocumentLabelsCell, StatusCell } from '../chunk-
|
|
52
|
-
export { ConnectedPendingSyncDialog, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, FileTooltipContent, RelatedDocumentsCell, StatusCell, UserAvatar, isActiveDocumentStatus, openPendingSyncDialog, parseQuotaError, startMenuItem, useDocumentFolders } from '../chunk-
|
|
51
|
+
import { FolderTile, FileTile, openPendingSyncDialog, UserAvatar, useDocumentFolders, DocumentNameCell, DocumentFolderCell, RelatedDocumentsCell, DocumentSharedCell, DocumentLabelsCell, StatusCell } from '../chunk-I6WRLTWU.js';
|
|
52
|
+
export { ConnectedPendingSyncDialog, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, FileTooltipContent, RelatedDocumentsCell, StatusCell, UserAvatar, isActiveDocumentStatus, openPendingSyncDialog, parseQuotaError, startMenuItem, useDocumentFolders } from '../chunk-I6WRLTWU.js';
|
|
53
53
|
import { DraggableHeader, PremiumModelsFrame, ConnectionsLoading, ConnectionsError, ConnectionsEmpty, UsageToggle, SettingsPage, UsageSummary, AppearanceSettings, SettingsSwitchRow, SettingsSwitchGroup, callsSwitchState, WorkOfflineToggle, UsageLineChart, PlanStack, PlanNotice, PlanPickerCard, PlanPickerHeader, PricingToggle, PromoCodeInput, PlanActionButton, formatSessionTtl, EmailWorkspaceDialogView, SyncDialogBody, SyncField, SyncSelect, SyncSmallNote, SyncLoading, SyncReconnectNotice, SyncNote, SyncTreeFrame, SyncLinkRow, SyncLinkButton, SyncOptions, SyncOptionToggle, SyncDialogFooter, InvoicesDialog, PlanDialogFrame, ProjectList, RenameDialog, SharedProjectsSection, SharedProjectRow, MoreInfo, MoreInfoList, UsagePanel, UsageQuotaHint, UsageSection, UsageLegend, UsageProportionBar, UsageActionButton, ProjectDetailHeader, PlanBadge, ProjectDetailSection, QuotaExceededDialogView, InviteContactsDialog, WelcomeDialog, applyTriStateFilters, PanelFrame, PanelAddButton, PanelFrameBody, PanelScroll, PanelActionsRow, applyInvertedIndexFilter, ConfigSwitcherBar, PanelNote, ConversationTitleSection, ModelSelectionSection, FloatingPanel, ProjectRow, QuotaMeter, FilterChip, buildInvertedIndex, serverConnectionView, ServerConnectionButton, ModelProviderLabel, PlanInfoPopover, PlanCardGrid, ReferralRewardSummary, CheckoutDialogFrame, SyncFolderRow, SyncFolderStatus, PlanTierOption, PlanActionRow, SubscriptionStatusView, DailyCapField, ConnectionCard, ReferralRewardNote } from '../chunk-N77UYRV7.js';
|
|
54
|
-
import { FilterButton, searchExplorerDocuments, buildExplorerEntries, collectFolderDocs, joinFolderPath, getExplorerDisplayName, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, canDeleteDocument, ExplorerFrame, ExplorerStage, ExplorerScroller, ExplorerLoadingTiles, ExplorerEmpty, ExplorerMarquee, ExplorerDropOverlay, ExplorerDragPreview, AiReviewDialogView, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, VendorLogo, FilesAddMenu, UploadFrame, PrivacyExplainerModal, parseFolderSegments, FolderFilterButton, FolderPickerRow, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, MoveToFolderDialog, FolderCommandList, BulkTagEditorDialog, BulkReplaceDialog, DOCUMENTS_ROW_HEIGHT_INITIAL, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, LabelMultiSelectView, DocStatusIcon, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canChangeVisibility, canEditDocumentFields, FieldLabelsSelect, UploadFooterBar, ShareToggle, ImportPanel, ImportFamilySection, ImportList, ImportRow, TagColumnHeader, CheckboxCell, TaskSection, UploadDropArea, ImportSummary, ImportAside, FolderSummary,
|
|
54
|
+
import { FilterButton, searchExplorerDocuments, buildExplorerEntries, collectFolderDocs, joinFolderPath, getExplorerDisplayName, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, canDeleteDocument, ExplorerFrame, ExplorerStage, ExplorerScroller, ExplorerLoadingTiles, ExplorerEmpty, ExplorerMarquee, ExplorerDropOverlay, ExplorerDragPreview, AiReviewDialogView, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, VendorLogo, FilesAddMenu, UploadFrame, PrivacyExplainerModal, parseFolderSegments, FolderFilterButton, FolderPickerRow, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, MoveToFolderDialog, FolderCommandList, BulkTagEditorDialog, BulkReplaceDialog, DOCUMENTS_ROW_HEIGHT_INITIAL, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, LabelMultiSelectView, DocStatusIcon, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canChangeVisibility, canEditDocumentFields, FieldLabelsSelect, UploadFooterBar, ShareToggle, ImportPanel, ImportFamilySection, ImportList, ImportRow, TagColumnHeader, CheckboxCell, TaskSection, UploadDropArea, ImportSummary, ImportAside, FolderSummary, ImportRunActions, ImportProgress, ImportHint, ImportActionButton, UploadUrlButton } from '../chunk-SYMZ6L3C.js';
|
|
55
55
|
import { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
|
|
56
56
|
import { ViewToggle, DocumentViewToggle } from '../chunk-OHRWYRTH.js';
|
|
57
|
-
import { formatBytes, reducedRateNote, RECENTLY_DELETED_NOTE, kindRows, usedPct, usedOfLimit, MAIL_FOLDER_LABELS, itemTitle, ITEM_LABELS, KIND_LABELS } from '../chunk-653XMGF4.js';
|
|
58
57
|
import { DatabaseList, NewDatabaseDialog, DatabaseToolbar, DatabaseTable, DatabaseRowDetail, DatabaseColumnDialog, rowTitle, OPEN_ROW_COL_ID, ADD_COLUMN_COL_ID } from '../chunk-VJQCOZ7O.js';
|
|
58
|
+
import { formatBytes, reducedRateNote, RECENTLY_DELETED_NOTE, kindRows, usedPct, usedOfLimit, MAIL_FOLDER_LABELS, itemTitle, ITEM_LABELS, KIND_LABELS } from '../chunk-653XMGF4.js';
|
|
59
59
|
import { SavedSignatureSettings, SignatureCertificate } from '../chunk-VSFLROLB.js';
|
|
60
60
|
import '../chunk-2YOVK524.js';
|
|
61
61
|
import { SettingsPanel, SettingsDisclosure, SettingsSection, SettingsCard, SettingsRow, SettingsActionRow } from '../chunk-PBQNZWSX.js';
|
|
62
62
|
import '../chunk-UIHNCQAA.js';
|
|
63
63
|
import '../chunk-IA5BYEO7.js';
|
|
64
|
-
import { WorkspaceActivityList, TagTable, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, Toolbar, documentCount, useTipsPlacement, tagTableDocx, tagTableLabels, TagDetail, tagDetailLabels, tagKindDescription, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-
|
|
64
|
+
import { WorkspaceActivityList, TagTable, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, Toolbar, documentCount, useTipsPlacement, tagTableDocx, tagTableLabels, TagDetail, tagDetailLabels, tagKindDescription, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-BQHTBUOA.js';
|
|
65
65
|
import { ThemeEditor } from '../chunk-4FV5DO3V.js';
|
|
66
66
|
import '../chunk-J77BACGX.js';
|
|
67
67
|
import { WorkspaceNotificationMenu, ThreadFollowMenuItem, ThreadFollowButton } from '../chunk-66NMPTOH.js';
|
|
68
68
|
import { MemberAvatarStack } from '../chunk-VGHPCF7Q.js';
|
|
69
69
|
import { WELCOME_REPLAY_VIEW, startWelcomeReplay } from '../chunk-SK3GBHPJ.js';
|
|
70
|
-
import '../chunk-UJE32SST.js';
|
|
71
70
|
import { TimelineZoomControl } from '../chunk-QCK3YKT4.js';
|
|
71
|
+
import '../chunk-UJE32SST.js';
|
|
72
72
|
import { renderSearchSnippet, SearchGroupHeader, isMeaningMatch, extractHighlightTerms, searchNouns, SearchEmptyState, passesRelevanceCutoff, groupSearchResults, SearchPillToggle, SearchPagination, SearchPageFrame, SearchPageHeader, ApplyLabelDialog, SearchPageBody, SearchToolbarRow, SearchBar, SearchControlsBar, RelevanceThreshold, SearchTotalsHeadline, ApplyLabelButton, getSearchMatchHint, SearchResultsMain, SearchResultsInner, SearchErrorBanner, SearchResultList, SearchGroupCard, SearchNoResults } from '../chunk-QUI2HEKV.js';
|
|
73
73
|
import { SearchHit } from '../chunk-BZWWKFMS.js';
|
|
74
|
-
import { PlainMailBodyEditor, MemberListLoading, MemberBulkActions, RecipientPicker, buildMailFolderTree, MailFolderTree, AddContactsResults, AddContactsForm, emailTokens, EMPTY_CONTACT_FORM, contactToForm, contactStatusLabel, summarizeImport, matchesContact, contactName, primaryEmail, ActionMenu, DmThreadFrame, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, draftMailCompose, replyMailCompose, emptyMailCompose, MAIL_GRID_ID, MailGrid, NEEDS_CONNECTION, MailMessageView, planContactInvites, MAX_INVITE_EMAILS, summarizeUnsentInvites, applyContactInviteResults, summarizeContactInvites, failContactInvites, validateContactForm, inviteEmail, formToContactCard, MemberNameCell, MemberMutedText, MemberRoleCell, RoleSelect, DEFAULT_CONTACT_OUTCOME_LABELS, contactOutcomeMessage, MailDocumentPicker, MailConversationView, MailActionBar, mailMoveTargets, parseMailRecipients, MailMessageContent, printMail } from '../chunk-
|
|
74
|
+
import { PlainMailBodyEditor, MemberListLoading, MemberBulkActions, RecipientPicker, buildMailFolderTree, MailFolderTree, AddContactsResults, AddContactsForm, emailTokens, EMPTY_CONTACT_FORM, contactToForm, contactStatusLabel, summarizeImport, matchesContact, contactName, primaryEmail, ActionMenu, DmThreadFrame, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, draftMailCompose, replyMailCompose, emptyMailCompose, MAIL_GRID_ID, MailGrid, NEEDS_CONNECTION, MailMessageView, planContactInvites, MAX_INVITE_EMAILS, summarizeUnsentInvites, applyContactInviteResults, summarizeContactInvites, failContactInvites, validateContactForm, inviteEmail, formToContactCard, MemberNameCell, MemberMutedText, MemberRoleCell, RoleSelect, DEFAULT_CONTACT_OUTCOME_LABELS, contactOutcomeMessage, MailDocumentPicker, MailConversationView, MailActionBar, mailMoveTargets, parseMailRecipients, MailMessageContent, printMail } from '../chunk-RUV2ERID.js';
|
|
75
75
|
import '../chunk-NBV56SGU.js';
|
|
76
76
|
import { isDefinitionsLabel, DOCX_MIME_TYPE, toDefinitionSource, definitionLabels } from '../chunk-IYUKJESY.js';
|
|
77
77
|
import { decodeWhitespaceEntities } from '../chunk-AF6RDAJF.js';
|
|
@@ -86,12 +86,13 @@ import '../chunk-ELA7Y5YW.js';
|
|
|
86
86
|
import { PassagePill } from '../chunk-3IT5LPLF.js';
|
|
87
87
|
import { useCopyText } from '../chunk-FACZSNRJ.js';
|
|
88
88
|
import '../chunk-K4BGOPGG.js';
|
|
89
|
+
import '../chunk-OC2PD52M.js';
|
|
89
90
|
import { DataTable, MetricCard } from '../chunk-I46XTM3W.js';
|
|
90
91
|
import { tid } from '../chunk-AMTWY22T.js';
|
|
91
92
|
import { PageHeader } from '../chunk-XCVLUXFP.js';
|
|
92
93
|
import '../chunk-VIIBJBTX.js';
|
|
93
|
-
import '../chunk-
|
|
94
|
-
import {
|
|
94
|
+
import { buildLibrarySkills, filterLibrarySkills, SKILL_SOURCE_LABELS, SKILL_TYPE_LABELS, SkillViewToggle, SkillFilterChips, SkillTile, SkillGenerateForm, SkillLibraryDetail, parseSkillFrontmatter, SKILL_MAIN_FILENAME, SkillEditForm, DEFAULT_AGENT_CAPABILITIES, stripPersonaPreamble, AgentCreator, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TEMPLATES, AgentAvatarField, isValidAgentName, AgentConnectInstructions, ConsentPage, ConsentCard, ConsentHeader, ConsentNotice, ConsentSection, ConsentBulletList, ConsentStrong, ConsentText, ConfigForm, AgentEditView, AgentMainView, AgentCreatedView, AgentCreateView, moveTargets, NewThreadDialog, openWorkflowLaunch, useWorkflowLaunchRequest, WorkflowRunStatus, ThreadStatusLine, AgentBar, AgentBarNotes, AgentBarQueuedNote, AgentBarProbeAnswer, ConversationListView, ConversationTurnSpeaker, filterConversationRows, ConsentMessage, CopyableUrl, ConsentPermissionList, ConsentActions, ConsentFootnote, AgentBarStatus, AgentBarIconButton, AgentBarMenu, composePersona, importSkillFile, importSkillFromUrl, skillSlug, serializeSkill, STATUS_LABELS, asTaskStatus, UploadTaskList, TaskEmptyState, workflowToSkillMarkdown, TaskTable, groupAgentTasks, AgentGallery, goalProgress, AgentCard, closeWorkflowLaunch, defaultTaskComposerValues } from '../chunk-ASOPBELQ.js';
|
|
95
|
+
import { getRoleBadgeClass, formatRole, getRoleDescription } from '../chunk-JCMKYQGZ.js';
|
|
95
96
|
import { EntityChip, fromPlanSteps, getCurrentAgentStepPresentation } from '../chunk-OFF2PR4W.js';
|
|
96
97
|
import '../chunk-LRPGXNMA.js';
|
|
97
98
|
import { BUILTIN_SKILLS, isSkillPackWorkflow, renderWorkflowIcon, newThreadToRequest, ANNOTATE_ID } from '../chunk-ZLIQ5Q2J.js';
|
|
@@ -107,8 +108,8 @@ import { TriStateFilterMenu } from '../chunk-ZQ5YTC3P.js';
|
|
|
107
108
|
import '../chunk-RLWIUUQ5.js';
|
|
108
109
|
import { SelectionBar, SelectionBarAction } from '../chunk-L3BEWZWT.js';
|
|
109
110
|
import { FilterInput } from '../chunk-P4CH2ATT.js';
|
|
110
|
-
import { ActionLink } from '../chunk-U53SIJES.js';
|
|
111
111
|
import { GridView } from '../chunk-IU5CHOEU.js';
|
|
112
|
+
import { ActionLink } from '../chunk-U53SIJES.js';
|
|
112
113
|
import { StreamedArtifactFrame } from '../chunk-Z42EEBON.js';
|
|
113
114
|
import { isDeepLinkPath, parseHref, hrefFor } from '../chunk-N7X5O7B5.js';
|
|
114
115
|
import { RecoveryKeyDialog, AuthLayout, AuthField, AuthLink, AuthAlert, AuthConsent } from '../chunk-FVZ2CN4A.js';
|
|
@@ -152,8 +153,8 @@ import '../chunk-PMJPPXX5.js';
|
|
|
152
153
|
import { stepStatesFromActivity, canAssign, assigneeName, runFieldsOf } from '../chunk-XEZCSRFG.js';
|
|
153
154
|
import { inputsFromContext, workflowsAccepting, validateInputs, defaultInputs, buildLaunch, skillToWorkflow } from '../chunk-ECYOIRXR.js';
|
|
154
155
|
import '../chunk-XDDORJPA.js';
|
|
155
|
-
import { fmtDate } from '../chunk-X5YMI6A7.js';
|
|
156
156
|
import { useIsPhone, useMediaQuery } from '../chunk-SLSBJRWW.js';
|
|
157
|
+
import { fmtDate } from '../chunk-X5YMI6A7.js';
|
|
157
158
|
import { ConversationFilter } from '../chunk-H773F7OR.js';
|
|
158
159
|
import '../chunk-NPLYHR2E.js';
|
|
159
160
|
import { useBlocksEnvironment, useRequestedSettingsSection, useIntentRequest, mailComposeRequest, mailFolderRequest, mailDraftRequest, mailMessageRequest, useCalendarViewStore, conversationStartRequest } from '../chunk-YUHSDOPW.js';
|
|
@@ -163,12 +164,12 @@ import { ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../
|
|
|
163
164
|
import { buildDeepLinkUrl } from '../chunk-SV65E4QW.js';
|
|
164
165
|
import '../chunk-UP3GCNPM.js';
|
|
165
166
|
import '../chunk-VUNV25KB.js';
|
|
166
|
-
import { useDocument, usePeople, useArbiSession, useArbiSessionState, isPanelOpen, DOCUMENT_VIEWER_PANEL, useArbiSessionStore, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, defaultLayoutState, selectDraft, assistantLabels, useArbi, useAudioRecorder, MicRecordingOverlay, useWorkspaces, isNetworkFailure, hasPendingMailChange, OUTBOX_FOLDER, useOfflineMailActive, useConversations, useRunConversation, useWorkspaceActivity, useWorkspaceUsers, getWorkspaceKind, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, describeCalendarNotification, notificationUserName, describeServerNotification, isSignatureNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useTransientView, useCallsEnabled, useDocuments, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, useReconnect, usePendingSyncCounts, useArbiHost, useOutbox, usePendingMailChanges, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSkills, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useInstallSkillPack, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useAgents, useDeleteAgents, useAgentSession, useAgentChats, useStartAgentSession, useCloseAgentSession, useSwitchWorkspace, useWorkItems, ArtifactCanvas, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useGenerateDocTags, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useFactsSearch, useShellWorkspaces, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailPolicy, useMailAccounts, useProfile, useUserSettings, useUpdateUserSettings, useDismissedTips, useAvailableModels, useModelConnections, useDirectModelUsage, useSaveModelConnection, useRemoveModelConnection, useUnlockModelConnections, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, formatGbp, useFeatureSwitch, useCallsConfig, useCurrentUser, useSyncOfflineMailbox, useOfflineMailSettings, useOfflineMailStatus, useArbiWsStatus, useWorkOffline, useFeature, useIsEntitled, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useContacts, useInviteContacts, useDeleteContact, useSetWorkspaceMemberRoles, usePeopleSearch, useIsSlow, useProducts, useCreateProject, useDeleteProject, toShellWorkspace, useUploadDocuments, useSetWorkspaceHouseTemplate, useSetDeploymentHouseTemplate, supportsHouseTemplates, workspaceHouseTemplateId, isDeploymentAdmin, useHouseTemplateCandidates, useWorkspaceArchive, useArchiveWorkspace, useSessions, useAuthorizeLimits, useTerminateSession, useUnarchiveWorkspace, isArchiveMoving, useCanCreateProjects, PROJECT_CREATION_DENIED_REASON, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, MODEL_GROUP_LABELS, useRefreshProject, useBoxRole, cachedQuotaUsedUp, useDeleteWorkspaces, useArchiveProgressPolling, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useRequestWorkspaceAccess, ConversationList, dmTabId, useUnreadByPeer, useConfigSchema, useSaveConfig, ArbiBotHeadIcon, TaskThreadPendingError, useStartTaskQuery, useCreateWork, useCalendarEvents, useCalendars, useUploadFromUrls, useCurrentWorkspace, useFeatureCheck, useDocumentsSupport, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useOfflineDocumentIds, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useLocalDrafts, queueMailChange, enqueueOutbox, deleteLocalDraft, saveLocalDraft, loadOfflineMailAttachment, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, useMailConversations, toMailConversation, groupMailConversations, useNativeThreadKeys, mailConversationKey, MailOfflineUnavailableError, accountPath, useClaimSecureMail, useCanHostCalls, useOpenCallMeetingChat, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, getPublicBookingPage, bookPublicSlot, PublicBookingError, useActiveConfigId, useUploadFiles, useUpdateDocTag, useRemoveDocTags, useKeepDocumentsOffline, useRemoveDocumentsOffline, useOpenViewerDocumentId, subscribeDocumentRows, useRefreshDocuments, useArbiWsStore, isTableViewOf, viewsOfTable, useDocumentsLoading, selectViewingDocumentId, useWorkspaceProcessing, DISMISSED_TASK_TTL_MS, useDatabases, useCreateDatabase, useImportDatabase, useChatArrivals, useConversationPendingAuth, openAccessRequest, useSignOut, confirmLosingOfflineMail, useSupportTickets, useSupportTicket, useRateSupportTicket, ImageCropper, useConversationSettings, useConversationActivity, useConversationItems, threadTabId, useUpdateConversation, useAgentRunControl, useDeleteConversation, useCanEditShared, useIsWorkspaceOwner, useWorkflows, useWorkspaceRole, useConversationDocuments, readWorkspaceLastOpened, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, requestPersistentStorage, wipeOfflineMail, mailJson, connectorReturnTo, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, downloadRecoveryFile, cropImage, setWorkOfflineIn, isDeploymentUserNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, inputRequestTitle, WORK_NOTIFICATION_LABELS, ConversationScope, useSessionView, useUpdateFact, useDeleteFact, useCreateFact, usePassageQuotes, useAccountClient, formatGbpPerMillionTokens, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useInvalidateEntitlements, useMoveWorkspaceToProject, useCreateWorkspace, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useCreateGroupChat, useFlushOutbox, retryOutboxItem, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, documentMailAttachment, useReadMailMessage, useMailThread, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useConfig, useSaveConfigField, SHAREPOINT_VENDORS, isDriveSyncVendor, getRelatedTotal, useRelatedDocuments, useDatabase, useDatabaseRows, useUpdateDatabase, useDeleteDatabase, useAddDatabaseRows, useUpdateDatabaseRow, useDeleteDatabaseRows, useImportDatabaseRows, useExportDatabase, DATABASE_ROWS_PAGE, useInvalidateAfterTransfer, useConfigs, useDeleteConfig, isFullConfig, resolveConfigModel, useChatUnreadTotal, useMarkDocumentShared, useConversationData, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, buildPendingFirstTurn, useConversationTurn, useAskAgain, transcriptSegmentOf, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useConversationSearch, useProjectConversationUsage, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useConversation, deleteOutboxItem, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, useCancelMailboxSync, useMailboxSyncProgress, useRefreshConnectorsOnRunEnd, useCancelDriveSync, useDriveFolders, useDriveSyncProgress, useDriveSyncEstimate, useSearchDatabaseRows, callSession, isReplayableArbiMutation, useConnectorAutoSync, workflowRunTitle, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom, useTriggerMailboxSync, useTriggerDriveSync } from '@arbidocs/react';
|
|
167
|
+
import { useDocument, usePeople, useArbiSession, useArbiSessionState, isPanelOpen, DOCUMENT_VIEWER_PANEL, useArbiSessionStore, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, defaultLayoutState, selectDraft, assistantLabels, useArbi, useAudioRecorder, MicRecordingOverlay, useWorkspaces, isNetworkFailure, hasPendingMailChange, OUTBOX_FOLDER, useOfflineMailActive, useConversations, useRunConversation, useWorkspaceActivity, useWorkspaceUsers, getWorkspaceKind, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, describeCalendarNotification, notificationUserName, describeServerNotification, isSignatureNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useTransientView, useCallsEnabled, useDocuments, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, useReconnect, usePendingSyncCounts, useArbiHost, useOutbox, usePendingMailChanges, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSkills, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useInstallSkillPack, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useAgents, useDeleteAgents, useAgentSession, useAgentChats, useStartAgentSession, useCloseAgentSession, useSwitchWorkspace, useWorkItems, ArtifactCanvas, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useGenerateDocTags, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useFactsSearch, useShellWorkspaces, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailPolicy, useMailAccounts, useProfile, useUserSettings, useUpdateUserSettings, useDismissedTips, useAvailableModels, useModelConnections, useDirectModelUsage, useSaveModelConnection, useRemoveModelConnection, useUnlockModelConnections, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, formatGbp, useFeatureSwitch, useCallsConfig, useCurrentUser, useSyncOfflineMailbox, useOfflineMailSettings, useOfflineMailStatus, useArbiWsStatus, useWorkOffline, useFeature, useIsEntitled, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useContacts, useInviteContacts, useDeleteContact, useSetWorkspaceMemberRoles, usePeopleSearch, useIsSlow, useProducts, useCreateProject, useDeleteProject, toShellWorkspace, useUploadDocuments, useSetWorkspaceHouseTemplate, useSetDeploymentHouseTemplate, supportsHouseTemplates, workspaceHouseTemplateId, isDeploymentAdmin, useHouseTemplateCandidates, useWorkspaceArchive, useArchiveWorkspace, useSessions, useAuthorizeLimits, useTerminateSession, useUnarchiveWorkspace, isArchiveMoving, useCanCreateProjects, PROJECT_CREATION_DENIED_REASON, useEnableMailboxSync, useNativeMailFiling, useSetNativeMailFiling, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, MODEL_GROUP_LABELS, useRefreshProject, useBoxRole, cachedQuotaUsedUp, useDeleteWorkspaces, useArchiveProgressPolling, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useRequestWorkspaceAccess, ConversationList, dmTabId, useUnreadByPeer, useConfigSchema, useSaveConfig, ArbiBotHeadIcon, TaskThreadPendingError, useStartTaskQuery, useCreateWork, useCalendarEvents, useCalendars, useUploadFromUrls, useCurrentWorkspace, useFeatureCheck, useDocumentsSupport, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useOfflineDocumentIds, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useLocalDrafts, queueMailChange, enqueueOutbox, deleteLocalDraft, saveLocalDraft, loadOfflineMailAttachment, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, useMailConversations, toMailConversation, groupMailConversations, useNativeThreadKeys, useConnectedMailFiling, mailConversationKey, MailOfflineUnavailableError, accountPath, useClaimSecureMail, useCanHostCalls, useOpenCallMeetingChat, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, getPublicBookingPage, bookPublicSlot, PublicBookingError, useActiveConfigId, useUploadFiles, useUpdateDocTag, useRemoveDocTags, useKeepDocumentsOffline, useRemoveDocumentsOffline, useOpenViewerDocumentId, subscribeDocumentRows, useRefreshDocuments, useArbiWsStore, isTableViewOf, viewsOfTable, useDocumentsLoading, selectViewingDocumentId, useWorkspaceProcessing, DISMISSED_TASK_TTL_MS, useDatabases, useCreateDatabase, useImportDatabase, useChatArrivals, useConversationPendingAuth, openAccessRequest, useSignOut, confirmLosingOfflineMail, useSupportTickets, useSupportTicket, useRateSupportTicket, ImageCropper, useConversationSettings, useConversationActivity, useConversationItems, threadTabId, useUpdateConversation, useAgentRunControl, useDeleteConversation, useCanEditShared, useIsWorkspaceOwner, useWorkflows, useWorkspaceRole, useConversationDocuments, readWorkspaceLastOpened, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, requestPersistentStorage, wipeOfflineMail, mailJson, connectorReturnTo, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, downloadRecoveryFile, cropImage, setWorkOfflineIn, isDeploymentUserNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, inputRequestTitle, WORK_NOTIFICATION_LABELS, ConversationScope, useSessionView, useUpdateFact, useDeleteFact, useCreateFact, usePassageQuotes, useAccountClient, formatGbpPerMillionTokens, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useInvalidateEntitlements, useMoveWorkspaceToProject, useCreateWorkspace, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useCreateGroupChat, useFlushOutbox, retryOutboxItem, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, documentMailAttachment, useMailWorkspacePrimer, sendMailFile, useReadMailMessage, useMailThread, useMailFiling, useStopMailFilingRule, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useConfig, useSaveConfigField, SHAREPOINT_VENDORS, isDriveSyncVendor, getRelatedTotal, useRelatedDocuments, useDatabase, useDatabaseRows, useUpdateDatabase, useDeleteDatabase, useAddDatabaseRows, useUpdateDatabaseRow, useDeleteDatabaseRows, useImportDatabaseRows, useExportDatabase, DATABASE_ROWS_PAGE, useInvalidateAfterTransfer, useConfigs, useDeleteConfig, isFullConfig, resolveConfigModel, useChatUnreadTotal, useMarkDocumentShared, useConversationData, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, buildPendingFirstTurn, useConversationTurn, useAskAgain, transcriptSegmentOf, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useConversationSearch, useProjectConversationUsage, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useConversation, deleteOutboxItem, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, useFileWaitingNativeMail, useCancelMailboxSync, useMailboxSyncProgress, useRefreshConnectorsOnRunEnd, useCancelDriveSync, useDriveFolders, useDriveSyncProgress, useDriveSyncEstimate, useSearchDatabaseRows, callSession, isReplayableArbiMutation, useConnectorAutoSync, workflowRunTitle, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom, useTriggerMailboxSync, useTriggerDriveSync } from '@arbidocs/react';
|
|
167
168
|
export { viewsOfTable } from '@arbidocs/react';
|
|
168
|
-
import { getDocumentTitle, getFileTypeIcon, HoverCard, HoverCardTrigger, HoverCardContent, formatFriendlyDate, getEntityLabel, EntityPill, Badge, ThreadVisibilityIcon, Button, ShieldIcon, EntityIcon, Tooltip, TooltipTrigger, TooltipContent, getUserDisplayName, createUserAvatarIcon, Label, Input, cn, Textarea, Dialog, DialogContent, DialogTitle, DialogDescription, DialogHeader, tagKindNouns, tagKindTitle, getTagTypeLabel, VisibilityToggle, getEntityColor, isImageDocument, IconToggle, Switch, Checkbox, entityNoun, Popover, PopoverTrigger, PopoverContent, formatRelativeTime, getUserAvatarColor, DialogTrigger, CommandGroup, CommandItem, ProjectEntity, DialogFooter, Tabs, TabsList, TabsTrigger, TabsContent, isAgent, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, AgentBadge, PresenceLabel, getDocIcon, Command, CommandInput, CommandList, CommandEmpty, canonicalFolderPath, formatFolderLabel, TagEntity, getDocumentNature, getDocumentAuthor, markdownToPlainText, getDocumentSubject, formatDocDate, getDocumentDate, friendlyFileType, Slider, UserMenu, PopoverAnchor, isDocumentAddableToConversation, DocumentEntity, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, formatCompactLastSeen, ArbiIcon, UserEntity, agentAvatarColors, getUserInitials, ProviderIcon, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Avatar, AvatarImage, AvatarFallback, Progress } from '@arbidocs/react/ui';
|
|
169
|
+
import { getDocumentTitle, getFileTypeIcon, HoverCard, HoverCardTrigger, HoverCardContent, formatFriendlyDate, getEntityLabel, EntityPill, Badge, ThreadVisibilityIcon, Button, ShieldIcon, EntityIcon, Tooltip, TooltipTrigger, TooltipContent, getUserDisplayName, createUserAvatarIcon, Label, Input, cn, Textarea, Dialog, DialogContent, DialogTitle, DialogDescription, DialogHeader, tagKindNouns, tagKindTitle, getTagTypeLabel, VisibilityToggle, getEntityColor, isImageDocument, IconToggle, Switch, Checkbox, entityNoun, Popover, PopoverTrigger, PopoverContent, formatRelativeTime, getUserAvatarColor, DialogTrigger, CommandGroup, CommandItem, ProjectEntity, DialogFooter, Tabs, TabsList, TabsTrigger, TabsContent, isAgent, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, AgentBadge, PresenceLabel, getDocIcon, Command, CommandInput, CommandList, CommandEmpty, canonicalFolderPath, formatFolderLabel, TagEntity, getDocumentNature, getDocumentAuthor, markdownToPlainText, getDocumentSubject, formatDocDate, getDocumentDate, friendlyFileType, Slider, UserMenu, PopoverAnchor, isDocumentAddableToConversation, DocumentEntity, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, formatCompactLastSeen, ArbiIcon, UserEntity, agentAvatarColors, getUserInitials, ProviderIcon, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, RadioGroup, RadioGroupItem, Avatar, AvatarImage, AvatarFallback, Progress } from '@arbidocs/react/ui';
|
|
169
170
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
170
171
|
import { lazy, createContext, memo, useState, useEffect, forwardRef, useRef, useMemo, useLayoutEffect, useCallback, useImperativeHandle, Suspense, useSyncExternalStore, useContext, createElement, Fragment as Fragment$1, useId } from 'react';
|
|
171
|
-
import { Folder, Upload, Eye, Activity, HardDrive, Bell, Info, UserCheck, Trash2, Loader2, Link2, Search, Plus, ArrowLeft, Bot, Tags, NotebookPen, CheckCircle2, Milestone, LogOut, Wifi, RotateCcw, Mail, ExternalLink, Lock, User, HatGlasses, MessageSquare, Code2, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, ChevronDown, ChevronRight, KeyRound, Download, Shield, Star, Check, UserPlus, FolderInput, FileText, Archive, ArchiveRestore, Printer, FolderClock, Users, SquareStack, Table, FolderKanban, Sparkles, Cake, X, UserRound, UserMinus, UsersRound, Phone, MessageCircleMore, MailOpen, BellOff, MailQuestion, MailX, UserStar, AtSign, Video, Camera, Send, FilePlus2, Monitor, Globe, MessagesSquare, ArrowRight, Wand2, Paperclip, CircleCheck, Calendar, Copy, Network, CheckCircle, TriangleAlert, LoaderCircle, File as File$1, FolderOpen, Tag, Settings, Clock, MapPin, Hash, FileType, Fingerprint, Share2, Columns3, EyeOff, ArrowUp, ArrowDown, ZoomOut, Eraser, ClockFading, Infinity, Bug, Crop, Undo2, ImageUp, MessageCircleQuestionMark, Wrench, RotateCw, Minus, Link, ClipboardList, Lightbulb, Square, Table2, CalendarDays, ShieldCheck, CalendarClock, Zap, KeySquare, BookUser, CheckCheck, FolderUp, ArrowUpCircle, Contact, Scale, MoreHorizontal, Pencil, BookA, Quote, Workflow, RefreshCw, WifiOff, UserCog, SquareDashedMousePointer, Settings2, Megaphone, Library, LayoutGrid, FolderTree, Files, Crown, Compass, Inbox, CalendarX, CalendarCheck, Mic, Play, Pause, BrainCircuit, Minimize2, Maximize2, AlertCircle, HardDriveDownload, CalendarSearch, DoorOpen, AlertTriangle, CloudOff } from 'lucide-react';
|
|
172
|
+
import { Folder, Upload, Eye, Activity, HardDrive, Bell, Info, UserCheck, Trash2, Loader2, Link2, Search, Plus, ArrowLeft, Bot, Tags, NotebookPen, CheckCircle2, Milestone, LogOut, Wifi, RotateCcw, Mail, ExternalLink, Lock, User, HatGlasses, MessageSquare, Code2, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, ChevronDown, ChevronRight, KeyRound, Download, Shield, Star, Check, UserPlus, FolderInput, FileText, Archive, ArchiveRestore, Printer, FolderClock, Users, SquareStack, Table, FolderKanban, Sparkles, Cake, X, UserRound, UserMinus, UsersRound, Phone, MessageCircleMore, MailOpen, BellOff, MailQuestion, MailX, UserStar, AtSign, Video, Camera, Send, FilePlus2, Monitor, Globe, MessagesSquare, ArrowRight, Wand2, Paperclip, CircleCheck, Calendar, Copy, Network, CheckCircle, TriangleAlert, LoaderCircle, File as File$1, FolderOpen, Tag, Settings, Clock, MapPin, Hash, FileType, Fingerprint, Share2, Columns3, EyeOff, ArrowUp, ArrowDown, ZoomOut, Eraser, ClockFading, Infinity, Bug, Crop, Undo2, ImageUp, MessageCircleQuestionMark, Wrench, RotateCw, Minus, Link, ClipboardList, Lightbulb, Square, Table2, CalendarDays, ShieldCheck, CalendarClock, Zap, KeySquare, BookUser, CheckCheck, FolderUp, ArrowUpCircle, Contact, Scale, MoreHorizontal, Pencil, BookA, Quote, Workflow, RefreshCw, WifiOff, UserCog, SquareDashedMousePointer, Settings2, Megaphone, Library, LayoutGrid, FolderTree, Files, Crown, Compass, Inbox, CalendarX, CalendarCheck, Mic, Play, Pause, BrainCircuit, Minimize2, Maximize2, AlertCircle, HardDriveDownload, FolderCheck, CalendarSearch, DoorOpen, AlertTriangle, CloudOff } from 'lucide-react';
|
|
172
173
|
import { useAssistantName, hasMessageBody, notify, useNotify, useAssistantCopy, requestSearch, sharedSearchSession, takePendingSearch, selectUnread, NotificationBell, useTurnDocumentId, useOpenDocumentId, useRegisterOpenDocument, useHostConfigRecord } from '@arbidocs/react/shell';
|
|
173
174
|
import { useQueryClient } from '@tanstack/react-query';
|
|
174
175
|
import { parseCallFragment, isMessageType, logger, unlockIdentityWithPassword, createRecoveryUrl, bytesToBase64 } from '@arbidocs/client';
|
|
@@ -2666,7 +2667,7 @@ function AgentWorkspaceAccess({
|
|
|
2666
2667
|
/* @__PURE__ */ jsx("span", { children: workspace.name }),
|
|
2667
2668
|
/* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
2668
2669
|
"\xB7 ",
|
|
2669
|
-
workspace.role
|
|
2670
|
+
formatRole(workspace.role)
|
|
2670
2671
|
] }),
|
|
2671
2672
|
/* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
2672
2673
|
"\xB7 ",
|
|
@@ -5216,7 +5217,7 @@ function ConnectedExportPanel({
|
|
|
5216
5217
|
return role === "owner" || role === "collaborator";
|
|
5217
5218
|
});
|
|
5218
5219
|
const targetName = (id) => workspaces.find((w) => w.external_id === id)?.name ?? "the other workspace";
|
|
5219
|
-
const moveDisabledReason = workspace && roleIn(workspace) === "guest" ? "
|
|
5220
|
+
const moveDisabledReason = workspace && roleIn(workspace) === "guest" ? "Read-only members cannot remove anything from this workspace" : void 0;
|
|
5220
5221
|
const resumable = recentJobs.find((j) => isTransferResumable(j));
|
|
5221
5222
|
useEffect(() => {
|
|
5222
5223
|
if (!job || !isTransferFinished(job)) return;
|
|
@@ -9264,7 +9265,7 @@ function ConnectedAppsSettings({
|
|
|
9264
9265
|
/* @__PURE__ */ jsx("p", { className: "font-medium text-foreground", children: "Agent workspace access" }),
|
|
9265
9266
|
slackAgentWorkspacesLoading ? /* @__PURE__ */ jsx("p", { className: "mt-1 text-muted-foreground", children: "Loading access\u2026" }) : slackAgentWorkspaces.length ? /* @__PURE__ */ jsx("ul", { className: "mt-1 space-y-1", children: slackAgentWorkspaces.map((workspace) => /* @__PURE__ */ jsxs("li", { className: "flex flex-wrap gap-x-2", children: [
|
|
9266
9267
|
/* @__PURE__ */ jsx("span", { children: workspace.name }),
|
|
9267
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: workspace.role }),
|
|
9268
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: formatRole(workspace.role) }),
|
|
9268
9269
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: workspace.permanent ? "Standing access" : "Temporary access" }),
|
|
9269
9270
|
workspace.is_default && /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Slack default" })
|
|
9270
9271
|
] }, workspace.workspace_ext_id)) }) : /* @__PURE__ */ jsx("p", { className: "mt-1 text-muted-foreground", children: "No workspace access. Share a workspace with this agent in that workspace\u2019s Members settings." })
|
|
@@ -11787,11 +11788,9 @@ function ConnectedPeopleMultiSelect({
|
|
|
11787
11788
|
}
|
|
11788
11789
|
);
|
|
11789
11790
|
}
|
|
11790
|
-
var ALL_ROLES2 = [
|
|
11791
|
-
{ value:
|
|
11792
|
-
|
|
11793
|
-
{ value: "guest", label: "Guest" }
|
|
11794
|
-
].map((r) => ({ ...r, badgeClass: getRoleBadgeClass(r.value) }));
|
|
11791
|
+
var ALL_ROLES2 = ["owner", "collaborator", "guest"].map(
|
|
11792
|
+
(value) => ({ value, label: formatRole(value), badgeClass: getRoleBadgeClass(value) })
|
|
11793
|
+
);
|
|
11795
11794
|
function AddWorkspaceMembersForm({
|
|
11796
11795
|
currentMemberEmails,
|
|
11797
11796
|
onAddUsers,
|
|
@@ -14004,6 +14003,18 @@ var BACKFILL_OPTIONS = [
|
|
|
14004
14003
|
function windowLabel(days) {
|
|
14005
14004
|
return BACKFILL_OPTIONS.find((o) => o.value === String(days))?.label ?? `Last ${days} days`;
|
|
14006
14005
|
}
|
|
14006
|
+
|
|
14007
|
+
// src/connection/connectors/native-mailbox.ts
|
|
14008
|
+
var NATIVE_MAILBOX = "native";
|
|
14009
|
+
var NATIVE_MAILBOX_FOLDERS = [
|
|
14010
|
+
{ id: "inbox", name: "Inbox" },
|
|
14011
|
+
{ id: "sent", name: "Sent" },
|
|
14012
|
+
{ id: "archive", name: "Archive" }
|
|
14013
|
+
];
|
|
14014
|
+
var NATIVE_MAILBOX_SOURCE = {
|
|
14015
|
+
vendor_key: NATIVE_MAILBOX,
|
|
14016
|
+
display_name: "Your mailbox"
|
|
14017
|
+
};
|
|
14007
14018
|
function ConnectedMailboxSyncDialog({
|
|
14008
14019
|
catalog,
|
|
14009
14020
|
userConnector,
|
|
@@ -14013,16 +14024,22 @@ function ConnectedMailboxSyncDialog({
|
|
|
14013
14024
|
onEnabled
|
|
14014
14025
|
}) {
|
|
14015
14026
|
const enableSync = useEnableMailboxSync();
|
|
14027
|
+
const isNative = catalog.vendor_key === NATIVE_MAILBOX;
|
|
14028
|
+
const vendorKey = catalog.vendor_key;
|
|
14029
|
+
const nativeFiling = useNativeMailFiling({ enabled: open && isNative });
|
|
14030
|
+
const setNativeFiling = useSetNativeMailFiling();
|
|
14031
|
+
const nativeHere = nativeFiling.data?.find((f) => f.workspace_ext_id === lockedWorkspaceExtId);
|
|
14032
|
+
const nativeKey = nativeHere ? `${nativeHere.backfill_window}:${nativeHere.folders.join()}` : "";
|
|
14016
14033
|
const disconnect = useDisconnectConnector();
|
|
14017
14034
|
const arbi = useArbi();
|
|
14018
14035
|
const { notify: notify17, navigate } = useBlocksEnvironment();
|
|
14019
14036
|
const reconnect = async () => {
|
|
14020
14037
|
try {
|
|
14021
|
-
await disconnect.mutateAsync({ vendorKey
|
|
14038
|
+
await disconnect.mutateAsync({ vendorKey });
|
|
14022
14039
|
} catch {
|
|
14023
14040
|
}
|
|
14024
14041
|
try {
|
|
14025
|
-
navigate(await arbi.connectors.authorize(
|
|
14042
|
+
navigate(await arbi.connectors.authorize(vendorKey, connectorReturnTo()));
|
|
14026
14043
|
} catch {
|
|
14027
14044
|
notify17("Could not start reconnection. Please try again.", "error");
|
|
14028
14045
|
}
|
|
@@ -14035,18 +14052,18 @@ function ConnectedMailboxSyncDialog({
|
|
|
14035
14052
|
setTokensBridged(false);
|
|
14036
14053
|
return;
|
|
14037
14054
|
}
|
|
14038
|
-
if (!userConnector?.is_connected) {
|
|
14055
|
+
if (isNative || !userConnector?.is_connected) {
|
|
14039
14056
|
setTokensBridged(true);
|
|
14040
14057
|
return;
|
|
14041
14058
|
}
|
|
14042
14059
|
let cancelled = false;
|
|
14043
|
-
void arbi.connectors.bridgeTokens({ vendor:
|
|
14060
|
+
void arbi.connectors.bridgeTokens({ vendor: vendorKey }).finally(() => {
|
|
14044
14061
|
if (!cancelled) setTokensBridged(true);
|
|
14045
14062
|
});
|
|
14046
14063
|
return () => {
|
|
14047
14064
|
cancelled = true;
|
|
14048
14065
|
};
|
|
14049
|
-
}, [open, arbi, userConnector?.is_connected,
|
|
14066
|
+
}, [open, arbi, userConnector?.is_connected, vendorKey, isNative]);
|
|
14050
14067
|
const [workspaceExtId, setWorkspaceExtId] = useState("");
|
|
14051
14068
|
const [backfill, setBackfill] = useState("1");
|
|
14052
14069
|
const [backfillSince, setBackfillSince] = useState("");
|
|
@@ -14073,12 +14090,17 @@ function ConnectedMailboxSyncDialog({
|
|
|
14073
14090
|
setAutoRename(workspaceSync?.auto_rename ?? userConnector?.auto_rename ?? false);
|
|
14074
14091
|
setShared(workspaceSync?.shared ?? userConnector?.shared ?? false);
|
|
14075
14092
|
setAutoSync(workspaceSync?.auto_sync ?? userConnector?.auto_sync ?? false);
|
|
14076
|
-
|
|
14093
|
+
if (isNative) {
|
|
14094
|
+
setBackfill(String(nativeHere?.backfill_window ?? 90));
|
|
14095
|
+
setSelectedFolders(nativeHere ? [...nativeHere.folders] : ["inbox"]);
|
|
14096
|
+
}
|
|
14097
|
+
}, [open, lockedWorkspaceExtId, userConnector, isNative, nativeKey]);
|
|
14077
14098
|
const {
|
|
14078
|
-
data:
|
|
14099
|
+
data: connectorFolders = [],
|
|
14079
14100
|
isLoading: foldersQueryLoading,
|
|
14080
14101
|
error: foldersError
|
|
14081
|
-
} = useMailboxFolders(
|
|
14102
|
+
} = useMailboxFolders(vendorKey, open && tokensBridged && !isNative);
|
|
14103
|
+
const folders = isNative ? NATIVE_MAILBOX_FOLDERS.map((f) => ({ ...f })) : connectorFolders;
|
|
14082
14104
|
const foldersLoading = !tokensBridged || foldersQueryLoading;
|
|
14083
14105
|
const folderTree = buildMailFolderTree(folders);
|
|
14084
14106
|
const [expandAllNonce, setExpandAllNonce] = useState(0);
|
|
@@ -14090,11 +14112,34 @@ function ConnectedMailboxSyncDialog({
|
|
|
14090
14112
|
const toggleAllFolders = () => setSelectedFolders(allSelected ? [] : selectAllIds);
|
|
14091
14113
|
const isCustomBackfill = backfill === "custom";
|
|
14092
14114
|
const customDateMissing = isCustomBackfill && !backfillSince;
|
|
14115
|
+
const turningOff = isNative && selectedFolders.length === 0 && !!nativeHere?.folders.length;
|
|
14116
|
+
const saveDisabled = !workspaceExtId || selectedFolders.length === 0 && !turningOff || customDateMissing;
|
|
14093
14117
|
const handleEnableSubmit = () => {
|
|
14094
|
-
if (
|
|
14118
|
+
if (saveDisabled || !workspaceExtId) return;
|
|
14119
|
+
if (isNative) {
|
|
14120
|
+
setNativeFiling.mutate(
|
|
14121
|
+
{
|
|
14122
|
+
workspaceExtId,
|
|
14123
|
+
folders: selectedFolders,
|
|
14124
|
+
backfillWindow: Number(backfill)
|
|
14125
|
+
},
|
|
14126
|
+
{
|
|
14127
|
+
onSuccess: () => {
|
|
14128
|
+
notify17(
|
|
14129
|
+
turningOff ? "New mail from your folders is no longer added here" : "Email settings saved",
|
|
14130
|
+
"success"
|
|
14131
|
+
);
|
|
14132
|
+
onOpenChange(false);
|
|
14133
|
+
onEnabled?.(workspaceExtId);
|
|
14134
|
+
},
|
|
14135
|
+
onError: (err) => notify17(err instanceof Error ? err.message : "Could not save these settings", "error")
|
|
14136
|
+
}
|
|
14137
|
+
);
|
|
14138
|
+
return;
|
|
14139
|
+
}
|
|
14095
14140
|
enableSync.mutate(
|
|
14096
14141
|
{
|
|
14097
|
-
vendorKey
|
|
14142
|
+
vendorKey,
|
|
14098
14143
|
workspaceExtId,
|
|
14099
14144
|
// A fixed date overrides the rolling window server-side; keep a sane
|
|
14100
14145
|
// window value for backward compatibility.
|
|
@@ -14156,7 +14201,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
14156
14201
|
id: "sync-backfill",
|
|
14157
14202
|
value: backfill,
|
|
14158
14203
|
onValueChange: setBackfill,
|
|
14159
|
-
options: [...BACKFILL_OPTIONS, { value: "custom", label: "Custom date\u2026" }]
|
|
14204
|
+
options: isNative ? [...BACKFILL_OPTIONS] : [...BACKFILL_OPTIONS, { value: "custom", label: "Custom date\u2026" }]
|
|
14160
14205
|
}
|
|
14161
14206
|
),
|
|
14162
14207
|
isCustomBackfill && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
@@ -14222,7 +14267,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
14222
14267
|
) })
|
|
14223
14268
|
}
|
|
14224
14269
|
),
|
|
14225
|
-
/* @__PURE__ */ jsxs(SyncOptions, { children: [
|
|
14270
|
+
isNative ? /* @__PURE__ */ jsx(SyncNote, { children: turningOff ? "Saving with no folders stops adding new mail from them. What was added stays." : "Only you can see mail added from your mailbox. New mail is added when you open this workspace." }) : /* @__PURE__ */ jsxs(SyncOptions, { children: [
|
|
14226
14271
|
/* @__PURE__ */ jsx(
|
|
14227
14272
|
SyncOptionToggle,
|
|
14228
14273
|
{
|
|
@@ -14270,8 +14315,8 @@ function ConnectedMailboxSyncDialog({
|
|
|
14270
14315
|
{
|
|
14271
14316
|
onCancel: () => onOpenChange(false),
|
|
14272
14317
|
onSave: handleEnableSubmit,
|
|
14273
|
-
saveDisabled
|
|
14274
|
-
isSaving: enableSync.isPending
|
|
14318
|
+
saveDisabled,
|
|
14319
|
+
isSaving: enableSync.isPending || setNativeFiling.isPending
|
|
14275
14320
|
}
|
|
14276
14321
|
)
|
|
14277
14322
|
]
|
|
@@ -17322,7 +17367,7 @@ function useConnectedWorkspaceList({
|
|
|
17322
17367
|
};
|
|
17323
17368
|
}
|
|
17324
17369
|
var WorkspaceTableView = lazy(
|
|
17325
|
-
() => import('../WorkspaceTableView-
|
|
17370
|
+
() => import('../WorkspaceTableView-SX5FIC4C.js').then((m) => ({ default: m.WorkspaceTableView }))
|
|
17326
17371
|
);
|
|
17327
17372
|
var WORKSPACES_TAB_ID = "workspaces";
|
|
17328
17373
|
var renderMember = (user, size) => /* @__PURE__ */ jsx(ConnectedUserEntity, { user, size, variant: "icon" });
|
|
@@ -20832,9 +20877,9 @@ function formatAccessExpiry(value) {
|
|
|
20832
20877
|
return `${formatFriendlyDate(iso)}${zone ? ` ${zone}` : ""}`;
|
|
20833
20878
|
}
|
|
20834
20879
|
var ROLES = [
|
|
20835
|
-
{ value: "collaborator", label: "
|
|
20836
|
-
{ value: "guest", label: "
|
|
20837
|
-
{ value: "owner", label: "
|
|
20880
|
+
{ value: "collaborator", label: formatRole("collaborator"), hint: "Read and contribute" },
|
|
20881
|
+
{ value: "guest", label: formatRole("guest"), hint: "View shared content" },
|
|
20882
|
+
{ value: "owner", label: formatRole("owner"), hint: "Full control, including sharing" }
|
|
20838
20883
|
];
|
|
20839
20884
|
function ConnectedDmGrantAccessDialog({
|
|
20840
20885
|
peer,
|
|
@@ -22232,7 +22277,7 @@ function DocumentsUploadButton({
|
|
|
22232
22277
|
items,
|
|
22233
22278
|
isCompact,
|
|
22234
22279
|
canAdd: canUpload,
|
|
22235
|
-
disabledReason: isGuest ? "
|
|
22280
|
+
disabledReason: isGuest ? "Read-only members cannot upload documents in this workspace" : "You cannot upload to this workspace",
|
|
22236
22281
|
size,
|
|
22237
22282
|
className
|
|
22238
22283
|
}
|
|
@@ -24340,6 +24385,145 @@ function ConnectedSearchPage({ embedded = false, labels }) {
|
|
|
24340
24385
|
] })
|
|
24341
24386
|
] });
|
|
24342
24387
|
}
|
|
24388
|
+
function MailAddToWorkspaceDialog({
|
|
24389
|
+
open,
|
|
24390
|
+
onOpenChange,
|
|
24391
|
+
workspaces,
|
|
24392
|
+
defaultWorkspaceId,
|
|
24393
|
+
pending,
|
|
24394
|
+
error,
|
|
24395
|
+
onAdd
|
|
24396
|
+
}) {
|
|
24397
|
+
const [workspaceId, setWorkspaceId] = useState("");
|
|
24398
|
+
const [scope, setScope] = useState("message");
|
|
24399
|
+
const ids = useId();
|
|
24400
|
+
useEffect(() => {
|
|
24401
|
+
if (!open) return;
|
|
24402
|
+
setWorkspaceId(defaultWorkspaceId ?? workspaces[0]?.id ?? "");
|
|
24403
|
+
setScope("message");
|
|
24404
|
+
}, [open]);
|
|
24405
|
+
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { "data-testid": "mail-add-to-workspace-dialog", children: [
|
|
24406
|
+
/* @__PURE__ */ jsx(DialogTitle, { children: "Add to workspace" }),
|
|
24407
|
+
/* @__PURE__ */ jsx(DialogDescription, { children: "Only you can see mail you add to a workspace." }),
|
|
24408
|
+
/* @__PURE__ */ jsxs("section", { className: "modal-section grid gap-4", children: [
|
|
24409
|
+
/* @__PURE__ */ jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
24410
|
+
"Workspace",
|
|
24411
|
+
/* @__PURE__ */ jsxs(
|
|
24412
|
+
"select",
|
|
24413
|
+
{
|
|
24414
|
+
"aria-label": "Workspace",
|
|
24415
|
+
value: workspaceId,
|
|
24416
|
+
onChange: (e) => setWorkspaceId(e.target.value),
|
|
24417
|
+
className: "rounded border bg-background p-2",
|
|
24418
|
+
children: [
|
|
24419
|
+
/* @__PURE__ */ jsx("option", { value: "", disabled: true, children: "Choose a workspace" }),
|
|
24420
|
+
workspaces.map((w) => /* @__PURE__ */ jsx("option", { value: w.id, children: w.name }, w.id))
|
|
24421
|
+
]
|
|
24422
|
+
}
|
|
24423
|
+
)
|
|
24424
|
+
] }),
|
|
24425
|
+
/* @__PURE__ */ jsxs(
|
|
24426
|
+
RadioGroup,
|
|
24427
|
+
{
|
|
24428
|
+
"aria-label": "What to add",
|
|
24429
|
+
value: scope,
|
|
24430
|
+
onValueChange: (value) => setScope(value),
|
|
24431
|
+
className: "grid gap-2",
|
|
24432
|
+
children: [
|
|
24433
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
24434
|
+
/* @__PURE__ */ jsx(RadioGroupItem, { value: "message", id: `${ids}-message` }),
|
|
24435
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: `${ids}-message`, children: "This message" })
|
|
24436
|
+
] }),
|
|
24437
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
24438
|
+
/* @__PURE__ */ jsx(RadioGroupItem, { value: "conversation", id: `${ids}-conversation` }),
|
|
24439
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: `${ids}-conversation`, children: "Whole conversation (includes future replies)" })
|
|
24440
|
+
] })
|
|
24441
|
+
]
|
|
24442
|
+
}
|
|
24443
|
+
)
|
|
24444
|
+
] }),
|
|
24445
|
+
error && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-destructive", children: error }),
|
|
24446
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
24447
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: () => onOpenChange(false), children: "Cancel" }),
|
|
24448
|
+
/* @__PURE__ */ jsx(Button, { disabled: !workspaceId || pending, onClick: () => onAdd({ workspaceId, scope }), children: pending ? "Adding\u2026" : "Add" })
|
|
24449
|
+
] })
|
|
24450
|
+
] }) });
|
|
24451
|
+
}
|
|
24452
|
+
function MailFiledChips({ workspaces, rule }) {
|
|
24453
|
+
const waiting = new Set(workspaces.filter((w) => w.pending).map((w) => w.name));
|
|
24454
|
+
const names = [.../* @__PURE__ */ new Set([...rule ? [rule.workspace] : [], ...workspaces.map((w) => w.name)])];
|
|
24455
|
+
if (!names.length) return null;
|
|
24456
|
+
return /* @__PURE__ */ jsxs("div", { className: "mb-3 flex flex-wrap items-center gap-2", "data-testid": "mail-filed-chips", children: [
|
|
24457
|
+
names.map((name) => /* @__PURE__ */ jsxs(
|
|
24458
|
+
"span",
|
|
24459
|
+
{
|
|
24460
|
+
className: "inline-flex items-center gap-1 rounded-full bg-muted px-2.5 py-0.5 text-xs text-foreground",
|
|
24461
|
+
title: "Only you can see it there",
|
|
24462
|
+
children: [
|
|
24463
|
+
/* @__PURE__ */ jsx(FolderCheck, { className: "size-3.5", "aria-hidden": "true" }),
|
|
24464
|
+
"In ",
|
|
24465
|
+
name,
|
|
24466
|
+
waiting.has(name) && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "\xB7 added when you next open it" }),
|
|
24467
|
+
rule?.workspace === name && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "\xB7 new replies too" })
|
|
24468
|
+
]
|
|
24469
|
+
},
|
|
24470
|
+
name
|
|
24471
|
+
)),
|
|
24472
|
+
rule && /* @__PURE__ */ jsx(
|
|
24473
|
+
Button,
|
|
24474
|
+
{
|
|
24475
|
+
variant: "ghost",
|
|
24476
|
+
size: "sm",
|
|
24477
|
+
className: "h-6 px-2 text-xs",
|
|
24478
|
+
disabled: rule.stopping,
|
|
24479
|
+
onClick: rule.onStop,
|
|
24480
|
+
"data-testid": "mail-stop-filing-button",
|
|
24481
|
+
children: "Stop adding replies"
|
|
24482
|
+
}
|
|
24483
|
+
)
|
|
24484
|
+
] });
|
|
24485
|
+
}
|
|
24486
|
+
var peopleRecipients = {
|
|
24487
|
+
useSuggestions: (query) => usePeopleSearch(query).people
|
|
24488
|
+
};
|
|
24489
|
+
function useMailPersonLabel() {
|
|
24490
|
+
const { byEmail } = usePeople();
|
|
24491
|
+
return useCallback(
|
|
24492
|
+
(person) => person.name || byEmail(person.email)?.name || person.email,
|
|
24493
|
+
[byEmail]
|
|
24494
|
+
);
|
|
24495
|
+
}
|
|
24496
|
+
function useWorkspaceMailDocuments() {
|
|
24497
|
+
const workspaceId = useArbiSessionState((s) => s.workspaceId);
|
|
24498
|
+
const { data: workspaceDocuments = [] } = useDocuments();
|
|
24499
|
+
const arbi = useArbi();
|
|
24500
|
+
return useMemo(() => {
|
|
24501
|
+
if (!workspaceId) return void 0;
|
|
24502
|
+
const files = workspaceDocuments.filter((doc) => Boolean(doc.file_name));
|
|
24503
|
+
return {
|
|
24504
|
+
documents: files.map((doc) => {
|
|
24505
|
+
const Icon = getFileTypeIcon(doc.file_name, { mime: doc.file_type });
|
|
24506
|
+
return { id: doc.external_id, title: getDocumentTitle(doc), icon: /* @__PURE__ */ jsx(Icon, { size: 14 }) };
|
|
24507
|
+
}),
|
|
24508
|
+
toAttachment: async (id, maxBytes) => {
|
|
24509
|
+
const doc = files.find((d) => d.external_id === id);
|
|
24510
|
+
if (!doc) throw new Error("Could not attach the document");
|
|
24511
|
+
return documentMailAttachment(arbi, doc, maxBytes);
|
|
24512
|
+
}
|
|
24513
|
+
};
|
|
24514
|
+
}, [workspaceId, workspaceDocuments, arbi]);
|
|
24515
|
+
}
|
|
24516
|
+
function useMailWorkspaces() {
|
|
24517
|
+
const workspaceId = useArbiSessionState((s) => s.workspaceId);
|
|
24518
|
+
const { data: workspaces = [] } = useWorkspaces();
|
|
24519
|
+
return useMemo(() => {
|
|
24520
|
+
const own = workspaces.filter((w) => !w.is_public);
|
|
24521
|
+
return {
|
|
24522
|
+
workspaces: own.map((w) => ({ id: w.external_id, name: w.name })),
|
|
24523
|
+
defaultWorkspaceId: own.some((w) => w.external_id === workspaceId) ? workspaceId : void 0
|
|
24524
|
+
};
|
|
24525
|
+
}, [workspaces, workspaceId]);
|
|
24526
|
+
}
|
|
24343
24527
|
function attachmentPath(accountId, messageId, attachmentId) {
|
|
24344
24528
|
return `${accountPath(accountId)}/messages/${encodeURIComponent(messageId)}/attachments/${encodeURIComponent(attachmentId)}`;
|
|
24345
24529
|
}
|
|
@@ -24450,8 +24634,7 @@ function ConnectedMailConversation({
|
|
|
24450
24634
|
onClose,
|
|
24451
24635
|
onCompose,
|
|
24452
24636
|
onReplyWithArbi,
|
|
24453
|
-
|
|
24454
|
-
savePending,
|
|
24637
|
+
onOpenDocument,
|
|
24455
24638
|
onDeleteForever,
|
|
24456
24639
|
onError,
|
|
24457
24640
|
renderInvite
|
|
@@ -24471,6 +24654,19 @@ function ConnectedMailConversation({
|
|
|
24471
24654
|
const listedComplete = rowIsWhole || !!thread.data;
|
|
24472
24655
|
const newest = listed[0];
|
|
24473
24656
|
const canChange = isOnline || messageChange.queuesOffline;
|
|
24657
|
+
const { notify: notify17 } = useBlocksEnvironment();
|
|
24658
|
+
const workspaces = useMailWorkspaces();
|
|
24659
|
+
const conversationKey = threadId ?? messages.at(-1)?.thread_id ?? void 0;
|
|
24660
|
+
const filing = useMailFiling(
|
|
24661
|
+
account,
|
|
24662
|
+
messages.map((m) => m.id),
|
|
24663
|
+
conversationKey ? [conversationKey] : []
|
|
24664
|
+
);
|
|
24665
|
+
const stopRule = useStopMailFilingRule();
|
|
24666
|
+
const [adding, setAdding] = useState(false);
|
|
24667
|
+
const [filingError, setFilingError] = useState("");
|
|
24668
|
+
const [filingPending, setFilingPending] = useState(false);
|
|
24669
|
+
const workspaceName = (id) => workspaces.workspaces.find((w) => w.id === id)?.name ?? "a workspace";
|
|
24474
24670
|
const fail2 = (fallback) => (e) => onError(e instanceof Error ? e.message : fallback);
|
|
24475
24671
|
const marked = useRef(false);
|
|
24476
24672
|
const unread = listed.filter((m) => m.unread);
|
|
@@ -24532,6 +24728,62 @@ function ConnectedMailConversation({
|
|
|
24532
24728
|
);
|
|
24533
24729
|
others.delete(account.email.toLowerCase());
|
|
24534
24730
|
const subject = conversation?.subject || messages.find((m) => m.subject)?.subject || "";
|
|
24731
|
+
const addToWorkspace = async (workspaceId, scope) => {
|
|
24732
|
+
if (!newest) return;
|
|
24733
|
+
setFilingPending(true);
|
|
24734
|
+
setFilingError("");
|
|
24735
|
+
try {
|
|
24736
|
+
const where2 = account.provider === "native" && newest.folder ? newest.folder : folderId;
|
|
24737
|
+
const all = thread.data?.messages ?? messages;
|
|
24738
|
+
const { outcome, filed } = await messageChange.file(
|
|
24739
|
+
newest.id,
|
|
24740
|
+
where2,
|
|
24741
|
+
scope === "message" ? { workspaceExtId: workspaceId } : {
|
|
24742
|
+
workspaceExtId: workspaceId,
|
|
24743
|
+
threadId: conversationKey ?? newest.id,
|
|
24744
|
+
messageIds: all.map((m) => m.id)
|
|
24745
|
+
}
|
|
24746
|
+
);
|
|
24747
|
+
setAdding(false);
|
|
24748
|
+
if (outcome === "queued")
|
|
24749
|
+
notify17("Kept on this device. It is added to the workspace when you reconnect.", "info");
|
|
24750
|
+
else
|
|
24751
|
+
notify17(
|
|
24752
|
+
`Added to ${workspaceName(workspaceId)}`,
|
|
24753
|
+
"success",
|
|
24754
|
+
filed?.doc_ext_id && onOpenDocument ? {
|
|
24755
|
+
action: {
|
|
24756
|
+
label: "Open",
|
|
24757
|
+
onClick: () => onOpenDocument(filed.doc_ext_id, workspaceId)
|
|
24758
|
+
}
|
|
24759
|
+
} : void 0
|
|
24760
|
+
);
|
|
24761
|
+
} catch (e) {
|
|
24762
|
+
setFilingError(e instanceof Error ? e.message : "Could not add it to the workspace");
|
|
24763
|
+
} finally {
|
|
24764
|
+
setFilingPending(false);
|
|
24765
|
+
}
|
|
24766
|
+
};
|
|
24767
|
+
const rule = filing.data?.rules[0];
|
|
24768
|
+
const chips = /* @__PURE__ */ jsx(
|
|
24769
|
+
MailFiledChips,
|
|
24770
|
+
{
|
|
24771
|
+
workspaces: (filing.data?.filed ?? []).map((f) => ({
|
|
24772
|
+
name: workspaceName(f.workspace_ext_id),
|
|
24773
|
+
pending: !!f.pending
|
|
24774
|
+
})),
|
|
24775
|
+
rule: rule && {
|
|
24776
|
+
workspace: workspaceName(rule.workspace_ext_id),
|
|
24777
|
+
stopping: stopRule.isPending,
|
|
24778
|
+
onStop: () => stopRule.mutate(
|
|
24779
|
+
{ ruleId: rule.id, threadId: rule.thread_id ?? conversationKey ?? "" },
|
|
24780
|
+
{
|
|
24781
|
+
onError: (e) => onError(e instanceof Error ? e.message : "Could not stop it")
|
|
24782
|
+
}
|
|
24783
|
+
)
|
|
24784
|
+
}
|
|
24785
|
+
}
|
|
24786
|
+
);
|
|
24535
24787
|
if (!newest)
|
|
24536
24788
|
return /* @__PURE__ */ jsx("p", { role: "status", className: "p-4 text-sm text-muted-foreground", children: thread.error?.message ?? "Loading conversation\u2026" });
|
|
24537
24789
|
return /* @__PURE__ */ jsx(
|
|
@@ -24540,16 +24792,31 @@ function ConnectedMailConversation({
|
|
|
24540
24792
|
subject,
|
|
24541
24793
|
messages,
|
|
24542
24794
|
personLabel,
|
|
24543
|
-
notice:
|
|
24544
|
-
|
|
24545
|
-
|
|
24546
|
-
|
|
24547
|
-
|
|
24548
|
-
|
|
24549
|
-
|
|
24550
|
-
|
|
24551
|
-
|
|
24552
|
-
|
|
24795
|
+
notice: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
24796
|
+
chips,
|
|
24797
|
+
more > 0 && threadId && onShowConversation ? /* @__PURE__ */ jsx(
|
|
24798
|
+
"button",
|
|
24799
|
+
{
|
|
24800
|
+
type: "button",
|
|
24801
|
+
"data-testid": "mail-show-conversation",
|
|
24802
|
+
onClick: () => onShowConversation(threadId),
|
|
24803
|
+
className: "mb-3 text-sm text-primary underline-offset-2 hover:underline",
|
|
24804
|
+
children: more === 1 ? "1 more in this conversation" : `${more} more in this conversation`
|
|
24805
|
+
}
|
|
24806
|
+
) : !single && thread.error instanceof MailOfflineUnavailableError ? /* @__PURE__ */ jsx("p", { role: "status", className: "mb-3 text-sm text-muted-foreground", children: thread.error.message }) : null,
|
|
24807
|
+
/* @__PURE__ */ jsx(
|
|
24808
|
+
MailAddToWorkspaceDialog,
|
|
24809
|
+
{
|
|
24810
|
+
open: adding,
|
|
24811
|
+
onOpenChange: setAdding,
|
|
24812
|
+
workspaces: workspaces.workspaces,
|
|
24813
|
+
defaultWorkspaceId: workspaces.defaultWorkspaceId,
|
|
24814
|
+
pending: filingPending,
|
|
24815
|
+
error: filingError,
|
|
24816
|
+
onAdd: ({ workspaceId, scope }) => void addToWorkspace(workspaceId, scope)
|
|
24817
|
+
}
|
|
24818
|
+
)
|
|
24819
|
+
] }),
|
|
24553
24820
|
actions: /* @__PURE__ */ jsx(
|
|
24554
24821
|
MailActionBar,
|
|
24555
24822
|
{
|
|
@@ -24569,7 +24836,10 @@ function ConnectedMailConversation({
|
|
|
24569
24836
|
onMarkUnread: () => void changes.apply([newest], { unread: true }).then(onClose).catch(fail2("Could not mark it unread")),
|
|
24570
24837
|
moveTargets: mailMoveTargets(folders, folderRole, folderId),
|
|
24571
24838
|
onMove: (id) => move({ folder_id: id }),
|
|
24572
|
-
|
|
24839
|
+
onAddToWorkspace: workspaces.workspaces.length ? () => {
|
|
24840
|
+
setFilingError("");
|
|
24841
|
+
setAdding(true);
|
|
24842
|
+
} : void 0,
|
|
24573
24843
|
onPrint: () => void print(),
|
|
24574
24844
|
onDownloadOriginal: account.provider === "native" ? () => void download(
|
|
24575
24845
|
`${accountPath(account.id)}/messages/${newest.id}/original`,
|
|
@@ -24579,7 +24849,7 @@ function ConnectedMailConversation({
|
|
|
24579
24849
|
deletesForever: nativeTrash,
|
|
24580
24850
|
canChange,
|
|
24581
24851
|
isOnline,
|
|
24582
|
-
busy:
|
|
24852
|
+
busy: filingPending || !listedComplete
|
|
24583
24853
|
}
|
|
24584
24854
|
),
|
|
24585
24855
|
renderMessage: (message, collapse) => /* @__PURE__ */ jsx(
|
|
@@ -25419,57 +25689,6 @@ function resolveMailbox(accounts, mailbox) {
|
|
|
25419
25689
|
if (mailbox === "native") return accounts.find((a) => a.provider === "native");
|
|
25420
25690
|
return mailbox ? accounts.find((a) => a.id === mailbox) : void 0;
|
|
25421
25691
|
}
|
|
25422
|
-
var peopleRecipients = {
|
|
25423
|
-
useSuggestions: (query) => usePeopleSearch(query).people
|
|
25424
|
-
};
|
|
25425
|
-
function useMailPersonLabel() {
|
|
25426
|
-
const { byEmail } = usePeople();
|
|
25427
|
-
return useCallback(
|
|
25428
|
-
(person) => person.name || byEmail(person.email)?.name || person.email,
|
|
25429
|
-
[byEmail]
|
|
25430
|
-
);
|
|
25431
|
-
}
|
|
25432
|
-
function useWorkspaceMailDocuments() {
|
|
25433
|
-
const workspaceId = useArbiSessionState((s) => s.workspaceId);
|
|
25434
|
-
const { data: workspaceDocuments = [] } = useDocuments();
|
|
25435
|
-
const arbi = useArbi();
|
|
25436
|
-
return useMemo(() => {
|
|
25437
|
-
if (!workspaceId) return void 0;
|
|
25438
|
-
const files = workspaceDocuments.filter((doc) => Boolean(doc.file_name));
|
|
25439
|
-
return {
|
|
25440
|
-
documents: files.map((doc) => {
|
|
25441
|
-
const Icon = getFileTypeIcon(doc.file_name, { mime: doc.file_type });
|
|
25442
|
-
return { id: doc.external_id, title: getDocumentTitle(doc), icon: /* @__PURE__ */ jsx(Icon, { size: 14 }) };
|
|
25443
|
-
}),
|
|
25444
|
-
toAttachment: async (id, maxBytes) => {
|
|
25445
|
-
const doc = files.find((d) => d.external_id === id);
|
|
25446
|
-
if (!doc) throw new Error("Could not attach the document");
|
|
25447
|
-
return documentMailAttachment(arbi, doc, maxBytes);
|
|
25448
|
-
}
|
|
25449
|
-
};
|
|
25450
|
-
}, [workspaceId, workspaceDocuments, arbi]);
|
|
25451
|
-
}
|
|
25452
|
-
function useMailSaveToWorkspace() {
|
|
25453
|
-
const workspaceId = useArbiSessionState((s) => s.workspaceId);
|
|
25454
|
-
const { data: workspaces = [] } = useWorkspaces();
|
|
25455
|
-
const upload = useUploadDocuments();
|
|
25456
|
-
const arbi = useArbi();
|
|
25457
|
-
return useMemo(
|
|
25458
|
-
() => ({
|
|
25459
|
-
workspaces: workspaces.map((w) => ({ id: w.external_id, name: w.name })),
|
|
25460
|
-
defaultWorkspaceId: workspaceId,
|
|
25461
|
-
save: async (saveWorkspaceId, file) => {
|
|
25462
|
-
const target = workspaces.find((w) => w.external_id === saveWorkspaceId);
|
|
25463
|
-
if (target?.wrapped_key)
|
|
25464
|
-
await arbi.workspaces.open(saveWorkspaceId).catch(() => {
|
|
25465
|
-
throw new Error("Could not unlock the chosen workspace");
|
|
25466
|
-
});
|
|
25467
|
-
await upload.mutateAsync({ files: [file], options: { workspaceExtId: saveWorkspaceId } });
|
|
25468
|
-
}
|
|
25469
|
-
}),
|
|
25470
|
-
[workspaces, workspaceId, arbi, upload]
|
|
25471
|
-
);
|
|
25472
|
-
}
|
|
25473
25692
|
function lastSynced(at) {
|
|
25474
25693
|
return at ? `last synced ${formatRelativeTime(new Date(at).toISOString(), { style: "short" })}` : "not synced yet";
|
|
25475
25694
|
}
|
|
@@ -25838,6 +26057,7 @@ function useMailMessageChange(account, offline) {
|
|
|
25838
26057
|
const change = useCallback(
|
|
25839
26058
|
async (messageId, folderId, change2) => {
|
|
25840
26059
|
if (!account) throw new Error("Choose a mailbox first");
|
|
26060
|
+
if (change2.kind === "file") throw new Error("Add mail to a workspace with file()");
|
|
25841
26061
|
const queue = async () => {
|
|
25842
26062
|
await queueChange({ account, messageId, folderId, change: change2 });
|
|
25843
26063
|
await cache.refreshAll();
|
|
@@ -25860,8 +26080,29 @@ function useMailMessageChange(account, offline) {
|
|
|
25860
26080
|
},
|
|
25861
26081
|
[account, client, cache, queueChange, isNetworkFailure2, isChangePending, isOnline]
|
|
25862
26082
|
);
|
|
25863
|
-
|
|
26083
|
+
const prime = useMailWorkspacePrimer();
|
|
26084
|
+
const file = useCallback(
|
|
26085
|
+
async (messageId, folderId, request) => {
|
|
26086
|
+
if (!account) throw new Error("Choose a mailbox first");
|
|
26087
|
+
const queue = async () => {
|
|
26088
|
+
await queueChange({ account, messageId, folderId, change: { kind: "file", ...request } });
|
|
26089
|
+
return { outcome: "queued" };
|
|
26090
|
+
};
|
|
26091
|
+
if (queueChange && !isOnline) return queue();
|
|
26092
|
+
try {
|
|
26093
|
+
const filed = await sendMailFile(client.fetch, prime, account, messageId, request);
|
|
26094
|
+
await cache.refreshAll();
|
|
26095
|
+
return { outcome: "sent", filed };
|
|
26096
|
+
} catch (error) {
|
|
26097
|
+
if (queueChange && isNetworkFailure2?.(error)) return queue();
|
|
26098
|
+
throw error;
|
|
26099
|
+
}
|
|
26100
|
+
},
|
|
26101
|
+
[account, client, cache, prime, queueChange, isNetworkFailure2, isOnline]
|
|
26102
|
+
);
|
|
26103
|
+
return { change, file, queuesOffline: !!queueChange };
|
|
25864
26104
|
}
|
|
26105
|
+
var UNFILED_FOLDER_ROLES = ["trash", "drafts", "junk"];
|
|
25865
26106
|
var MailInviteCard = lazy(
|
|
25866
26107
|
() => import('../ConnectedMailInviteCard-5LPYQLJT.js').then((m) => ({
|
|
25867
26108
|
default: m.ConnectedMailInviteCard
|
|
@@ -25958,7 +26199,6 @@ function ConnectedMailbox({
|
|
|
25958
26199
|
const user = userProp === void 0 ? signedInUser : userProp;
|
|
25959
26200
|
const personLabel = useMailPersonLabel();
|
|
25960
26201
|
const documents = useWorkspaceMailDocuments();
|
|
25961
|
-
const saveToWorkspace = useMailSaveToWorkspace();
|
|
25962
26202
|
const session = useArbiSessionStore();
|
|
25963
26203
|
const [gridState] = useState(
|
|
25964
26204
|
() => session.getState().grid.states[MAIL_GRID_ID]
|
|
@@ -25970,9 +26210,6 @@ function ConnectedMailbox({
|
|
|
25970
26210
|
const [, setViewerOpen] = useTransientView(MAIL_VIEWER_OPEN_VIEW, false);
|
|
25971
26211
|
const cache = useMailCache();
|
|
25972
26212
|
const { client } = useMailClient();
|
|
25973
|
-
const [savingToWorkspace, setSavingToWorkspace] = useState(false);
|
|
25974
|
-
const [savePending, setSavePending] = useState(false);
|
|
25975
|
-
const [saveWorkspaceId, setSaveWorkspaceId] = useState("");
|
|
25976
26213
|
const { data: policy, error: policyError } = useMailPolicy();
|
|
25977
26214
|
const isOnline = useMailOnline();
|
|
25978
26215
|
const accounts = useMailAccounts({ enabled: !!policy?.enabled });
|
|
@@ -26072,6 +26309,10 @@ function ConnectedMailbox({
|
|
|
26072
26309
|
const hasActiveFilters = !!query || [...mailFilters.values()].some(Boolean);
|
|
26073
26310
|
const listedMessages = useMemo(() => rows?.flatMap((c) => c.messages), [rows]);
|
|
26074
26311
|
useNativeThreadKeys(account, listedMessages);
|
|
26312
|
+
useConnectedMailFiling(
|
|
26313
|
+
account,
|
|
26314
|
+
UNFILED_FOLDER_ROLES.includes(folderRole) ? void 0 : listedMessages
|
|
26315
|
+
);
|
|
26075
26316
|
const opening = useMailMessage(account, openingMessage, { enabled: ready && !compose });
|
|
26076
26317
|
const [openedAlone, setOpenedAlone] = useState();
|
|
26077
26318
|
useEffect(() => {
|
|
@@ -26163,32 +26404,6 @@ function ConnectedMailbox({
|
|
|
26163
26404
|
setConfirmDelete(null);
|
|
26164
26405
|
}
|
|
26165
26406
|
};
|
|
26166
|
-
const [saveTarget, setSaveTarget] = useState(null);
|
|
26167
|
-
const saveEmail = async () => {
|
|
26168
|
-
if (!saveTarget || !account || !saveWorkspaceId) return;
|
|
26169
|
-
setSavePending(true);
|
|
26170
|
-
try {
|
|
26171
|
-
const response = await client.fetch(
|
|
26172
|
-
`${accountPath(account.id)}/messages/${saveTarget.id}/original`
|
|
26173
|
-
);
|
|
26174
|
-
const fileName = `${saveTarget.subject.replace(/[^a-zA-Z0-9 ._-]/g, "").slice(0, 80) || "email"}.eml`;
|
|
26175
|
-
const workspaceId = saveWorkspaceId;
|
|
26176
|
-
const documentId = await saveToWorkspace.save(
|
|
26177
|
-
workspaceId,
|
|
26178
|
-
new File([await response.blob()], fileName, { type: "message/rfc822" })
|
|
26179
|
-
);
|
|
26180
|
-
setSavingToWorkspace(false);
|
|
26181
|
-
notify17(
|
|
26182
|
-
"Email saved to workspace",
|
|
26183
|
-
"success",
|
|
26184
|
-
documentId && onOpenDocument ? { action: { label: "Open", onClick: () => onOpenDocument(documentId, workspaceId) } } : void 0
|
|
26185
|
-
);
|
|
26186
|
-
} catch (e) {
|
|
26187
|
-
setActionError(e instanceof Error ? e.message : "Could not save email to workspace");
|
|
26188
|
-
} finally {
|
|
26189
|
-
setSavePending(false);
|
|
26190
|
-
}
|
|
26191
|
-
};
|
|
26192
26407
|
const toggleRowFlag = async (row2) => {
|
|
26193
26408
|
try {
|
|
26194
26409
|
const whole = row2.flagged && account && folderId && row2.message_count > row2.messages.length ? [...(await client.getThread(account, row2.thread_id, folderId)).messages].reverse() : row2.messages;
|
|
@@ -26472,7 +26687,7 @@ function ConnectedMailbox({
|
|
|
26472
26687
|
offline,
|
|
26473
26688
|
messageChange,
|
|
26474
26689
|
personLabel,
|
|
26475
|
-
|
|
26690
|
+
onOpenDocument,
|
|
26476
26691
|
onClose: () => setSelected(null),
|
|
26477
26692
|
onCompose: (value) => openCompose(value),
|
|
26478
26693
|
onError: setActionError,
|
|
@@ -26481,13 +26696,6 @@ function ConnectedMailbox({
|
|
|
26481
26696
|
setDeleteTargets(targets);
|
|
26482
26697
|
setConfirmDelete("message");
|
|
26483
26698
|
},
|
|
26484
|
-
onSaveToWorkspace: account.provider === "native" ? (target) => {
|
|
26485
|
-
setSaveTarget(target);
|
|
26486
|
-
setSaveWorkspaceId(
|
|
26487
|
-
saveToWorkspace.defaultWorkspaceId ?? saveToWorkspace.workspaces[0]?.id ?? ""
|
|
26488
|
-
);
|
|
26489
|
-
setSavingToWorkspace(true);
|
|
26490
|
-
} : void 0,
|
|
26491
26699
|
renderInvite: (message) => /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
|
|
26492
26700
|
MailInviteCard,
|
|
26493
26701
|
{
|
|
@@ -26518,25 +26726,6 @@ function ConnectedMailbox({
|
|
|
26518
26726
|
] }) })
|
|
26519
26727
|
})
|
|
26520
26728
|
] }),
|
|
26521
|
-
/* @__PURE__ */ jsx(Dialog, { open: savingToWorkspace, onOpenChange: setSavingToWorkspace, children: /* @__PURE__ */ jsxs(DialogContent, { children: [
|
|
26522
|
-
/* @__PURE__ */ jsx(DialogTitle, { children: "Save email to workspace" }),
|
|
26523
|
-
/* @__PURE__ */ jsx(DialogDescription, { children: "Save a copy as an .eml file. Members with access to the file can read it." }),
|
|
26524
|
-
/* @__PURE__ */ jsxs(
|
|
26525
|
-
"select",
|
|
26526
|
-
{
|
|
26527
|
-
"aria-label": "Destination workspace",
|
|
26528
|
-
value: saveWorkspaceId,
|
|
26529
|
-
onChange: (e) => setSaveWorkspaceId(e.target.value),
|
|
26530
|
-
className: "rounded border bg-background p-2",
|
|
26531
|
-
children: [
|
|
26532
|
-
/* @__PURE__ */ jsx("option", { value: "", disabled: true, children: "Choose a workspace" }),
|
|
26533
|
-
saveToWorkspace.workspaces.map((w) => /* @__PURE__ */ jsx("option", { value: w.id, children: w.name }, w.id))
|
|
26534
|
-
]
|
|
26535
|
-
}
|
|
26536
|
-
),
|
|
26537
|
-
/* @__PURE__ */ jsx(Button, { disabled: !saveWorkspaceId || savePending, onClick: () => void saveEmail(), children: savePending ? "Saving\u2026" : "Save email" }),
|
|
26538
|
-
actionError && /* @__PURE__ */ jsx("p", { role: "alert", children: actionError })
|
|
26539
|
-
] }) }),
|
|
26540
26729
|
settings && policy && /* @__PURE__ */ jsx(
|
|
26541
26730
|
ConnectedMailAccounts,
|
|
26542
26731
|
{
|
|
@@ -30341,6 +30530,94 @@ function ImportHandoff({
|
|
|
30341
30530
|
] })
|
|
30342
30531
|
] });
|
|
30343
30532
|
}
|
|
30533
|
+
function useOwnMailboxForImport(workspaceExtId) {
|
|
30534
|
+
const hasMail = useIsEntitled("mail");
|
|
30535
|
+
const { data: policy } = useMailPolicy({ enabled: hasMail });
|
|
30536
|
+
const accounts = useMailAccounts({ enabled: hasMail && !!policy?.native_enabled });
|
|
30537
|
+
const { data: workspaces } = useWorkspaces();
|
|
30538
|
+
const workspace = workspaces?.find((w) => w.external_id === workspaceExtId);
|
|
30539
|
+
if (!workspace || workspace.is_public) return void 0;
|
|
30540
|
+
return accounts.data?.find((a) => a.provider === "native");
|
|
30541
|
+
}
|
|
30542
|
+
function NativeMailImportSection({
|
|
30543
|
+
workspaceExtId,
|
|
30544
|
+
native
|
|
30545
|
+
}) {
|
|
30546
|
+
const { notify: notify17 } = useBlocksEnvironment();
|
|
30547
|
+
const filing = useNativeMailFiling();
|
|
30548
|
+
const fileNow = useFileWaitingNativeMail();
|
|
30549
|
+
const [settingsOpen, setSettingsOpen] = useState(false);
|
|
30550
|
+
const here = filing.data?.find((f) => f.workspace_ext_id === workspaceExtId);
|
|
30551
|
+
const configured = !!here && here.folders.length > 0;
|
|
30552
|
+
const noun = (n) => n === 1 ? "email" : "emails";
|
|
30553
|
+
const importNow = () => fileNow.mutate(workspaceExtId, {
|
|
30554
|
+
onSuccess: ({ filed, waiting, failed }) => notify17(
|
|
30555
|
+
filed ? `Added ${filed} ${noun(filed)} to this workspace` : waiting ? "Nothing could be added yet: open Mail once, then try again" : failed ? `${failed} ${noun(failed)} could not be added` : "Nothing new to add",
|
|
30556
|
+
filed ? "success" : failed ? "error" : "info"
|
|
30557
|
+
),
|
|
30558
|
+
onError: (e) => notify17(e instanceof Error ? e.message : "Could not add mail", "error")
|
|
30559
|
+
});
|
|
30560
|
+
return /* @__PURE__ */ jsx(ImportFamilySection, { label: "Mail", identity: native.email, testId: "import-family-native", children: /* @__PURE__ */ jsx(ImportList, { children: /* @__PURE__ */ jsxs(
|
|
30561
|
+
ImportRow,
|
|
30562
|
+
{
|
|
30563
|
+
testId: "email-provider-row-native",
|
|
30564
|
+
logo: /* @__PURE__ */ jsx(Mail, { className: "h-7 w-7 text-primary", "aria-hidden": "true" }),
|
|
30565
|
+
name: NATIVE_MAILBOX_SOURCE.display_name,
|
|
30566
|
+
actions: /* @__PURE__ */ jsx(
|
|
30567
|
+
ImportRunActions,
|
|
30568
|
+
{
|
|
30569
|
+
isRunning: false,
|
|
30570
|
+
isBusy: fileNow.isPending,
|
|
30571
|
+
onImport: configured ? importNow : () => setSettingsOpen(true),
|
|
30572
|
+
onStop: () => {
|
|
30573
|
+
},
|
|
30574
|
+
onSettings: () => setSettingsOpen(true),
|
|
30575
|
+
settingsLabel: "Your mailbox import settings",
|
|
30576
|
+
importButton: { testId: "email-import-native" }
|
|
30577
|
+
}
|
|
30578
|
+
),
|
|
30579
|
+
children: [
|
|
30580
|
+
here && /* @__PURE__ */ jsxs(
|
|
30581
|
+
ImportSummary,
|
|
30582
|
+
{
|
|
30583
|
+
aside: /* @__PURE__ */ jsx(ImportAside, { children: here.folders.length > 0 && /* @__PURE__ */ jsx(
|
|
30584
|
+
FolderSummary,
|
|
30585
|
+
{
|
|
30586
|
+
names: here.folders.map(
|
|
30587
|
+
(id) => NATIVE_MAILBOX_FOLDERS.find((f) => f.id === id)?.name
|
|
30588
|
+
),
|
|
30589
|
+
testId: "email-folders-native"
|
|
30590
|
+
}
|
|
30591
|
+
) }),
|
|
30592
|
+
children: [
|
|
30593
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
30594
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: here.filed.toLocaleString() }),
|
|
30595
|
+
" ",
|
|
30596
|
+
noun(here.filed),
|
|
30597
|
+
" in this workspace \xB7 only you can see them",
|
|
30598
|
+
here.threads > 0 && ` \xB7 ${here.threads} conversation${here.threads === 1 ? "" : "s"} followed`
|
|
30599
|
+
] }),
|
|
30600
|
+
/* @__PURE__ */ jsxs("div", { "data-testid": "email-last-sync-native", children: [
|
|
30601
|
+
here.waiting > 0 ? `${here.waiting} waiting: added when you open this workspace` : here.failed > 0 ? `${here.failed} could not be added` : here.last_sync_at ? `Last added ${formatRelativeTime(here.last_sync_at, { style: "compact" })}` : "Not added yet",
|
|
30602
|
+
here.folders.length > 0 && ` \xB7 Backfill: ${windowLabel(here.backfill_window)}`
|
|
30603
|
+
] })
|
|
30604
|
+
]
|
|
30605
|
+
}
|
|
30606
|
+
),
|
|
30607
|
+
/* @__PURE__ */ jsx(
|
|
30608
|
+
ConnectedMailboxSyncDialog,
|
|
30609
|
+
{
|
|
30610
|
+
catalog: NATIVE_MAILBOX_SOURCE,
|
|
30611
|
+
userConnector: void 0,
|
|
30612
|
+
open: settingsOpen,
|
|
30613
|
+
onOpenChange: setSettingsOpen,
|
|
30614
|
+
lockedWorkspaceExtId: workspaceExtId
|
|
30615
|
+
}
|
|
30616
|
+
)
|
|
30617
|
+
]
|
|
30618
|
+
}
|
|
30619
|
+
) }) });
|
|
30620
|
+
}
|
|
30344
30621
|
var PROVIDER_FAMILIES = [
|
|
30345
30622
|
{ key: "microsoft", label: "Microsoft", vendors: ["microsoft"] },
|
|
30346
30623
|
{ key: "google", label: "Google", vendors: ["gmail"] }
|
|
@@ -30367,7 +30644,8 @@ function EmailProviderRow({
|
|
|
30367
30644
|
const arbi = useArbi();
|
|
30368
30645
|
const isConnected = !!userConnector?.is_connected;
|
|
30369
30646
|
const thisSync = userConnector?.syncs?.find((s) => s.workspace_ext_id === workspaceExtId);
|
|
30370
|
-
const
|
|
30647
|
+
const filedOnly = !!thisSync && thisSync.folders.length === 0;
|
|
30648
|
+
const syncingHere = isConnected && !!thisSync && thisSync.enabled && !filedOnly;
|
|
30371
30649
|
const [tokensBridged, setTokensBridged] = useState(false);
|
|
30372
30650
|
useEffect(() => {
|
|
30373
30651
|
if (!isConnected) {
|
|
@@ -30428,6 +30706,7 @@ function EmailProviderRow({
|
|
|
30428
30706
|
isStopping: cancelSync.isPending,
|
|
30429
30707
|
isBusy: busy,
|
|
30430
30708
|
onImport: syncingHere ? syncNow : () => setSettingsOpen(true),
|
|
30709
|
+
importTitle: filedOnly ? "Choose folders to sync" : void 0,
|
|
30431
30710
|
onStop: stopSync,
|
|
30432
30711
|
onSettings: () => setSettingsOpen(true),
|
|
30433
30712
|
settingsLabel: `${mailboxProductName(catalog)} sync settings`,
|
|
@@ -30453,11 +30732,12 @@ function EmailProviderRow({
|
|
|
30453
30732
|
/* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: syncedCount.toLocaleString() }),
|
|
30454
30733
|
" ",
|
|
30455
30734
|
emailNoun(syncedCount),
|
|
30456
|
-
" in this workspace"
|
|
30735
|
+
" in this workspace",
|
|
30736
|
+
filedOnly && thisSync.threads > 0 && ` \xB7 ${thisSync.threads} conversation${thisSync.threads === 1 ? "" : "s"} followed`
|
|
30457
30737
|
] }),
|
|
30458
30738
|
/* @__PURE__ */ jsxs("div", { "data-testid": `email-last-sync-${catalog.vendor_key}`, children: [
|
|
30459
|
-
thisSync?.last_sync_at ? `Last synced ${formatRelativeTime(thisSync.last_sync_at, { style: "compact" })}` : "Not synced yet",
|
|
30460
|
-
thisSync?.backfill_since ? ` \xB7 Backfill: since ${new Date(thisSync.backfill_since).toLocaleDateString()}` : thisSync?.backfill_window != null && ` \xB7 Backfill: ${windowLabel(thisSync.backfill_window)}`
|
|
30739
|
+
filedOnly ? "Filed messages \xB7 choose folders to sync more" : thisSync?.last_sync_at ? `Last synced ${formatRelativeTime(thisSync.last_sync_at, { style: "compact" })}` : "Not synced yet",
|
|
30740
|
+
!filedOnly && (thisSync?.backfill_since ? ` \xB7 Backfill: since ${new Date(thisSync.backfill_since).toLocaleDateString()}` : thisSync?.backfill_window != null && ` \xB7 Backfill: ${windowLabel(thisSync.backfill_window)}`)
|
|
30461
30741
|
] })
|
|
30462
30742
|
]
|
|
30463
30743
|
}
|
|
@@ -30508,6 +30788,7 @@ function EmailImportPanel({
|
|
|
30508
30788
|
const { data: myConnectors = [] } = useMyConnectors();
|
|
30509
30789
|
const disconnect = useDisconnectConnector();
|
|
30510
30790
|
const isVendorVisible = useConnectorVendorVisibility();
|
|
30791
|
+
const ownMailbox = useOwnMailboxForImport(workspaceExtId);
|
|
30511
30792
|
const [reconnectByVendor, setReconnectByVendor] = useState({});
|
|
30512
30793
|
const handleNeedsReconnectChange = useCallback((vendorKey, needs) => {
|
|
30513
30794
|
setReconnectByVendor(
|
|
@@ -30579,37 +30860,40 @@ function EmailImportPanel({
|
|
|
30579
30860
|
const needsReconnect = connected && (isDriveSyncVendor(connectVendor) && !!connectUc?.drive_needs_reconsent || mailboxNeedsReconnect);
|
|
30580
30861
|
return { family, entries, extra, identity, connectVendor, connected, needsReconnect };
|
|
30581
30862
|
}).filter((g) => g.entries.length > 0 || g.extra);
|
|
30582
|
-
if (groups.length === 0) return null;
|
|
30583
|
-
return /* @__PURE__ */
|
|
30584
|
-
|
|
30585
|
-
|
|
30586
|
-
{
|
|
30587
|
-
|
|
30588
|
-
|
|
30589
|
-
|
|
30590
|
-
|
|
30591
|
-
|
|
30592
|
-
|
|
30593
|
-
|
|
30594
|
-
|
|
30595
|
-
|
|
30596
|
-
|
|
30597
|
-
|
|
30598
|
-
|
|
30599
|
-
|
|
30600
|
-
|
|
30601
|
-
|
|
30602
|
-
|
|
30603
|
-
|
|
30604
|
-
|
|
30605
|
-
|
|
30606
|
-
|
|
30607
|
-
|
|
30608
|
-
|
|
30609
|
-
|
|
30610
|
-
|
|
30863
|
+
if (!ownMailbox && groups.length === 0) return null;
|
|
30864
|
+
return /* @__PURE__ */ jsxs(ImportPanel, { "data-testid": "email-import-panel", children: [
|
|
30865
|
+
ownMailbox && /* @__PURE__ */ jsx(NativeMailImportSection, { workspaceExtId, native: ownMailbox }),
|
|
30866
|
+
groups.map(
|
|
30867
|
+
({ family, entries, extra, identity, connectVendor, connected, needsReconnect }) => /* @__PURE__ */ jsx(
|
|
30868
|
+
ImportFamilySection,
|
|
30869
|
+
{
|
|
30870
|
+
label: family.label,
|
|
30871
|
+
identity,
|
|
30872
|
+
action: !connected ? "connect" : needsReconnect ? "reconnect" : "disconnect",
|
|
30873
|
+
isActionPending: disconnect.isPending,
|
|
30874
|
+
onAction: () => void (!connected ? connectFamily(connectVendor) : needsReconnect ? reconnectFamily(connectVendor) : disconnectFamily(family, connectVendor, identity)),
|
|
30875
|
+
testId: `import-family-${family.key}`,
|
|
30876
|
+
actionButton: !connected ? { testId: `import-family-connect-${family.key}` } : needsReconnect ? { testId: `import-family-reconnect-${family.key}` } : { testId: `import-family-disconnect-${family.key}` },
|
|
30877
|
+
children: /* @__PURE__ */ jsxs(ImportList, { children: [
|
|
30878
|
+
entries.map((entry) => /* @__PURE__ */ jsx(
|
|
30879
|
+
EmailProviderRow,
|
|
30880
|
+
{
|
|
30881
|
+
catalog: entry,
|
|
30882
|
+
userConnector: connectedByVendor[entry.vendor_key],
|
|
30883
|
+
workspaceExtId,
|
|
30884
|
+
workspaceName,
|
|
30885
|
+
onViewProgress,
|
|
30886
|
+
onNeedsReconnectChange: handleNeedsReconnectChange
|
|
30887
|
+
},
|
|
30888
|
+
entry.vendor_key
|
|
30889
|
+
)),
|
|
30890
|
+
extra
|
|
30891
|
+
] })
|
|
30892
|
+
},
|
|
30893
|
+
family.key
|
|
30894
|
+
)
|
|
30611
30895
|
)
|
|
30612
|
-
|
|
30896
|
+
] });
|
|
30613
30897
|
}
|
|
30614
30898
|
function useDriveSyncTrigger() {
|
|
30615
30899
|
const arbi = useArbi();
|
|
@@ -33688,10 +33972,10 @@ var TABLET_TABLE_BELOW = 860;
|
|
|
33688
33972
|
var TABLET_VIEWPORT_BELOW = 1100;
|
|
33689
33973
|
var NO_CONVERSATION_DOCUMENTS2 = [];
|
|
33690
33974
|
var DocumentReviewCard = lazy(
|
|
33691
|
-
() => import('../DocumentReviewCard-
|
|
33975
|
+
() => import('../DocumentReviewCard-XB7BE7MZ.js').then((module) => ({ default: module.DocumentReviewCard }))
|
|
33692
33976
|
);
|
|
33693
33977
|
var FilesViewerDialog = lazy(
|
|
33694
|
-
() => import('../FilesViewerDialog-
|
|
33978
|
+
() => import('../FilesViewerDialog-5PL3HGYO.js').then((module) => ({ default: module.FilesViewerDialog }))
|
|
33695
33979
|
);
|
|
33696
33980
|
function defaultReviewCard(props) {
|
|
33697
33981
|
return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
|
|
@@ -35765,11 +36049,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
|
|
|
35765
36049
|
)
|
|
35766
36050
|
] });
|
|
35767
36051
|
}
|
|
35768
|
-
var GRANTABLE_ROLES = [
|
|
35769
|
-
{ value: "owner", label: "Owner" },
|
|
35770
|
-
{ value: "collaborator", label: "Collaborator" },
|
|
35771
|
-
{ value: "guest", label: "Guest" }
|
|
35772
|
-
];
|
|
36052
|
+
var GRANTABLE_ROLES = ["owner", "collaborator", "guest"].map((value) => ({ value, label: formatRole(value) }));
|
|
35773
36053
|
function ConnectedGrantWorkspaceAccessDialog({
|
|
35774
36054
|
notification: controlled,
|
|
35775
36055
|
onClose
|
|
@@ -35966,10 +36246,7 @@ function ConnectedGrantWorkspaceAccessDialog({
|
|
|
35966
36246
|
children: [
|
|
35967
36247
|
/* @__PURE__ */ jsx(SelectTrigger, { "data-testid": "grant-role-select", children: /* @__PURE__ */ jsx(SelectValue, { children: /* @__PURE__ */ jsx(Badge, { variant: "default", className: getRoleBadgeClass(selectedRole), children: formatRole(selectedRole) }) }) }),
|
|
35968
36248
|
/* @__PURE__ */ jsx(SelectContent, { children: GRANTABLE_ROLES.filter((role) => !isExternal2 || role.value !== "owner").map(
|
|
35969
|
-
(role) => /* @__PURE__ */ jsx(SelectItem, { value: role.value, children: /* @__PURE__ */
|
|
35970
|
-
/* @__PURE__ */ jsx(Badge, { variant: "default", className: getRoleBadgeClass(role.value), children: role.label }),
|
|
35971
|
-
role.value === "guest" && /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Read-only" })
|
|
35972
|
-
] }) }, role.value)
|
|
36249
|
+
(role) => /* @__PURE__ */ jsx(SelectItem, { value: role.value, children: /* @__PURE__ */ jsx(Badge, { variant: "default", className: getRoleBadgeClass(role.value), children: role.label }) }, role.value)
|
|
35973
36250
|
) })
|
|
35974
36251
|
]
|
|
35975
36252
|
}
|
|
@@ -37882,11 +38159,7 @@ function useShareResource({
|
|
|
37882
38159
|
};
|
|
37883
38160
|
return { shareResource, isSharing };
|
|
37884
38161
|
}
|
|
37885
|
-
var ALL_ROLES3 = [
|
|
37886
|
-
{ value: "owner", label: "Owner" },
|
|
37887
|
-
{ value: "collaborator", label: "Collaborator" },
|
|
37888
|
-
{ value: "guest", label: "Guest" }
|
|
37889
|
-
];
|
|
38162
|
+
var ALL_ROLES3 = ["owner", "collaborator", "guest"].map((value) => ({ value, label: formatRole(value) }));
|
|
37890
38163
|
function ResourceShareForm({
|
|
37891
38164
|
resourceType,
|
|
37892
38165
|
resourceExtId,
|
|
@@ -41092,7 +41365,7 @@ function ConnectedConversationPage({
|
|
|
41092
41365
|
const uploadUrls = useAddFromUrls({
|
|
41093
41366
|
onZipFiles: (files) => openDialog("upload", { tab: "upload", files, source: "computer" })
|
|
41094
41367
|
});
|
|
41095
|
-
const uploadDisabledReason = isGuest ? "
|
|
41368
|
+
const uploadDisabledReason = isGuest ? "Read-only members cannot upload documents in this workspace" : "You cannot upload to this workspace";
|
|
41096
41369
|
const { data: allWorkspaceDocuments = [] } = useDocuments();
|
|
41097
41370
|
const { data: conversationDocuments } = useConversationDocuments();
|
|
41098
41371
|
const pinnedDocumentId = useArbiSessionState((state) => state.pinnedDocumentId);
|