Closes https://github.com/KittyCAD/engine/issues/3494. Thanks to @nadr0 for helping on the JS side.
If users set their units, the grid will stop auto scaling, and instead will be set to 10 of whatever unit they used.
If users set their units, and those units are metric, then it'll include a scale bar (see screenshot). Imperial units won't have that bar.
This behaviour is configurable via settings.
## Limitations
- The scale bar below the grid cannot be disabled in metric units, and cannot be enabled in imperial units
<img width="1690" alt="Screenshot 2025-06-05 at 7 51 41 PM" src="https://github.com/user-attachments/assets/c597087c-f96d-4c30-95f4-b3d8ba2b5567" />
* Enable optional arguments in point-and-click Sweep
Fixes#7578
* Fix bug and add e2e test step
* Fix review not triggering bug and e2e test
* WIP: Enable optional arguments in point-and-click Loft
* Add edit flow for loft
* WIP: e2e test and fix
* Got it
* Got it v2 🤦
* use face edge info for some mirrors
* add functionality for other mirror function
* Fix to create new Sketch when mirror results in a new path
* use the original ids and clone the sketches
* remove mirror param
* clippy fix
* debuggin, rm yarn
* Revert "remove mirror param"
This reverts commit a848e243f8.
* use arrbitrary edge_id as sketch mirror id
* additinoal clenaup
* Update rust/kcl-lib/src/std/mirror.rs
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* set .mirror for continuous case
* fix warning
* works without the for loops
* add error handling
* remove duplicate setter
* rm unused var
* clenaup
* unused import
* remove unused let
* Update snapshots
* Update snapshots
* cleanup
* update sim tests
---------
Co-authored-by: gserena <serena@zoo.dev>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add building the artifact graph in mock execution
* Update output
* Add updating the artifact graph after mock execution
* Fix spelling
* Fix to return it all the way
* Fix to not make artifact fields undefined in TS
* WIP: Add bidirectional args to point-and-click Extrude
Will eventually close#7495
* Wire up edit flow for symmetric
* Show skip true args in header in review phase
* Add bidirectionalLength
* Make currentArg always part of header
* WIP
* Add twistAng
* Proper optional args line in review
* Labels in progress button and option arg section heading
* Clean up extrude specific changes
* Clean up to separate from #7506
* Clean up to separate from #7506
* More clean up across branches
* More UI polish
* Remove options bool icon
* Fix labels for tests
* Upgrade e2e tests to cmdBar fixtures with fixes
* More fixes
* Fixed up more tests related to sweep behavior change
* Fix nodeToEdit not having hidden: true on Shell
* Add typecheck
* WIP: footer buttons
* back to reg width
* Clean up
* Update snapshots
* Update snapshots
* Clean up
* Fix tests and remove label
* Refactor
* Fix offset plane test
* Add CommandBarDivider
* Fix step back
* Update snapshots
* Add comment
* Fix it, thanks bot
* Clean up and inline optional heading
* Little case tweak
* Update src/components/CommandBar/CommandBarReview.tsx
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Rename to CommandBarHeaderFooter
* Rename to CommandBarHeaderFooter
* Clean things up and fix edit
* Add test
* Revert something quick
* Reorg args to match kcl order
* Clean up edit arg retrieval error checks
* Lint
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
# Background
The KCL interpreter (written in Rust) reports errors, lints and other diagnostics as UTF-8 source range offsets. JavaScript, including CodeMirror, represents source code as UTF-16 strings.
# Problem
This means the UTF-8 source ranges sent from Rust don't correspond to the same text in the JS UTF-16 GUI. At best, this means the source ranges highlight the wrong thing if you use non-ASCII characters. At worst, it can cause exceptions by trying to highlight a range that doesn't even exist.
Here's the problem, on main:
<img width="178" alt="Screenshot 2025-06-20 at 11 52 03 AM" src="https://github.com/user-attachments/assets/9a4e75bf-965f-49d8-b238-8868b35912a1" />
# Solution
We define a KCL SourceRange as _always_ being UTF-8. This means if a source range is constructed in JS, it should be converted to UTF-8. When these ranges are converted into CodeMirror diagnostics, they should be converted to UTF-16.
Here's the same code as above, but on this branch:
<img width="170" alt="Screenshot 2025-06-20 at 11 50 55 AM" src="https://github.com/user-attachments/assets/a5b971c0-0b02-4acd-8fcf-5a133331682b" />
Closes https://github.com/KittyCAD/modeling-app/issues/4327
* WIP: Add bidirectional args to point-and-click Extrude
Will eventually close#7495
* Wire up edit flow for symmetric
* Show skip true args in header in review phase
* Add bidirectionalLength
* Make currentArg always part of header
* WIP
* Add twistAng
* Proper optional args line in review
* Labels in progress button and option arg section heading
* Clean up extrude specific changes
* More UI polish
* Remove options bool icon
* Fix labels for tests
* Upgrade e2e tests to cmdBar fixtures with fixes
* More fixes
* Fixed up more tests related to sweep behavior change
* Fix nodeToEdit not having hidden: true on Shell
* Add typecheck
* WIP: footer buttons
* back to reg width
* Clean up
* Clean up
* Fix tests and remove label
* Refactor
* Fix offset plane test
* Add CommandBarDivider
* Fix step back
* Add comment
* Fix it, thanks bot
* Clean up and inline optional heading
* Little case tweak
* Update src/components/CommandBar/CommandBarReview.tsx
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Rename to CommandBarHeaderFooter
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>