Skip to content

chore: revert ts update#8060

Merged
snowystinger merged 1 commit intomainfrom
revert-typescript-update
Apr 8, 2025
Merged

chore: revert ts update#8060
snowystinger merged 1 commit intomainfrom
revert-typescript-update

Conversation

@snowystinger
Copy link
Member

Closes

✅ 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:

@snowystinger snowystinger enabled auto-merge April 8, 2025 21:18
@rspbot
Copy link

rspbot commented Apr 8, 2025

@rspbot
Copy link

rspbot commented Apr 8, 2025

## API Changes

react-aria-components

/react-aria-components:Select

 Select <T extends {} = {
   
 }> {
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   children?: ReactNode | ((SelectRenderProps & {
     defaultChildren: ReactNode | undefined
 })) => ReactNode
   className?: string | ((SelectRenderProps & {
     defaultClassName: string | undefined
 })) => string
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   disabledKeys?: Iterable<Key>
   excludeFromTabOrder?: boolean
   id?: string
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   name?: string
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   slot?: string | null
   style?: CSSProperties | ((SelectRenderProps & {
 })) => CSSProperties | undefined
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'native' | 'aria' = 'native'
 }

/react-aria-components:SelectProps

 SelectProps <T extends {} = {
   
 }> {
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   children?: ReactNode | ((SelectRenderProps & {
     defaultChildren: ReactNode | undefined
 })) => ReactNode
   className?: string | ((SelectRenderProps & {
     defaultClassName: string | undefined
 })) => string
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   disabledKeys?: Iterable<Key>
   excludeFromTabOrder?: boolean
   id?: string
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   name?: string
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   slot?: string | null
   style?: CSSProperties | ((SelectRenderProps & {
 })) => CSSProperties | undefined
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'native' | 'aria' = 'native'
 }

@react-aria/select

