@frontera-sdk/chat-ui 1.53.1 → 1.53.3

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,22 +1,22 @@
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-DEHUNST4.js';
5
- import { NewSessionPrompt, keepCaretOnTap } from './chunk-GDJGXHPE.js';
6
- import { PendingCards } from './chunk-YH7IIRDX.js';
4
+ import { ArtifactSkeleton, resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb } from './chunk-ARPUGGVC.js';
5
+ import { NewSessionPrompt, keepCaretOnTap } from './chunk-Q4RXEJFV.js';
6
+ import { PendingCards } from './chunk-KKAA343W.js';
7
7
  import { themeToStyle } from './chunk-6HYPVNVA.js';
8
8
  import { useChatAgents } from './chunk-O6CVTMZJ.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-OHHRDREC.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-3RO4V24O.js';
14
- import { Textarea, artifactFormatIcon, BookIcon, useAgentRoster, ShieldCheckIcon, useArtifactStore, useCanvasStore, useChatOverviewStore, setSdkConversationPath, setSdkDarkMode, AgentsProvider, PluginProvider, WorkspaceProvider, TooltipProvider, getPersonConfirmation, isToolPart, getToolState, getToolName, getToolInput, sourceKind, extractDomain, CitationViewerContext, MarkdownRenderer, ConnectRunnerContext, usePathname, 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, 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-TER2I37Y.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-ORUNGXNT.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-PZUD5SUF.js';
14
+ import { Textarea, artifactFormatIcon, BookIcon, useAgentRoster, ShieldCheckIcon, useArtifactStore, useCanvasStore, useChatOverviewStore, setSdkConversationPath, setSdkDarkMode, AgentsProvider, PluginProvider, WorkspaceProvider, TooltipProvider, getPersonConfirmation, isToolPart, getToolState, getToolName, getToolInput, sourceKind, extractDomain, CitationViewerContext, MarkdownRenderer, ConnectRunnerContext, usePathname, 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, 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-O4OYVAY5.js';
15
15
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
16
16
  import { Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from './chunk-FZ3VSITY.js';
17
- import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-ZKB77W6J.js';
18
- import './chunk-M6GWBAO2.js';
19
- import { AppIcon, frontera_icon_default, PhotoIcon, Folder1Icon, FileTextIcon, describeToolRow, SquareArrowTopRightIcon, ClipboardIcon, getToolMeta, useStreamdownPlugins, AppIconFrame, MessageResponse } from './chunk-ITMOMVIV.js';
17
+ import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-IT6MY3JL.js';
18
+ import './chunk-KCNK4P2Z.js';
19
+ import { AppIcon, frontera_icon_default, PhotoIcon, Folder1Icon, FileTextIcon, describeToolRow, SquareArrowTopRightIcon, ClipboardIcon, getToolMeta, useStreamdownPlugins, AppIconFrame, MessageResponse } from './chunk-K5T7I553.js';
20
20
  import { Skeleton, Button, ScrollArea, ChevronDownMediumIcon, buttonVariants } from './chunk-UWKO24VT.js';
21
21
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, CrossMediumIcon, DialogFooter } from './chunk-2P4IEVOQ.js';
22
22
  import './chunk-CDTES65T.js';
@@ -42448,7 +42448,7 @@ function SheetEditor({ content, onSave, readOnly = false }) {
42448
42448
  );
42449
42449
  }
42450
42450
  var PdfDocumentViewInner = dynamic(
42451
- () => import('./pdf-document-view-inner-FWPAAO73.js'),
42451
+ () => import('./pdf-document-view-inner-4O4AMLWL.js'),
42452
42452
  {
42453
42453
  ssr: false,
42454
42454
  loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "pdf" })
@@ -43265,7 +43265,7 @@ function HtmlDeckView({ content, inChat = false, versionSlot }) {
43265
43265
  !present && inChat && /* @__PURE__ */ jsx(DeckEditPanel, { currentIndex: sel, currentHtml: slides[sel]?.html ?? "" })
43266
43266
  ] });
43267
43267
  }
43268
- var Inner = dynamic(() => import('./pdf-deck-view-inner-YA7G5U2C.js'), {
43268
+ var Inner = dynamic(() => import('./pdf-deck-view-inner-6FR5GK7I.js'), {
43269
43269
  ssr: false,
43270
43270
  loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "htmldeck" })
43271
43271
  });
@@ -64773,8 +64773,9 @@ function lower(terms) {
64773
64773
  function filterMentionGroups(groups, query, opts) {
64774
64774
  const q = query.trim();
64775
64775
  const kinds = opts?.kinds;
64776
+ const commands = opts?.commands !== false;
64776
64777
  const ranked = groups.map((g) => {
64777
- let items = kinds ? g.items.filter((i) => !!i.command || !!i.ref && kinds.includes(i.ref.kind)) : g.items;
64778
+ let items = kinds ? g.items.filter((i) => commands && !!i.command || !!i.ref && kinds.includes(i.ref.kind)) : g.items;
64778
64779
  const remote = g.resolvedQuery !== void 0;
64779
64780
  const stale = remote && g.resolvedQuery !== q;
64780
64781
  if (q) {
@@ -64922,7 +64923,7 @@ function MentionEmpty({ query }) {
64922
64923
  ] });
64923
64924
  }
64924
64925
  var MentionMenu = forwardRef(
64925
- function MentionMenu2({ rawGroups, query, kinds, command: command5, showGroupTitles }, ref) {
64926
+ function MentionMenu2({ rawGroups, query, kinds, commands, command: command5, showGroupTitles }, ref) {
64926
64927
  const [selectedIdx, setSelectedIdx] = useState(0);
64927
64928
  const activeRef = useRef(null);
64928
64929
  const scrollRef = useRef(null);
@@ -64937,9 +64938,9 @@ var MentionMenu = forwardRef(
64937
64938
  );
64938
64939
  }, []);
64939
64940
  const groups = useMemo(() => {
64940
- const ranked = filterMentionGroups(rawGroups, query, { kinds });
64941
+ const ranked = filterMentionGroups(rawGroups, query, { kinds, commands });
64941
64942
  return query.trim() ? flattenMentionGroups(ranked) : ranked;
64942
- }, [rawGroups, query, kinds]);
64943
+ }, [rawGroups, query, kinds, commands]);
64943
64944
  const flat = useMemo(
64944
64945
  () => groups.flatMap((g) => g.items.filter((i) => !i.unavailable)),
64945
64946
  [groups]
@@ -65099,7 +65100,8 @@ var ComposerMention = Mention.extend({
65099
65100
  return ReactNodeViewRenderer(MentionNodeView);
65100
65101
  }
65101
65102
  });
65102
- function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, onCommand) {
65103
+ function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, onCommand, onRefresher = () => {
65104
+ }) {
65103
65105
  return {
65104
65106
  char: spec.char,
65105
65107
  pluginKey: spec.pluginKey,
@@ -65112,7 +65114,7 @@ function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, o
65112
65114
  // What this returns drives `setVisibility` only — the menu re-filters from
65113
65115
  // the RAW groups so it can apply its own scope. Both go through the same
65114
65116
  // helper, so the "does anything match?" answer can't drift from the list.
65115
- items: ({ query, editor }) => filterMentionGroups(getGroups(editor), query, { kinds: spec.kinds }),
65117
+ items: ({ query, editor }) => filterMentionGroups(getGroups(editor), query, { kinds: spec.kinds, commands: spec.commands }),
65116
65118
  command: ({ editor, range, props }) => {
65117
65119
  const item = props;
65118
65120
  if (item.output) {
@@ -65148,6 +65150,7 @@ function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, o
65148
65150
  render: () => {
65149
65151
  let component = null;
65150
65152
  let popup = null;
65153
+ let latest = null;
65151
65154
  const place = (props) => {
65152
65155
  if (!popup) return;
65153
65156
  const editorDom = props.editor.view.dom;
@@ -65189,6 +65192,7 @@ function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, o
65189
65192
  rawGroups: getGroups(props.editor),
65190
65193
  query: props.query ?? "",
65191
65194
  ...spec.kinds ? { kinds: spec.kinds } : {},
65195
+ ...spec.commands === false ? { commands: false } : {},
65192
65196
  showGroupTitles: spec.char === "@",
65193
65197
  command: (item) => props.command(item)
65194
65198
  });
@@ -65209,8 +65213,13 @@ function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, o
65209
65213
  place(props);
65210
65214
  requestAnimationFrame(() => place(props));
65211
65215
  if (spec.char === "@") onQueryChange(props.query ?? "");
65216
+ latest = props;
65217
+ onRefresher(() => {
65218
+ if (latest) component?.updateProps(menuProps(latest));
65219
+ });
65212
65220
  },
65213
65221
  onUpdate(props) {
65222
+ latest = props;
65214
65223
  component?.updateProps(menuProps(props));
65215
65224
  setVisibility(props);
65216
65225
  place(props);
@@ -65223,6 +65232,8 @@ function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, o
65223
65232
  component?.destroy();
65224
65233
  popup = null;
65225
65234
  component = null;
65235
+ latest = null;
65236
+ onRefresher(null);
65226
65237
  if (spec.char === "@") onQueryChange(null);
65227
65238
  return true;
65228
65239
  }
@@ -65233,6 +65244,8 @@ function buildSuggestion(spec, getGroups, onQueryChange, onInserted, onOutput, o
65233
65244
  component?.destroy();
65234
65245
  popup = null;
65235
65246
  component = null;
65247
+ latest = null;
65248
+ onRefresher(null);
65236
65249
  if (spec.char === "@") onQueryChange(null);
65237
65250
  }
65238
65251
  };
@@ -65355,6 +65368,7 @@ var ComposerEditor = forwardRef(function ComposerEditor2({
65355
65368
  className,
65356
65369
  firstLineIndentPx = 0,
65357
65370
  mentionGroups,
65371
+ atKinds,
65358
65372
  oneAgentReason,
65359
65373
  onMentionQueryChange,
65360
65374
  onMentionInserted,
@@ -65369,6 +65383,10 @@ var ComposerEditor = forwardRef(function ComposerEditor2({
65369
65383
  }, ref) {
65370
65384
  const groupsRef = useRef(mentionGroups);
65371
65385
  groupsRef.current = mentionGroups;
65386
+ const refreshMenuRef = useRef(null);
65387
+ useEffect(() => {
65388
+ refreshMenuRef.current?.();
65389
+ }, [mentionGroups]);
65372
65390
  const oneAgentReasonRef = useRef(oneAgentReason);
65373
65391
  oneAgentReasonRef.current = oneAgentReason;
65374
65392
  const readGroups = (ed) => applyOneAgentRule(
@@ -65429,12 +65447,15 @@ var ComposerEditor = forwardRef(function ComposerEditor2({
65429
65447
  ComposerMention.configure({
65430
65448
  suggestions: [
65431
65449
  buildSuggestion(
65432
- { char: "@", pluginKey: AT_PLUGIN_KEY },
65450
+ { char: "@", pluginKey: AT_PLUGIN_KEY, ...atKinds ? { kinds: atKinds, commands: false } : {} },
65433
65451
  readGroups,
65434
65452
  (q) => onMentionQueryChangeRef.current?.(q),
65435
65453
  (id) => onMentionInsertedRef.current?.(id),
65436
65454
  (mode) => onOutputSelectedRef.current?.(mode),
65437
- (cmd) => onCommandRef.current?.(cmd)
65455
+ (cmd) => onCommandRef.current?.(cmd),
65456
+ (refresh) => {
65457
+ refreshMenuRef.current = refresh;
65458
+ }
65438
65459
  ),
65439
65460
  buildSuggestion(
65440
65461
  {
@@ -65448,7 +65469,10 @@ var ComposerEditor = forwardRef(function ComposerEditor2({
65448
65469
  (q) => onMentionQueryChangeRef.current?.(q),
65449
65470
  (id) => onMentionInsertedRef.current?.(id),
65450
65471
  (mode) => onOutputSelectedRef.current?.(mode),
65451
- (cmd) => onCommandRef.current?.(cmd)
65472
+ (cmd) => onCommandRef.current?.(cmd),
65473
+ (refresh) => {
65474
+ refreshMenuRef.current = refresh;
65475
+ }
65452
65476
  )
65453
65477
  ]
65454
65478
  }),
@@ -65692,7 +65716,7 @@ function useMentionRecents() {
65692
65716
  );
65693
65717
  return { ids, remember };
65694
65718
  }
65695
- function ComposerSubmitButton({ status, hasContent, disabled, onStop, neutral = false }) {
65719
+ function ComposerSubmitButton({ status, hasContent, disabled, onStop, neutral = false, className }) {
65696
65720
  const showStop = !hasContent && (status === "submitted" || status === "streaming");
65697
65721
  return /* @__PURE__ */ jsx(
65698
65722
  PromptInputSubmit,
@@ -65703,7 +65727,7 @@ function ComposerSubmitButton({ status, hasContent, disabled, onStop, neutral =
65703
65727
  type: showStop ? "button" : "submit",
65704
65728
  disabled: showStop ? !onStop : disabled || !hasContent,
65705
65729
  variant: showStop ? "ghost" : neutral ? "default-neutral" : "default",
65706
- className: "size-7 shrink-0 min-w-7 rounded-full max-md:size-9 max-md:min-w-9",
65730
+ className: cn("size-7 shrink-0 min-w-7 rounded-full max-md:size-9 max-md:min-w-9", className),
65707
65731
  children: showStop ? /* @__PURE__ */ jsx(StreamingStopIcon, {}) : /* @__PURE__ */ jsx(ArrowUpIcon, { className: "size-4" })
65708
65732
  }
65709
65733
  );
@@ -70052,7 +70076,7 @@ function ApprovalPromptDetails({
70052
70076
  const plan = summary?.plan;
70053
70077
  const preview = summary?.preview ?? [];
70054
70078
  const integration = integrationFor(approval);
70055
- const meta = [integration, approval.toolName, summary?.resource?.label, formatExpiry(approval.expiresAt)].filter((part) => Boolean(part));
70079
+ const meta = [integration, approval.toolName, summary?.resource?.label, approval.expiresAt ? formatExpiry(approval.expiresAt) : null].filter((part) => Boolean(part));
70056
70080
  return /* @__PURE__ */ jsxs("div", { "data-slot": "approval-prompt-details", className: "space-y-2 text-xs", children: [
70057
70081
  !summaryShown && summary?.description && /* @__PURE__ */ jsx("p", { className: "leading-5 text-foreground", children: summary.description }),
70058
70082
  !summaryShown && approval.policyReason && /* @__PURE__ */ jsxs("p", { className: "leading-5 text-foreground", children: [
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { useTranslation } from './chunk-ZKB77W6J.js';
2
+ import { useTranslation } from './chunk-IT6MY3JL.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';
@@ -4681,6 +4681,8 @@ var en_default = {
4681
4681
  "omnichannel.inbox.template.headerValue": "Header value {n}",
4682
4682
  "omnichannel.inbox.template.bodyValue": "Value {n}",
4683
4683
  "omnichannel.inbox.template.oneLine": "Keep it on one line: WhatsApp doesn't allow line breaks or tabs in a value.",
4684
+ "omnichannel.inbox.template.linkValue": "Link value for \u201C{button}\u201D",
4685
+ "omnichannel.inbox.template.noSpaces": "A link value can\u2019t have spaces.",
4684
4686
  "omnichannel.inbox.template.preview": "Preview",
4685
4687
  "omnichannel.inbox.template.search": "Search templates",
4686
4688
  "omnichannel.inbox.template.categories": "Template categories",
@@ -4695,7 +4697,7 @@ var en_default = {
4695
4697
  "omnichannel.inbox.template.reason.header_file": "Its header is a kind of file Omnichannel can't attach.",
4696
4698
  "omnichannel.inbox.template.reason.named_variables": "It uses named variables, which Omnichannel can't fill in yet.",
4697
4699
  "omnichannel.inbox.template.reason.header_variables": "Its header has more than one variable.",
4698
- "omnichannel.inbox.template.reason.button_link_value": "A button's link takes a value, which Omnichannel can't fill in yet.",
4700
+ "omnichannel.inbox.template.reason.button_link_value": "A button's link takes more than one value, which WhatsApp doesn't allow.",
4699
4701
  "omnichannel.inbox.template.media.label.image": "Header image",
4700
4702
  "omnichannel.inbox.template.media.label.video": "Header video",
4701
4703
  "omnichannel.inbox.template.media.label.document": "Header document",
@@ -5166,7 +5168,7 @@ var en_default = {
5166
5168
  "chatApps.create.chat.hint": "A focused conversation around one or more of your Agents, with its own audience, features and history.",
5167
5169
  "chatApps.create.code.title": "Custom App",
5168
5170
  "chatApps.create.code.description": "Build a tailored operational interface with the Frontera SDK.",
5169
- "chatApps.create.accent": "Accent",
5171
+ "chatApps.create.accent": "Color",
5170
5172
  "chatApps.create.back": "Back",
5171
5173
  "chatApps.preview.badge": "Draft preview",
5172
5174
  "chatApps.preview.liveVersion": "Your audience has version {version}",
@@ -10644,6 +10646,8 @@ var id_default = {
10644
10646
  "omnichannel.inbox.template.headerValue": "Isian judul {n}",
10645
10647
  "omnichannel.inbox.template.bodyValue": "Isian {n}",
10646
10648
  "omnichannel.inbox.template.oneLine": "Tulis dalam satu baris: WhatsApp tidak mengizinkan baris baru atau tab dalam isian.",
10649
+ "omnichannel.inbox.template.linkValue": "Nilai tautan untuk \u201C{button}\u201D",
10650
+ "omnichannel.inbox.template.noSpaces": "Nilai tautan tidak boleh berisi spasi.",
10647
10651
  "omnichannel.inbox.template.preview": "Pratinjau",
10648
10652
  "omnichannel.inbox.template.search": "Cari template",
10649
10653
  "omnichannel.inbox.template.categories": "Kategori template",
@@ -10658,7 +10662,7 @@ var id_default = {
10658
10662
  "omnichannel.inbox.template.reason.header_file": "Header-nya berupa jenis file yang tidak bisa dilampirkan Omnichannel.",
10659
10663
  "omnichannel.inbox.template.reason.named_variables": "Template ini memakai variabel bernama, yang belum bisa diisi Omnichannel.",
10660
10664
  "omnichannel.inbox.template.reason.header_variables": "Header-nya punya lebih dari satu variabel.",
10661
- "omnichannel.inbox.template.reason.button_link_value": "Tautan salah satu tombolnya butuh nilai, yang belum bisa diisi Omnichannel.",
10665
+ "omnichannel.inbox.template.reason.button_link_value": "Tautan salah satu tombolnya butuh lebih dari satu nilai, yang tidak diizinkan WhatsApp.",
10662
10666
  "omnichannel.inbox.template.media.label.image": "Gambar header",
10663
10667
  "omnichannel.inbox.template.media.label.video": "Video header",
10664
10668
  "omnichannel.inbox.template.media.label.document": "Dokumen header",
@@ -11129,7 +11133,7 @@ var id_default = {
11129
11133
  "chatApps.create.chat.hint": "Percakapan terfokus di sekitar satu atau beberapa Agent Anda, dengan audiens, fitur, dan riwayat sendiri.",
11130
11134
  "chatApps.create.code.title": "Custom App",
11131
11135
  "chatApps.create.code.description": "Bangun antarmuka operasional khusus dengan Frontera SDK.",
11132
- "chatApps.create.accent": "Aksen",
11136
+ "chatApps.create.accent": "Warna",
11133
11137
  "chatApps.create.back": "Kembali",
11134
11138
  "chatApps.preview.badge": "Pratinjau draf",
11135
11139
  "chatApps.preview.liveVersion": "Audiens Anda memakai versi {version}",
@@ -916,7 +916,7 @@ function LinkSafetyModal({ isOpen, onClose, onConfirm, url }) {
916
916
  ] }),
917
917
  /* @__PURE__ */ jsx(DialogDescription, { children: "You're about to visit an external website." })
918
918
  ] }),
919
- /* @__PURE__ */ jsx("div", { className: "break-all rounded-md border border-border bg-muted px-3 items-center flex font-mono text-sm text-foreground h-8", children: url }),
919
+ /* @__PURE__ */ jsx("div", { className: "max-h-40 min-w-0 overflow-y-auto break-all rounded-md border border-border bg-muted px-3 py-1.5 font-mono text-[13px] leading-5 text-foreground", children: url }),
920
920
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
921
921
  /* @__PURE__ */ jsxs(
922
922
  Button,
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { describeToolRow, Code2Icon, getToolMeta, Shimmer, Collapse } from './chunk-ITMOMVIV.js';
2
+ import { describeToolRow, Code2Icon, getToolMeta, Shimmer, Collapse } from './chunk-K5T7I553.js';
3
3
  import { ChevronDownMediumIcon } from './chunk-UWKO24VT.js';
4
4
  import { cn } from './chunk-LGVMMBL3.js';
5
5
  import { memo, useState, useMemo } from 'react';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { getToolMeta } from './chunk-ITMOMVIV.js';
2
+ import { getToolMeta } from './chunk-K5T7I553.js';
3
3
  import { Button } from './chunk-UWKO24VT.js';
4
4
  import { ChevronDownMediumIcon, CrossMediumIcon } from './chunk-TUDJ35AB.js';
5
5
  import { useChatClientOptional } from './chunk-6JLWE7M3.js';
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
3
3
  import { MagnifyingGlassIcon, Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from './chunk-FZ3VSITY.js';
4
- import { useIsMobile, useTranslation } from './chunk-ZKB77W6J.js';
5
- import { ToolCallItem, ProcessorIcon } from './chunk-M6GWBAO2.js';
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-ITMOMVIV.js';
4
+ import { useIsMobile, useTranslation } from './chunk-IT6MY3JL.js';
5
+ import { ToolCallItem, ProcessorIcon } from './chunk-KCNK4P2Z.js';
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-K5T7I553.js';
7
7
  import { ChevronDownMediumIcon, Button, Skeleton, buttonVariants } from './chunk-UWKO24VT.js';
8
8
  import { Dialog, DialogContent, DialogTitle, DialogDescription, DialogClose, CrossMediumIcon, DialogHeader, DialogFooter } from './chunk-2P4IEVOQ.js';
9
9
  import { zipSync } from './chunk-CDTES65T.js';
@@ -1,8 +1,8 @@
1
1
  'use client';
2
- import { requestPaneFocus, useArtifacts, usePlugins, useCanvasStore, useArtifactStore, useChatOverviewStore, useSourcesEnrichment, sourceKind, useCitationViewer, resolveSourceDisplay, extractDomain, 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-TER2I37Y.js';
2
+ import { requestPaneFocus, useArtifacts, usePlugins, useCanvasStore, useArtifactStore, useChatOverviewStore, useSourcesEnrichment, sourceKind, useCitationViewer, resolveSourceDisplay, extractDomain, 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-O4OYVAY5.js';
3
3
  import { MagnifyingGlassIcon, Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-FZ3VSITY.js';
4
- import { useTranslation, useIsMobile } from './chunk-ZKB77W6J.js';
5
- import { Collapsible, CollapsibleTrigger, CollapsibleContent, Shimmer, HoverCard, HoverCardTrigger, HoverCardContent } from './chunk-ITMOMVIV.js';
4
+ import { useTranslation, useIsMobile } from './chunk-IT6MY3JL.js';
5
+ import { Collapsible, CollapsibleTrigger, CollapsibleContent, Shimmer, HoverCard, HoverCardTrigger, HoverCardContent } from './chunk-K5T7I553.js';
6
6
  import { ChevronDownMediumIcon, ScrollArea, Skeleton, Button } from './chunk-UWKO24VT.js';
7
7
  import { Dialog, DialogContent, DialogHeader, DialogTitle, CrossMediumIcon } from './chunk-2P4IEVOQ.js';
8
8
  import { ChevronRightIcon } from './chunk-C3HW5S2Z.js';
@@ -1,8 +1,8 @@
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, 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-TER2I37Y.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, 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-O4OYVAY5.js';
3
3
  import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, Popover, PopoverTrigger, PopoverContent } from './chunk-FZ3VSITY.js';
4
- import { useIsMobile, useTranslation } from './chunk-ZKB77W6J.js';
5
- import { MessageToolbar, MessageResponse, SquareArrowTopRightIcon, FileTextIcon, Shimmer, ClipboardIcon, Message, MessageContent, PencilIcon, deferDuringLayoutMotion, HoverCard, HoverCardTrigger, HoverCardContent, Collapse, Icon, CircleXIcon, ClockIcon } from './chunk-ITMOMVIV.js';
4
+ import { useIsMobile, useTranslation } from './chunk-IT6MY3JL.js';
5
+ import { MessageToolbar, MessageResponse, SquareArrowTopRightIcon, FileTextIcon, Shimmer, ClipboardIcon, Message, MessageContent, PencilIcon, deferDuringLayoutMotion, HoverCard, HoverCardTrigger, HoverCardContent, Collapse, Icon, CircleXIcon, ClockIcon } from './chunk-K5T7I553.js';
6
6
  import { ChevronDownMediumIcon, Button, ScrollArea, Skeleton } from './chunk-UWKO24VT.js';
7
7
  import { CrossMediumIcon } from './chunk-2P4IEVOQ.js';
8
8
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent } from './chunk-C3HW5S2Z.js';
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { Sheet, SheetContent, SheetHeader, SheetTitle, Popover, PopoverTrigger, PopoverContent, MagnifyingGlassIcon } from './chunk-FZ3VSITY.js';
3
- import { useIsMobile, useTranslation } from './chunk-ZKB77W6J.js';
3
+ import { useIsMobile, useTranslation } from './chunk-IT6MY3JL.js';
4
4
  import { CrossMediumIcon } from './chunk-2P4IEVOQ.js';
5
5
  import { AgentAvatar } from './chunk-RVJEI4ZY.js';
6
6
  import { cn, Checkmark1Icon } from './chunk-LGVMMBL3.js';
package/dist/header.js CHANGED
@@ -1,11 +1,11 @@
1
1
  'use client';
2
- export { ChatHeader, ChatHeaderActions } from './chunk-OHHRDREC.js';
3
- import './chunk-TER2I37Y.js';
2
+ export { ChatHeader, ChatHeaderActions } from './chunk-ORUNGXNT.js';
3
+ import './chunk-O4OYVAY5.js';
4
4
  import './chunk-CWAOLMFS.js';
5
5
  import './chunk-FZ3VSITY.js';
6
- import './chunk-ZKB77W6J.js';
7
- import './chunk-M6GWBAO2.js';
8
- import './chunk-ITMOMVIV.js';
6
+ import './chunk-IT6MY3JL.js';
7
+ import './chunk-KCNK4P2Z.js';
8
+ import './chunk-K5T7I553.js';
9
9
  import './chunk-UWKO24VT.js';
10
10
  import './chunk-2P4IEVOQ.js';
11
11
  import './chunk-CDTES65T.js';
package/dist/message.js CHANGED
@@ -1,11 +1,11 @@
1
1
  'use client';
2
- export { Message, Thinking } from './chunk-3RO4V24O.js';
3
- import './chunk-TER2I37Y.js';
2
+ export { Message, Thinking } from './chunk-PZUD5SUF.js';
3
+ import './chunk-O4OYVAY5.js';
4
4
  import './chunk-CWAOLMFS.js';
5
5
  import './chunk-FZ3VSITY.js';
6
- import './chunk-ZKB77W6J.js';
7
- import './chunk-M6GWBAO2.js';
8
- import './chunk-ITMOMVIV.js';
6
+ import './chunk-IT6MY3JL.js';
7
+ import './chunk-KCNK4P2Z.js';
8
+ import './chunk-K5T7I553.js';
9
9
  import './chunk-UWKO24VT.js';
10
10
  import './chunk-2P4IEVOQ.js';
11
11
  import './chunk-CDTES65T.js';
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-GDJGXHPE.js';
2
+ export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-Q4RXEJFV.js';
3
3
  import './chunk-FZ3VSITY.js';
4
- import './chunk-ZKB77W6J.js';
4
+ import './chunk-IT6MY3JL.js';
5
5
  import './chunk-2P4IEVOQ.js';
6
6
  import './chunk-RVJEI4ZY.js';
7
7
  import './chunk-LGVMMBL3.js';
package/dist/parts.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- import { ToolCallItem } from './chunk-M6GWBAO2.js';
3
- import './chunk-ITMOMVIV.js';
2
+ import { ToolCallItem } from './chunk-KCNK4P2Z.js';
3
+ import './chunk-K5T7I553.js';
4
4
  import './chunk-UWKO24VT.js';
5
5
  import './chunk-2P4IEVOQ.js';
6
6
  import './chunk-TUDJ35AB.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-DEHUNST4.js';
3
+ import { resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb, ArtifactSkeleton } from './chunk-ARPUGGVC.js';
4
4
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
5
- import { useTranslation, useIsMobile } from './chunk-ZKB77W6J.js';
5
+ import { useTranslation, useIsMobile } from './chunk-IT6MY3JL.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-DEHUNST4.js';
2
+ import { zoomPercent, DECK_ZOOM_LEVELS, ArtifactSkeleton, LazyThumb } from './chunk-ARPUGGVC.js';
3
3
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
4
- import { useTranslation, useIsMobile } from './chunk-ZKB77W6J.js';
4
+ import { useTranslation, useIsMobile } from './chunk-IT6MY3JL.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';
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- export { PendingCards } from './chunk-YH7IIRDX.js';
3
- import './chunk-ITMOMVIV.js';
2
+ export { PendingCards } from './chunk-KKAA343W.js';
3
+ import './chunk-K5T7I553.js';
4
4
  import './chunk-UWKO24VT.js';
5
5
  import './chunk-2P4IEVOQ.js';
6
6
  import './chunk-TUDJ35AB.js';