@smartspace/chat-ui 1.13.1-dev.5c270dd → 1.13.1-dev.6080233

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/index.d.ts CHANGED
@@ -1033,6 +1033,15 @@ declare const DRAFT_THREAD_PREFIX = "draft-";
1033
1033
  declare function markDraftThreadId(threadId: string): void;
1034
1034
  declare function unmarkDraftThreadId(threadId: string): void;
1035
1035
  declare function isDraftThreadId(threadId?: string | null): boolean;
1036
+ /**
1037
+ * Reactive equivalent of isDraftThreadId() -- re-renders the caller when
1038
+ * markDraftThreadId/unmarkDraftThreadId changes this threadId's status, even
1039
+ * if that happens from an unrelated component (e.g. the thread list noticing
1040
+ * a draft is now server-backed). Use this in any component whose render
1041
+ * output depends on draft status; the plain function is fine for one-off
1042
+ * checks inside event handlers or non-React code.
1043
+ */
1044
+ declare function useIsDraftThreadId(threadId?: string | null): boolean;
1036
1045
  declare function createDraftThreadId(): string;
1037
1046
 
1038
1047
  /**
@@ -1349,4 +1358,4 @@ declare function useModels({ search, take, skip, }?: {
1349
1358
  total: number;
1350
1359
  }, Error>;
1351
1360
 
1352
- export { type ChatContextIds, type ChatIdentity, ChatProvider, type ChatProviderProps, type ChatService, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, type FileInfo$1 as FileInfo, type FileScope, type FlowRunVariables, MarkdownEditor, type MarkdownEditorHandle, type MentionUser, type Message, MessageComposer, type MessageComposerProps, type MessageContentItem, type MessageError, MessageList, type MessageListProps, MessageListSkeleton, MessageMarkdown, type MessageThread, type MessageValue, MessageValueType, type Model, type ModelProperty, NEW_THREAD_ID, THREAD_LIST_PAGE_SIZE, type ThreadsResponse, type Variables, type Workspace, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getModelIcon, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useMessages, useModels, useSendMessage, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };
1361
+ export { type ChatContextIds, type ChatIdentity, ChatProvider, type ChatProviderProps, type ChatService, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, type FileInfo$1 as FileInfo, type FileScope, type FlowRunVariables, MarkdownEditor, type MarkdownEditorHandle, type MentionUser, type Message, MessageComposer, type MessageComposerProps, type MessageContentItem, type MessageError, MessageList, type MessageListProps, MessageListSkeleton, MessageMarkdown, type MessageThread, type MessageValue, MessageValueType, type Model, type ModelProperty, NEW_THREAD_ID, THREAD_LIST_PAGE_SIZE, type ThreadsResponse, type Variables, type Workspace, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getModelIcon, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useIsDraftThreadId, useMessages, useModels, useSendMessage, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import MuiButton from '@mui/material/Button';
2
2
  import IconButton from '@mui/material/IconButton';
3
3
  import { Loader2, Check, X, Paperclip, ArrowBigUp, Minimize2, AlertTriangle, FileImage, FileVideo, FileAudio, FileArchive, FileCode, FileSpreadsheet, Presentation, FileText, ChevronUp, Download, Copy, Globe, ShieldAlert } from 'lucide-react';
4
4
  import * as React9 from 'react';
5
- import { createContext, forwardRef, useImperativeHandle, useRef, useState, useEffect, useMemo, useCallback, createElement, useContext } from 'react';
5
+ import { createContext, forwardRef, useImperativeHandle, useRef, useState, useEffect, useMemo, useCallback, createElement, useContext, useSyncExternalStore } from 'react';
6
6
  import { createPortal } from 'react-dom';
7
7
  import { useQuery, queryOptions, useQueryClient, useMutation, skipToken } from '@tanstack/react-query';
8
8
  import { toast } from 'sonner';
@@ -1827,8 +1827,6 @@ var Button = React9.forwardRef(
1827
1827
  }
1828
1828
  );
1829
1829
  Button.displayName = "Button";
1830
-
1831
- // src/shared/utils/threadId.ts
1832
1830
  var NEW_THREAD_ID = "__new__";
1833
1831
  function createThreadId() {
1834
1832
  const cryptoObj = globalThis?.crypto;
@@ -1838,6 +1836,16 @@ var DRAFT_THREAD_PREFIX = "draft-";
1838
1836
  var DRAFT_THREAD_STORAGE_KEY = "ss:draftThreadIds";
1839
1837
  var draftThreadIds = /* @__PURE__ */ new Set();
