import React from "react"; import { createComponent } from "@lit/react"; import { MdIconButton as MdIconButtonWebComponent } from "@material/web/iconbutton/icon-button"; import { MdFilledIconButton as MdFilledIconButtonWebComponent } from "@material/web/iconbutton/filled-icon-button"; import { MdOutlinedIconButton as MdOutlinedIconButtonWebComponent } from "@material/web/iconbutton/outlined-icon-button"; import { MdFilledTonalIconButton as MdFilledTonalIconButtonWebComponent } from "@material/web/iconbutton/filled-tonal-icon-button"; const MdIconButton = createComponent({ react: React, tagName: 'md-icon-button', elementClass: MdIconButtonWebComponent, events: { onChange: 'change', onInput: 'input', onClick: 'click', }, }); const MdFilledIconButton = createComponent({ react: React, tagName: 'md-filled-icon-button', elementClass: MdFilledIconButtonWebComponent, events: { onChange: 'change', onInput: 'input', onClick: 'click', }, }); const MdOutlinedIconButton = createComponent({ react: React, tagName: 'md-outlined-icon-button', elementClass: MdOutlinedIconButtonWebComponent, events: { onChange: 'change', onInput: 'input', onClick: 'click', }, }); const MdFilledTonalIconButton = createComponent({ react: React, tagName: 'md-filled-tonal-icon-button', elementClass: MdFilledTonalIconButtonWebComponent, events: { onChange: 'change', onInput: 'input', onClick: 'click', }, }); type IconButtonProps = { variant?: 'filled' | 'outlined' | 'filled-tonal' | 'standard'; disabled?: boolean; flipIconInRtl?: boolean; href?: string; target?: '_blank' | '_self' | '_parent' | '_top'; ariaLabelSelected?: string; toggle?: boolean; selected?: boolean; type?: 'button' | 'submit' | 'reset'; value?: string; name?: string; form?: HTMLFormElement; labels?: NodeListOf; children: React.ReactNode; style?: React.CSSProperties; className?: string; id?: string; onChange?: (event: Event) => void; onInput?: (event: Event) => void; onClick?: (event: Event) => void; }; export const IconButton = (props: IconButtonProps) => { const variant = props.variant || 'standard'; switch (variant) { case 'filled': return ; case 'outlined': return ; case 'filled-tonal': return ; default: return ; } };