147 lines
6.3 KiB
Markdown
147 lines
6.3 KiB
Markdown
# Aether Project Components
|
|
|
|
This document details the various UI components used throughout the Aether SvelteKit frontend project, categorized by their scope and functionality.
|
|
|
|
## 1. Aether Components (UI/UX)
|
|
|
|
### 1.1. System Components
|
|
|
|
These components are part of the core application shell and provide global functionalities.
|
|
|
|
- **`header`**: Application-wide header.
|
|
- **`main/module`s**: Main content area for modules.
|
|
- **`footer`**: Application-wide footer.
|
|
- **`app`**: Provides global application functionalities such as:
|
|
- Refresh application state.
|
|
- Clear IndexedDB.
|
|
- Clear local storage (settings).
|
|
- Toggle iframe visibility (also updates URL parameter).
|
|
- Copy current URL.
|
|
- Generate and display QR codes.
|
|
- **`menu`**: Various menus for different purposes:
|
|
- **`mode`**: Edit mode toggle, more options (all or details).
|
|
- **`access_type`**: Passcode input, clear access.
|
|
- **`user`**: Sign in/out, reset password, email link, change username and email.
|
|
- **`theme`**: Mode (light/dark), name (theme list).
|
|
- **`debug`**: Developer-facing tools:
|
|
- Toggle debug mode (also updates URL parameter).
|
|
- Show core and module storages.
|
|
- Manually set initial timestamp.
|
|
- **`scroll_to`**: Navigation controls for scrolling:
|
|
- Scroll to top of the page.
|
|
- Scroll page up.
|
|
- Scroll page down.
|
|
- Scroll to bottom of the page.
|
|
|
|
### 1.2. Core Components
|
|
|
|
These are reusable components that provide common functionalities across different modules.
|
|
|
|
- **`copy_btn`**: A button to copy content to the clipboard.
|
|
- Properties: `clipboard`, `bind:value`, `btn_text`, `btn_html`.
|
|
- **`txt_editor`**: A basic text area editor.
|
|
- **`md_editor`**: Markdown/rich-text editing handled by two active components:
|
|
- `element_editor_codemirror.svelte` — CodeMirror 6, used for source/code editing
|
|
- `element_editor_tiptap.svelte` — TipTap (WYSIWYG), used for rich-text content fields
|
|
- **`html_editor`**: HTML editor.
|
|
- **`media_player`**: Component for playing media files.
|
|
- Properties: `hosted_file`, `archive_content`, `media_player`.
|
|
- Bindings: `bind:host_id`, `bind:media_type`.
|
|
- Status: `stopped`, `paused`, `playing`.
|
|
- **`hosted_file_li`**: Manages a list of hosted files, making them available for selection.
|
|
- **`hosted_file_link_to`**: Lists links per object, with bindings to add/remove links.
|
|
- **`upload_to_host`**: Component for uploading files to the host.
|
|
- Handles multiple files.
|
|
- Properties: `link_type`, `link_id`, `inner fragment` (label html).
|
|
- Bindings: `bind:trigger`, `bind:show_spinner`, `bind:show_percent`.
|
|
- Status: `started`, `uploading`, `finished`.
|
|
- **`upload_file_tbl`**: Table for uploaded files, includes checks for duplicate file hashes and removal from the list.
|
|
- **`download_from_host`**: Component for downloading files from the host.
|
|
- Bindings: `bind:host_file_id`, `bind:filename`, `bind:file_ext`.
|
|
- Properties: `btn inner fragment`.
|
|
- Bindings: `bind:trigger`, `bind:show_spinner`, `bind:show_percent`.
|
|
- Status: `started`, `downloading`, `finished`.
|
|
- **`data_store`**: Component for interacting with data stores.
|
|
- **`element_ae_obj_field_editor`**: Standard single-field inline editor. Replaces retired `ae_crud` v1/v2 components.
|
|
- Props: `object_type`, `object_id`, `field_name`, `field_type`, `current_value`
|
|
- Field types: `text`, `textarea`, `select`, `tiptap`, `checkbox`, `date`, `datetime`, `number`
|
|
- Callbacks: `on_success`, `on_error`
|
|
- Respects `$ae_loc.edit_mode` — edit trigger hidden when edit mode is off.
|
|
- **`sql_qry`**: Component for executing SQL queries.
|
|
- **`obj_tbl`**: Object SQL results table or similar.
|
|
- **`qr_scanner`**: Component for scanning QR codes.
|
|
- **`websocket`**: Component for WebSocket communication.
|
|
|
|
### 1.3. Main / Module Components
|
|
|
|
These are components specific to main application sections or individual modules.
|
|
|
|
- **`menu`**:
|
|
- **`options`**: Various settings, show/hide content and options, limit, sorting options.
|
|
- **`actions`**: Various actions, sign in/out, email.
|
|
|
|
### 1.4. Object Menu
|
|
|
|
A standardized menu for interacting with objects.
|
|
|
|
- **Properties Displayed:** `id`, `name`, `group`, `priority`, `sort`, `alert`, `hide`, `enable`, `note`.
|
|
- **Future Properties:** `ext_id`, `ext_sys_id`, `code` (not yet ready).
|
|
- **Actions:** `create`, `view`, `edit`, `update`, `hide`, `disable`, `delete`, `alert` (message), `archive` (not yet ready).
|
|
- **Future Actions:** `copy`, `import`.
|
|
- **Sort Options:**
|
|
- `[default]`: `group > priority > sort (ASC/DESC) > alert > name`
|
|
- `[sort_updated]`: `group > priority > sort (ASC/DESC) > alert > updated_on > created_on`
|
|
- `[priority_updated]`: `group > priority > updated_on (ASC/DESC) > created_on`
|
|
- `[priority_name]`: `group > priority > name (ASC/DESC) > sort > alert > updated_on > created_on`
|
|
- `[name]`: `priority > name (ASC/DESC) > sort > alert > updated_on > created_on`
|
|
- `[created_on]`: `priority > created_on (ASC/DESC)`
|
|
- `[updated_on]`: `priority > updated_on (ASC/DESC) > created_on`
|
|
|
|
## 2. Pop-ups
|
|
|
|
Standardized structure for various types of pop-up elements.
|
|
|
|
- **`modal_header`**:
|
|
- `title`
|
|
- `close` button
|
|
- **`modal_main`**: Main content area of the modal.
|
|
- **`modal_meta`**: Meta-information section.
|
|
- **`modal_footer`**:
|
|
- `close` button
|
|
- **`Pop-up Modal (blocking)`**: A modal that blocks interaction with the rest of the page.
|
|
- `modal position`
|
|
- **`Pop-up Modal Inline`**: A modal that appears inline with content.
|
|
- `inline`, `inline-block`, `block` display options.
|
|
- **`Pop-up Dialog`**: A dialog box.
|
|
- `dialog position`
|
|
|
|
## 3. Containers
|
|
|
|
Generic container types used for layout and grouping.
|
|
|
|
### 3.1. Navigation
|
|
|
|
- `link`
|
|
- `download`
|
|
|
|
### 3.2. Forms
|
|
|
|
- `save` button/action
|
|
- `clear value` action
|
|
- `set null value` action
|
|
|
|
### 3.3. Other Containers
|
|
|
|
- `help`: Blue themed container.
|
|
- `info`: Blue themed container.
|
|
- `alert`: Yellow themed container.
|
|
- `warning`: Orange themed container.
|
|
- `error`: Red themed container.
|
|
- `message`: Green themed container.
|
|
|
|
## 4. CSS Styling for UI Elements
|
|
|
|
- **Warning/Hide Buttons:** `preset-tonal-warning hover:preset-filled-warning-500`
|
|
- **Error/Delete/Disable Buttons:** `preset-tonal-error hover:preset-filled-error-500`
|
|
- **Submenu:** `flex flex-row items-center justify-center gap-1`
|