Commit Graph

45 Commits

Author SHA1 Message Date
391f4ba206 Implement "floating windows" style UI (#224)
* 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
2023-08-07 11:29:26 +10:00
8c5d7bf648 Display KCL errors as CodeMirror diagnostics in the editor's gutter (#197)
Also updates the CodeMirror version
2023-08-03 15:56:11 -05:00
aabb88ee45 Add tests for various user profile setups to sidebar (#212)
* Add tests for various user profile setups to sidebar

* Don't show empty user image if it isn't there

* @adamchalmer review
2023-08-01 13:23:17 -04:00
c31f1ad98b Add dark mode (#199)
* 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
2023-07-31 20:33:10 +10:00
894bddb369 Add user menu sidebar (#195) 2023-07-27 18:59:40 -04:00
be7605cdef Git pre-push hook to check formatting (#200)
Add formatting check to Git pre-push hook
2023-07-27 12:13:51 -05:00
aca9b9226c Reset KCL logs (#198) 2023-07-26 18:16:20 -05:00
0d010b60e5 Collect structured errors from parsing/executing KCL (#187)
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.
2023-07-26 14:10:30 -05:00
6838e96723 Run yarn prettier, check it in CI (#192) 2023-07-26 11:47:18 -05:00
d1e7cb23a1 Tweak default value for onboardingStatus (#190) 2023-07-25 10:51:34 -04:00
9cd3845975 Franknoirot/add walkthrough (#189)
* Barebones onboarding triggering and resetting

* Make onboarding route-based

* Add Camera step, highlighting camera feed

* Implement redirect behavior

* Unify navigation hooks

* Formatting

* add useResizeObserver, convert to custom hook
2023-07-25 10:40:26 -04:00
48f1d5e623 Add unit setting (#183)
* Add Toggle component

* Add default units to settings

* Add defaultBaseUnit, shorten settings names

* Make debug panel use Toggle, fix colors

* add eslint-plugin-css-modules
2023-07-21 12:48:23 -04:00
87aecf7f50 Integrate sketch mode debug (#186)
integrate sketch mode debug
2023-07-21 16:53:06 +10:00
59fa51d75a Add settings UI page (#171)
* 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
2023-07-13 07:22:08 -04:00
3fc4d71a1e move ast types into seperate ts file (#169) 2023-07-13 16:57:22 +10:00
317dc6d0b2 rough tauri auth (#167) 2023-07-11 20:34:09 +10:00
3510abfcb9 delay execute till after stream ready (#143) 2023-06-23 14:19:15 +10:00
2d3c73d46a asyncronise executor (#115)
* 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
2023-06-22 16:43:33 +10:00
0858d32c1e more tauri stuff (#128) 2023-06-19 10:16:45 +10:00
15699361a0 Cursors should stay after a code-mod (#113)
* 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
2023-04-14 07:49:36 +10:00
a8b68bab6a Users should be able to select points (not just lines) (#97)
* update selection datastructure to accomodate more selection metadata

* Users should be able to select points (not just lines)
2023-04-03 16:05:25 +10:00
61533fb306 Add UI for closing the sketch loop (#87) 2023-04-01 20:38:31 +11:00
22c356a841 Add intersect constraint UI (#71)
* Add intersect constraint UI

* add more combos for intersect constraint
2023-03-19 18:46:39 +11:00
433c29217e tidy up (#37) 2023-03-03 20:35:48 +11:00
f70f0f7bc3 persist code in local storage (#34)
Just a little frustrating to have code disapear on you, will probably need to be made less naive at some point
2023-02-21 14:50:22 +11:00
ea05f804cc Add multi-cursor support (#30)
* update execution of callExpressions

* tweak types to store multiple cursor ranges and hook up with artifact highlighting

* multi-cursor from 3d scene

Working but has to be capslock for the time being

* tweak pannel headers

* add issue to todo comment
2023-02-21 10:28:34 +11:00
cb8e97eceb 🚨🦀 Setup Rust -> WASM 🦀🚨 (#28)
* initial tokeniser to wasm port

* fix tests

* add wasm to build script

* add rust tools to test action

* tweaks

* maybe tests will be happy

* tweak simple server

* trying to get tests to pass

* it pget vercel to build

* tidy up

* clean up rust files

* change lexer to use recursion so that it's consistent with the rest of the interpreter

* clean up nokeniser further

* rename variables

* readme typos

* run rust tests in CI

* follow clippy's advice

* more clippy clean up

* setup up proper serialzation to js-land

* tidy init promise in tests
2023-02-21 09:42:41 +11:00
594d55576a functional sketch working (#26)
* functional sketch working

With old sketch block still there

* get all version of lines working with add line and update line

* remove old ui state types

* some clean up

* rename some things

* add todo for multi cursor

* shorten useStore repitition

* small type improvement

* big overhaul to group sketch function and they ast modifying helpers together

* unneeded tweak

* ruthlessly rip out sketch logic

* clean up path keyword

* getting sketch on face working again with all the new sketch line types

* add a bunch of tests and re-arrage file structure
2023-02-12 10:56:45 +11:00
9bb4f68794 change logs aswell (#21)
* kurt-19-change-logs-aswell

* fix tests
2023-02-03 11:09:09 +11:00
29e06ec852 Add non-code metadata to the ast (#15)
* Revert "wire up comments to ui (#11)"

This reverts commit bdf778530f.

* Revert "Add the ability to recast comments and some whitespace (#10)"

This reverts commit dd5022b38e.

* ast metadata

* clean up
2023-02-01 07:30:55 +11:00
bdf778530f wire up comments to ui (#11) 2023-01-24 21:09:00 +11:00
9ec332d681 focus on extrude literal when extruding sketch 2023-01-13 18:13:23 +11:00
ed686e5e69 initial implementation of sketching on extrude face 2023-01-09 13:19:14 +11:00
9ad6b946c0 massive overhall to how program memory works and how artifacts their metada are rendered 2023-01-08 16:37:31 +11:00
248317f354 set cursor on geo click 2023-01-06 09:07:22 +11:00
0779befc65 fix sketch plan orientation 2023-01-04 01:28:26 +11:00
544f20852c make 'axis' redundant 2022-12-23 07:45:47 +11:00
07a40cdd11 port over to quanternions 2022-12-23 07:37:42 +11:00
034c903672 add the ability to edit sketch later 2022-12-06 05:40:05 +11:00
5fa2472e0d create sketch can rotate to match base planes 2022-12-04 15:50:52 +11:00
b671db1e81 add format button 2022-11-28 19:43:20 +11:00
ade1e9fb82 start of code gen from direct manipulation 2022-11-28 09:37:46 +11:00
6f24e75f92 Gui scafolding toolbar, log console, axis for sketching 2022-11-27 14:06:33 +11:00
48e59ac710 remove semi-colons 2022-11-26 08:38:57 +11:00
ca020e14eb get feature highlighting working both ways
From the editor to the viewer and from the viewer to the editor
2022-11-26 05:15:32 +11:00