/@react-aria/select:AriaSelectOptions

 AriaSelectOptions <T> {
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   disabledKeys?: Iterable<Key>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   excludeFromTabOrder?: boolean
   id?: string
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   items?: Iterable<T>
   keyboardDelegate?: KeyboardDelegate
   label?: ReactNode
   name?: string
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'aria' | 'native' = 'aria'

/@react-aria/select:AriaSelectProps

 AriaSelectProps <T> {
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   children: CollectionChildren<T>
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   disabledKeys?: Iterable<Key>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   excludeFromTabOrder?: boolean
   id?: string
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   items?: Iterable<T>
   label?: ReactNode
   name?: string
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'aria' | 'native' = 'aria'

@react-aria/steplist

/@react-aria/steplist:AriaStepListProps

 AriaStepListProps <T> {
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   children: CollectionChildren<T>
   defaultLastCompletedStep?: Key
   defaultSelectedKey?: Key
   disabledKeys?: Iterable<Key>
   disallowEmptySelection?: boolean
   id?: string
   isDisabled?: boolean
   isReadOnly?: boolean
   items?: Iterable<T>
   lastCompletedStep?: Key
   onLastCompletedStepChange?: (Key | null) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   selectedKey?: Key | null
 }

@react-spectrum/picker

/@react-spectrum/picker:Picker

 Picker <T extends {}> {
   UNSAFE_className?: string
   UNSAFE_style?: CSSProperties
   align?: Alignment = 'start'
   alignSelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'center' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'stretch'>
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   bottom?: Responsive<DimensionValue>
   children: CollectionChildren<{}>
   contextualHelp?: ReactNode
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   direction?: 'bottom' | 'top' = 'bottom'
   disabledKeys?: Iterable<Key>
   end?: Responsive<DimensionValue>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   excludeFromTabOrder?: boolean
   flex?: Responsive<string | number | boolean>
   flexBasis?: Responsive<number | string>
   flexGrow?: Responsive<number>
   flexShrink?: Responsive<number>
   gridArea?: Responsive<string>
   gridColumn?: Responsive<string>
   gridColumnEnd?: Responsive<string>
   gridColumnStart?: Responsive<string>
   gridRow?: Responsive<string>
   gridRowEnd?: Responsive<string>
   gridRowStart?: Responsive<string>
   height?: Responsive<DimensionValue>
   id?: string
   isDisabled?: boolean
   isHidden?: Responsive<boolean>
   isInvalid?: boolean
   isLoading?: boolean
   isOpen?: boolean
   isQuiet?: boolean
   isRequired?: boolean
   items?: Iterable<{}>
   justifySelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'left' | 'right' | 'stretch'>
   label?: ReactNode
   labelAlign?: Alignment = 'start'
   labelPosition?: LabelPosition = 'top'
   left?: Responsive<DimensionValue>
   margin?: Responsive<DimensionValue>
   marginBottom?: Responsive<DimensionValue>
   marginEnd?: Responsive<DimensionValue>
   marginStart?: Responsive<DimensionValue>
   marginTop?: Responsive<DimensionValue>
   marginX?: Responsive<DimensionValue>
   marginY?: Responsive<DimensionValue>
   maxHeight?: Responsive<DimensionValue>
   maxWidth?: Responsive<DimensionValue>
   menuWidth?: DimensionValue
   minHeight?: Responsive<DimensionValue>
   minWidth?: Responsive<DimensionValue>
   name?: string
   necessityIndicator?: NecessityIndicator = 'icon'
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onLoadMore?: () => any
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   order?: Responsive<number>
   placeholder?: string
   position?: Responsive<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'>
   right?: Responsive<DimensionValue>
   shouldFlip?: boolean = true
   start?: Responsive<DimensionValue>
   top?: Responsive<DimensionValue>
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'aria' | 'native' = 'aria'
   width?: Responsive<DimensionValue>
   zIndex?: Responsive<number>
 }

/@react-spectrum/picker:SpectrumPickerProps

 SpectrumPickerProps <T> {
   UNSAFE_className?: string
   UNSAFE_style?: CSSProperties
   align?: Alignment = 'start'
   alignSelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'center' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'stretch'>
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   bottom?: Responsive<DimensionValue>
   children: CollectionChildren<T>
   contextualHelp?: ReactNode
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   direction?: 'bottom' | 'top' = 'bottom'
   disabledKeys?: Iterable<Key>
   end?: Responsive<DimensionValue>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   excludeFromTabOrder?: boolean
   flex?: Responsive<string | number | boolean>
   flexBasis?: Responsive<number | string>
   flexGrow?: Responsive<number>
   flexShrink?: Responsive<number>
   gridArea?: Responsive<string>
   gridColumn?: Responsive<string>
   gridColumnEnd?: Responsive<string>
   gridColumnStart?: Responsive<string>
   gridRow?: Responsive<string>
   gridRowEnd?: Responsive<string>
   gridRowStart?: Responsive<string>
   height?: Responsive<DimensionValue>
   id?: string
   isDisabled?: boolean
   isHidden?: Responsive<boolean>
   isInvalid?: boolean
   isLoading?: boolean
   isOpen?: boolean
   isQuiet?: boolean
   isRequired?: boolean
   items?: Iterable<T>
   justifySelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'left' | 'right' | 'stretch'>
   label?: ReactNode
   labelAlign?: Alignment = 'start'
   labelPosition?: LabelPosition = 'top'
   left?: Responsive<DimensionValue>
   margin?: Responsive<DimensionValue>
   marginBottom?: Responsive<DimensionValue>
   marginEnd?: Responsive<DimensionValue>
   marginStart?: Responsive<DimensionValue>
   marginTop?: Responsive<DimensionValue>
   marginX?: Responsive<DimensionValue>
   marginY?: Responsive<DimensionValue>
   maxHeight?: Responsive<DimensionValue>
   maxWidth?: Responsive<DimensionValue>
   menuWidth?: DimensionValue
   minHeight?: Responsive<DimensionValue>
   minWidth?: Responsive<DimensionValue>
   name?: string
   necessityIndicator?: NecessityIndicator = 'icon'
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onLoadMore?: () => any
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   order?: Responsive<number>
   placeholder?: string
   position?: Responsive<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'>
   right?: Responsive<DimensionValue>
   shouldFlip?: boolean = true
   start?: Responsive<DimensionValue>
   top?: Responsive<DimensionValue>
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'aria' | 'native' = 'aria'
   width?: Responsive<DimensionValue>
   zIndex?: Responsive<number>
 }

@react-spectrum/s2

/@react-spectrum/s2:Picker

 Picker <T extends {}> {
   UNSAFE_className?: string
   UNSAFE_style?: CSSProperties
   align?: 'start' | 'end' = 'start'
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   children: ReactNode | ({}) => ReactNode
   contextualHelp?: ReactNode
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   direction?: 'bottom' | 'top' = 'bottom'
   disabledKeys?: Iterable<Key>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   excludeFromTabOrder?: boolean
   id?: string
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   items?: Iterable<T>
   label?: ReactNode
   labelAlign?: Alignment = 'start'
   labelPosition?: LabelPosition = 'top'
   menuWidth?: number
   name?: string
   necessityIndicator?: NecessityIndicator = 'icon'
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   shouldFlip?: boolean = true
   size?: 'S' | 'M' | 'L' | 'XL' = 'M'
   styles?: StylesProp
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'native' | 'aria' = 'native'
 }

/@react-spectrum/s2:PickerProps

 PickerProps <T extends {}> {
   UNSAFE_className?: string
   UNSAFE_style?: CSSProperties
   align?: 'start' | 'end' = 'start'
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoComplete?: string
   autoFocus?: boolean
   children: ReactNode | ({}) => ReactNode
   contextualHelp?: ReactNode
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   direction?: 'bottom' | 'top' = 'bottom'
   disabledKeys?: Iterable<Key>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   excludeFromTabOrder?: boolean
   id?: string
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   items?: Iterable<T>
   label?: ReactNode
   labelAlign?: Alignment = 'start'
   labelPosition?: LabelPosition = 'top'
   menuWidth?: number
   name?: string
   necessityIndicator?: NecessityIndicator = 'icon'
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   shouldFlip?: boolean = true
   size?: 'S' | 'M' | 'L' | 'XL' = 'M'
   styles?: StylesProp
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'native' | 'aria' = 'native'
 }

@react-spectrum/steplist

/@react-spectrum/steplist:StepList

 StepList <T extends {}> {
   UNSAFE_className?: string
   UNSAFE_style?: CSSProperties
   alignSelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'center' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'stretch'>
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   bottom?: Responsive<DimensionValue>
   children: CollectionChildren<{}>
   defaultLastCompletedStep?: Key
   defaultSelectedKey?: Key
   disabledKeys?: Iterable<Key>
   disallowEmptySelection?: boolean
   end?: Responsive<DimensionValue>
   flex?: Responsive<string | number | boolean>
   flexBasis?: Responsive<number | string>
   flexGrow?: Responsive<number>
   flexShrink?: Responsive<number>
   gridArea?: Responsive<string>
   gridColumn?: Responsive<string>
   gridColumnEnd?: Responsive<string>
   gridColumnStart?: Responsive<string>
   gridRow?: Responsive<string>
   gridRowEnd?: Responsive<string>
   gridRowStart?: Responsive<string>
   height?: Responsive<DimensionValue>
   id?: string
   isDisabled?: boolean
   isEmphasized?: boolean = false
   isHidden?: Responsive<boolean>
   isReadOnly?: boolean
   items?: Iterable<{}>
   justifySelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'left' | 'right' | 'stretch'>
   lastCompletedStep?: Key
   left?: Responsive<DimensionValue>
   margin?: Responsive<DimensionValue>
   marginBottom?: Responsive<DimensionValue>
   marginEnd?: Responsive<DimensionValue>
   marginStart?: Responsive<DimensionValue>
   marginTop?: Responsive<DimensionValue>
   marginX?: Responsive<DimensionValue>
   marginY?: Responsive<DimensionValue>
   maxHeight?: Responsive<DimensionValue>
   maxWidth?: Responsive<DimensionValue>
   minHeight?: Responsive<DimensionValue>
   minWidth?: Responsive<DimensionValue>
   onLastCompletedStepChange?: (Key | null) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   order?: Responsive<number>
   orientation?: Orientation = 'horizontal'
   position?: Responsive<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'>
   right?: Responsive<DimensionValue>
   size?: 'S' | 'M' | 'L' | 'XL' = 'M'
   start?: Responsive<DimensionValue>
   top?: Responsive<DimensionValue>
   width?: Responsive<DimensionValue>
   zIndex?: Responsive<number>
 }

/@react-spectrum/steplist:SpectrumStepListProps

 SpectrumStepListProps <T> {
   UNSAFE_className?: string
   UNSAFE_style?: CSSProperties
   alignSelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'center' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'stretch'>
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   bottom?: Responsive<DimensionValue>
   children: CollectionChildren<T>
   defaultLastCompletedStep?: Key
   defaultSelectedKey?: Key
   disabledKeys?: Iterable<Key>
   disallowEmptySelection?: boolean
   end?: Responsive<DimensionValue>
   flex?: Responsive<string | number | boolean>
   flexBasis?: Responsive<number | string>
   flexGrow?: Responsive<number>
   flexShrink?: Responsive<number>
   gridArea?: Responsive<string>
   gridColumn?: Responsive<string>
   gridColumnEnd?: Responsive<string>
   gridColumnStart?: Responsive<string>
   gridRow?: Responsive<string>
   gridRowEnd?: Responsive<string>
   gridRowStart?: Responsive<string>
   height?: Responsive<DimensionValue>
   id?: string
   isDisabled?: boolean
   isEmphasized?: boolean = false
   isHidden?: Responsive<boolean>
   isReadOnly?: boolean
   items?: Iterable<T>
   justifySelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'left' | 'right' | 'stretch'>
   lastCompletedStep?: Key
   left?: Responsive<DimensionValue>
   margin?: Responsive<DimensionValue>
   marginBottom?: Responsive<DimensionValue>
   marginEnd?: Responsive<DimensionValue>
   marginStart?: Responsive<DimensionValue>
   marginTop?: Responsive<DimensionValue>
   marginX?: Responsive<DimensionValue>
   marginY?: Responsive<DimensionValue>
   maxHeight?: Responsive<DimensionValue>
   maxWidth?: Responsive<DimensionValue>
   minHeight?: Responsive<DimensionValue>
   minWidth?: Responsive<DimensionValue>
   onLastCompletedStepChange?: (Key | null) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   order?: Responsive<number>
   orientation?: Orientation = 'horizontal'
   position?: Responsive<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'>
   right?: Responsive<DimensionValue>
   size?: 'S' | 'M' | 'L' | 'XL' = 'M'
   start?: Responsive<DimensionValue>
   top?: Responsive<DimensionValue>
   width?: Responsive<DimensionValue>
   zIndex?: Responsive<number>
 }

@react-stately/list

/@react-stately/list:SingleSelectListProps

 SingleSelectListProps <T> {
   collection?: Collection<Node<T>>
   defaultSelectedKey?: Key
   filter?: (Iterable<Node<T>>) => Iterable<Node<T>>
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   selectedKey?: Key | null
 }

@react-stately/select

/@react-stately/select:SelectProps

 SelectProps <T> {
   autoFocus?: boolean
   children: CollectionChildren<T>
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   disabledKeys?: Iterable<Key>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   items?: Iterable<T>
   label?: ReactNode
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'aria' | 'native' = 'aria'

/@react-stately/select:SelectStateOptions

 SelectStateOptions <T> {
   autoFocus?: boolean
   collection?: Collection<Node<T>>
   defaultOpen?: boolean
   defaultSelectedKey?: Key
   description?: ReactNode
   disabledKeys?: Iterable<Key>
   errorMessage?: ReactNode | (ValidationResult) => ReactNode
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isRequired?: boolean
   items?: Iterable<T>
   label?: ReactNode
   onBlur?: (FocusEvent<Target>) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   placeholder?: string
   selectedKey?: Key | null
   validate?: (Key) => ValidationError | boolean | null | undefined
   validationBehavior?: 'aria' | 'native' = 'aria'

@react-stately/steplist

/@react-stately/steplist:StepListProps

 StepListProps <T> {
   children: CollectionChildren<T>
   defaultLastCompletedStep?: Key
   defaultSelectedKey?: Key
   disabledKeys?: Iterable<Key>
   disallowEmptySelection?: boolean
   isDisabled?: boolean
   isReadOnly?: boolean
   items?: Iterable<T>
   lastCompletedStep?: Key
   onLastCompletedStepChange?: (Key | null) => void
-  onSelectionChange?: (Key | null) => void
+  onSelectionChange?: (Key) => void
   selectedKey?: Key | null
 }

@snowystinger snowystinger added this pull request to the merge queue Apr 8, 2025
Merged via the queue into main with commit c81a23c Apr 8, 2025
30 checks passed
@snowystinger snowystinger deleted the revert-typescript-update branch April 8, 2025 21:40
ritz078 added a commit to PSPDFKit-labs/react-spectrum that referenced this pull request Apr 10, 2025
* chore: Fix generated code sample for S2 TooltipTrigger docs (adobe#8000)

* Fix generated code sample for S2 TooltipTrigger docs

* review

* inlining

* fix: export SortDescriptor type from S2 (adobe#8030)

* chore: Deprecate UNSTABLE_portalContainer in favor for PortalProvider (adobe#7976)

* Initial refactor to tear out UNSTABLE_portalContainer in favor of the PortalContainer

* yarn.lock update

* switch to deprecating UNSTABLE_portalContainer

* prefer deprecated prop over context to make this a non-breaking change

* add rough docs

* updating copy to include explaination of UNSTABLE

* rename to UNSAFE_PortalProvider

* update copy and split out example

* use styles from RAC examples

---------

Co-authored-by: Robert Snow <rsnow@adobe.com>

* feat: Add escapeKeyBehavior to GridList/ListBox/Menu/Table/Tree (adobe#7974)

* Add disallowClearAll to Menu/ListBox so Autocomplete in Popover can close without clearing selection

* add support for diallowClearAll to grid/tree/table

* make sure RSP components also surface disallowClearAll

* update api naming to escapeKeyBehavior

* skip 17 tests for build, investigate later

* review comments

* fix: useMove broken by NODE_ENV check (adobe#8046)

* fix: ColorWheel track click (adobe#8049)

* fix: minor typo in CalendarDate docs (adobe#8043)

* fix: minor typo in CalendarDate docs

* fix second example as well

---------

Co-authored-by: Robert Snow <snowystinger@gmail.com>

* fix: Updating collection when items change parents (adobe#8052)

* export Autocomplete from S2 (adobe#8050)

* chore: Optimize table test performance (adobe#8051)

* chore: Update typescript to 5.8 (adobe#7888)

* chore: update typescript to 5.8

* fix all the types for the upgrade

* fix numberfield styles

* fix: Apply touch-action by default in usePress (adobe#8047)

* fix: Apply touch-action by default in usePress

* fix test

---------

Co-authored-by: Daniel Lu <dl1644@gmail.com>

* fix: set some better flex behaviour (adobe#8048)

* fix: Support React 19 and remove Jest reliance in test utils (adobe#7686)

* attempt to get rid of jest calls in menu util

* update RSP testing docs to directly mention mocks that maybe needed

* bump versions of RTL to 16

* use alternative to calling jest run timers in menu option selection

* fixing types and properly testing long press

* fix lint

* revert to pre testing library bump for clean slate

* fix build and another submenu edge case

now we shouldnt need to call runAllTimers after selectOption

* fix react 16 bug

* update return type of advanceTimer and docs copy

* move some general fixes from selectionMode="replace" branch here

* get rid of unneeded async

* getting rid of extraneous dep

* fix lint

* chore: revert ts update (adobe#8060)

* fix: add static color to s2 notification badge (adobe#8055)

* fix: add static color to s2 notification badge

* make opaque

* updates

* use locale

* fix lint

---------

Co-authored-by: Robert Snow <rsnow@adobe.com>

* chore: Latest translations (adobe#8036)

* Latest translations

* Translation correction

* Couple of translation corrections

* Remove å from Norwegian string

---------

Co-authored-by: Yihui Liao <44729383+yihuiliao@users.noreply.github.com>

* fix: Relax Parcel version range in public plugins (adobe#8067)

* Disclosure button label size update to match new sizes from Specturm (adobe#8006)

Co-authored-by: Danni <darobins@adobe.com>

* chore: audit 3.41 (adobe#8064)

* chore: audit 3.41

* remove deprecation

* chore: audit 3.41 (adobe#8064)

* chore: audit 3.41

* remove deprecation

* chore: Update package dependencies for @react-aria/overlays and @react-aria-components

* Added @react-aria/ssr and updated @react-aria/overlays in @react-aria/overlays package.json
* Added @react-aria/overlays, @react-aria/ssr, and @react-aria/utils in @react-aria-components package.json

* chore: Update import paths and dependencies for @react-aria-nutrient

* Refactored import statements in various components and tests to use @react-aria-nutrient/overlays instead of @react-aria/overlays.
* Removed references to @react-aria/overlays from package.json and yarn.lock.
* Updated documentation links to reflect the new package structure.

* chore: Update import paths in TableTests to use @react-aria-nutrient

* Refactored import statements in TableTests.js to replace @react-aria with @react-aria-nutrient for live-announcer, utils, and focus modules.
* Ensured consistency with recent package structure changes.

* fix: Add missing newline at end of test files

* Ensured proper formatting by adding a newline at the end of Table.test.js and TestTableUtils.test.tsx files to comply with best practices.

---------

Co-authored-by: Daniel Lu <dl1644@gmail.com>
Co-authored-by: Trevor Howell <25328178+ToyWalrus@users.noreply.github.com>
Co-authored-by: Robert Snow <rsnow@adobe.com>
Co-authored-by: Devon Govett <devongovett@gmail.com>
Co-authored-by: DarkstarXDD <108657985+DarkstarXDD@users.noreply.github.com>
Co-authored-by: Robert Snow <snowystinger@gmail.com>
Co-authored-by: Reid Barber <reid@reidbarber.com>
Co-authored-by: Yihui Liao <44729383+yihuiliao@users.noreply.github.com>
Co-authored-by: Richard Geraghty <rgeraght@adobe.com>
Co-authored-by: Kyle Taborski <ktabors@yahoo.com>
Co-authored-by: Danni <darobins@adobe.com>
ritz078 added a commit to PSPDFKit-labs/react-spectrum that referenced this pull request Apr 10, 2025
* chore: Fix generated code sample for S2 TooltipTrigger docs (adobe#8000)

* Fix generated code sample for S2 TooltipTrigger docs

* review

* inlining

* fix: export SortDescriptor type from S2 (adobe#8030)

* chore: Deprecate UNSTABLE_portalContainer in favor for PortalProvider (adobe#7976)

* Initial refactor to tear out UNSTABLE_portalContainer in favor of the PortalContainer

* yarn.lock update

* switch to deprecating UNSTABLE_portalContainer

* prefer deprecated prop over context to make this a non-breaking change

* add rough docs

* updating copy to include explaination of UNSTABLE

* rename to UNSAFE_PortalProvider

* update copy and split out example

* use styles from RAC examples

---------

Co-authored-by: Robert Snow <rsnow@adobe.com>

* feat: Add escapeKeyBehavior to GridList/ListBox/Menu/Table/Tree (adobe#7974)

* Add disallowClearAll to Menu/ListBox so Autocomplete in Popover can close without clearing selection

* add support for diallowClearAll to grid/tree/table

* make sure RSP components also surface disallowClearAll

* update api naming to escapeKeyBehavior

* skip 17 tests for build, investigate later

* review comments

* fix: useMove broken by NODE_ENV check (adobe#8046)

* fix: ColorWheel track click (adobe#8049)

* fix: minor typo in CalendarDate docs (adobe#8043)

* fix: minor typo in CalendarDate docs

* fix second example as well

---------

Co-authored-by: Robert Snow <snowystinger@gmail.com>

* fix: Updating collection when items change parents (adobe#8052)

* export Autocomplete from S2 (adobe#8050)

* chore: Optimize table test performance (adobe#8051)

* chore: Update typescript to 5.8 (adobe#7888)

* chore: update typescript to 5.8

* fix all the types for the upgrade

* fix numberfield styles

* fix: Apply touch-action by default in usePress (adobe#8047)

* fix: Apply touch-action by default in usePress

* fix test

---------

Co-authored-by: Daniel Lu <dl1644@gmail.com>

* fix: set some better flex behaviour (adobe#8048)

* fix: Support React 19 and remove Jest reliance in test utils (adobe#7686)

* attempt to get rid of jest calls in menu util

* update RSP testing docs to directly mention mocks that maybe needed

* bump versions of RTL to 16

* use alternative to calling jest run timers in menu option selection

* fixing types and properly testing long press

* fix lint

* revert to pre testing library bump for clean slate

* fix build and another submenu edge case

now we shouldnt need to call runAllTimers after selectOption

* fix react 16 bug

* update return type of advanceTimer and docs copy

* move some general fixes from selectionMode="replace" branch here

* get rid of unneeded async

* getting rid of extraneous dep

* fix lint

* chore: revert ts update (adobe#8060)

* fix: add static color to s2 notification badge (adobe#8055)

* fix: add static color to s2 notification badge

* make opaque

* updates

* use locale

* fix lint

---------

Co-authored-by: Robert Snow <rsnow@adobe.com>

* chore: Latest translations (adobe#8036)

* Latest translations

* Translation correction

* Couple of translation corrections

* Remove å from Norwegian string

---------

Co-authored-by: Yihui Liao <44729383+yihuiliao@users.noreply.github.com>

* fix: Relax Parcel version range in public plugins (adobe#8067)

* Disclosure button label size update to match new sizes from Specturm (adobe#8006)

Co-authored-by: Danni <darobins@adobe.com>

* chore: audit 3.41 (adobe#8064)

* chore: audit 3.41

* remove deprecation

* chore: audit 3.41 (adobe#8064)

* chore: audit 3.41

* remove deprecation

* chore: Update package dependencies for @react-aria/overlays and @react-aria-components

* Added @react-aria/ssr and updated @react-aria/overlays in @react-aria/overlays package.json
* Added @react-aria/overlays, @react-aria/ssr, and @react-aria/utils in @react-aria-components package.json

* chore: Update import paths and dependencies for @react-aria-nutrient

* Refactored import statements in various components and tests to use @react-aria-nutrient/overlays instead of @react-aria/overlays.
* Removed references to @react-aria/overlays from package.json and yarn.lock.
* Updated documentation links to reflect the new package structure.

* chore: Update import paths in TableTests to use @react-aria-nutrient

* Refactored import statements in TableTests.js to replace @react-aria with @react-aria-nutrient for live-announcer, utils, and focus modules.
* Ensured consistency with recent package structure changes.

* fix: Add missing newline at end of test files

* Ensured proper formatting by adding a newline at the end of Table.test.js and TestTableUtils.test.tsx files to comply with best practices.

---------

Co-authored-by: Daniel Lu <dl1644@gmail.com>
Co-authored-by: Trevor Howell <25328178+ToyWalrus@users.noreply.github.com>
Co-authored-by: Robert Snow <rsnow@adobe.com>
Co-authored-by: Devon Govett <devongovett@gmail.com>
Co-authored-by: DarkstarXDD <108657985+DarkstarXDD@users.noreply.github.com>
Co-authored-by: Robert Snow <snowystinger@gmail.com>
Co-authored-by: Reid Barber <reid@reidbarber.com>
Co-authored-by: Yihui Liao <44729383+yihuiliao@users.noreply.github.com>
Co-authored-by: Richard Geraghty <rgeraght@adobe.com>
Co-authored-by: Kyle Taborski <ktabors@yahoo.com>
Co-authored-by: Danni <darobins@adobe.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants