import type Arrow from "./Arrow"; import type Button from "./Button"; import type { KeyboardStickyViewProps } from "../KeyboardStickyView"; import type { ReactNode } from "react"; import type { ColorValue, GestureResponderEvent, ViewProps, } from "react-native"; type Theme = { /** Color for arrow when it's enabled. */ primary: ColorValue; /** Color for arrow when it's disabled. */ disabled: ColorValue; /** Keyboard toolbar background color. */ background: string; /** Color for ripple effect (on button touch) on Android. */ ripple: ColorValue; }; export type KeyboardToolbarTheme = { light: Theme; dark: Theme; }; type HexSymbol = | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f"; export type HEX = `${HexSymbol}${HexSymbol}`; type SafeAreaInsets = { left: number; right: number; }; export type KeyboardToolbarProps = Omit< ViewProps, "style" | "testID" | "children" > & { /** * An element that is shown in the middle of the toolbar. * * @deprecated Use compound API with `` component instead. */ content?: React.JSX.Element | null; /** A set of dark/light colors consumed by toolbar component. */ theme?: KeyboardToolbarTheme; /** * Custom text for done button. * * @deprecated Use compound API with `` component and `text` prop instead. */ doneText?: ReactNode; /** * Custom touchable component for toolbar (used for prev/next/done buttons). * * @deprecated Use `button` property for corresponding element instead: * ```tsx * * * * ```. */ button?: typeof Button; /** * Custom icon component used to display next/prev buttons. * * @deprecated Use `icon` property for corresponding element instead: * ```tsx * * * * ```. */ icon?: typeof Arrow; /** * Whether to show next and previous buttons. Can be useful to set it to `false` if you have only one input * and want to show only `Done` button. Default to `true`. * * @deprecated Use compound API and conditional rendering for `` and ``. */ showArrows?: boolean; /** * A callback that is called when the user presses the next button along with the default action. * * @deprecated Use compound API with `` and `onPress` callback instead. */ onNextCallback?: (event: GestureResponderEvent) => void; /** * A callback that is called when the user presses the previous button along with the default action. * * @deprecated Use compound API with `` and `onPress` callback instead. */ onPrevCallback?: (event: GestureResponderEvent) => void; /** * A callback that is called when the user presses the done button along with the default action. * * @deprecated Use compound API with `` and `onPress` callback instead. */ onDoneCallback?: (event: GestureResponderEvent) => void; /** * A component that applies blur effect to the toolbar. * * @deprecated Use compound API and `` instead. */ blur?: React.JSX.Element | null; /** * A value for container opacity in hexadecimal format (e.g. `ff`). Default value is `ff`. */ opacity?: HEX; /** * A object containing `left`/`right` properties. Used to specify proper container padding in landscape mode. */ insets?: SafeAreaInsets; /** JSX children in case if compound API is used. */ children?: ReactNode; } & Pick;