import type { JSX } from 'solid-js'; import { createComponent, createEffect, mergeProps } from 'solid-js'; import { omitProps } from 'solid-use/props'; import type { DisclosureStateRenderProps } from '../../states/create-disclosure-state'; import { DisclosureStateChild, useDisclosureState } from '../../states/create-disclosure-state'; import type { HeadlessPropsWithRef, ValidConstructor } from '../../utils/dynamic-prop'; import { createForwardRef } from '../../utils/dynamic-prop'; import { createARIADisabledState, createARIAExpandedState, createDisabledState, createExpandedState, } from '../../utils/state-props'; import type { OmitAndMerge } from '../../utils/types'; import useEventListener from '../../utils/use-event-listener'; import type { ButtonProps } from '../button'; import { Button } from '../button'; import { usePopoverContext } from './PopoverContext'; import { POPOVER_BUTTON_TAG } from './tags'; export type PopoverButtonProps = HeadlessPropsWithRef< T, OmitAndMerge> >; /** * The trigger of a `Popover`. Carries `aria-expanded`, and `aria-controls` * while the panel is mounted. * * Renders a `