Skip to content

chore: export various props from mono package, narrow types, prop renames, docs updates - #10383

Merged
snowystinger merged 6 commits into
mainfrom
july_release_audit
Jul 30, 2026
Merged

chore: export various props from mono package, narrow types, prop renames, docs updates#10383
snowystinger merged 6 commits into
mainfrom
july_release_audit

Conversation

@LFDanLu

@LFDanLu LFDanLu commented Jul 28, 2026

Copy link
Copy Markdown
Member

audit

✅ Pull Request Checklist:

  • Included link to corresponding React Spectrum GitHub Issue.
  • Added/updated unit tests and storybook for this change (for new code or code which already has tests).
  • Filled out test instructions.
  • Updated documentation (if it already exists for this component).
  • Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

🧢 Your Project:

RSP

@LFDanLu LFDanLu added release small review Easy to review PR labels Jul 28, 2026
@rspbot

rspbot commented Jul 28, 2026

Copy link
Copy Markdown

snowystinger
snowystinger previously approved these changes Jul 29, 2026
@LFDanLu LFDanLu changed the title chore: export various props from mono package and narrow types chore: export various props from mono package, narrow types, prop renames, docs updates Jul 29, 2026
@rspbot

rspbot commented Jul 29, 2026

Copy link
Copy Markdown

@rspbot

rspbot commented Jul 29, 2026

Copy link
Copy Markdown
## API Changes

react-aria-components

/react-aria-components:PreviewTrigger

 PreviewTrigger {
   children: ReactNode
-  closeDelay?: number = 500
+  closeDelay?: number = 200
   defaultOpen?: boolean
-  delay?: number = 1500
+  delay?: number = 600
   isDisabled?: boolean
   isOpen?: boolean
   onOpenChange?: (boolean) => void
 }

/react-aria-components:PreviewTriggerProps

 PreviewTriggerProps {
   children: ReactNode
-  closeDelay?: number = 500
+  closeDelay?: number = 200
   defaultOpen?: boolean
-  delay?: number = 1500
+  delay?: number = 600
   isDisabled?: boolean
   isOpen?: boolean
   onOpenChange?: (boolean) => void
 }

@react-spectrum/ai

/@react-spectrum/ai:Attachment

 Attachment {
-  allowsArrowNavigation?: boolean
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   children: ReactNode | (AttachmentRenderProps) => ReactNode
   density?: 'compact' | 'regular' | 'spacious' = 'regular'
   download?: boolean | string
-  focusMode?: 'child' | 'row'
   href?: Href
   hrefLang?: string
   id?: Key
   isDisabled?: boolean
   onAction?: () => void
   onPress?: (PressEvent) => void
   onPressChange?: (boolean) => void
   onPressEnd?: (PressEvent) => void
   onPressStart?: (PressEvent) => void
   onPressUp?: (PressEvent) => void
   ping?: string
   referrerPolicy?: HTMLAttributeReferrerPolicy
   rel?: string
   render?: DOMRenderFunction<keyof React.JSX.IntrinsicElements, TagRenderProps>
   routerOptions?: RouterOptions
   size?: 'XS' | 'S' | 'M' | 'L' | 'XL' = 'M'
   styles?: StyleString
   target?: HTMLAttributeAnchorTarget
   textValue?: string
   uploadProgress?: number
   value?: T
   variant?: 'primary' | 'secondary' | 'tertiary' | 'quiet' = 'primary'
 }

/@react-spectrum/ai:AutoLinkingTokenFieldValue

-AutoLinkingTokenFieldValue {
-  caretPosition: Position
-  constructor: (readonly Array<TokenFieldSegment<T>>, TokenFieldValueOptions) => void
-  delete: (Position, Intl.Segmenter, any, any) => this
-  deleteLine: (Position, any, any) => this
-  endCoalescing: () => void
-  findBoundaryWithSegmenter: (Position, Intl.Segmenter, any) => Position | null
-  findLineBoundary: (Position, any) => Position | null
-  findText: (Position, any, string | RegExp) => Position | null
-  redo: () => this
-  replaceRange: (Position, Position, string, any) => this
-  replaceRangeWithSegments: (Position, Position, Array<TokenFieldSegment<T>>, any) => this
-  segments: readonly Array<TokenFieldSegment<T>>
-  slice: (Position, Position) => this
-  toString: () => string
-  tokenize: (string) => Array<TokenFieldSegment>
-  undo: () => this
-  withCaretPosition: (Position) => this
-}

/@react-spectrum/ai:CommandMenuItem

 CommandMenuItem {
-  UNSAFE_className?: UnsafeClassName
-  UNSAFE_style?: CSSProperties
   aria-label?: string
   children: ReactNode
-  download?: boolean | string
-  href?: Href
-  hrefLang?: string
   id?: Key
   isDisabled?: boolean
   onAction?: () => void
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onHoverChange?: (boolean) => void
   onHoverEnd?: (HoverEvent) => void
   onHoverStart?: (HoverEvent) => void
   onPress?: (PressEvent) => void
   onPressChange?: (boolean) => void
   onPressEnd?: (PressEvent) => void
   onPressStart?: (PressEvent) => void
   onPressUp?: (PressEvent) => void
-  ping?: string
-  referrerPolicy?: HTMLAttributeReferrerPolicy
-  rel?: string
-  routerOptions?: RouterOptions
   shouldCloseOnSelect?: boolean
   styles?: StylesProp
-  target?: HTMLAttributeAnchorTarget
   textValue?: string
   value?: T
 }

