* 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>
* feat: Introduce ExcalidrawData provider so that app state and elements need not be passed to children
* fix
* fix zen mode
* Separate providers for data and elements
* pass appState and elements to layerUI
* pass appState and elements to selectedShapeActions
* pass appState and elements to MobileMenu
* pass appState to librarymenu
* rename
* rename to ExcalidrawAppState
* save penMode and penDetected to browser cache
* added on pointer down
* added onPointerDown
* factor out and merge handlers
Co-authored-by: dwelle <luzar.david@gmail.com>
* feat: update eraser cursor
* fix dark theme
* check before adding active class
* use custom cursor instead of DOM manipulation
* cache canvas and redraw only when theme changes
* use oc colors
* remove
* cache preview data url
* increase linwidth
* update coords for cursor
* add white 2px outline
* improvements
* use 1px line width 6px radius for outer
* improve
* feat: Add Eraser 🎉
* Eraser working
* remove unused state
* fix
* toggle eraser
* Support deselect with Alt/Option
* rename actionDelete -> actionErase
* Add util isEraserActive
* show eraser in mobile
* render eraser conditionally in mobile
* use selection if eraser in local storage state
* Add sampling to erase accurately
* use pointerDownState
* set eraser to false in AllowedExcalidrawElementTypes
* rename/reword fixes
* don't use updateScene
* handle bound text when erasing
* fix hover state in mobile
* consider all hitElements instead of a single
* code improvements
* revert to select if eraser active and elements selected
* show eraser in zenmode
* erase element when clicked on element while eraser active
* set groupIds to empty when eraser active
* fix test
* remove dragged distance
* fix: ensure verticalAlign properties not shown when no element selected
* show verticalAlign prop if selection contains at least one applicable element
* simplify
* feat: support vertical text align for bound containers
* update icons
* use const
* fix lint
* rename to and show when text editor active
* don't update vertical align if not center
* fix svgs
* fix y coords when vertical align bottm
Co-authored-by: dwelle <luzar.david@gmail.com>
* chore: Add tracking for hyperlinks
* update
* fix
* remove
* tweak
* disable ga logging in dev again
* add logging for hyperlink `edit` & support for tracking in manager
* event label tweaks
* fix tests & make more typesafe
Co-authored-by: dwelle <luzar.david@gmail.com>
* feat: Support hypelinks
* dont show edit when link not present
* auto submit on blur
* Add link button in sidebar and do it react way
* add key to hyperlink to remount when element selection changes
* autofocus input
* remove click handler and use pointerup/down to show /hide popup
* add keydown and support enter/escape to submit
* show extrrnal link icon when element has link
* use icons and open link in new tab
* dnt submit unless link updated
* renamed ffiles
* remove unnecessary changes
* update snap
* hide link popup once user starts interacting with element and show again only if clicked outside and clicked on element again
* render link icon outside the element
* fix hit testing
* rewrite implementation to render hyperlinks outside elements and hide when element selected
* remove
* remove
* tweak icon position and size
* rotate link icon when element rotated, handle zooming and render exactly where ne resize handle is rendered
* no need to create a new reference anymore for element when link added/updated
* rotate the link image as well when rotating element
* calculate hitbox of link icon and show pointer when hovering over link icon
* open link when clicked on link icon
* show tooltip when hovering over link icon
* show link action only when single element selected
* support other protocols
* add shortcut cmd/ctrl+k to edit/update link
* don't hide popup after submit
* renderes decreased woo
* Add context mneu label to add/edit link
* fix tests
* remove tick and show trash when in edit mode
* show edit view when element contains link
* fix snap
* horizontally center the hyperlink container with respect to elemnt
* fix padding
* remove checkcircle
* show popup on hover of selected element and dismiss when outside hitbox
* check if element has link before setting popup state
* move logic of auto hide to hyperlink and dnt hide when editing
* hide popover when drag/resize/rotate
* unmount during autohide
* autohide after 500ms
* fix regression
* prevent cmd/ctrl+k when inside link editor
* submit when input not updated
* allow custom urls
* fix centering of popup when zoomed
* fix hitbox during zoom
* fix
* tweak link normalization
* touch hyperlink tooltip DOM only if needed
* consider 0 if no offsetY
* reduce hitbox of link icon and make sure link icon doesn't show on top of higher z-index elements
* show link tooltip only if element has higher z-index
* dnt show hyperlink popup when selection changes from element with link to element with no link and also hide popover when element type changes from selection to something else
* lint: EOL
* fix link icon tooltip positioning
* open the link only when last pointer down and last pointer up hit the link hitbox
* render tooltip after 300ms delay
* ensure link popup and editor input have same height
* wip: cache the link icon canvas
* fix the image quality after caching using device pixel ratio yay
* some cleanup
* remove unused selectedElementIds from renderConfig
* Update src/renderer/renderElement.ts
* fix `opener` vulnerability
* tweak styling
* decrease padding
* open local links in the same tab
* fix caching
* code style refactor
* remove unnecessary save & restore
* show link shortcut in help dialog
* submit on cmd/ctrl+k
* merge state props
* Add title for link
* update editview if prop changes
* tweak link action logic
* make `Hyperlink` compo editor state fully controlled
* dont show popup when context menu open
* show in contextMenu only for single selection & change pos
* set button `selected` state
* set contextMenuOpen on pointerdown
* set contextMenyOpen to false when action triggered
* don't render link icons on export
* fix tests
* fix buttons wrap
* move focus states to input top-level rule
* fix elements sharing `Hyperlink` state
* fix hitbox for link icon in case of rect
* Early return if hitting link icon
Co-authored-by: dwelle <luzar.david@gmail.com>
* Update a bunch of icons to be mirrored in RTL
* Fix RTL layout issues in in zen mode and collaboration
* Small change to the shortcuts dialog to make isRTL unnecessary
* Tweaks to alignment in RTL
Co-authored-by: Maximilian Massing <maximilian.massing@googlemail.com>
Co-authored-by: Sven Kube <github@sven-kube.de>
Co-authored-by: Maximilian Massing <massing@sipgate.de>
* show group and ungroup action-icon
* change group-icon visiblilty
don't show group if selected is only a single element or a single group of elements
Co-authored-by: rene_mbp <harryloveslearning@googlemail.com>