import type { JSX } from 'solid-js'; import { createEffect, mergeProps } from 'solid-js'; import { omitProps } from 'solid-use/props'; import createDynamic from '../../utils/create-dynamic'; import type { DynamicProps, HeadlessPropsWithRef, ValidConstructor, } from '../../utils/dynamic-prop'; import { createForwardRef } from '../../utils/dynamic-prop'; import { createTag } from '../../utils/namespace'; import { createARIADisabledState, createDisabledState } from '../../utils/state-props'; import useEventListener from '../../utils/use-event-listener'; const BUTTON_TAG = createTag('button'); interface ButtonBaseProps { disabled?: boolean; } export type ButtonProps = HeadlessPropsWithRef< T, ButtonBaseProps >; /** * Button behaviour on any element. On a real `