kit

Headed region

Built revision v17.10.0

Phoenix
Topics

Human support

Bring a missing role, layout, or state, or a rendering against the standard, to the session working on kit. Name the package and the entry.

On Home, Record, Form, Stepped flow, Settings, Find, Help, Issued document, Showcase

Headed region

Contact
Aisha Khan
Email
aisha@oakmereprimary.org

Custom fields

Year group
Year 4
Insurance reference
OPS-2291

Access

Key holder
The caretaker
Side gate
Open from

Out of hours

Key safe
Beside the side gate
Who to call
Tom Reid, 01632 960 148

A lone Fact group needs no Headed region.

Contact
Tom Reid
Email
tom@oakmerechoir.org

A Headed region inside a Row, before its expansion.

Oakmere WIAwaiting payment

Main Hall hire · £84.00

Payment plan

First payment
£42.00
Balance
£42.00
Payment history
Paid on
£42.00
Paid on
£42.00

A nested Headed region with nothing in it.

Access

Key holder
The caretaker

Out of hours

A nested Headed region holding a note as it was written.

Access

Key holder
The caretaker

Arrival notes

Before you arrive

Ask @Aisha Khan to confirm the address for B-1042 Garden room before .
Read the hire terms first, then use 4721 at the gate.

  • Bring your own chairs.

  • Leave the hall by ten.

  1. Ring the bell by the side gate.

  2. Wait for the caretaker.

  • Done

    Deposit paid

  • Not done

    Key returned

The side door sticks in the cold.

Gate: 4721
Alarm: 0990

Floor plan: garden-room-plan.pdf

A Headed region whose content is a note as it was written.

Arrival notes

Ring the bell by the side gate.
If nobody answers, the key is in the safe beside it.

Please stack the chairs along the back wall and switch off the heating in the Main Hall before you leave.

A nested heading names its week in dates.

Main Hall

Key holder
The caretaker

Bookings for

Choir rehearsal
Monday and Thursday evenings
Toddler group
Wednesday morning

A Headed region with a Notice at its head.

Insurance

Public liability cover has lapsed

No booking can be confirmed until a new certificate is on file.

Insurer
Oakmere Mutual
Policy
PL-40218
Source
<Kit.Phoenix.Roles.FactGroup.fact_group>
  <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    <:name>Contact</:name><:value>Aisha Khan</:value>
  </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
  <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    <:name>Email</:name><:value><Kit.Phoenix.Email.email address="aisha@oakmereprimary.org" /></:value>
  </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
</Kit.Phoenix.Roles.FactGroup.fact_group>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Custom fields">
  <:content>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Year group</:name><:value>Year 4</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Insurance reference</:name><:value>OPS-2291</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:content>
</Kit.Phoenix.Roles.HeadedRegion.headed_region>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Access">
  <:content>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Key holder</:name><:value>The caretaker</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Side gate</:name><:value>Open from <time datetime="17:30">half past five</time></:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:content>
  <:region heading="Out of hours">
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Key safe</:name><:value>Beside the side gate</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Who to call</:name><:value>Tom Reid, 01632 960 148</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:region>
</Kit.Phoenix.Roles.HeadedRegion.headed_region>
<p class="specimen-case-line">A lone Fact group needs no Headed region.</p>
<Kit.Phoenix.Roles.FactGroup.fact_group>
  <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    <:name>Contact</:name><:value>Tom Reid</:value>
  </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
  <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    <:name>Email</:name><:value><Kit.Phoenix.Email.email address="tom@oakmerechoir.org" /></:value>
  </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
