# forms (/themes/sdk/reference/forms)

```ts
import { … } from '@poltura/theme-sdk/forms';
```

## [Hooks](/themes/sdk/reference/forms/hooks) [#hooks]

| Name | What it is |
| --- | --- |
| [`useStoreForm`](/themes/sdk/reference/forms/hooks#usestoreform) | The surrounding form's state and actions, for your own fields and buttons inside [`StoreForm`](/themes/sdk/reference/forms/defaults#storeform). |
| [`useStoreFormField`](/themes/sdk/reference/forms/hooks#usestoreformfield) | One field of the surrounding form, for a control of your own. |
| [`useFormActions`](/themes/sdk/reference/forms/hooks#useformactions) | The actions that open a merchant's form in a dialog or side panel. |
| [`useNewsletter`](/themes/sdk/reference/forms/hooks#usenewsletter) | The store's newsletter: whether it takes sign-ups and the wording to ask with. |

## [Parts](/themes/sdk/reference/forms/parts) [#parts]

| Name | What it is |
| --- | --- |
| [`FormField`](/themes/sdk/reference/forms/parts#formfield) | One field of the surrounding form with its label, control, help and error; nothing while hidden. |
| [`FieldControl`](/themes/sdk/reference/forms/parts#fieldcontrol) | The platform control of one field: input, text area, choices, checkbox, date or file picker. |
| [`SubmitButton`](/themes/sdk/reference/forms/parts#submitbutton) | The surrounding form's send button, which moves to the next step on multi-step forms. |
| [`FormTrigger`](/themes/sdk/reference/forms/parts#formtrigger) | A button that opens a published form in a dialog or side panel, loading it on hover. |
| [`FormPopup`](/themes/sdk/reference/forms/parts#formpopup) | Opens a merchant's form by itself after a delay, as often as `frequency` allows; draws nothing. |
| [`NewsletterTrigger`](/themes/sdk/reference/forms/parts#newslettertrigger) | A button that opens the newsletter sign-up in a dialog or side panel; nothing when the newsletter is off. |

## [Defaults](/themes/sdk/reference/forms/defaults) [#defaults]

| Name | What it is |
| --- | --- |
| [`StoreForm`](/themes/sdk/reference/forms/defaults#storeform) | A merchant's published form, drawn with its fields, steps, validation, captcha and success message. |
| [`NewsletterForm`](/themes/sdk/reference/forms/defaults#newsletterform) | The newsletter sign-up, inline, stacked, as the footer column or as a full-width band; nothing when it is off. |
| [`ContactForm`](/themes/sdk/reference/forms/defaults#contactform) | The store's contact form: name, email, subject and message, sent to the merchant's inbox. |

## [Types](/themes/sdk/reference/forms/types-1) [#types]

| Name | What it is |
| --- | --- |
| [`FormFieldType`](/themes/sdk/reference/forms/types-1#formfieldtype) | What a form field asks for, which decides the control it draws. |
| [`FormFieldOption`](/themes/sdk/reference/forms/types-1#formfieldoption) | One choice of a select, radio or multi-select field. |
| [`StoreFormFieldView`](/themes/sdk/reference/forms/types-1#storeformfieldview) | A field of a published form, already in the page language. |
| [`FormValue`](/themes/sdk/reference/forms/types-1#formvalue) | The value of one field: text, a number, a ticked box or the picked choices. |
| [`StoreFormStatus`](/themes/sdk/reference/forms/types-1#storeformstatus) | Where a form is in its life: loading, ready to fill in, missing, or sent. |
| [`StoreFormFile`](/themes/sdk/reference/forms/types-1#storeformfile) | A file the shopper picked for a file field. |
| [`StoreFormTexts`](/themes/sdk/reference/forms/types-1#storeformtexts) | The fixed wording of a form's buttons, in the page language. |
| [`StoreFormState`](/themes/sdk/reference/forms/types-1#storeformstate) | A published form with its values, errors and the actions that fill it in and send it. |
| [`StoreFormFieldState`](/themes/sdk/reference/forms/types-1#storeformfieldstate) | One field of the surrounding form, with its value and error. |
| [`StoreFormLayout`](/themes/sdk/reference/forms/types-1#storeformlayout) | How a form's fields sit: one under another, or two per row on wide screens. |
| [`StoreFormAppearance`](/themes/sdk/reference/forms/types-1#storeformappearance) | The surface a form draws on. |
| [`StoreFormChrome`](/themes/sdk/reference/forms/types-1#storeformchrome) | Whether a form draws its title, description and card, or only its fields. |
| [`StoreFormCopy`](/themes/sdk/reference/forms/types-1#storeformcopy) | The theme's own wording for a form; empty values keep the merchant's. |
| [`StoreFormProps`](/themes/sdk/reference/forms/types-2#storeformprops) | Props of [`StoreForm`](/themes/sdk/reference/forms/defaults#storeform). |
| [`FormFieldRender`](/themes/sdk/reference/forms/types-2#formfieldrender) | What a [`FormField`](/themes/sdk/reference/forms/parts#formfield) render function receives. |
| [`FormFieldProps`](/themes/sdk/reference/forms/types-2#formfieldprops) | Props of [`FormField`](/themes/sdk/reference/forms/parts#formfield). |
| [`FieldControlProps`](/themes/sdk/reference/forms/types-2#fieldcontrolprops) | Props of [`FieldControl`](/themes/sdk/reference/forms/parts#fieldcontrol). |
| [`SubmitButtonProps`](/themes/sdk/reference/forms/types-2#submitbuttonprops) | Props of [`SubmitButton`](/themes/sdk/reference/forms/parts#submitbutton). |
| [`FormDisplay`](/themes/sdk/reference/forms/types-2#formdisplay) | Whether a form opens as a dialog or as a side panel. |
| [`FormWidth`](/themes/sdk/reference/forms/types-2#formwidth) | How wide an opened form is. |
| [`OpenFormInput`](/themes/sdk/reference/forms/types-2#openforminput) | A form to open in a dialog or side panel. |
| [`FormActions`](/themes/sdk/reference/forms/types-2#formactions) | The actions that open a published form over the page. |
| [`FormTriggerProps`](/themes/sdk/reference/forms/types-2#formtriggerprops) | Props of [`FormTrigger`](/themes/sdk/reference/forms/parts#formtrigger). |
| [`FormPopupFrequency`](/themes/sdk/reference/forms/types-2#formpopupfrequency) | How often a form that opens by itself opens again for one visitor: once ever, once a session, or after 30 days. |
| [`FormPopupProps`](/themes/sdk/reference/forms/types-2#formpopupprops) | Props of [`FormPopup`](/themes/sdk/reference/forms/parts#formpopup). |
| [`NewsletterTexts`](/themes/sdk/reference/forms/types-2#newslettertexts) | The newsletter wording, from the theme settings over the platform's own, and the store's consent sentence. |
| [`NewsletterState`](/themes/sdk/reference/forms/types-2#newsletterstate) | Whether the store takes newsletter sign-ups, and the wording to ask with. |
| [`NewsletterLayout`](/themes/sdk/reference/forms/types-2#newsletterlayout) | Where a newsletter form sits, which decides its look. |
| [`NewsletterFormProps`](/themes/sdk/reference/forms/types-2#newsletterformprops) | Props of [`NewsletterForm`](/themes/sdk/reference/forms/defaults#newsletterform). |
| [`NewsletterTriggerProps`](/themes/sdk/reference/forms/types-2#newslettertriggerprops) | Props of [`NewsletterTrigger`](/themes/sdk/reference/forms/parts#newslettertrigger). |
| [`ContactFormProps`](/themes/sdk/reference/forms/types-2#contactformprops) | Props of [`ContactForm`](/themes/sdk/reference/forms/defaults#contactform); every wording falls back to the platform's own. |

<AnchorRedirect to={{"hooks":"/themes/sdk/reference/forms/hooks","usestoreform":"/themes/sdk/reference/forms/hooks","usestoreformfield":"/themes/sdk/reference/forms/hooks","useformactions":"/themes/sdk/reference/forms/hooks","usenewsletter":"/themes/sdk/reference/forms/hooks","parts":"/themes/sdk/reference/forms/parts","formfield":"/themes/sdk/reference/forms/parts","fieldcontrol":"/themes/sdk/reference/forms/parts","submitbutton":"/themes/sdk/reference/forms/parts","formtrigger":"/themes/sdk/reference/forms/parts","formpopup":"/themes/sdk/reference/forms/parts","newslettertrigger":"/themes/sdk/reference/forms/parts","defaults":"/themes/sdk/reference/forms/defaults","storeform":"/themes/sdk/reference/forms/defaults","newsletterform":"/themes/sdk/reference/forms/defaults","contactform":"/themes/sdk/reference/forms/defaults","types":"/themes/sdk/reference/forms/types-1","formfieldtype":"/themes/sdk/reference/forms/types-1","formfieldoption":"/themes/sdk/reference/forms/types-1","storeformfieldview":"/themes/sdk/reference/forms/types-1","formvalue":"/themes/sdk/reference/forms/types-1","storeformstatus":"/themes/sdk/reference/forms/types-1","storeformfile":"/themes/sdk/reference/forms/types-1","storeformtexts":"/themes/sdk/reference/forms/types-1","storeformstate":"/themes/sdk/reference/forms/types-1","storeformfieldstate":"/themes/sdk/reference/forms/types-1","storeformlayout":"/themes/sdk/reference/forms/types-1","storeformappearance":"/themes/sdk/reference/forms/types-1","storeformchrome":"/themes/sdk/reference/forms/types-1","storeformcopy":"/themes/sdk/reference/forms/types-1","storeformprops":"/themes/sdk/reference/forms/types-2","formfieldrender":"/themes/sdk/reference/forms/types-2","formfieldprops":"/themes/sdk/reference/forms/types-2","fieldcontrolprops":"/themes/sdk/reference/forms/types-2","submitbuttonprops":"/themes/sdk/reference/forms/types-2","formdisplay":"/themes/sdk/reference/forms/types-2","formwidth":"/themes/sdk/reference/forms/types-2","openforminput":"/themes/sdk/reference/forms/types-2","formactions":"/themes/sdk/reference/forms/types-2","formtriggerprops":"/themes/sdk/reference/forms/types-2","formpopupfrequency":"/themes/sdk/reference/forms/types-2","formpopupprops":"/themes/sdk/reference/forms/types-2","newslettertexts":"/themes/sdk/reference/forms/types-2","newsletterstate":"/themes/sdk/reference/forms/types-2","newsletterlayout":"/themes/sdk/reference/forms/types-2","newsletterformprops":"/themes/sdk/reference/forms/types-2","newslettertriggerprops":"/themes/sdk/reference/forms/types-2","contactformprops":"/themes/sdk/reference/forms/types-2"}} />
