Skip to content
Folio

Website

Contact

A correspondence form, contact facts, questions and location imagery.

Usage

When to reach for it

Provide localized field labels and host-owned submission state to a complete form.

Ships from@misoto22/design/website

TSX
import { CorrespondenceSection } from '@misoto22/design/website'

Notes

A correspondence page's primary content and supporting facts.

Best practices

Do

  • Supply localized labels, descriptive links and meaningful image alternatives.

Don’t

  • Do not put service credentials, routing logic or backend models inside presentation components.

Examples

controlled correspondence

The host controls every field and confirms success after its own submission work. This local example captures a draft in memory and sends no message.

Start a conversation

This demonstration saves a local draft only.

Parts

Composed at the call site rather than configured through props, so a layout this component did not anticipate is still expressible.

ContactFormView

Controlled contact form. Validation, submission and delivery remain host responsibilities.

ContactFormView props
PropTypeDefaultDescription
labelsrequiredContactFormLabels
limitsrequiredRecord<keyof ContactFormValues, number>
onFieldChangerequired(field: keyof ContactFormValues, value: string) => void
onSubmitrequiredFormEventHandler<HTMLFormElement>
onTopicChangerequired(value: string) => void
topicrequiredstring
topicsrequired{ value: string; label: string }[]
valuesrequiredContactFormValues
errorstring
idPrefixstringOptional stable prefix for links to a specific form.
pendingbooleanfalse
success{ title: string; description: string }A server-confirmed success. The host decides when the form can disappear.

ContactFacts

Contact facts retain their definition-list semantics and optional navigation.

ContactFacts props
PropTypeDefaultDescription
itemsrequiredDescriptionListItem[]
labelrequiredstring
linksReactNode
linksLabelstring

QuestionList

Visible questions and answers, useful when the complete answer set is short.

QuestionList props
PropTypeDefaultDescription
itemsrequired{ id: string; question: string; answer: string }[]
titlerequiredstring
descriptionstring

Also accepts everything in HTMLAttributes<HTMLElement>. Those are forwarded to the underlying element and are not listed row by row.

LocationFigure

Static map presentation; provider URLs, credentials and theme selection stay in the host.

LocationFigure props
PropTypeDefaultDescription
coordinatesrequiredstring
labelrequiredstring
creditReactNode
imageReactNode

Also accepts everything in HTMLAttributes<HTMLElement>. Those are forwarded to the underlying element and are not listed row by row.