{{- template "document.html" . }} {{- define "document-title" }}{{ if .IsNew }}Add {{ .Widget.Type }}{{ else }}Edit {{ if .Widget.Title }}{{ .Widget.Title }}{{ else }}{{ .Widget.Type }}{{ end }}{{ end }} - {{ .App.Config.Branding.AppName }}{{ end }} {{- define "document-body" }}

{{- if .IsNew -}} Add widget — {{ .Widget.Type }} {{- else -}} {{ if .Widget.Title }}{{ .Widget.Title }}{{ else }}(untitled){{ end }} — {{ .Widget.Type }} {{- end }}

{{- if .IsNew -}} New widget for column {{ .Widget.ColumnIndex }} {{- else if eq .Widget.ColumnIndex -1 -}} head widget #{{ .Widget.WidgetIndex }} {{- else -}} column {{ .Widget.ColumnIndex }}, widget #{{ .Widget.WidgetIndex }} {{- end }}

{{- if .ErrorMessage }}
Couldn't save:
{{ .ErrorMessage }}
{{- end }} {{- if .LoadError }}
Can't load YAML:
{{ .LoadError }}
{{- end }} {{- if or .WidgetYAML .IsNew }}
How to edit a {{ if .Widget.Type }}{{ .Widget.Type }}{{ else }}widget{{ end }}
{{- if .WidgetExample }}

A working example of a {{ .Widget.Type }} widget:

{{- .WidgetExample -}}
{{- end }} {{- if .FieldReference }}

All fields supported by {{ .Widget.Type }} (defaults shown — fields with yaml:"-" tags or empty defaults still apply):

{{- .FieldReference -}}
{{- end }}

YAML quick tips:

  • Indentation matters — use two spaces per level, never tabs.
  • Strings, numbers, booleans go inline: limit: 10, hide-header: true.
  • List items start with - and align under the parent key.
  • Pull secrets from the environment: token: ${env:MY_TOKEN}.

Validation runs before saving — if the YAML is invalid, your file isn't touched and the error appears above.

{{- if .Widget.Type }}

Full upstream reference: {{ .Widget.Type }} docs ↗

{{- end }}
Cancel
{{- if not .IsNew }}

You can change type: here to convert this widget to any type.

{{- end }}
{{- end }}
{{ template "footer.html" . }}
{{- end }}