/@react-spectrum/ai:InsertTextMenuItem

 InsertTextMenuItem {
-  UNSAFE_className?: UnsafeClassName
-  UNSAFE_style?: CSSProperties
   aria-label?: string
   children: ReactNode
-  download?: boolean | string
-  href?: Href
-  hrefLang?: string
   id?: Key
   isDisabled?: boolean
   onAction?: () => void
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onHoverChange?: (boolean) => void
   onHoverEnd?: (HoverEvent) => void
   onHoverStart?: (HoverEvent) => void
   onPress?: (PressEvent) => void
   onPressChange?: (boolean) => void
   onPressEnd?: (PressEvent) => void
   onPressStart?: (PressEvent) => void
   onPressUp?: (PressEvent) => void
-  ping?: string
-  referrerPolicy?: HTMLAttributeReferrerPolicy
-  rel?: string
-  routerOptions?: RouterOptions
   shouldCloseOnSelect?: boolean
   styles?: StylesProp
-  target?: HTMLAttributeAnchorTarget
   textValue?: string
   value?: T
 }

/@react-spectrum/ai:InsertTokenMenuItem

 InsertTokenMenuItem {
-  UNSAFE_className?: UnsafeClassName
-  UNSAFE_style?: CSSProperties
   aria-label?: string
   children: ReactNode
-  download?: boolean | string
-  href?: Href
-  hrefLang?: string
   id?: Key
   isDisabled?: boolean
   onAction?: () => void
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onHoverChange?: (boolean) => void
   onHoverEnd?: (HoverEvent) => void
   onHoverStart?: (HoverEvent) => void
   onPress?: (PressEvent) => void
   onPressChange?: (boolean) => void
   onPressEnd?: (PressEvent) => void
   onPressStart?: (PressEvent) => void
   onPressUp?: (PressEvent) => void
-  ping?: string
-  referrerPolicy?: HTMLAttributeReferrerPolicy
-  rel?: string
-  routerOptions?: RouterOptions
   shouldCloseOnSelect?: boolean
   styles?: StylesProp
-  target?: HTMLAttributeAnchorTarget
   textValue?: string
   value?: T
 }

/@react-spectrum/ai:AttachmentProps

 AttachmentProps {
-  allowsArrowNavigation?: boolean
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   children: ReactNode | (AttachmentRenderProps) => ReactNode
   density?: 'compact' | 'regular' | 'spacious' = 'regular'
   download?: boolean | string
-  focusMode?: 'child' | 'row'
   href?: Href
   hrefLang?: string
   id?: Key
   isDisabled?: boolean
   onAction?: () => void
   onPress?: (PressEvent) => void
   onPressChange?: (boolean) => void
   onPressEnd?: (PressEvent) => void
   onPressStart?: (PressEvent) => void
   onPressUp?: (PressEvent) => void
   ping?: string
   referrerPolicy?: HTMLAttributeReferrerPolicy
   rel?: string
   render?: DOMRenderFunction<keyof React.JSX.IntrinsicElements, TagRenderProps>
   routerOptions?: RouterOptions
   size?: 'XS' | 'S' | 'M' | 'L' | 'XL' = 'M'
   styles?: StyleString
   target?: HTMLAttributeAnchorTarget
   textValue?: string
   uploadProgress?: number
   value?: T
   variant?: 'primary' | 'secondary' | 'tertiary' | 'quiet' = 'primary'
 }

/@react-spectrum/ai:PromptTokenFieldPopoverProps

 PromptTokenFieldPopoverProps {
   UNSAFE_className?: UnsafeClassName
   UNSAFE_style?: CSSProperties
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   arrowRef?: RefObject<Element | null>
   boundaryElement?: Element = document.body
   children?: ChildrenOrFunction<PopoverRenderProps>
   containerPadding?: number = 12
   crossOffset?: number = 0
   defaultOpen?: boolean
   filterAnchor?: Position | null
   getTargetRect?: (Element) => DOMRect | null | undefined = target.getBoundingClientRect()
   hideArrow?: boolean = false
   isEntering?: boolean
   isExiting?: boolean
   isFocused?: boolean
   isNonModal?: boolean
   isOpen?: boolean
   items?: Array<React.ReactNode> | null | Promise<Array<React.ReactNode> | null>
   maxHeight?: number
   offset?: number = 8
   onBlurWithin?: (FocusEvent) => void
   onFocusWithin?: (FocusEvent) => void
   onFocusWithinChange?: (boolean) => void
   onOpenChange?: (boolean) => void
   placement?: Placement = 'bottom'
   scrollRef?: RefObject<Element | null> = overlayRef
   shouldFlip?: boolean = true
-  shouldSkipAnimation?: boolean
   size?: 'S' | 'M' | 'L'
   slot?: string | null
   styles?: StyleString
   trigger?: string
 }

