@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
207 lines (206 loc) • 8.55 kB
TypeScript
import { ExtendComponent, Factory, MantineSize, MantineThemeComponent, StylesApiProps } from '../../core';
import { __PopoverProps } from '../Popover';
import { ComboboxChevron, ComboboxChevronProps } from './ComboboxChevron/ComboboxChevron';
import { ComboboxClearButton, ComboboxClearButtonProps } from './ComboboxClearButton/ComboboxClearButton';
import { ComboboxDropdown, ComboboxDropdownProps } from './ComboboxDropdown/ComboboxDropdown';
import { ComboboxDropdownTarget, ComboboxDropdownTargetProps } from './ComboboxDropdownTarget/ComboboxDropdownTarget';
import { ComboboxEmpty, ComboboxEmptyProps } from './ComboboxEmpty/ComboboxEmpty';
import { ComboboxEventsTarget, ComboboxEventsTargetProps } from './ComboboxEventsTarget/ComboboxEventsTarget';
import { ComboboxFooter, ComboboxFooterProps } from './ComboboxFooter/ComboboxFooter';
import { ComboboxGroup, ComboboxGroupProps } from './ComboboxGroup/ComboboxGroup';
import { ComboboxHeader, ComboboxHeaderProps } from './ComboboxHeader/ComboboxHeader';
import { ComboboxHiddenInput, ComboboxHiddenInputProps } from './ComboboxHiddenInput/ComboboxHiddenInput';
import { ComboboxOption, ComboboxOptionProps } from './ComboboxOption/ComboboxOption';
import { ComboboxOptions, ComboboxOptionsProps } from './ComboboxOptions/ComboboxOptions';
import { ComboboxSearch, ComboboxSearchProps } from './ComboboxSearch/ComboboxSearch';
import { ComboboxTarget, ComboboxTargetProps } from './ComboboxTarget/ComboboxTarget';
import { ComboboxStore } from './use-combobox/use-combobox';
export type ComboboxStylesNames = 'options' | 'dropdown' | 'option' | 'search' | 'empty' | 'footer' | 'header' | 'group' | 'groupLabel';
export type ComboboxCSSVariables = {
options: '--combobox-option-fz' | '--combobox-option-padding';
dropdown: '--combobox-padding' | '--combobox-option-fz' | '--combobox-option-padding';
};
export interface ComboboxProps extends __PopoverProps, StylesApiProps<ComboboxFactory> {
__staticSelector?: string;
/** Combobox content */
children?: React.ReactNode;
/** Combobox store, can be used to control combobox state */
store?: ComboboxStore;
/** Called when item is selected with the `Enter` key or by clicking it */
onOptionSubmit?: (value: string, optionProps: ComboboxOptionProps) => void;
/** Controls items `font-size` and `padding` @default 'sm' */
size?: MantineSize | (string & {});
/** Controls `padding` of the dropdown @default 4 */
dropdownPadding?: React.CSSProperties['padding'];
/** Determines whether selection should be reset when option is hovered @default false */
resetSelectionOnOptionHover?: boolean;
/** Determines whether the `Combobox` value can be changed */
readOnly?: boolean;
}
export type ComboboxFactory = Factory<{
props: ComboboxProps;
ref: HTMLDivElement;
stylesNames: ComboboxStylesNames;
vars: ComboboxCSSVariables;
staticComponents: {
Target: typeof ComboboxTarget;
Dropdown: typeof ComboboxDropdown;
Options: typeof ComboboxOptions;
Option: typeof ComboboxOption;
Search: typeof ComboboxSearch;
Empty: typeof ComboboxEmpty;
Chevron: typeof ComboboxChevron;
Footer: typeof ComboboxFooter;
Header: typeof ComboboxHeader;
EventsTarget: typeof ComboboxEventsTarget;
DropdownTarget: typeof ComboboxDropdownTarget;
Group: typeof ComboboxGroup;
ClearButton: typeof ComboboxClearButton;
HiddenInput: typeof ComboboxHiddenInput;
};
}>;
export declare const Combobox: {
(_props: ComboboxProps): import("react/jsx-runtime").JSX.Element;
extend: (c: ExtendComponent<ComboboxFactory>) => MantineThemeComponent;
classes: any;
varsResolver: import("../..").VarsResolver<{
props: ComboboxProps;
ref: HTMLDivElement;
stylesNames: ComboboxStylesNames;
vars: ComboboxCSSVariables;
staticComponents: {
Target: typeof ComboboxTarget;
Dropdown: typeof ComboboxDropdown;
Options: typeof ComboboxOptions;
Option: typeof ComboboxOption;
Search: typeof ComboboxSearch;
Empty: typeof ComboboxEmpty;
Chevron: typeof ComboboxChevron;
Footer: typeof ComboboxFooter;
Header: typeof ComboboxHeader;
EventsTarget: typeof ComboboxEventsTarget;
DropdownTarget: typeof ComboboxDropdownTarget;
Group: typeof ComboboxGroup;
ClearButton: typeof ComboboxClearButton;
HiddenInput: typeof ComboboxHiddenInput;
};
}>;
displayName: string;
Target: import("../..").MantineComponent<{
props: ComboboxTargetProps;
ref: HTMLElement;
compound: true;
}>;
Dropdown: import("../..").MantineComponent<{
props: ComboboxDropdownProps;
ref: HTMLDivElement;
stylesNames: import("./ComboboxDropdown/ComboboxDropdown").ComboboxDropdownStylesNames;
compound: true;
}>;
Options: import("../..").MantineComponent<{
props: ComboboxOptionsProps;
ref: HTMLDivElement;
stylesNames: import("./ComboboxOptions/ComboboxOptions").ComboboxOptionsStylesNames;
compound: true;
}>;
Option: import("../..").MantineComponent<{
props: ComboboxOptionProps;
ref: HTMLDivElement;
stylesNames: import("./ComboboxOption/ComboboxOption").ComboboxOptionStylesNames;
compound: true;
}>;
Search: import("../..").MantineComponent<{
props: ComboboxSearchProps;
ref: HTMLInputElement;
stylesNames: import("./ComboboxSearch/ComboboxSearch").ComboboxSearchStylesNames;
}>;
Empty: import("../..").MantineComponent<{
props: ComboboxEmptyProps;
ref: HTMLDivElement;
stylesNames: import("./ComboboxEmpty/ComboboxEmpty").ComboboxEmptyStylesNames;
compound: true;
}>;
Chevron: import("../..").MantineComponent<{
props: ComboboxChevronProps;
ref: SVGSVGElement;
stylesNames: import("./ComboboxChevron/ComboboxChevron").ComboboxChevronStylesNames;
vars: import("./ComboboxChevron/ComboboxChevron").ComboboxChevronCSSVariables;
}>;
Footer: import("../..").MantineComponent<{
props: ComboboxFooterProps;
ref: HTMLDivElement;
stylesNames: import("./ComboboxFooter/ComboboxFooter").ComboboxFooterStylesNames;
compound: true;
}>;
Header: import("../..").MantineComponent<{
props: ComboboxHeaderProps;
ref: HTMLDivElement;
stylesNames: import("./ComboboxHeader/ComboboxHeader").ComboboxHeaderStylesNames;
compound: true;
}>;
EventsTarget: import("../..").MantineComponent<{
props: ComboboxEventsTargetProps;
ref: HTMLElement;
compound: true;
}>;
DropdownTarget: import("../..").MantineComponent<{
props: ComboboxDropdownTargetProps;
ref: HTMLElement;
compound: true;
}>;
Group: import("../..").MantineComponent<{
props: ComboboxGroupProps;
ref: HTMLDivElement;
stylesNames: import("./ComboboxGroup/ComboboxGroup").ComboboxGroupStylesNames;
compound: true;
}>;
ClearButton: typeof ComboboxClearButton;
HiddenInput: typeof ComboboxHiddenInput;
};
export declare namespace Combobox {
type Props = ComboboxProps;
type StylesNames = ComboboxStylesNames;
type Factory = ComboboxFactory;
namespace Dropdown {
type Props = ComboboxDropdownProps;
}
namespace Options {
type Props = ComboboxOptionsProps;
}
namespace Option {
type Props = ComboboxOptionProps;
}
namespace Target {
type Props = ComboboxTargetProps;
}
namespace Chevron {
type Props = ComboboxChevronProps;
}
namespace Empty {
type Props = ComboboxEmptyProps;
}
namespace Search {
type Props = ComboboxSearchProps;
}
namespace Footer {
type Props = ComboboxFooterProps;
}
namespace Header {
type Props = ComboboxHeaderProps;
}
namespace DropdownTarget {
type Props = ComboboxDropdownTargetProps;
}
namespace EventsTarget {
type Props = ComboboxEventsTargetProps;
}
namespace Group {
type Props = ComboboxGroupProps;
}
namespace ClearButton {
type Props = ComboboxClearButtonProps;
}
namespace HiddenInput {
type Props = ComboboxHiddenInputProps;
}
}