diff --git a/packages/@react-spectrum/ai/exports/index.ts b/packages/@react-spectrum/ai/exports/index.ts
index fc47ff18a0c..b53fa8ba3bb 100644
--- a/packages/@react-spectrum/ai/exports/index.ts
+++ b/packages/@react-spectrum/ai/exports/index.ts
@@ -53,6 +53,7 @@ export type {
PromptFieldToolbarProps,
PromptFieldTokenValue,
InsertMenuItemProps,
+ AttachFileMenuItemProps,
PromptFieldVoiceButtonProps,
InsertTokenMenuItemProps,
InsertTextMenuItemProps,
diff --git a/packages/@react-spectrum/ai/src/PromptField.tsx b/packages/@react-spectrum/ai/src/PromptField.tsx
index acd906ec6d5..7073e571789 100644
--- a/packages/@react-spectrum/ai/src/PromptField.tsx
+++ b/packages/@react-spectrum/ai/src/PromptField.tsx
@@ -33,7 +33,7 @@ import {
} from 'react';
import {FocusableRef} from '@react-types/shared';
import {getInteractionModality} from 'react-aria/private/interactions/useFocusVisible';
-import {IconContext} from '@react-spectrum/s2';
+import {IconContext, MenuTriggerProps} from '@react-spectrum/s2';
import {Image, Text} from '@react-spectrum/s2/Card';
// @ts-ignore
import intlMessages from '../intl/*.json';
@@ -96,6 +96,7 @@ export interface PromptFieldProps {
onStop?: () => void;
onAddAttachments?: (attachments: PromptFieldAttachment[]) => void;
onRemoveAttachments?: (attachments: PromptFieldAttachment[]) => void;
+ onAITermsPress?: () => void;
styles?: StyleString;
variant?: 'balanced' | 'prominent' | 'subtle';
brandColor?: string;
@@ -363,7 +364,8 @@ export const PromptField = forwardRef(function PromptField(
+ target="_blank"
+ onPress={props.onAITermsPress}>
{stringFormatter.format('promptfield.aiUserGuidlines')}
@@ -951,15 +953,15 @@ function buildVoicePrompt(base: TokenFieldValue, voiceText: string): PromptField
return base.replaceRange(base.caretPosition, base.caretPosition, voiceText) as PromptFieldValue;
}
-export interface InsertMenuItemProps {
+export interface InsertMenuItemProps extends Pick {
children: React.ReactNode;
}
export function InsertMenuButton(props: InsertMenuItemProps) {
- let {children} = props;
+ let {children, onOpenChange} = props;
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/ai');
return (
-
+
);
}
+export interface AttachFileMenuItemProps extends Omit<
+ MenuItemProps,
+ | 'children'
+ | 'UNSAFE_className'
+ | 'UNSAFE_style'
+ | 'download'
+ | 'href'
+ | 'hrefLang'
+ | 'ping'
+ | 'referrerPolicy'
+ | 'rel'
+ | 'routerOptions'
+ | 'target'
+> {}
-export function AttachFileMenuItem() {
+export function AttachFileMenuItem(props: AttachFileMenuItemProps) {
+ let {onAction, ...otherProps} = props;
let {acceptedAttachmentTypes, setAttachments, onAddAttachments} = useContext(PromptFieldContext);
return (