</Kit.Phoenix.Roles.FactGroup.fact_group>
<p class="specimen-case-line">A Headed region inside a Row, before its expansion.</p>
<Kit.Phoenix.Roles.Row.row>
  <:subject href="../role-row/#role-row">Oakmere WI</:subject>
  <:stamp><Kit.Phoenix.Roles.Stamp.stamp state="neutral">Awaiting payment</Kit.Phoenix.Roles.Stamp.stamp></:stamp>
  <:facts>Main Hall hire ·&nbsp;<Kit.Phoenix.Roles.Amount.amount value={Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "84.00"))} /></:facts>
  <:headed_region>
    <Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Payment plan">
    <:content>
      <Kit.Phoenix.Roles.FactGroup.fact_group>
        <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
          <:name>First payment</:name><:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "42.00")))]} />
        </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
          <:name>Balance</:name><:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "42.00")))]} />
        </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
      </Kit.Phoenix.Roles.FactGroup.fact_group>
    </:content>
    </Kit.Phoenix.Roles.HeadedRegion.headed_region>
  </:headed_region>
  <:expansion_summary>Payment history</:expansion_summary>
  <:expansion>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Paid on <Kit.Phoenix.Roles.Time.time value={Kit.Phoenix.Time.day(reader(), ~D[2025-02-03])} /></:name><:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "42.00")))]} />
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Paid on <Kit.Phoenix.Roles.Time.time value={Kit.Phoenix.Time.day(reader(), ~D[2025-02-10])} /></:name><:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, "42.00")))]} />
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:expansion>
</Kit.Phoenix.Roles.Row.row>
<p class="specimen-case-line">A nested Headed region with nothing in it.</p>
<Kit.Phoenix.Roles.HeadedRegion.headed_region id="role-headed-region-empty-region" heading="Access">
  <:content>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Key holder</:name><:value>The caretaker</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:content>
  <:region heading="Out of hours"><p :if={false}>Beside the side gate</p></:region>
</Kit.Phoenix.Roles.HeadedRegion.headed_region>
<p class="specimen-case-line">A nested Headed region holding a note as it was written.</p>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Access">
  <:content>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Key holder</:name><:value>The caretaker</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:content>
  <:region heading="Arrival notes" authored_text={%Kit.Phoenix.AuthoredText.Shown{value: %Kit.Phoenix.AuthoredText{content: [ {:heading, [{:text, "Before you arrive", []}]}, {:paragraph, [{:text, "Ask ", []}, {:mention, %Kit.Phoenix.AuthoredText.Mention{kind: :person, id: "aisha-khan", label: "Aisha Khan"}}, {:text, " to confirm ", []}, {:text, "the address", [:bold]}, {:text, " for ", []}, {:mention, %Kit.Phoenix.AuthoredText.Mention{kind: :subject, id: "b-1042", label: "B-1042 Garden room"}}, {:text, " before ", []}, {:date, ~D[2025-03-14]}, {:text, ".", []}, :hard_break, {:text, "Read the ", []}, {:text, "hire terms", [{:link, "https://example.com/hire-terms"}]}, {:text, " first, ", []}, {:text, "then", [:italic]}, {:text, " use ", []}, {:text, "4721", [:code]}, {:text, " at the gate.", []}]}, {:bullet_list, [[{:paragraph, [{:text, "Bring your own chairs.", []}]}], [{:paragraph, [{:text, "Leave the hall by ten.", []}]}]]}, {:ordered_list, [[{:paragraph, [{:text, "Ring the bell by the side gate.", []}]}], [{:paragraph, [{:text, "Wait for the caretaker.", []}]}]]}, {:task_list, [{true, [{:paragraph, [{:text, "Deposit paid", []}]}]}, {false, [{:paragraph, [{:text, "Key returned", []}]}]}]}, {:blockquote, [{:paragraph, [{:text, "The side door sticks in the cold.", []}]}]}, {:code_block, "Gate: 4721\nAlarm: 0990"}, {:paragraph, [{:text, "Floor plan: ", []}, {:file, %Kit.Phoenix.AuthoredText.File{id: "floor-plan", name: "garden-room-plan.pdf"}}]} ]}, reader: reader(), mention_link: fn :person, _id -> "#role-headed-region"; :subject, _id -> nil end, file_link: fn _id -> "#role-headed-region" end}} />
</Kit.Phoenix.Roles.HeadedRegion.headed_region>
<p class="specimen-case-line">A Headed region whose content is a note as it was written.</p>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Arrival notes" authored_text={%Kit.Phoenix.AuthoredText.Shown{value: %Kit.Phoenix.AuthoredText{content: [{:paragraph, [{:text, "Ring the bell by the side gate.", []}, :hard_break, {:text, "If nobody answers, the key is in the safe beside it.", []}]}, {:paragraph, []}, {:paragraph, [{:text, "Please stack the chairs along the back wall and switch off the heating in the Main Hall before you leave.", []}]}]}, reader: reader(), mention_link: fn _kind, _id -> nil end, file_link: fn _id -> nil end}}/>
<p class="specimen-case-line">A nested heading names its week in dates.</p>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Main Hall">
  <:content>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Key holder</:name><:value>The caretaker</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:content>
  <:region heading={[Kit.Phoenix.Words.text("Bookings for "), Kit.Phoenix.Words.time(Kit.Phoenix.Time.day_range(reader(), ~D[2025-04-14], ~D[2025-04-20]))]}>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Choir rehearsal</:name><:value>Monday and Thursday evenings</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Toddler group</:name><:value>Wednesday morning</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:region>
