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; } } interface PyroButtonPreact extends Omit, ButtonProps { } declare module 'preact/jsx-runtime' { namespace JSX { interface IntrinsicElements { 'pyro-button': PyroButtonPreact; } } } interface PyroButtonSvelte extends Omit, keyof ButtonProps>, ButtonProps { } declare module 'svelte/elements' { interface SvelteHTMLElements { 'pyro-button': PyroButtonSvelte; } } declare module 'solid-js' { namespace JSX { interface IntrinsicElements { 'pyro-button': PyroButtonPreact; } } } export {};