{{/* Transfer ownership, in two presentations over ONE copy of the content: the "transfer-modal" fragment htmx swaps into the share page's #transfer-modal, and a standalone page for direct links (the delete page offers one) and for browsers that never ran the htmx request. The shared blocks below are the single source of the copy, so the two can't drift apart. The form posts normally — a full navigation back to the repeater page, which also closes the modal — exactly as the sibling invite/person-access modals do. No client JS beyond ui.js's [data-confirm] gate. */}} {{/* The recipient picker, or the explainer when there's nobody eligible. */}} {{define "transfer-choices"}} {{if .Stewards}}
{{range $i, $s := .Stewards}} {{end}}
{{/* Icon and body are DIRECT children of .alert: it's a flex row with its own gap, so wrapping them in a .d-flex (which has none) butts the icon against the title. */}} {{else}} {{/* No stewards yet: the fix is on the sharing page, so say so plainly rather than rendering an empty picker. */}} {{/* One child element: .alert is a flex ROW, so a bare heading beside its body text lays out as two columns instead of a title above a paragraph. */}} {{end}} {{end}} {{define "transfer-intro"}}

Hand “{{.Repeater.Name}}” to one of its stewards. The repeater keeps everything that makes it findable and serviceable — its documentation, maintenance history, command log, location, and its public page address, which keeps working unchanged.

{{if .Stewards}}

Only stewards can receive a repeater: they already run every command you can and are listed publicly as backup maintainers, so they're the people you've already trusted with it.

{{end}} {{end}} {{/* --- modal presentation --- */}} {{define "transfer-modal"}} {{end}} {{/* --- standalone page presentation --- */}} {{define "title"}}Transfer {{.Repeater.Name}} · MeshTender{{end}} {{define "header"}}{{template "repeater-header" .Nav}}{{end}} {{define "content"}} {{template "repeater-tabs" .Nav}} {{if .Error}}
{{.Error}}
{{end}}

Transfer ownership

{{template "transfer-intro" .}}
{{template "transfer-choices" .}}
{{if .Stewards}} {{end}} {{if .Stewards}}Cancel{{else}}Go to sharing{{end}}
{{template "icon-arrow-left" "me-1"}}Back to sharing {{end}}