* feat: integrate mermaidToExcalidraw
* create mermaid to excal dialog
* allow mermaid syntax and export in preview
* fix
* fix webpack config
* fix markdown error by using named export
* center preview
* set elements as selected when inserted onto canvas
* persist mermaid data to storage
* store canvas data in refs
* load mermaid lazily
* tweak design
* compute width, height correctly for arrows
* fix undefined vertex issue
* add mermaid icon in dropdown
* add a note in dialog
* reset preview when error
* show error in preview when error
* show mermaid error messgae react way
* design tweaks
* add example and docs link
* fix
* tweak design to remove scroll bar
* show a spinner unless mermaid loaded
* regenerate ids when needed via programmatic api, this makes sure for mermaid diagrams ids are regenerated
* tweak
* add option to transform viewport to scene coords in transform api
* make opts optional and use 100% zoom when inserting to canvas
* fix arrow bindings in safari and firefox
* fix elements insert position and viewport centering
* fix: Update start/end points by 0.5 so bindings don't overlap with start/end bound element coordinates.
* defer rendering the preview
* tweak text
* fix tests
* remove only
* make design responsive
* fix: show extra tools dropdown in mobile
* fix mobile css
* width auto
* upgrade mermaid-to-excalidraw
* don't pass appState in deps as its not used
* upgrade mermaid-to-excalidraw to fix firefox issue
* use types from mermaid-to-excalidraw
* upgrade mermaid-to-excalidraw
* use stable version of mermaid-to-excalidraw
* upgrade mermaid-to-excalidraw
* fix width of shapes toolbar for smaller screen size and also fix regression of mobile menu
* use i18n
* better api
* enable test coverage in ui
* Add tests
* use common utils to update and get text editor
* updgrade mermaid-to-excalidraw to support sequence diagrams
* fix test
* don't update arrow container height anytime in when redrawing text bounding box
* increase size limit
* increase size limit of vendor to 900kb
* use openDialog for mermaid
* upgrade mermaid-to-excalidraw
* update frame id post generation
* upgrade mermaid-to-excalidraw to add entity codes support
* update size limit
* upgrade mermaid-to-excalidraw package with frame api changes
* upgrade mermaid-to-excalidraw to remove directive and use config
* don't highlight mermaid tool and remove unused api setSelection
* stop using loading state to update text area
* move some styling to scss
* review fixes
* use modifiedTableIcon props and remove stale snap
* css
* dialog css
* fix snap
* use dialog border
* change mermaidToExcalidrawLib to state
* better styling of errors
* make modal bigger
* fix mobile
* update snaps
* fix icon color
* fix dark mode insert button color
* horizontally center spinner
* render canvas conditionally on loaded state
* rd tweaks
* tweak class names
* remove max height
* typo in example
* upgrade mermaid-to-excalidraw
* simplify error state
* fix height & overflow on vertical breakpoint
* fix lint
* show errors in overlay
* set textarea font family
* reduce opacity
* update snap
* upgrade to mermaid 0.1.2
---------
Co-authored-by: dwelle <luzar.david@gmail.com>
* feat: initial Laser pointer mvp
* feat: add laser-pointer package and integrate it with collab
* chore: fix yarn.lock
* feat: update laser-pointer package, prevent panning from showing
* feat: add laser pointer tool button when collaborating, migrate to official package
* feat: reduce laser tool button size
* update icon
* fix icon & rotate
* fix: lock zoom level
* fix icon
* add `selected` state, simplify and reduce api
* set up pointer callbacks in viewMode if laser tool active
* highlight extra-tools button if one of the nested tools active
* add shortcut to laser pointer
* feat: don't update paths if nothing changed
* ensure we reset flag if no rAF scheduled
* move `lastUpdate` to instance to optimize
* return early
* factor out into constants and add doc
* skip iteration instead of exit
* fix naming
* feat: remove testing variable on window
* destroy on editor unmount
* fix incorrectly resetting `lastUpdate` in `stop()`
---------
Co-authored-by: dwelle <luzar.david@gmail.com>
* Placed eraser into shape switcher (top toolbar).
Redesigned top toolbar.
* Redesigned zoom and undo-redo buttons.
* Started redesigning left toolbar.
* Redesigned help dialog.
* Colour picker now somewhat in line with new design
* [WIP] Changed a bunch of icons.
TODO: organise new icons.
* [WIP] Organised a bunch of icons. Still some to do
* [WIP] Started working on hamburger menu.
* Fixed some bugs with hamburger menu.
* Menu and left toolbar positioning.
* Added some more items to hamburger menu.
* Changed some icons.
* Modal/dialog styling & bunch of fixes.
* Some more dialog improvements & fixes.
* Mobile menu changes.
* Menu can now be closed with outside click.
* Collab avatars and button changes.
* Icon sizing. Left toolbar positioning.
* Implemented welcome screen rendering logic.
* [WIP] Welcome screen content + design.
* Some more welcome screen content and design.
* Merge fixes.
* Tweaked icon set.
* Welcome screen darkmode fix.
* Content updates.
* Various small fixes & adjustments.
Moved language selection into menu.
Fixed some problematic icons.
Slightly moved encryption icon.
* Sidebar header redesign.
* Libraries content rendering logic + some styling.
* Somem more library sidebar styling.
* Publish library dialog styling.
* scroll-back-to-content btn styling
* ColorPicker positioning.
* Library button styling.
* ColorPicker positioning "fix".
* Misc adjustments.
* PenMode button changes.
* Trying to make mobile somewhat usable.
* Added a couple of icons.
* Added some shortcuts.
* Prevent welcome screen flickering.
Fix issue with welcome screen interactivity.
Don't show sidebar button when docked.
* Icon sizing on smaller screens.
* Sidebar styling changes.
* Alignment button... well... alignments.
* Fix inconsistent padding in left toolbar.
* HintViewer changes.
* Hamburger menu changes.
* Move encryption badge back to its original pos.
* Arrowhead changes.
Active state, colours + stronger shadow.
* Added new custom font.
* Fixed bug with library button not rendering.
* Fixed issue with lang selection colours.
* Add tooltips for undo, redo.
* Address some dark mode contrast issues.
* (Re)introduce counter for selectedItems in sidebar
* [WIP] Tweaked bounding box colour & padding.
* Dashed bounding box for remote clients.
* Some more bounding box tweaks.
* Removed docking animation for now...
* Address some RTL issues.
* Welcome screen responsiveness.
* use lighter selection color in dark mode & align naming
* use rounded corners for transform handles
* use lighter gray for welcomeScreen text in dark mode
* disable selection on dialog buttons
* change selection button icon
* fix library item width being flexible
* library: visually align spinner with first section heading
* lint
* fix scrollbar color in dark mode & make thinner
* adapt properties panel max-height
* add shrotcut label to save-to-current-file
* fix unrelated `useOutsideClick` firing for active modal
* add promo color to e+ menu item
* fix type
* lowered button size
* fix transform handles raidus not accounting for zoom
* attempt fix for excal logo on safari
* final fix for excal logo on safari
* fixing fhd resolution button sized
* remove TODO shortcut
* Collab related styling changes.
Expanding avatar list no longer offsets top toolbar.
Added active state & collaborator count badge for collab button.
* Tweaked collab button active colours.
* Added active style to collab btn in hamburger menu
* Remove unnecessary comment.
* Added back promo link for non (signed in) E+ users
* Go to E+ button added for signed in E+ users.
* Close menu & dropdown on modal close.
* tweak icons & fix rendering on smaller sizes [part one]
* align welcomeScreen icons with other UI
* switch icon resize mq to `device-width`
* disable welcomeScreen items `:hover` when selecting on canvas
* change selection box color and style
* reduce selection padding and fix group selection styling
* improve collab cursor styling
- make name borders round
- hide status when "active"
- remove black/gray colors
* add Twitter to hamburger menu
* align collab button
* add shortcut for image export dialog
* revert yarn.lock
* fix more tabler icons
* slightly better-looking penMode button
* change penMode button & tooltip
* revert hamburger menu icon
* align padding on lang picker & canvas bg
* updated robot txt to allow twitter bot and fb bot
* added new OG and tweaked the OG state
* add tooltip to collab button
* align style for scroll-to-content button
* fix pointer-events around toolbar
* fix decor arrow positioning and RTL
* fix welcomeScreen-item active state in dark mode
* change `load` button copy
* prevent shadow anim when opening a docked sidebar
* update E+ links ga params
* show redirect-to-eplus welcomeScreen subheading for signed-in users
* make more generic
* add ga for eplus redirect button
* change copy and icons for hamburger export buttons
* update snaps
* trim the username to account for trailing spaces
* tweaks around decor breakpoints
* fix linear element editor test
* remove .env change
* remove `it.only`
Co-authored-by: dwelle <luzar.david@gmail.com>
Co-authored-by: Maielo <maielo.mv@gmail.com>
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
* Add RTL styles. Most of the work is done by the browser 💖
* Refactor getLanguage
* Additional fixes
* Mirror the mouse pointer icon
* Move the vertical scrollbar to the left on RTL
* Revert "Mirror the mouse pointer icon"
This reverts commit f69b132538.
* Restyle the bottom bar on mobile as an Island
* Shorter label for collaboration button, truncate too-long button labels
* Refactor safe area things to global vars
* Fix scroll bar positioning, don’t block scrollbars with menu island
* Update text
* support ToolIcon className and fix label padding
* factor some ExportDialog classes out to Modal
* initial RoomDialog prototype
* change label for another-session button
* remove unused css
* add color comments
* Move the collaboration button to the main menu, add support for mobile
* remove button for creating another session
* add locks
* Fix alignment issue
* Reorder button
* reuse current scene for collab session
* keep collaboration state on restore
Co-authored-by: Jed Fox <git@twopointzero.us>
* Make Undo & Redo and the menu buttons into actions; add undo/redo buttons
* Create variables for the ToolIcon colors
* Darken the menu buttons when they’re active
* Put the more intensive test in `perform`
* Fix & restyle hint viewer
* Add pinch zoom for macOS Safari
* Chrome/Firefox trackpad pinch zoom
* openedMenu → openMenu
* needsShapeEditor.ts → showSelectedShapeActions.ts
* Call showSelectedShapeActions
* Disable text selection
* Set content-editable=plaintext-only to disable Touch Bar formatting buttons
* Enlarge resize handle tap targets for pen/touch
* Make the lock button a button in mobile mode
* Use icons instead of Unicode characters; add an alternate toolbar for creating multipoint lines
* Allow buttons to hide themselves
* Fix heuristic for showing shape actions
* Refactor icons
* Fix label for edit button
* Switch edit button icon
* Remove lock button on mobile
* Add language selector on mobile
* Fix showing edit button on mobile
* Fix showing edit button on mobile, part 2
* Fix handle touch regions
* Fix scroll-back button position
* Allow using the text tool on a text object to start editing it
* Fix deletion of last point in line
* Initial support for mobile devices
No editing yet, but UI looks nice and you can open the canvas menu
* Add support for editing shape color, etc
* Allow the mobile menus to cover the shape selector
* Hopefully fix test error
* Fix touch on canvas
* Fix safe area handling & remove unused Island
* Add keybindings for shapes
I'm not 100% sure about this one. I feel like it's going to help people be a lot more productive to display the key bindings at all time. But it also clutters the UI...
* increase font-size
* fix shape keybindings for non-qwerty keyboards
* tweak position and color
Co-authored-by: David Luzar <luzar.david@gmail.com>
* Add a gap between shapes and lock
The lock is a different type as the rest of the shapes, so we should visually separate it.
* redesign lock icon
Co-authored-by: David Luzar <luzar.david@gmail.com>
Sorry my OCD is kicking in... It's super weird that the base of the lock moves when we check / unckeck it. Instead, just the semi-circle shape should move (what this PR implements).
* Introduce shape lock
* Format code with prettier
* Do not reset elementLocked on selection change
* Don't set isSelected to true if element is locked
* Don't reset the cursor
* Move reset cursor call to better spot
* Run prettier + lint
* Redisign idea
* Code cleanup
* Fixed to right container
* Reoredered layout
* Reordering panels
* Export dialog
* Removed redunant code
* Fixed not removing temp canvas
* Fixed preview not using only selected elements
* Returned file name on export
* Toggle export selected/all elements
* Hide copy to clipboard button if no support of clipboard
* Added border to swatches
* Fixed modal flickering