@assistant-ui/react 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.d.mts CHANGED
@@ -3,6 +3,7 @@ import { FC, PropsWithChildren } from 'react';
3
3
  import { TextareaAutosizeProps } from 'react-textarea-autosize';
4
4
  import { Message } from 'ai';
5
5
  import { UseChatHelpers } from 'ai/react';
6
+ import { UseBoundStore, StoreApi } from 'zustand';
6
7
 
7
8
  declare const ThreadRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
8
9
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
@@ -36,18 +37,18 @@ type ThreadMessagesProps = {
36
37
  components: {
37
38
  Message: React.ComponentType;
38
39
  UserMessage?: React.ComponentType;
39
- EditingUserMessage?: React.ComponentType;
40
+ EditComposer?: React.ComponentType;
40
41
  AssistantMessage?: React.ComponentType;
41
42
  } | {
42
43
  Message?: React.ComponentType;
43
44
  UserMessage: React.ComponentType;
44
- EditingUserMessage?: React.ComponentType;
45
+ EditComposer?: React.ComponentType;
45
46
  AssistantMessage: React.ComponentType;
46
47
  };
47
48
  };
48
49
  declare const ThreadMessages: FC<ThreadMessagesProps>;
49
50
 
50
- declare namespace index$5 {
51
+ declare namespace index$4 {
51
52
  export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadViewport as Viewport };
52
53
  }
53
54
 
@@ -67,14 +68,20 @@ declare const ComposerSend: react.ForwardRefExoticComponent<Pick<Omit<react.Deta
67
68
  asChild?: boolean;
68
69
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
69
70
 
70
- declare const ComposerStop: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
71
+ declare const ComposerCancel: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
71
72
  ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
