# 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
