@arbidocs/blocks 0.5.0 → 0.5.2

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 (58) hide show
  1. package/dist/{ConnectedCallDock-BNKBAKIT.cjs → ConnectedCallDock-NNX5PEPK.cjs} +7 -7
  2. package/dist/{ConnectedCallDock-BNKBAKIT.cjs.map → ConnectedCallDock-NNX5PEPK.cjs.map} +1 -1
  3. package/dist/{ConnectedCallDock-MBAAUETC.js → ConnectedCallDock-UGGY6YUK.js} +6 -6
  4. package/dist/{ConnectedCallDock-MBAAUETC.js.map → ConnectedCallDock-UGGY6YUK.js.map} +1 -1
  5. package/dist/{ConnectedCallRoom-QRWD2SDG.cjs → ConnectedCallRoom-B7SZHQNV.cjs} +7 -7
  6. package/dist/{ConnectedCallRoom-QRWD2SDG.cjs.map → ConnectedCallRoom-B7SZHQNV.cjs.map} +1 -1
  7. package/dist/{ConnectedCallRoom-XJUXVNMB.js → ConnectedCallRoom-I4HPWMK2.js} +6 -6
  8. package/dist/{ConnectedCallRoom-XJUXVNMB.js.map → ConnectedCallRoom-I4HPWMK2.js.map} +1 -1
  9. package/dist/calls/index.cjs +2 -2
  10. package/dist/calls/index.js +2 -2
  11. package/dist/chat/chat-page-types.d.ts +5 -0
  12. package/dist/chat/index.cjs +83 -83
  13. package/dist/chat/index.js +3 -3
  14. package/dist/{chunk-CEAUPIRB.cjs → chunk-4KMYUM7Q.cjs} +5 -5
  15. package/dist/{chunk-CEAUPIRB.cjs.map → chunk-4KMYUM7Q.cjs.map} +1 -1
  16. package/dist/{chunk-3BJIS4GV.cjs → chunk-5D32XL3E.cjs} +5 -4
  17. package/dist/chunk-5D32XL3E.cjs.map +1 -0
  18. package/dist/{chunk-XKTYKZWV.js → chunk-7GAS4N7L.js} +4 -3
  19. package/dist/chunk-7GAS4N7L.js.map +1 -0
  20. package/dist/{chunk-YMBDPI7X.js → chunk-BKNHCORH.js} +23 -15
  21. package/dist/chunk-BKNHCORH.js.map +1 -0
  22. package/dist/{chunk-G4O5AKUO.js → chunk-BWKBLCWC.js} +3 -3
  23. package/dist/{chunk-G4O5AKUO.js.map → chunk-BWKBLCWC.js.map} +1 -1
  24. package/dist/{chunk-KJXJRX33.js → chunk-DDCMLHXF.js} +4 -4
  25. package/dist/chunk-DDCMLHXF.js.map +1 -0
  26. package/dist/{chunk-LDRHUYRE.cjs → chunk-EBRYYVNH.cjs} +7 -7
  27. package/dist/{chunk-LDRHUYRE.cjs.map → chunk-EBRYYVNH.cjs.map} +1 -1
  28. package/dist/{chunk-6TEYZRY5.cjs → chunk-LHWKA2XI.cjs} +23 -15
  29. package/dist/chunk-LHWKA2XI.cjs.map +1 -0
  30. package/dist/{chunk-QSC6Y55X.cjs → chunk-PAW2PC2M.cjs} +9 -9
  31. package/dist/{chunk-QSC6Y55X.cjs.map → chunk-PAW2PC2M.cjs.map} +1 -1
  32. package/dist/{chunk-26EQQQBX.js → chunk-PY5D6HBD.js} +5 -5
  33. package/dist/{chunk-26EQQQBX.js.map → chunk-PY5D6HBD.js.map} +1 -1
  34. package/dist/{chunk-TBRX5RNH.js → chunk-XSA46YJV.js} +3 -3
  35. package/dist/{chunk-TBRX5RNH.js.map → chunk-XSA46YJV.js.map} +1 -1
  36. package/dist/{chunk-OK3UJMO4.cjs → chunk-Z2XZ2D4N.cjs} +4 -4
  37. package/dist/chunk-Z2XZ2D4N.cjs.map +1 -0
  38. package/dist/connect/index.cjs +243 -159
  39. package/dist/connect/index.cjs.map +1 -1
  40. package/dist/connect/index.js +175 -91
  41. package/dist/connect/index.js.map +1 -1
  42. package/dist/connect/viewer.cjs +13 -13
  43. package/dist/connect/viewer.js +3 -3
  44. package/dist/connection/files/grid/documentGridBus.d.ts +12 -10
  45. package/dist/connection/messenger/ConnectedChatThread.d.ts +3 -1
  46. package/dist/connection/messenger/ConnectedMessenger.d.ts +21 -3
  47. package/dist/index.cjs +83 -83
  48. package/dist/index.js +3 -3
  49. package/dist/studio/index.cjs +3 -3
  50. package/dist/studio/index.js +2 -2
  51. package/node_modules/@arbidocs/coedit/package.json +1 -1
  52. package/package.json +5 -5
  53. package/dist/chunk-3BJIS4GV.cjs.map +0 -1
  54. package/dist/chunk-6TEYZRY5.cjs.map +0 -1
  55. package/dist/chunk-KJXJRX33.js.map +0 -1
  56. package/dist/chunk-OK3UJMO4.cjs.map +0 -1
  57. package/dist/chunk-XKTYKZWV.js.map +0 -1
  58. package/dist/chunk-YMBDPI7X.js.map +0 -1
