Skip to content

Commit 4f83481

Browse files
chore: initialize Vue Folder Tree
0 parents  commit 4f83481

25 files changed

+3486
-0
lines changed

.github/workflows/gh-pages.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages"
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
- uses: actions/setup-node@v4
23+
with:
24+
node-version: 20
25+
cache: 'npm'
26+
- run: npm ci
27+
- run: npm run build
28+
- name: Upload Pages artifact
29+
uses: actions/upload-pages-artifact@v3
30+
with:
31+
path: ./dist
32+
33+
deploy:
34+
needs: build
35+
runs-on: ubuntu-latest
36+
environment:
37+
name: github-pages
38+
url: ${{ steps.deployment.outputs.page_url }}
39+
steps:
40+
- name: Deploy to GitHub Pages
41+
id: deployment
42+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
dist
3+
.DS_Store

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
engine-strict=false

.vscode/extensions.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"recommendations": ["Vue.volar"]
3+
}

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 IVT-mad
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# 📂 Vue Folder Tree — Animated · Accessible · Accurate
2+
3+
A production-ready, recursive **folder tree component** built with **Vue 3 + Vite**.
4+
5+
---
6+
7+
## ✨ Features
8+
9+
* ✅ Smooth expand/collapse animations
10+
* ✅ Keyboard navigation (`↑ ↓ Home End Space/Enter`)
11+
* ✅ ARIA roles for screen readers
12+
* ✅ Optional checkboxes
13+
* ✅ Simple API (props + events)
14+
* ✅ Zero dependencies
15+
16+
---
17+
18+
## 🔗 Live Demo
19+
20+
🌐 [https://luxenonbeterris.github.io/vue-folder-tree](https://luxenonbeterris.github.io/vue-folder-tree)
21+
22+
---
23+
24+
## 📦 Install & Run Locally
25+
26+
```bash
27+
# install deps
28+
pnpm install # or: npm install / yarn
29+
30+
# start dev server
31+
pnpm dev # or: npm run dev
32+
```
33+
34+
---
35+
36+
## 🖼 Screenshots
37+
38+
<p align="center">
39+
<img src="docs/screenshots/home.png" alt="Home Screenshot" width="600" />
40+
<br />
41+
<img src="docs/screenshots/tree.png" alt="Tree Screenshot" width="600" />
42+
</p>
43+
44+
---
45+
46+
## 🗂 Data Model
47+
48+
```ts
49+
type TreeNode = {
50+
id: string | number
51+
name: string
52+
isLeaf?: boolean
53+
children?: TreeNode[]
54+
}
55+
```
56+
57+
---
58+
59+
## 🛠 Tech & Scripts
60+
61+
**Stack:** Vue 3 · Vite · TypeScript SFCs
62+
63+
**Scripts:**
64+
65+
* `dev` — run locally
66+
* `build` — production build
67+
* `preview` — preview built app
68+
69+
---
70+
71+
## 📜 License
72+
73+
**MIT License**
74+
75+
* ✅ Free to use, modify, distribute
76+
* ✅ Great for portfolio/demo use
77+
* ❌ No warranty

docs/screenshots/home.png

205 KB
Loading

docs/screenshots/tree.png

270 KB
Loading

index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!DOCTYPE html>
2+
<html lang="">
3+
<head>
4+
<meta charset="UTF-8">
5+
<link rel="icon" href="/favicon.ico">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<title>Vite App</title>
8+
</head>
9+
<body>
10+
<div id="app"></div>
11+
<script type="module" src="/src/main.js"></script>
12+
</body>
13+
</html>

jsconfig.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"compilerOptions": {
3+
"paths": {
4+
"@/*": ["./src/*"]
5+
}
6+
},
7+
"exclude": ["node_modules", "dist"]
8+
}

0 commit comments

Comments
 (0)