The formula field — the plain-DOM (UI-kit-free) input whose value is an
ICalculation.IFormula (accepted as IFormula | string; always emitted as IFormula). One
component covers both grammars (see FormulaInputProps.grammar): a 'formula' field colors
its TOKENS with the editor's syntax palette (references by picker index), a 'reference' field
colors its comma-SEGMENTS by picker index (segment i IS picker range i IS its on-grid rectangle).
Hovering an evaluable span shows its value, and while focused the field is the reference-mode bus
producer — clicking/dragging on the grid writes references into the text, exactly like the cell
editor.
A thin chrome over the headless useFormulaInput + the shared parts (useFormulaInputParts),
themed via --sxl-* CSS variables. A UI-kit adapter (the MUI
FormulaField in studio-mui) composes that same hook + parts around its own field — it does not
wrap this component (a kit's field insists on owning the <input>).
The formula field — the plain-DOM (UI-kit-free) input whose value is an
ICalculation.IFormula(accepted asIFormula | string; always emitted asIFormula). One component covers both grammars (see FormulaInputProps.grammar): a'formula'field colors its TOKENS with the editor's syntax palette (references by picker index), a'reference'field colors its comma-SEGMENTS by picker index (segment i IS picker range i IS its on-grid rectangle). Hovering an evaluable span shows its value, and while focused the field is the reference-mode bus producer — clicking/dragging on the grid writes references into the text, exactly like the cell editor.A thin chrome over the headless
useFormulaInput+ the shared parts (useFormulaInputParts), themed via--sxl-*CSS variables. A UI-kit adapter (the MUIFormulaFieldinstudio-mui) composes that same hook + parts around its own field — it does not wrap this component (a kit's field insists on owning the<input>).