# Journals Module

The Journals module provides a user-facing application for creating and managing personal journals. It can be used for various purposes such as a personal diary, a blog, a notebook, or any other form of chronological or topical record-keeping.

This directory (`src/routes/journals`) contains the Svelte components and pages that constitute the user interface for the Journals feature.

## Features

- **Journal & Entry Management:** The UI allows for full CRUD (Create, Read, Update, Delete) functionality for both journals and their entries.
- **Rich Content Editing:** Journal entries can be written using Markdown for rich text formatting.
- **Encryption:** The UI provides an interface for setting and using passcodes to encrypt and decrypt journal entries.
- **Offline Support:** The application uses a local IndexedDB cache (via Dexie.js) for all data, allowing for offline access and faster interactions. Data is synchronized with the backend API.

## UI Components & Pages

- `+page.svelte`: The main landing page that displays a list of all journals for the current user.
- `[journal_id]/+page.svelte`: The page for viewing a single journal and its list of entries.
- `ae_comp__journal_obj_li.svelte`: A component that renders the list of journals.
- `ae_comp__journal_obj_id_view.svelte`: A component for viewing the details of a selected journal.
- `ae_comp__journal_entry_obj_li.svelte`: A component that renders the list of entries for a journal.
- `ae_comp__journal_entry_obj_id_view.svelte`: A component for viewing the content of a single journal entry.
- `ae_comp__journal_obj_id_edit.svelte`: A modal component for creating and editing journals.

## Core Logic

The underlying data models, API interactions, and database logic for this module are located in `src/lib/ae_journals/`.
