- Centralize project-wide documentation into a new /documentation directory. - Remove old, deprecated README guideline files. - Create a comprehensive AETHER_API_OBJECTS.md file detailing all API data models.
6.3 KiB
6.3 KiB
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/modules: 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.
- Properties:
txt_editor: A basic text area editor.md_editor: Markdown editor.- Uses CodeMirror (planned for rich text editing).
- Note: ShadEditor TipTap is present but marked for removal. ShadCN components are also being phased out in favor of CodeMirror for text editing.
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.
- Properties:
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.
- Bindings:
data_store: Component for interacting with data stores.ae_crud: Generic CRUD (Create, Read, Update, Delete) component.- Note: Needs simplification.
- Properties:
obj,prop,current_value. - Bindings:
bind:value,bind:trigger,inner fragment.
ae_obj_prop_val: A wrapper for a function to manage object property values.- Bindings:
bind:obj_type,bind:obj_id,bind:obj_prop,bind:obj_value,bind:obj_new_value,bind:trigger,bind:show_spinner,bind:show_percent. - Status:
status,result.
- Bindings:
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:titleclosebutton
modal_main: Main content area of the modal.modal_meta: Meta-information section.modal_footer:closebutton
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,blockdisplay options.
Pop-up Dialog: A dialog box.dialog position
3. Containers
Generic container types used for layout and grouping.
3.1. Navigation
linkdownload
3.2. Forms
savebutton/actionclear valueactionset null valueaction
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:
variant-soft-warning hover:variant-filled-warning - Error/Delete/Disable Buttons:
variant-soft-error hover:variant-filled-error - Submenu:
flex flex-row items-center justify-center gap-1