@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and PandaCSS
67 lines (64 loc) • 2.65 kB
TypeScript
import { DropdownMenuContentProps } from '@radix-ui/react-dropdown-menu';
import { ReactNode, ForwardedRef, ChangeEvent, AllHTMLAttributes } from 'react';
import { CombinedRefs as CombinedRefs$1, DropdownItemGroupProps, DropdownItemProps } from '../Dropdown/Dropdown.types.js';
import { InputTextProps } from '../InputText/InputText.types.js';
import '../InputRadio/InputRadio.types.js';
import '@radix-ui/react-radio-group';
import '../InputRadio/InputRadio.constants.js';
import '../Paper/Paper.types.js';
import '../constants-QFINMz1u.js';
import '../Paper/Paper.constants.js';
import '../Typography/Typography.constants.js';
import '../Button/Button.types.js';
import '@snowball-tech/design-tokens/dist/web/typescript/constants';
import '../Button/Button.constants.js';
type CombinedRefs = {
container: HTMLDivElement | null;
dropdown: CombinedRefs$1 | null;
input: HTMLInputElement | null;
};
interface AutocompleteProps extends Omit<InputTextProps, 'onBlur' | 'onSelect'> {
autoFocus?: boolean;
children?: ReactNode;
defaultValue?: number | string;
description?: ReactNode;
disabled?: boolean;
dropdown?: Partial<{
className?: string;
ref?: ForwardedRef<HTMLDivElement | null>;
} & Omit<DropdownMenuContentProps, 'asChild'>>;
error?: Error | ReactNode;
fullWidth?: boolean;
id?: string;
label?: ReactNode;
labelElement?: keyof HTMLElementTagNameMap;
name?: string;
open?: boolean;
placeholder?: string;
prefix?: ReactNode;
readOnly?: boolean;
required?: boolean;
success?: ReactNode;
suffix?: ReactNode;
value?: number | string;
onBlur?: () => void;
onChange?: (event: ChangeEvent<HTMLInputElement> | null, newValue: string) => void;
onClose?: () => void;
onInputChange?: (event: ChangeEvent<HTMLInputElement>, newValue: string) => void;
onOpen?: () => void;
}
interface AutocompleteLoadingProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'label'> {
children?: ReactNode;
icon?: boolean | ReactNode;
label?: ReactNode;
spin?: boolean;
}
interface AutocompleteEmptyProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'label'> {
children?: ReactNode;
label?: ReactNode;
labelElement?: keyof HTMLElementTagNameMap;
}
type AutocompleteItemProps = DropdownItemProps;
type AutocompleteItemGroupProps = DropdownItemGroupProps;
type AutocompleteItemSeparatorProps = AllHTMLAttributes<HTMLDivElement>;
export type { AutocompleteEmptyProps, AutocompleteItemGroupProps, AutocompleteItemProps, AutocompleteItemSeparatorProps, AutocompleteLoadingProps, AutocompleteProps, CombinedRefs };