Skip to content

wip: Package consolidation#9774

Draft
devongovett wants to merge 71 commits intomainfrom
package-consolidation
Draft

wip: Package consolidation#9774
devongovett wants to merge 71 commits intomainfrom
package-consolidation

Conversation

@devongovett
Copy link
Member

Implements this RFC

@devongovett devongovett force-pushed the package-consolidation branch from 3411172 to 1707a8d Compare March 13, 2026 20:23
@rspbot
Copy link

rspbot commented Mar 13, 2026

## API Changes

react-aria-components

/react-aria-components:DateSegmentRenderProps

 DateSegmentRenderProps {
   isDisabled: boolean
   isFocusVisible: boolean
   isFocused: boolean
   isHovered: boolean
   isInvalid: boolean
   isPlaceholder: boolean
   isReadOnly: boolean
   maxValue?: number
   minValue?: number
   placeholder: string
   text: string
-  type: SegmentType
+  type: DateSegmentType
   value?: number | null
 }

/react-aria-components:DateFieldState

 DateFieldState {
   calendar: Calendar
-  clearSegment: (SegmentType) => void
+  clearSegment: (DateSegmentType) => void
   commitValidation: () => void
   confirmPlaceholder: () => void
   dateFormatter: DateFormatter
   dateValue: Date
-  decrement: (SegmentType) => void
-  decrementPage: (SegmentType) => void
-  decrementToMin: (SegmentType) => void
+  decrement: (DateSegmentType) => void
+  decrementPage: (DateSegmentType) => void
+  decrementToMin: (DateSegmentType) => void
   defaultValue: DateValue | null
   displayValidation: ValidationResult
   formatValue: (FieldOptions) => string
   getDateFormatter: (string, FormatterOptions) => DateFormatter
   granularity: Granularity
-  increment: (SegmentType) => void
-  incrementPage: (SegmentType) => void
-  incrementToMax: (SegmentType) => void
+  increment: (DateSegmentType) => void
+  incrementPage: (DateSegmentType) => void
+  incrementToMax: (DateSegmentType) => void
   isDisabled: boolean
   isInvalid: boolean
   isReadOnly: boolean
   isRequired: boolean
   maxGranularity: 'year' | 'month' | Granularity
   realtimeValidation: ValidationResult
   resetValidation: () => void
   segments: Array<DateSegment>
-  setSegment: (SegmentType, number) => void
+  setSegment: (DateSegmentType, number) => void
   setValue: (DateValue | null) => void
   updateValidation: (ValidationResult) => void
   value: DateValue | null
 }

