The bar under a long form: what the reader came to do, still in reach after the ninth field. Sticky, not floating — it covers nothing.
IngotToolbar and it stands above the data, not below it.IngotModal, IngotConfirm.primary: ReactNode — The action the screen exists for. On the right, where the hand ends up after the last field.secondary: ReactNode — Cancel, back, "save as draft". On the left, away from the primary — two actions side by side get pressed wrong.status: ReactNode — One short line beside the actions ("Unsaved changes", "Saved"), already translated. The kit does not know whether anything changed.dirty: boolean — There are unsaved changes. Draws a dot before `status`, so the state is not carried by wording alone — a reader skimming sees the mark before they read the sentence.onSave: () => void — Ctrl/Cmd+S saves. Off unless the screen asks for it: the shortcut belongs to a screen that IS a form, and under a list it would steal the browser's Save from a reader who wanted the page.className: string — Placement only. The bar's look does not change.testId: string — An anchor for tests.