Form
Source
<Kit.Phoenix.Layouts.Shell.shell print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" navigation_label="Application" navigation="none" density="desk">
<:subject>Review a refund for the Oakmere Primary School invoice</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../layout-form/#layout-form">{@owner}</a></:actions>
<:body>
<Kit.Phoenix.Layouts.Form.form id="layout-form-form" subject_state={Kit.Phoenix.State.none()}>
<:task_context heading="Issue refund">
<Kit.Phoenix.Roles.FactGroup.fact_group><Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Hirer</:name><:value>Oakmere Primary School</:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact><Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Invoice</:name><:value><Kit.Phoenix.Identifier.identifier value="OH-INV-003" /></:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact><Kit.Phoenix.Roles.LabelledFact.labelled_fact supporting={[Kit.Phoenix.Supporting.line([Kit.Phoenix.Words.text("In full")])]}><:name>Paid</:name><:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "120.00")))]} /></Kit.Phoenix.Roles.LabelledFact.labelled_fact></Kit.Phoenix.Roles.FactGroup.fact_group>
</:task_context>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id="refund-amount-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)}
control_rest={%{id: "refund-amount", name: "amount", inputmode: "decimal", value: "120.00"}}
><:printed_value>120.00</:printed_value>
<:label rest={%{for: "refund-amount"}}>Amount (GBP)</:label>
<:help>Up to the £120.00 paid on this invoice.</:help>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} id="refund-reason-form-group"
control_rest={%{id: "refund-reason", name: "reason", value: "Returned materials"}}
><:printed_value>Returned materials</:printed_value>
<:label rest={%{for: "refund-reason"}}>Reason</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:consequence>
<Kit.Phoenix.Roles.InlineConsequence.inline_consequence aria-label="Refund invoice OH-INV-003">
<:action>{nil}</:action>
<:subject>Invoice OH-INV-003</:subject>
<:consequence>Issuing this refund returns £120.00 to the original payment method.</:consequence>
<:effective_time>The refund is submitted as soon as you confirm.</:effective_time>
<:correction_path>
A submitted refund cannot be cancelled. Review the amount and reason before confirming, or <a href="../record/">return to the invoice</a>.
</:correction_path>
</Kit.Phoenix.Roles.InlineConsequence.inline_consequence>
</:consequence>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>
Issue refund
</Kit.Phoenix.Roles.PrimaryAction.primary_action>
<Kit.Phoenix.Roles.WayBack.way_back href="../record/">Return to invoice</Kit.Phoenix.Roles.WayBack.way_back>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form :for={{id, field, state} <- [{"layout-form-heading-only", "hall-name", nil}, {"layout-form-heading-only-inert", "hall-name-inert", Kit.Phoenix.ActionState.inert("rename-hall-action", "Confirm the hall name before renaming.")}]} subject_state={Kit.Phoenix.State.none()} id={id}>
<:task_context heading="Rename the hall"></:task_context>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id={"#{field}-form-group"}
kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)}
control_rest={%{id: field, name: "name", value: "Oakmere Hall"}}
><:printed_value>Oakmere Hall</:printed_value>
<:label rest={%{for: field}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:submit_return action="primary-action" action_state={state}>Rename</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form id="layout-form-form-2" subject_state={Kit.Phoenix.State.none()}>
<:form_groups>
<Kit.Phoenix.Layouts.Form.row_list columns={2}>
<Kit.Phoenix.Layouts.Form.row>
<Kit.Phoenix.Roles.FormGroup.form_group id="form-row-count-1-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)} control_rest={%{id: "form-row-count-1", name: "count-1", value: "1"}}><:printed_value>1</:printed_value>
<:label rest={%{for: "form-row-count-1"}}>Count</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="form-row-amount-1-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)} control_rest={%{id: "form-row-amount-1", name: "amount-1", value: "20"}}><:printed_value>20</:printed_value>
<:label rest={%{for: "form-row-amount-1"}}>Amount</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<:mark>
<Kit.Phoenix.Roles.SelectionControl.selection_control id="form-row-mark-1" name="and-more-1">
<:fact printed_value="Not marked">This count and more</:fact>
</Kit.Phoenix.Roles.SelectionControl.selection_control>
</:mark>
<:action><Kit.Phoenix.Roles.SecondaryAction.secondary_action type="button" aria-label="Remove row 1">Remove</Kit.Phoenix.Roles.SecondaryAction.secondary_action></:action>
</Kit.Phoenix.Layouts.Form.row>
<Kit.Phoenix.Layouts.Form.row>
<Kit.Phoenix.Roles.FormGroup.form_group id="form-row-count-2-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)} control_rest={%{id: "form-row-count-2", name: "count-2", value: "2"}}><:printed_value>2</:printed_value>
<:label rest={%{for: "form-row-count-2"}}>Count</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="form-row-amount-2-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)} control_rest={%{id: "form-row-amount-2", name: "amount-2", value: "35"}}><:printed_value>35</:printed_value>
<:label rest={%{for: "form-row-amount-2"}}>Amount</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<:mark>
<Kit.Phoenix.Roles.SelectionControl.selection_control id="form-row-mark-2" name="and-more-2" checked>
<:fact printed_value="Marked">This count and more</:fact>
</Kit.Phoenix.Roles.SelectionControl.selection_control>
</:mark>
<:action><Kit.Phoenix.Roles.SecondaryAction.secondary_action type="button" aria-label="Remove row 2">Remove</Kit.Phoenix.Roles.SecondaryAction.secondary_action></:action>
</Kit.Phoenix.Layouts.Form.row>
<:action><Kit.Phoenix.Roles.InertControl.inert_control action="secondary-action" id="form-row-add" words="Save these counts before adding another.">Add a count</Kit.Phoenix.Roles.InertControl.inert_control></:action>
<:status_lines><Kit.Phoenix.Roles.StatusLine.status_line>Count 2 added.</Kit.Phoenix.Roles.StatusLine.status_line></:status_lines>
</Kit.Phoenix.Layouts.Form.row_list>
</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Save</Kit.Phoenix.Roles.PrimaryAction.primary_action>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form subject_state={Kit.Phoenix.State.none()} id="layout-form-stacked-rows">
<:task_context heading="Send the booking confirmation"></:task_context>
<:form_groups>
<Kit.Phoenix.Layouts.Form.row_list columns={2}>
<Kit.Phoenix.Layouts.Form.row :for={{n, name, email, checked} <- [{1, "Grace Adeyemi", "grace.adeyemi@example.com", true}, {2, "Tom Whitfield", "tom.whitfield@example.com", false}]}>
<Kit.Phoenix.Roles.FormGroup.form_group id={"stacked-rows-name-#{n}-form-group"} kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} control_rest={%{id: "stacked-rows-name-#{n}", name: "name-#{n}", value: name}}><:printed_value>{name}</:printed_value>
<:label rest={%{for: "stacked-rows-name-#{n}"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id={"stacked-rows-email-#{n}-form-group"} kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:wide)} control_rest={%{id: "stacked-rows-email-#{n}", name: "email-#{n}", type: "email", value: email}}><:printed_value>{email}</:printed_value>
<:label rest={%{for: "stacked-rows-email-#{n}"}}>Email</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<:mark>
<Kit.Phoenix.Roles.SelectionControl.selection_control id={"stacked-rows-mark-#{n}"} name={"invoice-#{n}"} checked={checked}>
<:fact printed_value={if checked, do: "Marked", else: "Not marked"}>Send the invoice too</:fact>
</Kit.Phoenix.Roles.SelectionControl.selection_control>
</:mark>
<:action><Kit.Phoenix.Roles.SecondaryAction.secondary_action type="button" aria-label={"Remove #{name}"}>Remove</Kit.Phoenix.Roles.SecondaryAction.secondary_action></:action>
</Kit.Phoenix.Layouts.Form.row>
<:action><Kit.Phoenix.Roles.SecondaryAction.secondary_action type="button">Add a recipient</Kit.Phoenix.Roles.SecondaryAction.secondary_action></:action>
</Kit.Phoenix.Layouts.Form.row_list>
</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Send</Kit.Phoenix.Roles.PrimaryAction.primary_action>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form subject_state={Kit.Phoenix.State.none()} id="layout-form-part-list">
<:task_context heading="Hall contacts"></:task_context>
<:form_groups>
<Kit.Phoenix.Layouts.Form.part_list>
<Kit.Phoenix.Layouts.Form.part :for={{n, heading, name, phone, email, remove} <- [{1, "Maria Fernanda Oliveira dos Santos Pereira", "Maria Fernanda Oliveira dos Santos Pereira", "07700 900123", "maria.santos@example.com", "Remove Maria Fernanda Oliveira dos Santos Pereira"}, {2, "Contact 2", nil, nil, nil, "Remove contact 2"}]} heading={heading}>
<:action><Kit.Phoenix.Roles.InertControl.inert_control action="subtle-action" id={"part-list-remove-#{n}"} words="Confirm this contact before removing it." aria-label={remove}>Remove</Kit.Phoenix.Roles.InertControl.inert_control></:action>
<Kit.Phoenix.Layouts.Form.row>
<Kit.Phoenix.Roles.FormGroup.form_group id={"part-list-name-#{n}-form-group"} kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} control_rest={%{id: "part-list-name-#{n}", name: "name-#{n}", value: name}}><:printed_value>{name || "No name given"}</:printed_value>
<:label rest={%{for: "part-list-name-#{n}"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id={"part-list-phone-#{n}-form-group"} kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} control_rest={%{id: "part-list-phone-#{n}", name: "phone-#{n}", type: "tel", value: phone}}><:printed_value>{phone || "No phone number given"}</:printed_value>
<:label rest={%{for: "part-list-phone-#{n}"}}>Phone</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</Kit.Phoenix.Layouts.Form.row>
<Kit.Phoenix.Roles.FormGroup.form_group id={"part-list-email-#{n}-form-group"} kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:wide)} control_rest={%{id: "part-list-email-#{n}", name: "email-#{n}", type: "email", value: email}}><:printed_value>{email || "No email given"}</:printed_value>
<:label rest={%{for: "part-list-email-#{n}"}}>Email</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</Kit.Phoenix.Layouts.Form.part>
<:action><Kit.Phoenix.Roles.SecondaryAction.secondary_action type="button">Add another contact</Kit.Phoenix.Roles.SecondaryAction.secondary_action></:action>
<:status_lines><Kit.Phoenix.Roles.StatusLine.status_line>Contact 2 added.</Kit.Phoenix.Roles.StatusLine.status_line></:status_lines>
</Kit.Phoenix.Layouts.Form.part_list>
</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Save contacts</Kit.Phoenix.Roles.PrimaryAction.primary_action>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form subject_state={Kit.Phoenix.State.none()} id="layout-form-section-notice">
<:task_context heading="Open Oakmere Hall for hire"></:task_context>
<:form_groups>
<Kit.Phoenix.Layouts.Form.headed_region heading="Hire rates" scope_line="These rates apply to bookings made from tomorrow.">
<:notices>
<Kit.Phoenix.Roles.Notice.notice state={Kit.Phoenix.Roles.Notice.State.attention()}>
<:standing>Two rooms have no hourly rate</:standing>
<:sentence>A booking for either cannot be priced until it has one.</:sentence>
<:action><a href="../settings/">Set room rates</a></:action>
</Kit.Phoenix.Roles.Notice.notice>
</:notices>
<Kit.Phoenix.Roles.FormGroup.form_group id="section-notice-deposit-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)} control_rest={%{id: "section-notice-deposit", name: "deposit", inputmode: "decimal", value: "50.00"}}><:printed_value>50.00</:printed_value>
<:label rest={%{for: "section-notice-deposit"}}>Deposit (GBP)</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</Kit.Phoenix.Layouts.Form.headed_region>
<Kit.Phoenix.Layouts.Form.headed_region heading="Enquiries">
<Kit.Phoenix.Roles.FormGroup.form_group id="section-notice-email-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:wide)} control_rest={%{id: "section-notice-email", name: "email", type: "email", value: "bookings@oakmere.example"}}><:printed_value>bookings@oakmere.example</:printed_value>
<:label rest={%{for: "section-notice-email"}}>Email for enquiries</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</Kit.Phoenix.Layouts.Form.headed_region>
</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Open for hire</Kit.Phoenix.Roles.PrimaryAction.primary_action>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form subject_state={Kit.Phoenix.State.none()} id="layout-form-facts">
<:task_context heading="Send the hire invoice"></:task_context>
<:form_groups>
<Kit.Phoenix.Roles.SelectionControl.group id="invoice-delivery">
<:legend>Send by</:legend>
<:choice kind={:radio} control_rest={%{name: "invoice-delivery-group", value: "email"}} checked printed_value="Chosen">Email</:choice>
<:choice kind={:radio} control_rest={%{name: "invoice-delivery-group", value: "post"}} printed_value="Not chosen">Post</:choice>
</Kit.Phoenix.Roles.SelectionControl.group>
<Kit.Phoenix.Roles.FactGroup.fact_group>
<Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Goes to</:name><:value><Kit.Phoenix.Email.email address="aisha@oakmereprimary.org" /></:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact>
<Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Due</:name><:value>14 days after it is sent</:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact>
</Kit.Phoenix.Roles.FactGroup.fact_group>
</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Send invoice</Kit.Phoenix.Roles.PrimaryAction.primary_action>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form :for={{id, editing, address, state} <- [{"layout-form-web-address", false, "oakmere-dance-academy", Kit.Phoenix.State.none()}, {"layout-form-web-address-editing", true, "oakmere-dance", Kit.Phoenix.State.unsaved(:attention, "Not saved")}]} subject_state={state} id={id} keep={%Kit.Phoenix.Keep{key: "aisha-khan/halls/#{id}", version: "1"}}>
<:task_context heading="Add a hall"></:task_context>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id={"#{id}-name-form-group"} kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:wide)} control_rest={%{id: "#{id}-name", name: "name", value: "Oakmere Dance Academy"}}><:printed_value>Oakmere Dance Academy</:printed_value>
<:label rest={%{for: "#{id}-name"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.LabelledFact.labelled_fact>
<:name>Web address</:name>
<:value><Kit.Phoenix.Identifier.identifier value="venues.example.com/oakmere-dance-academy" /></:value>
<:edit id={"#{id}-address"} label="Change web address" editing={editing} joins_form on_edit={%Phoenix.LiveView.JS{}} on_cancel={%Phoenix.LiveView.JS{}} on_save={%Phoenix.LiveView.JS{}}>
<Kit.Phoenix.Roles.FormGroup.form_group id={"#{id}-address-form-group"} kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:wide)} control_rest={%{id: "#{id}-address-control", name: "address", value: address}}><:printed_value>{address}</:printed_value>
<:label rest={%{for: "#{id}-address-control"}}>Web address</:label>
<:help>Comes after venues.example.com/. Use letters, numbers and hyphens.</:help>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:edit>
</Kit.Phoenix.Roles.LabelledFact.labelled_fact>
</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Add the hall</Kit.Phoenix.Roles.PrimaryAction.primary_action>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form subject_state={Kit.Phoenix.State.none()} id="layout-form-empty-region">
<:task_context heading={[Kit.Phoenix.Words.text("Close Oakmere Hall on "), Kit.Phoenix.Words.time(Kit.Phoenix.Time.day(reader(), ~D[2025-04-25]))]}></:task_context>
<:form_groups>{nil}</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Close the hall</Kit.Phoenix.Roles.PrimaryAction.primary_action>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form subject_state={Kit.Phoenix.State.none()} id="layout-form-group-set">
<:task_context heading="Add items"></:task_context>
<:form_groups>
<Kit.Phoenix.Layouts.Form.group_set id="form-sizes-set">
<:legend>How many of each size</:legend>
<Kit.Phoenix.Roles.FormGroup.form_group id="form-sizes-small">
<:label>Small</:label>
<:control :let={binding}><Kit.Phoenix.Roles.NumberField.number_field width="short" binding={binding} reader={reader()} name="small" value="0" /></:control>
<:printed_value>0</:printed_value>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="form-sizes-medium">
<:label>Medium</:label>
<:control :let={binding}><Kit.Phoenix.Roles.NumberField.number_field width="short" binding={binding} reader={reader()} name="medium" value="0" /></:control>
<:printed_value>0</:printed_value>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group :for={{size, name} <- [{"large", "Large"}, {"extra-large", "Extra large"}]} id={"form-sizes-#{size}"}>
<:label>{name}</:label>
<:control :let={binding}><Kit.Phoenix.Roles.NumberField.number_field width="short" binding={binding} reader={reader()} name={size} value="0" /></:control>
<:printed_value>0</:printed_value>
</Kit.Phoenix.Roles.FormGroup.form_group>
<:help>Use 0 for a size you are not adding.</:help>
<:error>Enter at least one item across the sizes.</:error>
</Kit.Phoenix.Layouts.Form.group_set>
</:form_groups>
<:submit_return><Kit.Phoenix.Roles.PrimaryAction.primary_action>Add items</Kit.Phoenix.Roles.PrimaryAction.primary_action></:submit_return>
</Kit.Phoenix.Layouts.Form.form>
</:body>
</Kit.Phoenix.Layouts.Shell.shell>
Form, standing-alone
Source
<Kit.Phoenix.Layouts.Form.page id="layout-form-standing-alone-form" print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" subject_state={Kit.Phoenix.State.none()} density="desk">
<:subject>Sign up</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../../layout-form/#layout-form-standing-alone">{@owner}</a></:actions>
<:routes><a href="../../calendar/">Open booking diary</a></:routes>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id="signup-name-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} control_rest={%{id: "signup-name", name: "name", autocomplete: "name"}}><:printed_value>No name given</:printed_value>
<:label rest={%{for: "signup-name"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="signup-email-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.email()} control_rest={%{id: "signup-email", name: "email", autocomplete: "email"}}><:printed_value>No email given</:printed_value>
<:label rest={%{for: "signup-email"}}>Email</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:submit_return><Kit.Phoenix.Roles.PrimaryAction.primary_action>Create account</Kit.Phoenix.Roles.PrimaryAction.primary_action><Kit.Phoenix.Roles.WayBack.way_back href="../../../site/opening/">Return to kit</Kit.Phoenix.Roles.WayBack.way_back></:submit_return>
<:submit_return_status_lines><Kit.Phoenix.Roles.StatusLine.status_line>Your details stay on this page.</Kit.Phoenix.Roles.StatusLine.status_line></:submit_return_status_lines>
</Kit.Phoenix.Layouts.Form.page>
Form, standing-alone leading-tenant
Source
<Kit.Phoenix.Layouts.Form.page id="layout-form-standing-alone-form" print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" tenant={Kit.Phoenix.Tenant.leads("Oakmere Village Hall")} subject_state={Kit.Phoenix.State.none()} density="desk">
<:subject>Sign up</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../../../layout-form/#layout-form-standing-alone-leading-tenant">{@owner}</a></:actions>
<:routes><a href="../../../calendar/">Open booking diary</a></:routes>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id="signup-name-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} control_rest={%{id: "signup-name", name: "name", autocomplete: "name"}}><:printed_value>No name given</:printed_value>
<:label rest={%{for: "signup-name"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="signup-email-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.email()} control_rest={%{id: "signup-email", name: "email", autocomplete: "email"}}><:printed_value>No email given</:printed_value>
<:label rest={%{for: "signup-email"}}>Email</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:submit_return><Kit.Phoenix.Roles.PrimaryAction.primary_action>Create account</Kit.Phoenix.Roles.PrimaryAction.primary_action><Kit.Phoenix.Roles.WayBack.way_back href="../../../../site/opening/">Return to kit</Kit.Phoenix.Roles.WayBack.way_back></:submit_return>
<:submit_return_status_lines><Kit.Phoenix.Roles.StatusLine.status_line>Your details stay on this page.</Kit.Phoenix.Roles.StatusLine.status_line></:submit_return_status_lines>
<:service_destination href="?service=terms">Service terms</:service_destination>
<:service_destination href="?service=status">Service status</:service_destination>
</Kit.Phoenix.Layouts.Form.page>
Form, standing-alone following-tenant
Source
<Kit.Phoenix.Layouts.Form.page id="layout-form-standing-alone-form" print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" tenant={Kit.Phoenix.Tenant.follows("Oakmere Village Hall")} subject_state={Kit.Phoenix.State.none()} density="desk">
<:subject>Sign up</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../../../layout-form/#layout-form-standing-alone-following-tenant">{@owner}</a></:actions>
<:routes><a href="../../../calendar/">Open booking diary</a></:routes>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id="signup-name-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} control_rest={%{id: "signup-name", name: "name", autocomplete: "name"}}><:printed_value>No name given</:printed_value>
<:label rest={%{for: "signup-name"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="signup-email-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.email()} control_rest={%{id: "signup-email", name: "email", autocomplete: "email"}}><:printed_value>No email given</:printed_value>
<:label rest={%{for: "signup-email"}}>Email</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:submit_return><Kit.Phoenix.Roles.PrimaryAction.primary_action>Create account</Kit.Phoenix.Roles.PrimaryAction.primary_action><Kit.Phoenix.Roles.WayBack.way_back href="../../../../site/opening/">Return to kit</Kit.Phoenix.Roles.WayBack.way_back></:submit_return>
<:submit_return_status_lines><Kit.Phoenix.Roles.StatusLine.status_line>Your details stay on this page.</Kit.Phoenix.Roles.StatusLine.status_line></:submit_return_status_lines>
</Kit.Phoenix.Layouts.Form.page>
Form, no-task-context
Source
<Kit.Phoenix.Layouts.Shell.shell print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" navigation_label="Application" navigation="none" density="desk">
<:subject>Add a contact for Oakmere Primary School</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../../layout-form/#layout-form-no-task-context">{@owner}</a></:actions>
<:body>
<Kit.Phoenix.Layouts.Form.form id="layout-form-no-task-context-form" subject_state={Kit.Phoenix.State.none()}>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id="contact-name-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)}
control_rest={%{id: "contact-name", name: "name"}}
><:printed_value>No name given</:printed_value>
<:label rest={%{for: "contact-name"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="contact-phone-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.telephone()}
control_rest={%{id: "contact-phone", name: "phone"}}
><:printed_value>No phone number given</:printed_value>
<:label rest={%{for: "contact-phone"}}>Phone</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>
Save contact
</Kit.Phoenix.Roles.PrimaryAction.primary_action>
<Kit.Phoenix.Roles.WayBack.way_back href="../../record/">Return to invoice</Kit.Phoenix.Roles.WayBack.way_back>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
</:body>
</Kit.Phoenix.Layouts.Shell.shell>
Form, refused-undo
Source
<Kit.Phoenix.Layouts.Shell.shell print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" navigation_label="Application" navigation="none" density="desk">
<:subject>Review a refund for the Oakmere Primary School invoice</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../../layout-form/#layout-form-refused-undo">{@owner}</a></:actions>
<:body>
<Kit.Phoenix.Layouts.Form.form id="layout-form-refused-undo-form" subject_state={Kit.Phoenix.State.none()}>
<:page_refusal>
<Kit.Phoenix.Roles.Refusal.refusal id="form-undo-refused-1">
<:line>Undo is refused: the invoice was paid after you removed the late fee.</:line>
</Kit.Phoenix.Roles.Refusal.refusal>
</:page_refusal>
<:task_context heading="Issue refund">
<Kit.Phoenix.Roles.FactGroup.fact_group><Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Hirer</:name><:value>Oakmere Primary School</:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact><Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Invoice</:name><:value><Kit.Phoenix.Identifier.identifier value="OH-INV-003" /></:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact><Kit.Phoenix.Roles.LabelledFact.labelled_fact supporting={[Kit.Phoenix.Supporting.line([Kit.Phoenix.Words.text("In full")])]}><:name>Paid</:name><:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "120.00")))]} /></Kit.Phoenix.Roles.LabelledFact.labelled_fact></Kit.Phoenix.Roles.FactGroup.fact_group>
</:task_context>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id="refund-amount-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)}
control_rest={%{id: "refund-amount", name: "amount", inputmode: "decimal", value: "120.00"}}
><:printed_value>120.00</:printed_value>
<:label rest={%{for: "refund-amount"}}>Amount (GBP)</:label>
<:help>Up to the £120.00 paid on this invoice.</:help>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} id="refund-reason-form-group"
control_rest={%{id: "refund-reason", name: "reason", value: "Returned materials"}}
><:printed_value>Returned materials</:printed_value>
<:label rest={%{for: "refund-reason"}}>Reason</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:consequence>
<Kit.Phoenix.Roles.InlineConsequence.inline_consequence aria-label="Refund invoice OH-INV-003">
<:action>{nil}</:action>
<:subject>Invoice OH-INV-003</:subject>
<:consequence>Issuing this refund returns £120.00 to the original payment method.</:consequence>
<:effective_time>The refund is submitted as soon as you confirm.</:effective_time>
<:correction_path>
A submitted refund cannot be cancelled. Review the amount and reason before confirming, or <a href="../../record/">return to the invoice</a>.
</:correction_path>
</Kit.Phoenix.Roles.InlineConsequence.inline_consequence>
</:consequence>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>
Issue refund
</Kit.Phoenix.Roles.PrimaryAction.primary_action>
<Kit.Phoenix.Roles.WayBack.way_back href="../../record/">Return to invoice</Kit.Phoenix.Roles.WayBack.way_back>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
</:body>
</Kit.Phoenix.Layouts.Shell.shell>
Form, unsaved
Source
<Kit.Phoenix.Layouts.Shell.shell print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" navigation_label="Application" navigation="none" density="desk">
<:subject>Review a refund for the Oakmere Primary School invoice</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../../layout-form/#layout-form-unsaved">{@owner}</a></:actions>
<:body>
<Kit.Phoenix.Layouts.Form.form id="form-unsaved-refund" subject_state={Kit.Phoenix.State.unsaved(:attention, "Not saved")} keep={%Kit.Phoenix.Keep{key: "aisha-khan/refund/OH-INV-003", version: "4"}}>
<:task_context heading="Issue refund">
<Kit.Phoenix.Roles.FactGroup.fact_group><Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Hirer</:name><:value>Oakmere Primary School</:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact><Kit.Phoenix.Roles.LabelledFact.labelled_fact><:name>Invoice</:name><:value><Kit.Phoenix.Identifier.identifier value="OH-INV-003" /></:value></Kit.Phoenix.Roles.LabelledFact.labelled_fact><Kit.Phoenix.Roles.LabelledFact.labelled_fact supporting={[Kit.Phoenix.Supporting.line([Kit.Phoenix.Words.text("In full")])]}><:name>Paid</:name><:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "120.00")))]} /></Kit.Phoenix.Roles.LabelledFact.labelled_fact></Kit.Phoenix.Roles.FactGroup.fact_group>
</:task_context>
<:form_groups>
<Kit.Phoenix.Roles.FormGroup.form_group id="unsaved-refund-amount-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)}
control_rest={%{id: "unsaved-refund-amount", name: "amount", inputmode: "decimal", value: "80.00"}}
><:printed_value>80.00</:printed_value>
<:label rest={%{for: "unsaved-refund-amount"}}>Amount (GBP)</:label>
<:help>Up to the £120.00 paid on this invoice.</:help>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="unsaved-refund-reason-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:wide)}
control_rest={%{id: "unsaved-refund-reason", name: "reason", value: "Returned materials"}}
><:printed_value>Returned materials</:printed_value>
<:label rest={%{for: "unsaved-refund-reason"}}>Reason</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.LabelledFact.labelled_fact>
<:name>Send the receipt to</:name>
<:value><Kit.Phoenix.Email.email address="office@oakmereprimary.org" /></:value>
<:edit id="unsaved-refund-contact-edit" label="Change where the receipt goes" editing={true} joins_form on_edit={%Phoenix.LiveView.JS{}} on_cancel={%Phoenix.LiveView.JS{}} on_save={%Phoenix.LiveView.JS{}}>
<Kit.Phoenix.Roles.FormGroup.form_group id="unsaved-refund-contact-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:wide)} control_rest={%{id: "unsaved-refund-contact", name: "contact", type: "email", value: "bursar@oakmereprimary.org"}}><:printed_value>bursar@oakmereprimary.org</:printed_value>
<:label rest={%{for: "unsaved-refund-contact"}}>Send the receipt to</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:edit>
</Kit.Phoenix.Roles.LabelledFact.labelled_fact>
<Kit.Phoenix.Roles.FormGroup.form_group id="unsaved-refund-note-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.textarea()}
control_value="The school returned the unused chairs and one projector on Friday. Refund the hire of those items only; the hall hire stands."
control_rest={%{id: "unsaved-refund-note", name: "note", rows: "6"}}
><:printed_value>The school returned the unused chairs and one projector on Friday. Refund the hire of those items only; the hall hire stands.</:printed_value>
<:label rest={%{for: "unsaved-refund-note"}}>Note for the hirer</:label>
<:help>The hirer sees this note on the receipt.</:help>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="unsaved-refund-internal-form-group"
kind={Kit.Phoenix.Roles.FormGroup.Kind.textarea()}
control_value="Checked the returns log with the caretaker."
control_rest={%{id: "unsaved-refund-internal", name: "internal", rows: "6"}}
><:printed_value>Checked the returns log with the caretaker.</:printed_value>
<:label rest={%{for: "unsaved-refund-internal"}}>Note for the team</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</:form_groups>
<:refusal>
<Kit.Phoenix.Roles.Refusal.refusal id="form-unsaved-refused">
<:line>Refund not issued: the payment provider is not answering. Your entry is kept on this device.</:line>
</Kit.Phoenix.Roles.Refusal.refusal>
</:refusal>
<:submit_return>
<Kit.Phoenix.Roles.PrimaryAction.primary_action>Issue refund</Kit.Phoenix.Roles.PrimaryAction.primary_action>
<Kit.Phoenix.Roles.WayBack.way_back href="../../record/">Return to invoice</Kit.Phoenix.Roles.WayBack.way_back>
</:submit_return>
</Kit.Phoenix.Layouts.Form.form>
</:body>
</Kit.Phoenix.Layouts.Shell.shell>
Form, inert
Source
<Kit.Phoenix.Layouts.Shell.shell print_identity={@print.identity} print_subject={@print.subject} print_standing={@print.standing} print_tenant={@print.tenant} product="kit" navigation_label="Application" navigation="none" density="desk">
<:subject>Form</:subject>
<:lede words={@owner} />
<:lede words="Layout example" />
<:actions><a href="../../layout-form/#layout-form-inert">{@owner}</a></:actions>
<:body>
<Kit.Phoenix.Layouts.Form.form id="layout-form-inert-form" subject_state={Kit.Phoenix.State.none()}>
<:task_context heading="Counts"></:task_context>
<:form_groups>
<Kit.Phoenix.Layouts.Form.row_list columns={2}>
<Kit.Phoenix.Layouts.Form.row>
<Kit.Phoenix.Roles.FormGroup.form_group id="inert-row-count-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)} control_rest={%{id: "inert-row-count", name: "count", value: "1"}}><:printed_value>1</:printed_value>
<:label rest={%{for: "inert-row-count"}}>Count</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<Kit.Phoenix.Roles.FormGroup.form_group id="inert-row-amount-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:narrow)} control_rest={%{id: "inert-row-amount", name: "amount", value: "20"}}><:printed_value>20</:printed_value>
<:label rest={%{for: "inert-row-amount"}}>Amount</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
<:mark><Kit.Phoenix.Roles.SelectionControl.selection_control id="inert-row-mark" name="and-more"><:fact printed_value="Not marked">This count and more</:fact></Kit.Phoenix.Roles.SelectionControl.selection_control></:mark>
<:action><Kit.Phoenix.Roles.InertControl.inert_control action="secondary-action" id="inert-row-remove" words="Save this count before removing it." aria-label="Remove row 1">Remove</Kit.Phoenix.Roles.InertControl.inert_control></:action>
</Kit.Phoenix.Layouts.Form.row>
<:action><Kit.Phoenix.Roles.InertControl.inert_control action="secondary-action" id="inert-row-add" words="Save these counts before adding another.">Add a count</Kit.Phoenix.Roles.InertControl.inert_control></:action>
</Kit.Phoenix.Layouts.Form.row_list>
</:form_groups>
<:submit_return><Kit.Phoenix.Roles.PrimaryAction.primary_action>Save</Kit.Phoenix.Roles.PrimaryAction.primary_action></:submit_return>
</Kit.Phoenix.Layouts.Form.form>
<Kit.Phoenix.Layouts.Form.form id="layout-form-inert-form-2" subject_state={Kit.Phoenix.State.none()}>
<:task_context heading="Hall contacts"></:task_context>
<:form_groups>
<Kit.Phoenix.Layouts.Form.part_list>
<Kit.Phoenix.Layouts.Form.part heading="Contact 1">
<:action><Kit.Phoenix.Roles.SubtleAction.subtle_action type="button" aria-label="Remove contact 1">Remove</Kit.Phoenix.Roles.SubtleAction.subtle_action></:action>
<Kit.Phoenix.Roles.FormGroup.form_group id="inert-contact-name-form-group" kind={Kit.Phoenix.Roles.FormGroup.Kind.text(:medium)} control_rest={%{id: "inert-contact-name", name: "name", value: "Grace Adeyemi"}}><:printed_value>Grace Adeyemi</:printed_value>
<:label rest={%{for: "inert-contact-name"}}>Name</:label>
</Kit.Phoenix.Roles.FormGroup.form_group>
</Kit.Phoenix.Layouts.Form.part>
<:action><Kit.Phoenix.Roles.InertControl.inert_control action="secondary-action" id="inert-part-add" words="Save these contacts before adding another.">Add another contact</Kit.Phoenix.Roles.InertControl.inert_control></:action>
</Kit.Phoenix.Layouts.Form.part_list>
</:form_groups>
<:submit_return><Kit.Phoenix.Roles.PrimaryAction.primary_action>Save contacts</Kit.Phoenix.Roles.PrimaryAction.primary_action></:submit_return>
</Kit.Phoenix.Layouts.Form.form>
</:body>
</Kit.Phoenix.Layouts.Shell.shell>