/** * The jq input every field a binding owns renders through — the Subject/Scope * expressions, a custom injection or update jq, an adapter escape hatch, an op-id. * * It reuses the form door pattern: when a host has injected an expression editor * through {@link ExpressionFieldContext} (the visual jq editor from * `@tai42/jq-studio`), that door renders here; with no door it falls back to a * plain multiline textarea, so this package keeps NO edge to the jq subgraph. * * The attached templates' template jq are offered as an autocomplete source: an * `Insert` control per jq name appends the call `tjq_({…})` to the * expression — the attachment-qualified `tjq___` form when a name is * ambiguous across attachments. */ import { type ReactNode } from 'react'; /** One template jq offered as an insertable autocomplete entry. */ export interface TemplateJqSuggestion { /** The jq reference, e.g. `active` or the attachment-qualified `tally.bump`. */ readonly ref: string; readonly purpose: 'input' | 'update'; readonly description?: string; } export interface BindingJqFieldProps { readonly label: string; readonly value: string; readonly onChange: (value: string) => void; readonly description?: ReactNode; readonly error?: string; readonly placeholder?: string; /** Template jq offered as `tjq_({…})` inserts under the field. */ readonly suggestions?: readonly TemplateJqSuggestion[]; /** * Render the field's own visible label visually hidden while keeping it as the * control's accessible name — for a field mounted under a group header that * already shows the label (a `TemplatedTextField` slot). Off by default, so a * bare use (a mapping row's jq) keeps its visible label. */ readonly hideLabel?: boolean; } /** Append a `tjq_({…})` template call to the current expression (space-separated when non-empty). */ export declare function appendTjq(current: string, ref: string): string; export declare function BindingJqField({ label, value, onChange, description, error, placeholder, suggestions, hideLabel, }: BindingJqFieldProps): ReactNode; //# sourceMappingURL=BindingJqField.d.ts.map