@arbidocs/blocks 0.5.27 → 0.5.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ConnectedCallDock-5DFRWT2D.js → ConnectedCallDock-FDGMFTS5.js} +11 -11
- package/dist/{ConnectedCallDock-5DFRWT2D.js.map → ConnectedCallDock-FDGMFTS5.js.map} +1 -1
- package/dist/{ConnectedCallDock-UZ447IPL.cjs → ConnectedCallDock-ZIX2ZJCD.cjs} +12 -12
- package/dist/{ConnectedCallDock-UZ447IPL.cjs.map → ConnectedCallDock-ZIX2ZJCD.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-MRC375AN.js → ConnectedCallRoom-VJIHEJ4X.js} +11 -11
- package/dist/{ConnectedCallRoom-MRC375AN.js.map → ConnectedCallRoom-VJIHEJ4X.js.map} +1 -1
- package/dist/{ConnectedCallRoom-SECNWUNO.cjs → ConnectedCallRoom-WZQVXDDW.cjs} +12 -12
- package/dist/{ConnectedCallRoom-SECNWUNO.cjs.map → ConnectedCallRoom-WZQVXDDW.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-5VOMPGV5.js → ConnectedNativeDocxComparison-7ZC7BRY4.js} +14 -14
- package/dist/{ConnectedNativeDocxComparison-5VOMPGV5.js.map → ConnectedNativeDocxComparison-7ZC7BRY4.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-ZJ44DWVV.cjs → ConnectedNativeDocxComparison-KSLSDAAP.cjs} +15 -15
- package/dist/{ConnectedNativeDocxComparison-ZJ44DWVV.cjs.map → ConnectedNativeDocxComparison-KSLSDAAP.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-KQEYRN4T.cjs → ConnectedNativeDocxEditor-5E64Q7FX.cjs} +15 -15
- package/dist/{ConnectedNativeDocxEditor-KQEYRN4T.cjs.map → ConnectedNativeDocxEditor-5E64Q7FX.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-CSD3YIPD.js → ConnectedNativeDocxEditor-B5KDDPRY.js} +13 -13
- package/dist/{ConnectedNativeDocxEditor-CSD3YIPD.js.map → ConnectedNativeDocxEditor-B5KDDPRY.js.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-OTC4CAYP.cjs → ConnectedStreamedWordArtifact-RLU5VYGO.cjs} +15 -15
- package/dist/ConnectedStreamedWordArtifact-RLU5VYGO.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-ZPI76QX2.js → ConnectedStreamedWordArtifact-YCQSIGXL.js} +14 -14
- package/dist/ConnectedStreamedWordArtifact-YCQSIGXL.js.map +1 -0
- package/dist/{WorkspaceTableView-LS6LFKBE.js → WorkspaceTableView-62PJLX7V.js} +8 -8
- package/dist/{WorkspaceTableView-LS6LFKBE.js.map → WorkspaceTableView-62PJLX7V.js.map} +1 -1
- package/dist/{WorkspaceTableView-5I3KWZ5I.cjs → WorkspaceTableView-BUWRSR42.cjs} +10 -10
- package/dist/{WorkspaceTableView-5I3KWZ5I.cjs.map → WorkspaceTableView-BUWRSR42.cjs.map} +1 -1
- package/dist/agents/index.cjs +371 -371
- package/dist/agents/index.js +9 -9
- package/dist/calls/index.cjs +2 -2
- package/dist/calls/index.js +2 -2
- package/dist/chat/index.cjs +166 -166
- package/dist/chat/index.js +8 -8
- package/dist/{chunk-ORVJFY72.cjs → chunk-3IRIITUW.cjs} +7 -7
- package/dist/{chunk-ORVJFY72.cjs.map → chunk-3IRIITUW.cjs.map} +1 -1
- package/dist/{chunk-5DA4LSMC.js → chunk-3OKBEVP3.js} +3 -3
- package/dist/{chunk-5DA4LSMC.js.map → chunk-3OKBEVP3.js.map} +1 -1
- package/dist/{chunk-SQQULKT4.cjs → chunk-3PQPA5K6.cjs} +12 -12
- package/dist/{chunk-SQQULKT4.cjs.map → chunk-3PQPA5K6.cjs.map} +1 -1
- package/dist/{chunk-EZLZ3MDU.cjs → chunk-4RMI6D64.cjs} +3 -3
- package/dist/{chunk-EZLZ3MDU.cjs.map → chunk-4RMI6D64.cjs.map} +1 -1
- package/dist/{chunk-LMT6VLBN.js → chunk-4UREQY5X.js} +3 -3
- package/dist/{chunk-LMT6VLBN.js.map → chunk-4UREQY5X.js.map} +1 -1
- package/dist/{chunk-TL5VXRNT.cjs → chunk-52GITM4V.cjs} +91 -91
- package/dist/{chunk-TL5VXRNT.cjs.map → chunk-52GITM4V.cjs.map} +1 -1
- package/dist/{chunk-T5DBNUVF.cjs → chunk-CJWZYK5K.cjs} +5 -5
- package/dist/{chunk-T5DBNUVF.cjs.map → chunk-CJWZYK5K.cjs.map} +1 -1
- package/dist/{chunk-2CO5PMOE.cjs → chunk-CPJ2B3QQ.cjs} +4 -4
- package/dist/{chunk-2CO5PMOE.cjs.map → chunk-CPJ2B3QQ.cjs.map} +1 -1
- package/dist/{chunk-RP3IOGFT.cjs → chunk-CRUCMRFC.cjs} +9 -9
- package/dist/{chunk-RP3IOGFT.cjs.map → chunk-CRUCMRFC.cjs.map} +1 -1
- package/dist/{chunk-L2C7WV6D.js → chunk-DF2GSH4D.js} +3 -3
- package/dist/{chunk-L2C7WV6D.js.map → chunk-DF2GSH4D.js.map} +1 -1
- package/dist/{chunk-C4GMH6TZ.js → chunk-DNGA25ZA.js} +3 -3
- package/dist/{chunk-C4GMH6TZ.js.map → chunk-DNGA25ZA.js.map} +1 -1
- package/dist/{chunk-THNTNAYI.js → chunk-DV25UPJ7.js} +3 -3
- package/dist/{chunk-THNTNAYI.js.map → chunk-DV25UPJ7.js.map} +1 -1
- package/dist/{chunk-R4K5L6QY.js → chunk-EJSVRT3G.js} +6 -6
- package/dist/{chunk-R4K5L6QY.js.map → chunk-EJSVRT3G.js.map} +1 -1
- package/dist/{chunk-I45LDMQU.cjs → chunk-EVYUYVH2.cjs} +5 -5
- package/dist/{chunk-I45LDMQU.cjs.map → chunk-EVYUYVH2.cjs.map} +1 -1
- package/dist/{chunk-YD3RN2FY.cjs → chunk-F72ZD5Q2.cjs} +3 -3
- package/dist/{chunk-YD3RN2FY.cjs.map → chunk-F72ZD5Q2.cjs.map} +1 -1
- package/dist/{chunk-WP4IDJBA.js → chunk-G3MZ5S2Q.js} +3 -3
- package/dist/{chunk-WP4IDJBA.js.map → chunk-G3MZ5S2Q.js.map} +1 -1
- package/dist/{chunk-OJBOHLAH.js → chunk-GJI5PEGR.js} +3 -3
- package/dist/{chunk-OJBOHLAH.js.map → chunk-GJI5PEGR.js.map} +1 -1
- package/dist/{chunk-G6O77PJD.js → chunk-H72SWOUS.js} +3 -3
- package/dist/{chunk-G6O77PJD.js.map → chunk-H72SWOUS.js.map} +1 -1
- package/dist/{chunk-75Z5AUMM.js → chunk-JS7KJRKG.js} +3 -3
- package/dist/{chunk-75Z5AUMM.js.map → chunk-JS7KJRKG.js.map} +1 -1
- package/dist/{chunk-XMUYSOYU.js → chunk-KKBYWVEL.js} +5 -5
- package/dist/{chunk-XMUYSOYU.js.map → chunk-KKBYWVEL.js.map} +1 -1
- package/dist/{chunk-WL57N2KJ.cjs → chunk-LXB756TN.cjs} +3 -3
- package/dist/{chunk-WL57N2KJ.cjs.map → chunk-LXB756TN.cjs.map} +1 -1
- package/dist/{chunk-LDAV4UDA.js → chunk-OGADWN5L.js} +3 -3
- package/dist/{chunk-LDAV4UDA.js.map → chunk-OGADWN5L.js.map} +1 -1
- package/dist/{chunk-LX3JJYVP.cjs → chunk-OQCUIN6Z.cjs} +5 -5
- package/dist/{chunk-LX3JJYVP.cjs.map → chunk-OQCUIN6Z.cjs.map} +1 -1
- package/dist/{chunk-6EEVMPOH.js → chunk-OZRGYS3J.js} +3 -3
- package/dist/{chunk-6EEVMPOH.js.map → chunk-OZRGYS3J.js.map} +1 -1
- package/dist/{chunk-A3WHSTRX.js → chunk-OZSAQJO4.js} +3 -3
- package/dist/{chunk-A3WHSTRX.js.map → chunk-OZSAQJO4.js.map} +1 -1
- package/dist/{chunk-5OEDXFPX.cjs → chunk-QHWDV2VB.cjs} +3 -3
- package/dist/{chunk-5OEDXFPX.cjs.map → chunk-QHWDV2VB.cjs.map} +1 -1
- package/dist/{chunk-Z2BAYT2U.cjs → chunk-R3HZBTE3.cjs} +4 -4
- package/dist/{chunk-Z2BAYT2U.cjs.map → chunk-R3HZBTE3.cjs.map} +1 -1
- package/dist/{chunk-ADH5KQZW.cjs → chunk-SN7X7C7H.cjs} +3 -3
- package/dist/{chunk-ADH5KQZW.cjs.map → chunk-SN7X7C7H.cjs.map} +1 -1
- package/dist/{chunk-WBBUUEER.cjs → chunk-SQAVWMGV.cjs} +55 -55
- package/dist/{chunk-WBBUUEER.cjs.map → chunk-SQAVWMGV.cjs.map} +1 -1
- package/dist/{chunk-P57ASK2E.cjs → chunk-T3JW5BYG.cjs} +4 -4
- package/dist/{chunk-P57ASK2E.cjs.map → chunk-T3JW5BYG.cjs.map} +1 -1
- package/dist/{chunk-ZWL7GPQX.js → chunk-TKOP6WMD.js} +3 -3
- package/dist/{chunk-ZWL7GPQX.js.map → chunk-TKOP6WMD.js.map} +1 -1
- package/dist/{chunk-LOFESOAW.js → chunk-TY76UEFK.js} +5 -5
- package/dist/{chunk-LOFESOAW.js.map → chunk-TY76UEFK.js.map} +1 -1
- package/dist/{chunk-DEB2YRCN.js → chunk-UXIMEFEF.js} +7 -7
- package/dist/{chunk-DEB2YRCN.js.map → chunk-UXIMEFEF.js.map} +1 -1
- package/dist/{chunk-ROV3FG3J.js → chunk-W43S7COD.js} +3 -3
- package/dist/{chunk-ROV3FG3J.js.map → chunk-W43S7COD.js.map} +1 -1
- package/dist/{chunk-4Y4724GI.cjs → chunk-W5PKYJX5.cjs} +3 -3
- package/dist/{chunk-4Y4724GI.cjs.map → chunk-W5PKYJX5.cjs.map} +1 -1
- package/dist/{chunk-F5T4R7CN.cjs → chunk-WY626DNG.cjs} +10 -10
- package/dist/{chunk-F5T4R7CN.cjs.map → chunk-WY626DNG.cjs.map} +1 -1
- package/dist/{chunk-6PFVCAWJ.cjs → chunk-XDFH6ONO.cjs} +13 -13
- package/dist/{chunk-6PFVCAWJ.cjs.map → chunk-XDFH6ONO.cjs.map} +1 -1
- package/dist/{chunk-OUCSQ3IE.js → chunk-XGUN44A4.js} +7 -7
- package/dist/{chunk-OUCSQ3IE.js.map → chunk-XGUN44A4.js.map} +1 -1
- package/dist/collaboration/index.cjs +9 -9
- package/dist/collaboration/index.js +1 -1
- package/dist/connect/docx.cjs +17 -17
- package/dist/connect/docx.js +13 -13
- package/dist/connect/index.cjs +3006 -2274
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +2 -0
- package/dist/connect/index.js +784 -57
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +24 -24
- package/dist/connect/viewer.js +14 -14
- package/dist/connection/projects/ConnectedProjectPage.d.ts +1 -0
- package/dist/connection/projects/ProjectDetailsForm.d.ts +1 -0
- package/dist/connection/report-problem/CaptureBar.d.ts +11 -0
- package/dist/connection/report-problem/ConnectedReportProblem.d.ts +9 -0
- package/dist/connection/report-problem/ReportProblemDialog.d.ts +25 -0
- package/dist/connection/report-problem/index.d.ts +4 -0
- package/dist/connection/report-problem/screen-capture.d.ts +14 -0
- package/dist/connection/report-problem/screenshot-annotations.d.ts +53 -0
- package/dist/connection/report-problem/useReportProblem.d.ts +12 -0
- package/dist/connection/runtime/ConnectedAppRuntime.d.ts +6 -0
- package/dist/connection/runtime/index.d.ts +1 -0
- package/dist/connection/runtime/usePausedMutationNotice.d.ts +10 -0
- package/dist/connection/runtime/usePaymentReturn.d.ts +1 -0
- package/dist/connection/runtime/useReleaseStaleModalState.d.ts +1 -0
- package/dist/connection/runtime/useRetiredModelNotice.d.ts +1 -0
- package/dist/facts/index.cjs +57 -57
- package/dist/facts/index.js +5 -5
- package/dist/files/index.cjs +2 -2
- package/dist/files/index.js +2 -2
- package/dist/home/index.cjs +29 -29
- package/dist/home/index.js +4 -4
- package/dist/index.cjs +763 -702
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +78 -20
- package/dist/index.js.map +1 -1
- package/dist/settings/TipsEditorDialog.d.ts +3 -3
- package/dist/settings/index.cjs +156 -156
- package/dist/settings/index.js +3 -3
- package/dist/shell/index.cjs +1 -1
- package/dist/shell/index.js +1 -1
- package/dist/studio/index.cjs +8 -8
- package/dist/studio/index.js +7 -7
- package/dist/tips/index.d.ts +1 -0
- package/dist/tips/registry.d.ts +98 -0
- package/dist/workflow-canvas/index.cjs +62 -62
- package/dist/workflow-canvas/index.js +12 -12
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/src/blocks.css +13 -2
- package/dist/ConnectedStreamedWordArtifact-OTC4CAYP.cjs.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-ZPI76QX2.js.map +0 -1
package/dist/connect/index.js
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useBillingSupport, formatMoney, isProProject, useSelfExtId, addonCharge, formatPeriodEnd, quoteParts, taxDetail, money2, ANNUAL_PREMIUM_AI_NOTE, totalWithTaxWord, planBadgeView, DEFAULT_SPEND_CAP_PENCE, findProPrices, packPrice, calcSavingsPercent, parseBudgetPounds, isAddonBudgetZero, useRewardBalance, getQuotaItems, aiUsageResetTimestamp, formatResetDate, ZERO_BUDGET_MESSAGE, CAP_REACHED_MESSAGE, PRO_PACKS, planNameForPacks, proTierName, STORAGE_BLOCK_GB, ADDON_BLOCK_AI_GBP, quoteError, POSTCODE_COUNTRIES, addonPrice, checkoutBlockPriceText, quoteTotalLine, apiErrorDetail, checkoutItemsLabel, projectGroupBilling, SUGGESTED_DAILY_CAP_PER_USER, FREE_STORAGE_MB, FREE_AI_GBP, PRO_AI_GBP, PRO_STORAGE_GB, plusVat, planPreviewLines, PAY_TODAY_UNPRICED, TAX_LOCATION_INVALID, FREE_COLLABORATORS, MAX_CHECKOUT_BLOCKS, reduceBounds, splitBlocks, autoRoom, nextRemovedBlockSize, stepLabel, addStepCaption, blocksLabel, MIN_AUTO_TOPUP_THRESHOLD_GBP, USAGE_CAP_LABEL, USAGE_CAP_HELP, PLAN_CHOICE_PACKS, 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-
|
|
2
|
+
import { useBillingSupport, formatMoney, isProProject, useSelfExtId, addonCharge, formatPeriodEnd, quoteParts, taxDetail, money2, ANNUAL_PREMIUM_AI_NOTE, totalWithTaxWord, planBadgeView, DEFAULT_SPEND_CAP_PENCE, findProPrices, packPrice, calcSavingsPercent, parseBudgetPounds, isAddonBudgetZero, useRewardBalance, getQuotaItems, aiUsageResetTimestamp, formatResetDate, ZERO_BUDGET_MESSAGE, CAP_REACHED_MESSAGE, PRO_PACKS, planNameForPacks, proTierName, STORAGE_BLOCK_GB, ADDON_BLOCK_AI_GBP, quoteError, POSTCODE_COUNTRIES, addonPrice, checkoutBlockPriceText, quoteTotalLine, apiErrorDetail, checkoutItemsLabel, projectGroupBilling, SUGGESTED_DAILY_CAP_PER_USER, FREE_STORAGE_MB, FREE_AI_GBP, PRO_AI_GBP, PRO_STORAGE_GB, plusVat, planPreviewLines, PAY_TODAY_UNPRICED, TAX_LOCATION_INVALID, FREE_COLLABORATORS, MAX_CHECKOUT_BLOCKS, reduceBounds, splitBlocks, autoRoom, nextRemovedBlockSize, stepLabel, addStepCaption, blocksLabel, MIN_AUTO_TOPUP_THRESHOLD_GBP, USAGE_CAP_LABEL, USAGE_CAP_HELP, PLAN_CHOICE_PACKS, nextPeriodBody, addonSettingsBody, budgetSavedMessage } from '../chunk-H72SWOUS.js';
|
|
3
|
+
export { CAP_REACHED_MESSAGE, ZERO_BUDGET_MESSAGE, aiUsageResetTimestamp, formatMoney, formatResetDate, getQuotaItems, isAddonBudgetZero, isProProject, planBadgeView, planName, projectGroupBilling, useBillingSupport, useRewardBalance } from '../chunk-H72SWOUS.js';
|
|
4
4
|
import { getRoleBadgeClass, formatRole, getRoleDescription, PageLoading, WorkspacePageFrame, WorkspaceIdentityPanel, WorkspaceProjectSlot, WorkspaceAudienceLine, CommonWorkspaceToggle, ExpandableSection, LeaveFooter, ProjectPicker, WorkspaceTypeBadge, WorkspaceList, WorkspaceGroup, WorkspaceCard } from '../chunk-SBHWRN2D.js';
|
|
5
5
|
import { isAgentAccount, workspaceConversationCount, workspaceDocumentCount, isListedWorkspace, WORKSPACE_CATEGORY_FILTERS, projectFilterId, workspaceFilterAttributes, groupWorkspacesByProject, workspaceGroupStats, byRecentUpdate } from '../chunk-57CG33XJ.js';
|
|
6
6
|
import { SharedFileView, SharedFilesInbox } from '../chunk-4ML5AMMO.js';
|
|
7
|
-
import { buildFactCitations, citedVersionRef, chronologyFactBodies, docIdsOf, toFactCitations, FactsToolbar, FactsFieldsButton, FactComposer, FactDateInput, FactSourcesRow, FactsLoading, FactsLoadError, FactsEmptyState, FactsCalendar, FactsGanttPane, FactsBulkBar, FactSourceGroup, EMPTY_FACT_DATE_FIELDS, withoutChunk, factDateSpanToFields, FactFieldRow, FactLabelsCell, enableFactTableColumnResize, withChunk, factDateFieldsToSpan, createFactColumns, FactRowActions, withoutDoc, withDoc, sourceDocCount, DEFAULT_FACT_COLUMN_LABELS } from '../chunk-
|
|
8
|
-
import { HomeLoadError, HomeFrame, HomeMain, HomeCenteredScroll, HomeCenteredColumn, DashboardRoot, DashboardBand, DashboardColumns, RecentList, DashboardAction, FactsStrip, FactMark, CreateTile } from '../chunk-
|
|
7
|
+
import { buildFactCitations, citedVersionRef, chronologyFactBodies, docIdsOf, toFactCitations, FactsToolbar, FactsFieldsButton, FactComposer, FactDateInput, FactSourcesRow, FactsLoading, FactsLoadError, FactsEmptyState, FactsCalendar, FactsGanttPane, FactsBulkBar, FactSourceGroup, EMPTY_FACT_DATE_FIELDS, withoutChunk, factDateSpanToFields, FactFieldRow, FactLabelsCell, enableFactTableColumnResize, withChunk, factDateFieldsToSpan, createFactColumns, FactRowActions, withoutDoc, withDoc, sourceDocCount, DEFAULT_FACT_COLUMN_LABELS } from '../chunk-JS7KJRKG.js';
|
|
8
|
+
import { HomeLoadError, HomeFrame, HomeMain, HomeCenteredScroll, HomeCenteredColumn, DashboardRoot, DashboardBand, DashboardColumns, RecentList, DashboardAction, FactsStrip, FactMark, CreateTile } from '../chunk-GJI5PEGR.js';
|
|
9
9
|
import { ProjectBandTitle, PlainBandTitle } from '../chunk-RQKWYKZY.js';
|
|
10
10
|
import '../chunk-WZ63HE2C.js';
|
|
11
|
-
import { MessageJsonTree, DraggableHeader, ProfileCard, AvatarPicker, IdentityVerificationCard, IdentityVerificationDialog, RequireVerified, PasswordChangeDialog, EMAIL_NOTIFICATION_KEYS, EMAIL_NOTIFICATION_CATEGORIES, NotificationCategoryList, toNotificationCategories, toActiveSessionViews, ActiveSessionsDialog, LogoutDialog, toLogoutSessionViews, DeleteAccountDialog, toDeleteBlockerViews, PremiumModelsFrame, ConnectionsLoading, ConnectionsError, ConnectionsEmpty, UsageToggle, SettingsPage, UsageSummary, AppearanceSettings, UsageLineChart, 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, PlanStack, PlanNotice, PlanPickerCard, PlanPickerHeader, PricingToggle, PromoCodeInput, PlanActionButton, QuotaExceededDialogView, InviteContactsDialog, WelcomeDialog, applyTriStateFilters, PanelFrame, PanelAddButton, PanelFrameBody, PanelScroll, PanelActionsRow, applyInvertedIndexFilter, ConfigSwitcherBar, PanelNote, ProjectRow, QuotaMeter, FilterChip, buildInvertedIndex, serverConnectionView, ServerConnectionButton, ModelProviderLabel, SyncFolderRow, SyncFolderStatus, PlanTierOption, PlanActionRow, SubscriptionStatusView, DailyCapField, PlanInfoPopover, PlanCardGrid, ReferralRewardSummary, CheckoutDialogFrame, ConnectionCard, ReferralRewardNote } from '../chunk-
|
|
12
|
-
export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-
|
|
13
|
-
import {
|
|
14
|
-
export {
|
|
15
|
-
import {
|
|
16
|
-
|
|
11
|
+
import { MessageJsonTree, DraggableHeader, ProfileCard, AvatarPicker, IdentityVerificationCard, IdentityVerificationDialog, RequireVerified, PasswordChangeDialog, EMAIL_NOTIFICATION_KEYS, EMAIL_NOTIFICATION_CATEGORIES, NotificationCategoryList, toNotificationCategories, toActiveSessionViews, ActiveSessionsDialog, LogoutDialog, toLogoutSessionViews, DeleteAccountDialog, toDeleteBlockerViews, PremiumModelsFrame, ConnectionsLoading, ConnectionsError, ConnectionsEmpty, UsageToggle, SettingsPage, UsageSummary, AppearanceSettings, UsageLineChart, 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, PlanStack, PlanNotice, PlanPickerCard, PlanPickerHeader, PricingToggle, PromoCodeInput, PlanActionButton, QuotaExceededDialogView, InviteContactsDialog, WelcomeDialog, applyTriStateFilters, PanelFrame, PanelAddButton, PanelFrameBody, PanelScroll, PanelActionsRow, applyInvertedIndexFilter, ConfigSwitcherBar, PanelNote, ProjectRow, QuotaMeter, FilterChip, buildInvertedIndex, serverConnectionView, ServerConnectionButton, ModelProviderLabel, SyncFolderRow, SyncFolderStatus, PlanTierOption, PlanActionRow, SubscriptionStatusView, DailyCapField, PlanInfoPopover, PlanCardGrid, ReferralRewardSummary, CheckoutDialogFrame, ConnectionCard, ReferralRewardNote } from '../chunk-OZRGYS3J.js';
|
|
12
|
+
export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-OGADWN5L.js';
|
|
13
|
+
import { useTranscriptRuns, TranscriptEntry, ThreadCallLogCard, RecordingCard, useMeetingThreadMessages, threadTranscriptRuns, useProvisionalSpeakers, TranscriptRunsContext, ProvisionalSpeakers, CallConversationEmpty } from '../chunk-A634VUNB.js';
|
|
14
|
+
export { useMeetingThreadMessages } from '../chunk-A634VUNB.js';
|
|
15
|
+
import { parseCallLogDetail } from '../chunk-S3YRRD54.js';
|
|
16
|
+
import { useConnectedWorkspaceRole, useConnectedWorkflowScopeSource, ConnectedWorkflowDocumentsField, ConnectedWorkflowLauncher, ConnectedNativeDocxEditor, toWorkflowFieldDocument } from '../chunk-XGUN44A4.js';
|
|
17
|
+
export { ConnectedWorkflowDocumentsField, ConnectedWorkflowLauncher, ConnectedWorkflowsTable, DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS, toWorkflowFieldDocument, useConnectedAgentOptions, useConnectedWorkflowScopeSource, useConnectedWorkspaceRole, useDocxCommentTarget, useNativeDocxSupport } from '../chunk-XGUN44A4.js';
|
|
18
|
+
import { ConnectedMarkdown, InternalDocLink, ExternalLink, DocumentWorkspaceContext } from '../chunk-DNGA25ZA.js';
|
|
19
|
+
export { ConnectedDocumentToolsProvider, ConnectedMarkdown, DocumentChip, DocumentWorkspaceContext, ExternalLink, InternalDocLink, MailChip, MermaidDiagram, WorkspaceDocumentReference, useDocumentViewerSupport, useDocumentWorkspace, useViewerDraftDocument, useViewerIsDetached, useViewerPassageCitation, useViewerStreamingDocument } from '../chunk-DNGA25ZA.js';
|
|
17
20
|
import { ExplorerFileTile, formatFolderSegment, hasFolderProviderIcon, FolderProviderIcon, ExplorerFolderTile, StatusPill, FailedStageIcon, DocumentNameCellFrame, DocumentRowMenu, visibilityToggleTooltip, FolderCell, FolderCommandList, RelatedDocsCell, FilterButton, DOCUMENTS_ROW_HEIGHT_INITIAL, searchExplorerDocuments, buildExplorerEntries, collectFolderDocs, joinFolderPath, getExplorerDisplayName, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, canDeleteDocument, ExplorerFrame, ExplorerStage, ExplorerScroller, ExplorerLoadingTiles, ExplorerEmpty, ExplorerMarquee, ExplorerDropOverlay, ExplorerDragPreview, CheckboxCell, TagColumnHeader, ExplorerFileTooltip, visibilityAudience, TagFormRoot, TagFormNameField, TagFormSelectField, TagFormNote, TagFormOptionsEditor, TagFormInstructionField, TagFormMeta, TagFormFooter, TagFormSharedToggle, FilesViewCenter, FilesFilterBar, TransferProgressView, TransferResumeBanner, ExportResultsReport, TransferScopeChooser, TransferKindsPicker, TransferReferencesChooser, ExportMethodChooser, ExportWorkspacePicker, TransferConflictChooser, TransferPlanSummary, ExportFooter, ExportModalTitle, ROW_MIN, rowHeightForLines, linesForRowHeight, RowDensityControl, VendorLogo, FolderFilterButton, FolderPickerRow, UploadFrame, UploadContainer, SelectedFilesList, RejectedFilesList, UploadErrorMessage, UploadProgress, PrivacyExplainerModal, MultiSelectCellEditor, DOCUMENT_TYPE_OPTIONS, DEFAULT_DOCUMENT_COLUMNS, shareStateOf, BulkActionsBar, shareTooltipFor, parseFolderSegments, AiReviewDialogView, MoveToFolderDialog, sortFields, filterFieldsByName, fieldsApplyBarCopy, FieldsEditorRoot, FieldsEditorToolbar, FieldsEditorList, FieldRow, FieldsEmptyState, fieldsEmptyText, FieldsApplyBar, FieldsManagerDefinition, FieldsManagerBody, FieldsManagerTitle, BulkTagEditorDialog, BulkReplaceDialog, FieldValue, FieldFolderSelect, FieldFolderValue, FieldNativeSelect, FieldWithAttribution, EMAIL_VIEW_COLUMNS, useGridViews, ViewSelectorMenu, FilesAddMenu, applyColumnLayout, applyViewColumns, sortExplorerFiles, FilesPage, UrlInputDialog, FilesPageHeader, FilesToolbar, ExplorerFileNavigator, NavigatorPickerBar, FilesPageMain, DocumentGrid, resolveDocumentGridLayout, FilesModalFooter, BulkLabelSelectView, confirmHideFromMembers, DocumentsFolderButton, FilesTagsButton, UploadSourceSection, UploadSourcePicker, UploadBrowseButtons, canEditDocumentFields, FieldLabelsSelect, ShareToggle, FieldAttribution, UploadDropArea, canChangeVisibility, UploadUrlButton } from '../chunk-46XON6PW.js';
|
|
18
21
|
import { ViewToggle, DocumentViewToggle } from '../chunk-JJA6GQKH.js';
|
|
19
22
|
import { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
|
|
23
|
+
import { useDocumentFilter, useConnectedTags, useConnectedDocuments, useConnectedConversations, useListedDocuments, listedDocuments } from '../chunk-5ETT7ZIO.js';
|
|
24
|
+
export { isListedDocument, useConnectedConversations, useConnectedDocuments, useConnectedTags, useDocumentFilter, useListedDocuments } from '../chunk-5ETT7ZIO.js';
|
|
25
|
+
import { useConnectedWorkspace, useConnection, useOptionalConnection, ConnectionProvider } from '../chunk-IZJ3BOJO.js';
|
|
26
|
+
export { SESSION_EXPIRED_MESSAGE, isAuthenticated, useConnectedWorkspace, useConnection } from '../chunk-IZJ3BOJO.js';
|
|
20
27
|
import { SignatureCertificate, SignDocumentDialog } from '../chunk-PQU6LE7U.js';
|
|
21
28
|
import '../chunk-6HKLTYNN.js';
|
|
22
29
|
import { SettingsSection, SettingsCard, SettingsActionRow, SettingsRow, SettingsDangerZone, SettingsPanel, SettingsDisclosure } from '../chunk-MZA7GMOH.js';
|
|
@@ -24,7 +31,7 @@ import '../chunk-MTSKK3BN.js';
|
|
|
24
31
|
import '../chunk-LU23I2HS.js';
|
|
25
32
|
import { FactSourcesPanel, FactPassageItem } from '../chunk-HFZ45FD3.js';
|
|
26
33
|
import '../chunk-IA5BYEO7.js';
|
|
27
|
-
import { EntityTooltip, EntityTooltipHeader, EntityTooltipSection, EntityTooltipHint, SharedCell, WorkspaceActivityList, WorkspaceNotificationMenu, ThreadFollowMenuItem, ThreadFollowButton, TagTable, TagPicker, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, EntityTooltipStats, tagTableDocx, documentCount, tagTableLabels, TagDetail, tagDetailLabels, tagNoteLabel, tagKindDescription, Toolbar, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-
|
|
34
|
+
import { EntityTooltip, EntityTooltipHeader, EntityTooltipSection, EntityTooltipHint, SharedCell, WorkspaceActivityList, WorkspaceNotificationMenu, ThreadFollowMenuItem, ThreadFollowButton, TagTable, TagPicker, tagsPageNouns, entitiesPhrase, ExtractEntitiesDialog, GridRowNavigator, LoadingIndicator, EntityIdentityBar, IDENTITY_NAME_MAX_LENGTH, EntityTooltipStats, tagTableDocx, documentCount, tagTableLabels, TagDetail, tagDetailLabels, tagNoteLabel, tagKindDescription, Toolbar, glossaryEntries, glossaryDocx, glossaryMarkdown, glossaryFileName } from '../chunk-DF2GSH4D.js';
|
|
28
35
|
import { MemberAvatarStack } from '../chunk-FUPAGAZB.js';
|
|
29
36
|
import { renderSearchSnippet, SearchGroupHeader, isMeaningMatch, extractHighlightTerms, passesRelevanceCutoff, groupSearchResults, SearchPillToggle, SearchPagination, SearchPageFrame, SearchPageHeader, ApplyLabelDialog, SearchPageBody, SearchToolbarRow, SearchBar, SearchControlsBar, RelevanceThreshold, SearchTotalsHeadline, ApplyLabelButton, getSearchMatchHint, SearchResultsMain, SearchResultsInner, SearchErrorBanner, SearchResultList, SearchGroupCard, SearchNoResults, SearchEmptyState } from '../chunk-G4IYES7G.js';
|
|
30
37
|
import { SearchHit } from '../chunk-AYAWG2CM.js';
|
|
@@ -36,18 +43,19 @@ import '../chunk-UJE32SST.js';
|
|
|
36
43
|
import '../chunk-NHZK64TQ.js';
|
|
37
44
|
import { PlainMailBodyEditor, MemberNameCell, MemberMutedText, MemberRoleCell, MemberListLoading, MemberBulkActions, buildMailFolderTree, MailFolderTree, AddContactsResults, AddContactsForm, emailTokens, EMPTY_CONTACT_FORM, contactToForm, contactStatusLabel, summarizeImport, matchesContact, contactName, primaryEmail, draftMailCompose, replyMailCompose, emptyMailCompose, MailGrid, MailMessageView, DmThreadFrame, DmAccessRequestBanner, planContactInvites, MAX_INVITE_EMAILS, summarizeUnsentInvites, applyContactInviteResults, summarizeContactInvites, failContactInvites, validateContactForm, inviteEmail, formToContactCard, DEFAULT_CONTACT_OUTCOME_LABELS, contactOutcomeMessage, MailDocumentPicker, parseMailRecipients } from '../chunk-H7L43DIE.js';
|
|
38
45
|
import '../chunk-NBV56SGU.js';
|
|
46
|
+
import { DmThreadHeader, DmInviteChip } from '../chunk-2S3LT5KE.js';
|
|
39
47
|
import { ErrorBoundary } from '../chunk-EQ3WRY2N.js';
|
|
40
48
|
import { LabelMultiSelectView } from '../chunk-JMQLTMJ7.js';
|
|
41
49
|
import { workspaceKindColor, WorkspaceIdentity, SidebarBadgeRow, ActionCluster, prefetchChunk } from '../chunk-PXYP3DM5.js';
|
|
42
|
-
import { PassagePill, useCopyText } from '../chunk-MTHAQGJB.js';
|
|
43
50
|
import '../chunk-K4BGOPGG.js';
|
|
51
|
+
import { useHost, ArbiHost } from '../chunk-T4P237N6.js';
|
|
44
52
|
import '../chunk-ZCOVDK2E.js';
|
|
45
53
|
import { isDefinitionsLabel, DOCX_MIME_TYPE, toDefinitionSource, definitionLabels } from '../chunk-IYUKJESY.js';
|
|
46
54
|
import { decodeWhitespaceEntities } from '../chunk-AF6RDAJF.js';
|
|
47
|
-
import { EntityChip, StepTraceSummary, StepTrace, getCurrentAgentStepPresentation, AssistantEntity, ThreadActivity, SubAgentLane, getAgentStepPresentation, stepAccent, MODEL_TIER_ICON_MAP, StepRow, StepNarration, StepSummary, StepDetail, StepOutcome, StepParams, GoalCriteria, SubStepGroup, MODEL_TIER_LABELS, fromPlanSteps, latestMessageTime, isSupersededStop, compactThreadActivity, unnotifiedMentions, notifiedLabel, linkedRunsFromActivity, getModelIcon, SubagentRoster, buildLibrarySkills, filterLibrarySkills, SKILL_SOURCE_LABELS, SKILL_TYPE_LABELS, SkillViewToggle, SkillFilterChips, SkillTile, SkillGenerateForm, SkillLibraryDetail, parseSkillFrontmatter, SKILL_MAIN_FILENAME, SkillEditForm, DEFAULT_AGENT_CAPABILITIES, stripPersonaPreamble, AgentCreator, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TEMPLATES, AgentAvatarField, isValidAgentName, AgentConnectInstructions, TaskRunsDialog, TaskActivityDialog, WorkflowStepBar, ConsentPage, ConsentCard, ConsentHeader, ConsentNotice, ConsentSection, ConsentBulletList, ConsentStrong, ConsentText, ConfigForm, AgentEditView, AgentMainView, AgentCreatedView, AgentCreateView, WorkflowRunStatus, ThreadStatusLine, WorkflowThreadStrip, WorkflowStepAction, WorkflowThreadStartedBy, TaskFlow, useWorkflowUsage, WEB_WORKFLOWS, DASHBOARD_PINNED, CUSTOM_TASK, REMIND_TASK, DASHBOARD_OPERATIONS, sortByRecentUse, taskComposerToCreateRequest, taskComposerToUpdateRequest, composerToWorkflowUpdate, moveTargets, workflowToComposerValues, REMIND_TASK_ID, CUSTOM_TASK_ID, taskToComposerValues, TaskComposer, renderWorkflowIcon, AUTOMATION_EVENTS, TaskPlan, TaskStartDialog, ThreadLauncher, NewThreadDialog, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, deriveAnnotationName, ANNOTATE_ID, recordWorkflowUse, openWorkflowLaunch, useWorkflowLaunchRequest, AgentBar, AgentBarNotes, AgentBarQueuedNote, AgentBarProbeAnswer, BUILTIN_SKILLS, TaskEmptyState, ConsentMessage, CopyableUrl, ConsentPermissionList, ConsentActions, ConsentFootnote, AgentBarStatus, AgentBarIconButton, AgentBarMenu, composePersona, newThreadToRequest, importSkillFile, importSkillFromUrl, WorkflowRunner, skillSlug, serializeSkill, toPlanSteps, useWorkflowView, STATUS_LABELS, asTaskStatus, workflowToSkillMarkdown, closeWorkflowLaunch } from '../chunk-
|
|
55
|
+
import { EntityChip, StepTraceSummary, StepTrace, getCurrentAgentStepPresentation, AssistantEntity, ThreadActivity, SubAgentLane, getAgentStepPresentation, stepAccent, MODEL_TIER_ICON_MAP, StepRow, StepNarration, StepSummary, StepDetail, StepOutcome, StepParams, GoalCriteria, SubStepGroup, MODEL_TIER_LABELS, fromPlanSteps, latestMessageTime, isSupersededStop, compactThreadActivity, unnotifiedMentions, notifiedLabel, linkedRunsFromActivity, getModelIcon, SubagentRoster, buildLibrarySkills, filterLibrarySkills, SKILL_SOURCE_LABELS, SKILL_TYPE_LABELS, SkillViewToggle, SkillFilterChips, SkillTile, SkillGenerateForm, SkillLibraryDetail, parseSkillFrontmatter, SKILL_MAIN_FILENAME, SkillEditForm, DEFAULT_AGENT_CAPABILITIES, stripPersonaPreamble, AgentCreator, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TEMPLATES, AgentAvatarField, isValidAgentName, AgentConnectInstructions, TaskRunsDialog, TaskActivityDialog, WorkflowStepBar, ConsentPage, ConsentCard, ConsentHeader, ConsentNotice, ConsentSection, ConsentBulletList, ConsentStrong, ConsentText, ConfigForm, AgentEditView, AgentMainView, AgentCreatedView, AgentCreateView, WorkflowRunStatus, ThreadStatusLine, WorkflowThreadStrip, WorkflowStepAction, WorkflowThreadStartedBy, TaskFlow, useWorkflowUsage, WEB_WORKFLOWS, DASHBOARD_PINNED, CUSTOM_TASK, REMIND_TASK, DASHBOARD_OPERATIONS, sortByRecentUse, taskComposerToCreateRequest, taskComposerToUpdateRequest, composerToWorkflowUpdate, moveTargets, workflowToComposerValues, REMIND_TASK_ID, CUSTOM_TASK_ID, taskToComposerValues, TaskComposer, renderWorkflowIcon, AUTOMATION_EVENTS, TaskPlan, TaskStartDialog, ThreadLauncher, NewThreadDialog, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, deriveAnnotationName, ANNOTATE_ID, recordWorkflowUse, openWorkflowLaunch, useWorkflowLaunchRequest, AgentBar, AgentBarNotes, AgentBarQueuedNote, AgentBarProbeAnswer, BUILTIN_SKILLS, TaskEmptyState, ConsentMessage, CopyableUrl, ConsentPermissionList, ConsentActions, ConsentFootnote, AgentBarStatus, AgentBarIconButton, AgentBarMenu, composePersona, newThreadToRequest, importSkillFile, importSkillFromUrl, WorkflowRunner, skillSlug, serializeSkill, toPlanSteps, useWorkflowView, STATUS_LABELS, asTaskStatus, workflowToSkillMarkdown, closeWorkflowLaunch } from '../chunk-EJSVRT3G.js';
|
|
48
56
|
import { MultiSelect } from '../chunk-CQCC7LE7.js';
|
|
49
|
-
import { PersonPill, documentScopeLabels, matchWorkflowScope } from '../chunk-
|
|
50
|
-
import { SectionLabel } from '../chunk-
|
|
57
|
+
import { PersonPill, documentScopeLabels, matchWorkflowScope } from '../chunk-KKBYWVEL.js';
|
|
58
|
+
import { SectionLabel } from '../chunk-TKOP6WMD.js';
|
|
51
59
|
import { TriStateFilterMenu } from '../chunk-G4GLDQLY.js';
|
|
52
60
|
import '../chunk-M4S75AEJ.js';
|
|
53
61
|
import '../chunk-5LXQPP2K.js';
|
|
@@ -55,6 +63,8 @@ import { SelectionBar, SelectionBarAction } from '../chunk-NUNKSZKU.js';
|
|
|
55
63
|
import '../chunk-RLWIUUQ5.js';
|
|
56
64
|
import { FilterInput } from '../chunk-YU2KUMGE.js';
|
|
57
65
|
import '../chunk-WBCGVEJX.js';
|
|
66
|
+
import { TabHeader } from '../chunk-ABEKUV6L.js';
|
|
67
|
+
import { EmptyState } from '../chunk-P6GHJSLR.js';
|
|
58
68
|
import { GridView } from '../chunk-7F5Z4K5W.js';
|
|
59
69
|
import { StreamedArtifactFrame } from '../chunk-LOJVUGBJ.js';
|
|
60
70
|
import { DEFAULT_PASSWORD_RULES, AccountRecoveryDialog, promptSaveCredential, useFragmentCredentials, AuthLayout, AuthHeading, AuthField, AuthInput, AuthFieldBadge, AuthLink, AuthNote, RevealablePasswordInput, AuthConsent, AuthSubmitButton, AuthDivider, AuthAlert, RecoveryKeyDialog, parseAuthError, AuthOfflineBadge, AuthTabs, splitAuthHash, withTrailingFragment } from '../chunk-VN4FSGBR.js';
|
|
@@ -62,30 +72,20 @@ import { PasswordStrengthInput } from '../chunk-P6OLZGQA.js';
|
|
|
62
72
|
import { attendeeKey, upcomingOf, conferenceUrl, isWebinarConference, canJoinEvent, calendarToListItem, buildGridEvents, pendingCreateToGrid, newEventDraft, MiniMonth, CalendarList, CalendarGrid, printCalendar, EventDetails, ScopeDialog, CalendarFormDialog, ProposeTimeDialog, isCalendarAttachment, parseIcsInvite, formatEventWhen, groupSlotsByDay, publicBookingMessage, formatSlotRange, zoneOptions, buildTimeChangeRequest, eventToDraft, needsScope, validateDraft, CALENDAR_DEFAULT_LABELS, buildCreateBody, buildDeleteTarget, EventEditor, toSettingsValue, CalendarSettingsForm, describeCalendarError, normalizeFeedUrl, parseOverlayLink, isAllDayDraft, draftRangeUtc, freeBusyToRows, SchedulingAssistant, applySuggestion, toSuggestionViews, bookingLink, defaultRoomWindow, bookingToForm, emptyBookingForm, slugify, WeeklyHoursEditor, validateBookingForm, formToBookingBody, WEEKDAY_NAMES, formatBusy, buildEditRequest } from '../chunk-AWVGKHJT.js';
|
|
63
73
|
import { detectTimeZone, utcToDate, formatPlainDate, formatInZone, safeZone, todayInZone, addDays, listTimeZones, wallToUtc } from '../chunk-OJIX5NBN.js';
|
|
64
74
|
import { DocumentPicker } from '../chunk-WNDIVNPT.js';
|
|
65
|
-
import {
|
|
66
|
-
|
|
67
|
-
import {
|
|
68
|
-
import { useDocumentFilter, useConnectedTags, useConnectedDocuments, useConnectedConversations, useListedDocuments, listedDocuments } from '../chunk-5ETT7ZIO.js';
|
|
69
|
-
export { isListedDocument, useConnectedConversations, useConnectedDocuments, useConnectedTags, useDocumentFilter, useListedDocuments } from '../chunk-5ETT7ZIO.js';
|
|
70
|
-
import { useConnectedWorkspace, useConnection, useOptionalConnection, ConnectionProvider } from '../chunk-IZJ3BOJO.js';
|
|
71
|
-
export { SESSION_EXPIRED_MESSAGE, isAuthenticated, useConnectedWorkspace, useConnection } from '../chunk-IZJ3BOJO.js';
|
|
72
|
-
import { DmThreadHeader, DmInviteChip } from '../chunk-2S3LT5KE.js';
|
|
73
|
-
import { useHost, ArbiHost } from '../chunk-T4P237N6.js';
|
|
74
|
-
import { TabHeader } from '../chunk-ABEKUV6L.js';
|
|
75
|
-
import { EmptyState } from '../chunk-P6GHJSLR.js';
|
|
76
|
-
import { useLongPaste, useRecipientDraft, SlashMenu, ContextUsageBar, findMessageDocument, getParticipantTints, flashMessage, parseSlashTokenInProgress, buildSlashItems, filterSlashItems, copyMessageToClipboard, BranchControls, ThreadVisualizer, downloadTableAsCsv, useOpenCitation, ModelAutoIcon, ModelTierIcon, ModelDot, ModelPricingTip, ModelPickerPopover, ModelOption, ModelMenuDivider, ModelTierOption, ModelConfigureButton, ModelMenuMessage, ModelPickerTrigger, ModelTriggerContent, ModelOptionLabel, ConversationBody, ConversationMain, ConversationLoading, PendingAnswerBar, ComposerTools, PaModeBadge, ComposerAccessories, DraftingDocChip } from '../chunk-ROV3FG3J.js';
|
|
77
|
-
import { ComposerSend, ComposerVoiceButton, Composer, MessageActionMenu, MessageActionButton, MessageFooter, MessageRoot, MessageContent, MessageAuthor, MessageBubble, MessageByline, MessageSubagentBadge, MessageBody, MessageNarration, useStreamAnnouncement, MessageList, WorkflowStepChip, MessageSources, ChatPage, ConversationEmpty, MessageAlert, ComposerDock, ComposerContainer, ScrollToBottom } from '../chunk-LOFESOAW.js';
|
|
75
|
+
import { useLongPaste, useRecipientDraft, SlashMenu, ContextUsageBar, findMessageDocument, getParticipantTints, flashMessage, parseSlashTokenInProgress, buildSlashItems, filterSlashItems, copyMessageToClipboard, BranchControls, ThreadVisualizer, downloadTableAsCsv, useOpenCitation, ModelAutoIcon, ModelTierIcon, ModelDot, ModelPricingTip, ModelPickerPopover, ModelOption, ModelMenuDivider, ModelTierOption, ModelConfigureButton, ModelMenuMessage, ModelPickerTrigger, ModelTriggerContent, ModelOptionLabel, ConversationBody, ConversationMain, ConversationLoading, PendingAnswerBar, ComposerTools, PaModeBadge, ComposerAccessories, DraftingDocChip } from '../chunk-W43S7COD.js';
|
|
76
|
+
import { ComposerSend, ComposerVoiceButton, Composer, MessageActionMenu, MessageActionButton, MessageFooter, MessageRoot, MessageContent, MessageAuthor, MessageBubble, MessageByline, MessageSubagentBadge, MessageBody, MessageNarration, useStreamAnnouncement, MessageList, WorkflowStepChip, MessageSources, ChatPage, ConversationEmpty, MessageAlert, ComposerDock, ComposerContainer, ScrollToBottom } from '../chunk-TY76UEFK.js';
|
|
77
|
+
import { ConversationFilter } from '../chunk-6AMCMKTF.js';
|
|
78
78
|
import { workspaceDocIdFromHref } from '../chunk-DDCMLHXF.js';
|
|
79
79
|
import '../chunk-7XF5SFJ2.js';
|
|
80
|
-
import {
|
|
80
|
+
import { buildDeepLinkPath, buildDeepLinkUrl } from '../chunk-7Q5INDUS.js';
|
|
81
|
+
import { useMentionAutocomplete, stepStatesFromActivity, stepDocuments, splitDocRef, stepPhase, stepKindOf, STEP_KIND_ICONS, stepLevels, canAssign, assigneeName, runFieldsOf, initialRunInputs, workflowSteps, runThreadTitle, stepFields } from '../chunk-DV25UPJ7.js';
|
|
81
82
|
import { mergeSkillWorkflows, composeWorkflowPrompt, isEmptyWorkflowScope, inputsFromContext, workflowsAccepting, promptFieldName, validateInputs, defaultInputs, buildLaunch } from '../chunk-TZGBRLPK.js';
|
|
82
83
|
import '../chunk-AUS3KBHJ.js';
|
|
83
|
-
import
|
|
84
|
+
import '../chunk-NPLYHR2E.js';
|
|
84
85
|
import { useIsPhone, useMediaQuery } from '../chunk-SLSBJRWW.js';
|
|
85
86
|
import { useListKeyNav, MentionMenu } from '../chunk-GAGYAHYO.js';
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import '../chunk-NPLYHR2E.js';
|
|
87
|
+
import { PassagePill, useCopyText } from '../chunk-MTHAQGJB.js';
|
|
88
|
+
import { fmtDate, initials } from '../chunk-5VYJP6XD.js';
|
|
89
89
|
import { useBlocksEnvironment, useOpenWorkflow, useRequestedSettingsSection, useIntentRequest, mailDraftRequest, useCalendarViewStore, conversationStartRequest } from '../chunk-SSRFSSIT.js';
|
|
90
90
|
export { requestCalendarComposer, requestCalendarEvent, useCalendarViewStore } from '../chunk-SSRFSSIT.js';
|
|
91
91
|
import { ConfirmDialog } from '../chunk-U4HWVCRN.js';
|
|
@@ -93,11 +93,11 @@ import { ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../
|
|
|
93
93
|
import '../chunk-7F6CBP3Z.js';
|
|
94
94
|
import '../chunk-VUNV25KB.js';
|
|
95
95
|
import { QueryClient, useQueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
96
|
-
import { useWorkspaces, ArbiBotHeadIcon, IN_FLIGHT_DOCUMENT_STATUSES, useOfflineDocumentIds, useOpenViewerDocumentId, FINISHED_DOCUMENT_STATUSES, useMailPolicy, useProcessingTasks, resolveDocumentStatus, useArbi, useIsCreatingTag, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, useArbiSessionState, selectDraft, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useArbiWsStatus, useArbiWsStore, useUserSettings, useProcessingTask, useDocumentPendingSync, useWorkspaceUsers, useMessageTimer, useDocuments, useAvailableModels, formatGbp, CitationRenderer, useArbiSession, buildMentionCandidates, useConversations, ASSISTANT_MENTION_LABEL, useConversationItems, useDeleteMessage, useArbiHost, transcriptSegmentOf, useConfig, useThinkingContent, useCreateFact, useCreateFacts, workflowStepOf, stripSpeakerPrefix, MessageArtifactCard, useConversationData, useBranchNavigation, useSkills, useBuiltinCommands, useDocumentsSupport, useConversationActivity, useMessageDetails, useWorkflows, getWorkspaceKind, resolveConfigModel, useRunConversation, useWorkspaceActivity, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useCallsEnabled, serverNotificationBellEntry, documentDisplayName, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useWorkflowRuns, useAgents, ArtifactCanvas, ConversationScope, useConversation, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useShellWorkspaces, useProfile, useUpdateProfile, useRequestEmailChange, useConfirmEmailChange, useNameEditor, useAvatarCrop, useEmailChange, ImageCropModal, useIdentityVerification, usePasswordChange, usePasswordChangeForm, useNotificationPreferences, useSessions, useCurrentSessionId, useTerminateSession, useSignOut, useDeleteAccount, useDeleteAccountFlow, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailAccounts, useUpdateUserSettings, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, toShellWorkspace, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, useIsSlow, useProducts, useCreateProject, useDeleteProject, useRefreshProject, useBoxRole, useContacts, useInviteContacts, useCanCreateProjects, useDeleteWorkspaces, PROJECT_CREATION_DENIED_REASON, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, useDeleteContact, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, useCalendarEvents, useCalendars, useCanHostCalls, useOpenCallMeetingChat, usePeople, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, useMailAttachmentText, useCalendarEventByUid, getPublicBookingPage, bookPublicSlot, PublicBookingError, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useUploadFromUrls, useUploadFiles, useUpdateDocTag, useRemoveDocTags, subscribeDocumentRows, useGenerateDocTags, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useCreateGroupChat, useApplyChatModel, AUTO_CHAT_MODEL, formatGbpPerMillionTokens, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useRequestWorkspaceAccess, useIsEntitled, threadTabId, useUpdateConversation, useCanEditShared, useActOnStep, useCreateWork, useRunWorkflow, useStartTaskQuery, useCreateWorkflow, useUpdateWorkflow, usePlanWork, useWorkItems, TaskThreadPendingError, useMentionCandidates, useAgentRunControl, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, useWorkspaceRole, buildPendingFirstTurn, useConversationTurn, useAskAgain, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useAgentSession, useStartAgentSession, useCloseAgentSession, downloadRecoveryFile, LinkedInIcon, GoogleIcon, AppleIcon, useCurrentUser, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, DmAvatar, ConversationList, GitHubIcon, getRelatedTotal, isDeploymentUserNotification, describeServerNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, isSignatureNotificationType, inputRequestTitle, WORK_NOTIFICATION_LABELS, useConversationThreads, usePassageQuotes, useUpdateFact, useDeleteFact, useAccountClient, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useSwitchWorkspace, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useInvalidateAfterTransfer, useConfigs, useSaveConfigField, useDeleteConfig, isFullConfig, useChatUnreadTotal, useUnreadByPeer, useProjectConversationUsage, AiAnswer, ArbiWebSocketProvider, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, SHAREPOINT_VENDORS, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom } from '@arbidocs/react';
|
|
96
|
+
import { useWorkspaces, ArbiBotHeadIcon, IN_FLIGHT_DOCUMENT_STATUSES, useOfflineDocumentIds, useOpenViewerDocumentId, FINISHED_DOCUMENT_STATUSES, useMailPolicy, useProcessingTasks, resolveDocumentStatus, useArbi, useIsCreatingTag, useUpdateDocuments, useDeleteDocuments, useRenameFolder, useDownloadDocuments, useTags, useDocumentHostActions, useDocumentThumbnails, HtmlIcon, useArbiSessionState, selectDraft, useArbiSessionStore, useAudioRecorder, MicRecordingOverlay, useArbiWsStatus, useArbiWsStore, useUserSettings, useProcessingTask, useDocumentPendingSync, useWorkspaceUsers, useMessageTimer, useDocuments, useAvailableModels, formatGbp, CitationRenderer, useArbiSession, buildMentionCandidates, useConversations, ASSISTANT_MENTION_LABEL, useConversationItems, useDeleteMessage, useArbiHost, transcriptSegmentOf, useConfig, useThinkingContent, useCreateFact, useCreateFacts, workflowStepOf, stripSpeakerPrefix, MessageArtifactCard, useConversationData, useBranchNavigation, useSkills, useBuiltinCommands, useDocumentsSupport, useConversationActivity, useMessageDetails, useWorkflows, getWorkspaceKind, resolveConfigModel, useRunConversation, useWorkspaceActivity, callLink, openCall, startDmCall, calendarQueryKeys, mailQueryKeys, arbiQueryKeys, invalidateConversationLists, isWorkspaceNotificationType, useNotifications, useDeleteNotifications, useMarkNotificationsRead, useCallsEnabled, serverNotificationBellEntry, documentDisplayName, useWorkspaceNotificationLevel, useFollowThread, useUploadSkillFiles, useSaveSkill, useSetSkillVisibility, useDeleteSkill, useSkillSource, useAgentModels, useMcpTools, useAgentConfig, useAgentWorkspaces, useCreateAgent, useSaveAgentConfig, useGrantAgentAccess, useRevokeAgentAccess, useGenerateAgentAvatar, useWorkflowRuns, useAgents, ArtifactCanvas, ConversationScope, useConversation, useTagKindSchema, useCreateTag, useSetTagValues, useUpdateTagKindSchema, useUpdateTag, useFacts, useDeleteTag, useExtractEntities, useEntityExtractionDocIds, useStartWorkspaceTransfer, useResumeWorkspaceTransfer, useCancelWorkspaceTransfer, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceExportDownload, usePlanWorkspaceTransfer, isTransferResumable, isTransferFinished, useShellWorkspaces, useProfile, useUpdateProfile, useRequestEmailChange, useConfirmEmailChange, useNameEditor, useAvatarCrop, useEmailChange, ImageCropModal, useIdentityVerification, usePasswordChange, usePasswordChangeForm, useNotificationPreferences, useSessions, useCurrentSessionId, useTerminateSession, useSignOut, useDeleteAccount, useDeleteAccountFlow, useMailClient, defaultMailAlias, useClaimNativeAlias, useMailOnline, useConnectMailAccount, useDisconnectMailAccount, useMailAccounts, useUpdateUserSettings, useDismissedTips, useConnectorVendorVisibility, useConnectorCatalog, useMyConnectors, useDisconnectConnector, useSlackConnection, useDisconnectSlack, isMailboxSyncVendor, isSharePointVendor, useWorkspaceTrash, useInvalidateStorage, useStorageActions, useStorageItems, useStorageItemNames, useStorageProjects, useUserUsageToday, useStorageSnapshots, useUpdateWorkspace, useAddWorkspaceMembers, useRemoveWorkspaceMembers, useSetWorkspaceMemberRoles, toShellWorkspace, useEnableMailboxSync, useMailboxFolders, useEnableDriveSync, useDriveFolderChildren, connectorErrorStatus, useProjectInvoices, useProjects, useUpdateProjectFields, useChargeWatch, useAddonQuote, STILL_WORKING, useProjectBillingPortal, useProjectUsage, useIsSlow, useProducts, useCreateProject, useDeleteProject, useRefreshProject, useBoxRole, useContacts, useInviteContacts, useCanCreateProjects, useDeleteWorkspaces, PROJECT_CREATION_DENIED_REASON, useCreateContact, useUpdateContact, useLinkContact, useEntitlements, useImportContacts, entitlementRefusal, useDeleteContact, MAX_RETRIEVE_DOC_IDS, useSemanticSearch, useAssignDocTags, useMailUnlock, useMailFolders, useMailMessages, useMailDraftCompose, useMailMessage, useMailCache, MailOfflineUnavailableError, accountPath, useCalendarEvents, useCalendars, useCanHostCalls, useOpenCallMeetingChat, usePeople, useFetchCalendarEvent, useCalendarSettings, useCalendarOverlays, useCalendarOutbox, useCalendarAccounts, useSyncAccountsOnOpen, useResumeCalendarAccountConnect, useCreateEvent, useUpdateEvent, useDeleteEvent, useMoveEvent, useRespondToEvent, useCreateCalendar, useUpdateCalendar, useDeleteCalendar, useImportCalendar, useSaveCalendarSettings, useRefreshCalendar, useCalendarEvent, useMailAttachmentText, useCalendarEventByUid, getPublicBookingPage, bookPublicSlot, PublicBookingError, isZipFile, prepareUploadFiles, UPLOAD_MAX_FILE_SIZE, filesFromDrop, UPLOAD_ACCEPT, useUploadFromUrls, useUploadFiles, useUpdateDocTag, useRemoveDocTags, subscribeDocumentRows, useGenerateDocTags, useDocumentsLoading, selectViewingDocumentId, useRelatedDocuments, myChatId, useChatThread, useChatPost, useDeleteChatMessage, useMarkChatRead, setOpenChat, useAgentDmStatus, annotateThread, userDisplayName, DmComposer, TypingIndicator, useRenameChat, useAddChatMembers, useRemoveChatMember, useChats, useChatSummaries, useCreateGroupChat, useApplyChatModel, AUTO_CHAT_MODEL, formatGbpPerMillionTokens, useConfigSchema, useSaveConfig, useConversationPendingAuth, openAccessRequest, useRequestWorkspaceAccess, useIsEntitled, ImageCropper, threadTabId, useUpdateConversation, useCanEditShared, useActOnStep, useCreateWork, useRunWorkflow, useStartTaskQuery, useCreateWorkflow, useUpdateWorkflow, usePlanWork, useWorkItems, TaskThreadPendingError, useMentionCandidates, useAgentRunControl, useConnectRunStream, useAnswerAgentQuestion, useConversationIsShared, useWorkspaceRole, buildPendingFirstTurn, useConversationTurn, useAskAgain, getOrphanedLastMessage, refuseChatWhenOffline, useThreadDocument, useDocumentAutoAdd, useAutoSendDraft, READ_ONLY_MEETING_TEXT, useAgentSession, useStartAgentSession, useCloseAgentSession, downloadRecoveryFile, LinkedInIcon, GoogleIcon, AppleIcon, useCurrentUser, isQueuedCalendarWrite, DateSeparator, ChatBubble, isAliasTakenError, nextAliasSuggestion, aliasTakenMessage, mailJson, connectorReturnTo, DmAvatar, ConversationList, GitHubIcon, cropImage, getRelatedTotal, isDeploymentUserNotification, describeServerNotification, getWorkspaceActionText, getWorkspaceSentPhrase, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_TITLE, documentActivityPhrase, isSignatureNotificationType, inputRequestTitle, WORK_NOTIFICATION_LABELS, useConversationThreads, usePassageQuotes, useUpdateFact, useDeleteFact, useAccountClient, useDriveFolderDocCount, useChangeProjectPlan, useCancelProjectSubscription, usePreviewProjectPlanChange, useAddProjectAddonBlock, usePlanQuote, useCreateProjectCheckout, useInvalidateProjects, useSwitchWorkspace, fileAttachment, useMailProjects, useSaveMailDraft, useSendMail, useMailDraftReplaced, useCalendarInvitations, useDecideCounter, useSearchContacts, usePublishCalendar, useCalendarShares, useShareCalendar, useUnshareCalendar, useSubscribeCalendar, useHolidayCountries, useAddHolidayCalendar, cancelPublicBooking, useInvalidateAfterTransfer, useConfigs, useSaveConfigField, useDeleteConfig, isFullConfig, useChatUnreadTotal, useUnreadByPeer, useProjectConversationUsage, AiAnswer, ArbiWebSocketProvider, signatureNotificationPhrase, signatureRequestMeta, getNotificationTypeMeta, useMailDraftEditor, useFreeBusy, useFindTime, useCalendarSupport, useStartCalendarAccountOAuth, useConnectOAuthAccount, useBookingPages, useDeleteBookingPage, useRooms, isReplayableArbiMutation, SHAREPOINT_VENDORS, useUpdateProjectNextPeriodAddons, useUpdateProjectAddonSettings, useSyncCalendarAccount, useUpdateCalendarAccount, useDisconnectCalendarAccount, ACCOUNT_VENDOR, useCalDavProfiles, useConnectCalDavAccount, useSaveBookingPage, useCreateRoom } from '@arbidocs/react';
|
|
97
97
|
import { mergeAgentSteps, extractSubagentLanes, getCurrentStep, computeRunStats, formatTokens, isNearAiUsageBudget, getSubagentBranchRecord, buildCitationChunkData, topLevelAgentSteps, findMainSiblingLeaf, sliceToSubagentThread, getAgentStepLabel, subagentJobLabel, getStepDisplay, getStepTool, findLeafForTaskMessage, Arbi, FLAT_TAG_KINDS, getEligibleParentTags, canTagHaveParent, isFlatKind, TAG_NESTING_MAX_DEPTH, TAG_KINDS, formatFileSize, filterDocumentTags, isLabelTag, refusalReason, isPresenceTag, isAnnotationTag, flattenTagTree, tagsForScope, tagsOfGroup, chats, buildRetrievalFullContextTool, buildRetrievalChunkTool, getChildTags, tagUseCount, ArbiApiError, PRESENCE_KINDS, isEntityTag, DuplicateContactError, wouldCreateTagCycle, getTagDescendantIds } from '@arbidocs/sdk/browser';
|
|
98
98
|
import { isAbortError, browserSessionStateStorage, parseCallFragment, validateRecoveryKeyFile, RECOVERY_KEY_ERRORS, parseRecoveryUrl, prewarmKeyPairs, decryptRecoveryKey, unlockIdentityWithPassword, createRecoveryUrl, bytesToBase64, initSodium } from '@arbidocs/client';
|
|
99
|
-
import
|
|
100
|
-
import { Users, MessageCircleMore, SquarePen, BookOpen, MessagesSquare, Pencil, Download, Mail, FolderInput, Trash2, Eye, Sparkles, Play, ArrowDownToLine, RefreshCw, Zap, AlertTriangle, FileX, SkipForward, Loader2, Clock, CheckCircle, ArrowUpRight, Send, Settings, Edit3, Copy, Link, Share2, Check, Milestone, RotateCcw, FileText, Network, ChevronRight, Bell, Activity, Info, UserCheck, Upload, Link2, Search, Plus, ArrowLeft, ExternalLink as ExternalLink$1, Tags, CheckCircle2, Monitor, UserCircle, KeyRound, Radio, LogOut, Wifi, Lock, HardDrive, User, HatGlasses, MessageSquare, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, Printer, SquareStack, Table, FolderKanban, Cake, X, UserRound, Star, Tag, Video, CalendarDays, MapPin, Globe, Calendar, Hash, File as File$1, FileType, FolderOpen, Fingerprint, Paperclip, CircleCheck, TriangleAlert, LoaderCircle, NotebookPen, Columns3, EyeOff, ArrowUp, ArrowDown, ZoomOut, Camera, FilePlus2, UserMinus, UserPlus, UsersRound, Code2, Infinity, ChevronDown, MoreHorizontal, Wrench, RotateCw, Square, BadgeCheck, Shield, ClipboardList, Table2, ArrowUpCircle, Contact, Scale, BookA, Quote, Inbox, CalendarX, CalendarCheck, Phone, LogIn, Pause, Workflow, Minimize2, Maximize2, Minus, CalendarSearch, DoorOpen, AlertCircle } from 'lucide-react';
|
|
99
|
+
import React9, { memo, useMemo, lazy, useRef, useEffect, useCallback, useState, forwardRef, useLayoutEffect, useImperativeHandle, createContext, useContext, useSyncExternalStore, Suspense, Fragment as Fragment$1, useId } from 'react';
|
|
100
|
+
import { Users, MessageCircleMore, SquarePen, BookOpen, MessagesSquare, Pencil, Download, Mail, FolderInput, Trash2, Eye, Sparkles, Play, ArrowDownToLine, RefreshCw, Zap, AlertTriangle, FileX, SkipForward, Loader2, Clock, CheckCircle, ArrowUpRight, Send, Settings, Edit3, Copy, Link, Share2, Check, Milestone, RotateCcw, FileText, Network, ChevronRight, Bell, Activity, Info, UserCheck, Upload, Link2, Search, Plus, ArrowLeft, ExternalLink as ExternalLink$1, Tags, CheckCircle2, Monitor, UserCircle, KeyRound, Radio, LogOut, Wifi, Lock, HardDrive, User, HatGlasses, MessageSquare, PlugZap, Gauge, Cloud, XCircle, Building2, Palette, Type, Printer, SquareStack, Table, FolderKanban, Cake, X, UserRound, Star, Tag, Video, CalendarDays, MapPin, Globe, Calendar, Hash, File as File$1, FileType, FolderOpen, Fingerprint, Paperclip, CircleCheck, TriangleAlert, LoaderCircle, NotebookPen, Columns3, EyeOff, ArrowUp, ArrowDown, ZoomOut, Camera, FilePlus2, UserMinus, UserPlus, UsersRound, Code2, Infinity, Bug, Crop, Undo2, ImageUp, ChevronDown, MoreHorizontal, Wrench, RotateCw, Square, BadgeCheck, Shield, ClipboardList, Table2, ArrowUpCircle, Contact, Scale, BookA, Quote, Inbox, CalendarX, CalendarCheck, Phone, LogIn, Pause, Workflow, Minimize2, Maximize2, Minus, CalendarSearch, DoorOpen, AlertCircle } from 'lucide-react';
|
|
101
101
|
import { isAgent, UserEntity, getUserInitials, getUserDisplayName, getUserAvatarColor, agentAvatarColors, Avatar, AvatarImage, AvatarFallback, cn, ShieldIcon, getWorkspaceColor, getFileTypeIcon, DocumentEntity, getDocumentTitle, formatFolderLabel, getEntityLabel, getEntityColor, VisibilityIcon, formatFriendlyDate, getDocumentSubject, Badge, getTagTypeIcon, getTagTypeLabel, VisibilityToggle, TagEntity, ThreadVisibilityIcon, Button, isImageDocument, Tooltip, TooltipTrigger, TooltipContent, Dialog, DialogContent, formatRelativeTime, ProviderIcon, EntityIcon, Label, Input, Textarea, DialogHeader, DialogTitle, DialogDescription, tagKindNouns, tagKindTitle, IconToggle, Switch, Checkbox, entityNoun, DialogTrigger, ProjectEntity, DialogFooter, Tabs, TabsList, TabsTrigger, TabsContent, getDocIcon, getDocumentNature, getDocumentAuthor, markdownToPlainText, formatDocDate, getDocumentDate, friendlyFileType, canonicalFolderPath, DebouncedInput, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Slider, AgentBadge, PresenceLabel, TooltipProvider, EntityPill, UserMenu, Popover, PopoverAnchor, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, ScrollArea, ArbiIcon, ARBI_MARK_SRC, Card, CardHeader, CardTitle, CardContent, VerifiedToggle, Progress } from '@arbidocs/react/ui';
|
|
102
102
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
103
103
|
import { hasMessageBody, notify, linkMentions, useNotify, sharedSearchSession, takePendingSearch, selectUnread, NotificationBell, useTurnDocumentId, useOpenDocumentId, useRegisterOpenDocument } from '@arbidocs/react/shell';
|
|
@@ -8562,7 +8562,7 @@ function ConnectedPrivacySettings({
|
|
|
8562
8562
|
const { data: settings } = useUserSettings();
|
|
8563
8563
|
const update = useUpdateUserSettings();
|
|
8564
8564
|
const hideOnlineStatus = settings?.hide_online_status ?? false;
|
|
8565
|
-
const
|
|
8565
|
+
const { dismissed, resetTips } = useDismissedTips();
|
|
8566
8566
|
return /* @__PURE__ */ jsxs(SettingsPanel, { className: "max-w-2xl", children: [
|
|
8567
8567
|
/* @__PURE__ */ jsx(SettingsSection, { title: "Privacy and tips", children: /* @__PURE__ */ jsxs(SettingsCard, { children: [
|
|
8568
8568
|
/* @__PURE__ */ jsx(
|
|
@@ -8594,8 +8594,8 @@ function ConnectedPrivacySettings({
|
|
|
8594
8594
|
type: "button",
|
|
8595
8595
|
variant: "outline",
|
|
8596
8596
|
size: "sm",
|
|
8597
|
-
onClick:
|
|
8598
|
-
disabled:
|
|
8597
|
+
onClick: resetTips,
|
|
8598
|
+
disabled: dismissed.length === 0,
|
|
8599
8599
|
className: "gap-1.5",
|
|
8600
8600
|
"data-testid": "reset-tips-button",
|
|
8601
8601
|
children: [
|
|
@@ -14713,7 +14713,7 @@ function useConnectedWorkspaceList({
|
|
|
14713
14713
|
};
|
|
14714
14714
|
}
|
|
14715
14715
|
var WorkspaceTableView = lazy(
|
|
14716
|
-
() => import('../WorkspaceTableView-
|
|
14716
|
+
() => import('../WorkspaceTableView-62PJLX7V.js').then((m) => ({ default: m.WorkspaceTableView }))
|
|
14717
14717
|
);
|
|
14718
14718
|
var WORKSPACES_TAB_ID = "workspaces";
|
|
14719
14719
|
var defaultRenderMember2 = (user, size) => {
|
|
@@ -15231,7 +15231,9 @@ function ProjectsPanel({
|
|
|
15231
15231
|
return hostTabs ? panel : /* @__PURE__ */ jsx(ArbiHost, { config: localHost, children: panel });
|
|
15232
15232
|
}
|
|
15233
15233
|
var DEFAULT_PROJECT_DETAILS_LABELS = {
|
|
15234
|
-
title
|
|
15234
|
+
get title() {
|
|
15235
|
+
return `${getEntityLabel("PROJECT")} details`;
|
|
15236
|
+
},
|
|
15235
15237
|
client: "Client",
|
|
15236
15238
|
clientRef: "Reference",
|
|
15237
15239
|
stage: "Stage",
|
|
@@ -15240,8 +15242,12 @@ var DEFAULT_PROJECT_DETAILS_LABELS = {
|
|
|
15240
15242
|
notSet: "Not set",
|
|
15241
15243
|
save: "Save details",
|
|
15242
15244
|
saving: "Saving\u2026",
|
|
15243
|
-
saved
|
|
15244
|
-
|
|
15245
|
+
get saved() {
|
|
15246
|
+
return `${getEntityLabel("PROJECT")} details saved.`;
|
|
15247
|
+
},
|
|
15248
|
+
get failed() {
|
|
15249
|
+
return `Couldn't save the ${entityNoun("PROJECT")} details`;
|
|
15250
|
+
}
|
|
15245
15251
|
};
|
|
15246
15252
|
var DEFAULT_PROJECT_DETAIL_FIELDS = [
|
|
15247
15253
|
"client",
|
|
@@ -16366,7 +16372,9 @@ function ProjectActivity({
|
|
|
16366
16372
|
}
|
|
16367
16373
|
var DEFAULT_PROJECT_PAGE_LABELS = {
|
|
16368
16374
|
tabs: {
|
|
16369
|
-
details
|
|
16375
|
+
get details() {
|
|
16376
|
+
return getEntityLabel("PROJECT");
|
|
16377
|
+
},
|
|
16370
16378
|
issues: "Issues",
|
|
16371
16379
|
chronology: "Chronology",
|
|
16372
16380
|
threads: "Work",
|
|
@@ -16381,15 +16389,27 @@ var DEFAULT_PROJECT_PAGE_LABELS = {
|
|
|
16381
16389
|
members: "Team",
|
|
16382
16390
|
spend: "AI spend this period"
|
|
16383
16391
|
},
|
|
16384
|
-
loading
|
|
16385
|
-
|
|
16386
|
-
|
|
16387
|
-
|
|
16388
|
-
|
|
16392
|
+
get loading() {
|
|
16393
|
+
return `Loading ${entityNoun("PROJECT")}\u2026`;
|
|
16394
|
+
},
|
|
16395
|
+
get loadingDescription() {
|
|
16396
|
+
return `Fetching the ${entityNoun("PROJECT")}.`;
|
|
16397
|
+
},
|
|
16398
|
+
get notFound() {
|
|
16399
|
+
return `${getEntityLabel("PROJECT")} not found`;
|
|
16400
|
+
},
|
|
16401
|
+
get notFoundDescription() {
|
|
16402
|
+
return `This ${entityNoun("PROJECT")} may have been closed or the link is out of date.`;
|
|
16403
|
+
},
|
|
16404
|
+
get opening() {
|
|
16405
|
+
return `Opening the ${entityNoun("PROJECT")}'s workspace\u2026`;
|
|
16406
|
+
},
|
|
16389
16407
|
threads: {
|
|
16390
16408
|
title: "Threads and runs",
|
|
16391
16409
|
loading: "Loading\u2026",
|
|
16392
|
-
empty
|
|
16410
|
+
get empty() {
|
|
16411
|
+
return `No threads on this ${entityNoun("PROJECT")} yet.`;
|
|
16412
|
+
},
|
|
16393
16413
|
untitled: "Untitled thread"
|
|
16394
16414
|
},
|
|
16395
16415
|
chronologyLoading: "Loading the chronology\u2026",
|
|
@@ -30922,6 +30942,713 @@ function ConnectedAccountCluster({
|
|
|
30922
30942
|
}
|
|
30923
30943
|
);
|
|
30924
30944
|
}
|
|
30945
|
+
function isInternal(mutationKey) {
|
|
30946
|
+
const path = mutationKey?.[1];
|
|
30947
|
+
return typeof path === "string" && /\/open$/.test(path);
|
|
30948
|
+
}
|
|
30949
|
+
var NOTICE_EVERY_MS = 1e4;
|
|
30950
|
+
function usePausedMutationNotice() {
|
|
30951
|
+
const queryClient = useQueryClient();
|
|
30952
|
+
const { notify: notify17 } = useBlocksEnvironment();
|
|
30953
|
+
useEffect(() => {
|
|
30954
|
+
let lastNotice = 0;
|
|
30955
|
+
return queryClient.getMutationCache().subscribe((event) => {
|
|
30956
|
+
if (event.type !== "updated" || event.action.type !== "pause") return;
|
|
30957
|
+
const key = event.mutation.options.mutationKey;
|
|
30958
|
+
if (isReplayableArbiMutation(key) || isInternal(key)) return;
|
|
30959
|
+
const now = Date.now();
|
|
30960
|
+
if (now - lastNotice < NOTICE_EVERY_MS) return;
|
|
30961
|
+
lastNotice = now;
|
|
30962
|
+
notify17("You're offline. This will finish when you reconnect", "info", {
|
|
30963
|
+
description: "Keep this tab open until then."
|
|
30964
|
+
});
|
|
30965
|
+
});
|
|
30966
|
+
}, [queryClient, notify17]);
|
|
30967
|
+
}
|
|
30968
|
+
function usePaymentReturn() {
|
|
30969
|
+
const queryClient = useQueryClient();
|
|
30970
|
+
const { notify: notify17, openProject } = useBlocksEnvironment();
|
|
30971
|
+
const { refetch: refetchProjects } = useProjects();
|
|
30972
|
+
const { mutate: refreshProject } = useRefreshProject();
|
|
30973
|
+
const latest = useRef({ refetchProjects, refreshProject, notify: notify17, openProject, queryClient });
|
|
30974
|
+
latest.current = { refetchProjects, refreshProject, notify: notify17, openProject, queryClient };
|
|
30975
|
+
useEffect(() => {
|
|
30976
|
+
const handle = async () => {
|
|
30977
|
+
const params = new URLSearchParams(window.location.hash.substring(1));
|
|
30978
|
+
if (params.get("payment") !== "success") return;
|
|
30979
|
+
const { refetchProjects: refetchProjects2, refreshProject: refreshProject2, notify: notify18, openProject: openProject2, queryClient: queryClient2 } = latest.current;
|
|
30980
|
+
const projectId = params.get("project");
|
|
30981
|
+
if (projectId) refreshProject2(projectId);
|
|
30982
|
+
notify18("Payment successful! Your subscription is now active.", "success");
|
|
30983
|
+
params.delete("payment");
|
|
30984
|
+
params.delete("project");
|
|
30985
|
+
const rest = params.toString();
|
|
30986
|
+
window.history.replaceState(
|
|
30987
|
+
null,
|
|
30988
|
+
"",
|
|
30989
|
+
window.location.pathname + window.location.search + (rest ? `#${rest}` : "")
|
|
30990
|
+
);
|
|
30991
|
+
openProject2();
|
|
30992
|
+
await refetchProjects2();
|
|
30993
|
+
await queryClient2.refetchQueries({ queryKey: arbiQueryKeys.userSettings(), type: "all" });
|
|
30994
|
+
};
|
|
30995
|
+
void handle();
|
|
30996
|
+
window.addEventListener("hashchange", handle);
|
|
30997
|
+
return () => window.removeEventListener("hashchange", handle);
|
|
30998
|
+
}, []);
|
|
30999
|
+
}
|
|
31000
|
+
var MODAL_SELECTOR = '[role="dialog"][data-state="open"],[role="alertdialog"][data-state="open"]';
|
|
31001
|
+
var SETTLE_MS = 300;
|
|
31002
|
+
function useReleaseStaleModalState() {
|
|
31003
|
+
useEffect(() => {
|
|
31004
|
+
let timer;
|
|
31005
|
+
const isInert = () => document.body.style.pointerEvents === "none";
|
|
31006
|
+
const leakedHidden = () => document.querySelectorAll('[data-aria-hidden="true"]');
|
|
31007
|
+
const hasModal = () => document.querySelector(MODAL_SELECTOR) !== null;
|
|
31008
|
+
const check = () => {
|
|
31009
|
+
if (hasModal()) return;
|
|
31010
|
+
if (!isInert() && leakedHidden().length === 0) return;
|
|
31011
|
+
clearTimeout(timer);
|
|
31012
|
+
timer = setTimeout(() => {
|
|
31013
|
+
if (hasModal()) return;
|
|
31014
|
+
if (isInert()) document.body.style.removeProperty("pointer-events");
|
|
31015
|
+
leakedHidden().forEach((el) => {
|
|
31016
|
+
el.removeAttribute("aria-hidden");
|
|
31017
|
+
el.removeAttribute("data-aria-hidden");
|
|
31018
|
+
});
|
|
31019
|
+
}, SETTLE_MS);
|
|
31020
|
+
};
|
|
31021
|
+
const observer = new MutationObserver(check);
|
|
31022
|
+
observer.observe(document.body, { attributes: true, attributeFilter: ["style"] });
|
|
31023
|
+
observer.observe(document.documentElement, {
|
|
31024
|
+
subtree: true,
|
|
31025
|
+
attributes: true,
|
|
31026
|
+
attributeFilter: ["aria-hidden"]
|
|
31027
|
+
});
|
|
31028
|
+
check();
|
|
31029
|
+
return () => {
|
|
31030
|
+
observer.disconnect();
|
|
31031
|
+
clearTimeout(timer);
|
|
31032
|
+
};
|
|
31033
|
+
}, []);
|
|
31034
|
+
}
|
|
31035
|
+
function useRetiredModelNotice() {
|
|
31036
|
+
const queryClient = useQueryClient();
|
|
31037
|
+
const currentEnvironment = useBlocksEnvironment();
|
|
31038
|
+
const environment = useRef(currentEnvironment);
|
|
31039
|
+
environment.current = currentEnvironment;
|
|
31040
|
+
const { data: userSettings } = useUserSettings();
|
|
31041
|
+
const { data: availableModels } = useAvailableModels();
|
|
31042
|
+
const premiumDefault = availableModels?.premium_default;
|
|
31043
|
+
const retired = userSettings?.retired_premium_model;
|
|
31044
|
+
const suggestion = userSettings?.retired_premium_model_suggestion;
|
|
31045
|
+
useEffect(() => {
|
|
31046
|
+
if (!retired) return;
|
|
31047
|
+
const { notify: notify17, openSettings } = environment.current;
|
|
31048
|
+
const outcome = premiumDefault ? `We've switched you to the default Premium model, ${premiumDefault}.` : "Your Premium model choice was cleared.";
|
|
31049
|
+
const suggestionHint = suggestion ? ` Suggested replacement: ${suggestion}.` : "";
|
|
31050
|
+
notify17(
|
|
31051
|
+
`The model you selected, ${retired}, is no longer available. ${outcome}${suggestionHint}`,
|
|
31052
|
+
"warning",
|
|
31053
|
+
{
|
|
31054
|
+
action: { label: "Choose a replacement", onClick: () => openSettings("chat") },
|
|
31055
|
+
duration: 15e3
|
|
31056
|
+
}
|
|
31057
|
+
);
|
|
31058
|
+
queryClient.setQueryData(arbiQueryKeys.userSettings(), (prev) => {
|
|
31059
|
+
if (!prev || typeof prev !== "object") return prev;
|
|
31060
|
+
const next = { ...prev };
|
|
31061
|
+
delete next.retired_premium_model;
|
|
31062
|
+
delete next.retired_premium_model_suggestion;
|
|
31063
|
+
return next;
|
|
31064
|
+
});
|
|
31065
|
+
}, [retired, suggestion, premiumDefault, queryClient]);
|
|
31066
|
+
}
|
|
31067
|
+
var ReleaseStaleModals = () => (useReleaseStaleModalState(), null);
|
|
31068
|
+
var RetiredModelNotice = () => (useRetiredModelNotice(), null);
|
|
31069
|
+
var PausedMutationNotice = () => (usePausedMutationNotice(), null);
|
|
31070
|
+
var PaymentReturn = () => (usePaymentReturn(), null);
|
|
31071
|
+
function ConnectedAppRuntime({ effects = {} }) {
|
|
31072
|
+
const on = (effect) => effects[effect] !== false;
|
|
31073
|
+
const { stripeEnabled } = useBillingSupport();
|
|
31074
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31075
|
+
on("releaseStaleModals") && /* @__PURE__ */ jsx(ReleaseStaleModals, {}),
|
|
31076
|
+
on("retiredModelNotice") && /* @__PURE__ */ jsx(RetiredModelNotice, {}),
|
|
31077
|
+
on("pausedMutationNotice") && /* @__PURE__ */ jsx(PausedMutationNotice, {}),
|
|
31078
|
+
on("paymentReturn") && stripeEnabled && /* @__PURE__ */ jsx(PaymentReturn, {})
|
|
31079
|
+
] });
|
|
31080
|
+
}
|
|
31081
|
+
function CaptureBar({ onCapture, onSkip, onCancel }) {
|
|
31082
|
+
return /* @__PURE__ */ jsxs(
|
|
31083
|
+
"div",
|
|
31084
|
+
{
|
|
31085
|
+
role: "dialog",
|
|
31086
|
+
"aria-label": "Report a problem: capture",
|
|
31087
|
+
className: "fixed inset-x-0 bottom-4 z-[60] mx-auto flex w-fit max-w-[calc(100vw-2rem)] flex-wrap items-center gap-2 rounded-xl border border-border bg-background px-4 py-2 shadow-lg",
|
|
31088
|
+
"data-testid": "report-capture-bar",
|
|
31089
|
+
children: [
|
|
31090
|
+
/* @__PURE__ */ jsx(Bug, { className: "size-4 shrink-0 text-muted-foreground", "aria-hidden": true }),
|
|
31091
|
+
/* @__PURE__ */ jsxs("span", { className: "text-sm", children: [
|
|
31092
|
+
"Go to the problem (scroll or switch pages), then press ",
|
|
31093
|
+
/* @__PURE__ */ jsx("b", { children: "Capture" }),
|
|
31094
|
+
" and select the area."
|
|
31095
|
+
] }),
|
|
31096
|
+
/* @__PURE__ */ jsxs(Button, { size: "sm", onClick: onCapture, "data-testid": "report-capture", children: [
|
|
31097
|
+
/* @__PURE__ */ jsx(Camera, { className: "mr-1 size-4" }),
|
|
31098
|
+
" Capture"
|
|
31099
|
+
] }),
|
|
31100
|
+
/* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: onSkip, "data-testid": "report-skip-screenshot", children: "Skip screenshot" }),
|
|
31101
|
+
/* @__PURE__ */ jsx(
|
|
31102
|
+
Button,
|
|
31103
|
+
{
|
|
31104
|
+
size: "sm",
|
|
31105
|
+
variant: "ghost",
|
|
31106
|
+
"aria-label": "Cancel report",
|
|
31107
|
+
onClick: onCancel,
|
|
31108
|
+
"data-testid": "report-cancel",
|
|
31109
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-4" })
|
|
31110
|
+
}
|
|
31111
|
+
)
|
|
31112
|
+
]
|
|
31113
|
+
}
|
|
31114
|
+
);
|
|
31115
|
+
}
|
|
31116
|
+
|
|
31117
|
+
// src/connection/report-problem/screen-capture.ts
|
|
31118
|
+
var ScreenCaptureError = class extends Error {
|
|
31119
|
+
constructor(code, message) {
|
|
31120
|
+
super(message);
|
|
31121
|
+
this.code = code;
|
|
31122
|
+
this.name = "ScreenCaptureError";
|
|
31123
|
+
}
|
|
31124
|
+
code;
|
|
31125
|
+
};
|
|
31126
|
+
function canCaptureScreen() {
|
|
31127
|
+
return typeof navigator !== "undefined" && !!navigator.mediaDevices?.getDisplayMedia;
|
|
31128
|
+
}
|
|
31129
|
+
async function captureCurrentTab() {
|
|
31130
|
+
if (!canCaptureScreen()) {
|
|
31131
|
+
throw new ScreenCaptureError("unsupported", "This browser can't capture the screen.");
|
|
31132
|
+
}
|
|
31133
|
+
let stream;
|
|
31134
|
+
try {
|
|
31135
|
+
stream = await navigator.mediaDevices.getDisplayMedia({
|
|
31136
|
+
video: { displaySurface: "browser" },
|
|
31137
|
+
audio: false,
|
|
31138
|
+
// Chromium hints: offer this tab first, and don't let the person switch surfaces mid-capture.
|
|
31139
|
+
preferCurrentTab: true,
|
|
31140
|
+
selfBrowserSurface: "include",
|
|
31141
|
+
surfaceSwitching: "exclude"
|
|
31142
|
+
});
|
|
31143
|
+
} catch (error) {
|
|
31144
|
+
const name = error instanceof DOMException ? error.name : "";
|
|
31145
|
+
if (name === "NotAllowedError" || name === "AbortError") {
|
|
31146
|
+
throw new ScreenCaptureError("cancelled", "Screen capture was cancelled.");
|
|
31147
|
+
}
|
|
31148
|
+
throw new ScreenCaptureError("failed", "Couldn't start screen capture.");
|
|
31149
|
+
}
|
|
31150
|
+
try {
|
|
31151
|
+
return await grabFrame(stream);
|
|
31152
|
+
} finally {
|
|
31153
|
+
stream.getTracks().forEach((track) => track.stop());
|
|
31154
|
+
}
|
|
31155
|
+
}
|
|
31156
|
+
async function grabFrame(stream) {
|
|
31157
|
+
const video = document.createElement("video");
|
|
31158
|
+
video.muted = true;
|
|
31159
|
+
video.playsInline = true;
|
|
31160
|
+
video.srcObject = stream;
|
|
31161
|
+
await video.play();
|
|
31162
|
+
for (let i = 0; i < 50 && (!video.videoWidth || !video.videoHeight); i++) {
|
|
31163
|
+
await new Promise((resolve) => setTimeout(resolve, 40));
|
|
31164
|
+
}
|
|
31165
|
+
await new Promise((resolve) => requestAnimationFrame(() => resolve(null)));
|
|
31166
|
+
const canvas = document.createElement("canvas");
|
|
31167
|
+
canvas.width = video.videoWidth;
|
|
31168
|
+
canvas.height = video.videoHeight;
|
|
31169
|
+
const ctx = canvas.getContext("2d");
|
|
31170
|
+
if (!ctx || !canvas.width) throw new ScreenCaptureError("failed", "Couldn't read the screen.");
|
|
31171
|
+
ctx.drawImage(video, 0, 0);
|
|
31172
|
+
video.srcObject = null;
|
|
31173
|
+
return canvasToBlob(canvas);
|
|
31174
|
+
}
|
|
31175
|
+
function canvasToBlob(canvas) {
|
|
31176
|
+
return new Promise(
|
|
31177
|
+
(resolve, reject) => canvas.toBlob(
|
|
31178
|
+
(blob) => blob ? resolve(blob) : reject(new ScreenCaptureError("failed", "Couldn't save the image.")),
|
|
31179
|
+
"image/png"
|
|
31180
|
+
)
|
|
31181
|
+
);
|
|
31182
|
+
}
|
|
31183
|
+
|
|
31184
|
+
// src/connection/report-problem/screenshot-annotations.ts
|
|
31185
|
+
var MIN_MARK_SIZE = 6;
|
|
31186
|
+
function rectFromDrag(start, end, bounds) {
|
|
31187
|
+
const clamp = (v, max) => Math.min(Math.max(v, 0), max);
|
|
31188
|
+
const x1 = clamp(Math.min(start.x, end.x), bounds.width);
|
|
31189
|
+
const y1 = clamp(Math.min(start.y, end.y), bounds.height);
|
|
31190
|
+
const x2 = clamp(Math.max(start.x, end.x), bounds.width);
|
|
31191
|
+
const y2 = clamp(Math.max(start.y, end.y), bounds.height);
|
|
31192
|
+
return { x: x1, y: y1, w: x2 - x1, h: y2 - y1 };
|
|
31193
|
+
}
|
|
31194
|
+
function isMeaningfulRect(rect) {
|
|
31195
|
+
return rect.w >= MIN_MARK_SIZE && rect.h >= MIN_MARK_SIZE;
|
|
31196
|
+
}
|
|
31197
|
+
function toImagePoint(client, displayed, natural) {
|
|
31198
|
+
return {
|
|
31199
|
+
x: (client.x - displayed.left) / displayed.width * natural.width,
|
|
31200
|
+
y: (client.y - displayed.top) / displayed.height * natural.height
|
|
31201
|
+
};
|
|
31202
|
+
}
|
|
31203
|
+
function captionLines(text2) {
|
|
31204
|
+
return [
|
|
31205
|
+
text2.happened.trim() && `What went wrong: ${text2.happened.trim()}`,
|
|
31206
|
+
text2.expected.trim() && `Expected: ${text2.expected.trim()}`
|
|
31207
|
+
].filter(Boolean);
|
|
31208
|
+
}
|
|
31209
|
+
async function renderAnnotatedScreenshot(image, marks, text2) {
|
|
31210
|
+
const lines = captionLines(text2);
|
|
31211
|
+
const scale = Math.max(1, image.width / 1600);
|
|
31212
|
+
const lineHeight = Math.round(22 * scale);
|
|
31213
|
+
const padding = Math.round(16 * scale);
|
|
31214
|
+
const captionHeight = lines.length ? padding * 2 + lineHeight * lines.length : 0;
|
|
31215
|
+
const canvas = document.createElement("canvas");
|
|
31216
|
+
canvas.width = image.width;
|
|
31217
|
+
canvas.height = image.height + captionHeight;
|
|
31218
|
+
const ctx = canvas.getContext("2d");
|
|
31219
|
+
if (!ctx) throw new Error("Couldn't draw the screenshot.");
|
|
31220
|
+
ctx.drawImage(image, 0, 0);
|
|
31221
|
+
for (const mark of marks.filter((m) => m.kind === "redact")) {
|
|
31222
|
+
ctx.fillStyle = "#000";
|
|
31223
|
+
ctx.fillRect(mark.x, mark.y, mark.w, mark.h);
|
|
31224
|
+
}
|
|
31225
|
+
ctx.lineWidth = Math.round(4 * scale);
|
|
31226
|
+
ctx.strokeStyle = "#e5281b";
|
|
31227
|
+
for (const mark of marks.filter((m) => m.kind === "highlight")) {
|
|
31228
|
+
ctx.strokeRect(mark.x, mark.y, mark.w, mark.h);
|
|
31229
|
+
}
|
|
31230
|
+
if (captionHeight) {
|
|
31231
|
+
ctx.fillStyle = "#fff";
|
|
31232
|
+
ctx.fillRect(0, image.height, canvas.width, captionHeight);
|
|
31233
|
+
ctx.fillStyle = "#d0d4da";
|
|
31234
|
+
ctx.fillRect(0, image.height, canvas.width, Math.max(1, Math.round(scale)));
|
|
31235
|
+
ctx.fillStyle = "#111";
|
|
31236
|
+
ctx.font = `${Math.round(16 * scale)}px system-ui, sans-serif`;
|
|
31237
|
+
ctx.textBaseline = "top";
|
|
31238
|
+
lines.forEach(
|
|
31239
|
+
(line, i) => ctx.fillText(
|
|
31240
|
+
line,
|
|
31241
|
+
padding,
|
|
31242
|
+
image.height + padding + i * lineHeight,
|
|
31243
|
+
canvas.width - padding * 2
|
|
31244
|
+
)
|
|
31245
|
+
);
|
|
31246
|
+
}
|
|
31247
|
+
return canvasToBlob(canvas);
|
|
31248
|
+
}
|
|
31249
|
+
function aspectOptions(natural) {
|
|
31250
|
+
return [
|
|
31251
|
+
...natural ? [{ label: "Screen", value: natural.width / natural.height }] : [],
|
|
31252
|
+
{ label: "16:9", value: 16 / 9 },
|
|
31253
|
+
{ label: "4:3", value: 4 / 3 },
|
|
31254
|
+
{ label: "Square", value: 1 }
|
|
31255
|
+
];
|
|
31256
|
+
}
|
|
31257
|
+
function ReportProblemDialog({
|
|
31258
|
+
open,
|
|
31259
|
+
frame,
|
|
31260
|
+
image,
|
|
31261
|
+
onCropped,
|
|
31262
|
+
onImageChange,
|
|
31263
|
+
onRetake,
|
|
31264
|
+
onClose,
|
|
31265
|
+
fileNamePrefix = "problem",
|
|
31266
|
+
footnote
|
|
31267
|
+
}) {
|
|
31268
|
+
const { notify: notify17 } = useBlocksEnvironment();
|
|
31269
|
+
const [description, setDescription] = useState("");
|
|
31270
|
+
const [marks, setMarks] = useState([]);
|
|
31271
|
+
const [draft, setDraft] = useState(null);
|
|
31272
|
+
const [natural, setNatural] = useState(null);
|
|
31273
|
+
const [frameSize, setFrameSize] = useState(null);
|
|
31274
|
+
const [cropArea, setCropArea] = useState(null);
|
|
31275
|
+
const [busy, setBusy] = useState(false);
|
|
31276
|
+
const imgRef = useRef(null);
|
|
31277
|
+
const dragStart = useRef(null);
|
|
31278
|
+
const frameUrl = useMemo(() => frame ? URL.createObjectURL(frame) : null, [frame]);
|
|
31279
|
+
useEffect(() => () => void (frameUrl && URL.revokeObjectURL(frameUrl)), [frameUrl]);
|
|
31280
|
+
const imageUrl = useMemo(() => image ? URL.createObjectURL(image) : null, [image]);
|
|
31281
|
+
useEffect(() => () => void (imageUrl && URL.revokeObjectURL(imageUrl)), [imageUrl]);
|
|
31282
|
+
useEffect(() => {
|
|
31283
|
+
setFrameSize(null);
|
|
31284
|
+
if (!frameUrl) return;
|
|
31285
|
+
const img = new Image();
|
|
31286
|
+
img.onload = () => setFrameSize({ width: img.naturalWidth, height: img.naturalHeight });
|
|
31287
|
+
img.src = frameUrl;
|
|
31288
|
+
}, [frameUrl]);
|
|
31289
|
+
useEffect(() => {
|
|
31290
|
+
setMarks([]);
|
|
31291
|
+
setDraft(null);
|
|
31292
|
+
setNatural(null);
|
|
31293
|
+
}, [image]);
|
|
31294
|
+
useEffect(() => {
|
|
31295
|
+
if (!open) setDescription("");
|
|
31296
|
+
}, [open]);
|
|
31297
|
+
const applyCrop = async () => {
|
|
31298
|
+
if (!frameUrl || !cropArea) return;
|
|
31299
|
+
setBusy(true);
|
|
31300
|
+
try {
|
|
31301
|
+
const { blob } = await cropImage(frameUrl, cropArea, { mimeType: "image/png" });
|
|
31302
|
+
onCropped(blob);
|
|
31303
|
+
} catch {
|
|
31304
|
+
notify17("Couldn't crop the screenshot. Please try again.", "error");
|
|
31305
|
+
} finally {
|
|
31306
|
+
setBusy(false);
|
|
31307
|
+
}
|
|
31308
|
+
};
|
|
31309
|
+
const pointFrom = (event) => {
|
|
31310
|
+
const img = imgRef.current;
|
|
31311
|
+
if (!img || !natural) return null;
|
|
31312
|
+
return toImagePoint(
|
|
31313
|
+
{ x: event.clientX, y: event.clientY },
|
|
31314
|
+
img.getBoundingClientRect(),
|
|
31315
|
+
natural
|
|
31316
|
+
);
|
|
31317
|
+
};
|
|
31318
|
+
const renderImage = async () => {
|
|
31319
|
+
if (!image || !natural) return null;
|
|
31320
|
+
const bitmap = await createImageBitmap(image);
|
|
31321
|
+
try {
|
|
31322
|
+
return await renderAnnotatedScreenshot(bitmap, marks, { happened: description, expected: "" });
|
|
31323
|
+
} finally {
|
|
31324
|
+
bitmap.close();
|
|
31325
|
+
}
|
|
31326
|
+
};
|
|
31327
|
+
const download = async () => {
|
|
31328
|
+
setBusy(true);
|
|
31329
|
+
try {
|
|
31330
|
+
const blob = await renderImage();
|
|
31331
|
+
if (!blob) return;
|
|
31332
|
+
const stamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 16).replace(/[:T]/g, "-");
|
|
31333
|
+
downloadBlob(blob, `${fileNamePrefix}-${stamp}.png`);
|
|
31334
|
+
} catch {
|
|
31335
|
+
notify17("Couldn't save the screenshot. Please try again.", "error");
|
|
31336
|
+
} finally {
|
|
31337
|
+
setBusy(false);
|
|
31338
|
+
}
|
|
31339
|
+
};
|
|
31340
|
+
const copy = async () => {
|
|
31341
|
+
setBusy(true);
|
|
31342
|
+
try {
|
|
31343
|
+
const blob = await renderImage();
|
|
31344
|
+
if (!blob) return;
|
|
31345
|
+
await navigator.clipboard.write([new ClipboardItem({ "image/png": blob })]);
|
|
31346
|
+
notify17("Screenshot copied. Paste it into an email or chat.", "success");
|
|
31347
|
+
} catch {
|
|
31348
|
+
notify17("Your browser didn't allow copying the image. Use Download instead.", "warning");
|
|
31349
|
+
} finally {
|
|
31350
|
+
setBusy(false);
|
|
31351
|
+
}
|
|
31352
|
+
};
|
|
31353
|
+
const shown = draft ? [...marks, draft] : marks;
|
|
31354
|
+
const percent = (mark) => natural ? {
|
|
31355
|
+
left: `${mark.x / natural.width * 100}%`,
|
|
31356
|
+
top: `${mark.y / natural.height * 100}%`,
|
|
31357
|
+
width: `${mark.w / natural.width * 100}%`,
|
|
31358
|
+
height: `${mark.h / natural.height * 100}%`
|
|
31359
|
+
} : void 0;
|
|
31360
|
+
const cropping = !!frameUrl;
|
|
31361
|
+
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: (next) => !next && onClose(), children: /* @__PURE__ */ jsxs(
|
|
31362
|
+
DialogContent,
|
|
31363
|
+
{
|
|
31364
|
+
className: "flex max-h-[92vh] w-[min(96vw,64rem)] max-w-[96vw] flex-col gap-3 p-4 sm:max-w-[min(96vw,64rem)]",
|
|
31365
|
+
"data-testid": "report-problem-dialog",
|
|
31366
|
+
children: [
|
|
31367
|
+
/* @__PURE__ */ jsxs("div", { className: "pr-8", children: [
|
|
31368
|
+
/* @__PURE__ */ jsx(DialogTitle, { children: "Report a problem" }),
|
|
31369
|
+
/* @__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: blacked-out areas are removed from the image." })
|
|
31370
|
+
] }),
|
|
31371
|
+
cropping ? /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
|
|
31372
|
+
/* @__PURE__ */ jsx(
|
|
31373
|
+
ImageCropper,
|
|
31374
|
+
{
|
|
31375
|
+
image: frameUrl,
|
|
31376
|
+
aspectOptions: aspectOptions(frameSize),
|
|
31377
|
+
maxZoom: 6,
|
|
31378
|
+
cropAreaClassName: "h-[50vh] min-h-64",
|
|
31379
|
+
onCropComplete: (area) => setCropArea(area)
|
|
31380
|
+
},
|
|
31381
|
+
frameSize ? "sized" : "unsized"
|
|
31382
|
+
),
|
|
31383
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap justify-end gap-2", children: [
|
|
31384
|
+
/* @__PURE__ */ jsxs(
|
|
31385
|
+
Button,
|
|
31386
|
+
{
|
|
31387
|
+
variant: "ghost",
|
|
31388
|
+
onClick: () => onImageChange(null),
|
|
31389
|
+
"data-testid": "report-remove-screenshot",
|
|
31390
|
+
children: [
|
|
31391
|
+
/* @__PURE__ */ jsx(Trash2, { className: "mr-1 size-4" }),
|
|
31392
|
+
" Remove screenshot"
|
|
31393
|
+
]
|
|
31394
|
+
}
|
|
31395
|
+
),
|
|
31396
|
+
/* @__PURE__ */ jsxs(Button, { variant: "ghost", onClick: onRetake, "data-testid": "report-retake", children: [
|
|
31397
|
+
/* @__PURE__ */ jsx(Camera, { className: "mr-1 size-4" }),
|
|
31398
|
+
" Retake"
|
|
31399
|
+
] }),
|
|
31400
|
+
/* @__PURE__ */ jsxs(
|
|
31401
|
+
Button,
|
|
31402
|
+
{
|
|
31403
|
+
disabled: !cropArea || busy,
|
|
31404
|
+
onClick: () => void applyCrop(),
|
|
31405
|
+
"data-testid": "report-use-crop",
|
|
31406
|
+
children: [
|
|
31407
|
+
/* @__PURE__ */ jsx(Crop, { className: "mr-1 size-4" }),
|
|
31408
|
+
" Use this crop"
|
|
31409
|
+
]
|
|
31410
|
+
}
|
|
31411
|
+
)
|
|
31412
|
+
] })
|
|
31413
|
+
] }) : imageUrl ? /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
|
|
31414
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-h-0 justify-center overflow-hidden rounded-md bg-muted p-2", children: /* @__PURE__ */ jsxs("div", { className: "relative max-w-full", children: [
|
|
31415
|
+
/* @__PURE__ */ jsx(
|
|
31416
|
+
"img",
|
|
31417
|
+
{
|
|
31418
|
+
ref: imgRef,
|
|
31419
|
+
src: imageUrl,
|
|
31420
|
+
alt: "Screenshot of the problem",
|
|
31421
|
+
className: "block max-h-[45vh] max-w-full select-none object-contain",
|
|
31422
|
+
draggable: false,
|
|
31423
|
+
onLoad: (event) => setNatural({
|
|
31424
|
+
width: event.currentTarget.naturalWidth,
|
|
31425
|
+
height: event.currentTarget.naturalHeight
|
|
31426
|
+
}),
|
|
31427
|
+
"data-testid": "report-screenshot"
|
|
31428
|
+
}
|
|
31429
|
+
),
|
|
31430
|
+
/* @__PURE__ */ jsx(
|
|
31431
|
+
"div",
|
|
31432
|
+
{
|
|
31433
|
+
className: "absolute inset-0 cursor-crosshair touch-none",
|
|
31434
|
+
onPointerDown: (event) => {
|
|
31435
|
+
const point = pointFrom(event);
|
|
31436
|
+
if (!point) return;
|
|
31437
|
+
event.currentTarget.setPointerCapture?.(event.pointerId);
|
|
31438
|
+
dragStart.current = point;
|
|
31439
|
+
setDraft({ kind: "redact", ...point, w: 0, h: 0 });
|
|
31440
|
+
},
|
|
31441
|
+
onPointerMove: (event) => {
|
|
31442
|
+
const point = pointFrom(event);
|
|
31443
|
+
if (dragStart.current && point && natural)
|
|
31444
|
+
setDraft({
|
|
31445
|
+
kind: "redact",
|
|
31446
|
+
...rectFromDrag(dragStart.current, point, natural)
|
|
31447
|
+
});
|
|
31448
|
+
},
|
|
31449
|
+
onPointerUp: () => {
|
|
31450
|
+
if (draft && isMeaningfulRect(draft)) setMarks((m) => [...m, draft]);
|
|
31451
|
+
dragStart.current = null;
|
|
31452
|
+
setDraft(null);
|
|
31453
|
+
},
|
|
31454
|
+
"data-testid": "report-draw-surface",
|
|
31455
|
+
children: shown.map((mark, i) => /* @__PURE__ */ jsx(
|
|
31456
|
+
"div",
|
|
31457
|
+
{
|
|
31458
|
+
className: "pointer-events-none absolute bg-black",
|
|
31459
|
+
style: percent(mark),
|
|
31460
|
+
"data-testid": "report-mark-redact"
|
|
31461
|
+
},
|
|
31462
|
+
i
|
|
31463
|
+
))
|
|
31464
|
+
}
|
|
31465
|
+
)
|
|
31466
|
+
] }) }),
|
|
31467
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-end gap-2 text-sm", children: [
|
|
31468
|
+
/* @__PURE__ */ jsxs("span", { className: "mr-auto flex items-center gap-1 text-muted-foreground", children: [
|
|
31469
|
+
/* @__PURE__ */ jsx(EyeOff, { className: "size-4" }),
|
|
31470
|
+
" Drag over anything confidential to black it out."
|
|
31471
|
+
] }),
|
|
31472
|
+
/* @__PURE__ */ jsxs(
|
|
31473
|
+
Button,
|
|
31474
|
+
{
|
|
31475
|
+
size: "sm",
|
|
31476
|
+
variant: "ghost",
|
|
31477
|
+
disabled: !marks.length,
|
|
31478
|
+
onClick: () => setMarks((m) => m.slice(0, -1)),
|
|
31479
|
+
"data-testid": "report-undo",
|
|
31480
|
+
children: [
|
|
31481
|
+
/* @__PURE__ */ jsx(Undo2, { className: "mr-1 size-4" }),
|
|
31482
|
+
" Undo"
|
|
31483
|
+
]
|
|
31484
|
+
}
|
|
31485
|
+
),
|
|
31486
|
+
/* @__PURE__ */ jsxs(
|
|
31487
|
+
Button,
|
|
31488
|
+
{
|
|
31489
|
+
size: "sm",
|
|
31490
|
+
variant: "ghost",
|
|
31491
|
+
onClick: () => onImageChange(null),
|
|
31492
|
+
"data-testid": "report-remove-screenshot",
|
|
31493
|
+
children: [
|
|
31494
|
+
/* @__PURE__ */ jsx(Trash2, { className: "mr-1 size-4" }),
|
|
31495
|
+
" Remove"
|
|
31496
|
+
]
|
|
31497
|
+
}
|
|
31498
|
+
),
|
|
31499
|
+
/* @__PURE__ */ jsxs(Button, { size: "sm", variant: "ghost", onClick: onRetake, "data-testid": "report-retake", children: [
|
|
31500
|
+
/* @__PURE__ */ jsx(Camera, { className: "mr-1 size-4" }),
|
|
31501
|
+
" Retake"
|
|
31502
|
+
] })
|
|
31503
|
+
] })
|
|
31504
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3 rounded-md border border-dashed border-border p-3 text-sm", children: [
|
|
31505
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "No screenshot attached." }),
|
|
31506
|
+
canCaptureScreen() ? /* @__PURE__ */ jsxs(Button, { size: "sm", variant: "outline", onClick: onRetake, "data-testid": "report-retake", children: [
|
|
31507
|
+
/* @__PURE__ */ jsx(Camera, { className: "mr-1 size-4" }),
|
|
31508
|
+
" Take a screenshot"
|
|
31509
|
+
] }) : /* @__PURE__ */ jsxs("label", { className: "inline-flex cursor-pointer items-center gap-1 font-medium text-primary", children: [
|
|
31510
|
+
/* @__PURE__ */ jsx(ImageUp, { className: "size-4" }),
|
|
31511
|
+
" Choose a screenshot",
|
|
31512
|
+
/* @__PURE__ */ jsx(
|
|
31513
|
+
"input",
|
|
31514
|
+
{
|
|
31515
|
+
type: "file",
|
|
31516
|
+
accept: "image/*",
|
|
31517
|
+
className: "sr-only",
|
|
31518
|
+
onChange: (event) => {
|
|
31519
|
+
const file = event.target.files?.[0];
|
|
31520
|
+
if (file) onImageChange(file);
|
|
31521
|
+
},
|
|
31522
|
+
"data-testid": "report-choose-image"
|
|
31523
|
+
}
|
|
31524
|
+
)
|
|
31525
|
+
] })
|
|
31526
|
+
] }),
|
|
31527
|
+
/* @__PURE__ */ jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
31528
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: "What went wrong?" }),
|
|
31529
|
+
/* @__PURE__ */ jsx(
|
|
31530
|
+
Textarea,
|
|
31531
|
+
{
|
|
31532
|
+
value: description,
|
|
31533
|
+
onChange: (event) => setDescription(event.target.value),
|
|
31534
|
+
rows: 3,
|
|
31535
|
+
placeholder: "What did you do, and what happened instead?",
|
|
31536
|
+
"data-testid": "report-description"
|
|
31537
|
+
}
|
|
31538
|
+
)
|
|
31539
|
+
] }),
|
|
31540
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-end gap-2", children: [
|
|
31541
|
+
/* @__PURE__ */ jsx("span", { className: "mr-auto text-xs text-muted-foreground", children: footnote }),
|
|
31542
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: onClose, children: "Cancel" }),
|
|
31543
|
+
/* @__PURE__ */ jsx(
|
|
31544
|
+
Button,
|
|
31545
|
+
{
|
|
31546
|
+
variant: "outline",
|
|
31547
|
+
disabled: !natural || busy || cropping,
|
|
31548
|
+
onClick: () => void copy(),
|
|
31549
|
+
"data-testid": "report-copy",
|
|
31550
|
+
children: "Copy image"
|
|
31551
|
+
}
|
|
31552
|
+
),
|
|
31553
|
+
/* @__PURE__ */ jsx(
|
|
31554
|
+
Button,
|
|
31555
|
+
{
|
|
31556
|
+
disabled: !natural || busy || cropping,
|
|
31557
|
+
onClick: () => void download(),
|
|
31558
|
+
"data-testid": "report-download",
|
|
31559
|
+
children: "Download"
|
|
31560
|
+
}
|
|
31561
|
+
)
|
|
31562
|
+
] })
|
|
31563
|
+
]
|
|
31564
|
+
}
|
|
31565
|
+
) });
|
|
31566
|
+
}
|
|
31567
|
+
function useReportProblem(options2 = {}) {
|
|
31568
|
+
const { notify: notify17 } = useBlocksEnvironment();
|
|
31569
|
+
const [phase, setPhase] = useState("idle");
|
|
31570
|
+
const [frame, setFrame] = useState(null);
|
|
31571
|
+
const [image, setImage] = useState(null);
|
|
31572
|
+
const capture = useCallback(async () => {
|
|
31573
|
+
setPhase("capturing");
|
|
31574
|
+
await new Promise((resolve) => window.setTimeout(resolve, 200));
|
|
31575
|
+
try {
|
|
31576
|
+
setFrame(await captureCurrentTab());
|
|
31577
|
+
setImage(null);
|
|
31578
|
+
} catch (error) {
|
|
31579
|
+
const code = error instanceof ScreenCaptureError ? error.code : "failed";
|
|
31580
|
+
if (code === "failed") {
|
|
31581
|
+
notify17("Couldn't capture the screen. You can still describe the problem.", "error");
|
|
31582
|
+
}
|
|
31583
|
+
}
|
|
31584
|
+
setPhase("describing");
|
|
31585
|
+
}, [notify17]);
|
|
31586
|
+
const reset = useCallback(() => {
|
|
31587
|
+
setPhase("idle");
|
|
31588
|
+
setFrame(null);
|
|
31589
|
+
setImage(null);
|
|
31590
|
+
}, []);
|
|
31591
|
+
const ui = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31592
|
+
phase === "framing" && /* @__PURE__ */ jsx(
|
|
31593
|
+
CaptureBar,
|
|
31594
|
+
{
|
|
31595
|
+
onCapture: () => void capture(),
|
|
31596
|
+
onSkip: () => setPhase("describing"),
|
|
31597
|
+
onCancel: reset
|
|
31598
|
+
}
|
|
31599
|
+
),
|
|
31600
|
+
/* @__PURE__ */ jsx(
|
|
31601
|
+
ReportProblemDialog,
|
|
31602
|
+
{
|
|
31603
|
+
...options2,
|
|
31604
|
+
open: phase === "describing",
|
|
31605
|
+
frame,
|
|
31606
|
+
image,
|
|
31607
|
+
onCropped: (crop) => {
|
|
31608
|
+
setFrame(null);
|
|
31609
|
+
setImage(crop);
|
|
31610
|
+
},
|
|
31611
|
+
onImageChange: (next) => {
|
|
31612
|
+
setFrame(null);
|
|
31613
|
+
setImage(next);
|
|
31614
|
+
},
|
|
31615
|
+
onRetake: () => {
|
|
31616
|
+
setFrame(null);
|
|
31617
|
+
setImage(null);
|
|
31618
|
+
setPhase("framing");
|
|
31619
|
+
},
|
|
31620
|
+
onClose: reset
|
|
31621
|
+
}
|
|
31622
|
+
)
|
|
31623
|
+
] });
|
|
31624
|
+
return { start: () => void capture(), ui };
|
|
31625
|
+
}
|
|
31626
|
+
function ConnectedReportProblem({
|
|
31627
|
+
layout = "bar",
|
|
31628
|
+
onSelect,
|
|
31629
|
+
...options2
|
|
31630
|
+
}) {
|
|
31631
|
+
const report = useReportProblem(options2);
|
|
31632
|
+
const bar = layout === "bar";
|
|
31633
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31634
|
+
/* @__PURE__ */ jsx(
|
|
31635
|
+
SidebarBadgeRow,
|
|
31636
|
+
{
|
|
31637
|
+
icon: /* @__PURE__ */ jsx(Bug, { className: "size-5" }),
|
|
31638
|
+
label: "Report a problem",
|
|
31639
|
+
ariaLabel: "Report a problem",
|
|
31640
|
+
variant: bar ? "icon" : void 0,
|
|
31641
|
+
className: bar ? "size-9 pointer-coarse:size-11" : void 0,
|
|
31642
|
+
"data-testid": "report-problem-button",
|
|
31643
|
+
onClick: () => {
|
|
31644
|
+
report.start();
|
|
31645
|
+
onSelect?.();
|
|
31646
|
+
}
|
|
31647
|
+
}
|
|
31648
|
+
),
|
|
31649
|
+
report.ui
|
|
31650
|
+
] });
|
|
31651
|
+
}
|
|
30925
31652
|
var ConversationEntity = memo(function ConversationEntity2({
|
|
30926
31653
|
conversation,
|
|
30927
31654
|
variant = "pill",
|
|
@@ -32959,7 +33686,7 @@ function MessageLiveSecondsComponent({
|
|
|
32959
33686
|
suffix
|
|
32960
33687
|
] });
|
|
32961
33688
|
}
|
|
32962
|
-
var MessageLiveSeconds =
|
|
33689
|
+
var MessageLiveSeconds = React9.memo(MessageLiveSecondsComponent);
|
|
32963
33690
|
var DISPLAY_FIELDS = /* @__PURE__ */ new Set(["tool", "label", "icon", "summary"]);
|
|
32964
33691
|
function getToolParams(detail) {
|
|
32965
33692
|
const params = [];
|
|
@@ -33277,7 +34004,7 @@ function subStepNoun(tool) {
|
|
|
33277
34004
|
function pluralise(noun) {
|
|
33278
34005
|
return noun.endsWith("h") ? `${noun}es` : `${noun}s`;
|
|
33279
34006
|
}
|
|
33280
|
-
var AgentSteps =
|
|
34007
|
+
var AgentSteps = React9.memo(AgentStepsComponent, (prev, next) => {
|
|
33281
34008
|
return prev.isStreaming === next.isStreaming && prev.className === next.className && prev.totalElapsedTime === next.totalElapsedTime && prev.steps === next.steps && prev.liveTimer === next.liveTimer && prev.hideLive === next.hideLive;
|
|
33282
34009
|
});
|
|
33283
34010
|
function RunStatsBadges({ steps, className }) {
|
|
@@ -33755,7 +34482,7 @@ var ConnectedCitationRendererComponent = ({
|
|
|
33755
34482
|
}
|
|
33756
34483
|
);
|
|
33757
34484
|
};
|
|
33758
|
-
var ConnectedCitationRenderer =
|
|
34485
|
+
var ConnectedCitationRenderer = React9.memo(ConnectedCitationRendererComponent);
|
|
33759
34486
|
function sourceTitle(chunk, docTitles) {
|
|
33760
34487
|
const displayTitle = chunk.metadata.doc_ext_id ? docTitles.get(chunk.metadata.doc_ext_id) : void 0;
|
|
33761
34488
|
return displayTitle ?? chunk.metadata.doc_title ?? chunk.metadata.doc_ext_id ?? "Source";
|
|
@@ -34514,10 +35241,10 @@ var MessageComponent = ({
|
|
|
34514
35241
|
const fullUrl = domain ? `https://${domain}${path}` : `${window.location.origin}${path}`;
|
|
34515
35242
|
navigator.clipboard.writeText(fullUrl).then(
|
|
34516
35243
|
() => notify17(
|
|
34517
|
-
|
|
35244
|
+
React9.createElement(
|
|
34518
35245
|
"span",
|
|
34519
35246
|
{},
|
|
34520
|
-
|
|
35247
|
+
React9.createElement(
|
|
34521
35248
|
"a",
|
|
34522
35249
|
{
|
|
34523
35250
|
href: fullUrl,
|
|
@@ -35046,7 +35773,7 @@ function areMessagesEqual(prevProps, nextProps) {
|
|
|
35046
35773
|
if (prevProps.subagentLinks !== nextProps.subagentLinks) return false;
|
|
35047
35774
|
return true;
|
|
35048
35775
|
}
|
|
35049
|
-
var ConnectedMessage =
|
|
35776
|
+
var ConnectedMessage = React9.memo(MessageComponent, areMessagesEqual);
|
|
35050
35777
|
var VERSION_LABELS = {
|
|
35051
35778
|
branchOf: (current2, total) => `Version ${current2} of ${total}`,
|
|
35052
35779
|
previousBranch: "Previous version",
|
|
@@ -39201,6 +39928,6 @@ function ConnectedAccountAccessBadge() {
|
|
|
39201
39928
|
] });
|
|
39202
39929
|
}
|
|
39203
39930
|
|
|
39204
|
-
export { AddAddonDialog, AddFromAccountsButton, AgentBarShell, AgentControlBar, AgentSteps, AnswerTable, AskAgainContext, BACKFILL_OPTIONS, BULK_REPROCESS_LIMIT, BillingProjectEntity, ChangePlanDialog, ChatAttachmentList, ConnectedAccountAccessBadge, ConnectedAccountCluster, ConnectedAccountSettings, ConnectedAddContacts, ConnectedAgentChat, ConnectedAgentChatPanel, ConnectedAgentConfigForm, ConnectedAgentCreator, ConnectedAiReview, ConnectedAppsSettings, ConnectedAuthorizeAgent, ConnectedBranchControls, ConnectedBulkTagEditor, ConnectedCalendar, ConnectedChatThread, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedConfigForm, ConnectedContactCardForm, ConnectedContactToggle, ConnectedContactsDirectory, ConnectedConversation, ConnectedConversationDocumentPicker, ConnectedConversationEmpty, ConnectedConversationStart, ConnectedDangerZone, ConnectedDeploymentStorage, ConnectedDeveloperConfig, ConnectedDriveSyncDialog, ConnectedExportDialog, ConnectedExportPanel, ConnectedFactsPage, ConnectedFieldsEditor, ConnectedFieldsManager, ConnectedFilesBulkActions, ConnectedFilesExplorer, ConnectedFilesPage, ConnectedForgotPassword, ConnectedGrantWorkspaceAccessDialog, ConnectedGroupMembers, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMailAccounts, ConnectedMailComposer, ConnectedMailInviteCard, ConnectedMailMessage, ConnectedMailSettings, ConnectedMailSetup, ConnectedMailbox, ConnectedMailboxSyncDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedMessenger, ConnectedModelSelector, ConnectedMoveToFolder, ConnectedNewThreadDialog, ConnectedNotificationCenter, ConnectedNotificationPreferences, ConnectedOAuthConsentPage, ConnectedPasswordChangeDialog, ConnectedPremiumModels, ConnectedPrivacySettings, ConnectedProfileCard, ConnectedProjectEntity, ConnectedProjectPage, ConnectedProjectStorage, ConnectedProjectsPanel, ConnectedPublicBooking, ConnectedQuotaDialog, ConnectedRecentlyDeletedButton, ConnectedRecoveryKeyDialog, ConnectedRequestWorkspaceAccess, ConnectedRequireVerified, ConnectedSearchPage, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedSettingsPage, ConnectedSharePointAdminConsentPage, ConnectedSharedFilesPage, ConnectedSignatureVerifyPage, ConnectedSkillUpload, ConnectedSkillsLibrary, ConnectedSsoCallback, ConnectedStorageProjectCard, ConnectedStorageSettings, ConnectedTagEditorDialog, ConnectedTagEntity, ConnectedTagForm, ConnectedTagTable, ConnectedTagsPage, ConnectedTaskAccessRequest, ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedTaskStartDialog, ConnectedThreadFollow, ConnectedThreadLauncher, ConnectedThreadTabs, ConnectedThreadTaskBar, ConnectedThreadsPreview, ConnectedTransferWatcher, ConnectedUpcomingEvents, ConnectedUpload, ConnectedUploadDropzone, ConnectedUserEntity, ConnectedWelcomeDialog, ConnectedWorkflowHistory, ConnectedWorkflowRunner, ConnectedWorkflowStart, ConnectedWorkspaceActivity, ConnectedWorkspaceDashboard, ConnectedWorkspaceEntity, ConnectedWorkspaceList, ConnectedWorkspaceMembers, ConnectedWorkspaceNotificationMenu, ConnectedWorkspaceSettings, ConnectedWorkspaceTrash, ConversationAlert, ConversationComposer2 as ConversationComposer, ConversationEntity, ConversationSendButton, ConversationStatusCell, DEFAULT_CONNECTED_SEARCH_PAGE_LABELS, DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_OAUTH_PERMISSIONS, DEFAULT_PROJECTS_LIST_LABELS, DEFAULT_PROJECT_DETAILS_LABELS, DEFAULT_PROJECT_DETAIL_FIELDS, DEFAULT_PROJECT_LIST_COLUMNS, DEFAULT_PROJECT_PAGE_LABELS, DEFAULT_SEARCH_FIELDS, DEFAULT_SEARCH_ROW_LABELS, DEFAULT_SETTINGS_SECTIONS, DEFAULT_TIMELINE_LABEL_WIDTH, DEFAULT_WORKSPACE_LIST_LABELS, DeveloperFooter, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, DocumentUser, DocumentsFilterBarActions, DocumentsUploadButton, EmptyWorkspaceUpload, FACTS_GRID_ID, FILES_PREFS_KEY, FileTooltipContent, ImportVcfButton, ImportVcfSummary, InvoicesModal, LOOK_AGAIN_LABEL, MessageDetailsModal, MessageLiveSeconds, MicButton, NewProjectFlow, NotificationCenter, NotificationEvent, PENDING_LOOKUP_MS, PENDING_RECOVERY_KEY, PENDING_TASK_MESSAGE, PREMIUM_TIER_TAG, PROJECTS_BASE_TAB_ID, PROMPT_BINDINGS, PersistedGridView, ProgressiveLoadingChip, ProjectDetail, ProjectUsageContent, ProjectsTable, REFERRAL_OFFER, RecoveryKeyDownload, RelatedDocumentsCell, RunStatsBadges, RunningSubagents, SEARCH_FIELD_OPTIONS, SETTINGS_SECTION_IDS, STANDARD_TIER_TAG, SessionStatusIcon, SharedProjects, SourceChips, SsoResendVerificationButton, StatusCell, StorageBreakdown, StorageItemsTable, StorageTiers, StreamedArtifact, TILE_DEFAULT, TILE_MAX, TILE_MIN, ThreadSwitcher, UserAvatar, ViewSelector, WORKSPACES_TAB_ID, WorkflowLaunchHost, WorkflowRunStatusCell, WorkflowRunThread, WorkflowStepMessage, accountSettingsSection, appearanceSettingsSection, backUpOnSignup, bookingCancelLink, buildNotificationCenterItems, buildProjectSummaries, chatSettingsSection, closeAccessRequestReview, connectedAppsSettingsSection, connectionSettingsSection, countNotificationTypes, createDocumentColumns, createEventCall, createNotificationTargetOpener, createTagColumn, deduplicateByContentHash, defaultHost, describePlan, distinctPeers, documentFamilyMeta, documentFieldContent, filesViewMode, filterNotificationCenterItems, formatStorageGb, groupFallbackName, identifyOAuthClient, isActiveDocumentStatus, joinEventMeeting, loadEventWebinar, mailSettingsSection, openMeetingLink, openSsoPopup, organisationSettingsSection, parseArbiCallUrl, parseOAuthConsentRequest, parseQuotaError, parseTypedSkill, primaryProjectWorkspace, privacySettingsSection, renderConnectedUser, renderSessionStatusIcon, requestProjectBillingFocus, resolveAttendeeUsers, resolveAttendeeUsersRemote, resolveCallPeers, resolveCallPeersRemote, resolveLaunchInputs, resolveMailbox, resolveSsoName, reviewAccessRequest, reviewProgress, shareEventCall, startMenuItem, storageSettingsSection, suppliedKinds, threadStateOf, toWorkspaceSummary, transferOutcome, updateEventWebinarRoles, usageSettingsSection, useAccessRequestUnderReview, useAddFromUrls, useAiReviewStore, useAuthPages, useAutoRefreshPendingProjects, useConnectedCalendarCalls, useConnectedNotificationBell, useConnectedShellWorkspaces, useConnectedThreadActivity, useConnectedWorkspaceList, useConnectedWorkspaceSettings, useDocumentBulkActions, useDocumentFilters, useDocumentFolders, useDocumentGridSync, useDocumentNavigation, useDocumentTable, useExportStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, useLaunchWorkflow, useMemberLookup, useMessengerRows, useModelPicker, useNotificationBellEntry, useOpenBillingPortal, useOpenChunk, useOpenNotificationTarget, useOpenWorkspaceActivityTarget, useOpenWorkspaceIcon, usePendingFolders, usePendingTaskThread, useProjectBillingFocus, useProjectSummaries, useProjectSummary, useReferralReward, useRenderTaskPerson, useResolvedDocStatus, useSkillsEnabled, useSlashItems, useSlashSkillWorkflows, useSsoSignIn, useStartRequestedDraft, useTableViews, useTaskPeople, useTaskStart, useThreadLabels, useThreadTabs, useWorkflowDefinitions, useWorkflowLaunch, useWorkflowTasks, useWorkspaceDocTitles, viewsOfTable, webinarRolesByUser, windowLabel, withMissingTableViews, withTableView, withoutTableView, workflowRunView };
|
|
39931
|
+
export { AddAddonDialog, AddFromAccountsButton, AgentBarShell, AgentControlBar, AgentSteps, AnswerTable, AskAgainContext, BACKFILL_OPTIONS, BULK_REPROCESS_LIMIT, BillingProjectEntity, CaptureBar, ChangePlanDialog, ChatAttachmentList, ConnectedAccountAccessBadge, ConnectedAccountCluster, ConnectedAccountSettings, ConnectedAddContacts, ConnectedAgentChat, ConnectedAgentChatPanel, ConnectedAgentConfigForm, ConnectedAgentCreator, ConnectedAiReview, ConnectedAppRuntime, ConnectedAppsSettings, ConnectedAuthorizeAgent, ConnectedBranchControls, ConnectedBulkTagEditor, ConnectedCalendar, ConnectedChatThread, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedConfigForm, ConnectedContactCardForm, ConnectedContactToggle, ConnectedContactsDirectory, ConnectedConversation, ConnectedConversationDocumentPicker, ConnectedConversationEmpty, ConnectedConversationStart, ConnectedDangerZone, ConnectedDeploymentStorage, ConnectedDeveloperConfig, ConnectedDriveSyncDialog, ConnectedExportDialog, ConnectedExportPanel, ConnectedFactsPage, ConnectedFieldsEditor, ConnectedFieldsManager, ConnectedFilesBulkActions, ConnectedFilesExplorer, ConnectedFilesPage, ConnectedForgotPassword, ConnectedGrantWorkspaceAccessDialog, ConnectedGroupMembers, ConnectedIdentityVerification, ConnectedLoginPage, ConnectedLogoutDialog, ConnectedMailAccounts, ConnectedMailComposer, ConnectedMailInviteCard, ConnectedMailMessage, ConnectedMailSettings, ConnectedMailSetup, ConnectedMailbox, ConnectedMailboxSyncDialog, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedMessenger, ConnectedModelSelector, ConnectedMoveToFolder, ConnectedNewThreadDialog, ConnectedNotificationCenter, ConnectedNotificationPreferences, ConnectedOAuthConsentPage, ConnectedPasswordChangeDialog, ConnectedPremiumModels, ConnectedPrivacySettings, ConnectedProfileCard, ConnectedProjectEntity, ConnectedProjectPage, ConnectedProjectStorage, ConnectedProjectsPanel, ConnectedPublicBooking, ConnectedQuotaDialog, ConnectedRecentlyDeletedButton, ConnectedRecoveryKeyDialog, ConnectedReportProblem, ConnectedRequestWorkspaceAccess, ConnectedRequireVerified, ConnectedSearchPage, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedSettingsPage, ConnectedSharePointAdminConsentPage, ConnectedSharedFilesPage, ConnectedSignatureVerifyPage, ConnectedSkillUpload, ConnectedSkillsLibrary, ConnectedSsoCallback, ConnectedStorageProjectCard, ConnectedStorageSettings, ConnectedTagEditorDialog, ConnectedTagEntity, ConnectedTagForm, ConnectedTagTable, ConnectedTagsPage, ConnectedTaskAccessRequest, ConnectedTaskActivityDialog, ConnectedTaskComposer, ConnectedTaskStartDialog, ConnectedThreadFollow, ConnectedThreadLauncher, ConnectedThreadTabs, ConnectedThreadTaskBar, ConnectedThreadsPreview, ConnectedTransferWatcher, ConnectedUpcomingEvents, ConnectedUpload, ConnectedUploadDropzone, ConnectedUserEntity, ConnectedWelcomeDialog, ConnectedWorkflowHistory, ConnectedWorkflowRunner, ConnectedWorkflowStart, ConnectedWorkspaceActivity, ConnectedWorkspaceDashboard, ConnectedWorkspaceEntity, ConnectedWorkspaceList, ConnectedWorkspaceMembers, ConnectedWorkspaceNotificationMenu, ConnectedWorkspaceSettings, ConnectedWorkspaceTrash, ConversationAlert, ConversationComposer2 as ConversationComposer, ConversationEntity, ConversationSendButton, ConversationStatusCell, DEFAULT_CONNECTED_SEARCH_PAGE_LABELS, DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, DEFAULT_OAUTH_PERMISSIONS, DEFAULT_PROJECTS_LIST_LABELS, DEFAULT_PROJECT_DETAILS_LABELS, DEFAULT_PROJECT_DETAIL_FIELDS, DEFAULT_PROJECT_LIST_COLUMNS, DEFAULT_PROJECT_PAGE_LABELS, DEFAULT_SEARCH_FIELDS, DEFAULT_SEARCH_ROW_LABELS, DEFAULT_SETTINGS_SECTIONS, DEFAULT_TIMELINE_LABEL_WIDTH, DEFAULT_WORKSPACE_LIST_LABELS, DeveloperFooter, DocumentFolderCell, DocumentLabelsCell, DocumentNameCell, DocumentSharedCell, DocumentStatusGlyph, DocumentSyncGlyph, DocumentUser, DocumentsFilterBarActions, DocumentsUploadButton, EmptyWorkspaceUpload, FACTS_GRID_ID, FILES_PREFS_KEY, FileTooltipContent, ImportVcfButton, ImportVcfSummary, InvoicesModal, LOOK_AGAIN_LABEL, MessageDetailsModal, MessageLiveSeconds, MicButton, NewProjectFlow, NotificationCenter, NotificationEvent, PENDING_LOOKUP_MS, PENDING_RECOVERY_KEY, PENDING_TASK_MESSAGE, PREMIUM_TIER_TAG, PROJECTS_BASE_TAB_ID, PROMPT_BINDINGS, PersistedGridView, ProgressiveLoadingChip, ProjectDetail, ProjectUsageContent, ProjectsTable, REFERRAL_OFFER, RecoveryKeyDownload, RelatedDocumentsCell, ReportProblemDialog, RunStatsBadges, RunningSubagents, SEARCH_FIELD_OPTIONS, SETTINGS_SECTION_IDS, STANDARD_TIER_TAG, SessionStatusIcon, SharedProjects, SourceChips, SsoResendVerificationButton, StatusCell, StorageBreakdown, StorageItemsTable, StorageTiers, StreamedArtifact, TILE_DEFAULT, TILE_MAX, TILE_MIN, ThreadSwitcher, UserAvatar, ViewSelector, WORKSPACES_TAB_ID, WorkflowLaunchHost, WorkflowRunStatusCell, WorkflowRunThread, WorkflowStepMessage, accountSettingsSection, appearanceSettingsSection, backUpOnSignup, bookingCancelLink, buildNotificationCenterItems, buildProjectSummaries, chatSettingsSection, closeAccessRequestReview, connectedAppsSettingsSection, connectionSettingsSection, countNotificationTypes, createDocumentColumns, createEventCall, createNotificationTargetOpener, createTagColumn, deduplicateByContentHash, defaultHost, describePlan, distinctPeers, documentFamilyMeta, documentFieldContent, filesViewMode, filterNotificationCenterItems, formatStorageGb, groupFallbackName, identifyOAuthClient, isActiveDocumentStatus, joinEventMeeting, loadEventWebinar, mailSettingsSection, openMeetingLink, openSsoPopup, organisationSettingsSection, parseArbiCallUrl, parseOAuthConsentRequest, parseQuotaError, parseTypedSkill, primaryProjectWorkspace, privacySettingsSection, renderConnectedUser, renderSessionStatusIcon, requestProjectBillingFocus, resolveAttendeeUsers, resolveAttendeeUsersRemote, resolveCallPeers, resolveCallPeersRemote, resolveLaunchInputs, resolveMailbox, resolveSsoName, reviewAccessRequest, reviewProgress, shareEventCall, startMenuItem, storageSettingsSection, suppliedKinds, threadStateOf, toWorkspaceSummary, transferOutcome, updateEventWebinarRoles, usageSettingsSection, useAccessRequestUnderReview, useAddFromUrls, useAiReviewStore, useAuthPages, useAutoRefreshPendingProjects, useConnectedCalendarCalls, useConnectedNotificationBell, useConnectedShellWorkspaces, useConnectedThreadActivity, useConnectedWorkspaceList, useConnectedWorkspaceSettings, useDocumentBulkActions, useDocumentFilters, useDocumentFolders, useDocumentGridSync, useDocumentNavigation, useDocumentTable, useExportStore, useFilesDialogs, useFilesGridStates, useFilesPrefs, useFilesStore, useLaunchWorkflow, useMemberLookup, useMessengerRows, useModelPicker, useNotificationBellEntry, useOpenBillingPortal, useOpenChunk, useOpenNotificationTarget, useOpenWorkspaceActivityTarget, useOpenWorkspaceIcon, usePendingFolders, usePendingTaskThread, useProjectBillingFocus, useProjectSummaries, useProjectSummary, useReferralReward, useRenderTaskPerson, useReportProblem, useResolvedDocStatus, useSkillsEnabled, useSlashItems, useSlashSkillWorkflows, useSsoSignIn, useStartRequestedDraft, useTableViews, useTaskPeople, useTaskStart, useThreadLabels, useThreadTabs, useWorkflowDefinitions, useWorkflowLaunch, useWorkflowTasks, useWorkspaceDocTitles, viewsOfTable, webinarRolesByUser, windowLabel, withMissingTableViews, withTableView, withoutTableView, workflowRunView };
|
|
39205
39932
|
//# sourceMappingURL=index.js.map
|
|
39206
39933
|
//# sourceMappingURL=index.js.map
|