{# Shared install-script clipboard behaviour. Provides the JS + CSS that drives any page's "Copy install script to clipboard" button. The button itself is rendered by the consuming page (each page wraps it in its own card chrome — dashboard's CTA card, /home's install hero). The contract is: - A button with `onclick="setupNewClaude(this)"` and ideally id `setupClaudeBtn` so the visible-state transitions read sensibly. - Optional `
` for inline error reporting. If absent, errors fall back to `alert()`. Canonical button label across consumers: **Copy install script to clipboard**. Keep all consumers aligned; the action does the same thing everywhere (copies a 90-day token-stamped setup script that pastes into Claude Code in `~/Desktop/{workspace_dir}`). The clipboard payload is single-sourced through `_claude_setup_instructions.jinja` (preview_mode=False), which emits `SETUP_INSTRUCTIONS_TEMPLATE` + `renderSetupInstructions(server, token)`. Pages that ALSO render the read-only preview (e.g. via `{% include "_claude_setup_instructions.jinja" %}` with preview_mode=True in their own template tree) just show the same lines under `
`. The JS here doesn't touch that pre.
#}