pyro
Version:
Pyro custom elements
53 lines (52 loc) • 1.56 kB
TypeScript
import { Severity, TargetValueEvent } from '../types';
import { DefineComponent } from 'vue';
import { HTMLAttributes } from 'svelte/elements';
export interface TextfieldProps {
/** Type of the input, or 'textarea' */
type?: 'text' | 'textarea' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'url';
/** Value of the input */
value: string;
/** Caption below the textfield, for description or errors */
caption?: string;
/** State and color of the textfield */
severity?: Severity;
/** Placeholder */
placeholder?: string;
/** Required */
required?: string;
/** Disabled */
disabled?: boolean;
/** Clearable */
clearable?: boolean;
onInput?: (e: TargetValueEvent) => void;
children?: any;
}
declare module 'vue' {
interface GlobalComponents {
'pyro-textfield': DefineComponent<TextfieldProps>;
}
}
interface PyroTextfieldPreact extends Omit<JSX.HTMLAttributes, keyof TextfieldProps>, TextfieldProps {
}
declare module 'preact/jsx-runtime' {
namespace JSX {
interface IntrinsicElements {
'pyro-textfield': PyroTextfieldPreact;
}
}
}
interface PyroTextfieldSvelte extends Omit<HTMLAttributes<any>, keyof TextfieldProps>, TextfieldProps {
}
declare module 'svelte/elements' {
interface SvelteHTMLElements {
'pyro-textfield': PyroTextfieldSvelte;
}
}
declare module 'solid-js' {
namespace JSX {
interface IntrinsicElements {
'pyro-textfield': PyroTextfieldPreact;
}
}
}
export {};