feat: integrate @tailwindcss/typography and enhance folder picker functionality

- Added @tailwindcss/typography dependency to package.json and tailwind.config.js.
- Updated FolderPicker.vue to include additional properties (isGitRepo, hasDocuments) for directories.
- Enhanced Sidebar.vue with folder creation and document handling features, including drag-and-drop functionality.
- Implemented createFolder and moveDocument mutations in gql.ts for managing folder and document operations.
- Added logic to handle folder creation and document creation prompts in Sidebar.vue.
- Updated the layout and interactions in Sidebar.vue to improve user experience.
This commit is contained in:
Björn Blomberg
2026-04-13 10:55:02 +02:00
parent 376b946e73
commit a46d56e2fc
15 changed files with 980 additions and 240 deletions

View File

@@ -14,6 +14,9 @@ type Query {
# List documents under an optional path prefix.
documents(prefix: String): [DocumentMeta!]!
# List all relative folder paths in the repository.
folders: [String!]!
# Commit history for a document.
history(slug: String!): [CommitEntry!]!
@@ -25,6 +28,9 @@ type Query {
# Whether the current storage path has uncommitted files.
repoStatus: RepoStatus!
# List images next to a document.
images(slug: String!): [ImageFile!]!
}
type Mutation {
@@ -57,6 +63,15 @@ type Mutation {
# Commit all uncommitted files in the storage path.
initCommit(message: String!): Boolean!
# Delete an image file.
deleteImage(slug: String!, filename: String!): Boolean!
# Create a new folder (directory) at the specified path.
createFolder(path: String!): Boolean!
# Move a document from one location to another.
moveDocument(oldSlug: String!, newSlug: String!): Boolean!
}
# ── Types ──────────────────────────────────────────────────────────────────────
@@ -79,8 +94,10 @@ type LDAPConfig {
}
type ServerDirectory {
name: String!
path: String!
name: String!
path: String!
isGitRepo: Boolean!
hasDocuments: Boolean!
}
type Document {
@@ -114,6 +131,12 @@ type RepoStatus {
hasUncommitted: Boolean!
}
type ImageFile {
name: String!
url: String!
size: Int!
}
# ── Inputs ─────────────────────────────────────────────────────────────────────
input SetupInput {