/react-aria-components:TimeFieldState

 TimeFieldState {
   calendar: Calendar
-  clearSegment: (SegmentType) => void
+  clearSegment: (DateSegmentType) => void
   commitValidation: () => void
   confirmPlaceholder: () => void
   dateFormatter: DateFormatter
   dateValue: Date
-  decrement: (SegmentType) => void
-  decrementPage: (SegmentType) => void
-  decrementToMin: (SegmentType) => void
+  decrement: (DateSegmentType) => void
+  decrementPage: (DateSegmentType) => void
+  decrementToMin: (DateSegmentType) => void
   defaultValue: DateValue | null
   displayValidation: ValidationResult
   formatValue: (FieldOptions) => string
   getDateFormatter: (string, FormatterOptions) => DateFormatter
   granularity: Granularity
-  increment: (SegmentType) => void
-  incrementPage: (SegmentType) => void
-  incrementToMax: (SegmentType) => void
+  increment: (DateSegmentType) => void
+  incrementPage: (DateSegmentType) => void
+  incrementToMax: (DateSegmentType) => void
   isDisabled: boolean
   isInvalid: boolean
   isReadOnly: boolean
   isRequired: boolean
   maxGranularity: 'year' | 'month' | Granularity
   realtimeValidation: ValidationResult
   resetValidation: () => void
   segments: Array<DateSegment>
-  setSegment: (SegmentType, number) => void
+  setSegment: (DateSegmentType, number) => void
   setValue: (DateValue | null) => void
   timeValue: Time
   updateValidation: (ValidationResult) => void
   value: DateValue | null

@react-aria/actiongroup

/@react-aria/actiongroup:AriaActionGroupProps

-AriaActionGroupProps <T> {
-  aria-describedby?: string
-  aria-details?: string
-  aria-label?: string
-  aria-labelledby?: string
-  children: ItemElement<T> | Array<ItemElement<T>> | ItemRenderer<T>
-  defaultSelectedKeys?: 'all' | Iterable<Key>
-  disabledKeys?: Iterable<Key>
-  disallowEmptySelection?: boolean
-  id?: string
-  isDisabled?: boolean
-  items?: Iterable<T>
-  onAction?: (Key) => void
-  onSelectionChange?: (Selection) => void
-  orientation?: Orientation = 'horizontal'
-  selectedKeys?: 'all' | Iterable<Key>
-  selectionMode?: SelectionMode
-}

@react-aria/autocomplete

/@react-aria/autocomplete:AriaSearchAutocompleteProps

-AriaSearchAutocompleteProps <T> {
-  aria-activedescendant?: string
-  aria-autocomplete?: 'none' | 'inline' | 'list' | 'both'
-  aria-controls?: string
-  aria-describedby?: string
-  aria-details?: string
-  aria-errormessage?: string
-  aria-haspopup?: boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'
-  aria-label?: string
-  aria-labelledby?: string
-  autoComplete?: string
-  autoCorrect?: string
-  autoFocus?: boolean
-  children: CollectionChildren<T>
-  defaultInputValue?: string
-  defaultItems?: Iterable<T>
-  description?: ReactNode
-  disabledKeys?: Iterable<Key>
-  enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'
-  errorMessage?: ReactNode | (ValidationResult) => ReactNode
-  excludeFromTabOrder?: boolean
-  form?: string
-  id?: string
-  inputMode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'
-  inputValue?: string
-  isDisabled?: boolean
-  isInvalid?: boolean
-  isReadOnly?: boolean
-  isRequired?: boolean
-  items?: Iterable<T>
-  label?: ReactNode
-  maxLength?: number
-  menuTrigger?: MenuTriggerAction = 'input'
-  minLength?: number
-  name?: string
-  onBeforeInput?: FormEventHandler<HTMLInputElement>
-  onBlur?: (FocusEvent<T>) => void
-  onClear?: () => void
-  onCompositionEnd?: CompositionEventHandler<HTMLInputElement>
-  onCompositionStart?: CompositionEventHandler<HTMLInputElement>
-  onCompositionUpdate?: CompositionEventHandler<HTMLInputElement>
-  onCopy?: ClipboardEventHandler<HTMLInputElement>
-  onCut?: ClipboardEventHandler<HTMLInputElement>
-  onFocus?: (FocusEvent<T>) => void
-  onFocusChange?: (boolean) => void
-  onInput?: FormEventHandler<HTMLInputElement>
-  onInputChange?: (string) => void
-  onKeyDown?: (KeyboardEvent) => void
-  onKeyUp?: (KeyboardEvent) => void
-  onOpenChange?: (boolean, MenuTriggerAction) => void
-  onPaste?: ClipboardEventHandler<HTMLInputElement>
-  onSelect?: ReactEventHandler<HTMLInputElement>
-  onSubmit?: (string | null, Key | null) => void
-  pattern?: string
-  placeholder?: string
-  spellCheck?: string
-  type?: 'text' | 'search' | 'url' | 'tel' | 'email' | 'password' | (string & {
-  
-}) = 'search'
-  validate?: (string) => ValidationError | boolean | null | undefined
-  validationBehavior?: 'aria' | 'native' = 'aria'
-}

@react-aria/button

/@react-aria/button:AriaToggleButtonOptions

+AriaToggleButtonOptions <E extends ElementType> {
+  aria-controls?: string
+  aria-describedby?: string
+  aria-details?: string
+  aria-disabled?: boolean | 'true' | 'false'
+  aria-expanded?: boolean | 'true' | 'false'
+  aria-haspopup?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | 'true' | 'false'
+  aria-label?: string
+  aria-labelledby?: string
+  aria-pressed?: boolean | 'true' | 'false' | 'mixed'
+  autoFocus?: boolean
+  defaultSelected?: boolean
+  elementType?: ElementType | JSXElementConstructor<any> = 'button'
+  excludeFromTabOrder?: boolean
+  id?: string
+  isDisabled?: boolean
+  isSelected?: boolean
+  onBlur?: (FocusEvent<Target>) => void
+  onChange?: (boolean) => void
+  onClick?: (MouseEvent<FocusableElement>) => void
+  onFocus?: (FocusEvent<Target>) => void
+  onFocusChange?: (boolean) => void
+  onKeyDown?: (KeyboardEvent) => void
+  onKeyUp?: (KeyboardEvent) => void
+  onPress?: (PressEvent) => void
+  onPressChange?: (boolean) => void
+  onPressEnd?: (PressEvent) => void
+  onPressStart?: (PressEvent) => void
+  onPressUp?: (PressEvent) => void
+  preventFocusOnPress?: boolean
+}

/@react-aria/button:ToggleButtonAria

+ToggleButtonAria <T> {
+  buttonProps: T
+  isDisabled: boolean
+  isPressed: boolean
+  isSelected: boolean
+}

/@react-aria/button:AriaToggleButtonGroupItemOptions

+AriaToggleButtonGroupItemOptions <E extends ElementType> {
+  aria-controls?: string
+  aria-describedby?: string
+  aria-details?: string
+  aria-disabled?: boolean | 'true' | 'false'
+  aria-expanded?: boolean | 'true' | 'false'
+  aria-haspopup?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | 'true' | 'false'
+  aria-label?: string
+  aria-labelledby?: string
+  aria-pressed?: boolean | 'true' | 'false' | 'mixed'
+  autoFocus?: boolean
+  elementType?: ElementType | JSXElementConstructor<any> = 'button'
+  excludeFromTabOrder?: boolean
+  id: Key
+  isDisabled?: boolean
+  onBlur?: (FocusEvent<Target>) => void
+  onClick?: (MouseEvent<FocusableElement>) => void
+  onFocus?: (FocusEvent<Target>) => void
+  onFocusChange?: (boolean) => void
+  onKeyDown?: (KeyboardEvent) => void
+  onKeyUp?: (KeyboardEvent) => void
+  onPress?: (PressEvent) => void
+  onPressChange?: (boolean) => void
+  onPressEnd?: (PressEvent) => void
+  onPressStart?: (PressEvent) => void
+  onPressUp?: (PressEvent) => void
+  preventFocusOnPress?: boolean
+}

@react-aria/datepicker

/@react-aria/datepicker:AriaTimeFieldOptions

+AriaTimeFieldOptions <T extends TimeValue> {
+  aria-describedby?: string
+  aria-details?: string
+  aria-label?: string
+  aria-labelledby?: string
+  autoFocus?: boolean
+  defaultValue?: TimeValue | null
+  description?: ReactNode
+  errorMessage?: ReactNode | (ValidationResult) => ReactNode
+  form?: string
+  granularity?: 'hour' | 'minute' | 'second' = 'minute'
+  hideTimeZone?: boolean
+  hourCycle?: number | number
+  id?: string
+  inputRef?: RefObject<HTMLInputElement | null>
+  isDisabled?: boolean
+  isInvalid?: boolean
+  isReadOnly?: boolean
+  isRequired?: boolean
+  label?: ReactNode
+  maxValue?: TimeValue | null
+  minValue?: TimeValue | null
+  name?: string
+  onBlur?: (FocusEvent<Target>) => void
+  onChange?: (MappedTimeValue<TimeValue> | null) => void
+  onFocus?: (FocusEvent<Target>) => void
+  onFocusChange?: (boolean) => void
+  onKeyDown?: (KeyboardEvent) => void
+  onKeyUp?: (KeyboardEvent) => void
+  placeholderValue?: TimeValue
+  shouldForceLeadingZeros?: boolean
+  validate?: (MappedTimeValue<TimeValue>) => ValidationError | boolean | null | undefined
+  validationBehavior?: 'aria' | 'native' = 'aria'
+  value?: TimeValue | null
+}

@react-aria/focus

/@react-aria/focus:isFocusable

-isFocusable {
-  element: Element
-  returnVal: undefined
-}

/@react-aria/focus:FocusableProvider

-FocusableProvider {
-  children?: ReactNode
-  className?: string | undefined
-  id?: string | undefined
-  role?: AriaRole | undefined
-  style?: CSSProperties | undefined
-  tabIndex?: number | undefined
-}

/@react-aria/focus:focusSafely

-focusSafely {
-  element: FocusableElement
-  returnVal: undefined
-}

/@react-aria/focus:FocusableProviderProps

-FocusableProviderProps {
-  children?: ReactNode
-  className?: string | undefined
-  id?: string | undefined
-  role?: AriaRole | undefined
-  style?: CSSProperties | undefined
-  tabIndex?: number | undefined
-}

@react-aria/gridlist

/@react-aria/gridlist:AriaGridListSectionProps

+AriaGridListSectionProps {
+  aria-label?: string
+}

/@react-aria/gridlist:GridListSectionAria

+GridListSectionAria {
+  rowGroupProps: DOMAttributes
+  rowHeaderProps: DOMAttributes
+  rowProps: DOMAttributes
+}

@react-aria/landmark

/@react-aria/landmark:LandmarkControllerOptions

+LandmarkControllerOptions {
+  from?: FocusableElement = document.activeElement
+}

@react-aria/select

/@react-aria/select:AriaHiddenSelectOptions

+AriaHiddenSelectOptions {
+  autoComplete?: string
+  form?: string
+  isDisabled?: boolean
+  label?: ReactNode
+  name?: string
+  selectRef?: RefObject<HTMLSelectElement | HTMLInputElement | null>
+}

/@react-aria/select:HiddenSelectAria

+HiddenSelectAria {
+  containerProps: React.HTMLAttributes<FocusableElement>
+  inputProps: React.InputHTMLAttributes<HTMLInputElement>
+  selectProps: React.SelectHTMLAttributes<HTMLSelectElement>
+}

@react-aria/ssr

/@react-aria/ssr:SSRProvider

-SSRProvider {
-  children: ReactNode
-}

/@react-aria/ssr:useSSRSafeId

-useSSRSafeId {
-  UNTYPED
-}

/@react-aria/ssr:useIsSSR

-useIsSSR {
-  returnVal: undefined
-}

/@react-aria/ssr:SSRProviderProps

-SSRProviderProps {
-  children: ReactNode
-}

@react-aria/tag

/@react-aria/tag:AriaTagGroupOptions

+AriaTagGroupOptions <T> {
+  aria-describedby?: string
+  aria-details?: string
+  aria-label?: string
+  aria-labelledby?: string
+  defaultSelectedKeys?: 'all' | Iterable<Key>
+  description?: ReactNode
+  disabledKeys?: Iterable<Key>
+  disallowEmptySelection?: boolean
+  errorMessage?: ReactNode
+  escapeKeyBehavior?: 'clearSelection' | 'none' = 'clearSelection'
+  id?: string
+  items?: Iterable<T>
+  keyboardDelegate?: KeyboardDelegate
+  label?: ReactNode
+  onRemove?: (Set<Key>) => void
+  onSelectionChange?: (Selection) => void
+  selectedKeys?: 'all' | Iterable<Key>
+  selectionBehavior?: SelectionBehavior
+  selectionMode?: SelectionMode
+  shouldSelectOnPressUp?: boolean
+}

@react-aria/toggle

/@react-aria/toggle:AriaToggleProps

-AriaToggleProps {
-  aria-controls?: string
-  aria-describedby?: string
-  aria-details?: string
-  aria-errormessage?: string
-  aria-label?: string
-  aria-labelledby?: string
-  autoFocus?: boolean
-  children?: ReactNode
-  defaultSelected?: boolean
-  excludeFromTabOrder?: boolean
-  form?: string
-  id?: string
-  isDisabled?: boolean
-  isInvalid?: boolean
-  isReadOnly?: boolean
-  isRequired?: boolean
-  isSelected?: boolean
-  name?: string
-  onBlur?: (FocusEvent<Target>) => void
-  onChange?: (boolean) => void
-  onClick?: (MouseEvent<FocusableElement>) => void
-  onFocus?: (FocusEvent<Target>) => void
-  onFocusChange?: (boolean) => void
-  onKeyDown?: (KeyboardEvent) => void
-  onKeyUp?: (KeyboardEvent) => void
-  onPress?: (PressEvent) => void
-  onPressChange?: (boolean) => void
-  onPressEnd?: (PressEvent) => void
-  onPressStart?: (PressEvent) => void
-  onPressUp?: (PressEvent) => void
-  validate?: (boolean) => ValidationError | boolean | null | undefined
-  validationBehavior?: 'aria' | 'native' = 'aria'
-  value?: string
-}

@react-aria/utils

/@react-aria/utils:clamp

-clamp {
-  value: number
-  min: number
-  max: number
-  returnVal: undefined
-}

/@react-aria/utils:snapValueToStep

-snapValueToStep {
-  value: number
-  min: number | undefined
-  max: number | undefined
-  step: number
-  returnVal: undefined
-}

@react-spectrum/autocomplete

/@react-spectrum/autocomplete:SpectrumSearchAutocompleteProps

-SpectrumSearchAutocompleteProps <T> {
-  UNSAFE_className?: string
-  UNSAFE_style?: CSSProperties
-  align?: 'start' | 'end' = 'start'
-  alignSelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'center' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'stretch'>
-  aria-activedescendant?: string
-  aria-autocomplete?: 'none' | 'inline' | 'list' | 'both'
-  aria-controls?: string
-  aria-describedby?: string
-  aria-details?: string
-  aria-errormessage?: string
-  aria-haspopup?: boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'
-  aria-label?: string
-  aria-labelledby?: string
-  autoComplete?: string
-  autoCorrect?: string
-  autoFocus?: boolean
-  bottom?: Responsive<DimensionValue>
-  children: CollectionChildren<T>
-  contextualHelp?: ReactNode
-  defaultInputValue?: string
-  defaultItems?: Iterable<T>
-  description?: ReactNode
-  direction?: 'bottom' | 'top' = 'bottom'
-  disabledKeys?: Iterable<Key>
-  end?: Responsive<DimensionValue>
-  enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'
-  errorMessage?: ReactNode | (ValidationResult) => ReactNode
-  excludeFromTabOrder?: boolean
-  flex?: Responsive<string | number | boolean>
-  flexBasis?: Responsive<number | string>
-  flexGrow?: Responsive<number>
-  flexShrink?: Responsive<number>
-  form?: string
-  gridArea?: Responsive<string>
-  gridColumn?: Responsive<string>
-  gridColumnEnd?: Responsive<string>
-  gridColumnStart?: Responsive<string>
-  gridRow?: Responsive<string>
-  gridRowEnd?: Responsive<string>
-  gridRowStart?: Responsive<string>
-  height?: Responsive<DimensionValue>
-  icon?: ReactElement | null
-  id?: string
-  inputMode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'
-  inputValue?: string
-  isDisabled?: boolean
-  isHidden?: Responsive<boolean>
-  isQuiet?: boolean
-  isReadOnly?: 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>
-  loadingState?: LoadingState
-  margin?: Responsive<DimensionValue>
-  marginBottom?: Responsive<DimensionValue>
-  marginEnd?: Responsive<DimensionValue>
-  marginStart?: Responsive<DimensionValue>
-  marginTop?: Responsive<DimensionValue>
-  marginX?: Responsive<DimensionValue>
-  marginY?: Responsive<DimensionValue>
-  maxHeight?: Responsive<DimensionValue>
-  maxLength?: number
-  maxWidth?: Responsive<DimensionValue>
-  menuTrigger?: MenuTriggerAction = 'input'
-  menuWidth?: DimensionValue
-  minHeight?: Responsive<DimensionValue>
-  minLength?: number
-  minWidth?: Responsive<DimensionValue>
-  name?: string
-  necessityIndicator?: NecessityIndicator = 'icon'
-  onBeforeInput?: FormEventHandler<HTMLInputElement>
-  onBlur?: (FocusEvent<T>) => void
-  onClear?: () => void
-  onCompositionEnd?: CompositionEventHandler<HTMLInputElement>
-  onCompositionStart?: CompositionEventHandler<HTMLInputElement>
-  onCompositionUpdate?: CompositionEventHandler<HTMLInputElement>
-  onCopy?: ClipboardEventHandler<HTMLInputElement>
-  onCut?: ClipboardEventHandler<HTMLInputElement>
-  onFocus?: (FocusEvent<T>) => void
-  onFocusChange?: (boolean) => void
-  onInput?: FormEventHandler<HTMLInputElement>
-  onInputChange?: (string) => void
-  onKeyDown?: (KeyboardEvent) => void
-  onKeyUp?: (KeyboardEvent) => void
-  onLoadMore?: () => void
-  onOpenChange?: (boolean, MenuTriggerAction) => void
-  onPaste?: ClipboardEventHandler<HTMLInputElement>
-  onSelect?: ReactEventHandler<HTMLInputElement>
-  onSubmit?: (string | null, Key | null) => void
-  order?: Responsive<number>
-  pattern?: string
-  position?: Responsive<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'>
-  right?: Responsive<DimensionValue>
-  shouldFlip?: boolean = true
-  spellCheck?: string
-  start?: Responsive<DimensionValue>
-  top?: Responsive<DimensionValue>
-  type?: 'text' | 'search' | 'url' | 'tel' | 'email' | 'password' | (string & {
-  
-}) = 'search'
-  validate?: (string) => ValidationError | boolean | null | undefined
-  validationBehavior?: 'aria' | 'native' = 'aria'
-  validationState?: ValidationState
-  width?: Responsive<DimensionValue>
-  zIndex?: Responsive<number>
-}

@react-spectrum/card

/@react-spectrum/card:SpectrumCardViewProps

-SpectrumCardViewProps <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>
-  cardOrientation?: Orientation
-  children: CollectionChildren<T>
-  defaultSelectedKeys?: 'all' | Iterable<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
-  isHidden?: Responsive<boolean>
-  isQuiet?: boolean
-  items?: Iterable<T>
-  justifySelf?: Responsive<'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'left' | 'right' | 'stretch'>
-  layout: CardViewLayoutConstructor<T> | CardViewLayout<T>
-  left?: Responsive<DimensionValue>
-  loadingState?: LoadingState
-  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>
-  onLoadMore?: () => any
-  onSelectionChange?: (Selection) => void
-  order?: Responsive<number>
-  position?: Responsive<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'>
-  renderEmptyState?: () => ReactNode
-  right?: Responsive<DimensionValue>
-  selectedKeys?: 'all' | Iterable<Key>
-  selectionMode?: SelectionMode
-  start?: Responsive<DimensionValue>
-  top?: Responsive<DimensionValue>
-  width?: Responsive<DimensionValue>
-  zIndex?: Responsive<number>
-}

