AgentLayerZero Playground

<MessageBubble />

A single chat-message bubble. User messages render with the --alz-user-bubble background and a flat-corner tail; assistant messages get a bordered card with markdown rendering. The streaming variant adds a pulsing cursor.

<script setup lang="ts">
import { MessageBubble } from '@agent-layer-zero/dendrite-vue'
import '@agent-layer-zero/soma/chat-components.css'
</script>

<template>
  <MessageBubble :message="{ role: 'user',      content: 'Why is the sky blue?' }" />
  <MessageBubble :message="{ role: 'assistant', content: 'Rayleigh scattering …' }" />
  <MessageBubble :message="{ role: 'assistant', content: 'Streaming …' }" :streaming="true" />
</template>

The Vue and React panels both render actual live components as Astro islands. They share the same DOM, the same soma CSS, and emit identical markup — that's the multi-framework parity guarantee.