@frontera-sdk/chat-ui 1.53.2 → 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-XCXUTXLD.js';
5
- import { NewSessionPrompt, keepCaretOnTap } from './chunk-ZKLTGKXX.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-HIJ4KSHK.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-7M372LAX.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-5JY2P5LR.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-HBLKBHR4.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-OR253YXC.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-JI3RKDFI.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-HBLKBHR4.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';
@@ -5168,7 +5168,7 @@ var en_default = {
5168
5168
  "chatApps.create.chat.hint": "A focused conversation around one or more of your Agents, with its own audience, features and history.",
5169
5169
  "chatApps.create.code.title": "Custom App",
5170
5170
  "chatApps.create.code.description": "Build a tailored operational interface with the Frontera SDK.",
5171
- "chatApps.create.accent": "Accent",
5171
+ "chatApps.create.accent": "Color",
5172
5172
  "chatApps.create.back": "Back",
5173
5173
  "chatApps.preview.badge": "Draft preview",
5174
5174
  "chatApps.preview.liveVersion": "Your audience has version {version}",
@@ -11133,7 +11133,7 @@ var id_default = {
11133
11133
  "chatApps.create.chat.hint": "Percakapan terfokus di sekitar satu atau beberapa Agent Anda, dengan audiens, fitur, dan riwayat sendiri.",
11134
11134
  "chatApps.create.code.title": "Custom App",
11135
11135
  "chatApps.create.code.description": "Bangun antarmuka operasional khusus dengan Frontera SDK.",
11136
- "chatApps.create.accent": "Aksen",
11136
+ "chatApps.create.accent": "Warna",
11137
11137
  "chatApps.create.back": "Kembali",
11138
11138
  "chatApps.preview.badge": "Pratinjau draf",
11139
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-HBLKBHR4.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-5JY2P5LR.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-HBLKBHR4.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-5JY2P5LR.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-HBLKBHR4.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-HBLKBHR4.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-HIJ4KSHK.js';
3
- import './chunk-5JY2P5LR.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-HBLKBHR4.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-7M372LAX.js';
3
- import './chunk-5JY2P5LR.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-HBLKBHR4.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-ZKLTGKXX.js';
2
+ export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-Q4RXEJFV.js';
3
3
  import './chunk-FZ3VSITY.js';
4
- import './chunk-HBLKBHR4.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-XCXUTXLD.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-HBLKBHR4.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-XCXUTXLD.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-HBLKBHR4.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';