AstralView/README.md

101 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AstralView — Runnable BI Dashboard Editor (goView-like)
This repo contains a runnable **BI dashboard screen editor** (AstralView) built as a simple product you can run locally and build as static assets.
## A) Runnable dev demo (local editor)
### Prerequisites
- Node.js (recommended: the version used in this workspace)
- pnpm (repo pins `pnpm@9.15.4` via `packageManager`)
### Install
```bash
pnpm install
```
### Run the editor (dev)
```bash
pnpm --filter @astralview/editor dev
```
Then open the URL printed by Vite (typically `http://localhost:5173`).
### What you should see
- A **default demo BI screen**.
- Default screen size: **1920×1080**.
- You can select widgets, multi-select, move/resize, reorder layers, and edit properties in the inspector.
## B) Publishable build artifact (build output + how to preview/serve)
### Build
```bash
pnpm --filter @astralview/editor build
```
Build output:
- `packages/editor/dist/` (static assets)
### Preview the production build locally
```bash
pnpm --filter @astralview/editor preview
```
### Serve in production
Serve the `packages/editor/dist/` folder with any static file server (Nginx, Caddy, Vercel static, etc.).
Example:
```bash
pnpm --filter @astralview/editor build
npx serve packages/editor/dist
```
## Data format (import/export)
- Export: editor exports the **AstralView Screen JSON** (includes `width`/`height`, nodes, etc.).
- Import:
- AstralView Screen JSON is validated/sanitized via schema migration.
- goView-like exports are also supported via conversion.
- Default canvas size is **1920×1080**, and import/export preserves screen `width`/`height`.
## C) Acceptance checklist (goView-like UX) — status
### Canvas defaults
- [x] Default screen/canvas size is **1920×1080**.
- [x] Import/export preserves `width`/`height` (AstralView Screen JSON).
- [x] goView conversion uses 1920×1080 fallbacks when width/height are missing.
### Core editor workflows
- [x] Selection
- [x] Right-click selects item (goView-ish)
- [x] Right-click on empty space does **not** clear selection
- [x] Multi-select transform
- [x] Move
- [x] Group bounding-box resize
- [x] Layers panel
- [x] Reorder (drag)
- [x] Lock / hide
- [x] Context menu
- [x] Copy / paste
- [x] Z-index actions
- [x] Align / distribute
- [x] Hotkeys parity (baseline)
- [x] Inspector
- [x] X / Y / W / H
- [x] Media `src` live update (image/iframe/video)
### Polish & stability
- [x] Bounds clamp (keep widgets within the screen bounds)
- [x] Min sizes (rect min=1; resize logic enforces sane bounds)
- [x] Avoid stuck context menus (close on normal interactions)
- [ ] Audit for no-op clickable actions (continue tightening UX)
### “Feels usable”
- [x] Minimal sample BI screen is included by default (demo widgets preloaded).
## Repo quality gates
Before pushing changes, keep these green:
```bash
pnpm -r lint && pnpm -r typecheck && pnpm -r build
```