/@react-spectrum/ai:PromptFieldValue

+PromptFieldValue {
+  caretPosition: Position
+  constructor: (readonly Array<TokenFieldSegment<T>>, TokenFieldValueOptions) => void
+  delete: (Position, Intl.Segmenter, any, any) => this
+  deleteLine: (Position, any, any) => this
+  endCoalescing: () => void
+  findBoundaryWithSegmenter: (Position, Intl.Segmenter, any) => Position | null
+  findLineBoundary: (Position, any) => Position | null
+  findText: (Position, any, string | RegExp) => Position | null
+  redo: () => this
+  replaceRange: (Position, Position, string, any) => this
+  replaceRangeWithSegments: (Position, Position, Array<TokenFieldSegment<T>>, any) => this
+  segments: readonly Array<TokenFieldSegment<T>>
+  slice: (Position, Position) => this
+  toString: () => string
+  tokenize: (string) => Array<TokenFieldSegment>
+  undo: () => this
+  withCaretPosition: (Position) => this
+}

/@react-spectrum/ai:InsertTokenMenuItemProps

+InsertTokenMenuItemProps {
+  aria-label?: string
+  children: ReactNode
+  id?: Key
+  isDisabled?: boolean
+  onAction?: () => void
+  onBlur?: (FocusEvent<Target>) => void
+  onFocus?: (FocusEvent<Target>) => void
+  onFocusChange?: (boolean) => void
+  onHoverChange?: (boolean) => void
+  onHoverEnd?: (HoverEvent) => void
+  onHoverStart?: (HoverEvent) => void
+  onPress?: (PressEvent) => void
+  onPressChange?: (boolean) => void
+  onPressEnd?: (PressEvent) => void
+  onPressStart?: (PressEvent) => void
+  onPressUp?: (PressEvent) => void
+  shouldCloseOnSelect?: boolean
+  styles?: StylesProp
+  textValue?: string
+  value?: T
+}

/@react-spectrum/ai:InsertTextMenuItemProps

+InsertTextMenuItemProps {
+  aria-label?: string
+  children: ReactNode
+  id?: Key
+  isDisabled?: boolean
+  onAction?: () => void
+  onBlur?: (FocusEvent<Target>) => void
+  onFocus?: (FocusEvent<Target>) => void
+  onFocusChange?: (boolean) => void
+  onHoverChange?: (boolean) => void
+  onHoverEnd?: (HoverEvent) => void
+  onHoverStart?: (HoverEvent) => void
+  onPress?: (PressEvent) => void
+  onPressChange?: (boolean) => void
+  onPressEnd?: (PressEvent) => void
+  onPressStart?: (PressEvent) => void
+  onPressUp?: (PressEvent) => void
+  shouldCloseOnSelect?: boolean
+  styles?: StylesProp
+  textValue?: string
+  value?: T
+}

/@react-spectrum/ai:CommandMenuItemProps

+CommandMenuItemProps {
+  aria-label?: string
+  children: ReactNode
+  id?: Key
+  isDisabled?: boolean
+  onAction?: () => void
+  onBlur?: (FocusEvent<Target>) => void
+  onFocus?: (FocusEvent<Target>) => void
+  onFocusChange?: (boolean) => void
+  onHoverChange?: (boolean) => void
+  onHoverEnd?: (HoverEvent) => void
+  onHoverStart?: (HoverEvent) => void
+  onPress?: (PressEvent) => void
+  onPressChange?: (boolean) => void
+  onPressEnd?: (PressEvent) => void
+  onPressStart?: (PressEvent) => void
+  onPressUp?: (PressEvent) => void
+  shouldCloseOnSelect?: boolean
+  styles?: StylesProp
+  textValue?: string
+  value?: T
+}

@rspbot

rspbot commented Jul 29, 2026

Copy link
Copy Markdown

Agent Skills Changes

Modified (8)
Install

React Spectrum S2:

npx skills add https://d1pzu54gtk2aed.cloudfront.net/pr/0f5b698aab4bb9688b1699bbee07be087a92c042/

React Aria:

npx skills add https://d5iwopk28bdhl.cloudfront.net/pr/0f5b698aab4bb9688b1699bbee07be087a92c042/

export {TableLayout} from '../src/layout/TableLayout';
export {WaterfallLayout} from '../src/layout/WaterfallLayout';
export {useTokenFieldState} from '../src/tokenfield/useTokenFieldState';
export {TokenFieldValue, Direction} from '../src/tokenfield/TokenFieldValue';

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just calling it Direction in this index file for all components seems kinda dangerous. Maybe we need to name it something more specific...

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, i don't love it being "Direction", TokenSearchDirection? TokenFieldTextActionDirection?

@snowystinger
snowystinger added this pull request to the merge queue Jul 30, 2026
Merged via the queue into main with commit 3823fb8 Jul 30, 2026
31 checks passed
@snowystinger
snowystinger deleted the july_release_audit branch July 30, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants