mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Format entire codebase with Prettier (mechanical, no behavior change)
This commit is contained in:
@@ -6,9 +6,9 @@ This section describes the overall workspace structure, the header toolbar, the
|
||||
|
||||
Astrolabe is a single-screen workspace. Below a fixed top header sits a three-pane working area, each pane dedicated to one part of the snippet-editing workflow:
|
||||
|
||||
- **Snippet library** (left) — browse, search, select, and manage saved snippets (see *Snippet Library*).
|
||||
- **Spec editor** (center) — edit the Vega-Lite spec of the selected snippet (see *Spec Editor & Draft/Published Workflow*).
|
||||
- **Live preview** (right) — render the current spec (see *Live Preview*).
|
||||
- **Snippet library** (left) — browse, search, select, and manage saved snippets (see _Snippet Library_).
|
||||
- **Spec editor** (center) — edit the Vega-Lite spec of the selected snippet (see _Spec Editor & Draft/Published Workflow_).
|
||||
- **Live preview** (right) — render the current spec (see _Live Preview_).
|
||||
|
||||
Behavior:
|
||||
|
||||
@@ -27,19 +27,19 @@ A fixed header spans the top of the app.
|
||||
- **Left side**: the app icon, the app title ("Astrolabe"), and a version badge showing the current app version.
|
||||
- **Right side**: a row of text entry points. Each opens a destination:
|
||||
|
||||
| Entry point | Opens |
|
||||
|---|---|
|
||||
| Import | A file-picker dialog to choose a previously exported file; the chosen file is imported (see *Import & Export*). |
|
||||
| Export | Immediately produces a downloaded file containing all snippets and datasets (see *Import & Export*). |
|
||||
| Datasets | The Datasets manager modal (see *Datasets*). |
|
||||
| Settings | The Settings modal (see *Settings*). |
|
||||
| About & Privacy | The About & Help modal (keyboard shortcuts, about, and privacy information). |
|
||||
| Donate | The Donate modal. |
|
||||
| Entry point | Opens |
|
||||
| --------------- | --------------------------------------------------------------------------------------------------------------- |
|
||||
| Import | A file-picker dialog to choose a previously exported file; the chosen file is imported (see _Import & Export_). |
|
||||
| Export | Immediately produces a downloaded file containing all snippets and datasets (see _Import & Export_). |
|
||||
| Datasets | The Datasets manager modal (see _Datasets_). |
|
||||
| Settings | The Settings modal (see _Settings_). |
|
||||
| About & Privacy | The About & Help modal (keyboard shortcuts, about, and privacy information). |
|
||||
| Donate | The Donate modal. |
|
||||
|
||||
Notes:
|
||||
|
||||
- Import and Export act directly (file dialog / file download); they do not open in-app modals.
|
||||
- The Datasets, Settings, About & Privacy, and Donate entry points each open a modal (see *Modal System*).
|
||||
- The Datasets, Settings, About & Privacy, and Donate entry points each open a modal (see _Modal System_).
|
||||
|
||||
## C. Modal System
|
||||
|
||||
@@ -48,20 +48,20 @@ The app shows at most one modal at a time. The modal set is: Datasets, Settings,
|
||||
- Opening any modal closes whichever modal was previously open; the two never overlap.
|
||||
- Every modal can be dismissed by: clicking its close button, pressing **Escape**, or clicking the backdrop outside the modal body.
|
||||
- Clicking inside the modal body does not dismiss it.
|
||||
- The Chart Builder and Extract-to-Dataset modals are opened from within the Datasets / snippet workflows (see *Chart Builder* and *Datasets*), not from the header.
|
||||
- The Chart Builder and Extract-to-Dataset modals are opened from within the Datasets / snippet workflows (see _Chart Builder_ and _Datasets_), not from the header.
|
||||
- Dismissing a modal returns the user to the underlying workspace unchanged.
|
||||
|
||||
## D. Keyboard Shortcuts
|
||||
|
||||
Shortcuts are platform-aware: the modifier is **Cmd** on Mac and **Ctrl** on other platforms (shown below as Cmd/Ctrl).
|
||||
|
||||
| Shortcut | Action |
|
||||
|---|---|
|
||||
| Cmd/Ctrl + Shift + N | Create a new snippet (see *Snippet Library*) |
|
||||
| Cmd/Ctrl + K | Toggle the Datasets manager open/closed |
|
||||
| Cmd/Ctrl + S | Publish the current snippet's draft (see *Spec Editor & Draft/Published Workflow*) |
|
||||
| Cmd/Ctrl + , | Open the Settings modal |
|
||||
| Escape | Close the active modal |
|
||||
| Shortcut | Action |
|
||||
| -------------------- | ---------------------------------------------------------------------------------- |
|
||||
| Cmd/Ctrl + Shift + N | Create a new snippet (see _Snippet Library_) |
|
||||
| Cmd/Ctrl + K | Toggle the Datasets manager open/closed |
|
||||
| Cmd/Ctrl + S | Publish the current snippet's draft (see _Spec Editor & Draft/Published Workflow_) |
|
||||
| Cmd/Ctrl + , | Open the Settings modal |
|
||||
| Escape | Close the active modal |
|
||||
|
||||
Notes:
|
||||
|
||||
@@ -75,12 +75,12 @@ The app reflects its current location in the URL hash so that reloading restores
|
||||
|
||||
States and their hash forms:
|
||||
|
||||
| State | Hash |
|
||||
|---|---|
|
||||
| A selected snippet | `#snippet-<id>` |
|
||||
| Datasets manager (list) | `#datasets` |
|
||||
| A specific dataset | `#datasets/dataset-<id>` |
|
||||
| New-dataset form | `#datasets/new` |
|
||||
| State | Hash |
|
||||
| --------------------------- | ------------------------------ |
|
||||
| A selected snippet | `#snippet-<id>` |
|
||||
| Datasets manager (list) | `#datasets` |
|
||||
| A specific dataset | `#datasets/dataset-<id>` |
|
||||
| New-dataset form | `#datasets/new` |
|
||||
| Chart Builder for a dataset | `#datasets/dataset-<id>/build` |
|
||||
|
||||
Behavior:
|
||||
@@ -111,5 +111,5 @@ Events that raise toasts include:
|
||||
Astrolabe is local-first and usable without a network connection.
|
||||
|
||||
- After the first successful load, the app works fully offline; the interface and previously loaded content remain available with no connection.
|
||||
- All snippets, datasets, and settings are stored locally and remain accessible offline (see *Data Model*).
|
||||
- All snippets, datasets, and settings are stored locally and remain accessible offline (see _Data Model_).
|
||||
- The app is installable as a standalone application from a supporting browser and, once installed, launches in its own window.
|
||||
|
||||
Reference in New Issue
Block a user