ui

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2026 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

templ: version: v0.3.1020

Package ui is the Bespoke design system (docs/adr/0010-templui-component-base.md): templUI components vendored under components/ (never hand-edited — see CLAUDE.md), the compiled theme + JS under assets/ (embedded), and Bespoke wrapper components in shell.templ.

Regenerate after changing any .templ file or design/input.css:

scripts/build-ui.sh

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppIcon

func AppIcon(name, class string) templ.Component

AppIcon renders a Lucide icon by name, falling back to a generic icon for names the vendored set doesn't know (manifest icons are free-text).

func AppShell

func AppShell(p ShellProps) templ.Component

func Handler

func Handler() http.Handler

Handler serves the design system's compiled CSS and JS. pkg/web mounts it at /_bespoke/ on every app, outside auth (static assets, tailnet-only).

func IntentConfirm

func IntentConfirm(user auth.User, appTitle, intentTitle, prompt, action, text string) templ.Component

func Markdown

func Markdown(src string) templ.Component

Markdown renders user- or LLM-authored markdown (entries, summaries, notes) as styled HTML. Typography comes from the design system's `prose` styles (design/input.css).

func NotificationChrome added in v0.13.0

func NotificationChrome() templ.Component

func NotificationCount added in v0.13.0

func NotificationCount(n int) templ.Component

func NotificationList added in v0.13.0

func NotificationList(items []events.Notification) templ.Component

func NotificationToasts added in v0.13.0

func NotificationToasts(n *events.Notification) templ.Component

func VoiceButton

func VoiceButton(action string) templ.Component

func WithShellData

func WithShellData(ctx context.Context, d ShellData) context.Context

WithShellData attaches platform chrome state to a request context. Called by pkg/web; apps never touch it.

Types

type AppLink struct {
	Name string
	Slug string
	Icon string // Lucide name from the manifest
	URL  string // dev-aware: localhost:<port> or https://<slug>.<domain>
}

AppLink is one entry in the AppShell's app switcher.

type IntentLink struct {
	App   string // target app slug
	Name  string // intent name within that app
	Title string // "Create Todo"
	URL   string // absolute confirm-page URL (append ?text=…)
}

IntentLink is another app's declared intent, resolved to an invokable URL (ADR-0018). The chrome's selection popover and app-level follow-ups (ui.IntentsFrom) both consume these.

func IntentsFrom

func IntentsFrom(ctx context.Context) []IntentLink

IntentsFrom exposes foreign intents to app views for event-driven follow-ups (e.g. todo's "Journal it?" banner). Returns nil when none.

type ShellData

type ShellData struct {
	Apps        []AppLink
	Current     string // slug of the running app; "" for platformd
	HomeURL     string
	ChatEnabled bool
	Intents     []IntentLink // other apps' intents (never the current app's)
}

ShellData is platform chrome state, stashed in the request context by pkg/web's middleware (ADR-0015) so AppShell renders it with zero app code.

type ShellProps

type ShellProps struct {
	// Title is the app's display name; empty for the dashboard itself.
	Title string
	User  auth.User
	// Width controls the maximum width of the shared header and page content.
	// The zero value preserves the reading-width layout used by existing apps.
	Width ShellWidth
}

type ShellWidth added in v0.4.0

type ShellWidth string

ShellWidth lets an app choose the amount of horizontal space its views may use without giving up AppShell's platform chrome or mobile-first behavior.

const (
	ShellWidthReading ShellWidth = "reading"
	ShellWidthWide    ShellWidth = "wide"
	ShellWidthFull    ShellWidth = "full"
)

Directories

Path Synopsis
components
icon
templui component icon - version: v1.12.1 installed by templui v1.12.1 📚 Documentation: https://templui.io/docs/components/icon
templui component icon - version: v1.12.1 installed by templui v1.12.1 📚 Documentation: https://templui.io/docs/components/icon
templui util templui.go - version: v1.12.1 installed by templui v1.12.1
templui util templui.go - version: v1.12.1 installed by templui v1.12.1

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL