@arbidocs/blocks 0.5.41 → 0.5.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{chunk-46WCQ4F3.js → chunk-HH34WKOC.js} +104 -79
  2. package/dist/{chunk-46WCQ4F3.js.map → chunk-HH34WKOC.js.map} +1 -1
  3. package/dist/{chunk-5ZHAHJ4H.cjs → chunk-TPNLYQD2.cjs} +9 -2
  4. package/dist/chunk-TPNLYQD2.cjs.map +1 -0
  5. package/dist/{chunk-CEO7YI7I.js → chunk-X7CXCEGO.js} +8 -3
  6. package/dist/chunk-X7CXCEGO.js.map +1 -0
  7. package/dist/{chunk-5V4HH7EH.cjs → chunk-XDMIVPJP.cjs} +104 -79
  8. package/dist/{chunk-5V4HH7EH.cjs.map → chunk-XDMIVPJP.cjs.map} +1 -1
  9. package/dist/collaboration/direct-messages/DmParts.d.ts +14 -4
  10. package/dist/collaboration/index.cjs +67 -67
  11. package/dist/collaboration/index.js +1 -1
  12. package/dist/connect/index.cjs +601 -110
  13. package/dist/connect/index.cjs.map +1 -1
  14. package/dist/connect/index.d.ts +3 -0
  15. package/dist/connect/index.js +499 -11
  16. package/dist/connect/index.js.map +1 -1
  17. package/dist/connection/people/ConnectedPeopleMultiSelect.d.ts +40 -0
  18. package/dist/connection/people/index.d.ts +1 -0
  19. package/dist/connection/people/invitation-message.d.ts +2 -0
  20. package/dist/connection/sharing/ConnectedShareDialog.d.ts +7 -0
  21. package/dist/connection/sharing/ResourceShareForm.d.ts +24 -0
  22. package/dist/connection/sharing/index.d.ts +1 -0
  23. package/dist/connection/sharing/useShareResource.d.ts +44 -0
  24. package/dist/connection/tips/useContextualHints.d.ts +13 -0
  25. package/dist/index.cjs +171 -123
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.js +43 -4
  28. package/dist/index.js.map +1 -1
  29. package/dist/tips/index.d.ts +2 -0
  30. package/dist/tips/useTipsPlacement.d.ts +24 -0
  31. package/dist/tips/visibility.d.ts +5 -0
  32. package/node_modules/@arbidocs/coedit/package.json +1 -1
  33. package/package.json +5 -5
  34. package/dist/chunk-5ZHAHJ4H.cjs.map +0 -1
  35. package/dist/chunk-CEO7YI7I.js.map +0 -1
@@ -25,7 +25,7 @@ import '../chunk-MTSKK3BN.js';
25
25
  import '../chunk-BTTUZZN3.js';
26
26
  import { FactSourcesPanel, FactPassageItem } from '../chunk-HFZ45FD3.js';
27
27
  import '../chunk-IA5BYEO7.js';
