sova-devtools 0.1.7

In-app DevTools bar for Sova (HTML inject, SSE timeline, request snapshots)
Documentation
<script setup lang="ts">
import type { Component } from "vue";
import Icon from "./Icon.vue";

defineProps<{
  title?: string;
  icon?: Component;
  hint?: string;
  tone?: "default" | "warn" | "err";
}>();
</script>

<template>
  <section
    class="overflow-hidden rounded-[var(--dt-radius)] border bg-[var(--dt-surface)]"
    :class="{
      'border-[var(--dt-border)]': !tone || tone === 'default',
      'border-[var(--dt-warn)]': tone === 'warn',
      'border-[var(--dt-err)]': tone === 'err',
    }"
  >
    <header
      v-if="title || $slots.actions"
      class="flex min-h-9 items-center gap-2 border-b border-[var(--dt-border)] bg-[var(--dt-surface-2)] px-3 py-2"
    >
      <Icon v-if="icon" :icon="icon" :size="14" class="text-[var(--dt-accent)]" />
      <h3 v-if="title" class="m-0 text-[12px] font-semibold tracking-wide">
        {{ title }}
      </h3>
      <span v-if="hint" class="text-[11px] text-[var(--dt-faint)]">{{ hint }}</span>
      <div class="ml-auto flex items-center gap-2">
        <slot name="actions" />
      </div>
    </header>
    <div class="p-3">
      <slot />
    </div>
  </section>
</template>