diff --git a/packages/@headlessui-react/CHANGELOG.md b/packages/@headlessui-react/CHANGELOG.md index 8e1ce77bda..d55885d3a3 100644 --- a/packages/@headlessui-react/CHANGELOG.md +++ b/packages/@headlessui-react/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -- Nothing yet! +### Fixed + +- Ensure `Input`, `Select` and `Textarea` expose `Ref` related types ([#2902](https://github.com/tailwindlabs/headlessui/pull/2902)) ## [2.0.0-alpha.3] - 2023-12-20 diff --git a/packages/@headlessui-react/src/components/input/input.tsx b/packages/@headlessui-react/src/components/input/input.tsx index d2f8f0f986..f42634e0c1 100644 --- a/packages/@headlessui-react/src/components/input/input.tsx +++ b/packages/@headlessui-react/src/components/input/input.tsx @@ -7,7 +7,13 @@ import { useId } from '../../hooks/use-id' import { useDisabled } from '../../internal/disabled' import { useProvidedId } from '../../internal/id' import type { Props } from '../../types' -import { forwardRefWithAs, mergeProps, render, type HasDisplayName } from '../../utils/render' +import { + forwardRefWithAs, + mergeProps, + render, + type HasDisplayName, + type RefProp, +} from '../../utils/render' import { useDescribedBy } from '../description/description' import { useLabelledBy } from '../label/label' @@ -91,7 +97,9 @@ function InputFn( } export interface _internal_ComponentInput extends HasDisplayName { - (props: InputProps): JSX.Element + ( + props: InputProps & RefProp + ): JSX.Element } export let Input = forwardRefWithAs(InputFn) as unknown as _internal_ComponentInput diff --git a/packages/@headlessui-react/src/components/select/select.tsx b/packages/@headlessui-react/src/components/select/select.tsx index ad15e3f28d..3b83496c20 100644 --- a/packages/@headlessui-react/src/components/select/select.tsx +++ b/packages/@headlessui-react/src/components/select/select.tsx @@ -8,7 +8,13 @@ import { useId } from '../../hooks/use-id' import { useDisabled } from '../../internal/disabled' import { useProvidedId } from '../../internal/id' import type { Props } from '../../types' -import { forwardRefWithAs, mergeProps, render, type HasDisplayName } from '../../utils/render' +import { + forwardRefWithAs, + mergeProps, + render, + type HasDisplayName, + type RefProp, +} from '../../utils/render' import { useDescribedBy } from '../description/description' import { useLabelledBy } from '../label/label' @@ -93,7 +99,9 @@ function SelectFn( } export interface _internal_ComponentSelect extends HasDisplayName { - (props: SelectProps): JSX.Element + ( + props: SelectProps & RefProp + ): JSX.Element } export let Select = forwardRefWithAs(SelectFn) as unknown as _internal_ComponentSelect diff --git a/packages/@headlessui-react/src/components/textarea/textarea.tsx b/packages/@headlessui-react/src/components/textarea/textarea.tsx index 9dedaa2e7f..13ac8b0161 100644 --- a/packages/@headlessui-react/src/components/textarea/textarea.tsx +++ b/packages/@headlessui-react/src/components/textarea/textarea.tsx @@ -7,7 +7,13 @@ import { useId } from '../../hooks/use-id' import { useDisabled } from '../../internal/disabled' import { useProvidedId } from '../../internal/id' import type { Props } from '../../types' -import { forwardRefWithAs, mergeProps, render, type HasDisplayName } from '../../utils/render' +import { + forwardRefWithAs, + mergeProps, + render, + type HasDisplayName, + type RefProp, +} from '../../utils/render' import { useDescribedBy } from '../description/description' import { useLabelledBy } from '../label/label' @@ -88,7 +94,9 @@ function TextareaFn( } export interface _internal_ComponentTextarea extends HasDisplayName { - (props: TextareaProps): JSX.Element + ( + props: TextareaProps & RefProp + ): JSX.Element } export let Textarea = forwardRefWithAs(TextareaFn) as unknown as _internal_ComponentTextarea