@arbidocs/blocks 0.5.98 → 0.5.100

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 (105) hide show
  1. package/README.md +37 -3
  2. package/dist/ConnectedCallDock-OJ4UR5PR.js +1 -1
  3. package/dist/ConnectedCallDock-OKH3FT2U.cjs +1 -1
  4. package/dist/ConnectedCallRoom-NB7I6RLQ.cjs +1 -1
  5. package/dist/ConnectedCallRoom-OX7ZIF76.js +1 -1
  6. package/dist/ConnectedNativeDocxComparison-3UJZR52S.cjs +2 -2
  7. package/dist/ConnectedNativeDocxComparison-VGJLNVM4.js +2 -2
  8. package/dist/ConnectedNativeDocxEditor-A6PGFR35.cjs +2 -2
  9. package/dist/ConnectedNativeDocxEditor-O7QEWYGG.js +2 -2
  10. package/dist/ConnectedStreamedWordArtifact-MJAVZ3NR.js +2 -2
  11. package/dist/ConnectedStreamedWordArtifact-Q7TWGK4B.cjs +2 -2
  12. package/dist/{DocumentReviewCard-LGBI472S.js → DocumentReviewCard-5NZM6FOB.js} +9 -9
  13. package/dist/{DocumentReviewCard-LGBI472S.js.map → DocumentReviewCard-5NZM6FOB.js.map} +1 -1
  14. package/dist/{DocumentReviewCard-CJ5VQM45.cjs → DocumentReviewCard-7VJ3MMYG.cjs} +14 -14
  15. package/dist/{DocumentReviewCard-CJ5VQM45.cjs.map → DocumentReviewCard-7VJ3MMYG.cjs.map} +1 -1
  16. package/dist/{FilesViewerDialog-KP3IHDSS.js → FilesViewerDialog-5VML4F5E.js} +8 -8
  17. package/dist/{FilesViewerDialog-KP3IHDSS.js.map → FilesViewerDialog-5VML4F5E.js.map} +1 -1
  18. package/dist/{FilesViewerDialog-AFIM2SCB.cjs → FilesViewerDialog-IQ5UDAZX.cjs} +9 -9
  19. package/dist/{FilesViewerDialog-AFIM2SCB.cjs.map → FilesViewerDialog-IQ5UDAZX.cjs.map} +1 -1
  20. package/dist/{WorkspaceTableView-2FL5OX6M.js → WorkspaceTableView-DYABS53K.js} +3 -3
  21. package/dist/{WorkspaceTableView-2FL5OX6M.js.map → WorkspaceTableView-DYABS53K.js.map} +1 -1
  22. package/dist/{WorkspaceTableView-YPESFW25.cjs → WorkspaceTableView-ZIQ7JWT5.cjs} +3 -3
  23. package/dist/{WorkspaceTableView-YPESFW25.cjs.map → WorkspaceTableView-ZIQ7JWT5.cjs.map} +1 -1
  24. package/dist/agents/index.cjs +177 -177
  25. package/dist/agents/index.js +4 -4
  26. package/dist/chat/index.cjs +1 -1
  27. package/dist/chat/index.js +1 -1
  28. package/dist/{chunk-Y7QIZGZA.js → chunk-22EZJLGW.js} +5 -5
  29. package/dist/{chunk-Y7QIZGZA.js.map → chunk-22EZJLGW.js.map} +1 -1
  30. package/dist/{chunk-YOCKX2OP.cjs → chunk-4VSRSF4Q.cjs} +5 -5
  31. package/dist/{chunk-YOCKX2OP.cjs.map → chunk-4VSRSF4Q.cjs.map} +1 -1
  32. package/dist/{chunk-VJTDTWNZ.cjs → chunk-ERDQ4DAX.cjs} +3 -3
  33. package/dist/{chunk-VJTDTWNZ.cjs.map → chunk-ERDQ4DAX.cjs.map} +1 -1
  34. package/dist/{chunk-F3IRNQIB.cjs → chunk-HJBVSG6H.cjs} +4 -4
  35. package/dist/{chunk-F3IRNQIB.cjs.map → chunk-HJBVSG6H.cjs.map} +1 -1
  36. package/dist/{chunk-ERVXJW7P.cjs → chunk-J24LYNTY.cjs} +35 -35
  37. package/dist/{chunk-ERVXJW7P.cjs.map → chunk-J24LYNTY.cjs.map} +1 -1
  38. package/dist/{chunk-5HPLUT4M.cjs → chunk-KBXATCF4.cjs} +4 -4
  39. package/dist/{chunk-5HPLUT4M.cjs.map → chunk-KBXATCF4.cjs.map} +1 -1
  40. package/dist/{chunk-6FLDM72D.js → chunk-KYR3TXHS.js} +3 -3
  41. package/dist/{chunk-6FLDM72D.js.map → chunk-KYR3TXHS.js.map} +1 -1
  42. package/dist/{chunk-JGC3EPPF.js → chunk-L3V2ANBD.js} +3 -3
  43. package/dist/{chunk-JGC3EPPF.js.map → chunk-L3V2ANBD.js.map} +1 -1
  44. package/dist/{chunk-SVQTUHPE.cjs → chunk-MM5Q7AJL.cjs} +8 -8
  45. package/dist/{chunk-SVQTUHPE.cjs.map → chunk-MM5Q7AJL.cjs.map} +1 -1
  46. package/dist/{chunk-VYTEEQ4C.cjs → chunk-MT3RPUQC.cjs} +4 -4
  47. package/dist/{chunk-VYTEEQ4C.cjs.map → chunk-MT3RPUQC.cjs.map} +1 -1
  48. package/dist/{chunk-KA6TKTIT.js → chunk-OOYT5A7W.js} +3 -3
  49. package/dist/{chunk-KA6TKTIT.js.map → chunk-OOYT5A7W.js.map} +1 -1
  50. package/dist/{chunk-U3FUFNNR.js → chunk-OYSTBNNA.js} +3 -3
  51. package/dist/{chunk-U3FUFNNR.js.map → chunk-OYSTBNNA.js.map} +1 -1
  52. package/dist/{chunk-E35SHIUT.cjs → chunk-RAF72BBC.cjs} +4 -4
  53. package/dist/{chunk-E35SHIUT.cjs.map → chunk-RAF72BBC.cjs.map} +1 -1
  54. package/dist/{chunk-5SQJTWD3.cjs → chunk-SWILV6LT.cjs} +4 -4
  55. package/dist/{chunk-5SQJTWD3.cjs.map → chunk-SWILV6LT.cjs.map} +1 -1
  56. package/dist/{chunk-7OMLHP7B.js → chunk-SWW3KBH2.js} +4 -4
  57. package/dist/{chunk-7OMLHP7B.js.map → chunk-SWW3KBH2.js.map} +1 -1
  58. package/dist/{chunk-5CKKWKEJ.js → chunk-TVJAVK2G.js} +3 -3
  59. package/dist/{chunk-5CKKWKEJ.js.map → chunk-TVJAVK2G.js.map} +1 -1
  60. package/dist/{chunk-37J6OLML.js → chunk-UBI4HXT6.js} +5 -5
  61. package/dist/{chunk-37J6OLML.js.map → chunk-UBI4HXT6.js.map} +1 -1
  62. package/dist/{chunk-3SBMU4LB.js → chunk-UNQE3JWX.js} +4 -4
  63. package/dist/{chunk-3SBMU4LB.js.map → chunk-UNQE3JWX.js.map} +1 -1
  64. package/dist/{chunk-LDGVJI7D.cjs → chunk-USIRUI2M.cjs} +24 -24
  65. package/dist/{chunk-LDGVJI7D.cjs.map → chunk-USIRUI2M.cjs.map} +1 -1
  66. package/dist/{chunk-65MSYISI.cjs → chunk-VD33HXFZ.cjs} +28 -28
  67. package/dist/{chunk-65MSYISI.cjs.map → chunk-VD33HXFZ.cjs.map} +1 -1
  68. package/dist/{chunk-VYW4YXDB.js → chunk-VW6MFQFW.js} +3 -3
  69. package/dist/{chunk-VYW4YXDB.js.map → chunk-VW6MFQFW.js.map} +1 -1
  70. package/dist/{chunk-3LZ7JL3N.js → chunk-YG4S7OCD.js} +3 -3
  71. package/dist/{chunk-3LZ7JL3N.js.map → chunk-YG4S7OCD.js.map} +1 -1
  72. package/dist/{chunk-CYIL3N2M.js → chunk-Z7XKBKQN.js} +6 -6
  73. package/dist/{chunk-CYIL3N2M.js.map → chunk-Z7XKBKQN.js.map} +1 -1
  74. package/dist/{chunk-PNDWMFVL.cjs → chunk-ZAKDIJBP.cjs} +46 -46
  75. package/dist/{chunk-PNDWMFVL.cjs.map → chunk-ZAKDIJBP.cjs.map} +1 -1
  76. package/dist/connect/docx.cjs +2 -2
  77. package/dist/connect/docx.js +2 -2
  78. package/dist/connect/index.cjs +1259 -713
  79. package/dist/connect/index.cjs.map +1 -1
  80. package/dist/connect/index.d.ts +1 -0
  81. package/dist/connect/index.js +784 -241
  82. package/dist/connect/index.js.map +1 -1
  83. package/dist/connect/viewer.cjs +7 -7
  84. package/dist/connect/viewer.js +6 -6
  85. package/dist/connection/command/ConnectedCommandPalette.d.ts +16 -0
  86. package/dist/connection/command/actions.d.ts +21 -0
  87. package/dist/connection/command/icons.d.ts +7 -0
  88. package/dist/connection/command/index.d.ts +3 -0
  89. package/dist/connection/command/palette-state.d.ts +22 -0
  90. package/dist/connection/files/grid/documentCellRenderers.d.ts +57 -0
  91. package/dist/connection/files/grid/documentColumns.d.ts +2 -2
  92. package/dist/embed/index.cjs +13 -13
  93. package/dist/embed/index.js +7 -7
  94. package/dist/files/index.cjs +224 -224
  95. package/dist/files/index.js +3 -3
  96. package/dist/index.cjs +267 -267
  97. package/dist/index.cjs.map +1 -1
  98. package/dist/index.js +7 -7
  99. package/dist/index.js.map +1 -1
  100. package/dist/nav/actions.d.ts +23 -1
  101. package/dist/styles.css +1 -1
  102. package/dist/workflow-canvas/index.cjs +20 -20
  103. package/dist/workflow-canvas/index.js +10 -10
  104. package/node_modules/@arbidocs/coedit/package.json +1 -1
  105. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { ConnectedTagEntity, useMemberLookup } from '../chunk-37J6OLML.js';
3
- export { ConnectedTagEntity, documentFieldContent, useMemberLookup } from '../chunk-37J6OLML.js';
2
+ import { useMemberLookup, ConnectedTagEntity } from '../chunk-UBI4HXT6.js';
3
+ export { ConnectedTagEntity, documentFieldContent, useMemberLookup } from '../chunk-UBI4HXT6.js';
4
4
  import { useSlashField, DEFAULT_DOCUMENT_VIEWER_TABS } from '../chunk-WN7MN5DK.js';
5
5
  export { DEFAULT_ASK_SUGGESTIONS, DEFAULT_DOCUMENT_VIEWER_LABELS, DEFAULT_DOCUMENT_VIEWER_TABS } from '../chunk-WN7MN5DK.js';
6
6
  import { useBillingSupport, DEFAULT_SPEND_CAP_PENCE, findProPrices, packPrice, calcSavingsPercent, parseBudgetPounds, formatMoney, isProProject, useSelfExtId, addonCharge, formatPeriodEnd, quoteParts, taxDetail, money2, ANNUAL_PREMIUM_AI_NOTE, totalWithTaxWord, planBadgeView, isAddonBudgetZero, useRewardBalance, getQuotaItems, aiUsageResetTimestamp, formatResetDate, ZERO_BUDGET_MESSAGE, CAP_REACHED_MESSAGE, quoteError, POSTCODE_COUNTRIES, addonPrice, checkoutBlockPriceText, ADDON_BLOCK_AI_GBP, STORAGE_BLOCK_GB, quoteTotalLine, PRO_PACKS, apiErrorDetail, checkoutItemsLabel, planNameForPacks, proTierName, projectGroupBilling, SUGGESTED_DAILY_CAP_PER_USER, TAX_LOCATION_INVALID, FREE_COLLABORATORS, FREE_AI_GBP, FREE_STORAGE_MB, MAX_CHECKOUT_BLOCKS, PRO_AI_GBP, PRO_STORAGE_GB, plusVat, planPreviewLines, PAY_TODAY_UNPRICED, PLAN_CHOICE_PACKS, reduceBounds, splitBlocks, autoRoom, nextRemovedBlockSize, stepLabel, addStepCaption, blocksLabel, MIN_AUTO_TOPUP_THRESHOLD_GBP, USAGE_CAP_LABEL, USAGE_CAP_HELP, nextPeriodBody, addonSettingsBody, budgetSavedMessage } from '../chunk-FNGFSHVE.js';
