Skip to content

Commit 3b961a6

Browse files
authored
Ensure Input, Select and Textarea expose Ref related types (#2902)
* ensure `Input`, `Select` and `Textarea` expose `Ref` related types * update changelog
1 parent 8c882e0 commit 3b961a6

File tree

4 files changed

+33
-7
lines changed

4 files changed

+33
-7
lines changed

packages/@headlessui-react/CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
- Nothing yet!
10+
### Fixed
11+
12+
- Ensure `Input`, `Select` and `Textarea` expose `Ref` related types ([#2902](https://github.com/tailwindlabs/headlessui/pull/2902))
1113

1214
## [2.0.0-alpha.3] - 2023-12-20
1315

packages/@headlessui-react/src/components/input/input.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ import { useId } from '../../hooks/use-id'
77
import { useDisabled } from '../../internal/disabled'
88
import { useProvidedId } from '../../internal/id'
99
import type { Props } from '../../types'
10-
import { forwardRefWithAs, mergeProps, render, type HasDisplayName } from '../../utils/render'
10+
import {
11+
forwardRefWithAs,
12+
mergeProps,
13+
render,
14+
type HasDisplayName,
15+
type RefProp,
16+
} from '../../utils/render'
1117
import { useDescribedBy } from '../description/description'
1218
import { useLabelledBy } from '../label/label'
1319

@@ -91,7 +97,9 @@ function InputFn<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(
9197
}
9298

9399
export interface _internal_ComponentInput extends HasDisplayName {
94-
<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: InputProps<TTag>): JSX.Element
100+
<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(
101+
props: InputProps<TTag> & RefProp<typeof InputFn>
102+
): JSX.Element
95103
}
96104

97105
export let Input = forwardRefWithAs(InputFn) as unknown as _internal_ComponentInput

packages/@headlessui-react/src/components/select/select.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ import { useId } from '../../hooks/use-id'
88
import { useDisabled } from '../../internal/disabled'
99
import { useProvidedId } from '../../internal/id'
1010
import type { Props } from '../../types'
11-
import { forwardRefWithAs, mergeProps, render, type HasDisplayName } from '../../utils/render'
11+
import {
12+
forwardRefWithAs,
13+
mergeProps,
14+
render,
15+
type HasDisplayName,
16+
type RefProp,
17+
} from '../../utils/render'
1218
import { useDescribedBy } from '../description/description'
1319
import { useLabelledBy } from '../label/label'
1420

@@ -93,7 +99,9 @@ function SelectFn<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(
9399
}
94100

95101
export interface _internal_ComponentSelect extends HasDisplayName {
96-
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag>): JSX.Element
102+
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(
103+
props: SelectProps<TTag> & RefProp<typeof SelectFn>
104+
): JSX.Element
97105
}
98106

99107
export let Select = forwardRefWithAs(SelectFn) as unknown as _internal_ComponentSelect

packages/@headlessui-react/src/components/textarea/textarea.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ import { useId } from '../../hooks/use-id'
77
import { useDisabled } from '../../internal/disabled'
88
import { useProvidedId } from '../../internal/id'
99
import type { Props } from '../../types'
10-
import { forwardRefWithAs, mergeProps, render, type HasDisplayName } from '../../utils/render'
10+
import {
11+
forwardRefWithAs,
12+
mergeProps,
13+
render,
14+
type HasDisplayName,
15+
type RefProp,
16+
} from '../../utils/render'
1117
import { useDescribedBy } from '../description/description'
1218
import { useLabelledBy } from '../label/label'
1319

@@ -88,7 +94,9 @@ function TextareaFn<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(
8894
}
8995

9096
export interface _internal_ComponentTextarea extends HasDisplayName {
91-
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag>): JSX.Element
97+
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(
98+
props: TextareaProps<TTag> & RefProp<typeof TextareaFn>
99+
): JSX.Element
92100
}
93101

94102
export let Textarea = forwardRefWithAs(TextareaFn) as unknown as _internal_ComponentTextarea

0 commit comments

Comments
 (0)