import { withSchema } from '@websolutespa/bom-core';
import { Combobox as ComboboxBase } from './combobox';
import { ComboboxCancel } from './combobox-cancel';
import { ComboboxCombobox } from './combobox-combobox';
import { ComboboxEmpty } from './combobox-empty';
import { ComboboxLabel } from './combobox-label';
import { ComboboxOption } from './combobox-option';
import { ComboboxOptionCheck } from './combobox-option-check';
import { ComboboxOptionValue } from './combobox-option-value';
import { ComboboxPopover } from './combobox-popover';

export const Combobox = withSchema(
  ComboboxBase,
  {
    Cancel: ComboboxCancel,
    Combobox: ComboboxCombobox,
    Empty: ComboboxEmpty,
    Label: ComboboxLabel,
    Option: ComboboxOption,
    OptionCheck: ComboboxOptionCheck,
    OptionValue: ComboboxOptionValue,
    Popover: ComboboxPopover,
  });

export type { ComboboxProps } from './combobox';
export type { ComboboxCancelProps } from './combobox-cancel';
export type { ComboboxComboboxProps } from './combobox-combobox';
export type { ComboboxEmptyProps } from './combobox-empty';
export type { ComboboxLabelProps } from './combobox-label';
export type { ComboboxOptionProps } from './combobox-option';
export type { ComboboxOptionCheckProps } from './combobox-option-check';
export type { ComboboxOptionValueProps } from './combobox-option-value';
export type { ComboboxPopoverProps } from './combobox-popover';

export * from './combobox.variants';

