import "./member_select.css"; import type * as React from "react"; import { type SelectCommit } from "./select"; import { type StyleProps } from "./style_props"; /** Accepts a `useMembers` row from `@lotics/app-runtime/sdk` directly. */ export interface MemberSelectMember { id: string; name?: string | null; image?: string | null; email?: string | null; } interface MemberSelectBase extends StyleProps { /** Each member carries its own avatar, so options need no side lookup. */ members: MemberSelectMember[]; placeholder?: string; /** The bare avatar at rest (a dashed ghost when empty) for a dense cell; the dropdown still shows names. */ avatarOnly?: boolean; /** Single-select only: a named row at the list head (`emptyLabel`) answering `null`. */ clearable?: boolean; /** Locale default: "None". */ emptyLabel?: string; searchable?: boolean; disabled?: boolean; /** `defaultOpen` opens the roster instead. */ autoFocus?: boolean; defaultOpen?: boolean; accessibilityLabel?: string; testID?: string; /** A `
`. */ ref?: React.Ref; } export type MemberSelectProps = (MemberSelectBase & { multi?: false; } & SelectCommit) | (MemberSelectBase & { multi: true; enableSelectAll?: boolean; selectAllLabel?: string; deselectAllLabel?: string; } & SelectCommit); /** A {@link Select} whose options render as {@link MemberChip}s. Pure: pass `members`. * `.lotics-member-select` paints only the empty slot; it exists as the selector for every member picker. */ export declare function MemberSelect(props: MemberSelectProps): React.JSX.Element; export {};