@@ -8,19 +8,19 @@ export { CAP_REACHED_MESSAGE, ZERO_BUDGET_MESSAGE, aiUsageResetTimestamp, format
8
8
  export { ConnectedMailInviteCard } from '../chunk-BT2DDHMM.js';
9
9
  import { SharedFileView, SharedFilesInbox } from '../chunk-4ML5AMMO.js';
10
10
  export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-MJJQ6FW4.js';
11
+ import { ConnectedTaskComposer, useProjectSummaries, useProjectSummary, primaryProjectWorkspace, ConnectedThreadTaskBar, useTaskPeople, ConnectedTaskActivityDialog } from '../chunk-22EZJLGW.js';
12
+ export { ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedThreadTaskBar, ConnectedWorkflowHistory, ConnectedWorkflowRunPage, ConnectedWorkflowRunner, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_PAGE_LABELS, WorkflowRunThread, WorkflowRunWorkspaceChangedError, buildProjectSummaries, primaryProjectWorkspace, useEnsureRequiredLabels, useProjectSummaries, useProjectSummary, useRenderTaskPerson, useRequiredLabels, useTaskPeople, useWorkflowsPageState, workflowRunView } from '../chunk-22EZJLGW.js';
11
13
  import { getRoleBadgeClass, formatRole, WorkspaceTypeBadge, getRoleDescription, PageLoading, WorkspacePageFrame, WorkspaceIdentityPanel, WorkspaceProjectSlot, WorkspaceAudienceLine, CommonWorkspaceToggle, ExpandableSection, LeaveFooter, ItalicNone, WorkspaceList, WorkspaceGroup, WorkspaceCard } from '../chunk-TOT4HHHN.js';
12
- import { ConnectedTaskComposer, useProjectSummaries, useProjectSummary, primaryProjectWorkspace, ConnectedThreadTaskBar, useTaskPeople, ConnectedTaskActivityDialog } from '../chunk-Y7QIZGZA.js';
13
- export { ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedThreadTaskBar, ConnectedWorkflowHistory, ConnectedWorkflowRunPage, ConnectedWorkflowRunner, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_PAGE_LABELS, WorkflowRunThread, WorkflowRunWorkspaceChangedError, buildProjectSummaries, primaryProjectWorkspace, useEnsureRequiredLabels, useProjectSummaries, useProjectSummary, useRenderTaskPerson, useRequiredLabels, useTaskPeople, useWorkflowsPageState, workflowRunView } from '../chunk-Y7QIZGZA.js';
14
14
  import { ProjectPicker, ProjectOptionRow, WorkspaceFormModal, ModalActionRow, FormErrorBanner, WorkspaceFieldsView, FormActions } from '../chunk-SEBNGA3F.js';
15
15
  import { isAgentAccount, workspaceConversationCount, workspaceDocumentCount, isListedWorkspace, WORKSPACE_CATEGORY_FILTERS, projectFilterId, workspaceFilterAttributes, groupWorkspacesByProject, byRecentUpdate } from '../chunk-57CG33XJ.js';
16
- import { ConnectedProfileCard, ConnectedSecuritySection, ConnectedIdentityVerification, ConnectedSessionsRow, ConnectedDangerZone, ConnectedLogoutDialog, ConnectedNotificationPreferences, useSsoSignIn, ConnectedModelSelector, useAuthPages, ConversationComposer, AgentSteps, MessageLiveSeconds, resolveSsoName, completeSsoSignIn, ConnectedForgotPassword, ConnectedPasswordChangeDialog, useContextualHints, ssoAccountStatus, AskAgainContext, ConnectedMessageArea } from '../chunk-3SBMU4LB.js';
17
- export { AgentSteps, AnswerTable, ArbiChat, AskAgainContext, ConnectedBranchControls, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedCompactLogin, ConnectedConversationDocumentPicker, ConnectedDangerZone, ConnectedEmbeddedChat, ConnectedForgotPassword, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedModelSelector, ConnectedNotificationPreferences, ConnectedPasswordChangeDialog, ConnectedProfileCard, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedThreadsPreview, ConversationComposer, EmbeddedChatPanel, MessageDetailsModal, MessageLiveSeconds, PENDING_RECOVERY_KEY, PREMIUM_TIER_TAG, RunningSubagents, STANDARD_TIER_TAG, WorkflowStepMessage, backUpOnSignup, defaultHost, renderConnectedUser, renderSessionStatusIcon, resolveSsoName, useAuthPages, useContextualHints, useModelPicker, useOpenChunk, useOpenWorkspaceIcon, useSsoSignIn, useWorkspaceDocTitles } from '../chunk-3SBMU4LB.js';
16
+ import { ConnectedProfileCard, ConnectedSecuritySection, ConnectedIdentityVerification, ConnectedSessionsRow, ConnectedDangerZone, ConnectedLogoutDialog, ConnectedNotificationPreferences, useSsoSignIn, ConnectedModelSelector, useAuthPages, ConversationComposer, AgentSteps, MessageLiveSeconds, resolveSsoName, completeSsoSignIn, ConnectedForgotPassword, ConnectedPasswordChangeDialog, useContextualHints, ssoAccountStatus, AskAgainContext, ConnectedMessageArea } from '../chunk-UNQE3JWX.js';
17
+ export { AgentSteps, AnswerTable, ArbiChat, AskAgainContext, ConnectedBranchControls, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedCompactLogin, ConnectedConversationDocumentPicker, ConnectedDangerZone, ConnectedEmbeddedChat, ConnectedForgotPassword, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedModelSelector, ConnectedNotificationPreferences, ConnectedPasswordChangeDialog, ConnectedProfileCard, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedThreadsPreview, ConversationComposer, EmbeddedChatPanel, MessageDetailsModal, MessageLiveSeconds, PENDING_RECOVERY_KEY, PREMIUM_TIER_TAG, RunningSubagents, STANDARD_TIER_TAG, WorkflowStepMessage, backUpOnSignup, defaultHost, renderConnectedUser, renderSessionStatusIcon, resolveSsoName, useAuthPages, useContextualHints, useModelPicker, useOpenChunk, useOpenWorkspaceIcon, useSsoSignIn, useWorkspaceDocTitles } from '../chunk-UNQE3JWX.js';
18
18
  import { useSlashSkillWorkflows, ConnectedWorkflowStart, useLaunchWorkflow } from '../chunk-WGPJUGQ4.js';
19
19
  export { ConnectedWorkflowStart, PROMPT_BINDINGS, parseTypedSkill, useLaunchWorkflow, useSlashItems, useSlashMenuItems, useSlashSkillWorkflows } from '../chunk-WGPJUGQ4.js';
20
- import { useSelectWorkspace } from '../chunk-3LZ7JL3N.js';
21
- export { useConnectedThreadActivity } from '../chunk-3LZ7JL3N.js';
22
- import { DocumentUser } from '../chunk-6FLDM72D.js';
23
- export { DocumentUser } from '../chunk-6FLDM72D.js';
20
+ import { useSelectWorkspace } from '../chunk-YG4S7OCD.js';
21
+ export { useConnectedThreadActivity } from '../chunk-YG4S7OCD.js';
22
+ import { DocumentUser } from '../chunk-KYR3TXHS.js';
23
+ export { DocumentUser } from '../chunk-KYR3TXHS.js';
24
24
  import { useIsExternalAccount, withoutMarketplace, isExternalAccount, useWorkflowDefinitions, useCanBrowseSkills, useWorkflowTasks } from '../chunk-SX4MHN4P.js';
25
25
  export { useCanBrowseSkills, useIsExternalAccount, useSkillsEnabled, useWorkflowDefinitions, useWorkflowTasks } from '../chunk-SX4MHN4P.js';
26
26
  import { FactSearchBar, FactSearchTotals, FactSearchPending, FactSearchNoMatches, FactSearchResult, FactsToolbar, FactsFieldsButton, FactComposer, FactDateInput, FactSourcesRow, FactsLoading, FactsLoadError, FactsEmptyState, FactsCalendar, FactsGanttPane, FactsBulkBar, FactFieldRow, FactLabelsCell, enableFactTableColumnResize, createFactColumns, FactRowActions, FactSourceGroup, sourceDocCount, DEFAULT_FACT_COLUMN_LABELS } from '../chunk-5ZUA3JRB.js';
@@ -44,28 +44,28 @@ import { compareDocumentsIn } from '../chunk-QTSNHGSI.js';
44
44
  export { compareDocumentsIn, useDocumentViewerSupport, useViewerIsDetached, useViewerPassageCitation, useViewerStreamingDocument } from '../chunk-QTSNHGSI.js';
45
45
  import { ConnectedDocumentToolsProvider } from '../chunk-GNBYRV46.js';
46
46
  export { ConnectedDocumentToolsProvider } from '../chunk-GNBYRV46.js';
47
- import { usePendingFolders, useFilesStore, useAiReviewStore, useFilesPrefs, filesViewMode, useFilesGridStates, FILES_PREFS_KEY, useFilesDialogs } from '../chunk-U3FUFNNR.js';
48
- export { FILES_PREFS_KEY, filesViewMode, useAiReviewStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, usePendingFolders } from '../chunk-U3FUFNNR.js';
47
+ import { usePendingFolders, useFilesStore, useAiReviewStore, useFilesPrefs, filesViewMode, useFilesGridStates, FILES_PREFS_KEY, useFilesDialogs } from '../chunk-OYSTBNNA.js';
48
+ export { FILES_PREFS_KEY, filesViewMode, useAiReviewStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, usePendingFolders } from '../chunk-OYSTBNNA.js';
49
49
  import { DocumentWorkspaceContext, useDocumentWorkspace, ConnectedMarkdown, WorkspaceDocumentReference } from '../chunk-3PV25ICC.js';
50
50
  export { ConnectedMarkdown, DocumentWorkspaceContext, ExternalLink, InternalDocLink, MermaidDiagram, WorkspaceDocumentReference, useDocumentWorkspace } from '../chunk-3PV25ICC.js';
51
- import { FolderTile, FileTile, openPendingSyncDialog, UserAvatar, useDocumentFolders, DocumentNameCell, DocumentSharedCell, DocumentLabelsCell, RelatedDocumentsCell, DocumentFolderCell, StatusCell } from '../chunk-5CKKWKEJ.js';
52
- export { ConnectedPendingSyncDialog, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, FileTooltipContent, RelatedDocumentsCell, StatusCell, UserAvatar, isActiveDocumentStatus, openPendingSyncDialog, parseQuotaError, startMenuItem, useDocumentFolders } from '../chunk-5CKKWKEJ.js';
51
+ import { FolderTile, FileTile, openPendingSyncDialog, UserAvatar, useDocumentFolders, DocumentNameCell, DocumentFolderCell, RelatedDocumentsCell, DocumentSharedCell, DocumentLabelsCell, StatusCell } from '../chunk-TVJAVK2G.js';
52
+ export { ConnectedPendingSyncDialog, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, FileTooltipContent, RelatedDocumentsCell, StatusCell, UserAvatar, isActiveDocumentStatus, openPendingSyncDialog, parseQuotaError, startMenuItem, useDocumentFolders } from '../chunk-TVJAVK2G.js';
53
53
  import { DraggableHeader, PremiumModelsFrame, ConnectionsLoading, ConnectionsError, ConnectionsEmpty, UsageToggle, SettingsPage, UsageSummary, AppearanceSettings, SettingsSwitchRow, SettingsSwitchGroup, callsSwitchState, WorkOfflineToggle, UsageLineChart, PlanStack, PlanNotice, PlanPickerCard, PlanPickerHeader, PricingToggle, PromoCodeInput, PlanActionButton, formatSessionTtl, EmailWorkspaceDialogView, SyncDialogBody, SyncField, SyncSelect, SyncSmallNote, SyncLoading, SyncReconnectNotice, SyncNote, SyncTreeFrame, SyncLinkRow, SyncLinkButton, SyncOptions, SyncOptionToggle, SyncDialogFooter, InvoicesDialog, PlanDialogFrame, ProjectList, RenameDialog, SharedProjectsSection, SharedProjectRow, MoreInfo, MoreInfoList, UsagePanel, UsageQuotaHint, UsageSection, UsageLegend, UsageProportionBar, UsageActionButton, ProjectDetailHeader, PlanBadge, ProjectDetailSection, QuotaExceededDialogView, InviteContactsDialog, WelcomeDialog, applyTriStateFilters, PanelFrame, PanelAddButton, PanelFrameBody, PanelScroll, PanelActionsRow, applyInvertedIndexFilter, ConfigSwitcherBar, PanelNote, ConversationTitleSection, ModelSelectionSection, FloatingPanel, ProjectRow, QuotaMeter, FilterChip, buildInvertedIndex, serverConnectionView, ServerConnectionButton, ModelProviderLabel, PlanInfoPopover, PlanCardGrid, ReferralRewardSummary, CheckoutDialogFrame, SyncFolderRow, SyncFolderStatus, PlanTierOption, PlanActionRow, SubscriptionStatusView, DailyCapField, ConnectionCard, ReferralRewardNote } from '../chunk-N77UYRV7.js';
54
- import { FilterButton, searchExplorerDocuments, buildExplorerEntries, collectFolderDocs, joinFolderPath, getExplorerDisplayName, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, canDeleteDocument, ExplorerFrame, ExplorerStage, ExplorerScroller, ExplorerLoadingTiles, ExplorerEmpty, ExplorerMarquee, ExplorerDropOverlay, ExplorerDragPreview, CheckboxCell, TagColumnHeader, AiReviewDialogView, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, VendorLogo, FilesAddMenu, UploadFrame, PrivacyExplainerModal, parseFolderSegments, FolderFilterButton, FolderPickerRow, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, MoveToFolderDialog, FolderCommandList, BulkTagEditorDialog, BulkReplaceDialog, DOCUMENTS_ROW_HEIGHT_INITIAL, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, LabelMultiSelectView, DocStatusIcon, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canEditDocumentFields, FieldLabelsSelect, UploadFooterBar, ShareToggle, ImportPanel, ImportFamilySection, ImportList, ImportRow, TaskSection, UploadDropArea, canChangeVisibility, ImportSummary, ImportAside, FolderSummary, ImportProgress, ImportRunActions, ImportHint, ImportActionButton, UploadUrlButton } from '../chunk-KA6TKTIT.js';
54
+ import { FilterButton, searchExplorerDocuments, buildExplorerEntries, collectFolderDocs, joinFolderPath, getExplorerDisplayName, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, canDeleteDocument, ExplorerFrame, ExplorerStage, ExplorerScroller, ExplorerLoadingTiles, ExplorerEmpty, ExplorerMarquee, ExplorerDropOverlay, ExplorerDragPreview, AiReviewDialogView, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, VendorLogo, FilesAddMenu, UploadFrame, PrivacyExplainerModal, parseFolderSegments, FolderFilterButton, FolderPickerRow, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, MoveToFolderDialog, FolderCommandList, BulkTagEditorDialog, BulkReplaceDialog, DOCUMENTS_ROW_HEIGHT_INITIAL, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, LabelMultiSelectView, DocStatusIcon, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canChangeVisibility, canEditDocumentFields, FieldLabelsSelect, UploadFooterBar, ShareToggle, ImportPanel, ImportFamilySection, ImportList, ImportRow, TagColumnHeader, CheckboxCell, TaskSection, UploadDropArea, ImportSummary, ImportAside, FolderSummary, ImportProgress, ImportRunActions, ImportHint, ImportActionButton, UploadUrlButton } from '../chunk-OOYT5A7W.js';
55
55
  import { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
56
56
  import { ViewToggle, DocumentViewToggle } from '../chunk-OHRWYRTH.js';
57
- import { DatabaseList, NewDatabaseDialog, DatabaseToolbar, DatabaseTable, DatabaseRowDetail, DatabaseColumnDialog, rowTitle, OPEN_ROW_COL_ID, ADD_COLUMN_COL_ID } from '../chunk-6OEAZ2TJ.js';
58
57
  import { formatBytes, reducedRateNote, RECENTLY_DELETED_NOTE, kindRows, usedPct, usedOfLimit, MAIL_FOLDER_LABELS, itemTitle, ITEM_LABELS, KIND_LABELS } from '../chunk-653XMGF4.js';
58
+ import { DatabaseList, NewDatabaseDialog, DatabaseToolbar, DatabaseTable, DatabaseRowDetail, DatabaseColumnDialog, rowTitle, OPEN_ROW_COL_ID, ADD_COLUMN_COL_ID } from '../chunk-6OEAZ2TJ.js';
59
59
  import { SavedSignatureSettings, SignatureCertificate } from '../chunk-VSFLROLB.js';
60
60
  import '../chunk-2YOVK524.js';
61
61
  import { SettingsPanel, SettingsDisclosure, SettingsSection, SettingsCard, SettingsRow, SettingsActionRow } from '../chunk-PBQNZWSX.js';
62
62
  import '../chunk-UIHNCQAA.js';
63
63
  import '../chunk-IA5BYEO7.js';
64
- import { WorkspaceActivityList, TagTable, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, Toolbar, documentCount, useTipsPlacement, tagTableDocx, tagTableLabels, TagDetail, tagDetailLabels, tagKindDescription, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-VYW4YXDB.js';
64
+ import { WorkspaceActivityList, TagTable, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, Toolbar, documentCount, useTipsPlacement, tagTableDocx, tagTableLabels, TagDetail, tagDetailLabels, tagKindDescription, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-VW6MFQFW.js';
65
65
  import { ThemeEditor } from '../chunk-4FV5DO3V.js';
66
66
  import '../chunk-J77BACGX.js';
67
- import { MemberAvatarStack } from '../chunk-VGHPCF7Q.js';
68
67
  import { WorkspaceNotificationMenu, ThreadFollowMenuItem, ThreadFollowButton } from '../chunk-66NMPTOH.js';
68
+ import { MemberAvatarStack } from '../chunk-VGHPCF7Q.js';
69
69
  import { WELCOME_REPLAY_VIEW, startWelcomeReplay } from '../chunk-SK3GBHPJ.js';
70
70
  import { TimelineZoomControl } from '../chunk-QCK3YKT4.js';
71
71
  import '../chunk-UJE32SST.js';
@@ -86,12 +86,12 @@ import '../chunk-ELA7Y5YW.js';
86
86
  import { PassagePill } from '../chunk-3IT5LPLF.js';
87
87
  import { useCopyText } from '../chunk-FACZSNRJ.js';
88
88
  import '../chunk-K4BGOPGG.js';
89
- import '../chunk-OC2PD52M.js';
90
89
  import { DataTable, MetricCard } from '../chunk-I46XTM3W.js';
91
90
  import { tid } from '../chunk-AMTWY22T.js';
92
91
  import { PageHeader } from '../chunk-XCVLUXFP.js';
93
92
  import '../chunk-VIIBJBTX.js';
94
- import { buildLibrarySkills, filterLibrarySkills, SKILL_SOURCE_LABELS, SKILL_TYPE_LABELS, SkillViewToggle, SkillFilterChips, SkillTile, SkillGenerateForm, SkillLibraryDetail, parseSkillFrontmatter, SKILL_MAIN_FILENAME, SkillEditForm, DEFAULT_AGENT_CAPABILITIES, stripPersonaPreamble, AgentCreator, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TEMPLATES, AgentAvatarField, isValidAgentName, AgentConnectInstructions, ConsentPage, ConsentCard, ConsentHeader, ConsentNotice, ConsentSection, ConsentBulletList, ConsentStrong, ConsentText, ConfigForm, AgentEditView, AgentMainView, AgentCreatedView, AgentCreateView, moveTargets, NewThreadDialog, openWorkflowLaunch, useWorkflowLaunchRequest, WorkflowRunStatus, ThreadStatusLine, AgentBar, AgentBarNotes, AgentBarQueuedNote, AgentBarProbeAnswer, ConversationListView, ConversationTurnSpeaker, filterConversationRows, ConsentMessage, CopyableUrl, ConsentPermissionList, ConsentActions, ConsentFootnote, AgentBarStatus, AgentBarIconButton, AgentBarMenu, composePersona, importSkillFile, importSkillFromUrl, skillSlug, serializeSkill, STATUS_LABELS, asTaskStatus, UploadTaskList, TaskEmptyState, workflowToSkillMarkdown, TaskTable, groupAgentTasks, AgentGallery, goalProgress, AgentCard, closeWorkflowLaunch, defaultTaskComposerValues } from '../chunk-7OMLHP7B.js';
93
+ import '../chunk-OC2PD52M.js';
94
+ import { buildLibrarySkills, filterLibrarySkills, SKILL_SOURCE_LABELS, SKILL_TYPE_LABELS, SkillViewToggle, SkillFilterChips, SkillTile, SkillGenerateForm, SkillLibraryDetail, parseSkillFrontmatter, SKILL_MAIN_FILENAME, SkillEditForm, DEFAULT_AGENT_CAPABILITIES, stripPersonaPreamble, AgentCreator, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TEMPLATES, AgentAvatarField, isValidAgentName, AgentConnectInstructions, ConsentPage, ConsentCard, ConsentHeader, ConsentNotice, ConsentSection, ConsentBulletList, ConsentStrong, ConsentText, ConfigForm, AgentEditView, AgentMainView, AgentCreatedView, AgentCreateView, moveTargets, NewThreadDialog, openWorkflowLaunch, useWorkflowLaunchRequest, WorkflowRunStatus, ThreadStatusLine, AgentBar, AgentBarNotes, AgentBarQueuedNote, AgentBarProbeAnswer, ConversationListView, ConversationTurnSpeaker, filterConversationRows, ConsentMessage, CopyableUrl, ConsentPermissionList, ConsentActions, ConsentFootnote, AgentBarStatus, AgentBarIconButton, AgentBarMenu, composePersona, importSkillFile, importSkillFromUrl, skillSlug, serializeSkill, STATUS_LABELS, asTaskStatus, UploadTaskList, TaskEmptyState, workflowToSkillMarkdown, TaskTable, groupAgentTasks, AgentGallery, goalProgress, AgentCard, closeWorkflowLaunch, defaultTaskComposerValues } from '../chunk-SWW3KBH2.js';
95
95
  import { EntityChip, fromPlanSteps, getCurrentAgentStepPresentation } from '../chunk-OFF2PR4W.js';
96
96
  import '../chunk-LRPGXNMA.js';
97
97
  import { BUILTIN_SKILLS, renderWorkflowIcon, newThreadToRequest, ANNOTATE_ID } from '../chunk-AXJLDI4M.js';
@@ -107,8 +107,8 @@ import { TriStateFilterMenu } from '../chunk-ZQ5YTC3P.js';
107
107
  import '../chunk-RLWIUUQ5.js';
108
108
  import { SelectionBar, SelectionBarAction } from '../chunk-L3BEWZWT.js';
109
109
  import { FilterInput } from '../chunk-P4CH2ATT.js';
110
- import { GridView } from '../chunk-7F5Z4K5W.js';
111
110
  import { ActionLink } from '../chunk-U53SIJES.js';
111
+ import { GridView } from '../chunk-7F5Z4K5W.js';
112
112
  import { StreamedArtifactFrame } from '../chunk-Z42EEBON.js';
113
113
  import { isDeepLinkPath, parseHref, hrefFor } from '../chunk-N7X5O7B5.js';
114
114
  import { RecoveryKeyDialog, AuthLayout, AuthField, AuthLink, AuthAlert, AuthConsent } from '../chunk-FVZ2CN4A.js';
@@ -152,8 +152,8 @@ import '../chunk-PMJPPXX5.js';
152
152
  import { stepStatesFromActivity, canAssign, assigneeName, runFieldsOf } from '../chunk-XEZCSRFG.js';
153
153
  import { inputsFromContext, workflowsAccepting, validateInputs, defaultInputs, buildLaunch, skillToWorkflow } from '../chunk-ECYOIRXR.js';
154
154
  import '../chunk-XDDORJPA.js';
155
- import { useIsPhone, useMediaQuery } from '../chunk-SLSBJRWW.js';
156
155
  import { fmtDate } from '../chunk-X5YMI6A7.js';
156
+ import { useIsPhone, useMediaQuery } from '../chunk-SLSBJRWW.js';
157
157
  import { ConversationFilter } from '../chunk-H773F7OR.js';
158
158
  import '../chunk-NPLYHR2E.js';
159
159
  import { useBlocksEnvironment, useRequestedSettingsSection, useIntentRequest, mailComposeRequest, mailFolderRequest, mailDraftRequest, mailMessageRequest, useCalendarViewStore, conversationStartRequest } from '../chunk-YUHSDOPW.js';
@@ -163,12 +163,12 @@ import { ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../
163
163
  import { buildDeepLinkUrl } from '../chunk-SV65E4QW.js';
164
164
  import '../chunk-UP3GCNPM.js';
165
165
  import '../chunk-VUNV25KB.js';
166
- import { useDocument, usePeople, useArbiSession, useArbiSessionState, isPanelOpen, DOCUMENT_VIEWER_PANEL, useArbiSessionStore, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, defaultLayoutState, selectDraft, useAssistantName, assistantLabels, useArbi, useAudioRecorder, MicRecordingOverlay, useWorkspaces, isNetworkFailure, hasPendingMailChange, OUTBOX_FOLDER, useOfflineMailActive, useConversations, useRunConversation, useWorkspaceActivity, useWorkspaceUsers, getWorkspaceKind, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, describeCalendarNotification, notificationUserName, describeServerNotification, isSignatureNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useTransientView, useCallsEnabled, useDocuments, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, useReconnect, usePendingSyncCounts, useArbiHost, useOutbox, usePendingMailChanges, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSkills, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useInstallSkillPack, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useAgents, useDeleteAgents, useAgentSession, useAgentChats, useStartAgentSession, useCloseAgentSession, useSwitchWorkspace, useWorkItems, ArtifactCanvas, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useGenerateDocTags, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useFactsSearch, useShellWorkspaces, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailPolicy, useMailAccounts, useProfile, useUserSettings, useUpdateUserSettings, useDismissedTips, useAvailableModels, useModelConnections, useDirectModelUsage, useSaveModelConnection, useRemoveModelConnection, useUnlockModelConnections, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, formatGbp, useFeatureSwitch, useCallsConfig, useCurrentUser, useSyncOfflineMailbox, useOfflineMailSettings, useOfflineMailStatus, useArbiWsStatus, useWorkOffline, useFeature, useIsEntitled, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useContacts, useInviteContacts, useDeleteContact, useSetWorkspaceMemberRoles, usePeopleSearch, useIsSlow, useProducts, useCreateProject, useDeleteProject, toShellWorkspace, useUploadDocuments, useSetWorkspaceHouseTemplate, useSetDeploymentHouseTemplate, supportsHouseTemplates, workspaceHouseTemplateId, isDeploymentAdmin, useHouseTemplateCandidates, useWorkspaceArchive, useArchiveWorkspace, useSessions, useAuthorizeLimits, useTerminateSession, useUnarchiveWorkspace, isArchiveMoving, useCanCreateProjects, PROJECT_CREATION_DENIED_REASON, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, MODEL_GROUP_LABELS, useRefreshProject, useBoxRole, cachedQuotaUsedUp, useDeleteWorkspaces, useArchiveProgressPolling, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useRequestWorkspaceAccess, ConversationList, dmTabId, useUnreadByPeer, useConfigSchema, useSaveConfig, ArbiBotHeadIcon, TaskThreadPendingError, useStartTaskQuery, useCreateWork, useCalendarEvents, useCalendars, useUploadFromUrls, useDocumentsSupport, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useOfflineDocumentIds, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useLocalDrafts, queueMailChange, enqueueOutbox, deleteLocalDraft, saveLocalDraft, loadOfflineMailAttachment, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, useMailConversations, toMailConversation, groupMailConversations, useNativeThreadKeys, mailConversationKey, MailOfflineUnavailableError, accountPath, useClaimSecureMail, useCanHostCalls, useOpenCallMeetingChat, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, getPublicBookingPage, bookPublicSlot, PublicBookingError, useActiveConfigId, useUploadFiles, useCurrentWorkspace, useUpdateDocTag, useRemoveDocTags, useKeepDocumentsOffline, useRemoveDocumentsOffline, useOpenViewerDocumentId, subscribeDocumentRows, useRefreshDocuments, useArbiWsStore, isTableViewOf, viewsOfTable, useDocumentsLoading, selectViewingDocumentId, useWorkspaceProcessing, DISMISSED_TASK_TTL_MS, useDatabases, useCreateDatabase, useImportDatabase, useChatArrivals, useConversationPendingAuth, openAccessRequest, useSignOut, confirmLosingOfflineMail, useSupportTickets, useSupportTicket, useRateSupportTicket, ImageCropper, useConversationSettings, useConversationActivity, useConversationItems, threadTabId, useUpdateConversation, useAgentRunControl, useDeleteConversation, useCanEditShared, useIsWorkspaceOwner, useWorkflows, useWorkspaceRole, useConversationDocuments, readWorkspaceLastOpened, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, requestPersistentStorage, wipeOfflineMail, mailJson, connectorReturnTo, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, downloadRecoveryFile, cropImage, getRelatedTotal, isDeploymentUserNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, inputRequestTitle, WORK_NOTIFICATION_LABELS, ConversationScope, useSessionView, useUpdateFact, useDeleteFact, useCreateFact, usePassageQuotes, useAccountClient, formatGbpPerMillionTokens, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useInvalidateEntitlements, useMoveWorkspaceToProject, useCreateWorkspace, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useCreateGroupChat, useFlushOutbox, retryOutboxItem, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, documentMailAttachment, useReadMailMessage, useMailThread, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useConfig, useSaveConfigField, SHAREPOINT_VENDORS, isDriveSyncVendor, useRelatedDocuments, useDatabase, useDatabaseRows, useUpdateDatabase, useDeleteDatabase, useAddDatabaseRows, useUpdateDatabaseRow, useDeleteDatabaseRows, useImportDatabaseRows, useExportDatabase, DATABASE_ROWS_PAGE, useInvalidateAfterTransfer, useConfigs, useDeleteConfig, isFullConfig, resolveConfigModel, useChatUnreadTotal, useMarkDocumentShared, useConversationData, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, buildPendingFirstTurn, useConversationTurn, useAskAgain, transcriptSegmentOf, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useConversationSearch, useFeatureCheck, useProjectConversationUsage, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useConversation, deleteOutboxItem, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, useCancelMailboxSync, useMailboxSyncProgress, useRefreshConnectorsOnRunEnd, useCancelDriveSync, useDriveFolders, useDriveSyncProgress, useDriveSyncEstimate, useSearchDatabaseRows, callSession, isReplayableArbiMutation, useConnectorAutoSync, workflowRunTitle, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom, useTriggerMailboxSync, useTriggerDriveSync } from '@arbidocs/react';
166
+ import { useDocument, usePeople, useArbiSession, useArbiSessionState, isPanelOpen, DOCUMENT_VIEWER_PANEL, useArbiSessionStore, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, defaultLayoutState, selectDraft, useAssistantName, assistantLabels, useArbi, useAudioRecorder, MicRecordingOverlay, useWorkspaces, isNetworkFailure, hasPendingMailChange, OUTBOX_FOLDER, useOfflineMailActive, useConversations, useRunConversation, useWorkspaceActivity, useWorkspaceUsers, getWorkspaceKind, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, describeCalendarNotification, notificationUserName, describeServerNotification, isSignatureNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useTransientView, useCallsEnabled, useDocuments, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, useReconnect, usePendingSyncCounts, useArbiHost, useOutbox, usePendingMailChanges, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSkills, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useInstallSkillPack, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useAgents, useDeleteAgents, useAgentSession, useAgentChats, useStartAgentSession, useCloseAgentSession, useSwitchWorkspace, useWorkItems, ArtifactCanvas, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useGenerateDocTags, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useFactsSearch, useShellWorkspaces, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailPolicy, useMailAccounts, useProfile, useUserSettings, useUpdateUserSettings, useDismissedTips, useAvailableModels, useModelConnections, useDirectModelUsage, useSaveModelConnection, useRemoveModelConnection, useUnlockModelConnections, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, formatGbp, useFeatureSwitch, useCallsConfig, useCurrentUser, useSyncOfflineMailbox, useOfflineMailSettings, useOfflineMailStatus, useArbiWsStatus, useWorkOffline, useFeature, useIsEntitled, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useContacts, useInviteContacts, useDeleteContact, useSetWorkspaceMemberRoles, usePeopleSearch, useIsSlow, useProducts, useCreateProject, useDeleteProject, toShellWorkspace, useUploadDocuments, useSetWorkspaceHouseTemplate, useSetDeploymentHouseTemplate, supportsHouseTemplates, workspaceHouseTemplateId, isDeploymentAdmin, useHouseTemplateCandidates, useWorkspaceArchive, useArchiveWorkspace, useSessions, useAuthorizeLimits, useTerminateSession, useUnarchiveWorkspace, isArchiveMoving, useCanCreateProjects, PROJECT_CREATION_DENIED_REASON, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, MODEL_GROUP_LABELS, useRefreshProject, useBoxRole, cachedQuotaUsedUp, useDeleteWorkspaces, useArchiveProgressPolling, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useRequestWorkspaceAccess, ConversationList, dmTabId, useUnreadByPeer, useConfigSchema, useSaveConfig, ArbiBotHeadIcon, TaskThreadPendingError, useStartTaskQuery, useCreateWork, useCalendarEvents, useCalendars, useUploadFromUrls, useCurrentWorkspace, useFeatureCheck, useDocumentsSupport, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useOfflineDocumentIds, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useLocalDrafts, queueMailChange, enqueueOutbox, deleteLocalDraft, saveLocalDraft, loadOfflineMailAttachment, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, useMailConversations, toMailConversation, groupMailConversations, useNativeThreadKeys, mailConversationKey, MailOfflineUnavailableError, accountPath, useClaimSecureMail, useCanHostCalls, useOpenCallMeetingChat, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, getPublicBookingPage, bookPublicSlot, PublicBookingError, useActiveConfigId, useUploadFiles, useUpdateDocTag, useRemoveDocTags, useKeepDocumentsOffline, useRemoveDocumentsOffline, useOpenViewerDocumentId, subscribeDocumentRows, useRefreshDocuments, useArbiWsStore, isTableViewOf, viewsOfTable, useDocumentsLoading, selectViewingDocumentId, useWorkspaceProcessing, DISMISSED_TASK_TTL_MS, useDatabases, useCreateDatabase, useImportDatabase, useChatArrivals, useConversationPendingAuth, openAccessRequest, useSignOut, confirmLosingOfflineMail, useSupportTickets, useSupportTicket, useRateSupportTicket, ImageCropper, useConversationSettings, useConversationActivity, useConversationItems, threadTabId, useUpdateConversation, useAgentRunControl, useDeleteConversation, useCanEditShared, useIsWorkspaceOwner, useWorkflows, useWorkspaceRole, useConversationDocuments, readWorkspaceLastOpened, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, requestPersistentStorage, wipeOfflineMail, mailJson, connectorReturnTo, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, downloadRecoveryFile, cropImage, setWorkOfflineIn, isDeploymentUserNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, inputRequestTitle, WORK_NOTIFICATION_LABELS, ConversationScope, useSessionView, useUpdateFact, useDeleteFact, useCreateFact, usePassageQuotes, useAccountClient, formatGbpPerMillionTokens, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useInvalidateEntitlements, useMoveWorkspaceToProject, useCreateWorkspace, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, useCreateGroupChat, useFlushOutbox, retryOutboxItem, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, documentMailAttachment, useReadMailMessage, useMailThread, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useConfig, useSaveConfigField, SHAREPOINT_VENDORS, isDriveSyncVendor, getRelatedTotal, useRelatedDocuments, useDatabase, useDatabaseRows, useUpdateDatabase, useDeleteDatabase, useAddDatabaseRows, useUpdateDatabaseRow, useDeleteDatabaseRows, useImportDatabaseRows, useExportDatabase, DATABASE_ROWS_PAGE, useInvalidateAfterTransfer, useConfigs, useDeleteConfig, isFullConfig, resolveConfigModel, useChatUnreadTotal, useMarkDocumentShared, useConversationData, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, buildPendingFirstTurn, useConversationTurn, useAskAgain, transcriptSegmentOf, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useConversationSearch, useProjectConversationUsage, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useConversation, deleteOutboxItem, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, useCancelMailboxSync, useMailboxSyncProgress, useRefreshConnectorsOnRunEnd, useCancelDriveSync, useDriveFolders, useDriveSyncProgress, useDriveSyncEstimate, useSearchDatabaseRows, callSession, isReplayableArbiMutation, useConnectorAutoSync, workflowRunTitle, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom, useTriggerMailboxSync, useTriggerDriveSync } from '@arbidocs/react';
167
167
  export { viewsOfTable } from '@arbidocs/react';
168
- import { getDocumentTitle, getFileTypeIcon, HoverCard, HoverCardTrigger, HoverCardContent, formatFriendlyDate, getEntityLabel, EntityPill, Badge, ThreadVisibilityIcon, Button, ShieldIcon, EntityIcon, Tooltip, TooltipTrigger, TooltipContent, getUserDisplayName, createUserAvatarIcon, Label, Input, cn, Textarea, Dialog, DialogContent, DialogTitle, DialogDescription, DialogHeader, tagKindNouns, tagKindTitle, getTagTypeLabel, VisibilityToggle, getEntityColor, isImageDocument, IconToggle, Switch, Checkbox, entityNoun, Popover, PopoverTrigger, PopoverContent, formatRelativeTime, getUserAvatarColor, DialogTrigger, CommandGroup, CommandItem, ProjectEntity, DialogFooter, Tabs, TabsList, TabsTrigger, TabsContent, isAgent, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, AgentBadge, PresenceLabel, getDocIcon, canonicalFolderPath, formatFolderLabel, TagEntity, getDocumentNature, getDocumentAuthor, markdownToPlainText, getDocumentSubject, formatDocDate, getDocumentDate, friendlyFileType, Slider, UserMenu, PopoverAnchor, Command, CommandInput, CommandList, CommandEmpty, isDocumentAddableToConversation, DocumentEntity, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, formatCompactLastSeen, ArbiIcon, UserEntity, agentAvatarColors, getUserInitials, ProviderIcon, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Avatar, AvatarImage, AvatarFallback, Progress } from '@arbidocs/react/ui';
168
+ import { getDocumentTitle, getFileTypeIcon, HoverCard, HoverCardTrigger, HoverCardContent, formatFriendlyDate, getEntityLabel, EntityPill, Badge, ThreadVisibilityIcon, Button, ShieldIcon, EntityIcon, Tooltip, TooltipTrigger, TooltipContent, getUserDisplayName, createUserAvatarIcon, Label, Input, cn, Textarea, Dialog, DialogContent, DialogTitle, DialogDescription, DialogHeader, tagKindNouns, tagKindTitle, getTagTypeLabel, VisibilityToggle, getEntityColor, isImageDocument, IconToggle, Switch, Checkbox, entityNoun, Popover, PopoverTrigger, PopoverContent, formatRelativeTime, getUserAvatarColor, DialogTrigger, CommandGroup, CommandItem, ProjectEntity, DialogFooter, Tabs, TabsList, TabsTrigger, TabsContent, isAgent, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, AgentBadge, PresenceLabel, getDocIcon, Command, CommandInput, CommandList, CommandEmpty, canonicalFolderPath, formatFolderLabel, TagEntity, getDocumentNature, getDocumentAuthor, markdownToPlainText, getDocumentSubject, formatDocDate, getDocumentDate, friendlyFileType, Slider, UserMenu, PopoverAnchor, isDocumentAddableToConversation, DocumentEntity, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, formatCompactLastSeen, ArbiIcon, UserEntity, agentAvatarColors, getUserInitials, ProviderIcon, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Avatar, AvatarImage, AvatarFallback, Progress } from '@arbidocs/react/ui';
169
169
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
170
- import { lazy, createContext, memo, useState, useEffect, forwardRef, useRef, useMemo, useLayoutEffect, useCallback, useImperativeHandle, Suspense, useSyncExternalStore, createElement, useContext, Fragment as Fragment$1, useId } from 'react';
171
- import { Folder, Upload, Eye, Activity, HardDrive, Bell, Info, UserCheck, Trash2, Loader2, Link2, Search, Plus, ArrowLeft, Bot, Tags, NotebookPen, CheckCircle2, Milestone, LogOut, Wifi, RotateCcw, Mail, ExternalLink, Lock, User, HatGlasses, MessageSquare, Code2, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, ChevronDown, ChevronRight, KeyRound, Download, Shield, Star, Check, UserPlus, FolderInput, FileText, Archive, ArchiveRestore, Printer, FolderClock, Users, SquareStack, Table, FolderKanban, Sparkles, Cake, X, UserRound, UserMinus, UsersRound, Phone, MessageCircleMore, MailOpen, BellOff, MailQuestion, MailX, UserStar, AtSign, Video, Camera, Send, FilePlus2, Monitor, Globe, MessagesSquare, Paperclip, CircleCheck, Calendar, Copy, Network, CheckCircle, TriangleAlert, LoaderCircle, File as File$1, FolderOpen, Tag, Settings, Clock, MapPin, Hash, FileType, Fingerprint, Share2, Columns3, EyeOff, ArrowUp, ArrowDown, ZoomOut, Eraser, ClockFading, Infinity, Bug, Crop, Undo2, ImageUp, MessageCircleQuestionMark, Wrench, RotateCw, Minus, Link, ClipboardList, Lightbulb, Square, Table2, CalendarDays, ShieldCheck, CalendarClock, Zap, KeySquare, BookUser, CheckCheck, FolderUp, ArrowUpCircle, Contact, Scale, MoreHorizontal, Pencil, BookA, Quote, ArrowRight, Workflow, RefreshCw, Inbox, CalendarX, CalendarCheck, Mic, Play, Pause, BrainCircuit, Minimize2, Maximize2, AlertCircle, HardDriveDownload, CalendarSearch, DoorOpen, AlertTriangle, CloudOff } from 'lucide-react';
170
+ import { lazy, createContext, memo, useState, useEffect, forwardRef, useRef, useMemo, useLayoutEffect, useCallback, useImperativeHandle, Suspense, useSyncExternalStore, useContext, createElement, Fragment as Fragment$1, useId } from 'react';
171
+ import { Folder, Upload, Eye, Activity, HardDrive, Bell, Info, UserCheck, Trash2, Loader2, Link2, Search, Plus, ArrowLeft, Bot, Tags, NotebookPen, CheckCircle2, Milestone, LogOut, Wifi, RotateCcw, Mail, ExternalLink, Lock, User, HatGlasses, MessageSquare, Code2, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, ChevronDown, ChevronRight, KeyRound, Download, Shield, Star, Check, UserPlus, FolderInput, FileText, Archive, ArchiveRestore, Printer, FolderClock, Users, SquareStack, Table, FolderKanban, Sparkles, Cake, X, UserRound, UserMinus, UsersRound, Phone, MessageCircleMore, MailOpen, BellOff, MailQuestion, MailX, UserStar, AtSign, Video, Camera, Send, FilePlus2, Monitor, Globe, MessagesSquare, ArrowRight, Paperclip, CircleCheck, Calendar, Copy, Network, CheckCircle, TriangleAlert, LoaderCircle, File as File$1, FolderOpen, Tag, Settings, Clock, MapPin, Hash, FileType, Fingerprint, Share2, Columns3, EyeOff, ArrowUp, ArrowDown, ZoomOut, Eraser, ClockFading, Infinity, Bug, Crop, Undo2, ImageUp, MessageCircleQuestionMark, Wrench, RotateCw, Minus, Link, ClipboardList, Lightbulb, Square, Table2, CalendarDays, ShieldCheck, CalendarClock, Zap, KeySquare, BookUser, CheckCheck, FolderUp, ArrowUpCircle, Contact, Scale, MoreHorizontal, Pencil, BookA, Quote, Workflow, RefreshCw, WifiOff, UserCog, SquareDashedMousePointer, Settings2, Megaphone, Library, LayoutGrid, FolderTree, Files, Crown, Compass, Inbox, CalendarX, CalendarCheck, Mic, Play, Pause, BrainCircuit, Minimize2, Maximize2, AlertCircle, HardDriveDownload, CalendarSearch, DoorOpen, AlertTriangle, CloudOff } from 'lucide-react';
172
172
  import { hasMessageBody, notify, useNotify, requestSearch, sharedSearchSession, takePendingSearch, selectUnread, NotificationBell, useTurnDocumentId, useOpenDocumentId, useRegisterOpenDocument, useHostConfigRecord } from '@arbidocs/react/shell';
173
173
  import { useQueryClient } from '@tanstack/react-query';
174
174
  import { parseCallFragment, isMessageType, logger, unlockIdentityWithPassword, createRecoveryUrl, bytesToBase64 } from '@arbidocs/client';
@@ -668,8 +668,8 @@ function createNotificationTargetOpener(deps) {
668
668
  return;
669
669
  }
670
670
  }
671
- const inWorkspace = target.workspaceId || (target.kind === "workflows" ? await workflowWorkspace(arbi, target.workflowId) : void 0);
672
- const workspaceId = inWorkspace && inWorkspace !== openWorkspaceId?.() ? inWorkspace : void 0;
671
+ const inWorkspace2 = target.workspaceId || (target.kind === "workflows" ? await workflowWorkspace(arbi, target.workflowId) : void 0);
672
+ const workspaceId = inWorkspace2 && inWorkspace2 !== openWorkspaceId?.() ? inWorkspace2 : void 0;
673
673
  if (workspaceId && selectWorkspace) await selectWorkspace(workspaceId);
674
674
  switch (target.kind) {
675
675
  case "workspace":
@@ -2342,7 +2342,7 @@ function useConnectedAgentManagement({
2342
2342
  const onEditorOpenChange = (open) => {
2343
2343
  setEditorOpen(open);
2344
2344
  };
2345
- const create2 = () => {
2345
+ const create3 = () => {
2346
2346
  setEditing(null);
2347
2347
  setEditorOpen(true);
2348
2348
  };
@@ -2376,7 +2376,7 @@ function useConnectedAgentManagement({
2376
2376
  return {
2377
2377
  agents,
2378
2378
  isLoading,
2379
- create: create2,
2379
+ create: create3,
2380
2380
  edit,
2381
2381
  assign,
2382
2382
  remove,
@@ -3263,12 +3263,12 @@ function tagCombinationMatches(combination, items) {
3263
3263
  );
3264
3264
  return { docs: pass(items.documents), facts: pass(items.facts), threads: pass(items.threads) };
3265
3265
  }
3266
- function narrowTagRow(row2, matches, shown) {
3267
- if (!matches || !row2.links) return row2;
3268
- const docs = (row2.links.docs ?? []).filter((d) => matches.docs.has(d.doc_ext_id));
3269
- const facts = (row2.links.facts ?? []).filter((f) => matches.facts.has(f.fact_ext_id));
3266
+ function narrowTagRow(row2, matches2, shown) {
3267
+ if (!matches2 || !row2.links) return row2;
3268
+ const docs = (row2.links.docs ?? []).filter((d) => matches2.docs.has(d.doc_ext_id));
3269
+ const facts = (row2.links.facts ?? []).filter((f) => matches2.facts.has(f.fact_ext_id));
3270
3270
  const threads = (row2.links.threads ?? []).filter(
3271
- (t) => matches.threads.has(t.conversation_ext_id)
3271
+ (t) => matches2.threads.has(t.conversation_ext_id)
3272
3272
  );
3273
3273
  const cut = (list) => shown === void 0 ? list : list.slice(0, shown);
3274
3274
  return {
@@ -3283,11 +3283,11 @@ function narrowTagRow(row2, matches, shown) {
3283
3283
  }
3284
3284
  };
3285
3285
  }
3286
- function narrowTagTable(table, matches, shown) {
3287
- if (!table || !matches) return table;
3286
+ function narrowTagTable(table, matches2, shown) {
3287
+ if (!table || !matches2) return table;
3288
3288
  return {
3289
3289
  ...table,
3290
- rows: table.rows.map((row2) => narrowTagRow(row2, matches, shown)).filter((row2) => {
3290
+ rows: table.rows.map((row2) => narrowTagRow(row2, matches2, shown)).filter((row2) => {
3291
3291
  const l = row2.links;
3292
3292
  return !!l && l.doc_count + l.fact_count + l.thread_count > 0;
3293
3293
  })
@@ -4494,7 +4494,7 @@ function ConnectedTagsPage() {
4494
4494
  [documents]
4495
4495
  );
4496
4496
  const docOf = (id) => docsById.get(id);
4497
- const matches = useMemo(
4497
+ const matches2 = useMemo(
4498
4498
  () => tagCombinationMatches(combination, {
4499
4499
  documents: documents.map((d) => ({
4500
4500
  id: d.external_id,
@@ -4554,7 +4554,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4554
4554
  tagKindNouns(view).singular
4555
4555
  ] });
4556
4556
  const ctx = {
4557
- filter: { matches, text: filterText, fields: filterFields },
4557
+ filter: { matches: matches2, text: filterText, fields: filterFields },
4558
4558
  onOpenTag: openTag,
4559
4559
  onOpenTaggedItems
4560
4560
  };
@@ -5683,7 +5683,7 @@ function useFieldWrites({
5683
5683
  const createTag = useCreateTag();
5684
5684
  const updateTag = useUpdateTag();
5685
5685
  const deleteTag = useDeleteTag();
5686
- const create2 = useCallback(
5686
+ const create3 = useCallback(
5687
5687
  async (data) => {
5688
5688
  let created;
5689
5689
  try {
@@ -5789,7 +5789,7 @@ ${nested.length} nested ${nested.length === 1 ? "field moves" : "fields move"} t
5789
5789
  },
5790
5790
  [confirm, notify17, deleteTag, tags, workspaceTags, nouns]
5791
5791
  );
5792
- return { create: create2, update, rename, toggleShared, removeMany };
5792
+ return { create: create3, update, rename, toggleShared, removeMany };
5793
5793
  }
5794
5794
  var ownFieldsExport = (props) => /* @__PURE__ */ jsx(ConnectedExportDialog, { ...props, entityType: "TAG", testId: "export-fields-modal" });
5795
5795
  function ConnectedFieldsEditor({
@@ -11375,7 +11375,7 @@ function ConnectedWorkspaceMembers({
11375
11375
  const remove = useRemoveWorkspaceMembers(workspace.external_id);
11376
11376
  const memberWord = (count2) => getEntityLabel("WORKSPACEUSER", count2 === 1 ? "SINGULAR" : "PLURAL");
11377
11377
  const workspaceWord2 = getEntityLabel("WORKSPACE").toLowerCase();
11378
- const inWorkspace = `"${workspace.name}"`;
11378
+ const inWorkspace2 = `"${workspace.name}"`;
11379
11379
  const setRoles = async (rows2, role) => {
11380
11380
  const single = rows2.length === 1 ? memberName(rows2[0].user) : null;
11381
11381
  try {
@@ -11504,7 +11504,7 @@ function ConnectedWorkspaceMembers({
11504
11504
  const members2 = getEntityLabel("WORKSPACEUSER", "PLURAL").toLowerCase();
11505
11505
  const confirmed = await confirm({
11506
11506
  title: `Remove ${count2} ${memberWord(count2)}`,
11507
- message: `Remove ${names} from ${inWorkspace}?
11507
+ message: `Remove ${names} from ${inWorkspace2}?
11508
11508
 
11509
11509
  Note that ${members2} may have saved private content in the ${workspaceWord2} that you cannot see. Once removed they immediately lose access to any content in the ${workspaceWord2}.`
11510
11510
  });
@@ -11512,9 +11512,9 @@ Note that ${members2} may have saved private content in the ${workspaceWord2} th
11512
11512
  try {
11513
11513
  await remove.mutateAsync(selected.map((m) => m.user.external_id));
11514
11514
  setSelected([]);
11515
- notify17(`Removed ${names} from ${inWorkspace}`, "success");
11515
+ notify17(`Removed ${names} from ${inWorkspace2}`, "success");
11516
11516
  } catch {
11517
- notify17(`Failed to remove some users from ${inWorkspace}`, "error");
11517
+ notify17(`Failed to remove some users from ${inWorkspace2}`, "error");
11518
11518
  }
11519
11519
  };
11520
11520
  const changeSelectedRoles = async (role) => {
@@ -13792,8 +13792,8 @@ function WorkspaceCreateForm({
13792
13792
  );
13793
13793
  return;
13794
13794
  }
13795
- const create2 = seed?.create ?? createWorkspaceMutation.mutateAsync;
13796
- const response = await create2({
13795
+ const create3 = seed?.create ?? createWorkspaceMutation.mutateAsync;
13796
+ const response = await create3({
13797
13797
  name: localWorkspaceName.trim(),
13798
13798
  description: localWorkspaceDescription,
13799
13799
  projectId: projectExtId
@@ -17277,7 +17277,7 @@ function useConnectedWorkspaceList({
17277
17277
  };
17278
17278
  }
17279
17279
  var WorkspaceTableView = lazy(
17280
- () => import('../WorkspaceTableView-2FL5OX6M.js').then((m) => ({ default: m.WorkspaceTableView }))
17280
+ () => import('../WorkspaceTableView-DYABS53K.js').then((m) => ({ default: m.WorkspaceTableView }))
17281
17281
  );
17282
17282
  var WORKSPACES_TAB_ID = "workspaces";
17283
17283
  var renderMember = (user, size) => /* @__PURE__ */ jsx(ConnectedUserEntity, { user, size, variant: "icon" });
@@ -19063,10 +19063,10 @@ function ConnectedContactCardForm({
19063
19063
  const [errors, setErrors] = useState({});
19064
19064
  const [serverError, setServerError] = useState(null);
19065
19065
  const [duplicateOf, setDuplicateOf] = useState(null);
19066
- const create2 = useCreateContact();
19066
+ const create3 = useCreateContact();
19067
19067
  const update = useUpdateContact();
19068
19068
  const link = useLinkContact();
19069
- const saving = create2.isPending || update.isPending || link.isPending;
19069
+ const saving = create3.isPending || update.isPending || link.isPending;
19070
19070
  const linked = !!contact?.email;
19071
19071
  const locked = !!contact && !contact.card;
19072
19072
  const set = (key, value) => setForm((f) => ({ ...f, [key]: value }));
@@ -19094,7 +19094,7 @@ function ConnectedContactCardForm({
19094
19094
  };
19095
19095
  if (invite && email) {
19096
19096
  if (contact) link.mutate({ contact, email, card }, { onSuccess: onInvited, onError });
19097
- else create2.mutate({ email, card, invite: true }, { onSuccess: onInvited, onError });
19097
+ else create3.mutate({ email, card, invite: true }, { onSuccess: onInvited, onError });
19098
19098
  return;
19099
19099
  }
19100
19100
  const onSuccess = () => {
@@ -19103,7 +19103,7 @@ function ConnectedContactCardForm({
19103
19103
  };
19104
19104
  if (contact?.external_id)
19105
19105
  update.mutate({ id: contact.external_id, card }, { onSuccess, onError });
19106
- else create2.mutate({ card, invite: false }, { onSuccess, onError });
19106
+ else create3.mutate({ card, invite: false }, { onSuccess, onError });
19107
19107
  };
19108
19108
  if (locked)
19109
19109
  return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", "data-testid": "contact-card-locked", children: [
@@ -21113,7 +21113,7 @@ function ConnectedMessengerList({
21113
21113
  }));
21114
21114
  const all = [...decorated, ...invitationRows];
21115
21115
  if (!filters?.size) return all;
21116
- const matches = {
21116
+ const matches2 = {
21117
21117
  unread: (row2) => row2.unreadCount > 0,
21118
21118
  // A person is muted, not a group that happens to list them first.
21119
21119
  muted: (row2) => !isGroupChat(row2.chat) && mutedUsers.has(row2.peer.external_id),
@@ -21122,7 +21122,7 @@ function ConnectedMessengerList({
21122
21122
  ...INVITATION_ROW_FILTERS
21123
21123
  };
21124
21124
  return all.filter(
21125
- (row2) => Object.entries(matches).every(([id, isMatch]) => {
21125
+ (row2) => Object.entries(matches2).every(([id, isMatch]) => {
21126
21126
  const state = filters.get(id) ?? null;
21127
21127
  if (state === null) return true;
21128
21128
  return state === "include" ? isMatch(row2) : !isMatch(row2);
@@ -22036,7 +22036,7 @@ var TILE_TEST_IDS = {
22036
22036
  function DashboardStart({ addMenu, onCreateNew }) {
22037
22037
  const { dashboard: workflows } = useWorkflowDefinitions();
22038
22038
  const { isMember, role } = useCurrentWorkspace();
22039
- const canWrite = isMember && role !== "guest";
22039
+ const canWrite2 = isMember && role !== "guest";
22040
22040
  const [activeId, setActiveId] = useState(null);
22041
22041
  return /* @__PURE__ */ jsx(
22042
22042
  ConnectedWorkflowStart,
@@ -22046,7 +22046,7 @@ function DashboardStart({ addMenu, onCreateNew }) {
22046
22046
  testId: "workspace-dashboard-quick-actions",
22047
22047
  activeId,
22048
22048
  onActiveIdChange: setActiveId,
22049
- addFilesAction: addMenu({ canUpload: canWrite }),
22049
+ addFilesAction: addMenu({ canUpload: canWrite2 }),
22050
22050
  extraTiles: onCreateNew ? [
22051
22051
  {
22052
22052
  id: "create-file",
@@ -22054,13 +22054,13 @@ function DashboardStart({ addMenu, onCreateNew }) {
22054
22054
  title: "Create a file",
22055
22055
  description: "Write a doc, or record a voice note, photo or video",
22056
22056
  onSelect: onCreateNew,
22057
- disabled: !canWrite,
22057
+ disabled: !canWrite2,
22058
22058
  disabledReason: "Only workspace members can add files",
22059
22059
  testId: "workspace-dashboard-quick-action-create"
22060
22060
  }
22061
22061
  ] : void 0,
22062
22062
  tileTestId: (workflow) => TILE_TEST_IDS[workflow.id],
22063
- disabledReason: (workflow) => !canWrite && workflow.id === ANNOTATE_ID ? "Only workspace members can annotate files" : void 0
22063
+ disabledReason: (workflow) => !canWrite2 && workflow.id === ANNOTATE_ID ? "Only workspace members can annotate files" : void 0
22064
22064
  }
22065
22065
  );
22066
22066
  }
@@ -22507,6 +22507,528 @@ function ConnectedAskField({
22507
22507
  )
22508
22508
  ] });
22509
22509
  }
22510
+ function brandMark(brand, placement) {
22511
+ return typeof brand.logo === "function" ? brand.logo(placement) : brand.logo;
22512
+ }
22513
+ var ShellNavigationContext = createContext(null);
22514
+ function useShellNavigation() {
22515
+ return useContext(ShellNavigationContext);
22516
+ }
22517
+ var isExternal = (item) => item.external === true || /^[a-z][a-z0-9+.-]*:/i.test(item.to);
22518
+ function pathOf(address) {
22519
+ const path = address.split(/[?#]/)[0] || "/";
22520
+ return path.length > 1 ? path.replace(/\/+$/, "") || "/" : path;
22521
+ }
22522
+ var queryOf = (address) => new URLSearchParams(address.split("#")[0].split("?")[1] ?? "");
22523
+ function matchScore(item, address) {
22524
+ if (isExternal(item)) return -1;
22525
+ const path = pathOf(address);
22526
+ const to = pathOf(item.to);
22527
+ const exact = path === to;
22528
+ if (!exact && (item.end || !path.startsWith(to === "/" ? "/" : `${to}/`))) return -1;
22529
+ const wanted = [...queryOf(item.to)];
22530
+ const here = queryOf(address);
22531
+ const query = !wanted.length ? 1 : wanted.every(([k, v]) => here.getAll(k).includes(v)) ? 2 : 0;
22532
+ return to.length * 3 + (exact ? query : 1);
22533
+ }
22534
+ var inWorkspace = ({ workspaceId }) => !!workspaceId;
22535
+ var canWrite = ({ isMember, role }) => isMember && role !== "guest";
22536
+ var notTemporary = ({ isTemporaryAccess }) => !isTemporaryAccess;
22537
+ function setDocumentSourceFilter(source) {
22538
+ const { documentFilters, setDocumentFilters } = useFilesPrefs.getState();
22539
+ setDocumentFilters({
22540
+ ...documentFilters,
22541
+ source_uploaded: source === "uploaded" ? "include" : null,
22542
+ source_generated: source === "generated" ? "include" : null
22543
+ });
22544
+ }
22545
+ function createBuiltinActions(environment, session) {
22546
+ const { openDialog: openDialog2, openSettings, openProcessing } = environment;
22547
+ const startWorkflowOnDocuments = (workflowId) => {
22548
+ const { viewingDocument, selectedDocumentIds } = session.getState();
22549
+ const documents = viewingDocument ? [viewingDocument.id] : [...selectedDocumentIds];
22550
+ openWorkflowLaunch({ workflowId, context: { documents } });
22551
+ };
22552
+ const setFilesView = (mode) => () => useFilesPrefs.getState().setViewMode(mode);
22553
+ const actions = [
22554
+ {
22555
+ id: "goto-user-settings",
22556
+ label: "Go to Account settings",
22557
+ category: "Navigate",
22558
+ icon: "UserCog",
22559
+ keywords: ["profile", "preferences", "account"],
22560
+ // The same as `open-user-settings`: dispatch only.
22561
+ listed: false,
22562
+ run: () => openSettings()
22563
+ },
22564
+ {
22565
+ id: "create-workspace",
22566
+ label: "Create a workspace",
22567
+ category: "Workspace",
22568
+ icon: "Plus",
22569
+ keywords: ["new workspace", "add workspace"],
22570
+ available: ({ canCreateProjects }) => canCreateProjects !== false,
22571
+ run: () => openDialog2("createWorkspace")
22572
+ },
22573
+ {
22574
+ id: "upload-documents",
22575
+ label: "Upload documents",
22576
+ category: "Workspace",
22577
+ icon: "Upload",
22578
+ keywords: ["add files", "import", "attach files"],
22579
+ available: canWrite,
22580
+ run: () => openDialog2("upload")
22581
+ },
22582
+ !!openProcessing && {
22583
+ id: "view-processing-status",
22584
+ label: "View processing status",
22585
+ category: "Workspace",
22586
+ icon: "ClipboardList",
22587
+ keywords: ["indexing", "progress", "jobs", "tasks"],
22588
+ available: inWorkspace,
22589
+ run: () => openProcessing()
22590
+ },
22591
+ {
22592
+ id: "transfer-workspace",
22593
+ label: "Export, copy or move workspace",
22594
+ category: "Workspace",
22595
+ icon: "FolderInput",
22596
+ keywords: ["export", "download", "copy", "move", "backup", "transfer", "zip"],
22597
+ available: ({ isMember }) => isMember,
22598
+ run: () => openDialog2("transfer")
22599
+ },
22600
+ {
22601
+ id: "export-documents",
22602
+ label: "Export documents",
22603
+ category: "Documents",
22604
+ icon: "Files",
22605
+ keywords: ["download", "csv", "excel"],
22606
+ available: inWorkspace,
22607
+ run: () => useFilesDialogs.getState().setExportOpen(true)
22608
+ },
22609
+ {
22610
+ id: "bulk-tag-documents",
22611
+ label: "Tag selected documents",
22612
+ category: "Documents",
22613
+ icon: "Tags",
22614
+ keywords: ["labels", "categorize", "bulk tag"],
22615
+ available: inWorkspace,
22616
+ run: () => useFilesDialogs.getState().setBulkTagsOpen(true)
22617
+ },
22618
+ {
22619
+ id: "move-to-folder",
22620
+ label: "Move documents to folder",
22621
+ category: "Documents",
22622
+ icon: "FolderInput",
22623
+ keywords: ["organize", "relocate"],
22624
+ available: inWorkspace,
22625
+ run: () => useFilesDialogs.getState().openMove()
22626
+ },
22627
+ {
22628
+ id: "ai-review-documents",
22629
+ label: "AI review documents",
22630
+ category: "Documents",
22631
+ icon: "Sparkles",
22632
+ keywords: ["auto tag", "analyze", "suggest tags"],
22633
+ available: inWorkspace,
22634
+ run: () => useAiReviewStore.getState().setOpen(true)
22635
+ },
22636
+ {
22637
+ id: "docs-grid-view",
22638
+ label: "Switch to grid view",
22639
+ category: "Documents",
22640
+ icon: "LayoutGrid",
22641
+ keywords: ["table", "spreadsheet"],
22642
+ available: inWorkspace,
22643
+ run: setFilesView("grid")
22644
+ },
22645
+ {
22646
+ id: "docs-navigator-view",
22647
+ label: "Switch to navigator view",
22648
+ category: "Documents",
22649
+ icon: "FolderTree",
22650
+ keywords: ["folders", "tree"],
22651
+ available: inWorkspace,
22652
+ run: setFilesView("navigator")
22653
+ },
22654
+ {
22655
+ id: "docs-explorer-view",
22656
+ label: "Switch to explorer view",
22657
+ category: "Documents",
22658
+ icon: "Compass",
22659
+ keywords: ["browse", "gallery"],
22660
+ available: inWorkspace,
22661
+ run: setFilesView("explorer")
22662
+ },
22663
+ {
22664
+ id: "show-uploaded-docs",
22665
+ label: "Show uploaded documents",
22666
+ category: "Documents",
22667
+ icon: "Upload",
22668
+ keywords: ["filter", "source", "originals"],
22669
+ available: inWorkspace,
22670
+ run: () => setDocumentSourceFilter("uploaded")
22671
+ },
22672
+ {
22673
+ id: "show-generated-docs",
22674
+ label: "Show AI-generated documents",
22675
+ category: "Documents",
22676
+ icon: "Sparkles",
22677
+ keywords: ["filter", "source", "artifacts"],
22678
+ available: inWorkspace,
22679
+ run: () => setDocumentSourceFilter("generated")
22680
+ },
22681
+ {
22682
+ id: "clear-document-selection",
22683
+ label: "Clear document selection",
22684
+ category: "Documents",
22685
+ icon: "SquareDashedMousePointer",
22686
+ keywords: ["deselect", "unselect"],
22687
+ available: inWorkspace,
22688
+ run: () => session.setSelectedDocumentIds([])
22689
+ },
22690
+ {
22691
+ id: "summarise-document",
22692
+ label: "Summarise a document",
22693
+ category: "Documents",
22694
+ icon: "FileText",
22695
+ keywords: ["summary", "brief", "overview"],
22696
+ available: inWorkspace,
22697
+ run: () => startWorkflowOnDocuments("summarise")
22698
+ },
22699
+ {
22700
+ id: "translate-document",
22701
+ label: "Translate a document",
22702
+ category: "Documents",
22703
+ icon: "Sparkles",
22704
+ keywords: ["translation", "language"],
22705
+ available: inWorkspace,
22706
+ run: () => startWorkflowOnDocuments("translate")
22707
+ },
22708
+ {
22709
+ id: "attach-context",
22710
+ label: "Attach documents to conversation",
22711
+ category: "Conversation",
22712
+ icon: "Paperclip",
22713
+ keywords: ["context", "add documents", "reference"],
22714
+ available: inWorkspace,
22715
+ run: () => openDialog2("conversationDocuments")
22716
+ },
22717
+ {
22718
+ id: "conversation-settings",
22719
+ label: "Open conversation settings",
22720
+ category: "Conversation",
22721
+ icon: "Settings2",
22722
+ keywords: ["model", "config", "options"],
22723
+ run: () => openDialog2("conversationSettings")
22724
+ },
22725
+ {
22726
+ id: "open-skills-library",
22727
+ label: "Browse skills",
22728
+ category: "Conversation",
22729
+ icon: "Library",
22730
+ keywords: ["skills", "start", "summarise", "translate", "commands"],
22731
+ available: ({ isFeatureOn }) => isFeatureOn("skills"),
22732
+ run: () => openDialog2("skillsBrowser")
22733
+ },
22734
+ {
22735
+ id: "clear-conversation-context",
22736
+ label: "Clear attached documents",
22737
+ category: "Conversation",
22738
+ icon: "Eraser",
22739
+ keywords: ["remove context", "detach", "reset"],
22740
+ available: inWorkspace,
22741
+ // Each conversation's documents, cleared by choice: an empty chat does not pick them up again.
22742
+ run: () => Object.keys(session.getState().conversationDocuments).forEach(
22743
+ (id) => session.setConversationDocuments(id, [])
22744
+ )
22745
+ },
22746
+ {
22747
+ id: "open-invite-contacts",
22748
+ label: "Invite contacts",
22749
+ category: "Sharing",
22750
+ icon: "UserPlus",
22751
+ keywords: ["add people", "invite", "share"],
22752
+ run: () => openDialog2("inviteContacts")
22753
+ },
22754
+ {
22755
+ id: "open-projects",
22756
+ label: "Open projects",
22757
+ category: "Account",
22758
+ icon: "FolderKanban",
22759
+ keywords: ["plans", "billing groups", "projects"],
22760
+ available: notTemporary,
22761
+ run: () => environment.openProject()
22762
+ },
22763
+ {
22764
+ id: "open-user-settings",
22765
+ label: "Open account settings",
22766
+ category: "Account",
22767
+ icon: "UserCog",
22768
+ keywords: ["profile", "preferences", "account"],
22769
+ run: () => openSettings()
22770
+ },
22771
+ {
22772
+ id: "view-pro-features",
22773
+ label: "See Pro features",
22774
+ category: "Account",
22775
+ icon: "Crown",
22776
+ keywords: ["upgrade", "premium", "subscription"],
22777
+ available: notTemporary,
22778
+ run: () => openDialog2("welcome")
22779
+ },
22780
+ {
22781
+ id: "logout",
22782
+ label: "Log out",
22783
+ category: "Account",
22784
+ icon: "LogOut",
22785
+ keywords: ["sign out", "exit"],
22786
+ run: () => openDialog2("logout")
22787
+ },
22788
+ {
22789
+ id: "start-welcome-tour",
22790
+ label: "Start the getting-started tour",
22791
+ category: "Help",
22792
+ icon: "Compass",
22793
+ keywords: ["onboarding", "walkthrough", "tutorial"],
22794
+ available: (context) => notTemporary(context) && context.isFeatureOn("welcomeJourney"),
22795
+ // The getting-started checklist, fresh, with the helper header on for the session.
22796
+ run: () => startWelcomeReplay(session)
22797
+ },
22798
+ {
22799
+ id: "mute-notifications",
22800
+ label: "Mute notifications",
22801
+ category: "Help",
22802
+ icon: "BellOff",
22803
+ keywords: ["silence", "do not disturb", "quiet"],
22804
+ run: () => useNotify.getState().setMuted(true)
22805
+ },
22806
+ {
22807
+ id: "work-offline",
22808
+ label: "Work offline",
22809
+ category: "Help",
22810
+ icon: "WifiOff",
22811
+ keywords: ["offline mode", "disconnect"],
22812
+ run: () => setWorkOfflineIn(session, true)
22813
+ }
22814
+ ];
22815
+ return Object.fromEntries(
22816
+ actions.filter((action) => !!action).map((action) => [action.id, action])
22817
+ );
22818
+ }
22819
+ var ACTION_ICONS = {
22820
+ Bell: Bell,
22821
+ BellOff: BellOff,
22822
+ Bot: Bot,
22823
+ ClipboardList,
22824
+ Columns3,
22825
+ Compass,
22826
+ Crown,
22827
+ Eraser,
22828
+ FileText: FileText,
22829
+ Files,
22830
+ FolderInput: FolderInput,
22831
+ FolderKanban: FolderKanban,
22832
+ FolderTree,
22833
+ LayoutGrid,
22834
+ Library,
22835
+ LogOut: LogOut,
22836
+ Megaphone,
22837
+ MessagesSquare: MessagesSquare,
22838
+ Paperclip: Paperclip,
22839
+ Plus: Plus,
22840
+ Search: Search,
22841
+ Send: Send,
22842
+ Settings,
22843
+ Settings2,
22844
+ Sparkles: Sparkles,
22845
+ SquareDashedMousePointer,
22846
+ Tags: Tags,
22847
+ Upload: Upload,
22848
+ UserCog,
22849
+ UserPlus: UserPlus,
22850
+ Users: Users,
22851
+ WifiOff,
22852
+ Workflow: Workflow
22853
+ };
22854
+ var actionIcon = (name) => ACTION_ICONS[name] ?? Zap;
22855
+ var DEFAULT_COMMAND_PALETTE_LABELS = {
22856
+ placeholder: "Type a command, a page, or a question\u2026",
22857
+ title: "Command palette",
22858
+ pages: "Pages",
22859
+ ask: "Ask AI",
22860
+ search: "Search documents for",
22861
+ empty: "Nothing matches."
22862
+ };
22863
+ var usePaletteOpen = create(() => false);
22864
+ var openCommandPalette = () => usePaletteOpen.setState(true, true);
22865
+ var APPLE = /Mac|iPhone|iPad|iPod/;
22866
+ function isPaletteShortcut(event, isApple = typeof navigator !== "undefined" && APPLE.test(navigator.platform || navigator.userAgent)) {
22867
+ if (event.defaultPrevented || event.shiftKey || event.altKey) return false;
22868
+ if (event.key.toLowerCase() !== "k") return false;
22869
+ if (isApple ? !event.metaKey || event.ctrlKey : !event.ctrlKey || event.metaKey) return false;
22870
+ const target = event.target;
22871
+ return !(target instanceof Element && target.closest(
22872
+ '[contenteditable]:not([contenteditable="false"]), [data-docx-editor], .docx-editor'
22873
+ ));
22874
+ }
22875
+ function matches(query, ...fields) {
22876
+ const haystack = fields.flat().join(" ").toLowerCase();
22877
+ return query.toLowerCase().split(/\s+/).every((word) => haystack.includes(word));
22878
+ }
22879
+ function ConnectedCommandPalette({
22880
+ navigation: navigationProp,
22881
+ onNavigate,
22882
+ actions,
22883
+ labels: labelOverrides
22884
+ }) {
22885
+ const labels = { ...DEFAULT_COMMAND_PALETTE_LABELS, ...labelOverrides };
22886
+ const isOpen = usePaletteOpen();
22887
+ const shellItems = useShellNavigation()?.visibleItems;
22888
+ const navigation = navigationProp ?? shellItems ?? [];
22889
+ const setOpen = (open) => usePaletteOpen.setState(open, true);
22890
+ const [query, setQuery] = useState("");
22891
+ const listRef = useRef(null);
22892
+ const environment = useBlocksEnvironment();
22893
+ const session = useArbiSessionStore();
22894
+ const { workspaceId } = useConnectedWorkspace();
22895
+ const { isMember, role } = useCurrentWorkspace();
22896
+ const context = {
22897
+ workspaceId,
22898
+ isMember,
22899
+ role,
22900
+ isTemporaryAccess: useArbiSession().user?.temporary_access_only === true,
22901
+ canCreateProjects: useCanCreateProjects(),
22902
+ isFeatureOn: useFeatureCheck()
22903
+ };
22904
+ const { ask, search } = useWorkspaceAsk();
22905
+ useEffect(() => {
22906
+ const onKey = (event) => {
22907
+ if (!isPaletteShortcut(event)) return;
22908
+ event.preventDefault();
22909
+ usePaletteOpen.setState((open) => !open, true);
22910
+ };
22911
+ window.addEventListener("keydown", onKey);
22912
+ return () => window.removeEventListener("keydown", onKey);
22913
+ }, []);
22914
+ useLayoutEffect(() => {
22915
+ listRef.current?.scrollTo?.({ top: 0 });
22916
+ }, [query]);
22917
+ useEffect(() => {
22918
+ if (!isOpen) setQuery("");
22919
+ }, [isOpen]);
22920
+ const catalogue = useMemo(() => {
22921
+ const all = {
22922
+ ...createBuiltinActions(environment, session),
22923
+ ...actions
22924
+ };
22925
+ return Object.values(all).filter((action) => !!action);
22926
+ }, [environment, session, actions]);
22927
+ const text = query.trim();
22928
+ const pages = navigation.filter((item) => !text || matches(text, item.label, item.keywords));
22929
+ const groups = /* @__PURE__ */ new Map();
22930
+ for (const action of catalogue) {
22931
+ if (action.listed === false || action.available && !action.available(context)) continue;
22932
+ if (text && !matches(text, action.label, action.category, action.keywords)) continue;
22933
+ groups.set(action.category, [...groups.get(action.category) ?? [], action]);
22934
+ }
22935
+ const choose = (run) => {
22936
+ setOpen(false);
22937
+ run();
22938
+ };
22939
+ return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs(
22940
+ DialogContent,
22941
+ {
22942
+ className: "top-[12%] max-w-2xl translate-y-0 gap-0 overflow-hidden p-0",
22943
+ "data-testid": "command-palette",
22944
+ children: [
22945
+ /* @__PURE__ */ jsx(DialogTitle, { className: "sr-only", children: labels.title }),
22946
+ /* @__PURE__ */ jsx(DialogDescription, { className: "sr-only", children: labels.placeholder }),
22947
+ /* @__PURE__ */ jsxs(Command, { shouldFilter: false, loop: true, vimBindings: false, children: [
22948
+ /* @__PURE__ */ jsx(
22949
+ CommandInput,
22950
+ {
22951
+ value: query,
22952
+ onValueChange: setQuery,
22953
+ placeholder: labels.placeholder,
22954
+ className: "h-12 text-base",
22955
+ "data-testid": "command-palette-input"
22956
+ }
22957
+ ),
22958
+ /* @__PURE__ */ jsxs(CommandList, { ref: listRef, className: "max-h-[60vh] p-1", children: [
22959
+ /* @__PURE__ */ jsx(CommandEmpty, { className: "py-6 text-center text-sm text-muted-foreground", children: labels.empty }),
22960
+ pages.length > 0 && /* @__PURE__ */ jsx(CommandGroup, { heading: labels.pages, children: pages.map((item) => /* @__PURE__ */ jsxs(
22961
+ CommandItem,
22962
+ {
22963
+ value: `page:${item.id}`,
22964
+ onSelect: () => choose(() => onNavigate ? onNavigate(item) : environment.navigate(item.to)),
22965
+ "data-testid": `command-palette-nav-${item.id}`,
22966
+ children: [
22967
+ /* @__PURE__ */ jsx(item.icon, { className: "text-muted-foreground" }),
22968
+ /* @__PURE__ */ jsx("span", { className: "flex-1", children: item.label }),
22969
+ /* @__PURE__ */ jsx(ArrowRight, { className: "text-muted-foreground" })
22970
+ ]
22971
+ },
22972
+ item.id
22973
+ )) }),
22974
+ [...groups].map(([category, rows]) => /* @__PURE__ */ jsx(CommandGroup, { heading: category, children: rows.map((action) => {
22975
+ const Icon = actionIcon(action.icon);
22976
+ return /* @__PURE__ */ jsxs(
22977
+ CommandItem,
22978
+ {
22979
+ value: `action:${action.id}`,
22980
+ onSelect: () => choose(action.run),
22981
+ "data-testid": `command-palette-action-${action.id}`,
22982
+ children: [
22983
+ /* @__PURE__ */ jsx(Icon, { className: "text-muted-foreground" }),
22984
+ /* @__PURE__ */ jsx("span", { children: action.label })
22985
+ ]
22986
+ },
22987
+ action.id
22988
+ );
22989
+ }) }, category)),
22990
+ text && workspaceId && /* @__PURE__ */ jsxs(CommandGroup, { children: [
22991
+ /* @__PURE__ */ jsxs(
22992
+ CommandItem,
22993
+ {
22994
+ value: "ask",
22995
+ onSelect: () => choose(() => ask(text)),
22996
+ "data-testid": "command-palette-ask",
22997
+ children: [
22998
+ /* @__PURE__ */ jsx(Sparkles, { className: "text-ai-accent" }),
22999
+ /* @__PURE__ */ jsxs("span", { className: "truncate", children: [
23000
+ labels.ask,
23001
+ ": \u201C",
23002
+ text,
23003
+ "\u201D"
23004
+ ] })
23005
+ ]
23006
+ }
23007
+ ),
23008
+ /* @__PURE__ */ jsxs(
23009
+ CommandItem,
23010
+ {
23011
+ value: "search",
23012
+ onSelect: () => choose(() => search(text)),
23013
+ "data-testid": "command-palette-search",
23014
+ children: [
23015
+ /* @__PURE__ */ jsx(Search, { className: "text-muted-foreground" }),
23016
+ /* @__PURE__ */ jsxs("span", { className: "truncate", children: [
23017
+ labels.search,
23018
+ " \u201C",
23019
+ text,
23020
+ "\u201D"
23021
+ ] })
23022
+ ]
23023
+ }
23024
+ )
23025
+ ] })
23026
+ ] })
23027
+ ] })
23028
+ ]
23029
+ }
23030
+ ) });
23031
+ }
22510
23032
  var VENDOR_PRODUCTS = {
22511
23033
  microsoft: [{ key: "outlook" }, { key: "onedrive", product: "onedrive" }],
22512
23034
  gmail: [{ key: "gmail" }, { key: "googledrive", product: "googledrive" }],
@@ -27110,7 +27632,7 @@ function BookingPagesPanel({ defaultTimeZone, className }) {
27110
27632
  var selectClass4 = "h-9 w-full rounded-md border border-input bg-background px-2 text-sm text-foreground shadow-sm";
27111
27633
  function CreateRoomForm({ zone, onDone }) {
27112
27634
  const { notify: notify17 } = useBlocksEnvironment();
27113
- const create2 = useCreateRoom();
27635
+ const create3 = useCreateRoom();
27114
27636
  const [name, setName] = useState("");
27115
27637
  const [type, setType] = useState("room");
27116
27638
  const [capacity, setCapacity] = useState("");
@@ -27130,7 +27652,7 @@ function CreateRoomForm({ zone, onDone }) {
27130
27652
  const cap = capacity.trim() ? Number(capacity) : null;
27131
27653
  if (cap !== null && (!Number.isInteger(cap) || cap < 1))
27132
27654
  return setError("Capacity must be a whole number");
27133
- create2.mutate(
27655
+ create3.mutate(
27134
27656
  {
27135
27657
  name: name.trim(),
27136
27658
  type,
@@ -27221,8 +27743,8 @@ function CreateRoomForm({ zone, onDone }) {
27221
27743
  error && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-destructive", children: error }),
27222
27744
  /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
27223
27745
  /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", onClick: onDone, children: "Cancel" }),
27224
- /* @__PURE__ */ jsxs(Button, { type: "submit", disabled: create2.isPending, children: [
27225
- create2.isPending && /* @__PURE__ */ jsx(Loader2, { className: "mr-1 size-4 animate-spin" }),
27746
+ /* @__PURE__ */ jsxs(Button, { type: "submit", disabled: create3.isPending, children: [
27747
+ create3.isPending && /* @__PURE__ */ jsx(Loader2, { className: "mr-1 size-4 animate-spin" }),
27226
27748
  "Create"
27227
27749
  ] })
27228
27750
  ] })
@@ -30622,13 +31144,126 @@ function ConnectedBulkTagCrumbs() {
30622
31144
  }
30623
31145
  );
30624
31146
  }
30625
- var CheckboxCellRenderer = memo(function CheckboxCellRenderer2({
30626
- params,
30627
- tagId,
30628
- tagName,
30629
- tagColor,
30630
- isMember
30631
- }) {
31147
+ var NO_USERS = [];
31148
+ var NO_DOCUMENTS2 = [];
31149
+ var NO_FOLDER_UPDATE = () => {
31150
+ };
31151
+ function DocumentNameCellRenderer(params) {
31152
+ const {
31153
+ data: doc,
31154
+ canEdit,
31155
+ onOpenDocument,
31156
+ onReviewDocument,
31157
+ onDocumentChat,
31158
+ onDownloadDocument,
31159
+ onMoveDocument,
31160
+ onDeleteDocument
31161
+ } = params;
31162
+ if (!doc) return null;
31163
+ const context = params.context;
31164
+ return /* @__PURE__ */ jsx(
31165
+ DocumentNameCell,
31166
+ {
31167
+ doc,
31168
+ canEdit: canEdit(params),
31169
+ users: context?.getWorkspaceUsers?.() ?? NO_USERS,
31170
+ onOpen: () => onOpenDocument(doc.external_id),
31171
+ onReview: onReviewDocument && (() => onReviewDocument(doc.external_id)),
31172
+ onDocumentChat: onDocumentChat && (() => onDocumentChat(doc.external_id)),
31173
+ onRename: () => params.api.startEditingCell({ rowIndex: params.node.rowIndex ?? 0, colKey: "title" }),
31174
+ onDownload: () => onDownloadDocument?.(doc),
31175
+ onMove: () => onMoveDocument?.(doc.external_id),
31176
+ onDelete: () => onDeleteDocument?.(doc.external_id)
31177
+ }
31178
+ );
31179
+ }
31180
+ function SharedCellRenderer(params) {
31181
+ if (!params.data) return null;
31182
+ return /* @__PURE__ */ jsx(
31183
+ DocumentSharedCell,
31184
+ {
31185
+ document: params.data,
31186
+ disabled: !params.canToggle(params),
31187
+ disabledTooltip: "Only the owner can change visibility",
31188
+ onToggle: params.onToggleShared
31189
+ }
31190
+ );
31191
+ }
31192
+ function StatusCellRenderer(params) {
31193
+ if (!params.data) return null;
31194
+ const context = params.context;
31195
+ return /* @__PURE__ */ jsx(
31196
+ StatusCell,
31197
+ {
31198
+ doc: params.data,
31199
+ onStatusClick: params.onStatusClick,
31200
+ actions: context?.getHostActions?.()
31201
+ }
31202
+ );
31203
+ }
31204
+ function LabelsCellRenderer(params) {
31205
+ if (!params.data) return null;
31206
+ const context = params.context;
31207
+ return /* @__PURE__ */ jsx(
31208
+ DocumentLabelsCell,
31209
+ {
31210
+ doc: params.data,
31211
+ labels: params.labels,
31212
+ createDocTag: params.createDocTag,
31213
+ deleteDocTag: params.deleteDocTag,
31214
+ createTag: params.createTag,
31215
+ isMember: params.isMember,
31216
+ rowHeight: params.node.rowHeight ?? 52,
31217
+ actions: context?.getHostActions?.()
31218
+ }
31219
+ );
31220
+ }
31221
+ function RelatedDocsCellRenderer(params) {
31222
+ if (!params.data) return null;
31223
+ const context = params.context;
31224
+ const related = context?.getRelatedDocs?.().get(params.data.external_id);
31225
+ if (!related || getRelatedTotal(related) === 0) return null;
31226
+ const { onOpenDocument, onDeleteDocument } = params;
31227
+ return /* @__PURE__ */ jsx(
31228
+ RelatedDocumentsCell,
31229
+ {
31230
+ currentDoc: params.data,
31231
+ related,
31232
+ viewingDocumentId: context?.getViewingDocumentId?.() ?? null,
31233
+ onDocumentClick: onOpenDocument,
31234
+ onDelete: (doc) => onDeleteDocument?.(doc.external_id),
31235
+ onCompare: context?.getHostActions?.().compareDocuments
31236
+ }
31237
+ );
31238
+ }
31239
+ function FolderCellRenderer(params) {
31240
+ if (!params.data) return null;
31241
+ const context = params.context;
31242
+ return /* @__PURE__ */ jsx(
31243
+ DocumentFolderCell,
31244
+ {
31245
+ document: params.data,
31246
+ isEditable: params.canEdit(params),
31247
+ allDocuments: context?.getDocuments?.() ?? NO_DOCUMENTS2,
31248
+ onUpdateFolder: context?.updateFolder ?? NO_FOLDER_UPDATE
31249
+ }
31250
+ );
31251
+ }
31252
+ function CreatedByCellRenderer(params) {
31253
+ if (!params.data) return null;
31254
+ const context = params.context;
31255
+ const creator = context?.getWorkspaceUsers?.().find((u) => u.external_id === params.data.created_by_ext_id);
31256
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx(
31257
+ UserAvatar,
31258
+ {
31259
+ user: creator,
31260
+ isMe: !!creator && creator.external_id === context?.getCurrentUserId?.(),
31261
+ onOpen: context?.getHostActions?.().openUser
31262
+ }
31263
+ ) });
31264
+ }
31265
+ function CheckboxCellRenderer(params) {
31266
+ const { tagId, tagName, tagColor, isMember } = params;
30632
31267
  if (!params.data) return null;
30633
31268
  const isChecked = params.value === true;
30634
31269
  return /* @__PURE__ */ jsx(
@@ -30641,12 +31276,9 @@ var CheckboxCellRenderer = memo(function CheckboxCellRenderer2({
30641
31276
  onToggle: () => params.node.setDataValue(tagId, !isChecked)
30642
31277
  }
30643
31278
  );
30644
- });
30645
- var TagHeaderComponent = memo(function TagHeaderComponent2({
30646
- params,
30647
- tag,
30648
- isCheckbox
30649
- }) {
31279
+ }
31280
+ function TagHeaderComponent(params) {
31281
+ const { tag, isCheckbox } = params;
30650
31282
  const [sort, setSort] = useState(params.column.getSort());
30651
31283
  useEffect(() => {
30652
31284
  const updateSort = () => setSort(params.column.getSort());
@@ -30664,7 +31296,7 @@ var TagHeaderComponent = memo(function TagHeaderComponent2({
30664
31296
  label: /* @__PURE__ */ jsx(ConnectedTagEntity, { tag, size: "sm" })
30665
31297
  }
30666
31298
  );
30667
- });
31299
+ }
30668
31300
  var TAG_FILTER_PARAMS = {
30669
31301
  buttons: ["reset", "apply"],
30670
31302
  closeOnApply: true
@@ -30738,23 +31370,21 @@ function createTagColumn({
30738
31370
  headerClass: isCheckbox ? "ag-header-cell-center" : void 0,
30739
31371
  // Custom comparator for sorting - use factory to create stable function
30740
31372
  comparator: createTagComparator(tag.tag_type.type),
30741
- cellRenderer: isCheckbox ? (params) => /* @__PURE__ */ jsx(
30742
- CheckboxCellRenderer,
30743
- {
30744
- params,
30745
- tagId: tag.external_id,
30746
- tagName: tag.name,
30747
- tagColor,
30748
- isMember
30749
- }
30750
- ) : void 0,
30751
- // Use default rendering for text/number/select - shows value with truncation
31373
+ // Text/number/select use the default rendering (the value, truncated).
31374
+ cellRenderer: isCheckbox ? CheckboxCellRenderer : void 0,
31375
+ cellRendererParams: isCheckbox ? {
31376
+ tagId: tag.external_id,
31377
+ tagName: tag.name,
31378
+ tagColor,
31379
+ isMember
31380
+ } : void 0,
30752
31381
  cellEditor: isSelect ? MultiSelectCellEditor : isText ? "agLargeTextCellEditor" : void 0,
30753
31382
  cellEditorParams: isSelect ? createMultiSelectCellEditorParams(tag.tag_type.options || []) : isText ? { rows: 8, cols: 50 } : void 0,
30754
31383
  cellEditorPopup: isText || isSelect,
30755
31384
  // Text and Select tags use popup editor for better UX
30756
31385
  // Header with icon and title, filter button on left
30757
- headerComponent: (params) => /* @__PURE__ */ jsx(TagHeaderComponent, { params, tag, isCheckbox }),
31386
+ headerComponent: TagHeaderComponent,
31387
+ headerComponentParams: { tag, isCheckbox },
30758
31388
  // Value getter
30759
31389
  valueGetter: (params) => {
30760
31390
  if (!params.data) return isCheckbox ? false : "";
@@ -30843,6 +31473,8 @@ function createTagColumn({
30843
31473
  }
30844
31474
  };
30845
31475
  }
31476
+
31477
+ // src/connection/files/grid/documentColumns.tsx
30846
31478
  var FILTER_PARAMS = {
30847
31479
  buttons: ["reset", "apply"],
30848
31480
  closeOnApply: true
@@ -30868,99 +31500,7 @@ function createDocumentColumns({
30868
31500
  }) {
30869
31501
  const isRowEditableByOwner = (params) => canChangeVisibility(params.data, currentUserExtId);
30870
31502
  const isRowEditableByMember = (params) => canEditDocumentFields(params.data, currentUserExtId, workspaceRole);
30871
- const documentNameCellRenderer = (params) => {
30872
- const doc = params.data;
30873
- if (!doc) return null;
30874
- const context = params.context;
30875
- return /* @__PURE__ */ jsx(
30876
- DocumentNameCell,
30877
- {
30878
- doc,
30879
- canEdit: isRowEditableByMember(params),
30880
- users: context?.getWorkspaceUsers?.() ?? NO_USERS,
30881
- onOpen: () => handleToggleDocumentViewer(doc.external_id),
30882
- onReview: onReviewDocument && (() => onReviewDocument(doc.external_id)),
30883
- onDocumentChat: onDocumentChat && (() => onDocumentChat(doc.external_id)),
30884
- onRename: () => params.api.startEditingCell({ rowIndex: params.node.rowIndex ?? 0, colKey: "title" }),
30885
- onDownload: () => onDownloadDocument?.(doc),
30886
- onMove: () => onMoveDocument?.(doc.external_id),
30887
- onDelete: () => onDeleteDocument?.(doc.external_id)
30888
- }
30889
- );
30890
- };
30891
- const sharedCellRenderer = (params) => {
30892
- if (!params.data) return null;
30893
- const isOwner = isRowEditableByOwner(params);
30894
- return /* @__PURE__ */ jsx(
30895
- DocumentSharedCell,
30896
- {
30897
- document: params.data,
30898
- disabled: !isOwner,
30899
- disabledTooltip: "Only the owner can change visibility",
30900
- onToggle: onToggleShared
30901
- }
30902
- );
30903
- };
30904
- const statusCellRenderer = (params) => {
30905
- if (!params.data) return null;
30906
- const context = params.context;
30907
- return /* @__PURE__ */ jsx(
30908
- StatusCell,
30909
- {
30910
- doc: params.data,
30911
- onStatusClick,
30912
- actions: context?.getHostActions?.()
30913
- }
30914
- );
30915
- };
30916
31503
  const checkboxTags = availableTags.filter(isLabelTag);
30917
- const tagsCellRenderer = (params) => {
30918
- if (!params.data) return null;
30919
- const context = params.context;
30920
- return /* @__PURE__ */ jsx(
30921
- DocumentLabelsCell,
30922
- {
30923
- doc: params.data,
30924
- labels: checkboxTags,
30925
- createDocTag,
30926
- deleteDocTag,
30927
- createTag,
30928
- isMember,
30929
- rowHeight: params.node.rowHeight ?? 52,
30930
- actions: context?.getHostActions?.()
30931
- }
30932
- );
30933
- };
30934
- const relatedDocsCellRenderer = (params) => {
30935
- if (!params.data) return null;
30936
- const context = params.context;
30937
- const related = context?.getRelatedDocs?.().get(params.data.external_id);
30938
- if (!related || getRelatedTotal(related) === 0) return null;
30939
- return /* @__PURE__ */ jsx(
30940
- RelatedDocumentsCell,
30941
- {
30942
- currentDoc: params.data,
30943
- related,
30944
- viewingDocumentId: context?.getViewingDocumentId?.() ?? null,
30945
- onDocumentClick: handleToggleDocumentViewer,
30946
- onDelete: (doc) => onDeleteDocument?.(doc.external_id),
30947
- onCompare: context?.getHostActions?.().compareDocuments
30948
- }
30949
- );
30950
- };
30951
- const folderCellRenderer = (params) => {
30952
- if (!params.data) return null;
30953
- const context = params.context;
30954
- return /* @__PURE__ */ jsx(
30955
- DocumentFolderCell,
30956
- {
30957
- document: params.data,
30958
- isEditable: isRowEditableByMember(params),
30959
- allDocuments: context?.getDocuments?.() ?? NO_DOCUMENTS2,
30960
- onUpdateFolder: context?.updateFolder ?? NO_FOLDER_UPDATE
30961
- }
30962
- );
30963
- };
30964
31504
  const allColumns = [];
30965
31505
  allColumns.push({
30966
31506
  colId: "status",
@@ -31011,7 +31551,8 @@ function createDocumentColumns({
31011
31551
  }
31012
31552
  return 0;
31013
31553
  },
31014
- cellRenderer: statusCellRenderer,
31554
+ cellRenderer: StatusCellRenderer,
31555
+ cellRendererParams: { onStatusClick },
31015
31556
  // Status is a single icon — center it horizontally (header + cell) rather
31016
31557
  // than left-aligning a lone glyph against the column edge. `cell-status`
31017
31558
  // trims the cell's vertical padding so the progress bar + label fit (and sit
@@ -31047,7 +31588,16 @@ function createDocumentColumns({
31047
31588
  cellEditorPopup: true,
31048
31589
  cellEditorParams: { rows: 5, cols: 50 },
31049
31590
  context: { icon: FileText },
31050
- cellRenderer: documentNameCellRenderer,
31591
+ cellRenderer: DocumentNameCellRenderer,
31592
+ cellRendererParams: {
31593
+ canEdit: isRowEditableByMember,
31594
+ onOpenDocument: handleToggleDocumentViewer,
31595
+ onReviewDocument,
31596
+ onDocumentChat,
31597
+ onDownloadDocument,
31598
+ onMoveDocument,
31599
+ onDeleteDocument
31600
+ },
31051
31601
  valueGetter: (params) => getDocumentTitle(params.data, "Untitled"),
31052
31602
  valueSetter: (params) => {
31053
31603
  if (!params.data) return false;
@@ -31293,7 +31843,8 @@ function createDocumentColumns({
31293
31843
  filterParams: FILTER_PARAMS,
31294
31844
  context: { icon: FolderOpen },
31295
31845
  valueFormatter: (params) => formatFolderLabel(params.value),
31296
- cellRenderer: folderCellRenderer,
31846
+ cellRenderer: FolderCellRenderer,
31847
+ cellRendererParams: { canEdit: isRowEditableByMember },
31297
31848
  cellClass: (params) => isRowEditableByMember(params) ? "cell-editable-member relative" : "cell-editable-readonly relative"
31298
31849
  });
31299
31850
  allColumns.push({
@@ -31358,7 +31909,11 @@ function createDocumentColumns({
31358
31909
  const paddedCount = String(meta.count).padStart(6, "0");
31359
31910
  return `${meta.tier}|${paddedCount}|${groupId}|${rank}|${doc.external_id}`;
31360
31911
  },
31361
- cellRenderer: relatedDocsCellRenderer
31912
+ cellRenderer: RelatedDocsCellRenderer,
31913
+ cellRendererParams: {
31914
+ onOpenDocument: handleToggleDocumentViewer,
31915
+ onDeleteDocument
31916
+ }
31362
31917
  });
31363
31918
  allColumns.push({
31364
31919
  colId: "shared",
@@ -31371,21 +31926,12 @@ function createDocumentColumns({
31371
31926
  valueGetter: (params) => {
31372
31927
  return params.data?.shared ?? false;
31373
31928
  },
31374
- cellRenderer: sharedCellRenderer
31929
+ cellRenderer: SharedCellRenderer,
31930
+ cellRendererParams: {
31931
+ canToggle: isRowEditableByOwner,
31932
+ onToggleShared
31933
+ }
31375
31934
  });
31376
- const createdByCellRenderer = (params) => {
31377
- if (!params.data) return null;
31378
- const context = params.context;
31379
- const creator = context?.getWorkspaceUsers?.().find((u) => u.external_id === params.data.created_by_ext_id);
31380
- return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx(
31381
- UserAvatar,
31382
- {
31383
- user: creator,
31384
- isMe: !!creator && creator.external_id === context?.getCurrentUserId?.(),
31385
- onOpen: context?.getHostActions?.().openUser
31386
- }
31387
- ) });
31388
- };
31389
31935
  allColumns.push({
31390
31936
  colId: "created_by",
31391
31937
  headerName: "By",
@@ -31400,7 +31946,7 @@ function createDocumentColumns({
31400
31946
  const fullName = [creator.given_name, creator.family_name].filter(Boolean).join(" ");
31401
31947
  return fullName || creator.email || "";
31402
31948
  },
31403
- cellRenderer: createdByCellRenderer
31949
+ cellRenderer: CreatedByCellRenderer
31404
31950
  });
31405
31951
  allColumns.push({
31406
31952
  colId: "all_tags",
@@ -31422,7 +31968,14 @@ function createDocumentColumns({
31422
31968
  }).filter(Boolean);
31423
31969
  return tagNames.join(" ");
31424
31970
  },
31425
- cellRenderer: tagsCellRenderer,
31971
+ cellRenderer: LabelsCellRenderer,
31972
+ cellRendererParams: {
31973
+ labels: checkboxTags,
31974
+ createDocTag,
31975
+ deleteDocTag,
31976
+ createTag,
31977
+ isMember
31978
+ },
31426
31979
  // Add CSS class for hover icon (matches title field)
31427
31980
  cellClass: isMember ? "cell-editable-member relative !pr-0" : "cell-editable-readonly relative"
31428
31981
  });
@@ -31451,10 +32004,6 @@ function createDocumentColumns({
31451
32004
  );
31452
32005
  return [...allColumns.map(withEmptyDash), ...tagColumns];
31453
32006
  }
31454
- var NO_USERS = [];
31455
- var NO_DOCUMENTS2 = [];
31456
- var NO_FOLDER_UPDATE = () => {
31457
- };
31458
32007
  function isPhoneViewport() {
31459
32008
  return typeof window !== "undefined" && window.matchMedia?.("(max-width: 480px)")?.matches === true;
31460
32009
  }
@@ -33066,10 +33615,10 @@ var TABLET_TABLE_BELOW = 860;
33066
33615
  var TABLET_VIEWPORT_BELOW = 1100;
33067
33616
  var NO_CONVERSATION_DOCUMENTS2 = [];
33068
33617
  var DocumentReviewCard = lazy(
33069
- () => import('../DocumentReviewCard-LGBI472S.js').then((module) => ({ default: module.DocumentReviewCard }))
33618
+ () => import('../DocumentReviewCard-5NZM6FOB.js').then((module) => ({ default: module.DocumentReviewCard }))
33070
33619
  );
33071
33620
  var FilesViewerDialog = lazy(
33072
- () => import('../FilesViewerDialog-KP3IHDSS.js').then((module) => ({ default: module.FilesViewerDialog }))
33621
+ () => import('../FilesViewerDialog-5VML4F5E.js').then((module) => ({ default: module.FilesViewerDialog }))
33073
33622
  );
33074
33623
  function defaultReviewCard(props) {
33075
33624
  return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
@@ -33199,6 +33748,7 @@ function ConnectedFilesPage({
33199
33748
  if (ownsViewer && dialog && !viewingDocumentRef) {
33200
33749
  setDialog(null);
33201
33750
  shownPlaceRef.current = null;
33751
+ latest.current.onDocumentChange?.(null);
33202
33752
  }
33203
33753
  }, [ownsViewer, dialog, viewingDocumentRef]);
33204
33754
  const viewingDraft = useArbiSessionState(
@@ -33206,6 +33756,23 @@ function ConnectedFilesPage({
33206
33756
  );
33207
33757
  const compareId = useArbiSessionState((s) => s.documentViewer.compareId ?? null);
33208
33758
  const wholeViewerKey = !ownsViewer || !viewingDocumentRef ? null : viewingDraft ? `draft|${viewingDocumentRef}` : compareId ? `compare|${viewingDocumentRef}|${compareId}` : null;
33759
+ const lastCompareRef = useRef({ documentRef: viewingDocumentRef, compareId });
33760
+ useEffect(() => {
33761
+ const previous = lastCompareRef.current;
33762
+ lastCompareRef.current = { documentRef: viewingDocumentRef, compareId };
33763
+ if (!ownsViewer || previous.documentRef === viewingDocumentRef || !previous.compareId) return;
33764
+ if (session.getState().documentViewer.compareId === previous.compareId)
33765
+ session.setDocumentViewer({ compareId: null });
33766
+ }, [ownsViewer, viewingDocumentRef, compareId, session]);
33767
+ const ownsViewerRef = useRef(ownsViewer);
33768
+ ownsViewerRef.current = ownsViewer;
33769
+ useEffect(
33770
+ () => () => {
33771
+ if (ownsViewerRef.current && session.getState().documentViewer.compareId)
33772
+ session.setDocumentViewer({ compareId: null });
33773
+ },
33774
+ [session]
33775
+ );
33209
33776
  const wholeViewerKeyRef = useRef(null);
33210
33777
  useEffect(() => {
33211
33778
  const previous = wholeViewerKeyRef.current;
@@ -37860,7 +38427,7 @@ function useThreadLabels(canEditShared) {
37860
38427
  if (failed)
37861
38428
  notify17(`Could not update labels on ${failed} thread${failed === 1 ? "" : "s"}.`, "error");
37862
38429
  };
37863
- const create2 = async (rows, name) => {
38430
+ const create3 = async (rows, name) => {
37864
38431
  if (!canEdit(rows) || !name.trim()) return;
37865
38432
  try {
37866
38433
  const existing = labels.find((tag) => tag.name.toLowerCase() === name.trim().toLowerCase());
@@ -37882,7 +38449,7 @@ function useThreadLabels(canEditShared) {
37882
38449
  options: options2,
37883
38450
  appliedIds: new Set(row2.label_ext_ids ?? []),
37884
38451
  onToggle: (id) => void apply([row2], id, Boolean(row2.label_ext_ids?.includes(id))),
37885
- onCreate: (name) => void create2([row2], name),
38452
+ onCreate: (name) => void create3([row2], name),
37886
38453
  rowHeight: 40
37887
38454
  }
37888
38455
  ),
@@ -37904,7 +38471,7 @@ function useThreadLabels(canEditShared) {
37904
38471
  disabled: !canEdit(rows) || update.isPending || createTag.isPending,
37905
38472
  isCompact,
37906
38473
  onToggle: (id) => void apply(rows, id, all.has(id)),
37907
- onCreate: (name) => void create2(rows, name)
38474
+ onCreate: (name) => void create3(rows, name)
37908
38475
  }
37909
38476
  );
37910
38477
  }
@@ -41685,30 +42252,6 @@ function ShellAccount({
41685
42252
  }
41686
42253
  );
41687
42254
  }
41688
- function brandMark(brand, placement) {
41689
- return typeof brand.logo === "function" ? brand.logo(placement) : brand.logo;
41690
- }
41691
- var ShellNavigationContext = createContext(null);
41692
- function useShellNavigation() {
41693
- return useContext(ShellNavigationContext);
41694
- }
41695
- var isExternal = (item) => item.external === true || /^[a-z][a-z0-9+.-]*:/i.test(item.to);
41696
- function pathOf(address) {
41697
- const path = address.split(/[?#]/)[0] || "/";
41698
- return path.length > 1 ? path.replace(/\/+$/, "") || "/" : path;
41699
- }
41700
- var queryOf = (address) => new URLSearchParams(address.split("#")[0].split("?")[1] ?? "");
41701
- function matchScore(item, address) {
41702
- if (isExternal(item)) return -1;
41703
- const path = pathOf(address);
41704
- const to = pathOf(item.to);
41705
- const exact = path === to;
41706
- if (!exact && (item.end || !path.startsWith(to === "/" ? "/" : `${to}/`))) return -1;
41707
- const wanted = [...queryOf(item.to)];
41708
- const here = queryOf(address);
41709
- const query = !wanted.length ? 1 : wanted.every(([k, v]) => here.getAll(k).includes(v)) ? 2 : 0;
41710
- return to.length * 3 + (exact ? query : 1);
41711
- }
41712
42255
  function ConnectedShellSidebar({
41713
42256
  logo,
41714
42257
  items,
@@ -42273,15 +42816,15 @@ var DEFAULT_GETTING_STARTED_STEPS = {
42273
42816
  },
42274
42817
  upload: {
42275
42818
  title: "Upload a document",
42276
- description: (inWorkspace) => inWorkspace ? "Add a file under \u201CFiles\u201D." : "Open a workspace, then add a file under \u201CFiles\u201D."
42819
+ description: (inWorkspace2) => inWorkspace2 ? "Add a file under \u201CFiles\u201D." : "Open a workspace, then add a file under \u201CFiles\u201D."
42277
42820
  },
42278
42821
  ask: {
42279
42822
  title: "Ask a question",
42280
- description: (inWorkspace) => inWorkspace ? "Open \u201CThreads\u201D and ask a question." : "In a workspace, open \u201CThreads\u201D and ask a question."
42823
+ description: (inWorkspace2) => inWorkspace2 ? "Open \u201CThreads\u201D and ask a question." : "In a workspace, open \u201CThreads\u201D and ask a question."
42281
42824
  },
42282
42825
  invite: {
42283
42826
  title: "Invite a colleague",
42284
- description: (inWorkspace) => inWorkspace ? "Invite someone from the members section." : "Open a workspace\u2019s members to invite someone."
42827
+ description: (inWorkspace2) => inWorkspace2 ? "Invite someone from the members section." : "Open a workspace\u2019s members to invite someone."
42285
42828
  }
42286
42829
  };
42287
42830
  var NO_TIPS = [];
@@ -42299,7 +42842,7 @@ function useGettingStarted({
42299
42842
  const [replayView] = useTransientView(WELCOME_REPLAY_VIEW, false);
42300
42843
  const welcomeReplay = replayView === true;
42301
42844
  const welcomeDialogOpen = useDialogProps("welcome") !== null;
42302
- const inWorkspace = useArbiSessionState((s) => !!s.workspaceId && s.workspaceStatus === "open");
42845
+ const inWorkspace2 = useArbiSessionState((s) => !!s.workspaceId && s.workspaceStatus === "open");
42303
42846
  const { data: workspaces, isLoading: workspacesLoading } = useWorkspaces();
42304
42847
  const { data: projects, isLoading: projectsLoading } = useProjects();
42305
42848
  const isLoading = workspacesLoading || projectsLoading;
@@ -42345,13 +42888,13 @@ function useGettingStarted({
42345
42888
  return {
42346
42889
  id,
42347
42890
  title: copy.title,
42348
- description: copy.description(inWorkspace),
42891
+ description: copy.description(inWorkspace2),
42349
42892
  done: done[id],
42350
42893
  ...optional ? { optional } : {}
42351
42894
  };
42352
42895
  };
42353
42896
  return [step("workspace"), step("upload"), step("ask"), step("invite", true)];
42354
- }, [counts, inWorkspace, welcomeReplay, stepCopy]);
42897
+ }, [counts, inWorkspace2, welcomeReplay, stepCopy]);
42355
42898
  const coreSteps = steps.filter((s) => !s.optional);
42356
42899
  const completedCore = coreSteps.filter((s) => s.done).length;
42357
42900
  const totalCore = coreSteps.length;
@@ -42512,6 +43055,6 @@ function ChromeInstallDialog({
42512
43055
  ] }) });
42513
43056
  }
42514
43057
 
42515
- export { AddAddonDialog, AddFromAccountsButton, AgentBarShell, AgentControlBar, BACKFILL_OPTIONS, BUILTIN_GLOBAL_DIALOGS, BULK_REPROCESS_LIMIT, CHAT_FACTS_CAP_MESSAGE, CHAT_FACTS_CHAR_CAP, CaptureBar, ChangePlanDialog, ChatAttachmentList, ChromeInstallDialog, ConnectedAccountAccessBadge, ConnectedAccountCluster, ConnectedAccountSettings, ConnectedAccountsImport, ConnectedAddContacts, ConnectedAgentChatPanel, ConnectedAgentConfigForm, ConnectedAgentCreator, ConnectedAgentsNewTask, ConnectedAgentsPage, ConnectedAgentsPageScope, ConnectedAgentsSection, ConnectedAgentsSectionHeading, ConnectedAiReview, ConnectedAppRuntime, ConnectedAppShell, ConnectedAppsSettings, ConnectedArchiveWorkspaceButton, ConnectedAskField, ConnectedAuthorizeAgent, ConnectedBulkTagCrumbs, ConnectedBulkTagEditor, ConnectedCalendar, ConnectedChatContextButton, ConnectedChatDocumentsTab, ConnectedChatFactsTab, ConnectedChatMessageBody, ConnectedChatPeopleDialog, ConnectedChatThread, ConnectedConfigForm, ConnectedContactCardForm, ConnectedContactMenu, ConnectedContactToggle, ConnectedContactsDirectory, ConnectedContactsPanel, ConnectedConversationEmpty, ConnectedConversationPage, ConnectedConversationSettings, ConnectedConversationSettingsDialog, ConnectedConversationStart, ConnectedConversationThread, ConnectedDatabasesPage, ConnectedDeploymentStorage, ConnectedDeveloperConfig, ConnectedDmGrantAccessDialog, ConnectedDocumentPill, ConnectedDocumentProcessingPanel, ConnectedDriveSyncDialog, ConnectedEmailWorkspaceDialog, ConnectedEntitlementGate, ConnectedExpiredWorkspaceAccessDialog, ConnectedExportDialog, ConnectedExportPanel, ConnectedFactsPage, ConnectedFactsSmartSearch, ConnectedFieldsEditor, ConnectedFieldsManager, ConnectedFieldsManagerPanel, ConnectedFilesBulkActions, ConnectedFilesExplorer, ConnectedFilesPage, ConnectedFilterDropdown, ConnectedGettingStarted, ConnectedGlobalDialogs, ConnectedGrantWorkspaceAccessDialog, ConnectedGridView, ConnectedGroupMembers, ConnectedInviteContactsDialog, ConnectedMailAccounts, ConnectedMailComposer, ConnectedMailMessage, ConnectedMailOfflineSettings, ConnectedMailSettings, ConnectedMailSetup, ConnectedMailSidePanel, ConnectedMailbox, ConnectedMailboxSyncDialog, ConnectedMessenger, ConnectedMessengerList, ConnectedMessengerThread, ConnectedModelConnectionsSettings, ConnectedMoveToFolder, ConnectedNewFileMenu, ConnectedNewThreadDialog, ConnectedNotificationCenter, ConnectedOAuthConsentPage, ConnectedOfflineStatus, ConnectedPageRegistry, ConnectedPanelHost, ConnectedPanelRegistry, ConnectedPeerActions, ConnectedPeopleMultiSelect, ConnectedPremiumModels, ConnectedPrivacySettings, ConnectedProcessingPanel, ConnectedProcessingStatus, ConnectedProjectEntity, ConnectedProjectPage, ConnectedProjectSelector, ConnectedProjectStorage, ConnectedProjectsListPage, ConnectedProjectsPanel, ConnectedPublicBooking, ConnectedQuotaDialog, ConnectedRecentlyDeletedButton, ConnectedRecipientSelector, ConnectedRecoveryKeyDialog, ConnectedReportProblem, ConnectedRequestWorkspaceAccess, ConnectedSearchPage, ConnectedSecureMailClaimPage, ConnectedSettingsPage, ConnectedShareDialog, ConnectedSharePointAdminConsentPage, ConnectedSharedFilesPage, ConnectedShellSidebar, ConnectedShellTabBar, ConnectedShellTopbar, ConnectedSignatureVerifyPage, ConnectedSkillUpload, ConnectedSkillsBrowser, ConnectedSkillsLibrary, ConnectedSsoCallback, ConnectedStorageProjectCard, ConnectedStorageSettings, ConnectedSupportTicketsDialog, ConnectedTagEditorDialog, ConnectedTagForm, ConnectedTagTable, ConnectedTagsPage, ConnectedTaskAccessRequest, ConnectedThreadFollow, ConnectedThreadLauncher, ConnectedThreadTabs, ConnectedThreadsPage, ConnectedTipBar, ConnectedTransferWatcher, ConnectedUnarchiveWorkspaceDialog, ConnectedUpcomingEvents, ConnectedUpload, ConnectedUploadDialog, ConnectedUploadDropzone, ConnectedWelcomeDialog, ConnectedWorkspaceActivity, ConnectedWorkspaceActivityPanel, ConnectedWorkspaceDashboard, ConnectedWorkspaceEntity, ConnectedWorkspaceFormModal, ConnectedWorkspaceHouseTemplate, ConnectedWorkspaceList, ConnectedWorkspaceMembers, ConnectedWorkspaceNotificationMenu, ConnectedWorkspaceSettings, ConnectedWorkspaceShareDialog, ConnectedWorkspaceSwitcher, ConnectedWorkspaceTrash, ConversationAlert, ConversationEntity, ConversationSendButton, ConversationStatusCell, DEFAULT_AGENTS_PAGE_SECTIONS, DEFAULT_AGENT_CHAT_CARD_LABELS, DEFAULT_CONNECTED_AGENTS_PAGE_LABELS, DEFAULT_CONNECTED_SEARCH_PAGE_LABELS, DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS, DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, DEFAULT_GETTING_STARTED_STEPS, 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_FIELDS2 as DEFAULT_SEARCH_FIELDS, DEFAULT_SEARCH_ROW_LABELS, DEFAULT_SETTINGS_SECTIONS, DEFAULT_TIPS_OFF_LABEL, DEFAULT_WORKSPACE_ACTIVITY_PANEL_LABELS, DEFAULT_WORKSPACE_LIST_LABELS, DeveloperFooter, DocumentsFilterBarActions, DocumentsUploadButton, EmptyWorkspaceUpload, FACTS_COMPOSE_VIEW, FACTS_FILTER_KEY, FACTS_FOCUS_VIEW, FACTS_GRID_ID, FIELDS_MANAGER_PANEL, FIRST_LOGIN_WORKSPACES_VIEW, GETTING_STARTED_DONE_TIP, INVITATION_ROW_FILTERS, INVITE_SECTION, ImportVcfButton, ImportVcfSummary, InvoicesModal, JUST_CONNECTED_VIEW, LOOK_AGAIN_LABEL, MAIL_SIDE_VIEW, MAIL_VIEWER_OPEN_VIEW, MicButton, NOTIFICATION_FOCUS_VIEW, NOTIFICATION_GRID_ID, NewProjectFlow, NoWorkspaceAccess, NotificationCenter, NotificationEvent, PAGE_TRANSITION_VIEW, PENDING_ACCESS_REVIEW_VIEW, PENDING_ACTION_VIEW, PENDING_LOOKUP_MS, PENDING_NOTIFICATION_VIEW, PENDING_TASK_MESSAGE, PENDING_WORKSPACE_SHARE_VIEW, PROJECTS_BASE_TAB_ID, PersistedGridView, ProgressiveLoadingChip, ProjectDetail, ProjectUsageContent, ProjectsTable, REFERRAL_OFFER, RecoveryKeyDownload, ReportProblemDialog, RunStatsBadges, SEARCH_FIELD_OPTIONS, SEEN_ADDON_BLOCKS_VIEW, SETTINGS_SECTION_IDS, SharedProjects, SsoResendVerificationButton, StorageBreakdown, StorageItemsTable, StorageTiers, StreamedArtifact, THREAD_TAG_FILTER_VIEW, TILE_DEFAULT, TILE_MAX, TILE_MIN, ThreadSwitcher, ViewSelector, WELCOME_DIALOG_SESSION_KEY, WORKSPACES_TAB_ID, WorkflowLaunchHost, WorkflowRunStatusCell, WorkspaceArchiveStatus, accountSettingsSection, addonArrivalMessage, appearanceSettingsSection, archiveWorkspaceSection, archivedWorkspaceState, bookingCancelLink, buildNotificationCenterItems, captureSecureMailFragment, chatFactsTextLength, chatSettingsSection, clearSecureMailKey, closeAccessRequestReview, connectedAppsSettingsSection, connectionSettingsSection, countNotificationTypes, createDocumentColumns, createEventCall, createNotificationTargetOpener, createPaymentRequiredMiddleware, createTagColumn, deduplicateByContentHash, describePlan, dialogTabForPlace, distinctPeers, dockedMailPanel, documentFamilyMeta, documentPlaceKey, factPromptLine, featuresSettingsSection, filterNotificationCenterItems, fitsChatFactsCap, formatAccessExpiry, formatStorageGb, groupFallbackName, houseTemplateWorkspaceSection, identifyOAuthClient, inviteRows, joinEventMeeting, loadEventWebinar, mailSettingsSection, modelConnectionsSettingsSection, offlineMailSupport, openFieldsManagerIn, openMeetingLink, openQuotaDialogIfUsedUp, openSsoPopup, organisationSettingsSection, parseArbiCallUrl, parseOAuthConsentRequest, paymentConfirmationUrl, paymentRequiredToastMessage, privacySettingsSection, promptDateSpan, readSecureMailKey, renderMessengerUser, requestProjectBillingFocus, resolveAttendeeUsers, resolveAttendeeUsersRemote, resolveCallPeers, resolveCallPeersRemote, resolveLaunchInputs, resolveMailbox, reviewAccessRequest, reviewProgress, routePaymentRequired, shareEventCall, showDocumentPlace, skipWelcomeDialogThisSession, storageSettingsSection, storeSecureMailKey, suppliedKinds, surfacePaymentRequired, threadStateOf, toWorkspaceSummary, transferOutcome, updateEventWebinarRoles, usageSettingsSection, useAccessRequestUnderReview, useAddFromUrls, useAddToConversation, useAiReviewLiveUpdates, useAppShell, useAutoRefreshPendingProjects, useBatchCompleteToasts, useChatFactCount, useChatFacts, useChatMessageToasts, useConnectedAgentManagement, useConnectedCalendarCalls, useConnectedNotificationBell, useConnectedShellWorkspaces, useConnectedWorkspaceList, useConnectedWorkspaceSettings, useDeepLinkSync, useDocumentBulkActions, useDocumentChat, useDocumentFilters, useDocumentGridSync, useDocumentNavigation, useDocumentTable, useExportStore, useGettingStarted, useHasAccountsImport, useInstallSkillPackOnSignIn, useInvitationRows, useMainAreaPanel, useMessengerRows, useNotificationBellEntry, useNotificationToasts, useOpenBillingPortal, useOpenNotificationTarget, useOpenTaggedContent, useOpenWorkspaceActivityTarget, usePanelDmTabs, usePendingTaskThread, useProcessingCounts, useProcessingPulse, useProjectBillingFocus, useReferralReward, useReplyWithArbi, useReportProblem, useSessionPanelMode, useSessionSidebar, useSettingsSections, useShellNavigation, useStartRequestedDraft, useTableViews, useThreadLabels, useThreadTabs, useTogglePanel, useWorkflowLaunch, useWorkspaceAsk, webinarRolesByUser, windowLabel, withAddonBlocksBought, withMissingTableViews, withTableView, withoutTableView, workspaceProjectLine };
43058
+ export { AddAddonDialog, AddFromAccountsButton, AgentBarShell, AgentControlBar, BACKFILL_OPTIONS, BUILTIN_GLOBAL_DIALOGS, BULK_REPROCESS_LIMIT, CHAT_FACTS_CAP_MESSAGE, CHAT_FACTS_CHAR_CAP, CaptureBar, ChangePlanDialog, ChatAttachmentList, ChromeInstallDialog, ConnectedAccountAccessBadge, ConnectedAccountCluster, ConnectedAccountSettings, ConnectedAccountsImport, ConnectedAddContacts, ConnectedAgentChatPanel, ConnectedAgentConfigForm, ConnectedAgentCreator, ConnectedAgentsNewTask, ConnectedAgentsPage, ConnectedAgentsPageScope, ConnectedAgentsSection, ConnectedAgentsSectionHeading, ConnectedAiReview, ConnectedAppRuntime, ConnectedAppShell, ConnectedAppsSettings, ConnectedArchiveWorkspaceButton, ConnectedAskField, ConnectedAuthorizeAgent, ConnectedBulkTagCrumbs, ConnectedBulkTagEditor, ConnectedCalendar, ConnectedChatContextButton, ConnectedChatDocumentsTab, ConnectedChatFactsTab, ConnectedChatMessageBody, ConnectedChatPeopleDialog, ConnectedChatThread, ConnectedCommandPalette, ConnectedConfigForm, ConnectedContactCardForm, ConnectedContactMenu, ConnectedContactToggle, ConnectedContactsDirectory, ConnectedContactsPanel, ConnectedConversationEmpty, ConnectedConversationPage, ConnectedConversationSettings, ConnectedConversationSettingsDialog, ConnectedConversationStart, ConnectedConversationThread, ConnectedDatabasesPage, ConnectedDeploymentStorage, ConnectedDeveloperConfig, ConnectedDmGrantAccessDialog, ConnectedDocumentPill, ConnectedDocumentProcessingPanel, ConnectedDriveSyncDialog, ConnectedEmailWorkspaceDialog, ConnectedEntitlementGate, ConnectedExpiredWorkspaceAccessDialog, ConnectedExportDialog, ConnectedExportPanel, ConnectedFactsPage, ConnectedFactsSmartSearch, ConnectedFieldsEditor, ConnectedFieldsManager, ConnectedFieldsManagerPanel, ConnectedFilesBulkActions, ConnectedFilesExplorer, ConnectedFilesPage, ConnectedFilterDropdown, ConnectedGettingStarted, ConnectedGlobalDialogs, ConnectedGrantWorkspaceAccessDialog, ConnectedGridView, ConnectedGroupMembers, ConnectedInviteContactsDialog, ConnectedMailAccounts, ConnectedMailComposer, ConnectedMailMessage, ConnectedMailOfflineSettings, ConnectedMailSettings, ConnectedMailSetup, ConnectedMailSidePanel, ConnectedMailbox, ConnectedMailboxSyncDialog, ConnectedMessenger, ConnectedMessengerList, ConnectedMessengerThread, ConnectedModelConnectionsSettings, ConnectedMoveToFolder, ConnectedNewFileMenu, ConnectedNewThreadDialog, ConnectedNotificationCenter, ConnectedOAuthConsentPage, ConnectedOfflineStatus, ConnectedPageRegistry, ConnectedPanelHost, ConnectedPanelRegistry, ConnectedPeerActions, ConnectedPeopleMultiSelect, ConnectedPremiumModels, ConnectedPrivacySettings, ConnectedProcessingPanel, ConnectedProcessingStatus, ConnectedProjectEntity, ConnectedProjectPage, ConnectedProjectSelector, ConnectedProjectStorage, ConnectedProjectsListPage, ConnectedProjectsPanel, ConnectedPublicBooking, ConnectedQuotaDialog, ConnectedRecentlyDeletedButton, ConnectedRecipientSelector, ConnectedRecoveryKeyDialog, ConnectedReportProblem, ConnectedRequestWorkspaceAccess, ConnectedSearchPage, ConnectedSecureMailClaimPage, ConnectedSettingsPage, ConnectedShareDialog, ConnectedSharePointAdminConsentPage, ConnectedSharedFilesPage, ConnectedShellSidebar, ConnectedShellTabBar, ConnectedShellTopbar, ConnectedSignatureVerifyPage, ConnectedSkillUpload, ConnectedSkillsBrowser, ConnectedSkillsLibrary, ConnectedSsoCallback, ConnectedStorageProjectCard, ConnectedStorageSettings, ConnectedSupportTicketsDialog, ConnectedTagEditorDialog, ConnectedTagForm, ConnectedTagTable, ConnectedTagsPage, ConnectedTaskAccessRequest, ConnectedThreadFollow, ConnectedThreadLauncher, ConnectedThreadTabs, ConnectedThreadsPage, ConnectedTipBar, ConnectedTransferWatcher, ConnectedUnarchiveWorkspaceDialog, ConnectedUpcomingEvents, ConnectedUpload, ConnectedUploadDialog, ConnectedUploadDropzone, ConnectedWelcomeDialog, ConnectedWorkspaceActivity, ConnectedWorkspaceActivityPanel, ConnectedWorkspaceDashboard, ConnectedWorkspaceEntity, ConnectedWorkspaceFormModal, ConnectedWorkspaceHouseTemplate, ConnectedWorkspaceList, ConnectedWorkspaceMembers, ConnectedWorkspaceNotificationMenu, ConnectedWorkspaceSettings, ConnectedWorkspaceShareDialog, ConnectedWorkspaceSwitcher, ConnectedWorkspaceTrash, ConversationAlert, ConversationEntity, ConversationSendButton, ConversationStatusCell, DEFAULT_AGENTS_PAGE_SECTIONS, DEFAULT_AGENT_CHAT_CARD_LABELS, DEFAULT_CONNECTED_AGENTS_PAGE_LABELS, DEFAULT_CONNECTED_SEARCH_PAGE_LABELS, DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS, DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, DEFAULT_GETTING_STARTED_STEPS, 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_FIELDS2 as DEFAULT_SEARCH_FIELDS, DEFAULT_SEARCH_ROW_LABELS, DEFAULT_SETTINGS_SECTIONS, DEFAULT_TIPS_OFF_LABEL, DEFAULT_WORKSPACE_ACTIVITY_PANEL_LABELS, DEFAULT_WORKSPACE_LIST_LABELS, DeveloperFooter, DocumentsFilterBarActions, DocumentsUploadButton, EmptyWorkspaceUpload, FACTS_COMPOSE_VIEW, FACTS_FILTER_KEY, FACTS_FOCUS_VIEW, FACTS_GRID_ID, FIELDS_MANAGER_PANEL, FIRST_LOGIN_WORKSPACES_VIEW, GETTING_STARTED_DONE_TIP, INVITATION_ROW_FILTERS, INVITE_SECTION, ImportVcfButton, ImportVcfSummary, InvoicesModal, JUST_CONNECTED_VIEW, LOOK_AGAIN_LABEL, MAIL_SIDE_VIEW, MAIL_VIEWER_OPEN_VIEW, MicButton, NOTIFICATION_FOCUS_VIEW, NOTIFICATION_GRID_ID, NewProjectFlow, NoWorkspaceAccess, NotificationCenter, NotificationEvent, PAGE_TRANSITION_VIEW, PENDING_ACCESS_REVIEW_VIEW, PENDING_ACTION_VIEW, PENDING_LOOKUP_MS, PENDING_NOTIFICATION_VIEW, PENDING_TASK_MESSAGE, PENDING_WORKSPACE_SHARE_VIEW, PROJECTS_BASE_TAB_ID, PersistedGridView, ProgressiveLoadingChip, ProjectDetail, ProjectUsageContent, ProjectsTable, REFERRAL_OFFER, RecoveryKeyDownload, ReportProblemDialog, RunStatsBadges, SEARCH_FIELD_OPTIONS, SEEN_ADDON_BLOCKS_VIEW, SETTINGS_SECTION_IDS, SharedProjects, SsoResendVerificationButton, StorageBreakdown, StorageItemsTable, StorageTiers, StreamedArtifact, THREAD_TAG_FILTER_VIEW, TILE_DEFAULT, TILE_MAX, TILE_MIN, ThreadSwitcher, ViewSelector, WELCOME_DIALOG_SESSION_KEY, WORKSPACES_TAB_ID, WorkflowLaunchHost, WorkflowRunStatusCell, WorkspaceArchiveStatus, accountSettingsSection, addonArrivalMessage, appearanceSettingsSection, archiveWorkspaceSection, archivedWorkspaceState, bookingCancelLink, buildNotificationCenterItems, captureSecureMailFragment, chatFactsTextLength, chatSettingsSection, clearSecureMailKey, closeAccessRequestReview, connectedAppsSettingsSection, connectionSettingsSection, countNotificationTypes, createBuiltinActions, createDocumentColumns, createEventCall, createNotificationTargetOpener, createPaymentRequiredMiddleware, createTagColumn, deduplicateByContentHash, describePlan, dialogTabForPlace, distinctPeers, dockedMailPanel, documentFamilyMeta, documentPlaceKey, factPromptLine, featuresSettingsSection, filterNotificationCenterItems, fitsChatFactsCap, formatAccessExpiry, formatStorageGb, groupFallbackName, houseTemplateWorkspaceSection, identifyOAuthClient, inviteRows, joinEventMeeting, loadEventWebinar, mailSettingsSection, modelConnectionsSettingsSection, offlineMailSupport, openCommandPalette, openFieldsManagerIn, openMeetingLink, openQuotaDialogIfUsedUp, openSsoPopup, organisationSettingsSection, parseArbiCallUrl, parseOAuthConsentRequest, paymentConfirmationUrl, paymentRequiredToastMessage, privacySettingsSection, promptDateSpan, readSecureMailKey, renderMessengerUser, requestProjectBillingFocus, resolveAttendeeUsers, resolveAttendeeUsersRemote, resolveCallPeers, resolveCallPeersRemote, resolveLaunchInputs, resolveMailbox, reviewAccessRequest, reviewProgress, routePaymentRequired, shareEventCall, showDocumentPlace, skipWelcomeDialogThisSession, storageSettingsSection, storeSecureMailKey, suppliedKinds, surfacePaymentRequired, threadStateOf, toWorkspaceSummary, transferOutcome, updateEventWebinarRoles, usageSettingsSection, useAccessRequestUnderReview, useAddFromUrls, useAddToConversation, useAiReviewLiveUpdates, useAppShell, useAutoRefreshPendingProjects, useBatchCompleteToasts, useChatFactCount, useChatFacts, useChatMessageToasts, useConnectedAgentManagement, useConnectedCalendarCalls, useConnectedNotificationBell, useConnectedShellWorkspaces, useConnectedWorkspaceList, useConnectedWorkspaceSettings, useDeepLinkSync, useDocumentBulkActions, useDocumentChat, useDocumentFilters, useDocumentGridSync, useDocumentNavigation, useDocumentTable, useExportStore, useGettingStarted, useHasAccountsImport, useInstallSkillPackOnSignIn, useInvitationRows, useMainAreaPanel, useMessengerRows, useNotificationBellEntry, useNotificationToasts, useOpenBillingPortal, useOpenNotificationTarget, useOpenTaggedContent, useOpenWorkspaceActivityTarget, usePanelDmTabs, usePendingTaskThread, useProcessingCounts, useProcessingPulse, useProjectBillingFocus, useReferralReward, useReplyWithArbi, useReportProblem, useSessionPanelMode, useSessionSidebar, useSettingsSections, useShellNavigation, useStartRequestedDraft, useTableViews, useThreadLabels, useThreadTabs, useTogglePanel, useWorkflowLaunch, useWorkspaceAsk, webinarRolesByUser, windowLabel, withAddonBlocksBought, withMissingTableViews, withTableView, withoutTableView, workspaceProjectLine };
42516
43059
  //# sourceMappingURL=index.js.map
42517
43060
  //# sourceMappingURL=index.js.map