pyro
Version:
Pyro custom elements
48 lines (47 loc) • 1.33 kB
TypeScript
import { DefineComponent } from 'vue';
import { HTMLAttributes } from 'svelte/elements';
export interface ButtonProps {
/** Color variant of the button */
variant?: 'primary' | 'secondary' | 'tertiary' | '';
/** Button size */
size?: 's' | 'm' | 'l';
/** Enforces a transparent background */
transparent?: boolean;
/** Make the button into a circle */
circle?: boolean;
/** Disabled */
disabled?: boolean;
/** Type, button by default */
type?: 'button' | 'submit' | 'reset' | 'menu';
onClick?: () => void;
children?: any;
}
declare module 'vue' {
interface GlobalComponents {
'pyro-button': DefineComponent<ButtonProps>;
}
}
interface PyroButtonPreact extends Omit<JSX.HTMLAttributes, keyof ButtonProps>, ButtonProps {
}
declare module 'preact/jsx-runtime' {
namespace JSX {
interface IntrinsicElements {
'pyro-button': PyroButtonPreact;
}
}
}
interface PyroButtonSvelte extends Omit<HTMLAttributes<any>, keyof ButtonProps>, ButtonProps {
}
declare module 'svelte/elements' {
interface SvelteHTMLElements {
'pyro-button': PyroButtonSvelte;
}
}
declare module 'solid-js' {
namespace JSX {
interface IntrinsicElements {
'pyro-button': PyroButtonPreact;
}
}
}
export {};