101 lines
2.9 KiB
Markdown
101 lines
2.9 KiB
Markdown
# 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
|
||
```
|