* Allow point-and-click Substract to take in multiple tools
Fixes#7612
* Change target to solids for consistency and make it support multi select too
* Improve err message
* Update src/lang/modifyAst/boolean.ts
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Update src/lang/modifyAst/boolean.ts
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Good bot
* Reduce array to single value if len 1
* Remove console.log
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* 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 🤦
* 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>
* Add edit flow to named parameters, show their value in feature tree
* Amend a feature tree test to include editing a parameter
* Enforce disallowing "create new variable" in edit parameter flow
* Add wrapping behavior! Sorry forgot to commit this
* Update src/machines/commandBarMachine.ts
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* fix edge case of sketch not being exited out of properly
* Update e2e/playwright/sketch-tests.spec.ts
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Jace Browning <jacebrowning@gmail.com>
* handle if graphSelections is empty
* fix removeConstrainingValuesInfo by using pathToNodes if available instead of selectionRanges: current selection should not be required to remove constraints
* selectionRanges not needed for removeConstrainingValuesInfo anymore
* fix remove constraint unit test: pass line's pathToNode instead of argument to remove constraint
* Turn sketch exit execute into actor, no more racey exits
* Turn sketch exit execute into actor, no more racey exits
* Fix types
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
* successfully transition to sketch idle
* get constraint to mod code
* clean up
* remove .only
* Fixed tsc
---------
Co-authored-by: lee-at-zoo-corp <lee@zoo.dev>
* First pass at consistency in modelingMachine codemods
* Add 'no kcl errors' guard instead of if check for all the existing ones
* Add more commands and improve consistency
* Add comments
* Fix test with old kcl that was showcasing the very behavior we're trying to fix
https://kittycadworkspace.slack.com/archives/C07A80B83FS/p1747231832870739?thread_ts=1747231178.515289&cid=C07A80B83FS
* Add test for sketch and helix
* Remove guard use and move hasErrors check closer to updateAst calls
* Revert "Remove guard use and move hasErrors check closer to updateAst calls"
This reverts commit 868ea4b605.
* Remove toasts from guards
* Remove some scene.settled calls
* Lint
* More shaky fixes
* Clean up and more test fixes
---------
Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com>
Only include the file pane on desktop. This should encourage users to
try point-and-click and feature tree workflows. After #6629 is
completed, we should default to the code pane being closed.
* constrain profile start
* add test
* make sure it works on segment drag too, fix tests
* remove old log
* some tests fixes
* Bump more segment counters
* Two more fixes
* Two more test fixes
* small test fix
* moretest fixes
* another test
---------
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
Co-authored-by: Pierre Jacquier <pierre@zoo.dev>
* start of migrate to multi file endpoint
* get some relative path stuff sorted
* blobifying files, and making selections work with imports working
* add write to disk
* warn about big projects
* update known circular
* update snapshot
* remove log
* tweak selection filters
* Update src/components/ModelingMachineProvider.tsx
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* fmt
* fix one thing
* typo
* raw dog form data like a fucking peasant
* remove fake data
* fmt
* steal Kevin's stuff
* good progress
* clean up
* fix writing to files when response returns
* comment the terriable code
* push fix of sorts
* better fix
* spot of clean up
* fix: Needed to support the bad request flow, the toast will hang forever, the return control flows don't dismiss a forever toast
* fix: handling more error flows by dismissing the toast
* chore: leaving a comment for a confusing workflow
* fix: trying to clean up some async logic
* fix: trying to fix a few things at once...
* fix: fixing toast success
* fix: how did this desync?
* fix: removing useless logic, we write to disk ahead of time, the continue is to say ya no problem
* fix: typo
* Change back to `spawnChild`, forego `actors` by reference
* fix: updating PR comments
* fix: found a bug with paths from rust! it is actually OS paths!
* fix: updated type still is failing tsc
* fix: the type of the machine was wrong, we always set it to at least ''
* fix: idk man
* Fix happy path test (button labels)
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Kevin Nadro <kevin@zoo.dev>
Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com>
Co-authored-by: Kevin Nadro <nadr0@users.noreply.github.com>
Co-authored-by: Pierre Jacquier <pierre@zoo.dev>
* feature: initialize system to view_isometric, playwright(e2e) does zoom_to_fit
* fix: PR fixes
* fix: removing testing code
* fix: I definitely bricked my .spacemacs config and it is using the wrong eslint when I save files :(
* fix: typo
* fix: typoos
* fix: fuking hack
* chore: move exported var from e2e to src then reimport
* fix: got em
* fix: remove console log
* fix: how did this get in that file?? moved it
* fix: location for scene empty check zzz:
* fix: removed debugging code
* fix: forgot the hack for the load view without geometry workflow
* fix: copy
* Fix operations to reflect concurrent module import behavior
* Add new generated output
* Fix root module import tracking
* Rename test so that it's easier to filter
* Update output ops
* Fix clippy
* Update output after rebase
* Update multi-axis-robot flowchart output
* Disable e2e tests until future PR
* WIP: Update Insert and Transform codemods to match new import behavior
Fixes#6570
* Fix operations to reflect concurrent module import behavior
* Add new generated output
* Fix root module import tracking
* Rename test so that it's easier to filter
* Update output ops
* Fix clippy
* Update output after rebase
* Disable e2e tests until future PR
* Update one of the tests
* Somewhat working very ugly translate
* Working translate and rotate
* Fix deletion
* Clean up things and disable tests deleting the *first* import due to unclear issue
* Fix Clone
* Clean up ahead of review
* Support cases with translate and rotate in two different pipes (but not for deletion)
* Fix generated output; probably from recent merge
* Find all pipes and look for last in most cases, adding fallbacks to set translate/rotate on the right ones
* More fixups
* Delete unused snap file
* Update src/lang/queryAst.ts
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* Change lint ignore to be more specific
* Add test that checks we can still translate, rotate, and delete weird import code
* Clean up
---------
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* fix length constrainting
* conflicet
* fix circle center constraints
* fix up circle remove constraints more and add test
* fix three point arc overlays and add test for it
* fixes
* console log
* fix tangential arc stuff
* fmt
* fix unit test
* fix console error when selectiong arc
* WIP: Assemblies: Point-and-click Clone
Fixes#6209
* Make assemblies commands available for release
Fixes#6497
* Break insert out of the group, new icon, add Clone disabled
* Add rotate thanks to @franknoirot
* Update relevant snapshots
* Fix pathToNode
* Add clone to stdlibmap
* Cleaned more things
* Add custom icon
* Add variable name for clone
* Add e2e test for import and translated import
* Remove stale comment
* Add test for selection based extrude clone
* First batch of suggestions from @lee-at-zoo-corp, tysm!
* Clean up test names
* Second batch of @lee-at-zoo-corp's suggestion for modelingMachine error handling
* Common edge faces into artifact graph
* clean up
* kingdom of tags
* add tests
* hook up tags with edge treatments
* update unit tests
* update e2e
* clean up
* more fix up after main merge
* fmt
* revolve fix
* fix new circular dependency
* fix revolve
* remove numbers from circ deps, makes diffs bad
* sim test updates
* try and get tests working
* update
* Fix tsc error
---------
Co-authored-by: max-mrgrsk <156543465+max-mrgrsk@users.noreply.github.com>
Co-authored-by: max <margorskyi@gmail.com>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* chore: saving off skeleton
* fix: saving skeleton
* chore: skeleton for loading projects from project directory path
* chore: cleaning up useless state transition to be an on event direct to action state
* fix: new structure for web vs desktop vs react machine provider code
* chore: saving off skeleton
* fix: skeleton logic for react? going to move it from a string to obj.string
* fix: trying to prevent error element unmount on global react components. This is bricking JS state
* fix: we are so back
* chore: implemented navigating to specfic KCL file
* chore: implementing renaming project
* chore: deleting project
* fix: auto fixes
* fix: old debug/testing file oops
* chore: generic create new file
* chore: skeleton for web create file provide
* chore: basic machine vitest... need to figure out how to get window.electron implemented in vitest?
* chore: save off progress before deleting other project implementation, a few missing features still
* chore: trying a different init skeleton? most likely will migrate
* chore: first attempt of purging projects context provider
* chore: enabling toast for some machine state
* chore: enabling more toast success and error
* chore: writing read write state to the system io based on the project path
* fix: tsc fixes
* fix: use file system watcher, navigate to project after creation via the requestProjectName
* chore: open project command, hooks vs snapshot context helpers
* chore: implemented open and create project for e2e testing. They are hard coded in poor spot for now.
* fix: codespell fixes
* chore: implementing more project commands
* chore: PR improvements for root.tsx
* chore: leaving comment about new Router.tsx layout
* fix: removing debugging code
* fix: rewriting component for readability
* fix: improving web initialization
* chore: implementing import file from url which is not actually that?
* fix: clearing search params on import file from url
* fix: fixed two e2e tests, forgot needsReview when making new command
* fix: fixing some import from url business logic to pass e2e tests
* chore: script for diffing circular deps +/-
* fix: formatting
* fix: massive fix for circular depsga!
* fix: trying to fix some errors and auto fmt
* fix: updating deps
* fix: removing debugging code
* fix: big clean up
* fix: more deletion
* fix: tsc cleanup
* fix: TSC TSC TSC TSC!
* fix: typo fix
* fix: clear query params on web only, desktop not required
* fix: removing unused code
* fmt
* Bring back `trap` removed in merge
* Use explicit types instead of `any`s on arg configs
* Add project commands directly to command palette
* fix: deleting debugging code, from PR review
* fix: this got added back(?)
* fix: using referred type
* fix: more PR clean up
* fix: big block comment for xstate architecture decision
* fix: more pr comment fixes
* fix: saving off logic, need a big cleanup because I hacked it together to get a POC
* fix: extra business?
* fix: merge conflict just added them back why dude
* fix: more PR comments
* fix: big ciruclar deps fix, commandBarActor in appActor
* chore: writing e2e test, still need to fix 3 bugs
* chore: adding more scenarios
* fix: formatting
* fix: fixing tsc errors
* chore: deleting the old text to cad and using the new application level one, almost there
* fix: prompt to edit works
* fix: large push to get 1 text to cad command... the usage is a little buggy with delete and navigate within /file
* fix: settings for highlight edges now works
* chore: adding another e2e test
* fix: cleaning up e2e tests and writing more of them
* fix: tsc type
* chore: more e2e improvements, unique project name in text to cad
* chore: e2e tests should be good to go
* fix: gotcha comment
* fix: enabled web t2c, codespell fixes
* fix: fixing merge conflcits??
* fix: t2c is back
* Remove spaces in command bar test
* fmt
---------
Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com>
Co-authored-by: lee-at-zoo-corp <lee@zoo.dev>
* add first version of DefaultPlanes to FeatureTreePane
* fix lint issues
* don't show default planes UI in sketch mode
* lint
* toggling default planes: implementation in xstate
* revert malformed modelingMachine.ts
* lint
* save and restore default plane visibility when returning to modeling mode
* fmt
* tsc
* introduce new cleanup state with actor when exiting sketch mode
* temp remove restore default plane visibility - causes error on starting up a project
* set selection filter after executeAst - this is a wip hacky fix
* remove unused early return: this also caused plane selection to only work with double click
* lint
* no need to set selection filter to curves only, we want faces to be selectable in modeling mode, even though this means default planes are also selectable
* tightening types for visibility map
* lint
* cleanups
* fix border issue when visibility toggle is not active and props.visible === true
* ui updates on FeatureTreePane/default planes
* no pointer cursor for unselectable default planes
* show default planes initially even for non-empty projects
* dont show default planes initially when project is not empty
* fix test: Only show axis planes when there are no errors
* fixes for sketch tests
* better initialize for planes
* lint
* fix uneccessary 'reset camera position' in sketch entry
* revert hiding/showing content depending on artifact graph for tests
* only show default planes when there are no errors
* disable Restore default plane visibility, was causing temporary flashing of default planes when exiting sketch mode
* Always show default plane visibility toggles, regardless of being on/off
* revert modelingMachine to original idle states to avoid 'zoom_to_fit' test regression - probably racing condition
* fmt
* WIP: Add point-and-click Import for geometry
Will eventually fix#6120
Right now the whole loop is there but the codemod doesn't work yet
* Better pathToNOde, log on non-working cm dispatch call
* Add workaround to updateModelingState not working
* Back to updateModelingState with a skip flag
* Better todo
* Change working from Import to Insert, cleanups
* Sister command in kclCommands to populate file options
* Improve path selector
* Unsure: move importAstMod to kclCommands onSubmit 😶
* Add e2e test
* Clean up for review
* Add native file menu entry and test
* No await yo lint said so
* WIP: UX improvements around foreign file imports
Fixes#6152
* WIP: Set translate and rotate via point-and-click on imports. Boilerplate code
Will eventually close#6020
* Full working loop of rotate and translate pipe mutation, including edits, only on module imports. VERY VERBOSE
* Add first e2e test for set transform. Bunch of caveats listed as TODOs
* @lrev-Dev's suggestion to remove a comment
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Update to scene.settled(cmdBar)
* Add partNNN default name for alias
* Lint
* Lint
* Fix unit tests
* Add sad path insert test
Thanks @Irev-Dev for the suggestion
* Add step insert test
* Lint
* Add test for second foreign import thru file tree click
* WIP: Add point-and-click Load to copy files from outside the project into the project
Towards #6210
* Move Insert button to modeling toolbar, update menus and toolbars
* Add default value for local name alias
* Aligning tests
* Fix tests
* Add padding for filenames starting with a digit
* Lint
* Lint
* Update snapshots
* Merge branch 'main' into pierremtb/issue6210-Add-point-and-click-Load-to-copy-files-from-outside-the-project-into-the-project
* Add disabled transform subbutton
* Allow start of Transform flow from toolbar with selection
* Merge kcl-samples and local disk load into one 'Load external model' command
* Fix em tests
* Fix test
* Add test for file pick import, better input
* Fix non .kcl loading
* Lint
* Update snapshots
* Fix issue leading to test failure
* Fix clone test
* Add note
* Fix nested clone issue
* Clean up for review
* Add valueSummary for path
* Fix test after path change
* Clean up for review
* Support much wider range for transform
* Set display names
* Bug fixed itself moment...
* Add test for extrude tranform
* Oops missed a thing
* Clean up selection arg
* More tests incl for variable stuff
* Fix imports
* Add supportsTransform: true on all solids returning operations
* Fix edit flow on variables, add test
* Split transform command into translate and rotate
* Clean up and comment
* Clean up operations.ts
* Add comment
* Improve assemblies test
* Support more things
* Typo
* Fix test after unit change on import
* Last clean up for review
* Fix remaining test
---------
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* maybe use biome
* import organising
* Removed unused new fmt commands; fix to not use linter
* Don't use fmt:generated - fmt is fast, but also use Makefile for this sort of thing
---------
Co-authored-by: lee-at-zoo-corp <lee@zoo.dev>
* use artifact id for sketch mode entry plane
* fix up re-eval as best as possible
* remove some async dodgyness
* fmt
* fix old sycronous re-execute shit
* add a test
* fix existing test
* add toast for error state
* spelling
* test stuff
* fmt
* fix toast
* test fix
* some other fix ups
* fix test
* first draft of making segment snap to previous arc's last tangent
* ability to force/disable line snap, threshold in screen space
* mouseEvent refactor tsc errors fixed
* cleanups, extract getTanPreviousPoint function
* add snap line support when previous segment is ARC
* small cleanups
* remove unused planeNodePath param from onDragSegment
* renaming
* Enable snapping when placing the segment point in onClick
* refactor getSnappedDragPoint to include axis intersection
* handle snapping to both axis and tangent direction
* snap refinements
* small cleanups
* lint
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* generate tag for previous arc when snapping current straight segment
* using previous arc's tag in snapped angledLine
* angledLine uses object instead of array now
* use more general snap object instead
* snap tangent line visualized when snapping occurs
* remove unused scale param from createLine
* prettier
* fix bug where segment body is not drawn
* fix generated kcl error introduced in merge from main - modifiedAst needs to be passed to addNewSketchLn
* add support for snapping to negative tangent direction
* fix findTangentDirection for THREE_POINT_ARC_SEGMENT
* fix tsc error by introducing overrideExpr
* fix missing ccw for 3 point arc, fix tan_previous_point calculation for 3 point arcs
* resolve clippy until confirmation for circle radius
* fix runtime error when drawing a 3 point arc
* add unit tests to closestPointoOnRay
* unrelated react warning fixed
* add playwright test for tangent snapping
* better fix for tan_previous_point
* fix lint
* add simulation test for tangent_to_3_point_arc
* Fix simulation test output
* Add missing simulation test output files
* fix tangent snapping bug: use current group instead of last group in activeSegments
* make testcombos.test happy
* cleanup merge
* fix merge mistake, tsc error
* update tangent_to_3_point_arc simulation test
* fix angledLine related breaking tests
* minimum distance added before snapping to tangent
* circle is always ccw regardless of the order of points for tangential info calculation
* fix snapping when different unit is used other than mm
* update test: Straight line snapping to previous tangent
* update rust snapshot test
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>