* Add collapsible element to updater toast notification showing release notes
* Temp create release artifacts to test updater
* Fix tsc error
* Fix some styling, make release notes not appear if no notes are present
* Add component tests
* Remove test release builds
---------
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
* Add ID generator to ExecState
* Change default plane IDs to be hardcoded
* Fix lint warning
* Add exposing ID generator as output of executor
* Change to use generated definition of ExecState in TS
* Fix IdGenerator to use camel case in TS
* Fix TS type errors
* Add exposing id_generator parameter
* Add using the previously generated ID generator
* wip: Add display of feature tree in debug pane
* Remove artifact graph augmentation
* Change default planes to use id generator instead of hardcoded UUIDs
* Fix to reuse previously generated IDs
* Add e2e test
* Change feature tree to be collapsed by default
* Remove debug prints
* Fix unit test to use execState
* Fix type to be more general
* Remove outdated comment
* Update derive-docs output
* Fix object display component to be more general
* Remove unused ArtifactId type
* Fix test to be less brittle
* Remove codeRef and pathToNode from display
* Fix to remove test.only
Co-authored-by: Frank Noirot <frank@zoo.dev>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Move plane conversion code to be next to type
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)"
This reverts commit 3455cc951b.
* Rename file
* Rename components and add doc comments
* Revive the collapse button
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* bug: fixing multiple state issues with the engine and modeling app to enable/disable planes/axis/delete code
* fix: yarn tsc fmt lint xgen
* fix: adding a comment back that I deleted on accident
* fix: adding formatting back?
* fix: reverting syntax
* fix: removing click line tool because the line tool is automatically selected. Clicking this will exit
* fix: Fixed a E2E test that had a line tool workflow with no points
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: 49fl <ircsurfer33@gmail.com>
* Reload user settings when changed externally
* Fix to not use any
* Make sure listener doesn't already exist
* Fix up projects reloading
---------
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* tentatively adding this
* Update src/components/ModelingMachineProvider.tsx
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* Show shortcut in UI dialog
* Move command into modelingMachine action
* Add a menu item to the view menu
* Switch gizmo tests to use "deprecated" test setup in prep for new fixture-based test
* Add e2e test for center view to selection
* Bump @kittycad/lib to latest and fix tsc
* Bump @kittycad/lib to v2.0.7 to fix electron building
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
---------
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
Co-authored-by: Frank Noirot <frank@kittycad.io>
Co-authored-by: 49fl <ircsurfer33@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
* Make web app warning banner in the middle of the screen and simpler
* Some dark mode styles were whack
* Better wording for second sentence
* Update text in popup and appearance of download link
* Make download link first in focus order
* fix new file sketch mode issue
* initial extron app fixture
* Add tests for exiting sketch mode on file tree actions
* organise files
* before all after all clean up
* tweak after each
* makes typedKeys as unsafe
* update mask for draft line snapshots
* fix mask
* add fix again
* Add cameraProjection setting
* Add UI to toggle the user-level projection setting.
* Make cameraProjection setting respected at startup
* Add an E2E test for the perspective toggle
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Don't force user back into perspective when exiting sketch
* Make the projection setting more searchable
* Make `current` label apply to the default option if not set
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Re-run CI
* Ohh *cargo fmt*
* @lf94 feedback, fix found toggling bug, make command bar instantly toggle setting
* Roll back the instant toggling behavior, it breaks the tests
* Make ortho the default, keep tests using perspective
* Move projection below camera controls setting
* Fix up gizmo tests, which broke because the gizmo moved
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Look at this (photo)Graph *in the voice of Nickelback*
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: 49fl <ircsurfer33@gmail.com>
* Implement basic unit overwriting, update tests
* fix eslint warning
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)"
This reverts commit 2ecf012c25.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add event listener for theme media query to update engine theme
* tsc fixes
* Add a Playwright test for UI and engine theme switch
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* sketch on chamfer start
* working
* step app from getting in weird state when selection face to sketch on
* sketch on chamfer tests
* clean up
* fix test
* fix click selections for chamfers, add tests
* fixture setup (#3964)
* initial break up
* rename main fixture file
* add more expect state pattern
* add fixture comment
* add comments to chamfer function
* typos
* works without pipeExpr
* Add custom updater model back after electron migration
Fixes#3872
* Enable release builds (temp)
* Lint & clean up
* Change approach to no user input, heads up with toast
* Re-enable prod builds
* Working toasts
* Only one toast
* Add missing type
* Clean up before review
* New toast design test
* Clean up
* Use theme colors, add link to changelog
---------
Co-authored-by: Frank Noirot <frank@kittycad.io>
* Add a shell script to get the list of KCL samples into the app
* Add support for overwriting current file with sample
* Move these KCL commands down into FileMachineProvider
* Add support for creating a new file on desktop
* Make it so these files aren't set to "renaming mode" right away
* Add support for initializing default values that are functions
* Add E2E tests
* Add a code menu item to load a sample
* Fix tsc issues
* Remove `yarn fetch:samples` from `yarn postinstall`
* Remove change to arg initialization logic, I was holding it wrong
* Switch to use new manifest file from kcl-samples repo
* Update tests now that we use proper sample titles
* Remove double-load from units menu test
* @jtran feedback
* Don't encode `https://` that's silly
* fmt
* Update e2e/playwright/testing-samples-loading.spec.ts
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Test feedback
* Add a test step to actually check the file contents were written to (@Irev-Dev feedback)
---------
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* circle
* fix another example
* fix bad comment
* toPoint fix
* cargo fmt
* resolve most of the tests
* fix last test
* missed circle in bracket
* remove console error
* fmt
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* trigger ci
* remove three dot menu for circle
* make sure circle can be extruded
* fix up after merge
* add extrude test for circle
* clean up
* typo
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)"
This reverts commit 03f8eeb542.
* update docs again
* cmd bar test serialisation improvements
* tiny clean up
* fix after: Replace kittycad crate with kittycad-modeling-cmds
* fmt
* rename fix
* Update src/lib/toolbar.ts
Co-authored-by: Frank Noirot <frank@zoo.dev>
* add another error to list
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* image updates
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)"
This reverts commit 505bb20bea.
* update markdown
* skip un reproducable windows test failure
* rust review
* leave issue todo comment
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
* Bug fix: make dismiss during export not fire success toast
* Fix export fail test, since this failure errors early now
* Remove throttling from send side
* Move toast.loading out to when first engine command is sent, so it is shown immediately
* Use shared, named constants for toast messages
* Hook up a couple other error toasts to the `pendingExport.toastId`
* chore: Implemented a executeAst interrupt to stop processing a KCL program
* fix: added a catch since this promise was not being caught
* fix: fmt formatting, need to fix some tsc errors next.
* fix: fixing tsc errors
* fix: cleaning up comment
* fix: only rejecting pending modeling commands
* fix: adding constant for rejection message, adding rejection in WASM send command
* fix: tsc, lint, fmt checks
* feat: first pass over revolve with basic hard coded X axis
* fix: updated revolve status for DEV only
* fix: adding some TODOs to warn others about the Revolve MVP
* fix: fmt, lint, tsc checks
* fix: codespell got me
* fix: xstate v5 upgrade
* fix: removing this fix for a different PR. Not needed for initial MVP
* fix: renaming extrude function to sweep since it fixes extrude and revolve now
* fix: updating selection logic to support revolve
* fix: renaming extrude to sweep since it adds revolve
* fix: swapping as for type in function parameters
* fix: updated from object destruct to structuredClone
* fix: addressing PR comments
* fix: one other typo for return value of revolve
* Make light theme borders more contrasting
* Update icons in sidebar
* fix disabled styles on ActionIcon
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Update src/components/CustomIcon.tsx
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* trigger CI
* fmt
* Update "Make" button test locator to be more specific
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
Co-authored-by: 49fl <ircsurfer33@gmail.com>
* refactor clientSide scene
* start consolidate threejs segment funcitons
* rename stuff
* first pass of integrating threejs segment create and update into one
* reduce create segment complexity
* add color back in
* use input
* fix comment
* feedback changes
* Update test to expect new behavior (failing)
* Update behavior to match new test expectations
* Make reset button more clear
* Fix eslint issue
* Fix up separate test that relied on old reset logic
* Add lints for floating and misued promises
* Add logging async errors in main
* Add async error catch in test-utils
* Change any to unknown
* Trap promise errors and ignore more await warnings
* Add more ignores and toSync helper
* Fix more lint warnings
* Add more ignores and fixes
* Add more reject reporting
* Add accepting arbitrary parameters to toSync()
* Fix more lints
* Revert unintentional change to non-arrow function
* Revert unintentional change to use arrow function
* Fix new warnings in main with auto updater
* Fix formatting
* Change lints to error
This is what the recommended type checked rules do.
* Fix to properly report promise rejections
* Fix formatting
* Fix formatting
* Remove unused import
* Remove unused convenience function
* Move type helpers
* Fix to not return promise when caller doesn't expect it
* Add ignores to lsp code
* migrate settingsMachine
* Guard events with properties instead
* migrate settingsMachine
* Migrate auth machine
* Migrate file machine
* Migrate depracated types
* Migrate home machine
* Migrate command bar machine
* Version fixes
* Migrate command bar machine
* Migrate modeling machine
* Migrate types, state.can, state.matches and state.nextEvents
* Fix syntax
* Pass in modelingState into editor manager instead of modeling event
* Fix issue with missing command bar provider
* Fix state transition
* Fix type issue in Home
* Make sure no guards rely on event type
* Fix up command bar submission logic
* Home machine tweaks to get things running
* Fix AST fillet function args
* Handle "Set selection" when it is called by actor onDone
* Remove unused imports
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Fix injectin project to the fileTree machine
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)"
This reverts commit 4b43ff69d1.
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Re-run CI
* Restore success toasts on file/folder deletion
* Replace casting with guarding against event.type
* Remove console.log
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* Replace all instances of event casting with guards against event.type
---------
Co-authored-by: Frank Noirot <frank@kittycad.io>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
* Add Electron app drag handle to sign-in page
* Don't assign drag regions in web from JSX, results in dev-only console errors about unsupported style values
* Remove isFirstRender because isExecuting means the same and remove building scene
* add small makefile util
* Remove waiting for building scene prompt
* Add a new model state indicator
* fmt lint tsc
---------
Co-authored-by: Frank Noirot <frank@kittycad.io>
* Some colors and export file size changes occurred engine-side, update tests to match
* Fix up focusrite example after adjacent edge switch
* Yay now the export file is yet another new size
* Update bracket example code and some test colors that broke
* Use a shorter KCL sample so we don't experience weird locator behavior
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* bump electron playwright timeout
* Relax color expectations a little bit, as they can be different on web and electron
* fix double export test
* unused var
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Re-run CI
* Bump getGreatestPixDiff comparisons from 10 to 15 in projects.spec.ts
* bump another pix diff to 15
* make retries work
* update expect numbers
* remove some logs
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
* Basic sign-in page layout
* Better responsive styling
* Add wipe animation
* Fix mobile button styling
* Add juicy on-load animation to logo in app header
* Make video card a link to the sample's code
* Fix video URL on bundled desktop app, add "open default browser" behavior to links
* Revert "Add juicy on-load animation to logo in app header"
This reverts commit c167569d7e.
---------
Co-authored-by: 49fl <ircsurfer33@gmail.com>
* Fix: regression on command bar buttons (remove drag)
* Revert "Fix: regression on command bar buttons (remove drag)"
This reverts commit 2404bcdf31.
* Make all elements opt-out of drag behavior by default, add comments around drag attribute
* Add vendor-specific user-select
* It won't do to make all elements opt-out, it ends up swallowing the drag events themselves!
* Sneaking in this email truncation nit that's bothered me
* Gotta remove that one more attempt at a generic "we made this clickable" element
* Make orbit continue to work when dragging over the AppHeader
---------
Co-authored-by: Frank Noirot <frank@kittycad.io>
* Fix Commands button to show correct shortcut
* Fix onboarding to use the same shortcut reference
* Rename test file to be more general
* Add test for commands button text
* Remove outdated reference to Ctrl+/
* Change shortcut separator to be + and no spaces
* Add JSDocs and improve comments
* Add unit tests
* Change control modifier to regular ASCII caret
* Add browser test and fix platform detection
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Add useful debug info to the error message
* Fix to display metaKey as Super on Linux
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)"
This reverts commit f8da90d5d2.
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Approve snapshots
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
* Fix path splitting issues on windows
* Fix path splitting issue on routeLoaders
* Enable some e2e tests
* Swap enabled e2e tests
* Working bare-min project parse
* Make tsc happy
* Clean up & enable more tests
* Fix paths in browser
* Fix tests for windows
fmt
* Clean up wasm side
* Make build:wasm windows compatible
* More paths cleanup & some tests
* Remove sleep
* Use new config sturcture in parseroute
* Clean up debugger
* Fix: on settings close go back to the same file (#3549)
* Fix: on settings close go back to the same file
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* shit aint working yo
* Get that page a-loading
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@kittycad.io>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
* Fmt
* Comment out currently failing win32 tests
* Ignore tsc for electron monkey-patch
* Force line-endings to only
* Fix tsc
* Enable more tests
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Avoid modifying global for tests
---------
Co-authored-by: 49fl <ircsurfer33@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@kittycad.io>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
* Fix existing: Extrude from command bar selects extrude line after #3545
* remove as
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
We can store Rust types like `SketchGroup` as their own variant of `KclValue`, or as `KclValue::UserVal`. Sometimes we store in one and try to read from the other, which fails. This causes bugs, like #3338.
Instead, we should use either ::SketchGroup or ::UserVal, and stop using the other. If we stopped using ::UserVal, we'd need a new variant for every Rust type we wanted to build, including user-defined types. So I don't think that's practical.
Instead, we should store every KCL value by de/serializing it into UserVal. This is a first step along that path, removing just the SketchGroup variants. If it goes well, we can remove the other specialized variants too.
My only concern is there might be performance implications from how frequently we convert between serde_json::Value and Rust types via Serde. But I'm not too worried -- there's no parsing JSON strings, just traversing serde_json::Value trees. This isn't great for performance but I think it'll probably be miniscule in comparison to doing all the API calls.
* Fix the behavior so that we navigate to the new file path
* This change is done in other PRs but is also necessary here
* Add an Electron Playwright test for renaming a file
* Add tests for renaming dir, one is failing
* Don't need that console.warn
* Add DeepPartial utility type
* Fix settings parsing so that project path parsing is fixed
* Move URL check after DOM checks
* Revert this fallback behavior from https://github.com/KittyCAD/modeling-app/pull/3564 as we don't need it now that config parsing is fixed
* Make new bad prompt each run
* Fix onboarding asset path in web
* Remove double parsing of settings config
* Remove unused imports
* More unused imports
* Fix broken rename test
* Update src/lib/desktop.ts
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Add test for renaming file we do not have open
* fmt
---------
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>