510ebdf885
The page is now web/ (Vue 3 + Vite + TypeScript), built into screen_manager/app/static with hashed file names; server.py serves index.html as built and /assets/. The Python API, the data and the firmware are unchanged. Your screens sit in a sidebar, the pages of a screen stand next to each other at the screen's own shape, the library sits on the right, and a tile's settings slide in as a drawer while the mockup stays in view. New screen, Firmware & USB, Alerts, Override YAML and Settings are pages of their own. Fonts moved to web/src/assets; the tests read the source through tests/editor_sources.py. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
11 lines
367 B
Vue
11 lines
367 B
Vue
<script setup lang="ts">
|
|
import { dismissToast, state } from "../store";
|
|
</script>
|
|
|
|
<template>
|
|
<div v-if="state.toast" id="toast" class="toast" role="status">
|
|
<span>{{ state.toast.message }}</span>
|
|
<button v-if="state.toast.action" type="button" @click="state.toast.action.run(); dismissToast()">{{ state.toast.action.label }}</button>
|
|
</div>
|
|
</template>
|