* Basic transparent pane styling
* HTML and static asset cleanup
* Convert to collapsibles
* Polish up DebugPanel
* Add hotkey support, remove allotment
* Remove allotment css dependency
* Merge in from main
* Add a different resizable package
* Fix tsc errors introduced by merge
* Stream has to have at least z-index of 0
* App header has to be above stream z-index
* Applied z-index to the wrong element
* Scrollable logs, disable UI while dragging
* Fix test errors from importing CSS Modules in Jest
* Persist open panes configuration
* Style tweaks and fix camera step in onboarding
* Kurt review, make click-drag handler declarative
* Add passive dark mode to everything but codemirror
* Add dark theme support for Codemirror
* Make theme a user setting
* Fix button text size
* guard against undefined window
* Formatting and test fix
Currently, syntax/semantic errors in the user's source code result in vanilla JS exceptions being thrown, so they show up in the console. Instead, this PR:
- Adds a new type KCLError
- KCL syntax/semantic errors when parsing/executing the source code now throw KCLErrors instead of vanilla JS exceptions.
- KCL errors are caught and logged to a new "Errors" panel, instead of the browser console.
* Basic CRA to Vite conversion
* Restore ESLint support
* Remove semicolons from vite config
* Add vite client types to tsconfig
* Migrate to Vitest for testing (not working on Mac)
* some test progress (#175)
* some test progress
* something maybe working
* remove local lib
* small clean up
* tweaks
* fix dependency
* clean up deps
* remove vitest import
* vitest config is needed even though we're not using vitest
* more tweaks to vite config
---------
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* port recast to rust with massaged serialisation
* remove logs
* fix the last of white space test failures
* remove ts recastor
* clean up imports
* use serde serialise features
* unneeded async
* final clean up recast.ts
* more clean up tweaks
* improve Rust BinaryPart types
* Comments, fix warnings
* Run clippy --fix
* Remove unused variable
* serialise none_code_nodes manual to force strings to numbers
---------
Co-authored-by: Adam Chalmers <adam.s.chalmers@gmail.com>
* Add theme colors from Figma
* Rough-in of AppHeader
* Add styled ActionButton
* Add react-router and placeholder Settings page
* Add ability to set persistent defaultDir
* Add react-hot-toast for save success message
* Add defaultProjectName setting
* Handle case of stale empty defaultDir in storage
* Wrap app in BrowserRouter
* Wrap test App in BrowserRouter
* Don't need BrowserRouter outside of testing
because we use RouterProvider
We can create a enginelessExecutor that can be used for many of the
executor tests that will be much more performant for tests that don't
need the engine to actually do any modeling work.
* Intital async of executor
The execture now sends websocket message instead of calling functions
directly from the engine, When it does so it holds onto the id.
The engine is still returning geo/polys directly but I'm working make it
so that the UI doesn't need to know about that, so that we can switch
over the streaming ui.
Things left to do:
- it is still making both direct function calls and websockets, and the former should be removed.
- It does highlighting of segments and sourceRanges not through websockets and that needs to be fixed.
- Tests have not been adjusted for these changes.
- Selecting the head of a segment is not working correctly again yet.
* Rough engine prep changes (#135)
* rough changes for engine prep
* mouse movements working again
* connect to engine for startsketch, line, close and extrude
* setup to get path to nodes back from ast-mods
* fix cursor setting for constraint buttons that use transformSecondarySketchLinesTagFirst
* fix cursors for constraints that use transformAstSketchLines
* some clean up
* Change perpendicular-distance constraint to something more intuitive to setting parallel distance
* delete
* add back
* force rename
* change name back
* try renaming again