Initial commit: Nextcloud Notes Tauri app with WYSIWYG editor

Features:
- WYSIWYG markdown editor with TipTap
- Manual save with unsaved changes indicator
- Auto-title derivation from first line (with manual override)
- Manual sync button with visual feedback
- Auto-sync every 5 minutes
- Full formatting toolbar (bold, italic, headings, lists, code)
- Note creation, editing, deletion
- Search and favorites filter
- Cross-platform desktop app built with Tauri + React + TypeScript
This commit is contained in:
drelich
2026-03-16 23:49:51 +01:00
commit 2ad076c052
47 changed files with 5294 additions and 0 deletions

121
src/index.css Normal file
View File

@@ -0,0 +1,121 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
/* TipTap Editor Styles */
.ProseMirror {
min-height: 100%;
}
.ProseMirror:focus {
outline: none;
}
.ProseMirror h1 {
font-size: 2em;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.ProseMirror h2 {
font-size: 1.5em;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.ProseMirror h3 {
font-size: 1.25em;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.ProseMirror p {
margin-bottom: 0.5em;
}
.ProseMirror strong {
font-weight: bold;
}
.ProseMirror em {
font-style: italic;
}
.ProseMirror s {
text-decoration: line-through;
}
.ProseMirror u {
text-decoration: underline;
}
.ProseMirror code {
background-color: #f3f4f6;
padding: 0.125rem 0.25rem;
border-radius: 0.25rem;
font-family: 'Courier New', monospace;
font-size: 0.9em;
}
.ProseMirror pre {
background-color: #1f2937;
color: #f3f4f6;
padding: 1rem;
border-radius: 0.5rem;
overflow-x: auto;
margin: 1em 0;
}
.ProseMirror pre code {
background-color: transparent;
padding: 0;
color: inherit;
}
.ProseMirror ul,
.ProseMirror ol {
padding-left: 1.5rem;
margin: 0.5em 0;
}
.ProseMirror ul {
list-style-type: disc;
}
.ProseMirror ol {
list-style-type: decimal;
}
.ProseMirror li {
margin: 0.25em 0;
}
.ProseMirror blockquote {
border-left: 3px solid #d1d5db;
padding-left: 1rem;
margin: 1em 0;
color: #6b7280;
}
.ProseMirror hr {
border: none;
border-top: 2px solid #e5e7eb;
margin: 2em 0;
}