import { SvelteComponent } from 'svelte'; import { HTMLInputAttributes, HTMLSelectAttributes, HTMLTextareaAttributes } from 'svelte/elements'; import { Color, InputType } from '../shared'; interface MixedElementProps extends Omit { bsSize?: 'lg' | 'sm' | string; color?: Color | string; feedback?: string | string[]; files?: FileList; group?: any; inner?: HTMLElement; invalid?: boolean; label?: string; plaintext?: boolean; reverse?: boolean; theme?: string; type?: InputType; valid?: boolean; value?: any; } type MixedTargetProps = { checked: boolean; valueAsDate: Date; valueAsNumber: number; }; export interface InputProps extends MixedElementProps {} type InputElementEvent = E & { currentTarget: (HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement) & MixedTargetProps; target: (HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement) & MixedTargetProps; }; export interface InputEvents { blur: InputElementEvent; change: InputElementEvent; click: InputElementEvent; dblclick: InputElementEvent; focus: InputElementEvent; input: InputElementEvent; keydown: InputElementEvent; keypress: InputElementEvent; keyup: InputElementEvent; mousedown: InputElementEvent; mouseenter: InputElementEvent; mouseover: InputElementEvent; mouseleave: InputElementEvent; mouseup: InputElementEvent; paste: InputElementEvent; } export interface InputSlots { default?: {}; } export default class Input extends SvelteComponent {}