* build: enable consistent type imports eslint rule
* change to warn
* fix the warning in example and excalidraw-app
* fix packages
* enable type annotations and throw error for the rule
* Introducing fractional indices as part of `element.index`
* Ensuring invalid fractional indices are always synchronized with the array order
* Simplifying reconciliation based on the fractional indices
* Moving reconciliation inside the `@excalidraw/excalidraw` package
---------
Co-authored-by: Marcel Mraz <marcel@excalidraw.com>
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.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>