import * as React from "react"; import { IReadonlyObservableValue } from '../../Core/Observable'; import { IIconProps } from '../../Icon'; /** * Defines how the TextField is styled */ export declare const enum TextFieldStyle { /** * Rendered closer to a typical */ normal = 0, /** * Rendered with no border and a non-white background */ inline = 1 } /** * Defines how the focus treatment should be rendered for the TextField. */ export declare const enum TextFieldFocusTreatmentBehavior { /** * Focus treatment will appear when the TextField has focus via mouse or keyboard */ all = 0, /** * Focus treatment will only appear when the TextField has focus via keyboard */ keyboardOnly = 1, /** * Focus treatment will never appear (used within FilterBar) */ none = 2 } export declare const enum TextFieldWidth { /** * No width property is added to the TextField, it will grow to fill its container. */ auto = "auto", /** * A standard width of 296px is set for the TextField */ standard = "bolt-textfield-default-width", /** * Width for the TextField when it is used inline within a TabBar */ tabBar = "bolt-textfield-inline-tabbar-width" } export interface ITextField { /** * Sets focus on the TextField if it's currently mounted */ focus(): void; /** * Selects content in the text field. */ select(): void; /** * Sets the currently selected values in the TextField if it's currently mounted */ setSelectionRange(start: number, end: number, direction?: "forward" | "backward" | "none" | undefined): void; } export interface ITextFieldProps { /** * Whether or not the input can be activated. Text will not be selectable and a cursor: pointer * will be used. * @default false */ activatable?: boolean; /** * aria-activedescendant on the input/textfield */ ariaActiveDescendant?: string; /** * aria-autocomplete on the input/textfield */ ariaAutoComplete?: "none" | "list" | "inline" | "both"; /** * aria-controls on the input/textfield */ ariaControls?: string; /** * aria-describedby on the input/textfield */ ariaDescribedBy?: string; /** * aria-expanded on the input/textfield */ ariaExpanded?: boolean; /** * aria-hasPopup on the input/textfield */ ariaHasPopup?: boolean | "menu" | "listbox" | "tree" | "grid" | "dialog"; /** * aria-label on the input/textfield */ ariaLabel?: string; /** * Adjust the textfield height as the contents change. * @default false. */ autoAdjustHeight?: boolean; /** * Should the input tag have autocomplete enabled. Ignored if multiline is set to true. * @default false. */ autoComplete?: boolean; /** * autoFocus on the input/textfield */ autoFocus?: boolean; /** * Classname passed to the TextField. */ className?: string; /** * ClassName to pass to the element containing the TextField and description. */ containerClassName?: string; /** * Indicates that the element is disabled - influences styling, * aria-disabled, and disabled on the input/textarea */ disabled?: boolean; /** * Set to true if you don't want focus managed by a FocusZone. */ excludeFocusZone?: boolean; /** * Set to true if you don't want the textfield to be tabbable. */ excludeTabStop?: boolean; /** * Indicates how we should apply the focus treatment to the * TextField. Default is to show the focus treatment when focused via keyboard or mouse. * TextFields that do not wish to have focus treatment (e.g. in the filter bar) should use "none" * * @default TextFieldFocusTreatmentBehavior.default */ focusTreatment?: TextFieldFocusTreatmentBehavior; /** * Classname passed to the input/textarea element */ inputClassName?: string; /** * id to pass to the input element. */ inputId?: string; /** * type that is passed to the element, e.g. password, number, etc. * See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types for a full list * * @default text */ inputType?: "password" | "text" | "button"; /** * Label to be rendered before the TextField. Will be wrapped in a *