Implementation and maintenance
Composition and extension
Build new views from the documented source primitives and preserve their native contracts.
On this page
Assembly recipes
| Task | Composition |
|---|---|
| Story archive | SiteShell + StoryArchiveHeading/List + StoryPagination. |
| Editorial form | AdminPageHeader + form + AdminEditTabs + AdminPanel + AdminField/control + save feedback. |
| Record management | PageHeader + query/status controls + AdminDataList/Row + Badge + EmptyState. |
| Media preparation | Admin shell + MediaUploadWorkbench; persist only through the service contract. |
| Place inspection | Map layer/selection supplies a target to MapDetailModal; close callback belongs to the parent. |
Admin form composition
<form id="story-form" action={saveStory}>
<AdminPanel>
<AdminField label="Title">
<AdminInput name="title" defaultValue={story.title} required />
</AdminField>
</AdminPanel>
<AdminButton type="submit">Save story</AdminButton>
</form>Extension criteria
- A new variant must solve a repeatable need in an actual route.
- Document required props, state ownership, unavailable/error behavior and theme scope.
- Add a native component crop and an applied screen; verify the interaction, not just the appearance.
- Avoid nesting buttons/links in whole-row links and accidentally submitting forms from toolbar buttons.
Source references
| File | Responsibility |
|---|---|
| components/admin-ui.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/admin/admin-edit-tabs.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/public-content-list-item.tsx | Audited Townwell implementation; use this file when extending this interface. |
Reference downloads
Related topics
Source audit: 2026-10-07 · Revision ce8bc72b96da · Documentation v0.1