Calculated fields
SDK 0.11.0A new calculated field computes a number from other answers — an order total from quantity and price, a sum across amounts — and updates live as the respondent types. The server recomputes it from the validated answers on submit, so a tampered value is ignored by construction. The computed value pipes into headings, drives visibility and page jumps, and lands in the grid, CSV, webhooks, and Google Sheets as a real number. Simple expressions build in the editor; deeper ones — nesting, conditionals, rounding — are written in code, and the editor says so instead of flattening them.
Number fields that read like values
SDK 0.11.0Number fields gain display formatting: decimals, a prefix like $, a suffix like kg, and thousand separators in the SDK input. Formatting never changes what's stored — the respondent's exact number is kept — and an older embed simply renders a plain input instead of requiring an upgrade.
An input-quality pass across every field
SDK 0.11.0The phone field now covers every calling country at about a kilobyte of data, and typing + to start an international number works. A failed submit shows one focused error summary linking to each field instead of a pile of simultaneous alerts, and submits, restores, and picks are announced to screen readers. Keyboard behavior, focus outlines, pointer targets, forced-colors, right-to-left, and dark mode tightened across every field kind, and the vanilla embed gains per-file upload progress, cancel, and retry.
Human check in the vanilla embed
SDK 0.11.0The Cloudflare Turnstile human check now renders through @usefillo/dom too, so Vue, Svelte, Astro, and plain browser apps get the same challenge flow as the React SDK — and a challenge-gated form is submittable through every renderer.