Two setups: an inline embed and a floating launcher (bottom-right).
Both use features.artifacts. Inline toolbar talks to the embedded instance; launcher toolbar
opens the bubble first, then runs the same actions. Globals:
window.personaArtifactDemo and window.personaArtifactLauncherDemo.
Markdown — rendered note in the artifact pane.
Known component — ArtifactDemoPill is registered in the demo.
Unknown component — fallback inspector card in the pane.
Inline embed
Floating launcher
Use the sparkle button in the corner, or use the buttons below — they open the panel automatically, then
inject artifacts. persona:upsertArtifact works with detail.instanceId if you set
data-persona-instance on the mount target (here: artifact-launcher-root).
Launcher base width (launcher.width)
Expanded width with artifacts (features.artifacts.layout.expandedPanelWidth)
Artifact column (layout.paneWidth / paneMaxWidth)
Pane look (layout.paneAppearance)
Unified shell (layout.unifiedSplitChrome) — one card across chat + artifact