1840
1838
  var hydratedFromStorage = false;
1839
+ var draftThreadIdsListeners = /* @__PURE__ */ new Set();
1840
+ function notifyDraftThreadIdsChanged() {
1841
+ for (const listener2 of draftThreadIdsListeners) listener2();
1842
+ }
1843
+ function subscribeDraftThreadIdsChanged(listener2) {
1844
+ draftThreadIdsListeners.add(listener2);
1845
+ return () => {
1846
+ draftThreadIdsListeners.delete(listener2);
1847
+ };
1848
+ }
1841
1849
  function isBrowserStorageAvailable() {
1842
1850
  try {
1843
1851
  return typeof window !== "undefined" && !!window.sessionStorage;
@@ -1875,12 +1883,14 @@ function markDraftThreadId(threadId) {
1875
1883
  hydrateFromStorageOnce();
1876
1884
  draftThreadIds.add(threadId);
1877
1885
  persistToStorage();
1886
+ notifyDraftThreadIdsChanged();
1878
1887
  }
1879
1888
  function unmarkDraftThreadId(threadId) {
1880
1889
  if (!threadId) return;
1881
1890
  hydrateFromStorageOnce();
1882
1891
  draftThreadIds.delete(threadId);
1883
1892
  persistToStorage();
1893
+ notifyDraftThreadIdsChanged();
1884
1894
  }
1885
1895
  function isDraftThreadId(threadId) {
1886
1896
  if (!threadId) return false;
@@ -1888,6 +1898,12 @@ function isDraftThreadId(threadId) {
1888
1898
  hydrateFromStorageOnce();
1889
1899
  return draftThreadIds.has(threadId);
1890
1900
  }
1901
+ function useIsDraftThreadId(threadId) {
1902
+ return useSyncExternalStore(
1903
+ subscribeDraftThreadIdsChanged,
1904
+ () => isDraftThreadId(threadId)
1905
+ );
1906
+ }
1891
1907
  function createDraftThreadId() {
1892
1908
  const cryptoObj = globalThis?.crypto;
1893
1909
  return typeof cryptoObj?.randomUUID === "function" ? cryptoObj.randomUUID() : `${Date.now()}-${Math.random().toString(16).slice(2)}`;
@@ -20738,6 +20754,6 @@ function mapWorkspaceDtoToModel(dto) {
20738
20754
  }
20739
20755
  var mapWorkspacesDtoToModels = (arr) => arr.map(mapWorkspaceDtoToModel);
20740
20756
 
20741
- export { ChatProvider, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, MarkdownEditor, MessageComposer, MessageList, MessageListSkeleton, MessageMarkdown, MessageValueType, NEW_THREAD_ID, THREAD_LIST_PAGE_SIZE, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getModelIcon, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useMessages, useModels, useSendMessage, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };
20757
+ export { ChatProvider, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, MarkdownEditor, MessageComposer, MessageList, MessageListSkeleton, MessageMarkdown, MessageValueType, NEW_THREAD_ID, THREAD_LIST_PAGE_SIZE, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getModelIcon, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useIsDraftThreadId, useMessages, useModels, useSendMessage, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };
20742
20758
  //# sourceMappingURL=index.js.map
20743
20759
  //# sourceMappingURL=index.js.map