* actually test that we dont exit sketch mode on first escape
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* better test
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* zoom to fit on load
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* lint
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* add zoom to fit calls to the correct places
* update comment
* clean up comment
* add snapshot test zoom to git
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* subscribe to camera updates from zoom to fit
* fix types
* partial test fix
* updatges
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* fix another test
* remove my enhancements
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Check the winnow ParseError before indexing
From the winnow docs at[1]
> The location in ParseError::input where parsing failed
>
> Note: This is an offset, not an index, and may point to the end of input
> (input.len()) on eof errors.
This will bounds check the index before slicing into the `input` vec,
and return an EOF erorr rather than an unknown token error.
[1]: https://docs.rs/winnow/latest/winnow/error/struct.ParseError.html#method.offset
I have a hunch somewhere something is mixing up bytes and chars (more
specifically, a codepoint or grapheme), which is causing bounds to go
past the end of the list since something is talking byte indexes and
the other is dealing with char/codepoint indexes.
For now this is going to fix the crash, but the EOF error may be masking
an actual bad token error in some cases? Our code looks right, so I'm
not quite sure what is going on in the winnow internals here.
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* draft #2279
Add client side gizmo #2279, work in progress
* draft #2279
unreliableSubscriptions
* draft #2279
nice Gizmo
* blue ring
give the canvas a round shape and a border, wrapping rounded div element around the canvas
* Refactor Gizmo Component
Extracted reusable constants
Modularized the code
Simplified the useEffect logic
Added TypeScript type annotations
Improved overall code structure and readability
* remove old gizmo
* fmt
* styling and relocation
Add className "pointer-events-none" to gizmo wrapper div (for now to prevent context menu)
Make LowerRightControls container element have these classNames: flex flex-col items-end gap-3
Move gizmo into LowerRightControls.tsx as the first child of the section element
Remove the fixed styling from the gizmo div so it flows in flexbox
* fmt
* fix camera up problem
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* up tweak
* Revert "up tweak"
This reverts commit a53a0ef240.
* test tweak
* tweak test
---------
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@kittycad.io>
There are many places in the executor codebase which evaluate an AST expression and produce a KCL memory item. They could be deduplicated and put into one central location.
Fixes <https://github.com/KittyCAD/modeling-app/issues/1931>.
Simplify the fuzzer a bit
This is the same code, but we'll offload the string parsing to the fuzz
lib, and we can inline the `if Ok(v)`
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* Save part images when navigating home
* Load part images in project cards if available
* Polish home page
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Merge branch 'main' into franknoirot/project-images
* Mostly restored link + form functionality
* Working cards with images
* Comment out project image stuff
* Little style tweaks
* Remove unused imports
* More minor styling tweaks
* Merge branch 'main' into franknoirot/project-images
* Was using the wrong imported `Project` type
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Revert any docs changes
* Revert wasm-lib divergences
* Move ProjectCard into its component folder
* Remove unused hook useSaveVideoFrame
* Remove "hideOnLevel" config from theme setting
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* plumbus fixes
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Simplify the pentagon test
* Fix up triangle png
* Triangle plumbuses now face the camera
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
Port forward to ts-rs 8.1
We're just waiting on a release that includes a PR that we sent[1] for this
to use the cargo version. For now we'll have to use the git release.
[1]: c5109a00e4
* Add keyboard shortcuts for sketch and modeling tools
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Add a playwright test
* skip linux
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* fmt fml
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Give more generous test timeout for worst case engine runs
* Fix up test mouse clicks after zoom bug fixes
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
* make rust function with lots of tests
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* pull thru function to tauri and app
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* one more test;
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Cut release v0.21.6
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* make sure there is at least one kcl file in the dir to show in list
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* open the correct file not assuming main.kcl
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* add file path tests
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* update settings paths
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* new images
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Reset inSequence back to 1 every time we connect to the Engine,
otherwise we'll continue to think the current sequence is a high number
(while the engine has no memory of the last session -- and may even be a
new engine instance!) and ignore messages until we pass that counter
again.
Signed-off-by: Paul Tagliamonte <paul@zoo.dev>
* Add stdlib functions for getting sketch profile start and its components
* Fix it up and actually generate snapshots
* cargo fmt
* Use `.to` instead of `.from`
* Update docs with EXPECTORATE=overwrite
* Add README
* fmt
* Update flow test to account for more autocompletion options when typing "start"
---------
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>