UNPKG

@karmaniverous/hook-form-semantic

Version:

React Hook Form components with Semantic UI React integration - date pickers, WYSIWYG editor, phone input, JSON editor, and more.

124 lines (105 loc) 9.52 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import { FieldValues, ControllerProps, ControllerRenderProps, Path, ControllerFieldState } from 'react-hook-form'; import { StrictFormFieldProps, StrictCheckboxProps, FormFieldProps, StrictMenuProps, StrictButtonProps, StrictDropdownProps, SemanticICONS } from 'semantic-ui-react'; import { DatePickerProps } from 'react-date-picker'; import { DateTimePickerProps } from 'react-datetime-picker'; import { DateRangePickerProps } from '@wojtekmaj/react-daterange-picker'; import { DateTimeRangePickerProps } from '@wojtekmaj/react-datetimerange-picker'; import { JSONEditorPropsOptional } from 'vanilla-jsoneditor'; import { ChangeEventHandler } from 'react'; import { NumericFormatProps } from 'react-number-format'; import { UsePhoneInputConfig } from 'react-international-phone'; import { UseRRStackOutput, UseRRStackProps } from '@karmaniverous/rrstack/react'; import { DescribeOptions } from '@karmaniverous/rrstack'; import { EditorProps } from 'react-draft-wysiwyg'; type PrefixedPartial<T, Prefix extends string> = { [K in keyof T as K extends string ? `${Prefix}${Capitalize<K>}` : never]: T[K]; }; interface HookFormCheckboxProps<T extends FieldValues> extends Omit<StrictFormFieldProps, 'children' | 'checked' | 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>, PrefixedPartial<StrictCheckboxProps, 'checkbox'> { checkLabel?: string; leftLabel?: string; rightLabel?: string; uncheckLabel?: string; } declare const HookFormCheckbox: <T extends FieldValues>({ checkLabel, label, leftLabel, rightLabel, uncheckLabel, ...props }: HookFormCheckboxProps<T>) => react_jsx_runtime.JSX.Element; interface HookFormDatePickerProps<T extends FieldValues> extends Omit<FormFieldProps, 'children' | 'checked' | 'control' | 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, Partial<PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>>, PrefixedPartial<DatePickerProps, 'datePicker'>, PrefixedPartial<DateTimePickerProps, 'timePicker'> { /** * Standalone mode (no RHF). Provide value and onChange handlers. */ standalone?: boolean; value?: Date | null; onChange?: (value: Date | null) => void; } declare const HookFormDatePicker: <T extends FieldValues>({ standalone, value: standaloneValue, onChange: standaloneOnChange, ...props }: HookFormDatePickerProps<T>) => react_jsx_runtime.JSX.Element; type DateRange = [Date | null, Date | null]; declare const extractTimestamps: (dateRange: DateRange) => (number | undefined)[]; type Presets = Record<string, { text: string; value: DateRange | (() => DateRange); epoch: 'past' | 'present' | 'future'; }>; declare const defaultPresets: Presets; declare const filterPresets: (epochs: Presets[string]["epoch"][], presets?: Presets) => Presets; interface HookFormDateRangePickerProps<T extends FieldValues> extends Omit<FormFieldProps, 'children' | 'checked' | 'control' | 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, Partial<PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>>, PrefixedPartial<DateRangePickerProps, 'datePicker'>, PrefixedPartial<DateTimeRangePickerProps, 'timePicker'> { presets?: Presets; standalone?: boolean; value?: DateRange; onChange?: (value: DateRange) => void; } declare const HookFormDateRangePicker: <T extends FieldValues>({ standalone, value: standaloneValue, onChange: standaloneOnChange, presets, ...props }: HookFormDateRangePickerProps<T>) => react_jsx_runtime.JSX.Element; interface HookFormFieldProps<T extends FieldValues, C> extends Omit<FormFieldProps, 'children' | 'checked' | 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'> { children?: FormFieldProps['children'] | ((field: ControllerRenderProps<T, Path<T>>, fieldState: ControllerFieldState) => FormFieldProps['children']); onChange?: (event: React.SyntheticEvent<HTMLElement>, data: C) => void; } declare const HookFormField: <T extends FieldValues, C>({ children, onChange, ...props }: HookFormFieldProps<T, C>) => react_jsx_runtime.JSX.Element; interface HookFormJsonEditorProps<T extends FieldValues> extends Omit<FormFieldProps, 'children' | 'disabled' | 'error' | 'name' | 'onBlur' | 'ref' | 'value'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>, PrefixedPartial<Partial<Omit<JSONEditorPropsOptional, 'content'>>, 'json'> { } declare const HookFormJsonEditor: <T extends FieldValues>(props: HookFormJsonEditorProps<T>) => react_jsx_runtime.JSX.Element; interface HookFormMenuProps<T extends FieldValues> extends Omit<FormFieldProps, 'children' | 'checked' | 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, PrefixedPartial<Omit<StrictMenuProps, 'activeIndex' | 'children' | 'onItemClick'>, 'menu'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'> { } declare const HookFormMenu: <T extends FieldValues>({ ...props }: HookFormMenuProps<T>) => react_jsx_runtime.JSX.Element; type DisplayMode = 'card' | 'table' | 'wizard'; type HookFormMenuDisplayModeProps<T extends FieldValues> = Omit<HookFormMenuProps<T>, 'menuItems'>; declare const HookFormMenuDisplayMode: <T extends FieldValues>({ hookName, ...props }: HookFormMenuDisplayModeProps<T>) => react_jsx_runtime.JSX.Element; interface HookFormNumericProps<T extends FieldValues> extends Omit<FormFieldProps, 'children' | 'checked' | 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>, PrefixedPartial<Omit<NumericFormatProps, 'customInput' | 'onChange'>, 'numeric'> { onChange?: ChangeEventHandler<HTMLInputElement>; } declare const HookFormNumeric: <T extends FieldValues>({ label, ...props }: HookFormNumericProps<T>) => react_jsx_runtime.JSX.Element; interface HookFormPhoneProps<T extends FieldValues> extends Omit<FormFieldProps, 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>, PrefixedPartial<Omit<UsePhoneInputConfig, 'value'>, 'phone'> { phonePlaceholderNumberChar?: string; mobileBreakpoint?: number; isValidating?: boolean; } declare const HookFormPhone: <T extends FieldValues>(props: HookFormPhoneProps<T>) => react_jsx_runtime.JSX.Element; type Logger = ((...args: unknown[]) => void) | boolean | null | undefined; interface RRStackRuleDescriptionPropsBase extends DescribeOptions { fallback?: React.ReactNode; index: number; rrstack: UseRRStackOutput['rrstack']; } interface HookFormRRStackProps<T extends FieldValues> extends Omit<FormFieldProps, 'as' | 'children' | 'content' | 'control' | 'checked' | 'disabled' | 'error' | 'inline' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'type' | 'value'>, PrefixedPartial<Omit<RRStackRuleDescriptionPropsBase, 'index' | 'rrstack'>, 'describe'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>, PrefixedPartial<Omit<UseRRStackProps, 'json' | 'timezone'>, 'rrstack'> { logger?: Logger; timestampFormat?: string; } declare const HookFormRRStack: <T extends FieldValues>({ logger, timestampFormat, ...props }: HookFormRRStackProps<T>) => react_jsx_runtime.JSX.Element; type Sort<T extends string | undefined> = [ NonNullable<T> | 'auto', boolean ]; interface HookFormSortProps<T extends FieldValues> extends Omit<FormFieldProps, 'children' | 'checked' | 'disabled' | 'error' | 'name' | 'onBlur' | 'onChange' | 'ref' | 'value'>, PrefixedPartial<Omit<StrictButtonProps, 'children' | 'icon' | 'onClick'>, 'button'>, PrefixedPartial<Omit<StrictDropdownProps, 'button' | 'children' | 'selection' | 'style' | 'value'>, 'dropdown'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'> { ascIcon?: SemanticICONS; descIcon?: SemanticICONS; sortOptions?: StrictDropdownProps['options']; dropdownOptions?: StrictDropdownProps['options']; } declare const HookFormSort: <T extends FieldValues>({ ascIcon, descIcon, sortOptions, dropdownOptions, ...props }: HookFormSortProps<T>) => react_jsx_runtime.JSX.Element; interface WysiwygEditorProps extends Omit<EditorProps, 'editorState' | 'onChange' | 'onEditorStateChange'> { onChange: (value: string) => void; value?: string | null; } interface HookFormWysiwygEditorProps<T extends FieldValues> extends Omit<FormFieldProps, 'children' | 'disabled' | 'error' | 'name' | 'onBlur' | 'ref' | 'value'>, PrefixedPartial<Omit<ControllerProps<T>, 'render'>, 'hook'>, PrefixedPartial<Partial<WysiwygEditorProps>, 'wysiwyg'> { } declare const HookFormWysiwygEditor: <T extends FieldValues>(props: HookFormWysiwygEditorProps<T>) => react_jsx_runtime.JSX.Element; declare const isPhoneValid: (phone: string) => boolean; export { HookFormCheckbox, HookFormDatePicker, HookFormDateRangePicker, HookFormField, HookFormJsonEditor, HookFormMenu, HookFormMenuDisplayMode, HookFormNumeric, HookFormPhone, HookFormRRStack, HookFormSort, HookFormWysiwygEditor, defaultPresets, extractTimestamps, filterPresets, isPhoneValid }; export type { DateRange, DisplayMode, HookFormCheckboxProps, HookFormDatePickerProps, HookFormDateRangePickerProps, HookFormFieldProps, HookFormJsonEditorProps, HookFormMenuDisplayModeProps, HookFormMenuProps, HookFormNumericProps, HookFormPhoneProps, HookFormRRStackProps, HookFormSortProps, HookFormWysiwygEditorProps, Presets, Sort };