import Gtk from "gi://Gtk"; import type { InputPurpose, Justification } from "../../../enums/gtk3-index"; import { WrapMode } from "../../../enums/gtk3-index"; import type { GjsContext } from "../../../reconciler/gjs-renderer"; import type { HostContext } from "../../../reconciler/host-context"; import { BaseElement, type GjsElement } from "../../gjs-element"; import { ElementLifecycleController } from "../../utils/element-extenders/element-lifecycle-controller"; import type { SyntheticEvent } from "../../utils/element-extenders/event-handlers"; import { EventHandlers } from "../../utils/element-extenders/event-handlers"; import type { DiffedProps } from "../../utils/element-extenders/map-properties"; import { PropertyMapper } from "../../utils/element-extenders/map-properties"; import type { AlignmentProps } from "../../utils/property-maps-factories/create-alignment-prop-mapper"; import type { ChildPropertiesProps } from "../../utils/property-maps-factories/create-child-props-mapper"; import type { ExpandProps } from "../../utils/property-maps-factories/create-expand-prop-mapper"; import type { MarginProps } from "../../utils/property-maps-factories/create-margin-prop-mapper"; import type { SizeRequestProps } from "../../utils/property-maps-factories/create-size-request-prop-mapper"; import type { StyleProps } from "../../utils/property-maps-factories/create-style-prop-mapper"; type TextAreaPadding = number | [number] | [number, number] | [number, number, number] | [number, number, number, number]; type TextAreaPropsMixin = ChildPropertiesProps & SizeRequestProps & AlignmentProps & MarginProps & ExpandProps & StyleProps; export type TextAreaEvent
= {}> = SyntheticEvent
;
export interface TextAreaProps extends TextAreaPropsMixin {
value?: string;
acceptTabs?: boolean;
padding?: TextAreaPadding;
disabled?: boolean;
indent?: number;
type?: InputPurpose;
justification?: Justification;
monospace?: boolean;
wrapMode?: WrapMode;
onSelectChange?: (event: TextAreaEvent<{
selectedText: string;
selectionStartIndex: number;
selectionEndIndex: number;
}>) => void;
onChange?: (event: TextAreaEvent<{
text: string;
cursorPosition: number;
}>) => void;
onKeyPress?: (event: TextAreaEvent