* init
* add: vite dev build working
* fix: href serving from public
* feat: add ejs plugin
* feat: migrated env files and ejs templating
* chore: add types related to envs
* chore: add vite-env types
* feat: support vite pwa
* chore: upgrade vite pwa
* chore: pin node version to 16.18.1
* chore: preserve use of nodejs 14
* refactor: preserve REACT_APP as env prefix
* chore: support esm environment variables
* fix ts config
* use VITE prefix and remove vite-plugin-env-compatible
* introduce import-meta-loader for building pacakge as webpack isn't compatible with import.meta syntax
* lint
* remove import.meta.env in main.js
* set debug flag to false
* migrate to vitest and use jest-canvas-mock 2.4.0 so its comp
atible with vite
* integrate vitest-ui
* fix most of teh test
* snaps
* Add script for testing with vite ui
* fix all tests related to mocking
* fix more test
* fix more
* fix flip.test.tsx
* fix contentxmenu snaps
* fix regression snaps
* fix excalidraw.test.tsx and this makes all tests finally pass :)
* use node 16
* specify node version
* use node 16 in lint as well
* fix mobile.test.tsx
* use node 16
* add style-loader
* upgrade to node 18
* fix lint package.json
* support eslint with vite
* fix lint
* fix lint
* fix ts
* remove pwa/sw stuff
* use env vars in EJS the vite way
* fix lint
* move remainig jest mock/spy to vite
* don't cache locales
* fix regex
* add fonts cache
* tweak
* add custom service worker
* upgrade vite and create font cache again
* cache fonts.css and locales
* tweak
* use manifestTransforms for filtering locales
* use assets js pattern for locales
* add font.css to globIgnore so its pushed to fonts cache
* create a separate chunk for locales with rollup
* remove manifestTransforms and fix glob pattern for locales to filter from workbox pre-cache
* push sourcemaps in production
* add comments in config
* lint
* use node 18
* disable pwa in dev
* fix
* fix
* increase limit of bundle
* upgrade vite-pwa to latest
* remove public/workbox so workbox assets are not precached
* fon't club en.json and percentages.json with manual locales chunk to fix first load+offline mode
* tweak regex
* remove happy-dom as its not used
* add comment
* use any instead of ts-ignore
* cleanup
* remove jest-canvas-mock resolution as vite-canvas-mock was patched locking deps at 2.4.0
* use same theme color present in entry point
---------
Co-authored-by: Weslley Braga <weslley@bambee.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
* tests: fix failing tests
* fix selection.test.tsx
* fix excalidraw.test.tsx and don't show image export when SaveAsImage is false in UIOptions.canvasActions
* more fixes
* require fake index db in setUp test to fix the tests
* fix regression
* fix: Bind keyboard events to excalidraw container
* fix cases around blurring
* fix modal rendering so keyboard shortcuts work on modal as well
* Revert "fix modal rendering so keyboard shortcuts work on modal as well"
This reverts commit 2c8ec6be8eff7d308591467fe2c33cfbca16138f.
* Attach keyboard event in react way so we need not handle portals separately (modals)
* dnt propagate esc event when modal shown
* focus the container when help dialog closed with shift+?
* focus the help icon when help dialog on close triggered
* move focusNearestTabbableParent to util
* rename util to focusNearestParent and remove outline from excal and modal
* Add prop bindKeyGlobally to decide if keyboard events should be binded to document and allow it in excal app, revert tests
* fix
* focus container after installing library, reset library and closing error dialog
* fix tests and create util to focus container
* Add excalidraw-container class to focus on the container
* pass focus container to library to focus current instance of excal
* update docs
* remove util as it wont be used anywhere
* fix propagation not being stopped for React keyboard handling
* tweak reamde
Co-authored-by: David Luzar <luzar.david@gmail.com>
* tweak changelog
* rename prop to handleKeyboardGlobally
Co-authored-by: dwelle <luzar.david@gmail.com>
* Remove width/height from the ".excalidraw" container so it will sized automatically.
* updated all ref calculation to ".excalidraw" instead of parent since now ".excalidraw" will get resized
* Remove props width/height as its not needed anymore.
* Resize handler is also not needed anymore.
* Position absolute canvas due to #3379 (comment)
* move css to style and remove one extra rerendering
* factor out mock logic for test
* set height, width so as to avoid unnecessary updates of regression snap
* better mock
* better type checking and omit width,height from getDefaultAppState and also restore
* revert
* default to window dimensions in constructor
* update docs
* update
* update
* tweaks
* feat: calculate coords based on parent left and top so it renders correctly in host App
* fix text
* move offsets to state & fix bugs
* fix text jumping
* account for zoom in textWysiwyg & undo incorrect offsetting
Co-authored-by: dwelle <luzar.david@gmail.com>
* Initial factoring out of parts of the LayerUI component
2360 → 2224 LOC
* Create a Section component
* Break up src/index.tsx
* Refactor actions to reduce duplication, fix CSS
Also consolidate icons
* Move scene/data.ts to its own directory
* Fix accidental reverts, banish further single-character variables
* ACTIVE_ELEM_COLOR → ACTIVE_ELEMENT_COLOR
* Further refactoring the icons file
* Log all errors
* Pointer Event polyfill to make the tests work
* add test hooks & fix tests
Co-authored-by: dwelle <luzar.david@gmail.com>
* Add touch support
* Mock media query
* Mock media query pt 2
* Fix tests
* Allow installing as an app on iOS
* Fix type error
* Math.hypot
* delete and finalize buttons, hint viewer
* skip failing tests
* skip the rest of the failing tests
* Hide the selected shape actions when nothing is selected
* Don’t go into mobile view on short-but-wide viewports
* lol
* Scaffold a simple test case for debugging
* Set up Jest environment that works with React
- Install and set up react-testing-library
- "Unignore" roughjs and browser-nativejs transformations
- Separate App component from ReactDOM
* Write first passing test
- Mock canvas
- Remove App file and mount/unmount ReactDOM on import
* Add tests for drag create behavior
* Fix comments in dragCreate
* Pin jest-mock-canvas dependency
* Remove dependency range for testing library
* Add tests for multi point mode and selection element
* Fix all tests due to decrease in updates to canvas when changing tools
* Disable state updates if component is unmounted
- Remove all event listeners
- Disable storing scene in state if component is unmounted
* Add tests for move and element selection
* Merge branch 'master' into add-integration-tests
* Add tests for resizing rectangle
* move unmounted check to syncActionResult method
* Use a custom test renderer instead of default testing-library functions
* Add custom query for selecting tools
* move files around
Co-authored-by: David Luzar <luzar.david@gmail.com>