diff --git a/.changeset/afraid-worms-help.md b/.changeset/afraid-worms-help.md new file mode 100644 index 00000000..b34596ce --- /dev/null +++ b/.changeset/afraid-worms-help.md @@ -0,0 +1,5 @@ +--- +'@clack/core': patch +--- + +fix: export `*Options` types for prompts. diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 41336b98..1f38a802 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,3 +1,13 @@ +export type { AutocompleteOptions } from './prompts/autocomplete.js'; +export type { ConfirmOptions } from './prompts/confirm.js'; +export type { GroupMultiSelectOptions } from './prompts/group-multiselect.js'; +export type { MultiSelectOptions } from './prompts/multi-select.js'; +export type { PasswordOptions } from './prompts/password.js'; +export type { PromptOptions } from './prompts/prompt.js'; +export type { SelectKeyOptions } from './prompts/select-key.js'; +export type { SelectOptions } from './prompts/select.js'; +export type { TextOptions } from './prompts/text.js'; + export { default as AutocompletePrompt } from './prompts/autocomplete.js'; export { default as ConfirmPrompt } from './prompts/confirm.js'; export { default as GroupMultiSelectPrompt } from './prompts/group-multiselect.js'; diff --git a/packages/core/src/prompts/autocomplete.ts b/packages/core/src/prompts/autocomplete.ts index 6e308ff5..f72d205c 100644 --- a/packages/core/src/prompts/autocomplete.ts +++ b/packages/core/src/prompts/autocomplete.ts @@ -44,7 +44,7 @@ function normalisedValue(multiple: boolean, values: T[] | undefined): T | T[] return values[0]; } -interface AutocompleteOptions +export interface AutocompleteOptions extends PromptOptions> { options: T[] | ((this: AutocompletePrompt) => T[]); filter?: FilterFunction; diff --git a/packages/core/src/prompts/confirm.ts b/packages/core/src/prompts/confirm.ts index e3967b25..19276367 100644 --- a/packages/core/src/prompts/confirm.ts +++ b/packages/core/src/prompts/confirm.ts @@ -1,11 +1,12 @@ import { cursor } from 'sisteransi'; import Prompt, { type PromptOptions } from './prompt.js'; -interface ConfirmOptions extends PromptOptions { +export interface ConfirmOptions extends PromptOptions { active: string; inactive: string; initialValue?: boolean; } + export default class ConfirmPrompt extends Prompt { get cursor() { return this.value ? 0 : 1; diff --git a/packages/core/src/prompts/group-multiselect.ts b/packages/core/src/prompts/group-multiselect.ts index 795b64b9..c189a919 100644 --- a/packages/core/src/prompts/group-multiselect.ts +++ b/packages/core/src/prompts/group-multiselect.ts @@ -1,6 +1,6 @@ import Prompt, { type PromptOptions } from './prompt.js'; -interface GroupMultiSelectOptions +export interface GroupMultiSelectOptions extends PromptOptions> { options: Record; initialValues?: T['value'][]; diff --git a/packages/core/src/prompts/multi-select.ts b/packages/core/src/prompts/multi-select.ts index 7f4643ba..a19817a5 100644 --- a/packages/core/src/prompts/multi-select.ts +++ b/packages/core/src/prompts/multi-select.ts @@ -6,7 +6,7 @@ interface OptionLike { disabled?: boolean; } -interface MultiSelectOptions +export interface MultiSelectOptions extends PromptOptions> { options: T[]; initialValues?: T['value'][]; diff --git a/packages/core/src/prompts/password.ts b/packages/core/src/prompts/password.ts index a9864577..20f48634 100644 --- a/packages/core/src/prompts/password.ts +++ b/packages/core/src/prompts/password.ts @@ -1,7 +1,7 @@ import color from 'picocolors'; import Prompt, { type PromptOptions } from './prompt.js'; -interface PasswordOptions extends PromptOptions { +export interface PasswordOptions extends PromptOptions { mask?: string; } export default class PasswordPrompt extends Prompt { diff --git a/packages/core/src/prompts/select-key.ts b/packages/core/src/prompts/select-key.ts index 94062279..2fd225a2 100644 --- a/packages/core/src/prompts/select-key.ts +++ b/packages/core/src/prompts/select-key.ts @@ -1,6 +1,6 @@ import Prompt, { type PromptOptions } from './prompt.js'; -interface SelectKeyOptions +export interface SelectKeyOptions extends PromptOptions> { options: T[]; } diff --git a/packages/core/src/prompts/select.ts b/packages/core/src/prompts/select.ts index b169e50e..99ed5df9 100644 --- a/packages/core/src/prompts/select.ts +++ b/packages/core/src/prompts/select.ts @@ -1,7 +1,7 @@ import { findCursor } from '../utils/cursor.js'; import Prompt, { type PromptOptions } from './prompt.js'; -interface SelectOptions +export interface SelectOptions extends PromptOptions> { options: T[]; initialValue?: T['value']; diff --git a/packages/core/src/prompts/text.ts b/packages/core/src/prompts/text.ts index c76a5188..61015af7 100644 --- a/packages/core/src/prompts/text.ts +++ b/packages/core/src/prompts/text.ts @@ -1,7 +1,7 @@ import color from 'picocolors'; import Prompt, { type PromptOptions } from './prompt.js'; -interface TextOptions extends PromptOptions { +export interface TextOptions extends PromptOptions { placeholder?: string; defaultValue?: string; }