@react-spectrum/s2

/@react-spectrum/s2:DateRangePicker

-DateRangePicker <T extends DateValue> extends RangeCalendarProps {
+DateRangePicker <T extends DateValue> {
   UNSAFE_className?: UnsafeClassName
   UNSAFE_style?: CSSProperties
   allowsNonContiguousRanges?: boolean
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoFocus?: boolean
   contextualHelp?: ReactNode
+  createCalendar?: (CalendarIdentifier) => Calendar
   defaultOpen?: boolean
   defaultValue?: RangeValue<DateValue> | null
   description?: ReactNode
   endName?: string
   firstDayOfWeek?: 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
   form?: string
   granularity?: Granularity
   hideTimeZone?: boolean = false
   hourCycle?: number | number
   id?: string
   isDateUnavailable?: (DateValue) => boolean
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isReadOnly?: boolean
   isRequired?: boolean
   label?: ReactNode
   labelAlign?: Alignment = 'start'
   labelPosition?: LabelPosition = 'top'
   maxValue?: DateValue | null
   maxVisibleMonths?: number = 1
   minValue?: DateValue | null
   necessityIndicator?: NecessityIndicator = 'icon'
   onBlur?: (FocusEvent<Target>) => void
   onChange?: (RangeValue<MappedDateValue<DateValue>> | null) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
   pageBehavior?: PageBehavior = visible
   placeholderValue?: DateValue | null
   shouldCloseOnSelect?: boolean | () => boolean = true
   shouldFlip?: boolean = true
   shouldForceLeadingZeros?: boolean
   size?: 'S' | 'M' | 'L' | 'XL' = 'M'
   slot?: string | null
   startName?: string
   styles?: StylesProp
   validate?: (RangeValue<MappedDateValue<DateValue>>) => ValidationError | boolean | null | undefined
   validationBehavior?: 'native' | 'aria' = 'native'
   value?: RangeValue<DateValue> | null
 }

/@react-spectrum/s2:DateRangePickerProps

 DateRangePickerProps <T extends DateValue> {
   UNSAFE_className?: UnsafeClassName
   UNSAFE_style?: CSSProperties
   allowsNonContiguousRanges?: boolean
   aria-describedby?: string
   aria-details?: string
   aria-label?: string
   aria-labelledby?: string
   autoFocus?: boolean
   contextualHelp?: ReactNode
+  createCalendar?: (CalendarIdentifier) => Calendar
   defaultOpen?: boolean
   defaultValue?: RangeValue<DateValue> | null
   description?: ReactNode
   endName?: string
   firstDayOfWeek?: 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
   form?: string
   granularity?: Granularity
   hideTimeZone?: boolean = false
   hourCycle?: number | number
   id?: string
   isDateUnavailable?: (DateValue) => boolean
   isDisabled?: boolean
   isInvalid?: boolean
   isOpen?: boolean
   isReadOnly?: boolean
   isRequired?: boolean
   label?: ReactNode
   labelAlign?: Alignment = 'start'
   labelPosition?: LabelPosition = 'top'
   maxValue?: DateValue | null
   maxVisibleMonths?: number = 1
   minValue?: DateValue | null
   necessityIndicator?: NecessityIndicator = 'icon'
   onBlur?: (FocusEvent<Target>) => void
   onChange?: (RangeValue<MappedDateValue<DateValue>> | null) => void
   onFocus?: (FocusEvent<Target>) => void
   onFocusChange?: (boolean) => void
   onKeyDown?: (KeyboardEvent) => void
   onKeyUp?: (KeyboardEvent) => void
   onOpenChange?: (boolean) => void
   pageBehavior?: PageBehavior = visible
   placeholderValue?: DateValue | null
   shouldCloseOnSelect?: boolean | () => boolean = true
   shouldFlip?: boolean = true
   shouldForceLeadingZeros?: boolean
   size?: 'S' | 'M' | 'L' | 'XL' = 'M'
   slot?: string | null
   startName?: string
   styles?: StylesProp
   validate?: (RangeValue<MappedDateValue<DateValue>>) => ValidationError | boolean | null | undefined
   validationBehavior?: 'native' | 'aria' = 'native'
   value?: RangeValue<DateValue> | null
 }

@react-spectrum/utils

/@react-spectrum/utils:useValueEffect

-useValueEffect <S> {
-  defaultValue: S | () => S
-  returnVal: undefined
-}

/@react-spectrum/utils:useResizeObserver

-useResizeObserver <T extends Element> {
-  options: useResizeObserverOptionsType<T>
-  returnVal: undefined
-}

@react-stately/datepicker

/@react-stately/datepicker:DateFieldState

 DateFieldState {
   calendar: Calendar
-  clearSegment: (SegmentType) => void
+  clearSegment: (DateSegmentType) => void
   commitValidation: () => void
   confirmPlaceholder: () => void
   dateFormatter: DateFormatter
   dateValue: Date
-  decrement: (SegmentType) => void
-  decrementPage: (SegmentType) => void
-  decrementToMin: (SegmentType) => void
+  decrement: (DateSegmentType) => void
+  decrementPage: (DateSegmentType) => void
+  decrementToMin: (DateSegmentType) => void
   defaultValue: DateValue | null
   displayValidation: ValidationResult
   formatValue: (FieldOptions) => string
   getDateFormatter: (string, FormatterOptions) => DateFormatter
   granularity: Granularity
-  increment: (SegmentType) => void
-  incrementPage: (SegmentType) => void
-  incrementToMax: (SegmentType) => void
+  increment: (DateSegmentType) => void
+  incrementPage: (DateSegmentType) => void
+  incrementToMax: (DateSegmentType) => void
   isDisabled: boolean
   isInvalid: boolean
   isReadOnly: boolean
   isRequired: boolean
   maxGranularity: 'year' | 'month' | Granularity
   realtimeValidation: ValidationResult
   resetValidation: () => void
   segments: Array<DateSegment>
-  setSegment: (SegmentType, number) => void
+  setSegment: (DateSegmentType, number) => void
   setValue: (DateValue | null) => void
   updateValidation: (ValidationResult) => void
   value: DateValue | null
 }

/@react-stately/datepicker:DateSegment

 DateSegment {
   isEditable: boolean
   isPlaceholder: boolean
   maxValue?: number
   minValue?: number
   placeholder: string
   text: string
-  type: SegmentType
+  type: DateSegmentType
   value?: number | null
 }

/@react-stately/datepicker:SegmentType

 SegmentType {
-  S: undefined
+  UNTYPED
 }

/@react-stately/datepicker:TimeFieldState

 TimeFieldState {
   calendar: Calendar
-  clearSegment: (SegmentType) => void
+  clearSegment: (DateSegmentType) => void
   commitValidation: () => void
   confirmPlaceholder: () => void
   dateFormatter: DateFormatter
   dateValue: Date
-  decrement: (SegmentType) => void
-  decrementPage: (SegmentType) => void
-  decrementToMin: (SegmentType) => void
+  decrement: (DateSegmentType) => void
+  decrementPage: (DateSegmentType) => void
+  decrementToMin: (DateSegmentType) => void
   defaultValue: DateValue | null
   displayValidation: ValidationResult
   formatValue: (FieldOptions) => string
   getDateFormatter: (string, FormatterOptions) => DateFormatter
   granularity: Granularity
-  increment: (SegmentType) => void
-  incrementPage: (SegmentType) => void
-  incrementToMax: (SegmentType) => void
+  increment: (DateSegmentType) => void
+  incrementPage: (DateSegmentType) => void
+  incrementToMax: (DateSegmentType) => void
   isDisabled: boolean
   isInvalid: boolean
   isReadOnly: boolean
   isRequired: boolean
   maxGranularity: 'year' | 'month' | Granularity
   realtimeValidation: ValidationResult
   resetValidation: () => void
   segments: Array<DateSegment>
-  setSegment: (SegmentType, number) => void
+  setSegment: (DateSegmentType, number) => void
   setValue: (DateValue | null) => void
   timeValue: Time
   updateValidation: (ValidationResult) => void
   value: DateValue | null

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.

2 participants