import gradio as gr from gradio import components from gradio.components import _components from gradio.components import utils from gradio.components.base import Component from gradio.events import EventData from typing import Any, Dict, List, Optional, Tuple, Union class Textbox(Component): """ A text input field. """ def __init__( self, label: str = None, lines: int = 1, placeholder: str = None, value: str = None, type: str = "text", interactive: bool = True, visible: bool = True, scale: int = 1, min_width: int = None, max_width: int = None, disabled: bool = False, show_label: bool = True, container: bool = True, **kwargs: Any, ): """ Parameters: label: The label of the component. lines: The number of lines for the textbox. placeholder: Placeholder text to display when the textbox is empty. value: Default value of the textbox. type: The type of the textbox. Can be "text", "password", or "email". interactive: Whether the user can interact with the component. visible: Whether the component is visible. scale: The relative width of the component compared to other components in a row. min_width: Minimum width of the component. max_width: Maximum width of the component. disabled: Whether the component is disabled. show_label: Whether to show the label. container: Whether to wrap the component in a container. kwargs: Additional keyword arguments to pass to the underlying HTML element. """ super().__init__( label=label, interactive=interactive, visible=visible, scale=scale, min_width=min_width, max_width=max_width, disabled=disabled, show_label=show_label, container=container, **kwargs, ) self.lines = lines self.placeholder = placeholder self.value = value self.type = type if self.type not in ["text", "password", "email"]: raise ValueError('`type` must be one of "text", "password", or "email".') def get_config(self) -> Dict: return { "type": "textbox", "lines": self.lines, "placeholder": self.placeholder, "value": self.value, "type": self.type, } def postprocess(self, data: Union[str, List[str]]) -> Union[str, List[str]]: if isinstance(data, list): return [utils.decode_text(x) for x in data] return utils.decode_text(data) def preprocess(self, data: Union[str, List[str]]) -> Union[str, List[str]]: if isinstance(data, list): return [utils.encode_text(x) for x in data] return utils.encode_text(data) def as_component(self) -> Dict: return _components.Textbox(**self.get_config()) def as_html(self) -> str: return self.as_component().as_html() def as_json(self) -> Dict: return self.as_component().as_json() def as_example(self) -> str: return self.as_component().as_example() def as_css(self) -> str: return self.as_component().as_css() def as_javascript(self) -> str: return self.as_component().as_javascript() def as_python(self) -> str: return self.as_component().as_python() def as_input(self) -> str: return self.as_component().as_input() def as_output(self) -> str: return self.as_component().as_output() def as_json_output(self) -> str: return self.as_component().as_json_output() def as_python_output(self) -> str: return self.as_component().as_python_output() def as_python_input(self) -> str: return self.as_component().as_python_input() def as_json_input(self) -> str: return self.as_component().as_json_input() def get_block_name(self) -> str: return "textbox" def get_block_code(self) -> str: return self.as_component().get_block_code() def get_block_dependencies(self) -> List[str]: return self.as_component().get_block_dependencies() def get_block_options(self) -> Dict: return self.as_component().get_block_options() def get_block_events(self) -> List[EventData]: return self.as_component().get_block_events() def get_block_event_code(self) -> str: return self.as_component().get_block_event_code() def get_block_event_dependencies(self) -> List[str]: return self.as_component().get_block_event_dependencies() def get_block_event_options(self) -> Dict: return self.as_component().get_block_event_options() def get_block_event_output_type(self) -> str: return self.as_component().get_block_event_output_type() def get_block_event_input_type(self) -> str: return self.as_component().get_block_event_input_type() def get_block_event_input_component(self) -> Optional[Component]: return self.as_component().get_block_event_input_component() def get_block_event_output_component(self) -> Optional[Component]: return self.as_component().get_block_event_output_component() def get_block_event_input_components(self) -> List[Component]: return self.as_component().get_block_event_input_components() def get_block_event_output_components(self) -> List[Component]: return self.as_component().get_block_event_output_components() def get_block_event_input_component_names(self) -> List[str]: return self.as_component().get_block_event_input_component_names() def get_block_event_output_component_names(self) -> List[str]: return self.as_component().get_block_event_output_component_names() def get_block_event_input_component_types(self) -> List[str]: return self.as_component().get_block_event_input_component_types() def get_block_event_output_component_types(self) -> List[str]: return self.as_component().get_block_event_output_component_types() def get_block_event_input_component_labels(self) -> List[str]: return self.as_component().get_block_event_input_component_labels() def get_block_event_output_component_labels(self) -> List[str]: return self.as_component().get_block_event_output_component_labels() def get_block_event_input_component_descriptions(self) -> List[str]: return self.as_component().get_block_event_input_component_descriptions() def get_block_event_output_component_descriptions(self) -> List[str]: return self.as_component().get_block_event_output_component_descriptions() def get_block_event_input_component_examples(self) -> List[str]: return self.as_component().get_block_event_input_component_examples() def get_block_event_output_component_examples(self) -> List[str]: return self.as_component().get_block_event_output_component_examples() def get_block_event_input_component_scales(self) -> List[int]: return self.as_component().get_block_event_input_component_scales() def get_block_event_output_component_scales(self) -> List[int]: return self.as_component().get_block_event_output_component_scales() def get_block_event_input_component_min_widths(self) -> List[int]: return self.as_component().get_block_event_input_component_min_widths() def get_block_event_output_component_min_widths(self) -> List[int]: return self.as_component().get_block_event_output_component_min_widths() def get_block_event_input_component_max_widths(self) -> List[int]: return self.as_component().get_block_event_input_component_max_widths() def get_block_event_output_component_max_widths(self) -> List[int]: return self.as_component().get_block_event_output_component_max_widths() def get_block_event_input_component_visibilities(self) -> List[bool]: return self.as_component().get_block_event_input_component_visibilities() def get_block_event_output_component_visibilities(self) -> List[bool]: return self.as_component().get_block_event_output_component_visibilities() def get_block_event_input_component_interactives(self) -> List[bool]: return self.as_component().get_block_event_input_component_interactives() def get_block_event_output_component_interactives(self) -> List[bool]: return self.as_component().get_block_event_output_component_interactives() def get_block_event_input_component_disableds(self) -> List[bool]: return self.as_component().get_block_event_input_component_disableds() def get_block_event_output_component_disableds(self) -> List[bool]: return self.as_component().get_block_event_output_component_disableds() def get_block_event_input_component_containers(self) -> List[bool]: return self.as_component().get_block_event_input_component_containers() def get_block_event_output_component_containers(self) -> List[bool]: return self.as_component().get_block_event_output_component_containers() def get_block_event_input_component_show_labels(self) -> List[bool]: return self.as_component().get_block_event_input_component_show_labels() def get_block_event_output_component_show_labels(self) -> List[bool]: return self.as_component().get_block_event_output_component_show_labels() def get_block_event_input_component_kwargs(self) -> List[Dict]: return self.as_component().get_block_event_input_component_kwargs() def get_block_event_output_component_kwargs(self) -> List[Dict]: return self.as_component().get_block_event_output_component_kwargs() def get_block_event_input_component_types(self) -> List[str]: return self.as_component().get_block_event_input_component_types() def get_block_event_output_component_types(self) -> List[str]: return self.as_component().get_block_event_output_component_types() def get_block_event_input_component_labels(self) -> List[str]: return self.as_component().get_block_event_input_component_labels() def get_block_event_output_component_labels(self) -> List[str]: return self.as_component().get_block_event_output_component_labels() def get_block_event_input_component_descriptions(self) -> List[str]: return self.as_component().get_block_event_input_component_descriptions() def get_block_event_output_component_descriptions(self) -> List[str]: return self.as_component().get_block_event_output_component_descriptions() def get_block_event_input_component_examples(self) -> List[str]: return self.as_component().get_block_event_input_component_examples() def get_block_event_output_component_examples(self) -> List[str]: return self.as_component().get_block_event_output_component_examples() def get_block_event_input_component_scales(self) -> List[int]: return self.as_component().get_block_event_input_component_scales() def get_block_event_output_component_scales(self) -> List[int]: return self.as_component().get_block_event_output_component_scales() def get_block_event_input_component_min_widths(self) -> List[int]: return self.as_component().get_block_event_input_component_min_widths() def get_block_event_output_component_min_widths(self) -> List[int]: return self.as_component().get_block_event_output_component_min_widths() def get_block_event_input_component_max_widths(self) -> List[int]: return self.as_component().get_block_event_input_component_max_widths() def get_block_event_output_component_max_widths(self) -> List[int]: return self.as_component().get_block_event_output_component_max_widths() def get_block_event_input_component_visibilities(self) -> List[bool]: return self.as_component().get_block_event_input_component_visibilities() def get_block_event_output_component_visibilities(self) -> List[bool]: return self.as_component().get_block_event_output_component_visibilities() def get_block_event_input_component_interactives(self) -> List[bool]: return self.as_component().get_block_event_input_component_interactives() def get_block_event_output_component_interactives(self) -> List[bool]: return self.as_component().get_block_event_output_component_interactives() def get_block_event_input_component_disableds(self) -> List[bool]: return self.as_component().get_block_event_input_component_disableds() def get_block_event_output_component_disableds(self) -> List[bool]: return self.as_component().get_block_event_output_component_disableds() def get_block_event_input_component_containers(self) -> List[bool]: return self.as_component().get_block_event_input_component_containers() def get_block_event_output_component_containers(self) -> List[bool]: return self.as_component().get_block_event_output_component_containers() def get_block_event_input_component_show_labels(self) -> List[bool]: return self.as_component().get_block_event_input_component_show_labels() def get_block_event_output_component_show_labels(self) -> List[bool]: return self.as_component().get_block_event_output_component_show_labels() def get_block_event_input_component_kwargs(self) -> List[Dict]: return self.as_component().get_block_event_input_component_kwargs() def get_block_event_output_component_kwargs(self) -> List[Dict]: return self.as_component().get_block_event_output_component_kwargs() def get_block_event_input_component_types(self) -> List[str]: return self.as_component().get_block_event_input_component_types()