28
- import { EntityTooltip, EntityTooltipHeader, EntityTooltipSection, EntityTooltipHint, SharedCell, WorkspaceActivityList, WorkspaceNotificationMenu, ThreadFollowMenuItem, ThreadFollowButton, TagTable, TagPicker, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, EntityTooltipStats, documentCount, tagTableDocx, tagTableLabels, TagDetail, tagDetailLabels, tagNoteLabel, tagKindDescription, Toolbar, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-CEO7YI7I.js';
28
+ import { EntityTooltip, EntityTooltipHeader, EntityTooltipSection, EntityTooltipHint, SharedCell, WorkspaceActivityList, WorkspaceNotificationMenu, ThreadFollowMenuItem, ThreadFollowButton, TagTable, TagPicker, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, EntityTooltipStats, documentCount, TIPS_VISIBILITY_OVERRIDE, tagTableDocx, setHintsSessionOverride, tagTableLabels, TagDetail, tagDetailLabels, tagNoteLabel, tagKindDescription, Toolbar, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-X7CXCEGO.js';
29
29
  import { MemberAvatarStack } from '../chunk-FUPAGAZB.js';
30
30
  import { renderSearchSnippet, SearchGroupHeader, isMeaningMatch, extractHighlightTerms, passesRelevanceCutoff, groupSearchResults, SearchPillToggle, SearchPagination, SearchPageFrame, SearchPageHeader, ApplyLabelDialog, SearchPageBody, SearchToolbarRow, SearchBar, SearchControlsBar, RelevanceThreshold, SearchTotalsHeadline, ApplyLabelButton, getSearchMatchHint, SearchResultsMain, SearchResultsInner, SearchErrorBanner, SearchResultList, SearchGroupCard, SearchNoResults, SearchEmptyState } from '../chunk-G4IYES7G.js';
31
31
  import { SearchHit } from '../chunk-XJA6TS6D.js';
@@ -35,7 +35,7 @@ import { ThemeEditor } from '../chunk-5ZBXFHZW.js';
35
35
  import { TimelineZoomControl } from '../chunk-4EZVCGRL.js';
36
36
  import '../chunk-UJE32SST.js';
37
37
  import '../chunk-NHZK64TQ.js';
38
- import { PlainMailBodyEditor, MemberNameCell, MemberMutedText, MemberRoleCell, MemberListLoading, MemberBulkActions, buildMailFolderTree, MailFolderTree, AddContactsResults, AddContactsForm, emailTokens, EMPTY_CONTACT_FORM, contactToForm, contactStatusLabel, summarizeImport, matchesContact, contactName, primaryEmail, draftMailCompose, replyMailCompose, emptyMailCompose, MailGrid, MailMessageView, DmThreadFrame, DmAccessRequestBanner, planContactInvites, MAX_INVITE_EMAILS, summarizeUnsentInvites, applyContactInviteResults, summarizeContactInvites, failContactInvites, validateContactForm, inviteEmail, formToContactCard, DEFAULT_CONTACT_OUTCOME_LABELS, contactOutcomeMessage, MailDocumentPicker, parseMailRecipients } from '../chunk-46WCQ4F3.js';
38
+ import { PlainMailBodyEditor, MemberNameCell, MemberMutedText, MemberRoleCell, MemberListLoading, MemberBulkActions, buildMailFolderTree, MailFolderTree, AddContactsResults, AddContactsForm, emailTokens, EMPTY_CONTACT_FORM, contactToForm, contactStatusLabel, summarizeImport, matchesContact, contactName, primaryEmail, draftMailCompose, replyMailCompose, emptyMailCompose, MailGrid, MailMessageView, DmThreadFrame, DmAccessRequestBanner, RecipientPicker, planContactInvites, MAX_INVITE_EMAILS, summarizeUnsentInvites, applyContactInviteResults, summarizeContactInvites, failContactInvites, validateContactForm, inviteEmail, formToContactCard, DEFAULT_CONTACT_OUTCOME_LABELS, contactOutcomeMessage, MailDocumentPicker, parseMailRecipients } from '../chunk-HH34WKOC.js';
39
39
  import '../chunk-NBV56SGU.js';
40
40
  import { ErrorBoundary } from '../chunk-EQ3WRY2N.js';
41
41
  import { LabelMultiSelectView } from '../chunk-JMQLTMJ7.js';
@@ -94,12 +94,12 @@ import { ModalSection, ModalHeader, ModalScaffold, ModalSectionTitle } from '../
94
94
  import '../chunk-7F6CBP3Z.js';
95
95
  import '../chunk-VUNV25KB.js';
96
96
  import { QueryClient, useQueryClient, QueryClientProvider } from '@tanstack/react-query';
97
- import { useWorkspaces, ArbiBotHeadIcon, IN_FLIGHT_DOCUMENT_STATUSES, useOfflineDocumentIds, useOpenViewerDocumentId, FINISHED_DOCUMENT_STATUSES, useMailPolicy, useProcessingTasks, resolveDocumentStatus, useArbi, useIsCreatingTag, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, useArbiSessionState, selectDraft, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useArbiWsStatus, useArbiWsStore, useUserSettings, useProcessingTask, useDocumentPendingSync, useWorkspaceUsers, useMessageTimer, useDocuments, useAvailableModels, formatGbp, CitationRenderer, useArbiSession, buildMentionCandidates, useConversations, ASSISTANT_MENTION_LABEL, useConversationItems, useDeleteMessage, useArbiHost, transcriptSegmentOf, useConfig, useThinkingContent, useCreateFact, useCreateFacts, workflowStepOf, stripSpeakerPrefix, MessageArtifactCard, useConversationData, useBranchNavigation, useSkills, useBuiltinCommands, useDocumentsSupport, useConversationActivity, useMessageDetails, useWorkflows, getWorkspaceKind, resolveConfigModel, useRunConversation, useWorkspaceActivity, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useCallsEnabled, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, usePendingSyncItems, useCancelManyPendingSync, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useWorkflowRuns, useAgents, ArtifactCanvas, ConversationScope, useConversation, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useShellWorkspaces, useProfile, useUpdateProfile, useRequestEmailChange, useConfirmEmailChange, useNameEditor, useAvatarCrop, useEmailChange, ImageCropModal, useIdentityVerification, usePasswordChange, usePasswordChangeForm, useNotificationPreferences, useSessions, useCurrentSessionId, useTerminateSession, useSignOut, useDeleteAccount, useDeleteAccountFlow, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailAccounts, useUpdateUserSettings, useDismissedTips, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, toShellWorkspace, useIsSlow, useProducts, useCreateProject, useDeleteProject, useCanCreateProjects, PROJECT_CREATION_DENIED_REASON, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, useRefreshProject, useBoxRole, useContacts, useInviteContacts, useDeleteWorkspaces, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, useDeleteContact, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, useCalendarEvents, useCalendars, useCanHostCalls, useOpenCallMeetingChat, usePeople, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, useMailAttachmentText, useCalendarEventByUid, getPublicBookingPage, bookPublicSlot, PublicBookingError, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useUploadFromUrls, useUploadFiles, useUpdateDocTag, useRemoveDocTags, useKeepDocumentsOffline, useRemoveDocumentsOffline, subscribeDocumentRows, useGenerateDocTags, useRefreshDocuments, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, useDatabases, useCreateDatabase, useImportDatabase, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useCreateGroupChat, useChatArrivals, useApplyChatModel, AUTO_CHAT_MODEL, formatGbpPerMillionTokens, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useRequestWorkspaceAccess, useIsEntitled, ImageCropper, useCreateWork, useRunWorkflow, useStartTaskQuery, useCreateWorkflow, useUpdateConversation, useUpdateWorkflow, threadTabId, useCanEditShared, useActOnStep, usePlanWork, useWorkItems, TaskThreadPendingError, useMentionCandidates, useAgentRunControl, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, useWorkspaceRole, buildPendingFirstTurn, useConversationTurn, useAskAgain, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useAgentSession, useStartAgentSession, useCloseAgentSession, downloadRecoveryFile, LinkedInIcon, GoogleIcon, AppleIcon, useCurrentUser, useTransientView, useDeleteConversation, useIsWorkspaceOwner, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, DmAvatar, ConversationList, GitHubIcon, cropImage, getRelatedTotal, isDeploymentUserNotification, describeServerNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, isSignatureNotificationType, inputRequestTitle, WORK_NOTIFICATION_LABELS, useConversationThreads, usePassageQuotes, useUpdateFact, useDeleteFact, useAccountClient, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useCreateWorkspace, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useSwitchWorkspace, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useDatabase, useDatabaseRows, useUpdateDatabase, useDeleteDatabase, useAddDatabaseRows, useUpdateDatabaseRow, useDeleteDatabaseRows, useImportDatabaseRows, useExportDatabase, DATABASE_ROWS_PAGE, useInvalidateAfterTransfer, useConfigs, useSaveConfigField, useDeleteConfig, isFullConfig, useChatUnreadTotal, useUnreadByPeer, useConversationSearch, useProjectConversationUsage, AiAnswer, ArbiWebSocketProvider, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, useSearchDatabaseRows, isReplayableArbiMutation, SHAREPOINT_VENDORS, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom } from '@arbidocs/react';
97
+ import { useWorkspaces, ArbiBotHeadIcon, IN_FLIGHT_DOCUMENT_STATUSES, useOfflineDocumentIds, useOpenViewerDocumentId, FINISHED_DOCUMENT_STATUSES, useMailPolicy, useProcessingTasks, resolveDocumentStatus, useArbi, useIsCreatingTag, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, useArbiSessionState, selectDraft, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useArbiWsStatus, useArbiWsStore, useUserSettings, useProcessingTask, useDocumentPendingSync, useWorkspaceUsers, useMessageTimer, useDocuments, useAvailableModels, formatGbp, CitationRenderer, useArbiSession, buildMentionCandidates, useConversations, ASSISTANT_MENTION_LABEL, useConversationItems, useDeleteMessage, useArbiHost, transcriptSegmentOf, useConfig, useThinkingContent, useCreateFact, useCreateFacts, workflowStepOf, stripSpeakerPrefix, MessageArtifactCard, useConversationData, useBranchNavigation, useSkills, useBuiltinCommands, useDocumentsSupport, useConversationActivity, useMessageDetails, useWorkflows, getWorkspaceKind, resolveConfigModel, useRunConversation, useWorkspaceActivity, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useCallsEnabled, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, usePendingSyncItems, useCancelManyPendingSync, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useWorkflowRuns, useAgents, ArtifactCanvas, ConversationScope, useConversation, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useShellWorkspaces, useProfile, useUpdateProfile, useRequestEmailChange, useConfirmEmailChange, useNameEditor, useAvatarCrop, useEmailChange, ImageCropModal, useIdentityVerification, usePasswordChange, usePasswordChangeForm, useNotificationPreferences, useSessions, useCurrentSessionId, useTerminateSession, useSignOut, useDeleteAccount, useDeleteAccountFlow, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailAccounts, useUpdateUserSettings, useDismissedTips, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, toShellWorkspace, useIsSlow, useProducts, useCreateProject, useDeleteProject, useCanCreateProjects, PROJECT_CREATION_DENIED_REASON, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, useRefreshProject, useBoxRole, useContacts, useInviteContacts, useDeleteWorkspaces, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, useDeleteContact, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, useCalendarEvents, useCalendars, useCanHostCalls, useOpenCallMeetingChat, usePeople, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, useMailAttachmentText, useCalendarEventByUid, getPublicBookingPage, bookPublicSlot, PublicBookingError, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useUploadFromUrls, useUploadFiles, useUpdateDocTag, useRemoveDocTags, useKeepDocumentsOffline, useRemoveDocumentsOffline, subscribeDocumentRows, useGenerateDocTags, useRefreshDocuments, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, useDatabases, useCreateDatabase, useImportDatabase, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useCreateGroupChat, useChatArrivals, useApplyChatModel, AUTO_CHAT_MODEL, formatGbpPerMillionTokens, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useRequestWorkspaceAccess, useIsEntitled, ImageCropper, useCreateWork, useRunWorkflow, useStartTaskQuery, useCreateWorkflow, useUpdateConversation, useUpdateWorkflow, usePeopleSearch, threadTabId, useCanEditShared, useActOnStep, usePlanWork, useWorkItems, TaskThreadPendingError, useMentionCandidates, useAgentRunControl, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, useWorkspaceRole, buildPendingFirstTurn, useConversationTurn, useAskAgain, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useAgentSession, useStartAgentSession, useCloseAgentSession, downloadRecoveryFile, LinkedInIcon, GoogleIcon, AppleIcon, useCurrentUser, useTransientView, useDeleteConversation, useIsWorkspaceOwner, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, DmAvatar, ConversationList, GitHubIcon, cropImage, getRelatedTotal, isDeploymentUserNotification, describeServerNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, isSignatureNotificationType, inputRequestTitle, WORK_NOTIFICATION_LABELS, useConversationThreads, usePassageQuotes, useUpdateFact, useDeleteFact, useAccountClient, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useCreateWorkspace, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useSwitchWorkspace, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useDatabase, useDatabaseRows, useUpdateDatabase, useDeleteDatabase, useAddDatabaseRows, useUpdateDatabaseRow, useDeleteDatabaseRows, useImportDatabaseRows, useExportDatabase, DATABASE_ROWS_PAGE, useInvalidateAfterTransfer, useConfigs, useSaveConfigField, useDeleteConfig, isFullConfig, useChatUnreadTotal, useUnreadByPeer, useMarkDocumentShared, useConversationSearch, useProjectConversationUsage, AiAnswer, ArbiWebSocketProvider, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, useSearchDatabaseRows, isReplayableArbiMutation, SHAREPOINT_VENDORS, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom } from '@arbidocs/react';
98
98
  import { mergeAgentSteps, extractSubagentLanes, getCurrentStep, computeRunStats, formatTokens, isNearAiUsageBudget, getSubagentBranchRecord, buildCitationChunkData, topLevelAgentSteps, findMainSiblingLeaf, sliceToSubagentThread, getAgentStepLabel, subagentJobLabel, getStepDisplay, getStepTool, findLeafForTaskMessage, Arbi, FLAT_TAG_KINDS, getEligibleParentTags, canTagHaveParent, isFlatKind, TAG_NESTING_MAX_DEPTH, TAG_KINDS, formatFileSize, filterDocumentTags, isLabelTag, refusalReason, isPresenceTag, isAnnotationTag, flattenTagTree, tagsForScope, tagsOfGroup, chats, buildRetrievalFullContextTool, buildRetrievalChunkTool, getChildTags, tagUseCount, ArbiApiError, PRESENCE_KINDS, isEntityTag, DuplicateContactError, wouldCreateTagCycle, getTagDescendantIds } from '@arbidocs/sdk/browser';
99
99
  import { isAbortError, browserSessionStateStorage, parseCallFragment, isMessageType, validateRecoveryKeyFile, RECOVERY_KEY_ERRORS, parseRecoveryUrl, prewarmKeyPairs, decryptRecoveryKey, unlockIdentityWithPassword, createRecoveryUrl, bytesToBase64, initSodium } from '@arbidocs/client';
100
100
  import React9, { memo, useMemo, lazy, useRef, useEffect, useCallback, useState, forwardRef, useLayoutEffect, useImperativeHandle, createContext, useContext, Suspense, useSyncExternalStore, createElement, Fragment as Fragment$1, useId } from 'react';
101
101
  import { Users, MessageCircleMore, SquarePen, BookOpen, MessagesSquare, Pencil, Download, Mail, FolderInput, Trash2, Eye, Sparkles, Play, ArrowDownToLine, RefreshCw, Zap, AlertTriangle, FileX, SkipForward, Loader2, Clock, CheckCircle, ArrowUpRight, Send, Settings, Edit3, Copy, Link, Share2, Check, Milestone, RotateCcw, FileText, Network, ChevronRight, Bell, Activity, Info, UserCheck, WifiOff, CircleCheck, Upload, Link2, Search, Plus, ArrowLeft, ExternalLink as ExternalLink$1, Tags, CheckCircle2, Monitor, UserCircle, KeyRound, Radio, LogOut, Wifi, Lock, HardDrive, User, HatGlasses, MessageSquare, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, Printer, SquareStack, Table, FolderKanban, Cake, X, UserRound, Star, Tag, Video, CalendarDays, MapPin, Globe, Calendar, Hash, File as File$1, FileType, FolderOpen, Fingerprint, Paperclip, TriangleAlert, LoaderCircle, NotebookPen, Columns3, EyeOff, ArrowUp, ArrowDown, ZoomOut, Camera, FilePlus2, UserMinus, UserPlus, UsersRound, Code2, Infinity, Bug, Crop, Undo2, ImageUp, ChevronDown, MoreHorizontal, Wrench, RotateCw, Square, BadgeCheck, Shield, ClipboardList, Table2, CheckCheck, FolderUp, ArrowUpCircle, Contact, Scale, BookA, Quote, Inbox, CalendarX, CalendarCheck, Phone, LogIn, Pause, Workflow, Minimize2, Maximize2, Minus, CalendarSearch, DoorOpen, AlertCircle } from 'lucide-react';
102
- import { isAgent, UserEntity, getUserInitials, getUserDisplayName, getUserAvatarColor, agentAvatarColors, Avatar, AvatarImage, AvatarFallback, cn, ShieldIcon, getWorkspaceColor, getFileTypeIcon, DocumentEntity, getDocumentTitle, formatFolderLabel, getEntityLabel, getEntityColor, VisibilityIcon, formatFriendlyDate, getDocumentSubject, Badge, getTagTypeIcon, getTagTypeLabel, VisibilityToggle, TagEntity, ThreadVisibilityIcon, Button, isImageDocument, Tooltip, TooltipTrigger, TooltipContent, Dialog, DialogContent, formatRelativeTime, ProviderIcon, EntityIcon, createUserAvatarIcon, DialogHeader, DialogTitle, DialogDescription, DialogFooter, Label, Input, Textarea, tagKindNouns, tagKindTitle, IconToggle, Switch, Checkbox, entityNoun, DialogTrigger, EntityPill, ProjectEntity, Tabs, TabsList, TabsTrigger, TabsContent, getDocIcon, getDocumentNature, getDocumentAuthor, markdownToPlainText, formatDocDate, getDocumentDate, friendlyFileType, canonicalFolderPath, DebouncedInput, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Slider, AgentBadge, PresenceLabel, TooltipProvider, UserMenu, Popover, PopoverAnchor, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, ScrollArea, ArbiIcon, ARBI_MARK_SRC, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Progress } from '@arbidocs/react/ui';
102
+ import { isAgent, UserEntity, getUserInitials, getUserDisplayName, getUserAvatarColor, agentAvatarColors, Avatar, AvatarImage, AvatarFallback, cn, ShieldIcon, getWorkspaceColor, getFileTypeIcon, DocumentEntity, getDocumentTitle, formatFolderLabel, getEntityLabel, getEntityColor, VisibilityIcon, formatFriendlyDate, getDocumentSubject, Badge, getTagTypeIcon, getTagTypeLabel, VisibilityToggle, TagEntity, ThreadVisibilityIcon, Button, isImageDocument, Tooltip, TooltipTrigger, TooltipContent, Dialog, DialogContent, formatRelativeTime, ProviderIcon, EntityIcon, createUserAvatarIcon, DialogHeader, DialogTitle, DialogDescription, DialogFooter, Label, Input, Textarea, tagKindNouns, tagKindTitle, IconToggle, Switch, Checkbox, entityNoun, DialogTrigger, EntityPill, ProjectEntity, Tabs, TabsList, TabsTrigger, TabsContent, getDocIcon, getDocumentNature, getDocumentAuthor, markdownToPlainText, formatDocDate, getDocumentDate, friendlyFileType, canonicalFolderPath, DebouncedInput, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Slider, AgentBadge, PresenceLabel, TooltipProvider, UserMenu, CommandGroup, CommandItem, Popover, PopoverAnchor, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, ScrollArea, ArbiIcon, ARBI_MARK_SRC, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Progress } from '@arbidocs/react/ui';
103
103
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
104
104
  import { hasMessageBody, notify, linkMentions, useNotify, sharedSearchSession, takePendingSearch, selectUnread, NotificationBell, useTurnDocumentId, useOpenDocumentId, useRegisterOpenDocument } from '@arbidocs/react/shell';
105
105
  import { SIGNED_LOCKED_REASON, isSignedVersion, currentHasMarkup, fetchMarkupPdf, downloadBlob, useIsOnline, DocumentToolsProvider, useOptionalDocumentTools, fetchDocumentPdf, useSignatureVerification, SignatureVerificationError } from '@arbidocs/react/document-tools';
@@ -10338,6 +10338,18 @@ function ConnectedRecentlyDeletedButton({
10338
10338
  ] })
10339
10339
  ] });