72
73
  } & {
73
74
  asChild?: boolean;
74
75
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
75
76
 
76
- declare namespace index$4 {
77
- export { ComposerInput as Input, ComposerRoot as Root, ComposerSend as Send, ComposerStop as Stop };
77
+ type ComposerIfFilters = {
78
+ editing: boolean | undefined;
79
+ };
80
+ type ComposerIfProps = PropsWithChildren<RequireAtLeastOne<ComposerIfFilters>>;
81
+ declare const ComposerIf: FC<ComposerIfProps>;
82
+
83
+ declare namespace index$3 {
84
+ export { ComposerCancel as Cancel, ComposerIf as If, ComposerInput as Input, ComposerRoot as Root, ComposerSend as Send };
78
85
  }
79
86
 
80
87
  type MessageProviderProps = {
@@ -92,10 +99,9 @@ declare const MessageRoot: react.ForwardRefExoticComponent<Pick<Omit<react.Detai
92
99
  type MessageIfFilters = {
93
100
  user: boolean | undefined;
94
101
  assistant: boolean | undefined;
95
- editing: boolean | undefined;
96
102
  hasBranches: boolean | undefined;
97
103
  copied: boolean | undefined;
98
- unstable_hoveringOrLast: boolean | undefined;
104
+ lastOrHover: boolean | undefined;
99
105
  };
100
106
  type MessageIfProps = RequireAtLeastOne<MessageIfFilters> & {
101
107
  children: React.ReactNode;
@@ -104,10 +110,8 @@ declare const MessageIf: FC<MessageIfProps>;
104
110
 
105
111
  declare const MessageContent: FC;
106
112
 
107
- declare const MessageEditableContent: react.ForwardRefExoticComponent<TextareaAutosizeProps & react.RefAttributes<HTMLTextAreaElement>>;
108
-
109
- declare namespace index$3 {
110
- export { MessageContent as Content, MessageEditableContent as EditableContent, MessageIf as If, MessageProvider as Provider, MessageRoot as Root };
113
+ declare namespace index$2 {
114
+ export { MessageContent as Content, MessageIf as If, MessageProvider as Provider, MessageRoot as Root };
111
115
  }
112
116
 
113
117
  declare const BranchPickerNext: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
@@ -134,7 +138,7 @@ declare const BranchPickerRoot: react.ForwardRefExoticComponent<Pick<Omit<react.
134
138
  hideWhenSingleBranch?: boolean;
135
139
  } & react.RefAttributes<HTMLDivElement>>;
136
140
 
137
- declare namespace index$2 {
141
+ declare namespace index$1 {
138
142
  export { BranchPickerCount as Count, BranchPickerNext as Next, BranchPickerNumber as Number, BranchPickerPrevious as Previous, BranchPickerRoot as Root };
139
143
  }
140
144
 
@@ -142,7 +146,11 @@ declare const ActionBarRoot: react.ForwardRefExoticComponent<Pick<Omit<react.Det
142
146
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
143
147
  } & {
144
148
  asChild?: boolean;
145
- }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & react.RefAttributes<HTMLDivElement>>;
149
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & {
150
+ hideWhenBusy?: boolean;
151
+ autohide?: "always" | "not-last" | "never";
152
+ autohideFloat?: "always" | "single-branch" | "never";
153
+ } & react.RefAttributes<HTMLDivElement>>;
146
154
 
147
155
  type ActionBarCopyProps = {
148
156
  copiedDuration?: number;
@@ -165,75 +173,58 @@ declare const ActionBarEdit: react.ForwardRefExoticComponent<Pick<Omit<react.Det
165
173
  asChild?: boolean;
166
174
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
167
175
 
168
- declare namespace index$1 {
169
- export { ActionBarCopy as Copy, ActionBarEdit as Edit, ActionBarReload as Reload, ActionBarRoot as Root };
170
- }
171
-
172
- declare const EditBarRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
173
- ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
174
- } & {
175
- asChild?: boolean;
176
- }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & react.RefAttributes<HTMLDivElement>>;
177
-
178
- declare const EditBarSave: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
179
- ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
180
- } & {
181
- asChild?: boolean;
182
- }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
183
-
184
- declare const EditBarCancel: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
185
- ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
186
- } & {
187
- asChild?: boolean;
188
- }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
189
-
190
176
  declare namespace index {
191
- export { EditBarCancel as Cancel, EditBarRoot as Root, EditBarSave as Save };
177
+ export { ActionBarCopy as Copy, ActionBarEdit as Edit, ActionBarReload as Reload, ActionBarRoot as Root };
192
178
  }
193
179
 
194
- type ThreadProviderProps = {
180
+ type VercelAIAssistantProviderProps = {
195
181
  chat: UseChatHelpers;
196
182
  children: React.ReactNode;
197
183
  };
198
- declare const VercelAIThreadProvider: FC<ThreadProviderProps>;
184
+ declare const VercelAIAssistantProvider: FC<VercelAIAssistantProviderProps>;
185
+
186
+ type ComposerState = {
187
+ isEditing: boolean;
188
+ canCancel: boolean;
189
+ edit: () => void;
190
+ send: () => void;
191
+ cancel: () => void;
192
+ value: string;
193
+ setValue: (value: string) => void;
194
+ };
195
+ type ComposerStore = {
196
+ useComposer: UseBoundStore<StoreApi<ComposerState>>;
197
+ };
199
198
 
200
199
  type BranchState = {
201
200
  branchId: number;
202
201
  branchCount: number;
203
202
  };
204
203
 
205
- type MessageEditState = {
206
- isEditing: false;
207
- } | {
208
- isEditing: true;
209
- value: string;
210
- };
211
- type MessageStore = {
204
+ type MessageState = {
212
205
  message: Message;
213
- editState: MessageEditState;
214
- setEditState: (value: MessageEditState) => void;
215
206
  branchState: BranchState;
207
+ isLast: boolean;
216
208
  isCopied: boolean;
217
209
  setIsCopied: (value: boolean) => void;
218
210
  isHovering: boolean;
219
211
  setIsHovering: (value: boolean) => void;
220
212
  };
221
- declare const useMessageContext: <Selection>(consumerName: string, selector: (s: MessageStore) => Selection) => Selection;
213
+ type MessageStore = ComposerStore & {
214
+ useMessage: UseBoundStore<StoreApi<MessageState>>;
215
+ };
216
+ declare const useMessageContext: () => MessageStore;
222
217
 
223
218
  declare const useCopyMessage: ({ copiedDuration }: {
224
219
  copiedDuration?: number | undefined;
225
220
  }) => (() => void) | null;
226
221
 
227
- declare const useReloadMessage: () => (() => Promise<void>) | null;
222
+ declare const useReloadMessage: () => (() => void) | null;
228
223
 
229
224
  declare const useBeginMessageEdit: () => (() => void) | null;
230
225
 
231
- declare const useCancelMessageEdit: () => (() => void) | null;
232
-
233
- declare const useSaveMessageEdit: () => (() => void) | null;
234
-
235
226
  declare const useGoToNextBranch: () => (() => void) | null;
236
227
 
237
228
  declare const useGoToPreviousBranch: () => (() => void) | null;
238
229
 
239
- export { index$1 as ActionBarPrimitive, index$2 as BranchPickerPrimitive, index$4 as ComposerPrimitive, index as EditBarPrimitive, index$3 as MessagePrimitive, index$5 as ThreadPrimitive, VercelAIThreadProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCancelMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage, useSaveMessageEdit };
230
+ export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, index$2 as MessagePrimitive, index$4 as ThreadPrimitive, VercelAIAssistantProvider as VercelAIThreadProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { FC, PropsWithChildren } from 'react';
3
3
  import { TextareaAutosizeProps } from 'react-textarea-autosize';
4
4
  import { Message } from 'ai';
5
5
  import { UseChatHelpers } from 'ai/react';
6
+ import { UseBoundStore, StoreApi } from 'zustand';
6
7
 
7
8
  declare const ThreadRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
8
9
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
@@ -36,18 +37,18 @@ type ThreadMessagesProps = {
36
37
  components: {
37
38
  Message: React.ComponentType;
38
39
  UserMessage?: React.ComponentType;
39
- EditingUserMessage?: React.ComponentType;
40
+ EditComposer?: React.ComponentType;
40
41
  AssistantMessage?: React.ComponentType;
41
42
  } | {
42
43
  Message?: React.ComponentType;
43
44
  UserMessage: React.ComponentType;
44
- EditingUserMessage?: React.ComponentType;
45
+ EditComposer?: React.ComponentType;
45
46
  AssistantMessage: React.ComponentType;
46
47
  };
47
48
  };
48
49
  declare const ThreadMessages: FC<ThreadMessagesProps>;
49
50
 
50
- declare namespace index$5 {
51
+ declare namespace index$4 {
51
52
  export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadViewport as Viewport };
52
53
  }
53
54
 
@@ -67,14 +68,20 @@ declare const ComposerSend: react.ForwardRefExoticComponent<Pick<Omit<react.Deta
67
68
  asChild?: boolean;
68
69
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
69
70
 
70
- declare const ComposerStop: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
71
+ declare const ComposerCancel: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
71
72
  ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
72
73
  } & {
73
74
  asChild?: boolean;
74
75
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
75
76
 
76
- declare namespace index$4 {
77
- export { ComposerInput as Input, ComposerRoot as Root, ComposerSend as Send, ComposerStop as Stop };
77
+ type ComposerIfFilters = {
78
+ editing: boolean | undefined;
79
+ };
80
+ type ComposerIfProps = PropsWithChildren<RequireAtLeastOne<ComposerIfFilters>>;
81
+ declare const ComposerIf: FC<ComposerIfProps>;
82
+
83
+ declare namespace index$3 {
84
+ export { ComposerCancel as Cancel, ComposerIf as If, ComposerInput as Input, ComposerRoot as Root, ComposerSend as Send };
78
85
  }
79
86
 
80
87
  type MessageProviderProps = {
@@ -92,10 +99,9 @@ declare const MessageRoot: react.ForwardRefExoticComponent<Pick<Omit<react.Detai
92
99
  type MessageIfFilters = {
93
100
  user: boolean | undefined;
94
101
  assistant: boolean | undefined;
95
- editing: boolean | undefined;
96
102
  hasBranches: boolean | undefined;
97
103
  copied: boolean | undefined;
98
- unstable_hoveringOrLast: boolean | undefined;
104
+ lastOrHover: boolean | undefined;
99
105
  };
100
106
  type MessageIfProps = RequireAtLeastOne<MessageIfFilters> & {
101
107
  children: React.ReactNode;
@@ -104,10 +110,8 @@ declare const MessageIf: FC<MessageIfProps>;
104
110
 
105
111
  declare const MessageContent: FC;
106
112
 
107
- declare const MessageEditableContent: react.ForwardRefExoticComponent<TextareaAutosizeProps & react.RefAttributes<HTMLTextAreaElement>>;
108
-
109
- declare namespace index$3 {
110
- export { MessageContent as Content, MessageEditableContent as EditableContent, MessageIf as If, MessageProvider as Provider, MessageRoot as Root };
113
+ declare namespace index$2 {
114
+ export { MessageContent as Content, MessageIf as If, MessageProvider as Provider, MessageRoot as Root };
111
115
  }
112
116
 
113
117
  declare const BranchPickerNext: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
@@ -134,7 +138,7 @@ declare const BranchPickerRoot: react.ForwardRefExoticComponent<Pick<Omit<react.
134
138
  hideWhenSingleBranch?: boolean;
135
139
  } & react.RefAttributes<HTMLDivElement>>;
136
140
 
137
- declare namespace index$2 {
141
+ declare namespace index$1 {
138
142
  export { BranchPickerCount as Count, BranchPickerNext as Next, BranchPickerNumber as Number, BranchPickerPrevious as Previous, BranchPickerRoot as Root };
139
143
  }
140
144
 
@@ -142,7 +146,11 @@ declare const ActionBarRoot: react.ForwardRefExoticComponent<Pick<Omit<react.Det
142
146
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
143
147
  } & {
144
148
  asChild?: boolean;
145
- }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & react.RefAttributes<HTMLDivElement>>;
149
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & {
150
+ hideWhenBusy?: boolean;
151
+ autohide?: "always" | "not-last" | "never";
152
+ autohideFloat?: "always" | "single-branch" | "never";
153
+ } & react.RefAttributes<HTMLDivElement>>;
146
154
 
147
155
  type ActionBarCopyProps = {
148
156
  copiedDuration?: number;
@@ -165,75 +173,58 @@ declare const ActionBarEdit: react.ForwardRefExoticComponent<Pick<Omit<react.Det
165
173
  asChild?: boolean;
166
174
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
167
175
 
168
- declare namespace index$1 {
169
- export { ActionBarCopy as Copy, ActionBarEdit as Edit, ActionBarReload as Reload, ActionBarRoot as Root };
170
- }
171
-
172
- declare const EditBarRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
173
- ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
174
- } & {
175
- asChild?: boolean;
176
- }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & react.RefAttributes<HTMLDivElement>>;
177
-
178
- declare const EditBarSave: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
179
- ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
180
- } & {
181
- asChild?: boolean;
182
- }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
183
-
184
- declare const EditBarCancel: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
185
- ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
186
- } & {
187
- asChild?: boolean;
188
- }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
189
-
190
176
  declare namespace index {
191
- export { EditBarCancel as Cancel, EditBarRoot as Root, EditBarSave as Save };
177
+ export { ActionBarCopy as Copy, ActionBarEdit as Edit, ActionBarReload as Reload, ActionBarRoot as Root };
192
178
  }
193
179
 
194
- type ThreadProviderProps = {
180
+ type VercelAIAssistantProviderProps = {
195
181
  chat: UseChatHelpers;
196
182
  children: React.ReactNode;
197
183
  };
198
- declare const VercelAIThreadProvider: FC<ThreadProviderProps>;
184
+ declare const VercelAIAssistantProvider: FC<VercelAIAssistantProviderProps>;
185
+
186
+ type ComposerState = {
187
+ isEditing: boolean;
188
+ canCancel: boolean;
189
+ edit: () => void;
190
+ send: () => void;
191
+ cancel: () => void;
192
+ value: string;
193
+ setValue: (value: string) => void;
194
+ };
195
+ type ComposerStore = {
196
+ useComposer: UseBoundStore<StoreApi<ComposerState>>;
197
+ };
199
198
 
200
199
  type BranchState = {
201
200
  branchId: number;
202
201
  branchCount: number;
203
202
  };
204
203
 
205
- type MessageEditState = {
206
- isEditing: false;
207
- } | {
208
- isEditing: true;
209
- value: string;
210
- };
211
- type MessageStore = {
204
+ type MessageState = {
212
205
  message: Message;
213
- editState: MessageEditState;
214
- setEditState: (value: MessageEditState) => void;
215
206
  branchState: BranchState;
207
+ isLast: boolean;
216
208
  isCopied: boolean;
217
209
  setIsCopied: (value: boolean) => void;
218
210
  isHovering: boolean;
219
211
  setIsHovering: (value: boolean) => void;
220
212
  };
221
- declare const useMessageContext: <Selection>(consumerName: string, selector: (s: MessageStore) => Selection) => Selection;
213
+ type MessageStore = ComposerStore & {
214
+ useMessage: UseBoundStore<StoreApi<MessageState>>;
215
+ };
216
+ declare const useMessageContext: () => MessageStore;
222
217
 
223
218
  declare const useCopyMessage: ({ copiedDuration }: {
224
219
  copiedDuration?: number | undefined;
225
220
  }) => (() => void) | null;
226
221
 
227
- declare const useReloadMessage: () => (() => Promise<void>) | null;
222
+ declare const useReloadMessage: () => (() => void) | null;
228
223
 
229
224
  declare const useBeginMessageEdit: () => (() => void) | null;
230
225
 
231
- declare const useCancelMessageEdit: () => (() => void) | null;
232
-
233
- declare const useSaveMessageEdit: () => (() => void) | null;
234
-
235
226
  declare const useGoToNextBranch: () => (() => void) | null;
236
227
 
237
228
  declare const useGoToPreviousBranch: () => (() => void) | null;
238
229
 
239
- export { index$1 as ActionBarPrimitive, index$2 as BranchPickerPrimitive, index$4 as ComposerPrimitive, index as EditBarPrimitive, index$3 as MessagePrimitive, index$5 as ThreadPrimitive, VercelAIThreadProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCancelMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage, useSaveMessageEdit };
230
+ export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, index$2 as MessagePrimitive, index$4 as ThreadPrimitive, VercelAIAssistantProvider as VercelAIThreadProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };