@aws-amplify/ui-react-ai 1.2.0 → 1.2.1

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.
Files changed (29) hide show
  1. package/dist/esm/components/AIConversation/views/Controls/MessagesControl.mjs +1 -3
  2. package/dist/esm/hooks/useAIConversation.mjs +1 -1
  3. package/dist/esm/version.mjs +1 -1
  4. package/dist/index.js +3 -5
  5. package/dist/types/components/AIConversation/context/AIContextContext.d.ts +1 -1
  6. package/dist/types/components/AIConversation/context/ActionsContext.d.ts +1 -1
  7. package/dist/types/components/AIConversation/context/AttachmentContext.d.ts +1 -1
  8. package/dist/types/components/AIConversation/context/AvatarsContext.d.ts +1 -1
  9. package/dist/types/components/AIConversation/context/ControlsContext.d.ts +1 -1
  10. package/dist/types/components/AIConversation/context/ConversationInputContext.d.ts +1 -1
  11. package/dist/types/components/AIConversation/context/DisplayTextContext.d.ts +1 -0
  12. package/dist/types/components/AIConversation/context/FallbackComponentContext.d.ts +1 -1
  13. package/dist/types/components/AIConversation/context/LoadingContext.d.ts +1 -1
  14. package/dist/types/components/AIConversation/context/MessageRenderContext.d.ts +1 -0
  15. package/dist/types/components/AIConversation/context/MessageVariantContext.d.ts +1 -1
  16. package/dist/types/components/AIConversation/context/MessagesContext.d.ts +1 -1
  17. package/dist/types/components/AIConversation/context/ResponseComponentsContext.d.ts +1 -1
  18. package/dist/types/components/AIConversation/context/SendMessageContext.d.ts +1 -1
  19. package/dist/types/components/AIConversation/context/SuggestedPromptsContext.d.ts +1 -1
  20. package/dist/types/components/AIConversation/context/WelcomeMessageContext.d.ts +1 -1
  21. package/dist/types/components/AIConversation/context/elements/definitions.d.ts +1 -0
  22. package/dist/types/components/AIConversation/types.d.ts +4 -4
  23. package/dist/types/components/AIConversation/views/Controls/AttachmentListControl.d.ts +5 -5
  24. package/dist/types/components/AIConversation/views/Controls/DefaultMessageControl.d.ts +2 -2
  25. package/dist/types/components/AIConversation/views/Controls/MessagesControl.d.ts +3 -3
  26. package/dist/types/components/AIConversation/views/default/Attachments.d.ts +2 -2
  27. package/dist/types/types.d.ts +1 -0
  28. package/dist/types/version.d.ts +1 -1
  29. package/package.json +5 -5
@@ -126,9 +126,7 @@ const MessagesControl = () => {
126
126
  content.toolUse?.name.startsWith(RESPONSE_COMPONENT_PREFIX))) ?? [];
127
127
  return (React__default.createElement(Layout, null, messagesWithRenderableContent?.map((message, index) => {
128
128
  return (React__default.createElement(RoleContext.Provider, { value: message.role, key: `message-${index}` },
129
- React__default.createElement(MessageContainer, { "data-testid": `message`, key: `message-${index}`, tabIndex: focusedItemIndex === index ? 0 : -1, onFocus: () => handleFocus(index), onKeyDown: (event) => onKeyDown(index, event), ref: (el) => {
130
- messagesRef.current[index] = el;
131
- } },
129
+ React__default.createElement(MessageContainer, { "data-testid": `message`, key: `message-${index}`, tabIndex: focusedItemIndex === index ? 0 : -1, onFocus: () => handleFocus(index), onKeyDown: (event) => onKeyDown(index, event), ref: (el) => (messagesRef.current[index] = el) },
132
130
  React__default.createElement(HeaderContainer, null,
133
131
  React__default.createElement(AvatarControl, null),
134
132
  React__default.createElement(Timestamp, null, getMessageTimestampText(new Date(message.createdAt)))),
@@ -22,7 +22,7 @@ function createUseAIConversation(client) {
22
22
  const clientRoute = client.conversations[routeName];
23
23
  // We need to keep track of the stream events as the come in
24
24
  // for an assistant message, but don't need to keep them in state
25
- const contentBlocksRef = React__default.useRef(undefined);
25
+ const contentBlocksRef = React__default.useRef();
26
26
  // Using this hook without an existing conversation id means
27
27
  // it will create a new conversation when it is executed
28
28
  // we don't want to create 2 conversations
@@ -1,3 +1,3 @@
1
- const VERSION = '1.2.0';
1
+ const VERSION = '1.2.1';
2
2
 
3
3
  export { VERSION };
package/dist/index.js CHANGED
@@ -812,9 +812,7 @@ const MessagesControl = () => {
812
812
  content.toolUse?.name.startsWith(RESPONSE_COMPONENT_PREFIX))) ?? [];
813
813
  return (React__namespace["default"].createElement(Layout, null, messagesWithRenderableContent?.map((message, index) => {
814
814
  return (React__namespace["default"].createElement(RoleContext.Provider, { value: message.role, key: `message-${index}` },
815
- React__namespace["default"].createElement(MessageContainer, { "data-testid": `message`, key: `message-${index}`, tabIndex: focusedItemIndex === index ? 0 : -1, onFocus: () => handleFocus(index), onKeyDown: (event) => onKeyDown(index, event), ref: (el) => {
816
- messagesRef.current[index] = el;
817
- } },
815
+ React__namespace["default"].createElement(MessageContainer, { "data-testid": `message`, key: `message-${index}`, tabIndex: focusedItemIndex === index ? 0 : -1, onFocus: () => handleFocus(index), onKeyDown: (event) => onKeyDown(index, event), ref: (el) => (messagesRef.current[index] = el) },
818
816
  React__namespace["default"].createElement(HeaderContainer, null,
819
817
  React__namespace["default"].createElement(AvatarControl, null),
820
818
  React__namespace["default"].createElement(Timestamp, null, getMessageTimestampText(new Date(message.createdAt)))),
@@ -1092,7 +1090,7 @@ const PromptList = ({ setInput, suggestedPrompts = [], }) => {
1092
1090
  })));
1093
1091
  };
1094
1092
 
1095
- const VERSION = '1.2.0';
1093
+ const VERSION = '1.2.1';
1096
1094
 
1097
1095
  function AIConversationBase({ avatars, controls, ...rest }) {
1098
1096
  uiReactCore.useSetUserAgent({
@@ -1234,7 +1232,7 @@ function createUseAIConversation(client) {
1234
1232
  const clientRoute = client.conversations[routeName];
1235
1233
  // We need to keep track of the stream events as the come in
1236
1234
  // for an assistant message, but don't need to keep them in state
1237
- const contentBlocksRef = React__namespace["default"].useRef(undefined);
1235
+ const contentBlocksRef = React__namespace["default"].useRef();
1238
1236
  // Using this hook without an existing conversation id means
1239
1237
  // it will create a new conversation when it is executed
1240
1238
  // we don't want to create 2 conversations
@@ -3,4 +3,4 @@ export declare const AIContextContext: React.Context<(() => object) | undefined>
3
3
  export declare const AIContextProvider: ({ children, aiContext, }: {
4
4
  children?: React.ReactNode;
5
5
  aiContext?: (() => object) | undefined;
6
- }) => React.JSX.Element;
6
+ }) => JSX.Element;
@@ -4,4 +4,4 @@ export declare const ActionsContext: React.Context<CustomAction[] | undefined>;
4
4
  export declare const ActionsProvider: ({ children, actions, }: {
5
5
  children?: React.ReactNode;
6
6
  actions?: CustomAction[] | undefined;
7
- }) => React.JSX.Element;
7
+ }) => JSX.Element;
@@ -3,4 +3,4 @@ import { AIConversationInput } from '../types';
3
3
  export interface AttachmentContextProps extends Pick<AIConversationInput, 'allowAttachments' | 'maxAttachments' | 'maxAttachmentSize'> {
4
4
  }
5
5
  export declare const AttachmentContext: React.Context<Required<AttachmentContextProps>>;
6
- export declare const AttachmentProvider: ({ children, allowAttachments, maxAttachmentSize, maxAttachments, }: React.PropsWithChildren<AttachmentContextProps>) => React.JSX.Element;
6
+ export declare const AttachmentProvider: ({ children, allowAttachments, maxAttachmentSize, maxAttachments, }: React.PropsWithChildren<AttachmentContextProps>) => JSX.Element;
@@ -4,4 +4,4 @@ export declare const AvatarsContext: React.Context<Avatars | undefined>;
4
4
  export declare const AvatarsProvider: ({ children, avatars, }: {
5
5
  children?: React.ReactNode;
6
6
  avatars?: Avatars | undefined;
7
- }) => React.JSX.Element;
7
+ }) => JSX.Element;
@@ -21,4 +21,4 @@ export declare const ControlsContext: React.Context<ControlsContextProps | undef
21
21
  export declare const ControlsProvider: ({ children, controls, }: {
22
22
  children?: React.ReactNode;
23
23
  controls?: ControlsContextProps | undefined;
24
- }) => React.JSX.Element;
24
+ }) => JSX.Element;
@@ -12,4 +12,4 @@ export interface ConversationInputContextProps {
12
12
  export declare const ConversationInputContext: React.Context<ConversationInputContextProps>;
13
13
  export declare const ConversationInputContextProvider: ({ children, }: {
14
14
  children?: React.ReactNode;
15
- }) => React.JSX.Element;
15
+ }) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ConversationDisplayText } from '../displayText';
2
3
  export declare const ConversationDisplayTextContext: import("react").Context<Required<ConversationDisplayText>>, ConversationDisplayTextProvider: import("react").ComponentType<import("react").PropsWithChildren<Required<ConversationDisplayText>>>, useConversationDisplayText: (params?: {
3
4
  errorMessage?: string | undefined;
@@ -4,4 +4,4 @@ export declare const FallbackComponentContext: React.Context<React.ComponentType
4
4
  export declare const FallbackComponentProvider: ({ children, FallbackComponent, }: {
5
5
  children?: React.ReactNode;
6
6
  FallbackComponent?: AIConversationInput['FallbackResponseComponent'];
7
- }) => React.JSX.Element;
7
+ }) => JSX.Element;
@@ -3,4 +3,4 @@ export declare const LoadingContext: React.Context<boolean | undefined>;
3
3
  export declare const LoadingContextProvider: ({ children, isLoading, }: {
4
4
  children?: React.ReactNode;
5
5
  isLoading?: boolean | undefined;
6
- }) => React.JSX.Element;
6
+ }) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { MessageRenderer } from '../types';
2
3
  export declare const MessageRendererContext: import("react").Context<MessageRenderer>, MessageRendererProvider: import("react").ComponentType<import("react").PropsWithChildren<MessageRenderer>>, useMessageRenderer: (params?: {
3
4
  errorMessage?: string | undefined;
@@ -4,4 +4,4 @@ export declare const MessageVariantContext: React.Context<MessageVariant | undef
4
4
  export declare const MessageVariantProvider: ({ children, variant, }: {
5
5
  children?: React.ReactNode;
6
6
  variant?: MessageVariant | undefined;
7
- }) => React.JSX.Element;
7
+ }) => JSX.Element;
@@ -6,5 +6,5 @@ export declare const RoleContext: React.Context<"user" | "assistant" | undefined
6
6
  export declare const MessagesProvider: ({ children, messages, }: {
7
7
  children?: React.ReactNode;
8
8
  messages: ConversationMessage[];
9
- }) => React.JSX.Element;
9
+ }) => JSX.Element;
10
10
  export {};
@@ -7,6 +7,6 @@ export declare const prependResponseComponents: (responseComponents?: ResponseCo
7
7
  export declare const ResponseComponentsProvider: ({ children, responseComponents, }: {
8
8
  children?: React.ReactNode;
9
9
  responseComponents?: ResponseComponents | undefined;
10
- }) => React.JSX.Element;
10
+ }) => JSX.Element;
11
11
  export declare const convertResponseComponentsToToolConfiguration: (responseComponents?: ResponseComponents) => ToolConfiguration | undefined;
12
12
  export {};
@@ -4,4 +4,4 @@ export declare const SendMessageContext: React.Context<SendMessage | undefined>;
4
4
  export declare const SendMessageContextProvider: ({ children, handleSendMessage, }: {
5
5
  children?: React.ReactNode;
6
6
  handleSendMessage: SendMessage;
7
- }) => React.JSX.Element;
7
+ }) => JSX.Element;
@@ -5,5 +5,5 @@ export declare const SuggestedPromptsContext: React.Context<SuggestedPromptsCont
5
5
  export declare const SuggestedPromptProvider: ({ children, suggestedPrompts, }: {
6
6
  children?: React.ReactNode;
7
7
  suggestedPrompts?: SuggestedPrompt[] | undefined;
8
- }) => React.JSX.Element;
8
+ }) => JSX.Element;
9
9
  export {};
@@ -4,5 +4,5 @@ export declare const WelcomeMessageContext: React.Context<WelcomeMessageContextP
4
4
  export declare const WelcomeMessageProvider: ({ children, welcomeMessage, }: {
5
5
  children?: React.ReactNode;
6
6
  welcomeMessage?: React.ReactNode;
7
- }) => React.JSX.Element;
7
+ }) => JSX.Element;
8
8
  export {};
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IconElement } from './IconElement';
2
3
  export interface AIConversationElements {
3
4
  Button: typeof ButtonElement;
@@ -34,10 +34,10 @@ export interface AIConversationProps {
34
34
  aiContext?: () => object;
35
35
  }
36
36
  export interface AIConversation<PropsType extends AIConversationProps = AIConversationProps> {
37
- (props: PropsType): React.JSX.Element;
38
- DefaultMessage: () => React.JSX.Element | undefined;
39
- Messages: () => React.JSX.Element;
40
- Form: () => React.JSX.Element;
37
+ (props: PropsType): JSX.Element;
38
+ DefaultMessage: () => JSX.Element | undefined;
39
+ Messages: () => JSX.Element;
40
+ Form: () => JSX.Element;
41
41
  Provider: (props: AIConversationProviderProps) => React.JSX.Element;
42
42
  }
43
43
  export type MessageVariant = 'bubble' | 'default';
@@ -1,10 +1,10 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { AIConversationElements } from '../../context/elements';
3
3
  export declare const RemoveButtonControl: RemoveButtonControl;
4
4
  interface RemoveButtonControl<T extends Partial<AIConversationElements> = AIConversationElements> {
5
5
  (props: {
6
6
  onRemove: () => void;
7
- }): React.JSX.Element;
7
+ }): JSX.Element;
8
8
  Button: T['Button'];
