@frontera-sdk/chat-ui 1.53.26 → 1.53.28

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/chat.js CHANGED
@@ -1,20 +1,20 @@
1
1
  'use client';
2
2
  import { offset, flip, autoUpdate, computePosition } from './chunk-I7SXWUAN.js';
3
3
  import { isFullscreenHotkey, DeckNotesCard, deckOwnsArrowKeys } from './chunk-4FRTPVJT.js';
4
- import { ArtifactSkeleton, resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb } from './chunk-JYVL7J7E.js';
5
- import { NewSessionPrompt, keepCaretOnTap } from './chunk-53DJ56SR.js';
4
+ import { ArtifactSkeleton, resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb } from './chunk-EK6EYBTA.js';
5
+ import { NewSessionPrompt, keepCaretOnTap } from './chunk-QAXXD7LQ.js';
6
6
  import { PendingCards } from './chunk-A4GIIAMQ.js';
7
7
  import { themeToStyle } from './chunk-6HYPVNVA.js';
8
8
  import { useChatAgents } from './chunk-NDU6ERVT.js';
9
9
  import { subjectOfChatToken, capabilitiesOfChatToken } from './chunk-CCVPZVFK.js';
10
10
  import { useChatCredential } from './chunk-6BCUAPW3.js';
11
11
  import './chunk-WDYCLC4F.js';
12
- import { chatSidePanelSessionKey, Chart1Icon, useTemplatePreviewStore, useHasTemplatePreviewHost, useChatSidePanelStore, ChatHeader, ChatHeaderActions, useRightPane, getChatOverviewAgentStatus, useChatOverviewVisible, useConversationArtifacts, PENDING_CHART_TAB_PREFIX, CHART_TAB_PREFIX, AGENT_WORK_TAB_ID, AGENT_ROUTINES_TAB_ID, SOURCES_TAB_ID, TEMPLATE_TAB_ID, OutputsSection, ChainLink1Icon, ChatOverviewContent, COMPUTER_TAB_PREFIX, SourceRow, motion, MAX_CHAT_SIDE_PANEL_SESSIONS, DEFAULT_CHAT_SIDE_PANEL_SIZE, TableIcon } from './chunk-ZMDY2XNY.js';
13
- import { dynamic, useChatStreamStore, useComposerStore, Message, Thinking, setPendingFiles, usePersonConfirmations, unshownPendingConfirmations, ConversationConfirmationCard, useLivePreviewUrl, ArrowRotateClockwiseIcon, useComputerFiles, useUploadComputerFile, CanvasWidget, isPlainTextLanguage, useUploadFile, COMPOSER_ID_MAIN, useContextWindowInfo, useIsCompacting, useQueuedMessages, VolumeFullIcon, WarningSignIcon, useComputer, csvTextToWorkbookJson, CSV_PREVIEW_MAX_ROWS, CopyButton, COMPOSER_ID_COPILOT, ModelIcon, modeToBrandRow, useBackDismiss, PdfViewer, brandLabel, Spinner } from './chunk-TJABFPOO.js';
14
- import { Textarea, resolveChatHost, artifactFormatIcon, BookIcon, useAgentRoster, ShieldCheckIcon, useArtifactStore, useCanvasStore, useChatOverviewStore, setSdkConversationPath, setSdkDarkMode, AgentsProvider, PluginProvider, WorkspaceProvider, TooltipProvider, ChatHostProvider, getPersonConfirmation, isToolPart, getToolState, getToolName, getToolInput, sourceKind, extractDomain, CitationViewerContext, MarkdownRenderer, ConnectRunnerContext, usePathname, useChatSurfaceProvider, usePaneFocusStore, useAgentPanelStore, Tooltip, TooltipTrigger, TooltipContent, StudioDisplayIcon, WorldIcon, SlidesWideIcon, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, ArrowsShowIcon, useKeyboardInset, ExclamationCircleIcon, getToolOutput, useArtifact, useUpdateArtifact, useArtifactFileObjectUrl, resolveArtifactIconFormat, useSourcesEnrichment, LoaderIcon, FileDownloadIcon, Label, Input, renderPluginBlock, useArtifactVersion, useChatCapabilities, useChatCapabilityEnabled, useChatOptInEnabled, useChatHost, useSessionPendingApprovals, tableToCsv, tableToXlsx, tableToMarkdown, DropdownMenu, DropdownMenuTrigger, StyledDropdownMenuContent, StyledDropdownMenuItem, useArtifactVersions, useClient, unwrapData, authFetch, getBearerHeadersForApi, EyeOpenIcon, EyeSlashIcon, useRestoreArtifactVersion, ZoomableImage, ChatImageLightbox, useDownloadArtifact, useArtifactFileBytes, useArtifactPreviewFileObjectUrl, useArtifactVersionPreviewFileObjectUrl, errorText, SpreadsheetIcon, FilePdfIcon, useOptionalWorkspaceContext, useAgentConnectionStatus, useArtifacts, useSession, useWorkspaceContext, useConversationDesktopStatus, isRequestHumanTool, appsKeys, unwrapDataDeep, useRouter, Images1Icon, ArrowUpIcon, VideoIcon, AudioIcon, useBrand, resolveBearerHeaders, subscribeSdkDarkMode, getSdkDarkMode, unwrap, useConnectRunner, useStartUserConnect, useUpsertGrant, useRevokeGrant, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, LayoutGrid1Icon, useCatalog, useInstalls, useWorkspaceSlug, buildTenantUrlAbsolute } from './chunk-CQFY4GBK.js';
12
+ import { chatSidePanelSessionKey, Chart1Icon, useTemplatePreviewStore, useHasTemplatePreviewHost, useChatSidePanelStore, ChatHeader, ChatHeaderActions, useRightPane, getChatOverviewAgentStatus, useChatOverviewVisible, useConversationArtifacts, PENDING_CHART_TAB_PREFIX, CHART_TAB_PREFIX, AGENT_WORK_TAB_ID, AGENT_ROUTINES_TAB_ID, SOURCES_TAB_ID, TEMPLATE_TAB_ID, OutputsSection, ChainLink1Icon, ChatOverviewContent, COMPUTER_TAB_PREFIX, SourceRow, motion, MAX_CHAT_SIDE_PANEL_SESSIONS, DEFAULT_CHAT_SIDE_PANEL_SIZE, TableIcon } from './chunk-6IMCJINQ.js';
13
+ import { dynamic, useChatStreamStore, useComposerStore, Message, Thinking, setPendingFiles, usePersonConfirmations, unshownPendingConfirmations, ConversationConfirmationCard, useLivePreviewUrl, ArrowRotateClockwiseIcon, useComputerFiles, useUploadComputerFile, CanvasWidget, isPlainTextLanguage, useUploadFile, COMPOSER_ID_MAIN, useContextWindowInfo, useIsCompacting, useQueuedMessages, VolumeFullIcon, WarningSignIcon, useComputer, csvTextToWorkbookJson, CSV_PREVIEW_MAX_ROWS, CopyButton, COMPOSER_ID_COPILOT, ModelIcon, modeToBrandRow, useBackDismiss, PdfViewer, brandLabel, Spinner } from './chunk-MLR6EJEV.js';
14
+ import { Textarea, resolveChatHost, artifactFormatIcon, BookIcon, useAgentRoster, ShieldCheckIcon, useArtifactStore, useCanvasStore, useChatOverviewStore, setSdkConversationPath, setSdkDarkMode, AgentsProvider, PluginProvider, WorkspaceProvider, TooltipProvider, ChatHostProvider, getPersonConfirmation, isToolPart, getToolState, getToolName, getToolInput, sourceKind, extractDomain, CitationViewerContext, MarkdownRenderer, ConnectRunnerContext, usePathname, useChatSurfaceProvider, usePaneFocusStore, useAgentPanelStore, Tooltip, TooltipTrigger, TooltipContent, StudioDisplayIcon, WorldIcon, SlidesWideIcon, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, ArrowsShowIcon, useKeyboardInset, ExclamationCircleIcon, getToolOutput, useArtifact, useUpdateArtifact, useArtifactFileObjectUrl, resolveArtifactIconFormat, useSourcesEnrichment, LoaderIcon, FileDownloadIcon, Label, Input, renderPluginBlock, useArtifactVersion, useChatCapabilities, useChatCapabilityEnabled, useChatOptInEnabled, useChatHost, useSessionPendingApprovals, tableToCsv, tableToXlsx, tableToMarkdown, DropdownMenu, DropdownMenuTrigger, StyledDropdownMenuContent, StyledDropdownMenuItem, useArtifactVersions, useClient, unwrapData, authFetch, getBearerHeadersForApi, EyeOpenIcon, EyeSlashIcon, useRestoreArtifactVersion, ZoomableImage, ChatImageLightbox, useDownloadArtifact, useArtifactFileBytes, useArtifactPreviewFileObjectUrl, useArtifactVersionPreviewFileObjectUrl, errorText, SpreadsheetIcon, FilePdfIcon, useOptionalWorkspaceContext, useAgentConnectionStatus, useArtifacts, useSession, useWorkspaceContext, useConversationDesktopStatus, isRequestHumanTool, appsKeys, unwrapDataDeep, useRouter, Images1Icon, ArrowUpIcon, VideoIcon, AudioIcon, useBrand, resolveBearerHeaders, subscribeSdkDarkMode, getSdkDarkMode, unwrap, useConnectRunner, useStartUserConnect, useUpsertGrant, useRevokeGrant, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, LayoutGrid1Icon, useCatalog, useInstalls, useWorkspaceSlug, buildTenantUrlAbsolute } from './chunk-IOSRUVWE.js';
15
15
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
16
- import { Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from './chunk-RQSMCGBR.js';
17
- import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-LDHGDCPF.js';
16
+ import { Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from './chunk-OONQIDAU.js';
17
+ import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-4Q6CR67S.js';
18
18
  import './chunk-R3ONYPUB.js';
19
19
  import { AppIcon, frontera_icon_default, PhotoIcon, Folder1Icon, FileTextIcon, describeToolRow, SquareArrowTopRightIcon, ClipboardIcon, getToolMeta, useStreamdownPlugins, AppIconFrame, MessageResponse } from './chunk-K7AIK7TA.js';
20
20
  import { Skeleton, Button, ScrollArea, ChevronDownMediumIcon, buttonVariants } from './chunk-UWKO24VT.js';
@@ -42299,11 +42299,11 @@ function fromUniver(uw) {
42299
42299
  })
42300
42300
  };
42301
42301
  }
42302
- var UniverWorkbookView = dynamic(() => import('./univer-workbook-PENO65OQ.js'), {
42302
+ var UniverWorkbookView = dynamic(() => import('./univer-workbook-AVVPMNJP.js'), {
42303
42303
  ssr: false,
42304
42304
  loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "sheet" })
42305
42305
  });
42306
- function SheetEditor({ content, onSave, readOnly = false }) {
42306
+ function SheetEditor({ content, onSave, readOnly = false, focusRows = null }) {
42307
42307
  const selfSaved = useRef([]);
42308
42308
  const rememberSave = useCallback((payload) => {
42309
42309
  const list2 = selfSaved.current;
@@ -42391,13 +42391,14 @@ function SheetEditor({ content, onSave, readOnly = false }) {
42391
42391
  data: initialData,
42392
42392
  onMutation: readOnly ? void 0 : handleMutation,
42393
42393
  readOnly,
42394
- darkMode: isDark
42394
+ darkMode: isDark,
42395
+ focusRows
42395
42396
  },
42396
42397
  seedTick
42397
42398
  );
42398
42399
  }
42399
42400
  var PdfDocumentViewInner = dynamic(
42400
- () => import('./pdf-document-view-inner-HXF5B5H6.js'),
42401
+ () => import('./pdf-document-view-inner-GNFEJM2W.js'),
42401
42402
  {
42402
42403
  ssr: false,
42403
42404
  loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "pdf" })
@@ -43218,7 +43219,7 @@ function HtmlDeckView({ content, inChat = false, versionSlot }) {
43218
43219
  !present && inChat && /* @__PURE__ */ jsx(DeckEditPanel, { currentIndex: sel, currentHtml: slides[sel]?.html ?? "" })
43219
43220
  ] });
43220
43221
  }
43221
- var Inner = dynamic(() => import('./pdf-deck-view-inner-HYJBHR25.js'), {
43222
+ var Inner = dynamic(() => import('./pdf-deck-view-inner-5G2TATKD.js'), {
43222
43223
  ssr: false,
43223
43224
  loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "htmldeck" })
43224
43225
  });
@@ -43857,7 +43858,8 @@ function FileArtifactView({ artifact, version }) {
43857
43858
  function CsvSheetView({
43858
43859
  content,
43859
43860
  title,
43860
- readOnly = true
43861
+ readOnly = true,
43862
+ focusRows = null
43861
43863
  }) {
43862
43864
  const { json, truncated } = useMemo(
43863
43865
  () => csvTextToWorkbookJson(content, title),
@@ -43870,7 +43872,7 @@ function CsvSheetView({
43870
43872
  " rows \u2014 download for full data"
43871
43873
  ] }),
43872
43874
  /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx(SheetEditor, { content: json, onSave: () => {
43873
- }, readOnly }) })
43875
+ }, readOnly, focusRows }) })
43874
43876
  ] });
43875
43877
  }