@@ -8,11 +8,11 @@ import { HomeLoadError, HomeFrame, HomeMain, HomeCenteredScroll, HomeCenteredCol
8
8
  import { ProjectBandTitle, PlainBandTitle } from '../chunk-RQKWYKZY.js';
9
9
  import '../chunk-5TDGVOR5.js';
10
10
  import { MessageJsonTree, DraggableHeader, ProfileCard, AvatarPicker, IdentityVerificationCard, IdentityVerificationDialog, RequireVerified, PasswordChangeDialog, EMAIL_NOTIFICATION_KEYS, EMAIL_NOTIFICATION_CATEGORIES, NotificationCategoryList, toNotificationCategories, toActiveSessionViews, ActiveSessionsDialog, LogoutDialog, toLogoutSessionViews, DeleteAccountDialog, toDeleteBlockerViews, PremiumModelsFrame, ConnectionsLoading, ConnectionsError, ConnectionsEmpty, SettingsPage, SyncDialogBody, SyncField, SyncSelect, SyncSmallNote, SyncLoading, SyncReconnectNotice, SyncNote, SyncTreeFrame, SyncLinkRow, SyncLinkButton, SyncOptions, SyncOptionToggle, SyncDialogFooter, InvoicesDialog, PlanDialogFrame, ProjectList, RenameDialog, SharedProjectsSection, SharedProjectRow, MoreInfo, MoreInfoList, ProjectDetailHeader, PlanBadge, ProjectDetailSection, PlanStack, PlanNotice, PlanPickerCard, PlanPickerHeader, PricingToggle, PromoCodeInput, PlanActionButton, applyTriStateFilters, PanelFrame, PanelAddButton, PanelFrameBody, PanelScroll, PanelActionsRow, applyInvertedIndexFilter, ConfigSwitcherBar, PanelNote, ProjectRow, QuotaMeter, FilterChip, buildInvertedIndex, serverConnectionView, ServerConnectionButton, ModelProviderLabel, SyncFolderRow, SyncFolderStatus, PlanTierOption, PlanActionRow, SubscriptionStatusView, DailyCapField, UsagePanel, UsageSummary, UsageQuotaHint, UsageToggle, UsageSection, UsageLineChart, UsageLegend, UsageProportionBar, UsageActionButton, PlanInfoPopover, PlanCardGrid, ReferralRewardSummary, CheckoutDialogFrame, ConnectionCard, ReferralRewardNote } from '../chunk-NHY4AKA4.js';
11
- export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-XKTYKZWV.js';
11
+ export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-7GAS4N7L.js';
12
12
  import { useConnectedWorkspaceRole, useConnectedWorkflowScopeSource, ConnectedWorkflowDocumentsField, ConnectedWorkflowLauncher, ConnectedNativeDocxEditor } from '../chunk-34LBKTII.js';
13
13
  export { ConnectedWorkflowDocumentsField, ConnectedWorkflowLauncher, ConnectedWorkflowsTable, DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS, toWorkflowFieldDocument, useConnectedAgentOptions, useConnectedWorkflowScopeSource, useConnectedWorkspaceRole, useDocxCommentTarget, useNativeDocxSupport } from '../chunk-34LBKTII.js';
14
- import { ConnectedMarkdown, InternalDocLink, ExternalLink, DocumentWorkspaceContext } from '../chunk-26EQQQBX.js';
15
- export { ConnectedDocumentToolsProvider, ConnectedMarkdown, DocumentChip, DocumentWorkspaceContext, ExternalLink, InternalDocLink, MailChip, MermaidDiagram, WorkspaceDocumentReference, useDocumentViewerSupport, useDocumentWorkspace, useViewerDraftDocument, useViewerIsDetached, useViewerPassageCitation, useViewerStreamingDocument } from '../chunk-26EQQQBX.js';
14
+ import { ConnectedMarkdown, InternalDocLink, ExternalLink, DocumentWorkspaceContext } from '../chunk-PY5D6HBD.js';
15
+ export { ConnectedDocumentToolsProvider, ConnectedMarkdown, DocumentChip, DocumentWorkspaceContext, ExternalLink, InternalDocLink, MailChip, MermaidDiagram, WorkspaceDocumentReference, useDocumentViewerSupport, useDocumentWorkspace, useViewerDraftDocument, useViewerIsDetached, useViewerPassageCitation, useViewerStreamingDocument } from '../chunk-PY5D6HBD.js';
16
16
  import { ExplorerFileTile, formatFolderSegment, hasFolderProviderIcon, FolderProviderIcon, ExplorerFolderTile, StatusPill, FailedStageIcon, DocumentNameCellFrame, DocumentRowMenu, visibilityToggleTooltip, FolderCell, FolderCommandList, RelatedDocsCell, FilterButton, DOCUMENTS_ROW_HEIGHT_INITIAL, searchExplorerDocuments, buildExplorerEntries, collectFolderDocs, joinFolderPath, getExplorerDisplayName, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, canDeleteDocument, ExplorerFrame, ExplorerStage, ExplorerScroller, ExplorerLoadingTiles, ExplorerEmpty, ExplorerMarquee, ExplorerDropOverlay, ExplorerDragPreview, CheckboxCell, TagColumnHeader, ExplorerFileTooltip, visibilityAudience, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, FolderFilterButton, FolderPickerRow, UploadFrame, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, VendorLogo, PrivacyExplainerModal, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, parseFolderSegments, AiReviewDialogView, MoveToFolderDialog, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, BulkTagEditorDialog, BulkReplaceDialog, FieldValue, FieldFolderSelect, FieldFolderValue, FieldNativeSelect, FieldWithAttribution, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, FilesAddMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canEditDocumentFields, FieldLabelsSelect, ShareToggle, FieldAttribution, UploadDropArea, canChangeVisibility, UploadUrlButton } from '../chunk-QE7MS7NA.js';
17
17
  import { ViewToggle, DocumentViewToggle } from '../chunk-JJA6GQKH.js';
18
18
  import { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
@@ -66,15 +66,15 @@ export { isListedDocument, useConnectedConversations, useConnectedDocuments, use
66
66
  import { useConnectedWorkspace, useConnection, ConnectionProvider } from '../chunk-TXPOODAY.js';
67
67
  export { SESSION_EXPIRED_MESSAGE, isAuthenticated, useConnectedWorkspace, useConnection } from '../chunk-TXPOODAY.js';
68
68
  import { ConfirmDialog } from '../chunk-ECERC6TI.js';
69
- import { DmInviteChip, DmThreadHeader } from '../chunk-2S3LT5KE.js';
69
+ import { DmThreadHeader, DmInviteChip } from '../chunk-2S3LT5KE.js';
70
70
  import { useHost, ArbiHost } from '../chunk-T4P237N6.js';
71
71
  import { TabHeader } from '../chunk-ABEKUV6L.js';
72
72
  import '../chunk-P6GHJSLR.js';
73
73
  import { useBlocksEnvironment, useRequestedSettingsSection } from '../chunk-GKM4EOH7.js';
74
74
  import { ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
75
75
  import { useLongPaste, useRecipientDraft, SlashMenu, ContextUsageBar, findMessageDocument, getParticipantTints, flashMessage, parseSlashTokenInProgress, buildSlashItems, filterSlashItems, copyMessageToClipboard, BranchControls, ThreadVisualizer, downloadTableAsCsv, ModelAutoIcon, ModelTierIcon, ModelDot, ModelPricingTip, ModelPickerPopover, ModelOption, ModelMenuDivider, ModelTierOption, ModelConfigureButton, ModelMenuMessage, ModelPickerTrigger, ModelTriggerContent, ModelOptionLabel, ConversationBody, ConversationMain, ConversationLoading, PendingAnswerBar, ComposerTools, PaModeBadge, ComposerAccessories, DraftingDocChip } from '../chunk-ULQV2NJT.js';
76
- import { ComposerSend, ComposerVoiceButton, Composer, MessageActionMenu, MessageActionButton, MessageFooter, MessageRoot, MessageContent, MessageAuthor, MessageBubble, MessageByline, MessageSubagentBadge, MessageBody, MessageNarration, useStreamAnnouncement, MessageList, WorkflowStepChip, MessageSources, ChatPage, ConversationEmpty, MessageAlert, ComposerDock, ComposerContainer, ScrollToBottom } from '../chunk-YMBDPI7X.js';
77
- import { workspaceDocIdFromHref } from '../chunk-KJXJRX33.js';
76
+ import { ComposerSend, ComposerVoiceButton, Composer, MessageActionMenu, MessageActionButton, MessageFooter, MessageRoot, MessageContent, MessageAuthor, MessageBubble, MessageByline, MessageSubagentBadge, MessageBody, MessageNarration, useStreamAnnouncement, MessageList, WorkflowStepChip, MessageSources, ChatPage, ConversationEmpty, MessageAlert, ComposerDock, ComposerContainer, ScrollToBottom } from '../chunk-BKNHCORH.js';
77
+ import { workspaceDocIdFromHref } from '../chunk-DDCMLHXF.js';
78
78
  import '../chunk-7XF5SFJ2.js';
79
79
  import { useMentionAutocomplete, stepStatesFromActivity, stepDocuments, splitDocRef, stepPhase, stepKindOf, STEP_KIND_ICONS, stepLevels, canAssign, assigneeName, runFieldsOf, initialRunInputs, workflowSteps, runThreadTitle, stepFields } from '../chunk-3KZWRDPY.js';
80
80
  import { mergeSkillWorkflows, composeWorkflowPrompt, isEmptyWorkflowScope, inputsFromContext, workflowsAccepting, promptFieldName, validateInputs, defaultInputs, buildLaunch } from '../chunk-TZGBRLPK.js';
@@ -88,7 +88,7 @@ import { fmtDate, initials } from '../chunk-OXF2IFXG.js';
88
88
  import '../chunk-7F6CBP3Z.js';
89
89
  import '../chunk-VUNV25KB.js';
90
90
  import { QueryClient, useQueryClient, useQuery, QueryClientProvider } from '@tanstack/react-query';
91
- import { IN_FLIGHT_DOCUMENT_STATUSES, useOfflineDocumentIds, useOpenViewerDocumentId, FINISHED_DOCUMENT_STATUSES, useMailPolicy, useProcessingTasks, resolveDocumentStatus, useArbi, useIsCreatingTag, HtmlIcon, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, useArbiSessionState, selectDraft, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useProcessingTask, useDocumentPendingSync, useWorkspaces, useWorkspaceUsers, useMessageTimer, useUserSettings, 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, formatRelativeTime, getWorkspaceKind, resolveConfigModel, useRunConversation, useWorkspaceActivity, isWorkspaceNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, 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, ArbiBotHeadIcon, 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, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, toShellWorkspace, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useUserUsageToday, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useIsSlow, useProducts, useCreateProject, useDeleteProject, useRefreshProject, useCanCreateProjects, useDeleteWorkspaces, PROJECT_CREATION_DENIED_REASON, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, useContacts, useDeleteContact, useInviteContacts, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, arbiQueryKeys, useArbiWebSocket, useWorkNotifications, describeServerNotification, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, callLink, openCall, 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, subscribeDocumentRows, useGenerateDocTags, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useCreateGroupChat, ConversationList, useApplyChatModel, AUTO_CHAT_MODEL, formatGbpPerMillionTokens, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useRequestWorkspaceAccess, threadTabId, useUpdateConversation, useCanEditShared, useActOnStep, useCreateWork, useRunWorkflow, useStartTaskQuery, useCreateWorkflow, useUpdateWorkflow, usePlanWork, useWorkItems, TaskThreadPendingError, useMentionCandidates, useAgentRunControl, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, useWorkspaceRole, buildPendingFirstTurn, useConversationTurn, useAskAgain, getOrphanedLastMessage, refuseChatWhenOffline, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useAgentSession, useStartAgentSession, useCloseAgentSession, downloadRecoveryFile, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, DmAvatar, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, getRelatedTotal, isDeploymentUserNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, isSignatureNotificationType, inputRequestTitle, WORK_NOTIFICATION_LABELS, documentDisplayName, useConversationThreads, usePassageQuotes, useUpdateFact, useDeleteFact, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useProjectUsage, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useInvalidateAfterTransfer, useConfigs, useSaveConfigField, useDeleteConfig, isFullConfig, AiAnswer, ArbiWebSocketProvider, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useMailDraftEditor, useFreeBusy, useRooms, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, SHAREPOINT_VENDORS, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom } from '@arbidocs/react';
91
+ import { IN_FLIGHT_DOCUMENT_STATUSES, useOfflineDocumentIds, useOpenViewerDocumentId, FINISHED_DOCUMENT_STATUSES, useMailPolicy, useProcessingTasks, resolveDocumentStatus, useArbi, useIsCreatingTag, HtmlIcon, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, useArbiSessionState, selectDraft, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useProcessingTask, useDocumentPendingSync, useWorkspaces, useWorkspaceUsers, useMessageTimer, useUserSettings, 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, formatRelativeTime, getWorkspaceKind, resolveConfigModel, useRunConversation, useWorkspaceActivity, isWorkspaceNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, 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, ArbiBotHeadIcon, 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, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, toShellWorkspace, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useUserUsageToday, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useIsSlow, useProducts, useCreateProject, useDeleteProject, useRefreshProject, useCanCreateProjects, useDeleteWorkspaces, PROJECT_CREATION_DENIED_REASON, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, useContacts, useDeleteContact, useInviteContacts, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, arbiQueryKeys, useArbiWebSocket, useWorkNotifications, describeServerNotification, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, callLink, openCall, 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, subscribeDocumentRows, useGenerateDocTags, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useCreateGroupChat, useApplyChatModel, AUTO_CHAT_MODEL, formatGbpPerMillionTokens, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useRequestWorkspaceAccess, threadTabId, useUpdateConversation, useCanEditShared, useActOnStep, useCreateWork, useRunWorkflow, useStartTaskQuery, useCreateWorkflow, useUpdateWorkflow, usePlanWork, useWorkItems, TaskThreadPendingError, useMentionCandidates, useAgentRunControl, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, useWorkspaceRole, buildPendingFirstTurn, useConversationTurn, useAskAgain, getOrphanedLastMessage, refuseChatWhenOffline, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useAgentSession, useStartAgentSession, useCloseAgentSession, downloadRecoveryFile, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, DmAvatar, ConversationList, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, getRelatedTotal, isDeploymentUserNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, isSignatureNotificationType, inputRequestTitle, WORK_NOTIFICATION_LABELS, documentDisplayName, useConversationThreads, usePassageQuotes, useUpdateFact, useDeleteFact, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useProjectUsage, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useInvalidateAfterTransfer, useConfigs, useSaveConfigField, useDeleteConfig, isFullConfig, AiAnswer, ArbiWebSocketProvider, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useMailDraftEditor, useFreeBusy, useRooms, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, SHAREPOINT_VENDORS, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom } from '@arbidocs/react';
92
92
  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';
93
93
  import { browserSessionStateStorage, parseCallFragment, validateRecoveryKeyFile, RECOVERY_KEY_ERRORS, parseRecoveryUrl, prewarmKeyPairs, decryptRecoveryKey, unlockIdentityWithPassword, createRecoveryUrl, bytesToBase64, initSodium } from '@arbidocs/client';
94
94
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -22408,16 +22408,13 @@ function liveApi() {
22408
22408
  }
22409
22409
  return registeredApi;
22410
22410
  }
22411
- function applyDocumentRowChange({ add, update, remove }) {
22411
+ function applyDocumentRowChange({ add, update }) {
22412
22412
  const api = liveApi();
22413
22413
  if (!api) return;
22414
22414
  const present = [...update, ...add].filter((doc) => api.getRowNode(doc.external_id));
22415
- const tx = {};
22416
- if (present.length) tx.update = present;
22417
- if (remove.length) tx.remove = remove.map((id) => ({ external_id: id }));
22418
- if (!tx.update && !tx.remove) return;
22415
+ if (!present.length) return;
22419
22416
  try {
22420
- api.applyTransactionAsync(tx);
22417
+ api.applyTransactionAsync({ update: present });
22421
22418
  } catch (err) {
22422
22419
  console.error("[documentGridBus] applyTransactionAsync failed:", err);
22423
22420
  }
@@ -25929,7 +25926,8 @@ function ConnectedChatThread({
25929
25926
  chat,
25930
25927
  peer,
25931
25928
  host = {},
25932
- onMessageSent
25929
+ onMessageSent,
25930
+ placeholder = "Type a message\u2026"
25933
25931
  }) {
25934
25932
  const arbi = useArbi();
25935
25933
  const { notify: notify17 } = useBlocksEnvironment();
@@ -26223,7 +26221,7 @@ function ConnectedChatThread({
26223
26221
  /* @__PURE__ */ jsx(
26224
26222
  DmComposer,
26225
26223
  {
26226
- placeholder: "Type a message\u2026",
26224
+ placeholder,
26227
26225
  allowAttachments: !isAgentChat,
26228
26226
  disabled: !chat && !peerId,
26229
26227
  busy: isSending,
@@ -26491,8 +26489,14 @@ function ConnectedMessenger({
26491
26489
  listActions,
26492
26490
  directActions,
26493
26491
  groupActions,
26494
- host = {}
26492
+ host = {},
26493
+ layout = "panel",
26494
+ emptyThread,
26495
+ onBack,
26496
+ className,
26497
+ style
26495
26498
  }) {
26499
+ const isPhone = useIsPhone();
26496
26500
  const meId = myChatId(useArbi());
26497
26501
  const { rows: chatRows, isLoading, findRow } = useMessengerRows(people);
26498
26502
  const { data: userSettings } = useUserSettings();
@@ -26548,88 +26552,168 @@ function ConnectedMessenger({
26548
26552
  }
26549
26553
  ) : null;
26550
26554
  const emptyState = isLoading ? "Loading conversations\u2026" : "No one to message yet \u2014 invite a colleague above.";
26551
- if (!activeId) {
26555
+ const isSplit = layout === "split";
26556
+ const chips = /* @__PURE__ */ jsxs(Fragment, { children: [
26557
+ onInvite && /* @__PURE__ */ jsx(DmInviteChip, { onClick: onInvite }),
26558
+ PeoplePicker && /* @__PURE__ */ jsx(
26559
+ DmInviteChip,
26560
+ {
26561
+ testId: "dm-new-group-chip",
26562
+ title: "New group",
26563
+ description: "Message several people at once",
26564
+ onClick: () => setPicker({ mode: "new-group", fixed: [] })
26565
+ }
26566
+ ),
26567
+ listActions
26568
+ ] });
26569
+ const list = isSplit ? (
26570
+ // The page's rail: the "Conversations · N colleagues" heading, the chips pinned under it.
26571
+ /* @__PURE__ */ jsx(
26572
+ ConversationList,
26573
+ {
26574
+ conversations: rows,
26575
+ selectedPeerId: activeId,
26576
+ onSelect: onOpen,
26577
+ emptyState,
26578
+ lead: chips,
26579
+ className: isPhone ? "w-full flex-1 border-b-0" : void 0
26580
+ }
26581
+ )
26582
+ ) : /* @__PURE__ */ jsx(
26583
+ ConversationList,
26584
+ {
26585
+ conversations: rows,
26586
+ selectedPeerId: null,
26587
+ onSelect: onOpen,
26588
+ emptyState,
26589
+ header: chips,
26590
+ className: "w-full flex-1 border-b-0 border-r-0 md:w-full md:border-r-0"
26591
+ }
26592
+ );
26593
+ if (!activeId && layout === "panel") {
26552
26594
  return /* @__PURE__ */ jsxs(PanelFrame, { testId: "dm-messenger", children: [
26553
- /* @__PURE__ */ jsx(
26554
- ConversationList,
26555
- {
26556
- conversations: rows,
26557
- selectedPeerId: null,
26558
- onSelect: onOpen,
26559
- emptyState,
26560
- header: /* @__PURE__ */ jsxs(Fragment, { children: [
26561
- onInvite && /* @__PURE__ */ jsx(DmInviteChip, { onClick: onInvite }),
26562
- PeoplePicker && /* @__PURE__ */ jsx(
26563
- DmInviteChip,
26564
- {
26565
- testId: "dm-new-group-chip",
26566
- title: "New group",
26567
- description: "Message several people at once",
26568
- onClick: () => setPicker({ mode: "new-group", fixed: [] })
26569
- }
26570
- ),
26571
- listActions
26572
- ] }),
26573
- className: "w-full flex-1 border-b-0 border-r-0 md:w-full md:border-r-0"
26574
- }
26575
- ),
26595
+ list,
26576
26596
  peoplePicker
26577
26597
  ] });
26578
26598
  }
26579
26599
  const groupChat = activeIsGroup ? active.chat : null;
26580
26600
  const groupTitle = active?.title ?? null;
26581
26601
  const presence = activePeer ? host.presenceOf?.(activePeer.external_id) : void 0;
26582
- return /* @__PURE__ */ jsxs(PanelFrame, { testId: "dm-messenger", children: [
26583
- groupChat ? /* @__PURE__ */ jsx(
26584
- DmThreadHeader,
26585
- {
26586
- avatar: groupChat.kind === "meeting" ? /* @__PURE__ */ jsx(MeetingAvatar, {}) : /* @__PURE__ */ jsx(GroupAvatars, { users: active.others, host }),
26587
- name: groupTitle ?? (groupChat.kind === "meeting" ? "Meeting" : "Group"),
26588
- email: `${groupChat.members.length} members`,
26589
- menu: /* @__PURE__ */ jsxs(Fragment, { children: [
26590
- groupActions?.(groupChat, groupTitle),
26591
- /* @__PURE__ */ jsx(
26592
- Button,
26593
- {
26594
- size: "sm",
26595
- variant: "ghost",
26596
- onClick: () => setMembersOpen(true),
26597
- "data-testid": "group-members-button",
26598
- "aria-label": "Group members",
26599
- children: /* @__PURE__ */ jsx(UsersRound, { className: "size-4" })
26600
- }
26601
- )
26602
- ] })
26603
- }
26604
- ) : /* @__PURE__ */ jsx(
26605
- DmThreadHeader,
26606
- {
26607
- avatar: activePeer ? avatar(activePeer) : void 0,
26608
- name: activePeer ? userDisplayName(activePeer) : "Conversation",
26609
- badge: activePeer && isAgent5(activePeer) ? /* @__PURE__ */ jsx(AgentBadge, {}) : void 0,
26610
- presence: presence ? /* @__PURE__ */ jsx(PresenceLabel, { status: presence }) : void 0,
26611
- email: activePeer?.email,
26612
- menu: activePeer ? directActions?.(activePeer, {
26613
- // A personal agent never carries over into a group, and a self-chat has no peer.
26614
- addPeople: isAgent5(activePeer) || activeIsSelf || !PeoplePicker ? void 0 : () => setPicker({ mode: "from-direct", fixed: [activePeer] })
26615
- }) : void 0
26616
- }
26617
- ),
26618
- groupChat ? /* @__PURE__ */ jsx(
26619
- ConnectedGroupMembers,
26620
- {
26621
- chat: groupChat,
26622
- title: groupTitle,
26623
- open: membersOpen,
26624
- onOpenChange: setMembersOpen,
26625
- onLeft: () => onClose?.(activeId),
26626
- host
26627
- },
26628
- groupChat.external_id
26629
- ) : null,
26630
- peoplePicker,
26631
- /* @__PURE__ */ jsx(PanelFrameBody, { className: "flex flex-col overflow-visible", children: active ? /* @__PURE__ */ jsx(ConnectedChatThread, { chat: active.chat, peer: activePeer, host }, activeId) : /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-muted-foreground", children: isLoading ? "Loading conversation\u2026" : "This conversation is no longer available." }) })
26632
- ] });
26602
+ const threadName = active?.title ?? (activePeer ? userDisplayName(activePeer) : null);
26603
+ const thread = activeId ? /* @__PURE__ */ jsxs(
26604
+ PanelFrame,
26605
+ {
26606
+ testId: isSplit ? "dm-messenger-thread" : "dm-messenger",
26607
+ className: isSplit ? "min-w-0 flex-1 bg-card" : void 0,
26608
+ children: [
26609
+ isSplit && isPhone && onBack && /* @__PURE__ */ jsxs(
26610
+ Button,
26611
+ {
26612
+ size: "sm",
26613
+ variant: "ghost",
26614
+ className: "self-start",
26615
+ onClick: onBack,
26616
+ "data-testid": "dm-messenger-back",
26617
+ children: [
26618
+ /* @__PURE__ */ jsx(ArrowLeft, { className: "size-4" }),
26619
+ " All conversations"
26620
+ ]
26621
+ }
26622
+ ),
26623
+ groupChat ? /* @__PURE__ */ jsx(
26624
+ DmThreadHeader,
26625
+ {
26626
+ avatar: groupChat.kind === "meeting" ? /* @__PURE__ */ jsx(MeetingAvatar, {}) : /* @__PURE__ */ jsx(GroupAvatars, { users: active.others, host }),
26627
+ name: groupTitle ?? (groupChat.kind === "meeting" ? "Meeting" : "Group"),
26628
+ email: `${groupChat.members.length} members`,
26629
+ menu: /* @__PURE__ */ jsxs(Fragment, { children: [
26630
+ groupActions?.(groupChat, groupTitle),
26631
+ /* @__PURE__ */ jsx(
26632
+ Button,
26633
+ {
26634
+ size: "sm",
26635
+ variant: "ghost",
26636
+ onClick: () => setMembersOpen(true),
26637
+ "data-testid": "group-members-button",
26638
+ "aria-label": "Group members",
26639
+ children: /* @__PURE__ */ jsx(UsersRound, { className: "size-4" })
26640
+ }
26641
+ )
26642
+ ] })
26643
+ }
26644
+ ) : /* @__PURE__ */ jsx(
26645
+ DmThreadHeader,
26646
+ {
26647
+ avatar: activePeer ? avatar(activePeer) : void 0,
26648
+ name: activePeer ? userDisplayName(activePeer) : "Conversation",
26649
+ badge: activePeer && isAgent5(activePeer) ? /* @__PURE__ */ jsx(AgentBadge, {}) : void 0,
26650
+ presence: presence ? /* @__PURE__ */ jsx(PresenceLabel, { status: presence }) : void 0,
26651
+ email: activePeer?.email,
26652
+ menu: activePeer ? directActions?.(activePeer, {
26653
+ // A personal agent never carries over into a group, and a self-chat has no peer.
26654
+ addPeople: isAgent5(activePeer) || activeIsSelf || !PeoplePicker ? void 0 : () => setPicker({ mode: "from-direct", fixed: [activePeer] })
26655
+ }) : void 0
26656
+ }
26657
+ ),
26658
+ groupChat ? /* @__PURE__ */ jsx(
26659
+ ConnectedGroupMembers,
26660
+ {
26661
+ chat: groupChat,
26662
+ title: groupTitle,
26663
+ open: membersOpen,
26664
+ onOpenChange: setMembersOpen,
26665
+ onLeft: () => onClose?.(activeId),
26666
+ host
26667
+ },
26668
+ groupChat.external_id
26669
+ ) : null,
26670
+ peoplePicker,
26671
+ /* @__PURE__ */ jsx(PanelFrameBody, { className: "flex flex-col overflow-visible", children: active ? /* @__PURE__ */ jsx(
26672
+ ConnectedChatThread,
26673
+ {
26674
+ chat: active.chat,
26675
+ peer: activePeer,
26676
+ host,
26677
+ placeholder: isSplit && threadName ? `Message ${threadName.split(" ")[0]}\u2026` : void 0
26678
+ },
26679
+ activeId
26680
+ ) : /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-muted-foreground", children: isLoading ? "Loading conversation\u2026" : "This conversation is no longer available." }) })
26681
+ ]
26682
+ }
26683
+ ) : null;
26684
+ if (layout === "panel") return thread;
26685
+ const showList = !isPhone || !activeId;
26686
+ const showThread = !isPhone || !!activeId;
26687
+ return /* @__PURE__ */ jsxs(
26688
+ "div",
26689
+ {
26690
+ "data-testid": "dm-messenger",
26691
+ "data-layout": "split",
26692
+ style: style ?? { height: "calc(100vh - 16rem)", minHeight: "28rem" },
26693
+ className: cn(
26694
+ "relative flex flex-col overflow-hidden rounded-xl border border-border bg-card md:flex-row",
26695
+ className
26696
+ ),
26697
+ children: [
26698
+ showList && list,
26699
+ showThread && (thread ?? /* @__PURE__ */ jsx(
26700
+ "section",
26701
+ {
26702
+ className: "flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center gap-3 p-8 text-center",
26703
+ "data-testid": "dm-messenger-empty-thread",
26704
+ children: emptyThread ?? /* @__PURE__ */ jsxs(Fragment, { children: [
26705
+ /* @__PURE__ */ jsx("div", { className: "flex size-14 items-center justify-center rounded-full bg-accent", children: /* @__PURE__ */ jsx(MessagesSquare, { className: "size-6 text-muted-foreground" }) }),
26706
+ /* @__PURE__ */ jsxs("div", { children: [
26707
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-foreground", children: "No conversation selected" }),
26708
+ /* @__PURE__ */ jsx("p", { className: "mx-auto mt-1 max-w-xs text-xs text-muted-foreground", children: "Choose a colleague from the list to read the thread and send a direct message." })
26709
+ ] })
26710
+ ] })
26711
+ }
26712
+ )),
26713
+ !thread && peoplePicker
26714
+ ]
26715
+ }
26716
+ );
26633
26717
  }
26634
26718
  var STANDARD_TIER_TAG = "Standard";
26635
26719
  var PREMIUM_TIER_TAG = "Premium";