From b3ac11a85eaeeb08295861e060513629c6c1a564 Mon Sep 17 00:00:00 2001 From: Justin Visser Date: Tue, 3 Mar 2026 16:16:36 +0100 Subject: [PATCH] initial release --- backend/app/database.py | 109 ++ backend/app/main.py | 4 + backend/app/models.py | 51 +- backend/app/routes/pages.py | 104 ++ backend/app/routes/segments.py | 9 +- backend/app/routes/team.py | 56 + backend/app/services/page_service.py | 149 ++ backend/app/services/segment_service.py | 30 +- backend/app/services/team_service.py | 91 ++ frontend/index.html | 1 + frontend/package-lock.json | 1396 ++++++++++++++++- frontend/package.json | 8 +- frontend/public/favicon.png | Bin 0 -> 99366 bytes frontend/src/App.vue | 6 +- frontend/src/assets/logo.png | Bin 0 -> 99366 bytes .../src/components/admin/AddSegmentModal.vue | 95 +- .../src/components/admin/AssetUploader.vue | 62 +- .../src/components/admin/RichTextEditor.vue | 243 +++ .../src/components/admin/SegmentEditor.vue | 65 +- frontend/src/components/layout/AppShell.vue | 252 +-- .../src/components/layout/MobileHeader.vue | 129 -- frontend/src/components/layout/Sidebar.vue | 411 +++++ frontend/src/components/layout/SidebarNav.vue | 52 - .../components/segments/GallerySegment.vue | 70 +- .../src/components/segments/PdfSegment.vue | 2 +- .../src/components/segments/SegmentList.vue | 171 +- .../src/components/segments/TeamSegment.vue | 31 + frontend/src/composables/usePages.ts | 110 ++ frontend/src/composables/useSegments.ts | 29 +- frontend/src/composables/useTeamMembers.ts | 57 + frontend/src/main.ts | 3 +- frontend/src/router/index.ts | 22 + frontend/src/style.css | 14 + frontend/src/types/segment.ts | 23 +- frontend/src/views/HomePage.vue | 165 -- frontend/src/views/PageView.vue | 182 +++ frontend/src/views/TeamPage.vue | 116 ++ 37 files changed, 3649 insertions(+), 669 deletions(-) create mode 100644 backend/app/routes/pages.py create mode 100644 backend/app/routes/team.py create mode 100644 backend/app/services/page_service.py create mode 100644 backend/app/services/team_service.py create mode 100644 frontend/public/favicon.png create mode 100644 frontend/src/assets/logo.png create mode 100644 frontend/src/components/admin/RichTextEditor.vue delete mode 100644 frontend/src/components/layout/MobileHeader.vue create mode 100644 frontend/src/components/layout/Sidebar.vue delete mode 100644 frontend/src/components/layout/SidebarNav.vue create mode 100644 frontend/src/components/segments/TeamSegment.vue create mode 100644 frontend/src/composables/usePages.ts create mode 100644 frontend/src/composables/useTeamMembers.ts create mode 100644 frontend/src/router/index.ts delete mode 100644 frontend/src/views/HomePage.vue create mode 100644 frontend/src/views/PageView.vue create mode 100644 frontend/src/views/TeamPage.vue diff --git a/backend/app/database.py b/backend/app/database.py index 86ca965..2426afb 100644 --- a/backend/app/database.py +++ b/backend/app/database.py @@ -5,6 +5,7 @@ from pathlib import Path def init_db(db_path: Path) -> None: db_path.parent.mkdir(parents=True, exist_ok=True) conn = sqlite3.connect(db_path) + conn.row_factory = sqlite3.Row try: conn.execute("PRAGMA journal_mode=WAL") conn.execute("PRAGMA busy_timeout=5000") @@ -14,6 +15,19 @@ def init_db(db_path: Path) -> None: value TEXT NOT NULL ) """) + conn.execute(""" + CREATE TABLE IF NOT EXISTS pages ( + id TEXT PRIMARY KEY, + name TEXT NOT NULL, + slug TEXT NOT NULL UNIQUE, + sort_order INTEGER NOT NULL, + is_system INTEGER NOT NULL DEFAULT 0, + is_hidden INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL + ) + """) + conn.execute("CREATE INDEX IF NOT EXISTS idx_pages_order ON pages(sort_order)") conn.execute(""" CREATE TABLE IF NOT EXISTS segments ( id TEXT PRIMARY KEY, @@ -27,11 +41,106 @@ def init_db(db_path: Path) -> None: ) """) conn.execute("CREATE INDEX IF NOT EXISTS idx_segments_order ON segments(sort_order)") + conn.execute(""" + CREATE TABLE IF NOT EXISTS team_members ( + id TEXT PRIMARY KEY, + name TEXT NOT NULL, + student_number TEXT NOT NULL, + sort_order INTEGER NOT NULL, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL + ) + """) + + # Migrate existing table schemas (add columns if missing) + _migrate_columns(conn) + + # Remove legacy segment types + conn.execute("DELETE FROM segments WHERE type IN ('link', 'team')") + conn.commit() + + # Ensure default pages exist + _migrate_default_page(conn) + _ensure_team_page(conn) finally: conn.close() +def _migrate_columns(conn: sqlite3.Connection) -> None: + """Add any missing columns to existing tables.""" + seg_cols = [row["name"] for row in conn.execute("PRAGMA table_info(segments)").fetchall()] + if "page_id" not in seg_cols: + conn.execute("ALTER TABLE segments ADD COLUMN page_id TEXT REFERENCES pages(id)") + + page_cols = [row["name"] for row in conn.execute("PRAGMA table_info(pages)").fetchall()] + if "is_system" not in page_cols: + conn.execute("ALTER TABLE pages ADD COLUMN is_system INTEGER NOT NULL DEFAULT 0") + if "is_hidden" not in page_cols: + conn.execute("ALTER TABLE pages ADD COLUMN is_hidden INTEGER NOT NULL DEFAULT 0") + + +def _migrate_default_page(conn: sqlite3.Connection) -> None: + """Ensure a Home page exists and all segments have a page_id.""" + from datetime import UTC, datetime + from uuid import uuid4 + + home_id: str | None = None + home = conn.execute("SELECT id FROM pages WHERE slug = 'home'").fetchone() + if not home: + # Only create Home if no pages exist at all + page_count = conn.execute( + "SELECT COUNT(*) AS cnt FROM pages WHERE is_system = 0" + ).fetchone()["cnt"] + if page_count == 0: + now = datetime.now(UTC).isoformat() + default_id = str(uuid4()) + conn.execute( + "INSERT INTO pages" + " (id, name, slug, sort_order, is_system, is_hidden, created_at, updated_at)" + " VALUES (?, ?, ?, ?, 1, 0, ?, ?)", + (default_id, "Home", "home", 0, now, now), + ) + conn.commit() + home_id = default_id + else: + first = conn.execute( + "SELECT id FROM pages WHERE is_system = 0 ORDER BY sort_order ASC LIMIT 1" + ).fetchone() + home_id = first["id"] if first else None + else: + home_id = home["id"] + + if home_id: + conn.execute("UPDATE segments SET page_id = ? WHERE page_id IS NULL", (home_id,)) + conn.commit() + + conn.execute("UPDATE pages SET is_system = 1 WHERE slug = 'home'") + conn.commit() + + +def _ensure_team_page(conn: sqlite3.Connection) -> None: + """Ensure the system Team page exists (always pinned last).""" + from datetime import UTC, datetime + from uuid import uuid4 + + existing = conn.execute("SELECT id FROM pages WHERE slug = 'team'").fetchone() + if existing: + # Make sure it's marked as system + conn.execute("UPDATE pages SET is_system = 1 WHERE slug = 'team'") + conn.commit() + return + + now = datetime.now(UTC).isoformat() + conn.execute( + "INSERT INTO pages" + " (id, name, slug, sort_order, is_system, is_hidden, created_at, updated_at)" + " VALUES (?, ?, ?, ?, 1, 0, ?, ?)", + (str(uuid4()), "Team", "team", 9999, now, now), + ) + conn.commit() + + def get_connection(db_path: Path) -> sqlite3.Connection: conn = sqlite3.connect(db_path) conn.row_factory = sqlite3.Row diff --git a/backend/app/main.py b/backend/app/main.py index 4bb9d75..5e99f6b 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -9,8 +9,10 @@ from app.config import get_settings from app.database import init_db from app.routes.assets import router as assets_router from app.routes.auth import router as auth_router +from app.routes.pages import router as pages_router from app.routes.segments import router as segments_router from app.routes.site import router as site_router +from app.routes.team import router as team_router @asynccontextmanager @@ -25,9 +27,11 @@ async def lifespan(_app: FastAPI) -> AsyncIterator[None]: app = FastAPI(title="Handin Website", lifespan=lifespan) app.include_router(auth_router) +app.include_router(pages_router) app.include_router(segments_router) app.include_router(site_router) app.include_router(assets_router) +app.include_router(team_router) @app.get("/api/health") diff --git a/backend/app/models.py b/backend/app/models.py index 32299fd..43aa10d 100644 --- a/backend/app/models.py +++ b/backend/app/models.py @@ -12,7 +12,7 @@ class SegmentType(StrEnum): AUDIO = "audio" IFRAME = "iframe" GALLERY = "gallery" - LINK = "link" + TEAM = "team" class Segment(BaseModel): @@ -22,13 +22,15 @@ class Segment(BaseModel): title: str content: str = "" metadata: dict[str, object] = Field(default_factory=dict) + page_id: str | None = None created_at: datetime updated_at: datetime class SegmentCreateRequest(BaseModel): type: SegmentType - title: str + title: str = "" + page_id: str | None = None content: str = "" metadata: dict[str, object] = Field(default_factory=dict) @@ -54,9 +56,54 @@ class SegmentResponse(BaseModel): title: str content: str metadata: dict[str, object] + page_id: str | None = None created_at: datetime updated_at: datetime class SiteResponse(BaseModel): title: str + + +class Page(BaseModel): + id: str + name: str + slug: str + sort_order: int + is_system: bool = False + is_hidden: bool = False + created_at: datetime + updated_at: datetime + + +class PageCreateRequest(BaseModel): + name: str + slug: str + + +class PageUpdateRequest(BaseModel): + name: str | None = None + slug: str | None = None + is_hidden: bool | None = None + + +class PageReorderRequest(BaseModel): + page_ids: list[str] + + +class TeamMember(BaseModel): + id: str + name: str + student_number: str + sort_order: int + created_at: datetime + updated_at: datetime + + +class TeamMemberCreateRequest(BaseModel): + name: str + student_number: str + + +class TeamMemberReorderRequest(BaseModel): + member_ids: list[str] diff --git a/backend/app/routes/pages.py b/backend/app/routes/pages.py new file mode 100644 index 0000000..6e45a65 --- /dev/null +++ b/backend/app/routes/pages.py @@ -0,0 +1,104 @@ +import threading +from pathlib import Path +from typing import Annotated + +from fastapi import APIRouter, Depends, HTTPException, Response + +from app.auth import require_admin +from app.config import get_settings +from app.database import init_db +from app.models import ( + Page, + PageCreateRequest, + PageReorderRequest, + PageUpdateRequest, + SegmentResponse, +) +from app.services import page_service, segment_service + +router = APIRouter(prefix="/api/pages", tags=["pages"]) + +_write_lock = threading.Lock() + + +def get_db_path() -> Path: + data_dir = get_settings().data_dir + db_path = Path(data_dir) / "handin.db" + init_db(db_path) + return db_path + + +DbPath = Annotated[Path, Depends(get_db_path)] +Admin = Annotated[None, Depends(require_admin)] + + +@router.get("/") +def list_pages(db_path: DbPath) -> list[Page]: + return page_service.list_pages(db_path) + + +@router.post("/", status_code=201) +def create_page(request: PageCreateRequest, _: Admin, db_path: DbPath) -> Page: + with _write_lock: + # Check slug uniqueness + existing = page_service.get_page_by_slug(db_path, request.slug) + if existing: + raise HTTPException(status_code=409, detail="A page with this slug already exists") + return page_service.create_page(db_path, request) + + +@router.put("/reorder") +def reorder_pages(request: PageReorderRequest, _: Admin, db_path: DbPath) -> list[Page]: + with _write_lock: + try: + return page_service.reorder_pages(db_path, request.page_ids) + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) from e + + +@router.get("/{page_id}") +def get_page(page_id: str, db_path: DbPath) -> Page: + page = page_service.get_page(db_path, page_id) + if page is None: + raise HTTPException(status_code=404, detail="Page not found") + return page + + +@router.get("/by-slug/{slug}") +def get_page_by_slug(slug: str, db_path: DbPath) -> Page: + page = page_service.get_page_by_slug(db_path, slug) + if page is None: + raise HTTPException(status_code=404, detail="Page not found") + return page + + +@router.patch("/{page_id}") +def update_page(page_id: str, request: PageUpdateRequest, _: Admin, db_path: DbPath) -> Page: + if request.slug is not None: + existing = page_service.get_page_by_slug(db_path, request.slug) + if existing and existing.id != page_id: + raise HTTPException(status_code=409, detail="A page with this slug already exists") + page = page_service.update_page(db_path, page_id, request) + if page is None: + raise HTTPException(status_code=404, detail="Page not found") + return page + + +@router.delete("/{page_id}", status_code=204) +def delete_page(page_id: str, _: Admin, db_path: DbPath) -> Response: + deleted, error = page_service.delete_page(db_path, page_id) + if not deleted: + if error == "not_found": + raise HTTPException(status_code=404, detail="Page not found") + if error == "system_page": + raise HTTPException(status_code=403, detail="System pages cannot be deleted") + return Response(status_code=204) + + +@router.get("/{page_id}/segments") +def list_page_segments(page_id: str, db_path: DbPath) -> list[SegmentResponse]: + page = page_service.get_page(db_path, page_id) + if page is None: + raise HTTPException(status_code=404, detail="Page not found") + segments = segment_service.list_segments(db_path, page_id=page_id) + return [SegmentResponse.model_validate(s.model_dump()) for s in segments] diff --git a/backend/app/routes/segments.py b/backend/app/routes/segments.py index e2a150b..eefcdac 100644 --- a/backend/app/routes/segments.py +++ b/backend/app/routes/segments.py @@ -3,7 +3,7 @@ from pathlib import Path from typing import Annotated from uuid import UUID -from fastapi import APIRouter, Depends, HTTPException, Response +from fastapi import APIRouter, Depends, HTTPException, Query, Response from app.auth import require_admin from app.config import get_settings @@ -34,8 +34,11 @@ Admin = Annotated[None, Depends(require_admin)] @router.get("/") -def list_segments(db_path: DbPath) -> list[SegmentResponse]: - segments = segment_service.list_segments(db_path) +def list_segments( + db_path: DbPath, + page_id: Annotated[str | None, Query()] = None, +) -> list[SegmentResponse]: + segments = segment_service.list_segments(db_path, page_id=page_id) return [SegmentResponse.model_validate(s.model_dump()) for s in segments] diff --git a/backend/app/routes/team.py b/backend/app/routes/team.py new file mode 100644 index 0000000..197c7ac --- /dev/null +++ b/backend/app/routes/team.py @@ -0,0 +1,56 @@ +import threading +from pathlib import Path +from typing import Annotated + +from fastapi import APIRouter, Depends, HTTPException, Response + +from app.auth import require_admin +from app.config import get_settings +from app.database import init_db +from app.models import TeamMember, TeamMemberCreateRequest, TeamMemberReorderRequest +from app.services import team_service + +router = APIRouter(prefix="/api/team", tags=["team"]) + +_write_lock = threading.Lock() + + +def get_db_path() -> Path: + data_dir = get_settings().data_dir + db_path = Path(data_dir) / "handin.db" + init_db(db_path) + return db_path + + +DbPath = Annotated[Path, Depends(get_db_path)] +Admin = Annotated[None, Depends(require_admin)] + + +@router.get("/") +def list_members(db_path: DbPath) -> list[TeamMember]: + return team_service.list_members(db_path) + + +@router.post("/", status_code=201) +def add_member(request: TeamMemberCreateRequest, _: Admin, db_path: DbPath) -> TeamMember: + with _write_lock: + return team_service.add_member(db_path, request) + + +@router.put("/reorder") +def reorder_members( + request: TeamMemberReorderRequest, _: Admin, db_path: DbPath +) -> list[TeamMember]: + with _write_lock: + try: + return team_service.reorder_members(db_path, request.member_ids) + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) from e + + +@router.delete("/{member_id}", status_code=204) +def delete_member(member_id: str, _: Admin, db_path: DbPath) -> Response: + deleted = team_service.delete_member(db_path, member_id) + if not deleted: + raise HTTPException(status_code=404, detail="Team member not found") + return Response(status_code=204) diff --git a/backend/app/services/page_service.py b/backend/app/services/page_service.py new file mode 100644 index 0000000..4df4afb --- /dev/null +++ b/backend/app/services/page_service.py @@ -0,0 +1,149 @@ +import sqlite3 +from datetime import UTC, datetime +from pathlib import Path +from uuid import uuid4 + +from app.database import get_connection +from app.models import Page, PageCreateRequest, PageUpdateRequest + + +def _row_to_page(row: sqlite3.Row) -> Page: + return Page( + id=row["id"], + name=row["name"], + slug=row["slug"], + sort_order=row["sort_order"], + is_system=bool(row["is_system"]), + is_hidden=bool(row["is_hidden"]), + created_at=datetime.fromisoformat(row["created_at"]), + updated_at=datetime.fromisoformat(row["updated_at"]), + ) + + +def list_pages(db_path: Path) -> list[Page]: + conn = get_connection(db_path) + try: + rows = conn.execute( + "SELECT * FROM pages ORDER BY is_system ASC, sort_order ASC" + ).fetchall() + return [_row_to_page(row) for row in rows] + finally: + conn.close() + + +def get_page(db_path: Path, page_id: str) -> Page | None: + conn = get_connection(db_path) + try: + row = conn.execute("SELECT * FROM pages WHERE id = ?", (page_id,)).fetchone() + return _row_to_page(row) if row else None + finally: + conn.close() + + +def get_page_by_slug(db_path: Path, slug: str) -> Page | None: + conn = get_connection(db_path) + try: + row = conn.execute("SELECT * FROM pages WHERE slug = ?", (slug,)).fetchone() + return _row_to_page(row) if row else None + finally: + conn.close() + + +def create_page(db_path: Path, request: PageCreateRequest) -> Page: + conn = get_connection(db_path) + try: + row = conn.execute( + "SELECT COALESCE(MAX(sort_order) + 1, 0) AS next_order FROM pages WHERE is_system = 0" + ).fetchone() + sort_order: int = row["next_order"] if row else 0 + + page_id = str(uuid4()) + now = datetime.now(UTC).isoformat() + + conn.execute( + "INSERT INTO pages" + " (id, name, slug, sort_order, is_system, is_hidden, created_at, updated_at)" + " VALUES (?, ?, ?, ?, 0, 0, ?, ?)", + (page_id, request.name, request.slug, sort_order, now, now), + ) + conn.commit() + + return Page( + id=page_id, + name=request.name, + slug=request.slug, + sort_order=sort_order, + is_system=False, + is_hidden=False, + created_at=datetime.fromisoformat(now), + updated_at=datetime.fromisoformat(now), + ) + finally: + conn.close() + + +def update_page(db_path: Path, page_id: str, request: PageUpdateRequest) -> Page | None: + conn = get_connection(db_path) + try: + existing = conn.execute("SELECT * FROM pages WHERE id = ?", (page_id,)).fetchone() + if existing is None: + return None + + now = datetime.now(UTC).isoformat() + name = request.name if request.name is not None else existing["name"] + slug = request.slug if request.slug is not None else existing["slug"] + is_hidden = ( + int(request.is_hidden) if request.is_hidden is not None else existing["is_hidden"] + ) + + conn.execute( + "UPDATE pages SET name = ?, slug = ?, is_hidden = ?, updated_at = ? WHERE id = ?", + (name, slug, is_hidden, now, page_id), + ) + conn.commit() + return get_page(db_path, page_id) + finally: + conn.close() + + +def delete_page(db_path: Path, page_id: str) -> tuple[bool, str | None]: + """Cascade-deletes the page and all its segments.""" + conn = get_connection(db_path) + try: + existing = conn.execute("SELECT * FROM pages WHERE id = ?", (page_id,)).fetchone() + if existing is None: + return False, "not_found" + if existing["is_system"]: + return False, "system_page" + + conn.execute("DELETE FROM segments WHERE page_id = ?", (page_id,)) + conn.execute("DELETE FROM pages WHERE id = ?", (page_id,)) + conn.commit() + return True, None + finally: + conn.close() + + +def reorder_pages(db_path: Path, page_ids: list[str]) -> list[Page]: + """Reorders only non-system pages.""" + conn = get_connection(db_path) + try: + existing_ids = { + row["id"] + for row in conn.execute("SELECT id FROM pages WHERE is_system = 0").fetchall() + } + requested_ids = set(page_ids) + missing = requested_ids - existing_ids + if missing: + raise ValueError(f"Page IDs not found: {missing}") + + now = datetime.now(UTC).isoformat() + for index, pid in enumerate(page_ids): + conn.execute( + "UPDATE pages SET sort_order = ?, updated_at = ? WHERE id = ?", + (index, now, pid), + ) + conn.commit() + return list_pages(db_path) + finally: + conn.close() diff --git a/backend/app/services/segment_service.py b/backend/app/services/segment_service.py index dae3cca..0e8c985 100644 --- a/backend/app/services/segment_service.py +++ b/backend/app/services/segment_service.py @@ -16,6 +16,7 @@ def _row_to_segment(row: sqlite3.Row) -> Segment: title=row["title"], content=row["content"], metadata=json.loads(row["metadata"]), + page_id=dict(row).get("page_id"), created_at=datetime.fromisoformat(row["created_at"]), updated_at=datetime.fromisoformat(row["updated_at"]), ) @@ -25,7 +26,9 @@ def create_segment(db_path: Path, request: SegmentCreateRequest) -> Segment: conn = get_connection(db_path) try: row = conn.execute( - "SELECT COALESCE(MAX(sort_order) + 1, 0) AS next_order FROM segments" + "SELECT COALESCE(MAX(sort_order) + 1, 0) AS next_order" + " FROM segments WHERE page_id = ?", + (request.page_id,), ).fetchone() sort_order: int = row["next_order"] if row else 0 @@ -33,9 +36,9 @@ def create_segment(db_path: Path, request: SegmentCreateRequest) -> Segment: now = datetime.now(UTC).isoformat() metadata_json = json.dumps(request.metadata) - cols = "id, type, sort_order, title, content, metadata, created_at, updated_at" + cols = "id, type, sort_order, title, content, metadata, page_id, created_at, updated_at" conn.execute( - f"INSERT INTO segments ({cols}) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", + f"INSERT INTO segments ({cols}) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", ( str(segment_id), request.type.value, @@ -43,6 +46,7 @@ def create_segment(db_path: Path, request: SegmentCreateRequest) -> Segment: request.title, request.content, metadata_json, + request.page_id, now, now, ), @@ -56,6 +60,7 @@ def create_segment(db_path: Path, request: SegmentCreateRequest) -> Segment: title=request.title, content=request.content, metadata=request.metadata, + page_id=request.page_id, created_at=datetime.fromisoformat(now), updated_at=datetime.fromisoformat(now), ) @@ -63,10 +68,16 @@ def create_segment(db_path: Path, request: SegmentCreateRequest) -> Segment: conn.close() -def list_segments(db_path: Path) -> list[Segment]: +def list_segments(db_path: Path, page_id: str | None = None) -> list[Segment]: conn = get_connection(db_path) try: - rows = conn.execute("SELECT * FROM segments ORDER BY sort_order ASC").fetchall() + if page_id is not None: + rows = conn.execute( + "SELECT * FROM segments WHERE page_id = ? ORDER BY sort_order ASC", + (page_id,), + ).fetchall() + else: + rows = conn.execute("SELECT * FROM segments ORDER BY sort_order ASC").fetchall() return [_row_to_segment(row) for row in rows] finally: conn.close() @@ -140,6 +151,13 @@ def reorder_segments(db_path: Path, segment_ids: list[UUID]) -> list[Segment]: ) conn.commit() - return list_segments(db_path) + # Return segments scoped to the same page as the first segment in the list + if segment_ids: + row = conn.execute( + "SELECT page_id FROM segments WHERE id = ?", (str(segment_ids[0]),) + ).fetchone() + page_id = row["page_id"] if row else None + return list_segments(db_path, page_id=page_id) + return [] finally: conn.close() diff --git a/backend/app/services/team_service.py b/backend/app/services/team_service.py new file mode 100644 index 0000000..e4d8f30 --- /dev/null +++ b/backend/app/services/team_service.py @@ -0,0 +1,91 @@ +import sqlite3 +from datetime import UTC, datetime +from pathlib import Path +from uuid import uuid4 + +from app.database import get_connection +from app.models import TeamMember, TeamMemberCreateRequest + + +def _row_to_member(row: sqlite3.Row) -> TeamMember: + return TeamMember( + id=row["id"], + name=row["name"], + student_number=row["student_number"], + sort_order=row["sort_order"], + created_at=datetime.fromisoformat(row["created_at"]), + updated_at=datetime.fromisoformat(row["updated_at"]), + ) + + +def list_members(db_path: Path) -> list[TeamMember]: + conn = get_connection(db_path) + try: + rows = conn.execute("SELECT * FROM team_members ORDER BY sort_order ASC").fetchall() + return [_row_to_member(row) for row in rows] + finally: + conn.close() + + +def add_member(db_path: Path, request: TeamMemberCreateRequest) -> TeamMember: + conn = get_connection(db_path) + try: + row = conn.execute( + "SELECT COALESCE(MAX(sort_order) + 1, 0) AS next_order FROM team_members" + ).fetchone() + sort_order: int = row["next_order"] if row else 0 + member_id = str(uuid4()) + now = datetime.now(UTC).isoformat() + conn.execute( + "INSERT INTO team_members" + " (id, name, student_number, sort_order, created_at, updated_at)" + " VALUES (?, ?, ?, ?, ?, ?)", + (member_id, request.name, request.student_number, sort_order, now, now), + ) + conn.commit() + return TeamMember( + id=member_id, + name=request.name, + student_number=request.student_number, + sort_order=sort_order, + created_at=datetime.fromisoformat(now), + updated_at=datetime.fromisoformat(now), + ) + finally: + conn.close() + + +def delete_member(db_path: Path, member_id: str) -> bool: + conn = get_connection(db_path) + try: + existing = conn.execute( + "SELECT id FROM team_members WHERE id = ?", (member_id,) + ).fetchone() + if existing is None: + return False + conn.execute("DELETE FROM team_members WHERE id = ?", (member_id,)) + conn.commit() + return True + finally: + conn.close() + + +def reorder_members(db_path: Path, member_ids: list[str]) -> list[TeamMember]: + conn = get_connection(db_path) + try: + existing_ids = { + row["id"] for row in conn.execute("SELECT id FROM team_members").fetchall() + } + missing = set(member_ids) - existing_ids + if missing: + raise ValueError(f"Member IDs not found: {missing}") + now = datetime.now(UTC).isoformat() + for index, mid in enumerate(member_ids): + conn.execute( + "UPDATE team_members SET sort_order = ?, updated_at = ? WHERE id = ?", + (index, now, mid), + ) + conn.commit() + return list_members(db_path) + finally: + conn.close() diff --git a/frontend/index.html b/frontend/index.html index d7e5f05..c4c7429 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,6 +4,7 @@ Handin +
diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 221e9d2..25230dd 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,8 +8,12 @@ "name": "handin-frontend", "version": "0.1.0", "dependencies": { + "@tiptap/starter-kit": "^3.20.0", + "@tiptap/vue-3": "^3.20.0", "marked": "15.0.7", + "tiptap-markdown": "^0.9.0", "vue": "3.5.13", + "vue-router": "^5.0.3", "vuedraggable": "4.1.0" }, "devDependencies": { @@ -22,6 +26,22 @@ "vue-tsc": "2.2.8" } }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -510,12 +530,82 @@ "node": ">=18" } }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@remirror/core-constants": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", + "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", + "license": "MIT" + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.59.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", @@ -1151,6 +1241,433 @@ "vite": "^5.2.0 || ^6" } }, + "node_modules/@tiptap/core": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.20.0.tgz", + "integrity": "sha512-aC9aROgia/SpJqhsXFiX9TsligL8d+oeoI8W3u00WI45s0VfsqjgeKQLDLF7Tu7hC+7F02teC84SAHuup003VQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-blockquote": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.20.0.tgz", + "integrity": "sha512-LQzn6aGtL4WXz2+rYshl/7/VnP2qJTpD7fWL96GXAzhqviPEY1bJES7poqJb3MU/gzl8VJUVzVzU1VoVfUKlbA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-bold": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.20.0.tgz", + "integrity": "sha512-sQklEWiyf58yDjiHtm5vmkVjfIc/cBuSusmCsQ0q9vGYnEF1iOHKhGpvnCeEXNeqF3fiJQRlquzt/6ymle3Iwg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-bubble-menu": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.20.0.tgz", + "integrity": "sha512-MDosUfs8Tj+nwg8RC+wTMWGkLJORXmbR6YZgbiX4hrc7G90Gopdd6kj6ht5/T8t7dLLaX7N0+DEHdUEPGED7dw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-bullet-list": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.20.0.tgz", + "integrity": "sha512-OcKMeopBbqWzhSi6o8nNz0aayogg1sfOAhto3NxJu3Ya32dwBFqmHXSYM6uW4jOphNvVPyjiq9aNRh3qTdd1dw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.20.0.tgz", + "integrity": "sha512-TYDWFeSQ9umiyrqsT6VecbuhL8XIHkUhO+gEk0sVvH67ZLwjFDhAIIgWIr1/dbIGPcvMZM19E7xUUhAdIaXaOQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-code-block": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.20.0.tgz", + "integrity": "sha512-lBbmNek14aCjrHcBcq3PRqWfNLvC6bcRa2Osc6e/LtmXlcpype4f6n+Yx+WZ+f2uUh0UmDRCz7BEyUETEsDmlQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-document": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.20.0.tgz", + "integrity": "sha512-oJfLIG3vAtZo/wg29WiBcyWt22KUgddpP8wqtCE+kY5Dw8znLR9ehNmVWlSWJA5OJUMO0ntAHx4bBT+I2MBd5w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-dropcursor": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.20.0.tgz", + "integrity": "sha512-d+cxplRlktVgZPwatnc34IArlppM0IFKS1J5wLk+ba1jidizsbMVh45tP/BTK2flhyfRqcNoB5R0TArhUpbkNQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-floating-menu": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.20.0.tgz", + "integrity": "sha512-rYs4Bv5pVjqZ/2vvR6oe7ammZapkAwN51As/WDbemvYDjfOGRqK58qGauUjYZiDzPOEIzI2mxGwsZ4eJhPW4Ig==", + "license": "MIT", + "optional": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-gapcursor": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.20.0.tgz", + "integrity": "sha512-P/LasfvG9/qFq43ZAlNbAnPnXC+/RJf49buTrhtFvI9Zg0+Lbpjx1oh6oMHB19T88Y28KtrckfFZ8aTSUWDq6w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-hard-break": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.20.0.tgz", + "integrity": "sha512-rqvhMOw4f+XQmEthncbvDjgLH6fz8L9splnKZC7OeS0eX8b0qd7+xI1u5kyxF3KA2Z0BnigES++jjWuecqV6mA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-heading": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.20.0.tgz", + "integrity": "sha512-JgJhurnCe3eN6a0lEsNQM/46R1bcwzwWWZEFDSb1P9dR8+t1/5v7cMZWsSInpD7R4/74iJn0+M5hcXLwCmBmYA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.20.0.tgz", + "integrity": "sha512-6uvcutFMv+9wPZgptDkbRDjAm3YVxlibmkhWD5GuaWwS9L/yUtobpI3GycujRSUZ8D3q6Q9J7LqpmQtQRTalWA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-italic": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.20.0.tgz", + "integrity": "sha512-/DhnKQF8yN8RxtuL8abZ28wd5281EaGoE2Oha35zXSOF1vNYnbyt8Ymkv/7u1BcWEWTvRPgaju0YCGXisPRLYw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-link": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.20.0.tgz", + "integrity": "sha512-qI/5A+R0ZWBxo/8HxSn1uOyr7odr3xHBZ/gzOR1GUJaZqjlJxkWFX0RtXMbLKEGEvT25o345cF7b0wFznEh8qA==", + "license": "MIT", + "dependencies": { + "linkifyjs": "^4.3.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-list": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.20.0.tgz", + "integrity": "sha512-+V0/gsVWAv+7vcY0MAe6D52LYTIicMSHw00wz3ISZgprSb2yQhJ4+4gurOnUrQ4Du3AnRQvxPROaofwxIQ66WQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-list-item": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.20.0.tgz", + "integrity": "sha512-qEtjaaGPuqaFB4VpLrGDoIe9RHnckxPfu6d3rc22ap6TAHCDyRv05CEyJogqccnFceG/v5WN4znUBER8RWnWHA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-list-keymap": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.20.0.tgz", + "integrity": "sha512-Z4GvKy04Ms4cLFN+CY6wXswd36xYsT2p/YL0V89LYFMZTerOeTjFYlndzn6svqL8NV1PRT5Diw4WTTxJSmcJPA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-ordered-list": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.20.0.tgz", + "integrity": "sha512-jVKnJvrizLk7etwBMfyoj6H2GE4M+PD4k7Bwp6Bh1ohBWtfIA1TlngdS842Mx5i1VB2e3UWIwr8ZH46gl6cwMA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.20.0.tgz", + "integrity": "sha512-mM99zK4+RnEXIMCv6akfNATAs0Iija6FgyFA9J9NZ6N4o8y9QiNLLa6HjLpAC+W+VoCgQIekyoF/Q9ftxmAYDQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-strike": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.20.0.tgz", + "integrity": "sha512-0vcTZRRAiDfon3VM1mHBr9EFmTkkUXMhm0Xtdtn0bGe+sIqufyi+hUYTEw93EQOD9XNsPkrud6jzQNYpX2H3AQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.20.0.tgz", + "integrity": "sha512-tf8bE8tSaOEWabCzPm71xwiUhyMFKqY9jkP5af3Kr1/F45jzZFIQAYZooHI/+zCHRrgJ99MQHKHe1ZNvODrKHQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extension-underline": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.20.0.tgz", + "integrity": "sha512-LzNXuy2jwR/y+ymoUqC72TiGzbOCjioIjsDu0MNYpHuHqTWPK5aV9Mh0nbZcYFy/7fPlV1q0W139EbJeYBZEAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0" + } + }, + "node_modules/@tiptap/extensions": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.20.0.tgz", + "integrity": "sha512-HIsXX942w3nbxEQBlMAAR/aa6qiMBEP7CsSMxaxmTIVAmW35p6yUASw6GdV1u0o3lCZjXq2OSRMTskzIqi5uLg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0" + } + }, + "node_modules/@tiptap/pm": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.20.0.tgz", + "integrity": "sha512-jn+2KnQZn+b+VXr8EFOJKsnjVNaA4diAEr6FOazupMt8W8ro1hfpYtZ25JL87Kao/WbMze55sd8M8BDXLUKu1A==", + "license": "MIT", + "dependencies": { + "prosemirror-changeset": "^2.3.0", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.6.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.4.1", + "prosemirror-inputrules": "^1.4.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.13.1", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.24.1", + "prosemirror-schema-basic": "^1.2.3", + "prosemirror-schema-list": "^1.5.0", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.6.4", + "prosemirror-trailing-node": "^3.0.0", + "prosemirror-transform": "^1.10.2", + "prosemirror-view": "^1.38.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.20.0.tgz", + "integrity": "sha512-W4+1re35pDNY/7rpXVg+OKo/Fa4Gfrn08Bq3E3fzlJw6gjE3tYU8dY9x9vC2rK9pd9NOp7Af11qCFDaWpohXkw==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.20.0", + "@tiptap/extension-blockquote": "^3.20.0", + "@tiptap/extension-bold": "^3.20.0", + "@tiptap/extension-bullet-list": "^3.20.0", + "@tiptap/extension-code": "^3.20.0", + "@tiptap/extension-code-block": "^3.20.0", + "@tiptap/extension-document": "^3.20.0", + "@tiptap/extension-dropcursor": "^3.20.0", + "@tiptap/extension-gapcursor": "^3.20.0", + "@tiptap/extension-hard-break": "^3.20.0", + "@tiptap/extension-heading": "^3.20.0", + "@tiptap/extension-horizontal-rule": "^3.20.0", + "@tiptap/extension-italic": "^3.20.0", + "@tiptap/extension-link": "^3.20.0", + "@tiptap/extension-list": "^3.20.0", + "@tiptap/extension-list-item": "^3.20.0", + "@tiptap/extension-list-keymap": "^3.20.0", + "@tiptap/extension-ordered-list": "^3.20.0", + "@tiptap/extension-paragraph": "^3.20.0", + "@tiptap/extension-strike": "^3.20.0", + "@tiptap/extension-text": "^3.20.0", + "@tiptap/extension-underline": "^3.20.0", + "@tiptap/extensions": "^3.20.0", + "@tiptap/pm": "^3.20.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/vue-3": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-3.20.0.tgz", + "integrity": "sha512-u8UfDKsbIOF+mVsXwJ946p1jfrLGFUyqp9i/DAeGGg2I85DPOkhZgz67bUPVXkpossoEk+jKCkRN0eBHl9+eZQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "optionalDependencies": { + "@tiptap/extension-bubble-menu": "^3.20.0", + "@tiptap/extension-floating-menu": "^3.20.0" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "^3.20.0", + "@tiptap/pm": "^3.20.0", + "vue": "^3.0.0" + } + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -1158,6 +1675,28 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "license": "MIT" + }, "node_modules/@vitejs/plugin-vue": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.3.tgz", @@ -1201,6 +1740,33 @@ "vscode-uri": "^3.0.8" } }, + "node_modules/@vue-macros/common": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-3.1.2.tgz", + "integrity": "sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==", + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.5.22", + "ast-kit": "^2.1.2", + "local-pkg": "^1.1.2", + "magic-string-ast": "^1.0.2", + "unplugin-utils": "^0.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/vue-macros" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.2.25" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, "node_modules/@vue/compiler-core": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", @@ -1225,20 +1791,71 @@ } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", - "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.29.tgz", + "integrity": "sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.13", - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13", + "@babel/parser": "^7.29.0", + "@vue/compiler-core": "3.5.29", + "@vue/compiler-dom": "3.5.29", + "@vue/compiler-ssr": "3.5.29", + "@vue/shared": "3.5.29", "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.48", - "source-map-js": "^1.2.0" + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/@vue/compiler-core": { + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.29.tgz", + "integrity": "sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@vue/shared": "3.5.29", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/@vue/compiler-dom": { + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.29.tgz", + "integrity": "sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.29", + "@vue/shared": "3.5.29" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/@vue/compiler-ssr": { + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.29.tgz", + "integrity": "sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.29", + "@vue/shared": "3.5.29" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/@vue/shared": { + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.29.tgz", + "integrity": "sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==", + "license": "MIT" + }, + "node_modules/@vue/compiler-sfc/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/@vue/compiler-ssr": { @@ -1262,6 +1879,33 @@ "he": "^1.2.0" } }, + "node_modules/@vue/devtools-api": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.0.7.tgz", + "integrity": "sha512-tc1TXAxclsn55JblLkFVcIRG7MeSJC4fWsPjfM7qu/IcmPUYnQ5Q8vzWwBpyDY24ZjmZTUCCwjRSNbx58IhlAA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.0.7" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.7.tgz", + "integrity": "sha512-H6esJGHGl5q0E9iV3m2EoBQHJ+V83WMW83A0/+Fn95eZ2iIvdsq4+UCS6yT/Fdd4cGZSchx/MdWDreM3WqMsDw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.0.7", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.7.tgz", + "integrity": "sha512-CgAb9oJH5NUmbQRdYDj/1zMiaICYSLtm+B1kxcP72LBrifGAjUmt8bx52dDH1gWRPlQgxGPqpAMKavzVirAEhA==", + "license": "MIT" + }, "node_modules/@vue/language-core": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.8.tgz", @@ -1337,6 +1981,18 @@ "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", "license": "MIT" }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/alien-signals": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", @@ -1344,6 +2000,44 @@ "dev": true, "license": "MIT" }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/ast-kit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-2.2.0.tgz", + "integrity": "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.8.3.tgz", + "integrity": "sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.4", + "ast-kit": "^2.1.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1351,6 +2045,15 @@ "dev": true, "license": "MIT" }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/brace-expansion": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", @@ -1361,6 +2064,33 @@ "balanced-match": "^1.0.0" } }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1465,12 +2195,47 @@ "@esbuild/win32-x64": "0.25.12" } }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "license": "MIT" }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1503,6 +2268,12 @@ "he": "bin/he" } }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, "node_modules/jiti": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", @@ -1513,6 +2284,30 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/lightningcss": { "version": "1.29.2", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", @@ -1752,6 +2547,38 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/linkifyjs": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz", + "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==", + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/lodash.castarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", @@ -1782,6 +2609,44 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/magic-string-ast": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-1.0.3.tgz", + "integrity": "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==", + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.19" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==", + "license": "ISC" + }, "node_modules/marked": { "version": "15.0.7", "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz", @@ -1794,6 +2659,12 @@ "node": ">= 18" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, "node_modules/minimatch": { "version": "9.0.9", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", @@ -1810,11 +2681,39 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, "node_modules/muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true, "license": "MIT" }, "node_modules/nanoid": { @@ -1835,6 +2734,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "license": "MIT" + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -1842,12 +2747,47 @@ "dev": true, "license": "MIT" }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -1890,6 +2830,239 @@ "node": ">=4" } }, + "node_modules/prosemirror-changeset": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.4.0.tgz", + "integrity": "sha512-LvqH2v7Q2SF6yxatuPP2e8vSUKS/L+xAU7dPDC4RMyHMhZoGDfBC74mYuyYF4gLqOEG758wajtyhNnsTkuhvng==", + "license": "MIT", + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-collab": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", + "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.10.2" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", + "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.0.tgz", + "integrity": "sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", + "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-markdown": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.4.tgz", + "integrity": "sha512-D98dm4cQ3Hs6EmjK500TdAOew4Z03EV71ajEFiWra3Upr7diytJsjF4mPV2dW+eK5uNectiRj0xFxYI9NLXDbw==", + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.0.0", + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-menu": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.3.0.tgz", + "integrity": "sha512-TImyPXCHPcDsSka2/lwJ6WjTASr4re/qWq1yoTTuLOqfXucwF6VcRa2LWCkM/EyTD1UO3CUwiH8qURJoWJRxwg==", + "license": "MIT", + "dependencies": { + "crelt": "^1.0.0", + "prosemirror-commands": "^1.0.0", + "prosemirror-history": "^1.0.0", + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.25.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", + "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", + "license": "MIT", + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-basic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", + "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", + "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.5.tgz", + "integrity": "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" + } + }, + "node_modules/prosemirror-trailing-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", + "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", + "license": "MIT", + "dependencies": { + "@remirror/core-constants": "3.0.0", + "escape-string-regexp": "^4.0.0" + }, + "peerDependencies": { + "prosemirror-model": "^1.22.1", + "prosemirror-state": "^1.4.2", + "prosemirror-view": "^1.33.8" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.11.0.tgz", + "integrity": "sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.41.6", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.6.tgz", + "integrity": "sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.20.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/rollup": { "version": "4.59.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", @@ -1935,6 +3108,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "license": "MIT" + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, "node_modules/sortablejs": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", @@ -1971,6 +3156,62 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tiptap-markdown": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/tiptap-markdown/-/tiptap-markdown-0.9.0.tgz", + "integrity": "sha512-dKLQ9iiuGNgrlGVjrNauF/UBzWu4LYOx5pkD0jNkmQt/GOwfCJsBuzZTsf1jZ204ANHOm572mZ9PYvGh1S7tpQ==", + "license": "MIT", + "workspaces": [ + "example" + ], + "dependencies": { + "@types/markdown-it": "^13.0.7", + "markdown-it": "^14.1.0", + "markdown-it-task-lists": "^2.1.1", + "prosemirror-markdown": "^1.11.1" + }, + "peerDependencies": { + "@tiptap/core": "^3.0.1" + } + }, + "node_modules/tiptap-markdown/node_modules/@types/linkify-it": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", + "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "license": "MIT" + }, + "node_modules/tiptap-markdown/node_modules/@types/markdown-it": { + "version": "13.0.9", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.9.tgz", + "integrity": "sha512-1XPwR0+MgXLWfTn9gCsZ55AHOKW1WN+P9vr0PaQh5aerR9LLQXUbjfEAFhjmEmyoYFWAyuN2Mqkn40MZ4ukjBw==", + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^3", + "@types/mdurl": "^1" + } + }, + "node_modules/tiptap-markdown/node_modules/@types/mdurl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", + "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "license": "MIT" + }, "node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", @@ -1985,6 +3226,48 @@ "node": ">=14.17" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, + "node_modules/unplugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.0.0.tgz", + "integrity": "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2092,6 +3375,51 @@ } } }, + "node_modules/vue-router": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.0.3.tgz", + "integrity": "sha512-nG1c7aAFac7NYj8Hluo68WyWfc41xkEjaR0ViLHCa3oDvTQ/nIuLJlXJX1NUPw/DXzx/8+OKMng045HHQKQKWw==", + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.28.6", + "@vue-macros/common": "^3.1.1", + "@vue/devtools-api": "^8.0.6", + "ast-walker-scope": "^0.8.3", + "chokidar": "^5.0.0", + "json5": "^2.2.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "muggle-string": "^0.4.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "scule": "^1.3.0", + "tinyglobby": "^0.2.15", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1", + "yaml": "^2.8.2" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@pinia/colada": ">=0.21.2", + "@vue/compiler-sfc": "^3.5.17", + "pinia": "^3.0.4", + "vue": "^3.5.0" + }, + "peerDependenciesMeta": { + "@pinia/colada": { + "optional": true + }, + "@vue/compiler-sfc": { + "optional": true + }, + "pinia": { + "optional": true + } + } + }, "node_modules/vue-tsc": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.8.tgz", @@ -2109,6 +3437,23 @@ "typescript": ">=5.0.0" } }, + "node_modules/vue/node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, "node_modules/vuedraggable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz", @@ -2120,6 +3465,33 @@ "peerDependencies": { "vue": "^3.0.1" } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } } } } diff --git a/frontend/package.json b/frontend/package.json index 7ce7e27..9d303f9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,13 +10,17 @@ "type-check": "vue-tsc --noEmit" }, "dependencies": { - "vue": "3.5.13", + "@tiptap/starter-kit": "^3.20.0", + "@tiptap/vue-3": "^3.20.0", "marked": "15.0.7", + "tiptap-markdown": "^0.9.0", + "vue": "3.5.13", + "vue-router": "^5.0.3", "vuedraggable": "4.1.0" }, "devDependencies": { - "@tailwindcss/vite": "4.1.4", "@tailwindcss/typography": "0.5.16", + "@tailwindcss/vite": "4.1.4", "@vitejs/plugin-vue": "5.2.3", "tailwindcss": "4.1.4", "typescript": "5.7.3", diff --git a/frontend/public/favicon.png b/frontend/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d1a6c63b34cd8c1bc3c1630e5174ec345bfd4436 GIT binary patch literal 99366 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

4g9ouVe-@d)8PG?}pr6AB~ ziHKu=QEfaEo_wPW4je9_v|$L;6K4b5MBH|h6BCBYl05Ie>_*)h91~Dwl02onD4rU6 zgEoM-KhfcPN`8$|a8cyBRj=;G!pZ6AaF0}Ip=h2JPD_}($`IKUs3iaI?dPmWwp=QB z7m3wP%T`5{VAZJXCFDv%tttVSlLC>8U`aGZcqu(dHQMOF&F3Rs*iHwax;e~Up@+a1 z?y#U~Pg;Z5zq<$1-%W?n7>Mk93cfFzdYUvd0n?XgnBqfe2YpVqpoGmG4Z#|yHq1)H z@Yga>r?xvs!luM(nn<){_;*6>M0v^BEH|uqy6)V7&|o?R!0e?4Raf}pd?Sl@*ec-NhNvG@a1Sb z+BOwg7f)%IzZP85D=j2Sz&8=`|`F`;Nbz8IT^-Vb{VEfh@$k1pS&LHgh7$QJXH z!?|WXH~K#6`d7jG#f%7wyAgw;PY9q+brB6~2O=ZzoD<>!GOZ#bSd2_dJcd4JhaoW# z+0Hs0aTtHse$RdoTh2oYUadk*VnNs)eO%X?EfA zVYWJ*4!{5QTe~0Dt!rGGo{>VZg81#XJ!My|{QhZ!!H{Rfgy#7@J`tm5YSFfLDweM{ zlf#`W`7};Yl1Hodqx}Om%$;x%D?ZIa-^Y9?lf;*5NgmoYMBC(h4Nt(yV>;&DM*idj z3&(#rI0M6(P&8j)B1{jcKhFb8Hy9(ECJd6s7rI$-jb@7z4&2f20j~=#u}y=<1fiHV2%e!mV_i= z*4#uq@LURJFI7QMi7;HHQ&pu>315Ek`O6ByDuwuZ{=8>hE_X724HeW-+VIF33D3N3 z!qac2;xIMrCX{?SCp1%w9GZ=8aAEYobf#uLVStMm8k9;&9=e@r_t2U166+?)Ojkv2 zhE#3@g`!`3J_8>Ob`XOg6j&&l4sV>lS_{98kL*q*#+627Xk)!MhT#6%K$OVrE8`Z z8{eRpu_GPn~jtNxqdFc%Y%+=`28@C&D$e9vH>!& zf8ag`9%|u(le~uvn;?_ONO3H(wr{BEK&A4Y$fe>q8cpC}b4qZzdGveCjT&`4^4^Rj z$hujy&WH=?vO}0(WD^5^X~j?nnuh6RoLhoTIIB-H9HXQGj5FrU0 z+R#KBo8Eod#RQjW!xL?MDh>&o0)ZYsWMTbpegaxQmx39KRp5!eF&4tO?M=bd*-HMz>l%Hm#s^_6KZm#cC?30BTI%hPCsgmYrI3E2*CSmzzKJLdc&^k>@th5>)E$63DXv8;P#3z=uznA0vg52&dM^IOs119?rXVAiD1P!)~sH6_tB$A@1$*{ zMTJgFUm})l5YVnq62^a)1cy6JX~Wz^D=5j6nBc?XU9$20M;BR#N%wYsvN`1Rp(jq$ zhjKH5h%vLZn7_yp9i4?CFrjE4=8sQDw>JKK2}RRF-YlDl`E+DMG{}Gu&iZ0^D{5Dj z*m#0ceS(np{^vP0I^63=s}|8w*iMJj(jm26K8kUeV6#WSkmo#@G&CI=wLkI%G532R z=jpp2C1KubH5)D*kD$>*+EhR@4Ky-L8<$ponuU4eFS3Rvow@`hZ1TejOu+dx4F--* zLFbnf@Y5bnP6rml8Dun>uw?O~7cO4B8274?oK%YSSp0ziI<$RY-mYCcyXkcLV*c6k z44IqiN_eZ69c}0VOz(9h4lsIH>Ew^6PU^5|jUJ2FX>s@z2acE6NPu{2cc$K;zzdi& z#)=jpS&wLeT0X@_Oijk5xoSqruO?7S-%Ev54jX5uA%O~zM>;A;B`~&_P>GPmS~Q(h zTJ8qk-?G;JhFLUyV|ZO%*L7nX z4I0}%L1Q~7w(Ta3ZQHh;lcY%++iGmvcKeo2p6|hZ|Fbv z`;m}Dqk3PnutN>2<}b@L;Zx6yWh|>MBh{Pt2~*iV);Oip$@)~Rpnk0#keuTMV}Z_8 znTaJl*ZVP}=TAUt_TtMidG2pQl3YGAQwO6U&NW+ZVA$J1jC27{PQp|1|Oe*cGA-Nv=*&6NpeQ;4CM-I3_X!&ES?0t-* zyRKpA5+-z8Y5lk7hMrRY&X!xV%~8ToH+iNG{1P9q|8WK%C9Q_rXqSNLiD-Y7y5Mv` zi#e*?apo)~)TSpd0V28Yt1lfBR;o37!SfAt4j)aQOXxtXgDQP!qn!yLYvVA+r!_06 zLRW15Z+Zkb&6zQq{;JM=R*$y>CY!GrF1`AbxTbizC|ZtSZJ*eu%FQt^Uo-o!*YBwf zg{J(?1gNcxU*~Fb2`{sG6SV*yuoCnr8Rve%IdngJxc3KUP0A41v7G~RidJ*BR^)EqcIq>*zsHlq>y zRBq~NLzYUg^q34qO?zx)l_nW^@)I}PteOlJiovZ}wrEQDrw6x^w59+k{SI zC!koCkRUu7o!BG%Sn&pi*K6W8_!PrhPXFoGN<`_687lIS1--dHgR?9yAo!9K`ZE-- zluUer2cpD?>(-kXv%~J0W>$^*!`uBBWVPC(NK|_sn8a`ht=6rO5!lR3i!=WsT4G`r zfwQ5CznL{J0%zoHgHHD_(EJ>MJ$_K#m-yzJk{3mw-NQ<`6 znKj>Kr(HoBe`c&%PvtlS4a))td=Dc$SEdgx>|#9qHwJv)pLC1B5Yz`|C9)L)GnaUy zz?zn*Z)t_&@e?YX;3Z^~u zS^?7B+`9jPuzd5T;=13G3uvzIZ~seMSTL(64=8)^D8Vm0g3 zR_*jO?DjG|i$U;ad$DBhj!@hTp_d9Wwn-Y?6LRy!q$+Evsia8F15y*o-V^}-8*eMuLyNi zH)}coz+neboiwXVVi*6RP1t5JS^_&1D_aD)l%ZR;IPtd}n5-6M#Po|)mt1S1YF*^v zB$lOpMmJK1RjMK$B6@=Z;jUJXKA4aYnK7!<65)v150KPo&Bdy4)q0LN_8Xze6!ghu zRK_osd>N5_@u{OcL_b9&HW<<%*0%Ns_AhhWN(-|ShK#t4QgYXOKB>#0mOlwHU5pIi zaXY+mSzdn`HyusI53fHlx+ZV17_=1-@jAcI`1J^d#uuI0+X%xL^iM&=Bw%H}oX8;o zz$9f-G?XiPmB{fd!)E(`-!JC4!^oibw*8tYA)sjR3zj35x8=pkx8{pn*HE;2%0m3& zy;;lr0mPoOVNr)Z&LOjeRL@ykauf-fb;Bz&NjFCxSg5&>3?}hqjbB~(G0C(B-(*gS zh%egcwtiVwMjK7#@ODkvei~}yMD9I(kf#7Tiwh(Ax`?c{7MQ)o=hS|RDcu=0nmxgA zY1jdb{>l>ly2jcmbVlU##Vf@y^g87<(IQjt1y!E5F=I2u3?p$t5OU++_Dj>d5C$kK zU6f*3xiK`Djl=Nf>a9sprD&ixrKDC$-se>g_F-fuOS&>U)=?NA(K6U9xk<#A?HrPx zdreqS{6+zx_mfMyLZN(*7ihi>8R%+-)@nZc`(1yQ68g}#Xll&(v56nIj@@{}jsi75 zE)Kl0H}8?f4vpWo-p=DB>FDU3)U|c0;M1h_5&*T=`K^}ER}SFuRA=?+UUKw#V#`Z{ zovRa3^ow0{sQ_d$u(z4eU)yua<`@cL+gkO53~JVwzGx7uvD%D*?J^O-@#9cEw9IA)+kB=WDWx-8(#6-{ z&9Kz*A0CGYU%mM4g4fWgHp4Vcm_%gq=4o2AI;R6dZCiMJlAuOpW=~5hk~$00lN9*> z0u;c!j928GF7)j}vR@(DWRL&O6+Aak+HDLqa@x&=e`K)oGkFzbBg&%kqZr&-{S(Ev z+lG^D%lDj(M%$VUlKdKBU@3x>BUCSOoSyvSr5Suprhbnz8PB&dr#3ioAY`lYmGC5C z0+#tkM_&_C%Z3-~Co|f`CnV4DP%uqOSJzKn_O>jhy7hkBz0QMmp>pT*)#x#}{@v|& zX$VbgI`jc6S9}LSWX<}`7ImB)p&$W9(!m(ecuGUysFri*Sinb3_HK5%GcWfegNHMC z!;0;Ve;z%8&3Of;laCLaGphntGB$X+@r`Q&Z5m~X9(t8@V?7#rLhMUXgjt zztt)RW#t$%L&SIGMJaR~XgkiC_&QVCVe&M04#bbFcg$XB(1b|KtsLyj2aFnz5pWDo zvG0&NS;Tr_G%h93$dHRG%NlmM`Q}Q-5|oZi0GPNWu9}G+Y6Bf(TGuZZO&f_)j%Hd2 z5XxtgrkWMQd;TsJ8ee{4G>5u7iU;IQa(3#qw`AJ`5?p!d! z;ESF31hRtn1v_jDNl`dyQkTZEb#le2v%7-aKEzyUpA{m9&b_(rZK;`Br6@M217(yu zy-qlSUK4>|^QTgZHRjgTWuMvyZ%?@CaVEI$8#2iKjY7fuJLpuajB)bnFBo&_C=oAZ zU!lB-B#5rI8X*}TT?U2H`xnYdR zDaa{6+ny`wp1GW@?4so=mhZN$q*+*6i@{07FobL7JMU&r11cT@Pm;S|mSqR1Wb%Z# zw0>l6PWzm|NQyckQ+u<0A^a%BsY%ai;PQOpsYR&r3!di{$*yvgv8+eVLbORsT z>2$*wK<1RweI8i9c^N7YPFN3=xl4Mkv5vf_#fHq#?}Qs3X6j_SBaX&3P@)kLj5dD15Ky?@NK8!hYmzOE>v%pcxxZ9{{M~ZD7fTFKtJsU2 z?hDdW86Tc7FWwYTnhXN=1aiC;2buAH2dS|V zd;o#6@VIQCg~mU+kaO4a7|t!uE%-C29D&C}4a)|9ta_ry7H%q3#YEHL_)q?fN7``l zI}frDP}Z)ZpaRI{Mo}taUQ+EhAM%Bv<7QuRj{SgG50$X zYuL>Hp&a5Ti6m@qT4DdlJ!8f%V7Pqt=s|*s08z%*P6L)I_3Eej;VIo~Haui72Ep)e zcPv-H7|!^A&-)YX$qXcbeZFfuw!jE}U-_|osrbqonabRhKp8LAdz9-^mPRb}L0}+5 z?B%A7pl$C((O_gkAkWEH;&Ms{Oz=MmoG*9rI5`ym@H7Y#A01H*#(?g)lgLF@BaA-ff@NcaHWR*V0( zb+o=GPiR38@xOgtFb)ibI8;FJ_0K6|by8wT z!TP|}9@~>ScV2l@SW!EXL12({kYp~`w=EAAnEAAdL?cW&Ga-YdhQ!&*(0G}Zg?hpv zu*!psUBJR^aSqNw{rHqVm4P#O#h3fhq0b3+nzWmaq_Bf6mcqxQyobm{4;MRog3g2t(kmzk}@ggY5yo}4lYG7^eFt-=Cn`40L>tK`}sUUDERtf>Mc** zRKTc>U)a3sn#wB*%JC?IB16u?lP3&A?|R5QMuft}PX99R;7BugI37A!f1*O`Bs zg45XW3m2RFr&>VDJ=x10J?Y^TgP_x*WhWLah6xyRSz6B(%a(e z%kYE6|3 zSdlPpx|#y+UYN(~C{YUx+6zHg>0AxD3T6aPN0cDOmRCrc5Th93w^2`>Z7=<*ulrrO z!|jKGEaS2$?0ldtfPl>+48a>U^~%L)%T_pO=J;owK~vq90{6DFB$<{nZ0khq(bUzJ z&)q?!Hzz?X$mITu0^uKRwi%bZqJQ&%lC=0a@aA5#(vJOnVxb>1?d7g^UGYu{))JQ? zek;B_@Z+kQG9Ei{p)B`EJv~K~V-)Gv?V_DN^HA7ijM-_26NOBwcI6)dT_oyD16~Yn+d4Ca#*M>5Rr$a!u8D ze5~*YuDa?OPqFwUGxNKmWl5-$nhArKlEsp-X?5DIyZ=mD!uT8zmfo-9J)gRiDJ*Fy zDQOwFdfql`7V*wQ%4B;Ye7mmo4@at+%?*oj;DtGLeF% zR;%YiL&vuG>u}SmgoAmhS*s*zLTQm_ZTJdyR5I|@P|FP>`$eG z{{Q;mpy@A1c0-LTGg@_ogXsPtZIj4D5j=j&0-)~PJ~{BuE+B{{2|Zb8>L31{b=eu) z*Xb0R4;ngGJFo)&2@Hj}q|RY=QhCqo@~T&Z*GSo!Je>z~JYEUzxphn+1gQvU;X!M) zlEt4_LpVPDD6rN2&dW1+0v@Bu0?s5AiS?%G^G#|S_r4jbOVjAdl;hk}jftsNJH!Xj zK@oX;%-Nay1P8sqxvIeP67Z7YllYa6E!QyE81u{bhe?&P3%^@{6X=oI=N+a>{YP2P zVV#;C0r*Hv8GK6NKTk2U&FV{_kWMeYe>-^q9#`i7yPik~i;yZqz;^ia)6mm1H;I^$ z@1*bK{@!D!?u#7Z*2*ZAch;?ndx~7r@d_IeZXKJ^m={W1?pQu$eEtSp+%em+0O3`~ zOkDya%q-hvUa)woi2ua&nXL~{jiV^@AyoO0^zb|?GoM_TCuHz^^~7guSoXn4c-XfHFQ7tRPB8HgLS`wkHNI+u!7wbUM7aa=e1Xjc=|v$ir!zDd?d}aT>2CEXk!fLs&7U4*ZO)s$XL49Ns1I{svq1Kd zl|EKMIX=1U?E(M+>3cNx8Sk?taFn;*{-3#SBxj9pG+fi=^MHqczlv08wnVN(rpE7L zYNAs4Z{3x!QylOD^}j!QmCGXriHJpPT&fDDdd)f|GySO7ADzG^~fM*!Zmvkr4p1*M zfQ1G_v|ON4Ic>iJhLNc(uG&VIOQ(_cR{QlO6&zDWZd{SzU>B{t85-k_V;!F!nP3rt zT#u7L9tFa;gLH#qsd6`fi;ek6-Y4Irq4i*tg3aD4mTn1#F&V7Y92z8js?1;oH+$rJ z>Ex&idNFY9=k0%8IdM?md8&ATX%`nTs}VW^u0lrx_6V@-Vl^_7$}7;zpgPdZJHY%-BM+Y z$hH5iPE{kelan8|Gd)J>Yn9fUT>0S-DKU)Awf0d#_kNXOl6UZZ6$RJu9)9H|dYQQ9 zC)_V8ff_){o{AzC$R`vu-aAMHt1fhnTAkH~cT@f640&qv7j4{Yppjk0~=^$Wz9X;oll;P!w}`=3XW<=PSXaaI(>vm)I;Aj5_ek zjlLc2Jr3`s9pv#?L_g*^wD;zAx4vwh*-LDCUA-t09>slurt+N5(=dJZgVNbBrrB~7 zmcgNqa6o_N6wnVg{5xB`YVVdYF}MqMp3%Wax^pVxxh%WEH9iS7hI*EBHzqT`)vM&Z zSZHvZ>;BgHekM<#n%C!G)_(k=`Xo>h>0}Jz@iLx&?NO$`Ek4=Uy=q0CXz(5y1%Vf) z2WR|swp$&5tP`q77XguAo|SYW5e^43E-RM2C=Jk4X0U>s&RyPlbXNtBa+B%s2;!BGr*$pb`}&<%pJy>#=G*uw#r(J0Yt)No-rCQc+) zMB2Uto5=+RX^D0&YlRk+XDUJD&nO93AFHtbYy{8f3Q)%HLU%3bOBU#G=YD)QrGdfZ zwliC<({FwC5lm&*KvxoQxIWaNFiumAMsBZA~tOVYP3|&?|W+k77@9!i%i(pC=yxku>FU3;v8Mob#EroXi?95E5n= zP65uDzgs6E0M4s)r^#{QfDzMpfng}I5t2ZD^?ih-l@6LAhV-Cn@Adw;UXxs_5he>D z&lg;{SV(__<_GOS22g7D0B9 zA`6YtJu?*%-Z}L7LZxbK69}Z%2!b{x_I|$VirvT7q)fw*C0x@d5A&}P>o`_zypp1_ zuMiFl>i4jJ0PeE6CvFhEj4h`qgLRWuI4L}j`;}g-ulKVCxHJ!sR2CDJnEyw$Y-tcaODXeygg}U2_sZtw2~r5PZ0=-lhV=-_!f#uJLc4CBTajisONcA1U7K z@i&ADH423|p3Yk&7I3Zzl#F~GPKT<3X(qrx(m=A>{Enb%LEX2n&W4Zlf6Mx(#h!&a zskVRVM0c{l0wHv@W5gaYOJ7FTP0VFH{{HmWsamw5KfqKfUTtE0ys8KpFILJ?LXmLo z8+n-GV&NxJrB+X7P7&Y#y)A)zxQ4mgASqyJrqpDdpG#au25y+aif9R(MstjV$?VCn zr1F0LtGvB`Ta^m=`~qW-T53J89VdPA6o$`&s?b*{)FKN$2jCh7)__td|M!6aDFcNe zq+;Zk`_2gHWN4Aw*8LUYiXTUlnO?^;`O8E7n6cL11bx~XF}vug;;Pc7MKIXhOA!fw zQSBen=$*Vapy*U(9t9OWYGTiNmxp5FGg|W~^HEyK@-Z5HVV|yMdu2efV43T`!qw&j zihKm){77cs}()B-Vw95UGt6^M4)n_OHu3FX)Bv|aaWhu}LI>&|}MoQ0Qb@&A# zrTCMT0Fw1IRae!^?h9P}a`jfnbNp|G>uy~#EvnFFm-M%rL@ZZcgV+FCLPKV&5S&5o zit#QTDwAiCow;SElQo@qZtpciIWSHW<89J%(2$#WRa%7^*&&)U5pNCgy1=}9;j@8{f2BIpbvd);>jSGO^*XhLM( zf7#bRs8J!iTp2=?k(9#8l^rnCthddY>u=#4_4zuHY9}?qq^Ctd8Dk1ZWoor8H43Ft@Ps}Vvv&eJ~ zQ7{8A*&vI@sT^;9?uxgu9_F3RGddjn-vuPa6`2ntkEhzszWK`tg_>J(Dy(B$x{+l? zEnk?PA(mzKPC%}rm%xbt32(etFfToO4sX45FU|UzXoQ<+h6|(~i!Fghr8`gutSWpH z%Ja$n$Q_dF&JQ=ZpV$9WIc0IzWao^U*E#u22VH%$6(e~?faDg}?lVj{UdGd#=$@Da zsaAQEjzo%&qGG(cu$f_ub@>2bOa#l=c{h&ZAlh2{1xvY!0*`j5YA3DDD?<#GX?@4)%|D zvjbt{i~P<`je8IDK=e;Als;dk&IeYvA`aq#O+;x7>L_$=M2Rd&PO%iRvbF-06gUZ6 zu5ZXX7_b6FO=2>M=?T=Cw5c+8q;vfgTp}jW<93*%+i>uWcOvD7#tU$xWQu-)!uT1K z>p$q0<&e8ijv-QTpep)rc}NL$-&CYFRpJB^2v4a1syoX0bO$f>kDqt+yXp`bV*{MJ z0qlo*>7#hpzaL14>|P<>JUpyYCK&q8fEXYuR#58jD4vvbMnv?*PuV5mzcpmrUjsJB z`c84-BawQKk9W|*z$3rdrAI^b%oyFPRLD$+g2AN=_vZ99?^O8pf~Wl)|15)}%20C0 zKa~qeb!J?_2&t&KUur z1jgHT<^!P;I?{icYd`Kr@hqPZ`B&{X=D7>gO8(ri z4^{=?Y06M(RR@rZXGx@=OZuRJ>Gdt_-DxWroGgOO-Qm4rb!s%oL3HU@AY0cGC(P)$ z)5U--X^Z!)8*3eGhJ~a#%-l@mvgYxP0&^4#&Z%@0DNkx94^_Px-z<;9Y*7g>k}NdS;B;}m>V|TmD7wd=l7PW} zl#Gr}mBy0Zg)ciy`Ag*I*~ng7Mt&*Em<*RKodRLm&SH6v#~T?T^d41{gBXma{+3@n zTK=!AkTO##3_po`L`06ynZ`k+4Ddwv3?6Glc}a7V^OhX5EYxQ6ikn+xq%x)jvI%Ms zL5_zD>^<|}w4h2}W{)dO5XBG1{*py#EwW(+2Uf<^FGdX!gddKtgN?)*I*Y1I=`N8O$k%7O5gLpp z+^q3HrF|5DyQ=Nm?%m2S66u;E@4^&gowq+@be35lwg@XW;`xDfdY&e%sqjncg{k;U zcZ<|9xz>YQrr#(u8dFdwbJLQ8=-PAm%19%Nt`pJRN~+cQ34@E4VMe`iMtLbgd{n$e z2NckB0hH0C%N*L2lvzBKG#;bRkdk}f2$21FsiY8+f57NEd&I$O-BY(0`)4y=%W=eN3NVIog zwk_z>=>^6(DGQHs+B77*&Gb0E^!!Ee=PyZJ}8x?{?)W8z*5$nsQ7FoBIx|5SF#kJ~uU z$X}B9A@vMU9a=*evtd^cbZY<&+tetA&xS>tM*4x1jtg>(YhccBSX+O^K3k>lw`Nj=9#r-jG-G=Y7Aw?~7A^jf zSW@HwlXOIKVr$kfPx3f|x#q*=+b0Q$OlU|7KxBTTe-qmRsv1B+TVx)<-)8Ql!z|AH+eSNGk+@H9v3-M>KtE< ztH<6Ixl09`%$eRu}9e0zi(or`zPb1x7iJb*!jM4Xa?9uW8~4VHq} zYP`)kvGJef_4nR=`sunE`*rt4rsu5#2UP{Q`Rcv|VDgtjpIr(BbkYPN%2!NL(n46# z-jrEyl&+NwJkgfEuHCK0*6XdOneWeaOcS6+rqwO|sj;6F+G#^)VA4>IYtQ4Hg{5*C z7ko*LJ%v|rdP$+dUb27Bz!ZgzFjfJT%{C&-$}Y{rHKvBy1mTV$xy?{pBi(}$@-bc} zd-;_q*62{bKF(>C)y&ve;3m3<2ej+R9Bus1H(AkBe>6-txkec8wuAW4(d9JPADdFn z=zW5Oki)Tyq@O7{_{A-8(Ee+GpFV|rd;F3H4VV)MPLFD9q~wl18O2}N_@6@XKW++< zRRJcc@*^|FtkLvHg8pjRd3YG2SLSaEo+K%IEdX6)yZYC4H|}@sM&e7EJ;h&|Nr8be zHGT)p>j%paIsN2XRF-#hgoYd__vwCX<)A;p=DZa8#O_}UI-WJ9`8(nhF4Z`CU{VFX zRKdYZ{yE8`Fy*aA`pZ!~Epf1jaQkP&hf8}U z=gvD*VbbF}k^fP{R0d)+0;fmSW?4A?nB4)b-tcv`kPl`xLg_TkF+qBM!fyD{XWi~} z_|=+?D4pta_Pq@V0gghXE;XcD9musTKu;#n(P5wAra;+Rbp;+kxPPUP?+L%m^yLdt z*C;vJ4ly^E-XAL5kuIfCx85^I5JGHXqq8CIVJa{CQjtF+O;fg_>!gJ^eWnV!68(pZ zIR%A2iZcEbTe1{YBAkY4%El|5=-8eLb?cDPcJ|Tq2PTD!8&Z4kSgpK;-NtPj+`l}X zI9nFk-49h$VC6?XuA}ujrJOT^Hl&GOz_a#HmfFYuF6))=@CaHea53u6xHwWzEvjqG zr1!jW=a~-|>fq#3yr`ivuSf+?xr(t7sGhfrvU^Cy_x>FULI{H~7~Cc-oovz4FxdCY zoLAYLKF4Vx37F`NquF2*8nr6N|6-E|x6P<_JJkst$M@EDv#%tWm);{O@?^yH>7ZfW z++L`nERgY58uBc3FRJcCYuSFctAKYMF@nz&Y=_ zb`nZ&5^Q_*DQ8?$6oFlnu7-yLr(niw5Z;3GRj1xgduF#mb9^CVs zAAoNIF&qHWUEAE=VT&V))*my?c}CQr{zL>s5_23G4<0ZYdhL#(v)$ zUVNgb)=Z(5}$5qD4`#;yThu+fpEp{qN9YXM;1DGZTO&Qxn~F6zmR~PgX|3qMeb4wJjTm|1@-y{rTT8$cTeY7p@Du;HN)2$KZ@(EQO=xD%~dxaZ4gx7O- zyt#TEM5*<=?s)PA%Z3@lM5lEdUD*(li1*eI_05ffVc^e@aVDWqDMN~LGgefVA9qGS4D$JvfCB@)My~DeuJ{O_L`4b=36UM3Zby>=kF2)Nc+VYH zdY;lNFqw0PAtdZg7Hr!XflnQ;`vEsX){a@o>3FqKw?9IX;@(=d1Fu1z*n75E-BEdV z<$0>7@etr$dtf%iMHpyqYu3p&1s8uLrjF0rz&#elCsfO00>t(GeFhX|x*&57kyC4j zh91MDloKu>%|FBqk#$;XmRIWol~Ue&-Yn`ReX23)GZmAKrwPovAseViGe}UrULxRy z%?Xe=8uno@x=}1zaq6^}$C){#;c#QsNdgiCa}j(#Qo}LWS!4%e-N3% zTCx?S#|c+9S_2Wam4y=+ML^KdcX`0WtU2q*MJi6N3aw_*0dAyGf7yWzDnt$Y1avtb zCriDnc}8d-?_;V7P>^<0_a!yF1{^7FG)&W~T|4Dv?pW5}rm8)?c2jmW*xV-Qj7H%h z(|TKY7|4^kq2Y$VW@yGnb_%#+?-t6+#ylz|KXSjGh*L69OQ!`0`xT+MKeU{4PQEMd zyCJwRY1J9|61`W)Bu9zdim8<%!rUD%vnr^f*TnUL=Xp&K5S|Yh)U!AmV6}!@kufC2 z{<&-E-AhF@$SVTXzXSDA!L=90lRznrZ-S)J2Kp$!zGU{h8WdE>q%qQKLqdAqFq$y5 zvkntdv{h8r4z86^Q zWKzof_3?{MaXmI$w@<@4UkT9HMe@064@c2p86S1+4i8NXR*-B1;R$F-_2lt=V3^L& zY3%Z`02wLeMnfSXy#s-Viq9C0?3CcSPQPxSd9F@=a!qQJn;!CIb`&RXNX4Ek2p!%- z`Z*eZWQkV+>{ftOU?Cfg?F}9Nc94Em>st$aG-uFe%Y?OHri_LMkAy9{b+(1DKlWlM_-=CjcD@4?qy^Fo4$Z+5hdXFBX|4nZO0nlzN0J|UjWkWxHl zUs{y)`CPq-b2v=hXq6L}TpTw?Y@KXcY}|og8jdAoh^)lra|RXFht{;Y;CS%&MqgLj z!R<=9hQ^ZlGR4%gH7F_I4#1ktH6fX5iD*hKkX?{LBgUI;zC#n<;mTfrB8gMU2^(qV zm1=}UZOrYnYt*!F*X<~Dxm;`cyVd1Q z1Jh>%$Ei?FJ3b{v2-*wtGJ1qXxb`~>Eb~zA4n6lt3$J*hSblBz?`K()T(?y};!B^m zAeF(;u>v8wsB&fc(-#!^Rtm_!%I?zYyK7<3GC8CtoMaZ_OyjMu-&W$BUL6 zxQGujYJs~ynyLk+?Byq{JLksJ1k@ix=KG$vO-qRiU)Nz<*#Gd3XcTinKFgKJ&^xYV zPdneo1Qi94f)5l-^Zsz!)d@br<6{+8SZBb2U}{Hk{nqFxj4~qM=ExNP_i>`Gh5}ky z;5;X}79lkFzp}Ekp0Xqc47Ph|r&E!d$~wlW9D1XfndF|UrU^c$T$J#G@n zJRjE(Qjgk_2tv`9jIOZytTB)abOj3`F@)e;3shsABsBt1{MS)e&0;5=A<&OF{m~nPJho~JqVpJx2s4` znC5Xq_;AU$`P!-9Z_srK`i22r{RtmcxR58(R$3$dgwC)8A*Vs-VPAz8M8KU7?>`!+usR*q2G0f;C_DjWLrcN}>XO=~w}5%%wBUv)Zza`4V5n zO%EiD5pAZvd;Ciwe=Fy6cuQdQ|NGHEs&yF*)@5*5b$|=9v+Te}4odk?m0)^r;P?~F zr`HM|@5><0ib>`G6krwrM06&ao&`r+@PsG0hhw;vj4%L+HC`;NgKFLDuTj)d|N} zt4^|9RH9nFnQmf7j4=7D6Tx1Vs~rb1G2gBVqn2poQP426viN3~?FO~>-1YBi)zRbD z=z#j8DvuPs<6x188aMspSL-20*ylNAgWccL$7T}7Xk-mYNO;#{Z^!c=@j+$?7n>4r zx}ju_TJFBlpDAz^2umi)bkc=Ef!=0Xb@ zgUYvotXRyg_j)V~edWEj>3CvMP*I$6Fz94mES#HM?-<6-u5sVF5d4{rWMB)TSR6M- z;GdgI(J5Cc%|?^j!GVPK@4p$IJ-dc3;|vnclWGo#hL|`bXD67|kxM%ncp4%{+MSJ; zTsB_LJ$o&iIQgaP?)yl+oR(kpGF)+kz0PUJLbZ{WJp->Pw4b*Tjdw{K&XM4MIZJJ8 zl^gG}gJfq}O}nFB<s)dO-XaEvFoKaJ| zL%tdKg`(6QKbD#9;{NN$Vp|;66f=osS3fO(qRmlPK_dk4w|>bi2|3`DBf+@+!0g9$ z&QArKnXwGdQ};XBFbg?#H)r0G?gxTZiizn33Gaw8-zV4!&d+_paEL~LIIknh|HTYV zL=#EdNuSB%^|SWW08se~)J8-;0fW{OTaww(6<>1#0|Vl+C)kDvLHa^@OQXVH1d%`%?ESciKfIzpP&AZ^%dLoBQ9+0Pdrz|ENa zh^rtbVv!OzAq8w^-MJ5Ju-7SkI{viu=%W*YcZ8xSs2_D~T$?AtA#hru!r3D4fw#SQ zxf<-`>|dQ2PA#*>Z_IH^N6_T(4m(M;VxT)4Hj1Lxpn7x#8R4A!td6@HSRPpaRWVv3 zhf(S(1Vzrx4Aj`ZCD%w#-)mp-ZI}K*H(tsONxhd{f|^koVH^MJnN6ylTgD$)yE(Uv z9_d`A%F*`ycM!^>uuce>yT*b3JCKYZ7SSb*wK=LZ{j|mp*k$`nLXG9 z*+gktn(N4h;I%?rekC{G%P~{%%loICP(!|H-{LGaBaXwUD_j0H$}BR_8vV`Pg>euacV~;a#jT8A^@_|DnHg)=t+BCFUhH#V|2OY;xN_721`UMRyffcn# z*f?v>xrW`iA3RTTBuVF;SQY|p^`VVou3IBqJ_T_Gi?AgH)f6C^T+Mc{5o#tAWQGGP z{p+458&9Cl=oL}(D!cra_27DxD7QZWg|O-(=c+hXRs2B-0X~R|G@)Ec4@{7b{j>2G z?#m8`lm;V0pd|w;p^?!)4C=TIq2Rv)$wfu#!jufmUZ6W%fOoRR4BAd{eJB5n3xxUe zqU=UY#zA+^cRt?Y_t5XZg*z;u`d*-+pYB4GusR0wrP#$vCEo(JB_s4j@?jKkC#z=5 z7IXAgJYHR6@S?F$UVj~UsvWN)zA`<{g=zjoZRD9TxhlkNl`Ci?{pAHIff7xL5X>Bz zOn=u~XtU^6OAJECG=^Y4$UYFg8zXNAV$ACbURbOohZhDX;qmcDMxWZ6H8vE64)y!o z)vwt#l1>0<%&@ztRx%fu>>B`eGT-=#!*d$({U+sY9~P{)jR zeoe|^?GfWbjYSDPKvulg+1+i2=w-0XZbtVg;d(ud7Fcd0#|aSVW`?K~zw0eia;8Dk zOvcGn%$w4YHq?GLlWIx0LBTwc7lQgYP@C-b08Ehzy(-adL`3h%%WTd&fIYVgS+Hl_ zfG2~Sjzr>_=sPXF6x@oGlp6oNkO@9L_Rg7TzoX&2*DN}N5NDhD?oRS$H5!{ym!dVQ z-3dOOvPusU>?y*F|CF%w^OC+QMohgL^<6+;uQfM%XkZL`{0UY3SqoXLy7$+WI%(*z zKiqK7pVoWFQIvVoy+74kQU3)BRub8Cxq@?gUu241qi)#)$nk3OpMN$c3q#lnZ-Wam zp^@6+a;w;bMLb~225>(sDU0$EtzIn;3`Ybi0(Sq4L7WvAmrOo3v+K$)h+bh)Mkm*N z^(<}r5D@_(Ixr}t>zb$GAo+S*&bkZ3(vT<_rUP}$!6AgZsk zNoZBagWOpS5i`xZB>|_JzNz9YZKyE3VH0~jWGH)7Np6T6DVKiv zVhBvmlj;%CX?}P?+N*>bO|Gdd`W0-JaL=McSHmC4k*mQzD#={@L=Z%qZGpu5vpl$x z#Ym$z@OFNpJhgQf&~n(pav&I(OQnt0BW=q*E>2Y~?Pj*3qG9IfKwDz^Ang{busg!p zGl)~8wJxfmCk-l^^t}OvQ7|M45#wh?3Dy+}Z`n5?B^pHv)e zFpn#FdGuiyP;dC9Axf_>ufn_!9F2l$AI>NPM__t^5+oYkGp@hHDo$KT#(b+73mG9F zE**^*jDoSM*u+Me^uzNHy3@!eVecAd8G!PX(HjF3k!A?(4QVthq7fK)o!wYeygnl4%&9^Y#sd_QO?`7^=>+d@6;iwbMW7C&n>Z!8gop zm=qzG4zRMYIS$tVk)y}q;c=(wznA@Bvqv;VOsijHwM`s`PY*w)WClC&dCr&$Nm#jv z=?OUZ@kWm)s~li2?>kU`lS@@Yqin>4jW)_^V9i^6Iq@A71MEvfe}MA+{r^b1#=uCM zX1lR%JK5NFva#)KFww@?*tYF#Y}>YN+jes2z2EQo(bG>?SDiX_x+;#h?J)C-%;lkr zr;G*%>j_AG0IwqYvjQ=a~vHu?L844O3i@-1z|x^;o5ZQ7Xd2rTJ0A3eqz&AbQsl92Mc( z!Gk7A3k?nIe#4Qi{%W|sp%X_Mb#QqwfO!{R-11zLXvv2=pdY0X-m6V{foAkMK?H(; zjZLzqcnlAx>3$#w?V{OmjPkLQ4{F8?-3q zi52XLEPl(xEXY^2t441BFJS_ zYu3R2SRsY<%O#tH%`PlCT3cV`khV@AL$s;$T%GX2w^BwJe%7BTS%)$KK>RqQmc}<+ z0u$&a$*v-VpejCA#t8jGv{VGoPtd2RwtE8olg?EqwDwj+J?n+~fw}A-JOV*sv8JH& zkEc@bavgznx0(R8T-Dxs4x;j|l43zK$&r3(WF@D~#=O=*GsRt{fGf!~R?E zGQMJ9zxrlV8rZ23HlCu!16qT2*-eajHpV*e9bsZ85p4x)4wYjeZoVTVL~9->%rW^ufZsq83p-P<`hGd{T|y?+=X;juNhamf4R3`Z_{>*%Q9 zTig1Eb_6i1WiR*J@}Db~R;${BczNQeNuFUYV4GK>pA1$ojjTXZctsU4)av|E$g^Fe zzT-6N76{0+X3g)NuNdillMS>$d3$hc)KdR)Ss85nbdHkQ6H#W|i$4Fjpup|QKJVp( zE3K9hCup6zXR?gP;0-zF+XsgcT?R5RjCHG4Ud)Kd^+9@|lQ$%SGu0tchM${E2e<^H zZvZ9zRT_9L;C*zO3DnmrYjp_NOtN09eLO2K6HO6DGPY&dQT;RqJ;ZV&FX%Dq&W88P&@0`Dq)0gS0>;7gW zNu!j3{*ze@`L-92u?eeAiVP3yzo?&>lCnGoA;9BcIMU%W=CmWS6W!)44gdTpw9q&RF3?- z>M}h};O++C`MM|@DAHB=6-@&h@Gc3oW?Pg=QsSC%^ZvhGI?Hrzj}v<(WW9RF8F=V) z`chT*3&VwXOy_Fn6u;2ub&vJ5Y7HXLtoq8TuGSXv&89nKn&`Rw*#Rdr;xQ7&#{J0! zprsx*r_on|B)nHA+^viOC;?6nD25}T9&nKjNVovya1tM!=62)f7X zp=O<%ipg=Y$vhGi5jhMKaTV4N0I%1<3y-B?fFQTDPmah@19L|5?CVDC)c3)DMMLzVb{*CNzcQP!d zrl>6&8WE!lbi`DYhh6cKHN%D_ZS0qw|2KI(TCA&y0GsR*g(JTFj=$ZeP1QXJ;WIbP{fozXNQ&cj7Uuf4?lG6h@g z`3G$H%Pq@Xp%Gz_maSc1g@y0EKoy@uRgV4Bfnfsv@z5k7CDdqF&IH(vW{90O=x5ip*ohHjwLhu`C=PbgrxDYQzOZ5R zr|E+=L$&RMCPLXib(+@ZAh^(K4JA~Qp~3IfdO_{9{niUmWoeXiNLsX3)hKz{oOUXn z*UKbEAE9a>p-oOX$KDRogQ9%RjI~m)af&iV686@u$E4P55NM zbV5kfV9T)k_X_FhZDyyHYL9s(;{|VYjt$LtW2U@2T%G8ZuK|q$2>J3zKr+3haZ`K< z2L!VlQDB-sGf_shv!!IhxA5Qw1>$Zx z@YeB7;EtSl=&Lu-p#h)n=~MkzjzEXaQ^*lGPo~rA(7A(lbof0*z>f<4_UzOb`)nBa z#|j~c#0-U+m7qN^x%fSBgGvz{ts-i@O2N37g{a8W&~9|yW`Er?5|9=gCa8ISTT2zT z{Rd-(s*=<~hbg=w{m|HhYPEcK5f#j5tZFFUl~p8C)A~FYVKc{7x38KZ@g~21Ri2h1 zI9bT=AJF?(q@Jut=zX$sopQakMXvF{)-Sc3f53~k9nmLcF`XCGv);A@TDpveNB);Zi$(4J-dK=|ox5^5NONRX!f*&=zJ|G!-*Ru~xbVzb;VY|nAMI-K=0 zDWO{FY%2f!H=4{uPcSG;A0z{M*rJM*PeWV#84OY06NdTf4~Y(OKSsV$#j(41q&?CW zR#Rb>l0RgG%8*&Iw{*TzMN3v7>_^(CZn%V5_P-p21d6xnKFo9wq5f&-ycONF(qNFs z%`vsHtu>~czmD|wNAmuY0m$pdKEFM+x8>Uu0c-h$A zQ=v;1T7n|Mll=9tQNMpS-Sbu=jkb)Z43M2_FR&NCEEim|&ClVBCY49XYuru?77@!V zVLC+k3eDyrEWaAe^pv1n;3o9NNS=hD_5O1u8YcADJ;th5Rg^GX+W1S@j&DjYrOby7 zzXS{;!q5_=v@Qc+mI=IVz+5!Xm+TpV$NYn~&blIF0!>;oUoD|ltdvCpv zC(WufO8ckM4!QM0b(4So>H03n)0bzh;Hx?rUW50fM;S(YfS!F9Xctrrk5;E&VudP) z`D2#U2*beEHUD>C!WSFi0$xo4HKO2pY|z1Fjy6XL6n*~AS_HX%Yy3#E#C70wOtD&F zzl}YN6Jp;Y&xAJnY&TImq>0^`6ws+y0_!(rtw72HcqH`sQl$^kAzBHe=5B6oqRUmA zxZu5K#0v}Xz=XTbe55ts>~Yd?1PGg}p<44*{*LvW^lFLM)ZIwP?nZCnNF^+Uvo(I0 zH)|rVkV;LaTX4Xz4Y5^J*Y7T(N8-jGl|ELQBe&xs(@rrjy^v+zhbly#7n%jmy02}}w6xSey`hPX0q+%7F4H3p<3I;EOFS%F6_WDv@!>}k1U z^nDel=YB#4dKMNI`hR4Dw0dDBmMqe#l4h;D4M#FIX4_*ohJm#PdF(qOpmc?R-vHL- z!H87GJim{;nN(RhLMp@kVr3v_YE7~Ls2|#cfkT+2`IEuMHVD7K;i|MumrwmCm-);D zsWGZe9Iv(jN`k0lKOHWEL`78IY$DFMU6E0T>H4)BsLr?={@YAjV$FtvX!D(eVwgud z6>|Esh}s^%FLWs=8x_Cw9eF9N{qob)Rr|SA%O?xTH4>$qYJze?hCEk`Ly-E_Yd9BQ z3K^SKbV@W17x_pu)oEA!GAi@P} zu-ruri^_}NUG#xJx*Fdp|f&ZgtI6o$*xK&2ZhJcpAF}iQGIfSAz;UMo%}N+O^Rc7 zXR_<3u$Sedyvm%N4t<6pG5Eq~ta^(Gb`fN5-EVIKTW52}S2-vz9KkMzuwx+Q>V?jw z^&n!s@HTtS_56ueYSbM$p+9aE6Na@2uFsZH%a#!wf&f|8bE#+_BZI@jz^&4k<2@P* zO2Hbs1e#qNCpYH$a0q?nIuV0$ZVm3r;yaK8IqnRJX0IWZcT3iLOah0Wz`LbV{acGX zA|4rqDFLO9j?9#X%Ji@hk`yHE+v}%!|MXYZv@I9K2tJ7=_eq7iT3vDy(3bD;>U2QI z)W%njTqhxU@=kUkOIVLBU)-HhB?uj#wkZYqUbTg5)*>!Ma&J)xtMXu=gX7GAy(tXv%cq zg%cV;6RlkB^@?6_VY*JGbe+^YoZK*+1N=1(v(-X9U+q|Zz(BY>AyoqE(8AA_*Az&3 zzF_9-3i>s8ZN_L2gGpGVuO~_H>5fakDZ(kCa%jr+&u;wNx{3{nl*n5%Er%SFjAn0F zHlEyH2m0b%BiYNyWX6UNhbS3wOl6_WEJLB16lA6-;&WqU4{@K(oeLqBLQgFK*~Vs1 zl7BqO-tz@1Qc(wR zp!bnCBc#P!9DSCzBy{Y{)tv5ZgG~3l*n>2X`{DV+*o>t?o?ONd33dJrW*ga-jiG-q zW(-%qNkQ(i2=_F@#ncmj9nTYgeHcLJOvU4H*EyG*tx^iR5HP*~zjaz>i6W+wqLxu!8DBrG=^+KV9&RKw%iYjOY7G1g zc4>fVqaJ}}L?Vnx)A15{5SF_4*wu5t=jQ1h7~|R1jO7*^?t=sQ^AzkljCw0ccUtnE`p3 z(1$0t)gI+lp+Ab&o>iu|!RW)PtbUE+!5%tF6qXVpm@iJ=fmxnrwNRr^IJK2iq_3HSv{`EGuf0}@kS*6^|Ui}l;aul-d( zM4c%Ltzt`|hV#M`=rcrX%rzdiae5=3agyCf_G<@zSVu5fm*UtHLbD?KK{usD)zCi!3^BZd?bbLrj2-)f1Tmv8MoohmiY~$CjTL`_&>`~C z1*vo-w7uauRA1zduj{QdMO1Z_#TH9Uneb3zrBQNzIL!g^ZpuQoZ_?x&q7S3H_Hr#sPeku0$8pU3vYY~VdqRIW20>U zUA41CWtsA-sC*yhXl9@BlnR93SROr(Tdg-BIcUZiRaV3#k(v|N(%c19RDeh3N|hJ^ zA`2!^#fPN(v;;7{oLt9^txH)N$bVukHdL3PpmWUG#|T^ zPr1Vl*^2+kpKG9x0I^x1yxnx*s3b|t8`8!@_+Y~)Q&0*+D;xqUC?;nY@mXDyfR9T^ z;_6lk?O5_y=YDy?79H|gXF#jSr&}(5WHAD*5pvWIFwfMG6LrogzZbb5h~L5+mQ0v% zdxp;V^;+StV5;1hfI|O0bsVSFAZN0lJfa>LS4k3%1tkT7Z}f^{d~iud9X4Hwo}7UL zSfM$#$6Io7hEJeo&Vr{iiP)410sD50_6v9}e9#_`1B0kNTWO7z$D>5&doTij<~!_f z;}Pcpb?&uZaSn}a{a#jQ?KZK#qRp@TF*)qiHdl^PT8Ba|f~lz3=Zs;3k`SZ7qot+) z=f4Pr6IaV5l{R%M)2$%l`^md##`S5ex@B$scXkP89F*MHO71;yk}AY%EeS~IGJ{(_ z;!YCDl->V+&r@yJ zss*%dxJ4+Xg@(0#u{jUD#N@V9TT$VlFJ1GA*;($>qw)KA9Io1yRAm>4X>H=FS*QY7d!3+Znoz(b!Wg(idrn=~g2dX4g5xjERU;;!}}Hm~3JE;e?j z7ZH&c09I7nFL}ENkRVPsiG4(+vcFzwCysxhV^~-)qCAjg)+EhV#3uJQjCx4qIQXWh zvE`FhowcR{e*Kc-aHHPT${d*Z_8OVlvl!vJB1YrX$L%kft-}BL5&ksdI3~wQfhIvP zR3%C=kx{){%E{L8Kv-iQG>8RdL)RLhMqeiLiXHdwF{J=!Qp?oY9jdnybA{`sF34hg zmt~4~wJ&WLptvdHa)J5l>4Z?5B#U{j*bMUd^Ebg17iFjpA^h%mYY;V_^9pL>I=W0H zZI^RK&U(}6uv6mZIAs&{@4?a3vGVTZLT*dg@76WSa=7Y{3I=q2b~+fG&_Hz6#MBM& zYPD(r()lD z>WYrxYI4g}->os$8ao(abngg7>nXd$^n^&jupR^E7 zzf0$d68(NAnxCTri~UQN#ZQuP3tg;z<7?vc$QYQALHm&wbV5%Oe~+9yL(u@oHO2S= z`Zs-%qb)L%@YYQ`{WRtv zGtQ7Rpj|yo?T=?n8|>y3QIaCWgS`yoTWZR9)lnaMNcIAp;`q2Qs{*oL>^RNR)0Cs;*^ zO)PfUml@+)aKr?&Q<#t{Gd36D^hSK=7FU?t|uu8 zN(VEZYL^>WAKhrTXQ<_LZQX*KN38z(Yk)fWbSwhT{%%))<4qBq(Mt#eJ3)g7g2xx= z(}r~7b({A&=hESmNdm^ENB6Q3R!()svo=7d=BG81c=a(z73MrSs@Vtu()(}*^*`h*C zu4rhvUYm-ich9D-(3zHohNOtZrK=sp<+_vv>km1RPgEC2zUqKNq2U1O7Nif=p$xfs z;DNcTJ%smyq7J|PmFLKHPRr_<8YoEb^Wk=J-b=wfCtoVL<}L1DtdplF)s z92!mSmC{bd{UZA{_P|ck&7b(0`cibJu^r-97XjY8Mp4l9!-%LQ%{-skL%!pg`}o^P zKt~how4%?YOZAHrXbRlP48{q3&0_bQ;1)EHTn@Q`!krYl9)_r9IoOVwDPlx&hQiKR zYE8aF=c=+frF)Yx=(4Z=ag}PAbr-KiTcT~+&sMWAN~9~nQmDa^C;`6vh)wo;hLF=V zN&U%WqG1OiePlZzPd_Ep_+C7*p9L;Ot@C3MB7$REr;TJ-#EImZ)3#d+JjsAy3EFC7rGk*ndn41l!7X&CsU_%Slzc`Y zR_kZdKOYw6h;naqF)@v2r(Eb42CEjeKkg;_k2GDW`FouT=&~jr6|dtf0<>3bBgfAD zY9=g0@DS02NcgN~y2(X>eeub$=VhIn3V``!jaH7= z)9SCBX)5vGRKAB}eqip>Ek}LiK)0U+7IZ0M&sbHpQC>nR9%HbqxpOQSr-vrCep);S zQA*>kc%2E@e}S>bZ&HAL7R2iPoPJYWCI>DAE;s+s<@HWK^1Muq^%h0Q{bzwQh|UrA zf=d#SymBYJ{%;3wE8%h0>P2=Z)^pK4la*DI%FJnJGl2uWdpQqMi(`%PqT}RYlg96Q_(Cb8cjZK4Zl;7J z`vGrqC=SDJuOR%N#L!8a7FpZ|ir;L6uQHIfaxlBeqr#r;k|V)`@cm3Pz>c32uu2H87F(LlTc)&k@v(=Y+CBI;PE&-i|CF8y{KLN2S?P36mq&8LlsNJ|0S36=ZH<`UZz}k}!k~HdI5Me(eJpLxbV_L{4u=GC1%Ke@)B3l}Y^>7C$f)1q zAVK$yn2egxPvhC{BeZx4fSnYtEUF+Nd0FVfQPP>$)&BlK#`jBuq81_s7Bu>4yC zlq~WGDgnmn=&UFBKvQvbI_DBV>ie72i&TD+U1PdTnf zJGjz@NGJ7;Y!UG5Zd`$njJxn~{}UJ*Aje((ySs6--Q_p=TMg`mq5WacZN629rv|#u zyU*W~HL(#t;0_6(H8}7&$b*J$%lrF%B8?3c;t?oF@G#eOMwedF(+zVl#?I+s{V@jV|3lOrP(+pIkdVVBN^zmPp16C$l-&!7I@Ryzv%uvlzNgZM~Bsi~`j#WdK-i zMIj-B=l&!FG7_-vS23`y4+%7Rz5%2A_=)~Lh&wl98xnj(YkYN9&un5%4{WGt!4sJn z3D#dk>fR!p_}q5iC_Qj49Q#ulXEXWbv0xBDRUfGCs-3GGtiq;#M95dHP&eU~g(x%8 z;W6&N^OMc?>t=qB$3H+S2+4RLG)|_?>9kE3JNjs~D&Th0Ttvj}*O0YF@y+%7nca!2 z2I2)guXv0H%od}fWUjeJBicu{E=Pm?(5RBWQuouaR!KN5Ubs@MMlR%Y?f#J0-mNR_ z5jz$_Z&^vn$kM`sr?9QRkhkxFkf_GZzDm}-U&>brOqmtWL0KwEE1W8_X5B(W$`*}i z{AS3W+ZuQ{rd8?^yT{FkrOAqBF$l>Mdo^!S1V)vWChpShdimMykYKvqhA?Kl6batZ zI^N$MzkNaK0u5a@6@f$KE1w<^BD_93r|N)%9&_EHu72O+>(IUI?d3ePXL({M8pKk6 z(%tbikdF(_q*SNB6m6IoV|@*>_-;yA8%{dhm~>CP*YNos1y;LNt+e^ZGpzyiAR3`J&u9T^2iitp* z&kK#piI+Mk|4Bg@AtSm$y`qZip?wr{Djj=pc3-9C zJPex9ZE*aE11`@O8S#0nNN<@LFfwEN_IR#A1-+!-7m7lL<$S8#*-%<)AN#MwNcBp% zU=CfUV8=hhs85IF^eXBgd9-43me= zxU|#9Zn}G>x6=FPrm4i$&0akD3#Bd0icgjtc9=e2hRk z&rf9Fg^9VKgSRs~_>@>_*`50t{qIjy*d7H&nP|mDV&v)f<9;b8nCo{p%^5C8&a%ji z?frZ_r*2{|grJr4KW}hw*f;~GJ*WAkD9!p>(CN-%V)Pm&OO%^MKEW%uv6uwJW&5iz zm`K7QXN|H;53J?m&5oZ*2n9SAiut{GO75X4dD$rl)8pw%iRVW12-+KZHeTe5RLTgP}rq*28X%p zXa0|Dul11XBbpIhOwg`LH2O!&j{|gq=Z%FQTP-Arjj-q}E2#=a=pQ#{G#_S^$c6>} zgtoAglBVQ=V5o>VmU|lsDqN3urkxGKT3XA?^X?yxjv{N#am?9mVrAH zjo|cLKij^X2VG75Zmd{a~9Fe%KlF|v2TIq@muq+0@Hd4_r(1*865 z|Ik3B<6sd+E1O=Ooc?_>e1HA&AG45LX^7{%=sztQLd)S;a}*e845Sthw$FARQ~Q$i zbGddPma3l(_NK?(4k=I8J3{_-$^1de4KZ2yfoDdL(OZz8aI#8OUka=4gvT(sYUjmI z<|`OI3R9jAU9y zPR_(HRqXV}IffiI9cXnOw_Va0IfB= zm^>2SeE-nntk+Re>`#IaGs%yMjPqffZaPuX1pr=XWp@xA0*e-m9xVmF5A5cVF)Q^)Lx3lZ^y&y@0(!{xXVVF!4psK zT?K}g$3+eORt9v~u-R3RToP0=?i$%XjN>BvRU{*zWUAP&Q!_Z`;9}wQ<20C^u!Dob z_jv1ecRdJIwn>f(r=~J2;R{FYp^O&L;jVxNi6|SkLgcpxo*`c>2e-HJTVjRP(7JJU zr2!>h-md|?TcZyopH93%nQM23ye}!(m_b)|OBv`C+tvFCV#ID<&Ivh)fYFsKPL_Nk z<@ft@YCn>oQ8clpn=e(4>&HpX=d{Ungh0hpz(~M==I|++69W_?wkp6OcMp|Tw6FQz z)AgwG$5!eQP~hh)(fA_o`lHaEqonAEKKQK-9mGhUrFAFR@?y0Sq6=zr>Ca#GcB z0S*!#o*zz3PR7h+mQ+HmpoqYdpu~4uA?;@?H&LqIZ1j^0KBvYp4q0p2jpvHyCEcA! z9VGR#K&+MKq;b8j|B>z8A9KozF%ZuIs*iVuh%Zt|=)4)r{Mrm7%g0Uw^isD09C#o* z(eL9oAy8h>P;?iP<(BGZ)7s+VV$^mMu3*R6i3552%CW26$Bxpqu76%v+0v4356%rY zzBGTxEU#P;!mQe9#7UCdos|{?d*{XozTW$L>V~u9yX}=ybuxLqJ+OXycVidw`fZ%{ zj48ti^72NFPe+p~8exXurzU``0-D`}uo!)id+x8@n7@Hf;vC<~0TxtOXk@uQU)$*3 z&h`n$!^El}ep5e4;nE|^Z5f6|tIdDHT)N_fb5M{I{V5By@2AUj6u~VfjQgdfvB`}d zPw#&`l7vvYxD)Lob~Dh;UQiEgn1JysUuokx=3Rm3+n=Z#DCi^HP1dpLx=GIXeh7_) zalt=@M}fjACa~C9P8nb_mu%xY5Q+ymWg}h}_7NBlDc*+P$vVYdT3)?zzu>@g?nVL( z+a0cIZFuT|y|*@n_M)8VDrTKs##B}J>EuZMgjwSqj4)r7GLr(0p9QMpRALrx`}fhX zIRfQG!Y|ndvEEn@$AWXbP!5U_1i!Q~>vrXR_v`^$RiAce4I}|jNEYbev@uMML(5+B ze7h~L7YKK7X?E{G_?REE^75#F#&uibYCqy<6DU_9-@iWp>3Sq5D3C#MPpMj_UfS-u z*UZgeI0p`gw5>bLQQmhhotw}H$Hws|^&!GxLia}?Si8EX!$demVlV}MSB~Gkg8cr- zXZ#GQsXg$NakLCF+J}Ef>_h{b1=PxCa%`Xg-`3$f&Ga&Me+}s*z&^VC)bG7 zm>HHy@pduKTRp#~=3+?+3=a()_emX^o(dz;)ZQru(-B|sJnp~0e!IPc5&-Jrlmsw8 z^bIsFXHRlwEyjS5lh4JBzmFupMgA8I^aZG!X4gc-ytlp|JDwbPN4vmZP0ZCENksrm zKIHmK@2!O_A5B;le*|&-a1z3D<=xJc1exoZ9D>%SxX?)O`ql^s=YBArkK-%?=U2A` zMDLiWuGb=Cwa>vW)Hf=k#DKXqL_8S1&JcA-2H&3P$P8!-nBFxFEy=zh>xb)G)DM9d zSuwo?G{gC=I=;Aa@OH6Jj}h0$YlM?ovi%WkP|z#_;hpkoP_FZI)Pgz8HA}&fh-0lk zktwtFxLmI{bW_|ULCj<;;DxI}m!dlmAa{)bHQ%J)>xQQ%yCVr-~T7ziR9n;VV5q-Am) zC~g(;hJjKcpO&J=cTt4>ssoKVxUJu&uiUBC=x@2V7gV>lGZ94*=!+W#D5|KiKK4@+ z5fx%Gz0>{i$A}p|BtztVDPJtth+1rzqDMPA=&7p-9QTd|mV*b78J6Kx5GTY|Qc;iS z@Ag`o1Aq@8gAXkWDoL$)0P&nB$D^)$M_iP$p)kCVAb!@d6{9gpJ8kWt&@YvU6mat7 zF#|4Y?4MbZ*{sp>|6H~~qYvy&`WtEaU(U%;nz$EUhGJ!-czI7AcG#EoT^8jyKfkI( zzWBq_4N$6D&r-ghZ~BqGnpnpJowSEpOfsEP!|)iw@=RUFsOz!PpCixp3MHufD1E86 zZ+7z;)!1yw`iev;oq5!=mF%Yf+GqMS-LwH827e7n^j+Il_Yf#tWqS3?t8s2f62hiW zi{0T%#_@H5MjhmJ3TCtyeRGCp5W(-x+nT)a)>=tsk|)WU=J=c@#i3E+cS<5x@C}VK zb~a1{XPwS_SkMkr6(T+1y zd&5E~kxOZ2B(s04^HE~(y-5QLidVyDQ5+(@Q&f0!AdOd>?LKd}J_7t)=!jSk*UAsz zsetm*0L;$?r1S5Rkk(j}#=91`qK({Mhn-IRXOz+N~ROtnj=FgaEcO?Mq0 zqi~c{_lduML1#q&aMROs4fkueEi<-S#B_!S1?2^eIwHb2*46WiF_R7jzu4rtY=}I- z0m>~;(O6zc#O~nfdL#*fujUT=I3)a#@m1Y zF5+fBg5hIdhOzVJn@9A8HE9|_We5f;qvf^^J2>Vi6StiTu=q?iiEkAyN{pJv~a%=Cq{iO!fWiy z)X)v<^9cEr``WR#Xn2rk8b$ibT{w+;dLs7`lBdy_)@Q{tRDX>;s6K@Jh1E8(gI#XU;V0fu)F-un%1tGx;BX+);do zjpKtd77So;zx=!Wz1Ix9!P!PHUOW)Jq#tKzzqf8?L=(R88E%SNlSf+6hV7vew9Mi2 z#fxCc(zc>%!j{Th&jp3~?vt@{rqyF@%mU>+gyRVG<$CXZtcO6LC^LT?dsZ3LNIi!g zkIm$d4Jd_(!3nNO8VpNk3H)KDfnj*iaz*?a zf#E#KbK+WsEKY)Lxba>oGja0pb3CQ0THkM?pN7v&zDR^?z6L$$axYmBR(X02BM~Y- zT0!eoe}+n_1~bF|cBvbkv?Bg!-u@l^?a>oqH?vkg?amM{kxUVZ57>noHnSg6f^oW3 z`w_=iWtAF6>v|Hzbmg`d^Z3Zo2jWq^HIGP*4Pe1$0i5s>$!9r>)DEow#Xa{2L*%pD z-RTVw95sdG<% zQRBe>h{i<)cse=|@`waz4-qj;8|+cL*^rMN5d>_G|NbrnUEanRfS{s6sX#s`Q}L5C z3HXm;h&gW&RN zw=js&a&-hd@xsx=$%y`)kn)^xWfD(wNm

4g9ouVe-@d)8PG?}pr6AB~ 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

0&^{};_Ilu6gNrpL2iu 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 literal 0 HcmV?d00001 diff --git a/frontend/src/components/admin/AddSegmentModal.vue b/frontend/src/components/admin/AddSegmentModal.vue index b23f1db..7c5d4c4 100644 --- a/frontend/src/components/admin/AddSegmentModal.vue +++ b/frontend/src/components/admin/AddSegmentModal.vue @@ -2,29 +2,27 @@ import { ref, computed } from "vue"; import type { SegmentType } from "@/types/segment"; import AssetUploader from "@/components/admin/AssetUploader.vue"; +import RichTextEditor from "@/components/admin/RichTextEditor.vue"; const emit = defineEmits<{ create: [data: { type: SegmentType; title: string; content: string; metadata?: Record }]; cancel: []; }>(); -const segmentTypes: { value: SegmentType; label: string }[] = [ - { value: "markdown", label: "Markdown" }, - { value: "pdf", label: "PDF" }, - { value: "video", label: "Video" }, - { value: "audio", label: "Audio" }, - { value: "iframe", label: "Iframe" }, - { value: "gallery", label: "Gallery" }, - { value: "link", label: "Link" }, +const segmentTypes: { value: SegmentType; label: string; description: string; icon: string }[] = [ + { value: "markdown", label: "Text", description: "Write formatted text, headings, and lists", icon: '' }, + { value: "gallery", label: "Images", description: "Display a photo gallery", icon: '' }, + { value: "pdf", label: "PDF", description: "Show a PDF document", icon: '' }, + { value: "video", label: "Video", description: "Embed a video file", icon: '' }, + { value: "audio", label: "Audio", description: "Embed an audio file", icon: '' }, + { value: "iframe", label: "Embed", description: "Embed an external website or tool", icon: '' }, ]; const selectedType = ref("markdown"); const title = ref(""); const content = ref(""); const galleryImages = ref([]); - const canSubmit = computed(() => { - if (!title.value.trim()) return false; if (selectedType.value === "gallery") return galleryImages.value.length > 0; if (selectedType.value === "markdown") return true; return content.value.trim().length > 0; @@ -67,82 +65,83 @@ const assetAcceptMap: Record = { class="fixed inset-0 z-50 flex items-center justify-center bg-black/40" @click.self="$emit('cancel')" > -

-

Add New Segment

+
+

Add a new section

- -
- -
+ +
+
- +
-
- +
+ - -

0&^{};_Ilu6gNrpL2iu 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 literal 0 HcmV?d00001 diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 57c300f..3e54ee9 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,7 +1,9 @@ diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d1a6c63b34cd8c1bc3c1630e5174ec345bfd4436 GIT binary patch literal 99366 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