From e1e2ceae47f9b36b87155ca70bdd41e2cd10a942 Mon Sep 17 00:00:00 2001 From: Hoai Tong Xuan Date: Fri, 24 Jul 2026 09:28:46 +0700 Subject: [PATCH] Revert "Develop" --- adapter/adapter.ts | 19 +- adapter/localforage/index.ts | 19 +- adapter/turso/index.ts | 128 +--- .../migrations/0005_tired_king_bedlam.sql | 21 - .../turso/migrations/meta/0005_snapshot.json | 304 -------- adapter/turso/migrations/meta/_journal.json | 7 - adapter/turso/models/index.ts | 2 - adapter/turso/models/note-tag.ts | 13 - adapter/turso/models/setting.ts | 1 - adapter/turso/models/tag.ts | 13 - app.vue | 1 - assets/css/crepe.css | 103 +-- assets/svg/alert-square-rounded.svg | 1 - assets/svg/cloud-upload.svg | 1 - assets/svg/cloud.svg | 1 - assets/svg/file-arrow-right.svg | 9 - assets/svg/fingerprint.svg | 1 - assets/svg/history.svg | 7 - assets/svg/tag.svg | 1 - components/AppToast.vue | 98 --- components/ColsPersonal.vue | 14 +- components/editor/crepe/index.vue | 418 +--------- components/editor/tiptap/index.vue | 10 +- components/form/notes/index.vue | 6 +- components/list/folder/index.vue | 6 +- components/list/notes/index.vue | 3 +- components/list/tag/index.vue | 65 -- components/menu/folder/index.vue | 6 +- components/menu/move-note/index.vue | 28 - components/menu/note-tags/index.vue | 29 - components/menu/note/index.vue | 75 +- components/menu/tag/index.vue | 38 - components/modal/alert-set-password/index.vue | 7 +- components/modal/change-folder-name/index.vue | 14 +- .../modal/confirm-change-adapter/index.vue | 8 +- .../modal/confirm-delete-folder/index.vue | 8 +- .../confirm-delete-note-history/index.vue | 39 - components/modal/confirm-delete-tag/index.vue | 42 - components/modal/confirm-e2ee-key/index.vue | 28 +- .../modal/confirm-image-sync-change/index.vue | 36 - .../confirm-restore-note-history/index.vue | 50 -- .../modal/confirm-sample-data/index.vue | 36 - .../modal/export-notes-confirm/index.vue | 9 +- components/modal/image-sync-config/index.vue | 100 --- components/modal/import-notes/index.vue | 11 +- components/modal/insert-image/index.vue | 8 +- components/modal/insert-link/index.vue | 7 +- components/modal/menu-editor/index.vue | 4 +- components/modal/menu-folder/index.vue | 6 +- components/modal/menu-move-note/index.vue | 35 - components/modal/menu-note-tags/index.vue | 40 - components/modal/menu-note/index.vue | 46 +- components/modal/menu-sidebar/index.vue | 17 +- components/modal/menu-tag/index.vue | 36 - components/modal/note-history-diff/index.vue | 95 --- components/modal/note-history/index.vue | 78 -- components/modal/notes-detail/index.vue | 7 +- components/modal/set-password/index.vue | 29 +- components/modal/setting/index.vue | 717 +++++++++--------- components/modal/setting/setting-row.vue | 15 - components/modal/setting/setting-select.vue | 42 - components/modal/sort-note/index.vue | 4 +- components/modal/sync-config/index.vue | 38 - components/modal/tag-color-custom/index.vue | 51 -- components/modal/tag-form/index.vue | 134 ---- components/modal/unlock-notes/index.vue | 9 +- components/navbar/top/index.vue | 589 ++++++-------- .../toolbar/form-notes-format/index.vue | 2 +- components/toolbar/notes/index.vue | 6 +- components/toolbar/tag/index.vue | 39 - composables/useToast.ts | 38 - locales/en.json | 96 +-- locales/vi.json | 104 +-- locales/zhtw.json | 90 +-- migrate/drizzle/drizzle.config.ts | 4 +- migrate/scripts/apply-migrations.ts | 89 --- package.json | 1 - pages/index/index.vue | 620 ++------------- repositories/index.ts | 108 --- repositories/storage.ts | 59 -- repositories/storage.type.ts | 43 -- services/image.ts | 11 - services/main.ts | 143 +--- utils/interact-cols.ts | 6 +- utils/menu.ts | 86 --- utils/mobile-back.ts | 52 -- utils/modal.ts | 55 -- utils/snackbar.ts | 25 +- utils/sync.ts | 68 -- 89 files changed, 800 insertions(+), 4788 deletions(-) delete mode 100644 adapter/turso/migrations/0005_tired_king_bedlam.sql delete mode 100644 adapter/turso/migrations/meta/0005_snapshot.json delete mode 100644 adapter/turso/models/note-tag.ts delete mode 100644 adapter/turso/models/tag.ts delete mode 100644 assets/svg/alert-square-rounded.svg delete mode 100644 assets/svg/cloud-upload.svg delete mode 100644 assets/svg/cloud.svg delete mode 100644 assets/svg/file-arrow-right.svg delete mode 100644 assets/svg/fingerprint.svg delete mode 100644 assets/svg/history.svg delete mode 100644 assets/svg/tag.svg delete mode 100644 components/AppToast.vue delete mode 100644 components/list/tag/index.vue delete mode 100644 components/menu/move-note/index.vue delete mode 100644 components/menu/note-tags/index.vue delete mode 100644 components/menu/tag/index.vue delete mode 100644 components/modal/confirm-delete-note-history/index.vue delete mode 100644 components/modal/confirm-delete-tag/index.vue delete mode 100644 components/modal/confirm-image-sync-change/index.vue delete mode 100644 components/modal/confirm-restore-note-history/index.vue delete mode 100644 components/modal/confirm-sample-data/index.vue delete mode 100644 components/modal/image-sync-config/index.vue delete mode 100644 components/modal/menu-move-note/index.vue delete mode 100644 components/modal/menu-note-tags/index.vue delete mode 100644 components/modal/menu-tag/index.vue delete mode 100644 components/modal/note-history-diff/index.vue delete mode 100644 components/modal/note-history/index.vue delete mode 100644 components/modal/setting/setting-row.vue delete mode 100644 components/modal/setting/setting-select.vue delete mode 100644 components/modal/sync-config/index.vue delete mode 100644 components/modal/tag-color-custom/index.vue delete mode 100644 components/modal/tag-form/index.vue delete mode 100644 components/toolbar/tag/index.vue delete mode 100644 composables/useToast.ts delete mode 100644 migrate/scripts/apply-migrations.ts delete mode 100644 utils/mobile-back.ts diff --git a/adapter/adapter.ts b/adapter/adapter.ts index 92da579..332c831 100644 --- a/adapter/adapter.ts +++ b/adapter/adapter.ts @@ -1,4 +1,4 @@ -import type { FolderType, NoteType, TagType, NoteTagType } from "~/repositories/storage.type"; +import type { FolderType, NoteType } from "~/repositories/storage.type"; class NotasAdapter { async pullFolders(lastSync: number): Promise { @@ -17,23 +17,6 @@ class NotasAdapter { throw new Error("Not implemented"); } - // tags - async pullTags(lastSync: number): Promise { - throw new Error("Not implemented"); - } - - async pushTag(tag: any): Promise { - throw new Error("Not implemented"); - } - - async pullNoteTags(lastSync: number): Promise { - throw new Error("Not implemented"); - } - - async pushNoteTag(noteTag: any): Promise { - throw new Error("Not implemented"); - } - // settings async pushSettings(setting: any): Promise { throw new Error("Not implemented"); diff --git a/adapter/localforage/index.ts b/adapter/localforage/index.ts index f925d5c..6c91475 100644 --- a/adapter/localforage/index.ts +++ b/adapter/localforage/index.ts @@ -1,4 +1,4 @@ -import type { FolderType, NoteType, TagType, NoteTagType } from "~/repositories/storage.type"; +import type { FolderType, NoteType } from "~/repositories/storage.type"; import type NotasAdapter from "../adapter"; class LocalForageAdapter implements NotasAdapter { @@ -20,23 +20,6 @@ class LocalForageAdapter implements NotasAdapter { return {}; } - // tags - async pullTags(lastSync: number): Promise { - return []; - } - - async pushTag(tag: any): Promise { - return {}; - } - - async pullNoteTags(lastSync: number): Promise { - return []; - } - - async pushNoteTag(noteTag: any): Promise { - return {}; - } - // settings async pushSettings(setting: any): Promise { return {}; diff --git a/adapter/turso/index.ts b/adapter/turso/index.ts index 9fcf21b..234ad66 100644 --- a/adapter/turso/index.ts +++ b/adapter/turso/index.ts @@ -3,27 +3,21 @@ import { LibSQLDatabase, drizzle } from "drizzle-orm/libsql"; import { gt } from "drizzle-orm"; import type NotasAdapter from "../adapter"; -import type { FolderType, NoteType, TagType, NoteTagType } from "~/repositories/storage.type"; -import { applySchemaMigrations } from "~/migrate/scripts/apply-migrations"; +import type { FolderType, NoteType } from "~/repositories/storage.type"; import noteModel from "./models/note"; import folderModel from "./models/folder"; import settingModel from "./models/setting"; -import tagModel from "./models/tag"; -import noteTagModel from "./models/note-tag"; class TursoAdapter implements NotasAdapter { private turso: LibSQLDatabase; - private ready: Promise; constructor(config: string) { const configJSON = JSON.parse(config); const client = createClient(configJSON); this.turso = drizzle(client); - this.ready = applySchemaMigrations(client); } async pullFolders(lastSync: number): Promise { - await this.ready; const folders = await this.turso .select() .from(folderModel) @@ -41,7 +35,6 @@ class TursoAdapter implements NotasAdapter { } async pullNotes(lastSync: number): Promise { - await this.ready; const notes = await this.turso .select() .from(noteModel) @@ -63,7 +56,6 @@ class TursoAdapter implements NotasAdapter { } async pushFolder(folder: any): Promise { - await this.ready; return this.turso .insert(folderModel) .values({ @@ -98,7 +90,6 @@ class TursoAdapter implements NotasAdapter { } async pushNote(note: any): Promise { - await this.ready; return this.turso .insert(noteModel) .values({ @@ -144,124 +135,8 @@ class TursoAdapter implements NotasAdapter { }); } - // tags - async pullTags(lastSync: number): Promise { - await this.ready; - const tags = await this.turso - .select() - .from(tagModel) - .where(gt(tagModel.updatedAt, lastSync)) - .all(); - - return tags.map((tag: any) => ({ - id: tag.id, - name: tag.name, - color: tag.color, - lastSync: tag.lastSync, - createdAt: tag.createdAt, - updatedAt: tag.updatedAt, - deletedAt: tag.deletedAt || null, - })); - } - - async pushTag(tag: any): Promise { - await this.ready; - return this.turso - .insert(tagModel) - .values({ - id: tag.id, - name: tag.name, - color: tag.color, - lastSync: tag.lastSync, - createdAt: tag.createdAt, - updatedAt: tag.updatedAt, - deletedAt: tag.deletedAt, - }) - .onConflictDoUpdate({ - target: tagModel.id, - set: { - name: tag.name, - color: tag.color, - lastSync: tag.lastSync, - createdAt: tag.createdAt, - updatedAt: tag.updatedAt, - deletedAt: tag.deletedAt, - }, - }) - .returning({ - id: tagModel.id, - name: tagModel.name, - color: tagModel.color, - lastSync: tagModel.lastSync, - createdAt: tagModel.createdAt, - updatedAt: tagModel.updatedAt, - deletedAt: tagModel.deletedAt, - }) - .catch((err) => { - console.log("pushTag error", err); - }); - } - - async pullNoteTags(lastSync: number): Promise { - await this.ready; - const noteTags = await this.turso - .select() - .from(noteTagModel) - .where(gt(noteTagModel.updatedAt, lastSync)) - .all(); - - return noteTags.map((noteTag: any) => ({ - id: noteTag.id, - noteId: noteTag.noteId, - tagId: noteTag.tagId, - lastSync: noteTag.lastSync, - createdAt: noteTag.createdAt, - updatedAt: noteTag.updatedAt, - deletedAt: noteTag.deletedAt || null, - })); - } - - async pushNoteTag(noteTag: any): Promise { - await this.ready; - return this.turso - .insert(noteTagModel) - .values({ - id: noteTag.id, - noteId: noteTag.noteId, - tagId: noteTag.tagId, - lastSync: noteTag.lastSync, - createdAt: noteTag.createdAt, - updatedAt: noteTag.updatedAt, - deletedAt: noteTag.deletedAt, - }) - .onConflictDoUpdate({ - target: noteTagModel.id, - set: { - noteId: noteTag.noteId, - tagId: noteTag.tagId, - lastSync: noteTag.lastSync, - createdAt: noteTag.createdAt, - updatedAt: noteTag.updatedAt, - deletedAt: noteTag.deletedAt, - }, - }) - .returning({ - id: noteTagModel.id, - noteId: noteTagModel.noteId, - tagId: noteTagModel.tagId, - lastSync: noteTagModel.lastSync, - createdAt: noteTagModel.createdAt, - updatedAt: noteTagModel.updatedAt, - deletedAt: noteTagModel.deletedAt, - }) - .catch((err) => { - console.log("pushNoteTag error", err); - }); - } - // settings async pushSettings(setting: any): Promise { - await this.ready; return this.turso .insert(settingModel) .values({ @@ -289,7 +164,6 @@ class TursoAdapter implements NotasAdapter { }); } async pullSettings(lastSync: number): Promise { - await this.ready; const setting = await this.turso .select() .from(settingModel) diff --git a/adapter/turso/migrations/0005_tired_king_bedlam.sql b/adapter/turso/migrations/0005_tired_king_bedlam.sql deleted file mode 100644 index fbb3026..0000000 --- a/adapter/turso/migrations/0005_tired_king_bedlam.sql +++ /dev/null @@ -1,21 +0,0 @@ -CREATE TABLE `note_tags` ( - `id` text PRIMARY KEY NOT NULL, - `noteId` text, - `tagId` text, - `lastSync` integer, - `createdAt` integer, - `updatedAt` integer, - `deletedAt` integer -); ---> statement-breakpoint -CREATE TABLE `tags` ( - `id` text PRIMARY KEY NOT NULL, - `name` text, - `color` text, - `lastSync` integer, - `createdAt` integer, - `updatedAt` integer, - `deletedAt` integer -); ---> statement-breakpoint -ALTER TABLE settings ADD `schemaVersion` integer; \ No newline at end of file diff --git a/adapter/turso/migrations/meta/0005_snapshot.json b/adapter/turso/migrations/meta/0005_snapshot.json deleted file mode 100644 index 26b5797..0000000 --- a/adapter/turso/migrations/meta/0005_snapshot.json +++ /dev/null @@ -1,304 +0,0 @@ -{ - "version": "5", - "dialect": "sqlite", - "id": "ef267c27-e8b1-471c-be5f-b351c6fbc83b", - "prevId": "fd40e6ed-735b-4ce9-b691-1a1328bbd735", - "tables": { - "folders": { - "name": "folders", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "lastSync": { - "name": "lastSync", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "createdAt": { - "name": "createdAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "deletedAt": { - "name": "deletedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "note_tags": { - "name": "note_tags", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "noteId": { - "name": "noteId", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tagId": { - "name": "tagId", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "lastSync": { - "name": "lastSync", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "createdAt": { - "name": "createdAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "deletedAt": { - "name": "deletedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "notes": { - "name": "notes", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "folderId": { - "name": "folderId", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "content": { - "name": "content", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "isPinned": { - "name": "isPinned", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "isLocked": { - "name": "isLocked", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "lastSync": { - "name": "lastSync", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "createdAt": { - "name": "createdAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "deletedAt": { - "name": "deletedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "deleteCompletelyAt": { - "name": "deleteCompletelyAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "settings": { - "name": "settings", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "lastSync": { - "name": "lastSync", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "schemaVersion": { - "name": "schemaVersion", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "tags": { - "name": "tags", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "color": { - "name": "color", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "lastSync": { - "name": "lastSync", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "createdAt": { - "name": "createdAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "deletedAt": { - "name": "deletedAt", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - } -} \ No newline at end of file diff --git a/adapter/turso/migrations/meta/_journal.json b/adapter/turso/migrations/meta/_journal.json index b90b18b..d06e391 100644 --- a/adapter/turso/migrations/meta/_journal.json +++ b/adapter/turso/migrations/meta/_journal.json @@ -36,13 +36,6 @@ "when": 1715500976113, "tag": "0004_legal_black_tom", "breakpoints": true - }, - { - "idx": 5, - "version": "5", - "when": 1784646172086, - "tag": "0005_tired_king_bedlam", - "breakpoints": true } ] } \ No newline at end of file diff --git a/adapter/turso/models/index.ts b/adapter/turso/models/index.ts index 4e15d60..13e627f 100644 --- a/adapter/turso/models/index.ts +++ b/adapter/turso/models/index.ts @@ -1,5 +1,3 @@ export * from './folder'; export * from './note'; export * from './setting'; -export * from './tag'; -export * from './note-tag'; diff --git a/adapter/turso/models/note-tag.ts b/adapter/turso/models/note-tag.ts deleted file mode 100644 index b240672..0000000 --- a/adapter/turso/models/note-tag.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { text, sqliteTable, integer } from "drizzle-orm/sqlite-core"; - -const noteTagModel = sqliteTable("note_tags", { - id: text("id").primaryKey(), // `${noteId}:${tagId}` - noteId: text("noteId"), - tagId: text("tagId"), - lastSync: integer("lastSync"), - createdAt: integer("createdAt"), - updatedAt: integer("updatedAt"), - deletedAt: integer("deletedAt"), -}); - -export default noteTagModel; diff --git a/adapter/turso/models/setting.ts b/adapter/turso/models/setting.ts index e5b2a38..c975f55 100644 --- a/adapter/turso/models/setting.ts +++ b/adapter/turso/models/setting.ts @@ -5,7 +5,6 @@ const settingModel = sqliteTable("settings", { password: text("password"), lastSync: integer("lastSync"), updatedAt: integer("updatedAt"), - schemaVersion: integer("schemaVersion"), }); export default settingModel; diff --git a/adapter/turso/models/tag.ts b/adapter/turso/models/tag.ts deleted file mode 100644 index 480c3a7..0000000 --- a/adapter/turso/models/tag.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { text, sqliteTable, integer } from "drizzle-orm/sqlite-core"; - -const tagModel = sqliteTable("tags", { - id: text("id").primaryKey(), - name: text("name"), - color: text("color"), - lastSync: integer("lastSync"), - createdAt: integer("createdAt"), - updatedAt: integer("updatedAt"), - deletedAt: integer("deletedAt"), -}); - -export default tagModel; diff --git a/app.vue b/app.vue index 23d91b7..e09851b 100644 --- a/app.vue +++ b/app.vue @@ -12,5 +12,4 @@ onMounted(() => { diff --git a/assets/css/crepe.css b/assets/css/crepe.css index 563817c..d2a3e82 100644 --- a/assets/css/crepe.css +++ b/assets/css/crepe.css @@ -22,14 +22,12 @@ --crepe-color-selected: oklch(var(--p)); --crepe-color-inline-area: #2b2b2b; - --crepe-font-title: - system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, - Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; - --crepe-font-default: - system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, - Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; - --crepe-font-code: - "Space Mono", Fira Code, Menlo, Monaco, "Courier New", Courier, monospace; + --crepe-font-title: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + --crepe-font-default: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + --crepe-font-code: "Space Mono", Fira Code, Menlo, Monaco, "Courier New", + Courier, monospace; /* --crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, 0.3), @@ -124,59 +122,6 @@ height: 100px !important; } -/* image sync badge */ -.milkdown .milkdown-image-block { - position: relative; -} -.image-sync-badge { - position: absolute; - top: 8px; - right: 8px; - z-index: 20; - cursor: pointer; - width: 26px; - height: 26px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - transition: - transform 0.15s, - opacity 0.15s; - opacity: 0.9; - border: none; - padding: 0; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); -} -.image-sync-badge:hover { - opacity: 1; - transform: scale(1.12); -} -.image-sync-badge--pending { - background: rgba(0, 0, 0, 0.55); -} -.image-sync-badge--failed { - background: rgba(0, 0, 0, 0.55); -} -.image-sync-badge--syncing { - background: rgba(0, 0, 0, 0.55); - cursor: default; - animation: sync-badge-spin 1s linear infinite; -} -.image-sync-badge svg { - width: 18px; - height: 18px; - color: #f59e0b; -} -@keyframes sync-badge-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - /* image */ .milkdown .milkdown-image-block .image-edit { border-radius: 0.5rem !important; @@ -196,44 +141,11 @@ align-items: center; justify-content: center; } -.milkdown .milkdown-image-block .caption-input { - font-size: 0.875rem !important; - font-weight: 600 !important; - font-style: italic !important; -} /* Prevent scroll when resizing image on mobile */ .milkdown .milkdown-image-block .image-resize-handle { touch-action: none; } -/* Image loading placeholder — hide broken icon while blob URL is resolving */ -.milkdown .milkdown-image-block img { - transition: opacity 0.3s ease; -} -.milkdown .milkdown-image-block img[src^="opennotas://"] { - opacity: 0; -} -.milkdown .milkdown-image-block > .image-wrapper:has(img[src^="opennotas://"]) { - min-height: 120px; - border-radius: 8px; - background-image: linear-gradient( - 90deg, - oklch(var(--b2)) 25%, - oklch(var(--b3)) 50%, - oklch(var(--b2)) 75% - ); - background-size: 200% 100%; - animation: img-skeleton-shimmer 1.5s ease-in-out infinite; -} -@keyframes img-skeleton-shimmer { - 0% { - background-position: 200% 0; - } - 100% { - background-position: -200% 0; - } -} - /* Link preview */ .milkdown .milkdown-link-preview .link-preview { height: auto !important; @@ -241,8 +153,7 @@ border: 1px solid var(--neutral) !important; } .milkdown .milkdown-link-edit .link-edit { - height: 42px !important; - /* width: 250px !important; */ + height: auto !important; padding: 0.5rem !important; border: 1px solid var(--neutral) !important; } diff --git a/assets/svg/alert-square-rounded.svg b/assets/svg/alert-square-rounded.svg deleted file mode 100644 index 1726515..0000000 --- a/assets/svg/alert-square-rounded.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/svg/cloud-upload.svg b/assets/svg/cloud-upload.svg deleted file mode 100644 index 300583e..0000000 --- a/assets/svg/cloud-upload.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/svg/cloud.svg b/assets/svg/cloud.svg deleted file mode 100644 index 06fb5f1..0000000 --- a/assets/svg/cloud.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/svg/file-arrow-right.svg b/assets/svg/file-arrow-right.svg deleted file mode 100644 index 09b720a..0000000 --- a/assets/svg/file-arrow-right.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/assets/svg/fingerprint.svg b/assets/svg/fingerprint.svg deleted file mode 100644 index 4ea0b87..0000000 --- a/assets/svg/fingerprint.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/svg/history.svg b/assets/svg/history.svg deleted file mode 100644 index 6b61a36..0000000 --- a/assets/svg/history.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/assets/svg/tag.svg b/assets/svg/tag.svg deleted file mode 100644 index a750df5..0000000 --- a/assets/svg/tag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/components/AppToast.vue b/components/AppToast.vue deleted file mode 100644 index 0904a4a..0000000 --- a/components/AppToast.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - diff --git a/components/ColsPersonal.vue b/components/ColsPersonal.vue index 11ffd70..a76e150 100644 --- a/components/ColsPersonal.vue +++ b/components/ColsPersonal.vue @@ -1,6 +1,5 @@