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 { useSelectState } from '../../states/create-select-state'; import type { HeadlessPropsWithRef, ValidConstructor } from '../../utils/dynamic-prop'; import { createForwardRef } from '../../utils/dynamic-prop'; import { createARIADisabledState, createARIAExpandedState, createDisabledState, createExpandedState, createHasActiveState, createHasSelectedState, } 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 { useListboxContext } from './ListboxContext'; import { LISTBOX_BUTTON_TAG } from './tags'; export type ListboxButtonProps = HeadlessPropsWithRef< T, OmitAndMerge> >; /** * The trigger of a `Listbox`. Carries `aria-expanded` and `aria-haspopup`, and * opens the popup with the arrow keys as well as by click. * * Renders a `