# AE UI Components, Layout, and Style Standards (HTML/CSS)

## Aether Components
### System Components
* [header]
* [main/module]s
* [footer]
* [app] refresh, clear IDB, clear local storage (settings), iframe toggle (also updates URL param), copy URL, generate and show QR
* [menu][mode] edit, more (all or details)
* [menu][access_type] passcode input, clear
* [menu][user] sign in/out, reset password, email link, change username and email
* [menu][theme] mode (light/dark), name (theme list)
* [debug] toggle (also updates URL param), show core and module storages, manually set init timestamp
* [scroll_to] top, page up, page down, bottom

### Core Components
* [copy_btn] clipboard, bind:value, btn_text, btn_html
* [txt_editor] textarea
* [md_editor] CodeMirror, ShadEditor TipTap (need to remove)
* [html_editor]
* [media_player]
    * hosted_file archive_content media_player,
    * bind:host_id,
    * bind:media_type
    * status - stopped, paused, playing
* [hosted_file_li] manage_hosted_file_li, make available for selection
* [hosted_file_link_to] list links per object, bind:add link, bind:remove link
* [upload_to_host] - input_hosted_file; needs to handle multiple files
    * link_type,
    * link_id,
    * inner fragment - label html
    * bind:trigger
    * bind:show_spinner
    * bind:show_percent
    * status
    * result - started, uploading, finished
* [upload_file_tbl] input_hosted_file_tbl, check for dup file hash, remove from list
* [download_from_host]
    * bind:host_file_id
    * bind:filename
    * bind:file_ext
    * btn inner fragment
    * bind:trigger
    * bind:show_spinner
    * bind:show_percent
    * status
    * result - started, downloading, finished
* [data_store]
* [ae_crud] need to simplify! obj, prop, current_value, bind:value, bind:trigger, inner fragment
* [ae_obj_prop_val] - essentially a wrapper for the function
    * 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
    * result
* [sql_qry]
* [obj_tbl] obj sql results tbl or similar
* [qr_scanner]
* [websocket]

### Main / Module Components
* [menu][options] various settings, show/hide content and options, limit, sorting options, etc
* [menu][actions] various actions, sign in/out, email

### Object Menu
* properties: id, name, group, priority, sort, alert, hide, enable, note
* future properties: ext_id (not ready yet), ext_sys_id (not ready yet), code (not ready yet)
* actions: create, view, edit, update, hide, disable, delete, alert (message), archive (not ready yet)
* 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

### Pop-ups:
* modal_header
    * title
    * close
* modal_main
* modal_meta
* modal_footer
    * close
#### Pop-up Modal (blocking)
* modal position
#### Pop-up Modal Inline
* inline, inline-block, block
#### Pop-up Dialog
* dialog position

## Containers
### Navigation
* link
* download

### Forms
* save
* clear value
* set null value

### Other Containers
* help - blue
* info - blue
* alert - yellow
* warning - orange
* error - red
* message - green

---

## Need to organize:
* lu: id, account_id, for_obj_id, code, name, description, group, sort, priority, enable, perm_level