@arbidocs/blocks 0.5.75 → 0.5.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/{ConnectedDocumentViewer-U5TQ4LFJ.js → ConnectedDocumentViewer-4LRZ5N3L.js} +6 -6
- package/dist/{ConnectedDocumentViewer-U5TQ4LFJ.js.map → ConnectedDocumentViewer-4LRZ5N3L.js.map} +1 -1
- package/dist/{ConnectedDocumentViewer-ID2RG5MF.cjs → ConnectedDocumentViewer-FREQM2ES.cjs} +7 -7
- package/dist/{ConnectedDocumentViewer-ID2RG5MF.cjs.map → ConnectedDocumentViewer-FREQM2ES.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-PBMS77ZP.js → ConnectedNativeDocxComparison-P7OJ3UVK.js} +6 -6
- package/dist/{ConnectedNativeDocxComparison-PBMS77ZP.js.map → ConnectedNativeDocxComparison-P7OJ3UVK.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-R4OFGVHY.cjs → ConnectedNativeDocxComparison-RQIKQM5O.cjs} +7 -7
- package/dist/{ConnectedNativeDocxComparison-R4OFGVHY.cjs.map → ConnectedNativeDocxComparison-RQIKQM5O.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-27JZI2D5.js → ConnectedNativeDocxEditor-HX3FDJ2T.js} +5 -5
- package/dist/{ConnectedNativeDocxEditor-27JZI2D5.js.map → ConnectedNativeDocxEditor-HX3FDJ2T.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-774XRIP3.cjs → ConnectedNativeDocxEditor-XKQV7A37.cjs} +7 -7
- package/dist/{ConnectedNativeDocxEditor-774XRIP3.cjs.map → ConnectedNativeDocxEditor-XKQV7A37.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-7TNIQTVE.cjs → ConnectedStreamedWordArtifact-CSRL4SCO.cjs} +7 -7
- package/dist/ConnectedStreamedWordArtifact-CSRL4SCO.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-XEFXYMKS.js → ConnectedStreamedWordArtifact-SSH6M5LN.js} +6 -6
- package/dist/ConnectedStreamedWordArtifact-SSH6M5LN.js.map +1 -0
- package/dist/{DocumentReviewCard-7OPL6PWG.cjs → DocumentReviewCard-3PZJPVQC.cjs} +14 -14
- package/dist/{DocumentReviewCard-7OPL6PWG.cjs.map → DocumentReviewCard-3PZJPVQC.cjs.map} +1 -1
- package/dist/{DocumentReviewCard-NDHCFYYT.js → DocumentReviewCard-KHMHG7A5.js} +9 -9
- package/dist/{DocumentReviewCard-NDHCFYYT.js.map → DocumentReviewCard-KHMHG7A5.js.map} +1 -1
- package/dist/{WorkspaceTableView-4INHJ7QK.js → WorkspaceTableView-4VMCTOFT.js} +5 -5
- package/dist/{WorkspaceTableView-4INHJ7QK.js.map → WorkspaceTableView-4VMCTOFT.js.map} +1 -1
- package/dist/{WorkspaceTableView-BTUSU3N3.cjs → WorkspaceTableView-Q44KNO3Z.cjs} +7 -7
- package/dist/{WorkspaceTableView-BTUSU3N3.cjs.map → WorkspaceTableView-Q44KNO3Z.cjs.map} +1 -1
- package/dist/agents/index.cjs +281 -281
- package/dist/agents/index.js +4 -4
- package/dist/{chunk-E3ILJRG4.cjs → chunk-2HECOUXC.cjs} +4 -3
- package/dist/chunk-2HECOUXC.cjs.map +1 -0
- package/dist/{chunk-AQPZ4QMV.cjs → chunk-3J2ASIM7.cjs} +3 -3
- package/dist/chunk-3J2ASIM7.cjs.map +1 -0
- package/dist/{chunk-QCFNPQWS.cjs → chunk-3LJUTIS6.cjs} +44 -44
- package/dist/{chunk-QCFNPQWS.cjs.map → chunk-3LJUTIS6.cjs.map} +1 -1
- package/dist/chunk-4B6HYQTW.cjs +20 -0
- package/dist/chunk-4B6HYQTW.cjs.map +1 -0
- package/dist/{chunk-4UMVAJJZ.js → chunk-6NEBHZIF.js} +4 -4
- package/dist/{chunk-4UMVAJJZ.js.map → chunk-6NEBHZIF.js.map} +1 -1
- package/dist/{chunk-IMIE5NOQ.js → chunk-7E5GV4R7.js} +4 -4
- package/dist/{chunk-IMIE5NOQ.js.map → chunk-7E5GV4R7.js.map} +1 -1
- package/dist/{chunk-LNXMSIKU.js → chunk-AWFEB4YJ.js} +8 -8
- package/dist/{chunk-LNXMSIKU.js.map → chunk-AWFEB4YJ.js.map} +1 -1
- package/dist/{chunk-JMQLTMJ7.js → chunk-B3BD5IJR.js} +16 -20
- package/dist/chunk-B3BD5IJR.js.map +1 -0
- package/dist/{chunk-5Q2U7GLI.cjs → chunk-CDW3W5U5.cjs} +4 -4
- package/dist/{chunk-5Q2U7GLI.cjs.map → chunk-CDW3W5U5.cjs.map} +1 -1
- package/dist/{chunk-SK5TP4DP.js → chunk-DBPPOJQM.js} +3 -3
- package/dist/{chunk-SK5TP4DP.js.map → chunk-DBPPOJQM.js.map} +1 -1
- package/dist/{chunk-NJ3YV3VM.cjs → chunk-DMYBHKNQ.cjs} +27 -27
- package/dist/{chunk-NJ3YV3VM.cjs.map → chunk-DMYBHKNQ.cjs.map} +1 -1
- package/dist/{chunk-563BHHHO.cjs → chunk-E6S6WHXL.cjs} +9 -9
- package/dist/{chunk-563BHHHO.cjs.map → chunk-E6S6WHXL.cjs.map} +1 -1
- package/dist/{chunk-BV34QPKE.js → chunk-EASXRDYQ.js} +3 -3
- package/dist/{chunk-BV34QPKE.js.map → chunk-EASXRDYQ.js.map} +1 -1
- package/dist/{chunk-JOFUAQTV.js → chunk-HWNVAQBX.js} +3 -3
- package/dist/{chunk-JOFUAQTV.js.map → chunk-HWNVAQBX.js.map} +1 -1
- package/dist/{chunk-PNWSEIWS.cjs → chunk-I3HK46DH.cjs} +4 -4
- package/dist/{chunk-PNWSEIWS.cjs.map → chunk-I3HK46DH.cjs.map} +1 -1
- package/dist/{chunk-GJKXYX47.js → chunk-IJ2CTMA7.js} +3 -3
- package/dist/{chunk-GJKXYX47.js.map → chunk-IJ2CTMA7.js.map} +1 -1
- package/dist/{chunk-7ZL6OVGO.cjs → chunk-IQFHOKQH.cjs} +23 -46
- package/dist/chunk-IQFHOKQH.cjs.map +1 -0
- package/dist/{chunk-7ZCM2GR2.js → chunk-IRCGXKLB.js} +3 -3
- package/dist/{chunk-7ZCM2GR2.js.map → chunk-IRCGXKLB.js.map} +1 -1
- package/dist/{chunk-G4GLDQLY.js → chunk-KG3W76BB.js} +3 -3
- package/dist/chunk-KG3W76BB.js.map +1 -0
- package/dist/{chunk-B66CICTP.cjs → chunk-KHLPBCRZ.cjs} +52 -52
- package/dist/{chunk-B66CICTP.cjs.map → chunk-KHLPBCRZ.cjs.map} +1 -1
- package/dist/{chunk-J4SEJSSV.js → chunk-KPIR4MJV.js} +6 -6
- package/dist/{chunk-J4SEJSSV.js.map → chunk-KPIR4MJV.js.map} +1 -1
- package/dist/{chunk-PA4EGGCI.js → chunk-KSHTODQZ.js} +3 -3
- package/dist/{chunk-PA4EGGCI.js.map → chunk-KSHTODQZ.js.map} +1 -1
- package/dist/{chunk-PT6D5B6L.cjs → chunk-MAUJVVFJ.cjs} +360 -410
- package/dist/chunk-MAUJVVFJ.cjs.map +1 -0
- package/dist/{chunk-MP7XCRHV.js → chunk-NRI5DKJE.js} +4 -3
- package/dist/chunk-NRI5DKJE.js.map +1 -0
- package/dist/{chunk-XXPDAENX.cjs → chunk-PGTDQBMX.cjs} +7 -7
- package/dist/{chunk-XXPDAENX.cjs.map → chunk-PGTDQBMX.cjs.map} +1 -1
- package/dist/{chunk-4JKK6S7U.cjs → chunk-S7G3A52F.cjs} +5 -5
- package/dist/{chunk-4JKK6S7U.cjs.map → chunk-S7G3A52F.cjs.map} +1 -1
- package/dist/{chunk-OUCWTKQT.js → chunk-SBFQF3BU.js} +4 -4
- package/dist/{chunk-OUCWTKQT.js.map → chunk-SBFQF3BU.js.map} +1 -1
- package/dist/{chunk-52VME6ZS.cjs → chunk-SIOBGNRY.cjs} +18 -18
- package/dist/{chunk-52VME6ZS.cjs.map → chunk-SIOBGNRY.cjs.map} +1 -1
- package/dist/chunk-SK3GBHPJ.js +15 -0
- package/dist/chunk-SK3GBHPJ.js.map +1 -0
- package/dist/{chunk-RADE22SM.cjs → chunk-T2OG3CPR.cjs} +4 -4
- package/dist/{chunk-RADE22SM.cjs.map → chunk-T2OG3CPR.cjs.map} +1 -1
- package/dist/{chunk-IGQJ6ET3.js → chunk-TWSOU6SE.js} +421 -501
- package/dist/chunk-TWSOU6SE.js.map +1 -0
- package/dist/{chunk-QRV4XYFJ.js → chunk-UCD7644N.js} +3 -3
- package/dist/{chunk-QRV4XYFJ.js.map → chunk-UCD7644N.js.map} +1 -1
- package/dist/{chunk-TQ4VGQHG.js → chunk-ULUCGL24.js} +3 -3
- package/dist/{chunk-TQ4VGQHG.js.map → chunk-ULUCGL24.js.map} +1 -1
- package/dist/{chunk-IRI6LPDX.cjs → chunk-UR4OSH2Q.cjs} +4 -4
- package/dist/{chunk-IRI6LPDX.cjs.map → chunk-UR4OSH2Q.cjs.map} +1 -1
- package/dist/{chunk-66QN6ZJR.cjs → chunk-URZAK3A3.cjs} +36 -36
- package/dist/{chunk-66QN6ZJR.cjs.map → chunk-URZAK3A3.cjs.map} +1 -1
- package/dist/{chunk-57S2PLCM.js → chunk-V2QWATXQ.js} +3 -3
- package/dist/{chunk-57S2PLCM.js.map → chunk-V2QWATXQ.js.map} +1 -1
- package/dist/{chunk-55JI2IGZ.cjs → chunk-VBLJNOVP.cjs} +4 -4
- package/dist/{chunk-55JI2IGZ.cjs.map → chunk-VBLJNOVP.cjs.map} +1 -1
- package/dist/{chunk-KFAFWPZK.cjs → chunk-VRMACPJR.cjs} +7 -7
- package/dist/{chunk-KFAFWPZK.cjs.map → chunk-VRMACPJR.cjs.map} +1 -1
- package/dist/{chunk-5Y6V7F6W.cjs → chunk-VWUNPAR2.cjs} +15 -19
- package/dist/chunk-VWUNPAR2.cjs.map +1 -0
- package/dist/{chunk-T3GTQXGP.js → chunk-W7CQ5MLR.js} +3 -3
- package/dist/{chunk-T3GTQXGP.js.map → chunk-W7CQ5MLR.js.map} +1 -1
- package/dist/{chunk-AOBNXZLS.cjs → chunk-Y3VXKSW7.cjs} +594 -674
- package/dist/chunk-Y3VXKSW7.cjs.map +1 -0
- package/dist/{chunk-RTYU6ZGO.cjs → chunk-YCABQ5W4.cjs} +4 -4
- package/dist/{chunk-RTYU6ZGO.cjs.map → chunk-YCABQ5W4.cjs.map} +1 -1
- package/dist/{chunk-EWHD3BY5.js → chunk-ZHHUEYSB.js} +25 -48
- package/dist/chunk-ZHHUEYSB.js.map +1 -0
- package/dist/{chunk-5PKIDR2Q.js → chunk-ZHJVABQ6.js} +361 -406
- package/dist/chunk-ZHJVABQ6.js.map +1 -0
- package/dist/connect/docx.cjs +11 -11
- package/dist/connect/docx.js +7 -7
- package/dist/connect/index.cjs +1448 -1367
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +2 -0
- package/dist/connect/index.js +545 -466
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +5 -5
- package/dist/connect/viewer.js +4 -4
- package/dist/connection/account-cluster/ConnectedAccountCluster.d.ts +2 -1
- package/dist/connection/facts/useFactFilters.d.ts +46 -0
- package/dist/connection/files/fields/ConnectedTagForm.d.ts +1 -1
- package/dist/connection/report-problem/ReportProblemDialog.d.ts +10 -8
- package/dist/connection/report-problem/useReportProblem.d.ts +2 -6
- package/dist/connection/tags/ConnectedTagTable.d.ts +1 -1
- package/dist/connection/tags/ConnectedTagsPage.d.ts +3 -1
- package/dist/connection/tags/TagsPageSections.d.ts +5 -3
- package/dist/connection/tags/tagged-content.d.ts +10 -0
- package/dist/connection/threads/useThreadTagFilter.d.ts +10 -0
- package/dist/connection/tips/ConnectedTipBar.d.ts +2 -1
- package/dist/connection/tips/useContextualHints.d.ts +6 -1
- package/dist/embed/index.cjs +13 -12
- package/dist/embed/index.js +8 -7
- package/dist/facts/index.cjs +45 -45
- package/dist/facts/index.js +2 -2
- package/dist/files/index.cjs +226 -226
- package/dist/files/index.js +2 -2
- package/dist/index.cjs +423 -367
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +76 -16
- package/dist/index.js.map +1 -1
- package/dist/settings/FilterChip.d.ts +2 -1
- package/dist/settings/TriStateFilterMenu.d.ts +1 -0
- package/dist/settings/index.cjs +158 -158
- package/dist/settings/index.js +2 -2
- package/dist/shell/index.cjs +14 -14
- package/dist/shell/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tags/TagDetail.d.ts +2 -2
- package/dist/tags/TagTable.d.ts +17 -3
- package/dist/tags/index.d.ts +1 -1
- package/dist/workflow-canvas/index.cjs +29 -29
- package/dist/workflow-canvas/index.js +12 -12
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-7TNIQTVE.cjs.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-XEFXYMKS.js.map +0 -1
- package/dist/chunk-5PKIDR2Q.js.map +0 -1
- package/dist/chunk-5Y6V7F6W.cjs.map +0 -1
- package/dist/chunk-7ZL6OVGO.cjs.map +0 -1
- package/dist/chunk-AOBNXZLS.cjs.map +0 -1
- package/dist/chunk-AQPZ4QMV.cjs.map +0 -1
- package/dist/chunk-E3ILJRG4.cjs.map +0 -1
- package/dist/chunk-EWHD3BY5.js.map +0 -1
- package/dist/chunk-G4GLDQLY.js.map +0 -1
- package/dist/chunk-IGQJ6ET3.js.map +0 -1
- package/dist/chunk-JMQLTMJ7.js.map +0 -1
- package/dist/chunk-MP7XCRHV.js.map +0 -1
- package/dist/chunk-PT6D5B6L.cjs.map +0 -1
- package/dist/connection/tags/TagPlacement.d.ts +0 -16
package/dist/connect/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { DEFAULT_SPEND_CAP_PENCE, useBillingSupport, 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-
|
|
3
|
-
export { CAP_REACHED_MESSAGE, ZERO_BUDGET_MESSAGE, aiUsageResetTimestamp, formatMoney, formatResetDate, getQuotaItems, isAddonBudgetZero, isProProject, planBadgeView, planName, projectGroupBilling, useBillingSupport, useRewardBalance } from '../chunk-
|
|
4
|
-
import { ConnectedTagEntity, useMemberLookup } from '../chunk-
|
|
5
|
-
export { ConnectedTagEntity, documentFieldContent, useMemberLookup } from '../chunk-
|
|
2
|
+
import { DEFAULT_SPEND_CAP_PENCE, useBillingSupport, 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-UCD7644N.js';
|
|
3
|
+
export { CAP_REACHED_MESSAGE, ZERO_BUDGET_MESSAGE, aiUsageResetTimestamp, formatMoney, formatResetDate, getQuotaItems, isAddonBudgetZero, isProProject, planBadgeView, planName, projectGroupBilling, useBillingSupport, useRewardBalance } from '../chunk-UCD7644N.js';
|
|
4
|
+
import { ConnectedTagEntity, useMemberLookup } from '../chunk-6NEBHZIF.js';
|
|
5
|
+
export { ConnectedTagEntity, documentFieldContent, useMemberLookup } from '../chunk-6NEBHZIF.js';
|
|
6
6
|
export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-63BOGQRQ.js';
|
|
7
|
-
import { ConnectedTaskComposer, useProjectSummary, primaryProjectWorkspace, useWorkflowTasks, useWorkflowDefinitions, useProjectSummaries, ConnectedThreadTaskBar, useTaskPeople, ConnectedTaskActivityDialog } from '../chunk-
|
|
8
|
-
export { ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedThreadTaskBar, ConnectedWorkflowHistory, ConnectedWorkflowRunner, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_PAGE_LABELS, WorkflowRunThread, WorkflowRunWorkspaceChangedError, buildProjectSummaries, primaryProjectWorkspace, useEnsureRequiredLabels, useProjectSummaries, useProjectSummary, useRenderTaskPerson, useRequiredLabels, useSkillsEnabled, useTaskPeople, useWorkflowDefinitions, useWorkflowTasks, useWorkflowsPageState, workflowRunView } from '../chunk-
|
|
9
|
-
import { usePendingFolders, useFilesStore, useFilesPrefs, useAiReviewStore, useFilesGridStates, filesViewMode, FILES_PREFS_KEY, useFilesDialogs } from '../chunk-
|
|
10
|
-
export { FILES_PREFS_KEY, filesViewMode, useAiReviewStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, usePendingFolders } from '../chunk-
|
|
7
|
+
import { ConnectedTaskComposer, useProjectSummary, primaryProjectWorkspace, useWorkflowTasks, useWorkflowDefinitions, useProjectSummaries, ConnectedThreadTaskBar, useTaskPeople, ConnectedTaskActivityDialog } from '../chunk-AWFEB4YJ.js';
|
|
8
|
+
export { ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedThreadTaskBar, ConnectedWorkflowHistory, ConnectedWorkflowRunner, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_PAGE_LABELS, WorkflowRunThread, WorkflowRunWorkspaceChangedError, buildProjectSummaries, primaryProjectWorkspace, useEnsureRequiredLabels, useProjectSummaries, useProjectSummary, useRenderTaskPerson, useRequiredLabels, useSkillsEnabled, useTaskPeople, useWorkflowDefinitions, useWorkflowTasks, useWorkflowsPageState, workflowRunView } from '../chunk-AWFEB4YJ.js';
|
|
9
|
+
import { usePendingFolders, useFilesStore, useFilesPrefs, useAiReviewStore, useFilesGridStates, filesViewMode, FILES_PREFS_KEY, useFilesDialogs } from '../chunk-IJ2CTMA7.js';
|
|
10
|
+
export { FILES_PREFS_KEY, filesViewMode, useAiReviewStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, usePendingFolders } from '../chunk-IJ2CTMA7.js';
|
|
11
11
|
import { getRoleBadgeClass, formatRole, getRoleDescription, WorkspaceTypeBadge, PageLoading, WorkspacePageFrame, WorkspaceIdentityPanel, WorkspaceProjectSlot, WorkspaceAudienceLine, CommonWorkspaceToggle, ExpandableSection, LeaveFooter, WorkspaceList, WorkspaceGroup, WorkspaceCard } from '../chunk-Z7RX3X4E.js';
|
|
12
12
|
import { ProjectPicker, ProjectOptionRow, WorkspaceFormModal, ModalActionRow, FormErrorBanner, WorkspaceFieldsView, FormActions } from '../chunk-RAUSAVC7.js';
|
|
13
13
|
import { isAgentAccount, workspaceConversationCount, workspaceDocumentCount, isListedWorkspace, WORKSPACE_CATEGORY_FILTERS, projectFilterId, workspaceFilterAttributes, groupWorkspacesByProject, byRecentUpdate } from '../chunk-57CG33XJ.js';
|
|
14
14
|
import { SharedFileView, SharedFilesInbox } from '../chunk-4ML5AMMO.js';
|
|
15
|
-
import { ConnectedProfileCard, ConnectedSecuritySection, ConnectedIdentityVerification, ConnectedSessionsRow, ConnectedDangerZone, ConnectedLogoutDialog, ConnectedNotificationPreferences, ConnectedUserEntity, useAuthPages, ConnectedModelSelector, AgentSteps, MessageLiveSeconds, useSsoSignIn, resolveSsoName, completeSsoSignIn, ConnectedForgotPassword, ConnectedPasswordChangeDialog, ssoAccountStatus, AskAgainContext, ConnectedMessageArea
|
|
16
|
-
export { AgentSteps, AnswerTable, ArbiChat, AskAgainContext, ConnectedBranchControls, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedConversationDocumentPicker, ConnectedDangerZone, ConnectedEmbeddedChat, ConnectedForgotPassword, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedModelSelector, ConnectedNotificationPreferences, ConnectedPasswordChangeDialog, ConnectedProfileCard, ConnectedRequireVerified, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedThreadsPreview, ConnectedUserEntity, ConversationComposer, EmbeddedChatPanel, MessageDetailsModal, MessageLiveSeconds, PENDING_RECOVERY_KEY, PREMIUM_TIER_TAG, RunningSubagents, STANDARD_TIER_TAG, SessionStatusIcon,
|
|
17
|
-
import { useSelectWorkspace } from '../chunk-
|
|
18
|
-
export { useConnectedThreadActivity } from '../chunk-
|
|
19
|
-
import { FolderTile, FileTile, DocumentUser, UserAvatar, useDocumentFolders, DocumentNameCell, DocumentSharedCell, DocumentLabelsCell, RelatedDocumentsCell, DocumentFolderCell, StatusCell } from '../chunk-
|
|
20
|
-
export { ConnectedPendingSyncDialog, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, DocumentUser, FileTooltipContent, RelatedDocumentsCell, StatusCell, UserAvatar, isActiveDocumentStatus, openPendingSyncDialog, parseQuotaError, startMenuItem, useDocumentFolders, useResolvedDocStatus } from '../chunk-
|
|
21
|
-
import { FactSearchBar, FactSearchTotals, FactSearchPending, FactSearchNoMatches, FactSearchResult, FactsToolbar, FactsFieldsButton, FactComposer, FactDateInput, FactSourcesRow, FactsLoading, FactsLoadError, FactsEmptyState, FactsCalendar, FactsGanttPane, FactsBulkBar, FactSourceGroup, FactFieldRow, FactLabelsCell, enableFactTableColumnResize, createFactColumns, FactRowActions, sourceDocCount, DEFAULT_FACT_COLUMN_LABELS } from '../chunk-
|
|
15
|
+
import { ConnectedProfileCard, ConnectedSecuritySection, ConnectedIdentityVerification, ConnectedSessionsRow, ConnectedDangerZone, ConnectedLogoutDialog, ConnectedNotificationPreferences, ConnectedUserEntity, useAuthPages, ConnectedModelSelector, ConversationComposer, AgentSteps, MessageLiveSeconds, useOpenChunk, useWorkspaceDocTitles, useSsoSignIn, resolveSsoName, completeSsoSignIn, ConnectedForgotPassword, ConnectedPasswordChangeDialog, useContextualHints, ssoAccountStatus, AskAgainContext, ConnectedMessageArea } from '../chunk-TWSOU6SE.js';
|
|
16
|
+
export { AgentSteps, AnswerTable, ArbiChat, AskAgainContext, ConnectedBranchControls, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedConversationDocumentPicker, ConnectedDangerZone, ConnectedEmbeddedChat, ConnectedForgotPassword, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedModelSelector, ConnectedNotificationPreferences, ConnectedPasswordChangeDialog, ConnectedProfileCard, ConnectedRequireVerified, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedThreadsPreview, ConnectedUserEntity, ConversationComposer, EmbeddedChatPanel, MessageDetailsModal, MessageLiveSeconds, PENDING_RECOVERY_KEY, PREMIUM_TIER_TAG, RunningSubagents, STANDARD_TIER_TAG, SessionStatusIcon, WorkflowStepMessage, backUpOnSignup, defaultHost, renderConnectedUser, renderSessionStatusIcon, resolveSsoName, useAuthPages, useContextualHints, useModelPicker, useOpenChunk, useOpenWorkspaceIcon, useSlashItems, useSsoSignIn, useWorkspaceDocTitles } from '../chunk-TWSOU6SE.js';
|
|
17
|
+
import { useSelectWorkspace } from '../chunk-DBPPOJQM.js';
|
|
18
|
+
export { useConnectedThreadActivity } from '../chunk-DBPPOJQM.js';
|
|
19
|
+
import { FolderTile, FileTile, DocumentUser, UserAvatar, useDocumentFolders, DocumentNameCell, DocumentSharedCell, DocumentLabelsCell, RelatedDocumentsCell, DocumentFolderCell, StatusCell } from '../chunk-SBFQF3BU.js';
|
|
20
|
+
export { ConnectedPendingSyncDialog, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, DocumentUser, FileTooltipContent, RelatedDocumentsCell, StatusCell, UserAvatar, isActiveDocumentStatus, openPendingSyncDialog, parseQuotaError, startMenuItem, useDocumentFolders, useResolvedDocStatus } from '../chunk-SBFQF3BU.js';
|
|
21
|
+
import { FactSearchBar, FactSearchTotals, FactSearchPending, FactSearchNoMatches, FactSearchResult, FactsToolbar, FactsFieldsButton, FactComposer, FactDateInput, FactSourcesRow, FactsLoading, FactsLoadError, FactsEmptyState, FactsCalendar, FactsGanttPane, FactsBulkBar, FactSourceGroup, FactFieldRow, FactLabelsCell, enableFactTableColumnResize, createFactColumns, FactRowActions, sourceDocCount, DEFAULT_FACT_COLUMN_LABELS } from '../chunk-ZHHUEYSB.js';
|
|
22
22
|
import { docIdsOf, toFactCitations, EMPTY_FACT_DATE_FIELDS, withoutChunk, factDateSpanToFields, citedVersionRef, withChunk, factDateFieldsToSpan, withoutDoc, withDoc } from '../chunk-KGUSKGZE.js';
|
|
23
23
|
import { HomeLoadError, HomeFrame, HomeMain, HomeCenteredScroll, HomeCenteredColumn, DashboardRoot, DashboardBand, DashboardColumns, RecentList, DashboardAction, FactsStrip, GettingStartedStrip, FactMark, CreateTile } from '../chunk-Z5JLS5DX.js';
|
|
24
24
|
import { ProjectBandTitle, PlainBandTitle } from '../chunk-RQKWYKZY.js';
|
|
25
25
|
import '../chunk-5TDGVOR5.js';
|
|
26
26
|
import '../chunk-XRL4R2TT.js';
|
|
27
|
-
import { DraggableHeader, PremiumModelsFrame, ConnectionsLoading, ConnectionsError, ConnectionsEmpty, UsageToggle, SettingsPage, UsageSummary, AppearanceSettings, SettingsSwitchRow, SettingsSwitchGroup, callsSwitchState, UsageLineChart, formatSessionTtl, EmailWorkspaceDialogView, PlanStack, PlanNotice, PlanPickerCard, PlanPickerHeader, PricingToggle, PromoCodeInput, PlanActionButton, 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, FloatingPanel, ProjectRow, QuotaMeter, FilterChip, buildInvertedIndex, serverConnectionView, ServerConnectionButton, ModelProviderLabel, PlanInfoPopover, PlanCardGrid, ReferralRewardSummary, CheckoutDialogFrame, SyncFolderRow, SyncFolderStatus, PlanTierOption, PlanActionRow, SubscriptionStatusView, DailyCapField, ConnectionCard, ReferralRewardNote } from '../chunk-
|
|
28
|
-
import { useConnectedWorkspaceRole, ConnectedWorkflowLauncher, ConnectedWorkflowsTable, toWorkflowFieldDocument } from '../chunk-
|
|
29
|
-
export { ConnectedWorkflowDocumentsField, ConnectedWorkflowLauncher, ConnectedWorkflowsTable, DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS, toWorkflowFieldDocument, useConnectedAgentOptions, useConnectedWorkflowScopeSource, useConnectedWorkspaceRole, useDocxCommentTarget, useNativeDocxSupport } from '../chunk-
|
|
27
|
+
import { DraggableHeader, PremiumModelsFrame, ConnectionsLoading, ConnectionsError, ConnectionsEmpty, UsageToggle, SettingsPage, UsageSummary, AppearanceSettings, SettingsSwitchRow, SettingsSwitchGroup, callsSwitchState, UsageLineChart, formatSessionTtl, EmailWorkspaceDialogView, PlanStack, PlanNotice, PlanPickerCard, PlanPickerHeader, PricingToggle, PromoCodeInput, PlanActionButton, 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, FloatingPanel, ProjectRow, QuotaMeter, FilterChip, buildInvertedIndex, serverConnectionView, ServerConnectionButton, ModelProviderLabel, PlanInfoPopover, PlanCardGrid, ReferralRewardSummary, CheckoutDialogFrame, SyncFolderRow, SyncFolderStatus, PlanTierOption, PlanActionRow, SubscriptionStatusView, DailyCapField, ConnectionCard, ReferralRewardNote } from '../chunk-NRI5DKJE.js';
|
|
28
|
+
import { useConnectedWorkspaceRole, ConnectedWorkflowLauncher, ConnectedWorkflowsTable, toWorkflowFieldDocument } from '../chunk-EASXRDYQ.js';
|
|
29
|
+
export { ConnectedWorkflowDocumentsField, ConnectedWorkflowLauncher, ConnectedWorkflowsTable, DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS, toWorkflowFieldDocument, useConnectedAgentOptions, useConnectedWorkflowScopeSource, useConnectedWorkspaceRole, useDocxCommentTarget, useNativeDocxSupport } from '../chunk-EASXRDYQ.js';
|
|
30
30
|
import { groupCandidates } from '../chunk-MTSKK3BN.js';
|
|
31
31
|
import { BUILTIN_TEMPLATE_NAME, builtinHouseTemplate } from '../chunk-R4SUGJVR.js';
|
|
32
32
|
import { useOpenWorkflow } from '../chunk-DSTM7SY3.js';
|
|
@@ -36,7 +36,7 @@ import { DEFAULT_DOCUMENT_VIEWER_TABS } from '../chunk-V4CKYOQW.js';
|
|
|
36
36
|
export { ConnectedDocumentToolsProvider, DEFAULT_ASK_SUGGESTIONS, DEFAULT_DOCUMENT_VIEWER_LABELS, DEFAULT_DOCUMENT_VIEWER_TABS, useDocumentViewerSupport, useViewerDraftDocument, useViewerIsDetached, useViewerPassageCitation, useViewerStreamingDocument } from '../chunk-V4CKYOQW.js';
|
|
37
37
|
import { DocumentWorkspaceContext, ConnectedMarkdown, useDocumentWorkspace, WorkspaceDocumentReference } from '../chunk-QZ5FDIT6.js';
|
|
38
38
|
export { ConnectedMarkdown, DocumentChip, DocumentWorkspaceContext, ExternalLink, InternalDocLink, MailChip, MermaidDiagram, WorkspaceDocumentReference, useDocumentWorkspace } from '../chunk-QZ5FDIT6.js';
|
|
39
|
-
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, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, VendorLogo, FolderFilterButton, FolderPickerRow, UploadFrame, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, PrivacyExplainerModal, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, parseFolderSegments, AiReviewDialogView, MoveToFolderDialog, FolderCommandList, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, BulkTagEditorDialog, BulkReplaceDialog, DOCUMENTS_ROW_HEIGHT_INITIAL, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, FilesAddMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canEditDocumentFields, FieldLabelsSelect, UploadFooterBar, ShareToggle, ImportPanel, ImportFamilySection, ImportList, ImportRow, TaskSection, UploadDropArea, canChangeVisibility, ImportSummary, ImportAside, FolderSummary, ImportProgress, ImportRunActions, ImportHint, ImportActionButton, UploadUrlButton } from '../chunk-
|
|
39
|
+
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, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, VendorLogo, FolderFilterButton, FolderPickerRow, UploadFrame, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, PrivacyExplainerModal, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, parseFolderSegments, AiReviewDialogView, MoveToFolderDialog, FolderCommandList, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, BulkTagEditorDialog, BulkReplaceDialog, DOCUMENTS_ROW_HEIGHT_INITIAL, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, FilesAddMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canEditDocumentFields, FieldLabelsSelect, UploadFooterBar, ShareToggle, ImportPanel, ImportFamilySection, ImportList, ImportRow, TaskSection, UploadDropArea, canChangeVisibility, ImportSummary, ImportAside, FolderSummary, ImportProgress, ImportRunActions, ImportHint, ImportActionButton, UploadUrlButton } from '../chunk-HWNVAQBX.js';
|
|
40
40
|
import { ViewToggle, DocumentViewToggle } from '../chunk-OHRWYRTH.js';
|
|
41
41
|
import '../chunk-TSH726KP.js';
|
|
42
42
|
import { ModalBreadcrumbHeader } from '../chunk-RC6VTY2H.js';
|
|
@@ -47,11 +47,12 @@ import '../chunk-2YOVK524.js';
|
|
|
47
47
|
import '../chunk-6HKLTYNN.js';
|
|
48
48
|
import { SettingsPanel, SettingsDisclosure, SettingsSection, SettingsCard, SettingsRow } from '../chunk-PBQNZWSX.js';
|
|
49
49
|
import '../chunk-IA5BYEO7.js';
|
|
50
|
-
import { WorkspaceActivityList, TagTable,
|
|
50
|
+
import { WorkspaceActivityList, TagTable, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, documentCount, useTipsPlacement, tagTableDocx, tagTableLabels, TagDetail, tagDetailLabels, tagNoteLabel, tagKindDescription, Toolbar, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-ZHJVABQ6.js';
|
|
51
51
|
import { ThemeEditor } from '../chunk-TOE3LBYG.js';
|
|
52
52
|
import '../chunk-J77BACGX.js';
|
|
53
53
|
import { WorkspaceNotificationMenu, ThreadFollowMenuItem, ThreadFollowButton } from '../chunk-66NMPTOH.js';
|
|
54
54
|
import { MemberAvatarStack } from '../chunk-FUPAGAZB.js';
|
|
55
|
+
import { WELCOME_REPLAY_VIEW } from '../chunk-SK3GBHPJ.js';
|
|
55
56
|
import { EntityTooltip, EntityTooltipHeader, EntityTooltipStats, EntityTooltipHint } from '../chunk-3UIJLUXN.js';
|
|
56
57
|
import '../chunk-7RITEVXA.js';
|
|
57
58
|
import { TimelineZoomControl } from '../chunk-4EZVCGRL.js';
|
|
@@ -65,19 +66,19 @@ import '../chunk-EPGMOOM7.js';
|
|
|
65
66
|
import '../chunk-I6A5CHQV.js';
|
|
66
67
|
import { ChatPage, ConversationEmpty, MessageAlert } from '../chunk-LCL4DBCQ.js';
|
|
67
68
|
import { groupOutputsByConversation, flashMessage } from '../chunk-V2P2EJBA.js';
|
|
68
|
-
import { ComposerSend, ComposerVoiceButton,
|
|
69
|
+
import { ComposerSend, ComposerVoiceButton, ComposerDock, ComposerContainer, MessageSources, MessageAuthor, ScrollToBottom } from '../chunk-AAGR47JS.js';
|
|
69
70
|
import { PlainMailBodyEditor, MemberNameCell, MemberMutedText, MemberRoleCell, MemberListLoading, MemberBulkActions, RecipientPicker, buildMailFolderTree, MailFolderTree, AddContactsResults, AddContactsForm, emailTokens, EMPTY_CONTACT_FORM, contactToForm, contactStatusLabel, summarizeImport, matchesContact, contactName, primaryEmail, ActionMenu, draftMailCompose, replyMailCompose, emptyMailCompose, MailGrid, MailMessageView, DmThreadFrame, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, planContactInvites, MAX_INVITE_EMAILS, summarizeUnsentInvites, applyContactInviteResults, summarizeContactInvites, failContactInvites, validateContactForm, inviteEmail, formToContactCard, RoleSelect, DEFAULT_CONTACT_OUTCOME_LABELS, contactOutcomeMessage, MailDocumentPicker, parseMailRecipients } from '../chunk-4PYBPWGK.js';
|
|
70
71
|
import '../chunk-NBV56SGU.js';
|
|
71
72
|
import { isDefinitionsLabel, DOCX_MIME_TYPE, toDefinitionSource, definitionLabels } from '../chunk-IYUKJESY.js';
|
|
72
73
|
import { decodeWhitespaceEntities } from '../chunk-AF6RDAJF.js';
|
|
73
74
|
import { DraftingDocChip } from '../chunk-67TZA3L7.js';
|
|
74
75
|
import { ErrorBoundary } from '../chunk-3EWS6ECM.js';
|
|
75
|
-
import { LabelMultiSelectView } from '../chunk-
|
|
76
|
-
import { ActionCluster, usePanelHostSupport, PanelPortal, useSidebarController, DockZone, TipCard, PanelModeSwitcher } from '../chunk-
|
|
76
|
+
import { LabelMultiSelectView } from '../chunk-B3BD5IJR.js';
|
|
77
|
+
import { ActionCluster, usePanelHostSupport, PanelPortal, useSidebarController, DockZone, TipCard, PanelModeSwitcher } from '../chunk-7E5GV4R7.js';
|
|
77
78
|
import { workspaceKindColor, WorkspaceIdentity, prefetchChunk } from '../chunk-KYLNAAYI.js';
|
|
78
79
|
import { SidebarBadgeRow } from '../chunk-YUAPBWLL.js';
|
|
79
80
|
import '../chunk-DDCMLHXF.js';
|
|
80
|
-
import '../chunk-5B74B62N.js';
|
|
81
|
+
import { useCompactChat } from '../chunk-5B74B62N.js';
|
|
81
82
|
import { PageContainer, Shell } from '../chunk-D6T3SLUD.js';
|
|
82
83
|
import '../chunk-GHEQR4VN.js';
|
|
83
84
|
import '../chunk-UH7LTR2B.js';
|
|
@@ -87,16 +88,16 @@ import { tid } from '../chunk-AMTWY22T.js';
|
|
|
87
88
|
import { PageHeader } from '../chunk-XCVLUXFP.js';
|
|
88
89
|
import '../chunk-WKYKDTNM.js';
|
|
89
90
|
import '../chunk-ZCOVDK2E.js';
|
|
90
|
-
import { buildLibrarySkills, filterLibrarySkills, SKILL_SOURCE_LABELS, SKILL_TYPE_LABELS, SkillViewToggle, SkillFilterChips, SkillTile, SkillGenerateForm, SkillLibraryDetail, parseSkillFrontmatter, SKILL_MAIN_FILENAME, SkillEditForm, BUILTIN_SKILLS, DEFAULT_AGENT_CAPABILITIES, stripPersonaPreamble, AgentCreator, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TEMPLATES, AgentAvatarField, isValidAgentName, AgentConnectInstructions, groupAgentTasks, AgentGallery, goalProgress, AgentCard, ConsentPage, ConsentCard, ConsentHeader, ConsentNotice, ConsentSection, ConsentBulletList, ConsentStrong, ConsentText, ConfigForm, AgentEditView, AgentMainView, AgentCreatedView, AgentCreateView, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, deriveAnnotationName, ANNOTATE_ID, recordWorkflowUse, renderWorkflowIcon, openWorkflowLaunch, useWorkflowLaunchRequest, WorkflowRunStatus, ThreadStatusLine, TaskStartDialog, REMIND_TASK_ID,
|
|
91
|
+
import { buildLibrarySkills, filterLibrarySkills, SKILL_SOURCE_LABELS, SKILL_TYPE_LABELS, SkillViewToggle, SkillFilterChips, SkillTile, SkillGenerateForm, SkillLibraryDetail, parseSkillFrontmatter, SKILL_MAIN_FILENAME, SkillEditForm, BUILTIN_SKILLS, DEFAULT_AGENT_CAPABILITIES, stripPersonaPreamble, AgentCreator, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TEMPLATES, AgentAvatarField, isValidAgentName, AgentConnectInstructions, groupAgentTasks, AgentGallery, goalProgress, AgentCard, ConsentPage, ConsentCard, ConsentHeader, ConsentNotice, ConsentSection, ConsentBulletList, ConsentStrong, ConsentText, ConfigForm, AgentEditView, AgentMainView, AgentCreatedView, AgentCreateView, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, deriveAnnotationName, ANNOTATE_ID, recordWorkflowUse, renderWorkflowIcon, openWorkflowLaunch, useWorkflowLaunchRequest, WorkflowRunStatus, ThreadStatusLine, TaskStartDialog, REMIND_TASK_ID, moveTargets, NewThreadDialog, AgentBar, AgentBarNotes, AgentBarQueuedNote, AgentBarProbeAnswer, ConversationListView, ConversationTurnSpeaker, ConsentMessage, CopyableUrl, ConsentPermissionList, ConsentActions, ConsentFootnote, AgentBarStatus, AgentBarIconButton, AgentBarMenu, composePersona, newThreadToRequest, importSkillFile, importSkillFromUrl, skillSlug, serializeSkill, STATUS_LABELS, asTaskStatus, UploadTaskList, filterConversationRows, TaskEmptyState, TaskTable, workflowToSkillMarkdown, closeWorkflowLaunch, defaultTaskComposerValues } from '../chunk-V2QWATXQ.js';
|
|
91
92
|
import { EntityChip, fromPlanSteps, getCurrentAgentStepPresentation } from '../chunk-3TKRCYFN.js';
|
|
92
93
|
import '../chunk-LRPGXNMA.js';
|
|
93
94
|
import { MultiSelect } from '../chunk-CQCC7LE7.js';
|
|
94
95
|
import '../chunk-UCVGWGI6.js';
|
|
95
96
|
import '../chunk-TX6BIWIH.js';
|
|
96
|
-
import { documentScopeLabels, matchWorkflowScope } from '../chunk-
|
|
97
|
+
import { documentScopeLabels, matchWorkflowScope } from '../chunk-IRCGXKLB.js';
|
|
97
98
|
import '../chunk-4QUUU7GH.js';
|
|
98
99
|
import { SectionLabel } from '../chunk-MXF3MHYC.js';
|
|
99
|
-
import { TriStateFilterMenu } from '../chunk-
|
|
100
|
+
import { TriStateFilterMenu } from '../chunk-KG3W76BB.js';
|
|
100
101
|
import { composeWorkflowPrompt, isEmptyWorkflowScope, inputsFromContext, workflowsAccepting, stepStatesFromActivity, canAssign, assigneeName, runFieldsOf, promptFieldName, validateInputs, defaultInputs, buildLaunch, skillToWorkflow } from '../chunk-3D7SX5ZS.js';
|
|
101
102
|
import '../chunk-M4S75AEJ.js';
|
|
102
103
|
import '../chunk-5LXQPP2K.js';
|
|
@@ -140,15 +141,15 @@ import { openDialog, closeDialog, useDialogProps, ConfirmDialog } from '../chunk
|
|
|
140
141
|
import { ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
|
|
141
142
|
import '../chunk-UP3GCNPM.js';
|
|
142
143
|
import '../chunk-VUNV25KB.js';
|
|
143
|
-
import { useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, useArbiSessionState, selectDraft, useArbi, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useWorkspaces, useConversations, useRunConversation, useWorkspaceActivity, useWorkspaceUsers, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useCallsEnabled, useDocuments, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSkills, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useInstallSkillPack, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useAgents, useDeleteAgents, ConversationScope, useConversation, useAgentSession, useStartAgentSession, useCloseAgentSession, useAgentChats, useSwitchWorkspace, useWorkItems, ArtifactCanvas, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useFactsSearch, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, getWorkspaceKind, 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, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, useContacts, useInviteContacts, useDeleteContact, usePeopleSearch, toShellWorkspace, useSessions, useAuthorizeLimits, useTerminateSession, useUploadDocuments, useSetWorkspaceHouseTemplate, useSetDeploymentHouseTemplate, useCurrentUser, supportsHouseTemplates, workspaceHouseTemplateId, isDeploymentAdmin, useHouseTemplateCandidates, useWorkspaceArchive, useArchiveWorkspace, useUnarchiveWorkspace, isArchiveMoving, useIsSlow, useProducts, useCreateProject, useDeleteProject, 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, useArbiSession, useDeleteWorkspaces, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, useClaimSecureMail, useTransientView, useCalendarEvents, useCalendars, useCanHostCalls, useOpenCallMeetingChat, usePeople, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, useMailAttachmentText, useCalendarEventByUid, getPublicBookingPage, bookPublicSlot, PublicBookingError, useDocumentsSupport, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useUploadFromUrls, useUploadFiles, useUpdateDocTag, useRemoveDocTags, useOfflineDocumentIds, useKeepDocumentsOffline, useRemoveDocumentsOffline, useOpenViewerDocumentId, subscribeDocumentRows, useGenerateDocTags, useRefreshDocuments, useArbiWsStore, isTableViewOf, viewsOfTable, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, useWorkspaceProcessing, DISMISSED_TASK_TTL_MS, useDatabases, useCreateDatabase, useImportDatabase, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useRequestWorkspaceAccess, useCreateGroupChat, useChatArrivals, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useSignOut, useFeature, useIsEntitled, ImageCropper, useApplyChatModel, useConversationActivity, useConversationItems, threadTabId, useUpdateConversation, TaskThreadPendingError, useWorkflows, useStartTaskQuery, useCreateWork, useRunWorkflow, useMentionCandidates, useBuiltinCommands, useAgentRunControl, useDeleteConversation, useCanEditShared, useIsWorkspaceOwner, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, downloadRecoveryFile, cropImage, getRelatedTotal, isDeploymentUserNotification,
|
|
144
|
+
import { useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, useArbiSessionState, selectDraft, useAssistantName, assistantLabels, useArbi, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useWorkspaces, useConversations, useRunConversation, useWorkspaceActivity, useWorkspaceUsers, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, describeCalendarNotification, notificationUserName, describeServerNotification, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useCallsEnabled, useDocuments, serverNotificationBellEntry, documentDisplayName, useArbiWebSocket, isNotificationRow, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSkills, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useInstallSkillPack, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useAgents, useDeleteAgents, ConversationScope, useConversation, useAgentSession, useStartAgentSession, useCloseAgentSession, useAgentChats, useSwitchWorkspace, useWorkItems, ArtifactCanvas, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useFactsSearch, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, getWorkspaceKind, 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, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, useContacts, useInviteContacts, useDeleteContact, usePeopleSearch, toShellWorkspace, useSessions, useAuthorizeLimits, useTerminateSession, useUploadDocuments, useSetWorkspaceHouseTemplate, useSetDeploymentHouseTemplate, useCurrentUser, supportsHouseTemplates, workspaceHouseTemplateId, isDeploymentAdmin, useHouseTemplateCandidates, useWorkspaceArchive, useArchiveWorkspace, useUnarchiveWorkspace, isArchiveMoving, useIsSlow, useProducts, useCreateProject, useDeleteProject, 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, useArbiSession, useDeleteWorkspaces, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, useClaimSecureMail, useTransientView, useCalendarEvents, useCalendars, useCanHostCalls, useOpenCallMeetingChat, usePeople, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, useMailAttachmentText, useCalendarEventByUid, getPublicBookingPage, bookPublicSlot, PublicBookingError, useDocumentsSupport, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useUploadFromUrls, useUploadFiles, useUpdateDocTag, useRemoveDocTags, useOfflineDocumentIds, useKeepDocumentsOffline, useRemoveDocumentsOffline, useOpenViewerDocumentId, subscribeDocumentRows, useGenerateDocTags, useRefreshDocuments, useArbiWsStore, isTableViewOf, viewsOfTable, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, useWorkspaceProcessing, DISMISSED_TASK_TTL_MS, useDatabases, useCreateDatabase, useImportDatabase, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useRequestWorkspaceAccess, useCreateGroupChat, useChatArrivals, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useSignOut, useFeature, useIsEntitled, ImageCropper, useApplyChatModel, useConversationActivity, useConversationItems, threadTabId, useUpdateConversation, TaskThreadPendingError, useWorkflows, useStartTaskQuery, useCreateWork, useRunWorkflow, useMentionCandidates, useBuiltinCommands, useAgentRunControl, useDeleteConversation, useCanEditShared, useIsWorkspaceOwner, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, GitHubIcon, AppleIcon, GoogleIcon, LinkedInIcon, downloadRecoveryFile, cropImage, getRelatedTotal, isDeploymentUserNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, isSignatureNotificationType, inputRequestTitle, WORK_NOTIFICATION_LABELS, useConfigs, usePassageQuotes, useUpdateFact, useDeleteFact, useCreateFact, useAccountClient, formatGbpPerMillionTokens, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useInvalidateEntitlements, useCreateWorkspace, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useConfig, useSaveConfigField, SHAREPOINT_VENDORS, isDriveSyncVendor, useDatabase, useDatabaseRows, useUpdateDatabase, useDeleteDatabase, useAddDatabaseRows, useUpdateDatabaseRow, useDeleteDatabaseRows, useImportDatabaseRows, useExportDatabase, DATABASE_ROWS_PAGE, useInvalidateAfterTransfer, DmAvatar, ConversationList, useDeleteConfig, isFullConfig, resolveConfigModel, useChatUnreadTotal, useUnreadByPeer, useArbiWsStatus, useMarkDocumentShared, useConversationSearch, useWorkspaceRole, useConversationDocuments, useConversationData, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, buildPendingFirstTurn, useConversationTurn, useAskAgain, transcriptSegmentOf, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, ArbiBotHeadIcon, useProjectConversationUsage, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, useCancelMailboxSync, useMailboxSyncProgress, useRefreshConnectorsOnRunEnd, useCancelDriveSync, useDriveFolders, useDriveSyncProgress, useDriveSyncEstimate, useSearchDatabaseRows, callSession, isReplayableArbiMutation, useArbiHost, useSessionView, useConnectorAutoSync, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom, useTriggerMailboxSync, useTriggerDriveSync } from '@arbidocs/react';
|
|
144
145
|
export { viewsOfTable } from '@arbidocs/react';
|
|
145
|
-
import { getFileTypeIcon, getDocumentTitle, getEntityLabel, Badge, ThreadVisibilityIcon, Button, getUserDisplayName, createUserAvatarIcon, Label, Input, cn, Textarea, Dialog, DialogContent, DialogTitle, EntityIcon, DialogDescription, DialogHeader, tagKindNouns, tagKindTitle, formatFriendlyDate, getTagTypeLabel, VisibilityToggle, getEntityColor, ShieldIcon, isImageDocument, IconToggle, Switch, Checkbox, entityNoun, DialogTrigger, Tooltip, TooltipTrigger, TooltipContent, EntityPill, CommandGroup, CommandItem, ProjectEntity, DialogFooter, Tabs, TabsList, TabsTrigger, TabsContent, isAgent, getDocIcon, getDocumentNature, getDocumentAuthor, markdownToPlainText, getDocumentSubject, formatDocDate, getDocumentDate, friendlyFileType, formatFolderLabel, canonicalFolderPath, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Slider, formatRelativeTime, AgentBadge, PresenceLabel, UserMenu, Popover, PopoverAnchor, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, getUserAvatarColor, ArbiIcon, DocumentEntity, Avatar, AvatarImage, AvatarFallback, getUserInitials, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, UserEntity, agentAvatarColors, ProviderIcon, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Progress } from '@arbidocs/react/ui';
|
|
146
|
+
import { getFileTypeIcon, getDocumentTitle, getEntityLabel, Badge, ThreadVisibilityIcon, Button, getUserDisplayName, createUserAvatarIcon, Label, Input, cn, Textarea, Dialog, DialogContent, DialogTitle, EntityIcon, DialogDescription, DialogHeader, tagKindNouns, tagKindTitle, formatFriendlyDate, getTagTypeLabel, VisibilityToggle, getEntityColor, ShieldIcon, isImageDocument, IconToggle, Switch, Checkbox, entityNoun, DialogTrigger, Tooltip, TooltipTrigger, TooltipContent, EntityPill, CommandGroup, CommandItem, ProjectEntity, DialogFooter, Tabs, TabsList, TabsTrigger, TabsContent, isAgent, getDocIcon, getDocumentNature, getDocumentAuthor, markdownToPlainText, getDocumentSubject, formatDocDate, getDocumentDate, friendlyFileType, formatFolderLabel, canonicalFolderPath, TagEntity, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Slider, formatRelativeTime, AgentBadge, PresenceLabel, UserMenu, Popover, PopoverAnchor, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, getUserAvatarColor, ArbiIcon, DocumentEntity, Avatar, AvatarImage, AvatarFallback, getUserInitials, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, UserEntity, agentAvatarColors, ProviderIcon, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Progress } from '@arbidocs/react/ui';
|
|
146
147
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
147
148
|
import { lazy, memo, useState, useEffect, forwardRef, useRef, useMemo, useLayoutEffect, useCallback, useImperativeHandle, createContext, Suspense, useSyncExternalStore, createElement, useContext, Fragment as Fragment$1, useId } from 'react';
|
|
148
149
|
import { hasMessageBody, notify, useNotify, sharedSearchSession, takePendingSearch, selectUnread, NotificationBell, useTurnDocumentId, useOpenDocumentId, useRegisterOpenDocument } from '@arbidocs/react/shell';
|
|
149
150
|
import { useQueryClient } from '@tanstack/react-query';
|
|
150
151
|
import { parseCallFragment, isMessageType, unlockIdentityWithPassword, createRecoveryUrl, bytesToBase64 } from '@arbidocs/client';
|
|
151
|
-
import { Bell, Activity, Info, UserCheck, Trash2, Loader2, Upload, Link2, Search, Plus, ArrowLeft, Bot, Tags, CheckCircle2, Milestone, LogOut, Wifi, RotateCcw, Mail, ExternalLink, Lock, HardDrive, User, HatGlasses, MessageSquare, Code2, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, ChevronDown, ChevronRight, Star, Check, UserPlus, FolderInput, FileText, Archive, ArchiveRestore, Download, Printer, SquareStack, Table, FolderKanban, Users, Sparkles, Cake, X, UserRound, MessagesSquare, Tag, Settings, Video, CalendarDays, Clock, MapPin, Globe, Calendar, Hash, File as File$1, FileType, FolderOpen, Fingerprint, Share2, Paperclip, CircleCheck, Copy, Network, CheckCircle, TriangleAlert, LoaderCircle, NotebookPen, Columns3, EyeOff, Eye, ArrowUp, ArrowDown, ZoomOut, Camera, Send, FilePlus2, Monitor, Eraser, UserMinus, KeyRound, RefreshCw, UsersRound, Infinity, Bug, Crop, Undo2, ImageUp, Wrench, RotateCw, Link, Shield, ClipboardList, Square, Table2, CalendarClock, BrainCircuit, ShieldCheck, Zap, KeySquare, BellOff, CheckCheck, FolderUp, ArrowUpCircle, Contact, Scale, Pencil, BookA, Quote, Inbox, CalendarX, CalendarCheck, Phone, Play, Pause, Workflow, Minimize2, Maximize2, Minus, CalendarSearch, DoorOpen, AlertCircle, ClockFading, AlertTriangle } from 'lucide-react';
|
|
152
|
+
import { Bell, Activity, Info, UserCheck, Trash2, Loader2, Upload, Link2, Search, Plus, ArrowLeft, Bot, Tags, CheckCircle2, Milestone, LogOut, Wifi, RotateCcw, Mail, ExternalLink, Lock, HardDrive, User, HatGlasses, MessageSquare, Code2, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, ChevronDown, ChevronRight, Star, Check, UserPlus, FolderInput, FileText, Archive, ArchiveRestore, Download, Printer, SquareStack, Table, FolderKanban, Users, Sparkles, Cake, X, UserRound, MessagesSquare, Tag, Settings, Video, CalendarDays, Clock, MapPin, Globe, Calendar, Hash, File as File$1, FileType, FolderOpen, Fingerprint, Share2, Paperclip, CircleCheck, Copy, Network, CheckCircle, TriangleAlert, LoaderCircle, NotebookPen, Columns3, EyeOff, Eye, ArrowUp, ArrowDown, ZoomOut, Camera, Send, FilePlus2, Monitor, Eraser, UserMinus, KeyRound, RefreshCw, UsersRound, Infinity, Bug, Crop, Undo2, ImageUp, MessageCircleQuestionMark, Wrench, RotateCw, Link, Shield, ClipboardList, Lightbulb, Square, Table2, CalendarClock, BrainCircuit, ShieldCheck, Zap, KeySquare, BellOff, CheckCheck, FolderUp, ArrowUpCircle, Contact, Scale, MoreHorizontal, Pencil, BookA, Quote, Inbox, CalendarX, CalendarCheck, Phone, Play, Pause, Workflow, Minimize2, Maximize2, Minus, CalendarSearch, DoorOpen, AlertCircle, ClockFading, AlertTriangle } from 'lucide-react';
|
|
152
153
|
import { downloadBlob, useIsOnline, DocumentToolsProvider, useSignatureVerification, SignatureVerificationError } from '@arbidocs/react/document-tools';
|
|
153
154
|
import { useStreamedArtifact, parseVersionRef } from '@arbidocs/react/artifacts';
|
|
154
155
|
import { FLAT_TAG_KINDS, getEligibleParentTags, canTagHaveParent, isFlatKind, TAG_NESTING_MAX_DEPTH, TAG_KINDS, formatFileSize, filterDocumentTags, isLabelTag, refusalReason, isPresenceTag, isAnnotationTag, flattenTagTree, tagsForScope, tagsOfGroup, chats, buildRetrievalFullContextTool, buildRetrievalChunkTool, computeRunStats, topLevelAgentSteps, getCurrentStep, extractSubagentLanes, getChildTags, tagUseCount, PRESENCE_KINDS, isEntityTag, DuplicateContactError, wouldCreateTagCycle, ArbiApiError, getTagDescendantIds } from '@arbidocs/sdk/browser';
|
|
@@ -624,10 +625,7 @@ function SignatureEvent({
|
|
|
624
625
|
const target = describeServerNotification(row2)?.target;
|
|
625
626
|
const openIt = () => target && open(target);
|
|
626
627
|
const { DocumentChip: DocumentChip2 } = renderers;
|
|
627
|
-
const unnamed = /* @__PURE__ */
|
|
628
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-sm", children: type === "signature_requested" ? "a document" : "the document" }),
|
|
629
|
-
documentId && /* @__PURE__ */ jsx(ActionButton, { label: "Open", onClick: openIt })
|
|
630
|
-
] });
|
|
628
|
+
const unnamed = /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-sm", children: type === "signature_requested" ? "a document" : "the document" }) });
|
|
631
629
|
const wording = "min-w-0 shrink-[100] truncate text-sm";
|
|
632
630
|
return /* @__PURE__ */ jsxs(
|
|
633
631
|
"div",
|
|
@@ -673,17 +671,9 @@ function PersistedEvent({
|
|
|
673
671
|
const type = row2.type;
|
|
674
672
|
const isIncoming = item.kind === "incoming";
|
|
675
673
|
const user = renderers.renderUser;
|
|
676
|
-
const target = () => describeServerNotification(row2)?.target;
|
|
677
|
-
const openTarget = () => {
|
|
678
|
-
const t = target();
|
|
679
|
-
if (t) open(t);
|
|
680
|
-
};
|
|
681
674
|
if (type === "file_shared") {
|
|
682
675
|
const entry = describeServerNotification(row2);
|
|
683
|
-
return /* @__PURE__ */
|
|
684
|
-
/* @__PURE__ */ jsx("span", { children: entry?.title }),
|
|
685
|
-
entry?.target && /* @__PURE__ */ jsx(ActionButton, { label: entry.actionLabel ?? "Open file", onClick: openTarget })
|
|
686
|
-
] });
|
|
676
|
+
return /* @__PURE__ */ jsx("div", { className: "flex h-full items-center gap-2 text-sm", children: /* @__PURE__ */ jsx("span", { children: entry?.title }) });
|
|
687
677
|
}
|
|
688
678
|
if (isWorkspaceNotificationType(type)) {
|
|
689
679
|
if (isIncoming)
|
|
@@ -702,10 +692,7 @@ function PersistedEvent({
|
|
|
702
692
|
}
|
|
703
693
|
if (type === "workspace_access_request") {
|
|
704
694
|
if (isIncoming)
|
|
705
|
-
return /* @__PURE__ */
|
|
706
|
-
/* @__PURE__ */ jsx("span", { className: PHRASE_CLASS, children: "requested workspace access" }),
|
|
707
|
-
/* @__PURE__ */ jsx(ActionButton, { label: "Review", onClick: openTarget })
|
|
708
|
-
] });
|
|
695
|
+
return /* @__PURE__ */ jsx(PersonLine, { person: user(sender), children: /* @__PURE__ */ jsx("span", { className: PHRASE_CLASS, children: "requested workspace access" }) });
|
|
709
696
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center h-full gap-1.5 text-muted-foreground", children: [
|
|
710
697
|
/* @__PURE__ */ jsx("span", { className: PHRASE_CLASS, children: "Requested workspace access from" }),
|
|
711
698
|
user(recipient)
|
|
@@ -713,15 +700,12 @@ function PersistedEvent({
|
|
|
713
700
|
}
|
|
714
701
|
if (isDeploymentUserNotification(type)) {
|
|
715
702
|
const entry = describeServerNotification(row2);
|
|
716
|
-
return /* @__PURE__ */
|
|
703
|
+
return /* @__PURE__ */ jsx(
|
|
717
704
|
"div",
|
|
718
705
|
{
|
|
719
706
|
className: "flex h-full items-center gap-1.5 text-sm text-muted-foreground",
|
|
720
707
|
"data-testid": "notification-deployment-user",
|
|
721
|
-
children:
|
|
722
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", title: entry?.title, children: entry?.title }),
|
|
723
|
-
entry?.target && /* @__PURE__ */ jsx(ActionButton, { label: entry.actionLabel ?? "Open", onClick: openTarget })
|
|
724
|
-
]
|
|
708
|
+
children: /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", title: entry?.title, children: entry?.title })
|
|
725
709
|
}
|
|
726
710
|
);
|
|
727
711
|
}
|
|
@@ -733,8 +717,7 @@ function PersistedEvent({
|
|
|
733
717
|
return /* @__PURE__ */ jsxs("div", { className: "flex h-full items-center gap-1.5 text-muted-foreground", children: [
|
|
734
718
|
!isIncoming && /* @__PURE__ */ jsx("span", { className: "text-sm", children: "You mentioned" }),
|
|
735
719
|
isIncoming ? user(sender) : user(recipient),
|
|
736
|
-
/* @__PURE__ */ jsx("span", { className: PHRASE_CLASS, children: inDocument ? isIncoming ? "mentioned you in a document comment" : "in a document comment" : isIncoming ? "mentioned you in a conversation" : "in a conversation" })
|
|
737
|
-
(row2.conversation_ext_id || inDocument) && /* @__PURE__ */ jsx(ActionButton, { label: "Open", onClick: openTarget })
|
|
720
|
+
/* @__PURE__ */ jsx("span", { className: PHRASE_CLASS, children: inDocument ? isIncoming ? "mentioned you in a document comment" : "in a document comment" : isIncoming ? "mentioned you in a conversation" : "in a conversation" })
|
|
738
721
|
] });
|
|
739
722
|
}
|
|
740
723
|
if (type === "thread_reply" || type === "document_activity") {
|
|
@@ -745,8 +728,7 @@ function PersistedEvent({
|
|
|
745
728
|
"data-testid": "notification-relevance",
|
|
746
729
|
children: [
|
|
747
730
|
user(sender),
|
|
748
|
-
/* @__PURE__ */ jsx("span", { className: PHRASE_CLASS, children: type === "thread_reply" ? "replied in a thread" : documentActivityPhrase(row2.content) })
|
|
749
|
-
/* @__PURE__ */ jsx(ActionButton, { label: "Open", onClick: openTarget })
|
|
731
|
+
/* @__PURE__ */ jsx("span", { className: PHRASE_CLASS, children: type === "thread_reply" ? "replied in a thread" : documentActivityPhrase(row2.content) })
|
|
750
732
|
]
|
|
751
733
|
}
|
|
752
734
|
);
|
|
@@ -755,32 +737,21 @@ function PersistedEvent({
|
|
|
755
737
|
return /* @__PURE__ */ jsx(SignatureEvent, { row: row2, isIncoming, open, renderers });
|
|
756
738
|
const workLabel = type === "agent_input_requested" ? inputRequestTitle(row2.content) : WORK_NOTIFICATION_LABELS[type];
|
|
757
739
|
if (workLabel)
|
|
758
|
-
return /* @__PURE__ */
|
|
740
|
+
return /* @__PURE__ */ jsx(
|
|
759
741
|
"div",
|
|
760
742
|
{
|
|
761
743
|
className: "flex h-full items-center gap-1.5 text-sm text-muted-foreground",
|
|
762
744
|
title: workLabel,
|
|
763
745
|
"data-testid": "notification-work",
|
|
764
|
-
children:
|
|
765
|
-
/* @__PURE__ */ jsx("span", { className: `min-w-0 truncate ${type === "workflow_failed" ? "text-red-text" : ""}`, children: workLabel }),
|
|
766
|
-
row2.conversation_ext_id && /* @__PURE__ */ jsx(
|
|
767
|
-
ActionButton,
|
|
768
|
-
{
|
|
769
|
-
label: "Open",
|
|
770
|
-
onClick: () => open({
|
|
771
|
-
kind: "conversation",
|
|
772
|
-
workspaceId: row2.workspace_ext_id ?? void 0,
|
|
773
|
-
conversationId: row2.conversation_ext_id,
|
|
774
|
-
...row2.message_ext_id ? { messageId: row2.message_ext_id } : {}
|
|
775
|
-
})
|
|
776
|
-
}
|
|
777
|
-
)
|
|
778
|
-
]
|
|
746
|
+
children: /* @__PURE__ */ jsx("span", { className: `min-w-0 truncate ${type === "workflow_failed" ? "text-red-text" : ""}`, children: workLabel })
|
|
779
747
|
}
|
|
780
748
|
);
|
|
781
|
-
return /* @__PURE__ */ jsx("div", { className: "flex items-center h-full text-sm text-muted-foreground", children: type
|
|
749
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center h-full text-sm text-muted-foreground", children: (describeCalendarNotification(row2, { senderName: notificationUserName(row2.sender) }) ?? describeServerNotification(row2))?.title ?? row2.content ?? type ?? "Notification" });
|
|
782
750
|
}
|
|
783
|
-
function SessionEvent({
|
|
751
|
+
function SessionEvent({
|
|
752
|
+
item,
|
|
753
|
+
open
|
|
754
|
+
}) {
|
|
784
755
|
const entry = item.entry;
|
|
785
756
|
if (!entry) return null;
|
|
786
757
|
return /* @__PURE__ */ jsxs(
|
|
@@ -790,7 +761,16 @@ function SessionEvent({ item }) {
|
|
|
790
761
|
title: entry.title,
|
|
791
762
|
children: [
|
|
792
763
|
entry.html ? /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", dangerouslySetInnerHTML: { __html: entry.html } }) : /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: entry.title }),
|
|
793
|
-
entry.onSelect
|
|
764
|
+
(entry.onSelect || entry.href) && /* @__PURE__ */ jsx(
|
|
765
|
+
ActionButton,
|
|
766
|
+
{
|
|
767
|
+
label: entry.actionLabel ?? "Open",
|
|
768
|
+
onClick: () => {
|
|
769
|
+
if (entry.onSelect) entry.onSelect();
|
|
770
|
+
else if (entry.href) open({ kind: "url", url: entry.href });
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
)
|
|
794
774
|
]
|
|
795
775
|
}
|
|
796
776
|
);
|
|
@@ -800,9 +780,19 @@ function NotificationEvent({
|
|
|
800
780
|
open,
|
|
801
781
|
renderers
|
|
802
782
|
}) {
|
|
803
|
-
if (!item.persisted) return /* @__PURE__ */ jsx(SessionEvent, { item });
|
|
783
|
+
if (!item.persisted) return /* @__PURE__ */ jsx(SessionEvent, { item, open });
|
|
804
784
|
if (!item.row) return null;
|
|
805
|
-
|
|
785
|
+
const described = describeCalendarNotification(item.row, { senderName: notificationUserName(item.row.sender) }) ?? describeServerNotification(item.row);
|
|
786
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex h-full min-w-0 items-center gap-2", children: [
|
|
787
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx(PersistedEvent, { item, row: item.row, open, renderers }) }),
|
|
788
|
+
described?.target && /* @__PURE__ */ jsx(
|
|
789
|
+
ActionButton,
|
|
790
|
+
{
|
|
791
|
+
label: described.actionLabel ?? "Open",
|
|
792
|
+
onClick: () => open(described.target)
|
|
793
|
+
}
|
|
794
|
+
)
|
|
795
|
+
] });
|
|
806
796
|
}
|
|
807
797
|
function categoryOf(item) {
|
|
808
798
|
if (!item.persisted)
|
|
@@ -814,25 +804,9 @@ function categoryOf(item) {
|
|
|
814
804
|
function useColumns(formatTime, onOpen, renderers) {
|
|
815
805
|
return useMemo(
|
|
816
806
|
() => [
|
|
817
|
-
{
|
|
818
|
-
colId: "timestamp",
|
|
819
|
-
headerName: "Time",
|
|
820
|
-
field: "timestamp",
|
|
821
|
-
width: 150,
|
|
822
|
-
filter: false,
|
|
823
|
-
sortable: true,
|
|
824
|
-
sort: "desc",
|
|
825
|
-
cellRenderer: (params) => {
|
|
826
|
-
const isNew = params.data?.kind === "incoming" && params.data.row && !params.data.row.read;
|
|
827
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex items-center h-full gap-2", children: [
|
|
828
|
-
isNew && /* @__PURE__ */ jsx("div", { className: "w-2.5 h-2.5 rounded-full bg-primary flex-shrink-0" }),
|
|
829
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: params.value ? formatTime(params.value) : "Unknown" })
|
|
830
|
-
] });
|
|
831
|
-
}
|
|
832
|
-
},
|
|
833
807
|
{
|
|
834
808
|
colId: "event",
|
|
835
|
-
headerName: "
|
|
809
|
+
headerName: "Notification",
|
|
836
810
|
flex: 1,
|
|
837
811
|
minWidth: 160,
|
|
838
812
|
// A docked panel leaves this column ~150px: keep the cell's own padding small so the
|
|
@@ -844,20 +818,38 @@ function useColumns(formatTime, onOpen, renderers) {
|
|
|
844
818
|
},
|
|
845
819
|
{
|
|
846
820
|
colId: "category",
|
|
847
|
-
headerName: "
|
|
848
|
-
width:
|
|
821
|
+
headerName: "Type",
|
|
822
|
+
width: 64,
|
|
849
823
|
filter: false,
|
|
850
824
|
sortable: true,
|
|
851
825
|
valueGetter: (params) => params.data ? categoryOf(params.data).label : "",
|
|
852
826
|
cellRenderer: (params) => {
|
|
853
827
|
if (!params.data) return null;
|
|
854
|
-
const workspaceId = params.data.row?.workspace_ext_id;
|
|
855
|
-
const workspace = workspaceId ? renderers.renderWorkspace(workspaceId) : null;
|
|
856
|
-
if (workspace) return /* @__PURE__ */ jsx("div", { className: "flex items-center h-full", children: workspace });
|
|
857
828
|
const { icon: icon2, label } = categoryOf(params.data);
|
|
858
|
-
return /* @__PURE__ */
|
|
859
|
-
|
|
860
|
-
|
|
829
|
+
return /* @__PURE__ */ jsx(
|
|
830
|
+
"div",
|
|
831
|
+
{
|
|
832
|
+
className: "flex items-center h-full text-muted-foreground",
|
|
833
|
+
title: label,
|
|
834
|
+
"aria-label": label,
|
|
835
|
+
children: icon2
|
|
836
|
+
}
|
|
837
|
+
);
|
|
838
|
+
}
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
colId: "timestamp",
|
|
842
|
+
headerName: "Time",
|
|
843
|
+
field: "timestamp",
|
|
844
|
+
width: 150,
|
|
845
|
+
filter: false,
|
|
846
|
+
sortable: true,
|
|
847
|
+
sort: "desc",
|
|
848
|
+
cellRenderer: (params) => {
|
|
849
|
+
const isNew = params.data?.kind === "incoming" && params.data.row && !params.data.row.read;
|
|
850
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center h-full gap-2", children: [
|
|
851
|
+
isNew && /* @__PURE__ */ jsx("div", { className: "w-2.5 h-2.5 rounded-full bg-primary flex-shrink-0" }),
|
|
852
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: params.value ? formatTime(params.value) : "Unknown" })
|
|
861
853
|
] });
|
|
862
854
|
}
|
|
863
855
|
}
|
|
@@ -3219,11 +3211,21 @@ function ConnectedTagTable({
|
|
|
3219
3211
|
const updateSchema = useUpdateTagKindSchema();
|
|
3220
3212
|
const table = useMemo(() => {
|
|
3221
3213
|
if (!schema.data || !rows.data) return void 0;
|
|
3222
|
-
|
|
3214
|
+
let narrowed = narrowTagTable(
|
|
3223
3215
|
{ columns: schema.data.fields, rows: rows.data },
|
|
3224
3216
|
filter?.matches,
|
|
3225
3217
|
linksLimit
|
|
3226
3218
|
);
|
|
3219
|
+
if (narrowed && props.onOpenTaggedItems && filter?.matches) {
|
|
3220
|
+
const totals = new Map(rows.data.map((row2) => [row2.external_id, row2.links]));
|
|
3221
|
+
narrowed = {
|
|
3222
|
+
...narrowed,
|
|
3223
|
+
rows: narrowed.rows.map((row2) => ({
|
|
3224
|
+
...row2,
|
|
3225
|
+
links: totals.get(row2.external_id) ?? row2.links
|
|
3226
|
+
}))
|
|
3227
|
+
};
|
|
3228
|
+
}
|
|
3227
3229
|
const text2 = filter?.text?.trim().toLowerCase();
|
|
3228
3230
|
if (!narrowed || !text2) return narrowed;
|
|
3229
3231
|
const fields = filter?.fields ?? ["name"];
|
|
@@ -3234,7 +3236,7 @@ function ConnectedTagTable({
|
|
|
3234
3236
|
(row2) => fields.includes("name") && row2.name.toLowerCase().includes(text2) || fields.includes("values") && tagValueText(row2, nameOf).toLowerCase().includes(text2)
|
|
3235
3237
|
)
|
|
3236
3238
|
};
|
|
3237
|
-
}, [schema.data, rows.data, filter, linksLimit, allTags]);
|
|
3239
|
+
}, [schema.data, rows.data, filter, linksLimit, allTags, props.onOpenTaggedItems]);
|
|
3238
3240
|
const fail2 = (fallback) => (e) => notify17(refusalReason(e, fallback), "error");
|
|
3239
3241
|
const snapshot2 = (data) => {
|
|
3240
3242
|
const title = exportTitle ?? tagKindTitle(kind, { plural: true });
|
|
@@ -3481,7 +3483,6 @@ function ConnectedTagForm({
|
|
|
3481
3483
|
const nestingEnabled = Boolean(availableTags) && !group && !flatKind;
|
|
3482
3484
|
const nameOnRow = !isCreate && !!group;
|
|
3483
3485
|
const showParentPicker = nestingEnabled && !hasChildren && parentOptions.length > 0;
|
|
3484
|
-
const canClearParent = isCreate || !tag?.parent_ext_id;
|
|
3485
3486
|
useEffect(() => {
|
|
3486
3487
|
if (autoFocus && inputRef.current) inputRef.current.focus();
|
|
3487
3488
|
}, [autoFocus]);
|
|
@@ -3587,7 +3588,6 @@ function ConnectedTagForm({
|
|
|
3587
3588
|
{
|
|
3588
3589
|
value: NO_PARENT,
|
|
3589
3590
|
label: "Top level",
|
|
3590
|
-
isDisabled: !canClearParent,
|
|
3591
3591
|
testId: "inline-tag-form-parent-option-none"
|
|
3592
3592
|
},
|
|
3593
3593
|
...parentOptions.map((option) => ({
|
|
@@ -3595,8 +3595,7 @@ function ConnectedTagForm({
|
|
|
3595
3595
|
label: option.name,
|
|
3596
3596
|
testId: `inline-tag-form-parent-option-${option.external_id}`
|
|
3597
3597
|
}))
|
|
3598
|
-
]
|
|
3599
|
-
hint: !canClearParent ? "This field can move to a different parent, but the API has no way to move it back to the top level." : void 0
|
|
3598
|
+
]
|
|
3600
3599
|
}
|
|
3601
3600
|
),
|
|
3602
3601
|
nestingEnabled && hasChildren && /* @__PURE__ */ jsxs(TagFormNote, { testId: "inline-tag-form-parent-locked", children: [
|
|
@@ -3633,7 +3632,7 @@ function ConnectedTagForm({
|
|
|
3633
3632
|
/* @__PURE__ */ jsx(
|
|
3634
3633
|
TagFormFooter,
|
|
3635
3634
|
{
|
|
3636
|
-
sharedToggle: isCreate ? /* @__PURE__ */ jsx(
|
|
3635
|
+
sharedToggle: isCreate || !group ? /* @__PURE__ */ jsx(
|
|
3637
3636
|
TagFormSharedToggle,
|
|
3638
3637
|
{
|
|
3639
3638
|
label: "Shared with workspace",
|
|
@@ -3703,8 +3702,7 @@ function ConnectedTagEditorDialog({
|
|
|
3703
3702
|
kind: data.kind,
|
|
3704
3703
|
shared: data.shared,
|
|
3705
3704
|
instruction: data.instruction,
|
|
3706
|
-
|
|
3707
|
-
...data.parent_ext_id ? { parent_ext_id: data.parent_ext_id } : {}
|
|
3705
|
+
...data.parent_ext_id !== void 0 ? { parent_ext_id: data.parent_ext_id } : {}
|
|
3708
3706
|
}
|
|
3709
3707
|
});
|
|
3710
3708
|
notify17(`Saved "${data.name}"`, "success");
|
|
@@ -3768,7 +3766,13 @@ function TagCombineFilter({
|
|
|
3768
3766
|
if (!ofKind.length) continue;
|
|
3769
3767
|
const rows = flattenTagTree(ofKind);
|
|
3770
3768
|
for (const { tag, depth } of rows)
|
|
3771
|
-
options3.push({
|
|
3769
|
+
options3.push({
|
|
3770
|
+
id: tag.external_id,
|
|
3771
|
+
label: tag.name,
|
|
3772
|
+
displayLabel: /* @__PURE__ */ jsx(TagEntity, { tag, showTooltip: false }),
|
|
3773
|
+
count: tagUseCount(tag),
|
|
3774
|
+
depth
|
|
3775
|
+
});
|
|
3772
3776
|
groups2.push({
|
|
3773
3777
|
label: tagKindTitle(kind, { plural: true }),
|
|
3774
3778
|
options: rows.map((r) => r.tag.external_id),
|
|
@@ -3807,6 +3811,14 @@ function TagFilterChips({
|
|
|
3807
3811
|
FilterChip,
|
|
3808
3812
|
{
|
|
3809
3813
|
label: name(id),
|
|
3814
|
+
labelContent: /* @__PURE__ */ jsx(
|
|
3815
|
+
TagEntity,
|
|
3816
|
+
{
|
|
3817
|
+
tag: tags.find((t) => t.external_id === id) ?? { external_id: id, name: name(id) },
|
|
3818
|
+
showTooltip: false
|
|
3819
|
+
}
|
|
3820
|
+
),
|
|
3821
|
+
className: "rounded-full! bg-transparent! border-0! px-0! [&>span]:max-w-none",
|
|
3810
3822
|
state,
|
|
3811
3823
|
icon: state === "include" ? /* @__PURE__ */ jsx(Check, { className: "size-3", strokeWidth: 3 }) : /* @__PURE__ */ jsx(X, { className: "size-3", strokeWidth: 3 }),
|
|
3812
3824
|
onDismiss: () => {
|
|
@@ -3830,77 +3842,7 @@ function TagFilterChips({
|
|
|
3830
3842
|
)
|
|
3831
3843
|
] });
|
|
3832
3844
|
}
|
|
3833
|
-
var
|
|
3834
|
-
function TagPlacement({ tag, tags, onChange }) {
|
|
3835
|
-
const tagNoun = getEntityLabel("ANY_TAG").toLowerCase();
|
|
3836
|
-
const workspace = getEntityLabel("WORKSPACE").toLowerCase();
|
|
3837
|
-
const nests = !isFlatKind(tag.kind);
|
|
3838
|
-
const sameKind = tags.filter((t) => t.kind === tag.kind);
|
|
3839
|
-
const parents = getEligibleParentTags(sameKind, tag.external_id);
|
|
3840
|
-
const current = tag.parent_ext_id ? tags.find((t) => t.external_id === tag.parent_ext_id) : void 0;
|
|
3841
|
-
const options2 = current && !parents.includes(current) ? [current, ...parents] : parents;
|
|
3842
|
-
const canNest = canTagHaveParent([...tags], tag.external_id);
|
|
3843
|
-
const placement = current ? `Under ${current.name}` : "Top level";
|
|
3844
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", "data-testid": "tags-placement", children: [
|
|
3845
|
-
/* @__PURE__ */ jsx(
|
|
3846
|
-
VisibilityToggle,
|
|
3847
|
-
{
|
|
3848
|
-
items: tag,
|
|
3849
|
-
onToggle: () => onChange(
|
|
3850
|
-
{ shared: !tag.shared },
|
|
3851
|
-
tag.shared ? `"${tag.name}" is private` : `"${tag.name}" is shared with the ${workspace}`
|
|
3852
|
-
),
|
|
3853
|
-
showLabel: false,
|
|
3854
|
-
"data-testid": "tags-share",
|
|
3855
|
-
tooltipActive: `Shared with the ${workspace} \u2014 click to make private`,
|
|
3856
|
-
tooltipInactive: `Private \u2014 click to share with the ${workspace}`
|
|
3857
|
-
}
|
|
3858
|
-
),
|
|
3859
|
-
nests && /* @__PURE__ */ jsxs(
|
|
3860
|
-
Select,
|
|
3861
|
-
{
|
|
3862
|
-
value: tag.parent_ext_id ?? TOP_LEVEL,
|
|
3863
|
-
disabled: !canNest && !tag.parent_ext_id,
|
|
3864
|
-
onValueChange: (value) => {
|
|
3865
|
-
const parent = value === TOP_LEVEL ? null : value;
|
|
3866
|
-
const name = parent ? tags.find((t) => t.external_id === parent)?.name : void 0;
|
|
3867
|
-
onChange(
|
|
3868
|
-
{ parent_ext_id: parent },
|
|
3869
|
-
name ? `"${tag.name}" moved under "${name}"` : `"${tag.name}" moved to the top level`
|
|
3870
|
-
);
|
|
3871
|
-
},
|
|
3872
|
-
children: [
|
|
3873
|
-
/* @__PURE__ */ jsx(
|
|
3874
|
-
SelectTrigger,
|
|
3875
|
-
{
|
|
3876
|
-
className: "h-8 w-56 text-sm",
|
|
3877
|
-
"aria-label": `Move this ${tagNoun} under`,
|
|
3878
|
-
title: !canNest && !tag.parent_ext_id ? `Other ${getEntityLabel("ANY_TAG", "PLURAL").toLowerCase()} are nested under this one` : placement,
|
|
3879
|
-
"data-testid": "tags-move-under",
|
|
3880
|
-
children: /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-left", "data-testid": "tags-move-under-value", children: /* @__PURE__ */ jsx(SelectValue, { children: placement }) })
|
|
3881
|
-
}
|
|
3882
|
-
),
|
|
3883
|
-
/* @__PURE__ */ jsxs(SelectContent, { children: [
|
|
3884
|
-
/* @__PURE__ */ jsx(SelectItem, { value: TOP_LEVEL, "data-testid": "tags-move-under-top", children: "Top level" }),
|
|
3885
|
-
options2.map((t) => /* @__PURE__ */ jsxs(
|
|
3886
|
-
SelectItem,
|
|
3887
|
-
{
|
|
3888
|
-
value: t.external_id,
|
|
3889
|
-
"data-testid": `tags-move-under-${t.external_id}`,
|
|
3890
|
-
children: [
|
|
3891
|
-
"Under ",
|
|
3892
|
-
t.name
|
|
3893
|
-
]
|
|
3894
|
-
},
|
|
3895
|
-
t.external_id
|
|
3896
|
-
))
|
|
3897
|
-
] })
|
|
3898
|
-
]
|
|
3899
|
-
}
|
|
3900
|
-
)
|
|
3901
|
-
] });
|
|
3902
|
-
}
|
|
3903
|
-
var MATRIX_LINKS = 3;
|
|
3845
|
+
var MATRIX_LINKS = 0;
|
|
3904
3846
|
var TAG_LINKS_LIMIT = 500;
|
|
3905
3847
|
function PageSection({
|
|
3906
3848
|
title,
|
|
@@ -3924,16 +3866,15 @@ function KindSection({
|
|
|
3924
3866
|
kind,
|
|
3925
3867
|
ctx,
|
|
3926
3868
|
extractingCount,
|
|
3927
|
-
picker
|
|
3869
|
+
picker,
|
|
3870
|
+
tools
|
|
3928
3871
|
}) {
|
|
3929
|
-
const { openDocument, openConversation } = useBlocksEnvironment();
|
|
3930
3872
|
return /* @__PURE__ */ jsxs(
|
|
3931
3873
|
PageSection,
|
|
3932
3874
|
{
|
|
3933
3875
|
testId: `tags-kind-${kind}`,
|
|
3934
3876
|
title: tagKindTitle(kind, { plural: true }),
|
|
3935
3877
|
description: tagKindDescription(kind),
|
|
3936
|
-
actions: picker,
|
|
3937
3878
|
children: [
|
|
3938
3879
|
isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxs(
|
|
3939
3880
|
"p",
|
|
@@ -3954,15 +3895,15 @@ function KindSection({
|
|
|
3954
3895
|
ConnectedTagTable,
|
|
3955
3896
|
{
|
|
3956
3897
|
kind,
|
|
3898
|
+
actions: picker,
|
|
3899
|
+
secondaryActions: tools,
|
|
3957
3900
|
linksLimit: MATRIX_LINKS,
|
|
3958
3901
|
filter: ctx.filter,
|
|
3959
3902
|
addRows: false,
|
|
3960
3903
|
downloadable: false,
|
|
3961
3904
|
onOpenTag: ctx.onOpenTag,
|
|
3962
3905
|
onOpenRow: ctx.onOpenTag,
|
|
3963
|
-
|
|
3964
|
-
onOpenFact: ctx.onOpenFact,
|
|
3965
|
-
onOpenThread: (id) => openConversation(id),
|
|
3906
|
+
onOpenTaggedItems: ctx.onOpenTaggedItems,
|
|
3966
3907
|
labels: tagTableLabels(kind),
|
|
3967
3908
|
testId: `tags-table-${kind}`
|
|
3968
3909
|
}
|
|
@@ -3979,20 +3920,17 @@ function TagSection({
|
|
|
3979
3920
|
onEdit,
|
|
3980
3921
|
onDelete,
|
|
3981
3922
|
onBack,
|
|
3982
|
-
renderPassages
|
|
3983
|
-
picker
|
|
3923
|
+
renderPassages
|
|
3984
3924
|
}) {
|
|
3985
3925
|
const { notify: notify17, openDocument, openConversation } = useBlocksEnvironment();
|
|
3986
3926
|
const { people, tagOptions } = useTagValueOptions();
|
|
3987
3927
|
const setValues = useSetTagValues();
|
|
3988
|
-
const update = useUpdateTag();
|
|
3989
|
-
const updateTag = (change, done) => update.mutateAsync({ tagId: tag.external_id, change }).then(() => notify17(done, "success")).catch((e) => notify17(refusalReason(e, `Could not change "${tag.name}"`), "error"));
|
|
3990
3928
|
const hasRows = !isFlatKind(tag.kind) && getChildTags([...tags], tag.external_id).length > 0;
|
|
3991
3929
|
const schema = useTagKindSchema(tag.kind);
|
|
3992
3930
|
const detail = useTags(void 0, {
|
|
3993
3931
|
ids: [tag.external_id],
|
|
3994
3932
|
include: ["links"],
|
|
3995
|
-
linksLimit: TAG_LINKS_LIMIT
|
|
3933
|
+
linksLimit: ctx.onOpenTaggedItems ? 0 : TAG_LINKS_LIMIT
|
|
3996
3934
|
});
|
|
3997
3935
|
const detailRow = detail.data?.[0];
|
|
3998
3936
|
return /* @__PURE__ */ jsxs(
|
|
@@ -4000,13 +3938,19 @@ function TagSection({
|
|
|
4000
3938
|
{
|
|
4001
3939
|
testId: "tags-tag",
|
|
4002
3940
|
title: /* @__PURE__ */ jsxs("span", { className: "flex flex-wrap items-center gap-2", children: [
|
|
3941
|
+
/* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", onClick: onBack, "data-testid": "tags-back", children: [
|
|
3942
|
+
/* @__PURE__ */ jsx(ArrowLeft, { className: "size-4" }),
|
|
3943
|
+
" ",
|
|
3944
|
+
tagKindTitle(tag.kind, { plural: true })
|
|
3945
|
+
] }),
|
|
3946
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "/" }),
|
|
4003
3947
|
/* @__PURE__ */ jsx(
|
|
4004
3948
|
"span",
|
|
4005
3949
|
{
|
|
4006
3950
|
className: "min-w-0 break-words",
|
|
4007
3951
|
"data-testid": "tags-tag-name",
|
|
4008
3952
|
"data-tag-id": tag.external_id,
|
|
4009
|
-
children: tag
|
|
3953
|
+
children: /* @__PURE__ */ jsx(TagEntity, { tag, size: "lg", wrap: true })
|
|
4010
3954
|
}
|
|
4011
3955
|
),
|
|
4012
3956
|
/* @__PURE__ */ jsxs("span", { className: "rounded-full border border-border px-2 py-0.5 text-xs font-normal text-muted-foreground", children: [
|
|
@@ -4015,39 +3959,46 @@ function TagSection({
|
|
|
4015
3959
|
] })
|
|
4016
3960
|
] }),
|
|
4017
3961
|
description: tag.instruction || void 0,
|
|
4018
|
-
actions: /* @__PURE__ */ jsxs(
|
|
4019
|
-
actions,
|
|
4020
|
-
/* @__PURE__ */ jsx(
|
|
4021
|
-
TagPlacement,
|
|
4022
|
-
{
|
|
4023
|
-
tag,
|
|
4024
|
-
tags,
|
|
4025
|
-
onChange: (change, done) => void updateTag(change, done)
|
|
4026
|
-
}
|
|
4027
|
-
),
|
|
4028
|
-
onEdit && /* @__PURE__ */ jsxs(Button, { variant: "outline", size: "sm", onClick: onEdit, "data-testid": "tags-edit", children: [
|
|
4029
|
-
/* @__PURE__ */ jsx(Pencil, { className: "size-4" }),
|
|
4030
|
-
" Edit"
|
|
4031
|
-
] }),
|
|
3962
|
+
actions: /* @__PURE__ */ jsxs(Popover, { children: [
|
|
3963
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", "aria-label": "More tag actions", "data-testid": "tags-more", children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }) }) }),
|
|
4032
3964
|
/* @__PURE__ */ jsxs(
|
|
4033
|
-
|
|
3965
|
+
PopoverContent,
|
|
4034
3966
|
{
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
onClick: onDelete,
|
|
4038
|
-
className: "text-red-text",
|
|
4039
|
-
"data-testid": "tags-delete",
|
|
3967
|
+
align: "end",
|
|
3968
|
+
className: "flex w-auto min-w-48 flex-col items-stretch gap-1 p-2",
|
|
4040
3969
|
children: [
|
|
4041
|
-
/* @__PURE__ */
|
|
4042
|
-
|
|
3970
|
+
onEdit && /* @__PURE__ */ jsxs(
|
|
3971
|
+
Button,
|
|
3972
|
+
{
|
|
3973
|
+
variant: "ghost",
|
|
3974
|
+
size: "sm",
|
|
3975
|
+
onClick: onEdit,
|
|
3976
|
+
"data-testid": "tags-edit",
|
|
3977
|
+
className: "justify-start",
|
|
3978
|
+
children: [
|
|
3979
|
+
/* @__PURE__ */ jsx(Pencil, { className: "size-4" }),
|
|
3980
|
+
" Edit tag"
|
|
3981
|
+
]
|
|
3982
|
+
}
|
|
3983
|
+
),
|
|
3984
|
+
actions,
|
|
3985
|
+
/* @__PURE__ */ jsxs(
|
|
3986
|
+
Button,
|
|
3987
|
+
{
|
|
3988
|
+
variant: "ghost",
|
|
3989
|
+
size: "sm",
|
|
3990
|
+
onClick: onDelete,
|
|
3991
|
+
className: "justify-start text-red-text",
|
|
3992
|
+
"data-testid": "tags-delete",
|
|
3993
|
+
children: [
|
|
3994
|
+
/* @__PURE__ */ jsx(Trash2, { className: "size-4" }),
|
|
3995
|
+
" Delete tag"
|
|
3996
|
+
]
|
|
3997
|
+
}
|
|
3998
|
+
)
|
|
4043
3999
|
]
|
|
4044
4000
|
}
|
|
4045
|
-
)
|
|
4046
|
-
/* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", onClick: onBack, "data-testid": "tags-back", children: [
|
|
4047
|
-
"All ",
|
|
4048
|
-
tagKindTitle(tag.kind, { plural: true }).toLowerCase()
|
|
4049
|
-
] }),
|
|
4050
|
-
picker
|
|
4001
|
+
)
|
|
4051
4002
|
] }),
|
|
4052
4003
|
children: [
|
|
4053
4004
|
hasRows && /* @__PURE__ */ jsx(
|
|
@@ -4056,15 +4007,13 @@ function TagSection({
|
|
|
4056
4007
|
kind: tag.kind,
|
|
4057
4008
|
parentId: tag.external_id,
|
|
4058
4009
|
linksLimit: MATRIX_LINKS,
|
|
4059
|
-
filter: ctx.filter,
|
|
4010
|
+
filter: ctx.onOpenTaggedItems ? void 0 : ctx.filter,
|
|
4060
4011
|
addRows: false,
|
|
4061
4012
|
editColumns: false,
|
|
4062
4013
|
downloadable: false,
|
|
4063
4014
|
onOpenTag: ctx.onOpenTag,
|
|
4064
4015
|
onOpenRow: ctx.onOpenTag,
|
|
4065
|
-
|
|
4066
|
-
onOpenFact: ctx.onOpenFact,
|
|
4067
|
-
onOpenThread: (id) => openConversation(id),
|
|
4016
|
+
onOpenTaggedItems: ctx.onOpenTaggedItems,
|
|
4068
4017
|
labels: tagTableLabels(tag.kind),
|
|
4069
4018
|
testId: "tags-rows"
|
|
4070
4019
|
}
|
|
@@ -4072,7 +4021,9 @@ function TagSection({
|
|
|
4072
4021
|
/* @__PURE__ */ jsx(
|
|
4073
4022
|
TagDetail,
|
|
4074
4023
|
{
|
|
4075
|
-
|
|
4024
|
+
onOpenTaggedItems: ctx.onOpenTaggedItems,
|
|
4025
|
+
fieldLabels: tagTableLabels(tag.kind),
|
|
4026
|
+
row: ctx.onOpenTaggedItems ? detailRow : detailRow && narrowTagRow(detailRow, ctx.filter.matches),
|
|
4076
4027
|
fields: schema.data?.fields ?? [],
|
|
4077
4028
|
isLoading: detail.isLoading,
|
|
4078
4029
|
people,
|
|
@@ -4107,6 +4058,7 @@ var TAG_FILTER_FIELDS = [
|
|
|
4107
4058
|
];
|
|
4108
4059
|
function ConnectedTagsPage({
|
|
4109
4060
|
onOpenFact,
|
|
4061
|
+
onOpenTaggedItems,
|
|
4110
4062
|
onOpenSmartSearch,
|
|
4111
4063
|
onReview
|
|
4112
4064
|
}) {
|
|
@@ -4115,7 +4067,6 @@ function ConnectedTagsPage({
|
|
|
4115
4067
|
const { data: documents } = useConnectedDocuments();
|
|
4116
4068
|
const { data: threads } = useConnectedConversations();
|
|
4117
4069
|
const { data: facts = [] } = useFacts();
|
|
4118
|
-
const createTag = useCreateTag();
|
|
4119
4070
|
const deleteTag = useDeleteTag();
|
|
4120
4071
|
const extract = useExtractEntities();
|
|
4121
4072
|
const extractingDocIds = useEntityExtractionDocIds();
|
|
@@ -4143,10 +4094,6 @@ function ConnectedTagsPage({
|
|
|
4143
4094
|
[combination, documents, facts, threads]
|
|
4144
4095
|
);
|
|
4145
4096
|
const tag = tagId ? tags.find((t) => t.external_id === tagId) : void 0;
|
|
4146
|
-
const viewTags = useMemo(
|
|
4147
|
-
() => tags.filter((t) => t.kind === view).sort((a, b) => a.name.localeCompare(b.name)),
|
|
4148
|
-
[tags, view]
|
|
4149
|
-
);
|
|
4150
4097
|
const openTag = (id) => {
|
|
4151
4098
|
const t = tags.find((x) => x.external_id === id);
|
|
4152
4099
|
if (!t) return;
|
|
@@ -4157,19 +4104,6 @@ function ConnectedTagsPage({
|
|
|
4157
4104
|
setView(next);
|
|
4158
4105
|
setTagId(null);
|
|
4159
4106
|
};
|
|
4160
|
-
const onCreate = async (name, kind) => {
|
|
4161
|
-
try {
|
|
4162
|
-
const created = await createTag.mutateAsync({
|
|
4163
|
-
name,
|
|
4164
|
-
kind,
|
|
4165
|
-
tagType: { type: kind === "annotation" ? "text" : "checkbox", options: [] },
|
|
4166
|
-
shared: true
|
|
4167
|
-
});
|
|
4168
|
-
setTagId(created.external_id);
|
|
4169
|
-
} catch (error) {
|
|
4170
|
-
notify17(refusalReason(error, `Could not add "${name}"`), "error");
|
|
4171
|
-
}
|
|
4172
|
-
};
|
|
4173
4107
|
const onDelete = async (t) => {
|
|
4174
4108
|
const nested = getChildTags([...tags], t.external_id);
|
|
4175
4109
|
const uses = tagUseCount(t);
|
|
@@ -4202,20 +4136,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4202
4136
|
throw error;
|
|
4203
4137
|
}
|
|
4204
4138
|
};
|
|
4205
|
-
const picker = /* @__PURE__ */
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
kinds: [view],
|
|
4211
|
-
onSelect: openTag,
|
|
4212
|
-
onCreate: view === "search" ? void 0 : onCreate
|
|
4213
|
-
}
|
|
4214
|
-
);
|
|
4139
|
+
const picker = view === "search" ? null : /* @__PURE__ */ jsxs(Button, { variant: "outline", size: "sm", onClick: () => setEditing(true), "data-testid": "tags-new", children: [
|
|
4140
|
+
/* @__PURE__ */ jsx(Plus, { className: "size-4" }),
|
|
4141
|
+
" New ",
|
|
4142
|
+
tagKindNouns(view).singular
|
|
4143
|
+
] });
|
|
4215
4144
|
const ctx = {
|
|
4216
4145
|
filter: { matches, text: filterText, fields: filterFields },
|
|
4217
4146
|
onOpenTag: openTag,
|
|
4218
|
-
onOpenFact
|
|
4147
|
+
onOpenFact,
|
|
4148
|
+
onOpenTaggedItems
|
|
4219
4149
|
};
|
|
4220
4150
|
const n = tagsPageNouns();
|
|
4221
4151
|
const action = view === "person" || view === "organisation" ? {
|
|
@@ -4240,6 +4170,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4240
4170
|
}),
|
|
4241
4171
|
testId: "tags-review"
|
|
4242
4172
|
};
|
|
4173
|
+
const tagFilter = /* @__PURE__ */ jsx(
|
|
4174
|
+
TagCombineFilter,
|
|
4175
|
+
{
|
|
4176
|
+
tags,
|
|
4177
|
+
combination,
|
|
4178
|
+
onChange: setCombination,
|
|
4179
|
+
kinds: [view],
|
|
4180
|
+
triggerClassName: "inline-flex items-center gap-0.5 h-6 rounded px-1 text-muted-foreground hover:bg-foreground/10 cursor-pointer transition-colors pointer-coarse:h-11! pointer-coarse:min-w-11 pointer-coarse:justify-center"
|
|
4181
|
+
}
|
|
4182
|
+
);
|
|
4243
4183
|
return /* @__PURE__ */ jsxs("div", { className: "h-full min-h-0 overflow-y-auto", "data-testid": "tags-page", children: [
|
|
4244
4184
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 p-2 sm:p-4", children: [
|
|
4245
4185
|
/* @__PURE__ */ jsxs("div", { className: "sticky top-0 z-10 -mx-2 -mt-2 bg-background sm:-mx-4 sm:-mt-4", children: [
|
|
@@ -4260,7 +4200,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4260
4200
|
onTabChange: () => {
|
|
4261
4201
|
},
|
|
4262
4202
|
variant: "underline",
|
|
4263
|
-
firstTabContent: /* @__PURE__ */ jsx(FilesFilterBar, { className: "flex-none", "data-testid": "tags-header-actions", children: /* @__PURE__ */ jsx(
|
|
4203
|
+
firstTabContent: tag ? onOpenTaggedItems ? void 0 : tagFilter : /* @__PURE__ */ jsx(FilesFilterBar, { className: "flex-none", "data-testid": "tags-header-actions", children: /* @__PURE__ */ jsx(
|
|
4264
4204
|
FilterInput,
|
|
4265
4205
|
{
|
|
4266
4206
|
value: filterText,
|
|
@@ -4268,7 +4208,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4268
4208
|
fieldOptions: TAG_FILTER_FIELDS,
|
|
4269
4209
|
fields: filterFields,
|
|
4270
4210
|
onFieldsChange: (f) => setFilterFields(f.length ? f : ["name"]),
|
|
4271
|
-
labels: {
|
|
4211
|
+
labels: {
|
|
4212
|
+
placeholder: "Search tags\u2026",
|
|
4213
|
+
fieldNames: { name: "Name", values: "Field values" }
|
|
4214
|
+
},
|
|
4272
4215
|
testIds: {
|
|
4273
4216
|
root: "tags-filter",
|
|
4274
4217
|
input: "tags-filter-input",
|
|
@@ -4276,16 +4219,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4276
4219
|
field: (f) => `tags-filter-field-${f}`
|
|
4277
4220
|
},
|
|
4278
4221
|
className: "w-56",
|
|
4279
|
-
filter:
|
|
4280
|
-
TagCombineFilter,
|
|
4281
|
-
{
|
|
4282
|
-
tags,
|
|
4283
|
-
combination,
|
|
4284
|
-
onChange: setCombination,
|
|
4285
|
-
kinds: [view],
|
|
4286
|
-
triggerClassName: "inline-flex items-center gap-0.5 h-6 rounded px-1 text-muted-foreground hover:bg-foreground/10 cursor-pointer transition-colors pointer-coarse:h-11! pointer-coarse:min-w-11 pointer-coarse:justify-center"
|
|
4287
|
-
}
|
|
4288
|
-
)
|
|
4222
|
+
filter: tagFilter
|
|
4289
4223
|
}
|
|
4290
4224
|
) }),
|
|
4291
4225
|
centerContent: /* @__PURE__ */ jsx(FilesViewCenter, { children: /* @__PURE__ */ jsx(
|
|
@@ -4305,25 +4239,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4305
4239
|
containerCollapse: true,
|
|
4306
4240
|
size: "sm"
|
|
4307
4241
|
}
|
|
4308
|
-
) })
|
|
4309
|
-
rightContent: (isCompact) => action ? /* @__PURE__ */ jsxs(
|
|
4310
|
-
Button,
|
|
4311
|
-
{
|
|
4312
|
-
variant: "default",
|
|
4313
|
-
className: "gap-2",
|
|
4314
|
-
onClick: action.run,
|
|
4315
|
-
"aria-label": action.title,
|
|
4316
|
-
title: action.title,
|
|
4317
|
-
"data-testid": action.testId,
|
|
4318
|
-
children: [
|
|
4319
|
-
action.icon,
|
|
4320
|
-
/* @__PURE__ */ jsx("span", { className: isCompact ? "hidden" : "inline", children: action.label })
|
|
4321
|
-
]
|
|
4322
|
-
}
|
|
4323
|
-
) : null
|
|
4242
|
+
) })
|
|
4324
4243
|
}
|
|
4325
4244
|
),
|
|
4326
|
-
/* @__PURE__ */ jsx("div", { className: "px-4 pb-2 empty:hidden sm:px-6", children: /* @__PURE__ */ jsx(TagFilterChips, { tags, combination, onChange: setCombination }) })
|
|
4245
|
+
/* @__PURE__ */ jsx("div", { className: "px-4 pb-2 empty:hidden sm:px-6", children: (!tag || !onOpenTaggedItems) && /* @__PURE__ */ jsx(TagFilterChips, { tags, combination, onChange: setCombination }) })
|
|
4327
4246
|
] }),
|
|
4328
4247
|
/* @__PURE__ */ jsx("main", { className: "flex flex-col gap-6", "data-testid": "tags-main", children: tag ? /* @__PURE__ */ jsx(
|
|
4329
4248
|
TagSection,
|
|
@@ -4331,7 +4250,29 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4331
4250
|
tag,
|
|
4332
4251
|
tags,
|
|
4333
4252
|
ctx,
|
|
4334
|
-
actions:
|
|
4253
|
+
actions: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4254
|
+
action && /* @__PURE__ */ jsxs(
|
|
4255
|
+
Button,
|
|
4256
|
+
{
|
|
4257
|
+
variant: "ghost",
|
|
4258
|
+
size: "sm",
|
|
4259
|
+
onClick: action.run,
|
|
4260
|
+
title: action.title,
|
|
4261
|
+
"data-testid": action.testId,
|
|
4262
|
+
children: [
|
|
4263
|
+
action.icon,
|
|
4264
|
+
action.label
|
|
4265
|
+
]
|
|
4266
|
+
}
|
|
4267
|
+
),
|
|
4268
|
+
isDefinitionsLabel(tag) && /* @__PURE__ */ jsx(
|
|
4269
|
+
GlossaryExport,
|
|
4270
|
+
{
|
|
4271
|
+
labelId: tag.external_id,
|
|
4272
|
+
nameOf: (id) => docOf(id)?.file_name
|
|
4273
|
+
}
|
|
4274
|
+
)
|
|
4275
|
+
] }),
|
|
4335
4276
|
onEdit: () => setEditing(true),
|
|
4336
4277
|
onDelete: () => void onDelete(tag),
|
|
4337
4278
|
onBack: () => setTagId(null),
|
|
@@ -4344,8 +4285,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4344
4285
|
docOf,
|
|
4345
4286
|
testId: `tags-detail-doc-${docId}-passages`
|
|
4346
4287
|
}
|
|
4347
|
-
)
|
|
4348
|
-
picker
|
|
4288
|
+
)
|
|
4349
4289
|
},
|
|
4350
4290
|
tag.external_id
|
|
4351
4291
|
) : /* @__PURE__ */ jsx(
|
|
@@ -4354,7 +4294,21 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4354
4294
|
kind: view,
|
|
4355
4295
|
ctx,
|
|
4356
4296
|
extractingCount: extractingDocIds.length,
|
|
4357
|
-
picker
|
|
4297
|
+
picker,
|
|
4298
|
+
tools: action && /* @__PURE__ */ jsxs(
|
|
4299
|
+
Button,
|
|
4300
|
+
{
|
|
4301
|
+
variant: "ghost",
|
|
4302
|
+
size: "sm",
|
|
4303
|
+
onClick: action.run,
|
|
4304
|
+
title: action.title,
|
|
4305
|
+
"data-testid": action.testId,
|
|
4306
|
+
children: [
|
|
4307
|
+
action.icon,
|
|
4308
|
+
action.label
|
|
4309
|
+
]
|
|
4310
|
+
}
|
|
4311
|
+
)
|
|
4358
4312
|
},
|
|
4359
4313
|
view
|
|
4360
4314
|
) })
|
|
@@ -4362,7 +4316,8 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4362
4316
|
/* @__PURE__ */ jsx(
|
|
4363
4317
|
ConnectedTagEditorDialog,
|
|
4364
4318
|
{
|
|
4365
|
-
open: editing
|
|
4319
|
+
open: editing,
|
|
4320
|
+
defaultKind: view,
|
|
4366
4321
|
onOpenChange: setEditing,
|
|
4367
4322
|
tag,
|
|
4368
4323
|
tags: tags.filter((t) => t.kind !== "search"),
|
|
@@ -5116,6 +5071,15 @@ function useFactFilters(notes, view, chat) {
|
|
|
5116
5071
|
() => tagsForScope(filterDocumentTags(workspaceTagsRaw), "fact").filter(isLabelTag),
|
|
5117
5072
|
[workspaceTagsRaw]
|
|
5118
5073
|
);
|
|
5074
|
+
const filterTags = useMemo(
|
|
5075
|
+
() => [
|
|
5076
|
+
...labelTags,
|
|
5077
|
+
...workspaceTagsRaw.filter(
|
|
5078
|
+
(tag) => view.filters.get(tag.external_id) && !labelTags.some((label) => label.external_id === tag.external_id)
|
|
5079
|
+
)
|
|
5080
|
+
],
|
|
5081
|
+
[labelTags, workspaceTagsRaw, view.filters]
|
|
5082
|
+
);
|
|
5119
5083
|
const tagNameById = useMemo(() => {
|
|
5120
5084
|
const map = /* @__PURE__ */ new Map();
|
|
5121
5085
|
for (const t of labelTags) map.set(t.external_id, (t.name ?? "").toLowerCase());
|
|
@@ -5132,9 +5096,9 @@ function useFactFilters(notes, view, chat) {
|
|
|
5132
5096
|
"verified",
|
|
5133
5097
|
"in_chat",
|
|
5134
5098
|
"created_by_me",
|
|
5135
|
-
...
|
|
5099
|
+
...filterTags.map((t) => t.external_id)
|
|
5136
5100
|
],
|
|
5137
|
-
[
|
|
5101
|
+
[filterTags]
|
|
5138
5102
|
);
|
|
5139
5103
|
const getFactFilterAttributes = useCallback(
|
|
5140
5104
|
(f) => {
|
|
@@ -5145,12 +5109,15 @@ function useFactFilters(notes, view, chat) {
|
|
|
5145
5109
|
in_chat: chatFactIdSet.has(f.external_id),
|
|
5146
5110
|
created_by_me: !!currentUserId && f.created_by_ext_id === currentUserId
|
|
5147
5111
|
};
|
|
5148
|
-
for (const t of
|
|
5112
|
+
for (const t of filterTags) attrs[t.external_id] = tagIds.has(t.external_id);
|
|
5149
5113
|
return attrs;
|
|
5150
5114
|
},
|
|
5151
|
-
[
|
|
5115
|
+
[filterTags, currentUserId, chatFactIdSet]
|
|
5116
|
+
);
|
|
5117
|
+
const factFilters = useMemo(
|
|
5118
|
+
() => new Map([...view.filters].filter(([id]) => factFilterIds.includes(id))),
|
|
5119
|
+
[view.filters, factFilterIds]
|
|
5152
5120
|
);
|
|
5153
|
-
const factFilters = view.filters;
|
|
5154
5121
|
const setFactFilters = view.setFilters;
|
|
5155
5122
|
const quickFilteredNotes = useMemo(
|
|
5156
5123
|
() => applyInvertedIndexFilter(
|
|
@@ -5192,37 +5159,29 @@ function useFactFilters(notes, view, chat) {
|
|
|
5192
5159
|
count: currentUserId ? notes.filter((n) => n.created_by_ext_id === currentUserId).length : 0
|
|
5193
5160
|
}
|
|
5194
5161
|
];
|
|
5195
|
-
for (const t of
|
|
5196
|
-
const color = getEntityColor(t.external_id, "medium");
|
|
5162
|
+
for (const t of filterTags) {
|
|
5197
5163
|
opts.push({
|
|
5198
5164
|
id: t.external_id,
|
|
5199
5165
|
label: t.name,
|
|
5200
|
-
|
|
5201
|
-
"span",
|
|
5202
|
-
{
|
|
5203
|
-
className: "flex h-3.5 w-3.5 flex-shrink-0 items-center justify-center rounded",
|
|
5204
|
-
style: { backgroundColor: color },
|
|
5205
|
-
children: /* @__PURE__ */ jsx(Check, { size: 10, className: "flex-shrink-0 text-white", strokeWidth: 3 })
|
|
5206
|
-
}
|
|
5207
|
-
),
|
|
5166
|
+
displayLabel: /* @__PURE__ */ jsx(TagEntity, { tag: t, size: "sm", showTooltip: false }),
|
|
5208
5167
|
count: notes.filter((n) => n.tags.some((x) => x.tag_ext_id === t.external_id)).length
|
|
5209
5168
|
});
|
|
5210
5169
|
}
|
|
5211
5170
|
return opts;
|
|
5212
|
-
}, [notes,
|
|
5171
|
+
}, [notes, filterTags, currentUserId, chatFactIdSet]);
|
|
5213
5172
|
const factFilterGroups = useMemo(() => {
|
|
5214
5173
|
const groups = [
|
|
5215
5174
|
{ label: "Quick filters", options: ["shared", "verified", "in_chat", "created_by_me"] }
|
|
5216
5175
|
];
|
|
5217
|
-
if (
|
|
5176
|
+
if (filterTags.length > 0) {
|
|
5218
5177
|
groups.push({
|
|
5219
5178
|
label: "Labels",
|
|
5220
|
-
options:
|
|
5179
|
+
options: filterTags.map((t) => t.external_id),
|
|
5221
5180
|
collapsible: true
|
|
5222
5181
|
});
|
|
5223
5182
|
}
|
|
5224
5183
|
return groups;
|
|
5225
|
-
}, [
|
|
5184
|
+
}, [filterTags]);
|
|
5226
5185
|
const labelOptions = useMemo(
|
|
5227
5186
|
() => labelTags.map((t) => ({
|
|
5228
5187
|
id: t.external_id,
|
|
@@ -5282,6 +5241,7 @@ function useFactFilters(notes, view, chat) {
|
|
|
5282
5241
|
const hasActiveFilters = factsFilter.trim().length > 0 || Array.from(factFilters.values()).some((v) => v !== null);
|
|
5283
5242
|
return {
|
|
5284
5243
|
labelTags,
|
|
5244
|
+
filterTags,
|
|
5285
5245
|
createTagStable,
|
|
5286
5246
|
makeTagPicker,
|
|
5287
5247
|
factFilters,
|
|
@@ -6488,6 +6448,23 @@ function ConnectedFactsPage({
|
|
|
6488
6448
|
] })
|
|
6489
6449
|
}
|
|
6490
6450
|
),
|
|
6451
|
+
/* @__PURE__ */ jsx("div", { className: "px-3 empty:hidden", children: /* @__PURE__ */ jsx(
|
|
6452
|
+
TagFilterChips,
|
|
6453
|
+
{
|
|
6454
|
+
tags: filters.filterTags,
|
|
6455
|
+
combination: new Map(
|
|
6456
|
+
[...filters.factFilters].filter(
|
|
6457
|
+
([id]) => filters.filterTags.some((tag) => tag.external_id === id)
|
|
6458
|
+
)
|
|
6459
|
+
),
|
|
6460
|
+
onChange: (next) => {
|
|
6461
|
+
const merged = new Map(filters.factFilters);
|
|
6462
|
+
for (const tag of filters.filterTags)
|
|
6463
|
+
merged.set(tag.external_id, next.get(tag.external_id) ?? null);
|
|
6464
|
+
filters.setFactFilters(merged);
|
|
6465
|
+
}
|
|
6466
|
+
}
|
|
6467
|
+
) }),
|
|
6491
6468
|
/* @__PURE__ */ jsx(
|
|
6492
6469
|
FactComposer,
|
|
6493
6470
|
{
|
|
@@ -15207,7 +15184,7 @@ function useConnectedWorkspaceList({
|
|
|
15207
15184
|
};
|
|
15208
15185
|
}
|
|
15209
15186
|
var WorkspaceTableView = lazy(
|
|
15210
|
-
() => import('../WorkspaceTableView-
|
|
15187
|
+
() => import('../WorkspaceTableView-4VMCTOFT.js').then((m) => ({ default: m.WorkspaceTableView }))
|
|
15211
15188
|
);
|
|
15212
15189
|
var WORKSPACES_TAB_ID = "workspaces";
|
|
15213
15190
|
var defaultRenderMember2 = (user, size) => {
|
|
@@ -25994,14 +25971,7 @@ function useDocumentFilters({
|
|
|
25994
25971
|
id: tag.external_id,
|
|
25995
25972
|
label: tag.name,
|
|
25996
25973
|
color: tagColor,
|
|
25997
|
-
|
|
25998
|
-
"span",
|
|
25999
|
-
{
|
|
26000
|
-
className: "w-3.5 h-3.5 rounded flex items-center justify-center flex-shrink-0",
|
|
26001
|
-
style: { backgroundColor: tagColor },
|
|
26002
|
-
children: /* @__PURE__ */ jsx(Check, { size: 10, className: "text-white flex-shrink-0", strokeWidth: 3 })
|
|
26003
|
-
}
|
|
26004
|
-
),
|
|
25974
|
+
displayLabel: /* @__PURE__ */ jsx(TagEntity, { tag, size: "sm", showTooltip: false }),
|
|
26005
25975
|
count: tag.doctag_count
|
|
26006
25976
|
});
|
|
26007
25977
|
});
|
|
@@ -27947,10 +27917,10 @@ var TABLET_TABLE_BELOW = 860;
|
|
|
27947
27917
|
var TABLET_VIEWPORT_BELOW = 1100;
|
|
27948
27918
|
var NO_CONVERSATION_DOCUMENTS = [];
|
|
27949
27919
|
var DocumentReviewCard = lazy(
|
|
27950
|
-
() => import('../DocumentReviewCard-
|
|
27920
|
+
() => import('../DocumentReviewCard-KHMHG7A5.js').then((module) => ({ default: module.DocumentReviewCard }))
|
|
27951
27921
|
);
|
|
27952
27922
|
var ConnectedDocumentViewer = lazy(
|
|
27953
|
-
() => import('../ConnectedDocumentViewer-
|
|
27923
|
+
() => import('../ConnectedDocumentViewer-4LRZ5N3L.js').then((module) => ({
|
|
27954
27924
|
default: module.ConnectedDocumentViewer
|
|
27955
27925
|
}))
|
|
27956
27926
|
);
|
|
@@ -28557,6 +28527,21 @@ function ConnectedFilesPage({
|
|
|
28557
28527
|
}
|
|
28558
28528
|
)
|
|
28559
28529
|
] }),
|
|
28530
|
+
!isModal && /* @__PURE__ */ jsx("div", { className: "px-3 empty:hidden", children: /* @__PURE__ */ jsx(
|
|
28531
|
+
TagFilterChips,
|
|
28532
|
+
{
|
|
28533
|
+
tags: allTags,
|
|
28534
|
+
combination: new Map(
|
|
28535
|
+
[...documentFilters].filter(([id]) => allTags.some((tag) => tag.external_id === id))
|
|
28536
|
+
),
|
|
28537
|
+
onChange: (next) => {
|
|
28538
|
+
const merged = new Map(documentFilters);
|
|
28539
|
+
for (const tag of allTags)
|
|
28540
|
+
merged.set(tag.external_id, next.get(tag.external_id) ?? null);
|
|
28541
|
+
setDocumentFilters(merged);
|
|
28542
|
+
}
|
|
28543
|
+
}
|
|
28544
|
+
) }),
|
|
28560
28545
|
/* @__PURE__ */ jsxs(FilesPageMain, { children: [
|
|
28561
28546
|
viewMode === "grid" && /* @__PURE__ */ jsx(
|
|
28562
28547
|
DocumentGrid,
|
|
@@ -32870,6 +32855,7 @@ function ConnectedAccountCluster({
|
|
|
32870
32855
|
pages = [],
|
|
32871
32856
|
activePage,
|
|
32872
32857
|
showContacts = true,
|
|
32858
|
+
showNotifications = true,
|
|
32873
32859
|
status,
|
|
32874
32860
|
report,
|
|
32875
32861
|
offline = false,
|
|
@@ -32892,9 +32878,10 @@ function ConnectedAccountCluster({
|
|
|
32892
32878
|
const databasesOn = useFeature("databases");
|
|
32893
32879
|
const mailEntitled = useIsEntitled("mail");
|
|
32894
32880
|
const calendarEntitled = useIsEntitled("calendar");
|
|
32881
|
+
const calendarOn = useFeature("calendar");
|
|
32895
32882
|
const offered = {
|
|
32896
32883
|
mail: mailPolicy?.enabled && mailOn && mailEntitled && openMail ? () => openMail() : void 0,
|
|
32897
|
-
calendar: calendarEntitled ? () => openCalendar() : void 0,
|
|
32884
|
+
calendar: calendarEntitled && calendarOn ? () => openCalendar() : void 0,
|
|
32898
32885
|
databases: databasesOn ? openDatabases : void 0
|
|
32899
32886
|
};
|
|
32900
32887
|
const rowVariant = layout === "bar" ? "icon" : void 0;
|
|
@@ -32951,6 +32938,14 @@ function ConnectedAccountCluster({
|
|
|
32951
32938
|
navigate(notification.href);
|
|
32952
32939
|
return;
|
|
32953
32940
|
}
|
|
32941
|
+
if (notification.onSelect) {
|
|
32942
|
+
notification.onSelect();
|
|
32943
|
+
return;
|
|
32944
|
+
}
|
|
32945
|
+
if (notification.href) {
|
|
32946
|
+
navigate(notification.href);
|
|
32947
|
+
return;
|
|
32948
|
+
}
|
|
32954
32949
|
openNotifications({ focusId: notification.id });
|
|
32955
32950
|
}),
|
|
32956
32951
|
viewAllLabel: bellOptions?.viewAllLabel,
|
|
@@ -33015,7 +33010,7 @@ function ConnectedAccountCluster({
|
|
|
33015
33010
|
calendar: pageRow("calendar", /* @__PURE__ */ jsx(CalendarDays, { className: "size-5" }), "Calendar"),
|
|
33016
33011
|
databases: pageRow("databases", /* @__PURE__ */ jsx(Table2, { className: "size-5" }), "Databases"),
|
|
33017
33012
|
report,
|
|
33018
|
-
bell,
|
|
33013
|
+
bell: showNotifications ? bell : null,
|
|
33019
33014
|
contacts,
|
|
33020
33015
|
account: layout === "drawer" ? null : account,
|
|
33021
33016
|
"data-testid": ids.cluster
|
|
@@ -33610,14 +33605,6 @@ async function renderAnnotatedScreenshot(image, marks, text2) {
|
|
|
33610
33605
|
}
|
|
33611
33606
|
return canvasToBlob(canvas);
|
|
33612
33607
|
}
|
|
33613
|
-
function aspectOptions(natural) {
|
|
33614
|
-
return [
|
|
33615
|
-
...natural ? [{ label: "Screen", value: natural.width / natural.height }] : [],
|
|
33616
|
-
{ label: "16:9", value: 16 / 9 },
|
|
33617
|
-
{ label: "4:3", value: 4 / 3 },
|
|
33618
|
-
{ label: "Square", value: 1 }
|
|
33619
|
-
];
|
|
33620
|
-
}
|
|
33621
33608
|
function ReportProblemDialog({
|
|
33622
33609
|
open,
|
|
33623
33610
|
frame,
|
|
@@ -33626,7 +33613,7 @@ function ReportProblemDialog({
|
|
|
33626
33613
|
onImageChange,
|
|
33627
33614
|
onRetake,
|
|
33628
33615
|
onClose,
|
|
33629
|
-
|
|
33616
|
+
onSubmit,
|
|
33630
33617
|
footnote
|
|
33631
33618
|
}) {
|
|
33632
33619
|
const { notify: notify17 } = useBlocksEnvironment();
|
|
@@ -33637,6 +33624,8 @@ function ReportProblemDialog({
|
|
|
33637
33624
|
const [frameSize, setFrameSize] = useState(null);
|
|
33638
33625
|
const [cropArea, setCropArea] = useState(null);
|
|
33639
33626
|
const [busy, setBusy] = useState(false);
|
|
33627
|
+
const [failure, setFailure] = useState(null);
|
|
33628
|
+
const [submissionId] = useState(() => crypto.randomUUID());
|
|
33640
33629
|
const imgRef = useRef(null);
|
|
33641
33630
|
const dragStart = useRef(null);
|
|
33642
33631
|
const frameUrl = useMemo(() => frame ? URL.createObjectURL(frame) : null, [frame]);
|
|
@@ -33655,9 +33644,6 @@ function ReportProblemDialog({
|
|
|
33655
33644
|
setDraft(null);
|
|
33656
33645
|
setNatural(null);
|
|
33657
33646
|
}, [image]);
|
|
33658
|
-
useEffect(() => {
|
|
33659
|
-
if (!open) setDescription("");
|
|
33660
|
-
}, [open]);
|
|
33661
33647
|
const applyCrop = async () => {
|
|
33662
33648
|
if (!frameUrl || !cropArea) return;
|
|
33663
33649
|
setBusy(true);
|
|
@@ -33688,28 +33674,24 @@ function ReportProblemDialog({
|
|
|
33688
33674
|
bitmap.close();
|
|
33689
33675
|
}
|
|
33690
33676
|
};
|
|
33691
|
-
const
|
|
33692
|
-
|
|
33693
|
-
try {
|
|
33694
|
-
const blob = await renderImage();
|
|
33695
|
-
if (!blob) return;
|
|
33696
|
-
const stamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 16).replace(/[:T]/g, "-");
|
|
33697
|
-
downloadBlob(blob, `${fileNamePrefix}-${stamp}.png`);
|
|
33698
|
-
} catch {
|
|
33699
|
-
notify17("Couldn't save the screenshot. Please try again.", "error");
|
|
33700
|
-
} finally {
|
|
33701
|
-
setBusy(false);
|
|
33702
|
-
}
|
|
33703
|
-
};
|
|
33704
|
-
const copy = async () => {
|
|
33677
|
+
const submit = async () => {
|
|
33678
|
+
if (!onSubmit || !description.trim()) return;
|
|
33705
33679
|
setBusy(true);
|
|
33680
|
+
setFailure(null);
|
|
33706
33681
|
try {
|
|
33707
|
-
const
|
|
33708
|
-
if (!
|
|
33709
|
-
await
|
|
33710
|
-
|
|
33711
|
-
|
|
33712
|
-
|
|
33682
|
+
const rendered = image ? await renderImage() : null;
|
|
33683
|
+
if (image && !rendered) throw new Error("The screenshot is not ready. Please try again.");
|
|
33684
|
+
const receipt = await onSubmit({
|
|
33685
|
+
description: description.trim(),
|
|
33686
|
+
image: rendered ?? void 0,
|
|
33687
|
+
idempotencyKey: submissionId
|
|
33688
|
+
});
|
|
33689
|
+
notify17(`Support request #${receipt.ticket_id} sent.`, "success");
|
|
33690
|
+
onClose();
|
|
33691
|
+
} catch (error) {
|
|
33692
|
+
setFailure(
|
|
33693
|
+
error instanceof Error ? error.message : "Could not send your request. Please try again."
|
|
33694
|
+
);
|
|
33713
33695
|
} finally {
|
|
33714
33696
|
setBusy(false);
|
|
33715
33697
|
}
|
|
@@ -33722,22 +33704,22 @@ function ReportProblemDialog({
|
|
|
33722
33704
|
height: `${mark.h / natural.height * 100}%`
|
|
33723
33705
|
} : void 0;
|
|
33724
33706
|
const cropping = !!frameUrl;
|
|
33725
|
-
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: (next) => !next && onClose(), children: /* @__PURE__ */ jsxs(
|
|
33707
|
+
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: (next) => !next && !busy && onClose(), children: /* @__PURE__ */ jsxs(
|
|
33726
33708
|
DialogContent,
|
|
33727
33709
|
{
|
|
33728
33710
|
className: "flex max-h-[92vh] w-[min(96vw,64rem)] max-w-[96vw] flex-col gap-3 p-4 sm:max-w-[min(96vw,64rem)]",
|
|
33729
33711
|
"data-testid": "report-problem-dialog",
|
|
33730
33712
|
children: [
|
|
33731
33713
|
/* @__PURE__ */ jsxs("div", { className: "pr-8", children: [
|
|
33732
|
-
/* @__PURE__ */ jsx(DialogTitle, { children: "
|
|
33733
|
-
/* @__PURE__ */ jsx(DialogDescription, { children: cropping ? "Crop the screenshot to the part that shows the problem. Only the cropped part is kept." : "Black out anything confidential
|
|
33714
|
+
/* @__PURE__ */ jsx(DialogTitle, { children: "Contact support" }),
|
|
33715
|
+
/* @__PURE__ */ jsx(DialogDescription, { children: cropping ? "Crop the screenshot to the part that shows the problem. Only the cropped part is kept." : image ? "Black out anything confidential before sending. Blacked-out areas are removed from the image." : "Tell us what you need help with. You can choose to add a screenshot." })
|
|
33734
33716
|
] }),
|
|
33735
33717
|
cropping ? /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
|
|
33736
33718
|
/* @__PURE__ */ jsx(
|
|
33737
33719
|
ImageCropper,
|
|
33738
33720
|
{
|
|
33739
33721
|
image: frameUrl,
|
|
33740
|
-
|
|
33722
|
+
aspect: frameSize ? frameSize.width / frameSize.height : window.innerWidth / window.innerHeight,
|
|
33741
33723
|
maxZoom: 6,
|
|
33742
33724
|
cropAreaClassName: "h-[50vh] min-h-64",
|
|
33743
33725
|
onCropComplete: (area) => setCropArea(area)
|
|
@@ -33901,26 +33883,17 @@ function ReportProblemDialog({
|
|
|
33901
33883
|
}
|
|
33902
33884
|
)
|
|
33903
33885
|
] }),
|
|
33886
|
+
failure && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-destructive", children: failure }),
|
|
33904
33887
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-end gap-2", children: [
|
|
33905
33888
|
/* @__PURE__ */ jsx("span", { className: "mr-auto text-xs text-muted-foreground", children: footnote }),
|
|
33906
|
-
/* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: onClose, children: "Cancel" }),
|
|
33889
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: onClose, disabled: busy, children: "Cancel" }),
|
|
33907
33890
|
/* @__PURE__ */ jsx(
|
|
33908
33891
|
Button,
|
|
33909
33892
|
{
|
|
33910
|
-
|
|
33911
|
-
|
|
33912
|
-
|
|
33913
|
-
"
|
|
33914
|
-
children: "Copy image"
|
|
33915
|
-
}
|
|
33916
|
-
),
|
|
33917
|
-
/* @__PURE__ */ jsx(
|
|
33918
|
-
Button,
|
|
33919
|
-
{
|
|
33920
|
-
disabled: !natural || busy || cropping,
|
|
33921
|
-
onClick: () => void download(),
|
|
33922
|
-
"data-testid": "report-download",
|
|
33923
|
-
children: "Download"
|
|
33893
|
+
disabled: !onSubmit || !description.trim() || busy || cropping || !!image && !natural,
|
|
33894
|
+
onClick: () => void submit(),
|
|
33895
|
+
"data-testid": "report-send",
|
|
33896
|
+
children: busy ? "Sending\u2026" : "Send to support"
|
|
33924
33897
|
}
|
|
33925
33898
|
)
|
|
33926
33899
|
] })
|
|
@@ -33930,6 +33903,7 @@ function ReportProblemDialog({
|
|
|
33930
33903
|
}
|
|
33931
33904
|
function useReportProblem(options2 = {}) {
|
|
33932
33905
|
const { notify: notify17 } = useBlocksEnvironment();
|
|
33906
|
+
const [reportKey, setReportKey] = useState(0);
|
|
33933
33907
|
const [phase, setPhase] = useState("idle");
|
|
33934
33908
|
const [frame, setFrame] = useState(null);
|
|
33935
33909
|
const [image, setImage] = useState(null);
|
|
@@ -33948,6 +33922,7 @@ function useReportProblem(options2 = {}) {
|
|
|
33948
33922
|
setPhase("describing");
|
|
33949
33923
|
}, [notify17]);
|
|
33950
33924
|
const reset = useCallback(() => {
|
|
33925
|
+
setReportKey((key) => key + 1);
|
|
33951
33926
|
setPhase("idle");
|
|
33952
33927
|
setFrame(null);
|
|
33953
33928
|
setImage(null);
|
|
@@ -33982,25 +33957,34 @@ function useReportProblem(options2 = {}) {
|
|
|
33982
33957
|
setPhase("framing");
|
|
33983
33958
|
},
|
|
33984
33959
|
onClose: reset
|
|
33985
|
-
}
|
|
33960
|
+
},
|
|
33961
|
+
reportKey
|
|
33986
33962
|
)
|
|
33987
33963
|
] });
|
|
33988
|
-
return { start: () =>
|
|
33964
|
+
return { start: () => setPhase("describing"), ui };
|
|
33989
33965
|
}
|
|
33990
33966
|
function ConnectedReportProblem({
|
|
33991
33967
|
layout = "bar",
|
|
33992
33968
|
onSelect,
|
|
33993
33969
|
...options2
|
|
33994
33970
|
}) {
|
|
33995
|
-
const
|
|
33971
|
+
const arbi = useArbi();
|
|
33972
|
+
const report = useReportProblem({
|
|
33973
|
+
...options2,
|
|
33974
|
+
onSubmit: options2.onSubmit ?? ((report2) => arbi.support.create({
|
|
33975
|
+
description: report2.description,
|
|
33976
|
+
screenshot: report2.image,
|
|
33977
|
+
idempotencyKey: report2.idempotencyKey
|
|
33978
|
+
}))
|
|
33979
|
+
});
|
|
33996
33980
|
const bar = layout === "bar";
|
|
33997
33981
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
33998
33982
|
/* @__PURE__ */ jsx(
|
|
33999
33983
|
SidebarBadgeRow,
|
|
34000
33984
|
{
|
|
34001
|
-
icon: /* @__PURE__ */ jsx(
|
|
34002
|
-
label: "
|
|
34003
|
-
ariaLabel: "
|
|
33985
|
+
icon: /* @__PURE__ */ jsx(MessageCircleQuestionMark, { className: "size-5" }),
|
|
33986
|
+
label: "Contact support",
|
|
33987
|
+
ariaLabel: "Contact support",
|
|
34004
33988
|
variant: bar ? "icon" : void 0,
|
|
34005
33989
|
className: bar ? "size-9 pointer-coarse:size-11" : void 0,
|
|
34006
33990
|
"data-testid": "report-problem-button",
|
|
@@ -35261,55 +35245,30 @@ function ConnectedTaskStartDialog({
|
|
|
35261
35245
|
] });
|
|
35262
35246
|
}
|
|
35263
35247
|
function ConnectedThreadLauncher({ autoFocus }) {
|
|
35264
|
-
const
|
|
35265
|
-
|
|
35266
|
-
const {
|
|
35267
|
-
|
|
35268
|
-
|
|
35269
|
-
|
|
35270
|
-
|
|
35271
|
-
|
|
35272
|
-
|
|
35273
|
-
|
|
35274
|
-
|
|
35275
|
-
|
|
35276
|
-
|
|
35277
|
-
|
|
35278
|
-
|
|
35279
|
-
|
|
35280
|
-
|
|
35281
|
-
|
|
35282
|
-
|
|
35283
|
-
|
|
35284
|
-
|
|
35285
|
-
|
|
35286
|
-
|
|
35287
|
-
|
|
35288
|
-
return { id: result.conversationId, title };
|
|
35289
|
-
},
|
|
35290
|
-
onLater: (values) => setLater(
|
|
35291
|
-
values.workflowId ? {
|
|
35292
|
-
workflow: task.workflows.find((w) => w.external_id === values.workflowId),
|
|
35293
|
-
shared: values.shared
|
|
35294
|
-
} : { prompt: values.prompt, todo: values.todo, shared: values.shared }
|
|
35295
|
-
),
|
|
35296
|
-
onOpen: (id) => navigate(id)
|
|
35297
|
-
}
|
|
35298
|
-
),
|
|
35299
|
-
later && /* @__PURE__ */ jsx(
|
|
35300
|
-
ConnectedTaskComposer,
|
|
35301
|
-
{
|
|
35302
|
-
open: true,
|
|
35303
|
-
onOpenChange: (next) => !next && setLater(null),
|
|
35304
|
-
kind: "workflow",
|
|
35305
|
-
startLater: true,
|
|
35306
|
-
initialPrompt: later.prompt,
|
|
35307
|
-
initialWorkflowId: later.todo ? REMIND_TASK_ID : void 0,
|
|
35308
|
-
initialShared: later.shared,
|
|
35309
|
-
launchWorkflow: later.workflow
|
|
35310
|
-
}
|
|
35311
|
-
)
|
|
35312
|
-
] });
|
|
35248
|
+
const [draft, setDraft] = useState("");
|
|
35249
|
+
const input = useRef(null);
|
|
35250
|
+
const { openNewConversation } = useBlocksEnvironment();
|
|
35251
|
+
useEffect(() => {
|
|
35252
|
+
if (autoFocus) input.current?.focus();
|
|
35253
|
+
}, [autoFocus]);
|
|
35254
|
+
const send = () => {
|
|
35255
|
+
if (!draft.trim()) return;
|
|
35256
|
+
openNewConversation({ prompt: draft });
|
|
35257
|
+
setDraft("");
|
|
35258
|
+
};
|
|
35259
|
+
return /* @__PURE__ */ jsx(ComposerDock, { children: /* @__PURE__ */ jsx(ComposerContainer, { className: "mx-auto max-w-[49rem] px-3 sm:px-6", children: /* @__PURE__ */ jsx(
|
|
35260
|
+
ConversationComposer,
|
|
35261
|
+
{
|
|
35262
|
+
value: draft,
|
|
35263
|
+
onValueChange: setDraft,
|
|
35264
|
+
inputRef: input,
|
|
35265
|
+
handleSendMessage: send,
|
|
35266
|
+
isConversationEmpty: true,
|
|
35267
|
+
shouldOfferFollowUp: false,
|
|
35268
|
+
modelSelector: /* @__PURE__ */ jsx(ConnectedModelSelector, { variant: "compact" }),
|
|
35269
|
+
rightButton: /* @__PURE__ */ jsx(ComposerSend, { onSend: send, disabled: !draft.trim() })
|
|
35270
|
+
}
|
|
35271
|
+
) }) });
|
|
35313
35272
|
}
|
|
35314
35273
|
function ConnectedNewThreadDialog({
|
|
35315
35274
|
open,
|
|
@@ -35717,18 +35676,88 @@ function AgentControlBar({
|
|
|
35717
35676
|
}
|
|
35718
35677
|
);
|
|
35719
35678
|
}
|
|
35679
|
+
function sourceTitle(chunk, docTitles) {
|
|
35680
|
+
const displayTitle = chunk.metadata.doc_ext_id ? docTitles.get(chunk.metadata.doc_ext_id) : void 0;
|
|
35681
|
+
return displayTitle ?? chunk.metadata.doc_title ?? chunk.metadata.doc_ext_id ?? "Source";
|
|
35682
|
+
}
|
|
35683
|
+
function retrievedSources(citationData, docTitles) {
|
|
35684
|
+
const seen = /* @__PURE__ */ new Map();
|
|
35685
|
+
Object.values(citationData || {}).forEach((docChunks) => {
|
|
35686
|
+
if (!Array.isArray(docChunks)) return;
|
|
35687
|
+
docChunks.forEach((chunk) => {
|
|
35688
|
+
const chunkId = chunk?.metadata?.chunk_ext_id;
|
|
35689
|
+
if (!chunkId) return;
|
|
35690
|
+
const key = `${chunk.metadata.doc_ext_id ?? ""}:${chunk.metadata.page_number ?? ""}`;
|
|
35691
|
+
if (seen.has(key)) return;
|
|
35692
|
+
seen.set(key, {
|
|
35693
|
+
num: String(seen.size + 1),
|
|
35694
|
+
chunkIds: [chunkId],
|
|
35695
|
+
chunk,
|
|
35696
|
+
title: sourceTitle(chunk, docTitles),
|
|
35697
|
+
page: chunk.metadata.page_number
|
|
35698
|
+
});
|
|
35699
|
+
});
|
|
35700
|
+
});
|
|
35701
|
+
return [...seen.values()];
|
|
35702
|
+
}
|
|
35703
|
+
var SourceChips = ({ messageId, citations, citationData }) => {
|
|
35704
|
+
const compact = useCompactChat();
|
|
35705
|
+
const session = useArbiSessionStore();
|
|
35706
|
+
const openChunk = useOpenChunk();
|
|
35707
|
+
const docTitles = useWorkspaceDocTitles();
|
|
35708
|
+
const sources = useMemo(() => {
|
|
35709
|
+
if (!citations) return retrievedSources(citationData, docTitles);
|
|
35710
|
+
const chunkMap = /* @__PURE__ */ new Map();
|
|
35711
|
+
Object.values(citationData || {}).forEach((docChunks) => {
|
|
35712
|
+
if (Array.isArray(docChunks)) {
|
|
35713
|
+
docChunks.forEach((chunk) => {
|
|
35714
|
+
if (chunk?.metadata?.chunk_ext_id) chunkMap.set(chunk.metadata.chunk_ext_id, chunk);
|
|
35715
|
+
});
|
|
35716
|
+
}
|
|
35717
|
+
});
|
|
35718
|
+
return Object.entries(citations).sort(([a], [b]) => Number(a) - Number(b)).map(([num, chunkIds]) => {
|
|
35719
|
+
const chunk = chunkIds.map((id) => chunkMap.get(id)).find((c) => !!c);
|
|
35720
|
+
if (!chunk) return null;
|
|
35721
|
+
return {
|
|
35722
|
+
num,
|
|
35723
|
+
chunkIds,
|
|
35724
|
+
chunk,
|
|
35725
|
+
title: sourceTitle(chunk, docTitles),
|
|
35726
|
+
page: chunk.metadata.page_number
|
|
35727
|
+
};
|
|
35728
|
+
}).filter((c) => c !== null);
|
|
35729
|
+
}, [citations, citationData, docTitles]);
|
|
35730
|
+
const open = (num) => {
|
|
35731
|
+
const source = sources.find((s) => s.num === num);
|
|
35732
|
+
if (!source) return;
|
|
35733
|
+
if (!citations) {
|
|
35734
|
+
openChunk(source.chunk);
|
|
35735
|
+
return;
|
|
35736
|
+
}
|
|
35737
|
+
session.setActiveCitationKey(`${messageId}-${num}`);
|
|
35738
|
+
if (source.chunk.metadata.chunk_ext_id) openChunk(source.chunk);
|
|
35739
|
+
};
|
|
35740
|
+
if (compact && sources.length)
|
|
35741
|
+
return /* @__PURE__ */ jsxs("details", { className: "mt-2 text-xs text-muted-foreground", children: [
|
|
35742
|
+
/* @__PURE__ */ jsx("summary", { className: "cursor-pointer py-1", children: "Sources" }),
|
|
35743
|
+
/* @__PURE__ */ jsx(MessageSources, { messageId, sources, onOpenSource: open })
|
|
35744
|
+
] });
|
|
35745
|
+
return /* @__PURE__ */ jsx(MessageSources, { messageId, sources, onOpenSource: open });
|
|
35746
|
+
};
|
|
35720
35747
|
var ConversationSendButton = memo(function ConversationSendButton2({
|
|
35721
35748
|
onClick,
|
|
35722
35749
|
hasOrphanedMessage
|
|
35723
35750
|
}) {
|
|
35724
35751
|
const draftMessage = useArbiSessionState(selectDraft);
|
|
35752
|
+
const assistantName = useAssistantName();
|
|
35753
|
+
const recipients = assistantLabels(assistantName);
|
|
35725
35754
|
const showRetryIcon = hasOrphanedMessage && draftMessage === "";
|
|
35726
35755
|
return /* @__PURE__ */ jsx(
|
|
35727
35756
|
ComposerSend,
|
|
35728
35757
|
{
|
|
35729
35758
|
onSend: onClick,
|
|
35730
35759
|
isRetry: showRetryIcon,
|
|
35731
|
-
disabled: !showRetryIcon && !hasMessageBody(draftMessage)
|
|
35760
|
+
disabled: !showRetryIcon && !hasMessageBody(draftMessage, recipients)
|
|
35732
35761
|
}
|
|
35733
35762
|
);
|
|
35734
35763
|
});
|
|
@@ -35797,6 +35826,15 @@ var MicButton = memo(function MicButton2({
|
|
|
35797
35826
|
isRecording && /* @__PURE__ */ jsx(MicRecordingOverlay, { level: recorder.level, elapsedMs: recorder.elapsedMs })
|
|
35798
35827
|
] });
|
|
35799
35828
|
});
|
|
35829
|
+
var THREAD_TAG_FILTER_VIEW = "threads.tagFilter";
|
|
35830
|
+
function threadTagForWorkspace(filter, workspaceId) {
|
|
35831
|
+
return filter?.workspaceId === workspaceId ? filter?.tagId : void 0;
|
|
35832
|
+
}
|
|
35833
|
+
function useThreadTagFilter() {
|
|
35834
|
+
const workspaceId = useArbiSessionState((state) => state.workspaceId);
|
|
35835
|
+
const [filter, setFilter] = useTransientView(THREAD_TAG_FILTER_VIEW, null);
|
|
35836
|
+
return { tagId: threadTagForWorkspace(filter, workspaceId), clear: () => setFilter(void 0) };
|
|
35837
|
+
}
|
|
35800
35838
|
function ThreadSearch({ children, ResultsBoundary = ErrorBoundary }) {
|
|
35801
35839
|
const [query, setQuery] = useState("");
|
|
35802
35840
|
const [submitted, setSubmitted] = useState("");
|
|
@@ -35888,7 +35926,12 @@ function ConnectedThreadsPage({
|
|
|
35888
35926
|
const [meetingFilter] = useTransientView("threads.meetings", null);
|
|
35889
35927
|
const [topbarFilterQuery] = useTransientView("topbar.filter", "");
|
|
35890
35928
|
const currentUserExtId = useArbiSession().user?.external_id;
|
|
35891
|
-
const
|
|
35929
|
+
const { tagId } = useThreadTagFilter();
|
|
35930
|
+
const tagged = useMemo(
|
|
35931
|
+
() => tagId ? all.filter((row2) => row2.label_ext_ids?.includes(tagId)) : all,
|
|
35932
|
+
[all, tagId]
|
|
35933
|
+
);
|
|
35934
|
+
const tasks = useStableRecencyOrder(tagged);
|
|
35892
35935
|
const updateConversation = useUpdateConversation();
|
|
35893
35936
|
const deleteConversation = useDeleteConversation();
|
|
35894
35937
|
const canEditShared = useCanEditShared();
|
|
@@ -36254,10 +36297,6 @@ function ConnectedConversationPage({
|
|
|
36254
36297
|
const isGuest = workspaceRole === "guest";
|
|
36255
36298
|
const canUpload = workspaceRole !== null && !isGuest;
|
|
36256
36299
|
const [urlDialogOpen, setUrlDialogOpen] = useState(false);
|
|
36257
|
-
const [focusLauncher, setFocusLauncher] = useState(false);
|
|
36258
|
-
useEffect(() => {
|
|
36259
|
-
if (isInChat) setFocusLauncher(false);
|
|
36260
|
-
}, [isInChat]);
|
|
36261
36300
|
const uploadUrls = useAddFromUrls({
|
|
36262
36301
|
onZipFiles: (files) => openDialog("upload", { tab: "upload", files, source: "computer" })
|
|
36263
36302
|
});
|
|
@@ -36272,7 +36311,7 @@ function ConnectedConversationPage({
|
|
|
36272
36311
|
session.clearConversationError(currentConversationId || "new");
|
|
36273
36312
|
session.startNewConversation();
|
|
36274
36313
|
session.openThreadTab(null);
|
|
36275
|
-
session.setPaMode(true);
|
|
36314
|
+
if (asPaChat) session.setPaMode(true);
|
|
36276
36315
|
};
|
|
36277
36316
|
const threadFilterDropdown = /* @__PURE__ */ jsx(
|
|
36278
36317
|
ConnectedFilterDropdown,
|
|
@@ -36337,15 +36376,16 @@ function ConnectedConversationPage({
|
|
|
36337
36376
|
}
|
|
36338
36377
|
);
|
|
36339
36378
|
const { data: workspaceTags = [] } = useTags();
|
|
36379
|
+
const { tagId: threadTagId, clear: clearThreadTag } = useThreadTagFilter();
|
|
36340
36380
|
const historyCount = filterConversationRows(
|
|
36341
|
-
conversations,
|
|
36381
|
+
threadTagId ? conversations.filter((row2) => row2.label_ext_ids?.includes(threadTagId)) : conversations,
|
|
36342
36382
|
threadFilter,
|
|
36343
36383
|
(row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
|
|
36344
36384
|
doneFilter,
|
|
36345
36385
|
visibilityFilters,
|
|
36346
36386
|
meetingFilter
|
|
36347
36387
|
).length;
|
|
36348
|
-
const historyFiltered = Boolean(threadFilter.trim()) || doneFilter !== null || meetingFilter !== null || Object.values(visibilityFilters).some(Boolean);
|
|
36388
|
+
const historyFiltered = Boolean(threadTagId) || Boolean(threadFilter.trim()) || doneFilter !== null || meetingFilter !== null || Object.values(visibilityFilters).some(Boolean);
|
|
36349
36389
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36350
36390
|
/* @__PURE__ */ jsxs(ConversationRoot, { children: [
|
|
36351
36391
|
/* @__PURE__ */ jsxs(ConversationHeader, { children: [
|
|
@@ -36354,7 +36394,17 @@ function ConnectedConversationPage({
|
|
|
36354
36394
|
{
|
|
36355
36395
|
historyCount,
|
|
36356
36396
|
historyFiltered,
|
|
36357
|
-
historyActions:
|
|
36397
|
+
historyActions: /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-wrap items-center gap-2", children: [
|
|
36398
|
+
threadFilterBox,
|
|
36399
|
+
threadTagId && /* @__PURE__ */ jsx(
|
|
36400
|
+
TagFilterChips,
|
|
36401
|
+
{
|
|
36402
|
+
tags: workspaceTags,
|
|
36403
|
+
combination: /* @__PURE__ */ new Map([[threadTagId, "include"]]),
|
|
36404
|
+
onChange: clearThreadTag
|
|
36405
|
+
}
|
|
36406
|
+
)
|
|
36407
|
+
] }),
|
|
36358
36408
|
rightContent: (isCompact) => /* @__PURE__ */ jsxs(ConversationHeaderActions, { children: [
|
|
36359
36409
|
searchEnabled && /* @__PURE__ */ jsx(
|
|
36360
36410
|
SemanticSearchButton,
|
|
@@ -36378,12 +36428,11 @@ function ConnectedConversationPage({
|
|
|
36378
36428
|
labels: { newEntity: () => "New Task" },
|
|
36379
36429
|
isCompact,
|
|
36380
36430
|
onClick: () => {
|
|
36381
|
-
|
|
36382
|
-
setActiveTab("history");
|
|
36431
|
+
startNewChat(false);
|
|
36383
36432
|
}
|
|
36384
36433
|
}
|
|
36385
36434
|
),
|
|
36386
|
-
showPaMode && /* @__PURE__ */ jsx(NewPaChatButton, { isCompact, onClick: () => startNewChat() })
|
|
36435
|
+
showPaMode && /* @__PURE__ */ jsx(NewPaChatButton, { isCompact, onClick: () => startNewChat(true) })
|
|
36387
36436
|
] })
|
|
36388
36437
|
}
|
|
36389
36438
|
),
|
|
@@ -36411,7 +36460,7 @@ function ConnectedConversationPage({
|
|
|
36411
36460
|
)
|
|
36412
36461
|
}
|
|
36413
36462
|
),
|
|
36414
|
-
!isInChat && /* @__PURE__ */ jsx(ConversationHistoryPane, { children: searchEnabled && semanticSearchOpen ? /* @__PURE__ */ jsx(ConnectedThreadsPage, { showHeader: false, search: true, ResultsBoundary }) : /* @__PURE__ */ jsx(ConnectedThreadsPage, { showHeader: false
|
|
36463
|
+
!isInChat && /* @__PURE__ */ jsx(ConversationHistoryPane, { children: searchEnabled && semanticSearchOpen ? /* @__PURE__ */ jsx(ConnectedThreadsPage, { showHeader: false, search: true, ResultsBoundary }) : /* @__PURE__ */ jsx(ConnectedThreadsPage, { showHeader: false }) })
|
|
36415
36464
|
] }),
|
|
36416
36465
|
/* @__PURE__ */ jsx(
|
|
36417
36466
|
UrlInputDialog,
|
|
@@ -38891,25 +38940,6 @@ function ConnectedAppShell({
|
|
|
38891
38940
|
}
|
|
38892
38941
|
) });
|
|
38893
38942
|
}
|
|
38894
|
-
function useContextualHints() {
|
|
38895
|
-
const session = useArbiSessionStore();
|
|
38896
|
-
const { data: userSettings } = useUserSettings();
|
|
38897
|
-
const updateUserSettings = useUpdateUserSettings();
|
|
38898
|
-
const [sessionOverride] = useTransientView(TIPS_VISIBILITY_OVERRIDE, null);
|
|
38899
|
-
const setShowHints = (value) => setHintsSessionOverride(session, value);
|
|
38900
|
-
const setShowHintsPersisted = (value) => {
|
|
38901
|
-
setHintsSessionOverride(session, null);
|
|
38902
|
-
updateUserSettings.mutate({ show_hints: value });
|
|
38903
|
-
};
|
|
38904
|
-
return {
|
|
38905
|
-
showHints: sessionOverride ?? userSettings?.show_hints ?? true,
|
|
38906
|
-
settingsLoaded: userSettings !== void 0,
|
|
38907
|
-
isDeveloper: userSettings?.developer === true,
|
|
38908
|
-
setShowHints,
|
|
38909
|
-
setShowHintsPersisted,
|
|
38910
|
-
dismissHints: () => setShowHints(false)
|
|
38911
|
-
};
|
|
38912
|
-
}
|
|
38913
38943
|
var DEFAULT_TIPS_OFF_LABEL = "Tips are off. Turn them back on from your account menu.";
|
|
38914
38944
|
function ConnectedTipBar({
|
|
38915
38945
|
registry,
|
|
@@ -38920,9 +38950,10 @@ function ConnectedTipBar({
|
|
|
38920
38950
|
onDismiss,
|
|
38921
38951
|
renderEditor,
|
|
38922
38952
|
labels,
|
|
38923
|
-
className
|
|
38953
|
+
className,
|
|
38954
|
+
revealOnHover = false
|
|
38924
38955
|
}) {
|
|
38925
|
-
const { showHints, settingsLoaded, setShowHintsPersisted } = useContextualHints();
|
|
38956
|
+
const { showHints, settingsLoaded, setShowHintsPersisted, setShowHints } = useContextualHints();
|
|
38926
38957
|
const { dismissed, dismissTip } = useDismissedTips();
|
|
38927
38958
|
const { notify: notify17 } = useBlocksEnvironment();
|
|
38928
38959
|
const { data: workspaces } = useWorkspaces();
|
|
@@ -38940,7 +38971,22 @@ function ConnectedTipBar({
|
|
|
38940
38971
|
dismissed,
|
|
38941
38972
|
autoRotateSeconds
|
|
38942
38973
|
});
|
|
38943
|
-
if (!settingsLoaded || !
|
|
38974
|
+
if (!settingsLoaded || !tip) return null;
|
|
38975
|
+
if (!showHints)
|
|
38976
|
+
return revealOnHover ? /* @__PURE__ */ jsxs(
|
|
38977
|
+
Button,
|
|
38978
|
+
{
|
|
38979
|
+
variant: "ghost",
|
|
38980
|
+
size: "sm",
|
|
38981
|
+
onClick: () => setShowHints(true),
|
|
38982
|
+
className: "opacity-0 group-hover/sidebar:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100",
|
|
38983
|
+
"data-testid": "sidebar-show-tips",
|
|
38984
|
+
children: [
|
|
38985
|
+
/* @__PURE__ */ jsx(Lightbulb, { className: "size-4" }),
|
|
38986
|
+
" Show tips"
|
|
38987
|
+
]
|
|
38988
|
+
}
|
|
38989
|
+
) : null;
|
|
38944
38990
|
const takeCta = (shown) => () => {
|
|
38945
38991
|
if (shown.cta !== void 0) onCta?.(shown.cta);
|
|
38946
38992
|
if (shown.dismissOnCta) dismissTip(shown.code);
|
|
@@ -39216,6 +39262,39 @@ function ChromeInstallDialog({
|
|
|
39216
39262
|
] }) });
|
|
39217
39263
|
}
|
|
39218
39264
|
|
|
39219
|
-
|
|
39265
|
+
// src/connection/tags/tagged-content.ts
|
|
39266
|
+
function createTaggedContentNavigation({
|
|
39267
|
+
layout,
|
|
39268
|
+
getWorkspaceId,
|
|
39269
|
+
closePanels,
|
|
39270
|
+
setFactFilters,
|
|
39271
|
+
selectThreadTab
|
|
39272
|
+
}) {
|
|
39273
|
+
return (tagId, kind) => {
|
|
39274
|
+
const workspaceId = getWorkspaceId();
|
|
39275
|
+
if (!workspaceId) return;
|
|
39276
|
+
closePanels();
|
|
39277
|
+
layout.setTransientView("topbar.filter", "");
|
|
39278
|
+
if (kind === "documents") {
|
|
39279
|
+
useFilesPrefs.getState().setDocumentFilters({ [tagId]: "include" });
|
|
39280
|
+
useFilesPrefs.getState().setViewMode("grid");
|
|
39281
|
+
layout.setPage("documents");
|
|
39282
|
+
} else if (kind === "facts") {
|
|
39283
|
+
setFactFilters({ [tagId]: "include" });
|
|
39284
|
+
layout.setViewValue("facts.filterText", "");
|
|
39285
|
+
layout.setViewValue("facts.view", "table");
|
|
39286
|
+
layout.setPage("facts");
|
|
39287
|
+
} else {
|
|
39288
|
+
layout.setTransientView(THREAD_TAG_FILTER_VIEW, { workspaceId, tagId });
|
|
39289
|
+
layout.setTransientView("threads.done", null);
|
|
39290
|
+
layout.setTransientView("threads.visibility", { me: null, workspace: null });
|
|
39291
|
+
layout.setTransientView("threads.meetings", null);
|
|
39292
|
+
selectThreadTab(null);
|
|
39293
|
+
layout.setPage("conversations");
|
|
39294
|
+
}
|
|
39295
|
+
};
|
|
39296
|
+
}
|
|
39297
|
+
|
|
39298
|
+
export { AddAddonDialog, AddFromAccountsButton, AgentBarShell, AgentControlBar, BACKFILL_OPTIONS, BUILTIN_GLOBAL_DIALOGS, BULK_REPROCESS_LIMIT, BillingProjectEntity, CaptureBar, ChangePlanDialog, ChatAttachmentList, ChromeInstallDialog, ConnectedAccountAccessBadge, ConnectedAccountCluster, ConnectedAccountSettings, ConnectedAccountsImport, ConnectedAddContacts, ConnectedAgentChat, ConnectedAgentChatPanel, ConnectedAgentConfigForm, ConnectedAgentCreator, ConnectedAgentsPage, ConnectedAiReview, ConnectedAppRuntime, ConnectedAppShell, ConnectedAppsSettings, ConnectedArchiveWorkspaceButton, ConnectedAuthorizeAgent, ConnectedBulkTagEditor, ConnectedCalendar, ConnectedChatMessageBody, ConnectedChatPeopleDialog, ConnectedChatThread, ConnectedConfigForm, ConnectedContactCardForm, ConnectedContactMenu, ConnectedContactToggle, ConnectedContactsDirectory, ConnectedConversation, ConnectedConversationEmpty, ConnectedConversationStart, ConnectedDatabasesPage, ConnectedDeploymentStorage, ConnectedDeveloperConfig, ConnectedDmGrantAccessDialog, ConnectedDocumentProcessingPanel, ConnectedDriveSyncDialog, ConnectedEmailWorkspaceDialog, ConnectedEntitlementGate, ConnectedExportDialog, ConnectedExportPanel, ConnectedFactsPage, ConnectedFactsSmartSearch, ConnectedFieldsEditor, ConnectedFieldsManager, ConnectedFilesBulkActions, ConnectedFilesExplorer, ConnectedFilesPage, ConnectedFilterDropdown, ConnectedGettingStarted, ConnectedGlobalDialogs, ConnectedGrantWorkspaceAccessDialog, ConnectedGridView, ConnectedGroupMembers, ConnectedInviteMenu, ConnectedMailAccounts, ConnectedMailComposer, ConnectedMailInviteCard, ConnectedMailMessage, ConnectedMailSettings, ConnectedMailSetup, ConnectedMailbox, ConnectedMailboxSyncDialog, ConnectedMessenger, ConnectedModelConnectionsSettings, ConnectedMoveToFolder, ConnectedNewThreadDialog, ConnectedNotificationCenter, ConnectedOAuthConsentPage, ConnectedPanelHost, ConnectedPeerActions, ConnectedPeopleMultiSelect, ConnectedPremiumModels, ConnectedPrivacySettings, ConnectedProjectEntity, ConnectedProjectPage, ConnectedProjectSelector, ConnectedProjectStorage, ConnectedProjectsPanel, ConnectedPublicBooking, ConnectedQuotaDialog, ConnectedRecentlyDeletedButton, ConnectedRecipientSelector, ConnectedRecoveryKeyDialog, ConnectedReportProblem, ConnectedRequestWorkspaceAccess, ConnectedSearchPage, ConnectedSecureMailClaimPage, ConnectedSettingsPage, ConnectedShareDialog, ConnectedSharePointAdminConsentPage, ConnectedSharedFilesPage, ConnectedSignatureVerifyPage, ConnectedSkillUpload, ConnectedSkillsBrowser, ConnectedSkillsLibrary, ConnectedSsoCallback, ConnectedStorageProjectCard, ConnectedStorageSettings, ConnectedTagEditorDialog, ConnectedTagForm, ConnectedTagTable, ConnectedTagsPage, ConnectedTaskAccessRequest, ConnectedTaskStartDialog, ConnectedThreadFollow, ConnectedThreadLauncher, ConnectedThreadTabs, ConnectedThreadsPage, ConnectedTipBar, ConnectedTransferWatcher, ConnectedUnarchiveWorkspaceDialog, ConnectedUpcomingEvents, ConnectedUpload, ConnectedUploadDropzone, ConnectedWelcomeDialog, ConnectedWorkflowStart, ConnectedWorkspaceActivity, ConnectedWorkspaceDashboard, ConnectedWorkspaceEntity, ConnectedWorkspaceFormModal, ConnectedWorkspaceHouseTemplate, ConnectedWorkspaceList, ConnectedWorkspaceMembers, ConnectedWorkspaceNotificationMenu, ConnectedWorkspaceSettings, ConnectedWorkspaceShareDialog, 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_FIELDS, DEFAULT_SEARCH_ROW_LABELS, DEFAULT_SETTINGS_SECTIONS, DEFAULT_TIMELINE_LABEL_WIDTH, DEFAULT_TIPS_OFF_LABEL, DEFAULT_WORKSPACE_LIST_LABELS, DeveloperFooter, DocumentsFilterBarActions, DocumentsUploadButton, EmptyWorkspaceUpload, FACTS_GRID_ID, FIRST_LOGIN_WORKSPACES_VIEW, GETTING_STARTED_DONE_TIP, INVITATION_ROW_FILTERS, INVITE_SECTION, ImportVcfButton, ImportVcfSummary, InvoicesModal, LOOK_AGAIN_LABEL, MicButton, NewProjectFlow, NotificationCenter, NotificationEvent, PAGE_TRANSITION_VIEW, PENDING_ACCESS_REVIEW_VIEW, PENDING_LOOKUP_MS, PENDING_NOTIFICATION_VIEW, PENDING_TASK_MESSAGE, PENDING_WORKSPACE_SHARE_VIEW, PROJECTS_BASE_TAB_ID, PROMPT_BINDINGS, PersistedGridView, ProgressiveLoadingChip, ProjectDetail, ProjectUsageContent, ProjectsTable, REFERRAL_OFFER, RecoveryKeyDownload, ReportProblemDialog, RunStatsBadges, SEARCH_FIELD_OPTIONS, SEEN_ADDON_BLOCKS_VIEW, SETTINGS_SECTION_IDS, SharedProjects, SourceChips, 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, chatSettingsSection, clearSecureMailKey, closeAccessRequestReview, connectedAppsSettingsSection, connectionSettingsSection, countNotificationTypes, createDocumentColumns, createEventCall, createNotificationTargetOpener, createPaymentRequiredMiddleware, createTagColumn, createTaggedContentNavigation, deduplicateByContentHash, describePlan, dialogTabForPlace, distinctPeers, documentFamilyMeta, documentPlaceKey, emailInWorkspaceSection, featuresSettingsSection, filterNotificationCenterItems, formatAccessExpiry, formatStorageGb, groupFallbackName, houseTemplateWorkspaceSection, identifyOAuthClient, inviteRows, joinEventMeeting, loadEventWebinar, mailSettingsSection, modelConnectionsSettingsSection, openMeetingLink, openQuotaDialogIfUsedUp, openSsoPopup, organisationSettingsSection, parseArbiCallUrl, parseOAuthConsentRequest, parseTypedSkill, paymentConfirmationUrl, paymentRequiredToastMessage, privacySettingsSection, 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, useAiReviewLiveUpdates, useAppShell, useAutoRefreshPendingProjects, useBatchCompleteToasts, useChatMessageToasts, useConnectedAgentManagement, useConnectedCalendarCalls, useConnectedNotificationBell, useConnectedShellWorkspaces, useConnectedWorkspaceList, useConnectedWorkspaceSettings, useDocumentBulkActions, useDocumentFilters, useDocumentGridSync, useDocumentNavigation, useDocumentTable, useExportStore, useGettingStarted, useHasAccountsImport, useInstallSkillPackOnSignIn, useInvitationRows, useLaunchWorkflow, useMessengerRows, useNotificationBellEntry, useNotificationToasts, useOpenBillingPortal, useOpenNotificationTarget, useOpenWorkspaceActivityTarget, usePendingTaskThread, useProjectBillingFocus, useReferralReward, useReportProblem, useSessionPanelMode, useSessionSidebar, useSlashSkillWorkflows, useStartRequestedDraft, useTableViews, useTaskStart, useThreadLabels, useThreadTabs, useWorkflowLaunch, webinarRolesByUser, windowLabel, withAddonBlocksBought, withMissingTableViews, withTableView, withoutTableView };
|
|
39220
39299
|
//# sourceMappingURL=index.js.map
|
|
39221
39300
|
//# sourceMappingURL=index.js.map
|