On Record
Message entry
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.
Ring the bell by the side gate.
Wait for the caretaker.
- Done
Deposit paid
- Not done
Key returned
The side door sticks in the cold.
Gate: 4721
Alarm: 0990Floor plan: garden-room-plan.pdf
Delivered to bookings@oakmerevillagehall.org
The Garden room is free that week. I have moved the rehearsal and kept the fee as it stands.
Sending to aisha@oakmereprimary.org
Thank you. We will bring our own chairs on the night.
Delivered to bookings@oakmerevillagehall.org
Could we also borrow the long tables for the evening?
Delivered to bookings@oakmerevillagehall.org
With one action unavailable among the others.
Could we also borrow the long tables for the evening?
Delivered to bookings@oakmerevillagehall.org
Reopen this booking before replying.
While a model’s turn saves, How this was made waits.
Summary
Written by the booking assistant from the messages in this conversation.
It can be wrong. Check it against the messages.
Wait for the summary to save to see how it was made.
The choir asks to move its rehearsals to the Garden room while the hall floor is sealed. The Garden room is free those evenings.
Source
let lines = (texts): KitReact.AuthoredText.shown => {
value: texts->Array.map((line): KitReact.AuthoredText.block => Paragraph([Text(line, [])])),
reader: Specimen_Reader.reader,
mentionLink: (_, _) => None,
fileLink: _ => None,
}
let note: KitReact.AuthoredText.shown = {
value: [
Heading([Text("Before you arrive", [])]),
Paragraph([
Text("Ask ", []),
Mention({kind: Person, id: "aisha-khan", label: "Aisha Khan"}),
Text(" to confirm ", []),
Text("the address", [Bold]),
Text(" for ", []),
Mention({kind: Subject, id: "b-1042", label: "B-1042 Garden room"}),
Text(" before ", []),
Date({year: 2025, month: 3, day: 14}),
Text(".", []),
HardBreak,
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.", []),
]),
BulletList([[[Text("Bring your own chairs.", [])]], [[Text("Leave the hall by ten.", [])]]]),
OrderedList([[[Text("Ring the bell by the side gate.", [])]], [[Text("Wait for the caretaker.", [])]]]),
TaskList([{checked: true, content: [[Text("Deposit paid", [])]]}, {checked: false, content: [[Text("Key returned", [])]]}]),
Blockquote([[Text("The side door sticks in the cold.", [])]]),
CodeBlock("Gate: 4721\nAlarm: 0990"),
Paragraph([Text("Floor plan: ", []), File({id: "floor-plan", name: "garden-room-plan.pdf"})]),
],
reader: Specimen_Reader.reader,
mentionLink: (kind, _) =>
switch kind {
| Person => Some("#role-message-entry")
| Subject => None
},
fileLink: _ => Some("#role-message-entry"),
}
@react.component
let make = () =>
<>
<KitReact.Roles.MessageEntry
author={React.string("Aisha Khan")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Aisha Khan", initials: "AK", picture: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgdmlld0JveD0iMCAwIDk2IDk2Ij48cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIGZpbGw9IiM4ZmE1YjYiLz48Y2lyY2xlIGN4PSI0OCIgY3k9IjM4IiByPSIxOCIgZmlsbD0iI2U4YzlhOCIvPjxwYXRoIGQ9Ik00OCA2MGMtMTcgMC0yOSAxMS0zMSAyNnYxMGg2MlY4NmMtMi0xNS0xNC0yNi0zMS0yNnoiIGZpbGw9IiMzZjVkNTIiLz48cGF0aCBkPSJNMzAgMzRjMC0xMiA4LTIwIDE4LTIwczE4IDggMTggMjBjMC02LTYtOC0xOC04cy0xOCAyLTE4IDh6IiBmaWxsPSIjNGEzYTJmIi8+PC9zdmc+", availability: [KitReact.Words.Text("Away")]}))}
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-03T09:12:00Z"))}
body=note
files=[
{
key: "schedule",
content: React.string("rehearsal-schedule.pdf"), href: "#role-message-entry",
props: {},
},
{
key: "sealing",
content: React.string("floor-sealing-dates.pdf"), href: "#role-message-entry",
props: {},
},
]
delivery={{state: Settled, children: React.string("Delivered")}}
destination={React.string("to bookings@oakmerevillagehall.org")}
/>
<KitReact.Roles.MessageEntry
author={React.string("Oakmere Village Hall")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Oakmere Village Hall", initials: "OH"}))}
own=true
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-03T11:40:00Z"))}
body={lines(["The Garden room is free that week. I have moved the rehearsal and kept the fee as it stands."])}
delivery={{state: Neutral, children: React.string("Sending")}}
destination={React.string("to aisha@oakmereprimary.org")}
/>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah, St Anne’s Scout Group committee")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-04T18:05:00Z"))}
body={lines(["Thank you. We will bring our own chairs on the night."])}
delivery={{state: Settled, children: React.string("Delivered")}}
destination={React.string("to bookings@oakmerevillagehall.org")}
/>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah, St Anne’s Scout Group committee")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-04T18:20:00Z"))}
body={lines(["Could we also borrow the long tables for the evening?"])}
delivery={{state: Settled, children: React.string("Delivered")}}
destination={React.string("to bookings@oakmerevillagehall.org")}
actions=[KitReact.Roles.MessageEntry.SubtleAction({children: React.string("Reply")}), KitReact.Roles.MessageEntry.SubtleAction({children: React.string("Forward")}), KitReact.Roles.MessageEntry.SubtleAction({children: React.string("Mark as unread")}), KitReact.Roles.MessageEntry.ActionMenu(KitReact.Roles.ActionMenu.role({id: "role-message-entry-fold", label: "More actions for this message", groups: []}))]
/>
<p className="specimen-case-line">{React.string("With one action unavailable among the others.")}</p>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah, St Anne’s Scout Group committee")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-04T18:20:00Z"))}
body={lines(["Could we also borrow the long tables for the evening?"])}
delivery={{state: Settled, children: React.string("Delivered")}}
destination={React.string("to bookings@oakmerevillagehall.org")}
actions=[
KitReact.Roles.MessageEntry.SubtleAction({children: React.string("Reply"), state: KitReact.ActionState.Inert({id: "role-message-entry-reply", words: [KitReact.Words.Text("Reopen this booking before replying.")]})}),
KitReact.Roles.MessageEntry.SubtleAction({children: React.string("Forward")}), KitReact.Roles.MessageEntry.SubtleAction({children: React.string("Mark as unread")}),
]
/>
<p className="specimen-case-line">{React.string("While a model’s turn saves, How this was made waits.")}</p>
<KitReact.Roles.MessageEntry
author={React.string("Booking assistant")}
turn={Model({
mark: {
id: "role-message-entry-turn",
word: "Summary",
madeBy: [Text("Written by the booking assistant from the messages in this conversation.")],
madeAt: KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-03T11:42:00Z")),
sources: [],
caution: [Text("It can be wrong. Check it against the messages.")],
state: Inert({id: "role-message-entry-turn-how", words: [Text("Wait for the summary to save to see how it was made.")]}),
},
state: Whole({retry: {}}),
})}
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-03T11:42:00Z"))}
body={lines(["The choir asks to move its rehearsals to the Garden room while the hall floor is sealed. The Garden room is free those evenings."])}
/>
</>
Message entry, failed
The side door sticks in the cold. Send deliveries to the main entrance.
This note was not added: the connection dropped before it saved.
With Try again unavailable.
The side door sticks in the cold. Send deliveries to the main entrance.
This note was not added: the connection dropped before it saved.
Try again once you are back online.
Source
let lines = (texts): KitReact.AuthoredText.shown => {
value: texts->Array.map((line): KitReact.AuthoredText.block => Paragraph([Text(line, [])])),
reader: Specimen_Reader.reader,
mentionLink: (_, _) => None,
fileLink: _ => None,
}
@react.component
let make = () => <>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
own=true
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-05T10:20:00Z"))}
body={lines(["The side door sticks in the cold. Send deliveries to the main entrance."])}
standing={Failed({words: [KitReact.Words.Text("This note was not added: the connection dropped before it saved.")], tryAgain: {}})}
/>
<p className="specimen-case-line">{React.string("With Try again unavailable.")}</p>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
own=true
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-05T10:20:00Z"))}
body={lines(["The side door sticks in the cold. Send deliveries to the main entrance."])}
standing={Failed({words: [KitReact.Words.Text("This note was not added: the connection dropped before it saved.")], tryAgain: {}, tryAgainState: Inert({id: "role-message-entry-failed-try-again", words: [KitReact.Words.Text("Try again once you are back online.")]})})}
/>
</>
Message entry, conflict
The side door sticks in the cold. Send deliveries to the main entrance.
Maya Patel closed this booking while you were adding this note.
With the action unavailable.
The side door sticks in the cold. Send deliveries to the main entrance.
Maya Patel closed this booking while you were adding this note.
Reopen this booking before adding to it.
Source
let lines = (texts): KitReact.AuthoredText.shown => {
value: texts->Array.map((line): KitReact.AuthoredText.block => Paragraph([Text(line, [])])),
reader: Specimen_Reader.reader,
mentionLink: (_, _) => None,
fileLink: _ => None,
}
@react.component
let make = () => <>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
own=true
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-05T10:20:00Z"))}
body={lines(["The side door sticks in the cold. Send deliveries to the main entrance."])}
standing={Conflict({words: [KitReact.Words.Text("Maya Patel closed this booking while you were adding this note.")], label: "Add it to the closed booking", action: {}})}
/>
<p className="specimen-case-line">{React.string("With the action unavailable.")}</p>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
own=true
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-05T10:20:00Z"))}
body={lines(["The side door sticks in the cold. Send deliveries to the main entrance."])}
standing={Conflict({words: [KitReact.Words.Text("Maya Patel closed this booking while you were adding this note.")], label: "Add it to the closed booking", action: {}, actionState: Inert({id: "role-message-entry-conflict-action", words: [KitReact.Words.Text("Reopen this booking before adding to it.")]})})}
/>
</>
Message entry, processing
The side door sticks in the cold. Send deliveries to the main entrance.
Adding this note…
Source
let lines = (texts): KitReact.AuthoredText.shown => {
value: texts->Array.map((line): KitReact.AuthoredText.block => Paragraph([Text(line, [])])),
reader: Specimen_Reader.reader,
mentionLink: (_, _) => None,
fileLink: _ => None,
}
@react.component
let make = () =>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
own=true
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-05T10:20:00Z"))}
body={lines(["The side door sticks in the cold. Send deliveries to the main entrance."])}
standing={Processing([KitReact.Words.Text("Adding this note…")])}
/>
Message entry, unsaved
The side door sticks in the cold. Send deliveries to the main entrance.
This note will be added when you are back online.
Source
let lines = (texts): KitReact.AuthoredText.shown => {
value: texts->Array.map((line): KitReact.AuthoredText.block => Paragraph([Text(line, [])])),
reader: Specimen_Reader.reader,
mentionLink: (_, _) => None,
fileLink: _ => None,
}
@react.component
let make = () =>
<KitReact.Roles.MessageEntry
author={React.string("Priya Shah")}
turn={KitReact.Roles.MessageEntry.Person(KitReact.Roles.Avatar.Person({name: "Priya Shah", initials: "PS"}))}
own=true
time={KitReact.Time.moment(Specimen_Reader.reader, Date.fromString("2025-02-05T10:20:00Z"))}
body={lines(["The side door sticks in the cold. Send deliveries to the main entrance."])}
standing={Unsaved([KitReact.Words.Text("This note will be added when you are back online.")])}
/>