10340
10340
  }
10341
+
10342
+ // src/connection/people/invitation-message.ts
10343
+ function invitationMessage(emails, workspaceWord2) {
10344
+ const missing = emails.length === 1 ? `${emails[0]} isn't on the platform yet.` : `These users aren't on the platform yet:
10345
+ ${emails.join("\n")}`;
10346
+ const destination = workspaceWord2 ? ` to this ${workspaceWord2}` : "";
10347
+ return `${missing}
10348
+
10349
+ Invite them by email? Once they sign up, they'll usually get access${destination} automatically \u2014 if not, they can request it themselves.`;
10350
+ }
10351
+
10352
+ // src/connection/workspace-settings/useConnectedWorkspaceSettings.ts
10341
10353
  function errorDetail(err) {
10342
10354
  const e = err;
10343
10355
  const detail = e?.detail ?? e?.apiError?.detail ?? e?.response?.data?.detail ?? e?.error?.detail;
@@ -10350,10 +10362,6 @@ function errorStatus(err) {
10350
10362
  return e?.status ?? e?.response?.status;
10351
10363
  }
10352
10364
  var workspaceWord = () => getEntityLabel("WORKSPACE").toLowerCase();
10353
- var inviteMessage = (emails) => `${emails.length === 1 ? `${emails[0]} isn't on the platform yet.` : `These users aren't on the platform yet:
10354
- ${emails.join("\n")}`}
10355
-
10356
- Invite them by email? Once they sign up, they'll usually get access to this ${workspaceWord()} automatically \u2014 if not, they can request it themselves.`;
10357
10365
  function useConnectedWorkspaceSettings(workspaceId, { onLeft } = {}) {
10358
10366
  const { notify: notify18, confirm } = useBlocksEnvironment();
10359
10367
  const { workspaceId: openWorkspaceId, userId } = useConnectedWorkspace();
@@ -10434,7 +10442,7 @@ function useConnectedWorkspaceSettings(workspaceId, { onLeft } = {}) {
10434
10442
  );
10435
10443
  }
10436
10444
  if (unknown.length > 0 && await confirm({
10437
- message: inviteMessage(unknown),
10445
+ message: invitationMessage(unknown, workspaceWord()),
10438
10446
  title: "Invite by email?",
10439
10447
  kind: "yesno"
10440
10448
  })) {
@@ -10450,7 +10458,7 @@ function useConnectedWorkspaceSettings(workspaceId, { onLeft } = {}) {
10450
10458
  const notRegistered = status === 404 || lower.includes("not found") || lower.includes("no user") || lower.includes("does not exist") || lower.includes("user not registered");
10451
10459
  if (notRegistered) {
10452
10460
  if (await confirm({
10453
- message: inviteMessage(emails),
10461
+ message: invitationMessage(emails, workspaceWord()),
10454
10462
  title: "Invite by email?",
10455
10463
  kind: "yesno"
10456
10464
  })) {
@@ -33106,7 +33114,468 @@ function Inner() {
33106
33114
  function WorkflowLaunchHost() {
33107
33115
  return useWorkflowLaunchRequest() ? /* @__PURE__ */ jsx(Inner, {}) : null;
33108
33116
  }
33117
+ function isNeedsConfirmationDetail(detail) {
33118
+ return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
33119
+ }
33120
+ function extractDetail(err) {
33121
+ const error = err;
33122
+ return error?.detail ?? error?.response?.data?.detail ?? error?.error?.detail;
33123
+ }
33124
+ function isNotFoundError(err) {
33125
+ const error = err;
33126
+ const status = error?.status ?? error?.response?.status;
33127
+ const detail = extractDetail(err);
33128
+ const detailStr = typeof detail === "string" ? detail.toLowerCase() : "";
33129
+ return status === 404 || detailStr.includes("not found") || detailStr.includes("no user") || detailStr.includes("does not exist");
33130
+ }
33131
+ function groupByRole(entries) {
33132
+ const groups = /* @__PURE__ */ new Map();
33133
+ for (const { email, role } of entries) {
33134
+ const group = groups.get(role);
33135
+ if (group) group.push(email);
33136
+ else groups.set(role, [email]);
33137
+ }
33138
+ return groups;
33139
+ }
33140
+ function useShareResource({
33141
+ workspaceExtId,
33142
+ resourceType,
33143
+ resourceExtId,
33144
+ resourceName,
33145
+ memberEmails = []
33146
+ }) {
33147
+ const { confirm, notify: notify18 } = useBlocksEnvironment();
33148
+ const addWorkspaceUsersMutation = useAddWorkspaceMembers();
33149
+ const [isSharing, setIsSharing] = useState(false);
33150
+ const memberEmailSet = new Set(memberEmails.map((e) => e.toLowerCase()));
33151
+ const submit = (emails, role, extra) => addWorkspaceUsersMutation.mutateAsync({
33152
+ emails,
33153
+ role,
33154
+ workspace_ext_id: workspaceExtId,
33155
+ resource_type: resourceType,
33156
+ resource_ext_id: resourceExtId,
33157
+ ...extra
33158
+ });
33159
+ const shareResource = async (entries, shareWithWorkspace) => {
33160
+ if (entries.length === 0) return "error";
33161
+ setIsSharing(true);
33162
+ try {
33163
+ let confirmShare = shareWithWorkspace;
33164
+ const notFoundByRole = /* @__PURE__ */ new Map();
33165
+ for (const [role, emails] of groupByRole(entries)) {
33166
+ let response = null;
33167
+ for (let attempt = 0; attempt < 2; attempt++) {
33168
+ try {
33169
+ response = await submit(emails, role, confirmShare ? { confirm_share: true } : {});
33170
+ break;
33171
+ } catch (err) {
33172
+ const detail = extractDetail(err);
33173
+ if (isNeedsConfirmationDetail(detail) && !confirmShare) {
33174
+ const label = resourceType === "document" ? "document" : "conversation";
33175
+ const displayName = detail.resource_name || resourceName || "Untitled";
33176
+ const confirmed = await confirm({
33177
+ message: `"${displayName}" is currently private. Sharing it will make it visible to everyone in this workspace, not just ${emails.length === 1 ? emails[0] : "the people you selected"}. Continue?`,
33178
+ title: `Share private ${label}`,
33179
+ kind: "yesno"
33180
+ });
33181
+ if (!confirmed) return "cancelled";
33182
+ confirmShare = true;
33183
+ continue;
33184
+ }
33185
+ if (isNotFoundError(err)) {
33186
+ response = [];
33187
+ break;
33188
+ }
33189
+ throw err;
33190
+ }
33191
+ }
33192
+ const addedEmails = new Set((response || []).map((wu) => wu.user.email.toLowerCase()));
33193
+ const groupNotFound = emails.filter(
33194
+ (email) => !addedEmails.has(email.toLowerCase()) && !memberEmailSet.has(email.toLowerCase())
33195
+ );
33196
+ if (groupNotFound.length > 0) notFoundByRole.set(role, groupNotFound);
33197
+ }
33198
+ const allNotFound = [...notFoundByRole.values()].flat();
33199
+ const handledCount = entries.length - allNotFound.length;
33200
+ if (allNotFound.length > 0) {
33201
+ const shouldInvite = await confirm({
33202
+ message: invitationMessage(allNotFound),
33203
+ title: allNotFound.length === 1 ? "User not found" : "Users not found",
33204
+ kind: "yesno"
33205
+ });
33206
+ if (shouldInvite) {
33207
+ for (const [role, emails] of notFoundByRole) {
33208
+ await submit(emails, role, {
33209
+ confirm_invite: true,
33210
+ ...confirmShare ? { confirm_share: true } : {}
33211
+ });
33212
+ }
33213
+ } else if (handledCount === 0) {
33214
+ return "cancelled";
33215
+ }
33216
+ }
33217
+ notify18("Shared successfully", "success");
33218
+ return "shared";
33219
+ } catch (err) {
33220
+ console.error("Failed to share resource:", err);
33221
+ notify18("Failed to share", "error");
33222
+ return "error";
33223
+ } finally {
33224
+ setIsSharing(false);
33225
+ }
33226
+ };
33227
+ return { shareResource, isSharing };
33228
+ }
33229
+ function ConnectedPeopleMultiSelect({
33230
+ includeAgents = false,
33231
+ selectedUsers,
33232
+ onSelectionChange,
33233
+ allowEmailEntry = false,
33234
+ excludeEmails = [],
33235
+ memberEmails = [],
33236
+ showContactToggle = false,
33237
+ showPresence = false,
33238
+ placeholder = "Select users...",
33239
+ emptyMessage = "No users available",
33240
+ actionSlot,
33241
+ renderChipExtra
33242
+ }) {
33243
+ const [open, setOpen] = useState(false);
33244
+ const [searchValue, setSearchValue] = useState("");
33245
+ const selectedIds = useMemo(
33246
+ () => new Set(selectedUsers.map((u) => u.id.toLowerCase())),
33247
+ [selectedUsers]
33248
+ );
33249
+ const selectedEmails = useMemo(
33250
+ () => new Set(selectedUsers.map((u) => u.email.toLowerCase())),
33251
+ [selectedUsers]
33252
+ );
33253
+ const excludeSet = useMemo(
33254
+ () => /* @__PURE__ */ new Set([...excludeEmails.map((e) => e.toLowerCase())]),
33255
+ [excludeEmails]
33256
+ );
33257
+ const memberSet = useMemo(() => new Set(memberEmails.map((e) => e.toLowerCase())), [memberEmails]);
33258
+ const { people } = usePeopleSearch(searchValue, { agents: includeAgents });
33259
+ const availablePeople = useMemo(
33260
+ () => people.filter((p) => !excludeSet.has(p.email.toLowerCase())),
33261
+ [people, excludeSet]
33262
+ );
33263
+ const isSelected = useCallback(
33264
+ (id, email) => selectedIds.has(id.toLowerCase()) || selectedEmails.has(email.toLowerCase()),
33265
+ [selectedIds, selectedEmails]
33266
+ );
33267
+ const isValidEmail = (value) => {
33268
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
33269
+ return emailRegex.test(value.trim());
33270
+ };
33271
+ const isEmailExcluded = useCallback(
33272
+ (email) => excludeSet.has(email.toLowerCase()),
33273
+ [excludeSet]
33274
+ );
33275
+ const isEmailSelected = useCallback(
33276
+ (email) => selectedEmails.has(email.toLowerCase()),
33277
+ [selectedEmails]
33278
+ );
33279
+ const selectionId = (person) => person.user?.external_id ?? person.email.toLowerCase();
33280
+ const togglePerson = (person) => {
33281
+ const id = selectionId(person);
33282
+ if (isSelected(id, person.email)) {
33283
+ onSelectionChange(
33284
+ selectedUsers.filter(
33285
+ (u) => u.id.toLowerCase() !== id.toLowerCase() && u.email.toLowerCase() !== person.email.toLowerCase()
33286
+ )
33287
+ );
33288
+ } else {
33289
+ onSelectionChange([
33290
+ ...selectedUsers,
33291
+ person.user ? { id, email: person.user.email, user: person.user } : { id, email: person.email.toLowerCase() }
33292
+ ]);
33293
+ }
33294
+ setSearchValue("");
33295
+ };
33296
+ const addEmail = () => {
33297
+ const email = searchValue.trim().toLowerCase();
33298
+ if (email && isValidEmail(email) && !isEmailExcluded(email) && !isEmailSelected(email)) {
33299
+ onSelectionChange([...selectedUsers, { id: email, email }]);
33300
+ setSearchValue("");
33301
+ setOpen(false);
33302
+ }
33303
+ };
33304
+ const removeUser = (id) => {
33305
+ onSelectionChange(selectedUsers.filter((u) => u.id.toLowerCase() !== id.toLowerCase()));
33306
+ };
33307
+ const canAddEmail = allowEmailEntry && searchValue && isValidEmail(searchValue) && !isEmailExcluded(searchValue) && !isEmailSelected(searchValue) && !availablePeople.some((p) => p.email.toLowerCase() === searchValue.trim().toLowerCase());
33308
+ const getEmptyMessage = () => {
33309
+ if (!searchValue.trim()) return emptyMessage;
33310
+ if (allowEmailEntry) {
33311
+ if (!isValidEmail(searchValue)) return "Type a valid email address";
33312
+ if (isEmailExcluded(searchValue)) return "This user is already a member";
33313
+ if (isEmailSelected(searchValue)) return "Already selected";
33314
+ }
33315
+ return "No matching users";
33316
+ };
33317
+ return /* @__PURE__ */ jsx(
33318
+ RecipientPicker,
33319
+ {
33320
+ layout: "field",
33321
+ selected: selectedUsers.map((selected) => ({
33322
+ id: selected.id,
33323
+ identity: /* @__PURE__ */ jsxs(Fragment, { children: [
33324
+ selected.user ? /* @__PURE__ */ jsxs(Fragment, { children: [
33325
+ /* @__PURE__ */ jsx(
33326
+ ConnectedUserEntity,
33327
+ {
33328
+ user: selected.user,
33329
+ size: "xs",
33330
+ variant: "pill",
33331
+ showPresence,
33332
+ interactive: false
33333
+ }
33334
+ ),
33335
+ showContactToggle && /* @__PURE__ */ jsx(ConnectedContactToggle, { user: selected.user })
33336
+ ] }) : /* @__PURE__ */ jsx("span", { className: "text-sm truncate", children: selected.email }),
33337
+ renderChipExtra?.(selected)
33338
+ ] })
33339
+ })),
33340
+ onRemove: removeUser,
33341
+ candidates: availablePeople.map((person) => {
33342
+ const id = selectionId(person), selected = isSelected(id, person.email), isMember = memberSet.has(person.email.toLowerCase());
33343
+ return {
33344
+ id,
33345
+ value: `person-${id}`,
33346
+ identity: /* @__PURE__ */ jsxs(Fragment, { children: [
33347
+ /* @__PURE__ */ jsx(
33348
+ Check,
33349
+ {
33350
+ className: `mr-2 h-4 w-4 shrink-0 ${selected ? "opacity-100" : "opacity-0"}`
33351
+ }
33352
+ ),
33353
+ person.user ? /* @__PURE__ */ jsx(
33354
+ ConnectedUserEntity,
33355
+ {
33356
+ user: person.user,
33357
+ size: "xs",
33358
+ variant: "pill",
33359
+ showPresence,
33360
+ interactive: false
33361
+ }
33362
+ ) : /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col", children: [
33363
+ /* @__PURE__ */ jsx("span", { className: "truncate text-sm", children: person.name }),
33364
+ person.name !== person.email && /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-muted-foreground", children: person.email })
33365
+ ] }),
33366
+ isMember ? /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs text-muted-foreground", children: "Member" }) : !person.user && /* @__PURE__ */ jsx("span", { className: "ml-auto pl-2 text-xs text-muted-foreground", children: "Invite" })
33367
+ ] })
33368
+ };
33369
+ }),
33370
+ onPick: (id) => {
33371
+ const person = availablePeople.find((p) => selectionId(p) === id);
33372
+ if (person) togglePerson(person);
33373
+ },
33374
+ canAdd: true,
33375
+ isOpen: open,
33376
+ onOpenChange: setOpen,
33377
+ search: searchValue,
33378
+ onSearchChange: setSearchValue,
33379
+ hasNoKnownUsers: false,
33380
+ labels: {
33381
+ selectRecipient: placeholder,
33382
+ searchUsers: allowEmailEntry ? "Search or type email..." : "Search users...",
33383
+ removeRecipient: "Remove"
33384
+ },
33385
+ triggerTestId: "user-multi-select-trigger",
33386
+ candidateHeading: "People",
33387
+ emptyContent: canAddEmail ? null : getEmptyMessage(),
33388
+ actionSlot,
33389
+ beforeCandidates: canAddEmail && /* @__PURE__ */ jsx(CommandGroup, { heading: "Add by email", children: /* @__PURE__ */ jsxs(
33390
+ CommandItem,
33391
+ {
33392
+ value: `add-email-${searchValue}`,
33393
+ onSelect: addEmail,
33394
+ className: "cursor-pointer",
33395
+ children: [
33396
+ /* @__PURE__ */ jsx(Plus, { className: "mr-2 h-4 w-4 shrink-0" }),
33397
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col", children: [
33398
+ /* @__PURE__ */ jsxs("span", { className: "text-sm", children: [
33399
+ "Add \u201C",
33400
+ searchValue,
33401
+ "\u201D"
33402
+ ] }),
33403
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Not in your contacts or workspaces yet. ARBI checks for an account when you add them." })
33404
+ ] })
33405
+ ]
33406
+ },
33407
+ `add-email-${searchValue}`
33408
+ ) })
33409
+ }
33410
+ );
33411
+ }
33412
+ var ALL_ROLES2 = [
33413
+ { value: "owner", label: "Owner" },
33414
+ { value: "collaborator", label: "Collaborator" },
33415
+ { value: "guest", label: "Guest" }
33416
+ ];
33417
+ function ResourceShareForm({
33418
+ resourceType,
33419
+ resourceExtId,
33420
+ workspaceExtId,
33421
+ resourceName,
33422
+ isPrivate,
33423
+ onDone,
33424
+ disabled = false
33425
+ }) {
33426
+ const [selectedUsers, setPeopleSelections] = useState([]);
33427
+ const [rolesByEmail, setRolesByEmail] = useState({});
33428
+ const [shareWithWorkspace, setShareWithWorkspace] = useState(isPrivate);
33429
+ const { data: workspaces = [] } = useWorkspaces();
33430
+ const markDocumentShared = useMarkDocumentShared();
33431
+ const workspace = useMemo(
33432
+ () => workspaces.find((ws) => ws.external_id === workspaceExtId),
33433
+ [workspaces, workspaceExtId]
33434
+ );
33435
+ const memberEmailSet = useMemo(
33436
+ () => new Set((workspace?.users ?? []).map((wu) => wu.user.email.toLowerCase())),
33437
+ [workspace]
33438
+ );
33439
+ const memberRoleByEmail = useMemo(
33440
+ () => new Map((workspace?.users ?? []).map((wu) => [wu.user.email.toLowerCase(), wu.role])),
33441
+ [workspace]
33442
+ );
33443
+ const { shareResource, isSharing } = useShareResource({
33444
+ workspaceExtId,
33445
+ resourceType,
33446
+ resourceExtId,
33447
+ resourceName,
33448
+ memberEmails: [...memberEmailSet]
33449
+ });
33450
+ const label = resourceType === "document" ? "document" : "conversation";
33451
+ const workspaceLabel = getEntityLabel("WORKSPACE").toLowerCase();
33452
+ const handleSubmit = async () => {
33453
+ if (disabled || selectedUsers.length === 0) return;
33454
+ const entries = selectedUsers.map((u) => {
33455
+ const lower = u.email.toLowerCase();
33456
+ const role = memberEmailSet.has(lower) ? memberRoleByEmail.get(lower) : rolesByEmail[u.email] ?? "collaborator";
33457
+ return { email: u.email, role };
33458
+ });
33459
+ const result = await shareResource(entries, shareWithWorkspace);
33460
+ if (result === "shared") {
33461
+ if (resourceType === "document" && shareWithWorkspace) {
33462
+ markDocumentShared(resourceExtId);
33463
+ }
33464
+ setPeopleSelections([]);
33465
+ setRolesByEmail({});
33466
+ onDone();
33467
+ }
33468
+ };
33469
+ const canSubmit = !disabled && selectedUsers.length > 0 && (!isPrivate || shareWithWorkspace);
33470
+ const renderChipExtra = (selected) => {
33471
+ const lower = selected.email.toLowerCase();
33472
+ if (memberEmailSet.has(lower)) {
33473
+ const memberRole = memberRoleByEmail.get(lower);
33474
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 shrink-0", children: [
33475
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Member" }),
33476
+ /* @__PURE__ */ jsx(Badge, { variant: "default", className: getRoleBadgeClass(memberRole), children: formatRole(memberRole) })
33477
+ ] });
33478
+ }
33479
+ const role = rolesByEmail[selected.email] ?? "collaborator";
33480
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1.5 shrink-0", children: /* @__PURE__ */ jsxs(Tooltip, { children: [
33481
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsxs(
33482
+ Select,
33483
+ {
33484
+ value: role,
33485
+ onValueChange: (value) => setRolesByEmail((prev) => ({ ...prev, [selected.email]: value })),
33486
+ children: [
33487
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-7 w-[120px]", children: /* @__PURE__ */ jsx(SelectValue, { children: /* @__PURE__ */ jsx(Badge, { variant: "default", className: getRoleBadgeClass(role), children: formatRole(role) }) }) }),
33488
+ /* @__PURE__ */ jsx(SelectContent, { children: ALL_ROLES2.map((r) => /* @__PURE__ */ jsx(SelectItem, { value: r.value, children: /* @__PURE__ */ jsx(Badge, { variant: "default", className: getRoleBadgeClass(r.value), children: r.label }) }, r.value)) })
33489
+ ]
33490
+ }
33491
+ ) }) }),
33492
+ /* @__PURE__ */ jsx(TooltipContent, { side: "left", className: "max-w-[300px]", children: /* @__PURE__ */ jsx("p", { children: getRoleDescription(role) }) })
33493
+ ] }) });
33494
+ };
33495
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
33496
+ /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
33497
+ "Adding someone here invites them into",
33498
+ " ",
33499
+ workspace?.name ? `"${workspace.name}"` : `this ${workspaceLabel}`,
33500
+ ". Anyone not already a member will be added with the role you choose below."
33501
+ ] }),
33502
+ isPrivate && /* @__PURE__ */ jsxs(ModalSection, { className: "space-y-2", children: [
33503
+ /* @__PURE__ */ jsx(
33504
+ VisibilityToggle,
33505
+ {
33506
+ items: { shared: shareWithWorkspace },
33507
+ onToggle: setShareWithWorkspace,
33508
+ "data-testid": "share-resource-visibility-toggle"
33509
+ }
33510
+ ),
33511
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: shareWithWorkspace ? `This ${label} is private today. Sharing it will make it visible to everyone in this ${workspaceLabel}, not just the people below.` : `Turn this on to share the ${label} \u2014 it can't be shared with specific people while it stays private.` })
33512
+ ] }),
33513
+ /* @__PURE__ */ jsx(
33514
+ ConnectedPeopleMultiSelect,
33515
+ {
33516
+ includeAgents: true,
33517
+ selectedUsers,
33518
+ onSelectionChange: setPeopleSelections,
33519
+ allowEmailEntry: true,
33520
+ memberEmails: [...memberEmailSet],
33521
+ placeholder: "Search contacts or type email...",
33522
+ emptyMessage: "Type a name or email to share with",
33523
+ renderChipExtra
33524
+ }
33525
+ ),
33526
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2 pt-2", children: [
33527
+ /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: onDone, disabled: isSharing, children: "Cancel" }),
33528
+ /* @__PURE__ */ jsx(Button, { onClick: handleSubmit, disabled: !canSubmit || isSharing, children: isSharing ? "Sharing..." : `Share${selectedUsers.length > 0 ? ` with ${selectedUsers.length}` : ""}` })
33529
+ ] })
33530
+ ] });
33531
+ }
33532
+ function ConnectedShareDialog({ request, onClose }) {
33533
+ const { live } = useConnectedWorkspace();
33534
+ const identity = request ? `${request.workspaceExtId}:${request.resourceType}:${request.resourceExtId}` : null;
33535
+ const intent = useRef({ identity, generation: 0 });
33536
+ if (intent.current.identity !== identity) {
33537
+ intent.current = { identity, generation: intent.current.generation + 1 };
33538
+ }
33539
+ const generation = intent.current.generation;
33540
+ const label = request?.resourceType === "document" ? "document" : "conversation";
33541
+ const title = request?.resourceName ? `Share "${request.resourceName}"` : `Share ${label}`;
33542
+ return /* @__PURE__ */ jsx(Dialog, { open: request !== null, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsxs(
33543
+ DialogContent,
33544
+ {
33545
+ presentation: "sheet",
33546
+ className: "sm:max-w-[500px]",
33547
+ "data-testid": "resource-share-dialog",
33548
+ children: [
33549
+ /* @__PURE__ */ jsx(ModalBreadcrumbHeader, { icon: /* @__PURE__ */ jsx(Share2, { className: "w-4 h-4" }), title }),
33550
+ /* @__PURE__ */ jsxs(DialogDescription, { className: "sr-only", children: [
33551
+ "Share this ",
33552
+ label,
33553
+ " by email, with people already on the platform or new invitees"
33554
+ ] }),
33555
+ request && /* @__PURE__ */ jsxs(Fragment, { children: [
33556
+ !live && /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
33557
+ "Connect your account to share this ",
33558
+ label,
33559
+ "."
33560
+ ] }),
33561
+ /* @__PURE__ */ jsx(
33562
+ ResourceShareForm,
33563
+ {
33564
+ ...request,
33565
+ onDone: () => {
33566
+ if (intent.current.generation === generation) onClose();
33567
+ },
33568
+ disabled: !live
33569
+ },
33570
+ identity
33571
+ )
33572
+ ] })
33573
+ ]
33574
+ }
33575
+ ) });
33576
+ }
33109
33577
  var BUILTIN_GLOBAL_DIALOGS = {
33578
+ share: ({ props, onClose }) => /* @__PURE__ */ jsx(ConnectedShareDialog, { request: props, onClose }),
33110
33579
  createWorkspace: ({ props, onClose }) => /* @__PURE__ */ jsx(
33111
33580
  ConnectedWorkspaceFormModal,
33112
33581
  {
@@ -41701,7 +42170,26 @@ function ConnectedAppShell({
41701
42170
  }
41702
42171
  ) });
41703
42172
  }
