@ai-tabs/ui-vue 1.4.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# AI Tabs UI Vue
|
|
2
2
|
|
|
3
|
-
A tabbed file editor UI built with Vue 3, featuring a split-pane layout with file explorer, command palette, and theme support. Runs both as an Electron renderer and as a standalone web app using the File System Access API.
|
|
3
|
+
A tabbed file editor UI built with Vue 3, featuring a split-pane layout with file explorer, integrated terminal, command palette, and theme support. Runs both as an Electron renderer and as a standalone web app using the File System Access API.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **Tab management** — open, close, pin, reorder, and navigate tabs with keyboard shortcuts
|
|
8
|
-
- **File explorer** — tree view with
|
|
9
|
-
- **
|
|
7
|
+
- **Tab management** — open, close, pin, reorder (drag-and-drop), and navigate tabs with keyboard shortcuts; right-click context menu
|
|
8
|
+
- **File explorer** — tree view with lazy loading, search filtering, hidden file toggling, and git pull
|
|
9
|
+
- **Integrated terminal** — xterm.js terminal with real shell process (Electron only), login shell, theme-driven ANSI colors, and exit handling
|
|
10
|
+
- **Split pane** — resizable explorer/editor and editor/terminal layouts with horizontal/vertical toggle
|
|
10
11
|
- **Command palette** — fuzzy-matched command search (`Cmd+Shift+P`)
|
|
11
|
-
- **Themes** — dark, light, and high-contrast
|
|
12
|
-
- **
|
|
12
|
+
- **Themes** — dark, light, VS Code, and high-contrast; persisted to localStorage
|
|
13
|
+
- **Notifications** — toast messages for errors and feedback
|
|
14
|
+
- **Keybindings** — `Cmd+O` open, `Cmd+W` close, `Ctrl+Tab` / `Ctrl+Shift+Tab` cycle, `Cmd+1`–`9` jump to tab, `` Ctrl+` `` toggle terminal
|
|
13
15
|
- **Dual environment** — Electron adapter (proxies `window.electronAPI`) and web adapter (File System Access API)
|
|
14
16
|
|
|
15
17
|
## Install
|
|
16
18
|
|
|
17
19
|
```bash
|
|
18
|
-
pnpm add
|
|
20
|
+
pnpm add @ai-tabs/ui-vue
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
Requires Vue 3.5+.
|
|
@@ -33,6 +35,8 @@ import '@ai-tabs/ui-vue/style.css'
|
|
|
33
35
|
</template>
|
|
34
36
|
```
|
|
35
37
|
|
|
38
|
+
For Electron integration (terminal, native dialogs), see [docs/Use-with-Electron.md](docs/Use-with-Electron.md).
|
|
39
|
+
|
|
36
40
|
## Development
|
|
37
41
|
|
|
38
42
|
```bash
|
|
@@ -48,6 +52,7 @@ pnpm dev
|
|
|
48
52
|
| `pnpm build` | Production build |
|
|
49
53
|
| `pnpm test` | Run tests with Vitest |
|
|
50
54
|
| `pnpm test:coverage` | Run tests with v8 coverage |
|
|
55
|
+
| `pnpm lint` | Lint and format with Biome |
|
|
51
56
|
|
|
52
57
|
## Project Structure
|
|
53
58
|
|
|
@@ -59,15 +64,27 @@ src/
|
|
|
59
64
|
├── composables/ # Shared state and logic (useTabs, useCommands, …)
|
|
60
65
|
├── editor/ # Editor input model
|
|
61
66
|
├── styles/ # Global CSS
|
|
62
|
-
├──
|
|
67
|
+
├── themes/ # Color registry system
|
|
68
|
+
├── test/ # Test helpers and shared mocks
|
|
63
69
|
└── utils/ # Emitter, disposable, path utilities, tree filter
|
|
64
70
|
```
|
|
65
71
|
|
|
72
|
+
## Documentation
|
|
73
|
+
|
|
74
|
+
- [UI overview](docs/UI.md) — layout, themes, keyboard shortcuts
|
|
75
|
+
- [Tab bar](docs/UI-Tab-bar.md) — tabs, drag-and-drop, context menu, sizing modes
|
|
76
|
+
- [File explorer](docs/UI-File-explorer.md) — tree view, search, toolbar
|
|
77
|
+
- [Editor pane](docs/UI-Editor-pane.md) — split view, terminal, editor registry
|
|
78
|
+
- [Pane resizer](docs/UI-Pane-resizer.md) — drag handle behavior
|
|
79
|
+
- [Electron guide](docs/Use-with-Electron.md) — preload script, IPC handlers, terminal setup
|
|
80
|
+
|
|
66
81
|
## Tech Stack
|
|
67
82
|
|
|
68
83
|
- [Vue 3](https://vuejs.org/) (Composition API, `<script setup>`)
|
|
69
84
|
- [Vite 7](https://vite.dev/)
|
|
70
85
|
- [Vitest 4](https://vitest.dev/) + [@vue/test-utils](https://test-utils.vuejs.org/) + happy-dom
|
|
86
|
+
- [xterm.js](https://xtermjs.org/) — integrated terminal
|
|
87
|
+
- [VS Code Codicons](https://github.com/microsoft/vscode-codicons) — icon font
|
|
71
88
|
|
|
72
89
|
## License
|
|
73
90
|
|