@frontera-sdk/chat-ui 1.53.3 → 1.53.4

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.
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- export { AgentPicker, useChatAgents } from './chunk-O6CVTMZJ.js';
2
+ export { AgentPicker, useChatAgents } from './chunk-BPBDXWUS.js';
3
3
  import './chunk-C3HW5S2Z.js';
4
- import './chunk-RVJEI4ZY.js';
4
+ import './chunk-F433AP7Q.js';
5
5
  import './chunk-TUDJ35AB.js';
6
6
  import './chunk-LGVMMBL3.js';
7
7
  import './chunk-6JLWE7M3.js';
package/dist/chat.js CHANGED
@@ -2,16 +2,16 @@
2
2
  import { offset, flip, autoUpdate, computePosition } from './chunk-I7SXWUAN.js';
3
3
  import { isFullscreenHotkey, DeckNotesCard, deckOwnsArrowKeys } from './chunk-4FRTPVJT.js';
4
4
  import { ArtifactSkeleton, resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb } from './chunk-ARPUGGVC.js';
5
- import { NewSessionPrompt, keepCaretOnTap } from './chunk-Q4RXEJFV.js';
5
+ import { NewSessionPrompt, keepCaretOnTap } from './chunk-JDUHFUOK.js';
6
6
  import { PendingCards } from './chunk-KKAA343W.js';
7
7
  import { themeToStyle } from './chunk-6HYPVNVA.js';
8
- import { useChatAgents } from './chunk-O6CVTMZJ.js';
8
+ import { useChatAgents } from './chunk-BPBDXWUS.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-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';
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-FY6TUAM4.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-6263YXO6.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-NJRI6GIG.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
17
  import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-IT6MY3JL.js';
@@ -21,7 +21,7 @@ import { Skeleton, Button, ScrollArea, ChevronDownMediumIcon, buttonVariants } f
21
21
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, CrossMediumIcon, DialogFooter } from './chunk-2P4IEVOQ.js';
22
22
  import './chunk-CDTES65T.js';
23
23
  import { DropdownMenu as DropdownMenu$1, DropdownMenuTrigger as DropdownMenuTrigger$1, DropdownMenuContent, DropdownMenuItem, ChevronRightIcon, DropdownMenuSeparator, DropdownMenuLabel } from './chunk-C3HW5S2Z.js';
24
- import { AgentAvatar } from './chunk-RVJEI4ZY.js';
24
+ import { AgentAvatar } from './chunk-F433AP7Q.js';
25
25
  import { ArrowDownIcon, FileTextIcon as FileTextIcon$1, Checkmark1Icon as Checkmark1Icon$1 } from './chunk-TUDJ35AB.js';
26
26
  import { cn, PortalContainerContext, Checkmark1Icon } from './chunk-LGVMMBL3.js';
27
27
  import { ChatClientContext } from './chunk-6JLWE7M3.js';
@@ -1,12 +1,12 @@
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-O4OYVAY5.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-NJRI6GIG.js';
3
3
  import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, Popover, PopoverTrigger, PopoverContent } from './chunk-FZ3VSITY.js';
4
4
  import { useIsMobile, useTranslation } from './chunk-IT6MY3JL.js';
5
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';
9
- import { HISTORY_CITATION_PREFIX, canonicalCitationUrl, encodeKnowledgeCitationLinks, historyCitationReference, AgentAvatar } from './chunk-RVJEI4ZY.js';
9
+ import { HISTORY_CITATION_PREFIX, canonicalCitationUrl, encodeKnowledgeCitationLinks, historyCitationReference, AgentAvatar } from './chunk-F433AP7Q.js';
10
10
  import { cn, Checkmark1Icon } from './chunk-LGVMMBL3.js';
11
11
  import { useChatClientOptional } from './chunk-6JLWE7M3.js';
12
12
  import { createContext, memo, useMemo, isValidElement, cloneElement, useState, useCallback, useRef, useEffect, useId, useLayoutEffect, lazy, Suspense, useContext } from 'react';
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './chunk-C3HW5S2Z.js';
3
- import { AgentAvatar } from './chunk-RVJEI4ZY.js';
3
+ import { AgentAvatar } from './chunk-F433AP7Q.js';
4
4
  import { ChevronDownMediumIcon } from './chunk-TUDJ35AB.js';
5
5
  import { useChatClientOptional } from './chunk-6JLWE7M3.js';
6
6
  import { useState, useEffect } from 'react';
