Default
Panel shell with sections and action footer.
/render stateCanonical form container with title hierarchy, metadata, action slots, body spacing, status border, and sticky-feeling footer.
Form shell owns product form chrome and density. It deliberately slots controls and policy so persistence, submit rules, and validation source stay in application code.
Controls update query params directly. Complex slots use curated fixtures so component states stay deterministic, linkable, and screenshot-ready.
Every state maps to the same component render route through the `state` query param.
Panel shell with sections and action footer.
/render stateShell composed with validation summary.
/render stateDense settings surface rhythm.
/render state| Name | Type | Default | Description |
|---|---|---|---|
title * | ReactNode | - | Primary form title rendered in the shell header. |
description | ReactNode | - | Supporting copy below the title. |
eyebrow | ReactNode | - | Optional compact section label above the title. |
meta | ReactNode | - | Small metadata beside the title. |
actions | ReactNode | - | Header action slot. |
footer | ReactNode | - | Footer action slot, usually cancel and submit buttons. |
variant | 'panel' | 'modal' | 'drawer' | panel | Surface treatment for the shell. |
status | 'default' | 'error' | 'success' | default | Outer status border treatment. |
compact | boolean | false | Tightens header/body spacing for dense settings. |
FormSection.title | ReactNode | - | Section title slot. |
FormGrid.columns | 1 | 2 | 3 | 2 | Responsive field grid column count. |
FormRow.control | ReactNode | - | Right-aligned primitive or component control slot. |