42173
+ function useContextualHints() {
42174
+ const session = useArbiSessionStore();
42175
+ const { data: userSettings } = useUserSettings();
42176
+ const updateUserSettings = useUpdateUserSettings();
42177
+ const [sessionOverride] = useTransientView(TIPS_VISIBILITY_OVERRIDE, null);
42178
+ const setShowHints = (value) => setHintsSessionOverride(session, value);
42179
+ const setShowHintsPersisted = (value) => {
42180
+ setHintsSessionOverride(session, null);
42181
+ updateUserSettings.mutate({ show_hints: value });
42182
+ };
42183
+ return {
42184
+ showHints: sessionOverride ?? userSettings?.show_hints ?? true,
42185
+ settingsLoaded: userSettings !== void 0,
42186
+ isDeveloper: userSettings?.developer === true,
42187
+ setShowHints,
42188
+ setShowHintsPersisted,
42189
+ dismissHints: () => setShowHints(false)
42190
+ };
42191
+ }
41704
42192
 
41705
- export { AddAddonDialog, AddFromAccountsButton, AgentBarShell, AgentControlBar, AgentSteps, AnswerTable, AskAgainContext, BACKFILL_OPTIONS, BUILTIN_GLOBAL_DIALOGS, BULK_REPROCESS_LIMIT, BillingProjectEntity, CaptureBar, ChangePlanDialog, ChatAttachmentList, ConnectedAccountAccessBadge, ConnectedAccountCluster, ConnectedAccountSettings, ConnectedAddContacts, ConnectedAgentChat, ConnectedAgentChatPanel, ConnectedAgentConfigForm, ConnectedAgentCreator, ConnectedAiReview, ConnectedAppRuntime, ConnectedAppShell, ConnectedAppsSettings, ConnectedAuthorizeAgent, ConnectedBranchControls, ConnectedBulkTagEditor, ConnectedCalendar, ConnectedChatThread, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedConfigForm, ConnectedContactCardForm, ConnectedContactToggle, ConnectedContactsDirectory, ConnectedConversation, ConnectedConversationDocumentPicker, ConnectedConversationEmpty, ConnectedConversationStart, ConnectedDangerZone, ConnectedDatabasesPage, ConnectedDeploymentStorage, ConnectedDeveloperConfig, ConnectedDriveSyncDialog, ConnectedExportDialog, ConnectedExportPanel, ConnectedFactsPage, ConnectedFieldsEditor, ConnectedFieldsManager, ConnectedFilesBulkActions, ConnectedFilesExplorer, ConnectedFilesPage, ConnectedForgotPassword, ConnectedGlobalDialogs, ConnectedGrantWorkspaceAccessDialog, ConnectedGridView, ConnectedGroupMembers, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMailAccounts, ConnectedMailComposer, ConnectedMailInviteCard, ConnectedMailMessage, ConnectedMailSettings, ConnectedMailSetup, ConnectedMailbox, ConnectedMailboxSyncDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedMessenger, ConnectedModelSelector, ConnectedMoveToFolder, ConnectedNewThreadDialog, ConnectedNotificationCenter, ConnectedNotificationPreferences, ConnectedOAuthConsentPage, ConnectedPanelHost, ConnectedPasswordChangeDialog, ConnectedPendingSyncDialog, ConnectedPremiumModels, ConnectedPrivacySettings, ConnectedProfileCard, ConnectedProjectEntity, ConnectedProjectPage, ConnectedProjectSelector, ConnectedProjectStorage, ConnectedProjectsPanel, ConnectedPublicBooking, ConnectedQuotaDialog, ConnectedRecentlyDeletedButton, ConnectedRecoveryKeyDialog, ConnectedReportProblem, ConnectedRequestWorkspaceAccess, ConnectedRequireVerified, ConnectedSearchPage, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedSettingsPage, ConnectedSharePointAdminConsentPage, ConnectedSharedFilesPage, ConnectedSignatureVerifyPage, ConnectedSkillUpload, ConnectedSkillsLibrary, ConnectedSsoCallback, ConnectedStorageProjectCard, ConnectedStorageSettings, ConnectedTagEditorDialog, ConnectedTagEntity, ConnectedTagForm, ConnectedTagTable, ConnectedTagsPage, ConnectedTaskAccessRequest, ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedTaskStartDialog, ConnectedThreadFollow, ConnectedThreadLauncher, ConnectedThreadTabs, ConnectedThreadTaskBar, ConnectedThreadsPage, ConnectedThreadsPreview, ConnectedTransferWatcher, ConnectedUpcomingEvents, ConnectedUpload, ConnectedUploadDropzone, ConnectedUserEntity, ConnectedWelcomeDialog, ConnectedWorkflowHistory, ConnectedWorkflowRunner, ConnectedWorkflowStart, ConnectedWorkspaceActivity, ConnectedWorkspaceDashboard, ConnectedWorkspaceEntity, ConnectedWorkspaceFormModal, ConnectedWorkspaceList, ConnectedWorkspaceMembers, ConnectedWorkspaceNotificationMenu, ConnectedWorkspaceSettings, ConnectedWorkspaceTrash, ConversationAlert, ConversationComposer2 as ConversationComposer, ConversationEntity, ConversationSendButton, ConversationStatusCell, DEFAULT_CONNECTED_SEARCH_PAGE_LABELS, DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_OAUTH_PERMISSIONS, DEFAULT_PROJECTS_LIST_LABELS, DEFAULT_PROJECT_DETAILS_LABELS, DEFAULT_PROJECT_DETAIL_FIELDS, DEFAULT_PROJECT_LIST_COLUMNS, DEFAULT_PROJECT_PAGE_LABELS, DEFAULT_SEARCH_FIELDS, DEFAULT_SEARCH_ROW_LABELS, DEFAULT_SETTINGS_SECTIONS, DEFAULT_TIMELINE_LABEL_WIDTH, DEFAULT_WORKSPACE_LIST_LABELS, DeveloperFooter, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, DocumentUser, DocumentsFilterBarActions, DocumentsUploadButton, EmptyWorkspaceUpload, FACTS_GRID_ID, FILES_PREFS_KEY, FileTooltipContent, ImportVcfButton, ImportVcfSummary, InvoicesModal, LOOK_AGAIN_LABEL, MessageDetailsModal, MessageLiveSeconds, MicButton, NewProjectFlow, NotificationCenter, NotificationEvent, PENDING_LOOKUP_MS, PENDING_RECOVERY_KEY, PENDING_TASK_MESSAGE, PREMIUM_TIER_TAG, PROJECTS_BASE_TAB_ID, PROMPT_BINDINGS, PersistedGridView, ProgressiveLoadingChip, ProjectDetail, ProjectUsageContent, ProjectsTable, REFERRAL_OFFER, RecoveryKeyDownload, RelatedDocumentsCell, ReportProblemDialog, RunStatsBadges, RunningSubagents, SEARCH_FIELD_OPTIONS, SETTINGS_SECTION_IDS, STANDARD_TIER_TAG, SessionStatusIcon, SharedProjects, SourceChips, SsoResendVerificationButton, StatusCell2 as StatusCell, StorageBreakdown, StorageItemsTable, StorageTiers, StreamedArtifact, TILE_DEFAULT, TILE_MAX, TILE_MIN, ThreadSwitcher, UserAvatar, ViewSelector, WORKSPACES_TAB_ID, WorkflowLaunchHost, WorkflowRunStatusCell, WorkflowRunThread, WorkflowStepMessage, accountSettingsSection, appearanceSettingsSection, backUpOnSignup, bookingCancelLink, buildNotificationCenterItems, buildProjectSummaries, chatSettingsSection, closeAccessRequestReview, connectedAppsSettingsSection, connectionSettingsSection, countNotificationTypes, createDocumentColumns, createEventCall, createNotificationTargetOpener, createTagColumn, deduplicateByContentHash, defaultHost, describePlan, distinctPeers, documentFamilyMeta, documentFieldContent, filesViewMode, filterNotificationCenterItems, formatStorageGb, groupFallbackName, identifyOAuthClient, isActiveDocumentStatus, joinEventMeeting, loadEventWebinar, mailSettingsSection, openMeetingLink, openPendingSyncDialog, openSsoPopup, organisationSettingsSection, parseArbiCallUrl, parseOAuthConsentRequest, parseQuotaError, parseTypedSkill, primaryProjectWorkspace, privacySettingsSection, renderConnectedUser, renderSessionStatusIcon, requestProjectBillingFocus, resolveAttendeeUsers, resolveAttendeeUsersRemote, resolveCallPeers, resolveCallPeersRemote, resolveLaunchInputs, resolveMailbox, resolveSsoName, reviewAccessRequest, reviewProgress, shareEventCall, startMenuItem, storageSettingsSection, suppliedKinds, threadStateOf, toWorkspaceSummary, transferOutcome, updateEventWebinarRoles, usageSettingsSection, useAccessRequestUnderReview, useAddFromUrls, useAiReviewLiveUpdates, useAiReviewStore, useAppShell, useAuthPages, useAutoRefreshPendingProjects, useBatchCompleteToasts, useChatMessageToasts, useConnectedCalendarCalls, useConnectedNotificationBell, useConnectedShellWorkspaces, useConnectedThreadActivity, useConnectedWorkspaceList, useConnectedWorkspaceSettings, useDocumentBulkActions, useDocumentFilters, useDocumentFolders, useDocumentGridSync, useDocumentNavigation, useDocumentTable, useExportStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, useLaunchWorkflow, useMemberLookup, useMessengerRows, useModelPicker, useNotificationBellEntry, useNotificationToasts, useOpenBillingPortal, useOpenChunk, useOpenNotificationTarget, useOpenWorkspaceActivityTarget, useOpenWorkspaceIcon, usePendingFolders, usePendingTaskThread, useProjectBillingFocus, useProjectSummaries, useProjectSummary, useReferralReward, useRenderTaskPerson, useReportProblem, useResolvedDocStatus, useSessionPanelMode, useSessionSidebar, useSkillsEnabled, useSlashItems, useSlashSkillWorkflows, useSsoSignIn, useStartRequestedDraft, useTableViews, useTaskPeople, useTaskStart, useThreadLabels, useThreadTabs, useWorkflowDefinitions, useWorkflowLaunch, useWorkflowTasks, useWorkflowsPageState, useWorkspaceDocTitles, viewsOfTable, webinarRolesByUser, windowLabel, withMissingTableViews, withTableView, withoutTableView, workflowRunView };
42193
+ export { AddAddonDialog, AddFromAccountsButton, AgentBarShell, AgentControlBar, AgentSteps, AnswerTable, AskAgainContext, BACKFILL_OPTIONS, BUILTIN_GLOBAL_DIALOGS, BULK_REPROCESS_LIMIT, BillingProjectEntity, CaptureBar, ChangePlanDialog, ChatAttachmentList, ConnectedAccountAccessBadge, ConnectedAccountCluster, ConnectedAccountSettings, ConnectedAddContacts, ConnectedAgentChat, ConnectedAgentChatPanel, ConnectedAgentConfigForm, ConnectedAgentCreator, ConnectedAiReview, ConnectedAppRuntime, ConnectedAppShell, ConnectedAppsSettings, ConnectedAuthorizeAgent, ConnectedBranchControls, ConnectedBulkTagEditor, ConnectedCalendar, ConnectedChatThread, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedConfigForm, ConnectedContactCardForm, ConnectedContactToggle, ConnectedContactsDirectory, ConnectedConversation, ConnectedConversationDocumentPicker, ConnectedConversationEmpty, ConnectedConversationStart, ConnectedDangerZone, ConnectedDatabasesPage, ConnectedDeploymentStorage, ConnectedDeveloperConfig, ConnectedDriveSyncDialog, ConnectedExportDialog, ConnectedExportPanel, ConnectedFactsPage, ConnectedFieldsEditor, ConnectedFieldsManager, ConnectedFilesBulkActions, ConnectedFilesExplorer, ConnectedFilesPage, ConnectedForgotPassword, ConnectedGlobalDialogs, ConnectedGrantWorkspaceAccessDialog, ConnectedGridView, ConnectedGroupMembers, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMailAccounts, ConnectedMailComposer, ConnectedMailInviteCard, ConnectedMailMessage, ConnectedMailSettings, ConnectedMailSetup, ConnectedMailbox, ConnectedMailboxSyncDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedMessenger, ConnectedModelSelector, ConnectedMoveToFolder, ConnectedNewThreadDialog, ConnectedNotificationCenter, ConnectedNotificationPreferences, ConnectedOAuthConsentPage, ConnectedPanelHost, ConnectedPasswordChangeDialog, ConnectedPendingSyncDialog, ConnectedPeopleMultiSelect, ConnectedPremiumModels, ConnectedPrivacySettings, ConnectedProfileCard, ConnectedProjectEntity, ConnectedProjectPage, ConnectedProjectSelector, ConnectedProjectStorage, ConnectedProjectsPanel, ConnectedPublicBooking, ConnectedQuotaDialog, ConnectedRecentlyDeletedButton, ConnectedRecoveryKeyDialog, ConnectedReportProblem, ConnectedRequestWorkspaceAccess, ConnectedRequireVerified, ConnectedSearchPage, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedSettingsPage, ConnectedShareDialog, ConnectedSharePointAdminConsentPage, ConnectedSharedFilesPage, ConnectedSignatureVerifyPage, ConnectedSkillUpload, ConnectedSkillsLibrary, ConnectedSsoCallback, ConnectedStorageProjectCard, ConnectedStorageSettings, ConnectedTagEditorDialog, ConnectedTagEntity, ConnectedTagForm, ConnectedTagTable, ConnectedTagsPage, ConnectedTaskAccessRequest, ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedTaskStartDialog, ConnectedThreadFollow, ConnectedThreadLauncher, ConnectedThreadTabs, ConnectedThreadTaskBar, ConnectedThreadsPage, ConnectedThreadsPreview, ConnectedTransferWatcher, ConnectedUpcomingEvents, ConnectedUpload, ConnectedUploadDropzone, ConnectedUserEntity, ConnectedWelcomeDialog, ConnectedWorkflowHistory, ConnectedWorkflowRunner, ConnectedWorkflowStart, ConnectedWorkspaceActivity, ConnectedWorkspaceDashboard, ConnectedWorkspaceEntity, ConnectedWorkspaceFormModal, ConnectedWorkspaceList, ConnectedWorkspaceMembers, ConnectedWorkspaceNotificationMenu, ConnectedWorkspaceSettings, ConnectedWorkspaceTrash, ConversationAlert, ConversationComposer2 as ConversationComposer, ConversationEntity, ConversationSendButton, ConversationStatusCell, DEFAULT_CONNECTED_SEARCH_PAGE_LABELS, DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_OAUTH_PERMISSIONS, DEFAULT_PROJECTS_LIST_LABELS, DEFAULT_PROJECT_DETAILS_LABELS, DEFAULT_PROJECT_DETAIL_FIELDS, DEFAULT_PROJECT_LIST_COLUMNS, DEFAULT_PROJECT_PAGE_LABELS, DEFAULT_SEARCH_FIELDS, DEFAULT_SEARCH_ROW_LABELS, DEFAULT_SETTINGS_SECTIONS, DEFAULT_TIMELINE_LABEL_WIDTH, DEFAULT_WORKSPACE_LIST_LABELS, DeveloperFooter, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, DocumentUser, DocumentsFilterBarActions, DocumentsUploadButton, EmptyWorkspaceUpload, FACTS_GRID_ID, FILES_PREFS_KEY, FileTooltipContent, ImportVcfButton, ImportVcfSummary, InvoicesModal, LOOK_AGAIN_LABEL, MessageDetailsModal, MessageLiveSeconds, MicButton, NewProjectFlow, NotificationCenter, NotificationEvent, PENDING_LOOKUP_MS, PENDING_RECOVERY_KEY, PENDING_TASK_MESSAGE, PREMIUM_TIER_TAG, PROJECTS_BASE_TAB_ID, PROMPT_BINDINGS, PersistedGridView, ProgressiveLoadingChip, ProjectDetail, ProjectUsageContent, ProjectsTable, REFERRAL_OFFER, RecoveryKeyDownload, RelatedDocumentsCell, ReportProblemDialog, RunStatsBadges, RunningSubagents, SEARCH_FIELD_OPTIONS, SETTINGS_SECTION_IDS, STANDARD_TIER_TAG, SessionStatusIcon, SharedProjects, SourceChips, SsoResendVerificationButton, StatusCell2 as StatusCell, StorageBreakdown, StorageItemsTable, StorageTiers, StreamedArtifact, TILE_DEFAULT, TILE_MAX, TILE_MIN, ThreadSwitcher, UserAvatar, ViewSelector, WORKSPACES_TAB_ID, WorkflowLaunchHost, WorkflowRunStatusCell, WorkflowRunThread, WorkflowStepMessage, accountSettingsSection, appearanceSettingsSection, backUpOnSignup, bookingCancelLink, buildNotificationCenterItems, buildProjectSummaries, chatSettingsSection, closeAccessRequestReview, connectedAppsSettingsSection, connectionSettingsSection, countNotificationTypes, createDocumentColumns, createEventCall, createNotificationTargetOpener, createTagColumn, deduplicateByContentHash, defaultHost, describePlan, distinctPeers, documentFamilyMeta, documentFieldContent, filesViewMode, filterNotificationCenterItems, formatStorageGb, groupFallbackName, identifyOAuthClient, isActiveDocumentStatus, joinEventMeeting, loadEventWebinar, mailSettingsSection, openMeetingLink, openPendingSyncDialog, openSsoPopup, organisationSettingsSection, parseArbiCallUrl, parseOAuthConsentRequest, parseQuotaError, parseTypedSkill, primaryProjectWorkspace, privacySettingsSection, renderConnectedUser, renderSessionStatusIcon, requestProjectBillingFocus, resolveAttendeeUsers, resolveAttendeeUsersRemote, resolveCallPeers, resolveCallPeersRemote, resolveLaunchInputs, resolveMailbox, resolveSsoName, reviewAccessRequest, reviewProgress, shareEventCall, startMenuItem, storageSettingsSection, suppliedKinds, threadStateOf, toWorkspaceSummary, transferOutcome, updateEventWebinarRoles, usageSettingsSection, useAccessRequestUnderReview, useAddFromUrls, useAiReviewLiveUpdates, useAiReviewStore, useAppShell, useAuthPages, useAutoRefreshPendingProjects, useBatchCompleteToasts, useChatMessageToasts, useConnectedCalendarCalls, useConnectedNotificationBell, useConnectedShellWorkspaces, useConnectedThreadActivity, useConnectedWorkspaceList, useConnectedWorkspaceSettings, useContextualHints, useDocumentBulkActions, useDocumentFilters, useDocumentFolders, useDocumentGridSync, useDocumentNavigation, useDocumentTable, useExportStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, useLaunchWorkflow, useMemberLookup, useMessengerRows, useModelPicker, useNotificationBellEntry, useNotificationToasts, useOpenBillingPortal, useOpenChunk, useOpenNotificationTarget, useOpenWorkspaceActivityTarget, useOpenWorkspaceIcon, usePendingFolders, usePendingTaskThread, useProjectBillingFocus, useProjectSummaries, useProjectSummary, useReferralReward, useRenderTaskPerson, useReportProblem, useResolvedDocStatus, useSessionPanelMode, useSessionSidebar, useSkillsEnabled, useSlashItems, useSlashSkillWorkflows, useSsoSignIn, useStartRequestedDraft, useTableViews, useTaskPeople, useTaskStart, useThreadLabels, useThreadTabs, useWorkflowDefinitions, useWorkflowLaunch, useWorkflowTasks, useWorkflowsPageState, useWorkspaceDocTitles, viewsOfTable, webinarRolesByUser, windowLabel, withMissingTableViews, withTableView, withoutTableView, workflowRunView };
41706
42194
  //# sourceMappingURL=index.js.map
41707
42195
  //# sourceMappingURL=index.js.map