43876
43878
  function markdownDownloadFileName(fileName) {
@@ -1473,6 +1473,7 @@ var en_default = {
1473
1473
  "admin.knowledge.traces.section.setup": "Setup",
1474
1474
  "admin.knowledge.traces.nothingAsked": "Nothing: it answered",
1475
1475
  "admin.knowledge.traces.noneCited": "No sources cited.",
1476
+ "admin.knowledge.traces.citedWords": "Cited words: {found} found, {weak} weak, {missing} not found in the file",
1476
1477
  "admin.knowledge.traces.search": "Search questions\u2026",
1477
1478
  "admin.knowledge.traces.questionNotKept": "Question not kept",
1478
1479
  "admin.knowledge.traces.noMatch": "No traces match this search and these filters.",
@@ -2680,6 +2681,10 @@ var en_default = {
2680
2681
  "knowledgeApp.preview.openInSource": "Open in source",
2681
2682
  "knowledgeApp.preview.download": "Download",
2682
2683
  "knowledgeApp.preview.close": "Close preview",
2684
+ "knowledgeApp.preview.citationNotFound": "These exact words weren't found in this file.",
2685
+ "knowledgeApp.preview.citedWords": "Words cited by the answer, source {n}",
2686
+ "knowledgeApp.preview.citedWordsUnnumbered": "Words cited by the answer",
2687
+ "knowledgeApp.preview.citedInImage": "The cited words are in an image, so they can't be highlighted here. They read:",
2683
2688
  "knowledgeApp.preview.sheets": "Sheets",
2684
2689
  "knowledgeApp.preview.sheetCut": "Showing the first 1,000 rows. Download the file to see all of them.",
2685
2690
  "knowledgeApp.preview.unavailableTitle": "Preview not available",
@@ -5832,6 +5837,30 @@ var en_default = {
5832
5837
  "omnichannel.settings.fields.agentLevelMarks.read": "Agent reads",
5833
5838
  "omnichannel.settings.fields.agentLevelMarks.collect": "Agent fills",
5834
5839
  "omnichannel.settings.fields.agentLevelMarks.fill": "Agent reads and fills",
5840
+ "omnichannel.settings.fields.editNamed": "Edit {name}",
5841
+ "omnichannel.settings.fields.deleteField": "Delete field",
5842
+ "omnichannel.settings.fields.agentLevelShort.hidden": "Only your team sees and fills it",
5843
+ "omnichannel.settings.fields.agentLevelShort.read": "The Agent sees it; only your team fills it",
5844
+ "omnichannel.settings.fields.agentLevelShort.collect": "The Agent saves it but never sees it",
5845
+ "omnichannel.settings.fields.agentLevelShort.fill": "The Agent sees it and saves it",
5846
+ "omnichannel.settings.fields.preview.label": "Preview",
5847
+ "omnichannel.settings.fields.preview.inDetails": "In Details, beside a chat",
5848
+ "omnichannel.settings.fields.preview.inChat": "In a chat with the Agent",
5849
+ "omnichannel.settings.fields.preview.unnamed": "This field",
5850
+ "omnichannel.settings.fields.preview.choose": "Choose",
5851
+ "omnichannel.settings.fields.preview.sample.text": "An answer",
5852
+ "omnichannel.settings.fields.preview.sample.number": "3",
5853
+ "omnichannel.settings.fields.preview.sample.date": "1 March",
5854
+ "omnichannel.settings.fields.preview.chat.hidden.note": "The Agent isn't told about {name}. Only your team sees and fills it under Details.",
5855
+ "omnichannel.settings.fields.preview.chat.read.customer": "What's my {name}?",
5856
+ "omnichannel.settings.fields.preview.chat.read.agent": "Your {name} is {value}.",
5857
+ "omnichannel.settings.fields.preview.chat.read.note": "The Agent reads {name} to answer and doesn't ask for it again. Only your team changes it.",
5858
+ "omnichannel.settings.fields.preview.chat.collect.customer": "My {name} is {value}.",
5859
+ "omnichannel.settings.fields.preview.chat.collect.agent": "Thanks, I've saved that.",
5860
+ "omnichannel.settings.fields.preview.chat.collect.note": "The Agent saves what the customer says and knows it's filled, but never sees the value, so it can't repeat it.",
5861
+ "omnichannel.settings.fields.preview.chat.fill.customer": "My {name} is {value}.",
5862
+ "omnichannel.settings.fields.preview.chat.fill.agent": "Thanks, I've noted {value} as your {name}.",
5863
+ "omnichannel.settings.fields.preview.chat.fill.note": "The Agent sees {name} and saves what the customer tells it.",
5835
5864
  "omnichannel.settings.fields.builtIn.title": "Built-in details",
5836
5865
  "omnichannel.settings.fields.builtIn.intro": "Every customer has these details as well as the fields you add. What the Agent can do with them is fixed.",
5837
5866
  "omnichannel.settings.fields.builtIn.name": "Name",
@@ -6678,26 +6707,27 @@ var en_default = {
6678
6707
  "omnichannel.members.confirm.cancel": "Cancel",
6679
6708
  "omnichannel.members.confirm.action": "Take away role",
6680
6709
  "omnichannel.teams.title": "Teams",
6681
- "omnichannel.teams.intro": "Group the people who answer chats into teams. A person can be in more than one team.",
6710
+ "omnichannel.teams.intro": "Group the people who answer chats. The Agent reads what each team handles to choose where a handover goes.",
6682
6711
  "omnichannel.teams.overAgentLimit": "More than {count} teams have members. The Agent sees only the first {count} by name when it hands a chat over; a handover that fits another team goes to the channel's default team.",
6683
6712
  "omnichannel.teams.new": "New team",
6684
6713
  "omnichannel.teams.empty": "No teams yet.",
6685
- "omnichannel.teams.column.name": "Name",
6686
- "omnichannel.teams.column.members": "Members",
6687
- "omnichannel.teams.noMembers": "No members",
6714
+ "omnichannel.teams.emptyBody": "Create a team, add the people who answer its chats and say what it handles.",
6715
+ "omnichannel.teams.noMembersQueue": "No members \xB7 its chats wait in the general queue",
6716
+ "omnichannel.teams.onlineOf": "{online} of {count} online",
6717
+ "omnichannel.teams.nobodyOnline": "Nobody online",
6718
+ "omnichannel.teams.footnote": "A person can be in more than one team. Each channel's default team takes handovers the Agent can't place; set it in Channels.",
6688
6719
  "omnichannel.teams.formerMember": "Someone no longer in this workspace",
6689
6720
  "omnichannel.teams.dialog.createTitle": "New team",
6690
- "omnichannel.teams.dialog.editTitle": "Edit team",
6691
6721
  "omnichannel.teams.dialog.description": "Name the team and choose the people in it.",
6692
6722
  "omnichannel.teams.dialog.name": "Name",
6693
- "omnichannel.teams.dialog.handles": "Handles",
6723
+ "omnichannel.teams.dialog.handles": "What it handles",
6694
6724
  "omnichannel.teams.dialog.handlesPlaceholder": "Billing, refunds, invoices",
6695
6725
  "omnichannel.teams.dialog.handlesHint": "What this team handles. The Agent reads it to choose the team when it hands a chat over.",
6696
6726
  "omnichannel.teams.dialog.nameRequired": "Enter a name.",
6697
6727
  "omnichannel.teams.dialog.nameTaken": "A team with this name already exists.",
6698
6728
  "omnichannel.teams.dialog.members": "Members",
6699
6729
  "omnichannel.teams.dialog.selected": "{count} selected",
6700
- "omnichannel.teams.dialog.searchPeople": "Search people",
6730
+ "omnichannel.teams.dialog.searchPeople": "Search by name or email",
6701
6731
  "omnichannel.teams.dialog.noPeople": "No people found.",
6702
6732
  "omnichannel.teams.save": "Save",
6703
6733
  "omnichannel.teams.saving": "Saving\u2026",
@@ -6706,22 +6736,36 @@ var en_default = {
6706
6736
  "omnichannel.teams.saved": "Team saved",
6707
6737
  "omnichannel.teams.saveError": "The team could not be saved. Try again.",
6708
6738
  "omnichannel.teams.delete": "Delete",
6709
- "omnichannel.teams.deleteLabel": "Delete {name}",
6710
6739
  "omnichannel.teams.deleteTitle": "Delete {name}?",
6711
6740
  "omnichannel.teams.deleteDescription": "Chats waiting for this team go to the general queue. The people in it stay in the workspace.",
6712
6741
  "omnichannel.teams.deleted": "Team deleted",
6713
6742
  "omnichannel.teams.deleteError": "The team could not be deleted. Try again.",
6714
- "omnichannel.teams.column.routing": "Routing",
6715
6743
  "omnichannel.teams.routingWithCapacity": "{method} \xB7 up to {count} chats each",
6716
- "omnichannel.teams.dialog.routing": "Routing method",
6744
+ "omnichannel.teams.dialog.routing": "Offer each chat",
6717
6745
  "omnichannel.teams.routing.least_loaded": "Least loaded",
6718
6746
  "omnichannel.teams.routing.round_robin": "Round robin",
6719
6747
  "omnichannel.teams.routing.least_loadedHint": "Each chat goes to the Online member with the fewest open chats.",
6720
6748
  "omnichannel.teams.routing.round_robinHint": "Chats go to Online members in turn.",
6721
- "omnichannel.teams.dialog.capacity": "Capacity",
6749
+ "omnichannel.teams.dialog.capacity": "Open chats per person",
6722
6750
  "omnichannel.teams.dialog.noLimit": "No limit",
6723
- "omnichannel.teams.dialog.capacityHint": "The most open chats each member takes. Further chats wait until a member has room.",
6751
+ "omnichannel.teams.dialog.capacityHint": "1 to 100, or empty for no limit.",
6724
6752
  "omnichannel.teams.dialog.capacityInvalid": "Enter a whole number from 1 to 100, or leave it empty for no limit.",
6753
+ "omnichannel.teams.create": "Create team",
6754
+ "omnichannel.teams.dialog.deleteTeam": "Delete team",
6755
+ "omnichannel.teams.dialog.offer.least_loaded": "To the least busy",
6756
+ "omnichannel.teams.dialog.offer.round_robin": "In turn",
6757
+ "omnichannel.teams.dialog.nobodySelected": "Nobody selected",
6758
+ "omnichannel.teams.dialog.show": "Show",
6759
+ "omnichannel.teams.dialog.showEveryone": "Everyone",
6760
+ "omnichannel.teams.dialog.showTeam": "In this team",
6761
+ "omnichannel.teams.dialog.person": "Person",
6762
+ "omnichannel.teams.dialog.now": "Now",
6763
+ "omnichannel.teams.dialog.openChats": "Open chats",
6764
+ "omnichannel.teams.dialog.nobodyInTeam": "Nobody in this team yet.",
6765
+ "omnichannel.teams.dialog.notOpened": "Hasn't opened Omnichannel yet",
6766
+ "omnichannel.teams.dialog.presenceError": "Who is Online and their open chats could not be loaded.",
6767
+ "omnichannel.teams.dialog.openChatsCount": "{count} open chats",
6768
+ "omnichannel.teams.dialog.openChatsOne": "1 open chat",
6725
6769
  "omnichannel.supervisorOnly.title": "Only Supervisors can open this page",
6726
6770
  "omnichannel.supervisorOnly.body": "Ask a workspace owner or admin if you need it.",
6727
6771
  "omnichannel.unavailable.title": "Omnichannel is not available here",
@@ -6827,7 +6871,7 @@ var en_default = {
6827
6871
  "omnichannel.settings.conflict.merged": "Their changes to {sections} are now in the form, so saving keeps them.",
6828
6872
  "omnichannel.settings.conflict.survey": "Another Supervisor saved the survey while you were editing. Your changes are still here: Replace theirs saves yours over their version, and Discard shows theirs.",
6829
6873
  "omnichannel.settings.section.lifecycle": "Lifecycle",
6830
- "omnichannel.settings.lifecycle.intro": "Where each customer stands as a lead, in the order a lead moves through. Your team moves customers from stage to stage; new customers start in the default stage.",
6874
+ "omnichannel.settings.lifecycle.intro": "The stages a lead moves through, in order. Drag a stage to reorder it; new customers start in the default stage.",
6831
6875
  "omnichannel.settings.lifecycle.enabled": "Track leads by stage",
6832
6876
  "omnichannel.settings.lifecycle.enabledHint": "Shows each customer's stage in the inbox and Reports, and lists the leads that need a follow-up. Turning it off keeps your stages and every customer's stage.",
6833
6877
  "omnichannel.settings.lifecycle.turnedOn": "Lifecycle stages are on",
@@ -6867,8 +6911,14 @@ var en_default = {
6867
6911
  "omnichannel.settings.lifecycle.followUpAfter": "Follow up after {count} days",
6868
6912
  "omnichannel.settings.lifecycle.customersOne": "1 customer",
6869
6913
  "omnichannel.settings.lifecycle.customersOther": "{count} customers",
6870
- "omnichannel.settings.lifecycle.moveUp": "Move {name} up",
6871
- "omnichannel.settings.lifecycle.moveDown": "Move {name} down",
6914
+ "omnichannel.settings.lifecycle.dragLabel": "Drag to reorder {name}",
6915
+ "omnichannel.settings.lifecycle.dragInstructions": "To pick up a stage, press Space or Enter. Move it with the arrow keys, then press Space or Enter to drop it, or Escape to cancel.",
6916
+ "omnichannel.settings.lifecycle.reordered": "Order saved: {name} is now {position} of {count}",
6917
+ "omnichannel.settings.lifecycle.undo": "Undo",
6918
+ "omnichannel.settings.lifecycle.announce.pickedUp": "Picked up {name}, position {position} of {count}.",
6919
+ "omnichannel.settings.lifecycle.announce.over": "{name} moved to position {position} of {count}.",
6920
+ "omnichannel.settings.lifecycle.announce.dropped": "{name} dropped at position {position} of {count}.",
6921
+ "omnichannel.settings.lifecycle.announce.cancelled": "Moving {name} cancelled.",
6872
6922
  "omnichannel.settings.lifecycle.reorderFailed": "Couldn't move the stage",
6873
6923
  "omnichannel.settings.lifecycle.deleteTitle": "Delete \u201C{name}\u201D?",
6874
6924
  "omnichannel.settings.lifecycle.deleteBody": "No customer is in this stage. Customers' history keeps it.",
@@ -8205,6 +8255,7 @@ Use Add a rule to build them from lists.`,
8205
8255
  "knowledgeApp.myFiles.question": "Question",
8206
8256
  "knowledgeApp.myFiles.questionNotKept": "Question not available",
8207
8257
  "knowledgeApp.myFiles.fromTheAnswer": "From this file",
8258
+ "knowledgeApp.myFiles.showInFile": "Show in file",
8208
8259
  "knowledgeApp.myFiles.noSentences": "The answer didn't cite this file.",
8209
8260
  "knowledgeApp.myFiles.cited": "Cited at",
8210
8261
  "knowledgeApp.myFiles.openFile": "Open file",
@@ -9711,6 +9762,7 @@ var id_default = {
9711
9762
  "admin.knowledge.traces.section.setup": "Pengaturan",
9712
9763
  "admin.knowledge.traces.nothingAsked": "Tidak ada: model menjawab",
9713
9764
  "admin.knowledge.traces.noneCited": "Tidak ada sumber yang dikutip.",
9765
+ "admin.knowledge.traces.citedWords": "Kata yang dikutip: {found} ditemukan, {weak} lemah, {missing} tidak ditemukan di file",
9714
9766
  "admin.knowledge.traces.search": "Cari pertanyaan\u2026",
9715
9767
  "admin.knowledge.traces.questionNotKept": "Pertanyaan tidak disimpan",
9716
9768
  "admin.knowledge.traces.noMatch": "Tidak ada jejak yang cocok dengan pencarian dan filter ini.",
@@ -10918,6 +10970,10 @@ var id_default = {
10918
10970
  "knowledgeApp.preview.openInSource": "Buka di sumber",
10919
10971
  "knowledgeApp.preview.download": "Unduh",
10920
10972
  "knowledgeApp.preview.close": "Tutup pratinjau",
10973
+ "knowledgeApp.preview.citationNotFound": "Kata-kata persis ini tidak ditemukan di file ini.",
10974
+ "knowledgeApp.preview.citedWords": "Kata yang dikutip jawaban, sumber {n}",
10975
+ "knowledgeApp.preview.citedWordsUnnumbered": "Kata yang dikutip jawaban",
10976
+ "knowledgeApp.preview.citedInImage": "Kata yang dikutip ada di dalam gambar, jadi tidak dapat disorot di sini. Bunyinya:",
10921
10977
  "knowledgeApp.preview.sheets": "Sheet",
10922
10978
  "knowledgeApp.preview.sheetCut": "Menampilkan 1.000 baris pertama. Unduh file untuk melihat semuanya.",
10923
10979
  "knowledgeApp.preview.unavailableTitle": "Pratinjau tidak tersedia",
@@ -14051,6 +14107,30 @@ var id_default = {
14051
14107
  "omnichannel.settings.fields.agentLevelMarks.read": "Dibaca Agent",
14052
14108
  "omnichannel.settings.fields.agentLevelMarks.collect": "Diisi Agent",
14053
14109
  "omnichannel.settings.fields.agentLevelMarks.fill": "Dibaca dan diisi Agent",
14110
+ "omnichannel.settings.fields.editNamed": "Edit {name}",
14111
+ "omnichannel.settings.fields.deleteField": "Hapus field",
14112
+ "omnichannel.settings.fields.agentLevelShort.hidden": "Hanya tim Anda yang melihat dan mengisinya",
14113
+ "omnichannel.settings.fields.agentLevelShort.read": "Agent melihatnya; hanya tim Anda yang mengisinya",
14114
+ "omnichannel.settings.fields.agentLevelShort.collect": "Agent menyimpannya tetapi tidak pernah melihatnya",
14115
+ "omnichannel.settings.fields.agentLevelShort.fill": "Agent melihat dan menyimpannya",
14116
+ "omnichannel.settings.fields.preview.label": "Pratinjau",
14117
+ "omnichannel.settings.fields.preview.inDetails": "Di Detail, di samping chat",
14118
+ "omnichannel.settings.fields.preview.inChat": "Dalam chat dengan Agent",
14119
+ "omnichannel.settings.fields.preview.unnamed": "Field ini",
14120
+ "omnichannel.settings.fields.preview.choose": "Pilih",
14121
+ "omnichannel.settings.fields.preview.sample.text": "Sebuah jawaban",
14122
+ "omnichannel.settings.fields.preview.sample.number": "3",
14123
+ "omnichannel.settings.fields.preview.sample.date": "1 Maret",
14124
+ "omnichannel.settings.fields.preview.chat.hidden.note": "Agent tidak diberi tahu tentang {name}. Hanya tim Anda yang melihat dan mengisinya di Detail.",
14125
+ "omnichannel.settings.fields.preview.chat.read.customer": "Apa {name} saya?",
14126
+ "omnichannel.settings.fields.preview.chat.read.agent": "{name} Anda adalah {value}.",
14127
+ "omnichannel.settings.fields.preview.chat.read.note": "Agent membaca {name} untuk menjawab dan tidak menanyakannya lagi. Hanya tim Anda yang mengubahnya.",
14128
+ "omnichannel.settings.fields.preview.chat.collect.customer": "{name} saya {value}.",
14129
+ "omnichannel.settings.fields.preview.chat.collect.agent": "Terima kasih, sudah saya simpan.",
14130
+ "omnichannel.settings.fields.preview.chat.collect.note": "Agent menyimpan yang dikatakan pelanggan dan tahu field sudah terisi, tetapi tidak pernah melihat nilainya, jadi tidak bisa mengulanginya.",
14131
+ "omnichannel.settings.fields.preview.chat.fill.customer": "{name} saya {value}.",
14132
+ "omnichannel.settings.fields.preview.chat.fill.agent": "Terima kasih, {value} sudah saya catat sebagai {name} Anda.",
14133
+ "omnichannel.settings.fields.preview.chat.fill.note": "Agent melihat {name} dan menyimpan yang diberitahukan pelanggan.",
14054
14134
  "omnichannel.settings.fields.builtIn.title": "Data bawaan",
14055
14135
  "omnichannel.settings.fields.builtIn.intro": "Setiap pelanggan punya data ini selain data yang Anda tambahkan. Apa yang bisa dilakukan Agent dengan data ini sudah tetap.",
14056
14136
  "omnichannel.settings.fields.builtIn.name": "Nama",
@@ -14897,26 +14977,27 @@ var id_default = {
14897
14977
  "omnichannel.members.confirm.cancel": "Batal",
14898
14978
  "omnichannel.members.confirm.action": "Cabut peran",
14899
14979
  "omnichannel.teams.title": "Tim",
14900
- "omnichannel.teams.intro": "Kelompokkan orang yang menjawab chat ke dalam tim. Satu orang bisa berada di lebih dari satu tim.",
14980
+ "omnichannel.teams.intro": "Kelompokkan orang yang menjawab chat. Agent membaca apa yang ditangani setiap tim untuk memilih ke mana chat dialihkan.",
14901
14981
  "omnichannel.teams.overAgentLimit": "Lebih dari {count} tim memiliki anggota. Agent hanya melihat {count} tim pertama menurut nama saat menyerahkan chat; chat yang cocok untuk tim lain masuk ke tim default channel.",
14902
14982
  "omnichannel.teams.new": "Tim baru",
14903
14983
  "omnichannel.teams.empty": "Belum ada tim.",
14904
- "omnichannel.teams.column.name": "Nama",
14905
- "omnichannel.teams.column.members": "Anggota",
14906
- "omnichannel.teams.noMembers": "Tidak ada anggota",
14984
+ "omnichannel.teams.emptyBody": "Buat tim, tambahkan orang yang menjawab chat-nya, dan tulis apa yang ditanganinya.",
14985
+ "omnichannel.teams.noMembersQueue": "Tidak ada anggota \xB7 chat-nya menunggu di antrean umum",
14986
+ "omnichannel.teams.onlineOf": "{online} dari {count} online",
14987
+ "omnichannel.teams.nobodyOnline": "Tidak ada yang online",
14988
+ "omnichannel.teams.footnote": "Satu orang bisa berada di lebih dari satu tim. Tim default setiap channel menerima pengalihan yang tidak bisa ditempatkan Agent; atur di Channels.",
14907
14989
  "omnichannel.teams.formerMember": "Seseorang yang tidak lagi ada di workspace ini",
14908
14990
  "omnichannel.teams.dialog.createTitle": "Tim baru",
14909
- "omnichannel.teams.dialog.editTitle": "Ubah tim",
14910
14991
  "omnichannel.teams.dialog.description": "Beri nama tim dan pilih orang di dalamnya.",
14911
14992
  "omnichannel.teams.dialog.name": "Nama",
14912
- "omnichannel.teams.dialog.handles": "Menangani",
14993
+ "omnichannel.teams.dialog.handles": "Yang ditangani",
14913
14994
  "omnichannel.teams.dialog.handlesPlaceholder": "Tagihan, refund, invoice",
14914
14995
  "omnichannel.teams.dialog.handlesHint": "Apa yang ditangani tim ini. Agent membacanya untuk memilih tim saat menyerahkan chat.",
14915
14996
  "omnichannel.teams.dialog.nameRequired": "Masukkan nama.",
14916
14997
  "omnichannel.teams.dialog.nameTaken": "Tim dengan nama ini sudah ada.",
14917
14998
  "omnichannel.teams.dialog.members": "Anggota",
14918
14999
  "omnichannel.teams.dialog.selected": "{count} dipilih",
14919
- "omnichannel.teams.dialog.searchPeople": "Cari orang",
15000
+ "omnichannel.teams.dialog.searchPeople": "Cari berdasarkan nama atau email",
14920
15001
  "omnichannel.teams.dialog.noPeople": "Tidak ada orang yang ditemukan.",
14921
15002
  "omnichannel.teams.save": "Simpan",
14922
15003
  "omnichannel.teams.saving": "Menyimpan\u2026",
@@ -14925,22 +15006,36 @@ var id_default = {
14925
15006
  "omnichannel.teams.saved": "Tim disimpan",
14926
15007
  "omnichannel.teams.saveError": "Tim tidak dapat disimpan. Coba lagi.",
14927
15008
  "omnichannel.teams.delete": "Hapus",
14928
- "omnichannel.teams.deleteLabel": "Hapus {name}",
14929
15009
  "omnichannel.teams.deleteTitle": "Hapus {name}?",
14930
15010
  "omnichannel.teams.deleteDescription": "Chat yang menunggu tim ini masuk ke antrean umum. Orang di dalamnya tetap ada di workspace.",
14931
15011
  "omnichannel.teams.deleted": "Tim dihapus",
14932
15012
  "omnichannel.teams.deleteError": "Tim tidak dapat dihapus. Coba lagi.",
14933
- "omnichannel.teams.column.routing": "Routing",
14934
15013
  "omnichannel.teams.routingWithCapacity": "{method} \xB7 maks. {count} chat per orang",
14935
- "omnichannel.teams.dialog.routing": "Metode routing",
15014
+ "omnichannel.teams.dialog.routing": "Tawarkan setiap chat",
14936
15015
  "omnichannel.teams.routing.least_loaded": "Beban paling sedikit",
14937
15016
  "omnichannel.teams.routing.round_robin": "Bergiliran",
14938
15017
  "omnichannel.teams.routing.least_loadedHint": "Setiap chat diberikan ke anggota Online dengan chat terbuka paling sedikit.",
14939
15018
  "omnichannel.teams.routing.round_robinHint": "Chat diberikan ke anggota Online secara bergiliran.",
14940
- "omnichannel.teams.dialog.capacity": "Kapasitas",
15019
+ "omnichannel.teams.dialog.capacity": "Chat terbuka per orang",
14941
15020
  "omnichannel.teams.dialog.noLimit": "Tanpa batas",
14942
- "omnichannel.teams.dialog.capacityHint": "Jumlah chat terbuka paling banyak untuk setiap anggota. Chat berikutnya menunggu sampai ada anggota yang kosong.",
15021
+ "omnichannel.teams.dialog.capacityHint": "1 sampai 100, atau kosongkan untuk tanpa batas.",
14943
15022
  "omnichannel.teams.dialog.capacityInvalid": "Masukkan bilangan bulat dari 1 sampai 100, atau kosongkan untuk tanpa batas.",
15023
+ "omnichannel.teams.create": "Buat tim",
15024
+ "omnichannel.teams.dialog.deleteTeam": "Hapus tim",
15025
+ "omnichannel.teams.dialog.offer.least_loaded": "Ke yang paling longgar",
15026
+ "omnichannel.teams.dialog.offer.round_robin": "Bergiliran",
15027
+ "omnichannel.teams.dialog.nobodySelected": "Belum ada yang dipilih",
15028
+ "omnichannel.teams.dialog.show": "Tampilkan",
15029
+ "omnichannel.teams.dialog.showEveryone": "Semua orang",
15030
+ "omnichannel.teams.dialog.showTeam": "Di tim ini",
15031
+ "omnichannel.teams.dialog.person": "Orang",
15032
+ "omnichannel.teams.dialog.now": "Sekarang",
15033
+ "omnichannel.teams.dialog.openChats": "Chat terbuka",
15034
+ "omnichannel.teams.dialog.nobodyInTeam": "Belum ada orang di tim ini.",
15035
+ "omnichannel.teams.dialog.notOpened": "Belum pernah membuka Omnichannel",
15036
+ "omnichannel.teams.dialog.presenceError": "Status online dan chat terbuka tidak dapat dimuat.",
15037
+ "omnichannel.teams.dialog.openChatsCount": "{count} chat terbuka",
15038
+ "omnichannel.teams.dialog.openChatsOne": "1 chat terbuka",
14944
15039
  "omnichannel.supervisorOnly.title": "Hanya Supervisor yang dapat membuka halaman ini",
14945
15040
  "omnichannel.supervisorOnly.body": "Minta kepada pemilik atau admin ruang kerja jika Anda memerlukannya.",
14946
15041
  "omnichannel.unavailable.title": "Omnichannel tidak tersedia di sini",
@@ -15046,7 +15141,7 @@ var id_default = {
15046
15141
  "omnichannel.settings.conflict.merged": "Perubahan mereka pada {sections} kini ada di formulir, jadi menyimpan tetap mempertahankannya.",
15047
15142
  "omnichannel.settings.conflict.survey": "Supervisor lain menyimpan survei saat Anda mengedit. Perubahan Anda masih ada: Ganti milik mereka menyimpan milik Anda di atas versi mereka, dan Buang menampilkan milik mereka.",
15048
15143
  "omnichannel.settings.section.lifecycle": "Tahapan pelanggan",
15049
- "omnichannel.settings.lifecycle.intro": "Posisi setiap pelanggan sebagai prospek, sesuai urutan yang dilalui prospek. Tim memindahkan pelanggan dari satu tahap ke tahap lain; pelanggan baru dimulai di tahap default.",
15144
+ "omnichannel.settings.lifecycle.intro": "Tahap yang dilalui prospek, sesuai urutan. Seret tahap untuk mengubah urutannya; pelanggan baru dimulai di tahap default.",
15050
15145
  "omnichannel.settings.lifecycle.enabled": "Lacak prospek per tahap",
15051
15146
  "omnichannel.settings.lifecycle.enabledHint": "Menampilkan tahap setiap pelanggan di Kotak Masuk dan Laporan, serta mendaftar prospek yang perlu ditindaklanjuti. Jika dimatikan, tahap Anda dan tahap setiap pelanggan tetap tersimpan.",
15052
15147
  "omnichannel.settings.lifecycle.turnedOn": "Tahapan pelanggan aktif",
@@ -15086,8 +15181,14 @@ var id_default = {
15086
15181
  "omnichannel.settings.lifecycle.followUpAfter": "Tindak lanjuti setelah {count} hari",
15087
15182
  "omnichannel.settings.lifecycle.customersOne": "1 pelanggan",
15088
15183
  "omnichannel.settings.lifecycle.customersOther": "{count} pelanggan",
15089
- "omnichannel.settings.lifecycle.moveUp": "Naikkan {name}",
15090
- "omnichannel.settings.lifecycle.moveDown": "Turunkan {name}",
15184
+ "omnichannel.settings.lifecycle.dragLabel": "Seret untuk mengurutkan ulang {name}",
15185
+ "omnichannel.settings.lifecycle.dragInstructions": "Untuk mengambil tahap, tekan Spasi atau Enter. Pindahkan dengan tombol panah, lalu tekan Spasi atau Enter untuk meletakkannya, atau Escape untuk membatalkan.",
15186
+ "omnichannel.settings.lifecycle.reordered": "Urutan disimpan: {name} sekarang di posisi {position} dari {count}",
15187
+ "omnichannel.settings.lifecycle.undo": "Urungkan",
15188
+ "omnichannel.settings.lifecycle.announce.pickedUp": "{name} diambil, posisi {position} dari {count}.",
15189
+ "omnichannel.settings.lifecycle.announce.over": "{name} dipindah ke posisi {position} dari {count}.",
15190
+ "omnichannel.settings.lifecycle.announce.dropped": "{name} diletakkan di posisi {position} dari {count}.",
15191
+ "omnichannel.settings.lifecycle.announce.cancelled": "Pemindahan {name} dibatalkan.",
15091
15192
  "omnichannel.settings.lifecycle.reorderFailed": "Tidak dapat memindahkan tahap",
15092
15193
  "omnichannel.settings.lifecycle.deleteTitle": "Hapus \u201C{name}\u201D?",
15093
15194
  "omnichannel.settings.lifecycle.deleteBody": "Tidak ada pelanggan di tahap ini. Riwayat pelanggan tetap menyimpannya.",
@@ -16419,6 +16520,7 @@ var id_default = {
16419
16520
  "knowledgeApp.myFiles.question": "Pertanyaan",
16420
16521
  "knowledgeApp.myFiles.questionNotKept": "Pertanyaan tidak tersedia",
16421
16522
  "knowledgeApp.myFiles.fromTheAnswer": "Dari file ini",
16523
+ "knowledgeApp.myFiles.showInFile": "Tampilkan di file",
16422
16524
  "knowledgeApp.myFiles.noSentences": "Jawaban tidak mengutip file ini.",
16423
16525
  "knowledgeApp.myFiles.cited": "Dikutip di",
16424
16526
  "knowledgeApp.myFiles.openFile": "Buka file",
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { requestPaneFocus, useArtifacts, usePlugins, useCanvasStore, useArtifactStore, useChatOverviewStore, useSourcesEnrichment, sourceKind, useCitationViewer, resolveSourceDisplay, extractDomain, useCitedDocument, canvasId, StudioDisplayIcon, LayoutDashboardIcon, useAgentPanelStore, SourceFavicon, dedup, useArtifactFileObjectUrl, resolveArtifactIconFormat, artifactFormatIcon, avatarMotionForStream, AGENT_AVATAR_SIZE, getFileCategory, FileThumbnail, formatFileSize, usePathname, artifactFormatSubtitle, artifactCategory, Input, MobileScreenSheet, TooltipTrigger, Tooltip, useChatCapabilities, TooltipContent, processMessageParts, GridSpinner, PanelEdgeRing, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, extractCitationsFromSteps, resolvePluginLanguage, getMessageDisplayTimestampValue } from './chunk-CQFY4GBK.js';
3
- import { MagnifyingGlassIcon, Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-RQSMCGBR.js';
4
- import { useTranslation, useIsMobile } from './chunk-LDHGDCPF.js';
2
+ import { requestPaneFocus, useArtifacts, usePlugins, useCanvasStore, useArtifactStore, useChatOverviewStore, useSourcesEnrichment, sourceKind, useCitationViewer, resolveSourceDisplay, extractDomain, useCitedDocument, canvasId, StudioDisplayIcon, LayoutDashboardIcon, useAgentPanelStore, SourceFavicon, dedup, useArtifactFileObjectUrl, resolveArtifactIconFormat, artifactFormatIcon, avatarMotionForStream, AGENT_AVATAR_SIZE, getFileCategory, FileThumbnail, formatFileSize, usePathname, artifactFormatSubtitle, artifactCategory, Input, MobileScreenSheet, TooltipTrigger, Tooltip, useChatCapabilities, TooltipContent, processMessageParts, GridSpinner, PanelEdgeRing, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, extractCitationsFromSteps, resolvePluginLanguage, getMessageDisplayTimestampValue } from './chunk-IOSRUVWE.js';
3
+ import { MagnifyingGlassIcon, Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-OONQIDAU.js';
4
+ import { useTranslation, useIsMobile } from './chunk-4Q6CR67S.js';
5
5
  import { Collapsible, CollapsibleTrigger, CollapsibleContent, Shimmer, HoverCard, HoverCardTrigger, HoverCardContent } from './chunk-K7AIK7TA.js';
6
6
  import { ChevronDownMediumIcon, ScrollArea, Skeleton, Button } from './chunk-UWKO24VT.js';
7
7
  import { Dialog, DialogContent, DialogHeader, DialogTitle, CrossMediumIcon } from './chunk-37WYG6VG.js';
@@ -9635,7 +9635,7 @@ function SourceRow({
9635
9635
  favicon: null
9636
9636
  };
9637
9637
  const label = extractDomain(citation.url) || citation.url;
9638
- const document2 = useCitedDocument(citation.url, title);
9638
+ const document2 = useCitedDocument(citation.url, title, citation.content ?? null);
9639
9639
  const body = /* @__PURE__ */ jsxs(Fragment, { children: [
9640
9640
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
9641
9641
  /* @__PURE__ */ jsx(SourceFavicon, { favicon, domain: label, size: "sm", kind }),
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { useTranslation } from './chunk-LDHGDCPF.js';
2
+ import { useTranslation } from './chunk-4Q6CR67S.js';
3
3
  import { Skeleton } from './chunk-UWKO24VT.js';
4
4
  import { useRef, useState, useEffect } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
3
- import { MagnifyingGlassIcon, Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from './chunk-RQSMCGBR.js';
4
- import { useIsMobile, useTranslation } from './chunk-LDHGDCPF.js';
3
+ import { MagnifyingGlassIcon, Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from './chunk-OONQIDAU.js';
4
+ import { useIsMobile, useTranslation } from './chunk-4Q6CR67S.js';
5
5
  import { ToolCallItem, ProcessorIcon } from './chunk-R3ONYPUB.js';
6
6
  import { describeToolRow, toolKindLabel, getToolMeta, Shimmer, Collapse, ToolGroupReasoningItem, SkillToolItem, DeviceDesktopIcon, WorldSearchIcon, FileTextIcon, useStreamdownPlugins, CircleXIcon, STREAMDOWN_LINK_SAFETY, Folder1Icon, AppIconFrame, AppIcon, Collapsible, CollapsibleTrigger, CollapsibleContent, SquareArrowTopRightIcon, Icon } from './chunk-K7AIK7TA.js';
7
7
  import { ChevronDownMediumIcon, Button, Skeleton, buttonVariants } from './chunk-UWKO24VT.js';
@@ -11862,7 +11862,7 @@ function AlertDialogOverlay({
11862
11862
  {
11863
11863
  "data-slot": "alert-dialog-overlay",
11864
11864
  className: cn(
11865
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-surface-inset-deep/50",
11865
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-100 bg-surface-inset-deep/50",
11866
11866
  className
11867
11867
  ),
11868
11868
  ...props
@@ -11883,7 +11883,7 @@ function AlertDialogContent({
11883
11883
  {
11884
11884
  "data-slot": "alert-dialog-content",
11885
11885
  className: cn(
11886
- "bg-surface-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
11886
+ "bg-surface-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-100 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
11887
11887
  className
11888
11888
  ),
11889
11889
  ...props,
@@ -52498,7 +52498,7 @@ function FileThumbnail({
52498
52498
  return /* @__PURE__ */ jsx("div", { className: `${base} bg-blue-500/15`, children: /* @__PURE__ */ jsx(FileTextIcon, { className: `${iconClass} text-blue-400` }) });
52499
52499
  }
52500
52500
  }
52501
- function useCitedDocument(url, title) {
52501
+ function useCitedDocument(url, title, quote = null) {
52502
52502
  const { KnowledgeDocumentViewer: Viewer } = useChatHost();
52503
52503
  const [open, setOpen] = useState(false);
52504
52504
  const cited = url ? parseKnowledgeAppCitation(url) : null;
@@ -52511,6 +52511,7 @@ function useCitedDocument(url, title) {
52511
52511
  {
52512
52512
  documentId: cited.documentId,
52513
52513
  page: cited.page,
52514
+ quote,
52514
52515
  title,
52515
52516
  onClose: () => setOpen(false)
52516
52517
  }
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { usePlugins, useChatCapabilityEnabled, resolvePluginLanguage, renderPluginBlock, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, ActionMenu, useArtifactStore, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, useArtifact, resolveArtifactIconFormat, artifactFormatIcon, useArtifactFileObjectUrl, artifactFormatSubtitle, ChatImageLightbox, ArrowsShowIcon, FileDownloadIcon, useClient, processMessageParts, getMessageDisplayTimestampValue, getMessageCreatedAtMs, isApprovalRequested, extractCitationsFromSteps, useSourcesEnrichment, extractImagesFromSteps, dedupeImageResults, getDocumentStreamArtifacts, getToolOutput, useCanvasStore, ImageResultsGallery, MessageDecisionCards, useChatCapabilities, useOptionalWorkspaceContext, useCitationViewer, useCitedDocument, useChatOverviewStore, dedup, extractDomain, sourceKind, SourceFavicon, Input, exportDocumentPdf, FilePdfIcon, StudioDisplayIcon, WorldIcon, MessageStepsGroup, getToolState, getToolInput, getToolErrorText, useChatOptInEnabled, ArrowRightIcon, formatFileSize, FileThumbnail, attachmentFileOf, MobileScreenSheet, useAgentHistorySource, treatyErrorMessage, useRouter, useBasePath, useAgentPanelStore, AgentRoutineForm, getFileCategory, unwrap, unwrapData, unwrapDataDeep, formatDecisionTime, DecisionCard, LoaderIcon, formatRelativeTime, CircleCheckIcon, agentRoutineKeys, useOptionalAgentsContext, avatarMotionForStream, AGENT_AVATAR_SIZE } from './chunk-CQFY4GBK.js';
3
- import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, Popover, PopoverTrigger, PopoverContent } from './chunk-RQSMCGBR.js';
4
- import { useIsMobile, useTranslation } from './chunk-LDHGDCPF.js';
2
+ import { usePlugins, useChatCapabilityEnabled, resolvePluginLanguage, renderPluginBlock, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, ActionMenu, useArtifactStore, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, useArtifact, resolveArtifactIconFormat, artifactFormatIcon, useArtifactFileObjectUrl, artifactFormatSubtitle, ChatImageLightbox, ArrowsShowIcon, FileDownloadIcon, useClient, processMessageParts, getMessageDisplayTimestampValue, getMessageCreatedAtMs, isApprovalRequested, extractCitationsFromSteps, useSourcesEnrichment, extractImagesFromSteps, dedupeImageResults, getDocumentStreamArtifacts, getToolOutput, useCanvasStore, ImageResultsGallery, MessageDecisionCards, useChatCapabilities, useOptionalWorkspaceContext, useCitationViewer, useCitedDocument, useChatOverviewStore, dedup, extractDomain, sourceKind, SourceFavicon, Input, exportDocumentPdf, FilePdfIcon, StudioDisplayIcon, WorldIcon, MessageStepsGroup, getToolState, getToolInput, getToolErrorText, useChatOptInEnabled, ArrowRightIcon, formatFileSize, FileThumbnail, attachmentFileOf, MobileScreenSheet, useAgentHistorySource, treatyErrorMessage, useRouter, useBasePath, useAgentPanelStore, AgentRoutineForm, getFileCategory, unwrap, unwrapData, unwrapDataDeep, formatDecisionTime, DecisionCard, LoaderIcon, formatRelativeTime, CircleCheckIcon, agentRoutineKeys, useOptionalAgentsContext, avatarMotionForStream, AGENT_AVATAR_SIZE } from './chunk-IOSRUVWE.js';
3
+ import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, Popover, PopoverTrigger, PopoverContent } from './chunk-OONQIDAU.js';
4
+ import { useIsMobile, useTranslation } from './chunk-4Q6CR67S.js';
5
5
  import { MessageToolbar, MessageResponse, SquareArrowTopRightIcon, FileTextIcon, Shimmer, ClipboardIcon, Message, MessageContent, PencilIcon, deferDuringLayoutMotion, HoverCard, HoverCardTrigger, HoverCardContent, Collapse, Icon, CircleXIcon, ClockIcon } from './chunk-K7AIK7TA.js';
6
6
  import { ChevronDownMediumIcon, Button, ScrollArea, Skeleton } from './chunk-UWKO24VT.js';
7
7
  import { CrossMediumIcon } from './chunk-37WYG6VG.js';
@@ -1639,7 +1639,7 @@ function CitationChip({
1639
1639
  const [open, setOpen] = useState(false);
1640
1640
  const [previewing, setPreviewing] = useState(false);
1641
1641
  const viewer = useCitationViewer();
1642
- const document2 = useCitedDocument(href, title);
1642
+ const document2 = useCitedDocument(href, title, content ?? null);
1643
1643
  const preview = (hint) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
1644
1644
  /* @__PURE__ */ jsx(FileTextIcon, { className: "size-4 shrink-0 mt-0.5 text-muted-foreground" }),
1645
1645
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 space-y-1", children: [
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- import { Sheet, SheetContent, SheetHeader, SheetTitle, Popover, PopoverTrigger, PopoverContent, MagnifyingGlassIcon } from './chunk-RQSMCGBR.js';
3
- import { useIsMobile, useTranslation } from './chunk-LDHGDCPF.js';
2
+ import { Sheet, SheetContent, SheetHeader, SheetTitle, Popover, PopoverTrigger, PopoverContent, MagnifyingGlassIcon } from './chunk-OONQIDAU.js';
3
+ import { useIsMobile, useTranslation } from './chunk-4Q6CR67S.js';
4
4
  import { CrossMediumIcon } from './chunk-37WYG6VG.js';
5
5
  import { AgentAvatar } from './chunk-RCWVJD7G.js';
6
6
  import { cn, Checkmark1Icon } from './chunk-LGVMMBL3.js';
package/dist/header.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { ChatHeader, ChatHeaderActions } from './chunk-ZMDY2XNY.js';
3
- import './chunk-CQFY4GBK.js';
2
+ export { ChatHeader, ChatHeaderActions } from './chunk-6IMCJINQ.js';
3
+ import './chunk-IOSRUVWE.js';
4
4
  import './chunk-CWAOLMFS.js';
5
- import './chunk-RQSMCGBR.js';
6
- import './chunk-LDHGDCPF.js';
5
+ import './chunk-OONQIDAU.js';
6
+ import './chunk-4Q6CR67S.js';
7
7
  import './chunk-R3ONYPUB.js';
8
8
  import './chunk-K7AIK7TA.js';
9
9
  import './chunk-UWKO24VT.js';
package/dist/message.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { Message, Thinking } from './chunk-TJABFPOO.js';
3
- import './chunk-CQFY4GBK.js';
2
+ export { Message, Thinking } from './chunk-MLR6EJEV.js';
3
+ import './chunk-IOSRUVWE.js';
4
4
  import './chunk-CWAOLMFS.js';
5
- import './chunk-RQSMCGBR.js';
6
- import './chunk-LDHGDCPF.js';
5
+ import './chunk-OONQIDAU.js';
6
+ import './chunk-4Q6CR67S.js';
7
7
  import './chunk-R3ONYPUB.js';
8
8
  import './chunk-K7AIK7TA.js';
9
9
  import './chunk-UWKO24VT.js';
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-53DJ56SR.js';
3
- import './chunk-RQSMCGBR.js';
4
- import './chunk-LDHGDCPF.js';
2
+ export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-QAXXD7LQ.js';
3
+ import './chunk-OONQIDAU.js';
4
+ import './chunk-4Q6CR67S.js';
5
5
  import './chunk-37WYG6VG.js';
6
6
  import './chunk-RCWVJD7G.js';
7
7
  import './chunk-LGVMMBL3.js';
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { DeckNotesCard, deckOwnsArrowKeys } from './chunk-4FRTPVJT.js';
3
- import { resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb, ArtifactSkeleton } from './chunk-JYVL7J7E.js';
3
+ import { resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb, ArtifactSkeleton } from './chunk-EK6EYBTA.js';
4
4
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
5
- import { useTranslation, useIsMobile } from './chunk-LDHGDCPF.js';
5
+ import { useTranslation, useIsMobile } from './chunk-4Q6CR67S.js';
6
6
  import { Button, ChevronDownMediumIcon, ScrollArea } from './chunk-UWKO24VT.js';
7
7
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, ChevronRightIcon } from './chunk-C3HW5S2Z.js';
8
8
  import { cn } from './chunk-LGVMMBL3.js';
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { zoomPercent, DECK_ZOOM_LEVELS, ArtifactSkeleton, LazyThumb } from './chunk-JYVL7J7E.js';
2
+ import { zoomPercent, DECK_ZOOM_LEVELS, ArtifactSkeleton, LazyThumb } from './chunk-EK6EYBTA.js';
3
3
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
4
- import { useTranslation, useIsMobile } from './chunk-LDHGDCPF.js';
4
+ import { useTranslation, useIsMobile } from './chunk-4Q6CR67S.js';
5
5
  import { Button, ChevronDownMediumIcon, ScrollArea } from './chunk-UWKO24VT.js';
6
6
  import { ChevronRightIcon, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem } from './chunk-C3HW5S2Z.js';
7
7
  import { cn } from './chunk-LGVMMBL3.js';
@@ -282518,7 +282518,8 @@ function UniverWorkbookView({
282518
282518
  data: data2,
282519
282519
  onMutation,
282520
282520
  readOnly = false,
282521
- darkMode = false
282521
+ darkMode = false,
282522
+ focusRows = null
282522
282523
  }) {
282523
282524
  const hostRef = useRef(null);
282524
282525
  const onMutationRef = useRef(onMutation);
@@ -282527,6 +282528,7 @@ function UniverWorkbookView({
282527
282528
  onMutationRef.current = onMutation;
282528
282529
  }, [onMutation]);
282529
282530
  const univerRef = useRef(null);
282531
+ const [rendered, setRendered] = useState(false);
282530
282532
  useEffect(() => {
282531
282533
  const host = hostRef.current;
282532
282534
  if (!host) return;
@@ -282559,6 +282561,9 @@ function UniverWorkbookView({
282559
282561
  });
282560
282562
  univerRef.current = instance;
282561
282563
  const { univer, univerAPI } = instance;
282564
+ const drawn = univerAPI.addEvent(univerAPI.Event.LifeCycleChanged, ({ stage }) => {
282565
+ if (stage >= LifecycleStages.Rendered) setRendered(true);
282566
+ });
282562
282567
  const workbook = univerAPI.createWorkbook(
282563
282568
  data2
282564
282569
  );
@@ -282587,6 +282592,7 @@ function UniverWorkbookView({
282587
282592
  return () => {
282588
282593
  clearTimeout(armTimer);
282589
282594
  listener.dispose();
282595
+ drawn.dispose();
282590
282596
  univerRef.current = null;
282591
282597
  mount.remove();
282592
282598
  if (darkModeRef.current) {
@@ -282603,6 +282609,13 @@ function UniverWorkbookView({
282603
282609
  useEffect(() => {
282604
282610
  univerRef.current?.univerAPI.getActiveWorkbook()?.setEditable(!readOnly);
282605
282611
  }, [readOnly]);
282612
+ const [first2, last2] = focusRows ?? [-1, -1];
282613
+ useEffect(() => {
282614
+ const sheet = rendered && first2 >= 0 ? univerRef.current?.univerAPI.getActiveWorkbook()?.getActiveSheet() : null;
282615
+ if (!sheet) return;
282616
+ sheet.setActiveSelection(sheet.getRange(first2, 0, last2 - first2 + 1, sheet.getMaxColumns()));
282617
+ sheet.scrollToCell(first2, 0);
282618
+ }, [rendered, first2, last2]);
282606
282619
  return /* @__PURE__ */ jsx("div", { className: "univer-sheet-host flex h-full w-full min-h-0 flex-col", children: /* @__PURE__ */ jsx("div", { ref: hostRef, className: "min-h-0 flex-1" }) });
282607
282620
  }
282608
282621
  /*! Bundled license information:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontera-sdk/chat-ui",
3
- "version": "1.53.26",
3
+ "version": "1.53.28",
4
4
  "description": "Ready-made React components for embedding a Frontera agent conversation — message rendering, tool calls, artifacts and composer.",
5
5
  "keywords": [
6
6
  "frontera",
@@ -89,8 +89,8 @@
89
89
  },
90
90
  "dependencies": {
91
91
  "@elysiajs/eden": "^1.4.9",
92
- "@frontera-sdk/chat": "1.53.26",
93
- "@frontera-sdk/core": "1.53.26",
92
+ "@frontera-sdk/chat": "1.53.28",
93
+ "@frontera-sdk/core": "1.53.28",
94
94
  "@radix-ui/react-alert-dialog": "^1.1.23",
95
95
  "@radix-ui/react-collapsible": "^1.1.12",
96
96
  "@radix-ui/react-compose-refs": "^1.1.5",
File without changes