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 1264bbf6..16753264 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,6 +1,15 @@ export type { ClackState as State } from './types'; export type { ClackSettings } from './utils/settings'; +export type { ConfirmOptions } from './prompts/confirm'; +export type { GroupMultiSelectOptions } from './prompts/group-multiselect'; +export type { MultiSelectOptions } from './prompts/multi-select'; +export type { PasswordOptions } from './prompts/password'; +export type { PromptOptions } from './prompts/prompt'; +export type { SelectOptions } from './prompts/select'; +export type { SelectKeyOptions } from './prompts/select-key'; +export type { TextOptions } from './prompts/text'; + export { default as ConfirmPrompt } from './prompts/confirm'; export { default as GroupMultiSelectPrompt } from './prompts/group-multiselect'; export { default as MultiSelectPrompt } from './prompts/multi-select'; diff --git a/packages/core/src/prompts/confirm.ts b/packages/core/src/prompts/confirm.ts index 9b24df31..af3b74e4 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'; -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 0f2e10e4..600d7ed5 100644 --- a/packages/core/src/prompts/group-multiselect.ts +++ b/packages/core/src/prompts/group-multiselect.ts @@ -1,12 +1,13 @@ import Prompt, { type PromptOptions } from './prompt'; -interface GroupMultiSelectOptions +export interface GroupMultiSelectOptions extends PromptOptions> { options: Record; initialValues?: T['value'][]; required?: boolean; cursorAt?: T['value']; } + export default class GroupMultiSelectPrompt extends Prompt { options: (T & { group: string | boolean })[]; cursor = 0; diff --git a/packages/core/src/prompts/multi-select.ts b/packages/core/src/prompts/multi-select.ts index 4e6eb72e..1d110353 100644 --- a/packages/core/src/prompts/multi-select.ts +++ b/packages/core/src/prompts/multi-select.ts @@ -1,11 +1,13 @@ import Prompt, { type PromptOptions } from './prompt'; -interface MultiSelectOptions extends PromptOptions> { +export interface MultiSelectOptions + extends PromptOptions> { options: T[]; initialValues?: T['value'][]; required?: boolean; cursorAt?: T['value']; } + export default class MultiSelectPrompt extends Prompt { options: T[]; cursor = 0; diff --git a/packages/core/src/prompts/password.ts b/packages/core/src/prompts/password.ts index 453b05fd..9e258421 100644 --- a/packages/core/src/prompts/password.ts +++ b/packages/core/src/prompts/password.ts @@ -1,9 +1,10 @@ import color from 'picocolors'; import Prompt, { type PromptOptions } from './prompt'; -interface PasswordOptions extends PromptOptions { +export interface PasswordOptions extends PromptOptions { mask?: string; } + export default class PasswordPrompt extends Prompt { valueWithCursor = ''; private _mask = '•'; diff --git a/packages/core/src/prompts/select-key.ts b/packages/core/src/prompts/select-key.ts index c99c30ad..375db2ef 100644 --- a/packages/core/src/prompts/select-key.ts +++ b/packages/core/src/prompts/select-key.ts @@ -1,8 +1,10 @@ import Prompt, { type PromptOptions } from './prompt'; -interface SelectKeyOptions extends PromptOptions> { +export interface SelectKeyOptions + extends PromptOptions> { options: T[]; } + export default class SelectKeyPrompt extends Prompt { options: T[]; cursor = 0; diff --git a/packages/core/src/prompts/select.ts b/packages/core/src/prompts/select.ts index d5afca2c..1eb6db60 100644 --- a/packages/core/src/prompts/select.ts +++ b/packages/core/src/prompts/select.ts @@ -1,9 +1,10 @@ import Prompt, { type PromptOptions } from './prompt'; -interface SelectOptions extends PromptOptions> { +export interface SelectOptions extends PromptOptions> { options: T[]; initialValue?: T['value']; } + export default class SelectPrompt extends Prompt { options: T[]; cursor = 0;