import * as React from "react"; import type { TranslatableFieldProp } from "../../props/components/data-entry.prop.js"; export type { TranslatableValue, TranslatableLocaleProp, TranslatableFieldProp, TranslatableFieldProp as TranslatableFieldProps, TranslatableFieldControlProp, TranslatableInputProp, TranslatableInputProp as TranslatableInputProps, TranslatableTextareaProp, TranslatableTextareaProp as TranslatableTextareaProps, } from "../../props/components/data-entry.prop.js"; /** * TranslatableField — the shared engine of {@link TranslatableInput}, {@link TranslatableTextarea} * and `@godxjp/block-editor`'s `TranslatableRichText` (gh#1365): it owns the locale list, the active * tab, the per-locale map, the fallback placeholder, the error marks and the FormField error report, * and renders the ONE control in the panel through `renderControl`. Every prop it does not own is * passed through to that control. * * WHY THE SWITCHER IS `Tabs`, NOT `Segmented`. The WAI-ARIA APG radio group is for CHOOSING A VALUE * — a segmented control's choice is form state and is submitted with the form. The locale here is * not form state: every locale's text is submitted together, and the switcher only decides which * of them the one editing region shows. That is the APG tabs pattern — a tablist whose selected * tab controls one tabpanel — so a screen reader announces "English, tab, 2 of 3" and the region * that follows, instead of offering a "language" question the form never asks. * * ONE CONTROL, NOT ONE PER LOCALE. The panel holds a single control whose value, `lang` and * placeholder follow the active tab (`Tabs.controls` points the tab at it, gh#1021). Swapping * elements per tab would hand the forwarded `ref`, the FormField `id` and an IME composition to a * new node on every switch. */ export declare function TranslatableField({ renderControl, toPlaceholder, value: valueProp, defaultValue, onValueChange, locales: localesProp, defaultLocale, fallbackLocale: fallbackLocaleProp, errors, size, placeholder, className, ...rest }: TranslatableFieldProp): React.JSX.Element; /** * TranslatableInput — ONE text field that holds a value per locale (`{ ja, en, vi }`), switched by * locale tabs above it (gh#1336). The locale list and the first tab come from `AppProvider` * `contentLocales` (gh#1347), the fallback from its `fallbackLocale`; each is overridable per field; an empty locale shows the fallback locale's text as * its placeholder; a locale with an error is marked on its tab. Every other `Input` prop applies to * the single control, and `ref` is that control's ``. */ export declare const TranslatableInput: React.ForwardRefExoticComponent & import("./translatable-input.js").TranslatableLocaleProp & React.RefAttributes>; /** TranslatableTextarea — {@link TranslatableInput} over a `Textarea`; `ref` is the `