sova-devtools 0.1.7

In-app DevTools bar for Sova (HTML inject, SSE timeline, request snapshots)
Documentation
<script setup lang="ts">
import { computed } from "vue";
import { Mail } from "@lucide/vue";
import DefList from "../components/DefList.vue";
import EmptyState from "../components/EmptyState.vue";
import Pane from "../components/Pane.vue";
import { useDevToolsStore } from "../stores/devtools";

const store = useDevToolsStore();
const items = computed(() => store.current?.mail ?? []);
</script>

<template>
  <EmptyState
    v-if="!store.current"
    title="No snapshot"
    hint="Select a request first."
    :icon="Mail"
  />
  <EmptyState
    v-else-if="!items.length"
    title="No mail recorded"
    hint="Fake/SMTP sends on this request show up here."
    :icon="Mail"
  />
  <div v-else class="flex flex-col gap-3">
    <Pane
      v-for="(m, i) in items"
      :key="i"
      :title="m.subject || '(no subject)'"
      :icon="Mail"
      :hint="m.backend"
    >
      <DefList
        :items="[
          { label: 'to', value: (m.to || []).join(', ') || '—' },
          { label: 'backend', value: m.backend },
          { label: 'subject', value: m.subject, mono: false },
        ]"
      />
    </Pane>
  </div>
</template>