@@ -2163,6 +2163,7 @@ var FORMAT_EXT = {
2163
2163
  markdown: "md",
2164
2164
  csv: "csv",
2165
2165
  sheet: "xlsx",
2166
+ doc: "docx",
2166
2167
  pdf: "pdf",
2167
2168
  image: "png",
2168
2169
  htmldeck: "json",
@@ -1,12 +1,12 @@
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-O4OYVAY5.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-NJRI6GIG.js';
3
3
  import { MagnifyingGlassIcon, Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-FZ3VSITY.js';
4
4
  import { useTranslation, useIsMobile } from './chunk-IT6MY3JL.js';
5
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';
9
- import { AgentAvatar } from './chunk-RVJEI4ZY.js';
9
+ import { AgentAvatar } from './chunk-F433AP7Q.js';
10
10
  import { BulletListIcon, FilesIcon } from './chunk-TUDJ35AB.js';
11
11
  import { cn, Checkmark1Icon } from './chunk-LGVMMBL3.js';
12
12
  import { __require } from './chunk-PR4QN5HX.js';
@@ -2,7 +2,7 @@
2
2
  import { Sheet, SheetContent, SheetHeader, SheetTitle, Popover, PopoverTrigger, PopoverContent, MagnifyingGlassIcon } from './chunk-FZ3VSITY.js';
3
3
  import { useIsMobile, useTranslation } from './chunk-IT6MY3JL.js';
4
4
  import { CrossMediumIcon } from './chunk-2P4IEVOQ.js';
5
- import { AgentAvatar } from './chunk-RVJEI4ZY.js';
5
+ import { AgentAvatar } from './chunk-F433AP7Q.js';
6
6
  import { cn, Checkmark1Icon } from './chunk-LGVMMBL3.js';
7
7
  import * as t from 'react';
8
8
  import { memo, useState } from 'react';
@@ -8,7 +8,7 @@ import { ChevronDownMediumIcon, Button, Skeleton, buttonVariants } from './chunk
8
8
  import { Dialog, DialogContent, DialogTitle, DialogDescription, DialogClose, CrossMediumIcon, DialogHeader, DialogFooter } from './chunk-2P4IEVOQ.js';
9
9
  import { zipSync } from './chunk-CDTES65T.js';
10
10
  import { ChevronRightIcon, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent } from './chunk-C3HW5S2Z.js';
11
- import { AgentAvatar, FORMAT_EXT } from './chunk-RVJEI4ZY.js';
11
+ import { FORMAT_EXT, AgentAvatar } from './chunk-F433AP7Q.js';
12
12
  import { Images1Icon, SlidesWideIcon, FilePdfIcon, TableIcon, FileTextIcon as FileTextIcon$1, SquareArrowTopRightIcon as SquareArrowTopRightIcon$1, FileDownloadIcon } from './chunk-TUDJ35AB.js';
13
13
  import { cn, Checkmark1Icon, usePortalContainer } from './chunk-LGVMMBL3.js';
14
14
  import { useChatClientOptional } from './chunk-6JLWE7M3.js';
@@ -10615,7 +10615,8 @@ function useDownloadArtifact(artifactId) {
10615
10615
  return {
10616
10616
  mutateAsync: async ({
10617
10617
  title,
10618
- format: format2
10618
+ format: format2,
10619
+ mimeType
10619
10620
  } = {}) => {
10620
10621
  if (!chat) throw new Error("No ChatClient in context");
10621
10622
  if (!artifactId) throw new Error("No artifact to download");
@@ -10623,7 +10624,8 @@ function useDownloadArtifact(artifactId) {
10623
10624
  const url = URL.createObjectURL(file);
10624
10625
  const anchor = document.createElement("a");
10625
10626
  anchor.href = url;
10626
- anchor.download = title ? `${title}${format2 ? `.${format2}` : ""}` : artifactId;
10627
+ const ext = format2 === "file" ? extForFile(mimeType, title) : FORMAT_EXT[format2 ?? ""] ?? "bin";
10628
+ anchor.download = `${slugify(title || artifactId)}.${ext}`;
10627
10629
  anchor.click();
10628
10630
  URL.revokeObjectURL(url);
10629
10631
  },
@@ -10661,6 +10663,9 @@ var MIME_TO_EXT = {
10661
10663
  "text/xml": "xml",
10662
10664
  "text/yaml": "yaml"
10663
10665
  };
10666
+ function slugify(s2) {
10667
+ return s2.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") || "document";
10668
+ }
10664
10669
  function extForFile(mimeType, title) {
10665
10670
  if (mimeType && MIME_TO_EXT[mimeType]) return MIME_TO_EXT[mimeType];
10666
10671
  const titleExt = title?.includes(".") ? title.split(".").pop() : void 0;
@@ -20388,7 +20393,7 @@ function parseDeck2(content) {
20388
20393
  return { slides: [] };
20389
20394
  }
20390
20395
  }
20391
- function slugify(title) {
20396
+ function slugify2(title) {
20392
20397
  return (title || "presentation").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
20393
20398
  }
20394
20399
  function download(blob, filename) {
@@ -20498,7 +20503,7 @@ async function buildDeckPptxBlob(artifactId, deck, hybrid = true) {
20498
20503
  }
20499
20504
  async function exportDeckPptx(artifactId, deck, hybrid = true) {
20500
20505
  const blob = await buildDeckPptxBlob(artifactId, deck, hybrid);
20501
- download(blob, `${slugify(deck.title || "presentation")}.pptx`);
20506
+ download(blob, `${slugify2(deck.title || "presentation")}.pptx`);
20502
20507
  }
20503
20508
  function exportDeckPdf(deck) {
20504
20509
  const w = window.open("", "_blank");
@@ -20732,7 +20737,7 @@ function useBasePath() {
20732
20737
  };
20733
20738
  }
20734
20739
  var PDF_EXPORTABLE = /* @__PURE__ */ new Set(["markdown", "doc"]);
20735
- function slugify2(title) {
20740
+ function slugify3(title) {
20736
20741
  return title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
20737
20742
  }
20738
20743
  function downloadBlob(content, mime, filename) {
@@ -20747,7 +20752,7 @@ function downloadBlob(content, mime, filename) {
20747
20752
  URL.revokeObjectURL(url);
20748
20753
  }
20749
20754
  function downloadMarkdown(content, title) {
20750
- downloadBlob(content, "text/markdown", `${slugify2(title)}.md`);
20755
+ downloadBlob(content, "text/markdown", `${slugify3(title)}.md`);
20751
20756
  }
20752
20757
  function workbookToTable(raw) {
20753
20758
  let wb;
@@ -20896,7 +20901,7 @@ function ArtifactActionsMenu({
20896
20901
  toast.error("Couldn't parse spreadsheet");
20897
20902
  return;
20898
20903
  }
20899
- const base = slugify2(title || "spreadsheet");
20904
+ const base = slugify3(title || "spreadsheet");
20900
20905
  if (kind === "csv") {
20901
20906
  downloadBlob(
20902
20907
  tableToCsv(table.columns, table.rows),
@@ -20945,7 +20950,7 @@ function ArtifactActionsMenu({
20945
20950
  useCallback(
20946
20951
  async (target) => {
20947
20952
  const serviceUrl = env("NEXT_PUBLIC_SERVICE_URL") || "http://localhost:4001";
20948
- const base = slugify2(title || "document");
20953
+ const base = slugify3(title || "document");
20949
20954
  const needsPptx = target === "slides" || target === "drive" && isDeck;
20950
20955
  if (needsPptx) {
20951
20956
  const resolvedContent = contentProp ?? artifactDetail?.content;
package/dist/header.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- export { ChatHeader, ChatHeaderActions } from './chunk-ORUNGXNT.js';
3
- import './chunk-O4OYVAY5.js';
2
+ export { ChatHeader, ChatHeaderActions } from './chunk-FY6TUAM4.js';
3
+ import './chunk-NJRI6GIG.js';
4
4
  import './chunk-CWAOLMFS.js';
5
5
  import './chunk-FZ3VSITY.js';
6
6
  import './chunk-IT6MY3JL.js';
@@ -10,7 +10,7 @@ import './chunk-UWKO24VT.js';
10
10
  import './chunk-2P4IEVOQ.js';
11
11
  import './chunk-CDTES65T.js';
12
12
  import './chunk-C3HW5S2Z.js';
13
- import './chunk-RVJEI4ZY.js';
13
+ import './chunk-F433AP7Q.js';
14
14
  import './chunk-TUDJ35AB.js';
15
15
  import './chunk-LGVMMBL3.js';
16
16
  import './chunk-6JLWE7M3.js';
package/dist/message.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- export { Message, Thinking } from './chunk-PZUD5SUF.js';
3
- import './chunk-O4OYVAY5.js';
2
+ export { Message, Thinking } from './chunk-6263YXO6.js';
3
+ import './chunk-NJRI6GIG.js';
4
4
  import './chunk-CWAOLMFS.js';
5
5
  import './chunk-FZ3VSITY.js';
6
6
  import './chunk-IT6MY3JL.js';
@@ -10,7 +10,7 @@ import './chunk-UWKO24VT.js';
10
10
  import './chunk-2P4IEVOQ.js';
11
11
  import './chunk-CDTES65T.js';
12
12
  import './chunk-C3HW5S2Z.js';
13
- import './chunk-RVJEI4ZY.js';
13
+ import './chunk-F433AP7Q.js';
14
14
  import './chunk-TUDJ35AB.js';
15
15
  import './chunk-LGVMMBL3.js';
16
16
  import './chunk-6JLWE7M3.js';
@@ -1,8 +1,8 @@
1
1
  'use client';
2
- export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-Q4RXEJFV.js';
2
+ export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-JDUHFUOK.js';
3
3
  import './chunk-FZ3VSITY.js';
4
4
  import './chunk-IT6MY3JL.js';
5
5
  import './chunk-2P4IEVOQ.js';
6
- import './chunk-RVJEI4ZY.js';
6
+ import './chunk-F433AP7Q.js';
7
7
  import './chunk-LGVMMBL3.js';
8
8
  import './chunk-PR4QN5HX.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontera-sdk/chat-ui",
3
- "version": "1.53.3",
3
+ "version": "1.53.4",
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.3",
93
- "@frontera-sdk/core": "1.53.3",
92
+ "@frontera-sdk/chat": "1.53.4",
93
+ "@frontera-sdk/core": "1.53.4",
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",