</Kit.Phoenix.Roles.HeadedRegion.headed_region>
<p class="specimen-case-line">A Headed region with a Notice at its head.</p>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Insurance">
  <:notices>
    <Kit.Phoenix.Roles.Notice.notice state={Kit.Phoenix.Roles.Notice.State.attention()}>
      <:standing>Public liability cover has lapsed</:standing>
      <:sentence>No booking can be confirmed until a new certificate is on file.</:sentence>
      <:action><a href="#role-headed-region">Add a certificate</a></:action>
    </Kit.Phoenix.Roles.Notice.notice>
  </:notices>
  <:content>
    <Kit.Phoenix.Roles.FactGroup.fact_group>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Insurer</:name><:value>Oakmere Mutual</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
      <Kit.Phoenix.Roles.LabelledFact.labelled_fact>
        <:name>Policy</:name><:value>PL-40218</:value>
      </Kit.Phoenix.Roles.LabelledFact.labelled_fact>
    </Kit.Phoenix.Roles.FactGroup.fact_group>
  </:content>
</Kit.Phoenix.Roles.HeadedRegion.headed_region>

Headed region, inert

A region whose actions wait.

Invitations waiting for an answer

None right now. An invitation stands here until it is accepted.

Inviting waits until the people who can sign in have loaded.

Choose who can sign in before sharing a sign-up link.

Copying invitations waits until they have loaded.

A region inside another, its actions waiting.

Access

The caretaker can sign in.

Invitations waiting for an answer

None right now. An invitation stands here until it is accepted.

Inviting waits until the people who can sign in have loaded.

Choose who can sign in before sharing a sign-up link.

Copying invitations waits until they have loaded.

Source
<p class="specimen-case-line">A region whose actions wait.</p>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Invitations waiting for an answer" state={Kit.Phoenix.WorkState.empty("None right now. An invitation stands here until it is accepted.")}>
  <:content />
  <:empty_action action="secondary-action" action_state={Kit.Phoenix.ActionState.inert("headed-inert-invite", [Kit.Phoenix.Words.text("Inviting waits until the people who can sign in have loaded.")])}>Invite someone</:empty_action>
  <:empty_action action="secondary-action" action_state={Kit.Phoenix.ActionState.inert("headed-inert-share", [Kit.Phoenix.Words.text("Choose who can sign in before sharing a sign-up link.")])}>Share a sign-up link</:empty_action>
  <:empty_action id="headed-inert-more" label="More invitation actions" action_state={Kit.Phoenix.ActionState.inert("headed-inert-more-trigger", [Kit.Phoenix.Words.text("Copying invitations waits until they have loaded.")])} groups={[Kit.Phoenix.Menu.group([Kit.Phoenix.Menu.item("Copy invitations"), Kit.Phoenix.Menu.item("Download invitations")])]} />
</Kit.Phoenix.Roles.HeadedRegion.headed_region>
<p class="specimen-case-line">A region inside another, its actions waiting.</p>
<Kit.Phoenix.Roles.HeadedRegion.headed_region heading="Access">
  <:content><p>The caretaker can sign in.</p></:content>
  <:region heading="Invitations waiting for an answer" state={Kit.Phoenix.WorkState.empty("None right now. An invitation stands here until it is accepted.")} />
  <:region_empty_action action="secondary-action" action_state={Kit.Phoenix.ActionState.inert("headed-nested-inert-invite", [Kit.Phoenix.Words.text("Inviting waits until the people who can sign in have loaded.")])}>Invite someone</:region_empty_action>
  <:region_empty_action action="secondary-action" action_state={Kit.Phoenix.ActionState.inert("headed-nested-inert-share", [Kit.Phoenix.Words.text("Choose who can sign in before sharing a sign-up link.")])}>Share a sign-up link</:region_empty_action>
  <:region_empty_action id="headed-nested-inert-more" label="More invitation actions" action_state={Kit.Phoenix.ActionState.inert("headed-nested-inert-more-trigger", [Kit.Phoenix.Words.text("Copying invitations waits until they have loaded.")])} groups={[Kit.Phoenix.Menu.group([Kit.Phoenix.Menu.item("Copy invitations"), Kit.Phoenix.Menu.item("Download invitations")])]} />
</Kit.Phoenix.Roles.HeadedRegion.headed_region>