- [x] split up css - [x] split up server - [x] split up editor js - [x] image element base - [x] copy paste elements - [x] fix delete command - [x] paste image from clipboard [ ] pasting images from clipboard has performance issue on chrome [ ] serve as local file instead of b64? - [x] flip elements - [x] gif support - [x] rotate elements - [x] scale (some) element - [x] fix viewer - [x] text font size doesn't work - [x] moving elements gets weird if mouse is over moved element - [x] fix copy/paste - [x] fix text size box - [x] favicon - [x] opacity setting - [x] hide on stream option - [x] layer setting - [x] style settings dialog - [x] make settings window moveable - [x] fix scaling of objects not saving scale - [x] element transform origin setting - [x] element list - [x] move stream link to settings dialog - [x] remove heading bar - [x] pad preview container - [x] persistent storage for canvas size, window pos and stream link - [x] landing page - [x] server config - [x] serve from subfolder (in url) - [x] remove session id from url bar - [x] 7tv emote support - [x] favorites to quickly save and load elements - [x] x for deleting elements - [x] h for toggling visibility - [x] scaling depends on element position??? - [x] text background - [x] copy paste elements don't have unique id and name - [x] Enforce uuid for session id - [x] Basic documentation page - [x] Fix rotation behaving weirdly - [x] Fix only one session being saved - [x] More effecient transform message - [x] adding emotes only works when clicking directly on the emote - [x] moving windows doesn't account for padding - [x] Add audio element - [x] Add video element - [x] allow resolution change of image/video elements - [x] pasting video/audio links - [x] add volume slider to settings - [x] fix header options in mobile view - [x] add iframe element - [x] add option to interact with stream - [x] fade elements in/out - [x] update supported element types in documentation - [ ] select multiple items - [ ] move items - [ ] delete items - [ ] video/audio elements sometimes will not play anymore - [ ] don't re-implement entire update logic for text element