9
9
  Icon: T['Icon'];
10
10
  }
@@ -13,7 +13,7 @@ interface TextControl<T extends Partial<AIConversationElements> = AIConversation
13
13
  (props: {
14
14
  fileName: string;
15
15
  fileSize: number;
16
- }): React.JSX.Element;
16
+ }): JSX.Element;
17
17
  Container: T['View'];
18
18
  FileName: T['Text'];
19
19
  FileSize: T['Text'];
@@ -24,7 +24,7 @@ interface AttachmentControl<T extends Partial<AIConversationElements> = AIConver
24
24
  (props: {
25
25
  image: File;
26
26
  onRemove: () => void;
27
- }): React.JSX.Element;
27
+ }): JSX.Element;
28
28
  Container: T['ListItem'];
29
29
  ImageIcon: T['Icon'];
30
30
  RemoveButton: RemoveButtonControl<T>;
@@ -32,7 +32,7 @@ interface AttachmentControl<T extends Partial<AIConversationElements> = AIConver
32
32
  }
33
33
  export declare const AttachmentListControl: AttachmentListControl;
34
34
  export interface AttachmentListControl<T extends Partial<AIConversationElements> = AIConversationElements> {
35
- (): React.JSX.Element;
35
+ (): JSX.Element;
36
36
  List: T['UnorderedList'];
37
37
  Item: AttachmentControl<T>;
38
38
  }
@@ -1,2 +1,2 @@
1
- import * as React from 'react';
2
- export declare const DefaultMessageControl: () => React.JSX.Element | undefined;
1
+ /// <reference types="react" />
2
+ export declare const DefaultMessageControl: () => JSX.Element | undefined;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { AIConversationElements } from '../../context/elements';
3
3
  import { ActionsBarControl } from './ActionsBarControl';
4
4
  import { AvatarControl } from './AvatarControl';
@@ -7,11 +7,11 @@ export declare const MessageControl: MessageControl;
7
7
  interface MessageControl {
8
8
  (props: {
9
9
  message: ConversationMessage;
10
- }): React.JSX.Element;
10
+ }): JSX.Element;
11
11
  }
12
12
  export declare const MessagesControl: MessagesControl;
13
13
  export interface MessagesControl {
14
- (): React.JSX.Element;
14
+ (): JSX.Element;
15
15
  ActionsBar: ActionsBarControl;
16
16
  Avatar: AvatarControl;
17
17
  Container: AIConversationElements['View'];
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ /// <reference types="react" />
2
2
  import { ConversationInputContextProps } from '../../context';
3
3
  export declare const Attachments: ({ files, setInput, }: {
4
4
  files?: File[] | undefined;
5
5
  setInput: ConversationInputContextProps['setInput'];
6
- }) => React.JSX.Element | null;
6
+ }) => JSX.Element | null;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { V6Client } from '@aws-amplify/api-graphql';
2
3
  export type ConversationRoute = V6Client<any>['conversations'][string];
3
4
  export type Conversation = NonNullable<Awaited<ReturnType<ConversationRoute['create']>>['data']>;
@@ -1 +1 @@
1
- export declare const VERSION = "1.2.0";
1
+ export declare const VERSION = "1.2.1";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react-ai",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {
@@ -44,13 +44,13 @@
44
44
  "peerDependencies": {
45
45
  "@aws-amplify/api-graphql": "unstable",
46
46
  "aws-amplify": "^6.9.0",
47
- "react": "^16.14 || ^17 || ^18 || ^19",
48
- "react-dom": "^16.14 || ^17 || ^18 || ^19"
47
+ "react": "^16.14.0 || ^17.0 || ^18.0",
48
+ "react-dom": "^16.14.0 || ^17.0 || ^18.0"
49
49
  },
50
50
  "dependencies": {
51
51
  "@aws-amplify/ui": "^6.7.1",
52
- "@aws-amplify/ui-react": "^6.8.0",
53
- "@aws-amplify/ui-react-core": "^3.2.0"
52
+ "@aws-amplify/ui-react": "^6.8.1",
53
+ "@aws-amplify/ui-react-core": "^3.2.1"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/jest-when": "^3.5.0",